diff --git a/.circleci/config.yml b/.circleci/config.yml index b9f291ec..ad5b7f54 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,11 +1,19 @@ version: 2.1 +orbs: # adds orbs to your configuration + jira: circleci/jira@1.0.5 # invokes the Jira orb, making its commands accessible +branches: + ignore: feature/i10n jobs: build: working_directory: ~/Cider docker: - - image: circleci/node:16-browsers + - image: circleci/node:16 + steps: - checkout + - run: + name: Set App Version + command: echo "export APP_VERSION=$(grep '"version":.*' package.json | cut -d '"' -f 4 | head -1)" >> $BASH_ENV - run: name: Update Package Managers command: sudo npm update -g npm yarn @@ -15,42 +23,44 @@ jobs: - yarn-packages-{{ checksum "cider-yarn.lock" }} - run: name: Install Dependencies - command: yarn install --cache-folder ~/.cache/yarn + command: yarn install --frozen-lockfile --cache-folder ~/.cache/yarn - save_cache: name: Save Yarn Package Cache key: yarn-packages-{{ checksum "cider-yarn.lock" }} paths: - ~/.cache/yarn - - run: - name: Install Playwright - command: yarn playwright install --with-deps - run: name: Install system build dependencies command: | sudo apt-get update -y + curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg + echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null sudo apt-get install -y dpkg fakeroot wine64 sudo dpkg --add-architecture i386 sudo apt-get update -y sudo apt-get install -y wine32 - sudo apt-get install -y x11vnc + sudo apt install -y gh - run: - name: Start X VNC Server - command: x11vnc -forever -nopw -create - background: true - #- run: - #name: Base Functionality Testing - #command: yarn test - - store_test_results: - path: test-results + name: Fix Versioning and Add Channel + command: yarn circle:script - run: - name: Append Commit BuildID to Version - command: yarn circle:append-bid + name: TypeScript Compile + command: yarn build - run: name: Generate Builds (Linux) - command: yarn dist -l -p never + command: yarn electron-builder -l -p never + post-steps: + - jira/notify - run: name: Generate Builds (Windows) - command: yarn dist -w --x64 -p never + command: yarn electron-builder -w --x64 -p never + post-steps: + - jira/notify + - run: + name: Generate Builds (Winget) + command: yarn electron-builder --win -c winget.json -p never + post-steps: + - jira/notify - run: name: Move Build Files command: | @@ -60,7 +70,10 @@ jobs: mv ~/Cider/dist/*.AppImage ~/Cider/dist/artifacts mv ~/Cider/dist/*.snap ~/Cider/dist/artifacts mv ~/Cider/dist/*.yml ~/Cider/dist/artifacts - + mv ~/Cider/dist/*.blockmap ~/Cider/dist/artifacts - store_artifacts: - path: ~/Cider/dist/artifacts - + path: ~/Cider/dist/artifacts + - run: + name: Publish Release + command: | + gh release create "v${APP_VERSION}.${CIRCLE_BUILD_NUM}" --title "Cider Version ${APP_VERSION} - Build ${CIRCLE_BUILD_NUM} (${CIRCLE_BRANCH})" --generate-notes -R ciderapp/cider-releases ~/Cider/dist/artifacts/*.deb ~/Cider/dist/artifacts/*.AppImage ~/Cider/dist/artifacts/*.snap ~/Cider/dist/artifacts/*.exe ~/Cider/dist/artifacts/*.yml ~/Cider/dist/artifacts/*.blockmap diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml new file mode 100644 index 00000000..f1befd57 --- /dev/null +++ b/.github/workflows/build-macos.yml @@ -0,0 +1,146 @@ +# For most projects, this workflow file will not need changing; you simply need +# to commit it to your repository. +# +# You may wish to alter this file to override the set of languages analyzed, +# or to provide custom queries or build logic. +# +# ******** NOTE ******** +# We have attempted to detect the languages in your repository. Please check +# the `language` matrix defined below to confirm you have the correct set of +# supported CodeQL languages. +# +name: "macOS build" + +on: + push: + branches: [ develop ] + paths-ignore: + - 'README.md' + - 'SECURITY.md' + - '.gitmodules' + - '.gitignore' + - 'LICENSE' + schedule: + - cron: '44 20 * * 1' + +jobs: + analyze: + name: macOS build + runs-on: macos-11 + permissions: + actions: read + contents: write + security-events: write + + strategy: + fail-fast: false + matrix: + language: [ 'javascript' ] + # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] + # Learn more: + # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed + + steps: + - uses: maxim-lobanov/setup-xcode@v1 + with: + xcode-version: '12.4' + + - name: Checkout repository + uses: actions/checkout@v2 + with: + submodules: true + + # Initializes the CodeQL tools for scanning. +# - name: Initialize CodeQL +# uses: github/codeql-action/init@v1 +# with: +# languages: ${{ matrix.language }} + # If you wish to specify custom queries, you can do so here or in a config file. + # By default, queries listed here will override any specified in a config file. + # Prefix the list here with "+" to use these queries and those in the config file. + # queries: ./path/to/local/query, your-org/your-repo/queries@main + + # â„šī¸ Command-line programs to run using the OS shell. + # 📚 https://git.io/JvXDl + + # âœī¸ If the Autobuild fails above, remove it and uncomment the following three lines + # and modify them (or add more) to build your code if your project + # uses a compiled language + +# - name : env +# run: | +# export EVS_ACCOUNT_NAME=${{ secrets.EVS_ACCOUNT_NAME}} && export EVS_PASSWD=${{ secrets.EVS_PASSWD }} +# export CSC_LINK=${{ secrets.CSC_LINK }} && export CSC_KEY_PASSWORD=${{ secrets.CSC_KEY_PASSWORD }} +# export APPLEID=${{ secrets.APPLEID }} && export APPLEIDPASS=${{ secrets.APPLEIDPASS }} + + - name: Sign in to EVS + run: | + python3 -m pip install --upgrade castlabs-evs + python3 -m castlabs_evs.account refresh -A ${{ secrets.EVS_ACCOUNT_NAME }} -P ${{ secrets.EVS_PASSWD }} + + - name : Build + env: + CSC_LINK: ${{ secrets.CSC_LINK }} + CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }} + APPLEID: ${{ secrets.APPLEID }} + APPLEIDPASS: ${{ secrets.APPLEIDPASS }} + APPLE_ID: ${{ secrets.APPLEID }} + APPLE_ID_PASSWORD: ${{ secrets.APPLEIDPASS }} + PSC_NAME: ${{ secrets.PSC_NAME }} + DEVELOPER_DIR: /Applications/Xcode_12.4.app/Contents/Developer + run: | + rm cider-yarn.lock || true + xcodebuild -version + yarn install + cp resources/verror-types node_modules/@types/verror/index.d.ts + cp resources/macPackager.js node_modules/app-builder-lib/out/macPackager.js + yarn dist:universalNotWorking -p never +# - name: Perform CodeQL Analysis +# uses: github/codeql-action/analyze@v1 + + - name: Add license to dmg + run: | + npx dmg-license resources/license.json dist/*.dmg + + - name: Import + uses: apple-actions/import-codesign-certs@v1 + with: + p12-file-base64: ${{ secrets.CSC_LINK }} + p12-password: ${{ secrets.CSC_KEY_PASSWORD }} + + - name: Create PKG manually + env: + CSC_LINK: ${{ secrets.CSC_LINK }} + CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }} + APPLEID: ${{ secrets.APPLEID }} + APPLEIDPASS: ${{ secrets.APPLEIDPASS }} + run: | + pkgbuild --component dist/mac-universal/Cider.app --install-location /Applications dist/Cider.pkg --sign ${{ secrets.PSC_NAME }} + xcrun altool --notarize-app --primary-bundle-id com.ciderapp.cider -f dist/Cider.pkg --username ${{ secrets.APPLEID }} --password ${{ secrets.APPLEIDPASS }} + sleep 5m + xcrun stapler staple dist/Cider.pkg || true + mv dist/*.dmg dist/Cider.dmg + + - name: Upload a Build Artifact + uses: actions/upload-artifact@v2.2.3 + with: + # Artifact name + name: macOS + # A file, directory or wildcard pattern that describes what to upload + path: | + dist/*.dmg + dist/*.pkg + # The desired behavior if no files are found using the provided path. + - name: Release + uses: softprops/action-gh-release@v1 + with: + files: | + dist/Cider.dmg + dist/Cider.pkg + body: signed Develop MacOS Builds + name: macOS builds + tag_name: macos-beta + prerelease : true + generate_release_notes: true + append_body : false + fail_on_unmatched_files: false \ No newline at end of file diff --git a/.gitignore b/.gitignore index acc6dfb9..2e957229 100644 --- a/.gitignore +++ b/.gitignore @@ -318,3 +318,10 @@ keys.sh package-lock.json yarn.lock +resources/b64.txt + + +savedconfig/cider-config.json +savedconfig/config.json +savedconfig/session.json +savedconfig/window-state.json diff --git a/Assets/Install On Cider/install on cider.afdesign b/Assets/Install On Cider/install on cider.afdesign new file mode 100644 index 00000000..5a621a62 Binary files /dev/null and b/Assets/Install On Cider/install on cider.afdesign differ diff --git a/Assets/Install On Cider/install on cider.svg b/Assets/Install On Cider/install on cider.svg new file mode 100644 index 00000000..7bf4d965 --- /dev/null +++ b/Assets/Install On Cider/install on cider.svg @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/README.md b/README.md index 92a02f3c..1966f643 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@

Banner

- GitHub Releases GitHub Stars GitHub Forks - GitHub Downloads +
- Buy Me A Coffee + Buy Me A Coffee Open Collective + GitHub Sponsor
Discord Twitter @@ -28,6 +28,8 @@ [![Get it from Windows Package Manager](https://custom-icon-badges.herokuapp.com/badge/Get_It_via_Winget-100000?style=for-the-badge&logo=winstall)](https://winstall.app/apps/CiderCollective.Cider.Nightly) +[![Get it from Flathub](https://img.shields.io/badge/Get_It_From_Flathub-100000?style=for-the-badge&logo=flathub)](https://flathub.org/apps/details/sh.cider.Cider) + [![Get it from the AUR](https://img.shields.io/badge/Get_It_From_The_AUR-100000?style=for-the-badge&logo=archlinux)](https://aur.archlinux.org/packages/cider) +[![Get it from Flathub](https://img.shields.io/badge/Get_It_From_Flathub-100000?style=for-the-badge&logo=flathub)](https://flathub.org/apps/details/sh.cider.Cider) + ### Compiling and Configuration For more information surrounding configuration, compiling and other developer documentation, see the [compilation docs](https://cider.sh/compile.html). diff --git a/cider-yarn.lock b/cider-yarn.lock index 07525a10..02bfe31e 100644 --- a/cider-yarn.lock +++ b/cider-yarn.lock @@ -12,40 +12,60 @@ resolved "https://registry.yarnpkg.com/7zip/-/7zip-0.0.6.tgz#9cafb171af82329490353b4816f03347aa150a30" integrity sha1-nK+xca+CMpSQNTtIFvAzR6oVCjA= -"@ampproject/remapping@^2.0.0": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.0.2.tgz#f3d9760bf30588c51408dbe7c05ff2bb13069307" - integrity sha512-sE8Gx+qSDMLoJvb3QarJJlDQK7SSY4rK3hxp4XsiANeFOmjU46ZI7Y9adAQRJrmbz8zbtZkp3mJTT+rGxtF0XA== +"@ampproject/remapping@^2.1.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.1.2.tgz#4edca94973ded9630d20101cd8559cedb8d8bd34" + integrity sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg== dependencies: - "@jridgewell/trace-mapping" "^0.2.2" - sourcemap-codec "1.4.8" + "@jridgewell/trace-mapping" "^0.3.0" -"@babel/code-frame@^7.12.13", "@babel/code-frame@^7.14.5", "@babel/code-frame@^7.16.7": +"@babel/code-frame@7.16.7", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== dependencies: "@babel/highlight" "^7.16.7" -"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.4", "@babel/compat-data@^7.16.8": +"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.4", "@babel/compat-data@^7.16.8", "@babel/compat-data@^7.17.0": version "7.17.0" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.0.tgz#86850b8597ea6962089770952075dcaabb8dba34" integrity sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng== -"@babel/core@^7.14.8", "@babel/core@^7.9.0": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.0.tgz#16b8772b0a567f215839f689c5ded6bb20e864d5" - integrity sha512-x/5Ea+RO5MvF9ize5DeVICJoVrNv0Mi2RnIABrZEKYvPEpldXwauPkgvYA17cKa6WpU3LoYvYbuEMFtSNFsarA== +"@babel/core@7.16.12": + version "7.16.12" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.12.tgz#5edc53c1b71e54881315923ae2aedea2522bb784" + integrity sha512-dK5PtG1uiN2ikk++5OzSYsitZKny4wOCD0nrO4TqnW4BVBTQ2NGS3NgilvT/TEyxTST7LNyWV/T4tXDoD3fOgg== dependencies: - "@ampproject/remapping" "^2.0.0" "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.0" + "@babel/generator" "^7.16.8" "@babel/helper-compilation-targets" "^7.16.7" "@babel/helper-module-transforms" "^7.16.7" - "@babel/helpers" "^7.17.0" - "@babel/parser" "^7.17.0" + "@babel/helpers" "^7.16.7" + "@babel/parser" "^7.16.12" "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.0" + "@babel/traverse" "^7.16.10" + "@babel/types" "^7.16.8" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.1.2" + semver "^6.3.0" + source-map "^0.5.0" + +"@babel/core@^7.9.0": + version "7.17.5" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.5.tgz#6cd2e836058c28f06a4ca8ee7ed955bbf37c8225" + integrity sha512-/BBMw4EvjmyquN5O+t5eh0+YqB3XXJkYD2cjKpYtWOfFy4lQ4UozNSmxAcWT8r2XtZs0ewG+zrfsqeR15i1ajA== + dependencies: + "@ampproject/remapping" "^2.1.0" + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.17.3" + "@babel/helper-compilation-targets" "^7.16.7" + "@babel/helper-module-transforms" "^7.16.7" + "@babel/helpers" "^7.17.2" + "@babel/parser" "^7.17.3" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.17.3" "@babel/types" "^7.17.0" convert-source-map "^1.7.0" debug "^4.1.0" @@ -53,10 +73,10 @@ json5 "^2.1.2" semver "^6.3.0" -"@babel/generator@^7.17.0": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.0.tgz#7bd890ba706cd86d3e2f727322346ffdbf98f65e" - integrity sha512-I3Omiv6FGOC29dtlZhkfXO6pgkmukJSlT26QjVvS1DGZe/NzSVCPG41X0tS21oZkJYlovfj9qDWgKP+Cn4bXxw== +"@babel/generator@^7.16.8", "@babel/generator@^7.17.3": + version "7.17.3" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.3.tgz#a2c30b0c4f89858cb87050c3ffdfd36bdf443200" + integrity sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg== dependencies: "@babel/types" "^7.17.0" jsesc "^2.5.1" @@ -87,10 +107,10 @@ browserslist "^4.17.5" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7": - version "7.17.1" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.1.tgz#9699f14a88833a7e055ce57dcd3ffdcd25186b21" - integrity sha512-JBdSr/LtyYIno/pNnJ75lBcqc3Z1XXujzPanHqjvvrhOA+DTceTFuJi8XjmWTZh4r3fsdfqaCMN0iZemdkxZHQ== +"@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7", "@babel/helper-create-class-features-plugin@^7.17.6": + version "7.17.6" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.6.tgz#3778c1ed09a7f3e65e6d6e0f6fbfcc53809d92c9" + integrity sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg== dependencies: "@babel/helper-annotate-as-pure" "^7.16.7" "@babel/helper-environment-visitor" "^7.16.7" @@ -182,9 +202,9 @@ "@babel/types" "^7.16.7" "@babel/helper-module-transforms@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz#7665faeb721a01ca5327ddc6bba15a5cb34b6a41" - integrity sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng== + version "7.17.6" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.17.6.tgz#3c3b03cc6617e33d68ef5a27a67419ac5199ccd0" + integrity sha512-2ULmRdqoOMpdvkbT8jONrZML/XALfzxlb052bldftkicAUy8AxSCkD5trDPQcwHNmolcl7wP6ehNqMlyUw6AaA== dependencies: "@babel/helper-environment-visitor" "^7.16.7" "@babel/helper-module-imports" "^7.16.7" @@ -192,8 +212,8 @@ "@babel/helper-split-export-declaration" "^7.16.7" "@babel/helper-validator-identifier" "^7.16.7" "@babel/template" "^7.16.7" - "@babel/traverse" "^7.16.7" - "@babel/types" "^7.16.7" + "@babel/traverse" "^7.17.3" + "@babel/types" "^7.17.0" "@babel/helper-optimise-call-expression@^7.16.7": version "7.16.7" @@ -268,10 +288,10 @@ "@babel/traverse" "^7.16.8" "@babel/types" "^7.16.8" -"@babel/helpers@^7.17.0": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.0.tgz#79cdf6c66a579f3a7b5e739371bc63ca0306886b" - integrity sha512-Xe/9NFxjPwELUvW2dsukcMZIp6XwPSbI4ojFBJuX5ramHuVE22SVcZIwqzdWo5uCgeTXW8qV97lMvSOjq+1+nQ== +"@babel/helpers@^7.16.7", "@babel/helpers@^7.17.2": + version "7.17.2" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.2.tgz#23f0a0746c8e287773ccd27c14be428891f63417" + integrity sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ== dependencies: "@babel/template" "^7.16.7" "@babel/traverse" "^7.17.0" @@ -286,10 +306,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.16.7", "@babel/parser@^7.17.0": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.0.tgz#f0ac33eddbe214e4105363bb17c3341c5ffcc43c" - integrity sha512-VKXSCQx5D8S04ej+Dqsr1CzYvvWgf20jIw2D+YhQCrIlr2UZGaDds23Y0xg75/skOxpLCRpUZvk/1EAVkGoDOw== +"@babel/parser@^7.16.12", "@babel/parser@^7.16.7", "@babel/parser@^7.17.3": + version "7.17.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.3.tgz#b07702b982990bf6fdc1da5049a23fece4c5c3d0" + integrity sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7": version "7.16.7" @@ -316,7 +336,7 @@ "@babel/helper-remap-async-to-generator" "^7.16.8" "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-proposal-class-properties@^7.14.5", "@babel/plugin-proposal-class-properties@^7.16.7": +"@babel/plugin-proposal-class-properties@7.16.7", "@babel/plugin-proposal-class-properties@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz#925cad7b3b1a2fcea7e59ecc8eb5954f961f91b0" integrity sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww== @@ -325,15 +345,15 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-proposal-class-static-block@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.7.tgz#712357570b612106ef5426d13dc433ce0f200c2a" - integrity sha512-dgqJJrcZoG/4CkMopzhPJjGxsIe9A8RlkQLnL/Vhhx8AA9ZuaRwGSlscSh42hazc7WSrya/IK7mTeoF0DP9tEw== + version "7.17.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz#164e8fd25f0d80fa48c5a4d1438a6629325ad83c" + integrity sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA== dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.7" + "@babel/helper-create-class-features-plugin" "^7.17.6" "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-class-static-block" "^7.14.5" -"@babel/plugin-proposal-dynamic-import@^7.14.5", "@babel/plugin-proposal-dynamic-import@^7.16.7": +"@babel/plugin-proposal-dynamic-import@7.16.7", "@babel/plugin-proposal-dynamic-import@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz#c19c897eaa46b27634a00fee9fb7d829158704b2" integrity sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg== @@ -341,7 +361,7 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@babel/plugin-proposal-export-namespace-from@^7.14.5", "@babel/plugin-proposal-export-namespace-from@^7.16.7": +"@babel/plugin-proposal-export-namespace-from@7.16.7", "@babel/plugin-proposal-export-namespace-from@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz#09de09df18445a5786a305681423ae63507a6163" integrity sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA== @@ -357,7 +377,7 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-proposal-logical-assignment-operators@^7.14.5", "@babel/plugin-proposal-logical-assignment-operators@^7.16.7": +"@babel/plugin-proposal-logical-assignment-operators@7.16.7", "@babel/plugin-proposal-logical-assignment-operators@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz#be23c0ba74deec1922e639832904be0bea73cdea" integrity sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg== @@ -365,7 +385,7 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.14.5", "@babel/plugin-proposal-nullish-coalescing-operator@^7.16.7": +"@babel/plugin-proposal-nullish-coalescing-operator@7.16.7", "@babel/plugin-proposal-nullish-coalescing-operator@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz#141fc20b6857e59459d430c850a0011e36561d99" integrity sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ== @@ -373,7 +393,7 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-proposal-numeric-separator@^7.14.5", "@babel/plugin-proposal-numeric-separator@^7.16.7": +"@babel/plugin-proposal-numeric-separator@7.16.7", "@babel/plugin-proposal-numeric-separator@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz#d6b69f4af63fb38b6ca2558442a7fb191236eba9" integrity sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw== @@ -382,11 +402,11 @@ "@babel/plugin-syntax-numeric-separator" "^7.10.4" "@babel/plugin-proposal-object-rest-spread@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.7.tgz#94593ef1ddf37021a25bdcb5754c4a8d534b01d8" - integrity sha512-3O0Y4+dw94HA86qSg9IHfyPktgR7q3gpNVAeiKQd+8jBKFaU5NQS1Yatgo4wY+UFNuLjvxcSmzcsHqrhgTyBUA== + version "7.17.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz#d9eb649a54628a51701aef7e0ea3d17e2b9dd390" + integrity sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw== dependencies: - "@babel/compat-data" "^7.16.4" + "@babel/compat-data" "^7.17.0" "@babel/helper-compilation-targets" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" @@ -400,7 +420,7 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@^7.14.5", "@babel/plugin-proposal-optional-chaining@^7.16.7": +"@babel/plugin-proposal-optional-chaining@7.16.7", "@babel/plugin-proposal-optional-chaining@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz#7cd629564724816c0e8a969535551f943c64c39a" integrity sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA== @@ -409,7 +429,7 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-proposal-private-methods@^7.14.5", "@babel/plugin-proposal-private-methods@^7.16.11": +"@babel/plugin-proposal-private-methods@7.16.11", "@babel/plugin-proposal-private-methods@^7.16.11": version "7.16.11" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz#e8df108288555ff259f4527dbe84813aac3a1c50" integrity sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw== @@ -417,7 +437,7 @@ "@babel/helper-create-class-features-plugin" "^7.16.10" "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-proposal-private-property-in-object@^7.14.5", "@babel/plugin-proposal-private-property-in-object@^7.16.7": +"@babel/plugin-proposal-private-property-in-object@7.16.7", "@babel/plugin-proposal-private-property-in-object@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz#b0b8cef543c2c3d57e59e2c611994861d46a3fce" integrity sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ== @@ -435,7 +455,7 @@ "@babel/helper-create-regexp-features-plugin" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-syntax-async-generators@^7.8.4": +"@babel/plugin-syntax-async-generators@7.8.4", "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== @@ -470,7 +490,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-json-strings@^7.8.3": +"@babel/plugin-syntax-json-strings@7.8.3", "@babel/plugin-syntax-json-strings@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== @@ -505,14 +525,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-object-rest-spread@^7.8.3": +"@babel/plugin-syntax-object-rest-spread@7.8.3", "@babel/plugin-syntax-object-rest-spread@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-optional-catch-binding@^7.8.3": +"@babel/plugin-syntax-optional-catch-binding@7.8.3", "@babel/plugin-syntax-optional-catch-binding@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== @@ -599,9 +619,9 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-transform-destructuring@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.7.tgz#ca9588ae2d63978a4c29d3f33282d8603f618e23" - integrity sha512-VqAwhTHBnu5xBVDCvrvqJbtLUa++qZaWC0Fgr2mqokBlulZARGyIvZDoqbPlPaKImQ9dKAcCzbv+ul//uqu70A== + version "7.17.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.3.tgz#c445f75819641788a27a0a3a759d9df911df6abc" + integrity sha512-dDFzegDYKlPqa72xIlbmSkly5MluLoaC1JswABGktyt6NTXSBcUuse/kWE/wvKFWJHPETpi158qJZFS3JmykJg== dependencies: "@babel/helper-plugin-utils" "^7.16.7" @@ -667,7 +687,7 @@ "@babel/helper-plugin-utils" "^7.16.7" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.14.5", "@babel/plugin-transform-modules-commonjs@^7.16.8": +"@babel/plugin-transform-modules-commonjs@7.16.8", "@babel/plugin-transform-modules-commonjs@^7.16.8": version "7.16.8" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz#cdee19aae887b16b9d331009aa9a219af7c86afe" integrity sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA== @@ -732,7 +752,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-react-jsx@^7.14.5": +"@babel/plugin-transform-react-jsx@7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.7.tgz#86a6a220552afd0e4e1f0388a68a372be7add0d4" integrity sha512-8D16ye66fxiE8m890w0BpPpngG9o9OVBBy0gH2E+2AR7qMR2ZpTYJEqLxAsoroenMId0p/wMW+Blc0meDgu0Ag== @@ -908,7 +928,7 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/preset-typescript@^7.14.5": +"@babel/preset-typescript@7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz#ab114d68bb2020afc069cd51b37ff98a046a70b9" integrity sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ== @@ -918,9 +938,9 @@ "@babel/plugin-transform-typescript" "^7.16.7" "@babel/runtime@^7.8.4": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.0.tgz#b8d142fc0f7664fb3d9b5833fd40dcbab89276c0" - integrity sha512-etcO/ohMNaNA2UBdaXBBSX/3aEzFMRrVfaPv8Ptc0k+cWpWW0QFiGZ2XnVqQZI1Cf734LbPGmqBKWESfW4x/dQ== + version "7.17.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.2.tgz#66f68591605e59da47523c631416b18508779941" + integrity sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw== dependencies: regenerator-runtime "^0.13.4" @@ -933,18 +953,18 @@ "@babel/parser" "^7.16.7" "@babel/types" "^7.16.7" -"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.0": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.0.tgz#3143e5066796408ccc880a33ecd3184f3e75cd30" - integrity sha512-fpFIXvqD6kC7c7PUNnZ0Z8cQXlarCLtCUpt2S1Dx7PjoRtCFffvOkHHSom+m5HIxMZn5bIBVb71lhabcmjEsqg== +"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.10", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.0", "@babel/traverse@^7.17.3": + version "7.17.3" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.3.tgz#0ae0f15b27d9a92ba1f2263358ea7c4e7db47b57" + integrity sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw== dependencies: "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.0" + "@babel/generator" "^7.17.3" "@babel/helper-environment-visitor" "^7.16.7" "@babel/helper-function-name" "^7.16.7" "@babel/helper-hoist-variables" "^7.16.7" "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.17.0" + "@babel/parser" "^7.17.3" "@babel/types" "^7.17.0" debug "^4.1.0" globals "^11.1.0" @@ -974,7 +994,7 @@ ajv "^6.12.0" ajv-keywords "^3.4.1" -"@electron/get@^1.13.0", "@electron/get@^1.6.0": +"@electron/get@^1.13.0": version "1.13.1" resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.13.1.tgz#42a0aa62fd1189638bd966e23effaebb16108368" integrity sha512-U5vkXDZ9DwXtkPqlB45tfYnnYBN8PePp1z/XDCupnSpdrxT8/ThCv9WCwPLf9oqiSGZTkH6dx2jDUPuoXpjkcA== @@ -1002,14 +1022,14 @@ fs-extra "^9.0.1" "@gar/promisify@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.2.tgz#30aa825f11d438671d585bd44e7fd564535fc210" - integrity sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw== + version "1.1.3" + resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" + integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== -"@jest/types@^27.2.5", "@jest/types@^27.4.2": - version "27.4.2" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.4.2.tgz#96536ebd34da6392c2b7c7737d693885b5dd44a5" - integrity sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg== +"@jest/types@^27.2.5", "@jest/types@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.5.1.tgz#3c79ec4a8ba61c170bf937bcf9e98a9df175ec80" + integrity sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw== dependencies: "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" @@ -1018,17 +1038,22 @@ chalk "^4.0.0" "@jridgewell/resolve-uri@^3.0.3": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.4.tgz#b876e3feefb9c8d3aa84014da28b5e52a0640d72" - integrity sha512-cz8HFjOFfUBtvN+NXYSFMHYRdxZMaEl0XypVrhzxBgadKIXhIkRd8aMeHhmF56Sl7SuS8OnUpQ73/k9LE4VnLg== + version "3.0.5" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz#68eb521368db76d040a6315cdb24bf2483037b9c" + integrity sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew== -"@jridgewell/trace-mapping@^0.2.2": - version "0.2.5" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.2.5.tgz#d5061cc513fd3a0a949feb56b8073989865b1abe" - integrity sha512-K+Eths78fXDFOvQ2hgJhCiI5s+g81r2yXmACBpbn+f2+Qt94PNoTgUcAXPT8DZkhXCsZRsHVWVtY5KIBMcpDqQ== +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.11" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz#771a1d8d744eeb71b6adb35808e1a6c7b9b8c8ec" + integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg== + +"@jridgewell/trace-mapping@^0.3.0": + version "0.3.4" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz#f6a0832dffd5b8a6aaa633b7d9f8e8e94c83a0c3" + integrity sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ== dependencies: "@jridgewell/resolve-uri" "^3.0.3" - sourcemap-codec "1.4.8" + "@jridgewell/sourcemap-codec" "^1.4.10" "@malept/cross-spawn-promise@^1.1.0": version "1.1.1" @@ -1053,9 +1078,9 @@ integrity sha512-ugvXJjwF5ldtUpa7D95kruNJ41yFQDEKyF5CW4TgKJnh+W/zmlBzXXeKTyqIgwMFrkePN2JqOBqcF0M0oOunow== "@npmcli/fs@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.0.tgz#bec1d1b89c170d40e1b73ad6c943b0b75e7d2951" - integrity sha512-VhP1qZLXcrXRIaPoqb4YA55JQxLNF3jNR4T55IdOJa3+IFJKNYHtPvtXx8slmeMavj37vCzCfrqQM1vWLsYKLA== + version "1.1.1" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257" + integrity sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ== dependencies: "@gar/promisify" "^1.0.1" semver "^7.3.5" @@ -1068,162 +1093,215 @@ mkdirp "^1.0.4" rimraf "^3.0.2" -"@playwright/test@^1.18.1": - version "1.18.1" - resolved "https://registry.yarnpkg.com/@playwright/test/-/test-1.18.1.tgz#efaa3aa9c7f8aebeb75cd45fd9737529e9b30fbd" - integrity sha512-v6jAM2GpRvf4MUvSLkrAXg101XT9mLu2X2NbCnEoj7GHBXwavDlAJDMwh4Hn8oipDxB6MS6FTcr7opXsIMNwrA== +"@playwright/test@^1.19.2": + version "1.19.2" + resolved "https://registry.yarnpkg.com/@playwright/test/-/test-1.19.2.tgz#429d1aa70f5e4cd521cdc8a5d9861ae4fcda3f7c" + integrity sha512-5oCmlYHjtOL662OxSkZBYGnoHWIQui7b4YHWNeSCYwhQjmjVcV5njRc8oBZlU8IwJgG7ZH2yhDk1haU96ygbWw== dependencies: - "@babel/code-frame" "^7.14.5" - "@babel/core" "^7.14.8" - "@babel/plugin-proposal-class-properties" "^7.14.5" - "@babel/plugin-proposal-dynamic-import" "^7.14.5" - "@babel/plugin-proposal-export-namespace-from" "^7.14.5" - "@babel/plugin-proposal-logical-assignment-operators" "^7.14.5" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.14.5" - "@babel/plugin-proposal-numeric-separator" "^7.14.5" - "@babel/plugin-proposal-optional-chaining" "^7.14.5" - "@babel/plugin-proposal-private-methods" "^7.14.5" - "@babel/plugin-proposal-private-property-in-object" "^7.14.5" - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-transform-modules-commonjs" "^7.14.5" - "@babel/plugin-transform-react-jsx" "^7.14.5" - "@babel/preset-typescript" "^7.14.5" - babel-plugin-module-resolver "^4.1.0" + "@babel/code-frame" "7.16.7" + "@babel/core" "7.16.12" + "@babel/plugin-proposal-class-properties" "7.16.7" + "@babel/plugin-proposal-dynamic-import" "7.16.7" + "@babel/plugin-proposal-export-namespace-from" "7.16.7" + "@babel/plugin-proposal-logical-assignment-operators" "7.16.7" + "@babel/plugin-proposal-nullish-coalescing-operator" "7.16.7" + "@babel/plugin-proposal-numeric-separator" "7.16.7" + "@babel/plugin-proposal-optional-chaining" "7.16.7" + "@babel/plugin-proposal-private-methods" "7.16.11" + "@babel/plugin-proposal-private-property-in-object" "7.16.7" + "@babel/plugin-syntax-async-generators" "7.8.4" + "@babel/plugin-syntax-json-strings" "7.8.3" + "@babel/plugin-syntax-object-rest-spread" "7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "7.8.3" + "@babel/plugin-transform-modules-commonjs" "7.16.8" + "@babel/plugin-transform-react-jsx" "7.16.7" + "@babel/preset-typescript" "7.16.7" + babel-plugin-module-resolver "4.1.0" colors "1.4.0" - commander "^8.2.0" - debug "^4.1.1" - expect "=27.2.5" - jest-matcher-utils "=27.2.5" - jpeg-js "^0.4.2" - json5 "^2.2.0" - mime "^2.4.6" - minimatch "^3.0.3" - ms "^2.1.2" - open "^8.3.0" - pirates "^4.0.1" - pixelmatch "^5.2.1" - playwright-core "=1.18.1" - pngjs "^5.0.0" - rimraf "^3.0.2" - source-map-support "^0.4.18" - stack-utils "^2.0.3" - yazl "^2.5.1" + commander "8.3.0" + debug "4.3.3" + expect "27.2.5" + jest-matcher-utils "27.2.5" + jpeg-js "0.4.3" + json5 "2.2.0" + mime "3.0.0" + minimatch "3.0.4" + ms "2.1.3" + open "8.4.0" + pirates "4.0.4" + pixelmatch "5.2.1" + playwright-core "1.19.2" + pngjs "6.0.0" + rimraf "3.0.2" + source-map-support "0.4.18" + stack-utils "2.0.5" + yazl "2.5.1" -"@sentry/browser@6.7.1": - version "6.7.1" - resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-6.7.1.tgz#e01144a08984a486ecc91d7922cc457e9c9bd6b7" - integrity sha512-R5PYx4TTvifcU790XkK6JVGwavKaXwycDU0MaAwfc4Vf7BLm5KCNJCsDySu1RPAap/017MVYf54p6dWvKiRviA== +"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" + integrity sha1-m4sMxmPWaafY9vXQiToU00jzD78= + +"@protobufjs/base64@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" + integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== + +"@protobufjs/codegen@^2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" + integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== + +"@protobufjs/eventemitter@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" + integrity sha1-NVy8mLr61ZePntCV85diHx0Ga3A= + +"@protobufjs/fetch@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" + integrity sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU= dependencies: - "@sentry/core" "6.7.1" - "@sentry/types" "6.7.1" - "@sentry/utils" "6.7.1" + "@protobufjs/aspromise" "^1.1.1" + "@protobufjs/inquire" "^1.1.0" + +"@protobufjs/float@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" + integrity sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E= + +"@protobufjs/inquire@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" + integrity sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik= + +"@protobufjs/path@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" + integrity sha1-bMKyDFya1q0NzP0hynZz2Nf79o0= + +"@protobufjs/pool@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" + integrity sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q= + +"@protobufjs/utf8@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" + integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= + +"@sentry/browser@6.17.2": + version "6.17.2" + resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-6.17.2.tgz#8e794b846f43a341068c83420918d896683d903e" + integrity sha512-4Ow5z9GxK5dG9+stBNKb7s6NoxE4wgEcHRmO66QTK4gH2NNmzV4R/aaZ7iDoS/lD86sH0M86jm76dpg9uiJPmw== + dependencies: + "@sentry/core" "6.17.2" + "@sentry/types" "6.17.2" + "@sentry/utils" "6.17.2" tslib "^1.9.3" -"@sentry/core@6.7.1": - version "6.7.1" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.7.1.tgz#c3aaa6415d06bec65ac446b13b84f073805633e3" - integrity sha512-VAv8OR/7INn2JfiLcuop4hfDcyC7mfL9fdPndQEhlacjmw8gRrgXjR7qyhnCTgzFLkHI7V5bcdIzA83TRPYQpA== +"@sentry/core@6.17.2": + version "6.17.2" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.17.2.tgz#f218920f269ccdbaee20a092bbc90a71a007cc88" + integrity sha512-Uew0CNMr+QvowrF4EJYjOUgHep/sZJ3l5zevPEELugIgqWBodd+ZDCV3fQFR7cr6KOqx1rMgVrgcKIkLl0l+RA== dependencies: - "@sentry/hub" "6.7.1" - "@sentry/minimal" "6.7.1" - "@sentry/types" "6.7.1" - "@sentry/utils" "6.7.1" + "@sentry/hub" "6.17.2" + "@sentry/minimal" "6.17.2" + "@sentry/types" "6.17.2" + "@sentry/utils" "6.17.2" tslib "^1.9.3" -"@sentry/electron@^2.5.4": - version "2.5.4" - resolved "https://registry.yarnpkg.com/@sentry/electron/-/electron-2.5.4.tgz#337b2f7e228e805a3e4eb3611c7b12c6cf87c618" - integrity sha512-tCCK+P581TmdjsDpHBQz7qYcldzGdUk1Fd6FPxPy1JKGzeY4uf/uSLKzR80Lzs5kTpEZFOwiMHSA8yjwFp5qoA== +"@sentry/electron@^3.0.2": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@sentry/electron/-/electron-3.0.4.tgz#ce69bab9b2f6a7b92183e9fff138a0f79c5c76e3" + integrity sha512-IsvhxtHeBLNoRMMfsOHrWghNoJZodJ2lC95Qm22Nsk/qm3W11YMxa38u/l1aKU2f3gmu3Gbti4sT+3eNXD/bKg== dependencies: - "@sentry/browser" "6.7.1" - "@sentry/core" "6.7.1" - "@sentry/minimal" "6.7.1" - "@sentry/node" "6.7.1" - "@sentry/types" "6.7.1" - "@sentry/utils" "6.7.1" - tslib "^2.2.0" + "@sentry/browser" "6.17.2" + "@sentry/core" "6.17.2" + "@sentry/node" "6.17.2" + "@sentry/types" "6.17.2" + "@sentry/utils" "6.17.2" + deepmerge "^4.2.2" + tslib "^2.3.1" -"@sentry/hub@6.7.1": - version "6.7.1" - resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.7.1.tgz#d46d24deec67f0731a808ca16796e6765b371bc1" - integrity sha512-eVCTWvvcp6xa0A5GGNHMQEWslmKPlisE5rGmsV/kjvSUv3zSrI0eIDfb51ikdnCiBjHpK2NBWP8Vy8cZOEJegg== +"@sentry/hub@6.17.2": + version "6.17.2" + resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.17.2.tgz#d92accada845fa21fff1b2b491d3c6964851693b" + integrity sha512-CMi6jU920bTwRTmGHjP4u8toOx4gm1dsx+rsxvp+FKzqRwpwoyi9mOw8oEYERVzaqaYceGdFylyRUrjdf0f77g== dependencies: - "@sentry/types" "6.7.1" - "@sentry/utils" "6.7.1" + "@sentry/types" "6.17.2" + "@sentry/utils" "6.17.2" tslib "^1.9.3" -"@sentry/integrations@^6.17.4": - version "6.17.4" - resolved "https://registry.yarnpkg.com/@sentry/integrations/-/integrations-6.17.4.tgz#a894526ce25020aea1dc9b2f2a4aa584c7de9b3a" - integrity sha512-NmFbv9w4AK1d4NYi0beTuJgn6t81bdiGZmkNZ9VKVI0mBfoZfwxIo7fGNrla3HMkeTwLHntXuzUu4v+w1EARqA== +"@sentry/integrations@^6.18.1": + version "6.18.2" + resolved "https://registry.yarnpkg.com/@sentry/integrations/-/integrations-6.18.2.tgz#caed0092e8a6c9fb0b8b7efd2deef946ca76e626" + integrity sha512-jzEH15m1dewzma2Fp0ENNRUDEOI3gGPfC/+lsLAuj9AMoNZ6qykQP8cB8OPTlzIZc0oyWGAE/1LoTrndPAvoPA== dependencies: - "@sentry/types" "6.17.4" - "@sentry/utils" "6.17.4" + "@sentry/types" "6.18.2" + "@sentry/utils" "6.18.2" localforage "^1.8.1" tslib "^1.9.3" -"@sentry/minimal@6.7.1": - version "6.7.1" - resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.7.1.tgz#babf85ee2f167e9dcf150d750d7a0b250c98449c" - integrity sha512-HDDPEnQRD6hC0qaHdqqKDStcdE1KhkFh0RCtJNMCDn0zpav8Dj9AteF70x6kLSlliAJ/JFwi6AmQrLz+FxPexw== +"@sentry/minimal@6.17.2": + version "6.17.2" + resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.17.2.tgz#3b482a0d76aa33b6c9441dd21acbcc3a113e5120" + integrity sha512-Cdh+iM6QhLKfxwUWWP4mk2K7+EsQj4tuF2dGQke4Zcbp7zQ7wbcMruUcZHiZfvg5kiSYxwNVkH7cXMzcO7AJsg== dependencies: - "@sentry/hub" "6.7.1" - "@sentry/types" "6.7.1" + "@sentry/hub" "6.17.2" + "@sentry/types" "6.17.2" tslib "^1.9.3" -"@sentry/node@6.7.1": - version "6.7.1" - resolved "https://registry.yarnpkg.com/@sentry/node/-/node-6.7.1.tgz#b09e2eca8e187168feba7bd865a23935bf0f5cc0" - integrity sha512-rtZo1O8ROv4lZwuljQz3iFZW89oXSlgXCG2VqkxQyRspPWu89abROpxLjYzsWwQ8djnur1XjFv51kOLDUTS6Qw== +"@sentry/node@6.17.2": + version "6.17.2" + resolved "https://registry.yarnpkg.com/@sentry/node/-/node-6.17.2.tgz#32a5fa00b64a331073daf1e44f500c8c57184eb1" + integrity sha512-358z45WaejnsE8RZVpuLJJiFVCSEi0TRY7P60CljZuz8rnvniD3G0tuXChvu4djVty8NScWZHT/QoxvuJdTHgQ== dependencies: - "@sentry/core" "6.7.1" - "@sentry/hub" "6.7.1" - "@sentry/tracing" "6.7.1" - "@sentry/types" "6.7.1" - "@sentry/utils" "6.7.1" + "@sentry/core" "6.17.2" + "@sentry/hub" "6.17.2" + "@sentry/tracing" "6.17.2" + "@sentry/types" "6.17.2" + "@sentry/utils" "6.17.2" cookie "^0.4.1" https-proxy-agent "^5.0.0" lru_map "^0.3.3" tslib "^1.9.3" -"@sentry/tracing@6.7.1": - version "6.7.1" - resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-6.7.1.tgz#b11f0c17a6c5dc14ef44733e5436afb686683268" - integrity sha512-wyS3nWNl5mzaC1qZ2AIp1hjXnfO9EERjMIJjCihs2LWBz1r3efxrHxJHs8wXlNWvrT3KLhq/7vvF5CdU82uPeQ== +"@sentry/tracing@6.17.2": + version "6.17.2" + resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-6.17.2.tgz#437337071fdeffa319746905b3706518b099ec6b" + integrity sha512-oWY2Ga+5D5f90utvfF2Y0eQvme+eS768ZWjR+klRYgZWoY8r1v8uWwWsvroYU1g+h6X0G/xh3giFjsdOWtRENw== dependencies: - "@sentry/hub" "6.7.1" - "@sentry/minimal" "6.7.1" - "@sentry/types" "6.7.1" - "@sentry/utils" "6.7.1" + "@sentry/hub" "6.17.2" + "@sentry/minimal" "6.17.2" + "@sentry/types" "6.17.2" + "@sentry/utils" "6.17.2" tslib "^1.9.3" -"@sentry/types@6.17.4": - version "6.17.4" - resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.17.4.tgz#36b78d7c4a6de19b2bbc631bb34893bcad30c0ba" - integrity sha512-RUyiXCKf61k2GIMP7FQX0naoSew4zLxe+UrtbjwVcWU4AFPZfH7tLNtTpVE85zAKbxsaiq3OD2FPtTZarHcwxQ== +"@sentry/types@6.17.2": + version "6.17.2" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.17.2.tgz#4dde3423db5953e798b19ed29618c28fc7bf2e30" + integrity sha512-UrFLRDz5mn253O8k/XftLxoldF+NyZdkqKLGIQmST5HEVr7ub9nQJ4Y5ZFA3zJYWpraaW8faIbuw+pgetC8hmQ== -"@sentry/types@6.7.1": - version "6.7.1" - resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.7.1.tgz#c8263e1886df5e815570c4668eb40a1cfaa1c88b" - integrity sha512-9AO7HKoip2MBMNQJEd6+AKtjj2+q9Ze4ooWUdEvdOVSt5drg7BGpK221/p9JEOyJAZwEPEXdcMd3VAIMiOb4MA== +"@sentry/types@6.18.2": + version "6.18.2" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.18.2.tgz#f528fec8b75c19d5a6976004e71703184c6cf7be" + integrity sha512-WzpJf/Q5aORTzrSwer/As1NlO90dBAQpaHV2ikDDKqOyMWEgjKb5/4gh59p9gH8JMMnLetP1AvQel0fOj5UnUw== -"@sentry/utils@6.17.4": - version "6.17.4" - resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.17.4.tgz#4f109629d2e7f16c5595b4367445ef47bfe96b61" - integrity sha512-+ENzZbrlVL1JJ+FoK2EOS27nbA/yToeaJPFlyVOnbthUxVyN3TTi9Uzn9F05fIE/2BTkOEk89wPtgcHafgrD6A== +"@sentry/utils@6.17.2": + version "6.17.2" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.17.2.tgz#e8044e753b47f86068053c8d79e4ae61a39b6732" + integrity sha512-ePWtO44KJQwUULOiU86fa1WU3Ird2TH0i39gqB2d3zNS3QyVp9qPlzSdPKSPJ9LdgadzBHw7ikEuE+GY8JTrhA== dependencies: - "@sentry/types" "6.17.4" + "@sentry/types" "6.17.2" tslib "^1.9.3" -"@sentry/utils@6.7.1": - version "6.7.1" - resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.7.1.tgz#909184ad580f0f6375e1e4d4a6ffd33dfe64a4d1" - integrity sha512-Tq2otdbWlHAkctD+EWTYKkEx6BL1Qn3Z/imkO06/PvzpWvVhJWQ5qHAzz5XnwwqNHyV03KVzYB6znq1Bea9HuA== +"@sentry/utils@6.18.2": + version "6.18.2" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.18.2.tgz#c572a3ff49113e7dc4c97db1a18d117f199b9fff" + integrity sha512-EC619jesknyu4xpwud5WC/5odYLz6JUy7OSFy5405PpdGeh/m8XUvuJAx4zDx0Iz/Mlk0S1Md+ZcQwqkv39dkw== dependencies: - "@sentry/types" "6.7.1" + "@sentry/types" "6.18.2" tslib "^1.9.3" "@sindresorhus/is@^0.14.0": @@ -1232,9 +1310,9 @@ integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== "@sindresorhus/is@^4.0.0": - version "4.4.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.4.0.tgz#e277e5bdbdf7cb1e20d320f02f5e2ed113cd3185" - integrity sha512-QppPM/8l3Mawvh4rn9CNEYIU9bxpXUCRMaX9yUpvBk1nMKusLKpfXGDEKExKaPhLzcn3lzil7pR6rnJ11HgeRQ== + version "4.6.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" + integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== "@szmarczak/http-timer@^1.1.2": version "1.1.2" @@ -1260,6 +1338,11 @@ resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== +"@tootallnate/once@2": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" + integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== + "@types/body-parser@*": version "1.19.2" resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" @@ -1297,7 +1380,7 @@ resolved "https://registry.yarnpkg.com/@types/discord-rpc/-/discord-rpc-4.0.0.tgz#29080812b9092996046af1a21138fb488d180f87" integrity sha512-a5HiKOcBkB43g/lN6fBYw8FyGc6Ue9CYucxxHxXlELXpb1CxCa2NA2pGK2Ub88pi4uY5+HQeSFbYtH6DJtV3Qw== -"@types/eslint-scope@^3.7.0": +"@types/eslint-scope@^3.7.3": version "3.7.3" resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.3.tgz#125b88504b61e3c8bc6f870882003253005c3224" integrity sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g== @@ -1313,10 +1396,10 @@ "@types/estree" "*" "@types/json-schema" "*" -"@types/estree@*", "@types/estree@^0.0.50": - version "0.0.50" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83" - integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw== +"@types/estree@*", "@types/estree@^0.0.51": + version "0.0.51" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" + integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== "@types/express-serve-static-core@^4.17.18": version "4.17.28" @@ -1393,6 +1476,11 @@ dependencies: "@types/node" "*" +"@types/long@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.1.tgz#459c65fa1867dafe6a8f322c4c51695663cc55e9" + integrity sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w== + "@types/mime@^1": version "1.3.2" resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" @@ -1408,15 +1496,15 @@ resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== -"@types/node@*": - version "17.0.14" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.14.tgz#33b9b94f789a8fedd30a68efdbca4dbb06b61f20" - integrity sha512-SbjLmERksKOGzWzPNuW7fJM7fk3YXVTFiZWB/Hs99gwhk+/dnrQRPBQjPW9aO+fi1tAffi9PrwFvsmOKmDTyng== +"@types/node@*", "@types/node@>=13.7.0": + version "17.0.21" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.21.tgz#864b987c0c68d07b4345845c3e63b75edd143644" + integrity sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ== "@types/node@^14.6.2": - version "14.18.10" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.10.tgz#774f43868964f3cfe4ced1f5417fe15818a4eaea" - integrity sha512-6iihJ/Pp5fsFJ/aEDGyvT4pHGmCpq7ToQ/yf4bl5SbVAvwpspYJ+v3jO7n8UyjhQVHTy+KNszOozDdv+O6sovQ== + version "14.18.12" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.12.tgz#0d4557fd3b94497d793efd4e7d92df2f83b4ef24" + integrity sha512-q4jlIR71hUpWTnGhXWcakgkZeHa3CCjcQcnuzU8M891BAWA2jHiziiWEPEkdS5pFsz7H9HJiy8BrK7tBRNrY7A== "@types/plist@^3.0.1": version "3.0.2" @@ -1514,17 +1602,17 @@ anymatch "^3.0.0" source-map "^0.6.0" -"@types/ws@^8.2.2": - version "8.2.2" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.2.2.tgz#7c5be4decb19500ae6b3d563043cd407bf366c21" - integrity sha512-NOn5eIcgWLOo6qW8AcuLZ7G8PycXu0xTxxkS6Q18VWFxgPUSOwV0pBj2a/4viNZVu25i7RIB7GttdkAIUUXOOg== +"@types/ws@^8.5.1": + version "8.5.2" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.2.tgz#77e0c2e360e9579da930ffcfa53c5975ea3bdd26" + integrity sha512-VXI82ykONr5tacHEojnErTQk+KQSoYbW1NB6iz6wUwrNd+BqfkfggQNoNdCqhJSzbNumShPERbM+Pc5zpfhlbw== dependencies: "@types/node" "*" "@types/yargs-parser@*": - version "20.2.1" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129" - integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw== + version "21.0.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" + integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== "@types/yargs@^16.0.0": version "16.0.4" @@ -1534,9 +1622,9 @@ "@types/yargs-parser" "*" "@types/yargs@^17.0.1": - version "17.0.8" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.8.tgz#d23a3476fd3da8a0ea44b5494ca7fa677b9dad4c" - integrity sha512-wDeUwiUmem9FzsyysEwRukaEdDNcwbROvQ9QGRKaLI6t+IltNzbn4/i4asmB10auvZGQCzSQ6t0GSczEThlUXw== + version "17.0.9" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.9.tgz#f1f931a4e5ae2c0134dea10f501088636a50b46a" + integrity sha512-Ci8+4/DOtkHRylcisKmVMtmVO5g7weUVCKcsu1sJvF1bn0wExTmbHmhFKj7AnEm0de800iovGhdSKzYnzbaHpg== dependencies: "@types/yargs-parser" "*" @@ -1691,7 +1779,7 @@ abstract-socket@^2.0.0: bindings "^1.2.1" nan "^2.12.1" -accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: +accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: version "1.3.8" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== @@ -1704,11 +1792,16 @@ acorn-import-assertions@^1.7.6: resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== -acorn@^8.4.1: +acorn@^8.4.1, acorn@^8.5.0: version "8.7.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== +adm-zip@0.4.10: + version "0.4.10" + resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.10.tgz#6efb1090e78a12db377f3ba5f27b363f21988ac1" + integrity sha512-075E4f1zFxHbsnn6C4OI4jVzUT1zV+M68QdBxcVxmO/Yqk35CFnFFYLaepvth68gzlIlyQ/hkaI2JY99Nh3C5Q== + agent-base@6, agent-base@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" @@ -1717,9 +1810,9 @@ agent-base@6, agent-base@^6.0.2: debug "4" agentkeepalive@^4.1.3: - version "4.2.0" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.2.0.tgz#616ce94ccb41d1a39a45d203d8076fe98713062d" - integrity sha512-0PhAp58jZNw13UJv7NVdTGb0ZcghHUb3DrZ046JiiJY/BOaTTpbwdHq2VObPCBV8M2GPh7sgrJ3AQ8Ey468LJw== + version "4.2.1" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.2.1.tgz#a7975cbb9f83b367f06c90cc51ff28fe7d499717" + integrity sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA== dependencies: debug "^4.1.0" depd "^1.1.2" @@ -1761,9 +1854,9 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.1, ajv@^6.12.0, ajv@^6.12.4, ajv@^6.12.5: uri-js "^4.2.2" ajv@^8.0.0, ajv@^8.6.3: - version "8.9.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.9.0.tgz#738019146638824dea25edcf299dcba1b0e7eb18" - integrity sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ== + version "8.10.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.10.0.tgz#e573f719bd3af069017e3b66538ab968d040e54d" + integrity sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw== dependencies: fast-deep-equal "^3.1.1" json-schema-traverse "^1.0.0" @@ -1829,7 +1922,7 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" -anymatch@^3.0.0: +anymatch@^3.0.0, anymatch@~3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== @@ -1842,10 +1935,10 @@ app-builder-bin@3.7.1: resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.7.1.tgz#cb0825c5e12efc85b196ac3ed9c89f076c61040e" integrity sha512-ql93vEUq6WsstGXD+SBLSIQw6SNnhbDEM0swzgugytMxLp3rT24Ag/jcC80ZHxiPRTdew1niuR7P3/FCrDqIjw== -app-builder-lib@22.14.5: - version "22.14.5" - resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.14.5.tgz#a61a50b132b858e98fdc70b6b88994ae99b4f96d" - integrity sha512-k3VwKP4kpsnUaXoUkm1s4zaSHPHIMFnN4kPMU9yXaKmE1LfHHqBaEah5bXeTAX5V/BC41wFdg8CF5vOjvgy8Rg== +app-builder-lib@22.14.13: + version "22.14.13" + resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.14.13.tgz#c1f5b6afc86596357598bb90b69eef06c7c2eeb3" + integrity sha512-SufmrtxU+D0Tn948fjEwAOlCN9757UXLkzzTWXMwZKR/5hisvgqeeBepWfphMIE6OkDGz0fbzEhL1P2Pty4XMg== dependencies: "7zip-bin" "~5.1.1" "@develar/schema-utils" "~2.6.5" @@ -1853,13 +1946,13 @@ app-builder-lib@22.14.5: "@malept/flatpak-bundler" "^0.4.0" async-exit-hook "^2.0.1" bluebird-lst "^1.0.9" - builder-util "22.14.5" - builder-util-runtime "8.9.1" + builder-util "22.14.13" + builder-util-runtime "8.9.2" chromium-pickle-js "^0.2.0" debug "^4.3.2" ejs "^3.1.6" electron-osx-sign "^0.5.0" - electron-publish "22.14.5" + electron-publish "22.14.13" form-data "^4.0.0" fs-extra "^10.0.0" hosted-git-info "^4.0.2" @@ -1883,10 +1976,10 @@ aproba@^1.1.1: resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== -are-we-there-yet@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz#372e0e7bd279d8e94c653aaa1f67200884bf3e1c" - integrity sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw== +are-we-there-yet@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz#ba20bd6b553e31d62fc8c31bd23d22b95734390d" + integrity sha512-0GWpv50YSOcLXaN6/FAKY3vfRbllXWV2xvfA/oKJF8pzFhWXPV+yjhJXDBbjscDYowv7Yw1A3uigpzn5iEGTyw== dependencies: delegates "^1.0.0" readable-stream "^3.6.0" @@ -1945,7 +2038,7 @@ array-unique@^0.3.2: resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= -asar@^3.0.3, asar@^3.1.0: +asar@^3.0.3: version "3.1.0" resolved "https://registry.yarnpkg.com/asar/-/asar-3.1.0.tgz#70b0509449fe3daccc63beb4d3c7d2e24d3c6473" integrity sha512-vyxPxP5arcAqN4F/ebHd/HhwnAiZtwhglvdmc7BR2f0ywbVNTOpSeyhLDbGXtE/y58hv1oC75TaNIXutnsOZsQ== @@ -1992,7 +2085,7 @@ async@0.9.x: resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0= -async@^2.6.2: +async@^2.6.0, async@^2.6.2: version "2.6.3" resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== @@ -2019,11 +2112,6 @@ atomically@^1.7.0: resolved "https://registry.yarnpkg.com/atomically/-/atomically-1.7.0.tgz#c07a0458432ea6dbc9a3506fffa424b48bccaafe" integrity sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w== -author-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/author-regex/-/author-regex-1.0.0.tgz#d08885be6b9bbf9439fe087c76287245f0a81450" - integrity sha1-0IiFvmubv5Q5/gh8dihyRfCoFFA= - babel-loader@^8.1.0: version "8.2.3" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.3.tgz#8986b40f1a64cacfcb4b8429320085ef68b1342d" @@ -2048,7 +2136,7 @@ babel-plugin-dynamic-import-node@^2.3.3: dependencies: object.assign "^4.1.0" -babel-plugin-module-resolver@^4.1.0: +babel-plugin-module-resolver@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/babel-plugin-module-resolver/-/babel-plugin-module-resolver-4.1.0.tgz#22a4f32f7441727ec1fbf4967b863e1e3e9f33e2" integrity sha512-MlX10UDheRr3lb3P0WcaIdtCSRlxdQsB1sBqL7W0raF070bGl1HQQq5K3T2vf2XAYie+ww+5AKC/WrkjRO2knA== @@ -2121,6 +2209,11 @@ binary-extensions@^1.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + bindings@^1.2.1, bindings@^1.3.0, bindings@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" @@ -2135,25 +2228,25 @@ bluebird-lst@^1.0.9: dependencies: bluebird "^3.5.5" -bluebird@^3.1.1, bluebird@^3.5.0, bluebird@^3.5.5, bluebird@^3.7.2: +bluebird@^3.5.0, bluebird@^3.5.1, bluebird@^3.5.5, bluebird@^3.7.2: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== -body-parser@1.19.1: - version "1.19.1" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.1.tgz#1499abbaa9274af3ecc9f6f10396c995943e31d4" - integrity sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA== +body-parser@1.19.2: + version "1.19.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.2.tgz#4714ccd9c157d44797b8b5607d72c0b89952f26e" + integrity sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw== dependencies: - bytes "3.1.1" + bytes "3.1.2" content-type "~1.0.4" debug "2.6.9" depd "~1.1.2" http-errors "1.8.1" iconv-lite "0.4.24" on-finished "~2.3.0" - qs "6.9.6" - raw-body "2.4.2" + qs "6.9.7" + raw-body "2.4.3" type-is "~1.6.18" bonjour@^3.5.0: @@ -2174,9 +2267,9 @@ boolbase@^1.0.0: integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= boolean@^3.0.1: - version "3.1.4" - resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.1.4.tgz#f51a2fb5838a99e06f9b6ec1edb674de67026435" - integrity sha512-3hx0kwU3uzG6ReQ3pnaFQPSktpBw6RHN3/ivDKEuU8g1XSfafowyvDnadjv1xp8IZqhtSukxlwv9bF6FhX8m0w== + version "3.2.0" + resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.2.0.tgz#9e5294af4e98314494cbb17979fa54ca159f116b" + integrity sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw== boxen@^5.0.0: version "5.1.2" @@ -2216,7 +2309,7 @@ braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" -braces@^3.0.1: +braces@^3.0.1, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== @@ -2224,14 +2317,14 @@ braces@^3.0.1: fill-range "^7.0.1" browserslist@^4.14.5, browserslist@^4.17.5, browserslist@^4.19.1: - version "4.19.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.1.tgz#4ac0435b35ab655896c31d53018b6dd5e9e4c9a3" - integrity sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A== + version "4.20.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.0.tgz#35951e3541078c125d36df76056e94738a52ebe9" + integrity sha512-bnpOoa+DownbciXj0jVGENf8VYQnE2LNWomhYuCsMmmx9Jd9lwq0WXODuwpSsp8AVdKM2/HorrzxAfbKvWTByQ== dependencies: - caniuse-lite "^1.0.30001286" - electron-to-chromium "^1.4.17" + caniuse-lite "^1.0.30001313" + electron-to-chromium "^1.4.76" escalade "^3.1.1" - node-releases "^2.0.1" + node-releases "^2.0.2" picocolors "^1.0.0" buffer-alloc-unsafe@^1.1.0: @@ -2280,29 +2373,31 @@ buffer@^5.1.0: base64-js "^1.3.1" ieee754 "^1.1.13" -builder-util-runtime@8.9.1: - version "8.9.1" - resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.9.1.tgz#25f066b3fbc20b3e6236a9b956b1ebb0e33ff66a" - integrity sha512-c8a8J3wK6BIVLW7ls+7TRK9igspTbzWmUqxFbgK0m40Ggm6efUbxtWVCGIjc+dtchyr5qAMAUL6iEGRdS/6vwg== +builder-util-runtime@8.9.2: + version "8.9.2" + resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.9.2.tgz#a9669ae5b5dcabfe411ded26678e7ae997246c28" + integrity sha512-rhuKm5vh7E0aAmT6i8aoSfEjxzdYEFX7zDApK+eNgOhjofnWb74d9SRJv0H/8nsgOkos0TZ4zxW0P8J4N7xQ2A== dependencies: debug "^4.3.2" sax "^1.2.4" -builder-util@22.14.5: - version "22.14.5" - resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.14.5.tgz#42a18608d2a566c0846e91266464776c8bfb0cc9" - integrity sha512-zqIHDFJwmA7jV7SC9aI+33MWwT2mWoijH+Ol9IntNAwuuRXoS+7XeJwnhLBXOhcDBzXT4kDzHnRk4JKeaygEYA== +builder-util@22.14.13: + version "22.14.13" + resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.14.13.tgz#41b5b7b4ee53aff4e09cc007fb144522598f3ce6" + integrity sha512-oePC/qrrUuerhmH5iaCJzPRAKlSBylrhzuAJmRQClTyWnZUv6jbaHh+VoHMbEiE661wrj2S2aV7/bQh12cj1OA== dependencies: "7zip-bin" "~5.1.1" "@types/debug" "^4.1.6" "@types/fs-extra" "^9.0.11" app-builder-bin "3.7.1" bluebird-lst "^1.0.9" - builder-util-runtime "8.9.1" + builder-util-runtime "8.9.2" chalk "^4.1.1" cross-spawn "^7.0.3" debug "^4.3.2" fs-extra "^10.0.0" + http-proxy-agent "^5.0.0" + https-proxy-agent "^5.0.0" is-ci "^3.0.0" js-yaml "^4.1.0" source-map-support "^0.5.19" @@ -2314,10 +2409,10 @@ bytes@3.0.0: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= -bytes@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.1.tgz#3f018291cb4cbad9accb6e6970bca9c8889e879a" - integrity sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg== +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== cacache@^13.0.1: version "13.0.1" @@ -2439,10 +2534,26 @@ camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001286: - version "1.0.30001306" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001306.tgz#582592afe243bad2223081b8abab07bf289cc699" - integrity sha512-Wd1OuggRzg1rbnM5hv1wXs2VkxJH/AA+LuudlIqvZiCvivF+wJJe2mgBZC8gPMgI7D76PP5CTx8Luvaqc1V6OQ== +caniuse-lite@^1.0.30001313: + version "1.0.30001314" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001314.tgz#65c7f9fb7e4594fca0a333bec1d8939662377596" + integrity sha512-0zaSO+TnCHtHJIbpLroX7nsD+vYuOVjl3uzFbJO1wMVbuveJA0RK2WcQA9ZUIOiO0/ArMiMgHJLxfEZhQiC0kw== + +castv2-client@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/castv2-client/-/castv2-client-1.2.0.tgz#a9193b1a5448b8cb9a0415bd021c8811ed7b0544" + integrity sha1-qRk7GlRIuMuaBBW9AhyIEe17BUQ= + dependencies: + castv2 "~0.1.4" + debug "^2.2.0" + +castv2@~0.1.4: + version "0.1.10" + resolved "https://registry.yarnpkg.com/castv2/-/castv2-0.1.10.tgz#d3df00124f1ba8a97691c69dd44221d3b5f93c56" + integrity sha512-3QWevHrjT22KdF08Y2a217IYCDQDP7vEJaY4n0lPBeC5UBYbMFMadDfVTsaQwq7wqsEgYUHElPGm3EO1ey+TNw== + dependencies: + debug "^4.1.1" + protobufjs "^6.8.8" chalk@^2.0.0, chalk@^2.4.2: version "2.4.2" @@ -2480,6 +2591,21 @@ chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" +chokidar@^3.5.3: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + chownr@^1.1.2: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" @@ -2611,7 +2737,7 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-support@^1.1.2: +color-support@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== @@ -2640,6 +2766,11 @@ commander@2.9.0: dependencies: graceful-readlink ">= 1.0.0" +commander@8.3.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" + integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== + commander@^2.20.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -2655,11 +2786,6 @@ commander@^5.0.0: resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== -commander@^8.2.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" - integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== - commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -2751,7 +2877,7 @@ connect-history-api-fallback@^1.6.0: resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== -console-control-strings@^1.0.0, console-control-strings@^1.1.0: +console-control-strings@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= @@ -2780,12 +2906,7 @@ cookie-signature@1.0.6: resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= -cookie@0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" - integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== - -cookie@^0.4.1: +cookie@0.4.2, cookie@^0.4.1: version "0.4.2" resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== @@ -2808,9 +2929,9 @@ copy-descriptor@^0.1.0: integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= core-js-compat@^3.20.2, core-js-compat@^3.21.0: - version "3.21.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.21.0.tgz#bcc86aa5a589cee358e7a7fa0a4979d5a76c3885" - integrity sha512-OSXseNPSK2OPJa6GdtkMz/XxeXx8/CJvfhQWTqd6neuUraujcL4jVsjkLQz1OWnax8xVQJnRPe0V2jqNWORA+A== + version "3.21.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.21.1.tgz#cac369f67c8d134ff8f9bd1623e3bc2c42068c82" + integrity sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g== dependencies: browserslist "^4.19.1" semver "7.0.0" @@ -2839,15 +2960,6 @@ crocket@^0.9.11: dependencies: xpipe "*" -cross-spawn-windows-exe@^1.1.0, cross-spawn-windows-exe@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/cross-spawn-windows-exe/-/cross-spawn-windows-exe-1.2.0.tgz#46253b0f497676e766faf4a7061004618b5ac5ec" - integrity sha512-mkLtJJcYbDCxEG7Js6eUnUNndWjyUZwJ3H7bErmmtOYU/Zb99DyUkpamuIZE0b3bhmJyZ7D90uS6f+CGxRRjOw== - dependencies: - "@malept/cross-spawn-promise" "^1.1.0" - is-wsl "^2.2.0" - which "^2.0.2" - cross-spawn@^6.0.0, cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" @@ -2859,7 +2971,7 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^7.0.1, cross-spawn@^7.0.3: +cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -2956,14 +3068,14 @@ debug@2.6.9, debug@^2.1.0, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6. dependencies: ms "2.0.0" -debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3: +debug@4, debug@4.3.3, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3: version "4.3.3" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== dependencies: ms "2.1.2" -debug@^3.1.0, debug@^3.1.1, debug@^3.2.6: +debug@^3.1.0, debug@^3.1.1, debug@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== @@ -3011,6 +3123,11 @@ deep-extend@^0.6.0: resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + default-gateway@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" @@ -3076,6 +3193,11 @@ del@^4.1.1: pify "^4.0.1" rimraf "^2.6.3" +delay@^4.3.0: + version "4.4.1" + resolved "https://registry.yarnpkg.com/delay/-/delay-4.4.1.tgz#6e02d02946a1b6ab98b39262ced965acba2ac4d1" + integrity sha512-aL3AhqtfhOlT/3ai6sWXeqwnw63ATNpnUiN4HL7x9q+My5QtHlO3OIkasmug9LKzpheLdmUKGRKnYXYAS7FQkQ== + delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -3106,10 +3228,10 @@ detect-node@^2.0.4: resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== -diff-sequences@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.4.0.tgz#d783920ad8d06ec718a060d00196dfef25b132a5" - integrity sha512-YqiQzkrsmHMH5uuh8OdQFU9/ZpADnwzml8z0O5HvRNda+5UZsaX/xN+AAxfR2hWq1Y7HZnAzO9J5lJXOuDz2Ww== +diff-sequences@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.5.1.tgz#eaecc0d327fd68c8d9672a1e64ab8dccb2ef5327" + integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ== dijkstrajs@^1.0.1: version "1.0.2" @@ -3136,14 +3258,14 @@ discord-rpc@^4.0.1: optionalDependencies: register-scheme "github:devsnek/node-register-scheme" -dmg-builder@22.14.5: - version "22.14.5" - resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.14.5.tgz#137c0b55e639badcc0b119eb060e6fa4ed61d948" - integrity sha512-1GvFGQE332bvPamcMwZDqWqfWfJTyyDLOsHMcGi0zs+Jh7JOn6/zuBkHJIWHdsj2QJbhzLVyd2/ZqttOKv7I8w== +dmg-builder@22.14.13: + version "22.14.13" + resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.14.13.tgz#cc613f3c18e889b8777d525991fd52f50a564f8c" + integrity sha512-xNOugB6AbIRETeU2uID15sUfjdZZcKdxK8xkFnwIggsM00PJ12JxpLNPTjcRoUnfwj3WrPjilrO64vRMwNItQg== dependencies: - app-builder-lib "22.14.5" - builder-util "22.14.5" - builder-util-runtime "8.9.1" + app-builder-lib "22.14.13" + builder-util "22.14.13" + builder-util-runtime "8.9.2" fs-extra "^10.0.0" iconv-lite "^0.6.2" js-yaml "^4.1.0" @@ -3151,9 +3273,9 @@ dmg-builder@22.14.5: dmg-license "^1.0.9" dmg-license@^1.0.9: - version "1.0.10" - resolved "https://registry.yarnpkg.com/dmg-license/-/dmg-license-1.0.10.tgz#89f52afae25d827fce8d818c13aff30af1c16bcc" - integrity sha512-SVeeyiOeinV5JCPHXMdKOgK1YVbak/4+8WL2rBnfqRYpA5FaeFaQnQWb25x628am1w70CbipGDv9S51biph63A== + version "1.0.11" + resolved "https://registry.yarnpkg.com/dmg-license/-/dmg-license-1.0.11.tgz#7b3bc3745d1b52be7506b4ee80cb61df6e4cd79a" + integrity sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q== dependencies: "@types/plist" "^3.0.1" "@types/verror" "^1.10.3" @@ -3294,17 +3416,25 @@ ejs@^3.1.6: dependencies: jake "^10.6.1" -electron-builder@^22.14.5: - version "22.14.5" - resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.14.5.tgz#3a25547bd4fe3728d4704da80956a794c5c31496" - integrity sha512-N73hSbXFz6Mz5Z6h6C5ly6CB+dUN6k1LuCDJjI8VF47bMXv/QE0HE+Kkb0GPKqTqM7Hsk/yIYX+kHCfSkR5FGg== +electron-builder-notarize-pkg@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/electron-builder-notarize-pkg/-/electron-builder-notarize-pkg-1.2.0.tgz#c6f4b0027418be465b2ab41effc6eecc68110bcb" + integrity sha512-ibnOeZwXxEPIzPujHfsLoCG+x4BcRQndBQoRyvTEZEeCeO/D4uu3TSAPeNXZuKfoL3h2auaIBIhh4He5HgY1rw== + dependencies: + delay "^4.3.0" + execa "^4.0.0" + +electron-builder@^22.14.13: + version "22.14.13" + resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.14.13.tgz#fd40564685cf5422a8f8d667940af3d3776f4fb8" + integrity sha512-3fgLxqF2TXVKiUPeg74O4V3l0l3j7ERLazo8sUbRkApw0+4iVAf2BJkHsHMaXiigsgCoEzK/F4/rB5rne/VAnw== dependencies: "@types/yargs" "^17.0.1" - app-builder-lib "22.14.5" - builder-util "22.14.5" - builder-util-runtime "8.9.1" + app-builder-lib "22.14.13" + builder-util "22.14.13" + builder-util-runtime "8.9.2" chalk "^4.1.1" - dmg-builder "22.14.5" + dmg-builder "22.14.13" fs-extra "^10.0.0" is-ci "^3.0.0" lazy-val "^1.0.5" @@ -3329,10 +3459,10 @@ electron-fetch@^1.7.4: dependencies: encoding "^0.1.13" -electron-log@^4.4.5: - version "4.4.5" - resolved "https://registry.yarnpkg.com/electron-log/-/electron-log-4.4.5.tgz#5fcfd0c2dc5fbda915ee0a9d802705dc57930786" - integrity sha512-Cfa2CKnwBhlUfIl/qr2GF5SCqfoA9yPBqTJ6/wPs+PEn36M2+EZ3RpGSaOhYQ1BZpolL1CWyeu3gMG8epLl3Ng== +electron-log@^4.4.6: + version "4.4.6" + resolved "https://registry.yarnpkg.com/electron-log/-/electron-log-4.4.6.tgz#e7824fc725370384f6edaaac0480c423e570dc69" + integrity sha512-nirYgRdY+F+vclr8ijdwy2vW03IzFpDHTaKNWu76dEN21Y76+smcES5knS7cgHUUB0qNLOi8vZO36taakjbSXA== electron-notarize@^1.1.1: version "1.1.1" @@ -3354,38 +3484,14 @@ electron-osx-sign@^0.5.0: minimist "^1.2.0" plist "^3.0.1" -electron-packager@^15.4.0: - version "15.4.0" - resolved "https://registry.yarnpkg.com/electron-packager/-/electron-packager-15.4.0.tgz#07ea036b70cde2062d4c8dce4d907d793b303998" - integrity sha512-JrrLcBP15KGrPj0cZ/ALKGmaQ4gJkn3mocf0E3bRKdR3kxKWYcDRpCvdhksYDXw/r3I6tMEcZ7XzyApWFXdVpw== - dependencies: - "@electron/get" "^1.6.0" - asar "^3.1.0" - cross-spawn-windows-exe "^1.2.0" - debug "^4.0.1" - electron-notarize "^1.1.1" - electron-osx-sign "^0.5.0" - extract-zip "^2.0.0" - filenamify "^4.1.0" - fs-extra "^9.0.0" - galactus "^0.2.1" - get-package-info "^1.0.0" - junk "^3.1.0" - parse-author "^2.0.0" - plist "^3.0.0" - rcedit "^3.0.1" - resolve "^1.1.6" - semver "^7.1.3" - yargs-parser "^20.0.0" - -electron-publish@22.14.5: - version "22.14.5" - resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.14.5.tgz#34bcdce671f0e651330db20040d6919c77c94bd6" - integrity sha512-h+NANRdaA0PqGF15GKvorseWPzh1PXa/zx4I37//PIokW8eKIov8ky23foUSb55ZFWUHGpxQJux7y2NCfBtQeg== +electron-publish@22.14.13: + version "22.14.13" + resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.14.13.tgz#8b71e6975af8cc6ac5b21f293ade23f8704047c7" + integrity sha512-0oP3QiNj3e8ewOaEpEJV/o6Zrmy2VarVvZ/bH7kyO/S/aJf9x8vQsKVWpsdmSiZ5DJEHgarFIXrnO0ZQf0P9iQ== dependencies: "@types/fs-extra" "^9.0.11" - builder-util "22.14.5" - builder-util-runtime "8.9.1" + builder-util "22.14.13" + builder-util-runtime "8.9.2" chalk "^4.1.1" fs-extra "^10.0.0" lazy-val "^1.0.5" @@ -3399,18 +3505,18 @@ electron-store@^8.0.1: conf "^10.0.3" type-fest "^1.0.2" -electron-to-chromium@^1.4.17: - version "1.4.64" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.64.tgz#8b1b5372f77ca208f2c498c6490da0e51176bd81" - integrity sha512-8mec/99xgLUZCIZZq3wt61Tpxg55jnOSpxGYapE/1Ma9MpFEYYaz4QNYm0CM1rrnCo7i3FRHhbaWjeCLsveGjQ== +electron-to-chromium@^1.4.76: + version "1.4.80" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.80.tgz#299a1ea3e32810934b4e3c2e4d4cb53136fdab3f" + integrity sha512-COsbJCGVYCc/aAY4cd94x1Js3q0r406YKGbdL8LXHg0O9dEjuFEFU/vZneRxBxKo/f1lLHi0YyAR7sbFM+i8Bg== -electron-updater@^4.6.1: - version "4.6.1" - resolved "https://registry.yarnpkg.com/electron-updater/-/electron-updater-4.6.1.tgz#80ca805c4f51b2e682aac29d18fed75d6a533d32" - integrity sha512-YsU1mHqXLrXXmBMsxhxy24PrbaB8rnpZDPmFa2gOkTYk/Ch13+R0fjsRSpPYvqtskVVY0ux8fu+HnUkVkqc7og== +electron-updater@^4.6.5: + version "4.6.5" + resolved "https://registry.yarnpkg.com/electron-updater/-/electron-updater-4.6.5.tgz#e9a75458bbfd6bb41a58a829839e150ad2eb2d3d" + integrity sha512-kdTly8O9mSZfm9fslc1mnCY+mYOeaYRy7ERa2Fed240u01BKll3aiupzkd07qKw69KvhBSzuHroIW3mF0D8DWA== dependencies: "@types/semver" "^7.3.6" - builder-util-runtime "8.9.1" + builder-util-runtime "8.9.2" fs-extra "^10.0.0" js-yaml "^4.1.0" lazy-val "^1.0.5" @@ -3473,8 +3579,8 @@ electron-window-state@^5.0.3: mkdirp "^0.5.1" "electron@git+https://github.com/castlabs/electron-releases.git": - version "18.0.0-alpha.1" - resolved "git+https://github.com/castlabs/electron-releases.git#513890a7edda1f9723fbf410a4806b4cabd88827" + version "18.0.0-alpha.5" + resolved "git+https://github.com/castlabs/electron-releases.git#4f424eddd6ec2569c5f293778ba8056205805247" dependencies: "@electron/get" "^1.13.0" "@types/node" "^14.6.2" @@ -3529,9 +3635,9 @@ enhanced-resolve@^4.1.1: tapable "^1.0.0" enhanced-resolve@^5.8.3: - version "5.8.3" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz#6d552d465cce0423f5b3d718511ea53826a7b2f0" - integrity sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA== + version "5.9.2" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.9.2.tgz#0224dcd6a43389ebfb2d55efee517e5466772dd9" + integrity sha512-GIm3fQfwLJ8YZx2smuHpBKkXC1yOk+OBEmKckVyL0i/ea8mqDEykK3ld5dgH1QYPNyT/lIllxV2LULnxCHaHkA== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -3558,7 +3664,7 @@ errno@^0.1.3: dependencies: prr "~1.0.1" -error-ex@^1.2.0, error-ex@^1.3.1: +error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== @@ -3625,7 +3731,7 @@ escape-html@~1.0.3: resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: +escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= @@ -3703,7 +3809,7 @@ events@^3.2.0: resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== -eventsource@^1.0.7: +eventsource@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.1.0.tgz#00e8ca7c92109e94b0ddf32dac677d841028cfaf" integrity sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg== @@ -3723,6 +3829,21 @@ execa@^1.0.0: signal-exit "^3.0.0" strip-eof "^1.0.0" +execa@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" + integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + expand-brackets@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" @@ -3743,7 +3864,7 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2: dependencies: homedir-polyfill "^1.0.1" -expect@=27.2.5: +expect@27.2.5: version "27.2.5" resolved "https://registry.yarnpkg.com/expect/-/expect-27.2.5.tgz#16154aaa60b4d9a5b0adacfea3e4d6178f4b93fd" integrity sha512-ZrO0w7bo8BgGoP/bLz+HDCI+0Hfei9jUSZs5yI/Wyn9VkG9w8oJ7rHRgYj+MA7yqqFa0IwHA3flJzZtYugShJA== @@ -3755,17 +3876,17 @@ expect@=27.2.5: jest-message-util "^27.2.5" jest-regex-util "^27.0.6" -express@^4.17.1, express@^4.17.2: - version "4.17.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.17.2.tgz#c18369f265297319beed4e5558753cc8c1364cb3" - integrity sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg== +express@^4.17.1, express@^4.17.3: + version "4.17.3" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.3.tgz#f6c7302194a4fb54271b73a1fe7a06478c8f85a1" + integrity sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg== dependencies: - accepts "~1.3.7" + accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.19.1" + body-parser "1.19.2" content-disposition "0.5.4" content-type "~1.0.4" - cookie "0.4.1" + cookie "0.4.2" cookie-signature "1.0.6" debug "2.6.9" depd "~1.1.2" @@ -3780,7 +3901,7 @@ express@^4.17.1, express@^4.17.2: parseurl "~1.3.3" path-to-regexp "0.1.7" proxy-addr "~2.0.7" - qs "6.9.6" + qs "6.9.7" range-parser "~1.2.1" safe-buffer "5.2.1" send "0.17.2" @@ -3806,6 +3927,11 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: assign-symbols "^1.0.0" is-extendable "^1.0.1" +extend@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + extglob@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" @@ -3820,17 +3946,7 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -extract-zip@^1.0.3: - version "1.7.0" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" - integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== - dependencies: - concat-stream "^1.6.2" - debug "^2.6.9" - mkdirp "^0.5.4" - yauzl "^2.10.0" - -extract-zip@^2.0.0, extract-zip@^2.0.1: +extract-zip@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== @@ -3841,6 +3957,16 @@ extract-zip@^2.0.0, extract-zip@^2.0.1: optionalDependencies: "@types/yauzl" "^2.9.1" +extract-zip@^1.0.3: + version "1.7.0" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" + integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== + dependencies: + concat-stream "^1.6.2" + debug "^2.6.9" + mkdirp "^0.5.4" + yauzl "^2.10.0" + extsprintf@^1.2.0: version "1.4.1" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" @@ -3861,7 +3987,7 @@ fast-safe-stringify@^2.0.6: resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== -faye-websocket@^0.11.3: +faye-websocket@^0.11.3, faye-websocket@^0.11.4: version "0.11.4" resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== @@ -3909,20 +4035,6 @@ filelist@^1.0.1: dependencies: minimatch "^3.0.4" -filename-reserved-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229" - integrity sha1-q/c9+rc10EVECr/qLZHzieu/oik= - -filenamify@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-4.3.0.tgz#62391cb58f02b09971c9d4f9d63b3cf9aba03106" - integrity sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg== - dependencies: - filename-reserved-regex "^2.0.0" - strip-outer "^1.0.1" - trim-repeated "^1.0.0" - fill-range@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" @@ -3970,13 +4082,6 @@ find-cache-dir@^3.3.1: make-dir "^3.0.2" pkg-dir "^4.1.0" -find-up@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - find-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" @@ -4002,18 +4107,10 @@ findup-sync@^3.0.0: micromatch "^3.0.4" resolve-dir "^1.0.1" -flora-colossus@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/flora-colossus/-/flora-colossus-1.0.1.tgz#aba198425a8185341e64f9d2a6a96fd9a3cbdb93" - integrity sha512-d+9na7t9FyH8gBJoNDSi28mE4NgQVGGvxQ4aHtFRetjyh5SXjuus+V5EZaxFmFdXVemSOrx0lsgEl/ZMjnOWJA== - dependencies: - debug "^4.1.1" - fs-extra "^7.0.0" - follow-redirects@^1.0.0: - version "1.14.7" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.7.tgz#2004c02eb9436eee9a21446a6477debf17e81685" - integrity sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ== + version "1.14.9" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.9.tgz#dd4ea157de7bfaf9ea9b3fbd85aa16951f78d8d7" + integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w== for-in@^1.0.2: version "1.0.2" @@ -4052,32 +4149,14 @@ from@~0: integrity sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4= fs-extra@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" - integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ== + version "10.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.1.tgz#27de43b4320e833f6867cc044bfce29fdf0ef3b8" + integrity sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag== dependencies: graceful-fs "^4.2.0" jsonfile "^6.0.1" universalify "^2.0.0" -fs-extra@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" - integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-extra@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" - integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - fs-extra@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" @@ -4127,34 +4206,29 @@ fsevents@^1.2.7: bindings "^1.5.0" nan "^2.12.1" +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -galactus@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/galactus/-/galactus-0.2.1.tgz#cbed2d20a40c1f5679a35908e2b9415733e78db9" - integrity sha1-y+0tIKQMH1Z5o1kI4rlBVzPnjbk= - dependencies: - debug "^3.1.0" - flora-colossus "^1.0.0" - fs-extra "^4.0.0" - gauge@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.0.tgz#afba07aa0374a93c6219603b1fb83eaa2264d8f8" - integrity sha512-F8sU45yQpjQjxKkm1UOAhf0U/O0aFt//Fl7hsrNVto+patMHjs7dPI9mFOGUKbhrgKm0S3EjW3scMFuQmWSROw== + version "4.0.3" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.3.tgz#286cf105c1962c659f0963058fb05116c1b82d3f" + integrity sha512-ICw1DhAwMtb22rYFwEHgJcx1JCwJGv3x6G0OQUq56Nge+H4Q8JEwr8iveS0XFlsUNSI67F5ffMGK25bK4Pmskw== dependencies: - ansi-regex "^5.0.1" aproba "^1.0.3 || ^2.0.0" - color-support "^1.1.2" - console-control-strings "^1.0.0" + color-support "^1.1.3" + console-control-strings "^1.1.0" has-unicode "^2.0.1" - signal-exit "^3.0.0" + signal-exit "^3.0.7" string-width "^4.2.3" strip-ansi "^6.0.1" - wide-align "^1.1.2" + wide-align "^1.1.5" gensync@^1.0.0-beta.2: version "1.0.0-beta.2" @@ -4175,16 +4249,6 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: has "^1.0.3" has-symbols "^1.0.1" -get-package-info@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-package-info/-/get-package-info-1.0.0.tgz#6432796563e28113cd9474dbbd00052985a4999c" - integrity sha1-ZDJ5ZWPigRPNlHTbvQAFKYWkmZw= - dependencies: - bluebird "^3.1.1" - debug "^2.2.0" - lodash.get "^4.0.0" - read-pkg-up "^2.0.0" - get-port@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" @@ -4197,7 +4261,7 @@ get-stream@^4.0.0, get-stream@^4.1.0: dependencies: pump "^3.0.0" -get-stream@^5.1.0: +get-stream@^5.0.0, get-stream@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== @@ -4225,6 +4289,13 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" +glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + glob-to-regexp@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" @@ -4364,7 +4435,7 @@ got@^9.6.0: to-readable-stream "^1.0.0" url-parse-lax "^3.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.4, graceful-fs@^4.2.6: +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: version "4.2.9" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== @@ -4395,9 +4466,9 @@ has-flag@^4.0.0: integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== has-symbols@^1.0.1, has-symbols@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" - integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== has-tostringtag@^1.0.0: version "1.0.0" @@ -4471,11 +4542,6 @@ homedir-polyfill@^1.0.1: dependencies: parse-passwd "^1.0.0" -hosted-git-info@^2.1.4: - version "2.8.9" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" - integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== - hosted-git-info@^4.0.2: version "4.1.0" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" @@ -4588,9 +4654,9 @@ http-errors@~1.6.2: statuses ">= 1.4.0 < 2" http-parser-js@>=0.5.1: - version "0.5.5" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.5.tgz#d7c30d5d3c90d865b4a2e870181f9d6f22ac7ac5" - integrity sha512-x+JVEkO2PoM8qqpbPbOL3cqHPwerep7OwzK7Ay+sMQjKzaKCqWvjoXm5tqMP9tXWWTnTzAjIhXg+J99XYuPhPA== + version "0.5.6" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.6.tgz#2e02406ab2df8af8a7abfba62e0da01c62b95afd" + integrity sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA== http-proxy-agent@^4.0.1: version "4.0.1" @@ -4601,6 +4667,15 @@ http-proxy-agent@^4.0.1: agent-base "6" debug "4" +http-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" + integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== + dependencies: + "@tootallnate/once" "2" + agent-base "6" + debug "4" + http-proxy-middleware@0.19.1: version "0.19.1" resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" @@ -4628,7 +4703,7 @@ http2-wrapper@^1.0.0-beta.5.2: quick-lru "^5.1.1" resolve-alpn "^1.0.0" -https-proxy-agent@^5.0.0: +https-proxy-agent@5.0.0, https-proxy-agent@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== @@ -4636,6 +4711,11 @@ https-proxy-agent@^5.0.0: agent-base "6" debug "4" +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + humanize-ms@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" @@ -4826,6 +4906,13 @@ is-binary-path@^1.0.0: dependencies: binary-extensions "^1.0.0" +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + is-boolean-object@^1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" @@ -4943,7 +5030,7 @@ is-glob@^3.1.0: dependencies: is-extglob "^2.1.0" -is-glob@^4.0.0: +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== @@ -5051,6 +5138,11 @@ is-stream@^1.1.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" @@ -5143,22 +5235,22 @@ jake@^10.6.1: filelist "^1.0.1" minimatch "^3.0.4" -jest-diff@^27.2.5, jest-diff@^27.4.6: - version "27.4.6" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.4.6.tgz#93815774d2012a2cbb6cf23f84d48c7a2618f98d" - integrity sha512-zjaB0sh0Lb13VyPsd92V7HkqF6yKRH9vm33rwBt7rPYrpQvS1nCvlIy2pICbKta+ZjWngYLNn4cCK4nyZkjS/w== +jest-diff@^27.2.5, jest-diff@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.5.1.tgz#a07f5011ac9e6643cf8a95a462b7b1ecf6680def" + integrity sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw== dependencies: chalk "^4.0.0" - diff-sequences "^27.4.0" - jest-get-type "^27.4.0" - pretty-format "^27.4.6" + diff-sequences "^27.5.1" + jest-get-type "^27.5.1" + pretty-format "^27.5.1" -jest-get-type@^27.0.6, jest-get-type@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.4.0.tgz#7503d2663fffa431638337b3998d39c5e928e9b5" - integrity sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ== +jest-get-type@^27.0.6, jest-get-type@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.5.1.tgz#3cd613c507b0f7ace013df407a1c1cd578bcb4f1" + integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw== -jest-matcher-utils@=27.2.5: +jest-matcher-utils@27.2.5: version "27.2.5" resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.2.5.tgz#4684faaa8eb32bf15e6edaead6834031897e2980" integrity sha512-qNR/kh6bz0Dyv3m68Ck2g1fLW5KlSOUNcFQh87VXHZwWc/gY6XwnKofx76Qytz3x5LDWT09/2+yXndTkaG4aWg== @@ -5169,34 +5261,34 @@ jest-matcher-utils@=27.2.5: pretty-format "^27.2.5" jest-matcher-utils@^27.2.5: - version "27.4.6" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.4.6.tgz#53ca7f7b58170638590e946f5363b988775509b8" - integrity sha512-XD4PKT3Wn1LQnRAq7ZsTI0VRuEc9OrCPFiO1XL7bftTGmfNF0DcEwMHRgqiu7NGf8ZoZDREpGrCniDkjt79WbA== + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz#9c0cdbda8245bc22d2331729d1091308b40cf8ab" + integrity sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw== dependencies: chalk "^4.0.0" - jest-diff "^27.4.6" - jest-get-type "^27.4.0" - pretty-format "^27.4.6" + jest-diff "^27.5.1" + jest-get-type "^27.5.1" + pretty-format "^27.5.1" jest-message-util@^27.2.5: - version "27.4.6" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.4.6.tgz#9fdde41a33820ded3127465e1a5896061524da31" - integrity sha512-0p5szriFU0U74czRSFjH6RyS7UYIAkn/ntwMuOwTGWrQIOh5NzXXrq72LOqIkJKKvFbPq+byZKuBz78fjBERBA== + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.5.1.tgz#bdda72806da10d9ed6425e12afff38cd1458b6cf" + integrity sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^27.4.2" + "@jest/types" "^27.5.1" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" - graceful-fs "^4.2.4" + graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^27.4.6" + pretty-format "^27.5.1" slash "^3.0.0" stack-utils "^2.0.3" jest-regex-util@^27.0.6: - version "27.4.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.4.0.tgz#e4c45b52653128843d07ad94aec34393ea14fbca" - integrity sha512-WeCpMpNnqJYMQoOjm1nTtsgbR4XHAk1u00qDoNBQoykM280+/TmgA5Qh5giC1ecy6a5d4hbSsHzpBtu5yvlbEg== + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.5.1.tgz#4da143f7e9fd1e542d4aa69617b38e4a78365b95" + integrity sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg== jest-worker@^25.4.0: version "25.5.0" @@ -5207,15 +5299,15 @@ jest-worker@^25.4.0: supports-color "^7.0.0" jest-worker@^27.4.5: - version "27.4.6" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.4.6.tgz#5d2d93db419566cb680752ca0792780e71b3273e" - integrity sha512-gHWJF/6Xi5CTG5QCvROr6GcmpIqNYpDJyc8A1h/DyXqH1tD6SnRCM0d3U5msV31D2LB/U+E0M+W4oyvKV44oNw== + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== dependencies: "@types/node" "*" merge-stream "^2.0.0" supports-color "^8.0.0" -jpeg-js@^0.4.2: +jpeg-js@0.4.3: version "0.4.3" resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.4.3.tgz#6158e09f1983ad773813704be80680550eff977b" integrity sha512-ru1HWKek8octvUHFHvE5ZzQ1yAsJmIvRdGWvSoKV52XKyuyYA437QWDttXT8eZXDSbuMpHlLzPDZUPd6idIz+Q== @@ -5290,10 +5382,12 @@ json-stringify-safe@^5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= -json3@^3.3.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" - integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== +json5@2.2.0, json5@^2.1.0, json5@^2.1.2, json5@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" + integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== + dependencies: + minimist "^1.2.5" json5@^0.5.1: version "0.5.1" @@ -5307,13 +5401,6 @@ json5@^1.0.1: dependencies: minimist "^1.2.0" -json5@^2.1.0, json5@^2.1.2, json5@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" - integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== - dependencies: - minimist "^1.2.5" - jsonc@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/jsonc/-/jsonc-2.0.0.tgz#9e2a25100d164a9bb864c57517563717fa882551" @@ -5342,11 +5429,6 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" -junk@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/junk/-/junk-3.1.0.tgz#31499098d902b7e98c5d9b9c80f43457a88abfa1" - integrity sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ== - keyv@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" @@ -5355,9 +5437,9 @@ keyv@^3.0.0: json-buffer "3.0.0" keyv@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.1.0.tgz#8ab5ca4ae6a34e05c629531d9a7f871575af0d5b" - integrity sha512-YsY3wr6HabE11/sscee+3nZ03XjvkrPWGouAmJFBdZoK92wiOlJCzI5/sDEIKdJhdhHO144ei45U9gXfbu14Uw== + version "4.1.1" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.1.1.tgz#02c538bfdbd2a9308cc932d4096f05ae42bfa06a" + integrity sha512-tGv1yP6snQVDSM4X6yxrv2zzq/EvpW+oYiUz6aueW1u9CtS8RzUQYxxmFwgZlO2jSgCxQbchhxaqXXp2hnKGpQ== dependencies: json-buffer "3.0.1" @@ -5423,16 +5505,6 @@ lie@3.1.1: dependencies: immediate "~3.0.5" -load-json-file@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" - integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - strip-bom "^3.0.0" - loader-runner@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384" @@ -5463,14 +5535,6 @@ localforage@^1.8.1: dependencies: lie "3.1.1" -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - locate-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" @@ -5496,11 +5560,6 @@ lodash.escaperegexp@^4.1.2: resolved "https://registry.yarnpkg.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz#64762c48618082518ac3df4ccf5d5886dae20347" integrity sha1-ZHYsSGGAglGKw99Mz11YhtriA0c= -lodash.get@^4.0.0: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" - integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= - lodash.isequal@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" @@ -5617,9 +5676,9 @@ matcher@^3.0.0: dependencies: escape-string-regexp "^4.0.0" -"mdns-js@git+https://github.com/bitfocus/node-mdns-js.git": +"mdns-js@git+https://github.com/ciderapp/node-mdns-js.git": version "1.0.7" - resolved "git+https://github.com/bitfocus/node-mdns-js.git#1af6b83ce91e5538012f977e1dcadbda5dc0d3b5" + resolved "git+https://github.com/ciderapp/node-mdns-js.git#1af6b83ce91e5538012f977e1dcadbda5dc0d3b5" dependencies: debug "^4.1.1" dns-js "github:bitfocus/node-dns-js#v0.2.2" @@ -5693,11 +5752,16 @@ micromatch@^4.0.4: braces "^3.0.1" picomatch "^2.2.3" -mime-db@1.51.0, "mime-db@>= 1.43.0 < 2": +mime-db@1.51.0: version "1.51.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== +"mime-db@>= 1.43.0 < 2": + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.34" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" @@ -5710,7 +5774,12 @@ mime@1.6.0: resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== -mime@^2.4.4, mime@^2.4.6, mime@^2.5.2: +mime@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7" + integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== + +mime@^2.4.4, mime@^2.5.2: version "2.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== @@ -5750,13 +5819,20 @@ minimalistic-assert@^1.0.0: resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimatch@3.0.4, minimatch@^3.0.3, minimatch@^3.0.4: +minimatch@3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== dependencies: brace-expansion "^1.1.7" +minimatch@^3.0.4: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + minimist@^1.2.0, minimist@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" @@ -5867,7 +5943,7 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@2.1.3, ms@^2.0.0, ms@^2.1.1, ms@^2.1.2: +ms@2.1.3, ms@^2.0.0, ms@^2.1.1: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -5885,10 +5961,10 @@ multicast-dns@^6.0.1: dns-packet "^1.3.1" thunky "^1.0.2" -music-metadata@^7.11.4: - version "7.11.8" - resolved "https://registry.yarnpkg.com/music-metadata/-/music-metadata-7.11.8.tgz#be67ff6d5e5499d2a31a7044079cb83c03544cc2" - integrity sha512-KaJzxDlYId05zN029WaKhJYcT5FB0QmTRSGDq5bRfPTBUw4Hl0VvJvaO5C5mm0ATWMREecMANV9YUatLMg+0Mg== +music-metadata@^7.12.1: + version "7.12.2" + resolved "https://registry.yarnpkg.com/music-metadata/-/music-metadata-7.12.2.tgz#13771b5d88285afd93659ed2496912c92e0558b6" + integrity sha512-KO1L6q30b6HfGlDQk1VAdrZqCKi4Gy7pN7eZOZ0YZQkhF/KCLHxKCjKKli9ao9kIBC/9s+uXHvjW3bDIBWuGew== dependencies: "@tokenizer/token" "^0.3.0" content-type "^1.0.4" @@ -5896,7 +5972,7 @@ music-metadata@^7.11.4: file-type "16.5.3" media-typer "^1.1.0" strtok3 "^6.2.4" - token-types "^4.1.1" + token-types "^4.2.0" musickit-typescript@^1.2.4: version "1.2.4" @@ -5986,10 +6062,21 @@ node-loader@^0.6.0: resolved "https://registry.yarnpkg.com/node-loader/-/node-loader-0.6.0.tgz#c797ef51095ed5859902b157f6384f6361e05ae8" integrity sha1-x5fvUQle1YWZArFX9jhPY2HgWug= -node-releases@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5" - integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA== +node-releases@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.2.tgz#7139fe71e2f4f11b47d4d2986aaf8c48699e0c01" + integrity sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg== + +node-ssdp@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/node-ssdp/-/node-ssdp-4.0.1.tgz#ea5b2e9a287823b58b3ede348b22a08159cf718f" + integrity sha512-uJXkLZVuyaMg1qNbMbGQ6YzNzyOD+NLxYyxIJocPTKTVECPDokOiCZA686jTLXHMUnV34uY/lcUSJ+/5fhY43A== + dependencies: + async "^2.6.0" + bluebird "^3.5.1" + debug "^3.1.0" + extend "^3.0.1" + ip "^1.1.5" nopt@^5.0.0: version "5.0.0" @@ -5998,16 +6085,6 @@ nopt@^5.0.0: dependencies: abbrev "1" -normalize-package-data@^2.3.2: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" @@ -6015,7 +6092,7 @@ normalize-path@^2.1.1: dependencies: remove-trailing-separator "^1.0.1" -normalize-path@^3.0.0: +normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== @@ -6055,12 +6132,19 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" -npmlog@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-6.0.0.tgz#ba9ef39413c3d936ea91553db7be49c34ad0520c" - integrity sha512-03ppFRGlsyUaQFbGC2C8QWJN/C/K7PsfyD9aQdhVKAQIH4sQBc8WASqFBP7O+Ut4d2oo5LoeoboB3cGdBZSp6Q== +npm-run-path@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== dependencies: - are-we-there-yet "^2.0.0" + path-key "^3.0.0" + +npmlog@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-6.0.1.tgz#06f1344a174c06e8de9c6c70834cfba2964bba17" + integrity sha512-BTHDvY6nrRHuRfyjt1MAufLxYdVXZfd099H4+i1f0lPywNQyI4foeNXJRObB/uy+TYqUW0vAD9gbdSOXPst7Eg== + dependencies: + are-we-there-yet "^3.0.0" console-control-strings "^1.1.0" gauge "^4.0.0" set-blocking "^2.0.0" @@ -6161,14 +6245,14 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" -onetime@^5.1.2: +onetime@^5.1.0, onetime@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== dependencies: mimic-fn "^2.1.0" -open@^8.3.0: +open@8.4.0: version "8.4.0" resolved "https://registry.yarnpkg.com/open/-/open-8.4.0.tgz#345321ae18f8138f82565a910fdc6b39e8c244f8" integrity sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q== @@ -6206,13 +6290,6 @@ p-finally@^1.0.0: resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" @@ -6220,13 +6297,6 @@ p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.3.0: dependencies: p-try "^2.0.0" -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.0" - p-locate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" @@ -6267,11 +6337,6 @@ p-retry@^3.0.1: dependencies: retry "^0.12.0" -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" @@ -6295,20 +6360,6 @@ param-case@^3.0.3: dot-case "^3.0.4" tslib "^2.0.3" -parse-author@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/parse-author/-/parse-author-2.0.0.tgz#d3460bf1ddd0dfaeed42da754242e65fb684a81f" - integrity sha1-00YL8d3Q367tQtp1QkLmX7aEqB8= - dependencies: - author-regex "^1.0.0" - -parse-json@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= - dependencies: - error-ex "^1.2.0" - parse-json@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" @@ -6370,7 +6421,7 @@ path-key@^2.0.0, path-key@^2.0.1: resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= -path-key@^3.1.0: +path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== @@ -6385,13 +6436,6 @@ path-to-regexp@0.1.7: resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= -path-type@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" - integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= - dependencies: - pify "^2.0.0" - pause-stream@0.0.11: version "0.0.11" resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" @@ -6399,10 +6443,10 @@ pause-stream@0.0.11: dependencies: through "~2.3" -peek-readable@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/peek-readable/-/peek-readable-4.0.2.tgz#a5cb847e347d3eccdc37642c82d2b4155c1ab8af" - integrity sha512-9fMaz6zoxw9ypO1KZy5RDJgSupEtu0Q+g/OqqsVHX3rKGR8qehRLYzsFARZ4bVvdvfknKiXvuDbkMnO1g6cRpQ== +peek-readable@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/peek-readable/-/peek-readable-4.1.0.tgz#4ece1111bf5c2ad8867c314c81356847e8a62e72" + integrity sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg== pend@~1.2.0: version "1.2.0" @@ -6419,7 +6463,7 @@ picocolors@^1.0.0: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -picomatch@^2.0.4, picomatch@^2.2.3: +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== @@ -6451,12 +6495,12 @@ pinkie@^2.0.0: resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= -pirates@^4.0.1: - version "4.0.5" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" - integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== +pirates@4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.4.tgz#07df81e61028e402735cdd49db701e4885b4e6e6" + integrity sha512-ZIrVPH+A52Dw84R0L3/VS9Op04PuQ2SEoJL6bkshmiTic/HldyW9Tf7oH5mhJZBK7NmDx27vSMrYEXPXclpDKw== -pixelmatch@^5.2.1: +pixelmatch@5.2.1: version "5.2.1" resolved "https://registry.yarnpkg.com/pixelmatch/-/pixelmatch-5.2.1.tgz#9e4e4f4aa59648208a31310306a5bed5522b0d65" integrity sha512-WjcAdYSnKrrdDdqTcVEY7aB7UhhwjYQKYhHiBXdJef0MOaQeYpUdQ+iVyBLa5YBKS8MPVPPMX7rpOByISLpeEQ== @@ -6484,36 +6528,36 @@ pkg-up@^3.1.0: dependencies: find-up "^3.0.0" -playwright-core@=1.18.1: - version "1.18.1" - resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.18.1.tgz#a5cf3f212d10692382e2acd1f7bc8c9ff9bbb849" - integrity sha512-NALGl8R1GHzGLlhUApmpmfh6M1rrrPcDTygWvhTbprxwGB9qd/j9DRwyn4HTQcUB6o0/VOpo46fH9ez3+D/Rog== +playwright-core@1.19.2: + version "1.19.2" + resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.19.2.tgz#90b9209554f174c649abf495952fcb4335437218" + integrity sha512-OsL3sJZIo1UxKNWSP7zW7sk3FyUGG06YRHxHeBw51eIOxTCQRx5t+hXd0cvXashN2CHnd3hIZTs2aKa/im4hZQ== dependencies: - commander "^8.2.0" - debug "^4.1.1" - extract-zip "^2.0.1" - https-proxy-agent "^5.0.0" - jpeg-js "^0.4.2" - mime "^2.4.6" - pngjs "^5.0.0" - progress "^2.0.3" - proper-lockfile "^4.1.1" - proxy-from-env "^1.1.0" - rimraf "^3.0.2" - socks-proxy-agent "^6.1.0" - stack-utils "^2.0.3" - ws "^7.4.6" - yauzl "^2.10.0" - yazl "^2.5.1" + commander "8.3.0" + debug "4.3.3" + extract-zip "2.0.1" + https-proxy-agent "5.0.0" + jpeg-js "0.4.3" + mime "3.0.0" + pngjs "6.0.0" + progress "2.0.3" + proper-lockfile "4.1.2" + proxy-from-env "1.1.0" + rimraf "3.0.2" + socks-proxy-agent "6.1.1" + stack-utils "2.0.5" + ws "8.4.2" + yauzl "2.10.0" + yazl "2.5.1" -playwright@^1.18.1: - version "1.18.1" - resolved "https://registry.yarnpkg.com/playwright/-/playwright-1.18.1.tgz#45c2ca6ee25c44e336985de9b51955727b5f17cf" - integrity sha512-8EaX9EtbtAoMq5tnzIsoA3b/V86V/6Mq2skuOU4qEw+5OVxs1lwesDwmjy/RVU1Qfx5UuwSQzhp45wyH22oa+A== +playwright@^1.19.2: + version "1.19.2" + resolved "https://registry.yarnpkg.com/playwright/-/playwright-1.19.2.tgz#d9927ae8512482642356e50a286c5767dfb7a621" + integrity sha512-2JmGWr/Iw/Uu27bZULeHgjn8doNrRVxIYdhspMuMlfKNpzwAe/sfm7wH8uey6jiZxnPL4bC5V4ACQcF4dAGWnw== dependencies: - playwright-core "=1.18.1" + playwright-core "1.19.2" -plist@^3.0.0, plist@^3.0.1, plist@^3.0.4: +plist@^3.0.1, plist@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/plist/-/plist-3.0.4.tgz#a62df837e3aed2bb3b735899d510c4f186019cbe" integrity sha512-ksrr8y9+nXOxQB2osVNqrgvX/XQPOXaU4BQMKjYq8PvaY1U18mo+fKgBSwzK+luSyinOuPae956lSVcBwxlAMg== @@ -6521,6 +6565,11 @@ plist@^3.0.0, plist@^3.0.1, plist@^3.0.4: base64-js "^1.5.1" xmlbuilder "^9.0.7" +pngjs@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-6.0.0.tgz#ca9e5d2aa48db0228a52c419c3308e87720da821" + integrity sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg== + pngjs@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-4.0.1.tgz#f803869bb2fc1bfe1bf99aa4ec21c108117cfdbe" @@ -6617,10 +6666,10 @@ pretty-error@^2.1.1: lodash "^4.17.20" renderkid "^2.0.4" -pretty-format@^27.2.5, pretty-format@^27.4.6: - version "27.4.6" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.4.6.tgz#1b784d2f53c68db31797b2348fa39b49e31846b7" - integrity sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g== +pretty-format@^27.2.5, pretty-format@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" + integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== dependencies: ansi-regex "^5.0.1" ansi-styles "^5.0.0" @@ -6631,7 +6680,7 @@ process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -progress@^2.0.3: +progress@2.0.3, progress@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== @@ -6649,7 +6698,7 @@ promise-retry@^2.0.1: err-code "^2.0.2" retry "^0.12.0" -proper-lockfile@^4.1.1: +proper-lockfile@4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/proper-lockfile/-/proper-lockfile-4.1.2.tgz#c8b9de2af6b2f1601067f98e01ac66baa223141f" integrity sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA== @@ -6663,6 +6712,25 @@ proto-list@~1.2.1: resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= +protobufjs@^6.8.8: + version "6.11.2" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.2.tgz#de39fabd4ed32beaa08e9bb1e30d08544c1edf8b" + integrity sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/long" "^4.0.1" + "@types/node" ">=13.7.0" + long "^4.0.0" + proxy-addr@~2.0.7: version "2.0.7" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" @@ -6671,7 +6739,7 @@ proxy-addr@~2.0.7: forwarded "0.2.0" ipaddr.js "1.9.1" -proxy-from-env@^1.1.0: +proxy-from-env@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== @@ -6711,11 +6779,6 @@ qap@^3.1.2: resolved "https://registry.yarnpkg.com/qap/-/qap-3.3.1.tgz#11f9e8fa8890fe7cb99210c0f44d0613b7372cac" integrity sha1-Efno+oiQ/ny5khDA9E0GE7c3LKw= -qrcode-terminal@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz#bb5b699ef7f9f0505092a3748be4464fe71b5819" - integrity sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ== - qrcode@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.5.0.tgz#95abb8a91fdafd86f8190f2836abbfc500c72d1b" @@ -6726,10 +6789,10 @@ qrcode@^1.5.0: pngjs "^5.0.0" yargs "^15.3.1" -qs@6.9.6: - version "6.9.6" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.6.tgz#26ed3c8243a431b2924aca84cc90471f35d5a0ee" - integrity sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ== +qs@6.9.7: + version "6.9.7" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.7.tgz#4610846871485e1e048f44ae3b94033f0e675afe" + integrity sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw== query-string@^4.1.0: version "4.3.4" @@ -6766,12 +6829,12 @@ range-parser@^1.2.1, range-parser@~1.2.1: resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.2.tgz#baf3e9c21eebced59dd6533ac872b71f7b61cb32" - integrity sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ== +raw-body@2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.3.tgz#8f80305d11c2a0a545c2d9d89d7a0286fcead43c" + integrity sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g== dependencies: - bytes "3.1.1" + bytes "3.1.2" http-errors "1.8.1" iconv-lite "0.4.24" unpipe "1.0.0" @@ -6786,13 +6849,6 @@ rc@^1.2.8: minimist "^1.2.0" strip-json-comments "~2.0.1" -rcedit@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/rcedit/-/rcedit-3.0.1.tgz#ae21b43e49c075f4d84df1929832a12c302f3c90" - integrity sha512-XM0Jv40/y4hVAqj/MO70o/IWs4uOsaSoo2mLyk3klFDW+SStLnCtzuQu+1OBTIMGlM8CvaK9ftlYCp6DJ+cMsw== - dependencies: - cross-spawn-windows-exe "^1.1.0" - react-dom@^17.0.2: version "17.0.2" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23" @@ -6840,23 +6896,6 @@ read-config-file@~4.0.1: json5 "^2.1.0" lazy-val "^1.0.4" -read-pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" - integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= - dependencies: - find-up "^2.0.0" - read-pkg "^2.0.0" - -read-pkg@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" - integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= - dependencies: - load-json-file "^2.0.0" - normalize-package-data "^2.3.2" - path-type "^2.0.0" - "readable-stream@1 || 2", readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.2.2: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" @@ -6895,6 +6934,13 @@ readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + regenerate-unicode-properties@^10.0.1: version "10.0.1" resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz#7f442732aa7934a3740c779bb9b3340dccc1fb56" @@ -7066,7 +7112,7 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.1.6, resolve@^1.10.0, resolve@^1.13.1, resolve@^1.14.2: +resolve@^1.13.1, resolve@^1.14.2: version "1.22.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== @@ -7099,6 +7145,13 @@ retry@^0.12.0: resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= +rimraf@3.0.2, rimraf@^3.0.0, rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.3, rimraf@^2.7.1: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" @@ -7106,13 +7159,6 @@ rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.3, rimraf@^2.7.1: dependencies: glob "^7.1.3" -rimraf@^3.0.0, rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - roarr@^2.15.3: version "2.15.4" resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.4.tgz#f5fe795b7b838ccfe35dc608e0282b9eba2e7afd" @@ -7230,16 +7276,16 @@ semver-diff@^3.1.1: dependencies: semver "^6.3.0" -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.5.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - semver@7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== +semver@^5.3.0, semver@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" @@ -7373,7 +7419,7 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" -signal-exit@^3.0.0, signal-exit@^3.0.2: +signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.7: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== @@ -7392,7 +7438,7 @@ slice-ansi@^3.0.0: astral-regex "^2.0.0" is-fullwidth-code-point "^3.0.0" -smart-buffer@^4.0.2, smart-buffer@^4.1.0: +smart-buffer@^4.0.2, smart-buffer@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== @@ -7428,16 +7474,15 @@ snapdragon@^0.8.1: use "^3.1.0" sockjs-client@^1.5.0: - version "1.5.2" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.5.2.tgz#4bc48c2da9ce4769f19dc723396b50f5c12330a3" - integrity sha512-ZzRxPBISQE7RpzlH4tKJMQbHM9pabHluk0WBaxAQ+wm/UieeBVBou0p4wVnSQGN9QmpAZygQ0cDIypWuqOFmFQ== + version "1.6.0" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.6.0.tgz#e0277b8974558edcb557eafc7d3027ef6128d865" + integrity sha512-qVHJlyfdHFht3eBFZdKEXKTlb7I4IV41xnVNo8yUKA1UHcPJwgW2SvTq9LhnjjCywSkSK7c/e4nghU0GOoMCRQ== dependencies: - debug "^3.2.6" - eventsource "^1.0.7" - faye-websocket "^0.11.3" + debug "^3.2.7" + eventsource "^1.1.0" + faye-websocket "^0.11.4" inherits "^2.0.4" - json3 "^3.3.3" - url-parse "^1.5.3" + url-parse "^1.5.10" sockjs@^0.3.21: version "0.3.24" @@ -7448,7 +7493,7 @@ sockjs@^0.3.21: uuid "^8.3.2" websocket-driver "^0.7.4" -socks-proxy-agent@^6.0.0, socks-proxy-agent@^6.1.0: +socks-proxy-agent@6.1.1, socks-proxy-agent@^6.0.0: version "6.1.1" resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz#e664e8f1aaf4e1fb3df945f09e3d94f911137f87" integrity sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew== @@ -7458,12 +7503,12 @@ socks-proxy-agent@^6.0.0, socks-proxy-agent@^6.1.0: socks "^2.6.1" socks@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.6.1.tgz#989e6534a07cf337deb1b1c94aaa44296520d30e" - integrity sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA== + version "2.6.2" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.6.2.tgz#ec042d7960073d40d94268ff3bb727dc685f111a" + integrity sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA== dependencies: ip "^1.1.5" - smart-buffer "^4.1.0" + smart-buffer "^4.2.0" sort-keys@^1.0.0: version "1.1.2" @@ -7488,7 +7533,7 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@^0.4.18: +source-map-support@0.4.18: version "0.4.18" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== @@ -7523,37 +7568,6 @@ source-map@^0.7.3, source-map@~0.7.2: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== -sourcemap-codec@1.4.8: - version "1.4.8" - resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" - integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== - -spdx-correct@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" - integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" - integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.11" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz#50c0d8c40a14ec1bf449bae69a0ea4685a9d9f95" - integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g== - spdy-transport@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" @@ -7616,7 +7630,7 @@ ssri@^8.0.0, ssri@^8.0.1: dependencies: minipass "^3.1.1" -stack-utils@^2.0.3: +stack-utils@2.0.5, stack-utils@^2.0.3: version "2.0.5" resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.5.tgz#d25265fca995154659dbbfba3b49254778d2fdd5" integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA== @@ -7722,11 +7736,6 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= - strip-bom@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" @@ -7737,6 +7746,11 @@ strip-eof@^1.0.0: resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + strip-json-comments@^3.0.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" @@ -7747,20 +7761,13 @@ strip-json-comments@~2.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= -strip-outer@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631" - integrity sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg== - dependencies: - escape-string-regexp "^1.0.2" - strtok3@^6.2.4: - version "6.2.4" - resolved "https://registry.yarnpkg.com/strtok3/-/strtok3-6.2.4.tgz#302aea64c0fa25d12a0385069ba66253fdc38a81" - integrity sha512-GO8IcFF9GmFDvqduIspUBwCzCbqzegyVKIsSymcMgiZKeCfrN9SowtUoi8+b59WZMAjIzVZic/Ft97+pynR3Iw== + version "6.3.0" + resolved "https://registry.yarnpkg.com/strtok3/-/strtok3-6.3.0.tgz#358b80ffe6d5d5620e19a073aa78ce947a90f9a0" + integrity sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw== dependencies: "@tokenizer/token" "^0.3.0" - peek-readable "^4.0.1" + peek-readable "^4.1.0" style-loader@^1.1.3: version "1.3.0" @@ -7876,10 +7883,11 @@ terser@^4.6.12, terser@^4.6.3: source-map-support "~0.5.12" terser@^5.7.2: - version "5.10.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.10.0.tgz#b86390809c0389105eb0a0b62397563096ddafcc" - integrity sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA== + version "5.12.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.12.0.tgz#728c6bff05f7d1dcb687d8eace0644802a9dae8a" + integrity sha512-R3AUhNBGWiFc77HXag+1fXpAxTAFRQTJemlJKjAgD9r8xXTpjNKqIXwHM/o7Rh+O0kUJtS3WQVdBeMKFk5sw9A== dependencies: + acorn "^8.5.0" commander "^2.20.0" source-map "~0.7.2" source-map-support "~0.5.20" @@ -7955,10 +7963,10 @@ toidentifier@1.0.1: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== -token-types@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/token-types/-/token-types-4.1.1.tgz#ef9e8c8e2e0ded9f1b3f8dbaa46a3228b113ba1a" - integrity sha512-hD+QyuUAyI2spzsI0B7gf/jJ2ggR4RjkAo37j3StuePhApJUwcWDjnHDOFdIWYSwNR28H14hpwm4EI+V1Ted1w== +token-types@^4.1.1, token-types@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/token-types/-/token-types-4.2.0.tgz#b66bc3d67420c6873222a424eee64a744f4c2f13" + integrity sha512-P0rrp4wUpefLncNamWIef62J0v0kQR/GfDVji9WKY7GDCWy5YbVSrKUTam07iWPZQGy0zWNOfstYTykMmPNR7w== dependencies: "@tokenizer/token" "^0.3.0" ieee754 "^1.2.1" @@ -7968,13 +7976,6 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= -trim-repeated@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" - integrity sha1-42RqLqTokTEr9+rObPsFOAvAHCE= - dependencies: - escape-string-regexp "^1.0.2" - truncate-utf8-bytes@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" @@ -7987,7 +7988,7 @@ tslib@^1.9.3: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.3, tslib@^2.2.0: +tslib@^2.0.3, tslib@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== @@ -8033,9 +8034,9 @@ typedarray@^0.0.6: integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= typescript@^4.5.5: - version "4.5.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.5.tgz#d8c953832d28924a9e3d37c73d729c846c5896f3" - integrity sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA== + version "4.6.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.2.tgz#fe12d2727b708f4eef40f51598b3398baa9611d4" + integrity sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg== unbox-primitive@^1.0.1: version "1.0.1" @@ -8182,10 +8183,10 @@ url-parse-lax@^3.0.0: dependencies: prepend-http "^2.0.0" -url-parse@^1.4.3, url-parse@^1.5.3: - version "1.5.4" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.4.tgz#e4f645a7e2a0852cc8a66b14b292a3e9a11a97fd" - integrity sha512-ITeAByWWoqutFClc/lRZnFplgXgEZr3WJ6XngMM/N9DMIm4K8zXPCZ1Jdu0rERwO84w1WC5wkle2ubwTA4NTBg== +url-parse@^1.4.3, url-parse@^1.5.10: + version "1.5.10" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" + integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== dependencies: querystringify "^2.1.1" requires-port "^1.0.0" @@ -8246,14 +8247,6 @@ v8-compile-cache@^2.1.1, v8-compile-cache@^2.3.0: resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" @@ -8383,18 +8376,18 @@ webpack-sources@^1.1.0, webpack-sources@^1.4.3: source-list-map "^2.0.0" source-map "~0.6.1" -webpack-sources@^3.2.2: +webpack-sources@^3.2.3: version "3.2.3" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== -webpack@~5.65.0: - version "5.65.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.65.0.tgz#ed2891d9145ba1f0d318e4ea4f89c3fa18e6f9be" - integrity sha512-Q5or2o6EKs7+oKmJo7LaqZaMOlDWQse9Tm5l1WAfU/ujLGN5Pb0SqGeVkN/4bpPmEqEP5RnVhiqsOtWtUVwGRw== +webpack@~5.69.1: + version "5.69.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.69.1.tgz#8cfd92c192c6a52c99ab00529b5a0d33aa848dc5" + integrity sha512-+VyvOSJXZMT2V5vLzOnDuMz5GxEqLk7hKWQ56YxPW/PQRUuKimPqmEIJOx8jHYeyo65pKbapbW464mvsKbaj4A== dependencies: - "@types/eslint-scope" "^3.7.0" - "@types/estree" "^0.0.50" + "@types/eslint-scope" "^3.7.3" + "@types/estree" "^0.0.51" "@webassemblyjs/ast" "1.11.1" "@webassemblyjs/wasm-edit" "1.11.1" "@webassemblyjs/wasm-parser" "1.11.1" @@ -8407,7 +8400,7 @@ webpack@~5.65.0: eslint-scope "5.1.1" events "^3.2.0" glob-to-regexp "^0.4.1" - graceful-fs "^4.2.4" + graceful-fs "^4.2.9" json-parse-better-errors "^1.0.2" loader-runner "^4.2.0" mime-types "^2.1.27" @@ -8416,7 +8409,7 @@ webpack@~5.65.0: tapable "^2.1.1" terser-webpack-plugin "^5.1.3" watchpack "^2.3.1" - webpack-sources "^3.2.2" + webpack-sources "^3.2.3" websocket-driver@>=0.5.1, websocket-driver@^0.7.4: version "0.7.4" @@ -8470,7 +8463,7 @@ which@^2.0.1, which@^2.0.2: dependencies: isexe "^2.0.0" -wide-align@^1.1.2: +wide-align@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== @@ -8526,6 +8519,11 @@ write-file-atomic@^3.0.0: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" +ws@8.4.2: + version "8.4.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.4.2.tgz#18e749868d8439f2268368829042894b6907aa0b" + integrity sha512-Kbk4Nxyq7/ZWqr/tarI9yIt/+iNNFOjBXEWgTb4ydaNHBNGgvf2QHbS9fdfsndfjFlFwEd4Al+mw83YkaD10ZA== + ws@^6.2.1: version "6.2.2" resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e" @@ -8533,15 +8531,15 @@ ws@^6.2.1: dependencies: async-limiter "~1.0.0" -ws@^7.3.1, ws@^7.4.6: - version "7.5.6" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.6.tgz#e59fc509fb15ddfb65487ee9765c5a51dec5fe7b" - integrity sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA== +ws@^7.3.1: + version "7.5.7" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.7.tgz#9e0ac77ee50af70d58326ecff7e85eb3fa375e67" + integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A== -ws@^8.4.2: - version "8.4.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.4.2.tgz#18e749868d8439f2268368829042894b6907aa0b" - integrity sha512-Kbk4Nxyq7/ZWqr/tarI9yIt/+iNNFOjBXEWgTb4ydaNHBNGgvf2QHbS9fdfsndfjFlFwEd4Al+mw83YkaD10ZA== +ws@^8.5.0: + version "8.5.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.5.0.tgz#bfb4be96600757fe5382de12c670dab984a1ed4f" + integrity sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg== xdg-basedir@^4.0.0: version "4.0.0" @@ -8612,15 +8610,10 @@ yargs-parser@^18.1.2: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^20.0.0: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - yargs-parser@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.0.tgz#a485d3966be4317426dd56bdb6a30131b281dc55" - integrity sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA== + version "21.0.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.1.tgz#0267f286c877a4f0f728fceb6f8a3e4cb95c6e35" + integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg== yargs@^13.3.2: version "13.3.2" @@ -8668,7 +8661,7 @@ yargs@^17.0.1: y18n "^5.0.5" yargs-parser "^21.0.0" -yauzl@^2.10.0: +yauzl@2.10.0, yauzl@^2.10.0: version "2.10.0" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= @@ -8676,7 +8669,7 @@ yauzl@^2.10.0: buffer-crc32 "~0.2.3" fd-slicer "~1.1.0" -yazl@^2.5.1: +yazl@2.5.1: version "2.5.1" resolved "https://registry.yarnpkg.com/yazl/-/yazl-2.5.1.tgz#a3d65d3dd659a5b0937850e8609f22fffa2b5c35" integrity sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw== diff --git a/crowdin.yml b/crowdin.yml new file mode 100644 index 00000000..9ac8d3ef --- /dev/null +++ b/crowdin.yml @@ -0,0 +1,3 @@ +files: + - source: /src/i18n/source/ + translation: /src/i18n/%locale_with_underscore%.json diff --git a/flatpak/flatpak-node-generator.py b/flatpak/flatpak-node-generator.py deleted file mode 100644 index 2a7c1f21..00000000 --- a/flatpak/flatpak-node-generator.py +++ /dev/null @@ -1,1839 +0,0 @@ -#!/usr/bin/env python3 - -# pyright: strict - -__license__ = 'MIT' - -from typing import * # pyright: reportWildcardImportFromLibrary=false -# Explictly import these. -from typing import cast, IO - -from pathlib import Path -from distutils.version import StrictVersion - -import argparse -import asyncio -import base64 -import binascii -import collections -import contextlib -import hashlib -import json -import os -import re -import shlex -import shutil -import sys -import tempfile -import textwrap -import types -import urllib.parse -import urllib.request - -DEFAULT_PART_SIZE = 4096 - -GIT_SCHEMES: Dict[str, Dict[str, str]] = { - 'github': { - 'scheme': 'https', - 'netloc': 'github.com' - }, - 'gitlab': { - 'scheme': 'https', - 'netloc': 'gitlab.com' - }, - 'bitbucket': { - 'scheme': 'https', - 'netloc': 'bitbucket.com' - }, - 'git': {}, - 'git+http': { - 'scheme': 'http' - }, - 'git+https': { - 'scheme': 'https' - }, -} - -GIT_URL_PATTERNS = [ - re.compile(r'^git:'), - re.compile(r'^git\+.+:'), - re.compile(r'^ssh:'), - re.compile(r'^https?:.+\.git$'), - re.compile(r'^https?:.+\.git#.+'), -] - -GIT_URL_HOSTS = ['github.com', 'gitlab.com', 'bitbucket.com', 'bitbucket.org'] - -NPM_MIRROR = 'https://unpkg.com/' - - -class Cache: - instance: 'Cache' - - @classmethod - def get_working_instance_if(cls, condition: bool) -> 'Cache': - return cls.instance if condition else NullCache() - - class BucketReader: - def read_parts(self, size: int = DEFAULT_PART_SIZE) -> Iterator[bytes]: - raise NotImplementedError - - def read_all(self) -> bytes: - raise NotImplementedError - - def close(self) -> None: - raise NotImplementedError - - def __enter__(self) -> 'Cache.BucketReader': - return self - - def __exit__(self, exc_type: Optional[Type[BaseException]], - exc_value: Optional[BaseException], - traceback: Optional[types.TracebackType]) -> None: - self.close() - - class BucketWriter: - def write(self, data: bytes) -> None: - raise NotImplementedError - - def cancel(self) -> None: - raise NotImplementedError - - def seal(self) -> None: - raise NotImplementedError - - def __enter__(self) -> 'Cache.BucketWriter': - return self - - def __exit__(self, exc_type: Optional[Type[BaseException]], - exc_value: Optional[BaseException], - traceback: Optional[types.TracebackType]) -> None: - if traceback is None: - self.seal() - else: - self.cancel() - - class BucketRef: - def __init__(self, key: str) -> None: - self.key = key - - def open_read(self) -> Optional['Cache.BucketReader']: - raise NotImplementedError - - def open_write(self) -> 'Cache.BucketWriter': - raise NotImplementedError - - def get(self, key: str) -> BucketRef: - raise NotImplementedError - - -class NullCache(Cache): - class NullBucketWriter(Cache.BucketWriter): - def write(self, data: bytes) -> None: - pass - - def cancel(self) -> None: - pass - - def seal(self) -> None: - pass - - class NullBucketRef(Cache.BucketRef): - def __init__(self, key: str) -> None: - super().__init__(key) - - def open_read(self) -> Optional[Cache.BucketReader]: - return None - - def open_write(self) -> Cache.BucketWriter: - return NullCache.NullBucketWriter() - - def get(self, key: str) -> Cache.BucketRef: - return NullCache.NullBucketRef(key) - - -class FilesystemBasedCache(Cache): - _SUBDIR = 'flatpak-node-generator' - _KEY_CHAR_ESCAPE_RE = re.compile(r'[^A-Za-z0-9._\-]') - - @staticmethod - def _escape_key(key: str) -> str: - return FilesystemBasedCache._KEY_CHAR_ESCAPE_RE.sub( - lambda m: f'_{ord(m.group()):02X}', key) - - class FilesystemBucketReader(Cache.BucketReader): - def __init__(self, file: IO[bytes]) -> None: - self.file = file - - def close(self) -> None: - self.file.close() - - def read_parts(self, size: int = DEFAULT_PART_SIZE) -> Iterator[bytes]: - while True: - data = self.file.read(size) - if not data: - break - - yield data - - def read_all(self) -> bytes: - return self.file.read() - - class FilesystemBucketWriter(Cache.BucketWriter): - def __init__(self, file: IO[bytes], temp: Path, target: Path) -> None: - self.file = file - self.temp = temp - self.target = target - - def write(self, data: bytes) -> None: - self.file.write(data) - - def cancel(self) -> None: - self.file.close() - self.temp.unlink() - - def seal(self) -> None: - self.file.close() - self.temp.rename(self.target) - - class FilesystemBucketRef(Cache.BucketRef): - def __init__(self, key: str, cache_root: Path) -> None: - super().__init__(key) - self._cache_root = cache_root - - self._cache_path = self._cache_root / FilesystemBasedCache._escape_key(key) - - def open_read(self) -> Optional[Cache.BucketReader]: - try: - fp = self._cache_path.open('rb') - except FileNotFoundError: - return None - else: - return FilesystemBasedCache.FilesystemBucketReader(fp) - - def open_write(self) -> Cache.BucketWriter: - target = self._cache_path - if not target.parent.exists(): - target.parent.mkdir(exist_ok=True, parents=True) - - fd, temp = tempfile.mkstemp(dir=self._cache_root, prefix='__temp__') - return FilesystemBasedCache.FilesystemBucketWriter(os.fdopen(fd, 'wb'), - Path(temp), target) - - @property - def _cache_root(self) -> Path: - xdg_cache_home = os.environ.get('XDG_CACHE_HOME', os.path.expanduser('~/.cache')) - return Path(xdg_cache_home) / self._SUBDIR - - def get(self, key: str) -> Cache.BucketRef: - return FilesystemBasedCache.FilesystemBucketRef(key, self._cache_root) - - -Cache.instance = NullCache() - - -class Requests: - instance: 'Requests' - - DEFAULT_RETRIES = 5 - retries: ClassVar[int] = DEFAULT_RETRIES - - @property - def is_async(self) -> bool: - raise NotImplementedError - - def __get_cache_bucket(self, cachable: bool, url: str) -> Cache.BucketRef: - return Cache.get_working_instance_if(cachable).get(f'requests:{url}') - - async def _read_parts(self, - url: str, - size: int = DEFAULT_PART_SIZE) -> AsyncIterator[bytes]: - raise NotImplementedError - yield b'' # Silence mypy. - - async def _read_all(self, url: str) -> bytes: - raise NotImplementedError - - async def read_parts(self, - url: str, - *, - cachable: bool, - size: int = DEFAULT_PART_SIZE) -> AsyncIterator[bytes]: - bucket = self.__get_cache_bucket(cachable, url) - - bucket_reader = bucket.open_read() - if bucket_reader is not None: - for part in bucket_reader.read_parts(size): - yield part - - return - - for i in range(1, Requests.retries + 1): - try: - with bucket.open_write() as bucket_writer: - async for part in self._read_parts(url, size): - bucket_writer.write(part) - yield part - - return - except Exception: - if i == Requests.retries: - raise - - async def read_all(self, url: str, *, cachable: bool = False) -> bytes: - bucket = self.__get_cache_bucket(cachable, url) - - bucket_reader = bucket.open_read() - if bucket_reader is not None: - return bucket_reader.read_all() - - for i in range(1, Requests.retries + 1): - try: - with bucket.open_write() as bucket_writer: - data = await self._read_all(url) - bucket_writer.write(data) - return data - except Exception: - if i == Requests.retries: - raise - - assert False - - -class UrllibRequests(Requests): - @property - def is_async(self) -> bool: - return False - - async def _read_parts(self, - url: str, - size: int = DEFAULT_PART_SIZE) -> AsyncIterator[bytes]: - with urllib.request.urlopen(url) as response: - while True: - data = response.read(size) - if not data: - return - - yield data - - async def _read_all(self, url: str) -> bytes: - with urllib.request.urlopen(url) as response: - return cast(bytes, response.read()) - - -class StubRequests(Requests): - @property - def is_async(self) -> bool: - return True - - async def _read_parts(self, - url: str, - size: int = DEFAULT_PART_SIZE) -> AsyncIterator[bytes]: - yield b'' - - async def _read_all(self, url: str) -> bytes: - return b'' - - -Requests.instance = UrllibRequests() - -try: - import aiohttp - - class AsyncRequests(Requests): - @property - def is_async(self) -> bool: - return True - - @contextlib.asynccontextmanager - async def _open_stream(self, url: str) -> AsyncIterator[aiohttp.StreamReader]: - async with aiohttp.ClientSession() as session: - async with session.get(url) as response: - yield response.content - - async def _read_parts(self, - url: str, - size: int = DEFAULT_PART_SIZE) -> AsyncIterator[bytes]: - async with self._open_stream(url) as stream: - while True: - data = await stream.read(size) - if not data: - return - - yield data - - async def _read_all(self, url: str) -> bytes: - async with self._open_stream(url) as stream: - return await stream.read() - - Requests.instance = AsyncRequests() - -except ImportError: - pass - - -class CachedRequests(Requests): - pass - - -class Integrity(NamedTuple): - algorithm: str - digest: str - - @staticmethod - def parse(value: str) -> 'Integrity': - algorithm, encoded_digest = value.split('-', 1) - assert algorithm.startswith('sha'), algorithm - digest = binascii.hexlify(base64.b64decode(encoded_digest)).decode() - - return Integrity(algorithm, digest) - - @staticmethod - def from_sha1(sha1: str) -> 'Integrity': - assert len(sha1) == 40, f'Invalid length of sha1: {sha1}' - return Integrity('sha1', sha1) - - @staticmethod - def generate(data: Union[str, bytes], *, algorithm: str = 'sha256') -> 'Integrity': - builder = IntegrityBuilder(algorithm) - builder.update(data) - return builder.build() - - @staticmethod - def from_json_object(data: Any) -> 'Integrity': - return Integrity(algorithm=data['algorithm'], digest=data['digest']) - - def to_json_object(self) -> Any: - return {'algorithm': self.algorithm, 'digest': self.digest} - - def to_base64(self) -> str: - return base64.b64encode(binascii.unhexlify(self.digest)).decode() - - -class IntegrityBuilder: - def __init__(self, algorithm: str = 'sha256') -> None: - self.algorithm = algorithm - self._hasher = hashlib.new(algorithm) - - def update(self, data: Union[str, bytes]) -> None: - data_bytes: bytes - if isinstance(data, str): - data_bytes = data.encode() - else: - data_bytes = data - self._hasher.update(data_bytes) - - def build(self) -> Integrity: - return Integrity(algorithm=self.algorithm, digest=self._hasher.hexdigest()) - - -class RemoteUrlMetadata(NamedTuple): - integrity: Integrity - size: int - - @staticmethod - def __get_cache_bucket(cachable: bool, kind: str, url: str) -> Cache.BucketRef: - return Cache.get_working_instance_if(cachable).get( - f'remote-url-metadata:{kind}:{url}') - - @staticmethod - def from_json_object(data: Any) -> 'RemoteUrlMetadata': - return RemoteUrlMetadata(integrity=Integrity.from_json_object(data['integrity']), - size=data['size']) - - @classmethod - async def get(cls, - url: str, - *, - cachable: bool, - integrity_algorithm: str = 'sha256') -> 'RemoteUrlMetadata': - bucket = cls.__get_cache_bucket(cachable, 'full', url) - - bucket_reader = bucket.open_read() - if bucket_reader is not None: - data = json.loads(bucket_reader.read_all()) - return RemoteUrlMetadata.from_json_object(data) - - builder = IntegrityBuilder(integrity_algorithm) - size = 0 - - async for part in Requests.instance.read_parts(url, cachable=False): - builder.update(part) - size += len(part) - - metadata = RemoteUrlMetadata(integrity=builder.build(), size=size) - - with bucket.open_write() as bucket_writer: - bucket_writer.write(json.dumps(metadata.to_json_object()).encode('ascii')) - - return metadata - - @classmethod - async def get_size(cls, url: str, *, cachable: bool) -> int: - bucket = cls.__get_cache_bucket(cachable, 'size', url) - - bucket_reader = bucket.open_read() - if bucket_reader is not None: - return int(bucket_reader.read_all()) - - size = 0 - async for part in Requests.instance.read_parts(url, cachable=False): - size += len(part) - - with bucket.open_write() as bucket_writer: - bucket_writer.write(str(size).encode('ascii')) - - return size - - def to_json_object(self) -> Any: - return {'integrity': self.integrity.to_json_object(), 'size': self.size} - - -class ResolvedSource(NamedTuple): - resolved: str - integrity: Optional[Integrity] - - async def retrieve_integrity(self) -> Integrity: - if self.integrity is not None: - return self.integrity - else: - url = self.resolved - assert url is not None, 'registry source has no resolved URL' - metadata = await RemoteUrlMetadata.get(url, cachable=True) - return metadata.integrity - - -class UnresolvedRegistrySource: - pass - - -class GitSource(NamedTuple): - original: str - url: str - commit: str - from_: Optional[str] - - -PackageSource = Union[ResolvedSource, UnresolvedRegistrySource, GitSource] - - -class Package(NamedTuple): - name: str - version: str - source: PackageSource - lockfile: Path - - -class ManifestGenerator(contextlib.AbstractContextManager): - MAX_GITHUB_SIZE = 49 * 1000 * 1000 - JSON_INDENT = 4 - - def __init__(self) -> None: - # Store the dicts as a set of tuples, then rebuild the dict when returning it. - # That way, we ensure uniqueness. - self._sources: Set[Tuple[Tuple[str, Any], ...]] = set() - self._commands: List[str] = [] - - def __exit__(self, exc_type: Optional[Type[BaseException]], - exc_value: Optional[BaseException], - tb: Optional[types.TracebackType]) -> None: - self._finalize() - - @property - def data_root(self) -> Path: - return Path('flatpak-node') - - @property - def tmp_root(self) -> Path: - return self.data_root / 'tmp' - - @property - def source_count(self) -> int: - return len(self._sources) - - def ordered_sources(self) -> Iterator[Dict[Any, Any]]: - return map(dict, sorted(self._sources)) # type: ignore - - def split_sources(self) -> Iterator[List[Dict[Any, Any]]]: - BASE_CURRENT_SIZE = len('[\n]') - current_size = BASE_CURRENT_SIZE - current: List[Dict[Any, Any]] = [] - - for source in self.ordered_sources(): - # Generate one source by itself, then check the length without the closing and - # opening brackets. - source_json = json.dumps([source], indent=ManifestGenerator.JSON_INDENT) - source_json_len = len('\n'.join(source_json.splitlines()[1:-1])) - if current_size + source_json_len >= ManifestGenerator.MAX_GITHUB_SIZE: - yield current - current = [] - current_size = BASE_CURRENT_SIZE - current.append(source) - current_size += source_json_len - - if current: - yield current - - def _add_source(self, source: Dict[str, Any]) -> None: - self._sources.add(tuple(source.items())) - - def _add_source_with_destination(self, - source: Dict[str, Any], - destination: Optional[Path], - *, - is_dir: bool, - only_arches: Optional[List[str]] = None) -> None: - if destination is not None: - if is_dir: - source['dest'] = str(destination) - else: - source['dest-filename'] = destination.name - if len(destination.parts) > 1: - source['dest'] = str(destination.parent) - - if only_arches: - source['only-arches'] = tuple(only_arches) - - self._add_source(source) - - def add_url_source(self, - url: str, - integrity: Integrity, - destination: Optional[Path] = None, - *, - only_arches: Optional[List[str]] = None) -> None: - source: Dict[str, Any] = { - 'type': 'file', - 'url': url, - integrity.algorithm: integrity.digest - } - self._add_source_with_destination(source, - destination, - is_dir=False, - only_arches=only_arches) - - def add_archive_source(self, - url: str, - integrity: Integrity, - destination: Optional[Path] = None, - only_arches: Optional[List[str]] = None, - strip_components: int = 1) -> None: - source: Dict[str, Any] = { - 'type': 'archive', - 'url': url, - 'strip-components': strip_components, - integrity.algorithm: integrity.digest - } - self._add_source_with_destination(source, - destination, - is_dir=True, - only_arches=only_arches) - - def add_data_source(self, data: Union[str, bytes], destination: Path) -> None: - if isinstance(data, bytes): - source = { - 'type': 'inline', - 'contents': base64.b64encode(data).decode('ascii'), - 'base64': True, - } - else: - assert isinstance(data, str) - source = { - 'type': 'inline', - 'contents': data, - } - self._add_source_with_destination(source, destination, is_dir=False) - - def add_git_source(self, - url: str, - commit: str, - destination: Optional[Path] = None) -> None: - source = {'type': 'git', 'url': url, 'commit': commit} - self._add_source_with_destination(source, destination, is_dir=True) - - def add_script_source(self, commands: List[str], destination: Path) -> None: - source = {'type': 'script', 'commands': tuple(commands)} - self._add_source_with_destination(source, destination, is_dir=False) - - def add_shell_source(self, - commands: List[str], - destination: Optional[Path] = None, - only_arches: Optional[List[str]] = None) -> None: - """This might be slow for multiple instances. Use `add_command()` instead.""" - source = {'type': 'shell', 'commands': tuple(commands)} - self._add_source_with_destination(source, - destination=destination, - only_arches=only_arches, - is_dir=True) - - def add_command(self, command: str) -> None: - self._commands.append(command) - - def _finalize(self) -> None: - if self._commands: - self._add_source({'type': 'shell', 'commands': tuple(self._commands)}) - - -class LockfileProvider: - def parse_git_source(self, version: str, from_: Optional[str] = None) -> GitSource: - # https://github.com/microsoft/pyright/issues/1589 - # pyright: reportPrivateUsage=false - - original_url = urllib.parse.urlparse(version) - assert original_url.scheme and original_url.path and original_url.fragment - - replacements = GIT_SCHEMES.get(original_url.scheme, {}) - new_url = original_url._replace(fragment='', **replacements) - # Replace e.g. git:github.com/owner/repo with git://github.com/owner/repo - if not new_url.netloc: - path = new_url.path.split('/') - new_url = new_url._replace(netloc=path[0], path='/'.join(path[1:])) - - return GitSource(original=original_url.geturl(), - url=new_url.geturl(), - commit=original_url.fragment, - from_=from_) - - def process_lockfile(self, lockfile: Path) -> Iterator[Package]: - raise NotImplementedError() - - -class ModuleProvider(contextlib.AbstractContextManager): - async def generate_package(self, package: Package) -> None: - raise NotImplementedError() - - -class ElectronBinaryManager: - class Arch(NamedTuple): - electron: str - flatpak: str - - class Binary(NamedTuple): - filename: str - url: str - integrity: Integrity - - arch: Optional['ElectronBinaryManager.Arch'] = None - - ELECTRON_ARCHES_TO_FLATPAK = { - 'ia32': 'i386', - 'x64': 'x86_64', - 'armv7l': 'arm', - 'arm64': 'aarch64', - } - - INTEGRITY_BASE_FILENAME = 'SHASUMS256.txt' - - def __init__(self, version: str, base_url: str, integrities: Dict[str, - Integrity]) -> None: - self.version = version - self.base_url = base_url - self.integrities = integrities - - def child_url(self, child: str) -> str: - return f'{self.base_url}/{child}' - - def find_binaries(self, binary: str) -> Iterator['ElectronBinaryManager.Binary']: - for electron_arch, flatpak_arch in self.ELECTRON_ARCHES_TO_FLATPAK.items(): - binary_filename = f'{binary}-v{self.version}-linux-{electron_arch}.zip' - binary_url = self.child_url(binary_filename) - - arch = ElectronBinaryManager.Arch(electron=electron_arch, - flatpak=flatpak_arch) - yield ElectronBinaryManager.Binary( - filename=binary_filename, - url=binary_url, - integrity=self.integrities[binary_filename], - arch=arch) - - @property - def integrity_file(self) -> 'ElectronBinaryManager.Binary': - return ElectronBinaryManager.Binary( - filename=f'SHASUMS256.txt-{self.version}', - url=self.child_url(self.INTEGRITY_BASE_FILENAME), - integrity=self.integrities[self.INTEGRITY_BASE_FILENAME]) - - @staticmethod - async def for_version(version: str) -> 'ElectronBinaryManager': - base_url = f'https://github.com/electron/electron/releases/download/v{version}' - integrity_url = f'{base_url}/{ElectronBinaryManager.INTEGRITY_BASE_FILENAME}' - integrity_data = (await Requests.instance.read_all(integrity_url, - cachable=True)).decode() - - integrities: Dict[str, Integrity] = {} - for line in integrity_data.splitlines(): - digest, star_filename = line.split() - filename = star_filename.strip('*') - integrities[filename] = Integrity(algorithm='sha256', digest=digest) - - integrities[ElectronBinaryManager.INTEGRITY_BASE_FILENAME] = ( - Integrity.generate(integrity_data)) - - return ElectronBinaryManager(version=version, - base_url=base_url, - integrities=integrities) - - -class SpecialSourceProvider: - class Options(NamedTuple): - node_chromedriver_from_electron: str - electron_ffmpeg: str - electron_node_headers: bool - nwjs_version: str - nwjs_node_headers: bool - nwjs_ffmpeg: bool - xdg_layout: bool - - def __init__(self, gen: ManifestGenerator, options: Options): - self.gen = gen - self.node_chromedriver_from_electron = options.node_chromedriver_from_electron - self.electron_ffmpeg = options.electron_ffmpeg - self.electron_node_headers = options.electron_node_headers - self.nwjs_version = options.nwjs_version - self.nwjs_node_headers = options.nwjs_node_headers - self.nwjs_ffmpeg = options.nwjs_ffmpeg - self.xdg_layout = options.xdg_layout - - @property - def electron_cache_dir(self) -> Path: - if self.xdg_layout: - return self.gen.data_root / 'cache' / 'electron' - return self.gen.data_root / 'electron-cache' - - def _add_electron_cache_downloads(self, - manager: ElectronBinaryManager, - binary_name: str, - *, - add_integrities: bool = True) -> None: - electron_cache_dir = self.electron_cache_dir - - for binary in manager.find_binaries(binary_name): - assert binary.arch is not None - self.gen.add_url_source(binary.url, - binary.integrity, - electron_cache_dir / binary.filename, - only_arches=[binary.arch.flatpak]) - #Symlinks for @electron/get, which stores electron zips in a subdir - if self.xdg_layout: - sanitized_url = ''.join(c for c in binary.url if c not in '/:') - - #And for @electron/get >= 1.12.4 its sha256 hash of url dirname - url = urllib.parse.urlparse(binary.url) - url_dir = urllib.parse.urlunparse( - url._replace(path=os.path.dirname(url.path))) - url_hash = hashlib.sha256(url_dir.encode()).hexdigest() - - self.gen.add_shell_source([ - f'mkdir -p "{sanitized_url}"', - f'ln -s "../{binary.filename}" "{sanitized_url}/{binary.filename}"', - f'mkdir -p "{url_hash}"', - f'ln -s "../{binary.filename}" "{url_hash}/{binary.filename}"' - ], - destination=electron_cache_dir, - only_arches=[binary.arch.flatpak]) - - if add_integrities: - integrity_file = manager.integrity_file - self.gen.add_url_source(integrity_file.url, integrity_file.integrity, - electron_cache_dir / integrity_file.filename) - - async def _handle_electron(self, package: Package) -> None: - manager = await ElectronBinaryManager.for_version(package.version) - self._add_electron_cache_downloads(manager, 'electron') - - if self.electron_ffmpeg is not None: - if self.electron_ffmpeg == 'archive': - self._add_electron_cache_downloads(manager, - 'ffmpeg', - add_integrities=False) - elif self.electron_ffmpeg == 'lib': - for binary in manager.find_binaries('ffmpeg'): - assert binary.arch is not None - self.gen.add_archive_source(binary.url, - binary.integrity, - destination=self.gen.data_root, - only_arches=[binary.arch.flatpak]) - else: - assert False, self.electron_ffmpeg - - def _handle_gulp_atom_electron(self, package: Package) -> None: - # Versions after 1.22.0 use @electron/get and don't need this - if StrictVersion(package.version) <= StrictVersion('1.22.0'): - cache_path = self.gen.data_root / 'tmp' / 'gulp-electron-cache' / 'atom' / 'electron' - self.gen.add_command(f'mkdir -p "{cache_path.parent}"') - self.gen.add_command(f'ln -sfTr "{self.electron_cache_dir}" "{cache_path}"') - - async def _handle_electron_headers(self, package: Package) -> None: - if self.xdg_layout: - node_gyp_headers_dir = self.gen.data_root / 'cache' / 'node-gyp' / package.version - else: - node_gyp_headers_dir = self.gen.data_root / 'node-gyp' / 'electron-current' - url = f'https://www.electronjs.org/headers/v{package.version}/node-v{package.version}-headers.tar.gz' - metadata = await RemoteUrlMetadata.get(url, cachable=True) - self.gen.add_archive_source(url, - metadata.integrity, - destination=node_gyp_headers_dir) - if self.xdg_layout: - install_version_data = "9" - self.gen.add_data_source(install_version_data, - destination=node_gyp_headers_dir / 'installVersion') - - async def _get_chromedriver_binary_version(self, package: Package) -> str: - # Note: node-chromedriver seems to not have tagged all releases on GitHub, so - # just use unpkg instead. - url = urllib.parse.urljoin(NPM_MIRROR, f'chromedriver@{package.version}/lib/chromedriver') - js = await Requests.instance.read_all(url, cachable=True) - # XXX: a tad ugly - match = re.search(r"exports\.version = '([^']+)'", js.decode()) - assert match is not None, f'Failed to get ChromeDriver binary version from {url}' - return match.group(1) - - async def _handle_electron_chromedriver(self, package: Package) -> None: - manager = await ElectronBinaryManager.for_version(package.version) - self._add_electron_cache_downloads(manager, 'chromedriver') - - async def _handle_node_chromedriver(self, package: Package) -> None: - version = await self._get_chromedriver_binary_version(package) - destination = self.gen.data_root / 'chromedriver' - - if self.node_chromedriver_from_electron is not None: - manager = await ElectronBinaryManager.for_version( - self.node_chromedriver_from_electron) - - for binary in manager.find_binaries('chromedriver'): - assert binary.arch is not None - self.gen.add_archive_source(binary.url, - binary.integrity, - destination=destination, - only_arches=[binary.arch.flatpak]) - else: - url = (f'https://chromedriver.storage.googleapis.com/{version}/' - 'chromedriver_linux64.zip') - metadata = await RemoteUrlMetadata.get(url, cachable=True) - - self.gen.add_archive_source(url, - metadata.integrity, - destination=destination, - only_arches=['x86_64']) - - async def _add_nwjs_cache_downloads(self, version: str, flavor: str = 'normal'): - assert not version.startswith('v') - nwjs_mirror = 'https://dl.nwjs.io' - ffmpeg_dl_base = 'https://github.com/iteufel/nwjs-ffmpeg-prebuilt/releases/download' - - if self.nwjs_node_headers: - headers_dl_url = f'{nwjs_mirror}/v{version}/nw-headers-v{version}.tar.gz' - headers_dest = self.gen.data_root / 'node-gyp' / 'nwjs-current' - headers_metadata = await RemoteUrlMetadata.get(headers_dl_url, cachable=True) - self.gen.add_archive_source(headers_dl_url, - headers_metadata.integrity, - destination=headers_dest) - - if flavor == 'normal': - filename_base = 'nwjs' - else: - filename_base = f'nwjs-{flavor}' - - destdir = self.gen.data_root / 'nwjs-cache' - nwjs_arch_map = [ - ('x86_64', 'linux-x64', 'linux64'), - ('i386', 'linux-ia32', 'linux32'), - ] - for flatpak_arch, nwjs_arch, platform in nwjs_arch_map: - filename = f'{filename_base}-v{version}-{nwjs_arch}.tar.gz' - dl_url = f'{nwjs_mirror}/v{version}/{filename}' - metadata = await RemoteUrlMetadata.get(dl_url, cachable=True) - dest = destdir / f'{version}-{flavor}' / platform - - self.gen.add_archive_source(dl_url, - metadata.integrity, - destination=dest, - only_arches=[flatpak_arch]) - - if self.nwjs_ffmpeg: - ffmpeg_dl_url = f'{ffmpeg_dl_base}/{version}/{version}-{nwjs_arch}.zip' - ffmpeg_metadata = await RemoteUrlMetadata.get(ffmpeg_dl_url, cachable=True) - self.gen.add_archive_source(ffmpeg_dl_url, - ffmpeg_metadata.integrity, - destination=dest, - strip_components=0, - only_arches=[flatpak_arch]) - - async def _handle_nw_builder(self, package: Package) -> None: - if self.nwjs_version: - version = self.nwjs_version - else: - versions_json = json.loads(await Requests.instance.read_all( - 'https://nwjs.io/versions.json', cachable=False)) - version = versions_json['latest'].lstrip('v') - await self._add_nwjs_cache_downloads(version) - self.gen.add_data_source(version, destination=self.gen.data_root / 'nwjs-version') - - async def _handle_dugite_native(self, package: Package) -> None: - dl_json_url = urllib.parse.urljoin( - NPM_MIRROR, f'{package.name}@{package.version}/script/embedded-git.json') - dl_json = json.loads(await Requests.instance.read_all(dl_json_url, cachable=True)) - dugite_arch_map = { - 'x86_64': 'linux-x64', - } - destdir = self.gen.data_root / 'tmp' - for arch, dugite_arch in dugite_arch_map.items(): - url = dl_json[dugite_arch]['url'] - filename = dl_json[dugite_arch]['name'] - integrity = Integrity(algorithm='sha256', - digest=dl_json[dugite_arch]['checksum']) - - self.gen.add_url_source(url, - integrity, - destination=destdir / filename, - only_arches=[arch]) - - async def _handle_ripgrep_prebuilt(self, package: Package) -> None: - async def get_ripgrep_tag(version: str) -> str: - url = f'https://github.com/microsoft/vscode-ripgrep/raw/v{version}/lib/postinstall.js' - tag_re = re.compile(r"VERSION\s+=\s+'(v[\d.-]+)';") - resp = await Requests.instance.read_all(url, cachable=True) - match = tag_re.search(resp.decode()) - assert match is not None - return match.group(1) - - tag = await get_ripgrep_tag(package.version) - ripgrep_arch_map = { - 'x86_64': 'x86_64-unknown-linux-musl', - 'i386': 'i686-unknown-linux-musl', - 'arm': 'arm-unknown-linux-gnueabihf', - 'aarch64': 'aarch64-unknown-linux-gnu' - } - destdir = self.gen.data_root / 'tmp' / f'vscode-ripgrep-cache-{package.version}' - for arch, ripgrep_arch in ripgrep_arch_map.items(): - filename = f'ripgrep-{tag}-{ripgrep_arch}.tar.gz' - url = f'https://github.com/microsoft/ripgrep-prebuilt/releases/download/{tag}/{filename}' - metadata = await RemoteUrlMetadata.get(url, cachable=True) - self.gen.add_url_source(url, - metadata.integrity, - destination=destdir / filename, - only_arches=[arch]) - - async def _handle_playwright(self, package: Package) -> None: - base_url = f'https://github.com/microsoft/playwright/raw/v{package.version}/' - if StrictVersion(package.version) >= StrictVersion('1.16.0'): - browsers_json_url = base_url + 'packages/playwright-core/browsers.json' - else: - browsers_json_url = base_url + 'browsers.json' - browsers_json = json.loads(await Requests.instance.read_all(browsers_json_url, - cachable=True)) - for browser in browsers_json['browsers']: - if not browser.get('installByDefault', True): - continue - name = browser['name'] - revision = int(browser['revision']) - - if name == 'chromium': - if revision < 792639: - url_tp = 'https://storage.googleapis.com/chromium-browser-snapshots/Linux_x64/%d/%s' - dl_file = 'chrome-linux.zip' - else: - url_tp = 'https://playwright.azureedge.net/builds/chromium/%d/%s' - dl_file = 'chromium-linux.zip' - elif name == 'firefox': - url_tp = 'https://playwright.azureedge.net/builds/firefox/%d/%s' - if revision < 1140: - dl_file = 'firefox-linux.zip' - else: - dl_file = 'firefox-ubuntu-18.04.zip' - elif name == 'webkit': - url_tp = 'https://playwright.azureedge.net/builds/webkit/%d/%s' - if revision < 1317: - dl_file = 'minibrowser-gtk-wpe.zip' - else: - dl_file = 'webkit-ubuntu-20.04.zip' - elif name == 'ffmpeg': - url_tp = 'https://playwright.azureedge.net/builds/ffmpeg/%d/%s' - dl_file = 'ffmpeg-linux.zip' - else: - raise ValueError(f'Unknown playwright browser {name}') - - dl_url = url_tp % (revision, dl_file) - metadata = await RemoteUrlMetadata.get(dl_url, cachable=True) - destdir = self.gen.data_root / 'cache' / 'ms-playwright' / f'{name}-{revision}' - self.gen.add_archive_source(dl_url, - metadata.integrity, - destination=destdir, - strip_components=0) - # Arbitrary string here; flatpak-builder segfaults on empty data: url - self.gen.add_data_source("flatpak-node-cache", - destination=destdir / 'INSTALLATION_COMPLETE') - - async def _handle_esbuild(self, package: Package) -> None: - pkg_names = { - 'x86_64': 'esbuild-linux-64', - 'i386': 'esbuild-linux-32', - 'arm': 'esbuild-linux-arm', - 'aarch64': 'esbuild-linux-arm64' - } - - for flatpak_arch, pkg_name in pkg_names.items(): - dl_url = f'https://registry.npmjs.org/{pkg_name}/-/{pkg_name}-{package.version}.tgz' - metadata = await RemoteUrlMetadata.get(dl_url, cachable=True) - - cache_dst = self.gen.data_root / 'cache' / 'esbuild' - archive_dst = cache_dst / '.package' / f'{pkg_name}@{package.version}' - bin_src = archive_dst / 'bin' / 'esbuild' - bin_dst = cache_dst / 'bin' / f'{pkg_name}@{package.version}' - - self.gen.add_archive_source(dl_url, - metadata.integrity, - destination=archive_dst, - only_arches=[flatpak_arch], - strip_components=1) - - cmd = [ - f'mkdir -p "{bin_dst.parent.relative_to(cache_dst)}"', - f'cp "{bin_src.relative_to(cache_dst)}" "{bin_dst.relative_to(cache_dst)}"', - f'ln -sf "{bin_dst.name}" "bin/esbuild-current"' - ] - self.gen.add_shell_source(cmd, - only_arches=[flatpak_arch], - destination=cache_dst) - - def _handle_electron_builder(self, package: Package) -> None: - destination = self.gen.data_root / 'electron-builder-arch-args.sh' - - script: List[str] = [] - script.append('case "$FLATPAK_ARCH" in') - - for electron_arch, flatpak_arch in ( - ElectronBinaryManager.ELECTRON_ARCHES_TO_FLATPAK.items()): - script.append(f'"{flatpak_arch}")') - script.append(f' export ELECTRON_BUILDER_ARCH_ARGS="--{electron_arch}"') - script.append(' ;;') - - script.append('esac') - - self.gen.add_script_source(script, destination) - - async def generate_special_sources(self, package: Package) -> None: - if isinstance(Requests.instance, StubRequests): - # This is going to crash and burn. - return - - if package.name == 'electron': - await self._handle_electron(package) - if self.electron_node_headers or self.xdg_layout: - await self._handle_electron_headers(package) - elif package.name == 'electron-chromedriver': - await self._handle_electron_chromedriver(package) - elif package.name == 'chromedriver': - await self._handle_node_chromedriver(package) - elif package.name == 'electron-builder': - self._handle_electron_builder(package) - elif package.name == 'gulp-atom-electron': - self._handle_gulp_atom_electron(package) - elif package.name == 'nw-builder': - await self._handle_nw_builder(package) - elif package.name in {'dugite', '@shiftkey/dugite'}: - await self._handle_dugite_native(package) - elif package.name == 'vscode-ripgrep': - await self._handle_ripgrep_prebuilt(package) - elif package.name == 'playwright': - await self._handle_playwright(package) - elif package.name == 'esbuild': - await self._handle_esbuild(package) - - -class NpmLockfileProvider(LockfileProvider): - class Options(NamedTuple): - no_devel: bool - - def __init__(self, options: Options): - self.no_devel = options.no_devel - - def process_dependencies( - self, lockfile: Path, - dependencies: Dict[str, Dict[Any, Any]]) -> Iterator[Package]: - for name, info in dependencies.items(): - if info.get('dev') and self.no_devel: - continue - elif info.get('bundled'): - continue - - version: str = info['version'] - - source: PackageSource - if info.get('from'): - git_source = self.parse_git_source(version, info['from']) - source = git_source - else: - # NOTE: npm ignores the resolved field and just uses the provided - # registry instead. We follow the same behavior here. - source = UnresolvedRegistrySource() - - yield Package(name=name, version=version, source=source, lockfile=lockfile) - - if 'dependencies' in info: - yield from self.process_dependencies(lockfile, info['dependencies']) - - def process_lockfile(self, lockfile: Path) -> Iterator[Package]: - with open(lockfile) as fp: - data = json.load(fp) - - assert data['lockfileVersion'] <= 2, data['lockfileVersion'] - - yield from self.process_dependencies(lockfile, data.get('dependencies', {})) - - -class NpmModuleProvider(ModuleProvider): - class Options(NamedTuple): - registry: str - no_autopatch: bool - no_trim_index: bool - - class RegistryPackageIndex(NamedTuple): - url: str - data: Dict[Any, Any] - used_versions: Set[str] - - def __init__(self, gen: ManifestGenerator, special: SpecialSourceProvider, - lockfile_root: Path, options: Options) -> None: - self.gen = gen - self.special_source_provider = special - self.lockfile_root = lockfile_root - self.registry = options.registry - self.no_autopatch = options.no_autopatch - self.no_trim_index = options.no_trim_index - self.npm_cache_dir = self.gen.data_root / 'npm-cache' - self.cacache_dir = self.npm_cache_dir / '_cacache' - # Awaitable so multiple tasks can be waiting on the same package info. - self.registry_packages: Dict[ - str, asyncio.Future[NpmModuleProvider.RegistryPackageIndex]] = {} - self.index_entries: Dict[Path, str] = {} - self.all_lockfiles: Set[Path] = set() - # Mapping of lockfiles to a dict of the Git source target paths and GitSource objects. - self.git_sources: DefaultDict[Path, Dict[ - Path, GitSource]] = collections.defaultdict(lambda: {}) - - def __exit__(self, exc_type: Optional[Type[BaseException]], - exc_value: Optional[BaseException], - tb: Optional[types.TracebackType]) -> None: - self._finalize() - - def get_cacache_integrity_path(self, integrity: Integrity) -> Path: - digest = integrity.digest - return Path(digest[0:2]) / digest[2:4] / digest[4:] - - def get_cacache_index_path(self, integrity: Integrity) -> Path: - return self.cacache_dir / Path('index-v5') / self.get_cacache_integrity_path( - integrity) - - def get_cacache_content_path(self, integrity: Integrity) -> Path: - return (self.cacache_dir / Path('content-v2') / integrity.algorithm / - self.get_cacache_integrity_path(integrity)) - - def add_index_entry(self, url: str, metadata: RemoteUrlMetadata) -> None: - key = f'make-fetch-happen:request-cache:{url}' - index_json = json.dumps({ - 'key': - key, - 'integrity': - f'{metadata.integrity.algorithm}-{metadata.integrity.to_base64()}', - 'time': - 0, - 'size': - metadata.size, - 'metadata': { - 'url': url, - 'reqHeaders': {}, - 'resHeaders': {}, - }, - }) - - content_integrity = Integrity.generate(index_json, algorithm='sha1') - index = '\t'.join((content_integrity.digest, index_json)) - - key_integrity = Integrity.generate(key) - index_path = self.get_cacache_index_path(key_integrity) - self.index_entries[index_path] = index - - async def resolve_source(self, package: Package) -> ResolvedSource: - # These results are going to be the same each time. - if package.name not in self.registry_packages: - cache_future = asyncio.get_event_loop().create_future() - self.registry_packages[package.name] = cache_future - - data_url = f'{self.registry}/{package.name.replace("/", "%2f")}' - # NOTE: Not cachable, because this is an API call. - raw_data = await Requests.instance.read_all(data_url, cachable=False) - data = json.loads(raw_data) - - assert 'versions' in data, f'{data_url} returned an invalid package index' - cache_future.set_result( - NpmModuleProvider.RegistryPackageIndex(url=data_url, - data=data, - used_versions=set())) - - if not self.no_trim_index: - for key in list(data): - if key != 'versions': - del data[key] - - index = await self.registry_packages[package.name] - - versions = index.data['versions'] - assert package.version in versions, \ - f'{package.name} versions available are {", ".join(versions)}, not {package.version}' - - dist = versions[package.version]['dist'] - assert 'tarball' in dist, f'{package.name}@{package.version} has no tarball in dist' - - index.used_versions.add(package.version) - - integrity: Integrity - if 'integrity' in dist: - integrity = Integrity.parse(dist['integrity']) - elif 'shasum' in dist: - integrity = Integrity.from_sha1(dist['shasum']) - else: - assert False, f'{package.name}@{package.version} has no integrity in dist' - - return ResolvedSource(resolved=dist['tarball'], integrity=integrity) - - async def generate_package(self, package: Package) -> None: - self.all_lockfiles.add(package.lockfile) - source = package.source - - assert not isinstance(source, ResolvedSource) - - if isinstance(source, UnresolvedRegistrySource): - source = await self.resolve_source(package) - assert source.resolved is not None - assert source.integrity is not None - - integrity = await source.retrieve_integrity() - size = await RemoteUrlMetadata.get_size(source.resolved, cachable=True) - metadata = RemoteUrlMetadata(integrity=integrity, size=size) - content_path = self.get_cacache_content_path(integrity) - self.gen.add_url_source(source.resolved, integrity, content_path) - self.add_index_entry(source.resolved, metadata) - - await self.special_source_provider.generate_special_sources(package) - - # pyright: reportUnnecessaryIsInstance=false - elif isinstance(source, GitSource): - # Get a unique name to use for the Git repository folder. - name = f'{package.name}-{source.commit}' - path = self.gen.data_root / 'git-packages' / name - self.git_sources[package.lockfile][path] = source - self.gen.add_git_source(source.url, source.commit, path) - - def relative_lockfile_dir(self, lockfile: Path) -> Path: - return lockfile.parent.relative_to(self.lockfile_root) - - def _finalize(self) -> None: - for _, async_index in self.registry_packages.items(): - index = async_index.result() - - if not self.no_trim_index: - for version in list(index.data['versions'].keys()): - if version not in index.used_versions: - del index.data['versions'][version] - - raw_data = json.dumps(index.data).encode() - - metadata = RemoteUrlMetadata(integrity=Integrity.generate(raw_data), - size=len(raw_data)) - content_path = self.get_cacache_content_path(metadata.integrity) - self.gen.add_data_source(raw_data, content_path) - self.add_index_entry(index.url, metadata) - - patch_commands: DefaultDict[Path, List[str]] = collections.defaultdict(lambda: []) - - if self.git_sources: - # Generate jq scripts to patch the package*.json files. - scripts = { - 'package.json': - r''' - walk( - if type == "object" - then - to_entries | map( - if (.value | type == "string") and $data[.value] - then .value = "git+file:\($buildroot)/\($data[.value])" - else . - end - ) | from_entries - else . - end - ) - ''', - 'package-lock.json': - r''' - walk( - if type == "object" and (.version | type == "string") and $data[.version] - then - .version = "git+file:\($buildroot)/\($data[.version])" - else . - end - ) - ''', - } - - for lockfile, sources in self.git_sources.items(): - prefix = self.relative_lockfile_dir(lockfile) - data: Dict[str, Dict[str, str]] = { - 'package.json': {}, - 'package-lock.json': {}, - } - - for path, source in sources.items(): - original_version = f'{source.original}' - new_version = f'{path}#{source.commit}' - assert source.from_ is not None - data['package.json'][source.from_] = new_version - data['package-lock.json'][original_version] = new_version - - for filename, script in scripts.items(): - target = Path('$FLATPAK_BUILDER_BUILDDIR') / prefix / filename - script = textwrap.dedent(script.lstrip('\n')).strip().replace( - '\n', '') - json_data = json.dumps(data[filename]) - patch_commands[lockfile].append( - 'jq' - ' --arg buildroot "$FLATPAK_BUILDER_BUILDDIR"' - f' --argjson data {shlex.quote(json_data)}' - f' {shlex.quote(script)} {target}' - f' > {target}.new') - patch_commands[lockfile].append(f'mv {target}{{.new,}}') - - patch_all_commands: List[str] = [] - for lockfile in self.all_lockfiles: - patch_dest = self.gen.data_root / 'patch' / self.relative_lockfile_dir( - lockfile) - # Don't use with_extension to avoid problems if the package has a . in its name. - patch_dest = patch_dest.with_name(patch_dest.name + '.sh') - - self.gen.add_script_source(patch_commands[lockfile], patch_dest) - patch_all_commands.append(f'$FLATPAK_BUILDER_BUILDDIR/{patch_dest}') - - patch_all_dest = self.gen.data_root / 'patch-all.sh' - self.gen.add_script_source(patch_all_commands, patch_all_dest) - - if not self.no_autopatch: - # FLATPAK_BUILDER_BUILDDIR isn't defined yet for script sources. - self.gen.add_command(f'FLATPAK_BUILDER_BUILDDIR=$PWD {patch_all_dest}') - - if self.index_entries: - for path, entry in self.index_entries.items(): - self.gen.add_data_source(entry, path) - - -class YarnLockfileProvider(LockfileProvider): - @staticmethod - def is_git_version(version: str) -> bool: - for pattern in GIT_URL_PATTERNS: - if pattern.match(version): - return True - url = urllib.parse.urlparse(version) - if url.netloc in GIT_URL_HOSTS: - return len([p for p in url.path.split("/") if p]) == 2 - return False - - def unquote(self, string: str) -> str: - if string.startswith('"'): - assert string.endswith('"') - return string[1:-1] - else: - return string - - def parse_package_section(self, lockfile: Path, section: List[str]) -> Package: - assert section - name_line = section[0] - assert name_line.endswith(':'), name_line - name_line = name_line[:-1] - - name = self.unquote(name_line.split(',', 1)[0]) - name, _ = name.rsplit('@', 1) - - version: Optional[str] = None - resolved: Optional[str] = None - integrity: Optional[Integrity] = None - - section_indent = 0 - - line = None - for line in section[1:]: - indent = 0 - while line[indent].isspace(): - indent += 1 - - assert indent, line - if not section_indent: - section_indent = indent - elif indent > section_indent: - # Inside some nested section. - continue - - line = line.strip() - if line.startswith('version'): - version = self.unquote(line.split(' ', 1)[1]) - elif line.startswith('resolved'): - resolved = self.unquote(line.split(' ', 1)[1]) - elif line.startswith('integrity'): - _, values_str = line.split(' ', 1) - values = self.unquote(values_str).split(' ') - integrity = Integrity.parse(values[0]) - - assert version and resolved, line - - source: PackageSource - if self.is_git_version(resolved): - source = self.parse_git_source(version=resolved) - else: - source = ResolvedSource(resolved=resolved, integrity=integrity) - - return Package(name=name, version=version, source=source, lockfile=lockfile) - - def process_lockfile(self, lockfile: Path) -> Iterator[Package]: - section: List[str] = [] - - with open(lockfile) as fp: - for line in map(str.rstrip, fp): - if not line.strip() or line.strip().startswith('#'): - continue - - if not line[0].isspace(): - if section: - yield self.parse_package_section(lockfile, section) - section = [] - - section.append(line) - - if section: - yield self.parse_package_section(lockfile, section) - - -class YarnModuleProvider(ModuleProvider): - # From https://github.com/yarnpkg/yarn/blob/v1.22.4/src/fetchers/tarball-fetcher.js - _PACKAGE_TARBALL_URL_RE = re.compile( - r'(?:(@[^/]+)(?:/|%2f))?[^/]+/(?:-|_attachments)/(?:@[^/]+/)?([^/]+)$') - - def __init__(self, gen: ManifestGenerator, special: SpecialSourceProvider) -> None: - self.gen = gen - self.special_source_provider = special - self.mirror_dir = self.gen.data_root / 'yarn-mirror' - - def __exit__(self, exc_type: Optional[Type[BaseException]], - exc_value: Optional[BaseException], - tb: Optional[types.TracebackType]) -> None: - pass - - async def generate_package(self, package: Package) -> None: - source = package.source - - if isinstance(source, ResolvedSource): - integrity = await source.retrieve_integrity() - url_parts = urllib.parse.urlparse(source.resolved) - match = self._PACKAGE_TARBALL_URL_RE.search(url_parts.path) - if match is not None: - scope, filename = match.groups() - if scope: - filename = f'{scope}-{filename}' - else: - filename = os.path.basename(url_parts.path) - - self.gen.add_url_source(source.resolved, integrity, - self.mirror_dir / filename) - - elif isinstance(source, GitSource): - repo_name = urllib.parse.urlparse(source.url).path.split('/')[-1] - name = f'{repo_name}-{source.commit}' - repo_dir = self.gen.tmp_root / name - target_tar = os.path.relpath(self.mirror_dir / name, repo_dir) - - self.gen.add_git_source(source.url, source.commit, repo_dir) - self.gen.add_command( - f'cd {repo_dir}; git archive --format tar -o {target_tar} HEAD') - - await self.special_source_provider.generate_special_sources(package) - - -class ProviderFactory: - def create_lockfile_provider(self) -> LockfileProvider: - raise NotImplementedError() - - def create_module_provider(self, gen: ManifestGenerator, - special: SpecialSourceProvider) -> ModuleProvider: - raise NotImplementedError() - - -class NpmProviderFactory(ProviderFactory): - class Options(NamedTuple): - lockfile: NpmLockfileProvider.Options - module: NpmModuleProvider.Options - - def __init__(self, lockfile_root: Path, options: Options) -> None: - self.lockfile_root = lockfile_root - self.options = options - - def create_lockfile_provider(self) -> NpmLockfileProvider: - return NpmLockfileProvider(self.options.lockfile) - - def create_module_provider(self, gen: ManifestGenerator, - special: SpecialSourceProvider) -> NpmModuleProvider: - return NpmModuleProvider(gen, special, self.lockfile_root, self.options.module) - - -class YarnProviderFactory(ProviderFactory): - def __init__(self) -> None: - pass - - def create_lockfile_provider(self) -> YarnLockfileProvider: - return YarnLockfileProvider() - - def create_module_provider(self, gen: ManifestGenerator, - special: SpecialSourceProvider) -> YarnModuleProvider: - return YarnModuleProvider(gen, special) - - -class GeneratorProgress(contextlib.AbstractContextManager): - def __init__(self, packages: Collection[Package], - module_provider: ModuleProvider) -> None: - self.finished = 0 - self.packages = packages - self.module_provider = module_provider - self.previous_package: Optional[Package] = None - self.current_package: Optional[Package] = None - - def __exit__(self, exc_type: Optional[Type[BaseException]], - exc_value: Optional[BaseException], - tb: Optional[types.TracebackType]) -> None: - print() - - def _format_package(self, package: Package, max_width: int) -> str: - result = f'{package.name} @ {package.version}' - - if len(result) > max_width: - result = result[:max_width - 3] + '...' - - return result - - def _update(self) -> None: - columns, _ = shutil.get_terminal_size() - - sys.stdout.write('\r' + ' ' * columns) - - prefix_string = f'\rGenerating packages [{self.finished}/{len(self.packages)}] ' - sys.stdout.write(prefix_string) - max_package_width = columns - len(prefix_string) - - if self.current_package is not None: - sys.stdout.write(self._format_package(self.current_package, - max_package_width)) - - sys.stdout.flush() - - def _update_with_package(self, package: Package) -> None: - self.previous_package, self.current_package = self.current_package, package - self._update() - - async def _generate(self, package: Package) -> None: - self._update_with_package(package) - await self.module_provider.generate_package(package) - self.finished += 1 - self._update_with_package(package) - - async def run(self) -> None: - self._update() - await asyncio.wait( - [asyncio.create_task(self._generate(pkg)) for pkg in self.packages]) - - -def scan_for_lockfiles(base: Path, patterns: List[str]) -> Iterator[Path]: - for root, _, files in os.walk(base.parent): - if base.name in files: - lockfile = Path(root) / base.name - if not patterns or any(map(lockfile.match, patterns)): - yield lockfile - - -async def main() -> None: - parser = argparse.ArgumentParser(description='Flatpak Node generator') - parser.add_argument('type', choices=['npm', 'yarn']) - parser.add_argument('lockfile', - help='The lockfile path (package-lock.json or yarn.lock)') - parser.add_argument('-o', - '--output', - help='The output sources file', - default='generated-sources.json') - parser.add_argument( - '-r', - '--recursive', - action='store_true', - help='Recursively process all files under the lockfile directory with ' - 'the lockfile basename') - parser.add_argument( - '-R', - '--recursive-pattern', - action='append', - help='Given -r, restrict files to those matching the given pattern.') - parser.add_argument('--registry', - help='The registry to use (npm only)', - default='https://registry.npmjs.org') - parser.add_argument('--no-trim-index', - action='store_true', - help="Don't trim npm package metadata (npm only)") - parser.add_argument('--no-devel', - action='store_true', - help="Don't include devel dependencies (npm only)") - parser.add_argument('--no-aiohttp', - action='store_true', - help="Don't use aiohttp, and silence any warnings related to it") - parser.add_argument('--no-requests-cache', - action='store_true', - help='Disable the requests cache') - parser.add_argument('--retries', - type=int, - help='Number of retries of failed requests', - default=Requests.DEFAULT_RETRIES) - parser.add_argument('-P', - '--no-autopatch', - action='store_true', - help="Don't automatically patch Git sources from package*.json") - parser.add_argument('-s', - '--split', - action='store_true', - help='Split the sources file to fit onto GitHub.') - parser.add_argument('--node-chromedriver-from-electron', - help='Use the ChromeDriver version associated with the given ' - 'Electron version for node-chromedriver') - # Deprecated alternative to --node-chromedriver-from-electron - parser.add_argument('--electron-chromedriver', help=argparse.SUPPRESS) - parser.add_argument('--electron-ffmpeg', - choices=['archive', 'lib'], - help='Download prebuilt ffmpeg for matching electron version') - parser.add_argument('--electron-node-headers', - action='store_true', - help='Download the electron node headers') - parser.add_argument('--nwjs-version', - help='Specify NW.js version (will use latest otherwise)') - parser.add_argument('--nwjs-node-headers', - action='store_true', - help='Download the NW.js node headers') - parser.add_argument('--nwjs-ffmpeg', action='store_true', - help='Download prebuilt ffmpeg for current NW.js version') - parser.add_argument('--xdg-layout', - action='store_true', - help='Use XDG layout for caches') - # Internal option, useful for testing. - parser.add_argument('--stub-requests', action='store_true', help=argparse.SUPPRESS) - - args = parser.parse_args() - - Requests.retries = args.retries - - if args.type == 'yarn' and (args.no_devel or args.no_autopatch): - sys.exit('--no-devel and --no-autopatch do not apply to Yarn.') - - if args.electron_chromedriver: - print('WARNING: --electron-chromedriver is deprecated', file=sys.stderr) - print(' (Use --node-chromedriver-from-electron instead.)', file=sys.stderr) - - if args.stub_requests: - Requests.instance = StubRequests() - elif args.no_aiohttp: - if Requests.instance.is_async: - Requests.instance = UrllibRequests() - elif not Requests.instance.is_async: - print('WARNING: aiohttp is not found, performance will suffer.', file=sys.stderr) - print(' (Pass --no-aiohttp to silence this warning.)', file=sys.stderr) - - if not args.no_requests_cache: - Cache.instance = FilesystemBasedCache() - - lockfiles: List[Path] - if args.recursive or args.recursive_pattern: - lockfiles = list(scan_for_lockfiles(Path(args.lockfile), args.recursive_pattern)) - if not lockfiles: - sys.exit('No lockfiles found.') - print(f'Found {len(lockfiles)} lockfiles.') - else: - lockfiles = [Path(args.lockfile)] - - lockfile_root = Path(args.lockfile).parent - - provider_factory: ProviderFactory - if args.type == 'npm': - npm_options = NpmProviderFactory.Options( - NpmLockfileProvider.Options(no_devel=args.no_devel), - NpmModuleProvider.Options(registry=args.registry, - no_autopatch=args.no_autopatch, - no_trim_index=args.no_trim_index)) - provider_factory = NpmProviderFactory(lockfile_root, npm_options) - elif args.type == 'yarn': - provider_factory = YarnProviderFactory() - else: - assert False, args.type - - print('Reading packages from lockfiles...') - packages: Set[Package] = set() - - for lockfile in lockfiles: - lockfile_provider = provider_factory.create_lockfile_provider() - packages.update(lockfile_provider.process_lockfile(lockfile)) - - print(f'{len(packages)} packages read.') - - gen = ManifestGenerator() - with gen: - options = SpecialSourceProvider.Options( - node_chromedriver_from_electron=args.node_chromedriver_from_electron - or args.electron_chromedriver, - nwjs_version=args.nwjs_version, - nwjs_node_headers=args.nwjs_node_headers, - nwjs_ffmpeg=args.nwjs_ffmpeg, - xdg_layout=args.xdg_layout, - electron_ffmpeg=args.electron_ffmpeg, - electron_node_headers=args.electron_node_headers) - special = SpecialSourceProvider(gen, options) - - with provider_factory.create_module_provider(gen, special) as module_provider: - with GeneratorProgress(packages, module_provider) as progress: - await progress.run() - - if args.xdg_layout: - script_name = "setup_sdk_node_headers.sh" - node_gyp_dir = gen.data_root / "cache" / "node-gyp" - gen.add_script_source([ - 'version=$(node --version | sed "s/^v//")', - 'nodedir=$(dirname "$(dirname "$(which node)")")', - f'mkdir -p "{node_gyp_dir}/$version"', - f'ln -s "$nodedir/include" "{node_gyp_dir}/$version/include"', - f'echo 9 > "{node_gyp_dir}/$version/installVersion"', - ], - destination=gen.data_root / script_name) - gen.add_command(f"bash {gen.data_root / script_name}") - - if args.split: - i = 0 - for i, part in enumerate(gen.split_sources()): - output = Path(args.output) - output = output.with_suffix(f'.{i}{output.suffix}') - with open(output, 'w') as fp: - json.dump(part, fp, indent=ManifestGenerator.JSON_INDENT) - - print(f'Wrote {gen.source_count} to {i + 1} file(s).') - else: - with open(args.output, 'w') as fp: - json.dump(list(gen.ordered_sources()), - fp, - indent=ManifestGenerator.JSON_INDENT) - - if fp.tell() >= ManifestGenerator.MAX_GITHUB_SIZE: - print('WARNING: generated-sources.json is too large for GitHub.', - file=sys.stderr) - print(' (Pass -s to enable splitting.)') - - print(f'Wrote {gen.source_count} source(s).') - - -if __name__ == '__main__': - asyncio.run(main()) diff --git a/flatpak/generated-sources.json b/flatpak/generated-sources.json deleted file mode 100644 index d32ea4d3..00000000 --- a/flatpak/generated-sources.json +++ /dev/null @@ -1,17196 +0,0 @@ -[ - { - "type": "archive", - "url": "https://playwright.azureedge.net/builds/chromium/956323/chromium-linux.zip", - "strip-components": 0, - "sha256": "6627a5be7d9f3233b44aa7592dc86cfe0012f520fdaa76ab38dd0ea290751ea9", - "dest": "flatpak-node/cache/ms-playwright/chromium-956323" - }, - { - "type": "archive", - "url": "https://playwright.azureedge.net/builds/ffmpeg/1007/ffmpeg-linux.zip", - "strip-components": 0, - "sha256": "834b97ce515429542e5fb5523778b471b7320fae569ad554fb67bce75499ea5e", - "dest": "flatpak-node/cache/ms-playwright/ffmpeg-1007" - }, - { - "type": "archive", - "url": "https://playwright.azureedge.net/builds/firefox/1313/firefox-ubuntu-18.04.zip", - "strip-components": 0, - "sha256": "b85a9a572bfc63db22626b8c810e198a1284dcfd9ef6b2c241321edbf2987118", - "dest": "flatpak-node/cache/ms-playwright/firefox-1313" - }, - { - "type": "archive", - "url": "https://playwright.azureedge.net/builds/webkit/1596/webkit-ubuntu-20.04.zip", - "strip-components": 0, - "sha256": "3dc32d2a2eb214538632912f2f17d970adaad5c3baf3973f113350f4d26fb23d", - "dest": "flatpak-node/cache/ms-playwright/webkit-1596" - }, - { - "type": "archive", - "url": "https://www.electronjs.org/headers/v17.0.0/node-v17.0.0-headers.tar.gz", - "strip-components": 1, - "sha256": "3436da55b6c2d3c6b677898f624087fa70fce451e1ebf59171240ae37be87ac4", - "dest": "flatpak-node/cache/node-gyp/17.0.0" - }, - { - "type": "file", - "url": "https://codeload.github.com/devsnek/node-register-scheme/tar.gz/e7cc9a63a1f512565da44cb57316d9fb10750e17", - "sha256": "ab95956c7df0d1252400d97a9b62c7c2e807f41c38629471dc0f41723aa7ff17", - "dest-filename": "e7cc9a63a1f512565da44cb57316d9fb10750e17", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://github.com/electron/electron/releases/download/v17.0.0/SHASUMS256.txt", - "sha256": "81013ab86d408a3dede66bca1581a978014cefa5c7cc0a1df971381d6704195f", - "dest-filename": "SHASUMS256.txt-17.0.0", - "dest": "flatpak-node/cache/electron" - }, - { - "type": "file", - "url": "https://github.com/electron/electron/releases/download/v17.0.0/electron-v17.0.0-linux-arm64.zip", - "sha256": "e7bf2ec09b8a7018ba417fc670a15594fb8f3e930626485f2423e9a89e2dcbd0", - "dest-filename": "electron-v17.0.0-linux-arm64.zip", - "dest": "flatpak-node/cache/electron", - "only-arches": [ - "aarch64" - ] - }, - { - "type": "file", - "url": "https://github.com/electron/electron/releases/download/v17.0.0/electron-v17.0.0-linux-armv7l.zip", - "sha256": "29b31c5e77d4d6d9e1a4340fdf08c28ae6698ea9e20d636cec8a59dc758815ef", - "dest-filename": "electron-v17.0.0-linux-armv7l.zip", - "dest": "flatpak-node/cache/electron", - "only-arches": [ - "arm" - ] - }, - { - "type": "file", - "url": "https://github.com/electron/electron/releases/download/v17.0.0/electron-v17.0.0-linux-ia32.zip", - "sha256": "6f6fe5fa0452e871abe82dbd25d7cf92ab7011995b3b2b15d04d8691ddc9e9de", - "dest-filename": "electron-v17.0.0-linux-ia32.zip", - "dest": "flatpak-node/cache/electron", - "only-arches": [ - "i386" - ] - }, - { - "type": "file", - "url": "https://github.com/electron/electron/releases/download/v17.0.0/electron-v17.0.0-linux-x64.zip", - "sha256": "dc74e28719a79f05dd741cda8c22c2bb164dec178c6d560af085910b37cf000b", - "dest-filename": "electron-v17.0.0-linux-x64.zip", - "dest": "flatpak-node/cache/electron", - "only-arches": [ - "x86_64" - ] - }, - { - "type": "file", - "url": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.1.1.tgz", - "sha512": "b003f82e575e58dcf494dce64e2adddee59f1435964de83a57f32c9b2c8b47d5f589dc0a056220b7f66f8a7a9095d266dcb79c284b357a691baae3ba3c288b55", - "dest-filename": "7zip-bin-5.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/7zip/-/7zip-0.0.6.tgz", - "sha1": "9cafb171af82329490353b4816f03347aa150a30", - "dest-filename": "7zip-0.0.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "sha512": "8805ea527f0821e05335def6c6c16581a5c790c04cb7acb81c9a75b4868ae3ae4258b4ff7c6d5aa81ef292bf798071e69417466c579659fc81e0d249d2799e22", - "dest-filename": "@babel-code-frame-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.8.tgz", - "sha512": "9bb3a45f421d28b28fa41949b45e7ad5825a979cbf8f22397cd7d66cfc61d83fe76f3cc6238a91cab0fcc4eda3076e2eee5fb92366b8dec7021b622b7e30b9d1", - "dest-filename": "@babel-compat-data-7.16.8.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/core/-/core-7.16.12.tgz", - "sha512": "74ae4fb46d6e88dda2924fbee4ecd262c8ad64a9f2e303820f49eb3b84ea9d6e015414d0d8d192dcd82296f4ff4c4cb14d24fb2cdc9657f4f8b570e80f77ce82", - "dest-filename": "@babel-core-7.16.12.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz", - "sha512": "d688d9c04f7e94e5f371675698ee936d4cc37ea2c3dfd0a612137cfb6717f57903a39c96d4ea607de8df962cac4760162e931a99388e880a7f9adae86b29a1a7", - "dest-filename": "@babel-generator-7.16.8.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "sha512": "b3ab76c3f20f4154c0113d478ada28c11197a285fc98282db8fe75f79c03fd024f57ac188e9ba308617b26e30e0d55f664024e7f5193e834fd307119bcb3854b", - "dest-filename": "@babel-helper-annotate-as-pure-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", - "sha512": "0ba15d6d16b1623c15bbf81e296e19790d10df501fb6045c7529d9e7f8ec1fa0730896edbd7be1a5f91b9138584aebad640ee7097a4f47a003f73775769acc90", - "dest-filename": "@babel-helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", - "sha512": "986a23070216730183eab7ea8115d59556263c0bfb78ea487a6506ddd1a70dd098e0f69eef444e8a3dd799fac7e856b58756a20f29698256d9ca4b5fcf2a3f84", - "dest-filename": "@babel-helper-compilation-targets-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.10.tgz", - "sha512": "c0379e8f4a6edd637f7df4f130d08f5b950288e6aff0870b471488ca9ffdf88176c4950cf61fce6238342092c768be85f2853c92a333f67735bebc9784cb205e", - "dest-filename": "@babel-helper-create-class-features-plugin-7.16.10.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.16.7.tgz", - "sha512": "7e4e40eb299fa7e3b9fa9db20a45c0bb92b28fabf4c61d1105e35c024614303bef000a31bd22979fe25bdfbb7fc961624150c52b510ba544c3f3f68b8423eefa", - "dest-filename": "@babel-helper-create-regexp-features-plugin-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", - "sha512": "27d8463292509ad5a68f8e81de404798bdfc5212468585fb7aa91cabeda0b2cb7262ddf8d4798f796b298a15f8df2551034992fbc18693619c91cedb63f1c298", - "dest-filename": "@babel-helper-define-polyfill-provider-0.3.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "sha512": "48b2dbd00027e8f9147807ca24208e97d7b5479de94251807dce32e17b8c4597ea78c60b13474cd4b321a9b180946418d257f0e7fa21a185807bd575ca26d16a", - "dest-filename": "@babel-helper-environment-visitor-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", - "sha512": "2b251e9e158c0bc56bc739063f4262ce3a38fd9c7ed67359860a1cb3e80bcf267207c48789d868abd28affc02da386a7870b22bdf9012dfb64cbb82fcdb64cb5", - "dest-filename": "@babel-helper-explode-assignable-expression-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "sha512": "41f0df127214cb20524771edaed1840ae67a0c0c82918169ec61e5ef9bc5b539e7ea98ca78ad13d4307994b905bc179af0c75a894001c77a2c6e02f2227a1e8c", - "dest-filename": "@babel-helper-function-name-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "sha512": "7e573e44b48e057ccdcd585c2eeeae8de1d4ac3ead00d00e539a23ad1c7f6acfad6f37fcfacb540a3efe21f451a006c466a8ff6a15c432c8e13a181e66cae74f", - "dest-filename": "@babel-helper-get-function-arity-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "sha512": "9b4e1dff43a9df81f9bfba5b670ea948a3fbc1e03a96c32f7e220031e22f918fd1e3142d05230512282ef504d9daa07ff65db6becc6d33c6be43c0b30f6e797e", - "dest-filename": "@babel-helper-hoist-variables-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz", - "sha512": "56d27feb9b58894ffa01b3130f0ca85c63ca1e04ec7d16ab8af9be61b079b80cca532b8f8e065280015e1bcec50a281ceca347bb63de821d57213de55e3bf3dd", - "dest-filename": "@babel-helper-member-expression-to-functions-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0-beta.35.tgz", - "sha512": "bda0b52b22194aec966f72e3dbbedf5f4a718afc87c2e0d4e3166ca1faa06006e40f136278c836bee8733f902033078c63b7c24143138be0603ea4cb8e4c5716", - "dest-filename": "@babel-helper-module-imports-7.0.0-beta.35.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "sha512": "2d5b52e93aa324715cfa761e213468e952d7bdeef4c66abbc0f8564ea0c9bac2448069a4000096c0c89336bbdfa10a3a844845c00222c4d92f0748cf5c32fc5a", - "dest-filename": "@babel-helper-module-imports-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", - "sha512": "81aaad2c3c4910509e41b629f5a2c079f8e190a76329c761e8307b8e7888194dcfcf9d960263f6ebcccad1580fcfd85436431261e1fdefa2b6fd8eb23da7699e", - "dest-filename": "@babel-helper-module-transforms-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", - "sha512": "12d801860eeb77f25c9e96455e9072d337b56117dd9bb067057e2e28c05dde2c5add1180134d3625907ae85272347ee0d05dfc534e695e60393fc70187bcfed7", - "dest-filename": "@babel-helper-optimise-call-expression-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "sha512": "420dcd93b671a6032bb28c7a1eb798d5934a741abb2bbdad0d296203a7429797f4d3b8d1e277bc883e54cee3670891f6c417f60441151abfbf38be86769ed1c4", - "dest-filename": "@babel-helper-plugin-utils-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", - "sha512": "7e6d201fb1656fc1f9d4ba891f2dc7277c27135faab5847603df4ad3a6a1c2b6b02dd385b021168d93ab62b89c5c91e83d2b9d34ac6b30150f1083f188822f07", - "dest-filename": "@babel-helper-remap-async-to-generator-7.16.8.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "sha512": "cbdbec5a295335a567561eb18897c0073b0da600cf29ebfd1e7020cfa19bd69e945307fd35ea5d96c57b5571827ed24cfa3a83e5fec9204b9b7292e3663e5d07", - "dest-filename": "@babel-helper-replace-supers-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", - "sha512": "648cc7572a1e2ccbd730dfefa24fdae0b591cbc1b6bf6d3998d3f45ceb9ff5744bc97e7fbbd0a756e954b438144da99ade54fe6dffd4aae72e663aa21ae4d2d6", - "dest-filename": "@babel-helper-simple-access-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", - "sha512": "fa2975813cb4a07c14b01419c89bee91b078bcf31d71806b1476b451ce008b32f16eae813980b9d51bf8b56a1c5fd04b0432d9e2473aa9416943a1d180bfb7cf", - "dest-filename": "@babel-helper-skip-transparent-expression-wrappers-7.16.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "sha512": "c5b5a8cbf3c5a314966b3213a13f5289ffa325396b31c9dd22c68e2af4c0eaeed0128ee2964459a637b0d7cfd6ddcee79bc7d77540d7874d955d36d9d2918337", - "dest-filename": "@babel-helper-split-export-declaration-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "sha512": "86c12715e99e896e03d3c039814019c4b0535e9677f4ff9af83183b07c35cb1ab243f8f31449f17f9b93106a7eddbcc06cd3b1535a5a4e0612e04094fc881f0f", - "dest-filename": "@babel-helper-validator-identifier-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "sha512": "4d1b5e9ceb91515a3da084063c2e46f4380ae3be3771dc6fb4ec34c1e40da595da4b5e920818b930d8d917cbdb6b71135118d9a536d59fb56f71fd9e030168cd", - "dest-filename": "@babel-helper-validator-option-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", - "sha512": "f11a724552005b545c0c319303e1a93c0c15db6c1709f28ea0cf5b7ade932e4188153911412907d67310e587ade0ca685ded59c073d5b4d6ac736c34b9932a9f", - "dest-filename": "@babel-helper-wrap-function-7.16.8.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.7.tgz", - "sha512": "f590e8aad7d8ec0b843adddcc5c85f8a2e82ec60f2c8c05f7e4b51e41da3bd6bfcbb6f9e7f0be99d5297316ccd7a1ab2ebcb4a8007d2c1f770fe55a9b614b66f", - "dest-filename": "@babel-helpers-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "sha512": "e459d340b48bb30123e88920570e4abac35450563d646a9efd34459cffc12981d881f87bb5cf82ee6c22cbde7fc8d3fb0e1f71e7cd15bfcafbbbb65f4c117177", - "dest-filename": "@babel-highlight-7.16.10.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz", - "sha512": "55f695d79a68f11899b2cae43f07b2bdb19549ee31db2f9a722142827d27d3f489311db6730a1f455d66b6725061c481d70513680fd7d4b9c0ddeb3ae8c08ee4", - "dest-filename": "@babel-parser-7.16.12.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", - "sha512": "6a7bff0ce6e5ef06a21849c2db83bdcea2f4a52b88f619638a1aa20ee1470bc77bfdb8ebff844b18f5ae73cad839f7ff40fcdb10f4a4cc6f30186f5a0ee84746", - "dest-filename": "@babel-plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", - "sha512": "762f2f50745d7fee1a27b96d5e16836cfa2ccdd921e7d010b49339b282ecb87a5025d15064e038b868f4576bbf099f1b27fbbc50b0cbe72aba14efdb0979ca1f", - "dest-filename": "@babel-plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", - "sha512": "ef560722f32e8aea9625091e6d626d7614137dde10e2617beaad885f7eee64f906f7ea25071b17fab1f5be4845b68e1478967d74f636b3e983be10e6d6ed8119", - "dest-filename": "@babel-plugin-proposal-async-generator-functions-7.16.8.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", - "sha512": "2286d4d1799edf57b08d839285222a77f64633faff72e3b3db3d0c0db36b845e455be655822d1fda5c9ea23f4a14f0ce02ab18c662d666d7b558ec25bd8f5ac3", - "dest-filename": "@babel-plugin-proposal-class-properties-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.7.tgz", - "sha512": "760a8926b719a06ff80a4328a7384f2631b1b087bd03c4659102e72ff561871f0003d66e691c064a5b1c4a1e3685acdced64abc9afc82bb9937a81740cff6d13", - "dest-filename": "@babel-plugin-proposal-class-static-block-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", - "sha512": "23c496f47a37ffc0d149d983747de039177252e6279359b870cc5401dbb9a32e27dce7cdf1f943107f9deb4886edd51f8b42a46304afa1a947cf3751ce95874e", - "dest-filename": "@babel-plugin-proposal-dynamic-import-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", - "sha512": "67176da835cb44604beb8a1c65cb3ba2fb7bd4bde3842d51192c91f7deacbeb0a2dcf62a1cd91bdd2c0f242b3c448cc3f3ab3e58fa6dd92ef7f841c218ef8d50", - "dest-filename": "@babel-plugin-proposal-export-namespace-from-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", - "sha512": "94d677104820b0663bf096af81b1ec2bdbb93f7a50696ee4e1ac658052d890c77b501b2235a8422134a12e3350b1c84fca3b4ee9d003acbdb8ef9ec876106bb1", - "dest-filename": "@babel-plugin-proposal-json-strings-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", - "sha512": "2b75f3c99246402af4d3e12d62dac38e6c17ee8ecf2cae94f5b8b59c2c24422a1115552fe9d268c5b423b5656d3fe6c23f2f366ce341286f0d3f2438fa2eb28e", - "dest-filename": "@babel-plugin-proposal-logical-assignment-operators-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", - "sha512": "6943ab614dc456d8dfeb68d0ac28fade9619ee4eaf9ecda1fc342f1cf5869ac25163359767afc0b1f829891cba5e2b880c00e12733f643d33048c29ab8143e51", - "dest-filename": "@babel-plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", - "sha512": "bd080f3249ce2208ae56a6e8913a325db918fce9a68c0cebff49614886c6fca9a7cd73c6c16fc076174aa62f8ee17fd59168968e790a3818aa26b4da0bdf152b", - "dest-filename": "@babel-plugin-proposal-numeric-separator-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.7.tgz", - "sha512": "dced18e3e770f781c0f3aa9283d2077f23e4b6047bab782935501e88a41dfbc8c1285694e4d412d586ad828e3063e50536e2e3bf17129b372c1eaae1813c8150", - "dest-filename": "@babel-plugin-proposal-object-rest-spread-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", - "sha512": "78c387fcbe0ebd6499004d559076ebd6f7242c6d5651c1c62522eaa90c25d86694a86e908dd76face69350c3588afefb1f920a3cc67d53d3fb11a1f0bc04a17c", - "dest-filename": "@babel-plugin-proposal-optional-catch-binding-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", - "sha512": "782df1cbe66b51c06d3fbc7eb2aeb643f1d877aef8a4f4dbffbed764c6f9c1b0cf19621d51b4abe0082bd39dbecda50f49bfa01919e3c577ca16fc7988c27e0c", - "dest-filename": "@babel-plugin-proposal-optional-chaining-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", - "sha512": "17fdae0243e55c3afcf811e966fa35f70de12c52a07be93be57529ac4ea36aa2b18c691261c2bee1cf9bba9e4f756ffb5bf4698f0aa5ec54d51035be7d1010b3", - "dest-filename": "@babel-plugin-proposal-private-methods-7.16.11.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", - "sha512": "acc4248dc3856e6fae7deddb4d92f239fb0e50ec72bcb5d92424c046126bfbc50c4a8666a937b52b506090572b5b7eeb01c856839ef223af4e471896bd420db9", - "dest-filename": "@babel-plugin-proposal-private-property-in-object-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", - "sha512": "4112b4608ff8d152e13551888d13400109041f0b3472cc12745163a45cadf78dd8989214d5d6bdb96eb722ee8d155e82c53656e5e4c30abc1952cb415a0a7f46", - "dest-filename": "@babel-plugin-proposal-unicode-property-regex-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "sha512": "b727266719067d96b184c45b5e53d7b95169756957a62af65b800c85226044ace4fde0e52173a16f62c75a82e90c5ed3107ca5579ccd872917e8a0201c999337", - "dest-filename": "@babel-plugin-syntax-async-generators-7.8.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "sha512": "7e6e227632a56b461a85436014d2c2074ab249db283e264fde2404deb932d26054b4c676df20c9f5225d83a7574d20e7ba5395aa21771e0afd9db5ef5d341960", - "dest-filename": "@babel-plugin-syntax-class-properties-7.12.13.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "sha512": "6fe6323e6afa95dc8d9cceaca9878c584f9b809709a4eeb24b8403ef29b1807df81813cd0ccfd31c187c8ae9f2bca219ced8b02c7e02259d11c5393d7a68298f", - "dest-filename": "@babel-plugin-syntax-class-static-block-7.14.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "sha512": "e607466c5a27f8fb33633aacf374b71399a98bbff2ffc33d782f743114d97ddb903985bbea283a48e48f35ee35206e4ba0fdc51819f6374463543490892f7891", - "dest-filename": "@babel-plugin-syntax-dynamic-import-7.8.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "sha512": "3177f995a5e8e9cd486c46de8039b318fc06353b07666132e901b39eee528765025afb9ecb06f679ef82084e3342266cb7153d04ca103bd8bacd41526342a3d1", - "dest-filename": "@babel-plugin-syntax-export-namespace-from-7.8.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "sha512": "958ea4746a561ef8e87b6be4e16ac06a912e051ebd10cc5997e46819186b14635854af2638f016f157db4ff660ac56d794336289ac509c0b6054267a8efdf410", - "dest-filename": "@babel-plugin-syntax-json-strings-7.8.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz", - "sha512": "12cc6693b62303c432b0a793dd58535ef17acbbedffdaf75488b38a566f81f6796190902285810686ea176811566d1acac071bd8ae415bae97b0e12b0f8594dd", - "dest-filename": "@babel-plugin-syntax-jsx-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "sha512": "77cc1a4a19691438a743932dbc653dc4300ecca1f8efe145a277b2d9b68522832bf79da128e2e9d4747b56cce866f3ac57fe3e451b33358ec3d7b6dad2d7b48a", - "dest-filename": "@babel-plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "sha512": "6927dfe333c8235bb6403ef2f85f280eccf5f5ec3820610983d4955be6eac29c2d7c595e8900cc77303f47e525583cdf9c7142c7195e153d0f308ad1dfa5cb35", - "dest-filename": "@babel-plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "sha512": "f47e9875f91c2bfb8e9d8fcaeff680db1a73680824427dfbcb35943112bb39a3cea8ea464b5fa7d07e61c53f40530f44b128cf5bc495c8c270611b56b375f7ba", - "dest-filename": "@babel-plugin-syntax-numeric-separator-7.10.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "sha512": "5e8a8c8a31996fdcb7cb65ec90df8fd70506895c16679266a03470c79fb71a612994dc95336b360e0f082c5426f2b58ce3ca2b1b2e58a48e4197c535cbbc9d94", - "dest-filename": "@babel-plugin-syntax-object-rest-spread-7.8.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "sha512": "e953c3d0f7359694eac3468aa1e45332207e916840a13db83c0fa4b16481ac5b65e52211569665c0ddcd34f4237a103613ff75155dd18cb5a855382559c495dd", - "dest-filename": "@babel-plugin-syntax-optional-catch-binding-7.8.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "sha512": "2a82bd12b1f53019423f15745403645d6dbf770e2f95b183ac5833f1b994b0119890545c6d1c0c87a70826e6dd3eb931470b8676d0a4d2fff03d329b42006392", - "dest-filename": "@babel-plugin-syntax-optional-chaining-7.8.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "sha512": "d30567a7d77127bd995090d5dbb65f6d28fa8872e8cad6199a1deb15cc4d9efb0917792d9332c364fcbf980d7b1c6b1a413dff0d0b16617d5fd50196902a1552", - "dest-filename": "@babel-plugin-syntax-private-property-in-object-7.14.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "sha512": "871fbeba92efe54d6b8187f07b5c41414851994e35344be952fae9f2392b48276f1929cce7fa9d44cb72949e8f1b938590168791b4c02939dddff63211244717", - "dest-filename": "@babel-plugin-syntax-top-level-await-7.14.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz", - "sha512": "6215082471c692a3e011c31890f08a4f219476818a5ada29232710ca3247f0e8ef460398b17b1a29e84b54f49c28958050b3f131ae0dd6f09eeaccd1105959ec", - "dest-filename": "@babel-plugin-syntax-typescript-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", - "sha512": "f5f7e414531bbf34efbfeedd4e9ffaeb1bd9016012b8f0f94e5f4b2b767dbe13a600da3a8fde2b8a4fb960c06de02c0754c58b5a932cae221cdb3b1add65b7c5", - "dest-filename": "@babel-plugin-transform-arrow-functions-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", - "sha512": "32d9949932501c29f2255ad270dccd9687d027774b16ea1b627de6c0e4ca1e748232d6cdb2abc5ef51909897c58ddad74ac000ee2cac166616c386d7676d213a", - "dest-filename": "@babel-plugin-transform-async-to-generator-7.16.8.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", - "sha512": "254bb3973985e3467d717cb2b5c6d911929c920ad0cc285b409c3fe4fb841d87aacc2b2f79b0f1d0ad235a720855c9a60ce01572d0a09d8b34a4c72b623db326", - "dest-filename": "@babel-plugin-transform-block-scoped-functions-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", - "sha512": "39b65ebf69f1540600e1b872bac10b768f616f71fe039e9bc47dc564c6c42266458840d85475d0489d6140a1650e796df06f5b06b099e59a5445952b5781b9a9", - "dest-filename": "@babel-plugin-transform-block-scoping-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", - "sha512": "598ee8837f1214019845eeb806b8ca7fc3ab13aba5107b6be63118699330a31f4a79b82a3e2ebb66acfc2b9dc42a4d5f1442609bdeabdf6ae4299dea0369c259", - "dest-filename": "@babel-plugin-transform-classes-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", - "sha512": "80def61bd6dc99e9d520b8fffecbf5ccb35a3f261c3b3521a36948241321fe26a427dca00a8fe1105f5ca466fad5208c103c5b6f2068550c6bb7e6d62aee4a1b", - "dest-filename": "@babel-plugin-transform-computed-properties-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.7.tgz", - "sha512": "56a0308531c19eee710550c2bebbea25bb4b51afbea996960b4160af69aaa24065ba5640446c88bd90e8a9b3e53da288990f5d280702cdbbfeba5fffbaabbbd0", - "dest-filename": "@babel-plugin-transform-destructuring-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", - "sha512": "2f2b6d69aa364a3645e8f7f8be4d5d54abfc632a4ca689806f2816fa65397183f74b97164df0898c6f3157a08577318595f58af352232fdbe2893be96fa1bb81", - "dest-filename": "@babel-plugin-transform-dotall-regex-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", - "sha512": "d370efa5b45fbd6217c8ad3fe90891d4a31359e4fa39c43bb5b863ad7c854b4da48ee5ff9aee41be78794834961f1c9ac22b7683969684ac08f3a104ec65274f", - "dest-filename": "@babel-plugin-transform-duplicate-keys-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", - "sha512": "f1460b4a5c8b8118b142f9581f72767a45c51c314b42eb5dcbb15f140326dc23d9eaaf701c2c27532897a5009ede05559d09477399ecba2115ce2b5e44d4d710", - "dest-filename": "@babel-plugin-transform-exponentiation-operator-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", - "sha512": "fd0666f56f763eda70eec8c8f4dc7599b72c5b3df7fa5f24b8c2109c3c204011b9b377c07d0be446343b36a5e1b4d70a3a73e47480a6507c826965b4e870acaa", - "dest-filename": "@babel-plugin-transform-for-of-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", - "sha512": "494fc2ebc615c13471a968f9920b1b28835a9066a0d0a4e0abd7f6899117752b6801b3b32c7101458cc89a603ac85a3c61984955f96f5e620750eec65879b1c4", - "dest-filename": "@babel-plugin-transform-function-name-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", - "sha512": "ead1fc453a53588d2cdac57abaaddefc2f703e8e0f4eaa99a6ce2e17493343dff13cb150b62a729ef993d60fdd39f109fb4110b0786443fcf244877c2766fccd", - "dest-filename": "@babel-plugin-transform-literals-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", - "sha512": "981aee44c6e4b4a4306f1689a1fdf62d3f4a2f2d9fde01fedbb6b95d2b97a3a87b477bea96d9743e067cd02f1930ac3df017fc6eab7a044562decbce8763f333", - "dest-filename": "@babel-plugin-transform-member-expression-literals-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", - "sha512": "29a684b6004bec5298c2327fb5e1fade802613794fdf837792c873f269b854c030ed4dcfc63570c149b110592c6e0b0d51a3b7c0877d4760154184841916b6fa", - "dest-filename": "@babel-plugin-transform-modules-amd-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz", - "sha512": "a1f94a3efb0b4f6fae290a297ac26ddc0a626884b61d6fa1cc715cc1136dc831a2780782fdd207657f1bb894362765f5af118fcb87917148a39b7a9c48f8d870", - "dest-filename": "@babel-plugin-transform-modules-commonjs-7.16.8.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz", - "sha512": "0ee2b913793e4109a73aa051f5492eb01cb2e56656191c5fcd5e76f6cf673eb6b5184ee8966c5fa8ed851e86c439848f2233c14ebe29eba603723427b7c7019b", - "dest-filename": "@babel-plugin-transform-modules-systemjs-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", - "sha512": "10c87bba896c0bc3b8c61b9d17617ac1e75b4879b51c76740ba689ecaebbcdc0cd89d33355cc56746afe86d5bd9f6d64966f9b3a7f91c78081b009ed65ddeb11", - "dest-filename": "@babel-plugin-transform-modules-umd-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", - "sha512": "8f7270fa7e4fbe99a1451fa6ae0221d38a6e48034293f4ff500de6dcfd4c8c992194af74ebe0291e10c8a8140374e80bfebd54629cf818d7254d7c7266b6064b", - "dest-filename": "@babel-plugin-transform-named-capturing-groups-regex-7.16.8.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", - "sha512": "c622c3cd634c7caa063a973ab7753e7ad084db24679f748cd3d057a963c864e0692f682f56b05650a9ec271d0afc00e2e45e580b97fc00f15f5abcf6e537651a", - "dest-filename": "@babel-plugin-transform-new-target-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", - "sha512": "d782757de890556686bd1c63d968f232e5d2da3b0192007731d48de47b82d86e6746ca5ae512bd08e72cf363f0cb906e19c8dbf9f61a523f7899870e8fbac2bf", - "dest-filename": "@babel-plugin-transform-object-super-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", - "sha512": "013dccb9f43bcd9121536870380d756b10671315b42ecceee112ffb40954241b8da116a4fb07a1416f21e8a71739c823638d9f1ed0f1b30b8c84c8c512ebff6b", - "dest-filename": "@babel-plugin-transform-parameters-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", - "sha512": "cf8146afd34c19da0897546a6af0aa186f99b988df67f8640887ae1fa0e8eed5e64a6d25b35d67615489a8511439225b0da6f9c02ea5444ff0e988d572be87ab", - "dest-filename": "@babel-plugin-transform-property-literals-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.7.tgz", - "sha512": "f03d7ac9eeba7f1884f26f3dd30d01a4fa67806f68f4e541072d201f613ed8047ba8c4766694d8244a8bc40b28ae87a7308774a7fc0c5be06573499e0e0bb402", - "dest-filename": "@babel-plugin-transform-react-jsx-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz", - "sha512": "985ee33a01980a44896a027a5c2ba349083eeb10b533beffd372b6a01995256a0518d52d9d524ee161ca264ddd9cf0bc1c2723e310503f51209bc0d68773dbdd", - "dest-filename": "@babel-plugin-transform-regenerator-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", - "sha512": "290cf30e767d8564018f08b9969639bfdb219a6e88546d14f69075f33bccbb68b81fdd31a53e209aac0f62c9fcace6e269d61ed8cd209a0b2238817903fdabb6", - "dest-filename": "@babel-plugin-transform-reserved-words-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", - "sha512": "85a876f85127a11a004dd21bd3920e5dffb81b35d84eaef94d58489f53dec2285ba72acd594b7625bb9d2903844d6c3a4292def80214a49e4c54b61341b79e52", - "dest-filename": "@babel-plugin-transform-shorthand-properties-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", - "sha512": "fa98c9a6002781be772f489a039814ff530b5c921f5dc61ea4b8170777ac5517f87ea9a3f1fd9cc4cdff14a687b199acd3c84540990571c116b88a66e36f535e", - "dest-filename": "@babel-plugin-transform-spread-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", - "sha512": "3496b405dffced05793596734ee646e413c98cb61a75e499f5f3baa0e5282f8890c7ef4412ec3f78433dd92aec4f5f587368e0075bb586c8ea0ed1f4d9cdc3af", - "dest-filename": "@babel-plugin-transform-sticky-regex-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", - "sha512": "5706e40c351e7a79488e67cd7835ff574696ad01f642257226dc32995412cc8b450d3a717f2261dc455a4224b4ac837f0aa6cb1abd157069aec324dd66d748b0", - "dest-filename": "@babel-plugin-transform-template-literals-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", - "sha512": "a76ace8b108a449ce983d241e208e71b88235a459af3d6686149e5f6c9c9d5c5887131ff86fc59a9f3be5a31ba4fc0d106972d1289798f0d4ee6b03c8240a891", - "dest-filename": "@babel-plugin-transform-typeof-symbol-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz", - "sha512": "6c7750f64ed8a410ced9dd0d55f923e750e941cbf023322eb09ee611468c95b66adcab7f538ee3db88a75d91d0e4c0e26290acfa8662c275f229e744f3eabb01", - "dest-filename": "@babel-plugin-transform-typescript-7.16.8.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", - "sha512": "4c05792066a1233df267dfc77efdf94d5db1126fa46810da6500a7d92fe11bdfc26740e4b7126ff5e29f3dcef2602bce611e091b1d61f02fa37123af81a688fd", - "dest-filename": "@babel-plugin-transform-unicode-escapes-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", - "sha512": "a02e6d6182b0e7a1ceef929954b43e47f365dc7ae8f647fc886d215e86873fbb630320a9bea06248d7babc6ad99e2d59e8c820994382e80ed53fb0159b0db6e5", - "dest-filename": "@babel-plugin-transform-unicode-regex-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", - "sha512": "a9c9961bc47b656e960513d92bfff2f84dc2962d79d41db45b546fee59f6eefb8f69753ff132a6b3a8c576226d17b5034f172b6fb99977cf2d01e2bd2e3753f2", - "dest-filename": "@babel-preset-env-7.16.11.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "sha512": "039eed87a6111bba11ddcabfcadfd8f3832f1a01347891b617524b84abb21be8c5c4482b77f1c03096ad885b663a266eaf3fb40e4aef6e17822da5797f625f8c", - "dest-filename": "@babel-preset-modules-0.1.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz", - "sha512": "59b5449a05dd232bf307bec042318113260f671fbcb53b0ee745ed7e8cd0ae45bc401dab2c9a47da5831d13470e4426b07139943ec027323d542f4bcb63107a5", - "dest-filename": "@babel-preset-typescript-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.7.tgz", - "sha512": "f44f45268c2a02ccadc8e63a2c6fb52aeb9e72444bf9a416fa62af5d15e7b851b2440c9ea493e6128f6f80c7d7500e8ef6edc878476ff4c024a6915c690c2881", - "dest-filename": "@babel-runtime-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "sha512": "23c8ffc7c90752b6d84535315ebacc6df09aee3c6413bb59adedfdc77923afd86f23cd9c2b515fa8bca0a2d71637991d3c659c2dd58c1e94816afb1ee6d5b0df", - "dest-filename": "@babel-template-7.16.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.10.tgz", - "sha512": "cb3b9a617a1124118c94186c309a145bb1b552649bfde5ebfc91d833f32c38981abc989b2f00128a35bba1705dc37350e93d1b5bb4f2e4ffd56ab3acf5c1e6ab", - "dest-filename": "@babel-traverse-7.16.10.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.35.tgz", - "sha512": "cbd5d3d750a8cc70e08d67137719a14a3d77ac9557a5ae595f08e33a24de76368cd1b6b922da9d4b4daddf51213e5ec7b4e5b1b1991808250dad27eb3a2b00eb", - "dest-filename": "@babel-types-7.0.0-beta.35.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "sha512": "b263760d0739b3833b7e7b728c6b7220f6d126feb05b8ad4ffde1f99827b3ca42e6640b4a863075c96e0eac346b75d89995af893961aa6d23f5ed88b2419e622", - "dest-filename": "@babel-types-7.16.8.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@develar/schema-utils/-/schema-utils-2.6.5.tgz", - "sha512": "d1ca783ec590ffd6afa9354c0ad67e1a2ae2908037ea292f8ed1f0794e3f8fcc8bb6039b234f8950f858152720c25b5ebde181d6bb770a6f1484dd385dac838a", - "dest-filename": "@develar-schema-utils-2.6.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@electron/get/-/get-1.13.1.tgz", - "sha512": "539be45c367d0f05ed90faa5078e6d7d89e760137c3de3e9d73fd70c2ba99d2a5daf14fcfd3842bfd582c0f2dff68aa2486653907e9dc768c350fba85e98e470", - "dest-filename": "@electron-get-1.13.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@electron/universal/-/universal-1.0.5.tgz", - "sha512": "cd7f4eebe8ebd8d33201d4a4c04525ca5b62238fc404bbb62ecfd50f7a5441d8b770061e61f7509d3d80249dfc1c4e10c4b71c6d4d772d2a5c730d485a59326a", - "dest-filename": "@electron-universal-1.0.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.2.tgz", - "sha512": "f36729c89c8a468428462fb5e226c27863eed02c32a60b4101d061ab559fbda82909934aab05db2b05e595848c1bdd438661b88edf6037c78fea518eb68cee6b", - "dest-filename": "@gar-promisify-1.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "sha512": "8f7e72c343cc4cfa59b14a0e062b87cebd734d8a1a775715204d1a8c48dcac938dc71ae4a3f21118a917c77a2cd0db22e07bb7fb95660db55fab95a11bfa5602", - "dest-filename": "@jest-types-27.4.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz", - "sha512": "45304658be45590720f68ac3382729e0bbc8b4dcd43dcc8453d6f069e257d2b275210c73b9c0b8f18d3fb102e9fe0eadf7d21080094621a7ac252fa04e7eed55", - "dest-filename": "@malept-cross-spawn-promise-1.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz", - "sha512": "f503ad35f7dc385fdcd6c78c0839e37246f747d587706df8b64cbe147a4d28a096d3073fb1c60bc0cb4efa9b721947cc5b4fdbfe7e2a46200b95a14773d3a3ed", - "dest-filename": "@malept-flatpak-bundler-0.4.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@nornagon/put/-/put-0.0.8.tgz", - "sha512": "ba0bd7263c05e6576d5296bb0fde64aee349e35c8540310ac85e425b84e02899e1f96ff39a50735d778a4f2a88830305ae478f37626a381a9c174334a0eba7a3", - "dest-filename": "@nornagon-put-0.0.8.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.0.tgz", - "sha512": "5613f5a992d772b5d121a3e8a9be18039e494312cd1778cd4784f9e4874e25adfe20524a3581ed3efb57c7cb2599e31abe3dfbbc2cc27eba90335bd62ec60a2c", - "dest-filename": "@npmcli-fs-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "sha512": "d5251ffc28361b3183c9a7f5e5a47d4adf535a56fe5ef6d95d6a43c7c60ab3b30bccc1ff0427a8a6ffb2f6fcebce091fca4086b963a54aede66618f6f8541cae", - "dest-filename": "@npmcli-move-file-1.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@playwright/test/-/test-1.18.1.tgz", - "sha512": "bfa8c03361a946f7f8314bd22e4ac05e0d74d574fd98bbb65f635b0a71288fb187057c1abc39402433308781e7f288a90f107a312e854dcafba295ec20c370ac", - "dest-filename": "@playwright-test-1.18.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@sentry/browser/-/browser-6.7.1.tgz", - "sha512": "4793d8c784d3be27dc53bf745e42ba2551b06af29a5f0c9c0d4d0c680c1f73855fec12e6e4a08d242b03c92bb544f01aa7fd35ecc5587f9e29e9d5af2a246f88", - "dest-filename": "@sentry-browser-6.7.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@sentry/core/-/core-6.7.1.tgz", - "sha512": "540bfc391ffb20d9f625f88b72ea29e217c37320bb99f2fd7dd3e775012195a7239b0f2046b8178d1eeaca19c24e0cc52e41c8ed5e5b71d23303cdd344f610a4", - "dest-filename": "@sentry-core-6.7.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@sentry/electron/-/electron-2.5.4.tgz", - "sha512": "b4208af8fe7cd5399d8ec0e91c1433eea61c95dcc675493515de853f13f2d49286cde638b9ffee48b2b347cd0bcece644e911914ec22307480f328f0169e6aa0", - "dest-filename": "@sentry-electron-2.5.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@sentry/hub/-/hub-6.7.1.tgz", - "sha512": "7950935afbdca7ac5ad00e4618d1cc4045ac96628f962b04e6b1a6b15fe48ef494bf7cd2ac8d1e2037dbe758a47670a20631e92b634158ff15cbc71938425e82", - "dest-filename": "@sentry-hub-6.7.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.7.1.tgz", - "sha512": "1c30cf1274110fa842d2a68776aa8a0d2b5c744d4a864161d110ad24d3020e7d33a5abfc0e3f40b5e17bd31ea42d296588027f245c22e80990acbcfe1713dec7", - "dest-filename": "@sentry-minimal-6.7.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@sentry/node/-/node-6.7.1.tgz", - "sha512": "aed668d4ef113afe25670ba58d0cf7885656f3da174a5817086d95aa4c50c91b293d6bbcf5a6d13a9c4b8d8cec5b043c7639eeaf55e316fe7590e2c35134ba43", - "dest-filename": "@sentry-node-6.7.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@sentry/tracing/-/tracing-6.7.1.tgz", - "sha512": "c324b79d6365e66cda0b5a99d80229d618d79df3bd1044633082630a286cd8b581cf5af779fc6b1f1247b3cc1794d5afad3dca2e1abfeefbc5e42754f36b8f79", - "dest-filename": "@sentry-tracing-6.7.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@sentry/types/-/types-6.7.1.tgz", - "sha512": "f403bb1caa22a7630130d40911debe00ab638f6faaf597b8a28594744bdd3954ade5dae0ec11a92b6db5fe9f4910ec89019c043c45dd70c77754020c88e6f830", - "dest-filename": "@sentry-types-6.7.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@sentry/utils/-/utils-6.7.1.tgz", - "sha512": "4eada8b5d6d694702472d0fe1164d82a4131e812f5427dd9fe29a43b4ebf3efce95af561256439a87033cf95e7c30a8d1f2574dca573601eb39ead4179af47b8", - "dest-filename": "@sentry-utils-6.7.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "sha512": "f4d113f75d0335a20f9e06272cb3de83e3a0ceab22f6e3389926e8539cbaa7c4b90f3313544b0966b6b08be0680cd51505ad83849a9061416f3037e0534eb62d", - "dest-filename": "@sindresorhus-is-0.14.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.4.0.tgz", - "sha512": "429a4f33ff25dcc6b0be1e2b9fd08d118214f5bc695d409131a5fdc94a6f064d6730abac2caa5f5c60c4284c4a68f84bcdc9f79738a5ee947aae7275d4781e45", - "dest-filename": "@sindresorhus-is-4.4.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "sha512": "5c80765dbcc74cdea27888df20c57d86555c7cf536eacdaf69f61641c6475971cec62691658103284c1d975dbd672839d3e7e8615da30a0b6ba9203aa8db8d48", - "dest-filename": "@szmarczak-http-timer-1.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "sha512": "e0101f7f29183a03bee67cc1598c04dd6f74b0180b26850f45659c2fcc25ca233c201f22a49cf750c27d29741dd512905e92a9f13bad9fcd0766d5acbb6bbbeb", - "dest-filename": "@szmarczak-http-timer-4.0.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", - "sha512": "3af8c5fb3e752f7a2fd0ec8053476ecec62ebced353c7ef1e2de83271fa0b9a8604e704792125d1bbb2841e4d214b58ddde7e71f289b67867c97612e5b024ddc", - "dest-filename": "@tokenizer-token-0.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "sha512": "45bcc9be5373991ab97373b4f548a97ae5e7a38b40d4513a8a43a3c592b4b6ec55bf7e35da5eb8979b755b9a63e3eac9abdbe9926fe4c22474eda6579ec28fc7", - "dest-filename": "@tootallnate-once-1.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "sha512": "00b6289deea99ba426c19a0081ec8d92c71c4fd438016650e8fbdfc11dfb193eabe855943e0baaeac52634648c5765abefad68428071c0619ae83479a350c2f6", - "dest-filename": "@types-body-parser-1.19.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", - "sha512": "077c55a3e76528cea79ca4dc9a6e59b58fce2fc6ce00e7763a579ef4cd737edeb9a31e743b38c41d6f75b03894f63e9cbd6f048e0d7f4247f8c5dda4ba002950", - "dest-filename": "@types-cacheable-request-6.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "sha512": "71d798cafe0a5a8120a412124f15afa98b15cb8e380cea9e8621777ccde77b5d00989eb6452c8d9149f13095c7416450417d9e47de26e72d486720f006357d15", - "dest-filename": "@types-connect-3.4.35.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", - "sha512": "f40a27533c938d75e110e6b40e7aa9cd98ba54796a28cb3081af445e3a579e7ab1c0bb5dbcf3ed94ef1ebeb2390fd4ba6ac151090eaffb0a6250a6f0faf2aaca", - "dest-filename": "@types-debug-4.1.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@types/discord-rpc/-/discord-rpc-4.0.0.tgz", - "sha512": "6b91e228e701901e3783f94de9f058c3c17219ce947bd098b9cc711f15e510b5e96f50b109ad8d036a462b651bf3ca62e2e639f8741e4856d8b47e8326d57743", - "dest-filename": "@types-discord-rpc-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", - "sha512": "3c1de5772adc9c089c4f7e5358fb3921cc0a0fc4b7df71cc69ad9556fe3ec1dbde6c99235ae5bfc444a807c23045ca20f0761561a99bd60fd1df542fe41c74de", - "dest-filename": "@types-eslint-scope-3.7.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.1.tgz", - "sha512": "184e38f83344cb1c61d8a73aae8fd59088fef666b4a4ed1bc2ff7eb874b206b8a460e1ebf3361c74fbe704ea756b0f2cf828d1bee4b1ec2c96a91acd150e7d98", - "dest-filename": "@types-eslint-8.4.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", - "sha512": "0ba379b36645b6e6518f9e24dbfcf24613438c9c3071588033735b9bcce30696ea01d674d26af4085c6f48a78ef18fded3759514ba5031d1d855f51de9207e1f", - "dest-filename": "@types-estree-0.0.50.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", - "sha512": "3f5049004016dc4d8325496482ae2d38bdd1c8cba7a165ea6d20b2816a396485938d480dd589da5d65b855697fa1cf2fb3f5e86226c418128fd2e6721780078a", - "dest-filename": "@types-express-serve-static-core-4.17.28.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "sha512": "e9b4994cf6932000b19f8f25e74491f9ac60aea9baa97148c6b74029a1ba3da264dfecee52bdf98419604fbbce98972e9be38468804bb4757faa5a0400521378", - "dest-filename": "@types-express-4.17.13.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", - "sha512": "9c49f007efb5bb99550ccd94238735fb947e15868a7da0334b83a87287229a3566de7430dd3bb31f950db2872b71305b8677ab6e5c878f8038f6a5db22265da4", - "dest-filename": "@types-fs-extra-9.0.13.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "sha512": "654c5bcca97421f2482d34bab7b8a9e5f41033f2774c962e6c39b79cc6e0b9b34d612eb6797794a682d40bcffb7c93621581d3ac63d09fb86ca435332075f750", - "dest-filename": "@types-glob-7.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz", - "sha512": "87895332030972d2726c3a7c090af14d48a262679d8a11d69239c5ffc3f1b1ebb64ba3657dccbc9306e843cc9e8e1e39eab3f6c96a04566d6c4bf155b1f338f3", - "dest-filename": "@types-html-minifier-terser-5.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "sha512": "499b3b7a46cff02374b71546db15511fa1202a6126df504ec40d3bbe415a113cd9cf5c61f9c6edf01708d2c969ca6bf0871e5d9459d01b6ad394f5509fe8913d", - "dest-filename": "@types-http-cache-semantics-4.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "sha512": "cff413d573782b8298bac952db793adb20c80cbc0b164cf13ae329943b4e6f3d3ecbb56a24268eda8f923f01c2bcb15987bc5acefbe8a2bdad03f84fcfd79eee", - "dest-filename": "@types-istanbul-lib-coverage-2.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "sha512": "a651a05c03df54a16861f6bd369603024b1e1be83a26bdbde11a9ea9ca838b149b537e0c6552518bf3feed8f060e9ce41302da19964ea4a20499e55936d2acae", - "dest-filename": "@types-istanbul-lib-report-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "sha512": "737980644b8ad25bc1a7cb66b8bef85d12a7d7ecb675cc0e5291fbc785ab17a824d462208a5b8346031842dc36385701bc025696de80494ded4aac69d14bb403", - "dest-filename": "@types-istanbul-reports-3.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "sha512": "a9c517b9e9ad12ef84e7065224737151778266101f5ca438d43f9db97f9560f75eef1c84559722fbfa172892f5ded9d1b3d951da9af87e8779f464fafd7d7fc9", - "dest-filename": "@types-json-schema-7.0.9.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.3.tgz", - "sha512": "157089832c8dde2bd5811a2697887de06fe9de463ebbf07ce8b6be429b5ca89696b415ad99ce93b6435f4b8d27f5b22fc8bb5e1e1ef35ceb606e86ce44a3db0e", - "dest-filename": "@types-keyv-3.1.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "sha512": "6004f1571811a8d1fa9c7108b2f83a93606873524723d65b1f9896145bff31391c873ddbd627860dae53d1af51ce735d2342a155b75b59237e2965ab4194714f", - "dest-filename": "@types-mime-1.3.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "sha512": "2a5cfde3d874d86cf6b9908c1b00d44834b56019537430e06d61e2fbcd65dbdb5000b52dbf3e2b0188b9ba85611392da828aba0dea805256eb1ef5bf9970e075", - "dest-filename": "@types-minimatch-3.0.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", - "sha512": "8a25202b357d02e684919aa438b0c8be54222fa96db9977db46716de0c299d7f096ee8ae8459441a69855c45e4379d02beaeceb3cf08636bf47640ea5d859580", - "dest-filename": "@types-ms-0.7.31.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@types/node/-/node-14.18.10.tgz", - "sha512": "ea28a127f3e9e5fb0527f6840c6caf4f8a471a60a9abb4e843fc9fe1b97949b540bf0a6ca5827ebf78ceee7f14ca38505474f2f8a36cccea330ddbfe3bab28bd", - "dest-filename": "@types-node-14.18.10.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@types/node/-/node-17.0.14.tgz", - "sha512": "49b8cb984464b0a386cd6ccf36e5bb7c933b7e4dd85d54c5899581fc7b3df60c2193efdd9eb4113c14233d6f5a3be7e2d6d01f7e2f4faf016fb2638a9834f29e", - "dest-filename": "@types-node-17.0.14.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@types/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz", - "sha512": "8347d02a5dc856751e3d5f2d2e48814ddbb1015499b17b6ce38e13d9a31f8ce106c5ded7a1e488b35ebf02645ed8d95c24ba9bbec381497a2fedd292a38c2280", - "dest-filename": "@types-qrcode-terminal-0.12.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "sha512": "1466b517ad854f4f6a72bb9e040eaa613ac93d50f36a1f5afb8f77fa8d8f097b1eb161c89f6ec6f7c4ec48cb3758f35b648123e3e5497fab1a485a6f0fedd9b3", - "dest-filename": "@types-qs-6.9.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "sha512": "10486c2ec0fa52c0ccd7216102fcb40a3afa5709a9316a850426fdc34ef056e805ef0f677da8f12ee5669e04c8a604bab2f0a79ba55ac3e3198680c22a739fb3", - "dest-filename": "@types-range-parser-1.2.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", - "sha512": "f396360638ae7c5cda30896f243bd34c1f05c65db17cba381e0987cd5073d3cc38c0378f0938d8c3ae8f76ba253b4933962df26a6fd80a046e7f2a350dd4154c", - "dest-filename": "@types-responselike-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@types/semver/-/semver-7.3.9.tgz", - "sha512": "2ff4cca725117c191ffa8ff9dba65bea477fb5c8543f78810c43e3aa36fe536300261551c71ae6af67f0a5ed3c13b42c57b60b729ab4b54690f4ef71f7b648c5", - "dest-filename": "@types-semver-7.3.9.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", - "sha512": "9c2907188e30ed980074d92b12ed1bbfee31355fd70ea5be0f27649de6cc390c24a431b1f06f874e58fb47b00123c8bc9cac55c34c2d28f8b50fe94f3a487861", - "dest-filename": "@types-serve-static-1.13.10.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", - "sha512": "2b92beca697c2d3a3d6d6248feb1027c83eb1a0c5da5e35b8fe779de5c0de108d6d4c0b09648549acfa0b5dce2813794c81af4f7ebbc070388637317bc775cb0", - "dest-filename": "@types-source-list-map-0.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "sha512": "1e5db5f7f053e5f2c06b3e8d0e44ae8736accb8f5dc104bf0d276ee0c76080507ccdc5efeef7e5048df1a7b1449a499d0e40542366cf50d78cb6da7692761dc7", - "dest-filename": "@types-stack-utils-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.8.tgz", - "sha512": "8a98b1b95ae1d8e74d99abafb53e75a3777ccf5da9e8bb455bd8a7ed4efd75eaff9307a38dd35c8500b950c9f9bbf2b136833b5471ceb3f97c292f2e1f184e0d", - "dest-filename": "@types-tapable-1.0.8.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.13.1.tgz", - "sha512": "3b732644093a66e00a6bd087820d0faf4fa550eaa830ba5cf404b847c6a7a366aebec83b204f2cc85dd787f34faf6e935a497161caa810415dccb2ecd5f57d3d", - "dest-filename": "@types-uglify-js-3.13.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.16.3.tgz", - "sha512": "f60b4e3cf91fc8da04a82420c78a892a4b8d9bfc7447684a47b7dd97bcef4c9c879c88acb84fcb7ef5ceb1858bd28deaababa206729934d3738b7974cbf5fec7", - "dest-filename": "@types-webpack-env-1.16.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-3.2.0.tgz", - "sha512": "16ded81f794455143a96cf24e057f5a01e2337aa32fd7994ead40848a7617e1fb5991faf899169852e962f422bb433b3bde7e6260e5ad2ced9428457c2a4c416", - "dest-filename": "@types-webpack-sources-3.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.32.tgz", - "sha512": "71bfb48a88a5ffba33e7fffbb59512c1bad200dfcd587ad0ca5cf9716f06d1d593705fe0fbf75274c94a559b29058b8c00dd7e5a7c07ae4c6246b2dcc1dd077a", - "dest-filename": "@types-webpack-4.41.32.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@types/ws/-/ws-8.2.2.tgz", - "sha512": "34e9f978872058b3a8eaa5bc01cb8b67b1bc3f2717bb4c53c71912e90d7c55617180f5123b0574a418f66bfe2f88d655bb6e62ed1201ec6b6d7640085145ce3a", - "dest-filename": "@types-ws-8.2.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", - "sha512": "eed1489a080d78d05532c9f4bcbae99f51f5b8fad405d9c044f4e96688ad637ed9add2511337fb235ead32b94ade17a7df8f60af535887c0a66506bb0931ba03", - "dest-filename": "@types-yargs-parser-20.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "sha512": "4fc61cf70b7fe4b6c9c8268b8873d17896b4900a5c22027b067ef7e468c8b547e1d3c675a49beef1066a6fdb3e98cbca57a59441157b2b6478e986e33174d327", - "dest-filename": "@types-yargs-16.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.8.tgz", - "sha512": "c03794c225267a6f45ceccb2b04c11ba468474335cc1b44ebd0f5019129a2c8eadf8896d3736e7e3f8b86ac981d746aebd91900b3490eadd0649ccc44e19545f", - "dest-filename": "@types-yargs-17.0.8.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz", - "sha512": "f2e00b6392d3bd2b87825a03554bd63f7a486ae20b9bef3fd290cca24b83608a0db0e912c1de408870534842632930dc66be73f14a60396664c411788897eda0", - "dest-filename": "@types-yauzl-2.9.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "sha512": "ba4061d78a852e3c5340d4d7a1c77292c37941d336f12d42c47b76addb241722fec4557b56b7a6b812d56e609e3e3f9445a957044371ffd2e6ee59e18a1b424b", - "dest-filename": "@webassemblyjs-ast-1.11.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "sha512": "88645fc9ce41abe36736e5fc6f987006b463cdfd2872b24f23a1961687411739859f2beb43cdd21ca8668a5094ffc26febb8b818964132113396dc7370d6a0b5", - "dest-filename": "@webassemblyjs-floating-point-hex-parser-1.11.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "sha512": "465852f020425df45447f730a36868f5b9217925c6d3e370a285dc7373c020b00b7f640b745ca3eca1ac2916d573de61667867111a27e245bf0f7499a69e9372", - "dest-filename": "@webassemblyjs-helper-api-error-1.11.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "sha512": "8308a417ae5a0cd79e5daf09c576b604093e4448d2ca1acd0bd670753d1ff2373875041e0d0ec6e26d1fd9008b3c988c4d33bac1f0e64668ffa56d0fb14bc870", - "dest-filename": "@webassemblyjs-helper-buffer-1.11.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "sha512": "bc391bc6207ccdf9cf74d2bd45a8dc7b2e42d30f9026e804825374a1ffa498ef25ee50dbefb02794a61017b69aad9b82aeffa5d14bea2feebc8120ebde4f4b3d", - "dest-filename": "@webassemblyjs-helper-numbers-1.11.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "sha512": "3efa68386889c17793ad27ffa9fb9d261c25bc34311607a56ccaadab9d965a25c2e97820d484447678263cdddbb384683bcdcf9cbfe716bc6e7178f5f815fad9", - "dest-filename": "@webassemblyjs-helper-wasm-bytecode-1.11.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "sha512": "d743fd368dbdad85f58fb1771153d7dc9bc63d03da7be0289ae4933e217d78141e0a11c8ea2aa3308c11f4998e257c299e7fe85460e4ec8e4896c92e33053fa6", - "dest-filename": "@webassemblyjs-helper-wasm-section-1.11.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "sha512": "849f3b4083ed00c29b16ae821939196098af1306436d052061ddea29269d4cd3a1558ee9fa07cfe92af494b4554da1b5263163fabdd8721a2a458c4d1f733419", - "dest-filename": "@webassemblyjs-ieee754-1.11.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "sha512": "049d8fd21359d2ef938756195c9a735ba9a2c2a41419c2074f51bfb1fef680b543f4367901d613a8f35b1d987a2b53395662af157c064966400f3faa056c5e47", - "dest-filename": "@webassemblyjs-leb128-1.11.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "sha512": "f64a9cc4011d3218b04241e990d8a8ad9ceaa46ae8750436206ac71f10b2f8ece7834a1fc8c034953aa22e456cd6ecd345e8d7fbf3b410e4fb2b1a953ee5e8b1", - "dest-filename": "@webassemblyjs-utf8-1.11.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "sha512": "83e46cba9502d5a4c77d1f020e09ec551559149a9d9051e9b0731f26e590cd6537b6f9cb0b4ed4a872027cffb85f22f6b67af56a6be5d52769d3a4e760299590", - "dest-filename": "@webassemblyjs-wasm-edit-1.11.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "sha512": "17b42a297c30365326b2e963ebe3bbaf89a6b4094259f3bfd077603b14a49597d0703bb44e92e20f5991b7fcc5db9064e7d1488c4b86008ca7e5e8b8c8c7cb84", - "dest-filename": "@webassemblyjs-wasm-gen-1.11.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "sha512": "56a9e436a9d9954e4407ae29a7597b85d9b7866430ed582a6b4285fca08d3bdb08a48e8593a6eb0c4897fa208e62bbccb81583c2cd0d9133b16046fce574071f", - "dest-filename": "@webassemblyjs-wasm-opt-1.11.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "sha512": "aeb06e8f0f9d26edf681807bfcbba9e9485d90fc7d4bd4a7a1b6734552fb55c047f41b7d6c204b12e5ff61738eb41b0e678350ad1ca42a17df4561ef8a042f38", - "dest-filename": "@webassemblyjs-wasm-parser-1.11.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "sha512": "2106e851633878acd65be37f8e28f6b116ad28c87df5011e968dc46f6ab4a9792f3d1212023f10c6d9b0e62b70a8af934e406e508138e40c583d3a2a3ed2f982", - "dest-filename": "@webassemblyjs-wast-printer-1.11.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "sha512": "0d7f272a0a9c1b0b1cd1e252a98b799703f80c7e459479e6b96581472ed7d0d71a191d19b6ec9e11280cc1361512dc66b0d198faa8ade10613fcc2184ce4cf78", - "dest-filename": "@xtuc-ieee754-1.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "sha512": "36e1ea058d4f07f0fcc54eacfed84180e02200fec73980d0df6f8115920b27c8af9149001d09d67e7e9684befd3b08f5aa6527a0dfd83e192d748a2e722a6401", - "dest-filename": "@xtuc-long-4.2.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "sha512": "9e77bdfc8890fe1cc8858ea97439db06dcfb0e33d32ab634d0fff3bcf4a6e69385925eb1b86ac69d79ff56d4cd35f36d01f67dff546d7a192ccd4f6a7138a2d1", - "dest-filename": "abbrev-1.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/abstract-socket/-/abstract-socket-2.1.1.tgz", - "sha512": "619262cecbd2d5a06e6b919dd35c287b8ceec9804681231ea83381ebf0a1c1d4c8f74e0a3fa406b49b305e5e2172a5b16f3f3a85005efbe1d6574845d5a194b4", - "dest-filename": "abstract-socket-2.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "sha512": "225f3442cd968d89492013733642ba298aa554c4db64b5e01f1da84f4a54fdf8d11f2129f8f11f10f634477582c001953ad6aec61d613b136021fe5bbfb750a4", - "dest-filename": "accepts-1.3.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "sha512": "9bb559de3c33e1e2ba03856db7c130d7f98d6cfdb8bb41617727c0edf4af9c947a2cc75f3989e6b88aeb24082b61f609d7417fa2d6874edaedaed98774c37313", - "dest-filename": "acorn-import-assertions-1.8.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "sha512": "57f2c6af500fcbe3d723029e6c45ab9193f0a1ea05fb0d6388e0549aec6e89421a387b686fc41cf414eb628ed5b88e5f47cb6ab32f9bb80d96168a11e6896abd", - "dest-filename": "acorn-8.7.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "sha512": "45937035c945efe312ffc6c383bd1a9a0df6772799199c620ee42667128b025423af78c6c8bc7ee0a924e7c50eec3d90760148402a2fb92b991129dee911ba5d", - "dest-filename": "agent-base-6.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.0.tgz", - "sha512": "d0f840a79f2364dc35dd426fecd55d4c66f465c8211d46f70eb674e3a26288963f04e6934e96f0747ab654e6cf08157c33618f87bb20ac9dc043c132e3af0b27", - "dest-filename": "agentkeepalive-4.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "sha512": "e08ed3774d6ab96fd1a6871f35ac85745564d6a4aea21d04ec9adb449d7a9c7d351e128543cf0836af5277e9ddef6cea4724a5afd0660c0f3194427abc932b60", - "dest-filename": "aggregate-error-3.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "sha512": "0c245f3bfe2743ef3da7f44ae378bc133778d44a9d18853895dee7185f0e435e2873fc1ee6b127b4b0946bbfa3ae7de79fcdc1a2c7f0640d306f8a689f6a3c89", - "dest-filename": "ajv-errors-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "sha512": "5b1d0ac79da1c44ec2d7c8643048206251227ea599b58691828b89a2bf9631d3e743210ad77be0116c9536ea7b4a879ea0b32caf891fe61e9d396d75235e4c50", - "dest-filename": "ajv-formats-2.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "sha512": "e69e964cdd03753195424e958dc123bb5f4881a1ee75a95c7da6c3ef284319e03a6dc42798bf82a6f78b26aff786f7f07756a87fa2f7f3a3ae824c7a45fc8c21", - "dest-filename": "ajv-keywords-3.5.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "sha512": "8f77d52e0bd3a39dbb6a7c98c893864d825b1bebe79d062f1349b99a691cd532be9f1029a6408b3082f4699e1d6e55423681928619be933138654ca4068320e2", - "dest-filename": "ajv-6.12.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", - "sha512": "a8e289c8d8ff87e396c7bb390de3cbe99bb529e33d8cf661c01aacfbb0f33fa6c63afab354249fd31b9e62656e682fe843f56d4b6ccb30b1dd4056e491af970d", - "dest-filename": "ajv-8.9.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "sha512": "20e7f0c0117989ccce8e9fd6798e18c728ea005310a19b9f750583775f52104c5b54b357aafa73489fcced96b8fec08f990d3e191aaea00edb19c20d7317b0eb", - "dest-filename": "ansi-align-3.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "sha512": "84751719a81e7e3376891ac80fadf172422fa2d3973a88e140a5883d467898d519f672d95beec530da04d653a412135662cc7fef2b0622e2580a230003d167ac", - "dest-filename": "ansi-colors-3.2.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "sha512": "d403c7032af7f8f09a9b0370ddb5c23e9e0714b38d66dff2207d2c669d3fe3af4a58d4c4cbea8de634371955fa0cc675517022df8c95c2d4de686fc7a41baecf", - "dest-filename": "ansi-html-community-0.0.8.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "sha1": "c3b33ab5ee360d86e0e628f0468ae7ef27d654df", - "dest-filename": "ansi-regex-2.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "sha512": "d5aa5e3df5ccd54392ab0d28f48885028bd5cfd3394b50e0fb84eb0f07cc7b043aa7fae632e79beed5998d0d6bc782e8cb502b060828a86a5faaa748e2ba2776", - "dest-filename": "ansi-regex-4.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "sha512": "aae2505e54d25062f62c7f52517a3c570b18e2ca1a9e1828e8b3529bce04d4b05c13cb373b4c29762473c91f73fd9649325316bf7eea38e6fda5d26531410a15", - "dest-filename": "ansi-regex-5.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "sha512": "553d1923a91945d4e1f18c89c3748c6d89bfbbe36a7ec03112958ed0f7fdb2af3f7bde16c713a93cac7d151d459720ad3950cd390fbc9ed96a17189173eaf9a8", - "dest-filename": "ansi-styles-3.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "sha512": "cdb07dac22404f5adb8e25436f686a2851cd60bc60b64f0d511c59dc86700f717a36dc5b5d94029e74a2d4b931f880e885d3e5169db6db05402c885e64941212", - "dest-filename": "ansi-styles-4.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "sha512": "0b1c29b7649f4f34ed5dc7ce97318479ef0ef9cf8c994806acd8817179ee5b1b852477ba6b91f3eeac21c1ee4e81a498234209be42ea597d40486f9c24e90488", - "dest-filename": "ansi-styles-5.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "sha512": "e6d78eb105800571c70453fdcb7b244b93f777f59f597a6fdc5529cbe2e8accacd61a4fda48e282cc417ee3cd0d8a9253691a9587cdd0974c34f66375c695907", - "dest-filename": "anymatch-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "sha512": "3f8dde3df38022ea6482e1d4c9cadce2a27d933f198ae3948a36844f05fb4c7b7463f18d2bbbf469af2b63cd7ac568d9eeb25d0395dd31ca5515328cabe46f5a", - "dest-filename": "anymatch-3.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.7.1.tgz", - "sha512": "aa5f77bc452ae96b2cb465c3f9204b488430e9236785b0c4334b30ce0ba0cad3312e9deb4f6e0083f8dc0bcd191f188f45375ec359e2b91ecfdff142ac3a888f", - "dest-filename": "app-builder-bin-3.7.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.14.5.tgz", - "sha512": "93757028fe24a6c9d4697a14926d6ce336921cf1c83059cde243cc53dc9768a984d4b7c71ea05a11a8796d7793017e55fc10b8d7015d83c085e6f3a3be0cbc46", - "dest-filename": "app-builder-lib-22.14.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "sha512": "63d27a6635eda1887c4675d508c394fedb439a4d5a063ba7abdbced2d6b9c7ce560d08907d417db083c121375b8a2215701a34dc78b78ccc62801b6c75d95747", - "dest-filename": "aproba-1.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "sha512": "9587b81b1ed04fe30a19b0ec03e67e85efd6b5e7f4062c033a52bf5e406b75fb21f49fe33cf5db5f4b44f71f5c976ed39aee608374146d4ad061aff2f8a3873d", - "dest-filename": "aproba-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", - "sha512": "0a2fea10d9b01e7b18a3dc4a21c5093792de0ca749e91d59d63f55fc9e70caaf2787f9983c4a482896c1657b598c6d381e22bbcd5fe9e95b3df79d8cacc79423", - "dest-filename": "are-we-there-yet-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "sha512": "a39468cbab4d1b848bfc53a408037a4738e26a4652db944b605adc32db49a9b75df015ab9c0f9f1b3e7b88de4f6f4ea9bc11af979810d01e3c74996c957be84e", - "dest-filename": "argparse-1.0.10.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "sha512": "f3ef56a9e6db173a57f4e47e59ae8edbd6ac22881e44ccdc1ad00835da4c1c7c80835d1fd3969215505b704a867ff3d7c35123019faadbf6c4060dc3beeacadd", - "dest-filename": "argparse-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "sha1": "d6461074febfec71e7e15235761a329a5dc7c520", - "dest-filename": "arr-diff-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "sha512": "2f784a57947fa79a3cd51eced362069f0a439a4a7a13df365e1b5bbb049edcee2a3ad30c32da1d89c0120350a7cb653e6825dc3699a5fa6e1d3ecbec2778dab6", - "dest-filename": "arr-flatten-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "sha1": "e39b09aea9def866a8f206e288af63919bae39c4", - "dest-filename": "arr-union-3.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "sha1": "9a5f699051b1e7073328f2a008968b64ea2955d2", - "dest-filename": "array-flatten-1.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "sha512": "84d7f370e57c5b835db9a96da8114fc953bee780d226e64663da93e2946ba01e92f5ede28a2768d884880b987d476b0f27c1f71470888849ecbf594f5cedcab5", - "dest-filename": "array-flatten-2.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "sha1": "9a34410e4f4e3da23dea375be5be70f24778ec39", - "dest-filename": "array-union-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "sha1": "af6ac877a25cc7f74e058894753858dfdb24fdb6", - "dest-filename": "array-uniq-1.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "sha1": "a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428", - "dest-filename": "array-unique-0.3.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/asar/-/asar-3.1.0.tgz", - "sha512": "bf2c4fc4fe5aadc02a37817f79b1ddfc78709c0899b7086096f76673b051d9fd32c1b54d4cea527b284b0db197b44ff2e7c86fd680bbe5368d217bad9ec399b1", - "dest-filename": "asar-3.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "sha1": "59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367", - "dest-filename": "assign-symbols-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "sha512": "cff5a143914fc922ddbd1101c88daf6624d6c029c5d26a0c27584af584300d31ca87a23bfee49c90c7ada1119be540593c2d73d23970fa7fd70a08de1fbcb501", - "dest-filename": "async-each-1.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz", - "sha512": "356d9c5fc9b543b28f03b6b933650b41e676c11e6a2393c06f0e4bd1438cc5d8a8564f4f319d21d539b264490f62b0af6230e51480aeb0ebb576510a00079707", - "dest-filename": "async-exit-hook-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "sha512": "72c3a558601c44525a23a9be17658a76730aaf81e1761155064d07fd06c914c0abfae3b6930a21c1740fc70ffd382c69d39af9821541152ca2a22c71de07e435", - "dest-filename": "async-limiter-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "sha1": "aea74d5e61c1f899613bf64bda66d4c78f2fd17d", - "dest-filename": "async-0.9.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "sha512": "cdf96f96cd750c2cbe7505b34d6d9dcee8a5bfc6795ffa637e664e59b6ba4cd2150e6fb650368999748e5e56ac1ca7cd06cf28a37334693e747c31167ca6635e", - "dest-filename": "async-2.6.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "sha1": "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79", - "dest-filename": "asynckit-0.4.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "sha512": "faafedec492fd440d8da5e8675ae8b2e25f5e2b53d4d5db459ade87de426c0f1596ce328f435eb2db3a315a69c9645ca5a27486a8a7000e6d00eac16b46523aa", - "dest-filename": "at-least-node-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "sha512": "5a6eae92868e1898bfef7a7f725d86bcb8d323924cd64fced788ac0fbdd830bf12b6b1ffeff9511609a0f272026600f76d966f8f0086c6d30e0f7c16340bbc72", - "dest-filename": "atob-2.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/atomically/-/atomically-1.7.0.tgz", - "sha512": "5dccfd974cfbcbdc90f6b7436b1966688e2e2477ff4fc83d84e13325cb04a97d928c28f8276d2e2bbfa57640c731ba490caefac05ef110883173fbd296c7f0e7", - "dest-filename": "atomically-1.7.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/author-regex/-/author-regex-1.0.0.tgz", - "sha1": "d08885be6b9bbf9439fe087c76287245f0a81450", - "dest-filename": "author-regex-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.3.tgz", - "sha512": "9f865eb5af0d0b7400b2eca28b3bb41a4991710e9c96457d58552751fd625cffff21e48a6d68e87d6dd41f2655c25381e32d37f5840a79f6b0c939fae19c1bbb", - "dest-filename": "babel-loader-8.2.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/babel-plugin-component/-/babel-plugin-component-1.1.1.tgz", - "sha512": "594c3cf3b9097f6187f34360fd931cb4a679d7589a98736a3e177db8aa35e32ce2b2f57b5add4472422b6fca2afee0b3dc1dcfa405bb5df97b0244cb0d84fa6a", - "dest-filename": "babel-plugin-component-1.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "sha512": "8d9548facf5983722a03f91d8b48ba5030b26d423769204b9e096161b4928ca955ef217517fe4b5aff0c6a4426bd8a676c90d2e9f7012f62b31d2c4d08cb5649", - "dest-filename": "babel-plugin-dynamic-import-node-2.3.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-4.1.0.tgz", - "sha512": "3255f5d140e1791af795bdcfd1671a21db42491971750b01d6c06a2fb5b4ada174ef46c69751d042ae4add3daf7f65c06227bec30fb900a0bf5ab92344eda49c", - "dest-filename": "babel-plugin-module-resolver-4.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", - "sha512": "bfbfd3e8441c35f54b7dc3765fc2ee95bec38e9ae27b22d624aff33961f90d461c0207b1f6c3f7876e50f832ec5fd4e5a177b7cb53bc976ab626ff6af14541f7", - "dest-filename": "babel-plugin-polyfill-corejs2-0.3.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.1.tgz", - "sha512": "4e286a11ee2c41c6ff41c3c9bf17bde3ff5166e2d0b85d7e4e8e16a90711bdcfb727780b08f20f8032b318b1bace640b7c7de79f6e61791b833644b6291e08f0", - "dest-filename": "babel-plugin-polyfill-corejs3-0.5.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", - "sha512": "636074eadbe01d8b75c74cb3d7b8c690679e32be4578a52ef80489f8dea7079950f036a97e0e368b4395adff0f346277cca2f8036dec9cc8b5211c2baaa343ec", - "dest-filename": "babel-plugin-polyfill-regenerator-0.3.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "sha512": "de849e50ed13315ebb84dd4099b5ec2b8c9aa94eed8e21e56f144364ea47d0a5bdf82797e1b440697d009f1b74b71d8cae94695b041a3f02252121098585393f", - "dest-filename": "balanced-match-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "sha512": "e53e8fe313e0a69d180c5bd25b0119e0da04dda3384014170f39956eb6829058fccc733e99b6bc4b2a81e436d95b247b9981e8e98ec1750a373280389b44de42", - "dest-filename": "base-0.11.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "sha512": "00aa5a6251e7f2de1255b3870b2f9be7e28a82f478bebb03f2f6efadb890269b3b7ca0d3923903af2ea38b4ad42630b49336cd78f2f0cf1abc8b2a68e35a9e58", - "dest-filename": "base64-js-1.5.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "sha1": "dc34314f4e679318093fc760272525f94bf25c16", - "dest-filename": "batch-0.6.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "sha512": "bf22f63b2989c666ab3bc83132bd2684286c3bd406c21ca77eebb8f8c1d3016e9ccdfabd86e98207bacaa548c377d6148833d4e26ce9caea454af382940c1b99", - "dest-filename": "big.js-5.2.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "sha512": "527ecc2040dd502e603697060d5f7ba29d58c24ef8f0ca477054c7a18b3aaa78f56778fb239dd51b79f06612b3a016666dd44d9dbe9645d165c25eed483b991b", - "dest-filename": "binary-extensions-1.13.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "sha512": "a76abfb7f9a1bee3a3fd478b955eb9eba183fe0ba8c25af4847c42948d16f66ecc59890bd45d212e8fb401ec6cf4748f0ad4754974344c3dcc30aad765a8db89", - "dest-filename": "bindings-1.5.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.9.tgz", - "sha512": "ec1d51b71f368639d20f83c62c08d559e607ded1c07155260a187ce5ade596d2909ba16b7ac5e1f44ad0a3aa00bfa0aac6db5ccc2dff90483c498e4d96e3ee53", - "dest-filename": "bluebird-lst-1.0.9.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "sha512": "5e9363e860d0cdd7d6fabd969e7ef189201ded33378f39311970464ed58ab925efd71515f9acf1026f2375664dd3a413424fb63765c1f6344392f6e6426711b6", - "dest-filename": "bluebird-3.7.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz", - "sha512": "f258df422e5e064f0425f10232b82a34658f118e6358ffb5233933906745144c05419672699db552a75a1e4b6088c947d312c7a8816d13fbb639813974eb5588", - "dest-filename": "body-parser-1.19.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "sha1": "8e890a183d8ee9a2393b3844c691a42bcf7bc9f5", - "dest-filename": "bonjour-3.5.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "sha1": "68dff5fbe60c51eb37725ea9e3ed310dcc1e776e", - "dest-filename": "boolbase-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/boolean/-/boolean-3.1.4.tgz", - "sha512": "de1c74930537bb31ba45e437a6768540f4a4b69070e911cddff8af0ca12e53c8355d27da7e8c32bc39da763bf5c69f0866a86d4ae931970bfd6c5e85857f26d3", - "dest-filename": "boolean-3.1.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", - "sha512": "f6062040a5f1fb59cff263fb0b3172694011860ec3de7d5d17f16712b5a6bbd97a26f1a9354376efc8746926fe423a22292586fa2677b87adcaa4d2aad8f5141", - "dest-filename": "boxen-5.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "sha512": "882b8f1c3160ac75fb1f6bc423fe71a73d3bcd21c1d344e9ba0aa1998b5598c3bae75f260ae44ca0e60595d101974835f3bb9fa3375a1e058a71815beb5a8688", - "dest-filename": "brace-expansion-1.1.11.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "sha512": "68d75b9e3f4ff0f8dd5d4e326da58b2b6205de373f1280d86c2ec06b35bab68dd346c7d7c6c702f545ce07988388442b93221b5a9d922d075ae3e4006bb9dcdf", - "dest-filename": "braces-2.3.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "sha512": "6fcba6f8bd51cccdd60d2cef866ea0233d727d36c1b7a61395c10a02fb26a82659170e3acfadba9558fd8f5c843d6df71f91fe94142964c3f593c97eefc1dad0", - "dest-filename": "braces-3.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", - "sha512": "bb6b5b6c6e4f74a45352872d3b73410fc150e4774f8756573c7ce9d6bc1a6b98d373e455f7ff9195688020a9a344f405fb16c633d2a4963e5b65015adacff7f0", - "dest-filename": "browserslist-4.19.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "sha512": "4c433688c20441d276ca33c9a1222c95d9e5795680935a16dc305553293238bb04b0598473d927f921453f3fa0979e0a40dc650e7030097a2c392f4e931db102", - "dest-filename": "buffer-alloc-unsafe-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "sha512": "085b074208ed5b550285d5e06f2246b679be3bfb8b41e65db5b0e8f267d48185c21d2335c20ad5c579ba6d2cab52e12b11bfb8b185460b3012051a2def3caba3", - "dest-filename": "buffer-alloc-1.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "sha1": "0d333e3f00eac50aa1454abd30ef8c2a5d9a7242", - "dest-filename": "buffer-crc32-0.2.13.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", - "sha1": "59616b498304d556abd466966b22eeda3eca5fbe", - "dest-filename": "buffer-equal-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "sha1": "f8f78b76789888ef39f205cd637f68e702122b2c", - "dest-filename": "buffer-fill-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "sha512": "13e5d0091c126da6a20a1b6fea4e83c2073e6f1f81b3abee2891c7979928c7f05a29b8625f3a903b02b870edb6c84946a763829a3c15853dc79b18323c69c97d", - "dest-filename": "buffer-from-1.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "sha512": "e3face120f3a8e2bed3d378e5144fad6324ed586b54eb47f3a4a824990f2abce16261dcbbae8a984160937e7e6e71b9f224e17005704c2d7bff16cc2f087ffd6", - "dest-filename": "buffer-indexof-1.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.9.1.tgz", - "sha512": "73c6bc277c0ae812152d6ee5b3eed344af6282ca536f35a652ac456e02b49b8d06826e9e7d46f1b565421888dcf9db5c872af9a8030050bea210645d4bfeafc2", - "dest-filename": "builder-util-runtime-8.9.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/builder-util/-/builder-util-22.14.5.tgz", - "sha512": "cea2070c5270980ee357b482f5a23edf7316c13da65a88a31fe3a5f489ed340c2eb915e84beed7789c2784b0573a17030735d3e240f31e7464e0929e6b280460", - "dest-filename": "builder-util-22.14.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "sha1": "d32815404d689699f85a4ea4fa8755dd13a96048", - "dest-filename": "bytes-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", - "sha512": "7567b89d63bfaee10e63b1e4509e6016dd4308557dccf46826bf29574fc04907ab98e663b6af233233a9ac2d0a775d062cdfa5ef16943efc732455adc46bbc16", - "dest-filename": "bytes-3.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/cacache/-/cacache-13.0.1.tgz", - "sha512": "e59bc0c5dd391c30d4fb2f4156f72a62ed8b2d798f9d0d215bada1df6838c414e02ff329a51e3fd383477e3ff270cdb2ea59939dbc3a1d58bed5e3743ec6daeb", - "dest-filename": "cacache-13.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "sha512": "555758cd7127f9c9db5e91605ace614d3ece49c7a01d598b849211f147ea9378850fa03a8f98925f52ae0537cd12fe2d749584d8fcc0e88545b5c2c2edf37dc1", - "dest-filename": "cacache-15.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "sha512": "00a71d4e71525804dde7f1823d1c6bd82870209f3909ecab1328d11e52b1439e9de1724c1b29b4b8088a9f4c5b2ce18e977fb24693938b8f38755084739014cd", - "dest-filename": "cache-base-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "sha512": "dbf90db1c3e1a5cc6b3a280c6736e2585eddcfc8a585bfe72075371326625d65e97aafdabbca89f1585d7ed324b72de7ec68fa1c819a9501bca2204d07700980", - "dest-filename": "cacheable-lookup-5.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "sha512": "3a3ddc0063c2a8e657ed1cfae149f2d8660064d962412a9f6de3eb800435c0a022858982527ada06d26d29c191e31cfbc05f8ba090beb2c159befe41805f4882", - "dest-filename": "cacheable-request-6.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", - "sha512": "a68b96f3f16688f41bb86a645d0f4100fbff328e710c600d812357cd3cc9f03aca1ae5ceb2c338c084118df6a735187762ee5c7d83ef728aea6e183628826d7b", - "dest-filename": "cacheable-request-7.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "sha512": "ecef856c28a1ac1e5619b1587ac72dc264ca69eeab3a22339b3d6272b79627ed1a03b2c97eeaa112ca364fd9dca5c16dccc42dcd77f64061ae7962464d8b2aac", - "dest-filename": "call-bind-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "sha512": "83119606b4d3d49b8cc7a47ea393d35cc9949e19d5ccb43d48dbad0f862a2ad23a6a9f3deedded28409895aea0096124a655e794dc9b124660f46106c4a14283", - "dest-filename": "camel-case-4.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "sha512": "2f6f124c1d7bd27c164badd48ed944384ddd95d400a5a257664388d6e3057f37f7ad1b8f7a01da1deb3279ef98c50f96e92bd10d057a52b74e751891d79df026", - "dest-filename": "camelcase-5.3.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "sha512": "1a6cba161625098eee3849595126f1a365020c7f28c0493df7a8246eba6c806b6b24b33727b8c6c65f4873b430c23e22bce13901665644c79c0dd17b86a1a314", - "dest-filename": "camelcase-6.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001304.tgz", - "sha512": "6ddb1f65de8ae9aa7cec01aa48724ffecd55f94e99e65cab71b06ede8bdb0827fc712629c13b46ac204e6cca49ab0c5f4db2d6e984c875b6f58c47937a572961", - "dest-filename": "caniuse-lite-1.0.30001304.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "sha512": "32d8be7fd96924d730178b5657cfcead34ed1758198be7fc16a97201da2eada95c156150585dbe3600874a18e409bf881412eaf5bb99c04d71724414e29792b9", - "dest-filename": "chalk-2.4.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "sha512": "a0a9db845c91217a54b9ecfc881326c846b89db8f820e432ba173fc32f6463bfd654f73020ef5503aebc3eef1190eefed06efa48b44e7b2c3d0a9434eb58b898", - "dest-filename": "chalk-4.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "sha512": "6666546b37cecdfd0dbdeeddba208a0f6dcf1520ace093e863271c8d4145dda42441a76a0617f3863930047da634e1bd71307085a98cdfb108b08919c379d182", - "dest-filename": "chokidar-2.1.8.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "sha512": "8c9d1bab36b296626d567360cd37923acf033dabe96d8804aff6f460bf3fd863b7c4912122716684a3149c42508d9ba62bb297185854cbcf4faec25695a90156", - "dest-filename": "chownr-1.1.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "sha512": "6c8a26b43179286a5da2090b77d56ca6f17393d29fa72c86952f18155665ed318f0472f9b2720e9f17ac8705603ed790f5be04c9d97ea556c8c84d4372f09681", - "dest-filename": "chownr-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "sha512": "a772942f2420e12ecd2078b17706c65fe9c51e4a01880e18426c96b636fc5e7812295d76e27266472b2001eba36d455bd79be1f91bc551f08fa94eeb5e4fa166", - "dest-filename": "chrome-trace-event-1.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz", - "sha1": "04a106672c18b085ab774d983dfa3ea138f22205", - "dest-filename": "chromium-pickle-js-0.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "sha512": "e6d2bb12dad9d0df8e2c532d86da8e8f87c8d8979bf3c0b808064fbb6e4b0d55205c9d00dc9b383cc1aaae7d095355b4321d7f67cc19cd83f1a94ad77816e809", - "dest-filename": "ci-info-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "sha512": "ae24ffdef239629547ebfaa89a50e7268c3a4c179ed8f04a484a71dcedf61063d86d618846c2251919acdd29bbe30604d49328f119ced381dbd76fafd49e480b", - "dest-filename": "ci-info-3.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "sha512": "a8e84f6bf163eece9363c1fc7ac1aee5036930c431cfbf61faeaf3acd60dea69fef419f194319fe5067e5de083b314a33eab12479e973993899a97aeae72cc7a", - "dest-filename": "class-utils-0.3.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", - "sha512": "1095034fb9c35450ef690800a361bf3c9bf19a9d68fdcea25cb6ecc2c05b5055e2d4dafe02303670a99f6ca0cc8ccbf311eef98373fa2646830c02a4f7a03ce4", - "dest-filename": "clean-css-4.2.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "sha512": "e1d882f4769313e29100c5a10e1ac63840a0599c687af31ce5396439b32a352b1553ad8f6335d9fd23138f3c8600517562eb20c46712593117061a7408fc10d4", - "dest-filename": "clean-stack-2.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "sha512": "cb872831cca581209d5629e388306e47c3c20b66cb8f2193c0498f6fd34747f41a354e8450e5dc4d8fece958c6303e8435211a790607098d063464b98df3303f", - "dest-filename": "cli-boxes-2.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "sha512": "3d87864849a61cceb3be879fdb0f133f396b9cda572234e2a582bbf3462cc2620ff6f8f199de98d9adc20762acebf014f0d1e366e817be8f30de858cdaa9f05c", - "dest-filename": "cliui-5.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "sha512": "b7ac1b82da025ef033b2ded0817c4962a3edd2eb047db81075fb443db2cbfdcbefe873c4e5582fa82b80203474360539d9db3aac5c2aae06a434bac712309bad", - "dest-filename": "cliui-6.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "sha512": "39c444ebc70eb15317a7562fa2797f7f39103b28cb4aeffc6e13c37d0b747b4fc46f6f374ca3f6d05b3632aa0fb2bf52c00e7de6b44203e40ccd873d9c13fe25", - "dest-filename": "cliui-7.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "sha1": "d1dc973920314df67fbeb94223b4ee350239e96b", - "dest-filename": "clone-response-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "sha1": "4bc0373c164bc3291b4d368c829cf1a80a59dca0", - "dest-filename": "collection-visit-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "sha512": "41f014b5dfaf15d02d150702f020b262dd5f616c52a8088ad9c483eb30c1f0dddca6c10102f471a7dcce1a0e86fd21c7258013f3cfdacff22e0c600bb0d55b1a", - "dest-filename": "color-convert-1.9.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "sha512": "4511023ec8fb8aeff16f9a0a61cb051d2a6914d9ec8ffe763954d129be333f9a275f0545df3566993a0d70e7c60be0910e97cafd4e7ce1f320dfc64709a12529", - "dest-filename": "color-convert-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "sha1": "a7d0558bd89c42f795dd42328f740831ca53bc25", - "dest-filename": "color-name-1.1.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "sha512": "74ecbedc0b96ddadb035b64722e319a537208c6b8b53fb812ffb9b71917d3976c3a3c7dfe0ef32569e417f479f4bcb84a18a39ab8171edd63d3a04065e002c40", - "dest-filename": "color-name-1.1.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "sha512": "aa20639296cc2cefc72faf32fa5878ab4fced4c6458f6457e97fca98c6b7fa0243df3f96c08d59cc31f2b2fa87192de63fa9b39cf724a579b0d6723d7098f246", - "dest-filename": "color-support-1.1.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", - "sha1": "0433f44d809680fdeb60ed260f1b0c262e82a40b", - "dest-filename": "colors-1.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "sha512": "6be52a4e1e2481983f4a51af7dbcc31e9811bbb00040e9a6a911c99f185164808a1544fdd5bad584d36de7c08c594f4fb016efdcf0c26541db571b83887da6b4", - "dest-filename": "colors-1.4.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "sha512": "1503783117ee25e1dfedc05b04c2455e12920eafb690002b06599106f72f144e410751d9297b5214048385d973f73398c3187c943767be630e7bffb971da0476", - "dest-filename": "combined-stream-1.0.8.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "sha512": "1a956498cf2f176bd05248f62ef6660f7e49c5e24e2c2c09f5c524ba0ca4da7ba16efdfe989be92d862dfb4f9448cc44fa88fe7b2fe52449e1670ef9c7f38c71", - "dest-filename": "commander-2.20.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", - "sha1": "9c99094176e12240cb22d6c5146098400fe0f7d4", - "dest-filename": "commander-2.9.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "sha512": "34e2a6f31864cc08f3171f01dafe4e0074febb9a5141cd9409ad95abd8d82ffdf5a36c22f66c4103b2c816cdec5795520b8f73ea91217db3142ef4a12a3dba58", - "dest-filename": "commander-4.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", - "sha512": "3f40b2b0d0d0eebb55c3840842d9be311c55ebabca152be5b10bc6617656477a855348e530a1d9659830f1efbc0d26a1e140ca32a9e49d10d0cfec6e41743f66", - "dest-filename": "commander-5.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "sha512": "3a44cbf6e99ff877b60d9914abc7fc27da1fef22fa449288db875521306635f6419ab8bdcd8650aca92e5e22a1c9f3d2bbcb5486754107588a5debef9e54785b", - "dest-filename": "commander-8.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "sha1": "ddd800da0c66127393cca5950ea968a3aaf1253b", - "dest-filename": "commondir-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz", - "sha1": "0162ec2d9351f5ddd59a9202cba935366a725080", - "dest-filename": "compare-version-0.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "sha512": "45ddec7ba401fac3b54f0a998ec710aeeae910f21f3b4ff26274a29fa43fac3de63aeb47bd4ac202126e6f7afdd2e35bf9211206e134418a01f7461d7dab6c46", - "dest-filename": "component-emitter-1.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "sha512": "005debecfe5d5b12fc331c884d132539140d68e036224005693af893b054ba68cfb51a460d36699743dbd5708ee89783081769d76e8282cf6c331a928e063246", - "dest-filename": "compressible-2.0.18.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "sha512": "8da4880f33fda59552e197d0f93cefb625a17691611364431f3f10264a57f522292eaf3c56e785e63270eadfba09441c02803ab7ec7cf4c2eb580aa97c313c89", - "dest-filename": "compression-1.7.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "sha1": "d8a96bd77fd68df7793a73036a3ba0d5405d477b", - "dest-filename": "concat-map-0.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "sha512": "dbb1c18212718e266d224dd872f9ffe246c993fd6e66e2457ee3c49ece8b684be9bc6d5fd214de6bc96296ba2eca8f6655cd8659d70467c38ba0699200396b0b", - "dest-filename": "concat-stream-1.6.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/conf/-/conf-10.1.1.tgz", - "sha512": "cf6722bf0abf93c4cc62d727dd254fd0f7aca38a2d2169c7b5c4ee1e1434cc364374fe0d4f1a8473ca307e4cf8cc1b1d318767fcb15c13e6616c27aa921b6add", - "dest-filename": "conf-10.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", - "sha512": "aa3f9ff003c04571eb33486b6aa5d86f6fdb395495e0fbc9425359fc3563d10ae634cdaad9eba2ce47ae55c910e7b27e5b49911fa1ef8be939d0ce09ba5d9545", - "dest-filename": "config-chain-1.1.13.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "sha512": "68c2a9ae093962104dc87db9863f301addbe0f9d92c350d1448cea0702e9d986bd985998f0a3efbedbe69daf12c5547d24c678933303ebc376daf95a46991e14", - "dest-filename": "configstore-5.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", - "sha512": "7b9e01f7dabf394a07eb8cd86117f71c13f9cf6e06dfc8790f7a97bb6dc9191a228295f94ace2bf599c393783467cb900b6c7694f689f9495605cd5958159d2e", - "dest-filename": "connect-history-api-fallback-1.6.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "sha1": "3d7cf4464db6446ea644bf4b39507f9851008e8e", - "dest-filename": "console-control-strings-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "sha512": "16f7994cdb86c34e1cc6502259bce2eb34c02ff9617a16966d3b6096e261e3f13de43a8cc139a16b7299375680580f1c148847ccc654bcb7af930e51aa4fad49", - "dest-filename": "content-disposition-0.5.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "sha512": "8483f71043ecf2d07d013d4bf8d52ab70380a6ce269366686fcf4c5973078c75a0f668a517f8f8a2c9e740b5c108114193fb6f206fed51cf663942623c184f5c", - "dest-filename": "content-type-1.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "sha512": "f8e41d8cfe3dcd5888ffa8bb9c826903cac0978b15fc974f7d4f6766cdd5a8ec062208b3202bee376aeee9f31dfb89652f4b5aaf5f146095df67f4d6b668548c", - "dest-filename": "convert-source-map-1.8.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "sha1": "e303a882b342cc3ee8ca513a79999734dab3ae2c", - "dest-filename": "cookie-signature-1.0.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "sha512": "670ac5906271511dc42285ed3bec9513af446fb2a58b16da78059f05007dbd5b0d9ffa3e630ebd8015924832bcdb985035d37ec05f3310b7f7745365fe4c6450", - "dest-filename": "cookie-0.4.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "sha512": "7f676899df5fb150c5b5a15c6da459b985f0b5d9a7cea6c00d2c21496631601fd0f33b1d51414c5d54705c60cc5a66c4cc09f591d46bb48d53fca4c538be17d8", - "dest-filename": "copy-concurrently-1.0.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "sha1": "676f6eb3c39997c2ee1ac3a924fd6124748f578d", - "dest-filename": "copy-descriptor-0.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.0.tgz", - "sha512": "3925ec78d3d22b638f25ae8676d90ccff5f1797c7cfc226f7e14164ea77a9deb94adaba370be2356c8e42d0cf53969dac7cc554099d13ded15da3a8d58e440f8", - "dest-filename": "core-js-compat-3.21.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "sha512": "65006f8b50dca49e060ea6a78ee719d878f7c043b9a590d2f3d0566e472bbddc64b09a2bc140c365a997f65745929f5ac369660432e090e6c40380d6349f4561", - "dest-filename": "core-util-is-1.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/crocket/-/crocket-0.9.11.tgz", - "sha1": "288fca11ef0d3dd239b62c488265f30c8edfb0c5", - "dest-filename": "crocket-0.9.11.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/cross-spawn-windows-exe/-/cross-spawn-windows-exe-1.2.0.tgz", - "sha512": "9a42ed2497186c30b1106ec9b3a7949d43677568f2519c09dc7edb12b9a6b4e614fd96fdf43c949296a6b88644d1bddb86627267b0fdd2e4ba7fe086c514633b", - "dest-filename": "cross-spawn-windows-exe-1.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "sha512": "79354bac14adedf8db0f2833f34e69327b2d22cd954c1364466d2ac5977e33b0395c377155158ee4cc460576618d8e1ca8b60b76dac6a917fc9813e6cf04a959", - "dest-filename": "cross-spawn-6.0.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "sha512": "8910cf24a50f544343edd1cf3bcae46ce9cfa720f281c0c5b568e9796342832f163f6ad77315cbf13b2445e425e8eac1d86efe509ada82cd6ad7916e75cec6eb", - "dest-filename": "cross-spawn-7.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/cross-unzip/-/cross-unzip-0.0.2.tgz", - "sha1": "5183bc47a09559befcf98cc4657964999359372f", - "dest-filename": "cross-unzip-0.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "sha512": "bf5a65203df2f6bfe53e1be2275c2b5e92dec94206019d921cd61311aa66efff00f672cfa32bd5a7744afc43c5aa7e641339f25a061936c46d6182166ee1bc28", - "dest-filename": "crypto-random-string-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/css-hot-loader/-/css-hot-loader-1.4.4.tgz", - "sha512": "27fa971f3fabec5393f76a8c2097f1524d0b0bd7de71035956bd0cb3043814ea4a2f2382063a1f54c7dce91dbaf1b87fe64b644d286bc1e32bd305aa7ab0bdda", - "dest-filename": "css-hot-loader-1.4.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/css-loader/-/css-loader-3.6.0.tgz", - "sha512": "339952ba4a168b521ff1d8500140af8f81fcbd4b77bce9f06d0047f437539bfb38626d81ff774f32d6197899aaed0dd2dcf6be23de03719ee973d6cfd7871621", - "dest-filename": "css-loader-3.6.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", - "sha512": "fda52c94a873913342414076a935fce255667e26bd3728cfdd6a431ad8ff5b18700735816145770e0529bab1d399ef144cf70f9400f50c9f9bd2737fb79d330d", - "dest-filename": "css-select-4.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", - "sha512": "6ab48c456208158d2157ca48c593047e6308e3b5a3dd1fda5a96430f159808f12238cbfab5f3ab9e90ed8310583c4403e15d18ffde7cfb54dd0b78964c57143f", - "dest-filename": "css-what-5.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "sha512": "fd36ff25c8cad75d67352706a1be4c36db27b4d3356823540e2a41fd39306458720ebac4e3b48ec7fd7cc05d9b6e381cdd9cc248a5b54f99ede446c5a00cff56", - "dest-filename": "cssesc-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/dbus-next/-/dbus-next-0.9.2.tgz", - "sha512": "b7342affec2b4d9db253e5393e879773deca001857dafe790bf4f47e29c7ded48a62e23c1ff4aaa69205ca6041ad41dc2b5dcbbc4198def763de290f3de9cbe6", - "dest-filename": "dbus-next-0.9.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/debounce-fn/-/debounce-fn-4.0.0.tgz", - "sha512": "f296024222fd5dd720d143d20f777ed0a3253a3a7e28653910fc1875d83343b0c04ec8387ee5038d0b6c60b9968e7936a1b9cd1e0577bc4d98e237a348e25505", - "dest-filename": "debounce-fn-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "sha512": "6c2ec496b7496899cf6c03fed44a2d62fa99b1bdde725e708ba05f8ba0494d470da30a7a72fb298348d7ce74532838e6fc4ec076014155e00f54c35c286b0730", - "dest-filename": "debug-2.6.9.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "sha512": "0858f3618022e1385f890be2ceb1507af4d35c7b670aa59f7bbc75021804b1c4f3e996cb6dfa0b44b3ee81343206d87a7fc644455512c961c50ffed6bb8b755d", - "dest-filename": "debug-3.2.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "sha512": "ff3c70e7ebe1d537effb8427edae67b1b70928f692bc20e1a239fa14497dbeea702b6542483b44884b6aafc0c5b7360539dcfadcb064c5e73b0d8b9cda3a27e9", - "dest-filename": "debug-4.3.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "sha1": "f6534d15148269b20352e7bee26f501f9a191290", - "dest-filename": "decamelize-1.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "sha1": "eb3913333458775cb84cd1a1fae062106bb87545", - "dest-filename": "decode-uri-component-0.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "sha1": "80a4dd323748384bfa248083622aedec982adff3", - "dest-filename": "decompress-response-3.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "sha512": "696df9c9933a05bff8a099599dc307d8b0a866d2574d1c444b5eef137868462a305369161da24a1644810e70d1f9c9bd27ef5085799113221fbf4a638bd7a309", - "dest-filename": "decompress-response-6.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "sha512": "c9df5ce40762a95711f898dcc1441bf4392125cf2780daf431a844046bc3889c3ca6e59a6f6c99961fa791ab0e9d93fe1064c03faad1a76273261259cef345f2", - "dest-filename": "deep-equal-1.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "sha512": "2ce1f120e68f61d1e5251b4241f0c8559b5fc3fb9f33cfab563eb8f51207cdc9bfbc6c1045716de8e3ea2055ac9b65c432b34812d591eb8b18d4b10a0f6bc038", - "dest-filename": "deep-extend-0.6.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", - "sha512": "87ab0cad507554c595ad6d7799273a89afc3c18630e4c37af9ec4dbb539a25e15a73969202fc0cee56743557d3001b929107a5af8879a1e6e0dca0755cf76380", - "dest-filename": "default-gateway-4.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "sha512": "d0849d368bac1ef653d84885959799007054bd2c662acc150847fc856eca5a01b86bc31512eff755beae598a33923ca5c82c5ed090488910758d5e394bbd1655", - "dest-filename": "defer-to-connect-1.1.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "sha512": "e2dbedb5ea571b555a606ad189b93913025dd6de2e76e9d239531d2d200bea621dd62c78dfca0fc0f64c00b638d450a28ee90ed4bd2dc0d706b1dcd2edd1e00e", - "dest-filename": "defer-to-connect-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "sha512": "0ecd3da8d87ccb0de48528e22638942276865fdc65a990d8ec956bc86c5dc55ecd3debaa41fa653a943aeb224566eb778cb6b9ccec245f0d60f44236b8a8783a", - "dest-filename": "define-lazy-prop-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "sha512": "dcca9f60a8f694bcdd3127fc648644fd5f99bb2f81803e9fd7ae1ef0adb0edd827a4a02b0437ab198a4ce3a21861c8e791d3cd3233e4f40e95141f3edd22a55d", - "dest-filename": "define-properties-1.1.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "sha1": "c35b1ef918ec3c990f9a5bc57be04aacec5c8116", - "dest-filename": "define-property-0.2.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "sha1": "769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6", - "dest-filename": "define-property-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "sha512": "8f02b6515e1c9cfa5b706efe55101129364f516a30c1703c6f31f934feae774a1e031c983ee1995000bb84cba0a42773e01792665d8397d93ae821c9ff8e9961", - "dest-filename": "define-property-2.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", - "sha512": "4301ae114a2e3f6915c107a702c3a87f916ff0af6ddc3f026bc3717172ab2291078d35cae49da75cb74ff802c8d5c82ff308fb2aec01853c0190e65224a3395d", - "dest-filename": "del-4.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "sha1": "df3ae199acadfb7d440aaae0b29e2272b24ec619", - "dest-filename": "delayed-stream-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "sha1": "84c6e159b81904fdca59a0ef44cd870d31250f9a", - "dest-filename": "delegates-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "sha1": "9bcd52e14c097763e749b274c4346ed2e560b5a9", - "dest-filename": "depd-1.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "sha1": "978857442c44749e4206613e37946205826abd80", - "dest-filename": "destroy-1.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "sha1": "f0d66d03672a825cb1b73bdb3fe62310c8e552b7", - "dest-filename": "detect-file-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "sha512": "4f4348b90a674ef14301336e1cde6ba0fc12046f37ac5b2e3be3175c7f7fdcdd5e15b9f8c1c3e3b6dbe330b10f589d11194620404edc1a04b7b4dc5ba8218cee", - "dest-filename": "detect-node-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.4.0.tgz", - "sha512": "62a890ce4aec987307e6eba1f0e750154f7f6690039f0ce697ccf43b91ef44d75afb9519b1a5ffc4df800317d1da15aad58ec76670333bd2799495ceb83cf65b", - "dest-filename": "diff-sequences-27.4.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.2.tgz", - "sha512": "415e8f31a1d308d98a49e3fa4285e1553c3db2773d543f0cba54d3d0177df4f69ca78492d5c8dcad83e004f9a26ea295b4c2497ea0ba5ef39780f30410f1ff7e", - "dest-filename": "dijkstrajs-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/dir-compare/-/dir-compare-2.4.0.tgz", - "sha512": "97d866bbcc7fae3542f59db3986ce484e128c19bd6ee9998c2ce42587bad83cbb5260bec296331ed0fd43837aee1d8cb6781605b96deb30e72bcc427047cee08", - "dest-filename": "dir-compare-2.4.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/discord-rpc/-/discord-rpc-4.0.1.tgz", - "sha512": "1cebc7a5bab9493459263408073c282a74348c7a656c45855a53c3c175ca9bf6c82e1e27ce3720ee636a965d1463b46c8c5a1a5c0edefe861bff896fa5d6b6cc", - "dest-filename": "discord-rpc-4.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.14.5.tgz", - "sha512": "d46bc5190137df66ef3da99c330643a96a9f59f253cb20cb3ac1cc7068b4cecf8987b24e9faff3b8190724858776c8f64096e1ccb572776fd9aadb4e2afec8f3", - "dest-filename": "dmg-builder-22.14.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "sha1": "b39e7f1da6eb0a75ba9c17324b34753c47e0654d", - "dest-filename": "dns-equal-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", - "sha512": "050e85e2fc9c2d706f76b259e92de065ec2deab72b92cf4a06033dbeb856fa49c646a73cb84753edfb82c25a1cee79f2e71368309d7b1c61f447fe9fa68f0408", - "dest-filename": "dns-packet-1.3.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "sha1": "b91d806f5d27188e4ab3e7d107d881a1cc4642b6", - "dest-filename": "dns-txt-2.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "sha512": "81ddf2a483df38cafd8798c82aaf04dec1ce4c28de8ab9e5d162b965d4b5016d0e76dd1bd4f696687749e10938925bfe601f5a2414bb9844978c5a0340fbba0c", - "dest-filename": "dom-converter-0.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "sha512": "e5ce78064e43c38a80c4d388d691448b33d28d5b31e7e6e924a98bda43e7f0984152adaad3db5309ade68e28ee9f635f2bbf0d328b8360d30190eacf6624be8a", - "dest-filename": "dom-serializer-1.3.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "sha512": "0ed04ca3cda9bf5745b54987cabe3c6de8aeabbf764b1a21afef079bdce8c649583df6ba9f46770728e3d8857b6e6af6232a82967a844217e01c9279405d11e4", - "dest-filename": "domelementtype-2.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz", - "sha512": "2750b9ac800d51bb982be16e14bf7ceb9d2b8a1ca750e13344bc56fbdd1b29945607a0355f54dff361b1475a8058bc9f34f46f8ea7e2a77439b5d6259806bd94", - "dest-filename": "domhandler-3.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", - "sha512": "7c2d1a5cd417a8a4854ebdb00cd64386c1188c2898b035a5dc3d35930b76e619b56083f20c61efbe2debc3e3cba87025fe6ef531a885edde73bc1af4a79501da", - "dest-filename": "domhandler-4.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "sha512": "c3de828e87e9ef63392088698e0a1b06299811fa0f8f1d55c740525fd3f7d1605d656d9620a5344f505dd24cf678d67d8a48ca8076c4c8ac7c041e87d4bde1dc", - "dest-filename": "domutils-2.8.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "sha512": "2afe672a587ac91addac6bf1789d9ee72d9e454a64528b085b8036012dfccf04b3dbbceeeee7c3c103e2e4986cdd702518d7ad9776e69c6850b0cb642899e3df", - "dest-filename": "dot-case-3.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "sha512": "40cf2adf30dee7c86a52a8eb6903a6cd9d4b207f525902539442821f8909da842f2d993b45b417bed0ccd9712addfc2457d082bef1f82c0d0057ea2016c04cd9", - "dest-filename": "dot-prop-5.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", - "sha512": "b44ef3b58cd71c87b2bdcecdfa1477a22ec521b7ff3488d53fd86602ddf2317ceb434ef6fdfa6318bc761b13711b1525e55ef7304a98ce2a0e32856118c27970", - "dest-filename": "dot-prop-6.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", - "sha512": "617425d4349ae3f3d0c917e0aefe9aa0d8e16aca7fa78aacf458c9e2ae1c424fbc9b8afa938652884cb2b4a1bc7fc5bd822f16b10b4839b36629dfad33335398", - "dest-filename": "dotenv-expand-5.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", - "sha512": "22b3dd5d0b24d816f3bc204604e4e69921f94a8766a9936de04440643996e024feb4bf15b6f8a7ab2c2e00d685bb86ce316922d7a9ea7f47b8a02d1021a0ebfe", - "dest-filename": "dotenv-8.6.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/dotenv/-/dotenv-9.0.2.tgz", - "sha512": "23d3afbeb1e9e2920046fe3ec7d8ae7b0ad6c9c5fa09c66da00bb55ebccfc5ce54ca03095c9658981b329e4bbc224ac9c20ca91390c63630cf98f4610c2a6d52", - "dest-filename": "dotenv-9.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "sha512": "8ed0fa606dfbd190888bff464da24a431593643d38e7ee11e214e4ff1d54ca8a9a77227dc7d0a04a2d519550d017c536b312cb4a716409a32286a9631c85a032", - "dest-filename": "duplexer-0.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "sha1": "ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2", - "dest-filename": "duplexer3-0.1.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "sha1": "590c61156b0ae2f4f0255732a158b266bc56b21d", - "dest-filename": "ee-first-1.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz", - "sha512": "f65b7d66c7b884fb9c3e4a0fec51c31742d00251b217d255a670a514b147dda4926f19b2a2a20d469a7ff7078f5894d497828e43044bef6230dc89c73c39281b", - "dest-filename": "ejs-3.1.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/electron-builder/-/electron-builder-22.14.5.tgz", - "sha512": "37bde149b5c5cfa333e59ea1e82e65cba081f9d50dea4d4bb820c98c8f15178edb317bff404d0713e2a46f418f2aa4ea33b1ec93fc88617fa41c27d2911e451a", - "dest-filename": "electron-builder-22.14.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/electron-devtools-installer/-/electron-devtools-installer-2.2.4.tgz", - "sha512": "6f991c33786652a9fae3e4547078e3afc64ca474b6589e583b4a671bdf8ffd14ddc78ea87ff26b123b9c8875aec7aa44f8e9faca75a11c9179de3fc40c93743c", - "dest-filename": "electron-devtools-installer-2.2.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.7.4.tgz", - "sha512": "f9f04b5c4cb8089590e5bcfc77269e486d610fa249d799016728f77a1db8a4856b77784b338ec7fee99f7eb7507d2e866747da945d20f494fd7f746ce8055487", - "dest-filename": "electron-fetch-1.7.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/electron-log/-/electron-log-4.4.5.tgz", - "sha512": "09f6b608a9f00619547c897faabd86179482a9fa00f723c1a9327aff03ecf8f127dfa336f8467746919268e858435059a6894bd425b27aede0306f1ea4b97736", - "dest-filename": "electron-log-4.4.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/electron-notarize/-/electron-notarize-1.1.1.tgz", - "sha512": "92e7ec9ea87ce824d7f3d018346dcd08fa1ba2a9e4bbffb7d91c5e276fbb03845b9b86db3b1d0d73b5d3cb7fe002505fa63f713c0c477e164b38781f8ba70957", - "dest-filename": "electron-notarize-1.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.5.0.tgz", - "sha512": "89ca112c7cc5cffab1cc387f3783e2db3e32547bab96c080610bec0921bb7c279d2785095c14ba3e8432187ef521f72a2aea5c29e2bb1d7fcd9327c6fafeaf95", - "dest-filename": "electron-osx-sign-0.5.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/electron-packager/-/electron-packager-15.4.0.tgz", - "sha512": "26bacb7013f5e4a1ab3e3d1c67f00b28699a438809927de6a1c7f41376d129d47793129661c0d1a42bdd864b180d7c3faf723ab4c11c67b5f3c80a56157755a7", - "dest-filename": "electron-packager-15.4.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.14.5.tgz", - "sha512": "87e34035175a0343ea185d7918abe8aec7963f38753d76bfcf1e08dfbfff3c8a245bc78a228bfc932db77e85126f9e591565071a9c5026ec7bcb63427c1b507a", - "dest-filename": "electron-publish-22.14.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/electron-store/-/electron-store-8.0.1.tgz", - "sha512": "6722ef372c22a92a5bc02fe9a7cf4efc0c9c55663f5092249adcb317605dd0d9bfacb99c15cd0d4c6b8b760ebe2c4f264bcaac88ae493287b83e7ade70b1c7e7", - "dest-filename": "electron-store-8.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.60.tgz", - "sha512": "879de16c488a0ba8628de943831824800502dcf2b247b4e621fbe31e70635063cc83fdec06e4f21ba783a2b9b0fa5636e2e509bc79143f307c7692bc6f6bb74b", - "dest-filename": "electron-to-chromium-1.4.60.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/electron-updater/-/electron-updater-4.6.1.tgz", - "sha512": "62c535987a972eb5d798132cc61c72db83eb6da07cae7a590cf9856b680e913624fc2875dfe4747e3b114a93d8beab6c915558d2ec7c7eef879d491592a73ba2", - "dest-filename": "electron-updater-4.6.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/electron-webpack-js/-/electron-webpack-js-2.4.1.tgz", - "sha512": "34f6dc2389e7b9c9642c42a6c1123cb2e8b618d7b7ecd2a6d2909047a29903b612577290747e08ef03a0219d8091e0a9c9e507ac148c19063e56a84f0fb3ad30", - "dest-filename": "electron-webpack-js-2.4.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/electron-webpack/-/electron-webpack-2.8.2.tgz", - "sha512": "ad1ee1c683a56487097fa474f26565ff84c1b4563e1d6eacbf8676f1374c5844ef70ce1904805d18d1b297117480dc01f20913828f149240db5c65f8f0ae15a3", - "dest-filename": "electron-webpack-2.8.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/electron-window-state/-/electron-window-state-5.0.3.tgz", - "sha512": "d66353c027e4a255e5de431fe74c96def1369598f4cbdd8ffc7616141adbfafd92fe90a46b999dc0dddc6a02a6e39f00ecd8e7752c228f29d781c2d646876c56", - "dest-filename": "electron-window-state-5.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "sha512": "0b004b444210ecbbd8141d16c91bf086ae4de6a3e173a3cc8c3e9b620805948e58c83825fb4bf1ab95476cc385a8b83b85f5b39aef13e59d50a1f8664c8848b4", - "dest-filename": "emoji-regex-7.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "sha512": "3128d8cdc58d380d1ec001e9cf4331a5816fc20eb28f2d4d1b7c6d7a8ab3eb8e150a8fd13e09ebd7f186b7e89cde2253cd0f04bb74dd335e126b09d5526184e8", - "dest-filename": "emoji-regex-8.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "sha512": "fe4c8cd7c11f8a7c1765b9e8f45c9419e161f3b282f074500501a295d1d96c4b91c9614e9afd54d74a3d041a7c5d564354d36e40ac88188bb96580005c9d15d9", - "dest-filename": "emojis-list-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz", - "sha512": "b9c027b8112150ae1ba07d878d5606e50da64323e8aefbf4bbfa1c4bece1770d12f00947618f8638584fd468a8e73e227293f68af152be1b458d08bcf93f69a7", - "dest-filename": "encode-utf8-1.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "sha1": "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59", - "dest-filename": "encodeurl-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "sha512": "11305aba8c354f7e58fd664c922a3d8e2334679c631c7989e179a364eab597f757cf796bdac467f3b9c9cb6d11ba9a928751769b71c73d2a7c4a120f409ac9dc", - "dest-filename": "encoding-0.1.13.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "sha512": "faec358a720754f428695b87cd1c97776d6270cf9c9ede02cc3e6b5be342d708ce5124ceb3e4deec53afec084deef4bdc7fa08ca12cfe4f4751fea614001eee5", - "dest-filename": "end-of-stream-1.4.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", - "sha512": "36ff66dfa4bfbf1a6c23e1dce3f64646cd27f665ea496186ab8f73c5bfdc25f3c040c6d4b6db4902534f4b8010cda05dc3fa4ab24c396cc6de913fd8ed6fd696", - "dest-filename": "enhanced-resolve-4.5.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz", - "sha512": "10601b1af1fb8fb5edda773413b0fdf4b6b53a212cf0b9f28a6911830131a5431270de8efb7c7db485acecf2d0655371e180fed34b241d73d78b5c901e902664", - "dest-filename": "enhanced-resolve-5.8.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "sha512": "a7dda27f9373eb5f48d30f9a909acb647d0c5f43dbe435f7f573b0413b5749d41039a607d374b5b88429e2684e66d017af1ab85623baed84e22c1a36eb7f28f4", - "dest-filename": "entities-2.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "sha512": "fa1d6590b2a164c4d88e8835544a49346ecd64959cb9cd830e4feab2a49345108e5e22e3790d5dd7fb9dad41a1a8cc5480097028d67471fdaea9a9f918bb92d8", - "dest-filename": "env-paths-2.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "sha512": "d9b9a546934a0714ff09198f3a5c88490a4d8fea92798bdcca6fee4f4271d9b30e94a2ed4b2d5998bb95c5210a2b2a2bfcde7286fa7f6621b5a04dc311831214", - "dest-filename": "err-code-2.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "sha512": "749ea806be5243555277daa493b0724606ffd521f82598c21d25bf9abeb7fd07173bdccb571bc9e8ecb5de78a8d37af1a529d50c38c5a2bef94a355e6563d6fc", - "dest-filename": "errno-0.1.8.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "sha512": "edd147366a9e15212dd9906c0ab8a8aca9e7dd9da98fe7ddf64988e90a16c38fff0cbfa270405f73453ba890a2b2aad3b0a4e3c387cd172da95bd3aa4ad0fce2", - "dest-filename": "error-ex-1.3.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "sha512": "daf27ab6303f51fa8b9b630fb3b8f15726cba01f22d6dd4977d4779084a5776d2c2313dc4db2ee82040e531796780bc852476ebff09f323ba1e169a25ebdaff7", - "dest-filename": "es-abstract-1.19.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "sha512": "d47436336b0fb71c27bcebd3d590a51f24038a081d3635115a9636c1ee9a30a0908945714e656cd9460f2c8ac3f38b12fa431d5307c14b295b24fc0d9c1ae71d", - "dest-filename": "es-module-lexer-0.9.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "sha512": "4023a5960649b5a528f6689805c2c285351a1cd8c91773d8b35562743ec0c22123d6463129e41372d2c07b300e1f964a447d20d8880f9fa2b0078213f22469bc", - "dest-filename": "es-to-primitive-1.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "sha512": "526ffe17132bf422125a1d1b8b966fd22383fb8705879a8b7a4b35aa1028a4a540270dddae029b2b24a2929ef01a10cbd073de6a36b43f950b66bc4b92789456", - "dest-filename": "es6-error-4.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "sha512": "9347abda05242dff0ed332898808669139c9953bc8346bfbca00cd3db788b17fd3263189647ba1f41d94c5bb1a1249a5128f4c7e1ad2ce68489614652361979f", - "dest-filename": "escalade-3.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "sha512": "f3fb8885b1b5d82b23cb62445bb0fda476eb79a55a4bf3a9377c9c9f2bc49537703399fa198e96e9ed883de99fbc665e50ca99f40ff71aa2193202a7061030fd", - "dest-filename": "escape-goat-2.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "sha1": "0258eae4d3d0c0974de1c169188ef0051d1d1988", - "dest-filename": "escape-html-1.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "sha1": "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4", - "dest-filename": "escape-string-regexp-1.0.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "sha512": "529cdc2c25e895459c36ee47b5530761d5c98c0ae3b05f42d1a367aae658638b96fd5bb49a2cb96285af6d5df8e476ae56f700527a51ba130c72a4dc18e636fb", - "dest-filename": "escape-string-regexp-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "sha512": "4eda5c349dd7033c771aaf2c591cc96956a346cd2e57103660091d6f58e6d9890fcf81ba7a05050320379f9bed10865e7cf93959ae145db2ae4b97ca90959d80", - "dest-filename": "escape-string-regexp-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "sha512": "d8dc706c5fe16742a97a960dd1c35ba3e14de97a0aec6687950860c7f848665e956b46c5e3945038ec212c8cbc9500dbb8289a7522c20671f608562aba2b796f", - "dest-filename": "eslint-scope-5.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "sha512": "786b85170ed4a5d6be838a7e407be75b44724d7fd255e2410ccfe00ad30044ed1c2ee4f61dc10a9d33ef86357a6867aaac207fb1b368a742acce6d23b1a594e0", - "dest-filename": "esprima-4.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "sha512": "2a67ca2f76fa1be457bcff0dd6faf74ead642ffa021609f63585c4b6a3fcfcbde929aa540381bc70555aa05dd2537db7083e17ca947f7df8a81e692d8bafd36a", - "dest-filename": "esrecurse-4.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "sha512": "dfd9e729f7d6cfcc4dd4153fd9cefd9fd9c1f470f3a349e2614ab1eb1caa527ca8027432c96a4e4dd6447a209c87c041bb9d79b78c29f599a055f5619fd101a7", - "dest-filename": "estraverse-4.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "sha512": "30c74046e54443388d4de243f0380caa6870475d41450fdc04ffa92ed61d4939dfdcc20ef1f15e8883446d7dfa65d3657d4ffb03d7f7814c38f41de842cbf004", - "dest-filename": "estraverse-5.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "sha512": "915b1ca97938382a7af126747648042958baffc8a3df4d0a0564c9ab7d8ffdd61e5934b02b8d56c93c5a94dd5e46603967d514fcb5fd0fb1564a657d480631ea", - "dest-filename": "esutils-2.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "sha1": "41ae2eeb65efa62268aebfea83ac7d79299b0887", - "dest-filename": "etag-1.8.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", - "sha1": "4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571", - "dest-filename": "event-stream-3.3.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "sha512": "f20b870590b02a716161d1ebdb2b2e45612b4f08683765fc5c42d196b470a667de6368e3b94378b5a40cb142ca515a352b80ef665fb4a607f2a32b07c6f9af13", - "dest-filename": "eventemitter3-4.0.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "sha512": "990c3ed9f9106c02f343b574318d08a9d9d734e793b4fe2bd2537dcfb0006b009782a79aedb0e28b6d0062b201ac577f1f1d0cd8e733e92d75d4268591471bd1", - "dest-filename": "events-3.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/eventsource/-/eventsource-1.1.0.tgz", - "sha512": "5522634f9a0236b16f092ea2823ccf02de61073436a8f04521b274df32c8f521349b1c19a4cc3a05f26b6c51e6d5ad78d406af30407c24798185601deba3df0a", - "dest-filename": "eventsource-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "sha512": "69d6f1732595e3aaa21f2bd2a79d132add39b41e2d2b71dc985eff9f17c07619e8c7cdec7930dbc276aa28ee2c5d1cbbae81c0205a893ff470fc0b846d7eb52c", - "dest-filename": "execa-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "sha1": "b77735e315ce30f6b6eff0f83b04151a22449622", - "dest-filename": "expand-brackets-2.1.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "sha1": "97e801aa052df02454de46b02bf621642cdc8502", - "dest-filename": "expand-tilde-2.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/expect/-/expect-27.2.5.tgz", - "sha512": "66b3b4c3b6e8f01806a0ffdb2f3f870c223ed077de8bd8d4499b39c88fd6ca7f55906f70f2827bac7460623f8c03bcaaa856b42301c0ddf949cd9b58ba04a124", - "dest-filename": "expect-27.2.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/express/-/express-4.17.2.tgz", - "sha512": "a31971271710958c2a3d6295249b6f422c07828b07fcbacb48f03e1f8531a72bd24ba8c2e5a1fee4ca0714cf8a0018133add003ee7b8c3ae876bc8c2528f501a", - "dest-filename": "express-4.17.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "sha1": "51af7d614ad9a9f610ea1bafbb989d6b1c56890f", - "dest-filename": "extend-shallow-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "sha1": "26a71aaf073b39fb2127172746131c2704028db8", - "dest-filename": "extend-shallow-3.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "sha512": "3666fa4179042ecb81af6e02252922968e941c781b7a42b95226607c4e941c3dc46f6ed80baa03f9b85c4feb49e9c97c766b20750c675a572bcbc92c04804ba7", - "dest-filename": "extglob-2.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", - "sha512": "c688791b55bf3c1d3fdbb95780c4322213f90d263f2e1a02b0ec9981bfba88c991b42c15068e79b8a68ca0462b0c2290856bea122a7964f28073a7853727ff30", - "dest-filename": "extract-zip-1.7.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "sha512": "183854f67b70b8ac865dd6415204c87bebd79d68f47e9a5412d3032f4fa275de52b5af131a91ecb27fdebac03d9ab3ebf6a343ca6e92c406198cdbc29fff5106", - "dest-filename": "extract-zip-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "sha512": "7f7a90f68432f63d808417bf1fd542f75c0b98a042094fe00ce9ca340606e61b303bb04b2a3d3d1dce4760dcfd70623efb19690c22200da8ad56cd3701347ce1", - "dest-filename": "fast-deep-equal-3.1.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "sha512": "96177fc05f8b93df076684c2b6556b687b5f8795d88a32236a55dc93bb1a52db9a9d20f22ccc671e149710326a1f10fb9ac47c0f4b829aa964c23095f31bf01f", - "dest-filename": "fast-json-stable-stringify-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "sha512": "5be28973676620b94fa650ff1f82bd97d2dc00701f3ed3fa058f38b952d743a12f733f4b720df7636cf52156e54fac5d639e0f5d854712ffb45a9abc228eb390", - "dest-filename": "fast-safe-stringify-2.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "sha512": "0b36c297095702e891400954c9fa8f82f3e834a4dc9133c67f0655e1974085570fda587d294c498366f91a413b5db8ca4376099d0f73e83f67b4b02507eb4ff2", - "dest-filename": "faye-websocket-0.11.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "sha1": "25c7c89cb1f9077f8891bbe61d8f390eae256f1e", - "dest-filename": "fd-slicer-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "sha512": "d1bb6723f1fc7f6a5abc630df30e349a548a39f4cad925499817c1795223de4370d2cc30833c91ab47794c954ec287459adbe93de58f37f30271fb961741336f", - "dest-filename": "figgy-pudding-3.5.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", - "sha512": "aa8de096ac936bad58b60e2eef71ae96d8c71a3751ca2837b46ea53edc97fe338426f1e27fdb81d3f3822362a27fa72d17771a4135b61b98329b6d6802c238a7", - "dest-filename": "file-loader-6.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/file-type/-/file-type-16.5.3.tgz", - "sha512": "b95b25ee21611d2398e1b10e34b9532b8ee2007b4db051d63f9604e3125f678ae75fb4b5437c1c7b4f5782a482ec4ff187c35cbff6ded65368ca9ae5507ff1e8", - "dest-filename": "file-type-16.5.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "sha512": "d19b7eb372fb55fd5b8b0599dbd6804625582f1ee23069c4525f71df77db07f8f78d1f35bbf3b62dba8af819b508348d0ca56d27f623c18ed351de5291e2d02f", - "dest-filename": "file-uri-to-path-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz", - "sha512": "cfb3b4212f0f95cdfdad30aaea2ea21f1938dddb983a7f2e14989649ec08ab4070c3544dc9b5474828da866702f3b66a026e0e4ef173973786bb75c0cc6d5cb5", - "dest-filename": "filelist-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", - "sha1": "abf73dfab735d045440abfea2d91f389ebbfa229", - "dest-filename": "filename-reserved-regex-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz", - "sha512": "85c14ac941b9ef2586033bb508cb7f74fcd866ebfe8c02544fce5b2fc9ab5ef35eea15a3eb210711ce0475c82203a677a22d7ff705c97593d7176759360c203a", - "dest-filename": "filenamify-4.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "sha1": "d544811d428f98eb06a63dc402d2403c328c38f7", - "dest-filename": "fill-range-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "sha512": "a8ea3d17e74c5260b62dc6f805b56f9ca2714cf8c29be451a5ee200ee1abce42fb984565fdd8d84aed8e750d8f6b7d36378a2a91283d8abea368b589d94495a5", - "dest-filename": "fill-range-7.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "sha512": "68059c5b9eeec5536b419a855e3213a56dec2144261c61b7a926fd9946a1f4c80c0b835e5a134e94d8d7118ab71e3440bcbe9aad4be2646189b0183acf4cec58", - "dest-filename": "finalhandler-1.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/find-babel-config/-/find-babel-config-1.2.0.tgz", - "sha512": "8c1d821c97aacba6bcdb4b2c8aac2b28c7b20ba9cd766adc8242962569a9a31a44f1129c89825709c5d1ab58760330a8e48e4125e376b641843b784b4ee78f44", - "dest-filename": "find-babel-config-1.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "sha512": "c17655e5e985123aeb89d220103d753a850a2f18988c072aa2dfcd25d0243a1949faf1b3c213807dc1b9397d633fe4b43dc8c49fc6dd309bfe8368f04373a78a", - "dest-filename": "find-cache-dir-3.3.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "sha1": "45d1b7e506c717ddd482775a2b77920a3c0c57a7", - "dest-filename": "find-up-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "sha512": "d720fa4662c8d5705fc6e82f391c25724e9fef9b582fe891d23ab0b0eacec4c672198a94b83849d25e005dd3b5897fc54ecf5c040304935816484c759126f296", - "dest-filename": "find-up-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "sha512": "3e93b001d43f6255d0daf8fc6b787c222a43b98462df071e550406616c4d20d71cab8d009f0ec196c11708c6edd59b7e38b03a16af6cb88a48583d0eb2721297", - "dest-filename": "find-up-4.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "sha512": "61b7df6ab85c89c1213ab9b80adaf074a05d0aecf9efa44b761243b087ef36dc54ba17517add6a65cb0c8ea6de3ed02c78a7409c3c8cfc8c976eeecf44f44b62", - "dest-filename": "findup-sync-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/flora-colossus/-/flora-colossus-1.0.1.tgz", - "sha512": "77ef676bbb7d1721fc8012683434a2dbc984e0d8105461afc50e1a1ed1517ad8f28794978eebacf95e4465ac4598575755e9923abc7496c80497f64c8e739624", - "dest-filename": "flora-colossus-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.7.tgz", - "sha512": "fa16f1a0b6c531b44a0f0a215fc1a44dab5a1aa3ba25bee31b0a40970832d9b233db95ed466eca13324cefa4755a2353e52c19917e18ef94b0068964a6613b89", - "dest-filename": "follow-redirects-1.14.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "sha1": "81068d295a8142ec0ac726c6e2200c30fb6d5e80", - "dest-filename": "for-in-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "sha512": "1131249521a2e6dd10319ba25e803f43abdc9f170b40fe6f76e812a6e0328ba4951a2d9c94f3e9fb180486e31a1c2fb31a09f7d4a776df95b7e5fec7ca491ac3", - "dest-filename": "form-data-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "sha512": "6ee446d1fa41b511d24c238049eea10f6e7cb44b9b16844b6f864d03a3713151cdc3680e7301e8f70c9a6e5ccccce039cfdc40f4bd4a36393f36de8c4fd698a3", - "dest-filename": "forwarded-0.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "sha1": "4290fad27f13e89be7f33799c6bc5a0abfff0d19", - "dest-filename": "fragment-cache-0.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "sha1": "3d8cadd90d976569fa835ab1f8e4b23a105605a7", - "dest-filename": "fresh-0.5.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", - "sha1": "83c60afc58b9c56997007ed1a768b3ab303a44fe", - "dest-filename": "from-0.1.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "sha512": "0b9a306f5e2ef5e2708b328675c85c0d441e16d9521c7b61064f296d7f557353c566b2e899bb9d8c39cd9ecf3c698b250b217a218e52530dd1a33eb14a170421", - "dest-filename": "fs-extra-10.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "sha512": "abaadb743775a369809d0ade3bb6000c8c5ffd6871e001c18917fa77efdc553f21e38b2cfa51e0c5fd457a672a0e742df57ddcb7831c1ebf893069584ac2bb0a", - "dest-filename": "fs-extra-4.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "sha512": "6090da0896449c199c6f0d777ef74033d03034e2703b3ac4e29a8ca81ab99c5884a9752a1f094ae01fb7a54c3a24dbdf48fb57d39c451ed632ff59e2d357860b", - "dest-filename": "fs-extra-7.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "sha512": "ca1950800ea69ce25428eb11505b2025d402be42a1733f2d9591b91c141f45e619cb8e8ec0b718f9989ad26b5d1ec3a8f72fe13fe0b130dd1353d431a0eb46e2", - "dest-filename": "fs-extra-8.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "sha512": "85c8376667a94b7d3fec1485a91be8a370ce310bbb223ab13b99c20edfb333d5d68dbdf75a0ef388d4fe42fa9bb9cdfe816a733b4d89b9b5729361b866fa3539", - "dest-filename": "fs-extra-9.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "sha512": "57f26038b1424be47a55cab4b250ae69e58474d0b7a2e0e524c348b1a707d95b402e2bbd995e0b3eb1dce5c0e5f24e5ac3a27c8f08165a9893a39458866233be", - "dest-filename": "fs-minipass-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "sha1": "b47df53493ef911df75731e70a9ded0189db40c9", - "dest-filename": "fs-write-stream-atomic-1.0.10.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "sha1": "1504ad2523158caa40db4a2787cb01411994ea4f", - "dest-filename": "fs.realpath-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "sha512": "c88a2f033317e3db05f18979f1f482589e6cbd22ee6a26cfc5740914b98139b4ee0abd0c7f52a23e8a4633d3621638980426df69ad8587a6eb790e803554c8d0", - "dest-filename": "function-bind-1.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/galactus/-/galactus-0.2.1.tgz", - "sha1": "cbed2d20a40c1f5679a35908e2b9415733e78db9", - "dest-filename": "galactus-0.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/gauge/-/gauge-4.0.0.tgz", - "sha512": "17cb14e39c90a63423c4a926d5438085fd14fced1a16dfff165ee1b2b355b68fa96ad3078ecedd3c8f6614e19429b86b80a9b44b71235b7b1c305b909964913b", - "dest-filename": "gauge-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "sha512": "de137b35ab2462f3032d0639e609d6dcd43e99eb0401ea53aa583e5446e3ef3cea10c055361cdc19861ea85a3f4e5633e9e42215ca751dcb0264efa71a04bcce", - "dest-filename": "gensync-1.0.0-beta.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "sha512": "0f214fdc133fdd81d340e0942ffc343991d1d25a4a786af1a2d70759ca8d11d9e5b6a1705d57e110143de1e228df801f429a34ac6922e1cc8889fb58d3a87616", - "dest-filename": "get-caller-file-2.0.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "sha512": "91666b9d5338d900a2100d888356c6f338e820c3a0c56c1808478d77063a4effdc392786a5ca17e295c77ca53134a56802b9eb12bd9ef6cae7031c4622b692f5", - "dest-filename": "get-intrinsic-1.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/get-package-info/-/get-package-info-1.0.0.tgz", - "sha1": "6432796563e28113cd9474dbbd00052985a4999c", - "dest-filename": "get-package-info-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", - "sha512": "83f4356934833b11697215c2e22f195afc40d659cfab1fc91ea729230d3f2d7f53f31fc605b8ba62794de6785a2881644fca05b2c7142a00c96317f07d2e90b1", - "dest-filename": "get-port-5.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "sha512": "18c6ade04279d7ad64232d877af2e5af896e363060be68f8d7729a400ee3b7857c078443b1fa4793b590f4656a7d8cb2c7c392fcbeba2a8c7eac944d9252caef", - "dest-filename": "get-stream-4.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "sha512": "9c117e175ac06550aefe9eeb8f3800f986f895f617ae997b6ba56626b53cc05f48d422af3ff4303cd6479ce9706d3918e9dbed148cc5312c905db2e84d03d1a4", - "dest-filename": "get-stream-5.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "sha512": "d8499d1f562f210899a65b4236092e8949f2ba4cf133f47a343257df529edc11b536ae5bd12d8f857e7d50a8bdbd9a4f0d055daa7fb521c680c27cd34f9bc28f", - "dest-filename": "get-symbol-description-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "sha1": "dc15ca1c672387ca76bd37ac0a395ba2042a2c28", - "dest-filename": "get-value-2.0.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "sha1": "9e6af6299d8d3bd2bd40430832bd113df906c5ae", - "dest-filename": "glob-parent-3.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "sha512": "9645f51c95f0c8c729af0ff961465cdacec3ae90221c1db5fd5f84d6b1d4ad5368924bc1e9ba8ccd3d157d5ebff3a64d69bb75935e18388693ee70ef397dc88b", - "dest-filename": "glob-to-regexp-0.4.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "sha512": "9662dfea0b72acfabcb538d29ab3bde3005e41b151dc76cb1dbbb20faf70bb2424226a76856a8c181e3b397eb914190f7df3bae3520ff6359ad73e22bea1b6e9", - "dest-filename": "glob-7.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", - "sha512": "3d3e9745e27e0f4ec9bc6a3140c913eaa8e2fe354d7d7fe1dfae171d9396791cf2eb8b1216bfb1279397ecb2376f830f43374be07f18f0cd31ccfa6c54cc00f1", - "dest-filename": "global-agent-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", - "sha512": "bfc868d834b94620a37ed8f59c3f4d9a77da3b34ddb9ded146755df6414d3a3a996c84a5c790d0f8ead3932c20774748b7ba050af29eb59487a0770fdec0dd88", - "dest-filename": "global-dirs-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "sha512": "b0ace91247f5d46a4e16ec346738f39ade01e146708ce706ef9ecf3efadf87170b15bab4c29b20a4eab1a71b71162086e03b46f7733a5d155b176a0675ebfb6e", - "dest-filename": "global-modules-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "sha512": "3466df989069f71f08c722527753fea2d60af2fa27a0969cb4ea20ad57c5448004635ba48a5f1148a0f3d98a3bc21d688a1979d65febe96e1ea6478a247a8bf0", - "dest-filename": "global-modules-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "sha1": "dbf743c6c14992593c655568cb66ed32c0122ebe", - "dest-filename": "global-prefix-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "sha512": "6b00a89c9495087546343eb1ded98c68a710bf05cb8637649a89b2d96f86a1aba2f183e06205c965ec218377d60be0e57eaa90b9683c030aa31930f69c03d55a", - "dest-filename": "global-prefix-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", - "sha512": "e2cf83c9c896055d1e2b5e3cc2a5f17265406c554faad737b04b5413f19341fb94f34af248b70c8549872921c8eff2c38fcab4803608d6522145107b89e440aa", - "dest-filename": "global-tunnel-ng-2.7.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "sha512": "58e069fc410652222c252a7bc1cbffcba30efa557d5289dc5aac6e15f9bc781c3358d8327c177a1b3f8878a43d8c29b28681fdf60d793374fe41a5471638b354", - "dest-filename": "globals-11.12.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz", - "sha512": "6509d214ed656bc3fb6ae20e4040a79b4b12ba831e692ab4104757301145d9024ee2e35cc1bca14a01b732bb9635b153a822e6c55c063a5ecb67d9004af1dd79", - "dest-filename": "globalthis-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "sha1": "f5a6d70e8395e21c858fb0489d64df02424d506c", - "dest-filename": "globby-6.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/got/-/got-11.8.3.tgz", - "sha512": "ee0b50e4a88f87546d192f7f25bbf5a1f0e9045baae368327c489bf9e8da44126e8ffded405791e7e830e7b7b88a9694f1cfeb0a3bd7e9f910cf69720e51803a", - "dest-filename": "got-11.8.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "sha512": "47b796a6d5ee198c708a3b34795fafde8ebe5c7d48a952bc74938479c41f4e6927730f4057875cc3f0e1c62f0c765a8fb61c71a59ca2ccccf283c453984b06f9", - "dest-filename": "got-9.6.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "sha512": "36d371a947178295b688cadfa927d1ef71a5b77f4af812f05ac3ecf78c91eb7bf8e53d166de8fb79198be5c59fc0482a5e79a3429df36894ec85d456fea0b665", - "dest-filename": "graceful-fs-4.2.9.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", - "sha1": "4cafad76bc62f02fa039b2f94e9a3dd3a391a725", - "dest-filename": "graceful-readlink-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "sha512": "f509f8c81c5e971a21d8ec3ada73fe29afe4327397462f015e745a5307b32cd86a7a59cde3dc4acf817f74f3fc3982f12f1aba243b596f68bd5f39d441b34f4e", - "dest-filename": "handle-thing-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "sha512": "2d2052d8b8db3414dfeb6f3b2446c4cef2607ed905e6a164982a3d8434690332a150e949fa1c7c75de144acd344a0b14370738eb5ec9f648b962d10294cd9f7c", - "dest-filename": "has-bigints-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "sha1": "b5d454dc2199ae225699f3467e5a07f3b955bafd", - "dest-filename": "has-flag-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "sha512": "1329094ff4352a34d672da698080207d23b4b4a56e6548e180caf5ee4a93ba6325e807efdc421295e53ba99533a170c54c01d30c2e0d3a81bf67153712f94c3d", - "dest-filename": "has-flag-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "sha512": "7215daefdacbfd40b62a55f5ee3a37bd11b3d1acda584c79b46a99839a4edcd532109541d7b74caee425cc208e7d4bc496084a726e75f78f81091be2d91bff1b", - "dest-filename": "has-symbols-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "sha512": "9058dc48d867946575932a0693b3972926b01f924e6ff2f351ce70f41d3684e4ced1d7c54636c740abe0d5de9c7f71db7949ad53d55b6d5deacd9d937a1f7b59", - "dest-filename": "has-tostringtag-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "sha1": "e0e6fe6a28cf51138855e086d1691e771de2a8b9", - "dest-filename": "has-unicode-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "sha1": "7b1f58bada62ca827ec0a2078025654845995e1f", - "dest-filename": "has-value-0.3.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "sha1": "18b281da585b1c5c51def24c930ed29a0be6b177", - "dest-filename": "has-value-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "sha1": "6d61de95d91dfca9b9a02089ad384bff8f62b771", - "dest-filename": "has-values-0.1.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "sha1": "95b0b63fec2146619a6fe57fe75628d5a39efe4f", - "dest-filename": "has-values-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "sha512": "52a051aa2e23bbb4fe4ea18d76a00ed0f692546b0318950142f93d79458d191635085183cd884b5a833b25011e9a796f55cbff60499cdb0356f010b6e049d4b3", - "dest-filename": "has-yarn-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "sha512": "7f676f3b4554e8e7a3ed1916246ade8636f33008c5a79fd528fa79b53a56215e091c764ad7f0716c546d7ffb220364964ded3d71a0e656d618cd61086c14b8cf", - "dest-filename": "has-1.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "sha512": "17fd439d418fa29391662d278be0afac28074391721001d12d2029b9858c9ab6d2c28376327ffb93e1a5dfc8099d1ef2c83664e962d7c221a877524e58d0ca1b", - "dest-filename": "he-1.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/hexy/-/hexy-0.2.11.tgz", - "sha512": "722aba845b121bf069b760e6ad926dbfee7ace93dd9eaf8d4388a3105aef78a374646d66865fcb753d4d419f6c7bab72d5f002708e1de2f62a0bdbfc118a47d8", - "dest-filename": "hexy-0.2.11.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "sha512": "7929a6584e5b6532b6368bb8834008df367daecc29ec644aa0a5d2d412d492f3ef88eaace184cdd5d8d022aad7cbd939804b5d2cfcbce898d1c2c34cf6d9c370", - "dest-filename": "homedir-polyfill-1.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "sha512": "9b120301bf4bb26e83a0e27bc47fb9f97e32d4b53fe078b9d0bf42e6c22cc0adc9cd42d2e1bc24d45be374182f611e1bcd3e2db944220b5e451367f91db2ef63", - "dest-filename": "hosted-git-info-2.8.9.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "sha512": "9320ae10e5a326a66e0db447ccbf15f77373421c0807bd681564b2cd5a3e28f648fa99d03cfc6e71d92b399be42d19eb7f9511b1033e209d3d0f0dbd71100b20", - "dest-filename": "hosted-git-info-4.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "sha1": "87774c0949e513f42e84575b3c45681fade2a0b2", - "dest-filename": "hpack.js-2.1.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", - "sha512": "f27c6370171df30a2f6de2b1ee1df04e38b87bafab85a56e3cda4cab05a09c787e37d4e8aac0ace97ced59104f43e52dceca0c01d299b5410da15cd4fc432d64", - "dest-filename": "html-entities-1.4.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/html-loader/-/html-loader-1.3.2.tgz", - "sha512": "0c4914c12774b228cae4f1779115aca588b9e973fb6d3364ca0e58592cc17636920e6bc2b9f7a9e5ce15a5bdcf05fea550bd183ed2f005fcbd7cbd2de6104018", - "dest-filename": "html-loader-1.3.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", - "sha512": "64faf930d39baa757f4fd6a4b213ca6d58323aa2e6cbe071a3b8ee2827d37e78cd9e24c031dcb8873db5610aa8a1f301243da475111aa8f3dd4e1a11efc4e0c6", - "dest-filename": "html-minifier-terser-5.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.5.2.tgz", - "sha512": "ab9a187738ca5083d05633a8b2382f08740ebfd12db7d098607960bc97971b4a90bdd4a88e706ae2f01d401c27d7ec86bde0301c2a1efeb311f3aa335f7f9cd8", - "dest-filename": "html-webpack-plugin-4.5.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-4.1.0.tgz", - "sha512": "e330ead5ad73844e2042ca3f7392cfd4eb6b8584e7717352a6f258b56241b570044cf94c7e2dc814d8c6b906d82ee558e1947440ca9156fa383ddcbd28bc8ff1", - "dest-filename": "htmlparser2-4.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "sha512": "832c8f93aae0a272c51031a879181035a114bdd27892d4e699487f876b7bb3e33ca0fa483f180d00259afba112479ee45ecb70a8f882badd15f0d469730814ec", - "dest-filename": "htmlparser2-6.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "sha512": "71aacf92571487b44e5912bb0afdbb44fb5d858854b1e95afee7b9fe32b38de815bd70ea33620b13d4360469fd259261d60f3b729e7ab2efc58104b37164bc71", - "dest-filename": "http-cache-semantics-4.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "sha1": "fa7168944ab9a519d337cb0bec7284dc3e723d87", - "dest-filename": "http-deceiver-1.2.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "sha1": "8b55680bb4be283a0b5bf4ea2e38580be1d9320d", - "dest-filename": "http-errors-1.6.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "sha512": "2a993d4a6ecd988f911e19e3e8e2160c8d5de9f228140b45b7d44b693311960ffcc38f63b804adb2b060a740e9e0e7717556d121e2a1b4252fa22fd1b8084ee2", - "dest-filename": "http-errors-1.8.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.5.tgz", - "sha512": "c7e2551243b63e833caaaa5b3db38bddca873f07ab7a9ecec332bb032fac3108cacda282a96be3a179b9b6a30ff6d5d65939d3cc08c885783e27df5762e3e13c", - "dest-filename": "http-parser-js-0.5.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "sha512": "934cdd360a964c603a69e211569bdf5686f87cbe767537da7a1ca583463852f4b24af3aafd8f813b23eb82952b03b1f296abd4f2f2191ac46e5e6b29b245744e", - "dest-filename": "http-proxy-agent-4.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", - "sha512": "c876138163103bc56fc0d4b6d9e2cb968024bee9e0b0a74a4cb3bc00995fb5820a35f26bdc62b7ccad1909fcc30c6501b6d74673cc45cb59828adbcd290b42dd", - "dest-filename": "http-proxy-middleware-0.19.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "sha512": "ee6cffef6d406e72702156e7692bf50b3dc09b464b4ff501c240bdd95971857bff93f04141f3367d712540d0b6ec1546af4bb0529a6560f40cf4b9da04c47935", - "dest-filename": "http-proxy-1.18.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "sha512": "57edb7b0332bd765a7cfb893703789af73ba008c659ef4ff6e66800003ff5dd6b7e42f74a7de7df69d05d5e1d1fcdd4a20b592a1654088e3058c105769748cc6", - "dest-filename": "http2-wrapper-1.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "sha512": "124626e4170a50689dbb1cd2b77129a64a3e3e2356344a5ae324a4f6f4c2eb00ec4095bdac749af94846349a11629edbcfa1edd5e69121ae90689a8ee6b0856c", - "dest-filename": "https-proxy-agent-5.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "sha1": "c46e3159a293f6b896da29316d8b6fe8bb79bbed", - "dest-filename": "humanize-ms-1.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "sha512": "bf73179d901cbe7cb091350466898801cb657bb4575de79d391df5c3097b565ca85cee108bd6abbd27a73505a77b54dc4708422f51f02c8db56c4a9da63f3fac", - "dest-filename": "iconv-lite-0.4.24.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "sha512": "e1f0a4efdc2c84c773329dab1f4eaa5ab244e22a25a8b842507f8e8ae22053ef91074fbde0d9432fcd5ab4eec65f9e6e50ab9ea34b711cdb6f13223a0fb59d33", - "dest-filename": "iconv-lite-0.6.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", - "sha512": "e1a16aef0bd6c8c1ca831b07f1042d1a9bdb01209ff9e337c0f44b23a47e3200274c267a49362c46fb6d2ef4562b435f89fe69885dfde12b771de2436a58c63c", - "dest-filename": "icss-utils-4.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "sha512": "75ccaa843bd7d42e3a95765c56a0a92be16d31141574830debf0dfe63b36ce8b94b2a1bb23ab05c62b480beeca60adbd29d5ce2c776ef732f8b059e85509ea68", - "dest-filename": "ieee754-1.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "sha1": "c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501", - "dest-filename": "iferr-0.1.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "sha1": "05698e3d45c88e8d7e9d92cb0584e77f096f3e43", - "dest-filename": "import-lazy-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "sha512": "6fab34e26dcefacdc21926ea0c8c8fe11e9a03001e62556af7e59459ea7a8876bc11345ff727a2d54e3c0b93267c9995f4088b61804a3ccabf5befd646942609", - "dest-filename": "import-local-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "sha1": "9218b9b2b928a238b13dc4fb6b6d576f231453ea", - "dest-filename": "imurmurhash-0.1.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "sha512": "11d0c366ee00d8ec882bb2ebff6cc6fb0e6399bba4d435419c4c11110bc1ceca412640846d16bc1b153596085871a1890a745689b8c35e5abbefd5f5ff2e71c2", - "dest-filename": "indent-string-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "sha512": "202963f97cfde3e77b8ab1f9a91c9f2689ce75f4f3b836a27c4e993d67f1d0dd3efc04d909bb933eada9ac5979dbabab91077dd16c942888750df050da1333f4", - "dest-filename": "infer-owner-1.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "sha1": "49bd6331d7d02d0c09bc910a1075ba8165b56df9", - "dest-filename": "inflight-1.0.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "sha1": "633c2c83e3da42a502f52466022480f4208261de", - "dest-filename": "inherits-2.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "sha512": "93fbc6697e3f6256b75b3c8c0af4d039761e207bea38ab67a8176ecd31e9ce9419cc0b2428c859d8af849c189233dcc64a820578ca572b16b8758799210a9ec1", - "dest-filename": "inherits-2.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "sha512": "255ff2ba0576bb35b988c4528990320ed41dfa7c6d5278de2edd1a70d770f7c90a2ebbee455c81f34b6c444384ef2bc65606a5859e913570a61079142812b17b", - "dest-filename": "ini-1.3.8.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "sha512": "ecf9c5e283770af645db7003840e7045a60442927cab281291bb535d605e5d65e61154572bed484dc8875b01e1b23bf54e65b432069c22fea1122e695f935074", - "dest-filename": "ini-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", - "sha512": "4b5cc1a350facdcb32b82e8f326639fb9e583082d0f5abfc968b4cc78e3b06ae92020a3fb032bacbab942a6b98856ede69c9c88457ec3e608d61d0f3b279c30a", - "dest-filename": "internal-ip-4.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "sha512": "3b40c1d490bfb0fc9997b708a3bf27e5d47b7944b0c2960f8974614f337165500c52e07cbe59d11722f176b553a24b3a5cf2d59c57dbcda55de562e386083ebc", - "dest-filename": "internal-slot-1.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "sha512": "6a013841f0762e4a7db880a7ec102aa2c730e1264ff644c4da1c62148de304f99725f76a89a8536d4b8a1ac3283761ada8bf40c61622a00715be0b1bd47bd16c", - "dest-filename": "interpret-1.4.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "sha1": "fa78bf5d2e6913c911ce9f819ee5146bb6d844e9", - "dest-filename": "ip-regex-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "sha1": "bdded70114290828c0a039e72ef25f5aaec4354a", - "dest-filename": "ip-1.1.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "sha512": "d0a23feb4ef1a31493a07ec68cdd457d26cba14d3e6ed4e2723b1049642587f859ca437c2a998c7fbb98c0f5b747e6a467a47fc35f199574870585e26143cede", - "dest-filename": "ipaddr.js-1.9.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", - "sha512": "a2998d217eee1674bde8db4f9a1590810c7afcd60582c51760c96571fcf058a50cc1fa3c924bb54ef13a86435c1fe435b6ce5c315aec63b8f46f15d00dc8aef5", - "dest-filename": "is-absolute-url-3.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "sha1": "a9e12cb3ae8d876727eeef3843f8a0897b5c98d6", - "dest-filename": "is-accessor-descriptor-0.1.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "sha512": "9b98671d391c56c3dfab1dc02a5cadb483dbec9f97ca41ef24fd81f5b6438e584b22812ae17a0aeb8560edba199555982ba2d463de1d60f104ecb87466464a71", - "dest-filename": "is-accessor-descriptor-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "sha512": "f10ec40118f31272a9b7f3c20fb7b5720512d1ae97f2ee6d75288ca978688ce76857d4ec32c88efbd54b0b9bc098ef0deff1a65e7ef28d1f2a9c0e9b5401337c", - "dest-filename": "is-arguments-1.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "sha1": "77c99840527aa8ecb1a8ba697b80645a7a926a9d", - "dest-filename": "is-arrayish-0.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "sha512": "cc1f42aee31a9a3ca6f358b6259dd4327e783ca1ac433b097a8eb1bcddc7249e0202c40d07a891bada764e8efb39f08dba8c6ca6c221cda3e83b5cf20848453a", - "dest-filename": "is-bigint-1.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "sha1": "75f16642b480f187a711c814161fd3a4a7655898", - "dest-filename": "is-binary-path-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "sha512": "80361a2872669e3e1a5b1ca3e981f25d5a5d41ac2d54b1d4e5c6fe7b3b4f19ccdfe9c8ee4ddc2f7b964811f817a87e1ee7b027d43d4029ff02677918ad046a60", - "dest-filename": "is-boolean-object-1.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "sha512": "35c7402f0a579139b966fbdb93ba303944af56f04a0e028fe7f7b07d71339e64057ece194666a739e2814e34558e46b7405a0de9727ef45dd44aa7c7a93694e7", - "dest-filename": "is-buffer-1.1.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "sha512": "9ecbb0b7165f317ebb3abca5f4b090faea670b4674060a709eda52f3d9b51ff4cb174ccd7f37cb315ffd59affa319b23d1a72912300ed0a175c53e9974b97de7", - "dest-filename": "is-callable-1.2.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "sha512": "61f253eeb929401d2ea5db1d1cb196aef84125f71fccd35ac180cd232417273d0856219fef93bc1013ca49dbf0dab17e2c60ac5f8159f2d72bddbd7d2dc66ae3", - "dest-filename": "is-ci-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", - "sha512": "658bc282b79fc2aa10eb24f26146d0bbae07b084d9dcd7ca5f597368461d9130dc7cacf3088ff0b6145160a91d8c72855603625ca00a9bae59a35a64d9ab3f41", - "dest-filename": "is-ci-3.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "sha512": "49d34252cdbce21af8d2115314fea5d087d9fd14ab317177aa0a111dddffefdba7513beb14efc9a17c241a6fb927f39edc4fdbe46b271b7df4b94360469bb53c", - "dest-filename": "is-core-module-2.8.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "sha1": "0b5ee648388e2c860282e793f1856fec3f301b56", - "dest-filename": "is-data-descriptor-0.1.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "sha512": "8db457cb5166b40a028d0915988558c2ebaa0c551b68e7838e679dd6d3863ebb0c86d240e2b0fdb64800d05d6a2778111515dc1d856475e68fe74439ac4fe32d", - "dest-filename": "is-data-descriptor-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "sha512": "f5841a4b1b00892c1cbd2df7301937c130959d62be1e117c5594768d1c5e84cd7a41c54e747a8f9f854f1e644ae254abdfc9fd26b8aeac89cb70ff74c6c60d7d", - "dest-filename": "is-date-object-1.0.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "sha512": "6af0d8af4481dc3c0ef73b0ca2fd20282112158a829c4e21abfe33dd375496e904cb9b7d0b4611abb1cbaec379d8d01ca9729a7a97820f49fe0746ab9d51b71e", - "dest-filename": "is-descriptor-0.1.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "sha512": "d9e8ace56a90195ee97a8a03c8b98d10f52ba6cf7e4975f973da4bdf1101fb87bd1e71ae0daee607b907c47c3809ba92f64d53da1387de688bf27f16b62615b6", - "dest-filename": "is-descriptor-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "sha512": "17e8b604ab05ac7eba89a505734c280fcb0bcbc81eb64c13c2d3818efb39e82c780a024378a41ea9fcfcc0062249bf093a9ad68471f9a7becf6e6602bef52e5d", - "dest-filename": "is-docker-2.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "sha1": "62b110e289a471418e3ec36a617d472e301dfc89", - "dest-filename": "is-extendable-0.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "sha512": "6ab9d73314f5861a0aa3d9352d976694dc897430dfcb6bf47d78c5966a24e3e8bcba5ffa5a56d581ef5b84cef83a934f40f306513a03b73f8a5dad4f9de27138", - "dest-filename": "is-extendable-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "sha1": "a88c02535791f02ed37c76a1b9ea9773c833f8c2", - "dest-filename": "is-extglob-2.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "sha1": "a3b30a5c4f199183167aaab93beefae3ddfb654f", - "dest-filename": "is-fullwidth-code-point-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "sha512": "cf29a6e7ebbeb02b125b20fda8d69e8d5dc316f84229c94a762cd868952e1c0f3744b8dbee74ae1a775d0871afd2193e298ec130096c59e2b851e83a115e9742", - "dest-filename": "is-fullwidth-code-point-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "sha1": "7ba5ae24217804ac70707b96922567486cc3e84a", - "dest-filename": "is-glob-3.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "sha512": "c5e9526b21c7dfa66013b6568658bba56df884d6cd97c3a3bf92959a4243e2105d0f7b61f137e4f6f61ab0b33e99758e6611648197f184b4a7af046be1e9524a", - "dest-filename": "is-glob-4.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "sha512": "8b01aa3b7276d5a692902ee35a71cffdd89f6b3c12ed215e22ac6feb012d2d4f18e4a9731538f2a9c4884f477cb38f9d0e12b2b6c93d3c96760644b9799c1045", - "dest-filename": "is-installed-globally-0.4.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "sha1": "3d9877899e6a53efc0160504cde15f82e6f061d5", - "dest-filename": "is-lambda-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "sha512": "76a26f6ab2dac17b056cd0de256ef3033f08b49f5c776f18b9fbae1738741bca4d1e324c9d8d3c0efeec617dae17952940ec2278078e13111801659fbbb65950", - "dest-filename": "is-negative-zero-2.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", - "sha512": "596feb40b39acd4abe493fdb080541a7fda83044562ec47b3ab2b2b74e7674d0e4e031dc0c4d3fed04972139668be541715d770df21bcac1b7b59266e517dd04", - "dest-filename": "is-npm-5.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "sha512": "6c454eaa245cbe8df33b5f86da554ccbe8249049bd621edc0cc46eb0a2aee5924a3d46122702024ca66b34a1c0d846d23f44eed3ee81fde9ac60d1d9ca7e8af2", - "dest-filename": "is-number-object-1.0.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "sha1": "24fd6201a4782cf50561c810276afc7d12d71195", - "dest-filename": "is-number-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "sha512": "e350a27e483a7bc4f2952a5db53a5e2d532abd20445734edb47bc4443ef8d7ea6767c00dbf4d34e0c44be3740a3c394af5c1af369e8d6566540656c65d8c719e", - "dest-filename": "is-number-7.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "sha512": "76ba831b771b733c7110946839770e8ed769d49fe5ca9d66367d316b39d1b3cfa6b8186041cae76eca68c795f97cec341e73276df0f3be710c12da83109128f3", - "dest-filename": "is-obj-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "sha512": "c3de366d372287c7dd24f266407173912efa3443fc2b3cef9b0f76717b1acdbf229edc0ba8f89b3cf7577f800d74a577ad832eb90606216b6fcfd262941dcd15", - "dest-filename": "is-path-cwd-2.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", - "sha512": "acda1c5c7822a4efabbe73fa764df3236d11a4eb6b00cfe4cdb076e7c530e415abdd3a578bceb5cb38e8d7a0e7e21528c74ee2c3903278c2c75acba3923cef45", - "dest-filename": "is-path-in-cwd-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", - "sha512": "c22ca14f37c35acbf0016e77381585e73baf68e1a567a3f063101b3d50e1a66fa0334f712901a306affcb98375d9a0ef3319c09eadddc53ca84a844d9a0e5816", - "dest-filename": "is-path-inside-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "sha512": "15de200016fec9c18098aa2ef1e31fb42ba94a2af9951c6a7f8683fef774703daa7381cbd3b3a309eb8732bf11a380a831a782283074fc40813955a34f052f3d", - "dest-filename": "is-path-inside-3.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "sha1": "71a50c8429dfca773c92a390a4a03b39fcd51d3e", - "dest-filename": "is-plain-obj-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "sha512": "8793e98179168ad737f0104c61ac1360c5891c564956706ab85139ef11698c1f29245885ea067e6d4f96c88ff2a9788547999d2ec81835a3def2e6a8e94bfd3a", - "dest-filename": "is-plain-object-2.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "sha512": "92f45dc43b31663873517d3b6672f27734b54d4fd32654d41c763860b2fcededfba14038f437e42ea832f958c5a1ca30cb6f5c2af7128aefa422fef6f234d356", - "dest-filename": "is-regex-1.1.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "sha512": "214d0d9b2927619374ac285c2a144ed57f0b633e48b23fc5b2a87c3493927fe37f842393c32dbd177d8893b6be42ccc4eb721dbe6c1d4cf0dde9c679a60e1cc0", - "dest-filename": "is-shared-array-buffer-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "sha1": "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44", - "dest-filename": "is-stream-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "sha512": "b44d945f38af8deea87cf5bb976ddc8c338c6b4f606fbc6502a1ba8c6e5e8fab8f577d939563f734a3e282d68678736ef5fa2171c458bc889931f38e9ce614b6", - "dest-filename": "is-string-1.0.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "sha512": "0bf08f06a2969ef75cc6a200471c8e878bf551410e087a600dad16620a4a0c532ccdcacf71f7e0e6e8704a03c22c3d965b19aaea2b22b33f3bb734f4d6db8686", - "dest-filename": "is-symbol-1.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "sha1": "e479c80858df0c1b11ddda6940f96011fcda4a9a", - "dest-filename": "is-typedarray-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "sha512": "a9cb6cb8b666210d3ebd248c7e856fc857b6f86484be7999d9ecd3ba9d5206c7bdfadc0209e89a97a1048b735cd8a15c7fafaacf61413e78d7b24f3184a49a3d", - "dest-filename": "is-weakref-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "sha512": "7972b55089ead9b3e68f25fa7b754723330ba1b73827de22e005a7f87a6adce5392a4ad10bde8e01c4773d127fa46bba9bc4d19c11cff5d917415b13fc239520", - "dest-filename": "is-windows-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "sha1": "1f16e4aa22b04d1336b66188a66af3c600c3a66d", - "dest-filename": "is-wsl-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "sha512": "7cacc0adad2b18951407018180d90766e4e865c9fe4ed5c7a5e0a09a430930c631d6c40361a092ca32414826b69c7d431a6eecde7d68067a21a154c168decbc3", - "dest-filename": "is-wsl-2.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "sha512": "56349e6ff9479a4a3277caf23d520abce0a7e03d64a0ca98fafab28e351f737c722ad3f87583b1338e2c66b9ea412cd276cdf1c8ead44cb4c2f4b5425602e783", - "dest-filename": "is-yarn-global-0.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "sha1": "bb935d48582cba168c06834957a54a3e07124f11", - "dest-filename": "isarray-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", - "sha512": "f1c2412f9b53776392d1d3388f3d3bc107798347420aa2215313c81ad65f6b92fa85696f5793074c84f2fc3040b05f8e7b62d2d57de4ac1521370686516a56c7", - "dest-filename": "isbinaryfile-3.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz", - "sha512": "e7787a5c59e2abbed8756faca6846b79b8749a7993c513d395cb8802b3b9ee598c76ae2e04a14a69e4e39dbf76a185ab4a7fcb54bf8b4fe1daa76b45423f15fb", - "dest-filename": "isbinaryfile-4.0.8.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "sha1": "e8fbf374dc556ff8947a10dcb0572d633f2cfa10", - "dest-filename": "isexe-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "sha1": "f065561096a3f1da2ef46272f815c840d87e0c89", - "dest-filename": "isobject-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "sha1": "4e431e92b11a9731636aa1f9c8d1ccbcfdab78df", - "dest-filename": "isobject-3.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz", - "sha512": "78ba4acab7c6de6cef184d83bbc5683db792911af2d3ddfeb723637586816c94bdbf5ee49c899818d5d009457480bc50b45f369b713c8916ffc1d49064ba2aec", - "dest-filename": "jake-10.8.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.4.6.tgz", - "sha512": "ce3681d2c8742dbd775723ec77dd95ec792a17ac8a447f6f9b7debc01b7bacf62ba50bd2d670af948cb6a4809b2ad6be6635a78182cd9f87022b89f26648d2ff", - "dest-filename": "jest-diff-27.4.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz", - "sha512": "b64f68fa57794d6ab8d4390ad782f8c28c78b360fd32d4e929a015cd77ebe4250a9b964ad84c5c685134aa5b365bbd7313fe91d93c71acaf70dabeacbc014305", - "dest-filename": "jest-get-type-27.4.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.2.5.tgz", - "sha512": "a8d47f921e9bcf40f2bf79baf029368357cb5b92a548e50d705421f3b5571d9c1673f818e97c272a87f1efa432b73df1e4b0d64f4f7fdbec979dd4e4686e1a5a", - "dest-filename": "jest-matcher-utils-27.2.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.4.6.tgz", - "sha512": "5c3e0f293dd69f52d09d102aed9b13234551b8473d3ab08f1623b55cbedb7ed4c699f345d03704c0c1d182a8aeecd19ff19a190d11291ab0a7883923b7bf566c", - "dest-filename": "jest-matcher-utils-27.4.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.6.tgz", - "sha512": "d29e6cceb88553453be1ccd14858c7e91c92ed46080249ff9edc0cb8ec13196ad020e8793735d7aeaef62cea8890928abc56cfabe6f264ab81cfbf1f8c111104", - "dest-filename": "jest-message-util-27.4.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.4.0.tgz", - "sha512": "59e0a9329367a8960c4283a39b59d3b6c81b4785c7024d6ed34a83a0d050a3290cdbcd3efd39a0039421e60882d5e732e9ae5de216d2b07ce906dbb9caf95b12", - "dest-filename": "jest-regex-util-27.4.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz", - "sha512": "fddb12994908cb910119fbff2238ea985c6b34052904445f1acd681d13b20fbcb18c6ff0fadd063890d7f0ed64df6c9299defe6b92219c9536a9015c2789f5bf", - "dest-filename": "jest-worker-25.5.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.6.tgz", - "sha512": "80758917fe978b90931b9402bd13abe86726a48a8d6290c9c9cf00d61fc3c97a87d6d0fa4a74423347775399ac577d43d8b07f53e13433e5b8a32bca578e2837", - "dest-filename": "jest-worker-27.4.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.3.tgz", - "sha512": "aeed4758a7a4f2872dbd41c51ef139673435c80b09988bd17465af4a8295e765cacaec98038dfb4160edb574fc7995c349bb8ca4794bccf0d950f77a89d233f9", - "dest-filename": "jpeg-js-0.4.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "sha512": "45d2547e5704ddc5332a232a420b02bb4e853eef5474824ed1b7986cf84737893a6a9809b627dca02b53f5b7313a9601b690f690233a49bce0e026aeb16fcf29", - "dest-filename": "js-tokens-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "sha512": "a24307ece5d727b62b37d3a4dff497ae7bb8897f723a4fb6e67a97e22992da7a6ebd36039a8fd0119a2ac199186880e4de356f04e4ce20480485a2ceca7052f6", - "dest-filename": "js-yaml-3.14.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "sha512": "c29c59b3d368c596891122462194f20c4698a65d0529203e141f5a262c9e98a84cc24c5083ade1e13d4a2605061e94ea3c33517269982ee82b46326506d5af44", - "dest-filename": "js-yaml-4.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/jsbi/-/jsbi-2.0.5.tgz", - "sha512": "4f33bfeb61f179bdba40c6f8206948ff95fe40bafd52aa7514f930a76f8a388096f90faf4ae163eb573ca644fac009ece1670ae7a5fb0a64878497831963aac5", - "dest-filename": "jsbi-2.0.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "sha1": "e7dee66e35d6fc16f710fe91d5cf69f70f08911d", - "dest-filename": "jsesc-0.5.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "sha512": "398bbb5c4ce39024370b93ecdd0219b107cda6aa09c99640f7dc1df5a59dd39342b42e6958e91284ada690be875d047afc2cb695b35d3e5641a6e4075c4eb780", - "dest-filename": "jsesc-2.5.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "sha1": "5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898", - "dest-filename": "json-buffer-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "sha512": "e1b57905f4769aa7d04c99be579b4f3dd7fe669ba1888bd3b8007983c91cad7399a534ff430c15456072c17d68cebea512e3dd6c7c70689966f46ea6236b1f49", - "dest-filename": "json-buffer-3.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "sha512": "9abab264a7d7e4484bee1bea715e961b5c988e78deb980f30e185c00052babc3e8f3934140124ff990d44fbe6a650f7c22452806a76413192e90e53b4ecdb0af", - "dest-filename": "json-parse-better-errors-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "sha512": "c5b6c21f9742614e53f0b704861ba1ec727cf075ee5b7aac237634cce64529f6441dca5688753f271ce4eb6f41aec69bfe63221d0b62f7030ffbce3944f7b756", - "dest-filename": "json-schema-traverse-0.4.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "sha512": "34cf3f3fd9f75e35e12199f594b86415a0024ce5114178d6855e0103f4673aff31be0aadaa9017f483b89914314b1d51968e2dab37aa6f4b0e96bb9a3b2dddba", - "dest-filename": "json-schema-traverse-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.3.tgz", - "sha512": "ec313c9a91befdf570f9d4e98dbc67c78ed368c9c37ce2358f07edf60d55c9b96d64276ec9140f24fbdcfb3cca63d58f1f184f59ccf216e61ae88f0cc38894e4", - "dest-filename": "json-schema-typed-7.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "sha1": "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb", - "dest-filename": "json-stringify-safe-5.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", - "sha512": "73bffc99b52c2a28006cb903e41d35d012b80fd2d99bb035a4d22d904c2251946920deba7b1bbf7bb6105b2b06ba7f9344a689a7c3217a633e5647d6bf8d9a08", - "dest-filename": "json3-3.3.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "sha1": "1eade7acc012034ad84e2396767ead9fa5495821", - "dest-filename": "json5-0.5.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "sha512": "68a4b85908cf7a7471890b02f7730d7e3c7e9db1783c0758ce677fd49223f07633a9f6eef3a6de4ee3605c3ccf9275a4d27d2e0119727b0668e2cfbe112dfa3b", - "dest-filename": "json5-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "sha512": "7fef1c95dbbb5ffcbb44026eacc10999da0a5c607f5f9e74c3636bded4db7b32fa470104fe231c9beb599d77a866d2ae3aae9fb7cf82ab3124ac8831d5f3e840", - "dest-filename": "json5-2.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/jsonc/-/jsonc-2.0.0.tgz", - "sha512": "076f356cb093d9344c41af80414418e4019ca9239704e29a6063f8c03ce803ff90b3051f37cb0e0de92d6cf12cf416aaecb18aba7e6341b345a73c06b9560a87", - "dest-filename": "jsonc-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "sha1": "8771aae0799b64076b76640fca058f9c10e33ecb", - "dest-filename": "jsonfile-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "sha512": "e5d8277563ab8984a6e5c9d86893616a52cd0ca3aa170c8307faebd44f59b067221af28fb3c476c5818269cb9fdf3e8ad58283cf5f367ddf9f637727de932a5d", - "dest-filename": "jsonfile-6.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz", - "sha512": "a41c5c0772c573c41581d820bd95b27b2b3e867acd5a0e0e719214ff55f9f64e6341d2c1942b1819141acf6df84aaa112d30a0307d347d8d314491fe17d3044d", - "dest-filename": "junk-3.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "sha512": "f72909ff8e9237ff4a3ccfec89c87343b3af5f218360a19368394a306080960d942bc291cb88dbd1df2c15cfb44edd186274e1abc5f645980283be113f181c54", - "dest-filename": "keyv-3.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/keyv/-/keyv-4.0.5.tgz", - "sha512": "e77d699062ea57704c834783aaa2452344759a42b5366e7120fda633a91e3f93fc59f16d0a483620ec29953526946a1380883dc90619fe4762861cfcf571f7bc", - "dest-filename": "keyv-4.0.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", - "sha512": "2f3aad2ca954c22ac453297f9e2722ad598d88fbd8b3b9799fcc0e3cfedfc8956950f92f0a75bfbee8971a9ca51949673c39c1ef7d75ac047302ddcc86cc298e", - "dest-filename": "killable-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "sha1": "31ea21a734bab9bbb0f32466d893aea51e4a3c64", - "dest-filename": "kind-of-3.2.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "sha1": "20813df3d712928b207378691a45066fae72dd57", - "dest-filename": "kind-of-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "sha512": "346104ae71fa176bd4b970e1f8e95b70a5bbff039c7dd447699ed55ada82ced7c7ae2ffef982a63f9d4e7567863eea8239b6ba924d8e4dee5dd365664c1f343f", - "dest-filename": "kind-of-5.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "sha512": "75c4b5ba5fbdb66783f794fec76f3f7a12e077d98435adcbb2f0d3b739b7bf20443bb44fa6dbc00feb78e165576948d305172ba45785942f160abb94478e7a87", - "dest-filename": "kind-of-6.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/lastfm/-/lastfm-0.8.4.tgz", - "sha1": "4dddf08297a6fa23f84d4827052a0d282fe99688", - "dest-filename": "lastfm-0.8.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/lastfmapi/-/lastfmapi-0.1.1.tgz", - "sha1": "ce336dcf7cc81820c22dc40247c97b31133486fa", - "dest-filename": "lastfmapi-0.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "sha512": "c1e4feaf491391141d09d60236d90cc165d04cc12cc0aac50649b872440e315861aa120c235513da1323fb58a28088604999b98139ab45704da06520693635c4", - "dest-filename": "latest-version-5.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.5.tgz", - "sha512": "d3f06718209fc943240697838168a16a720017d2666611c1814844ab3bdff9a7613462e83fa4da888e6817ca326f7238e4ff8f727aea8a149fd353349741b9f9", - "dest-filename": "lazy-val-1.0.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "sha1": "7947e42149af80d696cbf797bcaabcfe1fe29ca8", - "dest-filename": "load-json-file-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", - "sha512": "f76fa1bafc4cbd894ccccb748883ae91cc18045a64609769976c6c67b2eb95ac8eec4f123aff8925410ad7b07f74920700e2cc7e1d9d659fd8d7c5a0986b5837", - "dest-filename": "loader-runner-4.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "sha512": "a87d1648c06d9ffa07bb08f2fcdb9c1206f1e5d6f1c67c6ea7db383d55c95031d905063eb3435603dac97f9dd1067419c5f721edeb94ba2ee1a6800fbc02d974", - "dest-filename": "loader-utils-1.4.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "sha512": "4cce7b55e1e9b6fe7af5dfc62a1e9301877329b9700cd8ae98e7641677a38c3d17c131fcecaf74c373bb022251a9d4285f282f8b55504c94cb1a1265ed6a80ec", - "dest-filename": "loader-utils-2.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "sha1": "2b568b265eec944c6d9c0de9c3dbbbca0354cd8e", - "dest-filename": "locate-path-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "sha512": "ec03bbe3cc169c884da80b9ab72d995879101d148d7cf548b0f21fc043963b6d8099aa15ad66af94e70c4799f34cb358be9dfa5f6db4fe669a46cade7351bae4", - "dest-filename": "locate-path-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "sha512": "b7b870f6923e5afbb03495f0939cd51e9ca122ace0daa4e592524e7f4995c4649b7b7169d9589e65c76e3588da2c3a32ea9f6e1a94041961bced6a4c2a536af2", - "dest-filename": "locate-path-5.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "sha1": "82d79bff30a67c4005ffd5e2515300ad9ca4d7af", - "dest-filename": "lodash.debounce-4.0.8.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", - "sha1": "64762c48618082518ac3df4ccf5d5886dae20347", - "dest-filename": "lodash.escaperegexp-4.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "sha1": "2d177f652fa31e939b4438d5341499dfa3825e99", - "dest-filename": "lodash.get-4.4.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "sha1": "415c4478f2bcc30120c22ce10ed3226f7d3e18e0", - "dest-filename": "lodash.isequal-4.5.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "sha512": "bf690311ee7b95e713ba568322e3533f2dd1cb880b189e99d4edef13592b81764daec43e2c54c61d5c558dc5cfb35ecb85b65519e74026ff17675b6f8f916f4a", - "dest-filename": "lodash-4.17.21.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.0.tgz", - "sha512": "1ba03f9c92d18163aebb074db80ea4a28bdf115d58a6aa801b8a5152515acf78e3d90359f0ce2f06a9d503e1c14e653f00c354b653ac3264a917a3723a3ced6c", - "dest-filename": "loglevel-1.8.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "sha512": "5ec3fe2a14227f86e35f591bb928b248914d01e84dc602dbea13d1189f50b14afc6a31e4b9719dac79855135145e10f0557d91e5b63824d644c1b52232157e30", - "dest-filename": "long-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "sha512": "972bb13c6aff59f86b95e9b608bfd472751cd7372a280226043cee918ed8e45ff242235d928ebe7d12debe5c351e03324b0edfeb5d54218e34f04b71452a0add", - "dest-filename": "loose-envify-1.4.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "sha512": "edf9b797734017d59f37a5b724e99fe5daf0a55a97efc26da0627703a5b46ba66795d338d70d9f5790f8f74a6c2854e931db3c4c9b1efde1cb145b0d1c78c782", - "dest-filename": "lower-case-2.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "sha512": "1b62e3eb5b570e754514e8bc55976cf92a108ed402ddd82890a7431b69939b5b71e26e743541c1399481c10407cb2d15d760342531b889c7d9407fb13f287c54", - "dest-filename": "lowercase-keys-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "sha512": "b6a357ad2efca0c384ef734cc4ae0430b42c428c167fc8caa281fd83bc4f6af453ef4e91e9b91027a0d8d937bb42e91a66cba5c5adf4c10edb934a66e1788798", - "dest-filename": "lowercase-keys-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "sha512": "2a9340450037230bfe8d3034bad51555bae1f8996baf516fd1ee7a186cc014e5cdedd93f16f89a0d6f0b1e62b9d8395c1f858fda7ea023cbcdd5a7ac045828f7", - "dest-filename": "lru-cache-5.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "sha512": "268e9d274e029928eece7c09492de951e5a677f1f47df4e59175e0c198be7aad540a6a90c0287e78bb183980b063df758b615a878875044302c78a938466ec88", - "dest-filename": "lru-cache-6.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", - "sha1": "b5c8351b9464cbd750335a79650a0ec0e56118dd", - "dest-filename": "lru_map-0.3.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "sha512": "83715e3f6d0b3708402dbffa0b3e837781769e0cded23cfbb5bceb0f6c0057ea3d15e3477b8acbfb22b699dd09fdf8927f5b1ad400e15ea8b9fa857038cfde1b", - "dest-filename": "make-dir-3.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "sha512": "fb3a29c03cbb0cd9279b03d0a657a6e650195ff7823b34af48d35c48a9b9795c1390e073a24b447d7b1af4bdb727f188461c51b1ac7390f121ac91291361781a", - "dest-filename": "make-fetch-happen-9.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "sha1": "c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf", - "dest-filename": "map-cache-0.2.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", - "sha1": "e56aa94c4c8055a16404a0674b78f215f7c8e194", - "dest-filename": "map-stream-0.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "sha1": "ecdca8f13144e660f1b5bd41f12f3479d98dfb8f", - "dest-filename": "map-visit-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", - "sha512": "3a478368067f6d00b1785028ccce793ca70a534c8930f1a27cbc15e108238adbbee4ca007d240de25b0b25e5d9d5bf30d31fbf12675ae8c6605d2d63bec6a99e", - "dest-filename": "matcher-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "sha1": "8710d7af0aa626f8fffa1ce00168545263255748", - "dest-filename": "media-typer-0.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", - "sha512": "6a2b27ac33f818d7b4e9470a1675796df30d3c1530e23b0b19a5b059f9c7defd361a706e5d7d8c0959f945bad6a348f7a5ccd48a561b96aedf43b370dade572b", - "dest-filename": "media-typer-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "sha1": "3a9a20b8462523e447cfbc7e8bb80ed667bfc552", - "dest-filename": "memory-fs-0.4.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "sha512": "8c0d2b754e4aa10302d1eea9a68351b69a7abe316aebe358eebf21cb09c2ed5fb55e3fccb47c0621b07541a2bf76e9f28d6b5e2739a4a5dee8a1e5a0d744fb18", - "dest-filename": "memory-fs-0.5.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "sha1": "b00aaa556dd8b44568150ec9d1b953f3f90cbb61", - "dest-filename": "merge-descriptors-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "sha512": "69bbffa8e72e3df9375113df0f39995352ca9aec3c913fb49c81ef2ab2a016bc227e897f76859c740e19aac590f0436b14a91debb31fa68fcba2f6c852c6eddf", - "dest-filename": "merge-stream-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "sha1": "5529a4d67654134edcc5266656835b0f851afcee", - "dest-filename": "methods-1.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "sha512": "3168a4825f67f4cdf0f9ba6c6371def0bfb0f5e17ddf7f31465f0800ee6f8838b3c12cf3885132533a36c6bae5a01eb80036d37fcb80f2f46aaadb434ce99c72", - "dest-filename": "micromatch-3.1.10.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "sha512": "a519b3c3f5d47305c6a43f5a23dabfd173b02cdca08c44c9f32d1aa34c1daa9aebcc36b8627c4b733edf41166bf2fa21f15d7490684005b35c1d5939c07816c2", - "dest-filename": "micromatch-4.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "sha512": "e72f00e7a8e0ed7550c7699bbf596ee3d351e1da24467859613b4bf8a19f69adbbbaae294935e4c10905265e29911332345cff12d6034a48a2107c7717b50dea", - "dest-filename": "mime-db-1.51.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "sha512": "e9c3faf765b0188b3d5d774e3b8fbe37eeea8eabf4aeac7156f2775473e1fd273d99565c40ff991a190a893bd631046bdad6c79093ff627ed8d27a5bdd906ce0", - "dest-filename": "mime-types-2.1.34.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "sha512": "c74567f2ca48fb0b89d4ee92ee09db69083c3f187834d1dbeca4883661162a23c4e1128ea65be28e7f8d92662699180febc99cef48f611b793151b2bb306907a", - "dest-filename": "mime-1.6.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "sha512": "5123e431e113df5ace3226abb013481d928b1a0bca73f2eb8e87c09c194eb6d7f96a346faa2440f10b1e9db728a1cb4ae9de93b3a6aa657040f976e42ad86242", - "dest-filename": "mime-2.6.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "sha512": "3aa6ce939a0441e019f165d6c9d96ef47263cfd59574422f6a63027179aea946234e49c7fecaac5af850def830285451d47a63bcd04a437ee76c9818cc6a8672", - "dest-filename": "mimic-fn-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", - "sha512": "62c6e2f6e616f611727eb4e1743110bb290de04cba06ec0f0f6929239112fe71530e7ffdf32c5834b64972050028f4ff99cacb2ca686cc947d615c49ac874049", - "dest-filename": "mimic-fn-3.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "sha512": "8f911cb67907eda99f57fab91e09a86a5d60d901c5251ada3ad9b1d09a48aa4c6106123f9494a5d67329438e6155aaf03444cea161229a7759e102b4447c6ec5", - "dest-filename": "mimic-response-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "sha512": "cf4c9623ee050ebaf0792f199ade048f91dd266932d79f8bd9ee96827dfe88ae5f5b36fa4f77e1345ab6f8c79345bd3ae1ce96af837fc2fd03cd04e33731cd19", - "dest-filename": "mimic-response-3.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz", - "sha512": "969dc6798ef281c80099521c44f05584891ff14b3b1598c0f882e96a5e38a8b752bb5d709a3290dddf64d7995f0fba4ee1eb2ef5e508016eea898201a69bf8d0", - "dest-filename": "mini-css-extract-plugin-0.9.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "sha512": "52d25c003e3211a1ad8cf7b35ae3bdc02e27c149d51fff3f226df210740fe1bebb717943fd0afd85d213094d710db4845e0d9728d68ff23b11795eef41dd34fc", - "dest-filename": "minimalistic-assert-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "sha512": "c891d5404872a8f2d44e0b7d07cdcf5eee96debc7832fbc7bd252f4e8a20a70a060ce510fb20eb4741d1a2dfb23827423bbbb8857de959fb7a91604172a87450", - "dest-filename": "minimatch-3.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "sha512": "14cf6735462b4410042d9413df179943b7e630e060ea758d989293720b0979a2ecb4ffd43835691acaf93a15e185783a7feaad27cba267e3d4c640d67202172f", - "dest-filename": "minimist-1.2.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "sha512": "e93ea51f41fc386f642139bf266ead768a086e8806f5ed2d2e0a58ea6a615d29bf03dbbc36ad6bc811be42ca62b9bf4b8d69413ec3d2ded590fc1a2dab815dc4", - "dest-filename": "minipass-collect-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", - "sha512": "0861f579b94bab6e98d79f80ce4edecb8c61d09fd77c97eb0a8c792c32622aa2364368b038b38aae598868e0e24904bc775f236a517acb62b678f526d0299287", - "dest-filename": "minipass-fetch-1.4.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "sha512": "266412618a4f52a5f92729f5997691c0e75ad6e43c1cfe4a013fe80d22c2cedd41611850534fe10edb01d6e7d97c4133319f5a0159ac070f3e156b085e50a55b", - "dest-filename": "minipass-flush-1.0.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "sha512": "c6e22aedc20eb74f513d1275f60762e1bf9188dbc31587b9247fa080dbc1a86aa941772bbb73dc466399b8704a58ad53c5ff7e710f8731537877acf8e8b64fec", - "dest-filename": "minipass-pipeline-1.2.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "sha512": "31b9104360938813250360e6ff9718fbd49614437ca73cce5e2eab94ce57c6ad18a9b75ae59432f6c53be5aebbdc513d64ad19b1bafa63988feaef6792d7e0da", - "dest-filename": "minipass-sized-1.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", - "sha512": "aedcb9929c3dff3f125fd766c5b94503a79d22d526c0980c7980d946bc25215376ee2f20cac19bce7270520830d95fc556a1520dd5b2d38d193d2f35d43600a9", - "dest-filename": "minipass-3.1.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "sha512": "6c0c6c47c0557e3eb40d65c7137bb7d281f37e5e06ee48644ae3d6faabe977b8c54479bb74bc4e8d493510700227f8712d8f29846274621607668ee38a5ed076", - "dest-filename": "minizlib-2.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "sha512": "591a039fffe65c1889d47e34aea6b7bc7d2da1e3f04ac19be398889d6953c926be52ee24ded6144b16b6bf52aa0222edbe5ad2cda131a92d60b64f7a03dcef10", - "dest-filename": "mixin-deep-1.3.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "sha512": "34a98094449fea3306ca6d7ef91d116bbc2f855fb0156eb715a48e14fc116a1bde6b480c51c19485578083fd010b4c22bfd8a1e4d60f0755a7d54108d7f2fec5", - "dest-filename": "mkdirp-0.5.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "sha512": "bd5a95650c9fdd62f1d9285dd2a27dc6ebea800c8a3cb022a884c4b6a5b4a08523ce8dcf78f0dde9f5bd885cf7d1e7fb62ca7fa225aa6e1b33786596d93e86cf", - "dest-filename": "mkdirp-1.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "sha1": "be2c005fda32e0b29af1f05d7c4b33214c701f92", - "dest-filename": "move-concurrently-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/mpris-service/-/mpris-service-2.1.2.tgz", - "sha512": "002e967a90a7156c0e304f4e5a994767ca6cfc107e83d42b12950a0afef05fcd9f0cfcd1de73ebca938598bfc59b4265a0402ee904d649f0cb2dcea633f8e29f", - "dest-filename": "mpris-service-2.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "sha1": "5608aeadfc00be6c2901df5f9861788de0d597c8", - "dest-filename": "ms-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "sha512": "b0690fc7e56332d980e8c5f6ee80381411442c50996784b85ea7863970afebcb53fa36f7be4fd1c9a2963f43d32b25ad98b48cd1bf9a7544c4bdbb353c4687db", - "dest-filename": "ms-2.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "sha512": "e85973b9b4cb646dc9d9afcd542025784863ceae68c601f268253dc985ef70bb2fa1568726afece715c8ebf5d73fab73ed1f7100eb479d23bfb57b45dd645394", - "dest-filename": "ms-2.1.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "sha1": "899f11d9686e5e05cb91b35d5f0e63b773cfc901", - "dest-filename": "multicast-dns-service-types-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "sha512": "8e2e89e5e9db3321911c802400ebb759d57c9e082abe228210ab5770ea9fa61659b50ae61cac9c7f29c9d95ede54f500e0d849e95ed67f84e619b4f0284f41ea", - "dest-filename": "multicast-dns-6.2.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/music-metadata/-/music-metadata-7.11.8.tgz", - "sha512": "29a273c4395821dd39ccdd36f5668a84961c4f9141d10993452183ab96d17cf4c1530e0797456f26f68ee42e669b401358c44479c300355f5851ab4b320fb432", - "dest-filename": "music-metadata-7.11.8.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/musickit-typescript/-/musickit-typescript-1.2.4.tgz", - "sha512": "dfeff6d0f8b6cce5401df5057fadf52d4d8dc1a0bfa841c1064b0cf9843343f7df7f8b4830f5f9589e967bf5979b04c790090720e122b495b87113e7bd502af8", - "dest-filename": "musickit-typescript-1.2.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "sha512": "f19b6f12703673969809961dd5cbe076753a72ac22c51a1883bd313cb594c2ce4e4536bf967c3ebb86a68b1452fc0739539990560a7da679525276cd58569665", - "dest-filename": "nan-2.15.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "sha512": "7e9a1ed93d116c7c014c150e7ed01f04f683122d3ab9f6946a2d2613a627d6469c7374a74c4adf6ff87e5fde155f323ae2b2851d82265d2bddc061829b03aa08", - "dest-filename": "nanomatch-1.2.13.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "sha512": "8595dcecad9ef8f81e23578305eff5d00adde1e91b7ebaea1bc129fbc2667f82480f66cd83b36f08f39937e91f179ef8a45408ee6ba6d8052a0e27682aa7133b", - "dest-filename": "negotiator-0.6.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "sha512": "f8452ca863cbb0cfa3ff37428598ec9d7e758385eb1c53885f07e70953c695093f9398226a470ab2ec4239b051bba0d29bda29c3f3bab2559b25d82140ce1b06", - "dest-filename": "negotiator-0.6.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "sha512": "61ddd4112e665824aa47ea8d4fddd2dd4a18524a8067d94b83c6bb83dae29ac5a66062bc7154e8038fec17746bb21772577b0018c5d5526a4c60ec3e74ba4ebb", - "dest-filename": "neo-async-2.6.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "sha512": "d67878e5d79e6f9a25358ede5fcd8190f3bb492c51e524982623d3ad3745515630025f0228c03937d3e34d89078918e2b15731710d475dd2e1c76ab1c49ccb35", - "dest-filename": "nice-try-1.0.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "sha512": "7e000dde318087e468c541991d348e2c922a51cdb09a8070191e2d6e93402a69a8bc5a16ab439d4646f456495d45e3b66b68814ff384ba51bd5d251cd74af7ce", - "dest-filename": "no-case-3.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz", - "sha512": "89b3cade203ebda6357848c44a442433405b0aa14e6993225d14ed741d2eedbe1d8ed63a267b23bcf7541d5320eb142ddc1f1fa534d61c8f40f800e333d7ebce", - "dest-filename": "node-addon-api-1.7.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "sha512": "66330f1447d5c798fecb6c85df92b3c79b05ee40f3c6e0e3eb3887e0515b3a9f3bcca0d9371f321312486f4e4e185e0d96df481c520c064465e3555dbdc35d6d", - "dest-filename": "node-fetch-2.6.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", - "sha512": "3cf9aef1e11e1bdb1a114bc8f7b7e6e0e6315d507a6c5bf2353ca250e062721069146f00d4b8f0ddb63adbee683a30c430746777463b1d0fb1eeecf13b30ba24", - "dest-filename": "node-forge-0.10.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", - "sha512": "a254c946052d01bfe13971b413ddf0643b3962226581b5f14f0400147c8d951b1742763351a17668682e8d96f0fa147c685e191bfad24f9edb58c583d7a8ebf7", - "dest-filename": "node-gyp-8.4.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/node-loader/-/node-loader-0.6.0.tgz", - "sha1": "c797ef51095ed5859902b157f6384f6361e05ae8", - "dest-filename": "node-loader-0.6.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "sha512": "0aacb337acfb43a68c785fe4b5c3154f38401c21297fc48e6abc29ce97fca4d058da4e7fa0cdf850795d530a7c54a23bbb172dd87c5245d26305a65e112cdcc4", - "dest-filename": "node-releases-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "sha512": "4db8faeeb7dfa9c79e2e97115eb4fbbca00df02c1f3de20180cec4ea206498a2d5edb10cc291a060b1afd2300252c10269afefbb13f42231289edeae99d320b5", - "dest-filename": "nopt-5.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "sha512": "ff908c3774f44785d38f80dc19a7b1a3eae8652752156ff400e39344eae3c73086d70ad65c4b066d129ebe39482fe643138b19949af9103e185b4caa9a42be78", - "dest-filename": "normalize-package-data-2.5.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "sha1": "1ab28b556e198363a8c1a6f7e6fa20137fe6aed9", - "dest-filename": "normalize-path-2.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "sha512": "e9e66ce4bb375ad0a2b075a9f52d86532f1daa4a468b80554b3dc66aa884e9ecee6f4e75d844b3b57530501e82e8829b4246363e76ff983e166288c24707302c", - "dest-filename": "normalize-path-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", - "sha1": "2cc0d66b31ea23036458436e3620d85954c66c3c", - "dest-filename": "normalize-url-1.9.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "sha512": "f546421511d074dadf4e91a0f3ed4834883ddc1eb3134697315164c35585c2f3b84a5672c14e9a2e0e4e7f4029fcf81c6d2c382cdc6f3165cc7ae8303025f400", - "dest-filename": "normalize-url-4.5.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "sha512": "0e52fe5f03b2dcdc4043cc6e0b4a243e02b8ea2b953402b4d5837b46e79806aa85786b018d5f5798203301d82dfbaebb6c297990f87d12a28a0f09da3c6d48ec", - "dest-filename": "normalize-url-6.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz", - "sha512": "6227386d91c93adf510856d13f71a0a6a85270e6381c7dd5d8ff32063e82798ab5d7c42bf812d7a93d89be9274d26af22c44a980ec5fe57945bf86635f12d273", - "dest-filename": "npm-conf-1.1.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "sha1": "35a9232dfa35d7067b4cb2ddf2357b1871536c5f", - "dest-filename": "npm-run-path-2.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.0.tgz", - "sha512": "d37a691511a5b3251a4056c60b60bc41624dfc2fcaecfb1fc83f5a41d8552804081f8b1005cf16012a8504fecef94b78776a28e4ba1ea1ba01ddc19d0594a9e9", - "dest-filename": "npmlog-6.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", - "sha512": "8add6f13de7317a7534fd941b186f1bea8744a8cb848fa307218f45011a3fd5e9c4cf9d75ed40e3d46e167a0a61b3003feb5b6d8b40ae84f7aa5c7495e4e00e3", - "dest-filename": "nth-check-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "sha1": "2109adc7965887cfc05cbbd442cac8bfbb360863", - "dest-filename": "object-assign-4.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "sha1": "7e7d858b781bd7c991a41ba975ed3812754e998c", - "dest-filename": "object-copy-0.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "sha512": "1e8db3f346d522f265a07f98cd19a965541ef3bfaa01298150a6435a0c7d72ef8a0eb5f66431ffded332fa05db6444d51acd8cf1877139b3a1ed702d8a6f58d2", - "dest-filename": "object-inspect-1.12.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "sha512": "ddcc83b321e0b668bb23b0df4922362c3a7a48ada5c2fb5b834a744757b446f4ea17971e1b1f8ad9d7d28e6d5b283315085103010bf2fa8f1ce9aed5ba339d77", - "dest-filename": "object-is-1.1.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "sha512": "36e00449439432b9485ce7c72b30fa6e93eeded62ddf1be335d44843e15e4f494d6f82bc591ef409a0f186e360b92d971be1a39323303b3b0de5992d2267e12c", - "dest-filename": "object-keys-1.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "sha1": "f79c4493af0c5377b59fe39d395e41042dd045bb", - "dest-filename": "object-visit-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "sha512": "8b14f62f94c75ec029ca250f60a996fb6107a575dee488b733e7f87be6891401daa396a61515ba27438ee9cfcb53c05ee3bbad0b1d862fcf61c4607a5d298ab9", - "dest-filename": "object.assign-4.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz", - "sha512": "55d0e80b0bc923841d0ba9dd8e9a859a82f7ffe1f17df1416dc2732a2e61c0b2eaab1de675b79d4697d90dd2b44ab3926ae8fc5f81b306f9c3665e2f4cdedd3b", - "dest-filename": "object.getownpropertydescriptors-2.1.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "sha1": "87a10ac4c1694bd2e1cbf53591a66141fb5dd747", - "dest-filename": "object.pick-1.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "sha512": "3d7d70bb402601d3ea38bd665a1aa694e77c90e219430199c3aae1eee6f2f5f4dce6585a39614b5f723a47586b17d937cd4638d1eea282c2c69035caf762c936", - "dest-filename": "obuf-1.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "sha1": "20f1336481b083cd75337992a16971aa2d906947", - "dest-filename": "on-finished-2.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "sha512": "a59004f8524ba32213cad76a2b4539b3e148a6337424fdcecc58bfbbc471f84579fd6f894d61971bcc45cdebc4ec08c17c3a87bfff2f2fca90b088479ea464ac", - "dest-filename": "on-headers-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "sha1": "583b1aa775961d4b113ac17d9c50baef9dd76bd1", - "dest-filename": "once-1.4.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "sha512": "91ba5a4921894d674063928f55e30e2974ab3edafc0bc0bbc287496dcb1de758d19e60fe199bbc63456853a0e6e59e2f5abd0883fd4d2ae59129fee3e5a6984a", - "dest-filename": "onetime-5.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "sha512": "5e014f3ccf81dbc16d0828126fd23eb3db33382d6f6514b0816b11500e72948c514e02a8cea8ce0ab54ea86b180013d82b9aa77ea0a5c594c505af0f2addafe9", - "dest-filename": "open-8.4.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", - "sha512": "3ea1e98200bd6cb57455e59c74a864a7163edc94f37ad2d2a930962ffcffb4521b23a1bc2428e89dd5e4953d498a77332f3d9789beb6b12a744ff80a4f82a4b0", - "dest-filename": "opn-5.5.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", - "sha512": "87205597a8aaa94389f05a917be97f812f07fa42988eb12775de4f9b531f06db04280d37f0792475b025ffbd840171b2a270ff3c5b2f9951be12f708a6588c06", - "dest-filename": "original-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "sha512": "b3bdd7c4e678ce9b7579d658673be1a856babaf41cd6fc146b42b405db4866040c0098fd21b79b1fe26480a65cf61f81d393ca1cb3939786a31b506636b55997", - "dest-filename": "p-cancelable-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "sha512": "0593abde74501ce9ed5234eb1fcf8b879e2c98a1e81f2babf167b557c0d2315ae5e40da66a538ec2e2519ca4438d29e4a1e061e1ab7a0701276f923b265df5c2", - "dest-filename": "p-cancelable-2.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "sha1": "3fbcfb15b899a44123b34b6dcc18b724336a2cae", - "dest-filename": "p-finally-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "sha512": "bef717b0b009f43af9ad038f93bb68650649029065d8ae09e9d00d4ac12e87a408e3525872c4bfaa14c66bd12b2145202b758d428258bf2971be3aa68aa100f5", - "dest-filename": "p-limit-1.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "sha512": "ffff3c985592271f25c42cf07400014c92f6332581d76f9e218ecc0cbd92a8b98091e294f6ac51bd6b92c938e6dc5526a4110cb857dc90022a11a546503c5beb", - "dest-filename": "p-limit-2.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "sha1": "20a0103b222a70c8fd39cc2e580680f3dde5ec43", - "dest-filename": "p-locate-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "sha512": "c7ed76c3f4e8fb81857e0261044a620dc2e8cd12467a063e122effcf4b522e4326c4664dc9b54c49f5a3f5a267f19e4573b74150d24e39580fbf61fb230ba549", - "dest-filename": "p-locate-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "sha512": "47bf5967fd30031286bb7a18325cfc8f2fe46e1b0dad2ed2299ecfc441c1809e7e1769ad156d9f2b670eb4187570762442c6f3155ec8f84a1129ee98b74a0aec", - "dest-filename": "p-locate-4.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "sha512": "cb76fc2a977c380378e388717c16c57e3d4563f463b5377cb73630854a8d617c747d7c76897e2668fe10afaaa120a6d05c8d36c132c075ae1f6146c36a04d417", - "dest-filename": "p-map-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "sha512": "777a9755317fb3e5be09d279036f70cb05769fc0904186a1960cf66c5880fb87953496c726874f67efe05f03c68746cea80fa3f12fbaf9c926bcb18f935429c5", - "dest-filename": "p-map-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "sha512": "fdb8ceaa68044c1601e41a0478655e6bc766bc76f69bd18bcb513d5b8df27b27cfe9040264614d6be5d171e244b8307aceaafe80aa4802694b79b329ca4c3f31", - "dest-filename": "p-map-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", - "sha512": "5c4e86e3e6134e44f66b45166f692365ef313707fc6c86e7aa973f212fe274e055872bdeb3498ae4e2607a8723c7bab9a6f5ffea6db7c6ecd53d84f5b8633bdf", - "dest-filename": "p-retry-3.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "sha1": "cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3", - "dest-filename": "p-try-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "sha512": "4789cf0154c053407d0f7e7f1a4dee25fffb5d86d0732a2148a76f03121148d821165e1eef5855a069c1350cfd716697c4ed88d742930bede331dbefa0ac3a75", - "dest-filename": "p-try-2.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "sha512": "9376dd9b69f6e6d932c5c8d22b3079c7c91f57194c760b1b3ebd069197301ec2e96dae9c063a82b752a570284a12fc4721c4c1d4554cbb0a228d9dbac5ec7931", - "dest-filename": "package-json-6.5.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "sha512": "457963ef3098a2445ea96a4e3c7f68622bd4ccb619e6f00f21f1260933558a8b02efc17c1741fdcbb4fb806d8cdfdca682eb7117981c144b326504a987d069dc", - "dest-filename": "param-case-3.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/parse-author/-/parse-author-2.0.0.tgz", - "sha1": "d3460bf1ddd0dfaeed42da754242e65fb684a81f", - "dest-filename": "parse-author-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "sha1": "f480f40434ef80741f8469099f8dea18f55a4dc9", - "dest-filename": "parse-json-2.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "sha1": "be35f5425be1f7f6c747184f98a788cb99477ee0", - "dest-filename": "parse-json-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "sha1": "6d5b934a456993b23d37f40a382d6f1666a8e5c6", - "dest-filename": "parse-passwd-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "sha512": "0a2c9e3b1153fc96723799b4cfd3df5f0e1208127a4b2833d43a65d30aa39610c418604fd469ec51510bd29eb78681b57dc8f77c7ca75e2f4d60ee2758e2fea9", - "dest-filename": "parseurl-1.3.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "sha512": "b969464f76129caf71dc140968e75c670ae757a84fa5df23147d7fb9ca622d13e1ff6cc2549292d7d1381af607bda09c0029f77e85d9d1c2c1f56af1d4a19ee6", - "dest-filename": "pascal-case-3.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "sha1": "b363e55e8006ca6fe21784d2db22bd15d7917f14", - "dest-filename": "pascalcase-0.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "sha1": "cc33d24d525e099a5388c0336c6e32b9160609e0", - "dest-filename": "path-dirname-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "sha1": "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515", - "dest-filename": "path-exists-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "sha512": "6a4f50cb943b8d86f65b071ecb9169be0d8aa0073f64884b48b392066466ca03ec1b091556dd1f65ad2aaed333fa6ead2530077d943c167981e0c1b82d6cbbff", - "dest-filename": "path-exists-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "sha1": "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f", - "dest-filename": "path-is-absolute-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "sha1": "365417dede44430d1c11af61027facf074bdfc53", - "dest-filename": "path-is-inside-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "sha1": "411cadb574c5a140d3a4b1910d40d80cc9f40b40", - "dest-filename": "path-key-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "sha512": "a2399e374a9dfb2d23b3312da18e3caf43deab97703049089423aee90e5fe3595f92cc17b8ab58ae18284e92e7c887079b6e1486ac7ee53aa6d889d2c0b844e9", - "dest-filename": "path-key-3.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "sha512": "2c32733d510410f47ecb8f33f7703411dd325dbf29001c865a8fe4e5861d620a58dbfd84b0eb24b09aeaee5387c6bcab54e9f57a31baa00a7c6a1bce2100fcb3", - "dest-filename": "path-parse-1.0.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "sha1": "df604178005f522f15eb4490e7247a1bfaa67f8c", - "dest-filename": "path-to-regexp-0.1.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "sha1": "f012ccb8415b7096fc2daa1054c3d72389594c73", - "dest-filename": "path-type-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", - "sha1": "fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445", - "dest-filename": "pause-stream-0.0.11.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.0.2.tgz", - "sha512": "f5f31acface8c70f72a4ed4a672e510c9812ba912dbb443e83f3aaaac5475f7aca191f2a7a144b633b050116786d5bddbdf9272a25efb836e43273b583a711a5", - "dest-filename": "peek-readable-4.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "sha1": "7a57eb550a6783f9115331fcf4663d5c8e007a50", - "dest-filename": "pend-1.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "sha512": "70c943a9a2c4a9f49a5bc67b379270fa5c885bcebd1334fbdff179961b58f5c2c6a15c525f39df81f5cc3b46792b4a344364e44d7abed0a16c76749ede30d588", - "dest-filename": "picocolors-0.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "sha512": "d5fca0ae84cb947bbaeb38b6e95a130eff324609b415c71e72cb2da3e321b19d03fc3196dac9bc13c0235bb354e5555346de46c5b799e6a06e26bf87c8b6248d", - "dest-filename": "picocolors-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "sha512": "254ded7874cd8e6136542185cee63c117cc20d5c04a81d9af1fb08bf0692b4784058911e55dd68d500fcd0253af997445d748b6d2b2e2f0263902056a9141454", - "dest-filename": "picomatch-2.3.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "sha1": "ed141a6ac043a849ea588498e7dca8b15330e90c", - "dest-filename": "pify-2.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "sha1": "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176", - "dest-filename": "pify-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "sha512": "b81f3490115bfed7ddebc6d595e1bd4f9186b063e326b2c05294793d922b8419c86914d0463a9d252b082a438fe8e00815b8fb18eadcb9d739a4d8d9fa0795da", - "dest-filename": "pify-4.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "sha1": "2135d6dfa7a358c069ac9b178776288228450ffa", - "dest-filename": "pinkie-promise-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "sha1": "72556b80cfa0d48a974e80e77248e80ed4f7f870", - "dest-filename": "pinkie-2.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "sha512": "f15f7e1d03eea67697300db773986f97af735ef4f04f3c8061ab2791bd13b6ce17bcee02962a8e34c3a7be5ab6eab9212c2de758314125fef72d4d5ed5564b69", - "dest-filename": "pirates-4.0.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-5.2.1.tgz", - "sha512": "5a37007584a72abadd0dda93715118eda07b5218708d840a6211e205774979fd0c39a41e62951d43e895c812dae5804a4bc30f54f3cc5fbae9381c8848ba5e11", - "dest-filename": "pixelmatch-5.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "sha512": "fc4e7b018928790db9aa4c4c8f93c1395805f0a8aefe1edc612df4679f91ed66a208205f2eae7c648fdd49e68429bf565495799ffd37430acddc8796205965bf", - "dest-filename": "pkg-dir-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "sha512": "1d10f36da2a30be00e5955f1014ff1e7808e19e22ff5e6fee82903490a0d4ede17c96a0826fb8fb178b3c6efc5af6dc489e91bb59c2687521c206fe5fdad7419", - "dest-filename": "pkg-dir-4.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "sha512": "9c3cb04e1164d62e0140ae2dc0f43a4c0e114fc6c363deb27ae0950562f778f0110a210a0d14ab3466c5220509a4ba7e5de211eb9bfcadaed6b89385501b6430", - "dest-filename": "pkg-up-3.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.18.1.tgz", - "sha512": "3402c697c475187cc62e58540299a999f87a335aebacf7034f2816be14dba6bc70181f6a77f8fd0d1c329f81d341c501ea8d3f54ea68e3a7c7f5ecf7f83fd1a2", - "dest-filename": "playwright-core-1.18.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/playwright/-/playwright-1.18.1.tgz", - "sha512": "f04697f44b5bb40a0cab9b67cc8b280376ff57ce95ffa32adac92e394e2a130fb9395c6cd65c1eb03c268f2fd1554d507f1e54bb0490ce1a78e70c87db6a1af8", - "dest-filename": "playwright-1.18.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/plist/-/plist-3.0.4.tgz", - "sha512": "92caebf32f7e9d73b1401da8b1536aae0bd7fd740f397694e0140c2a362af0fbda635535f26a3e7ca8014b0ccafa5b92ca29ceb8f69ef79ea5495701c3194032", - "dest-filename": "plist-3.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/pngjs/-/pngjs-4.0.1.tgz", - "sha512": "adfe7edbf8a81de43147a231b98358185cad5321b79666bf596d67b268de1e55b0b5bd9a07295ae9d91573ca6627d9e9973913034ab6c71ee6316ace4ea4f81a", - "dest-filename": "pngjs-4.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", - "sha512": "e34416e586a504d7d0a39c916268b0ed8cfa4ca295af787af7bd01d9813eddf429b1672b6e3d4fcc9831789d7d0d142384c6ca3c8b8c63cac569773c9a8a2557", - "dest-filename": "pngjs-5.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "sha512": "49efb68ac6a721c12a7f65cc1e3c942ac91ccf16cf1fb7509e53235d7ebe7726dacb21ef01ffd30a0c8c465cdffc1e900e100414e19eb34a73468ddbcb801b30", - "dest-filename": "portfinder-1.0.28.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "sha1": "01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab", - "dest-filename": "posix-character-classes-0.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", - "sha512": "2da60b0cd4b8486f10e56016a882607473c9ac30ebfcbbfbef9acc04551b8234f3ea3df8954ce70021dc7515aba0fbd700d3f6563ef234ae7bbe9f5e16accb59", - "dest-filename": "postcss-modules-extract-imports-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz", - "sha512": "7b7c43abe2e8b6219eb329a946528d81a2743c2ce85087691f4763e3b89602e8bf9324e08770a202bd6a3f9e2ea1d989865ea9f6b37a06835c7440d5271f510f", - "dest-filename": "postcss-modules-local-by-default-3.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz", - "sha512": "632120b13311a4d77e1e6c82ec7fe6877cbe31e1567afcbb5757af5612567b098c6e30c721b65b3972020b6cbe9b5c48d5455f213d47316fced381f1caef685d", - "dest-filename": "postcss-modules-scope-2.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz", - "sha512": "d7ffc4e63081ad9f439915fecc2b6642d45257a3d5e36231ec1ce3f466f025c79dbae7fb22a3fc3207935ee4431ce5a3da6d15cd90f9faba05583b94f1142372", - "dest-filename": "postcss-modules-values-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz", - "sha512": "50edd282764e553c2ee24c8b476d94435c59874f3a472359a696fb94b00a0452bc6b7dadb46e62f3b63f3f7fb66d14a364dc89d41ee17c5368dbbded29ef58c5", - "dest-filename": "postcss-selector-parser-6.0.9.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "sha512": "d4d342b3abaeadf9156de5c6e12f09153f6dd7d9b8e480a789ff3358b779a0f499e74427c0c7caf87de3bf8d3c7788f0ffb06db6fe5ac52e48887a0b69534779", - "dest-filename": "postcss-value-parser-4.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "sha512": "ca2a1aca335b1e7eb3d7f072c326f6638b37caf0c079718ecb1a83f8b9d53a29eae8c76677ef925b6c14355cdabf2c87c5debe0f1cd6188ba8b20e8fd518fcb8", - "dest-filename": "postcss-7.0.39.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "sha1": "d4f4562b0ce3696e41ac52d0e002e57a635dc6dc", - "dest-filename": "prepend-http-1.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "sha1": "e92434bfa5ea8c19f41cdfd401d741a3c819d897", - "dest-filename": "prepend-http-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz", - "sha512": "118e680f39ac5f9c2fbb29c0072ae66343f485ca7e4299c029b26783603630f8d52970b1ac3494933821549e1918f22ff890b8817f1f3d45ac702d11b63b161b", - "dest-filename": "pretty-error-2.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "sha512": "35b96cb5e800d72fd1256d95c8c2fedcb969163cf1eb6714aed0482885835c40e48cd7a5780ece77b9ebcdcb3f54b42f01e5780a049886b377f4344df3c422fe", - "dest-filename": "pretty-format-27.4.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "sha512": "de8b943a9421b60adb39ad7b27bfaec4e4e92136166863fbfc0868477f80fbfd5ef6c92bcde9468bf757cc4632bdbc6e6c417a5a7db2a6c7132a22891459f56a", - "dest-filename": "process-nextick-args-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "sha512": "ecf887b4b965e4b767288330d74d08fbcc495d1e605b6430598913ea226f6b46d78ad64a6bf5ccad26dd9a0debd979da89dcfd42e99dd153da32b66517d57db0", - "dest-filename": "progress-2.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "sha1": "98472870bf228132fcbdd868129bad12c3c029e3", - "dest-filename": "promise-inflight-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "sha512": "cbe58a165051f011979ec3652071463d99b20dfdc314ca0b85a7e5027c99815eab1bac6ef89c1eb13a3643d47a5f0626b66c001429009377b7e6311da1e87fde", - "dest-filename": "promise-retry-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz", - "sha512": "4e334f6e537807001631753cb3d004cf82664319c3d4d34bedb34e63f00a533c9a99cdfbf4558049485cfcad692f69e855bf9799928b2faf1c8f32ec88e00c68", - "dest-filename": "proper-lockfile-4.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "sha1": "212d5bfe1318306a420f6402b8e26ff39647a849", - "dest-filename": "proto-list-1.2.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "sha512": "96542c30b4940d43d3e388ddad4fcedfbaa59e27e2b433fe670ae699972848ac8b2afb59c69c95d27dbf6c3fcde2d040019fe024475953b28cadaa0ad7e5d802", - "dest-filename": "proxy-addr-2.0.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "sha512": "0fece439109b03d7f5b5d5912b445a091dc63efe7470cc5caf3e17f24e4b4d2503d43930e3b98a24465036e9c8b514e45b082d6944a8d515454481bd65788562", - "dest-filename": "proxy-from-env-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "sha1": "d3fc114ba06995a45ec6893f484ceb1d78f5f476", - "dest-filename": "prr-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "sha512": "2f0672fa9dd216cd4fcad77f8d872de30a6fe3d1e2602a9df5195ce5955d93457ef18cefea34790659374d198f2f57edebd4f13f420c64627e58f154d81161c3", - "dest-filename": "pump-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "sha1": "9653a036fb7c1ee42342f2325cceefea3926c48d", - "dest-filename": "punycode-1.3.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "sha512": "5d1b118dd7fe8f99a5fb2ffa18a1cf65bac5ffca766206b424fb5da93218d977b9a2124f0fdb1a0c924b3efa7df8d481a6b56f7af7576726e78f672ff0e11dd0", - "dest-filename": "punycode-2.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", - "sha512": "9758cd02ca4805216a6d3fb2fb9168b288cda55a45f789e523ec03529a8ff5e9f03937c7c7d7f4821e6707deaf97eeb24e9b09b32a5e36bc1fccfacab87078d4", - "dest-filename": "pupa-2.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/qap/-/qap-3.3.1.tgz", - "sha1": "11f9e8fa8890fe7cb99210c0f44d0613b7372cac", - "dest-filename": "qap-3.3.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz", - "sha512": "117b73459982f981a61a50c56d72b142231937008b10ee8100d2971b8882b5220cd32a9cfe96a9a52c774482abe2bd2e87926c05c90e5de2ab077233ee6750a5", - "dest-filename": "qrcode-terminal-0.12.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.0.tgz", - "sha512": "f4c811a6055cfbffb8edd16f41e0fa536b3467dd84b0acdc1e882dba6e1007e50d774db958e2521ef9ff86393dc66ce3ed2b63f790b2500b37d66ae3c65884b1", - "dest-filename": "qrcode-1.5.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", - "sha512": "4c8464e1aa982cda0951b77e836944773e642d622e4cc45a8005f197bf10d118958c03ae80799e28d19d777730a3f92da5ff5a2fd7a909f16a58310acac5252d", - "dest-filename": "qs-6.9.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "sha1": "bbb693b9ca915c232515b228b1a02b609043dbeb", - "dest-filename": "query-string-4.3.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "sha1": "b209849203bb25df820da756e747005878521620", - "dest-filename": "querystring-0.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "sha512": "148aa08f6114bd36bb479d2ed2b1acc937edce3626bff6b784edf8e5b64daea69b36a8ed8220cc826a389a452377e9f3539a05ddd0a52aa1483d42b26d4caaa1", - "dest-filename": "querystringify-2.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "sha512": "5aec802d18d63c31adb7fc3326269d3b901763ef2167cd215697ba3328af82b691116ef9d57dd26e146f1b778b28e60dfbc544bea2dc7f7c1d9ede386784b848", - "dest-filename": "quick-lru-5.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "sha512": "bd897788e5fee022945aec468bd5248627ba7eca97a92f4513665a89ce2d3450f637641069738c15bb8a2b84260c70b424ee81d59a78d49d0ba53d2847af1a99", - "dest-filename": "randombytes-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "sha512": "1eb82cc7ea2baa8ca09e68456ca68713a736f7a27e1d30105e8c4417a80dba944e9a6189468cb37c6ddc700bdea8206bc2bff6cb143905577f1939796a03b04a", - "dest-filename": "range-parser-1.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz", - "sha512": "44f30015424fd7d5887adffdf67821e88bfc7f301baae9b82e2ec00fa0ed19a5b6469301ff5d710e86a53e224c4dbbba2378646cc564013bd9aea6fd104a9e79", - "dest-filename": "raw-body-2.4.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "sha512": "cb76c682a2a3dd005dc4b6cb9289a5a2192fb00f207408944254812670617e7f813f18386dceb677c4dc056d79c1abc37e07b10a071c72485c66fcb0c9060f3b", - "dest-filename": "rc-1.2.8.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/rcedit/-/rcedit-3.0.1.tgz", - "sha512": "5ccd09bf8d3fcb885502a8ff30eef4a3f216b38b8eb1a4a8a3698bca4de49450d6f924ad2e70adcee42efb53814c830694cf02bda2bd7ed9580a9e8327e70cb3", - "dest-filename": "rcedit-3.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", - "sha512": "b3887de8ab4b0d4425b04361327d5aafcb766c46beabf600b63f293cf7488cf0c604321536cac3f5a5cd5aab2951ee80cca0881b40b51d964ba8b57baa938118", - "dest-filename": "react-dom-17.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "sha512": "c361accae90beb62099e569f7ff9d17a03d047de02fd75da9af3169921d1278cbb4ecff8a1c1919931ef3acf0f484ea90777563ab0ff9ee7ae539b1db81b10e3", - "dest-filename": "react-is-17.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", - "sha512": "82784fb7be62fddabfcf7ffaabfd1ab0fefc0f4bb9f760f92f5a5deccf0ff9d724e85bbf8c978bea25552b6ddfa6d494663f158dffbeef05c0f1435c94641c6c", - "dest-filename": "react-17.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/read-config-file/-/read-config-file-4.0.1.tgz", - "sha512": "e5c6840f7ba8d8801930f71b87ff61c7f3b6f6cdb8df444bc6d9c50ddcf1a47fdea44a5ac0ead09c6047b9ea2d21752b18f3c881d35037e4bf088a765a68927f", - "dest-filename": "read-config-file-4.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/read-config-file/-/read-config-file-6.2.0.tgz", - "sha512": "831ecf82be48e7a26d633f96baa11b4078ffc56a3ee55c2e6b68e16f55703385a27793ea6266788b4d190746041887e4541b02bfd52b8e0caa0a241f4bf3a8b2", - "dest-filename": "read-config-file-6.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "sha1": "6b72a8048984e0c41e79510fd5e9fa99b3b549be", - "dest-filename": "read-pkg-up-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "sha1": "8ef1c0623c6a6db0dc6713c4bfac46332b2368f8", - "dest-filename": "read-pkg-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "sha512": "11b868f0ae2321b1c0c67bb18bba38d8ead9805fd94cd72c663ea744ac949a484b16af021c8b69fdfcba85066e6663ff9f7c99f550546e9e33cff997f219983f", - "dest-filename": "readable-stream-2.3.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "sha512": "055887cbb2ca793cf8a0d9e470b27e95548beafa6215e5fafddde8487f33096ed4c4fda89dc864faf4c6075e37c6e1631d2ddd7938242a85d7ca65eaca688874", - "dest-filename": "readable-stream-3.6.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", - "sha512": "78f78ae9c73511c28b121245b7f01e6cc08b2fe1a048a86eca0ad9fc62da29960479c22020409fe14694b9a072886b73724c11e1a8a7f55cd487de53d5ec581b", - "dest-filename": "readable-web-to-node-stream-3.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "sha512": "d4953ff2af95805672c70ac9f925483ac87e2b2c161a976cdcd4ea8a488aa43319592726018c8a220aa43be011bcd5897d7797475cf1cfb687178bb80b21fabd", - "dest-filename": "readdirp-2.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz", - "sha512": "dc4d7651e3523df8eb8308e447cd66e49ec0c3f4f9e53bbb9d4c995506022843acfb6764c4463e0e93ed6733b862bbae88f6fb36460b55cc890b8fb309b939a4", - "dest-filename": "regenerate-unicode-properties-9.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "sha512": "ceb71e47f5e119853f77fa29af610a3bb6911d47a2048f2a8ed7c7a800d3c1977a4b37f2d7a95aea4a83d0c214b39cf9871e8068a6be3e2c693eb476f3df88d0", - "dest-filename": "regenerate-1.4.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "sha512": "a77553f9c38483116c45103d5f896423513e936fc2b672ad53881cc7268252b7a294bfefa88e82759df0c55531dd439483e82750e41071123b066488eb9e8c60", - "dest-filename": "regenerator-runtime-0.13.9.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "sha512": "78e7fabe46b920ed79d497ecc3634ef56a465f9f16eb05a679f2b7235cc41abd25383d2ef2bc0f68da902f5691c546b12de28edc0acd87755883529b683f8517", - "dest-filename": "regenerator-transform-0.14.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "sha512": "27a4838d4803c508f936eb273ad745c43c0dffe1d6ca447c1842f072d27b99daa1732cb5c44738491147517bf14e9ebad586952808df44b67d702a92ead9f7d8", - "dest-filename": "regex-not-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz", - "sha512": "a4c47b84155450623b3cc037ee6da87c87500aca265676acf899f950f1801d0fbf2e5c0a9bf6932c91dd6ac98747395f799c0788039a452a36adb0439b79cd51", - "dest-filename": "regexp.prototype.flags-1.4.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.8.0.tgz", - "sha512": "d45e9b62ca188b3ea2b3ea33ef4356babd95961f4a5adb30b91bb324e7de614adf3d7da8f27ef802751568e1836d4a9518ef5f347bb8f3fa6324ee2c355c2c3a", - "dest-filename": "regexpu-core-4.8.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", - "sha512": "ea09126f853a696241e1217666f2dbefac8206372fb9f5c1aafbc4c751db98a3e4badb308d6d71355458d3e75a96321845ba2037b3b47ad61295b89a110c8ccb", - "dest-filename": "registry-auth-token-4.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "sha512": "f1a7185d74c8d00910bfa4403a3137bce6885d9913f70a382ce15b04a6101049e730d0692aa754ac8e92e0d4f428f228fd656f279b44fd7e4b17f4d051fd1e93", - "dest-filename": "registry-url-5.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", - "sha512": "385153dcc7eb1fdd31216f0e392c94ae4e901c3e44f49393786a1d8897814b727a230960cc930d13fd5b664956cf9a1383ef5d08cc847ad725bc255738fa0ddc", - "dest-filename": "regjsgen-0.5.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.7.0.tgz", - "sha512": "038a5c68e46a98d3035705235a84f3ba1c0c1a93fe3729297ea02c1202351521ff1330bb96b3794cc77e90df180a8bd7fa3329bbc79aa978173c26b483c15035", - "dest-filename": "regjsparser-0.7.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "sha1": "54dbf377e51440aca90a4cd274600d3ff2d888a9", - "dest-filename": "relateurl-0.2.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "sha1": "c24bce2a283adad5bc3f58e0d48249b92379d8ef", - "dest-filename": "remove-trailing-separator-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz", - "sha512": "a02705cb168cacab0a713639f6a9c202d9835522df3dbaefe80ded55b3dd14c32bbf98da2b5d15ea6e3470ab283cd840a8deab9875bdb2cc16e28debb92af051", - "dest-filename": "renderkid-2.0.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "sha512": "2c588d7d1712bbb28addebccc983ae0b3bf72f5d135bbc82d46dbff92b4c8caf18e95a9dd8c1bbaff423c38821b6e08e8c5be59e6b3f88c98baa9bd6fc44bf59", - "dest-filename": "repeat-element-1.1.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "sha1": "8dcae470e1c88abc2d600fff4a776286da75e637", - "dest-filename": "repeat-string-1.6.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "sha1": "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42", - "dest-filename": "require-directory-2.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "sha512": "5dfd2759ee91b1ece214cbbe029f5b8a251b9a996ae92f7fa7eef0ed85cffc904786b5030d48706bebc0372b9bbaa7d9593bde53ffc36151ac0c6ed128bfef13", - "dest-filename": "require-from-string-2.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "sha512": "34a37990c0f294aba577160b4947eb6e8e53bb387885dfb613c34f3d7d36999b67d55b911104e861efd9765272f89dee0a97da886174e5eec1f16d225db4079a", - "dest-filename": "require-main-filename-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "sha1": "925d2601d39ac485e091cf0da5c6e694dc3dcaff", - "dest-filename": "requires-port-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/reselect/-/reselect-4.1.5.tgz", - "sha512": "b95765cfc27b38ef804a9058a33d59ca9831d0a6ac098db41fe37c243d77a1432d3ef48742eb1cac7a29e0a6d7adbb0171d07d0ecee554aede4640487cee37bd", - "dest-filename": "reselect-4.1.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "sha512": "d1ad45e25ef7fd915939a9099d0dc5be4276fa0493416cffaf6284e4e7436344f13e6e61e0692a91659f338ed3ec7b1b9ceb5c255105e1ea42572eaeed0dcafa", - "dest-filename": "resolve-alpn-1.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "sha1": "00a9f7387556e27038eae232caa372a6a59b665a", - "dest-filename": "resolve-cwd-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "sha1": "79a40644c362be82f26effe739c9bb5382046f43", - "dest-filename": "resolve-dir-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "sha1": "b22c7af7d9d6881bc8b6e653335eebcb0a188748", - "dest-filename": "resolve-from-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "sha1": "2c637fe77c893afd2a663fe21aa9080068e2052a", - "dest-filename": "resolve-url-0.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "sha512": "1e1b6bc349cb792ac543ba613e9e0e39c5632cf21e327465af999c9d5b8c7bb33fede067f7c0378661512e8168dc32d9922bd26308515094f23f2580939e962f", - "dest-filename": "resolve-1.22.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "sha1": "918720ef3b631c5642be068f15ade5a46f4ba1e7", - "dest-filename": "responselike-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", - "sha512": "c47e3cbb715307d56c670ed1fafbe068a78b2b34fa8cea206d08447bf8dec309d98333dc9f25ae8b602fe89a6861917ff75bae782fa5aa15aa794470e7faa10b", - "dest-filename": "responselike-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "sha512": "4d3958a5af8e2febcc30d1b6e314a5406109dc1fd1cc47d494b72dedbe46ff2b5abfec0fae9942a55305bb0cd76e479c26b6fa218a358856f44bdbf7efbe789a", - "dest-filename": "ret-0.1.15.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "sha1": "1b42a6266a21f07421d1b0b54b7dc167b01c013b", - "dest-filename": "retry-0.12.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "sha512": "b968db68a20add3d4e495a6dcd7ecd97a3ef437a801ad284b5546346e6b38df2f7071e5e238d3d5594aa80d0fee143679b32d574f8fd16a14934fa81645bdee3", - "dest-filename": "rimraf-2.7.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "sha512": "25990931990018514f3f662a5d95cf6cc94c060b31cc4f082ece253085ffda8d0bf54070f4efd8de8eb0170fe2f582daa5c5095b0a9b8b791dc483dd0bad9320", - "dest-filename": "rimraf-3.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", - "sha512": "08784f87e50d1c3d864d735884f58b9d4f0e347748fb90c8fb811820039a883eb7ac7798959bf287c3fe8a7e7df7d4d348581462e294023cd123899d87fa7ed8", - "dest-filename": "roarr-2.15.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "sha1": "e848396f057d223f24386924618e25694161ec47", - "dest-filename": "run-queue-1.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/run-script-os/-/run-script-os-1.1.6.tgz", - "sha512": "aa5e8fd8bce10534c37f32adb3e428e07f785542a9c4a0c5cfa431c7069464dd26c2f8bb2f7969388ec1a8f0aaee58038775cb974769797c1f715222b65ad8af", - "dest-filename": "run-script-os-1.1.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "sha512": "19dd94641243917958ec66c9c5fb04f3f9ef2a45045351b7f1cd6c88de903fa6bd3d3f4c98707c1a7a6c71298c252a05f0b388aedf2e77fc0fb688f2b381bafa", - "dest-filename": "safe-buffer-5.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "sha512": "ae9dd2a34eca71d9a629b1af81a37141226bedb1954959394bd12ad45fa9a5b468ef4f9879a0f1930e4377c34f37e183e9b8e7626d95b8fb825e6a6e62f9825d", - "dest-filename": "safe-buffer-5.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "sha1": "40a3669f3b077d1e943d44629e157dd48023bf2e", - "dest-filename": "safe-regex-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "sha512": "619a372bcd920fb462ca2d04d4440fa232f3ee4a5ea6749023d2323db1c78355d75debdbe5d248eeda72376003c467106c71bbbdcc911e4d1c6f0a9c42b894b6", - "dest-filename": "safer-buffer-2.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", - "sha512": "cbfe7631ccbb6b0de0466ec8adc183171fdb0a4e00851876788f65b8739033cea766cab0891924ab619e9075c1043f9298f89d73c8b63eab58665fa9589f0e7a", - "dest-filename": "sanitize-filename-1.6.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "sha512": "36a543bfd4e900d523166d0df2e3391b12f7e9480a8bdfdab59c3ec7b6059d0f1c9301462ab978c57e325adadecb75099b99cfd6451b9d880ba29a963524615b", - "dest-filename": "sax-1.2.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", - "sha512": "d9e59f1a002aa96146aad74c99c2f9cc230ad54f0a957bfc4901468252f7084b5dd1a0d50d681e17f6280a6be59f9e66e734a4dc9ff6d214da48179239bb100d", - "dest-filename": "scheduler-0.20.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "sha512": "8b6ecc89ce0aa2f33f9671accbcc214421e173b5627096a30234eb620d752bdcdf6579d822de24e45fa4664c239eb84accb89cfc72d4e23d759a3b33d86ffbe6", - "dest-filename": "schema-utils-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "sha512": "48788db4c394196050270cc84a25582aef361a257841819e3e9de8765635b6e28eee03eda61013e51fe9cb47c0eb1b5b80b2ff46fb4966753d6fcb34175ab45e", - "dest-filename": "schema-utils-2.7.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "sha512": "6393d0c52e084e50be11a84bb97698f3a4d77d1ec3739970dbde1a9573aaf3a2401c28a100865faaff273425af68426f682e75b8df616cb19e57470505d1fe17", - "dest-filename": "schema-utils-3.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "sha1": "625d8658f865af43ec962bfc376a37359a4994ca", - "dest-filename": "select-hose-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.14.tgz", - "sha512": "9648da880c9efb00590c206cbb90468b45e22d1c5e525b06a1de593fddb8091484a06b99030fdfef2f512aedbcaf04df88756175abe1074a87d08355e8fd6510", - "dest-filename": "selfsigned-1.10.14.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "sha1": "0dee216a1c941ab37e9efb1788f6afc5ff5537fc", - "dest-filename": "semver-compare-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", - "sha512": "197d08c7f089707c81f1ce329291c6200bcbc8ec0ea1bb4cffc77e4d090077cd7f6c48e03c7adf6dae355697acafb8d7fedf1487e477117f5e012e5b7be8d062", - "dest-filename": "semver-diff-3.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "sha512": "b1ab9a0dffcf65d560acb4cd60746da576b589188a71a79b88a435049769425587da50af7b141d5f9e6c9cf1722bb433a6e76a6c2234a9715f39ab0777234319", - "dest-filename": "semver-5.7.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "sha512": "6f7f5305a4d27d5eb206b6a953cf69e5f29e904da6fcdc270e870e56bb90152d7fbde320773b8f72738cdf833a0b0c56f231ff97111ae6b0680de530bb91c74f", - "dest-filename": "semver-6.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "sha512": "f8607acd503d2d687ace8bd840b00b1f0bf9adbd8f1c69498b795f8aa207c51d2ebb00a079f70e25ce7dbfd7efd70f066d2b70c6ebaaa808c8f4d30038e82ad4", - "dest-filename": "semver-7.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "sha512": "3e878625887c1cae014cefdaf537fa646def7a8fc0ed956c62b480e89f27cbd9dbdc1d55ae992e37ecfd384e707c4e69e87e0b721619b1e8224206c90fde1915", - "dest-filename": "semver-7.3.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "sha512": "509601eb0152244dc6d349c48af479ae05a9f1cdb15ef27738f58f866bad794d082a3f2729b1b70eb8e23a62f0a671c6616015c00ebdce64e6fbe606d079b0c3", - "dest-filename": "send-0.17.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", - "sha512": "f08f138d6e4a30e2ac6504efa318ee4886bb7e80303d618eb6cfbaa3bb208f3e35fea303f55407103c62e8f06f2b6974317526a99c8da542be4f6b5069a125bf", - "dest-filename": "serialize-error-7.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "sha512": "19a340e78dfcd2e15e7d68213830561068ac2d9163d349d2e400aceb21daf672ea94ba552cef0284319e2918d99d5e0d8789f4422ee7858643ffd7c23f312a93", - "dest-filename": "serialize-javascript-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "sha512": "42bdd3a2cbe0b85b7c78f5aab2f45facac905c8896fa719b629cbc5cadb83501c4f3771ac56b7e988ca64d3d7d0c615b35634b7c4c2cae44a637ae2555607d6a", - "dest-filename": "serialize-javascript-6.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "sha1": "d3768d69b1e7d82e5ce050fff5b453bea12a9239", - "dest-filename": "serve-index-1.9.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", - "sha512": "f9330d03d005c54106b82d33da67afa204a79fd31729be1f6bb9e079130969a1aff2f4f09c81242a2f901af3eddf71d29dff29452f9618cd046ccb4224b28c05", - "dest-filename": "serve-static-1.14.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "sha1": "045f9782d011ae9a6803ddd382b24392b3d890f7", - "dest-filename": "set-blocking-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "sha512": "2711dcd7078237af30458d1f842a17a722b9e66fd73c769f3a62b85160fb9b6088d7818c705ca9b78c3fd3e355e5ffd931bcb617a4b6c3003b7e0ca787d8164b", - "dest-filename": "set-value-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "sha512": "06f13f4f0a595f8157131c4ec59c9119042feb9d4c4b09962991aabe63dc4488c3a96b9bebb9132ae20cc78ddc659ad2fdc041cf005c3435a8171b765c4148a5", - "dest-filename": "setprototypeof-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "sha512": "1392c35fb5aba7ce4a8a5e5b859bf8ea3f2339e6e82aae4932660cde05467461fcc45a4f59750cb0dae53830ab928c4c11e362fd7648c2e46f6385cdc18309a7", - "dest-filename": "setprototypeof-1.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "sha1": "44aac65b695b03398968c39f363fee5deafdf1ea", - "dest-filename": "shebang-command-1.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "sha512": "907c6bdb366962d766acdd6a0e3aeb5ff675ad1d641bc0f1fa09292b51b87979af5ecc26704d614d6056614ce5ada630d7fc99a7a62e0d8efb62dbdb3747660c", - "dest-filename": "shebang-command-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "sha1": "da42f49740c0b42db2ca9728571cb190c98efea3", - "dest-filename": "shebang-regex-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "sha512": "efef9d161b5cc77df9dee05aabc0c347836ec417ad0730bb6503a19934089c711de9b4ab5dd884cb30af1b4ed9e3851874b4a1594c97b7933fca1cfc7a471bd4", - "dest-filename": "shebang-regex-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "sha512": "ab95cfcada85108287906762308ad8d749af2d1be7421e36ffe1a8065156ddbd8b5cb136c71269645766f78c1ed016a85774702721aa839c12edea714efd19bf", - "dest-filename": "side-channel-1.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", - "sha512": "b03978a8c1698a3706c36d94e70eb72a60f771925f06e16554d6d530a8deda47a828c2fb5f653359b7385eb9846c3c20d0d5c9737cafe3fa31edbf8959be7b91", - "dest-filename": "signal-exit-3.0.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "sha512": "83d43585a79bcb7e8e492b706f89ed08618668ab1a5528d0ebc7c1c6841cbad9797d2d6fb98d7c1f7c12b778c5c85b6b931f8acf45751bce40e0cc80743322d9", - "dest-filename": "slash-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "sha512": "f7884ad0787cacfa90976c577371ec681a0e5ca576d0c4e83e4717bf06c84962c4b3eeb8b01ab9905827da42431dbd4faf2f72acfd1dc6b088f5145c8bb4572a", - "dest-filename": "smart-buffer-4.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "sha512": "3b6ee5e3168c62dfd1490e53477be9582001e4a6ff73321ca9414e33f0b87d870b9db6547353e48d300c8e87f6a4159a493c0e51deaa5077051951a3eda2309f", - "dest-filename": "snapdragon-node-2.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "sha512": "99b2a431d40ab235f80402f86d16138f6d5e74e7fc70ded71dd6142447be667f7d85511870cbca3dcb7522a35eefe0193e2ae7f01083390047419927aa62a565", - "dest-filename": "snapdragon-util-3.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "sha512": "16dc8e9d637fc021d355738cc2f4afdba77e928e6f5a52030face8509ecb5bcbe1f99042f107658ef7913fe72b36bb41c22a04516cbfe1d32d6c18c0e22a0d96", - "dest-filename": "snapdragon-0.8.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.2.tgz", - "sha512": "6734713c1212404ed1a73947e2d2893106c733da5a6c796e9345816b1010fb09bf52279e055068bb4a78c159d240637d426a40672810d1c0c8ca95aea8e16615", - "dest-filename": "sockjs-client-1.5.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "sha512": "18980b4d9eef61bfc9b4f492675d21b0e608bc462c8db354fb33dd20771469654d5043e2bf3c64bb7d7ceb9b124ae7740dad16e2511e38f966c3ddf32d0721b9", - "dest-filename": "sockjs-0.3.24.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz", - "sha512": "b7c274906ddcb2303883a1536ec30e5b0b3eed1eefb910bc690ff0cb7ff53969ac83003af33b3ff9c1314349284a2b540d7aa1b9f17f609afdc2d34c647c3913", - "dest-filename": "socks-proxy-agent-6.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz", - "sha512": "90b43d379b9c8fcb88731ac3c239b426caa4d3ac5da418c6350b695f2e10f3f418da4f9f63b9d91fc080472fa191b1be486028be6cf3b9ab82a4195bf05ae704", - "dest-filename": "socks-2.6.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "sha1": "441b6d4d346798f1b4e49e8920adfba0e543f9ad", - "dest-filename": "sort-keys-1.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "sha512": "aa743b81533118dc6c88be2512e2707bf4e8f149caedf02799b184107f11a4ba2eb8a6de126d2585b415148acd4ae07e1bbb55ac0955b198044d3e679637fe23", - "dest-filename": "source-list-map-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "sha512": "1edcfe467b175a4e7e3f6b25c79261dd0ebabe1423d429659b4cef9da63df3e345c7e0efd8217f7f93bfb7cc7e29a35dadd200b2bb8dce887f2a989a95ba809f", - "dest-filename": "source-map-resolve-0.5.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "sha512": "b6bcb4fc9ab13cb17d9ce8ef4ad6bbb55a277643f97708322c38d5a323039668ee813da5459d4e7ecad84e409dda19039c94ca45b3bf465de8ae6f2f96c5336c", - "dest-filename": "source-map-support-0.4.18.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "sha512": "b811d4dcbddccec232617297f3c7ddac6a2fc5d482a13183459e92617b524712d95331e0e4fffae87b7aba85251eef4466877e8a75e12a8dea420c17513ff2d7", - "dest-filename": "source-map-support-0.5.21.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "sha512": "70f8853932d42af245220e1229549ccb88a53cf5baac580c81fb9924f3680ee32cde70b51db314c9c068270efbc45229eb3d5425024e7f1e82f46307f340e24f", - "dest-filename": "source-map-url-0.4.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "sha1": "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc", - "dest-filename": "source-map-0.5.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "sha512": "52381aa6e99695b3219018334fb624739617513e3a17488abbc4865ead1b7303f9773fe1d0f963e9e9c9aa3cf565bab697959aa989eb55bc16396332177178ee", - "dest-filename": "source-map-0.6.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "sha512": "0a40a3ea088ddd2fa7f6aad88814d7e60cacb6510d9d15b98d978d2c7a5ee9ab9ef92ac7706e55630ba3856f6ce1d637d66106b31043ac747aa08ebd7d35ec69", - "dest-filename": "source-map-0.7.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "sha512": "70e61c516c210ae1c25e2e3d4611510b22442b788f8f5662cfd0e9562577b5b64ec170f8f50cc837732938b24dc61daac2ada524965a28c570f6a362e234c2d3", - "dest-filename": "spdx-correct-3.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "sha512": "fed4eb60e0bb3cf2359d4020c77e21529a97bb2246f834c72539c850b1b8ac3ca08b8c6efed7e09aad5ed5c211c11cf0660a3834bc928beae270b919930e22e4", - "dest-filename": "spdx-exceptions-2.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "sha512": "71ba87ba7b105a724d13a2a155232c31e1f91ff2fd129ca66f3a93437b8bc0d08b675438f35a166a87ea1fb9cee95d3bc655f063a3e141d43621e756c7f64ae1", - "dest-filename": "spdx-expression-parse-3.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "sha512": "0ad97606b1623345f7300358823dc29328318519abf668bac617a36dd3bdeb49c5e840c90294d8a67d014270ca96734150b2a208dd67df0f440641caf195a0fa", - "dest-filename": "spdx-license-ids-3.0.11.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "sha512": "86c2d5144e528c0e930a2b167895c52a788618ea4180c2e67ab7ced9a0b2094e6cee727fae901ea6a98589fbff1826d26ee7847802499e6490dab282fe0f0573", - "dest-filename": "spdy-transport-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "sha512": "af8ea065065057e2a5f6822dbe5d49659a89286afea04901d3c03a07392247be7ddffec86edba77171ddd98a18793b06e35e7b66cb0cbbd298bd41cb723703a0", - "dest-filename": "spdy-4.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "sha512": "3733558490d8a7071e5558a2f3f1eee8329f0f61be36b407952fd5fea82fefadc462e755c0470c40dc5dda587ed15ad40725cdfe826497982b3a1616bd05188b", - "dest-filename": "split-string-3.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", - "sha1": "cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f", - "dest-filename": "split-0.3.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "sha1": "04e6926f662895354f3dd015203633b857297e2c", - "dest-filename": "sprintf-js-1.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "sha512": "544d123951070a4ed073cba5916c379ed0335eea9fed2da5bf041a0cb46751e20468a35027357a07098b2a13aa4fad5a1a17d432b5de68193ea03182cef85cba", - "dest-filename": "sprintf-js-1.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/ssri/-/ssri-7.1.1.tgz", - "sha512": "c3e75a0b35cdf3d3ec7932fdf4c900f9fc4911c537c1f684fda8748b49673a5a46d4260b276663cc4af2ebc60129f2ece097e84d286b4c4b0990066e359fecb7", - "dest-filename": "ssri-7.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "sha512": "f7ba92873cb5022cb1bcf34890b5a81ae6bbc68433ccf8d0d07007e01d2b58aa3b499e944ae3dcad488016bc2cd141fc46b6d69a0ab72cc4ce6e13c81db6c179", - "dest-filename": "ssri-8.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "sha512": "c6b41c99884eb27ff5917f95adaabeee3e281368ffe8116c719d1eb66620f35c6e33c1aad34db63f16fcf88aa03855086b11ecd0a6926fb4f5f8e7a088dacd14", - "dest-filename": "stack-utils-2.0.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz", - "sha512": "8c7f4486d2888ee5d9d9c5b19974bc64ff345f20b789ab10c4c0d5f23ce1349a5f0dbed56d02d55b85afb31cfd419bf357e1b862849f05454a0cecb12f38bfb2", - "dest-filename": "stat-mode-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "sha1": "60809c39cbff55337226fd5e0b520f341f1fb5c6", - "dest-filename": "static-extend-0.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "sha1": "161c7dac177659fd9811f43771fa99381478628c", - "dest-filename": "statuses-1.5.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", - "sha1": "4d5e433c185261dde623ca3f44c586bcf5c4ad14", - "dest-filename": "stream-combiner-0.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "sha1": "279b225df1d582b1f54e65addd4352e18faa0713", - "dest-filename": "strict-uri-encode-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "sha512": "bda7dcbfa2a3559292833d3aa0cfc7e860c1ac0b73f2f76141a9068c522f36b1c0eb2dc7085d422272f2f902eaf1d4c93d0d5bf8a0d4a8315cb647515b8e1ed7", - "dest-filename": "string-width-3.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "sha512": "c0ac90450a63274b08a7ad84ad265d1ac8cc256b1aa79a1136284786ee86ec954effd8c807a5327af2feb57b8eaab9e0f23fdcc4a4d6c96530bd24eb8a2673fe", - "dest-filename": "string-width-4.2.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "sha512": "cbdc428f0d4fdb703093c12f4e97322f6348af58fbc09dfd7fe93a96f46748ccfe9b3f421b3f4d60f7a50e4e3690ecfafaa97cc637caf28633cb78c03f9414e4", - "dest-filename": "string.prototype.trimend-1.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "sha512": "8e1e9ef7ce0e05fbf14b9d2d758da74599e80b9fe62c528e44441fc3cb79cb2b64a14b0944dc6f23f137f6abb5b03d0eb56237382d1780a4a6716c338b062e67", - "dest-filename": "string.prototype.trimstart-1.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "sha512": "9ff4a19ef0e2e851db6d57ef8aba3e5a88e2173bfeb3c30f30705ccd578f7d4a4324bc282d3d21b759786300426e2f29240bde104767907c8fc933ff9b345fc2", - "dest-filename": "string_decoder-1.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "sha512": "864457f14d568c915df0bb03276c90ff0596c5aa2912c0015355df90cf00fa3d3ef392401a9a6dd7a72bd56860e8a21b6f8a2453a32a97a04e8febaea7fc0a78", - "dest-filename": "string_decoder-1.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "sha1": "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf", - "dest-filename": "strip-ansi-3.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "sha512": "0ee46cd6029b06ab0c288665adf7f096e83c30791c9e98ece553e62f53c087e980df45340d3a2d7c3674776514b17a4f98f98c309e96efbdcc680dc9fa56e258", - "dest-filename": "strip-ansi-5.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "sha512": "637f153d21dcaa416b0a916743dbee4979aabaebf9a1738aa46793e9a1abaf7a3719cf409556ba2417d448e0a76f1186645fbfd28a08ecaacfb944b3b54754e4", - "dest-filename": "strip-ansi-6.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "sha1": "2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3", - "dest-filename": "strip-bom-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "sha512": "df1bab16fe6d1208a2df7662f09b69e79c042082d1f5e877e05016d343d97fe2674ac4e657f8a87b04a0425f7b247be08e8446c0f4a1b169be21daf1077e5dd3", - "dest-filename": "strip-bom-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "sha1": "bb43ff5598a6eb05d89b59fcd129c983313606bf", - "dest-filename": "strip-eof-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "sha1": "3c531942e908c2697c0ec344858c286c7ca0a60a", - "dest-filename": "strip-json-comments-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "sha512": "e9f3dcf91e22870a8fe8dfda22fd9fd60307f25395b56407a2a0b8c8aea8483555a1cba602c7c2aa39179ea89832198cc12fe61072e9ed57a196ddea97a9448a", - "dest-filename": "strip-json-comments-3.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", - "sha512": "939e72c4a1f06979e9606b0ece0e1597cfad0eb5b29710c4a649c68e14e2641f1d151539ad3a3d080cdec9c8afc55decfb39532b0aece96c4cc51f799f6ea4c2", - "dest-filename": "strip-outer-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/strtok3/-/strtok3-6.2.4.tgz", - "sha512": "18ef0870517d1a6143bea76e22ca540700b309bab37a0c95288b12ca670c82264a7827eb37d4a8c2d5288bcf9be7d5993008c8cd566273f16df7bfa9ca747723", - "dest-filename": "strtok3-6.2.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/style-loader/-/style-loader-1.3.0.tgz", - "sha512": "57b4c2391928f2bb3dac8aa44ab94c7e4a80eb70dfa060412662b590a1827128be0566f872acf4491b27a7897aad4e62c0e11dd3fd9e3efebc495db6557a27e1", - "dest-filename": "style-loader-1.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", - "sha512": "32f8d7ce4cff04e7f2543906d2814eb41c475f6bb780a6cc1c817f7576e566c803dc158e14b987a2f229658ec1ca425d02372a442062d5660135d102f7223bbe", - "dest-filename": "sumchecker-3.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "sha512": "423563c1d5c8b78d3c308880a825f8a142ac814d84a801b3b363e9926e1a4186e39be644584716e127c5353af8b8c35999ad1ecb87f99602eb901d1a5f440ca3", - "dest-filename": "supports-color-5.5.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "sha512": "a9ed637e6d4c83b36afcd4a1e97136e203d744e115b161f10b52c8c7ffd73650fd8b0ed86501a364d8d837bc466841ba88a740f04b4d156e91d208e7557a7ec1", - "dest-filename": "supports-color-6.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "sha512": "aa9080bd197db2db8e1ef78ab27ec79dc251befe74d6a21a70acd094effe2f0c5cf7ed2adb02f2bf80dfbedf34fc33e7da9a8e06c25d0e2a205c647df8ebf047", - "dest-filename": "supports-color-7.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "sha512": "3295043763a876d533c6f29097bd9c505ed14391221ec1af4ac546d226bd73945b5862f6088e02ec4a4f4bc513048a659e5cd988db95e7ac3e16e371cb7b72d9", - "dest-filename": "supports-color-8.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "sha512": "a2dd169d74bd7e076480871e3dee911cd935580f3e9ae3dae9c4a3791dd5f0adbbabd041d6b4c4dd1d69ec7bf4cf567201cf2ce95beff0323259febcd4c02dd3", - "dest-filename": "supports-preserve-symlinks-flag-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "sha512": "e162bf6d86668fcc4bafe1d408e0c7185d59173b187df6ac2d480488c058e1f82d96d74ee81e1626d9526cf6834cba584dc195c0cdaa2e715320211c371b3790", - "dest-filename": "tapable-1.1.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "sha512": "18dcd0bd04ce20fe91c937c4d90c5bf19565366c349fcf2fa75b33c1646298fd369a74ecc775ad9f9a9176a63dc365ddb8535482f3b084d9d0b23c02a7e92a69", - "dest-filename": "tapable-2.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "sha512": "6a7fca650cd052464292ea0003ae2133dd97d14adbe95a51840165943cf3e3853699c0f9b1c993df305ce15815a64ba0179f34f83427f1e0054b2a10b74b739c", - "dest-filename": "tar-6.1.11.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/temp-file/-/temp-file-3.4.0.tgz", - "sha512": "0b9b63942fc70ad5543a2dca595a24778bc755588e9868ed2f0221e0cbb33e8fe73184d5fe9d6eaeddd19cccf62165c374a106247de4e7e28fc6da91b14606b6", - "dest-filename": "temp-file-3.4.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.3.8.tgz", - "sha512": "fdf2b0dd1fa15b21df631ec1bfaa0faa69381c641cad62ed5775fa820bcfbb03cd1d29f3bd5579d73e8e69a08ebace182e3bad6063b3de91296e17ba529dacd7", - "dest-filename": "terser-webpack-plugin-2.3.8.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz", - "sha512": "1af959753eb03d029b0cd5bf18343364583f8f8bca53deb2976aba99c524cca3a05b88307f567c7194e8502af3df55c794f587f0c55bd6bdad16d743b53189ee", - "dest-filename": "terser-webpack-plugin-5.3.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", - "sha512": "1003e2a5335e5ac6ffdf02cf7aea75b553da5df21a53af3132755d3da7c82f54d5d393a101202b63221f16f9ef24236b4763483af0d534d4c545af917b6316cb", - "dest-filename": "terser-4.8.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz", - "sha512": "00c985f7d0cc7c40e24497f17d8e638f9c0d1ff6d83b4f5c9e24aa85fa32c5cf2c168608824272f3a1b4e14a195395639699e9955bb42ba4f1e84f5be7e0e51c", - "dest-filename": "terser-5.10.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "sha1": "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5", - "dest-filename": "through-2.3.8.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "sha512": "78763b9c17ed813841a8ec8719537e97c805d01b9c3f4f5f328d283bf2dbd30d4e17cd1d26ffa50d5a571bad16310be47310243726cab2b10813766d28698fac", - "dest-filename": "thunky-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz", - "sha512": "47033b3283e88cfc6c381627c9dda1cb46f1b48955ae284db3da63e5252f63c673d6c41c406dad1b5852afc3c3c5f80407c44d28386a6c896ba086ab48d0cdb1", - "dest-filename": "tmp-promise-3.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "sha512": "efa49486d7ea4762239fec6595c2393f5a326a79c73470720fcd16d6ae38ee05379a9f46f4f4a919d5a68d43874433e21d869c224eba5bbb9b0d3b8f177044b5", - "dest-filename": "tmp-0.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "sha1": "dc5e698cbd079265bc73e0377681a4e4e83f616e", - "dest-filename": "to-fast-properties-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "sha1": "297588b7b0e7e0ac08e04e672f85c1f4999e17af", - "dest-filename": "to-object-path-0.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "sha512": "22adb95c1b7acc3e67a4f8652d55c614ddff832476fea38370a34dc9331de2f6e6dfd1d468e8803383ccab478c542fd3931cfe66376c739e60f72cb3f98ab4d1", - "dest-filename": "to-readable-stream-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "sha1": "7c80c17b9dfebe599e27367e0d4dd5590141db38", - "dest-filename": "to-regex-range-2.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "sha512": "eb93fb8b3e97e7212bd5cc1c82f4316db230ed493780ecb974876d678ac3bde2ea86b7493fe2e2fc7c7ab722b43446fed860b29de08c2621aaac00c248d93cb1", - "dest-filename": "to-regex-range-5.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "sha512": "156b6578d02d67f2a2daab6a7a3d825d339ac8e1fd6c70d017e438f15a56c835e36d8c40e18cfc883077d735ce05494e1c72a27436ea195ad352f40c3e604607", - "dest-filename": "to-regex-3.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "sha512": "a39b123ca12483f0c840d987e37574fee7ab2eba7355e764521f2d18dbda797a5fa6ec2329e9e54a8c7fd8efc14e5654b447be246eece58844cfad3c3e500744", - "dest-filename": "toidentifier-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/token-types/-/token-types-4.1.1.tgz", - "sha512": "843f90cae500c88daca73b08d01ee07ff8c9da0811e118e4028dfb8f74adb9e3e1029254c1c5838e71c33857485984b0351dbc1f5e21a709b8108f95d5379dd7", - "dest-filename": "token-types-4.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "sha1": "8184fd347dac9cdc185992f3a6622e14b9d9ab6a", - "dest-filename": "tr46-0.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", - "sha1": "e3646a2ea4e891312bf7eace6cfb05380bc01c21", - "dest-filename": "trim-repeated-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", - "sha1": "405923909592d56f78a5818434b0b78489ca5f2b", - "dest-filename": "truncate-utf8-bytes-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "sha512": "5e78b7e4d2b38e032bc1ebf2b074c202bb4b0e93efc9ef3357fd04e04c989f8dcfeffeeabd0c0f87d0469077b06ccba5567b5b8a099c4fbadd5f704da3dc1126", - "dest-filename": "tslib-1.14.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "sha512": "efb11bc8f3e9333f8544546e00595632d9a051619ef54386d99db936a0b08888d184e7f988a1aecd27b93f6c3595aabe164472e29f8f0ae5642521a4cd310a57", - "dest-filename": "tslib-2.3.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", - "sha512": "d61fcb9eaf726a3298d8f11b05a74f5e3dd5c6c0c3bbce383a7680a39d9456623322fc30b413c8b8dbe48eecc19535a97c9c946c6ddecf42920626d0923e288e", - "dest-filename": "tunnel-0.0.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", - "sha512": "df847b1d39c6d172097014a7e5784377b9cd14f45c5d8459ac10763b68dd2aa60e0e5752cc102acec5a865862f76e932ef7b68612fc44aac4fbe40dffc5d1732", - "dest-filename": "type-fest-0.13.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "sha512": "35ef9e138af4fe25a7a40c43f39db3dc0f8dd01b7944dfff36327045dd95147126af2c317f9bec66587847a962c65e81fb0cfff1dfa669348090dd452242372d", - "dest-filename": "type-fest-0.20.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "sha512": "c864b36bbe31934506f24fa92e1e687a8622aef2225a8e6dd3fa37cc71c03b6b510e265cc563fb7f2c0d95786a6fafebeac5afc22f91b3240c5a154b7b8055b8", - "dest-filename": "type-fest-1.4.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "sha512": "4e444aafdb144f1107f0c75fb8248fed58b3272cd134c8e3d89d9da3626bdcaca6e7df0955d124b2eccf4029e514f5b8932f50fa203e99af411a6d3a5d0072f2", - "dest-filename": "type-is-1.6.18.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "sha512": "cddbbc5cc3440dea4a291f9760e5c054fb56ba2d25cb436da2152c730f9499a1e20164fc86b575aebfff1fa57ed03bc9dce435f52f7bf4cd2568b7d7f2b9bcd9", - "dest-filename": "typedarray-to-buffer-3.1.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "sha1": "867ac74e3864187b1d3d47d996a78ec5c8830777", - "dest-filename": "typedarray-0.0.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz", - "sha512": "4c24c8ba5ef42f259ee882564fc41261e039e1641ef048d0154e30639d856ac8f950ac7cf0b35828280110770e30eac5175aca19b0fcbffc5c356554abd4b298", - "dest-filename": "typescript-4.5.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "sha512": "b5953fdcda8addd0398291352adca2254ac40749719c690c147a6d27baba7b0759f2cd7642b383c0d6e12094ad98991dd500d76b535103c685d80d7393f629cb", - "dest-filename": "unbox-primitive-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/underscore/-/underscore-1.13.2.tgz", - "sha512": "7a4635361473ab4074f20e1b1ae5f8c1dda3671e469cacfa98a4aa14be27a8195fc8c1a21b5d200c58434cc11f6260cbe89cb4154219a7bc22441fb404fec9da", - "dest-filename": "underscore-1.13.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "sha512": "c98e4fa4395f548539fb2fc1482c402510484b565cd9d0c6dd48eafac47453e26351ebd6d8986870e17eb2844e60349a01eccecce2aecb28b1843ea60649d299", - "dest-filename": "unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "sha512": "e646990ab6e9e6699bcf9ba50640e46d8d12b0f3a32aa552df95692fdba530f7d29742745ec9bef44be986ff42a08645c2b7bb689a1af78018eac78c28654de5", - "dest-filename": "unicode-match-property-ecmascript-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "sha512": "ed886473461efade0f358cce18a79d0e15db60805ed57110610c4e3f285c5cd309d1608006aaa3e9c93275dea95916531d5e06b823ca74101488c73ad2db0a57", - "dest-filename": "unicode-match-property-value-ecmascript-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "sha512": "e597eecbdabf0c5af8b5f3bb64f7955dbd5a3e879049d78530ba58b8579b7a10c085bb9ebcbb39cb149998814dd6d3f917d5a5e08a49ad8a2383ce7fce0c991d", - "dest-filename": "unicode-property-aliases-ecmascript-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "sha512": "b497d79b131e5989dccc256ced7004bc857b89ea6900b7727a958c90793072246966b686ff1c13facd8937cfa9af5fbc8c245ff34145cefafe32941e7a81785e", - "dest-filename": "union-value-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "sha512": "566a748c8a76967df95135eeaf2be3ce48c6751c9ff5bda54d7b9261488f9b345c977143b58a80c0e9d3264027803f525a19e82730db4cac1a3ab67e493b7135", - "dest-filename": "unique-filename-1.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "sha512": "ce85abf4e6dac402c3dc338f7e33d2ab1b787e766259b9711c881e5aa5bcc7b52a0f312d1c440bce38b672e258405094e8a9a826290e600665ad31c779b8f1db", - "dest-filename": "unique-slug-2.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "sha512": "b8d69e8ab10fbe96564a0cf0b0f1ad536cd5493ae7ffc2f9abf21ec59987d1e1fa480ef70a6000e54e06c0e453c50019b3de530172cda9e2e83cf34ee6065f5a", - "dest-filename": "unique-string-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "sha512": "ac125e2390970259b2d6957eeb5ed607d27add4e9771acc71c5d9fd9d6c98b1e17ce9505d114b765b8f414620e080bdae4ffddfc604e61a002435c3ed1acd492", - "dest-filename": "universalify-0.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "sha512": "84066c2aaed8cb5d59bb50c4d0ecd68f0ee79cb6662596130d96721051d9754855f05907e4c09fa14d5731ac57a2fa725b99eae6c70faaad190cff59ca5d38a1", - "dest-filename": "universalify-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "sha1": "b2bf4ee8514aae6165b4817829d21b2ef49904ec", - "dest-filename": "unpipe-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "sha1": "8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559", - "dest-filename": "unset-value-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "sha512": "699c06a5a9853bad60dce95f4fb390087aa11a75b8de2787f5665e3fb43137f1bf8d2e237ea524671a2bcaf26054f11cae5e4d2ff8201ec4a62cc1ee1fae0b86", - "dest-filename": "upath-1.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", - "sha512": "22d9c80876de321f46a94cb7d6114fac3d6472e677ae9c4365b7f82940dabd7c12d1b5b99bb48b6c3429197dd462bd3bd9c6eb17984552cdebe6d52c3f08df1f", - "dest-filename": "update-notifier-5.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "sha512": "eeb294cb2df7435c9cf7ca50d430262edc17d74f45ed321f5a55b561da3c5a5d628b549e1e279e8741c77cf78bd9f3172bacf4b3c79c2acf5fac2b8b26f9dd06", - "dest-filename": "uri-js-4.4.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "sha1": "da937f7a62e21fec1fd18d49b35c2935067a6c72", - "dest-filename": "urix-0.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", - "sha512": "dc14d5f35dbe0151c738940ef0ee4c916819e5aa2c3fb1a744e270bf32d2f615838f4d2567a674c0d6a4e36dcba7d3c164dd3937e264fcde528bc8d10251b258", - "dest-filename": "url-loader-4.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "sha1": "16b5cafc07dbe3676c1b1999177823d6503acb0c", - "dest-filename": "url-parse-lax-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.4.tgz", - "sha512": "213780072596a2abad14295cfe54599c5a6581780466bdd627a5e780c33f37d0cc226e0af335cf099d4976ed2b111c0ef38c35582e709257b6b9bc1303835306", - "dest-filename": "url-parse-1.5.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "sha1": "3838e97cfc60521eb73c525a8e55bfdd9e2e28f1", - "dest-filename": "url-0.11.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "sha512": "73011255794edeeae5f585a5156fd303d72c842121b6eec8289fe9e6ca09fe01a98fbbdbbc5ac063f7888a843a0f0db72a3661620888a3c1ceb359d0dafaffa1", - "dest-filename": "use-3.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", - "sha1": "f45f150c4c66eee968186505ab93fcbb8ad6bf61", - "dest-filename": "utf8-byte-length-1.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "sha1": "450d4dc9fa70de732762fbd2d4a28981419a0ccf", - "dest-filename": "util-deprecate-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", - "sha512": "8beeaa03630f86fa0a2eec6724da57006860ec7a6140e494ab62ca3190f49b5e448ac91752432f29d17852e8b459878250679afa8d9cc3f66ec1e86d7ecacd90", - "dest-filename": "util.promisify-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "sha1": "8a16a05d445657a3aea5eecc5b12a4fa5379772c", - "dest-filename": "utila-0.4.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "sha1": "9f95710f50a267947b2ccc124741c1028427e713", - "dest-filename": "utils-merge-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "sha512": "1e3483470ea0644e4932081cb4705c8d56a4d3cf8a1158522220f31674fd4bd69e826a7ce52fdb45e0554dbe104c5691369b49f64b9868d8676cd10e91b29bfc", - "dest-filename": "uuid-3.4.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "sha512": "f8d62cd9078c5b2f865853849bdc679fa1c20e9d25ed0043ee697cccb52627ef77439345d0da1c12b9f09139175453625f7fdfa42e9a7d2f0385bfe0cfb47b7a", - "dest-filename": "uuid-8.3.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "sha512": "97c9421262dc2d8661e276ee9cd66f40225ce69bfbf910b06bcabf2dd531f2eee5b16bcf0ca9a9a1d24024dc24021242fff745638f0ab881268ed778455883ac", - "dest-filename": "v8-compile-cache-2.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "sha512": "0e92a6d948bfc4deff1d0282b69671a11581859f59d24aadca01bc5c280d43c6650e7c6e4265a18f9eba8fc7cde02bb7fc999b86c0e8edf70026ae2cf61dbb13", - "dest-filename": "validate-npm-package-license-3.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "sha1": "2299f02c6ded30d4a5961b0b9f74524a18f634fc", - "dest-filename": "vary-1.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/vue-devtools/-/vue-devtools-5.1.4.tgz", - "sha512": "1010045ef0075229ec3f3a12884969b34260b4b5d49c95ca2096cfea77ddcff47add574a04c7c9df8feb162a7ee224fb88c6d54b9940e16e8dd63ab81e3e0b0a", - "dest-filename": "vue-devtools-5.1.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", - "sha512": "c74b7426ec9d228f2a08d72d743ae7d4ecc7fea0f3936fab742382dd8cee999e367e232a990ed3df142eaf291832161f1da3c74e9e19c40c7635f528d4ae9068", - "dest-filename": "watchpack-2.3.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "sha512": "3bce103a7af489cb1b1462d2d0eddb23916cc31cd1afcfe01f05a40e5405b248523ebc905efad33318f118fe3e8966286ae2e806f7c3a64ace6ae67ed226690c", - "dest-filename": "wbuf-1.7.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "sha1": "24534275e2a7bc6be7bc86611cc16ae0a5654871", - "dest-filename": "webidl-conversions-3.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.12.tgz", - "sha512": "3555816b3f64f37f591ffb229eeaccf87703bc93935f04a3629d64bbee5729e382d37cfcbf9422b672bfc7e940c465c5ca175aca821ffc63a9bfce73dffc4f6a", - "dest-filename": "webpack-cli-3.3.12.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz", - "sha512": "7637a573fcc68b3f67663fd4ecf4c18b6562a2b1895c45a8ff796d90f6c3cb1097861117916d1c7bdf5f6a56a89384cf8fe02cc4b897251d0404e6f4ce1f5f29", - "dest-filename": "webpack-dev-middleware-3.7.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.3.tgz", - "sha512": "df1df5ae36c441628c37369c519444eb05ef505b86a47eefaf494811b6293001bd04ec62d3ddbc414d4106cc0e00fde48371f53b88624beb2ae18c809fa00d9c", - "dest-filename": "webpack-dev-server-3.11.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", - "sha512": "717f06daf47ff395181b9f45824a0c6a6c075089124a55776c1311b1bc555d5524da3e8d95e08a8d0fd613d79883d598e30db93bdc3cc0a3f8af335916651c52", - "dest-filename": "webpack-log-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", - "sha512": "4d4135506a135f609de368f792b198a8e6d96ce0fec45eeedbc581eed7d4a2b772b528db5932232bff15d1a9a405f4d8378fe907f1880e525967ae7b0461b5f6", - "dest-filename": "webpack-merge-4.2.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "sha512": "9604d2dd786fd6508e2a8ed20394e3297323a52338b018cd579faad9ba9eb1b48fb391631a653a8e3b414a45fd6f8a96f3bbc322c0889543ce1216d9acc76379", - "dest-filename": "webpack-sources-1.4.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "sha512": "fc3c8c10eac380b28a206d1f9afb73fb87545ffdc6868cf0826ea23e9f0a461be7f9e41ff7e43b196c5534c937fae08f59f757602e04c4605c9085dd1447c7d7", - "dest-filename": "webpack-sources-3.2.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/webpack/-/webpack-5.65.0.tgz", - "sha512": "439a2bda8e842acefea0a989a3b2daa9968c3a50d642c7bd4e6e65d5601f53fba32c63793dbd12a8679590dff86e93e612a10fe519d5862aac3ad5ad515c0647", - "dest-filename": "webpack-5.65.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "sha512": "6f5eca783210563bdbd2cb2e4831767185d28368b3b65889e01f5676cb81e89f79daa08f2a69d5ab80f25b99a8b489971c30b57014ffd547b3ac956c2b0e738e", - "dest-filename": "websocket-driver-0.7.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "sha512": "3aa79d3c818e7ec0e5a37d5437061b08531268ef66f46ff47da2078f9fdd6450cc16a3d3731e94c2ac8ecb708e11a10e83ff55b0622976a9fad96e4a868292a6", - "dest-filename": "websocket-extensions-0.1.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "sha1": "966454e8765462e37644d3626f6742ce8b70965d", - "dest-filename": "whatwg-url-5.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "sha512": "6f065dbf400a2e9a65158d8a6515fa4efcae37ba238ebee5c2483a9a5d2ba08cbd61eb92afb252dfbdaa94d5b5f14418ce060af7388671ead6a993a6127f5536", - "dest-filename": "which-boxed-primitive-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "sha1": "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a", - "dest-filename": "which-module-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "sha512": "1f125d616ab53132106c9de7c3472ab2c1e84cd536ebb2a5ac3b866755989710d2b54b4a52139a266875d76fd36661f1c547ee26a3d748e9bbb43c9ab3439221", - "dest-filename": "which-1.3.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "sha512": "04b2374e5d535b73ef97bd25df2ab763ae22f9ac29c17aac181616924a8cb676d782b303fb28fbae15b492e103c7325a6171a3116e6881aa4a34c10a34c8e26c", - "dest-filename": "which-2.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "sha512": "78330e45868f359e2c408bae60f0c7750bdfe20c8217dac4115ff23f119fc0f911a1dc048223145174f1fdd7b1f8c7b4c31c79dd2f8d8141da3fbcb73069439a", - "dest-filename": "wide-align-1.1.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "sha512": "36c9a85da96c5950cc1aea71679474f246bd7e56638e22ef1d501660e2ad88a33cba3b595abf5c45f7da93eb92138f3e39bf0e6da957a70c9e522c830fa40582", - "dest-filename": "widest-line-3.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "sha512": "402d7f88dff6fd13d52798d82bc046b6d8f9cfcdcb9922a6bdbbeb5cf3422d94846f7d8a2950c90e5fcc3add8dd35a94d87fc593311af4f2ada3506a0e3b5ded", - "dest-filename": "wrap-ansi-5.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "sha512": "afa94f7011b1657948732984bbb227c43321756d0a0f1a4b82814b720b9ab3109a27f48e219c0835ab4af4a63fb5ff99ae5cb038a5345038f70135d405fc495c", - "dest-filename": "wrap-ansi-6.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "sha512": "6151888f691a98b493c70e8db198e80717d2c2c9f4c9c75eb26738a7e436d5ce733ee675a65f8d7f155dc4fb5d1ef98d54e43a5d2606e0052dcadfc58bb0f5e9", - "dest-filename": "wrap-ansi-7.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "sha1": "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f", - "dest-filename": "wrappy-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "sha512": "02f1dcc99e499d27eade2a12ca3ac1907f725b89bb03293cffd332fc30fda2729ebbff787f0acca1c7a63b64002450259e70cdf990d2f998c0479b9ad7f3d5fd", - "dest-filename": "write-file-atomic-3.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", - "sha512": "ce6865b68491f2ed5c9c3b03e374d7e7d9b3a0c66c2caa94c1ec9804022f4e7811dec85cd16e9a399ca5666abfee1ab25713dd8bee547764089db960c84ef67f", - "dest-filename": "ws-6.2.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz", - "sha512": "e862e00aaa36732d80dab8c2345971412e999631bf72865f65772595d23c141ff51b7082237e9977cc72d87ac55400a2f2d7e4e57ae02d0124f8fd139f3f5470", - "dest-filename": "ws-7.5.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/ws/-/ws-8.4.2.tgz", - "sha512": "29b938371caaeff656aabfed6ab23dc88b7ffa234d14e8c15c45a04dbe3275a34704d1a0bdfd901db4bd7dd7ec9dd7e316517011de0097e9b0f37624683d7464", - "dest-filename": "ws-8.4.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "sha512": "3d23611090de8d9615ee1e7406884bd3d12bf5568879faf62cc01fdce126a429233a2df8798c906005d44e3110b5925329c17413650a4e1fa8b032ec80d8a6f5", - "dest-filename": "xdg-basedir-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "sha512": "c923e2323334fa92c37ed1e05d8e01cb4bacc08dd23ca2c3c3f8b75176e73bc33fa76f33a9ec425283e6405ad80feff5073846252b368b511158a240b622ebba", - "dest-filename": "xml2js-0.4.23.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "sha512": "7c396c23f905131ee02ef6de71cd3fa212c6e747ee810a7caf21f3313b96f6f49ad462745d858a9e1b14c7ba227b71bdf3eaf9e9a4d0214078921b78d91dc9bc", - "dest-filename": "xmlbuilder-11.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", - "sha1": "132ee63d2ec5565c557e20f4c22df9aca686b10d", - "dest-filename": "xmlbuilder-9.0.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/xpipe/-/xpipe-1.0.5.tgz", - "sha1": "8dd8bf45fc3f7f55f0e054b878f43a62614dafdf", - "dest-filename": "xpipe-1.0.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "sha512": "24a86a4cec12aea340d4d639952ced2751ab06252874b326219b8b88368c449fa2b4577e001544f170633af2162fead2a8d0c2ef82c24859a56ff538519e2125", - "dest-filename": "y18n-4.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "sha512": "d297c5cde81e0d62472480264cb44fd83c078dd179b3b8e8f6dbb3b5d43102120d09dbd2fb79c620da8f774d00a61a8947fd0b8403544baffeed209bf7c60e7c", - "dest-filename": "y18n-5.0.8.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "sha512": "6b850641a58f1f9f663975189c01b67b09dc412e22e05e374efdc9a0033eb365430264bd36c2bc1a90cc2eb0873e4b054fb8772ba4cea14367da96fb4685f1e2", - "dest-filename": "yallist-3.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "sha512": "df074689d672ab93c1d3ce172c44b94e9392440df08d7025216321ba6da445cbffe354a7d9e990d1dc9c416e2e6572de8f02af83a12cbdb76554bf8560472dec", - "dest-filename": "yallist-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "sha512": "de56ec3517ff8fe03842e4997c3440ec74527d6af33b4623a9325de648c0ab7ed97a9d421206989ab1fd4371b03e207d707c9dd58d54c208068491a8c62a5bce", - "dest-filename": "yargs-parser-13.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "sha512": "a39d23d09793a32ff82ba39971a4265ba9725d72a1abb72c4445dc0f0936a2614f244c1434e56d24abe60ebf442357c025953265c445ee4c460569915ee76b09", - "dest-filename": "yargs-parser-18.1.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "sha512": "cb5d67184953215f824f766ff6ded52a5f90de14d0a13f5ad50cdece1865e91a76d6027f2154d6ed9df2f4459786e5010b64a19dff835f46a7b5e72903048ff3", - "dest-filename": "yargs-parser-20.2.9.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz", - "sha512": "cfd900a5850e0b0a1e67bf2b7d161859d894fe234bea6c3062592465f268c8c475c69b3e344057e57ed7991a719191e15c9ebe132d342302b1041496f45223c8", - "dest-filename": "yargs-parser-21.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "sha512": "017dd9c3988faee37989eeb119120382a913f9986746564c2cc1c0b3cb60ee746bbb2d8d6fe8b9a3d6f082102882d334f2ad5da6bd8b5684bc2924cc62959753", - "dest-filename": "yargs-13.3.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "sha512": "69e3dbc4399c616fbe3daa81b09f8761417009dbf82d5bdd9e1072efc139ecf228afcfce56f84cac00c51440e1f031c3151bff3bd8b794f86c10d8ceed05f4f8", - "dest-filename": "yargs-15.4.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/yargs/-/yargs-17.3.1.tgz", - "sha512": "59400d41e5608cb6cdb04986936d1ffa794780eab3445a6219655a06b60660818034822ede55a3a328b47cd94598992f7e1099e815c835eeff5b63b66d5e2268", - "dest-filename": "yargs-17.3.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "sha1": "c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9", - "dest-filename": "yauzl-2.10.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/yazl/-/yazl-2.5.1.tgz", - "sha512": "a6110d8b63cb8879c76fa401568b7e7499da019d31a2c8fba777d697ece7223043967308d8fb19089677d3a04f4c539a1dfe6a743108f31e6a16b48e04de6faf", - "dest-filename": "yazl-2.5.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.npmjs.org/youtube-search-without-api-key/-/youtube-search-without-api-key-1.0.7.tgz", - "sha512": "3e3c1e8c5e98029643a93168e3aff8aba210973b54b50b0fffcca07076326a43c7aa28c82a7dfafb251054f4c2f76ffe219b6ac99061a5328fd5b1bab9928ffd", - "dest-filename": "youtube-search-without-api-key-1.0.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@ava/babel-plugin-throws-helper/-/babel-plugin-throws-helper-4.0.0.tgz#8f5b45b7a0a79c6f4032de2101e0c221847efb62", - "sha512": "ddd8812c85413cf8778f8fa16f9968d08d43f92fcefd50c93c8e18e74d9aa41c66c04aa3c971b881348f154966e35b1265e67331aad3fc6ce8bf0f6457b027d3", - "dest-filename": "@ava-babel-plugin-throws-helper-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@ava/babel-preset-stage-4/-/babel-preset-stage-4-4.0.0.tgz#9be5a59ead170062e228bb6ffd2b29f0489424fd", - "sha512": "959115d5900dcdfcd260153a587484aeccbb8cb3db0f58888006e80123cc70aa3bc285678b9ff920a59e4f44710bcad8f34d8c164b6eaf738a130d896354efdb", - "dest-filename": "@ava-babel-preset-stage-4-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@ava/babel-preset-transform-test-files/-/babel-preset-transform-test-files-6.0.0.tgz#639e8929d2cdc8863c1f16020ce644c525723cd4", - "sha512": "f1e2a1173669ed072ad552dfa02ef9820193f2742cf6af1f23196d538ef2081ed68bb63c41fea8a98d419b4cf4e1f21e736e2f120af410d8431c43941950ea9c", - "dest-filename": "@ava-babel-preset-transform-test-files-6.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d", - "sha512": "dbb778959a28995ca8e7555e831236d3164fb921eeb2a6d06a0ff3b6b042ef07a05a84359cb4443d548a496f1bca14e5cd32b2344e227da4c0ea50a9ec98e917", - "dest-filename": "@babel-code-frame-7.5.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@babel/core/-/core-7.7.4.tgz#37e864532200cb6b50ee9a4045f5f817840166ab", - "sha512": "f9b61bc79ea3e276019a9b16b673d4b0a5b735d9d8c5bab27eb3f6c3dc082c1b87cdd7c82b3f69ae27992b40c53f223392361551ee1092eb062f4eebe695f39d", - "dest-filename": "@babel-core-7.7.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@babel/generator/-/generator-7.7.4.tgz#db651e2840ca9aa66f327dcec1dc5f5fa9611369", - "sha512": "9b9aa8d9681d3897b262780a2266e4c90ae750dd663dc79a1b9055f86d04de05ac6b897f8c24abc9625d336c7c3ae1803b287eddde695587d958288d16dca7c6", - "dest-filename": "@babel-generator-7.7.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.7.4.tgz#bb3faf1e74b74bd547e867e48f551fa6b098b6ce", - "sha512": "d814264201022b360a14fa62c9ca05f6d95be4703896b5720262cb54ad7bec471002a8d52dc8946f6fd1fa7d5ba10f72e44355deecf666a88dc3b40c041c353a", - "dest-filename": "@babel-helper-annotate-as-pure-7.7.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.7.4.tgz#6d5762359fd34f4da1500e4cff9955b5299aaf59", - "sha512": "32dfa304a6b12f4cdf3885ab7d0a677d808deffad2e862b1e820827eea2a55577ed7b47cccd0e5cd5626222f6ac9bdb03a4d34d8db264930f29a4232803507ec", - "dest-filename": "@babel-helper-create-regexp-features-plugin-7.7.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz#ab6e041e7135d436d8f0a3eca15de5b67a341a2e", - "sha512": "02790621d881844ba2c1da0c9ca9bb8df3dfa88b5986045a65f320d575f76d2db920d3a72cf8cf1b53e99da8e1f1eaa0b7990f2677eaad11ea16a9a328364bcd", - "dest-filename": "@babel-helper-function-name-7.7.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz#cb46348d2f8808e632f0ab048172130e636005f0", - "sha512": "41318a11d0a48e0ce07c9ddb032470178cb24f7a60faf0e06a7f034a2bead5e4b48308be286284e71f2445c6de1536ffebbde690ee523752197e609f039a3e10", - "dest-filename": "@babel-helper-get-function-arity-7.7.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.7.4.tgz#e5a92529f8888bf319a6376abfbd1cebc491ad91", - "sha512": "74672b5fa2bd97cdb9f16163c832c9c2e54ac51e1765f534fef4d480e4185849d10fc9a0afea7877a7c250cabfcacd21e020adfd2e4985bbedc84ae35a8b8051", - "dest-filename": "@babel-helper-module-imports-7.7.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.7.4.tgz#8d7cdb1e1f8ea3d8c38b067345924ac4f8e0879a", - "sha512": "7a1181bb8997ae1b3417102a37cb5693317c19220602212e9aee0e359fe10fd33cf2e1dc0fe62edadb4a7ce0a0c33a1eb09389aed421eedac8e583db46d3269c", - "dest-filename": "@babel-helper-module-transforms-7.7.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250", - "sha512": "09800e502011c04c67122c4b741eac0e6d9d209fd880400a0ccd4c39e31e66ef4b77f6c3815a3c6a25ab5f0718ece061fb511adae51c5517312a4d0626f5bb40", - "dest-filename": "@babel-helper-plugin-utils-7.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.5.5.tgz#0aa6824f7100a2e0e89c1527c23936c152cab351", - "sha512": "0a409840b91f922ba06d10cef1e667ea546e47c9336681970a0df5e3d893939b1eee0eaaca44a9cb7fa110b4b0aae86ef938079fc9e42e20701ef357f07a1f73", - "dest-filename": "@babel-helper-regex-7.5.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.7.4.tgz#c68c2407350d9af0e061ed6726afb4fff16d0234", - "sha512": "4a4e319ad55d33db00fe3088f347fe292f8c77e6472298eeaa660f93533b17fba91e8bb97b845e626131022bba3d57bae418493d9036098f71f64e01a84e6497", - "dest-filename": "@babel-helper-remap-async-to-generator-7.7.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.7.4.tgz#a169a0adb1b5f418cfc19f22586b2ebf58a9a294", - "sha512": "ccaed31de1177da9fb5255ac1b603a088fcbf63567239fb1c4a64e75e8f7f58d18b4360ac7dada1e4e45d84b4af4af031d14e2858c20db4003b7d4b7e8647bf0", - "dest-filename": "@babel-helper-simple-access-7.7.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz#57292af60443c4a3622cf74040ddc28e68336fd8", - "sha512": "82e020d525c5715af4e06ba4f5eab44b8feb592fbeb1b9b2aa8b09cd5b3cfb57c7e4d23e65c9a469291cedd9ad0056c716f6bac912678d6df201c1b18ee783ba", - "dest-filename": "@babel-helper-split-export-declaration-7.7.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.7.4.tgz#37ab7fed5150e22d9d7266e830072c0cdd8baace", - "sha512": "56c7f366deb09aca1c39a554d0ea24c2b232b47343e79cafc93e013c1f40208830afcfb1efad7b85eb5d253b2e1b0ca0379442ea6c40f44273b538eec26da87e", - "dest-filename": "@babel-helper-wrap-function-7.7.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.7.4.tgz#62c215b9e6c712dadc15a9a0dcab76c92a940302", - "sha512": "6a4e4d199189e8b57ce50d5973d827da7f9ac973a2cebca18d25014ddbb98a1d6d9550897ae40437373822dc8256120d557bc84ff650e2685e188b1f064a6c92", - "dest-filename": "@babel-helpers-7.7.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540", - "sha512": "edd5787aef60071a0cd1d0278ff0421435bd2c5534cef4eb92ad2e80cee99c712082e38478ecf5b28d9982111dcef898cd01040f4af8100829b010a12b2d5345", - "dest-filename": "@babel-highlight-7.5.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.4.tgz#75ab2d7110c2cf2fa949959afb05fa346d2231bb", - "sha512": "8c8c2f2ced3308bf8efcb9842508d603be4c4135b0c77737bb624e4c32b90f7ffd7a0ad6451034ff4864f575f2c189d7655569ceb0587884139a1c1469e3c8f6", - "dest-filename": "@babel-parser-7.7.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.7.4.tgz#0351c5ac0a9e927845fffd5b82af476947b7ce6d", - "sha512": "d72a7266f1915eb898fd03faebcfacf2c16bda6aa29e19110cc3d240b360842404f8602416da7ec241d5be0dbe1dd922f20c0ff8d17324127f37505fcc208313", - "dest-filename": "@babel-plugin-proposal-async-generator-functions-7.7.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.7.4.tgz#dde64a7f127691758cbfed6cf70de0fa5879d52d", - "sha512": "4ad1fe9c601d3baa8307597cb19e54055f000b7176556d88f157e577bdd330aca9b4c53d0d8e58b09012f14f35faf12dc5c1f763f2dad301b46ed0eb8699e18d", - "dest-filename": "@babel-plugin-proposal-dynamic-import-7.7.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.7.4.tgz#ec21e8aeb09ec6711bc0a39ca49520abee1de379", - "sha512": "0f233b5366e7b107ab090fac7a371335987c290114b82dee7f37675674a252ffeaa06269d99de16a728bd7c28386c053e568fa6bb08c4f999dc82349b04680f7", - "dest-filename": "@babel-plugin-proposal-optional-catch-binding-7.7.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.7.4.tgz#331aaf310a10c80c44a66b238b6e49132bd3c889", - "sha512": "2e2e3e1234a9060c5cb2678417c20571f57ffb2246c475c38ab0e4128c858ee9aec1b99f0951d4b741eea300ff88633b3a1211c97247f585f1aa21fa37cd79fa", - "dest-filename": "@babel-plugin-syntax-async-generators-7.7.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.7.4.tgz#29ca3b4415abfe4a5ec381e903862ad1a54c3aec", - "sha512": "8c7416d2f6d11afc10360c95c700e1e32b97bb86c7d5fe7f1080892c0865d526e52ecd820e1aec98293ebf95cb744f70c6d005472c71f8ffff230f9ae4bfed4e", - "dest-filename": "@babel-plugin-syntax-dynamic-import-7.7.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.7.4.tgz#a3e38f59f4b6233867b4a92dcb0ee05b2c334aa6", - "sha512": "e194aecd6805c6a1d1137d4696ef9f12bfcc8ab35938c6260ffd018415b22f238e433fe04c097b4265a6da15f54311085ecaf6be4765c312334f2898442e3171", - "dest-filename": "@babel-plugin-syntax-optional-catch-binding-7.7.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.4.tgz#f7ccda61118c5b7a2599a72d5e3210884a021e96", - "sha512": "9a4d1c1f5cf231afd71de6fa2ce4d74db1bbb8827c46b8e5ceef75a54c7f292dc9a5c81a4c3c0c4bc90cf9aafc48b3af94bd8ba1f8b80860408c2a376b6c7e97", - "dest-filename": "@babel-plugin-transform-dotall-regex-7.7.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.4.tgz#bee4386e550446343dd52a571eda47851ff857a3", - "sha512": "93c8954bb261737ebb21c345e77282c085ed2801fb7337aff3ae9386c4e0cbc0b09578e72999dad951f00a1825ccb95e62b707cf5790108265191431079de7a8", - "dest-filename": "@babel-plugin-transform-modules-commonjs-7.7.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@babel/template/-/template-7.7.4.tgz#428a7d9eecffe27deac0a98e23bf8e3675d2a77b", - "sha512": "a94ce286054f82e0335c22bb597c3ca6ab3a704c22e78b3713e1eb7a3964b963ba8af30ac7d8599776367d25e9f62e478325a68fb44a3feba56989ca338c98c7", - "dest-filename": "@babel-template-7.7.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.7.4.tgz#9c1e7c60fb679fe4fcfaa42500833333c2058558", - "sha512": "3f52f9f21432ba99fcf9ecd5036cf92819b8fd9af89420bc770282318cec6b98c5303310033681372f56e558c1f8a0260636f8d14edafc7e9aa3e5e8fbdb1a23", - "dest-filename": "@babel-traverse-7.7.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@babel/types/-/types-7.7.4.tgz#516570d539e44ddf308c07569c258ff94fde9193", - "sha512": "733e498b6dca0a2e13f98204fc1a255a8b2b26e4a6a1978dd4416746d07017e28a2e2f061bf67673684e2497825cf9389b0938405bd39b0228749a305e0b6d44", - "dest-filename": "@babel-types-7.7.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@concordance/react/-/react-2.0.0.tgz#aef913f27474c53731f4fd79cc2f54897de90fde", - "sha512": "86e2d2914b8cdbf3fe534bb2d96c252ae8b132c4ce0c3f29e09550048e1529ea299223740bb33737d5d855ac1be0cfb8b2937946b3bf78b864ecaa105fa9ec7c", - "dest-filename": "@concordance-react-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde", - "sha512": "6cf1e9e898bc6f8d6ccd339c68feb75659db6cee4dcba7700004ed63a2538e1e4dd8e2eb6f9424fd38797119114219160adf8426c62b341d0c88bf86a67e9ede", - "dest-filename": "@mrmlnc-readdir-enhanced-2.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b", - "sha512": "7869b06109f7831a38afb8dd42792bacde9b638efc0b73fe6bfcbbd8826e905f0b8c1e991de07773e12169c8f7b187929945c696703aeff3e66ccf425702fb0f", - "dest-filename": "@nodelib-fs.scandir-2.1.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b", - "sha512": "b210260f26900b81fdd803c5a086950c70b1e5b4ad228720bdbc10cb13d1adb518db45751184db48372159bbb094c1b7575edca6b66103afbbf097c1fb70d33f", - "dest-filename": "@nodelib-fs.stat-1.1.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3", - "sha512": "6d0045aee4764c0c287af04477f356328000b4d1b34d181daea9d809cedd8737e836fa8fccbcaa944427cd9de456736b4a9db98b2c44d34ff78767ea180180ac", - "dest-filename": "@nodelib-fs.stat-2.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976", - "sha512": "d55f57398e2b0d6d2b7a1cdbadca809879f3f1eed22af5f6ee087c1add96801d3ea5dcdd88b57cde9ef69193d4fa3bcc6d2d6a53999ab8fda23af3bcae19aead", - "dest-filename": "@nodelib-fs.walk-1.2.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea", - "sha512": "f4d113f75d0335a20f9e06272cb3de83e3a0ceab22f6e3389926e8539cbaa7c4b90f3313544b0966b6b08be0680cd51505ad83849a9061416f3037e0534eb62d", - "dest-filename": "@sindresorhus-is-0.14.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421", - "sha512": "5c80765dbcc74cdea27888df20c57d86555c7cf536eacdaf69f61641c6475971cec62691658103284c1d975dbd672839d3e7e8615da30a0b6ba9203aa8db8d48", - "dest-filename": "@szmarczak-http-timer-1.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@types/chai/-/chai-4.0.10.tgz#0eb222c7353adde8e0980bea04165d4d3b6afef3", - "sha256": "6fb9669ad0b5b7ddfe9d7a3a1b4e65f1697260d04a5803a0436bdcd7d49f4ec1", - "dest-filename": "@types-chai-4.0.10.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@types/chai/-/chai-4.1.7.tgz#1b8e33b61a8c09cbe1f85133071baa0dbf9fa71a", - "sha512": "d98f2e3edd3f8f08e143a12296e4f45c2ae2d436e996bd19c5f157533fb27b5de06aa13cbb980be69a5aa3526b518afd7088a9e52e8cbd0cc14bb2a47bb53d54", - "dest-filename": "@types-chai-4.1.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0", - "sha512": "aebf8e432023c737bb1a05ab49a270c9d1d2b48847ab696f63704e0b6323eca9f323b5cad14c354ce39d23d943a1a8c46d258b898828a387f5479d5ead07e13d", - "dest-filename": "@types-color-name-1.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@types/debug/-/debug-0.0.30.tgz#dc1e40f7af3b9c815013a7860e6252f6352a84df", - "sha256": "50d7c4bb89ed3b828d0f013a211d283b1114c36138eaf5afb15f80d28e31d207", - "dest-filename": "@types-debug-0.0.30.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@types/debug/-/debug-0.0.31.tgz#bac8d8aab6a823e91deb7f79083b2a35fa638f33", - "sha512": "2d2d4c08f6902aab2983b16f7b1ba19836d6521136c8827ee0081523239b7dcd3afd4299f11120c4636365cf36c0f2d699b78e9bb4be812b0b828ef94da9c6e0", - "dest-filename": "@types-debug-0.0.31.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7", - "sha512": "11a39bab022f6b22396bc742ce116b8cacd5c0a2f18e81bd4fa3e9779084a34ecb44a7d0f18a24c39e2be7e5aaec568143ec9746f40060fac7c326b5fd416df6", - "dest-filename": "@types-events-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-4.0.7.tgz#02533262386b5a6b9a49797dc82feffdf269140a", - "sha256": "c6f917a02b1ebd28d38dfec8403ba487c412b51c70acf0d544ca2c3cde9e6f2d", - "dest-filename": "@types-fs-extra-4.0.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-5.0.4.tgz#b971134d162cc0497d221adde3dbb67502225599", - "sha512": "0ec927a01bc3f2cf9115f4868e611127b64e3f51c8d1465103715223e65a921adcfc6cb6e9842c2c8fa6e55e431f1ae81d126a0832ca269ec78b19fccf2685ee", - "dest-filename": "@types-fs-extra-5.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575", - "sha512": "d41874e9c6d62541cc0bdeda72e0fa50c1b6f6732dd00ab3d6f17782e2df1be9071c9872dc0ca8859145c589367fb43549022b370be7731004d0dffdb3bd05db", - "dest-filename": "@types-glob-7.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d", - "sha512": "b47abaa9d6d3f54d4845219fd7808bd2952550b92cbd8f4e67ee5e12097537bb7e380ded1af369c490b3b8a425b0d8025706c0b3aef42f5bdc5508bc8fd1e39c", - "dest-filename": "@types-minimatch-3.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@types/mocha/-/mocha-2.2.45.tgz#816572b6e45164526a36d4faa123e8267d6d5d0a", - "sha256": "c8679e1fc5843eff37986cf17bb0174573a75064e98fa57d0b5e7aab72e23483", - "dest-filename": "@types-mocha-2.2.45.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@types/mocha/-/mocha-5.2.5.tgz#8a4accfc403c124a0bafe8a9fc61a05ec1032073", - "sha512": "940569f8a8f9e2e8bfbcb505c6c25332d5af66b699c6e9b7c3737091b95ed9d36e5795673c0f8c8b6a065fd5d8240688bd98b7b67ddc6e34bfa9c25745be81c3", - "dest-filename": "@types-mocha-5.2.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@types/node/-/node-12.12.12.tgz#529bc3e73dbb35dd9e90b0a1c83606a9d3264bdb", - "sha512": "306baf609acf5341d4c2a17b2eabc88f9d116545f6dd9fa6e7cdca07280a61464b959f3c9fac36f1744d251260b07ba42c49cbcfac3a4afc59a0b81baf9c0ba9", - "dest-filename": "@types-node-12.12.12.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@types/node/-/node-8.5.2.tgz#83b8103fa9a2c2e83d78f701a9aa7c9539739aa5", - "sha256": "4d00daeb6e822e9b8f0898bb5c4064c8d068694b44bc485a40113489a0c3433c", - "dest-filename": "@types-node-8.5.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@types/plist/-/plist-3.0.2.tgz#61b3727bba0f5c462fe333542534a0c3e19ccb01", - "sha512": "50baaf64d18cbf4cd116faa7f3fe0b48fb6798de0c7e194f36d2424e92ae208c46546676ad85b3157aef101a21f42572a9213b0fa605449d61c9d2c723a91b5b", - "dest-filename": "@types-plist-3.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@types/strip-bom/-/strip-bom-3.0.0.tgz#14a8ec3956c2e81edb7520790aecf21c290aebd2", - "sha256": "7112ae99f1409c474e540823a5d52d1cf02deffc62689e2cedaa832b219e034b", - "dest-filename": "@types-strip-bom-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz#9aa30c04db212a9a0649d6ae6fd50accc40748a1", - "sha256": "abd5e855e0a4dc0d80450b31802924607e07dddac8b2d2536e0f2f0bf0d3125c", - "dest-filename": "@types-strip-json-comments-0.0.30.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@types/tempy/-/tempy-0.1.0.tgz#8ba0339dcd5abb554f301683dc3396d153ec5bfd", - "sha256": "8274b6d74ec1fa398e2f43c1c712c538f3184554cd2bdfb24965302b069f3a80", - "dest-filename": "@types-tempy-0.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@types/verror/-/verror-1.10.5.tgz#2a1413aded46e67a1fe2386800e291123ed75eb1", - "sha512": "f548cc0872b918f81046835ba9d2c802f032d04227ba2a9b5b43c132d54fe81e41d8740996fa091ccf8aa1d3d93048ce6b956449cfb92c7ef1cbe714cd07661f", - "dest-filename": "@types-verror-1.10.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44", - "sha512": "b0bfdc12f2560270a55f0d301e4f39ff62f41ba4a3f140740ad7354c431b292b26a51a2caa1c23f605a0151652ac1af67fdb625c84b036108f9a57ea52ac9bf5", - "dest-filename": "@ungap-promise-all-settled-1.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8", - "sha512": "9e77bdfc8890fe1cc8858ea97439db06dcfb0e33d32ab634d0fff3bcf4a6e69385925eb1b86ac69d79ff56d4cd35f36d01f67dff546d7a192ccd4f6a7138a2d1", - "dest-filename": "abbrev-1.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.1.0.tgz#294adb71b57398b0680015f0a38c563ee1db5384", - "sha512": "b4c52ac0159f2c56c96e2cd198471648bc3a1e71737dd26cdac38910ec30b553cca07ff4032f84ef4de8673efc5525d98a20dc66b4395ca8cf214422c619a057", - "dest-filename": "acorn-jsx-5.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/acorn/-/acorn-7.1.0.tgz#949d36f2c292535da602283586c2477c57eb2d6c", - "sha512": "90be42ba85c0fdd8319416d5adf96c7e5cd0dcf01ab3b458641e7634e9bfebcdfd89560980a309ddc4090feb768b9faa15af21dcc0e910e2624bae04f092e749", - "dest-filename": "acorn-7.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee", - "sha512": "b1a95c1a78a75749cfaf0a46367e154d705bd523ae5d0062a9bacd5e87a2cc9b07aec2fa11114cd8d7b725448159113a69e34923644e3ff5841080d48837b772", - "dest-filename": "agent-base-4.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52", - "sha512": "4d7b54504607b9a4c46cb65620a52be69981ba10cbcbef0a62d3d875c57ca82fa93992fe34aa98c2f59246b5571e7f99991440bbcbc94c0ce71fb39a83a45547", - "dest-filename": "ajv-6.10.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117", - "sha256": "050f54a2d7e5cbcf6fce522d3890845637a0d3f8f2b10bb54655d1e4257c5c0b", - "dest-filename": "align-text-0.1.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5", - "sha256": "6c7ec6ea1fdb80e0b8a55e9945490b9803e0ae8a4e45e62efb0e3f0409c97922", - "dest-filename": "amdefine-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f", - "sha1": "c36aeccba563b89ceb556f3690f0b1d9e3547f7f", - "dest-filename": "ansi-align-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb", - "sha512": "6690a554aa973774460662a26dd7d6cea098e259e312ea0dcd4e53d28105a5f77fcf9a891d56abba4ae2743e23b8b3b6157322c14431afd5aa42d6986bc5d163", - "dest-filename": "ansi-align-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348", - "sha512": "2685f46a919b1da50904d97ac85fa9e89005619ebaebf86108628de6df501636c940a514fe0f0c35b1436ef7eb80a5ef23542966994f3a7c08a3df655ff00098", - "dest-filename": "ansi-colors-4.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-2.0.0.tgz#5bae52be424878dd9783e8910e3fc2922e83c81b", - "sha1": "5bae52be424878dd9783e8910e3fc2922e83c81b", - "dest-filename": "ansi-escapes-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.0.tgz#a4ce2b33d6b214b7950d8595c212f12ac9cc569d", - "sha512": "122621c28d2fdb9e4750be9e0f2b8bad71244e2ed6c1508b030f9278e43b33ba9dba7d73d69ba6e03126fe7baa2156cfbe2f513cf73d93d2dbc81bfa1f40f056", - "dest-filename": "ansi-escapes-4.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df", - "sha1": "c3b33ab5ee360d86e0e628f0468ae7ef27d654df", - "dest-filename": "ansi-regex-2.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df", - "sha256": "52b8ab148865eeaf538e630a937fa153d5af21232f014a5d4e38491937be8037", - "dest-filename": "ansi-regex-2.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998", - "sha1": "ed0317c322064f79466c02966bddb605ab37d998", - "dest-filename": "ansi-regex-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998", - "sha256": "bdadb0d036d35d54a71c47d94b2abfedb595775f41b8137bec044dc5efe43d35", - "dest-filename": "ansi-regex-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997", - "sha512": "d5aa5e3df5ccd54392ab0d28f48885028bd5cfd3394b50e0fb84eb0f07cc7b043aa7fae632e79beed5998d0d6bc782e8cb502b060828a86a5faaa748e2ba2776", - "dest-filename": "ansi-regex-4.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75", - "sha512": "6d8e9f8f9e8e510d215352a314d0d0b8915ecea29dac0c857487af0038aaad61f04a56e604d307a796a4d9fe343e6f094c5c8cda6ab1906ea78241ced757ff96", - "dest-filename": "ansi-regex-5.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe", - "sha1": "b432dd3358b634cf75e1e4664368240533c1ddbe", - "dest-filename": "ansi-styles-2.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe", - "sha256": "8d603cbfa5e38e5302fe9ed0d50d968853ff3f144522c6d291b7f9f17413121f", - "dest-filename": "ansi-styles-2.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88", - "sha256": "879177345a4a3fd8a5899b8da1f2b59466a1ada42d4b52a48ec9a3cec7365c0e", - "dest-filename": "ansi-styles-3.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d", - "sha512": "553d1923a91945d4e1f18c89c3748c6d89bfbbe36a7ec03112958ed0f7fdb2af3f7bde16c713a93cac7d151d459720ad3950cd390fbc9ed96a17189173eaf9a8", - "dest-filename": "ansi-styles-3.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.0.tgz#5681f0dcf7ae5880a7841d8831c4724ed9cc0172", - "sha512": "ee415082711a31d46dc1feae49f52756bf604860bb7dabab9fe27f32ff74fd6fa24ed374e34e7f9cb768a5f316c1c872c616c6625e930b849c727f5352418082", - "dest-filename": "ansi-styles-4.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937", - "sha512": "cdb07dac22404f5adb8e25436f686a2851cd60bc60b64f0d511c59dc86700f717a36dc5b5d94029e74a2d4b931f880e885d3e5169db6db05402c885e64941212", - "dest-filename": "ansi-styles-4.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a", - "sha512": "d1735ac82f254c7436388f1a963342377b12c7a86caffd7eae5703028b57251ec2d686591c236c7e96cac0c8d103752a6f9b45d5169eda89684ebe31a6af968c", - "dest-filename": "anymatch-1.3.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb", - "sha256": "409d9be0df71d525ad461cba3dba13e671d4a2a18d68a6eb3dafa6193c9748b2", - "dest-filename": "anymatch-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142", - "sha512": "98cf39db6a6c442ab357ee8b868997e70829db961589b8e1f168f6dc8e513e43e9a525528f2283d80da604999619af8a37b7f60fa2cd87d8e40427b22e4b738e", - "dest-filename": "anymatch-3.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991", - "sha256": "a23b5a4b3a0e1b6e01384a027eff16ee970f6ca97b559e6ad09e62efb44489f4", - "dest-filename": "append-transform-0.4.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/append-transform/-/append-transform-1.0.0.tgz#046a52ae582a228bd72f58acfbe2967c678759ab", - "sha512": "3f4d3da1891e1f253be36892649cd9672c23e104497674d67df68ab8940b69b942675bb3ebf716e3269181c0daa10faec0ec719edd204547307ec34fdab8b483", - "dest-filename": "append-transform-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a", - "sha512": "63d27a6635eda1887c4675d508c394fedb439a4d5a063ba7abdbced2d6b9c7ce560d08907d417db083c121375b8a2215701a34dc78b78ccc62801b6c75d95747", - "dest-filename": "aproba-1.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40", - "sha1": "f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40", - "dest-filename": "archy-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40", - "sha256": "1659a980f11d9df11cd89bfda2e21db3a7e1ed821c96a0d88d4ff0fad5370c26", - "dest-filename": "archy-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21", - "sha512": "e6161d024665706f2d38bba35434e0093fae3d7d159e9007dbc816b0b7f3a57626ef03fa9a9e50fe063247b610d1c29525c5c99e5de3da4a416a7d773ed41feb", - "dest-filename": "are-we-there-yet-1.1.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911", - "sha256": "7faa149cd7811b7e11fc8353dc6e4e9c4de68a02f8221aa8f7dc22108315ac0d", - "dest-filename": "argparse-1.0.10.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911", - "sha512": "a39468cbab4d1b848bfc53a408037a4738e26a4652db944b605adc32db49a9b75df015ab9c0f9f1b3e7b88de4f6f4ea9bc11af979810d01e3c74996c957be84e", - "dest-filename": "argparse-1.0.10.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/argv/-/argv-0.0.2.tgz#ecbd16f8949b157183711b1bda334f37840185ab", - "sha1": "ecbd16f8949b157183711b1bda334f37840185ab", - "dest-filename": "argv-0.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf", - "sha1": "8f3b827f955a8bd669697e4a4256ac3ceae356cf", - "dest-filename": "arr-diff-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf", - "sha256": "ed72c1065bb45dd8320bba7172d5136e5f8f6fe38dc4124e7e1e63f1bfa80ea0", - "dest-filename": "arr-diff-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520", - "sha1": "d6461074febfec71e7e15235761a329a5dc7c520", - "dest-filename": "arr-diff-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520", - "sha256": "ddb3765f2b759692dff2f3db49ba693bc14a120180149bf6c43bd76db05f659c", - "dest-filename": "arr-diff-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1", - "sha256": "5e6d678d5ba687bd199b8ce1a1a51293976411f46945d672221279e303c0b62a", - "dest-filename": "arr-flatten-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1", - "sha512": "2f784a57947fa79a3cd51eced362069f0a439a4a7a13df365e1b5bbb049edcee2a3ad30c32da1d89c0120350a7cb653e6825dc3699a5fa6e1d3ecbec2778dab6", - "dest-filename": "arr-flatten-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4", - "sha1": "e39b09aea9def866a8f206e288af63919bae39c4", - "dest-filename": "arr-union-3.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4", - "sha256": "77b44fdf330e520dee618cef90a37f6c8d2dd876ff267aed5e7474db0d762ccb", - "dest-filename": "arr-union-3.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1", - "sha1": "df010aa1287e164bbda6f9723b0a96a1ec4187a1", - "dest-filename": "array-find-index-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d", - "sha1": "184b48f62d92d7452bb31b323165c7f8bd02266d", - "dest-filename": "array-includes-3.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39", - "sha1": "9a34410e4f4e3da23dea375be5be70f24778ec39", - "dest-filename": "array-union-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d", - "sha512": "1c6cb1a0e4d853208ceacb547ba1098277781287b0008ef331d7ea3be9068e79599810f3fdc479a5ff2bfdc4785aaeb4b0bfe9d0891c8d41043f04b7185ac8cb", - "dest-filename": "array-union-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6", - "sha1": "af6ac877a25cc7f74e058894753858dfdb24fdb6", - "dest-filename": "array-uniq-1.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/array-uniq/-/array-uniq-2.1.0.tgz#46603d5e28e79bfd02b046fcc1d77c6820bd8e98", - "sha512": "6dd1f1b5ebfb14debe3172356055b443c990f1d4c97364bc00c7e3bbe651efba5b836c80755c8397091a508ec76abd0bc8e31114f1eb27d9587728d966cc1d95", - "dest-filename": "array-uniq-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53", - "sha1": "a1d97ccafcbc2625cc70fadceb36a50c58b01a53", - "dest-filename": "array-unique-0.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53", - "sha256": "7e4f36d75b071730d7da025eec05d0f4a4fce80712b7fe8dbc1d7022f024478a", - "dest-filename": "array-unique-0.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428", - "sha1": "a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428", - "dest-filename": "array-unique-0.3.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428", - "sha256": "2fbdcf30f58eda555408afc8d61f763c988061e27f11589ac227661c1059792e", - "dest-filename": "array-unique-0.3.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d", - "sha1": "898508da2226f380df904728456849c1501a4b0d", - "dest-filename": "arrify-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d", - "sha256": "97aedd9df226f1c9415ee5670d31fa1178cc671e192d004b03cf7d5e85828937", - "dest-filename": "arrify-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa", - "sha512": "dddb84c2d8bcf34c6a8b878030df00c91e1ad01c93f74ce861d2e57af7ebbd4e37bdbd186706557f13a0c56acb5d75e9cae80bd2135973d1ba0620790779d4ba", - "dest-filename": "arrify-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525", - "sha1": "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525", - "dest-filename": "assert-plus-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.0.2.tgz#13ca515d86206da0bac66e834dd397d87581094c", - "sha256": "fcfb6f6be3104cb342819ca025bb310abab104fc90b882a1a2cddb4cd6139fb9", - "dest-filename": "assertion-error-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b", - "sha512": "8e0b1a35dbb3fa776f1b216ddee4ae5aabf2e250a72098a8beda2e40de4964738a092d90ba111d6dc407161564b33d8dd94f615c9a3ca1d1bb113c969447ae0f", - "dest-filename": "assertion-error-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367", - "sha1": "59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367", - "dest-filename": "assign-symbols-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367", - "sha256": "4b7571316a051e6b9c816119fecabc1c23f2d3d72ece4150a28436f89f59ecd2", - "dest-filename": "assign-symbols-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9", - "sha512": "f91c9fea0dc12a845cee37e9eda77cb4ce13b4c89a5af6c5ff5fec41c64f9244bb6a0dc3e6730109ed947ce4ce36d024686d2d3b48a3dc2e4bc267f5122ca31e", - "dest-filename": "astral-regex-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31", - "sha512": "67bb4cc35cad4d7b798ea31c38ff8e42d794d55b8d2bd634daeb89b4a4354afebd8d740a2a0e5c89b2f0189a30f32cd93fe780735f0498b18f6a5d1ba77eabbd", - "dest-filename": "astral-regex-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf", - "sha512": "cff5a143914fc922ddbd1101c88daf6624d6c029c5d26a0c27584af584300d31ca87a23bfee49c90c7ada1119be540593c2d73d23970fa7fd70a08de1fbcb501", - "dest-filename": "async-each-1.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a", - "sha256": "df1f8e1ab87b78beeefcd5ff69d61d68b24bd946df383017b7d546a75aacd300", - "dest-filename": "async-1.5.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/atob/-/atob-2.1.0.tgz#ab2b150e51d7b122b9efc8d7340c06b6c41076bc", - "sha256": "213d514063e7b7372727583f49899f42c4a13c1b74b018adb3adef60d8867221", - "dest-filename": "atob-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9", - "sha512": "5a6eae92868e1898bfef7a7f725d86bcb8d323924cd64fced788ac0fbdd830bf12b6b1ffeff9511609a0f272026600f76d966f8f0086c6d30e0f7c16340bbc72", - "dest-filename": "atob-2.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/ava/-/ava-2.4.0.tgz#a3bd8b0e01d8826004c91de375eb2313ba5237c3", - "sha512": "0905adcd9659794da0e12b688d1bfa30ef512118b8b0bc46481f7edc2de1bf4b6d5041b5b6424b4cbcab0507854b858478ad76678a2f1377f688f5614b2f1e94", - "dest-filename": "ava-2.4.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1", - "sha1": "502ab54874d7db88ad00b887a06383ce03d002f1", - "dest-filename": "babel-cli-6.26.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b", - "sha1": "63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b", - "dest-filename": "babel-code-frame-6.26.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b", - "sha256": "ce2fec717473e4484b1ec48f96ff22407ffc28a310bd4fee32e3e51ee3a8b6cf", - "dest-filename": "babel-code-frame-6.26.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8", - "sha256": "de5c7830c33d354a294d97d1d9565a3c1c1a327c29e5c35d1abd42a27dc77e2c", - "dest-filename": "babel-core-6.26.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207", - "sha512": "ea3c852ee0e67a274a99411bdcd33eff26b01b43366c367d675a9b64fe7d7321cbcfc91818a630a493f453050a29489344dbf17cb7ac2674de76a7333fb7130c", - "dest-filename": "babel-core-6.26.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90", - "sha256": "357ad762b1b3e43ada991c98817ecaea76abff9e49f026e11f4892e1b380f055", - "dest-filename": "babel-generator-6.26.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90", - "sha512": "1f27f063a029663ec1613709511a4ce6dce7ba5681bf28a8effd1de3314e78c3d499fc640a31e8702ba82dad92006cc123c01111c1f778fdfbe7c17aef60e9a4", - "dest-filename": "babel-generator-6.26.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664", - "sha256": "5591cd94264c6dacf295c2ee686f6e47a2d26d94bb1ba435208ddbb1d9c26675", - "dest-filename": "babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d", - "sha256": "f55360dc5792122bc31fd4e7cd29427b51c182ade280ac86073e2f3bcb3ce4c0", - "dest-filename": "babel-helper-call-delegate-6.24.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f", - "sha256": "bf5d8a0058d513ed3e1d8959bdfc03d0cb72af8e7a9a3d8ed62952b7aa16a1c8", - "dest-filename": "babel-helper-define-map-6.26.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa", - "sha256": "c95805377590dc77b65d0747c1ab7a3c8141715c7360b4777ffd4ba52e04cfcc", - "dest-filename": "babel-helper-explode-assignable-expression-6.24.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9", - "sha256": "8c83dd34e512c68e6a4c5567b8ae8b1e0479111e26d01b5c9fa50abfe9ea6de8", - "dest-filename": "babel-helper-function-name-6.24.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d", - "sha256": "6b05270878634032ba38d2d055b3f8337686883a7a25f5860f86c6e2a6501aa5", - "dest-filename": "babel-helper-get-function-arity-6.24.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76", - "sha256": "38e50f215aa6974937119b951e990246a0a8df3ce42356f91b2974f042528bd3", - "dest-filename": "babel-helper-hoist-variables-6.24.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257", - "sha256": "07ccbbcb068000e2c2a19d292b2fe455230723e772973fa004ecb7a1567c6128", - "dest-filename": "babel-helper-optimise-call-expression-6.24.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72", - "sha256": "b5a2e2fbb796895c5dc6a409cc6d4dbdf5ce194f5dd0f252bc273ec15610d8c4", - "dest-filename": "babel-helper-regex-6.26.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b", - "sha256": "ef32c8b7fa232e3d19ca5d8c4b8d26e2706b141e05e19283c9c61a5cc294193f", - "dest-filename": "babel-helper-remap-async-to-generator-6.24.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a", - "sha256": "b8956d8ee1dec5a5e79aad8bddd8cbb57999c064463e3ec98dc8a4cd1ed4d2f7", - "dest-filename": "babel-helper-replace-supers-6.24.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2", - "sha1": "3471de9caec388e5c850e597e58a26ddf37602b2", - "dest-filename": "babel-helpers-6.24.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e", - "sha1": "f3cdf4703858035b2a2951c6ec5edf6c62f2630e", - "dest-filename": "babel-messages-6.23.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e", - "sha256": "487345a6086165fd5a3d69cd38bcb914dea5d27ea24176b802519d26647dd936", - "dest-filename": "babel-messages-6.23.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a", - "sha256": "cc3bff453634e5c801174d193b61b9c059ed5ad3ac99d3a464ca821e850113b8", - "dest-filename": "babel-plugin-check-es2015-constants-6.22.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f", - "sha512": "a3aa85929790101c5caadd176255b3015c4d09209975481c47c2119610fff03ca5c638cee1fa0f72f4d6d0618a6bf715b77aefc59ee8e62a6927eff49ef2e195", - "dest-filename": "babel-plugin-dynamic-import-node-2.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-plugin-espower/-/babel-plugin-espower-3.0.1.tgz#180db17126f88e754105b8b5216d21e520a6bd4e", - "sha512": "32ce3d53b54802d43f4ed72a45b0fa501989054092c620b7fb33dcf9e1aac4a50814ed654ec8721034548e1a006dddab59fc187f7719eb6a17a33addf16e89d0", - "dest-filename": "babel-plugin-espower-3.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-plugin-external-helpers/-/babel-plugin-external-helpers-6.22.0.tgz#2285f48b02bd5dede85175caf8c62e86adccefa1", - "sha256": "0fc22874c4ae821f9186f3f5e3a5c0a0c26a77e25868b84d39c9bd9bbaf28bd6", - "dest-filename": "babel-plugin-external-helpers-6.22.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95", - "sha256": "d1e2646eeae782e138c301db9d673b39a834c918cc0b5549517d3ef9bc2c067c", - "dest-filename": "babel-plugin-syntax-async-functions-6.13.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de", - "sha256": "17309a2b1fa4f9cc918fe65791e924b53809057b0d4fdacfc99d060bc4255cbf", - "dest-filename": "babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3", - "sha256": "392ecb6039ddf1c577d2106ea03201e4cf686352acf3297b7d2fb1eb0bc62c69", - "dest-filename": "babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761", - "sha256": "818036c530167d684f38e850a9f27f3c297869d8ad07597d0970a55250ef5a3c", - "dest-filename": "babel-plugin-transform-async-to-generator-6.24.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221", - "sha256": "538b807a9dace3a621d084085c5f9a3bc739ed5f3a287b331dfdfdd263461d57", - "dest-filename": "babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141", - "sha256": "7921372d06328726305fc77fd6fe8a958df4628959c436f4cd9ec56ab7e177c9", - "dest-filename": "babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f", - "sha256": "c720227672e8178adddcc0154822fc2b23dd1c7dc9138f1a47836fdd94bbb707", - "dest-filename": "babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db", - "sha256": "2bddc84ed1ea2a2a69d4bd05e42f9358cbfbec72e172cd26ca7c945661af2d05", - "dest-filename": "babel-plugin-transform-es2015-classes-6.24.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3", - "sha256": "1d88d043485401a938dc950e798d8c45d2792bd99ea27080368fa8a88fc8c02b", - "dest-filename": "babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d", - "sha256": "2240aaca93fc6eae1f263478e4b0564d5913bf0bb59e2ae7746f952d4942b890", - "dest-filename": "babel-plugin-transform-es2015-destructuring-6.23.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e", - "sha256": "e6f82395e2e8d36f4518c46f56251e732d90194bfcc6014483648391585e5887", - "dest-filename": "babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691", - "sha256": "0a58b5579348561ebf5adc794c209ac2a1da4e58ee843e195c56eefae8f12af0", - "dest-filename": "babel-plugin-transform-es2015-for-of-6.23.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b", - "sha256": "e35efde05af4d2b06d9bd09115b545f5343b4379c8d5a24cea4e682a326785a0", - "dest-filename": "babel-plugin-transform-es2015-function-name-6.24.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e", - "sha256": "5430af6c2aa583f1027d16690cf944c57e96e4048b5a29140e95e27ef16e4391", - "dest-filename": "babel-plugin-transform-es2015-literals-6.22.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154", - "sha256": "4311efbff5d70677c05b13350cf993f53c95dd3bc10f0fef7720c76ef88485a6", - "dest-filename": "babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a", - "sha256": "09b25093d740b7db66a32067b8fa3b263a44672043c45519b0527182a0d83f76", - "dest-filename": "babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23", - "sha256": "b7dff91c5cc2dd5766911766f5b8b76186c385e2d7efcbc9a23acf50037cf599", - "dest-filename": "babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468", - "sha256": "b9083f68f55c20030010a24eb5579ae44b20a4e34962245944dbc5bab87d2296", - "dest-filename": "babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d", - "sha256": "b921263cb2d1ea5855010f4dce07a828f9c93249d4f0ff02c28313551f1cb81a", - "dest-filename": "babel-plugin-transform-es2015-object-super-6.24.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b", - "sha256": "eefdda72d2c2aad22638bc66635b07eec4a298f5fa11d562a1cccf8ec30cb157", - "dest-filename": "babel-plugin-transform-es2015-parameters-6.24.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0", - "sha256": "0e557f298c9834c5efa602102d40a7fc1b2289cd54efa337a2fe415879dd90c4", - "dest-filename": "babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1", - "sha256": "c18cb2823590b87ab708620dec79c6861c7d3c07ab55ae7f13c77f863939f0a7", - "dest-filename": "babel-plugin-transform-es2015-spread-6.22.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc", - "sha256": "b17ebc49093f2d76f08835fa6aa95fdfcf99a5f0e728d245dc386213fcc1582f", - "dest-filename": "babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d", - "sha256": "64189bc0fe4ec43e017dc69243584d3fb99a8c8e2a628e9d883d106a50160373", - "dest-filename": "babel-plugin-transform-es2015-template-literals-6.22.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372", - "sha256": "ae0833c0430c3096680db7d321f0af06630074dc0cb9e5c0a8832161c60eddf6", - "dest-filename": "babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9", - "sha256": "6a586be6bd2e668c0fa3ba48aa41e019c43c85330793ce23f4a10215a5fb33ba", - "dest-filename": "babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e", - "sha256": "72f6aeb6f5c93b0b457a6f4aabaad04acfa28b9a4714ad3134e8e72fcc37b9e9", - "dest-filename": "babel-plugin-transform-exponentiation-operator-6.24.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f", - "sha256": "832e40c88f4f2b499e289985b6ffc686ced9a2a27a2e743857250e7aa0d4ba3f", - "dest-filename": "babel-plugin-transform-regenerator-6.26.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758", - "sha256": "3f009b8bc9f42b66cff4a4f1fcca53e32d3122838dbc8cb89ee4e89c19aa7291", - "dest-filename": "babel-plugin-transform-strict-mode-6.24.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153", - "sha1": "379937abc67d7895970adc621f284cd966cf2153", - "dest-filename": "babel-polyfill-6.26.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939", - "sha256": "89abd630f618a53a9608c5b3e4a5d7ce2deeb68e925bb027160b8cdd7cf104f4", - "dest-filename": "babel-preset-es2015-6.24.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-preset-es2016/-/babel-preset-es2016-6.24.1.tgz#f900bf93e2ebc0d276df9b8ab59724ebfd959f8b", - "sha256": "d7fd839ec3b5696def4a8206014bca386165f627172acba198e6ab65aa35aa12", - "dest-filename": "babel-preset-es2016-6.24.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-preset-es2017/-/babel-preset-es2017-6.24.1.tgz#597beadfb9f7f208bcfd8a12e9b2b29b8b2f14d1", - "sha256": "e2678aa5aff7992b7f25a68c0f4e9c761de802a7565ce800d0b74a70c680e531", - "dest-filename": "babel-preset-es2017-6.24.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-preset-latest/-/babel-preset-latest-6.24.1.tgz#677de069154a7485c2d25c577c02f624b85b85e8", - "sha256": "0d32228c58cee79e1c28ecdbd60ba655cbe1698b747ebe376a4caf24b4c695dc", - "dest-filename": "babel-preset-latest-6.24.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071", - "sha1": "6ed021173e2fcb486d7acb45c6009a856f647071", - "dest-filename": "babel-register-6.26.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe", - "sha1": "965c7058668e82b55d7bfe04ff2337bc8b5647fe", - "dest-filename": "babel-runtime-6.26.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe", - "sha256": "14d2488946744b70c47999b48b1989aa3b85d828181b3c61f35818be9033946b", - "dest-filename": "babel-runtime-6.26.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02", - "sha1": "de03e2d16396b069f46dd9fff8521fb1a0e35e02", - "dest-filename": "babel-template-6.26.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02", - "sha256": "0560b9872b2eec15ed29a81e4fbd1326d47f80e951f62287cc6ba347e832df83", - "dest-filename": "babel-template-6.26.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee", - "sha256": "a32a6f73c2770a56bd1f8a92b50d8c1a7824523170bd93227a7deeb20b3f1ac9", - "dest-filename": "babel-traverse-6.26.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497", - "sha256": "87be443f0c98a35a9d9c718e7eab868529bb515206cf284fbcfbe762ba196de9", - "dest-filename": "babel-types-6.26.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3", - "sha256": "ce1e81d36b5789279f8aba716d2ec5aabecbc306585f867f1a6a1c8dc478d88c", - "dest-filename": "babylon-6.18.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3", - "sha512": "abf5048df189d829b7a0a57bd43273f5ddb94cf9eae6b84154bd90e1f039c1c0b78dcadd9fbf92b2c1326c5231c00bef3fe602b0260d2ae821a05df71b183271", - "dest-filename": "babylon-6.18.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767", - "sha1": "89b4d199ab2bee49de164ea02b89ce462d71b767", - "dest-filename": "balanced-match-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767", - "sha256": "2896602c12d3cef566bfbed7ccdef79232f4f1e00622fc5c9b40737465baffad", - "dest-filename": "balanced-match-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f", - "sha256": "40b19256da00763327b8a914f013c4df34d3b7b89be0d84ae804a321ce580372", - "dest-filename": "base-0.11.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f", - "sha512": "e53e8fe313e0a69d180c5bd25b0119e0da04dda3384014170f39956eb6829058fccc733e99b6bc4b2a81e436d95b247b9981e8e98ec1750a373280389b44de42", - "dest-filename": "base-0.11.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65", - "sha512": "527ecc2040dd502e603697060d5f7ba29d58c24ef8f0ca477054c7a18b3aaa78f56778fb239dd51b79f06612b3a016666dd44d9dbe9645d165c25eed483b991b", - "dest-filename": "binary-extensions-1.13.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c", - "sha512": "3e196dd29960a482013864d3fde85f1676cd95fb03122aa6cc4d8a457a17d5b2c8962af85ff311fb34b204490bd397df5a09d149ffc35eff96ad4015afddffa3", - "dest-filename": "binary-extensions-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9", - "sha512": "d588fc87d43e40317917384cb3f73dfba527b5b0f932445f47069cf03a049bd65f50167bb59e7961c19503311ee1b5ec7501c493eb3d4b9c2c38a55d66bc34b5", - "dest-filename": "binary-extensions-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df", - "sha512": "a76abfb7f9a1bee3a3fd478b955eb9eba183fe0ba8c25af4847c42948d16f66ecc59890bd45d212e8fb401ec6cf4748f0ad4754974344c3dcc30aad765a8db89", - "dest-filename": "bindings-1.5.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.1.tgz#df70e302b471d7473489acf26a93d63b53f874de", - "sha512": "0dd9b2a060a57899e46e9de791bc532c9d7cae30ec138c8282013028d5e4795d76dec3cd7ce098783a1eb8e63e17616b4a33b561771353e76ccbde8a332fa072", - "dest-filename": "bluebird-3.7.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/blueimp-md5/-/blueimp-md5-2.12.0.tgz#be7367938a889dec3ffbb71138617c117e9c130a", - "sha512": "ce8f8721d221ce88efe85d6c8903ea3c544ec95cbb0b9d0acc7bff93f233f81b6fb55cd21d788c5cea6adb009f364781a9d0aff95f17395f7ab6c12dd96ff7ad", - "dest-filename": "blueimp-md5-2.12.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b", - "sha512": "4cd3e37d3af8df6ab1ef23a34326979b7752474307f6f5e9ede4f50454a5fc2e7583e1059ce47d85383522b79a8460660cd09e86c72c85ee397fe0b54c165b2f", - "dest-filename": "boxen-1.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/boxen/-/boxen-3.2.0.tgz#fbdff0de93636ab4450886b6ff45b92d098f45eb", - "sha512": "714e09ffe36874cdc81dd48bdb237c6ea62a9e69414e2743478442ee726ceb5666b46cfc559cccdc72d05f4cd8e66ad298fb51df15b0b2ada339442a15937cf8", - "dest-filename": "boxen-3.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd", - "sha512": "882b8f1c3160ac75fb1f6bc423fe71a73d3bcd21c1d344e9ba0aa1998b5598c3bae75f260ae44ca0e60595d101974835f3bb9fa3375a1e058a71815beb5a8688", - "dest-filename": "brace-expansion-1.1.11.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292", - "sha256": "7dd8d0413f3c06f2e0f729e116c7df3b96420b4e12a124eb9e69861965b170fa", - "dest-filename": "brace-expansion-1.1.8.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7", - "sha1": "ba77962e12dff969d6b76711e914b737857bf6a7", - "dest-filename": "braces-1.8.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7", - "sha256": "9c7fdc41cccb6e146eb1e4c1f9236af514a6c261f8b230fdd3a1ca979e8c2395", - "dest-filename": "braces-1.8.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/braces/-/braces-2.3.1.tgz#7086c913b4e5a08dbe37ac0ee6a2500c4ba691bb", - "sha256": "287be35650d203cbda2425f8da760a64ca01310d71267cd4cadc182c80d28bf1", - "dest-filename": "braces-2.3.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729", - "sha512": "68d75b9e3f4ff0f8dd5d4e326da58b2b6205de373f1280d86c2ec06b35bab68dd346c7d7c6c702f545ce07988388442b93221b5a9d922d075ae3e4006bb9dcdf", - "dest-filename": "braces-2.3.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107", - "sha512": "6fcba6f8bd51cccdd60d2cef866ea0233d727d36c1b7a61395c10a02fb26a82659170e3acfadba9558fd8f5c843d6df71f91fe94142964c3f593c97eefc1dad0", - "dest-filename": "braces-3.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.2.tgz#8ff09b0a2c421718a1051c260b32e48f442938ce", - "sha256": "0e2dd5b2e04f8f6e27ceeb659623261bf7859c1f482a77dde6c773a08ab8f14b", - "dest-filename": "browser-resolve-1.11.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f", - "sha256": "a711aeeb3d1d7d50b984d8dc89f18ea55e5566c7819de9beb21cf15c0521a87e", - "dest-filename": "browser-stdout-1.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60", - "sha512": "aa1015235f80bf65fba9e94e7c0218c1738da2877a5e5644fdf5da052996fd3e52ccb0260a0ce2f9e89613b7d4bdb1da78d0501f5dd47ed8e95f1b1f2e432983", - "dest-filename": "browser-stdout-1.3.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719", - "sha256": "e784697801764d68c5afbf2ec1c9b29a1e99a51d24120dda75697611277d158e", - "dest-filename": "bser-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/buf-compare/-/buf-compare-1.0.1.tgz#fef28da8b8113a0a0db4430b0b6467b69730b34a", - "sha1": "fef28da8b8113a0a0db4430b0b6467b69730b34a", - "dest-filename": "buf-compare-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242", - "sha256": "27d1154427f0131259994c6849888411be7d43723589e383487fd5886f53c66d", - "dest-filename": "buffer-crc32-0.2.13.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef", - "sha512": "3107171146c22ad128edb86a12ceb9eb41f27785daa2f6653bf93d57786355417fcf05bb28155d48ae2022dfdbcf04bd31b479aa86fe1798eeb19b1bd1840ad8", - "dest-filename": "buffer-from-1.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0", - "sha512": "10773220f050e0148696f8c1d7a9392a0009dbb088b0763fd8906609145ea38f32f6b43731a533597dca56505ae14eccc97d361dd563d0aec2dd6681de3bbb15", - "dest-filename": "buffer-5.7.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f", - "sha256": "e789717824e8688269c241c203d9f615cf15286d6217d74defc7f395b0da5f11", - "dest-filename": "builtin-modules-1.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2", - "sha256": "e870d5b8a27320468651257576c9d5503c60b05aa274980653a5a36b231fdec6", - "dest-filename": "cache-base-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2", - "sha512": "00a71d4e71525804dde7f1823d1c6bd82870209f3909ecab1328d11e52b1439e9de1724c1b29b4b8088a9f4c5b2ce18e977fb24693938b8f38755084739014cd", - "dest-filename": "cache-base-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912", - "sha512": "3a3ddc0063c2a8e657ed1cfae149f2d8660064d962412a9f6de3eb800435c0a022858982527ada06d26d29c191e31cfbc05f8ba090beb2c159befe41805f4882", - "dest-filename": "cacheable-request-6.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/caching-transform/-/caching-transform-1.0.1.tgz#6dbdb2f20f8d8fbce79f3e94e9d1742dcdf5c0a1", - "sha256": "896fdefa039680425b81fd9837eef6c4e3c01cab9306418eba4374fb3828ceca", - "dest-filename": "caching-transform-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/caching-transform/-/caching-transform-3.0.2.tgz#601d46b91eca87687a281e71cef99791b0efca70", - "sha512": "32d81cbf7961dd4d334628bfeaa56040e0dd3c0e06df3846fa3b5b0968f7f515ee5054cccc7d2f71d32d6894b58cfa3077e22dd8faabeb2dcd24c42a3aa084db", - "dest-filename": "caching-transform-3.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/call-matcher/-/call-matcher-1.1.0.tgz#23b2c1bc7a8394c8be28609d77ddbd5786680432", - "sha512": "22840b78dc307fd29335bb5203b68405bd727c36dd9f3c2309eb63902f22a39a0678e98ad8204d760d31afeb5a75160a3b4a7bb90c99cefa27d245e565bbc6af", - "dest-filename": "call-matcher-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b", - "sha1": "26d208ea89e37b5cbde60250a15f031c16a4d66b", - "dest-filename": "call-me-maybe-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/call-signature/-/call-signature-0.0.2.tgz#a84abc825a55ef4cb2b028bd74e205a65b9a4996", - "sha1": "a84abc825a55ef4cb2b028bd74e205a65b9a4996", - "dest-filename": "call-signature-0.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73", - "sha512": "3fc06302c5ef652f95203508d7584709012fef8613ebb6148b924914d588a8bdb7e6c0668d7e3eab1f4cbaf96ce62bf234435cb71e3ac502d0dda4ee13bb2c69", - "dest-filename": "callsites-3.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77", - "sha1": "a2aa5fb1af688758259c32c141426d78923b9b77", - "dest-filename": "camelcase-keys-4.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39", - "sha256": "09f39e3f9fdde6f23671234381258840cc1995dc76fca7612c01bb5607fa50e1", - "dest-filename": "camelcase-1.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd", - "sha1": "d545635be1e33c542649c69173e5de6acfae34dd", - "dest-filename": "camelcase-4.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd", - "sha256": "9a3bf68000a538b7f58d96a81eca7267965b058167ea2990782c170eda7592f5", - "dest-filename": "camelcase-4.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320", - "sha512": "2f6f124c1d7bd27c164badd48ed944384ddd95d400a5a257664388d6e3057f37f7ad1b8f7a01da1deb3279ef98c50f96e92bd10d057a52b74e751891d79df026", - "dest-filename": "camelcase-5.3.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809", - "sha512": "73bc15bdbc377f7ee7ba86d036d82c806f4f382f6a31b36e3109930aa66fdb76fa308cf47dc6290623a5bfd80437f85d2dd9d94c342183a7bd0eae4cd6f2af7e", - "dest-filename": "camelcase-6.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/capture-exit/-/capture-exit-1.2.0.tgz#1c5fcc489fd0ab00d4f1ac7ae1072e3173fbab6f", - "sha1": "1c5fcc489fd0ab00d4f1ac7ae1072e3173fbab6f", - "dest-filename": "capture-exit-1.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d", - "sha512": "99840b667c7942dd49801d561223027f6eb8ee996919e43634c47fe4bd07359cc6428e1fb923e72bec237cf9ca655d1a8890e0ce65aaaa457f83b243f835b4ab", - "dest-filename": "capture-stack-trace-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad", - "sha256": "447c612d0c7d8985c9d8862cc83bf4c29d122a085e21ce25fa1611e1a259b28f", - "dest-filename": "center-align-0.1.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/chai/-/chai-4.1.2.tgz#0f64584ba642f0f2ace2806279f4f06ca23ad73c", - "sha256": "dd20186f63cf19bb6fb07de5fb3ee29ff4995ce716e9b76e4aee8d8b6dd9fd61", - "dest-filename": "chai-4.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/chai/-/chai-4.2.0.tgz#760aa72cf20e3795e84b12877ce0e83737aa29e5", - "sha512": "5d05376e106e92b3ac402bb066777019c095407c998b9ddf43a62cd45ca6ec4e2896922aa99661868149a1a295bd5d7b9564285d8c2058dda717972b03c2768f", - "dest-filename": "chai-4.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98", - "sha1": "a8115c55e4a702fe4d150abd3872822a7e09fc98", - "dest-filename": "chalk-1.1.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98", - "sha256": "33979c4833fa486f3e1ea6afb5557e55abc38d37ad518e80c9f9261c9d54445d", - "dest-filename": "chalk-1.1.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba", - "sha256": "e60843450ee6d101fdfddee15d65f8c7cb52fe71dc4475605b1abb40b7956a7a", - "dest-filename": "chalk-2.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424", - "sha512": "32d8be7fd96924d730178b5657cfcead34ed1758198be7fc16a97201da2eada95c156150585dbe3600874a18e409bf881412eaf5bb99c04d71724414e29792b9", - "dest-filename": "chalk-2.4.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a", - "sha512": "ab0c75d80c577b6439c50e3701cfff23abf96974e2a58ad211274e833acdfbd5e3804a728e92aebd219a378a84f777fb4d04e57ab410f12f844341320e854bd4", - "dest-filename": "chalk-4.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e", - "sha512": "993f220dcae1d37a83191466a00da1981267c69965311fb4ff4aa5ce3a99112e8d762583719902340938acf159f50f39af6eee9e488d360f193a2c195c11f070", - "dest-filename": "chardet-0.7.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82", - "sha1": "574d312edd88bb5dd8912e9286dd6c0aed4aac82", - "dest-filename": "check-error-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82", - "sha256": "92554b32cbf947c79e2832277ee730015408dd75e753ee320ba1fc7bf5915dda", - "dest-filename": "check-error-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468", - "sha1": "798e689778151c8076b4b360e5edd28cda2bb468", - "dest-filename": "chokidar-1.7.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/chokidar/-/chokidar-3.3.0.tgz#12c0714668c55800f659e262d4962a97faf554a6", - "sha512": "74698a2c3753dc6765edf0547bc5cafa002d1a6cf2e459f45e491642e63118881654f3ec7b60b1140e66b6b943d133876878c452a9163723f55dd1e82444bfe0", - "dest-filename": "chokidar-3.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.3.tgz#c1df38231448e45ca4ac588e6c79573ba6a57d5b", - "sha512": "0ed33783b8ee09743115548d3cd072102dbe3489ad06ec5042f5a51ee9e92484b939caf4946df4e9c0bb1428bb7040347f39b26cf508978b71048a1b93580639", - "dest-filename": "chokidar-3.4.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494", - "sha512": "8f7f04bcee7e2c75fce23968ea1e14ce63b08b45205bad564723ed273e2a69a74ae5e6370534b94d8fd2d52b5cdd493694833a4cf7af02550b88427089ef3ad2", - "dest-filename": "chownr-1.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/chunkd/-/chunkd-1.0.0.tgz#4ead4a3704bcce510c4bb4d4a8be30c557836dd1", - "sha512": "c71dcf6f9545f506aa0a8b68972675cb0141832b899aeebef5d2e2a81c607a512c7bd5ecaf7c94969a17dcee0e875d4cd34193da460cb110724ca20c256d8b92", - "dest-filename": "chunkd-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497", - "sha512": "bec19d9304820e95a63fcd277004d7ee279ae435907a6835520096e49f2daa3537958c3814162e8fcf49d024d5a2603b0447ef49977ce06987928f8cc45414d8", - "dest-filename": "ci-info-1.6.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46", - "sha512": "e6d2bb12dad9d0df8e2c532d86da8e8f87c8d8979bf3c0b808064fbb6e4b0d55205c9d00dc9b383cc1aaae7d095355b4321d7f67cc19cd83f1a94ad77816e809", - "dest-filename": "ci-info-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/ci-parallel-vars/-/ci-parallel-vars-1.0.0.tgz#af97729ed1c7381911ca37bcea263d62638701b3", - "sha512": "bba771db41415e6f9aa4c8bee71ed4566e841fb04bd607385eb72741ec23701ec7591728aff579a96737446d87c29803276ea0222d83484bb707bb17ca7030fe", - "dest-filename": "ci-parallel-vars-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463", - "sha256": "503aa70f2c48c67a536df3379fd38bbf60b26e9335bb90643e7425992055c714", - "dest-filename": "class-utils-0.3.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463", - "sha512": "a8e84f6bf163eece9363c1fc7ac1aee5036930c431cfbf61faeaf3acd60dea69fef419f194319fe5067e5de083b314a33eab12479e973993899a97aeae72cc7a", - "dest-filename": "class-utils-0.3.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b", - "sha512": "e1d882f4769313e29100c5a10e1ac63840a0599c687af31ce5396439b32a352b1553ad8f6335d9fd23138f3c8600517562eb20c46712593117061a7408fc10d4", - "dest-filename": "clean-stack-2.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/clean-yaml-object/-/clean-yaml-object-0.1.0.tgz#63fb110dc2ce1a84dc21f6d9334876d010ae8b68", - "sha1": "63fb110dc2ce1a84dc21f6d9334876d010ae8b68", - "dest-filename": "clean-yaml-object-0.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143", - "sha1": "4fa917c3e59c94a004cd61f8ee509da651687143", - "dest-filename": "cli-boxes-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.0.tgz#538ecae8f9c6ca508e3c3c95b453fe93cb4c168d", - "sha512": "829681acc022cd510034ea5f669fc41148b14d70f21adec317374ae6153e51b5adfc9d25074c36d277198f9f59f5af77c476fdbb5db3179052ea2f5129bb60e3", - "dest-filename": "cli-boxes-2.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5", - "sha1": "b35dac376479facc3e94747d41d0d0f5238ffcb5", - "dest-filename": "cli-cursor-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307", - "sha512": "23fcc7030b0a7fd16a1a85cce16591002a1bf7e48dba465377de03585e7b138b68a2e46e95b0b171487a44a5043909584c7267ce43ccc92bcf35a6922cd7cb67", - "dest-filename": "cli-cursor-3.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.2.0.tgz#e8b988d9206c692302d8ee834e7a85c0144d8f77", - "sha512": "b605377cac3362388b11080f303f49b7e2631d52fd916f7716220c5ff97bae2bef383e3f2cbd0c7fb81d6b7fb8536289065a326f0823e4a1284201918a832229", - "dest-filename": "cli-spinners-2.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.0.0.tgz#68ff6aaa53b203b52ad89b8b1a80f1f61ad1e1d5", - "sha512": "0b8869fbc18220556c514897730f9c7beef07b1556226c3cad0ae030116ca9eaf1f4bbef7069709bab0c8d060012657f5dbf3bc5cd5be53b71e74e4c4a9655aa", - "dest-filename": "cli-truncate-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7", - "sha512": "9fc7ce8b1c030fa6ff39b8a7cd3ae9d59285cdb82f299beecff4ef7a39cb9f56907c2eabe765c4c7ce459ae0bedc723e24cedca0145752f36a114d8f1d5ac7a6", - "dest-filename": "cli-truncate-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639", - "sha1": "ff19ede8a9a5e579324147b0c11f0fbcbabed639", - "dest-filename": "cli-width-2.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1", - "sha256": "7555af1730a8ec76a3fb649d3da5db30d7080f69eab698698c8bf863ac4dcbdb", - "dest-filename": "cliui-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/cliui/-/cliui-4.0.0.tgz#743d4650e05f36d1ed2575b59638d87322bfbbcc", - "sha256": "fb95696399a517ad43910fd7270a11b772d91c0b6546a49aa9022dbe1d93b0a2", - "dest-filename": "cliui-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5", - "sha512": "3d87864849a61cceb3be879fdb0f133f396b9cda572234e2a582bbf3462cc2620ff6f8f199de98d9adc20762acebf014f0d1e366e817be8f30de858cdaa9f05c", - "dest-filename": "cliui-5.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b", - "sha1": "d1dc973920314df67fbeb94223b4ee350239e96b", - "dest-filename": "clone-response-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e", - "sha1": "da309cc263df15994c688ca902179ca3c7cd7c7e", - "dest-filename": "clone-1.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/code-excerpt/-/code-excerpt-2.1.1.tgz#5fe3057bfbb71a5f300f659ef2cc0a47651ba77c", - "sha512": "b492e11f7129166ff5c7b85e216d217a65c94d45391169765741085f9e7c8e9d3932dd54e8356bc82824a77977edcc6ab3e0cd6cd8311b8dd2930257a50d7827", - "dest-filename": "code-excerpt-2.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77", - "sha1": "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77", - "dest-filename": "code-point-at-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77", - "sha256": "5279ca78986d6381852ac1b02592ae2dc5cc979317284b8aa1d7554107770b3d", - "dest-filename": "code-point-at-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/codecov/-/codecov-3.6.1.tgz#f39fc49413445555f81f8e3ca5730992843b4517", - "sha512": "214241e961b8ee758aee8e747ad17c8c169dc5d330ec39a8420d39c88963b2d5c504607a725399b088fa883e0ff364f661a214deaabe145bbc2bda718240890d", - "dest-filename": "codecov-3.6.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0", - "sha1": "4bc0373c164bc3291b4d368c829cf1a80a59dca0", - "dest-filename": "collection-visit-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0", - "sha256": "86b0559c14662f08944683804c780fcef44c1a4c5e4d7a3799db4937143a5818", - "dest-filename": "collection-visit-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed", - "sha256": "0b20ed48be09d825e63e623592780923133e6e6de496d3c856e69580f5cd2703", - "dest-filename": "color-convert-1.9.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8", - "sha512": "41f014b5dfaf15d02d150702f020b262dd5f616c52a8088ad9c483eb30c1f0dddca6c10102f471a7dcce1a0e86fd21c7258013f3cfdacff22e0c600bb0d55b1a", - "dest-filename": "color-convert-1.9.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3", - "sha512": "4511023ec8fb8aeff16f9a0a61cb051d2a6914d9ec8ffe763954d129be333f9a275f0545df3566993a0d70e7c60be0910e97cafd4e7ce1f320dfc64709a12529", - "dest-filename": "color-convert-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25", - "sha1": "a7d0558bd89c42f795dd42328f740831ca53bc25", - "dest-filename": "color-name-1.1.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25", - "sha256": "b0ef3371fb2563cbeb6379f1639dc2a8c0a895d1d48ac72c7ad43c5ff409784e", - "dest-filename": "color-name-1.1.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2", - "sha512": "74ecbedc0b96ddadb035b64722e319a537208c6b8b53fb812ffb9b71917d3976c3a3c7dfe0ef32569e417f479f4bcb84a18a39ab8171edd63d3a04065e002c40", - "dest-filename": "color-name-1.1.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563", - "sha256": "32da223bd59643b0c19e76ce648aa2be502a4a9f7e092032edb15d8678285a00", - "dest-filename": "commander-2.11.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/commander/-/commander-2.14.1.tgz#2235123e37af8ca3c65df45b026dbd357b01b9aa", - "sha256": "2851f33fbef1c34ec9b9f2d37b970163a2e0b36fa436cfda80140ab3549bb1fa", - "dest-filename": "commander-2.14.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f", - "sha512": "5657d3f45dd5d2ffa3af8cb13dce6083db3adbf7c8556b1dd81936883e37e6e9b536518c61d542abe3237179e162ada270d3a2cc7af590afb94c8e87d07cb46a", - "dest-filename": "commander-2.15.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33", - "sha512": "1a956498cf2f176bd05248f62ef6660f7e49c5e24e2c2c09f5c524ba0ca4da7ba16efdfe989be92d862dfb4f9448cc44fa88fe7b2fe52449e1670ef9c7f38c71", - "dest-filename": "commander-2.20.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-1.0.0.tgz#cd52f6f0712e0baab97d6f9732874f22f47752c0", - "sha1": "cd52f6f0712e0baab97d6f9732874f22f47752c0", - "dest-filename": "common-path-prefix-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b", - "sha1": "ddd800da0c66127393cca5950ea968a3aaf1253b", - "dest-filename": "commondir-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b", - "sha256": "5b89851be4f799923e48320a13165883d2ffcb8cd4ec71023263255497c251b0", - "dest-filename": "commondir-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6", - "sha256": "5ff1fe2cc660cd91de7036c1fa73024bf820ff339aa38643956c2f0fb1c42ded", - "dest-filename": "component-emitter-1.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0", - "sha512": "45ddec7ba401fac3b54f0a998ec710aeeae910f21f3b4ff26274a29fa43fac3de63aeb47bd4ac202126e6f7afdd2e35bf9211206e134418a01f7461d7dab6c46", - "dest-filename": "component-emitter-1.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b", - "sha1": "d8a96bd77fd68df7793a73036a3ba0d5405d477b", - "dest-filename": "concat-map-0.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b", - "sha256": "35902dd620cf0058c49ea614120f18a889d984269a90381b7622e79c2cfe4261", - "dest-filename": "concat-map-0.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/concordance/-/concordance-4.0.0.tgz#5932fdee397d129bdbc3a1885fbe69839b1b7e15", - "sha512": "974445b81f112df092d0fb7621ddfdfe808fca4134d69cb1800172a564e5686460bcb919aed73367c6ad107a53784216fb36165d306e03d70249e10e49cc5179", - "dest-filename": "concordance-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f", - "sha512": "bedbf91ed1a371852016b5dce8ac7be3b07cdcc451552e51d554c44285efb8ffa4308fa27fabb2c15d270c6a22c9d251cb8ca4ee1f687793a0d24c71e335179b", - "dest-filename": "configstore-3.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/configstore/-/configstore-4.0.0.tgz#5933311e95d3687efb592c528b922d9262d227e7", - "sha512": "0a6aae017141a1caf369233c9ad18f30cfc78969b2229af809c265feb818dae08e6d9fd2edc294d2c8a5c6c96a25e8e5fadfd3f474bc1343d43500fcd4919411", - "dest-filename": "configstore-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e", - "sha1": "3d7cf4464db6446ea644bf4b39507f9851008e8e", - "dest-filename": "console-control-strings-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a", - "sha1": "fe8cf184ff6670b6baef01a9d4861a5cbec4120a", - "dest-filename": "contains-path-0.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5", - "sha256": "7f0041f2260a56d45a42138ca14ad07ef266a478374269e98d00c6806b53c9bd", - "dest-filename": "convert-source-map-1.5.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442", - "sha512": "e052645f3297103075b270856652cfe20a42dc920b89c0a919bcc6f5ff46eed1aa182cc44d0da158fadc8a703da14e30b5fd9b8946841f9d3ae549cc791df7a0", - "dest-filename": "convert-source-map-1.7.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/convert-to-spaces/-/convert-to-spaces-1.0.2.tgz#7e3e48bbe6d997b1417ddca2868204b4d3d85715", - "sha1": "7e3e48bbe6d997b1417ddca2868204b4d3d85715", - "dest-filename": "convert-to-spaces-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d", - "sha1": "676f6eb3c39997c2ee1ac3a924fd6124748f578d", - "dest-filename": "copy-descriptor-0.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d", - "sha256": "e010f2a9224a6c270ff834d740ab7ea508b5c7a086d329eb0cd641029e79b4b6", - "dest-filename": "copy-descriptor-0.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/core-assert/-/core-assert-0.2.1.tgz#f85e2cf9bfed28f773cc8b3fa5c5b69bdc02fe3f", - "sha1": "f85e2cf9bfed28f773cc8b3fa5c5b69bdc02fe3f", - "dest-filename": "core-assert-0.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/core-js/-/core-js-2.5.3.tgz#8acc38345824f16d8365b7c9b4259168e8ed603e", - "sha256": "8980021c6183a5c2171e2a97bcee49ebf7dc7d0953c512deeb9a5740ea0dede5", - "dest-filename": "core-js-2.5.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/core-js/-/core-js-2.6.10.tgz#8a5b8391f8cc7013da703411ce5b585706300d7f", - "sha512": "237f6def8fb8b7ecdabbae043757c4e6fd96df501db5cfd1121cd637e8164515e0e961f9a80b199bad831e9435f9885ee34e3b4f9e63bf3cfb314a85fdd04194", - "dest-filename": "core-js-2.6.10.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec", - "sha512": "29bdb00b47efb167d0ae093c1d4e655ba53f2dcb3cfbd69a61ccb864573a0c3968e2767b9fbd1d120139aed474a06eae7ca0d49ebc1f58bd665d1e658c36adad", - "dest-filename": "core-js-2.6.12.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7", - "sha1": "b5fd54220aa2bc5ab57aab7140c940754503c1a7", - "dest-filename": "core-util-is-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/cp-file/-/cp-file-6.2.0.tgz#40d5ea4a1def2a9acdd07ba5c0b0246ef73dc10d", - "sha512": "7e6bd5e1c6819e87e13def2439c8ad0704a7d9fdfd40b8e70271aade03bd75f77be66532b7328d641d6175ee901ee9d6d91b7e3b0b8138c7378b5b4d1256eccc", - "dest-filename": "cp-file-6.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/crc/-/crc-3.8.0.tgz#ad60269c2c856f8c299e2c4cc0de4556914056c6", - "sha512": "897de67e0713308ab764a2c8b151406efefe31cd7493169b00641bf07be3035a374f53c8629adb6a443ae5ddc8fb61c61edea748a90cf4f62382824ed8a70505", - "dest-filename": "crc-3.8.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6", - "sha1": "06be7abef947a3f14a30fd610671d401bca8b7b6", - "dest-filename": "create-error-class-3.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41", - "sha1": "7b9247621c23adfdd3856004a823cbe397424d41", - "dest-filename": "cross-spawn-4.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41", - "sha256": "ad6f0fd0b683c3ae9a325d4c60fb5acbadc98b9fa2915511e49eaf61576fbb79", - "dest-filename": "cross-spawn-4.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449", - "sha1": "e8bd0efee58fcff6f8f94510a0a554bbfa235449", - "dest-filename": "cross-spawn-5.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449", - "sha256": "910805e8cd5da64d6f42f789f0965eee18a37c57a2631f764f847f8e8fccff6d", - "dest-filename": "cross-spawn-5.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4", - "sha512": "79354bac14adedf8db0f2833f34e69327b2d22cd954c1364466d2ac5977e33b0395c377155158ee4cc460576618d8e1ca8b60b76dac6a917fc9813e6cf04a959", - "dest-filename": "cross-spawn-6.0.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e", - "sha1": "a230f64f568310e1498009940790ec99545bca7e", - "dest-filename": "crypto-random-string-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e", - "sha256": "f561d650122b4c93a86916280cd28cea3763d635c8f0cab2b77e12683b73f3f1", - "dest-filename": "crypto-random-string-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea", - "sha1": "988df33feab191ef799a61369dd76c17adf957ea", - "dest-filename": "currently-unhandled-0.4.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/date-time/-/date-time-2.1.0.tgz#0286d1b4c769633b3ca13e1e62558d2dbdc2eba2", - "sha512": "ffdf82e385fb968b7421e8b27e0266113b5132106274160cd9014522419ad14d64fa14b263cecdc3b3d8dde0eaa6f0819bb23758249f3de66c916fd862aea6e2", - "dest-filename": "date-time-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f", - "sha256": "5ce5df47b00f65b6d84df8da4692a421edce014ad9d41fd72539fa103d85e453", - "dest-filename": "debug-log-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f", - "sha256": "34ae48c66698f1f81e2a2e6e322f34e8a88b0986a3fa7b74bb5ea14c0edb1c98", - "dest-filename": "debug-2.6.9.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f", - "sha512": "6c2ec496b7496899cf6c03fed44a2d62fa99b1bdde725e708ba05f8ba0494d470da30a7a72fb298348d7ce74532838e6fc4ec076014155e00f54c35c286b0730", - "dest-filename": "debug-2.6.9.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261", - "sha256": "dac8e5de92ce0e149d5708c893ef9d401fe80729ce9a0d66b4f40678708fd5ec", - "dest-filename": "debug-3.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b", - "sha512": "99e97e8dfee7aed125e4f9f5431e3acc0457283a416efcdecec7bba7b2ea20d99da0893c3d83f94b249ac44998bfa4d9d09c84280d61b0221de832218084ed59", - "dest-filename": "debug-3.2.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791", - "sha512": "a58008cde468f09e8a3c4689d1558e8793f391bc3f45eb6ecde84633b411457e617b87cf1f1dab74a301db9e9e8490a45fe5d1426d7a7992ea2cd4bc45265767", - "dest-filename": "debug-4.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz#7f150f93920e94c58f5574c2fd01a3110effe7f1", - "sha512": "217da7718efcbc34e364c154766b2f211158d827f81670f4c11b3e9d0c0953c2eef7dfed3c575bd15c9b8a23133dedc8eab426c2ca90a9106fc54f9b67f23cb2", - "dest-filename": "debug-4.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9", - "sha1": "d171a87933252807eb3cb61dc1c1445d078df2d9", - "dest-filename": "decamelize-keys-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290", - "sha1": "f6534d15148269b20352e7bee26f501f9a191290", - "dest-filename": "decamelize-1.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290", - "sha256": "b4adeff510e38c3a02703bcba72ffbe3c65b591f13c78c6a459b5e801a3e2864", - "dest-filename": "decamelize-1.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837", - "sha512": "f621353e04a293d1de208c3624ef78222767137781a10ac5277c3bb05bb3497e03a66677bf9b19a54895e52c1c7fa990105f98d2bbbc35ea3ea7e9f287627e85", - "dest-filename": "decamelize-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545", - "sha1": "eb3913333458775cb84cd1a1fae062106bb87545", - "dest-filename": "decode-uri-component-0.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545", - "sha256": "0a3e427c86cd249b0b402907132bf8ba85efb2a34ed1d2b3aa4694fd21730ad6", - "dest-filename": "decode-uri-component-0.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3", - "sha1": "80a4dd323748384bfa248083622aedec982adff3", - "dest-filename": "decompress-response-3.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df", - "sha256": "d0d75e7828b6b044cd81ddf332f03830b6f80e671495b265eee22a187a49c3a9", - "dest-filename": "deep-eql-3.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df", - "sha512": "f9078843237966e3bedd49390d887aff578a3b49b462624518d9851c6002a5fd4294bd679a557fa7880d81b976a491b18176f87daaa8e9413e33900210cc9573", - "dest-filename": "deep-eql-3.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a", - "sha512": "c9df5ce40762a95711f898dcc1441bf4392125cf2780daf431a844046bc3889c3ca6e59a6f6c99961fa791ab0e9d93fe1064c03faad1a76273261259cef345f2", - "dest-filename": "deep-equal-1.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac", - "sha512": "2ce1f120e68f61d1e5251b4241f0c8559b5fc3fb9f33cfab563eb8f51207cdc9bfbc6c1045716de8e3ea2055ac9b65c432b34812d591eb8b18d4b10a0f6bc038", - "dest-filename": "deep-extend-0.6.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34", - "sha1": "b369d6fb5dbc13eecf524f91b070feedc357cf34", - "dest-filename": "deep-is-0.1.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/deep-strict-equal/-/deep-strict-equal-0.2.0.tgz#4a078147a8ab57f6a0d4f5547243cd22f44eb4e4", - "sha1": "4a078147a8ab57f6a0d4f5547243cd22f44eb4e4", - "dest-filename": "deep-strict-equal-0.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8", - "sha256": "20d21cd370f7b5dea9795fa4be3ca0c8d1e801b31d01f82ba74c842478d9676a", - "dest-filename": "default-require-extensions-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-2.0.0.tgz#f5f8fbb18a7d6d50b21f641f649ebb522cfe24f7", - "sha1": "f5f8fbb18a7d6d50b21f641f649ebb522cfe24f7", - "dest-filename": "default-require-extensions-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d", - "sha1": "c656051e9817d9ff08ed881477f3fe4019f3ef7d", - "dest-filename": "defaults-1.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.0.tgz#b41bd7efa8508cef13f8456975f7a278c72833fd", - "sha512": "584dac66872d5a6fefe2c99f08076361badf4b9e4988c45d958f59b9b161b186ed7822bdf81bc0c78615ee73e360ce999d7e4172854ac1f9b2c7db0815381031", - "dest-filename": "defer-to-connect-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1", - "sha512": "dcca9f60a8f694bcdd3127fc648644fd5f99bb2f81803e9fd7ae1ef0adb0edd827a4a02b0437ab198a4ce3a21861c8e791d3cd3233e4f40e95141f3edd22a55d", - "dest-filename": "define-properties-1.1.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116", - "sha1": "c35b1ef918ec3c990f9a5bc57be04aacec5c8116", - "dest-filename": "define-property-0.2.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116", - "sha256": "d317d5d4dc0ba4cc92daa979be09f9f7e98bf84a870e9a43049bdf7a90e64fe4", - "dest-filename": "define-property-0.2.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6", - "sha1": "769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6", - "dest-filename": "define-property-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6", - "sha256": "a61a958973b476aec5401e5ceb5e3ef40ef2a24093ec2f91680f920336a98794", - "dest-filename": "define-property-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d", - "sha256": "0ade8d2e984ecfcdbaafc3eb236fc61d5ea71e49580676cee1a399e37d1d1d55", - "dest-filename": "define-property-2.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d", - "sha512": "8f02b6515e1c9cfa5b706efe55101129364f516a30c1703c6f31f934feae774a1e031c983ee1995000bb84cba0a42773e01792665d8397d93ae821c9ff8e9961", - "dest-filename": "define-property-2.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4", - "sha512": "4301ae114a2e3f6915c107a702c3a87f916ff0af6ddc3f026bc3717172ab2291078d35cae49da75cb74ff802c8d5c82ff308fb2aec01853c0190e65224a3395d", - "dest-filename": "del-4.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619", - "sha256": "ac38fce4217dfb1d772427c7d8d0d073e35ecd832915e97a61d9ab5c504129d3", - "dest-filename": "delayed-stream-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a", - "sha1": "84c6e159b81904fdca59a0ef44cd870d31250f9a", - "dest-filename": "delegates-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208", - "sha1": "f76d064352cdf43a1cb6ce619c4ee3a9475de208", - "dest-filename": "detect-indent-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208", - "sha256": "d4436cafa0273e1d69d67968a9432b3b78a1ed2b55a32e57c52f0772f818c3d2", - "dest-filename": "detect-indent-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b", - "sha1": "fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b", - "dest-filename": "detect-libc-1.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/diff/-/diff-3.3.1.tgz#aa8567a6eed03c531fc89d3f711cd0e5259dec75", - "sha256": "fba1bd9afa7843fe5bba330a95b15d6ebb9bd885cc3e579722a4eacb2bd8e56c", - "dest-filename": "diff-3.3.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/diff/-/diff-3.4.0.tgz#b1d85507daf3964828de54b37d0d73ba67dda56c", - "sha256": "39d8c7a5bc53e832dff1810dc7dabac047c9192ffbea6d340be0f2e5e40f10e5", - "dest-filename": "diff-3.4.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12", - "sha512": "038eaab4581dfa0ee90d98a7a67c22449b716c2d61a607f4bb33f7886f3db1c1e4d00502ec0d531b17f93a288e52ffc931947c18eb7c84bf74d215746cecb9c4", - "dest-filename": "diff-3.5.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d", - "sha512": "e7c966c4a480e013722f3f871cc53394e129834f4557e7afe9931edef262860771ce073067c5681043e600b0991bd2e6a9f56834c30aa6db48613546eae0d8ec", - "dest-filename": "diff-4.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4", - "sha512": "7fd2c18b9416cc85b723a7bffeec59a0b06552df64729ebaaa8d2c482c4be9864a73be51d5ce0c142a1efcb6998811a682e8ef41dc5ce419f74217f2bcae47b3", - "dest-filename": "dir-glob-2.2.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f", - "sha512": "5a4ad6a7d191e0a5df28663338b993b86562d545857f0b37efb9fd71ce79fed6fa0eeab217aa5c43901b88712c85a0e963dbfaa1a4abd9708389d1a633077320", - "dest-filename": "dir-glob-3.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/dmg-license/-/dmg-license-1.0.10.tgz#89f52afae25d827fce8d818c13aff30af1c16bcc", - "sha512": "49579eca239e8a75792423c75cc74a3a02b56156da93fe3ef162f6ac19dfa9162903915a7856909d059bdb9c7adbc6a6d70ef409b8a9183bfd4b9d5b8a987adc", - "dest-filename": "dmg-license-1.0.10.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa", - "sha1": "379dce730f6166f76cefa4e6707a159b02c5a6fa", - "dest-filename": "doctrine-1.5.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961", - "sha512": "c92f90e62de105fec6064778286f1aede04d3563462d3684c306165228c860cef3ae56033340455c78e33d6956675460ed469d7597880e68bd8c5dc79aa890db", - "dest-filename": "doctrine-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57", - "sha512": "b54317af1944c525ba5361178a228648155d620b55f2a9472fe0b5d13b16e0f51163f89cf9e6b2b274a4c01e2403f981942cb2fc828327e2dcdf06d679a5edb9", - "dest-filename": "dot-prop-4.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb", - "sha512": "b845326832a8490d4ce0eabc978e61484dba4a74f12fab27367aaf2bf556c79c098667dfe73d055152432836a7a2bffac379331378bb5d93a4fbbc02d045ebd4", - "dest-filename": "dot-prop-5.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2", - "sha1": "ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2", - "dest-filename": "duplexer3-0.1.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/emittery/-/emittery-0.4.1.tgz#abe9d3297389ba424ac87e53d1c701962ce7433d", - "sha512": "af879149e4ad1067fa33948a76b42184b2b96cec0e071421204dd84939d91371a92a22df9e7844fad3edac913bf7e7832609b7f4133a2d2a08f120b1e076f095", - "dest-filename": "emittery-0.4.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156", - "sha512": "0b004b444210ecbbd8141d16c91bf086ae4de6a3e173a3cc8c3e9b620805948e58c83825fb4bf1ab95476cc385a8b83b85f5b39aef13e59d50a1f8664c8848b4", - "dest-filename": "emoji-regex-7.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37", - "sha512": "3128d8cdc58d380d1ec001e9cf4331a5816fc20eb28f2d4d1b7c6d7a8ab3eb8e150a8fd13e09ebd7f186b7e89cde2253cd0f04bb74dd335e126b09d5526184e8", - "dest-filename": "emoji-regex-8.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/empower-core/-/empower-core-1.2.0.tgz#ce3fb2484d5187fa29c23fba8344b0b2fdf5601c", - "sha512": "83af8ae867b2735a3a15d5ecf47c2b5e578215a9fb77ae86e714827d217bc759890c27aceadd289bd945406df33abce1dc191bff8e4dd1c6791aab1fed8af319", - "dest-filename": "empower-core-1.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0", - "sha512": "faec358a720754f428695b87cd1c97776d6270cf9c9ede02cc3e6b5be342d708ce5124ceb3e4deec53afec084deef4bdc7fa08ca12cfe4f4751fea614001eee5", - "dest-filename": "end-of-stream-1.4.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/enhance-visitors/-/enhance-visitors-1.0.0.tgz#aa945d05da465672a1ebd38fee2ed3da8518e95a", - "sha1": "aa945d05da465672a1ebd38fee2ed3da8518e95a", - "dest-filename": "enhance-visitors-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/equal-length/-/equal-length-1.0.1.tgz#21ca112d48ab24b4e1e7ffc0e5339d31fdfc274c", - "sha1": "21ca112d48ab24b4e1e7ffc0e5339d31fdfc274c", - "dest-filename": "equal-length-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc", - "sha256": "77b75727ed24faaba5d36a73c231b5ed4aa9243afaebf04ac7d0cef4617a32c1", - "dest-filename": "error-ex-1.3.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf", - "sha512": "edd147366a9e15212dd9906c0ab8a8aca9e7dd9da98fe7ddf64988e90a16c38fff0cbfa270405f73453ba890a2b2aad3b0a4e3c387cd172da95bd3aa4ad0fce2", - "dest-filename": "error-ex-1.3.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.16.2.tgz#4e874331645e9925edef141e74fc4bd144669d34", - "sha512": "8d8a3f27c5d4d9e98b5e5dce2f07f0b6e15fb85db0e8360fb3ec72f597d5c8f90372b6aebba2d8af0fead93c82b6b6dcfca51d0a20b97bd51a8d1860364568a4", - "dest-filename": "es-abstract-1.16.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a", - "sha512": "4023a5960649b5a528f6689805c2c285351a1cd8c91773d8b35562743ec0c22123d6463129e41372d2c07b300e1f964a447d20d8880f9fa2b0078213f22469bc", - "dest-filename": "es-to-primitive-1.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d", - "sha512": "526ffe17132bf422125a1d1b8b966fd22383fb8705879a8b7a4b35aa1028a4a540270dddae029b2b24a2929ef01a10cbd073de6a36b43f950b66bc4b92789456", - "dest-filename": "es6-error-4.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613", - "sha256": "cb920c89db01cc86c45750a52b7ee5d552976a07476b5f18c72d3a1862ebc72c", - "dest-filename": "es6-promise-3.3.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a", - "sha512": "1c90c6c7975ac5e22fc5d071bc6d9c6fd838b44bf0224de2f3e9e15f4c86ad89995336e4760f106c37af85e0c1f20774fffb8f8f8735110b9af10f8c5624f4ff", - "dest-filename": "es6-promise-4.2.8.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203", - "sha1": "5109d62f3e56ea967c4b63505aef08291c8a5203", - "dest-filename": "es6-promisify-5.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4", - "sha1": "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4", - "dest-filename": "escape-string-regexp-1.0.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4", - "sha256": "e50c792e76763d0c74506297add779755967ca9bbd288e2677966a6b7394c347", - "dest-filename": "escape-string-regexp-1.0.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344", - "sha512": "529cdc2c25e895459c36ee47b5530761d5c98c0ae3b05f42d1a367aae658638b96fd5bb49a2cb96285af6d5df8e476ae56f700527a51ba130c72a4dc18e636fb", - "dest-filename": "escape-string-regexp-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34", - "sha512": "4eda5c349dd7033c771aaf2c591cc96956a346cd2e57103660091d6f58e6d9890fcf81ba7a05050320379f9bed10865e7cf93959ae145db2ae4b97ca90959d80", - "dest-filename": "escape-string-regexp-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-14.1.0.tgz#b23da2b76fe5a2eba668374f246454e7058f15d4", - "sha512": "105e9792bac655bbeff212ff9186bf9babe7be6513f8af36a4925ce0925530cebe420aa1d299f0a6b4b175db832c1f69ffb6c8c43f985793b4c1f6fc96670f6c", - "dest-filename": "eslint-config-standard-14.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/eslint-formatter-pretty/-/eslint-formatter-pretty-1.3.0.tgz#985d9e41c1f8475f4a090c5dbd2dfcf2821d607e", - "sha512": "e4363ae18d6b6029bb71f1431c41949f9e1bbc29cafb0494545d3b37ca177aa50915277e82760e4d76f37a54351eeac44a5b98ea09c440f997388901e166be80", - "dest-filename": "eslint-formatter-pretty-1.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a", - "sha512": "b1f993a897cf4a2cd6bb86b299b3ebe0889da79c8a9bcc83907a7e22bdd88931e28837f187af66394b268aa5ba459f7345715a17ae06b5898dedefbc18706fe9", - "dest-filename": "eslint-import-resolver-node-0.3.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.4.1.tgz#7b4675875bf96b0dbf1b21977456e5bb1f5e018c", - "sha512": "1fa0ce8fe7a3c3b4deb1d81b7ece23792e18305ad3f2e23cc7077582d42a5ecb1a474110dba2fed8eff0eb0918172d8cca638dd1f4f01e65c1bef7cb35955913", - "dest-filename": "eslint-module-utils-2.4.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/eslint-plugin-ava/-/eslint-plugin-ava-9.0.0.tgz#a8d569ae7127aa640e344c46d1f288976543b1bd", - "sha512": "989a90d7043da71062e4fbbe82baea8dfb922f18924a09e96b9a79bcc744a41a80f67f5c533482bf4c4c67f3644cc023e6278e0774d617c8feec2df4622bf844", - "dest-filename": "eslint-plugin-ava-9.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-2.0.0.tgz#0f5f5da5f18aa21989feebe8a73eadefb3432976", - "sha512": "7fa7dc795b60dbb051d361189c186058b1507cae9b3782e5d27405ac11ce942b00cb1799927d0d1e7b393b461938fad5d41deb6a677a7201706a814b71293011", - "dest-filename": "eslint-plugin-es-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.18.2.tgz#02f1180b90b077b33d447a17a2326ceb400aceb6", - "sha512": "e68869b0702250144d681580174f22cf050695bac9a0927e5bdfd3070b06a11d4c9e581fc0c20aac57928d66edea6a1a6e25d6f7136fb45cfef7b28745f2381d", - "dest-filename": "eslint-plugin-import-2.18.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-10.0.0.tgz#fd1adbc7a300cf7eb6ac55cf4b0b6fc6e577f5a6", - "sha512": "d424b233f4028ece8f5da4f5f3ecee017b235c6206a39470eb7d2b48ac28912b368eb614450738479259a686a7342ab03667a983ed1e67d2fb62245425bf2389", - "dest-filename": "eslint-plugin-node-10.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz#845fd8b2260ad8f82564c1222fce44ad71d9418a", - "sha512": "568334f6f4fb6df03b0feba9b7e1637813b9787209401516922d5a3ef07ebdb3621d2dfea062091887b206d2904cc13a50f5d7cb7bd5d3b38bd6d1dddc036e0f", - "dest-filename": "eslint-plugin-promise-4.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.0.1.tgz#ff0519f7ffaff114f76d1bd7c3996eef0f6e20b4", - "sha512": "bff2819dfc9a38c3e665cfdd99cea8cce756a9e906a7b6c11aae232c079c11f3c699f2a2592e2c03cb02d0baa257dc39aa65c0b57567e0cde9d634b2858f3949", - "dest-filename": "eslint-plugin-standard-4.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.0.0.tgz#e87c8887c73e8d1ec84f1ca591645c358bfc8fb9", - "sha512": "a18ae1256ed2d1bc40143bd6ab3bcc3d19baa5c81c9d6738427a1f080a914d17d00b425cc1e9f31a0953b6c2f222eb9615f92a0c6f6fcfaedc9edb52779ddd8f", - "dest-filename": "eslint-scope-5.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f", - "sha512": "7db04de56db1758e392ae9465e62c76777371477d56262a0d08ac02863a44ffe3ae0f42cc7651e2337f3d51984722f8a2e6d5b05a03364087cfbf13e5c0799f1", - "dest-filename": "eslint-utils-1.4.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2", - "sha512": "f32f588ed335241254fc0f4a73e49b68e578cb6f6c4967240703076be146b558f980dfec6e72837fac49525fbc83b1408a3f4b55a3fc0b6e035221ff7ffd99f4", - "dest-filename": "eslint-visitor-keys-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/eslint/-/eslint-6.7.1.tgz#269ccccec3ef60ab32358a44d147ac209154b919", - "sha512": "516cc14bbf6935cb034b18316dd8e49b39ff07a061b1731f51a3879cdc3213c9c3f90ea9c93f7aa30d8c71c55ac944d5e32322778a8b84c8906b2c1cb519012c", - "dest-filename": "eslint-6.7.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/esm/-/esm-3.2.25.tgz#342c18c29d56157688ba5ce31f8431fbb795cc10", - "sha512": "535b2e899da80d55afe333cee7a4b435c47942b8846a11ad74dd8e47a162386e1626f723055141d2a238f9e2a85851f8f373ca1ae2eebba57c6784f983add454", - "dest-filename": "esm-3.2.25.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/espower-location-detector/-/espower-location-detector-1.0.0.tgz#a17b7ecc59d30e179e2bef73fb4137704cb331b5", - "sha1": "a17b7ecc59d30e179e2bef73fb4137704cb331b5", - "dest-filename": "espower-location-detector-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/espree/-/espree-6.1.2.tgz#6c272650932b4f91c3714e5e7b5f5e2ecf47262d", - "sha512": "da250fbae3cffb25b53d968c48333d7b255ff03e4fd078bc87cdd8b59e5b3dcff31d88c8239921a22c4851330eefde0d398f05fd3845d41a3c9dc6482daad44c", - "dest-filename": "espree-6.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804", - "sha256": "1367ea7204a4819d1771feaf562fb240496a50e46b6deeb770eee1f3622aca47", - "dest-filename": "esprima-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71", - "sha512": "786b85170ed4a5d6be838a7e407be75b44724d7fd255e2410ccfe00ad30044ed1c2ee4f61dc10a9d33ef86357a6867aaac207fb1b368a742acce6d23b1a594e0", - "dest-filename": "esprima-4.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/espurify/-/espurify-1.8.1.tgz#5746c6c1ab42d302de10bd1d5bf7f0e8c0515056", - "sha512": "643928e9e63fa3e0ff807096c874d4f3998a0e061c4b81498fb4be603e962089e6ec643a0273a399c2f8f9bb8557f24eced54b10b8bfecc9ae194e4d1ed6b432", - "dest-filename": "espurify-1.8.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/espurify/-/espurify-2.0.1.tgz#c25b3bb613863daa142edcca052370a1a459f41d", - "sha512": "ef0fdd52b45e23f41b2451d1c1fa264e5910397681d4db82ac1467e58dba1d79f982f875f3fd7d0202db6b256b3715d07e4724be0ac99685b2bd90ee27b76110", - "dest-filename": "espurify-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708", - "sha512": "4a68b2679cc8587f5533e49151178b4b943c6bb1b1b51771101559a66f7cac933b49bf80f435429dd5df91e1547776f275eae0f846c391f9debdf0b0ca759a34", - "dest-filename": "esquery-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf", - "sha512": "eb844107ef9f20e0173f0dcff5ccbcf6a7cc96f6445d992aa89923aaa5c8bf33f97b34598d6fa53d68f0df9517ff712150f1586e0e44478258803c38d34eff0d", - "dest-filename": "esrecurse-4.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d", - "sha512": "dfd9e729f7d6cfcc4dd4153fd9cefd9fd9c1f470f3a349e2614ab1eb1caa527ca8027432c96a4e4dd6447a209c87c041bb9d79b78c29f599a055f5619fd101a7", - "dest-filename": "estraverse-4.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.2.1.tgz#bdafe8095383d8414d5dc2ecf4c9173b6db9412e", - "sha256": "cafb1a4b68a310246d00fcc8dc77139a8f69479a6d3b3fc0836efc7bab648c98", - "dest-filename": "estree-walker-0.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b", - "sha256": "9e978bed6f447a9f644f2a371e64a51673d5f2cb13401974fae6ee373304d796", - "dest-filename": "esutils-2.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64", - "sha512": "915b1ca97938382a7af126747648042958baffc8a3df4d0a0564c9ab7d8ffdd61e5934b02b8d56c93c5a94dd5e46603967d514fcb5fd0fb1564a657d480631ea", - "dest-filename": "esutils-2.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.1.tgz#163b98a6e89e6b65b47c2a28d215bc1f63989c38", - "sha256": "c0d57384b240451a33c82723eff5036c2fdd1ce93236aca6f5095f5c94b784e2", - "dest-filename": "exec-sh-0.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777", - "sha1": "944becd34cc41ee32a63a9faf27ad5a65fc59777", - "dest-filename": "execa-0.7.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777", - "sha256": "da8b373ec5ee3e58795a5f12762d839c883e1f88c58b5826b190be1449375c16", - "dest-filename": "execa-0.7.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b", - "sha1": "df07284e342a807cd733ac5af72411e581d1177b", - "dest-filename": "expand-brackets-0.1.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b", - "sha256": "83059b85f78245edd96e498c3eef432faabe985a3e06124d3bb22b272e5befbb", - "dest-filename": "expand-brackets-0.1.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622", - "sha1": "b77735e315ce30f6b6eff0f83b04151a22449622", - "dest-filename": "expand-brackets-2.1.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622", - "sha256": "d88edc204920f7e2e1d6fe9d564fd70cf53cad77f16e106e136ef6d05dbf5d33", - "dest-filename": "expand-brackets-2.1.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337", - "sha1": "a299effd335fe2721ebae8e257ec79644fc85337", - "dest-filename": "expand-range-1.8.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337", - "sha256": "f423822ca3fcb9755c2242177ec8abfae026548a2537270ff23a202fc2cbe8b4", - "dest-filename": "expand-range-1.8.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f", - "sha1": "51af7d614ad9a9f610ea1bafbb989d6b1c56890f", - "dest-filename": "extend-shallow-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f", - "sha256": "1b7c9a6b7c7a3d812460eaee0561d0b367ece710fcdc8a2b1e3c078ee8ed6a25", - "dest-filename": "extend-shallow-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8", - "sha1": "26a71aaf073b39fb2127172746131c2704028db8", - "dest-filename": "extend-shallow-3.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8", - "sha256": "a01acad649571a4afc14ac53871ba89c362664c17b65d1a3ebd949bad8647109", - "dest-filename": "extend-shallow-3.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495", - "sha512": "84c438097d69d62ce6b8b63266a2cc3bfa86370d74c12bfd40308f7f35dfc85ace682492a117ea13529fd6ce5a9fae89e49642eb635ec06fa62b8f63382b507b", - "dest-filename": "external-editor-3.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1", - "sha1": "2e18ff3d2f49ab2765cec9023f011daa8d8349a1", - "dest-filename": "extglob-0.3.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1", - "sha256": "2855f0194e6d68b7582b4217727d195797ea9d57e87f68545b09244a6bd62a98", - "dest-filename": "extglob-0.3.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543", - "sha256": "5ea33b732f0bfe301d0d2bf19836b860222c112c86c58fc41a28b30dd120eaf3", - "dest-filename": "extglob-2.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543", - "sha512": "3666fa4179042ecb81af6e02252922968e941c781b7a42b95226607c4e941c3dc46f6ed80baa03f9b85c4feb49e9c97c766b20750c675a572bcbc92c04804ba7", - "dest-filename": "extglob-2.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07", - "sha512": "5ab937e5ef327422838ff02b0a5a3556b3d598df33a61e55e00b47c08b8786f317b0a7fbdd44f704e0fe6b30485bedf0389e058441fbcf2689085bc286362f30", - "dest-filename": "extsprintf-1.4.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/far/-/far-0.0.7.tgz#01c1fd362bcd26ce9cf161af3938aa34619f79a7", - "sha256": "155d0987eb3a267c56689523bf3b96b021600d255bb19e75fde6de0c3ae3824e", - "dest-filename": "far-0.0.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49", - "sha1": "7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49", - "dest-filename": "fast-deep-equal-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03", - "sha512": "c49ba84f9f8bf7d5e567cb7079d6917fa031d93810571be064e6283caa99b9f98989bd2d2f6b5e80f04e65bd6954d808865a83940d1e3b4737c01bd0726cf1e3", - "dest-filename": "fast-diff-1.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d", - "sha512": "8352ae4301ce64098e64cb81b477710ed8eef93d914fc8e0082f5a00db1ba5d8830d34a78e07ee56c20134a6d4789237a0a31113171f343b499783a16df7ccb3", - "dest-filename": "fast-glob-2.2.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.1.0.tgz#77375a7e3e6f6fc9b18f061cddd28b8d1eec75ae", - "sha512": "4eb533dd31e2ab6572ddb8df414076c0dc8f74605e1a67636f3cc12e17c7378605bab629b422b01aafd37e245abdb1b2c0547363a53609d990d739ac639c986b", - "dest-filename": "fast-glob-3.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2", - "sha1": "d5142c0caee6b1189f87d3a76111064f86c8bbf2", - "dest-filename": "fast-json-stable-stringify-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917", - "sha1": "3d8a5c66883a16a30ca8643e851f19baa7797917", - "dest-filename": "fast-levenshtein-2.0.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/fastq/-/fastq-1.6.0.tgz#4ec8a38f4ac25f21492673adb7eae9cfef47d1c2", - "sha512": "8e6c6a43767f9d7a1ec8399603317d907d5a1994a2b3a7bf49b7cf989a549f2674a20afa8ac70741a9a5e30b047a911649db66a72f9e557982448329c5a5ea38", - "dest-filename": "fastq-1.6.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58", - "sha256": "307357d7cd0ad97a2401cee3fb548f31b421fa35c00a894b6c719852a6d95199", - "dest-filename": "fb-watchman-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/figures/-/figures-3.1.0.tgz#4b198dd07d8d71530642864af2d45dd9e459c4ec", - "sha512": "adabe1f15457a87b8cbd9b7f77c19b9417aa0cc91d24c05dbffd8a9ed147fab6b931790eee7c4d2a9cd0de7e900ffd9d6b5907d1a5a634849dbe133b825da056", - "dest-filename": "figures-3.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c", - "sha512": "6c2836f6272db8168a530c00acae28b826aa0e02d9732b0214b98cfd89ff143a2a9dd87ff6f36e41f5d10ef4ee5ca2f17c3fc9b594062854fc30670904aeb8e2", - "dest-filename": "file-entry-cache-5.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd", - "sha512": "d19b7eb372fb55fd5b8b0599dbd6804625582f1ee23069c4525f71df77db07f8f78d1f35bbf3b62dba8af819b508348d0ca56d27f623c18ed351de5291e2d02f", - "dest-filename": "file-uri-to-path-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26", - "sha1": "c1c4b9bee3e09725ddb106b75c1e301fe2f18b26", - "dest-filename": "filename-regex-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26", - "sha256": "427984fa14af1ec14cafbdd524bdd0c145f8567325a6ece4ad39f73d763e946b", - "dest-filename": "filename-regex-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723", - "sha256": "45024df8d280ba034b447ee3128647b5e24d7693677a70dc517257b139fc8089", - "dest-filename": "fill-range-2.2.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565", - "sha512": "727adc09b8f4d7e8f68131bddb55593e71db8e67407fca1057f886795da4671192c9f6238d3c98efd12bb0ad56256329c3a0da029117ef66e29ea244fbf77ee5", - "dest-filename": "fill-range-2.2.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7", - "sha1": "d544811d428f98eb06a63dc402d2403c328c38f7", - "dest-filename": "fill-range-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7", - "sha256": "fd73b16149446ae57657c0f23c2d8a2baa835e7817e88629d36e421fec546a92", - "dest-filename": "fill-range-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40", - "sha512": "a8ea3d17e74c5260b62dc6f805b56f9ca2714cf8c29be451a5ee200ee1abce42fb984565fdd8d84aed8e750d8f6b7d36378a2a91283d8abea368b589d94495a5", - "dest-filename": "fill-range-7.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9", - "sha256": "fa7ad781a5d50ce33f04ff241f32315ed45c537beaf032f08d1e33e8841eb736", - "dest-filename": "find-cache-dir-0.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7", - "sha512": "4eae8f8b1134c3f54c15f0a06ce36792240856897f2492fb9d1322db47eacc0e0d46cf407dea8c19e45d3e2df0221624c63781696876af1c1aa67e53bb722a39", - "dest-filename": "find-cache-dir-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f", - "sha256": "b1e6968c7ccf27d31504353bed2b0748b9b0284bc847b0a0480f5b56137d8b7f", - "dest-filename": "find-up-1.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7", - "sha1": "45d1b7e506c717ddd482775a2b77920a3c0c57a7", - "dest-filename": "find-up-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7", - "sha256": "e3ffbffcc7334b7eace925188baedbc1eaa83e506fce2b8a734136b31633ad1d", - "dest-filename": "find-up-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73", - "sha512": "d720fa4662c8d5705fc6e82f391c25724e9fef9b582fe891d23ab0b0eacec4c672198a94b83849d25e005dd3b5897fc54ecf5c040304935816484c759126f296", - "dest-filename": "find-up-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19", - "sha512": "3e93b001d43f6255d0daf8fc6b787c222a43b98462df071e550406616c4d20d71cab8d009f0ec196c11708c6edd59b7e38b03a16af6cb88a48583d0eb2721297", - "dest-filename": "find-up-4.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc", - "sha512": "efcfcf5d3d7094b2c3813cc3b3bb23abd873cf4bd70fece7fbbc32a447b87d74310a6766a9f1ac10f4319a2092408dda8c557dd5b552b2f36dac94625ba9c69e", - "dest-filename": "find-up-5.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0", - "sha512": "2e841eeb20ee50c0f3400107f2c82687831dea866773fecf8edc233454b3bde5ea487b7a91af5f3c1baca3b2067fd473e2eaa74a75a2147d81ff38f6e1ae5178", - "dest-filename": "flat-cache-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241", - "sha512": "6fab2e103fb9ff7ad3a5405d1b582ea4897c30f14200c034417c269632e1bc250a714bdd138816932f73a6e1827171ceb33e09f703c6356aba38aa66233cf785", - "dest-filename": "flat-5.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/flatted/-/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08", - "sha512": "6b5850324b6a5bd366aabe5a92d02ec7724c36a6ae73119c8ed8d69d92c75fbcb23c29a5495dcce789c661ba93f0afb41a117734182624273799af963a05fc26", - "dest-filename": "flatted-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/flora-colossus/-/flora-colossus-1.0.0.tgz#54729c361edecee014dd441679e1a37c1d773a45", - "sha256": "7760792db9056ac73e082229fa343cd51ef9c30b28c7b2527f5b813181669f83", - "dest-filename": "flora-colossus-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80", - "sha1": "81068d295a8142ec0ac726c6e2200c30fb6d5e80", - "dest-filename": "for-in-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80", - "sha256": "4e7da30d44cd6cf66e4883328d6ced16fa83a5da11bbe46b4837ddfd526fa85e", - "dest-filename": "for-in-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce", - "sha1": "5265c681a4f294dabbf17c9509b6763aa84510ce", - "dest-filename": "for-own-0.1.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce", - "sha256": "f0fa350a77c2e6375efb7730f2884e377e0cc0cf7fa4ba0b0539d8a34072b22f", - "dest-filename": "for-own-0.1.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/foreground-child/-/foreground-child-1.5.6.tgz#4fd71ad2dfde96789b980a5c0a295937cb2f5ce9", - "sha1": "4fd71ad2dfde96789b980a5c0a295937cb2f5ce9", - "dest-filename": "foreground-child-1.5.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/foreground-child/-/foreground-child-1.5.6.tgz#4fd71ad2dfde96789b980a5c0a295937cb2f5ce9", - "sha256": "f31c6279638e310b2469b4485e8ab1f06d698fc1c2219cdf7c2ecbfcbe7eed16", - "dest-filename": "foreground-child-1.5.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19", - "sha1": "4290fad27f13e89be7f33799c6bc5a0abfff0d19", - "dest-filename": "fragment-cache-0.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19", - "sha256": "e63cac91ed9159f180a4856278525147e3f037f19638784410e5ef8b4b759284", - "dest-filename": "fragment-cache-0.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94", - "sha256": "56a34e78924434580cc936bef05a4a685a9c8463d0b19584f3861bcdd820990f", - "dest-filename": "fs-extra-4.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9", - "sha512": "6090da0896449c199c6f0d777ef74033d03034e2703b3ac4e29a8ca81ab99c5884a9752a1f094ae01fb7a54c3a24dbdf48fb57d39c451ed632ff59e2d357860b", - "dest-filename": "fs-extra-7.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.6.tgz#2c5cc30ded81282bfe8a0d7c7c1853ddeb102c07", - "sha512": "72b86fc9770c7a38efdd9e5dd856bdb1fe712d85421793b573bd50c5b5676cbb2660c044bc301fb5ec1eb0dfc7858d37611a00ef338cc63346ac5e6cbc669a79", - "dest-filename": "fs-minipass-1.2.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27", - "sha512": "18d6a75e556bda97f4dbeb0f378d1737c1c6f9e3da35cbccd2ae6664177aebc39bc1bd320f91a251b64e160c27f2418c63a23799dc8327389e532dcf4d8c9344", - "dest-filename": "fs-readdir-recursive-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f", - "sha1": "1504ad2523158caa40db4a2787cb01411994ea4f", - "dest-filename": "fs.realpath-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f", - "sha256": "9e80cb8713125aa53df81a29626f7b81f26a9be1cd41840b3ccdcae4d52e8f9c", - "dest-filename": "fs.realpath-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38", - "sha512": "a166f567a9a41c8b242f3109fd7597d2cae4a644d0eef6a8a4c424c9a108a2ad1f9ad155c4eb616fc702c5e4fea77ca74dd924fd16706e01b86eb47905e5840b", - "dest-filename": "fsevents-1.2.13.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f", - "sha512": "a1eca3d87dc48e3a2759c1630f936f64d13d46a7b8516fa74015361cd78ac3492854b105221b72113c806a478033775eed9fd25b991c03e7d951a8adf440299f", - "dest-filename": "fsevents-1.2.9.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.2.tgz#4c0a1fb34bc68e543b4b82a9ec392bfbda840805", - "sha512": "478c03881c19d0ace980e59eb4a0ee83515971886a6275182ad7d962de260f9481cfbeaad0a47843da3b1883da9ac54f1a65b71183cf27474e3a3bf1df695d64", - "dest-filename": "fsevents-2.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e", - "sha512": "02ec3d6b8031a96a5af4651f8f7ef404c3f3cf29dc7c10015bc31a6fb0465816038f822c82af9c0cab71d22eaef63717f694039ecc2c69a393813980e69123b9", - "dest-filename": "fsevents-2.1.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d", - "sha512": "c88a2f033317e3db05f18979f1f482589e6cbd22ee6a26cfc5740914b98139b4ee0abd0c7f52a23e8a4633d3621638980426df69ad8587a6eb790e803554c8d0", - "dest-filename": "function-bind-1.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327", - "sha1": "1b0ab3bd553b2a0d6399d29c0e3ea0b252078327", - "dest-filename": "functional-red-black-tree-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7", - "sha1": "2c03405c7538c39d7eb37b317022e325fb018bf7", - "dest-filename": "gauge-2.7.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5", - "sha256": "14c82f01361452d3ee9e7879d90e66819557d8e84a69ec0f6c7c65c6563049a7", - "dest-filename": "get-caller-file-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e", - "sha512": "0f214fdc133fdd81d340e0942ffc343991d1d25a4a786af1a2d70759ca8d11d9e5b6a1705d57e110143de1e228df801f429a34ac6922e1cc8889fb58d3a87616", - "dest-filename": "get-caller-file-2.0.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41", - "sha256": "791183ec55849b4e8fb87b356a6060d5a14dd72f1fe821750af8300e9afb4866", - "dest-filename": "get-func-name-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/get-port/-/get-port-5.0.0.tgz#aa22b6b86fd926dd7884de3e23332c9f70c031a6", - "sha512": "8a6ccc534163b19a8d6ba06a3a36db5bac39062bc722e40aa298e93ea727c740151c940a0b12b53be01bdcead55e1ade92a7d5323c00f5962ed3ad91f8a708b1", - "dest-filename": "get-port-5.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14", - "sha1": "8e943d1358dc37555054ecbe2edb05aa174ede14", - "dest-filename": "get-stream-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14", - "sha256": "775e05b483a9a801fafb4f4858b200dbc34ce38a9bc1442efb4b00f92245006e", - "dest-filename": "get-stream-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5", - "sha512": "18c6ade04279d7ad64232d877af2e5af896e363060be68f8d7729a400ee3b7857c078443b1fa4793b590f4656a7d8cb2c7c392fcbeba2a8c7eac944d9252caef", - "dest-filename": "get-stream-4.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9", - "sha512": "117af514ecebcd37c678bd2041d78512f38c9b69b330e825ca2397493a4f0be8808c029fb5baf78e908c5b29e883062733e7928fdb0719ceb08c8703bd88b283", - "dest-filename": "get-stream-5.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28", - "sha1": "dc15ca1c672387ca76bd37ac0a395ba2042a2c28", - "dest-filename": "get-value-2.0.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28", - "sha256": "54006eb984cd6bde4583f72fd3de97bdb9bfb552eb235053f98ffea33cf8fc14", - "dest-filename": "get-value-2.0.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4", - "sha1": "dbb164f6221b1c0b1ccf82aea328b497df0ea3c4", - "dest-filename": "glob-base-0.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4", - "sha256": "c7aa93cb5439345a22efef1ec734c5c7a68e236d34d916e108e3aeb826eda8a5", - "dest-filename": "glob-base-0.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28", - "sha1": "81383d72db054fcccf5336daa902f182f6edbb28", - "dest-filename": "glob-parent-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28", - "sha256": "6331c038d9b238fcdea3b1721c26ffa33765b16354abfd5091aa58d2e070854d", - "dest-filename": "glob-parent-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae", - "sha1": "9e6af6299d8d3bd2bd40430832bd113df906c5ae", - "dest-filename": "glob-parent-3.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.0.tgz#5f4c1d1e748d30cd73ad2944b3577a81b081e8c2", - "sha512": "aa3b5182721598e7e729413734901011d93e94aaf17f0f2de647bb497b5f3131dc8ec05f39f5970907dd6f7d337c3a194362114888a27668ed6c764f67ef8887", - "dest-filename": "glob-parent-5.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229", - "sha512": "16723e5463a99e5187599c6d84f191f90851efc7ee88ad2c34b90742ff9b2fd7d08b9ee534d76ab886e76bf5ab7d13aba25abc18ae4493a062330a8bfefa1161", - "dest-filename": "glob-parent-5.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab", - "sha1": "8c5a1494d2066c570cc3bfe4496175acc4d502ab", - "dest-filename": "glob-to-regexp-0.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15", - "sha256": "cf3d3e47a1308b512fd707f1df593737cb569079d04bf975e1fc48de6a629ed1", - "dest-filename": "glob-7.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255", - "sha512": "8642cf7a97a19a72a4e35a541a6dec631a05b3fba6bab61f60909eadb5c4c85216700cefa62a40815901aaa4fd44128c1a39eaea432ec98c216ba72cc5b88cd4", - "dest-filename": "glob-7.1.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6", - "sha512": "2f06b1c3267bd8b93bbd920db4d36bcb05f466e2f24adadd0ed69b79f64a018e59189855b607739e5b917acc4d98f8ad1344803be3b6eac5931de292236c0c04", - "dest-filename": "glob-7.1.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445", - "sha1": "b319c0dd4607f353f3be9cca4c72fc148c49f445", - "dest-filename": "global-dirs-0.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e", - "sha512": "58e069fc410652222c252a7bc1cbffcba30efa557d5289dc5aac6e15f9bc781c3358d8327c177a1b3f8878a43d8c29b28681fdf60d793374fe41a5471638b354", - "dest-filename": "globals-11.12.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/globals/-/globals-12.3.0.tgz#1e564ee5c4dded2ab098b0f88f24702a3c56be13", - "sha512": "c007e374b805b0f66c9252c9bce054066cd813cfc2c2112a48110c457037ab122236dcaabe362eac0b487c387a7219443d47e64d8dcc9d98791df878ab452523", - "dest-filename": "globals-12.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a", - "sha256": "437a12c10dd45aa191c4a5d77648026f1d65a578b65e2c88ee249ec8945c737a", - "dest-filename": "globals-9.18.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a", - "sha512": "4b49c6dc22c442263f20bc6ab73b53587ff789145dc812f0e8a303c6728c721aed6e3d8e1667a1561d165027d6dc352b220c7fa85ac93c80abab8678b1347d51", - "dest-filename": "globals-9.18.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/globby/-/globby-10.0.1.tgz#4782c34cb75dd683351335c5829cc3420e606b22", - "sha512": "b12b388a7135141d98422ca67264efe8d58436bc8006350d3de5a13af9a7e128ed2b26e096cc8f671141dd4d7ff8bd5b622d2b3590ea08b947c8b6039753eae4", - "dest-filename": "globby-10.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c", - "sha1": "f5a6d70e8395e21c858fb0489d64df02424d506c", - "dest-filename": "globby-6.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/globby/-/globby-9.2.0.tgz#fd029a706c703d29bdd170f4b6db3a3f7a7cb63d", - "sha512": "a2594f1d139ae667310c493083a6cfb7741b11fe290d048db5de893cbd58bcebc0a3feffd15026f5371c51ea1399aae33f0e297d4b61482a9cc9f341d48dd94a", - "dest-filename": "globby-9.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0", - "sha1": "240cd05785a9a18e561dc1b44b41c763ef1e8db0", - "dest-filename": "got-6.7.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85", - "sha512": "47b796a6d5ee198c708a3b34795fafde8ebe5c7d48a952bc74938479c41f4e6927730f4057875cc3f0e1c62f0c765a8fb61c71a59ca2ccccf283c453984b06f9", - "dest-filename": "got-9.6.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658", - "sha256": "6ab070270ef8dd8edd446df87425829ed31091dc7e5f30787f5abb9cb5c2b6b8", - "dest-filename": "graceful-fs-4.1.11.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423", - "sha256": "982d3ba32bb6c9bcf4868bba575d5bb7360ba1de2d2b9adb78589d6b9f7ac778", - "dest-filename": "graceful-fs-4.2.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423", - "sha512": "6b7d151019b83c4771d5d441ecc14aec17a37a3bc2bc1ae89db2e386dfac1ee1988fc3c7b3b33fe59fabb79970e79d6f67bc9f4c28f856ecb2de6489cad0d645", - "dest-filename": "graceful-fs-4.2.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb", - "sha512": "5a328f34917bf5db490159e2525186587606cf68d6c53e9584dff89b535d91b6769ceb0417e708d44760aa5e7309186cfd5b10611beb5dcb7192d557654922c7", - "dest-filename": "graceful-fs-4.2.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/growl/-/growl-1.10.3.tgz#1926ba90cf3edfe2adb4927f5880bc22c66c790f", - "sha256": "c2b3b8616ef6b39b1b7ce7a09d9a8b4f70b355f6cc6b7d26e070f7087085b23f", - "dest-filename": "growl-1.10.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e", - "sha512": "a81af83ae10b9213de9d6ea0a0a5578afe3b512ddc95bdff21bb9617d28d2848a3032f68787c54f488338ef2611e453385a8fbace503efe6065aa5232e9e6848", - "dest-filename": "growl-1.10.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.11.tgz#630a35dfe0294bc281edae6ffc5d329fc7982dcc", - "sha256": "b3ca96fefb7fe3d85caa18d0f82c62549d21bce667385ca62f6c2bbeb62a3613", - "dest-filename": "handlebars-4.0.11.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/handlebars/-/handlebars-4.5.3.tgz#5cf75bd8714f7605713511a56be7c349becb0482", - "sha512": "df23de709a091caff873a699852bf13b21b8bc9283b21577e951e9d225420d587ba3dc36bf08b73529cbd8c30f8f761d76ea9a05cbbb7066e080940cd1bafdc4", - "dest-filename": "handlebars-4.5.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91", - "sha1": "34f5049ce1ecdf2b0649af3ef24e45ed35416d91", - "dest-filename": "has-ansi-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91", - "sha256": "e30265eb491e78d3586ea64dea6b61f3d45a28a28d908caf73f04531764344ed", - "dest-filename": "has-ansi-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa", - "sha256": "48b69ec5354f64a225937160b1fc95e5583eb23db08041086d33a04e11ad4ea7", - "dest-filename": "has-flag-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51", - "sha256": "0915ab7bab71d000cd1ccb70b4e29afe1819183538339c8953bc9d3344bc4241", - "dest-filename": "has-flag-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd", - "sha1": "b5d454dc2199ae225699f3467e5a07f3b955bafd", - "dest-filename": "has-flag-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b", - "sha512": "1329094ff4352a34d672da698080207d23b4b4a56e6548e180caf5ee4a93ba6325e807efdc421295e53ba99533a170c54c01d30c2e0d3a81bf67153712f94c3d", - "dest-filename": "has-flag-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8", - "sha512": "3cb72ca2abbef9d98421907eeada2d3452aaffb0e8f99d2ee284f4cca389365de560aeaf1b0c2eda18c7b3eebc38465b4e389413d6e03800576cffc6beb4b42a", - "dest-filename": "has-symbols-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9", - "sha1": "e0e6fe6a28cf51138855e086d1691e771de2a8b9", - "dest-filename": "has-unicode-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f", - "sha1": "7b1f58bada62ca827ec0a2078025654845995e1f", - "dest-filename": "has-value-0.3.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f", - "sha256": "de562805d0b419b653f2ca54cf89d71ebdc4424ea294001490f7eb9cf2b78dc0", - "dest-filename": "has-value-0.3.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177", - "sha1": "18b281da585b1c5c51def24c930ed29a0be6b177", - "dest-filename": "has-value-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177", - "sha256": "29f7c52387889aeef39b66c717db0d79a47b208f3ae17431b683d7189c5b77c6", - "dest-filename": "has-value-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771", - "sha1": "6d61de95d91dfca9b9a02089ad384bff8f62b771", - "dest-filename": "has-values-0.1.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771", - "sha256": "a6826e9f6b99687fd5d655374a5a6e9a1dd99af24c8f9a71ec9d025e3817d7d2", - "dest-filename": "has-values-0.1.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f", - "sha1": "95b0b63fec2146619a6fe57fe75628d5a39efe4f", - "dest-filename": "has-values-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f", - "sha256": "8caff002766ef426bae3d98dfa2ac180fa7adbf54bc1bd6de7b2c682e057efa5", - "dest-filename": "has-values-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77", - "sha512": "52a051aa2e23bbb4fe4ea18d76a00ed0f692546b0318950142f93d79458d191635085183cd884b5a833b25011e9a796f55cbff60499cdb0356f010b6e049d4b3", - "dest-filename": "has-yarn-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796", - "sha512": "7f676f3b4554e8e7a3ed1916246ade8636f33008c5a79fd528fa79b53a56215e091c764ad7f0716c546d7ffb220364964ded3d71a0e656d618cd61086c14b8cf", - "dest-filename": "has-1.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/hasha/-/hasha-3.0.0.tgz#52a32fab8569d41ca69a61ff1a214f8eb7c8bd39", - "sha1": "52a32fab8569d41ca69a61ff1a214f8eb7c8bd39", - "dest-filename": "hasha-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/hasha/-/hasha-5.1.0.tgz#dd05ccdfcfe7dab626247ce2a58efe461922f4ca", - "sha512": "3853c35a6ccf37597b6ad395d5380156636d071688cac4e82ba55ef432bebd3ea962e925c3f9cf353f8725b662d0a0dc23abd607ef6d82f679603edf03709770", - "dest-filename": "hasha-5.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd", - "sha256": "a5caab6aef32441afbfa10aae3969b9737e7b45cd84450e90b8728c27278c480", - "dest-filename": "he-1.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f", - "sha512": "17fd439d418fa29391662d278be0afac28074391721001d12d2029b9858c9ab6d2c28376327ffb93e1a5dfc8099d1ef2c83664e962d7c221a877524e58d0ca1b", - "dest-filename": "he-1.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8", - "sha1": "e36c3f2d2cae7d746a857e38d18d5f32a7882db8", - "dest-filename": "home-or-tmp-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc", - "sha256": "fd654fb1e48b6d489ac3940583e8d5cc7b8ad23413e851198a74925f3dcb8b52", - "dest-filename": "homedir-polyfill-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c", - "sha256": "6147b743df5b0396ff5fde32fb088bc02b292c43412b2215e0db9e71a98b9e51", - "dest-filename": "hosted-git-info-2.5.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.5.tgz#759cfcf2c4d156ade59b0b2dfabddc42a6b9c70c", - "sha512": "92cb2369bf02bdd5df71731755cbec5ee9b81f076af571ad443dd3b5e304bc46ead0b5f288d42be80a6ba8aa9f79a0d7cdeed2c56bd1c5da7013a92eee290b92", - "dest-filename": "hosted-git-info-2.8.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz#495704773277eeef6e43f9ab2c2c7d259dda25c5", - "sha512": "4dc20c1b7a9e54b803af54c47765ef1da4e730fc1841440c2012f2fb9a4b48329815ced422a8f7f70f041b36646b1a0bbff9762bc1da234b7901503e6188147b", - "dest-filename": "http-cache-semantics-4.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz#4ee7a737abd92678a293d9b34a1af4d0d08c787b", - "sha512": "3a6bdfa10e7758b8ed03d1de60ff5136b58c273cc0cf524669216bd678a38343d547525a0ffc5b26ad667442089711a95e9f5e49efced8b814f432664cf77412", - "dest-filename": "https-proxy-agent-2.2.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/iconv-corefoundation/-/iconv-corefoundation-1.1.7.tgz#31065e6ab2c9272154c8b0821151e2c88f1b002a", - "sha512": "4f5d2abe4c34cf3e309e6e7ad253848343e8bd5a945ee3858611c0922c70f3fb32732ed326deeffd1ae410a1109c0c36be23d226eea202412bc67cd1d20f0fa5", - "dest-filename": "iconv-corefoundation-1.1.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b", - "sha512": "bf73179d901cbe7cb091350466898801cb657bb4575de79d391df5c3097b565ca85cee108bd6abbd27a73505a77b54dc4708422f51f02c8db56c4a9da63f3fac", - "dest-filename": "iconv-lite-0.4.24.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09", - "sha1": "48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09", - "dest-filename": "ignore-by-default-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8", - "sha512": "0d3565331dc860f7b4fc925c60fec6c60eedb5966edc822786e1216dc86eaa7798f7059ee4e8f2da65cb05a4055109a8d005b6af7a86ee6d6683cea3b3e82795", - "dest-filename": "ignore-walk-3.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37", - "sha512": "9bba3ac6e39a4f56aa85e60729ff16e89e69607f39648f70d3bedeaceccb8dedc9b01d6091a7e40211c7635f5daa3ba5808647166df60a9e6e35981c42a7492b", - "dest-filename": "ignore-walk-3.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc", - "sha512": "7321432aba9cfd875c5859e2261cc8e36f80cd2fa0370994cce485711090630c92b81041cbf2a3bb158b67f147107e8ca2ad4d8b330e056c9372ff0ee0e64832", - "dest-filename": "ignore-4.0.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf", - "sha512": "3336d449a8644d6d6eec9a4a2a363b2c20117757d4e56dab2ddc6533891d91acae0b06489a392996e17d08cd5a2dec18260b8f0ea7b02da9b5f18e8053af40f0", - "dest-filename": "ignore-5.1.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66", - "sha512": "e9ed6ad5c9d63f64570fdfe47929311d2720e74f02757a975a05816844cd872b81173fa451994a6e887e2122be6d4fbe0e66c78a6541acecffcf33ded2c677b1", - "dest-filename": "import-fresh-3.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43", - "sha1": "05698e3d45c88e8d7e9d92cb0584e77f096f3e43", - "dest-filename": "import-lazy-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6", - "sha512": "be32f7fb0d28ba50156748411e7c5afcd9b94c0bab7fd60b4090e1a91672a9bf95286381e8b53cb7d1f536be42228d7abe1f577c94cea07c14d01ef54b9e7b80", - "dest-filename": "import-local-3.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/import-modules/-/import-modules-1.1.0.tgz#748db79c5cc42bb9701efab424f894e72600e9dc", - "sha1": "748db79c5cc42bb9701efab424f894e72600e9dc", - "dest-filename": "import-modules-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea", - "sha1": "9218b9b2b928a238b13dc4fb6b6d576f231453ea", - "dest-filename": "imurmurhash-0.1.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea", - "sha256": "ac23a031966a7371d192e35c7852ab31c772b7d4e468ddd886ad3c014372cb60", - "dest-filename": "imurmurhash-0.1.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289", - "sha1": "4a5fd6d27cc332f37e5419a504dbb837105c9289", - "dest-filename": "indent-string-3.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251", - "sha512": "11d0c366ee00d8ec882bb2ebff6cc6fb0e6399bba4d435419c4c11110bc1ceca412640846d16bc1b153596085871a1890a745689b8c35e5abbefd5f5ff2e71c2", - "dest-filename": "indent-string-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9", - "sha1": "49bd6331d7d02d0c09bc910a1075ba8165b56df9", - "dest-filename": "inflight-1.0.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9", - "sha256": "5a9fdcf59874af6ad3b413b6815d5afaaea34939a3bee20e1e50f7830031889b", - "dest-filename": "inflight-1.0.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de", - "sha256": "7f5f58e9b54e87e264786e7e84d9e078aaf68c1003de9fa68945101e02356cdf", - "dest-filename": "inherits-2.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c", - "sha512": "93fbc6697e3f6256b75b3c8c0af4d039761e207bea38ab67a8176ecd31e9ce9419cc0b2428c859d8af849c189233dcc64a820578ca572b16b8758799210a9ec1", - "dest-filename": "inherits-2.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927", - "sha512": "45963986e20a08c4560d4a999448bbd9ffe599728cbeeb3370c05dba5890de79d66f1f57fd90503bb0e28cc1184bd1211c16f6a9a71150cb42eecbcbc1ed2573", - "dest-filename": "ini-1.3.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/inquirer/-/inquirer-7.0.0.tgz#9e2b032dde77da1db5db804758b8fea3a970519a", - "sha512": "ad2742ef37a51dd4501645a786c32edbed923b8d66a6fda8176cf2e2d3219a22d691c29b380b3cedf580261557b6d295c21759bf29af9ee33de44c845e0dbfb5", - "dest-filename": "inquirer-7.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360", - "sha256": "3309486391d70fb7ee5139dbb0388ab9c67391c96d444591638a1e8848d72173", - "dest-filename": "invariant-2.2.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6", - "sha512": "a6125f41506e689339ada3a926349f9220fa0696c213836cfff2da5e5eb0198b54058f379d64ba45ff6d5e6d9ef1568aeb42448d895d6cf89ffc0d81d42da034", - "dest-filename": "invariant-2.2.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6", - "sha256": "ad334f834b1876490ce47e220ff1b712e5b678216552abbd005639c14974d29e", - "dest-filename": "invert-kv-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/irregular-plurals/-/irregular-plurals-1.4.0.tgz#2ca9b033651111855412f16be5d77c62a458a766", - "sha1": "2ca9b033651111855412f16be5d77c62a458a766", - "dest-filename": "irregular-plurals-1.4.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/irregular-plurals/-/irregular-plurals-2.0.0.tgz#39d40f05b00f656d0b7fa471230dd3b714af2872", - "sha512": "63be730582e4874949f6ac5e1e532343b6d26f2892a8d5bf50e3d60e6cc2edc5ec90bd617a44884e1d4e73a255d17096599f4313c558481ef5c6870b9378261b", - "dest-filename": "irregular-plurals-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6", - "sha1": "a9e12cb3ae8d876727eeef3843f8a0897b5c98d6", - "dest-filename": "is-accessor-descriptor-0.1.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6", - "sha256": "2356586375dd98e696cdcec427de57d1796130c245c09bdb448287732a6133c9", - "dest-filename": "is-accessor-descriptor-0.1.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656", - "sha256": "14f7ea5a61dbaf00843ea03e55f20e3daf0db2bf1efe8aee3bde60d080a6cba3", - "dest-filename": "is-accessor-descriptor-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656", - "sha512": "9b98671d391c56c3dfab1dc02a5cadb483dbec9f97ca41ef24fd81f5b6438e584b22812ae17a0aeb8560edba199555982ba2d463de1d60f104ecb87466464a71", - "dest-filename": "is-accessor-descriptor-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3", - "sha512": "c4f874466b7c344eb9b0dcefc94996808d6dcf798aabbe25180d262fc2d865ca08cca3b30e1e879ab626dddd7c93ad271deac2f00f4a9bc918bbcef37d21672c", - "dest-filename": "is-arguments-1.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d", - "sha1": "77c99840527aa8ecb1a8ba697b80645a7a926a9d", - "dest-filename": "is-arrayish-0.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d", - "sha256": "848d15d93e447897263a654c114c8e45c340ce7fdc1bc86e7a44a4c44f27e38c", - "dest-filename": "is-arrayish-0.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898", - "sha1": "75f16642b480f187a711c814161fd3a4a7655898", - "dest-filename": "is-binary-path-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09", - "sha512": "64c11161eb3aa43c9dcae1a276c7bb3ac1f1b5b23b595794128ce047f83baddd31522998365bd9444fcad8c8194e35b2ef6e487de94b79570433dee69ad4465f", - "dest-filename": "is-binary-path-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be", - "sha256": "3d1ad8c0a086873150d3dc69e6c6e628a3729e04e954f90ba6c0f7407272880e", - "dest-filename": "is-buffer-1.1.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be", - "sha512": "35c7402f0a579139b966fbdb93ba303944af56f04a0e028fe7f7b07d71339e64057ece194666a739e2814e34558e46b7405a0de9727ef45dd44aa7c7a93694e7", - "dest-filename": "is-buffer-1.1.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe", - "sha256": "4420b4ff39f7b135241b0426243d4edbf02d1f6dd32a4fba68c7f68f0e820e8e", - "dest-filename": "is-builtin-module-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75", - "sha512": "af9a7db3126362702b2e339ba63038c6ee44288dc2b8a1e42573214fb9306e95322050f59f93cc02ca0fbd69efb5988dcfb2e39180d166177b16523478c8a310", - "dest-filename": "is-callable-1.1.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c", - "sha512": "b3ab5fb1a41a422dc935c8811fab2156a103be11aeb744945ebdf56a0f0f77c0416d55657067d68693e610ea0ce912794c585bca9bdfe72c91c3f5575b52225a", - "dest-filename": "is-ci-1.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c", - "sha512": "61f253eeb929401d2ea5db1d1cb196aef84125f71fccd35ac180cd232417273d0856219fef93bc1013ca49dbf0dab17e2c60ac5f8159f2d72bddbd7d2dc66ae3", - "dest-filename": "is-ci-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56", - "sha1": "0b5ee648388e2c860282e793f1856fec3f301b56", - "dest-filename": "is-data-descriptor-0.1.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56", - "sha256": "43a72ac8b607310debe4f2e66deac30927d0d5c0ab12d1da091a65026f952c3f", - "dest-filename": "is-data-descriptor-0.1.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7", - "sha256": "28c25461e29798d16795eadabe11cc5ced4904f9ca1761bc0463e403759ca12c", - "dest-filename": "is-data-descriptor-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7", - "sha512": "8db457cb5166b40a028d0915988558c2ebaa0c551b68e7838e679dd6d3863ebb0c86d240e2b0fdb64800d05d6a2778111515dc1d856475e68fe74439ac4fe32d", - "dest-filename": "is-data-descriptor-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16", - "sha1": "9aa20eb6aeebbff77fbd33e74ca01b33581d3a16", - "dest-filename": "is-date-object-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca", - "sha256": "b0d542e7aa38610efea55af9bf42c812a73d93ae522b1ceaa106f831900bb06a", - "dest-filename": "is-descriptor-0.1.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca", - "sha512": "6af0d8af4481dc3c0ef73b0ca2fd20282112158a829c4e21abfe33dd375496e904cb9b7d0b4611abb1cbaec379d8d01ca9729a7a97820f49fe0746ab9d51b71e", - "dest-filename": "is-descriptor-0.1.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec", - "sha256": "fe5ee7a359c2ae4ec7c12a075d903150c23365bf55c0c471b8d34fade96c6ead", - "dest-filename": "is-descriptor-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec", - "sha512": "d9e8ace56a90195ee97a8a03c8b98d10f52ba6cf7e4975f973da4bdf1101fb87bd1e71ae0daee607b907c47c3809ba92f64d53da1387de688bf27f16b62615b6", - "dest-filename": "is-descriptor-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1", - "sha1": "a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1", - "dest-filename": "is-dotfile-1.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1", - "sha256": "91c66568d2de605796160ab63b4e856f426ce7a9ef650a34de39ae572dec678e", - "dest-filename": "is-dotfile-1.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534", - "sha1": "2238098fc221de0bcfa5d9eac4c45d638aa1c534", - "dest-filename": "is-equal-shallow-0.1.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534", - "sha256": "14c38bccdd723796b71ee84f9c05528bf0e955f4caa262f8f7ad6af570ff98e9", - "dest-filename": "is-equal-shallow-0.1.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-error/-/is-error-2.2.2.tgz#c10ade187b3c93510c5470a5567833ee25649843", - "sha512": "20e42ab6cfda1d66e28ac6390ee3c943481c6ef68b1426bb7c16bdc682dfc4166f43e648fd987dc6823b1a4f86eb837415d2b801b89bcad1e1b76b568292562e", - "dest-filename": "is-error-2.2.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89", - "sha1": "62b110e289a471418e3ec36a617d472e301dfc89", - "dest-filename": "is-extendable-0.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89", - "sha256": "eb342b3dbc0586b3b0fecbb75f1758ee70f8c340c3f54ca5e0306d06030fc989", - "dest-filename": "is-extendable-0.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4", - "sha256": "42ebd9d5d0cafcb3ce0bef5f579d0ada4233772386e4f9078169e3d232082658", - "dest-filename": "is-extendable-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4", - "sha512": "6ab9d73314f5861a0aa3d9352d976694dc897430dfcb6bf47d78c5966a24e3e8bcba5ffa5a56d581ef5b84cef83a934f40f306513a03b73f8a5dad4f9de27138", - "dest-filename": "is-extendable-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0", - "sha1": "ac468177c4943405a092fc8f29760c6ffc6206c0", - "dest-filename": "is-extglob-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0", - "sha256": "473e563bc34d59eac27dfaacaac6c154e3fb4596b2e44e04157ebef4765c599d", - "dest-filename": "is-extglob-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2", - "sha1": "a88c02535791f02ed37c76a1b9ea9773c833f8c2", - "dest-filename": "is-extglob-2.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa", - "sha256": "41316f8afebe7d7dbc13338f5496c1edeaa4ba52008a9f6afbf8bcad6fa879d3", - "dest-filename": "is-finite-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3", - "sha512": "71dc8cb6a5ff04eaaa3410622a5215932b4d1e6e3d32d3256329f5cf1cef24a5a614c946ce6fabcb90417d8c9e63d62634a6d14a8fe8ece5fdc3d6a57b4c20df", - "dest-filename": "is-finite-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb", - "sha1": "ef9e31386f031a7f0d643af82fde50c457ef00cb", - "dest-filename": "is-fullwidth-code-point-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb", - "sha256": "77ed656a130d47cc804c1d8fdae8f0fc4ad355625552fcde37703ca5f8b3686c", - "dest-filename": "is-fullwidth-code-point-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f", - "sha1": "a3b30a5c4f199183167aaab93beefae3ddfb654f", - "dest-filename": "is-fullwidth-code-point-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f", - "sha256": "4cd0d0edee6bf328b641662054d69e9faf91262beee6f158eb974220ceaba06b", - "dest-filename": "is-fullwidth-code-point-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d", - "sha512": "cf29a6e7ebbeb02b125b20fda8d69e8d5dc316f84229c94a762cd868952e1c0f3744b8dbee74ae1a775d0871afd2193e298ec130096c59e2b851e83a115e9742", - "dest-filename": "is-fullwidth-code-point-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863", - "sha1": "d096f926a3ded5600f3fdfd91198cb0888c2d863", - "dest-filename": "is-glob-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863", - "sha256": "e71c2b7aa1b2df462766ed7c7faf786be5dd29945098f17315b1b9f2026790ad", - "dest-filename": "is-glob-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a", - "sha1": "7ba5ae24217804ac70707b96922567486cc3e84a", - "dest-filename": "is-glob-3.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc", - "sha512": "e46d2d2ad05314898ea839cb076846e81a76a9c28415dba8e2d66ef4c4ff1fa350bff821872df4a39e6e7da7f127f2dd1fbf4b2ecd8a7eb9fce532cac80ec152", - "dest-filename": "is-glob-4.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80", - "sha1": "0dfd98f5a9111716dd535dda6492f67bf3d25a80", - "dest-filename": "is-installed-globally-0.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4", - "sha1": "f2fb63a65e4905b406c86072765a1a4dc793b9f4", - "dest-filename": "is-npm-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-npm/-/is-npm-3.0.0.tgz#ec9147bfb629c43f494cf67936a961edec7e8053", - "sha512": "c2c8a00ebd4a92c721a76a290b81b7c80eabf4481503a3634695b3222f5ac57a9e21a0004cf449738b8bba35dedcd77db8ef0aa03c80e0c0fa69949e5d300384", - "dest-filename": "is-npm-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f", - "sha1": "01fcbbb393463a548f2f466cce16dece49db908f", - "dest-filename": "is-number-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f", - "sha256": "22a39e192bea7e2300aa808aa1d47b2d24ff8071cbea69864b389ab5c7a7671f", - "dest-filename": "is-number-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195", - "sha1": "24fd6201a4782cf50561c810276afc7d12d71195", - "dest-filename": "is-number-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195", - "sha256": "c4ad5fbaebeb2e367b73366a71016c31d7f0554a955f0017127e749f4b5c37a7", - "dest-filename": "is-number-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff", - "sha256": "5e5bccc70a0fcc5d10e146678a50ee0b2e1cf6ef0f054b6793ca70c025c587b8", - "dest-filename": "is-number-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff", - "sha512": "ad29257002257f53a615dc80a9b9d64cb55e96c439f2ebd9eba4bf6726b08d6a88be24d60a38363f3546c3c59403e9cdb8f4ea6f8c2003e36cceb27ed3c2e581", - "dest-filename": "is-number-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b", - "sha512": "e350a27e483a7bc4f2952a5db53a5e2d532abd20445734edb47bc4443ef8d7ea6767c00dbf4d34e0c44be3740a3c394af5c1af369e8d6566540656c65d8c719e", - "dest-filename": "is-number-7.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f", - "sha1": "3e4729ac1f5fde025cd7d83a896dab9f4f67db0f", - "dest-filename": "is-obj-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982", - "sha512": "76ba831b771b733c7110946839770e8ed769d49fe5ca9d66367d316b39d1b3cfa6b8186041cae76eca68c795f97cec341e73276df0f3be710c12da83109128f3", - "dest-filename": "is-obj-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-observable/-/is-observable-2.0.0.tgz#327af1e8cdea9cd717f95911b87c5d34301721a6", - "sha512": "7e1059bf77852946f21d7675a07ba3768dad67e08d6dda5dcf39443600866540bc91ea06c547b0da36052d8714078aa8ecb0c3d37a3828ad759bf4180fb9048e", - "dest-filename": "is-observable-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-odd/-/is-odd-2.0.0.tgz#7646624671fd7ea558ccd9a2795182f2958f1b24", - "sha256": "a5efd5ac0efa1deb0a2de7ccb7881af02fa243ea34dd986b134477cfa23ffa7f", - "dest-filename": "is-odd-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb", - "sha512": "c3de366d372287c7dd24f266407173912efa3443fc2b3cef9b0f76717b1acdbf229edc0ba8f89b3cf7577f800d74a577ad832eb90606216b6fcfd262941dcd15", - "dest-filename": "is-path-cwd-2.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb", - "sha512": "acda1c5c7822a4efabbe73fa764df3236d11a4eb6b00cfe4cdb076e7c530e415abdd3a578bceb5cb38e8d7a0e7e21528c74ee2c3903278c2c75acba3923cef45", - "dest-filename": "is-path-in-cwd-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036", - "sha1": "8ef5b7de50437a3fdca6b4e865ef7aa55cb48036", - "dest-filename": "is-path-inside-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2", - "sha512": "c22ca14f37c35acbf0016e77381585e73baf68e1a567a3f063101b3d50e1a66fa0334f712901a306affcb98375d9a0ef3319c09eadddc53ca84a844d9a0e5816", - "dest-filename": "is-path-inside-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e", - "sha1": "71a50c8429dfca773c92a390a4a03b39fcd51d3e", - "dest-filename": "is-plain-obj-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287", - "sha512": "6169dfc91c312fff92b2b5987cea54b73e5bdd80fe9f27e41ef8db71a9f393cce0c8ee00483ebbb95311b7c9396cce252cc0e75dfae24613a97a6c3e35f4f578", - "dest-filename": "is-plain-obj-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677", - "sha256": "4893fd94b7cf23cc0c936fdea4ada5d174e53adba6c72e7334b8cec0804ffdc6", - "dest-filename": "is-plain-object-2.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677", - "sha512": "8793e98179168ad737f0104c61ac1360c5891c564956706ab85139ef11698c1f29245885ea067e6d4f96c88ff2a9788547999d2ec81835a3def2e6a8e94bfd3a", - "dest-filename": "is-plain-object-2.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-3.0.0.tgz#47bfc5da1b5d50d64110806c199359482e75a928", - "sha512": "b59229a1f47e3f4e64f00a1ca7b508ff65136bd95325279b097a4516847d6a26e9a240e3fee5c1b09f25b94bb4b535582a4314e9444352e39f259ee4a1ec17be", - "dest-filename": "is-plain-object-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4", - "sha1": "3334dc79774368e92f016e6fbc0a88f5cd6e6bc4", - "dest-filename": "is-posix-bracket-0.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4", - "sha256": "838c5047b9fcc7be55608f41a5ca56615ea900108f1f483f60fb1f66d2e4df07", - "dest-filename": "is-posix-bracket-0.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575", - "sha1": "207bab91638499c07b2adf240a41a87210034575", - "dest-filename": "is-primitive-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575", - "sha256": "cd2ec246afcd04c30e433ad494cd108915f1686983aff94ddbc845ec1cd7a7e8", - "dest-filename": "is-primitive-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa", - "sha1": "79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa", - "dest-filename": "is-promise-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24", - "sha1": "1d03dded53bd8db0f30c26e4f95d36fc7c87dc24", - "dest-filename": "is-redirect-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491", - "sha1": "5517489b547091b0930e095654ced25ee97e9491", - "dest-filename": "is-regex-1.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4", - "sha512": "4546d478ac2f9b75c6d9561a9a124bd71164b608ef3f32f41eaf02fbacab588b300f2dc12171aa0b187191cdf437d8ea2b7d75815535dfb2bc122e79ff354946", - "dest-filename": "is-retry-allowed-1.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44", - "sha1": "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44", - "dest-filename": "is-stream-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44", - "sha256": "9dd833c75e16693641970a1c2c0aa6dd5f5da392424e23494ed9ba20311c381f", - "dest-filename": "is-stream-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3", - "sha512": "5c2a32f96954afb775f99f06812b979a9b94142f5f3a145782524cc7e7702ca4e42f8e028dde16d59e4ff81419a6bf9c47ddda18fe12fecec5b70e8d77f92213", - "dest-filename": "is-stream-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937", - "sha512": "3b08a385a45282abe19bfd19740717359b7d95874a1697110d3e542d4b985cfa13efde1434e754fa0a53e91ce8edbe15d87525fe8a7a1aa63cf78019c2ff5f69", - "dest-filename": "is-symbol-1.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a", - "sha1": "e479c80858df0c1b11ddda6940f96011fcda4a9a", - "dest-filename": "is-typedarray-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52", - "sha512": "213bc68a6f058518987b8210e6e1d2923ee955a3c3ac24e435ddf2ab7715ee26407097474d430f3041dca923b2f7167da857a7402be2fb6c231fd6b59d7a87c3", - "dest-filename": "is-url-1.2.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72", - "sha1": "4b0da1442104d1b336340e80797e865cf39f7d72", - "dest-filename": "is-utf8-0.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72", - "sha256": "842b40f45caefe6d44673cb105ca8f852fa57fce75ee2db7923e414d43d65674", - "dest-filename": "is-utf8-0.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d", - "sha256": "7b1128270d2aafc5a03af6e5cc5336eab331dd7cfbae805f76da6867fe8731a2", - "dest-filename": "is-windows-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d", - "sha512": "7972b55089ead9b3e68f25fa7b754723330ba1b73827de22e005a7f87a6adce5392a4ad10bde8e01c4773d127fa46bba9bc4d19c11cff5d917415b13fc239520", - "dest-filename": "is-windows-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232", - "sha512": "56349e6ff9479a4a3277caf23d520abce0a7e03d64a0ca98fafab28e351f737c722ad3f87583b1338e2c66b9ea412cd276cdf1c8ead44cb4c2f4b5425602e783", - "dest-filename": "is-yarn-global-0.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11", - "sha1": "bb935d48582cba168c06834957a54a3e07124f11", - "dest-filename": "isarray-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11", - "sha256": "e23c76f14f5222e07e39d89858b61e8e33f96956de9e0df3659cbdf8db950c87", - "dest-filename": "isarray-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10", - "sha1": "e8fbf374dc556ff8947a10dcb0572d633f2cfa10", - "dest-filename": "isexe-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10", - "sha256": "47cfe872e088e28c53b736fef305324b57cc1cfc9f72a9b0f769f92731cb8359", - "dest-filename": "isexe-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89", - "sha1": "f065561096a3f1da2ef46272f815c840d87e0c89", - "dest-filename": "isobject-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89", - "sha256": "626c7518d53309aa1e0ef7cdb5f27bbc4fa80b3158074140a2157e26af0eae91", - "dest-filename": "isobject-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df", - "sha1": "4e431e92b11a9731636aa1f9c8d1ccbcfdab78df", - "dest-filename": "isobject-3.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df", - "sha256": "3cc6c92b005a644c93fbc9e3eb450b6a642bbca3443cc9dcc169152961367d37", - "dest-filename": "isobject-3.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/isobject/-/isobject-4.0.0.tgz#3f1c9155e73b192022a80819bacd0343711697b0", - "sha512": "4bfd9f179c07f12240fe49b0afa1d884afd123f3a4843f3893c9ed6a5a348898d98a482ad5716f47933c34f4f5c7917b7c1c021b7a877e7cde3ff561fd9c4250", - "dest-filename": "isobject-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz#73bfb998885299415c93d38a3e9adf784a77a9da", - "sha256": "b090a41f307c015306ae5a787aa8037e84033f4529c3b9d9e20e191509a3f9ab", - "dest-filename": "istanbul-lib-coverage-1.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz#675f0ab69503fad4b1d849f736baaca803344f49", - "sha512": "f1a5f39ee10f089bc69cc4917ede2e743443b5bd55de991090c308e4b23ee87b90cf9a10e09d94167d47f36ada037a89b7238b924c15a880814248e71ad9f998", - "dest-filename": "istanbul-lib-coverage-2.0.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz#8538d970372cb3716d53e55523dd54b557a8d89b", - "sha256": "00c34b56cdef4c818bd85877112b8ba9cc76005cf16d9754362840b2e72be8ba", - "dest-filename": "istanbul-lib-hook-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz#c95695f383d4f8f60df1f04252a9550e15b5b133", - "sha512": "beb473b54f55451143c82f9a9257cba1e5f235d4df81ad84237b9d0c69f8719e9fa525e91cb57d5fa087bdfa0c08fb60820f33bc30e60b86fdc5fbb4cfafe594", - "dest-filename": "istanbul-lib-hook-2.0.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.1.tgz#250b30b3531e5d3251299fdd64b0b2c9db6b558e", - "sha256": "7ff0eb95be410eb50f6b635fc449292b701484c881c45993ded83cb3b104a1ad", - "dest-filename": "istanbul-lib-instrument-1.9.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz#a5f63d91f0bbc0c3e479ef4c5de027335ec6d630", - "sha512": "e679c8378be8e714191dd5e7a3f6035c9d06f88ddd026e178337d25533cb4298ffcc0576755e89bb2d3269fd74ff3ac9389787a0dddfada15ef9746ad9b15564", - "dest-filename": "istanbul-lib-instrument-3.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.2.tgz#922be27c13b9511b979bd1587359f69798c1d425", - "sha256": "5a5ee16d08a92cb521bec4809b8a898458dad8b28be618da7b2ae915a8ef8ac0", - "dest-filename": "istanbul-lib-report-1.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz#5a8113cd746d43c4889eba36ab10e7d50c9b4f33", - "sha512": "7c705e1b9ef71088a18406e5c20c6b49e9e9d036f2ead24c151fc7be57ab06cac24c3e5b914ba836d9f7815876f59092f36e1c18604f9fb4a0edc364fb6c54b1", - "dest-filename": "istanbul-lib-report-2.0.8.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.2.tgz#750578602435f28a0c04ee6d7d9e0f2960e62c1c", - "sha256": "42abe74b85accdf6b01cb3af22f716720d5a763c0d24481a7b0d14b7c1738bc2", - "dest-filename": "istanbul-lib-source-maps-1.2.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz#284997c48211752ec486253da97e3879defba8c8", - "sha512": "478ecacccb43247e97e3f616f574f1fa3acb9d99ec716e15a4d37ed4f5624984de8cb54f5afee8a2ff83b9ff184123f255152fb9e42acf54dcb02ea6a286535f", - "dest-filename": "istanbul-lib-source-maps-3.0.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.1.3.tgz#3b9e1e8defb6d18b1d425da8e8b32c5a163f2d10", - "sha256": "692fe75f20714a812b8b9487769c7675ee7241816f54787a1b567cd9668cca23", - "dest-filename": "istanbul-reports-1.1.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.6.tgz#7b4f2660d82b29303a8fe6091f8ca4bf058da1af", - "sha512": "48a8b8ae73322c129ed09cb6b94771dbc87ca06ee98763cfb903ef200877d5df828be952884bb80be877a013ee27dfa63ca84ec96d0cf2063853934cd562de5c", - "dest-filename": "istanbul-reports-2.2.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/js-string-escape/-/js-string-escape-1.0.1.tgz#e2625badbc0d67c7533e9edc1068c587ae4137ef", - "sha1": "e2625badbc0d67c7533e9edc1068c587ae4137ef", - "dest-filename": "js-string-escape-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b", - "sha1": "9866df395102130e38f7f996bceb65443209c25b", - "dest-filename": "js-tokens-3.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b", - "sha256": "85ce7a76734264e093bcb1dbbe6d4d4130ee0a7fa562e7608693ee8c3c197d19", - "dest-filename": "js-tokens-3.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499", - "sha512": "45d2547e5704ddc5332a232a420b02bb4e853eef5474824ed1b7986cf84737893a6a9809b627dca02b53f5b7313a9601b690f690233a49bce0e026aeb16fcf29", - "dest-filename": "js-tokens-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc", - "sha256": "291c8ae9f474f106414f00a231d4bcd8b8b4f7582d72ab25fdc8792aa3d1e683", - "dest-filename": "js-yaml-3.10.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847", - "sha512": "61f6dc3bb8d70ddca3d031b16154a549e40d1db0fb5cf5afad559e554ba3ad0128673589211ac23e8ca4ea42fa2008c01b622894c2b84f484d51ed07394b3927", - "dest-filename": "js-yaml-3.13.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482", - "sha512": "ff821b21e1dc0fd54c1c5a8347f810ec475974b8a63af5b60dd731163772c99f4db1b4be71cad7a95583b5a6ff95197902552a9a9071f0484f69647e3ad635ec", - "dest-filename": "js-yaml-3.14.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d", - "sha1": "e7dee66e35d6fc16f710fe91d5cf69f70f08911d", - "dest-filename": "jsesc-0.5.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d", - "sha256": "3e9a10467c80fe53f193fab92ae0ea5efd58decaa9a97f540fba18fd242f6674", - "dest-filename": "jsesc-0.5.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b", - "sha1": "46c3fec8c1892b12b0833db9bc7622176dbab34b", - "dest-filename": "jsesc-1.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b", - "sha256": "104abc400e260c6f53c22af36e2349e772fcd09cf71735a53ab5e2532f7825a1", - "dest-filename": "jsesc-1.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4", - "sha512": "398bbb5c4ce39024370b93ecdd0219b107cda6aa09c99640f7dc1df5a59dd39342b42e6958e91284ada690be875d047afc2cb695b35d3e5641a6e4075c4eb780", - "dest-filename": "jsesc-2.5.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898", - "sha1": "5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898", - "dest-filename": "json-buffer-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9", - "sha512": "9abab264a7d7e4484bee1bea715e961b5c988e78deb980f30e185c00052babc3e8f3934140124ff990d44fbe6a650f7c22452806a76413192e90e53b4ecdb0af", - "dest-filename": "json-parse-better-errors-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660", - "sha512": "c5b6c21f9742614e53f0b704861ba1ec727cf075ee5b7aac237634cce64529f6441dca5688753f271ce4eb6f41aec69bfe63221d0b62f7030ffbce3944f7b756", - "dest-filename": "json-schema-traverse-0.4.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651", - "sha1": "9db7b59496ad3f3cfef30a75142d2d930ad72651", - "dest-filename": "json-stable-stringify-without-jsonify-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821", - "sha1": "1eade7acc012034ad84e2396767ead9fa5495821", - "dest-filename": "json5-0.5.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/json5/-/json5-2.1.1.tgz#81b6cb04e9ba496f1c7005d07b4368a2638f90b6", - "sha512": "97edc75c3d06108de1b86ab59e3baab7360af0e609c9732438bb50e77a635a1f3db6f592da1ea5fb5ccc9185aa95be7bf92890a1d299caf30415bd97f8aac585", - "dest-filename": "json5-2.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb", - "sha256": "5fb99597f70008b05f401d4d0d522a9c18e019be5e780fa17f7bd13a3c0be0e8", - "dest-filename": "jsonfile-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9", - "sha512": "f72909ff8e9237ff4a3ccfec89c87343b3af5f218360a19368394a306080960d942bc291cb88dbd1df2c15cfb44edd186274e1abc5f645980283be113f181c54", - "dest-filename": "keyv-3.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64", - "sha1": "31ea21a734bab9bbb0f32466d893aea51e4a3c64", - "dest-filename": "kind-of-3.2.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64", - "sha256": "78a42e34fb8ba2b9459207e6003bd3cb082333591b488f2071c5d93086b65d47", - "dest-filename": "kind-of-3.2.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57", - "sha1": "20813df3d712928b207378691a45066fae72dd57", - "dest-filename": "kind-of-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57", - "sha256": "d5c72f5a2a7a520b74e67779387d75ce6d7ed16cf0c9931303f4e4038079dc29", - "dest-filename": "kind-of-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d", - "sha256": "4d60c4c0840f198934811b6fbe8cecebb3474f3b7c5a99cb95e23dfe83097772", - "dest-filename": "kind-of-5.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d", - "sha512": "346104ae71fa176bd4b970e1f8e95b70a5bbff039c7dd447699ed55ada82ced7c7ae2ffef982a63f9d4e7567863eea8239b6ba924d8e4dee5dd365664c1f343f", - "dest-filename": "kind-of-5.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051", - "sha256": "b844572ea82bfa9603d0dae736510edd14a151e9e8c87ab3b640177cb90a7e90", - "dest-filename": "kind-of-6.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051", - "sha512": "b3990b39c9c7d17a833be16fb9a2d7f030e3675f0218593b572807e3442828f510856e1edabbccd2bc14ab4b7c2100cec1849e2cad3553dd0e8f305399ed90a8", - "dest-filename": "kind-of-6.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd", - "sha512": "75c4b5ba5fbdb66783f794fec76f3f7a12e077d98435adcbb2f0d3b739b7bf20443bb44fa6dbc00feb78e165576948d305172ba45785942f160abb94478e7a87", - "dest-filename": "kind-of-6.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15", - "sha1": "a205383fea322b33b5ae3b18abee0dc2f356ee15", - "dest-filename": "latest-version-3.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face", - "sha512": "c1e4feaf491391141d09d60236d90cc165d04cc12cc0aac50649b872440e315861aa120c235513da1323fb58a28088604999b98139ab45704da06520693635c4", - "dest-filename": "latest-version-5.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e", - "sha256": "95c934b514416958916f168f9e83717eaf4b8138625f27fd5b46ad8d3be19cbf", - "dest-filename": "lazy-cache-1.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835", - "sha256": "4c49d600aaa40a822928c13fae5575bb2debc38a3e8f7877d290cc9ff2d24c43", - "dest-filename": "lcid-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee", - "sha1": "3b09924edf9f083c0490fdd4c0bc4421e04764ee", - "dest-filename": "levn-0.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0", - "sha256": "edf8d9c1a69850f6efd099390ce2c3b50edb9ac99b997e957bbb2f947d145d7e", - "dest-filename": "load-json-file-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8", - "sha1": "7947e42149af80d696cbf797bcaabcfe1fe29ca8", - "dest-filename": "load-json-file-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b", - "sha1": "2f5f45ab91e33216234fd53adab668eb4ec0993b", - "dest-filename": "load-json-file-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/load-json-file/-/load-json-file-5.3.0.tgz#4d3c1e01fa1c03ea78a60ac7af932c9ce53403f3", - "sha512": "70918fe3425cfd55d4b29f3f3ab9f22b24d9d72eaffdda619b76e2a12f91aca5e32b6041eb01d477a269b591050c68066a1313f889e764ee62d448bd9a90bc07", - "dest-filename": "load-json-file-5.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e", - "sha1": "2b568b265eec944c6d9c0de9c3dbbbca0354cd8e", - "dest-filename": "locate-path-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e", - "sha256": "b1ab0fff582a3a7098905544c47221ee52088be97e9cec4f8fd44c2ea7fa72c2", - "dest-filename": "locate-path-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e", - "sha512": "ec03bbe3cc169c884da80b9ab72d995879101d148d7cf548b0f21fc043963b6d8099aa15ad66af94e70c4799f34cb358be9dfa5f6db4fe669a46cade7351bae4", - "dest-filename": "locate-path-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0", - "sha512": "b7b870f6923e5afbb03495f0939cd51e9ca122ace0daa4e592524e7f4995c4649b7b7169d9589e65c76e3588da2c3a32ea9f6e1a94041961bced6a4c2a536af2", - "dest-filename": "locate-path-5.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286", - "sha512": "88f64ae9e6236f146edee078fd667712c10830914ca80a28a65dd1fb3baad148dc026fcc3ba282c1e0e03df3f77a54f3b6828fdcab67547c539f63470520d553", - "dest-filename": "locate-path-6.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef", - "sha1": "e23f3f9c4f8fbdde872529c1071857a086e5ccef", - "dest-filename": "lodash.clonedeep-4.5.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2", - "sha1": "fb030917f86a3134e5bc9bec0d69e0013ddfedb2", - "dest-filename": "lodash.flattendeep-4.4.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/lodash.islength/-/lodash.islength-4.0.1.tgz#4e9868d452575d750affd358c979543dc20ed577", - "sha1": "4e9868d452575d750affd358c979543dc20ed577", - "dest-filename": "lodash.islength-4.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a", - "sha512": "d0aa63a97455beb6320ac5f5b3047f5d32b4bdae9542440ce8c368ecfa96efb0728c086801103c11facfd4de3e2a52a3f184b46540ad453fd852e872603ba321", - "dest-filename": "lodash.merge-4.6.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548", - "sha512": "f3139c447bc28e7a1c752e5ca705d05d5ce69a1e5ee7eb1a136406a1e4266ca9914ba277550a693ce22dd0c9e613ee31959a2e9b2d063c6d03d0c54841b340d4", - "dest-filename": "lodash-4.17.15.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52", - "sha512": "3e585d15c8a594e20d7de57b362ea81754c011acb2641a19f1b72c8531ea39825896bab344ae616a0a5a824cb9a381df0b3cddd534645cf305aba70a93dac698", - "dest-filename": "lodash-4.17.20.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511", - "sha256": "ab20a32e64c8c7f631635460f1874e7dd622abd6c1cb7daef2957daa18bc1afe", - "dest-filename": "lodash-4.17.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a", - "sha512": "55e20016c97221eac424b5c7ce279da366dab0a6cc2ad4f0def7e7e48cc6d174e38405442723479cbda9eef73ec010d2750b94a4dc37336bbac5bf50b0063912", - "dest-filename": "log-symbols-2.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920", - "sha512": "14df090732f1e82cde32b074b60ea9aa5194d700ab5d6f995c61f8f3591fb01a9eaf4853a132221dd8c7e0cabcc4951bbc04ee8ca0af6911065a91948a89eb68", - "dest-filename": "log-symbols-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097", - "sha256": "a615736b976e8e5cf340fb5b07c461ad8f8c40aafafdbdfa95c5788535f91b33", - "dest-filename": "longest-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848", - "sha256": "fb526ac195ab33e34c3a5fc5a4f68ae865de3310209191c2f5ab56d9631ce088", - "dest-filename": "loose-envify-1.3.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf", - "sha512": "972bb13c6aff59f86b95e9b608bfd472751cd7372a280226043cee918ed8e45ff242235d928ebe7d12debe5c351e03324b0edfeb5d54218e34f04b71452a0add", - "dest-filename": "loose-envify-1.4.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f", - "sha1": "5b46f80147edee578870f086d04821cf998e551f", - "dest-filename": "loud-rejection-1.6.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-2.2.0.tgz#4255eb6e9c74045b0edc021fa7397ab655a8517c", - "sha512": "4b415ac8c5e4bbcd2da1ae6c67a468e02facf84b450c2b3224d1bf03314c7d7dc0c43e528b8759b20ce6fe42a76cec479790aff230659e8f3edd7608876a4d8d", - "dest-filename": "loud-rejection-2.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f", - "sha512": "1b62e3eb5b570e754514e8bc55976cf92a108ed402ddd82890a7431b69939b5b71e26e743541c1399481c10407cb2d15d760342531b889c7d9407fb13f287c54", - "dest-filename": "lowercase-keys-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479", - "sha512": "b6a357ad2efca0c384ef734cc4ae0430b42c428c167fc8caa281fd83bc4f6af453ef4e91e9b91027a0d8d937bb42e91a66cba5c5adf4c10edb934a66e1788798", - "dest-filename": "lowercase-keys-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55", - "sha256": "de7068efeec994c1bbd013276acccd5cfb35d18acf6577abd27944977e2e9f62", - "dest-filename": "lru-cache-4.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd", - "sha512": "b166656c43f63ac1cd917acc97919893f8ca93bd0c06783a514e1823fa860d86e07fa61b3f812f9aa2126d70a826244ab3ed5b4a9147560431bc9d7b176962e6", - "dest-filename": "lru-cache-4.1.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c", - "sha512": "db0df547b489b6278926742d19ced154bd92b4cdaf19855fa943af503c47e9b0ba6894f13f14c5d069c8802caeeed8e872489458061045bc5aeef2a7df8b39b1", - "dest-filename": "make-dir-1.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5", - "sha512": "2d2f57f9d73c28bc5709bf1d9e2efd7cb208500e55c99a328d2302c1396e697034a36edc08ad1b857929830fac4d75693f2fe548ee7b8a5462c6a934bc39ad44", - "dest-filename": "make-dir-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/make-dir/-/make-dir-3.0.0.tgz#1b5f39f6b9270ed33f9f054c5c0f84304989f801", - "sha512": "82b3490e16fc6f5266d6a7aa5b947f3badf0528e145e8dafd8732273a613f62fc706517ddd2f2390c807ef2ba0bd8f400434a11f8559327f08f94f3e7c235e83", - "dest-filename": "make-dir-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/make-error/-/make-error-1.3.2.tgz#8762ffad2444dd8ff1f7c819629fa28e24fea1c4", - "sha256": "5c8bc3f44827e4dcb657229e8aa1c3aca3491ddf1f19b226ebdcfa5fe0cd07e0", - "dest-filename": "make-error-1.3.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c", - "sha256": "4e5f34e88c9f2e5bb59a9a250709b9fa7adcb3c43cbe90951cdbc5676a768e55", - "dest-filename": "makeerror-1.0.11.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf", - "sha1": "c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf", - "dest-filename": "map-cache-0.2.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf", - "sha256": "41c29927cd11bedb0b997af2117d65842f22287db9c4da9c13f4848e7c004f3d", - "dest-filename": "map-cache-0.2.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d", - "sha1": "d933ceb9205d82bdcf4886f6742bdc2b4dea146d", - "dest-filename": "map-obj-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9", - "sha1": "a65cd29087a92598b8791257a523e021222ac1f9", - "dest-filename": "map-obj-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f", - "sha1": "ecdca8f13144e660f1b5bd41f12f3479d98dfb8f", - "dest-filename": "map-visit-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f", - "sha256": "f16e5cdde4bf6b419826fdd7657b5ff599b424b866251db4187dea2a41f6d0a5", - "dest-filename": "map-visit-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/matcher/-/matcher-2.1.0.tgz#64e1041c15b993e23b786f93320a7474bf833c28", - "sha512": "a3e9d9afebed26d80f3649727942a4907e363ac2bc5807dd81a244d853717232cf83ee506de1284fabd18fc5eafe2bf5f09950f5c98ab04bb46fde22c567f561", - "dest-filename": "matcher-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c", - "sha512": "ad4c63cacaa27ff059407db285de406aaeef5cc4b1f4d744b10732034eee13322fc6023bcc8af7de01ac87e454d3f5e3990a425bb46c5687f5be592f41508ae4", - "dest-filename": "math-random-1.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/md5-hex/-/md5-hex-1.3.0.tgz#d2c4afe983c4370662179b8cad145219135046c4", - "sha256": "007a399a5ad2148651c04538ff2cdddf8aa7b808e1977da7f5c29c6db0c20a13", - "dest-filename": "md5-hex-1.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/md5-hex/-/md5-hex-2.0.0.tgz#d0588e9f1c74954492ecd24ac0ac6ce997d92e33", - "sha1": "d0588e9f1c74954492ecd24ac0ac6ce997d92e33", - "dest-filename": "md5-hex-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/md5-hex/-/md5-hex-3.0.1.tgz#be3741b510591434b2784d79e556eefc2c9a8e5c", - "sha512": "054891b53b55dfd2c82708a75818ea56c53dc61767cfbfe2f3cf55f39f48045a6ea86023e8bb8ebc7bf95cb6e067647ba6d26825a11cc64bfcf3f876e53ec28b", - "dest-filename": "md5-hex-3.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/md5-o-matic/-/md5-o-matic-0.1.1.tgz#822bccd65e117c514fab176b25945d54100a03c3", - "sha1": "822bccd65e117c514fab176b25945d54100a03c3", - "dest-filename": "md5-o-matic-0.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/md5-o-matic/-/md5-o-matic-0.1.1.tgz#822bccd65e117c514fab176b25945d54100a03c3", - "sha256": "af13f2f634ddc288ea9d05bdbda59474cd2503464404b8d860a763b3b2c6f1ff", - "dest-filename": "md5-o-matic-0.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76", - "sha256": "24f11e05dee731f86fe35d75013d6bf1b2901c31e9e636e33a58183badea3792", - "dest-filename": "mem-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/meow/-/meow-5.0.0.tgz#dfc73d63a9afc714a5e371760eb5c88b91078aa4", - "sha512": "09b4ea614d7b00168b79f3bcbc2535e77659969aca6160e58dc9dd28a0c215c610213cd6097640564e1030564f82fceb9d4437b88b67204fcba143b0ad3d7922", - "dest-filename": "meow-5.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646", - "sha256": "13e9a21251cc07d266d34a4c856e3547808b234f687db6a8b078dd23507fd9d3", - "dest-filename": "merge-source-map-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646", - "sha512": "424729ecfdb2824b6930f87698241969fde384de83dd9fea5591d2756bd0fb611fe4781100f04ee7b03befe10d9b408fc76fb509efcc60a8b7ca6a9d7eeaa26f", - "dest-filename": "merge-source-map-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da", - "sha256": "b73b84d9ad6d9142d646e65c7f2e7256067bb964a438ccffa3428033b80020fa", - "dest-filename": "merge-1.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81", - "sha512": "da3e0301d9413a4892648b1a5e4e264c4dec452d36c811c0b5fcb5dbbc515776d0505a979231c21cb5ba49cbfb0f03516c858d1c7f33a67cfdccc68a5c876f63", - "dest-filename": "merge2-1.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565", - "sha1": "86677c97d1720b363431d04d0d15293bd38c1565", - "dest-filename": "micromatch-2.3.11.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565", - "sha256": "8af65fec82ef6400964362eb43ce88d4957c4f6aa34881363f01ea6361e0e4bf", - "dest-filename": "micromatch-2.3.11.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23", - "sha256": "e59e75293e290db328efbf5bf1b4b445bffbfda19546974b442b6ad1910f95c8", - "dest-filename": "micromatch-3.1.10.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23", - "sha512": "3168a4825f67f4cdf0f9ba6c6371def0bfb0f5e17ddf7f31465f0800ee6f8838b3c12cf3885132533a36c6bae5a01eb80036d37fcb80f2f46aaadb434ce99c72", - "dest-filename": "micromatch-3.1.10.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259", - "sha512": "cbb1691d26cc50ca323db6144b33ba3da67a17246740ea47b8ac1ba351be2a7724f795d553840088a7461278f9c30a12ecf94e82d857ff4f6ee62149f9a61fe5", - "dest-filename": "micromatch-4.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022", - "sha256": "b1931fd7a65dd3298684adfa6e213c9907ad01c3a81278f1fa3bd06b4cc66b3a", - "dest-filename": "mimic-fn-1.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022", - "sha512": "8dff38bb1cf08ae88854a88e2e97d893b378e934b2f2e6d3a279a7798f6fae91cd027a74401b76071595f5d3b7fe3f81a1501bf9ae46e980cf5b73391ce74c59", - "dest-filename": "mimic-fn-1.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b", - "sha512": "3aa6ce939a0441e019f165d6c9d96ef47263cfd59574422f6a63027179aea946234e49c7fecaac5af850def830285451d47a63bcd04a437ee76c9818cc6a8672", - "dest-filename": "mimic-fn-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b", - "sha512": "8f911cb67907eda99f57fab91e09a86a5d60d901c5251ada3ad9b1d09a48aa4c6106123f9494a5d67329438e6155aaf03444cea161229a7759e102b4447c6ec5", - "dest-filename": "mimic-response-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083", - "sha256": "426a24d79bb6f0d3bb133e62cec69021836d254b39d931c104ddd7c464adea71", - "dest-filename": "minimatch-3.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083", - "sha512": "c891d5404872a8f2d44e0b7d07cdcf5eee96debc7832fbc7bd252f4e8a20a70a060ce510fb20eb4741d1a2dfb23827423bbbb8857de959fb7a91604172a87450", - "dest-filename": "minimatch-3.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/minimist-options/-/minimist-options-3.0.2.tgz#fba4c8191339e13ecf4d61beb03f070103f3d954", - "sha512": "17206b4ff774778fae89945bab39cf5eac372296591b7825df0296897efce05c9c50a57006dd2e2c116442bb44e2d64eae0a3bf27669da39cacf72fae53e4b75", - "dest-filename": "minimist-options-3.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf", - "sha1": "de3f98543dbf96082be48ad1a0c7cda836301dcf", - "dest-filename": "minimist-0.0.10.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf", - "sha256": "73e03ee5fba64f3ee864fa90aacd4fc799e427a0555e27b41dd1988a35ffcb76", - "dest-filename": "minimist-0.0.10.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d", - "sha1": "857fcabfc3397d2625b8228262e86aa7a011b05d", - "dest-filename": "minimist-0.0.8.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d", - "sha256": "7953afa208b921faf59c1fa5693764ca2be03e261ef91c88717ef20c8c474a33", - "dest-filename": "minimist-0.0.8.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284", - "sha1": "a35008b20f41383eec1fb914f4cd5df79a264284", - "dest-filename": "minimist-1.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284", - "sha256": "ec0d0bdf71837612eea9fa61e5689e14856807946d499ce6ebf062ba09a5f270", - "dest-filename": "minimist-1.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602", - "sha512": "14cf6735462b4410042d9413df179943b7e630e060ea758d989293720b0979a2ecb4ffd43835691acaf93a15e185783a7feaad27cba267e3d4c640d67202172f", - "dest-filename": "minimist-1.2.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848", - "sha512": "1a2d56e24d39f60c916f2554650e2612a2e6d1821488661fbf1845e92225937ba2d5657131319f19d4364889e1dcf0eb45356f3ca8142e4a49b53e111f5d3e54", - "dest-filename": "minipass-2.3.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614", - "sha512": "efee284d43962a0ec0b8bdef9681167a45d8dbf0f6d1c7afcecacd4f69065a6fb7f49f61193081bfc548e4f9b995767fa37fe6751e1ff2b7e500f86741bf263c", - "dest-filename": "minizlib-1.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe", - "sha256": "2b88616a4768d2153ba099744ece83cd3ecf6d9f2c9214495ea274203fa860b9", - "dest-filename": "mixin-deep-1.3.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566", - "sha512": "591a039fffe65c1889d47e34aea6b7bc7d2da1e3f04ac19be398889d6953c926be52ee24ded6144b16b6bf52aa0222edbe5ad2cda131a92d60b64f7a03dcef10", - "dest-filename": "mixin-deep-1.3.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903", - "sha1": "30057438eac6cf7f8c4767f38648d6697d75c903", - "dest-filename": "mkdirp-0.5.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903", - "sha256": "77b52870e8dedc68e1e7afcdadba34d3da6debe4f3aae36453ba151f1638bf24", - "dest-filename": "mkdirp-0.5.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def", - "sha512": "34a98094449fea3306ca6d7ef91d116bbc2f855fb0156eb715a48e14fc116a1bde6b480c51c19485578083fd010b4c22bfd8a1e4d60f0755a7d54108d7f2fec5", - "dest-filename": "mkdirp-0.5.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/mocha-qunit-ui/-/mocha-qunit-ui-0.1.3.tgz#e3e1ff1dac33222b10cef681efd7f82664141ea9", - "sha256": "b12e1a0d2e6564240ff2a0036ad08b78c6f99833abc2af36042c0ba1efee402f", - "dest-filename": "mocha-qunit-ui-0.1.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/mocha/-/mocha-4.1.0.tgz#7d86cfbcf35cb829e2754c32e17355ec05338794", - "sha256": "ba2611f47bb676b1bfa3b309871d80ab90f8306379495f2ac3db8305d039bf3d", - "dest-filename": "mocha-4.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/mocha/-/mocha-5.2.0.tgz#6d8ae508f59167f940f2b5b3c4a612ae50c90ae6", - "sha512": "d8852028385cdc9ed4ba0f85c4c5eea88c98cc7ee02635c408a7bfc38dc81a04074d28f7227262fb2000ed3db82fd6d03112a25041f1117dfb1b926955418b71", - "dest-filename": "mocha-5.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/mocha/-/mocha-8.2.1.tgz#f2fa68817ed0e53343d989df65ccd358bc3a4b39", - "sha512": "72e2c155fc857c5a9b351d2e50a6c319728693e50315ee9a478a2cefc5c8acc429665fe7bfb2581dcbcfe4c14801bdfbe1bdb3157b1d8041b09b332d3f45e0f3", - "dest-filename": "mocha-8.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8", - "sha1": "5608aeadfc00be6c2901df5f9861788de0d597c8", - "dest-filename": "ms-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8", - "sha256": "362152ab8864181fc3359a3c440eec58ce3e18f773b0dde4d88a84fe13d73ecb", - "dest-filename": "ms-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a", - "sha512": "b60a7e765e5c1a4dbcbad624b41b2b16a03b1ca82b8603ec83a67f11f856238825d47c2af01fc6998ff4a1767a9c5f210d57ac4bf1699d8683fe439685842fca", - "dest-filename": "ms-2.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009", - "sha512": "b0690fc7e56332d980e8c5f6ee80381411442c50996784b85ea7863970afebcb53fa36f7be4fd1c9a2963f43d32b25ad98b48cd1bf9a7544c4bdbb353c4687db", - "dest-filename": "ms-2.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d", - "sha512": "9e76d658e9285b252c4e32ab8600f475ccf6da67644a7a58a9b123226da787086ec654a4a72c09981a3c87466a25d929ef799bf744acb0790de2bb1168101f00", - "dest-filename": "mute-stream-0.0.8.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c", - "sha512": "20d3858f7ec2ee4dc07da353b57f1186c4f0eea472ede2c44f5e1c44e8bdfb91c055b6c7b885941c46ae06fe6a4f802fdad59ab224d8d49c3aa6e50da9125742", - "dest-filename": "nan-2.14.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19", - "sha512": "336b9fcc888834a0ae0df052014af5bd643ebee55c03d92ac7c24952c6d08bac9fd6e191c9bec77e975f52be6a2d77f707fb7c74fbdc8e128c9a57e73f8ec4cd", - "dest-filename": "nan-2.14.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.12.tgz#6f7736c62e8d39421601e4a0c77623a97ea69654", - "sha512": "d6ab2d8fdcf9fb1e3dd637e20b835e964f9ff1705a77b2cddb43e6c9620d24431149fdf07008c05b2b30d6a680f33e8d48a7b6b23ab5851483a411f9a5a09be8", - "dest-filename": "nanoid-3.1.12.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119", - "sha512": "7e9a1ed93d116c7c014c150e7ed01f04f683122d3ab9f6946a2d2613a627d6469c7374a74c4adf6ff87e5fde155f323ae2b2851d82265d2bddc061829b03aa08", - "dest-filename": "nanomatch-1.2.13.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.9.tgz#879f7150cb2dab7a471259066c104eee6e0fa7c2", - "sha256": "ede59d84b6299458218d314cad2d679c52b412eae1e8876dd5ecc22af3b84ba7", - "dest-filename": "nanomatch-1.2.9.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7", - "sha1": "4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7", - "dest-filename": "natural-compare-1.4.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c", - "sha512": "e079f0cebde68b92fdee131878d97cc115bf3a7872e2750a47f9557a627c80979dc7153204b9bd924ac30a8949be849fc22d2308d843fb109d3ad8860d089166", - "dest-filename": "needle-2.4.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c", - "sha512": "8b26a6f1f06e094a5678a3c6a5a34c7ad12870cb77eb8aa40ac7cbf49ba18d75fa7519e0b9154e7e4d8665a0e93e370e2a289708f20d642d4673343b893ab767", - "dest-filename": "neo-async-2.6.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz#0fbdcf3e13fe4994781280524f8b96b0cdff9c61", - "sha512": "00ef35bec20ed64d6c33866b77a1eeeeb7a09893753528808dad7481ce1b5f7174c1dfbdad099cb8741a1d5402608102f221579c4fa66af876dc63adef0060ba", - "dest-filename": "nested-error-stacks-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366", - "sha512": "d67878e5d79e6f9a25358ede5fcd8190f3bb492c51e524982623d3ad3745515630025f0228c03937d3e34d89078918e2b15731710d475dd2e1c76ab1c49ccb35", - "dest-filename": "nice-try-1.0.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd", - "sha512": "f1d1b81f9ba37ef162a83995bbd7d0e5b387502d7924c8cc63f66e9afdbaa0ebef5498ccebb285f24a0258869b290d462486bdaf698c66c701abf4db74e72634", - "dest-filename": "node-fetch-2.6.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b", - "sha256": "2502628937c895945e2ceea48ff453c4812b35c2a270a4efb93ff77a8c0f2257", - "dest-filename": "node-int64-0.4.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149", - "sha512": "e0a821c15f2f1f993e836ca54feb0b4e3cb9c2650e6fdbcf86733c347bd17fd7479a75bf0a776b157cb66913da3d24fa76e81749d1d77de687426efb3c8cffd4", - "dest-filename": "node-pre-gyp-0.12.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d", - "sha1": "d0d4685afd5415193c8c7505602d0d17cd64474d", - "dest-filename": "nopt-4.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f", - "sha256": "95d71abd1850913e09421b69fbe2786938299be5b616f275f8eaa8259a52465a", - "dest-filename": "normalize-package-data-2.4.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8", - "sha512": "ff908c3774f44785d38f80dc19a7b1a3eae8652752156ff400e39344eae3c73086d70ad65c4b066d129ebe39482fe643138b19949af9103e185b4caa9a42be78", - "dest-filename": "normalize-package-data-2.5.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9", - "sha1": "1ab28b556e198363a8c1a6f7e6fa20137fe6aed9", - "dest-filename": "normalize-path-2.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9", - "sha256": "920110b8616e904bbfaaa5546a7f47ee69f3ed3e5393f52746f3618fb19702b5", - "dest-filename": "normalize-path-2.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65", - "sha512": "e9e66ce4bb375ad0a2b075a9f52d86532f1daa4a468b80554b3dc66aa884e9ecee6f4e75d844b3b57530501e82e8829b4246363e76ff983e166288c24707302c", - "dest-filename": "normalize-path-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129", - "sha512": "dace3bcb353175ec5fd4e872462e049bcde2424d1a3efc1375db45cf8867492c3d74212c2c419fe92c083bcb2cff5f52f6205be6c25a3ae4ef4c60de648d3405", - "dest-filename": "normalize-url-4.5.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd", - "sha512": "f3f24269fb47c1b77ffe4eb2dab116a7a935c3155fa45cc1eadd69f36e7e7146fb626d9741f870202e4ac21aefcd9449bbe2ed0c4e7ce7355a4b7dbe086b5fd2", - "dest-filename": "npm-bundled-1.0.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.1.tgz#19064cdf988da80ea3cee45533879d90192bbfbc", - "sha512": "f9371d3bb1c927ca5e8a2621bcfc6c103845dcf245194191705b06bdedefc6fc5d7293b667867bae4a2c44cd245a3e8b7db2bf3f482edddce4e515357dfbc573", - "dest-filename": "npm-packlist-1.4.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f", - "sha1": "35a9232dfa35d7067b4cb2ddf2357b1871536c5f", - "dest-filename": "npm-run-path-2.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f", - "sha256": "656d56148ba099836db1bc2bd397fd8a385bd63708f9bca79458217dc770e1f7", - "dest-filename": "npm-run-path-2.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b", - "sha512": "dae52a6b3b8a95369223f742f00ce2714724efe22b11a3a737f7b48dddd7b6dd4a706a70c77d2fe7498bee83f2aff87d6cbdc4e1a65c715c29c0ffb95bd56392", - "dest-filename": "npmlog-4.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d", - "sha1": "097b602b53422a522c1afb8790318336941a011d", - "dest-filename": "number-is-nan-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d", - "sha256": "896ec5dd2269a0f219b0e46dd24b5532cdfd1648f1e5156078854b912d619f3c", - "dest-filename": "number-is-nan-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/nyc/-/nyc-11.4.1.tgz#13fdf7e7ef22d027c61d174758f6978a68f4f5e5", - "sha256": "371428ed99f32475f291847996fe3c19c6a98e3f3aa801f37f03b840ea72063f", - "dest-filename": "nyc-11.4.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/nyc/-/nyc-14.1.1.tgz#151d64a6a9f9f5908a1b73233931e4a0a3075eeb", - "sha512": "388d2f9ba646527a0666ffed2dd6767ac495cc3c140bcf1236cfba26848e315c40fa028c07c4e4ee307081e98bc783b8d25861bd9095c350be3982ce04e3d75b", - "dest-filename": "nyc-14.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863", - "sha1": "2109adc7965887cfc05cbbd442cac8bfbb360863", - "dest-filename": "object-assign-4.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863", - "sha256": "782d726a263ba7b26cced612af97b80035516df4b0cd788524e7b2cebc4e29ed", - "dest-filename": "object-assign-4.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c", - "sha1": "7e7d858b781bd7c991a41ba975ed3812754e998c", - "dest-filename": "object-copy-0.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c", - "sha256": "1cb8c20150d427b2fec17bd68d09632f950a60991e5e3e25fc6d822f06bea9ac", - "dest-filename": "object-copy-0.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67", - "sha512": "6bba441dd875c4a200813c9250680b331ff1c0366c90dd5477a7a061837711d456e1930f3440d44c5fa1c32d8b502f8197e4b22d700d9f0cff8f287faaeb4a53", - "dest-filename": "object-inspect-1.7.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6", - "sha1": "0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6", - "dest-filename": "object-is-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e", - "sha512": "36e00449439432b9485ce7c72b30fa6e93eeded62ddf1be335d44843e15e4f494d6f82bc591ef409a0f186e360b92d971be1a39323303b3b0de5992d2267e12c", - "dest-filename": "object-keys-1.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb", - "sha1": "f79c4493af0c5377b59fe39d395e41042dd045bb", - "dest-filename": "object-visit-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb", - "sha256": "545feba3c3f1b32996f96431e92179645da5d88205555cc56c80602f0fd41717", - "dest-filename": "object-visit-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da", - "sha512": "7b11c97aaea404a8f9f26a86c9343d0c5beb642fde47a3b0c73a0cf58468181aab5d8a27685c8688532e73d559ad77fb0daaeb784c0ca6eac6ddd77e08dc96e7", - "dest-filename": "object.assign-4.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa", - "sha1": "1a9c744829f39dbb858c76ca3579ae2a54ebd1fa", - "dest-filename": "object.omit-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa", - "sha256": "9aff227cc24ca40f1c928197ab0b010caa791eb39be2cebeb60bd7279d84d2ff", - "dest-filename": "object.omit-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747", - "sha1": "87a10ac4c1694bd2e1cbf53591a66141fb5dd747", - "dest-filename": "object.pick-1.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747", - "sha256": "8000226024d4532fbe482d4b9631e9562ecbcc496d7869d52eebc7b9d3f3ee0b", - "dest-filename": "object.pick-1.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz#bf6810ef5da3e5325790eaaa2be213ea84624da9", - "sha512": "f267f49ca2c0a055fa5653557611a3df549562968d16d527ba83975b2144b2db1646053cdfb00af8960cd22031c244b31916f09fc71b16681bcb18f58f855b5e", - "dest-filename": "object.values-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/observable-to-promise/-/observable-to-promise-1.0.0.tgz#37e136f16a15385ac063411ada0e1202bfff58f4", - "sha512": "72a9c652b36c13abdd5434cf017f7f59e573c32ff3dfbbddc6ea5d41753cbe04d74451fbd8a09989981af1a71adae9513c879e9bc5b7bd6f6b4070707c897658", - "dest-filename": "observable-to-promise-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1", - "sha1": "583b1aa775961d4b113ac17d9c50baef9dd76bd1", - "dest-filename": "once-1.4.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1", - "sha256": "cf51460ba370c698f68b976e514d113497339ba018b6003e8e8eb569c6fccfcf", - "dest-filename": "once-1.4.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4", - "sha1": "067428230fd67443b2794b22bba528b6867962d4", - "dest-filename": "onetime-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5", - "sha512": "e4d71290f1e1c1354521037e4d4a97a12e7e7651251d7769016bbd2341cfdb460eb488be699d02b7cda376520b0f18cb1005b0be6faa8f59ba684b6c0d59a6e9", - "dest-filename": "onetime-5.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/oop/-/oop-0.0.3.tgz#70fa405a5650891a194fdc82ca68dad6dabf4401", - "sha256": "329884659eca508971d922946c07fcb904aed4b4e68c52aaa4fbea5b2db645d7", - "dest-filename": "oop-0.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686", - "sha1": "da3ea74686fa21a19a111c326e90eb15a0196686", - "dest-filename": "optimist-0.6.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686", - "sha256": "56425fd38177f312912848ff242a684e0c69a03a4c370f49269e1411e031a1a5", - "dest-filename": "optimist-0.6.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495", - "sha512": "f885bda4009d9375d69a64d71bc9b7ba919426cb795d11b3c4c4635f302e2755e720536f7e18e322e6240efcac9cf43bab3a95ccbb7bf010abba7b6a4615906c", - "dest-filename": "optionator-0.8.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/ora/-/ora-3.4.0.tgz#bf0752491059a3ef3ed4c85097531de9fdbcd318", - "sha512": "78dc07b9d35b3b57e89413f726c675f6ff5acd75ad4198c809daf74344c33c869e050de65cbae1e78c0cf9eaf4fa14a9f9d58a7fe67c28ce7c098cc4c8863162", - "dest-filename": "ora-3.4.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3", - "sha1": "ffbc4988336e0e833de0c168c7ef152121aa7fb3", - "dest-filename": "os-homedir-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3", - "sha256": "0ee885c8afec352b70b7b65f7ab8e54a912f8ba4c309ae1c106aa4b67cb24475", - "dest-filename": "os-homedir-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2", - "sha256": "a1dd0708b2b7bc893de98a70cbf7668b5e98639de2a47b2f004c9b91476c5674", - "dest-filename": "os-locale-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274", - "sha1": "bbe67406c79aa85c5cfec766fe5734555dfa1274", - "dest-filename": "os-tmpdir-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410", - "sha512": "d0259c08409d315736470dd4e70f598ea5fa81aeae6e4d710d52b1b4140f2bbc22b3fd05dabf53ea4e3274662179c97b614071055c612f9a22b0fb0dc403deda", - "dest-filename": "osenv-0.1.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76", - "sha1": "d0a33eefe61a205facb90092e826598d5245ce76", - "dest-filename": "output-file-sync-1.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc", - "sha512": "b3bdd7c4e678ce9b7579d658673be1a856babaf41cd6fc146b42b405db4866040c0098fd21b79b1fe26480a65cf61f81d393ca1cb3939786a31b506636b55997", - "dest-filename": "p-cancelable-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae", - "sha1": "3fbcfb15b899a44123b34b6dcc18b724336a2cae", - "dest-filename": "p-finally-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae", - "sha256": "effd84e09e1330542a84a243f1f4da21a700d459b83761eaca16070eb1fb8841", - "dest-filename": "p-finally-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/p-limit/-/p-limit-1.2.0.tgz#0e92b6bedcb59f022c13d0f1949dc82d15909f1c", - "sha256": "893b57bd69a090311445b16d732e17bb6180ca1c8dea49e72041820b5267d78b", - "dest-filename": "p-limit-1.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8", - "sha512": "bef717b0b009f43af9ad038f93bb68650649029065d8ae09e9d00d4ac12e87a408e3525872c4bfaa14c66bd12b2145202b758d428258bf2971be3aa68aa100f5", - "dest-filename": "p-limit-1.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.1.tgz#aa07a788cc3151c939b5131f63570f0dd2009537", - "sha512": "f394e4fbdd140955af6c36af08b28f38b0bdbef63c3b0117fd1b4a17eff53800c93159457c41ce88c4cf572c60ee693f74a6be8a97479b4394913bc2a4c4eec2", - "dest-filename": "p-limit-2.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1", - "sha512": "ffff3c985592271f25c42cf07400014c92f6332581d76f9e218ecc0cbd92a8b98091e294f6ac51bd6b92c938e6dc5526a4110cb857dc90022a11a546503c5beb", - "dest-filename": "p-limit-2.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b", - "sha512": "4d839a9ccdf01b0346b193767154d83c0af0e39e319d78f9aa6585d5b12801ce3e714fe897b19587ba1d7af8e9d4534776e1dcdca64c70576ec54e5773ab8945", - "dest-filename": "p-limit-3.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43", - "sha1": "20a0103b222a70c8fd39cc2e580680f3dde5ec43", - "dest-filename": "p-locate-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43", - "sha256": "07c74b4f9a9800bf5b4eb14775b34a460ca83c25b6d1558e9dabf33a8f2afb46", - "dest-filename": "p-locate-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4", - "sha512": "c7ed76c3f4e8fb81857e0261044a620dc2e8cd12467a063e122effcf4b522e4326c4664dc9b54c49f5a3f5a267f19e4573b74150d24e39580fbf61fb230ba549", - "dest-filename": "p-locate-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07", - "sha512": "47bf5967fd30031286bb7a18325cfc8f2fe46e1b0dad2ed2299ecfc441c1809e7e1769ad156d9f2b670eb4187570762442c6f3155ec8f84a1129ee98b74a0aec", - "dest-filename": "p-locate-4.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834", - "sha512": "2da363b51594058fbecc1e6713f37071aa0cca548f93e4be647341d53cdd6cc24c9f2e9dca7a401aded7fed97f418ab74c8784ea7c47a696e8d8b1b29ab1b93f", - "dest-filename": "p-locate-5.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175", - "sha512": "cb76fc2a977c380378e388717c16c57e3d4563f463b5377cb73630854a8d617c747d7c76897e2668fe10afaaa120a6d05c8d36c132c075ae1f6146c36a04d417", - "dest-filename": "p-map-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3", - "sha1": "cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3", - "dest-filename": "p-try-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3", - "sha256": "99fed4a8c1a77b52c3ca3fed495182ec87b98f82125161ee56bfe359c40254de", - "dest-filename": "p-try-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6", - "sha512": "4789cf0154c053407d0f7e7f1a4dee25fffb5d86d0732a2148a76f03121148d821165e1eef5855a069c1350cfd716697c4ed88d742930bede331dbefa0ac3a75", - "dest-filename": "p-try-2.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/package-hash/-/package-hash-3.0.0.tgz#50183f2d36c9e3e528ea0a8605dff57ce976f88e", - "sha512": "94eb66ba430356fb642fce2b24723b7694d8abed2b962f0ddb0967a94701b835827d585151f3a69d1f52b281c530ba400af115eb4757eeb774ac56980d923e14", - "dest-filename": "package-hash-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/package-hash/-/package-hash-4.0.0.tgz#3537f654665ec3cc38827387fc904c163c54f506", - "sha512": "c217643c8a284aefdb01282067de81595bd94d130e1719f2506e4f9d34862a8244da077999b54d991d8d8f6d10173c58620017a68a82f80897ce5f9431187bcd", - "dest-filename": "package-hash-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed", - "sha1": "8869a0401253661c4c4ca3da6c2121ed555f5eed", - "dest-filename": "package-json-4.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0", - "sha512": "9376dd9b69f6e6d932c5c8d22b3079c7c91f57194c760b1b3ebd069197301ec2e96dae9c063a82b752a570284a12fc4721c4c1d4554cbb0a228d9dbac5ec7931", - "dest-filename": "package-json-6.5.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2", - "sha512": "190d84591a5057cfe8f80c3c62ab5f6593df3515996246e2744f64e6ba65fe10b7bed1c705f1a6d887e2eaa595f9ca031a4ad42990311372e8b7991cb11961fa", - "dest-filename": "parent-module-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c", - "sha1": "b2c376cfb11f35513badd173ef0bb6e3a388391c", - "dest-filename": "parse-glob-3.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c", - "sha256": "b0764545e030134c4bd7322c0c43b817416c427e98b92a698a84b6f91d5746de", - "dest-filename": "parse-glob-3.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9", - "sha1": "f480f40434ef80741f8469099f8dea18f55a4dc9", - "dest-filename": "parse-json-2.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9", - "sha256": "8bb1291c36fff54df555487976888dad81666a05291e6b6ddc5d2dc74d9f6ed5", - "dest-filename": "parse-json-2.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0", - "sha1": "be35f5425be1f7f6c747184f98a788cb99477ee0", - "dest-filename": "parse-json-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/parse-ms/-/parse-ms-2.1.0.tgz#348565a753d4391fa524029956b172cb7753097d", - "sha512": "907b7b9332e84bd54165f52c88a8efe379abf7579af94d391322a412daa9eef35b1f199a56e12a37b5f17845671ab32d60e0311ab0c49528bde8aec480ed7308", - "dest-filename": "parse-ms-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6", - "sha256": "dcd6323a1511c012304cf77a7c7a86b3ef0d85ad4c3530d33b7e1735d5d289f3", - "dest-filename": "parse-passwd-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14", - "sha1": "b363e55e8006ca6fe21784d2db22bd15d7917f14", - "dest-filename": "pascalcase-0.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14", - "sha256": "556c9cd92f0374592aa0ba702e6c3c402bdb0b0145ffde060a8343a7b3f4a241", - "dest-filename": "pascalcase-0.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0", - "sha1": "cc33d24d525e099a5388c0336c6e32b9160609e0", - "dest-filename": "path-dirname-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b", - "sha256": "fa338f850c34beea601a2680566bbcf095611f003934b47f0e71deb2c06aa889", - "dest-filename": "path-exists-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515", - "sha1": "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515", - "dest-filename": "path-exists-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515", - "sha256": "d7f78752dc75e2f8a3a232b064fd099330334997413ded8296c7ad5d8d06322d", - "dest-filename": "path-exists-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3", - "sha512": "6a4f50cb943b8d86f65b071ecb9169be0d8aa0073f64884b48b392066466ca03ec1b091556dd1f65ad2aaed333fa6ead2530077d943c167981e0c1b82d6cbbff", - "dest-filename": "path-exists-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f", - "sha1": "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f", - "dest-filename": "path-is-absolute-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f", - "sha256": "6e6d709f1a56942514e4e2c2709b30c7b1ffa46fbed70e714904a3d63b01f75c", - "dest-filename": "path-is-absolute-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53", - "sha1": "365417dede44430d1c11af61027facf074bdfc53", - "dest-filename": "path-is-inside-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40", - "sha1": "411cadb574c5a140d3a4b1910d40d80cc9f40b40", - "dest-filename": "path-key-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40", - "sha256": "ee71986a430792b5bf7e0c398355215b534d3eaec9cde73879db69fd58b14ef0", - "dest-filename": "path-key-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1", - "sha256": "7bcf82ceab94ec610b0242df2e33f132c8d0595ae7122bf8e72fc1fd23cadc03", - "dest-filename": "path-parse-1.0.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c", - "sha512": "19298e4f611b1eb20d05ff5247b08310bc2527c004364dd09fb3a290ae2715802edceb5edbe258355be4a401109b7fd32cd109143ff16498f3cb183728158ecf", - "dest-filename": "path-parse-1.0.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441", - "sha256": "c6910e17a214f4edb0f4b04f6f9c74300d4bf2d587756eafdade29d33d9fb13b", - "dest-filename": "path-type-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73", - "sha1": "f012ccb8415b7096fc2daa1054c3d72389594c73", - "dest-filename": "path-type-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f", - "sha512": "4f6654b1d6451e0037bb87b93df3db8ddec70c3a713e741be633744ab0ec8cd4ae5571c9aadc139d6a86d01d6366b82627fee58f51265480725add60c46916be", - "dest-filename": "path-type-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b", - "sha512": "80329bf1a64c0de0ffb595acf4febeab427d33091d97ac4c57c4e39c63f7a89549d3a6dd32091b0652d4f0875f3ac22c173d815b5acd553dd7b8d125f333c0bf", - "dest-filename": "path-type-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0", - "sha1": "b942e6d4bde653005ef6b71361def8727d0645e0", - "dest-filename": "pathval-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0", - "sha256": "a950d68b409ee5daf91923ce180bab7dc1c93210ee29adbce1026be1ca04d541", - "dest-filename": "pathval-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/picomatch/-/picomatch-2.1.1.tgz#ecdfbea7704adb5fe6fb47f9866c4c0e15e905c5", - "sha512": "398332aa42b32bb6e558effe5d960feb0f211f42c3be406f76f2ae92d8beee4a98142884024fa02370d69ebc9aa5cd036aed39ba0193cb47e843a9aa9f800760", - "dest-filename": "picomatch-2.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad", - "sha512": "ab433ff5e647ce6af402e957c8fc0d7d98edc19fd105995b3772b7084ad5ae4e744f6012608ec1c9ed04bde90563720fd4db760c7bb4adef95d991c8a4c92e5a", - "dest-filename": "picomatch-2.2.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c", - "sha1": "ed141a6ac043a849ea588498e7dca8b15330e90c", - "dest-filename": "pify-2.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c", - "sha256": "74a52c931eea5d226f6a04deb6e138f1a9896abcc64fc1c597f83d19a7b20530", - "dest-filename": "pify-2.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176", - "sha1": "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176", - "dest-filename": "pify-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231", - "sha512": "b81f3490115bfed7ddebc6d595e1bd4f9186b063e326b2c05294793d922b8419c86914d0463a9d252b082a438fe8e00815b8fb18eadcb9d739a4d8d9fa0795da", - "dest-filename": "pify-4.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa", - "sha1": "2135d6dfa7a358c069ac9b178776288228450ffa", - "dest-filename": "pinkie-promise-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa", - "sha256": "92b6c810617351cb03c62b39fa6241003e5da043074561448b9f08ff4f93ad14", - "dest-filename": "pinkie-promise-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870", - "sha1": "72556b80cfa0d48a974e80e77248e80ed4f7f870", - "dest-filename": "pinkie-2.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870", - "sha256": "79a858c25e63ade9eb3e65b2aa2a491cc9e1d2fe671c0168f9291b3ba7da3d83", - "dest-filename": "pinkie-2.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-3.1.0.tgz#d9f9c75ea1bae0e77938cde045b276dac7cc69ae", - "sha512": "9b43936d1ff954f34fa8ed6987a16a6e3ec7bfa414ee047fb505b8d19aab2f5ae380253ce56e82d5b267d0122db89aa747df0f5b3c3b67c847782843d56ae075", - "dest-filename": "pkg-conf-3.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4", - "sha256": "862c533c020b507154c4714e615e4809ca8dbe8f1854eded17e6592c295555b3", - "dest-filename": "pkg-dir-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b", - "sha1": "f6d5d1109e19d63edf428e0bd57e12777615334b", - "dest-filename": "pkg-dir-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3", - "sha512": "fc4e7b018928790db9aa4c4c8f93c1395805f0a8aefe1edc612df4679f91ed66a208205f2eae7c648fdd49e68429bf565495799ffd37430acddc8796205965bf", - "dest-filename": "pkg-dir-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3", - "sha512": "1d10f36da2a30be00e5955f1014ff1e7808e19e22ff5e6fee82903490a0d4ede17c96a0826fb8fb178b3c6efc5af6dc489e91bb59c2687521c206fe5fdad7419", - "dest-filename": "pkg-dir-4.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/plur/-/plur-2.1.2.tgz#7482452c1a0f508e3e344eaec312c91c29dc655a", - "sha1": "7482452c1a0f508e3e344eaec312c91c29dc655a", - "dest-filename": "plur-2.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/plur/-/plur-3.1.1.tgz#60267967866a8d811504fe58f2faaba237546a5b", - "sha512": "b75031f0a52f577145208f25b5cccf9f6b49763a9b775b08ceeeade092fb9d0dc4c9e2ff953ae3e4f58a6f4ea2739ffa5d80ebeb9ad0e2ecd010637bd3fe97e7", - "dest-filename": "plur-3.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab", - "sha1": "01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab", - "dest-filename": "posix-character-classes-0.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab", - "sha256": "99e5e48d09840a2dc918ae128cd29a037a8017a0144a5b432343aa78563c8021", - "dest-filename": "posix-character-classes-0.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54", - "sha1": "21932a549f5e52ffd9a827f570e04be62a97da54", - "dest-filename": "prelude-ls-1.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc", - "sha1": "d4f4562b0ce3696e41ac52d0e002e57a635dc6dc", - "dest-filename": "prepend-http-1.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897", - "sha1": "e92434bfa5ea8c19f41cdfd401d741a3c819d897", - "dest-filename": "prepend-http-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b", - "sha1": "815ed1f6ebc65926f865b310c0713bcb3315ce4b", - "dest-filename": "preserve-0.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b", - "sha256": "294f5aa92d40d6a7049bafd6e29b81fbd8aa3a5b9b3e26a4816b75155a309382", - "dest-filename": "preserve-0.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-5.1.0.tgz#b906bdd1ec9e9799995c372e2b1c34f073f95384", - "sha512": "e2068ad6c903da0c2c7027e4b3061046675d51bd86259b730c64631d669d547b4afc320a16e7dad7632f112ebfc6ed6d55b5187a26b96e62dcc09b5925052a9f", - "dest-filename": "pretty-ms-5.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff", - "sha256": "22ba10fa69b6ff5f28c3697594ac19b2540d9ae15b686869cfc533c3c9f23c1b", - "dest-filename": "private-0.1.8.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa", - "sha512": "32d102d53a8dd045399dea61689e2b02d4e11ed0bce9d34df6a0ae121b6c86fa55064016e593bb04048df5112717d7a85c6711b9bfa916e284a4e1c4f876c433", - "dest-filename": "process-nextick-args-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2", - "sha512": "de8b943a9421b60adb39ad7b27bfaec4e4e92136166863fbfc0868477f80fbfd5ef6c92bcde9468bf757cc4632bdbc6e6c417a5a7db2a6c7132a22891459f56a", - "dest-filename": "process-nextick-args-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8", - "sha512": "ecf887b4b965e4b767288330d74d08fbcc495d1e605b6430598913ea226f6b46d78ad64a6bf5ccad26dd9a0debd979da89dcfd42e99dd153da32b66517d57db0", - "dest-filename": "progress-2.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3", - "sha1": "f052a28da70e618917ef0a8ac34c1ae5a68286b3", - "dest-filename": "pseudomap-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3", - "sha256": "07e9563487c9b0161412ec9d1dd2c3ae13c7b125040bbac4e0a99a38790b5b8e", - "dest-filename": "pseudomap-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64", - "sha512": "2f0672fa9dd216cd4fcad77f8d872de30a6fe3d1e2602a9df5195ce5955d93457ef18cefea34790659374d198f2f57edebd4f13f420c64627e58f154d81161c3", - "dest-filename": "pump-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d", - "sha256": "1bf719e58dfed9efbde40cde25e5c9a00868b09b8e8eb7d97484ea4ca0a0c4bf", - "dest-filename": "punycode-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec", - "sha512": "5d1b118dd7fe8f99a5fb2ffa18a1cf65bac5ffca766206b424fb5da93218d977b9a2124f0fdb1a0c924b3efa7df8d481a6b56f7af7576726e78f672ff0e11dd0", - "dest-filename": "punycode-2.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8", - "sha1": "4360b17c61136ad38078397ff11416e186dcfbb8", - "dest-filename": "quick-lru-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c", - "sha256": "ee54048289bc252c353a4b5d22ada4abc7d6791f50b6858c9a2cd48727d9bca1", - "dest-filename": "randomatic-1.1.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed", - "sha512": "4ee0c4e4ac59d09e3ad51563ac964225cf89fb30a44dbd4c6c7f40414abaf2c32138c732f632dc6f706b64a829f6af4d725b5d838415a96ac7d365b610515563", - "dest-filename": "randomatic-3.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a", - "sha512": "bd897788e5fee022945aec468bd5248627ba7eca97a92f4513665a89ce2d3450f637641069738c15bb8a2b84260c70b424ee81d59a78d49d0ba53d2847af1a99", - "dest-filename": "randombytes-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed", - "sha512": "cb76c682a2a3dd005dc4b6cb9289a5a2192fb00f207408944254812670617e7f813f18386dceb677c4dc056d79c1abc37e07b10a071c72485c66fcb0c9060f3b", - "dest-filename": "rc-1.2.8.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02", - "sha256": "e7058ddcb7a13ab36cf55795d6a31629e5be82f206a50d35a10b91d17c7e4726", - "dest-filename": "read-pkg-up-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be", - "sha1": "6b72a8048984e0c41e79510fd5e9fa99b3b549be", - "dest-filename": "read-pkg-up-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07", - "sha1": "3ed496685dba0f8fe118d0691dc51f4a1ff96f07", - "dest-filename": "read-pkg-up-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-4.0.0.tgz#1b221c6088ba7799601c808f91161c66e58f8978", - "sha512": "e9eb50487ee7246b0ad116c6ff64de0f36456bcb218d0d6e9be4b0410e5cc0acb476149774e9dc1216f508fa6f406e21ec5c8e57a101e98955d3226f65034090", - "dest-filename": "read-pkg-up-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28", - "sha256": "8ec36eb1bbfbbeafd98799818804e94528bde09db50a87a9aac0f0eaaf56eff2", - "dest-filename": "read-pkg-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8", - "sha1": "8ef1c0623c6a6db0dc6713c4bfac46332b2368f8", - "dest-filename": "read-pkg-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389", - "sha1": "9cbc686978fee65d16c00e2b19c237fcf6e38389", - "dest-filename": "read-pkg-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf", - "sha512": "b50b4a03d588021045dfe54b02c7b232a65e0635b4007268c4eb58a92519349c5ab84ae62db566d855b5cbe27f600f5d52b002dfd2137a39595a1548c1ac242b", - "dest-filename": "readable-stream-2.3.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57", - "sha512": "11b868f0ae2321b1c0c67bb18bba38d8ead9805fd94cd72c663ea744ac949a484b16af021c8b69fdfcba85066e6663ff9f7c99f550546e9e33cff997f219983f", - "dest-filename": "readable-stream-2.3.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525", - "sha512": "d4953ff2af95805672c70ac9f925483ac87e2b2c161a976cdcd4ea8a488aa43319592726018c8a220aa43be011bcd5897d7797475cf1cfb687178bb80b21fabd", - "dest-filename": "readdirp-2.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/readdirp/-/readdirp-3.2.0.tgz#c30c33352b12c96dfb4b895421a49fd5a9593839", - "sha512": "72b93842ede9997c20c5d4a01a1800fde5e22403d0897e0630e6593179ea2b11d7ed36a82fede0415a3f59eb808a882bd3b0e99df8c83295d76be3c022fc0f19", - "dest-filename": "readdirp-3.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e", - "sha512": "70c86eedcffcadd8641d75ac63ea2c0617d2cb4262930a472bfe7e8a6a3e2e979ab1317ca2e12b1eb9589304f4fbe9e38b2b83bdcece158e53dee92f67caa615", - "dest-filename": "readdirp-3.5.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa", - "sha1": "c1b2007b42d57eb1389079b3c8333639d5e1ccaa", - "dest-filename": "redent-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e", - "sha512": "2c6673920b4b63bf467972e6f03a740552dd4255880b3067273fe2a56520a39f6a05a67e047b6ae753f6ab5b95665a6932e5004f7ed20e4dfda946e34d607b6c", - "dest-filename": "regenerate-unicode-properties-8.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f", - "sha256": "e6657be589fb26101c71759e6c2fdcdb88c09f776d40fda9e189abcd624a6557", - "dest-filename": "regenerate-1.3.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11", - "sha512": "d46ea32550d6aedd2b2bdf64063bc4b7389934220202ebc83e44a2505210c553f4e91095a6addd983a36a22e8006961a0d869346bebb04484bf2bd708046592a", - "dest-filename": "regenerate-1.4.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658", - "sha1": "336c3efc1220adcedda2c9fab67b5a7955a33658", - "dest-filename": "regenerator-runtime-0.10.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9", - "sha256": "cdd8985b84b3b6b08fe5dcb39b9506d70ddddffda9f9d703dd33534c60bc373b", - "dest-filename": "regenerator-runtime-0.11.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9", - "sha512": "320b86f79a228f47c2dd05775117f8576483606261267246aaf20881d10278e0c24fdf304960c027de124ae5696105284dc19420be8be32341ee3d431451d206", - "dest-filename": "regenerator-runtime-0.11.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd", - "sha256": "b6fb60950898c5d1b5f491a71cb7f1397f24e0a557f865f197b996191fb45dde", - "dest-filename": "regenerator-transform-0.10.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd", - "sha256": "66d49d35e7e084cba2f0841cc794cdfe63870b17c79e43d119124c39c6791480", - "dest-filename": "regex-cache-0.4.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd", - "sha512": "9d5219c2d0a3902f5882f5a4a4ce79079ac184161166101a25b81c1585d7b079db67d51923d9e7556619a41942aaff61a36799af23e75ab646b0e74fc1559759", - "dest-filename": "regex-cache-0.4.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c", - "sha256": "fa4448bb964e8f97905f8e557d529884f08dea1a5e61e88d7589819967bef276", - "dest-filename": "regex-not-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c", - "sha512": "27a4838d4803c508f936eb273ad745c43c0dffe1d6ca447c1842f072d27b99daa1732cb5c44738491147517bf14e9ebad586952808df44b67d702a92ead9f7d8", - "dest-filename": "regex-not-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz#6b30724e306a27833eeb171b66ac8890ba37e41c", - "sha512": "ced6b0e0cd55aa033097d1e53e93ae898808b5c1e5ba75b41ded9f13a78d7d3e84fc217616d622f687ce61ee262a7b6cb5893417287fac3441752dc09f18e5ac", - "dest-filename": "regexp.prototype.flags-1.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f", - "sha512": "96fd0cebe4e40d59e2037683d448340d5a5f53f6e8a12bbb11ebf74c33bf99928705f563802193578b786eea691121180ed900ad814ec53256bfa4b90be89a37", - "dest-filename": "regexpp-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/regexpp/-/regexpp-3.0.0.tgz#dd63982ee3300e67b41c1956f850aa680d9d330e", - "sha512": "67e84dafb440556c739cb3ee03b0c887c50d5f58fd083ad4431b24c3d22b044d43c6e7b69725d3fac86a10878b523ae893120ff02332d56923806deb4ec779fe", - "dest-filename": "regexpp-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240", - "sha256": "ea28b108b285a8c4e8e9495c835d2b7a38d08baed79ca0ac31adf1e14fbc40b2", - "dest-filename": "regexpu-core-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6", - "sha512": "62555a79f97c3f90671583884d33730ef6a7d6e94b3a25c9cc2359c5db93228b0dd7b6fcee1ddbbc6f721cca07691ba8f3c1f8990d3a028763e55b581861a24e", - "dest-filename": "regexpu-core-4.6.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz#d7446815433f5d5ed6431cd5dca21048f66b397e", - "sha512": "e0b33a170f1e0507703187044b8c939e7d93a886ac6d7bb00f1dee9be411b3b4b9e5a30a081281c6f3d79764625231f0b892d3c987f14a999f4808d0a5cb8ff8", - "dest-filename": "registry-auth-token-3.4.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.0.0.tgz#30e55961eec77379da551ea5c4cf43cbf03522be", - "sha512": "9694241f177d50bead6f793f6870157e756d9fe05cb3da1be489ee14b2c40ea4aa7aaf8096307c1995bdc58d31ec5fb163011c8ca7b4ee7ca8c73118cfacaf93", - "dest-filename": "registry-auth-token-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942", - "sha1": "3d4ef870f73dde1d77f0cf9a381432444e174942", - "dest-filename": "registry-url-3.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009", - "sha512": "f1a7185d74c8d00910bfa4403a3137bce6885d9913f70a382ce15b04a6101049e730d0692aa754ac8e92e0d4f428f228fd656f279b44fd7e4b17f4d051fd1e93", - "dest-filename": "registry-url-5.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7", - "sha256": "c3ef01d4c06a3de88c027238d42df152b461d6c4bb40776c20a6f2b33a3f2938", - "dest-filename": "regjsgen-0.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c", - "sha512": "e6ac731998c3b3dc38b734f74cf84226a59d09cdd12d8c32f49d8d0749e6e4bcfe4b6ef796f59ca63693187b13d5d73a1e17eae35b9210ec3cc019b1aca3aeca", - "dest-filename": "regjsgen-0.5.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c", - "sha256": "aaeb398fd9fcb47773f837a91cd0f8173296ede0c00dd7a93f1521fb32ee3944", - "dest-filename": "regjsparser-0.1.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c", - "sha512": "450ed8ca890b89006899426e506f22195be480e2f1c3264cf24e9ddeae52017a60e2be5364966280a16f0ba3e90fea90f7c6c20c2e587a53de03712e703a0d79", - "dest-filename": "regjsparser-0.6.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/release-zalgo/-/release-zalgo-1.0.0.tgz#09700b7e5074329739330e535c5a90fb67851730", - "sha1": "09700b7e5074329739330e535c5a90fb67851730", - "dest-filename": "release-zalgo-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef", - "sha1": "c24bce2a283adad5bc3f58e0d48249b92379d8ef", - "dest-filename": "remove-trailing-separator-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef", - "sha256": "4e1340d198749dbcf0986dde8b657e0470f395d2c9be1da90a7c169dbeae6321", - "dest-filename": "remove-trailing-separator-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a", - "sha256": "aa0e5c12fccb4fa26936d541f86b3780505781c03f98807eb2aef0629bf67b06", - "dest-filename": "repeat-element-1.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce", - "sha512": "6a11aad199d5e66e57b592cc6febcfefa91c00ce6790baa4d25a6a02ea2348a1a042d9f87918b86591a6da8968db32851feb0cb166aa3825b576a0273abbbbda", - "dest-filename": "repeat-element-1.1.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637", - "sha1": "8dcae470e1c88abc2d600fff4a776286da75e637", - "dest-filename": "repeat-string-1.6.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637", - "sha256": "0be1cb94d6cb3c063946f502d39eb59ffe837a846951dc9d2ff1a49b8598b4fe", - "dest-filename": "repeat-string-1.6.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda", - "sha1": "5214c53a926d3552707527fbab415dbc08d06dda", - "dest-filename": "repeating-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda", - "sha256": "2b686da5dedfd4fc6a1368690df313213e801a5d8b320b786082bf6facb28097", - "dest-filename": "repeating-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42", - "sha1": "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42", - "dest-filename": "require-directory-2.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42", - "sha256": "703bee0844360383fe4a8792d4a5a562647426a053e7597a1d272ac554f386c8", - "dest-filename": "require-directory-2.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1", - "sha256": "63a72dd24ef77958d01bcf2797a2e5fe57e1c5d11579fbd1bdc8b784c89999c3", - "dest-filename": "require-main-filename-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b", - "sha512": "34a37990c0f294aba577160b4947eb6e8e53bb387885dfb613c34f3d7d36999b67d55b911104e861efd9765272f89dee0a97da886174e5eec1f16d225db4079a", - "dest-filename": "require-main-filename-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/require-precompiled/-/require-precompiled-0.1.0.tgz#5a1b52eb70ebed43eb982e974c85ab59571e56fa", - "sha1": "5a1b52eb70ebed43eb982e974c85ab59571e56fa", - "dest-filename": "require-precompiled-0.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d", - "sha512": "3ab65a5f631bfab242a47ffa0a94aab7dc4556937efb1d355e737689ef60e8fe7fdf17a52c0917595003a5dcf52070ff2857c45f213a574534d4e43750edab12", - "dest-filename": "resolve-cwd-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57", - "sha256": "5f8f9c45d91ed1ed57eff2b5156656aaf60ce71462c922d4ddc70bde3030c09a", - "dest-filename": "resolve-from-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6", - "sha512": "a5bfcc6265ecb40932b11171f2988d235b4614d408140def904dc6ab812e035745ea01e9ffebe066ab021896a9bf2f0ddd0fb8a3b170beab8f25c9d9ed1632e2", - "dest-filename": "resolve-from-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69", - "sha512": "a9883d28fdb8743e6a91af49e3b774695932d0df9be1f4d4f3d2cdf620e78c1e706a4b220b8f6bbcc0743eb509406a13987e745cf8aa3af0230df6a28c6c5867", - "dest-filename": "resolve-from-5.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a", - "sha1": "2c637fe77c893afd2a663fe21aa9080068e2052a", - "dest-filename": "resolve-url-0.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a", - "sha256": "88e9cb578b6373125c416cacb9f42c4896fe3e072e4b94ba6948cba70e551824", - "dest-filename": "resolve-url-0.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b", - "sha256": "605726c06837d76d2da4946e25ce90c2467672f6f52293199f570dab74e0fe0b", - "dest-filename": "resolve-1.1.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/resolve/-/resolve-1.12.2.tgz#08b12496d9aa8659c75f534a8f05f0d892fff594", - "sha512": "70055323654b1d662c18e8ab7de615550ed90de8ed43d7e9e1885872458312415fa9b563693d7588cf24eb14807c614c33e803a598cc9c5b2c3eef307be9aa17", - "dest-filename": "resolve-1.12.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/resolve/-/resolve-1.5.0.tgz#1f09acce796c9a762579f31b2c1cc4c3cddf9f36", - "sha256": "186264769f8467d88f71b9de447ce8a9db516c384258e07746884dd6d1509108", - "dest-filename": "resolve-1.5.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/resolve/-/resolve-1.6.0.tgz#0fbd21278b27b4004481c395349e7aba60a9ff5c", - "sha256": "69f40a3d7faa8f3583c6496ed63fdc3c13a8d1cc26cc2dcf15508220d8303cae", - "dest-filename": "resolve-1.6.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7", - "sha1": "918720ef3b631c5642be068f15ade5a46f4ba1e7", - "dest-filename": "responselike-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf", - "sha1": "9f7ee287f82fd326d4fd162923d62129eee0dfaf", - "dest-filename": "restore-cursor-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e", - "sha512": "97eb1279fcc7a63e6a8a6845484e5af27b9f65800cdec05254c00fb589260bee041f66a7486684317483d22cd141bbbd9dfc90f72e49ad59a9ec4f2866b523bc", - "dest-filename": "restore-cursor-3.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc", - "sha256": "4a7462b50b3184e14d3518cc0438624ad20aa21bafeb30568aede82f07ef69fe", - "dest-filename": "ret-0.1.15.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc", - "sha512": "4d3958a5af8e2febcc30d1b6e314a5406109dc1fd1cc47d494b72dedbe46ff2b5abfec0fae9942a55305bb0cd76e479c26b6fa218a358856f44bdbf7efbe789a", - "dest-filename": "ret-0.1.15.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76", - "sha512": "53d9c7f3c6b77dcfde902175974fd43f5228b22b888f24e1ee106f5d530762055c7c6bedf3ded782e8f650e2c3788e411b69bbfeec3268b553e9f6ed0b04f2cf", - "dest-filename": "reusify-1.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef", - "sha256": "9430b5e7c04962bef89ea4f8c9f4b2818fe4f13e67a6bdbef77e3ba74ddf9d98", - "dest-filename": "right-align-0.1.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36", - "sha256": "e6ee2251037935e6e6734f91acee17a5cc405f1011107b8fecd0f7f9685929de", - "dest-filename": "rimraf-2.6.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab", - "sha512": "9b0a9e5b95ec036a807a31b8ea061d10d6b15e3c7da2744d09f9fb2f476eb8fe210ae4c88bf40eecf0cad3b2897e9d5dfa2cd63ebcc4243712a816b439942b88", - "dest-filename": "rimraf-2.6.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec", - "sha256": "009e4e9ed94b7baafd1941e17ad3529bda0d0dccf77f8da9baf22e01e5ce2f3c", - "dest-filename": "rimraf-2.7.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec", - "sha512": "b968db68a20add3d4e495a6dcd7ecd97a3ef437a801ad284b5546346e6b38df2f7071e5e238d3d5594aa80d0fee143679b32d574f8fd16a14934fa81645bdee3", - "dest-filename": "rimraf-2.7.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/rollup-plugin-babel/-/rollup-plugin-babel-2.7.1.tgz#16528197b0f938a1536f44683c7a93d573182f57", - "sha256": "41f7dc9878bc77361e74c3b3615b37275b1bd8c06f38e534eefe82c9e25f3dfb", - "dest-filename": "rollup-plugin-babel-2.7.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-2.1.1.tgz#cbb783b0d15b02794d58915350b2f0d902b8ddc8", - "sha256": "54d98ef810891feb17b60eade8de36011e170acdf6204a2464ee5dab945bd300", - "dest-filename": "rollup-plugin-node-resolve-2.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-1.5.2.tgz#1e156e778f94b7255bfa1b3d0178be8f5c552408", - "sha256": "70e6e2af627f463c647d27375be57808b67b0775661cfc506be6a3eb552b45c4", - "dest-filename": "rollup-pluginutils-1.5.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/rollup/-/rollup-0.41.6.tgz#e0d05497877a398c104d816d2733a718a7a94e2a", - "sha256": "d2a0381c093af890ac1806498d95a6be75c9eba2997a5ad9dbfac8619222ead5", - "dest-filename": "rollup-0.41.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a", - "sha512": "39f5864136fdbe7c118f0b40d90c291b62027251c2de981764ee71b7c1f611f803aae3b4a957526f94fcf0be2a255004ba06d2e7aa40b95e1764ce7c517f2e97", - "dest-filename": "rsvp-3.6.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0", - "sha1": "0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0", - "dest-filename": "run-async-2.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679", - "sha512": "0c4aa74914c3c3f4dcdc55dfe3dcde748eb7f19f689f0528b413225052a6acedac7452886d76a65c6437031778aa0a61c4a078930fea3f5c39913c677d4d41f5", - "dest-filename": "run-parallel-1.1.9.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.3.tgz#510e26317f4db91a7eb1de77d9dd9ba0a4899a3a", - "sha512": "c2e62c0186057564c09c068fa0a18d85fa56c0a65b256f8780027e9889a9f84a65ec11bca0d581093c9133c81b6bd938964f01816768626db5328fd162185b80", - "dest-filename": "rxjs-6.5.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d", - "sha512": "19dd94641243917958ec66c9c5fb04f3f9ef2a45045351b7f1cd6c88de903fa6bd3d3f4c98707c1a7a6c71298c252a05f0b388aedf2e77fc0fb688f2b381bafa", - "dest-filename": "safe-buffer-5.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519", - "sha512": "7d91305066d597b928b99b358c274c2ddb7de61748bf465e1e0e8beea3de722319859fbf81d7ac5b8c204c0464ac5584a6ca631004c0cd418f1bc3768c98b06e", - "dest-filename": "safe-buffer-5.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6", - "sha512": "ae9dd2a34eca71d9a629b1af81a37141226bedb1954959394bd12ad45fa9a5b468ef4f9879a0f1930e4377c34f37e183e9b8e7626d95b8fb825e6a6e62f9825d", - "dest-filename": "safe-buffer-5.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e", - "sha1": "40a3669f3b077d1e943d44629e157dd48023bf2e", - "dest-filename": "safe-regex-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e", - "sha256": "621289fa8cba8059e2e73a8d916b71b03fc7aef591c0e66373765c5951f96cd2", - "dest-filename": "safe-regex-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a", - "sha512": "619a372bcd920fb462ca2d04d4440fa232f3ee4a5ea6749023d2323db1c78355d75debdbe5d248eeda72376003c467106c71bbbdcc911e4d1c6f0a9c42b894b6", - "dest-filename": "safer-buffer-2.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/sander/-/sander-0.5.1.tgz#741e245e231f07cafb6fdf0f133adfa216a502ad", - "sha256": "24c2d1ebf7577f2a2bc6c97c8a2b879464f1123180572ab86e0aa15b0943ddd1", - "dest-filename": "sander-0.5.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/sane/-/sane-2.5.2.tgz#b4dc1861c21b427e929507a3e751e2a2cb8ab3fa", - "sha1": "b4dc1861c21b427e929507a3e751e2a2cb8ab3fa", - "dest-filename": "sane-2.5.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9", - "sha512": "36a543bfd4e900d523166d0df2e3391b12f7e9480a8bdfdab59c3ec7b6059d0f1c9301462ab978c57e325adadecb75099b99cfd6451b9d880ba29a963524615b", - "dest-filename": "sax-1.2.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36", - "sha1": "4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36", - "dest-filename": "semver-diff-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab", - "sha256": "bd93bdd068b190bfe1deb9f68bc37458e2425b4c3e230284732b5b6dad66a36e", - "dest-filename": "semver-5.5.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b", - "sha512": "61ae768d25f6bbb40a821c5ea051a92f00ad1a5b7b8f4a18f4361be5aa6df673e5278d880feba54d71129edfea010728484472679b25dcb0c83b0d27027ff90c", - "dest-filename": "semver-5.7.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7", - "sha512": "b1ab9a0dffcf65d560acb4cd60746da576b589188a71a79b88a435049769425587da50af7b141d5f9e6c9cf1722bb433a6e76a6c2234a9715f39ab0777234319", - "dest-filename": "semver-5.7.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d", - "sha512": "6f7f5305a4d27d5eb206b6a953cf69e5f29e904da6fcdc270e870e56bb90152d7fbde320773b8f72738cdf833a0b0c56f231ff97111ae6b0680de530bb91c74f", - "dest-filename": "semver-6.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/serialize-error/-/serialize-error-2.1.0.tgz#50b679d5635cdf84667bdc8e59af4e5b81d5f60a", - "sha1": "50b679d5635cdf84667bdc8e59af4e5b81d5f60a", - "dest-filename": "serialize-error-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4", - "sha512": "49a68d6a5f629843bbdfb1f6734e4e834ffc2d45c6ec49ec67231af0cce49ae1e810b7d3eadc6e8f470ca918facdf3ca9e6435c9ab11e0f08973cc7e3382523c", - "dest-filename": "serialize-javascript-5.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7", - "sha1": "045f9782d011ae9a6803ddd382b24392b3d890f7", - "dest-filename": "set-blocking-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7", - "sha256": "d934aee7db9e09da09e87724743315ffe888130aa6e04fbbdecac985f6ae693d", - "dest-filename": "set-blocking-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1", - "sha256": "f4667d4d478f9d4284bd74b58ada9ef3d90296274b8a6eb4d368f069cf0bc9e0", - "dest-filename": "set-value-0.4.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274", - "sha256": "07d9a8dfa62598f542d6bc81a7e4462028fed6f3d7a5ec4370944cade1134644", - "dest-filename": "set-value-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b", - "sha512": "2711dcd7078237af30458d1f842a17a722b9e66fd73c769f3a62b85160fb9b6088d7818c705ca9b78c3fd3e355e5ffd931bcb617a4b6c3003b7e0ca787d8164b", - "dest-filename": "set-value-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea", - "sha1": "44aac65b695b03398968c39f363fee5deafdf1ea", - "dest-filename": "shebang-command-1.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea", - "sha256": "e56584aed67fa7855e99b63cd90231e2506e5493a37f52f53e232415f57de1f7", - "dest-filename": "shebang-command-1.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3", - "sha1": "da42f49740c0b42db2ca9728571cb190c98efea3", - "dest-filename": "shebang-regex-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3", - "sha256": "676f124e8e6621c51b563d61136f9bf2becb86b0b6c4e6bfb055ace21e85c671", - "dest-filename": "shebang-regex-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d", - "sha1": "b5fdc08f1287ea1178628e415e25132b73646c6d", - "dest-filename": "signal-exit-3.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d", - "sha256": "d8900ed050db9f8e5c27529d43c025d0bbbb16737ca199d86bd50fdc8c5bd2d8", - "dest-filename": "signal-exit-3.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55", - "sha1": "c41f2f6c39fc16d1cd17ad4b5d896114ae470d55", - "dest-filename": "slash-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44", - "sha512": "6582a1dd6876cf53e91175abd0ca52059d15ea66470107d87afb6d3b5d5ce7509a5a319369a762299fb056dd4f6cc943579aa1305b25a5909e9a1c0e2bb0bcf4", - "dest-filename": "slash-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634", - "sha512": "83d43585a79bcb7e8e492b706f89ed08618668ab1a5528d0ebc7c1c6841cbad9797d2d6fb98d7c1f7c12b778c5c85b6b931f8acf45751bce40e0cc80743322d9", - "dest-filename": "slash-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636", - "sha512": "42ef950b713060b95d29ad5f0b1baebd42ef48938a12093da62f1d65e0952bb4ea05f50d4c7e2c1649388e88fc69f5527c062026848e7ad8f1f5058e279998a1", - "dest-filename": "slice-ansi-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787", - "sha512": "a52cafedb4930bb8a0f437206f0f40b913546f993957aa03b9d8d9a0c052af5deaa4b046eed07ece00a40118eaef121481dcf93f541ef2efab486768b8e388c9", - "dest-filename": "slice-ansi-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707", - "sha256": "4333b89d6f3263f223ba6b87eb7890112515576ca8161822b488a5b4b8f76b18", - "dest-filename": "slide-1.1.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b", - "sha256": "f2a498821f245af04015fa8c50afc5d4a3c3839d2e7487227e7c4be11611b545", - "dest-filename": "snapdragon-node-2.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b", - "sha512": "3b6ee5e3168c62dfd1490e53477be9582001e4a6ff73321ca9414e33f0b87d870b9db6547353e48d300c8e87f6a4159a493c0e51deaa5077051951a3eda2309f", - "dest-filename": "snapdragon-node-2.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2", - "sha256": "4ed40e99aaa722b95031051295eae4bd6d00d5914e560261d6b73e4563668e30", - "dest-filename": "snapdragon-util-3.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2", - "sha512": "99b2a431d40ab235f80402f86d16138f6d5e74e7fc70ded71dd6142447be667f7d85511870cbca3dcb7522a35eefe0193e2ae7f01083390047419927aa62a565", - "dest-filename": "snapdragon-util-3.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d", - "sha256": "783fd6b53fd9a8289872e766fffd889eddbd1718580140b617fc4905d68ad7aa", - "dest-filename": "snapdragon-0.8.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d", - "sha512": "16dc8e9d637fc021d355738cc2f4afdba77e928e6f5a52030face8509ecb5bcbe1f99042f107658ef7913fe72b36bb41c22a04516cbfe1d32d6c18c0e22a0d96", - "dest-filename": "snapdragon-0.8.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/sorcery/-/sorcery-0.10.0.tgz#8ae90ad7d7cb05fc59f1ab0c637845d5c15a52b7", - "sha256": "4bc1d08cd8f0a819ccdfc08666654718249a298d6f42f6a5c69481e6ae6a6723", - "dest-filename": "sorcery-0.10.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.1.tgz#7ad0f593f2281598e854df80f19aae4b92d7a11a", - "sha256": "52885846866b71d4abf84ac5d9bc72086cd055ad56739069b8c6c37e516da724", - "dest-filename": "source-map-resolve-0.5.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259", - "sha512": "323aacbcdc32cf5b3493cd46a33ffdbd105ef5265d074f41770fbfcd8c8efb70ae3e4e9fa2e4dac6c707920b44f232af7f4d6455f97cae21f311143f91e7da48", - "dest-filename": "source-map-resolve-0.5.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a", - "sha512": "1edcfe467b175a4e7e3f6b25c79261dd0ebabe1423d429659b4cef9da63df3e345c7e0efd8217f7f93bfb7cc7e29a35dadd200b2bb8dce887f2a989a95ba809f", - "dest-filename": "source-map-resolve-0.5.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f", - "sha256": "82e7eb70bc5039b1e194e98f65eea2740bba35a4eda384eadba7d5867a60ade0", - "dest-filename": "source-map-support-0.4.18.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.0.tgz#2018a7ad2bdf8faf2691e5fddab26bed5a2bacab", - "sha256": "818bce1863ce97c28e4d07c77fe9fd6e4070b943f1d576e79c874a71497b9a33", - "dest-filename": "source-map-support-0.5.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.10.tgz#2214080bc9d51832511ee2bab96e3c2f9353120c", - "sha512": "61f437b501532bfcb394626e5fca53c1ae2d89f423e104b6323ed47a03aef23033e7d32a2223063d7c5085542220c3736b2b94485fe312e5677c517926ac9b99", - "dest-filename": "source-map-support-0.5.10.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042", - "sha512": "79fc8b4490ebebc0fd84104d20f5858e1a45cd4461f8a272910c2f3325b9522673630a05ea5e1830c0c8249132156c560aa7f2c4bcf3ead49f50547e9175ec55", - "dest-filename": "source-map-support-0.5.16.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3", - "sha1": "3e935d7ddd73631b97659956d55128e87b5084a3", - "dest-filename": "source-map-url-0.4.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3", - "sha256": "4424f6c55195dd2997ca21f9fba7c705bf85b7ee09a1278cf31532558c43f012", - "dest-filename": "source-map-url-0.4.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b", - "sha256": "11bee89581e5e24e73450aabcd55550007e20db26c4632c5b909001fc2b5a708", - "dest-filename": "source-map-0.4.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc", - "sha1": "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc", - "dest-filename": "source-map-0.5.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc", - "sha256": "e1de289bc493154f00a11cb4e363e0bb37619537d44b36b8112bba4924116b67", - "dest-filename": "source-map-0.5.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263", - "sha256": "bdbca10d17ff5a5802d5acfc7b2f22f9f9bf587632a95650d3c5f513c7092b86", - "dest-filename": "source-map-0.6.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263", - "sha512": "52381aa6e99695b3219018334fb624739617513e3a17488abbc4865ead1b7303f9773fe1d0f963e9e9c9aa3cf565bab697959aa989eb55bc16396332177178ee", - "dest-filename": "source-map-0.6.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.1.tgz#c8fd92d91889e902a07aee392bdd2c5863958ba2", - "sha256": "d073dbcbe0d76d417ed2c187e45337914c97d02a58e0f7a24ab0c1f9e3e5ef7c", - "dest-filename": "sourcemap-codec-1.4.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-1.4.2.tgz#cff58e73a8224617b6561abdc32586ea0c82248c", - "sha256": "90b9959ebaa48ee79829db94f18e437803810c6e7897a07745fa3eef7e810159", - "dest-filename": "spawn-wrap-1.4.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-1.4.3.tgz#81b7670e170cca247d80bf5faf0cfb713bdcf848", - "sha512": "22007c99dd105bffad5aa71abee16029847fa8846f26444b3c90c56a85ed2cb51a55c0832b4f877854e49901e3ddea6b71885cfa03a5d1a100d70eea66561ecf", - "dest-filename": "spawn-wrap-1.4.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40", - "sha256": "bb496bad0f7b03558a81bbc95989cbcdeb25821f1318bba547616afcca06a03f", - "dest-filename": "spdx-correct-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4", - "sha512": "96bd8464272d0b604d47b8fb5b32761690f39f1932d6c8dfc6fbd8132cf13726fa9595c7383984a09785bb826ea589647e16b5299a49ca8aa227ba60035aaaf1", - "dest-filename": "spdx-correct-3.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977", - "sha512": "d9740009f1252a2f529556f509869d2835efa1a8cf80154f9ff80e40bad3bc774495a561afb6446ea25a46724b54d79a23870c10081509e04c285e8c5910c244", - "dest-filename": "spdx-exceptions-2.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c", - "sha256": "67221580d73a09846df5a722725ea32a76b39ed5c3e73d7486f4ab7a55b7d378", - "dest-filename": "spdx-expression-parse-1.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0", - "sha512": "620e83dd7a510f89243a64e97606d48842452a08491f4ddf882d4e3e597987fd2c3ba9de8768ea443547390e28fcb31e6b4b600a46cc81e6b98a9fdef8c916ca", - "dest-filename": "spdx-expression-parse-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57", - "sha256": "d8a073c84d34dc2b8340e33ca32f59f82615dd04bbc1a429c2703b0d0d6d9f23", - "dest-filename": "spdx-license-ids-1.2.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654", - "sha512": "27e156cd9a329c91171a9855212f97121de41528d95ffd62f6014169641c07efed9a97b6a94b12040069731ab19c0c45762505120017d5b8d8190bc8666a33f5", - "dest-filename": "spdx-license-ids-3.0.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2", - "sha256": "ca1a04195a16c5113ba19dfa474499d8a4ce0df08713805a694b10f5d6b1a5af", - "dest-filename": "split-string-3.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2", - "sha512": "3733558490d8a7071e5558a2f3f1eee8329f0f61be36b407952fd5fea82fefadc462e755c0470c40dc5dda587ed15ad40725cdfe826497982b3a1616bd05188b", - "dest-filename": "split-string-3.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c", - "sha1": "04e6926f662895354f3dd015203633b857297e2c", - "dest-filename": "sprintf-js-1.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c", - "sha256": "3afb26bcc328dc90f516515acf2783ad35b08dbfe9e0ada18264c3c4ddaa1a83", - "dest-filename": "sprintf-js-1.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8", - "sha512": "3135fe31e1b953df7871ace48ddffd28d01aa6c1e789b8cc2e77d7a1d9645f0efa24479ad1488dcebaa2773a357a633093bc3942173d8dde019fd4c16f5305c0", - "dest-filename": "stack-utils-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6", - "sha1": "60809c39cbff55337226fd5e0b520f341f1fb5c6", - "dest-filename": "static-extend-0.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6", - "sha256": "d49ef864ff022866341aa57a8a9bb3a67b61ca1044562fdac1e6cd81633b8fc3", - "dest-filename": "static-extend-0.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3", - "sha1": "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3", - "dest-filename": "string-width-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3", - "sha256": "97e54ded8cca6d24a58e8d0650fcfe80fb4094894c2078136b4ad0f24059e25d", - "dest-filename": "string-width-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e", - "sha256": "227cdc0ce920900ba08c9c53bdfbd36ab22d78d9657dbb6108e4f9b9ae59792c", - "dest-filename": "string-width-2.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e", - "sha512": "9cea87e7d75e0aaf52447971ab5030f39267b78c3a2af2caa9656293aa00f599255cb3483a5aa0e05db2ad3d4c55a4e302abd5c1d7de67bc3b682bc90fbba093", - "dest-filename": "string-width-2.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961", - "sha512": "bda7dcbfa2a3559292833d3aa0cfc7e860c1ac0b73f2f76141a9068c522f36b1c0eb2dc7085d422272f2f902eaf1d4c93d0d5bf8a0d4a8315cb647515b8e1ed7", - "dest-filename": "string-width-3.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5", - "sha512": "cd4cf9243fad82ab6e0e3321c08839b85555dddb6a67dc902656557eae08d35fcae4f6a3e541e3ed5cab40e26fcdac125652a939b0296df0f411deb225cfb57a", - "dest-filename": "string-width-4.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz#6cc47f0d7eb8d62b0f3701611715a3954591d634", - "sha512": "149e9bec481d2b1c5b0f173bf5c3a5a24e807ddfbe4d3b39b33a3ecc94d4ca8c37c9cad17c9544da9ab7bdc379dd77b1bca66efc324c0df788fea322653ae34f", - "dest-filename": "string.prototype.trimleft-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz#669d164be9df9b6f7559fa8e89945b168a5a6c58", - "sha512": "7d7653495e7974d070bf5eaec3e861e639208714a7739a07abee4afe05e08b31f002f31eb5d009947aaaa050b51520d53d858b9002a5d9cc69513e35b15ee74a", - "dest-filename": "string.prototype.trimright-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8", - "sha512": "9ff4a19ef0e2e851db6d57ef8aba3e5a88e2173bfeb3c30f30705ccd578f7d4a4324bc282d3d21b759786300426e2f29240bde104767907c8fc933ff9b345fc2", - "dest-filename": "string_decoder-1.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf", - "sha1": "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf", - "dest-filename": "strip-ansi-3.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf", - "sha256": "1c9d385a4118959514f84dce8d7bb2dafc802f0272dd00348aa18d17b95b793a", - "dest-filename": "strip-ansi-3.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f", - "sha1": "a8479022eb1ac368a871389b635262c505ee368f", - "dest-filename": "strip-ansi-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f", - "sha256": "aab0a8473699e01692bac2bb83d5460e295a3dad0e6653e0dd6af57e8ff6202d", - "dest-filename": "strip-ansi-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae", - "sha512": "0ee46cd6029b06ab0c288665adf7f096e83c30791c9e98ece553e62f53c087e980df45340d3a2d7c3674776514b17a4f98f98c309e96efbdcc680dc9fa56e258", - "dest-filename": "strip-ansi-5.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532", - "sha512": "02ebca4eb4df40d60d21cb5b4752bf6064d1d7be7a1b270fb20edbf5b755f43baababe20bfa68aa875da87aed9f08992ed6133e5055c3ad95f5b6ad912e82deb", - "dest-filename": "strip-ansi-6.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/strip-bom-buf/-/strip-bom-buf-2.0.0.tgz#ff9c223937f8e7154b77e9de9bde094186885c15", - "sha512": "80b14d1ee71dea0cdbf2332c9794266774209d4266a7baa7e2e5121cdc045ee980a7b622ce8198c35f595157eeab868139052dca7da4f17fc2c33581ef75b695", - "dest-filename": "strip-bom-buf-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e", - "sha256": "ad9ed163db6586739e6576b48ea76349b83ad460fee5c8e6a8fb481883fd0653", - "dest-filename": "strip-bom-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3", - "sha1": "2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3", - "dest-filename": "strip-bom-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3", - "sha256": "48094c11a1f7faa867eb6919c09380232ce9b6d61fb3c43618ca6235b6013ee2", - "dest-filename": "strip-bom-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf", - "sha1": "bb43ff5598a6eb05d89b59fcd129c983313606bf", - "dest-filename": "strip-eof-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf", - "sha256": "f2bead0b21242d44edb6d3d1852fc456fc56ea9489cd8b9a85a458055b219c5d", - "dest-filename": "strip-eof-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68", - "sha1": "5ef8db295d01e6ed6cbf7aab96998d7822527b68", - "dest-filename": "strip-indent-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a", - "sha1": "3c531942e908c2697c0ec344858c286c7ca0a60a", - "dest-filename": "strip-json-comments-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a", - "sha256": "dbe45febaf1bf7265c25733242bc0e7ac38b632db6a8e19f0341af4770425899", - "dest-filename": "strip-json-comments-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7", - "sha512": "553c8c0147dd9b4e3b9b02a5faeefd58876b671b45b67fa70711de6fce385c143db8c353b931ddc7685ce51880258ab04e3df073fc5ee472d27494a427e59f67", - "dest-filename": "strip-json-comments-3.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006", - "sha512": "e9f3dcf91e22870a8fe8dfda22fd9fd60307f25395b56407a2a0b8c8aea8483555a1cba602c7c2aa39179ea89832198cc12fe61072e9ed57a196ddea97a9448a", - "dest-filename": "strip-json-comments-3.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/supertap/-/supertap-1.0.0.tgz#bd9751c7fafd68c68cf8222a29892206a119fa9e", - "sha512": "1d927781e20c3e05702a4d95b263b9607aa79c9625e9b57903d256daecea578dd69a982588d1186eebee91fa2bed44696aaa71bb0dc27d9dce35d55b6630a020", - "dest-filename": "supertap-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7", - "sha1": "535d045ce6b6363fa40117084629995e9df324c7", - "dest-filename": "supports-color-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7", - "sha256": "725d4b25d44e0f16eb986ba957c14d9c8540de2f6a4fca961bf1f60aa1659ad3", - "dest-filename": "supports-color-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6", - "sha256": "b8538096cce414fe297eb5d4469939a8890f4c21f75a9b74b43c0ff0f34b99ee", - "dest-filename": "supports-color-3.2.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/supports-color/-/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e", - "sha256": "dada8a4f7b3a1920d3135416992b35ceb62d2f5434553d026c7a7773b60854f7", - "dest-filename": "supports-color-4.4.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b", - "sha256": "cb2c7b7c678c73a45ff26cecf5f5370e0f5f8fea00f77cba8706955ad2972ad6", - "dest-filename": "supports-color-4.5.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54", - "sha512": "ce36978251799e75a9b2ae3bd234afe8ff43c0fbe02e4b9aa5899f0e6dc958e9b4be4353545dad23852b376afa8c7d6a33fb9cfd6b71618d6162803674e2a3e7", - "dest-filename": "supports-color-5.4.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f", - "sha512": "423563c1d5c8b78d3c308880a825f8a142ac814d84a801b3b363e9926e1a4186e39be644584716e127c5353af8b8c35999ad1ecb87f99602eb901d1a5f440ca3", - "dest-filename": "supports-color-5.5.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3", - "sha512": "a9ed637e6d4c83b36afcd4a1e97136e203d744e115b161f10b52c8c7ffd73650fd8b0ed86501a364d8d837bc466841ba88a740f04b4d156e91d208e7557a7ec1", - "dest-filename": "supports-color-6.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1", - "sha512": "a11488a51f29c53d56af616ab9336719eb7bf5bdc15a58ea3aea16fe1e28061c49fc751b5f99d7e894abb9392f5c30853300cfbec6934dbbcc2ca6564b2d11e6", - "dest-filename": "supports-color-7.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da", - "sha512": "aa9080bd197db2db8e1ef78ab27ec79dc251befe74d6a21a70acd094effe2f0c5cf7ed2adb02f2bf80dfbedf34fc33e7da9a8e06c25d0e2a205c647df8ebf047", - "dest-filename": "supports-color-7.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804", - "sha512": "7bdd349ccf1146d1a1955dfa286114f64eb92b798f6f5595ef439d8dfc651b6100b8cd67a22fc4fc1696fee3212fb6cf12cb0af10579eef3777ac8b18d4bdc5d", - "dest-filename": "symbol-observable-1.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e", - "sha512": "c2611cf26e1f8e7a1be20b79ae2151b53bbfebee2b49ed764e90042cd4aa1cc7c5dc8aa703e087dfb51233afd8477a9166fedee7a900100b5dea72996b17b452", - "dest-filename": "table-5.4.6.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/tar/-/tar-4.4.10.tgz#946b2810b9a5e0b26140cf78bea6b0b0d689eba1", - "sha512": "836495b39408c6fa3a38ba741ae753a847f4e6669ac0a5315ebbb5d3889a6b2580d3de79d6d1424c8f1fd40b1be253df901afdd64d3b88be1cd755cedff6f4b4", - "dest-filename": "tar-4.4.10.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/teeny-request/-/teeny-request-3.11.3.tgz#335c629f7645e5d6599362df2f3230c4cbc23a55", - "sha512": "08a9dca9217bb07ea9e2bcc28246ffcff3dca2ce5e7e5d039a8973be5a9141435ca5122bb8e858f7e4f516c225c846df59deccb05a6875138ec07621d81697cf", - "dest-filename": "teeny-request-3.11.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d", - "sha256": "ff112390c7c4197050720686bc5a73f1b11ce092c4fbb77cf903a1f2f0140883", - "dest-filename": "temp-dir-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/tempy/-/tempy-0.2.1.tgz#9038e4dbd1c201b74472214179bc2c6f7776e54c", - "sha256": "ebf67a8ab4bb2f867596d938e74f02fddc3caa4f2deec80ad7b52e92cbcd4c1b", - "dest-filename": "tempy-0.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69", - "sha1": "458b83887f288fc56d6fffbfad262e26638efa69", - "dest-filename": "term-size-1.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.1.1.tgz#4d84964b0966b0087ecc334a2ce002d3d9341e26", - "sha256": "b7c323c6ee00bef26bc5c1da04b5e5fec45d9bd4a82b41b2b22eb32da8911380", - "dest-filename": "test-exclude-4.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.3.tgz#c3d3e1e311eb7ee405e092dac10aefd09091eac0", - "sha512": "33ea31b6c78214edc40ed01a187ee289e8f70819335ea14c6f3a9800009dccaba2e1e640fa9ab7b591300a1bce74d7daef1c72f017db9a025222be37702ffeda", - "dest-filename": "test-exclude-5.2.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4", - "sha1": "7f5ee823ae805207c00af2df4a84ec3fcfa570b4", - "dest-filename": "text-table-0.2.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5", - "sha1": "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5", - "dest-filename": "through-2.3.8.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/time-zone/-/time-zone-1.0.0.tgz#99c5bf55958966af6d06d83bdf3800dc82faec5d", - "sha1": "99c5bf55958966af6d06d83bdf3800dc82faec5d", - "dest-filename": "time-zone-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f", - "sha1": "f32eacac5a175bea25d7fab565ab3ed8741ef56f", - "dest-filename": "timed-out-4.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9", - "sha512": "8d10899688ca9d9dda75db533a3748aa846e3c4281bcd5dc198ab33bacd6657f0a7ca1299c66398df820250dc48cabaef03e1b251af4cbe7182459986c89971b", - "dest-filename": "tmp-0.0.33.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1", - "sha256": "e438a67b77c253a111700e5f6005afd08055870592b462b348999b53db7809e8", - "dest-filename": "tmpl-1.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47", - "sha1": "b83571fa4d8c25b82e231b06e3a3055de4ca1a47", - "dest-filename": "to-fast-properties-1.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47", - "sha256": "31a6db330b363a97276cea9605fdd5a0c7211af71bcb549a94f4b59bf9028c21", - "dest-filename": "to-fast-properties-1.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e", - "sha1": "dc5e698cbd079265bc73e0377681a4e4e83f616e", - "dest-filename": "to-fast-properties-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af", - "sha1": "297588b7b0e7e0ac08e04e672f85c1f4999e17af", - "dest-filename": "to-object-path-0.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af", - "sha256": "c830bc5c3e8538866d41d5e4e952e52509c3af04df33737319a662dad106c406", - "dest-filename": "to-object-path-0.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771", - "sha512": "22adb95c1b7acc3e67a4f8652d55c614ddff832476fea38370a34dc9331de2f6e6dfd1d468e8803383ccab478c542fd3931cfe66376c739e60f72cb3f98ab4d1", - "dest-filename": "to-readable-stream-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38", - "sha1": "7c80c17b9dfebe599e27367e0d4dd5590141db38", - "dest-filename": "to-regex-range-2.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38", - "sha256": "789100e984786a2bc106baf1f671c1feb666c2c3fcd753cbf3b07366b7ac8867", - "dest-filename": "to-regex-range-2.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4", - "sha512": "eb93fb8b3e97e7212bd5cc1c82f4316db230ed493780ecb974876d678ac3bde2ea86b7493fe2e2fc7c7ab722b43446fed860b29de08c2621aaac00c248d93cb1", - "dest-filename": "to-regex-range-5.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce", - "sha256": "86831805bd821f826f2c77fe1add74855b63801c95a52f41f032cbe73112340d", - "dest-filename": "to-regex-3.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce", - "sha512": "156b6578d02d67f2a2daab6a7a3d825d339ac8e1fd6c70d017e438f15a56c835e36d8c40e18cfc883077d735ce05494e1c72a27436ea195ad352f40c3e604607", - "dest-filename": "to-regex-3.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20", - "sha1": "b403d0b91be50c331dfc4b82eeceb22c3de16d20", - "dest-filename": "trim-newlines-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3", - "sha1": "9f9ba9d9efa8764c387698bcbfeb2c848f11adb3", - "dest-filename": "trim-off-newlines-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003", - "sha1": "cb2e1203067e0c8de1f614094b9fe45704ea6003", - "dest-filename": "trim-right-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003", - "sha256": "89f3b88291843bfa6dd3aae2f154fe2e1913c4de02d821b210b7270e3cbfd985", - "dest-filename": "trim-right-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/ts-node/-/ts-node-4.1.0.tgz#36d9529c7b90bb993306c408cd07f7743de20712", - "sha256": "d2d1ef46c708d3583eea51383cb2d3e148344bab2e3e4206d0e2321ed325570f", - "dest-filename": "ts-node-4.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/ts-node/-/ts-node-7.0.1.tgz#9562dc2d1e6d248d24bc55f773e3f614337d9baf", - "sha512": "055c156cf251b29ccd876c9fb25c93d4f49b979b88934dc46656f8f7744a1cde2a7a3fc3d3a9f570486394e246ebda05b04ece4fc5e3a5351c61fea92932cc87", - "dest-filename": "ts-node-7.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/tsconfig/-/tsconfig-7.0.0.tgz#84538875a4dc216e5c4a5432b3a4dec3d54e91b7", - "sha256": "146e598c1b22d8690672bedda58f6b882c2d7935bc42a61920ad98fc5e57dc50", - "dest-filename": "tsconfig-7.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/tsd/-/tsd-0.11.0.tgz#ede8b8e85850845b753fff7eaaf68dbd3673700b", - "sha512": "92528c342d0a47350868b246f17aa4bc7ffdacac185fbe31a6a24137cb295a36140e88c07ac77a01f0c24f976b6b2fb284b7d31a47a6ecede753a8b82b0ccd0f", - "dest-filename": "tsd-0.11.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a", - "sha512": "a8e79b179ddfae77bcd5c7f44bd078d41c9e9c9dff22e1fcc892a78005f7e429a2672480d24861928bec84a2be8c609a3275689a56bb81594871cdc4bca3db4d", - "dest-filename": "tslib-1.10.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/tslib/-/tslib-1.9.0.tgz#e37a86fda8cbbaf23a057f473c9f4dc64e5fc2e8", - "sha256": "76809dcd09788df81e347bdd77dec0c11f6aeb238af88c54094a3a7fd6c23b26", - "dest-filename": "tslib-1.9.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/tslint/-/tslint-5.9.1.tgz#1255f87a3ff57eb0b0e1f0e610a8b4748046c9ae", - "sha256": "a7ab3fa80726c8b7b0896db69da9f5fc69bddbdbbff7f5dccd6211a8dce9490b", - "dest-filename": "tslint-5.9.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/tsutils/-/tsutils-2.21.1.tgz#5b23c263233300ed7442b4217855cbc7547c296a", - "sha256": "ad72e6fd0ad98c168d1efd5157800fc980062b11f8dbb67f1ac290641a813846", - "dest-filename": "tsutils-2.21.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72", - "sha1": "5884cab512cf1d355e3fb784f30804b2b520db72", - "dest-filename": "type-check-0.3.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.5.tgz#d70e5bc81db6de2a381bcaca0c6e0cbdc7635de2", - "sha256": "d6172c00157ac2a6f6327883e2a15f1f9cf5a1147b2a77a5af0db335381be3c6", - "dest-filename": "type-detect-4.0.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c", - "sha512": "d1faff9881f57653bec7b4e570ccbe6c80ea28fb30ffbd2d5727875bbf3b828423866a9a65ed74bb02ee8ee6caf6af4b83a162868d4a50a0d8cf467b93b839fe", - "dest-filename": "type-detect-4.0.8.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1", - "sha512": "7141899c276be124db78f0a0a8d15ba553427a96be900568849b35b0b871cdd1fe82712839df1585b61aee90f7cd9606894456336c731082377d07118b30e461", - "dest-filename": "type-fest-0.3.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d", - "sha512": "e1d6f3233aaf8ed822339af0d64e6b107b4100d2a676e7611b20446a3374d5f13285a00886ca0a372eb2efe20df7721fa45b7063d8aa8bb903fb1c0a850b0d24", - "dest-filename": "type-fest-0.8.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080", - "sha512": "cddbbc5cc3440dea4a291f9760e5c054fb56ba2d25cb436da2152c730f9499a1e20164fc86b575aebfff1fa57ed03bc9dce435f52f7bf4cd2568b7d7f2b9bcd9", - "dest-filename": "typedarray-to-buffer-3.1.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/typescript/-/typescript-2.6.2.tgz#3c5b6fd7f6de0914269027f03c0946758f7673a4", - "sha256": "03e533c09fa10ba7b278cf3374b32ae4240ba6201a5ee9300da53127e3efa86b", - "dest-filename": "typescript-2.6.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/typescript/-/typescript-2.8.1.tgz#6160e4f8f195d5ba81d4876f9c0cc1fbc0820624", - "sha256": "9b32bd684e935101f00bea2e290879b2a0600c12d068751b8f9c92daddb42224", - "dest-filename": "typescript-2.8.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/typescript/-/typescript-3.2.2.tgz#fe8101c46aa123f8353523ebdcf5730c2ae493e5", - "sha512": "5428f95224b21c18f07d869c983b9cfcd3a4e10422c5b13e5a7ecc149b92d2746e3d06e87f5df63f0e2ee77766dbae0ef0b3dcd8c56c73b449366979b33bab92", - "dest-filename": "typescript-3.2.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd", - "sha256": "dfb27e7004eafe33ec1b228785ff73a197e68c183749ec5e32f55254a9a7e021", - "dest-filename": "uglify-js-2.8.29.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.7.0.tgz#14b854003386b7a7c045910f43afbc96d2aa5307", - "sha512": "3c2fde7b8e7c3443084ded4eb9f0236a5eb98ba941e7c4751d6311731c2f773d54a295b40d8aa544bdf176edc8713bd35ec074d82447ca489d91344bf80de140", - "dest-filename": "uglify-js-3.7.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7", - "sha256": "e78538eb306ac63a5d42145d91e21e40c921487157afacecf7310cd9a9e025c2", - "dest-filename": "uglify-to-browserify-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/uid2/-/uid2-0.0.3.tgz#483126e11774df2f71b8b639dcd799c376162b82", - "sha1": "483126e11774df2f71b8b639dcd799c376162b82", - "dest-filename": "uid2-0.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818", - "sha512": "8c3acd9d7587778a07893667c7f646ee0b544d5a7e8027134caafc2f41e3970a6144e116dfe1e29be229bc2fb17091057a06a988c67265ed360b2b8e9d199b9d", - "dest-filename": "unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c", - "sha512": "2f8428875e6f4df9edb27e0fd73aa71ee946d0b75782348ed37e5f12976da7a6315e1313e7543abe0339958746ff95f73234be93f63d5f0e1214263d224474ae", - "dest-filename": "unicode-match-property-ecmascript-1.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277", - "sha512": "8434c7bda064dd1985cef4a5d1456b5260b73ee5bdc0a567a68503607d090e4488a2fcf0f89e6f89099e607c55481a6db9b9ebecf6c7d9ed1f9e90d1427425e6", - "dest-filename": "unicode-match-property-value-ecmascript-1.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57", - "sha512": "2f9440a827d7a80c11dd1ae217ca4cd25534c384727ff1a0cce3708ba2a72f5b5a2506bbc754c2c5d26720b5f9f562063b0479ec85719fb35e8f47f3d4dcba7f", - "dest-filename": "unicode-property-aliases-ecmascript-1.0.5.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4", - "sha256": "1df0e436bac9555c351a5f26cb6b862d2856d7613b1adc4b888e07a588b6d179", - "dest-filename": "union-value-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847", - "sha512": "b497d79b131e5989dccc256ced7004bc857b89ea6900b7727a958c90793072246966b686ff1c13facd8937cfa9af5fbc8c245ff34145cefafe32941e7a81785e", - "dest-filename": "union-value-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a", - "sha1": "9e1057cca851abb93398f8b33ae187b99caec11a", - "dest-filename": "unique-string-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a", - "sha256": "54a07b57dd9eeef39b290b8d40e44e4305c4a51c4edba72ed95ac622c385850a", - "dest-filename": "unique-string-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/unique-temp-dir/-/unique-temp-dir-1.0.0.tgz#6dce95b2681ca003eebfb304a415f9cbabcc5385", - "sha1": "6dce95b2681ca003eebfb304a415f9cbabcc5385", - "dest-filename": "unique-temp-dir-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7", - "sha256": "87b37c6a6fe0f7c8fe63fa260fa9eb3b4e57a625beaf732cfe8ac2a00c39ac27", - "dest-filename": "universalify-0.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559", - "sha1": "8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559", - "dest-filename": "unset-value-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559", - "sha256": "53638214a6c65f1d8fcf8b7b718a7c2526b4b9a51cfb0f9c2685a13fdf435286", - "dest-filename": "unset-value-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97", - "sha1": "d2f0f737d16b0615e72a6935ed04214572d56f97", - "dest-filename": "unzip-response-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6", - "sha512": "83031d8602471ae8fffb01c926cf5ee8f702b33a714756f6dfa8a0ace914a1f1a1a89b86f9a9a520ac00a47d485b559697ba2f671b17e3d94c0562f149d9b90f", - "dest-filename": "update-notifier-2.5.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/update-notifier/-/update-notifier-3.0.1.tgz#78ecb68b915e2fd1be9f767f6e298ce87b736250", - "sha512": "82bae6ac1e996fc0d48b20c869e4530429202126148044cd7bb3609446d5b2b2d65de1129e50923f9d167d14a3fc69b330f97a51c863db84bfa7cd273ff650ad", - "dest-filename": "update-notifier-3.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0", - "sha512": "298f45ae68abaa5f755f64208ebcb459de18f984ddadd661792f13170be46cb59ffc6e4a3490c287aa4a2f939972d116e3ed0169ae6274ad9942e10b4703f39d", - "dest-filename": "uri-js-4.2.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72", - "sha1": "da937f7a62e21fec1fd18d49b35c2935067a6c72", - "dest-filename": "urix-0.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72", - "sha256": "75ddd09b350185294372b4334af8ceff2bfb9893943414e571cc249519c215a7", - "dest-filename": "urix-0.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73", - "sha1": "7af8f303645e9bd79a272e7a14ac68bc0609da73", - "dest-filename": "url-parse-lax-1.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c", - "sha1": "16b5cafc07dbe3676c1b1999177823d6503acb0c", - "dest-filename": "url-parse-lax-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/urlgrey/-/urlgrey-0.4.4.tgz#892fe95960805e85519f1cd4389f2cb4cbb7652f", - "sha1": "892fe95960805e85519f1cd4389f2cb4cbb7652f", - "dest-filename": "urlgrey-0.4.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/use/-/use-3.1.0.tgz#14716bf03fdfefd03040aef58d8b4b85f3a7c544", - "sha256": "b433ce23db1876e21f894c6f747189b1abdbb61dca11f08a19fddec06d690db6", - "dest-filename": "use-3.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f", - "sha512": "73011255794edeeae5f585a5156fd303d72c842121b6eec8289fe9e6ca09fe01a98fbbdbbc5ac063f7888a843a0f0db72a3661620888a3c1ceb359d0dafaffa1", - "dest-filename": "use-3.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190", - "sha1": "2b5be23a32b63a7c9deb8d0f28d485724a3df190", - "dest-filename": "user-home-1.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf", - "sha1": "450d4dc9fa70de732762fbd2d4a28981419a0ccf", - "dest-filename": "util-deprecate-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866", - "sha512": "a56d0da354461e0ce5a4724ed67b15ac72a9384231906835c41fafd1999d347e4e01e030cc056b0a7236ffa32dc7e532b3a89aca5c5af83de0e23eb720a2a349", - "dest-filename": "uuid-3.3.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e", - "sha512": "bac6414f73d6f8b3a3336e706ea2256703de255fb7392cf73359355acf2c9e55b7f5d67260bf653860b91603d51df9348ca9a388357c6749886d540f8b016cee", - "dest-filename": "v8-compile-cache-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4", - "sha1": "aab1a1fa30d45f88dd321148875ac02c0b55e5b4", - "dest-filename": "v8flags-2.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/v8flags/-/v8flags-3.0.1.tgz#dce8fc379c17d9f2c9e9ed78d89ce00052b1b76b", - "sha256": "a70a9d00161ba204a5eb14bb62ae7ca7e67c52cd8215ba6db3bd93b32cb1aad8", - "dest-filename": "v8flags-3.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc", - "sha256": "15915346efdb973ada371389b7add4b7af0929addca4d3f06f5441bda599056e", - "dest-filename": "validate-npm-package-license-3.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a", - "sha512": "0e92a6d948bfc4deff1d0282b69671a11581859f59d24aadca01bc5c280d43c6650e7c6e4265a18f9eba8fc7cde02bb7fc999b86c0e8edf70026ae2cf61dbb13", - "dest-filename": "validate-npm-package-license-3.0.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/verror/-/verror-1.10.1.tgz#4bf09eeccf4563b109ed4b3d458380c972b0cdeb", - "sha512": "bdeb9f726c6b8b87b75d2ad3d31c1f511ee482e2246b105ea2c0e0d34c835a1938f7077091252bbefb26ee773be5ed4f532bc87998fa9d2f15411633dbf4b85e", - "dest-filename": "verror-1.10.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb", - "sha256": "48bfb7ca9dcf695be85ce88c7055c3d2346ff3b038a36976acf66d2a6e079dc2", - "dest-filename": "walker-1.0.7.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/watch/-/watch-0.18.0.tgz#28095476c6df7c90c963138990c0a5423eb4b986", - "sha256": "1cdf7615f948361f17f08b38e817037be4972d02bb2235f17e5d260459c7246a", - "dest-filename": "watch-0.18.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8", - "sha1": "f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8", - "dest-filename": "wcwidth-1.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/well-known-symbols/-/well-known-symbols-2.0.0.tgz#e9c7c07dbd132b7b84212c8174391ec1f9871ba5", - "sha512": "64c8c2de1a3e297a3405f25bec982d439201baf9d285d94008d90a91db2a066630ddb3c06897cf798528ead2d4693e6d1bf1a487bc64a4184a450f5eee9ca0f5", - "dest-filename": "well-known-symbols-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a", - "sha1": "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a", - "dest-filename": "which-module-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a", - "sha256": "4fbf12fbe1ebf9360acf140231a7ee2156298058b8166f53df1302109f1028ea", - "dest-filename": "which-module-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a", - "sha256": "87a8ce7e58c6a00b6440c2539a4e1da82f247990c546a93478a900a79fa30512", - "dest-filename": "which-1.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a", - "sha512": "1f125d616ab53132106c9de7c3472ab2c1e84cd536ebb2a5ac3b866755989710d2b54b4a52139a266875d76fd36661f1c547ee26a3d748e9bbb43c9ab3439221", - "dest-filename": "which-1.3.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1", - "sha512": "04b2374e5d535b73ef97bd25df2ab763ae22f9ac29c17aac181616924a8cb676d782b303fb28fbae15b492e103c7325a6171a3116e6881aa4a34c10a34c8e26c", - "dest-filename": "which-2.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457", - "sha512": "40690e41cf172fa06de4fc27b04c4a04fb8c281c671b15965b77d4e795ede1f787a3331485d50c6810a4dbdd2aa66ff01b9bbf4522b3c1d002e22e7562282284", - "dest-filename": "wide-align-1.1.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc", - "sha512": "05ae66f7f15ae17b7d79bd842d7b7bec9c550d5f30eea42b1f4cd2fd359225d2f20304235a83b3a738f997055fb43cfa9ff10ebb7b4d0024bce2fe74f6ac2724", - "dest-filename": "widest-line-2.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d", - "sha256": "8399b671dd219a0a3ae828db810ed9d5ba7454731d91700b2afb4311813322e9", - "dest-filename": "window-size-0.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c", - "sha512": "1f3fe6acdc22b4d461fc7500b4cfd54ffe551feca00fa0d5ee660a640b473ab6ecf14ee5bcf4bac5fec424a305d2e5b52890a5d07ef4d60dd91aeb3e9ae139bd", - "dest-filename": "word-wrap-1.2.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f", - "sha256": "66a2fa688509738922c3ad62a6159fe3c93268bd3bca2bff24df4bc02cc31582", - "dest-filename": "wordwrap-0.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107", - "sha1": "a3d5da6cd5c0bc0008d37234bbaf1bed63059107", - "dest-filename": "wordwrap-0.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107", - "sha256": "419fcd999c644377c678ea8315aacf9bda442cd75bdfa50aee3918dd917ae274", - "dest-filename": "wordwrap-0.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/workerpool/-/workerpool-6.0.2.tgz#e241b43d8d033f1beb52c7851069456039d1d438", - "sha512": "0d2372bcea452ab36eb1a694c24f9e8fa7018f56e684b7017e3f347a51a4f99228e494a4abeba707574b28439c35f2436608c62027e14344394db3f43ef178f9", - "dest-filename": "workerpool-6.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85", - "sha256": "4e9c683a8ddd125984393f2c2cc014037483458a863c00bfcba7429dd8123490", - "dest-filename": "wrap-ansi-2.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09", - "sha512": "402d7f88dff6fd13d52798d82bc046b6d8f9cfcdcb9922a6bdbbeb5cf3422d94846f7d8a2950c90e5fcc3add8dd35a94d87fc593311af4f2ada3506a0e3b5ded", - "dest-filename": "wrap-ansi-5.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f", - "sha1": "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f", - "dest-filename": "wrappy-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f", - "sha256": "aff3730d91b7b1e143822956d14608f563163cf11b9d0ae602df1fe1e430fdfb", - "dest-filename": "wrappy-1.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f", - "sha256": "b160197ef3743c2316c5d1f89096d686902d17bb83c577ee04a684f59f45bb56", - "dest-filename": "write-file-atomic-1.3.4.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481", - "sha512": "19a1131f9c30b17f86727ce13e029c2a327a3360aadff899a755b263f5f5092aab5be8d534cf58ec3f040b6b0ce191bf57cc199529e226708a58f981600b9c45", - "dest-filename": "write-file-atomic-2.4.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.1.tgz#558328352e673b5bb192cf86500d60b230667d4b", - "sha512": "24f4adac8cb2549ea8092cffebdd5f02316d79f67aabe7cfead9be392e10c3aa3e4c6431369d73898d8f812f97fe6d15f0e5a16623bf9b8c528fe3ebe11ad9bf", - "dest-filename": "write-file-atomic-3.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3", - "sha512": "fe583bd07023b6452058f559859726f93e2190bf196eda759c534e9f7951af19e5bf9d12441bfb711ed1a91f8632c7778545f2f61581a380874db15370e6308a", - "dest-filename": "write-1.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4", - "sha1": "496b2cc109eca8dbacfe2dc72b603c17c5870ad4", - "dest-filename": "xdg-basedir-3.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz#9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5", - "sha512": "c8ca8606ab57c9e3757b74c662f80d803559de3f385b873090e5d0b30821a25e803e065669f7fd9676ef37b3076093a25ecbc63d7b634d8244882f49db0bfd12", - "dest-filename": "xmlbuilder-15.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54", - "sha512": "2ca614d620172575200179fd5118e2bbe3168725171ecbdfa7b99cb989bd75250a2b4fc28edad4c050310fcdbf98259bb4bb068c521a774c08b28778ceb4c011", - "dest-filename": "xtend-4.0.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41", - "sha256": "4d7412e72d642106847b3caa8597a54b24178e3baaf406748d519d8b51462741", - "dest-filename": "y18n-3.2.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b", - "sha512": "afd4bf6725eefd7bbdab5b58969b0b22c6b711e2d75e4d15c25c6a4dc1517e0f4484c5bed7b91bb7d1b436b8029a119be6f4f687284964b7c31b1fbbfb9523ff", - "dest-filename": "y18n-4.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4", - "sha512": "c0d732e0dbe33182fc82881659800eed915615f1dc6dd6c4e7bb593bc7b871ba63f2d7d4730af0a9297769df07c6961609d5dc25409e28a652eb602fd5a7dfc1", - "dest-filename": "y18n-4.0.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52", - "sha1": "1c11f9218f076089a47dd512f93c6699a6a81d52", - "dest-filename": "yallist-2.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52", - "sha256": "c7b31084d3525e17314b46c28e58ceb6cd8f10a9ff926daf48303976f8acb0b2", - "dest-filename": "yallist-2.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9", - "sha512": "4be664f0311613aa0aa55faf237a9691a2be8d26c82bcea90b07b6205ff1c08a50f2312ec69c3d3726868e6a7df81a09bf9155da98aa0837280ad4ada698aad8", - "dest-filename": "yallist-3.0.3.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8", - "sha512": "542232475c09a0405952a9393c0fa838117aca96f087968d077239d20bb100bfeaba081d7ece13b4d1d0ad26b3140ddf619fad12a7ecd3320696fd1cfeb8236d", - "dest-filename": "yargs-parser-10.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0", - "sha512": "a15015b07cfab85ae0dd7421785208f0448edacb007fd96e5ae01de967b1b2ee05dceb485b4a3c22b89b3d762b0f8582db82d6b4fac9946cbcef2e6e74af9dc5", - "dest-filename": "yargs-parser-13.1.1.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38", - "sha512": "de56ec3517ff8fe03842e4997c3440ec74527d6af33b4623a9325de648c0ab7ed97a9d421206989ab1fd4371b03e207d707c9dd58d54c208068491a8c62a5bce", - "dest-filename": "yargs-parser-13.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-8.1.0.tgz#f1376a33b6629a5d063782944da732631e966950", - "sha256": "4f480401590bfddae52363966a24d885c0bd284585b8bc77f7b72ea8bdadb24a", - "dest-filename": "yargs-parser-8.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb", - "sha512": "ee9453200f5073571a6746d9e9161119b1c9b61256b9a91ff969872b4ad578b90daeb1a17e869b04d76e7ba91d20d23aaf889fee872af5a0ff9fbc7028e77338", - "dest-filename": "yargs-unparser-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/yargs/-/yargs-10.1.2.tgz#454d074c2b16a51a43e2fb7807e4f9de69ccb5c5", - "sha256": "c0c0a18eec2c0a730bebcc20ac3ecd01087a62f040882d11fbea7e79f0ea146a", - "dest-filename": "yargs-10.1.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83", - "sha512": "d9e7a1ba7ffc00b5bc4cba0897b31569152b83ec829de9eef01e240654718f7189183294d4e83bb0c5cf366d416323350ce2664d9e1878dfcdc31bfef1726c50", - "dest-filename": "yargs-13.3.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd", - "sha512": "017dd9c3988faee37989eeb119120382a913f9986746564c2cc1c0b3cb60ee746bbb2d8d6fe8b9a3d6f082102882d334f2ad5da6bd8b5684bc2924cc62959753", - "dest-filename": "yargs-13.3.2.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1", - "sha256": "e9bd679ff3bdfd44206e4922cfad37a32eff796a201e814aa2da13ecb54fc37c", - "dest-filename": "yargs-3.10.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a", - "sha256": "ec50aa2490fecb729aa3be179221c11042aa2ae7106cdd1d3c336d38968f6da4", - "dest-filename": "yn-2.0.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "file", - "url": "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b", - "sha512": "ad592cbec9cd09d27fa2119ceb180fc3237c7a1782c6c88b33c9b1b84fedfe6395a897b03ee3b59a22e94c74224604ca08b7b12f831e00555a82db3b1e6359d9", - "dest-filename": "yocto-queue-0.1.0.tgz", - "dest": "flatpak-node/yarn-mirror" - }, - { - "type": "git", - "url": "git+ssh://git@github.com/bitfocus/node-dns-js.git", - "commit": "e5f0c3da63653398005bf36f66ad0b77770dcad6", - "dest": "flatpak-node/tmp/node-dns-js.git-e5f0c3da63653398005bf36f66ad0b77770dcad6" - }, - { - "type": "git", - "url": "git+ssh://git@github.com/bitfocus/node-mdns-js.git", - "commit": "1af6b83ce91e5538012f977e1dcadbda5dc0d3b5", - "dest": "flatpak-node/tmp/node-mdns-js.git-1af6b83ce91e5538012f977e1dcadbda5dc0d3b5" - }, - { - "type": "git", - "url": "git+ssh://git@github.com/castlabs/electron-releases.git", - "commit": "199a1451fd1ee8c53133e9f0f5dc4dd094475bd8", - "dest": "flatpak-node/tmp/electron-releases.git-199a1451fd1ee8c53133e9f0f5dc4dd094475bd8" - }, - { - "type": "inline", - "contents": "9", - "dest-filename": "installVersion", - "dest": "flatpak-node/cache/node-gyp/17.0.0" - }, - { - "type": "inline", - "contents": "flatpak-node-cache", - "dest-filename": "INSTALLATION_COMPLETE", - "dest": "flatpak-node/cache/ms-playwright/chromium-956323" - }, - { - "type": "inline", - "contents": "flatpak-node-cache", - "dest-filename": "INSTALLATION_COMPLETE", - "dest": "flatpak-node/cache/ms-playwright/ffmpeg-1007" - }, - { - "type": "inline", - "contents": "flatpak-node-cache", - "dest-filename": "INSTALLATION_COMPLETE", - "dest": "flatpak-node/cache/ms-playwright/firefox-1313" - }, - { - "type": "inline", - "contents": "flatpak-node-cache", - "dest-filename": "INSTALLATION_COMPLETE", - "dest": "flatpak-node/cache/ms-playwright/webkit-1596" - }, - { - "type": "script", - "commands": [ - "case \"$FLATPAK_ARCH\" in", - "\"i386\")", - " export ELECTRON_BUILDER_ARCH_ARGS=\"--ia32\"", - " ;;", - "\"x86_64\")", - " export ELECTRON_BUILDER_ARCH_ARGS=\"--x64\"", - " ;;", - "\"arm\")", - " export ELECTRON_BUILDER_ARCH_ARGS=\"--armv7l\"", - " ;;", - "\"aarch64\")", - " export ELECTRON_BUILDER_ARCH_ARGS=\"--arm64\"", - " ;;", - "esac" - ], - "dest-filename": "electron-builder-arch-args.sh", - "dest": "flatpak-node" - }, - { - "type": "script", - "commands": [ - "version=$(node --version | sed \"s/^v//\")", - "nodedir=$(dirname \"$(dirname \"$(which node)\")\")", - "mkdir -p \"flatpak-node/cache/node-gyp/$version\"", - "ln -s \"$nodedir/include\" \"flatpak-node/cache/node-gyp/$version/include\"", - "echo 9 > \"flatpak-node/cache/node-gyp/$version/installVersion\"" - ], - "dest-filename": "setup_sdk_node_headers.sh", - "dest": "flatpak-node" - }, - { - "type": "shell", - "commands": [ - "cd flatpak-node/tmp/node-dns-js.git-e5f0c3da63653398005bf36f66ad0b77770dcad6; git archive --format tar -o ../../yarn-mirror/node-dns-js.git-e5f0c3da63653398005bf36f66ad0b77770dcad6 HEAD", - "cd flatpak-node/tmp/electron-releases.git-199a1451fd1ee8c53133e9f0f5dc4dd094475bd8; git archive --format tar -o ../../yarn-mirror/electron-releases.git-199a1451fd1ee8c53133e9f0f5dc4dd094475bd8 HEAD", - "cd flatpak-node/tmp/node-mdns-js.git-1af6b83ce91e5538012f977e1dcadbda5dc0d3b5; git archive --format tar -o ../../yarn-mirror/node-mdns-js.git-1af6b83ce91e5538012f977e1dcadbda5dc0d3b5 HEAD", - "cd flatpak-node/tmp/node-dns-js.git-e5f0c3da63653398005bf36f66ad0b77770dcad6; git archive --format tar -o ../../yarn-mirror/node-dns-js.git-e5f0c3da63653398005bf36f66ad0b77770dcad6 HEAD", - "cd flatpak-node/tmp/node-mdns-js.git-1af6b83ce91e5538012f977e1dcadbda5dc0d3b5; git archive --format tar -o ../../yarn-mirror/node-mdns-js.git-1af6b83ce91e5538012f977e1dcadbda5dc0d3b5 HEAD", - "cd flatpak-node/tmp/node-mdns-js.git-1af6b83ce91e5538012f977e1dcadbda5dc0d3b5; git archive --format tar -o ../../yarn-mirror/node-mdns-js.git-1af6b83ce91e5538012f977e1dcadbda5dc0d3b5 HEAD", - "cd flatpak-node/tmp/node-dns-js.git-e5f0c3da63653398005bf36f66ad0b77770dcad6; git archive --format tar -o ../../yarn-mirror/node-dns-js.git-e5f0c3da63653398005bf36f66ad0b77770dcad6 HEAD", - "cd flatpak-node/tmp/electron-releases.git-199a1451fd1ee8c53133e9f0f5dc4dd094475bd8; git archive --format tar -o ../../yarn-mirror/electron-releases.git-199a1451fd1ee8c53133e9f0f5dc4dd094475bd8 HEAD", - "cd flatpak-node/tmp/node-mdns-js.git-1af6b83ce91e5538012f977e1dcadbda5dc0d3b5; git archive --format tar -o ../../yarn-mirror/node-mdns-js.git-1af6b83ce91e5538012f977e1dcadbda5dc0d3b5 HEAD", - "cd flatpak-node/tmp/node-dns-js.git-e5f0c3da63653398005bf36f66ad0b77770dcad6; git archive --format tar -o ../../yarn-mirror/node-dns-js.git-e5f0c3da63653398005bf36f66ad0b77770dcad6 HEAD", - "cd flatpak-node/tmp/electron-releases.git-199a1451fd1ee8c53133e9f0f5dc4dd094475bd8; git archive --format tar -o ../../yarn-mirror/electron-releases.git-199a1451fd1ee8c53133e9f0f5dc4dd094475bd8 HEAD", - "cd flatpak-node/tmp/electron-releases.git-199a1451fd1ee8c53133e9f0f5dc4dd094475bd8; git archive --format tar -o ../../yarn-mirror/electron-releases.git-199a1451fd1ee8c53133e9f0f5dc4dd094475bd8 HEAD", - "bash flatpak-node/setup_sdk_node_headers.sh" - ] - }, - { - "type": "shell", - "commands": [ - "mkdir -p \"httpsgithub.comelectronelectronreleasesdownloadv17.0.0electron-v17.0.0-linux-arm64.zip\"", - "ln -s \"../electron-v17.0.0-linux-arm64.zip\" \"httpsgithub.comelectronelectronreleasesdownloadv17.0.0electron-v17.0.0-linux-arm64.zip/electron-v17.0.0-linux-arm64.zip\"", - "mkdir -p \"dbd8fc4d3473df2ea591cc63bf1d944b47138489e384122e9dffcb2fe4046a38\"", - "ln -s \"../electron-v17.0.0-linux-arm64.zip\" \"dbd8fc4d3473df2ea591cc63bf1d944b47138489e384122e9dffcb2fe4046a38/electron-v17.0.0-linux-arm64.zip\"" - ], - "dest": "flatpak-node/cache/electron", - "only-arches": [ - "aarch64" - ] - }, - { - "type": "shell", - "commands": [ - "mkdir -p \"httpsgithub.comelectronelectronreleasesdownloadv17.0.0electron-v17.0.0-linux-armv7l.zip\"", - "ln -s \"../electron-v17.0.0-linux-armv7l.zip\" \"httpsgithub.comelectronelectronreleasesdownloadv17.0.0electron-v17.0.0-linux-armv7l.zip/electron-v17.0.0-linux-armv7l.zip\"", - "mkdir -p \"dbd8fc4d3473df2ea591cc63bf1d944b47138489e384122e9dffcb2fe4046a38\"", - "ln -s \"../electron-v17.0.0-linux-armv7l.zip\" \"dbd8fc4d3473df2ea591cc63bf1d944b47138489e384122e9dffcb2fe4046a38/electron-v17.0.0-linux-armv7l.zip\"" - ], - "dest": "flatpak-node/cache/electron", - "only-arches": [ - "arm" - ] - }, - { - "type": "shell", - "commands": [ - "mkdir -p \"httpsgithub.comelectronelectronreleasesdownloadv17.0.0electron-v17.0.0-linux-ia32.zip\"", - "ln -s \"../electron-v17.0.0-linux-ia32.zip\" \"httpsgithub.comelectronelectronreleasesdownloadv17.0.0electron-v17.0.0-linux-ia32.zip/electron-v17.0.0-linux-ia32.zip\"", - "mkdir -p \"dbd8fc4d3473df2ea591cc63bf1d944b47138489e384122e9dffcb2fe4046a38\"", - "ln -s \"../electron-v17.0.0-linux-ia32.zip\" \"dbd8fc4d3473df2ea591cc63bf1d944b47138489e384122e9dffcb2fe4046a38/electron-v17.0.0-linux-ia32.zip\"" - ], - "dest": "flatpak-node/cache/electron", - "only-arches": [ - "i386" - ] - }, - { - "type": "shell", - "commands": [ - "mkdir -p \"httpsgithub.comelectronelectronreleasesdownloadv17.0.0electron-v17.0.0-linux-x64.zip\"", - "ln -s \"../electron-v17.0.0-linux-x64.zip\" \"httpsgithub.comelectronelectronreleasesdownloadv17.0.0electron-v17.0.0-linux-x64.zip/electron-v17.0.0-linux-x64.zip\"", - "mkdir -p \"dbd8fc4d3473df2ea591cc63bf1d944b47138489e384122e9dffcb2fe4046a38\"", - "ln -s \"../electron-v17.0.0-linux-x64.zip\" \"dbd8fc4d3473df2ea591cc63bf1d944b47138489e384122e9dffcb2fe4046a38/electron-v17.0.0-linux-x64.zip\"" - ], - "dest": "flatpak-node/cache/electron", - "only-arches": [ - "x86_64" - ] - } -] \ No newline at end of file diff --git a/flatpak/org.cidercollective.cider.yml b/flatpak/org.cidercollective.cider.yml index 115af1ec..3a604b64 100644 --- a/flatpak/org.cidercollective.cider.yml +++ b/flatpak/org.cidercollective.cider.yml @@ -1,86 +1,67 @@ app-id: org.cidercollective.cider -branch: main runtime: org.freedesktop.Platform runtime-version: '21.08' sdk: org.freedesktop.Sdk -# Use the Electron 2 BaseApp, which adds several common libraries we'll need. base: org.electronjs.Electron2.BaseApp base-version: '21.08' -# Add the Node 10 SDK extension. -sdk-extensions: - - org.freedesktop.Sdk.Extension.node14 -# Electron doesn't use a traditional locale format so separate-locales is useless. -separate-locales: false command: cider +rename-desktop-file: cider.desktop +rename-icon: cider finish-args: - # These two lines add Xorg access for graphics. - - '--share=ipc' - - '--socket=x11' - # Sound access. - - '--socket=pulseaudio' - # Network access. - - '--share=network' - # If you need to access the filesystem, also add: - # - '--filesystem=home' + - --device=dri + - --filesystem=xdg-music + - --own-name=org.mpris.MediaPlayer2.Cider + - --share=ipc + - --share=network + - --socket=pulseaudio + # needs electron v11 (chromium v87) or newer with ozone enabled + # https://github.com/electron/electron/issues/10915 + # - --socket=wayland + - --socket=x11 + - --system-talk-name=org.freedesktop.UPower + - --talk-name=com.canonical.AppMenu.Registrar + - --talk-name=com.canonical.dbusmenu + - --talk-name=org.freedesktop.Notifications + - --talk-name=org.kde.StatusNotifierWatcher modules: - # With electron-webpack and electron-builder we don't install Node to /app/node, - # because electron-builder will bundle everything for us in one piece. - # Instead we jump straight to the quick start module. - - # However, since this quick start uses yarn, we do have to install that. - - name: yarn - buildsystem: simple - build-commands: - - 'cp -a * /app' - # Only used for building, so clean it up afterwards. - cleanup: - - '*' - sources: - - type: archive - url: https://github.com/yarnpkg/yarn/releases/download/v1.22.17/yarn-v1.22.17.tar.gz - sha256: 267982c61119a055ba2b23d9cf90b02d3d16c202c03cb0c3a53b9633eae37249 - - name: cider buildsystem: simple - build-options: - # Add the node bin directory & yarn directory. - append-path: '/usr/lib/sdk/node14/bin:/app/yarn/bin' - env: - # Set the Electron cache directory. - # (The directory format is: /run/build/MODULE_NAME/flatpak-node/electron-cache) - ELECTRON_CACHE: '/run/build/cider/flatpak-node/electron-cache' - XDG_CACHE_HOME: /run/build/cider/flatpak-node/cache - # Sets the directory where Node is located so way npm won't download the headers. - npm_config_nodedir: 'flatpak-node/node-gyp/electron-current' build-commands: - # Have Yarn use the offline mirror. - - 'HOME=$PWD yarn config --offline set yarn-offline-mirror $FLATPAK_BUILDER_BUILDDIR/flatpak-node/yarn-mirror' - # Download the packages - - 'cp cider-yarn.lock yarn.lock' - - 'yarn install --offline' - # If you were using npm with electron-webpack/electron-builder, then the above two commands - # would look more like the npm commands in the vanilla-quick-start manifest, just without - # the --prefix. - - # Run electron-builder, passing the architecture arguments to it. - # Note that the -- is important; without that, the argument will be passed to - # yarn instead of electron-builder. - - '. flatpak-node/electron-builder-arch-args.sh; yarn run --offline electron-builder build --linux dir -- $ELECTRON_BUILDER_ARCH_ARGS' - # Copy the resulting, unpacked directory to /app. - # (A glob is used because the directory name may contain the current arch.) - - 'cp -r dist/linux*unpacked /app/cider' - # If you passed --electron-non-patented-ffmpeg, you could install it like this: - # - 'install -Dm 755 flatpak-node/libffmpeg.so -t /app/electron-webpack-quick-start' - # Install the wrapper script to start it. - - 'install -Dm 755 cider.sh /app/bin/cider' + - install -dm755 ${FLATPAK_DEST}/cider + - | + bsdtar -Oxf cider.deb 'data.tar*' | + bsdtar -xf - \ + -C ${FLATPAK_DEST}/cider \ + --strip-components=3 \ + ./opt/Cider + - | + bsdtar -Oxf cider.deb 'data.tar*' | + bsdtar -xf - \ + -C ${FLATPAK_DEST} \ + --strip-components=2 \ + --exclude=./usr/share/doc \ + ./usr/share + - desktop-file-edit --set-key=Exec --set-value=cider ${FLATPAK_DEST}/share/applications/cider.desktop + - install -Dm755 stub_sandbox ${FLATPAK_DEST}/cider/chrome-sandbox + - install -Dm755 cider -t ${FLATPAK_DEST}/bin/ sources: - - type: git - url: https://github.com/ciderapp/cider - branch: develop - # Add the flatpak-node-generator generated sources. - - generated-sources.json - # Our runner script. + - type: file + dest-filename: cider.deb + url: https://1308-429851205-gh.circle-artifacts.com/0/~/Cider/dist/artifacts/cider_1.3.1308_amd64.deb + sha256: 342abde96bac9668e7238860ba435171edd72077ed9f4b385a3546c4d8f96995 + x-checker-data: + type: html + url: https://circleci.com/api/v1.1/project/gh/ciderapp/Cider/latest/artifacts?branch=main&filter=successful + pattern: (https://.*circle-artifacts.com/.+/cider_([\d\.]+)_amd64.deb) - type: script - dest-filename: cider.sh + dest-filename: cider commands: - - '/app/cider/cider' + # share chromium singleton between multiple session, needed for flatpak<1.11.1 + - export TMPDIR=$XDG_RUNTIME_DIR/app/$FLATPAK_ID + - exec zypak-wrapper /app/cider/cider "$@" + - type: script + dest-filename: stub_sandbox + commands: + - | + echo Stub sandbox ignoring command: $@ + exit 1 diff --git a/license.txt b/license.txt new file mode 100644 index 00000000..0ad25db4 --- /dev/null +++ b/license.txt @@ -0,0 +1,661 @@ + 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/package.json b/package.json index 657f87ec..3dbf52fc 100644 --- a/package.json +++ b/package.json @@ -2,12 +2,12 @@ "name": "cider", "applicationId": "Cider", "productName": "Cider", - "version": "1.1.0", + "version": "1.3.0", "description": "A new look into listening and enjoying music in style and performance.", "license": "AGPL-3.0", "main": "./build/index.js", "author": "Cider Collective (https://cider.sh)", - "repository": "https://github.com/ciderapp/Cider.git", + "repository": "github:ciderapp/Cider", "bugs": { "url": "https://github.com/ciderapp/Cider/issues?q=is%3Aopen+is%3Aissue+label%3Abug" }, @@ -16,62 +16,71 @@ "scripts": { "build": "tsc", "watch": "tsc --watch", - "test": "yarn build && playwright test", "start": "run-script-os", "start:win32": "yarn build && set ELECTRON_ENABLE_LOGGING=true && electron ./build/index.js --enable-accelerated-mjpeg-decode --enable-accelerated-video --disable-gpu-driver-bug-workarounds --ignore-gpu-blacklist --enable-native-gpu-memory-buffers", "start:linux": "yarn build && ELECTRON_ENABLE_LOGGING=true && electron ./build/index.js --enable-accelerated-mjpeg-decode --enable-accelerated-video --disable-gpu-driver-bug-workarounds --ignore-gpu-blacklist --enable-native-gpu-memory-buffers", "start:darwin": "yarn build && ELECTRON_ENABLE_LOGGING=true && electron ./build/index.js --enable-accelerated-mjpeg-decode --enable-accelerated-video --disable-gpu-driver-bug-workarounds --ignore-gpu-blacklist --enable-native-gpu-memory-buffers", + "start-renderer": "run-script-os", + "start-renderer:win32": "set ELECTRON_ENABLE_LOGGING=true && electron ./build/index.js --enable-accelerated-mjpeg-decode --enable-accelerated-video --disable-gpu-driver-bug-workarounds --ignore-gpu-blacklist --enable-native-gpu-memory-buffers", + "start-renderer:linux": "ELECTRON_ENABLE_LOGGING=true && electron ./build/index.js --enable-accelerated-mjpeg-decode --enable-accelerated-video --disable-gpu-driver-bug-workarounds --ignore-gpu-blacklist --enable-native-gpu-memory-buffers", + "start-renderer:darwin": "ELECTRON_ENABLE_LOGGING=true && electron ./build/index.js --enable-accelerated-mjpeg-decode --enable-accelerated-video --disable-gpu-driver-bug-workarounds --ignore-gpu-blacklist --enable-native-gpu-memory-buffers", "pack": "electron-builder --dir", "dist": "yarn build && electron-builder", - "dist:mac": "yarn build && electron-builder --mac --universal", + "dist:macarm": "yarn build && electron-builder --mac --arm64", + "dist:universalNotWorking": "yarn build && electron-builder --mac --universal", "dist:all": "yarn build && electron-builder -mwl", + "winget": "yarn build && electron-builder --win -c winget.json", "msft": "yarn build && electron-builder -c msft-package.json", "postinstall": "electron-builder install-app-deps", - "circle:append-bid": "node resources/appendCommitToVersion" + "circle:script": "node resources/circle" }, "dependencies": { - "@sentry/electron": "^2.5.4", - "@sentry/integrations": "^6.17.4", + "@sentry/electron": "^3.0.2", + "@sentry/integrations": "^6.18.1", + "adm-zip": "0.4.10", + "castv2-client": "^1.2.0", + "chokidar": "^3.5.3", "discord-rpc": "^4.0.1", "ejs": "^3.1.6", "electron-fetch": "^1.7.4", - "electron-log": "^4.4.5", + "electron-log": "^4.4.6", "electron-notarize": "^1.1.1", "electron-store": "^8.0.1", - "electron-updater": "^4.6.1", + "electron-updater": "^4.6.5", "electron-window-state": "^5.0.3", - "express": "^4.17.2", + "express": "^4.17.3", "get-port": "^5.1.1", "jsonc": "^2.0.0", "lastfmapi": "^0.1.1", - "mdns-js": "git+https://github.com/bitfocus/node-mdns-js.git", + "mdns-js": "git+https://github.com/ciderapp/node-mdns-js.git", "mpris-service": "^2.1.2", - "music-metadata": "^7.11.4", + "music-metadata": "^7.12.1", "node-gyp": "^8.4.1", + "node-ssdp": "^4.0.1", "qrcode": "^1.5.0", "react": "^17.0.2", "react-dom": "^17.0.2", "run-script-os": "^1.1.6", "source-map-support": "^0.5.21", - "typescript": "^4.5.5", "v8-compile-cache": "^2.3.0", - "ws": "^8.4.2", + "wallpaper": "5.0.1", + "ws": "^8.5.0", "xml2js": "^0.4.23", "youtube-search-without-api-key": "^1.0.7" }, "devDependencies": { - "@playwright/test": "^1.18.1", - "@types/discord-rpc": "^4.0.0", + "@types/discord-rpc": "4.0.0", "@types/express": "^4.17.13", "@types/qrcode-terminal": "^0.12.0", - "@types/ws": "^8.2.2", + "@types/ws": "^8.5.1", "electron": "git+https://github.com/castlabs/electron-releases.git", - "electron-builder": "^22.14.5", + "electron-builder": "^22.14.13", + "electron-builder-notarize-pkg": "^1.2.0", "electron-webpack": "^2.8.2", "musickit-typescript": "^1.2.4", - "playwright": "^1.18.1", + "typescript": "^4.6.2", "vue-devtools": "^5.1.4", - "webpack": "~5.65.0" + "webpack": "~5.69.1" }, "fileAssociations": [ { @@ -147,7 +156,31 @@ "perMachine": false, "allowToChangeInstallationDirectory": true, "license": "LICENSE", - "deleteAppDataOnUninstall": true + "deleteAppDataOnUninstall": true, + "artifactName": "${productName}-Setup-${version}.${ext}" + }, + "pkg": { + "installLocation": "/Applications", + "background": { + "file": "./resources/bg.png", + "alignment": "bottomleft", + "scaling": "tofit" + }, + "allowAnywhere": true, + "allowCurrentUserHome": true, + "allowRootDirectory": true, + "license": "./resources/license.txt", + "isVersionChecked": false, + "isRelocatable": false, + "overwriteAction": "upgrade" + }, + "dmg": { + "background": "./resources/bg.png", + "icon": "resources/icons/icon.ico" + }, + "mas": { + "entitlements": "./resources/entitlements.mac.plist", + "entitlementsInherit": "./resources/entitlements.mac.plist" }, "win": { "target": [ @@ -170,7 +203,6 @@ "target": [ "dmg" ] - }, - "artifactName": "${productName}.${ext}" + } } } diff --git a/resources/afterPack.js b/resources/afterPack.js index 6c677c49..55dcbc91 100644 --- a/resources/afterPack.js +++ b/resources/afterPack.js @@ -1,18 +1,31 @@ exports.default = function(context) { const { execSync } = require('child_process') + const fs = require('fs') if (process.platform !== 'darwin') return - + + if (fs.existsSync('dist/mac-universal--x64/Cider.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/Electron Framework.sig')) + fs.unlinkSync('dist/mac-universal--x64/Cider.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/Electron Framework.sig') + if (fs.existsSync('dist/mac-universal--arm64/Cider.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/Electron Framework.sig')) + fs.unlinkSync('dist/mac-universal--arm64/Cider.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/Electron Framework.sig') console.log('Castlabs-evs update start') execSync('python3 -m pip install --upgrade castlabs-evs') console.log('Castlabs-evs update complete') - + // xcode 13 + if (fs.existsSync('dist/mac-universal--x64') && fs.existsSync('dist/mac-universal--arm64')) + execSync("cp 'dist/mac-universal--x64/Cider.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/MainMenu.nib/keyedobjects-101300.nib' 'dist/mac-universal--arm64/Cider.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/MainMenu.nib/keyedobjects-101300.nib'",{stdio: 'inherit'}) console.log('VMP signing start') - + if (fs.existsSync('dist/mac-universal')) + execSync('python3 -m castlabs_evs.vmp -n sign-pkg dist/mac-universal',{stdio: 'inherit'}) + if (fs.existsSync('dist/mac')) execSync('python3 -m castlabs_evs.vmp -n sign-pkg dist/mac',{stdio: 'inherit'}) + if (fs.existsSync('dist/mac-arm64')) + execSync('python3 -m castlabs_evs.vmp -n sign-pkg dist/mac-arm64 -z',{stdio: 'inherit'}) + if (fs.existsSync('dist/mac-x64')) + execSync('python3 -m castlabs_evs.vmp -n sign-pkg dist/mac-x64',{stdio: 'inherit'}) console.log('VMP signing complete') } \ No newline at end of file diff --git a/resources/appendCommitToVersion.js b/resources/appendCommitToVersion.js deleted file mode 100644 index ef40f330..00000000 --- a/resources/appendCommitToVersion.js +++ /dev/null @@ -1,21 +0,0 @@ -if (!process.env['CIRCLECI']) { - console.log(`[CIRCLECI SCRIPT] CircleCI not found... Aborting script`) - return -} - -let fs = require('fs') - -var data = fs.readFileSync('package.json'); -var package = JSON.parse(data); - -pvers = package.version.match(/\d+\./g) - -// https://circleci.com/docs/2.0/env-vars/#built-in-environment-variables -package.version = `${pvers[0]}${pvers[1]}${process.env['CIRCLE_BUILD_NUM']}` - - -fs.writeFile('package.json', JSON.stringify(package), err => { - // error checking - if(err) throw err; - console.log("VERSION CHANGED"); -}); diff --git a/resources/bg.png b/resources/bg.png new file mode 100644 index 00000000..049f0b16 Binary files /dev/null and b/resources/bg.png differ diff --git a/resources/circle.js b/resources/circle.js new file mode 100644 index 00000000..dcf1d0ef --- /dev/null +++ b/resources/circle.js @@ -0,0 +1,53 @@ + + +if (!process.env['CIRCLECI']) { + console.log(`[CIRCLECI SCRIPT] CircleCI not found... Aborting script`) + return +} + +let fs = require('fs') + + +var data = fs.readFileSync('package.json'); +var package = JSON.parse(data); + + + +let channel; +if (process.env['CIRCLE_BRANCH'] === 'lts') { + channel = 'latest' +} else if (process.env['CIRCLE_BRANCH'] === 'main') { + channel = 'beta' +} else if (process.env['CIRCLE_BRANCH'] === 'develop') { + channel = 'alpha' +} else { + channel = process.env['CIRCLE_BRANCH'] // It won't have auto update support +} + + + +// https://circleci.com/docs/2.0/env-vars/#built-in-environment-variables +var pvers = package.version.split('.') +package.version = `${pvers[0]}.${pvers[1]}.${pvers[2]}-${channel}.${process.env['CIRCLE_BUILD_NUM']}` +// package.build.channel = channel +package.publish = { + "provider": "github", + "repo": "cider-releases", + "owner": "ciderapp", + "vPrefixedTagName": true, + "tag": `v${package.version}`, + "channel": channel, + "releaseType": "release" +} + +let {exec} = require('child_process') +exec('echo $APP_VERSION', {env: {'APP_VERSION': package.version}}, function (error, stdout, stderr) +{ + console.log(stdout, stderr, error); +}); +fs.writeFile('package.json', JSON.stringify(package), err => { + // error checking + if(err) throw err; + console.log(`VERSION CHANGED TO ${package.version}`); +}); + diff --git a/resources/icons/icon.icns b/resources/icons/icon.icns index 2325c333..4276a463 100644 Binary files a/resources/icons/icon.icns and b/resources/icons/icon.icns differ diff --git a/resources/license.json b/resources/license.json new file mode 100644 index 00000000..8274931d --- /dev/null +++ b/resources/license.json @@ -0,0 +1,11 @@ +{ + "$schema": "https://github.com/argv-minus-one/dmg-license/raw/master/schema.json", + "body": [ + { + "file": "license.txt", + "lang": ["en-US"] + } + ] + + +} \ No newline at end of file diff --git a/resources/license.txt b/resources/license.txt new file mode 100644 index 00000000..0ad25db4 --- /dev/null +++ b/resources/license.txt @@ -0,0 +1,661 @@ + 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/resources/macPackager.js b/resources/macPackager.js new file mode 100644 index 00000000..24d56d81 --- /dev/null +++ b/resources/macPackager.js @@ -0,0 +1,399 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const bluebird_lst_1 = require("bluebird-lst"); +const builder_util_1 = require("builder-util"); +const electron_osx_sign_1 = require("electron-osx-sign"); +const promises_1 = require("fs/promises"); +const lazy_val_1 = require("lazy-val"); +const path = require("path"); +const fs_1 = require("builder-util/out/fs"); +const promise_1 = require("builder-util/out/promise"); +const appInfo_1 = require("./appInfo"); +const macCodeSign_1 = require("./codeSign/macCodeSign"); +const core_1 = require("./core"); +const platformPackager_1 = require("./platformPackager"); +const ArchiveTarget_1 = require("./targets/ArchiveTarget"); +const pkg_1 = require("./targets/pkg"); +const targetFactory_1 = require("./targets/targetFactory"); +const macosVersion_1 = require("./util/macosVersion"); +const pathManager_1 = require("./util/pathManager"); +const fs = require("fs/promises"); +class MacPackager extends platformPackager_1.PlatformPackager { + constructor(info) { + super(info, core_1.Platform.MAC); + this.codeSigningInfo = new lazy_val_1.Lazy(() => { + const cscLink = this.getCscLink(); + if (cscLink == null || process.platform !== "darwin") { + return Promise.resolve({ keychainFile: process.env.CSC_KEYCHAIN || null }); + } + return macCodeSign_1.createKeychain({ + tmpDir: this.info.tempDirManager, + cscLink, + cscKeyPassword: this.getCscPassword(), + cscILink: platformPackager_1.chooseNotNull(this.platformSpecificBuildOptions.cscInstallerLink, process.env.CSC_INSTALLER_LINK), + cscIKeyPassword: platformPackager_1.chooseNotNull(this.platformSpecificBuildOptions.cscInstallerKeyPassword, process.env.CSC_INSTALLER_KEY_PASSWORD), + currentDir: this.projectDir, + }).then(result => { + const keychainFile = result.keychainFile; + if (keychainFile != null) { + this.info.disposeOnBuildFinish(() => macCodeSign_1.removeKeychain(keychainFile)); + } + return result; + }); + }); + this._iconPath = new lazy_val_1.Lazy(() => this.getOrConvertIcon("icns")); + } + get defaultTarget() { + return this.info.framework.macOsDefaultTargets; + } + // eslint-disable-next-line @typescript-eslint/no-unused-vars + prepareAppInfo(appInfo) { + return new appInfo_1.AppInfo(this.info, this.platformSpecificBuildOptions.bundleVersion, this.platformSpecificBuildOptions); + } + async getIconPath() { + return this._iconPath.value; + } + createTargets(targets, mapper) { + for (const name of targets) { + switch (name) { + case core_1.DIR_TARGET: + break; + case "dmg": { + // eslint-disable-next-line @typescript-eslint/no-var-requires + const { DmgTarget } = require("dmg-builder"); + mapper(name, outDir => new DmgTarget(this, outDir)); + break; + } + case "zip": + // https://github.com/electron-userland/electron-builder/issues/2313 + mapper(name, outDir => new ArchiveTarget_1.ArchiveTarget(name, outDir, this, true)); + break; + case "pkg": + mapper(name, outDir => new pkg_1.PkgTarget(this, outDir)); + break; + default: + mapper(name, outDir => (name === "mas" || name === "mas-dev" ? new targetFactory_1.NoOpTarget(name) : targetFactory_1.createCommonTarget(name, outDir, this))); + break; + } + } + } + async doPack(outDir, appOutDir, platformName, arch, platformSpecificBuildOptions, targets) { + switch (arch) { + default: { + return super.doPack(outDir, appOutDir, platformName, arch, platformSpecificBuildOptions, targets); + } + case builder_util_1.Arch.universal: { + const x64Arch = builder_util_1.Arch.x64; + const x64AppOutDir = appOutDir + "--" + builder_util_1.Arch[x64Arch]; + await super.doPack(outDir, x64AppOutDir, platformName, x64Arch, platformSpecificBuildOptions, targets, false, true); + const arm64Arch = builder_util_1.Arch.arm64; + const arm64AppOutPath = appOutDir + "--" + builder_util_1.Arch[arm64Arch]; + await super.doPack(outDir, arm64AppOutPath, platformName, arm64Arch, platformSpecificBuildOptions, targets, false, true); + const framework = this.info.framework; + builder_util_1.log.info({ + platform: platformName, + arch: builder_util_1.Arch[arch], + [`${framework.name}`]: framework.version, + appOutDir: builder_util_1.log.filePath(appOutDir), + }, `packaging`); + const appFile = `${this.appInfo.productFilename}.app`; + const { makeUniversalApp } = require("@electron/universal"); + await makeUniversalApp({ + x64AppPath: path.join(x64AppOutDir, appFile), + arm64AppPath: path.join(arm64AppOutPath, appFile), + outAppPath: path.join(appOutDir, appFile), + force: true, + }); + await fs.rm(x64AppOutDir, { recursive: true, force: true }); + await fs.rm(arm64AppOutPath, { recursive: true, force: true }); + const packContext = { + appOutDir, + outDir, + arch, + targets, + packager: this, + electronPlatformName: platformName, + } + await this.info.afterPack(packContext) + if (framework.afterPack != null) { + await framework.afterPack(packContext) + } + await this.doSignAfterPack(outDir, appOutDir, platformName, arch, platformSpecificBuildOptions, targets); + break; + } + } + } + async pack(outDir, arch, targets, taskManager) { + let nonMasPromise = null; + const hasMas = targets.length !== 0 && targets.some(it => it.name === "mas" || it.name === "mas-dev"); + const prepackaged = this.packagerOptions.prepackaged; + if (!hasMas || targets.length > 1) { + const appPath = prepackaged == null ? path.join(this.computeAppOutDir(outDir, arch), `${this.appInfo.productFilename}.app`) : prepackaged; + nonMasPromise = (prepackaged + ? Promise.resolve() + : this.doPack(outDir, path.dirname(appPath), this.platform.nodeName, arch, this.platformSpecificBuildOptions, targets)).then(() => this.packageInDistributableFormat(appPath, arch, targets, taskManager)); + } + for (const target of targets) { + const targetName = target.name; + if (!(targetName === "mas" || targetName === "mas-dev")) { + continue; + } + const masBuildOptions = builder_util_1.deepAssign({}, this.platformSpecificBuildOptions, this.config.mas); + if (targetName === "mas-dev") { + builder_util_1.deepAssign(masBuildOptions, this.config.masDev, { + type: "development", + }); + } + const targetOutDir = path.join(outDir, `${targetName}${builder_util_1.getArchSuffix(arch)}`); + if (prepackaged == null) { + await this.doPack(outDir, targetOutDir, "mas", arch, masBuildOptions, [target]); + await this.sign(path.join(targetOutDir, `${this.appInfo.productFilename}.app`), targetOutDir, masBuildOptions, arch); + } + else { + await this.sign(prepackaged, targetOutDir, masBuildOptions, arch); + } + } + if (nonMasPromise != null) { + await nonMasPromise; + } + } + async sign(appPath, outDir, masOptions, arch) { + if (!macCodeSign_1.isSignAllowed()) { + return; + } + const isMas = masOptions != null; + const options = masOptions == null ? this.platformSpecificBuildOptions : masOptions; + const qualifier = options.identity; + if (!isMas && qualifier === null) { + if (this.forceCodeSigning) { + throw new builder_util_1.InvalidConfigurationError("identity explicitly is set to null, but forceCodeSigning is set to true"); + } + builder_util_1.log.info({ reason: "identity explicitly is set to null" }, "skipped macOS code signing"); + return; + } + const keychainFile = (await this.codeSigningInfo.value).keychainFile; + const explicitType = options.type; + const type = explicitType || "distribution"; + const isDevelopment = type === "development"; + const certificateTypes = getCertificateTypes(isMas, isDevelopment); + let identity = null; + for (const certificateType of certificateTypes) { + identity = await macCodeSign_1.findIdentity(certificateType, qualifier, keychainFile); + if (identity != null) { + break; + } + } + if (identity == null) { + if (!isMas && !isDevelopment && explicitType !== "distribution") { + identity = await macCodeSign_1.findIdentity("Mac Developer", qualifier, keychainFile); + if (identity != null) { + builder_util_1.log.warn("Mac Developer is used to sign app — it is only for development and testing, not for production"); + } + } + if (identity == null) { + await macCodeSign_1.reportError(isMas, certificateTypes, qualifier, keychainFile, this.forceCodeSigning); + return; + } + } + if (!macosVersion_1.isMacOsHighSierra()) { + throw new builder_util_1.InvalidConfigurationError("macOS High Sierra 10.13.6 is required to sign"); + } + let filter = options.signIgnore; + if (Array.isArray(filter)) { + if (filter.length == 0) { + filter = null; + } + } + else if (filter != null) { + filter = filter.length === 0 ? null : [filter]; + } + const filterRe = filter == null ? null : filter.map(it => new RegExp(it)); + let binaries = options.binaries || undefined; + if (binaries) { + // Accept absolute paths for external binaries, else resolve relative paths from the artifact's app Contents path. + const userDefinedBinaries = await Promise.all(binaries.map(async (destination) => { + if (await fs_1.statOrNull(destination)) { + return destination; + } + return path.resolve(appPath, destination); + })); + // Insert at front to prioritize signing. We still sort by depth next + binaries = userDefinedBinaries.concat(binaries); + builder_util_1.log.info("Signing addtional user-defined binaries: " + JSON.stringify(userDefinedBinaries, null, 1)); + } + const signOptions = { + "identity-validation": false, + // https://github.com/electron-userland/electron-builder/issues/1699 + // kext are signed by the chipset manufacturers. You need a special certificate (only available on request) from Apple to be able to sign kext. + ignore: (file) => { + if (filterRe != null) { + for (const regExp of filterRe) { + if (regExp.test(file)) { + return true; + } + } + } + return (file.endsWith(".kext") || + file.startsWith("/Contents/PlugIns", appPath.length) || + file.includes("/node_modules/puppeteer/.local-chromium") || + file.includes("/node_modules/playwright-firefox/.local-browsers") || + file.includes("/node_modules/playwright/.local-browsers")); + /* Those are browser automating modules, browser (chromium, nightly) cannot be signed + https://github.com/electron-userland/electron-builder/issues/2010 + https://github.com/electron-userland/electron-builder/issues/5383 + */ + }, + identity: identity, + type, + platform: isMas ? "mas" : "darwin", + version: this.config.electronVersion, + app: appPath, + keychain: keychainFile || undefined, + binaries, + timestamp: isMas ? masOptions === null || masOptions === void 0 ? void 0 : masOptions.timestamp : options.timestamp, + requirements: isMas || this.platformSpecificBuildOptions.requirements == null ? undefined : await this.getResource(this.platformSpecificBuildOptions.requirements), + // https://github.com/electron-userland/electron-osx-sign/issues/196 + // will fail on 10.14.5+ because a signed but unnotarized app is also rejected. + "gatekeeper-assess": options.gatekeeperAssess === true, + // https://github.com/electron-userland/electron-builder/issues/1480 + "strict-verify": options.strictVerify, + hardenedRuntime: isMas ? masOptions && masOptions.hardenedRuntime === true : options.hardenedRuntime !== false, + }; + await this.adjustSignOptions(signOptions, masOptions); + builder_util_1.log.info({ + file: builder_util_1.log.filePath(appPath), + identityName: identity.name, + identityHash: identity.hash, + provisioningProfile: signOptions["provisioning-profile"] || "none", + }, "signing"); + await this.doSign(signOptions); + // https://github.com/electron-userland/electron-builder/issues/1196#issuecomment-312310209 + if (masOptions != null && !isDevelopment) { + const certType = isDevelopment ? "Mac Developer" : "3rd Party Mac Developer Installer"; + const masInstallerIdentity = await macCodeSign_1.findIdentity(certType, masOptions.identity, keychainFile); + if (masInstallerIdentity == null) { + throw new builder_util_1.InvalidConfigurationError(`Cannot find valid "${certType}" identity to sign MAS installer, please see https://electron.build/code-signing`); + } + // mas uploaded to AppStore, so, use "-" instead of space for name + const artifactName = this.expandArtifactNamePattern(masOptions, "pkg", arch); + const artifactPath = path.join(outDir, artifactName); + await this.doFlat(appPath, artifactPath, masInstallerIdentity, keychainFile); + await this.dispatchArtifactCreated(artifactPath, null, builder_util_1.Arch.x64, this.computeSafeArtifactName(artifactName, "pkg", arch, true, this.platformSpecificBuildOptions.defaultArch)); + } + } + async adjustSignOptions(signOptions, masOptions) { + const resourceList = await this.resourceList; + const customSignOptions = masOptions || this.platformSpecificBuildOptions; + const entitlementsSuffix = masOptions == null ? "mac" : "mas"; + let entitlements = customSignOptions.entitlements; + if (entitlements == null) { + const p = `entitlements.${entitlementsSuffix}.plist`; + if (resourceList.includes(p)) { + entitlements = path.join(this.info.buildResourcesDir, p); + } + else { + entitlements = pathManager_1.getTemplatePath("entitlements.mac.plist"); + } + } + signOptions.entitlements = entitlements; + let entitlementsInherit = customSignOptions.entitlementsInherit; + if (entitlementsInherit == null) { + const p = `entitlements.${entitlementsSuffix}.inherit.plist`; + if (resourceList.includes(p)) { + entitlementsInherit = path.join(this.info.buildResourcesDir, p); + } + else { + entitlementsInherit = pathManager_1.getTemplatePath("entitlements.mac.plist"); + } + } + signOptions["entitlements-inherit"] = entitlementsInherit; + if (customSignOptions.provisioningProfile != null) { + signOptions["provisioning-profile"] = customSignOptions.provisioningProfile; + } + signOptions["entitlements-loginhelper"] = customSignOptions.entitlementsLoginHelper; + } + //noinspection JSMethodCanBeStatic + async doSign(opts) { + return electron_osx_sign_1.signAsync(opts); + } + //noinspection JSMethodCanBeStatic + async doFlat(appPath, outFile, identity, keychain) { + // productbuild doesn't created directory for out file + await promises_1.mkdir(path.dirname(outFile), { recursive: true }); + const args = pkg_1.prepareProductBuildArgs(identity, keychain); + args.push("--component", appPath, "/Applications"); + args.push(outFile); + return await builder_util_1.exec("productbuild", args); + } + getElectronSrcDir(dist) { + return path.resolve(this.projectDir, dist, this.info.framework.distMacOsAppName); + } + getElectronDestinationDir(appOutDir) { + return path.join(appOutDir, this.info.framework.distMacOsAppName); + } + // todo fileAssociations + async applyCommonInfo(appPlist, contentsPath) { + const appInfo = this.appInfo; + const appFilename = appInfo.productFilename; + // https://github.com/electron-userland/electron-builder/issues/1278 + appPlist.CFBundleExecutable = appFilename.endsWith(" Helper") ? appFilename.substring(0, appFilename.length - " Helper".length) : appFilename; + const icon = await this.getIconPath(); + if (icon != null) { + const oldIcon = appPlist.CFBundleIconFile; + const resourcesPath = path.join(contentsPath, "Resources"); + if (oldIcon != null) { + await fs_1.unlinkIfExists(path.join(resourcesPath, oldIcon)); + } + const iconFileName = "icon.icns"; + appPlist.CFBundleIconFile = iconFileName; + await fs_1.copyFile(icon, path.join(resourcesPath, iconFileName)); + } + appPlist.CFBundleName = appInfo.productName; + appPlist.CFBundleDisplayName = appInfo.productName; + const minimumSystemVersion = this.platformSpecificBuildOptions.minimumSystemVersion; + if (minimumSystemVersion != null) { + appPlist.LSMinimumSystemVersion = minimumSystemVersion; + } + appPlist.CFBundleIdentifier = appInfo.macBundleIdentifier; + appPlist.CFBundleShortVersionString = this.platformSpecificBuildOptions.bundleShortVersion || appInfo.version; + appPlist.CFBundleVersion = appInfo.buildVersion; + builder_util_1.use(this.platformSpecificBuildOptions.category || this.config.category, it => (appPlist.LSApplicationCategoryType = it)); + appPlist.NSHumanReadableCopyright = appInfo.copyright; + if (this.platformSpecificBuildOptions.darkModeSupport) { + appPlist.NSRequiresAquaSystemAppearance = false; + } + const extendInfo = this.platformSpecificBuildOptions.extendInfo; + if (extendInfo != null) { + Object.assign(appPlist, extendInfo); + } + } + async signApp(packContext, isAsar) { + const appFileName = `${this.appInfo.productFilename}.app`; + await bluebird_lst_1.default.map(promises_1.readdir(packContext.appOutDir), (file) => { + if (file === appFileName) { + return this.sign(path.join(packContext.appOutDir, file), null, null, null); + } + return null; + }); + if (!isAsar) { + return; + } + const outResourcesDir = path.join(packContext.appOutDir, "resources", "app.asar.unpacked"); + await bluebird_lst_1.default.map(promise_1.orIfFileNotExist(promises_1.readdir(outResourcesDir), []), (file) => { + if (file.endsWith(".app")) { + return this.sign(path.join(outResourcesDir, file), null, null, null); + } + else { + return null; + } + }); + } +} +exports.default = MacPackager; +function getCertificateTypes(isMas, isDevelopment) { + if (isDevelopment) { + return isMas ? ["Mac Developer", "Apple Development"] : ["Developer ID Application"]; + } + return isMas ? ["Apple Distribution"] : ["Developer ID Application"]; +} +//# sourceMappingURL=macPackager.js.map \ No newline at end of file diff --git a/resources/verror-types b/resources/verror-types new file mode 100644 index 00000000..07cfb21d --- /dev/null +++ b/resources/verror-types @@ -0,0 +1,77 @@ +// Type definitions for verror 1.10 +// Project: https://github.com/davepacheco/node-verror +// Definitions by: Sven Reglitzki , Maxime Toumi-M +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/* + * VError([cause], fmt[, arg...]): Like JavaScript's built-in Error class, but + * supports a "cause" argument (another error) and a printf-style message. The + * cause argument can be null or omitted entirely. + * + * Examples: + * + * CODE MESSAGE + * new VError('something bad happened') "something bad happened" + * new VError('missing file: "%s"', file) "missing file: "/etc/passwd" + * with file = '/etc/passwd' + * new VError(err, 'open failed') "open failed: file not found" + * with err.message = 'file not found' + */ +declare class VError extends Error { + static VError: typeof VError; + + static cause(err: Error): Error | null; + static info(err: Error): VError.Info; + static fullStack(err: Error): string; + static findCauseByName(err: Error, name: string): Error | null; + static hasCauseWithName(err: Error, name: string): boolean; + static errorFromList(errors: T[]): null | T | VError.MultiError; + static errorForEach(err: Error, func: (err: Error) => void): void; + + //@ts-ignore + cause(): Error | undefined; + constructor(options: VError.Options | Error, message: string, ...params: any[]); + constructor(message?: string, ...params: any[]); +} + +declare namespace VError { + interface Info { + [key: string]: any; + } + + interface Options { + cause?: Error | null | undefined; + name?: string | undefined; + strict?: boolean | undefined; + constructorOpt?(...args: any[]): void; + info?: Info | undefined; + } + + /* + * SError is like VError, but stricter about types. You cannot pass "null" or + * "undefined" as string arguments to the formatter. Since SError is only a + * different function, not really a different class, we don't set + * SError.prototype.name. + */ + class SError extends VError {} + + /* + * Represents a collection of errors for the purpose of consumers that generally + * only deal with one error. Callers can extract the individual errors + * contained in this object, but may also just treat it as a normal single + * error, in which case a summary message will be printed. + */ + class MultiError extends VError { + constructor(errors: Error[]); + errors(): Error[]; + } + + /* + * Like JavaScript's built-in Error class, but supports a "cause" argument which + * is wrapped, not "folded in" as with VError. Accepts a printf-style message. + * The cause argument can be null. + */ + class WError extends VError {} +} + +export = VError; \ No newline at end of file diff --git a/src/i18n/README.md b/src/i18n/README.md index 1f5d47d4..8689d0b4 100644 --- a/src/i18n/README.md +++ b/src/i18n/README.md @@ -1,4 +1,4 @@ -# Cider i18n +# Cider i18n Notices & Changelog Some notes about Cider's i18n support. @@ -9,6 +9,26 @@ Some notes about Cider's i18n support. - Most of the strings in the content area are provided and translated by Apple themselves, and do not need to be translated. - The language Apple Music uses are dependent on the storefront region. +# Multiple Plural Forms + +Multiple plural forms can be supported as below: + +The keys and its meanings are here : https://github.com/prantlf/fast-plural-rules/blob/master/docs/languages.md#supported-languages + +For example , English is in Plural rule #1 and has 2 keys ```one``` and ```other``` + +Russian is in Plural rule #7 (3 forms) : ```one```, ```few``` and ```other``` + +How it is implemented for English: + +``` + "term.track": { + "one" : "track", + "other" : "tracks" + }, +``` + + ## Localization Notices @@ -21,7 +41,7 @@ been modified, the ones not mentioned in the list need modifying. * `term.sharedPlaylists`: "Shared Playlists" - Added for `en_US`. * `term.people`: "People" - Added for `en_US`. -Updated 02/02/2022 17:16 UTC +Update 02/02/2022 17:16 UTC * `term.newpreset.name`: Added for `en_US`. * `term.addedpreset`: Added for `en_US`. @@ -38,7 +58,7 @@ Updated 02/02/2022 17:16 UTC * `action.newpreset`: Added for `en_US`. * `action.deletepreset`: Added for `en_US`. -Updated 04/02/2022 10:00 UTC +Update 04/02/2022 10:00 UTC * `term.history`: Added for `en_US`. * `action.copy`: Added for `en_US`. @@ -64,4 +84,116 @@ Update 06/02/2022 10:35 UTC * `settings.header.audio.quality.high.description`: Added for `en_US`. * `settings.header.audio.quality.auto`: Removed as default for MusicKit is 256. * `settings.header.audio.quality.standard`: Replaced `settings.header.audio.quality.low` to match MusicKit naming. -* `settings.header.audio.quality.standard.description`: Added for `en_US`. \ No newline at end of file +* `settings.header.audio.quality.standard.description`: Added for `en_US`. + +Update 08/02/2022 10:20 UTC + +* `settings.option.general.updateCider`: Added for `en_US`. +* `settings.option.general.updateCider.branch`: Added for `en_US`. +* `settings.option.general.updateCider.branch.description`: Added for `en_US`. +* `settings.option.general.updateCider.branch.main`: Added for `en_US`. +* `settings.option.general.updateCider.branch.develop`: Added for `en_US`. +* `settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength`: Added for `en_US`. +* `settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description`: Added for `en_US`. +* `settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard`: Added for `en_US`. +* `settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive`: Added for `en_US`. +* `settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility`: Added for `en_US`. +* `settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility`: Added for `en_US`. +* `term.requestError`: Added for `en_US`. +* `term.song.link.generate`: Added for `en_US`. + +Update 10/02/2022 05:58 UTC + +* `term.sortBy.dateAdded`: Added for `en_US`. + +Update 12/02/2022 12:00 UTC + +* Added support for multiple plural forms. [Details](#multiple-plural-forms) +* `term.version`: Added for `en_US`. +* `settings.option.visual.theme.github.download`: Added for `en_US`. +* `settings.prompt.visual.theme.github.URL`: Added for `en_US`. +* `settings.notyf.visual.theme.install.success`: Added for `en_US`. +* `settings.notyf.visual.theme.install.error`: Added for `en_US`. +* `term.defaultPresets`: Added for `en_US`. +* `term.userPresets`: Added for `en_US`. + +Update 16/02/2022 21:45 UTC + +* `term.audioControls`: Added for `en_US`. +* `settings.option.audio.volumeStep`: Added for `en_US`. +* `settings.option.audio.maxVolume`: Added for `en_US`.` + +Update 17/02/2022 10:00 UTC + ++ `settings.header.debug`: Added for `en_US`. ++ `settings.option.debug.copy_log`: Replaces `settings.option.experimental.copy_log`. ++ `settings.option.debug.openAppData`: Added for `en_US` ++ `action.open`: Added for `en_US` + +Update 19/2/2022 21:00 UTC + +* `term.noVideos`: Added for `en_US` +* `term.plugin`: Added for `en_US` +* `term.pluginMenu`: Added for `en_US` +* `term.replay`: Added for `en_US` +* `term.uniqueAlbums`: Added for `en_US` +* `term.uniqueArtists`: Added for `en_US` +* `term.uniqueSongs`: Added for `en_US` +* `term.topArtists`: Added for `en_US` +* `term.listenedTo`: Added for `en_US` +* `term.times`: Added for `en_US` +* `term.topAlbums`: Added for `en_US` +* `term.plays`: Added for `en_US` +* `term.topGenres`: Added for `en_US` +* `action.install`: Added for `en_US` +* `settings.option.general.resumebehavior`: Added for `en_US` +* `settings.option.general.resumebehavior.description`: Added for `en_US` +* `settings.option.general.resumebehavior.locally`: Added for `en_US` +* `settings.option.general.resumebehavior.locally.description`: Added for `en_US` +* `settings.option.general.resumebehavior.history`: Added for `en_US` +* `settings.option.general.resumebehavior.history.description`: Added for `en_US` +* `settings.option.audio.audioLab`: Added for `en_US` +* `settings.option.audio.audioLab.description`: Added for `en_US` +* `settings.warn.audioLab.withoutAF`: Added for `en_US` +* `settings.option.audio.enableAdvancedFunctionality.analogWarmth`: Added for `en_US` +* `settings.option.audio.enableAdvancedFunctionality.analogWarmth.description`: Added for `en_US` +* `settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity`: Added for `en_US` +* `settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.description`: Added for `en_US` +* `settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth`: Added for `en_US` +* `settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm`: Added for `en_US` +* `settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization`: Added for `en_US` +* `settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description`: Added for `en_US` +* `settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile`: Added for `en_US` +* `settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description`: Added for `en_US` +* `settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard`: Added for `en_US` +* `settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile`: Added for `en_US` +* `settings.header.visual.theme.github.page`: Added for `en_US` +* `settings.option.visual.theme.github.explore`: Added for `en_US` +* `settings.option.visual.theme.github.install.confirm`: Added for `en_US` +* `settings.option.experimental.unknownPlugin`: Added for `en_US` +* `settings.option.experimental.unknownPlugin.description`: Added for `en_US` + +Update 25/02/2022 15:30 UTC + +* `action.moveToTop`: Changed to `Move out of Folder` instead of `Move to top` + +Update 27/02/2022 18:30 UTC + +* `settings.notyf.updateCider.update-not-available`: Added for `en_US` +* `settings.notyf.updateCider.update-timeout`: Added for `en_US` +* `settings.notyf.updateCider.update-downloaded`: Added for `en_US` +* `settings.notyf.updateCider.update-error`: Added for `en_US` + +Update 28/02/2022 13:00 UTC + +* `term.time.days`: Added for `en_US` +* `term.time.day`: Added for `en_US` + +Update 10/3/2022 14:00 UTC +* `settings.header.window`: Added for `en_US` +* `settings.header.window.description`: Added for `en_US` +* `settings.option.window.openOnStartup`: Added for `en_US` +* `settings.option.window.openOnStartup.hidden`: Added for `en_US` + +Update 20/3/2022 00:01 UTC +* `term.creditDesignedBy`: Added for `en_US` \ No newline at end of file diff --git a/src/i18n/cz_CZ.json b/src/i18n/cz_CZ.json new file mode 100644 index 00000000..64c0e9b5 --- /dev/null +++ b/src/i18n/cz_CZ.json @@ -0,0 +1,309 @@ +{ + "i18n.languageName": "ČeÅĄtina (CZ)", + "i18n.languageNameEnglish": "Czech (CZ)", + "i18n.category": "main", + "i18n.authors": "@matuskoOk", + "app.name": "Cider", + "date.format": "${d} ${m}, ${y}", + "dialog.cancel": "ZruÅĄit", + "dialog.ok": "OK", + "notification.updatingLibrarySongs": "Aktualizace skladeb v knihovně...", + "notification.updatingLibraryAlbums": "Aktualizace alb knihovny...", + "notification.updatingLibraryArtists": "Aktualizace umělců knihovny...", + "term.appleInc": "Apple Inc.", + "term.appleMusic": "Apple Music", + "term.applePodcasts": "Apple Podcasts", + "term.itunes": "iTunes", + "term.github": "GitHub", + "term.discord": "Discord", + "term.learnMore": "Zjistěte více", + "term.accountSettings": "Nastavení Ãēčtu", + "term.logout": "OdhlÃĄsit se", + "term.login": "PřihlÃĄsit se", + "term.about": "About", + "term.privateSession": "SoukromÃĄ relace", + "term.queue": "Fronta", + "term.history": "Historie", + "term.search": "VyhledÃĄvÃĄní", + "term.library": "Knihovna", + "term.listenNow": "Poslouchejte hned", + "term.browse": "ProchÃĄzet", + "term.radio": "RÃĄdio", + "term.recentlyAdded": "NedÃĄvno přidanÊ", + "term.songs": "Písně", + "term.albums": "Alba", + "term.artists": "Umělci", + "term.podcasts": "Podcasty", + "term.playlists": "Playlists", + "term.playlist": "Playlist", + "term.newPlaylist": "NovÃŊ seznam playlistu", + "term.newPlaylistFolder": "NovÃĄ sloÅžka playlistov", + "term.createNewPlaylist": "Vytvořit novÃŊ seznam playlistov", + "term.createNewPlaylistFolder": "Vytvořit novÃŊ seznam playlist sloÅžka", + "term.deletePlaylist": "Opravdu chcete tento playlist smazat?", + "term.play": "Play", + "term.pause": "Pause", + "term.previous": "Předchozí", + "term.next": "DalÅĄÃ­", + "term.shuffle": "Zamíchat", + "term.repeat": "Repeat", + "term.volume": "HlasitosÅĨ", + "term.mute": "Mute", + "term.unmute": "Ztlumit", + "term.share": "Zdílet", + "term.share.success": "ZkopírovÃĄno do clipboard", + "term.settings": "Nastavení", + "term.seeAll": "Vidět vÅĄe", + "term.sortBy": "Seřazeno podle", + "term.sortBy.album": "Album", + "term.sortBy.artist": "Umělec", + "term.sortBy.name": "NÃĄzev", + "term.sortBy.genre": "ÅŊÃĄnr", + "term.sortBy.releaseDate": "Datum vydÃĄní", + "term.sortBy.duration": "Doba trvÃĄní", + "term.sortOrder": "A-Z", + "term.sortOrder.ascending": "Vzestupně", + "term.sortOrder.descending": "Klesající", + "term.viewAs": "Zobrazit jako", + "term.viewAs.coverArt": "ObÃĄlka Art", + "term.viewAs.list": "Seznam", + "term.size": "Velikost", + "term.size.normal": "NormÃĄlní", + "term.size.compact": "Kompaktní", + "term.enable": "Zapnout", + "term.disable": "Vypnout", + "term.enabled": "Zapnuto", + "term.disabled": "Vypnuto", + "term.connect": "Připojit", + "term.connecting": "PřipojovÃĄní", + "term.disconnect": "Odpojit", + "term.authed": "Ověřeno", + "term.confirm": "Potvrdit?", + "term.more": "Více", + "term.less": "MÊně", + "term.showMore": "Zobrazit více", + "term.showLess": "UkaÅž mÊně", + "term.topSongs": "NejlepÅĄÃ­ skladby", + "term.latestReleases": "NejnovějÅĄÃ­ verze", + "term.time.added": "PřidanÊ", + "term.time.released": "VydÃĄno", + "term.time.updated": "AktualizovÃĄno", + "term.time.hours": "hodin", + "term.time.hour": "hodina", + "term.time.minutes": "minut", + "term.time.minute": "minuta", + "term.time.seconds": "sekundy", + "term.time.second": "sekunda", + "term.fullscreenView": "Zobrazení na celou obrazovku", + "term.defaultView": "VÃŊchozí zobrazení", + "term.audioSettings": "Nastavení zvuku", + "term.clearAll": "Vymazat vÅĄe", + "term.recentStations": "NedÃĄvnÊ stanice", + "term.language": "Jazyk", + "term.funLanguages": "ZÃĄbava", + "term.noLyrics": "NačítÃĄní... / Text nenalezen./ InstrumentÃĄlní.", + "term.copyright": "AutorskÃĄ prÃĄva", + "term.rightsReserved": "VÅĄechna prÃĄva vyhrazena.", + "term.sponsor": "Sponzorujte tento projekt", + "term.ciderTeam": "Cider TÃŊm", + "term.developer": "VÃŊvojÃĄÅ™", + "term.socialTeam": "SociÃĄlní tÃŊm", + "term.socials": "Socials", + "term.contributors": "PřispěvatelÊ", + "term.equalizer": "EkvalizÊr", + "term.reset": "Resetovat", + "term.tracks": "tracks", + "term.videos": "Videa", + "term.menu": "Menu", + "term.check": "Zkontrolovat", + "term.aboutArtist": "O {{artistName}}", + "term.topResult": "NejlepÅĄÃ­ vÃŊsledek", + "term.sharedPlaylists": "SdílenÃŊ Playlists", + "term.people": "LidÊ", + "term.newpreset.name": "NÃĄzev novÊ předvolby EQ", + "term.addedpreset": "PřidÃĄna předvolba", + "term.deletepreset.warn": "Opravdu chcete tuto předvolbu smazat?", + "term.deletedpreset": "Předvolba byla odstraněna", + "term.musicVideos": "Hudební videa", + "term.stations": "Stanice", + "term.curators": "KurÃĄtoři", + "term.appleCurators": "Apple Curators", + "term.radioShows": "RozhlasovÊ pořady", + "term.recordLabels": "NahrÃĄvací ÅĄtítky", + "term.videoExtras": "Video Extra", + "term.top": "Top", + "home.title": "Domů", + "home.recentlyPlayed": "NedÃĄvno hranÊ", + "home.recentlyAdded": "NedÃĄvno přidanÊ", + "home.artistsFeed": "VÃĄÅĄ kanÃĄl umělců", + "home.artistsFeed.noArtist": "Nejprve sledujte některÊ umělce a jejich nejnovějÅĄÃ­ verze budou zde", + "home.madeForYou": "UdělÃĄno pro tebe", + "home.friendsListeningTo": "PÅ™ÃĄtelÊ Poslouchají", + "home.followedArtists": "SledovanÊ umělce", + "error.appleMusicSubRequired": "Apple Music vyÅžaduje předplatnÊ.", + "error.connectionError": "DoÅĄlo k problÊmu s připojením k Apple Music.", + "error.noResults": "ÅŊÃĄdnÊ vÃŊsledky.", + "error.noResults.description": "Zkuste novÊ vyhledÃĄvÃĄní.", + "podcast.followOnCider": "Sledujte Na Cider", + "podcast.followedOnCider": "Sledujete Na Cider", + "podcast.subscribeOnItunes": "Předplatit na iTunes", + "podcast.subscribedOnItunes": "Předplaceno na iTunes", + "podcast.itunesStore": "iTunes Store", + "podcast.episodes": "Epizody", + "podcast.playEpisode": "PřehrÃĄt epizodu", + "podcast.website": "WebovÃĄ strÃĄnka podcastun ", + "action.addToLibrary": "Přidat do knihovny", + "action.addToLibrary.success": "PřidÃĄno do knihovny", + "action.addToLibrary.error": "Chyba při přidÃĄvÃĄní do knihovny", + "action.removeFromLibrary": "Odebrat z knihovny", + "action.removeFromLibrary.success": "OdebrÃĄno z knihovny", + "action.addToQueue": "Přidat do fronty", + "action.addToQueue.success": "PřidÃĄno do fronty", + "action.addToQueue.error": "Chyba při přidÃĄvÃĄní do fronty", + "action.removeFromQueue": "Odebrat z fronty", + "action.removeFromQueue.success": "OdebrÃĄno z fronty", + "action.removeFromQueue.error": "Chyba při odstraňovÃĄní z fronty", + "action.createPlaylist": "Vytvoř novÃŊ Playlist", + "action.addToPlaylist": "Přidat do Playlist", + "action.removeFromPlaylist": "Odstranit z Playlist", + "action.addToFavorites": "Přidat k oblíbenÃŊm", + "action.follow": "Sledovat", + "action.follow.success": "SledujeÅĄ", + "action.follow.error": "Chyba sledovÃĄní", + "action.unfollow": "Přestat sledovat", + "action.unfollow.success": "NesledovÃĄno", + "action.unfollow.error": "Chyba při zruÅĄení sledovÃĄní", + "action.playNext": "Play DalÅĄÃ­", + "action.playLater": "Play Později", + "action.startRadio": "Start RÃĄdio", + "action.goToArtist": "Přejít na Umělec", + "action.goToAlbum": "Přejděte do alba", + "action.moveToTop": "Přesunout nahoru", + "action.share": "Sdílet", + "action.rename": "Přejmenovat", + "action.love": "Milovat", + "action.unlove": "Nemilovat", + "action.dislike": "Dislike", + "action.undoDislike": "Undo dislike", + "action.showWebRemoteQR": "Web Remote", + "action.playTracksNext": "Play ${app.selectedMediaItems.length} tracks next", + "action.playTracksLater": "Play ${app.selectedMediaItems.length} tracks later", + "action.removeTracks": "Odstranit ${self.selectedItems.length} tracks from queue", + "action.import": "ImportovaÅĨ", + "action.export": "ExportovaÅĨ", + "action.showAlbum": "Zobrazit kompletní album", + "action.tray.minimize": "Minimalizovat do liÅĄty", + "action.tray.quit": "Přestat", + "action.tray.show": "UkÃĄzat", + "action.update": "Aktualizace", + "action.copy": "kopírovat", + "action.newpreset": "NovÃĄ předvolba...", + "action.deletepreset": "Smazat předvolbu", + "settings.header.general": "VÅĄeobecnÊ", + "settings.header.general.description": "Upravte obecnÃĄ nastavení pro Cider.", + "settings.option.general.language": "Jazyk", + "settings.option.general.language.main": "Jazyky", + "settings.option.general.language.fun": "ZÃĄbavnÊ jazyky", + "settings.option.general.language.unsorted": "Neřazeno", + "settings.option.general.updateCider": "Aktualizujte Cider", + "settings.option.general.updateCider.branch": "Pobočka aktualizace cideru", + "settings.option.general.updateCider.branch.description": "Vyberte pobočku, do kterÊ chcete Cider aktualizovat", + "settings.option.general.updateCider.branch.main": "Stabilní", + "settings.option.general.updateCider.branch.develop": "Rozvoj", + "settings.header.audio": "Zvuk", + "settings.header.audio.description": "Upravte nastavení zvuku pro Cider.", + "settings.option.audio.quality": "Kvalita zvuku", + "settings.header.audio.quality.hireslossless": "Hi-Res Lossless", + "settings.header.audio.quality.hireslossless.description": "aÅž 24-bit/192 kHz", + "settings.header.audio.quality.lossless": "Lossless", + "settings.header.audio.quality.lossless.description": "aÅž 24-bit/48 kHz", + "settings.header.audio.quality.high": "VysokÊ", + "settings.header.audio.quality.high.description": "256 kbps", + "settings.header.audio.quality.standard": "Standard", + "settings.header.audio.quality.standard.description": "64 kbps", + "settings.option.audio.seamlessTransition": "PlynulÃŊ přechod zvuku", + "settings.option.audio.enableAdvancedFunctionality": "Povolit pokročilÊ funkce", + "settings.option.audio.enableAdvancedFunctionality.description": "Povolení funkce AudioContext umoÅžní rozÅĄÃ­Å™enÊ zvukovÊ funkce, jako je normalizace zvuku, ekvalizÊry a vizualizÊry, ale na některÃŊch systÊmech to můŞe způsobit zadrhÃĄvÃĄní ve zvukovÃŊch stopÃĄch.", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processorâ„ĸī¸", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "PsychoakustickÃĄ vylepÅĄení, díky nimÅž vÅĄe zní bohatěji a Åživěji.", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "Síla CAP", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Změní sílu zpracovÃĄní zvuku. (Agresivita můŞe vÊst k neÅžÃĄdoucím vÃŊsledkům)", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Standard", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Agresivní", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalizace zvuku", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalizuje ÅĄpičkovou hlasitost pro jednotlivÊ stopy a vytvÃĄÅ™Ã­ jednotnějÅĄÃ­ zÃĄÅžitek z poslechu.", + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Prostorovost zvuku", + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Prostorově upravte zvuk a udělejte zvuk více 3-rozměrnÃŊ (poznÃĄmka: Toto není Dolby Atmos)", + "settings.header.visual": "VizuÃĄlní", + "settings.header.visual.description": "Upravte vizuÃĄlní nastavení pro Cider.", + "settings.option.visual.windowBackgroundStyle": "Styl pozadí okna", + "settings.header.visual.windowBackgroundStyle.none": "ÅŊÃĄdnÃŊ", + "settings.header.visual.windowBackgroundStyle.artwork": "UměleckÊ dílo", + "settings.header.visual.windowBackgroundStyle.image": "obraz", + "settings.option.visual.animatedArtwork": "AnimovanÊ uměleckÊ dílo", + "settings.header.visual.animatedArtwork.always": "VÅždy", + "settings.header.visual.animatedArtwork.limited": "Omezeno na strÃĄnky a speciÃĄlní poloÅžky", + "settings.header.visual.animatedArtwork.disable": "ZakÃĄzat vÅĄude", + "settings.option.visual.animatedArtworkQuality": "Kvalita animovanÊho uměleckÊho díla", + "settings.header.visual.animatedArtworkQuality.low": "NízkÃŊ", + "settings.header.visual.animatedArtworkQuality.medium": "Střední", + "settings.header.visual.animatedArtworkQuality.high": "VysokÃŊ", + "settings.header.visual.animatedArtworkQuality.veryHigh": "Velmi vysokÃŊ", + "settings.header.visual.animatedArtworkQuality.extreme": "ExtrÊmní", + "settings.option.visual.animatedWindowBackground": "AnimovanÊ pozadí okna", + "settings.option.visual.hardwareAcceleration": "HardwarovÃĄ akcelerace", + "settings.option.visual.hardwareAcceleration.description": "VyÅžaduje opětovnÊ spuÅĄtění", + "settings.header.visual.hardwareAcceleration.default": "VÃŊchozí", + "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", + "settings.header.visual.theme": "TÊma", + "settings.option.visual.theme.default": "Cider", + "settings.option.visual.theme.dark": "TemnÃŊ", + "settings.option.visual.showPersonalInfo": "Zobrazit osobní Ãēdaje", + "settings.header.lyrics": "Text", + "settings.header.lyrics.description": "Upravte nastavení textů pro Cider.", + "settings.option.lyrics.enableMusixmatch": "Povolit texty Musixmatch", + "settings.option.lyrics.enableMusixmatchKaraoke": "Povolit reÅžim karaoke (pouze Musixmatch)", + "settings.option.lyrics.musixmatchPreferredLanguage": "PreferovanÃŊ jazyk překladu Musixmatch", + "settings.option.lyrics.enableYoutubeLyrics": "Povolit texty YouTube pro hudební videa", + "settings.header.connectivity": "Konektivita", + "settings.header.connectivity.description": "Upravte nastavení připojení pro Cider.", + "settings.option.connectivity.discordRPC": "Discord Rich Presence", + "settings.option.connectivity.playbackNotifications": "OznÃĄmení o přehrÃĄvÃĄní", + "settings.header.connectivity.discordRPC.cider": "Zobrazit jako 'Cider'", + "settings.header.connectivity.discordRPC.appleMusic": "Zobrazit jako 'Apple Music'", + "settings.option.connectivity.discordRPC.clearOnPause": "Vymazat Discord Rich Presence on Pause", + "settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling", + "settings.option.connectivity.lastfmScrobble.delay": "Last.fm Scrobble Delay (%)", + "settings.option.connectivity.lastfmScrobble.nowPlaying": "Povolit Last.fm Now Playing", + "settings.option.connectivity.lastfmScrobble.removeFeatured": "Odebrat z nÃĄzvu písně vystupující interprety (Last.fm)", + "settings.option.connectivity.lastfmScrobble.filterLoop": "FiltrovanÃĄ stopa ve smyčce (Last.fm)", + "settings.header.experimental": "ExperimentÃĄlní", + "settings.header.experimental.description": "Upravte experimentÃĄlní nastavení pro Cider.", + "settings.option.experimental.compactUI": "Kompaktní uÅživatelskÊ rozhraní", + "settings.option.window.close_button_hide": "Tlačítko Zavřít by mělo aplikaci skrÃŊt", + "settings.option.experimental.copy_log": "Zkopírujte protokoly do clipboard", + "settings.option.experimental.inline_playlists": "VloÅženÊ seznamy skladeb a alba", + "spatial.notTurnedOn": "ProstorovÃĄ funkce zvuku je zakÃĄzÃĄna. Chcete-li jej pouŞívat, nejprve jej povolte.", + "spatial.spatialProperties": "ProstorovÊ vlastnosti", + "spatial.width": "Šířka", + "spatial.height": "VÃŊÅĄka", + "spatial.depth": "Hloubka", + "spatial.gain": "Získat", + "spatial.roomMaterials": "MateriÃĄly místnosti", + "spatial.roomDimensions": "Rozměry místnosti", + "spatial.roomPositions": "Pozice místností", + "spatial.setDimensions": "Nastavit rozměry", + "spatial.setPositions": "Nastavení pozici", + "spatial.up": "Nahoru", + "spatial.front": "Přední", + "spatial.left": "Vlevo", + "spatial.right": "Pravo", + "spatial.back": "Zadní", + "spatial.down": "Dolů", + "spatial.listener": "Posluchač", + "spatial.audioSource": "Zdroj zvuku", + "settings.header.unfinished": "NedokončenÃŊ", + "remote.web.title": "Cider Remote", + "remote.web.description": "Naskenujte QR kÃŗd a spÃĄrujte svůj telefon s touto instancí Cider", + "about.thanks": "VelkÊ poděkovÃĄní patří tÃŊmu Cider Collective Team a vÅĄem naÅĄim přispěvatelům." +} \ No newline at end of file diff --git a/src/i18n/de_DE.jsonc b/src/i18n/de_DE.json similarity index 61% rename from src/i18n/de_DE.jsonc rename to src/i18n/de_DE.json index b5ef5017..e1c1a708 100644 --- a/src/i18n/de_DE.jsonc +++ b/src/i18n/de_DE.json @@ -1,25 +1,15 @@ -{ // Base File - - // i18n Info - "i18n.languageName": "Deutsch", // name of language in native language - "i18n.languageNameEnglish": "German", // name of language in English - "i18n.category": "main", // main = real language, fun = fun community languages - "i18n.authors": "@motz0815", // Authors, if you contribute to this file feel free to add your name seperated with a space - - // App info +{ + "i18n.languageName": "Deutsch", + "i18n.languageNameEnglish": "German", + "i18n.category": "main", + "i18n.authors": "@motz0815 @n0chteil", "app.name": "Cider", - "date.format": "${d}.${m}.${y}", - - // Dialogs "dialog.cancel": "Abbrechen", "dialog.ok": "OK", - - // Notification "notification.updatingLibrarySongs": "Aktualisiere Songs...", "notification.updatingLibraryAlbums": "Aktualisiere Alben...", "notification.updatingLibraryArtists": "Aktualisiere KÃŧnstler...", - // Terms "term.appleInc": "Apple Inc.", "term.appleMusic": "Apple Music", "term.applePodcasts": "Apple Podcasts", @@ -33,6 +23,7 @@ "term.about": "Über", "term.privateSession": "Private Sitzung", "term.queue": "Warteschlange", + "term.history": "Verlauf", "term.search": "Suche", "term.library": "Mediathek", "term.listenNow": "Jetzt HÃļren", @@ -45,7 +36,12 @@ "term.podcasts": "Podcasts", "term.playlists": "Playlists", "term.playlist": "Playlist", - "term.play": "Play", + "term.newPlaylist": "Neue Playlist", + "term.newPlaylistFolder": "Neuer Playlist-Ordner", + "term.createNewPlaylist": "Neue Playlist erstellen", + "term.createNewPlaylistFolder": "Neuen Playlist-Ordner erstellen", + "term.deletePlaylist": "Bist du sicher, dass du diese Playlist lÃļschen willst?", + "term.play": "Wiedergabe", "term.pause": "Pause", "term.previous": "ZurÃŧck", "term.next": "Weiter", @@ -55,6 +51,7 @@ "term.mute": "Stummschalten", "term.unmute": "Stummschaltung aufheben", "term.share": "Teilen", + "term.share.success": "In die Zwischenablage kopiert", "term.settings": "Einstellungen", "term.seeAll": "Alle Sehen", "term.sortBy": "Sortieren nach", @@ -64,6 +61,7 @@ "term.sortBy.genre": "Genre", "term.sortBy.releaseDate": "VerÃļffentlichungsdatum", "term.sortBy.duration": "Länge", + "term.sortBy.dateAdded": "HinzugefÃŧgt am", "term.sortOrder": "A-Z", "term.sortOrder.ascending": "Aufsteigend", "term.sortOrder.descending": "Absteigend", @@ -81,15 +79,15 @@ "term.connecting": "Verbindet", "term.disconnect": "Trennen", "term.authed": "Autorisiert", - "term.confirm": "Bestätigen ?", + "term.confirm": "Bestätigen?", "term.more": "Mehr", "term.less": "Weniger", - "term.showMore": "Zeige mehr", - "term.showLess": "Zeige weniger", - "term.topSongs" : "Top Songs", + "term.showMore": "Mehr anzeigen", + "term.showLess": "Weniger anzeigen", + "term.topSongs": "Top Songs", "term.latestReleases": "Letzte VerÃļffentlichungen", "term.time.added": "HinzugefÃŧgt", - "term.time.released": "VerÃļffentlicht", + "term.time.released": "VerÃļffentlicht", "term.time.updated": "Aktualisiert", "term.time.hours": "Stunden", "term.time.hour": "Stunde", @@ -99,27 +97,48 @@ "term.time.second": "Sekunde", "term.fullscreenView": "Vollbildansicht", "term.defaultView": "Normale Ansicht", + "term.audioSettings": "Audio-Einstellungen", "term.spacializedAudioSetting": "Räumliches Audio", "term.clearAll": "Alle lÃļschen", - "term.recentStations": "Letzte Stationen", + "term.recentStations": "Letzte Sender", "term.language": "Sprache", "term.funLanguages": "Spaß", - "term.noLyrics": "Lädt... / Liedtext nicht gefunden./ Instrumental.", + "term.noLyrics": "Lädt... / Lyrik nicht gefunden./ Instrumental.", "term.copyright": "Copyright", - "term.rightsReserved": "All Rights Reserved.", + "term.rightsReserved": "Alle Rechte vorbehalten.", "term.sponsor": "UnterstÃŧtze dieses Projekt", "term.ciderTeam": "Cider Team", "term.developer": "Entwickler", "term.socialTeam": "Social Team", + "term.socials": "Soziale Medien", "term.contributors": "Mithelfer", "term.equalizer": "Equalizer", "term.reset": "ZurÃŧcksetzen", - "term.tracks": "Lieder", // Assume x amount of tracks. e.g. 50 tracks - "term.videos": "Videos", + "term.tracks": "Lieder", + "term.videos": "Videos", "term.menu": "MenÃŧ", - "action.showAlbum": "Zeige ganzes Album", - - // Home + "term.check": "Nach Updates suchen", + "term.aboutArtist": "Über {{artistName}}", + "term.topResult": "Bestes Ergebnis", + "term.sharedPlaylists": "Geteilte Playlists", + "term.people": "Personen", + "term.newpreset.name": "Neuer EQ-Preset Name", + "term.addedpreset": "Preset erstellt", + "term.deletepreset.warn": "Bist du sicher, dass du dieses Preset lÃļschen willst?", + "term.deletedpreset": "Preset gelÃļscht", + "term.defaultPresets": "Standard-Presets", + "term.userPresets": "Nutzer-Presets", + "term.requestError": "Es gab ein Problem bei der Anfrage.", + "term.song.link.generate": "song.link URL wird gesucht...", + "term.musicVideos": "Musikvideos", + "term.stations": "Radiosender", + "term.curators": "Kuratoren", + "term.appleCurators": "Apple-Kuratoren", + "term.radioShows": "Radiosendungen", + "term.recordLabels": "Plattenfirma", + "term.videoExtras": "Video-Extras", + "term.top": "Beste", + "term.version": "Version", "home.title": "Home", "home.recentlyPlayed": "Zuletzt gespielt", "home.recentlyAdded": "Zuletzt hinzugefÃŧgt", @@ -128,13 +147,10 @@ "home.madeForYou": "FÃŧr dich gemacht", "home.friendsListeningTo": "Freunde hÃļren", "home.followedArtists": "Gefolgte KÃŧnstler", - // Errors "error.appleMusicSubRequired": "Apple Music benÃļtigt ein Abonnement.", - "error.connectionError": "Es ist ein Fehler aufgetreten, während sich mit Apple Music verbunden wurde.", + "error.connectionError": "Es gab ein Problem beim Verbinden mit Apple Music.", "error.noResults": "Keine Ergebnisse.", "error.noResults.description": "Versuche einen anderen Suchbegriff.", - - //Podcasts "podcast.followOnCider": "Folge auf Cider", "podcast.followedOnCider": "Gefolgt auf Cider", "podcast.subscribeOnItunes": "Folge auf iTunes", @@ -143,8 +159,6 @@ "podcast.episodes": "Episoden", "podcast.playEpisode": "Spiele Episode", "podcast.website": "Podcast Webseite", - - // Actions "action.addToLibrary": "Zur Mediathek hinzufÃŧgen", "action.addToLibrary.success": "Zur Mediathek hinzugefÃŧgt", "action.addToLibrary.error": "Fehler beim HinzufÃŧgen zur Mediathek", @@ -156,6 +170,7 @@ "action.removeFromQueue": "Aus Warteschlange entfernen", "action.removeFromQueue.success": "Aus Warteschlange entfernt", "action.removeFromQueue.error": "Fehler beim Entfernen aus der Warteschlange", + "action.createPlaylist": "Neue Playlist erstellen", "action.addToPlaylist": "Zur Playlist hinzufÃŧgen", "action.removeFromPlaylist": "Aus Playlist entfernen", "action.addToFavorites": "Zu Favoriten hinzufÃŧgen", @@ -183,117 +198,123 @@ "action.removeTracks": "Entferne ${self.selectedItems.length} Lieder aus der Warteschlange", "action.import": "Importieren", "action.export": "Exportieren", - - // Settings - General + "action.showAlbum": "Ganzes Album anzeigen", + "action.tray.minimize": "Zu Tray minimieren", + "action.tray.quit": "Beenden", + "action.tray.show": "{appName} anzeigen", + "action.update": "Update", + "action.copy": "Kopieren", + "action.newpreset": "Neues Preset", + "action.deletepreset": "Preset lÃļschen", "settings.header.general": "Allgemein", "settings.header.general.description": "Passe die allgemeinen Einstellungen fÃŧr Cider an.", "settings.option.general.language": "Sprache", - - // Language optgroups "settings.option.general.language.main": "Sprachen", "settings.option.general.language.fun": "Lustige Sprachen", "settings.option.general.language.unsorted": "Unsortiert", - - // Settings - Audio + "settings.option.general.updateCider": "Cider updaten", + "settings.option.general.updateCider.branch": "Update-Branch", + "settings.option.general.updateCider.branch.description": "Der Branch, von welchem Cider geupdatet werden soll", + "settings.option.general.updateCider.branch.main": "Stabil", + "settings.option.general.updateCider.branch.develop": "Entwicklung", "settings.header.audio": "Audio", "settings.header.audio.description": "Passe die Audio-Einstellungen fÃŧr Cider an.", - "settings.option.audio.quality": "Audioqualität", // Dropdown + "settings.option.audio.quality": "Audioqualität", + "settings.header.audio.quality.hireslossless": "Hi-Res Lossless", + "settings.header.audio.quality.hireslossless.description": "bis zu 24-bit/192 kHz", + "settings.header.audio.quality.lossless": "Lossless", + "settings.header.audio.quality.lossless.description": "bis zu 24-bit/48 kHz", "settings.header.audio.quality.high": "Hoch", - "settings.header.audio.quality.low": "Niedrig", - "settings.header.audio.quality.auto": "Auto", - "settings.option.audio.seamlessTransition": "Nahtloser AudioÃŧbergang", // Toggle - "settings.option.audio.enableAdvancedFunctionality": "Akiviere erweiterte Funktionalität", // Toggle + "settings.header.audio.quality.standard": "Standard", + "settings.option.audio.seamlessTransition": "Nahtloser AudioÃŧbergang", + "settings.option.audio.enableAdvancedFunctionality": "Akiviere erweiterte Funktionalität", "settings.option.audio.enableAdvancedFunctionality.description": "Das Aktivieren der erweiterten Funktionalität ermÃļglicht spezielle Features wie Audio-Normalisierung, Equalizer und Visualizer, jedoch kÃļnnte dies auf einigen Systemen zu Aussetzern in der Musik fÃŧhren.", - "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audio-Normalisierung", // Toggle + "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processorâ„ĸī¸", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Psychoakustische Verbesserungen die die Musik lebensechter erscheinen lassen.", + "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP ist nicht mit räumlichem Audio kompatibel. Bitte deaktiviere räumliches Audio zuerst.", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP-Stärke", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Ändert die Stärke der Nachbearbeitung. (Aggressiv kÃļnnte zu ungewÃŧnschten Änderungen fÃŧhren)", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Standard", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Aggressiv", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audio-Normalisierung", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalisiert die Lautstärke aller Lieder, um die HÃļrerfahrung einheitlicher zu machen.", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Räumliches Audio", // Toggle + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Räumliches Audio", "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Macht die Musik räumlicher (3D-Effekt) (Beachte: Dies ist kein Dolby Atmos)", - // Settings - Visual - "settings.header.visual": "Visuell", + "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "Räumliches Audio ist nicht mit CAP kompatibel. Bitte deaktiviere CAP zuerst.", + "settings.header.visual": "Visuell", "settings.header.visual.description": "Passe die visuellen Einstellungen fÃŧr Cider an.", - "settings.option.visual.windowBackgroundStyle": "Fensterhintergrund-Stil", // Toggle + "settings.option.visual.windowBackgroundStyle": "Fensterhintergrund-Stil", "settings.header.visual.windowBackgroundStyle.none": "Keiner", "settings.header.visual.windowBackgroundStyle.artwork": "Coverbild", "settings.header.visual.windowBackgroundStyle.image": "Bild", - "settings.option.visual.animatedArtwork": "Animiertes Coverbild", // Dropdown + "settings.option.visual.animatedArtwork": "Animiertes Coverbild", "settings.header.visual.animatedArtwork.always": "Immer", "settings.header.visual.animatedArtwork.limited": "Beschränkt auf Seiten und Spezialeinträge", "settings.header.visual.animatedArtwork.disable": "Überall deaktivieren", - "settings.option.visual.animatedArtworkQuality": "Qualität des Animierten Coverbilds", // Dropdown + "settings.option.visual.animatedArtworkQuality": "Qualität des Animierten Coverbilds", "settings.header.visual.animatedArtworkQuality.low": "Niedrig", "settings.header.visual.animatedArtworkQuality.medium": "Mittel", "settings.header.visual.animatedArtworkQuality.high": "Hoch", "settings.header.visual.animatedArtworkQuality.veryHigh": "Sehr hoch", "settings.header.visual.animatedArtworkQuality.extreme": "Extrem", - "settings.option.visual.animatedWindowBackground": "Animierter Fensterhintergrund", // Toggle - "settings.option.visual.hardwareAcceleration": "Hardware-Beschleunigung", // Dropdown + "settings.option.visual.animatedWindowBackground": "Animierter Fensterhintergrund", + "settings.option.visual.hardwareAcceleration": "Hardware-Beschleunigung", "settings.option.visual.hardwareAcceleration.description": "Erfordert Neustart der Anwendung", - "settings.header.visual.hardwareAcceleration.default": "Normal", - "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", - // Refer to term.disabled for the disabled option - "settings.option.visual.showPersonalInfo": "PersÃļnliche Daten anzeigen", // Toggle - - // Settings - Lyrics + "settings.header.visual.hardwareAcceleration.default": "Normal", + "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", + "settings.header.visual.theme": "Theme", + "settings.option.visual.theme.github.download": "Von GitHub URL installieren", + "settings.prompt.visual.theme.github.URL": "Gib die URL des Themes ein, welches du installieren mÃļchtest", + "settings.notyf.visual.theme.install.success": "Theme erfolgreich installiert", + "settings.notyf.visual.theme.install.error": "Theme-Installation fehlgeschlagen", + "settings.option.visual.theme.default": "Cider", + "settings.option.visual.theme.dark": "Dunkel", + "settings.option.visual.showPersonalInfo": "PersÃļnliche Daten anzeigen", "settings.header.lyrics": "Liedtext", "settings.header.lyrics.description": "Passe die Liedtext-Einstellungen fÃŧr Cider an.", - "settings.option.lyrics.enableMusixmatch": "Aktiviere Musixmatch-Liedtexte", // Toggle - "settings.option.lyrics.enableMusixmatchKaraoke": "Aktiviere Karaoke-Modus (nur mit Musixmatch)", // Toggle - "settings.option.lyrics.musixmatchPreferredLanguage": "Bevorzugte Sprache fÃŧr Musixmatch-Übersetzung", // Dropdown - "settings.option.lyrics.enableYoutubeLyrics": "Aktiviere YouTube-Liedtexte fÃŧr Musikvideos", // Toggle - - // Settings - Connectivity + "settings.option.lyrics.enableMusixmatch": "Aktiviere Musixmatch-Liedtexte", + "settings.option.lyrics.enableMusixmatchKaraoke": "Aktiviere Karaoke-Modus (nur mit Musixmatch)", + "settings.option.lyrics.musixmatchPreferredLanguage": "Bevorzugte Sprache fÃŧr Musixmatch-Übersetzung", + "settings.option.lyrics.enableYoutubeLyrics": "Aktiviere YouTube-Liedtexte fÃŧr Musikvideos", "settings.header.connectivity": "Konnektivität", "settings.header.connectivity.description": "Passe die Konnektivitäts-Einstellungen fÃŧr Cider an.", - "settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown - "settings.option.connectivity.playbackNotifications": "Wiedergabe-Benachrichtigungen", // Toggle - // Refer to term.disabled for the disabled option - "settings.header.connectivity.discordRPC.cider": "Zeige als 'Cider'", - "settings.header.connectivity.discordRPC.appleMusic": "Zeige als 'Apple Music'", - "settings.option.connectivity.discordRPC.clearOnPause": "Leere Discord Rich Presence wenn pausiert", // Toggle - "settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling", // Option to Connect - "settings.option.connectivity.lastfmScrobble.delay": "LastFM Scrobble Delay (%)", - "settings.option.connectivity.lastfmScrobble.nowPlaying": "Aktiviere LastFM Jetzt spielend", - "settings.option.connectivity.lastfmScrobble.removeFeatured": "Entferne KÃŧnstler-Featuring von Liedtitel (LastFM)", - "settings.option.connectivity.lastfmScrobble.filterLoop": "Filtere gelooptes Lied (LastFM)", - // Refer to term.connect for the connect button - - // Settings - Experimental + "settings.option.connectivity.discordRPC": "Discord Rich Presence", + "settings.option.connectivity.playbackNotifications": "Wiedergabe-Benachrichtigungen", + "settings.header.connectivity.discordRPC.cider": "'Cider' anzeigen", + "settings.header.connectivity.discordRPC.appleMusic": "'Apple Music' anzeigen", + "settings.option.connectivity.discordRPC.clearOnPause": "Leere Discord Rich Presence wenn pausiert", + "settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling", + "settings.option.connectivity.lastfmScrobble.delay": "LastFM Scrobble Delay (%)", + "settings.option.connectivity.lastfmScrobble.nowPlaying": "Aktiviere LastFM Jetzt spielend", + "settings.option.connectivity.lastfmScrobble.removeFeatured": "Entferne KÃŧnstler-Featuring von Liedtitel (LastFM)", + "settings.option.connectivity.lastfmScrobble.filterLoop": "Filtere gelooptes Lied (LastFM)", "settings.header.experimental": "Experimentell", "settings.header.experimental.description": "Passe die experimentellen Einstellungen fÃŧr Cider an.", - "settings.option.experimental.compactUI": "Kompaktes UI", // Toggle - "settings.option.experimental.closeButtonBehaviour": "Verhalten der Schließtaste", - "settings.option.experimental.closeButtonBehaviour.quit": "Cider Schließen", - "settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "In Taskleiste minimieren", - "settings.option.experimental.closeButtonBehaviour.minimizeTray": "In den Tray minimieren", - // Refer to term.disabled & term.enabled - - // Spatialization Menu - "spatial.spatialProperties" : "Räumliche Einstellungen", - "spatial.width" : "Breite", - "spatial.height" : "HÃļhe", - "spatial.depth" : "Tiefe", - "spatial.gain" : "Gain", - "spatial.roomMaterials" : "Raummaterialien", - "spatial.roomDimensions" : "Raumabmessungen", - "spatial.roomPositions" : "Raumpositionen", - "spatial.setDimensions" : "Setze Abmessungen", - "spatial.setPositions" : "Setze Positionen", - "spatial.up" : "Oben", - "spatial.front" : "Vorne", - "spatial.left" : "Links", - "spatial.right" : "Rechts", - "spatial.back" : "Hinten", - "spatial.down" : "Unten", - "spatial.listener" : "HÃļrer*in", - "spatial.audioSource" : "Audioquelle", - - // Settings - Unfinished - "settings.header.unfinished": "Unfertig", - - // Web Remote + "settings.option.experimental.compactUI": "Kompaktes UI", + "settings.option.window.close_button_hide": "Schließtaste soll die App verbergen", + "settings.option.experimental.copy_log": "Kopiere Logs in die Zwischenablage", + "settings.option.experimental.inline_playlists": "Inline Playlists und Alben", + "spatial.notTurnedOn": "Die Audio-Spatialisierung ist deaktiviert. Um sie zu verwenden, musst du diese zuerst aktivieren.", + "spatial.spatialProperties": "Räumliche Einstellungen", + "spatial.width": "Breite", + "spatial.height": "HÃļhe", + "spatial.depth": "Tiefe", + "spatial.gain": "Gain", + "spatial.roomMaterials": "Raummaterialien", + "spatial.roomDimensions": "Raumabmessungen", + "spatial.roomPositions": "Raumpositionen", + "spatial.setDimensions": "Setze Abmessungen", + "spatial.setPositions": "Setze Positionen", + "spatial.up": "Oben", + "spatial.front": "Vorne", + "spatial.left": "Links", + "spatial.right": "Rechts", + "spatial.back": "Hinten", + "spatial.down": "Unten", + "spatial.listener": "HÃļrer*in", + "spatial.audioSource": "Audioquelle", + "settings.header.unfinished": "Unvollendet", "remote.web.title": "Cider Remote", "remote.web.description": "Scanne den QR-Code um dein Handy mit dieser Cider-Instanz zu verbinden", - - // About "about.thanks": "Vielen lieben Dank an das Cider Collective Team und an alle Mithelfer." -} +} \ No newline at end of file diff --git a/src/i18n/el_GR.jsonc b/src/i18n/el_GR.json similarity index 56% rename from src/i18n/el_GR.jsonc rename to src/i18n/el_GR.json index ca100520..be52a686 100644 --- a/src/i18n/el_GR.jsonc +++ b/src/i18n/el_GR.json @@ -1,299 +1,365 @@ -{ - - // i18n Info - "i18n.languageName": "ΕÎģÎģΡÎŊΚÎēÎŦ", - "i18n.languageNameEnglish": "Greek", - "i18n.category": "main", - "i18n.authors": "@down-bad", - - // App info - "app.name": "Cider", - - "date.format": "${d} ${m}, ${y}", - - // Dialogs - "dialog.cancel": "ΑÎēĪĪĪ‰ĪƒÎˇ", - "dialog.ok": "ΟΚ", - - // Notification - "notification.updatingLibrarySongs": "ΕÎŊΡÎŧÎ­ĪĪ‰ĪƒÎˇ βΚβÎģΚÎŋθΎÎēÎˇĪ‚ Ī„ĪÎąÎŗÎŋĪ…Î´ÎšĪŽÎŊ...", - "notification.updatingLibraryAlbums": "ΕÎŊΡÎŧÎ­ĪĪ‰ĪƒÎˇ βΚβÎģΚÎŋθΎÎēÎˇĪ‚ ÎŦÎģÎŧĪ€ÎŋĪ…Îŧ...", - "notification.updatingLibraryArtists": "ΕÎŊΡÎŧÎ­ĪĪ‰ĪƒÎˇ βΚβÎģΚÎŋθΎÎēÎˇĪ‚ ÎēÎąÎģÎģÎšĪ„Îĩ·ÎŊĪŽÎŊ...", - // Terms - "term.appleInc": "Apple Inc.", - "term.appleMusic": "Apple Music", - "term.applePodcasts": "Apple Podcasts", - "term.itunes": "iTunes", - "term.github": "GitHub", - "term.discord": "Discord", - "term.learnMore": "ΜÎŦθÎĩĪ„Îĩ Ī€ÎĩĪÎšĪƒĪƒĪŒĪ„ÎĩĪÎą", - "term.accountSettings": "ÎĄĪ…Î¸ÎŧÎ¯ĪƒÎĩÎšĪ‚ ÎģÎŋÎŗÎąĪÎšÎąĪƒÎŧÎŋĪ", - "term.logout": "Î‘Ī€ÎŋĪƒĪÎŊδÎĩĪƒÎˇ", - "term.login": "ÎŖĪÎŊδÎĩĪƒÎˇ", - "term.about": "ÎŖĪ‡ÎĩĪ„ÎšÎēÎŦ ÎŧÎĩ", - "term.privateSession": "Î™Î´ÎšĪ‰Ī„ÎšÎēÎŽ Ī€ÎĩĪÎ¯ÎŋδÎŋĪ‚ ÎģÎĩÎšĪ„ÎŋĪ…ĪÎŗÎ¯ÎąĪ‚", - "term.queue": "ÎŸĪ…ĪÎŦ", - "term.search": "Î•ĪĪÎĩĪƒÎˇ", - "term.library": "ΒιβÎģΚÎŋθΎÎēΡ", - "term.listenNow": "ΑÎēĪĪŒÎąĪƒÎˇ", - "term.browse": "ΠÎĩĪÎšÎŽÎŗÎˇĪƒÎˇ", - "term.radio": "ÎĄÎŦδΚÎŋ", - "term.recentlyAdded": "Î ĪĪŒĪƒĪ†ÎąĪ„ÎĩĪ‚ ΀΁ÎŋĪƒÎ¸ÎŽÎēÎĩĪ‚", - "term.songs": "Î¤ĪÎąÎŗÎŋĪÎ´ÎšÎą", - "term.albums": "ΆÎģÎŧĪ€ÎŋĪ…Îŧ", - "term.artists": "ΚαÎģÎģÎšĪ„Î­Ī‡ÎŊÎĩĪ‚", - "term.podcasts": "Podcast", - "term.playlists": "Î›Î¯ĪƒĪ„ÎĩĪ‚ ÎąÎŊÎąĪ€ÎąĪÎąÎŗĪ‰ÎŗÎŽĪ‚", - "term.playlist": "Î›Î¯ĪƒĪ„Îą ÎąÎŊÎąĪ€ÎąĪÎąÎŗĪ‰ÎŗÎŽĪ‚", - "term.play": "ΑÎŊÎąĪ€ÎąĪÎąÎŗĪ‰ÎŗÎŽ", - "term.pause": "Î ÎąĪĪƒÎˇ", - "term.previous": "Î ĪÎŋÎˇÎŗÎŋĪÎŧÎĩÎŊÎŋ", - "term.next": "Î•Ī€ĪŒÎŧÎĩÎŊÎŋ", - "term.shuffle": "Î¤Ī…Ī‡ÎąÎ¯Îą ΃ÎĩÎšĪÎŦ", - "term.repeat": "Î•Ī€ÎąÎŊÎŦÎģÎˇĪˆÎˇ", - "term.volume": "ΈÎŊĪ„ÎąĪƒÎˇ", - "term.mute": "ÎŖÎ¯ÎŗÎąĪƒÎˇ", - "term.unmute": "ÎšÎąĪ„ÎŦĪÎŗÎˇĪƒÎˇ ĪƒÎ¯ÎŗÎąĪƒÎˇĪ‚", - "term.share": "ΚÎŋΚÎŊÎŽ Î§ĪÎŽĪƒÎˇ", - "term.settings": "ÎĄĪ…Î¸ÎŧÎ¯ĪƒÎĩÎšĪ‚", - "term.seeAll": "Î ĪÎŋβÎŋÎģÎŽ ΌÎģΉÎŊ", - "term.sortBy": "ΤιΞΚÎŊΌÎŧÎˇĪƒÎˇ ÎēÎąĪ„ÎŦ", - "term.sortBy.album": "ΆÎģÎŧĪ€ÎŋĪ…Îŧ", - "term.sortBy.artist": "ΚαÎģÎģÎšĪ„Î­Ī‡ÎŊΡ", - "term.sortBy.name": "ΌÎŊÎŋÎŧÎą", - "term.sortBy.genre": "ΕίδÎŋĪ‚", - "term.sortBy.releaseDate": "ΗÎŧÎĩ΁ÎŋÎŧΡÎŊÎ¯Îą ÎēĪ…ÎēÎģÎŋΆÎŋĪÎ¯ÎąĪ‚", - "term.sortBy.duration": "ΔιÎŦ΁ÎēÎĩΚι", - "term.sortOrder": "Α-Ί", - "term.sortOrder.ascending": "Î‘ĪÎžÎŋĪ…ĪƒÎą", - "term.sortOrder.descending": "ÎĻθίÎŊÎŋĪ…ĪƒÎą", - "term.viewAs": "Î ĪÎŋβÎŋÎģÎŽ Ή΂", - "term.viewAs.coverArt": "Î•ÎžĪŽĪ†Ī…ÎģÎģÎŋ", - "term.viewAs.list": "Î›Î¯ĪƒĪ„Îą", - "term.size": "ÎœÎ­ÎŗÎĩθÎŋĪ‚", - "term.size.normal": "ΚαÎŊÎŋÎŊΚÎēΌ", - "term.size.compact": "ÎŖĪ…ÎŧĪ€ÎąÎŗÎŽ", - "term.enable": "ΕÎŊÎĩĪÎŗÎŋĪ€ÎŋÎ¯ÎˇĪƒÎˇ", - "term.disable": "Î‘Ī€ÎĩÎŊÎĩĪÎŗÎŋĪ€ÎŋÎ¯ÎˇĪƒÎˇ", - "term.enabled": "ΕÎŊÎĩĪÎŗÎŋĪ€ÎŋΚΡÎŧέÎŊÎŋ", - "term.disabled": "Î‘Ī€ÎĩÎŊÎĩĪÎŗÎŋĪ€ÎŋΚΡÎŧέÎŊÎŋ", - "term.connect": "ÎŖĪÎŊδÎĩĪƒÎˇ", - "term.connecting": "ΓίÎŊÎĩĪ„ÎąÎš ĪƒĪÎŊδÎĩĪƒÎˇ", - "term.disconnect": "Î‘Ī€ÎŋĪƒĪÎŊδÎĩĪƒÎˇ", - "term.authed": "Î•Ī€ÎšÎē΅΁ΉÎŧέÎŊÎŋ", - "term.confirm": "ÎŖÎ¯ÎŗÎŋĪ…ĪÎą;", - "term.more": "ΠÎĩĪÎšĪƒĪƒĪŒĪ„ÎĩĪÎą", - "term.less": "Î›ÎšÎŗĪŒĪ„ÎĩĪÎą", - "term.showMore": "ΕÎŧΆÎŦÎŊÎšĪƒÎˇ Ī€ÎĩĪÎšĪƒĪƒĪŒĪ„Îĩ΁ΉÎŊ", - "term.showLess": "ΕÎŧΆÎŦÎŊÎšĪƒÎˇ ÎģÎšÎŗĪŒĪ„Îĩ΁ΉÎŊ", - "term.topSongs" : "ΚÎŋĪĪ…Ī†ÎąÎ¯Îą Ī„ĪÎąÎŗÎŋĪÎ´ÎšÎą", - "term.latestReleases": "ΤÎĩÎģÎĩĪ…Ī„ÎąÎ¯ÎĩĪ‚ ÎēĪ…ÎēÎģÎŋΆÎŋĪÎ¯ÎĩĪ‚", - "term.time.added": "Î ĪÎŋĪƒĪ„Î­Î¸ÎˇÎēÎĩ", - "term.time.released": "ÎšĪ…ÎēÎģÎŋĪ†ĪŒĪÎˇĪƒÎĩ", - "term.time.updated": "ΕÎŊΡÎŧÎĩĪĪŽÎ¸ÎˇÎēÎĩ", - "term.time.hours": "ĪŽĪÎĩĪ‚", - "term.time.hour": "ĪŽĪÎą", - "term.time.minutes": "ÎģÎĩ΀΄ÎŦ", - "term.time.minute": "ÎģÎĩĪ€Ī„ĪŒ", - "term.time.seconds": "δÎĩĪ…Ī„Îĩ΁ΌÎģÎĩĪ€Ī„Îą", - "term.time.second": "δÎĩĪ…Ī„Îĩ΁ΌÎģÎĩ΀΄Îŋ", - "term.fullscreenView": "ΠÎģÎŽĪÎˇĪ‚ ÎŋÎ¸ĪŒÎŊΡ", - "term.defaultView": "ΚαÎŊÎŋÎŊΚÎēÎŽ ÎŋÎ¸ĪŒÎŊΡ", - "term.spacializedAudioSetting": "Î§Ī‰ĪÎšÎēÎŽ ĪĪÎ¸ÎŧÎšĪƒÎˇ ÎŽĪ‡ÎŋĪ…", - "term.clearAll": "ΕÎēÎēιθÎŦĪÎšĪƒÎˇ ΌÎģΉÎŊ", - "term.recentStations": "Î ĪĪŒĪƒĪ†ÎąĪ„ÎŋΚ ĪƒĪ„ÎąÎ¸ÎŧÎŋί", - "term.language": "ΓÎģĪŽĪƒĪƒÎą", - "term.funLanguages": "Για Ī€ÎģÎŦÎēÎą", - "term.noLyrics": "ÎĻĪŒĪĪ„Ī‰ĪƒÎˇ... / ΔÎĩÎŊ Î˛ĪÎ­Î¸ÎˇÎēÎąÎŊ ĪƒĪ„Î¯Ī‡ÎŋΚ. / ÎŸĪĪ‡ÎˇĪƒĪ„ÎšÎēΌ.", - "term.copyright": "Copyright", - "term.rightsReserved": "ΌÎģÎą Ī„Îą δΚÎēÎąÎšĪŽÎŧÎąĪ„Îą Î´ÎšÎąĪ„ÎˇĪÎŋĪÎŊĪ„ÎąÎš.", - "term.sponsor": "ΧÎŋĪÎŽÎŗÎˇĪƒÎĩ ÎąĪ…Ī„ĪŒ Ī„Îŋ Î­ĪÎŗÎŋ", - "term.ciderTeam": "ΟÎŧÎŦδι Cider", - "term.developer": "Î ĪÎŋÎŗĪÎąÎŧÎŧÎąĪ„ÎšĪƒĪ„ÎŽĪ‚", - "term.socialTeam": "ΚÎŋΚÎŊΉÎŊΚÎēÎŽ ΟÎŧÎŦδι", - "term.contributors": "ÎŖĪ…ÎŊÎĩÎšĪƒĪ†Î­ĪÎŋÎŊĪ„ÎĩĪ‚", - "term.equalizer": "Î™ĪƒÎŋĪƒĪ„ÎąÎ¸ÎŧÎšĪƒĪ„ÎŽĪ‚", - "term.reset": "Î•Ī€ÎąÎŊÎąĪ†Îŋ΁ÎŦ", - "term.tracks": "Ī„ĪÎąÎŗÎŋĪÎ´ÎšÎą", // Assume x amount of tracks. e.g. 50 tracks - "term.videos": "ΒίÎŊĪ„ÎĩÎŋ", - "term.menu": "ΜÎĩÎŊÎŋĪ", - "action.showAlbum": "ΕÎŧΆÎŦÎŊÎšĪƒÎˇ ÎŋÎģΌÎēÎģÎˇĪÎŋĪ… ÎŦÎģÎŧĪ€ÎŋĪ…Îŧ", - - // Home - "home.title": "Î‘ĪĪ‡ÎšÎēÎŽ", - "home.recentlyPlayed": "ÎˆĪ€ÎąÎšÎžÎąÎŊ Ī€ĪĪŒĪƒĪ†ÎąĪ„Îą", - "home.recentlyAdded": "Î ĪĪŒĪƒĪ†ÎąĪ„ÎĩĪ‚ ΀΁ÎŋĪƒÎ¸ÎŽÎēÎĩĪ‚", - "home.artistsFeed": "ÎĄÎŋÎŽ ΄ΉÎŊ ÎēÎąÎģÎģÎšĪ„Îĩ·ÎŊĪŽÎŊ ΃ÎŋĪ…", - "home.artistsFeed.noArtist": "ΑÎēÎŋÎģÎŋĪÎ¸ÎˇĪƒÎĩ ÎŧÎĩĪÎšÎēÎŋĪĪ‚ ÎēÎąÎģÎģÎšĪ„Î­Ī‡ÎŊÎĩĪ‚ Ī€ĪĪŽĪ„Îą ÎēιΚ ÎŋΚ Ī„ÎĩÎģÎĩĪ…Ī„ÎąÎ¯ÎĩĪ‚ ÎēĪ…ÎēÎģÎŋΆÎŋĪÎ¯ÎĩĪ‚ Ī„ÎŋĪ…Ī‚ θι ÎĩÎŧĪ†ÎąÎŊίÎļÎŋÎŊĪ„ÎąÎš ÎĩÎ´ĪŽ", - "home.madeForYou": "ΔηÎŧΚÎŋĪ…ĪÎŗÎŽÎ¸ÎˇÎēÎĩ ÎŗÎšÎą Îĩ΃ÎŦĪ‚", - "home.friendsListeningTo": "Οι Ī†Î¯ÎģÎŋΚ ΃ÎŋĪ… ÎąÎēÎŋĪÎŊ", - "home.followedArtists": "ΚαÎģÎģÎšĪ„Î­Ī‡ÎŊÎĩĪ‚ Ī€ÎŋĪ… ÎąÎēÎŋÎģÎŋĪ…Î¸ÎĩÎ¯Ī„Îĩ", - // Errors - "error.appleMusicSubRequired": "ΤÎŋ Apple Music ÎąĪ€ÎąÎšĪ„Îĩί ÎŧΚι ĪƒĪ…ÎŊÎ´ĪÎŋÎŧÎŽ.", - "error.connectionError": "ΔÎĩÎŊ ÎĩίÎŊιΚ Î´Ī…ÎŊÎąĪ„ÎŽ Ρ ĪƒĪÎŊδÎĩĪƒÎˇ ÎŧÎĩ Ī„Îŋ Apple Music.", - "error.noResults": "ΚαÎŊέÎŊÎą ÎąĪ€ÎŋĪ„Î­ÎģÎĩ΃ÎŧÎą.", - "error.noResults.description": "ΔÎŋÎēΚÎŧÎŦĪƒĪ„Îĩ ÎŧΚι ÎŊέι ÎąÎŊÎąÎļÎŽĪ„ÎˇĪƒÎˇ.", - - //Podcasts - "podcast.followOnCider": "ΑÎēÎŋÎģÎŋĪÎ¸ÎˇĪƒÎˇ ĪƒĪ„Îŋ Cider", - "podcast.followedOnCider": "ΑÎēÎŋÎģÎŋĪ…Î¸ÎĩÎ¯Ī„Îĩ ĪƒĪ„Îŋ Cider", - "podcast.subscribeOnItunes": "ÎŖĪ…ÎŊÎ´ĪÎŋÎŧÎŽ ĪƒĪ„Îŋ iTunes", - "podcast.subscribedOnItunes": "ÎŖĪ…ÎŊÎ´ĪÎŋÎŧÎˇĪ„ÎŽĪ‚ ĪƒĪ„Îŋ iTunes", - "podcast.itunesStore": "iTunes Store", - "podcast.episodes": "Î•Ī€ÎĩÎšĪƒĪŒÎ´ÎšÎą", - "podcast.playEpisode": "ΑÎŊÎąĪ€ÎąĪÎąÎŗĪ‰ÎŗÎŽ ÎĩĪ€ÎĩÎšĪƒÎŋδίÎŋĪ…", - "podcast.website": "Î™ĪƒĪ„ĪŒĪ„ÎŋĪ€ÎŋĪ‚ Podcast", - - // Actions - "action.addToLibrary": "Î ĪÎŋĪƒÎ¸ÎŽÎēΡ ĪƒĪ„Îˇ βΚβÎģΚÎŋθΎÎēΡ", - "action.addToLibrary.success": "Î ĪÎŋĪƒĪ„Î­Î¸ÎˇÎēÎĩ ĪƒĪ„Îˇ βΚβÎģΚÎŋθΎÎēΡ", - "action.addToLibrary.error": "ÎŖĪ†ÎŦÎģÎŧÎą Î ĪÎŋĪƒÎ¸ÎŽÎēÎˇĪ‚ ĪƒĪ„Îˇ βΚβÎģΚÎŋθΎÎēÎˇĪ‚", - "action.removeFromLibrary": "Î‘Ī†ÎąÎ¯ĪÎĩĪƒÎˇ ÎąĪ€ĪŒ Ī„Îˇ βΚβÎģΚÎŋθΎÎēΡ", - "action.removeFromLibrary.success": "Î‘Ī†ÎąÎšĪÎ­Î¸ÎˇÎēÎĩ ÎąĪ€ĪŒ Ī„Îˇ βΚβÎģΚÎŋθΎÎēΡ", - "action.addToQueue": "Î ĪÎŋĪƒÎ¸ÎŽÎēΡ ĪƒĪ„ÎˇÎŊ Îŋ΅΁ÎŦ", - "action.addToQueue.success": "Î ĪÎŋĪƒĪ„Î­Î¸ÎˇÎēÎĩ ĪƒĪ„ÎˇÎŊ Îŋ΅΁ÎŦ", - "action.addToQueue.error": "Î ĪÎŋĪƒĪ„Î­Î¸ÎˇÎēÎĩ ĪƒĪ„ÎˇÎŊ Îŋ΅΁ÎŦ", - "action.removeFromQueue": "Î‘Ī†ÎąÎ¯ĪÎĩĪƒÎˇ ÎąĪ€ĪŒ Ī„ÎˇÎŊ Îŋ΅΁ÎŦ", - "action.removeFromQueue.success": "Î‘Ī†ÎąÎšĪÎ­Î¸ÎˇÎēÎĩ ÎąĪ€ĪŒ Ī„ÎˇÎŊ Îŋ΅΁ÎŦ", - "action.removeFromQueue.error": "ÎŖĪ†ÎŦÎģÎŧÎą Î‘Ī†ÎąÎ¯ĪÎĩĪƒÎˇĪ‚ ÎąĪ€ĪŒ Ī„ÎˇÎŊ Îŋ΅΁ÎŦ", - "action.addToPlaylist": "Î ĪÎŋĪƒÎ¸ÎŽÎēΡ ΃Îĩ ÎģÎ¯ĪƒĪ„Îą", - "action.removeFromPlaylist": "Î‘Ī†ÎąÎ¯ĪÎĩĪƒÎˇ ÎąĪ€ĪŒ ÎģÎ¯ĪƒĪ„Îą", - "action.addToFavorites": "Î ĪÎŋĪƒÎ¸ÎŽÎēΡ ĪƒĪ„Îą ÎąÎŗÎąĪ€ÎˇÎŧέÎŊÎą", - "action.follow": "ΑÎēÎŋÎģÎŋĪÎ¸ÎˇĪƒÎˇ", - "action.follow.success": "ΑÎēÎŋÎģÎŋĪ…Î¸ÎŽÎ¸ÎˇÎēÎĩ", - "action.follow.error": "ÎŖĪ†ÎŦÎģÎŧÎą ÎąÎēÎŋÎģÎŋĪÎ¸ÎˇĪƒÎˇĪ‚", - "action.unfollow": "ΔιαÎēÎŋĪ€ÎŽ ÎąÎēÎŋÎģÎŋĪÎ¸ÎˇĪƒÎˇĪ‚", - "action.unfollow.success": "ÎˆÎŗÎšÎŊÎĩ δΚιÎēÎŋĪ€ÎŽ ÎąÎēÎŋÎģÎŋĪÎ¸ÎˇĪƒÎˇĪ‚", - "action.unfollow.error": "ÎŖĪ†ÎŦÎģÎŧÎą δΚιÎēÎŋĪ€ÎŽĪ‚ ÎąÎēÎŋÎģÎŋĪÎ¸ÎˇĪƒÎˇĪ‚ ", - "action.playNext": "ΑÎŊÎąĪ€ÎąĪÎąÎŗĪ‰ÎŗÎŽ Ή΂ ÎĩĪ€ĪŒÎŧÎĩÎŊÎŋĪ…", - "action.playLater": "ΑÎŊÎąĪ€ÎąĪÎąÎŗĪ‰ÎŗÎŽ ÎąĪÎŗĪŒĪ„ÎĩĪÎą", - "action.startRadio": "ΈÎŊÎąĪÎžÎˇ ĪÎąÎ´ÎšÎŋĪ†ĪŽÎŊÎŋĪ…", - "action.goToArtist": "ΜÎĩĪ„ÎŦÎ˛ÎąĪƒÎˇ ΃Îĩ ÎēÎąÎģÎģÎšĪ„Î­Ī‡ÎŊΡ", - "action.goToAlbum": "ΜÎĩĪ„ÎŦÎ˛ÎąĪƒÎˇ ΃Îĩ ÎŦÎģÎŧĪ€ÎŋĪ…Îŧ", - "action.moveToTop": "ΜÎĩĪ„ÎąÎēίÎŊÎˇĪƒÎˇ ĪƒĪ„Îˇ ÎēÎŋĪĪ…Ī†ÎŽ", - "action.share": "ΚÎŋΚÎŊÎŽ Ī‡ĪÎŽĪƒÎˇ", - "action.rename": "ΜÎĩĪ„ÎŋÎŊÎŋÎŧÎąĪƒÎ¯Îą", - "action.love": "ΜÎŋĪ… ÎąĪÎ­ĪƒÎĩΚ Ī€ÎŋÎģĪ", - "action.unlove": "ΑÎŊÎąÎ¯ĪÎĩĪƒÎˇ \"ΜÎŋĪ… ÎąĪÎ­ĪƒÎĩΚ\"", - "action.dislike": "ΔÎĩÎŊ ÎŧÎŋĪ… ÎąĪÎ­ĪƒÎĩΚ", - "action.undoDislike": "ΑÎŊÎąÎ¯ĪÎĩĪƒÎˇ \"ΔÎĩÎŊ ÎŧÎŋĪ… ÎąĪÎ­ĪƒÎĩΚ\"", - "action.showWebRemoteQR": "ΕÎŧΆÎŦÎŊÎšĪƒÎˇ Web Remote QR", - "action.playTracksNext": "ΑÎŊÎąĪ€ÎąĪÎąÎŗĪ‰ÎŗÎŽ ${app.selectedMediaItems.length} Ī„ĪÎąÎŗÎŋĪ…Î´ÎšĪŽÎŊ Ή΂ ÎĩĪ€ĪŒÎŧÎĩÎŊΉÎŊ", - "action.playTracksLater": "ΑÎŊÎąĪ€ÎąĪÎąÎŗĪ‰ÎŗÎŽ ${app.selectedMediaItems.length} Ī„ĪÎąÎŗÎŋĪ…Î´ÎšĪŽÎŊ ÎąĪÎŗĪŒĪ„ÎĩĪÎą", - "action.removeTracks": "Î‘Ī†ÎąÎ¯ĪÎĩĪƒÎˇ ${self.selectedItems.length} Ī„ĪÎąÎŗÎŋĪ…Î´ÎšĪŽÎŊ ÎąĪ€ĪŒ Ī„ÎˇÎŊ Îŋ΅΁ÎŦ", - "action.import": "Î•ÎšĪƒÎąÎŗĪ‰ÎŗÎŽ", - "action.export": "Î•ÎžÎąÎŗĪ‰ÎŗÎŽ", - - // Settings - General - "settings.header.general": "ΓÎĩÎŊΚÎēÎŦ", - "settings.header.general.description": "Î ĪÎŋĪƒÎąĪÎŧÎŋÎŗÎŽ ÎŗÎĩÎŊΚÎēĪŽÎŊ ĪĪ…Î¸ÎŧÎ¯ĪƒÎĩΉÎŊ ÎŗÎšÎą Ī„Îŋ Cider.", - "settings.option.general.language": "ΓÎģĪŽĪƒĪƒÎą", - - // Language optgroups - "settings.option.general.language.main": "ΓÎģĪŽĪƒĪƒÎĩĪ‚", - "settings.option.general.language.fun": "ΓÎģĪŽĪƒĪƒÎĩĪ‚ ÎŗÎšÎą Ī€ÎģÎŦÎēÎą", - "settings.option.general.language.unsorted": "Î‘Ī„ÎąÎžÎšÎŊΌÎŧÎˇĪ„ÎĩĪ‚", - - // Settings - Audio - "settings.header.audio": "Î‰Ī‡ÎŋĪ‚", - "settings.header.audio.description": "Î ĪÎŋĪƒÎąĪÎŧÎŋÎŗÎŽ ĪĪ…Î¸ÎŧÎ¯ĪƒÎĩΉÎŊ ÎŽĪ‡ÎŋĪ… ÎŗÎšÎą Ī„Îŋ Cider.", - "settings.option.audio.quality": "ΠÎŋÎšĪŒĪ„ÎˇĪ„Îą Î‰Ī‡ÎŋĪ…", // Dropdown - "settings.header.audio.quality.high": "ÎĨĪˆÎˇÎģÎŽ", - "settings.header.audio.quality.low": "ΧιÎŧΡÎģÎŽ", - "settings.header.audio.quality.auto": "Î‘Ī…Ī„ĪŒÎŧÎąĪ„Îˇ", - "settings.option.audio.seamlessTransition": "ΑδιÎŦÎēÎŋĪ€Îˇ ΜÎĩĪ„ÎŦÎ˛ÎąĪƒÎˇ Î‰Ī‡ÎŋĪ…", // Toggle - "settings.option.audio.enableAdvancedFunctionality": "ΕÎŊÎĩĪÎŗÎŋĪ€ÎŋÎ¯ÎˇĪƒÎˇ Î ĪÎŋÎˇÎŗÎŧέÎŊÎˇĪ‚ ΛÎĩÎšĪ„ÎŋĪ…ĪÎŗÎšÎēĪŒĪ„ÎˇĪ„ÎąĪ‚", // Toggle - "settings.option.audio.enableAdvancedFunctionality.description": "ΕÎŊÎĩĪÎŗÎŋĪ€ÎŋÎšĪŽÎŊĪ„ÎąĪ‚ Ī„Îˇ ÎģÎĩÎšĪ„ÎŋĪ…ĪÎŗÎšÎēĪŒĪ„ÎˇĪ„Îą AudioContext θι ÎĩĪ€ÎšĪ„ĪÎ­ĪˆÎĩΚ ΃Îĩ ÎĩĪ€ÎĩÎēĪ„ÎąÎŧέÎŊÎĩĪ‚ Î´Ī…ÎŊÎąĪ„ĪŒĪ„ÎˇĪ„ÎĩĪ‚ ÎŽĪ‡ÎŋĪ… ĪŒĪ€Ī‰Ī‚ ΚαÎŊÎŋÎŊΚÎēÎŋĪ€ÎŋÎ¯ÎˇĪƒÎˇ ΈÎŊĪ„ÎąĪƒÎˇĪ‚ Î‰Ī‡ÎŋĪ…, Î™ĪƒÎŋĪƒĪ„ÎąÎ¸ÎŧÎšĪƒĪ„Î­Ī‚ ÎēιΚ ÎŸĪ€Ī„ÎšÎēÎŋĪ€ÎŋÎšÎˇĪ„Î­Ī‚, Ī‰ĪƒĪ„ĪŒĪƒÎŋ ΃Îĩ ÎēÎŦĪ€ÎŋΚι ĪƒĪ…ĪƒĪ„ÎŽÎŧÎąĪ„Îą ÎŧĪ€Îŋ΁Îĩί ÎŊÎą ΀΁ÎŋÎēÎąÎģÎ­ĪƒÎĩΚ Ī„ĪÎąĪÎģÎšĪƒÎŧÎą ÎŽĪ‡ÎŋĪ….", - "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "ΚαÎŊÎŋÎŊΚÎēÎŋĪ€ÎŋÎ¯ÎˇĪƒÎˇ ΈÎŊĪ„ÎąĪƒÎˇĪ‚ Î‰Ī‡ÎŋĪ…", // Toggle - "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "ΚαÎŊÎŋÎŊΚÎēÎŋĪ€ÎŋΚÎĩί Ī„ÎˇÎŊ έÎŊĪ„ÎąĪƒÎˇ ÎŗÎšÎą ÎŧÎĩÎŧÎŋÎŊΉÎŧέÎŊÎą ÎēÎŋÎŧÎŧÎŦĪ„ÎšÎą ÎŗÎšÎą ÎŧΚι Ī€ÎšÎŋ ÎŋÎŧÎŋÎšĪŒÎŧÎŋĪĪ†Îˇ ÎĩÎŧĪ€ÎĩÎšĪÎ¯Îą ÎąÎēĪĪŒÎąĪƒÎˇĪ‚.", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Î§Ī‰ĪÎšÎēÎŋĪ€ÎŋÎ¯ÎˇĪƒÎˇ Î‰Ī‡ÎŋĪ…", // Toggle - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "ΠΚÎŋ Ī„ĪÎšĪƒÎ´ÎšÎŦĪƒĪ„ÎąĪ„ÎŋĪ‚ ÎēιΚ Ī‡Ī‰ĪÎšÎēÎŋĪ€ÎŋΚΡÎŧέÎŊÎŋĪ‚ ÎŽĪ‡ÎŋĪ‚ (ĪƒÎˇÎŧÎĩÎ¯Ī‰ĪƒÎˇ: Î‘Ī…Ī„ĪŒ δÎĩÎŊ ÎĩίÎŊιΚ Dolby Atmos)", - // Settings - Visual - "settings.header.visual": "ÎŸĪ€Ī„ÎšÎēÎŦ", - "settings.header.visual.description": "Î ĪÎŋĪƒÎąĪÎŧÎŋÎŗÎŽ ÎŋĪ€Ī„ÎšÎēĪŽÎŊ ĪĪ…Î¸ÎŧÎ¯ĪƒÎĩΉÎŊ ÎŗÎšÎą Ī„Îŋ Cider.", - "settings.option.visual.windowBackgroundStyle": "ÎŖĪ„Ī…Îģ ÎĻΌÎŊĪ„ÎŋĪ… Î ÎąĪÎąÎ¸ĪĪÎŋĪ…", // Toggle - "settings.header.visual.windowBackgroundStyle.none": "ΚαÎŊέÎŊÎą", - "settings.header.visual.windowBackgroundStyle.artwork": "Î•ÎžĪŽĪ†Ī…ÎģÎģÎŋ", - "settings.header.visual.windowBackgroundStyle.image": "ΕιÎēΌÎŊÎą", - "settings.option.visual.animatedArtwork": "ΚιÎŊÎŋĪÎŧÎĩÎŊÎŋ Î•ÎžĪŽĪ†Ī…ÎģÎģÎŋ", // Dropdown - "settings.header.visual.animatedArtwork.always": "ΠÎŦÎŊĪ„Îą", - "settings.header.visual.animatedArtwork.limited": "ΠÎĩĪÎšÎŋĪÎšĪƒÎŧĪŒĪ‚ ΃Îĩ ΃ÎĩÎģίδÎĩĪ‚ ÎēιΚ ÎĩΚδΚÎēÎ­Ī‚ ÎēÎąĪ„ÎąĪ‡Ī‰ĪÎŽĪƒÎĩÎšĪ‚", - "settings.header.visual.animatedArtwork.disable": "Î‘Ī€ÎĩÎŊÎĩĪÎŗÎŋĪ€ÎŋΚΡÎŧέÎŊÎŋ Ī€ÎąÎŊĪ„ÎŋĪ", - "settings.option.visual.animatedArtworkQuality": "ΠÎŋÎšĪŒĪ„ÎˇĪ„Îą ΚιÎŊÎŋĪÎŧÎĩÎŊÎŋĪ… Î•ÎžĪ‰Ī†ĪÎģÎģÎŋĪ…", // Dropdown - "settings.header.visual.animatedArtworkQuality.low": "ΧιÎŧΡÎģÎŽ", - "settings.header.visual.animatedArtworkQuality.medium": "ÎœÎ­Ī„ĪÎšÎą", - "settings.header.visual.animatedArtworkQuality.high": "ÎĨĪˆÎˇÎģÎŽ", - "settings.header.visual.animatedArtworkQuality.veryHigh": "ΠÎŋÎģĪ ÎĨĪˆÎˇÎģÎŽ", - "settings.header.visual.animatedArtworkQuality.extreme": "ΑÎēĪÎąÎ¯Îą", - "settings.option.visual.animatedWindowBackground": "ΚιÎŊÎŋĪÎŧÎĩÎŊÎŋ ÎĻΌÎŊĪ„Îŋ Î ÎąĪÎąÎ¸ĪĪÎŋĪ…", // Toggle - "settings.option.visual.hardwareAcceleration": "Î•Ī€ÎšĪ„ÎŦ·΅ÎŊĪƒÎˇ ÎĨÎģΚÎēÎŋĪ", // Dropdown - "settings.option.visual.hardwareAcceleration.description": "Î‘Ī€ÎąÎšĪ„Îĩί ÎĩĪ€ÎąÎŊÎĩÎēÎēίÎŊÎˇĪƒÎˇ", - "settings.header.visual.hardwareAcceleration.default": "Î ĪÎŋÎĩĪ€ÎšÎģÎŋÎŗÎŽ", - "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", - // Refer to term.disabled for the disabled option - "settings.option.visual.showPersonalInfo": "ΕÎŧΆÎŦÎŊÎšĪƒÎˇ ΀΁ÎŋĪƒĪ‰Ī€ÎšÎēĪŽÎŊ ĪƒĪ„ÎŋÎšĪ‡ÎĩÎ¯Ī‰ÎŊ", // Toggle - - // Settings - Lyrics - "settings.header.lyrics": "ÎŖĪ„Î¯Ī‡ÎŋΚ", - "settings.header.lyrics.description": "Î ĪÎŋĪƒÎąĪÎŧÎŋÎŗÎŽ ĪĪ…Î¸ÎŧÎ¯ĪƒÎĩΉÎŊ ĪƒĪ„Î¯Ī‡Ī‰ÎŊ ÎŗÎšÎą Ī„Îŋ Cider.", - "settings.option.lyrics.enableMusixmatch": "ΕÎŊÎĩĪÎŗÎŋĪ€ÎŋÎ¯ÎˇĪƒÎˇ ÎŖĪ„Î¯Ī‡Ī‰ÎŊ Musixmatch", // Toggle - "settings.option.lyrics.enableMusixmatchKaraoke": "ΕÎŊÎĩĪÎŗÎŋĪ€ÎŋÎ¯ÎˇĪƒÎˇ ΛÎĩÎšĪ„ÎŋĪ…ĪÎŗÎ¯ÎąĪ‚ ÎšÎąĪÎąĪŒÎēÎĩ (Musixmatch ÎŧΌÎŊÎŋ)", // Toggle - "settings.option.lyrics.musixmatchPreferredLanguage": "Î ĪÎŋĪ„ÎšÎŧĪŽÎŧÎĩÎŊΡ ΓÎģĪŽĪƒĪƒÎą ΜÎĩĪ„ÎŦĪ†ĪÎąĪƒÎˇĪ‚ Musixmatch", // Dropdown - "settings.option.lyrics.enableYoutubeLyrics": "ΕÎŊÎĩĪÎŗÎŋĪ€ÎŋÎ¯ÎˇĪƒÎˇ ÎŖĪ„Î¯Ī‡Ī‰ÎŊ Youtube ÎŗÎšÎą ΜÎŋĪ…ĪƒÎšÎēÎŦ ΒίÎŊĪ„ÎĩÎŋ", // Toggle - - // Settings - Connectivity - "settings.header.connectivity": "ÎŖĪÎŊδÎĩĪƒÎˇ", - "settings.header.connectivity.description": "Î ĪÎŋĪƒÎąĪÎŧÎŋÎŗÎŽ ĪĪ…Î¸ÎŧÎ¯ĪƒÎĩΉÎŊ ĪƒĪÎŊδÎĩĪƒÎˇĪ‚ ÎŗÎšÎą Ī„Îŋ Cider.", - "settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown - "settings.option.connectivity.playbackNotifications": "ΕιδÎŋĪ€ÎŋÎšÎŽĪƒÎĩÎšĪ‚ ΑÎŊÎąĪ€ÎąĪÎąÎŗĪ‰ÎŗÎŽĪ‚", // Toggle - // Refer to term.disabled for the disabled option - "settings.header.connectivity.discordRPC.cider": "ΕÎŧΆÎŦÎŊÎšĪƒÎˇ Ή΂ 'Cider'", - "settings.header.connectivity.discordRPC.appleMusic": "ΕÎŧΆÎŦÎŊÎšĪƒÎˇ Ή΂ 'Apple Music'", - "settings.option.connectivity.discordRPC.clearOnPause": "ΕÎēÎēιθÎŦĪÎšĪƒÎˇ Ī„ÎŋĪ… Discord Rich Presence ĪƒĪ„ÎˇÎŊ Î ÎąĪĪƒÎˇ", // Toggle - "settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling", // Option to Connect - "settings.option.connectivity.lastfmScrobble.delay": "ÎšÎąÎ¸Ī…ĪƒĪ„Î­ĪÎˇĪƒÎˇ LastFM Scrobble (%)", - "settings.option.connectivity.lastfmScrobble.nowPlaying": "ΕÎŊÎĩĪÎŗÎŋĪ€ÎŋÎ¯ÎˇĪƒÎˇ LastFM \"Now Playing\"", - "settings.option.connectivity.lastfmScrobble.removeFeatured": "Î‘Ī†ÎąÎ¯ĪÎĩĪƒÎˇ ÎēÎąÎģÎģÎšĪ„Îĩ·ÎŊĪŽÎŊ feature ÎąĪ€ĪŒ Ī„ÎŋÎŊ Ī„Î¯Ī„ÎģÎŋ Ī„ÎŋĪ… Ī„ĪÎąÎŗÎŋĪ…Î´ÎšÎŋĪ (LastFM)", - "settings.option.connectivity.lastfmScrobble.filterLoop": "ÎĻΚÎģ΄΁ÎŦĪÎšĪƒÎŧÎą ÎĩĪ€ÎąÎŊÎĩΚÎģΡÎŧÎŧέÎŊÎŋĪ… Ī„ĪÎąÎŗÎŋĪ…Î´ÎšÎŋĪ (LastFM)", - // Refer to term.connect for the connect button - - // Settings - Experimental - "settings.header.experimental": "ΠÎĩÎšĪÎąÎŧÎąĪ„ÎšÎēÎ­Ī‚", - "settings.header.experimental.description": "Î ĪÎŋĪƒÎąĪÎŧÎŋÎŗÎŽ Ī€ÎĩÎšĪÎąÎŧÎąĪ„ÎšÎēĪŽÎŊ ĪĪ…Î¸ÎŧÎ¯ĪƒÎĩΉÎŊ ÎŗÎšÎą Ī„Îŋ Cider.", - "settings.option.experimental.compactUI": "ÎŖĪ…ÎŧĪ€ÎąÎŗÎŽĪ‚ ΔιÎĩĪ€ÎąĪ†ÎŽ", // Toggle - "settings.option.experimental.closeButtonBehaviour": "ÎŖĪ…ÎŧĪ€ÎĩĪÎšĪ†Îŋ΁ÎŦ ΚÎŋĪ…ÎŧĪ€ÎšÎŋĪ Î•ÎžĪŒÎ´ÎŋĪ…", - "settings.option.experimental.closeButtonBehaviour.quit": "ΈΞÎŋδÎŋĪ‚ Ī„ÎŋĪ… Cider", - "settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "ΕÎģÎąĪ‡ÎšĪƒĪ„ÎŋĪ€ÎŋÎ¯ÎˇĪƒÎˇ ĪƒĪ„Îˇ ÎŗĪÎąÎŧÎŧÎŽ ÎĩĪÎŗÎąĪƒÎšĪŽÎŊ", - "settings.option.experimental.closeButtonBehaviour.minimizeTray": "ΕÎģÎąĪ‡ÎšĪƒĪ„ÎŋĪ€ÎŋÎ¯ÎˇĪƒÎˇ ĪƒĪ„Îˇ ÎŗĪ‰ÎŊÎ¯Îą ÎŗĪÎąÎŧÎŧÎŽĪ‚ ÎĩĪÎŗÎąĪƒÎšĪŽÎŊ", - // Refer to term.disabled & term.enabled - - // Spatialization Menu - "spatial.spatialProperties" : "Î§Ī‰ĪÎšÎēÎ­Ī‚ Î™Î´ÎšĪŒĪ„ÎˇĪ„ÎĩĪ‚", - "spatial.width" : "ΠÎģÎŦĪ„ÎŋĪ‚", - "spatial.height" : "ÎŽĪˆÎŋĪ‚", - "spatial.depth" : "ΒÎŦθÎŋĪ‚", - "spatial.gain" : "Î‘Ī€ÎŋÎģιβΎ", - "spatial.roomMaterials" : "ÎĨÎģΚÎēÎŦ Î”Ī‰ÎŧÎąĪ„Î¯ÎŋĪ…", - "spatial.roomDimensions" : "Î”ÎšÎąĪƒĪ„ÎŦ΃ÎĩÎšĪ‚ Î”Ī‰ÎŧÎąĪ„Î¯ÎŋĪ…", - "spatial.roomPositions" : "Î˜Î­ĪƒÎĩÎšĪ‚ Î”Ī‰ÎŧÎąĪ„Î¯ÎŋĪ…", - "spatial.setDimensions" : "ÎŸĪÎšĪƒÎŧĪŒĪ‚ Î”ÎšÎąĪƒĪ„ÎŦ΃ÎĩΉÎŊ", - "spatial.setPositions" : "ÎŸĪÎšĪƒÎŧĪŒĪ‚ Î˜Î­ĪƒÎĩΉÎŊ", - "spatial.up" : "ΠÎŦÎŊΉ", - "spatial.front" : "Î ĪĪŒĪƒÎŋĪˆÎˇ", - "spatial.left" : "Î‘ĪÎšĪƒĪ„Îĩ΁ÎŦ", - "spatial.right" : "ΔÎĩΞΚÎŦ", - "spatial.back" : "Î Î¯ĪƒĪ‰ ÎŒĪˆÎˇ", - "spatial.down" : "ΚÎŦ΄Ή", - "spatial.listener" : "ΑÎē΁ÎŋÎąĪ„ÎŽĪ‚", - "spatial.audioSource" : "Î ÎˇÎŗÎŽ Î‰Ī‡ÎŋĪ…", - - // Settings - Unfinished - "settings.header.unfinished": "ΗÎŧÎšĪ„ÎĩÎģÎŽĪ‚", - - // Web Remote - "remote.web.title": "Cider Remote", - "remote.web.description": "ÎŖÎąĪĪŽĪƒĪ„Îĩ Ī„ÎŋÎŊ ÎēĪ‰Î´ÎšÎēΌ QR ÎŗÎšÎą ĪƒĪÎļÎĩĪ…ÎžÎˇ Ī„ÎŋĪ… Cider ÎŧÎĩ Ī„Îŋ ÎēΚÎŊÎˇĪ„ĪŒ ĪƒÎąĪ‚", - - //About - "about.thanks": "ΜÎĩÎŗÎŦÎģÎą ÎĩĪ…Ī‡ÎąĪÎšĪƒĪ„ĪŽ ĪƒĪ„ÎˇÎŊ ΟÎŧÎŦδι Cider Collective ÎēιΚ ΃Îĩ ΌÎģÎŋĪ…Ī‚ Ī„ÎŋĪ…Ī‚ ĪƒĪ…ÎŊÎĩÎšĪƒĪ†Î­ĪÎŋÎŊĪ„Î­Ī‚ ÎŧÎąĪ‚." +{ + "i18n.languageName": "ΕÎģÎģΡÎŊΚÎēÎŦ", + "i18n.languageNameEnglish": "Greek", + "i18n.category": "main", + "i18n.authors": "@down-bad", + "app.name": "Cider", + "date.format": "${d} ${m}, ${y}", + "dialog.cancel": "ΑÎēĪĪĪ‰ĪƒÎˇ", + "dialog.ok": "ΟΚ", + "notification.updatingLibrarySongs": "ΕÎŊΡÎŧÎ­ĪĪ‰ĪƒÎˇ βΚβÎģΚÎŋθΎÎēÎˇĪ‚ Ī„ĪÎąÎŗÎŋĪ…Î´ÎšĪŽÎŊ...", + "notification.updatingLibraryAlbums": "ΕÎŊΡÎŧÎ­ĪĪ‰ĪƒÎˇ βΚβÎģΚÎŋθΎÎēÎˇĪ‚ ÎŦÎģÎŧĪ€ÎŋĪ…Îŧ...", + "notification.updatingLibraryArtists": "ΕÎŊΡÎŧÎ­ĪĪ‰ĪƒÎˇ βΚβÎģΚÎŋθΎÎēÎˇĪ‚ ÎēÎąÎģÎģÎšĪ„Îĩ·ÎŊĪŽÎŊ...", + "term.appleInc": "Apple Inc.", + "term.appleMusic": "Apple Music", + "term.applePodcasts": "Apple Podcasts", + "term.itunes": "iTunes", + "term.github": "GitHub", + "term.discord": "Discord", + "term.learnMore": "ΜÎŦθÎĩĪ„Îĩ Ī€ÎĩĪÎšĪƒĪƒĪŒĪ„ÎĩĪÎą", + "term.accountSettings": "ÎĄĪ…Î¸ÎŧÎ¯ĪƒÎĩÎšĪ‚ ÎģÎŋÎŗÎąĪÎšÎąĪƒÎŧÎŋĪ", + "term.logout": "Î‘Ī€ÎŋĪƒĪÎŊδÎĩĪƒÎˇ", + "term.login": "ÎŖĪÎŊδÎĩĪƒÎˇ", + "term.about": "ÎŖĪ‡ÎĩĪ„ÎšÎēÎŦ ÎŧÎĩ", + "term.privateSession": "Î™Î´ÎšĪ‰Ī„ÎšÎēÎŽ Ī€ÎĩĪÎ¯ÎŋδÎŋĪ‚ ÎģÎĩÎšĪ„ÎŋĪ…ĪÎŗÎ¯ÎąĪ‚", + "term.queue": "ÎŸĪ…ĪÎŦ", + "term.history": "Î™ĪƒĪ„ÎŋĪÎšÎēΌ", + "term.search": "Î•ĪĪÎĩĪƒÎˇ", + "term.library": "ΒιβÎģΚÎŋθΎÎēΡ", + "term.listenNow": "ΑÎēĪĪŒÎąĪƒÎˇ", + "term.browse": "ΠÎĩĪÎšÎŽÎŗÎˇĪƒÎˇ", + "term.radio": "ÎĄÎŦδΚÎŋ", + "term.recentlyAdded": "Î ĪĪŒĪƒĪ†ÎąĪ„ÎĩĪ‚ ΀΁ÎŋĪƒÎ¸ÎŽÎēÎĩĪ‚", + "term.songs": "Î¤ĪÎąÎŗÎŋĪÎ´ÎšÎą", + "term.albums": "ΆÎģÎŧĪ€ÎŋĪ…Îŧ", + "term.artists": "ΚαÎģÎģÎšĪ„Î­Ī‡ÎŊÎĩĪ‚", + "term.podcasts": "Podcast", + "term.playlists": "Î›Î¯ĪƒĪ„ÎĩĪ‚ ÎąÎŊÎąĪ€ÎąĪÎąÎŗĪ‰ÎŗÎŽĪ‚", + "term.playlist": "Î›Î¯ĪƒĪ„Îą ÎąÎŊÎąĪ€ÎąĪÎąÎŗĪ‰ÎŗÎŽĪ‚", + "term.newPlaylist": "Νέα ÎģÎ¯ĪƒĪ„Îą ÎąÎŊÎąĪ€ÎąĪÎąÎŗĪ‰ÎŗÎŽĪ‚", + "term.newPlaylistFolder": "ΝέÎŋĪ‚ ΆÎŦÎēÎĩÎģÎŋĪ‚ ÎģÎ¯ĪƒĪ„ÎąĪ‚", + "term.createNewPlaylist": "ΔηÎŧΚÎŋĪ…ĪÎŗÎ¯Îą ÎŊÎ­ÎąĪ‚ ÎģÎ¯ĪƒĪ„ÎąĪ‚ ÎąÎŊÎąĪ€ÎąĪÎąÎŗĪ‰ÎŗÎŽĪ‚", + "term.createNewPlaylistFolder": "ΔηÎŧΚÎŋĪ…ĪÎŗÎ¯Îą ÎŊέÎŋĪ… Ī†ÎąÎēέÎģÎŋĪ… ÎģÎ¯ĪƒĪ„ÎąĪ‚", + "term.deletePlaylist": "ΘέÎģÎĩĪ„Îĩ ĪƒÎ¯ÎŗÎŋĪ…ĪÎą ÎŊÎą Î´ÎšÎąÎŗĪÎŦΈÎĩĪ„Îĩ ÎąĪ…Ī„ÎŽ Ī„Îˇ ÎģÎ¯ĪƒĪ„Îą ÎąÎŊÎąĪ€ÎąĪÎąÎŗĪ‰ÎŗÎŽĪ‚;", + "term.play": "ΑÎŊÎąĪ€ÎąĪÎąÎŗĪ‰ÎŗÎŽ", + "term.pause": "Î ÎąĪĪƒÎˇ", + "term.previous": "Î ĪÎŋÎˇÎŗÎŋĪÎŧÎĩÎŊÎŋ", + "term.next": "Î•Ī€ĪŒÎŧÎĩÎŊÎŋ", + "term.shuffle": "Î¤Ī…Ī‡ÎąÎ¯Îą ΃ÎĩÎšĪÎŦ", + "term.repeat": "Î•Ī€ÎąÎŊÎŦÎģÎˇĪˆÎˇ", + "term.volume": "ΈÎŊĪ„ÎąĪƒÎˇ", + "term.mute": "ÎŖÎ¯ÎŗÎąĪƒÎˇ", + "term.unmute": "ÎšÎąĪ„ÎŦĪÎŗÎˇĪƒÎˇ ĪƒÎ¯ÎŗÎąĪƒÎˇĪ‚", + "term.share": "ΚÎŋΚÎŊÎŽ Î§ĪÎŽĪƒÎˇ", + "term.share.success": "ΑÎŊĪ„ÎšÎŗĪÎŦĪ†ÎˇÎēÎĩ ĪƒĪ„Îŋ Ī€ĪĪŒĪ‡ÎĩÎšĪÎŋ", + "term.settings": "ÎĄĪ…Î¸ÎŧÎ¯ĪƒÎĩÎšĪ‚", + "term.seeAll": "Î ĪÎŋβÎŋÎģÎŽ ΌÎģΉÎŊ", + "term.sortBy": "ΤιΞΚÎŊΌÎŧÎˇĪƒÎˇ ÎēÎąĪ„ÎŦ", + "term.sortBy.album": "ΆÎģÎŧĪ€ÎŋĪ…Îŧ", + "term.sortBy.artist": "ΚαÎģÎģÎšĪ„Î­Ī‡ÎŊΡ", + "term.sortBy.name": "ΌÎŊÎŋÎŧÎą", + "term.sortBy.genre": "ΕίδÎŋĪ‚", + "term.sortBy.releaseDate": "ΗÎŧÎĩ΁ÎŋÎŧΡÎŊÎ¯Îą ÎēĪ…ÎēÎģÎŋΆÎŋĪÎ¯ÎąĪ‚", + "term.sortBy.duration": "ΔιÎŦ΁ÎēÎĩΚι", + "term.sortBy.dateAdded": "ΗÎŧÎĩ΁ÎŋÎŧΡÎŊÎ¯Îą ΀΁ÎŋĪƒÎ¸ÎŽÎēÎˇĪ‚", + "term.sortOrder": "Α-Ί", + "term.sortOrder.ascending": "Î‘ĪÎžÎŋĪ…ĪƒÎą", + "term.sortOrder.descending": "ÎĻθίÎŊÎŋĪ…ĪƒÎą", + "term.viewAs": "Î ĪÎŋβÎŋÎģÎŽ Ή΂", + "term.viewAs.coverArt": "Î•ÎžĪŽĪ†Ī…ÎģÎģÎŋ", + "term.viewAs.list": "Î›Î¯ĪƒĪ„Îą", + "term.size": "ÎœÎ­ÎŗÎĩθÎŋĪ‚", + "term.size.normal": "ΚαÎŊÎŋÎŊΚÎēΌ", + "term.size.compact": "ÎŖĪ…ÎŧĪ€ÎąÎŗÎŽ", + "term.enable": "ΕÎŊÎĩĪÎŗÎŋĪ€ÎŋÎ¯ÎˇĪƒÎˇ", + "term.disable": "Î‘Ī€ÎĩÎŊÎĩĪÎŗÎŋĪ€ÎŋÎ¯ÎˇĪƒÎˇ", + "term.enabled": "ΕÎŊÎĩĪÎŗÎŋĪ€ÎŋΚΡÎŧέÎŊÎŋ", + "term.disabled": "Î‘Ī€ÎĩÎŊÎĩĪÎŗÎŋĪ€ÎŋΚΡÎŧέÎŊÎŋ", + "term.connect": "ÎŖĪÎŊδÎĩĪƒÎˇ", + "term.connecting": "ΓίÎŊÎĩĪ„ÎąÎš ĪƒĪÎŊδÎĩĪƒÎˇ", + "term.disconnect": "Î‘Ī€ÎŋĪƒĪÎŊδÎĩĪƒÎˇ", + "term.authed": "Î•Ī€ÎšÎē΅΁ΉÎŧέÎŊÎŋ", + "term.confirm": "ÎŖÎ¯ÎŗÎŋĪ…ĪÎą;", + "term.more": "ΠÎĩĪÎšĪƒĪƒĪŒĪ„ÎĩĪÎą", + "term.less": "Î›ÎšÎŗĪŒĪ„ÎĩĪÎą", + "term.showMore": "ΕÎŧΆÎŦÎŊÎšĪƒÎˇ Ī€ÎĩĪÎšĪƒĪƒĪŒĪ„Îĩ΁ΉÎŊ", + "term.showLess": "ΕÎŧΆÎŦÎŊÎšĪƒÎˇ ÎģÎšÎŗĪŒĪ„Îĩ΁ΉÎŊ", + "term.topSongs": "ΚÎŋĪĪ…Ī†ÎąÎ¯Îą Ī„ĪÎąÎŗÎŋĪÎ´ÎšÎą", + "term.latestReleases": "ΤÎĩÎģÎĩĪ…Ī„ÎąÎ¯ÎĩĪ‚ ÎēĪ…ÎēÎģÎŋΆÎŋĪÎ¯ÎĩĪ‚", + "term.time.added": "Î ĪÎŋĪƒĪ„Î­Î¸ÎˇÎēÎĩ", + "term.time.released": "ÎšĪ…ÎēÎģÎŋĪ†ĪŒĪÎˇĪƒÎĩ", + "term.time.updated": "ΕÎŊΡÎŧÎĩĪĪŽÎ¸ÎˇÎēÎĩ", + "term.time.hours": "ĪŽĪÎĩĪ‚", + "term.time.hour": "ĪŽĪÎą", + "term.time.minutes": "ÎģÎĩ΀΄ÎŦ", + "term.time.minute": "ÎģÎĩĪ€Ī„ĪŒ", + "term.time.seconds": "δÎĩĪ…Ī„Îĩ΁ΌÎģÎĩĪ€Ī„Îą", + "term.time.second": "δÎĩĪ…Ī„Îĩ΁ΌÎģÎĩ΀΄Îŋ", + "term.fullscreenView": "ΠÎģÎŽĪÎˇĪ‚ ÎŋÎ¸ĪŒÎŊΡ", + "term.defaultView": "ΚαÎŊÎŋÎŊΚÎēÎŽ ÎŋÎ¸ĪŒÎŊΡ", + "term.audioSettings": "ÎĄĪ…Î¸ÎŧÎ¯ĪƒÎĩÎšĪ‚ ÎŽĪ‡ÎŋĪ…", + "term.audioControls": "ΈÎģÎĩÎŗĪ‡ÎŋĪ‚ ÎŽĪ‡ÎŋĪ…", + "term.clearAll": "ΕÎēÎēιθÎŦĪÎšĪƒÎˇ ΌÎģΉÎŊ", + "term.recentStations": "Î ĪĪŒĪƒĪ†ÎąĪ„ÎŋΚ ĪƒĪ„ÎąÎ¸ÎŧÎŋί", + "term.language": "ΓÎģĪŽĪƒĪƒÎą", + "term.funLanguages": "Για Ī€ÎģÎŦÎēÎą", + "term.noLyrics": "ÎĻĪŒĪĪ„Ī‰ĪƒÎˇ... / ΔÎĩÎŊ Î˛ĪÎ­Î¸ÎˇÎēÎąÎŊ ĪƒĪ„Î¯Ī‡ÎŋΚ. / ÎŸĪĪ‡ÎˇĪƒĪ„ÎšÎēΌ.", + "term.copyright": "Copyright", + "term.rightsReserved": "ΌÎģÎą Ī„Îą δΚÎēÎąÎšĪŽÎŧÎąĪ„Îą Î´ÎšÎąĪ„ÎˇĪÎŋĪÎŊĪ„ÎąÎš.", + "term.sponsor": "ΧÎŋĪÎŽÎŗÎˇĪƒÎĩ ÎąĪ…Ī„ĪŒ Ī„Îŋ Î­ĪÎŗÎŋ", + "term.ciderTeam": "ΟÎŧÎŦδι Cider", + "term.developer": "Î ĪÎŋÎŗĪÎąÎŧÎŧÎąĪ„ÎšĪƒĪ„ÎŽĪ‚", + "term.socialTeam": "ΚÎŋΚÎŊΉÎŊΚÎēÎŽ ΟÎŧÎŦδι", + "term.socials": "ΚÎŋΚÎŊΉÎŊΚÎēÎŦ ÎœÎ­ĪƒÎą", + "term.contributors": "ÎŖĪ…ÎŊÎĩÎšĪƒĪ†Î­ĪÎŋÎŊĪ„ÎĩĪ‚", + "term.equalizer": "Î™ĪƒÎŋĪƒĪ„ÎąÎ¸ÎŧÎšĪƒĪ„ÎŽĪ‚", + "term.reset": "Î•Ī€ÎąÎŊÎąĪ†Îŋ΁ÎŦ", + "term.tracks": { + "one": "Ī„ĪÎąÎŗÎŋĪÎ´Îš", + "other": "Ī„ĪÎąÎŗÎŋĪÎ´ÎšÎą" + }, + "term.videos": "ΒίÎŊĪ„ÎĩÎŋ", + "term.menu": "ΜÎĩÎŊÎŋĪ", + "term.check": "ΈÎģÎĩÎŗĪ‡ÎŋĪ‚", + "term.aboutArtist": "ÎŖĪ‡ÎĩĪ„ÎšÎēÎŦ ÎŧÎĩ {{artistName}}", + "term.topResult": "ΚÎŋĪĪ…Ī†ÎąÎ¯Îŋ ÎąĪ€ÎŋĪ„Î­ÎģÎĩ΃ÎŧÎą", + "term.sharedPlaylists": "ΚÎŋΚÎŊĪŒĪ‡ĪÎˇĪƒĪ„ÎĩĪ‚ ÎģÎ¯ĪƒĪ„ÎĩĪ‚ ÎąÎŊÎąĪ€ÎąĪÎąÎŗĪ‰ÎŗÎŽĪ‚", + "term.people": "Î†Ī„ÎŋÎŧÎą", + "term.newpreset.name": "ΝέÎŋ ΌÎŊÎŋÎŧÎą ΀΁ÎŋĪĪÎ¸ÎŧÎšĪƒÎˇĪ‚ EQ", + "term.addedpreset": "Η ΀΁ÎŋĪĪÎ¸ÎŧÎšĪƒÎˇ ΀΁ÎŋĪƒĪ„Î­Î¸ÎˇÎēÎĩ", + "term.deletepreset.warn": "ΘέÎģÎĩĪ„Îĩ ĪƒÎ¯ÎŗÎŋĪ…ĪÎą ÎŊÎą Î´ÎšÎąÎŗĪÎŦΈÎĩĪ„Îĩ ÎąĪ…Ī„ÎŽ Ī„Îˇ ΀΁ÎŋĪĪÎ¸ÎŧÎšĪƒÎˇ;", + "term.deletedpreset": "Η ΀΁ÎŋĪĪÎ¸ÎŧÎšĪƒÎˇ ÎąĪ†ÎąÎšĪÎ­Î¸ÎˇÎēÎĩ", + "term.defaultPresets": "Î ĪÎŋÎēιθÎŋĪÎšĪƒÎŧέÎŊÎĩĪ‚ ΀΁ÎŋĪĪ…Î¸ÎŧÎ¯ĪƒÎĩÎšĪ‚", + "term.userPresets": "Î ĪÎŋĪĪ…Î¸ÎŧÎ¯ĪƒÎĩÎšĪ‚ Ī‡ĪÎŽĪƒĪ„Îˇ", + "term.requestError": "Î ÎąĪÎŋĪ…ĪƒÎšÎŦĪƒĪ„ÎˇÎēÎĩ ÎēÎŦĪ€ÎŋΚÎŋ Ī€ĪĪŒÎ˛ÎģΡÎŧÎą ÎŧÎĩ Ī„Îŋ ÎąÎ¯Ī„ÎˇÎŧÎŦ ΃ÎŋĪ….", + "term.song.link.generate": "ΓίÎŊÎĩĪ„ÎąÎš ÎģÎŽĪˆÎˇ ĪƒĪ…ÎŊÎ´Î­ĪƒÎŧÎŋĪ… song.link...", + "term.musicVideos": "ΜÎŋĪ…ĪƒÎšÎēÎŦ Î˛Î¯ÎŊĪ„ÎĩÎŋ", + "term.stations": "ÎŖĪ„ÎąÎ¸ÎŧÎŋί", + "term.curators": "Î•Ī€ÎšÎŧÎĩÎģÎˇĪ„Î­Ī‚", + "term.appleCurators": "Î•Ī€ÎšÎŧÎĩÎģÎˇĪ„Î­Ī‚ Apple", + "term.radioShows": "ΥιδΚÎŋΆΉÎŊΚÎēÎ­Ī‚ ÎĩÎēĪ€ÎŋÎŧĪ€Î­Ī‚", + "term.recordLabels": "Î”ÎšĪƒÎēÎŋÎŗĪÎąĪ†ÎšÎēÎ­Ī‚ ÎĩĪ„ÎąÎšĪÎ¯ÎĩĪ‚", + "term.videoExtras": "Î ĪĪŒĪƒÎ¸ÎĩĪ„Îŋ Ī…ÎģΚÎēΌ Î˛Î¯ÎŊĪ„ÎĩÎŋ", + "term.top": "ΚÎŋĪĪ…Ī†ÎąÎ¯Îą", + "term.version": "ΈÎēδÎŋĪƒÎˇ", + "term.noVideos": "ΔÎĩÎŊ Î˛ĪÎ­Î¸ÎˇÎēÎąÎŊ Î˛Î¯ÎŊĪ„ÎĩÎŋ", + "term.plugin": "Î ĪĪŒĪƒÎ¸ÎĩĪ„Îą", + "term.pluginMenu": "ΜÎĩÎŊÎŋĪ Ī€ĪĪŒĪƒÎ¸Îĩ΄ΉÎŊ", + "term.replay": "Replay", + "term.uniqueAlbums": "ΜÎŋÎŊιδΚÎēÎŦ ÎŦÎģÎŧĪ€ÎŋĪ…Îŧ", + "term.uniqueArtists": "ΜÎŋÎŊιδΚÎēÎŋί ÎēÎąÎģÎģÎšĪ„Î­Ī‡ÎŊÎĩĪ‚", + "term.uniqueSongs": "ΜÎŋÎŊιδΚÎēÎŦ Ī„ĪÎąÎŗÎŋĪÎ´ÎšÎą", + "term.topArtists": "ΚÎŋĪĪ…Ī†ÎąÎ¯ÎŋΚ ÎēÎąÎģÎģÎšĪ„Î­Ī‡ÎŊÎĩĪ‚", + "term.listenedTo": "ΆÎēÎŋĪ…ĪƒÎĩĪ‚:", + "term.times": "ΆÎŋĪÎ­Ī‚", + "term.topAlbums": "ΚÎŋĪĪ…Ī†ÎąÎ¯Îą ÎŦÎģÎŧĪ€ÎŋĪ…Îŧ", + "term.plays": "ΑÎŊÎąĪ€ÎąĪÎąÎŗĪ‰ÎŗÎ­Ī‚", + "term.topGenres": "ΚÎŋĪĪ…Ī†ÎąÎ¯Îą ÎĩÎ¯Î´Îˇ", + "term.confirmLogout": "ΘέÎģÎĩĪ„Îĩ ĪƒÎ¯ÎŗÎŋĪ…ĪÎą ÎŊÎą ÎąĪ€ÎŋĪƒĪ…ÎŊδÎĩθÎĩÎ¯Ī„Îĩ;", + "home.title": "Î‘ĪĪ‡ÎšÎēÎŽ", + "home.recentlyPlayed": "ÎˆĪ€ÎąÎšÎžÎąÎŊ Ī€ĪĪŒĪƒĪ†ÎąĪ„Îą", + "home.recentlyAdded": "Î ĪĪŒĪƒĪ†ÎąĪ„ÎĩĪ‚ ΀΁ÎŋĪƒÎ¸ÎŽÎēÎĩĪ‚", + "home.artistsFeed": "ÎĄÎŋÎŽ ΄ΉÎŊ ÎēÎąÎģÎģÎšĪ„Îĩ·ÎŊĪŽÎŊ ΃ÎŋĪ…", + "home.artistsFeed.noArtist": "ΑÎēÎŋÎģÎŋĪÎ¸ÎˇĪƒÎĩ ÎŧÎĩĪÎšÎēÎŋĪĪ‚ ÎēÎąÎģÎģÎšĪ„Î­Ī‡ÎŊÎĩĪ‚ Ī€ĪĪŽĪ„Îą ÎēιΚ ÎŋΚ Ī„ÎĩÎģÎĩĪ…Ī„ÎąÎ¯ÎĩĪ‚ ÎēĪ…ÎēÎģÎŋΆÎŋĪÎ¯ÎĩĪ‚ Ī„ÎŋĪ…Ī‚ θι ÎĩÎŧĪ†ÎąÎŊίÎļÎŋÎŊĪ„ÎąÎš ÎĩÎ´ĪŽ", + "home.madeForYou": "ΔηÎŧΚÎŋĪ…ĪÎŗÎŽÎ¸ÎˇÎēÎĩ ÎŗÎšÎą Îĩ΃ÎŦĪ‚", + "home.friendsListeningTo": "Οι Ī†Î¯ÎģÎŋΚ ΃ÎŋĪ… ÎąÎēÎŋĪÎŊ", + "home.followedArtists": "ΚαÎģÎģÎšĪ„Î­Ī‡ÎŊÎĩĪ‚ Ī€ÎŋĪ… ÎąÎēÎŋÎģÎŋĪ…Î¸ÎĩÎ¯Ī„Îĩ", + "error.appleMusicSubRequired": "ΤÎŋ Apple Music ÎąĪ€ÎąÎšĪ„Îĩί ÎŧΚι ĪƒĪ…ÎŊÎ´ĪÎŋÎŧÎŽ.", + "error.connectionError": "ΔÎĩÎŊ ÎĩίÎŊιΚ Î´Ī…ÎŊÎąĪ„ÎŽ Ρ ĪƒĪÎŊδÎĩĪƒÎˇ ÎŧÎĩ Ī„Îŋ Apple Music.", + "error.noResults": "ΚαÎŊέÎŊÎą ÎąĪ€ÎŋĪ„Î­ÎģÎĩ΃ÎŧÎą.", + "error.noResults.description": "ΔÎŋÎēΚÎŧÎŦĪƒĪ„Îĩ ÎŧΚι ÎŊέι ÎąÎŊÎąÎļÎŽĪ„ÎˇĪƒÎˇ.", + "podcast.followOnCider": "ΑÎēÎŋÎģÎŋĪÎ¸ÎˇĪƒÎˇ ĪƒĪ„Îŋ Cider", + "podcast.followedOnCider": "ΑÎēÎŋÎģÎŋĪ…Î¸ÎĩÎ¯Ī„Îĩ ĪƒĪ„Îŋ Cider", + "podcast.subscribeOnItunes": "ÎŖĪ…ÎŊÎ´ĪÎŋÎŧÎŽ ĪƒĪ„Îŋ iTunes", + "podcast.subscribedOnItunes": "ÎŖĪ…ÎŊÎ´ĪÎŋÎŧÎˇĪ„ÎŽĪ‚ ĪƒĪ„Îŋ iTunes", + "podcast.itunesStore": "iTunes Store", + "podcast.episodes": "Î•Ī€ÎĩÎšĪƒĪŒÎ´ÎšÎą", + "podcast.playEpisode": "ΑÎŊÎąĪ€ÎąĪÎąÎŗĪ‰ÎŗÎŽ ÎĩĪ€ÎĩÎšĪƒÎŋδίÎŋĪ…", + "podcast.website": "Î™ĪƒĪ„ĪŒĪ„ÎŋĪ€ÎŋĪ‚ Podcast", + "action.addToLibrary": "Î ĪÎŋĪƒÎ¸ÎŽÎēΡ ĪƒĪ„Îˇ βΚβÎģΚÎŋθΎÎēΡ", + "action.addToLibrary.success": "Î ĪÎŋĪƒĪ„Î­Î¸ÎˇÎēÎĩ ĪƒĪ„Îˇ βΚβÎģΚÎŋθΎÎēΡ", + "action.addToLibrary.error": "ÎŖĪ†ÎŦÎģÎŧÎą Î ĪÎŋĪƒÎ¸ÎŽÎēÎˇĪ‚ ĪƒĪ„Îˇ βΚβÎģΚÎŋθΎÎēÎˇĪ‚", + "action.removeFromLibrary": "Î‘Ī†ÎąÎ¯ĪÎĩĪƒÎˇ ÎąĪ€ĪŒ Ī„Îˇ βΚβÎģΚÎŋθΎÎēΡ", + "action.removeFromLibrary.success": "Î‘Ī†ÎąÎšĪÎ­Î¸ÎˇÎēÎĩ ÎąĪ€ĪŒ Ī„Îˇ βΚβÎģΚÎŋθΎÎēΡ", + "action.addToQueue": "Î ĪÎŋĪƒÎ¸ÎŽÎēΡ ĪƒĪ„ÎˇÎŊ Îŋ΅΁ÎŦ", + "action.addToQueue.success": "Î ĪÎŋĪƒĪ„Î­Î¸ÎˇÎēÎĩ ĪƒĪ„ÎˇÎŊ Îŋ΅΁ÎŦ", + "action.addToQueue.error": "Î ĪÎŋĪƒĪ„Î­Î¸ÎˇÎēÎĩ ĪƒĪ„ÎˇÎŊ Îŋ΅΁ÎŦ", + "action.removeFromQueue": "Î‘Ī†ÎąÎ¯ĪÎĩĪƒÎˇ ÎąĪ€ĪŒ Ī„ÎˇÎŊ Îŋ΅΁ÎŦ", + "action.removeFromQueue.success": "Î‘Ī†ÎąÎšĪÎ­Î¸ÎˇÎēÎĩ ÎąĪ€ĪŒ Ī„ÎˇÎŊ Îŋ΅΁ÎŦ", + "action.removeFromQueue.error": "ÎŖĪ†ÎŦÎģÎŧÎą Î‘Ī†ÎąÎ¯ĪÎĩĪƒÎˇĪ‚ ÎąĪ€ĪŒ Ī„ÎˇÎŊ Îŋ΅΁ÎŦ", + "action.createPlaylist": "ΔηÎŧΚÎŋĪ…ĪÎŗÎ¯Îą ÎŊÎ­ÎąĪ‚ ÎģÎ¯ĪƒĪ„ÎąĪ‚ ÎąÎŊÎąĪ€ÎąĪÎąÎŗĪ‰ÎŗÎŽĪ‚", + "action.addToPlaylist": "Î ĪÎŋĪƒÎ¸ÎŽÎēΡ ΃Îĩ ÎģÎ¯ĪƒĪ„Îą", + "action.removeFromPlaylist": "Î‘Ī†ÎąÎ¯ĪÎĩĪƒÎˇ ÎąĪ€ĪŒ ÎģÎ¯ĪƒĪ„Îą", + "action.addToFavorites": "Î ĪÎŋĪƒÎ¸ÎŽÎēΡ ĪƒĪ„Îą ÎąÎŗÎąĪ€ÎˇÎŧέÎŊÎą", + "action.follow": "ΑÎēÎŋÎģÎŋĪÎ¸ÎˇĪƒÎˇ", + "action.follow.success": "ΑÎēÎŋÎģÎŋĪ…Î¸ÎŽÎ¸ÎˇÎēÎĩ", + "action.follow.error": "ÎŖĪ†ÎŦÎģÎŧÎą ÎąÎēÎŋÎģÎŋĪÎ¸ÎˇĪƒÎˇĪ‚", + "action.unfollow": "ΔιαÎēÎŋĪ€ÎŽ ÎąÎēÎŋÎģÎŋĪÎ¸ÎˇĪƒÎˇĪ‚", + "action.unfollow.success": "ÎˆÎŗÎšÎŊÎĩ δΚιÎēÎŋĪ€ÎŽ ÎąÎēÎŋÎģÎŋĪÎ¸ÎˇĪƒÎˇĪ‚", + "action.unfollow.error": "ÎŖĪ†ÎŦÎģÎŧÎą δΚιÎēÎŋĪ€ÎŽĪ‚ ÎąÎēÎŋÎģÎŋĪÎ¸ÎˇĪƒÎˇĪ‚ ", + "action.playNext": "ΑÎŊÎąĪ€ÎąĪÎąÎŗĪ‰ÎŗÎŽ Ή΂ ÎĩĪ€ĪŒÎŧÎĩÎŊÎŋĪ…", + "action.playLater": "ΑÎŊÎąĪ€ÎąĪÎąÎŗĪ‰ÎŗÎŽ ÎąĪÎŗĪŒĪ„ÎĩĪÎą", + "action.startRadio": "ΈÎŊÎąĪÎžÎˇ ĪÎąÎ´ÎšÎŋĪ†ĪŽÎŊÎŋĪ…", + "action.goToArtist": "ΜÎĩĪ„ÎŦÎ˛ÎąĪƒÎˇ ΃Îĩ ÎēÎąÎģÎģÎšĪ„Î­Ī‡ÎŊΡ", + "action.goToAlbum": "ΜÎĩĪ„ÎŦÎ˛ÎąĪƒÎˇ ΃Îĩ ÎŦÎģÎŧĪ€ÎŋĪ…Îŧ", + "action.moveToTop": "ΜÎĩĪ„ÎąÎēίÎŊÎˇĪƒÎˇ ĪƒĪ„Îˇ ÎēÎŋĪĪ…Ī†ÎŽ", + "action.share": "ΚÎŋΚÎŊÎŽ Ī‡ĪÎŽĪƒÎˇ", + "action.rename": "ΜÎĩĪ„ÎŋÎŊÎŋÎŧÎąĪƒÎ¯Îą", + "action.love": "ΜÎŋĪ… ÎąĪÎ­ĪƒÎĩΚ Ī€ÎŋÎģĪ", + "action.unlove": "ΑÎŊÎąÎ¯ĪÎĩĪƒÎˇ \"ΜÎŋĪ… ÎąĪÎ­ĪƒÎĩΚ\"", + "action.dislike": "ΔÎĩÎŊ ÎŧÎŋĪ… ÎąĪÎ­ĪƒÎĩΚ", + "action.undoDislike": "ΑÎŊÎąÎ¯ĪÎĩĪƒÎˇ \"ΔÎĩÎŊ ÎŧÎŋĪ… ÎąĪÎ­ĪƒÎĩΚ\"", + "action.showWebRemoteQR": "ΕÎŧΆÎŦÎŊÎšĪƒÎˇ Web Remote QR", + "action.playTracksNext": "ΑÎŊÎąĪ€ÎąĪÎąÎŗĪ‰ÎŗÎŽ ${app.selectedMediaItems.length} Ī„ĪÎąÎŗÎŋĪ…Î´ÎšĪŽÎŊ Ή΂ ÎĩĪ€ĪŒÎŧÎĩÎŊΉÎŊ", + "action.playTracksLater": "ΑÎŊÎąĪ€ÎąĪÎąÎŗĪ‰ÎŗÎŽ ${app.selectedMediaItems.length} Ī„ĪÎąÎŗÎŋĪ…Î´ÎšĪŽÎŊ ÎąĪÎŗĪŒĪ„ÎĩĪÎą", + "action.removeTracks": "Î‘Ī†ÎąÎ¯ĪÎĩĪƒÎˇ ${self.selectedItems.length} Ī„ĪÎąÎŗÎŋĪ…Î´ÎšĪŽÎŊ ÎąĪ€ĪŒ Ī„ÎˇÎŊ Îŋ΅΁ÎŦ", + "action.import": "Î•ÎšĪƒÎąÎŗĪ‰ÎŗÎŽ", + "action.export": "Î•ÎžÎąÎŗĪ‰ÎŗÎŽ", + "action.showAlbum": "ΕÎŧΆÎŦÎŊÎšĪƒÎˇ ÎŋÎģΌÎēÎģÎˇĪÎŋĪ… ÎŦÎģÎŧĪ€ÎŋĪ…Îŧ", + "action.tray.minimize": "ΕÎģÎąĪ‡ÎšĪƒĪ„ÎŋĪ€ÎŋÎ¯ÎˇĪƒÎˇ ĪƒĪ„Îˇ ÎŗĪ‰ÎŊÎ¯Îą ÎŗĪÎąÎŧÎŧÎŽĪ‚ ÎĩĪÎŗÎąĪƒÎšĪŽÎŊ", + "action.tray.quit": "ΈΞÎŋδÎŋĪ‚", + "action.tray.show": "ΕÎŧΆÎŦÎŊÎšĪƒÎˇ", + "action.update": "ΕÎŊΡÎŧÎ­ĪĪ‰ĪƒÎˇ", + "action.install": "Î•ÎŗÎēÎąĪ„ÎŦĪƒĪ„ÎąĪƒÎˇ", + "action.copy": "ΑÎŊĪ„ÎšÎŗĪÎąĪ†ÎŽ", + "action.newpreset": "Νέα ΀΁ÎŋĪĪÎ¸ÎŧÎšĪƒÎˇ...", + "action.deletepreset": "Î”ÎšÎąÎŗĪÎąĪ†ÎŽ ΀΁ÎŋĪĪÎ¸ÎŧÎšĪƒÎˇĪ‚", + "action.open": "ΆÎŊÎŋÎšÎŗÎŧÎą", + "settings.header.general": "ΓÎĩÎŊΚÎēÎŦ", + "settings.header.general.description": "Î ĪÎŋĪƒÎąĪÎŧÎŋÎŗÎŽ ÎŗÎĩÎŊΚÎēĪŽÎŊ ĪĪ…Î¸ÎŧÎ¯ĪƒÎĩΉÎŊ ÎŗÎšÎą Ī„Îŋ Cider.", + "settings.option.general.language": "ΓÎģĪŽĪƒĪƒÎą", + "settings.option.general.resumebehavior": "ÎŖĪ…ÎŧĪ€ÎĩĪÎšĪ†Îŋ΁ÎŦ ĪƒĪ…ÎŊÎ­Ī‡ÎšĪƒÎˇĪ‚", + "settings.option.general.resumebehavior.description": "Η ĪƒĪ…ÎŧĪ€ÎĩĪÎšĪ†Îŋ΁ÎŦ ĪƒĪ…ÎŊÎ­Ī‡ÎšĪƒÎˇĪ‚ ÎĩĪ€ÎˇĪÎĩÎŦÎļÎĩΚ Ī„ÎŋÎŊ Ī„ĪĪŒĪ€Îŋ ÎŧÎĩ Ī„ÎŋÎŊ ÎŋĪ€ÎŋίÎŋ Ī„Îŋ Cider θι ĪƒĪ…ÎŊÎĩĪ‡Î¯ĪƒÎĩΚ Ī„Îˇ ĪƒĪ…ÎŊÎĩÎ´ĪÎ¯Îą ĪƒÎąĪ‚ ĪŒĪ„ÎąÎŊ ÎĩĪ€ÎšĪƒĪ„ĪÎ­ĪˆÎĩĪ„Îĩ ĪƒĪ„ÎˇÎŊ ÎĩĪ†ÎąĪÎŧÎŋÎŗÎŽ.", + "settings.option.general.resumebehavior.locally": "ΤÎŋĪ€ÎšÎēΌ", + "settings.option.general.resumebehavior.locally.description": "ΤÎŋ Cider θι ĪƒĪ…ÎŊÎĩĪ‡Î¯ĪƒÎĩΚ Ī„ÎˇÎŊ Ī„ÎĩÎģÎĩĪ…Ī„ÎąÎ¯Îą ĪƒĪ…ÎŊÎĩÎ´ĪÎ¯Îą ĪƒÎąĪ‚ ÎąĪ…Ī„ÎŽĪ‚ Ī„ÎˇĪ‚ ĪƒĪ…ĪƒÎēÎĩĪ…ÎŽĪ‚.", + "settings.option.general.resumebehavior.history": "Î™ĪƒĪ„ÎŋĪÎšÎēΌ", + "settings.option.general.resumebehavior.history.description": "ΤÎŋ Cider θι βÎŦÎģÎĩΚ ĪƒĪ„ÎˇÎŊ Îŋ΅΁ÎŦ Ī„Îŋ Ī„ÎĩÎģÎĩĪ…Ī„ÎąÎ¯Îŋ Ī„ĪÎąÎŗÎŋĪÎ´Îš ÎąĪ€ĪŒ Ī„Îŋ ĪƒĪ…ÎŊÎŋÎģΚÎēΌ ÎšĪƒĪ„ÎŋĪÎšÎēΌ Apple Music, ΌÎģΉÎŊ ΄ΉÎŊ ĪƒĪ…ĪƒÎēÎĩĪ…ĪŽÎŊ ĪƒÎąĪ‚.", + "settings.option.general.language.main": "ΓÎģĪŽĪƒĪƒÎĩĪ‚", + "settings.option.general.language.fun": "ΓÎģĪŽĪƒĪƒÎĩĪ‚ ÎŗÎšÎą Ī€ÎģÎŦÎēÎą", + "settings.option.general.language.unsorted": "Î‘Ī„ÎąÎžÎšÎŊΌÎŧÎˇĪ„ÎĩĪ‚", + "settings.option.general.updateCider": "ΕÎŊΡÎŧÎ­ĪĪ‰ĪƒÎˇ Cider", + "settings.option.general.updateCider.branch": "ΚÎģÎŦδÎŋĪ‚ ÎĩÎŊΡÎŧÎ­ĪĪ‰ĪƒÎˇĪ‚ Cider", + "settings.option.general.updateCider.branch.description": "Î•Ī€ÎšÎģÎ­ÎžĪ„Îĩ Ī„ÎŋÎŊ ÎēÎģÎŦδÎŋ ĪƒĪ„ÎŋÎŊ ÎŋĪ€ÎŋίÎŋ θι ÎŗÎ¯ÎŊÎĩĪ„ÎąÎš Ρ ÎĩÎŊΡÎŧÎ­ĪĪ‰ĪƒÎˇ Ī„ÎŋĪ… Cider", + "settings.option.general.updateCider.branch.main": "ÎŖĪ„ÎąÎ¸Îĩ΁Ό", + "settings.option.general.updateCider.branch.develop": "ΑÎŊÎąĪ€Ī„Ī…ÎžÎšÎąÎēΌ", + "settings.header.audio": "Î‰Ī‡ÎŋĪ‚", + "settings.header.audio.description": "Î ĪÎŋĪƒÎąĪÎŧÎŋÎŗÎŽ ĪĪ…Î¸ÎŧÎ¯ĪƒÎĩΉÎŊ ÎŽĪ‡ÎŋĪ… ÎŗÎšÎą Ī„Îŋ Cider.", + "settings.option.audio.volumeStep": "ΒήÎŧÎąĪ„Îą έÎŊĪ„ÎąĪƒÎˇĪ‚", + "settings.option.audio.maxVolume": "ÎœÎ­ÎŗÎšĪƒĪ„Îˇ έÎŊĪ„ÎąĪƒÎˇ", + "settings.option.audio.quality": "ΠÎŋÎšĪŒĪ„ÎˇĪ„Îą ÎŽĪ‡ÎŋĪ…", + "settings.header.audio.quality.hireslossless": "Lossless Ī…ĪˆÎˇÎģÎŽĪ‚ ÎąÎŊÎŦÎģĪ…ĪƒÎˇĪ‚", + "settings.header.audio.quality.hireslossless.description": "Î­Ī‰Ī‚ ÎēιΚ 24-bit/192 kHz", + "settings.header.audio.quality.lossless": "Lossless", + "settings.header.audio.quality.lossless.description": "Î­Ī‰Ī‚ ÎēιΚ 24-bit/48 kHz", + "settings.header.audio.quality.high": "ÎĨĪˆÎˇÎģÎŽ", + "settings.header.audio.quality.high.description": "256 kbps", + "settings.header.audio.quality.standard": "ΚαÎŊÎŋÎŊΚÎēÎŽ", + "settings.header.audio.quality.standard.description": "64 kbps", + "settings.option.audio.seamlessTransition": "ΑδιÎŦÎēÎŋĪ€Îˇ ÎŧÎĩĪ„ÎŦÎ˛ÎąĪƒÎˇ ÎŽĪ‡ÎŋĪ…", + "settings.option.audio.enableAdvancedFunctionality": "ΕÎŊÎĩĪÎŗÎŋĪ€ÎŋÎ¯ÎˇĪƒÎˇ ΀΁ÎŋÎˇÎŗÎŧέÎŊÎˇĪ‚ ÎģÎĩÎšĪ„ÎŋĪ…ĪÎŗÎšÎēĪŒĪ„ÎˇĪ„ÎąĪ‚", + "settings.option.audio.enableAdvancedFunctionality.description": "ΕÎŊÎĩĪÎŗÎŋĪ€ÎŋÎšĪŽÎŊĪ„ÎąĪ‚ Ī„Îˇ ÎģÎĩÎšĪ„ÎŋĪ…ĪÎŗÎšÎēĪŒĪ„ÎˇĪ„Îą AudioContext θι ÎĩĪ€ÎšĪ„ĪÎ­ĪˆÎĩΚ ΃Îĩ ÎĩĪ€ÎĩÎēĪ„ÎąÎŧέÎŊÎĩĪ‚ Î´Ī…ÎŊÎąĪ„ĪŒĪ„ÎˇĪ„ÎĩĪ‚ ÎŽĪ‡ÎŋĪ… ĪŒĪ€Ī‰Ī‚ ΚαÎŊÎŋÎŊΚÎēÎŋĪ€ÎŋÎ¯ÎˇĪƒÎˇ ΈÎŊĪ„ÎąĪƒÎˇĪ‚ Î‰Ī‡ÎŋĪ…, Î™ĪƒÎŋĪƒĪ„ÎąÎ¸ÎŧÎšĪƒĪ„Î­Ī‚ ÎēιΚ ÎŸĪ€Ī„ÎšÎēÎŋĪ€ÎŋÎšÎˇĪ„Î­Ī‚, Ī‰ĪƒĪ„ĪŒĪƒÎŋ ΃Îĩ ÎēÎŦĪ€ÎŋΚι ĪƒĪ…ĪƒĪ„ÎŽÎŧÎąĪ„Îą ÎŧĪ€Îŋ΁Îĩί ÎŊÎą ΀΁ÎŋÎēÎąÎģÎ­ĪƒÎĩΚ Ī„ĪÎąĪÎģÎšĪƒÎŧÎą ÎŽĪ‡ÎŋĪ….", + "settings.option.audio.audioLab": "Cider Audio Lab", + "settings.option.audio.audioLab.description": "ΠÎĩĪÎšÎ­Ī‡ÎĩΚ ÎŧΚι Ī€ÎŋΚÎēΚÎģÎ¯Îą ÎąĪ€ĪŒ ΄΁ÎŋĪ€ÎŋĪ€ÎŋÎšÎŽĪƒÎĩÎšĪ‚ ÎŽĪ‡ÎŋĪ… Ī€ÎŋĪ… Î­ÎŗÎšÎŊÎąÎŊ ÎąĪ€ĪŒ Ī„ÎˇÎŊ ÎŋÎŧÎŦδι ΀΁ÎŋÎŗĪÎąÎŧÎŧÎąĪ„ÎšĪƒĪ„ĪŽÎŊ Ī„ÎŋĪ… Cider", + "settings.warn.audioLab.withoutAF": "ΤÎŋ AudioContext (΀΁ÎŋÎˇÎŗÎŧέÎŊΡ ÎģÎĩÎšĪ„ÎŋĪ…ĪÎŗÎšÎēĪŒĪ„ÎˇĪ„Îą) ÎąĪ€ÎąÎšĪ„ÎĩÎ¯Ī„ÎąÎš ÎŗÎšÎą Ī„ÎˇÎŊ ÎĩÎŊÎĩĪÎŗÎŋĪ€ÎŋÎ¯ÎˇĪƒÎˇ Ī„ÎŋĪ… Cider Audio Laboratory.", + "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity": "ΈÎŊĪ„ÎąĪƒÎˇ Analog Warmth", + "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.description": "ΑÎģÎģÎŦÎļÎĩΚ Ī„ÎˇÎŊ έÎŊĪ„ÎąĪƒÎˇ Ī„ÎˇĪ‚ ÎĩĪ€ÎĩΞÎĩĪÎŗÎąĪƒÎ¯ÎąĪ‚ Ī„ÎŋĪ… Analog Warmth Module.", + "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "ΤÎŋ CAP δÎĩÎŊ ÎĩίÎŊιΚ ĪƒĪ…ÎŧÎ˛ÎąĪ„ĪŒ ÎŧÎĩ Ī„Îˇ Î§Ī‰ĪÎšÎēÎŋĪ€ÎŋÎ¯ÎˇĪƒÎˇ Î‰Ī‡ÎŋĪ…. Î ÎąĪÎąÎēÎąÎģÎŋĪÎŧÎĩ ÎąĪ€ÎĩÎŊÎĩĪÎŗÎŋĪ€ÎŋÎšÎŽĪƒĪ„Îĩ Ī„Îˇ Î§Ī‰ĪÎšÎēÎŋĪ€ÎŋÎ¯ÎˇĪƒÎˇ Î‰Ī‡ÎŋĪ… ÎŗÎšÎą ÎŊÎą ĪƒĪ…ÎŊÎĩĪ‡Î¯ĪƒÎĩĪ„Îĩ.", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "ΈÎŊĪ„ÎąĪƒÎˇ CAP", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "ΑÎģÎģÎŦÎļÎĩΚ Ī„ÎˇÎŊ έÎŊĪ„ÎąĪƒÎˇ Ī„ÎˇĪ‚ ÎĩĪ€ÎĩΞÎĩĪÎŗÎąĪƒÎ¯ÎąĪ‚ Ī„ÎŋĪ… ÎŽĪ‡ÎŋĪ…. (Η ÎĩĪ€ÎšÎ¸ÎĩĪ„ÎšÎēÎŽ ÎĩĪ€ÎĩΞÎĩĪÎŗÎąĪƒÎ¯Îą ÎŧĪ€Îŋ΁Îĩί ÎŊÎą ÎąĪ€ÎŋĪ†Î­ĪÎĩΚ ÎąÎŊÎĩĪ€ÎšÎ¸ĪÎŧÎˇĪ„Îą ÎąĪ€ÎŋĪ„ÎĩÎģÎ­ĪƒÎŧÎąĪ„Îą)", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "ΚαÎŊÎŋÎŊΚÎēÎŽ", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Î•Ī€ÎšÎ¸ÎĩĪ„ÎšÎēÎŽ", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "ΚαÎŊÎŋÎŊΚÎēÎŋĪ€ÎŋÎ¯ÎˇĪƒÎˇ ΈÎŊĪ„ÎąĪƒÎˇĪ‚ Î‰Ī‡ÎŋĪ…", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "ΚαÎŊÎŋÎŊΚÎēÎŋĪ€ÎŋΚÎĩί Ī„ÎˇÎŊ έÎŊĪ„ÎąĪƒÎˇ ÎŗÎšÎą ÎŧÎĩÎŧÎŋÎŊΉÎŧέÎŊÎą ÎēÎŋÎŧÎŧÎŦĪ„ÎšÎą ÎŗÎšÎą ÎŧΚι Ī€ÎšÎŋ ÎŋÎŧÎŋÎšĪŒÎŧÎŋĪĪ†Îˇ ÎĩÎŧĪ€ÎĩÎšĪÎ¯Îą ÎąÎēĪĪŒÎąĪƒÎˇĪ‚.", + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Î§Ī‰ĪÎšÎēÎŋĪ€ÎŋÎ¯ÎˇĪƒÎˇ Î‰Ī‡ÎŋĪ…", + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "ΠΚÎŋ Ī„ĪÎšĪƒÎ´ÎšÎŦĪƒĪ„ÎąĪ„ÎŋĪ‚ ÎēιΚ Ī‡Ī‰ĪÎšÎēÎŋĪ€ÎŋΚΡÎŧέÎŊÎŋĪ‚ ÎŽĪ‡ÎŋĪ‚ (ĪƒÎˇÎŧÎĩÎ¯Ī‰ĪƒÎˇ: Î‘Ī…Ī„ĪŒ δÎĩÎŊ ÎĩίÎŊιΚ Dolby Atmos)", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Î§Ī‰ĪÎšÎēÎŋĪ€ÎŋÎ¯ÎˇĪƒÎˇ Cider", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "Pre-tuned Î•Ī†Î­ Î§Ī‰ĪÎšÎēÎŋĪ€ÎŋÎ¯ÎˇĪƒÎˇĪ‚, ÎąĪ€ÎĩÎŊÎĩĪÎŗÎŋĪ€ÎŋΚÎĩί Ī„ÎšĪ‚ ΀΁ÎŋĪƒÎąĪÎŧĪŒĪƒÎšÎŧÎĩĪ‚ ĪĪ…Î¸ÎŧÎ¯ĪƒÎĩÎšĪ‚ Ī„ÎˇĪ‚ Î§Ī‰ĪÎšÎēÎŋĪ€ÎŋÎ¯ÎˇĪƒÎˇĪ‚ Î‰Ī‡ÎŋĪ…. Η Î§Ī‰ĪÎšÎēÎŋĪ€ÎŋÎ¯ÎˇĪƒÎˇ Î‰Ī‡ÎŋĪ… Ī€ĪÎ­Ī€ÎĩΚ ÎŊÎą ÎĩίÎŊιΚ ÎĩÎŊÎĩĪÎŗÎŋĪ€ÎŋΚΡÎŧέÎŊΡ.", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Î ĪÎŋĪ†Î¯Îģ Î§Ī‰ĪÎšÎēÎŋĪ€ÎŋÎ¯ÎˇĪƒÎˇĪ‚ Cider", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description": "ΑÎģÎģÎŦÎļÎĩΚ Ī„Îŋ ΀΁ÎŋĪ†Î¯Îģ Ī„ÎˇĪ‚ Î§Ī‰ĪÎšÎēÎŋĪ€ÎŋÎ¯ÎˇĪƒÎˇĪ‚. (Î‘Ī€ÎąÎšĪ„Îĩί ÎĩĪ€ÎąÎŊÎĩÎēÎēίÎŊÎˇĪƒÎˇ)", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard": "ΚαÎŊÎŋÎŊΚÎēΌ", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile": "ΑÎēÎŋĪ…ĪŒĪ†ÎšÎģÎŋĪ‚", + "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "Η Î§Ī‰ĪÎšÎēÎŋĪ€ÎŋÎ¯ÎˇĪƒÎˇ δÎĩÎŊ ÎĩίÎŊιΚ ĪƒĪ…ÎŧÎ˛ÎąĪ„ÎŽ ÎŧÎĩ Ī„Îŋ CAP. Î ÎąĪÎąÎēÎąÎģÎŋĪÎŧÎĩ ÎąĪ€ÎĩÎŊÎĩĪÎŗÎŋĪ€ÎŋÎšÎŽĪƒĪ„Îĩ Ī„Îŋ CAP ÎŗÎšÎą ÎŊÎą ĪƒĪ…ÎŊÎĩĪ‡Î¯ĪƒÎĩĪ„Îĩ.", + "settings.header.visual": "ÎŸĪ€Ī„ÎšÎēÎŦ", + "settings.header.visual.description": "Î ĪÎŋĪƒÎąĪÎŧÎŋÎŗÎŽ ÎŋĪ€Ī„ÎšÎēĪŽÎŊ ĪĪ…Î¸ÎŧÎ¯ĪƒÎĩΉÎŊ ÎŗÎšÎą Ī„Îŋ Cider.", + "settings.option.visual.windowBackgroundStyle": "ÎŖĪ„Ī…Îģ ÎĻΌÎŊĪ„ÎŋĪ… Î ÎąĪÎąÎ¸ĪĪÎŋĪ…", + "settings.header.visual.windowBackgroundStyle.none": "ΚαÎŊέÎŊÎą", + "settings.header.visual.windowBackgroundStyle.artwork": "Î•ÎžĪŽĪ†Ī…ÎģÎģÎŋ", + "settings.header.visual.windowBackgroundStyle.image": "ΕιÎēΌÎŊÎą", + "settings.option.visual.animatedArtwork": "ΚιÎŊÎŋĪÎŧÎĩÎŊÎŋ Î•ÎžĪŽĪ†Ī…ÎģÎģÎŋ", + "settings.header.visual.animatedArtwork.always": "ΠÎŦÎŊĪ„Îą", + "settings.header.visual.animatedArtwork.limited": "ΠÎĩĪÎšÎŋĪÎšĪƒÎŧĪŒĪ‚ ΃Îĩ ΃ÎĩÎģίδÎĩĪ‚ ÎēιΚ ÎĩΚδΚÎēÎ­Ī‚ ÎēÎąĪ„ÎąĪ‡Ī‰ĪÎŽĪƒÎĩÎšĪ‚", + "settings.header.visual.animatedArtwork.disable": "Î‘Ī€ÎĩÎŊÎĩĪÎŗÎŋĪ€ÎŋΚΡÎŧέÎŊÎŋ Ī€ÎąÎŊĪ„ÎŋĪ", + "settings.option.visual.animatedArtworkQuality": "ΠÎŋÎšĪŒĪ„ÎˇĪ„Îą ΚιÎŊÎŋĪÎŧÎĩÎŊÎŋĪ… Î•ÎžĪ‰Ī†ĪÎģÎģÎŋĪ…", + "settings.header.visual.animatedArtworkQuality.low": "ΧιÎŧΡÎģÎŽ", + "settings.header.visual.animatedArtworkQuality.medium": "ÎœÎ­Ī„ĪÎšÎą", + "settings.header.visual.animatedArtworkQuality.high": "ÎĨĪˆÎˇÎģÎŽ", + "settings.header.visual.animatedArtworkQuality.veryHigh": "ΠÎŋÎģĪ ÎĨĪˆÎˇÎģÎŽ", + "settings.header.visual.animatedArtworkQuality.extreme": "ΑÎēĪÎąÎ¯Îą", + "settings.option.visual.animatedWindowBackground": "ΚιÎŊÎŋĪÎŧÎĩÎŊÎŋ ÎĻΌÎŊĪ„Îŋ Î ÎąĪÎąÎ¸ĪĪÎŋĪ…", + "settings.option.visual.hardwareAcceleration": "Î•Ī€ÎšĪ„ÎŦ·΅ÎŊĪƒÎˇ ÎĨÎģΚÎēÎŋĪ", + "settings.option.visual.hardwareAcceleration.description": "Î‘Ī€ÎąÎšĪ„Îĩί ÎĩĪ€ÎąÎŊÎĩÎēÎēίÎŊÎˇĪƒÎˇ", + "settings.header.visual.hardwareAcceleration.default": "Î ĪÎŋÎĩĪ€ÎšÎģÎŋÎŗÎŽ", + "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", + "settings.header.visual.theme": "ΘέÎŧÎą", + "settings.option.visual.theme.github.download": "Î•ÎŗÎēÎąĪ„ÎŦĪƒĪ„ÎąĪƒÎˇ ÎąĪ€ĪŒ ĪƒĪÎŊδÎĩ΃ÎŧÎŋ GitHub", + "settings.option.visual.theme.github.explore": "ΕξÎĩ΁ÎĩĪÎŊÎˇĪƒÎˇ θÎĩÎŧÎŦ΄ΉÎŊ GitHub", + "settings.header.visual.theme.github.page": "ΘέÎŧÎąĪ„Îą ÎąĪ€ĪŒ Ī„Îŋ GitHub", + "settings.option.visual.theme.github.install.confirm": "ΘέÎģÎĩĪ„Îĩ ĪƒÎ¯ÎŗÎŋĪ…ĪÎą ÎŊÎą ÎĩÎŗÎēÎąĪ„ÎąĪƒĪ„ÎŽĪƒÎĩĪ„Îĩ Ī„Îŋ θέÎŧÎą {{ repo }};", + "settings.prompt.visual.theme.github.URL": "Î•ÎšĪƒÎŦÎŗÎĩĪ„Îĩ Ī„ÎŋÎŊ ĪƒĪÎŊδÎĩ΃ÎŧÎŋ Ī„ÎŋĪ… θέÎŧÎąĪ„ÎŋĪ‚ Ī€ÎŋĪ… θέÎģÎĩĪ„Îĩ ÎŊÎą ÎĩÎŗÎēÎąĪ„ÎąĪƒĪ„ÎŽĪƒÎĩĪ„Îĩ", + "settings.notyf.visual.theme.install.success": "ΤÎŋ θέÎŧÎą ÎĩÎŗÎēÎąĪ„ÎąĪƒĪ„ÎŦθΡÎēÎĩ ÎŧÎĩ ÎĩĪ€ÎšĪ„Ī…Ī‡Î¯Îą", + "settings.notyf.visual.theme.install.error": "Î‘Ī€ÎŋĪ„Ī…Ī‡Î¯Îą ÎĩÎŗÎēÎąĪ„ÎŦĪƒĪ„ÎąĪƒÎˇĪ‚ Ī„ÎŋĪ… θέÎŧÎąĪ„ÎŋĪ‚", + "settings.option.visual.theme.default": "Cider", + "settings.option.visual.theme.dark": "ÎŖÎēÎŋĪ„ÎĩΚÎŊΌ", + "settings.option.visual.showPersonalInfo": "ΕÎŧΆÎŦÎŊÎšĪƒÎˇ ΀΁ÎŋĪƒĪ‰Ī€ÎšÎēĪŽÎŊ ĪƒĪ„ÎŋÎšĪ‡ÎĩÎ¯Ī‰ÎŊ", + "settings.header.lyrics": "ÎŖĪ„Î¯Ī‡ÎŋΚ", + "settings.header.lyrics.description": "Î ĪÎŋĪƒÎąĪÎŧÎŋÎŗÎŽ ĪĪ…Î¸ÎŧÎ¯ĪƒÎĩΉÎŊ ĪƒĪ„Î¯Ī‡Ī‰ÎŊ ÎŗÎšÎą Ī„Îŋ Cider.", + "settings.option.lyrics.enableMusixmatch": "ΕÎŊÎĩĪÎŗÎŋĪ€ÎŋÎ¯ÎˇĪƒÎˇ ÎŖĪ„Î¯Ī‡Ī‰ÎŊ Musixmatch", + "settings.option.lyrics.enableMusixmatchKaraoke": "ΕÎŊÎĩĪÎŗÎŋĪ€ÎŋÎ¯ÎˇĪƒÎˇ ΛÎĩÎšĪ„ÎŋĪ…ĪÎŗÎ¯ÎąĪ‚ ÎšÎąĪÎąĪŒÎēÎĩ (Musixmatch ÎŧΌÎŊÎŋ)", + "settings.option.lyrics.musixmatchPreferredLanguage": "Î ĪÎŋĪ„ÎšÎŧĪŽÎŧÎĩÎŊΡ ΓÎģĪŽĪƒĪƒÎą ΜÎĩĪ„ÎŦĪ†ĪÎąĪƒÎˇĪ‚ Musixmatch", + "settings.option.lyrics.enableYoutubeLyrics": "ΕÎŊÎĩĪÎŗÎŋĪ€ÎŋÎ¯ÎˇĪƒÎˇ ÎŖĪ„Î¯Ī‡Ī‰ÎŊ Youtube ÎŗÎšÎą ΜÎŋĪ…ĪƒÎšÎēÎŦ ΒίÎŊĪ„ÎĩÎŋ", + "settings.header.connectivity": "ÎŖĪÎŊδÎĩĪƒÎˇ", + "settings.header.connectivity.description": "Î ĪÎŋĪƒÎąĪÎŧÎŋÎŗÎŽ ĪĪ…Î¸ÎŧÎ¯ĪƒÎĩΉÎŊ ĪƒĪÎŊδÎĩĪƒÎˇĪ‚ ÎŗÎšÎą Ī„Îŋ Cider.", + "settings.option.connectivity.discordRPC": "Discord Rich Presence", + "settings.option.connectivity.playbackNotifications": "ΕιδÎŋĪ€ÎŋÎšÎŽĪƒÎĩÎšĪ‚ ΑÎŊÎąĪ€ÎąĪÎąÎŗĪ‰ÎŗÎŽĪ‚", + "settings.header.connectivity.discordRPC.cider": "ΕÎŧΆÎŦÎŊÎšĪƒÎˇ Ή΂ 'Cider'", + "settings.header.connectivity.discordRPC.appleMusic": "ΕÎŧΆÎŦÎŊÎšĪƒÎˇ Ή΂ 'Apple Music'", + "settings.option.connectivity.discordRPC.clearOnPause": "ΕÎēÎēιθÎŦĪÎšĪƒÎˇ Ī„ÎŋĪ… Discord Rich Presence ĪƒĪ„ÎˇÎŊ Î ÎąĪĪƒÎˇ", + "settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling", + "settings.option.connectivity.lastfmScrobble.delay": "ÎšÎąÎ¸Ī…ĪƒĪ„Î­ĪÎˇĪƒÎˇ LastFM Scrobble (%)", + "settings.option.connectivity.lastfmScrobble.nowPlaying": "ΕÎŊÎĩĪÎŗÎŋĪ€ÎŋÎ¯ÎˇĪƒÎˇ LastFM \"Now Playing\"", + "settings.option.connectivity.lastfmScrobble.removeFeatured": "Î‘Ī†ÎąÎ¯ĪÎĩĪƒÎˇ ÎēÎąÎģÎģÎšĪ„Îĩ·ÎŊĪŽÎŊ feature ÎąĪ€ĪŒ Ī„ÎŋÎŊ Ī„Î¯Ī„ÎģÎŋ Ī„ÎŋĪ… Ī„ĪÎąÎŗÎŋĪ…Î´ÎšÎŋĪ (LastFM)", + "settings.option.connectivity.lastfmScrobble.filterLoop": "ÎĻΚÎģ΄΁ÎŦĪÎšĪƒÎŧÎą ÎĩĪ€ÎąÎŊÎĩΚÎģΡÎŧÎŧέÎŊÎŋĪ… Ī„ĪÎąÎŗÎŋĪ…Î´ÎšÎŋĪ (LastFM)", + "settings.header.debug": "Î‘Ī€ÎŋĪƒĪ†ÎąÎģÎŧÎŦĪ„Ī‰ĪƒÎˇ", + "settings.option.debug.copy_log": "ΑÎŊĪ„ÎšÎŗĪÎąĪ†ÎŽ ÎąĪĪ‡ÎĩÎ¯Ī‰ÎŊ ÎēÎąĪ„ÎąÎŗĪÎąĪ†ÎŽĪ‚ ĪƒĪ„Îŋ Ī€ĪĪŒĪ‡ÎĩÎšĪÎŋ", + "settings.option.debug.openAppData": "ΆÎŊÎŋÎšÎŗÎŧÎą Ī„ÎŋĪ… Ī†ÎąÎēέÎģÎŋĪ… Cider", + "settings.header.experimental": "ΠÎĩÎšĪÎąÎŧÎąĪ„ÎšÎēÎ­Ī‚", + "settings.header.experimental.description": "Î ĪÎŋĪƒÎąĪÎŧÎŋÎŗÎŽ Ī€ÎĩÎšĪÎąÎŧÎąĪ„ÎšÎēĪŽÎŊ ĪĪ…Î¸ÎŧÎ¯ĪƒÎĩΉÎŊ ÎŗÎšÎą Ī„Îŋ Cider.", + "settings.option.experimental.compactUI": "ÎŖĪ…ÎŧĪ€ÎąÎŗÎŽĪ‚ ΔιÎĩĪ€ÎąĪ†ÎŽ", + "settings.option.experimental.closeButtonBehaviour": "ÎŖĪ…ÎŧĪ€ÎĩĪÎšĪ†Îŋ΁ÎŦ ΚÎŋĪ…ÎŧĪ€ÎšÎŋĪ Î•ÎžĪŒÎ´ÎŋĪ…", + "settings.option.experimental.closeButtonBehaviour.quit": "ΈΞÎŋδÎŋĪ‚ Ī„ÎŋĪ… Cider", + "settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "ΕÎģÎąĪ‡ÎšĪƒĪ„ÎŋĪ€ÎŋÎ¯ÎˇĪƒÎˇ ĪƒĪ„Îˇ ÎŗĪÎąÎŧÎŧÎŽ ÎĩĪÎŗÎąĪƒÎšĪŽÎŊ", + "settings.option.experimental.closeButtonBehaviour.minimizeTray": "ΕÎģÎąĪ‡ÎšĪƒĪ„ÎŋĪ€ÎŋÎ¯ÎˇĪƒÎˇ ĪƒĪ„Îˇ ÎŗĪ‰ÎŊÎ¯Îą ÎŗĪÎąÎŧÎŧÎŽĪ‚ ÎĩĪÎŗÎąĪƒÎšĪŽÎŊ", + "spatial.notTurnedOn": "Η Î§Ī‰ĪÎšÎēÎŋĪ€ÎŋÎ¯ÎˇĪƒÎˇ Î‰Ī‡ÎŋĪ… ÎĩίÎŊιΚ ÎąĪ€ÎĩÎŊÎĩĪÎŗÎŋĪ€ÎŋΚΡÎŧέÎŊΡ. Για Ī‡ĪÎŽĪƒÎˇ, Ī€ÎąĪÎąÎēÎąÎģÎŋĪÎŧÎĩ ÎĩÎŊÎĩĪÎŗÎŋĪ€ÎŋÎšÎŽĪƒĪ„Îĩ Ī„ÎˇÎŊ Ī€ĪĪŽĪ„Îą.", + "spatial.spatialProperties": "Î§Ī‰ĪÎšÎēÎ­Ī‚ Î™Î´ÎšĪŒĪ„ÎˇĪ„ÎĩĪ‚", + "spatial.width": "ΠÎģÎŦĪ„ÎŋĪ‚", + "spatial.height": "ÎŽĪˆÎŋĪ‚", + "spatial.depth": "ΒÎŦθÎŋĪ‚", + "spatial.gain": "Î‘Ī€ÎŋÎģιβΎ", + "spatial.roomMaterials": "ÎĨÎģΚÎēÎŦ Î”Ī‰ÎŧÎąĪ„Î¯ÎŋĪ…", + "spatial.roomDimensions": "Î”ÎšÎąĪƒĪ„ÎŦ΃ÎĩÎšĪ‚ Î”Ī‰ÎŧÎąĪ„Î¯ÎŋĪ…", + "spatial.roomPositions": "Î˜Î­ĪƒÎĩÎšĪ‚ Î”Ī‰ÎŧÎąĪ„Î¯ÎŋĪ…", + "spatial.setDimensions": "ÎŸĪÎšĪƒÎŧĪŒĪ‚ Î”ÎšÎąĪƒĪ„ÎŦ΃ÎĩΉÎŊ", + "spatial.setPositions": "ÎŸĪÎšĪƒÎŧĪŒĪ‚ Î˜Î­ĪƒÎĩΉÎŊ", + "spatial.up": "ΠÎŦÎŊΉ", + "spatial.front": "Î ĪĪŒĪƒÎŋĪˆÎˇ", + "spatial.left": "Î‘ĪÎšĪƒĪ„Îĩ΁ÎŦ", + "spatial.right": "ΔÎĩΞΚÎŦ", + "spatial.back": "Î Î¯ĪƒĪ‰ ÎŒĪˆÎˇ", + "spatial.down": "ΚÎŦ΄Ή", + "spatial.listener": "ΑÎē΁ÎŋÎąĪ„ÎŽĪ‚", + "spatial.audioSource": "Î ÎˇÎŗÎŽ Î‰Ī‡ÎŋĪ…", + "settings.header.unfinished": "ΗÎŧÎšĪ„ÎĩÎģÎŽĪ‚", + "remote.web.title": "Cider Remote", + "remote.web.description": "ÎŖÎąĪĪŽĪƒĪ„Îĩ Ī„ÎŋÎŊ ÎēĪ‰Î´ÎšÎēΌ QR ÎŗÎšÎą ĪƒĪÎļÎĩĪ…ÎžÎˇ Ī„ÎŋĪ… Cider ÎŧÎĩ Ī„Îŋ ÎēΚÎŊÎˇĪ„ĪŒ ĪƒÎąĪ‚", + "about.thanks": "ΜÎĩÎŗÎŦÎģÎą ÎĩĪ…Ī‡ÎąĪÎšĪƒĪ„ĪŽ ĪƒĪ„ÎˇÎŊ ΟÎŧÎŦδι Cider Collective ÎēιΚ ΃Îĩ ΌÎģÎŋĪ…Ī‚ Ī„ÎŋĪ…Ī‚ ĪƒĪ…ÎŊÎĩÎšĪƒĪ†Î­ĪÎŋÎŊĪ„Î­Ī‚ ÎŧÎąĪ‚." } \ No newline at end of file diff --git a/src/i18n/en_GB.jsonc b/src/i18n/en_GB.json similarity index 54% rename from src/i18n/en_GB.jsonc rename to src/i18n/en_GB.json index bf6030b1..6555b245 100644 --- a/src/i18n/en_GB.jsonc +++ b/src/i18n/en_GB.json @@ -1,16 +1,20 @@ { - // i18n Info - "i18n.languageName": "English (UK)", // name of language in native language - "i18n.languageNameEnglish": "English (UK)", // name of language in English - "i18n.category": "main", // main = real language, fun = fun community languages - "i18n.authors": "Core, inalone", // Authors, if you contribute to this file feel free to add your name seperated with a space + "i18n.languageName": "English (UK)", + "i18n.languageNameEnglish": "English (UK)", + "i18n.category": "main", + "i18n.authors": "Core, inalone, nosh118", "date.format": "${d} ${m}, ${y}", - // translations "term.equalizer": "Equaliser", - "settings.option.audio.enableAdvancedFunctionality.description": "Enabling AudioContext functionality will allow for extended audio features like Audio Normalisation , Equalisers and Visualisers, however on some systems this may cause stuttering in audio tracks.", - "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audio Normalisation", // Toggle + "settings.option.audio.enableAdvancedFunctionality.description": "Enabling AudioContext functionality will allow for extended audio features like Audio Normalisation, Equalisers and Visualisers - however on some systems this may cause stuttering in audio tracks.", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audio Normalisation", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalises peak volume for individual tracks to create a more uniform listening experience.", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Spatialisation", // Toggle + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Spatialisation", "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatialise audio and make audio more 3-dimensional (note: This is not Dolby Atmos)", - "spatial.notTurnedOn": "Audio Spatialisation is disabled. To use, please enable it first." + "spatial.notTurnedOn": "Audio Spatialisation is disabled. To use, please enable it first.", + "action.tray.minimize": "Minimise to Tray", + "term.tracks": "songs", + "term.track": { + "one" : "song", + "other" : "songs" + } } diff --git a/src/i18n/en_HODOR.jsonc b/src/i18n/en_HODOR.json similarity index 80% rename from src/i18n/en_HODOR.jsonc rename to src/i18n/en_HODOR.json index e925e968..5736ce86 100644 --- a/src/i18n/en_HODOR.jsonc +++ b/src/i18n/en_HODOR.json @@ -1,25 +1,15 @@ -{ // HODOR - - // i18n Info - "i18n.languageName": "HODOR", // name of language in native language - "i18n.languageNameEnglish": "HODOR", // name of language in English - "i18n.category": "fun", // main = real language, fun = fun community languages - "i18n.authors": "HODOR", // Authors, if you contribute to this file feel free to add your name seperated with a space - - // App info +{ + "i18n.languageName": "HODOR", + "i18n.languageNameEnglish": "HODOR", + "i18n.category": "fun", + "i18n.authors": "HODOR", "app.name": "HODER", - "date.format": "${m} ${d}, ${y}", - - // Dialogs "dialog.cancel": "NO HODOR", "dialog.ok": "YES HODOR", - - // Notification "notification.updatingLibrarySongs": "UPDATING HODOR HODORS...", "notification.updatingLibraryAlbums": "UPDATING HODOR HODORBUMS...", "notification.updatingLibraryArtists": "UPDATING HODOR HODORTISTS...", - // Terms "term.appleInc": "HODOR Inc.", "term.appleMusic": "HODOR MUSIC", "term.applePodcasts": "HODOR PODCASTS", @@ -91,10 +81,10 @@ "term.less": "hodor", "term.showMore": "MORE HODOR", "term.showLess": "LESS HODOR", - "term.topSongs" : "TOP HODORS", + "term.topSongs": "TOP HODORS", "term.latestReleases": "LATEST HODORS", "term.time.added": "HODOR ADDED", - "term.time.released": "HODOR RELEASED", + "term.time.released": "HODOR RELEASED", "term.time.updated": "HODOR UPDATED", "term.fullscreenView": "FULL HODOR", "term.defaultView": "NO HODOR", @@ -121,10 +111,8 @@ "term.time.seconds": "HODOR", "term.time.second": "HODOR", "term.funLanguages": "HODOR SPEAKS", - "term.videos": "HODOR WATCHING", + "term.videos": "HODOR WATCHING", "term.menu": "HODOR MENU", - - // Home "home.title": "HODOR", "home.recentlyPlayed": "RECENTLY HODOR", "home.recentlyAdded": "NEW HODOR", @@ -133,13 +121,10 @@ "home.madeForYou": "HODOR FOR YOU", "home.friendsListeningTo": "FRIENDS HODOR HODOR", "home.followedArtists": "FOLLOWED HODOR", - // Errors "error.appleMusicSubRequired": "HODOR MUSIC REQUIRES A HODOR.", "error.connectionError": "CANNOT HODOR TO HODOR.", "error.noResults": "NO HODOR.", "error.noResults.description": "TRY NEW HODOR.", - - //Podcasts "podcast.followOnCider": "FOLLOW ON HODOR", "podcast.followedOnCider": "FOLLOWING ON HODOR", "podcast.subscribeOnItunes": "SUBSCRIBE ON iHODOR", @@ -148,8 +133,6 @@ "podcast.episodes": "HODORS", "podcast.playEpisode": "PLAY HODOR", "podcast.website": "HODORCAST PAGE", - - // Actions "action.addToLibrary": "ADD HODOR", "action.addToLibrary.success": "YES HODOR", "action.addToLibrary.error": "NO HODOR", @@ -190,123 +173,96 @@ "action.import": "HODOR IN", "action.export": "HODOR OUT", "action.showAlbum": "SHOW HODOR HODOR", - // Waiting on Core for moving plugin to app.ts "action.tray.minimize": "HODOR TO TRAY", "action.tray.quit": "HODOR", "action.tray.show": "SEE", - - // Settings - General (Reserved) "settings.header.general": "HODORAL", "settings.header.general.description": "HODOR HODORAL HODOR FOR HODOR.", "settings.option.general.language": "HODOR SPEAKS", - - // Language optgroups "settings.option.general.language.main": "REAL HODORS", "settings.option.general.language.fun": "HODOR HODORS", "settings.option.general.language.unsorted": "NO HODORS", - - // Settings - Audio "settings.header.audio": "HODOR HEARS", "settings.header.audio.description": "ADJUST HODOR EARS FOR HODOR HODOR.", - "settings.option.audio.quality": "HODOR QUALITY", // Dropdown + "settings.option.audio.quality": "HODOR QUALITY", "settings.header.audio.quality.high": "HODOR!!.", "settings.header.audio.quality.low": "hodor.", "settings.header.audio.quality.auto": "HODORMATIC", - "settings.option.audio.seamlessTransition": "SEAMLESS HODOR", // Toggle - "settings.option.audio.enableAdvancedFunctionality": "ADVANCED HODOR", // Toggle + "settings.option.audio.seamlessTransition": "SEAMLESS HODOR", + "settings.option.audio.enableAdvancedFunctionality": "ADVANCED HODOR", "settings.option.audio.enableAdvancedFunctionality.description": "ENABLING HODOR FUNCTIONALITY WILL HODOR FOR EXTENDED HODOR FEATURES LIKE HODOR NORMALIZATION , HODORIZERS AND HODORS, BUT ON SOME HODOR SYSTEMS THIS HODOR CAUSE HODOR IN HODOR.", - "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "HODOR NORMALIZATION", // Toggle + "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "HODOR NORMALIZATION", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "NORMALIZES HODOR VOLUME FOR INDIVIDUAL HODORS TO HODOR A MORE HODOR LISTENING HODOR.", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "HODOR SPATIALIZATION", // Toggle + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "HODOR SPATIALIZATION", "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "SPATIALIZE HODOR AND MAKE HODOR MORE 3-HODOR (HODOR: THIS IS NOT HODOR ATMOS)", - // Settings - Visual - "settings.header.visual": "HODOR SEES", + "settings.header.visual": "HODOR SEES", "settings.header.visual.description": "ADJUST HODOR EYES FOR HODOR.", - "settings.option.visual.windowBackgroundStyle": "BACK HODOR STYLE", // Toggle + "settings.option.visual.windowBackgroundStyle": "BACK HODOR STYLE", "settings.header.visual.windowBackgroundStyle.none": "NO HODOR", "settings.header.visual.windowBackgroundStyle.artwork": "HODORWORK", "settings.header.visual.windowBackgroundStyle.image": "HODOR", - "settings.option.visual.animatedArtwork": "MOVING HODORWORK", // Dropdown + "settings.option.visual.animatedArtwork": "MOVING HODORWORK", "settings.header.visual.animatedArtwork.always": "YES HODOR", "settings.header.visual.animatedArtwork.limited": "SOME HODOR", "settings.header.visual.animatedArtwork.disable": "NO HODOR", - "settings.option.visual.animatedArtworkQuality": "MOVING HODOR QUALITY", // Dropdown + "settings.option.visual.animatedArtworkQuality": "MOVING HODOR QUALITY", "settings.header.visual.animatedArtworkQuality.low": "hodor..", "settings.header.visual.animatedArtworkQuality.medium": "HODOR.", "settings.header.visual.animatedArtworkQuality.high": "HODOR!", "settings.header.visual.animatedArtworkQuality.veryHigh": "HODOR HODOR!", "settings.header.visual.animatedArtworkQuality.extreme": "HODOOOOOOOR!!", - "settings.option.visual.animatedWindowBackground": "ANIMATED HODOR BACK", // Toggle - "settings.option.visual.hardwareAcceleration": "HODOR ACCELERATION", // Dropdown + "settings.option.visual.animatedWindowBackground": "ANIMATED HODOR BACK", + "settings.option.visual.hardwareAcceleration": "HODOR ACCELERATION", "settings.option.visual.hardwareAcceleration.description": "NEED RE HODOR", - "settings.header.visual.hardwareAcceleration.default": "HODOR.", - "settings.header.visual.hardwareAcceleration.webGPU": "WEB HODOR!!", - // Refer to term.disabled for the disabled option - "settings.option.visual.showPersonalInfo": "SHOW HODOR NAME?", // Toggle - - // Settings - Lyrics + "settings.header.visual.hardwareAcceleration.default": "HODOR.", + "settings.header.visual.hardwareAcceleration.webGPU": "WEB HODOR!!", + "settings.option.visual.showPersonalInfo": "SHOW HODOR NAME?", "settings.header.lyrics": "HODOR READS", "settings.header.lyrics.description": "ADJUST THE HODOR TEXT FOR HODOR.", - "settings.option.lyrics.enableMusixmatch": "MUSIXMATCH HODOR", // Toggle - "settings.option.lyrics.enableMusixmatchKaraoke": "HO-DOR SING MODE (MUSIXMATCH HODOR)", // Toggle - "settings.option.lyrics.musixmatchPreferredLanguage": "TRANSLATE HODOR TEXT", // Dropdown - "settings.option.lyrics.enableYoutubeLyrics": "HODOR YOUTUBE HODOR TEXT FOR HODOR VIDEOS", // Toggle - - // Settings - Connectivity + "settings.option.lyrics.enableMusixmatch": "MUSIXMATCH HODOR", + "settings.option.lyrics.enableMusixmatchKaraoke": "HO-DOR SING MODE (MUSIXMATCH HODOR)", + "settings.option.lyrics.musixmatchPreferredLanguage": "TRANSLATE HODOR TEXT", + "settings.option.lyrics.enableYoutubeLyrics": "HODOR YOUTUBE HODOR TEXT FOR HODOR VIDEOS", "settings.header.connectivity": "HODORTIVITY", "settings.header.connectivity.description": "ADJUST THE HODORTIVITY FOR HODOR.", - "settings.option.connectivity.discordRPC": "DISCORD HODOR", // Dropdown - "settings.option.connectivity.playbackNotifications": "NOTIFICATION FOR HODOR", // Toggle - // Refer to term.disabled for the disabled option + "settings.option.connectivity.discordRPC": "DISCORD HODOR", + "settings.option.connectivity.playbackNotifications": "NOTIFICATION FOR HODOR", "settings.header.connectivity.discordRPC.cider": "SEE HODOR AS 'CIDER'", "settings.header.connectivity.discordRPC.appleMusic": "SEE HODOR AS 'HODOR MUSIC'", - "settings.option.connectivity.discordRPC.clearOnPause": "HODOR DISCORD ON PAUSE", // Toggle - "settings.option.connectivity.lastfmScrobble": "HODOR.FM SCROBBLING", // Option to Connect - "settings.option.connectivity.lastfmScrobble.delay": "HODOR.FM HODOR DELAY (%)", - "settings.option.connectivity.lastfmScrobble.nowPlaying": "YES HODOR.FM NOW HODORING", - "settings.option.connectivity.lastfmScrobble.removeFeatured": "DELETE HODORING HODORTIST FROM HODOR TITLE (HODOR.FM)", - "settings.option.connectivity.lastfmScrobble.filterLoop": "FILTER MULTI HODOEDR HODOR (HODOR.FM)", - // Refer to term.connect for the connect button - - // Settings - Experimental + "settings.option.connectivity.discordRPC.clearOnPause": "HODOR DISCORD ON PAUSE", + "settings.option.connectivity.lastfmScrobble": "HODOR.FM SCROBBLING", + "settings.option.connectivity.lastfmScrobble.delay": "HODOR.FM HODOR DELAY (%)", + "settings.option.connectivity.lastfmScrobble.nowPlaying": "YES HODOR.FM NOW HODORING", + "settings.option.connectivity.lastfmScrobble.removeFeatured": "DELETE HODORING HODORTIST FROM HODOR TITLE (HODOR.FM)", + "settings.option.connectivity.lastfmScrobble.filterLoop": "FILTER MULTI HODOEDR HODOR (HODOR.FM)", "settings.header.experimental": "EXPERIMENTAL HODOR", "settings.header.experimental.description": "ADJUST THE EXPERIMENTAL HODOR FOR HODOR.", - "settings.option.experimental.compactUI": "smol hodor", // Toggle + "settings.option.experimental.compactUI": "smol hodor", "settings.option.experimental.closeButtonBehaviour": "CLOSE HODOR BUTTON", "settings.option.experimental.closeButtonBehaviour.quit": "END HODOR", "settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "MINIMIZE HODOR TO HODORBAR", "settings.option.experimental.closeButtonBehaviour.minimizeTray": "MINIMIZE HODOR TO HODORAY", - // Refer to term.disabled & term.enabled - - // Spatialization Menu "spatial.notTurnedOn": "HODOR SPATIALIZATION IS HODOR. TO HODOR, PLEASE HODOR IT HODOR.", - "spatial.spatialProperties" : "SPATIAL HODOR", - "spatial.width" : "HODOR WIDTH", - "spatial.height" : "HODOR HEIGHT", - "spatial.depth" : "HODOR DEPTH", - "spatial.gain" : "HODOR POWER", - "spatial.roomMaterials" : "ROOM HODORS", - "spatial.roomDimensions" : "ROOM HODOR SIZE", - "spatial.roomPositions" : "ROOM HODOR POSITION", - "spatial.setDimensions" : "HODOR SIZE", - "spatial.setPositions" : "SET HODOR POSITION", - "spatial.up" : "UP HODOR", - "spatial.front" : "FRONT HODOR", - "spatial.left" : "LEFT HODOR", - "spatial.right" : "RIGHT HODOR", - "spatial.back" : "BACK HODOR", - "spatial.down" : "DOWN HODOR", - "spatial.listener" : "HODOR EARS", - "spatial.audioSource" : "HODOR PLAYS", - - // Settings - Unfinished + "spatial.spatialProperties": "SPATIAL HODOR", + "spatial.width": "HODOR WIDTH", + "spatial.height": "HODOR HEIGHT", + "spatial.depth": "HODOR DEPTH", + "spatial.gain": "HODOR POWER", + "spatial.roomMaterials": "ROOM HODORS", + "spatial.roomDimensions": "ROOM HODOR SIZE", + "spatial.roomPositions": "ROOM HODOR POSITION", + "spatial.setDimensions": "HODOR SIZE", + "spatial.setPositions": "SET HODOR POSITION", + "spatial.up": "UP HODOR", + "spatial.front": "FRONT HODOR", + "spatial.left": "LEFT HODOR", + "spatial.right": "RIGHT HODOR", + "spatial.back": "BACK HODOR", + "spatial.down": "DOWN HODOR", + "spatial.listener": "HODOR EARS", + "spatial.audioSource": "HODOR PLAYS", "settings.header.unfinished": "NOT HODOR YET", - - // Web Remote "remote.web.title": "HODOR REMOTE", "remote.web.description": "HODOR THE HODOR TO HODOR YOUR HODOR UP WITH THIS HODOR INSTANCE", - - //About "about.thanks": "HODOR THANKS TO THE HODOR TEAM AND ALL OF OUR HODORS." - } \ No newline at end of file diff --git a/src/i18n/en_OWO.json b/src/i18n/en_OWO.json new file mode 100644 index 00000000..442023e5 --- /dev/null +++ b/src/i18n/en_OWO.json @@ -0,0 +1,413 @@ +{ + "i18n.languageName": "Engwish (OwO)", + "i18n.languageNameEnglish": "Engwish (OwO)", + "i18n.category": "fun", + "i18n.authors": "@deerwithacurl @gamingliamstudios", + "app.name": "Cidew", + "date.format": "${m} ${d}, ${y}", + "dialog.cancel": "Cancew", + "dialog.ok": "OK", + "notification.updatingLibrarySongs": "Updating wibwawy songs...", + "notification.updatingLibraryAlbums": "Updating wibwawy awbums...", + "notification.updatingLibraryArtists": "Updating wibwawy awtists...", + "term.appleInc": "Appwe Inc.", + "term.appleMusic": "Appwe Music", + "term.applePodcasts": "Appwe Podcasts", + "term.itunes": "iTunyes", + "term.github": "GitHub", + "term.discord": "Discowd", + "term.learnMore": "Weawn mowe", + "term.accountSettings": "Account Settings", + "term.logout": "Wogout", + "term.login": "Wog In", + "term.about": "About", + "term.privateSession": "Pwivate Session", + "term.queue": "Queue", + "term.lyrics": "Wywics", + "term.miniplayer": "MinyiPwayew", + "term.history": "Histowy", + "term.search": "Seawch", + "term.library": "Wibwawy", + "term.listenNow": "Wisten Nyow", + "term.browse": "Bwowse", + "term.radio": "Wadio", + "term.recentlyAdded": "Wecentwy Added", + "term.songs": "Songs", + "term.albums": "Awbums", + "term.artists": "Awtists", + "term.podcasts": "Podcasts", + "term.playlists": "Pwaywists", + "term.playlist": "Pwaywist", + "term.newPlaylist": "Nyew Pwaywist", + "term.newPlaylistFolder": "Nyew Pwaywist Fowdew", + "term.createNewPlaylist": "Cweate Nyew Pwaywist", + "term.createNewPlaylistFolder": "Cweate Nyew Pwaywist Fowdew", + "term.deletePlaylist": "Awe you suwe you want to dewete this pwaywist?", + "term.play": "Pway", + "term.pause": "Pause", + "term.previous": "Pwevious", + "term.next": "Nyext", + "term.shuffle": "Shuffwe", + "term.repeat": "Wepeat", + "term.volume": "Vowume", + "term.mute": "Mute", + "term.unmute": "Unmute", + "term.share": "Shawe", + "term.share.success": "Copied to cwipboawd", + "term.settings": "Settings", + "term.seeAll": "See Aww", + "term.sortBy": "Sowt By", + "term.sortBy.album": "Awbum", + "term.sortBy.artist": "Awtist", + "term.sortBy.name": "Nyame", + "term.sortBy.genre": "Genwe", + "term.sortBy.releaseDate": "Wewease Date", + "term.sortBy.duration": "Duwation", + "term.sortBy.dateAdded": "Date Added", + "term.sortOrder": "A-Z", + "term.sortOrder.ascending": "Ascending", + "term.sortOrder.descending": "Descending", + "term.viewAs": "View As", + "term.viewAs.coverArt": "Cuvw Awt", + "term.viewAs.list": "Wist", + "term.size": "Size", + "term.size.normal": "Nyowmaw", + "term.size.compact": "Compact", + "term.enable": "Enyabwe", + "term.disable": "Disabwe", + "term.enabled": "Enyabwed", + "term.disabled": "Disabwed", + "term.connect": "Connyect", + "term.connecting": "Connyecting", + "term.disconnect": "Disconnyect", + "term.authed": "Authed", + "term.confirm": "Confiwm?", + "term.more": "Mowe", + "term.less": "Wess", + "term.showMore": "Show mowe", + "term.showLess": "Show wess", + "term.topSongs": "Top Songs", + "term.latestReleases": "Watest Weweases", + "term.time.added": "Added", + "term.time.released": "Weweased", + "term.time.updated": "Updated", + "term.time.days": "days", + "term.time.day": { + "one": "day", + "other": "days" + }, + "term.time.hours": "houws", + "term.time.hour": { + "one": "houw", + "other": "houws" + }, + "term.time.minutes": "minyutes", + "term.time.minute": { + "one": "minyute", + "other": "minyutes" + }, + "term.time.seconds": "seconds", + "term.time.second": { + "one": "second", + "other": "seconds" + }, + "term.fullscreenView": "Fuwwscween View", + "term.defaultView": "Defauwt View", + "term.audioSettings": "Audio Settings", + "term.audioControls": "Vowume Contwows", + "term.clearAll": "Cweaw Aww", + "term.recentStations": "Wecent Stations", + "term.language": "Wanguage", + "term.funLanguages": "Fun", + "term.noLyrics": "Woading... / Wywics nyot found./ Instwumentaw.", + "term.copyright": "Copywight", + "term.rightsReserved": "Aww Wights Wesewved.", + "term.sponsor": "Sponsow this pwoject", + "term.ciderTeam": "Cidew Team", + "term.developer": "Devewopew", + "term.socialTeam": "Sociaw Team", + "term.socials": "Sociaws", + "term.contributors": "Contwibutows", + "term.equalizer": "Equawizew", + "term.reset": "Weset", + "term.tracks": "twacks", + "term.track": { + "one": "twack", + "other": "twacks" + }, + "term.videos": "Videos", + "term.menu": "Menyu", + "term.check": "Check", + "term.aboutArtist": "About {{artistName}}", + "term.topResult": "Top Wesuwt", + "term.sharedPlaylists": "Shawed Pwaywists", + "term.people": "Peopwe", + "term.newpreset.name": "Nyew EQ Pweset Nyame", + "term.addedpreset": "Added Pweset", + "term.deletepreset.warn": "Awe you suwe you want to dewete this pweset?", + "term.deletedpreset": "Wemuvd pweset", + "term.defaultPresets": "Defauwt Pwesets", + "term.userPresets": "Usew Pwesets", + "term.requestError": "Thewe was a pwobwem with the wequest.", + "term.song.link.generate": "Getting song.wink shawe UWW...", + "term.musicVideos": "Music Videos", + "term.stations": "Stations", + "term.curators": "Cuwatows", + "term.appleCurators": "Appwe Cuwatows", + "term.radioShows": "Wadio Shows", + "term.recordLabels": "Wecowd Wabews", + "term.videoExtras": "Video Extwas", + "term.top": "Top", + "term.version": "Vewsion", + "term.noVideos": "Nyo videos found.", + "term.plugin": "Pwug-in", + "term.pluginMenu": "Pwug-in Menyu", + "term.pluginMenu.none": "Nyo intewactive pwugins", + "term.replay": "Wepway", + "term.uniqueAlbums": "Unyique Awbums", + "term.uniqueArtists": "Unyique Awtists", + "term.uniqueSongs": "Unyique Songs", + "term.topArtists": "Top Awtists", + "term.listenedTo": "Wistenyed to:", + "term.times": "times", + "term.topAlbums": "Top Awbums", + "term.plays": "Pways", + "term.topGenres": "Top Genwes", + "term.confirmLogout": "Awe you suwe you want to wogout?", + "home.title": "Home", + "home.recentlyPlayed": "Wecentwy Pwayed", + "home.recentlyAdded": "Wecentwy Added", + "home.artistsFeed": "Youw Awtists Feed", + "home.artistsFeed.noArtist": "Fowwow some awtists to see theiw watest weweases", + "home.madeForYou": "Made Fow You", + "home.friendsListeningTo": "Fwiends Wistenying To", + "home.followedArtists": "Fowwowed Awtists", + "error.appleMusicSubRequired": "Appwe Music wequiwes a subscwiption.", + "error.connectionError": "Thewe was a pwobwem connyecting to Appwe Music.", + "error.noResults": "Nyo Wesuwts.", + "error.noResults.description": "Twy a nyew seawch.", + "podcast.followOnCider": "Fowwow On Cidew", + "podcast.followedOnCider": "Fowwowing On Cidew", + "podcast.subscribeOnItunes": "Subscwibe On iTunyes", + "podcast.subscribedOnItunes": "Subscwibed On iTunyes", + "podcast.itunesStore": "iTunyes Stowe", + "podcast.episodes": "Episodes", + "podcast.playEpisode": "Pway Episode", + "podcast.website": "Podcast Website", + "action.addToLibrary": "Add to Wibwawy", + "action.addToLibrary.success": "Added to Wibwawy", + "action.addToLibrary.error": "Ewwow Adding to Wibwawy", + "action.removeFromLibrary": "Wemuv fwom Wibwawy", + "action.removeFromLibrary.success": "Wemuvd fwom Wibwawy", + "action.addToQueue": "Add to Queue", + "action.addToQueue.success": "Added to Queue", + "action.addToQueue.error": "Ewwow Adding to Queue", + "action.removeFromQueue": "Wemuv fwom Queue", + "action.removeFromQueue.success": "Wemuvd fwom Queue", + "action.removeFromQueue.error": "Ewwow Wemoving fwom Queue", + "action.createPlaylist": "Cweate a Nyew Pwaywist", + "action.addToPlaylist": "Add to Pwaywist", + "action.removeFromPlaylist": "Wemuv fwom Pwaywist", + "action.addToFavorites": "Add to Favowites", + "action.follow": "Fowwow", + "action.follow.success": "Fowwowed", + "action.follow.error": "Ewwow Fowwowing", + "action.unfollow": "Unfowwow", + "action.unfollow.success": "Unfowwowed", + "action.unfollow.error": "Ewwow Unfowwowing", + "action.playNext": "Pway Nyext", + "action.playLater": "Pway Watew", + "action.startRadio": "Stawt Wadio", + "action.goToArtist": "Go to Awtist", + "action.goToAlbum": "Go to Awbum", + "action.showInPlaylist": "Show in Pwaywist", + "action.showInAppleMusic": "Show in Appwe Music", + "action.moveToTop": "Muv out of Fowdew", + "action.share": "Shawe", + "action.rename": "Wenyame", + "action.love": "Wuv", + "action.unlove": "Unwuv", + "action.dislike": "Diswike", + "action.undoDislike": "Undo diswike", + "action.showWebRemoteQR": "Web Wemote", + "action.playTracksNext": "Pway ${app.selectedMediaItems.length} twacks nyext", + "action.playTracksLater": "Pway ${app.selectedMediaItems.length} twacks watew", + "action.removeTracks": "Wemuv ${self.selectedItems.length} twacks fwom queue", + "action.import": "Impowt", + "action.export": "Expowt", + "action.showAlbum": "Show Compwete Awbum", + "action.tray.minimize": "Minyimize to Tway", + "action.tray.quit": "Quit", + "action.tray.show": "Show", + "action.update": "Update", + "action.install": "Instaww", + "action.copy": "Copy", + "action.newpreset": "Nyew Pweset...", + "action.deletepreset": "Dewete Pweset", + "action.open": "Open", + "action.relaunch.confirm": "Do you want to wewaunch Cidew?", + "settings.header.general": "Genyewaw", + "settings.header.general.description": "Adjust the genyewaw settings fow Cidew.", + "settings.option.general.language": "Wanguage", + "settings.option.general.resumebehavior": "Wesume behaviow", + "settings.option.general.resumebehavior.description": "Wesume behaviow affects how Cidew wiww wesume youw session when you wetuwn to the app.", + "settings.option.general.resumebehavior.locally": "Wocawwy", + "settings.option.general.resumebehavior.locally.description": "Cidew wiww wesume youw wast session on this machinye.", + "settings.option.general.resumebehavior.history": "Histowy", + "settings.option.general.resumebehavior.history.description": "Cidew wiww queue the wast song fwom youw uvwaww Appwe Music histowy, acwoss devices.", + "settings.option.general.language.main": "Wanguages", + "settings.option.general.language.fun": "Fun Wanguages", + "settings.option.general.language.unsorted": "Unsowted", + "settings.option.general.updateCider": "Update Cidew", + "settings.option.general.updateCider.branch": "Cidew Update Bwanch", + "settings.option.general.updateCider.branch.description": "Sewect the bwanch to update Cidew to", + "settings.option.general.updateCider.branch.main": "Stabwe", + "settings.option.general.updateCider.branch.develop": "Devewopment", + "settings.notyf.updateCider.update-not-available": "Nyo update avaiwabwe", + "settings.notyf.updateCider.update-downloaded": "Update has been downwoaded, westawt to appwy", + "settings.notyf.updateCider.update-error": "Ewwow updating Cidew", + "settings.notyf.updateCider.update-timeout": "Update timed out", + "settings.header.audio": "Audio", + "settings.header.audio.description": "Adjust the audio settings fow Cidew.", + "settings.option.audio.volumeStep": "Vowume Step", + "settings.option.audio.maxVolume": "Max Vowume", + "settings.option.audio.quality": "Audio Quawity", + "settings.header.audio.quality.hireslossless": "Hi-Wes Wosswess", + "settings.header.audio.quality.hireslossless.description": "up to 24-bit/192 kHz", + "settings.header.audio.quality.lossless": "Wosswess", + "settings.header.audio.quality.lossless.description": "up to 24-bit/48 kHz", + "settings.header.audio.quality.high": "High", + "settings.header.audio.quality.high.description": "256 kbps", + "settings.header.audio.quality.standard": "Standawd", + "settings.header.audio.quality.standard.description": "64 kbps", + "settings.option.audio.seamlessTransition": "Seamwess Audio Twansition", + "settings.option.audio.enableAdvancedFunctionality": "Enyabwe Advanced Functionyawity", + "settings.option.audio.enableAdvancedFunctionality.description": "Enyabwing AudioContext functionyawity wiww awwow fow extended audio featuwes wike Audio Nyowmawization, Equawizews and Visuawizews - howevew on some systems this may cause stuttewing in audio twacks.", + "settings.option.audio.audioLab": "Cidew Audio Wab", + "settings.option.audio.audioLab.description": "An assowtment of in-house devewoped audio effects fow Cidew.", + "settings.warn.audioLab.withoutAF": "AudioContext (Advanced Functionyawity) is wequiwed to enyabwe Cidew Audio Wabowatowy.", + "settings.option.audio.enableAdvancedFunctionality.analogWarmth": "Anyawog Wawmth", + "settings.option.audio.enableAdvancedFunctionality.analogWarmth.description": "Simuwates the anyawog wawmth modewwed aftew the Kowg Nyutube 6P1", + "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity": "Anyawog Wawmth intensity", + "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.description": "Changes the intensity of the Anyawog Wawmth Moduwe pwocessing.", + "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth": "Smooth", + "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm": "Wawm", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cidew Adwenyawinye Pwocessow\u2122\ufe0f", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Psychoacoustic Enhancements that makes evewything sound both wichew and mowe wivewy.", + "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP is nyot compatibwe with Spatiawization. Pwease disabwe Spatiawization to continyue.", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Stwength", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Changes the stwength of the pwocessing donye to the audio. (Aggwessive may yiewd undesiwabwe wesuwts)", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Standawd", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Aggwessive", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audio Nyowmawization", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Nyowmawizes peak vowume fow individuaw twacks to cweate a mowe unyifowm wistenying expewience.", + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Spatiawization", + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatiawize audio and make audio mowe 3-dimensionyaw (nyote: This is nyot Dowby Atmos)", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Cidew Tunyed Spatiawization", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "Pwe-tunyed Spatiawizing Effect, disabwes the customizabwe settings of Audio Spatiawization. Spatiawization must be enyabwed as a pwewequisite.", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Cidew Spatiawization Pwofiwe", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description": "Changes the Tunying Pwofiwe of the Spatiawization. (Wequiwes App Westawt)", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard": "Standawd", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile": "Audiophiwe", + "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "Spatiawization is nyot compatibwe with CAP. Pwease disabwe CAP to continyue.", + "settings.header.visual": "Visuaw", + "settings.header.visual.description": "Adjust the visuaw settings fow Cidew.", + "settings.option.visual.windowBackgroundStyle": "Window Backgwound Stywe", + "settings.header.visual.windowBackgroundStyle.none": "Nyonye", + "settings.header.visual.windowBackgroundStyle.artwork": "Awtwowk", + "settings.header.visual.windowBackgroundStyle.image": "Image", + "settings.option.visual.animatedArtwork": "Anyimated Awtwowk", + "settings.header.visual.animatedArtwork.always": "Awways", + "settings.header.visual.animatedArtwork.limited": "Wimited to pages and speciaw entwies", + "settings.header.visual.animatedArtwork.disable": "Disabwe evewywhewe", + "settings.option.visual.animatedArtworkQuality": "Anyimated Awtwowk Quawity", + "settings.header.visual.animatedArtworkQuality.low": "Wow", + "settings.header.visual.animatedArtworkQuality.medium": "Medium", + "settings.header.visual.animatedArtworkQuality.high": "High", + "settings.header.visual.animatedArtworkQuality.veryHigh": "Vewy High", + "settings.header.visual.animatedArtworkQuality.extreme": "Extweme", + "settings.option.visual.animatedWindowBackground": "Anyimated Window Backgwound", + "settings.option.visual.hardwareAcceleration": "Hawdwawe Accewewation", + "settings.option.visual.hardwareAcceleration.description": "Wequiwes wewaunch", + "settings.header.visual.hardwareAcceleration.default": "Defauwt", + "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", + "settings.header.visual.theme": "Theme", + "settings.option.visual.theme.github.download": "Instaww fwom GitHub UWW", + "settings.option.visual.theme.github.explore": "Expwowe GitHub Themes", + "settings.header.visual.theme.github.page": "Themes fwom GitHub", + "settings.option.visual.theme.github.install.confirm": "Awe you suwe you want to instaww {{ repo }}?", + "settings.prompt.visual.theme.github.URL": "Entew the UWW of the theme you want to instaww", + "settings.notyf.visual.theme.install.success": "Theme instawwed successfuwwy", + "settings.notyf.visual.theme.install.error": "Theme instawwation faiwed", + "settings.header.visual.plugin": "Pwugin", + "settings.option.visual.plugin.github.download": "Instaww fwom GitHub UWW", + "settings.option.visual.plugin.github.explore": "Expwowe GitHub Pwugins", + "settings.header.visual.plugin.github.page": "Pwugins fwom GitHub", + "settings.option.visual.plugin.github.install.confirm": "Awe you suwe you want to instaww {{ repo }}?", + "settings.prompt.visual.plugin.github.URL": "Entew the UWW of the pwugin you want to instaww", + "settings.prompt.visual.plugin.github.success": "Pwugin instawwed successfuwwy, Pwess OK to wewaunch Cidew", + "settings.notyf.visual.plugin.install.success": "Pwugin instawwed successfuwwy", + "settings.notyf.visual.plugin.install.error": "Pwugin instawwation faiwed", + "settings.option.visual.theme.default": "Cidew", + "settings.option.visual.theme.dark": "Dawk", + "settings.option.visual.showPersonalInfo": "Show Pewsonyaw Info", + "settings.header.window": "Window", + "settings.header.window.description": "Adjust the window settings fow Cidew.", + "settings.option.window.openOnStartup": "Open Cidew on Stawtup", + "settings.option.window.openOnStartup.hidden": "Open Hidden", + "settings.header.lyrics": "Wywics", + "settings.header.lyrics.description": "Adjust the wywics settings fow Cidew.", + "settings.option.lyrics.enableMusixmatch": "Enyabwe Musixmatch Wywics", + "settings.option.lyrics.enableMusixmatchKaraoke": "Enyabwe Kawaoke Mode (Musixmatch onwy)", + "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch Twanswation Pwefewwed Wanguage", + "settings.option.lyrics.enableYoutubeLyrics": "Enyabwe Youtube Wywics fow Music Videos", + "settings.header.connectivity": "Connyectivity", + "settings.header.connectivity.description": "Adjust the connyectivity settings fow Cidew.", + "settings.option.connectivity.discordRPC": "Discowd Wich Pwesence", + "settings.option.connectivity.playbackNotifications": "Pwayback Nyotifications", + "settings.header.connectivity.discordRPC.cider": "Dispway as 'Cidew'", + "settings.header.connectivity.discordRPC.appleMusic": "Dispway as 'Appwe Music'", + "settings.option.connectivity.discordRPC.clearOnPause": "Cweaw Discowd Wich Pwesence on Pause", + "settings.option.connectivity.lastfmScrobble": "Wast.fm Scwobbwing", + "settings.option.connectivity.lastfmScrobble.delay": "Wast.fm Scwobbwe Deway (%)", + "settings.option.connectivity.lastfmScrobble.nowPlaying": "Enyabwe Wast.fm Nyow Pwaying", + "settings.option.connectivity.lastfmScrobble.removeFeatured": "Wemuv featuwing awtists fwom song titwe (Wast.fm)", + "settings.option.connectivity.lastfmScrobble.filterLoop": "Fiwtew wooped twack (Wast.fm)", + "settings.header.debug": "Debug", + "settings.option.debug.copy_log": "Copy wogs to cwipboawd", + "settings.option.debug.openAppData": "Open Cidew Fowdew", + "settings.header.experimental": "Expewimentaw", + "settings.header.experimental.description": "Adjust the expewimentaw settings fow Cidew.", + "settings.option.experimental.unknownPlugin": "Unknyown Souwces", + "settings.option.experimental.unknownPlugin.description": "Awwow instawwation of pwugins fwom wepos othew than the Cidew Pwugin Wepositowy", + "settings.option.experimental.compactUI": "Compact UI", + "settings.option.window.close_button_hide": "Cwose Button Shouwd Hide the Appwication", + "settings.option.experimental.inline_playlists": "Inwinye Pwaywists and Awbums", + "settings.option.advanced.playlistTrackMapping": "Pwaywist Twack Mapping", + "settings.option.advanced.playlistTrackMapping.description": "Enyabwes deep scannying of pwaywists to detewminye which twacks awe in which pwaywists. Pwaywist cache buiwd times can incwease signyificantwy.", + "settings.option.visual.transparent": "Twanspawent fwame", + "settings.option.visual.transparent.description": "Twanspawent fwame (nyeeds Theme Suppowt , wequiwes wewaunch)", + "spatial.notTurnedOn": "Audio Spatiawization is disabwed. To use, pwease enyabwe it fiwst.", + "spatial.spatialProperties": "Spatiaw Pwopewties", + "spatial.width": "Width", + "spatial.height": "Height", + "spatial.depth": "Depth", + "spatial.gain": "Gain", + "spatial.roomMaterials": "Woom Matewiaws", + "spatial.roomDimensions": "Woom Dimensions", + "spatial.roomPositions": "Woom Positions", + "spatial.setDimensions": "Set Dimensions", + "spatial.setPositions": "Set Positions", + "spatial.up": "Up", + "spatial.front": "Fwont", + "spatial.left": "Weft", + "spatial.right": "Wight", + "spatial.back": "Back", + "spatial.down": "Down", + "spatial.listener": "Wistenyew", + "spatial.audioSource": "Audio Souwce", + "settings.header.unfinished": "Unfinyished", + "remote.web.title": "Cidew Wemote", + "remote.web.description": "Scan the QW code to paiw youw phonye up with this Cidew instance", + "about.thanks": "Majow thanks to the Cidew Cowwective Team and aww of ouw contwibutows." +} \ No newline at end of file diff --git a/src/i18n/en_OWO.jsonc b/src/i18n/en_OWO.jsonc deleted file mode 100644 index 7e15e260..00000000 --- a/src/i18n/en_OWO.jsonc +++ /dev/null @@ -1,347 +0,0 @@ -{ // Base File - // i18n Info - "i18n.languageName": "Engwish (OwO)", // name of language in native language - "i18n.languageNameEnglish": "Engwish (OwO)", // name of language in English - "i18n.category": "fun", // main = real language, fun = fun community languages - "i18n.authors": "@deerwithacurl @gamingliamstudios", // Authors, if you contribute to this file feel free to add your name seperated with a space - - // App info - "app.name": "Cidew", - - "date.format": "${m} ${d}, ${y}", - - // Dialogs - "dialog.cancel": "Nu", - "dialog.ok": "Oki", - - // Notification - "notification.updatingLibrarySongs": "Updating wibwawy songs...", - "notification.updatingLibraryAlbums": "Updating wibwawy awbums...", - "notification.updatingLibraryArtists": "Updating wibwawy awtists...", - - // Terms - "term.appleInc": "Appwe Inc.", - "term.appleMusic": "Appwe Mewsic", - "term.applePodcasts": "Appwe Pawdcasts", - "term.itunes": "iTuwunes", - "term.github": "GitHuwub", - "term.discord": "Discowd", - "term.learnMore": "Weawn moar", - "term.accountSettings": "Accownt Settings", - "term.logout": "Wogout", - "term.login": "Wogin", - "term.about": "Abowt", - "term.privateSession": "Pwivate Session OwO", - "term.queue": "Quwue", - "term.search": "Seawch", - "term.library": "Wibwawy", - "term.listenNow": "Wisten Nao", - "term.browse": "Bwowse", - "term.radio": "Wadio", - "term.recentlyAdded": "Wecentwy Added", - "term.songs": "Sawngs", - "term.albums": "Awbums", - "term.artists": "Awtists", - "term.podcasts": "Pawdcasts", - "term.playlists": "Pwaywists", - "term.playlist": "Pwaywist", - "term.newPlaylist": "Nyew Pwaywist", - "term.newPlaylistFolder": "New Pwaywist Fowdew", - "term.createNewPlaylist": "Cweate New Pwaywist", - "term.createNewPlaylistFolder": "Cweate New Pwaywist Fowdew", - "term.deletePlaylist": "Awe chu suwe chu wan to dewete dis pwaywist?", - "term.play": "Pway", - "term.pause": "Pawse", - "term.previous": "Pwevious", - "term.next": "Next", - "term.shuffle": "Shuffwe", - "term.repeat": "Wepeat", - "term.volume": "Vowume", - "term.mute": "Muwute", - "term.unmute": "Unmuwute", - "term.share": "Shawe", - "term.share.success": "Copied to cwipboawd", - "term.settings": "Settings", - "term.seeAll": "See Aww", - "term.sortBy": "Sowt By", - "term.sortBy.album": "Awbum", - "term.sortBy.artist": "Awtist", - "term.sortBy.name": "Name", - "term.sortBy.genre": "Genwe", - "term.sortBy.releaseDate": "Wewease Date", - "term.sortBy.duration": "Duwation", - "term.sortOrder": "A-Z", - "term.sortOrder.ascending": "Ascending", - "term.sortOrder.descending": "Descending", - "term.viewAs": "View As", - "term.viewAs.coverArt": "Covew Awt", - "term.viewAs.list": "Wist", - "term.size": "Size", - "term.size.normal": "Nowmaw", - "term.size.compact": "Wittwe", - "term.enable": "Enabwe", - "term.disable": "Disabwe", - "term.enabled": "Enabwed", - "term.disabled": "Disabwed", - "term.connect": "Connect", - "term.connecting": "Connecting", - "term.disconnect": "Disconnect", - "term.authed": "Authed", - "term.confirm": "Confiwm?", - "term.more": "Moar", - "term.less": "Wess", - "term.showMore": "Show moar", - "term.showLess": "Show wess", - "term.topSongs": "Top Songs", - "term.latestReleases": "Watest Weweases", - "term.time.added": "Added", - "term.time.released": "Weweased", - "term.time.updated": "Updated", - "term.time.hours": "houws", - "term.time.hour": "houw", - "term.time.minutes": "minuwtes", - "term.time.minute": "minuwte", - "term.time.seconds": "seconds", - "term.time.second": "second", - "term.fullscreenView": "Fuwwwscween View", - "term.defaultView": "Defauwt View", - "term.audioSettings": "Audiowo Settings", - "term.clearAll": "Cweaw Aww", - "term.recentStations": "Wecent Stations", - "term.language": "Wanguage", - "term.funLanguages": "Fun", - "term.noLyrics": "Woading... / Wywics not found./ Instwumentaw.", - "term.copyright": "Copywight", - "term.rightsReserved": "All Wights Wesewved.", - "term.sponsor": "Sponsow dis pwoject", - "term.ciderTeam": "Cidew Team", - "term.developer": "Devewopew", - "term.socialTeam": "Sociaw Team", - "term.socials": "Sociaws", - "term.contributors": "Contwibutows", - "term.equalizer": "Equawizew", - "term.reset": "Weset", - "term.tracks": "twacks", // Assume x amount of tracks. e.g. 50 tracks - "term.videos": "Videowos", - "term.menu": "Menuwu", - "term.check": "Check", - "term.aboutArtist": "About {{artistName}}", // e.g. 'About Doja Cat' - "term.topResult": "Top Wesuwt", // Search Results - "term.sharedPlaylists": "Shawed Pwaywists", // Search Results - "term.people": "Peopwe", // Search Results - "term.newpreset.name": "New EQ Pweset Name", // Equalizer Preset - "term.addedpreset": "Added Pweset", - "term.deletepreset.warn": "Awe chu suwe chu want to dewete dis pweset?", - "term.deletedpreset": "Wemoved pweset", - "term.musicVideos": "Music Videowos", // Search page friendlyTypes - "term.stations": "Stations", - "term.curators": "Cuwatows", - "term.appleCurators": "Appwe Cuwatows", - "term.radioShows": "Wadio Shows", - "term.recordLabels": "Wecowd Wabews", - "term.videoExtras": "Videowo Extwas", - "term.top": "Top", - - // Home - "home.title": "Home", - "home.recentlyPlayed": "Wecentwy Pwayed", - "home.recentlyAdded": "Wecentwy Added", - "home.artistsFeed": "Youw Awtists Feed", - "home.artistsFeed.noArtist": "Fowwow some awtists fiwst and theiw watest weleases wiww be here", - "home.madeForYou": "Made Fow Chu", - "home.friendsListeningTo": "Fwiends Wistening To", - "home.followedArtists": "Fowwowed Awtists", - - // Errors - "error.appleMusicSubRequired": "Appwe Music wequiwes a subscwiption.", - "error.connectionError": "Thewe was a pwobwem connecting to Appwe Mewsic.", - "error.noResults": "No Wesuwts.", - "error.noResults.description": "Twy a new seawch.", - - // Podcasts - "podcast.followOnCider": "Fowwow On Cidew", - "podcast.followedOnCider": "Fowwowing On Cidew", - "podcast.subscribeOnItunes": "Subscwibe On iTuwunes", - "podcast.subscribedOnItunes": "Subscwibed On iTuwunes", - "podcast.itunesStore": "iTuwunes Stowe", - "podcast.episodes": "Episowodes", - "podcast.playEpisode": "Pway Episowode", - "podcast.website": "Pawdcast Website", - - // Actions - "action.addToLibrary": "Add to Wibwawy", - "action.addToLibrary.success": "Added to Wibwawy", - "action.addToLibrary.error": "Ewwow Adding to Wibwawy", - "action.removeFromLibrary": "Wemove fwom Wibwawy", - "action.removeFromLibrary.success": "Wemoved fwom Wibwawy", - "action.addToQueue": "Add to Quwue", - "action.addToQueue.success": "Added to Quwue", - "action.addToQueue.error": "Ewwow Adding to Quwue", - "action.removeFromQueue": "Wemove fwom Quwue", - "action.removeFromQueue.success": "Wemoved fwom Quwue", - "action.removeFromQueue.error": "Ewwow Wemoving fwom Quwue", - "action.createPlaylist": "Cweate a New Pwaywist", - "action.addToPlaylist": "Add to Pwaywist", - "action.removeFromPlaylist": "Wemove fwom Pwaywist", - "action.addToFavorites": "Add to Favowites", - "action.follow": "Fowwow", - "action.follow.success": "Fowwowed", - "action.follow.error": "Ewwow Fowwowing", - "action.unfollow": "Unfowwow", - "action.unfollow.success": "Unfowwowed", - "action.unfollow.error": "Ewwow Unfowwowing", - "action.playNext": "Pway Next", - "action.playLater": "Pway Watew", - "action.startRadio": "Stawt Wadio", - "action.goToArtist": "Go to Awtist", - "action.goToAlbum": "Go to Awbum", - "action.moveToTop": "Move to top", - "action.share": "Shawe", - "action.rename": "Wename", - "action.love": "Wuv", - "action.unlove": "Unwuv", - "action.dislike": "Diswike", - "action.undoDislike": "Undo diswike", - "action.showWebRemoteQR": "Web Wiimote", - "action.playTracksNext": "Pway ${app.selectedMediaItems.length} twacks next", - "action.playTracksLater": "Pway ${app.selectedMediaItems.length} twacks latew", - "action.removeTracks": "Wemove ${self.selectedItems.length} twacks fwom quwue", - "action.import": "Impowt", - "action.export": "Expowt", - "action.showAlbum": "Show Compwete Awbum", - "action.tray.minimize": "Minimize to Tway", - "action.tray.quit": "Quit", - "action.tray.show": "Show", - "action.update": "Update", - "action.newpreset": "New Pweset...", // Equalizer Preset - "action.deletepreset": "Dewete Pweset", - - // Settings - General - "settings.header.general": "Genewaw", - "settings.header.general.description": "Adjust the genewaw settings fow Cidew.", - "settings.option.general.language": "Wanguage", - - // Language optgroups - "settings.option.general.language.main": "Wanguages", - "settings.option.general.language.fun": "Fun Wanguages", - "settings.option.general.language.unsorted": "Unsowted", - - // Update Cider - "settings.option.general.updateCider": "Update Cidew", // Button - "settings.option.general.updateCider.branch": "Cidew Update Bwanch", // Dropdown - "settings.option.general.updateCider.branch.description": "Sewect the bwanch to uwpdate Cidew to", - "settings.option.general.updateCider.branch.main": "Stabwe", - "settings.option.general.updateCider.branch.develop": "Devewopment", - - // Settings - Audio - "settings.header.audio": "Audiowo", - "settings.header.audio.description": "Adjust the audiowo settings fow Cidew.", - "settings.option.audio.quality": "Audiowo Quawity", // Dropdown - "settings.header.audio.quality.hireslossless": "Hi-res losswess", - "settings.header.audio.quality.hireslossless.description": "(uwp to 24-bit/192 khz)", - "settings.header.audio.quality.lossless": "Losswess", - "settings.header.audio.quality.lossless.description": "(uwp to 24-bit/48 khz)", - "settings.header.audio.quality.high": "High", - "settings.header.audio.quality.low": "Low", // keeping as low because confusion with the word wow - "settings.header.audio.quality.auto": "Autowo", - "settings.option.audio.seamlessTransition": "Seamwess Audiowo Twansition", // Toggle - "settings.option.audio.enableAdvancedFunctionality": "Enabwe Advanced Functionawity", // Toggle - "settings.option.audio.enableAdvancedFunctionality.description": "Enabwing AudiowoContext functionawity wiww awwow fow extended audiowo featuwes wike Audiowo Nowmawization, Equalizews and Visuawizews, howevew on some systems dis may cause stuttewing in audiowo twacks.", - "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cidew Adwenawine Pwocessowâ„ĸī¸", // Toggle - "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Psychoacouwstic enhancements that makes evewything souwnd both wichew and mowe wivewy. | Designed by Maikiwi", - "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Stwength", // Toggle - "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Changes the stwength of the pwocessing done to the auwdio. (Aggwessive may yiewd uwndesiwabwe wesuwwts)", - "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Standawd", - "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Aggwessive", - "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audiowo Nowmawization", // Toggle - "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Nowmawizes peak vowume fow individuaw twacks to cweate a moar unifowm wistening expewience.", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audiowo Spatiawization", // Toggle - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatiawize audiowo and make audiowo moar 3-dimensionaw (note: Dis is not Dowby Atmos)", - - // Settings - Visual - "settings.header.visual": "Visuaw", - "settings.header.visual.description": "Adjust the visuaw settings fow Cidew.", - "settings.option.visual.windowBackgroundStyle": "Window Backgwound Stywe", // Toggle - "settings.header.visual.windowBackgroundStyle.none": "None", - "settings.header.visual.windowBackgroundStyle.artwork": "Awtwowk", - "settings.header.visual.windowBackgroundStyle.image": "Image", - "settings.option.visual.animatedArtwork": "Animated Awtwowk", // Dropdown - "settings.header.visual.animatedArtwork.always": "Awways", - "settings.header.visual.animatedArtwork.limited": "Wimited to pages and speciaw entwies", - "settings.header.visual.animatedArtwork.disable": "Disabwe evewywhewe", - "settings.option.visual.animatedArtworkQuality": "Animated Awtwowk Quawity", // Dropdown - "settings.header.visual.animatedArtworkQuality.low": "Low", - "settings.header.visual.animatedArtworkQuality.medium": "Medium", - "settings.header.visual.animatedArtworkQuality.high": "High", - "settings.header.visual.animatedArtworkQuality.veryHigh": "Vewy High", - "settings.header.visual.animatedArtworkQuality.extreme": "Extweme", - "settings.option.visual.animatedWindowBackground": "Animated Window Backgwound", // Toggle - "settings.option.visual.hardwareAcceleration": "Hawdwawe Accewewation", // Dropdown - "settings.option.visual.hardwareAcceleration.description": "Wequiwes wewaunch", - "settings.header.visual.hardwareAcceleration.default": "Defauwt", - "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", - // Refer to term.disabled for the disabled option - "settings.option.visual.showPersonalInfo": "Show Pewsonaw Info", // Toggle - - // Settings - Lyrics - "settings.header.lyrics": "Wywics", - "settings.header.lyrics.description": "Adjust the wywics settings fow Cidew.", - "settings.option.lyrics.enableMusixmatch": "Enabwe Musixmatch Wywics", // Toggle - "settings.option.lyrics.enableMusixmatchKaraoke": "Enabwe Kawaoke Mode (Musixmatch onwy)", // Toggle - "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch Twanswation Pwefewwed Wanguage", // Dropdown - "settings.option.lyrics.enableYoutubeLyrics": "Enabwe YouTube Wywics fow Mewsic Videowos", // Toggle - - // Settings - Connectivity - "settings.header.connectivity": "Connectivity", - "settings.header.connectivity.description": "Adjust the connectivity settings fow Cidew.", - "settings.option.connectivity.discordRPC": "Discowd Wich Pwesence", // Dropdown - "settings.option.connectivity.playbackNotifications": "Pwayback Notifications", // Toggle - // Refer to term.disabled for the disabled option - "settings.header.connectivity.discordRPC.cider": "Disway as 'Cider'", - "settings.header.connectivity.discordRPC.appleMusic": "Dispway as 'Apple Music'", - "settings.option.connectivity.discordRPC.clearOnPause": "Cweaw Discowd Wich Pwesence on Paws", // Toggle - "settings.option.connectivity.lastfmScrobble": "Wast.fm Scwobbwing", // Option to Connect - "settings.option.connectivity.lastfmScrobble.delay": "Wast.fm Scwobble Deway (%)", - "settings.option.connectivity.lastfmScrobble.nowPlaying": "Enabwe Wast.fm Nao Pwaying", - "settings.option.connectivity.lastfmScrobble.removeFeatured": "Wemove featuwing awtists fwom song titwe (Wast.fm)", - "settings.option.connectivity.lastfmScrobble.filterLoop": "Fiwtew wooped twack (Wast.fm)", - // Refer to term.connect for the connect button - - // Settings - Experimental - "settings.header.experimental": "Expewimentaw", - "settings.header.experimental.description": "Adjust the expewimentaw settings fow Cidew.", - "settings.option.experimental.compactUI": "Wittwe UI", // Toggle - "settings.option.experimental.close_button_hide": "Cwose Button Shouwd Hide the Appwication", - - // Refer to term.disabled & term.enabled - // Spatialization Menu - "spatial.notTurnedOn": "Audiowo Spatiawization is disabwed. To use, pwease enabwe it fiwst.", - "spatial.spatialProperties": "Spatiaw Pwopewties", - "spatial.width": "Width", - "spatial.height": "Height", - "spatial.depth": "Depth", - "spatial.gain": "Gain", - "spatial.roomMaterials": "Woom Matewiaws", - "spatial.roomDimensions": "Woom Dimensions", - "spatial.roomPositions": "Woom Positions", - "spatial.setDimensions": "Set Dimensions", - "spatial.setPositions": "Set Positions", - "spatial.up": "Up", - "spatial.front": "Fwont", - "spatial.left": "Weft", - "spatial.right": "Wight", - "spatial.back": "Back", - "spatial.down": "Down", - "spatial.listener": "Wistenew", - "spatial.audioSource": "Audiowo Souwce", - - // Settings - Unfinished - "settings.header.unfinished": "Unfinished", - - // Web Remote - "remote.web.title": "Cidew Wiimote", - "remote.web.description": "Scan da QR code to paiw chur phone up with dis Cidew instance", - - // About - "about.thanks": "Majow tanks to da Cidew Cowwective Team and aww of ouw contwibutows." -} \ No newline at end of file diff --git a/src/i18n/en_PISS.jsonc b/src/i18n/en_PISS.json similarity index 76% rename from src/i18n/en_PISS.jsonc rename to src/i18n/en_PISS.json index 619ca375..25ce7538 100644 --- a/src/i18n/en_PISS.jsonc +++ b/src/i18n/en_PISS.json @@ -1,25 +1,15 @@ -{ // Base File - // i18n Info - "i18n.languageName": "piss", // name of language in native language - "i18n.languageNameEnglish": "English (piss)", // name of language in English - "i18n.category": "fun", // main = real language, fun = fun community languages - "i18n.authors": "@SoNothingMC @saboooor", // Authors, if you contribute to this file feel free to add your name seperated with a space - - // App info +{ + "i18n.languageName": "piss", + "i18n.languageNameEnglish": "English (piss)", + "i18n.category": "fun", + "i18n.authors": "@SoNothingMC @saboooor", "app.name": "piss", - - "date.format": "${y}-${m}-${d}", // ISO 8601 for the win! - - // Dialogs + "date.format": "${y}-${m}-${d}", "dialog.cancel": "no piss", "dialog.ok": "yes piss", - - // Notification "notification.updatingLibrarySongs": "pisssing all over your songs", "notification.updatingLibraryAlbums": "pissing all over your albums", "notification.updatingLibraryArtists": "pissing all over your idols", - - // Terms "term.appleInc": "piss Inc.", "term.appleMusic": "piss music", "term.applePodcasts": "piss podcasts", @@ -40,7 +30,7 @@ "term.browse": "find piss", "term.radio": "piss everywhere", "term.recentlyAdded": "recently obtained piss", - "term.songs": "piss list", // not to be confused with pisslist (playlist) + "term.songs": "piss list", "term.albums": "piss collection", "term.artists": "pissers", "term.podcasts": "pisscasts", @@ -69,14 +59,15 @@ "term.sortBy.artist": "pissers", "term.sortBy.name": "piss name", "term.sortBy.genre": "way to piss", - "term.sortBy.releaseDate": "pissed date", + "term.sortBy.releaseDate": "repissed date", "term.sortBy.duration": "piss duration", + "term.sortBy.dateAdded": "obtained date", "term.sortOrder": "piss-PISS", "term.sortOrder.ascending": "pissing upwards", "term.sortOrder.descending": "pissing downwards", "term.viewAs": "piss as", "term.viewAs.coverArt": "piss art", - "term.viewAs.list": "piss list", // not to be confused with pisslist (playlist) + "term.viewAs.list": "piss list", "term.size": "piss size", "term.size.normal": "normal piss", "term.size.compact": "compact piss", @@ -94,10 +85,10 @@ "term.showMore": "more piss", "term.showLess": "less piss", "term.topSongs": "top piss", - "term.latestReleases": "latest piss collection", - "term.time.added": "pissed", - "term.time.released": "pissed", - "term.time.updated": "pissed", + "term.latestReleases": "latest piss", + "term.time.added": "obtained", + "term.time.released": "repissed", + "term.time.updated": "pissdated", "term.time.hours": "hours", "term.time.hour": "hour", "term.time.minutes": "minutes", @@ -122,28 +113,34 @@ "term.contributors": "more pisseneers", "term.equalizer": "advanced piss configuration", "term.reset": "repiss", - "term.tracks": "pisses", // Assume x amount of tracks. e.g. 50 tracks + "term.track": { + "one": "piss", + "other": "pisses" + }, "term.videos": "piss videos", "term.menu": "piss menu", "term.check": "piss!", - "term.aboutArtist": "about pisser {{artistName}}", // e.g. 'About Doja Cat' - "term.topResult": "top piss", // Search Results - "term.sharedPlaylists": "shared pisslists", // Search Results - "term.people": "pissers", // Search Results - "term.newpreset.name": "new advanced piss prepiss name", // Equalizer Preset - "term.addedpreset": "pissed prepiss", - "term.deletepreset.warn": "are you sure you want to unpiss this prepiss?", - "term.deletedpreset": "unpissed prepiss", - "term.musicVideos": "piss music videos", // Search page friendlyTypes - "term.stations": "pisses", + "term.aboutArtist": "about pisser {{artistName}}", + "term.topResult": "top piss", + "term.sharedPlaylists": "shared pisslists", + "term.people": "pissers", + "term.newpreset.name": "new advanced piss prepiss name", + "term.addedpreset": "obtained prepiss", + "term.deletepreset.warn": "are you sure you want to obliterate this prepiss?", + "term.deletedpreset": "obliterated prepiss", + "term.defaultPresets": "default prepisses", + "term.userPresets": "your prepisses", + "term.requestError": "the request got pissed on", + "term.song.link.generate": "pissing on piss.linkâ€Ļ", + "term.musicVideos": "piss videos", + "term.stations": "piss stations", "term.curators": "pissators", "term.appleCurators": "piss pissators", "term.radioShows": "shows that piss everywhere", "term.recordLabels": "piss labels", "term.videoExtras": "extra piss videos", "term.top": "topiss", - - // Home + "term.version": "pission", "home.title": "piss central", "home.recentlyPlayed": "recently pissed on", "home.recentlyAdded": "recently obtained piss", @@ -152,14 +149,10 @@ "home.madeForYou": "pissed for you", "home.friendsListeningTo": "friends pissing to", "home.followedArtists": "followed pissers", - - // Errors "error.appleMusicSubRequired": "piss music requires, like y'know, an actual piss music subscription to actually use.", "error.connectionError": "oh, piss.", "error.noResults": "no piss found", "error.noResults.description": "try pissing somewhere else (or press Enter/Return to search)", - - // Podcasts "podcast.followOnCider": "piss on Cider", "podcast.followedOnCider": "pissed on Cider", "podcast.subscribeOnItunes": "piss on iPiss", @@ -168,13 +161,11 @@ "podcast.episodes": "pisses", "podcast.playEpisode": "play piss", "podcast.website": "pisscast site", - - // Actions "action.addToLibrary": "obtain piss", "action.addToLibrary.success": "piss obtained", "action.addToLibrary.error": "error obtaining piss", - "action.removeFromLibrary": "dump piss", - "action.removeFromLibrary.success": "piss dumped", + "action.removeFromLibrary": "unobtain piss", + "action.removeFromLibrary.success": "piss unobtained", "action.addToQueue": "add to toilet", "action.addToQueue.success": "added to toilet", "action.addToQueue.error": "error adding to toilet", @@ -215,108 +206,98 @@ "action.tray.show": "piss back", "action.update": "piss!", "action.copy": "copiss", - "action.newpreset": "new prepiss...", // Equalizer Preset - "action.deletepreset": "unpiss prepiss", - - // Settings - General + "action.newpreset": "new prepissâ€Ļ", + "action.deletepreset": "obliterate prepiss", "settings.header.general": "general", "settings.header.general.description": "the dumping place for settings when there are no other places to put them into", "settings.option.general.language": "piss around the world", - - // Language optgroups "settings.option.general.language.main": "actaul human languages", "settings.option.general.language.fun": "piss languages", "settings.option.general.language.unsorted": "???? who put this here", - - // Update Cider - "settings.option.general.updateCider": "piss on cider", // Button - - // Settings - Audio + "settings.option.general.updateCider": "piss on cider", + "settings.option.general.updateCider.branch": "where to piss on cider", + "settings.option.general.updateCider.branch.description": "there are two toilets, where do you want to piss?", + "settings.option.general.updateCider.branch.main": "smooth pissing experience", + "settings.option.general.updateCider.branch.develop": "cutting-edge piss development", "settings.header.audio": "piss sounds", "settings.header.audio.description": "change how your piss sounds", - "settings.option.audio.quality": "piss quality", // Dropdown + "settings.option.audio.quality": "piss quality", "settings.header.audio.quality.hireslossless": "ungodly piss", - "settings.header.audio.quality.hireslossless.description": "(up to 24-pisses/192 piss hertz)", + "settings.header.audio.quality.hireslossless.description": "up to 24-piss/192 pissHz", "settings.header.audio.quality.lossless": "colorful piss", - "settings.header.audio.quality.lossless.description": "(up to 24-pisses/48 piss hertz)", - "settings.header.audio.quality.enhanced": "enhanced piss", + "settings.header.audio.quality.lossless.description": "up to 24-piss/48 pissHz", + "settings.header.audio.quality.enhanced": "business class piss", "settings.header.audio.quality.high": "nice piss", - "settings.header.audio.quality.low": "piss with blood", - "settings.header.audio.quality.auto": "automatic piss", - "settings.option.audio.seamlessTransition": "seamless piss-to-piss transition", // Toggle - "settings.option.audio.enableAdvancedFunctionality": "cool piss tricks", // Toggle + "settings.header.audio.quality.high.description": "256 kpiss", + "settings.header.audio.quality.standard": "piss with blood", + "settings.header.audio.quality.standard.description": "64 kpiss", + "settings.option.audio.seamlessTransition": "seamless piss-to-piss transition", + "settings.option.audio.enableAdvancedFunctionality": "cool piss tricks", "settings.option.audio.enableAdvancedFunctionality.description": "enabling the AudioContext thingy allows you to do cool stuffs, however on some systems your song may stutter", - "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "clear pissâ„ĸī¸", // Toggle - "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "makes your bladder go overboard and makes your piss crisp and clear.", - "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "piss normaliztion", // Toggle + "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Audio Pissifierâ„ĸī¸", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "makes your bladder go overboard and makes your piss crisp and clear", + "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "pissifier dont go well with 3d piss. turn it off and try again.", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "pissifier strength", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "tune your bladder (blood may appear with turbo strength)", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "normal piss", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "turbo piss", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "piss normaliztion", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "protect your eardrums from overly loud/slient pisses", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "3D piss", // Toggle + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "3D piss", "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "this aint the dolby atmos you are looking for but its still pretty crazy so check it out", - - // Settings - Visual "settings.header.visual": "piss appearance", "settings.header.visual.description": "change how your piss looks", - "settings.option.visual.windowBackgroundStyle": "background piss", // Toggle + "settings.option.visual.windowBackgroundStyle": "background piss", "settings.header.visual.windowBackgroundStyle.none": "no piss", "settings.header.visual.windowBackgroundStyle.artwork": "piss art", "settings.header.visual.windowBackgroundStyle.image": "piss image", - "settings.option.visual.animatedArtwork": "moving piss art", // Dropdown + "settings.option.visual.animatedArtwork": "moving piss art", "settings.header.visual.animatedArtwork.always": "yes piss", "settings.header.visual.animatedArtwork.limited": "only piss pages and special pisses", "settings.header.visual.animatedArtwork.disable": "no piss", - "settings.option.visual.animatedArtworkQuality": "moving piss art quality", // Dropdown + "settings.option.visual.animatedArtworkQuality": "moving piss art quality", "settings.header.visual.animatedArtworkQuality.low": "piss with blood", "settings.header.visual.animatedArtworkQuality.medium": "okay piss", "settings.header.visual.animatedArtworkQuality.high": "nice piss", "settings.header.visual.animatedArtworkQuality.veryHigh": "good piss", "settings.header.visual.animatedArtworkQuality.extreme": "literally 4k piss", - "settings.option.visual.animatedWindowBackground": "moving background piss", // Toggle - "settings.option.visual.hardwareAcceleration": "make Cider piss faster", // Dropdown + "settings.option.visual.animatedWindowBackground": "moving background piss", + "settings.option.visual.hardwareAcceleration": "make Cider piss faster", "settings.option.visual.hardwareAcceleration.description": "you need to relaunch Cider", "settings.header.visual.hardwareAcceleration.default": "default piss", "settings.header.visual.hardwareAcceleration.webGPU": "WebPISS", "settings.header.visual.theme": "colored piss", - - // Settings - Visual - Theme name - "settings.option.visual.theme.default": "regular piss", + "settings.option.visual.theme.github.download": "piss from PissHub URL", + "settings.prompt.visual.theme.github.URL": "piss on the URL for your colorful piss", + "settings.notyf.visual.theme.install.success": "colored piss obtained", + "settings.notyf.visual.theme.install.error": "colored piss got pissed onâ€Ļ", + "settings.option.visual.theme.default": "same old piss", "settings.option.visual.theme.dark": "black piss", - // Refer to term.disabled for the disabled option - "settings.option.visual.showPersonalInfo": "show yourself to the pissiverse", // Toggle - - // Settings - Lyrics + "settings.option.visual.showPersonalInfo": "show yourself to the pissiverse", "settings.header.lyrics": "piss lyrics", "settings.header.lyrics.description": "change how your piss speaks to you", - "settings.option.lyrics.enableMusixmatch": "Musixpiss piss lyrics", // Toggle - "settings.option.lyrics.enableMusixmatchKaraoke": "pissraoke mode (Musixpiss only)", // Toggle - "settings.option.lyrics.musixmatchPreferredLanguage": "language for Musixpiss translations", // Dropdown - "settings.option.lyrics.enableYoutubeLyrics": "PissTube subtitles for piss videos", // Toggle - - // Settings - Connectivity + "settings.option.lyrics.enableMusixmatch": "Musixpiss piss lyrics", + "settings.option.lyrics.enableMusixmatchKaraoke": "pissraoke mode (Musixpiss only)", + "settings.option.lyrics.musixmatchPreferredLanguage": "language for Musixpiss translations", + "settings.option.lyrics.enableYoutubeLyrics": "PissTube subtitles for piss videos", "settings.header.connectivity": "pisser-to-pisser connections", "settings.header.connectivity.description": "change how Cider piss on other people, including you", - "settings.option.connectivity.discordRPC": "Pisscord rich pissence", // Dropdown - "settings.option.connectivity.playbackNotifications": "toilet notifications", // Toggle - // Refer to term.disabled for the disabled option + "settings.option.connectivity.discordRPC": "Pisscord rich pissence", + "settings.option.connectivity.playbackNotifications": "toilet notifications", "settings.header.connectivity.discordRPC.cider": "piss as 'Cider'", "settings.header.connectivity.discordRPC.appleMusic": "piss as 'piss music'", - "settings.option.connectivity.discordRPC.clearOnPause": "flush Pisscord rich pissence when holding your piss", // Toggle - "settings.option.connectivity.lastfmScrobble": "Piss.fm scrobbling", // Option to Connect + "settings.option.connectivity.discordRPC.clearOnPause": "flush Pisscord rich pissence when holding your piss", + "settings.option.connectivity.lastfmScrobble": "Piss.fm scrobbling", "settings.option.connectivity.lastfmScrobble.delay": "Piss.fm scrobble delay (%)", "settings.option.connectivity.lastfmScrobble.nowPlaying": "push now playing data to Piss.fm", - "settings.option.connectivity.lastfmScrobble.removeFeatured": "remove featured pissers from piss names (Piss.fm)", + "settings.option.connectivity.lastfmScrobble.removeFeatured": "dump featured pissers from piss names (Piss.fm)", "settings.option.connectivity.lastfmScrobble.filterLoop": "filter same piss (Piss.fm)", - // Refer to term.connect for the connect button - - // Settings - Experimental "settings.header.experimental": "piss lab", "settings.header.experimental.description": "mitochondria is the powerhouse of the cell", - "settings.option.experimental.compactUI": "compact piss", // Toggle - "settings.option.experimental.close_button_hide": "play hide-and-seek when clicking close button", + "settings.option.experimental.compactUI": "compact piss", + "settings.option.window.close_button_hide": "play hide-and-seek when clicking close button", "settings.option.experimental.copy_log": "copy sewage to pissboard", "settings.option.experimental.inline_playlists": "inpiss pisslists and piss collections", - - // Refer to term.disabled & term.enabled - // Spatialization Menu "spatial.notTurnedOn": "3D piss is not on. turn it on lol", "spatial.spatialProperties": "3D properties", "spatial.width": "longness", @@ -336,14 +317,8 @@ "spatial.down": "the piss on the floor", "spatial.listener": "you", "spatial.audioSource": "piss source", - - // Settings - Unfinished "settings.header.unfinished": "DLC piss", - - // Web Remote "remote.web.title": "piss remote", - "remote.web.description": "piss on your phone camera to connect to Cider.", - - // About + "remote.web.description": "piss on your phone camera to pair with Cider.", "about.thanks": "thanks to the Cider Collective team and all the pisseneers putting this together" } \ No newline at end of file diff --git a/src/i18n/en_QUK.json b/src/i18n/en_QUK.json new file mode 100644 index 00000000..4a61b170 --- /dev/null +++ b/src/i18n/en_QUK.json @@ -0,0 +1,319 @@ +{ + "i18n.languageName": "Language of the Quacks", + "i18n.languageNameEnglish": "Language of the Quacks", + "i18n.category": "fun", + "i18n.authors": "@quacksire", + "app.name": "Cider", + "date.format": "${m} ${d}, ${y}", + "dialog.cancel": "Cancel", + "dialog.ok": "OK", + "notification.updatingLibrarySongs": "Quacking library songs...", + "notification.updatingLibraryAlbums": "Quacking library albums...", + "notification.updatingLibraryArtists": "Quacking library artists...", + "term.appleInc": "Apple Inc.", + "term.appleMusic": "Apple Music", + "term.applePodcasts": "Apple Podcasts", + "term.itunes": "iTunes", + "term.github": "GitHub", + "term.discord": "Discord", + "term.learnMore": "Quack more", + "term.accountSettings": "Account Settings", + "term.logout": "Quackout", + "term.login": "Quack In", + "term.about": "About", + "term.privateSession": "Private Session", + "term.queue": "Queue", + "term.history": "History", + "term.search": "Search", + "term.library": "Library", + "term.listenNow": "Listen Now", + "term.browse": "Quack", + "term.radio": "Radio", + "term.recentlyAdded": "Recently Quacked", + "term.songs": "Songs", + "term.albums": "Albums", + "term.artists": "Artists", + "term.podcasts": "Podcasts", + "term.playlists": "Playlists", + "term.playlist": "Playlist", + "term.newPlaylist": "New Playlist", + "term.newPlaylistFolder": "New Playlist Folder", + "term.createNewPlaylist": "Quack New Playlist", + "term.createNewPlaylistFolder": "Quack New Playlist Folder", + "term.deletePlaylist": "Are you sure you want to quack this playlist?", + "term.play": "Play", + "term.pause": "Pause", + "term.previous": "Previous", + "term.next": "Next", + "term.shuffle": "Shuffle", + "term.repeat": "Repeat", + "term.volume": "Volume", + "term.mute": "Quack", + "term.unmute": "Unquack", + "term.share": "Quack", + "term.share.success": "Quacked to clipboard", + "term.settings": "Settings", + "term.seeAll": "Quack All", + "term.sortBy": "Quack By", + "term.sortBy.album": "Album", + "term.sortBy.artist": "Artist", + "term.sortBy.name": "Name", + "term.sortBy.genre": "Genre", + "term.sortBy.releaseDate": "Release Date", + "term.sortBy.duration": "Duration", + "term.sortBy.dateAdded": "Date Quacked", + "term.sortOrder": "A-Z", + "term.sortOrder.ascending": "Ascending", + "term.sortOrder.descending": "Descending", + "term.viewAs": "Quack As", + "term.viewAs.coverArt": "Cover Art", + "term.viewAs.list": "List", + "term.size": "Size", + "term.size.normal": "Normal", + "term.size.compact": "Compact", + "term.enable": "Enable", + "term.disable": "Disable", + "term.enabled": "Enabled", + "term.disabled": "Disabled", + "term.connect": "Connect", + "term.connecting": "Quacking", + "term.disconnect": "Disconnect", + "term.authed": "Authed", + "term.confirm": "You a duck?", + "term.more": "More", + "term.less": "Less", + "term.showMore": "Quack more", + "term.showLess": "Quack less", + "term.topSongs": "Top Songs", + "term.latestReleases": "Latest Releases", + "term.time.added": "Quacked", + "term.time.released": "Quacked", + "term.time.updated": "Quacked", + "term.time.hours": "hours", + "term.time.hour": "hour", + "term.time.minutes": "minutes", + "term.time.minute": "minute", + "term.time.seconds": "seconds", + "term.time.second": "second", + "term.fullscreenView": "Fullscreen View", + "term.defaultView": "Default View", + "term.audioSettings": "Audio Settings", + "term.clearAll": "Clear All", + "term.recentStations": "Recent Stations", + "term.language": "Language", + "term.funLanguages": "Fun", + "term.noLyrics": "Quacking... / Lyrics not found./ Instrumental.", + "term.copyright": "Copyright", + "term.rightsReserved": "All Rights Reserved.", + "term.sponsor": "Sponsor this project", + "term.ciderTeam": "Cider Team", + "term.developer": "Developer", + "term.socialTeam": "Social Team", + "term.socials": "Socials", + "term.contributors": "Contributors", + "term.equalizer": "Equalizer", + "term.reset": "Reset", + "term.track": { + "one": "duck", + "other": "ducks" + }, + "term.tracks": "tracks", + "term.videos": "Videos", + "term.menu": "Menu", + "term.check": "Quack", + "term.aboutArtist": "About {{artistName}}", + "term.topResult": "Top Result", + "term.sharedPlaylists": "Shared Playlists", + "term.people": "People", + "term.newpreset.name": "New EQ Preset Name", + "term.addedpreset": "Quacked Preset", + "term.deletepreset.warn": "Are you sure you want to delete this preset?", + "term.deletedpreset": "Quacked preset", + "term.requestError": "There was a problem with the request.", + "term.song.link.generate": "Quacking song.link share URL...", + "term.musicVideos": "Music Videos", + "term.stations": "Stations", + "term.curators": "Curators", + "term.appleCurators": "Apple Curators", + "term.radioShows": "Radio Shows", + "term.recordLabels": "Record Labels", + "term.videoExtras": "Video Extras", + "term.top": "Top", + "term.version": "Version", + "home.title": "Home", + "home.recentlyPlayed": "Recently Quacked", + "home.recentlyAdded": "Recently Quacked", + "home.artistsFeed": "Your Artists Feed", + "home.artistsFeed.noArtist": "Follow some artists first and their latest releases will be here", + "home.madeForYou": "Made For You", + "home.friendsListeningTo": "Friends Quacking To", + "home.followedArtists": "Quacked Artists", + "error.appleMusicSubRequired": "Apple Music requires a subscription.", + "error.connectionError": "There was a problem quacking to Apple Music.", + "error.noResults": "No Results.", + "error.noResults.description": "Try a new duck.", + "podcast.followOnCider": "Quack On Cider", + "podcast.followedOnCider": "Quacking On Cider", + "podcast.subscribeOnItunes": "Quack On iTunes", + "podcast.subscribedOnItunes": "Quacked On iTunes", + "podcast.itunesStore": "iTunes Store", + "podcast.episodes": "Episodes", + "podcast.playEpisode": "Quack Episode", + "podcast.website": "Podcast Website", + "action.addToLibrary": "Quack to Library", + "action.addToLibrary.success": "Quacked to Library", + "action.addToLibrary.error": "Error Adding to Library", + "action.removeFromLibrary": "Quack from Library", + "action.removeFromLibrary.success": "Quacked from Library", + "action.addToQueue": "Quack to Queue", + "action.addToQueue.success": "Quacked to Queue", + "action.addToQueue.error": "Error Quacking to Queue", + "action.removeFromQueue": "Quack from Queue", + "action.removeFromQueue.success": "Quacked from Queue", + "action.removeFromQueue.error": "Error Removing from Queue", + "action.createPlaylist": "Create a New Playlist", + "action.addToPlaylist": "Quack to Playlist", + "action.removeFromPlaylist": "Quack from Playlist", + "action.addToFavorites": "Quack to Favorites", + "action.follow": "Quack", + "action.follow.success": "Quacked", + "action.follow.error": "Error Quacking", + "action.unfollow": "Unquack", + "action.unfollow.success": "Unquacked", + "action.unfollow.error": "Error Unquacking", + "action.playNext": "Quack Next", + "action.playLater": "Quack Later", + "action.startRadio": "Quack Radio", + "action.goToArtist": "Quack to Artist", + "action.goToAlbum": "Quack to Album", + "action.moveToTop": "Quack to top", + "action.share": "Quack", + "action.rename": "Quack", + "action.love": "Quack", + "action.unlove": "Unquack", + "action.dislike": "Disquack", + "action.undoDislike": "Unquack disquack", + "action.showWebRemoteQR": "Web Remote", + "action.playTracksNext": "Quack ${app.selectedMediaItems.length} tracks next", + "action.playTracksLater": "Quack ${app.selectedMediaItems.length} tracks later", + "action.removeTracks": "Quack ${self.selectedItems.length} tracks from queue", + "action.import": "Import", + "action.export": "Export", + "action.showAlbum": "Quack Complete Album", + "action.tray.minimize": "Quackmize to Tray", + "action.tray.quit": "Die", + "action.tray.show": "Alive Me", + "action.update": "gib new quackys", + "action.copy": "Quack", + "action.newpreset": "New Quackset...", + "action.deletepreset": "Delete Quackset", + "settings.header.general": "General", + "settings.header.general.description": "Adjust the general settings for Cider.", + "settings.option.general.language": "Language", + "settings.option.general.language.main": "Languages", + "settings.option.general.language.fun": "Fun Languages", + "settings.option.general.language.unsorted": "Unsorted", + "settings.option.general.updateCider": "Update Cider", + "settings.option.general.updateCider.branch": "Cider Update Branch", + "settings.option.general.updateCider.branch.description": "Select the branch to update Cider to", + "settings.option.general.updateCider.branch.main": "Stable", + "settings.option.general.updateCider.branch.develop": "Development", + "settings.header.audio": "Audio", + "settings.header.audio.description": "Adjust the audio settings for Cider.", + "settings.option.audio.quality": "Audio Quality", + "settings.header.audio.quality.hireslossless": "Hi-Res Lossless", + "settings.header.audio.quality.hireslossless.description": "up to 24-bit/192 kHz", + "settings.header.audio.quality.lossless": "Lossless", + "settings.header.audio.quality.lossless.description": "up to 24-bit/48 kHz", + "settings.header.audio.quality.high": "High", + "settings.header.audio.quality.high.description": "256 kbps", + "settings.header.audio.quality.standard": "Standard", + "settings.header.audio.quality.standard.description": "64 kbps", + "settings.option.audio.seamlessTransition": "Seamless Audio Transition", + "settings.option.audio.enableAdvancedFunctionality": "Enable Advanced Functionality", + "settings.option.audio.enableAdvancedFunctionality.description": "Enabling AudioContext functionality will allow for extended audio features like Audio Normalization , Equalizers and Visualizers, however on some systems this may cause stuttering in audio tracks.", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processorâ„ĸī¸", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Psychoacoustic Enhancements that makes everything sound both richer and more lively.", + "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP is not compatible with Spatialization. Please disable Spatialization to continue.", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Strength", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Changes the strength of the processing done to the audio. (Aggressive may yield undesirable results)", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Standard", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Aggressive", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audio Normalization", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalizes peak volume for individual tracks to create a more uniform listening experience.", + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Spatialization", + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatialize audio and make audio more 3-dimensional (note: This is not Dolby Atmos)", + "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "Spatialization is not compatible with CAP. Please disable CAP to continue.", + "settings.header.visual": "Visual", + "settings.header.visual.description": "Adjust the visual settings for Cider.", + "settings.option.visual.windowBackgroundStyle": "Window Background Style", + "settings.header.visual.windowBackgroundStyle.none": "None", + "settings.header.visual.windowBackgroundStyle.artwork": "Artwork", + "settings.header.visual.windowBackgroundStyle.image": "Image", + "settings.option.visual.animatedArtwork": "Animated Artwork", + "settings.header.visual.animatedArtwork.always": "Always", + "settings.header.visual.animatedArtwork.limited": "Limited to pages and special entries", + "settings.header.visual.animatedArtwork.disable": "Disable everywhere", + "settings.option.visual.animatedArtworkQuality": "Animated Artwork Quality", + "settings.header.visual.animatedArtworkQuality.low": "Low", + "settings.header.visual.animatedArtworkQuality.medium": "Medium", + "settings.header.visual.animatedArtworkQuality.high": "High", + "settings.header.visual.animatedArtworkQuality.veryHigh": "Very High", + "settings.header.visual.animatedArtworkQuality.extreme": "Extreme", + "settings.option.visual.animatedWindowBackground": "Animated Window Background", + "settings.option.visual.hardwareAcceleration": "Hardware Acceleration", + "settings.option.visual.hardwareAcceleration.description": "Requires relaunch", + "settings.header.visual.hardwareAcceleration.default": "Default", + "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", + "settings.header.visual.theme": "Theme", + "settings.option.visual.theme.default": "Cider", + "settings.option.visual.theme.dark": "Dark", + "settings.option.visual.showPersonalInfo": "Show Personal Info", + "settings.header.lyrics": "Lyrics", + "settings.header.lyrics.description": "Adjust the lyrics settings for Cider.", + "settings.option.lyrics.enableMusixmatch": "Enable Musixmatch Lyrics", + "settings.option.lyrics.enableMusixmatchKaraoke": "Enable Karaoke Mode (Musixmatch only)", + "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch Translation Preferred Language", + "settings.option.lyrics.enableYoutubeLyrics": "Enable Youtube Lyrics for Music Videos", + "settings.header.connectivity": "Connectivity", + "settings.header.connectivity.description": "Adjust the connectivity settings for Cider.", + "settings.option.connectivity.discordRPC": "Discord Rich Presence", + "settings.option.connectivity.playbackNotifications": "Playback Notifications", + "settings.header.connectivity.discordRPC.cider": "Display as 'Cider'", + "settings.header.connectivity.discordRPC.appleMusic": "Display as 'Apple Music'", + "settings.option.connectivity.discordRPC.clearOnPause": "Clear Discord Rich Presence on Pause", + "settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling", + "settings.option.connectivity.lastfmScrobble.delay": "Last.fm Scrobble Delay (%)", + "settings.option.connectivity.lastfmScrobble.nowPlaying": "Enable Last.fm Now Playing", + "settings.option.connectivity.lastfmScrobble.removeFeatured": "Remove featuring artists from song title (Last.fm)", + "settings.option.connectivity.lastfmScrobble.filterLoop": "Filter looped track (Last.fm)", + "settings.header.experimental": "Experimental", + "settings.header.experimental.description": "Adjust the experimental settings for Cider.", + "settings.option.experimental.compactUI": "Compact UI", + "settings.option.window.close_button_hide": "Close Button Should Hide the Application", + "settings.option.experimental.copy_log": "Copy logs to clipboard", + "settings.option.experimental.inline_playlists": "Inline Playlists and Albums", + "spatial.notTurnedOn": "Audio Spatialization is disabled. To use, please enable it first.", + "spatial.spatialProperties": "Spatial Properties", + "spatial.width": "Width", + "spatial.height": "Height", + "spatial.depth": "Depth", + "spatial.gain": "Gain", + "spatial.roomMaterials": "Room Materials", + "spatial.roomDimensions": "Room Dimensions", + "spatial.roomPositions": "Room Positions", + "spatial.setDimensions": "Set Dimensions", + "spatial.setPositions": "Set Positions", + "spatial.up": "Up", + "spatial.front": "Front", + "spatial.left": "Left", + "spatial.right": "Right", + "spatial.back": "Back", + "spatial.down": "Down", + "spatial.listener": "Listener", + "spatial.audioSource": "Audio Source", + "settings.header.unfinished": "Unfinished", + "remote.web.title": "Cider Remote", + "remote.web.description": "Scan the QR code to pair your phone up with this Cider instance", + "about.thanks": "Major thanks to the Cider Collective Team and all of our contributors. Translation file made by @quacksire" +} \ No newline at end of file diff --git a/src/i18n/en_SGA.jsonc b/src/i18n/en_SGA.json similarity index 80% rename from src/i18n/en_SGA.jsonc rename to src/i18n/en_SGA.json index a04520b5..3e98e2d3 100644 --- a/src/i18n/en_SGA.jsonc +++ b/src/i18n/en_SGA.json @@ -1,25 +1,15 @@ { - // i18n Info - "i18n.languageName": "┤ᖋ|:á–‹á”Žá’Ŗâ•Žá”Ž ᖋ|:i!â‘á–‹á•Šá’ˇá’Ŗ", // name of language in native language - "i18n.languageNameEnglish": "Galactic Alphabet", // name of language in English - "i18n.category": "fun", // main = real language, fun = fun community languages - "i18n.authors": "@kyw504100", // Authors, if you contribute to this file feel free to add your name seperated with a space - - // App info + "i18n.languageName": "┤ᖋ|:á–‹á”Žá’Ŗâ•Žá”Ž ᖋ|:i!â‘á–‹á•Šá’ˇá’Ŗ", + "i18n.languageNameEnglish": "Galactic Alphabet", + "i18n.category": "fun", + "i18n.authors": "@kyw504100", "app.name": "ᔮ╎↸ᒷ∷", - "date.format": "${m} ${d}, ${y}", - - // Dialogs "dialog.cancel": "ᔮᖋãƒĒᔮᒷ|:", "dialog.ok": "ᒍ·Į€Âˇ", - - // Notification "notification.updatingLibrarySongs": "⚍i!â†¸á–‹á’Ŗâ•ŽãƒĒ┤ |:╎ᕊ∷ᖋ∷āĨĨ ĪŸá’ãƒĒâ”¤ĪŸ...", "notification.updatingLibraryAlbums": "⚍i!â†¸á–‹á’Ŗâ•ŽãƒĒ┤ |:╎ᕊ∷ᖋ∷āĨĨ ᖋ|:á•Šâšá’˛ĪŸ...", "notification.updatingLibraryArtists": "⚍i!â†¸á–‹á’Ŗâ•ŽãƒĒ┤ |:╎ᕊ∷ᖋ∷āĨĨ á–‹âˆˇá’Ŗâ•ŽĪŸá’ŖĪŸ...", - - // Terms "term.appleInc": "ᖋi!i!|:ᒷ ╎ãƒĒᔮ.", "term.appleMusic": "ᖋi!i!|:ᒷ á’˛âšĪŸâ•Žá”Ž", "term.applePodcasts": "ᖋi!i!|:ᒷ i!á’â†¸á”Žá–‹ĪŸá’ŖĪŸ", @@ -29,11 +19,10 @@ "term.learnMore": "|:ᒷᖋ∷ãƒĒ ᒲᒍ∷ᒷ", "term.accountSettings": "ᖋᔮᔮᒍ⚍ãƒĒá’Ŗ ĪŸá’ˇá’Ŗá’Ŗâ•ŽãƒĒâ”¤ĪŸ", "term.logout": "|:á’â”¤á’âšá’Ŗ", - "term.login": "|:ᒍ┤ ╎ãƒĒ", + "term.login": "|:ᒍ┤╎ãƒĒ", "term.about": "á–‹á•Šá’âšá’Ŗ", "term.privateSession": "I!âˆˇâ•ŽâŠá–‹á’Ŗá’ˇ ĪŸá’ˇĪŸĪŸâ•Žá’ãƒĒ", "term.queue": "ᑑ⚍ᒷ⚍ᒷ", - "term.history": "â‘â•ŽĪŸá’Ŗá’âˆˇāĨĨ", "term.search": "ĪŸá’ˇá–‹âˆˇá”Žâ‘", "term.library": "|:╎ᕊ∷ᖋ∷āĨĨ", "term.listenNow": "|:â•ŽĪŸá’Ŗá’ˇãƒĒ", @@ -46,11 +35,6 @@ "term.podcasts": "I!á’â†¸á”Žá–‹ĪŸá’ŖĪŸ", "term.playlists": "i!|:ᖋāĨĨ|:â•ŽĪŸá’ŖĪŸ", "term.playlist": "i!|:ᖋāĨĨ|:â•ŽĪŸá’Ŗ", - "term.newPlaylist": "ãƒĒᒷ∴ i!|:ᖋāĨĨ|:â•ŽĪŸá’Ŗ", - "term.newPlaylistFolder": "ãƒĒᒷ∴ i!|:ᖋāĨĨ|:â•ŽĪŸá’Ŗ ⎓ᒍ|:↸ᒷ∷", - "term.createNewPlaylist": "á”Žâˆˇá’ˇá–‹á’Ŗá’ˇ ãƒĒᒷ∴ i!|:ᖋāĨĨ|:â•ŽĪŸá’Ŗ", - "term.createNewPlaylistFolder": "á”Žâˆˇá’ˇá–‹á’Ŗá’ˇ ãƒĒᒷ∴ i!|:ᖋāĨĨ|:â•ŽĪŸá’Ŗ ⎓ᒍ|:↸ᒷ∷", - "term.deletePlaylist": "ᖋ∷ᒷ āĨĨᒍ⚍ ĪŸâšâˆˇá’ˇ āĨĨᒍ⚍ ∴ᖋãƒĒá’Ŗ á’Ŗá’ ↸ᒷ|:á’ˇá’Ŗá’ˇ á’Ŗâ‘â•ŽĪŸ i!|:ᖋāĨĨ|:â•ŽĪŸá’Ŗ?", "term.play": "i!|:ᖋāĨĨ", "term.pause": "I!á–‹âšĪŸá’ˇ", "term.previous": "I!âˆˇá’ˇâŠâ•Žá’âšĪŸ", @@ -61,7 +45,6 @@ "term.mute": "á’˛âšá’Ŗá’ˇ", "term.unmute": "⚍ãƒĒá’˛âšá’Ŗá’ˇ", "term.share": "ĪŸâ‘á–‹âˆˇá’ˇ", - "term.share.success": "ᔮᒍi!╎ᒷ↸ á’Ŗá’ ᔮ|:╎i!ᕊᒍᖋ∷↸", "term.settings": "ĪŸá’ˇá’Ŗá’Ŗâ•ŽãƒĒâ”¤ĪŸ", "term.seeAll": "ĪŸá’ˇá’ˇ ᖋ|:|:", "term.sortBy": "ĪŸá’âˆˇá’Ŗ ᕊāĨĨ", @@ -71,6 +54,7 @@ "term.sortBy.genre": "┤ᒷãƒĒ∷ᒷ", "term.sortBy.releaseDate": "∷ᒷ|:á’ˇá–‹ĪŸá’ˇ â†¸á–‹á’Ŗá’ˇ", "term.sortBy.duration": "â†¸âšâˆˇá–‹á’Ŗâ•Žá’ãƒĒ", + "term.sortBy.dateAdded": "â†¸á–‹á’Ŗá’ˇ ᖋ↸↸ᒷ↸", "term.sortOrder": "ᖋ-∊", "term.sortOrder.ascending": "á–‹ĪŸá”Žá’ˇãƒĒ↸╎ãƒĒ┤", "term.sortOrder.descending": "â†¸á’ˇĪŸá”Žá’ˇãƒĒ↸╎ãƒĒ┤", @@ -122,19 +106,23 @@ "term.contributors": "ᔮᒍãƒĒá’Ŗâˆˇâ•Žá•Šâšá’Ŗá’âˆˇĪŸ", "term.equalizer": "ᒷᑑ⚍ᖋ|:╎∩ᒷ∷", "term.reset": "âˆˇá’ˇĪŸá’ˇá’Ŗ", - "term.tracks": "á’Ŗâˆˇá–‹á”ŽÂˇĮ€ÂˇĪŸ", // Assume x amount of tracks. e.g. 50 tracks + "term.tracks": "á’Ŗâˆˇá–‹á”ŽÂˇĮ€ÂˇĪŸ", "term.videos": "⍊╎↸ᒷᒍ", "term.menu": "ᒲᒷ⚍ãƒĒ", "term.check": "ᔮ⍑ᒷᔮ·Į€Âˇ", - "term.aboutArtist": "á–‹á•Šá’âšá’Ŗ {{artistName}}", // e.g. 'About Doja Cat' - "term.topResult": "á’Ŗá’i! âˆˇá’ˇĪŸâš|:á’Ŗ", // Search Results - "term.sharedPlaylists": "ĪŸâ‘á–‹âˆˇá’ˇâ†¸ i!|:ᖋāĨĨ|:â•ŽĪŸá’ŖĪŸ", // Search Results - "term.people": "i!ᒷᒍi!|:ᒷ", // Search Results - "term.newpreset.name": "ãƒĒᒷ∴ ᒷᑑ i!âˆˇá’ˇĪŸá’ˇá’Ŗ ãƒĒᖋᒲᒷ", // Equalizer Preset + "term.aboutArtist": "á–‹á•Šá’âšá’Ŗ {{artistName}}", + "term.topResult": "á’Ŗá’i! âˆˇá’ˇĪŸâš|:á’Ŗ", + "term.sharedPlaylists": "ĪŸâ‘á–‹âˆˇá’ˇâ†¸ i!|:ᖋāĨĨ|:â•ŽĪŸá’ŖĪŸ", + "term.people": "i!ᒷᒍi!|:ᒷ", + "term.newpreset.name": "ãƒĒᒷ∴ ᒷᑑ i!âˆˇá’ˇĪŸá’ˇá’Ŗ ãƒĒᖋᒲᒷ", "term.addedpreset": "ᖋ↸↸ᒷ↸ i!âˆˇá’ˇĪŸá’ˇá’Ŗ", "term.deletepreset.warn": "ᖋ∷ᒷ āĨĨᒍ⚍ ĪŸâšâˆˇá’ˇ āĨĨᒍ⚍ ∴ᖋãƒĒá’Ŗ á’Ŗá’ ↸ᒷ|:á’ˇá’Ŗá’ˇ á’Ŗâ‘â•ŽĪŸ i!âˆˇá’ˇĪŸá’ˇá’Ŗ?", "term.deletedpreset": "∷ᒷᒲᒍ⍊ᒷ↸ i!âˆˇá’ˇĪŸá’ˇá’Ŗ", - "term.musicVideos": "á’˛âšĪŸâ•Žá”Ž âŠâ•Žâ†¸á’ˇá’ĪŸ", // Search page friendlyTypes + "term.defaultPresets": "↸ᒷ⎓ᖋ⚍|:á’Ŗ i!âˆˇá’ˇĪŸá’ˇá’ŖĪŸ", + "term.userPresets": "âšĪŸá’ˇâˆˇ i!âˆˇá’ˇĪŸá’ˇá’ŖĪŸ", + "term.requestError": "á’Ŗâ‘á’ˇâˆˇá’ˇ âˆ´á–‹ĪŸ ᖋ i!∷ᒍᕊ|:ᒷᒲ âˆ´â•Žá’Ŗâ‘ á’Ŗâ‘á’ˇ âˆˇá’ˇá‘‘âšá’ˇĪŸá’Ŗ.", + "term.song.link.generate": "â”¤á’ˇá’Ŗá’Ŗâ•ŽãƒĒ┤ ĪŸá’ãƒĒ┤.|:╎ãƒĒ¡Į€Âˇ ĪŸâ‘á–‹âˆˇá’ˇ ⚍∷|:...", + "term.musicVideos": "á’˛âšĪŸâ•Žá”Ž âŠâ•Žâ†¸á’ˇá’ĪŸ", "term.stations": "ĪŸá’Ŗá–‹á’Ŗâ•Žá’ãƒĒΟ", "term.curators": "á”Žâšâˆˇá–‹á’Ŗá’âˆˇĪŸ", "term.appleCurators": "ᖋi!i!|:ᒷ á”Žâšâˆˇá–‹á’Ŗá’âˆˇĪŸ", @@ -142,8 +130,7 @@ "term.recordLabels": "∷ᒷᔮᒍ∷↸ |:ᖋᕊᒷ|:Ο", "term.videoExtras": "⍊╎↸ᒷᒍ ᒷ/á’Ŗâˆˇá–‹ĪŸ", "term.top": "á’Ŗá’i!", - - // Home + "term.version": "âŠá’ˇâˆˇĪŸâ•Žá’ãƒĒ", "home.title": "⍑ᒍᒲᒷ", "home.recentlyPlayed": "∷ᒷᔮᒷãƒĒá’Ŗ|:āĨĨ i!|:ᖋāĨĨᒷ↸", "home.recentlyAdded": "∷ᒷᔮᒷãƒĒá’Ŗ|:āĨĨ ᖋ↸↸ᒷ↸", @@ -152,14 +139,10 @@ "home.madeForYou": "ᒲᖋ↸ᒷ ⎓ᒍ∷ āĨĨᒍ⚍", "home.friendsListeningTo": "⎓∷╎ᒷãƒĒâ†¸ĪŸ |:â•ŽĪŸá’Ŗá’ˇãƒĒ╎ãƒĒ┤ á’Ŗá’", "home.followedArtists": "⎓ᒍ|:|:ᒍ∴ᒷ↸ á–‹âˆˇá’Ŗâ•ŽĪŸá’ŖĪŸ", - - // Errors "error.appleMusicSubRequired": "ᖋi!i!|:ᒷ á’˛âšĪŸâ•Žá”Ž âˆˇá’ˇá‘‘âšâ•Žâˆˇá’ˇĪŸ ᖋ ĪŸâšá•ŠĪŸá”Žâˆˇâ•Ži!á’Ŗâ•Žá’ãƒĒ.", "error.connectionError": "á’Ŗâ‘á’ˇâˆˇá’ˇ âˆ´á–‹ĪŸ ᖋ i!∷ᒍᕊ|:ᒷᒲ ᔮᒍãƒĒãƒĒá’ˇá”Žá’Ŗâ•ŽãƒĒ┤ á’Ŗá’ ᖋi!i!|:ᒷ á’˛âšĪŸâ•Žá”Ž.", "error.noResults": "ãƒĒᒍ âˆˇá’ˇĪŸâš|:á’ŖĪŸ.", "error.noResults.description": "á’ŖâˆˇāĨĨ ᖋ ãƒĒᒷ∴ ĪŸá’ˇá–‹âˆˇá”Žâ‘.", - - // Podcasts "podcast.followOnCider": "⎓ᒍ|:|:ᒍ∴ ᒍãƒĒ ᔮ╎↸ᒷ∷", "podcast.followedOnCider": "⎓ᒍ|:|:ᒍ∴╎ãƒĒ┤ ᒍãƒĒ ᔮ╎↸ᒷ∷", "podcast.subscribeOnItunes": "ĪŸâšá•ŠĪŸá”Žâˆˇâ•Žá•Šá’ˇ ᒍãƒĒ â•Žá’ŖâšãƒĒá’ˇĪŸ", @@ -168,8 +151,6 @@ "podcast.episodes": "ᒷi!â•ŽĪŸá’â†¸á’ˇĪŸ", "podcast.playEpisode": "i!|:ᖋāĨĨ ᒷi!â•ŽĪŸá’â†¸á’ˇ", "podcast.website": "I!á’â†¸á”Žá–‹ĪŸá’Ŗ âˆ´á’ˇá•ŠĪŸâ•Žá’Ŗá’ˇ", - - // Actions "action.addToLibrary": "ᖋ↸↸ á’Ŗá’ |:╎ᕊ∷ᖋ∷āĨĨ", "action.addToLibrary.success": "ᖋ↸↸ᒷ↸ á’Ŗá’ |:╎ᕊ∷ᖋ∷āĨĨ", "action.addToLibrary.error": "ᒷ∷∷ᒍ∷ ᖋ↸↸╎ãƒĒ┤ á’Ŗá’ |:╎ᕊ∷ᖋ∷āĨĨ", @@ -215,107 +196,98 @@ "action.tray.show": "ĪŸâ‘á’âˆ´", "action.update": "⚍i!â†¸á–‹á’Ŗá’ˇ", "action.copy": "ᔮᒍi!āĨĨ", - "action.newpreset": "ãƒĒᒷ∴ i!âˆˇá’ˇĪŸá’ˇá’Ŗ...", // Equalizer Preset + "action.newpreset": "ãƒĒᒷ∴ i!âˆˇá’ˇĪŸá’ˇá’Ŗ...", "action.deletepreset": "↸ᒷ|:á’ˇá’Ŗá’ˇ i!âˆˇá’ˇĪŸá’ˇá’Ŗ", - - // Settings - General "settings.header.general": "┤ᒷãƒĒᒷ∷ᖋ|:", "settings.header.general.description": "á–‹â†¸â‹ŽâšĪŸá’Ŗ á’Ŗâ‘á’ˇ ┤ᒷãƒĒᒷ∷ᖋ|: ĪŸá’ˇá’Ŗá’Ŗâ•ŽãƒĒâ”¤ĪŸ ⎓ᒍ∷ ᔮ╎↸ᒷ∷.", "settings.option.general.language": "|:ᖋãƒĒ┤⚍ᖋ┤ᒷ", - - // Language optgroups "settings.option.general.language.main": "|:ᖋãƒĒâ”¤âšá–‹â”¤á’ˇĪŸ", "settings.option.general.language.fun": "⎓⚍ãƒĒ |:ᖋãƒĒâ”¤âšá–‹â”¤á’ˇĪŸ", "settings.option.general.language.unsorted": "⚍ãƒĒĪŸá’âˆˇá’Ŗá’ˇâ†¸", - - // Update Cider "settings.option.general.updateCider": "⚍i!â†¸á–‹á’Ŗá’ˇ ᔮ╎↸ᒷ∷", - - // Settings - Audio + "settings.option.general.updateCider.branch": "ᔮ╎↸ᒷ∷ ⚍i!â†¸á–‹á’Ŗá’ˇ ᕊ∷ᖋãƒĒᔮ⍑", + "settings.option.general.updateCider.branch.description": "ĪŸá’ˇ|:á’ˇá”Žá’Ŗ á’Ŗâ‘á’ˇ ᕊ∷ᖋãƒĒᔮ⍑ á’Ŗá’ ⚍i!â†¸á–‹á’Ŗá’ˇ ᔮ╎↸ᒷ∷ á’Ŗá’", + "settings.option.general.updateCider.branch.main": "ĪŸá’Ŗá–‹á•Š|:ᒷ", + "settings.option.general.updateCider.branch.develop": "↸ᒷ⍊ᒷ|:ᒍi!ᒲᒷãƒĒá’Ŗ", "settings.header.audio": "ᖋ⚍↸╎ᒍ", "settings.header.audio.description": "á–‹â†¸â‹ŽâšĪŸá’Ŗ á’Ŗâ‘á’ˇ ᖋ⚍↸╎ᒍ ĪŸá’ˇá’Ŗá’Ŗâ•ŽãƒĒâ”¤ĪŸ ⎓ᒍ∷ ᔮ╎↸ᒷ∷.", - "settings.option.audio.quality": "ᖋ⚍↸╎ᒍ ᑑ⚍ᖋ|:â•Žá’ŖāĨĨ", // Dropdown + "settings.option.audio.quality": "ᖋ⚍↸╎ᒍ ᑑ⚍ᖋ|:â•Žá’ŖāĨĨ", "settings.header.audio.quality.hireslossless": "⍑╎-âˆˇá’ˇĪŸ |:á’ĪŸĪŸ|:á’ˇĪŸĪŸ", "settings.header.audio.quality.hireslossless.description": "(⚍i! á’Ŗá’ 24-á•Šâ•Žá’Ŗ/192 ¡Į€Âˇâ‘∊)", "settings.header.audio.quality.lossless": "|:á’ĪŸĪŸ|:á’ˇĪŸĪŸ", "settings.header.audio.quality.lossless.description": "(⚍i! á’Ŗá’ 24-á•Šâ•Žá’Ŗ/48 ¡Į€Âˇâ‘∊)", "settings.header.audio.quality.high": "⍑╎┤⍑", - "settings.header.audio.quality.low": "|:ᒍ∴", - "settings.header.audio.quality.auto": "á–‹âšá’Ŗá’", - "settings.option.audio.seamlessTransition": "ĪŸá’ˇá–‹á’˛|:á’ˇĪŸĪŸ ᖋ⚍↸╎ᒍ á’Ŗâˆˇá–‹ãƒĒĪŸâ•Žá’Ŗâ•Žá’ãƒĒ", // Toggle - "settings.option.audio.enableAdvancedFunctionality": "ᒷãƒĒᖋᕊ|:ᒷ ᖋ↸⍊ᖋãƒĒᔮᒷ↸ ⎓⚍ãƒĒá”Žá’Ŗâ•Žá’ãƒĒᖋ|:â•Žá’ŖāĨĨ", // Toggle + "settings.header.audio.quality.high.description": "256 ¡Į€Âˇá•Ši!Ο", + "settings.header.audio.quality.standard": "ĪŸá’Ŗá–‹ãƒĒ↸ᖋ∷↸", + "settings.header.audio.quality.standard.description": "64 ¡Į€Âˇá•Ši!Ο", + "settings.option.audio.seamlessTransition": "ĪŸá’ˇá–‹á’˛|:á’ˇĪŸĪŸ ᖋ⚍↸╎ᒍ á’Ŗâˆˇá–‹ãƒĒĪŸâ•Žá’Ŗâ•Žá’ãƒĒ", + "settings.option.audio.enableAdvancedFunctionality": "ᒷãƒĒᖋᕊ|:ᒷ ᖋ↸⍊ᖋãƒĒᔮᒷ↸ ⎓⚍ãƒĒá”Žá’Ŗâ•Žá’ãƒĒᖋ|:â•Žá’ŖāĨĨ", "settings.option.audio.enableAdvancedFunctionality.description": "ᒷãƒĒᖋᕊ|:╎ãƒĒ┤ ᖋ⚍↸╎ᒍᔮᒍãƒĒá’Ŗá’ˇ/á’Ŗ ⎓⚍ãƒĒá”Žá’Ŗâ•Žá’ãƒĒᖋ|:â•Žá’ŖāĨĨ ∴╎|:|: ᖋ|:|:ᒍ∴ ⎓ᒍ∷ ᒷ/á’Ŗá’ˇãƒĒ↸ᒷ↸ ᖋ⚍↸╎ᒍ âŽ“á’ˇá–‹á’Ŗâšâˆˇá’ˇĪŸ |:╎·Į€Âˇá’ˇ ᖋ⚍↸╎ᒍ ãƒĒᒍ∷ᒲᖋ|:â•ŽâˆŠá–‹á’Ŗâ•Žá’ãƒĒ , ᒷᑑ⚍ᖋ|:â•ŽâˆŠá’ˇâˆˇĪŸ ᖋãƒĒ↸ âŠâ•ŽĪŸâšá–‹|:â•ŽâˆŠá’ˇâˆˇĪŸ, ⍑ᒍ∴ᒷ⍊ᒷ∷ ᒍãƒĒ ĪŸá’á’˛á’ˇ ΟāĨĨĪŸá’Ŗá’ˇá’˛ĪŸ á’Ŗâ‘â•ŽĪŸ ᒲᖋāĨĨ á”Žá–‹âšĪŸá’ˇ ĪŸá’Ŗâšá’Ŗá’Ŗá’ˇâˆˇâ•ŽãƒĒ┤ ╎ãƒĒ ᖋ⚍↸╎ᒍ á’Ŗâˆˇá–‹á”ŽÂˇĮ€ÂˇĪŸ.", - "settings.option.audio.enableAdvancedFunctionality.decryptLLPW": "↸ᒷᔮ∷āĨĨi!á’Ŗ |:á’ĪŸĪŸ|:á’ˇĪŸĪŸ i!|:ᖋāĨĨᕊᖋᔮ·Į€Âˇ ∴ᒍ∷·Į€ÂˇâŽ“|:ᒍ∴", // Toggle - "settings.option.audio.enableAdvancedFunctionality.decryptLLPW.description": "ᒷãƒĒᖋᕊ|:á’ˇĪŸ á’Ŗâ‘á’ˇ ᖋᕊ╎|:â•Žá’ŖāĨĨ ⎓ᒍ∷ ᔮ╎↸ᒷ∷ á’Ŗá’ ↸ᒷᔮ∷āĨĨi!á’Ŗ |:á’ĪŸĪŸ|:á’ˇĪŸĪŸ ᖋ⚍↸╎ᒍ ⎓╎|:á’ˇĪŸ. ᖋ ᒲ╎ãƒĒᒍ∷ i!ᒷ∷⎓ᒍ∷ᒲᖋãƒĒᔮᒷ â‘â•Žá’Ŗ ∴╎|:|: ᒍᔮᔮ⚍∷.", - "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "ᖋ⚍↸╎ᒍ ãƒĒᒍ∷ᒲᖋ|:â•ŽâˆŠá–‹á’Ŗâ•Žá’ãƒĒ", // Toggle + "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "ᔮ╎↸ᒷ∷ ᖋ↸∷ᒷãƒĒᖋ|:╎ãƒĒᒷ i!âˆˇá’á”Žá’ˇĪŸĪŸá’âˆˇâ„ĸī¸", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "i!ΟāĨĨá”Žâ‘á’á–‹á”Žá’âšĪŸá’Ŗâ•Žá”Ž ᒷãƒĒ⍑ᖋãƒĒᔮᒷᒲᒷãƒĒá’ŖĪŸ á’Ŗâ‘á–‹á’Ŗ ᒲᖋ·Į€Âˇá’ˇĪŸ ᒷ⍊ᒷ∷āĨĨá’Ŗâ‘â•ŽãƒĒ┤ ĪŸá’âšãƒĒ↸ á•Šá’á’Ŗâ‘ ∷╎ᔮ⍑ᒷ∷ ᖋãƒĒ↸ ᒲᒍ∷ᒷ |:╎⍊ᒷ|:āĨĨ | â†¸á’ˇĪŸâ•Žâ”¤ãƒĒᒷ↸ ᕊāĨĨ ᒲᖋ╎·Į€Âˇâ•Žâˆ´â•Ž.", + "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "ᔮᖋi! â•ŽĪŸ ãƒĒá’á’Ŗ ᔮᒍᒲi!á–‹á’Ŗâ•Žá•Š|:ᒷ âˆ´â•Žá’Ŗâ‘ Οi!á–‹á’Ŗâ•Žá–‹|:â•ŽâˆŠá–‹á’Ŗâ•Žá’ãƒĒ. i!|:á’ˇá–‹ĪŸá’ˇ â†¸â•ŽĪŸá–‹á•Š|:ᒷ Οi!á–‹á’Ŗâ•Žá–‹|:â•ŽâˆŠá–‹á’Ŗâ•Žá’ãƒĒ á’Ŗá’ ᔮᒍãƒĒá’Ŗâ•ŽãƒĒ⚍ᒷ.", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "ᔮᖋi! ĪŸá’Ŗâˆˇá’ˇãƒĒâ”¤á’Ŗâ‘", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "ᔮ⍑ᖋãƒĒâ”¤á’ˇĪŸ á’Ŗâ‘á’ˇ ĪŸá’Ŗâˆˇá’ˇãƒĒâ”¤á’Ŗâ‘ ᒍ⎓ á’Ŗâ‘á’ˇ i!âˆˇá’á”Žá’ˇĪŸĪŸâ•ŽãƒĒ┤ ↸ᒍãƒĒᒷ á’Ŗá’ á’Ŗâ‘á’ˇ ᖋ⚍↸╎ᒍ. (á–‹â”¤â”¤âˆˇá’ˇĪŸĪŸâ•ŽâŠá’ˇ ᒲᖋāĨĨ āĨĨ╎ᒷ|:↸ ⚍ãƒĒâ†¸á’ˇĪŸâ•Žâˆˇá–‹á•Š|:ᒷ âˆˇá’ˇĪŸâš|:á’ŖĪŸ)", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "ĪŸá’Ŗá–‹ãƒĒ↸ᖋ∷↸", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "á–‹â”¤â”¤âˆˇá’ˇĪŸĪŸâ•ŽâŠá’ˇ", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "ᖋ⚍↸╎ᒍ ãƒĒᒍ∷ᒲᖋ|:â•ŽâˆŠá–‹á’Ŗâ•Žá’ãƒĒ", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "ãƒĒᒍ∷ᒲᖋ|:â•ŽâˆŠá’ˇĪŸ i!ᒷᖋ·Į€Âˇ ⍊ᒍ|:⚍ᒲᒷ ⎓ᒍ∷ ╎ãƒĒ↸╎⍊╎↸⚍ᖋ|: á’Ŗâˆˇá–‹á”ŽÂˇĮ€ÂˇĪŸ á’Ŗá’ á”Žâˆˇá’ˇá–‹á’Ŗá’ˇ ᖋ ᒲᒍ∷ᒷ ⚍ãƒĒ╎⎓ᒍ∷ᒲ |:â•ŽĪŸá’Ŗá’ˇãƒĒ╎ãƒĒ┤ ᒷ/i!ᒷ∷╎ᒷãƒĒᔮᒷ.", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "ᖋ⚍↸╎ᒍ Οi!á–‹á’Ŗâ•Žá–‹|:â•ŽâˆŠá–‹á’Ŗâ•Žá’ãƒĒ", // Toggle + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "ᖋ⚍↸╎ᒍ Οi!á–‹á’Ŗâ•Žá–‹|:â•ŽâˆŠá–‹á’Ŗâ•Žá’ãƒĒ", "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Οi!á–‹á’Ŗâ•Žá–‹|:╎∩ᒷ ᖋ⚍↸╎ᒍ ᖋãƒĒ↸ ᒲᖋ·Į€Âˇá’ˇ ᖋ⚍↸╎ᒍ ᒲᒍ∷ᒷ 3-↸╎ᒲᒷãƒĒĪŸâ•Žá’ãƒĒᖋ|: (ãƒĒá’á’Ŗá’ˇ: á’Ŗâ‘â•ŽĪŸ â•ŽĪŸ ãƒĒá’á’Ŗ ↸ᒍ|:ᕊāĨĨ á–‹á’Ŗá’˛á’ĪŸ)", - - // Settings - Visual + "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "Οi!á–‹á’Ŗâ•Žá–‹|:â•ŽâˆŠá–‹á’Ŗâ•Žá’ãƒĒ â•ŽĪŸ ãƒĒá’á’Ŗ ᔮᒍᒲi!á–‹á’Ŗâ•Žá•Š|:ᒷ âˆ´â•Žá’Ŗâ‘ ᔮᖋi!. i!|:á’ˇá–‹ĪŸá’ˇ â†¸â•ŽĪŸá–‹á•Š|:ᒷ ᔮᖋi! á’Ŗá’ ᔮᒍãƒĒá’Ŗâ•ŽãƒĒ⚍ᒷ.", "settings.header.visual": "âŠâ•ŽĪŸâšá–‹|:", "settings.header.visual.description": "á–‹â†¸â‹ŽâšĪŸá’Ŗ á’Ŗâ‘á’ˇ âŠâ•ŽĪŸâšá–‹| ĪŸá’ˇá’Ŗá’Ŗâ•ŽãƒĒâ”¤ĪŸ ⎓ᒍ∷ ᔮ╎↸ᒷ∷.", - "settings.option.visual.windowBackgroundStyle": "∴╎ãƒĒ↸ᒍ∴ ᕊᖋᔮ·Į€Âˇâ”¤âˆˇá’âšãƒĒ↸ ĪŸá’ŖāĨĨ|:ᒷ", // Toggle + "settings.option.visual.windowBackgroundStyle": "∴╎ãƒĒ↸ᒍ∴ ᕊᖋᔮ·Į€Âˇâ”¤âˆˇá’âšãƒĒ↸ ĪŸá’ŖāĨĨ|:ᒷ", "settings.header.visual.windowBackgroundStyle.none": "ãƒĒᒍãƒĒᒷ", "settings.header.visual.windowBackgroundStyle.artwork": "á–‹âˆˇá’Ŗâˆ´á’âˆˇÂˇĮ€Âˇ", "settings.header.visual.windowBackgroundStyle.image": "╎ᒲᖋ┤ᒷ", - "settings.option.visual.animatedArtwork": "ᖋãƒĒâ•Žá’˛á–‹á’Ŗá’ˇâ†¸ á–‹âˆˇá’Ŗâˆ´á’âˆˇÂˇĮ€Âˇ", // Dropdown + "settings.option.visual.animatedArtwork": "ᖋãƒĒâ•Žá’˛á–‹á’Ŗá’ˇâ†¸ á–‹âˆˇá’Ŗâˆ´á’âˆˇÂˇĮ€Âˇ", "settings.header.visual.animatedArtwork.always": "ᖋ|:∴ᖋāĨĨΟ", "settings.header.visual.animatedArtwork.limited": "|:â•Žá’˛â•Žá’Ŗá’ˇâ†¸ á’Ŗá’ i!á–‹â”¤á’ˇĪŸ ᖋãƒĒ↸ Οi!ᒷᔮ╎ᖋ|: ᒷãƒĒá’Ŗâˆˇâ•Žá’ˇĪŸ", "settings.header.visual.animatedArtwork.disable": "â†¸â•ŽĪŸá–‹á•Š|:ᒷ ᒷ⍊ᒷ∷āĨĨ∴⍑ᒷ∷ᒷ", - "settings.option.visual.animatedArtworkQuality": "ᖋãƒĒâ•Žá’˛á–‹á’Ŗá’ˇâ†¸ á–‹âˆˇá’Ŗâˆ´á’âˆˇÂˇĮ€Âˇ ᑑ⚍ᖋ|:â•Žá’ŖāĨĨ", // Dropdown + "settings.option.visual.animatedArtworkQuality": "ᖋãƒĒâ•Žá’˛á–‹á’Ŗá’ˇâ†¸ á–‹âˆˇá’Ŗâˆ´á’âˆˇÂˇĮ€Âˇ ᑑ⚍ᖋ|:â•Žá’ŖāĨĨ", "settings.header.visual.animatedArtworkQuality.low": "|:ᒍ∴", "settings.header.visual.animatedArtworkQuality.medium": "ᒲᒷ↸╎⚍ᒲ", "settings.header.visual.animatedArtworkQuality.high": "⍑╎┤⍑", "settings.header.visual.animatedArtworkQuality.veryHigh": "⍊ᒷ∷āĨĨ ⍑╎┤⍑", "settings.header.visual.animatedArtworkQuality.extreme": "ᒷ/á’Ŗâˆˇá’ˇá’˛á’ˇ", - "settings.option.visual.animatedWindowBackground": "ᖋãƒĒâ•Žá’˛á–‹á’Ŗá’ˇâ†¸ ∴╎ãƒĒ↸ᒍ∴ ᕊᖋᔮ·Į€Âˇâ”¤âˆˇá’âšãƒĒ↸", // Toggle - "settings.option.visual.hardwareAcceleration": "⍑ᖋ∷↸∴ᖋ∷ᒷ ᖋᔮᔮᒷ|:á’ˇâˆˇá–‹á’Ŗâ•Žá’ãƒĒ", // Dropdown + "settings.option.visual.animatedWindowBackground": "ᖋãƒĒâ•Žá’˛á–‹á’Ŗá’ˇâ†¸ ∴╎ãƒĒ↸ᒍ∴ ᕊᖋᔮ·Į€Âˇâ”¤âˆˇá’âšãƒĒ↸", + "settings.option.visual.hardwareAcceleration": "⍑ᖋ∷↸∴ᖋ∷ᒷ ᖋᔮᔮᒷ|:á’ˇâˆˇá–‹á’Ŗâ•Žá’ãƒĒ", "settings.option.visual.hardwareAcceleration.description": "âˆˇá’ˇá‘‘âšâ•Žâˆˇá’ˇĪŸ ∷ᒷ|:ᖋ⚍ãƒĒᔮ⍑", "settings.header.visual.hardwareAcceleration.default": "↸ᒷ⎓ᖋ⚍|:á’Ŗ", "settings.header.visual.hardwareAcceleration.webGPU": "∴ᒷᕊ┤i!⚍", "settings.header.visual.theme": "á’Ŗâ‘á’ˇá’˛á’ˇ", - - // Settings - Visual - Theme name + "settings.option.visual.theme.github.download": "╎ãƒĒĪŸá’Ŗá–‹|:|: ⎓∷ᒍᒲ â”¤â•Žá’Ŗâ‘âšá•Š ⚍∷|:", + "settings.prompt.visual.theme.github.URL": "ᒷãƒĒá’Ŗá’ˇâˆˇ á’Ŗâ‘á’ˇ ⚍∷|: ᒍ⎓ á’Ŗâ‘á’ˇ á’Ŗâ‘á’ˇá’˛á’ˇ āĨĨᒍ⚍ ∴ᖋãƒĒá’Ŗ á’Ŗá’ ╎ãƒĒĪŸá’Ŗá–‹|:|:", + "settings.notyf.visual.theme.install.success": "á’Ŗâ‘á’ˇá’˛á’ˇ ╎ãƒĒĪŸá’Ŗá–‹|:|:ᒷ↸ ĪŸâšá”Žá”Žá’ˇĪŸĪŸâŽ“âš|:|:āĨĨ", + "settings.notyf.visual.theme.install.error": "á’Ŗâ‘á’ˇá’˛á’ˇ ╎ãƒĒĪŸá’Ŗá–‹|:|:á–‹á’Ŗâ•Žá’ãƒĒ ⎓ᖋ╎|:ᒷ↸", "settings.option.visual.theme.default": "ᔮ╎↸ᒷ∷", "settings.option.visual.theme.dark": "↸ᖋ∷·Į€Âˇ", - // Refer to term.disabled for the disabled option - "settings.option.visual.showPersonalInfo": "ĪŸâ‘á’âˆ´ i!á’ˇâˆˇĪŸá’ãƒĒᖋ|: ╎ãƒĒ⎓ᒍ", // Toggle - - // Settings - Lyrics + "settings.option.visual.showPersonalInfo": "ĪŸâ‘á’âˆ´ i!á’ˇâˆˇĪŸá’ãƒĒᖋ|: ╎ãƒĒ⎓ᒍ", "settings.header.lyrics": "|:āĨĨâˆˇâ•Žá”ŽĪŸ", "settings.header.lyrics.description": "á–‹â†¸â‹ŽâšĪŸá’Ŗ á’Ŗâ‘á’ˇ |:āĨĨâˆˇâ•Žá”ŽĪŸ ĪŸá’ˇá’Ŗá’Ŗâ•ŽãƒĒâ”¤ĪŸ ⎓ᒍ∷ ᔮ╎↸ᒷ∷.", - "settings.option.lyrics.enableMusixmatch": "ᒷãƒĒᖋᕊ|:ᒷ á’˛âšĪŸâ•ŽĖ‡/á’˛á–‹á’Ŗá”Žâ‘ |:āĨĨâˆˇâ•Žá”ŽĪŸ", // Toggle - "settings.option.lyrics.enableMusixmatchKaraoke": "ᒷãƒĒᖋᕊ|:ᒷ ¡Į€Âˇá–‹âˆˇá–‹á’ÂˇĮ€Âˇá’ˇ ᒲᒍ↸ᒷ (á’˛âšĪŸâ•ŽĖ‡/á’˛á–‹á’Ŗá”Žâ‘ ᒍãƒĒ|:āĨĨ)", // Toggle - "settings.option.lyrics.musixmatchPreferredLanguage": "á’˛âšĪŸâ•ŽĖ‡/á’˛á–‹á’Ŗá”Žâ‘ á’Ŗâˆˇá–‹ãƒĒΟ|:á–‹á’Ŗâ•Žá’ãƒĒ i!∷ᒷ⎓ᒷ∷∷ᒷ↸ |:ᖋãƒĒ┤⚍ᖋ┤ᒷ", // Dropdown - "settings.option.lyrics.enableYoutubeLyrics": "ᒷãƒĒᖋᕊ|:ᒷ āĨĨá’âšá’Ŗâšá•Šá’ˇ |:āĨĨâˆˇâ•Žá”ŽĪŸ ⎓ᒍ∷ á’˛âšĪŸâ•Žá”Ž âŠâ•Žâ†¸á’ˇá’ĪŸ", // Toggle - - // Settings - Connectivity + "settings.option.lyrics.enableMusixmatch": "ᒷãƒĒᖋᕊ|:ᒷ á’˛âšĪŸâ•ŽĖ‡/á’˛á–‹á’Ŗá”Žâ‘ |:āĨĨâˆˇâ•Žá”ŽĪŸ", + "settings.option.lyrics.enableMusixmatchKaraoke": "ᒷãƒĒᖋᕊ|:ᒷ ¡Į€Âˇá–‹âˆˇá–‹á’ÂˇĮ€Âˇá’ˇ ᒲᒍ↸ᒷ (á’˛âšĪŸâ•ŽĖ‡/á’˛á–‹á’Ŗá”Žâ‘ ᒍãƒĒ|:āĨĨ)", + "settings.option.lyrics.musixmatchPreferredLanguage": "á’˛âšĪŸâ•ŽĖ‡/á’˛á–‹á’Ŗá”Žâ‘ á’Ŗâˆˇá–‹ãƒĒΟ|:á–‹á’Ŗâ•Žá’ãƒĒ i!∷ᒷ⎓ᒷ∷∷ᒷ↸ |:ᖋãƒĒ┤⚍ᖋ┤ᒷ", + "settings.option.lyrics.enableYoutubeLyrics": "ᒷãƒĒᖋᕊ|:ᒷ āĨĨá’âšá’Ŗâšá•Šá’ˇ |:āĨĨâˆˇâ•Žá”ŽĪŸ ⎓ᒍ∷ á’˛âšĪŸâ•Žá”Ž âŠâ•Žâ†¸á’ˇá’ĪŸ", "settings.header.connectivity": "ᔮᒍãƒĒãƒĒá’ˇá”Žá’Ŗâ•ŽâŠâ•Žá’ŖāĨĨ", "settings.header.connectivity.description": "á–‹â†¸â‹ŽâšĪŸá’Ŗ á’Ŗâ‘á’ˇ ᔮᒍãƒĒãƒĒá’ˇá”Žá’Ŗâ•ŽâŠâ•Žá’ŖāĨĨ ĪŸá’ˇá’Ŗá’Ŗâ•ŽãƒĒâ”¤ĪŸ ⎓ᒍ∷ ᔮ╎↸ᒷ∷.", - "settings.option.connectivity.discordRPC": "â†¸â•ŽĪŸá”Žá’âˆˇâ†¸ ∷╎ᔮ⍑ i!âˆˇá’ˇĪŸá’ˇãƒĒᔮᒷ", // Dropdown - "settings.option.connectivity.playbackNotifications": "i!|:ᖋāĨĨᕊᖋᔮ·Į€Âˇ ãƒĒá’á’Ŗâ•ŽâŽ“â•Žá”Žá–‹á’Ŗâ•Žá’ãƒĒΟ", // Toggle - // Refer to term.disabled for the disabled option + "settings.option.connectivity.discordRPC": "â†¸â•ŽĪŸá”Žá’âˆˇâ†¸ ∷╎ᔮ⍑ i!âˆˇá’ˇĪŸá’ˇãƒĒᔮᒷ", + "settings.option.connectivity.playbackNotifications": "i!|:ᖋāĨĨᕊᖋᔮ·Į€Âˇ ãƒĒá’á’Ŗâ•ŽâŽ“â•Žá”Žá–‹á’Ŗâ•Žá’ãƒĒΟ", "settings.header.connectivity.discordRPC.cider": "â†¸â•ŽĪŸi!|:ᖋāĨĨ á–‹ĪŸ 'ᔮ╎↸ᒷ∷'", "settings.header.connectivity.discordRPC.appleMusic": "â†¸â•ŽĪŸi!|:ᖋāĨĨ á–‹ĪŸ 'ᖋi!i!|:ᒷ á’˛âšĪŸâ•Žá”Ž'", - "settings.option.connectivity.discordRPC.clearOnPause": "ᔮ|:ᒷᖋ∷ â†¸â•ŽĪŸá”Žá’âˆˇâ†¸ ∷╎ᔮ⍑ i!âˆˇá’ˇĪŸá’ˇãƒĒᔮᒷ ᒍãƒĒ i!á–‹âšĪŸá’ˇ", // Toggle - "settings.option.connectivity.lastfmScrobble": "|:á–‹ĪŸá’Ŗ.⎓ᒲ ĪŸá”Žâˆˇá’á•Šá•Š|:╎ãƒĒ┤", // Option to Connect + "settings.option.connectivity.discordRPC.clearOnPause": "ᔮ|:ᒷᖋ∷ â†¸â•ŽĪŸá”Žá’âˆˇâ†¸ ∷╎ᔮ⍑ i!âˆˇá’ˇĪŸá’ˇãƒĒᔮᒷ ᒍãƒĒ i!á–‹âšĪŸá’ˇ", + "settings.option.connectivity.lastfmScrobble": "|:á–‹ĪŸá’Ŗ.⎓ᒲ ĪŸá”Žâˆˇá’á•Šá•Š|:╎ãƒĒ┤", "settings.option.connectivity.lastfmScrobble.delay": "|:á–‹ĪŸá’Ŗ.⎓ᒲ ĪŸá”Žâˆˇá’á•Šá•Š|:ᒷ ↸ᒷ|:ᖋāĨĨ (%)", "settings.option.connectivity.lastfmScrobble.nowPlaying": "ᒷãƒĒᖋᕊ|:ᒷ |:á–‹ĪŸá’Ŗ.⎓ᒲ ãƒĒᒍ∴ i!|:ᖋāĨĨ╎ãƒĒ┤", "settings.option.connectivity.lastfmScrobble.removeFeatured": "∷ᒷᒲᒍ⍊ᒷ âŽ“á’ˇá–‹á’Ŗâšâˆˇâ•ŽãƒĒ┤ á–‹âˆˇá’Ŗâ•ŽĪŸá’ŖĪŸ ⎓∷ᒍᒲ ĪŸá’ãƒĒ┤ á’Ŗâ•Žá’Ŗ|:ᒷ (|:á–‹ĪŸá’Ŗ.⎓ᒲ)", "settings.option.connectivity.lastfmScrobble.filterLoop": "⎓╎|:á’Ŗá’ˇâˆˇ |:ᒍᒍi!ᒷ↸ á’Ŗâˆˇá–‹á”ŽÂˇĮ€Âˇ (|:á–‹ĪŸá’Ŗ.⎓ᒲ)", - // Refer to term.connect for the connect button - - // Settings - Experimental "settings.header.experimental": "ᒷ/i!ᒷ∷╎ᒲᒷãƒĒá’Ŗá–‹|:", "settings.header.experimental.description": "á–‹â†¸â‹ŽâšĪŸá’Ŗ á’Ŗâ‘á’ˇ ᒷ/i!ᒷ∷╎ᒲᒷãƒĒá’Ŗá–‹|: ĪŸá’ˇá’Ŗá’Ŗâ•ŽãƒĒâ”¤ĪŸ ⎓ᒍ∷ ᔮ╎↸ᒷ∷.", - "settings.option.experimental.compactUI": "ᔮᒍᒲi!á–‹á”Žá’Ŗ ⚍╎", // Toggle - "settings.option.experimental.close_button_hide": "ᔮ|:á’ĪŸá’ˇ á•Šâšá’Ŗá’Ŗá’ãƒĒ ĪŸâ‘á’âš|:↸ ⍑╎↸ᒷ á’Ŗâ‘á’ˇ ᖋi!i!|:â•Žá”Žá–‹á’Ŗâ•Žá’ãƒĒ", + "settings.option.experimental.compactUI": "ᔮᒍᒲi!á–‹á”Žá’Ŗ ⚍╎", + "settings.option.window.close_button_hide": "ᔮ|:á’ĪŸá’ˇ á•Šâšá’Ŗá’Ŗá’ãƒĒ ĪŸâ‘á’âš|:↸ ⍑╎↸ᒷ á’Ŗâ‘á’ˇ ᖋi!i!|:â•Žá”Žá–‹á’Ŗâ•Žá’ãƒĒ", "settings.option.experimental.copy_log": "ᔮᒍi!āĨĨ |:á’â”¤ĪŸ á’Ŗá’ ᔮ|:╎i!ᕊᒍᖋ∷↸", "settings.option.experimental.inline_playlists": "╎ãƒĒ|:╎ãƒĒᒷ i!|:ᖋāĨĨ|:â•ŽĪŸá’ŖĪŸ ᖋãƒĒ↸ ᖋ|:á•Šâšá’˛ĪŸ", - - // Refer to term.disabled & term.enabled - // Spatialization Menu "spatial.notTurnedOn": "ᖋ⚍↸╎ᒍ Οi!á–‹á’Ŗâ•Žá–‹|:â•ŽâˆŠá–‹á’Ŗâ•Žá’ãƒĒ â•ŽĪŸ â†¸â•ŽĪŸá–‹á•Š|:ᒷ↸. á’Ŗá’ âšĪŸá’ˇ, i!|:á’ˇá–‹ĪŸá’ˇ ᒷãƒĒᖋᕊ|:ᒷ â•Žá’Ŗ âŽ“â•ŽâˆˇĪŸá’Ŗ.", "spatial.spatialProperties": "Οi!á–‹á’Ŗâ•Žá–‹|: i!∷ᒍi!á’ˇâˆˇá’Ŗâ•Žá’ˇĪŸ", "spatial.width": "âˆ´â•Žâ†¸á’Ŗâ‘", @@ -335,14 +307,8 @@ "spatial.down": "↸ᒍ∴ãƒĒ", "spatial.listener": "|:â•ŽĪŸá’Ŗá’ˇãƒĒᒷ∷", "spatial.audioSource": "ᖋ⚍↸╎ᒍ ĪŸá’âšâˆˇá”Žá’ˇ", - - // Settings - Unfinished "settings.header.unfinished": "⚍ãƒĒ⎓╎ãƒĒâ•ŽĪŸâ‘á’ˇâ†¸", - - // Web Remote "remote.web.title": "ᔮ╎↸ᒷ∷ âˆˇá’ˇá’˛á’á’Ŗá’ˇ", "remote.web.description": "ĪŸá”Žá–‹ãƒĒ á’Ŗâ‘á’ˇ ᑑ∷ ᔮᒍ↸ᒷ á’Ŗá’ i!ᖋ╎∷ āĨĨᒍ⚍∷ i!⍑ᒍãƒĒᒷ ⚍i! âˆ´â•Žá’Ŗâ‘ á’Ŗâ‘â•ŽĪŸ ᔮ╎↸ᒷ∷ ╎ãƒĒĪŸá’Ŗá–‹ãƒĒᔮᒷ", - - // About "about.thanks": "ᒲᖋ⋮ᒍ∷ á’Ŗâ‘á–‹ãƒĒ¡Į€ÂˇĪŸ á’Ŗá’ á’Ŗâ‘á’ˇ ᔮ╎↸ᒷ∷ ᔮᒍ|:|:á’ˇá”Žá’Ŗâ•ŽâŠá’ˇ á’Ŗá’ˇá–‹á’˛ ᖋãƒĒ↸ ᖋ|:|: ᒍ⎓ ᒍ⚍∷ ᔮᒍãƒĒá’Ŗâˆˇâ•Žá•Šâšá’Ŗá’âˆˇĪŸ." } \ No newline at end of file diff --git a/src/i18n/en_US.json b/src/i18n/en_US.json new file mode 100644 index 00000000..27c766a8 --- /dev/null +++ b/src/i18n/en_US.json @@ -0,0 +1,415 @@ +{ + "i18n.languageName": "English (US)", + "i18n.languageNameEnglish": "English (US)", + "i18n.category": "main", + "i18n.authors": "@maikirakiwi @kyw504100 @nosh118", + "app.name": "Cider", + "date.format": "${m} ${d}, ${y}", + "dialog.cancel": "Cancel", + "dialog.ok": "OK", + "notification.updatingLibrarySongs": "Updating library songs...", + "notification.updatingLibraryAlbums": "Updating library albums...", + "notification.updatingLibraryArtists": "Updating library artists...", + "term.appleInc": "Apple Inc.", + "term.appleMusic": "Apple Music", + "term.applePodcasts": "Apple Podcasts", + "term.itunes": "iTunes", + "term.github": "GitHub", + "term.discord": "Discord", + "term.learnMore": "Learn more", + "term.accountSettings": "Account Settings", + "term.logout": "Logout", + "term.login": "Log In", + "term.about": "About", + "term.privateSession": "Private Session", + "term.queue": "Queue", + "term.lyrics": "Lyrics", + "term.miniplayer": "MiniPlayer", + "term.history": "History", + "term.search": "Search", + "term.library": "Library", + "term.listenNow": "Listen Now", + "term.browse": "Browse", + "term.radio": "Radio", + "term.recentlyAdded": "Recently Added", + "term.songs": "Songs", + "term.albums": "Albums", + "term.artists": "Artists", + "term.podcasts": "Podcasts", + "term.playlists": "Playlists", + "term.playlist": "Playlist", + "term.newPlaylist": "New Playlist", + "term.newPlaylistFolder": "New Playlist Folder", + "term.createNewPlaylist": "Create New Playlist", + "term.createNewPlaylistFolder": "Create New Playlist Folder", + "term.deletePlaylist": "Are you sure you want to delete this playlist?", + "term.play": "Play", + "term.pause": "Pause", + "term.previous": "Previous", + "term.next": "Next", + "term.shuffle": "Shuffle", + "term.repeat": "Repeat", + "term.volume": "Volume", + "term.mute": "Mute", + "term.unmute": "Unmute", + "term.share": "Share", + "term.share.success": "Copied to clipboard", + "term.settings": "Settings", + "term.seeAll": "See All", + "term.sortBy": "Sort By", + "term.sortBy.album": "Album", + "term.sortBy.artist": "Artist", + "term.sortBy.name": "Name", + "term.sortBy.genre": "Genre", + "term.sortBy.releaseDate": "Release Date", + "term.sortBy.duration": "Duration", + "term.sortBy.dateAdded": "Date Added", + "term.sortOrder": "A-Z", + "term.sortOrder.ascending": "Ascending", + "term.sortOrder.descending": "Descending", + "term.viewAs": "View As", + "term.viewAs.coverArt": "Cover Art", + "term.viewAs.list": "List", + "term.size": "Size", + "term.size.normal": "Normal", + "term.size.compact": "Compact", + "term.enable": "Enable", + "term.disable": "Disable", + "term.enabled": "Enabled", + "term.disabled": "Disabled", + "term.connect": "Connect", + "term.connecting": "Connecting", + "term.disconnect": "Disconnect", + "term.authed": "Authed", + "term.confirm": "Confirm?", + "term.more": "More", + "term.less": "Less", + "term.showMore": "Show more", + "term.showLess": "Show less", + "term.topSongs": "Top Songs", + "term.latestReleases": "Latest Releases", + "term.time.added": "Added", + "term.time.released": "Released", + "term.time.updated": "Updated", + "term.time.days": "days", + "term.time.day": { + "one": "day", + "other": "days" + }, + "term.time.hours": "hours", + "term.time.hour": { + "one": "hour", + "other": "hours" + }, + "term.time.minutes": "minutes", + "term.time.minute": { + "one": "minute", + "other": "minutes" + }, + "term.time.seconds": "seconds", + "term.time.second": { + "one": "second", + "other": "seconds" + }, + "term.fullscreenView": "Fullscreen View", + "term.defaultView": "Default View", + "term.audioSettings": "Audio Settings", + "term.audioControls": "Volume Controls", + "term.clearAll": "Clear All", + "term.recentStations": "Recent Stations", + "term.language": "Language", + "term.funLanguages": "Fun", + "term.noLyrics": "Loading... / Lyrics not found./ Instrumental.", + "term.copyright": "Copyright", + "term.rightsReserved": "All Rights Reserved.", + "term.sponsor": "Sponsor this project", + "term.ciderTeam": "Cider Team", + "term.developer": "Developer", + "term.socialTeam": "Social Team", + "term.socials": "Socials", + "term.contributors": "Contributors", + "term.equalizer": "Equalizer", + "term.reset": "Reset", + "term.tracks": "tracks", + "term.track": { + "one" : "track", + "other" : "tracks" + }, + "term.videos": "Videos", + "term.menu": "Menu", + "term.check": "Check", + "term.aboutArtist": "About {{artistName}}", + "term.topResult": "Top Result", + "term.sharedPlaylists": "Shared Playlists", + "term.people": "People", + "term.newpreset.name": "New EQ Preset Name", + "term.addedpreset": "Added Preset", + "term.deletepreset.warn": "Are you sure you want to delete this preset?", + "term.deletedpreset": "Removed preset", + "term.defaultPresets": "Default Presets", + "term.userPresets": "User Presets", + "term.requestError": "There was a problem with the request.", + "term.song.link.generate": "Getting song.link share URL...", + "term.musicVideos": "Music Videos", + "term.stations": "Stations", + "term.curators": "Curators", + "term.appleCurators": "Apple Curators", + "term.radioShows": "Radio Shows", + "term.recordLabels": "Record Labels", + "term.videoExtras": "Video Extras", + "term.top": "Top", + "term.version": "Version", + "term.noVideos": "No videos found.", + "term.plugin": "Plug-in", + "term.pluginMenu": "Plug-in Menu", + "term.pluginMenu.none": "No interactive plugins", + "term.replay": "Replay", + "term.uniqueAlbums": "Unique Albums", + "term.uniqueArtists": "Unique Artists", + "term.uniqueSongs": "Unique Songs", + "term.topArtists": "Top Artists", + "term.listenedTo": "Listened to:", + "term.times": "times", + "term.topAlbums": "Top Albums", + "term.plays": "Plays", + "term.topGenres": "Top Genres", + "term.confirmLogout": "Are you sure you want to logout?", + "term.creditDesignedBy": "Designed by ${authorUsername}", + "home.title": "Home", + "home.recentlyPlayed": "Recently Played", + "home.recentlyAdded": "Recently Added", + "home.artistsFeed": "Your Artists Feed", + "home.artistsFeed.noArtist": "Follow some artists to see their latest releases", + "home.madeForYou": "Made For You", + "home.friendsListeningTo": "Friends Listening To", + "home.followedArtists": "Followed Artists", + "error.appleMusicSubRequired": "Apple Music requires a subscription.", + "error.connectionError": "There was a problem connecting to Apple Music.", + "error.noResults": "No Results.", + "error.noResults.description": "Try a new search.", + "podcast.followOnCider": "Follow On Cider", + "podcast.followedOnCider": "Following On Cider", + "podcast.subscribeOnItunes": "Subscribe On iTunes", + "podcast.subscribedOnItunes": "Subscribed On iTunes", + "podcast.itunesStore": "iTunes Store", + "podcast.episodes": "Episodes", + "podcast.playEpisode": "Play Episode", + "podcast.website": "Podcast Website", + "action.addToLibrary": "Add to Library", + "action.addToLibrary.success": "Added to Library", + "action.addToLibrary.error": "Error Adding to Library", + "action.removeFromLibrary": "Remove from Library", + "action.removeFromLibrary.success": "Removed from Library", + "action.addToQueue": "Add to Queue", + "action.addToQueue.success": "Added to Queue", + "action.addToQueue.error": "Error Adding to Queue", + "action.removeFromQueue": "Remove from Queue", + "action.removeFromQueue.success": "Removed from Queue", + "action.removeFromQueue.error": "Error Removing from Queue", + "action.createPlaylist": "Create a New Playlist", + "action.addToPlaylist": "Add to Playlist", + "action.removeFromPlaylist": "Remove from Playlist", + "action.addToFavorites": "Add to Favorites", + "action.follow": "Follow", + "action.follow.success": "Followed", + "action.follow.error": "Error Following", + "action.unfollow": "Unfollow", + "action.unfollow.success": "Unfollowed", + "action.unfollow.error": "Error Unfollowing", + "action.playNext": "Play Next", + "action.playLater": "Play Later", + "action.startRadio": "Start Radio", + "action.goToArtist": "Go to Artist", + "action.goToAlbum": "Go to Album", + "action.showInPlaylist": "Show in Playlist", + "action.showInAppleMusic": "Show in Apple Music", + "action.moveToTop": "Move out of Folder", + "action.share": "Share", + "action.rename": "Rename", + "action.love": "Love", + "action.unlove": "Unlove", + "action.dislike": "Dislike", + "action.undoDislike": "Undo dislike", + "action.showWebRemoteQR": "Web Remote", + "action.playTracksNext": "Play ${app.selectedMediaItems.length} tracks next", + "action.playTracksLater": "Play ${app.selectedMediaItems.length} tracks later", + "action.removeTracks": "Remove ${self.selectedItems.length} tracks from queue", + "action.import": "Import", + "action.export": "Export", + "action.showAlbum": "Show Complete Album", + "action.tray.minimize": "Minimize to Tray", + "action.tray.quit": "Quit", + "action.tray.show": "Show", + "action.update": "Update", + "action.install": "Install", + "action.copy": "Copy", + "action.newpreset": "New Preset...", + "action.deletepreset": "Delete Preset", + "action.open": "Open", + "action.relaunch.confirm": "Do you want to relaunch Cider?", + "settings.header.general": "General", + "settings.header.general.description": "Adjust the general settings for Cider.", + "settings.option.general.language": "Language", + "settings.option.general.resumebehavior": "Resume behavior", + "settings.option.general.resumebehavior.description": "Resume behavior affects how Cider will resume your session when you return to the app.", + "settings.option.general.resumebehavior.locally": "Locally", + "settings.option.general.resumebehavior.locally.description": "Cider will resume your last session on this machine.", + "settings.option.general.resumebehavior.history": "History", + "settings.option.general.resumebehavior.history.description": "Cider will queue the last song from your overall Apple Music history, across devices.", + "settings.option.general.language.main": "Languages", + "settings.option.general.language.fun": "Fun Languages", + "settings.option.general.language.unsorted": "Unsorted", + "settings.option.general.updateCider": "Update Cider", + "settings.option.general.updateCider.branch": "Cider Update Branch", + "settings.option.general.updateCider.branch.description": "Select the branch to update Cider to", + "settings.option.general.updateCider.branch.main": "Stable", + "settings.option.general.updateCider.branch.develop": "Development", + "settings.notyf.updateCider.update-not-available": "No update available", + "settings.notyf.updateCider.update-downloaded": "Update has been downloaded, restart to apply", + "settings.notyf.updateCider.update-error": "Error updating Cider", + "settings.notyf.updateCider.update-timeout": "Update timed out", + "settings.header.audio": "Audio", + "settings.header.audio.description": "Adjust the audio settings for Cider.", + "settings.option.audio.volumeStep": "Volume Step", + "settings.option.audio.maxVolume": "Max Volume", + "settings.option.audio.quality": "Audio Quality", + "settings.header.audio.quality.hireslossless": "Hi-Res Lossless", + "settings.header.audio.quality.hireslossless.description": "up to 24-bit/192 kHz", + "settings.header.audio.quality.lossless": "Lossless", + "settings.header.audio.quality.lossless.description": "up to 24-bit/48 kHz", + "settings.header.audio.quality.high": "High", + "settings.header.audio.quality.high.description": "256 kbps", + "settings.header.audio.quality.standard": "Standard", + "settings.header.audio.quality.standard.description": "64 kbps", + "settings.option.audio.seamlessTransition": "Seamless Audio Transition", + "settings.option.audio.enableAdvancedFunctionality": "Enable Advanced Functionality", + "settings.option.audio.enableAdvancedFunctionality.description": "Enabling AudioContext functionality will allow for extended audio features like Audio Normalization, Equalizers and Visualizers - however on some systems this may cause stuttering in audio tracks.", + "settings.option.audio.audioLab": "Cider Audio Lab", + "settings.option.audio.audioLab.description": "An assortment of in-house developed audio effects for Cider.", + "settings.warn.audioLab.withoutAF": "AudioContext (Advanced Functionality) is required to enable Cider Audio Laboratory.", + "settings.option.audio.enableAdvancedFunctionality.analogWarmth": "Analog Warmth", + "settings.option.audio.enableAdvancedFunctionality.analogWarmth.description": "Simulates the analog warmth modelled after the Korg Nutube 6P1", + "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity": "Analog Warmth intensity", + "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.description": "Changes the intensity of the Analog Warmth Module processing.", + "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth": "Smooth", + "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm": "Warm", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processorâ„ĸī¸", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Psychoacoustic Enhancements that makes everything sound both richer and more lively.", + "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP is not compatible with Spatialization. Please disable Spatialization to continue.", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Strength", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Changes the strength of the processing done to the audio. (Aggressive may yield undesirable results)", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Standard", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Aggressive", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audio Normalization", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalizes peak volume for individual tracks to create a more uniform listening experience.", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization.disabled": "Managed by Audio Lab", + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Spatialization", + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatialize audio and make audio more 3-dimensional (note: This is not Dolby Atmos)", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Cider Tuned Spatialization", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "Pre-tuned Spatializing Effect, disables the customizable settings of Audio Spatialization. Spatialization must be enabled as a prerequisite.", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Cider Spatialization Profile", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description": "Changes the Tuning Profile of the Spatialization. (Requires App Restart)", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard": "Standard", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile": "Audiophile", + "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "Spatialization is not compatible with CAP. Please disable CAP to continue.", + "settings.header.visual": "Visual", + "settings.header.visual.description": "Adjust the visual settings for Cider.", + "settings.option.visual.windowBackgroundStyle": "Window Background Style", + "settings.header.visual.windowBackgroundStyle.none": "None", + "settings.header.visual.windowBackgroundStyle.artwork": "Artwork", + "settings.header.visual.windowBackgroundStyle.image": "Image", + "settings.option.visual.animatedArtwork": "Animated Artwork", + "settings.header.visual.animatedArtwork.always": "Always", + "settings.header.visual.animatedArtwork.limited": "Limited to pages and special entries", + "settings.header.visual.animatedArtwork.disable": "Disable everywhere", + "settings.option.visual.animatedArtworkQuality": "Animated Artwork Quality", + "settings.header.visual.animatedArtworkQuality.low": "Low", + "settings.header.visual.animatedArtworkQuality.medium": "Medium", + "settings.header.visual.animatedArtworkQuality.high": "High", + "settings.header.visual.animatedArtworkQuality.veryHigh": "Very High", + "settings.header.visual.animatedArtworkQuality.extreme": "Extreme", + "settings.option.visual.animatedWindowBackground": "Animated Window Background", + "settings.option.visual.hardwareAcceleration": "Hardware Acceleration", + "settings.option.visual.hardwareAcceleration.description": "Requires relaunch", + "settings.header.visual.hardwareAcceleration.default": "Default", + "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", + "settings.header.visual.theme": "Theme", + "settings.option.visual.theme.github.download": "Install from GitHub URL", + "settings.option.visual.theme.github.explore": "Explore GitHub Themes", + "settings.header.visual.theme.github.page": "Themes from GitHub", + "settings.option.visual.theme.github.install.confirm": "Are you sure you want to install {{ repo }}?", + "settings.prompt.visual.theme.github.URL": "Enter the URL of the theme you want to install", + "settings.notyf.visual.theme.install.success": "Theme installed successfully", + "settings.notyf.visual.theme.install.error": "Theme installation failed", + "settings.header.visual.plugin": "Plugin", + "settings.option.visual.plugin.github.download": "Install from GitHub URL", + "settings.option.visual.plugin.github.explore": "Explore GitHub Plugins", + "settings.header.visual.plugin.github.page": "Plugins from GitHub", + "settings.option.visual.plugin.github.install.confirm": "Are you sure you want to install {{ repo }}?", + "settings.prompt.visual.plugin.github.URL": "Enter the URL of the plugin you want to install", + "settings.prompt.visual.plugin.github.success": "Plugin installed successfully, Press OK to relaunch Cider", + "settings.notyf.visual.plugin.install.success": "Plugin installed successfully", + "settings.notyf.visual.plugin.install.error": "Plugin installation failed", + "settings.option.visual.theme.default": "Cider", + "settings.option.visual.theme.dark": "Dark", + "settings.option.visual.showPersonalInfo": "Show Personal Info", + "settings.header.window": "Window", + "settings.header.window.description": "Adjust the window settings for Cider.", + "settings.option.window.openOnStartup": "Open Cider on Startup", + "settings.option.window.openOnStartup.hidden": "Open Hidden", + "settings.header.lyrics": "Lyrics", + "settings.header.lyrics.description": "Adjust the lyrics settings for Cider.", + "settings.option.lyrics.enableMusixmatch": "Enable Musixmatch Lyrics", + "settings.option.lyrics.enableMusixmatchKaraoke": "Enable Karaoke Mode (Musixmatch only)", + "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch Translation Preferred Language", + "settings.option.lyrics.enableYoutubeLyrics": "Enable Youtube Lyrics for Music Videos", + "settings.header.connectivity": "Connectivity", + "settings.header.connectivity.description": "Adjust the connectivity settings for Cider.", + "settings.option.connectivity.discordRPC": "Discord Rich Presence", + "settings.option.connectivity.playbackNotifications": "Playback Notifications", + "settings.header.connectivity.discordRPC.cider": "Display as 'Cider'", + "settings.header.connectivity.discordRPC.appleMusic": "Display as 'Apple Music'", + "settings.option.connectivity.discordRPC.clearOnPause": "Clear Discord Rich Presence on Pause", + "settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling", + "settings.option.connectivity.lastfmScrobble.delay": "Last.fm Scrobble Delay (%)", + "settings.option.connectivity.lastfmScrobble.nowPlaying": "Enable Last.fm Now Playing", + "settings.option.connectivity.lastfmScrobble.removeFeatured": "Remove featuring artists from song title (Last.fm)", + "settings.option.connectivity.lastfmScrobble.filterLoop": "Filter looped track (Last.fm)", + "settings.header.debug": "Debug", + "settings.option.debug.copy_log": "Copy logs to clipboard", + "settings.option.debug.openAppData": "Open Cider Folder", + "settings.header.experimental": "Experimental", + "settings.header.experimental.description": "Adjust the experimental settings for Cider.", + "settings.option.experimental.unknownPlugin": "Unknown Sources", + "settings.option.experimental.unknownPlugin.description": "Allow installation of plugins from repos other than the Cider Plugin Repository", + "settings.option.experimental.compactUI": "Compact UI", + "settings.option.window.close_button_hide": "Close Button Should Hide the Application", + "settings.option.experimental.inline_playlists": "Inline Playlists and Albums", + "settings.option.advanced.playlistTrackMapping": "Playlist Track Mapping", + "settings.option.advanced.playlistTrackMapping.description": "Enables deep scanning of playlists to determine which tracks are in which playlists. Playlist cache build times can increase significantly.", + "settings.option.visual.transparent": "Transparent frame", + "settings.option.visual.transparent.description": "Transparent frame (needs Theme Support , requires relaunch)", + "spatial.notTurnedOn": "Audio Spatialization is disabled. To use, please enable it first.", + "spatial.spatialProperties": "Spatial Properties", + "spatial.width": "Width", + "spatial.height": "Height", + "spatial.depth": "Depth", + "spatial.gain": "Gain", + "spatial.roomMaterials": "Room Materials", + "spatial.roomDimensions": "Room Dimensions", + "spatial.roomPositions": "Room Positions", + "spatial.setDimensions": "Set Dimensions", + "spatial.setPositions": "Set Positions", + "spatial.up": "Up", + "spatial.front": "Front", + "spatial.left": "Left", + "spatial.right": "Right", + "spatial.back": "Back", + "spatial.down": "Down", + "spatial.listener": "Listener", + "spatial.audioSource": "Audio Source", + "settings.header.unfinished": "Unfinished", + "remote.web.title": "Cider Remote", + "remote.web.description": "Scan the QR code to pair your phone up with this Cider instance", + "about.thanks": "Major thanks to the Cider Collective Team and all of our contributors." +} diff --git a/src/i18n/es_ES.jsonc b/src/i18n/es_ES.json similarity index 86% rename from src/i18n/es_ES.jsonc rename to src/i18n/es_ES.json index 9a0bf149..f4017664 100644 --- a/src/i18n/es_ES.jsonc +++ b/src/i18n/es_ES.json @@ -1,25 +1,15 @@ -{ // Base File - // i18n Info - "i18n.languageName": "EspaÃąol (ES)", // name of language in native language - "i18n.languageNameEnglish": "Spanish (Spain)", // name of language in English - "i18n.category": "main", // main = real language, fun = fun community languages - "i18n.authors": "@j.fl220", // Authors, if you contribute to this file feel free to add your name seperated with a space - - // App info +{ + "i18n.languageName": "EspaÃąol (ES)", + "i18n.languageNameEnglish": "Spanish (Spain)", + "i18n.category": "main", + "i18n.authors": "@j.fl220", "app.name": "Cider", - "date.format": "${d} ${m}, ${y}", - - // Dialogs "dialog.cancel": "Cancelar", "dialog.ok": "Aceptar", - - // Notification "notification.updatingLibrarySongs": "Actualizando canciones de la biblioteca...", "notification.updatingLibraryAlbums": "Actualizando ÃĄlbumes de la biblioteca...", "notification.updatingLibraryArtists": "Actualizando biblioteca de artistas...", - - // Terms "term.appleInc": "Apple Inc.", "term.appleMusic": "Apple Music", "term.applePodcasts": "Apple Podcasts", @@ -120,13 +110,11 @@ "term.contributors": "Contribuidores", "term.equalizer": "Equalizador", "term.reset": "Resetear", - "term.tracks": "canciones", // Assume x amount of tracks. e.g. 50 tracks + "term.tracks": "canciones", "term.videos": "Vídeos", "term.menu": "MenÃē", "term.check": "Comprobar", - "term.aboutArtist": "MÃĄs sobre {{artistName}}", // e.g. 'About Doja Cat' - - // Home + "term.aboutArtist": "MÃĄs sobre {{artistName}}", "home.title": "Inicio", "home.recentlyPlayed": "Reproducciones recientes", "home.recentlyAdded": "AÃąadido recientemente", @@ -135,14 +123,10 @@ "home.madeForYou": "Hecho para ti", "home.friendsListeningTo": "Tus amigos estÃĄn escuchando", "home.followedArtists": "Artistas que sigues", - - // Errors "error.appleMusicSubRequired": "Apple Music necesita una suscripciÃŗn.", "error.connectionError": "Ha habido un problema al conectar con Apple Music.", "error.noResults": "Sin resultados", "error.noResults.description": "Intenta otra bÃēsqueda.", - - // Podcasts "podcast.followOnCider": "Seguir en Cider", "podcast.followedOnCider": "Siguiendo en Cider", "podcast.subscribeOnItunes": "Suscribirse en iTunes", @@ -151,8 +135,6 @@ "podcast.episodes": "Episodios", "podcast.playEpisode": "Iniciar Episodio", "podcast.website": "Pagina del podcast", - - // Actions "action.addToLibrary": "AÃąadir a la biblioteca", "action.addToLibrary.success": "AÃąadido a la biblioteca", "action.addToLibrary.error": "Error al aÃąadir a la biblioteca", @@ -197,92 +179,70 @@ "action.tray.quit": "Salir", "action.tray.show": "Abrir", "action.update": "Actualizar", - - // Settings - General "settings.header.general": "General", "settings.header.general.description": "Ajustes generales de Cider.", "settings.option.general.language": "Idioma", - - // Language optgroups "settings.option.general.language.main": "Idiomas", "settings.option.general.language.fun": "Idiomas divertidos", "settings.option.general.language.unsorted": "Sin clasificar", - - // Update Cider - "settings.option.general.updateCider": "Actualizar Cider", // Button - - // Settings - Audio + "settings.option.general.updateCider": "Actualizar Cider", "settings.header.audio": "Audio", "settings.header.audio.description": "Ajustes del audio de Cider.", - "settings.option.audio.quality": "Calidad de audio", // Dropdown + "settings.option.audio.quality": "Calidad de audio", "settings.header.audio.quality.high": "Alto", "settings.header.audio.quality.low": "Bajo", "settings.header.audio.quality.auto": "Auto", - "settings.option.audio.seamlessTransition": "TransiciÃŗn de audio perfecta", // Toggle - "settings.option.audio.enableAdvancedFunctionality": "Activar funciones avanzadas", // Toggle + "settings.option.audio.seamlessTransition": "TransiciÃŗn de audio perfecta", + "settings.option.audio.enableAdvancedFunctionality": "Activar funciones avanzadas", "settings.option.audio.enableAdvancedFunctionality.description": "Habilitar la funcionalidad de AudioContext permitirÃĄ funciones de audio extendidas como NormalizaciÃŗn de audio, Ecualizadores y Visualizadores; sin embargo, en algunos sistemas esto puede causar interrupciones en las canciones.", - "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalizar volumen", // Toggle + "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalizar volumen", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normaliza los picos altos de canciones para hacer la experiencia de escucha mejor.", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "EspacializaciÃŗn del audio", // Toggle + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "EspacializaciÃŗn del audio", "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Espacializa mÃĄs el audio y conviÊrtelo mÃĄs 3-dimensional (nota: Esto no es Dolby Atmos)", - - // Settings - Visual "settings.header.visual": "Visual", "settings.header.visual.description": "Ajustes visuales para Cider.", - "settings.option.visual.windowBackgroundStyle": "Estilo del fondo de la ventana", // Toggle + "settings.option.visual.windowBackgroundStyle": "Estilo del fondo de la ventana", "settings.header.visual.windowBackgroundStyle.none": "Nada", "settings.header.visual.windowBackgroundStyle.artwork": "CarÃĄtula", "settings.header.visual.windowBackgroundStyle.image": "Imagen", - "settings.option.visual.animatedArtwork": "CarÃĄtula animada", // Dropdown + "settings.option.visual.animatedArtwork": "CarÃĄtula animada", "settings.header.visual.animatedArtwork.always": "Habilitar siempre", "settings.header.visual.animatedArtwork.limited": "Limitado a algunas pÃĄginas", "settings.header.visual.animatedArtwork.disable": "Deshabilitar en todas partes", - "settings.option.visual.animatedArtworkQuality": "Calidad de la carÃĄtula animada", // Dropdown + "settings.option.visual.animatedArtworkQuality": "Calidad de la carÃĄtula animada", "settings.header.visual.animatedArtworkQuality.low": "Bajo", "settings.header.visual.animatedArtworkQuality.medium": "Medio", "settings.header.visual.animatedArtworkQuality.high": "Alto", "settings.header.visual.animatedArtworkQuality.veryHigh": "Muy alto", "settings.header.visual.animatedArtworkQuality.extreme": "Extrema", - "settings.option.visual.animatedWindowBackground": "Fondo de la ventana animado", // Toggle - "settings.option.visual.hardwareAcceleration": "AceleraciÃŗn del hardware", // Dropdown + "settings.option.visual.animatedWindowBackground": "Fondo de la ventana animado", + "settings.option.visual.hardwareAcceleration": "AceleraciÃŗn del hardware", "settings.option.visual.hardwareAcceleration.description": "La app requiere reinicio", "settings.header.visual.hardwareAcceleration.default": "Por defecto", "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", - // Refer to term.disabled for the disabled option - "settings.option.visual.showPersonalInfo": "Mostrar informaciÃŗn personal", // Toggle - - // Settings - Lyrics + "settings.option.visual.showPersonalInfo": "Mostrar informaciÃŗn personal", "settings.header.lyrics": "Letras", "settings.header.lyrics.description": "Ajuste las letras para Cider", - "settings.option.lyrics.enableMusixmatch": "Habilitar las letras de Musixmatch", // Toggle - "settings.option.lyrics.enableMusixmatchKaraoke": "Habilita el modo Karaoke (solo con Musixmatch)", // Toggle - "settings.option.lyrics.musixmatchPreferredLanguage": "Idioma de traducciÃŗn por defecto en Musixmatch", // Dropdown - "settings.option.lyrics.enableYoutubeLyrics": "Habilitar las letras de Youtube para los videos con mÃēsica", // Toggle - - // Settings - Connectivity + "settings.option.lyrics.enableMusixmatch": "Habilitar las letras de Musixmatch", + "settings.option.lyrics.enableMusixmatchKaraoke": "Habilita el modo Karaoke (solo con Musixmatch)", + "settings.option.lyrics.musixmatchPreferredLanguage": "Idioma de traducciÃŗn por defecto en Musixmatch", + "settings.option.lyrics.enableYoutubeLyrics": "Habilitar las letras de Youtube para los videos con mÃēsica", "settings.header.connectivity": "Conectividad", "settings.header.connectivity.description": "Ajusta la conectividad para Cider.", - "settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown - "settings.option.connectivity.playbackNotifications": "Notificaciones de reproducciÃŗn", // Toggle - // Refer to term.disabled for the disabled option + "settings.option.connectivity.discordRPC": "Discord Rich Presence", + "settings.option.connectivity.playbackNotifications": "Notificaciones de reproducciÃŗn", "settings.header.connectivity.discordRPC.cider": "Mostrar como 'Cider'", "settings.header.connectivity.discordRPC.appleMusic": "Mostrar como 'Apple Music'", - "settings.option.connectivity.discordRPC.clearOnPause": "Quitar Discord Rich Presence en pausa", // Toggle - "settings.option.connectivity.lastfmScrobble": "Scrobbling Last.fm", // Option to Connect + "settings.option.connectivity.discordRPC.clearOnPause": "Quitar Discord Rich Presence en pausa", + "settings.option.connectivity.lastfmScrobble": "Scrobbling Last.fm", "settings.option.connectivity.lastfmScrobble.delay": "Delay del Scrobbling en Last.fm (%)", "settings.option.connectivity.lastfmScrobble.nowPlaying": "Habilitar 'Escuchando ahora' en Last.fm", "settings.option.connectivity.lastfmScrobble.removeFeatured": "Eliminar artistas destacados del título de la canciÃŗn (Last.fm)", "settings.option.connectivity.lastfmScrobble.filterLoop": "Filtrar pista en bucle (Last.fm)", - // Refer to term.connect for the connect button - - // Settings - Experimental "settings.header.experimental": "En pruebas", "settings.header.experimental.description": "Ajustes en pruebas para Cider.", - "settings.option.experimental.compactUI": "Interfaz de usuario compacto", // Toggle - "settings.option.experimental.close_button_hide": "El botÃŗn de cerrar minimizarÃĄ la aplicaciÃŗn en la bandeja", - - // Refer to term.disabled & term.enabled - // Spatialization Menu + "settings.option.experimental.compactUI": "Interfaz de usuario compacto", + "settings.option.window.close_button_hide": "El botÃŗn de cerrar minimizarÃĄ la aplicaciÃŗn en la bandeja", "spatial.notTurnedOn": "La espacializaciÃŗn del audio esta desactivada. Para usarlo primero actívelo.", "spatial.spatialProperties": "Propiedades espaciales", "spatial.width": "Ancho", @@ -302,15 +262,9 @@ "spatial.down": "Abajo", "spatial.listener": "Oyente", "spatial.audioSource": "Salida del audio", - - // Settings - Unfinished "settings.header.unfinished": "Sin acabar", "settings.header.unfinished.description": "Ajustes siendo testeados, no estÃĄn acabados.", - - // Web Remote "remote.web.title": "Cider Remoto", "remote.web.description": "Escanee el cÃŗdigo QR para emparejar su telÊfono con su cliente de Cider", - - // About "about.thanks": "Muchísimas gracias al equipo de Cider Collective y tambiÊn a todos nuestros contribuidores." } \ No newline at end of file diff --git a/src/i18n/fr_CA.jsonc b/src/i18n/fr_CA.json similarity index 78% rename from src/i18n/fr_CA.jsonc rename to src/i18n/fr_CA.json index 132cf845..64e22373 100644 --- a/src/i18n/fr_CA.jsonc +++ b/src/i18n/fr_CA.json @@ -1,299 +1,257 @@ -{ // Base File - - // i18n Info - "i18n.languageName": "Français (CA)", // name of language in native language - "i18n.languageNameEnglish": "French (CA)", // name of language in English - "i18n.category": "main", // main = real language, fun = fun community languages - "i18n.authors": "brock#7527", // Authors, if you contribute to this file feel free to add your name seperated with a space - - // App info - "app.name": "Cider", - - "date.format": "${m} ${d}, ${y}", - - // Dialogs - "dialog.cancel": "Annuler", - "dialog.ok": "D'accord", - - // Notification - "notification.updatingLibrarySongs": "RafraÃŽchir des chansons...", - "notification.updatingLibraryAlbums": "RafraÃŽchir des albums...", - "notification.updatingLibraryArtists": "RafraÃŽchir des artistes...", - // Terms - "term.appleInc": "Apple Inc.", - "term.appleMusic": "Apple Music", - "term.applePodcasts": "Apple Podcasts", - "term.itunes": "iTunes", - "term.github": "GitHub", - "term.discord": "Discord", - "term.learnMore": "Savoir plus", - "term.accountSettings": "RÊglages du compte", - "term.logout": "Se dÊconnecter", - "term.login": "Se connecter", - "term.about": "À propos", - "term.privateSession": "Session en privÊe", - "term.queue": "Suivants", - "term.search": "Rechercher", - "term.library": "Bibliothèque", - "term.listenNow": "À Êcouter", - "term.browse": "Parcourir", - "term.radio": "Radio", - "term.recentlyAdded": "AjoutÊ rÊcemment", - "term.songs": "Chansons", - "term.albums": "Albums", - "term.artists": "Artistes", - "term.podcasts": "Podcasts", - "term.playlists": "Listes de lecture", - "term.playlist": "Liste de lecture", - "term.play": "Écouter", - "term.pause": "Pause", - "term.previous": "Retour", - "term.next": "Suivant", - "term.shuffle": "Lecture alÊatoire", - "term.repeat": "RÊpÊter", - "term.volume": "Volume", - "term.mute": "Assourde", - "term.unmute": "RÊactiver", - "term.share": "Partager", - "term.settings": "RÊglages", - "term.seeAll": "Voix tous", - "term.sortBy": "Sorter par", - "term.sortBy.album": "Album", - "term.sortBy.artist": "Artiste", - "term.sortBy.name": "Nom", - "term.sortBy.genre": "Genre", - "term.sortBy.releaseDate": "Date de sortie", - "term.sortBy.duration": "Duration", - "term.sortOrder": "A-Z", - "term.sortOrder.ascending": "Ascender", - "term.sortOrder.descending": "Descender", - "term.viewAs": "Voix comme", - "term.viewAs.coverArt": "Art de couverture", - "term.viewAs.list": "Liste", - "term.size": "Grandeur", - "term.size.normal": "Normal", - "term.size.compact": "Compacte", - "term.enable": "Activer", - "term.disable": "DÊsactiver", - "term.enabled": "ActivÊe", - "term.disabled": "DÊsactivÊe", - "term.connect": "Connecter", - "term.connecting": "De liaison", - "term.disconnect": "DÊconnecter", - "term.authed": "Authed", - "term.confirm": "Confirmer ?", - "term.more": "De plus", - "term.less": "De moins", - "term.showMore": "Voir plus", - "term.showLess": "Voir moins", - "term.topSongs" : "Meilleures chansons", - "term.latestReleases": "Nouvelles sorties", - "term.time.added": "AjoutÊ", - "term.time.released": "PubliÊ", - "term.time.updated": "Mis à jour", - "term.time.hours": "heures", - "term.time.hour": "heur", - "term.time.minutes": "minutes", - "term.time.minute": "minute", - "term.time.seconds": "secondes", - "term.time.second": "seconde", - "term.fullscreenView": "Vue plein Êcran", - "term.defaultView": "Vue par dÊfaut", - "term.spacializedAudioSetting": "RÊglage audio spacialisÊ", - "term.clearAll": "Tout effacer", - "term.recentStations": "Stations rÊcentes", - "term.language": "Langue", - "term.funLanguages": "Amusement", - "term.noLyrics": "Loading... / Paroles pas trouvÊ./ Instrumental.", - "term.copyright": "Droits d'auteur", - "term.rightsReserved": "Tous les droits sont rÊservÊs.", - "term.sponsor": "Parrainez ce projet", - "term.ciderTeam": "Team Cider", - "term.developer": "DÊveloppeur", - "term.socialTeam": "Équipe sociale", - "term.contributors": "Contributeurs", - "term.equalizer": "Égaliseur", - "term.reset": "RÊinitialiser", - "term.tracks": "chansons", // Assume x amount of tracks. e.g. 50 tracks - "term.videos": "VidÊos", - "term.menu": "Menu", - "action.showAlbum": "Afficher l'album complet", - - // Home - "home.title": "Maison", - "home.recentlyPlayed": "JouÊ rÊcemment", - "home.recentlyAdded": "AjoutÊ rÊcemment", - "home.artistsFeed": "Votre flux d'artistes", - "home.artistsFeed.noArtist": "Suivez certains artistes en premier et leurs dernières sorties seront ici", - "home.madeForYou": "CreÊr pour toi", - "home.friendsListeningTo": "Amis Êcoutant", - "home.followedArtists": "Artistes suivis", - // Errors - "error.appleMusicSubRequired": "Apple Music nÊcessite un abonnement.", - "error.connectionError": "Un problème est survenu lors de la connexion à Apple Music.", - "error.noResults": "Pas de resultats.", - "error.noResults.description": "Essayez une nouvelle recherche.", - - //Podcasts - "podcast.followOnCider": "Suivez sur Cider", - "podcast.followedOnCider": "Suivi sur Cider", - "podcast.subscribeOnItunes": "S'abonner sur iTunes", - "podcast.subscribedOnItunes": "AbonnÊ sur iTunes", - "podcast.itunesStore": "iTunes Store", - "podcast.episodes": "Épisodes", - "podcast.playEpisode": "Lire l'Êpisode", - "podcast.website": "Site web du Podcast", - - // Actions - "action.addToLibrary": "Ajouter à biblio", - "action.addToLibrary.success": "AjoutÊ à biblio", - "action.addToLibrary.error": "Erreur lors de l'ajout à biblio", - "action.removeFromLibrary": "Enlever du biblio", - "action.removeFromLibrary.success": "EnlevÊ du biblio", - "action.addToQueue": "Ajouter à suivants", - "action.addToQueue.success": "AjoutÊ à suivants", - "action.addToQueue.error": "Erreur lors de l'ajout à suivants", - "action.removeFromQueue": "Enlever du suivants", - "action.removeFromQueue.success": "EnlevÊ du suivants", - "action.removeFromQueue.error": "Erreur lors d'enleve du suivants", - "action.addToPlaylist": "Ajoute à liste de lecture", - "action.removeFromPlaylist": "Enleve de liste de lecture", - "action.addToFavorites": "Ajoute à Favorites", - "action.follow": "Suivre", - "action.follow.success": "Suivi", - "action.follow.error": "Erreur a suivre", - "action.unfollow": "Arreter a suivi", - "action.unfollow.success": "Arreter a suivre", - "action.unfollow.error": "Erreur de arreter à suivre", - "action.playNext": "Jouer en prochaine", - "action.playLater": "Jouer plus tard", - "action.startRadio": "Commencer la radio", - "action.goToArtist": "Aller à l'artiste", - "action.goToAlbum": "Aller à l'album", - "action.moveToTop": "DÊplacer vers le haut", - "action.share": "Partager", - "action.rename": "Renommer", - "action.love": "J'adore", - "action.unlove": "Je n'adore plus", - "action.dislike": "Moins de suggestions similaires", - "action.undoDislike": "Annuler le choix Moins de suggestions de ce type", - "action.showWebRemoteQR": "Demontrer la Web Remote QR", - "action.playTracksNext": "Joue ${app.selectedMediaItems.length} chansons en prochain", - "action.playTracksLater": "Joue ${app.selectedMediaItems.length} chansons plus tard", - "action.removeTracks": "Remove ${self.selectedItems.length} tracks from queue", - "action.import": "Importer", - "action.export": "Exporter", - - // Settings - General - "settings.header.general": "RÊglages gÊnÊraux", - "settings.header.general.description": "RÊglez les rÊglages gÊnÊraux de Cider.", - "settings.option.general.language": "Langue", - - // Language optgroups - "settings.option.general.language.main": "Langue", - "settings.option.general.language.fun": "Langues amusantes", - "settings.option.general.language.unsorted": "Non triÊ", - - // Settings - Audio - "settings.header.audio": "Audio", - "settings.header.audio.description": "RÊglez les rÊglages audio de Cider.", - "settings.option.audio.quality": "QualitÊ audio", // Dropdown - "settings.header.audio.quality.high": "Haut", - "settings.header.audio.quality.low": "Bas", - "settings.header.audio.quality.auto": "Auto", - "settings.option.audio.seamlessTransition": "Transition audio fluide", // Toggle - "settings.option.audio.enableAdvancedFunctionality": "Activer la fonctionnalitÊ avancÊe", // Toggle - "settings.option.audio.enableAdvancedFunctionality.description": "L'activation de la fonctionnalitÊ AudioContext permettra des fonctionnalitÊs audio Êtendues telles que la normalisation audio, les Êgaliseurs et les visualiseurs, mais sur certains systèmes, cela peut provoquer des saccades dans les chansons audio.", - "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalisation audio", // Toggle - "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalise le volume maximal des pistes individuelles pour crÊer une expÊrience d'Êcoute plus uniforme.", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Spatialization", // Toggle - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatialisez l'audio et rendez l'audio plus tridimensionnel (remarque: il ne s'agit pas de Dolby Atmos)", - // Settings - Visual - "settings.header.visual": "Visuel", - "settings.header.visual.description": "Ajustez les rÊglages visuels de Cider.", - "settings.option.visual.windowBackgroundStyle": "Style d'arrière-plan de la window", // Toggle - "settings.header.visual.windowBackgroundStyle.none": "Rien", - "settings.header.visual.windowBackgroundStyle.artwork": "Ouvrages d'art", - "settings.header.visual.windowBackgroundStyle.image": "Image", - "settings.option.visual.animatedArtwork": "Oeuvre animÊe", // Dropdown - "settings.header.visual.animatedArtwork.always": "Toujours", - "settings.header.visual.animatedArtwork.limited": "LimitÊ aux pages et aux entrÊes spÊciales", - "settings.header.visual.animatedArtwork.disable": "DÊsactiver partout", - "settings.option.visual.animatedArtworkQuality": "QualitÊ des illustrations animÊes", // Dropdown - "settings.header.visual.animatedArtworkQuality.low": "Bas", - "settings.header.visual.animatedArtworkQuality.medium": "Moyen", - "settings.header.visual.animatedArtworkQuality.high": "Haut", - "settings.header.visual.animatedArtworkQuality.veryHigh": "Très haut", - "settings.header.visual.animatedArtworkQuality.extreme": "ExtrÃĒme", - "settings.option.visual.animatedWindowBackground": "Fond de window animÊ", // Toggle - "settings.option.visual.hardwareAcceleration": "AccÊlÊration matÊrielle", // Dropdown - "settings.option.visual.hardwareAcceleration.description": "NÊcessite une relance", - "settings.header.visual.hardwareAcceleration.default": "DÊfaut", - "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", - // Refer to term.disabled for the disabled option - "settings.option.visual.showPersonalInfo": "Afficher les informations personnelles", // Toggle - - // Settings - Lyrics - "settings.header.lyrics": "Paroles", - "settings.header.lyrics.description": "Ajustez les rÊglages des paroles de Cider.", - "settings.option.lyrics.enableMusixmatch": "Activer les paroles de Musixmatch", // Toggle - "settings.option.lyrics.enableMusixmatchKaraoke": "Activer le mode karaokÊ (Musixmatch uniquement)", // Toggle - "settings.option.lyrics.musixmatchPreferredLanguage": "Traduction Musixmatch langue prÊfÊrÊe", // Dropdown - "settings.option.lyrics.enableYoutubeLyrics": "Activer les paroles Youtube pour les clips vidÊo", // Toggle - - // Settings - Connectivity - "settings.header.connectivity": "ConnectivitÊ", - "settings.header.connectivity.description": "Ajustez les rÊglages de connectivitÊ pour Cider.", - "settings.option.connectivity.discordRPC": "Discord Riche PrÊsence", // Dropdown - "settings.option.connectivity.playbackNotifications": "Notifications de lecture", // Toggle - // Refer to term.disabled for the disabled option - "settings.header.connectivity.discordRPC.cider": "Afficher comme 'Cider'", - "settings.header.connectivity.discordRPC.appleMusic": "Afficher comme 'Apple Music'", - "settings.option.connectivity.discordRPC.clearOnPause": "Effacer la Discord Riche PrÊsence en pause", // Toggle - "settings.option.connectivity.lastfmScrobble": "Scrobbling LastFM", // Option to Connect - "settings.option.connectivity.lastfmScrobble.delay": "DÊlai de scrobble LastFM (%)", - "settings.option.connectivity.lastfmScrobble.nowPlaying": "Activer LastFM en jouer maitenant", - "settings.option.connectivity.lastfmScrobble.removeFeatured": "Supprimer les artistes en vedette du titre de la chanson (LastFM)", - "settings.option.connectivity.lastfmScrobble.filterLoop": "Filtrer la chanson en boucle (LastFM)", - // Refer to term.connect for the connect button - - // Settings - Experimental - "settings.header.experimental": "ExpÊrimental", - "settings.header.experimental.description": "Ajustez les rÊglages expÊrimentaux pour Cider.", - "settings.option.experimental.compactUI": "UI Compact", // Toggle - "settings.option.experimental.closeButtonBehaviour": "Comportement du bouton de fermeture", - "settings.option.experimental.closeButtonBehaviour.quit": "Quitter Cider", - "settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "RÊduire à la barre des tÃĸches", - "settings.option.experimental.closeButtonBehaviour.minimizeTray": "RÊduire dans le bac", - // Refer to term.disabled & term.enabled - - // Spatialization Menu - "spatial.spatialProperties" : "PropriÊtÊs spatiales", - "spatial.width" : "Largeur", - "spatial.height" : "Hauteur", - "spatial.depth" : "Profondeur", - "spatial.gain" : "Gagner", - "spatial.roomMaterials" : "MatÊriaux de la chambre", - "spatial.roomDimensions" : "Dimensions de la chambre", - "spatial.roomPositions" : "Positions de la chambre", - "spatial.setDimensions" : "DÊfinir les cotes", - "spatial.setPositions" : "DÊfinir les positions", - "spatial.up" : "Haut", - "spatial.front" : "Avant", - "spatial.left" : "Gauche", - "spatial.right" : "Droite", - "spatial.back" : "Arrière", - "spatial.down" : "Bas", - "spatial.listener" : "Auditeur", - "spatial.audioSource" : "Source audio", - - // Settings - Unfinished - "settings.header.unfinished": "InachevÊe", - - // Web Remote - "remote.web.title": "Cider Remote", - "remote.web.description": "Scannez le code QR pour coupler votre tÊlÊphone avec cette instance Cider", - - // About - "about.thanks": "Un grand merci à l'Êquipe de Cider Collective et à tous nos contributeurs." +{ + "i18n.languageName": "Français (CA)", + "i18n.languageNameEnglish": "French (CA)", + "i18n.category": "main", + "i18n.authors": "brock#7527", + "app.name": "Cider", + "date.format": "${m} ${d}, ${y}", + "dialog.cancel": "Annuler", + "dialog.ok": "D'accord", + "notification.updatingLibrarySongs": "RafraÃŽchir des chansons...", + "notification.updatingLibraryAlbums": "RafraÃŽchir des albums...", + "notification.updatingLibraryArtists": "RafraÃŽchir des artistes...", + "term.appleInc": "Apple Inc.", + "term.appleMusic": "Apple Music", + "term.applePodcasts": "Apple Podcasts", + "term.itunes": "iTunes", + "term.github": "GitHub", + "term.discord": "Discord", + "term.learnMore": "Savoir plus", + "term.accountSettings": "RÊglages du compte", + "term.logout": "Se dÊconnecter", + "term.login": "Se connecter", + "term.about": "À propos", + "term.privateSession": "Session en privÊe", + "term.queue": "Suivants", + "term.search": "Rechercher", + "term.library": "Bibliothèque", + "term.listenNow": "À Êcouter", + "term.browse": "Parcourir", + "term.radio": "Radio", + "term.recentlyAdded": "AjoutÊ rÊcemment", + "term.songs": "Chansons", + "term.albums": "Albums", + "term.artists": "Artistes", + "term.podcasts": "Podcasts", + "term.playlists": "Listes de lecture", + "term.playlist": "Liste de lecture", + "term.play": "Écouter", + "term.pause": "Pause", + "term.previous": "Retour", + "term.next": "Suivant", + "term.shuffle": "Lecture alÊatoire", + "term.repeat": "RÊpÊter", + "term.volume": "Volume", + "term.mute": "Assourde", + "term.unmute": "RÊactiver", + "term.share": "Partager", + "term.settings": "RÊglages", + "term.seeAll": "Voix tous", + "term.sortBy": "Sorter par", + "term.sortBy.album": "Album", + "term.sortBy.artist": "Artiste", + "term.sortBy.name": "Nom", + "term.sortBy.genre": "Genre", + "term.sortBy.releaseDate": "Date de sortie", + "term.sortBy.duration": "Duration", + "term.sortOrder": "A-Z", + "term.sortOrder.ascending": "Ascender", + "term.sortOrder.descending": "Descender", + "term.viewAs": "Voix comme", + "term.viewAs.coverArt": "Art de couverture", + "term.viewAs.list": "Liste", + "term.size": "Grandeur", + "term.size.normal": "Normal", + "term.size.compact": "Compacte", + "term.enable": "Activer", + "term.disable": "DÊsactiver", + "term.enabled": "ActivÊe", + "term.disabled": "DÊsactivÊe", + "term.connect": "Connecter", + "term.connecting": "De liaison", + "term.disconnect": "DÊconnecter", + "term.authed": "Authed", + "term.confirm": "Confirmer ?", + "term.more": "De plus", + "term.less": "De moins", + "term.showMore": "Voir plus", + "term.showLess": "Voir moins", + "term.topSongs": "Meilleures chansons", + "term.latestReleases": "Nouvelles sorties", + "term.time.added": "AjoutÊ", + "term.time.released": "PubliÊ", + "term.time.updated": "Mis à jour", + "term.time.hours": "heures", + "term.time.hour": "heur", + "term.time.minutes": "minutes", + "term.time.minute": "minute", + "term.time.seconds": "secondes", + "term.time.second": "seconde", + "term.fullscreenView": "Vue plein Êcran", + "term.defaultView": "Vue par dÊfaut", + "term.spacializedAudioSetting": "RÊglage audio spacialisÊ", + "term.clearAll": "Tout effacer", + "term.recentStations": "Stations rÊcentes", + "term.language": "Langue", + "term.funLanguages": "Amusement", + "term.noLyrics": "Loading... / Paroles pas trouvÊ./ Instrumental.", + "term.copyright": "Droits d'auteur", + "term.rightsReserved": "Tous les droits sont rÊservÊs.", + "term.sponsor": "Parrainez ce projet", + "term.ciderTeam": "Team Cider", + "term.developer": "DÊveloppeur", + "term.socialTeam": "Équipe sociale", + "term.contributors": "Contributeurs", + "term.equalizer": "Égaliseur", + "term.reset": "RÊinitialiser", + "term.tracks": "chansons", + "term.videos": "VidÊos", + "term.menu": "Menu", + "action.showAlbum": "Afficher l'album complet", + "home.title": "Maison", + "home.recentlyPlayed": "JouÊ rÊcemment", + "home.recentlyAdded": "AjoutÊ rÊcemment", + "home.artistsFeed": "Votre flux d'artistes", + "home.artistsFeed.noArtist": "Suivez certains artistes en premier et leurs dernières sorties seront ici", + "home.madeForYou": "CreÊr pour toi", + "home.friendsListeningTo": "Amis Êcoutant", + "home.followedArtists": "Artistes suivis", + "error.appleMusicSubRequired": "Apple Music nÊcessite un abonnement.", + "error.connectionError": "Un problème est survenu lors de la connexion à Apple Music.", + "error.noResults": "Pas de resultats.", + "error.noResults.description": "Essayez une nouvelle recherche.", + "podcast.followOnCider": "Suivez sur Cider", + "podcast.followedOnCider": "Suivi sur Cider", + "podcast.subscribeOnItunes": "S'abonner sur iTunes", + "podcast.subscribedOnItunes": "AbonnÊ sur iTunes", + "podcast.itunesStore": "iTunes Store", + "podcast.episodes": "Épisodes", + "podcast.playEpisode": "Lire l'Êpisode", + "podcast.website": "Site web du Podcast", + "action.addToLibrary": "Ajouter à biblio", + "action.addToLibrary.success": "AjoutÊ à biblio", + "action.addToLibrary.error": "Erreur lors de l'ajout à biblio", + "action.removeFromLibrary": "Enlever du biblio", + "action.removeFromLibrary.success": "EnlevÊ du biblio", + "action.addToQueue": "Ajouter à suivants", + "action.addToQueue.success": "AjoutÊ à suivants", + "action.addToQueue.error": "Erreur lors de l'ajout à suivants", + "action.removeFromQueue": "Enlever du suivants", + "action.removeFromQueue.success": "EnlevÊ du suivants", + "action.removeFromQueue.error": "Erreur lors d'enleve du suivants", + "action.addToPlaylist": "Ajoute à liste de lecture", + "action.removeFromPlaylist": "Enleve de liste de lecture", + "action.addToFavorites": "Ajoute à Favorites", + "action.follow": "Suivre", + "action.follow.success": "Suivi", + "action.follow.error": "Erreur a suivre", + "action.unfollow": "Arreter a suivi", + "action.unfollow.success": "Arreter a suivre", + "action.unfollow.error": "Erreur de arreter à suivre", + "action.playNext": "Jouer en prochaine", + "action.playLater": "Jouer plus tard", + "action.startRadio": "Commencer la radio", + "action.goToArtist": "Aller à l'artiste", + "action.goToAlbum": "Aller à l'album", + "action.moveToTop": "DÊplacer vers le haut", + "action.share": "Partager", + "action.rename": "Renommer", + "action.love": "J'adore", + "action.unlove": "Je n'adore plus", + "action.dislike": "Moins de suggestions similaires", + "action.undoDislike": "Annuler le choix Moins de suggestions de ce type", + "action.showWebRemoteQR": "Demontrer la Web Remote QR", + "action.playTracksNext": "Joue ${app.selectedMediaItems.length} chansons en prochain", + "action.playTracksLater": "Joue ${app.selectedMediaItems.length} chansons plus tard", + "action.removeTracks": "Remove ${self.selectedItems.length} tracks from queue", + "action.import": "Importer", + "action.export": "Exporter", + "settings.header.general": "RÊglages gÊnÊraux", + "settings.header.general.description": "RÊglez les rÊglages gÊnÊraux de Cider.", + "settings.option.general.language": "Langue", + "settings.option.general.language.main": "Langue", + "settings.option.general.language.fun": "Langues amusantes", + "settings.option.general.language.unsorted": "Non triÊ", + "settings.header.audio": "Audio", + "settings.header.audio.description": "RÊglez les rÊglages audio de Cider.", + "settings.option.audio.quality": "QualitÊ audio", + "settings.header.audio.quality.high": "Haut", + "settings.header.audio.quality.low": "Bas", + "settings.header.audio.quality.auto": "Auto", + "settings.option.audio.seamlessTransition": "Transition audio fluide", + "settings.option.audio.enableAdvancedFunctionality": "Activer la fonctionnalitÊ avancÊe", + "settings.option.audio.enableAdvancedFunctionality.description": "L'activation de la fonctionnalitÊ AudioContext permettra des fonctionnalitÊs audio Êtendues telles que la normalisation audio, les Êgaliseurs et les visualiseurs, mais sur certains systèmes, cela peut provoquer des saccades dans les chansons audio.", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalisation audio", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalise le volume maximal des pistes individuelles pour crÊer une expÊrience d'Êcoute plus uniforme.", + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Spatialization", + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatialisez l'audio et rendez l'audio plus tridimensionnel (remarque: il ne s'agit pas de Dolby Atmos)", + "settings.header.visual": "Visuel", + "settings.header.visual.description": "Ajustez les rÊglages visuels de Cider.", + "settings.option.visual.windowBackgroundStyle": "Style d'arrière-plan de la window", + "settings.header.visual.windowBackgroundStyle.none": "Rien", + "settings.header.visual.windowBackgroundStyle.artwork": "Ouvrages d'art", + "settings.header.visual.windowBackgroundStyle.image": "Image", + "settings.option.visual.animatedArtwork": "Oeuvre animÊe", + "settings.header.visual.animatedArtwork.always": "Toujours", + "settings.header.visual.animatedArtwork.limited": "LimitÊ aux pages et aux entrÊes spÊciales", + "settings.header.visual.animatedArtwork.disable": "DÊsactiver partout", + "settings.option.visual.animatedArtworkQuality": "QualitÊ des illustrations animÊes", + "settings.header.visual.animatedArtworkQuality.low": "Bas", + "settings.header.visual.animatedArtworkQuality.medium": "Moyen", + "settings.header.visual.animatedArtworkQuality.high": "Haut", + "settings.header.visual.animatedArtworkQuality.veryHigh": "Très haut", + "settings.header.visual.animatedArtworkQuality.extreme": "ExtrÃĒme", + "settings.option.visual.animatedWindowBackground": "Fond de window animÊ", + "settings.option.visual.hardwareAcceleration": "AccÊlÊration matÊrielle", + "settings.option.visual.hardwareAcceleration.description": "NÊcessite une relance", + "settings.header.visual.hardwareAcceleration.default": "DÊfaut", + "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", + "settings.option.visual.showPersonalInfo": "Afficher les informations personnelles", + "settings.header.lyrics": "Paroles", + "settings.header.lyrics.description": "Ajustez les rÊglages des paroles de Cider.", + "settings.option.lyrics.enableMusixmatch": "Activer les paroles de Musixmatch", + "settings.option.lyrics.enableMusixmatchKaraoke": "Activer le mode karaokÊ (Musixmatch uniquement)", + "settings.option.lyrics.musixmatchPreferredLanguage": "Traduction Musixmatch langue prÊfÊrÊe", + "settings.option.lyrics.enableYoutubeLyrics": "Activer les paroles Youtube pour les clips vidÊo", + "settings.header.connectivity": "ConnectivitÊ", + "settings.header.connectivity.description": "Ajustez les rÊglages de connectivitÊ pour Cider.", + "settings.option.connectivity.discordRPC": "Discord Riche PrÊsence", + "settings.option.connectivity.playbackNotifications": "Notifications de lecture", + "settings.header.connectivity.discordRPC.cider": "Afficher comme 'Cider'", + "settings.header.connectivity.discordRPC.appleMusic": "Afficher comme 'Apple Music'", + "settings.option.connectivity.discordRPC.clearOnPause": "Effacer la Discord Riche PrÊsence en pause", + "settings.option.connectivity.lastfmScrobble": "Scrobbling LastFM", + "settings.option.connectivity.lastfmScrobble.delay": "DÊlai de scrobble LastFM (%)", + "settings.option.connectivity.lastfmScrobble.nowPlaying": "Activer LastFM en jouer maitenant", + "settings.option.connectivity.lastfmScrobble.removeFeatured": "Supprimer les artistes en vedette du titre de la chanson (LastFM)", + "settings.option.connectivity.lastfmScrobble.filterLoop": "Filtrer la chanson en boucle (LastFM)", + "settings.header.experimental": "ExpÊrimental", + "settings.header.experimental.description": "Ajustez les rÊglages expÊrimentaux pour Cider.", + "settings.option.experimental.compactUI": "UI Compact", + "settings.option.experimental.closeButtonBehaviour": "Comportement du bouton de fermeture", + "settings.option.experimental.closeButtonBehaviour.quit": "Quitter Cider", + "settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "RÊduire à la barre des tÃĸches", + "settings.option.experimental.closeButtonBehaviour.minimizeTray": "RÊduire dans le bac", + "spatial.spatialProperties": "PropriÊtÊs spatiales", + "spatial.width": "Largeur", + "spatial.height": "Hauteur", + "spatial.depth": "Profondeur", + "spatial.gain": "Gagner", + "spatial.roomMaterials": "MatÊriaux de la chambre", + "spatial.roomDimensions": "Dimensions de la chambre", + "spatial.roomPositions": "Positions de la chambre", + "spatial.setDimensions": "DÊfinir les cotes", + "spatial.setPositions": "DÊfinir les positions", + "spatial.up": "Haut", + "spatial.front": "Avant", + "spatial.left": "Gauche", + "spatial.right": "Droite", + "spatial.back": "Arrière", + "spatial.down": "Bas", + "spatial.listener": "Auditeur", + "spatial.audioSource": "Source audio", + "settings.header.unfinished": "InachevÊe", + "remote.web.title": "Cider Remote", + "remote.web.description": "Scannez le code QR pour coupler votre tÊlÊphone avec cette instance Cider", + "about.thanks": "Un grand merci à l'Êquipe de Cider Collective et à tous nos contributeurs." } \ No newline at end of file diff --git a/src/i18n/fr_FR.json b/src/i18n/fr_FR.json new file mode 100644 index 00000000..c54c3cce --- /dev/null +++ b/src/i18n/fr_FR.json @@ -0,0 +1,301 @@ +{ + "i18n.languageName": "Français", + "i18n.languageNameEnglish": "French", + "i18n.category": "main", + "i18n.authors": "@ErwanGit", + "app.name": "Cider", + "date.format": "${d} ${m} ${y}", + "dialog.cancel": "Annuler", + "dialog.ok": "OK", + "notification.updatingLibrarySongs": "Mise à jour des chansons de la bibliothèque...", + "notification.updatingLibraryAlbums": "Mise à jour des albums de la bibliothèque...", + "notification.updatingLibraryArtists": "Mise à jour des artistes de la bibliothèque...", + "term.appleInc": "Apple Inc.", + "term.appleMusic": "Apple Music", + "term.applePodcasts": "Apple Podcasts", + "term.itunes": "iTunes", + "term.github": "GitHub", + "term.discord": "Discord", + "term.learnMore": "En savoir plus", + "term.accountSettings": "Paramètres du compte", + "term.logout": "DÊconnexion", + "term.login": "Connexion", + "term.about": "À propos", + "term.privateSession": "Session privÊe", + "term.queue": "File d'attente", + "term.history": "Historique", + "term.search": "Recherche", + "term.library": "Bibliothèque", + "term.listenNow": "Écoutez maintenant", + "term.browse": "Explorer", + "term.radio": "Radio", + "term.recentlyAdded": "AjoutÊ rÊcemment", + "term.songs": "Musiques", + "term.albums": "Albums", + "term.artists": "Artistes", + "term.podcasts": "Podcasts", + "term.playlists": "Playlists", + "term.playlist": "Playlist", + "term.newPlaylist": "Nouvelle Playlist", + "term.newPlaylistFolder": "Nouveau dossier de playlist", + "term.createNewPlaylist": "CrÊer une nouvelle playlist", + "term.createNewPlaylistFolder": "Create New Playlist Folder", + "term.deletePlaylist": "Êtes-vous sÃģr de vouloir supprimer cette playlist ?", + "term.play": "Lecture", + "term.pause": "Pause", + "term.previous": "PrÊcÊdent", + "term.next": "Suivant", + "term.shuffle": "AlÊatoire", + "term.repeat": "RÊpÊter", + "term.volume": "Volume", + "term.mute": "Rendre muet", + "term.unmute": "Ne plus rendre muet", + "term.share": "Partager", + "term.settings": "Paramètres", + "term.share.success": "CopiÊ dans le presse-papier", + "term.seeAll": "Voir tout", + "term.sortBy": "Trier par", + "term.sortBy.album": "Album", + "term.sortBy.artist": "Artiste", + "term.sortBy.name": "Nom", + "term.sortBy.genre": "Genre", + "term.sortBy.releaseDate": "Date de sortie", + "term.sortBy.duration": "DurÊe", + "term.sortOrder": "A-Z", + "term.sortOrder.ascending": "Ascendant", + "term.sortOrder.descending": "Descendant", + "term.viewAs": "Voir comme", + "term.viewAs.coverArt": "Pochette d'album", + "term.viewAs.list": "Liste", + "term.size": "Taille", + "term.size.normal": "Normal", + "term.size.compact": "Compacte", + "term.enable": "Activer", + "term.disable": "DÊsactiver", + "term.enabled": "ActivÊ", + "term.disabled": "DÊsactivÊ", + "term.connect": "Connecter", + "term.connecting": "Connexion", + "term.disconnect": "DÊconnexion", + "term.authed": "AuthentifiÊ", + "term.confirm": "Confirmer ?", + "term.more": "Plus", + "term.less": "Moins", + "term.showMore": "Afficher plus", + "term.showLess": "Afficher moins", + "term.topSongs": "Meilleurs titres", + "term.latestReleases": "Dernières sorties", + "term.time.added": "AjoutÊ", + "term.time.released": "PubliÊ", + "term.time.updated": "Mis à jour", + "term.time.hours": "heures", + "term.time.hour": "heure", + "term.time.minutes": "minutes", + "term.time.minute": "minute", + "term.time.seconds": "secondes", + "term.time.second": "seconde", + "term.fullscreenView": "Vue plein Êcran", + "term.defaultView": "Vue par dÊfaut", + "term.spacializedAudioSetting": "Paramètres audio spatialisÊs", + "term.clearAll": "Tout effacer", + "term.recentStations": "Stations rÊcentes", + "term.language": "Langue", + "term.funLanguages": "Amusant", + "term.noLyrics": "Chargement... / Paroles non trouvÊ./ Instrumental.", + "term.copyright": "Copyright", + "term.rightsReserved": "Tous droits rÊservÊs.", + "term.sponsor": "Soutenez ce projet", + "term.ciderTeam": "Équipe Cider", + "term.developer": "DÊveloppeur", + "term.socialTeam": "Équipe de communication", + "term.socials": "RÊseaux sociaux", + "term.contributors": "Contributeurs", + "term.equalizer": "Égaliseur", + "term.reset": "RÊinitialiser", + "term.tracks": "musiques", + "term.videos": "VidÊos", + "term.menu": "Menu", + "term.check": "VÊrifier", + "term.aboutArtist": "À propos de {{artistName}}", + "term.topResult": "Meilleurs rÊsultats", + "term.sharedPlaylists": "Playlists partagÊes", + "term.people": "Personnes", + "term.newpreset.name": "Nouveau nom du prÊrÊglage de l'Êgaliseur", + "term.addedpreset": "Ajout d'un prÊrÊglage", + "term.deletepreset.warn": "Êtes-vous sÃģr de vouloir supprimer ce prÊrÊglage ?", + "term.deletedpreset": "Suppression d'un prÊrÊglage", + "term.musicVideos": "VidÊos musicales", + "term.stations": "Stations", + "term.curators": "Curateurs", + "term.appleCurators": "Curateurs Apple", + "term.radioShows": "Émissions de radio", + "term.recordLabels": "Labels de disques", + "term.videoExtras": "VidÊos bonus", + "term.top": "Top", + "home.title": "Accueil", + "home.recentlyPlayed": "JouÊ rÊcemment", + "home.recentlyAdded": "RÊcemment ajoutÊ", + "home.artistsFeed": "Votre file d'artistes", + "home.artistsFeed.noArtist": "Suivez d'abord certains artistes et leurs dernières sorties seront ici", + "home.madeForYou": "Fait pour vous", + "home.friendsListeningTo": "Vos amis Êcoutent", + "home.followedArtists": "Artistes suivis", + "error.appleMusicSubRequired": "Apple Music nÊcessite un abonnement.", + "error.connectionError": "Il y a eu un problème de connexion à Apple Music.", + "error.noResults": "Aucun rÊsultat.", + "error.noResults.description": "Essayez une nouvelle recherche.", + "podcast.followOnCider": "Suivre sur Cider", + "podcast.followedOnCider": "Suivi sur Cider", + "podcast.subscribeOnItunes": "Suivre sur iTunes", + "podcast.subscribedOnItunes": "Suivi sur iTunes", + "podcast.itunesStore": "iTunes Store", + "podcast.episodes": "Épisodes", + "podcast.playEpisode": "Lire l'Êpisode", + "podcast.website": "Site du podcast", + "action.addToLibrary": "Ajouter à la bibliothèque", + "action.addToLibrary.success": "AjoutÊ à la bibliothèque", + "action.addToLibrary.error": "Erreur lors de l'ajout à la bibliothèque", + "action.removeFromLibrary": "Retirer de la bibliothèque", + "action.removeFromLibrary.success": "RetirÊ de la bibliothèque", + "action.addToQueue": "Ajouter à la file d'attente", + "action.addToQueue.success": "AjoutÊ à la file d'attente", + "action.addToQueue.error": "Erreur lors de l'ajout à la file d'attente", + "action.removeFromQueue": "Retirer de la file d'attente", + "action.removeFromQueue.success": "RetirÊ de la file d'attente", + "action.removeFromQueue.error": "Erreur lors du retrait de la file d'attente", + "action.createPlaylist": "CrÊer une nouvelle playlist", + "action.addToPlaylist": "Ajouter à une playlist", + "action.removeFromPlaylist": "Retirer de la playlist", + "action.addToFavorites": "Ajouter aux favoris", + "action.follow": "Suivre", + "action.follow.success": "Suivi", + "action.follow.error": "Erreur lors de l'abonnement", + "action.unfollow": "Se dÊsabonner", + "action.unfollow.success": "DÊsabonnÊ", + "action.unfollow.error": "Erreur lors du dÊsabonnement", + "action.playNext": "Jouer après", + "action.playLater": "Jouer plus tard", + "action.startRadio": "Lancer la radio", + "action.goToArtist": "Aller à l'artiste", + "action.goToAlbum": "Aller à l'album", + "action.moveToTop": "Haut de page", + "action.share": "Partager", + "action.rename": "Renommer", + "action.love": "Aimer", + "action.unlove": "Ne plus aimer", + "action.dislike": "Je n'aime pas", + "action.undoDislike": "Je n'aime plus", + "action.showWebRemoteQR": "Afficher le QR Code de la tÊlÊcommande à distance", + "action.playTracksNext": "Jouer ${app.selectedMediaItems.length} musiques après", + "action.playTracksLater": "Jouer ${app.selectedMediaItems.length} musiques plus tard", + "action.removeTracks": "Retirer ${self.selectedItems.length} musiques de la file d'attente", + "action.import": "Importer", + "action.export": "Exporter", + "action.showAlbum": "Afficher l'album complet", + "action.tray.minimize": "RÊduire dans la barre d'outils", + "action.tray.quit": "Quitter", + "action.tray.show": "Afficher", + "action.update": "Mettre à jour", + "action.copy": "Copier", + "action.newpreset": "Nouveau prÊrÊglage...", + "action.deletepreset": "Supprimer le prÊrÊglage", + "settings.header.general": "GÊnÊral", + "settings.header.general.description": "Ajuster les paramètres gÊnÊraux de Cider.", + "settings.option.general.language": "Langue", + "settings.option.general.language.main": "Langues", + "settings.option.general.language.fun": "Langues amusantes", + "settings.option.general.language.unsorted": "Non triÊ", + "settings.option.general.updateCider": "Mettre à jour Cider", + "settings.header.audio": "Audio", + "settings.header.audio.description": "Ajuster les paramètres audio de Cider.", + "settings.option.audio.quality": "QualitÊ Audio", + "settings.header.audio.quality.hireslossless": "Lossless haute qualitÊ (Hi-Res)", + "settings.header.audio.quality.hireslossless.description": "(jusqu'à 24 bits/192 kHz)", + "settings.header.audio.quality.lossless": "Lossless", + "settings.header.audio.quality.lossless.description": "(jusqu'à 24 bits/48 kHz)", + "settings.header.audio.quality.enhanced": "AmÊliorÊ", + "settings.header.audio.quality.high": "ÉlevÊe", + "settings.header.audio.quality.low": "Faible", + "settings.header.audio.quality.auto": "Automatique", + "settings.option.audio.seamlessTransition": "Fondu audio transparent", + "settings.option.audio.enableAdvancedFunctionality": "Activer les fonctions avancÊes", + "settings.option.audio.enableAdvancedFunctionality.description": "L'activation de la fonctionnalitÊ AudioContext permet d'utiliser des fonctions audio Êtendues telles que la normalisation du son, les Êgaliseurs et les visualiseurs. Toutefois, sur certains systèmes, cela peut provoquer des bÊgaiements dans les pistes audio.", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Moteur de traitement psycho-acoustique Cider", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Un processus de traitement qui fait croire à votre cerveau que les fichiers sont de meilleure qualitÊ.", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalisation du son", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalise le volume maximal des pistes individuelles pour crÊer une expÊrience d'Êcoute plus uniforme.", + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Spatialisation audio", + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatialiser l'audio et rendre l'audio plus tridimensionnel (note: Ce n'est pas Dolby Atmos)", + "settings.header.visual": "Visuel", + "settings.header.visual.description": "Ajuster les paramètres visuels de Cider.", + "settings.option.visual.windowBackgroundStyle": "Style d'arrière-plan de la fenÃĒtre", + "settings.header.visual.windowBackgroundStyle.none": "Aucun", + "settings.header.visual.windowBackgroundStyle.artwork": "Pochette d'album", + "settings.header.visual.windowBackgroundStyle.image": "Image", + "settings.option.visual.animatedArtwork": "Pochette d'album animÊe", + "settings.header.visual.animatedArtwork.always": "Toujours", + "settings.header.visual.animatedArtwork.limited": "LimitÊ aux pages et aux entrÊes spÊciales", + "settings.header.visual.animatedArtwork.disable": "DÊsactiver partout", + "settings.option.visual.animatedArtworkQuality": "QualitÊ de la pochette d'album animÊe", + "settings.header.visual.animatedArtworkQuality.low": "Faible", + "settings.header.visual.animatedArtworkQuality.medium": "Moyen", + "settings.header.visual.animatedArtworkQuality.high": "ÉlevÊe", + "settings.header.visual.animatedArtworkQuality.veryHigh": "Très ÊlevÊe", + "settings.header.visual.animatedArtworkQuality.extreme": "ExtrÃĒme", + "settings.option.visual.animatedWindowBackground": "Arrière-plan de fenÃĒtre animÊ", + "settings.option.visual.hardwareAcceleration": "AccÊlÊration matÊrielle", + "settings.option.visual.hardwareAcceleration.description": "NÊcessite un relancement", + "settings.header.visual.hardwareAcceleration.default": "DÊfaut", + "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", + "settings.header.visual.theme": "Thème", + "settings.option.visual.theme.default": "Cider", + "settings.option.visual.theme.dark": "Sombre", + "settings.option.visual.showPersonalInfo": "Afficher vos informations personnelles", + "settings.header.lyrics": "Paroles", + "settings.header.lyrics.description": "Ajuster les paramètres des paroles pour Cider.", + "settings.option.lyrics.enableMusixmatch": "Activer les paroles Musixmatch", + "settings.option.lyrics.enableMusixmatchKaraoke": "Activer le mode karaokÊ (Musixmatch seulement)", + "settings.option.lyrics.musixmatchPreferredLanguage": "Langue prÊfÊrÊe pour les traductions Musixmatch", + "settings.option.lyrics.enableYoutubeLyrics": "Activer les paroles YouTube pour les vidÊos de musique", + "settings.header.connectivity": "ConnectivitÊ", + "settings.header.connectivity.description": "Ajuster les paramètres de connectivitÊ de Cider.", + "settings.option.connectivity.discordRPC": "Discord Rich Presence", + "settings.option.connectivity.playbackNotifications": "Notifications de lecture", + "settings.header.connectivity.discordRPC.cider": "Afficher comme 'Cider'", + "settings.header.connectivity.discordRPC.appleMusic": "Afficher comme 'Apple Music'", + "settings.option.connectivity.discordRPC.clearOnPause": "DÊsactiver le Discord Rich Presence quand la musique est en pause", + "settings.option.connectivity.lastfmScrobble": "Scrobble LastFM", + "settings.option.connectivity.lastfmScrobble.delay": "DÊlai de Scrobble LastFM (%)", + "settings.option.connectivity.lastfmScrobble.nowPlaying": "Activer la lecture en cours sur LastFM", + "settings.option.connectivity.lastfmScrobble.removeFeatured": "Supprimer les artistes en vedette du titre de la chanson (LastFM)", + "settings.option.connectivity.lastfmScrobble.filterLoop": "Filtrer les titres en boucle (LastFM)", + "settings.header.experimental": "ExpÊrimental", + "settings.header.experimental.description": "Ajuster les paramètres expÊrimentaux de Cider.", + "settings.option.experimental.compactUI": "Interface utilisateur compacte", + "settings.option.window.close_button_hide": "Le bouton de fermeture doit masquer l'application", + "settings.option.experimental.copy_log": "Copier les logs dans le presse-papier", + "settings.option.experimental.inline_playlists": "Playlists et albums en ligne", + "spatial.notTurnedOn": "La spatialisation audio est dÊsactivÊe. Pour l'utiliser, vous devez d'abord l'activer.", + "spatial.spatialProperties": "PropriÊtÊs spatiales", + "spatial.width": "Largeur", + "spatial.height": "Hauteur", + "spatial.depth": "Profondeur", + "spatial.gain": "Gain", + "spatial.roomMaterials": "MatÊriaux de la pièce", + "spatial.roomDimensions": "Dimensions de la pièce", + "spatial.roomPositions": "Positions de la pièce", + "spatial.setDimensions": "DÊfinir les dimensions", + "spatial.setPositions": "DÊfinir les positions", + "spatial.up": "Haut", + "spatial.front": "Avant", + "spatial.left": "Gauche", + "spatial.right": "Droite", + "spatial.back": "Retour", + "spatial.down": "Bas", + "spatial.listener": "Auditeur", + "spatial.audioSource": "Source Audio", + "settings.header.unfinished": "InachevÊe", + "remote.web.title": "Cider à distance", + "remote.web.description": "Scanner le QR code pour associer votre tÊlÊphone avec cette instance Cider", + "about.thanks": "Un grand merci à l'Êquipe de la Cider Collective et à tous nos contributeurs." +} \ No newline at end of file diff --git a/src/i18n/fr_FR.jsonc b/src/i18n/fr_FR.jsonc deleted file mode 100644 index cf05144b..00000000 --- a/src/i18n/fr_FR.jsonc +++ /dev/null @@ -1,349 +0,0 @@ -{ // Base File - // i18n Info - "i18n.languageName": "Français", // name of language in native language - "i18n.languageNameEnglish": "French", // name of language in English - "i18n.category": "main", // main = real language, fun = fun community languages - "i18n.authors": "@ErwanGit", // Authors, if you contribute to this file feel free to add your name seperated with a space - - // App info - "app.name": "Cider", - - "date.format": "${d} ${m} ${y}", - - // Dialogs - "dialog.cancel": "Annuler", - "dialog.ok": "OK", - - // Notification - "notification.updatingLibrarySongs": "Mise à jour des chansons de la bibliothèque...", - "notification.updatingLibraryAlbums": "Mise à jour des albums de la bibliothèque...", - "notification.updatingLibraryArtists": "Mise à jour des artistes de la bibliothèque...", - - // Terms - "term.appleInc": "Apple Inc.", - "term.appleMusic": "Apple Music", - "term.applePodcasts": "Apple Podcasts", - "term.itunes": "iTunes", - "term.github": "GitHub", - "term.discord": "Discord", - "term.learnMore": "En savoir plus", - "term.accountSettings": "Paramètres du compte", - "term.logout": "DÊconnexion", - "term.login": "Connexion", - "term.about": "À propos", - "term.privateSession": "Session privÊe", - "term.queue": "File d'attente", - "term.history": "Historique", - "term.search": "Recherche", - "term.library": "Bibliothèque", - "term.listenNow": "Écoutez maintenant", - "term.browse": "Explorer", - "term.radio": "Radio", - "term.recentlyAdded": "AjoutÊ rÊcemment", - "term.songs": "Musiques", - "term.albums": "Albums", - "term.artists": "Artistes", - "term.podcasts": "Podcasts", - "term.playlists": "Playlists", - "term.playlist": "Playlist", - "term.newPlaylist": "Nouvelle Playlist", - "term.newPlaylistFolder": "Nouveau dossier de playlist", - "term.createNewPlaylist": "CrÊer une nouvelle playlist", - "term.createNewPlaylistFolder": "Create New Playlist Folder", - "term.deletePlaylist": "Êtes-vous sÃģr de vouloir supprimer cette playlist ?", - "term.play": "Lecture", - "term.pause": "Pause", - "term.previous": "PrÊcÊdent", - "term.next": "Suivant", - "term.shuffle": "AlÊatoire", - "term.repeat": "RÊpÊter", - "term.volume": "Volume", - "term.mute": "Rendre muet", - "term.unmute": "Ne plus rendre muet", - "term.share": "Partager", - "term.settings": "Paramètres", - "term.share.success": "CopiÊ dans le presse-papier", - "term.seeAll": "Voir tout", - "term.sortBy": "Trier par", - "term.sortBy.album": "Album", - "term.sortBy.artist": "Artiste", - "term.sortBy.name": "Nom", - "term.sortBy.genre": "Genre", - "term.sortBy.releaseDate": "Date de sortie", - "term.sortBy.duration": "DurÊe", - "term.sortOrder": "A-Z", - "term.sortOrder.ascending": "Ascendant", - "term.sortOrder.descending": "Descendant", - "term.viewAs": "Voir comme", - "term.viewAs.coverArt": "Pochette d'album", - "term.viewAs.list": "Liste", - "term.size": "Taille", - "term.size.normal": "Normal", - "term.size.compact": "Compacte", - "term.enable": "Activer", - "term.disable": "DÊsactiver", - "term.enabled": "ActivÊ", - "term.disabled": "DÊsactivÊ", - "term.connect": "Connecter", - "term.connecting": "Connexion", - "term.disconnect": "DÊconnexion", - "term.authed": "AuthentifiÊ", - "term.confirm": "Confirmer ?", - "term.more": "Plus", - "term.less": "Moins", - "term.showMore": "Afficher plus", - "term.showLess": "Afficher moins", - "term.topSongs": "Meilleurs titres", - "term.latestReleases": "Dernières sorties", - "term.time.added": "AjoutÊ", - "term.time.released": "PubliÊ", - "term.time.updated": "Mis à jour", - "term.time.hours": "heures", - "term.time.hour": "heure", - "term.time.minutes": "minutes", - "term.time.minute": "minute", - "term.time.seconds": "secondes", - "term.time.second": "seconde", - "term.fullscreenView": "Vue plein Êcran", - "term.defaultView": "Vue par dÊfaut", - "term.spacializedAudioSetting": "Paramètres audio spatialisÊs", - "term.clearAll": "Tout effacer", - "term.recentStations": "Stations rÊcentes", - "term.language": "Langue", - "term.funLanguages": "Amusant", - "term.noLyrics": "Chargement... / Paroles non trouvÊ./ Instrumental.", - "term.copyright": "Copyright", - "term.rightsReserved": "Tous droits rÊservÊs.", - "term.sponsor": "Soutenez ce projet", - "term.ciderTeam": "Équipe Cider", - "term.developer": "DÊveloppeur", - "term.socialTeam": "Équipe de communication", - "term.socials": "RÊseaux sociaux", - "term.contributors": "Contributeurs", - "term.equalizer": "Égaliseur", - "term.reset": "RÊinitialiser", - "term.tracks": "musiques", // Assume x amount of tracks. e.g. 50 tracks - "term.videos": "VidÊos", - "term.menu": "Menu", - "term.check": "VÊrifier", - "term.aboutArtist": "À propos de {{artistName}}", // e.g. 'About Doja Cat' - "term.topResult": "Meilleurs rÊsultats", // Search Results - "term.sharedPlaylists": "Playlists partagÊes", // Search Results - "term.people": "Personnes", // Search Results - "term.newpreset.name": "Nouveau nom du prÊrÊglage de l'Êgaliseur", // Equalizer Preset - "term.addedpreset": "Ajout d'un prÊrÊglage", - "term.deletepreset.warn": "Êtes-vous sÃģr de vouloir supprimer ce prÊrÊglage ?", - "term.deletedpreset": "Suppression d'un prÊrÊglage", - "term.musicVideos": "VidÊos musicales", // Search page friendlyTypes - "term.stations": "Stations", - "term.curators": "Curateurs", - "term.appleCurators": "Curateurs Apple", - "term.radioShows": "Émissions de radio", - "term.recordLabels": "Labels de disques", - "term.videoExtras": "VidÊos bonus", - "term.top": "Top", - - // Home - "home.title": "Accueil", - "home.recentlyPlayed": "JouÊ rÊcemment", - "home.recentlyAdded": "RÊcemment ajoutÊ", - "home.artistsFeed": "Votre file d'artistes", - "home.artistsFeed.noArtist": "Suivez d'abord certains artistes et leurs dernières sorties seront ici", - "home.madeForYou": "Fait pour vous", - "home.friendsListeningTo": "Vos amis Êcoutent", - "home.followedArtists": "Artistes suivis", - - // Errors - "error.appleMusicSubRequired": "Apple Music nÊcessite un abonnement.", - "error.connectionError": "Il y a eu un problème de connexion à Apple Music.", - "error.noResults": "Aucun rÊsultat.", - "error.noResults.description": "Essayez une nouvelle recherche.", - - // Podcasts - "podcast.followOnCider": "Suivre sur Cider", - "podcast.followedOnCider": "Suivi sur Cider", - "podcast.subscribeOnItunes": "Suivre sur iTunes", - "podcast.subscribedOnItunes": "Suivi sur iTunes", - "podcast.itunesStore": "iTunes Store", - "podcast.episodes": "Épisodes", - "podcast.playEpisode": "Lire l'Êpisode", - "podcast.website": "Site du podcast", - - // Actions - "action.addToLibrary": "Ajouter à la bibliothèque", - "action.addToLibrary.success": "AjoutÊ à la bibliothèque", - "action.addToLibrary.error": "Erreur lors de l'ajout à la bibliothèque", - "action.removeFromLibrary": "Retirer de la bibliothèque", - "action.removeFromLibrary.success": "RetirÊ de la bibliothèque", - "action.addToQueue": "Ajouter à la file d'attente", - "action.addToQueue.success": "AjoutÊ à la file d'attente", - "action.addToQueue.error": "Erreur lors de l'ajout à la file d'attente", - "action.removeFromQueue": "Retirer de la file d'attente", - "action.removeFromQueue.success": "RetirÊ de la file d'attente", - "action.removeFromQueue.error": "Erreur lors du retrait de la file d'attente", - "action.createPlaylist": "CrÊer une nouvelle playlist", - "action.addToPlaylist": "Ajouter à une playlist", - "action.removeFromPlaylist": "Retirer de la playlist", - "action.addToFavorites": "Ajouter aux favoris", - "action.follow": "Suivre", - "action.follow.success": "Suivi", - "action.follow.error": "Erreur lors de l'abonnement", - "action.unfollow": "Se dÊsabonner", - "action.unfollow.success": "DÊsabonnÊ", - "action.unfollow.error": "Erreur lors du dÊsabonnement", - "action.playNext": "Jouer après", - "action.playLater": "Jouer plus tard", - "action.startRadio": "Lancer la radio", - "action.goToArtist": "Aller à l'artiste", - "action.goToAlbum": "Aller à l'album", - "action.moveToTop": "Haut de page", - "action.share": "Partager", - "action.rename": "Renommer", - "action.love": "Aimer", - "action.unlove": "Ne plus aimer", - "action.dislike": "Je n'aime pas", - "action.undoDislike": "Je n'aime plus", - "action.showWebRemoteQR": "Afficher le QR Code de la tÊlÊcommande à distance", - "action.playTracksNext": "Jouer ${app.selectedMediaItems.length} musiques après", - "action.playTracksLater": "Jouer ${app.selectedMediaItems.length} musiques plus tard", - "action.removeTracks": "Retirer ${self.selectedItems.length} musiques de la file d'attente", - "action.import": "Importer", - "action.export": "Exporter", - "action.showAlbum": "Afficher l'album complet", - "action.tray.minimize": "RÊduire dans la barre d'outils", - "action.tray.quit": "Quitter", - "action.tray.show": "Afficher", - "action.update": "Mettre à jour", - "action.copy": "Copier", - "action.newpreset": "Nouveau prÊrÊglage...", // Equalizer Preset - "action.deletepreset": "Supprimer le prÊrÊglage", - - // Settings - General - "settings.header.general": "GÊnÊral", - "settings.header.general.description": "Ajuster les paramètres gÊnÊraux de Cider.", - "settings.option.general.language": "Langue", - - // Language optgroups - "settings.option.general.language.main": "Langues", - "settings.option.general.language.fun": "Langues amusantes", - "settings.option.general.language.unsorted": "Non triÊ", - - // Update Cider - "settings.option.general.updateCider": "Mettre à jour Cider", // Button - - // Settings - Audio - "settings.header.audio": "Audio", - "settings.header.audio.description": "Ajuster les paramètres audio de Cider.", - "settings.option.audio.quality": "QualitÊ Audio", // Dropdown - "settings.header.audio.quality.hireslossless": "Lossless haute qualitÊ (Hi-Res)", - "settings.header.audio.quality.hireslossless.description": "(jusqu'à 24 bits/192 kHz)", - "settings.header.audio.quality.lossless": "Lossless", - "settings.header.audio.quality.lossless.description": "(jusqu'à 24 bits/48 kHz)", - "settings.header.audio.quality.enhanced": "AmÊliorÊ", - "settings.header.audio.quality.high": "ÉlevÊe", - "settings.header.audio.quality.low": "Faible", - "settings.header.audio.quality.auto": "Automatique", - "settings.option.audio.seamlessTransition": "Fondu audio transparent", // Toggle - "settings.option.audio.enableAdvancedFunctionality": "Activer les fonctions avancÊes", // Toggle - "settings.option.audio.enableAdvancedFunctionality.description": "L'activation de la fonctionnalitÊ AudioContext permet d'utiliser des fonctions audio Êtendues telles que la normalisation du son, les Êgaliseurs et les visualiseurs. Toutefois, sur certains systèmes, cela peut provoquer des bÊgaiements dans les pistes audio.", - "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Moteur de traitement psycho-acoustique Cider", // Toggle - "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Un processus de traitement qui fait croire à votre cerveau que les fichiers sont de meilleure qualitÊ.", - "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalisation du son", // Toggle - "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalise le volume maximal des pistes individuelles pour crÊer une expÊrience d'Êcoute plus uniforme.", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Spatialisation audio", // Toggle - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatialiser l'audio et rendre l'audio plus tridimensionnel (note: Ce n'est pas Dolby Atmos)", - - // Settings - Visual - "settings.header.visual": "Visuel", - "settings.header.visual.description": "Ajuster les paramètres visuels de Cider.", - "settings.option.visual.windowBackgroundStyle": "Style d'arrière-plan de la fenÃĒtre", // Toggle - "settings.header.visual.windowBackgroundStyle.none": "Aucun", - "settings.header.visual.windowBackgroundStyle.artwork": "Pochette d'album", - "settings.header.visual.windowBackgroundStyle.image": "Image", - "settings.option.visual.animatedArtwork": "Pochette d'album animÊe", // Dropdown - "settings.header.visual.animatedArtwork.always": "Toujours", - "settings.header.visual.animatedArtwork.limited": "LimitÊ aux pages et aux entrÊes spÊciales", - "settings.header.visual.animatedArtwork.disable": "DÊsactiver partout", - "settings.option.visual.animatedArtworkQuality": "QualitÊ de la pochette d'album animÊe", // Dropdown - "settings.header.visual.animatedArtworkQuality.low": "Faible", - "settings.header.visual.animatedArtworkQuality.medium": "Moyen", - "settings.header.visual.animatedArtworkQuality.high": "ÉlevÊe", - "settings.header.visual.animatedArtworkQuality.veryHigh": "Très ÊlevÊe", - "settings.header.visual.animatedArtworkQuality.extreme": "ExtrÃĒme", - "settings.option.visual.animatedWindowBackground": "Arrière-plan de fenÃĒtre animÊ", // Toggle - "settings.option.visual.hardwareAcceleration": "AccÊlÊration matÊrielle", // Dropdown - "settings.option.visual.hardwareAcceleration.description": "NÊcessite un relancement", - "settings.header.visual.hardwareAcceleration.default": "DÊfaut", - "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", - "settings.header.visual.theme": "Thème", - - // Settings - Visual - Theme name - "settings.option.visual.theme.default": "Cider", - "settings.option.visual.theme.dark": "Sombre", - // Refer to term.disabled for the disabled option - "settings.option.visual.showPersonalInfo": "Afficher vos informations personnelles", // Toggle - - // Settings - Lyrics - "settings.header.lyrics": "Paroles", - "settings.header.lyrics.description": "Ajuster les paramètres des paroles pour Cider.", - "settings.option.lyrics.enableMusixmatch": "Activer les paroles Musixmatch", // Toggle - "settings.option.lyrics.enableMusixmatchKaraoke": "Activer le mode karaokÊ (Musixmatch seulement)", // Toggle - "settings.option.lyrics.musixmatchPreferredLanguage": "Langue prÊfÊrÊe pour les traductions Musixmatch", // Dropdown - "settings.option.lyrics.enableYoutubeLyrics": "Activer les paroles YouTube pour les vidÊos de musique", // Toggle - - // Settings - Connectivity - "settings.header.connectivity": "ConnectivitÊ", - "settings.header.connectivity.description": "Ajuster les paramètres de connectivitÊ de Cider.", - "settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown - "settings.option.connectivity.playbackNotifications": "Notifications de lecture", // Toggle - // Refer to term.disabled for the disabled option - "settings.header.connectivity.discordRPC.cider": "Afficher comme 'Cider'", - "settings.header.connectivity.discordRPC.appleMusic": "Afficher comme 'Apple Music'", - "settings.option.connectivity.discordRPC.clearOnPause": "DÊsactiver le Discord Rich Presence quand la musique est en pause", // Toggle - "settings.option.connectivity.lastfmScrobble": "Scrobble LastFM", // Option to Connect - "settings.option.connectivity.lastfmScrobble.delay": "DÊlai de Scrobble LastFM (%)", - "settings.option.connectivity.lastfmScrobble.nowPlaying": "Activer la lecture en cours sur LastFM", - "settings.option.connectivity.lastfmScrobble.removeFeatured": "Supprimer les artistes en vedette du titre de la chanson (LastFM)", - "settings.option.connectivity.lastfmScrobble.filterLoop": "Filtrer les titres en boucle (LastFM)", - // Refer to term.connect for the connect button - - // Settings - Experimental - "settings.header.experimental": "ExpÊrimental", - "settings.header.experimental.description": "Ajuster les paramètres expÊrimentaux de Cider.", - "settings.option.experimental.compactUI": "Interface utilisateur compacte", // Toggle - "settings.option.experimental.close_button_hide": "Le bouton de fermeture doit masquer l'application", - "settings.option.experimental.copy_log": "Copier les logs dans le presse-papier", - "settings.option.experimental.inline_playlists": "Playlists et albums en ligne", - - // Refer to term.disabled & term.enabled - // Spatialization Menu - "spatial.notTurnedOn": "La spatialisation audio est dÊsactivÊe. Pour l'utiliser, vous devez d'abord l'activer.", - "spatial.spatialProperties": "PropriÊtÊs spatiales", - "spatial.width": "Largeur", - "spatial.height": "Hauteur", - "spatial.depth": "Profondeur", - "spatial.gain": "Gain", - "spatial.roomMaterials": "MatÊriaux de la pièce", - "spatial.roomDimensions": "Dimensions de la pièce", - "spatial.roomPositions": "Positions de la pièce", - "spatial.setDimensions": "DÊfinir les dimensions", - "spatial.setPositions": "DÊfinir les positions", - "spatial.up": "Haut", - "spatial.front": "Avant", - "spatial.left": "Gauche", - "spatial.right": "Droite", - "spatial.back": "Retour", - "spatial.down": "Bas", - "spatial.listener": "Auditeur", - "spatial.audioSource": "Source Audio", - - // Settings - Unfinished - "settings.header.unfinished": "InachevÊe", - - // Web Remote - "remote.web.title": "Cider à distance", - "remote.web.description": "Scanner le QR code pour associer votre tÊlÊphone avec cette instance Cider", - - // About - "about.thanks": "Un grand merci à l'Êquipe de la Cider Collective et à tous nos contributeurs." -} \ No newline at end of file diff --git a/src/i18n/en_US.jsonc b/src/i18n/hi_IN.json similarity index 68% rename from src/i18n/en_US.jsonc rename to src/i18n/hi_IN.json index 2bce04b9..a0d77dde 100644 --- a/src/i18n/en_US.jsonc +++ b/src/i18n/hi_IN.json @@ -1,98 +1,88 @@ -{ // Base File - // i18n Info - "i18n.languageName": "English (US)", // name of language in native language - "i18n.languageNameEnglish": "English (US)", // name of language in English - "i18n.category": "main", // main = real language, fun = fun community languages - "i18n.authors": "@maikirakiwi", // Authors, if you contribute to this file feel free to add your name seperated with a space - - // App info +{ + "i18n.languageName": "ā¤šā¤ŋ⤍āĨā¤ĻāĨ€", + "i18n.languageNameEnglish": "Hindi", + "i18n.category": "main", + "i18n.authors": "@maikirakiwi @vringster", "app.name": "Cider", - "date.format": "${m} ${d}, ${y}", - - // Dialogs - "dialog.cancel": "Cancel", - "dialog.ok": "OK", - - // Notification - "notification.updatingLibrarySongs": "Updating library songs...", - "notification.updatingLibraryAlbums": "Updating library albums...", - "notification.updatingLibraryArtists": "Updating library artists...", - - // Terms + "dialog.cancel": "⤰āĨ‹ā¤•āĨ‡ā¤‚", + "dialog.ok": "⤠āĨ€ā¤• ā¤šāĨˆ", + "notification.updatingLibrarySongs": "⤅ā¤Ēā¤ĄāĨ‡ā¤Ÿā¤ŋ⤂⤗ ā¤˛ā¤žā¤‡ā¤ŦāĨā¤°āĨ‡ā¤°āĨ€ ⤕āĨ‡ ā¤—ā¤žā¤¨āĨ‡...", + "notification.updatingLibraryAlbums": "⤅ā¤Ēā¤ĄāĨ‡ā¤Ÿā¤ŋ⤂⤗ ā¤˛ā¤žā¤‡ā¤ŦāĨā¤°āĨ‡ā¤°āĨ€ ⤕āĨ‡ ā¤ā¤˛āĨā¤Ŧā¤Ž...", + "notification.updatingLibraryArtists": "⤅ā¤Ēā¤ĄāĨ‡ā¤Ÿā¤ŋ⤂⤗ ā¤˛ā¤žā¤‡ā¤ŦāĨā¤°āĨ‡ā¤°āĨ€ ⤕āĨ‡ ā¤•ā¤˛ā¤žā¤•ā¤žā¤°...", "term.appleInc": "Apple Inc.", "term.appleMusic": "Apple Music", "term.applePodcasts": "Apple Podcasts", "term.itunes": "iTunes", "term.github": "GitHub", "term.discord": "Discord", - "term.learnMore": "Learn more", - "term.accountSettings": "Account Settings", - "term.logout": "Logout", - "term.login": "Log In", - "term.about": "About", - "term.privateSession": "Private Session", - "term.queue": "Queue", - "term.history": "History", - "term.search": "Search", - "term.library": "Library", - "term.listenNow": "Listen Now", - "term.browse": "Browse", - "term.radio": "Radio", - "term.recentlyAdded": "Recently Added", - "term.songs": "Songs", - "term.albums": "Albums", - "term.artists": "Artists", - "term.podcasts": "Podcasts", - "term.playlists": "Playlists", - "term.playlist": "Playlist", - "term.newPlaylist": "New Playlist", - "term.newPlaylistFolder": "New Playlist Folder", - "term.createNewPlaylist": "Create New Playlist", - "term.createNewPlaylistFolder": "Create New Playlist Folder", - "term.deletePlaylist": "Are you sure you want to delete this playlist?", - "term.play": "Play", - "term.pause": "Pause", - "term.previous": "Previous", - "term.next": "Next", - "term.shuffle": "Shuffle", - "term.repeat": "Repeat", - "term.volume": "Volume", - "term.mute": "Mute", - "term.unmute": "Unmute", - "term.share": "Share", - "term.share.success": "Copied to clipboard", - "term.settings": "Settings", - "term.seeAll": "See All", - "term.sortBy": "Sort By", - "term.sortBy.album": "Album", - "term.sortBy.artist": "Artist", - "term.sortBy.name": "Name", - "term.sortBy.genre": "Genre", - "term.sortBy.releaseDate": "Release Date", - "term.sortBy.duration": "Duration", - "term.sortOrder": "A-Z", - "term.sortOrder.ascending": "Ascending", - "term.sortOrder.descending": "Descending", - "term.viewAs": "View As", - "term.viewAs.coverArt": "Cover Art", - "term.viewAs.list": "List", - "term.size": "Size", - "term.size.normal": "Normal", - "term.size.compact": "Compact", - "term.enable": "Enable", - "term.disable": "Disable", - "term.enabled": "Enabled", - "term.disabled": "Disabled", - "term.connect": "Connect", - "term.connecting": "Connecting", - "term.disconnect": "Disconnect", - "term.authed": "Authed", - "term.confirm": "Confirm?", - "term.more": "More", - "term.less": "Less", - "term.showMore": "Show more", - "term.showLess": "Show less", + "term.learnMore": "⤔⤰ ā¤œā¤žā¤¨ā¤ŋā¤", + "term.accountSettings": "ā¤–ā¤žā¤¤ā¤ž ⤏āĨ‡ā¤Ÿā¤ŋ⤂⤗āĨā¤¸", + "term.logout": "⤞āĨ‰ā¤— ā¤†ā¤Šā¤Ÿ", + "term.login": "⤞āĨ‰ā¤— ⤇⤍", + "term.about": "⤕āĨ‡ ā¤Ŧā¤žā¤°āĨ‡ ā¤ŽāĨ‡ā¤‚", + "term.privateSession": "⤗āĨā¤ĒāĨā¤¤ ⤏āĨˆā¤ļ⤍", + "term.queue": "ā¤•ā¤¤ā¤žā¤°", + "term.history": "ā¤šā¤ŋ⤏āĨā¤Ÿā¤°āĨ€", + "term.search": "⤖āĨ‹ā¤œ ⤕⤰āĨ‡ā¤‚", + "term.library": "ā¤˛ā¤žā¤‡ā¤ŦāĨā¤°āĨ‡ā¤°āĨ€", + "term.listenNow": "⤅⤭āĨ€ ⤏āĨā¤¨ā¤ŋ⤝āĨ‡ā¤‚", + "term.browse": "ā¤ŦāĨā¤°ā¤žā¤‰ā¤œā¤ŧ", + "term.radio": "⤰āĨ‡ā¤Ąā¤ŋ⤝āĨ‹", + "term.recentlyAdded": "ā¤šā¤žā¤˛ ā¤šāĨ€ ā¤ŽāĨ‡ā¤‚ ⤜āĨ‹āĨœāĨ‡ā¤‚ ā¤šāĨā¤", + "term.songs": "ā¤—ā¤žā¤¨āĨ‡", + "term.albums": "ā¤ā¤˛āĨā¤Ŧā¤Ž", + "term.artists": "ā¤•ā¤˛ā¤žā¤•ā¤žā¤°", + "term.podcasts": "ā¤ĒāĨ‰ā¤Ąā¤•ā¤žā¤¸āĨā¤Ÿā¤¸", + "term.playlists": "ā¤ĒāĨā¤˛āĨ‡ā¤˛ā¤ŋ⤏āĨā¤ŸāĨā¤¸", + "term.playlist": "ā¤ĒāĨā¤˛āĨ‡ā¤˛ā¤ŋ⤏āĨā¤Ÿ", + "term.newPlaylist": "⤍⤈ ā¤ĒāĨā¤˛āĨ‡ā¤˛ā¤ŋ⤏āĨā¤ŸāĨā¤¸", + "term.newPlaylistFolder": "⤍⤈ ā¤ĒāĨā¤˛āĨ‡ā¤˛ā¤ŋ⤏āĨā¤ŸāĨā¤¸ ā¤Ģā¤ŧāĨ‹ā¤˛āĨā¤Ąā¤°", + "term.createNewPlaylist": "⤍⤈ ā¤ĒāĨā¤˛āĨ‡ā¤˛ā¤ŋ⤏āĨā¤ŸāĨā¤¸ ā¤Ŧā¤¨ā¤žā¤ā¤‚", + "term.createNewPlaylistFolder": "⤍⤈ ā¤ĒāĨā¤˛āĨ‡ā¤˛ā¤ŋ⤏āĨā¤ŸāĨā¤¸ ā¤Ģā¤ŧāĨ‹ā¤˛āĨā¤Ąā¤° ā¤Ŧā¤¨ā¤žā¤ā¤‚", + "term.deletePlaylist": "⤕āĨā¤¯ā¤ž ⤆ā¤Ē ā¤ĩā¤žā¤•ā¤ˆ ⤇⤏ ā¤ĒāĨā¤˛āĨ‡ā¤˛ā¤ŋ⤏āĨā¤Ÿ ⤕āĨ‹ ā¤šā¤Ÿā¤žā¤¨ā¤ž ā¤šā¤žā¤šā¤¤āĨ‡ ā¤šāĨˆā¤‚", + "term.play": "ā¤ĒāĨā¤˛āĨ‡", + "term.pause": "ā¤ ā¤šā¤°ā¤žā¤ĩ", + "term.previous": "ā¤Ēā¤ŋ⤛⤞āĨ‡", + "term.next": "⤅⤗⤞āĨ‡", + "term.shuffle": "ā¤ļā¤Ģ⤞", + "term.repeat": "⤰ā¤ŋā¤ĒāĨ€ā¤Ÿ", + "term.volume": "ā¤ĩāĨ‰ā¤˛āĨā¤¯āĨ‚ā¤Ž", + "term.mute": "ā¤ŽāĨā¤¯āĨ‚ā¤Ÿ", + "term.unmute": "ā¤…ā¤¨ā¤ŽāĨā¤¯āĨ‚ā¤Ÿ", + "term.share": "ā¤ļāĨ‡ā¤¯ā¤°", + "term.share.success": "⤕āĨā¤˛ā¤ŋā¤Ēā¤ŦāĨ‹ā¤°āĨā¤Ą ā¤ŽāĨ‡ā¤‚ ⤕āĨ‰ā¤ĒāĨ€ā¤Ą", + "term.settings": "⤏āĨ‡ā¤Ÿā¤ŋ⤂⤗āĨā¤¸", + "term.seeAll": "⤏⤭āĨ€ ā¤ĻāĨ‡ā¤–āĨ‡ā¤‚", + "term.sortBy": "⤏āĨ‰ā¤°āĨā¤Ÿ ā¤Ŧā¤žā¤¯āĨ‡", + "term.sortBy.album": "ā¤ā¤˛āĨā¤Ŧā¤Ž", + "term.sortBy.artist": "ā¤•ā¤˛ā¤žā¤•ā¤žā¤°", + "term.sortBy.name": "ā¤¨ā¤žā¤Ž", + "term.sortBy.genre": "ā¤ļāĨˆā¤˛āĨ€", + "term.sortBy.releaseDate": "⤰ā¤ŋ⤞āĨ€ā¤œā¤ŧ ⤕āĨ€ ā¤¤ā¤žā¤°āĨ€ā¤–", + "term.sortBy.duration": "⤞⤂ā¤Ŧā¤žā¤ˆ", + "term.sortOrder": "ā¤-āĨ›āĨ€", + "term.sortOrder.ascending": "⤅⤏āĨ‡ā¤‚ā¤Ąā¤ŋ⤂⤗", + "term.sortOrder.descending": "ā¤Ąā¤ŋ⤏āĨ‡ā¤‚ā¤Ąā¤ŋ⤂⤗", + "term.viewAs": "ā¤ĩā¤ŋ⤝āĨ‚ ⤐⤏", + "term.viewAs.coverArt": "⤕ā¤ĩ⤰ ⤆⤰āĨā¤Ÿ", + "term.viewAs.list": "⤏āĨ‚ā¤šāĨ€", + "term.size": "ā¤¸ā¤žā¤‡āĨ›", + "term.size.normal": "ā¤¸ā¤žā¤§ā¤žā¤°ā¤Ŗ", + "term.size.compact": "ā¤Ēā¤ŋā¤šā¤•ā¤ž ā¤šāĨā¤†", + "term.enable": "⤖āĨ‹ā¤˛āĨ‡ā¤‚", + "term.disable": "ā¤Ŧ⤂ā¤Ļ", + "term.enabled": "⤖āĨ‹ā¤˛ā¤ž ā¤šāĨā¤†", + "term.disabled": "ā¤Ŧ⤂ā¤Ļ ā¤šāĨā¤† ā¤šāĨā¤†", + "term.connect": "⤕⤍āĨ‡ā¤•āĨā¤Ÿ", + "term.connecting": "⤕⤍āĨ‡ā¤•āĨā¤Ÿā¤ŋ⤂⤗", + "term.disconnect": "ā¤Ąā¤ŋ⤏⤕⤍āĨ‡ā¤•āĨā¤Ÿ", + "term.authed": "ā¤ĒāĨā¤°ā¤Žā¤žā¤Ŗā¤ŋ⤤", + "term.confirm": "ā¤Ē⤕āĨā¤•ā¤ž?", + "term.more": "āĨ›āĨā¤¯ā¤žā¤Ļā¤ž", + "term.less": "ā¤•ā¤Ž", + "term.showMore": "ā¤Ļā¤ŋā¤–ā¤žā¤ā¤‚ āĨ›āĨā¤¯ā¤žā¤Ļā¤ž", + "term.showLess": "ā¤Ļā¤ŋā¤–ā¤žā¤ā¤‚ ā¤•ā¤Ž", "term.topSongs": "Top Songs", "term.latestReleases": "Latest Releases", "term.time.added": "Added", @@ -122,19 +112,19 @@ "term.contributors": "Contributors", "term.equalizer": "Equalizer", "term.reset": "Reset", - "term.tracks": "tracks", // Assume x amount of tracks. e.g. 50 tracks + "term.tracks": "tracks", "term.videos": "Videos", "term.menu": "Menu", "term.check": "Check", - "term.aboutArtist": "About {{artistName}}", // e.g. 'About Doja Cat' - "term.topResult": "Top Result", // Search Results - "term.sharedPlaylists": "Shared Playlists", // Search Results - "term.people": "People", // Search Results - "term.newpreset.name": "New EQ Preset Name", // Equalizer Preset + "term.aboutArtist": "About {{artistName}}", + "term.topResult": "Top Result", + "term.sharedPlaylists": "Shared Playlists", + "term.people": "People", + "term.newpreset.name": "⤍⤈ EQ Preset Name", "term.addedpreset": "Added Preset", "term.deletepreset.warn": "Are you sure you want to delete this preset?", "term.deletedpreset": "Removed preset", - "term.musicVideos": "Music Videos", // Search page friendlyTypes + "term.musicVideos": "Music Videos", "term.stations": "Stations", "term.curators": "Curators", "term.appleCurators": "Apple Curators", @@ -142,8 +132,6 @@ "term.recordLabels": "Record Labels", "term.videoExtras": "Video Extras", "term.top": "Top", - - // Home "home.title": "Home", "home.recentlyPlayed": "Recently Played", "home.recentlyAdded": "Recently Added", @@ -152,14 +140,10 @@ "home.madeForYou": "Made For You", "home.friendsListeningTo": "Friends Listening To", "home.followedArtists": "Followed Artists", - - // Errors "error.appleMusicSubRequired": "Apple Music requires a subscription.", "error.connectionError": "There was a problem connecting to Apple Music.", "error.noResults": "No Results.", - "error.noResults.description": "Try a new search.", - - // Podcasts + "error.noResults.description": "Try a ⤍⤈ search.", "podcast.followOnCider": "Follow On Cider", "podcast.followedOnCider": "Following On Cider", "podcast.subscribeOnItunes": "Subscribe On iTunes", @@ -168,8 +152,6 @@ "podcast.episodes": "Episodes", "podcast.playEpisode": "Play Episode", "podcast.website": "Podcast Website", - - // Actions "action.addToLibrary": "Add to Library", "action.addToLibrary.success": "Added to Library", "action.addToLibrary.error": "Error Adding to Library", @@ -181,7 +163,7 @@ "action.removeFromQueue": "Remove from Queue", "action.removeFromQueue.success": "Removed from Queue", "action.removeFromQueue.error": "Error Removing from Queue", - "action.createPlaylist": "Create a New Playlist", + "action.createPlaylist": "ā¤Ŧā¤¨ā¤žā¤ā¤‚ a ⤍⤈ Playlist", "action.addToPlaylist": "Add to Playlist", "action.removeFromPlaylist": "Remove from Playlist", "action.addToFavorites": "Add to Favorites", @@ -209,36 +191,28 @@ "action.removeTracks": "Remove ${self.selectedItems.length} tracks from queue", "action.import": "Import", "action.export": "Export", - "action.showAlbum": "Show Complete Album", + "action.showAlbum": "ā¤Ļā¤ŋā¤–ā¤žā¤ā¤‚ Complete Album", "action.tray.minimize": "Minimize to Tray", "action.tray.quit": "Quit", - "action.tray.show": "Show", + "action.tray.show": "ā¤Ļā¤ŋā¤–ā¤žā¤ā¤‚", "action.update": "Update", "action.copy": "Copy", - "action.newpreset": "New Preset...", // Equalizer Preset + "action.newpreset": "⤍⤈ Preset...", "action.deletepreset": "Delete Preset", - - // Settings - General "settings.header.general": "General", "settings.header.general.description": "Adjust the general settings for Cider.", "settings.option.general.language": "Language", - - // Language optgroups "settings.option.general.language.main": "Languages", "settings.option.general.language.fun": "Fun Languages", "settings.option.general.language.unsorted": "Unsorted", - - // Update Cider - "settings.option.general.updateCider": "Update Cider", // Button. Refer to term.check for the check button - "settings.option.general.updateCider.branch": "Cider Update Branch", // Dropdown + "settings.option.general.updateCider": "Update Cider", + "settings.option.general.updateCider.branch": "Cider Update Branch", "settings.option.general.updateCider.branch.description": "Select the branch to update Cider to", "settings.option.general.updateCider.branch.main": "Stable", "settings.option.general.updateCider.branch.develop": "Development", - - // Settings - Audio "settings.header.audio": "Audio", "settings.header.audio.description": "Adjust the audio settings for Cider.", - "settings.option.audio.quality": "Audio Quality", // Dropdown + "settings.option.audio.quality": "Audio Quality", "settings.header.audio.quality.hireslossless": "Hi-Res Lossless", "settings.header.audio.quality.hireslossless.description": "up to 24-bit/192 kHz", "settings.header.audio.quality.lossless": "Lossless", @@ -247,84 +221,68 @@ "settings.header.audio.quality.high.description": "256 kbps", "settings.header.audio.quality.standard": "Standard", "settings.header.audio.quality.standard.description": "64 kbps", - "settings.option.audio.seamlessTransition": "Seamless Audio Transition", // Toggle - "settings.option.audio.enableAdvancedFunctionality": "Enable Advanced Functionality", // Toggle + "settings.option.audio.seamlessTransition": "Seamless Audio Transition", + "settings.option.audio.enableAdvancedFunctionality": "Enable Advanced Functionality", "settings.option.audio.enableAdvancedFunctionality.description": "Enabling AudioContext functionality will allow for extended audio features like Audio Normalization , Equalizers and Visualizers, however on some systems this may cause stuttering in audio tracks.", - "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processorâ„ĸī¸", // Toggle - "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Psychoacoustic Enhancements that makes everything sound both richer and more lively | Designed by Maikiwi.", - "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Strength", // Toggle + "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processorâ„ĸī¸", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Psychoacoustic Enhancements that makes everything sound both richer and more lively.", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Strength", "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Changes the strength of the processing done to the audio. (Aggressive may yield undesirable results)", "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Standard", "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Aggressive", - "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audio Normalization", // Toggle + "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audio Normalization", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalizes peak volume for individual tracks to create a more uniform listening experience.", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Spatialization", // Toggle + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Spatialization", "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatialize audio and make audio more 3-dimensional (note: This is not Dolby Atmos)", - - // Settings - Visual "settings.header.visual": "Visual", "settings.header.visual.description": "Adjust the visual settings for Cider.", - "settings.option.visual.windowBackgroundStyle": "Window Background Style", // Toggle + "settings.option.visual.windowBackgroundStyle": "Window Background Style", "settings.header.visual.windowBackgroundStyle.none": "None", "settings.header.visual.windowBackgroundStyle.artwork": "Artwork", "settings.header.visual.windowBackgroundStyle.image": "Image", - "settings.option.visual.animatedArtwork": "Animated Artwork", // Dropdown + "settings.option.visual.animatedArtwork": "Animated Artwork", "settings.header.visual.animatedArtwork.always": "Always", "settings.header.visual.animatedArtwork.limited": "Limited to pages and special entries", "settings.header.visual.animatedArtwork.disable": "Disable everywhere", - "settings.option.visual.animatedArtworkQuality": "Animated Artwork Quality", // Dropdown + "settings.option.visual.animatedArtworkQuality": "Animated Artwork Quality", "settings.header.visual.animatedArtworkQuality.low": "Low", "settings.header.visual.animatedArtworkQuality.medium": "Medium", "settings.header.visual.animatedArtworkQuality.high": "High", "settings.header.visual.animatedArtworkQuality.veryHigh": "Very High", "settings.header.visual.animatedArtworkQuality.extreme": "Extreme", - "settings.option.visual.animatedWindowBackground": "Animated Window Background", // Toggle - "settings.option.visual.hardwareAcceleration": "Hardware Acceleration", // Dropdown + "settings.option.visual.animatedWindowBackground": "Animated Window Background", + "settings.option.visual.hardwareAcceleration": "Hardware Acceleration", "settings.option.visual.hardwareAcceleration.description": "Requires relaunch", "settings.header.visual.hardwareAcceleration.default": "Default", "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", "settings.header.visual.theme": "Theme", - - // Settings - Visual - Theme name "settings.option.visual.theme.default": "Cider", "settings.option.visual.theme.dark": "Dark", - // Refer to term.disabled for the disabled option - "settings.option.visual.showPersonalInfo": "Show Personal Info", // Toggle - - // Settings - Lyrics + "settings.option.visual.showPersonalInfo": "ā¤Ļā¤ŋā¤–ā¤žā¤ā¤‚ Personal Info", "settings.header.lyrics": "Lyrics", "settings.header.lyrics.description": "Adjust the lyrics settings for Cider.", - "settings.option.lyrics.enableMusixmatch": "Enable Musixmatch Lyrics", // Toggle - "settings.option.lyrics.enableMusixmatchKaraoke": "Enable Karaoke Mode (Musixmatch only)", // Toggle - "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch Translation Preferred Language", // Dropdown - "settings.option.lyrics.enableYoutubeLyrics": "Enable Youtube Lyrics for Music Videos", // Toggle - - // Settings - Connectivity + "settings.option.lyrics.enableMusixmatch": "Enable Musixmatch Lyrics", + "settings.option.lyrics.enableMusixmatchKaraoke": "Enable Karaoke Mode (Musixmatch only)", + "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch Translation Preferred Language", + "settings.option.lyrics.enableYoutubeLyrics": "Enable Youtube Lyrics for Music Videos", "settings.header.connectivity": "Connectivity", "settings.header.connectivity.description": "Adjust the connectivity settings for Cider.", - "settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown - "settings.option.connectivity.playbackNotifications": "Playback Notifications", // Toggle - // Refer to term.disabled for the disabled option + "settings.option.connectivity.discordRPC": "Discord Rich Presence", + "settings.option.connectivity.playbackNotifications": "Playback Notifications", "settings.header.connectivity.discordRPC.cider": "Display as 'Cider'", "settings.header.connectivity.discordRPC.appleMusic": "Display as 'Apple Music'", - "settings.option.connectivity.discordRPC.clearOnPause": "Clear Discord Rich Presence on Pause", // Toggle - "settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling", // Option to Connect + "settings.option.connectivity.discordRPC.clearOnPause": "Clear Discord Rich Presence on Pause", + "settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling", "settings.option.connectivity.lastfmScrobble.delay": "Last.fm Scrobble Delay (%)", "settings.option.connectivity.lastfmScrobble.nowPlaying": "Enable Last.fm Now Playing", "settings.option.connectivity.lastfmScrobble.removeFeatured": "Remove featuring artists from song title (Last.fm)", "settings.option.connectivity.lastfmScrobble.filterLoop": "Filter looped track (Last.fm)", - // Refer to term.connect for the connect button - - // Settings - Experimental "settings.header.experimental": "Experimental", "settings.header.experimental.description": "Adjust the experimental settings for Cider.", - "settings.option.experimental.compactUI": "Compact UI", // Toggle - "settings.option.experimental.close_button_hide": "Close Button Should Hide the Application", + "settings.option.experimental.compactUI": "Compact UI", + "settings.option.window.close_button_hide": "Close Button Should Hide the Application", "settings.option.experimental.copy_log": "Copy logs to clipboard", "settings.option.experimental.inline_playlists": "Inline Playlists and Albums", - - // Refer to term.disabled & term.enabled - // Spatialization Menu "spatial.notTurnedOn": "Audio Spatialization is disabled. To use, please enable it first.", "spatial.spatialProperties": "Spatial Properties", "spatial.width": "Width", @@ -344,14 +302,8 @@ "spatial.down": "Down", "spatial.listener": "Listener", "spatial.audioSource": "Audio Source", - - // Settings - Unfinished "settings.header.unfinished": "Unfinished", - - // Web Remote "remote.web.title": "Cider Remote", "remote.web.description": "Scan the QR code to pair your phone up with this Cider instance", - - // About "about.thanks": "Major thanks to the Cider Collective Team and all of our contributors." } \ No newline at end of file diff --git a/src/i18n/hu_HU.jsonc b/src/i18n/hu_HU.json similarity index 68% rename from src/i18n/hu_HU.jsonc rename to src/i18n/hu_HU.json index 7f2e65ff..7a791f07 100644 --- a/src/i18n/hu_HU.jsonc +++ b/src/i18n/hu_HU.json @@ -1,352 +1,368 @@ -{ // Base File - // i18n Info - "i18n.languageName": "Magyar", // name of language in native language - "i18n.languageNameEnglish": "Hungarian", // name of language in English - "i18n.category": "main", // main = real language, fun = fun community languages - "i18n.authors": "@Greenoliv @Amaru @BenjaminStonawski", // Authors, if you contribute to this file feel free to add your name seperated with a space - - // App info - "app.name": "Cider", - - "date.format": "${m} ${d}, ${y}", - - // Dialogs - "dialog.cancel": "MÊgsem", - "dialog.ok": "OK", - - // Notification - "notification.updatingLibrarySongs": "ZenekÃļnyvtÃĄr frissítÊse...", - "notification.updatingLibraryAlbums": "Albumok frissítÊse...", - "notification.updatingLibraryArtists": "ElőadÃŗk frissítÊse...", - - // Terms - "term.appleInc": "Apple Inc.", - "term.appleMusic": "Apple Music", - "term.applePodcasts": "Apple Podcastok", - "term.itunes": "iTunes", - "term.github": "GitHub", - "term.discord": "Discord", - "term.learnMore": "Tudj meg tÃļbbet", - "term.accountSettings": "FiÃŗkbeÃĄllítÃĄsok", - "term.logout": "KijelentkezÊs", - "term.login": "BejelentkezÊs", - "term.about": "NÊvjegy", - "term.privateSession": "PrivÃĄt hallgatÃĄs", - "term.queue": "VÃĄrÃŗlista", - "term.search": "KeresÊs", - "term.library": "KÃļnyvtÃĄr", - "term.listenNow": "HallgatÃĄs most", - "term.browse": "BÃļngÊszÊs", - "term.radio": "RÃĄdiÃŗ", - "term.recentlyAdded": "NemrÊg hozzÃĄadott", - "term.songs": "Dalok", - "term.albums": "Albumok", - "term.artists": "ElőadÃŗk", - "term.podcasts": "Podcastok", - "term.playlists": "LejÃĄtszÃĄsi listÃĄk", - "term.playlist": "LejÃĄtszÃĄsi lista", - "term.newPlaylist": "Új lejÃĄtszÃĄsi lista", - "term.newPlaylistFolder": "Új mappa", - "term.createNewPlaylist": "Új lejÃĄtszÃĄsi lista lÊtrehozÃĄsa", - "term.createNewPlaylistFolder": "Új mappa lÊtrehozÃĄsa", - "term.deletePlaylist": "Biztosan szeretnÊ tÃļrÃļlni a lejÃĄtszÃĄsi listÃĄt?", - "term.play": "LejÃĄtszÃĄs", - "term.pause": "MegÃĄllítÃĄs", - "term.previous": "Előző", - "term.next": "KÃļvetkező", - "term.shuffle": "KeverÊs", - "term.repeat": "IsmÊtlÊs", - "term.volume": "Hangerő", - "term.mute": "NÊmítÃĄs", - "term.unmute": "NÊmítÃĄs feloldÃĄsa", - "term.share": "MegosztÃĄs", - "term.share.success": "MÃĄsolva a vÃĄgÃŗlapra", - "term.settings": "BeÃĄllítÃĄsok", - "term.seeAll": "Összes", - "term.sortBy": "RendezÊs", - "term.sortBy.album": "Album", - "term.sortBy.artist": "ElőadÃŗ", - "term.sortBy.name": "NÊv", - "term.sortBy.genre": "MÅąfaj", - "term.sortBy.releaseDate": "KiadÃĄs dÃĄtuma", - "term.sortBy.duration": "Időtartam", - "term.sortOrder": "A-Z", - "term.sortOrder.ascending": "NÃļvekvő", - "term.sortOrder.descending": "CsÃļkkenő", - "term.viewAs": "MegjelenítÊs", - "term.viewAs.coverArt": "BorítÃŗ", - "term.viewAs.list": "Lista", - "term.size": "MÊret", - "term.size.normal": "NormÃĄl", - "term.size.compact": "Kompakt", - "term.enable": "Be", - "term.disable": "Ki", - "term.enabled": "Be", - "term.disabled": "Ki", - "term.connect": "CsatlakoztatÃĄs", - "term.connecting": "CsatlakozÃĄs", - "term.disconnect": "LecsatlakozatÃĄs", - "term.authed": "Hitelesítve", - "term.confirm": "JÃŗvÃĄhagyja?", - "term.more": "TÃļbb", - "term.less": "Kevesebb", - "term.showMore": "Mutass tÃļbbet", - "term.showLess": "Mutass kevesebbet", - "term.topSongs": "A legjobb dalok", - "term.latestReleases": "Új megjelenÊsek", - "term.time.added": "HozzÃĄadva", - "term.time.released": "Kiadva", - "term.time.updated": "Frissítve", - "term.time.hours": "Ãŗra", - "term.time.hour": "Ãŗra", - "term.time.minutes": "perc", - "term.time.minute": "perc", - "term.time.seconds": "mÃĄsodperc", - "term.time.second": "mÃĄsodperc", - "term.fullscreenView": "Teljes kÊpernyős mÃŗd", - "term.defaultView": "AlapÊrtelmezett nÊzet", - "term.spacializedAudioSetting": "TÊrbeli hang", - "term.clearAll": "Összes tÃļrlÊse", - "term.recentStations": "NemrÊg jÃĄtszott", - "term.language": "Nyelv", - "term.funLanguages": "FantÃĄzianyelvek", - "term.noLyrics": "BetÃļltÊs... / DalszÃļveg nem talÃĄlhatÃŗ. / InstrumentÃĄlis.", - "term.copyright": "Szerzői jog", - "term.rightsReserved": "Minden jog fenntartva.", - "term.sponsor": "TÃĄmogasd a projektet", - "term.ciderTeam": "A Cider csapata", - "term.developer": "Fejlesztő", - "term.socialTeam": "KÃļzÃļssÊgi csapat", - "term.socials": "SzociÃĄlis", - "term.contributors": "HozzÃĄjÃĄrulÃŗk", - "term.equalizer": "HangszínszabÃĄlyozÃŗ", - "term.reset": "VisszaÃĄllítÃĄs", - "term.tracks": "zeneszÃĄm", // Assume x amount of tracks. e.g. 50 tracks - "term.videos": "VideÃŗk", - "term.menu": "MenÃŧ", - "term.check": "EllenőrzÊs", - "term.aboutArtist": "About {{artistName}}", // e.g. 'About Doja Cat' - "term.topResult": "Legjobb talÃĄlatok", // Search Results - "term.sharedPlaylists": "Megosztott lejÃĄtszÃĄsi listÃĄk", // Search Results - "term.people": "Profilok", // Search Results - "term.newpreset.name": "New EQ Preset Name", // Equalizer Preset - "term.addedpreset": "Preset hozzÃĄadva", - "term.deletepreset.warn": "Are you sure you want to delete this preset?", - "term.deletedpreset": "Preset tÃļrÃļlve", - "term.musicVideos": "VideÃŗklipek", // Search page friendlyTypes - "term.stations": "ÁllomÃĄsok", - "term.curators": "Curators", - "term.appleCurators": "Apple Curators", - "term.radioShows": "Radio Shows", - "term.recordLabels": "Record Labels", - "term.videoExtras": "VideÃŗextrÃĄk", - "term.top": "Top", - - // Home - "home.title": "Kezdőlap", - "home.recentlyPlayed": "NemrÊg jÃĄtszott", - "home.recentlyAdded": "NemrÊg hozzÃĄadott", - "home.artistsFeed": "Az előadÃŗid feedje", - "home.artistsFeed.noArtist": "KÃļvess nÊhÃĄny előadÃŗt, hogy a legÃējabb zenÊik itt megjelenjenek", - "home.madeForYou": "SzemÊlyre szabva", - "home.friendsListeningTo": "A barÃĄtaid Êpp ezt hallgatjÃĄk", - "home.followedArtists": "KÃļvetett előadÃŗk", - - // Errors - "error.appleMusicSubRequired": "Apple Music előfizetÊs szÃŧksÊges.", - "error.connectionError": "Hiba tÃļrtÊnt az Apple Musichoz valÃŗ csatlakozÃĄs kÃļzben.", - "error.noResults": "Nincs talÃĄlat", - "error.noResults.description": "PrÃŗbÃĄlkozzon Ãēj keresÊssel", - - // Podcasts - "podcast.followOnCider": "KÃļvetÊs a Cideren", - "podcast.followedOnCider": "KÃļvetve a Cideren", - "podcast.subscribeOnItunes": "FeliratkozÃĄs az iTunesban", - "podcast.subscribedOnItunes": "Feliratkozva az iTunesban", - "podcast.itunesStore": "iTunes Store", - "podcast.episodes": "EpizÃŗdok", - "podcast.playEpisode": "EpizÃŗd lejÃĄtszÃĄsa", - "podcast.website": "Podcast weboldala", - - // Actions - "action.addToLibrary": "HozzÃĄadÃĄs a KÃļnyvtÃĄrhoz", - "action.addToLibrary.success": "HozzÃĄadva a KÃļnyvtÃĄrhoz", - "action.addToLibrary.error": "Hiba a hozzÃĄadÃĄskor.", - "action.removeFromLibrary": "TÃļrlÊs a KÃļnytÃĄrbÃŗl", - "action.removeFromLibrary.success": "TÃļrÃļlve a KÃļnyvtÃĄrbÃŗl", - "action.addToQueue": "HozzÃĄadÃĄs a vÃĄrÃŗlistÃĄhoz", - "action.addToQueue.success": "HozzÃĄadva a vÃĄrÃŗlistÃĄhoz", - "action.addToQueue.error": "Sikertelen hozzÃĄadÃĄs a vÃĄrÃŗlistÃĄhoz", - "action.removeFromQueue": "TÃļrlÊs a vÃĄrÃŗlistÃĄrÃŗl", - "action.removeFromQueue.success": "TÃļrÃļlve a vÃĄrÃŗlistÃĄrÃŗl", - "action.removeFromQueue.error": "Sikertelen tÃļrlÊs a vÃĄrÃŗlistÃĄrÃŗl", - "action.createPlaylist": "Új lejÃĄtszÃĄsi lista lÊtrehozÃĄsa", - "action.addToPlaylist": "LejÃĄtszÃĄsi listÃĄhoz adÃĄs", - "action.removeFromPlaylist": "TÃļrlÊs a lejÃĄtszÃĄsi listÃĄrÃŗl", - "action.addToFavorites": "HozzÃĄadÃĄs a kedvencekhez", - "action.follow": "KÃļvetÊs", - "action.follow.success": "KÃļvetve", - "action.follow.error": "Sikertelen kÃļvetÊs", - "action.unfollow": "KÃļvetÊs visszavonÃĄsa", - "action.unfollow.success": "KÃļvetÊs visszavonva", - "action.unfollow.error": "Sikertelen visszavonÃĄs", - "action.playNext": "LejÃĄtszÃĄs kÃļvetkezőkÊnt", - "action.playLater": "LejÃĄtszÃĄs utolsÃŗkÊnt", - "action.startRadio": "ÁllomÃĄs lÊtrehozÃĄsa", - "action.goToArtist": "ElőadÃŗ megjelenítÊse", - "action.goToAlbum": "Album megjelenítÊse", - "action.moveToTop": "MozgatÃĄs legfelÃŧlre", - "action.share": "MegosztÃĄs", - "action.rename": "ÁtnevezÊs", - "action.love": "Szeretem", - "action.unlove": "MÊgsem szeretem", - "action.dislike": "Kevesebb ilyen javasolÃĄsa", - "action.undoDislike": "A Kevesebb ilyen javasolÃĄsa visszavonÃĄsa", - "action.showWebRemoteQR": "TÃĄvirÃĄnyítÃŗ QR kÃŗd", - "action.playTracksNext": "${app.selectedMediaItems.length} zenÊk lejÃĄtszÃĄsa kÃļvetkezőnek", - "action.playTracksLater": "${app.selectedMediaItems.length} zenÊk lejÃĄtszÃĄsa kÊsőbb", - "action.removeTracks": "${self.selectedItems.length} zenÊk eltÃĄvolítÃĄsa a vÃĄrÃŗlistÃĄrÃŗl", - "action.import": "ImportÃĄlÃĄs", - "action.export": "ExportÃĄlÃĄs", - "action.showAlbum": "Teljes album megjelenítÊse", - "action.tray.minimize": "KicsinyítÊs a tÃĄlcÃĄra", - "action.tray.quit": "KilÊpÊs", - "action.tray.show": "MegjelenítÊs", - "action.update": "FrissítÊs", - "action.copy": "MÃĄsolÃĄs", - "action.newpreset": "Új Preset...", // Equalizer Preset - "action.deletepreset": "Preset tÃļrlÊse", - - // Settings - General - "settings.header.general": "ÁltalÃĄnos", - "settings.header.general.description": "A Cider ÃĄltalÃĄnos beÃĄllítÃĄsainak mÃŗdosítÃĄsa.", - "settings.option.general.language": "Nyelv", - - // Language optgroups - "settings.option.general.language.main": "Nyelvek", - "settings.option.general.language.fun": "FantÃĄzianyelvek", - "settings.option.general.language.unsorted": "Azonosítatlan", - - // Update Cider - "settings.option.general.updateCider": "A Cider frissítÊse", // Button - - // Settings - Audio - "settings.header.audio": "Hang", - "settings.header.audio.description": "A Cider hangbeÃĄllítÃĄsainak mÃŗdosítÃĄsa.", - "settings.option.audio.quality": "HangminősÊg", // Dropdown - "settings.header.audio.quality.hireslossless": "Nagy felbontÃĄsÃē vesztesÊgmentes", - "settings.header.audio.quality.hireslossless.description": "max. 24-bit/192 kHz sebessÊgen", - "settings.header.audio.quality.lossless": "VesztesÊgmentes", - "settings.header.audio.quality.lossless.description": "max. up to 24-bit/48 kHz sebessÊgen", - "settings.header.audio.quality.high": "High", - "settings.header.audio.quality.high.description": "256 kbps", - "settings.header.audio.quality.standard": "Standard", - "settings.header.audio.quality.standard.description": "64 kbps", - "settings.option.audio.seamlessTransition": "SzÃŧnetmentes lejÃĄtszÃĄs", // Toggle - "settings.option.audio.enableAdvancedFunctionality": "HaladÃŗ funkcionalitÃĄs engedÊlyezÊse", // Toggle - "settings.option.audio.enableAdvancedFunctionality.description": "Az AudioContext funkciÃŗ engedÊlyezÊse lehetővÊ teszi a fejlettebb hangfunkciÃŗkat, pÊldÃĄul a NormalizÃĄsÃĄst, az Equalizereket Ês a Visualizer funkciÃŗkat, azonban egyes szÃĄmítÃŗgÊpeken ez akadozÃĄst okozhat a hangsÃĄvokban.", - "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processorâ„ĸī¸", // Toggle - "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Pszichoakusztikus MÃŗdosítÃĄsok amik minden hangot felerősítenek Ês ÃŧtősebbÊ tesznek | KÊszítette Maikiwi", - "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP ErőssÊg", // Toggle - "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "MegvÃĄltoztatja a hangra vÊgzett feldolgozÃĄs erőssÊgÊt. (Az Agresszív mÃŗd nemkívÃĄnatos eredmÊnyeket hozhat!)", - "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "SzokÃĄsos", - "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Agresszív", - "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "NormalizÃĄlÃĄs", // Toggle - "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "NormalizÃĄlja az egyes zeneszÃĄmok hangosabb rÊszeit, hogy egysÊgesebb hallgatÃĄsi ÊlmÊnyt hozzon lÊtre.", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "TÊrbeli hang", // Toggle - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "TÊrbeli hang Ês a hang hÃĄromdimenziÃŗsabbÃĄ tÊtele (Ez nem Ãļsszekeverendő a Dolby Atmos-szal!)", - - // Settings - Visual - "settings.header.visual": "VizuÃĄlis", - "settings.header.visual.description": "A Cider vizuÃĄlis beÃĄllítÃĄsainak mÃŗdosítÃĄsa.", - "settings.option.visual.windowBackgroundStyle": "Ablak hÃĄttÊr stílusa", // Toggle - "settings.header.visual.windowBackgroundStyle.none": "Sehol", - "settings.header.visual.windowBackgroundStyle.artwork": "BorítÃŗ", - "settings.header.visual.windowBackgroundStyle.image": "KÊp", - "settings.option.visual.animatedArtwork": "AnimÃĄlt borítÃŗ", // Dropdown - "settings.header.visual.animatedArtwork.always": "Mindig", - "settings.header.visual.animatedArtwork.limited": "Oldalakra Ês speciÃĄlis bejegyzÊsekre korlÃĄtozva.", - "settings.header.visual.animatedArtwork.disable": "KikapcsolÃĄs mindenhol", - "settings.option.visual.animatedArtworkQuality": "AnimÃĄlt borítÃŗ minősÊge", // Dropdown - "settings.header.visual.animatedArtworkQuality.low": "Alacsony", - "settings.header.visual.animatedArtworkQuality.medium": "KÃļzepes", - "settings.header.visual.animatedArtworkQuality.high": "Magas", - "settings.header.visual.animatedArtworkQuality.veryHigh": "Nagyon magas", - "settings.header.visual.animatedArtworkQuality.extreme": "ExtrÊm", - "settings.option.visual.animatedWindowBackground": "AnimÃĄlt ablakhÃĄttÊr", // Toggle - "settings.option.visual.hardwareAcceleration": "Hardveres gyorsítÃĄs", // Dropdown - "settings.option.visual.hardwareAcceleration.description": "ÚjraindítÃĄs szÃŧksÊges", - "settings.header.visual.hardwareAcceleration.default": "Alap", - "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", - "settings.header.visual.theme": "TÊma", - - // Settings - Visual - Theme name - "settings.option.visual.theme.default": "Cider", - "settings.option.visual.theme.dark": "SÃļtÊt", - // Refer to term.disabled for the disabled option - "settings.option.visual.showPersonalInfo": "SzemÊlyes adatok mutatÃĄsa", // Toggle - - // Settings - Lyrics - "settings.header.lyrics": "DalszÃļveg", - "settings.header.lyrics.description": "A Cider dalszÃļveg beÃĄllítÃĄsainak mÃŗdosítÃĄsa.", - "settings.option.lyrics.enableMusixmatch": "MusixMatch dalszÃļvegek engedÊlyezÊse", // Toggle - "settings.option.lyrics.enableMusixmatchKaraoke": "Karaoke mÃŗd bekapcsolÃĄsa (Csak MusixMatch)", // Toggle - "settings.option.lyrics.musixmatchPreferredLanguage": "MusixMatch fordítÃĄs nyelve", // Dropdown - "settings.option.lyrics.enableYoutubeLyrics": "YouTube dalszÃļvegek engedÊlyezÊse a zenei videÃŗknÃĄl", // Toggle - - // Settings - Connectivity - "settings.header.connectivity": "CsatlakozÃĄsok", - "settings.header.connectivity.description": "A Cider csatlakozÃĄs beÃĄllítÃĄsainak mÃŗdosítÃĄsa.", - "settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown - "settings.option.connectivity.playbackNotifications": "LejÃĄtszÃĄs ÊrtesítÊsek", // Toggle - // Refer to term.disabled for the disabled option - "settings.header.connectivity.discordRPC.cider": "MegjelenítÊs 'Cider'-kÊnt", - "settings.header.connectivity.discordRPC.appleMusic": "MegjelenítÊs 'Apple Music'-kÊnt", - "settings.option.connectivity.discordRPC.clearOnPause": "Discord Rich Presence tÃļrlÊse megÃĄllítÃĄsnÃĄl", // Toggle - "settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling", // Option to Connect - "settings.option.connectivity.lastfmScrobble.delay": "LastFM Scrobble KÊsleltetÊs (%)", - "settings.option.connectivity.lastfmScrobble.nowPlaying": "LastFM Now Playing engedÊlyezÊse", - "settings.option.connectivity.lastfmScrobble.removeFeatured": "Remove featuring artists from song title (LastFM)", - "settings.option.connectivity.lastfmScrobble.filterLoop": "Loopolt zeneszÃĄm szÅąrÊse (LastFM)", - // Refer to term.connect for the connect button - - // Settings - Experimental - "settings.header.experimental": "KísÊrleti", - "settings.header.experimental.description": "A Cider kísÊrleti beÃĄllítÃĄsainak mÃŗdosítÃĄsa.", - "settings.option.experimental.compactUI": "Kompakt UI", // Toggle - "settings.option.experimental.close_button_hide": "A bezÃĄrÃĄs gomb rejtse el az alkalmazÃĄst", - "settings.option.experimental.copy_log": "NaplÃŗ mÃĄsolÃĄsa a vÃĄgÃŗlapra", - "settings.option.experimental.inline_playlists": "Inline Playlists and Albums", - - // Refer to term.disabled & term.enabled - // Spatialization Menu - "spatial.notTurnedOn": "A tÊrbeli hangzÃĄs ki van kapcsolva, hasznÃĄlatÃĄhoz kapcsolja be.", - "spatial.spatialProperties": "TÊrbeli hang", - "spatial.width": "SzÊlessÊg", - "spatial.height": "MagassÃĄg", - "spatial.depth": "HosszÃēsÃĄg", - "spatial.gain": "Gain", - "spatial.roomMaterials": "Szoba felÊpítÊse", - "spatial.roomDimensions": "Szoba mÊretei", - "spatial.roomPositions": "Szoba pozíciÃŗi", - "spatial.setDimensions": "MÊretek beÃĄllítÃĄsa", - "spatial.setPositions": "PozíciÃŗk beÃĄllítÃĄsa", - "spatial.up": "Fent", - "spatial.front": "Elől", - "spatial.left": "Balra", - "spatial.right": "Jobbra", - "spatial.back": "HÃĄtul", - "spatial.down": "Lent", - "spatial.listener": "HallgatÃŗ", - "spatial.audioSource": "HangforrÃĄs", - - // Settings - Unfinished - "settings.header.unfinished": "Befejezetlen", - - // Web Remote - "remote.web.title": "Cider Remote", - "remote.web.description": "Olvasd be ezt a QR-kÃŗdot a telefonoddal, hogy tudd vezÊrelni a lejÃĄtszÃŗt.", - - // About - "about.thanks": "KÃļszÃļnet a Cider Collective csapatÃĄnak Ês minden hozzÃĄjÃĄrulÃŗnak." -} \ No newline at end of file +{ + "i18n.languageName": "Magyar", + "i18n.languageNameEnglish": "Hungarian", + "i18n.category": "main", + "i18n.authors": "@Greenoliv @Amaru @BenjaminStonawski", + "app.name": "Cider", + "date.format": "${m} ${d}, ${y}", + "dialog.cancel": "MÊgsem", + "dialog.ok": "OK", + "notification.updatingLibrarySongs": "ZenekÃļnyvtÃĄr frissítÊse...", + "notification.updatingLibraryAlbums": "Albumok frissítÊse...", + "notification.updatingLibraryArtists": "ElőadÃŗk frissítÊse...", + "term.appleInc": "Apple Inc.", + "term.appleMusic": "Apple Music", + "term.applePodcasts": "Apple Podcastok", + "term.itunes": "iTunes", + "term.github": "GitHub", + "term.discord": "Discord", + "term.learnMore": "Tudj meg tÃļbbet", + "term.accountSettings": "FiÃŗkbeÃĄllítÃĄsok", + "term.logout": "KijelentkezÊs", + "term.login": "BejelentkezÊs", + "term.about": "NÊvjegy", + "term.privateSession": "PrivÃĄt hallgatÃĄs", + "term.queue": "VÃĄrÃŗlista", + "term.history": "ElőzmÊnyek", + "term.search": "KeresÊs", + "term.library": "KÃļnyvtÃĄr", + "term.listenNow": "HallgatÃĄs most", + "term.browse": "BÃļngÊszÊs", + "term.radio": "RÃĄdiÃŗ", + "term.recentlyAdded": "NemrÊg hozzÃĄadott", + "term.songs": "Dalok", + "term.albums": "Albumok", + "term.artists": "ElőadÃŗk", + "term.podcasts": "Podcastok", + "term.playlists": "LejÃĄtszÃĄsi listÃĄk", + "term.playlist": "LejÃĄtszÃĄsi lista", + "term.newPlaylist": "Új lejÃĄtszÃĄsi lista", + "term.newPlaylistFolder": "Új mappa", + "term.createNewPlaylist": "Új lejÃĄtszÃĄsi lista lÊtrehozÃĄsa", + "term.createNewPlaylistFolder": "Új mappa lÊtrehozÃĄsa", + "term.deletePlaylist": "Biztosan szeretnÊ tÃļrÃļlni a lejÃĄtszÃĄsi listÃĄt?", + "term.play": "LejÃĄtszÃĄs", + "term.pause": "MegÃĄllítÃĄs", + "term.previous": "Előző", + "term.next": "KÃļvetkező", + "term.shuffle": "KeverÊs", + "term.repeat": "IsmÊtlÊs", + "term.volume": "Hangerő", + "term.mute": "NÊmítÃĄs", + "term.unmute": "NÊmítÃĄs feloldÃĄsa", + "term.share": "MegosztÃĄs", + "term.share.success": "MÃĄsolva a vÃĄgÃŗlapra", + "term.settings": "BeÃĄllítÃĄsok", + "term.seeAll": "Összes", + "term.sortBy": "RendezÊs", + "term.sortBy.album": "Album", + "term.sortBy.artist": "ElőadÃŗ", + "term.sortBy.name": "NÊv", + "term.sortBy.genre": "MÅąfaj", + "term.sortBy.releaseDate": "KiadÃĄs dÃĄtuma", + "term.sortBy.duration": "Időtartam", + "term.sortBy.dateAdded": "HozzÃĄadÃĄs dÃĄtuma", + "term.sortOrder": "A-Z", + "term.sortOrder.ascending": "NÃļvekvő", + "term.sortOrder.descending": "CsÃļkkenő", + "term.viewAs": "MegjelenítÊs", + "term.viewAs.coverArt": "BorítÃŗ", + "term.viewAs.list": "Lista", + "term.size": "MÊret", + "term.size.normal": "NormÃĄl", + "term.size.compact": "Kompakt", + "term.enable": "Be", + "term.disable": "Ki", + "term.enabled": "Be", + "term.disabled": "Ki", + "term.connect": "CsatlakoztatÃĄs", + "term.connecting": "CsatlakozÃĄs", + "term.disconnect": "LecsatlakozatÃĄs", + "term.authed": "Hitelesítve", + "term.confirm": "JÃŗvÃĄhagyja?", + "term.more": "TÃļbb", + "term.less": "Kevesebb", + "term.showMore": "Mutass tÃļbbet", + "term.showLess": "Mutass kevesebbet", + "term.topSongs": "A legjobb dalok", + "term.latestReleases": "Új megjelenÊsek", + "term.time.added": "HozzÃĄadva", + "term.time.released": "Kiadva", + "term.time.updated": "Frissítve", + "term.time.hours": "Ãŗra", + "term.time.hour": "Ãŗra", + "term.time.minutes": "perc", + "term.time.minute": "perc", + "term.time.seconds": "mÃĄsodperc", + "term.time.second": "mÃĄsodperc", + "term.fullscreenView": "Teljes kÊpernyős mÃŗd", + "term.defaultView": "AlapÊrtelmezett nÊzet", + "term.audioSettings": "HangbeÃĄllítÃĄsok", + "term.audioControls": "Hangerő beÃĄllítÃĄs", + "term.clearAll": "Összes tÃļrlÊse", + "term.recentStations": "NemrÊg jÃĄtszott", + "term.language": "Nyelv", + "term.funLanguages": "FantÃĄzianyelvek", + "term.noLyrics": "BetÃļltÊs... / DalszÃļveg nem talÃĄlhatÃŗ. / InstrumentÃĄlis.", + "term.copyright": "Szerzői jog", + "term.rightsReserved": "Minden jog fenntartva.", + "term.sponsor": "TÃĄmogasd a projektet", + "term.ciderTeam": "A Cider csapata", + "term.developer": "Fejlesztő", + "term.socialTeam": "KÃļzÃļssÊgi csapat", + "term.socials": "SzociÃĄlis", + "term.contributors": "HozzÃĄjÃĄrulÃŗk", + "term.equalizer": "HangszínszabÃĄlyozÃŗ", + "term.reset": "VisszaÃĄllítÃĄs", + "term.tracks": "zeneszÃĄm", + "term.videos": "VideÃŗk", + "term.menu": "MenÃŧ", + "term.check": "EllenőrzÊs", + "term.aboutArtist": "About {{artistName}}", + "term.topResult": "Legjobb talÃĄlatok", + "term.sharedPlaylists": "Megosztott lejÃĄtszÃĄsi listÃĄk", + "term.people": "Profilok", + "term.newpreset.name": "Új EQ előbeÃĄllítÃĄs nÊv", + "term.addedpreset": "ElőbeÃĄllítÃĄs hozzÃĄadva", + "term.deletepreset.warn": "Biztos tÃļrÃļlni szeretnÊd ezt az előbeÃĄllítÃĄst?", + "term.deletedpreset": "ElőbeÃĄllítÃĄs tÃļrÃļlve", + "term.defaultPresets": "Alap előbeÃĄllítÃĄsok", + "term.userPresets": "FelhasznÃĄlÃŗi beÃĄllítÃĄsok", + "term.requestError": "Hiba tÃļrtÊnt a lekÊrÊs kÃļzben.", + "term.song.link.generate": "song.link URL lekÊrÊse...", + "term.musicVideos": "VideÃŗklipek", + "term.stations": "ÁllomÃĄsok", + "term.curators": "KurÃĄtorok", + "term.appleCurators": "Apple KurÃĄtorok", + "term.radioShows": "RÃĄdiÃŗadÃĄsok", + "term.recordLabels": "Record Labels", + "term.videoExtras": "VideÃŗextrÃĄk", + "term.top": "Top", + "term.version": "VerziÃŗ", + "term.noVideos": "Nincs talÃĄlat.", + "term.plugin": "Plug-in", + "term.pluginMenu": "Plug-in MenÃŧ", + "term.replay": "Replay", + "term.uniqueAlbums": "Unique Albums", + "term.uniqueArtists": "Unique Artists", + "term.uniqueSongs": "Unique Songs", + "term.topArtists": "Top Artists", + "term.listenedTo": "Listened to:", + "term.times": "alkalom", + "term.topAlbums": "Top Albums", + "term.plays": "Plays", + "term.topGenres": "Top Genres", + "term.confirmLogout": "Biztosan ki szeretnÊl jelentkezni?", + "home.title": "Kezdőlap", + "home.recentlyPlayed": "NemrÊg jÃĄtszott", + "home.recentlyAdded": "NemrÊg hozzÃĄadott", + "home.artistsFeed": "Az előadÃŗid feedje", + "home.artistsFeed.noArtist": "KÃļvess nÊhÃĄny előadÃŗt, hogy a legÃējabb zenÊik itt megjelenjenek", + "home.madeForYou": "SzemÊlyre szabva", + "home.friendsListeningTo": "A barÃĄtaid Êpp ezt hallgatjÃĄk", + "home.followedArtists": "KÃļvetett előadÃŗk", + "error.appleMusicSubRequired": "Apple Music előfizetÊs szÃŧksÊges.", + "error.connectionError": "Hiba tÃļrtÊnt az Apple Musichoz valÃŗ csatlakozÃĄs kÃļzben.", + "error.noResults": "Nincs talÃĄlat", + "error.noResults.description": "PrÃŗbÃĄlkozzon Ãēj keresÊssel", + "podcast.followOnCider": "KÃļvetÊs a Cideren", + "podcast.followedOnCider": "KÃļvetve a Cideren", + "podcast.subscribeOnItunes": "FeliratkozÃĄs az iTunesban", + "podcast.subscribedOnItunes": "Feliratkozva az iTunesban", + "podcast.itunesStore": "iTunes Store", + "podcast.episodes": "EpizÃŗdok", + "podcast.playEpisode": "EpizÃŗd lejÃĄtszÃĄsa", + "podcast.website": "Podcast weboldala", + "action.addToLibrary": "HozzÃĄadÃĄs a KÃļnyvtÃĄrhoz", + "action.addToLibrary.success": "HozzÃĄadva a KÃļnyvtÃĄrhoz", + "action.addToLibrary.error": "Hiba a hozzÃĄadÃĄskor.", + "action.removeFromLibrary": "TÃļrlÊs a KÃļnytÃĄrbÃŗl", + "action.removeFromLibrary.success": "TÃļrÃļlve a KÃļnyvtÃĄrbÃŗl", + "action.addToQueue": "HozzÃĄadÃĄs a vÃĄrÃŗlistÃĄhoz", + "action.addToQueue.success": "HozzÃĄadva a vÃĄrÃŗlistÃĄhoz", + "action.addToQueue.error": "Sikertelen hozzÃĄadÃĄs a vÃĄrÃŗlistÃĄhoz", + "action.removeFromQueue": "TÃļrlÊs a vÃĄrÃŗlistÃĄrÃŗl", + "action.removeFromQueue.success": "TÃļrÃļlve a vÃĄrÃŗlistÃĄrÃŗl", + "action.removeFromQueue.error": "Sikertelen tÃļrlÊs a vÃĄrÃŗlistÃĄrÃŗl", + "action.createPlaylist": "Új lejÃĄtszÃĄsi lista lÊtrehozÃĄsa", + "action.addToPlaylist": "LejÃĄtszÃĄsi listÃĄhoz adÃĄs", + "action.removeFromPlaylist": "TÃļrlÊs a lejÃĄtszÃĄsi listÃĄrÃŗl", + "action.addToFavorites": "HozzÃĄadÃĄs a kedvencekhez", + "action.follow": "KÃļvetÊs", + "action.follow.success": "KÃļvetve", + "action.follow.error": "Sikertelen kÃļvetÊs", + "action.unfollow": "KÃļvetÊs visszavonÃĄsa", + "action.unfollow.success": "KÃļvetÊs visszavonva", + "action.unfollow.error": "Sikertelen visszavonÃĄs", + "action.playNext": "LejÃĄtszÃĄs kÃļvetkezőkÊnt", + "action.playLater": "LejÃĄtszÃĄs utolsÃŗkÊnt", + "action.startRadio": "ÁllomÃĄs lÊtrehozÃĄsa", + "action.goToArtist": "ElőadÃŗ megjelenítÊse", + "action.goToAlbum": "Album megjelenítÊse", + "action.moveToTop": "MozgatÃĄs legfelÃŧlre", + "action.share": "MegosztÃĄs", + "action.rename": "ÁtnevezÊs", + "action.love": "Szeretem", + "action.unlove": "MÊgsem szeretem", + "action.dislike": "Kevesebb ilyen javasolÃĄsa", + "action.undoDislike": "A Kevesebb ilyen javasolÃĄsa visszavonÃĄsa", + "action.showWebRemoteQR": "TÃĄvirÃĄnyítÃŗ", + "action.playTracksNext": "${app.selectedMediaItems.length} zenÊk lejÃĄtszÃĄsa kÃļvetkezőnek", + "action.playTracksLater": "${app.selectedMediaItems.length} zenÊk lejÃĄtszÃĄsa kÊsőbb", + "action.removeTracks": "${self.selectedItems.length} zenÊk eltÃĄvolítÃĄsa a vÃĄrÃŗlistÃĄrÃŗl", + "action.import": "ImportÃĄlÃĄs", + "action.export": "ExportÃĄlÃĄs", + "action.showAlbum": "Teljes album megjelenítÊse", + "action.tray.minimize": "KicsinyítÊs a tÃĄlcÃĄra", + "action.tray.quit": "KilÊpÊs", + "action.tray.show": "MegjelenítÊs", + "action.update": "FrissítÊs", + "action.install": "TelepítÊs", + "action.copy": "MÃĄsolÃĄs", + "action.newpreset": "Új Preset...", + "action.deletepreset": "Preset tÃļrlÊse", + "action.open": "MegnyitÃĄs", + "settings.header.general": "ÁltalÃĄnos", + "settings.header.general.description": "A Cider ÃĄltalÃĄnos beÃĄllítÃĄsainak mÃŗdosítÃĄsa.", + "settings.option.general.language": "Nyelv", + "settings.option.general.resumebehavior": "Resume behavior", + "settings.option.general.resumebehavior.description": "Resume behavior affects how Cider will resume your session when you return to the app.", + "settings.option.general.resumebehavior.locally": "Locally", + "settings.option.general.resumebehavior.locally.description": "Cider will resume your last session on this machine.", + "settings.option.general.resumebehavior.history": "History", + "settings.option.general.resumebehavior.history.description": "Cider will queue the last song from your overall Apple Music history, across devices.", + "settings.option.general.language.main": "Nyelvek", + "settings.option.general.language.fun": "FantÃĄzianyelvek", + "settings.option.general.language.unsorted": "Azonosítatlan", + "settings.option.general.updateCider": "Cider frissítÊse", + "settings.option.general.updateCider.branch": "VerziÃŗ kivÃĄlasztÃĄsa", + "settings.option.general.updateCider.branch.description": "VÃĄlaszd ki a Cider melyik verziÃŗjÃĄra szeretnÊl frissíteni", + "settings.option.general.updateCider.branch.main": "NormÃĄl", + "settings.option.general.updateCider.branch.develop": "Fejlesztői", + "settings.header.audio": "Hang", + "settings.header.audio.description": "A Cider hangbeÃĄllítÃĄsainak mÃŗdosítÃĄsa.", + "settings.option.audio.volumeStep": "Hangerő lÊptÊk", + "settings.option.audio.maxVolume": "Maximum hangerő", + "settings.option.audio.quality": "HangminősÊg", + "settings.header.audio.quality.hireslossless": "Nagy felbontÃĄsÃē vesztesÊgmentes", + "settings.header.audio.quality.hireslossless.description": "max. 24-bit/192 kHz sebessÊgen", + "settings.header.audio.quality.lossless": "VesztesÊgmentes", + "settings.header.audio.quality.lossless.description": "max. up to 24-bit/48 kHz sebessÊgen", + "settings.header.audio.quality.high": "High", + "settings.header.audio.quality.high.description": "256 kbps", + "settings.header.audio.quality.standard": "Standard", + "settings.header.audio.quality.standard.description": "64 kbps", + "settings.option.audio.seamlessTransition": "SzÃŧnetmentes lejÃĄtszÃĄs", + "settings.option.audio.enableAdvancedFunctionality": "HaladÃŗ funkcionalitÃĄs engedÊlyezÊse", + "settings.option.audio.enableAdvancedFunctionality.description": "Az AudioContext funkciÃŗ engedÊlyezÊse lehetővÊ teszi a fejlettebb hangfunkciÃŗkat, pÊldÃĄul a NormalizÃĄsÃĄst, az Equalizereket Ês a Visualizer funkciÃŗkat, azonban egyes szÃĄmítÃŗgÊpeken ez akadozÃĄst okozhat a hangsÃĄvokban.", + "settings.option.audio.audioLab": "Cider Audio Lab", + "settings.option.audio.audioLab.description": "An assortment of in-house developed audio effects for Cider.", + "settings.warn.audioLab.withoutAF": "AudioContext (Advanced Functionality) is required to enable Cider Audio Laboratory.", + "settings.option.audio.enableAdvancedFunctionality.analogWarmth": "Analog Warmth", + "settings.option.audio.enableAdvancedFunctionality.analogWarmth.description": "Simulates the analog warmth modelled after the Korg Nutube 6P1", + "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity": "Analog Warmth intensity", + "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.description": "Changes the intensity of the Analog Warmth Module processing.", + "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth": "Smooth", + "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm": "Warm", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processorâ„ĸī¸", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Pszichoakusztikus MÃŗdosítÃĄsok amik minden hangot felerősítenek Ês ÃŧtősebbÊ tesznek", + "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "A CAP nem kompatibilis a TÊrbeli Hanggal. Kapcsold ki a TÊrbeli Hangot a folytatÃĄshoz.", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP ErőssÊg", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "MegvÃĄltoztatja a hangra vÊgzett feldolgozÃĄs erőssÊgÊt. (Az Agresszív mÃŗd nemkívÃĄnatos eredmÊnyeket hozhat!)", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "SzokÃĄsos", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Agresszív", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "NormalizÃĄlÃĄs", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "NormalizÃĄlja az egyes zeneszÃĄmok hangosabb rÊszeit, hogy egysÊgesebb hallgatÃĄsi ÊlmÊnyt hozzon lÊtre.", + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "TÊrbeli hang", + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "TÊrbeli hang Ês a hang hÃĄromdimenziÃŗsabbÃĄ tÊtele (Ez nem Ãļsszekeverendő a Dolby Atmos-szal!)", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Cider Tuned Spatialization", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "Pre-tuned Spatializing Effect, disables the customizable settings of Audio Spatialization. Spatialization must be enabled as a prerequisite.", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Cider Spatialization Profile", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description": "Changes the Tuning Profile of the Spatialization. (Requires App Restart)", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard": "Standard", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile": "Audiophile", + "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "A TÊrbeli Hang nem kompatibilis a CAP-pal. Kapcsold ki a CAP-ot a folytatÃĄshoz.", + "settings.header.visual": "VizuÃĄlis", + "settings.header.visual.description": "A Cider vizuÃĄlis beÃĄllítÃĄsainak mÃŗdosítÃĄsa.", + "settings.option.visual.windowBackgroundStyle": "AblakhÃĄttÊr stílusa", + "settings.header.visual.windowBackgroundStyle.none": "Sehol", + "settings.header.visual.windowBackgroundStyle.artwork": "BorítÃŗ", + "settings.header.visual.windowBackgroundStyle.image": "KÊp", + "settings.option.visual.animatedArtwork": "AnimÃĄlt borítÃŗ", + "settings.header.visual.animatedArtwork.always": "Mindig", + "settings.header.visual.animatedArtwork.limited": "Oldalakra Ês speciÃĄlis bejegyzÊsekre korlÃĄtozva.", + "settings.header.visual.animatedArtwork.disable": "KikapcsolÃĄs mindenhol", + "settings.option.visual.animatedArtworkQuality": "AnimÃĄlt borítÃŗ minősÊge", + "settings.header.visual.animatedArtworkQuality.low": "Alacsony", + "settings.header.visual.animatedArtworkQuality.medium": "KÃļzepes", + "settings.header.visual.animatedArtworkQuality.high": "Magas", + "settings.header.visual.animatedArtworkQuality.veryHigh": "Nagyon magas", + "settings.header.visual.animatedArtworkQuality.extreme": "ExtrÊm", + "settings.option.visual.animatedWindowBackground": "AnimÃĄlt ablakhÃĄttÊr", + "settings.option.visual.hardwareAcceleration": "Hardveres gyorsítÃĄs", + "settings.option.visual.hardwareAcceleration.description": "ÚjraindítÃĄs szÃŧksÊges", + "settings.header.visual.hardwareAcceleration.default": "Alap", + "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", + "settings.header.visual.theme": "TÊma", + "settings.option.visual.theme.github.download": "TelepítÊs GitHub URL-ről", + "settings.option.visual.theme.github.explore": "TÊmaÃĄruhÃĄz", + "settings.header.visual.theme.github.page": "TÊmÃĄk a GitHub-rÃŗl", + "settings.option.visual.theme.github.install.confirm": "Biztos, hogy szeretnÊd telepíteni a(z) {{ repo }} tÊmÃĄt?", + "settings.prompt.visual.theme.github.URL": "Add meg a telepítendő tÊma URL-jÊt", + "settings.notyf.visual.theme.install.success": "TÊma sikeresen telepítve", + "settings.notyf.visual.theme.install.error": "Sikertelen volt a tÊma telepítÊse", + "settings.option.visual.theme.default": "Cider", + "settings.option.visual.theme.dark": "SÃļtÊt", + "settings.option.visual.showPersonalInfo": "SzemÊlyes adatok mutatÃĄsa", + "settings.header.lyrics": "DalszÃļveg", + "settings.header.lyrics.description": "A Cider dalszÃļveg beÃĄllítÃĄsainak mÃŗdosítÃĄsa.", + "settings.option.lyrics.enableMusixmatch": "MusixMatch dalszÃļvegek engedÊlyezÊse", + "settings.option.lyrics.enableMusixmatchKaraoke": "Karaoke mÃŗd bekapcsolÃĄsa (Csak MusixMatch)", + "settings.option.lyrics.musixmatchPreferredLanguage": "MusixMatch fordítÃĄs nyelve", + "settings.option.lyrics.enableYoutubeLyrics": "YouTube dalszÃļvegek engedÊlyezÊse a zenei videÃŗknÃĄl", + "settings.header.connectivity": "CsatlakozÃĄsok", + "settings.header.connectivity.description": "A Cider csatlakozÃĄs beÃĄllítÃĄsainak mÃŗdosítÃĄsa.", + "settings.option.connectivity.discordRPC": "Discord Rich Presence", + "settings.option.connectivity.playbackNotifications": "LejÃĄtszÃĄs ÊrtesítÊsek", + "settings.header.connectivity.discordRPC.cider": "MegjelenítÊs 'Cider'-kÊnt", + "settings.header.connectivity.discordRPC.appleMusic": "MegjelenítÊs 'Apple Music'-kÊnt", + "settings.option.connectivity.discordRPC.clearOnPause": "Discord Rich Presence tÃļrlÊse megÃĄllítÃĄsnÃĄl", + "settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling", + "settings.option.connectivity.lastfmScrobble.delay": "LastFM Scrobble KÊsleltetÊs (%)", + "settings.option.connectivity.lastfmScrobble.nowPlaying": "LastFM Now Playing engedÊlyezÊse", + "settings.option.connectivity.lastfmScrobble.removeFeatured": "Remove featuring artists from song title (LastFM)", + "settings.option.connectivity.lastfmScrobble.filterLoop": "Loopolt zeneszÃĄm szÅąrÊse (LastFM)", + "settings.header.debug": "HibakeresÊs", + "settings.option.debug.copy_log": "NaplÃŗ mÃĄsolÃĄsa a vÃĄgÃŗlapra", + "settings.option.debug.openAppData": "Cider mappa megnyitÃĄsa", + "settings.header.experimental": "KísÊrleti", + "settings.header.experimental.description": "A Cider kísÊrleti beÃĄllítÃĄsainak mÃŗdosítÃĄsa.", + "settings.option.experimental.unknownPlugin": "Unknown Sources", + "settings.option.experimental.unknownPlugin.description": "Allow installion of plugins from repos other than the Cider Plugin Repository", + "settings.option.experimental.compactUI": "Kompakt felÃŧlet", + "settings.option.window.close_button_hide": "A bezÃĄrÃĄs gomb rejtse el az alkalmazÃĄst", + "settings.option.experimental.inline_playlists": "Inline Playlists and Albums", + "spatial.notTurnedOn": "A tÊrbeli hangzÃĄs ki van kapcsolva, hasznÃĄlatÃĄhoz kapcsolja be.", + "spatial.spatialProperties": "TÊrbeli hang", + "spatial.width": "SzÊlessÊg", + "spatial.height": "MagassÃĄg", + "spatial.depth": "HosszÃēsÃĄg", + "spatial.gain": "Gain", + "spatial.roomMaterials": "Szoba felÊpítÊse", + "spatial.roomDimensions": "Szoba mÊretei", + "spatial.roomPositions": "Szoba pozíciÃŗi", + "spatial.setDimensions": "MÊretek beÃĄllítÃĄsa", + "spatial.setPositions": "PozíciÃŗk beÃĄllítÃĄsa", + "spatial.up": "Fent", + "spatial.front": "Elől", + "spatial.left": "Balra", + "spatial.right": "Jobbra", + "spatial.back": "HÃĄtul", + "spatial.down": "Lent", + "spatial.listener": "HallgatÃŗ", + "spatial.audioSource": "HangforrÃĄs", + "settings.header.unfinished": "Befejezetlen", + "remote.web.title": "Cider Remote", + "remote.web.description": "Olvasd be ezt a QR-kÃŗdot a telefonoddal, hogy tudd vezÊrelni a lejÃĄtszÃŗt.", + "about.thanks": "KÃļszÃļnet a Cider Collective csapatÃĄnak Ês minden hozzÃĄjÃĄrulÃŗnak." +} diff --git a/src/i18n/in_ID.json b/src/i18n/in_ID.json new file mode 100644 index 00000000..8f257626 --- /dev/null +++ b/src/i18n/in_ID.json @@ -0,0 +1,309 @@ +{ + "i18n.languageName": "Bahasa Indonesia", + "i18n.languageNameEnglish": "Indonesian", + "i18n.category": "main", + "i18n.authors": "@crystalshower", + "app.name": "Cider", + "date.format": "${d} ${m}, ${y}", + "dialog.cancel": "Batal", + "dialog.ok": "OK", + "notification.updatingLibrarySongs": "Memperbarui Pustaka lagu...", + "notification.updatingLibraryAlbums": "Memperbarui Pustaka album...", + "notification.updatingLibraryArtists": "Memperbarui Pustaka artis...", + "term.appleInc": "Apple Inc.", + "term.appleMusic": "Apple Music", + "term.applePodcasts": "Apple Podcasts", + "term.itunes": "iTunes", + "term.github": "GitHub", + "term.discord": "Discord", + "term.learnMore": "Pelajari lebih lanjut", + "term.accountSettings": "Pengaturan Akun", + "term.logout": "Keluar", + "term.login": "Masuk", + "term.about": "Tentang", + "term.privateSession": "Sesi Pribadi", + "term.queue": "Antrian", + "term.history": "Riwayat", + "term.search": "Cari", + "term.library": "Pustaka", + "term.listenNow": "Dengarkan Sekarang", + "term.browse": "Telusuri", + "term.radio": "Radio", + "term.recentlyAdded": "Baru Ditambahkan", + "term.songs": "Lagu", + "term.albums": "Album", + "term.artists": "Artis", + "term.podcasts": "Podcasts", + "term.playlists": "Playlist", + "term.playlist": "Playlist", + "term.newPlaylist": "Playlist Baru", + "term.newPlaylistFolder": "Folder Playlist Baru", + "term.createNewPlaylist": "Buat Playlist Baru", + "term.createNewPlaylistFolder": "Buat Folder Playlist Baru", + "term.deletePlaylist": "Yakin ingin menghapus playlist ini?", + "term.play": "Mainkan", + "term.pause": "Jeda", + "term.previous": "Sebelumnya", + "term.next": "Selanjutnya", + "term.shuffle": "Acak", + "term.repeat": "Ulangi", + "term.volume": "Volume", + "term.mute": "Bisu", + "term.unmute": "Bunyikan", + "term.share": "Bagikan", + "term.share.success": "Disalin ke clipboard", + "term.settings": "Pengaturan", + "term.seeAll": "Lihat Semua", + "term.sortBy": "Urutkan Berdasarkan", + "term.sortBy.album": "Album", + "term.sortBy.artist": "Artis", + "term.sortBy.name": "Nama", + "term.sortBy.genre": "Genre", + "term.sortBy.releaseDate": "Tanggal Rilis", + "term.sortBy.duration": "Durasi", + "term.sortOrder": "A-Z", + "term.sortOrder.ascending": "Terkecil", + "term.sortOrder.descending": "Terbesar", + "term.viewAs": "Lihat Sebagai", + "term.viewAs.coverArt": "Cover Art", + "term.viewAs.list": "Daftar", + "term.size": "Ukuran", + "term.size.normal": "Normal", + "term.size.compact": "Kompak", + "term.enable": "Aktifkan", + "term.disable": "Nonaktifkan", + "term.enabled": "Diaktifkan", + "term.disabled": "Dinonaktikan", + "term.connect": "Sambungkan", + "term.connecting": "Menyambungkan", + "term.disconnect": "Terputus", + "term.authed": "Diotentikasi", + "term.confirm": "Konfirmasi?", + "term.more": "Selebihnya", + "term.less": "Lebih Sedikit", + "term.showMore": "Tampilkan lebih banyak", + "term.showLess": "Tampilkan lebih sedikit", + "term.topSongs": "Lagu Teratas", + "term.latestReleases": "Rilis Terbaru", + "term.time.added": "Ditambahkan", + "term.time.released": "Dirilis", + "term.time.updated": "Diperbarui", + "term.time.hours": "jam", + "term.time.hour": "jam", + "term.time.minutes": "menit", + "term.time.minute": "menit", + "term.time.seconds": "detik", + "term.time.second": "detik", + "term.fullscreenView": "Mode Layar Penuh", + "term.defaultView": "Mode Default", + "term.audioSettings": "Pengaturan Audio", + "term.clearAll": "Bersihkan Semua", + "term.recentStations": "Stasiun Terbaru", + "term.language": "Bahasa", + "term.funLanguages": "Senang-senang", + "term.noLyrics": "Memuat... / Lirik tidak ditermukan./ Instrumental.", + "term.copyright": "Hak cipta", + "term.rightsReserved": "Hak cipta dilindungi Undang-undang.", + "term.sponsor": "Sponsori proyek ini", + "term.ciderTeam": "Cider Team", + "term.developer": "Pengembang", + "term.socialTeam": "Social Team", + "term.socials": "Sosial", + "term.contributors": "Kontributor", + "term.equalizer": "Equalizer", + "term.reset": "Atur Ulang", + "term.tracks": "lagu", + "term.videos": "Video", + "term.menu": "Menu", + "term.check": "Cek", + "term.aboutArtist": "Tentang {{artistName}}", + "term.topResult": "Hasil Teratas", + "term.sharedPlaylists": "Playlist yang dibagikan", + "term.people": "Orang", + "term.newpreset.name": "Nama Preset EQ Baru", + "term.addedpreset": "Preset Ditambahkan", + "term.deletepreset.warn": "Yakin ingin menghapus preset ini?", + "term.deletedpreset": "Preset dihapus", + "term.musicVideos": "Video Musik", + "term.stations": "Stasiun", + "term.curators": "Kurator", + "term.appleCurators": "Kurator Apple", + "term.radioShows": "Acara Radio", + "term.recordLabels": "Label Rekaman", + "term.videoExtras": "Bonus Video", + "term.top": "Atas", + "home.title": "Beranda", + "home.recentlyPlayed": "Baru Dimainkan", + "home.recentlyAdded": "Baru Ditambahkan", + "home.artistsFeed": "Feed Artis Anda", + "home.artistsFeed.noArtist": "Ikuti beberapa artis terlebih dahulu dan rilisan terbaru mereka akan ada di sini", + "home.madeForYou": "Dibuat Untuk Kamu", + "home.friendsListeningTo": "Teman Sedang Mendengarkan", + "home.followedArtists": "Artis Diikuti", + "error.appleMusicSubRequired": "Apple Music memerlukan langganan.", + "error.connectionError": "Terjadi masalah saat menyambungkan ke Apple Music.", + "error.noResults": "Tidak ada hasil.", + "error.noResults.description": "Coba pencarian baru.", + "podcast.followOnCider": "Ikuti Di Cider", + "podcast.followedOnCider": "Mengikuti Di Cider", + "podcast.subscribeOnItunes": "Langganan Di iTunes", + "podcast.subscribedOnItunes": "Berlangganan Di iTunes", + "podcast.itunesStore": "iTunes Store", + "podcast.episodes": "Episode", + "podcast.playEpisode": "Mainkan Episode", + "podcast.website": "Website Podcast", + "action.addToLibrary": "Tambahkan ke Pustaka", + "action.addToLibrary.success": "Ditambahkan ke Pustaka", + "action.addToLibrary.error": "Terjadi Kesalahan Saat Menambahkan Pustaka", + "action.removeFromLibrary": "Hapus dari Pustaka", + "action.removeFromLibrary.success": "Dihapus dari Pustaka", + "action.addToQueue": "Tambahkan ke Antrian", + "action.addToQueue.success": "Ditambahkan ke Antrian", + "action.addToQueue.error": "Terjadi Kesalahan Saat Menambahkan ke Antrean", + "action.removeFromQueue": "Hapus dari Antrian", + "action.removeFromQueue.success": "Dihapus dari Antrian", + "action.removeFromQueue.error": "Terjadi Kesalahan Saat Menghapus Antrian", + "action.createPlaylist": "Buat Playlist Baru", + "action.addToPlaylist": "Tambahkan ke Playlist", + "action.removeFromPlaylist": "Hapus dari Playlist", + "action.addToFavorites": "Tambahkan ke Favorit", + "action.follow": "Ikuti", + "action.follow.success": "Diikuti", + "action.follow.error": "Kesalahan Dalam Mengikuti", + "action.unfollow": "Berhenti Mengikuti", + "action.unfollow.success": "Sudah Tidak Mengikuti", + "action.unfollow.error": "Terjadi Kesalahan Saat Berhenti Mengikuti", + "action.playNext": "Mainkan Selanjutnya", + "action.playLater": "Mainkan Nanti", + "action.startRadio": "Mulai Radio", + "action.goToArtist": "Lihat Halaman Artis", + "action.goToAlbum": "Lihat Halaman Album", + "action.moveToTop": "Pindah ke Atas", + "action.share": "Bagikan", + "action.rename": "Ubah Nama", + "action.love": "Suka", + "action.unlove": "Batal Suka", + "action.dislike": "Tidak Suka", + "action.undoDislike": "Batalkan Tidak Suka", + "action.showWebRemoteQR": "Remot Web", + "action.playTracksNext": "Mainkan ${app.selectedMediaItems.length} lagu selanjutnya", + "action.playTracksLater": "Mainkan ${app.selectedMediaItems.length} lagu nanti", + "action.removeTracks": "Hapus ${self.selectedItems.length} lagu dari antrian", + "action.import": "Impor", + "action.export": "Ekspor", + "action.showAlbum": "Tampilkan Album Sepenuhnya", + "action.tray.minimize": "Sembunyikan ke Tray", + "action.tray.quit": "Keluar", + "action.tray.show": "Tampilkan", + "action.update": "Perbarui", + "action.copy": "Salin", + "action.newpreset": "Preset Baru...", + "action.deletepreset": "Hapus Preset", + "settings.header.general": "Umum", + "settings.header.general.description": "Sesuaikan pengaturan umum untuk Cider.", + "settings.option.general.language": "Bahasa", + "settings.option.general.language.main": "Bahasa", + "settings.option.general.language.fun": "Bahasa Candaan", + "settings.option.general.language.unsorted": "Tidak disortir", + "settings.option.general.updateCider": "Perbarui Cider", + "settings.option.general.updateCider.branch": "Branch Pembaruan Cider", + "settings.option.general.updateCider.branch.description": "Pilih branch untuk memperbarui Cider", + "settings.option.general.updateCider.branch.main": "Stable", + "settings.option.general.updateCider.branch.develop": "Development", + "settings.header.audio": "Audio", + "settings.header.audio.description": "Sesuaikan pengaturan audio untuk Cider.", + "settings.option.audio.quality": "Kualitas Audio", + "settings.header.audio.quality.hireslossless": "Hi-Res Lossless", + "settings.header.audio.quality.hireslossless.description": "sampai dari 24-bit/192 kHz", + "settings.header.audio.quality.lossless": "Lossless", + "settings.header.audio.quality.lossless.description": "sampai dari 24-bit/48 kHz", + "settings.header.audio.quality.high": "Tinggi", + "settings.header.audio.quality.high.description": "256 kbps", + "settings.header.audio.quality.standard": "Standar", + "settings.header.audio.quality.standard.description": "64 kbps", + "settings.option.audio.seamlessTransition": "Transisi Audio Mulus", + "settings.option.audio.enableAdvancedFunctionality": "Aktifkan Fungsi Lanjutan", + "settings.option.audio.enableAdvancedFunctionality.description": "Mengaktifkan fungsionalitas AudioContext memungkinkan fitur audio lanjutan seperti Normalisasi Audio, Equalizer dan Visualizer. Namun pada beberapa perangkat dapat menyebabkan tersendatnya audio.", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processorâ„ĸī¸", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Peningkatan Psikoakustik yang membuat semuanya terdengar lebih jelas dan lebih hidup.", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "Kekuatan CAP", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Mengubah kekuatan pemrosesan yang dilakukan pada audio. (Agresif dapat menghasilkan hasil yang tidak diinginkan)", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Standar", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Agresif", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalisasi Audio", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Menormalkan puncak volume untuk masing-masing lagu demi menciptakan pengalaman mendengarkan yang lebih seragam.", + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Spasialisasi Audio", + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Atur ruang audio dan buat audio lebih 3 dimensi (NB: Bukan Dolby Atmos)", + "settings.header.visual": "Visual", + "settings.header.visual.description": "Sesuaikan pengaturan visual untuk Cider.", + "settings.option.visual.windowBackgroundStyle": "Gaya Latar Belakang Jendela", + "settings.header.visual.windowBackgroundStyle.none": "Tidak Ada", + "settings.header.visual.windowBackgroundStyle.artwork": "Artwork", + "settings.header.visual.windowBackgroundStyle.image": "Gambar", + "settings.option.visual.animatedArtwork": "Artwork Bergerak", + "settings.header.visual.animatedArtwork.always": "Selalu", + "settings.header.visual.animatedArtwork.limited": "Terbatas untuk halaman dan entri khusus", + "settings.header.visual.animatedArtwork.disable": "Matikan di semua tempat", + "settings.option.visual.animatedArtworkQuality": "Kualitas Artwork Bergerak", + "settings.header.visual.animatedArtworkQuality.low": "Rendah", + "settings.header.visual.animatedArtworkQuality.medium": "Medium", + "settings.header.visual.animatedArtworkQuality.high": "Tinggi", + "settings.header.visual.animatedArtworkQuality.veryHigh": "Sangat Tinggi", + "settings.header.visual.animatedArtworkQuality.extreme": "Paling Tinggi", + "settings.option.visual.animatedWindowBackground": "Jendela Latar Belakang Bergerak", + "settings.option.visual.hardwareAcceleration": "Akselerasi Perangkat Keras (HW Acceleration)", + "settings.option.visual.hardwareAcceleration.description": "Membutuhkan dibuka ulang", + "settings.header.visual.hardwareAcceleration.default": "Default", + "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", + "settings.header.visual.theme": "Tema", + "settings.option.visual.theme.default": "Cider", + "settings.option.visual.theme.dark": "Gelap", + "settings.option.visual.showPersonalInfo": "Tampilkan Info Pribadi", + "settings.header.lyrics": "Lyrics", + "settings.header.lyrics.description": "Sesuaikan pengaturan lirik untuk Cider.", + "settings.option.lyrics.enableMusixmatch": "Aktifkan Lirik Musixmatch", + "settings.option.lyrics.enableMusixmatchKaraoke": "Aktifkan Mode Karaoke (khusus Musixmatch)", + "settings.option.lyrics.musixmatchPreferredLanguage": "Bahasa Terjemahan Musixmatch", + "settings.option.lyrics.enableYoutubeLyrics": "Aktifkan Lirik Youtube untuk Video Musik", + "settings.header.connectivity": "Konektivitas", + "settings.header.connectivity.description": "Sesuaikan pengaturan konektivitas untuk Cider.", + "settings.option.connectivity.discordRPC": "Discord Rich Presence", + "settings.option.connectivity.playbackNotifications": "Pemberitahuan Pemutaran", + "settings.header.connectivity.discordRPC.cider": "Tampilkan sebagai 'Cider'", + "settings.header.connectivity.discordRPC.appleMusic": "Tampilkan sebagai 'Apple Music'", + "settings.option.connectivity.discordRPC.clearOnPause": "Sembunyikan Discord Rich Presence saat dijeda", + "settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling", + "settings.option.connectivity.lastfmScrobble.delay": "Delay Last.fm Scrobble (%)", + "settings.option.connectivity.lastfmScrobble.nowPlaying": "Aktifkan Last.fm Now Playing", + "settings.option.connectivity.lastfmScrobble.removeFeatured": "Hapus featuring artist dari judul lagu (Last.fm)", + "settings.option.connectivity.lastfmScrobble.filterLoop": "Filter lagu yang diulang (Last.fm)", + "settings.header.experimental": "Eksperimental", + "settings.header.experimental.description": "Sesuaikan pengaturan eksperimental untuk Cider.", + "settings.option.experimental.compactUI": "UI Kompak", + "settings.option.window.close_button_hide": "Tombol Tutup Menyembunyikan Aplikasi", + "settings.option.experimental.copy_log": "Salin log ke clipboard", + "settings.option.experimental.inline_playlists": "Playlist dan Album Sebaris", + "spatial.notTurnedOn": "Spasialisasi Audio dinonaktifkan. Untuk menggunakan, aktifkan terlebih dahulu.", + "spatial.spatialProperties": "Spatial Properties", + "spatial.width": "Lebar", + "spatial.height": "Tinggi", + "spatial.depth": "Kedalaman", + "spatial.gain": "Gain", + "spatial.roomMaterials": "Bahan Ruangan", + "spatial.roomDimensions": "Dimensi Ruangan", + "spatial.roomPositions": "Posisi Ruangan", + "spatial.setDimensions": "Atur Dimensi", + "spatial.setPositions": "Atur Posisi", + "spatial.up": "Atas", + "spatial.front": "Depan", + "spatial.left": "Kiri", + "spatial.right": "Kanan", + "spatial.back": "Belakang", + "spatial.down": "Bawah", + "spatial.listener": "Pendegar", + "spatial.audioSource": "Sumber Audio", + "settings.header.unfinished": "Belum Diselesaikan", + "remote.web.title": "Remote Cider", + "remote.web.description": "Pindai kode QR untuk memasangkan ponsel Anda dengan Cider.", + "about.thanks": "Terima kasih yang sebesar-besarnya kepada Cider Collective Team dan semua kontributor kami." +} \ No newline at end of file diff --git a/src/i18n/it_IT.jsonc b/src/i18n/it_IT.json similarity index 81% rename from src/i18n/it_IT.jsonc rename to src/i18n/it_IT.json index 5c3589f0..51209dcc 100644 --- a/src/i18n/it_IT.jsonc +++ b/src/i18n/it_IT.json @@ -1,25 +1,15 @@ -{ // Base File - - // i18n Info - "i18n.languageName": "Italiano", // name of language in native language - "i18n.languageNameEnglish": "Italian", // name of language in English - "i18n.category": "main", // main = real language, fun = fun community languages - "i18n.authors": "ConnectedR", // Authors, if you contribute to this file feel free to add your name seperated with a space - - // App info +{ + "i18n.languageName": "Italiano", + "i18n.languageNameEnglish": "Italian", + "i18n.category": "main", + "i18n.authors": "ConnectedR", "app.name": "Cider", - "date.format": "${d} ${m}, ${y}", - - // Dialogs "dialog.cancel": "Annulla", "dialog.ok": "OK", - - // Notification "notification.updatingLibrarySongs": "Aggiornamento raccolta brani...", "notification.updatingLibraryAlbums": "Aggornamento raccolta album...", "notification.updatingLibraryArtists": "Aggiornamento raccolta artisti...", - // Terms "term.appleInc": "Apple Inc.", "term.appleMusic": "Apple Music", "term.applePodcasts": "Apple Podcasts", @@ -91,10 +81,10 @@ "term.less": "Meno", "term.showMore": "Mostra altro", "term.showLess": "Mostra menu", - "term.topSongs" : "Brani top", + "term.topSongs": "Brani top", "term.latestReleases": "Uscite Recenti", "term.time.added": "Aggiunto", - "term.time.released": "Rilasciato", + "term.time.released": "Rilasciato", "term.time.updated": "Aggiornato", "term.time.hours": "ore", "term.time.hour": "ora", @@ -120,12 +110,10 @@ "term.contributors": "Contribuenti", "term.equalizer": "Equalizzatore", "term.reset": "Reset", - "term.tracks": "brani", // Assume x amount of tracks. e.g. 50 tracks - "term.videos": "Video", + "term.tracks": "brani", + "term.videos": "Video", "term.menu": "Menu", "term.check": "Controllo", - - // Home "home.title": "Casa", "home.recentlyPlayed": "Ascoltato di recente", "home.recentlyAdded": "Aggiunto di recente", @@ -134,13 +122,10 @@ "home.madeForYou": "Per Te", "home.friendsListeningTo": "Ascoltato da Amici", "home.followedArtists": "Artisti Seguiti", - // Errors "error.appleMusicSubRequired": "Apple Music ha bisogno di un abbonamento.", "error.connectionError": "C'è stato un problema nella connessione a Apple Music.", "error.noResults": "Nessun risultato.", "error.noResults.description": "Prova un'altra ricerca.", - - //Podcasts "podcast.followOnCider": "Segui in Cider", "podcast.followedOnCider": "Seguiti in Cider", "podcast.subscribeOnItunes": "Iscriviti in iTunes", @@ -149,8 +134,6 @@ "podcast.episodes": "Episodi", "podcast.playEpisode": "Ascolta Episodio", "podcast.website": "Sito Podcast", - - // Actions "action.addToLibrary": "Aggiungi a Raccolta", "action.addToLibrary.success": "Aggiunto a Raccolta", "action.addToLibrary.error": "Errore ad Aggiungere a Raccolta", @@ -191,122 +174,96 @@ "action.import": "Importa", "action.export": "Esporta", "action.showAlbum": "Mostra Album Intero", - // Waiting on Core for moving plugin to app.ts "action.tray.minimize": "Minimizza nel tray", "action.tray.quit": "Chiudi", "action.tray.show": "Mostra", - - // Settings - General "settings.header.general": "Generale", "settings.header.general.description": "Cambia le impostazioni generali di Cider.", "settings.option.general.language": "Lingua", - - // Language optgroups "settings.option.general.language.main": "Lingue", "settings.option.general.language.fun": "Lingue da Scherzo", "settings.option.general.language.unsorted": "Non ordinato", - - // Settings - Audio "settings.header.audio": "Audio", "settings.header.audio.description": "Cambia le impostazioni di audio di Cider.", - "settings.option.audio.quality": "Qualità di audio", // Dropdown + "settings.option.audio.quality": "Qualità di audio", "settings.header.audio.quality.high": "Alta", "settings.header.audio.quality.low": "Bassa", "settings.header.audio.quality.auto": "Automatica", - "settings.option.audio.seamlessTransition": "Transizioni Audio Immediate", // Toggle - "settings.option.audio.enableAdvancedFunctionality": "Attiva funzionalità avanzata", // Toggle + "settings.option.audio.seamlessTransition": "Transizioni Audio Immediate", + "settings.option.audio.enableAdvancedFunctionality": "Attiva funzionalità avanzata", "settings.option.audio.enableAdvancedFunctionality.description": "Attiva AudioContext per funzionalià audio avanzata Normalizzazione Audio, Equalizzatori and Visualizzatori, perÃ˛ su alcuni sistemi potrebbero causare lag nei brani.", - "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalizzazione Audio", // Toggle + "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalizzazione Audio", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalizza il volume massimo nei brani per un'esperienza d'ascolto piÚ uniforme.", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Spazializzazione Audio", // Toggle + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Spazializzazione Audio", "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spazializza l'audio per dare un effetto piÚ tridimensionale (nota: questo non è Dolby Atmos)", - // Settings - Visual - "settings.header.visual": "Visuale", + "settings.header.visual": "Visuale", "settings.header.visual.description": "Cambia le impostazioni visuali per Cider.", - "settings.option.visual.windowBackgroundStyle": "Stile Sfondo Finestra", // Toggle + "settings.option.visual.windowBackgroundStyle": "Stile Sfondo Finestra", "settings.header.visual.windowBackgroundStyle.none": "Nessuno", "settings.header.visual.windowBackgroundStyle.artwork": "Copertina", "settings.header.visual.windowBackgroundStyle.image": "Immagine", - "settings.option.visual.animatedArtwork": "Copertina Animata", // Dropdown + "settings.option.visual.animatedArtwork": "Copertina Animata", "settings.header.visual.animatedArtwork.always": "Sempre", "settings.header.visual.animatedArtwork.limited": "Limita ad alcune pagine", "settings.header.visual.animatedArtwork.disable": "Disattiva dappertutto", - "settings.option.visual.animatedArtworkQuality": "Qualità Copertina Animata", // Dropdown + "settings.option.visual.animatedArtworkQuality": "Qualità Copertina Animata", "settings.header.visual.animatedArtworkQuality.low": "Bassa", "settings.header.visual.animatedArtworkQuality.medium": "Media", "settings.header.visual.animatedArtworkQuality.high": "Alta", "settings.header.visual.animatedArtworkQuality.veryHigh": "Molto Alta", "settings.header.visual.animatedArtworkQuality.extreme": "Estrema", - "settings.option.visual.animatedWindowBackground": "Sfondo Finestra Animato", // Toggle - "settings.option.visual.hardwareAcceleration": "Accelerazione Hardware", // Dropdown + "settings.option.visual.animatedWindowBackground": "Sfondo Finestra Animato", + "settings.option.visual.hardwareAcceleration": "Accelerazione Hardware", "settings.option.visual.hardwareAcceleration.description": "Richiede riavvio del'app", - "settings.header.visual.hardwareAcceleration.default": "Normale", - "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", - // Refer to term.disabled for the disabled option - "settings.option.visual.showPersonalInfo": "Mostra Informazione Personale", // Toggle - - // Settings - Lyrics + "settings.header.visual.hardwareAcceleration.default": "Normale", + "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", + "settings.option.visual.showPersonalInfo": "Mostra Informazione Personale", "settings.header.lyrics": "Testi", "settings.header.lyrics.description": "Aggiusta le impostazioni dei testi per Cider.", - "settings.option.lyrics.enableMusixmatch": "Attiva Testi Musixmatch", // Toggle - "settings.option.lyrics.enableMusixmatchKaraoke": "Attiva Modalità Karaoke (solo Musixmatch)", // Toggle - "settings.option.lyrics.musixmatchPreferredLanguage": "Lingua di Traduzione MusixMatch Preferita", // Dropdown - "settings.option.lyrics.enableYoutubeLyrics": "Attiva Testi da YouTube Per i Video ", // Toggle - - // Settings - Connectivity + "settings.option.lyrics.enableMusixmatch": "Attiva Testi Musixmatch", + "settings.option.lyrics.enableMusixmatchKaraoke": "Attiva Modalità Karaoke (solo Musixmatch)", + "settings.option.lyrics.musixmatchPreferredLanguage": "Lingua di Traduzione MusixMatch Preferita", + "settings.option.lyrics.enableYoutubeLyrics": "Attiva Testi da YouTube Per i Video ", "settings.header.connectivity": "Connectività", "settings.header.connectivity.description": "Cambia le impostazioni di connettività per Cider.", - "settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown - "settings.option.connectivity.playbackNotifications": "Notifiche di Riproduzione", // Toggle - // Refer to term.disabled for the disabled option + "settings.option.connectivity.discordRPC": "Discord Rich Presence", + "settings.option.connectivity.playbackNotifications": "Notifiche di Riproduzione", "settings.header.connectivity.discordRPC.cider": "Mostra come 'Cider'", "settings.header.connectivity.discordRPC.appleMusic": "Mostra come 'Apple Music'", - "settings.option.connectivity.discordRPC.clearOnPause": "Pausare Disattiva la Rich Presence", // Toggle - "settings.option.connectivity.lastfmScrobble": "Scrobbling LastFM", // Option to Connect - "settings.option.connectivity.lastfmScrobble.delay": "Ritardo di Scrobbling LastFM (%)", - "settings.option.connectivity.lastfmScrobble.nowPlaying": "Attiva Now Playing in LastFM", - "settings.option.connectivity.lastfmScrobble.removeFeatured": "Rimouvi Artisti Extra dal Titolo del Brano (LastFM)", - "settings.option.connectivity.lastfmScrobble.filterLoop": "Filtra Brani Ripetuti (LastFM)", - // Refer to term.connect for the connect button - - // Settings - Experimental + "settings.option.connectivity.discordRPC.clearOnPause": "Pausare Disattiva la Rich Presence", + "settings.option.connectivity.lastfmScrobble": "Scrobbling LastFM", + "settings.option.connectivity.lastfmScrobble.delay": "Ritardo di Scrobbling LastFM (%)", + "settings.option.connectivity.lastfmScrobble.nowPlaying": "Attiva Now Playing in LastFM", + "settings.option.connectivity.lastfmScrobble.removeFeatured": "Rimouvi Artisti Extra dal Titolo del Brano (LastFM)", + "settings.option.connectivity.lastfmScrobble.filterLoop": "Filtra Brani Ripetuti (LastFM)", "settings.header.experimental": "Sperimentale", "settings.header.experimental.description": "Cambia impostazioni sperimentali per Cider.", - "settings.option.experimental.compactUI": "Interfaccia Compatta", // Toggle + "settings.option.experimental.compactUI": "Interfaccia Compatta", "settings.option.experimental.closeButtonBehaviour": "Comportamento Tasto Chiudi", "settings.option.experimental.closeButtonBehaviour.quit": "Chiudi Cider", "settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "Minimizza", "settings.option.experimental.closeButtonBehaviour.minimizeTray": "Minimizza Nel Tray", - // Refer to term.disabled & term.enabled - - // Spatialization Menu "spatial.notTurnedOn": "Spazializzazione Audio è disattivata. Attivala prima.", - "spatial.spatialProperties" : "Proprietà Spaziali", - "spatial.width" : "Larghezza", - "spatial.height" : "Altezza", - "spatial.depth" : "Profondità", - "spatial.gain" : "Guadagno", - "spatial.roomMaterials" : "Materiali Stanza", - "spatial.roomDimensions" : "Dimensioni Stanza", - "spatial.roomPositions" : "Posizioni Stanza", - "spatial.setDimensions" : "Imposta Dimensioni", - "spatial.setPositions" : "Imposta Posizioni", - "spatial.up" : "Sopra", - "spatial.front" : "In fronte", - "spatial.left" : "Sinistra", - "spatial.right" : "Destra", - "spatial.back" : "Dietro", - "spatial.down" : "Sotto", - "spatial.listener" : "Utente", - "spatial.audioSource" : "Fonte Audio", - - // Settings - Unfinished + "spatial.spatialProperties": "Proprietà Spaziali", + "spatial.width": "Larghezza", + "spatial.height": "Altezza", + "spatial.depth": "Profondità", + "spatial.gain": "Guadagno", + "spatial.roomMaterials": "Materiali Stanza", + "spatial.roomDimensions": "Dimensioni Stanza", + "spatial.roomPositions": "Posizioni Stanza", + "spatial.setDimensions": "Imposta Dimensioni", + "spatial.setPositions": "Imposta Posizioni", + "spatial.up": "Sopra", + "spatial.front": "In fronte", + "spatial.left": "Sinistra", + "spatial.right": "Destra", + "spatial.back": "Dietro", + "spatial.down": "Sotto", + "spatial.listener": "Utente", + "spatial.audioSource": "Fonte Audio", "settings.header.unfinished": "Incompleto", - - // Web Remote "remote.web.title": "Telecomando Cider", "remote.web.description": "Leggi il codice QR per connettere il tuo telefono con questa istanza di Cider", - - // About "about.thanks": "Grazie mille alla Team di Cider Collective e tutti i nostri contribuenti." } \ No newline at end of file diff --git a/src/i18n/ja_JP.jsonc b/src/i18n/ja_JP.json similarity index 83% rename from src/i18n/ja_JP.jsonc rename to src/i18n/ja_JP.json index 7b31f748..a416f930 100644 --- a/src/i18n/ja_JP.jsonc +++ b/src/i18n/ja_JP.json @@ -1,30 +1,20 @@ { - // i18n Info - "i18n.languageName": "æ—ĨæœŦčĒž", // name of language in native language - "i18n.languageNameEnglish": "Japanese", // name of language in English - "i18n.category": "main", // main = real language, fun = fun community languages - "i18n.authors": "@maikirakiwi", // Authors, if you contribute to this file feel free to add your name seperated with a space - - // App info + "i18n.languageName": "æ—ĨæœŦčĒž", + "i18n.languageNameEnglish": "Japanese", + "i18n.category": "main", + "i18n.authors": "@maikirakiwi", "app.name": "Cider", - "date.format": "${y}åš´${m}月${d}æ—Ĩ", - - // Dialogs "dialog.cancel": "ã‚­ãƒŖãƒŗã‚ģãƒĢ", "dialog.ok": "OK", - - // Notification "notification.updatingLibrarySongs": "ナイブナãƒĒぎ更新中...", "notification.updatingLibraryAlbums": "ナイブナãƒĒぎ更新中...", "notification.updatingLibraryArtists": "ナイブナãƒĒぎ更新中...", - - // Terms - "term.appleMusic": "Apple Music", // Follows brand term - "term.applePodcasts": "Apple Podcasts", // Follows brand term - "term.itunes": "iTunes", // Follows brand term - "term.github": "GitHub", // Follows brand term - "term.discord": "Discord", // Follows brand term + "term.appleMusic": "Apple Music", + "term.applePodcasts": "Apple Podcasts", + "term.itunes": "iTunes", + "term.github": "GitHub", + "term.discord": "Discord", "term.learnMore": "čŠŗã—ã„æƒ…å ą", "term.accountSettings": "ã‚ĸã‚Ģã‚Ļãƒŗãƒˆč¨­åŽš", "term.logout": "ã‚ĩã‚¤ãƒŗã‚ĸã‚Ļト", @@ -63,6 +53,7 @@ "term.sortBy.genre": "ã‚¸ãƒŖãƒŗãƒĢ", "term.sortBy.releaseDate": "配äŋĄé–‹å§‹æ—Ĩ", "term.sortBy.duration": "時間", + "term.sortBy.dateAdded": "čŋŊ加æ—Ĩ", "term.sortOrder": "ä¸Ļずæ›ŋえ", "term.sortOrder.ascending": "昇順", "term.sortOrder.descending": "降順", @@ -105,7 +96,7 @@ "term.language": "言čĒž", "term.noLyrics": "ロãƒŧãƒ‡ã‚Ŗãƒŗã‚°ã€‚ã€‚ / æ­ŒčŠžãŒčĻ‹ã¤ã‹ã‚‰ãĒい / 器æĨŊæ›˛.", "term.copyright": "著äŊœæ¨Š", - "term.rightsReserved": "All Rights Reserved.", // Translation does not exist in Japanese + "term.rightsReserved": "All Rights Reserved.", "term.sponsor": "ã‚šãƒãƒŗã‚ĩãƒŧãĢãĒりぞしょう", "term.ciderTeam": "Cider チãƒŧム", "term.developer": "開į™ē者", @@ -113,13 +104,16 @@ "term.contributors": "č˛ĸįŒŽč€…", "term.equalizer": "ã‚¤ã‚ŗãƒŠã‚¤ã‚ļãƒŧ", "term.reset": "ãƒĒã‚ģット", - "term.tracks": "æ›˛", // Assume x amount of tracks. e.g. 50 tracks + "term.track": { + "one": "æ›˛", + "other": "æ›˛" + }, + "term.tracks": "æ›˛", "term.videos": "ビデã‚Ē", "term.menu": "ãƒĄãƒ‹ãƒĨãƒŧ", "term.check": "įĸēčĒ", - "term.aboutArtist": "{{artistName}}ãĢついãĻ", // e.g. 'About Doja Cat' - - // Home + "term.aboutArtist": "{{artistName}}ãĢついãĻ", + "term.version": "バãƒŧã‚¸ãƒ§ãƒŗ", "home.title": "ホãƒŧム", "home.recentlyPlayed": "最čŋ‘ãŽå†į”Ÿ", "home.recentlyAdded": "最čŋ‘čŋŊåŠ ã—ãŸé …į›Ž", @@ -128,14 +122,10 @@ "home.madeForYou": "あãĒたãĢおすすめ", "home.friendsListeningTo": "å‹é”ãŒč´ã„ãĻいる", "home.followedArtists": "フりロãƒŧしãĻいるã‚ĸãƒŧãƒ†ã‚Ŗã‚šãƒˆ", - - // Errors "error.appleMusicSubRequired": "Apple Musicぎã‚ĩブ゚クãƒĒãƒ—ã‚ˇãƒ§ãƒŗãŒåŋ…čĻã§ã™ã€‚", "error.connectionError": "Apple MusicãĢæŽĨįļšã§ããžã›ã‚“。", "error.noResults": "čĻ‹ã¤ã‹ã‚Šãžã›ã‚“ã§ã—ãŸ", "error.noResults.description": "もう一åēĻおčŠĻしください。", - - //Podcasts "podcast.followOnCider": "Ciderでフりロãƒŧ", "podcast.followedOnCider": "フりロãƒŧ中", "podcast.subscribeOnItunes": "iTunesでčŗŧčĒ­", @@ -144,8 +134,6 @@ "podcast.episodes": "į•Ēįĩ„", "podcast.playEpisode": "å†į”Ÿ", "podcast.website": "Podcast ã‚Ļェブ", - - // Actions "action.addToLibrary": "ナイブナãƒĒãĢčŋŊ加", "action.addToLibrary.success": "ナイブナãƒĒãĢčŋŊ加されぞした", "action.addToLibrary.error": "ナイブナãƒĒへぎčŋŊ加ãĢå¤ąæ•—ã—ãžã—ãŸ", @@ -190,13 +178,19 @@ "action.tray.show": "襨į¤ē", "action.update": "ã‚ĸップデãƒŧト", "action.copy": "ã‚ŗãƒ”ãƒŧ", - "action.newpreset": "ニãƒĨãƒŧプãƒĒã‚ģット", // Equalizer Preset - "action.deletepreset": "プãƒĒã‚ģットを削除", // Equalizer Preset - - // Settings - Audio + "action.newpreset": "ニãƒĨãƒŧプãƒĒã‚ģット", + "action.deletepreset": "プãƒĒã‚ģットを削除", + "settings.header.general": "一čˆŦ", + "settings.header.general.description": "Ciderぎ一čˆŦč¨­åŽš", + "settings.option.general.language.main": "ãƒĄã‚¤ãƒŗ", + "settings.option.general.language.fun": "č’ã‚‰ã—", + "settings.option.general.language.unsorted": "æœĒåˆ†éĄž", + "settings.option.general.updateCider": "Cider 更新", "settings.header.audio": "ã‚Ēãƒŧãƒ‡ã‚Ŗã‚Ē", "settings.header.audio.description": "Ciderぎã‚Ēãƒŧãƒ‡ã‚Ŗã‚Ēč¨­åŽš", - "settings.option.audio.quality": "韺čŗĒ", // Dropdown + "settings.option.audio.volumeStep": "éŸŗé‡čĒŋ整ぎ゚テップ", + "settings.option.audio.maxVolume": "æœ€å¤§éŸŗé‡", + "settings.option.audio.quality": "韺čŗĒ", "settings.header.audio.quality.hireslossless": "ハイãƒŦゞロ゚ãƒŦ゚", "settings.header.audio.quality.hireslossless.description": "(æœ€å¤§č§ŖåƒåēĻ 24 ビットīŧ192 kHz)", "settings.header.audio.quality.lossless": "ロ゚ãƒŦ゚", @@ -205,81 +199,65 @@ "settings.header.audio.quality.high": "éĢ˜å“čŗĒ", "settings.header.audio.quality.standard": "éĢ˜åŠšįŽ‡", "settings.header.audio.quality.auto": "č‡Ē動", - "settings.option.audio.seamlessTransition": "æ›˛é–“ãĒã—ã§å†į”Ÿ", // Toggle - "settings.option.audio.enableAdvancedFunctionality": "å…ˆé€˛įš„ãĒ抟čƒŊ", // Toggle - "settings.option.audio.enableAdvancedFunctionality.description": "AudioContext 抟čƒŊを有劚ãĢすると、ã‚Ēãƒŧãƒ‡ã‚Ŗã‚Ēノãƒŧマナイã‚ē、įŠē間ã‚Ēãƒŧãƒ‡ã‚Ŗã‚Ēã€ã‚¤ã‚ŗãƒŠã‚¤ã‚ļãƒŧãĒおぎ抟čƒŊをäŊŋį”¨ã§ããžã™ãŒã€éŸŗãŒé€”åˆ‡ã‚Œã‚‹ã‹ã‚‚ã—ã‚Œãžã›ã‚“ã€‚", // Toggle - "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider AEPâ„ĸī¸", // Toggle - "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "åœ§į¸ŽéŸŗæēã‚’éĢ˜č§ŖåƒåēĻãĢå‡Ļį†ã™ã‚‹ã“ã¨ãĢã‚ˆãŖãĻ、ロ゚ãƒŦã‚šį›¸åŊ“ãŽéŸŗčŗĒãĢ向上させぞす。", // Toggle - "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "AEPぎåŧˇã•", // Toggle + "settings.option.audio.seamlessTransition": "æ›˛é–“ãĒã—ã§å†į”Ÿ", + "settings.option.audio.enableAdvancedFunctionality": "å…ˆé€˛įš„ãĒ抟čƒŊ", + "settings.option.audio.enableAdvancedFunctionality.description": "AudioContext 抟čƒŊを有劚ãĢすると、ã‚Ēãƒŧãƒ‡ã‚Ŗã‚Ēノãƒŧマナイã‚ē、įŠē間ã‚Ēãƒŧãƒ‡ã‚Ŗã‚Ēã€ã‚¤ã‚ŗãƒŠã‚¤ã‚ļãƒŧãĒおぎ抟čƒŊをäŊŋį”¨ã§ããžã™ãŒã€éŸŗãŒé€”åˆ‡ã‚Œã‚‹ã‹ã‚‚ã—ã‚Œãžã›ã‚“ã€‚", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processorâ„ĸī¸", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "åœ§į¸ŽéŸŗæēã‚’éĢ˜č§ŖåƒåēĻãĢå‡Ļį†ã™ã‚‹ã“ã¨ãĢã‚ˆãŖãĻ、ロ゚ãƒŦã‚šį›¸åŊ“ãŽéŸŗčŗĒãĢ向上させぞす。", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAPぎåŧˇã•", "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Changes the strength of the processing done to the audio. (Aggressive may yield undesirable results)", "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "標æē–", "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "é̘", - "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "ã‚Ēãƒŧãƒ‡ã‚Ŗã‚Ēノãƒŧマナイã‚ē", // Toggle + "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "ã‚Ēãƒŧãƒ‡ã‚Ŗã‚Ēノãƒŧマナイã‚ē", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "さぞざぞãĒæ›˛ãŽéŸŗé‡ã‚’å‡ä¸€ãĢã—ã€ã‚ˆã‚Šæ•´ãŖãŸéŸŗã‚’æĨŊしめるようãĢする抟čƒŊです。", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "ã‚Ēãƒŧãƒ‡ã‚Ŗã‚ĒįŠē間化", // Toggle + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "ã‚Ēãƒŧãƒ‡ã‚Ŗã‚ĒįŠē間化", "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "ã‚Ēãƒŧãƒ‡ã‚Ŗã‚ĒをįŠē間ãĢåˆ†æ•Ŗã•ã›ã‚‹æŠŸčƒŊです。 (ドãƒĢビãƒŧã‚ĸトãƒĸ゚ではありぞせん)", - - // Settings - Visual "settings.header.visual": "ビジãƒĨã‚ĸãƒĢ", "settings.header.visual.description": "CiderぎビジãƒĨã‚ĸãƒĢč¨­åŽš", - "settings.option.visual.windowBackgroundStyle": "ã‚ĸプãƒĒã‚Ļã‚¤ãƒŗãƒ‰ã‚ĻãŽčƒŒæ™¯ã‚šã‚ŋイãƒĢ", // Toggle + "settings.option.visual.windowBackgroundStyle": "ã‚ĸプãƒĒã‚Ļã‚¤ãƒŗãƒ‰ã‚ĻãŽčƒŒæ™¯ã‚šã‚ŋイãƒĢ", "settings.header.visual.windowBackgroundStyle.none": "ãĒし", "settings.header.visual.windowBackgroundStyle.artwork": "ã‚ĸãƒŧトワãƒŧク", - "settings.option.visual.animatedArtwork": "ã‚ĸãƒ‹ãƒĄãƒŧã‚ˇãƒ§ãƒŗã‚ĸãƒŧトワãƒŧク", // Dropdown + "settings.option.visual.animatedArtwork": "ã‚ĸãƒ‹ãƒĄãƒŧã‚ˇãƒ§ãƒŗã‚ĸãƒŧトワãƒŧク", "settings.header.visual.animatedArtwork.always": "常ãĢ襨į¤ē", "settings.header.visual.animatedArtwork.limited": "ã‚ĸãƒŧãƒ†ã‚Ŗã‚šãƒˆãƒšãƒŧジぎãŋ襨į¤ē", "settings.header.visual.animatedArtwork.disable": "ã‚Ēフ", - "settings.option.visual.animatedArtworkQuality": "ã‚ĸãƒ‹ãƒĄãƒŧã‚ˇãƒ§ãƒŗã‚ĸãƒŧトワãƒŧクぎ品čŗĒ", // Dropdown + "settings.option.visual.animatedArtworkQuality": "ã‚ĸãƒ‹ãƒĄãƒŧã‚ˇãƒ§ãƒŗã‚ĸãƒŧトワãƒŧクぎ品čŗĒ", "settings.header.visual.animatedArtworkQuality.low": "äŊŽ", "settings.header.visual.animatedArtworkQuality.medium": "中", "settings.header.visual.animatedArtworkQuality.high": "é̘", "settings.header.visual.animatedArtworkQuality.veryHigh": "čļ…é̘", "settings.header.visual.animatedArtworkQuality.extreme": "最é̘", - "settings.option.visual.animatedWindowBackground": "ã‚ĸプãƒĒã‚Ļã‚Ŗãƒŗãƒ‰ã‚ĻãŽčƒŒæ™¯ã‚’ã‚ĸãƒ‹ãƒĄãƒŧã‚ˇãƒ§ãƒŗåŒ–", // Toggle - "settings.option.visual.hardwareAcceleration": "ハãƒŧドã‚Ļェã‚ĸ ã‚ĸクã‚ģナãƒŦãƒŧã‚ˇãƒ§ãƒŗ", // Dropdown + "settings.option.visual.animatedWindowBackground": "ã‚ĸプãƒĒã‚Ļã‚Ŗãƒŗãƒ‰ã‚ĻãŽčƒŒæ™¯ã‚’ã‚ĸãƒ‹ãƒĄãƒŧã‚ˇãƒ§ãƒŗåŒ–", + "settings.option.visual.hardwareAcceleration": "ハãƒŧドã‚Ļェã‚ĸ ã‚ĸクã‚ģナãƒŦãƒŧã‚ˇãƒ§ãƒŗ", "settings.option.visual.hardwareAcceleration.description": "ã‚ĸプãƒĒを再čĩˇå‹•するåŋ…čĻãŒã‚ã‚Šãžã™", "settings.header.visual.hardwareAcceleration.default": "æ—ĸ厚", "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", - // Refer to term.disabled for the disabled option - "settings.option.visual.showPersonalInfo": "ãƒ—ãƒ­ãƒ•ã‚ŖãƒŧãƒĢã‚’čĄ¨į¤ē", // Toggle - - // Settings - General (Reserved) - "settings.header.general": "一čˆŦ", - "settings.header.general.description": "Ciderぎ一čˆŦč¨­åŽš", - - // Settings - Lyrics + "settings.header.visual.theme": "テãƒŧマ", + "settings.option.visual.theme.default": "Cider", + "settings.option.visual.theme.dark": "ダãƒŧク", + "settings.option.visual.showPersonalInfo": "ãƒ—ãƒ­ãƒ•ã‚ŖãƒŧãƒĢã‚’čĄ¨į¤ē", "settings.header.lyrics": "æ­ŒčŠž", "settings.header.lyrics.description": "æ­ŒčŠžãŽčĄ¨į¤ēč¨­åŽš", - "settings.option.lyrics.enableMusixmatch": "Musixmatchã§æ­ŒčŠžã‚’čĄ¨į¤ēする", // Toggle - "settings.option.lyrics.enableMusixmatchKaraoke": "ã‚Ģナã‚Ēã‚ąãƒĸãƒŧドを有劚ãĢする (Musixmatchぎãŋ)", // Toggle - "settings.option.lyrics.musixmatchPreferredLanguage": "æ­ŒčŠžãŽå„Ēå…ˆč¨€čĒž", // Dropdown - "settings.option.lyrics.enableYoutubeLyrics": "YouTubeãŽæ­ŒčŠžã‚’ãƒŸãƒĨãƒŧジックビデã‚ĒãĢäŊŋį”¨ã™ã‚‹", // Toggle - - // Settings - Connectivity + "settings.option.lyrics.enableMusixmatch": "Musixmatchã§æ­ŒčŠžã‚’čĄ¨į¤ēする", + "settings.option.lyrics.enableMusixmatchKaraoke": "ã‚Ģナã‚Ēã‚ąãƒĸãƒŧドを有劚ãĢする (Musixmatchぎãŋ)", + "settings.option.lyrics.musixmatchPreferredLanguage": "æ­ŒčŠžãŽå„Ēå…ˆč¨€čĒž", + "settings.option.lyrics.enableYoutubeLyrics": "YouTubeãŽæ­ŒčŠžã‚’ãƒŸãƒĨãƒŧジックビデã‚ĒãĢäŊŋį”¨ã™ã‚‹", "settings.header.connectivity": "ã‚ĸプãƒĒã¨é€Ŗæē", "settings.header.connectivity.description": "CiderãŽé€Ŗæēč¨­åŽš", - "settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown - // Refer to term.disabled for the disabled option + "settings.option.connectivity.discordRPC": "Discord Rich Presence", "settings.header.connectivity.discordRPC.cider": "'Cider' ã‚’čĄ¨į¤ēする", "settings.header.connectivity.discordRPC.appleMusic": "'Apple Music' ã‚’čĄ¨į¤ēする", - "settings.option.connectivity.discordRPC.clearOnPause": "一時停æ­ĸ時ãĢDiscord Rich PresenceをクãƒĒã‚ĸする", // Toggle - "settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling", // Option to Connect + "settings.option.connectivity.discordRPC.clearOnPause": "一時停æ­ĸ時ãĢDiscord Rich PresenceをクãƒĒã‚ĸする", + "settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling", "settings.option.connectivity.lastfmScrobble.delay": "LastFM Scrobble Delay (%)", "settings.option.connectivity.lastfmScrobble.nowPlaying": "Enable LastFM Now Playing", "settings.option.connectivity.lastfmScrobble.removeFeatured": "Remove featuring artists from song title (LastFM)", - // Refer to term.connect for the connect button - - // Settings - General - Update Cider - "settings.option.general.updateCider": "Cider 更新", // Button - - // Settings - Experimental "settings.header.experimental": "čŠĻé¨“įš„ãĒ抟čƒŊ", "settings.header.experimental.description": "開į™ēä¸­ãŽåŽŸé¨“įš„ãĒ抟čƒŊは不厌全で不厉厚である可čƒŊ性がありぞす", - "settings.option.experimental.compactUI": "ã‚ŗãƒŗãƒ‘ã‚¯ãƒˆã‚¤ãƒŗã‚ŋãƒŧフェãƒŧ゚", // Toggle - "settings.option.experimental.close_button_hide": "「閉じる」ボã‚ŋãƒŗã§ã‚ĸプãƒĒを隠しぞす", // Dropdown - - // Refer to term.disabled & term.enabled - // Spatialization Menu + "settings.option.experimental.compactUI": "ã‚ŗãƒŗãƒ‘ã‚¯ãƒˆã‚¤ãƒŗã‚ŋãƒŧフェãƒŧ゚", + "settings.option.window.close_button_hide": "「閉じる」ボã‚ŋãƒŗã§ã‚ĸプãƒĒを隠しぞす", + "settings.option.experimental.copy_log": "ãƒ­ã‚°ã‚’ã‚ŗãƒ”ãƒŧする", + "settings.option.experimental.inline_playlists": "プãƒŦイãƒĒã‚šãƒˆã‚’ã‚¤ãƒŗãƒŠã‚¤ãƒŗã§čĄ¨į¤ē", "spatial.spatialProperties": "įŠēé–“åŒ–ãŽãƒ—ãƒ­ãƒ‘ãƒ†ã‚Ŗ", "spatial.width": "åš…", "spatial.height": "éĢ˜ã•", @@ -298,14 +276,8 @@ "spatial.down": "下", "spatial.listener": "ãƒĒ゚ナãƒŧ", "spatial.audioSource": "韺æē", - - // Settings - Unfinished "settings.header.unfinished": "æœĒ厌成", - - // Web Remote "remote.web.title": "Cider ãƒĒãƒĸãƒŧト", "remote.web.description": "QRã‚ŗãƒŧドをäŊŋį”¨ã—ãĻ、Ciderと゚マãƒŧãƒˆãƒ•ã‚Šãƒŗã‚’ãƒšã‚ĸãƒĒãƒŗã‚°ã™ã‚‹", - - //About "about.thanks": "Cider Collective とご協力いただいたč˛ĸįŒŽč€…æ§˜ãĢ感čŦį”ŗã—上げぞす。" } \ No newline at end of file diff --git a/src/i18n/ko_KR.json b/src/i18n/ko_KR.json new file mode 100644 index 00000000..4c8aea89 --- /dev/null +++ b/src/i18n/ko_KR.json @@ -0,0 +1,395 @@ +{ + "i18n.languageName": "한ęĩ­ė–´ (KR)", + "i18n.languageNameEnglish": "Korean (KR)", + "i18n.category": "main", + "i18n.authors": "@Hazealign @iodes", + "app.name": "Cider", + "date.format": "${y}. ${m}. ${d}", + "dialog.cancel": "ėˇ¨ė†Œ", + "dialog.ok": "í™•ė¸", + "notification.updatingLibrarySongs": "ëŧė´ë¸ŒëŸŦëĻŦ 노래 ė—…ë°ė´íŠ¸ 뤑...", + "notification.updatingLibraryAlbums": "ëŧė´ë¸ŒëŸŦëĻŦ ė•¨ë˛” ė—…ë°ė´íŠ¸ 뤑...", + "notification.updatingLibraryArtists": "ëŧė´ë¸ŒëŸŦëĻŦ ė•„í‹°ėŠ¤íŠ¸ ė—…ë°ė´íŠ¸ 뤑...", + "term.appleInc": "Apple Inc.", + "term.appleMusic": "Apple Music", + "term.applePodcasts": "Apple Podcasts", + "term.itunes": "iTunes", + "term.github": "GitHub", + "term.discord": "Discord", + "term.learnMore": "더 ė•Œė•„ëŗ´ę¸°", + "term.accountSettings": "ęŗ„ė • 네렕", + "term.logout": "ëĄœęˇ¸ė•„ė›ƒ", + "term.login": "ëĄœęˇ¸ė¸", + "term.about": "ė •ëŗ´", + "term.privateSession": "ę°œė¸ ė„¸ė…˜", + "term.queue": "ëŒ€ę¸°ė—´", + "term.history": "기록", + "term.search": "ę˛€ėƒ‰", + "term.library": "ëŧė´ë¸ŒëŸŦëĻŦ", + "term.listenNow": "ė§€ę¸ˆ ë“Ŗę¸°", + "term.browse": "둘ëŸŦëŗ´ę¸°", + "term.radio": "ëŧë””ė˜¤", + "term.recentlyAdded": "ėĩœęˇŧ ėļ”ę°€ëœ 항ëĒŠ", + "term.songs": "노래", + "term.albums": "ė•¨ë˛”", + "term.artists": "ė•„í‹°ėŠ¤íŠ¸", + "term.podcasts": "팟ėēėŠ¤íŠ¸", + "term.playlists": "í”Œë ˆė´ëĻŦėŠ¤íŠ¸", + "term.playlist": "í”Œë ˆė´ëĻŦėŠ¤íŠ¸", + "term.newPlaylist": "ėƒˆëĄœėš´ í”Œë ˆė´ëĻŦėŠ¤íŠ¸", + "term.newPlaylistFolder": "ėƒˆëĄœėš´ í”Œë ˆė´ëĻŦėŠ¤íŠ¸ 폴더", + "term.createNewPlaylist": "ėƒˆëĄœėš´ í”Œë ˆė´ëĻŦėŠ¤íŠ¸ 만들기", + "term.createNewPlaylistFolder": "ėƒˆëĄœėš´ í”Œë ˆė´ëĻŦėŠ¤íŠ¸ 폴더 만들기", + "term.deletePlaylist": "ė •ë§ í”Œë ˆė´ëĻŦėŠ¤íŠ¸ëĨŧ ė‚­ė œí•˜ė‹œę˛ ėŠĩ니까?", + "term.play": "ėžŦėƒ", + "term.pause": "ėŧė‹œ ė •ė§€", + "term.previous": "ė´ė „", + "term.next": "ë‹¤ėŒ", + "term.shuffle": "ė…”í”Œ", + "term.repeat": "반ëŗĩ", + "term.volume": "ëŗŧëĨ¨", + "term.mute": "ėŒė†Œęą°", + "term.unmute": "ėŒė†Œęą° í•´ė œ", + "term.share": "ęŗĩ뜠", + "term.share.success": "클ëĻŊëŗ´ë“œė— ëŗĩė‚Ŧ됨", + "term.settings": "네렕", + "term.seeAll": "ëĒ¨ë‘ ëŗ´ę¸°", + "term.sortBy": "ė •ë Ŧ ë°Šė‹", + "term.sortBy.album": "ė•¨ë˛”", + "term.sortBy.artist": "ė•„í‹°ėŠ¤íŠ¸", + "term.sortBy.name": "ė´ëĻ„", + "term.sortBy.genre": "ėžĨëĨ´", + "term.sortBy.releaseDate": "ėļœė‹œėŧ", + "term.sortBy.duration": "ėžŦėƒė‹œę°„", + "term.sortBy.dateAdded": "ėļ”ę°€ëœ ë‚ ė§œ", + "term.sortOrder": "ã„ą-ㅎ", + "term.sortOrder.ascending": "똤ëĻ„ė°¨ėˆœ", + "term.sortOrder.descending": "내ëĻŧ밍눜", + "term.viewAs": "í‘œė‹œ ë°Šė‹", + "term.viewAs.coverArt": "ėģ¤ë˛„ė•„íŠ¸", + "term.viewAs.list": "ëĒŠëĄ", + "term.size": "íŦ기", + "term.size.normal": "ėŧ반", + "term.size.compact": "간단히", + "term.enable": "í™œė„ąí™”", + "term.disable": "ëš„í™œė„ąí™”", + "term.enabled": "í™œė„ąí™”", + "term.disabled": "ëš„í™œė„ąí™”", + "term.connect": "뗰枰", + "term.connecting": "뗰枰 뤑", + "term.disconnect": "뗰枰 끊김", + "term.authed": "ė¸ėĻë¨", + "term.confirm": "ėŠšė¸í•˜ė‹œę˛ ėŠĩ니까?", + "term.more": "더", + "term.less": "렁枌", + "term.showMore": "더 ëŗ´ę¸°", + "term.showLess": "렁枌 ëŗ´ę¸°", + "term.topSongs" : "ė¸ę¸°ęŗĄ", + "term.latestReleases": "ėĩœė‹ ęŗĄ", + "term.time.added": "ėļ”ę°€", + "term.time.released": "발매ėŧ", + "term.time.updated": "ė—…ë°ė´íŠ¸ėŧ", + "term.time.days": "ėŧ", + "term.time.day": "ėŧ", + "term.time.hours": "ė‹œę°„", + "term.time.hour": "ė‹œę°„", + "term.time.minutes": "ëļ„", + "term.time.minute": "ëļ„", + "term.time.seconds": "봈", + "term.time.second": "봈", + "term.fullscreenView": "렄랴 화면", + "term.defaultView": "ę¸°ëŗ¸ 화면", + "term.audioSettings": "ė˜¤ë””ė˜¤ 네렕", + "term.audioControls": "ëŗŧëĨ¨ ė œė–´", + "term.clearAll": "ëš„ėš°ę¸°", + "term.recentStations": "ėĩœęˇŧ ėŠ¤í…Œė´ė…˜", + "term.language": "떏떴", + "term.funLanguages": "ėžŦë¯¸ėžˆëŠ”", + "term.noLyrics": "ëļˆëŸŦė˜¤ëŠ” 뤑... / 가ė‚ŦëĨŧ ė°žė„ 눘 ė—†ėŠĩ니다./ ė—°ėŖŧęŗĄ", + "term.copyright": "Copyright", + "term.rightsReserved": "All Rights Reserved.", + "term.sponsor": "í”„ëĄœė íŠ¸ í›„ė›í•˜ę¸°", + "term.ciderTeam": "Cider 팀", + "term.developer": "ę°œë°œėž", + "term.socialTeam": "ė†Œė…œ 팀", + "term.socials": "ė†Œė…œ", + "term.contributors": "기ė—Ŧėž", + "term.equalizer": "ė´í€„ëŧė´ė €", + "term.reset": "ė´ˆę¸°í™”", + "term.tracks": "트랙", + "term.track": { + "one" : "트랙", + "other" : "트랙" + }, + "term.videos": "ëš„ë””ė˜¤", + "term.menu": "메뉴", + "term.check": "í™•ė¸", + "term.aboutArtist": "{{artistName}}뗐 대하ė—Ŧ", + "term.topResult": "ėƒėœ„ 결ęŗŧ", + "term.sharedPlaylists": "ęŗĩ뜠 í”Œë ˆė´ëĻŦėŠ¤íŠ¸", + "term.people": "프로필", + "term.newpreset.name": "냈 ė´í€„ëŧė´ė € 프ëĻŦė…‹", + "term.addedpreset": "ėļ”ę°€ëœ 프ëĻŦė…‹", + "term.deletepreset.warn": "ė •ë§ëĄœ 프ëĻŦė…‹ė„ ė‚­ė œí•˜ė‹œę˛ ėŠĩ니까?", + "term.deletedpreset": "프ëĻŦė…‹ ė‚­ė œ", + "term.defaultPresets": "ę¸°ëŗ¸ 프ëĻŦė…‹", + "term.userPresets": "ė‚ŦėšŠėž 프ëĻŦė…‹", + "term.requestError": "ėš”ė˛­ė— ëŦ¸ė œę°€ ėžˆėŠĩ니다.", + "term.song.link.generate": "song.link ęŗĩ뜠 URL ę°€ė ¸ė˜¤ëŠ” 뤑...", + "term.musicVideos": "ëŽ¤ė§ ëš„ë””ė˜¤", + "term.stations": "ėŠ¤í…Œė´ė…˜", + "term.curators": "íë ˆė´í„°", + "term.appleCurators": "ė• í”Œ íë ˆė´í„°", + "term.radioShows": "ëŧë””ė˜¤ ė‡ŧ", + "term.recordLabels": "레ėŊ”드 ë ˆė´ë¸”", + "term.videoExtras": "ėļ”ę°€ ëš„ë””ė˜¤", + "term.top": "ėƒėœ„", + "term.version": "ë˛„ė „", + "term.noVideos": "발ę˛Ŧ된 ëš„ë””ė˜¤ę°€ ė—†ėŠĩ니다.", + "term.plugin": "플ëŸŦęˇ¸ė¸", + "term.pluginMenu": "플ëŸŦęˇ¸ė¸ 메뉴", + "term.pluginMenu.none": "대화형 플ëŸŦęˇ¸ė¸ė´ ė—†ėŠĩ니다.", + "term.replay": "ëĻŦí”Œë ˆė´", + "term.uniqueAlbums": "ęŗ ėœ í•œ ė•¨ë˛”", + "term.uniqueArtists": "ęŗ ėœ í•œ ė•„í‹°ėŠ¤íŠ¸", + "term.uniqueSongs": "ęŗ ėœ í•œ 노래", + "term.topArtists": "ėƒėœ„ ė•„í‹°ėŠ¤íŠ¸", + "term.listenedTo": "氐냁:", + "term.times": "번", + "term.topAlbums": "ėƒėœ„ ė•¨ë˛”", + "term.plays": "ėžŦėƒ", + "term.topGenres": "ėƒėœ„ ėžĨëĨ´", + "term.confirmLogout": "ė •ë§ëĄœ ëĄœęˇ¸ė•„ė›ƒí•˜ė‹œę˛ ėŠĩ니까?", + "home.title": "홈", + "home.recentlyPlayed": "ėĩœęˇŧ ėžŦėƒëœ 항ëĒŠ", + "home.recentlyAdded": "ėĩœęˇŧ ėļ”ę°€ëœ 항ëĒŠ", + "home.artistsFeed": "내 ė•„í‹°ėŠ¤íŠ¸ í”ŧ드", + "home.artistsFeed.noArtist": "ė•„í‹°ėŠ¤íŠ¸ëĨŧ íŒ”ëĄœėš°í•˜ëŠ´ ėĩœęˇŧ ë°œë§¤ęŗĄė´ í‘œė‹œëŠë‹ˆë‹¤.", + "home.madeForYou": "ë‚˜ë§Œė„ ėœ„í•œ ėļ”ė˛œ", + "home.friendsListeningTo": "ėšœęĩŦë“¤ė´ ë“ŖëŠ”", + "home.followedArtists": "íŒ”ëĄœėš°í•œ ė•„í‹°ėŠ¤íŠ¸", + "error.appleMusicSubRequired": "Apple Musicė€ ęĩŦë…ė„ í•„ėš”ëĄœ 합니다.", + "error.connectionError": "Apple Music뗐 ė—°ę˛°í•˜ė§€ ëĒģ했ėŠĩ니다.", + "error.noResults": "결ęŗŧ ė—†ėŒ", + "error.noResults.description": "ë‹¤ė‹œ ė‹œë„í•´ėŖŧė„¸ėš”.", + "podcast.followOnCider": "Ciderė—ė„œ íŒ”ëĄœėš°í•˜ę¸°", + "podcast.followedOnCider": "íŒ”ëĄœėš° 뤑", + "podcast.subscribeOnItunes": "iTunesė—ė„œ ęĩŦ독", + "podcast.subscribedOnItunes": "ęĩŦ독 뤑", + "podcast.itunesStore": "iTunes ėŠ¤í† ė–´", + "podcast.episodes": "ë°Šė†Ą", + "podcast.playEpisode": "ėžŦėƒ", + "podcast.website": "팟ėēėŠ¤íŠ¸ ė‚Ŧė´íŠ¸", + "action.addToLibrary": "ëŗ´ę´€í•¨ė— ėļ”ę°€", + "action.addToLibrary.success": "ëŗ´ę´€í•¨ė— ėļ”가됨", + "action.addToLibrary.error": "ëŗ´ę´€í•¨ė— ėļ”ę°€ ė‹¤íŒ¨", + "action.removeFromLibrary": "ëŗ´ę´€í•¨ė—ė„œ ė‚­ė œ", + "action.removeFromLibrary.success": "ëŗ´ę´€í•¨ė—ė„œ ė‚­ė œë¨", + "action.addToQueue": "ëŒ€ę¸°ė—´ė— ėļ”ę°€", + "action.addToQueue.success": "ëŒ€ę¸°ė—´ė— ėļ”가됨", + "action.addToQueue.error": "ëŒ€ę¸°ė—´ė— ėļ”ę°€ ė‹¤íŒ¨", + "action.removeFromQueue": "ëŒ€ę¸°ė—´ė—ė„œ ė‚­ė œ", + "action.removeFromQueue.success": "ëŒ€ę¸°ė—´ė—ė„œ ė‚­ė œë¨", + "action.removeFromQueue.error": "ëŒ€ę¸°ė—´ė—ė„œ ė‚­ė œ ė‹¤íŒ¨", + "action.createPlaylist": "ėƒˆëĄœėš´ í”Œë ˆė´ëĻŦėŠ¤íŠ¸", + "action.addToPlaylist": "í”Œë ˆė´ëĻŦėŠ¤íŠ¸ė— ėļ”ę°€...", + "action.removeFromPlaylist": "í”Œë ˆė´ëĻŦėŠ¤íŠ¸ė—ė„œ ė‚­ė œ", + "action.addToFavorites": "ė„ í˜¸í•­ëĒŠė— ėļ”ę°€", + "action.follow": "íŒ”ëĄœėš°", + "action.follow.success": "íŒ”ëĄœėš°ë¨", + "action.follow.error": "íŒ”ëĄœėš° ė‹¤íŒ¨", + "action.unfollow": "ė–¸íŒ”ëĄœėš°", + "action.unfollow.success": "ė–¸íŒ”ëĄœėš°ë¨", + "action.unfollow.error": "ė–¸íŒ”ëĄœėš° ė‹¤íŒ¨", + "action.playNext": "바로 ë‹¤ėŒė— ėžŦėƒ", + "action.playLater": "맨 ë‚˜ė¤‘ė— ėžŦėƒ", + "action.startRadio": "ėŠ¤í…Œė´ė…˜ ėƒė„ą", + "action.goToArtist": "ė•„í‹°ėŠ¤íŠ¸ ëŗ´ę¸°", + "action.goToAlbum": "ė•¨ë˛” ëŗ´ę¸°", + "action.showInPlaylist": "í”Œë ˆė´ëĻŦėŠ¤íŠ¸ė—ė„œ ëŗ´ę¸°", + "action.showInAppleMusic": "Apple Musicė—ė„œ ëŗ´ę¸°", + "action.moveToTop": "맨 ėœ„ëĄœ ė´ë™", + "action.share": "ęŗĩ뜠", + "action.rename": "ė´ëĻ„ íŽ¸ė§‘í•˜ę¸°", + "action.love": "ėĸ‹ė•„ėš”", + "action.unlove": "ėĸ‹ė•„ėš” ėˇ¨ė†Œ", + "action.dislike": "ëš„ėŠˇí•œ 항ëĒŠė˜ ė œė•ˆ ė¤„ė´ę¸°", + "action.undoDislike": "ëš„ėŠˇí•œ 항ëĒŠė˜ ė œė•ˆ ė¤„ė´ę¸° ė‹¤í–‰ ėˇ¨ė†Œ", + "action.showWebRemoteQR": "ė›š ëĻŦëĒ¨íŠ¸", + "action.playTracksNext": "${app.selectedMediaItems.length} 바로 ë‹¤ėŒė— ėžŦėƒ", + "action.playTracksLater": "${app.selectedMediaItems.length} 맨 ë‚˜ė¤‘ė— ėžŦėƒ", + "action.removeTracks": "${self.selectedItems.length} ëŒ€ę¸°ė—´ė—ė„œ ė‚­ė œ", + "action.import": "ę°€ė ¸ė˜¤ę¸°", + "action.export": "ë‚´ëŗ´ë‚´ę¸°", + "action.showAlbum": "렄랴 ė•¨ë˛” ëŗ´ę¸°", + "action.tray.minimize": "íŠ¸ë ˆė´ëĄœ ėĩœė†Œí™”", + "action.tray.quit": "ėĸ…ëŖŒ", + "action.tray.show": "í‘œė‹œ", + "action.update": "ė—…ë°ė´íŠ¸", + "action.install": "ė„¤ėš˜", + "action.copy": "ëŗĩė‚Ŧ", + "action.newpreset": "냈 프ëĻŦė…‹", + "action.deletepreset": "프ëĻŦė…‹ ė‚­ė œ", + "action.open": "뗴揰", + "action.relaunch.confirm": "CiderëĨŧ ë‹¤ė‹œ ė‹œėž‘í•˜ė‹œę˛ ėŠĩ니까?", + "settings.header.general": "ėŧ반", + "settings.header.general.description": "Ciderė˜ ėŧ반 기ëŠĨė„ ė„¤ė •í•Šë‹ˆë‹¤.", + "settings.option.general.language": "떏떴", + "settings.option.general.resumebehavior": "ėžŦ氜 ë™ėž‘", + "settings.option.general.resumebehavior.description": "ėžŦ氜 ë™ėž‘ė€ ė•ąėœŧ로 ëŒė•„ę°ˆ 때 Cider가 ė„¸ė…˜ė„ ėžŦ개하는 ë°Šë˛•ė— 똁í–Ĩė„ ė¤ë‹ˆë‹¤.", + "settings.option.general.resumebehavior.locally": "내ëļ€", + "settings.option.general.resumebehavior.locally.description": "Cider는 ė´ ėžĨėš˜ė—ė„œ ë§ˆė§€ë§‰ ė„¸ė…˜ė„ ėžŦ개합니다.", + "settings.option.general.resumebehavior.history": "기록", + "settings.option.general.resumebehavior.history.description": "Cider는 ėžĨėš˜ ė „ë°˜ė— ęą¸ėšœ ëĒ¨ë“  Apple Music ę¸°ëĄė˜ ë§ˆė§€ë§‰ 노래ëĨŧ ëŒ€ę¸°ė—´ė— ėļ”ę°€í•Šë‹ˆë‹¤.", + "settings.option.general.language.main": "떏떴", + "settings.option.general.language.fun": "ėžŦ미ëĨŧ ėœ„í•œ 떏떴", + "settings.option.general.language.unsorted": "미ëļ„ëĨ˜", + "settings.option.general.updateCider": "Cider ė—…ë°ė´íŠ¸", + "settings.option.general.updateCider.branch": "Cider ė—…ë°ė´íŠ¸ ë¸Œëžœėš˜", + "settings.option.general.updateCider.branch.description": "CiderëĨŧ ė—…ë°ė´íŠ¸í•  ë¸Œëžœėš˜ ė„ íƒ", + "settings.option.general.updateCider.branch.main": "ė•ˆė •ė ė¸ ë˛„ė „", + "settings.option.general.updateCider.branch.develop": "개발 ë˛„ė „", + "settings.notyf.updateCider.update-not-available": "ė—…ë°ė´íŠ¸ ė—†ėŒ", + "settings.notyf.updateCider.update-downloaded": "ė—…ë°ė´íŠ¸ę°€ ë‹¤ėš´ëĄœë“œë˜ė—ˆėŠĩ니다. ė ėšŠí•˜ë ¤ëŠ´ ë‹¤ė‹œ ė‹œėž‘í•˜ė„¸ėš”.", + "settings.notyf.updateCider.update-error": "Cider ė—…ë°ė´íŠ¸ 똤ëĨ˜", + "settings.notyf.updateCider.update-timeout": "ė—…ë°ė´íŠ¸ ė‹œę°„ 봈ęŗŧ", + "settings.header.audio": "ė˜¤ë””ė˜¤", + "settings.header.audio.description": "Ciderė˜ ė˜¤ë””ė˜¤ 기ëŠĨė„ ė„¤ė •í•Šë‹ˆë‹¤.", + "settings.option.audio.volumeStep": "ëŗŧëĨ¨ ë‹¨ęŗ„", + "settings.option.audio.maxVolume": "ėĩœëŒ€ ëŗŧëĨ¨", + "settings.option.audio.quality": "ė˜¤ë””ė˜¤ ėŒė§ˆ", + "settings.header.audio.quality.hireslossless": "ęŗ í•´ėƒë„ ëŦ´ė†ė‹¤", + "settings.header.audio.quality.hireslossless.description": "ėĩœëŒ€ 24비트/192 kHz", + "settings.header.audio.quality.lossless": "ëŦ´ė†ė‹¤", + "settings.header.audio.quality.lossless.description": "ėĩœëŒ€ 24비트/48 kHz", + "settings.header.audio.quality.high": "ęŗ í’ˆė§ˆ", + "settings.header.audio.quality.high.description": "256 kbps", + "settings.header.audio.quality.standard": "í‘œė¤€", + "settings.header.audio.quality.standard.description": "64 kbps", + "settings.option.audio.seamlessTransition": "íŦëĄœėŠ¤íŽ˜ė´ë“œ 기ëŠĨ", + "settings.option.audio.enableAdvancedFunctionality": "溠揉 기ëŠĨ í™œė„ąí™”", + "settings.option.audio.enableAdvancedFunctionality.description": "AudioContext 기ëŠĨė„ ė‚ŦėšŠí•˜ë„ëĄ ė„¤ė •í•˜ëŠ´ ė˜¤ë””ė˜¤ 노멀ëŧė´ėψ, ė´í€„ëŧė´ė € 및 비ėŖŧė–ŧëŧė´ė €ė™€ ę°™ė€ 확ėžĨ된 ė˜¤ë””ė˜¤ 기ëŠĨė„ ė‚ŦėšŠí•  눘 ėžˆė§€ë§Œ ėŧëļ€ ė‹œėŠ¤í…œė—ė„œëŠ” ė˜¤ë””ė˜¤ ëŠęš€ė´ ë°œėƒí•  눘 ėžˆėŠĩ니다.", + "settings.option.audio.audioLab": "Cider ė˜¤ë””ė˜¤ ė‹¤í—˜ė‹¤", + "settings.option.audio.audioLab.description": "CiderëĨŧ ėœ„í•´ ėžė˛´ 개발한 ë‹¤ė–‘í•œ ė˜¤ë””ė˜¤ 효ęŗŧėž…ë‹ˆë‹¤.", + "settings.warn.audioLab.withoutAF": "Cider ė˜¤ë””ė˜¤ ė‹¤í—˜ė‹¤ė„ í™œė„ąí™”í•˜ë ¤ëŠ´ AudioContext(溠揉 기ëŠĨ)가 í•„ėš”í•Šë‹ˆë‹¤.", + "settings.option.audio.enableAdvancedFunctionality.analogWarmth": "ė•„ë‚ ëĄœęˇ¸ 따ëœģ함", + "settings.option.audio.enableAdvancedFunctionality.analogWarmth.description": "Korg Nutube 6P1ė„ ëĒ¨ë¸ëĄœ 한 ė•„ë‚ ëĄœęˇ¸ 따ëœģí•¨ė„ ė‹œëŽŦë ˆė´ė…˜í•Šë‹ˆë‹¤.", + "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity": "ė•„ë‚ ëĄœęˇ¸ 따ëœģ함 강도", + "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.description": "ė•„ë‚ ëĄœęˇ¸ 따ëœģ함 ëĒ¨ë“ˆė˜ 강도ëĨŧ ëŗ€ę˛Ŋ합니다.", + "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth": "ëļ€ë“œëŸŦ뛀", + "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm": "따ëœģ함", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processorâ„ĸī¸", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "ëĒ¨ë“  ė†ŒëĻŦëĨŧ ë”ėšą 풍ëļ€í•˜ęŗ  ėƒėƒí•˜ę˛Œ 만드는 ėŒí–Ĩ ė‹ŦëĻŦí•™ė  í–Ĩėƒėž…ë‹ˆë‹¤.", + "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP는 ęŗĩę°„í™”ė™€ í˜¸í™˜ë˜ė§€ ė•ŠėŠĩ니다. ęŗ„ė†í•˜ë ¤ëŠ´ ęŗĩ간화ëĨŧ ëš„í™œė„ąí™”í•˜ė‹­ė‹œė˜¤.", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP 강도", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "ė˜¤ë””ė˜¤ 래ëĻŦ 강도ëĨŧ ëŗ€ę˛Ŋ합니다. (ė ęˇšė ėœŧ로 네렕 ė‹œ ë°”ëžŒė§í•˜ė§€ ė•Šė€ 결ęŗŧëĨŧ ė´ˆëž˜í•  눘 ėžˆėŠĩ니다.)", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "í‘œė¤€", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "ė ęˇšė ", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "ė˜¤ë””ė˜¤ 노멀ëŧė´ėψ", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "ę°œëŗ„ íŠ¸ëž™ė˜ ėĩœëŒ€ ëŗŧëĨ¨ė„ 노멀ëŧė´ėĻˆí•˜ė—Ŧ ëŗ´ë‹¤ ꡠėŧ한 랭뎍 ę˛Ŋí—˜ė„ 렜ęŗĩ합니다.", + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "ė˜¤ë””ė˜¤ ęŗĩ간화", + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "ė˜¤ë””ė˜¤ëĨŧ ęŗĩę°„í™”í•˜ęŗ  ë”ėšą ė‚ŧ밍뛐렁ėœŧ로 ë§Œë“¤ė–´ė¤ë‹ˆë‹¤. (및溠: ė´ 기ëŠĨė€ Dolby Atmos가 ė•„ë‹™ë‹ˆë‹¤.)", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Cider 튜닝된 ęŗĩ간화", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "ė‚Ŧė „ ėĄ°ė •ëœ ęŗĩ간화 효ęŗŧ는 ė˜¤ë””ė˜¤ ęŗĩę°„í™”ė˜ ė‚ŦėšŠėž ė •ė˜ ė„¤ė •ė„ ëš„í™œė„ąí™”í•Šë‹ˆë‹¤. ė‚ŦėšŠí•˜ę¸° ėœ„í•´ė„œëŠ” ė˜¤ë””ė˜¤ ęŗĩ간화가 í•„ėš”í•Šë‹ˆë‹¤.", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Cider ęŗĩ간화 프로필", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description": "ęŗĩ간화 튜닝 í”„ëĄœí•„ė„ ëŗ€ę˛Ŋ합니다. (ė•ą ë‹¤ė‹œ ė‹œėž‘ í•„ėš”)", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard": "í‘œė¤€", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile": "ė˜¤ë””ė˜¤ ė• í˜¸ę°€", + "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "ęŗĩ간화는 CAP뙀 í˜¸í™˜ë˜ė§€ ė•ŠėŠĩ니다. ęŗ„ė†í•˜ë ¤ëŠ´ CAPëĨŧ ëš„í™œė„ąí™”í•˜ė‹­ė‹œė˜¤.", + "settings.header.visual": "ė‹œę°", + "settings.header.visual.description": "Ciderė˜ ė‹œę° 기ëŠĨė„ ė„¤ė •í•Šë‹ˆë‹¤.", + "settings.option.visual.windowBackgroundStyle": "ė°Ŋ ë°°ę˛Ŋ ėŠ¤íƒ€ėŧ", + "settings.header.visual.windowBackgroundStyle.none": "ė—†ėŒ", + "settings.header.visual.windowBackgroundStyle.artwork": "ė•¨ë˛” í‘œė§€", + "settings.header.visual.windowBackgroundStyle.image": "ė´ë¯¸ė§€", + "settings.option.visual.animatedArtwork": "ė›€ė§ė´ëŠ” ė•¨ë˛” í‘œė§€", + "settings.header.visual.animatedArtwork.always": "í•­ėƒ í™œė„ąí™”", + "settings.header.visual.animatedArtwork.limited": "íŽ˜ė´ė§€ 및 íŠšė • 화면ėœŧ로 ė œí•œ", + "settings.header.visual.animatedArtwork.disable": "ëĒ¨ë“  ęŗŗė—ė„œ ëš„í™œė„ąí™”", + "settings.option.visual.animatedArtworkQuality": "ė›€ė§ė´ëŠ” ė•¨ë˛” í‘œė§€ í™”ė§ˆ", + "settings.header.visual.animatedArtworkQuality.low": "ë‚ŽėŒ", + "settings.header.visual.animatedArtworkQuality.medium": "뤑氄", + "settings.header.visual.animatedArtworkQuality.high": "ë†’ėŒ", + "settings.header.visual.animatedArtworkQuality.veryHigh": "ë§¤ėš° ë†’ėŒ", + "settings.header.visual.animatedArtworkQuality.extreme": "ėĩœėƒ", + "settings.option.visual.animatedWindowBackground": "ė›€ė§ė´ëŠ” ė°Ŋ ë°°ę˛Ŋ", + "settings.option.visual.hardwareAcceleration": "í•˜ë“œė›¨ė–´ ę°€ė†", + "settings.option.visual.hardwareAcceleration.description": "ėžŦė‹œėž‘ í•„ėš”", + "settings.header.visual.hardwareAcceleration.default": "ę¸°ëŗ¸", + "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", + "settings.header.visual.theme": "테마", + "settings.option.visual.theme.github.download": "GitHub URLė—ė„œ ė„¤ėš˜", + "settings.option.visual.theme.github.explore": "GitHub 테마 ė‚´íŽ´ëŗ´ę¸°", + "settings.header.visual.theme.github.page": "GitHubė˜ 테마", + "settings.option.visual.theme.github.install.confirm": "{{ repo }}ė„(ëĨŧ) ė„¤ėš˜í•˜ė‹œę˛ ėŠĩ니까?", + "settings.prompt.visual.theme.github.URL": "ė„¤ėš˜í•˜ë ¤ëŠ” í…Œë§ˆė˜ URL ėž…ë Ĩ", + "settings.notyf.visual.theme.install.success": "테마가 ė„ąęŗĩ렁ėœŧ로 ė„¤ėš˜ë˜ė—ˆėŠĩ니다.", + "settings.notyf.visual.theme.install.error": "테마 ė„¤ėš˜ė— ė‹¤íŒ¨í•˜ė˜€ėŠĩ니다.", + "settings.header.visual.plugin": "플ëŸŦęˇ¸ė¸", + "settings.option.visual.plugin.github.download": "GitHub URLė—ė„œ ė„¤ėš˜", + "settings.option.visual.plugin.github.explore": "GitHub 플ëŸŦęˇ¸ė¸ ė‚´íŽ´ëŗ´ę¸°", + "settings.header.visual.plugin.github.page": "GitHubė˜ 플ëŸŦęˇ¸ė¸", + "settings.option.visual.plugin.github.install.confirm": "{{ repo }}ė„(ëĨŧ) ė„¤ėš˜í•˜ė‹œę˛ ėŠĩ니까?", + "settings.prompt.visual.plugin.github.URL": "ė„¤ėš˜í•˜ë ¤ëŠ” 플ëŸŦęˇ¸ė¸ė˜ URL ėž…ë Ĩ", + "settings.prompt.visual.plugin.github.success": "플ëŸŦęˇ¸ė¸ė´ ė„ąęŗĩ렁ėœŧ로 ė„¤ėš˜ë˜ė—ˆėŠĩ니다. í™•ė¸ė„ 눌ëŸŦ CiderëĨŧ ë‹¤ė‹œ ė‹œėž‘í•˜ė„¸ėš”.", + "settings.notyf.visual.plugin.install.success": "플ëŸŦęˇ¸ė¸ė´ ė„ąęŗĩ렁ėœŧ로 ė„¤ėš˜ë˜ė—ˆėŠĩ니다.", + "settings.notyf.visual.plugin.install.error": "플ëŸŦęˇ¸ė¸ ė„¤ėš˜ė— ė‹¤íŒ¨í•˜ė˜€ėŠĩ니다.", + "settings.option.visual.theme.default": "Cider", + "settings.option.visual.theme.dark": "Dark", + "settings.option.visual.showPersonalInfo": "ę°œė¸ ė •ëŗ´ ëŗ´ę¸°", + "settings.header.lyrics": "가ė‚Ŧ", + "settings.header.lyrics.description": "Ciderė˜ 가ė‚Ŧ 기ëŠĨė„ ė„¤ė •í•Šë‹ˆë‹¤.", + "settings.option.lyrics.enableMusixmatch": "Musixmatch 가ė‚Ŧ í™œė„ąí™”", + "settings.option.lyrics.enableMusixmatchKaraoke": "노래방 ëĒ¨ë“œ í™œė„ąí™” (Musixmatch만 가ëŠĨ)", + "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch ë˛ˆė—­ ė„ í˜¸ 떏떴", + "settings.option.lyrics.enableYoutubeLyrics": "ëŽ¤ė§ ëš„ë””ė˜¤ė— 대한 YouTube ėžë§‰ í™œė„ąí™”", + "settings.header.connectivity": "ė—°ë™", + "settings.header.connectivity.description": "Ciderė˜ ė—°ë™ 기ëŠĨė„ ė„¤ė •í•Šë‹ˆë‹¤.", + "settings.option.connectivity.discordRPC": "Discord Rich Presence", + "settings.option.connectivity.playbackNotifications": "ėžŦėƒ ė•ŒëĻŧ", + "settings.header.connectivity.discordRPC.cider": "'Cider'로 í‘œė‹œí•˜ę¸°", + "settings.header.connectivity.discordRPC.appleMusic": "'Apple Music'ėœŧ로 í‘œė‹œí•˜ę¸°", + "settings.option.connectivity.discordRPC.clearOnPause": "ėŧė‹œ ė •ė§€ ė‹œ Discord Rich Presenceė„ 끄기", + "settings.option.connectivity.lastfmScrobble": "Last.fm 늤íŦ로블링", + "settings.option.connectivity.lastfmScrobble.delay": "Last.fm 늤íŦ로블 ë”œë ˆė´ (%)", + "settings.option.connectivity.lastfmScrobble.nowPlaying": "Last.fm ė§€ę¸ˆ ėžŦėƒ 뤑 기ëŠĨ í™œė„ąí™”", + "settings.option.connectivity.lastfmScrobble.removeFeatured": "ęŗĄ 렜ëĒŠė—ė„œ í”ŧėŗë§ ė•„í‹°ėŠ¤íŠ¸ ė œė™¸ (Last.fm)", + "settings.option.connectivity.lastfmScrobble.filterLoop": "반ëŗĩ되는 트랙 필터링 (Last.fm)", + "settings.header.debug": "디버그", + "settings.option.debug.copy_log": "클ëĻŊëŗ´ë“œė— 로그 ëŗĩė‚Ŧ", + "settings.option.debug.openAppData": "Cider 폴더 뗴揰", + "settings.header.experimental": "ė‹¤í—˜ė‹¤", + "settings.header.experimental.description": "Ciderė˜ ė‹¤í—˜ė  기ëŠĨė„ ė„¤ė •í•Šë‹ˆë‹¤.", + "settings.option.experimental.unknownPlugin": "ė•Œ 눘 ė—†ëŠ” ėļœė˛˜", + "settings.option.experimental.unknownPlugin.description": "Cider 플ëŸŦęˇ¸ė¸ ė €ėžĨė†Œ ė´ė™¸ė˜ ė €ėžĨė†Œė—ė„œ 플ëŸŦęˇ¸ė¸ ė„¤ėš˜ í—ˆėšŠ", + "settings.option.experimental.compactUI": "간결한 ė‚ŦėšŠėž ė¸í„°íŽ˜ė´ėŠ¤", + "settings.option.experimental.close_button_hide": "ë‹Ģ기 버íŠŧėœŧ로 ė• í”ŒëĻŦėŧ€ė´ė…˜ 눍揰揰", + "settings.option.experimental.inline_playlists": "ė¸ëŧė¸ í”Œë ˆė´ëĻŦėŠ¤íŠ¸ 및 ė•¨ë˛”", + "settings.option.advanced.playlistTrackMapping": "í”Œë ˆė´ëĻŦėŠ¤íŠ¸ 트랙 매핑", + "settings.option.advanced.playlistTrackMapping.description": "í”Œë ˆė´ëĻŦėŠ¤íŠ¸ëĨŧ ėžė„¸ížˆ 늤ėē”하ė—Ŧ ė–´ë–¤ íŠ¸ëž™ė´ ė–´ë–¤ í”Œë ˆė´ëĻŦėŠ¤íŠ¸ė— ėžˆëŠ”ė§€ í™•ė¸í•Šë‹ˆë‹¤. í”Œë ˆė´ëĻŦėŠ¤íŠ¸ ėēė‹œ 빌드 ė‹œę°„ė´ íŦ枌 ëŠ˜ė–´ë‚  눘 ėžˆėŠĩ니다.", + "settings.option.visual.transparent": "íˆŦëĒ… í”„ë ˆėž„", + "settings.option.visual.transparent.description": "íˆŦëĒ… í”„ë ˆėž„ (테마 맀뛐 í•„ėš”, ėžŦė‹¤í–‰ í•„ėš”)", + "spatial.notTurnedOn": "ė˜¤ë””ė˜¤ ęŗĩ간화가 ëš„í™œė„ąí™”ë˜ė—ˆėŠĩ니다. ė‚ŦėšŠí•˜ë ¤ëŠ´ ë¨ŧė € í™œė„ąí™”í•˜ė‹­ė‹œė˜¤.", + "spatial.spatialProperties": "ęŗĩ간 네렕", + "spatial.width": "ę¸¸ė´", + "spatial.height": "ë†’ė´", + "spatial.depth": "ęšŠė´", + "spatial.gain": "ę˛Œė¸", + "spatial.roomMaterials": "ë°Š ėžŦ마", + "spatial.roomDimensions": "ë°Š 밍뛐", + "spatial.roomPositions": "ë°Š ėœ„ėš˜", + "spatial.setDimensions": "밍뛐 네렕", + "spatial.setPositions": "ėœ„ėš˜ 네렕", + "spatial.up": "ėœ„", + "spatial.front": "ė•ž", + "spatial.left": "ė™ŧėĒŊ", + "spatial.right": "똤ëĨ¸ėĒŊ", + "spatial.back": "뒤", + "spatial.down": "ė•„ëž˜", + "spatial.listener": "ė˛­ėˇ¨ėž", + "spatial.audioSource": "ė˜¤ë””ė˜¤ ė†ŒėŠ¤", + "settings.header.unfinished": "ë¯¸ė™„ė„ą", + "remote.web.title": "Cider ëĻŦëĒ¨íŠ¸", + "remote.web.description": "QR ėŊ”드ëĨŧ 늤ėē”í•´ė„œ Cider뙀 ėŠ¤ë§ˆíŠ¸í° ė—°ę˛°í•˜ę¸°", + "about.thanks": "Cider Collective Teamęŗŧ ëĒ¨ë“  기ė—Ŧėžë“¤ė—ę˛Œ ęšŠė€ 감ė‚ŦëĨŧ 드ëĻŊ니다." +} diff --git a/src/i18n/ko_KR.jsonc b/src/i18n/ko_KR.jsonc deleted file mode 100644 index b821d188..00000000 --- a/src/i18n/ko_KR.jsonc +++ /dev/null @@ -1,342 +0,0 @@ -{ // Base File - // i18n Info - "i18n.languageName": "한ęĩ­ė–´ (KR)", // name of language in native language - "i18n.languageNameEnglish": "Korean (KR)", // name of language in English - "i18n.category": "main", // main = real language, fun = fun community languages - "i18n.authors": "@Hazealign", // Authors, if you contribute to this file feel free to add your name seperated with a space - - // App info - "app.name": "Cider", - - "date.format": "${y}. ${m}. ${d}", - - // Dialogs - "dialog.cancel": "ėˇ¨ė†Œ", - "dialog.ok": "í™•ė¸", - - // Notification - "notification.updatingLibrarySongs": "ëŧė´ë¸ŒëŸŦëĻŦė˜ 노래ëĨŧ ė—…ë°ė´íŠ¸í•˜ëŠ” ė¤‘ėž…ë‹ˆë‹¤...", - "notification.updatingLibraryAlbums": "ëŧė´ë¸ŒëŸŦëĻŦė˜ ė•¨ë˛”ė„ ė—…ë°ė´íŠ¸í•˜ëŠ” ė¤‘ėž…ë‹ˆë‹¤...", - "notification.updatingLibraryArtists": "ëŧė´ë¸ŒëŸŦëĻŦė˜ ė•„í‹°ėŠ¤íŠ¸ëĨŧ ė—…ë°ė´íŠ¸í•˜ëŠ” ė¤‘ėž…ë‹ˆë‹¤...", - - // Terms - "term.appleInc": "Apple Inc.", // Follows brand term - "term.appleMusic": "Apple Music", // Follows brand term - "term.applePodcasts": "Apple Podcasts", // Follows brand term - "term.itunes": "iTunes", // Follows brand term - "term.github": "GitHub", // Follows brand term - "term.discord": "Discord", // Follows brand term - "term.learnMore": "더 ė•Œė•„ëŗ´ę¸°", - "term.accountSettings": "ęŗ„ė • 네렕", - "term.logout": "ëĄœęˇ¸ė•„ė›ƒ", - "term.login": "ëĄœęˇ¸ė¸", - "term.about": "ė •ëŗ´", - "term.privateSession": "ę°œė¸ ė„¸ė…˜", - "term.queue": "ëŒ€ę¸°ė—´", - "term.history": "랭뎍 기록", - "term.search": "ę˛€ėƒ‰", - "term.library": "ëŗ´ę´€í•¨", - "term.listenNow": "ė§€ę¸ˆ ë“Ŗę¸°", - "term.browse": "둘ëŸŦëŗ´ę¸°", - "term.radio": "ëŧë””ė˜¤", - "term.recentlyAdded": "ėĩœęˇŧ ėļ”ę°€ëœ 항ëĒŠ", - "term.songs": "노래", - "term.albums": "ė•¨ë˛”", - "term.artists": "ė•„í‹°ėŠ¤íŠ¸", - "term.podcasts": "팟ėēėŠ¤íŠ¸", - "term.playlists": "ėžŦėƒ ëĒŠëĄ", - "term.playlist": "ėžŦėƒ ëĒŠëĄ", - "term.newPlaylist": "냈 ėžŦėƒ ëĒŠëĄ", - "term.newPlaylistFolder": "냈 ėžŦėƒ ëĒŠëĄ 폴더", - "term.createNewPlaylist": "냈 ėžŦėƒ ëĒŠëĄ 만들기", - "term.createNewPlaylistFolder": "냈 ėžŦėƒ ëĒŠëĄ 폴더 만들기", - "term.deletePlaylist": "ė •ë§ëĄœ ė´ ėžŦėƒ ëĒŠëĄė„ ė‚­ė œí•˜ė‹œę˛ ėŠĩ니까?", - "term.play": "ėžŦėƒ", - "term.pause": "ėŧė‹œ ė •ė§€", - "term.previous": "ė´ė „", - "term.next": "ë‹¤ėŒ", - "term.shuffle": "ė…”í”Œ", - "term.repeat": "반ëŗĩ", - "term.volume": "ëŗŧëĨ¨", - "term.mute": "ėŒė†Œęą°", - "term.unmute": "ėŒė†Œęą° í•´ė œ", - "term.share": "ęŗĩ뜠", - "term.share.success": "클ëĻŊëŗ´ë“œė— ëŗĩė‚Ŧ됨", - "term.settings": "네렕", - "term.seeAll": "ëĒ¨ë‘ ëŗ´ę¸°", - "term.sortBy": "ė •ë Ŧ", - "term.sortBy.album": "ė•¨ë˛”ëĒ…", - "term.sortBy.artist": "ė•„í‹°ėŠ¤íŠ¸ ė´ëĻ„", - "term.sortBy.name": "렜ëĒŠ", - "term.sortBy.genre": "ėžĨëĨ´", - "term.sortBy.releaseDate": "발매ėŧ", - "term.sortBy.duration": "ę¸¸ė´", - "term.sortOrder": "A-Z", - "term.sortOrder.ascending": "똤ëĻ„ė°¨ėˆœ", - "term.sortOrder.descending": "내ëĻŧ밍눜", - "term.viewAs": "í‘œė‹œ", - "term.viewAs.coverArt": "ėģ¤ë˛„ ė•„íŠ¸", - "term.viewAs.list": "ëĻŦėŠ¤íŠ¸", - "term.size": "íŦ기", - "term.size.normal": "í‘œė¤€", - "term.size.compact": "ėģ´íŒŠíЏ", - "term.enable": "ėŧœę¸°", - "term.disable": "끄기", - "term.enabled": "ėŧœė§", - "term.disabled": "ęēŧ말", - "term.connect": "뗰枰", - "term.connecting": "뗰枰 뤑", - "term.disconnect": "뗰枰 í•´ė œ", - "term.authed": "ė¸ėĻë¨", - "term.confirm": "ė§„í–‰í•˜ė‹œę˛ ėŠĩ니까?", - "term.more": "ėļ”ę°€", - "term.less": "ė¤„ė´ę¸°", - "term.showMore": "더 ëŗ´ę¸°", - "term.showLess": "덜 ëŗ´ę¸°", - "term.topSongs": "ë§Žė´ ë“ŖëŠ” 노래", - "term.latestReleases": "ėĩœęˇŧ 발매된 노래", - "term.time.added": "ėļ”가됨", - "term.time.released": "발매됨", - "term.time.updated": "ė—…ë°ė´íŠ¸ë¨", - "term.time.hours": "ė‹œę°„", - "term.time.hour": "ė‹œę°„", - "term.time.minutes": "ëļ„", - "term.time.minute": "ëļ„", - "term.time.seconds": "봈", - "term.time.second": "봈", - "term.fullscreenView": "렄랴 화면 ëŗ´ę¸°", - "term.defaultView": "ėœˆë„ėš° ëŗ´ę¸°", - "term.audioSettings": "ė˜¤ë””ė˜¤ 네렕", - "term.clearAll": "ëĒ¨ë‘ ė§€ėš°ę¸°", - "term.recentStations": "ėĩœęˇŧ ėŠ¤í…Œė´ė…˜", - "term.language": "떏떴", - "term.funLanguages": "ėžŦ미ëĨŧ ėœ„í•œ 떏떴", - "term.noLyrics": "로딩 뤑... / 가ė‚ŦëĨŧ ė°žė§€ ëĒģ했ėŠĩ니다. / Instrumental ęŗĄėŧ 눘 ėžˆėŠĩ니다.", - "term.copyright": "ė €ėž‘ęļŒ", - "term.rightsReserved": "All Rights Reserved.", - "term.sponsor": "ė´ í”„ëĄœė íŠ¸ëĨŧ í›„ė›í•˜ę¸°", - "term.ciderTeam": "Cider 팀", - "term.developer": "ę°œë°œėž", - "term.socialTeam": "ė†Œė…œ 팀", - "term.socials": "ė†Œė…œ", - "term.contributors": "기ė—Ŧėž", - "term.equalizer": "ė´í€„ëŧė´ė €", - "term.reset": "ė´ˆę¸°í™”", - "term.tracks": "ęŗĄ", // Assume x amount of tracks. e.g. 50 tracks - "term.videos": "ëš„ë””ė˜¤", - "term.menu": "메뉴", - "term.check": "í™•ė¸", - "term.aboutArtist": "{{artistName}}뗐 대하ė—Ŧ", // e.g. 'About Doja Cat' - "term.topResult": "Top Result", // Search Results - "term.sharedPlaylists": "ęŗĩ뜠 í”Œë ˆė´ëĻŦėŠ¤íŠ¸", // Search Results - "term.people": "프로필", // Search Results - "term.newpreset.name": "냈 ė´í€„ëŧė´ė € 프ëĻŦė…‹", // Equalizer Preset - "term.addedpreset": "ėļ”ę°€ëœ 프ëĻŦė…‹", - "term.deletepreset.warn": "ė •ë§ëĄœ 프ëĻŦė…‹ė„ ė‚­ė œí•˜ė‹œę˛ ėŠĩ니까?", - "term.deletedpreset": "프ëĻŦė…‹ ė‚­ė œ", - "term.musicVideos": "ëŽ¤ė§ ëš„ë””ė˜¤", // Search page friendlyTypes - "term.stations": "ėŠ¤í…Œė´ė…˜", - "term.curators": "íë ˆė´í„°", - "term.appleCurators": "ė• í”Œ íë ˆė´í„°", - "term.radioShows": "ëŧë””ė˜¤ ė‡ŧ", - "term.recordLabels": "레ėŊ”드 ë ˆė´ë¸”", - "term.videoExtras": "ėļ”ę°€ ëš„ë””ė˜¤", - "term.top": "Top", - - // Home - "home.title": "홈", - "home.recentlyPlayed": "ėĩœęˇŧ ėžŦėƒí•œ 항ëĒŠ", - "home.recentlyAdded": "ėĩœęˇŧ ėļ”ę°€ëœ 항ëĒŠ", - "home.artistsFeed": "ė•„í‹°ėŠ¤íŠ¸ í”ŧ드", - "home.artistsFeed.noArtist": "ėĸ‹ė•„하는 ė•„í‹°ėŠ¤íŠ¸ëĨŧ íŒ”ëĄœėš°í•´ëŗ´ė„¸ėš”.", - "home.madeForYou": "ë‚˜ë§Œė„ ėœ„í•œ ėļ”ė˛œ", - "home.friendsListeningTo": "ėšœęĩŦ가 ë“ŖëŠ” ėŒė•…", - "home.followedArtists": "íŒ”ëĄœėš°í•œ ė•„í‹°ėŠ¤íŠ¸", - - // Errors - "error.appleMusicSubRequired": "Apple Musicė€ ęĩŦë…ė„ í•„ėš”ëĄœ 합니다.", - "error.connectionError": "Apple Music뗐 ė—°ę˛°í•˜ė§€ ëĒģ했ėŠĩ니다.", - "error.noResults": "결ęŗŧ ė—†ėŒ", - "error.noResults.description": "ë‹¤ė‹œ ė‹œë„í•´ėŖŧė„¸ėš”.", - - // Podcasts - "podcast.followOnCider": "Ciderė—ė„œ íŒ”ëĄœėš°í•˜ę¸°", - "podcast.followedOnCider": "íŒ”ëĄœėš° 뤑", - "podcast.subscribeOnItunes": "iTunesė—ė„œ ęĩŦ독", - "podcast.subscribedOnItunes": "ęĩŦ독 뤑", - "podcast.itunesStore": "iTunes Store", - "podcast.episodes": "ë°Šė†Ą", - "podcast.playEpisode": "ėžŦėƒ", - "podcast.website": "팟ėēėŠ¤íŠ¸ ė‚Ŧė´íŠ¸", - - // Actions - "action.addToLibrary": "ëŗ´ę´€í•¨ė— ėļ”ę°€", - "action.addToLibrary.success": "ëŗ´ę´€í•¨ė— ėļ”가됨", - "action.addToLibrary.error": "ëŗ´ę´€í•¨ė— ėļ”ę°€í•˜ëŠ”ë° ė‹¤íŒ¨í•¨", - "action.removeFromLibrary": "ëŗ´ę´€í•¨ė—ė„œ ė‚­ė œ", - "action.removeFromLibrary.success": "ëŗ´ę´€í•¨ė—ė„œ ė‚­ė œë¨", - "action.addToQueue": "ëŒ€ę¸°ė—´ė— ėļ”ę°€", - "action.addToQueue.success": "ëŒ€ę¸°ė—´ė— ėļ”가됨", - "action.addToQueue.error": "ëŒ€ę¸°ė—´ė— ėļ”ę°€í•˜ëŠ”ë° ė‹¤íŒ¨í•¨", - "action.removeFromQueue": "ëŒ€ę¸°ė—´ė—ė„œ ė‚­ė œ", - "action.removeFromQueue.success": "ëŒ€ę¸°ė—´ė—ė„œ ė‚­ė œë¨", - "action.removeFromQueue.error": "ëŒ€ę¸°ė—´ė—ė„œ ė‚­ė œí•˜ëŠ”ë° ė‹¤íŒ¨í•¨", - "action.createPlaylist": "냈 ėžŦėƒ ëĒŠëĄ 만들기", - "action.addToPlaylist": "ėžŦėƒ ëĒŠëĄė— ėļ”ę°€", - "action.removeFromPlaylist": "ėžŦėƒ ëĒŠëĄė—ė„œ ė‚­ė œ", - "action.addToFavorites": "ėĻę˛¨ė°žę¸°ė— ėļ”ę°€", - "action.follow": "íŒ”ëĄœėš°", - "action.follow.success": "íŒ”ëĄœėš° 뤑", - "action.follow.error": "íŒ”ëĄœėš° ė‹¤íŒ¨", - "action.unfollow": "ė–¸íŒ”ëĄœėš°", - "action.unfollow.success": "ė–¸íŒ”ëĄœėš°ë¨", - "action.unfollow.error": "ė–¸íŒ”ëĄœėš° ė‹¤íŒ¨", - "action.playNext": "바로 ë‹¤ėŒė— ėžŦėƒ", - "action.playLater": "맨 ë‚˜ė¤‘ė— ėžŦėƒ", - "action.startRadio": "ėŠ¤í…Œė´ė…˜ ėƒė„ą", - "action.goToArtist": "ė•„í‹°ėŠ¤íŠ¸ ëŗ´ę¸°", - "action.goToAlbum": "ė•¨ë˛” ëŗ´ę¸°", - "action.moveToTop": "ėœ„ëĄœ 가기", - "action.share": "ęŗĩ뜠", - "action.rename": "íŽ¸ė§‘", - "action.love": "ėĸ‹ė•„ėš”", - "action.unlove": "ėĸ‹ė•„ėš” ėˇ¨ė†Œ", - "action.dislike": "ė‹Ģė–´ėš”", - "action.undoDislike": "ė‹Ģė–´ėš” ėˇ¨ė†Œ", - "action.showWebRemoteQR": "ė›š ëĻŦëĒ¨íŠ¸", - "action.playTracksNext": "ë‹¤ėŒ ${app.selectedMediaItems.length}ęŗĄ ėžŦėƒ", - "action.playTracksLater": "ë‚˜ė¤‘ė— ${app.selectedMediaItems.length}ęŗĄ ėžŦėƒ", - "action.removeTracks": "${self.selectedItems.length}ęŗĄė„ ëŒ€ę¸°ė—´ė—ė„œ ė‚­ė œ", - "action.import": "ëļˆëŸŦ똤揰", - "action.export": "ë‚´ëŗ´ë‚´ę¸°", - "action.showAlbum": "렄랴 ė•¨ë˛” ëŗ´ę¸°", - "action.tray.minimize": "íŠ¸ë ˆė´ė— ėĩœė†Œí™”", - "action.tray.quit": "ėĸ…ëŖŒ", - "action.tray.show": "ëŗ´ę¸°", - "action.update": "ė—…ë°ė´íŠ¸", - "action.copy": "ëŗĩė‚Ŧ", - "action.newpreset": "냈 프ëĻŦė…‹", // Equalizer Preset - "action.deletepreset": "프ëĻŦė…‹ ė‚­ė œ", - - // Settings - General - "settings.header.general": "ėŧ반", - "settings.header.general.description": "Ciderė˜ ėŧ반 기ëŠĨė„ ė„¤ė •í•Šë‹ˆë‹¤.", - "settings.option.general.language": "떏떴", - - // Language optgroups - "settings.option.general.language.main": "떏떴", - "settings.option.general.language.fun": "ėžŦ미ëĨŧ ėœ„í•œ 떏떴", - "settings.option.general.language.unsorted": "미ëļ„ëĨ˜", - - // Update Cider - "settings.option.general.updateCider": "Cider ė—…ë°ė´íŠ¸", // Button - - // Settings - Audio - "settings.header.audio": "ė˜¤ë””ė˜¤", - "settings.header.audio.description": "Ciderė˜ ė˜¤ë””ė˜¤ 기ëŠĨė„ ė„¤ė •í•Šë‹ˆë‹¤.", - "settings.option.audio.quality": "ė˜¤ë””ė˜¤ ėŒė§ˆ", // Dropdown - "settings.header.audio.quality.high": "ęŗ í’ˆė§ˆ", - "settings.header.audio.quality.low": "ë‚ŽėŒ", - "settings.header.audio.quality.auto": "ėžë™", - "settings.option.audio.seamlessTransition": "íŦëĄœėŠ¤íŽ˜ė´ë“œ 기ëŠĨ", // Toggle - "settings.option.audio.enableAdvancedFunctionality": "ėļ”ę°€ 기ëŠĨ 네렕", // Toggle - "settings.option.audio.enableAdvancedFunctionality.description": "AudioContext 기ëŠĨė„ í™œė„ąí™”í•˜ė—Ŧ ė˜¤ë””ė˜¤ ė •ęˇœí™”, ė´í€„ëŧė´ė €, 비ėĨŦė–ŧëŧė´ė € ë“ąė˜ 기ëŠĨė„ 듏 눘 ėžˆę˛Œ í•´ė¤ë‹ˆë‹¤. ėŧëļ€ ė‹œėŠ¤í…œė—ė„œëŠ” ė˜¤ë””ė˜¤ę°€ 끊길 눘 ėžˆėŠĩ니다.", - "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "ė˜¤ë””ė˜¤ ė •ęˇœí™”", // Toggle - "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "ę°œëŗ„ íŠ¸ëž™ė˜ ėĩœëŒ€ ëŗŧëĨ¨ė„ ė •ęˇœí™”í•˜ė—Ŧ ëŗ´ë‹¤ ꡠėŧ한 랭뎍 ę˛Ŋí—˜ė„ 렜ęŗĩ합니다.", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "ė˜¤ë””ė˜¤ ęŗĩ간화", // Toggle - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "ė˜¤ë””ė˜¤ëĨŧ ęŗĩę°„í™”í•˜ęŗ  ë”ėšą 3밍뛐렁ėœŧ로 ë§Œë“¤ė–´ė¤ë‹ˆë‹¤. (및溠: ė´ 기ëŠĨė€ Dolby Atmos가 ė•„ë‹™ë‹ˆë‹¤.)", - - // Settings - Visual - "settings.header.visual": "ė‹œę°", - "settings.header.visual.description": "Ciderė˜ ė‹œę° 기ëŠĨė„ ė„¤ė •í•Šë‹ˆë‹¤.", - "settings.option.visual.windowBackgroundStyle": "ėœˆë„ėš° ë°°ę˛Ŋ ėŠ¤íƒ€ėŧ", // Toggle - "settings.header.visual.windowBackgroundStyle.none": "ė—†ėŒ", - "settings.header.visual.windowBackgroundStyle.artwork": "ė•¨ë˛” ė•„íŠ¸", - "settings.header.visual.windowBackgroundStyle.image": "ė´ë¯¸ė§€", - "settings.option.visual.animatedArtwork": "ė• ë‹ˆëŠ”ė´ė…˜ ė•¨ë˛” í‘œė§€", // Dropdown - "settings.header.visual.animatedArtwork.always": "í•­ėƒ í™œė„ąí™”", - "settings.header.visual.animatedArtwork.limited": "íŽ˜ė´ė§€ë‚˜ íŠšė • í™”ëŠ´ė—ė„œë§Œ í™œė„ąí™”", - "settings.header.visual.animatedArtwork.disable": "í•­ėƒ ëš„í™œė„ąí™”", - "settings.option.visual.animatedArtworkQuality": "ė• ë‹ˆëŠ”ė´ė…˜ ė•¨ë˛” í‘œė§€ í™”ė§ˆ", // Dropdown - "settings.header.visual.animatedArtworkQuality.low": "ë‚ŽėŒ", - "settings.header.visual.animatedArtworkQuality.medium": "뤑氄", - "settings.header.visual.animatedArtworkQuality.high": "ë†’ėŒ", - "settings.header.visual.animatedArtworkQuality.veryHigh": "ë§¤ėš° ë†’ėŒ", - "settings.header.visual.animatedArtworkQuality.extreme": "ėĩœėƒ", - "settings.option.visual.animatedWindowBackground": "ė›€ė§ė´ëŠ” ėœˆë„ėš° ë°°ę˛Ŋ", // Toggle - "settings.option.visual.hardwareAcceleration": "í•˜ë“œė›¨ė–´ ę°€ė†", // Dropdown - "settings.option.visual.hardwareAcceleration.description": "ėžŦė‹œėž‘ė„ í•„ėš”ëĄœ 합니다.", - "settings.header.visual.hardwareAcceleration.default": "ę¸°ëŗ¸", - "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", - "settings.header.visual.theme": "테마", - - // Settings - Visual - Theme name - "settings.option.visual.theme.default": "Cider", - "settings.option.visual.theme.dark": "다íŦ", - // Refer to term.disabled for the disabled option - "settings.option.visual.showPersonalInfo": "ę°œė¸ ė •ëŗ´ ëŗ´ę¸°", // Toggle - - // Settings - Lyrics - "settings.header.lyrics": "가ė‚Ŧ", - "settings.header.lyrics.description": "Ciderė˜ 가ė‚Ŧ 기ëŠĨė„ ė„¤ė •í•Šë‹ˆë‹¤.", - "settings.option.lyrics.enableMusixmatch": "Musixmatch 가ė‚Ŧ í™œė„ąí™”", // Toggle - "settings.option.lyrics.enableMusixmatchKaraoke": "노래방 ëĒ¨ë“œ í™œė„ąí™” (Musixmatch만 가ëŠĨ)", // Toggle - "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch ë˛ˆė—­ ė„ í˜¸ 떏떴", // Dropdown - "settings.option.lyrics.enableYoutubeLyrics": "ëŽ¤ė§ ëš„ë””ė˜¤ė— 대한 ėœ íŠœë¸Œ ėžë§‰ í™œė„ąí™”", // Toggle - - // Settings - Connectivity - "settings.header.connectivity": "ė—°ë™", - "settings.header.connectivity.description": "Ciderė˜ ė—°ë™ 기ëŠĨė„ ė„¤ė •í•Šë‹ˆë‹¤.", - "settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown - "settings.option.connectivity.playbackNotifications": "ėžŦėƒ ė•ŒëĻŧ", // Toggle - // Refer to term.disabled for the disabled option - "settings.header.connectivity.discordRPC.cider": "'Cider'로 í‘œė‹œí•˜ę¸°", - "settings.header.connectivity.discordRPC.appleMusic": "'Apple Music'ėœŧ로 í‘œė‹œí•˜ę¸°", - "settings.option.connectivity.discordRPC.clearOnPause": "ėŧė‹œ ė •ė§€ ė‹œ Discord Rich Presenceė„ 끄기", // Toggle - "settings.option.connectivity.lastfmScrobble": "Last.fm 늤íŦ로블링", // Option to Connect - "settings.option.connectivity.lastfmScrobble.delay": "Last.fm 늤íŦ로블 ë”œë ˆė´ (%)", - "settings.option.connectivity.lastfmScrobble.nowPlaying": "Last.fm Now Playing 기ëŠĨ í™œė„ąí™”", - "settings.option.connectivity.lastfmScrobble.removeFeatured": "ęŗĄ 렜ëĒŠė—ė„œ í”ŧėŗë§ ė•„í‹°ėŠ¤íŠ¸ëĨŧ ė œė™¸í•˜ę¸° (Last.fm)", - "settings.option.connectivity.lastfmScrobble.filterLoop": "ëŖ¨í”„ íŠ¸ëž™ė„ 필터하기 (Last.fm)", - // Refer to term.connect for the connect button - - // Settings - Experimental - "settings.header.experimental": "ė‹¤í—˜ė‹¤", - "settings.header.experimental.description": "Ciderė˜ ė‹¤í—˜ė  기ëŠĨė„ ė„¤ė •í•Šë‹ˆë‹¤.", - "settings.option.experimental.compactUI": "ėģ´íŒŠíЏ UI", // Toggle - "settings.option.experimental.close_button_hide": "ë‹Ģ기 버íŠŧė´ ė• í”ŒëĻŦėŧ€ė´ė…˜ė„ 가ëĻ´ ę˛ƒėž…ë‹ˆë‹¤", - "settings.option.experimental.copy_log": "로그ëĨŧ 클ëĻŊëŗ´ë“œė— ëŗĩė‚Ŧ하기", - "settings.option.experimental.inline_playlists": "ė¸ëŧė¸ í”Œë ˆė´ëĻŦėŠ¤íŠ¸ 및 ė•¨ë˛”", - - // Refer to term.disabled & term.enabled - // Spatialization Menu - "spatial.notTurnedOn": "ė˜¤ë””ė˜¤ ęŗĩ간화가 ëš„í™œė„ąí™”ë˜ė–´ėžˆėŠĩ니다. ė‚ŦėšŠí•˜ę¸° 렄뗐 ë¨ŧė € í™œė„ąí™”í•´ėŖŧė„¸ėš”.", - "spatial.spatialProperties": "ęŗĩ간 네렕", - "spatial.width": "ę¸¸ė´", - "spatial.height": "ë†’ė´", - "spatial.depth": "ęšŠė´", - "spatial.gain": "ėļœë Ĩ", - "spatial.roomMaterials": "ë°Š ėžŦ마", - "spatial.roomDimensions": "ë°Š 밍뛐", - "spatial.roomPositions": "ë°Š ėœ„ėš˜", - "spatial.setDimensions": "밍뛐 네렕", - "spatial.setPositions": "ėœ„ėš˜ 네렕", - "spatial.up": "ėœ„", - "spatial.front": "ė•ž", - "spatial.left": "ėĸŒ", - "spatial.right": "뚰", - "spatial.back": "뒤", - "spatial.down": "ė•„ëž˜", - "spatial.listener": "ė‚ŦėšŠėž", - "spatial.audioSource": "ė˜¤ë””ė˜¤ ė†ŒėŠ¤", - - // Settings - Unfinished - "settings.header.unfinished": "ë¯¸ė™„ė„ą", - - // Web Remote - "remote.web.title": "Cider ëĻŦëĒ¨íŠ¸", - "remote.web.description": "QR ėŊ”드ëĨŧ 늤ėē”í•´ė„œ Cider뙀 ėŠ¤ë§ˆíŠ¸í°ė„ ė—°ę˛°í•˜ę¸°", - - // About - "about.thanks": "Cider Collective Teamęŗŧ ëĒ¨ë“  기ė—Ŧėžë“¤ė—ę˛Œ 감ė‚Ŧ합니다." -} \ No newline at end of file diff --git a/src/i18n/pt_BR.json b/src/i18n/pt_BR.json new file mode 100644 index 00000000..4203ec94 --- /dev/null +++ b/src/i18n/pt_BR.json @@ -0,0 +1,306 @@ +{ + "i18n.languageName": "PortuguÃĒs (brasileiro)", + "i18n.languageNameEnglish": "Portuguese (Brazil)", + "i18n.category": "main", + "i18n.authors": "", + "app.name": "Cider", + "date.format": "${d} ${m}, ${y}", + "dialog.cancel": "Cancelar", + "dialog.ok": "OK", + "notification.updatingLibrarySongs": "Atualizando mÃēsicas na biblioteca...", + "notification.updatingLibraryAlbums": "Atualizando albuns na biblioteca...", + "notification.updatingLibraryArtists": "Atualizando artistas na biblioteca...", + "notification.connectionError": "Houve um problema a se conectar no Apple Music", + "term.appleMusic": "Apple Music", + "term.applePodcasts": "Apple Podcasts", + "term.itunes": "iTunes", + "term.github": "GitHub", + "term.discord": "Discord", + "term.learnMore": "Saiba Mais", + "term.accountSettings": "DefiniçÃĩes da Conta", + "term.logout": "Sair", + "term.login": "Entrar", + "term.about": "Sobre", + "term.privateSession": "SessÃŖo Privada", + "term.queue": "Fila", + "term.search": "Procurar", + "term.library": "Biblioteca", + "term.listenNow": "Ouça Agora", + "term.browse": "Explorar", + "term.radio": "Radio", + "term.recentlyAdded": "Adicionado Recentemente", + "term.songs": "MÃēsicas", + "term.albums": "Albuns", + "term.artists": "Artistas", + "term.podcasts": "Podcasts", + "term.playlists": "Playlists", + "term.playlist": "Playlist", + "term.play": "Tocar", + "term.pause": "Pausar", + "term.previous": "Anterior", + "term.next": "PrÃŗximo", + "term.shuffle": "AleatÃŗrio", + "term.repeat": "Repetir", + "term.volume": "Volume", + "term.mute": "Mudo", + "term.unmute": "Tirar o Mudo", + "term.share": "Compartilhar", + "term.settings": "DefiniçÃĩes", + "term.seeAll": "Ver Tudo", + "term.sortBy": "Organizar Por", + "term.sortBy.album": "Album", + "term.sortBy.artist": "Artista", + "term.sortBy.name": "Nome", + "term.sortBy.genre": "Genero", + "term.sortBy.releaseDate": "Data de Lançamento", + "term.sortBy.duration": "DuraÃ§ÃŖo", + "term.sortOrder": "A-Z", + "term.sortOrder.ascending": "Ascendente", + "term.sortOrder.descending": "Descendente", + "term.viewAs": "Ver Como", + "term.viewAs.coverArt": "Capa", + "term.viewAs.list": "Lista", + "term.size": "Tamanho", + "term.size.normal": "Normal", + "term.size.compact": "Compacto", + "term.enable": "Ativar", + "term.disable": "Desativar", + "term.enabled": "Ativado", + "term.disabled": "Desativado", + "term.connect": "Conectar", + "term.disconnect": "Desconectar", + "term.connecting": "Conectando", + "term.confirm": "Confirmar?", + "term.more": "Mais", + "term.less": "Menos", + "term.showMore": "Mostrar Mais", + "term.showLess": "Mostrar Menos", + "term.topSongs": "Top de MÃēsicas", + "term.latestReleases": "Ultimos Lançamentos", + "term.time.added": "Adicionado", + "term.time.released": "Lançado", + "term.time.updated": "Atualizado", + "term.fullscreenView": "VisualizaÃ§ÃŖo em Tela Cheia", + "term.defaultView": "VisualizaÃ§ÃŖo Normal", + "term.spacializedAudioSetting": "DefiniçÃĩes de Audio Espacial", + "term.clearAll": "Limpar Tudo", + "term.language": "Idioma", + "term.recentStations": "EstaçÃĩes Recentes", + "term.funLanguages": "Fun", + "term.noLyrics": "Carregando... / Letras nÃŖo achadas./ Instrumental.", + "term.copyright": "Copyright", + "term.rightsReserved": "Todos direitos reservados.", + "term.sponsor": "Patrocine esse projeto", + "term.ciderTeam": "Time Cider", + "term.developer": "Desenvolvedor", + "term.socialTeam": "Time social", + "term.socials": "Redes Sociais", + "term.contributors": "Contribuidores", + "term.equalizer": "Equalizador", + "term.reset": "Resetar", + "term.tracks": "mÃēsicas", + "term.videos": "Vídeos", + "term.menu": "Menu", + "term.check": "Checark", + "term.aboutArtist": "Sobre {{artistName}}", + "term.topResult": "Melhor resultado", + "term.sharedPlaylists": "Playlists compartilhadas", + "term.people": "Pessoas", + "term.newpreset.name": "Nova predefiniÃ§ÃŖo para o equalizador", + "term.addedpreset": "PredefiniÃ§ÃŖo adicionada", + "term.deletepreset.warn": "Certeza que quer apagar essa predefiniÃ§ÃŖo?", + "term.deletedpreset": "PredefiniÃ§ÃŖo removida", + "term.defaultPresets": "predefiniçÃĩes padrÃŖo", + "term.userPresets": "PredefiniçÃĩes do usuÃĄrio", + "term.requestError": "There was a problem with the request.", + "term.song.link.generate": "Gerando URL do song.link...", + "term.musicVideos": "Vídeos", + "term.stations": "EstaçÃĩes", + "term.curators": "Curadores", + "term.appleCurators": "Curadores da Apple", + "term.radioShows": "Shows de Radio", + "term.recordLabels": "Gravadoras", + "term.videoExtras": "Extras", + "term.top": "Top", + "term.version": "VersÃŖo", + "term.noVideos": "Vídeos nÃŖo encontrados.", + "home.title": "Inicio", + "home.recentlyPlayed": "Tocado Recentemente", + "home.recentlyAdded": "Adicionado Recentemente", + "home.artistsFeed": "Novidades dos seus Artistas", + "home.madeForYou": "Feito para VocÃĒ", + "home.friendsListeningTo": "Amigos Ouvindo", + "home.followedArtists": "Artistas Seguidos", + "home.artistsFeed.noArtist": "Siga uns artistas e o seus ultimos lançamentos aparecerÃŖo aqui", + "error.appleMusicSubRequired": "NecessÃĄrio uma assinatura Apple Music.", + "error.connectionError": "Aconteceu um problema ao conectar ao Apple Music.", + "error.noResults": "Sem resultados.", + "error.noResults.description": "Tente uma nova busca.", + "podcast.followOnCider": "Seguir no Cider", + "podcast.followedOnCider": "Seguindo no Cider", + "podcast.subscribeOnItunes": "Inscrever-se no iTunes", + "podcast.subscribedOnItunes": "Inscrito no iTunes", + "podcast.itunesStore": "iTunes Store", + "podcast.episodes": "Episodios", + "podcast.playEpisode": "Reproduzir episÃŗdio", + "podcast.website": "Website do Podcast", + "action.addToLibrary": "Adicionar à Biblioteca", + "action.addToLibrary.success": "Adicionado à Biblioteca", + "action.addToLibrary.error": "Erro ao Adicionar na Biblioteca", + "action.removeFromLibrary": "Remover da Biblioteca", + "action.removeFromLibrary.success": "Removido da Biblioteca", + "action.addToQueue": "Adicionar à Fila", + "action.addToQueue.success": "Adicionado à Fila", + "action.addToQueue.error": "Erro ao Adicionar à Fila", + "action.removeFromQueue": "Remover da Fila", + "action.removeFromQueue.success": "Removido da Fila", + "action.removeFromQueue.error": "Erro ao Remover da Fila", + "action.addToPlaylist": "Adicionar à Lista de ReproduÃ§ÃŖo", + "action.removeFromPlaylist": "Remover da Lista de ReproduÃ§ÃŖo", + "action.addToFavorites": "Adicionar aos Favoritos", + "action.follow": "Seguir", + "action.follow.success": "A Seguir", + "action.follow.error": "Erro ao Seguir", + "action.unfollow": "Deixar de Seguir", + "action.unfollow.success": "Deixou de Seguir", + "action.unfollow.error": "Erro ao Deixar de Seguir", + "action.playNext": "Reproduzir a Seguir", + "action.playLater": "Reproduzir por Ultimo", + "action.startRadio": "Começar Radio", + "action.goToArtist": "Ir para o Artista", + "action.goToAlbum": "Ir para o Album", + "action.moveToTop": "Mover para cima", + "action.share": "Compartilhar", + "action.rename": "Renomear", + "action.love": "Gostar", + "action.unlove": "Deixar de Gostar", + "action.dislike": "NÃŖo Gostar", + "action.undoDislike": "Deixar de NÃŖo Gostar", + "action.showWebRemoteQR": "Mostrar o QR para PÃĄgina Remota", + "action.playTracksNext": "Reproduzir ${app.selectedMediaItems.length} mÃēsicas a seguir", + "action.playTracksLater": "Reproduzir ${app.selectedMediaItems.length} mÃēsicas depois", + "action.removeTracks": "Remover ${self.selectedItems.length} mÃēsicas da fila", + "action.import": "Importar", + "action.export": "Exportar", + "action.showAlbum": "Mostrar album completo", + "action.tray.minimize": "Minimize to Tray", + "action.tray.quit": "Sair", + "action.tray.show": "Mostrar", + "action.update": "Atualizar", + "action.copy": "Copiar", + "action.newpreset": "Nova predefiniÃ§ÃŖo...", + "action.deletepreset": "Apagar predefiniÃ§ÃŖo", + "action.open": "Abrir", + "settings.header.general": "Principal", + "settings.header.general.description": "Ajustar as definiçoes principais no Cider.", + "settings.option.general.language": "Idioma", + "settings.option.general.language.main": "Idiomas", + "settings.option.general.language.fun": "Idiomas divertidos", + "settings.option.general.language.unsorted": "Sem categoria", + "settings.option.general.updateCider": "Atualizar o Cider", + "settings.option.general.updateCider.branch": "Cider Update Branch", + "settings.option.general.updateCider.branch.description": "Escolha a versÃŖo do Cider para atualizar", + "settings.option.general.updateCider.branch.main": "EstÃĄvel", + "settings.option.general.updateCider.branch.develop": "Em desenvolvimeno", + "settings.header.audio": "Áudio", + "settings.header.audio.description": "Ajustar as configuraçÃĩes de ÃĄudio no Cider.", + "settings.option.audio.volumeStep": "Incrementos", + "settings.option.audio.maxVolume": "Volume mÃĄximo", + "settings.option.audio.quality": "Qualidade de Áudio", + "settings.header.audio.quality.hireslossless": "Hi-Res Lossless", + "settings.header.audio.quality.hireslossless.description": "atÊ 24-bit/192 kHz", + "settings.header.audio.quality.lossless": "Lossless", + "settings.header.audio.quality.lossless.description": "atÊ 24-bit/48 kHz", + "settings.header.audio.quality.high": "Alta", + "settings.header.audio.quality.high.description": "256 kbps", + "settings.header.audio.quality.standard": "PadrÃŖo", + "settings.header.audio.quality.standard.description": "64 kbps", + "settings.option.audio.seamlessTransition": "TransiÃ§ÃŖo de audio ...", + "settings.option.audio.enableAdvancedFunctionality": "Ativar configuraçÃĩes avancadas", + "settings.option.audio.enableAdvancedFunctionality.description": "Habilitar a funcionalidade AudioContext permitirÃĄ recursos de ÃĄudio estendidos, como NormalizaÃ§ÃŖo de Áudio , Equalizadores e Visualizadores. No entanto, em alguns sistemas, isso pode causar travamentos nas faixas de ÃĄudio.", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processorâ„ĸī¸", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Melhoras psicoacusticas que fazem com que tudo soe mais vivo.", + "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP nÃŖo Ê compativel com Áudio Espacial. Por favor, desative-o para continuar.", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "PotÃĒncia do CAP", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Muda a potÃĒncia do processamento feito no ÃĄudio. (a funÃ§ÃŖo Agressiva pode levar a resultados nÃŖo desejados.)", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "PadrÃŖo", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Agressiva", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "NormalizaÃ§ÃŖo de Áudio", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normaliza o volume alto para faixas individuais para criar uma experiÃĒncia de audiÃ§ÃŖo mais uniforme.", + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Áudio Espacial", + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Espacialize o ÃĄudio e torne o ÃĄudio mais tridimensional (nota: isto nÃŖo Ê Dolby Atmos)", + "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "Áudio Espacial nÃŖo Ê compativel com o CAP. Por favor desative-o.", + "settings.header.visual": "Visual", + "settings.header.visual.description": "Ajustar as configuraçÃĩes visuais do Cider.", + "settings.option.visual.windowBackgroundStyle": "Estilo do fundo da janela", + "settings.header.visual.windowBackgroundStyle.none": "Nenhum", + "settings.header.visual.windowBackgroundStyle.artwork": "Capa", + "settings.header.visual.windowBackgroundStyle.image": "Imagem", + "settings.option.visual.animatedArtwork": "Capa animada", + "settings.header.visual.animatedArtwork.always": "Sempre", + "settings.header.visual.animatedArtwork.limited": "Limitado a pÃĄginas e entradas especiais", + "settings.header.visual.animatedArtwork.disable": "Desativar", + "settings.option.visual.animatedArtworkQuality": "Qualidade da capa animada", + "settings.header.visual.animatedArtworkQuality.low": "Baixa", + "settings.header.visual.animatedArtworkQuality.medium": "Media", + "settings.header.visual.animatedArtworkQuality.high": "Alta", + "settings.header.visual.animatedArtworkQuality.veryHigh": "Muito Alta", + "settings.header.visual.animatedArtworkQuality.extreme": "Altissima", + "settings.option.visual.animatedWindowBackground": "Fundo animado", + "settings.option.visual.hardwareAcceleration": "AceleraÃ§ÃŖo de Hardware", + "settings.option.visual.hardwareAcceleration.description": "NecessÃĄrio reabrir o Cider", + "settings.header.visual.hardwareAcceleration.default": "PadrÃŖo", + "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", + "settings.header.visual.theme": "Tema", + "settings.option.visual.theme.github.download": "Instalar pelo URL do GitHub", + "settings.option.visual.theme.github.explore": "Explorar temas no GitHub", + "settings.option.visual.theme.github.install.confirm": "Tem certeza que quer instalar {{ repo }}?", + "settings.prompt.visual.theme.github.URL": "Insira o URL do tema que deseja instalar", + "settings.notyf.visual.theme.install.success": "Tema instalado com sucesso", + "settings.notyf.visual.theme.install.error": "A instalaÃ§ÃŖo do tema falhou", + "settings.option.visual.showPersonalInfo": "Mostrar Informaçoes Pessoais", + "settings.header.lyrics": "Letras", + "settings.header.lyrics.description": "Ajustar as definiçÃĩes das letras no Cider.", + "settings.option.lyrics.enableMusixmatch": "Ativar Letras do Musixmatch", + "settings.option.lyrics.enableMusixmatchKaraoke": "Ativar Modo Karaoke (sÃŗ para Musixmatch)", + "settings.option.lyrics.musixmatchPreferredLanguage": "Idioma Preferido para TraduÃ§ÃŖo Musixmatch", + "settings.option.lyrics.enableYoutubeLyrics": "Ativar letras do Youtube para videos musicais", + "settings.header.connectivity": "Conectividade", + "settings.header.connectivity.description": "Ajustar as definiçÃĩes de conectividade no Cider.", + "settings.option.connectivity.discordRPC": "Discord Rich Presence", + "settings.header.connectivity.discordRPC.cider": "Mostrar como 'Cider'", + "settings.header.connectivity.discordRPC.appleMusic": "Mostrar como 'Apple Music'", + "settings.option.connectivity.discordRPC.clearOnPause": "Apagar Discord Rich Presence quando estiver pausado", + "settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling", + "settings.option.connectivity.lastfmScrobble.delay": "Atraso dos Scrobbles do LastFM (%)", + "settings.option.connectivity.lastfmScrobble.nowPlaying": "Ativar LastFM Now Playing", + "settings.option.connectivity.lastfmScrobble.removeFeatured": "Remover artistas de colaboraÃ§ÃŖo do nome da mÃēsica (LastFM)", + "settings.option.connectivity.lastfmScrobble.filterLoop": "Filtrar mÃēsicas repitidas (Last.fm)", + "settings.header.debug": "Debug", + "settings.option.debug.copy_log": "Copiar logs", + "settings.option.debug.openAppData": "Abrir a pasta do Cider", + "settings.header.experimental": "Experimental", + "settings.header.experimental.description": "Ajustar as definiçÃĩes experimental no Cider.", + "settings.option.experimental.compactUI": "UI Compacto", + "settings.option.window.close_button_hide": "Fechar apenas esconde o Cider", + "spatial.spatialProperties": "Propriedades do Espacial", + "spatial.width": "Largura", + "spatial.height": "Altura", + "spatial.depth": "Profundidade", + "spatial.roomMaterials": "Materiais da Sala", + "spatial.roomDimensions": "DimensÃĩes da Sala", + "spatial.roomPositions": "PosiçÃĩes da Sala", + "spatial.setDimensions": "Definir DimensÃĩes", + "spatial.setPositions": "Definir PosiçÃĩes", + "spatial.up": "Acima", + "spatial.front": "Frente", + "spatial.left": "Esquerda", + "spatial.right": "Direita", + "spatial.back": "AtrÃĄs", + "spatial.down": "Abaixo", + "spatial.listener": "Ouvinte", + "spatial.audioSource": "Fonte de Audio", + "settings.header.unfinished": "Inacabado", + "remote.web.title": "Cider Remoto", + "remote.web.description": "Digitalize o cÃŗdigo QR para emparelhar seu telefone com esta instÃĸncia Cider" +} diff --git a/src/i18n/pt_BR.jsonc b/src/i18n/pt_BR.jsonc deleted file mode 100644 index dad04de4..00000000 --- a/src/i18n/pt_BR.jsonc +++ /dev/null @@ -1,244 +0,0 @@ -{ // Base File - // App info - "app.name": "Cider", - - "date.format": "${d} ${m}, ${y}", - - // i18n Info - "i18n.languageName": "PortuguÃĒs ( brasileiro )", // name of language in native language - "i18n.languageNameEnglish": "Portuguese (Brazil)", // name of language in English - "i18n.category": "main", // main = real language, fun = fun community languages - "i18n.authors": "", // Authors, if you contribute to this file feel free to add your name seperated with a space - - // Dialogs - "dialog.cancel": "Cancelar", - "dialog.ok": "OK", - - // Notification - "notification.updatingLibrarySongs": "Atualizando mÃēsicas na biblioteca...", - "notification.updatingLibraryAlbums": "Atualizando albuns na biblioteca...", - "notification.updatingLibraryArtists": "Atualizando artistas na biblioteca...", - "notification.connectionError": "Houve um problema a se conectar no Apple Music", - - // Terms - "term.appleMusic": "Apple Music", - "term.applePodcasts": "Apple Podcasts", - "term.itunes": "iTunes", - "term.github": "GitHub", - "term.discord": "Discord", - "term.learnMore": "Saiba Mais", - "term.accountSettings": "DefiniçÃĩes da Conta", - "term.logout": "Sair", - "term.login": "Entrar", - "term.about": "Sobre", - "term.privateSession": "SessÃŖo Privada", - "term.queue": "Fila", - "term.search": "Procurar", - "term.library": "Biblioteca", - "term.listenNow": "Ouça Agora", - "term.browse": "Explorar", - "term.radio": "Radio", - "term.recentlyAdded": "Adicionado Recentemente", - "term.songs": "MÃēsicas", - "term.albums": "Albuns", - "term.artists": "Artistas", - "term.podcasts": "Podcasts", - "term.playlists": "Listas de ReproduÃ§ÃŖo", - "term.playlist": "Lista de ReproduÃ§ÃŖo", - "term.play": "Tocar", - "term.pause": "Pausar", - "term.previous": "Anterior", - "term.next": "PrÃŗximo", - "term.shuffle": "AleatÃŗrio", - "term.repeat": "Repetir", - "term.volume": "Volume", - "term.mute": "Mudo", - "term.unmute": "Tirar o Mudo", - "term.share": "Partilhar", - "term.settings": "DefiniçÃĩes", - "term.seeAll": "Ver Tudo", - "term.sortBy": "Organizar Por", - "term.sortBy.album": "Album", - "term.sortBy.artist": "Artista", - "term.sortBy.name": "Nome", - "term.sortBy.genre": "Genero", - "term.sortBy.releaseDate": "Data de Lançamento", - "term.sortBy.duration": "DuraÃ§ÃŖo", - "term.sortOrder": "A-Z", - "term.sortOrder.ascending": "Ascendente", - "term.sortOrder.descending": "Descendente", - "term.viewAs": "Ver Como", - "term.viewAs.coverArt": "Capa", - "term.viewAs.list": "Lista", - "term.size": "Tamanho", - "term.size.normal": "Normal", - "term.size.compact": "Compacto", - "term.enable": "Ativar", - "term.disable": "Desativar", - "term.enabled": "Ativado", - "term.disabled": "Desativado", - "term.connect": "Conectar", - "term.disconnect": "Desconectar", - "term.connecting": "Conectando", - "term.confirm": "Confirmar ?", - "term.more": "Mais", - "term.less": "Menos", - "term.showMore": "Mostrar Mais", - "term.showLess": "Mostrar Menos", - "term.topSongs" : "Top de MÃēsicas", - "term.latestReleases": "Ultimos Lançamentos", - "term.time.added": "Adicionado", - "term.time.released": "Lançado", - "term.time.updated": "Atualizado", - "term.fullscreenView": "VisualizaÃ§ÃŖo em Tela Cheia", - "term.defaultView": "VisualizaÃ§ÃŖo Normal", - "term.spacializedAudioSetting": "DefiniçÃĩes de Audio Espacial", - "term.clearAll": "Limpar Tudo", - "term.language": "Idioma", - "term.recentStations": "EstaçÃĩes Recentes", - - // Home - "home.title": "Inicio", - "home.recentlyPlayed": "Tocado Recentemente", - "home.recentlyAdded": "Adicionado Recentemente", - "home.artistsFeed": "Novidades dos seus Artistas", - "home.madeForYou": "Feito para VocÃĒ", - "home.friendsListeningTo": "Amigos Ouvindo", - "home.followedArtists": "Artistas Seguidos", - // Errors - "error.appleMusicSubRequired": "NecessÃĄrio uma assinatura Apple Music.", - - // Actions - "action.addToLibrary": "Adicionar à Biblioteca", - "action.addToLibrary.success": "Adicionado à Biblioteca", - "action.addToLibrary.error": "Erro ao Adicionar na Biblioteca", - "action.removeFromLibrary": "Remover da Biblioteca", - "action.removeFromLibrary.success": "Removido da Biblioteca", - "action.addToQueue": "Adicionar à Fila", - "action.addToQueue.success": "Adicionado à Fila", - "action.addToQueue.error": "Erro ao Adicionar à Fila", - "action.removeFromQueue": "Remover da Fila", - "action.removeFromQueue.success": "Removido da Fila", - "action.removeFromQueue.error": "Erro ao Remover da Fila", - "action.addToPlaylist": "Adicionar à Lista de ReproduÃ§ÃŖo", - "action.removeFromPlaylist": "Remover da Lista de ReproduÃ§ÃŖo", - "action.addToFavorites": "Adicionar aos Favoritos", - "action.follow": "Seguir", - "action.follow.success": "A Seguir", - "action.follow.error": "Erro ao Seguir", - "action.unfollow": "Deixar de Seguir", - "action.unfollow.success": "Deixou de Seguir", - "action.unfollow.error": "Erro ao Deixar de Seguir", - "action.playNext": "Tocar Proximo", - "action.playLater": "Tocar por Ultimo", - "action.startRadio": "Começar Radio", - "action.goToArtist": "Ir para o Artista", - "action.goToAlbum": "Ir para o Album", - "action.moveToTop": "Mover para cima", - "action.share": "Partilhar", - "action.rename": "Mudar o Nome", - "action.love": "Gostar", - "action.unlove": "Deixar de Gostar", - "action.dislike": "NÃŖo Gostar", - "action.undoDislike": "Deixar de NÃŖo Gostar", - "action.showWebRemoteQR": "Mostrar o QR para PÃĄgina Remota", - // Settings - Audio - "settings.header.audio": "Audio", - "settings.header.audio.description": "Ajustar as definiçÃĩes de audio no Cider.", - "settings.option.audio.quality": "Qualidade do Audio", // Dropdown - "settings.header.audio.quality.high": "Alta", - "settings.header.audio.quality.low": "Baixa", - "settings.header.audio.quality.auto": "Automatico", - "settings.option.audio.seamlessTransition": "TransiÃ§ÃŖo de Áudio Perfeita", // Toggle - "settings.option.audio.enableAdvancedFunctionality": "Ativar Funcionabilidades Avançadas", // Toggle - "settings.option.audio.enableAdvancedFunctionality.description": "Habilitar a funcionalidade AudioContext permitirÃĄ recursos de ÃĄudio estendidos, como NormalizaÃ§ÃŖo de Áudio , Equalizadores e Visualizadores. No entanto, em alguns sistemas, isso pode causar travamentos nas faixas de ÃĄudio.", - "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "NormalizaÃ§ÃŖo de Audio", // Toggle - "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normaliza o volume alto para faixas individuais para criar uma experiÃĒncia de audiÃ§ÃŖo mais uniforme.", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Espacial", // Toggle - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Espacialize o ÃĄudio e torne o ÃĄudio mais tridimensional (nota: isto nÃŖo Ê Dolby Atmos)", - // Settings - Visual - "settings.header.visual": "Visual", - "settings.header.visual.description": "Ajustar as DefiniçÃĩes de Visual do Cider.", - "settings.option.visual.windowBackgroundStyle": "Estilo do Fundo da Janela", // Toggle - "settings.header.visual.windowBackgroundStyle.none": "Nenhum", - "settings.header.visual.windowBackgroundStyle.artwork": "Capa", - "settings.option.visual.animatedArtwork": "Capa Animada", // Dropdown - "settings.header.visual.animatedArtwork.always": "Sempre", - "settings.header.visual.animatedArtwork.limited": "Limitado a pÃĄginas e entradas especiais", - "settings.header.visual.animatedArtwork.disable": "Desativar em Tudo", - "settings.option.visual.animatedArtworkQuality": "Qualidade da Capa Animada", // Dropdown - "settings.header.visual.animatedArtworkQuality.low": "Baixa", - "settings.header.visual.animatedArtworkQuality.medium": "Media", - "settings.header.visual.animatedArtworkQuality.high": "Alta", - "settings.header.visual.animatedArtworkQuality.veryHigh": "Muito Alta", - "settings.header.visual.animatedArtworkQuality.extreme": "Extrema", - "settings.option.visual.animatedWindowBackground": "Fundo de Janela Animado", // Toggle - "settings.option.visual.hardwareAcceleration": "AcelaraÃ§ÃŖo no Hardware", // Dropdown - "settings.option.visual.hardwareAcceleration.description": "NecessÃĄrio reiniciar a aplicaÃ§ÃŖo", - "settings.header.visual.hardwareAcceleration.default": "Normal", - "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", - - - // Refer to term.disabled for the disabled option - "settings.option.visual.showPersonalInfo": "Mostrar Informaçoes Pessoais", // Toggle - // Settings - General (Reserved) - "settings.header.general": "Principal", - "settings.header.general.description": "Ajustar as definiçoes principais no Cider.", - - // Settings - Lyrics - "settings.header.lyrics": "Letras", - "settings.header.lyrics.description": "Ajustar as definiçÃĩes das letras no Cider.", - "settings.option.lyrics.enableMusixmatch": "Ativar Letras do Musixmatch", // Toggle - "settings.option.lyrics.enableMusixmatchKaraoke": "Ativar Modo Karaoke (sÃŗ para Musixmatch)", // Toggle - "settings.option.lyrics.musixmatchPreferredLanguage": "Idioma Preferido para TraduÃ§ÃŖo Musixmatch", // Dropdown - "settings.option.lyrics.enableYoutubeLyrics": "Ativar letras do Youtube para videos musicais", // Toggle - - // Settings - Connectivity - "settings.header.connectivity": "Conectividade", - "settings.header.connectivity.description": "Ajustar as definiçÃĩes de conectividade no Cider.", - "settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown - // Refer to term.disabled for the disabled option - "settings.header.connectivity.discordRPC.cider": "Mostrar como 'Cider'", - "settings.header.connectivity.discordRPC.appleMusic": "Mostrar como 'Apple Music'", - "settings.option.connectivity.discordRPC.clearOnPause": "Apagar Discord Rich Presence quando estiver pausado", // Toggle - "settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling", // Option to Connect - "settings.option.connectivity.lastfmScrobble.delay": "Atraso dos Scrobbles do LastFM (%)", - "settings.option.connectivity.lastfmScrobble.nowPlaying": "Ativar LastFM Now Playing", - "settings.option.connectivity.lastfmScrobble.removeFeatured": "Remover artistas de colaboraÃ§ÃŖo do nome da mÃēsica (LastFM)", - // Refer to term.connect for the connect button - - // Settings - Experimental - "settings.header.experimental": "Experimental", - "settings.header.experimental.description": "Ajustar as definiçÃĩes experimental no Cider.", - "settings.option.experimental.compactUI": "UI Compacto", // Toggle - // Refer to term.disabled & term.enabled - - // Spatialization Menu - "spatial.spatialProperties" : "Propriedades do Espacial", - "spatial.width" : "Largura", - "spatial.height" : "Altura", - "spatial.depth" : "Profundidade", - "spatial.roomMaterials" : "Materiais da Sala", - "spatial.roomDimensions" : "DimensÃĩes da Sala", - "spatial.roomPositions" : "PosiçÃĩes da Sala", - "spatial.setDimensions" : "Definir DimensÃĩes", - "spatial.setPositions" : "Definir PosiçÃĩes", - "spatial.up" : "Acima", - "spatial.front" : "Frente", - "spatial.left" : "Esquerda", - "spatial.right" : "Direita", - "spatial.back" : "AtrÃĄs", - "spatial.down" : "Abaixo", - "spatial.listener" : "Ouvinte", - "spatial.audioSource" : "Fonte de Audio", - - - - - // Settings - Unfinished - "settings.header.unfinished": "Inacabado", - - // Web Remote - "remote.web.title": "Cider Remoto", - "remote.web.description": "Digitalize o cÃŗdigo QR para emparelhar seu telefone com esta instÃĸncia Cider" -} \ No newline at end of file diff --git a/src/i18n/ro_RO.json b/src/i18n/ro_RO.json new file mode 100644 index 00000000..5b37b59d --- /dev/null +++ b/src/i18n/ro_RO.json @@ -0,0 +1,270 @@ +{ + "i18n.languageName": "RomÃĸnă", + "i18n.languageNameEnglish": "Romanian", + "i18n.category": "main", + "i18n.authors": "@SubZeroNexii georgechrc", + "app.name": "Cider", + + "date.format": "${d} ${m}, ${y}", + "dialog.cancel": "Anulare", + "dialog.ok": "OK", + "notification.updatingLibrarySongs": "Actualizare bibliotecă muzică...", + "notification.updatingLibraryAlbums": "Actualizare bibliotecă albume...", + "notification.updatingLibraryArtists": "Actualizare bibliotecă artiști...", + "term.appleInc": "Apple Inc.", + "term.appleMusic": "Apple Music", + "term.applePodcasts": "Apple Podcasts", + "term.itunes": "iTunes", + "term.github": "GitHub", + "term.discord": "Discord", + "term.learnMore": "Află mai multe", + "term.accountSettings": "Setări cont", + "term.logout": "Deconectare", + "term.login": "Autentificare", + "term.about": "Despre", + "term.privateSession": "Sesiune Privată", + "term.queue": "ÃŽn Coadă", + "term.search": "Căutare", + "term.library": "Bibliotecă", + "term.listenNow": "Ascultă acum", + "term.browse": "Navigați", + "term.radio": "Radio", + "term.recentlyAdded": "Recent Adăugate", + "term.songs": "Muzică", + "term.albums": "Albume", + "term.artists": "Artiști", + "term.podcasts": "Podcast-uri", + "term.playlists": "Playlist-uri", + "term.playlist": "Playlist", + "term.newPlaylist": "Playlist Nou", + "term.newPlaylistFolder": "Dosar Playlist Nou", + "term.createNewPlaylist": "Creează un Playlist Nou", + "term.createNewPlaylistFolder": "Creează un Dosar Playlist Nou", + "term.deletePlaylist": "Sunteți siguri că vreți să ștergeți acest Playlist?", + "term.play": "Redă", + "term.pause": "Pauză", + "term.previous": "Înapoi", + "term.next": "Înainte", + "term.shuffle": "Aleator", + "term.repeat": "Repetă", + "term.volume": "Volum", + "term.mute": "Fară sunet", + "term.unmute": "Activare sunet", + "term.share": "Partajează", + "term.settings": "Setări", + "term.seeAll": "Vedeți tot", + "term.sortBy": "Sortare după", + "term.sortBy.album": "Album", + "term.sortBy.artist": "Artist", + "term.sortBy.name": "Nume", + "term.sortBy.genre": "Gen", + "term.sortBy.releaseDate": "Data Lansării", + "term.sortBy.duration": "Durată", + "term.sortOrder": "A-Z", + "term.sortOrder.ascending": "Ascendent", + "term.sortOrder.descending": "Descendent", + "term.viewAs": "Vizualizare ca", + "term.viewAs.coverArt": "Artă Copertă", + "term.viewAs.list": "Listă", + "term.size": "Mărime", + "term.size.normal": "Normal", + "term.size.compact": "Compact", + "term.enable": "Activare", + "term.disable": "Dezactivare", + "term.enabled": "Activat", + "term.disabled": "Dezactivat", + "term.connect": "Conectare", + "term.connecting": "Se conectează", + "term.disconnect": "Deconectare", + "term.authed": "Autentificat", + "term.confirm": "Confirmați ?", + "term.more": "Mai mult", + "term.less": "Mai puțin", + "term.showMore": "Arată mai mult", + "term.showLess": "Arată mai puțin", + "term.topSongs" : "Top Muzică", + "term.latestReleases": "Ultimele Lansări", + "term.time.added": "Adăugate", + "term.time.released": "Lansate", + "term.time.updated": "Actualizate", + "term.time.hours": "ore", + "term.time.hour": "oră", + "term.time.minutes": "minute", + "term.time.minute": "minut", + "term.time.seconds": "secunde", + "term.time.second": "secundă", + "term.fullscreenView": "Vizualizare Ecran Complet", + "term.defaultView": "Vizualizare Standard", + "term.audioSettings": "Setări Audio", + "term.clearAll": "Ștergere toate", + "term.recentStations": "Stații Recente", + "term.language": "Limbă", + "term.funLanguages": "Amuzament", + "term.noLyrics": "Incărcare... / Versurile nu au fost găsite./ Instrumental.", + "term.copyright": "Copyright", + "term.rightsReserved": "Toate drepturile rezervate.", + "term.sponsor": "Sponsorizați acest proiect", + "term.ciderTeam": "Echipa Cider", + "term.developer": "Dezvoltatori", + "term.socialTeam": "Echipa de relații publice", + "term.socials": "Rețele Sociale", + "term.contributors": "Contribuitori", + "term.equalizer": "Egalizator", + "term.reset": "Reset", + "term.tracks": "melodii", + "term.videos": "Videoclipuri", + "term.menu": "Meniu", + "term.check": "Verificare", + "term.aboutArtist": "Despre {{artistName}}", + "term.updateCider": "Actualizare Cider", + "home.title": "Acasă", + "home.recentlyPlayed": "Asculate Recent", + "home.recentlyAdded": "Adăugate Recent", + "home.artistsFeed": "Fluxul Artiștilor tăi", + "home.artistsFeed.noArtist": "Urmărește prima oară cațiva artiști și ultimele lor lansări vor apărea aici", + "home.madeForYou": "Pentru tine", + "home.friendsListeningTo": "Prietenii tăi ascultă", + "home.followedArtists": "Artiști Urmăriți", + "error.appleMusicSubRequired": "Apple Music necesită un abonament.", + "error.connectionError": "A apărut o problemă ÃŽn conectarea la Apple Music.", + "error.noResults": "Nici un rezultat.", + "error.noResults.description": "ÃŽncearcă o nouă căutare.", + "podcast.followOnCider": "Urmărește pe Cider", + "podcast.followedOnCider": "Urmărit pe Cider", + "podcast.subscribeOnItunes": "Abonează-te pe iTunes", + "podcast.subscribedOnItunes": "Abonat pe iTunes", + "podcast.itunesStore": "Magazin iTunes", + "podcast.episodes": "Episoade", + "podcast.playEpisode": "Începe Episodul", + "podcast.website": "Pagină Podcast", + "action.addToLibrary": "Adaugă ÃŽn Librărie", + "action.addToLibrary.success": "Adăugat ÃŽn Librărie", + "action.addToLibrary.error": "Eroare la adăugarea ÃŽn Librărie", + "action.removeFromLibrary": "Ștergere din Librărie", + "action.removeFromLibrary.success": "Șters din Librărie", + "action.addToQueue": "Adăugare la Coadă", + "action.addToQueue.success": "Adăugat la Coadă", + "action.addToQueue.error": "Eroare adăugare la Coadă", + "action.removeFromQueue": "Ștergere din Coadă", + "action.removeFromQueue.success": "Șters din Coadă", + "action.removeFromQueue.error": "Eroare Ștergere din Coadă", + "action.createPlaylist": "Creează un nou Playlist", + "action.addToPlaylist": "Adaugă la Playlist", + "action.removeFromPlaylist": "Ștergere din Playlist", + "action.addToFavorites": "Adaugă la Favorite", + "action.follow": "Urmărește", + "action.follow.success": "Urmărit", + "action.follow.error": "Eroare Urmărire", + "action.unfollow": "Nu mai urmăriți", + "action.unfollow.success": "Urmărire ÃŽncetată", + "action.unfollow.error": "Eroare ÃŽncetare Urmărire", + "action.playNext": "Ascultă ÃŽn Continuare", + "action.playLater": "Ascultă Mai TÃĸrziu", + "action.startRadio": "Pornește Radio", + "action.goToArtist": "Du-te la Artist", + "action.goToAlbum": "Du-te la Album", + "action.moveToTop": "Mută ÃŽn vÃĸrf", + "action.share": "Partajează", + "action.rename": "Redenumire", + "action.love": "Apreciază", + "action.unlove": "Elimină Apreciere", + "action.dislike": "Dislike", + "action.undoDislike": "Elimină dislike", + "action.showWebRemoteQR": "Telecomandă Web", + "action.playTracksNext": "Redă ${app.selectedMediaItems.length} de melodii ÃŽn continuare", + "action.playTracksLater": "Redă ${app.selectedMediaItems.length} de melodii mai tÃĸrziu", + "action.removeTracks": "Șterge ${self.selectedItems.length} de melodii din Coadă", + "action.import": "Import", + "action.export": "Export", + "action.showAlbum": "Arată Albumul Complet", + "action.tray.minimize": "Minimizează ÃŽn Tray", + "action.tray.quit": "Ieșire", + "action.tray.show": "Arată", + "action.update": "Actualizează", + "settings.header.general": "General", + "settings.header.general.description": "Ajustează setările generale pentru Cider.", + "settings.option.general.language": "Limbă", + "settings.option.general.language.main": "Limbi", + "settings.option.general.language.fun": "Amuzant", + "settings.option.general.language.unsorted": "Nesortate", + "settings.header.audio": "Audio", + "settings.header.audio.description": "Ajustează setările audio pentru Cider.", + "settings.option.audio.quality": "Calitate Audio", + "settings.header.audio.quality.high": "Ridicată", + "settings.header.audio.quality.low": "Redusă", + "settings.header.audio.quality.auto": "Auto", + "settings.option.audio.seamlessTransition": "Tranziție Audio NeÃŽntreruptă", + "settings.option.audio.enableAdvancedFunctionality": "Activează Funcționalitate Avansată", + "settings.option.audio.enableAdvancedFunctionality.description": "Pornirea funcționalității AudioContext va permite folosirea funcțiilor audio avansate precum Normalizare Volum , Egalizator și Vizualizator, dar pe unele sisteme poate cauza probleme precum ÃŽntreruperi ÃŽn redare.", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalizare Volum", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalizează volumul maxim al melodiilor pentru a genera o experiență audio optimă.", + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Spațializare Audio", + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spațializează sunetul și face sunetul 3-dimensional (notă: Nu este Dolby Atmos)", + "settings.header.visual": "Vizual", + "settings.header.visual.description": "Ajustează setările vizuale pentru Cider.", + "settings.option.visual.windowBackgroundStyle": "Stil Fundal Fereastră", + "settings.header.visual.windowBackgroundStyle.none": "Niciunul", + "settings.header.visual.windowBackgroundStyle.artwork": "Copertă Melodie", + "settings.header.visual.windowBackgroundStyle.image": "Imagine", + "settings.option.visual.animatedArtwork": "Copertă Animată", + "settings.header.visual.animatedArtwork.always": "Întotdeauna", + "settings.header.visual.animatedArtwork.limited": "Limitat la pagini și Albume speciale", + "settings.header.visual.animatedArtwork.disable": "Dezactivează peste tot", + "settings.option.visual.animatedArtworkQuality": "Calitate Copertă Animată", + "settings.header.visual.animatedArtworkQuality.low": "Redusă", + "settings.header.visual.animatedArtworkQuality.medium": "Medie", + "settings.header.visual.animatedArtworkQuality.high": "Ridicată", + "settings.header.visual.animatedArtworkQuality.veryHigh": "Foarte Ridicată", + "settings.header.visual.animatedArtworkQuality.extreme": "Extremă", + "settings.option.visual.animatedWindowBackground": "Fundal Fereastră Animat", + "settings.option.visual.hardwareAcceleration": "Accelerare Hardware", + "settings.option.visual.hardwareAcceleration.description": "Necesită Repornire", + "settings.header.visual.hardwareAcceleration.default": "Implitcit", + "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", + "settings.option.visual.showPersonalInfo": "Arată informații personale", + "settings.header.lyrics": "Versuri", + "settings.header.lyrics.description": "Ajustează setările versurilor pentru Cider.", + "settings.option.lyrics.enableMusixmatch": "Activează Versuri Musixmatch", + "settings.option.lyrics.enableMusixmatchKaraoke": "Activează Mod Karaoke (numai Musixmatch)", + "settings.option.lyrics.musixmatchPreferredLanguage": "Limbă Preferată Traducere Musixmatch", + "settings.option.lyrics.enableYoutubeLyrics": "Activează Versuri Youtube pentru Videoclipuri Muzică", + "settings.header.connectivity": "Conectivitate", + "settings.header.connectivity.description": "Ajustează setările de conectivitate pentru Cider.", + "settings.option.connectivity.discordRPC": "Discord Rich Presence", + "settings.option.connectivity.playbackNotifications": "Notificări Redare", + "settings.header.connectivity.discordRPC.cider": "Afișează ca 'Cider'", + "settings.header.connectivity.discordRPC.appleMusic": "Afișează ca 'Apple Music'", + "settings.option.connectivity.discordRPC.clearOnPause": "Curăță Discord Rich Presence la Pauză", + "settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling", + "settings.option.connectivity.lastfmScrobble.delay": "Last.fm Scrobble Delay (%)", + "settings.option.connectivity.lastfmScrobble.nowPlaying": "Activează Last.fm Now Playing", + "settings.option.connectivity.lastfmScrobble.removeFeatured": "Ștergeți artiștii invitat din titlul melodiei (Last.fm)", + "settings.option.connectivity.lastfmScrobble.filterLoop": "Filtrează melodii repetate (Last.fm)", + "settings.header.experimental": "Experimental", + "settings.header.experimental.description": "Ajustează setările experimentale pentru Cider.", + "settings.option.experimental.compactUI": "UI Compact", + "settings.option.window.close_button_hide": "Butonul de ÃŽnchidere ar trebui să ascundă aplicația", + "spatial.notTurnedOn": "Spațializarea Audio este dezactivată. Pentru a folosi opțiunea aceasta, activați-o mai ÃŽntÃĸi.", + "spatial.spatialProperties": "Proprietăți Spațiale", + "spatial.width": "Lățime", + "spatial.height": "Înălțime", + "spatial.depth": "AdÃĸncime", + "spatial.gain": "Gain", + "spatial.roomMaterials": "Materiale Cameră", + "spatial.roomDimensions": "Dimensiuni Cameră", + "spatial.roomPositions": "Poziții Cameră", + "spatial.setDimensions": "Setează Dimensiunile", + "spatial.setPositions": "Setează Pozițiile", + "spatial.up": "Sus", + "spatial.front": "În Față", + "spatial.left": "StÃĸnga", + "spatial.right": "Dreapta", + "spatial.back": "În Spate", + "spatial.down": "Jos", + "spatial.listener": "Ascultător", + "spatial.audioSource": "Sursă Audio", + "settings.header.unfinished": "Neterminat", + "remote.web.title": "Telecomandă Cider", + "remote.web.description": "Scanează codul QR pentru a ÃŽmperechea telefonul tău cu această instanță Cider", + "about.thanks": "Multe Mulțumiri Echipei Colectiv Cider și a tuturor contribuitorilor." +} diff --git a/src/i18n/ro_RO.jsonc b/src/i18n/ro_RO.jsonc deleted file mode 100644 index dcbcaf43..00000000 --- a/src/i18n/ro_RO.jsonc +++ /dev/null @@ -1,17 +0,0 @@ -{ - // i18n Info - "i18n.languageName": "RomÃĸnă", // name of language in native language - "i18n.languageNameEnglish": "Romanian", // name of language in English - "i18n.category": "main", // main = real language, fun = fun community - "i18n.authors": "georgechrc, ", // Authors, if you contribute to this - //file feel free to add your name seperated with a space - "date.format": "${d} ${m}, ${y}", - // translations - "term.equalizer": "Egalizator", - "settings.option.audio.enableAdvancedFunctionality.description": "Pornirea funcționalităților AudioContext va permite folosirea funcțiilor audio avansate precum Normalizare Volum , Egalizator și Vizualizator, pe unele sisteme mai slabe poate cauza probleme precum ÃŽntreruperi ÃŽn redare.", - "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalizare Volum", // Toggle - "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalizează volumul maxim al melodiilor pentru a genera o experiență audio optimă.", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Spațializare Sunet", // Toggle - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Efect de spațializare tri-dimensională a sunetului(Atenție, nu e Dolby Atmos!)", - "spatial.notTurnedOn": "Spațializarea Sunetului e dezactivată, pentru a o utiliza pornește-o." -} \ No newline at end of file diff --git a/src/i18n/ru_RU.json b/src/i18n/ru_RU.json new file mode 100644 index 00000000..fbd5e1df --- /dev/null +++ b/src/i18n/ru_RU.json @@ -0,0 +1,343 @@ +{ + "i18n.languageName": "Đ ŅƒŅŅĐēиК (RU)", + "i18n.languageNameEnglish": "Russian (RU)", + "i18n.category": "main", + "i18n.authors": "@h0ckerman", + "app.name": "Cider", + "date.format": "${d} ${m}, ${y}", + "dialog.cancel": "ĐžŅ‚ĐŧĐĩĐŊа", + "dialog.ok": "OK", + "notification.updatingLibrarySongs": "ОбĐŊОвĐģĐĩĐŊиĐĩ ĐŧĐĩĐ´Đ¸Đ°Ņ‚ĐĩĐēи ĐŋĐĩҁĐĩĐŊ...", + "notification.updatingLibraryAlbums": "ОбĐŊОвĐģĐĩĐŊиĐĩ ĐŧĐĩĐ´Đ¸Đ°Ņ‚ĐĩĐēи аĐģŅŒĐąĐžĐŧОв...", + "notification.updatingLibraryArtists": "ОбĐŊОвĐģĐĩĐŊиĐĩ ĐŧĐĩĐ´Đ¸Đ°Ņ‚ĐĩĐēи Đ°Ņ€Ņ‚Đ¸ŅŅ‚ĐžĐ˛...", + "term.appleInc": "Apple Inc.", + "term.appleMusic": "Apple Music", + "term.applePodcasts": "ПодĐēĐ°ŅŅ‚Ņ‹ Apple", + "term.itunes": "iTunes", + "term.github": "GitHub", + "term.discord": "Discord", + "term.learnMore": "ĐŖĐˇĐŊĐ°Ņ‚ŅŒ йОĐģҌ҈Đĩ", + "term.accountSettings": "ĐĐ°ŅŅ‚Ņ€ĐžĐšĐēи аĐēĐēĐ°ŅƒĐŊŅ‚Đ°", + "term.logout": "Đ’Ņ‹ĐšŅ‚Đ¸", + "term.login": "Đ’ĐžĐšŅ‚Đ¸", + "term.about": "О Cider", + "term.privateSession": "Đ§Đ°ŅŅ‚ĐŊĐ°Ņ ҁĐĩŅŅĐ¸Ņ", + "term.queue": "ĐžŅ‡ĐĩŅ€ĐĩĐ´ŅŒ", + "term.history": "Đ˜ŅŅ‚ĐžŅ€Đ¸Ņ", + "term.search": "ĐŸĐžĐ¸ŅĐē", + "term.library": "МĐĩĐ´Đ¸Đ°Ņ‚ĐĩĐēа", + "term.listenNow": "ĐĄĐģŅƒŅˆĐ°ĐšŅ‚Đĩ ҁĐĩĐšŅ‡Đ°Ņ", + "term.browse": "ĐžĐąĐˇĐžŅ€", + "term.radio": "РадиО", + "term.recentlyAdded": "НĐĩдавĐŊĐž дОйавĐģĐĩĐŊĐž", + "term.songs": "ПĐĩҁĐŊи", + "term.albums": "АĐģŅŒĐąĐžĐŧŅ‹", + "term.artists": "ĐŅ€Ņ‚Đ¸ŅŅ‚Ņ‹", + "term.podcasts": "ПодĐēĐ°ŅŅ‚Ņ‹", + "term.playlists": "ПĐģĐĩĐšĐģĐ¸ŅŅ‚Ņ‹", + "term.playlist": "ПĐģĐĩĐšĐģĐ¸ŅŅ‚", + "term.newPlaylist": "ĐĐžĐ˛Ņ‹Đš ПĐģĐĩĐšĐģĐ¸ŅŅ‚", + "term.newPlaylistFolder": "ĐĐžĐ˛Đ°Ņ ПаĐŋĐēа ПĐģĐĩĐšĐģĐ¸ŅŅ‚Đ°", + "term.createNewPlaylist": "ĐĄĐžĐˇĐ´Đ°Ņ‚ŅŒ ĐŊĐžĐ˛Ņ‹Đš ĐŋĐģĐĩĐšĐģĐ¸ŅŅ‚", + "term.createNewPlaylistFolder": "ĐĄĐžĐˇĐ´Đ°Ņ‚ŅŒ ĐŊĐžĐ˛ŅƒŅŽ ĐŋаĐŋĐē҃", + "term.deletePlaylist": "Đ’Ņ‹ ŅƒĐ˛ĐĩŅ€ĐĩĐŊŅ‹, Ņ‡Ņ‚Đž Ņ…ĐžŅ‚Đ¸Ņ‚Đĩ ŅƒĐ´Đ°ĐģĐ¸Ņ‚ŅŒ ĐŋĐģĐĩĐšĐģĐ¸ŅŅ‚?", + "term.play": "Đ’ĐžŅĐŋŅ€ĐžĐ¸ĐˇĐ˛ĐĩŅŅ‚Đ¸", + "term.pause": "ĐŸĐ°ŅƒĐˇĐ°", + "term.previous": "ĐŸŅ€ĐĩĐ´Ņ‹Đ´ŅƒŅ‰Đ¸Đš", + "term.next": "ĐĄĐģĐĩĐ´ŅƒŅŽŅ‰Đ¸Đš", + "term.shuffle": "ПĐĩŅ€ĐĩĐŧĐĩŅˆĐ°Ņ‚ŅŒ", + "term.repeat": "ĐŸĐžĐ˛Ņ‚ĐžŅ€ŅŅ‚ŅŒ", + "term.volume": "Đ“Ņ€ĐžĐŧĐēĐžŅŅ‚ŅŒ", + "term.mute": "Đ—Đ°ĐŗĐģŅƒŅˆĐ¸Ņ‚ŅŒ", + "term.unmute": "ВĐēĐģŅŽŅ‡Đ¸Ņ‚ŅŒ ĐˇĐ˛ŅƒĐē", + "term.share": "ПодĐĩĐģĐ¸Ņ‚ŅŒŅŅ", + "term.share.success": "ĐĄĐēĐžĐŋĐ¸Ņ€ĐžĐ˛Đ°ĐŊĐž в ĐąŅƒŅ„ĐĩŅ€ ОйĐŧĐĩĐŊа", + "term.settings": "ĐĐ°ŅŅ‚Ņ€ĐžĐšĐēи", + "term.seeAll": "ĐĄĐŧĐžŅ‚Ņ€ĐĩŅ‚ŅŒ Đ˛ŅĐĩ", + "term.sortBy": "ĐĄĐžŅ€Ņ‚Đ¸Ņ€ĐžĐ˛Đ°Ņ‚ŅŒ ĐŋĐž", + "term.sortBy.album": "АĐģŅŒĐąĐžĐŧ", + "term.sortBy.artist": "ĐŅ€Ņ‚Đ¸ŅŅ‚", + "term.sortBy.name": "ИĐŧŅ", + "term.sortBy.genre": "ЖаĐŊŅ€", + "term.sortBy.releaseDate": "Đ”Đ°Ņ‚Đ° Đ˛Ņ‹Ņ…ĐžĐ´Đ°", + "term.sortBy.duration": "ДĐģĐ¸Ņ‚ĐĩĐģҌĐŊĐžŅŅ‚ŅŒ", + "term.sortBy.dateAdded": "Đ”Đ°Ņ‚Đ° дОйавĐģĐĩĐŊĐ¸Ņ", + "term.sortOrder": "А-Đ¯", + "term.sortOrder.ascending": "По Đ˛ĐžĐˇŅ€Đ°ŅŅ‚Đ°ĐŊĐ¸ŅŽ", + "term.sortOrder.descending": "По ŅƒĐąŅ‹Đ˛Đ°ĐŊĐ¸ŅŽ", + "term.viewAs": "ПоĐēĐ°ĐˇŅ‹Đ˛Đ°Ņ‚ŅŒ", + "term.viewAs.coverArt": "ОбĐģĐžĐļĐēи", + "term.viewAs.list": "ĐĄĐŋĐ¸ŅĐžĐē", + "term.size": "РаСĐŧĐĩŅ€", + "term.size.normal": "ĐžĐąŅ‹Ņ‡ĐŊŅ‹Đš", + "term.size.compact": "КоĐŧĐŋаĐēŅ‚ĐŊŅ‹Đš", + "term.enable": "ВĐēĐģŅŽŅ‡Đ¸Ņ‚ŅŒ", + "term.disable": "Đ’Ņ‹ĐēĐģŅŽŅ‡Đ¸Ņ‚ŅŒ", + "term.enabled": "ВĐēĐģŅŽŅ‡ĐĩĐŊĐž", + "term.disabled": "Đ’Ņ‹ĐēĐģŅŽŅ‡ĐĩĐŊĐž", + "term.connect": "ПодĐēĐģŅŽŅ‡Đ¸Ņ‚ŅŒ", + "term.connecting": "ПодĐēĐģŅŽŅ‡ĐĩĐŊиĐĩ", + "term.disconnect": "ĐžŅ‚ĐēĐģŅŽŅ‡Đ¸Ņ‚ŅŒ", + "term.authed": "ĐĐ˛Ņ‚ĐžŅ€Đ¸ĐˇĐžĐ˛Đ°ĐŊĐž", + "term.confirm": "ĐŸĐžĐ´Ņ‚Đ˛ĐĩŅ€Đ´Đ¸Ņ‚ŅŒ?", + "term.more": "БоĐģҌ҈Đĩ", + "term.less": "МĐĩĐŊҌ҈Đĩ", + "term.showMore": "ПоĐēĐ°ĐˇĐ°Ņ‚ŅŒ йОĐģҌ҈Đĩ", + "term.showLess": "ПоĐēĐ°ĐˇĐ°Ņ‚ŅŒ ĐŧĐĩĐŊҌ҈Đĩ", + "term.topSongs": "Đ›ŅƒŅ‡ŅˆĐ¸Đĩ ĐŋĐĩҁĐŊи", + "term.latestReleases": "ĐŸĐžŅĐģĐĩĐ´ĐŊиĐĩ Ņ€ĐĩĐģĐ¸ĐˇŅ‹", + "term.time.added": "ДобавĐģĐĩĐŊĐž", + "term.time.released": "Đ ĐĩĐģиС: ", + "term.time.updated": "ОбĐŊОвĐģĐĩĐŊĐž", + "term.time.hour": { + "one": "Ņ‡Đ°Ņ", + "few": "Ņ‡Đ°ŅĐ°", + "other": "Ņ‡Đ°ŅĐžĐ˛" + }, + "term.time.minute": { + "one": "ĐŧиĐŊŅƒŅ‚Đ°", + "few": "ĐŧиĐŊŅƒŅ‚Ņ‹", + "other": "ĐŧиĐŊŅƒŅ‚" + }, + "term.time.second": { + "one": "ҁĐĩĐē҃ĐŊĐ´", + "few": "ҁĐĩĐē҃ĐŊĐ´Ņ‹", + "other": "ҁĐĩĐē҃ĐŊĐ´" + }, + "term.fullscreenView": "ПоĐģĐŊĐžŅĐēŅ€Đ°ĐŊĐŊĐžĐĩ ĐžŅ‚ĐžĐąŅ€Đ°ĐļĐĩĐŊиĐĩ", + "term.defaultView": "ĐĄŅ‚Đ°ĐŊĐ´Đ°Ņ€Ņ‚ĐŊĐžĐĩ ĐžŅ‚ĐžĐąŅ€Đ°ĐļĐĩĐŊиĐĩ", + "term.audioSettings": "ĐĐ°ŅŅ‚Ņ€ĐžĐšĐēи ĐˇĐ˛ŅƒĐēа", + "term.audioControls": "ĐĐ°ŅŅ‚Ņ€ĐžĐšĐēа ĐŗŅ€ĐžĐŧĐēĐžŅŅ‚Đ¸", + "term.clearAll": "ĐžŅ‡Đ¸ŅŅ‚Đ¸Ņ‚ŅŒ", + "term.recentStations": "Đ’Ņ‹ ĐŊĐĩдавĐŊĐž ҁĐģŅƒŅˆĐ°Đģи", + "term.language": "Đ¯ĐˇŅ‹Đē", + "term.funLanguages": "ЗабавĐŊŅ‹Đĩ", + "term.noLyrics": "ĐĸĐĩĐēҁ҂ ĐŋĐĩҁĐŊи ĐŊĐĩ ĐŊаКдĐĩĐŊ.", + "term.copyright": "ĐĐ˛Ņ‚ĐžŅ€ŅĐēĐžĐĩ ĐŋŅ€Đ°Đ˛Đž", + "term.rightsReserved": "Đ’ŅĐĩ ĐŋŅ€Đ°Đ˛Đ° ĐˇĐ°Ņ‰Đ¸Ņ‰ĐĩĐŊŅ‹.", + "term.sponsor": "ПоддĐĩŅ€ĐļĐ°Ņ‚ŅŒ ĐŋŅ€ĐžĐĩĐēŅ‚", + "term.ciderTeam": "КоĐŧаĐŊда Cider", + "term.developer": "Đ Đ°ĐˇŅ€Đ°ĐąĐžŅ‚Ņ‡Đ¸Đē", + "term.socialTeam": "ĐĄĐžŅ†Đ¸Đ°ĐģҌĐŊĐ°Ņ ĐēĐžĐŧаĐŊда", + "term.socials": "ĐĄĐžŅ†Đ¸Đ°ĐģҌĐŊŅ‹Đĩ ҁĐĩŅ‚Đ¸", + "term.contributors": "ВĐŊĐĩҁĐģи вĐēĐģад", + "term.equalizer": "Đ­ĐēваĐģаКСĐĩŅ€", + "term.reset": "ĐĄĐąŅ€ĐžŅĐ¸Ņ‚ŅŒ", + "term.tracks": { + "one": "ĐŋĐĩҁĐŊŅ", + "few": "ĐŋĐĩҁĐŊи", + "other": "ĐŋĐĩҁĐĩĐŊ" + }, + "term.videos": "ВидĐĩĐž", + "term.menu": "МĐĩĐŊŅŽ", + "term.check": "ĐŸŅ€ĐžĐ˛ĐĩŅ€Đ¸Ņ‚ŅŒ", + "term.aboutArtist": "О {{artistName}}", + "term.topResult": "ĐĸĐžĐŋ Ņ€ĐĩĐˇŅƒĐģŅŒŅ‚Đ°Ņ‚ĐžĐ˛", + "term.sharedPlaylists": "ĐžĐąŅ‰Đ¸Đĩ ĐŋĐģĐĩĐšĐģĐ¸ŅŅ‚Ņ‹", + "term.people": "Đ›ŅŽĐ´Đ¸", + "term.newpreset.name": "НазваĐŊиĐĩ ĐŊĐžĐ˛ĐžĐŗĐž ĐŋŅ€ĐĩҁĐĩŅ‚Đ° ŅĐēваĐģаКСĐĩŅ€Đ°", + "term.addedpreset": "ĐŸŅ€ĐĩҁĐĩŅ‚ дОйавĐģĐĩĐŊ", + "term.deletepreset.warn": "Đ’Ņ‹ ŅƒĐ˛ĐĩŅ€ĐĩĐŊŅ‹, Ņ‡Ņ‚Đž Ņ…ĐžŅ‚Đ¸Ņ‚Đĩ ŅƒĐ´Đ°ĐģĐ¸Ņ‚ŅŒ ĐŋŅ€ĐĩҁĐĩŅ‚?", + "term.deletedpreset": "ĐŸŅ€ĐĩҁĐĩŅ‚ ŅƒĐ´Đ°ĐģĐĩĐŊ", + "term.defaultPresets": "ĐŸŅ€ĐĩĐ´ŅƒŅŅ‚Đ°ĐŊОвĐēи ĐŋĐž ҃ĐŧĐžĐģŅ‡Đ°ĐŊĐ¸ŅŽ", + "term.userPresets": "ĐŸŅ€ĐĩĐ´ŅƒŅŅ‚Đ°ĐŊОвĐēи ĐŋĐžĐģŅŒĐˇĐžĐ˛Đ°Ņ‚ĐĩĐģŅ", + "term.requestError": "ВозĐŊиĐēĐģа ĐŋŅ€ĐžĐąĐģĐĩĐŧа ҁ СаĐŋŅ€ĐžŅĐžĐŧ.", + "term.song.link.generate": "ПоĐģŅƒŅ‡ĐĩĐŊиĐĩ ҁҁҋĐģĐēи ҁ song.link...", + "term.musicVideos": "ĐœŅƒĐˇŅ‹ĐēаĐģҌĐŊŅ‹Đĩ видĐĩĐž", + "term.stations": "ĐĄŅ‚Đ°ĐŊŅ†Đ¸Đ¸", + "term.curators": "ĐšŅƒŅ€Đ°Ņ‚ĐžŅ€Ņ‹", + "term.appleCurators": "ĐšŅƒŅ€Đ°Ņ‚ĐžŅ€Ņ‹ Apple", + "term.radioShows": "Đ Đ°Đ´Đ¸ĐžŅˆĐžŅƒ", + "term.recordLabels": "ЛĐĩКйĐģŅ‹ ĐˇĐ˛ŅƒĐēОСаĐŋĐ¸ŅĐ¸", + "term.videoExtras": "Đ•Ņ‰Ņ‘", + "term.top": "Top", + "term.version": "ВĐĩŅ€ŅĐ¸Ņ", + "term.noVideos": "ВидĐĩĐž ĐŊĐĩ ĐŊаКдĐĩĐŊĐž.", + "home.title": "ГĐģавĐŊĐ°Ņ", + "home.recentlyPlayed": "НĐĩдавĐŊĐž ĐŋŅ€ĐžŅĐģŅƒŅˆĐ°ĐŊĐŊŅ‹Đĩ", + "home.recentlyAdded": "НĐĩдавĐŊĐž дОйавĐģĐĩĐŊĐŊŅ‹Đĩ", + "home.artistsFeed": "ЛĐĩĐŊŅ‚Đ° Đ¸ŅĐŋĐžĐģĐŊĐ¸Ņ‚ĐĩĐģĐĩĐš", + "home.artistsFeed.noArtist": "ПодĐŋĐ¸ŅˆĐ¸Ņ‚ĐĩҁҌ ĐŊа ĐŊĐĩĐēĐžŅ‚ĐžŅ€Ņ‹Ņ… Đ°Ņ€Ņ‚Đ¸ŅŅ‚ĐžĐ˛, и Đ¸Ņ… ĐŋĐžŅĐģĐĩĐ´ĐŊиĐĩ Ņ€ĐĩĐģĐ¸ĐˇŅ‹ ĐąŅƒĐ´ŅƒŅ‚ СдĐĩҁҌ", + "home.madeForYou": "ĐĄĐŋĐĩŅ†Đ¸Đ°ĐģҌĐŊĐž Đ´ĐģŅ Đ˛Đ°Ņ", + "home.friendsListeningTo": "Đ§Ņ‚Đž ҁĐģŅƒŅˆĐ°ŅŽŅ‚ Đ´Ņ€ŅƒĐˇŅŒŅ", + "home.followedArtists": "ĐžŅ‚ŅĐģĐĩĐļиваĐĩĐŧŅ‹Đĩ Đ°Ņ€Ņ‚Đ¸ŅŅ‚Ņ‹", + "error.appleMusicSubRequired": "ДĐģŅ ĐŋŅ€ĐžŅĐģŅƒŅˆĐ¸Đ˛Đ°ĐŊĐ¸Ņ Apple Music ҂ҀĐĩĐąŅƒĐĩŅ‚ŅŅ ĐŋОдĐŋĐ¸ŅĐēа.", + "error.connectionError": "ВозĐŊиĐēĐģа ĐŋŅ€ĐžĐąĐģĐĩĐŧа ҁ ĐŋОдĐēĐģŅŽŅ‡ĐĩĐŊиĐĩĐŧ Đē Apple Music.", + "error.noResults": "НĐĩŅ‚ Ņ€ĐĩĐˇŅƒĐģŅŒŅ‚Đ°Ņ‚ĐžĐ˛.", + "error.noResults.description": "ПоĐŋŅ€ĐžĐąŅƒĐšŅ‚Đĩ Đĩ҉ґ Ņ€Đ°Đˇ.", + "podcast.followOnCider": "ĐžŅ‚ŅĐģĐĩĐļĐ¸Đ˛Đ°Ņ‚ŅŒ в Cider", + "podcast.followedOnCider": "ĐžŅ‚ŅĐģĐĩĐļиваĐĩĐŧŅ‹Đĩ в Cider", + "podcast.subscribeOnItunes": "ПодĐŋĐ¸ŅĐ°Ņ‚ŅŒŅŅ в iTunes", + "podcast.subscribedOnItunes": "ПодĐŋĐ¸ŅĐ°ĐŊ в iTunes", + "podcast.itunesStore": "iTunes Store", + "podcast.episodes": "Đ’Ņ‹Đŋ҃ҁĐēи Ņ€Đ°Đ´Đ¸ĐžŅˆĐžŅƒ", + "podcast.playEpisode": "Đ’ĐžŅĐŋŅ€ĐžĐ¸ĐˇĐ˛ĐĩŅŅ‚Đ¸", + "podcast.website": "ВĐĩĐą-ŅĐ°ĐšŅ‚", + "action.addToLibrary": "Đ”ĐžĐąĐ°Đ˛Đ¸Ņ‚ŅŒ в ĐŧĐĩĐ´Đ¸Đ°Ņ‚ĐĩĐē҃", + "action.addToLibrary.success": "ДобавĐģĐĩĐŊĐž в ĐŧĐĩĐ´Đ¸Đ°Ņ‚ĐĩĐē҃", + "action.addToLibrary.error": "ĐžŅˆĐ¸ĐąĐēа ДобавĐģĐĩĐŊĐ¸Ņ в ĐŧĐĩĐ´Đ¸Đ°Ņ‚Đ¸Đē҃", + "action.removeFromLibrary": "ĐŖĐąŅ€Đ°Ņ‚ŅŒ иС ĐŧĐĩĐ´Đ¸Đ°Ņ‚ĐĩĐēи", + "action.removeFromLibrary.success": "ĐŖĐ´Đ°ĐģĐĩĐŊĐž иС ĐŧĐĩĐ´Đ¸Đ°Ņ‚ĐĩĐēи", + "action.addToQueue": "Đ’ĐžŅĐŋŅ€ĐžĐ¸ĐˇĐ˛ĐĩŅŅ‚Đ¸ даĐģĐĩĐĩ", + "action.addToQueue.success": "ДобавĐģĐĩĐŊĐž в ĐžŅ‡ĐĩŅ€ĐĩĐ´ŅŒ", + "action.addToQueue.error": "ĐžŅˆĐ¸ĐąĐēа дОйавĐģĐĩĐŊĐ¸Ņ в ĐžŅ‡ĐĩŅ€ĐĩĐ´ŅŒ", + "action.removeFromQueue": "ĐŖĐąŅ€Đ°Ņ‚ŅŒ иС ĐžŅ‡ĐĩŅ€Đĩди", + "action.removeFromQueue.success": "ĐŖĐ´Đ°ĐģĐĩĐŊĐž иС ĐžŅ‡ĐĩŅ€Đĩди", + "action.removeFromQueue.error": "ĐžŅˆĐ¸ĐąĐēа ŅƒĐ´Đ°ĐģĐĩĐŊĐ¸Ņ иС ĐžŅ‡ĐĩŅ€Đĩди", + "action.createPlaylist": "ĐĄĐžĐˇĐ´Đ°Ņ‚ŅŒ ĐŊĐžĐ˛Ņ‹Đš ĐŋĐģĐĩĐšĐģĐ¸ŅŅ‚", + "action.addToPlaylist": "Đ”ĐžĐąĐ°Đ˛Đ¸Ņ‚ŅŒ в ĐŋĐģĐĩĐšĐģĐ¸ŅŅ‚", + "action.removeFromPlaylist": "ĐŖĐ´Đ°ĐģĐ¸Ņ‚ŅŒ иС ĐŋĐģĐĩĐšĐģĐ¸ŅŅ‚Đ°", + "action.addToFavorites": "Đ”ĐžĐąĐ°Đ˛Đ¸Ņ‚ŅŒ в Đ¸ĐˇĐąŅ€Đ°ĐŊĐŊĐžĐĩ", + "action.follow": "ĐžŅ‚ŅĐģĐĩĐļĐ¸Đ˛Đ°Ņ‚ŅŒ", + "action.follow.success": "В ĐžŅ‚ŅĐģĐĩĐļиваĐĩĐŧҋ҅", + "action.follow.error": "ĐžŅˆĐ¸ĐąĐēа ĐžŅ‚ŅĐģĐĩĐļиваĐŊĐ¸Ņ", + "action.unfollow": "ĐžŅ‚ĐŋĐ¸ŅĐ°Ņ‚ŅŒŅŅ", + "action.unfollow.success": "ĐžŅ‚ĐŋĐ¸ŅĐ°ĐŊ", + "action.unfollow.error": "ĐžŅˆĐ¸ĐąĐēа ĐžŅ‚ĐŋĐ¸ŅĐēи", + "action.playNext": "Đ’ĐžŅĐŋŅ€ĐžĐ¸ĐˇĐ˛ĐĩŅŅ‚Đ¸ даĐģĐĩĐĩ", + "action.playLater": "Đ’ĐžŅĐŋŅ€ĐžĐ¸ĐˇĐ˛ĐĩŅŅ‚Đ¸ ĐŋОСĐļĐĩ", + "action.startRadio": "ĐĄĐžĐˇĐ´Đ°Ņ‚ŅŒ ŅŅ‚Đ°ĐŊŅ†Đ¸ŅŽ", + "action.goToArtist": "ПĐĩŅ€ĐĩĐšŅ‚Đ¸ Đē Đ°Ņ€Ņ‚Đ¸ŅŅ‚Ņƒ", + "action.goToAlbum": "ПĐĩŅ€ĐĩĐšŅ‚Đ¸ Đē аĐģŅŒĐąĐžĐŧ҃", + "action.moveToTop": "ПĐĩŅ€ĐĩĐŧĐĩŅŅ‚Đ¸Ņ‚ŅŒ ĐŊавĐĩҀ҅", + "action.share": "ПодĐĩĐģĐ¸Ņ‚ŅŒŅŅ", + "action.rename": "ПĐĩŅ€ĐĩиĐŧĐĩĐŊĐžĐ˛Đ°Ņ‚ŅŒ", + "action.love": "ĐŅ€Đ°Đ˛Đ¸Ņ‚ŅŅ", + "action.unlove": "БоĐģҌ҈Đĩ ĐŊĐĩ ĐŊŅ€Đ°Đ˛Đ¸Ņ‚ŅŅ", + "action.dislike": "МĐĩĐŊҌ҈Đĩ ĐŋОдОйĐŊҋ҅ Ņ€ĐĩĐēĐžĐŧĐĩĐŊĐ´Đ°Ņ†Đ¸Đš", + "action.undoDislike": "ВĐĩŅ€ĐŊŅƒŅ‚ŅŒ ĐŋОдОйĐŊŅ‹Đĩ Ņ€ĐĩĐēĐžĐŧĐĩĐŊĐ´Đ°Ņ†Đ¸Đ¸", + "action.showWebRemoteQR": "ВĐĩĐą-иĐŊŅ‚ĐĩҀ҄ĐĩĐšŅ", + "action.playTracksNext": "Đ’ĐžŅĐŋŅ€ĐžĐ¸ĐˇĐ˛ĐĩŅŅ‚Đ¸ ${app.selectedMediaItems.length} ĐŋĐĩҁĐĩĐŊ ҁĐģĐĩĐ´ŅƒŅŽŅ‰Đ¸Đŧи", + "action.playTracksLater": "Đ’ĐžŅĐŋŅ€ĐžĐ¸ĐˇĐ˛ĐĩŅŅ‚Đ¸ ${app.selectedMediaItems.length} ĐŋĐĩҁĐĩĐŊ ĐŋОСĐļĐĩ", + "action.removeTracks": "ĐŖĐ´Đ°ĐģĐ¸Ņ‚ŅŒ ${self.selectedItems.length} ĐŋĐĩҁĐĩĐŊ иС ĐžŅ‡ĐĩŅ€Đĩди", + "action.import": "ИĐŧĐŋĐžŅ€Ņ‚", + "action.export": "Đ­ĐēҁĐŋĐžŅ€Ņ‚", + "action.showAlbum": "ПоĐēĐ°ĐˇĐ°Ņ‚ŅŒ вĐĩҁҌ аĐģŅŒĐąĐžĐŧ", + "action.tray.minimize": "ХвĐĩŅ€ĐŊŅƒŅ‚ŅŒ в ҂ҀĐĩĐš", + "action.tray.quit": "Đ’Ņ‹ĐšŅ‚Đ¸", + "action.tray.show": "ПоĐēĐ°ĐˇĐ°Ņ‚ŅŒ", + "action.update": "ОбĐŊĐžĐ˛Đ¸Ņ‚ŅŒ", + "action.copy": "ĐĄĐēĐžĐŋĐ¸Ņ€ĐžĐ˛Đ°Ņ‚ŅŒ", + "action.newpreset": "ĐĐžĐ˛Ņ‹Đš ĐŋŅ€ĐĩҁĐĩŅ‚...", + "action.deletepreset": "ĐŖĐ´Đ°ĐģĐ¸Ņ‚ŅŒ ĐŋŅ€ĐĩҁĐĩŅ‚", + "action.open": "ĐžŅ‚ĐēŅ€Ņ‹Ņ‚ŅŒ", + "settings.header.general": "ĐžĐąŅ‰Đ¸Đĩ", + "settings.header.general.description": "ĐĐ°ŅŅ‚Ņ€ĐžĐšĐēа ĐžĐąŅ‰Đ¸Ņ… ĐŋĐ°Ņ€Đ°ĐŧĐĩŅ‚Ņ€ĐžĐ˛ Cider.", + "settings.option.general.language": "Đ¯ĐˇŅ‹Đē", + "settings.option.general.language.main": "Đ¯ĐˇŅ‹Đēи", + "settings.option.general.language.fun": "ЗабавĐŊŅ‹Đĩ ŅĐˇŅ‹Đēи", + "settings.option.general.language.unsorted": "НĐĩĐžŅ‚ŅĐžŅ€Ņ‚Đ¸Ņ€ĐžĐ˛Đ°ĐŊĐŊŅ‹Đĩ", + "settings.option.general.updateCider": "ОбĐŊĐžĐ˛Đ¸Ņ‚ŅŒ Cider", + "settings.option.general.updateCider.branch": "ВĐĩŅ‚Đēа ОйĐŊОвĐģĐĩĐŊĐ¸Ņ Cider", + "settings.option.general.updateCider.branch.description": "Đ’Ņ‹ĐąĐĩŅ€Đ¸Ņ‚Đĩ вĐĩŅ‚Đē҃ ОйĐŊОвĐģĐĩĐŊĐ¸Ņ Cider", + "settings.option.general.updateCider.branch.main": "ĐĄŅ‚Đ°ĐąĐ¸ĐģҌĐŊĐ°Ņ", + "settings.option.general.updateCider.branch.develop": "НĐĩŅŅ‚Đ°ĐąĐ¸ĐģҌĐŊĐ°Ņ", + "settings.header.audio": "Đ—Đ˛ŅƒĐē", + "settings.header.audio.description": "ĐĐ°ŅŅ‚Ņ€ĐžĐšĐēа ĐˇĐ˛ŅƒĐēа Cider.", + "settings.option.audio.volumeStep": "Đ¨Đ°Đŗ ĐŗŅ€ĐžĐŧĐēĐžŅŅ‚Đ¸", + "settings.option.audio.maxVolume": "МаĐēŅĐ¸ĐŧаĐģҌĐŊĐ°Ņ ĐŗŅ€ĐžĐŧĐēĐžŅŅ‚ŅŒ", + "settings.option.audio.quality": "ĐšĐ°Ņ‡ĐĩŅŅ‚Đ˛Đž ĐˇĐ˛ŅƒĐēа", + "settings.header.audio.quality.hireslossless": "Đ’Ņ‹ŅĐžĐēĐžĐĩ Ņ€Đ°ĐˇŅ€Đĩ҈ĐĩĐŊиĐĩ, ĐąĐĩС ĐŋĐžŅ‚ĐĩŅ€ŅŒ", + "settings.header.audio.quality.hireslossless.description": "ALAC Đ´Đž 24 ĐąĐ¸Ņ‚/192 ĐēĐ“Ņ†", + "settings.header.audio.quality.lossless": "БĐĩС ĐŋĐžŅ‚ĐĩŅ€ŅŒ", + "settings.header.audio.quality.lossless.description": "ALAC Đ´Đž 24 ĐąĐ¸Ņ‚/48 ĐēĐ“Ņ†", + "settings.header.audio.quality.high": "Đ’Ņ‹ŅĐžĐēĐžĐĩ ĐēĐ°Ņ‡ĐĩŅŅ‚Đ˛Đž", + "settings.header.audio.quality.high.description": "AAC 256 ĐēĐą/ҁ", + "settings.header.audio.quality.standard": "Đ’Ņ‹ŅĐžĐēĐ°Ņ ŅŅ„Ņ„ĐĩĐēŅ‚Đ¸Đ˛ĐŊĐžŅŅ‚ŅŒ", + "settings.header.audio.quality.standard.description": "НЕ-ААХ Đ´ĐģŅ ŅĐēĐžĐŊĐžĐŧии Ņ‚Ņ€Đ°Ņ„Đ¸Đēа(64 ĐēĐą/ҁ)", + "settings.option.audio.seamlessTransition": "ПĐģавĐŊŅ‹Đš ĐŋĐĩŅ€ĐĩŅ…ĐžĐ´ ĐŧĐĩĐļĐ´Ņƒ ĐŋĐĩҁĐŊŅĐŧи", + "settings.option.audio.enableAdvancedFunctionality": "ВĐēĐģŅŽŅ‡Đ¸Ņ‚ŅŒ Ņ€Đ°ŅŅˆĐ¸Ņ€ĐĩĐŊĐŊŅ‹Đš Ņ„ŅƒĐŊĐēŅ†Đ¸ĐžĐŊаĐģ", + "settings.option.audio.enableAdvancedFunctionality.description": "ВĐēĐģŅŽŅ‡ĐĩĐŊиĐĩ Ņ„ŅƒĐŊĐēŅ†Đ¸Đ¸ AudioContext ĐŋОСвОĐģĐ¸Ņ‚ Đ¸ŅĐŋĐžĐģŅŒĐˇĐžĐ˛Đ°Ņ‚ŅŒ Ņ€Đ°ŅŅˆĐ¸Ņ€ĐĩĐŊĐŊŅ‹Đĩ Ņ„ŅƒĐŊĐēŅ†Đ¸Đ¸ ĐˇĐ˛ŅƒĐēа, Ņ‚Đ°ĐēиĐĩ ĐēаĐē ĐŊĐžŅ€ĐŧаĐģĐ¸ĐˇĐ°Ņ†Đ¸Ņ ĐˇĐ˛ŅƒĐēа, ŅĐēваĐģаКСĐĩҀҋ и Đ˛Đ¸ĐˇŅƒĐ°ĐģĐ¸ĐˇĐ°Ņ‚ĐžŅ€Ņ‹, ОдĐŊаĐēĐž в ĐŊĐĩĐēĐžŅ‚ĐžŅ€Ņ‹Ņ… ŅĐ¸ŅŅ‚ĐĩĐŧĐ°Ņ… ŅŅ‚Đž ĐŧĐžĐļĐĩŅ‚ Đ˛Ņ‹ĐˇĐ˛Đ°Ņ‚ŅŒ СаиĐēаĐŊиĐĩ ĐˇĐ˛ŅƒĐēĐžĐ˛Ņ‹Ņ… Đ´ĐžŅ€ĐžĐļĐĩĐē.", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processorâ„ĸī¸", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "ĐŸŅĐ¸Ņ…ĐžĐ°ĐēŅƒŅŅ‚Đ¸Ņ‡ĐĩҁĐēиĐĩ ҃ĐģŅƒŅ‡ŅˆĐĩĐŊĐ¸Ņ, ĐąĐģĐ°ĐŗĐžĐ´Đ°Ņ€Ņ ĐēĐžŅ‚ĐžŅ€Ņ‹Đŧ Đ˛ŅĐĩ ĐˇĐ˛ŅƒŅ‡Đ¸Ņ‚ ĐąĐžĐŗĐ°Ņ‡Đĩ и ĐļивĐĩĐĩ.", + "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP ĐŊĐĩ ŅĐžĐ˛ĐŧĐĩŅŅ‚Đ¸Đŧ ҁ ĐŋŅ€ĐžŅŅ‚Ņ€Đ°ĐŊŅŅ‚Đ˛ĐĩĐŊĐŊŅ‹Đŧ ĐˇĐ˛ŅƒŅ‡Đ°ĐŊиĐĩĐŧ. ПоĐļаĐģŅƒĐšŅŅ‚Đ°, ĐžŅ‚ĐēĐģŅŽŅ‡Đ¸Ņ‚Đĩ ĐŋŅ€ĐžŅŅ‚Ņ€Đ°ĐŊŅŅ‚Đ˛ĐĩĐŊĐŊĐžĐĩ ĐˇĐ˛ŅƒŅ‡Đ°ĐŊиĐĩ, Ņ‡Ņ‚ĐžĐąŅ‹ ĐŋŅ€ĐžĐ´ĐžĐģĐļĐ¸Ņ‚ŅŒ.", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "Đ ĐĩĐļиĐŧ CAP", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "ИСĐŧĐĩĐŊŅĐĩŅ‚ Ņ€ĐĩĐļиĐŧ ĐžĐąŅ€Đ°ĐąĐžŅ‚Đēи ĐˇĐ˛ŅƒĐēа. (Đ ĐĩĐļиĐŧ Đ°ĐŗŅ€ĐĩŅŅĐ¸Đ¸ ĐŧĐžĐļĐĩŅ‚ ĐŋŅ€Đ¸Đ˛ĐĩŅŅ‚Đ¸ Đē ĐŊĐĩĐļĐĩĐģаĐĩĐŧŅ‹Đŧ Ņ€ĐĩĐˇŅƒĐģŅŒŅ‚Đ°Ņ‚Đ°Đŧ)", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "ĐĄŅ‚Đ°ĐŊĐ´Đ°Ņ€Ņ‚ĐŊŅ‹Đš", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "ĐĐŗŅ€ĐĩŅŅĐ¸Đ˛ĐŊŅ‹Đš", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "ĐĐžŅ€ĐŧаĐģĐ¸ĐˇĐ°Ņ†Đ¸Ņ ĐˇĐ˛ŅƒĐēа", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "ĐĐžŅ€ĐŧаĐģĐ¸ĐˇŅƒĐĩŅ‚ ĐŋиĐēĐžĐ˛ŅƒŅŽ ĐŗŅ€ĐžĐŧĐēĐžŅŅ‚ŅŒ Đ´ĐģŅ ĐžŅ‚Đ´ĐĩĐģҌĐŊҋ҅ ҂ҀĐĩĐēОв, Ņ‡Ņ‚ĐžĐąŅ‹ ŅĐžĐˇĐ´Đ°Ņ‚ŅŒ йОĐģĐĩĐĩ ОдĐŊĐžŅ€ĐžĐ´ĐŊĐžĐĩ вĐŋĐĩŅ‡Đ°Ņ‚ĐģĐĩĐŊиĐĩ ĐžŅ‚ ĐŋŅ€ĐžŅĐģŅƒŅˆĐ¸Đ˛Đ°ĐŊĐ¸Ņ.", + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "ĐŸŅ€ĐžŅŅ‚Ņ€Đ°ĐŊŅŅ‚Đ˛ĐĩĐŊĐŊĐžĐĩ ĐˇĐ˛ŅƒŅ‡Đ°ĐŊиĐĩ", + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "ĐŸŅ€ĐžŅŅ‚Ņ€Đ°ĐŊŅŅ‚Đ˛ĐĩĐŊĐŊĐžĐĩ Đ°ŅƒĐ´Đ¸Đž; ŅĐ´ĐĩĐģĐ°Ņ‚ŅŒ ĐˇĐ˛ŅƒĐē йОĐģĐĩĐĩ ҂ҀĐĩŅ…ĐŧĐĩŅ€ĐŊŅ‹Đŧ (ĐŋŅ€Đ¸ĐŧĐĩŅ‡Đ°ĐŊиĐĩ: ŅŅ‚Đž ĐŊĐĩ Dolby Atmos)", + "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "ĐŸŅ€ĐžŅŅ‚Ņ€Đ°ĐŊŅŅ‚Đ˛ĐĩĐŊĐŊĐ°Ņ ĐžĐąŅ€Đ°ĐąĐžŅ‚Đēа ĐŊĐĩŅĐžĐ˛ĐŧĐĩŅŅ‚Đ¸Đŧа ҁ CAP. ПоĐļаĐģŅƒĐšŅŅ‚Đ°, ĐžŅ‚ĐēĐģŅŽŅ‡Đ¸Ņ‚Đĩ CAP, Ņ‡Ņ‚ĐžĐąŅ‹ ĐŋŅ€ĐžĐ´ĐžĐģĐļĐ¸Ņ‚ŅŒ.", + "settings.header.visual": "ВĐŊĐĩ҈ĐŊиК вид", + "settings.header.visual.description": "ĐĐ°ŅŅ‚Ņ€ĐžĐšĐēа вĐŊĐĩ҈ĐŊĐĩĐŗĐž вида Cider.", + "settings.option.visual.windowBackgroundStyle": "ĐĄŅ‚Đ¸ĐģҌ Ņ„ĐžĐŊа Cider", + "settings.header.visual.windowBackgroundStyle.none": "ĐžŅ‚ŅŅƒŅ‚ŅŅ‚Đ˛ŅƒĐĩŅ‚", + "settings.header.visual.windowBackgroundStyle.artwork": "ОбĐģĐžĐļĐēа", + "settings.header.visual.windowBackgroundStyle.image": "Đ˜ĐˇĐžĐąŅ€Đ°ĐļĐĩĐŊиĐĩ", + "settings.option.visual.animatedArtwork": "АĐŊиĐŧĐ¸Ņ€ĐžĐ˛Đ°ĐŊĐŊĐ°Ņ ОйĐģĐžĐļĐēа", + "settings.header.visual.animatedArtwork.always": "Đ’ŅĐĩĐŗĐ´Đ°", + "settings.header.visual.animatedArtwork.limited": "ĐžĐŗŅ€Đ°ĐŊĐ¸Ņ‡ĐĩĐŊĐž ҁĐŋĐĩŅ†Đ¸Đ°ĐģҌĐŊŅ‹Đŧи ŅŅ‚Ņ€Đ°ĐŊĐ¸Ņ†Đ°Đŧи", + "settings.header.visual.animatedArtwork.disable": "Đ’Ņ‹ĐēĐģŅŽŅ‡ĐĩĐŊĐž вĐĩСдĐĩ", + "settings.option.visual.animatedArtworkQuality": "ĐšĐ°Ņ‡ĐĩŅŅ‚Đ˛Đž аĐŊиĐŧĐ¸Ņ€ĐžĐ˛Đ°ĐŊĐŊОК ОйĐģĐžĐļĐēи", + "settings.header.visual.animatedArtworkQuality.low": "НизĐēĐžĐĩ", + "settings.header.visual.animatedArtworkQuality.medium": "ĐĄŅ€ĐĩĐ´ĐŊĐĩĐĩ", + "settings.header.visual.animatedArtworkQuality.high": "Đ’Ņ‹ŅĐžĐēĐžĐĩ", + "settings.header.visual.animatedArtworkQuality.veryHigh": "ĐžŅ‡ĐĩĐŊҌ Đ˛Ņ‹ŅĐžĐēĐžĐĩ", + "settings.header.visual.animatedArtworkQuality.extreme": "ĐĐ°Đ¸Đ˛Ņ‹ŅŅˆĐĩĐĩ", + "settings.option.visual.animatedWindowBackground": "АĐŊиĐŧĐ¸Ņ€ĐžĐ˛Đ°ĐŊĐŊŅ‹Đš Ņ„ĐžĐŊ ĐžĐēĐŊа Cider", + "settings.option.visual.hardwareAcceleration": "АĐŋĐŋĐ°Ņ€Đ°Ņ‚ĐŊĐžĐĩ ҃ҁĐēĐžŅ€ĐĩĐŊиĐĩ", + "settings.option.visual.hardwareAcceleration.description": "ĐĸŅ€ĐĩĐąŅƒĐĩŅ‚ ĐŋĐĩŅ€ĐĩĐˇĐ°ĐŗŅ€ŅƒĐˇĐēи ĐŋŅ€Đ¸ĐģĐžĐļĐĩĐŊĐ¸Ņ", + "settings.header.visual.hardwareAcceleration.default": "По ҃ĐŧĐžĐģŅ‡Đ°ĐŊĐ¸ŅŽ", + "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", + "settings.header.visual.theme": "ĐĸĐĩĐŧа", + "settings.option.visual.theme.github.download": "ĐŖŅŅ‚Đ°ĐŊĐžĐ˛Đ¸Ņ‚ŅŒ ҁ GitHub", + "settings.option.visual.theme.github.explore": "Đ˜ŅŅĐģĐĩĐ´ĐžĐ˛Đ°Ņ‚ŅŒ Ņ‚ĐĩĐŧŅ‹ ҁ GitHub", + "settings.option.visual.theme.github.install.confirm": "Đ’Ņ‹ ŅƒĐ˛ĐĩŅ€ĐĩĐŊŅ‹, Ņ‡Ņ‚Đž Ņ…ĐžŅ‚Đ¸Ņ‚Đĩ ŅƒŅŅ‚Đ°ĐŊĐžĐ˛Đ¸Ņ‚ŅŒ {{ repo }}?", + "settings.prompt.visual.theme.github.URL": "ВвĐĩĐ´Đ¸Ņ‚Đĩ URL Ņ‚ĐĩĐŧŅ‹, ĐēĐžŅ‚ĐžŅ€ŅƒŅŽ Ņ…ĐžŅ‚Đ¸Ņ‚Đĩ ŅƒŅŅ‚Đ°ĐŊĐžĐ˛Đ¸Ņ‚ŅŒ", + "settings.notyf.visual.theme.install.success": "ĐĸĐĩĐŧа ҃ҁĐŋĐĩ҈ĐŊĐž ŅƒŅŅ‚Đ°ĐŊОвĐģĐĩĐŊа", + "settings.notyf.visual.theme.install.error": "НĐĩ ŅƒĐ´Đ°ĐģĐžŅŅŒ ŅƒŅŅ‚Đ°ĐŊĐžĐ˛Đ¸Ņ‚ŅŒ Ņ‚ĐĩĐŧ҃", + "settings.option.visual.theme.default": "Cider", + "settings.option.visual.theme.dark": "ĐĸŅ‘ĐŧĐŊĐ°Ņ", + "settings.option.visual.showPersonalInfo": "ПоĐēĐ°ĐˇĐ°Ņ‚ŅŒ ĐģĐ¸Ņ‡ĐŊŅƒŅŽ иĐŊŅ„ĐžŅ€ĐŧĐ°Ņ†Đ¸ŅŽ", + "settings.header.lyrics": "ĐĸĐĩĐēҁ҂ ĐŋĐĩҁĐŊи", + "settings.header.lyrics.description": "ĐĐ°ŅŅ‚Ņ€ĐžĐšĐēа Ņ‚ĐĩĐēŅŅ‚Đ° ĐŋĐĩҁĐĩĐŊ.", + "settings.option.lyrics.enableMusixmatch": "ПоĐģŅƒŅ‡Đ°Ņ‚ŅŒ Ņ‚ĐĩĐēҁ҂ ĐŋĐĩҁĐĩĐŊ иС Musixmatch", + "settings.option.lyrics.enableMusixmatchKaraoke": "ВĐēĐģŅŽŅ‡Đ¸Ņ‚ŅŒ Ņ€ĐĩĐļиĐŧ ĐēĐ°Ņ€Đ°ĐžĐēĐĩ (Ņ‚ĐžĐģҌĐēĐž ҁ Musixmatch)", + "settings.option.lyrics.musixmatchPreferredLanguage": "ĐŸŅ€ĐĩĐ´ĐŋĐžŅ‡Ņ‚Đ¸Ņ‚ĐĩĐģҌĐŊŅ‹Đš ŅĐˇŅ‹Đē ĐŋĐĩŅ€ĐĩвОда Musixmatch", + "settings.option.lyrics.enableYoutubeLyrics": "ВĐēĐģŅŽŅ‡Đ¸Ņ‚ŅŒ Youtube Lyrics Đ´ĐģŅ ĐŧŅƒĐˇŅ‹ĐēаĐģҌĐŊҋ҅ ĐēĐģиĐŋОв", + "settings.header.connectivity": "ĐŸŅ€ĐžŅ‡ĐĩĐĩ", + "settings.header.connectivity.description": "ĐĐ°ŅŅ‚Ņ€ĐžĐšĐēа ĐŋŅ€ĐžŅ‡Đ¸Ņ… ĐŋĐ°Ņ€Đ°ĐŧĐĩŅ‚Ņ€ĐžĐ˛ Cider.", + "settings.option.connectivity.discordRPC": "Discord Rich Presence", + "settings.option.connectivity.playbackNotifications": "ĐŖĐ˛ĐĩĐ´ĐžĐŧĐģĐĩĐŊĐ¸Ņ Đž Đ˛ĐžŅĐŋŅ€ĐžĐ¸ĐˇĐ˛ĐĩĐ´ĐĩĐŊии", + "settings.header.connectivity.discordRPC.cider": "ĐžŅ‚ĐžĐąŅ€Đ°ĐļĐ°Ņ‚ŅŒ ĐēаĐē 'Cider'", + "settings.header.connectivity.discordRPC.appleMusic": "ĐžŅ‚ĐžĐąŅ€Đ°ĐļĐ°Ņ‚ŅŒ ĐēаĐē 'Apple Music'", + "settings.option.connectivity.discordRPC.clearOnPause": "ĐžŅ‚ĐēĐģŅŽŅ‡Đ°Ņ‚ŅŒ Discord Rich Presence ĐŊа ĐŋĐ°ŅƒĐˇĐĩ", + "settings.option.connectivity.lastfmScrobble": "Last.fm cĐēŅ€ĐžĐąĐąĐģиĐŊĐŗ", + "settings.option.connectivity.lastfmScrobble.delay": "Đ§Đ°ŅŅ‚ĐžŅ‚Đ° ҁĐēŅ€ĐžĐąĐąĐģиĐŊĐŗĐ° Last.fm (%)", + "settings.option.connectivity.lastfmScrobble.nowPlaying": "ВĐēĐģŅŽŅ‡Đ¸Ņ‚ŅŒ Last.fm ĐĄĐĩĐšŅ‡Đ°Ņ Đ¸ĐŗŅ€Đ°ĐĩŅ‚", + "settings.option.connectivity.lastfmScrobble.removeFeatured": "ĐŖĐ´Đ°ĐģŅŅ‚ŅŒ Ņ„Đ¸Ņ‚-Đ¸ŅĐŋĐžĐģĐŊĐ¸Ņ‚ĐĩĐģĐĩĐš иС ĐŊаСваĐŊĐ¸Ņ ĐŋĐĩҁĐŊи (Last.fm)", + "settings.option.connectivity.lastfmScrobble.filterLoop": "ФиĐģŅŒŅ‚Ņ€ĐžĐ˛Đ°Ņ‚ŅŒ ĐˇĐ°Ņ†Đ¸ĐēĐģĐĩĐŊĐŊŅ‹Đš ҂ҀĐĩĐē (Last.fm)", + "settings.header.debug": "Debug", + "settings.option.debug.copy_log": "КоĐŋĐ¸Ņ€ĐžĐ˛Đ°Ņ‚ŅŒ ĐģĐžĐŗĐ¸ в ĐąŅƒŅ„ĐĩŅ€ ОйĐŧĐĩĐŊа", + "settings.option.debug.openAppData": "ĐžŅ‚ĐēŅ€Ņ‹Ņ‚ŅŒ ĐŋаĐŋĐē҃ Cider", + "settings.header.experimental": "Đ­ĐēҁĐŋĐĩŅ€Đ¸ĐŧĐĩĐŊŅ‚Đ°ĐģҌĐŊŅ‹Đĩ", + "settings.header.experimental.description": "ĐĐ°ŅŅ‚Ņ€ĐžĐšĐēа ŅĐēҁĐŋĐĩŅ€Đ¸ĐŧĐĩĐŊŅ‚Đ°ĐģҌĐŊҋ҅ Ņ„ŅƒĐŊĐēŅ†Đ¸Đš Cider.", + "settings.option.experimental.compactUI": "КоĐŧĐŋаĐēŅ‚ĐŊŅ‹Đš иĐŊŅ‚ĐĩҀ҄ĐĩĐšŅ", + "settings.option.window.close_button_hide": "КĐŊĐžĐŋĐēа ÂĢЗаĐēŅ€Ņ‹Ņ‚ŅŒÂģ ҁĐēŅ€Ņ‹Đ˛Đ°ĐĩŅ‚ ĐŋŅ€Đ¸ĐģĐžĐļĐĩĐŊиĐĩ", + "settings.option.experimental.inline_playlists": "Đ’ŅŅ‚Ņ€ĐžĐĩĐŊĐŊŅ‹Đĩ ĐŋĐģĐĩĐšĐģĐ¸ŅŅ‚Ņ‹ и аĐģŅŒĐąĐžĐŧŅ‹", + "spatial.notTurnedOn": "ĐŸŅ€ĐžŅŅ‚Ņ€Đ°ĐŊŅŅ‚Đ˛ĐĩĐŊĐŊĐžĐĩ Đ°ŅƒĐ´Đ¸Đž ĐžŅ‚ĐēĐģŅŽŅ‡ĐĩĐŊĐž. Đ§Ņ‚ĐžĐąŅ‹ Đ¸ŅĐŋĐžĐģŅŒĐˇĐžĐ˛Đ°Ņ‚ŅŒ, ҁĐŊĐ°Ņ‡Đ°Đģа вĐēĐģŅŽŅ‡Đ¸Ņ‚Đĩ ĐĩĐŗĐž.", + "spatial.spatialProperties": "ĐĐ°ŅŅ‚Ņ€ĐžĐšĐēа ĐŋŅ€ĐžŅŅ‚Ņ€Đ°ĐŊŅŅ‚Đ˛ĐĩĐŊĐŊĐžĐŗĐž Đ°ŅƒĐ´Đ¸Đž", + "spatial.width": "Đ¨Đ¸Ņ€Đ¸ĐŊа", + "spatial.height": "Đ’Ņ‹ŅĐžŅ‚Đ°", + "spatial.depth": "ГĐģŅƒĐąĐ¸ĐŊа", + "spatial.gain": "ĐŖŅĐ¸ĐģĐĩĐŊиĐĩ", + "spatial.roomMaterials": "ĐœĐ°Ņ‚ĐĩŅ€Đ¸Đ°ĐģŅ‹ ĐēĐžĐŧĐŊĐ°Ņ‚Ņ‹", + "spatial.roomDimensions": "РаСĐŧĐĩҀҋ ĐēĐžĐŧĐŊĐ°Ņ‚Ņ‹", + "spatial.roomPositions": "ĐŸĐžĐˇĐ¸Ņ†Đ¸Đ¸ ĐēĐžĐŧĐŊĐ°Ņ‚Ņ‹", + "spatial.setDimensions": "ĐŖŅŅ‚Đ°ĐŊĐžĐ˛Đ¸Ņ‚ŅŒ Ņ€Đ°ĐˇĐŧĐĩҀҋ", + "spatial.setPositions": "ĐŖŅŅ‚Đ°ĐŊĐžĐ˛Đ¸Ņ‚ŅŒ ĐŋĐžĐˇĐ¸Ņ†Đ¸Đ¸", + "spatial.up": "ХвĐĩŅ€Ņ…Ņƒ", + "spatial.front": "ĐĄĐŋĐĩŅ€Đĩди", + "spatial.left": "ĐĄĐģĐĩва", + "spatial.right": "ĐĄĐŋŅ€Đ°Đ˛Đ°", + "spatial.back": "ХСади", + "spatial.down": "ĐĄĐŊĐ¸ĐˇŅƒ", + "spatial.listener": "ĐĄĐģŅƒŅˆĐ°Ņ‚ĐĩĐģҌ", + "spatial.audioSource": "Đ˜ŅŅ‚ĐžŅ‡ĐŊиĐē ĐˇĐ˛ŅƒĐēа", + "settings.header.unfinished": "НĐĩ СавĐĩŅ€ŅˆĐĩĐŊĐž", + "remote.web.title": "ВĐĩĐą-иĐŊŅ‚ĐĩҀ҄ĐĩĐšŅ", + "remote.web.description": "ĐžŅ‚ŅĐēаĐŊĐ¸Ņ€ŅƒĐšŅ‚Đĩ QR-ĐēОд, Ņ‡Ņ‚ĐžĐąŅ‹ ĐŋОдĐēĐģŅŽŅ‡Đ¸Ņ‚ŅŒ Ņ‚ĐĩĐģĐĩŅ„ĐžĐŊ Đē Cider Remote", + "about.thanks": "БоĐģŅŒŅˆĐžĐĩ ҁĐŋĐ°ŅĐ¸ĐąĐž ĐēĐžĐŧаĐŊĐ´Đĩ Cider Collective и Đ˛ŅĐĩĐŧ ĐŊĐ°ŅˆĐ¸Đŧ вĐēĐģĐ°Đ´Ņ‡Đ¸ĐēаĐŧ." +} diff --git a/src/i18n/sk_SK.jsonc b/src/i18n/sk_SK.json similarity index 85% rename from src/i18n/sk_SK.jsonc rename to src/i18n/sk_SK.json index 95100010..718e7148 100644 --- a/src/i18n/sk_SK.jsonc +++ b/src/i18n/sk_SK.json @@ -1,25 +1,15 @@ -{ // Base File - - // i18n Info - "i18n.languageName": "Slovenčina (SK)", // name of language in native language - "i18n.languageNameEnglish": "Slovak (SK)", // name of language in English - "i18n.category": "main", // main = real language, fun = fun community languages - "i18n.authors": "@jurosic", // Authors, if you contribute to this file feel free to add your name seperated with a space - - // App info +{ + "i18n.languageName": "Slovenčina (SK)", + "i18n.languageNameEnglish": "Slovak (SK)", + "i18n.category": "main", + "i18n.authors": "@jurosic-JurajJanosik", "app.name": "Cider", - "date.format": "${d} ${m}, ${y}", - - // Dialogs "dialog.cancel": "ZruÅĄit", "dialog.ok": "OK", - - // Notification "notification.updatingLibrarySongs": "Aktualizujem pesničky v kniÅžnici...", "notification.updatingLibraryAlbums": "Aktualizujem albumy v kniÅžnici...", "notification.updatingLibraryArtists": "Aktualizujem tvorcov v kniÅžnici...", - // Terms "term.appleInc": "Apple Inc.", "term.appleMusic": "Apple Music", "term.applePodcasts": "Apple Podcasts", @@ -31,7 +21,7 @@ "term.logout": "OdhlÃĄsiÅĨ", "term.login": "PrihlÃĄsiÅĨ", "term.about": "About", - "term.privateSession": "OsobnÃŊ Session", + "term.privateSession": "Skuromn PočÃēvanie", "term.queue": "Poradie", "term.search": "VyhlÃĄdavaÅĨ", "term.library": "KniÅžnica", @@ -76,8 +66,8 @@ "term.viewAs.coverArt": "NÃĄhÄžadovka", "term.viewAs.list": "List", "term.size": "VelkosÅĨ", - "term.size.normal": "Normal", - "term.size.compact": "Compact", + "term.size.normal": "NormÃĄlny", + "term.size.compact": "KompaktnÃŊ", "term.enable": "ZapnÃēÅĨ", "term.disable": "VypnÃēÅĨ", "term.enabled": "ZapnutÊ", @@ -91,7 +81,7 @@ "term.less": "Menej", "term.showMore": "UkÃĄzaÅĨ viac", "term.showLess": "UkÃĄzaÅĨ menej", - "term.topSongs" : "Top Pesničky", + "term.topSongs": "Top Pesničky", "term.latestReleases": "NajnovÅĄie vydania", "term.time.added": "PridanÊ", "term.time.released": "VydanÊ", @@ -120,14 +110,11 @@ "term.contributors": "Contributors", "term.equalizer": "Equalizer", "term.reset": "ResetovaÅĨ", - "term.tracks": "pesničiek", // Assume x amount of tracks. e.g. 50 tracks + "term.tracks": "pesničiek", "term.videos": "VideÃĄ", "term.menu": "Menu", "term.check": "SkontrolovaÅĨ", - "term.aboutArtist": "Viac o {{artistName}}", // e.g. 'About Doja Cat' - "term.updateCider": "AktualizovaÅĨ Cider", - - // Home + "term.aboutArtist": "Viac o {{artistName}}", "home.title": "Domov", "home.recentlyPlayed": "NedÃĄvno PrehranÊ", "home.recentlyAdded": "NedÃĄvno PridanÊ", @@ -136,13 +123,10 @@ "home.madeForYou": "RobenÊ Pre Teba", "home.friendsListeningTo": "KamarÃĄti počÃēvajÃē", "home.followedArtists": "SledovanÃŊ Tvorcovia", - // Errors "error.appleMusicSubRequired": "Apple Music potrebuje subscription.", "error.connectionError": "Pri pripojovaní ku Apple Music sa vyskytol problÊm", "error.noResults": "ÅŊiadne vÃŊsledky", "error.noResults.description": "SkÃēs novÊ vyhÄžÃĄdavanie", - - //Podcasts "podcast.followOnCider": "Sleduj na Cider", "podcast.followedOnCider": "SledovanÊ na Cider", "podcast.subscribeOnItunes": "Odoberaj na iTunes", @@ -151,8 +135,6 @@ "podcast.episodes": "EpizÃŗdy", "podcast.playEpisode": "Prehraj EpizÃŗdu", "podcast.website": "StrÃĄnka Podcastu", - - // Actions "action.addToLibrary": "Pridaj do KniÅžnice", "action.addToLibrary.success": "PridanÊ do KniÅžnice", "action.addToLibrary.error": "Pri pridÃĄvani do KniÅžnice sa vzskytol problÊm", @@ -197,88 +179,77 @@ "action.tray.quit": "OdísÅĨ", "action.tray.show": "UkÃĄzaÅĨ", "action.update": "AktualizovaÅĨ", - - // Settings - General - "settings.header.general": "vÅĄeobecnÊ", + "settings.header.general": "VÅĄeobecnÊ", "settings.header.general.description": "ZmeniÅĨ vÅĄeobecnÊ nastavenia pre Cider.", "settings.option.general.language": "Jazyk", - - // Language optgroups "settings.option.general.language.main": "Jazyky", "settings.option.general.language.fun": "ZÃĄbanve Jazyky", "settings.option.general.language.unsorted": "NepotriedenÊ", - - // Settings - Audio + "settings.option.general.updateCider": "AktualizovaÅĨ Cider", "settings.header.audio": "Zvuk", "settings.header.audio.description": "ZmeniÅĨ nastavenia zvuku pre Cider.", - "settings.option.audio.quality": "Kvalita zvuku", // Dropdown + "settings.option.audio.quality": "Kvalita zvuku", "settings.header.audio.quality.high": "VysokÃĄ", "settings.header.audio.quality.low": "NizkÃĄ", "settings.header.audio.quality.auto": "AutomatickÊ", - "settings.option.audio.seamlessTransition": "HladkÃŊ Prevod Zvuku", // Toggle - "settings.option.audio.enableAdvancedFunctionality": "ZapnÃēt PokročilÊ Nastavenia Zvuku", // Toggle + "settings.option.audio.seamlessTransition": "HladkÃŊ Prevod Zvuku", + "settings.option.audio.enableAdvancedFunctionality": "ZapnÃēt PokročilÊ Nastavenia Zvuku", "settings.option.audio.enableAdvancedFunctionality.description": "Zapnutie AudioContext funkcionality dovolí rozÅĄÃ­renÊ funkcie zvuku ako ZvukovÃĄ NormalizÃĄvia , EqualizÊry a Visualízery, ale na niektorÃŊch systÊmoch to moÅže spôsobiÅĨ problÊmy so zvukom.", - "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalízacia Zvuku", // Toggle + "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processorâ„ĸī¸", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "PsychoakustickÊ VylepÅĄenia ktorÊ urobia zvuk viac bohatÃŊ a ÅživÃŊ.", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Sila", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Zmení silu CAP (AgresívnÃĄ môŞe spôsobiÅĨ neÅžiadanÊ vÃŊsledky)", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Å tandardnÃĄ", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "AgresívnÃĄ", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalízacia Zvuku", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalizuje silu zvuku v pesničkÃĄch pre hÄžadÅĄÃ­ počÃēvací zÃĄÅžitok", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "PriestorovÃŊ Zvuk", // Toggle + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "PriestorovÃŊ Zvuk", "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "PriestorovÃŊ zvuk urobí zvuk 3-dimenzionÃĄlny (poznÃĄmka: Toto nie je Dolby Atmos)", - // Settings - Visual "settings.header.visual": "VisuÃĄlne", "settings.header.visual.description": "Zmenit VisuÃĄlne nastavenia pre Cider.", - "settings.option.visual.windowBackgroundStyle": "Å tÃŊl pozadia okna", // Toggle + "settings.option.visual.windowBackgroundStyle": "Å tÃŊl pozadia okna", "settings.header.visual.windowBackgroundStyle.none": "ÅŊiadne", "settings.header.visual.windowBackgroundStyle.artwork": "NÃĄhÄžadovka", "settings.header.visual.windowBackgroundStyle.image": "ObrÃĄtok", - "settings.option.visual.animatedArtwork": "AnimovanÊ NÃĄhÄžadovky", // Dropdown + "settings.option.visual.animatedArtwork": "AnimovanÊ NÃĄhÄžadovky", "settings.header.visual.animatedArtwork.always": "VÅždy", "settings.header.visual.animatedArtwork.limited": "LimitovanÊ pre strÃĄnky a ÅĄpecialne vydania", "settings.header.visual.animatedArtwork.disable": "VypnuÅĨ VÅĄade", - "settings.option.visual.animatedArtworkQuality": "Kvalita Animovanej NÃĄhÄžadovky", // Dropdown + "settings.option.visual.animatedArtworkQuality": "Kvalita Animovanej NÃĄhÄžadovky", "settings.header.visual.animatedArtworkQuality.low": "Nízka", "settings.header.visual.animatedArtworkQuality.medium": "StrednÃĄ", "settings.header.visual.animatedArtworkQuality.high": "VysokÃĄ", "settings.header.visual.animatedArtworkQuality.veryHigh": "VeÄžmi VysokÃĄ", "settings.header.visual.animatedArtworkQuality.extreme": "ExtrÊmna", - "settings.option.visual.animatedWindowBackground": "Pozadie AnimovÃĄneho Okna", // Toggle - "settings.option.visual.hardwareAcceleration": "HardvÊrova AkcelerÃĄcia", // Dropdown + "settings.option.visual.animatedWindowBackground": "Pozadie AnimovÃĄneho Okna", + "settings.option.visual.hardwareAcceleration": "HardvÊrova AkcelerÃĄcia", "settings.option.visual.hardwareAcceleration.description": "VyÅžaduje ReÅĄtart", "settings.header.visual.hardwareAcceleration.default": "PredvoÄžba", "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", - // Refer to term.disabled for the disabled option - "settings.option.visual.showPersonalInfo": "ZobraziÅĨ osobnÊ informÃĄcie", // Toggle - - // Settings - Lyrics + "settings.header.visual.theme": "Theme", + "settings.option.visual.theme.default": "Cider", + "settings.option.visual.theme.dark": "Dark", + "settings.option.visual.showPersonalInfo": "ZobraziÅĨ osobnÊ informÃĄcie", "settings.header.lyrics": "Text", "settings.header.lyrics.description": "Zmenit nastavenia textu pre Cider.", - "settings.option.lyrics.enableMusixmatch": "ZapnÃēÅĨ Musixmatch Texty", // Toggle - "settings.option.lyrics.enableMusixmatchKaraoke": "ZapnÃēÅĨ Karaoke ReÅžim (Iba pre Musixmatch)", // Toggle - "settings.option.lyrics.musixmatchPreferredLanguage": "PredvolenÃŊ jazyk pre Musixmatch prekladanie", // Dropdown - "settings.option.lyrics.enableYoutubeLyrics": "ZapnÃēÅĨ Youtube Lyrics pre videÃĄ", // Toggle - - // Settings - Connectivity + "settings.option.lyrics.enableMusixmatch": "ZapnÃēÅĨ Musixmatch Texty", + "settings.option.lyrics.enableMusixmatchKaraoke": "ZapnÃēÅĨ Karaoke ReÅžim (Iba pre Musixmatch)", + "settings.option.lyrics.musixmatchPreferredLanguage": "PredvolenÃŊ jazyk pre Musixmatch prekladanie", + "settings.option.lyrics.enableYoutubeLyrics": "ZapnÃēÅĨ Youtube Lyrics pre videÃĄ", "settings.header.connectivity": "Konektivita", "settings.header.connectivity.description": "ZmeniÅĨ nastavenia konektivity pre Cider.", - "settings.option.connectivity.discordRPC": "ZobraziÅĨ status v Discord", // Dropdown - "settings.option.connectivity.playbackNotifications": "NotifikÃĄcie", // Toggle - // Refer to term.disabled for the disabled option + "settings.option.connectivity.discordRPC": "ZobraziÅĨ status v Discord", + "settings.option.connectivity.playbackNotifications": "NotifikÃĄcie", "settings.header.connectivity.discordRPC.cider": "ZobraziÅĨ ako 'Cider'", "settings.header.connectivity.discordRPC.appleMusic": "ZobraziÅĨ ako 'Apple Music'", - "settings.option.connectivity.discordRPC.clearOnPause": "VypnÃēt Discord status pri Pauze", // Toggle - "settings.option.connectivity.lastfmScrobble": "Last.fm zaznamenanie počÃēvanej hudby", // Option to Connect + "settings.option.connectivity.discordRPC.clearOnPause": "VypnÃēt Discord status pri Pauze", + "settings.option.connectivity.lastfmScrobble": "Last.fm zaznamenanie počÃēvanej hudby", "settings.option.connectivity.lastfmScrobble.delay": "Last.fm Oneskorenie (%)", "settings.option.connectivity.lastfmScrobble.nowPlaying": "ZapnÃēÅĨ Last.fm Now Playing", "settings.option.connectivity.lastfmScrobble.removeFeatured": "OdstrÃĄniÅĨ tvorcov z počÃēvanej pesničky (Last.fm)", "settings.option.connectivity.lastfmScrobble.filterLoop": "FiltrovaÅĨ loopovanÊ pesničky (Last.fm)", - // Refer to term.connect for the connect button - - // Settings - Experimental "settings.header.experimental": "ExperimentÃĄlne", "settings.header.experimental.description": "ZmeniÅĨ experimentÃĄlne nastavenia pre Cider.", - "settings.option.experimental.compactUI": "Compact UI", // Toggle - "settings.option.experimental.close_button_hide": "ZatvoriÅĨ by malo skriÅĨ aplikÃĄciu", - // Refer to term.disabled & term.enabled - - // Spatialization Menu "spatial.notTurnedOn": "PriestorovÃŊ Zvuk je vypnutÃŊ. Prosím najprv ho zapnite.", "spatial.spatialProperties": "Å peciÃĄlne Nastavenia", "spatial.width": "Šírka", @@ -298,14 +269,8 @@ "spatial.down": "Dole", "spatial.listener": "Listener", "spatial.audioSource": "Zdroj zvuku", - - // Settings - Unfinished "settings.header.unfinished": "NedokončenÊ", - - // Web Remote "remote.web.title": "Cider Remote", "remote.web.description": "Naskenujte QR kÃŗd aby ste si spÃĄrovali telefÃŗn s touto Cider session", - - // About "about.thanks": "Ďakujeme Cider Tímu, Komunite a KontribÃētorom, bez vÃĄs by to nebolo moÅžnÊ." -} +} \ No newline at end of file diff --git a/src/i18n/source/en_US.json b/src/i18n/source/en_US.json new file mode 100644 index 00000000..73656dc8 --- /dev/null +++ b/src/i18n/source/en_US.json @@ -0,0 +1,425 @@ +{ + "i18n.languageName": "English (US)", + "i18n.languageNameEnglish": "English (US)", + "i18n.category": "main", + "i18n.authors": "@maikirakiwi @kyw504100 @nosh118", + "app.name": "Cider", + "date.format": "${m} ${d}, ${y}", + "dialog.cancel": "Cancel", + "dialog.ok": "OK", + "notification.updatingLibrarySongs": "Updating library songs...", + "notification.updatingLibraryAlbums": "Updating library albums...", + "notification.updatingLibraryArtists": "Updating library artists...", + "term.appleInc": "Apple Inc.", + "term.appleMusic": "Apple Music", + "term.applePodcasts": "Apple Podcasts", + "term.itunes": "iTunes", + "term.github": "GitHub", + "term.discord": "Discord", + "term.learnMore": "Learn more", + "term.accountSettings": "Account Settings", + "term.logout": "Logout", + "term.login": "Log In", + "term.about": "About", + "term.privateSession": "Private Session", + "term.queue": "Queue", + "term.lyrics": "Lyrics", + "term.miniplayer": "MiniPlayer", + "term.history": "History", + "term.search": "Search", + "term.library": "Library", + "term.listenNow": "Listen Now", + "term.browse": "Browse", + "term.radio": "Radio", + "term.recentlyAdded": "Recently Added", + "term.songs": "Songs", + "term.albums": "Albums", + "term.artists": "Artists", + "term.podcasts": "Podcasts", + "term.playlists": "Playlists", + "term.playlist": "Playlist", + "term.newPlaylist": "New Playlist", + "term.newPlaylistFolder": "New Playlist Folder", + "term.createNewPlaylist": "Create New Playlist", + "term.createNewPlaylistFolder": "Create New Playlist Folder", + "term.deletePlaylist": "Are you sure you want to delete this playlist?", + "term.play": "Play", + "term.pause": "Pause", + "term.previous": "Previous", + "term.next": "Next", + "term.shuffle": "Shuffle", + "term.repeat": "Repeat", + "term.volume": "Volume", + "term.mute": "Mute", + "term.unmute": "Unmute", + "term.share": "Share", + "term.share.success": "Copied to clipboard", + "term.settings": "Settings", + "term.seeAll": "See All", + "term.sortBy": "Sort By", + "term.sortBy.album": "Album", + "term.sortBy.artist": "Artist", + "term.sortBy.name": "Name", + "term.sortBy.genre": "Genre", + "term.sortBy.releaseDate": "Release Date", + "term.sortBy.duration": "Duration", + "term.sortBy.dateAdded": "Date Added", + "term.sortOrder": "A-Z", + "term.sortOrder.ascending": "Ascending", + "term.sortOrder.descending": "Descending", + "term.viewAs": "View As", + "term.viewAs.coverArt": "Cover Art", + "term.viewAs.list": "List", + "term.size": "Size", + "term.size.normal": "Normal", + "term.size.compact": "Compact", + "term.enable": "Enable", + "term.disable": "Disable", + "term.enabled": "Enabled", + "term.disabled": "Disabled", + "term.connect": "Connect", + "term.connecting": "Connecting", + "term.disconnect": "Disconnect", + "term.authed": "Authed", + "term.confirm": "Confirm?", + "term.more": "More", + "term.less": "Less", + "term.showMore": "Show more", + "term.showLess": "Show less", + "term.topSongs": "Top Songs", + "term.latestReleases": "Latest Releases", + "term.time.added": "Added", + "term.time.released": "Released", + "term.time.updated": "Updated", + "term.time.days": "days", + "term.time.day": { + "one": "day", + "other": "days" + }, + "term.time.hours": "hours", + "term.time.hour": { + "one": "hour", + "other": "hours" + }, + "term.time.minutes": "minutes", + "term.time.minute": { + "one": "minute", + "other": "minutes" + }, + "term.time.seconds": "seconds", + "term.time.second": { + "one": "second", + "other": "seconds" + }, + "term.fullscreenView": "Fullscreen View", + "term.defaultView": "Default View", + "term.audioSettings": "Audio Settings", + "term.audioControls": "Volume Controls", + "term.clearAll": "Clear All", + "term.recentStations": "Recent Stations", + "term.language": "Language", + "term.funLanguages": "Fun", + "term.noLyrics": "Loading... / Lyrics not found./ Instrumental.", + "term.copyright": "Copyright", + "term.rightsReserved": "All Rights Reserved.", + "term.sponsor": "Sponsor this project", + "term.ciderTeam": "Cider Team", + "term.developer": "Developer", + "term.socialTeam": "Social Team", + "term.socials": "Socials", + "term.contributors": "Contributors", + "term.equalizer": "Equalizer", + "term.reset": "Reset", + "term.tracks": "tracks", + "term.track": { + "one" : "track", + "other" : "tracks" + }, + "term.videos": "Videos", + "term.menu": "Menu", + "term.check": "Check", + "term.aboutArtist": "About {{artistName}}", + "term.topResult": "Top Result", + "term.sharedPlaylists": "Shared Playlists", + "term.people": "People", + "term.newpreset.name": "New EQ Preset Name", + "term.addedpreset": "Added Preset", + "term.deletepreset.warn": "Are you sure you want to delete this preset?", + "term.deletedpreset": "Removed preset", + "term.defaultPresets": "Default Presets", + "term.userPresets": "User Presets", + "term.requestError": "There was a problem with the request.", + "term.song.link.generate": "Getting song.link share URL...", + "term.musicVideos": "Music Videos", + "term.stations": "Stations", + "term.curators": "Curators", + "term.appleCurators": "Apple Curators", + "term.radioShows": "Radio Shows", + "term.recordLabels": "Record Labels", + "term.videoExtras": "Video Extras", + "term.top": "Top", + "term.version": "Version", + "term.noVideos": "No videos found.", + "term.plugin": "Plug-in", + "term.pluginMenu": "Plug-in Menu", + "term.pluginMenu.none": "No interactive plugins", + "term.replay": "Replay", + "term.uniqueAlbums": "Unique Albums", + "term.uniqueArtists": "Unique Artists", + "term.uniqueSongs": "Unique Songs", + "term.topArtists": "Top Artists", + "term.listenedTo": "Listened to:", + "term.times": "times", + "term.topAlbums": "Top Albums", + "term.plays": "Plays", + "term.topGenres": "Top Genres", + "term.confirmLogout": "Are you sure you want to logout?", + "term.creditDesignedBy": "Designed by ${authorUsername}", + "home.title": "Home", + "home.recentlyPlayed": "Recently Played", + "home.recentlyAdded": "Recently Added", + "home.artistsFeed": "Your Artists Feed", + "home.artistsFeed.noArtist": "Follow some artists to see their latest releases", + "home.madeForYou": "Made For You", + "home.friendsListeningTo": "Friends Listening To", + "home.followedArtists": "Followed Artists", + "error.appleMusicSubRequired": "Apple Music requires a subscription.", + "error.connectionError": "There was a problem connecting to Apple Music.", + "error.noResults": "No Results.", + "error.noResults.description": "Try a new search.", + "podcast.followOnCider": "Follow On Cider", + "podcast.followedOnCider": "Following On Cider", + "podcast.subscribeOnItunes": "Subscribe On iTunes", + "podcast.subscribedOnItunes": "Subscribed On iTunes", + "podcast.itunesStore": "iTunes Store", + "podcast.episodes": "Episodes", + "podcast.playEpisode": "Play Episode", + "podcast.website": "Podcast Website", + "action.addToLibrary": "Add to Library", + "action.addToLibrary.success": "Added to Library", + "action.addToLibrary.error": "Error Adding to Library", + "action.removeFromLibrary": "Remove from Library", + "action.removeFromLibrary.success": "Removed from Library", + "action.addToQueue": "Add to Queue", + "action.addToQueue.success": "Added to Queue", + "action.addToQueue.error": "Error Adding to Queue", + "action.removeFromQueue": "Remove from Queue", + "action.removeFromQueue.success": "Removed from Queue", + "action.removeFromQueue.error": "Error Removing from Queue", + "action.createPlaylist": "Create a New Playlist", + "action.addToPlaylist": "Add to Playlist", + "action.removeFromPlaylist": "Remove from Playlist", + "action.addToFavorites": "Add to Favorites", + "action.follow": "Follow", + "action.follow.success": "Followed", + "action.follow.error": "Error Following", + "action.unfollow": "Unfollow", + "action.unfollow.success": "Unfollowed", + "action.unfollow.error": "Error Unfollowing", + "action.playNext": "Play Next", + "action.playLater": "Play Later", + "action.startRadio": "Start Radio", + "action.goToArtist": "Go to Artist", + "action.goToAlbum": "Go to Album", + "action.showInPlaylist": "Show in Playlist", + "action.showInAppleMusic": "Show in Apple Music", + "action.moveToTop": "Move out of Folder", + "action.share": "Share", + "action.rename": "Rename", + "action.love": "Love", + "action.unlove": "Unlove", + "action.dislike": "Dislike", + "action.undoDislike": "Undo dislike", + "action.showWebRemoteQR": "Web Remote", + "action.playTracksNext": "Play ${app.selectedMediaItems.length} tracks next", + "action.playTracksLater": "Play ${app.selectedMediaItems.length} tracks later", + "action.removeTracks": "Remove ${self.selectedItems.length} tracks from queue", + "action.import": "Import", + "action.export": "Export", + "action.showAlbum": "Show Complete Album", + "action.tray.minimize": "Minimize to Tray", + "action.tray.quit": "Quit", + "action.tray.show": "Show", + "action.update": "Update", + "action.install": "Install", + "action.copy": "Copy", + "action.newpreset": "New Preset...", + "action.deletepreset": "Delete Preset", + "action.open": "Open", + "action.relaunch.confirm": "Do you want to relaunch Cider?", + "settings.header.general": "General", + "settings.header.general.description": "Adjust the general settings for Cider.", + "settings.option.general.language": "Language", + "settings.option.general.resumebehavior": "Resume behavior", + "settings.option.general.resumebehavior.description": "Resume behavior affects how Cider will resume your session when you return to the app.", + "settings.option.general.resumebehavior.locally": "Locally", + "settings.option.general.resumebehavior.locally.description": "Cider will resume your last session on this machine.", + "settings.option.general.resumebehavior.history": "History", + "settings.option.general.resumebehavior.history.description": "Cider will queue the last song from your overall Apple Music history, across devices.", + "settings.option.general.language.main": "Languages", + "settings.option.general.language.fun": "Fun Languages", + "settings.option.general.language.unsorted": "Unsorted", + "settings.option.general.updateCider": "Update Cider", + "settings.option.general.updateCider.branch": "Cider Update Branch", + "settings.option.general.updateCider.branch.description": "Select the branch to update Cider to", + "settings.option.general.updateCider.branch.main": "Stable", + "settings.option.general.updateCider.branch.develop": "Development", + "settings.notyf.updateCider.update-not-available": "No update available", + "settings.notyf.updateCider.update-downloaded": "Update has been downloaded, restart to apply", + "settings.notyf.updateCider.update-error": "Error updating Cider", + "settings.notyf.updateCider.update-timeout": "Update timed out", + "settings.header.audio": "Audio", + "settings.header.audio.description": "Adjust the audio settings for Cider.", + "settings.option.audio.volumeStep": "Volume Step", + "settings.option.audio.maxVolume": "Max Volume", + "settings.option.audio.quality": "Audio Quality", + "settings.header.audio.quality.hireslossless": "Hi-Res Lossless", + "settings.header.audio.quality.hireslossless.description": "up to 24-bit/192 kHz", + "settings.header.audio.quality.lossless": "Lossless", + "settings.header.audio.quality.lossless.description": "up to 24-bit/48 kHz", + "settings.header.audio.quality.high": "High", + "settings.header.audio.quality.high.description": "256 kbps", + "settings.header.audio.quality.standard": "Standard", + "settings.header.audio.quality.standard.description": "64 kbps", + "settings.option.audio.seamlessTransition": "Seamless Audio Transition", + "settings.option.audio.enableAdvancedFunctionality": "Enable Advanced Functionality", + "settings.option.audio.enableAdvancedFunctionality.description": "Enabling AudioContext functionality will allow for extended audio features like Audio Normalization, Equalizers and Visualizers - however on some systems this may cause stuttering in audio tracks.", + "settings.option.audio.audioLab": "Cider Audio Lab", + "settings.option.audio.audioLab.description": "An assortment of in-house developed audio effects for Cider.", + "settings.warn.audioLab.withoutAF": "AudioContext (Advanced Functionality) is required to enable Cider Audio Laboratory.", + "settings.option.audio.enableAdvancedFunctionality.analogWarmth": "Analog Warmth", + "settings.option.audio.enableAdvancedFunctionality.analogWarmth.description": "Simulates the analog warmth modelled after the Korg Nutube 6P1", + "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity": "Analog Warmth intensity", + "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.description": "Changes the intensity of the Analog Warmth Module processing.", + "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth": "Smooth", + "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm": "Warm", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processorâ„ĸī¸", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Psychoacoustic Enhancements that makes everything sound both richer and more lively.", + "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP is not compatible with Spatialization. Please disable Spatialization to continue.", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Strength", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Changes the strength of the processing done to the audio. (Aggressive may yield undesirable results)", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Standard", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Aggressive", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audio Normalization", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalizes peak volume for individual tracks to create a more uniform listening experience.", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization.disabled": "Managed by Audio Lab", + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Spatialization", + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatialize audio and make audio more 3-dimensional (note: This is not Dolby Atmos)", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Cider Tuned Spatialization", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "Pre-tuned Spatializing Effect, disables the customizable settings of Audio Spatialization. Spatialization must be enabled as a prerequisite.", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Cider Spatialization Profile", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description": "Changes the Tuning Profile of the Spatialization. (Requires App Restart)", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard": "Standard", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile": "Audiophile", + "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "Spatialization is not compatible with CAP. Please disable CAP to continue.", + "settings.header.visual": "Visual", + "settings.header.visual.description": "Adjust the visual settings for Cider.", + "settings.option.visual.windowBackgroundStyle": "Window Background Style", + "settings.header.visual.windowBackgroundStyle.none": "None", + "settings.header.visual.windowBackgroundStyle.artwork": "Artwork", + "settings.header.visual.windowBackgroundStyle.image": "Image", + "settings.option.visual.animatedArtwork": "Animated Artwork", + "settings.header.visual.animatedArtwork.always": "Always", + "settings.header.visual.animatedArtwork.limited": "Limited to pages and special entries", + "settings.header.visual.animatedArtwork.disable": "Disable everywhere", + "settings.option.visual.animatedArtworkQuality": "Animated Artwork Quality", + "settings.header.visual.animatedArtworkQuality.low": "Low", + "settings.header.visual.animatedArtworkQuality.medium": "Medium", + "settings.header.visual.animatedArtworkQuality.high": "High", + "settings.header.visual.animatedArtworkQuality.veryHigh": "Very High", + "settings.header.visual.animatedArtworkQuality.extreme": "Extreme", + "settings.option.visual.animatedWindowBackground": "Animated Window Background", + "settings.option.visual.hardwareAcceleration": "Hardware Acceleration", + "settings.option.visual.hardwareAcceleration.description": "Requires relaunch", + "settings.header.visual.hardwareAcceleration.default": "Default", + "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", + "settings.header.visual.theme": "Theme", + "settings.option.visual.theme.github.download": "Install from GitHub URL", + "settings.option.visual.theme.github.explore": "Explore GitHub Themes", + "settings.header.visual.theme.github.page": "Themes from GitHub", + "settings.option.visual.theme.github.install.confirm": "Are you sure you want to install {{ repo }}?", + "settings.prompt.visual.theme.github.URL": "Enter the URL of the theme you want to install", + "settings.notyf.visual.theme.install.success": "Theme installed successfully", + "settings.notyf.visual.theme.install.error": "Theme installation failed", + "settings.header.visual.plugin": "Plugin", + "settings.option.visual.plugin.github.download": "Install from GitHub URL", + "settings.option.visual.plugin.github.explore": "Explore GitHub Plugins", + "settings.header.visual.plugin.github.page": "Plugins from GitHub", + "settings.option.visual.plugin.github.install.confirm": "Are you sure you want to install {{ repo }}?", + "settings.prompt.visual.plugin.github.URL": "Enter the URL of the plugin you want to install", + "settings.prompt.visual.plugin.github.success": "Plugin installed successfully, Press OK to relaunch Cider", + "settings.notyf.visual.plugin.install.success": "Plugin installed successfully", + "settings.notyf.visual.plugin.install.error": "Plugin installation failed", + "settings.option.visual.theme.default": "Cider", + "settings.option.visual.theme.dark": "Dark", + "settings.option.visual.showPersonalInfo": "Show Personal Info", + "settings.header.window": "Window", + "settings.header.window.description": "Adjust the window settings for Cider.", + "settings.option.window.openOnStartup": "Open Cider on Startup", + "settings.option.window.openOnStartup.hidden": "Open Hidden", + "settings.header.lyrics": "Lyrics", + "settings.header.lyrics.description": "Adjust the lyrics settings for Cider.", + "settings.option.lyrics.enableMusixmatch": "Enable Musixmatch Lyrics", + "settings.option.lyrics.enableMusixmatchKaraoke": "Enable Karaoke Mode (Musixmatch only)", + "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch Translation Preferred Language", + "settings.option.lyrics.enableYoutubeLyrics": "Enable Youtube Lyrics for Music Videos", + "settings.header.connectivity": "Connectivity", + "settings.header.connectivity.description": "Adjust the connectivity settings for Cider.", + "settings.option.connectivity.discordRPC": "Discord Rich Presence", + "settings.option.connectivity.playbackNotifications": "Playback Notifications", + "settings.header.connectivity.discordRPC.cider": "Display as 'Cider'", + "settings.header.connectivity.discordRPC.appleMusic": "Display as 'Apple Music'", + "settings.option.connectivity.discordRPC.clearOnPause": "Clear Discord Rich Presence on Pause", + "settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling", + "settings.option.connectivity.lastfmScrobble.delay": "Last.fm Scrobble Delay (%)", + "settings.option.connectivity.lastfmScrobble.nowPlaying": "Enable Last.fm Now Playing", + "settings.option.connectivity.lastfmScrobble.removeFeatured": "Remove featuring artists from song title (Last.fm)", + "settings.option.connectivity.lastfmScrobble.filterLoop": "Filter looped track (Last.fm)", + "settings.header.debug": "Debug", + "settings.option.debug.copy_log": "Copy logs to clipboard", + "settings.option.debug.openAppData": "Open Cider Folder", + "settings.header.experimental": "Experimental", + "settings.header.experimental.description": "Adjust the experimental settings for Cider.", + "settings.option.experimental.unknownPlugin": "Unknown Sources", + "settings.option.experimental.unknownPlugin.description": "Allow installation of plugins from repos other than the Cider Plugin Repository", + "settings.option.experimental.compactUI": "Compact UI", + "settings.option.window.close_button_hide": "Close Button Should Hide the Application", + "settings.option.experimental.inline_playlists": "Inline Playlists and Albums", + "settings.option.advanced.playlistTrackMapping": "Playlist Track Mapping", + "settings.option.advanced.playlistTrackMapping.description": "Enables deep scanning of playlists to determine which tracks are in which playlists. Playlist cache build times can increase significantly.", + "settings.option.visual.transparent": "Transparent frame", + "settings.option.visual.transparent.description": "Transparent frame (needs Theme Support , requires relaunch)", + "spatial.notTurnedOn": "Audio Spatialization is disabled. To use, please enable it first.", + "spatial.spatialProperties": "Spatial Properties", + "spatial.width": "Width", + "spatial.height": "Height", + "spatial.depth": "Depth", + "spatial.gain": "Gain", + "spatial.roomMaterials": "Room Materials", + "spatial.roomDimensions": "Room Dimensions", + "spatial.roomPositions": "Room Positions", + "spatial.setDimensions": "Set Dimensions", + "spatial.setPositions": "Set Positions", + "spatial.up": "Up", + "spatial.front": "Front", + "spatial.left": "Left", + "spatial.right": "Right", + "spatial.back": "Back", + "spatial.down": "Down", + "spatial.listener": "Listener", + "spatial.audioSource": "Audio Source", + "settings.header.unfinished": "Unfinished", + "remote.web.title": "Cider Remote", + "remote.web.description": "Scan the QR code to pair your phone up with this Cider instance", + "share.platform.twitter.tweet": "Listen to {{song}} on Apple Music.\n\n{{url}}\n\n#AppleMusic #Cider", + "share.platform.twitter": "Twitter", + "share.platform.facebook": "Facebook", + "share.platform.reddit": "Reddit", + "share.platform.telegram": "Telegram", + "share.platform.whatsapp": "WhatsApp", + "share.platform.messenger": "Messenger", + "share.platform.email": "Email", + "share.platform.songLink": "Copy with song.link", + "share.platform.clipboard": "Copy Link", + "about.thanks": "Major thanks to the Cider Collective Team and all of our contributors." +} diff --git a/src/i18n/sv_SE.jsonc b/src/i18n/sv_SE.json similarity index 85% rename from src/i18n/sv_SE.jsonc rename to src/i18n/sv_SE.json index abdd2d29..fec435e8 100644 --- a/src/i18n/sv_SE.jsonc +++ b/src/i18n/sv_SE.json @@ -1,25 +1,15 @@ -{ // Base File - // i18n Info - "i18n.languageName": "Svenska (SE)", // name of language in native language - "i18n.languageNameEnglish": "Swedish (SE)", // name of language in English - "i18n.category": "main", // main = real language, fun = fun community languages - "i18n.authors": "@thisismemeboi", // Authors, if you contribute to this file feel free to add your name seperated with a space - - // App info +{ + "i18n.languageName": "Svenska (SE)", + "i18n.languageNameEnglish": "Swedish (SE)", + "i18n.category": "main", + "i18n.authors": "@thisismemeboi", "app.name": "Cider", - "date.format": "${d} ${m}, ${y}", - - // Dialogs "dialog.cancel": "Avbryt", "dialog.ok": "OK", - - // Notification "notification.updatingLibrarySongs": "Uppdaterar lÃĨtar i biblioteket...", "notification.updatingLibraryAlbums": "Uppdaterar album i biblioteket...", "notification.updatingLibraryArtists": "Uppdaterar artister i biblioteket...", - - // Terms "term.appleInc": "Apple Inc.", "term.appleMusic": "Apple Music", "term.applePodcasts": "Apple Podcasts", @@ -120,13 +110,11 @@ "term.contributors": "Bidrag", "term.equalizer": "EQ", "term.reset": "Återställ", - "term.tracks": "lÃĨtar", // Assume x amount of tracks. e.g. 50 tracks + "term.tracks": "lÃĨtar", "term.videos": "Videor", "term.menu": "Meny", "term.check": "SÃļk efter uppdateringar", - "term.aboutArtist": "Om {{artistName}}", // e.g. 'About Doja Cat' - - // Home + "term.aboutArtist": "Om {{artistName}}", "home.title": "Hem", "home.recentlyPlayed": "Senast spelade", "home.recentlyAdded": "Senast tillagda", @@ -135,14 +123,10 @@ "home.madeForYou": "Skapat fÃļr dig", "home.friendsListeningTo": "Vänner lyssnar pÃĨ", "home.followedArtists": "FÃļljda artister", - - // Errors "error.appleMusicSubRequired": "Apple Music kräver en prenumeration.", "error.connectionError": "OjdÃĨ. Det gick inte att ansluta till Apple Music.", "error.noResults": "Inga träffar.", "error.noResults.description": "Prova en ny sÃļkning.", - - // Podcasts "podcast.followOnCider": "FÃļlj pÃĨ Cider", "podcast.followedOnCider": "FÃļljer pÃĨ Cider", "podcast.subscribeOnItunes": "FÃļlj pÃĨ iTunes", @@ -151,8 +135,6 @@ "podcast.episodes": "Avsnitt", "podcast.playEpisode": "Spela avsnitt", "podcast.website": "Öppna webbsida", - - // Actions "action.addToLibrary": "Lägg till i bibliotek", "action.addToLibrary.success": "Tillagd i biblioteket", "action.addToLibrary.error": "Kunde inte lägga till i biblioteket", @@ -197,92 +179,70 @@ "action.tray.quit": "Avsluta", "action.tray.show": "Visa Cider", "action.update": "Uppdatera", - - // Settings - General "settings.header.general": "Allmänt", "settings.header.general.description": "Ändra Ciders allmänna inställningar.", "settings.option.general.language": "SprÃĨk", - - // Language optgroups "settings.option.general.language.main": "SprÃĨk", "settings.option.general.language.fun": "Roliga sprÃĨk", "settings.option.general.language.unsorted": "Osorterade", - - // Update Cider - "settings.option.general.updateCider": "Uppdatera Cider", // Button - - // Settings - Audio + "settings.option.general.updateCider": "Uppdatera Cider", "settings.header.audio": "Ljud", "settings.header.audio.description": "Ändra Ciders ljudinställningar.", - "settings.option.audio.quality": "Ljudkvalitet", // Dropdown + "settings.option.audio.quality": "Ljudkvalitet", "settings.header.audio.quality.high": "HÃļg", "settings.header.audio.quality.low": "LÃĨg", "settings.header.audio.quality.auto": "Automatisk", - "settings.option.audio.seamlessTransition": "SÃļmlÃļsa ljudÃļvergÃĨngar", // Toggle - "settings.option.audio.enableAdvancedFunctionality": "Aktivera avancerade ljudfunktioner", // Toggle + "settings.option.audio.seamlessTransition": "SÃļmlÃļsa ljudÃļvergÃĨngar", + "settings.option.audio.enableAdvancedFunctionality": "Aktivera avancerade ljudfunktioner", "settings.option.audio.enableAdvancedFunctionality.description": "Om du aktiverar avancerade ljudfunktioner kommer funktioner som ljudnormalisering, EQ och virtualisering aktiveras, men pÃĨ nÃĨgra system kan detta orsaka ljudproblem.", - "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Ljudnormalisering", // Toggle + "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Ljudnormalisering", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normaliserar hÃļga ljudnivÃĨer fÃļr att fÃļrbättra ljudkvaliteten.", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Spiralljud", // Toggle + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Spiralljud", "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "GÃļr ljudet mer 3D (Ej Dolby Atmos)", - - // Settings - Visual "settings.header.visual": "Visuellt", "settings.header.visual.description": "Ändra Ciders visuella inställningar.", - "settings.option.visual.windowBackgroundStyle": "Stil fÃļr bakgrunden", // Toggle + "settings.option.visual.windowBackgroundStyle": "Stil fÃļr bakgrunden", "settings.header.visual.windowBackgroundStyle.none": "Ingen", "settings.header.visual.windowBackgroundStyle.artwork": "FrÃĨn omslagsbilden", "settings.header.visual.windowBackgroundStyle.image": "Bild", - "settings.option.visual.animatedArtwork": "Animerad omslagsbild", // Dropdown + "settings.option.visual.animatedArtwork": "Animerad omslagsbild", "settings.header.visual.animatedArtwork.always": "Alltid", "settings.header.visual.animatedArtwork.limited": "Endast pÃĨ sidor där det behÃļvs", "settings.header.visual.animatedArtwork.disable": "Aldrig", - "settings.option.visual.animatedArtworkQuality": "Kvalitet fÃļr animerad omslagsbild", // Dropdown + "settings.option.visual.animatedArtworkQuality": "Kvalitet fÃļr animerad omslagsbild", "settings.header.visual.animatedArtworkQuality.low": "LÃĨg", "settings.header.visual.animatedArtworkQuality.medium": "Standard", "settings.header.visual.animatedArtworkQuality.high": "HÃļg", "settings.header.visual.animatedArtworkQuality.veryHigh": "Väldigt hÃļg", "settings.header.visual.animatedArtworkQuality.extreme": "Okomprimerat", - "settings.option.visual.animatedWindowBackground": "Animerad fÃļnsterbakgrund", // Toggle - "settings.option.visual.hardwareAcceleration": "HÃĨrdvaruacceleration", // Dropdown + "settings.option.visual.animatedWindowBackground": "Animerad fÃļnsterbakgrund", + "settings.option.visual.hardwareAcceleration": "HÃĨrdvaruacceleration", "settings.option.visual.hardwareAcceleration.description": "kräver omstart", "settings.header.visual.hardwareAcceleration.default": "Standard", "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", - // Refer to term.disabled for the disabled option - "settings.option.visual.showPersonalInfo": "Visa personlig information", // Toggle - - // Settings - Lyrics + "settings.option.visual.showPersonalInfo": "Visa personlig information", "settings.header.lyrics": "LÃĨttext", "settings.header.lyrics.description": "Ändra Ciders lÃĨttextsinställningar.", - "settings.option.lyrics.enableMusixmatch": "Använd Musixmatch istället fÃļr Apple Lyrics", // Toggle - "settings.option.lyrics.enableMusixmatchKaraoke": "Aktivera karaokeläge (Endast Musixmatch)", // Toggle - "settings.option.lyrics.musixmatchPreferredLanguage": "SprÃĨk fÃļr lÃĨttextsÃļversättning (Endast Musixmatch)", // Dropdown - "settings.option.lyrics.enableYoutubeLyrics": "Använd YouTube Lyrcis fÃļr videor", // Toggle - - // Settings - Connectivity + "settings.option.lyrics.enableMusixmatch": "Använd Musixmatch istället fÃļr Apple Lyrics", + "settings.option.lyrics.enableMusixmatchKaraoke": "Aktivera karaokeläge (Endast Musixmatch)", + "settings.option.lyrics.musixmatchPreferredLanguage": "SprÃĨk fÃļr lÃĨttextsÃļversättning (Endast Musixmatch)", + "settings.option.lyrics.enableYoutubeLyrics": "Använd YouTube Lyrcis fÃļr videor", "settings.header.connectivity": "Anslutning", "settings.header.connectivity.description": "Ändra Ciders anslutningsinställningar.", - "settings.option.connectivity.discordRPC": "Discord integration (discordRPC)", // Dropdown - "settings.option.connectivity.playbackNotifications": "Uppspelningsnotiser", // Toggle - // Refer to term.disabled for the disabled option + "settings.option.connectivity.discordRPC": "Discord integration (discordRPC)", + "settings.option.connectivity.playbackNotifications": "Uppspelningsnotiser", "settings.header.connectivity.discordRPC.cider": "PÃĨ, visa som 'Cider'", "settings.header.connectivity.discordRPC.appleMusic": "PÃĨ, visa som 'Apple Music'", - "settings.option.connectivity.discordRPC.clearOnPause": "Rensa Discord notiser frÃĨn Cider när du pausar", // Toggle - "settings.option.connectivity.lastfmScrobble": "Last.fm integration", // Option to Connect + "settings.option.connectivity.discordRPC.clearOnPause": "Rensa Discord notiser frÃĨn Cider när du pausar", + "settings.option.connectivity.lastfmScrobble": "Last.fm integration", "settings.option.connectivity.lastfmScrobble.delay": "Last.fm fÃļrdrÃļjning i %", "settings.option.connectivity.lastfmScrobble.nowPlaying": "Visa vad som spelas nu i Last.fm", "settings.option.connectivity.lastfmScrobble.removeFeatured": "Visa inte extraartister i Last.fm", "settings.option.connectivity.lastfmScrobble.filterLoop": "Filtrera bort loopade lÃĨtar i Last.fm", - // Refer to term.connect for the connect button - - // Settings - Experimental "settings.header.experimental": "Experimentellt", "settings.header.experimental.description": "Ändra Ciders experimentella inställningar.", - "settings.option.experimental.compactUI": "Kompakt gränssnitt", // Toggle - "settings.option.experimental.close_button_hide": "Stängknappen gÃļmmer Cider istället", - - // Refer to term.disabled & term.enabled - // Spatialization Menu + "settings.option.experimental.compactUI": "Kompakt gränssnitt", + "settings.option.window.close_button_hide": "Stängknappen gÃļmmer Cider istället", "spatial.notTurnedOn": "Spiralljud är av. Akrtivera det fÃļrst.", "spatial.spatialProperties": "Spiralljudsintällningar", "spatial.width": "Bredd", @@ -302,14 +262,8 @@ "spatial.down": "Ner", "spatial.listener": "Lyssnare", "spatial.audioSource": "Ljudkälla", - - // Settings - Unfinished "settings.header.unfinished": "Ej tillgängligt", - - // Web Remote "remote.web.title": "Cider fjärrkontroll", "remote.web.description": "Skanna QR koden fÃļr att ansluta din telefon till Cider.", - - // About "about.thanks": "Stort tack till Ciders Collective Team och alla som har bidragit!" } \ No newline at end of file diff --git a/src/i18n/tr_TR.jsonc b/src/i18n/tr_TR.json similarity index 81% rename from src/i18n/tr_TR.jsonc rename to src/i18n/tr_TR.json index 828ecb59..64cbd996 100644 --- a/src/i18n/tr_TR.jsonc +++ b/src/i18n/tr_TR.json @@ -1,25 +1,15 @@ { - // i18n Info - "i18n.languageName": "TÃŧrkçe", // name of language in native language - "i18n.languageNameEnglish": "Turkish", // name of language in English - "i18n.category": "main", // main = real language, fun = fun community languages - "i18n.authors": "@gms10ur", // Authors, if you contribute to this file feel free to add your name seperated with a space - - // App info + "i18n.languageName": "TÃŧrkçe", + "i18n.languageNameEnglish": "Turkish", + "i18n.category": "main", + "i18n.authors": "@gms10ur", "app.name": "Cider", - "date.format": "${d} ${m}, ${y}", - - // Dialogs "dialog.cancel": "İptal", "dialog.ok": "Tamam", - - // Notification "notification.updatingLibrarySongs": "Arşiv'deki şarkÄąlar alÄąnÄąyor...", "notification.updatingLibraryAlbums": "Arşiv'deki albÃŧmler alÄąnÄąyor...", "notification.updatingLibraryArtists": "Arşiv'deki sanatÃ§Äąlar alÄąnÄąyor...", - - // Terms "term.appleInc": "Apple", "term.appleMusic": "Apple Music", "term.applePodcasts": "Apple Podcasts", @@ -91,10 +81,10 @@ "term.less": "Daha Az", "term.showMore": "Daha Fazla GÃļster", "term.showLess": "Daha Az GÃļster", - "term.topSongs" : "PopÃŧler Parçalar", + "term.topSongs": "PopÃŧler Parçalar", "term.latestReleases": "Yeni Ã‡Äąkan", "term.time.added": "Şu tarihte eklendi: ", - "term.time.released": "Şu tarihte yayÄąnalndÄą: ", + "term.time.released": "Şu tarihte yayÄąnalndÄą: ", "term.time.updated": "Şu tarihte gÃŧncellendi: ", "term.fullscreenView": "Tam Ekrana Geç", "term.defaultView": "Normal GÃļrÃŧnÃŧme DÃļn", @@ -115,27 +105,27 @@ "term.contributors": "KatkÄąda Bulunanlar", "term.equalizer": "Ekolayzer", "term.reset": "SÄąfÄąrla", - "term.tracks": "adet şarkÄą", // Assume x amount of tracks. e.g. 50 tracks + "term.tracks": "adet şarkÄą", "term.time.hours": "saat", "term.time.hour": "saat", "term.time.minutes": "dakika", "term.time.minute": "dakika", "term.time.seconds": "saniye", "term.time.second": "saniye", - "term.videos": "Video Klipler", + "term.videos": "Video Klipler", "term.menu": "MenÃŧ", "term.check": "Şimdi Kontrol Et", - "term.aboutArtist": "About {{artistName}}", // e.g. 'About Doja Cat' + "term.aboutArtist": "About {{artistName}}", "term.updateCider": "GÃŧncellemeleri Denetle", "term.share.success": "Panoya KopyalandÄą", - "term.topResult": "En İyi Sonuç", // Search Results - "term.sharedPlaylists": "PaylaÅŸÄąlan Listeler", // Search Results - "term.people": "Kişiler", // Search Results - "term.newpreset.name": "Yeni Önayar İsmi", // Equalizer Preset + "term.topResult": "En İyi Sonuç", + "term.sharedPlaylists": "PaylaÅŸÄąlan Listeler", + "term.people": "Kişiler", + "term.newpreset.name": "Yeni Önayar İsmi", "term.addedpreset": "Önayar Kaydedildi", "term.deletepreset.warn": "Bu ÃļnayarÄą silmek istediğinize emin misiniz?", "term.deletedpreset": "Önayar Silindi", - "term.musicVideos": "Video Klipler", // Search page friendlyTypes + "term.musicVideos": "Video Klipler", "term.stations": "İstasyonlar", "term.curators": "EditÃļrler", "term.appleCurators": "Apple EditÃļrleri", @@ -143,8 +133,6 @@ "term.recordLabels": "KayÄąt StÃŧdyolarÄą", "term.videoExtras": "Ekstra Videolar", "term.top": "En İyi", - - // Home "home.title": "Ana Sayfa", "home.recentlyPlayed": "Son OynatÄąlanlar", "home.recentlyAdded": "Son Eklenenler", @@ -153,14 +141,10 @@ "home.madeForYou": "Sadece Size Özel", "home.friendsListeningTo": "ArkadaşlarÄąnÄązÄąn Dinledikleri", "home.followedArtists": "Takip Edilen SanatÃ§Äąlar", - - // Errors "error.appleMusicSubRequired": "Apple MÃŧzik, aktif bir abonelik gerektirir.", "error.connectionError": "Apple MÃŧzik ile bağlantÄą kurulamadÄą.", "error.noResults": "Hiç sonuç yok", "error.noResults.description": "Tekrar deneyin.", - - //Podcasts "podcast.followOnCider": "Cider'de Takip Et", "podcast.followedOnCider": "Cider'de Takip Ediliyor", "podcast.subscribeOnItunes": "itunes'de Abone Ol", @@ -169,8 +153,6 @@ "podcast.episodes": "BÃļlÃŧmler", "podcast.playEpisode": "BÃļlÃŧmÃŧ Oynat", "podcast.website": "Web SayfasÄą", - - // Actions "action.addToLibrary": "Arşiv'e Ekle", "action.addToLibrary.success": "Arşiv'e Eklendi", "action.addToLibrary.error": "Arşiv'e Eklenemedi", @@ -216,30 +198,22 @@ "action.tray.show": "GÃļster", "action.update": "GÃŧncelle", "action.copy": "Kopyala", - "action.newpreset": "Yeni Önayar...", // Equalizer Preset + "action.newpreset": "Yeni Önayar...", "action.deletepreset": "ÖnayarÄą Sil", - - // Settings - General "settings.header.general": "Genel Ayarlar", "settings.header.general.description": "Genel ayarlarÄą buradan dÃŧzenleyin.", "settings.option.general.language": "Dil Seçeneği", - - // Language optgroups "settings.option.general.language.main": "Gerçek Diller", "settings.option.general.language.fun": "Mizahi Diller", "settings.option.general.language.unsorted": "HenÃŧz TamamlanmamÄąÅŸ Diller", - - // Update Cider - "settings.option.general.updateCider": "GÃŧncellemeleri Kontrol Et", // Button. Refer to term.check for the check button - "settings.option.general.updateCider.branch": "Seçilen GitHub Versiyonu", // Dropdown + "settings.option.general.updateCider": "GÃŧncellemeleri Kontrol Et", + "settings.option.general.updateCider.branch": "Seçilen GitHub Versiyonu", "settings.option.general.updateCider.branch.description": "Cider'in hangi versiyonuna gÃŧncelleneceğini seçin", "settings.option.general.updateCider.branch.main": "Stabil", "settings.option.general.updateCider.branch.develop": "Deneysel", - - // Settings - Audio "settings.header.audio": "Çalma / Oynatma", "settings.header.audio.description": "Cider'in sizin için en iyi dinleme deneyimini sağlayabilmesi için ses ayarlarÄąnÄązÄą yapÄąn.", - "settings.option.audio.quality": "Ses Kalitesi", // Dropdown + "settings.option.audio.quality": "Ses Kalitesi", "settings.header.audio.quality.hireslossless": "YÃŧksek ÇÃļzÃŧnÃŧrlÃŧklÃŧ KayÄąpsÄąz", "settings.header.audio.quality.hireslossless.description": "24-bit/192 kHz'e kadar", "settings.header.audio.quality.lossless": "KayÄąpsÄąz", @@ -249,109 +223,89 @@ "settings.header.audio.quality.standard": "Standart", "settings.header.audio.quality.standard.description": "64 kbps", "settings.header.audio.quality.auto": "Otomatik", - "settings.option.audio.seamlessTransition": "Kesintisiz Ses Geçişi", // Toggle - "settings.option.audio.enableAdvancedFunctionality": "Gelişmiş Ses Deneyimi", // Toggle + "settings.option.audio.seamlessTransition": "Kesintisiz Ses Geçişi", + "settings.option.audio.enableAdvancedFunctionality": "Gelişmiş Ses Deneyimi", "settings.option.audio.enableAdvancedFunctionality.description": "Gelişmiş ses deneyiminin etkinleştirilmesi, Ses Normalleştirme, Ekolayzer ve GÃļrselleştirici gibi genişletilmiş ses Ãļzelliklerine izin verir, ancak bu durum bazÄą sistemlerde seste bozulmalara neden olabilir.", - "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Ses Normalleştirme", // Toggle - "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Ses normalleştirme alçak ve yÃŧksek sesli şarkÄąlarÄą dengeler ve daha dÃŧzgÃŧn bir dinleme deneyimi sağlar.", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Uzamsal Ses", // Toggle - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Sesi uzamsallaştÄąrÄąn ve sesi daha 3 boyutlu hale getirin (not: Bu Dolby Atmos değildir)", - "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenalin ProsesÃļrÃŧâ„ĸī¸", // Toggle + "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenalin ProsesÃļrÃŧâ„ĸī¸", "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "MÃŧziğin hem daha zengin hem de daha canlÄą duyulmasÄąnÄą sağlayan Psikoakustik Geliştirme Sistemi | Maikiwi tarafÄąndan tasarlanmÄąÅŸtÄąr.", - "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Kuvveti", // Toggle + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Kuvveti", "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Sese yapÄąlan işlemin gÃŧcÃŧnÃŧ değiştirir. (Agresif istenmeyen sonuçlar doğurabilir)", "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Standart", "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Agresif", - - // Settings - Visual + "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Ses Normalleştirme", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Ses normalleştirme alçak ve yÃŧksek sesli şarkÄąlarÄą dengeler ve daha dÃŧzgÃŧn bir dinleme deneyimi sağlar.", + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Uzamsal Ses", + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Sesi uzamsallaştÄąrÄąn ve sesi daha 3 boyutlu hale getirin (not: Bu Dolby Atmos değildir)", "settings.header.visual": "GÃļrÃŧnÃŧm", "settings.header.visual.description": "Cider'in nasÄąl gÃļzÃŧkmesini istediğinizi ayarlayÄąn", - "settings.option.visual.windowBackgroundStyle": "Uygulama Arka Plan Stili", // Toggle + "settings.option.visual.windowBackgroundStyle": "Uygulama Arka Plan Stili", "settings.header.visual.windowBackgroundStyle.image": "GÃļrsel", "settings.header.visual.windowBackgroundStyle.none": "KaranlÄąk", "settings.header.visual.windowBackgroundStyle.artwork": "AlbÃŧm Kapağı", - "settings.option.visual.animatedArtwork": "Hareketli AlbÃŧm KapaklarÄą", // Dropdown + "settings.option.visual.animatedArtwork": "Hareketli AlbÃŧm KapaklarÄą", "settings.header.visual.animatedArtwork.always": "Her Zaman AÃ§Äąk", "settings.header.visual.animatedArtwork.limited": "BazÄą Sayfalara ve Özel BÃļlgelerle SÄąnÄąrlÄą", "settings.header.visual.animatedArtwork.disable": "Her Zaman KapalÄą", - "settings.option.visual.animatedArtworkQuality": "Hareketli AlbÃŧm Kapağı Kalitesi", // Dropdown + "settings.option.visual.animatedArtworkQuality": "Hareketli AlbÃŧm Kapağı Kalitesi", "settings.header.visual.animatedArtworkQuality.low": "DÃŧşÃŧk", "settings.header.visual.animatedArtworkQuality.medium": "Orta", "settings.header.visual.animatedArtworkQuality.high": "YÃŧksek", "settings.header.visual.animatedArtworkQuality.veryHigh": "Daha YÃŧksek", "settings.header.visual.animatedArtworkQuality.extreme": "Ekstrem", - "settings.option.visual.animatedWindowBackground": "Hareketli Uygulama Arka PlanÄą", // Toggle - "settings.option.visual.hardwareAcceleration": "DonanÄąm HÄązlandÄąrmasÄą", // Dropdown + "settings.option.visual.animatedWindowBackground": "Hareketli Uygulama Arka PlanÄą", + "settings.option.visual.hardwareAcceleration": "DonanÄąm HÄązlandÄąrmasÄą", "settings.option.visual.hardwareAcceleration.description": "Etki etmesi için uygulamayÄą yeniden başlatmak gerekir.", - "settings.header.visual.hardwareAcceleration.default": "VarsayÄąlan", - "settings.header.visual.hardwareAcceleration.webGPU": "Gelişmiş", - "settings.option.visual.showPersonalInfo": "KullanÄącÄą AdÄąmÄą GÃļster", // Toggle + "settings.header.visual.hardwareAcceleration.default": "VarsayÄąlan", + "settings.header.visual.hardwareAcceleration.webGPU": "Gelişmiş", "settings.header.visual.theme": "Tema", - - // Settings - Visual - Theme name "settings.option.visual.theme.default": "Cider", "settings.option.visual.theme.dark": "KaranlÄąk", - - // Settings - Lyrics + "settings.option.visual.showPersonalInfo": "KullanÄącÄą AdÄąmÄą GÃļster", "settings.header.lyrics": "ŞarkÄą SÃļzleri", "settings.header.lyrics.description": "Cider'in şarkÄą sÃļzlerini nasÄąl gÃļrÃŧntÃŧlemesini istediğini buradan ayarlayÄąn.", - "settings.option.lyrics.enableMusixmatch": "Musixmatch Kullan", // Toggle - "settings.option.lyrics.enableMusixmatchKaraoke": "Karaoke Modunu Etkinleştir (Sadece Musixmatch)", // Toggle - "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch için Otomatik Çeviri Dili", // Dropdown - "settings.option.lyrics.enableYoutubeLyrics": "MÃŧzik VideolarÄą için ŞarkÄą SÃļzÃŧnÃŧ YouTube'dan Al", // Toggle - - // Settings - Connectivity + "settings.option.lyrics.enableMusixmatch": "Musixmatch Kullan", + "settings.option.lyrics.enableMusixmatchKaraoke": "Karaoke Modunu Etkinleştir (Sadece Musixmatch)", + "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch için Otomatik Çeviri Dili", + "settings.option.lyrics.enableYoutubeLyrics": "MÃŧzik VideolarÄą için ŞarkÄą SÃļzÃŧnÃŧ YouTube'dan Al", "settings.header.connectivity": "Diğer Servisler", "settings.header.connectivity.description": "Cider'i diğer servislere bağlayarak deneyiminizi zenginleştirin.", - "settings.option.connectivity.discordRPC": "Ne Dinlediğimi Discord'da GÃļster", // Dropdown - "settings.option.connectivity.playbackNotifications": "OynatÄąlan değiştiğinde bildirim gÃļster", // Toggle - // Refer to term.disabled for the disabled option + "settings.option.connectivity.discordRPC": "Ne Dinlediğimi Discord'da GÃļster", + "settings.option.connectivity.playbackNotifications": "OynatÄąlan değiştiğinde bildirim gÃļster", "settings.header.connectivity.discordRPC.cider": "'Cider' Olarak", "settings.header.connectivity.discordRPC.appleMusic": "'Apple Music' Olarak", - "settings.option.connectivity.discordRPC.clearOnPause": "DuraklatÄąldığında Discord'da GÃļsterme", // Toggle - "settings.option.connectivity.lastfmScrobble": "LastFM BağlantÄąsÄą", // Option to Connect - "settings.option.connectivity.lastfmScrobble.delay": "LastFM Scrobblalma YÃŧzdesi (%)", - "settings.option.connectivity.lastfmScrobble.nowPlaying": "Şimdi çalan şarkÄąyÄą LastFM'de gÃļster", - "settings.option.connectivity.lastfmScrobble.removeFeatured": "AlbÃŧm sanatÃ§ÄąsÄąnÄą Scrobbledan kaldÄąr(LastFM)", - "settings.option.connectivity.lastfmScrobble.filterLoop": "Tekrar edilen şarkÄąyÄą filtrele (LastFM)", - // Refer to term.connect for the connect button - - // Settings - Experimental + "settings.option.connectivity.discordRPC.clearOnPause": "DuraklatÄąldığında Discord'da GÃļsterme", + "settings.option.connectivity.lastfmScrobble": "LastFM BağlantÄąsÄą", + "settings.option.connectivity.lastfmScrobble.delay": "LastFM Scrobblalma YÃŧzdesi (%)", + "settings.option.connectivity.lastfmScrobble.nowPlaying": "Şimdi çalan şarkÄąyÄą LastFM'de gÃļster", + "settings.option.connectivity.lastfmScrobble.removeFeatured": "AlbÃŧm sanatÃ§ÄąsÄąnÄą Scrobbledan kaldÄąr(LastFM)", + "settings.option.connectivity.lastfmScrobble.filterLoop": "Tekrar edilen şarkÄąyÄą filtrele (LastFM)", "settings.header.experimental": "Deneysel", "settings.header.experimental.description": "Cider'deki deneysel Ãļzelliklere erişim sağlayÄąn. (Not: BazÄą Ãļzellikler dÃŧzgÃŧn çalÄąÅŸmayabilir.)", - "settings.option.experimental.compactUI": "Kompakt ArayÃŧz", // Toggle - "settings.option.experimental.close_button_hide": "Kapatma DÃŧğmesi Cider'i KÃŧçÃŧltÃŧr", + "settings.option.experimental.compactUI": "Kompakt ArayÃŧz", + "settings.option.window.close_button_hide": "Kapatma DÃŧğmesi Cider'i KÃŧçÃŧltÃŧr", "settings.option.experimental.copy_log": "GÃŧnlÃŧğÃŧ Panoya Kopyala", "settings.option.experimental.inline_playlists": "Listeleri ve AlbÃŧmleri AÃ§ÄąlÄąr Pencere İle gÃļster", - - // Spatialization Menu "spatial.notTurnedOn": "Uzamsal ses devre dÄąÅŸÄą. Kullanabilmek için lÃŧtfen Ãļnce etkinleştirin.", - "spatial.spatialProperties" : "Uzamsal Özellikler", - "spatial.width" : "Genişlik", - "spatial.height" : "YÃŧkseklik", - "spatial.depth" : "Derinlik", - "spatial.roomMaterials" : "Oda Materyalleri", - "spatial.roomDimensions" : "Oda ÖlçÃŧleri", - "spatial.roomPositions" : "Oda Pozisyonu", - "spatial.setDimensions" : "ÖlçÃŧleri Ayarla", - "spatial.setPositions" : "Pozisyonu Ayarla", - "spatial.up" : "Üst", - "spatial.front" : "Ön", - "spatial.left" : "Sol", - "spatial.right" : "Sağ", - "spatial.back" : "Arka", - "spatial.down" : "Aşağı", - "spatial.listener" : "Dinleyici", - "spatial.audioSource" : "Ses Kaynağı", - "spatial.gain" : "Kazanç", - - // Settings - Unfinished + "spatial.spatialProperties": "Uzamsal Özellikler", + "spatial.width": "Genişlik", + "spatial.height": "YÃŧkseklik", + "spatial.depth": "Derinlik", + "spatial.gain": "Kazanç", + "spatial.roomMaterials": "Oda Materyalleri", + "spatial.roomDimensions": "Oda ÖlçÃŧleri", + "spatial.roomPositions": "Oda Pozisyonu", + "spatial.setDimensions": "ÖlçÃŧleri Ayarla", + "spatial.setPositions": "Pozisyonu Ayarla", + "spatial.up": "Üst", + "spatial.front": "Ön", + "spatial.left": "Sol", + "spatial.right": "Sağ", + "spatial.back": "Arka", + "spatial.down": "Aşağı", + "spatial.listener": "Dinleyici", + "spatial.audioSource": "Ses Kaynağı", "settings.header.unfinished": "Geliştirme AşamasÄąnda", - - // Web Remote "remote.web.title": "Cider'e Bağlan", "remote.web.description": "Telefonunuzu Bu Cider Oturumuyla Eşleştirmek için QR Kodunu TarayÄąn", - - //About "about.thanks": "Cider Collective Ekibine ve tÃŧm katkÄąda bulunanlara çok teşekkÃŧr ederiz." } \ No newline at end of file diff --git a/src/i18n/vi_VN.json b/src/i18n/vi_VN.json new file mode 100644 index 00000000..fc3b667b --- /dev/null +++ b/src/i18n/vi_VN.json @@ -0,0 +1,314 @@ +{ + "i18n.languageName": "Tiáēŋng Viáģ‡t", + "i18n.languageNameEnglish": "Vietnamese", + "i18n.category": "main", + "i18n.authors": "@vapormusic", + "app.name": "Cider", + "date.format": "${d} ${m}, ${y}", + "dialog.cancel": "Cancel", + "dialog.ok": "OK", + "notification.updatingLibrarySongs": "Cáē­p nháē­t bài hÃĄt trong thư viáģ‡n...", + "notification.updatingLibraryAlbums": "Cáē­p nháē­t album trong thư viáģ‡n...", + "notification.updatingLibraryArtists": "Cáē­p nháē­t ca sÄŠ trong thư viáģ‡n...", + "term.appleInc": "Apple Inc.", + "term.appleMusic": "Apple Music", + "term.applePodcasts": "Apple Podcasts", + "term.itunes": "iTunes", + "term.github": "GitHub", + "term.discord": "Discord", + "term.learnMore": "TÃŦm hiáģƒu thÃĒm", + "term.accountSettings": "Cài đáēˇt tài khoáēŖn", + "term.logout": "Đăng xuáēĨt", + "term.login": "Đăng nháē­p", + "term.about": "Giáģ›i thiáģ‡u", + "term.privateSession": "PhiÃĒn dÚng riÃĒng tư", + "term.queue": "Hàng đáģŖi", + "term.history": "Láģ‹ch sáģ­", + "term.search": "TÃŦm kiáēŋm", + "term.library": "Thư viáģ‡n", + "term.listenNow": "Nghe ngay", + "term.browse": "KhÃĄm phÃĄ", + "term.radio": "Radio", + "term.recentlyAdded": "VáģĢa đưáģŖc thÃĒm", + "term.songs": "Bài hÃĄt", + "term.albums": "Album", + "term.artists": "Ngháģ‡ sÄŠ", + "term.podcasts": "Podcast", + "term.playlists": "Playlist", + "term.playlist": "Playlist", + "term.newPlaylist": "Playlist máģ›i", + "term.newPlaylistFolder": "CáģĨm playlist máģ›i", + "term.createNewPlaylist": "TáēĄo playlist", + "term.createNewPlaylistFolder": "TáēĄo cáģĨm playlist", + "term.deletePlaylist": "BáēĄn cÃŗ muáģ‘n xoÃĄ playlist này?", + "term.play": "PhÃĄt", + "term.pause": "DáģĢng", + "term.previous": "Trưáģ›c Ä‘Ãŗ", + "term.next": "Tiáēŋp theo", + "term.shuffle": "XÃĄo tráģ™n", + "term.repeat": "Láēˇp", + "term.volume": "Âm lưáģŖng", + "term.mute": "Táē¯t tiáēŋng", + "term.unmute": "Huáģˇ táē¯t tiáēŋng", + "term.share": "Chia sáēģ", + "term.share.success": "ÄÃŖ lưu vào báģ™ nháģ› táēĄm", + "term.settings": "Cài đáēˇt", + "term.seeAll": "Xem táēĨt cáēŖ", + "term.sortBy": "Xáēŋp theo", + "term.sortBy.album": "Album", + "term.sortBy.artist": "Ngháģ‡ sÄŠ", + "term.sortBy.name": "TÃĒn", + "term.sortBy.genre": "DÃ˛ng nháēĄc", + "term.sortBy.releaseDate": "Ngày phÃĄt hành", + "term.sortBy.duration": "Tháģi lưáģŖng", + "term.sortBy.dateAdded": "Ngày thÃĒm vào", + "term.sortOrder": "A-Z", + "term.sortOrder.ascending": "Tăng dáē§n", + "term.sortOrder.descending": "GiáēŖm dáē§n", + "term.viewAs": "Xem theo kiáģƒu", + "term.viewAs.coverArt": "áēĸnh bÃŦa", + "term.viewAs.list": "Danh sÃĄch", + "term.size": "CáģĄ", + "term.size.normal": "VáģĢa", + "term.size.compact": "Thu gáģn", + "term.enable": "Báē­t", + "term.disable": "Táē¯t", + "term.enabled": "ÄÃŖ báē­t", + "term.disabled": "ÄÃŖ táē¯t", + "term.connect": "Káēŋt náģ‘i", + "term.connecting": "Đang káēŋt náģ‘i", + "term.disconnect": "DáģĢng káēŋt náģ‘i", + "term.authed": "ÄÃŖ đăng nháē­p", + "term.confirm": "BáēĄn cÃŗ chăc không?", + "term.more": "ThÃĒm", + "term.less": "Ít hÆĄn", + "term.showMore": "Hiáģ‡n thÃĒm", + "term.showLess": "Hiáģ‡n ít hÆĄn", + "term.topSongs": "CÃĄc bài hÃĄt náģ•i báē­t", + "term.latestReleases": "Máģ›i nháēĨt", + "term.time.added": "ThÃĒm vào ngày", + "term.time.released": "PhÃĄt hành vào ngày", + "term.time.updated": "Cáē­p nháē­t vào ngày", + "term.time.hours": "giáģ", + "term.time.hour": "giáģ", + "term.time.minutes": "phÃēt", + "term.time.minute": "phÃēt", + "term.time.seconds": "giÃĸy", + "term.time.second": "giÃĸy", + "term.fullscreenView": "Xem toàn màn hÃŦnh", + "term.defaultView": "Xem gáģ‘c", + "term.audioSettings": "Cài đáēˇt Ãĸm thanh", + "term.clearAll": "XoÃĄ táēĨt cáēŖ", + "term.recentStations": "CÃĄc đài gáē§n đÃĸy", + "term.language": "Ngôn ngáģ¯", + "term.funLanguages": "Vui váēģ", + "term.noLyrics": "Đang tÃŦm... / Không cÃŗ láģi bài hÃĄt.", + "term.copyright": "BáēŖn quyáģn", + "term.rightsReserved": "Máģi quyáģn thuáģ™c váģ cÃĄc cháģ§ sáģŸ háģ¯u.", + "term.sponsor": "Tài tráģŖ cho dáģą ÃĄn này", + "term.ciderTeam": "Cider Team", + "term.developer": "Láē­p trÃŦnh viÃĒn", + "term.socialTeam": "Social Team", + "term.socials": "PR", + "term.contributors": "CÃĄc Ä‘Ãŗng gÃŗp viÃĒn", + "term.equalizer": "EQ", + "term.reset": "Đáēˇt váģ máēˇc đáģ‹nh", + "term.tracks": "bài", + "term.videos": "Video", + "term.menu": "Menu", + "term.check": "Kiáģƒm tra", + "term.aboutArtist": "Váģ {{artistName}}", + "term.topResult": "Káēŋt quáēŖ gáē§n nháēĨt", + "term.sharedPlaylists": "Playlist đưáģŖc chia sáēģ", + "term.people": "Ngưáģi dÚng", + "term.newpreset.name": "TáēĄo thiÊt láē­p EQ", + "term.addedpreset": "CÃĄc thiÊt láē­p EQ Ä‘ÃŖ đưáģŖc thÃĒm", + "term.deletepreset.warn": "BáēĄn cÃŗ muáģ‘n xoÃĄ thiáēŋt láē­p này?", + "term.deletedpreset": "Thiáēŋt láē­p Ä‘ÃŖ báģ‹ xoÃĄ", + "term.requestError": "CÃŗ váēĨn đáģ khi tháģąc hiáģ‡n yÃĒu cáē§u.", + "term.song.link.generate": "TÃŦm URL danh máģĨc trÃĒn song.link ...", + "term.musicVideos": "Video ca nháēĄc", + "term.stations": "CÃĄc đài", + "term.curators": "Nhà tuyáģƒn cháģn", + "term.appleCurators": "Tuyáģƒn cháģn táģĢ Apple", + "term.radioShows": "CÃĄc chÆ°ÆĄng trÃŦnh radio", + "term.recordLabels": "Nhà phÃĄt hành Ãĸm nháēĄc", + "term.videoExtras": "Video khÃĄc", + "term.top": "Top", + "home.title": "Chính", + "home.recentlyPlayed": "Máģ›i phÃĄt", + "home.recentlyAdded": "Máģ›i thÃĒm vào", + "home.artistsFeed": "Theo dÃĩi", + "home.artistsFeed.noArtist": "Theo dÃĩi cÃĄc nháēĄc sÄŠ mà báēĄn yÃĒu thích và nháē­n thông bÃĄo khi cÃŗ bài hÃĄt máģ›i.", + "home.madeForYou": "Dành cho báēĄn", + "home.friendsListeningTo": "BáēĄn bè đang nghe", + "home.followedArtists": "CÃĄc ngháģ‡ sÄŠ đang theo dÃĩi", + "error.appleMusicSubRequired": "Apple Music yÃĒu cáē§u báēĄn đăng kí.", + "error.connectionError": "CÃŗ váēĨn đáģ káēŋt náģ‘i táģ›i Apple Music.", + "error.noResults": "Không cÃŗ káēŋt quáēŖ.", + "error.noResults.description": "HÃŖy tháģ­ tÃŦm kiáēŋm báēŗng táģĢ khoÃĄ khÃĄc.", + "podcast.followOnCider": "Theo dÃĩi trÃĒn Cider", + "podcast.followedOnCider": "Đang theo dÃĩi trÃĒn Cider", + "podcast.subscribeOnItunes": "Theo dÃĩi trÃĒn iTunes", + "podcast.subscribedOnItunes": "Đang theo dÃĩi trÃĒn iTunes", + "podcast.itunesStore": "Cáģ­a hàng iTunes", + "podcast.episodes": "CÃĄc táē­p", + "podcast.playEpisode": "PhÃĄt", + "podcast.website": "Trang cháģ§", + "action.addToLibrary": "ThÃĒm vào thư viáģ‡n", + "action.addToLibrary.success": "ÄÃŖ thÃĒm vào thư viáģ‡n", + "action.addToLibrary.error": "CÃŗ láģ—i khi thÃĒm vào thư viáģ‡n", + "action.removeFromLibrary": "XoÃĄ kháģi thư viáģ‡n", + "action.removeFromLibrary.success": "ÄÃŖ xoÃĄ kháģi thư viáģ‡n", + "action.addToQueue": "ThÃĒm vào hàng đáģŖi", + "action.addToQueue.success": "ÄÃŖ thÃĒm vào hàng đáģŖi", + "action.addToQueue.error": "CÃŗ láģ—i khi thÃĒm vào hàng đáģŖi", + "action.removeFromQueue": "XoÃĄ kháģi hàng đáģŖi", + "action.removeFromQueue.success": "ÄÃŖ xoÃĄ kháģi hàng đáģŖi", + "action.removeFromQueue.error": "CÃŗ láģ—i khi xoÃĄ kháģi hàng đáģŖi", + "action.createPlaylist": "TáēĄo playlist", + "action.addToPlaylist": "ThÃĒm vào playlist", + "action.removeFromPlaylist": "XoÃĄ kháģi playlist", + "action.addToFavorites": "ThÃĒm vào YÃĒu thích", + "action.follow": "Theo dÃĩi", + "action.follow.success": "ÄÃŖ theo dÃĩi", + "action.follow.error": "CÃŗ láģ—i khi theo dÃĩi", + "action.unfollow": "NgáģĢng theo dÃĩi", + "action.unfollow.success": "ÄÃŖ ngáģĢng theo dÃĩi", + "action.unfollow.error": "CÃŗ láģ—i khi ngáģĢng theo dÃĩi", + "action.playNext": "PhÃĄt tiáēŋp theo", + "action.playLater": "PhÃĄt cuáģ‘i cÚng", + "action.startRadio": "TáēĄo đài phÃĄt", + "action.goToArtist": "Đi đáēŋn ngháģ‡ sÄŠ", + "action.goToAlbum": "Đi đáēŋn album", + "action.moveToTop": "Đưa lÃĒn đáē§u", + "action.share": "Chia sáēģ", + "action.rename": "Đáģ•i tÃĒn", + "action.love": "YÃĒu thích", + "action.unlove": "Báģ yÃĒu thích", + "action.dislike": "Không thích", + "action.undoDislike": "Báģ không thích", + "action.showWebRemoteQR": "Điáģu khiáģƒn táģĢ xa", + "action.playTracksNext": "PhÃĄt ${app.selectedMediaItems.length} bài tiáēŋp theo", + "action.playTracksLater": "PhÃĄt ${app.selectedMediaItems.length} bài cuáģ‘i cÚng", + "action.removeTracks": "Báģ ${self.selectedItems.length} bài kháģi hàng đáģŖi", + "action.import": "Nháē­p", + "action.export": "XuáēĨt", + "action.showAlbum": "Hiáģ‡n album đáē§y đáģ§", + "action.tray.minimize": "Thu nháģ xuáģ‘ng khay háģ‡ tháģ‘ng", + "action.tray.quit": "ThoÃĄt", + "action.tray.show": "Hiáģ‡n", + "action.update": "Cáē­p nháē­t", + "action.copy": "Sao chÊp", + "action.newpreset": "Thiáēŋp láē­p máģ›i...", + "action.deletepreset": "XoÃĄ thiÃĒt láē­p", + "settings.header.general": "Cài đáēˇt chung", + "settings.header.general.description": "Thay đáģ•i cÃĄc cài đáēˇt chung cáģ§a Cider.", + "settings.option.general.language": "Ngôn ngáģ¯", + "settings.option.general.language.main": "Ngôn ngáģ¯ chính", + "settings.option.general.language.fun": "Ngôn ngáģ¯ hư cáēĨu", + "settings.option.general.language.unsorted": "Ngôn ngáģ¯ khÃĄc", + "settings.option.general.updateCider": "Cáē­p nháē­t Cider", + "settings.option.general.updateCider.branch": "NhÃĄnh cáē­p nháē­t", + "settings.option.general.updateCider.branch.description": "Cháģn nhÃĄnh cáē­p nháē­t cáģ§a Cider:", + "settings.option.general.updateCider.branch.main": "áģ”n đáģ‹nh", + "settings.option.general.updateCider.branch.develop": "Tháģ­ nghiáģ‡m", + "settings.header.audio": "Âm thanh", + "settings.header.audio.description": "Thay đáģ•i cÃĄc cài đáēˇt Ãĸm thanh cáģ§a Cider.", + "settings.option.audio.quality": "CháēĨt lưáģŖng Ãĸm thanh", + "settings.header.audio.quality.hireslossless": "Hi-Res Lossless", + "settings.header.audio.quality.hireslossless.description": "lÃĒn táģ›i 24-bit/192 kHz", + "settings.header.audio.quality.lossless": "Lossless", + "settings.header.audio.quality.lossless.description": "lÃĒn táģ›i 24-bit/48 kHz", + "settings.header.audio.quality.high": "Cao", + "settings.header.audio.quality.high.description": "256 kbps", + "settings.header.audio.quality.standard": "TiÃĒu chuáēŠn", + "settings.header.audio.quality.standard.description": "64 kbps", + "settings.option.audio.seamlessTransition": "Gapless playback", + "settings.option.audio.enableAdvancedFunctionality": "Kích hoáēĄt chính năng nÃĸng cao", + "settings.option.audio.enableAdvancedFunctionality.description": "Báē­t cÃĄc cháģŠc năng nÃĸng cao sáēŊ kích hoáēĄt cÃĄc cháģŠc năng như EQ, ChuáēŠn hoÃĄ Ãĸm lưáģŖng hay Visualizer, tuy nhiÃĒn cÃŗ tháģƒ sáēŊ áēŖnh hưáģŸng táģ›i cháēĨt lưáģŖng Ãĸm thanh", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processorâ„ĸī¸", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "CÃĄc tinh cháģ‰nh váģ Ãĸm thanh giÃēp cho nháēĄc cáģ§a báēĄn áēĨm và rÃĩ hÆĄn.", + "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP không tÆ°ÆĄng thích váģ›i Âm thanh đa chiáģu. HÃŖy táē¯t Âm thanh đa chiáģu đáģƒ kích hoáēĄt.", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Strength", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Cháģ‰nh máģŠc đáģ™ áēŖnh hưáģŸng cáģ§a CAP đáēŋn Ãĸm thanh. (Cháēŋ đáģ™ MáēĄnh cÃŗ tháģƒ áēŖnh hưáģŸng đáēŋn Ãĸm thanh cáģ§a báēĄn)", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "TiÃĒu chuáēŠn", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "MáēĄnh", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "ChuáēŠn hoÃĄ Ãĸm lưáģŖng", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Đáēˇt cÚng máģŠc Ãĸm lưáģŖng cho máģi bài hÃĄt", + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "TáēĄo Âm thanh đa chiáģu ", + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Làm cho Ãĸm thanh tráģŸ nÃĒn nhiáģu chiáģu hÆĄn (Ghi chÃē: ĐÃĸy không pháēŖi là Dolby Atmos)", + "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "Âm thanh đa chiáģu không tÆ°ÆĄng thích váģ›i CAP. HÃŖy táē¯t CAP đáģƒ kích hoáēĄt.", + "settings.header.visual": "Hiáģƒn tháģ‹", + "settings.header.visual.description": "Thay đáģ•i cÃĄc cài đáēˇt hiáģƒn tháģ‹ cáģ§a Cider.", + "settings.option.visual.windowBackgroundStyle": "Cháēŋ đáģ™ áēŖnh náģn", + "settings.header.visual.windowBackgroundStyle.none": "Không", + "settings.header.visual.windowBackgroundStyle.artwork": "áēĸnh bÃŦa", + "settings.header.visual.windowBackgroundStyle.image": "áēĸnh", + "settings.option.visual.animatedArtwork": "áēĸnh bÃŦa đáģ™ng", + "settings.header.visual.animatedArtwork.always": "Luôn báē­t", + "settings.header.visual.animatedArtwork.limited": "Cháģ‰ hiáģ‡n áģŸ máģ‘t sáģ‘ trang cÃĄ nhÃĸn", + "settings.header.visual.animatedArtwork.disable": "Táē¯t", + "settings.option.visual.animatedArtworkQuality": "CháēĨt lưáģŖng áēŖnh bÃŦa đáģ™ng", + "settings.header.visual.animatedArtworkQuality.low": "TháēĨp", + "settings.header.visual.animatedArtworkQuality.medium": "Trung bÃŦnh", + "settings.header.visual.animatedArtworkQuality.high": "Cao", + "settings.header.visual.animatedArtworkQuality.veryHigh": "RáēĨt cao", + "settings.header.visual.animatedArtworkQuality.extreme": "RáēĨt ráēĨt cao", + "settings.option.visual.animatedWindowBackground": "HÃŦnh náģn chuyáģƒn đáģ™ng", + "settings.option.visual.hardwareAcceleration": "Cháēŋ đáģ™ Hiáģƒn tháģ‹", + "settings.option.visual.hardwareAcceleration.description": "YÃĒu cáē§u restart láēĄi Cider đáģƒ kích hoáēĄt", + "settings.header.visual.hardwareAcceleration.default": "Gáģ‘c", + "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", + "settings.header.visual.theme": "Cháģ§ Ä‘áģ", + "settings.option.visual.theme.default": "Cider", + "settings.option.visual.theme.dark": "Táģ‘i hÆĄn", + "settings.option.visual.showPersonalInfo": "Hiáģ‡n thông tin cÃĄ nhÃĸn", + "settings.header.lyrics": "Láģi bài hÃĄt", + "settings.header.lyrics.description": "Thay đáģ•i cÃĄc cài đáēˇt láģi bài hÃĄt cáģ§a Cider.", + "settings.option.lyrics.enableMusixmatch": "DÚng láģi táģĢ Musixmatch", + "settings.option.lyrics.enableMusixmatchKaraoke": "Báē­t cháēŋ đáģ™ karaoke (cháģ‰ trÃĒn láģi táģĢ Musixmatch)", + "settings.option.lyrics.musixmatchPreferredLanguage": "Ngôn ngáģ¯ dáģ‹ch cáģ§a Musixmatch", + "settings.option.lyrics.enableYoutubeLyrics": "DÚng láģi táģĢ Youtube cho cÃĄc Video ca nháēĄc", + "settings.header.connectivity": "Káēŋt náģ‘i", + "settings.header.connectivity.description": "Thay đáģ•i cÃĄc cài đáēˇt láģi káēŋt náģ‘i cáģ§a Cider.", + "settings.option.connectivity.discordRPC": "Discord Rich Presence", + "settings.option.connectivity.playbackNotifications": "Thông bÃĄo chuyáģƒn bài", + "settings.header.connectivity.discordRPC.cider": "Hiáģ‡n là 'Cider'", + "settings.header.connectivity.discordRPC.appleMusic": "Hiáģ‡n là 'Apple Music'", + "settings.option.connectivity.discordRPC.clearOnPause": "XoÃĄ Discord Rich Presence khi dáģĢng nháēĄc", + "settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling", + "settings.option.connectivity.lastfmScrobble.delay": "Last.fm Scrobble Delay (%)", + "settings.option.connectivity.lastfmScrobble.nowPlaying": "Báē­t Last.fm Now Playing", + "settings.option.connectivity.lastfmScrobble.removeFeatured": "XoÃĄ cÃĄc ngháģ‡ sÄŠ pháģ‘i háģŖp áģŸ tÃĒn bài hÃĄt (Last.fm)", + "settings.option.connectivity.lastfmScrobble.filterLoop": "Láģc cÃĄc bài trÚng (Last.fm)", + "settings.header.experimental": "Tháģ­ nghiáģ‡m", + "settings.header.experimental.description": "Thay đáģ•i cÃĄc cài đáēˇt láģi tháģ­ nghiáģ‡m cáģ§a Cider.", + "settings.option.experimental.compactUI": "UI thu gáģn", + "settings.option.window.close_button_hide": "NÃēt thoÃĄt cáģ­a sáģ‘ sáēŊ áēŠn Cider xuáģ‘ng khay háģ‡ tháģ‘ng", + "settings.option.experimental.copy_log": "Sao chÊp logs ra báģ™ nháģ› táēĄm", + "settings.option.experimental.inline_playlists": "Playlists and Albums hiáģ‡n náģ•i lÃĒn trÃĒn", + "spatial.notTurnedOn": "Âm thanh đa chiáģu chưa đưáģŖc kích hoáēĄt. HÃŖy kích hoáēĄt nÃŗ trưáģ›c", + "spatial.spatialProperties": "Tinh cháģ‰nh cho Âm thanh đa chiáģu", + "spatial.width": "Chiáģu ráģ™ng", + "spatial.height": "Chiáģu cao", + "spatial.depth": "Chiáģu sÃĸu", + "spatial.gain": "Gain", + "spatial.roomMaterials": "CháēĨt liáģ‡u phÃ˛ng", + "spatial.roomDimensions": "Kích thưáģ›c phÃ˛ng", + "spatial.roomPositions": "Váģ‹ trí phÃ˛ng", + "spatial.setDimensions": "Cháģ‰nh kích thưáģ›c", + "spatial.setPositions": "Cháģ‰nh váģ‹ trí", + "spatial.up": "TrÃĒn", + "spatial.front": "Trưáģ›c", + "spatial.left": "TrÃĄi", + "spatial.right": "PháēŖi", + "spatial.back": "Sau", + "spatial.down": "Dưáģ›i", + "spatial.listener": "Ngưáģi nghe", + "spatial.audioSource": "Nguáģ“n Ãĸm thanh", + "settings.header.unfinished": "Chưa hoàn thiáģ‡n", + "remote.web.title": "Điáģu khiáģƒn táģĢ xa cáģ§a Cider", + "remote.web.description": "QuÊt mÃŖ QR đáģƒ káēŋt náģ‘i thiáēŋt báģ‹ cáģ§a báēĄn váģ›i Cider", + "about.thanks": "TrÃĸn tráģng cáēŖm ÆĄn Cider Collective Team và táēĨt cáēŖ cÃĄc Ä‘Ãŗng gÃŗp viÃĒn cáģ§a chÃēng tôi." +} \ No newline at end of file diff --git a/src/i18n/zh_CN.jsonc b/src/i18n/zh_CN.json similarity index 65% rename from src/i18n/zh_CN.jsonc rename to src/i18n/zh_CN.json index 8844e83b..8ec56875 100644 --- a/src/i18n/zh_CN.jsonc +++ b/src/i18n/zh_CN.json @@ -1,30 +1,21 @@ { - // i18n Info - "i18n.languageName": "įŽ€äŊ“中文īŧˆä¸­å›Ŋīŧ‰", // name of language in native language - "i18n.languageNameEnglish": "Simp. Chinese (China)", // name of language in English - "i18n.category": "main", // main = real language, fun = fun community languages - "i18n.authors": "@maikirakiwi", // Authors, if you contribute to this file feel free to add your name seperated with a space - - // App info + "i18n.languageName": "įŽ€äŊ“中文īŧˆä¸­å›Ŋīŧ‰", + "i18n.languageNameEnglish": "Simp. Chinese (China)", + "i18n.category": "main", + "i18n.authors": "@maikirakiwi @BillKerman", "app.name": "Cider", - "date.format": "${y}åš´${m}月${d}æ—Ĩ", - - // Dialogs "dialog.cancel": "取æļˆ", "dialog.ok": "įĄŽåŽš", - - // Notification "notification.updatingLibrarySongs": "æ­Ŗåœ¨æ›´æ–°čĩ„æ–™åē“įš„æ­Œæ›˛äŋĄæ¯...", "notification.updatingLibraryAlbums": "æ­Ŗåœ¨æ›´æ–°čĩ„æ–™åē“įš„ä¸“čž‘äŋĄæ¯...", "notification.updatingLibraryArtists": "æ­Ŗåœ¨æ›´æ–°čĩ„æ–™åē“įš„č‰ēäēēäŋĄæ¯...", - - // Terms - "term.appleMusic": "Apple Music", // Follows brand term - "term.applePodcasts": "Apple Podcasts", // Follows brand term - "term.itunes": "iTunes", // Follows brand term - "term.github": "GitHub", // Follows brand term - "term.discord": "Discord", // Follows brand term + "term.appleInc": "Apple Inc.", + "term.appleMusic": "Apple Music", + "term.applePodcasts": "Apple Podcasts", + "term.itunes": "iTunes", + "term.github": "GitHub", + "term.discord": "Discord", "term.learnMore": "更多äŋĄæ¯", "term.accountSettings": "č´ĻæˆˇčŽžįŊŽ", "term.logout": "į™ģå‡ē", @@ -32,6 +23,7 @@ "term.about": "å…ŗäēŽ", "term.privateSession": "ᧁäēē聆åŦ", "term.queue": "队列", + "term.history": "æ’­æ”žåŽ†å˛", "term.search": "搜į´ĸ", "term.library": "čĩ„æ–™åē“", "term.listenNow": "įŽ°åœ¨å°ąåŦ", @@ -44,6 +36,11 @@ "term.podcasts": "播åŽĸ", "term.playlists": "æ’­æ”žåˆ—čĄ¨", "term.playlist": "æ’­æ”žåˆ—čĄ¨", + "term.newPlaylist": "æ–°æ’­æ”žåˆ—čĄ¨", + "term.newPlaylistFolder": "æ–°æ’­æ”žåˆ—čĄ¨æ–‡äģļ多", + "term.createNewPlaylist": "新åģēæ’­æ”žåˆ—襨", + "term.createNewPlaylistFolder": "新åģēæ’­æ”žåˆ—čĄ¨æ–‡äģļ多", + "term.deletePlaylist": "æ‚¨įĄŽåŽščĻåˆ é™¤č¯Ĩæ’­æ”žåˆ—čĄ¨å—?", "term.play": "播攞", "term.pause": "暂停", "term.previous": "上一éĻ–", @@ -54,6 +51,7 @@ "term.mute": "é™éŸŗ", "term.unmute": "č§Ŗé™¤é™éŸŗ", "term.share": "分äēĢ", + "term.share.success": "åˇ˛å¤åˆļ到å‰Ēč´´æŋ", "term.settings": "莞įŊŽ", "term.seeAll": "æŸĨįœ‹å…¨éƒ¨", "term.sortBy": "排åē", @@ -103,60 +101,73 @@ "term.clearAll": "清įŠē", "term.recentStations": "最čŋ‘æ’­æ”žįš„éĸ‘道", "term.language": "蝭荀", - "term.noLyrics": "加čŊŊ中。。/ 搜į´ĸ无į쓿žœ / įē¯éŸŗäš", + "term.funLanguages": "æļ搞", + "term.noLyrics": "加čŊŊ中... / 无搜į´ĸį쓿žœ / įē¯éŸŗäš", "term.copyright": "į‰ˆæƒæ‰€æœ‰", "term.rightsReserved": "äŋį•™æ‰€æœ‰æƒåˆŠã€‚", "term.sponsor": "čĩžåŠŠ", "term.ciderTeam": "Cider å›ĸ队", "term.developer": "åŧ€å‘者", "term.socialTeam": "åĒ’äŊ“å›ĸ队", + "term.socials": "åĒ’äŊ“", "term.contributors": "č´ĄįŒŽč€…", "term.equalizer": "å‡čĄĄå™¨", "term.reset": "重įŊŽ", - "term.tracks": "éĻ–æ­Œæ›˛", // Assume x amount of tracks. e.g. 50 tracks + "term.tracks": "éĻ–æ­Œæ›˛", "term.videos": "视éĸ‘", "term.menu": "čœå•", "term.check": "æŖ€æŸĨ", - "term.aboutArtist": "å…ŗäēŽ{{artistName}}", // e.g. 'About Doja Cat' - - // Home + "term.aboutArtist": "å…ŗäēŽ{{artistName}}", + "term.updateCider": "更新 Cider", + "term.topResult": "įƒ­é—¨æœį´ĸį쓿žœ", + "term.sharedPlaylists": "分äēĢæ’­æ”žåˆ—襨", + "term.people": "ä¸ĒäēēæĄŖæĄˆ", + "term.newpreset.name": "æ–°å‡čĄĄå™¨éĸ„čŽžå", + "term.addedpreset": "éĸ„čŽžåˇ˛æˇģ加", + "term.deletepreset.warn": "äŊ įĄŽåޚčĻåˆ é™¤æ­¤éĸ„čŽžå—?", + "term.deletedpreset": "éĸ„čŽžåˇ˛åˆ é™¤", + "term.defaultPresets": "éģ˜čޤéĸ„莞", + "term.userPresets": "į”¨æˆˇéĸ„莞", + "term.requestError": "č¯ˇæą‚å‡ēįŽ°ä¸€ä¸Ē问éĸ˜ã€‚", + "term.song.link.generate": "čŽˇå– song.link å…ąäēĢ链æŽĨ...", + "term.musicVideos": "éŸŗäšč§†éĸ‘", + "term.stations": "į”ĩ台", + "term.radioShows": "åšŋ播单集", + "term.recordLabels": "å”ąį‰‡å…Ŧ司", + "term.videoExtras": "视éĸ‘į‰ščž‘", + "term.version": "į‰ˆæœŦ", "home.title": "ä¸ģéĄĩ", "home.recentlyPlayed": "最čŋ‘播攞", "home.recentlyAdded": "最čŋ‘æˇģ加", "home.artistsFeed": "č‰ēäēēæŽ¨č", - "home.artistsFeed.noArtist": "čŋŊč¸Ēæ‚¨å–œįˆąįš„č‰ēäēē后äžŋ可æŸĨįœ‹äģ–äģŦįš„æœ€æ–°å‘čĄŒã€‚", + "home.artistsFeed.noArtist": "å…ŗæŗ¨æ‚¨å–œįˆąįš„č‰ēäēē后äžŋ可æŸĨįœ‹äģ–äģŦįš„æœ€æ–°å‘čĄŒæ­Œæ›˛ã€‚", "home.madeForYou": "ä¸“åąžæŽ¨č", "home.friendsListeningTo": "æœ‹å‹æ­Ŗåœ¨åŦ", "home.followedArtists": "å…ŗæŗ¨įš„č‰ēäēē", - - // Errors "error.appleMusicSubRequired": "需čρčŽĸ阅 Apple Music äģĨäŊŋᔍ Cider", "error.connectionError": "æ— æŗ•čŋžæŽĨ到 Apple Music。", - "error.noResults": "æ˛Ąæœ‰į쓿žœ", + "error.noResults": "æ˛Ąæœ‰į쓿žœã€‚", "error.noResults.description": "å°č¯•æ›´æ”šæœį´ĸæĄäģļ。", - - // Podcasts - "podcast.followOnCider": "在 Cider 中čŋŊč¸Ē", - "podcast.followedOnCider": "厞čŋŊč¸Ē", + "podcast.followOnCider": "在 Cider ä¸­å…ŗæŗ¨", + "podcast.followedOnCider": "åˇ˛å…ŗæŗ¨", "podcast.subscribeOnItunes": "在 iTunes 上čŽĸ阅", "podcast.subscribedOnItunes": "厞čŽĸ阅", - "podcast.itunesStore": "iTunes Store", // Follow brand term + "podcast.itunesStore": "iTunes Store", "podcast.episodes": "单集", "podcast.playEpisode": "播攞单集", "podcast.website": "Podcast įŊ‘įĢ™", - - // Actions "action.addToLibrary": "加å…Ĩčĩ„æ–™åē“", "action.addToLibrary.success": "成功加å…Ĩčĩ„æ–™åē“", "action.addToLibrary.error": "加å…Ĩčĩ„æ–™åē“įš„čŋ‡į¨‹å‘į”Ÿäē†é”™č¯¯", "action.removeFromLibrary": "äģŽčĩ„æ–™åē“中į§ģ除", "action.removeFromLibrary.success": "厞äģŽčĩ„æ–™åē“中į§ģ除", - "action.addToQueue": "加å…Ĩ队列", - "action.addToQueue.success": "成功加å…Ĩ队列", - "action.addToQueue.error": "加å…Ĩé˜Ÿåˆ—įš„čŋ‡į¨‹å‘į”Ÿäē†é”™č¯¯", - "action.removeFromQueue": "äģŽé˜Ÿåˆ—中į§ģ除", - "action.removeFromQueue.success": "厞äģŽé˜Ÿåˆ—中į§ģ除", - "action.removeFromQueue.error": "äģŽé˜Ÿåˆ—中į§ģé™¤įš„čŋ‡į¨‹å‘į”Ÿäē†é”™č¯¯", + "action.addToQueue": "加å…Ĩ垅播清单", + "action.addToQueue.success": "成功加å…Ĩ加å…Ĩ垅播清单", + "action.addToQueue.error": "加å…Ĩ加å…Ĩåž…æ’­æ¸…å•įš„čŋ‡į¨‹å‘į”Ÿäē†é”™č¯¯", + "action.removeFromQueue": "äģŽåŠ å…Ĩ垅播清单中į§ģ除", + "action.removeFromQueue.success": "厞äģŽåŠ å…Ĩ垅播清单中į§ģ除", + "action.removeFromQueue.error": "äģŽåŠ å…Ĩ垅播清单中į§ģé™¤įš„čŋ‡į¨‹å‘į”Ÿäē†é”™č¯¯", + "action.createPlaylist": "新åģēæ’­æ”žåˆ—襨", "action.addToPlaylist": "加å…Ĩæ’­æ”žåˆ—čĄ¨", "action.removeFromPlaylist": "äģŽæ’­æ”žåˆ—襨中į§ģ除", "action.addToFavorites": "åŠ č‡ŗæ”ļ藏", @@ -166,7 +177,7 @@ "action.unfollow": "取æļˆå…ŗæŗ¨", "action.unfollow.success": "åˇ˛å–æļˆå…ŗæŗ¨", "action.unfollow.error": "å°č¯•å–æļˆå…ŗæŗ¨įš„čŋ‡į¨‹å‘į”Ÿäē†é”™č¯¯", - "action.playNext": "下一éĻ–æ’­æ”ž", + "action.playNext": "插播", "action.playLater": "最后播攞", "action.startRadio": "åŧ€å§‹į”ĩ台", "action.goToArtist": "前垀č‰ēäēē", @@ -177,11 +188,11 @@ "action.love": "喜æŦĸ", "action.unlove": "踊", "action.dislike": "减少此įąģåģē莎", - "action.undoDislike": "åĸžåŠ æ­¤įąģåģē莎", + "action.undoDislike": "撤销减少此įąģåģē莎", "action.showWebRemoteQR": "昞į¤ēčŋœį¨‹æŽ§åˆļįš„äēŒįģ´į ", "action.playTracksNext": "插播 ${app.selectedMediaItems.length} éĻ–æ­Œæ›˛", "action.playTracksLater": "最后播攞 ${app.selectedMediaItems.length} éĻ–æ­Œæ›˛", - "action.removeTracks": "äģŽé˜Ÿåˆ—中į§ģ除 ${self.selectedItems.length} éĻ–æ­Œæ›˛", + "action.removeTracks": "äģŽåž…播清单中į§ģ除 ${self.selectedItems.length} éĻ–æ­Œæ›˛", "action.import": "å¯ŧå…Ĩ", "action.export": "å¯ŧå‡ē", "action.showAlbum": "昞į¤ē专辑", @@ -189,11 +200,23 @@ "action.tray.quit": "退å‡ē", "action.tray.show": "昞į¤ē", "action.update": "更新", - - // Settings - Audio + "action.copy": "复åˆļ", + "action.newpreset": "新åģēéĸ„莞...", + "action.deletepreset": "删除éĸ„莞", + "settings.header.general": "é€šį”¨", + "settings.header.general.description": "č°ƒæ•´ Cider įš„é€šį”¨čŽžįŊŽ", + "settings.option.general.language": "蝭荀", + "settings.option.general.language.main": "蝭荀", + "settings.option.general.language.fun": "æļæžč¯­č¨€", + "settings.option.general.language.unsorted": "æœĒ分įąģ", + "settings.option.general.updateCider": "更新 Cider", + "settings.option.general.updateCider.branch": "Cider 更新通道", + "settings.option.general.updateCider.branch.description": "选拊æŽĨ受 Cider æ›´æ–°įš„é€šé“", + "settings.option.general.updateCider.branch.main": "į¨ŗåŽš", + "settings.option.general.updateCider.branch.develop": "æĩ‹č¯•", "settings.header.audio": "韺éĸ‘", "settings.header.audio.description": "č°ƒæ•´ Cider įš„éŸŗéĸ‘莞įŊŽ", - "settings.option.audio.quality": "韺贍", // Dropdown + "settings.option.audio.quality": "韺贍", "settings.header.audio.quality.hireslossless": "éĢ˜č§ŖæžåēĻæ— æŸ", "settings.header.audio.quality.hireslossless.description": "(最é̘ 24 äŊ/192 kHz)", "settings.header.audio.quality.lossless": "无损", @@ -202,77 +225,75 @@ "settings.header.audio.quality.high": "é̘韺贍", "settings.header.audio.quality.standard": "éĢ˜æ•ˆįŽ‡", "settings.header.audio.quality.auto": "č‡Ē动", - "settings.option.audio.seamlessTransition": "无įŧæ’­æ”ž", // Toggle - "settings.option.audio.enableAdvancedFunctionality": "čŋ›é˜ļ功čƒŊ", // Toggle + "settings.option.audio.seamlessTransition": "无įŧæ’­æ”ž", + "settings.option.audio.enableAdvancedFunctionality": "čŋ›é˜ļ功čƒŊ", "settings.option.audio.enableAdvancedFunctionality.description": "吝ᔍ AudioContext å°†č§Ŗé”äž‹åĻ‚éŸŗé‡æ ‡å‡†åŒ–å’ŒéŸŗéĸ‘įŠēé—´åŒ–įš„åŠŸčƒŊīŧŒäŊ†å¯čƒŊäŧšåœ¨å°éƒ¨åˆ†čŽžå¤‡ä¸Šå‡ēįŽ°éŸŗéĸ‘ä¸Šįš„åĄéĄŋ。", - "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider 数字åĸžåŧēåŧ•擎â„ĸī¸", // Toggle + "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider 数字åĸžåŧēåŧ•擎â„ĸī¸", "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "将æŦēéĒ—æ‚¨įš„å¤§č„‘æĨ感įŸĨ到čŋ‘äŧŧæ— æŸéŸŗéĸ‘įš„æ•ˆæžœã€‚", - "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "éŸŗé‡æ ‡å‡†åŒ–", // Toggle + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "数字åĸžåŧēåŧ•擎åŧēåēĻ", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "æ”šå˜éŸŗéĸ‘å¤„į†įš„åŧēåēĻ。(æŋ€čŋ›é€‰éĄšå¯čƒŊäē§į”Ÿæ‚éŸŗ)", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "éŸŗé‡æ ‡å‡†åŒ–", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "äŊŋ所感įŸĨåˆ°įš„éŸŗéĸ‘响åēĻįģŸä¸€", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "韺éĸ‘įŠē间化", // Toggle + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "韺éĸ‘įŠē间化", "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "äŊŋ所感įŸĨåˆ°įš„éŸŗéĸ‘更有įĢ‹äŊ“感 (æŗ¨: čŋ™ä¸æ˜¯æœæ¯”å…¨æ™¯åŖ°)", - - // Settings - Visual + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "标准", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "æŋ€čŋ›", + "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "įŠēé—´éŸŗéĸ‘与数字åĸžåŧēåŧ•擎不å…ŧ厚īŧŒč¯ˇå…ˆåœį”¨æ•°å­—åĸžåŧēåŧ•擎", "settings.header.visual": "外观", "settings.header.visual.description": "č°ƒæ•´ Cider įš„å¤–č§‚", - "settings.option.visual.windowBackgroundStyle": "įĒ—åŖčƒŒæ™¯æ ˇåŧ", // Toggle + "settings.option.visual.windowBackgroundStyle": "įĒ—åŖčƒŒæ™¯æ ˇåŧ", "settings.header.visual.windowBackgroundStyle.none": "无", "settings.header.visual.windowBackgroundStyle.artwork": "ä¸“čž‘å°éĸ", - "settings.option.visual.animatedArtwork": "åŠ¨æ€ä¸“čž‘å°éĸ", // Dropdown + "settings.header.visual.windowBackgroundStyle.image": "回像", + "settings.option.visual.animatedArtwork": "åŠ¨æ€ä¸“čž‘å°éĸ", "settings.header.visual.animatedArtwork.always": "æ€ģ是昞į¤ē", "settings.header.visual.animatedArtwork.limited": "åĒ在č‰ēäēēéĄĩéĸå’Œä¸“čž‘å°éĸ昞į¤ē", "settings.header.visual.animatedArtwork.disable": "å…ŗé—­", - "settings.option.visual.animatedArtworkQuality": "åŠ¨æ€ä¸“čž‘å°éĸį”ģč´¨", // Dropdown + "settings.option.visual.animatedArtworkQuality": "åŠ¨æ€ä¸“čž‘å°éĸį”ģč´¨", "settings.header.visual.animatedArtworkQuality.low": "äŊŽ", "settings.header.visual.animatedArtworkQuality.medium": "中", "settings.header.visual.animatedArtworkQuality.high": "é̘", "settings.header.visual.animatedArtworkQuality.veryHigh": "非常é̘", "settings.header.visual.animatedArtworkQuality.extreme": "极é̘", - "settings.option.visual.animatedWindowBackground": "动态įĒ—åŖčƒŒæ™¯", // Toggle - "settings.option.visual.hardwareAcceleration": "įĄŦäģļ加速", // Dropdown + "settings.option.visual.animatedWindowBackground": "动态įĒ—åŖčƒŒæ™¯", + "settings.option.visual.hardwareAcceleration": "įĄŦäģļ加速", "settings.option.visual.hardwareAcceleration.description": "需čĻé‡å¯ Cider 才äŧšį”Ÿæ•ˆ", "settings.header.visual.hardwareAcceleration.default": "éģ˜čޤ", "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", - // Refer to term.disabled for the disabled option - "settings.option.visual.showPersonalInfo": "昞į¤ēä¸Ēäēēčĩ„æ–™", // Toggle - - // Settings - General (Reserved) - "settings.header.general": "é€šį”¨", - "settings.header.general.description": "č°ƒæ•´ Cider įš„é€šį”¨čŽžįŊŽ", - - // Settings - General - Update Cider - "settings.option.general.updateCider": "更新 Cider", // Button - - // Settings - Lyrics + "settings.header.visual.theme": "ä¸ģéĸ˜", + "settings.option.visual.theme.github.download": "通čŋ‡GitHub URLåŽ‰čŖ…", + "settings.option.visual.theme.github.explore": "æĩč§ˆ GitHub ä¸Šįš„ä¸ģéĸ˜", + "settings.option.visual.theme.github.install.confirm": "įĄŽåŽščĻåŽ‰čŖ… {{ repo }}?", + "settings.prompt.visual.theme.github.URL": "č¯ˇčž“å…ĨæŦ˛åމ誅ä¸ģéĸ˜įš„URL", + "settings.notyf.visual.theme.install.success": "ä¸ģéĸ˜åŽ‰čŖ…æˆåŠŸ", + "settings.notyf.visual.theme.install.error": "ä¸ģéĸ˜åŽ‰čŖ…å¤ąč´Ĩ", + "settings.option.visual.theme.default": "éģ˜čޤ", + "settings.option.visual.theme.dark": "午夜éģ‘", + "settings.option.visual.showPersonalInfo": "昞į¤ēä¸Ēäēēčĩ„æ–™", "settings.header.lyrics": "æ­Œč¯", "settings.header.lyrics.description": "č°ƒæ•´ Cider įš„æ­Œč¯čŽžįŊŽ", - "settings.option.lyrics.enableMusixmatch": "吝ᔍ Musixmatch æ­Œč¯", // Toggle - "settings.option.lyrics.enableMusixmatchKaraoke": "å¯į”¨åĄæ‹‰ OK æ¨Ąåŧīŧˆäģ… Musixmatchīŧ‰", // Toggle - "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch æ­Œč¯č¯­č¨€ååĨŊ", // Dropdown - "settings.option.lyrics.enableYoutubeLyrics": "播攞 MV æ—ļäŊŋᔍ YouTube æ­Œč¯", // Toggle - - // Settings - Connectivity + "settings.option.lyrics.enableMusixmatch": "吝ᔍ Musixmatch æ­Œč¯", + "settings.option.lyrics.enableMusixmatchKaraoke": "å¯į”¨åĄæ‹‰ OK æ¨Ąåŧīŧˆäģ… Musixmatchīŧ‰", + "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch æ­Œč¯č¯­č¨€ååĨŊ", + "settings.option.lyrics.enableYoutubeLyrics": "播攞 MV æ—ļäŊŋᔍ YouTube æ­Œč¯", "settings.header.connectivity": "外部čŋžæŽĨ", "settings.header.connectivity.description": "č°ƒæ•´Cider与外部åē”į”¨įš„äē¤äē’莞įŊŽ", - "settings.option.connectivity.discordRPC": "Discord 动态", // Dropdown - // Refer to term.disabled for the disabled option - "settings.header.connectivity.discordRPC.cider": "昞į¤ēæ­Ŗåœ¨įŽŠ 'Cider'", - "settings.header.connectivity.discordRPC.appleMusic": "昞į¤ēæ­Ŗåœ¨įŽŠ 'Apple Music'", - "settings.option.connectivity.discordRPC.clearOnPause": "暂停æ—ļ清除Discord 动态", // Toggle - "settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling 莰åŊ•", // Option to Connect + "settings.option.connectivity.discordRPC": "Discord 动态", + "settings.option.connectivity.playbackNotifications": "æ­Œæ›˛æ’­æ”žé€šįŸĨ", + "settings.header.connectivity.discordRPC.cider": "昞į¤ēæ­Ŗåœ¨äŊŋᔍ 'Cider'", + "settings.header.connectivity.discordRPC.appleMusic": "昞į¤ēæ­Ŗåœ¨äŊŋᔍ 'Apple Music'", + "settings.option.connectivity.discordRPC.clearOnPause": "暂停æ—ļ清除 Discord 动态", + "settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling 莰åŊ•", "settings.option.connectivity.lastfmScrobble.delay": "LastFM Scrobble åģļčŋŸ (%)", "settings.option.connectivity.lastfmScrobble.nowPlaying": "吝ᔍ LastFM æ­Ŗåœ¨æ’­æ”ž", - "settings.option.connectivity.lastfmScrobble.removeFeatured": "äģŽæ­Œåé‡ŒåŽģ除č‰ēäēēæŽ¨č (LastFM)", - // Refer to term.connect for the connect button - - // Settings - Experimental + "settings.option.connectivity.lastfmScrobble.removeFeatured": "äģŽæ­Œåé‡ŒåŽģ除合äŊœč€… (LastFM)", + "settings.option.connectivity.lastfmScrobble.filterLoop": "不记åŊ•å•æ›˛åžĒįŽ¯ (LastFM)", "settings.header.experimental": "厞éĒŒæ€§åŠŸčƒŊ", - "settings.header.experimental.description": "č°ƒæ•´Ciderįš„åŽžéĒŒæ€§åŠŸčƒŊ", - "settings.option.experimental.compactUI": "į´§å‡‘åž‹ UI", // Toggle - "settings.option.experimental.close_button_hide": "į‚šå‡ģå…ŗé—­æŒ‰é’Žæ—ļäģ…éšč—įĒ—åŖ", - - // Refer to term.disabled & term.enabled - // Spatialization Menu + "settings.header.experimental.description": "č°ƒæ•´ Cider įš„åŽžéĒŒæ€§åŠŸčƒŊ", + "settings.option.experimental.compactUI": "į´§å‡‘åž‹ UI", + "settings.option.window.close_button_hide": "į‚šå‡ģå…ŗé—­æŒ‰é’Žæ—ļäģ…éšč—įĒ—åŖ", + "settings.option.experimental.copy_log": "复åˆļæ—Ĩåŋ—臺å‰Ēč´´æŋ", + "spatial.notTurnedOn": "č¯ˇåœ¨čŽžåŽšä¸­åŧ€å¯įŠēé—´éŸŗéĸ‘。", "spatial.spatialProperties": "įŠēé—´åąžæ€§", "spatial.width": "åŽŊåēĻ", "spatial.height": "é̘åēĻ", @@ -291,14 +312,8 @@ "spatial.down": "下", "spatial.listener": "您", "spatial.audioSource": "韺æē", - - // Settings - Unfinished "settings.header.unfinished": "æœĒ厌成", - - // Web Remote "remote.web.title": "Cider čŋœį¨‹æŽ§åˆļ", "remote.web.description": "æ‰Ģ描äģĨä¸‹įš„äēŒįģ´į äģĨ控åˆļ Cider", - - //About "about.thanks": "郑重感č°ĸ Cider Collective äģĨ及ä¸ēčŋ™ä¸ĒéĄšį›Žæäž›æ”¯æŒįš„č´ĄįŒŽč€…ã€‚" -} \ No newline at end of file +} diff --git a/src/i18n/zh_HK.jsonc b/src/i18n/zh_HK.json similarity index 74% rename from src/i18n/zh_HK.jsonc rename to src/i18n/zh_HK.json index b0618dae..b89a8b42 100644 --- a/src/i18n/zh_HK.jsonc +++ b/src/i18n/zh_HK.json @@ -1,31 +1,21 @@ { - // i18n Info - "i18n.languageName": "įšéĢ”ä¸­æ–‡īŧˆéĻ™æ¸¯īŧ‰", // name of language in native language - "i18n.languageNameEnglish": "Trad. Chinese (Hong Kong)", // name of language in English - "i18n.category": "main", // main = real language, fun = fun community languages - "i18n.authors": "@kyw504100 @maikirakiwi", // Authors, if you contribute to this file feel free to add your name seperated with a space - - // App info + "i18n.languageName": "įšéĢ”ä¸­æ–‡īŧˆéĻ™æ¸¯īŧ‰", + "i18n.languageNameEnglish": "Trad. Chinese (Hong Kong)", + "i18n.category": "main", + "i18n.authors": "@kyw504100 @maikirakiwi @BillKerman", "app.name": "Cider", - "date.format": "${y}åš´${m}月${d}æ—Ĩ", - - // Dialogs "dialog.cancel": "取æļˆ", "dialog.ok": "įĸēčĒ", - - // Notification "notification.updatingLibrarySongs": "æ­Ŗåœ¨æ›´æ–°čŗ‡æ–™åēĢįš„æ­Œæ›˛...", "notification.updatingLibraryAlbums": "æ­Ŗåœ¨æ›´æ–°čŗ‡æ–™åēĢįš„å°ˆčŧ¯...", "notification.updatingLibraryArtists": "æ­Ŗåœ¨æ›´æ–°čŗ‡æ–™åēĢįš„č—äēē...", - - // Terms "term.appleInc": "Apple Inc.", - "term.appleMusic": "Apple Music", // Follows brand term - "term.applePodcasts": "Apple Podcasts", // Follows brand term - "term.itunes": "iTunes", // Follows brand term - "term.github": "GitHub", // Follows brand term - "term.discord": "Discord", // Follows brand term + "term.appleMusic": "Apple Music", + "term.applePodcasts": "Apple Podcasts", + "term.itunes": "iTunes", + "term.github": "GitHub", + "term.discord": "Discord", "term.learnMore": "äē†č§Ŗæ›´å¤š", "term.accountSettings": "å¸ŗč™Ÿč¨­åŽš", "term.logout": "į™ģå‡ē", @@ -33,7 +23,6 @@ "term.about": "關æ–ŧ", "term.privateSession": "ᧁäē翍Ąåŧ", "term.queue": "垅播清喎", - "term.history": "æ­ˇå˛į´€éŒ„", "term.search": "搜尋", "term.library": "čŗ‡æ–™åēĢ", "term.listenNow": "įĢ‹åŗč†čŊ", @@ -47,9 +36,9 @@ "term.playlists": "æ’­æ”žåˆ—čĄ¨", "term.playlist": "æ’­æ”žåˆ—čĄ¨", "term.newPlaylist": "æ–°æ’­æ”žåˆ—čĄ¨", - "term.newPlaylistFolder": "æ–°čŗ‡æ–™å¤ž", + "term.newPlaylistFolder": "æ–°æ’­æ”žåˆ—čĄ¨čŗ‡æ–™å¤ž", "term.createNewPlaylist": "新åĸžæ’­æ”žåˆ—襨", - "term.createNewPlaylistFolder": "新åĸžčŗ‡æ–™å¤ž", + "term.createNewPlaylistFolder": "新åĸžæ’­æ”žåˆ—čĄ¨čŗ‡æ–™å¤ž", "term.deletePlaylist": "äŊ įĸēčĒčρåˆĒé™¤é€™å€‹æ’­æ”žåˆ—čĄ¨īŧŸ", "term.play": "播攞", "term.pause": "æšĢ停", @@ -61,7 +50,6 @@ "term.mute": "éœéŸŗ", "term.unmute": "取æļˆéœéŸŗ", "term.share": "分äēĢ", - "term.share.success": "厞複čŖŊ臺å‰Ēč˛ŧį°ŋ", "term.settings": "č¨­åŽš", "term.seeAll": "éĄ¯į¤ē全部", "term.sortBy": "排åē", @@ -71,6 +59,7 @@ "term.sortBy.genre": "éŸŗæ¨‚éĸ¨æ ŧ", "term.sortBy.releaseDate": "į™ŧ行æ—Ĩ期", "term.sortBy.duration": "æ™‚é•ˇ", + "term.sortBy.dateAdded": "加å…Ĩæ—Ĩ期", "term.sortOrder": "字母排åē", "term.sortOrder.ascending": "順åē", "term.sortOrder.descending": "倒åē", @@ -107,6 +96,7 @@ "term.fullscreenView": "全čžĸåš•æĒĸčĻ–", "term.defaultView": "一čˆŦæĒĸčĻ–", "term.audioSettings": "éŸŗč¨Šč¨­åŽš", + "term.audioControls": "éŸŗé‡æŽ§åˆļ", "term.clearAll": "清įŠē", "term.recentStations": "最čŋ‘æ’­æ”žįš„é ģ道", "term.language": "čĒžč¨€", @@ -122,28 +112,31 @@ "term.contributors": "č˛ĸįģ者", "term.equalizer": "å‡čĄĄå™¨", "term.reset": "重設", - "term.tracks": "éĻ–æ­Œæ›˛", // Assume x amount of tracks. e.g. 50 tracks + "term.tracks": "éĻ–æ­Œæ›˛", "term.videos": "åŊąį‰‡", "term.menu": "選項", "term.check": "æĒĸæŸĨ", - "term.aboutArtist": "關æ–ŧ {{artistName}}", // e.g. 'About Doja Cat' - "term.topResult": "į†ąé–€æœå°‹įĩæžœ", // Search Results - "term.sharedPlaylists": "æ’­æ”žåˆ—čĄ¨", // Search Results - "term.people": "個äēēæĒ”æĄˆ", // Search Results - "term.newpreset.name": "æ–°å‡čĄĄå™¨į¯„æœŦåį¨ą", // Equalizer Preset + "term.aboutArtist": "關æ–ŧ {{artistName}}", + "term.topResult": "į†ąé–€æœå°‹įĩæžœ", + "term.sharedPlaylists": "æ’­æ”žåˆ—čĄ¨", + "term.people": "個äēēæĒ”æĄˆ", + "term.newpreset.name": "æ–°å‡čĄĄå™¨į¯„æœŦåį¨ą", "term.addedpreset": "åˇ˛æ–°åĸž", "term.deletepreset.warn": "äŊ įĸēčĒčρåˆĒ除這個ᝄæœŦīŧŸ", "term.deletedpreset": "厞åˆĒ除", - "term.musicVideos": "MV", // Search page friendlyTypes + "term.defaultPresets": "預荭ᝄæœŦ", + "term.userPresets": "č‡Ē荂ᝄæœŦ", + "term.requestError": "處ᐆčĢ‹æą‚æ™‚į™ŧį”ŸéŒ¯čǤ", + "term.song.link.generate": "æ­Ŗåœ¨į”Ÿæˆ song.link 分äēĢ逪įĩ...", + "term.musicVideos": "MV", "term.stations": "é›ģ台", - //"term.curators": "Curators", - //"term.appleCurators": "Apple Curators", "term.radioShows": "åģŖæ’­å–Žé›†", "term.recordLabels": "å”ąį‰‡å…Ŧ司", "term.videoExtras": "åŊąį‰‡į‰ščŧ¯", - //"term.top": "Top", - - // Home + "term.version": "į‰ˆæœŦ", + "term.noVideos": "æ˛’æœ‰åŊąį‰‡", + "term.plugin": "å¤–æŽ›į¨‹åŧ", + "term.pluginMenu": "å¤–æŽ›į¨‹åŧé¸å–Ž", "home.title": "ä¸ģ頁", "home.recentlyPlayed": "最čŋ‘播攞", "home.recentlyAdded": "最čŋ‘加å…Ĩ", @@ -152,14 +145,10 @@ "home.madeForYou": "į‚ē您推č–Ļ", "home.friendsListeningTo": "æœ‹å‹æ­Ŗåœ¨č†čŊ", "home.followedArtists": "čŋŊčš¤įš„č—äēē", - - // Errors "error.appleMusicSubRequired": "需čĻč¨‚é–ąApple MusicäģĨäŊŋᔍCider", "error.connectionError": "į„Ąæŗ•é€ŖæŽĨ到 Apple Music。", "error.noResults": "æ˛’æœ‰įĩæžœ", "error.noResults.description": "čĢ‹å˜—čŠĻæ–°įš„æœå°‹å…§åŽšã€‚", - - // Podcasts "podcast.followOnCider": "在Cider上čŋŊ蚤", "podcast.followedOnCider": "厞圍Cider上čŋŊ蚤", "podcast.subscribeOnItunes": "在iTunes上訂閱", @@ -168,8 +157,6 @@ "podcast.episodes": "喎集", "podcast.playEpisode": "播攞喎集", "podcast.website": "Podcast įļ˛é ", - - // Actions "action.addToLibrary": "加å…Ĩčŗ‡æ–™åēĢ", "action.addToLibrary.success": "成功加å…Ĩčŗ‡æ–™åēĢ", "action.addToLibrary.error": "加å…Ĩčŗ‡æ–™åēĢįš„éŽį¨‹į™ŧį”ŸéŒ¯čǤ", @@ -202,7 +189,7 @@ "action.love": "喜愛", "action.unlove": "取æļˆå–œæ„›", "action.dislike": "æ¸›å°‘æ­¤éĄžåģēč­°", - "action.undoDislike": "é‚„åŽŸæ¸›å°æ­¤éĄžåģēč­°", + "action.undoDislike": "é‚„åŽŸæ¸›å°‘æ­¤éĄžåģēč­°", "action.showWebRemoteQR": "é™čˇæŽ§åˆļ", "action.playTracksNext": "插播 ${app.selectedMediaItems.length} éĻ–æ­Œæ›˛", "action.playTracksLater": "į¨åžŒæ’­æ”ž ${app.selectedMediaItems.length} éĻ–æ­Œæ›˛", @@ -215,107 +202,102 @@ "action.tray.show": "éĄ¯į¤ē", "action.update": "更新", "action.copy": "複čŖŊ", - "action.newpreset": "新åĸžį¯„æœŦ", //Equallizer preset + "action.newpreset": "新åĸžį¯„æœŦ", "action.deletepreset": "åˆĒ除ᝄæœŦ", - - // Settings - General + "action.open": "開啟", "settings.header.general": "一čˆŦ", "settings.header.general.description": "čĒŋ整Ciderįš„ä¸€čˆŦč¨­åŽš", "settings.option.general.language": "čĒžč¨€", - - // Language optgroups "settings.option.general.language.main": "čĒžč¨€", "settings.option.general.language.fun": "æƒĄæžčĒžč¨€", "settings.option.general.language.unsorted": "æœĒåˆ†éĄž", - - // Update Cider - "settings.option.general.updateCider": "更新 Cider", // Button - - // Settings - Audio + "settings.option.general.updateCider": "更新 Cider", + "settings.option.general.updateCider.branch": "Cider 更新通道", + "settings.option.general.updateCider.branch.description": "選擇äŊ æƒŗčρæŽĨæ”ļ來č‡Ēå“Ēå€‹é€šé“įš„æ›´æ–°", + "settings.option.general.updateCider.branch.main": "įŠŠåŽš", + "settings.option.general.updateCider.branch.develop": "æ¸ŦčŠĻ", "settings.header.audio": "韺荊", "settings.header.audio.description": "čĒŋ整Ciderįš„éŸŗč¨Šč¨­åŽš", - "settings.option.audio.quality": "韺荊韺čŗĒ", // Dropdown + "settings.option.audio.volumeStep": "éŸŗé‡æ”ščŽŠé‡", + "settings.option.audio.maxVolume": "最éĢ˜éŸŗé‡", + "settings.option.audio.quality": "韺荊韺čŗĒ", "settings.header.audio.quality.hireslossless": "éĢ˜æ¸…į„ĄæåŖ“į¸Ž", "settings.header.audio.quality.hireslossless.description": "īŧˆéĢ˜é” 24-bit/192 kHzīŧ‰", "settings.header.audio.quality.lossless": "į„ĄæåŖ“į¸Ž", "settings.header.audio.quality.lossless.description": "īŧˆéĢ˜é” 24-bit/48 kHzīŧ‰", "settings.header.audio.quality.high": "é̘ᴠčŗĒ", - "settings.header.audio.quality.low": "éĢ˜æ•ˆįŽ‡", - "settings.header.audio.quality.auto": "č‡Ē動", - "settings.option.audio.seamlessTransition": "į„Ąį¸Ģ播攞", // Toggle - "settings.option.audio.enableAdvancedFunctionality": "é€˛éšŽåŠŸčƒŊ", // Toggle + "settings.header.audio.quality.standard": "éĢ˜æ•ˆįŽ‡", + "settings.option.audio.seamlessTransition": "į„Ąį¸Ģ播攞", + "settings.option.audio.enableAdvancedFunctionality": "é€˛éšŽåŠŸčƒŊ", "settings.option.audio.enableAdvancedFunctionality.description": "å•Ÿį”¨ AudioContext å°‡č§ŖéŽ–éĄžäŧŧéŸŗé‡åšŗčĄĄå’Œå‡čĄĄå™¨įš„é€˛éšŽåŠŸčƒŊ。äŊ†æ˜¯æœƒåœ¨ä¸€äē›é›ģč…Ļé€ æˆéŸŗæ¨‚åĄé “ã€‚", - "settings.option.audio.enableAdvancedFunctionality.decryptLLPW": "į„ĄæåŖ“į¸Žč§Ŗįĸŧ", // Toggle - "settings.option.audio.enableAdvancedFunctionality.decryptLLPW.description": "提䞛 Cider č§Ŗįĸŧį„ĄæåŖ“į¸ŽæĒ”æĄˆįš„čƒŊ力īŧŒäŊ†į›¸æ‡‰åœ°æœƒåĸžåŠ é›ģč…Ļįš„åˇĨäŊœé‡ã€‚", - "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "éŸŗé‡åšŗčĄĄ", // Toggle + "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider 數įĸŧ韺荊åĸžåŧˇč™•ᐆâ„ĸī¸", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "čƒŊ夠æŦē騙äŊ įš„大č…Ļ讓äŊ æ„Ÿå—到čŋ‘äŧŧį„ĄæåŖ“į¸Žįš„éŸŗčŗĒ。", + "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "韺荊åĸžåŧˇč™•į†ä¸å…ŧ厚æ–ŧįŠēé–“éŸŗč¨ŠīŧŒčĢ‹å…ˆåœį”¨įŠēé–“éŸŗč¨Šã€‚", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "數įĸŧ韺荊åĸžåŧˇč™•ᐆ荭åޚ", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "å°‡æ›´æ”šéŸŗč¨Šč™•į†įš„æŋ€é€˛į¨‹åēĻīŧˆæŋ€é€˛åž‹é¸é …有可čƒŊ會åŧ•čĩˇé›œč¨Šīŧ‰", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "標æē–åž‹", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "æŋ€é€˛åž‹", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "éŸŗé‡åšŗčĄĄ", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "å°‡åšŗčĄĄčŧ•柔和éŸŋäēŽįš„æ­Œæ›˛īŧŒåģēįĢ‹æ›´įĩąä¸€įš„聆čŊéĢ”éŠ—ã€‚", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "įŠēé–“éŸŗč¨Š", // Toggle + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "įŠēé–“éŸŗč¨Š", "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "å°‡éŸŗč¨Šé€˛čĄŒįŠēé–“åŒ–č™•į†äž†čŖŊ造一個更įĢ‹éĢ”įš„č†čŊéĢ”éŠ—īŧˆæŗ¨īŧšæ­¤åŠŸčƒŊä¸æ˜¯åŽ˜æ–šįš„æœæ¯”å…¨æ™¯č˛īŧ‰", - - // Settings - Visual + "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "įŠēé–“éŸŗč¨Šä¸å…ŧ厚æ–ŧ韺荊åĸžåŧˇč™•ᐆīŧŒčĢ‹å…ˆåœį”¨éŸŗč¨Šåĸžåŧˇč™•į†ã€‚", "settings.header.visual": "外觀", "settings.header.visual.description": "čĒŋ整Ciderįš„å¤–č§€", - "settings.option.visual.windowBackgroundStyle": "įĒ—åŖčƒŒæ™¯æ¨Ŗåŧ", // Toggle + "settings.option.visual.windowBackgroundStyle": "įĒ—åŖčƒŒæ™¯æ¨Ŗåŧ", "settings.header.visual.windowBackgroundStyle.none": "įŠēį™Ŋ", "settings.header.visual.windowBackgroundStyle.artwork": "專čŧ¯å°éĸ", "settings.header.visual.windowBackgroundStyle.image": "åœ–į‰‡", - "settings.option.visual.animatedArtwork": "動態專čŧ¯å°éĸ", // Dropdown + "settings.option.visual.animatedArtwork": "動態專čŧ¯å°éĸ", "settings.header.visual.animatedArtwork.always": "į¸Ŋæ˜¯éĄ¯į¤ē", "settings.header.visual.animatedArtwork.limited": "åĒåœ¨č—äēē頁éĸ和專čŧ¯å°éĸéĄ¯į¤ē", "settings.header.visual.animatedArtwork.disable": "關閉", - "settings.option.visual.animatedArtworkQuality": "動態專čŧ¯å°éĸ品čŗĒ", // Dropdown + "settings.option.visual.animatedArtworkQuality": "動態專čŧ¯å°éĸ品čŗĒ", "settings.header.visual.animatedArtworkQuality.low": "äŊŽ", "settings.header.visual.animatedArtworkQuality.medium": "中", "settings.header.visual.animatedArtworkQuality.high": "é̘", "settings.header.visual.animatedArtworkQuality.veryHigh": "非常é̘", "settings.header.visual.animatedArtworkQuality.extreme": "æĨĩé̘", - "settings.option.visual.animatedWindowBackground": "動態įĒ—åŖčƒŒæ™¯", // Toggle - "settings.option.visual.hardwareAcceleration": "įĄŦéĢ”åŠ é€Ÿ", // Dropdown + "settings.option.visual.animatedWindowBackground": "動態įĒ—åŖčƒŒæ™¯", + "settings.option.visual.hardwareAcceleration": "įĄŦéĢ”åŠ é€Ÿ", "settings.option.visual.hardwareAcceleration.description": "需čĻé‡å•“ Cider 才čƒŊį”Ÿæ•ˆ", "settings.header.visual.hardwareAcceleration.default": "預設", "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", "settings.header.visual.theme": "ä¸ģ題", - - // Settings - Visual - Theme name + "settings.option.visual.theme.github.download": "äŊŋᔍ Github įļ˛å€åŽ‰čŖ", + "settings.option.visual.theme.github.explore": "æŽĸį´ĸ更多ä¸ģ題", + "settings.option.visual.theme.github.install.confirm": "äŊ įĸēčĒčĻåŽ‰čŖ {{ repo }}?", + "settings.prompt.visual.theme.github.URL": "čĢ‹čŧ¸å…ĨäŊ æƒŗčĻåŽ‰čŖįš„ä¸ģéĄŒįš„įļ˛å€", + "settings.notyf.visual.theme.install.success": "æˆåŠŸåŽ‰čŖä¸ģ題", + "settings.notyf.visual.theme.install.error": "ä¸ģéĄŒåŽ‰čŖå¤ąæ•—", "settings.option.visual.theme.default": "預設", "settings.option.visual.theme.dark": "午夜暗", - // Refer to term.disabled for the disabled option - "settings.option.visual.showPersonalInfo": "éĄ¯į¤ē個äēēæĒ”æĄˆ", // Toggle - - // Settings - Lyrics + "settings.option.visual.showPersonalInfo": "éĄ¯į¤ē個äēēæĒ”æĄˆ", "settings.header.lyrics": "æ­ŒčŠž", "settings.header.lyrics.description": "čĒŋ整Ciderįš„æ­ŒčŠžč¨­åŽš", - "settings.option.lyrics.enableMusixmatch": "å•Ÿį”¨ Musixmatch æ­ŒčŠž", // Toggle - "settings.option.lyrics.enableMusixmatchKaraoke": "å•Ÿį”¨åĄæ‹‰OKæ¨Ąåŧīŧˆåƒ…限Musixmatchīŧ‰", // Toggle - "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch æ­ŒčŠžčĒžč¨€ååĨŊ", // Dropdown - "settings.option.lyrics.enableYoutubeLyrics": "播攞 MV 時äŊŋᔍ YouTube æ­ŒčŠž", // Toggle - - // Settings - Connectivity + "settings.option.lyrics.enableMusixmatch": "å•Ÿį”¨ Musixmatch æ­ŒčŠž", + "settings.option.lyrics.enableMusixmatchKaraoke": "å•Ÿį”¨åĄæ‹‰OKæ¨Ąåŧīŧˆåƒ…限Musixmatchīŧ‰", + "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch æ­ŒčŠžčĒžč¨€ååĨŊ", + "settings.option.lyrics.enableYoutubeLyrics": "播攞 MV 時äŊŋᔍ YouTube æ­ŒčŠž", "settings.header.connectivity": "å¤–éƒ¨é€Ŗįĩ", "settings.header.connectivity.description": "čĒŋ整Ciderčˆ‡å¤–éƒ¨įš„é€Ŗįĩ", - "settings.option.connectivity.discordRPC": "Discord į‹€æ…‹", // Dropdown - "settings.option.connectivity.playbackNotifications": "播攞通įŸĨ", // Toggle - // Refer to term.disabled for the disabled option + "settings.option.connectivity.discordRPC": "Discord į‹€æ…‹", + "settings.option.connectivity.playbackNotifications": "播攞通įŸĨ", "settings.header.connectivity.discordRPC.cider": "éĄ¯į¤ēį‚ē'Cider'", "settings.header.connectivity.discordRPC.appleMusic": "éĄ¯į¤ēį‚ē'Apple Music'", - "settings.option.connectivity.discordRPC.clearOnPause": "æšĢ停時清除 Discord į‹€æ…‹", // Toggle - "settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling 記錄", // Option to Connect + "settings.option.connectivity.discordRPC.clearOnPause": "æšĢ停時清除 Discord į‹€æ…‹", + "settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling 記錄", "settings.option.connectivity.lastfmScrobble.delay": "Last.fm Scrobble åģļ遲 (%)", "settings.option.connectivity.lastfmScrobble.nowPlaying": "å•Ÿį”¨ Last.fm æ­Ŗåœ¨æ’­æ”ž", - "settings.option.connectivity.lastfmScrobble.removeFeatured": "垞歌名中į§ģ除藝äēēæŽ¨č–Ļ (Last.fm)", - //"settings.option.connectivity.lastfmScrobble.filterLoop": "Filter looped track (Last.fm)", - // Refer to term.connect for the connect button - - // Settings - Experimental + "settings.option.connectivity.lastfmScrobble.removeFeatured": "垞歌名中į§ģ除åŽĸ串藝äēēīŧˆLast.fmīŧ‰", + "settings.option.connectivity.lastfmScrobble.filterLoop": "ä¸č¨˜éŒ„å–Žæ›˛åžĒį’°īŧˆLast.fmīŧ‰", + "settings.header.debug": "除錯", + "settings.option.debug.copy_log": "複čŖŊ運行記錄æĒ”臺å‰Ēč˛ŧį°ŋ", + "settings.option.debug.openAppData": "開啟 Cider ፋåŧčŗ‡æ–™å¤ž", "settings.header.experimental": "å¯Ļ銗性功čƒŊ", "settings.header.experimental.description": "čĒŋ整Ciderįš„å¯Ļ銗性功čƒŊ", - "settings.option.experimental.compactUI": "įˇŠå‡‘åž‹ UI", // Toggle - "settings.option.experimental.close_button_hide": "äģĨé—œé–‰æŒ‰éˆ•äž†éšąč— Cider", - "settings.option.experimental.copy_log": "複čŖŊ運行記錄æĒ”臺å‰Ēč˛ŧį°ŋ", - //"settings.option.experimental.inline_playlists": "Inline Playlists and Albums", - - // Refer to term.disabled & term.enabled - // Spatialization Menu + "settings.option.experimental.compactUI": "įˇŠå‡‘åž‹ UI", + "settings.option.window.close_button_hide": "äģĨé—œé–‰æŒ‰éˆ•äž†éšąč— Cider", "spatial.notTurnedOn": "čĢ‹å…ˆåœ¨č¨­åŽšä¸­å•Ÿį”¨įŠēé–“éŸŗč¨Šã€‚", "spatial.spatialProperties": "įŠēé–“éŸŗč¨ŠåąŦ性", "spatial.width": "闊åēĻ", @@ -335,14 +317,8 @@ "spatial.down": "下斚", "spatial.listener": "č§€įœž", "spatial.audioSource": "韺æē", - - // Settings - Unfinished "settings.header.unfinished": "æœĒ厌成", - - // Web Remote "remote.web.title": "é™čˇæŽ§åˆļ Cider", "remote.web.description": "掃描äģĨä¸‹įš„äēŒįļ­įĸŧäģĨ控åˆļ Cider", - - // About "about.thanks": "感čŦ Cider Collective äģĨ及所有č˛ĸįģč€…æ‰€äŊœå‡ēįš„č˛ĸįģ。" } \ No newline at end of file diff --git a/src/i18n/zh_TW.jsonc b/src/i18n/zh_TW.json similarity index 56% rename from src/i18n/zh_TW.jsonc rename to src/i18n/zh_TW.json index 5a7ef4da..00380ef4 100644 --- a/src/i18n/zh_TW.jsonc +++ b/src/i18n/zh_TW.json @@ -1,30 +1,20 @@ { - // i18n Info - "i18n.languageName": "įšéĢ”ä¸­æ–‡īŧˆå°įŖīŧ‰", // name of language in native language - "i18n.languageNameEnglish": "Trad. Chinese (Taiwan)", // name of language in English - "i18n.category": "main", // main = real language, fun = fun community languages - "i18n.authors": "@maikirakiwi @jay900604", // Authors, if you contribute to this file feel free to add your name seperated with a space - - // App info + "i18n.languageName": "įšéĢ”ä¸­æ–‡īŧˆå°įŖīŧ‰", + "i18n.languageNameEnglish": "Trad. Chinese (Taiwan)", + "i18n.category": "main", + "i18n.authors": "@maikirakiwi @jay900604 @kyw504100 @BillKerman", "app.name": "Cider", - "date.format": "${y}åš´${m}月${d}æ—Ĩ", - - // Dialogs "dialog.cancel": "取æļˆ", "dialog.ok": "įĸē厚", - - // Notification "notification.updatingLibrarySongs": "æ­Ŗåœ¨æ›´æ–°čŗ‡æ–™åēĢįš„æ­Œæ›˛...", "notification.updatingLibraryAlbums": "æ­Ŗåœ¨æ›´æ–°čŗ‡æ–™åēĢįš„å°ˆčŧ¯...", "notification.updatingLibraryArtists": "æ­Ŗåœ¨æ›´æ–°čŗ‡æ–™åēĢįš„č—äēē...", - - // Terms - "term.appleMusic": "Apple Music", // Follows brand term - "term.applePodcasts": "Apple Podcasts", // Follows brand term - "term.itunes": "iTunes", // Follows brand term - "term.github": "GitHub", // Follows brand term - "term.discord": "Discord", // Follows brand term + "term.appleMusic": "Apple Music", + "term.applePodcasts": "Apple Podcasts", + "term.itunes": "iTunes", + "term.github": "GitHub", + "term.discord": "Discord", "term.learnMore": "更多内厚", "term.accountSettings": "叺æˆļč¨­åŽš", "term.logout": "į™ģå‡ē", @@ -32,6 +22,7 @@ "term.about": "關æ–ŧ", "term.privateSession": "ᧁäēēæ™‚æŽĩ", "term.queue": "垅播清喎", + "term.history": "æ’­æ”žæ­ˇå˛", "term.search": "搜尋", "term.library": "čŗ‡æ–™åēĢ", "term.listenNow": "įĢ‹åŗč†čŊ", @@ -44,6 +35,11 @@ "term.podcasts": "Podcasts", "term.playlists": "æ’­æ”žåˆ—čĄ¨", "term.playlist": "æ’­æ”žåˆ—čĄ¨", + "term.newPlaylist": "æ–°æ’­æ”žåˆ—čĄ¨", + "term.newPlaylistFolder": "æ–°æ’­æ”žåˆ—čĄ¨čŗ‡æ–™å¤ž", + "term.createNewPlaylist": "新åĸžæ’­æ”žåˆ—襨", + "term.createNewPlaylistFolder": "新åĸžæ’­æ”žåˆ—čĄ¨čŗ‡æ–™å¤ž", + "term.deletePlaylist": "您įĸē厚čρåˆĒé™¤æ­¤æ’­æ”žåˆ—čĄ¨å—ŽīŧŸ", "term.play": "播攞", "term.pause": "æšĢ停", "term.previous": "上一éĻ–", @@ -54,7 +50,7 @@ "term.mute": "éœéŸŗ", "term.unmute": "取æļˆéœéŸŗ", "term.share": "分äēĢ", - "term.share.success": "厞複čŖŊ臺å‰Ēč˛ŧį°ŋ", + "term.share.success": "厞複čŖŊ到å‰Ēč˛ŧį°ŋ", "term.settings": "č¨­åŽš", "term.seeAll": "éĄ¯į¤ē全部", "term.sortBy": "排åē", @@ -64,6 +60,7 @@ "term.sortBy.genre": "éŸŗæ¨‚éĸ¨æ ŧ", "term.sortBy.releaseDate": "į™ŧ行æ—Ĩ期", "term.sortBy.duration": "æ™‚é•ˇ", + "term.sortBy.dateAdded": "新åĸžæ—Ĩ期", "term.sortOrder": "字母排åē", "term.sortOrder.ascending": "升åē", "term.sortOrder.descending": "降åē", @@ -73,10 +70,10 @@ "term.size": "大小", "term.size.normal": "æ­Ŗå¸¸", "term.size.compact": "įˇŠå¯†", - "term.enable": "å•Ÿį”¨", - "term.disable": "åœį”¨", - "term.enabled": "åˇ˛å•Ÿį”¨", - "term.disabled": "åˇ˛åœį”¨", + "term.enable": "開啟", + "term.disable": "關閉", + "term.enabled": "åˇ˛é–‹å•Ÿ", + "term.disabled": "åˇ˛é—œé–‰", "term.connect": "逪æŽĨ", "term.connecting": "逪æŽĨ中", "term.disconnect": "æ–ˇé–‹", @@ -100,11 +97,12 @@ "term.fullscreenView": "全čžĸåš•éĄ¯į¤ē", "term.defaultView": "é č¨­éĄ¯į¤ē", "term.audioSettings": "éŸŗč¨Šč¨­åŽš", + "term.audioControls": "éŸŗč¨ŠæŽ§åˆļ", "term.spacializedAudioSetting": "įŠēé–“éŸŗč¨Šč¨­åŽš", "term.clearAll": "清įŠē", "term.recentStations": "最čŋ‘æ”ļčŊįš„åģŖæ’­", "term.language": "čĒžč¨€", - "term.noLyrics": "æ­Ŗåœ¨čŧ‰å…Ĩ。。/ į„Ąæ­ŒčŠžįĩæžœ / į´”éŸŗæ¨‚", + "term.noLyrics": "æ­Ŗåœ¨čŧ‰å…Ĩ... / į„Ąæ­ŒčŠžįĩæžœ / į´”éŸŗæ¨‚", "term.copyright": "į‰ˆæŦŠč˛æ˜Ž", "term.rightsReserved": "äŋį•™æ‰€æœ‰æŦŠåˆŠã€‚", "term.sponsor": "č´ŠåŠŠæˆ‘å€‘", @@ -115,13 +113,18 @@ "term.contributors": "č˛ĸįģ者", "term.equalizer": "į­‰åŒ–å™¨", "term.reset": "重設", - "term.tracks": "éĻ–æ­Œæ›˛", // Assume x amount of tracks. e.g. 50 tracks + "term.track": { + "one": "éĻ–æ­Œæ›˛", + "other": "éĻ–æ­Œæ›˛" + }, + "term.tracks": "éĻ–æ­Œæ›˛", "term.videos": "åŊąį‰‡", "term.menu": "選喎", "term.check": "æĒĸæŸĨ", - "term.aboutArtist": "關æ–ŧ{{artistName}}", // e.g. 'About Doja Cat' - - // Home + "term.aboutArtist": "關æ–ŧ{{artistName}}", + "term.requestError": "čĢ‹æą‚į™ŧį”ŸéŒ¯čĒ¤ã€‚", + "term.song.link.generate": "æ­Ŗåœ¨å–åž— song.link įš„åˆ†äēĢįļ˛å€...", + "term.version": "į‰ˆæœŦ", "home.title": "éϖ頁", "home.recentlyPlayed": "最čŋ‘播攞", "home.recentlyAdded": "最čŋ‘加å…Ĩ", @@ -130,24 +133,18 @@ "home.madeForYou": "į‚ē您推č–Ļ", "home.friendsListeningTo": "æœ‹å‹æ­Ŗåœ¨č†čŊ", "home.followedArtists": "čŋŊčš¤įš„č—äēē", - - // Errors "error.appleMusicSubRequired": "需čĻč¨‚é–ą Apple Music äģĨäŊŋᔍ Cider", "error.connectionError": "į„Ąæŗ•é€ŖæŽĨ到 Apple Music。", "error.noResults": "æ˛’æœ‰įĩæžœ", "error.noResults.description": "嘗čŠĻæ–°įš„æœå°‹é …į›Žã€‚", - - // Podcasts "podcast.followOnCider": "在 Cider 上čŋŊ蚤", "podcast.followedOnCider": "厞čŋŊ蚤", "podcast.subscribeOnItunes": "在 iTunes 上訂閱", "podcast.subscribedOnItunes": "åˇ˛č¨‚é–ą", - "podcast.itunesStore": "iTunes Store", // Follows brand term + "podcast.itunesStore": "iTunes Store", "podcast.episodes": "喎集", "podcast.playEpisode": "播攞喎集", "podcast.website": "Podcast įļ˛įĢ™", - - // Actions "action.addToLibrary": "加å…Ĩčŗ‡æ–™åēĢ", "action.addToLibrary.success": "成功加å…Ĩčŗ‡æ–™åēĢ", "action.addToLibrary.error": "加å…Ĩčŗ‡æ–™åēĢįš„éŽį¨‹į™ŧį”ŸéŒ¯čǤ", @@ -192,21 +189,34 @@ "action.tray.show": "éĄ¯į¤ē", "action.update": "更新", "action.copy": "複čŖŊ", - "action.newpreset": "新åĸžé č¨­", // Equalizer Preset - "action.deletepreset": "åˆĒ除預設", // Equalizer Preset - - // Language optgroups + "action.newpreset": "新åĸžé č¨­", + "action.deletepreset": "åˆĒ除預設", + "action.open": "開啟", + "settings.header.general": "一čˆŦ", + "settings.header.general.description": "čĒŋ整 Cider įš„ä¸€čˆŦč¨­åŽš", + "settings.option.general.resumebehavior": "é‚„åŽŸčĄŒį‚ē", + "settings.option.general.resumebehavior.description": "會åŊąéŸŋäŊ å›žåˆ° Cider æ‡‰į”¨į¨‹åŧæ™‚īŧŒæĸåžŠæ­Œæ›˛įš„æ–šåŧã€‚", + "settings.option.general.resumebehavior.locally": "æœŦ抟", + "settings.option.general.resumebehavior.locally.description": "Cider 將還原äŊ åœ¨é€™å°é›ģč…Ļä¸Šįš„æœ€åžŒä¸€æŦĄæ“äŊœã€‚", + "settings.option.general.resumebehavior.history": "æ­ˇå˛", + "settings.option.general.resumebehavior.history.description": "Cider å°‡čˇ¨čŖįŊŽå°‡äŊ įš„æ•´å€‹ Apple Music æ­ˇå˛č¨˜éŒ„ä¸­įš„æœ€åžŒä¸€éĻ–æ­Œæ›˛æŽ’éšŠå…Ĩ列。", "settings.option.general.language.main": "čĒžč¨€", "settings.option.general.language.fun": "į‰šæŽŠčĒžč¨€", "settings.option.general.language.unsorted": "æœĒåˆ†éĄž", - - // Update Cider - "settings.option.general.updateCider": "更新 Cider", // Button - - // Settings - Audio + "settings.option.general.updateCider": "更新 Cider", + "settings.option.general.updateCider.branch": "Cider 更新通道", + "settings.option.general.updateCider.branch.description": "選擇您čρæŽĨæ”ļ Cider čģŸéĢ”æ›´æ–°įš„é€šé“", + "settings.option.general.updateCider.branch.main": "įŠŠåŽšį‰ˆ(åģēč­°)", + "settings.option.general.updateCider.branch.develop": "開į™ŧ者æ¸ŦčŠĻį‰ˆ(ä¸įŠŠåŽš)", + "settings.notyf.updateCider.update-not-available": "æ˛’æœ‰å¯į”¨įš„æ›´æ–°", + "settings.notyf.updateCider.update-downloaded": "æ›´æ–°åˇ˛æˆåŠŸä¸‹čŧ‰īŧŒé‡å•ŸåžŒé€˛čĄŒæ›´æ–°", + "settings.notyf.updateCider.update-error": "更新時īŧŒį™ŧį”ŸéŒ¯čǤ", + "settings.notyf.updateCider.update-timeout": "更新čļ…æ™‚", "settings.header.audio": "韺荊", "settings.header.audio.description": "čĒŋ整 Cider įš„éŸŗč¨Šč¨­åŽš", - "settings.option.audio.quality": "éŸŗč¨Šå“čŗĒ", // Dropdown + "settings.option.audio.volumeStep": "éŸŗé‡æ”ščŽŠé‡", + "settings.option.audio.maxVolume": "æœ€å¤§éŸŗé‡", + "settings.option.audio.quality": "éŸŗč¨Šå“čŗĒ", "settings.header.audio.quality.hireslossless": "éĢ˜å“čŗĒį„ĄæåŖ“į¸Ž", "settings.header.audio.quality.hireslossless.description": "īŧˆéĢ˜é” 24-bit/192 kHzīŧ‰", "settings.header.audio.quality.lossless": "į„ĄæåŖ“į¸Ž", @@ -215,114 +225,131 @@ "settings.header.audio.quality.high": "éĢ˜å“čŗĒ", "settings.header.audio.quality.standard": "éĢ˜æ•ˆįŽ‡", "settings.header.audio.quality.auto": "č‡Ē動", - "settings.option.audio.seamlessTransition": "į„Ąé–“æ–ˇæ’­æ”ž", // Toggle - "settings.option.audio.enableAdvancedFunctionality": "é€˛éšŽéŸŗč¨ŠåŠŸčƒŊ", // Toggle - "settings.option.audio.enableAdvancedFunctionality.description": "å•Ÿį”¨ AudioContext å°‡é–‹å•ŸéĄžäŧŧéŸŗč¨ŠåšŗčĄĄå’Œį­‰åŒ–å™¨įš„é€˛éšŽč¨­åŽšã€‚äŊ†é€™ä¸Ļ不一厚遊合每部é›ģč…ĻīŧŒå¯čƒŊ會į™ŧį”ŸéŸŗæ¨‚åĄé “ã€‚", - "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider 數äŊåĸžåŧˇéŸŗč¨Šč™•ᐆâ„ĸī¸", // Toggle - "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "將æŦēé¨™æ‚¨įš„å¤§č…ĻčŽ“æ‚¨æ„Ÿå—åˆ°čŋ‘äŧŧäŋįœŸåŖ“į¸Žįš„éŸŗčŗĒ。| į”ą Maikiwi 設計", - "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "數äŊåĸžåŧˇéŸŗč¨Šč™•ᐆ荭åޚ", // Toggle - "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "å°‡æ›´æ”šéŸŗč¨Šč™•į†įš„æŋ€é€˛/振åĨŽį¨‹åēĻīŧˆåĸžåŧˇé¸é …有可čƒŊ會åŧ•čĩˇé›œč¨Šīŧ‰", + "settings.option.audio.seamlessTransition": "į„Ąé–“æ–ˇæ’­æ”ž", + "settings.option.audio.enableAdvancedFunctionality": "é€˛éšŽéŸŗč¨ŠåŠŸčƒŊ", + "settings.option.audio.enableAdvancedFunctionality.description": "開啟 AudioContext å°‡é–‹å•ŸéĄžäŧŧéŸŗč¨ŠåšŗčĄĄå’Œį­‰åŒ–å™¨įš„é€˛éšŽč¨­åŽšã€‚äŊ†é€™ä¸Ļ不一厚遊合每部é›ģč…ĻīŧŒå¯čƒŊ會į™ŧį”ŸéŸŗæ¨‚åĄé “ã€‚", + "settings.option.audio.audioLab": "Cider 韺荊å¯Ļ銗厤", + "settings.option.audio.audioLab.description": "包åĢį”ą Cider 開į™ŧåœ˜éšŠé€˛čĄŒįš„å„į¨ŽéŸŗč¨Šæ”šå–„åŠŸčƒŊ。", + "settings.warn.audioLab.withoutAF": "äŊŋᔍ Cider 韺荊å¯Ļ銗厤需čĻé–‹å•Ÿé€˛éšŽéŸŗč¨ŠåŠŸčƒŊ才čƒŊäŊŋį”¨ã€‚" , + "settings.option.audio.enableAdvancedFunctionality.analogWarmth": "æ¨Ąæ“ŦæēĢæš–", + "settings.option.audio.enableAdvancedFunctionality.analogWarmth.description": "äģĨ Korg Nutube 6P1 į‚ēč¨­č¨ˆįš„æ¨Ąæ“ŦæēĢæš–。", + "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.description": "æ”ščŽŠæ¨Ąæ“Ŧæē̿𖿍Ąįĩ„č™•į†įš„åŧˇåēĻ。", + "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth": "æēĢ和", + "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm": "æēĢæš–", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider 數äŊåĸžåŧˇéŸŗč¨Šč™•ᐆâ„ĸī¸", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "將æŦēé¨™æ‚¨įš„å¤§č…ĻčŽ“æ‚¨æ„Ÿå—åˆ°čŋ‘äŧŧäŋįœŸåŖ“į¸Žįš„éŸŗčŗĒ。", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "數äŊåĸžåŧˇéŸŗč¨Šč™•ᐆ荭åޚ", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "å°‡æ›´æ”šéŸŗč¨Šč™•į†įš„æŋ€é€˛/振åĨŽį¨‹åēĻīŧˆåĸžåŧˇé¸é …有可čƒŊ會åŧ•čĩˇé›œč¨Šīŧ‰ã€‚", "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "標æē–", "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "åĸžåŧˇ", - "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "éŸŗč¨ŠåšŗčĄĄ", // Toggle + "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "éŸŗč¨ŠåšŗčĄĄ", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "å°‡åšŗčĄĄčŧ•柔和éŸŋäēŽįš„æ­Œæ›˛īŧŒåģēįĢ‹æ›´įĩąä¸€čˆ’éŠįš„č†čŊéĢ”éŠ—ã€‚", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "įŠēé–“éŸŗč¨Š", // Toggle + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "įŠēé–“éŸŗč¨Š", "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "å°‡éŸŗč¨Šé€˛čĄŒįŠēé–“åŒ–č™•į†äž†čŖŊ造一個更įĢ‹éĢ”įš„č†čŊéĢ”éŠ—īŧˆč¨ģīŧšæ­¤åŠŸčƒŊä¸æ˜¯åŽ˜æ–šįš„æœæ¯”å…¨æ™¯č˛īŧ‰", - - // Settings - Visual + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Cider įŠēé–“éŸŗč¨Šæ•ˆæžœ", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "預先čĒŋ整įŠēé–“éŸŗč¨Šæ•ˆæžœīŧŒé—œé–‰įŠēé–“éŸŗč¨Šå¯č‡Ēč¨‚č¨­åŽšã€‚äŊ†åŋ…須先開啟įŠēé–“éŸŗč¨Šæ‰å¯äģĨåšč¨­åŽšã€‚", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Cider įŠēé–“éŸŗč¨Šé…įŊŽæĒ”æĄˆ", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description": "čŽŠæ›´įŠēé–“éŸŗč¨Šįš„é…įŊŽæĒ”æĄˆīŧŒéœ€čĻé‡æ–°å•Ÿå‹•æ‡‰į”¨į¨‹åŧã€‚", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard": "標æē–", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile": "į™ŧį‡’å‹", + "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "įŠēé–“éŸŗč¨Šį„Ąæŗ•čˆ‡ CAP į›¸åŽšīŧŒčĢ‹é—œé–‰ CAP åœ¨é€˛čĄŒæ“äŊœã€‚", "settings.header.visual": "外觀", "settings.header.visual.description": "čĒŋ整 Cider įš„å¤–č§€", - "settings.option.visual.windowBackgroundStyle": "čĻ–įĒ—čƒŒæ™¯æ¨Ŗåŧ", // Toggle + "settings.option.visual.windowBackgroundStyle": "čĻ–įĒ—čƒŒæ™¯æ¨Ŗåŧ", "settings.header.visual.windowBackgroundStyle.none": "įŠēį™Ŋ", "settings.header.visual.windowBackgroundStyle.artwork": "專čŧ¯å°éĸ", - "settings.header.visual.windowBackgroundStyle.image": "åœ–į‰‡", - "settings.option.visual.animatedArtwork": "動態專čŧ¯å°éĸ", // Dropdown + "settings.header.visual.windowBackgroundStyle.image": "åœ–į‰‡", + "settings.option.visual.animatedArtwork": "動態專čŧ¯å°éĸ", "settings.header.visual.animatedArtwork.always": "į¸Ŋæ˜¯éĄ¯į¤ē", "settings.header.visual.animatedArtwork.limited": "åĒåœ¨č—äēē頁éĸ和專čŧ¯å°éĸéĄ¯į¤ē", "settings.header.visual.animatedArtwork.disable": "關閉", - "settings.option.visual.animatedArtworkQuality": "動態專čŧ¯å°éĸ品čŗĒ", // Dropdown + "settings.option.visual.animatedArtworkQuality": "動態專čŧ¯å°éĸ品čŗĒ", "settings.header.visual.animatedArtworkQuality.low": "äŊŽ", "settings.header.visual.animatedArtworkQuality.medium": "中", "settings.header.visual.animatedArtworkQuality.high": "é̘", "settings.header.visual.animatedArtworkQuality.veryHigh": "非常é̘", "settings.header.visual.animatedArtworkQuality.extreme": "æĨĩé̘", - "settings.option.visual.animatedWindowBackground": "動態čĻ–įĒ—čƒŒæ™¯", // Toggle - "settings.option.visual.hardwareAcceleration": "įĄŦéĢ”åŠ é€Ÿ", // Dropdown + "settings.option.visual.animatedWindowBackground": "動態čĻ–įĒ—čƒŒæ™¯", + "settings.option.visual.hardwareAcceleration": "įĄŦéĢ”åŠ é€Ÿ", "settings.option.visual.hardwareAcceleration.description": "需čĻé‡æ–°å•Ÿå‹• Cider 才會åĨ—ᔍ", "settings.header.visual.hardwareAcceleration.default": "預設", "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", "settings.header.visual.theme": "ä¸ģ題", - // Settings - Visual - Theme name - "settings.option.visual.theme.default": "Cider", - "settings.option.visual.theme.dark": "暗é쑿¨Ąåŧ", - // Refer to term.disabled for the disabled option - "settings.option.visual.showPersonalInfo": "éĄ¯į¤ē個äēēæĒ”æĄˆ", // Toggle - - // Settings - General (Reserved) - "settings.header.general": "一čˆŦ", - "settings.header.general.description": "čĒŋ整 Cider įš„ä¸€čˆŦč¨­åŽš", - - // Settings - Lyrics + "settings.option.visual.theme.github.download": "åžž GitHub įļ˛å€åŽ‰čŖ", + "settings.option.visual.theme.github.explore": "æŽĸį´ĸ GitHub ä¸Šįš„ä¸ģ題", + "settings.prompt.visual.theme.github.URL": "čŧ¸å…ĨäŊ čĻåŽ‰čŖįš„ä¸ģ題įļ˛å€", + "settings.notyf.visual.theme.install.success": "ä¸ģéĄŒæˆåŠŸåŽ‰čŖ", + "settings.notyf.visual.theme.install.error": "ä¸ģéĄŒåŽ‰čŖå¤ąæ•—", + "settings.header.visual.plugin": "åĨ—äģļ", + "settings.option.visual.plugin.github.download": "åžž GitHub įļ˛å€åŽ‰čŖ", + "settings.option.visual.plugin.github.explore": "æŽĸį´ĸ GitHub åĨ—äģļ", + "settings.header.visual.plugin.github.page": "來č‡Ē GitHub įš„åĨ—äģļ", + "settings.option.visual.plugin.github.install.confirm": "äŊ įĸē厚čĻåŽ‰čŖ {{ repo }}īŧŸ", + "settings.prompt.visual.plugin.github.URL": "čŧ¸å…ĨäŊ čĻåŽ‰čŖįš„åĨ—äģļįļ˛å€", + "settings.prompt.visual.plugin.github.success": "åĨ—äģ￈åŠŸåŽ‰čŖīŧŒæŒ‰ã€ŒįĸēčĒã€äģĨ重新啟動 Cider", + "settings.notyf.visual.plugin.install.success": "åĨ—äģ￈åŠŸåŽ‰čŖ", + "settings.notyf.visual.plugin.install.error": "åĨ—äģļåŽ‰čŖå¤ąæ•—", + "settings.option.visual.theme.default": "預設", + "settings.option.visual.theme.dark": "午夜éģ‘", + "settings.option.visual.showPersonalInfo": "éĄ¯į¤ē個äēēæĒ”æĄˆ", + "settings.header.window": "čĻ–įĒ—", + "settings.header.window.description": "čĒŋ整 Cider įš„čĻ–įĒ—č¨­åŽš", + "settings.option.window.openOnStartup": "開抟時īŧŒå•Ÿå‹• Cider ", + "settings.option.window.openOnStartup.hidden": "啟動時īŧŒč‡Ēå‹•éšąč—č‡ŗįŗģįĩąåˆ—", "settings.header.lyrics": "æ­ŒčŠž", "settings.header.lyrics.description": "čĒŋ整 Cider įš„æ­ŒčŠžč¨­åŽš", - "settings.option.lyrics.enableMusixmatch": "å•Ÿį”¨ Musixmatch æ­ŒčŠž", // Toggle - "settings.option.lyrics.enableMusixmatchKaraoke": "å•Ÿį”¨Kæ­Œæ¨Ąåŧīŧˆåƒ…限Musixmatchīŧ‰", // Toggle - "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch æ­ŒčŠžčĒžč¨€ååĨŊ", // Dropdown - "settings.option.lyrics.enableYoutubeLyrics": "播攞 MV 時äŊŋᔍ YouTube æ­ŒčŠž", // Toggle - - // Settings - Connectivity + "settings.option.lyrics.enableMusixmatch": "開啟 Musixmatch æ­ŒčŠž", + "settings.option.lyrics.enableMusixmatchKaraoke": "開啟Kæ­Œæ¨Ąåŧīŧˆåƒ…限Musixmatchīŧ‰", + "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch æ­ŒčŠžčĒžč¨€ååĨŊ", + "settings.option.lyrics.enableYoutubeLyrics": "播攞 MV 時äŊŋᔍ YouTube æ­ŒčŠž", "settings.header.connectivity": "å¤–éƒ¨é€ŖæŽĨ", "settings.header.connectivity.description": "čĒŋ整 Cider čˆ‡å¤–éƒ¨įš„é€ŖæŽĨ", - "settings.option.connectivity.discordRPC": "Discord 動態", // Dropdown - "settings.option.connectivity.playbackNotifications": "æ­Œæ›˛æ’­æ”žé€šįŸĨ", // Toggle - // Refer to term.disabled for the disabled option - "settings.header.connectivity.discordRPC.cider": "éĄ¯į¤ēæ­Ŗåœ¨įŽŠ 'Cider'", - "settings.header.connectivity.discordRPC.appleMusic": "éĄ¯į¤ēæ­Ŗåœ¨įŽŠ 'Apple Music'", - "settings.option.connectivity.discordRPC.clearOnPause": "æšĢ停時清除 Discord 動態", // Toggle - "settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling 記錄", // Option to Connect + "settings.option.connectivity.discordRPC": "Discord 動態", + "settings.option.connectivity.playbackNotifications": "æ­Œæ›˛æ’­æ”žé€šįŸĨ", + "settings.header.connectivity.discordRPC.cider": "éĄ¯į¤ēæ­Ŗåœ¨äŊŋᔍ 'Cider'", + "settings.header.connectivity.discordRPC.appleMusic": "éĄ¯į¤ēæ­Ŗåœ¨äŊŋᔍ 'Apple Music'", + "settings.option.connectivity.discordRPC.clearOnPause": "æšĢ停時清除 Discord 動態", + "settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling 記錄", "settings.option.connectivity.lastfmScrobble.delay": "LastFM Scrobble åģļ遲 (%)", - "settings.option.connectivity.lastfmScrobble.nowPlaying": "å•Ÿį”¨ LastFM į›Žå‰č†čŊ", // Toggle - "settings.option.connectivity.lastfmScrobble.removeFeatured": "垞歌名中į§ģ除藝äēēæŽ¨č–Ļ (LastFM)", - // Refer to term.connect for the connect button - - // Settings - Experimental + "settings.option.connectivity.lastfmScrobble.nowPlaying": "開啟 LastFM į›Žå‰č†čŊ", + "settings.option.connectivity.lastfmScrobble.removeFeatured": "垞歌名中į§ģ除åŽĸ串藝äēē (LastFM)", + "settings.option.connectivity.lastfmScrobble.filterLoop": "ä¸č¨˜éŒ„å–Žæ›˛åžĒį’° (LastFM)", + "settings.header.debug": "除錯", + "settings.option.debug.copy_log": "複čŖŊåŸˇčĄŒį´€éŒ„æĒ”臺å‰Ēč˛ŧį°ŋ", + "settings.option.debug.openAppData": "打開 Cider čŗ‡æ–™å¤ž", "settings.header.experimental": "å¯Ļ銗性功čƒŊ", "settings.header.experimental.description": "čĒŋ整 Cider įš„å¯Ļ銗性功čƒŊ", - "settings.option.experimental.compactUI": "äŊŋį”¨įˇŠå¯†įš„äģ‹éĸ設計", // Toggle - "settings.option.experimental.closeButtonBehaviour": "關閉按鈕操äŊœ", // Dropdown - "settings.option.experimental.close_button_hide": "關閉按鈕將 Cider éšąč—č‡ŗįŗģįĩąåˆ—", - "settings.option.experimental.copy_log": "複čŖŊåŸˇčĄŒį´€éŒ„æĒ”臺å‰Ēč˛ŧį°ŋ", + "settings.option.experimental.unknownPlugin": "æœĒįŸĨ來æē", + "settings.option.experimental.unknownPlugin.description": "å…č¨ąåžž Cider 來æēäģĨå¤–įš„ repo åŽ‰čŖåĨ—äģļ", + "settings.option.experimental.compactUI": "äŊŋį”¨įˇŠå¯†įš„äģ‹éĸ設計", + "settings.option.experimental.closeButtonBehaviour": "關閉按鈕操äŊœ", + "settings.option.window.close_button_hide": "關閉按鈕將 Cider éšąč—č‡ŗįŗģįĩąåˆ—", "settings.option.experimental.inline_playlists": "å°‡æ’­æ”žåˆ—čĄ¨åšį‚ēčĄŒå†…å…ƒį´ éĄ¯į¤ē", - - // Refer to term.disabled & term.enabled - // Spatialization Menu - "spatial.notTurnedOn": "įŠēé–“éŸŗč¨Šį›Žå‰æ˜¯é—œé–‰į‹€æ…‹īŧŒčĢ‹å…ˆå•Ÿį”¨å†äŊŋį”¨ã€‚", - "spatial.spatialProperties" : "įŠēé–“éŸŗč¨ŠåąŦæ€§č¨­åŽš", - "spatial.width" : "å¯ŦåēĻ", - "spatial.height" : "é̘åēĻ", - "spatial.depth" : "æˇąåēĻ", - "spatial.gain" : "åĸžį›Š", - "spatial.roomMaterials" : "įŠē間材čŗĒ", - "spatial.roomDimensions" : "įŠē間å°ē寸", - "spatial.roomPositions" : "įŠē間äŊįŊŽ", - "spatial.setDimensions" : "č¨­åŽšå°ē寸", - "spatial.setPositions" : "åĨ—ᔍ荭åޚ", - "spatial.up" : "上", - "spatial.front" : "前", - "spatial.left" : "åˇĻ", - "spatial.right" : "åŗ", - "spatial.back" : "垌", - "spatial.down" : "下", - "spatial.listener" : "čŊ衆", - "spatial.audioSource" : "éŸŗč¨Šäž†æē", - - // Settings - Unfinished + "settings.option.advanced.playlistTrackMapping": "æ’­æ”žåˆ—čĄ¨čŋŊčš¤æ˜ å°„", + "settings.option.advanced.playlistTrackMapping.description": "é–‹å•Ÿå°æ’­æ”žåˆ—čĄ¨įš„æˇąåēĻæŽƒæīŧŒäģĨįĸēåŽšæ­Œæ›˛åœ¨å“Ēä盿’­æ”žåˆ—čĄ¨ä¸­ã€‚äŊ†æ’­æ”žåˆ—襨åŋĢå–æ™‚é–“æœƒéĄ¯č‘—åĸžåŠ ã€‚", + "settings.option.visual.transparent": "透明čĻ–įĒ—æĄ†æžļ", + "settings.option.visual.transparent.description": "需ä¸ģéĄŒæœ‰æ”¯æ´é€æ˜ŽæĄ†æžļīŧŒä¸”須重新啟動才會åĨ—į”¨ã€‚", + "spatial.notTurnedOn": "įŠēé–“éŸŗč¨Šį›Žå‰æ˜¯é—œé–‰į‹€æ…‹īŧŒčĢ‹å…ˆé–‹å•Ÿå†äŊŋį”¨ã€‚", + "spatial.spatialProperties": "įŠēé–“éŸŗč¨ŠåąŦæ€§č¨­åŽš", + "spatial.width": "å¯ŦåēĻ", + "spatial.height": "é̘åēĻ", + "spatial.depth": "æˇąåēĻ", + "spatial.gain": "åĸžį›Š", + "spatial.roomMaterials": "įŠē間材čŗĒ", + "spatial.roomDimensions": "įŠē間å°ē寸", + "spatial.roomPositions": "įŠē間äŊįŊŽ", + "spatial.setDimensions": "č¨­åŽšå°ē寸", + "spatial.setPositions": "åĨ—ᔍ荭åޚ", + "spatial.up": "上", + "spatial.front": "前", + "spatial.left": "åˇĻ", + "spatial.right": "åŗ", + "spatial.back": "垌", + "spatial.down": "下", + "spatial.listener": "čŊ衆", + "spatial.audioSource": "éŸŗč¨Šäž†æē", "settings.header.unfinished": "æœĒ開į™ŧåŽŒæˆįš„åŠŸčƒŊ", - - // Web Remote "remote.web.title": "Cider 遠įĢ¯æ“æŽ§", - "remote.web.description": "掃描äģĨä¸‹įš„čĄŒå‹•æĸįĸŧäģĨ操控 Cider", - - //About + "remote.web.description": "掃描äģĨ下 QR Code åŗå¯æ“æŽ§ Cider", "about.thanks": "č‘—é‡æ„ŸčŦ Cider Collective įš„æˆå“ĄäģĨ及所有į‚ēé …į›Žäģ˜å‡ēįš„č˛ĸįģč€…ã€‚" -} \ No newline at end of file +} diff --git a/src/i18n/zh_yue.jsonc b/src/i18n/zh_yue.json similarity index 81% rename from src/i18n/zh_yue.jsonc rename to src/i18n/zh_yue.json index 6fec3bfb..560f9b74 100644 --- a/src/i18n/zh_yue.jsonc +++ b/src/i18n/zh_yue.json @@ -1,25 +1,15 @@ { - // i18n Info - "i18n.languageName": "åģŖæąčŠąīŧˆéĻ™æ¸¯īŧ‰", // name of language in native language - "i18n.languageNameEnglish": "Cantonese (Hong Kong)", // name of language in English - "i18n.category": "main", // main = real language, fun = fun community languages - "i18n.authors": "@tszngaiyip @strikesnc", // Authors, if you contribute to this file feel free to add your name seperated with a space - - // App info + "i18n.languageName": "åģŖæąčŠąīŧˆéĻ™æ¸¯īŧ‰", + "i18n.languageNameEnglish": "Cantonese (Hong Kong)", + "i18n.category": "main", + "i18n.authors": "@tszngaiyip @strikesnc", "app.name": "Cider", - "date.format": "${y}åš´${m}月${d}æ—Ĩ", - - // Dialogs "dialog.cancel": "取æļˆ", "dialog.ok": "įĸēčĒ", - - // Notification "notification.updatingLibrarySongs": "æ›´æ–°įˇŠčŗ‡æ–™åēĢå˜…æ­Œæ›˛...", "notification.updatingLibraryAlbums": "æ›´æ–°įˇŠčŗ‡æ–™åēĢ嘅專čŧ¯...", "notification.updatingLibraryArtists": "æ›´æ–°įˇŠčŗ‡æ–™åēĢå˜…č—äēē...", - - // Terms "term.appleInc": "Apple Inc.", "term.appleMusic": "Apple Music", "term.applePodcasts": "Apple Podcasts", @@ -122,28 +112,23 @@ "term.contributors": "合äŊœäēē", "term.equalizer": "å‡čĄĄå™¨ (EQ)", "term.reset": "重設", - "term.tracks": "éĻ–æ­Œ", // Assume x amount of tracks. e.g. 50 tracks + "term.tracks": "éĻ–æ­Œ", "term.videos": "åŊąį‰‡", "term.menu": "選項", "term.check": "æĒĸæŸĨ", - "term.aboutArtist": "關æ–ŧ {{artistName}}", // e.g. 'About Doja Cat' - "term.topResult": "į†ąé–€æœå°‹įĩæžœ", // Search Results - "term.sharedPlaylists": "播攞清喎", // Search Results - "term.people": "個äēēæĒ”æĄˆ", // Search Results - "term.newpreset.name": "新EQᝄæœŦ嘅名", // Equalizer Preset + "term.aboutArtist": "關æ–ŧ {{artistName}}", + "term.topResult": "į†ąé–€æœå°‹įĩæžœ", + "term.sharedPlaylists": "播攞清喎", + "term.people": "個äēēæĒ”æĄˆ", + "term.newpreset.name": "新EQᝄæœŦ嘅名", "term.addedpreset": "新åĸžå’—", "term.deletepreset.warn": "äŊ äŋ‚å’ĒčρåˆĒ除å‘ĸ個ᝄæœŦīŧŸ", "term.deletedpreset": "åˆĒ除咗", - "term.musicVideos": "MV", // Search page friendlyTypes + "term.musicVideos": "MV", "term.stations": "é›ģ台", - //"term.curators": "Curators", - //"term.appleCurators": "Apple Curators", "term.radioShows": "é›ģ台喎集", "term.recordLabels": "å”ąį‰‡å…Ŧ司", "term.videoExtras": "į›¸é—œå˜…į‰‡", - //"term.top": "Top", - - // Home "home.title": "ä¸ģ頁", "home.recentlyPlayed": "å‘ĸ排播åˇĻ", "home.recentlyAdded": "å‘ĸ排加嘅", @@ -152,14 +137,10 @@ "home.madeForYou": "į‚ēäŊ č€Œæ•´", "home.friendsListeningTo": "äŊ å•˛FriendčŊᎊ", "home.followedArtists": "FollowåˇĻå˜…č—äēē", - - // Errors "error.appleMusicSubRequired": "需čĻč¨‚é–ąApple Music先可äģĨᔍCider。", "error.connectionError": "逪æŽĨ唔到Apple Music。", "error.noResults": "冇įĩæžœã€‚", "error.noResults.description": "重新æĩ過å•Ļ。", - - // Podcasts "podcast.followOnCider": "å–ēCider上Follow", "podcast.followedOnCider": "å–ēCider上FollowåˇĻ", "podcast.subscribeOnItunes": "å–ēiTunes上訂閱", @@ -168,8 +149,6 @@ "podcast.episodes": "喎集", "podcast.playEpisode": "播å‘ĸ集", "podcast.website": "Podcast įļ˛é ", - - // Actions "action.addToLibrary": "加å…Ĩčŗ‡æ–™åēĢ", "action.addToLibrary.success": "加å…Ĩå’—čŗ‡æ–™åēĢ", "action.addToLibrary.error": "加å…Ĩå””åˆ°čŗ‡æ–™åēĢ", @@ -215,101 +194,76 @@ "action.tray.show": "éĄ¯į¤ē", "action.update": "更新", "action.copy": "複čŖŊ", - "action.newpreset": "新åĸžį¯„æœŦ", // Equalizer Preset + "action.newpreset": "新åĸžį¯„æœŦ", "action.deletepreset": "åˆĒ除ᝄæœŦ", - - // Settings - General "settings.header.general": "一čˆŦ", "settings.header.general.description": "čĒŋ整Cider嘅一čˆŦč¨­åŽš", "settings.option.general.language": "čĒžč¨€", - - // Language optgroups "settings.option.general.language.main": "čĒžč¨€", "settings.option.general.language.fun": "æƒĄæžčĒžč¨€", "settings.option.general.language.unsorted": "æœĒåˆ†éĄž", - - // Update Cider - "settings.option.general.updateCider": "更新 Cider", // Button - - // Settings - Audio + "settings.option.general.updateCider": "更新 Cider", "settings.header.audio": "韺荊", "settings.header.audio.description": "čĒŋ整Ciderå˜…éŸŗč¨Šč¨­åŽš", - "settings.option.audio.quality": "韺čŗĒ", // Dropdown + "settings.option.audio.quality": "韺čŗĒ", "settings.header.audio.quality.high": "čŗĒį´ å„Ē先", "settings.header.audio.quality.low": "æĩæšĸåēĻå„Ē先", "settings.header.audio.quality.auto": "č‡Ē動", - "settings.option.audio.seamlessTransition": "į„Ąį¸Ģ播攞", // Toggle - "settings.option.audio.enableAdvancedFunctionality": "é€˛éšŽåŠŸčƒŊ", // Toggle + "settings.option.audio.seamlessTransition": "į„Ąį¸Ģ播攞", + "settings.option.audio.enableAdvancedFunctionality": "é€˛éšŽåŠŸčƒŊ", "settings.option.audio.enableAdvancedFunctionality.description": "å•Ÿį”¨AudioContextīŧŒč§ŖéŽ–éĄžäŧŧéŸŗé‡åšŗčĄĄå’Œå‡čĄĄå™¨å˜…é€˛éšŽåŠŸčƒŊīŧŒäŊ†äŋ‚會å–ē部分é›ģč…Ļé€ æˆéŸŗæ¨‚Lag抟。", - "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "éŸŗé‡åšŗčĄĄ", // Toggle + "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "éŸŗé‡åšŗčĄĄ", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "åšŗčĄĄčŧ•柔同éŸŋäēŽå˜…æ­Œæ›˛īŧŒäģ¤äŊ æœ‰įĩąä¸€å˜…聆čŊéĢ”éŠ—ã€‚", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "įŠēé–“éŸŗč¨Š", // Toggle + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "įŠēé–“éŸŗč¨Š", "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "įŠēé–“åŒ–éŸŗč¨ŠīŧŒčŖŊ造一個更įĢ‹éĢ”å˜…č†čŊéĢ”éŠ—īŧˆæŗ¨æ„īŧšå‘ĸ個功čƒŊ唔äŋ‚åŽ˜æ–šå˜…æœæ¯”å…¨æ™¯č˛īŧ‰", - - // Settings - Visual "settings.header.visual": "外觀", "settings.header.visual.description": "čĒŋ整Ciderå˜…å¤–č§€", - "settings.option.visual.windowBackgroundStyle": "čĻ–įĒ—čƒŒæ™¯æ¨Ŗåŧ", // Toggle + "settings.option.visual.windowBackgroundStyle": "čĻ–įĒ—čƒŒæ™¯æ¨Ŗåŧ", "settings.header.visual.windowBackgroundStyle.none": "įŠēį™Ŋ", "settings.header.visual.windowBackgroundStyle.artwork": "專čŧ¯å°éĸ", "settings.header.visual.windowBackgroundStyle.image": "åœ–į‰‡", - "settings.option.visual.animatedArtwork": "動態專čŧ¯å°éĸ", // Dropdown + "settings.option.visual.animatedArtwork": "動態專čŧ¯å°éĸ", "settings.header.visual.animatedArtwork.always": "į¸Ŋæ˜¯éĄ¯į¤ē", "settings.header.visual.animatedArtwork.limited": "æˇ¨äŋ‚å–ē藝äēē頁éĸ同專čŧ¯å°éĸéĄ¯į¤ē", "settings.header.visual.animatedArtwork.disable": "ᆄåˇĻäŊĸ", - "settings.option.visual.animatedArtworkQuality": "動態專čŧ¯å°éĸ品čŗĒ", // Dropdown + "settings.option.visual.animatedArtworkQuality": "動態專čŧ¯å°éĸ品čŗĒ", "settings.header.visual.animatedArtworkQuality.low": "äŊŽ", "settings.header.visual.animatedArtworkQuality.medium": "中", "settings.header.visual.animatedArtworkQuality.high": "é̘", "settings.header.visual.animatedArtworkQuality.veryHigh": "非常é̘", "settings.header.visual.animatedArtworkQuality.extreme": "æĨĩé̘", - "settings.option.visual.animatedWindowBackground": "動態čĻ–įĒ—čƒŒæ™¯", // Toggle - "settings.option.visual.hardwareAcceleration": "įĄŦéĢ”åŠ é€Ÿ", // Dropdown + "settings.option.visual.animatedWindowBackground": "動態čĻ–įĒ—čƒŒæ™¯", + "settings.option.visual.hardwareAcceleration": "įĄŦéĢ”åŠ é€Ÿ", "settings.option.visual.hardwareAcceleration.description": "需čĻé‡é–‹Ciderå…ˆæœƒį”Ÿæ•ˆ", "settings.header.visual.hardwareAcceleration.default": "預設", "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", "settings.header.visual.theme": "ä¸ģ題", - - // Settings - Visual - Theme name "settings.option.visual.theme.default": "預設", "settings.option.visual.theme.dark": "éģ‘色", - // Refer to term.disabled for the disabled option - "settings.option.visual.showPersonalInfo": "éĄ¯į¤ē個äēēæĒ”æĄˆ", // Toggle - - // Settings - Lyrics + "settings.option.visual.showPersonalInfo": "éĄ¯į¤ē個äēēæĒ”æĄˆ", "settings.header.lyrics": "æ­ŒčŠž", "settings.header.lyrics.description": "čĒŋ整Ciderå˜…æ­ŒčŠžč¨­åŽš", - "settings.option.lyrics.enableMusixmatch": "å•Ÿį”¨ Musixmatch æ­ŒčŠž", // Toggle - "settings.option.lyrics.enableMusixmatchKaraoke": "é–‹å•Ÿå”ąKæ¨Ąåŧīŧˆåƒ…限Musixmatch)", // Toggle - "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch æ­ŒčŠžčĒžč¨€ååĨŊ", // Dropdown - "settings.option.lyrics.enableYoutubeLyrics": "播攞MVå˜…æ™‚å€™į”¨YouTubeå­—åš•", // Toggle - - // Settings - Connectivity + "settings.option.lyrics.enableMusixmatch": "å•Ÿį”¨ Musixmatch æ­ŒčŠž", + "settings.option.lyrics.enableMusixmatchKaraoke": "é–‹å•Ÿå”ąKæ¨Ąåŧīŧˆåƒ…限Musixmatch)", + "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch æ­ŒčŠžčĒžč¨€ååĨŊ", + "settings.option.lyrics.enableYoutubeLyrics": "播攞MVå˜…æ™‚å€™į”¨YouTubeå­—åš•", "settings.header.connectivity": "å¤–éƒ¨é€Ŗįĩ", "settings.header.connectivity.description": "čĒŋ整CideråŒå¤–éƒ¨å˜…é€Ŗįĩ", - "settings.option.connectivity.discordRPC": "Discord į‹€æ…‹", // Dropdown - "settings.option.connectivity.playbackNotifications": "å–ē播歌嘅時候通įŸĨäŊ ", // Toggle - // Refer to term.disabled for the disabled option + "settings.option.connectivity.discordRPC": "Discord į‹€æ…‹", + "settings.option.connectivity.playbackNotifications": "å–ē播歌嘅時候通įŸĨäŊ ", "settings.header.connectivity.discordRPC.cider": "éĄ¯į¤ēį‚ē'Cider'", "settings.header.connectivity.discordRPC.appleMusic": "éĄ¯į¤ēį‚ē'Apple Music'", - "settings.option.connectivity.discordRPC.clearOnPause": "æšĢ停時清除 Discord į‹€æ…‹", // Toggle - "settings.option.connectivity.lastfmScrobble": "Last.FM Scrobbling 記錄", // Option to Connect + "settings.option.connectivity.discordRPC.clearOnPause": "æšĢ停時清除 Discord į‹€æ…‹", + "settings.option.connectivity.lastfmScrobble": "Last.FM Scrobbling 記錄", "settings.option.connectivity.lastfmScrobble.delay": "Last.FM Scrobble åģļ遲 (%)", "settings.option.connectivity.lastfmScrobble.nowPlaying": "å•Ÿį”¨ Last.FM æ­Ŗåœ¨æ’­æ”ž", "settings.option.connectivity.lastfmScrobble.removeFeatured": "垞歌名中į§ģ除藝äēēæŽ¨č–Ļ (Last.FM)", "settings.option.connectivity.lastfmScrobble.filterLoop": "Filter looped track (Last.FM)", - // Refer to term.connect for the connect button - - // Settings - Experimental "settings.header.experimental": "å¯Ļ銗性功čƒŊ", "settings.header.experimental.description": "čĒŋ整Cider嘅å¯Ļ銗性功čƒŊ", - "settings.option.experimental.compactUI": "é€ŧ啞æ—ĸ UI", // Toggle - "settings.option.experimental.close_button_hide": "㊒äē¤å‰åˆļåšŸéšąč— Cider", + "settings.option.experimental.compactUI": "é€ŧ啞æ—ĸ UI", + "settings.option.window.close_button_hide": "㊒äē¤å‰åˆļåšŸéšąč— Cider", "settings.option.experimental.copy_log": "將log複čŖŊå–ēå‰Ēč˛ŧį°ŋ", - //"settings.option.experimental.inline_playlists": "Inline Playlists and Albums", - - // Refer to term.disabled & term.enabled - // Spatialization Menu "spatial.notTurnedOn": "å””čŠ˛å–ēč¨­åŽšå…Ĩéĸå•Ÿį”¨åˇĻįŠēé–“éŸŗč¨Šå…ˆã€‚", "spatial.spatialProperties": "įŠēé–“éŸŗč¨ŠåąŦ性", "spatial.width": "åšžé—Š", @@ -329,14 +283,8 @@ "spatial.down": "下éĸ", "spatial.listener": "č§€įœž", "spatial.audioSource": "韺æē", - - // Settings - Unfinished "settings.header.unfinished": "æœĒ搞掂", - - // Web Remote "remote.web.title": "é™čˇæŽ§åˆļ Cider", "remote.web.description": "Scan å‘ĸ個 QR Code åŽģ控åˆļ Cider", - - // About "about.thanks": "多čŦ Cider Collective 同埋所有合äŊœäēēäŊœå‡ē嘅č˛ĸįģ。" -} \ No newline at end of file +} diff --git a/src/main/base/app.ts b/src/main/base/app.ts index 7aae7e89..243f04c8 100644 --- a/src/main/base/app.ts +++ b/src/main/base/app.ts @@ -4,6 +4,12 @@ import * as path from 'path'; import * as log from 'electron-log'; import {utils} from './utils'; +/** + * @file Creates App instance + * @author CiderCollective + */ + +/** @namespace */ export class AppEvents { private protocols: string[] = [ "ame", @@ -17,6 +23,7 @@ export class AppEvents { private tray: any = undefined; private i18n: any = undefined; + /** @constructor */ constructor() { this.start(); } @@ -90,6 +97,7 @@ export class AppEvents { /*********************************************************************************************************************** * Protocols **********************************************************************************************************************/ + /** */ if (process.defaultApp) { if (process.argv.length >= 2) { this.protocols.forEach((protocol: string) => { @@ -112,6 +120,8 @@ export class AppEvents { public ready(plug: any) { this.plugin = plug console.log('[AppEvents] App ready'); + + AppEvents.setLoginSettings() } public bwCreated() { @@ -123,8 +133,17 @@ export class AppEvents { } }) + if (process.platform === "darwin") { + app.setUserActivity('8R23J2835D.com.ciderapp.webremote.play', { + title: 'Web Remote', + description: 'Connect to your Web Remote', + }, "https://webremote.cider.sh") + } + this.InstanceHandler() - this.InitTray() + if (process.platform !== "darwin") { + this.InitTray() + } } /*********************************************************************************************************************** @@ -212,6 +231,7 @@ export class AppEvents { app.quit() } else if (utils.getWindow()) { if (utils.getWindow().isMinimized()) utils.getWindow().restore() + utils.getWindow().show() utils.getWindow().focus() } }) @@ -307,10 +327,34 @@ export class AppEvents { private static initLogging() { log.transports.console.format = '[{h}:{i}:{s}.{ms}] [{level}] {text}'; Object.assign(console, log.functions); + console.debug = function(...args: any[]) { + if (!app.isPackaged) { + log.debug(...args) + } + }; ipcMain.on('fetch-log', (_event) => { const data = readFileSync(log.transports.file.getFile().path, {encoding: 'utf8', flag: 'r'}); clipboard.writeText(data) }) } + + /** + * Set login settings + * @private + */ + private static setLoginSettings() { + if (utils.getStoreValue('general.onStartup.enabled')) { + app.setLoginItemSettings({ + openAtLogin: true, + path: app.getPath('exe'), + args: [`${utils.getStoreValue('general.onStartup.hidden') ? '--hidden' : ''}`] + }) + } else { + app.setLoginItemSettings({ + openAtLogin: false, + path: app.getPath('exe') + }) + } + } } diff --git a/src/main/base/browserwindow.ts b/src/main/base/browserwindow.ts index 991ccbdf..fd8a61df 100644 --- a/src/main/base/browserwindow.ts +++ b/src/main/base/browserwindow.ts @@ -4,22 +4,33 @@ import * as windowStateKeeper from "electron-window-state"; import * as express from "express"; import * as getPort from "get-port"; import {search} from "youtube-search-without-api-key"; -import {existsSync, mkdirSync, readdirSync, readFileSync, writeFileSync} from "fs"; +import {existsSync, rmSync, mkdirSync, readdirSync, readFileSync, writeFileSync, statSync} from "fs"; import {Stream} from "stream"; import {networkInterfaces} from "os"; import * as mm from 'music-metadata'; import fetch from 'electron-fetch' import {wsapi} from "./wsapi"; -import {jsonc} from "jsonc"; -import {AppImageUpdater, NsisUpdater} from "electron-updater"; import {utils} from './utils'; +import {Plugins} from "./plugins"; +import {watch} from "chokidar"; +const wallpaper = require('wallpaper'); +// @ts-ignore +import * as AdmZip from "adm-zip"; +/** + * @file Creates the BrowserWindow + * @author CiderCollective + */ + +/** @namespace */ export class BrowserWindow { public static win: any | undefined = null; private devMode: boolean = !app.isPackaged; private audioStream: any = new Stream.PassThrough(); + private headerSent: any = false; + private chromecastIP: any = []; private clientPort: number = 0; private remotePort: number = 6942; private EnvironmentVariables: object = { @@ -30,6 +41,7 @@ export class BrowserWindow { "pages/podcasts", "pages/apple-account-settings", "pages/library-songs", + "pages/library-albums", "pages/browse", "pages/settings", "pages/listen_now", @@ -44,12 +56,21 @@ export class BrowserWindow { "pages/search", "pages/about", "pages/library-videos", + "pages/remote-pair", + "pages/themes-github", + "pages/plugins-github", + "pages/replay", + "pages/audiolabs", + "pages/zoo", + "pages/plugin-renderer", "components/mediaitem-artwork", "components/artwork-material", "components/menu-panel", "components/sidebar-playlist", "components/spatial-properties", "components/audio-settings", + "components/plugin-menu", + "components/audio-controls", "components/qrcode-modal", "components/equalizer", "components/add-to-playlist", @@ -66,9 +87,130 @@ export class BrowserWindow { "components/listennow-child", "components/mediaitem-mvview-sp", "components/animatedartwork-view", + "components/listitem-horizontal", "components/lyrics-view", "components/fullscreen", "components/miniplayer", + "components/castmenu", + "components/artist-chip", + "components/hello-world", + ], + appRoutes: [ + { + page: "plugin-renderer", + component: ``, + condition: "page == 'plugin-renderer'" + }, + { + page: "zoo", + component: "", + condition: "page == 'zoo'" + }, + { + page: "podcasts", + component: ``, + condition: `page == 'podcasts'` + }, { + page: "library-videos", + component: ``, + condition: `page == 'library-videos'` + }, { + page: "apple-account-settings", + component: ``, + condition: `page == 'apple-account-settings'` + }, { + page: "about", + component: ``, + condition: `page == 'about'` + }, { + page: "cider-artist", + component: ``, + condition: `page == 'artist-page' && artistPage.data.attributes` + }, { + page: "collection-list", + component: ``, + condition: `page == 'collection-list'` + }, { + page: "home", + component: ``, + condition: `page == 'home'` + }, { + page: "artist-feed", + component: ``, + condition: `page == 'artist-feed'` + }, { + page: "playlist-inline", + component: ``, + condition: `modals.showPlaylist` + }, { + page: "playlist_", + component: ``, + condition: `page.includes('playlist_')` + }, { + page: "album_", + component: ``, + condition: `page.includes('album_')` + }, { + page: "recordLabel_", + component: ``, + condition: `page.includes('recordLabel_')` + }, { + page: "curator_", + component: ``, + condition: `page.includes('curator_')` + }, { + page: "browsepage", + component: ``, + condition: `page == 'browse'`, + onEnter: `getBrowsePage();` + }, { + page: "listen_now", + component: ``, + condition: `page == 'listen_now'`, + onEnter: `getListenNow()` + }, { + page: "settings", + component: ``, + condition: `page == 'settings'` + }, { + page: "search", + component: ``, + condition: `page == 'search'` + }, { + page: "library-songs", + component: ``, + condition: `page == 'library-songs'`, + onEnter: `getLibrarySongsFull()` + }, { + page: "library-albums", + component: ``, + condition: `page == 'library-albums'`, + onEnter: `getLibraryAlbumsFull(null, 1); getAlbumSort(); searchLibraryAlbums(1); getLibrarySongsFull() ;searchLibraryAlbums(1);` + }, { + page: "appleCurator", + component: ``, + condition: `page.includes('appleCurator')` + }, { + page: "themes-github", + component: ``, + condition: `page == 'themes-github'` + }, { + page: "plugins-github", + component: ``, + condition: `page == 'plugins-github'` + }, { + page: "remote-pair", + component: ``, + condition: `page == 'remote-pair'` + }, { + page: "audiolabs", + component: ``, + condition: `page == 'audiolabs'` + }, { + page: "replay", + component: ``, + condition: `page == 'replay'` + } ] }, }; @@ -85,14 +227,12 @@ export class BrowserWindow { minHeight: 390, frame: false, title: "Cider", - vibrancy: "fullscreen-ui", - transparent: process.platform === "darwin", - hasShadow: false, show: false, - backgroundColor: "#1E1E1E", + // backgroundColor: "#1E1E1E", titleBarStyle: 'hidden', trafficLightPosition: {x: 15, y: 20}, webPreferences: { + experimentalFeatures: true, nodeIntegration: true, sandbox: true, allowRunningInsecureContent: true, @@ -105,26 +245,96 @@ export class BrowserWindow { }, }; + StartWatcher(path: string) { + const watcher = watch(path, { + ignored: /[\/\\]\./, + persistent: true + }); + + function onWatcherReady() { + console.info('From here can you check for real changes, the initial scan has been completed.'); + } + + // Declare the listeners of the watcher + watcher + .on('add', function (path: string) { + // console.log('File', path, 'has been added'); + }) + .on('addDir', function (path: string) { + // console.log('Directory', path, 'has been added'); + }) + .on('change', function (path: string) { + console.log('File', path, 'has been changed'); + BrowserWindow.win.webContents.send("theme-update", "") + }) + .on('unlink', function (path: string) { + // console.log('File', path, 'has been removed'); + }) + .on('unlinkDir', function (path: string) { + // console.log('Directory', path, 'has been removed'); + }) + .on('error', function (error: string) { + // console.log('Error happened', error); + }) + .on('ready', onWatcherReady) + .on('raw', function (event: any, path: any, details: any) { + // This event should be triggered everytime something happens. + // console.log('Raw event info:', event, path, details); + }); + } + /** * Creates the browser window + * @generator + * @function createWindow + * @yields {object} Electron browser window */ async createWindow(): Promise { this.clientPort = await getPort({port: 9000}); BrowserWindow.verifyFiles(); + this.StartWatcher(utils.getPath('themes')); // Load the previous state with fallback to defaults const windowState = windowStateKeeper({ defaultWidth: 1024, defaultHeight: 600, + fullScreen: false }); this.options.width = windowState.width; this.options.height = windowState.height; + switch (process.platform) { + default: + + break; + case "win32": + if (!(utils.getStoreValue('visual.transparent') ?? false)){ + this.options.backgroundColor = "#1E1E1E";} else { + this.options.transparent = true;} + break; + case "linux": + this.options.backgroundColor = "#1E1E1E"; + this.options.autoHideMenuBar = true + this.options.frame = true + break; + case "darwin": + this.options.transparent = true; + this.options.vibrancy = "dark"; + this.options.hasShadow = true; + break; + } + // Start the webserver for the browser window to load this.startWebServer(); BrowserWindow.win = new bw(this.options); + // cant be built in CI + // if (process.platform === "win32" && (utils.getStoreValue('visual.transparent') ?? false)) { + // var electronVibrancy = require('electron-vibrancy-updated'); + // electronVibrancy.SetVibrancy(BrowserWindow.win, 0); + + // } const ws = new wsapi(BrowserWindow.win) ws.InitWebSockets() // and load the renderer. @@ -183,7 +393,7 @@ export class BrowserWindow { console.error('Req not defined') return } - if (req.url.includes("audio.webm") || (req.headers.host.includes("localhost") && (this.devMode || req.headers["user-agent"].includes("Electron")))) { + if (req.url.includes("audio.wav") || (req.headers.host.includes("localhost") && (this.devMode || req.headers["user-agent"].includes("Electron")))) { next(); } else { res.redirect("https://discord.gg/applemusic"); @@ -214,11 +424,11 @@ export class BrowserWindow { res.send("Stopped") break; case "next": - BrowserWindow.win.webContents.executeJavaScript("MusicKit.getInstance().skipToNextItem()") + BrowserWindow.win.webContents.executeJavaScript("if (MusicKit.getInstance().queue.nextPlayableItemIndex != -1 && MusicKit.getInstance().queue.nextPlayableItemIndex != null) {MusicKit.getInstance().changeToMediaAtIndex(MusicKit.getInstance().queue.nextPlayableItemIndex);}") res.send("Next") break; case "previous": - BrowserWindow.win.webContents.executeJavaScript("MusicKit.getInstance().skipToPreviousItem()") + BrowserWindow.win.webContents.executeJavaScript("if (MusicKit.getInstance().queue.previousPlayableItemIndex != -1 && MusicKit.getInstance().queue.previousPlayableItemIndex != null) {MusicKit.getInstance().changeToMediaAtIndex(MusicKit.getInstance().queue.previousPlayableItemIndex);}") res.send("Previous") break; default: { @@ -228,7 +438,7 @@ export class BrowserWindow { }) app.get("/themes/:theme", (req, res) => { - const theme = req.params.theme.toLowerCase(); + const theme = req.params.theme; const themePath = join(utils.getPath('srcPath'), "./renderer/themes/", theme); const userThemePath = join(utils.getPath('themes'), theme); if (existsSync(userThemePath)) { @@ -238,19 +448,53 @@ export class BrowserWindow { } else { res.send(`// Theme not found - ${userThemePath}`); } - }); - app.get("/audio.webm", (req, res) => { + app.get("/themes/:theme/*", (req: {params: {theme: string, 0: string}}, res) => { + const theme = req.params.theme; + const file = req.params[0]; + const themePath = join(utils.getPath('srcPath'), "./renderer/themes/", theme); + const userThemePath = join(utils.getPath('themes'), theme); + if (existsSync(userThemePath)) { + res.sendFile(join(userThemePath, file)); + } else if (existsSync(themePath)) { + res.sendFile(join(themePath, file)); + } else { + res.send(`// File not found - ${userThemePath}`); + } + }); + + app.get("/plugins/:plugin/*", (req: {params: {plugin: string, 0: string}}, res) => { + let plugin = req.params.plugin; + if(Plugins.getPluginFromMap(plugin)) { + plugin = Plugins.getPluginFromMap(plugin) + } + const file = req.params[0]; + const pluginPath = join(utils.getPath('plugins'), plugin); + console.log(pluginPath) + if (existsSync(pluginPath)) { + res.sendFile(join(pluginPath, file)); + } else { + res.send(`// Plugin not found - ${pluginPath}`); + } + }); + + app.get("/audio.wav", (req, res) => { try { + const ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress; + if (!this.chromecastIP.includes(ip)) { + this.headerSent = false; + this.chromecastIP.push(ip) + } req.socket.setTimeout(Number.MAX_SAFE_INTEGER); // CiderBase.requests.push({req: req, res: res}); // var pos = CiderBase.requests.length - 1; - // req.on("close", () => { - // console.info("CLOSED", CiderBase.requests.length); - // requests.splice(pos, 1); - // console.info("CLOSED", CiderBase.requests.length); - // }); + req.on("close", () => { + console.log('disconnected') + this.headerSent = false + this.chromecastIP = this.chromecastIP.filter((item: any) => item !== ip); + }); + this.audioStream.on("data", (data: any) => { try { res.write(data); @@ -351,32 +595,210 @@ export class BrowserWindow { /********************************************************************************************************************** * ipcMain Events ****************************************************************************************************************** */ + + ipcMain.on("get-wallpaper", async (event) => { + const wpPath:string = await wallpaper.get(); + // get the wallpaper and encode it to base64 then return + const wpBase64:string = await readFileSync(wpPath, 'base64') + // add the data:image properties + const wpData:string = `data:image/png;base64,${wpBase64}` + event.returnValue = wpData; + }) + ipcMain.on("cider-platform", (event) => { event.returnValue = process.platform; }); + ipcMain.handle("reinstall-widevine-cdm", ()=>{ + // remove WidevineCDM from appdata folder + const widevineCdmPath = join(app.getPath("userData"), "./WidevineCdm"); + if(existsSync(widevineCdmPath)) { + rmSync(widevineCdmPath, { recursive: true, force: true }) + } + // reinstall WidevineCDM + app.relaunch() + app.exit() + }) + + ipcMain.handle("get-github-plugin", async (event, url) => { + const returnVal = { + success: true, + theme: null, + message: "" + } + try { + if (!existsSync(utils.getPath("plugins"))) { + mkdirSync(utils.getPath("plugins")); + } + if (url.endsWith("/")) url = url.slice(0, -1); + let response = await fetch( + `${url}/archive/refs/heads/main.zip` + ); + let repo = url.split("/").slice(-2).join("/"); + let apiRepo = await fetch( + `https://api.github.com/repos/${repo}` + ).then((res) => res.json()); + console.debug(`REPO ID: ${apiRepo.id}`); + // extract the files from the first folder in the zip response + let zip = new AdmZip(await response.buffer()); + let entry = zip.getEntries()[0]; + if (!existsSync(join(utils.getPath("plugins"), "gh_" + apiRepo.id))) { + mkdirSync(join(utils.getPath("plugins"), "gh_" + apiRepo.id)); + } + console.log(join(utils.getPath("plugins"), "gh_" + apiRepo.id)) + zip.extractEntryTo(entry, join(utils.getPath("plugins"), "gh_" + apiRepo.id), false, true); + let commit = await fetch( + `https://api.github.com/repos/${repo}/commits` + ).then((res) => res.json()); + console.debug(`COMMIT SHA: ${commit[0].sha}`); + let theme = JSON.parse( + readFileSync(join(utils.getPath("plugins"), "gh_" + apiRepo.id, "package.json"), "utf8") + ); + theme.id = apiRepo.id + theme.commit = commit[0].sha + writeFileSync( + join(utils.getPath("plugins"), "gh_" + apiRepo.id, "package.json"), + JSON.stringify(theme, null, 4), + "utf8" + ); + } catch (e) { + returnVal.success = false; + } + BrowserWindow.win.webContents.send("plugin-installed", returnVal); + }); + + ipcMain.handle("get-github-theme", async (event, url) => { + const returnVal = { + success: true, + theme: null, + message: "" + } + try { + if (!existsSync(utils.getPath("themes"))) { + mkdirSync(utils.getPath("themes")); + } + if (url.endsWith("/")) url = url.slice(0, -1); + let response = await fetch( + `${url}/archive/refs/heads/main.zip` + ); + let repo = url.split("/").slice(-2).join("/"); + let apiRepo = await fetch( + `https://api.github.com/repos/${repo}` + ).then((res) => res.json()); + console.debug(`REPO ID: ${apiRepo.id}`); + // extract the files from the first folder in the zip response + let zip = new AdmZip(await response.buffer()); + let entry = zip.getEntries()[0]; + if (!existsSync(join(utils.getPath("themes"), "gh_" + apiRepo.id))) { + mkdirSync(join(utils.getPath("themes"), "gh_" + apiRepo.id)); + } + console.log(join(utils.getPath("themes"), "gh_" + apiRepo.id)) + zip.extractEntryTo(entry, join(utils.getPath("themes"), "gh_" + apiRepo.id), false, true); + let commit = await fetch( + `https://api.github.com/repos/${repo}/commits` + ).then((res) => res.json()); + console.debug(`COMMIT SHA: ${commit[0].sha}`); + let theme = JSON.parse( + readFileSync(join(utils.getPath("themes"), "gh_" + apiRepo.id, "theme.json"), "utf8") + ); + theme.id = apiRepo.id + theme.commit = commit[0].sha; + writeFileSync( + join(utils.getPath("themes"), "gh_" + apiRepo.id, "theme.json"), + JSON.stringify(theme, null, 4), + "utf8" + ); + } catch (e) { + returnVal.success = false; + } + BrowserWindow.win.webContents.send("theme-installed", returnVal); + }); + ipcMain.on("get-themes", (event, _key) => { if (existsSync(utils.getPath("themes"))) { - event.returnValue = readdirSync(utils.getPath("themes")); + let files = readdirSync(utils.getPath("themes")); + let themes = []; + for (let file of files) { + if (file.endsWith(".less")) { + themes.push(file); + } else if (statSync(join(utils.getPath("themes"), file)).isDirectory()) { + let subFiles = readdirSync(join(utils.getPath("themes"), file)); + for (let subFile of subFiles) { + if (subFile.endsWith(".less")) { + themes.push(join(file, subFile)); + } + } + } + } + let themeObjects = []; + for (let theme of themes) { + let themePath = join(utils.getPath("themes"), theme); + let themeName = theme; + let themeDescription = ""; + if (theme.includes("/")) { + themeName = theme.split("/")[1]; + themeDescription = theme.split("/")[0]; + } + if (themePath.endsWith("index.less")) { + themePath = themePath.slice(0, -10); + } + if (existsSync(join(themePath, "theme.json"))) { + let themeJson = JSON.parse(readFileSync(join(themePath, "theme.json"), "utf8")); + themeObjects.push({ + name: themeJson.name || themeName, + description: themeJson.description || themeDescription, + path: themePath, + file: theme, + github_repo: themeJson.github_repo || "", + commit: themeJson.commit || "" + }); + } else { + themeObjects.push({ + name: themeName, + description: themeDescription, + path: themePath, + file: theme, + github_repo: "", + commit: "" + }); + } + } + event.returnValue = themeObjects; + } else { event.returnValue = []; } }); + ipcMain.handle("open-path", async (event, path) => { + switch(path) { + default: + case "plugins": + shell.openPath(utils.getPath("plugins")); + break; + case "userdata": + shell.openPath(app.getPath("userData")); + break; + case "themes": + shell.openPath(utils.getPath("themes")); + break; + } + }); + ipcMain.on("get-i18n", (event, key) => { event.returnValue = utils.getLocale(key); }); ipcMain.on("get-i18n-listing", event => { - let i18nFiles = readdirSync(join(__dirname, "../../src/i18n")).filter(file => file.endsWith(".jsonc")); + let i18nFiles = readdirSync(join(__dirname, "../../src/i18n")).filter(file => file.endsWith(".json")); // read all the files and parse them let i18nListing = [] for (let i = 0; i < i18nFiles.length; i++) { - const i18n: { [index: string]: Object } = jsonc.parse(readFileSync(join(__dirname, `../../src/i18n/${i18nFiles[i]}`), "utf8")); + const i18n: { [index: string]: Object } = JSON.parse(readFileSync(join(__dirname, `../../src/i18n/${i18nFiles[i]}`), "utf8")); i18nListing.push({ - "code": i18nFiles[i].replace(".jsonc", ""), - "nameNative": i18n["i18n.languageName"] ?? i18nFiles[i].replace(".jsonc", ""), - "nameEnglish": i18n["i18n.languageNameEnglish"] ?? i18nFiles[i].replace(".jsonc", ""), + "code": i18nFiles[i].replace(".json", ""), + "nameNative": i18n["i18n.languageName"] ?? i18nFiles[i].replace(".json", ""), + "nameEnglish": i18n["i18n.languageNameEnglish"] ?? i18nFiles[i].replace(".json", ""), "category": i18n["i18n.category"] ?? "", "authors": i18n["i18n.authors"] ?? "" }) @@ -392,79 +814,22 @@ export class BrowserWindow { event.returnValue = this.devMode; }); - ipcMain.on("put-library-songs", (_event, arg) => { + ipcMain.handle("put-cache", (_event, arg) => { writeFileSync( - join(utils.getPath('ciderCache'), "library-songs.json"), - JSON.stringify(arg) + join(utils.getPath('ciderCache'), `${arg.file}.json`), + arg.data ); }); - ipcMain.on("put-library-artists", (_event, arg) => { - writeFileSync( - join(utils.getPath('ciderCache'), "library-artists.json"), - JSON.stringify(arg) - ); - }); - - ipcMain.on("put-library-albums", (_event, arg) => { - writeFileSync( - join(utils.getPath('ciderCache'), "library-albums.json"), - JSON.stringify(arg) - ); - }); - - ipcMain.on("put-library-playlists", (_event, arg) => { - writeFileSync( - join(utils.getPath('ciderCache'), "library-playlists.json"), - JSON.stringify(arg) - ); - }); - - ipcMain.on("put-library-recentlyAdded", (_event, arg) => { - writeFileSync( - join(utils.getPath('ciderCache'), "library-recentlyAdded.json"), - JSON.stringify(arg) - ); - }); - - ipcMain.on("get-library-songs", (event) => { - let librarySongs = readFileSync( - join(utils.getPath('ciderCache'), "library-songs.json"), - "utf8" - ); - event.returnValue = JSON.parse(librarySongs); - }); - - ipcMain.on("get-library-artists", (event) => { - let libraryArtists = readFileSync( - join(utils.getPath('ciderCache'), "library-artists.json"), - "utf8" - ); - event.returnValue = JSON.parse(libraryArtists); - }); - - ipcMain.on("get-library-albums", (event) => { - let libraryAlbums = readFileSync( - join(utils.getPath('ciderCache'), "library-albums.json"), - "utf8" - ); - event.returnValue = JSON.parse(libraryAlbums); - }); - - ipcMain.on("get-library-playlists", (event) => { - let libraryPlaylists = readFileSync( - join(utils.getPath('ciderCache'), "library-playlists.json"), - "utf8" - ); - event.returnValue = JSON.parse(libraryPlaylists); - }); - - ipcMain.on("get-library-recentlyAdded", (event) => { - let libraryRecentlyAdded = readFileSync( - join(utils.getPath('ciderCache'), "library-recentlyAdded.json"), - "utf8" - ); - event.returnValue = JSON.parse(libraryRecentlyAdded); + ipcMain.on("get-cache", (event, arg) => { + let read = "" + if (existsSync(join(utils.getPath('ciderCache'), `${arg}.json`))) { + read = readFileSync( + join(utils.getPath('ciderCache'), `${arg}.json`), + "utf8" + ); + } + event.returnValue = read; }); ipcMain.handle("getYTLyrics", async (_event, track, artist) => { @@ -517,20 +882,162 @@ export class BrowserWindow { ipcMain.on('setFullScreen', (_event, flag) => { BrowserWindow.win.setFullScreen(flag) }) + //Fullscreen ipcMain.on('detachDT', (_event, _) => { BrowserWindow.win.webContents.openDevTools({mode: 'detach'}); + }) + + ipcMain.handle('relaunchApp',(_event, _) => { + app.relaunch() + app.exit() + }) + + app.on('before-quit', () => { + }) ipcMain.on('play', (_event, type, id) => { BrowserWindow.win.webContents.executeJavaScript(` - MusicKit.getInstance().setQueue({ ${type}: '${id}'}).then(function(queue) { + MusicKit.getInstance().setQueue({ ${type}: '${id}', parameters : {l : app.mklang}}).then(function(queue) { MusicKit.getInstance().play(); }); `) }); + ipcMain.on('writeWAV', (event, leftpcm, rightpcm, bufferlength) => { + + function interleave16(leftChannel: any, rightChannel: any) { + var length = leftChannel.length + rightChannel.length; + var result = new Int16Array(length); + + var inputIndex = 0; + + for (var index = 0; index < length;) { + result[index++] = leftChannel[inputIndex]; + result[index++] = rightChannel[inputIndex]; + inputIndex++; + } + return result; + } + + //https://github.com/HSU-ANT/jsdafx + + function quantization(audiobufferleft: any, audiobufferright: any) { + + let h = Float32Array.from([1]); + let nsState = new Array(0); + let ditherstate = new Float32Array(0); + let qt = Math.pow(2, 1 - 16); + + //noise shifting order 3 + h = Float32Array.from([1.623, -0.982, 0.109]); + for (let i = 0; i < nsState.length; i++) { + nsState[i] = new Float32Array(h.length); + } + + + function setChannelCount(nc: any) { + if (ditherstate.length !== nc) { + ditherstate = new Float32Array(nc); + } + if (nsState.length !== nc) { + nsState = new Array(nc); + for (let i = 0; i < nsState.length; i++) { + nsState[i] = new Float32Array(h.length); + } + } + } + + function hpDither(channel: any) { + const rnd = Math.random() - 0.5; + const d = rnd - ditherstate[channel]; + ditherstate[channel] = rnd; + return d; + } + + + setChannelCount(2); + const inputs = [audiobufferleft, audiobufferright]; + const outputs = [audiobufferleft, audiobufferright]; + + for (let channel = 0; channel < inputs.length; channel++) { + const inputData = inputs[channel]; + const outputData = outputs[channel]; + for (let sample = 0; sample < bufferlength; sample++) { + let input = inputData[sample]; + // console.log('a2',inputData.length); + for (let i = 0; i < h.length; i++) { + input -= h[i] * nsState[channel][i]; + } + // console.log('a3',input); + let d_rand = 0.0; + // ditherstate = new Float32Array(h.length); + // d_rand = hpDither(channel); + const tmpOutput = qt * Math.round(input / qt + d_rand); + for (let i = h.length - 1; i >= 0; i--) { + nsState[channel][i] = nsState[channel][i - 1]; + } + nsState[channel][0] = tmpOutput - input; + outputData[sample] = tmpOutput; + } + } + return outputs; + } + + + function convert(n: any) { + var v = n < 0 ? n * 32768 : n * 32767; // convert in range [-32768, 32767] + return Math.max(-32768, Math.min(32768, v)); // clamp + } + + function bitratechange(e: any){ + var t = e.length; + let sampleRate = 96.0; + let outputSampleRate = 48.0; + var s = 0, + o = sampleRate / outputSampleRate, + u = Math.ceil(t * outputSampleRate / sampleRate), + a = new Int16Array(u); + for (let i = 0; i < u; i++) { + a[i] = e[Math.floor(s)]; + s += o; + } + + return a; + } + + let newaudio = quantization(leftpcm, rightpcm); + //let newaudio = [leftpcm, rightpcm]; + // console.log(newaudio.length); + + let pcmData = Buffer.from(new Int8Array(interleave16(bitratechange(Int16Array.from(newaudio[0], x => convert(x))), bitratechange(Int16Array.from(newaudio[1], x => convert(x)))).buffer)); + + if (!this.headerSent) { + console.log('new header') + const header = Buffer.alloc(44) + header.write('RIFF', 0) + header.writeUInt32LE(2147483600, 4) + header.write('WAVE', 8) + header.write('fmt ', 12) + header.writeUInt8(16, 16) + header.writeUInt8(1, 20) + header.writeUInt8(2, 22) + header.writeUInt32LE(48000, 24) + header.writeUInt32LE(16, 28) + header.writeUInt8(4, 32) + header.writeUInt8(16, 34) + header.write('data', 36) + header.writeUInt32LE(2147483600 + 44 - 8, 40) + this.audioStream.write(Buffer.concat([header, pcmData])); + this.headerSent = true; + } else { + this.audioStream.write(pcmData); + } + + }); + //QR Code ipcMain.handle('showQR', async (_event, _) => { let url = `http://${BrowserWindow.getIP()}:${this.remotePort}`; @@ -539,7 +1046,12 @@ export class BrowserWindow { ipcMain.on('get-remote-pair-url', (_event, _) => { let url = `http://${BrowserWindow.getIP()}:${this.remotePort}`; - BrowserWindow.win.webContents.send('send-remote-pair-url', url); + //if (app.isPackaged) { + BrowserWindow.win.webContents.send('send-remote-pair-url', (`https://cider.sh/pair-remote?url=${Buffer.from(encodeURI(url)).toString('base64')}`).toString()); + //} else { + // BrowserWindow.win.webContents.send('send-remote-pair-url', (`http://127.0.0.1:5500/pair-remote.html?url=${Buffer.from(encodeURI(url)).toString('base64')}`).toString()); + //} + }); if (process.platform === "darwin") { app.setUserActivity('com.CiderCollective.remote.pair', { @@ -557,35 +1069,22 @@ export class BrowserWindow { console.log('sc', SoundCheckTag) BrowserWindow.win.webContents.send('SoundCheckTag', SoundCheckTag) }).catch(err => { - console.log(err) - }); + console.log(err) + }); }); ipcMain.on('check-for-update', async (_event) => { - const branch = utils.getStoreValue('general.update_branch') - let latestbranch = await fetch(`https://circleci.com/api/v1.1/project/gh/ciderapp/Cider/latest/artifacts?branch=${branch}&filter=successful`) - if (latestbranch.status != 200) { - console.log(`Error fetching latest artifact from the **${branch}** branch`) - return - } - - let latestbranchjson = await latestbranch.json() - let base_url = latestbranchjson[0].url - base_url = base_url.substr(0, base_url.lastIndexOf('/')) - - const options: any = { - provider: 'generic', - url: `${base_url}` - } - /* - * Have to handle the auto updaters seperatly until we can support macOS. electron-builder limitation -q - */ - const win_autoUpdater = new NsisUpdater(options) //Windows - const linux_autoUpdater = new AppImageUpdater(options) //Linux - await win_autoUpdater.checkForUpdatesAndNotify() - await linux_autoUpdater.checkForUpdatesAndNotify() + await utils.checkForUpdate(); }); + + ipcMain.on('disable-update', (event) => { + // Check if using app store builds so people don't get pissy wen button go bonk + event.returnValue = !(app.isPackaged && !process.mas || !process.windowsStore); + }) + + + ipcMain.on('share-menu', async (_event, url) => { if (process.platform != 'darwin') return; //https://www.electronjs.org/docs/latest/api/share-menu @@ -594,12 +1093,21 @@ export class BrowserWindow { title: 'Share', urls: [url] }; - // @ts-ignore const shareMenu = new ShareMenu(options); shareMenu.popup(); }) + ipcMain.on('get-version', (_event) => { + if (app.isPackaged) { + _event.returnValue = app.getVersion() + } else { + _event.returnValue = `Experimental running on Electron ${app.getVersion()}` + } + }); + ipcMain.on('open-appdata', (_event) => { + shell.openPath(app.getPath('userData')); + }); /* ********************************************************************************************* * Window Events * **********************************************************************************************/ @@ -640,6 +1148,11 @@ export class BrowserWindow { event.preventDefault(); BrowserWindow.win.hide(); } else { + BrowserWindow.win.webContents.executeJavaScript(` + window.localStorage.setItem("currentTrack", JSON.stringify(app.mk.nowPlayingItem)); + window.localStorage.setItem("currentTime", JSON.stringify(app.mk.currentPlaybackTime)); + window.localStorage.setItem("currentQueue", JSON.stringify(app.mk.queue.items)); + ipcRenderer.send('stopGCast','');`) BrowserWindow.win.destroy(); } }) @@ -648,8 +1161,18 @@ export class BrowserWindow { isQuiting = true }); + app.on('activate', function(){ + BrowserWindow.win.show() + BrowserWindow.win.focus() + }); + + // Quit when all windows are closed. app.on('window-all-closed', () => { - app.quit() + // On macOS it is common for applications and their menu bar + // to stay active until the user quits explicitly with Cmd + Q + if (process.platform !== 'darwin') { + app.quit() + } }) BrowserWindow.win.on("closed", () => { @@ -672,17 +1195,22 @@ export class BrowserWindow { */ private static getIP(): string { let ip: string = ''; + let ip2: any = []; let alias = 0; const ifaces: any = networkInterfaces(); for (let dev in ifaces) { ifaces[dev].forEach((details: any) => { - if (details.family === 'IPv4') { + if (details.family === 'IPv4' && !details.internal) { if (!/(loopback|vmware|internal|hamachi|vboxnet|virtualbox)/gi.test(dev + (alias ? ':' + alias : ''))) { if (details.address.substring(0, 8) === '192.168.' || details.address.substring(0, 7) === '172.16.' || details.address.substring(0, 3) === '10.' ) { - ip = details.address; + if (!ip.startsWith('192.168.') || + (ip2.startsWith('192.168.') && !ip.startsWith('192.168.')) && + (ip2.startsWith('172.16.') && !ip.startsWith('192.168.') && !ip.startsWith('172.16.')) || + (ip2.startsWith('10.') && !ip.startsWith('192.168.') && !ip.startsWith('172.16.') && !ip.startsWith('10.')) + ){ip = details.address;} ++alias; } } @@ -699,7 +1227,7 @@ export class BrowserWindow { private async broadcastRemote() { const myString = `http://${BrowserWindow.getIP()}:${this.remotePort}`; const mdns = require('mdns-js'); - const encoded = new Buffer(myString).toString('base64'); + const encoded = Buffer.from(myString).toString('base64'); const x = mdns.tcp('cider-remote'); const txt_record = { "Ver": "131077", diff --git a/src/main/base/castcontroller.js b/src/main/base/castcontroller.js new file mode 100644 index 00000000..21339ff4 --- /dev/null +++ b/src/main/base/castcontroller.js @@ -0,0 +1,32 @@ +var util = require('util'); +var castv2Cli = require('castv2-client'); +var RequestResponseController = castv2Cli.RequestResponseController; + +function CiderCastController(client, sourceId, destinationId) { + RequestResponseController.call(this, client, sourceId, destinationId, 'urn:x-cast:com.ciderapp.customdata'); + this.once('close', onclose); + var self = this; + function onclose() { + self.stop(); + } +} + +util.inherits(CiderCastController, RequestResponseController); + +CiderCastController.prototype.sendIp = function(ip) { + // TODO: Implement Callback + let data = { + ip : ip + } + this.request(data); +}; + +CiderCastController.prototype.kill = function() { + // TODO: Implement Callback + let data = { + action : "stop" + } + this.request(data); +}; + +module.exports = CiderCastController; \ No newline at end of file diff --git a/src/main/base/castreceiver.js b/src/main/base/castreceiver.js new file mode 100644 index 00000000..60676bfa --- /dev/null +++ b/src/main/base/castreceiver.js @@ -0,0 +1,81 @@ +//@ts-nocheck +var util = require('util'); +// var debug = require('debug')('castv2-client'); +var Application = require('castv2-client').Application; +var MediaController = require('castv2-client').MediaController; +var CiderCastController = require('./castcontroller'); + +function CiderReceiver(client, session) { + Application.apply(this, arguments); + + this.media = this.createController(MediaController); + this.mediaReceiver = this.createController(CiderCastController); + + this.media.on('status', onstatus); + + var self = this; + + function onstatus(status) { + self.emit('status', status); + } + +} +// FE96A351 +// 27E1334F +CiderReceiver.APP_ID = 'FE96A351'; + +util.inherits(CiderReceiver, Application); + +CiderReceiver.prototype.getStatus = function(callback) { + this.media.getStatus.apply(this.media, arguments); +}; + +CiderReceiver.prototype.load = function(media, options, callback) { + this.media.load.apply(this.media, arguments); +}; + +CiderReceiver.prototype.play = function(callback) { + this.media.play.apply(this.media, arguments); +}; + +CiderReceiver.prototype.pause = function(callback) { + this.media.pause.apply(this.media, arguments); +}; + +CiderReceiver.prototype.stop = function(callback) { + this.media.stop.apply(this.media, arguments); +}; + +CiderReceiver.prototype.seek = function(currentTime, callback) { + this.media.seek.apply(this.media, arguments); +}; + +CiderReceiver.prototype.queueLoad = function(items, options, callback) { + this.media.queueLoad.apply(this.media, arguments); +}; + +CiderReceiver.prototype.queueInsert = function(items, options, callback) { + this.media.queueInsert.apply(this.media, arguments); +}; + +CiderReceiver.prototype.queueRemove = function(itemIds, options, callback) { + this.media.queueRemove.apply(this.media, arguments); +}; + +CiderReceiver.prototype.queueReorder = function(itemIds, options, callback) { + this.media.queueReorder.apply(this.media, arguments); +}; + +CiderReceiver.prototype.queueUpdate = function(items, callback) { + this.media.queueUpdate.apply(this.media, arguments); +}; + +CiderReceiver.prototype.sendIp = function(opts){ + this.mediaReceiver.sendIp.apply(this.mediaReceiver, arguments); +}; + +CiderReceiver.prototype.kill = function(opts){ + this.mediaReceiver.kill.apply(this.mediaReceiver, arguments); +}; + +module.exports = CiderReceiver; diff --git a/src/main/base/plugins.ts b/src/main/base/plugins.ts index 4ffb1042..1f501cd2 100644 --- a/src/main/base/plugins.ts +++ b/src/main/base/plugins.ts @@ -3,15 +3,36 @@ import * as path from 'path'; import * as electron from 'electron' import {utils} from './utils'; +// +// Hello, this our loader for the various plugins that the Cider Development Team built for our +// numerous plugins internally and ones made by the community +// +// To learn how to make your own, visit https://github.com/ciderapp/Cider/wiki/Plugins +// +/** + * @class + * Plugin Loading + * @author booploops#7139 + * @see {@link https://github.com/ciderapp/Cider/wiki/Plugins|Documentation} + */ export class Plugins { private basePluginsPath = path.join(__dirname, '../plugins'); - private userPluginsPath = path.join(electron.app.getPath('userData'), 'plugins'); + private userPluginsPath = path.join(electron.app.getPath('userData'), 'Plugins'); private readonly pluginsList: any = {}; + private static PluginMap: any = {}; constructor() { this.pluginsList = this.getPlugins(); } + public static getPluginFromMap(plugin: string): any { + if(Plugins.PluginMap[plugin]) { + return Plugins.PluginMap[plugin]; + }else{ + return plugin; + } + } + public getPlugins(): any { let plugins: any = {}; @@ -23,7 +44,7 @@ export class Plugins { if (plugins[file] || plugin.name in plugins) { console.log(`[${plugin.name}] Plugin already loaded / Duplicate Class Name`); } else { - plugins[file] = new plugin(electron.app, utils.getStore()); + plugins[file] = new plugin(utils); } } }); @@ -32,13 +53,46 @@ export class Plugins { if (fs.existsSync(this.userPluginsPath)) { fs.readdirSync(this.userPluginsPath).forEach(file => { + // Plugins V1 if (file.endsWith('.ts') || file.endsWith('.js')) { - const plugin = require(path.join(this.userPluginsPath, file)).default; - file = file.replace('.ts', '').replace('.js', ''); - if (plugins[file] || plugin in plugins) { - console.log(`[${plugin.name}] Plugin already loaded / Duplicate Class Name`); + if (!electron.app.isPackaged) { + const plugin = require(path.join(this.userPluginsPath, file)).default; + file = file.replace('.ts', '').replace('.js', ''); + if (plugins[file] || plugin in plugins) { + console.log(`[${plugin.name}] Plugin already loaded / Duplicate Class Name`); + } else { + plugins[file] = new plugin(utils); + } } else { - plugins[file] = new plugin(electron.app, utils.getStore()); + const plugin = require(path.join(this.userPluginsPath, file)); + file = file.replace('.ts', '').replace('.js', ''); + if (plugins[file] || plugin in plugins) { + console.log(`[${plugin.name}] Plugin already loaded / Duplicate Class Name`); + } else { + plugins[file] = new plugin(utils); + } + } + } + // Plugins V2 + else if (fs.lstatSync(path.join(this.userPluginsPath, file)).isDirectory()) { + const pluginPath = path.join(this.userPluginsPath, file); + if (fs.existsSync(path.join(pluginPath, 'package.json'))) { + const pluginPackage = require(path.join(pluginPath, "package.json")); + const plugin = require(path.join(pluginPath, pluginPackage.main)); + if (plugins[plugin.name] || plugin.name in plugins) { + console.log(`[${plugin.name}] Plugin already loaded / Duplicate Class Name`); + } else { + Plugins.PluginMap[pluginPackage.name] = file; + const pluginEnv = { + app: electron.app, + store: utils.getStore(), + utils: utils, + win: utils.getWindow(), + dir: pluginPath, + dirName: file + } + plugins[plugin.name] = new plugin(pluginEnv); + } } } }); @@ -50,7 +104,11 @@ export class Plugins { public callPlugins(event: string, ...args: any[]) { for (const plugin in this.pluginsList) { if (this.pluginsList[plugin][event]) { - this.pluginsList[plugin][event](...args); + try{ + this.pluginsList[plugin][event](...args); + }catch(e) { + console.log(`[${plugin}] Plugin error: ${e}`); + } } } } diff --git a/src/main/base/store.ts b/src/main/base/store.ts index da89a70a..7e2aa3b2 100644 --- a/src/main/base/store.ts +++ b/src/main/base/store.ts @@ -7,12 +7,26 @@ export class Store { private defaults: any = { "general": { "close_button_hide": false, - "open_on_startup": false, "discord_rpc": 1, // 0 = disabled, 1 = enabled as Cider, 2 = enabled as Apple Music "discord_rpc_clear_on_pause": true, "language": "en_US", // electron.app.getLocale().replace('-', '_') this can be used in future "playbackNotifications": true, - "update_branch": "main" + "update_branch": "main", + "resumeOnStartupBehavior": "local", + "privateEnabled": false, + "themeUpdateNotification": true, + "sidebarItems": { + "recentlyAdded": true, + "songs": true, + "albums": true, + "artists": true, + "videos": true, + "podcasts": true + }, + "onStartup": { + "enabled": false, + "hidden": false, + } }, "home": { "followedArtists": [], @@ -23,7 +37,12 @@ export class Store { "sort": "name", "sortOrder": "asc", "size": "normal" - } + }, + "albums": { + "sort": "name", + "sortOrder": "asc", + "viewAs": "covers" + }, }, "audio": { "volume": 1, @@ -34,8 +53,19 @@ export class Store { "quality": "HIGH", "seamless_audio": true, "normalization": false, - "ciderPPE": false, - "ciderPPE_value": 0.5, + "maikiwiAudio": { + "ciderPPE": false, + "ciderPPE_value": "NATURAL", + "analogWarmth": false, + "analogWarmth_value": "SMOOTH", + "spatial": false, + "spatialProfile": "420signature-B", + "vibrantBass": { // Hard coded into the app. Don't include any of this config into exporting presets in store.ts + 'frequencies': [17.182, 42.169, 53.763, 112.69, 119.65, 264.59, 336.57, 400.65, 505.48, 612.7, 838.7, 1155.3, 1175.6, 3406.8, 5158.6, 5968.1, 6999.9, 7468.6, 8862.9, 9666, 10109], + 'Q': [2.5, 0.388, 5, 5, 2.5, 7.071, 14.14, 10, 7.071, 14.14, 8.409, 0.372, 7.071, 10, 16.82, 7.071, 28.28, 20, 8.409, 40, 40], + 'gain': [-0.34, 2.49, 0.23, -0.49, 0.23, -0.12, 0.32, -0.29, 0.33, 0.19, -0.18, -1.27, -0.11, 0.25, -0.18, -0.53, 0.34, 1.32, 1.78, 0.41, -0.28] + } + }, "spatial": false, "spatial_properties": { "presets": [], @@ -66,12 +96,6 @@ export class Store { 'presets': [], 'userGenerated': false }, - "vibrantBass": { // Hard coded into the app. Don't include any of this config into exporting presets in store.ts - 'multiplier': 0, - 'frequencies': [17.182, 42.169, 53.763, 112.69, 119.65, 264.59, 336.57, 400.65, 505.48, 612.7, 838.7, 1155.3, 1175.6, 3406.8, 5158.6, 5968.1, 6999.9, 7468.6, 8862.9, 9666, 10109], - 'Q': [2.5, 0.388, 5, 5, 2.5, 7.071, 14.14, 10, 7.071, 14.14, 8.409, 0.372, 7.071, 10, 16.82, 7.071, 28.28, 20, 8.409, 40, 40], - 'gain': [-0.34, 2.49, 0.23, -0.49, 0.23, -0.12, 0.32, -0.29, 0.33, 0.19, -0.18, -1.27, -0.11, 0.25, -0.18, -0.53, 0.34, 1.32, 1.78, 0.41, -0.28] - } }, "visual": { "theme": "", @@ -83,7 +107,11 @@ export class Store { "bg_artwork_rotation": false, "hw_acceleration": "default", // default, webgpu, disabled "showuserinfo": true, - "miniplayer_top_toggle": true + "transparent": false, + "miniplayer_top_toggle": true, + "directives": { + "windowLayout": "default" + } }, "lyrics": { "enable_mxm": false, @@ -101,7 +129,8 @@ export class Store { }, "advanced": { "AudioContext": false, - "experiments": [] + "experiments": [], + "playlistTrackMapping": true } } private migrations: any = {} diff --git a/src/main/base/utils.ts b/src/main/base/utils.ts index 96b937d0..337e6f79 100644 --- a/src/main/base/utils.ts +++ b/src/main/base/utils.ts @@ -1,9 +1,11 @@ import * as fs from "fs"; import * as path from "path"; -import {jsonc} from "jsonc"; import {Store} from "./store"; import {BrowserWindow as bw} from "./browserwindow"; -import {app} from "electron"; +import {app, dialog, ipcMain, Notification, shell } from "electron"; +import fetch from "electron-fetch"; +import {AppImageUpdater, NsisUpdater} from "electron-updater"; +import * as log from "electron-log"; export class utils { @@ -16,6 +18,7 @@ export class utils { mainPath: path.join(__dirname, "../../src/main"), resourcePath: path.join(__dirname, "../../resources"), i18nPath: path.join(__dirname, "../../src/i18n"), + i18nPathSrc: path.join(__dirname, "../../src/il8n/source"), ciderCache: path.resolve(app.getPath("userData"), "CiderCache"), themes: path.resolve(app.getPath("userData"), "Themes"), plugins: path.resolve(app.getPath("userData"), "Plugins"), @@ -30,6 +33,14 @@ export class utils { return this.paths[name]; } + /** + * Get the app + * @returns {Electron.App} + */ + static getApp(): Electron.App { + return app; + } + /** * Fetches the i18n locale for the given language. * @param language {string} The language to fetch the locale for. @@ -37,10 +48,10 @@ export class utils { * @returns {string | Object} The locale value. */ static getLocale(language: string, key?: string): string | object { - let i18n: { [index: string]: Object } = jsonc.parse(fs.readFileSync(path.join(this.paths.i18nPath, "en_US.jsonc"), "utf8")); + let i18n: { [index: string]: Object } = JSON.parse(fs.readFileSync(path.join(this.paths.i18nPath, "en_US.json"), "utf8")); - if (language !== "en_US" && fs.existsSync(path.join(this.paths.i18nPath, `${language}.jsonc`))) { - i18n = Object.assign(i18n, jsonc.parse(fs.readFileSync(path.join(this.paths.i18nPath, `${language}.jsonc`), "utf8"))); + if (language !== "en_US" && fs.existsSync(path.join(this.paths.i18nPath, `${language}.json`))) { + i18n = Object.assign(i18n, JSON.parse(fs.readFileSync(path.join(this.paths.i18nPath, `${language}.json`), "utf8"))); } if (key) { @@ -83,6 +94,14 @@ export class utils { return bw.win } + static loadPluginFrontend(path: string): void { + + } + + static loadJSFrontend(path: string): void { + bw.win.webContents.executeJavaScript(fs.readFileSync(path, "utf8")); + } + /** * Playback Functions */ @@ -103,4 +122,70 @@ export class utils { bw.win.webContents.executeJavaScript("MusicKitInterop.previous()") } } -} \ No newline at end of file + + /** + * Checks the application for updates + */ + static async checkForUpdate(): Promise { + if (!app.isPackaged) { + new Notification({ title: "Application Update", body: "Can't update as app is in DEV mode. Please build or grab a copy by clicking me"}) + .on('click', () => {shell.openExternal('https://download.cider.sh/?utm_source=app&utm_medium=dev-mode-warning')}) + .show() + bw.win.webContents.send('update-response', "update-error") + return; + } + const options: any = { + provider: 'github', + protocol: 'https', + owner: 'ciderapp', + repo: 'cider-releases', + allowDowngrade: true, + } + let autoUpdater: any = null + if (process.platform === 'win32') { //Windows + autoUpdater = await new NsisUpdater(options) + } else { + autoUpdater = await new AppImageUpdater(options) //Linux and Mac (AppImages work on macOS btw) + } + + autoUpdater.on('checking-for-update', () => { + new Notification({ title: "Cider Update", body: "Cider is currently checking for updates."}).show() + }) + + autoUpdater.on('error', (error: any) => { + console.error(`[AutoUpdater] Error: ${error}`) + bw.win.webContents.send('update-response', "update-error") + }) + + autoUpdater.on('update-not-available', () => { + console.log('[AutoUpdater] Update not available.') + bw.win.webContents.send('update-response', "update-not-available"); + }) + autoUpdater.on('download-progress', (event: any, progress: any) => { + bw.win.setProgressBar(progress.percent / 100) + }) + + autoUpdater.on('update-downloaded', (info: any) => { + console.log('[AutoUpdater] Update downloaded.') + bw.win.webContents.send('update-response', "update-downloaded"); + const dialogOpts = { + type: 'info', + buttons: ['Restart', 'Later'], + title: 'Application Update', + message: info, + detail: 'A new version has been downloaded. Restart the application to apply the updates.' + } + + dialog.showMessageBox(dialogOpts).then((returnValue) => { + if (returnValue.response === 0) autoUpdater.quitAndInstall() + }) + new Notification({ title: "Application Update", body: info}).on('click', () => { + bw.win.show() + }).show() + }) + + log.transports.file.level = "debug" + autoUpdater.logger = log + await autoUpdater.checkForUpdatesAndNotify() + } +} diff --git a/src/main/base/wsapi.ts b/src/main/base/wsapi.ts index bfd62c9f..bb48d86a 100644 --- a/src/main/base/wsapi.ts +++ b/src/main/base/wsapi.ts @@ -61,6 +61,9 @@ export class wsapi { electron.ipcMain.on('wsapi-returnLyrics', (_event: any, arg: any) => { this.returnLyrics(JSON.parse(arg)); }); + electron.ipcMain.on('wsapi-returnvolumeMax', (_event: any, arg: any) => { + this.returnmaxVolume(JSON.parse(arg)); + }); this.wss = new WebSocketServer({ port: this.port, perMessageDeflate: { @@ -162,6 +165,10 @@ export class wsapi { this._win.webContents.executeJavaScript(`MusicKit.getInstance().stop()`); response.message = "Stopped"; break; + case "volumeMax": + this._win.webContents.executeJavaScript(`wsapi.getmaxVolume()`); + response.message = "maxVolume"; + break; case "volume": this._win.webContents.executeJavaScript(`MusicKit.getInstance().volume = ${parseFloat(data.volume)}`); response.message = "Volume"; @@ -175,11 +182,15 @@ export class wsapi { response.message = "Unmuted"; break; case "next": - this._win.webContents.executeJavaScript(`MusicKit.getInstance().skipToNextItem()`); + this._win.webContents.executeJavaScript(`if (MusicKit.getInstance().queue.nextPlayableItemIndex != -1 && MusicKit.getInstance().queue.nextPlayableItemIndex != null) { + try { + app.prevButtonBackIndicator = false; + } catch (e) { } + MusicKit.getInstance().changeToMediaAtIndex(MusicKit.getInstance().queue.nextPlayableItemIndex);}`); response.message = "Next"; break; case "previous": - this._win.webContents.executeJavaScript(`MusicKit.getInstance().skipToPreviousItem()`); + this._win.webContents.executeJavaScript(`if (MusicKit.getInstance().queue.previousPlayableItemIndex != -1 && MusicKit.getInstance().queue.previousPlayableItemIndex != null) {MusicKit.getInstance().changeToMediaAtIndex(MusicKit.getInstance().queue.previousPlayableItemIndex)}`); response.message = "Previous"; break; case "musickit-api": @@ -295,4 +306,11 @@ export class wsapi { client.send(JSON.stringify(response)); }); } + + returnmaxVolume(vol: any) { + const response: standardResponse = {status: 0, data: vol, message: "OK", type: "maxVolume"}; + this.clients.forEach(function each(client: any) { + client.send(JSON.stringify(response)); + }); + } } \ No newline at end of file diff --git a/src/main/index.ts b/src/main/index.ts index e5ca6772..acf11155 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -1,6 +1,6 @@ require('v8-compile-cache'); -import {app, components, ipcMain} from 'electron'; +const {app, components, ipcMain} = require('electron'); import {join} from 'path'; if (!app.isPackaged) { @@ -45,10 +45,17 @@ app.on('ready', () => { const bw = new BrowserWindow() const win = await bw.createWindow() + app.getGPUInfo("complete").then(gpuInfo => { + console.log(gpuInfo) + }) + + console.log('[Cider][Widevine] Status:', components.status()); + win.show(); + win.on("ready-to-show", () => { Cider.bwCreated(); + console.debug('[Cider] Window is Ready.') CiderPlug.callPlugins('onReady', win); - win.show(); }); }); @@ -58,6 +65,10 @@ app.on('ready', () => { * Renderer Event Handlers * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +ipcMain.handle("renderer-ready", (event) => { + CiderPlug.callPlugins("onRendererReady", event); +}) + ipcMain.on('playbackStateDidChange', (_event, attributes) => { CiderPlug.callPlugins('onPlaybackStateDidChange', attributes); }); @@ -66,6 +77,10 @@ ipcMain.on('nowPlayingItemDidChange', (_event, attributes) => { CiderPlug.callPlugins('onNowPlayingItemDidChange', attributes); }); +ipcMain.on('nowPlayingItemDidChangeLastFM', (_event, attributes) => { + CiderPlug.callPlugin('lastfm.js', 'nowPlayingItemDidChangeLastFM', attributes); +}) + app.on('before-quit', () => { CiderPlug.callPlugins('onBeforeQuit'); console.warn(`${app.getName()} exited.`); diff --git a/src/main/plugins/chromecast.ts b/src/main/plugins/chromecast.ts new file mode 100644 index 00000000..d42c3c98 --- /dev/null +++ b/src/main/plugins/chromecast.ts @@ -0,0 +1,362 @@ +import * as electron from 'electron'; +import * as os from 'os'; +import {resolve} from 'path'; +import * as CiderReceiver from '../base/castreceiver'; + +export default class ChromecastPlugin { + + /** + * Private variables for interaction in plugins + */ + private _win: any; + private _app: any; + private _lastfm: any; + private _store: any; + private _timer: any; + private audioClient = require('castv2-client').Client; + private mdns = require('mdns-js'); + + private devices: any = []; + private castDevices: any = []; + + // private GCRunning = false; + // private GCBuffer: any; + // private expectedConnections = 0; + // private currentConnections = 0; + private activeConnections: any = []; + // private requests = []; + // private GCstream = new Stream.PassThrough(), + private connectedHosts: any = {}; + private connectedPlayer: any; + // private port = false; + // private server = false; + // private bufcount = 0; + // private bufcount2 = 0; + // private headerSent = false; + + + private searchForGCDevices() { + try { + + let browser = this.mdns.createBrowser(this.mdns.tcp('googlecast')); + browser.on('ready', browser.discover); + + browser.on('update', (service: any) => { + if (service.addresses && service.fullname && service.fullname.includes('_googlecast._tcp')) { + this.ondeviceup(service.addresses[0], service.fullname.substring(0, service.fullname.indexOf("._googlecast")) + " " + (service.type[0].description ?? ""), '', 'googlecast'); + } + }); + const Client = require('node-ssdp').Client; + // also do a SSDP/UPnP search + let ssdpBrowser = new Client(); + ssdpBrowser.on('response', (headers: any, statusCode: any, rinfo: any) => { + var location = getLocation(headers); + if (location != null) { + this.getServiceDescription(location, rinfo.address); + } + + }); + + function getLocation(headers: any) { + let location = null; + if (headers["LOCATION"] != null) { + location = headers["LOCATION"] + } else if (headers["Location"] != null) { + location = headers["Location"] + } + return location; + } + + ssdpBrowser.search('urn:dial-multiscreen-org:device:dial:1'); + + // // actual upnp devices + // if (app.cfg.get("audio.enableDLNA")) { + // let ssdpBrowser2 = new Client(); + // ssdpBrowser2.on('response', (headers, statusCode, rinfo) => { + // var location = getLocation(headers); + // if (location != null) { + // this.getServiceDescription(location, rinfo.address); + // } + + // }); + // ssdpBrowser2.search('urn:schemas-upnp-org:device:MediaRenderer:1'); + + // } + + + } catch (e) { + console.log('Search GC err', e); + } + } + + private getServiceDescription(url: any, address: any) { + const request = require('request'); + request.get(url, (error: any, response: any, body: any) => { + if (!error && response.statusCode === 200) { + this.parseServiceDescription(body, address, url); + } + }); + } + + private ondeviceup(host: any, name: any, location: any, type: any) { + if (this.castDevices.findIndex((item: any) => item.host === host && item.name === name && item.location === location && item.type === type) === -1) { + this.castDevices.push({ + name: name, + host: host, + location: location, + type: type + }); + if (this.devices.indexOf(host) === -1) { + this.devices.push(host); + } + if (name) { + this._win.webContents.executeJavaScript(`console.log('deviceFound','ip: ${host} name:${name}')`).catch((err: any) => console.error(err)); + console.log("deviceFound", host, name); + } + } else { + this._win.webContents.executeJavaScript(`console.log('deviceFound (added)','ip: ${host} name:${name}')`).catch((err: any) => console.error(err)); + console.log("deviceFound (added)", host, name); + } + } + + private parseServiceDescription(body: any, address: any, url: any) { + const parseString = require('xml2js').parseString; + parseString(body, (err: any, result: any) => { + if (!err && result && result.root && result.root.device) { + const device = result.root.device[0]; + console.log('device', device); + let devicetype = 'googlecast'; + console.log() + if (device.deviceType && device.deviceType.toString() === 'urn:schemas-upnp-org:device:MediaRenderer:1') { + devicetype = 'upnp'; + } + this.ondeviceup(address, device.friendlyName.toString(), url, devicetype); + } + }); + } + + + private loadMedia(client: any, song: any, artist: any, album: any, albumart: any, cb?: any) { + // const u = 'http://' + this.getIp() + ':' + server.address().port + '/'; + // const DefaultMediaReceiver : any = require('castv2-client').DefaultMediaReceiver; + client.launch(CiderReceiver, (err: any, player: any) => { + if (err) { + console.log(err); + return; + } + let media = { + // Here you can plug an URL to any mp4, webm, mp3 or jpg file with the proper contentType. + contentId: 'http://' + this.getIp() + ':9000/audio.wav', + contentType: 'audio/wav', + streamType: 'LIVE', // or LIVE + + // Title and cover displayed while buffering + metadata: { + type: 0, + metadataType: 3, + title: song ?? "", + albumName: album ?? "", + artist: artist ?? "", + images: [ + {url: albumart ?? ""}] + } + }; + + player.on('status', (status: any) => { + console.log('status broadcast playerState=%s', status); + }); + + console.log('app "%s" launched, loading media %s ...', player, media); + + player.load(media, { + autoplay: true + }, (err: any, status: any) => { + console.log('media loaded playerState=%s', status); + }); + + + client.getStatus((x: any, status: any) => { + if (status && status.volume) { + client.volume = status.volume.level; + client.muted = status.volume.muted; + client.stepInterval = status.volume.stepInterval; + } + }) + + // send websocket ip + + player.sendIp("ws://" + this.getIp() + ":26369"); + electron.ipcMain.on('stopGCast', (_event) => { + player.kill(); + }) + electron.app.on('before-quit', (_event) => { + player.kill(); + }) + + + }); + } + + private getIp(){ + let ip: string = ''; + let ip2: any = []; + let alias = 0; + const ifaces: any = os.networkInterfaces(); + for (let dev in ifaces) { + ifaces[dev].forEach((details: any) => { + if (details.family === 'IPv4' && !details.internal) { + if (!/(loopback|vmware|internal|hamachi|vboxnet|virtualbox)/gi.test(dev + (alias ? ':' + alias : ''))) { + if (details.address.substring(0, 8) === '192.168.' || + details.address.substring(0, 7) === '172.16.' || + details.address.substring(0, 3) === '10.' + ) { + if (!ip.startsWith('192.168.') || + (ip2.startsWith('192.168.') && !ip.startsWith('192.168.')) && + (ip2.startsWith('172.16.') && !ip.startsWith('192.168.') && !ip.startsWith('172.16.')) || + (ip2.startsWith('10.') && !ip.startsWith('192.168.') && !ip.startsWith('172.16.') && !ip.startsWith('10.')) + ){ip = details.address;} + ++alias; + } + } + } + }); + } + return ip; + } + + private stream(device: any, song: any, artist: any, album: any, albumart: any) { + let castMode = 'googlecast'; + let UPNPDesc = ''; + castMode = device.type; + UPNPDesc = device.location; + + let client; + if (castMode === 'googlecast') { + let client = new this.audioClient(); + client.volume = 100; + client.stepInterval = 0.5; + client.muted = false; + + client.connect(device.host, () => { + // console.log('connected, launching app ...', 'http://' + this.getIp() + ':' + server.address().port + '/'); + if (!this.connectedHosts[device.host]) { + this.connectedHosts[device.host] = client; + this.activeConnections.push(client); + } + this.loadMedia(client, song, artist, album, albumart); + }); + + client.on('close', () => { + console.info("Client Closed"); + for (let i = this.activeConnections.length - 1; i >= 0; i--) { + if (this.activeConnections[i] === client) { + this.activeConnections.splice(i, 1); + return; + } + } + }); + + client.on('error', (err: any) => { + console.log('Error: %s', err.message); + client.close(); + delete this.connectedHosts[device.host]; + }); + + } else { + // upnp devices + //try { + // client = new MediaRendererClient(UPNPDesc); + // const options = { + // autoplay: true, + // contentType: 'audio/x-wav', + // dlnaFeatures: 'DLNA.ORG_PN=-;DLNA.ORG_OP=01;DLNA.ORG_FLAGS=01700000000000000000000000000000', + // metadata: { + // title: 'Apple Music Electron', + // creator: 'Streaming ...', + // type: 'audio', // can be 'video', 'audio' or 'image' + // // url: 'http://' + getIp() + ':' + server.address().port + '/', + // // protocolInfo: 'DLNA.ORG_PN=MP3;DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01700000000000000000000000000000; + // } + // }; + + // client.load('http://' + getIp() + ':' + server.address().port + '/a.wav', options, function (err, _result) { + // if (err) throw err; + // console.log('playing ...'); + // }); + + // } catch (e) { + // } + } + } + + private async setupGCServer() { + return '' + } + + + /** + * Base Plugin Details (Eventually implemented into a GUI in settings) + */ + public name: string = 'Chromecast'; + public description: string = 'LastFM plugin for Cider'; + public version: string = '0.0.1'; + public author: string = 'vapormusic / Cider Collective'; + + /** + * Runs on plugin load (Currently run on application start) + */ + constructor(utils: { getApp: () => any; getStore: () => any; }) { + this._app = utils.getApp(); + this._store = utils.getStore() + } + + /** + * Runs on app ready + */ + onReady(win: any): void { + this._win = win; + electron.ipcMain.on('getKnownCastDevices', (event) => { + event.returnValue = this.castDevices + }); + + electron.ipcMain.on('performGCCast', (event, device, song, artist, album, albumart) => { + // this.setupGCServer().then( () => { + this._win.webContents.setAudioMuted(true); + console.log(device); + this.stream(device, song, artist, album, albumart); + // }) + }); + + electron.ipcMain.on('getChromeCastDevices', (_event, _data) => { + this.searchForGCDevices(); + }); + + electron.ipcMain.on('stopGCast', (_event) => { + this._win.webContents.setAudioMuted(false); + this.activeConnections.forEach((client: any) => { + try{ + client.stop(); + } catch(e){} + }) + this.activeConnections = []; + this.connectedHosts = {}; + + }) + } + + /** + * Runs on app stop + */ + onBeforeQuit(): void { + + } + + /** + * Runs on song change + * @param attributes Music Attributes + */ + onNowPlayingItemDidChange(attributes: any): void { + + } + +} \ No newline at end of file diff --git a/src/main/plugins/discordrpc.ts b/src/main/plugins/discordrpc.ts index f30c68c8..0a994ae2 100644 --- a/src/main/plugins/discordrpc.ts +++ b/src/main/plugins/discordrpc.ts @@ -1,4 +1,6 @@ import * as RPC from 'discord-rpc' +import {ipcMain} from "electron"; +import fetch from 'electron-fetch' export default class DiscordRichPresence { @@ -6,6 +8,8 @@ export default class DiscordRichPresence { * Private variables for interaction in plugins */ private static _store: any; + private _app: any; + private _attributes: any; private static _connection: boolean = false; /** @@ -29,6 +33,7 @@ export default class DiscordRichPresence { smallImageText: '', instance: false }; + private _activityCache: RPC.Presence = { details: '', state: '', @@ -58,7 +63,6 @@ export default class DiscordRichPresence { // Create the client this._client = new RPC.Client({transport: "ipc"}); - // Runs on Ready this._client.on('ready', () => { console.info(`[DiscordRPC][connect] Successfully Connected to Discord. Authed for user: ${this._client.user.id}.`); @@ -70,70 +74,87 @@ export default class DiscordRichPresence { this.disconnect() }); + // If Discord is closed, allow reconnecting + this._client.transport.once('close', () => { + console.info(`[DiscordRichPresence] Connection closed`); + this.disconnect() + }); + // Login to Discord this._client.login({clientId}) - .then(() => { - DiscordRichPresence._connection = true; - }) - .catch((e: any) => console.error(`[DiscordRichPresence][connect] ${e}`)); + .then(() => { + DiscordRichPresence._connection = true; + }) + .catch((e: any) => console.error(`[DiscordRichPresence][connect] ${e}`)); } /** * Disconnects from Discord RPC */ private disconnect() { - if (!this._client) return; + if (!this._client) { + return + } this._client.destroy().then(() => { DiscordRichPresence._connection = false; console.log('[DiscordRPC][disconnect] Disconnected from discord.') }).catch((e: any) => console.error(`[DiscordRPC][disconnect] ${e}`)); + + // Clean up, allow creating a new connection + this._client = null; } - /** - * Filter the Discord activity object - */ - private filterActivity(activity: any, attributes: any): Object { - - // Checks if the name is greater than 128 because some songs can be that long + /** + * Filter the Discord activity object + */ + private filterActivity(activity: any, attributes: any): Object { + + // Checks if the name is greater than 128 because some songs can be that long if (activity.details && activity.details.length > 128) { activity.details = activity.details.substring(0, 125) + '...' } - // Check large image - if (activity.largeImageKey === null || activity.largeImageKey === ""){ + // Check large image + if (activity.largeImageKey == null || activity.largeImageKey === "" || activity.largeImageKey.length > 256) { activity.largeImageKey = "cider"; } - // Timestamp - if (new Date(attributes.endTime).getTime() < 0) { - delete activity.startTime - delete activity.endTime - } + // Timestamp + if (new Date(attributes.endTime).getTime() < 0) { + delete activity.startTime + delete activity.endTime + } - // not sure - if (!attributes.artistName) { - delete activity.state; - } + // not sure + if (!attributes.artistName) { + delete activity.state; + } - if (!activity.largeImageText || activity.largeImageText.length < 2) { + if (!activity.largeImageText || activity.largeImageText.length < 2) { delete activity.largeImageText } - activity.buttons.forEach((key: {label: string, url: string}, _v: Number) => { - if (key.url.includes('undefined') || key.url.includes('no-id-found')) { + activity.buttons.forEach((key: { label: string, url: string }, _v: Number) => { + if (key.url.includes('undefined') || key.url.includes('no-id-found')) { activity.buttons.splice(key, 1); - } - }) - return activity - } + } + }) + return activity + } /** * Sets the activity of the client * @param {object} attributes */ private updateActivity(attributes: any) { - if (!this._client) return; + if (DiscordRichPresence._store.general.discord_rpc == 0) { + return + } + + if (!this._client) { + this.connect(DiscordRichPresence._store.general.discord_rpc == 1 ? '911790844204437504' : '886578863147192350') + } if (!DiscordRichPresence._connection) { this._client.clearActivity().catch((e: any) => console.error(`[DiscordRichPresence][clearActivity] ${e}`)); @@ -143,33 +164,32 @@ export default class DiscordRichPresence { this._activity = { details: attributes.name, state: `${attributes.artistName ? `by ${attributes.artistName}` : ''}`, - startTimestamp: attributes.startTime, + startTimestamp: Date.now() - (attributes?.durationInMillis - attributes?.remainingTime), endTimestamp: attributes.endTime, - largeImageKey: attributes.artwork.url.replace('{w}', '1024').replace('{h}', '1024'), + largeImageKey: attributes?.artwork?.url?.replace('{w}', '1024').replace('{h}', '1024'), largeImageText: attributes.albumName, instance: false, // Whether the activity is in a game session buttons: [ {label: "Listen on Cider", url: attributes.url.cider}, {label: "View on Apple Music", url: attributes.url.appleMusic}, - ] + ] //To change attributes.url => preload/cider-preload.js }; - this._activity = this.filterActivity(this._activity, attributes) + this._activity = this.filterActivity(this._activity, attributes) // Check if its pausing (false) or playing (true) if (!attributes.status) { if (DiscordRichPresence._store.general.discord_rpc_clear_on_pause) { this._client.clearActivity() - .catch((e: any) => console.error(`[DiscordRichPresence][clearActivity] ${e}`)); + .catch((e: any) => console.error(`[DiscordRichPresence][clearActivity] ${e}`)); } else { this._activity.smallImageKey = 'pause'; this._activity.smallImageText = 'Paused'; delete this._activity.endTimestamp; delete this._activity.startTimestamp; this._client.setActivity(this._activity) - .catch((e: any) => console.error(`[DiscordRichPresence][setActivity] ${e}`)); + .catch((e: any) => console.error(`[DiscordRichPresence][setActivity] ${e}`)); } - } else if (this._activity && this._activityCache !== this._activity && this._activity.details) { if (!DiscordRichPresence._store.general.discord_rpc_clear_on_pause) { this._activity.smallImageKey = 'play'; @@ -177,7 +197,7 @@ export default class DiscordRichPresence { } this._client.setActivity(this._activity) - .catch((e: any) => console.error(`[DiscordRichPresence][updateActivity] ${e}`)); + .catch((e: any) => console.error(`[DiscordRichPresence][updateActivity] ${e}`)); this._activityCache = this._activity; } @@ -190,17 +210,37 @@ export default class DiscordRichPresence { /** * Runs on plugin load (Currently run on application start) */ - constructor(_app: any, store: any) { - DiscordRichPresence._store = store + constructor(utils: { getStore: () => any; getApp: () => any; }) { + DiscordRichPresence._store = utils.getStore(); console.debug(`[Plugin][${this.name}] Loading Complete.`); + this._app = utils.getApp(); } /** * Runs on app ready */ onReady(_win: any): void { + let self = this this.connect((DiscordRichPresence._store.general.discord_rpc == 1) ? '911790844204437504' : '886578863147192350'); console.debug(`[Plugin][${this.name}] Ready.`); + ipcMain.on('updateRPCImage', (_event, imageurl) => { + if (!DiscordRichPresence._store.general.privateEnabled) { + fetch('https://api.cider.sh/v1/images', { + + method: 'POST', + body: JSON.stringify({url: imageurl}), + headers: { + 'Content-Type': 'application/json', + 'User-Agent': _win.webContents.getUserAgent() + }, + }) + .then(res => res.json()) + .then(function (json) { + self._attributes["artwork"]["url"] = json.url + self.updateActivity(self._attributes) + }) + } + }) } /** @@ -215,7 +255,10 @@ export default class DiscordRichPresence { * @param attributes Music Attributes (attributes.status = current state) */ onPlaybackStateDidChange(attributes: object): void { - this.updateActivity(attributes) + if (!DiscordRichPresence._store.general.privateEnabled) { + this._attributes = attributes + this.updateActivity(attributes) + } } /** @@ -223,6 +266,9 @@ export default class DiscordRichPresence { * @param attributes Music Attributes */ onNowPlayingItemDidChange(attributes: object): void { - this.updateActivity(attributes) + if (!DiscordRichPresence._store.general.privateEnabled) { + this._attributes = attributes + this.updateActivity(attributes) + } } } diff --git a/src/main/plugins/lastfm.ts b/src/main/plugins/lastfm.ts index 5d9adf66..5018c01b 100644 --- a/src/main/plugins/lastfm.ts +++ b/src/main/plugins/lastfm.ts @@ -15,6 +15,7 @@ export default class LastFMPlugin { private _app: any; private _lastfm: any; private _store: any; + private _timer: any; private authenticateFromFile() { let sessionData = require(this.sessionPath) @@ -77,64 +78,52 @@ export default class LastFMPlugin { } } - private async scrobbleSong(attributes: any) { - await new Promise(resolve => setTimeout(resolve, Math.round(attributes.durationInMillis * (this._store.lastfm.scrobble_after / 100)))); - const currentAttributes = attributes; + private scrobbleSong(attributes: any) { + if (this._timer) clearTimeout(this._timer); + var self = this; + this._timer = setTimeout(async () => { + const currentAttributes = attributes; - if (!this._lastfm || this._lastfm.cachedAttributes === attributes) { - return - } + if (!self._lastfm || self._lastfm.cachedAttributes === attributes) { + return + } - if (this._lastfm.cachedAttributes) { - if (this._lastfm.cachedAttributes.playParams.id === attributes.playParams.id) return; - } + if (self._lastfm.cachedAttributes) { + if (self._lastfm.cachedAttributes.playParams.id === attributes.playParams.id) return; + } - if (currentAttributes.status && currentAttributes === attributes) { - if (fs.existsSync(this.sessionPath)) { - // Scrobble playing song. - if (attributes.status === true) { - this._lastfm.track.scrobble({ - 'artist': this.filterArtistName(attributes.artistName), - 'track': attributes.name, - 'album': attributes.albumName, - 'albumArtist': this.filterArtistName(attributes.artistName), - 'timestamp': new Date().getTime() / 1000 - }, function (err: any, scrobbled: any) { - if (err) { - return console.error('[LastFM] An error occurred while scrobbling', err); - } + const artist = await this.getPrimaryArtist(attributes) + const album = this.getAlbumName(attributes) - console.log('[LastFM] Successfully scrobbled: ', scrobbled); - }); - this._lastfm.cachedAttributes = attributes + if (currentAttributes.status && currentAttributes === attributes) { + if (fs.existsSync(this.sessionPath)) { + // Scrobble playing song. + if (attributes.status === true) { + self._lastfm.track.scrobble({ + 'artist': artist, + 'track': attributes.name, + 'album': album, + 'albumArtist': artist, + 'timestamp': new Date().getTime() / 1000 + }, function (err: any, scrobbled: any) { + if (err) { + return console.error('[LastFM] An error occurred while scrobbling', err); + } + + console.log('[LastFM] Successfully scrobbled: ', scrobbled); + }); + self._lastfm.cachedAttributes = attributes + } + } else { + self.authenticate(); } } else { - this.authenticate(); + return console.log('[LastFM] Did not add ', attributes.name, '—', artist, 'because now playing a other song.'); } - } else { - return console.log('[LastFM] Did not add ', attributes.name, '—', this.filterArtistName(attributes.artistName), 'because now playing a other song.'); - } + }, Math.round(attributes.durationInMillis * Math.min((self._store.lastfm.scrobble_after / 100), 0.8))); } - private filterArtistName(artist: any) { - if (!this._store.lastfm.enabledRemoveFeaturingArtists) return artist; - - artist = artist.split(' '); - if (artist.includes('&')) { - artist.length = artist.indexOf('&'); - } - if (artist.includes('and')) { - artist.length = artist.indexOf('and'); - } - artist = artist.join(' '); - if (artist.includes(',')) { - artist = artist.split(',') - artist = artist[0] - } - return artist.charAt(0).toUpperCase() + artist.slice(1); - } - - private updateNowPlayingSong(attributes: any) { + private async updateNowPlayingSong(attributes: any) { if (!this._lastfm || this._lastfm.cachedNowPlayingAttributes === attributes || !this._store.lastfm.NowPlaying) { return } @@ -144,13 +133,16 @@ export default class LastFMPlugin { } if (fs.existsSync(this.sessionPath)) { + const artist = await this.getPrimaryArtist(attributes) + const album = this.getAlbumName(attributes) + // update Now Playing if (attributes.status === true) { this._lastfm.track.updateNowPlaying({ - 'artist': this.filterArtistName(attributes.artistName), + 'artist': artist, 'track': attributes.name, - 'album': attributes.albumName, - 'albumArtist': this.filterArtistName(attributes.artistName) + 'album': album, + 'albumArtist': artist }, function (err: any, nowPlaying: any) { if (err) { return console.error('[LastFM] An error occurred while updating nowPlayingSong', err); @@ -166,6 +158,44 @@ export default class LastFMPlugin { } } + private getAlbumName(attributes: any): string { + return attributes.albumName.replace(/ - Single| - EP/g, ''); + } + + private async getPrimaryArtist(attributes: any) { + const songId = attributes.playParams.catalogId || attributes.playParams.id + + if (!this._store.lastfm.enabledRemoveFeaturingArtists || !songId) return attributes.artistName; + + const res = await this._win.webContents.executeJavaScript(` + (async () => { + const subMk = await MusicKit.getInstance().api.v3.music("/v1/catalog/" + MusicKit.getInstance().storefrontId + "/songs/${songId}", { + include: { + songs: ["artists"] + } + }) + if (!subMk) console.error('[LastFM] Request failed: /v1/catalog/us/songs/${songId}') + return subMk.data + })() + `).catch(console.error) + if (!res) return attributes.artistName + + const data = res.data + if (!data.length) { + console.error(`[LastFM] Unable to locate song with id of ${songId}`) + return attributes.artistName; + } + + const artists = res.data[0].relationships.artists.data + if (!artists.length) { + console.error(`[LastFM] Unable to find artists related to the song with id of ${songId}`) + return attributes.artistName; + } + + const primaryArtist = artists[0] + return primaryArtist.attributes.name + } + /** * Base Plugin Details (Eventually implemented into a GUI in settings) */ @@ -177,10 +207,10 @@ export default class LastFMPlugin { /** * Runs on plugin load (Currently run on application start) */ - constructor(app: any, store: any) { - this._app = app; - this._store = store - electron.app.on('second-instance', (_e: any, argv: any) => { + constructor(utils: { getApp: () => any; getStore: () => any; }) { + this._app = utils.getApp(); + this._store = utils.getStore() + utils.getApp().on('second-instance', (_e: any, argv: any) => { // Checks if first instance is authorized and if second instance has protocol args argv.forEach((value: any) => { if (value.includes('auth')) { @@ -229,25 +259,20 @@ export default class LastFMPlugin { console.log('Example plugin stopped'); } - /** - * Runs on playback State Change - * @param attributes Music Attributes (attributes.status = current state) - */ - onPlaybackStateDidChange(attributes: object): void { - this.scrobbleSong(attributes) - this.updateNowPlayingSong(attributes) - } - /** * Runs on song change * @param attributes Music Attributes */ - onNowPlayingItemDidChange(attributes: object): void { - if (!this._store.lastfm.filterLoop){ - this._lastfm.cachedNowPlayingAttributes = false; - this._lastfm.cachedAttributes = false} - this.scrobbleSong(attributes) - this.updateNowPlayingSong(attributes) + nowPlayingItemDidChangeLastFM(attributes: any): void { + if (!this._store.general.privateEnabled) { + attributes.status = true + if (!this._store.lastfm.filterLoop) { + this._lastfm.cachedNowPlayingAttributes = false; + this._lastfm.cachedAttributes = false + } + this.updateNowPlayingSong(attributes) + this.scrobbleSong(attributes) + } } -} \ No newline at end of file +} diff --git a/src/main/plugins/menubar.ts b/src/main/plugins/menubar.ts index ec484b40..857d9461 100644 --- a/src/main/plugins/menubar.ts +++ b/src/main/plugins/menubar.ts @@ -1,4 +1,5 @@ import {app, Menu, shell} from "electron"; +import {utils} from "../base/utils"; export default class Thumbar { /** @@ -14,7 +15,7 @@ export default class Thumbar { public name: string = 'Menubar Plugin'; public description: string = 'Creates the menubar'; public version: string = '1.0.0'; - public author: string = 'Core / Quack'; + public author: string = 'Core / Quacksire'; /** * Thumbnail Toolbar Assets @@ -34,19 +35,28 @@ export default class Thumbar { * @private */ private isMac: boolean = process.platform === 'darwin'; - private menubarTemplate: any = [ + private _menuTemplate: any = [ { label: app.getName(), submenu: [ - { role: 'about' }, - { type: 'separator' }, - { role: 'services' }, - { type: 'separator' }, - { role: 'hide' }, - { role: 'hideOthers' }, - { role: 'unhide' }, - { type: 'separator' }, - { role: 'quit' } + { + label: 'About', + click: () => this._win.webContents.executeJavaScript(`app.appRoute('about')`) + }, + {type: 'separator'}, + { + label: 'Settings', + accelerator: 'CommandOrControl+,', + click: () => this._win.webContents.executeJavaScript(`app.appRoute('settings')`) + }, + {type: 'separator'}, + {role: 'services'}, + {type: 'separator'}, + {role: 'hide'}, + {role: 'hideOthers'}, + {role: 'unhide'}, + {type: 'separator'}, + {role: 'quit'} ] }, { @@ -67,15 +77,30 @@ export default class Thumbar { label: 'Window', submenu: [ {role: 'minimize'}, + { + label: 'Show', + click: () => utils.getWindow().show() + }, {role: 'zoom'}, ...(this.isMac ? [ {type: 'separator'}, {role: 'front'}, - {type: 'separator'}, - {role: 'window'} + {role: 'close'}, ] : [ - {role: 'close'} + {role: 'close'}, ]), + + { + label: 'Edit', + submenu: [ + {role: 'undo'}, + {role: 'redo'}, + {type: 'separator'}, + {role: 'cut'}, + {role: 'copy'}, + {role: 'paste'}, + ] + }, {type: 'separator'}, { label: 'Web Remote', @@ -89,10 +114,11 @@ export default class Thumbar { click: () => this._win.webContents.executeJavaScript(`app.modals.audioSettings = true`) }, { - label: 'Settings', - accelerator: 'CommandOrControl+,', - click: () => this._win.webContents.executeJavaScript(`app.appRoute('settings')`) + label: 'Plug-in Menu', + accelerator: 'CommandOrControl+Shift+P', + click: () => this._win.webContents.executeJavaScript(`app.modals.pluginMenu = true`) } + ] }, { @@ -101,7 +127,7 @@ export default class Thumbar { { label: 'Pause / Play', accelerator: 'Space', - click: () => this._win.webContents.executeJavaScript(`MusicKitInterop.playPause()`) + click: () => this._win.webContents.executeJavaScript(`app.SpacePause()`) }, { label: 'Next', @@ -113,7 +139,7 @@ export default class Thumbar { accelerator: 'CommandOrControl+Left', click: () => this._win.webContents.executeJavaScript(`MusicKitInterop.previous()`) }, - { type: 'separator' }, + {type: 'separator'}, { label: 'Volume Up', accelerator: 'CommandOrControl+Up', @@ -123,6 +149,12 @@ export default class Thumbar { label: 'Volume Down', accelerator: 'CommandOrControl+Down', click: () => this._win.webContents.executeJavaScript(`app.volumeDown()`) + }, + {type: 'separator'}, + { + label: 'Cast To Devices', + accelerator: 'CommandOrControl+Shift+C', + click: () => this._win.webContents.executeJavaScript(`app.modals.castMenu = true`) } ] }, @@ -151,10 +183,6 @@ export default class Thumbar { label: 'GitHub Wiki', click: () => shell.openExternal("https://github.com/ciderapp/Cider/wiki/Troubleshooting").catch(console.error) }, - { - label: 'About', - click: () => this._win.webContents.executeJavaScript(`app.appRoute('about')`) - }, {type: 'separator'}, { label: 'Report a...', @@ -199,9 +227,9 @@ export default class Thumbar { /** * Runs on plugin load (Currently run on application start) */ - constructor(app: any, store: any) { - this._app = app; - this._store = store + constructor(utils: { getApp: () => any; getStore: () => any; }) { + this._app = utils.getApp(); + this._store = utils.getStore(); console.debug(`[Plugin][${this.name}] Loading Complete.`); } @@ -210,7 +238,8 @@ export default class Thumbar { */ onReady(win: Electron.BrowserWindow): void { this._win = win; - Menu.setApplicationMenu(Menu.buildFromTemplate(this.menubarTemplate)) + const menu = Menu.buildFromTemplate(this._menuTemplate); + Menu.setApplicationMenu(menu) } /** diff --git a/src/main/plugins/mpris.ts b/src/main/plugins/mpris.ts index 31504a09..25730ee9 100644 --- a/src/main/plugins/mpris.ts +++ b/src/main/plugins/mpris.ts @@ -1,12 +1,11 @@ // @ts-ignore import * as Player from 'mpris-service'; -export default class MPRIS { +export default class mpris { /** * Private variables for interaction in plugins */ - private _win: any; - private _app: any; + private static utils: any; /** * Base Plugin Details (Eventually implemented into a GUI in settings) @@ -19,8 +18,8 @@ export default class MPRIS { /** * MPRIS Service */ - private mpris: any; - private mprisEvents: Object = { + private static player: Player.Player; + private static mprisEvents: Object = { "playpause": "playPause", "play": "play", "pause": "pause", @@ -34,13 +33,12 @@ export default class MPRIS { /** * Runs a media event - * @param type - pausePlay, nextTrack, PreviousTrack + * @param type - pausePlay, next, previous * @private */ - private runMediaEvent(type: string) { - if (this._win) { - this._win.webContents.executeJavaScript(`MusicKitInterop.${type}()`).catch(console.error) - } + private static runMediaEvent(type: string) { + console.debug(`[Plugin][${this.name}] ${type}.`); + mpris.utils.getWindow().webContents.executeJavaScript(`MusicKitInterop.${type}()`).catch(console.error) } /** @@ -60,91 +58,89 @@ export default class MPRIS { /** * Connects to MPRIS Service */ - @MPRIS.linuxOnly - private connect() { - this.mpris = Player({ - name: 'Cider', + private static connect() { + + const player = Player({ + name: 'cider', identity: 'Cider', supportedUriSchemes: [], supportedMimeTypes: [], supportedInterfaces: ['player'] }); - this.mpris = Object.assign(this.mpris, { - canQuit: true, - canControl: true, - canPause: true, - canPlay: true, - canGoNext: true, - active: true - }) + console.debug(`[Plugin][${mpris.name}] Successfully connected.`); const pos_atr = {durationInMillis: 0}; - this.mpris.getPosition = function () { + player.getPosition = function () { const durationInMicro = pos_atr.durationInMillis * 1000; const percentage = parseFloat("0") || 0; return durationInMicro * percentage; } - for (const [key, value] of Object.entries(this.mprisEvents)) { - this.mpris.on(key, () => { - this.runMediaEvent(value) + for (const [key, value] of Object.entries(mpris.mprisEvents)) { + player.on(key, function () { + mpris.runMediaEvent(value) }); } + + player.on('quit', function () { + process.exit(); + }); + + mpris.player = player; } /** - * Update MPRIS Player Attributes + * Update M.P.R.I.S Player Attributes */ - @MPRIS.linuxOnly - private updatePlayer(attributes: any) { + private static updatePlayer(attributes: any) { const MetaData = { - 'mpris:trackid': this.mpris.objectPath(`track/${attributes.playParams.id.replace(/[.]+/g, "")}`), + 'mpris:trackid': mpris.player.objectPath(`track/${attributes.playParams.id.replace(/[.]+/g, "")}`), 'mpris:length': attributes.durationInMillis * 1000, // In microseconds 'mpris:artUrl': (attributes.artwork.url.replace('/{w}x{h}bb', '/512x512bb')).replace('/2000x2000bb', '/35x35bb'), 'xesam:title': `${attributes.name}`, 'xesam:album': `${attributes.albumName}`, - 'xesam:artist': [`${attributes.artistName}`,], + 'xesam:artist': [`${attributes.artistName}`], 'xesam:genre': attributes.genreNames } - if (this.mpris.metadata["mpris:trackid"] === MetaData["mpris:trackid"]) { + if (mpris.player.metadata["mpris:trackid"] === MetaData["mpris:trackid"]) { return } - this.mpris.metadata = MetaData - + mpris.player.metadata = MetaData; } /** - * Update MPRIS Player State + * Update M.P.R.I.S Player State * @private * @param attributes */ - @MPRIS.linuxOnly - private updatePlayerState(attributes: any) { - - let status = 'Stopped'; - if (attributes.status) { - status = 'Playing'; - } else if (attributes.status === false) { - status = 'Paused'; + private static updatePlayerState(attributes: any) { + switch (attributes.status) { + case true: // Playing + mpris.player.playbackStatus = Player.PLAYBACK_STATUS_PLAYING; + break; + case false: // Paused + mpris.player.playbackStatus = Player.PLAYBACK_STATUS_PAUSED; + break; + default: + mpris.player.playbackStatus = Player.PLAYBACK_STATUS_STOPPED; + break } - - if (this.mpris.playbackStatus === status) { - return - } - this.mpris.playbackStatus = status; } /** * Clear state * @private */ - private clearState() { - this.mpris.metadata = {'mpris:trackid': '/org/mpris/MediaPlayer2/TrackList/NoTrack'} - this.mpris.playbackStatus = 'Stopped'; + private static clearState() { + if (!mpris.player) { + return + } + mpris.player.metadata = {'mpris:trackid': '/org/mpris/MediaPlayer2/TrackList/NoTrack'} + mpris.player.playbackStatus = Player.PLAYBACK_STATUS_STOPPED; } @@ -155,42 +151,55 @@ export default class MPRIS { /** * Runs on plugin load (Currently run on application start) */ - constructor(app: any, _store: any) { - this._app = app; - console.debug(`[Plugin][${this.name}] Loading Complete.`); + constructor(utils: any) { + mpris.utils = utils + + console.debug(`[Plugin][${mpris.name}] Loading Complete.`); } /** * Runs on app ready */ - onReady(win: any): void { - this._win = win; - console.debug(`[Plugin][${this.name}] Ready.`); - this.connect() + @mpris.linuxOnly + onReady(_: any): void { + console.debug(`[Plugin][${mpris.name}] Ready.`); + } + + /** + * Renderer ready + */ + @mpris.linuxOnly + onRendererReady(): void { + mpris.connect() } /** * Runs on app stop */ + @mpris.linuxOnly onBeforeQuit(): void { - console.debug(`[Plugin][${this.name}] Stopped.`); - this.clearState() + console.debug(`[Plugin][${mpris.name}] Stopped.`); + mpris.clearState() } /** * Runs on playback State Change * @param attributes Music Attributes (attributes.status = current state) */ + @mpris.linuxOnly onPlaybackStateDidChange(attributes: object): void { - this.updatePlayerState(attributes) + console.debug(`[Plugin][${mpris.name}] onPlaybackStateDidChange.`); + mpris.updatePlayerState(attributes) } /** * Runs on song change * @param attributes Music Attributes */ + @mpris.linuxOnly onNowPlayingItemDidChange(attributes: object): void { - this.updatePlayer(attributes); + console.debug(`[Plugin][${mpris.name}] onMetadataDidChange.`); + mpris.updatePlayer(attributes); } } diff --git a/src/main/plugins/thumbar.ts b/src/main/plugins/thumbar.ts index 2ba1f1a9..5f504878 100644 --- a/src/main/plugins/thumbar.ts +++ b/src/main/plugins/thumbar.ts @@ -47,7 +47,6 @@ export default class Thumbar { /** * Update the thumbnail toolbar */ - @Thumbar.windowsOnly private updateButtons(attributes: any) { console.log(attributes) @@ -94,14 +93,15 @@ export default class Thumbar { /** * Runs on plugin load (Currently run on application start) */ - constructor(app: any, _store: any) { - this._app = app; + constructor(utils: { getApp: () => any; }) { + this._app = utils.getApp(); console.debug(`[Plugin][${this.name}] Loading Complete.`); } /** * Runs on app ready */ + @Thumbar.windowsOnly onReady(win: Electron.BrowserWindow): void { this._win = win; console.debug(`[Plugin][${this.name}] Ready.`); @@ -110,6 +110,7 @@ export default class Thumbar { /** * Runs on app stop */ + @Thumbar.windowsOnly onBeforeQuit(): void { console.debug(`[Plugin][${this.name}] Stopped.`); } @@ -118,6 +119,7 @@ export default class Thumbar { * Runs on playback State Change * @param attributes Music Attributes (attributes.status = current state) */ + @Thumbar.windowsOnly onPlaybackStateDidChange(attributes: object): void { this.updateButtons(attributes) } @@ -126,6 +128,7 @@ export default class Thumbar { * Runs on song change * @param attributes Music Attributes */ + @Thumbar.windowsOnly onNowPlayingItemDidChange(attributes: object): void { this.updateButtons(attributes) } diff --git a/src/main/plugins/webNowPlaying.ts b/src/main/plugins/webNowPlaying.ts new file mode 100644 index 00000000..b477d649 --- /dev/null +++ b/src/main/plugins/webNowPlaying.ts @@ -0,0 +1,244 @@ +import * as WebSocket from 'ws'; + +/** + * 0-pad a number. + * @param {Number} number + * @param {Number} length + * @returns String + */ +const pad = (number: number, length: number) => String(number).padStart(length, '0'); + +/** + * Convert seconds to a time string acceptable to Rainmeter + * https://github.com/tjhrulz/WebNowPlaying-BrowserExtension/blob/master/WebNowPlaying.js#L50-L59 + * @param {Number} timeInSeconds + * @returns String + */ +const convertTimeToString = (timeInSeconds: number) => { + const timeInMinutes = Math.floor(timeInSeconds / 60); + if (timeInMinutes < 60) { + return timeInMinutes + ":" + pad(Math.floor(timeInSeconds % 60), 2); + } + return Math.floor(timeInMinutes / 60) + ":" + pad(Math.floor(timeInMinutes % 60), 2) + ":" + pad(Math.floor(timeInSeconds % 60), 2); +} + +export default class WebNowPlaying { + /** + * Base Plugin Details (Eventually implemented into a GUI in settings) + */ + public name: string = 'WebNowPlaying'; + public description: string = 'Song info and playback control for the Rainmeter WebNowPlaying plugin.'; + public version: string = '1.0.1'; + public author: string = 'Zennn '; + + private _win: any; + private ws?: WebSocket; + private wsapiConn?: WebSocket; + private playerName: string = 'Cider'; + + constructor() { + console.debug(`[Plugin][${this.name}] Loading Complete.`); + } + + /** + * Blocks non-windows systems from running this plugin + * @private + * @decorator + */ + private static windowsOnly(_target: any, _propertyKey: string, descriptor: PropertyDescriptor) { + if (process.platform !== 'win32') { + descriptor.value = () => void 0; + } + } + + private sendSongInfo(attributes: any) { + if (!this.ws || this.ws.readyState !== WebSocket.OPEN) return; + + const fields = ['STATE', 'TITLE', 'ARTIST', 'ALBUM', 'COVER', 'DURATION', 'POSITION', 'VOLUME', 'REPEAT', 'SHUFFLE']; + fields.forEach((field) => { + try { + let value: any = ''; + switch (field) { + case 'STATE': + value = attributes.status ? 1 : 2; + break; + case 'TITLE': + value = attributes.name; + break; + case 'ARTIST': + value = attributes.artistName; + break; + case 'ALBUM': + value = attributes.albumName; + break; + case 'COVER': + value = attributes.artwork.url.replace('{w}', attributes.artwork.width).replace('{h}', attributes.artwork.height); + break; + case 'DURATION': + value = convertTimeToString(attributes.durationInMillis / 1000); + break; + case 'POSITION': + value = convertTimeToString((attributes.durationInMillis - attributes.remainingTime) / 1000); + break; + case 'VOLUME': + value = attributes.volume * 100; + break; + case 'REPEAT': + value = attributes.repeatMode; + break; + case 'SHUFFLE': + value = attributes.shuffleMode; + break; + } + this.ws?.send(`${field}:${value}`); + } catch (error) { + if (this.ws?.readyState === WebSocket.OPEN) { + this.ws.send(`Error:Error updating ${field} for ${this.playerName}`); + this.ws.send(`ErrorD:${error}`); + } + } + }); + } + + private fireEvent(evt: WebSocket.MessageEvent) { + if (!evt.data) return; + const data = evt.data; + + let value: string = ''; + if (data.split(/ (.+)/).length > 1) { + value = data.split(/ (.+)/)[1]; + } + const eventName = data.split(' ')[0].toLowerCase(); + + try { + switch (eventName) { + case 'playpause': + this._win.webContents.executeJavaScript('MusicKitInterop.playPause()').catch(console.error); + break; + case 'next': + this._win.webContents.executeJavaScript('MusicKitInterop.next()').catch(console.error); + break; + case 'previous': + this._win.webContents.executeJavaScript('MusicKitInterop.previous()').catch(console.error); + break; + case 'setposition': + this._win.webContents.executeJavaScript(`MusicKit.getInstance().seekToTime(${parseFloat(value)})`); + break; + case 'setvolume': + this._win.webContents.executeJavaScript(`MusicKit.getInstance().volume = ${parseFloat(value) / 100}`); + break; + case 'repeat': + this._win.webContents.executeJavaScript('wsapi.toggleRepeat()').catch(console.error); + break; + case 'shuffle': + this._win.webContents.executeJavaScript('wsapi.toggleShuffle()').catch(console.error); + break; + case 'togglethumbsup': + // not implemented + break; + case 'togglethumbsdown': + // not implemented + break; + case 'rating': + // not implemented + break; + } + } catch (error) { + console.debug(error); + if (this.ws?.readyState === WebSocket.OPEN) { + this.ws.send(`Error:Error sending event to ${this.playerName}`); + this.ws.send(`ErrorD:${error}`); + } + } + } + + /** + * Runs on app ready + */ + @WebNowPlaying.windowsOnly + public onReady(win: any) { + this._win = win; + + // Connect to Rainmeter plugin and retry on disconnect. + const init = () => { + try { + this.ws = new WebSocket('ws://127.0.0.1:8974/'); + let retry: NodeJS.Timeout; + this.ws.onopen = () => { + console.info('[WebNowPlaying] Connected to Rainmeter'); + this.ws?.send(`PLAYER:${this.playerName}`); + }; + + this.ws.onclose = () => { + clearTimeout(retry); + retry = setTimeout(init, 2000); + }; + + this.ws.onerror = () => { + clearTimeout(retry); + this.ws?.close(); + }; + + this.ws.onmessage = this.fireEvent?.bind(this); + } catch (error) { + console.error(error); + } + }; + + init(); + + // Connect to wsapi. Only used to update progress. + try { + this.wsapiConn = new WebSocket('ws://127.0.0.1:26369/'); + + this.wsapiConn.onopen = () => { + console.info('[WebNowPlaying] Connected to wsapi'); + }; + + this.wsapiConn.onmessage = (evt: WebSocket.MessageEvent) => { + const response = JSON.parse(evt.data); + if (response.type === 'playbackStateUpdate') { + this.sendSongInfo(response.data); + } + }; + } catch (error) { + console.error(error); + } + + console.debug(`[Plugin][${this.name}] Ready.`); + } + + /** + * Runs on app stop + */ + @WebNowPlaying.windowsOnly + public onBeforeQuit() { + if (this.ws) { + this.ws.send('STATE:0'); + this.ws.onclose = () => void 0; // disable onclose handler first to stop it from retrying + this.ws.close(); + } + if (this.wsapiConn) { + this.wsapiConn.close(); + } + console.debug(`[Plugin][${this.name}] Stopped.`); + } + + /** + * Runs on playback State Change + * @param attributes Music Attributes (attributes.status = current state) + */ + @WebNowPlaying.windowsOnly + public onPlaybackStateDidChange(attributes: any) { + this.sendSongInfo(attributes); + } + + /** + * Runs on song change + * @param attributes Music Attributes + */ + @WebNowPlaying.windowsOnly + public onNowPlayingItemDidChange(attributes: any) { + this.sendSongInfo(attributes); + } +} diff --git a/src/preload/cider-preload.js b/src/preload/cider-preload.js index 31b6f662..9074ffe1 100644 --- a/src/preload/cider-preload.js +++ b/src/preload/cider-preload.js @@ -7,9 +7,10 @@ let cache = {playParams: {id: 0}, status: null, remainingTime: 0}, const MusicKitInterop = { init: function () { MusicKit.getInstance().addEventListener(MusicKit.Events.playbackStateDidChange, () => { - if (MusicKitInterop.filterTrack(MusicKitInterop.getAttributes(), true, false)) { - global.ipcRenderer.send('playbackStateDidChange', MusicKitInterop.getAttributes()) - ipcRenderer.send('wsapi-updatePlaybackState', MusicKitInterop.getAttributes()); + const attributes = MusicKitInterop.getAttributes() + if (MusicKitInterop.filterTrack(attributes, true, false)) { + global.ipcRenderer.send('playbackStateDidChange', attributes) + global.ipcRenderer.send('wsapi-updatePlaybackState', attributes); // if (typeof _plugins != "undefined") { // _plugins.execute("OnPlaybackStateChanged", {Attributes: MusicKitInterop.getAttributes()}) // } @@ -22,9 +23,19 @@ const MusicKitInterop = { }); /** wsapi */ - MusicKit.getInstance().addEventListener(MusicKit.Events.nowPlayingItemDidChange, () => { - if (MusicKitInterop.filterTrack(MusicKitInterop.getAttributes(), false, true) || !app.cfg.lastfm.filterLoop) { - global.ipcRenderer.send('nowPlayingItemDidChange', MusicKitInterop.getAttributes()); + MusicKit.getInstance().addEventListener(MusicKit.Events.nowPlayingItemDidChange, async () => { + console.log('nowPlayingItemDidChange') + const attributes = MusicKitInterop.getAttributes() + const trackFilter = MusicKitInterop.filterTrack(attributes, false, true) + + if (trackFilter) { + global.ipcRenderer.send('nowPlayingItemDidChange', attributes); + } + + // LastFM's Custom Call + await MusicKitInterop.modifyNamesOnLocale(); + if (trackFilter || !app.cfg.lastfm.filterLoop) { + global.ipcRenderer.send('nowPlayingItemDidChangeLastFM', attributes); } }); @@ -36,7 +47,28 @@ const MusicKitInterop = { console.warn(`[mediaPlaybackError] ${e}`); }) }, + async modifyNamesOnLocale() { + if (app.mklang === '' || app.mklang == null) { + return; + } + const mk = MusicKit.getInstance() + const nowPlayingItem = mk.nowPlayingItem; + if ((nowPlayingItem?._songId ?? nowPlayingItem?.songId) == null){ + return; + } + const id = nowPlayingItem?._songId ?? (nowPlayingItem?.songId ?? nowPlayingItem?.id) + if (id != null && id !== -1) { + try{ + const query = await mk.api.v3.music(`/v1${(((nowPlayingItem?._songId ?? nowPlayingItem?.songId) != null) && ((nowPlayingItem?._songId ?? nowPlayingItem?.songId) !== -1)) ? `/catalog/${mk.storefrontId}/` : `/me/library/`}songs/${id}?l=${app.mklang}`); + if (query?.data?.data[0]){ + let attrs = query?.data?.data[0]?.attributes; + if (attrs?.name) { nowPlayingItem.attributes.name = attrs?.name ?? ''} + if (attrs?.albumName) { nowPlayingItem.attributes.albumName = attrs?.albumName ?? ''} + if (attrs?.artistName) { nowPlayingItem.attributes.artistName = attrs?.artistName ?? ''} + }} catch (e) { } + } else {} + }, getAttributes: function () { const mk = MusicKit.getInstance() const nowPlayingItem = mk.nowPlayingItem; @@ -44,15 +76,15 @@ const MusicKitInterop = { const remainingTimeExport = mk.currentPlaybackTimeRemaining; const attributes = (nowPlayingItem != null ? nowPlayingItem.attributes : {}); - attributes.status = isPlayingExport ?? false; - attributes.name = attributes?.name ?? 'No Title Found'; + attributes.status = isPlayingExport ?? null; + attributes.name = attributes?.name ?? 'no-title-found'; attributes.artwork = attributes?.artwork ?? {url: ''}; attributes.artwork.url = (attributes?.artwork?.url ?? '').replace(`{f}`, "png"); attributes.playParams = attributes?.playParams ?? {id: 'no-id-found'}; attributes.playParams.id = attributes?.playParams?.id ?? 'no-id-found'; attributes.url = { - cider: `cider://play/s/${nowPlayingItem?._songId ?? 'no-id-found'}`, - appleMusic: attributes.websiteUrl ? attributes.websiteUrl : `https://music.apple.com/${mk.storefrontId}/song/${nowPlayingItem?._songId ?? 'no-id-found'}` + cider: `https://cider.sh/link?play/s/${nowPlayingItem?._songId ?? (nowPlayingItem?.songId ??'no-id-found')}`, + appleMusic: attributes.websiteUrl ? attributes.websiteUrl : `https://music.apple.com/${mk.storefrontId}/song/${nowPlayingItem?._songId ?? (nowPlayingItem?.songId ??'no-id-found')}` } if (attributes.playParams.id === 'no-id-found') { attributes.playParams.id = nowPlayingItem?.id ?? 'no-id-found'; @@ -69,12 +101,12 @@ const MusicKitInterop = { attributes?.playParams?.id === cache.playParams.id ? Date.now() + attributes?.remainingTime : attributes?.startTime + attributes?.durationInMillis - ); + ); return attributes; }, filterTrack: function (a, playbackCheck, mediaCheck) { - if (a.title === "No Title Found" || a.playParams.id === "no-id-found") { + if (a.name === 'no-title-found' || a.playParams.id === "no-id-found") { return; } else if (mediaCheck && a.playParams.id === cache.playParams.id) { return; @@ -89,7 +121,7 @@ const MusicKitInterop = { }, play: () => { - MusicKit.getInstance().play().then(r => console.log(`[MusicKitInterop.play] ${r}`)); + MusicKit.getInstance().play().catch(console.error); }, pause: () => { @@ -100,15 +132,22 @@ const MusicKitInterop = { if (MusicKit.getInstance().isPlaying) { MusicKit.getInstance().pause(); } else if (MusicKit.getInstance().nowPlayingItem != null) { - MusicKit.getInstance().play().then(r => console.log(`[MusicKitInterop.playPause] Playing ${r}`)); + MusicKit.getInstance().play().catch(console.error); } }, next: () => { + // try { + // app.prevButtonBackIndicator = false; + // } catch (e) { } + // if (MusicKit.getInstance().queue.nextPlayableItemIndex != -1 && MusicKit.getInstance().queue.nextPlayableItemIndex != null) + // MusicKit.getInstance().changeToMediaAtIndex(MusicKit.getInstance().queue.nextPlayableItemIndex); MusicKit.getInstance().skipToNextItem().then(r => console.log(`[MusicKitInterop.next] Skipping to Next ${r}`)); }, previous: () => { + // if (MusicKit.getInstance().queue.previousPlayableItemIndex != -1 && MusicKit.getInstance().queue.previousPlayableItemIndex != null) + // MusicKit.getInstance().changeToMediaAtIndex(MusicKit.getInstance().queue.previousPlayableItemIndex); MusicKit.getInstance().skipToPreviousItem().then(r => console.log(`[MusicKitInterop.previous] Skipping to Previous ${r}`)); } diff --git a/src/renderer/assets/audiolabs/classic.png b/src/renderer/assets/audiolabs/classic.png new file mode 100644 index 00000000..18d4808c Binary files /dev/null and b/src/renderer/assets/audiolabs/classic.png differ diff --git a/src/renderer/assets/audiolabs/expansive.png b/src/renderer/assets/audiolabs/expansive.png new file mode 100644 index 00000000..ff20768d Binary files /dev/null and b/src/renderer/assets/audiolabs/expansive.png differ diff --git a/src/renderer/assets/audiolabs/focused.png b/src/renderer/assets/audiolabs/focused.png new file mode 100644 index 00000000..dce2836f Binary files /dev/null and b/src/renderer/assets/audiolabs/focused.png differ diff --git a/src/renderer/assets/audiolabs/minimal.png b/src/renderer/assets/audiolabs/minimal.png new file mode 100644 index 00000000..62dea0cd Binary files /dev/null and b/src/renderer/assets/audiolabs/minimal.png differ diff --git a/src/renderer/assets/cider-round.svg b/src/renderer/assets/cider-round.svg new file mode 100644 index 00000000..f27dc45d --- /dev/null +++ b/src/renderer/assets/cider-round.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/renderer/assets/feather/external-link.svg b/src/renderer/assets/feather/external-link.svg new file mode 100644 index 00000000..6236df3e --- /dev/null +++ b/src/renderer/assets/feather/external-link.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/assets/github.svg b/src/renderer/assets/github.svg new file mode 100644 index 00000000..2180f759 --- /dev/null +++ b/src/renderer/assets/github.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/renderer/assets/music.svg b/src/renderer/assets/music.svg new file mode 100644 index 00000000..7bee2f7e --- /dev/null +++ b/src/renderer/assets/music.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/audio/audio.js b/src/renderer/audio/audio.js index c22ef29c..07e6b89b 100644 --- a/src/renderer/audio/audio.js +++ b/src/renderer/audio/audio.js @@ -1,196 +1,944 @@ -var CiderAudio = { - context : null, - source : null, - audioNodes : { - gainNode : null, - spatialNode : null, +const CiderAudio = { + context: null, + source: null, + audioNodes: { + gainNode: null, + spatialNode: null, spatialInput: null, - audioBands : null, - preampNode : null, + audioBands: null, vibrantbassNode: null, llpw: null, - llpwEnabled: null + analogWarmth: null, + recorderNode: null, }, + ccON: false, + mediaRecorder: null, init: function (cb = function () { }) { //AudioOutputs.fInit = true; - searchInt = setInterval(function () { - if (document.getElementById("apple-music-player")) { - //AudioOutputs.eqReady = true; - document.getElementById("apple-music-player").crossOrigin = "anonymous"; - CiderAudio.connectContext(document.getElementById("apple-music-player"), 0); - - cb(); - clearInterval(searchInt); - } + let searchInt = setInterval(function () { + if (document.getElementById("apple-music-player")) { + //AudioOutputs.eqReady = true; + document.getElementById("apple-music-player").crossOrigin = "anonymous"; + CiderAudio.connectContext(document.getElementById("apple-music-player"), 0); + + cb(); + clearInterval(searchInt); + } }, 1000); }, - off: function(){ - try{ - try{ - CiderAudio.audioNodes.gainNode.disconnect(); } catch(e){} - try{ CiderAudio.audioNodes.spatialNode.disconnect();} catch(e){} - try{ - CiderAudio.audioNodes.preampNode.disconnect(); - for (var i of CiderAudio.audioNodes.llpw){ - i.disconnect(); - } - for (var i of CiderAudio.audioNodes.vibrantbassNode){ - i.disconnect(); - } - for (var i of CiderAudio.audioNodes.audioBands){ - i.disconnect(); - } - } catch(e){} - try{ - CiderAudio.audioNodes = { - gainNode : null, - spatialNode : null, - spatialInput: null, - audioBands : null, - preampNode : null, - vibrantbassNode: null, - } - } catch (e) {} - CiderAudio.source.connect(CiderAudio.context.destination);} catch(e){} + off: function () { + try { + CiderAudio.hierarchical_unloading(); + try { + CiderAudio.audioNodes = { + gainNode: null, + spatialNode: null, + spatialInput: null, + audioBands: null, + vibrantbassNode: null, + llpw: null, + analogWarmth: null + } + } catch (e) { } + CiderAudio.source.connect(CiderAudio.context.destination); + } catch (e) { } }, - connectContext: function (mediaElem){ - if (!CiderAudio.context){ - CiderAudio.context = new (window.AudioContext || window.webkitAudioContext); + connectContext: function (mediaElem) { + if (!CiderAudio.context) { + CiderAudio.context = new window.AudioContext({sampleRate: 96000}); // Don't ever remove the sample rate arg. Ask Maikiwi. } - if (!CiderAudio.source){ - CiderAudio.source = CiderAudio.context.createMediaElementSource(mediaElem); - } else {try{CiderAudio.source.disconnect(CiderAudio.context.destination)}catch(e){}} + if (!CiderAudio.source) { + CiderAudio.source = CiderAudio.context.createMediaElementSource(mediaElem); + } else { try { CiderAudio.source.disconnect(CiderAudio.context.destination) } catch (e) { } } CiderAudio.audioNodes.gainNode = CiderAudio.context.createGain() CiderAudio.source.connect(CiderAudio.audioNodes.gainNode); - CiderAudio.audioNodes.gainNode.connect(CiderAudio.context.destination); - if(app.cfg.audio.normalization){ + if (app.cfg.audio.normalization) { CiderAudio.normalizerOn() } - if (app.cfg.audio.spatial){ - CiderAudio.spatialOn() - } - CiderAudio.equalizer() - }, - normalizerOn: function (){}, - normalizerOff: function (){ - CiderAudio.audioNodes.gainNode.gain.setTargetAtTime(1, CiderAudio.context.currentTime+ 1, 0.5); - }, - spatialOn: function (){ - try{ - CiderAudio.audioNodes.gainNode.disconnect(CiderAudio.context.destination);} catch(e){} - CiderAudio.audioNodes.spatialNode = new ResonanceAudio(CiderAudio.context); - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.context.destination); - let roomDimensions = { - width: 32, - height: 12, - depth: 32, - }; - let roomMaterials = { - // Room wall materials - left: 'metal', - right: 'metal', - front: 'brick-bare', - back: 'brick-bare', - down: 'acoustic-ceiling-tiles', - up: 'acoustic-ceiling-tiles', - }; - CiderAudio.audioNodes.spatialNode.setRoomProperties(roomDimensions, roomMaterials); - CiderAudio.audioNodes.spatialInput = CiderAudio.audioNodes.spatialNode.createSource(); - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - }, - spatialOff: function (){ - try{ - CiderAudio.audioNodes.spatialNode.output.disconnect(CiderAudio.context.destination); - CiderAudio.audioNodes.gainNode.disconnect(CiderAudio.audioNodes.spatialInput.input);} catch(e){} - CiderAudio.audioNodes.gainNode.connect(CiderAudio.context.destination); - }, - sendAudio: function (){ - var options = { - mimeType : 'audio/webm; codecs=opus' - }; - var destnode = CiderAudio.context.createMediaStreamDestination(); - CiderAudio.audioNodes.gainNode.connect(destnode) - var mediaRecorder = new MediaRecorder(destnode.stream,options); - mediaRecorder.start(1); - mediaRecorder.ondataavailable = function(e) { - e.data.arrayBuffer().then(buffer => { - ipcRenderer.send('writeAudio',buffer) - } - ); - } - }, - equalizer: function (){ - let BANDS = app.cfg.audio.equalizer.frequencies; - let GAIN = app.cfg.audio.equalizer.gain; - let Q = app.cfg.audio.equalizer.Q; - let VIBRANTBASSBANDS = app.cfg.audio.vibrantBass.frequencies; - let VIBRANTBASSGAIN = app.cfg.audio.vibrantBass.gain; - let VIBRANTBASSQ = app.cfg.audio.vibrantBass.Q; - let LLPW_Q = [5, 1, 3.536, 1.25, 8.409, 1.25, 14.14, 7.071, 5, 0.625, 16.82, 20, 20, 20, 28.28, 28.28, 28.28, 20, 33.64, 33.64, 10, 28.28, 7.071, 3.856]; - let LLPW_GAIN = [0.38, -1.81, -0.23, -0.51, 0.4, 0.84, 0.36, -0.34, 0.27, -1.2, -0.42, -0.67, 0.81, 1.31, -0.71, 0.68, -1.04, 0.79, -0.73, -1.33, 1.17, 0.57, 0.35, 6.33]; - let LLPW_FREQUENCIES = [16.452, 24.636, 37.134, 74.483, 159.54, 308.18, 670.21, 915.81, 1200.7, 2766.4, 2930.6, 4050.6, 4409.1, 5395.2, 5901.6, 6455.5, 7164.1, 7724.1, 8449, 10573, 12368, 14198, 17910, 18916]; - CiderAudio.audioNodes.audioBands = []; CiderAudio.audioNodes.vibrantbassNode = []; CiderAudio.audioNodes.llpw = []; - - for (i = 0; i < BANDS.length; i++) { - CiderAudio.audioNodes.audioBands[i] = CiderAudio.context.createBiquadFilter(); - CiderAudio.audioNodes.audioBands[i].type = 'peaking'; // 'peaking'; - CiderAudio.audioNodes.audioBands[i].frequency.value = BANDS[i]; - CiderAudio.audioNodes.audioBands[i].Q.value = Q[i]; - CiderAudio.audioNodes.audioBands[i].gain.value = GAIN[i] * app.cfg.audio.equalizer.mix; - } - - for (i = 0; i < LLPW_FREQUENCIES.length; i++) { - CiderAudio.audioNodes.llpw[i] = CiderAudio.context.createBiquadFilter(); - CiderAudio.audioNodes.llpw[i].type = 'peaking'; // 'peaking'; - CiderAudio.audioNodes.llpw[i].frequency.value = LLPW_FREQUENCIES[i]; - CiderAudio.audioNodes.llpw[i].Q.value = LLPW_Q[i]; - CiderAudio.audioNodes.llpw[i].gain.value = LLPW_GAIN[i] * app.cfg.audio.ciderPPE_value * CiderAudio.audioNodes.llpwEnabled; - } - - CiderAudio.audioNodes.preampNode = CiderAudio.context.createBiquadFilter(); - CiderAudio.audioNodes.preampNode.type = 'highshelf'; - CiderAudio.audioNodes.preampNode.frequency.value = 0; // Passthrough - if (CiderAudio.audioNodes.llpwEnabled === 1) {CiderAudio.audioNodes.preampNode.gain.value = (-Math.max(...app.cfg.audio.equalizer.gain.concat(CiderAudio.audioNodes.llpw[23].gain.value)));} - else {CiderAudio.audioNodes.preampNode.gain.value = (-Math.max(...app.cfg.audio.equalizer.gain));} - - for (i = 0; i < VIBRANTBASSBANDS.length; i++) { - CiderAudio.audioNodes.vibrantbassNode[i] = CiderAudio.context.createBiquadFilter(); - CiderAudio.audioNodes.vibrantbassNode[i].type = 'peaking'; // 'peaking'; - CiderAudio.audioNodes.vibrantbassNode[i].frequency.value = VIBRANTBASSBANDS[i]; - CiderAudio.audioNodes.vibrantbassNode[i].Q.value = VIBRANTBASSQ[i]; - CiderAudio.audioNodes.vibrantbassNode[i].gain.value = VIBRANTBASSGAIN[i] * app.cfg.audio.vibrantBass.multiplier;} - - if (app.cfg.audio.spatial) { - try{ - CiderAudio.audioNodes.spatialNode.output.disconnect(CiderAudio.context.destination); } catch(e){} - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.preampNode); + CiderAudio.spatialOn() + } + CiderAudio.hierarchical_loading(); + }, + normalizerOn: function () { + }, + normalizerOff: function () { + CiderAudio.audioNodes.gainNode.gain.setTargetAtTime(1, CiderAudio.context.currentTime + 1, 0.5); + }, + spatialProfiles: [ + { + "id": "420signature", + "file": './audio/impulses/CiderSpatial_v69.420_Audiophile.wav', + "name": "Signature (Classic)", + "description": "", + "img": "./assets/audiolabs/classic.png", + }, + { + "id": "420signature-B", + "file": './audio/impulses/CiderSpatial_v69.420_Audiophile_B.wav', + "name": "Signature (Focused)", + "description": "", + "img": "./assets/audiolabs/focused.png", + }, + { + "id": "standard", + "file": './audio/impulses/CiderSpatial_v69_Standard.wav', + "name": "Minimal", + "description": "", + "img": "./assets/audiolabs/minimal.png", + }, + { + "id": "audiophile", + "file": './audio/impulses/CiderSpatial_v69_Audiophile.wav', + "name": "Expansive", + "description": "", + "img": "./assets/audiolabs/expansive.png", + } + ], + spatialOn: function () { + CiderAudio.audioNodes.spatialNode = null; + if (app.cfg.audio.maikiwiAudio.spatial === true) { + CiderAudio.audioNodes.spatialNode = CiderAudio.context.createConvolver(); + CiderAudio.audioNodes.spatialNode.normalize = false; + + let spatialProfile = CiderAudio.spatialProfiles.find(function (profile) { + return profile.id === app.cfg.audio.maikiwiAudio.spatialProfile; + }); + + if (spatialProfile === undefined) { + spatialProfile = CiderAudio.spatialProfiles[0]; + } + fetch(spatialProfile.file).then(async (impulseData) => { + let bufferedImpulse = await impulseData.arrayBuffer(); + CiderAudio.audioNodes.spatialNode.buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse); + }); + + } + else { + CiderAudio.audioNodes.spatialNode = new ResonanceAudio(CiderAudio.context); + let roomDimensions = { + width: 32, + height: 12, + depth: 32, + }; + let roomMaterials = { + // Room wall materials + left: 'metal', + right: 'metal', + front: 'brick-bare', + back: 'brick-bare', + down: 'acoustic-ceiling-tiles', + up: 'acoustic-ceiling-tiles', + }; + CiderAudio.audioNodes.spatialNode.setRoomProperties(roomDimensions, roomMaterials); + CiderAudio.audioNodes.spatialInput = CiderAudio.audioNodes.spatialNode.createSource(); + } + }, + spatialOff: function () { + CiderAudio.hierarchical_loading(); + }, + sendAudio: function () { + if (!CiderAudio.ccON) { + CiderAudio.ccON = true + let searchInt = setInterval(async function () { + if (CiderAudio.context != null && CiderAudio.audioNodes.gainNode != null) { + // var options = { + // mimeType: 'audio/webm; codecs=opus' + // }; + // var destnode = CiderAudio.context.createMediaStreamDestination(); + // CiderAudio.audioNodes.gainNode.connect(destnode) + // CiderAudio.mediaRecorder = new MediaRecorder(destnode.stream, options); + // CiderAudio.mediaRecorder.start(1); + // CiderAudio.mediaRecorder.ondataavailable = function (e) { + // e.data.arrayBuffer().then(buffer => { + // ipcRenderer.send('writeAudio', buffer) + // } + // ); + // } + const worklet = `class RecorderWorkletProcessor extends AudioWorkletProcessor { + static get parameterDescriptors() { + return [{ + name: 'isRecording', + defaultValue: 0 + }, + { + name: 'numberOfChannels', + defaultValue: 2 + } + ]; + } + + constructor() { + super(); + this._bufferSize = 1024; + this._buffers = null; + this._initBuffer(); + } + _initBuffers(numberOfChannels) { + this._buffers = []; + for (let channel=0; channel < numberOfChannels; channel++) { + this._buffers.push(new Float32Array(this._bufferSize)); + } + } + + _initBuffer() { + this._bytesWritten = 0; + } + + _isBufferEmpty() { + return this._bytesWritten === 0; + } + + _isBufferFull() { + return this._bytesWritten === this._bufferSize; + } + _pushToBuffers(audioRawData, numberOfChannels) { + if (this._isBufferFull()) { + this._flush(); + } + let dataLength = audioRawData[0].length; + for (let idx=0; idx { + if (this._bytesWritten < this._bufferSize) { + buffer = buffer.slice(0, this._bytesWritten); + } + buffers[channel] = buffer; + }); + this.port.postMessage({ + eventType: 'data', + audioBuffer: buffers, + bufferSize: this._bufferSize + }); + this._initBuffer(); + } + + _recordingStopped() { + this.port.postMessage({ + eventType: 'stop' + }); + } + + process(inputs, outputs, parameters) { + const isRecordingValues = parameters.isRecording; + const numberOfChannels = parameters.numberOfChannels[0]; + if (this._buffers === null) { + this._initBuffers(numberOfChannels); + } + + for (let dataIndex = 0; dataIndex < isRecordingValues.length; dataIndex++) + { + const shouldRecord = isRecordingValues[dataIndex] === 1; + if (!shouldRecord && !this._isBufferEmpty()) { + this._flush(); + this._recordingStopped(); + } + + if (shouldRecord) { + let audioRawData = inputs[0]; + this._pushToBuffers(audioRawData, numberOfChannels); + } + } + return true; + } + + } + + registerProcessor('recorder-worklet', RecorderWorkletProcessor);` + let blob = new Blob([worklet], { type: 'application/javascript' }); + await CiderAudio.context.audioWorklet.addModule(URL.createObjectURL(blob)) + .then(() => { + + const channels = 2; + CiderAudio.audioNodes.recorderNode = new window.AudioWorkletNode(CiderAudio.context, + 'recorder-worklet', + { parameterData: { numberOfChannels: channels } }); + CiderAudio.audioNodes.recorderNode.port.onmessage = (e) => { + const data = e.data; + switch (data.eventType) { + case "data": + const audioData = data.audioBuffer; + const bufferSize = data.bufferSize; + if ((audioData[0]).some(item => item !== 0) || (audioData[0]).some(item => item !== 0)) { + ipcRenderer.send('writeWAV', audioData[0], audioData[1], bufferSize); + } + break; + case "stop": + break; + } + } + CiderAudio.audioNodes.recorderNode.parameters.get('isRecording').setValueAtTime(1, CiderAudio.context.currentTime); + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.recorderNode); + + }); + clearInterval(searchInt); + } + }, 1000); } else { - try{ - CiderAudio.audioNodes.gainNode.disconnect(CiderAudio.context.destination);} catch(e){} - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.preampNode); + if (CiderAudio.audioNodes.recorderNode != null && CiderAudio.context != null) { + CiderAudio.audioNodes.recorderNode.parameters.get('isRecording').setValueAtTime(1, CiderAudio.context.currentTime); + // CiderAudio.audioNodes.recorderNode = null; + // CiderAudio.ccON = false; + } } - CiderAudio.audioNodes.preampNode.connect(CiderAudio.audioNodes.llpw[0]); + }, + stopAudio() { + if (CiderAudio.audioNodes.recorderNode != null && CiderAudio.context != null) { + CiderAudio.audioNodes.recorderNode.parameters.get('isRecording').setValueAtTime(0, CiderAudio.context.currentTime); + // CiderAudio.audioNodes.recorderNode = null; + // CiderAudio.ccON = false; + } + }, + analogWarmth_h2_3: function (status, hierarchy) { + if (status === true) { // 23 Band Adjustment + let WARMTH_FREQUENCIES = [10.513, 15.756, 224.01, 677.77, 1245.4, 2326.8, 2847.3, 4215.3, 11057, 12793, 16235, 16235, 17838, 18112, 18112, 19326, 19372, 19372, 20061, 20280, 20280, 20853, 22276]; + let WARMTH_GAIN = [-4.81, 0.74, 0.55, -0.84, -1.52, 0.84, 0.66, -0.29, 0.29, 0.94, 1.67, 1.62, -0.53, -0.81, -4.98, 1.43, 0.86, 1.13, -1.06, -0.95, -1.13, 1.78, -3.86]; + let WARMTH_Q = [0.442, 3.536, 2.102, 8.409, 0.625, 16.82, 5, 2.973, 3.536, 2.5, 2.5, 11.89, 0.625, 1.487, 1.153, 5, 5.453, 5, 2.973, 3.386, 3.386, 14.14, 8.409]; + CiderAudio.audioNodes.analogWarmth = [] + + switch (app.cfg.audio.maikiwiAudio.analogWarmth_value) { + case "SMOOTH": + for (let i = 0; i < WARMTH_FREQUENCIES.length; i++) { + CiderAudio.audioNodes.analogWarmth[i] = CiderAudio.context.createBiquadFilter(); + CiderAudio.audioNodes.analogWarmth[i].type = 'peaking'; // 'peaking'; + CiderAudio.audioNodes.analogWarmth[i].frequency.value = WARMTH_FREQUENCIES[i] ; + CiderAudio.audioNodes.analogWarmth[i].Q.value = WARMTH_Q[i]; + CiderAudio.audioNodes.analogWarmth[i].gain.value = WARMTH_GAIN[i] * 1.25; + } + break; + + case "WARM": + for (let i = 0; i < WARMTH_FREQUENCIES.length; i++) { + CiderAudio.audioNodes.analogWarmth[i] = CiderAudio.context.createBiquadFilter(); + CiderAudio.audioNodes.analogWarmth[i].type = 'peaking'; // 'peaking'; + CiderAudio.audioNodes.analogWarmth[i].frequency.value = WARMTH_FREQUENCIES[i] ; + CiderAudio.audioNodes.analogWarmth[i].Q.value = WARMTH_Q[i]; + CiderAudio.audioNodes.analogWarmth[i].gain.value = WARMTH_GAIN[i] * 1.75; + } + break; + + default: + for (let i = 0; i < WARMTH_FREQUENCIES.length; i++) { + CiderAudio.audioNodes.analogWarmth[i] = CiderAudio.context.createBiquadFilter(); + CiderAudio.audioNodes.analogWarmth[i].type = 'peaking'; // 'peaking'; + CiderAudio.audioNodes.analogWarmth[i].frequency.value = WARMTH_FREQUENCIES[i] ; + CiderAudio.audioNodes.analogWarmth[i].Q.value = WARMTH_Q[i]; + CiderAudio.audioNodes.analogWarmth[i].gain.value = WARMTH_GAIN[i] * 1.25; + } + app.cfg.audio.maikiwiAudio.analogWarmth_value = "SMOOTH"; + break; + } + + + for (let i = 1; i < WARMTH_FREQUENCIES.length; i++) { + CiderAudio.audioNodes.analogWarmth[i - 1].connect(CiderAudio.audioNodes.analogWarmth[i]); + } + + switch (hierarchy) { + case 3: + try { + CiderAudio.audioNodes.analogWarmth[WARMTH_FREQUENCIES.length - 1].connect(CiderAudio.audioNodes.llpw[0]); + } catch (e) { } + break; + case 2: + try { + CiderAudio.audioNodes.analogWarmth[WARMTH_FREQUENCIES.length - 1].connect(CiderAudio.audioNodes.vibrantbassNode[0]); + } catch (e) { } + break; + case 1: + try { + CiderAudio.audioNodes.analogWarmth[WARMTH_FREQUENCIES.length - 1].connect(CiderAudio.audioNodes.audioBands[0]); + } catch (e) { } + break; + case 0: + try { CiderAudio.audioNodes.analogWarmth[WARMTH_FREQUENCIES.length - 1].connect(CiderAudio.context.destination); } catch (e) { } + break; + } - for (i = 1; i < LLPW_FREQUENCIES.length; i ++) { - CiderAudio.audioNodes.llpw[i-1].connect(CiderAudio.audioNodes.llpw[i]); - } - CiderAudio.audioNodes.llpw[LLPW_FREQUENCIES.length-1].connect(CiderAudio.audioNodes.vibrantbassNode[0]); - for (i = 1; i < VIBRANTBASSBANDS.length; i ++) { - CiderAudio.audioNodes.vibrantbassNode[i-1].connect(CiderAudio.audioNodes.vibrantbassNode[i]); - } - CiderAudio.audioNodes.vibrantbassNode[VIBRANTBASSBANDS.length-1].connect(CiderAudio.audioNodes.audioBands[0]); - - for (i = 1; i < BANDS.length; i ++) { - CiderAudio.audioNodes.audioBands[i-1].connect(CiderAudio.audioNodes.audioBands[i]); } - CiderAudio.audioNodes.audioBands[BANDS.length-1].connect(CiderAudio.context.destination); + }, + llpw_h2_2: function (status, hierarchy) { + if (status === true) { + let c_LLPW_Q = [1.250, 0.131, 10, 2.5, 2.293, 0.110, 14.14, 1.552, 28.28, 7.071, 2.847, 5, 0.625, 7.071, 3.856, 3.856, 20, 28.28, 20, 14.14, 2.102, 6.698, 3.536, 10]; + let c_LLPW_GAIN = [-0.11, 0.27, -0.8, 0.57, 1.84, -0.38, 0.47, -1.56, 0.83, 1.58, -1.79, -0.45, 0.48, 1.22, -1.58, -1.59, -2.03, 2.56, -2.2, -2.48, 4.75, 10.5, 1.43, 3.76]; + let c_LLPW_FREQUENCIES = [400.83, 5812.8, 8360, 10413, 10658, 12079, 12899, 13205, 14848, 15591, 15778, 15783, 16716, 16891, 17255, 17496, 18555, 18622, 19219, 19448, 19664, 21341, 21353, 22595]; + let LLPW_Q = [5, 1, 3.536, 1.25, 8.409, 1.25, 14.14, 7.071, 5, 0.625, 16.82, 20, 20, 20, 28.28, 28.28, 28.28, 20, 33.64, 33.64, 10, 28.28, 7.071, 3.856]; + let LLPW_GAIN = [0.38, -1.81, -0.23, -0.51, 0.4, 0.84, 0.36, -0.34, 0.27, -1.2, -0.42, -0.67, 0.81, 1.31, -0.71, 0.68, -1.04, 0.79, -0.73, -1.33, 1.17, 0.57, 0.35, 6.33]; + let LLPW_FREQUENCIES = [16.452, 24.636, 37.134, 74.483, 159.54, 308.18, 670.21, 915.81, 1200.7, 2766.4, 2930.6, 4050.6, 4409.1, 5395.2, 5901.6, 6455.5, 7164.1, 7724.1, 8449, 10573, 12368, 14198, 17910, 18916]; + CiderAudio.audioNodes.llpw = [] + + switch (app.cfg.audio.maikiwiAudio.ciderPPE_value) { + case "NATURAL": + CiderAudio.audioNodes.llpw[0] = CiderAudio.context.createConvolver(); + CiderAudio.audioNodes.llpw[0].normalize = false; + fetch('./audio/impulses/CAP_Natural.wav').then(async (impulseData) => { + let bufferedImpulse = await impulseData.arrayBuffer(); + CiderAudio.audioNodes.llpw[0].buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse); + }); + + switch (hierarchy) { + case 2: + try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.vibrantbassNode[0]); } catch (e) { } + break; + case 1: + try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.audioBands[0]); } catch (e) { } + break; + case 0: + try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.context.destination); } catch (e) { } + break; + + } + + console.debug("[Cider][Audio] CAP - Natural Mode"); + break; + + case "STANDARD": // Standard + for (let i = 0; i < LLPW_FREQUENCIES.length; i++) { + CiderAudio.audioNodes.llpw[i] = CiderAudio.context.createBiquadFilter(); + CiderAudio.audioNodes.llpw[i].type = 'peaking'; // 'peaking'; + CiderAudio.audioNodes.llpw[i].frequency.value = LLPW_FREQUENCIES[i] ; + CiderAudio.audioNodes.llpw[i].Q.value = LLPW_Q[i]; + CiderAudio.audioNodes.llpw[i].gain.value = LLPW_GAIN[i]; + } + for (let i = 1; i < LLPW_FREQUENCIES.length; i++) { + CiderAudio.audioNodes.llpw[i - 1].connect(CiderAudio.audioNodes.llpw[i]); + } + + switch (hierarchy) { + case 2: + try { CiderAudio.audioNodes.llpw[LLPW_FREQUENCIES.length - 1].connect(CiderAudio.audioNodes.vibrantbassNode[0]); } catch (e) { } + break; + case 1: + try { CiderAudio.audioNodes.llpw[LLPW_FREQUENCIES.length - 1].connect(CiderAudio.audioNodes.audioBands[0]); } catch (e) { } + break; + case 0: + try { CiderAudio.audioNodes.llpw[LLPW_FREQUENCIES.length - 1].connect(CiderAudio.context.destination); } catch (e) { } + break; + + } + + console.debug("[Cider][Audio] CAP - Classic Mode"); + break; + + case "AGGRESSIVE": // Aggressive + for (let i = 0; i < c_LLPW_FREQUENCIES.length; i++) { + CiderAudio.audioNodes.llpw[i] = CiderAudio.context.createBiquadFilter(); + CiderAudio.audioNodes.llpw[i].type = 'peaking'; // 'peaking'; + CiderAudio.audioNodes.llpw[i].frequency.value = c_LLPW_FREQUENCIES[i] ; + CiderAudio.audioNodes.llpw[i].Q.value = c_LLPW_Q[i]; + CiderAudio.audioNodes.llpw[i].gain.value = c_LLPW_GAIN[i]; + } + for (let i = 1; i < c_LLPW_FREQUENCIES.length; i++) { + CiderAudio.audioNodes.llpw[i - 1].connect(CiderAudio.audioNodes.llpw[i]); + } + + switch (hierarchy) { + case 2: + try { CiderAudio.audioNodes.llpw[c_LLPW_FREQUENCIES.length - 1].connect(CiderAudio.audioNodes.vibrantbassNode[0]); } catch (e) { } + break; + case 1: + try { CiderAudio.audioNodes.llpw[c_LLPW_FREQUENCIES.length - 1].connect(CiderAudio.audioNodes.audioBands[0]); } catch (e) { } + break; + case 0: + try { CiderAudio.audioNodes.llpw[c_LLPW_FREQUENCIES.length - 1].connect(CiderAudio.context.destination); } catch (e) { } + break; + + } + + console.debug("[Cider][Audio] CAP - Clarity Mode"); + break; + + default: + CiderAudio.audioNodes.llpw[0] = CiderAudio.context.createConvolver(); + CiderAudio.audioNodes.llpw[0].normalize = false; + fetch('./audio/impulses/CAP_Natural.wav').then(async (impulseData) => { + let bufferedImpulse = await impulseData.arrayBuffer(); + CiderAudio.audioNodes.llpw[0].buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse); + }); + + switch (hierarchy) { + case 2: + try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.vibrantbassNode[0]); } catch (e) { } + break; + case 1: + try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.audioBands[0]); } catch (e) { } + break; + case 0: + try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.context.destination); } catch (e) { } + break; + + } + app.cfg.audio.maikiwiAudio.ciderPPE_value = "NATURAL"; + console.debug("[Cider][Audio] CAP - Natural Mode (Defaulted from broki config)"); + break; + } + } + + }, + vibrantbass_h2_1: function (status, hierarchy) { + if (status === true) { + let VIBRANTBASSBANDS = app.cfg.audio.maikiwiAudio.vibrantBass.frequencies; + let VIBRANTBASSGAIN = app.cfg.audio.maikiwiAudio.vibrantBass.gain; + let VIBRANTBASSQ = app.cfg.audio.maikiwiAudio.vibrantBass.Q; + CiderAudio.audioNodes.vibrantbassNode = [] + + for (let i = 0; i < VIBRANTBASSBANDS.length; i++) { + CiderAudio.audioNodes.vibrantbassNode[i] = CiderAudio.context.createBiquadFilter(); + CiderAudio.audioNodes.vibrantbassNode[i].type = 'peaking'; // 'peaking'; + CiderAudio.audioNodes.vibrantbassNode[i].frequency.value = VIBRANTBASSBANDS[i] ; + CiderAudio.audioNodes.vibrantbassNode[i].Q.value = VIBRANTBASSQ[i]; + CiderAudio.audioNodes.vibrantbassNode[i].gain.value = VIBRANTBASSGAIN[i] * (app.cfg.audio.equalizer.vibrantBass / 10); + } + + for (let i = 1; i < VIBRANTBASSBANDS.length; i++) { + CiderAudio.audioNodes.vibrantbassNode[i - 1].connect(CiderAudio.audioNodes.vibrantbassNode[i]); + } + + switch (hierarchy) { + case 0: + try { + CiderAudio.audioNodes.vibrantbassNode[0].connect(CiderAudio.context.destination); + } catch (e) { } + break; + case 1: + try { CiderAudio.audioNodes.vibrantbassNode[0].connect(CiderAudio.audioNodes.audioBands[0]); } catch (e) { } + break; + + } + } + }, + hierarchical_unloading: function () { + try { CiderAudio.audioNodes.spatialNode.output.disconnect(); } catch (e) { } + try { CiderAudio.audioNodes.spatialNode.disconnect(); } catch (e) { } + try { CiderAudio.audioNodes.gainNode.disconnect(); } catch (e) { } + try { for (var i of CiderAudio.audioNodes.analogWarmth) { i.disconnect(); } CiderAudio.audioNodes.analogWarmth = null } catch (e) { } + try { for (var i of CiderAudio.audioNodes.llpw) { i.disconnect(); } CiderAudio.audioNodes.llpw = null } catch (e) { } + try { for (var i of CiderAudio.audioNodes.vibrantbassNode) { i.disconnect(); } CiderAudio.audioNodes.vibrantbassNode = null } catch (e) { } + try { for (var i of CiderAudio.audioNodes.audioBands) { i.disconnect(); } CiderAudio.audioNodes.audioBands = null } catch (e) { } + + console.debug("[Cider][Audio] Finished hierarchical unloading"); + + }, + hierarchical_loading: function () { + CiderAudio.hierarchical_unloading(); + + if (Math.max(...app.cfg.audio.equalizer.gain) != 0) { + CiderAudio.equalizer(true, 0); + + if (app.cfg.audio.equalizer.vibrantBass !== '0') { + CiderAudio.vibrantbass_h2_1(true, 1); + + if (app.cfg.audio.maikiwiAudio.ciderPPE === true) { // Vibrant Bass, CAP + CiderAudio.llpw_h2_2(true, 2); + + if (app.cfg.audio.maikiwiAudio.analogWarmth === true) { // Vibrant Bass, CAP, Analog Warmth + CiderAudio.analogWarmth_h2_3(true, 3); + + if (app.cfg.audio.spatial === true) { + if (app.cfg.audio.maikiwiAudio.spatial === true) { // Vibrant Bass, CAP, Analog Warmth, Maikiwi Spatial + app.cfg.audio.normalization = true; + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.debug('[Cider][Audio] Equalizer, Vibrant Bass, CAP, Analog Warmth, Maikiwi Spatial') + } + else { // Vibrant Bass, CAP, Analog Warmth, Spatial + app.cfg.audio.normalization = true; + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); + CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.debug('[Cider][Audio] Equalizer, Vibrant Bass, CAP, Analog Warmth, Spatial') + } + } + else { + app.cfg.audio.normalization = true; + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.debug('[Cider][Audio] Equalizer, Vibrant Bass, CAP, Analog Warmth') + } + } + else { + if (app.cfg.audio.spatial === true) { + if (app.cfg.audio.maikiwiAudio.spatial === true) { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.llpw[0]); + app.cfg.audio.normalization = true + console.debug('[Cider][Audio] Equalizer, Vibrant Bass, CAP, Maikiwi Spatial') + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); + CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.llpw[0]); + console.debug('[Cider][Audio] Equalizer, Vibrant Bass, CAP, Spatial') + } + } + else { + app.cfg.audio.normalization = true; + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.llpw[0]); + console.debug('[Cider][Audio] Equalizer, Vibrant Bass, CAP') + } + } + } + else { + if (app.cfg.audio.maikiwiAudio.analogWarmth === true) { + CiderAudio.analogWarmth_h2_3(true, 2); + app.cfg.audio.normalization = true; + + if (app.cfg.audio.spatial === true) { + if (app.cfg.audio.maikiwiAudio.spatial === true) { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.debug('[Cider][Audio] Equalizer, Vibrant Bass, Analog Warmth, Maikiwi Spatial') + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); + CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.debug('[Cider][Audio] Equalizer, Vibrant Bass, Analog Warmth, Spatial') + } + } + else { + app.cfg.audio.normalization = true; + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.debug('[Cider][Audio] Equalizer, Vibrant Bass, Analog Warmth') + } + } + else { + if (app.cfg.audio.spatial === true) { + if (app.cfg.audio.maikiwiAudio.spatial === true) { + app.cfg.audio.normalization = true; + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.vibrantbassNode[0]); + console.debug('[Cider][Audio] Equalizer, Vibrant Bass, Maikiwi Spatial') + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); + CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.vibrantbassNode[0]); + console.debug('[Cider][Audio] Equalizer, Vibrant Bass, Spatial') + } + } + else { + app.cfg.audio.normalization = true; + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.vibrantbassNode[0]); + console.debug('[Cider][Audio] Equalizer, Vibrant Bass') + } + } + } + } + // Vibrant Bass ends here + else { // if (app.cfg.audio.maikiwiAudio.vibrantBass.multiplier) === 0 + if (app.cfg.audio.maikiwiAudio.ciderPPE === true) { + CiderAudio.llpw_h2_2(true, 1); + + if (app.cfg.audio.maikiwiAudio.analogWarmth === true) { + CiderAudio.analogWarmth_h2_3(true, 3); + + if (app.cfg.audio.spatial === true) { + if (app.cfg.audio.maikiwiAudio.spatial === true) { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]); + app.cfg.audio.normalization = true; + console.debug('[Cider][Audio] Equalizer, CAP, Analog Warmth, Maikiwi Spatial') + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); + CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.debug('[Cider][Audio] Equalizer, CAP, Analog Warmth, Spatial') + } + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.debug('[Cider][Audio] Equalizer, CAP and Analog Warmth') + } + } + else { + if (app.cfg.audio.spatial === true) { + if (app.cfg.audio.maikiwiAudio.spatial === true) { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.llpw[0]); + app.cfg.audio.normalization = true; + console.debug('[Cider][Audio] Equalizer, CAP, Maikiwi Spatial') + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); + CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.llpw[0]); + console.debug('[Cider][Audio] Equalizer, CAP, Spatial') + } + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.llpw[0]); + console.debug('[Cider][Audio] Equalizer, CAP') + } + } + } // CAP ends here + else { + if (app.cfg.audio.maikiwiAudio.analogWarmth === true) { + CiderAudio.analogWarmth_h2_3(true, 1); + + if (app.cfg.audio.spatial === true) { + if (app.cfg.audio.maikiwiAudio.spatial === true) { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]); + app.cfg.audio.normalization = true; + console.debug('[Cider][Audio] Equalizer, Analog Warmth, Maikiwi Spatial') + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); + CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.debug('[Cider][Audio] Equalizer, Analog Warmth, Spatial') + } + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.debug('[Cider][Audio] Equalizer, Analog Warmth') + } + } + else { + if (app.cfg.audio.spatial === true) { + if (app.cfg.audio.maikiwiAudio.spatial === true) { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.audioBands[0]); + app.cfg.audio.normalization = true; + console.debug('[Cider][Audio] Equalizer, Maikiwi Spatial') + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); + CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.audioBands[0]); + console.debug('[Cider][Audio] Equalizer, Spatial') + } + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.audioBands[0]); + console.debug('[Cider][Audio] Equalizer') + } + } + } + } + } + else { //if (Math.max(...app.cfg.audio.equalizer.gain) == 0) + if (app.cfg.audio.equalizer.vibrantBass !== '0') { // Vibrant Bass + CiderAudio.vibrantbass_h2_1(true, 0) + + if (app.cfg.audio.maikiwiAudio.ciderPPE === true) { // Vibrant Bass, CAP + CiderAudio.llpw_h2_2(true, 2); + + if (app.cfg.audio.maikiwiAudio.analogWarmth === true) { // Vibrant Bass, CAP, Analog Warmth + CiderAudio.analogWarmth_h2_3(true, 3); + + if (app.cfg.audio.spatial === true) { + if (app.cfg.audio.maikiwiAudio.spatial === true) { // Vibrant Bass, CAP, Analog Warmth, Maikiwi Spatial + app.cfg.audio.normalization = true; + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.debug('[Cider][Audio] Vibrant Bass, CAP, Analog Warmth, Maikiwi Spatial') + } + else { // Vibrant Bass, CAP, Analog Warmth, Spatial + app.cfg.audio.normalization = true; + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); + CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.debug('[Cider][Audio] Vibrant Bass, CAP, Analog Warmth, Spatial') + } + } + else { + app.cfg.audio.normalization = true; + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.debug('[Cider][Audio] Vibrant Bass, CAP, Analog Warmth') + } + } + else { // if (app.cfg.audio.maikiwiAudio.analogWarmth) !== true + if (app.cfg.audio.spatial === true) { + if (app.cfg.audio.maikiwiAudio.spatial === true) { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.llpw[0]); + app.cfg.audio.normalization = true + console.debug('[Cider][Audio] Vibrant Bass, CAP, Maikiwi Spatial') + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); + CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.llpw[0]); + console.debug('[Cider][Audio] Vibrant Bass, CAP, Spatial') + } + } + else { + app.cfg.audio.normalization = true; + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.llpw[0]); + console.debug('[Cider][Audio] Vibrant Bass, CAP') + } + } + } + else { + if (app.cfg.audio.maikiwiAudio.analogWarmth === true) { + CiderAudio.analogWarmth_h2_3(true, 2); + app.cfg.audio.normalization = true; + + if (app.cfg.audio.spatial === true) { + if (app.cfg.audio.maikiwiAudio.spatial === true) { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.debug('[Cider][Audio] Vibrant Bass, Analog Warmth, Maikiwi Spatial') + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); + CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.debug('[Cider][Audio] Vibrant Bass, Analog Warmth, Spatial') + } + } + else { + app.cfg.audio.normalization = true; + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.debug('[Cider][Audio] Vibrant Bass, Analog Warmth') + } + } + else { + if (app.cfg.audio.spatial === true) { + if (app.cfg.audio.maikiwiAudio.spatial === true) { + app.cfg.audio.normalization = true; + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.vibrantbassNode[0]); + console.debug('[Cider][Audio] Vibrant Bass, Maikiwi Spatial') + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); + CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.vibrantbassNode[0]); + console.debug('[Cider][Audio] Vibrant Bass, Spatial') + } + } + else { + app.cfg.audio.normalization = true; + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.vibrantbassNode[0]); + console.debug('[Cider][Audio] Vibrant Bass') + } + } + } + } + // Vibrant Bass ends here + else { + if (app.cfg.audio.maikiwiAudio.ciderPPE === true) { + CiderAudio.llpw_h2_2(true, 0); + + if (app.cfg.audio.maikiwiAudio.analogWarmth === true) { + CiderAudio.analogWarmth_h2_3(true, 3); + + if (app.cfg.audio.spatial === true) { + if (app.cfg.audio.maikiwiAudio.spatial === true) { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]); + app.cfg.audio.normalization = true; + console.debug('[Cider][Audio] CAP, Analog Warmth, Maikiwi Spatial') + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); + CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.debug('[Cider][Audio] CAP, Analog Warmth, Spatial') + } + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.debug('[Cider][Audio] CAP and Analog Warmth') + } + } + else { + if (app.cfg.audio.spatial === true) { + if (app.cfg.audio.maikiwiAudio.spatial === true) { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.llpw[0]); + app.cfg.audio.normalization = true; + console.debug('[Cider][Audio] CAP, Maikiwi Spatial') + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); + CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.llpw[0]); + console.debug('[Cider][Audio] CAP, Spatial') + } + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.llpw[0]); + console.debug('[Cider][Audio] CAP') + } + } + } // CAP ends here + else { + if (app.cfg.audio.maikiwiAudio.analogWarmth === true) { + CiderAudio.analogWarmth_h2_3(true, 0); + + if (app.cfg.audio.spatial === true) { + if (app.cfg.audio.maikiwiAudio.spatial === true) { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]); + app.cfg.audio.normalization = true; + console.debug('[Cider][Audio] Analog Warmth, Maikiwi Spatial') + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); + CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.debug('[Cider][Audio] Analog Warmth, Spatial') + } + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.debug('[Cider][Audio] Analog Warmth') + } + } + else { + if (app.cfg.audio.spatial === true) { + if (app.cfg.audio.maikiwiAudio.spatial === true) { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.context.destination); + app.cfg.audio.normalization = true; + console.debug('[Cider][Audio] Maikiwi Spatial') + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); + CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.context.destination); + console.debug('[Cider][Audio] Spatial') + } + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.context.destination); + console.debug('[Cider][Audio] Literal Nothing') + } + } + } + } + } + console.debug("[Cider][Audio] Finished hierarchical loading"); + + }, + + equalizer: function (status, hierarchy) { // h1_1 + if (status === true) { + let BANDS = app.cfg.audio.equalizer.frequencies; + let GAIN = app.cfg.audio.equalizer.gain; + let Q = app.cfg.audio.equalizer.Q; + + CiderAudio.audioNodes.audioBands = []; + for (let i = 0; i < BANDS.length; i++) { + CiderAudio.audioNodes.audioBands[i] = CiderAudio.context.createBiquadFilter(); + CiderAudio.audioNodes.audioBands[i].type = 'peaking'; // 'peaking'; + CiderAudio.audioNodes.audioBands[i].frequency.value = BANDS[i]; + CiderAudio.audioNodes.audioBands[i].Q.value = Q[i]; + CiderAudio.audioNodes.audioBands[i].gain.value = GAIN[i] * app.cfg.audio.equalizer.mix; + } + + for (let i = 1; i < BANDS.length; i++) { + CiderAudio.audioNodes.audioBands[i - 1].connect(CiderAudio.audioNodes.audioBands[i]); + } + + switch (hierarchy) { + case 0: + try { + CiderAudio.audioNodes.audioBands[BANDS.length - 1].connect(CiderAudio.context.destination); + } catch (e) { } + break; + } + + } } - } -if (app.cfg.advanced.AudioContext){ - CiderAudio.init() - -} \ No newline at end of file +export { CiderAudio } \ No newline at end of file diff --git a/src/renderer/audio/impulses/CAP_Natural.wav b/src/renderer/audio/impulses/CAP_Natural.wav new file mode 100644 index 00000000..349fbaac Binary files /dev/null and b/src/renderer/audio/impulses/CAP_Natural.wav differ diff --git a/src/renderer/audio/impulses/CiderSpatial_v69.420_Audiophile.wav b/src/renderer/audio/impulses/CiderSpatial_v69.420_Audiophile.wav new file mode 100644 index 00000000..59fc21a7 Binary files /dev/null and b/src/renderer/audio/impulses/CiderSpatial_v69.420_Audiophile.wav differ diff --git a/src/renderer/audio/impulses/CiderSpatial_v69.420_Audiophile_B.wav b/src/renderer/audio/impulses/CiderSpatial_v69.420_Audiophile_B.wav new file mode 100644 index 00000000..9ddb6127 Binary files /dev/null and b/src/renderer/audio/impulses/CiderSpatial_v69.420_Audiophile_B.wav differ diff --git a/src/renderer/audio/impulses/CiderSpatial_v69_Audiophile.wav b/src/renderer/audio/impulses/CiderSpatial_v69_Audiophile.wav new file mode 100644 index 00000000..982d9d46 Binary files /dev/null and b/src/renderer/audio/impulses/CiderSpatial_v69_Audiophile.wav differ diff --git a/src/renderer/audio/impulses/CiderSpatial_v69_Standard.wav b/src/renderer/audio/impulses/CiderSpatial_v69_Standard.wav new file mode 100644 index 00000000..947d6f65 Binary files /dev/null and b/src/renderer/audio/impulses/CiderSpatial_v69_Standard.wav differ diff --git a/src/renderer/index.js b/src/renderer/index.js index 5e58911c..879b017a 100644 --- a/src/renderer/index.js +++ b/src/renderer/index.js @@ -1,4 +1,3 @@ -Vue.use(VueObserveVisibility); var notyf = new Notyf(); const MusicKitObjects = { @@ -14,3567 +13,15 @@ const MusicKitObjects = { } } -const MusicKitTools = { - getHeader() { - return new Headers({ - Authorization: 'Bearer ' + MusicKit.getInstance().developerToken, - Accept: 'application/json', - 'Content-Type': 'application/json', - 'Music-User-Token': '' + MusicKit.getInstance().musicUserToken - }); - } -} - // limit an array to a certain number of items Array.prototype.limit = function (n) { return this.slice(0, n); }; -const store = new Vuex.Store({ - state: { - library: { - songs: ipcRenderer.sendSync("get-library-songs"), - albums: ipcRenderer.sendSync("get-library-albums"), - recentlyAdded: ipcRenderer.sendSync("get-library-recentlyAdded"), - playlists: ipcRenderer.sendSync("get-library-playlists") - }, - artwork: { - playerLCD: "" - } - }, - mutations: { - setLCDArtwork(state, artwork) { - state.artwork.playerLCD = artwork - } - } -}) - -const app = new Vue({ - el: "#app", - store: store, - data: { - appMode: "player", - ipcRenderer: ipcRenderer, - cfg: ipcRenderer.sendSync("getStore"), - isDev: ipcRenderer.sendSync("is-dev"), - drawertest: false, - platform: "", - mk: {}, - quickPlayQuery: "", - lz: ipcRenderer.sendSync("get-i18n", "en_US"), - lzListing: ipcRenderer.sendSync("get-i18n-listing"), - search: { - term: "", - hints: [], - showHints: false, - results: {}, - resultsSocial: {}, - limit: 10 - }, - fullscreenLyrics: false, - playerLCD: { - playbackDuration: 0, - desiredDuration: 0, - userInteraction: false - }, - drawer: { - open: false, - panel: "" - }, - browsepage: [], - listennow: [], - madeforyou: [], - radio: { - personal: [] - }, - webview: { - url: "", - title: "", - loading: false - }, - showingPlaylist: [], - appleCurator: [], - artistPage: { - data: {}, - }, - library: { - backgroundNotification: { - show: false, - message: "", - total: 0, - progress: 0 - }, - songs: { - sortingOptions: { - "albumName": "0", - "artistName": "0", - "name": "0", - "genre": "0", - "releaseDate": "0", - "durationInMillis": "0" - }, - sorting: "name", - sortOrder: "asc", - listing: [], - meta: {total: 0, progress: 0}, - search: "", - displayListing: [], - downloadState: 0 // 0 = not started, 1 = in progress, 2 = complete, 3 = empty library - }, - albums: { - sortingOptions: { - "albumName": "0", - "artistName": "0", - "name": "0", - "genre": "0" - }, - viewAs: 'covers', - sorting: ["dateAdded", "name"], // [0] = recentlyadded page, [1] = albums page - sortOrder: ["desc", "asc"], // [0] = recentlyadded page, [1] = albums page - listing: [], - meta: {total: 0, progress: 0}, - search: "", - displayListing: [], - downloadState: 0 // 0 = not started, 1 = in progress, 2 = complete, 3 = empty library - }, - artists: { - sortingOptions: { - "artistName": "0", - "name": "0", - "genre": "0", - "releaseDate": "0" - }, - viewAs: 'covers', - sorting: ["dateAdded", "name"], // [0] = recentlyadded page, [1] = albums page - sortOrder: ["desc", "asc"], // [0] = recentlyadded page, [1] = albums page - listing: [], - meta: {total: 0, progress: 0}, - search: "", - displayListing: [], - downloadState: 0 // 0 = not started, 1 = in progress, 2 = complete, 3 = empty library - }, - }, - playlists: { - listing: [], - details: {}, - loadingState: 0, // 0 loading, 1 loaded, 2 error - id: "" - }, - webremoteurl: "", - webremoteqr: "", - mxmtoken: "", - mkIsReady: false, - playerReady: false, - animateBackground: false, - currentArtUrl: '', - lyricon: false, - currentTrackID: '', - currentTrackIDBG: '', - lyrics: [], - currentLyricsLine: 0, - lyriccurrenttime: 0, - richlyrics: [], - lyricsMediaItem: {}, - lyricsDebug: { - current: 0, - start: 0, - end: 0 - }, - v3: { - requestBody: { - platform: "web" - } - }, - tmpHeight: '', - tmpWidth: '', - tmpVar: [], - notification: false, - chrome: { - hideUserInfo: ipcRenderer.sendSync("is-dev") || false, - artworkReady: false, - userinfo: { - "id": "", - "attributes": { - "name": "Cider User", - "handle": "CiderUser", - "artwork": {"url": "./assets/logocut.png"} - } - }, - menuOpened: false, - maximized: false, - drawerOpened: false, - drawerState: "queue", - topChromeVisible: true, - progresshover: false, - windowControlPosition: "right", - contentAreaScrolling: true - }, - collectionList: { - response: {}, - title: "", - type: "" - }, - prevButtonBackIndicator: false, - currentSongInfo: {}, - page: "", - pageHistory: [], - songstest: false, - hangtimer: null, - selectedMediaItems: [], - routes: ["browse", "listen_now", "radio"], - musicBaseUrl: "https://api.music.apple.com/", - modals: { - addToPlaylist: false, - spatialProperties: false, - qrcode: false, - equalizer: false, - audioSettings: false, - showPlaylist: false, - }, - socialBadges: { - badgeMap: {}, - version: "", - mediaItems: [], - mediaItemDLState: 0 // 0 = not started, 1 = in progress, 2 = complete - }, - menuPanel: { - visible: false, - event: null, - content: { - name: "", - items: {}, - headerItems: {} - } - } - }, - watch: { - cfg: { - handler: function (val, oldVal) { - console.log(`cfg changed from ${oldVal} to ${val}`); - ipcRenderer.send("setStore", val); - }, - deep: true - }, - page: () => { - document.getElementById("app-content").scrollTo(0, 0); - app.resetState() - }, - showingPlaylist: () => { - if (!app.modals.showPlaylist) { - document.getElementById("app-content").scrollTo(0, 0); - app.resetState() - } - }, - artistPage: () => { - document.getElementById("app-content").scrollTo(0, 0); - app.resetState() - }, - }, - methods: { - songLinkShare(amUrl) { - notyf.open({type: "info", message: "Getting song.link share URL..."}) - let self = this - httpRequest = new XMLHttpRequest(); - httpRequest.open('GET', `https://api.song.link/v1-alpha.1/links?url=${amUrl}&userCountry=US`, true); - httpRequest.send(); - httpRequest.onreadystatechange = function () { - if (httpRequest.readyState === 4) { - if (httpRequest.status === 200) { - let response = JSON.parse(httpRequest.responseText); - console.log(response); - self.copyToClipboard(response.pageUrl) - } else { - console.log('There was a problem with the request.'); - notyf.error("There was a problem with the request.") - } - } - } - }, - mainMenuVisibility(val) { - if (val) { - (this.chrome.userinfo.id) ? this.chrome.menuOpened = !this.chrome.menuOpened : false - } else { - setTimeout(() => { - this.chrome.menuOpened = false - }, 100) - } - }, - stringTemplateParser(expression, valueObj) { - const templateMatcher = /{{\s?([^{}\s]*)\s?}}/g; - let text = expression.replace(templateMatcher, (substring, value, index) => { - value = valueObj[value]; - return value; - }); - return text - // stringTemplateParser('my name is {{name}} and age is {{age}}', {name: 'Tom', age:100}) - }, - setLz(lang) { - if (lang == "") { - lang = this.cfg.general.language - } - this.lz = ipcRenderer.sendSync("get-i18n", lang) - }, - getLz(message) { - if (this.lz[message]) { - return this.lz[message] - } else { - return message - } - }, - setLzManual() { - app.$data.library.songs.sortingOptions = { - "albumName": app.getLz('term.sortBy.album'), - "artistName": app.getLz('term.sortBy.artist'), - "name": app.getLz('term.sortBy.name'), - "genre": app.getLz('term.sortBy.genre'), - "releaseDate": app.getLz('term.sortBy.releaseDate'), - "durationInMillis": app.getLz('term.sortBy.duration') - } - - app.$data.library.albums.sortingOptions = { - "albumName": app.getLz('term.sortBy.album'), - "artistName": app.getLz('term.sortBy.artist'), - "name": app.getLz('term.sortBy.name'), - "genre": app.getLz('term.sortBy.genre') - } - - app.$data.library.artists.sortingOptions = { - "artistName": app.getLz('term.sortBy.artist'), - "name": app.getLz('term.sortBy.name'), - "genre": app.getLz('term.sortBy.genre'), - "releaseDate": app.getLz('term.sortBy.releaseDate') - } - }, - async showSocialListeningTo() { - let contentIds = Object.keys(app.socialBadges.badgeMap) - app.showCollection({data: this.socialBadges.mediaItems}, "Friends Listening To", "albums") - if (this.socialBadges.mediaItemDLState == 1 || this.socialBadges.mediaItemDLState == 2) { - return - } - this.socialBadges.mediaItemDLState = 2 - await asyncForEach(contentIds, async (item) => { - try { - let type = "albums" - if (item.includes("pl.")) { - type = "playlists" - } - if (item.includes("ra.")) { - type = "stations" - } - let found = await app.mk.api.v3.music(`/v1/catalog/us/${type}/${item}`) - this.socialBadges.mediaItems.push(found.data.data[0]) - } catch (e) { - - } - }) - }, - async openAppleMusicURL(url) { - let properties = MusicKit.formattedMediaURL(url) - let item = { - id: properties.contentId, - attributes: { - playParams: { - id: properties.contentId, - kind: properties.kind, - } - }, - type: properties.kind, - kind: properties.kind - } - app.routeView(item) - }, - async showMenuPanel(data, event) { - app.menuPanel.visible = true; - app.menuPanel.content.name = data.name ?? ""; - app.menuPanel.content.items = data.items ?? {}; - app.menuPanel.content.headerItems = data.headerItems ?? {}; - if (event) { - app.menuPanel.event = event; - } - }, - async getSvgIcon(url) { - let response = await fetch(url); - let data = await response.text(); - return data; - }, - getSocialBadges(cb = () => { - }) { - let self = this - try { - app.mk.api.v3.music("/v1/social/badging-map").then(data => { - self.socialBadges.badgeMap = data.data.results.badgingMap - cb(data.data.results.badgingMap) - }) - } catch (ex) { - this.socialBadges.badgeMap = {} - } - }, - addFavorite(id, type) { - this.cfg.home.favoriteItems.push({ - id: id, - type: type - }); - }, - modularUITest(val = false) { - this.fullscreenLyrics = val; - if (val) { - document.querySelector("#app-main").classList.add("modular-fs") - } else { - document.querySelector("#app-main").classList.remove("modular-fs") - } - }, - navigateBack() { - history.back() - }, - navigateForward() { - history.forward() - }, - getHTMLStyle() { - document.querySelector("html").style.background = "#222"; - document.querySelector("body").classList.add("notransparency") - }, - resetState() { - this.menuPanel.visible = false; - app.selectedMediaItems = []; - this.chrome.contentAreaScrolling = true - for (let key in app.modals) { - app.modals[key] = false; - } - }, - promptAddToPlaylist() { - app.modals.addToPlaylist = true; - }, - async addSelectedToNewPlaylist() { - let self = this - let pl_items = [] - for (let i = 0; i < self.selectedMediaItems.length; i++) { - if (self.selectedMediaItems[i].kind == "song" || self.selectedMediaItems[i].kind == "songs") { - self.selectedMediaItems[i].kind = "songs" - pl_items.push({ - id: self.selectedMediaItems[i].id, - type: self.selectedMediaItems[i].kind - }) - } else if ((self.selectedMediaItems[i].kind == "album" || self.selectedMediaItems[i].kind == "albums") && self.selectedMediaItems[i].isLibrary != true) { - self.selectedMediaItems[i].kind = "albums" - let res = await self.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/albums/${self.selectedMediaItems[i].id}/tracks`); - let ids = res.data.data.map(function (i) { - return {id: i.id, type: i.type} - }) - pl_items = pl_items.concat(ids) - } else if (self.selectedMediaItems[i].kind == "library-song" || self.selectedMediaItems[i].kind == "library-songs") { - self.selectedMediaItems[i].kind = "library-songs" - pl_items.push({ - id: self.selectedMediaItems[i].id, - type: self.selectedMediaItems[i].kind - }) - } else if ((self.selectedMediaItems[i].kind == "library-album" || self.selectedMediaItems[i].kind == "library-albums") || (self.selectedMediaItems[i].kind == "album" && self.selectedMediaItems[i].isLibrary == true)) { - self.selectedMediaItems[i].kind = "library-albums" - let res = await self.mk.api.v3.music(`/v1/me/library/albums/${self.selectedMediaItems[i].id}/tracks`); - let ids = res.data.data.map(function (i) { - return {id: i.id, type: i.type} - }) - pl_items = pl_items.concat(ids) - } else { - pl_items.push({ - id: self.selectedMediaItems[i].id, - type: self.selectedMediaItems[i].kind - }) - } - } - this.modals.addToPlaylist = false - app.newPlaylist(app.getLz('term.newPlaylist'), pl_items) - }, - async addSelectedToPlaylist(playlist_id) { - let self = this - let pl_items = [] - for (let i = 0; i < self.selectedMediaItems.length; i++) { - if (self.selectedMediaItems[i].kind == "song" || self.selectedMediaItems[i].kind == "songs") { - self.selectedMediaItems[i].kind = "songs" - pl_items.push({ - id: self.selectedMediaItems[i].id, - type: self.selectedMediaItems[i].kind - }) - } else if ((self.selectedMediaItems[i].kind == "album" || self.selectedMediaItems[i].kind == "albums") && self.selectedMediaItems[i].isLibrary != true) { - self.selectedMediaItems[i].kind = "albums" - let res = await self.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/albums/${self.selectedMediaItems[i].id}/tracks`); - let ids = res.data.data.map(function (i) { - return {id: i.id, type: i.type} - }) - pl_items = pl_items.concat(ids) - } else if (self.selectedMediaItems[i].kind == "library-song" || self.selectedMediaItems[i].kind == "library-songs") { - self.selectedMediaItems[i].kind = "library-songs" - pl_items.push({ - id: self.selectedMediaItems[i].id, - type: self.selectedMediaItems[i].kind - }) - } else if ((self.selectedMediaItems[i].kind == "library-album" || self.selectedMediaItems[i].kind == "library-albums") || (self.selectedMediaItems[i].kind == "album" && self.selectedMediaItems[i].isLibrary == true)) { - self.selectedMediaItems[i].kind = "library-albums" - let res = await self.mk.api.v3.music(`/v1/me/library/albums/${self.selectedMediaItems[i].id}/tracks`); - let ids = res.data.data.map(function (i) { - return {id: i.id, type: i.type} - }) - pl_items = pl_items.concat(ids) - } else { - pl_items.push({ - id: self.selectedMediaItems[i].id, - type: self.selectedMediaItems[i].kind - }) - } - - } - this.modals.addToPlaylist = false - await app.mk.api.v3.music( - `/v1/me/library/playlists/${playlist_id}/tracks`, {}, { - fetchOptions: { - method: "POST", - body: JSON.stringify({ - data: pl_items - }) - } - } - ).then(() => { - if (this.page == 'playlist_' + this.showingPlaylist.id) { - this.getPlaylistFromID(this.showingPlaylist.id) - } - }) - }, - async init() { - let self = this - if (this.cfg.visual.theme != "default.less" && this.cfg.visual.theme != "") { - this.setTheme(this.cfg.visual.theme) - } - this.setLz(this.cfg.general.language) - this.setLzManual() - clearTimeout(this.hangtimer) - this.mk = MusicKit.getInstance() - let needsReload = (typeof localStorage["music.ampwebplay.media-user-token"] == "undefined") - this.mk.authorize().then(() => { - self.mkIsReady = true - if (needsReload) { - document.location.reload() - } - }) - this.$forceUpdate() - if (this.isDev) { - this.mk.privateEnabled = true - // Hide UserInfo if Dev mode - } else { - // Get Hide User from Settings - this.chrome.hideUserInfo = !this.cfg.visual.showuserinfo - } - if (this.cfg.visual.hw_acceleration == "disabled") { - document.body.classList.add("no-gpu") - } - this.mk._services.timing.mode = 0 - this.platform = ipcRenderer.sendSync('cider-platform'); - - try { - // Set profile name - this.chrome.userinfo = (await app.mk.api.v3.music(`/v1/me/social-profile`)).data.data[0] - } catch (err) { - } - - // API Fallback - if (!this.chrome.userinfo) { - this.chrome.userinfo = { - "id": "", - "attributes": { - "name": "Cider User", - "handle": "CiderUser", - "artwork": {"url": "./assets/logocut.png"} - } - } - } - MusicKitInterop.init() - // Set the volume - - // Check the value of this.cfg.audio.muted - if (!this.cfg.audio.muted) { - // Set the mk.volume to the last stored volume data - this.mk.volume = this.cfg.audio.volume - } else if (this.cfg.audio.muted) { - // Set mk.volume to -1 (setting to 0 wont work, so temp solution setting to -1) - this.mk.volume = -1; - } - // ipcRenderer.invoke('getStoreValue', 'audio.volume').then((value) => { - // self.mk.volume = value - // }) - - // load cached library - if (localStorage.getItem("librarySongs") != null) { - this.library.songs.listing = JSON.parse(localStorage.getItem("librarySongs")) - this.library.songs.displayListing = this.library.songs.listing - } - if (localStorage.getItem("libraryAlbums") != null) { - this.library.albums.listing = JSON.parse(localStorage.getItem("libraryAlbums")) - this.library.albums.displayListing = this.library.albums.listing - } - - window.onbeforeunload = function (e) { - window.localStorage.setItem("currentTrack", JSON.stringify(app.mk.nowPlayingItem)) - window.localStorage.setItem("currentTime", JSON.stringify(app.mk.currentPlaybackTime)) - window.localStorage.setItem("currentQueue", JSON.stringify(app.mk.queue.items)) - }; - - if (typeof MusicKit.PlaybackBitrate[app.cfg.audio.quality] !== "string") { - app.mk.bitrate = MusicKit.PlaybackBitrate[app.cfg.audio.quality] - } else { - app.mk.bitrate = 256 - app.cfg.audio.quality = "HIGH" - } - - // load last played track - try { - let lastItem = window.localStorage.getItem("currentTrack") - let time = window.localStorage.getItem("currentTime") - let queue = window.localStorage.getItem("currentQueue") - if (lastItem != null) { - lastItem = JSON.parse(lastItem) - let kind = lastItem.attributes.playParams.kind; - let truekind = (!kind.endsWith("s")) ? (kind + "s") : kind; - app.mk.setQueue({ - [truekind]: [lastItem.attributes.playParams.id] - }) - app.mk.mute() - setTimeout(() => { - app.mk.play().then(() => { - app.mk.pause().then(() => { - if (time != null) { - app.mk.seekToTime(time) - } - app.mk.unmute() - if (queue != null) { - queue = JSON.parse(queue) - if (queue && queue.length > 0) { - let ids = queue.map(e => (e.playParams ? e.playParams.id : (e.attributes.playParams ? e.attributes.playParams.id : ''))) - let i = 0; - if (ids.length > 0) { - for (id of ids) { - if (!(i == 0 && ids[0] == lastItem.attributes.playParams.id)) { - try { - app.mk.playLater({songs: [id]}) - } catch (err) { - } - } - i++; - } - } - } - } - - }) - - }) - }, 1500) - - } - - } catch (e) { - console.log(e) - } - - MusicKit.getInstance().videoContainerElement = document.getElementById("apple-music-video-player") - - ipcRenderer.on('SoundCheckTag', (event, tag) => { - let replaygain = self.parseSCTagToRG(tag) - try { - CiderAudio.audioNodes.gainNode.gain.value = (Math.min(Math.pow(10, (replaygain.gain / 20)), (1 / replaygain.peak))) - } catch (e) { - - } - }) - - ipcRenderer.on('play', function(_event, mode, id) { - if (mode !== 'url'){ - self.mk.setQueue({[mode]: id}).then(() => { - app.mk.play() - }) - - } else { - app.openAppleMusicURL(id) - } - }); - - this.mk.addEventListener(MusicKit.Events.playbackStateDidChange, () => { - ipcRenderer.send('wsapi-updatePlaybackState', wsapi.getAttributes()); - }) - - this.mk.addEventListener(MusicKit.Events.playbackTimeDidChange, (a) => { - self.lyriccurrenttime = self.mk.currentPlaybackTime - this.currentSongInfo = a - self.playerLCD.playbackDuration = (self.mk.currentPlaybackTime) - // wsapi - ipcRenderer.send('wsapi-updatePlaybackState', wsapi.getAttributes()); - }) - - this.mk.addEventListener(MusicKit.Events.nowPlayingItemDidChange, (a) => { - if (self.$refs.queue) { - self.$refs.queue.updateQueue(); - } - this.currentSongInfo = a - - - if (app.cfg.audio.normalization) { - // get unencrypted audio previews to get SoundCheck's normalization tag - try { - let previewURL = null - try { - previewURL = app.mk.nowPlayingItem.previewURL - } catch (e) { - } - if (!previewURL) { - app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/songs/${app.mk.nowPlayingItem._songId ?? app.mk.nowPlayingItem.relationships.catalog.data[0].id}`).then((response) => { - previewURL = response.data.data[0].attributes.previews[0].url - if (previewURL) - ipcRenderer.send('getPreviewURL', previewURL) - }) - } else { - if (previewURL) - ipcRenderer.send('getPreviewURL', previewURL) - } - - } catch (e) { - } - } - - - try { - a = a.item.attributes; - } catch (_) { - } - let type = (self.mk.nowPlayingItem != null) ? self.mk.nowPlayingItem["type"] ?? '' : ''; - - if (type.includes("musicVideo") || type.includes("uploadedVideo") || type.includes("music-movie")) { - document.getElementById("apple-music-video-container").style.display = "block"; - // app.chrome.topChromeVisible = false - } else { - document.getElementById("apple-music-video-container").style.display = "none"; - // app.chrome.topChromeVisible = true - } - self.chrome.artworkReady = false - self.lyrics = [] - self.richlyrics = [] - app.getCurrentArtURL(); - // app.getNowPlayingArtwork(42); - app.getNowPlayingArtworkBG(32); - app.loadLyrics(); - app.losslessBadge(); - - // Playback Notifications - if (this.cfg.general.playbackNotifications && !document.hasFocus() && a.artistName && a.artwork && a.name) { - if (this.notification) { - this.notification.close() - } - this.notification = new Notification(a.name, { - body: a.artistName, - icon: a.artwork.url.replace('/{w}x{h}bb', '/512x512bb').replace('/2000x2000bb', '/35x35bb'), - silent: true, - }); - } - - }) - - - this.mk.addEventListener(MusicKit.Events.playbackVolumeDidChange, (_a) => { - this.cfg.audio.volume = this.mk.volume - }) - - this.refreshPlaylists() - document.body.removeAttribute("loading") - if (window.location.hash != "") { - this.appRoute(window.location.hash) - } else { - this.page = "home" - } - - setTimeout(() => { - this.getSocialBadges() - this.getBrowsePage(); - this.$forceUpdate() - }, 500) - }, - setTheme(theme = "") { - console.log(theme) - if (this.cfg.visual.theme == "") { - this.cfg.visual.theme = "default.less" - } - if (theme == "") { - theme = this.cfg.visual.theme - } else { - this.cfg.visual.theme = theme - } - document.querySelector("#userTheme").href = `themes/${this.cfg.visual.theme}` - document.querySelectorAll(`[id*='less']`).forEach(el => { - el.remove() - }); - less.refresh() - }, - unauthorize() { - this.mk.unauthorize() - document.location.reload() - }, - getAppClasses() { - let classes = {} - if (this.cfg.advanced.experiments.includes('compactui')) { - classes.compact = true - } - if (this.cfg.visual.window_background_style == "none") { - classes.simplebg = true - } - return classes - }, - invokeDrawer(panel) { - if (this.drawer.panel == panel && this.drawer.open) { - if (panel == "lyrics") { - this.lyricon = false - } - this.drawer.panel = "" - this.drawer.open = false - } else { - if (panel == "lyrics") { - this.lyricon = true - } else { - this.lyricon = false - } - this.drawer.open = true - this.drawer.panel = panel - } - }, - select_removeMediaItem(id) { - this.selectedMediaItems.filter(item => item.guid == id).forEach(item => { - this.selectedMediaItems.splice(this.selectedMediaItems.indexOf(item), 1) - }) - }, - select_hasMediaItem(id) { - let found = this.selectedMediaItems.find(item => item.guid == id) - if (found) { - return true - } else { - return false - } - }, - select_selectMediaItem(id, kind, index, guid, library) { - if (!this.select_hasMediaItem(guid)) { - this.selectedMediaItems.push({ - id: id, - kind: kind, - index: index, - guid: guid, - isLibrary: library - }) - } - }, - getPlaylistFolderChildren(id) { - return this.playlists.listing.filter(playlist => { - if (playlist.parent == id) { - return playlist - } - }) - }, - async refreshPlaylists() { - let self = this - this.apiCall('https://api.music.apple.com/v1/me/library/playlist-folders/p.playlistsroot/children/', res => { - self.playlists.listing = res.data - self.playlists.listing.forEach(playlist => { - playlist.parent = "p.playlistsroot" - }) - self.sortPlaylists() - }) - }, - sortPlaylists() { - this.playlists.listing.sort((a, b) => { - if (a.type === "library-playlist-folders" && b.type !== "library-playlist-folders") { - return -1 - } else if (a.type !== "library-playlist-folders" && b.type === "library-playlist-folders") { - return 1 - } else { - return 0 - } - }) - }, - playlistHeaderContextMenu(event) { - let menu = { - items: [{ - name: app.getLz('term.createNewPlaylist'), - action: () => { - this.newPlaylist() - } - }, - { - name: app.getLz('term.createNewPlaylistFolder'), - action: () => { - this.newPlaylistFolder() - } - } - ] - } - this.showMenuPanel(menu, event) - }, - async editPlaylistFolder(id, name = app.getLz('term.newPlaylist')) { - let self = this - this.mk.api.v3.music( - `/v1/me/library/playlist-folders/${id}`, {}, { - fetchOptions: { - method: "PATCH", - body: JSON.stringify({ - attributes: {name: name} - }) - } - } - ).then(res => { - self.refreshPlaylists() - }) - }, - async editPlaylist(id, name = app.getLz('term.newPlaylist')) { - let self = this - this.mk.api.v3.music( - `/v1/me/library/playlists/${id}`, {}, { - fetchOptions: { - method: "PATCH", - body: JSON.stringify({ - attributes: {name: name} - }) - } - } - ).then(res => { - self.refreshPlaylists() - }) - }, - copyToClipboard(str) { - if (navigator.userAgent.includes('Darwin') || navigator.appVersion.indexOf("Mac")!=-1) { - this.darwinShare(str) - } else { - notyf.success(app.getLz('term.share.success')) - navigator.clipboard.writeText(str).then(r => console.log("Copied to clipboard.")) - } - }, - newPlaylist(name = app.getLz('term.newPlaylist'), tracks = []) { - let self = this - let request = { - name: name - } - if (tracks.length > 0) { - request.tracks = tracks - } - app.mk.api.v3.music(`/v1/me/library/playlists`, {}, { - fetchOptions: { - method: "POST", - body: JSON.stringify({ - "attributes": {"name": name}, - "relationships": { - "tracks": {"data": tracks}, - } - }) - } - }).then(res => { - res = res.data.data[0] - console.log(res) - self.appRoute(`playlist_` + res.id); - self.showingPlaylist = []; - self.getPlaylistFromID(app.page.substring(9)) - self.playlists.listing.push({ - id: res.id, - attributes: { - name: name - }, - parent: "p.playlistsroot" - }) - self.sortPlaylists() - setTimeout(() => { - app.refreshPlaylists() - }, 8000) - }) - }, - deletePlaylist(id) { - let self = this - if (confirm(app.getLz('term.deletePlaylist'))) { - app.mk.api.v3.music(`/v1/me/library/playlists/${id}`, {}, { - fetchOptions: { - method: "DELETE" - } - }).then(res => { - // remove this playlist from playlists.listing if it exists - let found = self.playlists.listing.find(item => item.id == id) - if (found) { - self.playlists.listing.splice(self.playlists.listing.indexOf(found), 1) - } - }) - } - }, - async showCollection(response, title, type, requestBody = {}) { - let self = this - console.log(response) - this.collectionList.requestBody = {} - this.collectionList.response = response - this.collectionList.title = title - this.collectionList.type = type - this.collectionList.requestBody = requestBody - app.appRoute("collection-list") - }, - async showArtistView(artist, title, view) { - let response = (await app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/artists/${artist}/view/${view}`, {}, {includeResponseMeta: !0})).data - console.log(response) - await this.showCollection(response, title, "artists") - }, - async showRecordLabelView(label, title, view) { - let response = (await app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/record-labels/${label}/view/${view}`)).data - await this.showCollection(response, title, "record-labels") - }, - async showSearchView(term, group, title) { - - let requestBody = { - platform: "web", - groups: group, - types: "activities,albums,apple-curators,artists,curators,editorial-items,music-movies,music-videos,playlists,songs,stations,tv-episodes,uploaded-videos,record-labels", - limit: 25, - relate: { - editorialItems: ["contents"] - }, - include: { - albums: ["artists"], - songs: ["artists"], - "music-videos": ["artists"] - }, - extend: "artistUrl", - fields: { - artists: "url,name,artwork,hero", - albums: "artistName,artistUrl,artwork,contentRating,editorialArtwork,name,playParams,releaseDate,url" - }, - with: "serverBubbles,lyricHighlights", - art: { - "url": "cf" - }, - omit: { - resource: ["autos"] - }, - groups: group - } - let response = await app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/search?term=${term}`, requestBody, { - includeResponseMeta: !0 - }) - - console.log('searchres', response) - let responseFormat = { - data: response.data.results[group].data, - next: response.data.results[group].next, - groups: group - } - await this.showCollection(responseFormat, title, "search", requestBody) - }, - async getPlaylistContinuous(response, transient = false) { - response = response.data.data[0] - let self = this - let playlistId = response.id - if (!transient) this.playlists.loadingState = 0 - this.showingPlaylist = response - if (!response.relationships.tracks.next) { - this.playlists.loadingState = 1 - return - } - - function getPlaylistTracks(next) { - app.apiCall(app.musicBaseUrl + next, res => { - if (self.showingPlaylist.id != playlistId) { - return - } - self.showingPlaylist.relationships.tracks.data = self.showingPlaylist.relationships.tracks.data.concat(res.data) - if (res.next) { - getPlaylistTracks(res.next) - } else { - self.playlists.loadingState = 1 - } - }) - } - - getPlaylistTracks(response.relationships.tracks.next) - - }, - async getPlaylistFromID(id, transient = false) { - let self = this - const params = { - include: "tracks", - platform: "web", - "include[library-playlists]": "catalog,tracks", - "fields[playlists]": "curatorName,playlistType,name,artwork,url,playParams", - "include[library-songs]": "catalog,artists,albums,playParams,name,artwork,url", - "fields[catalog]": "artistUrl,albumUrl,url", - "fields[songs]": "artistUrl,albumUrl,playParams,name,artwork,url,artistName,albumName,durationInMillis" - } - if (!transient) { - this.playlists.loadingState = 0; - } - app.mk.api.v3.music(`/v1/me/library/playlists/${id}`, params).then(res => { - self.getPlaylistContinuous(res, transient) - }).catch((e) => { - console.log(e); - try { - app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/playlists/${id}`, params).then(res => { - self.getPlaylistContinuous(res, transient) - }) - } catch (err) { - console.log(err) - } - }) - - }, - async getArtistFromID(id) { - this.page = "" - const artistData = await this.mkapi("artists", false, id, { - "views": "featured-release,full-albums,appears-on-albums,featured-albums,featured-on-albums,singles,compilation-albums,live-albums,latest-release,top-music-videos,similar-artists,top-songs,playlists,more-to-hear,more-to-see", - "extend": "artistBio,bornOrFormed,editorialArtwork,editorialVideo,isGroup,origin,hero", - "extend[playlists]": "trackCount", - "include[songs]": "albums", - "fields[albums]": "artistName,artistUrl,artwork,contentRating,editorialArtwork,editorialVideo,name,playParams,releaseDate,url,trackCount", - "limit[artists:top-songs]": 20, - "art[url]": "f" - }, {includeResponseMeta: !0}) - console.log(artistData.data.data[0]) - this.artistPage.data = artistData.data.data[0] - this.page = "artist-page" - }, - progressBarStyle() { - let val = this.playerLCD.playbackDuration - if (this.playerLCD.desiredDuration > 0) { - val = this.playerLCD.desiredDuration - } - let min = 0 - let max = this.mk.currentPlaybackDuration - let value = (val - min) / (max - min) * 100 - return { - 'background': ('linear-gradient(to right, var(--keyColor) 0%, var(--keyColor) ' + value + '%, #333 ' + value + '%, #333 100%)') - } - }, - async getRecursive(response) { - // if response has a .next() property run it and keep running until .next is null or undefined - // and then return the response concatenated with the results of the next() call - function executeRequest() { - if (response.next) { - return response.next().then(executeRequest) - } else { - return response - } - } - - return executeRequest() - }, - async getRecursive2(response, sendTo) { - let returnData = { - "data": [], - "meta": {} - } - if (response.next) { - console.log("has next") - returnData.data.concat(response.data) - returnData.meta = response.meta - return await this.getRecursive(await response.next()) - } else { - console.log("no next") - returnData.data.concat(response.data) - return returnData - } - }, - async getSearchHints() { - if (this.search.term == "") { - this.search.hints = [] - return - } - let hints = await (await app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/search/hints?term=${this.search.term}`)).data.results - this.search.hints = hints ? hints.terms : [] - }, - getSongProgress() { - if (this.playerLCD.userInteraction) { - return this.playerLCD.desiredDuration - } else { - return this.playerLCD.playbackDuration - } - }, - convertTime(time) { - if (typeof time !== "number") { - time = parseInt(time) - } - - const timeGates = { - 600: 15, - 3600: 14, - 36000: 12, - } - - for (let key in timeGates) { - if (time < key) { - return new Date(time * 1000).toISOString().substring(timeGates[key], 19) - } - } - - return new Date(time * 1000).toISOString().substring(11, 19) - }, - hashCode(str) { - let hash = 0, - i, chr; - if (str.length === 0) return hash; - for (i = 0; i < str.length; i++) { - chr = str.charCodeAt(i); - hash = ((hash << 5) - hash) + chr; - hash |= 0; // Convert to 32bit integer - } - return hash; - }, - appRoute(route) { - console.log(route) - if (route == "" || route == "#" || route == "/") { - return; - } - route = route.replace(/#/g, "") - // if the route contains does not include a / then route to the page directly - if (route.indexOf("/") == -1) { - this.page = route - window.location.hash = this.page - return - } - let hash = route.split("/") - let page = hash[0] - let id = hash[1] - let isLibrary = hash[2] ?? false - console.log(`page: ${page} id: ${id} isLibrary: ${isLibrary}`) - this.routeView({ - kind: page, - id: id, - attributes: { - playParams: {kind: page, id: id, isLibrary: isLibrary} - } - }) - }, - routeView(item) { - let kind = (item.attributes.playParams ? (item.attributes.playParams.kind ?? (item.type ?? '')) : (item.type ?? '')); - let id = (item.attributes.playParams ? (item.attributes.playParams.id ?? (item.id ?? '')) : (item.id ?? '')); - ; - let isLibrary = item.attributes.playParams ? (item.attributes.playParams.isLibrary ?? false) : false; - console.log(kind, id, isLibrary) - if (kind.includes("playlist") || kind.includes("album")) { - app.showingPlaylist = []; - } - if (kind.toString().includes("apple-curator")) { - kind = "appleCurator" - app.getTypeFromID("appleCurator", (id), false, { - platform: "web", - include: "grouping,playlists", - extend: "editorialArtwork", - "art[url]": "f" - }); - window.location.hash = `${kind}/${id}` - document.querySelector("#app-content").scrollTop = 0 - } else if (kind.toString().includes("artist")) { - app.getArtistInfo(id, isLibrary) - window.location.hash = `${kind}/${id}${isLibrary ? "/" + isLibrary : ''}` - document.querySelector("#app-content").scrollTop = 0 - - } else if (kind.toString().includes("record-label") || kind.toString().includes("curator")) { - if (kind.toString().includes("record-label")) { - kind = "recordLabel" - } else { - kind = "curator" - } - app.page = (kind) + "_" + (id); - app.getTypeFromID((kind), (id), (isLibrary), { - extend: "editorialVideo", - include: 'grouping,playlists', - views: 'top-releases,latest-releases,top-artists' - }); - window.location.hash = `${kind}/${id}` - document.querySelector("#app-content").scrollTop = 0 - } else if (!kind.toString().includes("radioStation") && !kind.toString().includes("song") && !kind.toString().includes("musicVideo") && !kind.toString().includes("uploadedVideo") && !kind.toString().includes("music-movie")) { - let params = { - extend: "offers,editorialVideo", - "views": "appears-on,more-by-artist,related-videos,other-versions,you-might-also-like,video-extras,audio-extras", - } - - if (this.cfg.advanced.experiments.includes('inline-playlists')) { - let showModal = kind.toString().includes("album") || kind.toString().includes("playlist") - if (app.page.includes("playlist") || app.page.includes("album")) { - showModal = false - } - if (showModal) { - app.modals.showPlaylist = true - app.chrome.contentAreaScrolling = false - } else { - app.page = (kind) + "_" + (id); - window.location.hash = `${kind}/${id}${isLibrary ? "/" + isLibrary : ''}` - } - } else { - app.page = (kind) + "_" + (id); - window.location.hash = `${kind}/${id}${isLibrary ? "/" + isLibrary : ''}` - } - - - app.getTypeFromID((kind), (id), (isLibrary), params); - // document.querySelector("#app-content").scrollTop = 0 - } else { - app.playMediaItemById((id), (kind), (isLibrary), item.attributes.url ?? '') - } - }, - prevButton() { - if (!app.prevButtonBackIndicator && app.mk.nowPlayingItem && app.mk.currentPlaybackTime > 2) { - app.prevButtonBackIndicator = true; - app.mk.seekToTime(0); - } else { - app.prevButtonBackIndicator = false; - app.mk.skipToPreviousItem() - } - }, - async getNowPlayingItemDetailed(target) { - let u = await app.mkapi(app.mk.nowPlayingItem.playParams.kind, (app.mk.nowPlayingItem.songId == -1), (app.mk.nowPlayingItem.songId != -1) ? app.mk.nowPlayingItem.songId : app.mk.nowPlayingItem["id"], {"include[songs]": "albums,artists"}); - app.searchAndNavigate(u.data.data[0], target) - }, - async searchAndNavigate(item, target) { - let self = this - app.tmpVar = item; - switch (target) { - case "artist": - let artistId = ''; - try { - if (item.relationships.artists && item.relationships.artists.data.length > 0 && !item.relationships.artists.data[0].type.includes("library")) { - if (item.relationships.artists.data[0].type === "artist" || item.relationships.artists.data[0].type === "artists") { - artistId = item.relationships.artists.data[0].id - } - } - if (artistId == '') { - const url = (item.relationships.catalog.data[0].attributes.artistUrl); - artistId = (url).substring(url.lastIndexOf('/') + 1) - if (artistId.includes('viewCollaboration')) { - artistId = artistId.substring(artistId.lastIndexOf('ids=') + 4, artistId.lastIndexOf('-')) - } - } - } catch (_) { - } - - if (artistId == "") { - let artistQuery = (await app.mk.api.v3.music(`v1/catalog/${app.mk.storefrontId}/search?term=${item.attributes.artistName}`, { - limit: 1, - types: 'artists' - })).data.results; - try { - if (artistQuery.artists.data.length > 0) { - artistId = artistQuery.artists.data[0].id; - console.log(artistId) - } - } catch (e) { - } - } - console.log(artistId); - if (artistId != "") - self.appRoute(`artist/${artistId}`) - break; - case "album": - let albumId = ''; - try { - if ((item.type ?? item.playParams?.kind ?? "") == "albums") { - albumId = item.id ?? "" - } else if (item.relationships.albums && item.relationships.albums.data.length > 0 && !item.relationships.albums.data[0].type.includes("library")) { - if (item.relationships.albums.data[0].type === "album" || item.relationships.albums.data[0].type === "albums") { - albumId = item.relationships.albums.data[0].id - } - } - if (albumId == '') { - const url = (item.relationships.catalog.data[0].attributes.url); - albumId = (url).substring(url.lastIndexOf('/') + 1) - if (albumId.includes("?i=")) { - albumId = albumId.substring(0, albumId.indexOf("?i=")) - } - } - } catch (_) { - } - - if (albumId == "") { - try { - let albumQuery = (await app.mk.api.v3.music(`v1/catalog/${app.mk.storefrontId}/search?term=${(item.attributes.albumName ?? item.attributes.name ?? "") + " " + (item.attributes.artistName ?? "")}`, { - limit: 1, - types: 'albums' - })).data.results; - if (albumQuery.albums.data.length > 0) { - albumId = albumQuery.albums.data[0].id; - console.log(albumId) - } - } catch (e) { - } - } - if (albumId != "") { - self.appRoute(`album/${albumId}`) - } - break; - case "recordLabel": - let labelId = ''; - try { - labelId = item.relationships['record-labels'].data[0].id - } catch (_) { - } - - if (labelId == "") { - try { - let labelQuery = (await app.mk.api.v3.music(`v1/catalog/${app.mk.storefrontId}/search?term=${item.attributes.recordLabel}`, { - limit: 1, - types: 'record-labels' - })).data.results; - if (labelQuery["record-labels"].data.length > 0) { - labelId = labelQuery["record-labels"].data[0].id; - console.log(labelId) - } - } catch (e) { - } - } - if (labelId != "") { - app.showingPlaylist = [] - await app.getTypeFromID("recordLabel", labelId, false, {views: 'top-releases,latest-releases,top-artists'}); - app.page = "recordLabel_" + labelId; - } - - break; - } - }, - exitMV() { - MusicKit.getInstance().stop() - document.getElementById("apple-music-video-container").style.display = "none"; - }, - getArtistInfo(id, isLibrary) { - this.getArtistFromID(id) - //this.getTypeFromID("artist",id,isLibrary,query) - }, - playMediaItem(item) { - let kind = (item.attributes.playParams ? (item.attributes.playParams.kind ?? (item.type ?? '')) : (item.type ?? '')); - let id = (item.attributes.playParams ? (item.attributes.playParams.id ?? (item.id ?? '')) : (item.id ?? '')); - ; - let isLibrary = item.attributes.playParams ? (item.attributes.playParams.isLibrary ?? false) : false; - let truekind = (!kind.endsWith("s")) ? (kind + "s") : kind; - console.log(kind, id, isLibrary) - app.mk.stop().then(() => { - if (kind.includes("artist")) { - app.mk.setStationQueue({artist: 'a-' + id}).then(() => { - app.mk.play() - }) - } - // else if (kind.includes("playlist") && (id.startsWith("p.") || id.startsWith("pl."))){ - // /* Randomize array in-place using Durstenfeld shuffle algorithm */ - // function shuffleArray(array) { - // for (var i = array.length - 1; i > 0; i--) { - // var j = Math.floor(Math.random() * (i + 1)); - // var temp = array[i]; - // array[i] = array[j]; - // array[j] = temp; - // } - // } - // app.mk.clearQueue().then(function () { { - // app.mk.setQueue({[truekind]: [item.attributes.playParams.id ?? item.id]}).then(function () { - // app.mk.play().then(function (){ - // app.mk.clearQueue().then(function (){ - // var playlistId = id - // const params = { - // include: "tracks", - // platform: "web", - // "include[library-playlists]": "catalog,tracks", - // "fields[playlists]": "curatorName,playlistType,name,artwork,url", - // "include[library-songs]": "catalog,artists,albums", - // "fields[catalog]": "artistUrl,albumUrl", - // "fields[songs]": "artistUrl,albumUrl" - // } - // var playlistId = '' - - // try { - // function getPlaylist(id, params, isLibrary){ - // if (isLibrary){ - // return app.mk.api.library.playlist(id, params) - // } else { return app.mk.api.playlist(id, params)} - // } - // getPlaylist(id, params, isLibrary).then(res => { - // let query = res.relationships.tracks.data.map(item => new MusicKit.MediaItem(item)); - // if (app.mk.shuffleMode == 1){shuffleArray(query); console.log('shf')} - // app.mk.queue.append(query) - // if (!res.relationships.tracks.next) { - // return - // } else { - // getPlaylistTracks(res.relationships.tracks.next) - // } - - // function getPlaylistTracks(next) { - // app.apiCall(app.musicBaseUrl + next, res => { - // if (res.id != playlistId) { - // return - // } - // let query = res.data.map(item => new MusicKit.MediaItem(item)) - // if (app.mk.shuffleMode == 1){shuffleArray(query); console.log('shf')} - // app.mk.queue.append(query) - - // if (res.next) { - // getPlaylistTracks(res.next) - // } - // }) - // } - // }) - // } catch (e) {} - - - // }) - // }) - // }) - // } - // }) - // } - else { - app.playMediaItemById((id), (kind), (isLibrary), item.attributes.url ?? '') - } - }) - }, - async getTypeFromID(kind, id, isLibrary = false, params = {}, params2 = {}) { - let a; - if (kind == "album" | kind == "albums") { - params["include"] = "tracks,artists,record-labels,catalog"; - } - try { - a = await this.mkapi(kind.toString(), isLibrary, id.toString(), params, params2); - } catch (e) { - console.log(e); - try { - a = await this.mkapi(kind.toString(), !isLibrary, id.toString(), params, params2); - } catch (err) { - console.log(err); - a = [] - } finally { - if (kind == "appleCurator") { - app.appleCurator = a.data.data[0] - } else { - this.getPlaylistContinuous(a) - } - } - } finally { - if (kind == "appleCurator") { - app.appleCurator = a.data.data[0] - } else { - this.getPlaylistContinuous(a) - } - } - ; - }, - searchLibrarySongs() { - let self = this - let prefs = this.cfg.libraryPrefs.songs - - function sortSongs() { - // sort this.library.songs.displayListing by song.attributes[self.library.songs.sorting] in descending or ascending order based on alphabetical order and numeric order - // check if song.attributes[self.library.songs.sorting] is a number and if so, sort by number if not, sort by alphabetical order ignoring case - self.library.songs.displayListing.sort((a, b) => { - let aa = a.attributes[prefs.sort] - let bb = b.attributes[prefs.sort] - if (self.library.songs.sorting == "genre") { - aa = a.attributes.genreNames[0] - bb = b.attributes.genreNames[0] - } - if (aa == null) { - aa = "" - } - if (bb == null) { - bb = "" - } - if (prefs.sortOrder == "asc") { - if (aa.toString().match(/^\d+$/) && bb.toString().match(/^\d+$/)) { - return aa - bb - } else { - return aa.toString().toLowerCase().localeCompare(bb.toString().toLowerCase()) - } - } else if (prefs.sortOrder == "desc") { - if (aa.toString().match(/^\d+$/) && bb.toString().match(/^\d+$/)) { - return bb - aa - } else { - return bb.toString().toLowerCase().localeCompare(aa.toString().toLowerCase()) - } - } - }) - } - - if (this.library.songs.search == "") { - this.library.songs.displayListing = this.library.songs.listing - sortSongs() - } else { - this.library.songs.displayListing = this.library.songs.listing.filter(item => { - let itemName = item.attributes.name.toLowerCase() - let searchTerm = this.library.songs.search.toLowerCase() - let artistName = "" - let albumName = "" - if (item.attributes.artistName != null) { - artistName = item.attributes.artistName.toLowerCase() - } - if (item.attributes.albumName != null) { - albumName = item.attributes.albumName.toLowerCase() - } - - // remove any non-alphanumeric characters and spaces from search term and item name - searchTerm = searchTerm.replace(/[^a-z0-9 ]/gi, "") - itemName = itemName.replace(/[^a-z0-9 ]/gi, "") - artistName = artistName.replace(/[^a-z0-9 ]/gi, "") - albumName = albumName.replace(/[^a-z0-9 ]/gi, "") - - if (itemName.includes(searchTerm) || artistName.includes(searchTerm) || albumName.includes(searchTerm)) { - return item - } - }) - sortSongs() - } - }, - // make a copy of searchLibrarySongs except use Albums instead of Songs - searchLibraryAlbums(index) { - let self = this - - function sortAlbums() { - // sort this.library.albums.displayListing by album.attributes[self.library.albums.sorting[index]] in descending or ascending order based on alphabetical order and numeric order - // check if album.attributes[self.library.albums.sorting[index]] is a number and if so, sort by number if not, sort by alphabetical order ignoring case - self.library.albums.displayListing.sort((a, b) => { - let aa = a.attributes[self.library.albums.sorting[index]] - let bb = b.attributes[self.library.albums.sorting[index]] - if (self.library.albums.sorting[index] == "genre") { - aa = a.attributes.genreNames[0] - bb = b.attributes.genreNames[0] - } - if (aa == null) { - aa = "" - } - if (bb == null) { - bb = "" - } - if (self.library.albums.sortOrder[index] == "asc") { - if (aa.toString().match(/^\d+$/) && bb.toString().match(/^\d+$/)) { - return aa - bb - } else { - return aa.toString().toLowerCase().localeCompare(bb.toString().toLowerCase()) - } - } else if (self.library.albums.sortOrder[index] == "desc") { - if (aa.toString().match(/^\d+$/) && bb.toString().match(/^\d+$/)) { - return bb - aa - } else { - return bb.toString().toLowerCase().localeCompare(aa.toString().toLowerCase()) - } - } - }) - } - - if (this.library.albums.search == "") { - this.library.albums.displayListing = this.library.albums.listing - sortAlbums() - } else { - this.library.albums.displayListing = this.library.albums.listing.filter(item => { - let itemName = item.attributes.name.toLowerCase() - let searchTerm = this.library.albums.search.toLowerCase() - let artistName = "" - let albumName = "" - if (item.attributes.artistName != null) { - artistName = item.attributes.artistName.toLowerCase() - } - if (item.attributes.albumName != null) { - albumName = item.attributes.albumName.toLowerCase() - } - - // remove any non-alphanumeric characters and spaces from search term and item name - searchTerm = searchTerm.replace(/[^a-z0-9 ]/gi, "") - itemName = itemName.replace(/[^a-z0-9 ]/gi, "") - artistName = artistName.replace(/[^a-z0-9 ]/gi, "") - albumName = albumName.replace(/[^a-z0-9 ]/gi, "") - - if (itemName.includes(searchTerm) || artistName.includes(searchTerm) || albumName.includes(searchTerm)) { - return item - } - }) - sortAlbums() - } - }, - // make a copy of searchLibrarySongs except use Albums instead of Songs - searchLibraryArtists(index) { - let self = this - - function sortArtists() { - // sort this.library.albums.displayListing by album.attributes[self.library.albums.sorting[index]] in descending or ascending order based on alphabetical order and numeric order - // check if album.attributes[self.library.albums.sorting[index]] is a number and if so, sort by number if not, sort by alphabetical order ignoring case - self.library.artists.displayListing.sort((a, b) => { - let aa = a.attributes[self.library.artists.sorting[index]] - let bb = b.attributes[self.library.artists.sorting[index]] - if (self.library.artists.sorting[index] == "genre") { - aa = a.attributes.genreNames[0] - bb = b.attributes.genreNames[0] - } - if (aa == null) { - aa = "" - } - if (bb == null) { - bb = "" - } - if (self.library.artists.sortOrder[index] == "asc") { - if (aa.toString().match(/^\d+$/) && bb.toString().match(/^\d+$/)) { - return aa - bb - } else { - return aa.toString().toLowerCase().localeCompare(bb.toString().toLowerCase()) - } - } else if (self.library.artists.sortOrder[index] == "desc") { - if (aa.toString().match(/^\d+$/) && bb.toString().match(/^\d+$/)) { - return bb - aa - } else { - return bb.toString().toLowerCase().localeCompare(aa.toString().toLowerCase()) - } - } - }) - } - - if (this.library.artists.search == "") { - this.library.artists.displayListing = this.library.artists.listing - sortArtists() - } else { - this.library.artists.displayListing = this.library.artists.listing.filter(item => { - let itemName = item.attributes.name.toLowerCase() - let searchTerm = this.library.artists.search.toLowerCase() - let artistName = "" - let albumName = "" - // if (item.attributes.artistName != null) { - // artistName = item.attributes.artistName.toLowerCase() - // } - // if (item.attributes.albumName != null) { - // albumName = item.attributes.albumName.toLowerCase() - // } - - // remove any non-alphanumeric characters and spaces from search term and item name - searchTerm = searchTerm.replace(/[^a-z0-9 ]/gi, "") - itemName = itemName.replace(/[^a-z0-9 ]/gi, "") - - - if (itemName.includes(searchTerm) || artistName.includes(searchTerm) || albumName.includes(searchTerm)) { - return item - } - }) - sortArtists() - } - }, - getSidebarItemClass(page) { - if (this.page == page) { - return ["active"] - } else { - return [] - } - }, - async mkapi(method, library = false, term, params = {}, params2 = {}, attempts = 0) { - if (method.includes(`recordLabel`)) { - method = `record-labels` - } - if (method.includes(`appleCurator`)) { - method = `apple-curators` - } - if (attempts > 3) { - return - } - let truemethod = (!method.endsWith("s")) ? (method + "s") : method; - try { - if (library) { - return await this.mk.api.v3.music(`v1/me/library/${truemethod}/${term.toString()}`, params, params2) - } else { - return await this.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/${truemethod}/${term.toString()}`, params, params2) - } - } catch (e) { - console.log(e) - return await this.mkapi(method, library, term, params, params2, attempts + 1) - } - }, - getLibraryGenres() { - let genres = [] - genres = [] - this.library.songs.listing.forEach((item) => { - item.attributes.genreNames.forEach((genre) => { - if (!genres.includes(genre)) { - genres.push(genre) - } - }) - }) - return genres - }, - async getLibrarySongsFull(force = false) { - let self = this - let library = [] - let downloaded = null; - if ((this.library.songs.downloadState == 2) && !force) { - return - } - if (this.library.songs.downloadState == 1) { - return - } - if (localStorage.getItem("librarySongs") != null) { - this.library.songs.listing = JSON.parse(localStorage.getItem("librarySongs")) - this.searchLibrarySongs() - } - if (this.songstest) { - return - } - this.library.songs.downloadState = 1 - this.library.backgroundNotification.show = true - this.library.backgroundNotification.message = app.getLz('notification.updatingLibrarySongs') - - function downloadChunk() { - const params = { - "include[library-songs]": "catalog,artists,albums", - "fields[artists]": "name,url,id", - "fields[albums]": "name,url,id", - platform: "web", - "fields[catalog]": "artistUrl,albumUrl", - "fields[songs]": "artistName,artistUrl,artwork,contentRating,editorialArtwork,name,playParams,releaseDate,url", - limit: 100, - } - const safeparams = { - "platform": "web", - "limit": 80, - } - self.library.songs.downloadState = 1 - if (downloaded == null) { - app.mk.api.v3.music(`/v1/me/library/songs/`, params).then((response) => { - processChunk(response.data) - }).catch((error) => { - console.log('safe loading'); - app.mk.api.v3.music(`/v1/me/library/songs/`, safeparams).then((response) => { - processChunk(response.data) - }).catch((error) => { - console.log('safe loading failed', error) - app.library.songs.downloadState = 2 - app.library.backgroundNotification.show = false - }) - }) - } else { - if (downloaded.next != null) { - app.mk.api.v3.music(downloaded.next, params).then((response) => { - processChunk(response.data) - }).catch((error) => { - console.log('safe loading'); - app.mk.api.v3.music(downloaded.next, safeparams).then((response) => { - processChunk(response.data) - }).catch((error) => { - console.log('safe loading failed', error) - app.library.songs.downloadState = 2 - app.library.backgroundNotification.show = false - }) - }) - } else { - console.log("Download next", downloaded.next) - } - } - } - - function processChunk(response) { - downloaded = response - library = library.concat(downloaded.data) - self.library.backgroundNotification.show = true - self.library.backgroundNotification.message = app.getLz('notification.updatingLibrarySongs') - self.library.backgroundNotification.total = downloaded.meta.total - self.library.backgroundNotification.progress = library.length - - if (downloaded.meta.total == 0) { - self.library.songs.downloadState = 3 - return - } - if (typeof downloaded.next == "undefined") { - console.log("downloaded.next is undefined") - self.library.songs.listing = library - self.library.songs.downloadState = 2 - self.library.backgroundNotification.show = false - self.searchLibrarySongs() - localStorage.setItem("librarySongs", JSON.stringify(library)) - } - if (downloaded.meta.total > library.length || typeof downloaded.meta.next != "undefined") { - console.log(`downloading next chunk - ${library.length} songs so far`) - downloadChunk() - } else { - self.library.songs.listing = library - self.library.songs.downloadState = 2 - self.library.backgroundNotification.show = false - self.searchLibrarySongs() - localStorage.setItem("librarySongs", JSON.stringify(library)) - // console.log(library) - } - } - - downloadChunk() - }, - // copy the getLibrarySongsFull function except change Songs to Albums - async getLibraryAlbumsFull(force = false, index) { - let self = this - let library = [] - let downloaded = null; - if ((this.library.albums.downloadState == 2 || this.library.albums.downloadState == 1) && !force) { - return - } - if (localStorage.getItem("libraryAlbums") != null) { - this.library.albums.listing = JSON.parse(localStorage.getItem("libraryAlbums")) - this.searchLibraryAlbums(index) - } - if (this.songstest) { - return - } - this.library.albums.downloadState = 1 - this.library.backgroundNotification.show = true - this.library.backgroundNotification.message = app.getLz('notification.updatingLibraryAlbums') - - function downloadChunk() { - self.library.albums.downloadState = 1 - const params = { - "include[library-albums]": "catalog,artists,albums", - "fields[artists]": "name,url,id", - "fields[albums]": "name,url,id", - platform: "web", - "fields[catalog]": "artistUrl,albumUrl", - "fields[albums]": "artistName,artistUrl,artwork,contentRating,editorialArtwork,name,playParams,releaseDate,url", - limit: 100, - } - const safeparams = { - platform: "web", - limit: "60", - "include[library-albums]": "artists", - "include[library-artists]": "catalog", - "include[albums]": "artists", - "fields[artists]": "name,url", - "fields[albums]": "artistName,artistUrl,artwork,contentRating,editorialArtwork,name,playParams,releaseDate,url", - "includeOnly": "catalog,artists" - } - if (downloaded == null) { - app.mk.api.v3.music(`/v1/me/library/albums/`, params).then((response) => { - processChunk(response.data) - }).catch((error) => { - console.log('safe loading'); - app.mk.api.v3.music(`/v1/me/library/albums/`, safeparams).then((response) => { - processChunk(response.data) - }).catch((error) => { - console.log('safe loading failed', error) - app.library.albums.downloadState = 2 - app.library.backgroundNotification.show = false - }) - }) - } else { - if (downloaded.next != null) { - app.mk.api.v3.music(downloaded.next, params).then((response) => { - processChunk(response.data) - }).catch((error) => { - console.log('safe loading'); - app.mk.api.v3.music(downloaded.next, safeparams).then((response) => { - processChunk(response.data) - }).catch((error) => { - console.log('safe loading failed', error); - app.library.albums.downloadState = 2 - app.library.backgroundNotification.show = false - }) - }) - } else { - console.log("Download next", downloaded.next) - } - } - } - - function processChunk(response) { - downloaded = response - library = library.concat(downloaded.data) - self.library.backgroundNotification.show = true - self.library.backgroundNotification.message = app.getLz('notification.updatingLibraryAlbums') - self.library.backgroundNotification.total = downloaded.meta.total - self.library.backgroundNotification.progress = library.length - if (downloaded.meta.total == 0) { - self.library.albums.downloadState = 3 - return - } - if (typeof downloaded.next == "undefined") { - console.log("downloaded.next is undefined") - self.library.albums.listing = library - self.library.albums.downloadState = 2 - self.library.backgroundNotification.show = false - localStorage.setItem("libraryAlbums", JSON.stringify(library)) - self.searchLibraryAlbums(index) - } - if (downloaded.meta.total > library.length || typeof downloaded.meta.next != "undefined") { - console.log(`downloading next chunk - ${library.length - } albums so far`) - downloadChunk() - } else { - self.library.albums.listing = library - self.library.albums.downloadState = 2 - self.library.backgroundNotification.show = false - localStorage.setItem("libraryAlbums", JSON.stringify(library)) - self.searchLibraryAlbums(index) - // console.log(library) - } - } - - downloadChunk() - }, - // copy the getLibrarySongsFull function except change Songs to Albums - async getLibraryArtistsFull(force = false, index) { - let self = this - let library = [] - let downloaded = null; - if ((this.library.artists.downloadState == 2 || this.library.artists.downloadState == 1) && !force) { - return - } - if (localStorage.getItem("libraryArtists") != null) { - this.library.artists.listing = JSON.parse(localStorage.getItem("libraryArtists")) - this.searchLibraryArtists(index) - } - if (this.songstest) { - return - } - this.library.artists.downloadState = 1 - this.library.backgroundNotification.show = true - this.library.backgroundNotification.message = app.getLz('notification.updatingLibraryArtists') - - function downloadChunk() { - self.library.artists.downloadState = 1 - const params = { - include: "catalog", - // "include[library-artists]": "catalog,artists,albums", - // "fields[artists]": "name,url,id", - // "fields[albums]": "name,url,id", - platform: "web", - // "fields[catalog]": "artistUrl,albumUrl", - // "fields[artists]": "artistName,artistUrl,artwork,contentRating,editorialArtwork,name,playParams,releaseDate,url", - limit: 100, - } - const safeparams = { - include: "catalog", - platform: "web", - limit: 50, - } - if (downloaded == null) { - app.mk.api.v3.music(`/v1/me/library/artists/`, params).then((response) => { - processChunk(response.data) - }).catch((error) => { - console.log('safe loading'); - app.mk.api.v3.music(`/v1/me/library/artists/`, safeparams).then((response) => { - processChunk(response.data) - }).catch((error) => { - console.log('safe loading failed', error) - app.library.artists.downloadState = 2 - app.library.backgroundNotification.show = false - }) - }) - - } else { - if (downloaded.next != null) { - app.mk.api.v3.music(downloaded.next, params).then((response) => { - processChunk(response.data) - }).catch((error) => { - console.log('safe loading'); - app.mk.api.v3.music(downloaded.next, safeparams).then((response) => { - processChunk(response.data) - }).catch((error) => { - console.log('safe loading failed', error) - app.library.artists.downloadState = 2 - app.library.backgroundNotification.show = false - }) - }) - } else { - console.log("Download next", downloaded.next) - } - - } - } - - function processChunk(response) { - downloaded = response - library = library.concat(downloaded.data) - self.library.backgroundNotification.show = true - self.library.backgroundNotification.message = app.getLz('notification.updatingLibraryArtists') - self.library.backgroundNotification.total = downloaded.meta.total - self.library.backgroundNotification.progress = library.length - if (downloaded.meta.total == 0) { - self.library.albums.downloadState = 3 - return - } - if (typeof downloaded.next == "undefined") { - console.log("downloaded.next is undefined") - self.library.artists.listing = library - self.library.artists.downloadState = 2 - self.library.artists.show = false - localStorage.setItem("libraryArtists", JSON.stringify(library)) - self.searchLibraryArtists(index) - } - if (downloaded.meta.total > library.length || typeof downloaded.meta.next != "undefined") { - console.log(`downloading next chunk - ${library.length - } artists so far`) - downloadChunk() - } else { - self.library.artists.listing = library - self.library.artists.downloadState = 2 - self.library.backgroundNotification.show = false - localStorage.setItem("libraryArtists", JSON.stringify(library)) - self.searchLibraryArtists(index) - // console.log(library) - } - } - - downloadChunk() - }, - getTotalTime() { - try { - if (app.showingPlaylist.relationships.tracks.data.length > 0) { - let time = Math.round([].concat(...app.showingPlaylist.relationships.tracks.data).reduce((a, {attributes: {durationInMillis}}) => a + durationInMillis, 0) / 1000); - let hours = Math.floor(time / 3600) - let mins = Math.floor(time / 60) % 60 - let secs = time % 60 - return app.showingPlaylist.relationships.tracks.data.length + " " + app.getLz('term.tracks') + ", " + ((hours > 0) ? (hours + (" " + ((hours > 1) ? app.getLz('term.time.hours') + ", " : app.getLz('term.time.hour') + ", "))) : "") + ((mins > 0) ? (mins + ((mins > 1) ? " " + app.getLz('term.time.minutes') + ", " : " " + app.getLz('term.time.minute') + ", ")) : "") + secs + ((secs > 1) ? " " + app.getLz('term.time.seconds') + "." : " " + app.getLz('term.time.second') + "."); - } else return "" - } catch (err) { - return "" - } - }, - async getLibrarySongs() { - let response = await this.mkapi("songs", true, "", {limit: 100}, {includeResponseMeta: !0}) - this.library.songs.listing = response.data.data - this.library.songs.meta = response.data.meta - }, - async getLibraryAlbums() { - let response = await this.mkapi("albums", true, "", {limit: 100}, {includeResponseMeta: !0}) - this.library.albums.listing = response.data.data - this.library.albums.meta = response.data.meta - }, - async getListenNow(attempt = 0) { - if (this.listennow.timestamp > Date.now() - 120000) { - return - } - - if (attempt > 3) { - return - } - try { - this.listennow = (await this.mk.api.v3.music(`v1/me/recommendations?timezone=${encodeURIComponent(this.formatTimezoneOffset())}`, { - name: "listen-now", - with: "friendsMix,library,social", - "art[social-profiles:url]": "c", - "art[url]": "c,f", - "omit[resource]": "autos", - "relate[editorial-items]": "contents", - extend: ["editorialCard", "editorialVideo"], - "extend[albums]": ["artistUrl"], - "extend[library-albums]": ["artistUrl", "editorialVideo"], - "extend[playlists]": ["artistNames", "editorialArtwork", "editorialVideo"], - "extend[library-playlists]": ["artistNames", "editorialArtwork", "editorialVideo"], - "extend[social-profiles]": "topGenreNames", - "include[albums]": "artists", - "include[songs]": "artists", - "include[music-videos]": "artists", - "fields[albums]": ["artistName", "artistUrl", "artwork", "contentRating", "editorialArtwork", "editorialVideo", "name", "playParams", "releaseDate", "url"], - "fields[artists]": ["name", "url"], - "extend[stations]": ["airDate", "supportsAirTimeUpdates"], - "meta[stations]": "inflectionPoints", - types: "artists,albums,editorial-items,library-albums,library-playlists,music-movies,music-videos,playlists,stations,uploaded-audios,uploaded-videos,activities,apple-curators,curators,tv-shows,social-upsells", - platform: "web" - }, { - includeResponseMeta: !0, - reload: !0 - })).data; - this.listennow.timestamp = Date.now() - console.log(this.listennow) - } catch (e) { - console.log(e) - this.getListenNow(attempt + 1) - } - }, - async getBrowsePage(attempt = 0) { - if (this.browsepage.timestamp > Date.now() - 120000) { - return - } - if (attempt > 3) { - return - } - try { - let browse = await app.mk.api.v3.music(`/v1/editorial/${app.mk.storefrontId}/groupings`, { - platform: "web", - name: "music", - "omit[resource:artists]": "relationships", - "include[albums]": "artists", - "include[songs]": "artists", - "include[music-videos]": "artists", - extend: "editorialArtwork,artistUrl", - "fields[artists]": "name,url,artwork,editorialArtwork,genreNames,editorialNotes", - "art[url]": "f" - }); - this.browsepage = browse.data.data[0]; - this.browsepage.timestamp = Date.now() - console.log(this.browsepage) - } catch (e) { - console.log(e) - this.getBrowsePage(attempt + 1) - } - }, - async getRadioStations(attempt = 0) { - if (attempt > 3) { - return - } - try { - this.radio.personal = (await app.mk.api.v3.music(`/v1/me/recent/radio-stations`, { - "platform": "web", - "art[url]": "f" - })).data.data; - } catch (e) { - console.log(e) - this.getRadioStations(attempt + 1) - } - }, - async getMadeForYou(attempt = 0) { - if (attempt > 3) { - return - } - try { - mfu = await app.mk.api.v3.music("/v1/me/library/playlists?platform=web&extend=editorialVideo&fields%5Bplaylists%5D=lastModifiedDate&filter%5Bfeatured%5D=made-for-you&include%5Blibrary-playlists%5D=catalog&fields%5Blibrary-playlists%5D=artwork%2Cname%2CplayParams%2CdateAdded") - this.madeforyou = mfu.data - } catch (e) { - console.log(e) - this.getMadeForYou(attempt + 1) - } - }, - newPlaylistFolder(name = app.getLz('term.newPlaylistFolder')) { - let self = this - this.mk.api.v3.music( - "/v1/me/library/playlist-folders/", {}, { - fetchOptions: { - method: "POST", - body: JSON.stringify({ - attributes: {name: name} - }) - } - } - ).then((res) => { - let playlist = (res.data.data[0]) - self.playlists.listing.push({ - id: playlist.id, - attributes: { - name: playlist.attributes.name - }, - type: "library-playlist-folders", - parent: "p.playlistsroot" - }) - self.sortPlaylists() - setTimeout(() => { - app.refreshPlaylists() - }, 13000) - }) - }, - unauthorize() { - this.mk.unauthorize() - }, - showSearch() { - this.page = "search" - }, - loadLyrics() { - const musicType = (MusicKit.getInstance().nowPlayingItem != null) ? MusicKit.getInstance().nowPlayingItem["type"] ?? '' : ''; - console.log("mt", musicType) - if (musicType === "musicVideo") { - this.loadYTLyrics(); - } else { - if (app.cfg.lyrics.enable_mxm) { - this.loadMXM(); - } else { - this.loadAMLyrics(); - } - } - }, - loadAMLyrics() { - const songID = (this.mk.nowPlayingItem != null) ? this.mk.nowPlayingItem["_songId"] ?? -1 : -1; - // this.getMXM( trackName, artistName, 'en', duration); - if (songID != -1) { - MusicKit.getInstance().api.lyric(songID) - .then((response) => { - this.lyricsMediaItem = response.attributes["ttml"] - this.parseTTML() - }) - } - }, - addToLibrary(id) { - let self = this - this.mk.addToLibrary(id).then((data) => { - self.getLibrarySongsFull(true) - }) - notyf.success('Added to library.'); - }, - removeFromLibrary(kind, id) { - let self = this - let truekind = (!kind.endsWith("s")) ? (kind + "s") : kind; - app.mk.api.v3.music(`v1/me/library/${truekind}/${id.toString()}`, {}, { - fetchOptions: { - method: "DELETE" - } - }).then((data) => { - self.getLibrarySongsFull(true) - }) - notyf.success('Removed from library.') - }, - - async losslessBadge() { - const songID = (this.mk.nowPlayingItem != null) ? this.mk.nowPlayingItem["_songId"] ?? -1 : -1; - if (app.cfg.advanced.ciderPPE && songID != -1) { - /**let extendedAssets = await app.mk.api.song(songID, {extend : 'extendedAssetUrls'}) - if (extendedAssets.attributes.audioTraits.includes('lossless')) {*/ - app.mk.nowPlayingItem['attributes']['lossless'] = true - CiderAudio.audioNodes.llpwEnabled = 1 - console.log("[Cider][Enhanced] Audio being processed by PPE") - /**} - else { - CiderAudio.audioNodes.llpwEnabled = 0 - } */ - } - - else { - CiderAudio.audioNodes.llpwEnabled = 0 - } - }, - async loadYTLyrics() { - const track = (this.mk.nowPlayingItem != null) ? this.mk.nowPlayingItem.title ?? '' : ''; - const artist = (this.mk.nowPlayingItem != null) ? this.mk.nowPlayingItem.artistName ?? '' : ''; - const time = (this.mk.nowPlayingItem != null) ? (Math.round((this.mk.nowPlayingItem.attributes["durationInMillis"] ?? -1000) / 1000) ?? -1) : -1; - ipcRenderer.invoke('getYTLyrics', track, artist).then((result) => { - if (result.length > 0) { - let ytid = result[0]['id']['videoId']; - if (app.cfg.lyrics.enable_yt) { - loadYT(ytid, app.cfg.lyrics.mxm_language ?? "en") - } else { - app.loadMXM() - } - } else { - app.loadMXM() - } - - function loadYT(id, lang) { - let req = new XMLHttpRequest(); - let url = `https://www.youtube.com/watch?&v=${id}`; - req.open('GET', url, true); - req.onerror = function (e) { - this.loadMXM(); - } - req.onload = function () { - // console.log(this.responseText); - res = this.responseText; - let captionurl1 = res.substring(res.indexOf(`{"playerCaptionsRenderer":{"baseUrl":"`) + (`{"playerCaptionsRenderer":{"baseUrl":"`).length); - let captionurl = captionurl1.substring(0, captionurl1.indexOf(`"`)); - if (captionurl.includes("timedtext")) { - let json = JSON.parse(`{"url": "${captionurl}"}`); - let newurl = json.url + `&lang=${lang}&format=ttml` - - let req2 = new XMLHttpRequest(); - - req2.open('GET', newurl, true); - req2.onerror = function (e) { - app.loadMXM(); - } - req2.onload = function () { - try { - const ttmlLyrics = this.responseText; - if (ttmlLyrics) { - this.lyricsMediaItem = ttmlLyrics - this.parseTTML() - } - } catch (e) { - app.loadMXM(); - } - - } - req2.send(); - } else { - - app.loadMXM(); - - } - } - req.send(); - } - - }) - - }, - loadMXM() { - let attempt = 0; - const track = encodeURIComponent((this.mk.nowPlayingItem != null) ? this.mk.nowPlayingItem.title ?? '' : ''); - const artist = encodeURIComponent((this.mk.nowPlayingItem != null) ? this.mk.nowPlayingItem.artistName ?? '' : ''); - const time = encodeURIComponent((this.mk.nowPlayingItem != null) ? (Math.round((this.mk.nowPlayingItem.attributes["durationInMillis"] ?? -1000) / 1000) ?? -1) : -1); - const id = encodeURIComponent((this.mk.nowPlayingItem != null) ? app.mk.nowPlayingItem._songId ?? '' : ''); - let lrcfile = ""; - let richsync = []; - const lang = app.cfg.lyrics.mxm_language // translation language - function revisedRandId() { - return Math.random().toString(36).replace(/[^a-z]+/g, '').substr(2, 10); - } - - /* get token */ - function getToken(mode, track, artist, songid, lang, time, id) { - if (attempt > 2) { - app.loadAMLyrics(); - } else { - attempt = attempt + 1; - let url = "https://apic-desktop.musixmatch.com/ws/1.1/token.get?app_id=web-desktop-app-v1.0&t=" + revisedRandId(); - let req = new XMLHttpRequest(); - req.overrideMimeType("application/json"); - req.open('GET', url, true); - req.setRequestHeader("authority", "apic-desktop.musixmatch.com"); - req.onload = function () { - let jsonResponse = JSON.parse(this.responseText); - let status2 = jsonResponse["message"]["header"]["status_code"]; - if (status2 == 200) { - let token = jsonResponse["message"]["body"]["user_token"] ?? ''; - if (token != "" && token != "UpgradeOnlyUpgradeOnlyUpgradeOnlyUpgradeOnly") { - console.log('200 token', mode); - // token good - app.mxmtoken = token; - - if (mode == 1) { - getMXMSubs(track, artist, app.mxmtoken, lang, time, id); - } else { - getMXMTrans(songid, lang, app.mxmtoken); - } - } else { - console.log('fake 200 token'); - getToken(mode, track, artist, songid, lang, time) - } - } else { - console.log('token 4xx'); - getToken(mode, track, artist, songid, lang, time) - } - - }; - req.onerror = function () { - console.log('error'); - app.loadAMLyrics(); - }; - req.send(); - } - } - - function getMXMSubs(track, artist, token, lang, time, id) { - let usertoken = encodeURIComponent(token); - let richsyncQuery = (app.cfg.lyrics.mxm_karaoke) ? "&optional_calls=track.richsync" : "" - let timecustom = (!time || (time && time < 0)) ? '' : `&f_subtitle_length=${time}&q_duration=${time}&f_subtitle_length_max_deviation=40`; - let itunesid = (id && id != "") ? `&track_itunes_id=${id}` : ''; - let url = "https://apic-desktop.musixmatch.com/ws/1.1/macro.subtitles.get?format=json&namespace=lyrics_richsynched" + richsyncQuery + "&subtitle_format=lrc&q_artist=" + artist + "&q_track=" + track + itunesid + "&usertoken=" + usertoken + timecustom + "&app_id=web-desktop-app-v1.0&t=" + revisedRandId(); - let req = new XMLHttpRequest(); - req.overrideMimeType("application/json"); - req.open('GET', url, true); - req.setRequestHeader("authority", "apic-desktop.musixmatch.com"); - req.onload = function () { - let jsonResponse = JSON.parse(this.responseText); - console.log(jsonResponse); - let status1 = jsonResponse["message"]["header"]["status_code"]; - - if (status1 == 200) { - let id = ''; - try { - if (jsonResponse["message"]["body"]["macro_calls"]["matcher.track.get"]["message"]["header"]["status_code"] == 200 && jsonResponse["message"]["body"]["macro_calls"]["track.subtitles.get"]["message"]["header"]["status_code"] == 200) { - id = jsonResponse["message"]["body"]["macro_calls"]["matcher.track.get"]["message"]["body"]["track"]["track_id"] ?? ''; - lrcfile = jsonResponse["message"]["body"]["macro_calls"]["track.subtitles.get"]["message"]["body"]["subtitle_list"][0]["subtitle"]["subtitle_body"]; - - try { - lrcrich = jsonResponse["message"]["body"]["macro_calls"]["track.richsync.get"]["message"]["body"]["richsync"]["richsync_body"]; - richsync = JSON.parse(lrcrich); - app.richlyrics = richsync; - } catch (_) { - } - } - - if (lrcfile == "") { - app.loadAMLyrics() - } else { - if (richsync == [] || richsync.length == 0) { - console.log("ok"); - // process lrcfile to json here - app.lyricsMediaItem = lrcfile - let u = app.lyricsMediaItem.split(/[\r\n]/); - let preLrc = [] - for (var i = u.length - 1; i >= 0; i--) { - let xline = (/(\[[0-9.:\[\]]*\])+(.*)/).exec(u[i]) - let end = (preLrc.length > 0) ? ((preLrc[preLrc.length - 1].startTime) ?? 99999) : 99999 - preLrc.push({ - startTime: app.toMS(xline[1].substring(1, xline[1].length - 2)) ?? 0, - endTime: end, - line: xline[2], - translation: '' - }) - } - if (preLrc.length > 0) - preLrc.push({ - startTime: 0, - endTime: preLrc[preLrc.length - 1].startTime, - line: "lrcInstrumental", - translation: '' - }); - app.lyrics = preLrc.reverse(); - } else { - preLrc = richsync.map(function (item) { - return { - startTime: item.ts, - endTime: item.te, - line: item.x, - translation: '' - } - }) - if (preLrc.length > 0) - preLrc.unshift({ - startTime: 0, - endTime: preLrc[0].startTime, - line: "lrcInstrumental", - translation: '' - }); - app.lyrics = preLrc; - } - if (lrcfile != null && lrcfile != '' && lang != "disabled") { - // load translation - getMXMTrans(id, lang, token); - } else { - app.loadAMLyrics() - } - } - } catch (e) { - console.log(e); - app.loadAMLyrics() - } - } else { //4xx rejected - getToken(1, track, artist, '', lang, time); - } - } - req.send(); - } - - function getMXMTrans(id, lang, token) { - if (lang != "disabled" && id != '') { - let usertoken = encodeURIComponent(token); - let url2 = "https://apic-desktop.musixmatch.com/ws/1.1/crowd.track.translations.get?translation_fields_set=minimal&selected_language=" + lang + "&track_id=" + id + "&comment_format=text&part=user&format=json&usertoken=" + usertoken + "&app_id=web-desktop-app-v1.0&t=" + revisedRandId(); - let req2 = new XMLHttpRequest(); - req2.overrideMimeType("application/json"); - req2.open('GET', url2, true); - req2.setRequestHeader("authority", "apic-desktop.musixmatch.com"); - req2.onload = function () { - let jsonResponse2 = JSON.parse(this.responseText); - console.log(jsonResponse2); - let status2 = jsonResponse2["message"]["header"]["status_code"]; - if (status2 == 200) { - try { - let preTrans = [] - let u = app.lyrics; - let translation_list = jsonResponse2["message"]["body"]["translations_list"]; - if (translation_list.length > 0) { - for (var i = 0; i < u.length - 1; i++) { - preTrans[i] = "" - for (var trans_line of translation_list) { - if (u[i].line == " " + trans_line["translation"]["matched_line"] || u[i].line == trans_line["translation"]["matched_line"]) { - u[i].translation = trans_line["translation"]["description"]; - break; - } - } - } - app.lyrics = u; - } - } catch (e) { - /// not found trans -> ignore - } - } else { //4xx rejected - getToken(2, '', '', id, lang, ''); - } - } - req2.send(); - } - - } - - if (track != "" & track != "No Title Found") { - if (app.mxmtoken != null && app.mxmtoken != '') { - getMXMSubs(track, artist, app.mxmtoken, lang, time, id) - } else { - getToken(1, track, artist, '', lang, time); - } - } - }, - toMS(str) { - let rawTime = str.match(/(\d+:)?(\d+:)?(\d+)(\.\d+)?/); - let hours = (rawTime[2] != null) ? (rawTime[1].replace(":", "")) : 0; - let minutes = (rawTime[2] != null) ? (hours * 60 + rawTime[2].replace(":", "") * 1) : ((rawTime[1] != null) ? rawTime[1].replace(":", "") : 0); - let seconds = (rawTime[3] != null) ? (rawTime[3]) : 0; - let milliseconds = (rawTime[4] != null) ? (rawTime[4].replace(".", "")) : 0 - return parseFloat(`${minutes * 60 + seconds * 1}.${milliseconds * 1}`); - }, - parseTTML() { - this.lyrics = []; - let preLrc = []; - let xml = this.stringToXml(this.lyricsMediaItem); - let lyricsLines = xml.getElementsByTagName('p'); - let synced = true; - let endTimes = []; - if (xml.getElementsByTagName('tt')[0].getAttribute("itunes:timing") === "None") { - synced = false; - } - endTimes.push(0); - if (synced) { - for (element of lyricsLines) { - start = this.toMS(element.getAttribute('begin')) - end = this.toMS(element.getAttribute('end')) - if (start - endTimes[endTimes.length - 1] > 5 && endTimes[endTimes.length - 1] != 0) { - preLrc.push({ - startTime: endTimes[endTimes.length - 1], - endTime: start, - line: "lrcInstrumental" - }); - } - preLrc.push({startTime: start, endTime: end, line: element.textContent}); - endTimes.push(end); - } - // first line dot - if (preLrc.length > 0) - preLrc.unshift({startTime: 0, endTime: preLrc[0].startTime, line: "lrcInstrumental"}); - } else { - for (element of lyricsLines) { - preLrc.push({startTime: 9999999, endTime: 9999999, line: element.textContent}); - } - } - this.lyrics = preLrc; - - }, - parseLyrics() { - let xml = this.stringToXml(this.lyricsMediaItem) - let json = xmlToJson(xml); - this.lyrics = json - }, - stringToXml(st) { - // string to xml - let xml = (new DOMParser()).parseFromString(st, "text/xml"); - return xml; - - }, - getCurrentTime() { - return parseFloat(this.hmsToSecondsOnly(this.parseTime(this.mk.nowPlayingItem.attributes.durationInMillis - app.mk.currentPlaybackTimeRemaining * 1000))); - }, - seekTo(time) { - this.mk.seekToTime(time); - }, - parseTime(value) { - let minutes = Math.floor(value / 60000); - let seconds = ((value % 60000) / 1000).toFixed(0); - return minutes + ":" + (seconds < 10 ? '0' : '') + seconds; - }, - parseTimeDecimal(value) { - let minutes = Math.floor(value / 60000); - let seconds = ((value % 60000) / 1000).toFixed(0); - return minutes + "." + (seconds < 10 ? '0' : '') + seconds; - }, - hmsToSecondsOnly(str) { - let p = str.split(':'), - s = 0, - m = 1; - - while (p.length > 0) { - s += m * parseInt(p.pop(), 10); - m *= 60; - } - - return s; - }, - getLyricBGStyle(start, end) { - let currentTime = this.getCurrentTime(); - // let duration = this.mk.nowPlayingItem.attributes.durationInMillis - let start2 = this.hmsToSecondsOnly(start) - let end2 = this.hmsToSecondsOnly(end) - // let currentProgress = ((100 * (currentTime)) / (end2)) - // check if currenttime is between start and end - this.player.lyricsDebug.start = start2 - this.player.lyricsDebug.end = end2 - this.player.lyricsDebug.current = currentTime - if (currentTime >= start2 && currentTime <= end2) { - return { - "--bgSpeed": `${(end2 - start2)}s` - } - } else { - return {} - } - }, - playMediaItemById(id, kind, isLibrary, raurl = "") { - let truekind = (!kind.endsWith("s")) ? (kind + "s") : kind; - console.log(id, truekind, isLibrary) - try { - if (truekind.includes("artist")) { - app.mk.setStationQueue({artist: 'a-' + id}).then(() => { - app.mk.play() - }) - } else if (truekind == "radioStations") { - this.mk.setStationQueue({url: raurl}).then(function (queue) { - MusicKit.getInstance().play() - }); - } else { - this.mk.setQueue({ - [truekind]: [id] - }).then(function (queue) { - MusicKit.getInstance().play() - }) - } - } catch (err) { - console.log(err) - this.playMediaItemById(id, kind, isLibrary, raurl) - } - }, - queueParentandplayChild(parent, childIndex, item) { - - /* Randomize array in-place using Durstenfeld shuffle algorithm */ - function shuffleArray(array) { - for (var i = array.length - 1; i > 0; i--) { - var j = Math.floor(Math.random() * (i + 1)); - var temp = array[i]; - array[i] = array[j]; - array[j] = temp; - } - } - - let kind = parent.substring(0, parent.indexOf(":")) - let id = parent.substring(parent.indexOf(":") + 1, parent.length) - let truekind = (!kind.endsWith("s")) ? (kind + "s") : kind; - console.log(truekind, id) - - try { - if (app.library.songs.displayListing.length > childIndex && parent == "librarysongs") { - console.log(item) - if (item && ((app.library.songs.displayListing[childIndex].id != item.id))) { - childIndex = app.library.songs.displayListing.indexOf(item) - } - - let query = app.library.songs.displayListing.map(item => new MusicKit.MediaItem(item)); - - - app.mk.stop().then(() => { - if (item) { - app.mk.setQueue({ - [item.attributes.playParams.kind ?? item.type]: item.attributes.playParams.id ?? item.id - }).then(function () { - app.mk.play().then(() => { - if (app.mk.shuffleMode == 1) { - shuffleArray(query) - } else { - for (let i = 0; i < query.length; i++) { - if (query[i].id == item.id) { - query.splice(0, i + 1); - break; - } - } - } - app.mk.queue.append(query) - }) - }) - } else { - this.mk.clearQueue().then(function (_) { - if (app.mk.shuffleMode == 1) { - shuffleArray(query) - } - app.mk.queue.append(query) - if (childIndex != -1) { - app.mk.changeToMediaAtIndex(childIndex) - } else { - app.mk.play() - } - }) - } - }) - } else { - app.mk.stop().then(() => { - if (truekind == "playlists" && (id.startsWith("p.") || id.startsWith("pl.u"))) { - app.mk.setQueue({ - [item.attributes.playParams.kind ?? item.type]: item.attributes.playParams.id ?? item.id - }).then(function () { - app.mk.changeToMediaAtIndex(app.mk.queue._itemIDs.indexOf(item.id) ?? 1).then(function () { - if ((app.showingPlaylist && app.showingPlaylist.id == id)) { - let query = app.showingPlaylist.relationships.tracks.data.map(item => new MusicKit.MediaItem(item)); - let u = query; - if (app.mk.shuffleMode == 1) { - shuffleArray(u) - } else { - for (let i = 0; i < app.showingPlaylist.relationships.tracks.data.length; i++) { - if (app.showingPlaylist.relationships.tracks.data[i].id == item.id) { - u.splice(0, i + 1); - break; - } - } - } - app.mk.queue.append(u) - } else { - app.getPlaylistFromID(id, true).then(function () { - let query = app.showingPlaylist.relationships.tracks.data.map(item => new MusicKit.MediaItem(item)); - let u = query; - if (app.mk.shuffleMode == 1) { - shuffleArray(u) - } else { - for (let i = 0; i < app.showingPlaylist.relationships.tracks.data.length; i++) { - if (app.showingPlaylist.relationships.tracks.data[i].id == item.id) { - u.splice(0, i + 1); - break; - } - } - } - app.mk.queue.append(u) - }) - } - }) - - }) - } else { - this.mk.setQueue({ - [truekind]: [id] - }).then(function (queue) { - if (item && ((queue._itemIDs[childIndex] != item.id))) { - childIndex = queue._itemIDs.indexOf(item.id) - } - if (childIndex != -1) { - app.mk.changeToMediaAtIndex(childIndex) - } else if (item) { - app.mk.playNext({ - [item.attributes.playParams.kind ?? item.type]: item.attributes.playParams.id ?? item.id - }).then(function () { - app.mk.changeToMediaAtIndex(app.mk.queue._itemIDs.indexOf(item.id) ?? 1) - app.mk.play() - }) - } else { - app.mk.play() - } - }) - } - }) - } - } catch (err) { - console.log(err) - try { - app.mk.stop() - } catch (e) { - } - this.playMediaItemById(item.attributes.playParams.id ?? item.id, item.attributes.playParams.kind ?? item.type, item.attributes.playParams.isLibrary ?? false, item.attributes.url) - } - - }, - friendlyTypes(type) { - // use switch statement to return friendly name for media types "songs,artists,albums,playlists,music-videos,stations,apple-curators,curators" - switch (type) { - case "song": - return app.getLz('term.songs') - break; - case "artist": - return app.getLz('term.artists') - break; - case "album": - return app.getLz('term.albums') - break; - case "playlist": - return app.getLz('term.playlists') - break; - case "music_video": - return app.getLz('term.musicVideos') - break; - case "station": - return app.getLz('term.stations') - break; - case "apple-curator": - return app.getLz('term.appleCurators') - break; - case "radio_show": - return app.getLz('term.radioShows') - break; - case "record_label": - return app.getLz('term.recordLabels') - break; - case "radio_episode": - return app.getLz('podcast.episodes') - break; - case "video_extra": - return app.getLz('term.videoExtras') - break; - case "curator": - return app.getLz('term.curators') - break; - case "top": - return app.getLz('term.top') - break; - default: - return type - break; - } - }, - async searchQuery(term = this.search.term) { - let self = this - if (term == "") { - return - } - //this.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/search?term=${this.search.term}` - this.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/search?term=${this.search.term}`, { - types: "activities,albums,apple-curators,artists,curators,editorial-items,music-movies,music-videos,playlists,songs,stations,tv-episodes,uploaded-videos,record-labels", - "relate[editorial-items]": "contents", - "include[editorial-items]": "contents", - "include[albums]": "artists", - "include[artists]": "artists", - "include[songs]": "artists,albums", - "include[music-videos]": "artists", - "extend": "artistUrl", - "fields[artists]": "url,name,artwork,hero", - "fields[albums]": "artistName,artistUrl,artwork,contentRating,editorialArtwork,name,playParams,releaseDate,url", - "with": "serverBubbles,lyricHighlights", - "art[url]": "c,f", - "omit[resource]": "autos", - "platform": "web", - limit: 25 - }).then(function (results) { - results.data.results["meta"] = results.data.meta - self.search.results = results.data.results - }) - - await app.mk.api.v3.music(`v1/social/${app.mk.storefrontId}/search?term=${app.search.term}`, { - types: ["playlists", "social-profiles"], - limit: 25, - with: ["serverBubbles", "lyricSnippet"], - "art[url]": "f", - "art[social-profiles:url]": "c" - }, {includeResponseMeta: !0}).then(function (results) { - results.data.results["meta"] = results.data.meta - self.search.resultsSocial = results.data.results - }) - }, - async inLibrary(items = []) { - let types = [] - - for (let item of items) { - let type = item.type - if (type.slice(-1) != "s") { - type += "s" - } - type = type.replace("library-", "") - let id = item.attributes.playParams.catalogId ?? item.id - - let index = types.findIndex(function (type) { - return type.type == this - }, type) - if (index == -1) { - types.push({type: type, id: [id]}) - } else { - types[index].id.push(id) - } - } - types2 = types.map(function (item) { - return { - [`ids[${item.type}]`]: [item.id] - } - }) - types2 = types2.reduce(function (result, item) { - var key = Object.keys(item)[0]; //first property: a, b, c - result[key] = item[key]; - return result; - }, {}); - return (await this.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}`, { - ...{ - "omit[resource]": "autos", - relate: "library", - fields: "inLibrary" - }, - ...types2 - })).data.data - }, - isInLibrary(playParams) { - let self = this - let id = "" - // ugly code to check if current playback item is in library - if (typeof playParams == "undefined") { - return true - } - if (playParams["isLibrary"]) { - return true - } else if (playParams["catalogId"]) { - id = playParams["catalogId"] - } else if (playParams["id"]) { - id = playParams["id"] - } - let found = this.library.songs.listing.filter((item) => { - if (item["attributes"]) { - if (item["attributes"]["playParams"] && (item["attributes"]["playParams"]["catalogId"] == id)) { - return item; - } - } - }) - if (found.length != 0) { - return true - } else { - return false - } - }, - mkReady() { - if (this.mk["nowPlayingItem"]) { - return true - } else { - return false - } - }, - getMediaItemArtwork(url, height = 64, width) { - if (typeof url == "undefined" || url == "") { - return "https://beta.music.apple.com/assets/product/MissingArtworkMusic.svg" - } - let newurl = `${url.replace('{w}', width ?? height).replace('{h}', height).replace('{f}', "webp").replace('{c}', ((width === 900) ? "sr" : "cc"))}`; - - if (newurl.includes("900x516")) { - newurl = newurl.replace("900x516cc", "900x516sr").replace("900x516bb", "900x516sr"); - } - return newurl - }, - _rgbToRgb(rgb = [0, 0, 0]) { - // if rgb - return `rgb(${rgb[0]},${rgb[1]},${rgb[2]})` - }, - getNowPlayingArtworkBG(size = 32, force = false) { - let self = this - if (typeof this.mk.nowPlayingItem === "undefined") return; - let bginterval = setInterval(() => { - if (!this.mkReady()) { - return "" - } - - try { - if ((this.mk.nowPlayingItem && this.mk.nowPlayingItem["id"] != this.currentTrackID && document.querySelector('.bg-artwork')) || force) { - if (document.querySelector('.bg-artwork')) { - clearInterval(bginterval); - } - this.currentTrackID = this.mk.nowPlayingItem["id"]; - document.querySelector('.bg-artwork').src = ""; - if (this.mk["nowPlayingItem"]["attributes"]["artwork"]["url"]) { - getBase64FromUrl(this.mk["nowPlayingItem"]["attributes"]["artwork"]["url"].replace('{w}', size).replace('{h}', size)).then(img => { - document.querySelectorAll('.bg-artwork').forEach(artwork => { - artwork.src = img; - }) - self.$store.commit("setLCDArtwork", img) - }) - try { - clearInterval(bginterval); - } catch (err) { - } - } else { - this.setLibraryArtBG() - } - } else if (this.mk.nowPlayingItem["id"] == this.currentTrackID) { - try { - clearInterval(bginterval); - } catch (err) { - } - } - } catch (e) { - if (this.mk.nowPlayingItem && this.mk.nowPlayingItem["id"] && document.querySelector('.bg-artwork')) { - this.setLibraryArtBG() - try { - clearInterval(bginterval); - } catch (err) { - } - } - } - }, 200) - }, - async getCurrentArtURL() { - try { - this.currentArtUrl = ''; - if (app.mk.nowPlayingItem != null && app.mk.nowPlayingItem.attributes != null && app.mk.nowPlayingItem.attributes.artwork != null && app.mk.nowPlayingItem.attributes.artwork.url != null && app.mk.nowPlayingItem.attributes.artwork.url != '') { - this.currentArtUrl = (this.mk["nowPlayingItem"]["attributes"]["artwork"]["url"] ?? '').replace('{w}', 50).replace('{h}', 50); - try { - document.querySelector('.app-playback-controls .artwork').style.setProperty('--artwork', `url("${this.currentArtUrl}")`); - } catch (e) { - } - } else { - let data = await this.mk.api.v3.music(`/v1/me/library/songs/${this.mk.nowPlayingItem.id}`); - data = data.data.data[0]; - if (data != null && data !== "" && data.attributes != null && data.attributes.artwork != null) { - this.currentArtUrl = (data["attributes"]["artwork"]["url"] ?? '').replace('{w}', 50).replace('{h}', 50); - try { - document.querySelector('.app-playback-controls .artwork').style.setProperty('--artwork', `url("${this.currentArtUrl}")`); - } catch (e) { - } - } else { - this.currentArtUrl = ''; - try { - document.querySelector('.app-playback-controls .artwork').style.setProperty('--artwork', `url("${this.currentArtUrl}")`); - } catch (e) { - } - } - } - } catch (e) { - - } - }, - async setLibraryArt() { - if (typeof this.mk.nowPlayingItem === "undefined") return; - try { - const data = await this.mk.api.v3.music(`/v1/me/library/songs/${this.mk.nowPlayingItem.id}`); - data = data.data.data[0]; - - if (data != null && data !== "") { - document.querySelector('.app-playback-controls .artwork').style.setProperty('--artwork', 'url("' + (data["attributes"]["artwork"]["url"]).toString() + '")'); - } else { - document.querySelector('.app-playback-controls .artwork').style.setProperty('--artwork', `url("")`); - } - } catch (e) { - } - }, - async setLibraryArtBG() { - if (typeof this.mk.nowPlayingItem === "undefined") return; - try { - const data = await this.mk.api.v3.music(`/v1/me/library/songs/${this.mk.nowPlayingItem.id}`); - data = data.data.data[0]; - - if (data != null && data !== "") { - getBase64FromUrl((data["attributes"]["artwork"]["url"]).toString()).then(img => { - document.querySelector('.bg-artwork').forEach(artwork => { - artwork.src = img; - }) - self.$store.commit("setLCDArtwork", img) - }) - } - } catch (e) { - } - - }, - quickPlay(query) { - let self = this - MusicKit.getInstance().api.search(query, {limit: 2, types: 'songs'}).then(function (data) { - MusicKit.getInstance().setQueue({song: data["songs"]['data'][0]["id"]}).then(function (queue) { - MusicKit.getInstance().play() - setTimeout(() => { - self.$forceUpdate() - }, 1000) - }) - }) - }, - async getRating(item) { - let type = item.type.slice(-1) === "s" ? item.type : item.type + "s" - let id = item.attributes.playParams.catalogId ? item.attributes.playParams.catalogId : item.id - if (item.id.startsWith("i.")) { - if (!type.startsWith("library-")) { - type = "library-" + type - } - id = item.id - } - let response = await this.mk.api.v3.music(`/v1/me/ratings/${type}?platform=web&ids=${type.includes('library') ? item.id : id}`) - if (response.data.data.length != 0) { - let value = response.data.data[0].attributes.value - return value - } else { - return 0 - } - }, - love(item) { - let type = item.type.slice(-1) === "s" ? item.type : item.type + "s" - let id = item.attributes.playParams.catalogId ? item.attributes.playParams.catalogId : item.id - if (item.id.startsWith("i.")) { - if (!type.startsWith("library-")) { - type = "library-" + type - } - id = item.id - } - this.mk.api.v3.music(`/v1/me/ratings/${type}/${id}`, {}, { - fetchOptions: { - method: "PUT", - body: JSON.stringify({ - "type": "rating", - "attributes": { - "value": 1 - } - }) - } - }) - }, - dislike(item) { - let type = item.type.slice(-1) === "s" ? item.type : item.type + "s" - let id = item.attributes.playParams.catalogId ? item.attributes.playParams.catalogId : item.id - if (item.id.startsWith("i.")) { - if (!type.startsWith("library-")) { - type = "library-" + type - } - id = item.id - } - this.mk.api.v3.music(`/v1/me/ratings/${type}/${id}`, {}, { - fetchOptions: { - method: "PUT", - body: JSON.stringify({ - "type": "rating", - "attributes": { - "value": -1 - } - }) - } - }) - }, - unlove(item) { - let type = item.type.slice(-1) === "s" ? item.type : item.type + "s" - let id = item.attributes.playParams.catalogId ? item.attributes.playParams.catalogId : item.id - if (item.id.startsWith("i.")) { - if (!type.startsWith("library-")) { - type = "library-" + type - } - id = item.id - } - this.mk.api.v3.music(`/v1/me/ratings/${type}/${id}`, {}, { - fetchOptions: { - method: "DELETE", - } - }) - }, - checkScrollDirectionIsUp(event) { - if (event.wheelDelta) { - return event.wheelDelta > 0; - } - return event.deltaY < 0; - }, - volumeUp() { - if ((app.mk.volume + app.cfg.audio.volumeStep) > 1) { - app.mk.volume = app.cfg.audio.maxVolume; - console.log('setting max volume') - } else { - console.log('volume up') - app.mk.volume += app.cfg.audio.volumeStep; - } - }, - volumeDown() { - if ((app.mk.volume - app.cfg.audio.volumeStep) < 0) { - app.mk.volume = 0; - console.log('setting volume to 0') - } else { - console.log('volume down') - app.mk.volume -= app.cfg.audio.volumeStep; - } - }, - volumeWheel(event) { - app.checkScrollDirectionIsUp(event) ? app.volumeUp() : app.volumeDown() - }, - muteButtonPressed() { - if (this.cfg.audio.muted) { - this.mk.volume = this.cfg.audio.lastVolume; - this.cfg.audio.muted = false; - } else { - this.cfg.audio.lastVolume = this.cfg.audio.volume; - this.mk.volume = 0; - this.cfg.audio.muted = true; - } - }, - checkMuteChange() { - if (this.cfg.audio.muted) { - this.cfg.audio.muted = false; - } - }, - async apiCall(url, callback) { - const xmlHttp = new XMLHttpRequest(); - - xmlHttp.onreadystatechange = (e) => { - if (xmlHttp.readyState !== 4) { - return; - } - - if (xmlHttp.status === 200) { - // console.log('SUCCESS', xmlHttp.responseText); - callback(JSON.parse(xmlHttp.responseText)); - } else { - console.warn('request_error'); - } - }; - - xmlHttp.open("GET", url); - xmlHttp.setRequestHeader("Authorization", "Bearer " + MusicKit.getInstance().developerToken); - xmlHttp.setRequestHeader("Music-User-Token", "" + MusicKit.getInstance().musicUserToken); - xmlHttp.setRequestHeader("Accept", "application/json"); - xmlHttp.setRequestHeader("Content-Type", "application/json"); - xmlHttp.responseType = "text"; - xmlHttp.send(); - }, - fetchPlaylist(id, callback) { - // id can be found in playlist.attributes.playParams.globalId - // this.mk.api. - this.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/playlists/${id}`).then(res => { - callback(res.data.data[0]) - }) - - // tracks are found in relationship.data - }, - windowFocus(val) { - if (val) { - document.querySelectorAll(".animated-artwork-video").forEach(el => { - el.play() - }) - document.querySelector("body").classList.remove("stopanimation") - this.animateBackground = true - } else { - document.querySelectorAll(".animated-artwork-video").forEach(el => { - el.pause() - }) - document.querySelector("body").classList.add("stopanimation") - this.animateBackground = false - } - }, - async nowPlayingContextMenu(event) { - let self = this - let data_type = this.mk.nowPlayingItem.playParams.kind - let item_id = this.mk.nowPlayingItem.attributes.playParams.id ?? this.mk.nowPlayingItem.id - let isLibrary = this.mk.nowPlayingItem.attributes.playParams.isLibrary ?? false - let params = {"fields[songs]": "inLibrary", "fields[albums]": "inLibrary", "relate": "library", "t": "1"} - app.selectedMediaItems = [] - app.select_selectMediaItem(item_id, data_type, 0, '12344', isLibrary) - let useMenu = "normal" - let menus = { - multiple: { - items: [] - }, - normal: { - headerItems: [{ - "icon": "./assets/feather/heart.svg", - "id": "love", - "name": app.getLz('action.love'), - "hidden": false, - "disabled": true, - "action": function () { - app.love(app.mk.nowPlayingItem) - } - }, - { - "icon": "./assets/feather/heart.svg", - "id": "unlove", - "active": true, - "name": app.getLz('action.unlove'), - "hidden": true, - "action": function () { - app.unlove(app.mk.nowPlayingItem) - } - }, - { - "icon": "./assets/feather/thumbs-down.svg", - "id": "dislike", - "name": app.getLz('action.dislike'), - "hidden": false, - "disabled": true, - "action": function () { - app.dislike(app.mk.nowPlayingItem) - } - }, - { - "icon": "./assets/feather/thumbs-down.svg", - "id": "undo_dislike", - "name": app.getLz('action.undoDislike'), - "active": true, - "hidden": true, - "action": function () { - app.unlove(app.mk.nowPlayingItem) - } - }, - ], - items: [{ - "icon": "./assets/feather/list.svg", - "name": app.getLz('action.addToPlaylist') + " ...", - "action": function () { - app.promptAddToPlaylist() - } - }, - { - "icon": "./assets/feather/plus.svg", - "id": "addToLibrary", - "name": app.getLz('action.addToLibrary') + " ...", - "disabled": false, - "action": function () { - app.addToLibrary(app.mk.nowPlayingItem.id); - } - }, - { - "icon": "./assets/feather/radio.svg", - "name": app.getLz('action.startRadio'), - "action": function () { - app.mk.setStationQueue({song: app.mk.nowPlayingItem.id}).then(() => { - app.mk.play() - app.selectedMediaItems = [] - }) - } - }, - { - "icon": "./assets/feather/share.svg", - "name": app.getLz('action.share'), - "action": function () { - app.mkapi(app.mk.nowPlayingItem.attributes?.playParams?.kind ?? app.mk.nowPlayingItem.type ?? 'songs', false, app.mk.nowPlayingItem._songId ?? app.mk.nowPlayingItem.id ?? '').then(u => { - app.copyToClipboard((u.data.data.length && u.data.data.length > 0) ? u.data.data[0].attributes.url : u.data.data.attributes.url) - }) - } - }, - { - "icon": "./assets/feather/share.svg", - "name": `${app.getLz('action.share')} (song.link)`, - "action": function () { - app.mkapi(app.mk.nowPlayingItem.attributes?.playParams?.kind ?? app.mk.nowPlayingItem.type ?? 'songs', false, app.mk.nowPlayingItem._songId ?? app.mk.nowPlayingItem.id ?? '').then(u => { - app.songLinkShare((u.data.data.length && u.data.data.length > 0) ? u.data.data[0].attributes.url : u.data.data.attributes.url) - }) - } - } - ] - } - } - if (this.contextExt) { - if (this.contextExt.normal) { - menus.normal.items = menus.normal.items.concat(this.contextExt.normal) - } - } - this.showMenuPanel(menus[useMenu], event) - - try { - let rating = await app.getRating(app.mk.nowPlayingItem) - if (rating == 0) { - menus.normal.headerItems.find(x => x.id == 'love').disabled = false - menus.normal.headerItems.find(x => x.id == 'dislike').disabled = false - } else if (rating == 1) { - menus.normal.headerItems.find(x => x.id == 'unlove').hidden = false - menus.normal.headerItems.find(x => x.id == 'love').hidden = true - } else if (rating == -1) { - menus.normal.headerItems.find(x => x.id == 'undo_dislike').hidden = false - menus.normal.headerItems.find(x => x.id == 'dislike').hidden = true - } - } catch (err) { - - } - }, - LastFMDeauthorize() { - ipcRenderer.invoke('setStoreValue', 'lastfm.enabled', false).catch((e) => console.error(e)); - ipcRenderer.invoke('setStoreValue', 'lastfm.auth_token', '').catch((e) => console.error(e)); - app.cfg.lastfm.auth_token = ""; - app.cfg.lastfm.enabled = false; - const element = document.getElementById('lfmConnect'); - element.innerHTML = getLz('term.connect'); - element.onclick = app.LastFMAuthenticate; - }, - LastFMAuthenticate() { - console.log("[LastFM] Received LastFM authentication callback") - const element = document.getElementById('lfmConnect'); - // new key : f9986d12aab5a0fe66193c559435ede3 - window.open('https://www.last.fm/api/auth?api_key=f9986d12aab5a0fe66193c559435ede3&cb=cider://auth/lastfm'); - element.innerText = app.getLz('term.connecting') + '...'; - - /* Just a timeout for the button */ - setTimeout(() => { - if (element.innerText === app.getLz('term.connecting') + '...') { - element.innerText = app.getLz('term.connect'); - console.warn('[LastFM] Attempted connection timed out.'); - } - }, 20000); - - ipcRenderer.on('LastfmAuthenticated', function (_event, lfmAuthKey) { - app.cfg.lastfm.auth_token = lfmAuthKey; - app.cfg.lastfm.enabled = true; - element.innerHTML = `${app.getLz('term.disconnect')}\n

(${app.getLz('term.authed')}: ${lfmAuthKey})

`; - element.onclick = app.LastFMDeauthorize; - }); - }, - parseSCTagToRG: function (tag) { - let soundcheck = tag.split(" ") - let numbers = [] - for (item of soundcheck) { - numbers.push(parseInt(item, 16)) - - } - numbers.shift() - let gain = Math.log10((Math.max(numbers[0], numbers[1]) ?? 1000) / 1000.0) * -10 - let peak = Math.max(numbers[6], numbers[7]) / 32768.0 - return { - gain: gain, - peak: peak - } - }, - fullscreen(flag) { - if (flag) { - ipcRenderer.send('setFullScreen', true); - if (app.mk.nowPlayingItem.type && app.mk.nowPlayingItem.type.toLowerCase().includes("video")) { - document.querySelector('video#apple-music-video-player').requestFullscreen() - } else { - app.appMode = 'fullscreen'; - } - document.addEventListener('keydown', event => { - if (event.key === 'Escape' && app.appMode === 'fullscreen') { - this.fullscreen(false); - } - }); - } else { - ipcRenderer.send('setFullScreen', false); - app.appMode = 'player'; - } - }, - miniPlayer(flag) { - if (flag) { - this.tmpWidth = window.innerWidth; - this.tmpHeight = window.innerHeight; - ipcRenderer.send('unmaximize'); - ipcRenderer.send('windowmin', 250, 250) - ipcRenderer.send('windowresize', 300, 300, false) - app.appMode = 'mini'; - } else { - ipcRenderer.send('windowmin', 844, 410) - ipcRenderer.send('windowresize', this.tmpWidth, this.tmpHeight, false) - ipcRenderer.send('windowontop', false) - this.cfg.visual.miniplayer_top_toggle = true; - app.appMode = 'player'; - } - }, - pinMiniPlayer() { - if (this.cfg.visual.miniplayer_top_toggle) { - ipcRenderer.send('windowontop', true) - this.cfg.visual.miniplayer_top_toggle = false - } else { - ipcRenderer.send('windowontop', false) - this.cfg.visual.miniplayer_top_toggle = true; - } - }, - formatTimezoneOffset: (e = new Date) => { - let leadingZeros = (e, s = 2) => { - let n = "" + e; - for (; n.length < s;) - n = "0" + n; - return n - } - - const s = e.getTimezoneOffset(), - n = Math.floor(Math.abs(s) / 60), - d = Math.round(Math.abs(s) % 60); - let h = "+"; - return 0 !== s && (h = s > 0 ? "-" : "+"), - `${h}${leadingZeros(n, 2)}:${leadingZeros(d, 2)}` - }, - toggleHideUserInfo() { - if (this.chrome.hideUserInfo) { - this.cfg.visual.showuserinfo = true - this.chrome.hideUserInfo = false - } else { - this.cfg.visual.showuserinfo = false - this.chrome.hideUserInfo = true - } - }, - isElementOverflowing(selector) { - try { - let element = document.querySelector(selector); - var overflowX = element.offsetWidth < element.scrollWidth, - overflowY = element.offsetHeight < element.scrollHeight; - element.setAttribute('data-value', '\xa0\xa0\xa0\xa0' + element.textContent); - - return (overflowX || overflowY); - } catch (e) { - return false - } - }, - async showWebRemoteQR() { - //this.webremoteqr = await ipcRenderer.invoke('setRemoteQR','') - this.webremoteurl = await ipcRenderer.invoke('showQR', '') - //this.modals.qrcode = true; - }, - checkMarquee() { - if (isElementOverflowing('#app-main > div.app-chrome > div.app-chrome--center > div > div > div.playback-info > div.song-artist') == true) { - document.getElementsByClassName('song-artist')[0].classList.add('marquee'); - document.getElementsByClassName('song-artist')[1].classList.add('marquee-after'); - } - if (isElementOverflowing('#app-main > div.app-chrome > div.app-chrome--center > div > div > div.playback-info > div.song-name') == true) { - document.getElementsByClassName('song-name')[0].classList.add('marquee'); - document.getElementsByClassName('song-name')[1].classList.add('marquee-after'); - } - }, - closeWindow() { - ipcRenderer.send('close'); - }, - checkForUpdate() { - ipcRenderer.send('check-for-update') - }, - darwinShare(url) { - ipcRenderer.send('share-menu', url) - }, - } -}) - Vue.component('animated-number', { template: "
{{ displayNumber }}
", - props: {'number': {default: 0}}, + props: { 'number': { default: 0 } }, data() { return { @@ -3641,27 +88,6 @@ Vue.component('sidebar-library-item', { methods: {} }); -// Key binds -document.addEventListener('keydown', function (e) { - if (e.keyCode === 70 && e.ctrlKey) { - app.$refs.searchInput.focus() - app.$refs.searchInput.select() - } -}); - -// Hang Timer -app.hangtimer = setTimeout(() => { - if (confirm("Cider is not responding. Reload the app?")) { - window.location.reload() - } -}, 10000) - -// add event listener for when window.location.hash changes -window.addEventListener("hashchange", function () { - app.appRoute(window.location.hash) -}); - - function fallbackinitMusicKit() { const request = new XMLHttpRequest(); @@ -3676,9 +102,12 @@ function fallbackinitMusicKit() { }, sourceType: 24, suppressErrorDialog: true - }); + }) setTimeout(() => { app.init() + if(app.cfg.visual.window_background_style == "mica" && !app.isDev) { + app.spawnMica() + } }, 1000) } @@ -3688,11 +117,12 @@ function fallbackinitMusicKit() { } document.addEventListener('musickitloaded', function () { + console.log('MusicKit loaded') // MusicKit global is now defined function initMusicKit() { let parsedJson = JSON.parse(this.responseText) MusicKit.configure({ - developerToken: parsedJson.Key, + developerToken: parsedJson.token, app: { name: 'Apple Music', build: '1978.4.1', @@ -3700,10 +130,20 @@ document.addEventListener('musickitloaded', function () { }, sourceType: 24, suppressErrorDialog: true - }); - setTimeout(() => { - app.init() - }, 1000) + }).then(() => { + function waitForApp() { + if (typeof app.init !== "undefined") { + app.init() + if(app.cfg.visual.window_background_style == "mica" && !app.isDev) { + app.spawnMica() + } + } + else { + setTimeout(waitForApp, 250); + } + } + waitForApp() + }) } @@ -3716,7 +156,7 @@ document.addEventListener('musickitloaded', function () { fallbackinitMusicKit() } }; - request.open("GET", "https://api.cider.sh/"); + request.open("GET", "https://api.cider.sh/v1/"); request.send(); // check for widevine failure and reconfigure the instance. @@ -3725,6 +165,9 @@ document.addEventListener('musickitloaded', function () { }); }); + + + if ('serviceWorker' in navigator) { // Use the window load event to keep the page load performant window.addEventListener('load', () => { @@ -3755,19 +198,6 @@ function uuidv4() { ); } -function refreshFocus() { - if (document.hasFocus() == false) { - app.windowFocus(false) - } else { - app.windowFocus(true) - } - setTimeout(refreshFocus, 200); -} - -app.getHTMLStyle() - -refreshFocus(); - function xmlToJson(xml) { // Create the return object @@ -3835,30 +265,30 @@ async function webGPU() { } } +function isJson(item) { + item = typeof item !== "string" + ? JSON.stringify(item) + : item; + + try { + item = JSON.parse(item); + } catch (e) { + return false; + } + + if (typeof item === "object" && item !== null) { + return true; + } + + return false; +} + webGPU().then() let screenWidth = screen.width; let screenHeight = screen.height; -// Key bind to unjam MusicKit in case it fails: CTRL+F10 -document.addEventListener('keydown', function (event) { - if (event.ctrlKey && event.keyCode == 121) { - try { - app.mk._services.mediaItemPlayback._currentPlayer.stop() - } catch (e) { - } - try { - app.mk._services.mediaItemPlayback._currentPlayer.destroy() - } catch (e) { - } - } -}); - -document.addEventListener('keydown', function (event) { - if (event.ctrlKey && event.keyCode == 122) { - try { - ipcRenderer.send('detachDT', '') - } catch (e) { - } - } -}); +window.onerror = function (error) { + console.log(error) + bootbox.alert("Error occured: " + error) +}; diff --git a/src/renderer/less/bootstrap-vue.min.css b/src/renderer/less/bootstrap-vue.min.css new file mode 100644 index 00000000..cedacd32 --- /dev/null +++ b/src/renderer/less/bootstrap-vue.min.css @@ -0,0 +1,2780 @@ +@charset "UTF-8"; +/*! + * BootstrapVue Custom CSS (https://bootstrap-vue.org) + */ +.bv-no-focus-ring:focus { + outline: none; +} +@media (max-width: 575.98px) { + .bv-d-xs-down-none { + display: none !important; + } +} +@media (max-width: 767.98px) { + .bv-d-sm-down-none { + display: none !important; + } +} +@media (max-width: 991.98px) { + .bv-d-md-down-none { + display: none !important; + } +} +@media (max-width: 1199.98px) { + .bv-d-lg-down-none { + display: none !important; + } +} +.bv-d-xl-down-none { + display: none !important; +} +.form-control.focus { + color: #495057; + background-color: #fff; + border-color: #80bdff; + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} +.form-control.focus.is-valid { + border-color: #28a745; + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} +.form-control.focus.is-invalid { + border-color: #dc3545; + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} +.b-avatar { + display: inline-flex; + align-items: center; + justify-content: center; + vertical-align: middle; + flex-shrink: 0; + width: 2.5rem; + height: 2.5rem; + font-size: inherit; + font-weight: 400; + line-height: 1; + max-width: 100%; + max-height: auto; + text-align: center; + overflow: visible; + position: relative; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +.b-avatar:focus { + outline: 0; +} +.b-avatar.btn, +.b-avatar[href] { + padding: 0; + border: 0; +} +.b-avatar.btn .b-avatar-img img, +.b-avatar[href] .b-avatar-img img { + transition: -webkit-transform 0.15s ease-in-out; + transition: transform 0.15s ease-in-out; + transition: transform 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out; +} +.b-avatar.btn:not(:disabled):not(.disabled), +.b-avatar[href]:not(:disabled):not(.disabled) { + cursor: pointer; +} +.b-avatar.btn:not(:disabled):not(.disabled):hover .b-avatar-img img, +.b-avatar[href]:not(:disabled):not(.disabled):hover .b-avatar-img img { + -webkit-transform: scale(1.15); + transform: scale(1.15); +} +.b-avatar.disabled, +.b-avatar:disabled, +.b-avatar[disabled] { + opacity: 0.65; + pointer-events: none; +} +.b-avatar .b-avatar-custom, +.b-avatar .b-avatar-text, +.b-avatar .b-avatar-img { + border-radius: inherit; + width: 100%; + height: 100%; + overflow: hidden; + display: flex; + justify-content: center; + align-items: center; + -webkit-mask-image: radial-gradient(white, black); + mask-image: radial-gradient(white, black); +} +.b-avatar .b-avatar-text { + text-transform: uppercase; + white-space: nowrap; +} +.b-avatar[href] { + text-decoration: none; +} +.b-avatar > .b-icon { + width: 60%; + height: auto; + max-width: 100%; +} +.b-avatar .b-avatar-img img { + width: 100%; + height: 100%; + max-height: auto; + border-radius: inherit; + -o-object-fit: cover; + object-fit: cover; +} +.b-avatar .b-avatar-badge { + position: absolute; + min-height: 1.5em; + min-width: 1.5em; + padding: 0.25em; + line-height: 1; + border-radius: 10em; + font-size: 70%; + font-weight: 700; + z-index: 1; +} +.b-avatar-sm { + width: 1.5rem; + height: 1.5rem; +} +.b-avatar-sm .b-avatar-text { + font-size: calc(0.6rem); +} +.b-avatar-sm .b-avatar-badge { + font-size: calc(0.42rem); +} +.b-avatar-lg { + width: 3.5rem; + height: 3.5rem; +} +.b-avatar-lg .b-avatar-text { + font-size: calc(1.4rem); +} +.b-avatar-lg .b-avatar-badge { + font-size: calc(0.98rem); +} +.b-avatar-group .b-avatar-group-inner { + display: flex; + flex-wrap: wrap; +} +.b-avatar-group .b-avatar { + border: 1px solid #dee2e6; +} +.b-avatar-group a.b-avatar:hover:not(.disabled):not(disabled), +.b-avatar-group .btn.b-avatar:hover:not(.disabled):not(disabled) { + z-index: 1; +} +.b-calendar { + display: inline-flex; +} +.b-calendar .b-calendar-inner { + min-width: 250px; +} +.b-calendar .b-calendar-header, +.b-calendar .b-calendar-nav { + margin-bottom: 0.25rem; +} +.b-calendar .b-calendar-nav .btn { + padding: 0.25rem; +} +.b-calendar output { + padding: 0.25rem; + font-size: 80%; +} +.b-calendar output.readonly { + background-color: #e9ecef; + opacity: 1; +} +.b-calendar .b-calendar-footer { + margin-top: 0.5rem; +} +.b-calendar .b-calendar-grid { + padding: 0; + margin: 0; + overflow: hidden; +} +.b-calendar .b-calendar-grid .row { + flex-wrap: nowrap; +} +.b-calendar .b-calendar-grid-caption { + padding: 0.25rem; +} +.b-calendar .b-calendar-grid-body .col[data-date] .btn { + width: 32px; + height: 32px; + font-size: 14px; + line-height: 1; + margin: 3px auto; + padding: 9px 0; +} +.b-calendar .btn:disabled, +.b-calendar .btn.disabled, +.b-calendar .btn[aria-disabled=true] { + cursor: default; + pointer-events: none; +} +.card-img-left { + border-top-left-radius: calc(0.25rem - 1px); + border-bottom-left-radius: calc(0.25rem - 1px); +} +.card-img-right { + border-top-right-radius: calc(0.25rem - 1px); + border-bottom-right-radius: calc(0.25rem - 1px); +} +.dropdown:not(.dropleft) .dropdown-toggle.dropdown-toggle-no-caret::after { + display: none !important; +} +.dropdown.dropleft .dropdown-toggle.dropdown-toggle-no-caret::before { + display: none !important; +} +.dropdown .dropdown-menu:focus { + outline: none; +} +.b-dropdown-form { + display: inline-block; + padding: 0.25rem 1.5rem; + width: 100%; + clear: both; + font-weight: 400; +} +.b-dropdown-form:focus { + outline: 1px dotted !important; + outline: 5px auto -webkit-focus-ring-color !important; +} +.b-dropdown-form.disabled, +.b-dropdown-form:disabled { + outline: 0 !important; + color: #6c757d; + pointer-events: none; +} +.b-dropdown-text { + display: inline-block; + padding: 0.25rem 1.5rem; + margin-bottom: 0; + width: 100%; + clear: both; + font-weight: lighter; +} +.custom-checkbox.b-custom-control-lg, +.input-group-lg .custom-checkbox { + font-size: 1.25rem; + line-height: 1.5; + padding-left: 1.875rem; +} +.custom-checkbox.b-custom-control-lg .custom-control-label::before, +.input-group-lg .custom-checkbox .custom-control-label::before { + top: 0.3125rem; + left: -1.875rem; + width: 1.25rem; + height: 1.25rem; + border-radius: 0.3rem; +} +.custom-checkbox.b-custom-control-lg .custom-control-label::after, +.input-group-lg .custom-checkbox .custom-control-label::after { + top: 0.3125rem; + left: -1.875rem; + width: 1.25rem; + height: 1.25rem; + background-size: 50% 50%; +} +.custom-checkbox.b-custom-control-sm, +.input-group-sm .custom-checkbox { + font-size: 0.875rem; + line-height: 1.5; + padding-left: 1.3125rem; +} +.custom-checkbox.b-custom-control-sm .custom-control-label::before, +.input-group-sm .custom-checkbox .custom-control-label::before { + top: 0.21875rem; + left: -1.3125rem; + width: 0.875rem; + height: 0.875rem; + border-radius: 0.2rem; +} +.custom-checkbox.b-custom-control-sm .custom-control-label::after, +.input-group-sm .custom-checkbox .custom-control-label::after { + top: 0.21875rem; + left: -1.3125rem; + width: 0.875rem; + height: 0.875rem; + background-size: 50% 50%; +} +.custom-switch.b-custom-control-lg, +.input-group-lg .custom-switch { + padding-left: 2.8125rem; +} +.custom-switch.b-custom-control-lg .custom-control-label, +.input-group-lg .custom-switch .custom-control-label { + font-size: 1.25rem; + line-height: 1.5; +} +.custom-switch.b-custom-control-lg .custom-control-label::before, +.input-group-lg .custom-switch .custom-control-label::before { + top: 0.3125rem; + height: 1.25rem; + left: -2.8125rem; + width: 2.1875rem; + border-radius: 0.625rem; +} +.custom-switch.b-custom-control-lg .custom-control-label::after, +.input-group-lg .custom-switch .custom-control-label::after { + top: calc(0.3125rem + 2px); + left: calc(-2.8125rem + 2px); + width: calc(1.25rem - 4px); + height: calc(1.25rem - 4px); + border-radius: 0.625rem; + background-size: 50% 50%; +} +.custom-switch.b-custom-control-lg .custom-control-input:checked ~ .custom-control-label::after, +.input-group-lg .custom-switch .custom-control-input:checked ~ .custom-control-label::after { + -webkit-transform: translateX(0.9375rem); + transform: translateX(0.9375rem); +} +.custom-switch.b-custom-control-sm, +.input-group-sm .custom-switch { + padding-left: 1.96875rem; +} +.custom-switch.b-custom-control-sm .custom-control-label, +.input-group-sm .custom-switch .custom-control-label { + font-size: 0.875rem; + line-height: 1.5; +} +.custom-switch.b-custom-control-sm .custom-control-label::before, +.input-group-sm .custom-switch .custom-control-label::before { + top: 0.21875rem; + left: -1.96875rem; + width: 1.53125rem; + height: 0.875rem; + border-radius: 0.4375rem; +} +.custom-switch.b-custom-control-sm .custom-control-label::after, +.input-group-sm .custom-switch .custom-control-label::after { + top: calc(0.21875rem + 2px); + left: calc(-1.96875rem + 2px); + width: calc(0.875rem - 4px); + height: calc(0.875rem - 4px); + border-radius: 0.4375rem; + background-size: 50% 50%; +} +.custom-switch.b-custom-control-sm .custom-control-input:checked ~ .custom-control-label::after, +.input-group-sm .custom-switch .custom-control-input:checked ~ .custom-control-label::after { + -webkit-transform: translateX(0.65625rem); + transform: translateX(0.65625rem); +} +.input-group > .input-group-prepend > .btn-group > .btn, +.input-group > .input-group-append:not(:last-child) > .btn-group > .btn, +.input-group > .input-group-append:last-child > .btn-group:not(:last-child):not(.dropdown-toggle) > .btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.input-group > .input-group-append > .btn-group > .btn, +.input-group > .input-group-prepend:not(:first-child) > .btn-group > .btn, +.input-group > .input-group-prepend:first-child > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.b-form-btn-label-control.form-control { + display: flex; + align-items: stretch; + height: auto; + padding: 0; + background-image: none; +} +.input-group .b-form-btn-label-control.form-control { + padding: 0; +} +[dir=rtl] .b-form-btn-label-control.form-control, +.b-form-btn-label-control.form-control[dir=rtl] { + flex-direction: row-reverse; +} +[dir=rtl] .b-form-btn-label-control.form-control > label, +.b-form-btn-label-control.form-control[dir=rtl] > label { + text-align: right; +} +.b-form-btn-label-control.form-control > .btn { + line-height: 1; + font-size: inherit; + box-shadow: none !important; + border: 0; +} +.b-form-btn-label-control.form-control > .btn:disabled { + pointer-events: none; +} +.b-form-btn-label-control.form-control.is-valid > .btn { + color: #28a745; +} +.b-form-btn-label-control.form-control.is-invalid > .btn { + color: #dc3545; +} +.b-form-btn-label-control.form-control > .dropdown-menu { + padding: 0.5rem; +} +.b-form-btn-label-control.form-control > .form-control { + height: auto; + min-height: calc(calc(1.5em + 0.75rem + 2px) - 2px); + padding-left: 0.25rem; + margin: 0; + border: 0; + outline: 0; + background: transparent; + word-break: break-word; + font-size: inherit; + white-space: normal; + cursor: pointer; +} +.b-form-btn-label-control.form-control > .form-control.form-control-sm { + min-height: calc(calc(1.5em + 0.5rem + 2px) - 2px); +} +.b-form-btn-label-control.form-control > .form-control.form-control-lg { + min-height: calc(calc(1.5em + 1rem + 2px) - 2px); +} +.input-group.input-group-sm .b-form-btn-label-control.form-control > .form-control { + min-height: calc(calc(1.5em + 0.5rem + 2px) - 2px); + padding-top: 0.25rem; + padding-bottom: 0.25rem; +} +.input-group.input-group-lg .b-form-btn-label-control.form-control > .form-control { + min-height: calc(calc(1.5em + 1rem + 2px) - 2px); + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} +.b-form-btn-label-control.form-control[aria-disabled=true], +.b-form-btn-label-control.form-control[aria-readonly=true] { + background-color: #e9ecef; + opacity: 1; +} +.b-form-btn-label-control.form-control[aria-disabled=true] { + pointer-events: none; +} +.b-form-btn-label-control.form-control[aria-disabled=true] > label { + cursor: default; +} +.b-form-btn-label-control.btn-group > .dropdown-menu { + padding: 0.5rem; +} +.custom-file-label { + white-space: nowrap; + overflow-x: hidden; +} +.b-custom-control-lg.custom-file, +.b-custom-control-lg .custom-file-input, +.b-custom-control-lg .custom-file-label, +.input-group-lg.custom-file, +.input-group-lg .custom-file-input, +.input-group-lg .custom-file-label { + font-size: 1.25rem; + height: calc(1.5em + 1rem + 2px); +} +.b-custom-control-lg .custom-file-label, +.b-custom-control-lg .custom-file-label:after, +.input-group-lg .custom-file-label, +.input-group-lg .custom-file-label:after { + padding: 0.5rem 1rem; + line-height: 1.5; +} +.b-custom-control-lg .custom-file-label, +.input-group-lg .custom-file-label { + border-radius: 0.3rem; +} +.b-custom-control-lg .custom-file-label::after, +.input-group-lg .custom-file-label::after { + font-size: inherit; + height: calc(1.5em + 1rem); + border-radius: 0 0.3rem 0.3rem 0; +} +.b-custom-control-sm.custom-file, +.b-custom-control-sm .custom-file-input, +.b-custom-control-sm .custom-file-label, +.input-group-sm.custom-file, +.input-group-sm .custom-file-input, +.input-group-sm .custom-file-label { + font-size: 0.875rem; + height: calc(1.5em + 0.5rem + 2px); +} +.b-custom-control-sm .custom-file-label, +.b-custom-control-sm .custom-file-label:after, +.input-group-sm .custom-file-label, +.input-group-sm .custom-file-label:after { + padding: 0.25rem 0.5rem; + line-height: 1.5; +} +.b-custom-control-sm .custom-file-label, +.input-group-sm .custom-file-label { + border-radius: 0.2rem; +} +.b-custom-control-sm .custom-file-label::after, +.input-group-sm .custom-file-label::after { + font-size: inherit; + height: calc(1.5em + 0.5rem); + border-radius: 0 0.2rem 0.2rem 0; +} +.was-validated .form-control:invalid, +.was-validated .form-control:valid, +.form-control.is-invalid, +.form-control.is-valid { + background-position: right calc(0.375em + 0.1875rem) center; +} +input[type=color].form-control { + height: calc(1.5em + 0.75rem + 2px); + padding: 0.125rem 0.25rem; +} +input[type=color].form-control.form-control-sm, +.input-group-sm input[type=color].form-control { + height: calc(1.5em + 0.5rem + 2px); + padding: 0.125rem 0.25rem; +} +input[type=color].form-control.form-control-lg, +.input-group-lg input[type=color].form-control { + height: calc(1.5em + 1rem + 2px); + padding: 0.125rem 0.25rem; +} +input[type=color].form-control:disabled { + background-color: #adb5bd; + opacity: 0.65; +} +.input-group > .custom-range { + position: relative; + flex: 1 1 auto; + width: 1%; + margin-bottom: 0; +} +.input-group > .custom-range + .form-control, +.input-group > .custom-range + .form-control-plaintext, +.input-group > .custom-range + .custom-select, +.input-group > .custom-range + .custom-range, +.input-group > .custom-range + .custom-file { + margin-left: -1px; +} +.input-group > .form-control + .custom-range, +.input-group > .form-control-plaintext + .custom-range, +.input-group > .custom-select + .custom-range, +.input-group > .custom-range + .custom-range, +.input-group > .custom-file + .custom-range { + margin-left: -1px; +} +.input-group > .custom-range:focus { + z-index: 3; +} +.input-group > .custom-range:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.input-group > .custom-range:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.input-group > .custom-range { + padding: 0 0.75rem; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #ced4da; + height: calc(1.5em + 0.75rem + 2px); + border-radius: 0.25rem; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .input-group > .custom-range { + transition: none; + } +} +.input-group > .custom-range:focus { + color: #495057; + background-color: #fff; + border-color: #80bdff; + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} +.input-group > .custom-range:disabled, +.input-group > .custom-range[readonly] { + background-color: #e9ecef; +} +.input-group-lg > .custom-range { + height: calc(1.5em + 1rem + 2px); + padding: 0 1rem; + border-radius: 0.3rem; +} +.input-group-sm > .custom-range { + height: calc(1.5em + 0.5rem + 2px); + padding: 0 0.5rem; + border-radius: 0.2rem; +} +.was-validated .input-group .custom-range:valid, +.input-group .custom-range.is-valid { + border-color: #28a745; +} +.was-validated .input-group .custom-range:valid:focus, +.input-group .custom-range.is-valid:focus { + border-color: #28a745; + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} +.was-validated .custom-range:valid:focus::-webkit-slider-thumb, +.custom-range.is-valid:focus::-webkit-slider-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem #9be7ac; +} +.was-validated .custom-range:valid:focus::-moz-range-thumb, +.custom-range.is-valid:focus::-moz-range-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem #9be7ac; +} +.was-validated .custom-range:valid:focus::-ms-thumb, +.custom-range.is-valid:focus::-ms-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem #9be7ac; +} +.was-validated .custom-range:valid::-webkit-slider-thumb, +.custom-range.is-valid::-webkit-slider-thumb { + background-color: #28a745; + background-image: none; +} +.was-validated .custom-range:valid::-webkit-slider-thumb:active, +.custom-range.is-valid::-webkit-slider-thumb:active { + background-color: #9be7ac; + background-image: none; +} +.was-validated .custom-range:valid::-webkit-slider-runnable-track, +.custom-range.is-valid::-webkit-slider-runnable-track { + background-color: rgba(40, 167, 69, 0.35); +} +.was-validated .custom-range:valid::-moz-range-thumb, +.custom-range.is-valid::-moz-range-thumb { + background-color: #28a745; + background-image: none; +} +.was-validated .custom-range:valid::-moz-range-thumb:active, +.custom-range.is-valid::-moz-range-thumb:active { + background-color: #9be7ac; + background-image: none; +} +.was-validated .custom-range:valid::-moz-range-track, +.custom-range.is-valid::-moz-range-track { + background: rgba(40, 167, 69, 0.35); +} +.was-validated .custom-range:valid ~ .valid-feedback, +.was-validated .custom-range:valid ~ .valid-tooltip, +.custom-range.is-valid ~ .valid-feedback, +.custom-range.is-valid ~ .valid-tooltip { + display: block; +} +.was-validated .custom-range:valid::-ms-thumb, +.custom-range.is-valid::-ms-thumb { + background-color: #28a745; + background-image: none; +} +.was-validated .custom-range:valid::-ms-thumb:active, +.custom-range.is-valid::-ms-thumb:active { + background-color: #9be7ac; + background-image: none; +} +.was-validated .custom-range:valid::-ms-track-lower, +.custom-range.is-valid::-ms-track-lower { + background: rgba(40, 167, 69, 0.35); +} +.was-validated .custom-range:valid::-ms-track-upper, +.custom-range.is-valid::-ms-track-upper { + background: rgba(40, 167, 69, 0.35); +} +.was-validated .input-group .custom-range:invalid, +.input-group .custom-range.is-invalid { + border-color: #dc3545; +} +.was-validated .input-group .custom-range:invalid:focus, +.input-group .custom-range.is-invalid:focus { + border-color: #dc3545; + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} +.was-validated .custom-range:invalid:focus::-webkit-slider-thumb, +.custom-range.is-invalid:focus::-webkit-slider-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem #f6cdd1; +} +.was-validated .custom-range:invalid:focus::-moz-range-thumb, +.custom-range.is-invalid:focus::-moz-range-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem #f6cdd1; +} +.was-validated .custom-range:invalid:focus::-ms-thumb, +.custom-range.is-invalid:focus::-ms-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem #f6cdd1; +} +.was-validated .custom-range:invalid::-webkit-slider-thumb, +.custom-range.is-invalid::-webkit-slider-thumb { + background-color: #dc3545; + background-image: none; +} +.was-validated .custom-range:invalid::-webkit-slider-thumb:active, +.custom-range.is-invalid::-webkit-slider-thumb:active { + background-color: #f6cdd1; + background-image: none; +} +.was-validated .custom-range:invalid::-webkit-slider-runnable-track, +.custom-range.is-invalid::-webkit-slider-runnable-track { + background-color: rgba(220, 53, 69, 0.35); +} +.was-validated .custom-range:invalid::-moz-range-thumb, +.custom-range.is-invalid::-moz-range-thumb { + background-color: #dc3545; + background-image: none; +} +.was-validated .custom-range:invalid::-moz-range-thumb:active, +.custom-range.is-invalid::-moz-range-thumb:active { + background-color: #f6cdd1; + background-image: none; +} +.was-validated .custom-range:invalid::-moz-range-track, +.custom-range.is-invalid::-moz-range-track { + background: rgba(220, 53, 69, 0.35); +} +.was-validated .custom-range:invalid ~ .invalid-feedback, +.was-validated .custom-range:invalid ~ .invalid-tooltip, +.custom-range.is-invalid ~ .invalid-feedback, +.custom-range.is-invalid ~ .invalid-tooltip { + display: block; +} +.was-validated .custom-range:invalid::-ms-thumb, +.custom-range.is-invalid::-ms-thumb { + background-color: #dc3545; + background-image: none; +} +.was-validated .custom-range:invalid::-ms-thumb:active, +.custom-range.is-invalid::-ms-thumb:active { + background-color: #f6cdd1; + background-image: none; +} +.was-validated .custom-range:invalid::-ms-track-lower, +.custom-range.is-invalid::-ms-track-lower { + background: rgba(220, 53, 69, 0.35); +} +.was-validated .custom-range:invalid::-ms-track-upper, +.custom-range.is-invalid::-ms-track-upper { + background: rgba(220, 53, 69, 0.35); +} +.custom-radio.b-custom-control-lg, +.input-group-lg .custom-radio { + font-size: 1.25rem; + line-height: 1.5; + padding-left: 1.875rem; +} +.custom-radio.b-custom-control-lg .custom-control-label::before, +.input-group-lg .custom-radio .custom-control-label::before { + top: 0.3125rem; + left: -1.875rem; + width: 1.25rem; + height: 1.25rem; + border-radius: 50%; +} +.custom-radio.b-custom-control-lg .custom-control-label::after, +.input-group-lg .custom-radio .custom-control-label::after { + top: 0.3125rem; + left: -1.875rem; + width: 1.25rem; + height: 1.25rem; + background: no-repeat 50%/50% 50%; +} +.custom-radio.b-custom-control-sm, +.input-group-sm .custom-radio { + font-size: 0.875rem; + line-height: 1.5; + padding-left: 1.3125rem; +} +.custom-radio.b-custom-control-sm .custom-control-label::before, +.input-group-sm .custom-radio .custom-control-label::before { + top: 0.21875rem; + left: -1.3125rem; + width: 0.875rem; + height: 0.875rem; + border-radius: 50%; +} +.custom-radio.b-custom-control-sm .custom-control-label::after, +.input-group-sm .custom-radio .custom-control-label::after { + top: 0.21875rem; + left: -1.3125rem; + width: 0.875rem; + height: 0.875rem; + background: no-repeat 50%/50% 50%; +} +.b-rating { + text-align: center; +} +.b-rating.d-inline-flex { + width: auto; +} +.b-rating .b-rating-star, +.b-rating .b-rating-value { + padding: 0 0.25em; +} +.b-rating .b-rating-value { + min-width: 2.5em; +} +.b-rating .b-rating-star { + display: inline-flex; + justify-content: center; + outline: 0; +} +.b-rating .b-rating-star .b-rating-icon { + display: inline-flex; + transition: all 0.15s ease-in-out; +} +.b-rating.disabled, +.b-rating:disabled { + background-color: #e9ecef; + color: #6c757d; +} +.b-rating:not(.disabled):not(.readonly) .b-rating-star { + cursor: pointer; +} +.b-rating:not(.disabled):not(.readonly):focus:not(:hover) .b-rating-star.focused .b-rating-icon, +.b-rating:not(.disabled):not(.readonly) .b-rating-star:hover .b-rating-icon { + -webkit-transform: scale(1.5); + transform: scale(1.5); +} +.b-rating[dir=rtl] .b-rating-star-half { + -webkit-transform: scale(-1, 1); + transform: scale(-1, 1); +} +.b-form-spinbutton { + text-align: center; + overflow: hidden; + background-image: none; + padding: 0; +} +[dir=rtl] .b-form-spinbutton:not(.flex-column), +.b-form-spinbutton[dir=rtl]:not(.flex-column) { + flex-direction: row-reverse; +} +.b-form-spinbutton output { + font-size: inherit; + outline: 0; + border: 0; + background-color: transparent; + width: auto; + margin: 0; + padding: 0 0.25rem; +} +.b-form-spinbutton output > div, +.b-form-spinbutton output > bdi { + display: block; + min-width: 2.25em; + height: 1.5em; +} +.b-form-spinbutton.flex-column { + height: auto; + width: auto; +} +.b-form-spinbutton.flex-column output { + margin: 0 0.25rem; + padding: 0.25rem 0; +} +.b-form-spinbutton:not(.d-inline-flex):not(.flex-column) { + output-width: 100%; +} +.b-form-spinbutton.d-inline-flex:not(.flex-column) { + width: auto; +} +.b-form-spinbutton .btn { + line-height: 1; + box-shadow: none !important; +} +.b-form-spinbutton .btn:disabled { + pointer-events: none; +} +.b-form-spinbutton .btn:hover:not(:disabled) > div > .b-icon { + -webkit-transform: scale(1.25); + transform: scale(1.25); +} +.b-form-spinbutton.disabled, +.b-form-spinbutton.readonly { + background-color: #e9ecef; +} +.b-form-spinbutton.disabled { + pointer-events: none; +} +.b-form-tags .b-form-tags-list { + margin-top: -0.25rem; +} +.b-form-tags .b-form-tags-list .b-from-tags-field, +.b-form-tags .b-form-tags-list .b-form-tag { + margin-top: 0.25rem; +} +.b-form-tags.focus { + color: #495057; + background-color: #fff; + border-color: #80bdff; + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} +.b-form-tags.focus.is-valid { + border-color: #28a745; + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} +.b-form-tags.focus.is-invalid { + border-color: #dc3545; + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} +.b-form-tags.disabled { + background-color: #e9ecef; +} +.b-form-tag { + font-size: 75%; + font-weight: normal; + line-height: 1.5; + margin-right: 0.25rem; +} +.b-form-tag.disabled { + opacity: 0.75; +} +.b-form-tag > button.b-form-tag-remove { + color: inherit; + font-size: 125%; + line-height: 1; + float: none; + margin-left: 0.25rem; +} +.form-control-sm .b-form-tag { + line-height: 1.5; +} +.form-control-lg .b-form-tag { + line-height: 1.5; +} +.media-aside { + display: flex; + margin-right: 1rem; +} +.media-aside-right { + margin-right: 0; + margin-left: 1rem; +} +.modal-backdrop { + opacity: 0.5; +} +.b-pagination-pills .page-item .page-link { + border-radius: 50rem !important; + margin-left: 0.25rem; + line-height: 1; +} +.b-pagination-pills .page-item:first-child .page-link { + margin-left: 0; +} +.popover.b-popover { + display: block; + opacity: 1; + outline: 0; +} +.popover.b-popover.fade:not(.show) { + opacity: 0; +} +.popover.b-popover.show { + opacity: 1; +} +.b-popover-primary.popover { + background-color: #cce5ff; + border-color: #b8daff; +} +.b-popover-primary.bs-popover-top > .arrow::before, +.b-popover-primary.bs-popover-auto[x-placement^=top] > .arrow::before { + border-top-color: #b8daff; +} +.b-popover-primary.bs-popover-top > .arrow::after, +.b-popover-primary.bs-popover-auto[x-placement^=top] > .arrow::after { + border-top-color: #cce5ff; +} +.b-popover-primary.bs-popover-right > .arrow::before, +.b-popover-primary.bs-popover-auto[x-placement^=right] > .arrow::before { + border-right-color: #b8daff; +} +.b-popover-primary.bs-popover-right > .arrow::after, +.b-popover-primary.bs-popover-auto[x-placement^=right] > .arrow::after { + border-right-color: #cce5ff; +} +.b-popover-primary.bs-popover-bottom > .arrow::before, +.b-popover-primary.bs-popover-auto[x-placement^=bottom] > .arrow::before { + border-bottom-color: #b8daff; +} +.b-popover-primary.bs-popover-bottom > .arrow::after, +.b-popover-primary.bs-popover-auto[x-placement^=bottom] > .arrow::after { + border-bottom-color: #bdddff; +} +.b-popover-primary.bs-popover-bottom .popover-header::before, +.b-popover-primary.bs-popover-auto[x-placement^=bottom] .popover-header::before { + border-bottom-color: #bdddff; +} +.b-popover-primary.bs-popover-left > .arrow::before, +.b-popover-primary.bs-popover-auto[x-placement^=left] > .arrow::before { + border-left-color: #b8daff; +} +.b-popover-primary.bs-popover-left > .arrow::after, +.b-popover-primary.bs-popover-auto[x-placement^=left] > .arrow::after { + border-left-color: #cce5ff; +} +.b-popover-primary .popover-header { + color: #212529; + background-color: #bdddff; + border-bottom-color: #a3d0ff; +} +.b-popover-primary .popover-body { + color: #004085; +} +.b-popover-secondary.popover { + background-color: #e2e3e5; + border-color: #d6d8db; +} +.b-popover-secondary.bs-popover-top > .arrow::before, +.b-popover-secondary.bs-popover-auto[x-placement^=top] > .arrow::before { + border-top-color: #d6d8db; +} +.b-popover-secondary.bs-popover-top > .arrow::after, +.b-popover-secondary.bs-popover-auto[x-placement^=top] > .arrow::after { + border-top-color: #e2e3e5; +} +.b-popover-secondary.bs-popover-right > .arrow::before, +.b-popover-secondary.bs-popover-auto[x-placement^=right] > .arrow::before { + border-right-color: #d6d8db; +} +.b-popover-secondary.bs-popover-right > .arrow::after, +.b-popover-secondary.bs-popover-auto[x-placement^=right] > .arrow::after { + border-right-color: #e2e3e5; +} +.b-popover-secondary.bs-popover-bottom > .arrow::before, +.b-popover-secondary.bs-popover-auto[x-placement^=bottom] > .arrow::before { + border-bottom-color: #d6d8db; +} +.b-popover-secondary.bs-popover-bottom > .arrow::after, +.b-popover-secondary.bs-popover-auto[x-placement^=bottom] > .arrow::after { + border-bottom-color: #dadbde; +} +.b-popover-secondary.bs-popover-bottom .popover-header::before, +.b-popover-secondary.bs-popover-auto[x-placement^=bottom] .popover-header::before { + border-bottom-color: #dadbde; +} +.b-popover-secondary.bs-popover-left > .arrow::before, +.b-popover-secondary.bs-popover-auto[x-placement^=left] > .arrow::before { + border-left-color: #d6d8db; +} +.b-popover-secondary.bs-popover-left > .arrow::after, +.b-popover-secondary.bs-popover-auto[x-placement^=left] > .arrow::after { + border-left-color: #e2e3e5; +} +.b-popover-secondary .popover-header { + color: #212529; + background-color: #dadbde; + border-bottom-color: #ccced2; +} +.b-popover-secondary .popover-body { + color: #383d41; +} +.b-popover-success.popover { + background-color: #d4edda; + border-color: #c3e6cb; +} +.b-popover-success.bs-popover-top > .arrow::before, +.b-popover-success.bs-popover-auto[x-placement^=top] > .arrow::before { + border-top-color: #c3e6cb; +} +.b-popover-success.bs-popover-top > .arrow::after, +.b-popover-success.bs-popover-auto[x-placement^=top] > .arrow::after { + border-top-color: #d4edda; +} +.b-popover-success.bs-popover-right > .arrow::before, +.b-popover-success.bs-popover-auto[x-placement^=right] > .arrow::before { + border-right-color: #c3e6cb; +} +.b-popover-success.bs-popover-right > .arrow::after, +.b-popover-success.bs-popover-auto[x-placement^=right] > .arrow::after { + border-right-color: #d4edda; +} +.b-popover-success.bs-popover-bottom > .arrow::before, +.b-popover-success.bs-popover-auto[x-placement^=bottom] > .arrow::before { + border-bottom-color: #c3e6cb; +} +.b-popover-success.bs-popover-bottom > .arrow::after, +.b-popover-success.bs-popover-auto[x-placement^=bottom] > .arrow::after { + border-bottom-color: #c9e8d1; +} +.b-popover-success.bs-popover-bottom .popover-header::before, +.b-popover-success.bs-popover-auto[x-placement^=bottom] .popover-header::before { + border-bottom-color: #c9e8d1; +} +.b-popover-success.bs-popover-left > .arrow::before, +.b-popover-success.bs-popover-auto[x-placement^=left] > .arrow::before { + border-left-color: #c3e6cb; +} +.b-popover-success.bs-popover-left > .arrow::after, +.b-popover-success.bs-popover-auto[x-placement^=left] > .arrow::after { + border-left-color: #d4edda; +} +.b-popover-success .popover-header { + color: #212529; + background-color: #c9e8d1; + border-bottom-color: #b7e1c1; +} +.b-popover-success .popover-body { + color: #155724; +} +.b-popover-info.popover { + background-color: #d1ecf1; + border-color: #bee5eb; +} +.b-popover-info.bs-popover-top > .arrow::before, +.b-popover-info.bs-popover-auto[x-placement^=top] > .arrow::before { + border-top-color: #bee5eb; +} +.b-popover-info.bs-popover-top > .arrow::after, +.b-popover-info.bs-popover-auto[x-placement^=top] > .arrow::after { + border-top-color: #d1ecf1; +} +.b-popover-info.bs-popover-right > .arrow::before, +.b-popover-info.bs-popover-auto[x-placement^=right] > .arrow::before { + border-right-color: #bee5eb; +} +.b-popover-info.bs-popover-right > .arrow::after, +.b-popover-info.bs-popover-auto[x-placement^=right] > .arrow::after { + border-right-color: #d1ecf1; +} +.b-popover-info.bs-popover-bottom > .arrow::before, +.b-popover-info.bs-popover-auto[x-placement^=bottom] > .arrow::before { + border-bottom-color: #bee5eb; +} +.b-popover-info.bs-popover-bottom > .arrow::after, +.b-popover-info.bs-popover-auto[x-placement^=bottom] > .arrow::after { + border-bottom-color: #c5e7ed; +} +.b-popover-info.bs-popover-bottom .popover-header::before, +.b-popover-info.bs-popover-auto[x-placement^=bottom] .popover-header::before { + border-bottom-color: #c5e7ed; +} +.b-popover-info.bs-popover-left > .arrow::before, +.b-popover-info.bs-popover-auto[x-placement^=left] > .arrow::before { + border-left-color: #bee5eb; +} +.b-popover-info.bs-popover-left > .arrow::after, +.b-popover-info.bs-popover-auto[x-placement^=left] > .arrow::after { + border-left-color: #d1ecf1; +} +.b-popover-info .popover-header { + color: #212529; + background-color: #c5e7ed; + border-bottom-color: #b2dfe7; +} +.b-popover-info .popover-body { + color: #0c5460; +} +.b-popover-warning.popover { + background-color: #fff3cd; + border-color: #ffeeba; +} +.b-popover-warning.bs-popover-top > .arrow::before, +.b-popover-warning.bs-popover-auto[x-placement^=top] > .arrow::before { + border-top-color: #ffeeba; +} +.b-popover-warning.bs-popover-top > .arrow::after, +.b-popover-warning.bs-popover-auto[x-placement^=top] > .arrow::after { + border-top-color: #fff3cd; +} +.b-popover-warning.bs-popover-right > .arrow::before, +.b-popover-warning.bs-popover-auto[x-placement^=right] > .arrow::before { + border-right-color: #ffeeba; +} +.b-popover-warning.bs-popover-right > .arrow::after, +.b-popover-warning.bs-popover-auto[x-placement^=right] > .arrow::after { + border-right-color: #fff3cd; +} +.b-popover-warning.bs-popover-bottom > .arrow::before, +.b-popover-warning.bs-popover-auto[x-placement^=bottom] > .arrow::before { + border-bottom-color: #ffeeba; +} +.b-popover-warning.bs-popover-bottom > .arrow::after, +.b-popover-warning.bs-popover-auto[x-placement^=bottom] > .arrow::after { + border-bottom-color: #ffefbe; +} +.b-popover-warning.bs-popover-bottom .popover-header::before, +.b-popover-warning.bs-popover-auto[x-placement^=bottom] .popover-header::before { + border-bottom-color: #ffefbe; +} +.b-popover-warning.bs-popover-left > .arrow::before, +.b-popover-warning.bs-popover-auto[x-placement^=left] > .arrow::before { + border-left-color: #ffeeba; +} +.b-popover-warning.bs-popover-left > .arrow::after, +.b-popover-warning.bs-popover-auto[x-placement^=left] > .arrow::after { + border-left-color: #fff3cd; +} +.b-popover-warning .popover-header { + color: #212529; + background-color: #ffefbe; + border-bottom-color: #ffe9a4; +} +.b-popover-warning .popover-body { + color: #856404; +} +.b-popover-danger.popover { + background-color: #f8d7da; + border-color: #f5c6cb; +} +.b-popover-danger.bs-popover-top > .arrow::before, +.b-popover-danger.bs-popover-auto[x-placement^=top] > .arrow::before { + border-top-color: #f5c6cb; +} +.b-popover-danger.bs-popover-top > .arrow::after, +.b-popover-danger.bs-popover-auto[x-placement^=top] > .arrow::after { + border-top-color: #f8d7da; +} +.b-popover-danger.bs-popover-right > .arrow::before, +.b-popover-danger.bs-popover-auto[x-placement^=right] > .arrow::before { + border-right-color: #f5c6cb; +} +.b-popover-danger.bs-popover-right > .arrow::after, +.b-popover-danger.bs-popover-auto[x-placement^=right] > .arrow::after { + border-right-color: #f8d7da; +} +.b-popover-danger.bs-popover-bottom > .arrow::before, +.b-popover-danger.bs-popover-auto[x-placement^=bottom] > .arrow::before { + border-bottom-color: #f5c6cb; +} +.b-popover-danger.bs-popover-bottom > .arrow::after, +.b-popover-danger.bs-popover-auto[x-placement^=bottom] > .arrow::after { + border-bottom-color: #f6cace; +} +.b-popover-danger.bs-popover-bottom .popover-header::before, +.b-popover-danger.bs-popover-auto[x-placement^=bottom] .popover-header::before { + border-bottom-color: #f6cace; +} +.b-popover-danger.bs-popover-left > .arrow::before, +.b-popover-danger.bs-popover-auto[x-placement^=left] > .arrow::before { + border-left-color: #f5c6cb; +} +.b-popover-danger.bs-popover-left > .arrow::after, +.b-popover-danger.bs-popover-auto[x-placement^=left] > .arrow::after { + border-left-color: #f8d7da; +} +.b-popover-danger .popover-header { + color: #212529; + background-color: #f6cace; + border-bottom-color: #f2b4ba; +} +.b-popover-danger .popover-body { + color: #721c24; +} +.b-popover-light.popover { + background-color: #fefefe; + border-color: #fdfdfe; +} +.b-popover-light.bs-popover-top > .arrow::before, +.b-popover-light.bs-popover-auto[x-placement^=top] > .arrow::before { + border-top-color: #fdfdfe; +} +.b-popover-light.bs-popover-top > .arrow::after, +.b-popover-light.bs-popover-auto[x-placement^=top] > .arrow::after { + border-top-color: #fefefe; +} +.b-popover-light.bs-popover-right > .arrow::before, +.b-popover-light.bs-popover-auto[x-placement^=right] > .arrow::before { + border-right-color: #fdfdfe; +} +.b-popover-light.bs-popover-right > .arrow::after, +.b-popover-light.bs-popover-auto[x-placement^=right] > .arrow::after { + border-right-color: #fefefe; +} +.b-popover-light.bs-popover-bottom > .arrow::before, +.b-popover-light.bs-popover-auto[x-placement^=bottom] > .arrow::before { + border-bottom-color: #fdfdfe; +} +.b-popover-light.bs-popover-bottom > .arrow::after, +.b-popover-light.bs-popover-auto[x-placement^=bottom] > .arrow::after { + border-bottom-color: #f6f6f6; +} +.b-popover-light.bs-popover-bottom .popover-header::before, +.b-popover-light.bs-popover-auto[x-placement^=bottom] .popover-header::before { + border-bottom-color: #f6f6f6; +} +.b-popover-light.bs-popover-left > .arrow::before, +.b-popover-light.bs-popover-auto[x-placement^=left] > .arrow::before { + border-left-color: #fdfdfe; +} +.b-popover-light.bs-popover-left > .arrow::after, +.b-popover-light.bs-popover-auto[x-placement^=left] > .arrow::after { + border-left-color: #fefefe; +} +.b-popover-light .popover-header { + color: #212529; + background-color: #f6f6f6; + border-bottom-color: #eaeaea; +} +.b-popover-light .popover-body { + color: #818182; +} +.b-popover-dark.popover { + background-color: #d6d8d9; + border-color: #c6c8ca; +} +.b-popover-dark.bs-popover-top > .arrow::before, +.b-popover-dark.bs-popover-auto[x-placement^=top] > .arrow::before { + border-top-color: #c6c8ca; +} +.b-popover-dark.bs-popover-top > .arrow::after, +.b-popover-dark.bs-popover-auto[x-placement^=top] > .arrow::after { + border-top-color: #d6d8d9; +} +.b-popover-dark.bs-popover-right > .arrow::before, +.b-popover-dark.bs-popover-auto[x-placement^=right] > .arrow::before { + border-right-color: #c6c8ca; +} +.b-popover-dark.bs-popover-right > .arrow::after, +.b-popover-dark.bs-popover-auto[x-placement^=right] > .arrow::after { + border-right-color: #d6d8d9; +} +.b-popover-dark.bs-popover-bottom > .arrow::before, +.b-popover-dark.bs-popover-auto[x-placement^=bottom] > .arrow::before { + border-bottom-color: #c6c8ca; +} +.b-popover-dark.bs-popover-bottom > .arrow::after, +.b-popover-dark.bs-popover-auto[x-placement^=bottom] > .arrow::after { + border-bottom-color: #ced0d2; +} +.b-popover-dark.bs-popover-bottom .popover-header::before, +.b-popover-dark.bs-popover-auto[x-placement^=bottom] .popover-header::before { + border-bottom-color: #ced0d2; +} +.b-popover-dark.bs-popover-left > .arrow::before, +.b-popover-dark.bs-popover-auto[x-placement^=left] > .arrow::before { + border-left-color: #c6c8ca; +} +.b-popover-dark.bs-popover-left > .arrow::after, +.b-popover-dark.bs-popover-auto[x-placement^=left] > .arrow::after { + border-left-color: #d6d8d9; +} +.b-popover-dark .popover-header { + color: #212529; + background-color: #ced0d2; + border-bottom-color: #c1c4c5; +} +.b-popover-dark .popover-body { + color: #1b1e21; +} +.b-sidebar-outer { + position: fixed; + top: 0; + left: 0; + right: 0; + height: 0; + overflow: visible; + z-index: calc(1030 + 5); +} +.b-sidebar-backdrop { + position: fixed; + top: 0; + left: 0; + z-index: -1; + width: 100vw; + height: 100vh; + opacity: 0.6; +} +.b-sidebar { + display: flex; + flex-direction: column; + position: fixed; + top: 0; + width: 320px; + max-width: 100%; + height: 100vh; + max-height: 100%; + margin: 0; + outline: 0; + -webkit-transform: translateX(0); + transform: translateX(0); +} +.b-sidebar.slide { + transition: -webkit-transform 0.3s ease-in-out; + transition: transform 0.3s ease-in-out; + transition: transform 0.3s ease-in-out, -webkit-transform 0.3s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .b-sidebar.slide { + transition: none; + } +} +.b-sidebar:not(.b-sidebar-right) { + left: 0; + right: auto; +} +.b-sidebar:not(.b-sidebar-right).slide:not(.show) { + -webkit-transform: translateX(-100%); + transform: translateX(-100%); +} +.b-sidebar:not(.b-sidebar-right) > .b-sidebar-header .close { + margin-left: auto; +} +.b-sidebar.b-sidebar-right { + left: auto; + right: 0; +} +.b-sidebar.b-sidebar-right.slide:not(.show) { + -webkit-transform: translateX(100%); + transform: translateX(100%); +} +.b-sidebar.b-sidebar-right > .b-sidebar-header .close { + margin-right: auto; +} +.b-sidebar > .b-sidebar-header { + font-size: 1.5rem; + padding: 0.5rem 1rem; + display: flex; + flex-direction: row; + flex-grow: 0; + align-items: center; +} +[dir=rtl] .b-sidebar > .b-sidebar-header { + flex-direction: row-reverse; +} +.b-sidebar > .b-sidebar-header .close { + float: none; + font-size: 1.5rem; +} +.b-sidebar > .b-sidebar-body { + flex-grow: 1; + height: 100%; + overflow-y: auto; +} +.b-sidebar > .b-sidebar-footer { + flex-grow: 0; +} +.b-skeleton-wrapper { + cursor: wait; +} +.b-skeleton { + position: relative; + overflow: hidden; + background-color: rgba(0, 0, 0, 0.12); + cursor: wait; + -webkit-mask-image: radial-gradient(white, black); + mask-image: radial-gradient(white, black); +} +.b-skeleton::before { + content: " "; +} +.b-skeleton-text { + height: 1rem; + margin-bottom: 0.25rem; + border-radius: 0.25rem; +} +.b-skeleton-button { + width: 75px; + padding: 0.375rem 0.75rem; + font-size: 1rem; + line-height: 1.5; + border-radius: 0.25rem; +} +.b-skeleton-avatar { + width: 2.5em; + height: 2.5em; + border-radius: 50%; +} +.b-skeleton-input { + height: calc(1.5em + 0.75rem + 2px); + padding: 0.375rem 0.75rem; + line-height: 1.5; + border: #ced4da solid 1px; + border-radius: 0.25rem; +} +.b-skeleton-icon-wrapper svg { + color: rgba(0, 0, 0, 0.12); +} +.b-skeleton-img { + height: 100%; + width: 100%; +} +.b-skeleton-animate-wave::after { + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 0; + background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent); + -webkit-animation: b-skeleton-animate-wave 1.75s linear infinite; + animation: b-skeleton-animate-wave 1.75s linear infinite; +} +@media (prefers-reduced-motion: reduce) { + .b-skeleton-animate-wave::after { + background: none; + -webkit-animation: none; + animation: none; + } +} +@-webkit-keyframes b-skeleton-animate-wave { + from { + -webkit-transform: translateX(-100%); + transform: translateX(-100%); + } + to { + -webkit-transform: translateX(100%); + transform: translateX(100%); + } +} +@keyframes b-skeleton-animate-wave { + from { + -webkit-transform: translateX(-100%); + transform: translateX(-100%); + } + to { + -webkit-transform: translateX(100%); + transform: translateX(100%); + } +} +.b-skeleton-animate-fade { + -webkit-animation: b-skeleton-animate-fade 0.875s ease-in-out alternate infinite; + animation: b-skeleton-animate-fade 0.875s ease-in-out alternate infinite; +} +@media (prefers-reduced-motion: reduce) { + .b-skeleton-animate-fade { + -webkit-animation: none; + animation: none; + } +} +@-webkit-keyframes b-skeleton-animate-fade { + 0% { + opacity: 1; + } + 100% { + opacity: 0.4; + } +} +@keyframes b-skeleton-animate-fade { + 0% { + opacity: 1; + } + 100% { + opacity: 0.4; + } +} +.b-skeleton-animate-throb { + -webkit-animation: b-skeleton-animate-throb 0.875s ease-in alternate infinite; + animation: b-skeleton-animate-throb 0.875s ease-in alternate infinite; +} +@media (prefers-reduced-motion: reduce) { + .b-skeleton-animate-throb { + -webkit-animation: none; + animation: none; + } +} +@-webkit-keyframes b-skeleton-animate-throb { + 0% { + -webkit-transform: scale(1); + transform: scale(1); + } + 100% { + -webkit-transform: scale(0.975); + transform: scale(0.975); + } +} +@keyframes b-skeleton-animate-throb { + 0% { + -webkit-transform: scale(1); + transform: scale(1); + } + 100% { + -webkit-transform: scale(0.975); + transform: scale(0.975); + } +} +.table.b-table.b-table-fixed { + table-layout: fixed; +} +.table.b-table.b-table-no-border-collapse { + border-collapse: separate; + border-spacing: 0; +} +.table.b-table[aria-busy=true] { + opacity: 0.55; +} +.table.b-table > tbody > tr.b-table-details > td { + border-top: none !important; +} +.table.b-table > caption { + caption-side: bottom; +} +.table.b-table.b-table-caption-top > caption { + caption-side: top !important; +} +.table.b-table > tbody > .table-active, +.table.b-table > tbody > .table-active > th, +.table.b-table > tbody > .table-active > td { + background-color: rgba(0, 0, 0, 0.075); +} +.table.b-table.table-hover > tbody > tr.table-active:hover td, +.table.b-table.table-hover > tbody > tr.table-active:hover th { + color: #212529; + background-image: linear-gradient(rgba(0, 0, 0, 0.075), rgba(0, 0, 0, 0.075)); + background-repeat: no-repeat; +} +.table.b-table > tbody > .bg-active, +.table.b-table > tbody > .bg-active > th, +.table.b-table > tbody > .bg-active > td { + background-color: rgba(255, 255, 255, 0.075) !important; +} +.table.b-table.table-hover.table-dark > tbody > tr.bg-active:hover td, +.table.b-table.table-hover.table-dark > tbody > tr.bg-active:hover th { + color: #fff; + background-image: linear-gradient(rgba(255, 255, 255, 0.075), rgba(255, 255, 255, 0.075)); + background-repeat: no-repeat; +} +.b-table-sticky-header, +.table-responsive, +[class*=table-responsive-] { + margin-bottom: 1rem; +} +.b-table-sticky-header > .table, +.table-responsive > .table, +[class*=table-responsive-] > .table { + margin-bottom: 0; +} +.b-table-sticky-header { + overflow-y: auto; + max-height: 300px; +} +@media print { + .b-table-sticky-header { + overflow-y: visible !important; + max-height: none !important; + } +} +@supports ((position: -webkit-sticky) or (position: sticky)) { + .b-table-sticky-header > .table.b-table > thead > tr > th { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 2; + } + .b-table-sticky-header > .table.b-table > thead > tr > .b-table-sticky-column, + .b-table-sticky-header > .table.b-table > tbody > tr > .b-table-sticky-column, + .b-table-sticky-header > .table.b-table > tfoot > tr > .b-table-sticky-column, + .table-responsive > .table.b-table > thead > tr > .b-table-sticky-column, + .table-responsive > .table.b-table > tbody > tr > .b-table-sticky-column, + .table-responsive > .table.b-table > tfoot > tr > .b-table-sticky-column, + [class*=table-responsive-] > .table.b-table > thead > tr > .b-table-sticky-column, + [class*=table-responsive-] > .table.b-table > tbody > tr > .b-table-sticky-column, + [class*=table-responsive-] > .table.b-table > tfoot > tr > .b-table-sticky-column { + position: -webkit-sticky; + position: sticky; + left: 0; + } + .b-table-sticky-header > .table.b-table > thead > tr > .b-table-sticky-column, + .table-responsive > .table.b-table > thead > tr > .b-table-sticky-column, + [class*=table-responsive-] > .table.b-table > thead > tr > .b-table-sticky-column { + z-index: 5; + } + .b-table-sticky-header > .table.b-table > tbody > tr > .b-table-sticky-column, + .b-table-sticky-header > .table.b-table > tfoot > tr > .b-table-sticky-column, + .table-responsive > .table.b-table > tbody > tr > .b-table-sticky-column, + .table-responsive > .table.b-table > tfoot > tr > .b-table-sticky-column, + [class*=table-responsive-] > .table.b-table > tbody > tr > .b-table-sticky-column, + [class*=table-responsive-] > .table.b-table > tfoot > tr > .b-table-sticky-column { + z-index: 2; + } + .table.b-table > thead > tr > .table-b-table-default, + .table.b-table > tbody > tr > .table-b-table-default, + .table.b-table > tfoot > tr > .table-b-table-default { + color: #212529; + background-color: #fff; + } + .table.b-table.table-dark > thead > tr > .bg-b-table-default, + .table.b-table.table-dark > tbody > tr > .bg-b-table-default, + .table.b-table.table-dark > tfoot > tr > .bg-b-table-default { + color: #fff; + background-color: #343a40; + } + .table.b-table.table-striped > tbody > tr:nth-of-type(odd) > .table-b-table-default { + background-image: linear-gradient(rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05)); + background-repeat: no-repeat; + } + .table.b-table.table-striped.table-dark > tbody > tr:nth-of-type(odd) > .bg-b-table-default { + background-image: linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.05)); + background-repeat: no-repeat; + } + .table.b-table.table-hover > tbody > tr:hover > .table-b-table-default { + color: #212529; + background-image: linear-gradient(rgba(0, 0, 0, 0.075), rgba(0, 0, 0, 0.075)); + background-repeat: no-repeat; + } + .table.b-table.table-hover.table-dark > tbody > tr:hover > .bg-b-table-default { + color: #fff; + background-image: linear-gradient(rgba(255, 255, 255, 0.075), rgba(255, 255, 255, 0.075)); + background-repeat: no-repeat; + } +} +.table.b-table > thead > tr > [aria-sort], +.table.b-table > tfoot > tr > [aria-sort] { + cursor: pointer; + background-image: none; + background-repeat: no-repeat; + background-size: 0.65em 1em; +} +.table.b-table > thead > tr > [aria-sort]:not(.b-table-sort-icon-left), +.table.b-table > tfoot > tr > [aria-sort]:not(.b-table-sort-icon-left) { + background-position: right calc(0.75rem / 2) center; + padding-right: calc(0.75rem + 0.65em); +} +.table.b-table > thead > tr > [aria-sort].b-table-sort-icon-left, +.table.b-table > tfoot > tr > [aria-sort].b-table-sort-icon-left { + background-position: left calc(0.75rem / 2) center; + padding-left: calc(0.75rem + 0.65em); +} +.table.b-table > thead > tr > [aria-sort=none], +.table.b-table > tfoot > tr > [aria-sort=none] { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='black' opacity='.3' d='M51 1l25 23 24 22H1l25-22zM51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e"); +} +.table.b-table > thead > tr > [aria-sort=ascending], +.table.b-table > tfoot > tr > [aria-sort=ascending] { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='black' d='M51 1l25 23 24 22H1l25-22z'/%3e%3cpath fill='black' opacity='.3' d='M51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e"); +} +.table.b-table > thead > tr > [aria-sort=descending], +.table.b-table > tfoot > tr > [aria-sort=descending] { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='black' opacity='.3' d='M51 1l25 23 24 22H1l25-22z'/%3e%3cpath fill='black' d='M51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e"); +} +.table.b-table.table-dark > thead > tr > [aria-sort=none], +.table.b-table.table-dark > tfoot > tr > [aria-sort=none], +.table.b-table > .thead-dark > tr > [aria-sort=none] { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='white' opacity='.3' d='M51 1l25 23 24 22H1l25-22zM51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e"); +} +.table.b-table.table-dark > thead > tr > [aria-sort=ascending], +.table.b-table.table-dark > tfoot > tr > [aria-sort=ascending], +.table.b-table > .thead-dark > tr > [aria-sort=ascending] { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='white' d='M51 1l25 23 24 22H1l25-22z'/%3e%3cpath fill='white' opacity='.3' d='M51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e"); +} +.table.b-table.table-dark > thead > tr > [aria-sort=descending], +.table.b-table.table-dark > tfoot > tr > [aria-sort=descending], +.table.b-table > .thead-dark > tr > [aria-sort=descending] { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='white' opacity='.3' d='M51 1l25 23 24 22H1l25-22z'/%3e%3cpath fill='white' d='M51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e"); +} +.table.b-table > thead > tr > .table-dark[aria-sort=none], +.table.b-table > tfoot > tr > .table-dark[aria-sort=none] { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='white' opacity='.3' d='M51 1l25 23 24 22H1l25-22zM51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e"); +} +.table.b-table > thead > tr > .table-dark[aria-sort=ascending], +.table.b-table > tfoot > tr > .table-dark[aria-sort=ascending] { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='white' d='M51 1l25 23 24 22H1l25-22z'/%3e%3cpath fill='white' opacity='.3' d='M51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e"); +} +.table.b-table > thead > tr > .table-dark[aria-sort=descending], +.table.b-table > tfoot > tr > .table-dark[aria-sort=descending] { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='white' opacity='.3' d='M51 1l25 23 24 22H1l25-22z'/%3e%3cpath fill='white' d='M51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e"); +} +.table.b-table.table-sm > thead > tr > [aria-sort]:not(.b-table-sort-icon-left), +.table.b-table.table-sm > tfoot > tr > [aria-sort]:not(.b-table-sort-icon-left) { + background-position: right calc(0.3rem / 2) center; + padding-right: calc(0.3rem + 0.65em); +} +.table.b-table.table-sm > thead > tr > [aria-sort].b-table-sort-icon-left, +.table.b-table.table-sm > tfoot > tr > [aria-sort].b-table-sort-icon-left { + background-position: left calc(0.3rem / 2) center; + padding-left: calc(0.3rem + 0.65em); +} +.table.b-table.b-table-selectable:not(.b-table-selectable-no-click) > tbody > tr { + cursor: pointer; +} +.table.b-table.b-table-selectable:not(.b-table-selectable-no-click).b-table-selecting.b-table-select-range > tbody > tr { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +@media (max-width: 575.98px) { + .table.b-table.b-table-stacked-sm { + display: block; + width: 100%; + } + .table.b-table.b-table-stacked-sm > caption, + .table.b-table.b-table-stacked-sm > tbody, + .table.b-table.b-table-stacked-sm > tbody > tr, + .table.b-table.b-table-stacked-sm > tbody > tr > td, + .table.b-table.b-table-stacked-sm > tbody > tr > th { + display: block; + } + .table.b-table.b-table-stacked-sm > thead, + .table.b-table.b-table-stacked-sm > tfoot { + display: none; + } + .table.b-table.b-table-stacked-sm > thead > tr.b-table-top-row, + .table.b-table.b-table-stacked-sm > thead > tr.b-table-bottom-row, + .table.b-table.b-table-stacked-sm > tfoot > tr.b-table-top-row, + .table.b-table.b-table-stacked-sm > tfoot > tr.b-table-bottom-row { + display: none; + } + .table.b-table.b-table-stacked-sm > caption { + caption-side: top !important; + } + .table.b-table.b-table-stacked-sm > tbody > tr > [data-label]::before { + content: attr(data-label); + width: 40%; + float: left; + text-align: right; + overflow-wrap: break-word; + font-weight: bold; + font-style: normal; + padding: 0 calc(1rem / 2) 0 0; + margin: 0; + } + .table.b-table.b-table-stacked-sm > tbody > tr > [data-label]::after { + display: block; + clear: both; + content: ""; + } + .table.b-table.b-table-stacked-sm > tbody > tr > [data-label] > div { + display: inline-block; + width: calc(100% - 40%); + padding: 0 0 0 calc(1rem / 2); + margin: 0; + } + .table.b-table.b-table-stacked-sm > tbody > tr.top-row, + .table.b-table.b-table-stacked-sm > tbody > tr.bottom-row { + display: none; + } + .table.b-table.b-table-stacked-sm > tbody > tr > :first-child { + border-top-width: 3px; + } + .table.b-table.b-table-stacked-sm > tbody > tr > [rowspan] + td, + .table.b-table.b-table-stacked-sm > tbody > tr > [rowspan] + th { + border-top-width: 3px; + } +} +@media (max-width: 767.98px) { + .table.b-table.b-table-stacked-md { + display: block; + width: 100%; + } + .table.b-table.b-table-stacked-md > caption, + .table.b-table.b-table-stacked-md > tbody, + .table.b-table.b-table-stacked-md > tbody > tr, + .table.b-table.b-table-stacked-md > tbody > tr > td, + .table.b-table.b-table-stacked-md > tbody > tr > th { + display: block; + } + .table.b-table.b-table-stacked-md > thead, + .table.b-table.b-table-stacked-md > tfoot { + display: none; + } + .table.b-table.b-table-stacked-md > thead > tr.b-table-top-row, + .table.b-table.b-table-stacked-md > thead > tr.b-table-bottom-row, + .table.b-table.b-table-stacked-md > tfoot > tr.b-table-top-row, + .table.b-table.b-table-stacked-md > tfoot > tr.b-table-bottom-row { + display: none; + } + .table.b-table.b-table-stacked-md > caption { + caption-side: top !important; + } + .table.b-table.b-table-stacked-md > tbody > tr > [data-label]::before { + content: attr(data-label); + width: 40%; + float: left; + text-align: right; + overflow-wrap: break-word; + font-weight: bold; + font-style: normal; + padding: 0 calc(1rem / 2) 0 0; + margin: 0; + } + .table.b-table.b-table-stacked-md > tbody > tr > [data-label]::after { + display: block; + clear: both; + content: ""; + } + .table.b-table.b-table-stacked-md > tbody > tr > [data-label] > div { + display: inline-block; + width: calc(100% - 40%); + padding: 0 0 0 calc(1rem / 2); + margin: 0; + } + .table.b-table.b-table-stacked-md > tbody > tr.top-row, + .table.b-table.b-table-stacked-md > tbody > tr.bottom-row { + display: none; + } + .table.b-table.b-table-stacked-md > tbody > tr > :first-child { + border-top-width: 3px; + } + .table.b-table.b-table-stacked-md > tbody > tr > [rowspan] + td, + .table.b-table.b-table-stacked-md > tbody > tr > [rowspan] + th { + border-top-width: 3px; + } +} +@media (max-width: 991.98px) { + .table.b-table.b-table-stacked-lg { + display: block; + width: 100%; + } + .table.b-table.b-table-stacked-lg > caption, + .table.b-table.b-table-stacked-lg > tbody, + .table.b-table.b-table-stacked-lg > tbody > tr, + .table.b-table.b-table-stacked-lg > tbody > tr > td, + .table.b-table.b-table-stacked-lg > tbody > tr > th { + display: block; + } + .table.b-table.b-table-stacked-lg > thead, + .table.b-table.b-table-stacked-lg > tfoot { + display: none; + } + .table.b-table.b-table-stacked-lg > thead > tr.b-table-top-row, + .table.b-table.b-table-stacked-lg > thead > tr.b-table-bottom-row, + .table.b-table.b-table-stacked-lg > tfoot > tr.b-table-top-row, + .table.b-table.b-table-stacked-lg > tfoot > tr.b-table-bottom-row { + display: none; + } + .table.b-table.b-table-stacked-lg > caption { + caption-side: top !important; + } + .table.b-table.b-table-stacked-lg > tbody > tr > [data-label]::before { + content: attr(data-label); + width: 40%; + float: left; + text-align: right; + overflow-wrap: break-word; + font-weight: bold; + font-style: normal; + padding: 0 calc(1rem / 2) 0 0; + margin: 0; + } + .table.b-table.b-table-stacked-lg > tbody > tr > [data-label]::after { + display: block; + clear: both; + content: ""; + } + .table.b-table.b-table-stacked-lg > tbody > tr > [data-label] > div { + display: inline-block; + width: calc(100% - 40%); + padding: 0 0 0 calc(1rem / 2); + margin: 0; + } + .table.b-table.b-table-stacked-lg > tbody > tr.top-row, + .table.b-table.b-table-stacked-lg > tbody > tr.bottom-row { + display: none; + } + .table.b-table.b-table-stacked-lg > tbody > tr > :first-child { + border-top-width: 3px; + } + .table.b-table.b-table-stacked-lg > tbody > tr > [rowspan] + td, + .table.b-table.b-table-stacked-lg > tbody > tr > [rowspan] + th { + border-top-width: 3px; + } +} +@media (max-width: 1199.98px) { + .table.b-table.b-table-stacked-xl { + display: block; + width: 100%; + } + .table.b-table.b-table-stacked-xl > caption, + .table.b-table.b-table-stacked-xl > tbody, + .table.b-table.b-table-stacked-xl > tbody > tr, + .table.b-table.b-table-stacked-xl > tbody > tr > td, + .table.b-table.b-table-stacked-xl > tbody > tr > th { + display: block; + } + .table.b-table.b-table-stacked-xl > thead, + .table.b-table.b-table-stacked-xl > tfoot { + display: none; + } + .table.b-table.b-table-stacked-xl > thead > tr.b-table-top-row, + .table.b-table.b-table-stacked-xl > thead > tr.b-table-bottom-row, + .table.b-table.b-table-stacked-xl > tfoot > tr.b-table-top-row, + .table.b-table.b-table-stacked-xl > tfoot > tr.b-table-bottom-row { + display: none; + } + .table.b-table.b-table-stacked-xl > caption { + caption-side: top !important; + } + .table.b-table.b-table-stacked-xl > tbody > tr > [data-label]::before { + content: attr(data-label); + width: 40%; + float: left; + text-align: right; + overflow-wrap: break-word; + font-weight: bold; + font-style: normal; + padding: 0 calc(1rem / 2) 0 0; + margin: 0; + } + .table.b-table.b-table-stacked-xl > tbody > tr > [data-label]::after { + display: block; + clear: both; + content: ""; + } + .table.b-table.b-table-stacked-xl > tbody > tr > [data-label] > div { + display: inline-block; + width: calc(100% - 40%); + padding: 0 0 0 calc(1rem / 2); + margin: 0; + } + .table.b-table.b-table-stacked-xl > tbody > tr.top-row, + .table.b-table.b-table-stacked-xl > tbody > tr.bottom-row { + display: none; + } + .table.b-table.b-table-stacked-xl > tbody > tr > :first-child { + border-top-width: 3px; + } + .table.b-table.b-table-stacked-xl > tbody > tr > [rowspan] + td, + .table.b-table.b-table-stacked-xl > tbody > tr > [rowspan] + th { + border-top-width: 3px; + } +} +.table.b-table.b-table-stacked { + display: block; + width: 100%; +} +.table.b-table.b-table-stacked > caption, +.table.b-table.b-table-stacked > tbody, +.table.b-table.b-table-stacked > tbody > tr, +.table.b-table.b-table-stacked > tbody > tr > td, +.table.b-table.b-table-stacked > tbody > tr > th { + display: block; +} +.table.b-table.b-table-stacked > thead, +.table.b-table.b-table-stacked > tfoot { + display: none; +} +.table.b-table.b-table-stacked > thead > tr.b-table-top-row, +.table.b-table.b-table-stacked > thead > tr.b-table-bottom-row, +.table.b-table.b-table-stacked > tfoot > tr.b-table-top-row, +.table.b-table.b-table-stacked > tfoot > tr.b-table-bottom-row { + display: none; +} +.table.b-table.b-table-stacked > caption { + caption-side: top !important; +} +.table.b-table.b-table-stacked > tbody > tr > [data-label]::before { + content: attr(data-label); + width: 40%; + float: left; + text-align: right; + overflow-wrap: break-word; + font-weight: bold; + font-style: normal; + padding: 0 calc(1rem / 2) 0 0; + margin: 0; +} +.table.b-table.b-table-stacked > tbody > tr > [data-label]::after { + display: block; + clear: both; + content: ""; +} +.table.b-table.b-table-stacked > tbody > tr > [data-label] > div { + display: inline-block; + width: calc(100% - 40%); + padding: 0 0 0 calc(1rem / 2); + margin: 0; +} +.table.b-table.b-table-stacked > tbody > tr.top-row, +.table.b-table.b-table-stacked > tbody > tr.bottom-row { + display: none; +} +.table.b-table.b-table-stacked > tbody > tr > :first-child { + border-top-width: 3px; +} +.table.b-table.b-table-stacked > tbody > tr > [rowspan] + td, +.table.b-table.b-table-stacked > tbody > tr > [rowspan] + th { + border-top-width: 3px; +} +.b-time { + min-width: 150px; +} +.b-time[aria-disabled=true] output, +.b-time[aria-readonly=true] output, +.b-time output.disabled { + background-color: #e9ecef; + opacity: 1; +} +.b-time[aria-disabled=true] output { + pointer-events: none; +} +[dir=rtl] .b-time > .d-flex:not(.flex-column) { + flex-direction: row-reverse; +} +.b-time .b-time-header { + margin-bottom: 0.5rem; +} +.b-time .b-time-header output { + padding: 0.25rem; + font-size: 80%; +} +.b-time .b-time-footer { + margin-top: 0.5rem; +} +.b-time .b-time-ampm { + margin-left: 0.5rem; +} +.b-toast { + display: block; + position: relative; + max-width: 350px; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + background-clip: padding-box; + z-index: 1; + border-radius: 0.25rem; +} +.b-toast .toast { + background-color: rgba(255, 255, 255, 0.85); +} +.b-toast:not(:last-child) { + margin-bottom: 0.75rem; +} +.b-toast.b-toast-solid .toast { + background-color: white; +} +.b-toast .toast { + opacity: 1; +} +.b-toast .toast.fade:not(.show) { + opacity: 0; +} +.b-toast .toast .toast-body { + display: block; +} +.b-toast-primary .toast { + background-color: rgba(230, 242, 255, 0.85); + border-color: rgba(184, 218, 255, 0.85); + color: #004085; +} +.b-toast-primary .toast .toast-header { + color: #004085; + background-color: rgba(204, 229, 255, 0.85); + border-bottom-color: rgba(184, 218, 255, 0.85); +} +.b-toast-primary.b-toast-solid .toast { + background-color: #e6f2ff; +} +.b-toast-secondary .toast { + background-color: rgba(239, 240, 241, 0.85); + border-color: rgba(214, 216, 219, 0.85); + color: #383d41; +} +.b-toast-secondary .toast .toast-header { + color: #383d41; + background-color: rgba(226, 227, 229, 0.85); + border-bottom-color: rgba(214, 216, 219, 0.85); +} +.b-toast-secondary.b-toast-solid .toast { + background-color: #eff0f1; +} +.b-toast-success .toast { + background-color: rgba(230, 245, 233, 0.85); + border-color: rgba(195, 230, 203, 0.85); + color: #155724; +} +.b-toast-success .toast .toast-header { + color: #155724; + background-color: rgba(212, 237, 218, 0.85); + border-bottom-color: rgba(195, 230, 203, 0.85); +} +.b-toast-success.b-toast-solid .toast { + background-color: #e6f5e9; +} +.b-toast-info .toast { + background-color: rgba(229, 244, 247, 0.85); + border-color: rgba(190, 229, 235, 0.85); + color: #0c5460; +} +.b-toast-info .toast .toast-header { + color: #0c5460; + background-color: rgba(209, 236, 241, 0.85); + border-bottom-color: rgba(190, 229, 235, 0.85); +} +.b-toast-info.b-toast-solid .toast { + background-color: #e5f4f7; +} +.b-toast-warning .toast { + background-color: rgba(255, 249, 231, 0.85); + border-color: rgba(255, 238, 186, 0.85); + color: #856404; +} +.b-toast-warning .toast .toast-header { + color: #856404; + background-color: rgba(255, 243, 205, 0.85); + border-bottom-color: rgba(255, 238, 186, 0.85); +} +.b-toast-warning.b-toast-solid .toast { + background-color: #fff9e7; +} +.b-toast-danger .toast { + background-color: rgba(252, 237, 238, 0.85); + border-color: rgba(245, 198, 203, 0.85); + color: #721c24; +} +.b-toast-danger .toast .toast-header { + color: #721c24; + background-color: rgba(248, 215, 218, 0.85); + border-bottom-color: rgba(245, 198, 203, 0.85); +} +.b-toast-danger.b-toast-solid .toast { + background-color: #fcedee; +} +.b-toast-light .toast { + background-color: rgba(255, 255, 255, 0.85); + border-color: rgba(253, 253, 254, 0.85); + color: #818182; +} +.b-toast-light .toast .toast-header { + color: #818182; + background-color: rgba(254, 254, 254, 0.85); + border-bottom-color: rgba(253, 253, 254, 0.85); +} +.b-toast-light.b-toast-solid .toast { + background-color: white; +} +.b-toast-dark .toast { + background-color: rgba(227, 229, 229, 0.85); + border-color: rgba(198, 200, 202, 0.85); + color: #1b1e21; +} +.b-toast-dark .toast .toast-header { + color: #1b1e21; + background-color: rgba(214, 216, 217, 0.85); + border-bottom-color: rgba(198, 200, 202, 0.85); +} +.b-toast-dark.b-toast-solid .toast { + background-color: #e3e5e5; +} +.b-toaster { + z-index: 1100; +} +.b-toaster .b-toaster-slot { + position: relative; + display: block; +} +.b-toaster .b-toaster-slot:empty { + display: none !important; +} +.b-toaster.b-toaster-top-right, +.b-toaster.b-toaster-top-left, +.b-toaster.b-toaster-top-center, +.b-toaster.b-toaster-top-full, +.b-toaster.b-toaster-bottom-right, +.b-toaster.b-toaster-bottom-left, +.b-toaster.b-toaster-bottom-center, +.b-toaster.b-toaster-bottom-full { + position: fixed; + left: 0.5rem; + right: 0.5rem; + margin: 0; + padding: 0; + height: 0; + overflow: visible; +} +.b-toaster.b-toaster-top-right .b-toaster-slot, +.b-toaster.b-toaster-top-left .b-toaster-slot, +.b-toaster.b-toaster-top-center .b-toaster-slot, +.b-toaster.b-toaster-top-full .b-toaster-slot, +.b-toaster.b-toaster-bottom-right .b-toaster-slot, +.b-toaster.b-toaster-bottom-left .b-toaster-slot, +.b-toaster.b-toaster-bottom-center .b-toaster-slot, +.b-toaster.b-toaster-bottom-full .b-toaster-slot { + position: absolute; + max-width: 350px; + width: 100%; + /* IE 11 fix */ + left: 0; + right: 0; + padding: 0; + margin: 0; +} +.b-toaster.b-toaster-top-full .b-toaster-slot, +.b-toaster.b-toaster-bottom-full .b-toaster-slot { + width: 100%; + max-width: 100%; +} +.b-toaster.b-toaster-top-full .b-toaster-slot .b-toast, +.b-toaster.b-toaster-top-full .b-toaster-slot .toast, +.b-toaster.b-toaster-bottom-full .b-toaster-slot .b-toast, +.b-toaster.b-toaster-bottom-full .b-toaster-slot .toast { + width: 100%; + max-width: 100%; +} +.b-toaster.b-toaster-top-right, +.b-toaster.b-toaster-top-left, +.b-toaster.b-toaster-top-center, +.b-toaster.b-toaster-top-full { + top: 0; +} +.b-toaster.b-toaster-top-right .b-toaster-slot, +.b-toaster.b-toaster-top-left .b-toaster-slot, +.b-toaster.b-toaster-top-center .b-toaster-slot, +.b-toaster.b-toaster-top-full .b-toaster-slot { + top: 0.5rem; +} +.b-toaster.b-toaster-bottom-right, +.b-toaster.b-toaster-bottom-left, +.b-toaster.b-toaster-bottom-center, +.b-toaster.b-toaster-bottom-full { + bottom: 0; +} +.b-toaster.b-toaster-bottom-right .b-toaster-slot, +.b-toaster.b-toaster-bottom-left .b-toaster-slot, +.b-toaster.b-toaster-bottom-center .b-toaster-slot, +.b-toaster.b-toaster-bottom-full .b-toaster-slot { + bottom: 0.5rem; +} +.b-toaster.b-toaster-top-right .b-toaster-slot, +.b-toaster.b-toaster-bottom-right .b-toaster-slot, +.b-toaster.b-toaster-top-center .b-toaster-slot, +.b-toaster.b-toaster-bottom-center .b-toaster-slot { + margin-left: auto; +} +.b-toaster.b-toaster-top-left .b-toaster-slot, +.b-toaster.b-toaster-bottom-left .b-toaster-slot, +.b-toaster.b-toaster-top-center .b-toaster-slot, +.b-toaster.b-toaster-bottom-center .b-toaster-slot { + margin-right: auto; +} +.b-toaster.b-toaster-top-right .b-toast.b-toaster-enter-active, +.b-toaster.b-toaster-top-right .b-toast.b-toaster-leave-active, +.b-toaster.b-toaster-top-right .b-toast.b-toaster-move, +.b-toaster.b-toaster-top-left .b-toast.b-toaster-enter-active, +.b-toaster.b-toaster-top-left .b-toast.b-toaster-leave-active, +.b-toaster.b-toaster-top-left .b-toast.b-toaster-move, +.b-toaster.b-toaster-bottom-right .b-toast.b-toaster-enter-active, +.b-toaster.b-toaster-bottom-right .b-toast.b-toaster-leave-active, +.b-toaster.b-toaster-bottom-right .b-toast.b-toaster-move, +.b-toaster.b-toaster-bottom-left .b-toast.b-toaster-enter-active, +.b-toaster.b-toaster-bottom-left .b-toast.b-toaster-leave-active, +.b-toaster.b-toaster-bottom-left .b-toast.b-toaster-move { + transition: -webkit-transform 0.175s; + transition: transform 0.175s; + transition: transform 0.175s, -webkit-transform 0.175s; +} +.b-toaster.b-toaster-top-right .b-toast.b-toaster-enter-to .toast.fade, +.b-toaster.b-toaster-top-right .b-toast.b-toaster-enter-active .toast.fade, +.b-toaster.b-toaster-top-left .b-toast.b-toaster-enter-to .toast.fade, +.b-toaster.b-toaster-top-left .b-toast.b-toaster-enter-active .toast.fade, +.b-toaster.b-toaster-bottom-right .b-toast.b-toaster-enter-to .toast.fade, +.b-toaster.b-toaster-bottom-right .b-toast.b-toaster-enter-active .toast.fade, +.b-toaster.b-toaster-bottom-left .b-toast.b-toaster-enter-to .toast.fade, +.b-toaster.b-toaster-bottom-left .b-toast.b-toaster-enter-active .toast.fade { + transition-delay: 0.175s; +} +.b-toaster.b-toaster-top-right .b-toast.b-toaster-leave-active, +.b-toaster.b-toaster-top-left .b-toast.b-toaster-leave-active, +.b-toaster.b-toaster-bottom-right .b-toast.b-toaster-leave-active, +.b-toaster.b-toaster-bottom-left .b-toast.b-toaster-leave-active { + position: absolute; + transition-delay: 0.175s; +} +.b-toaster.b-toaster-top-right .b-toast.b-toaster-leave-active .toast.fade, +.b-toaster.b-toaster-top-left .b-toast.b-toaster-leave-active .toast.fade, +.b-toaster.b-toaster-bottom-right .b-toast.b-toaster-leave-active .toast.fade, +.b-toaster.b-toaster-bottom-left .b-toast.b-toaster-leave-active .toast.fade { + transition-delay: 0s; +} +.tooltip.b-tooltip { + display: block; + opacity: 1; + outline: 0; + transition: opacity 0.1s var(--appleEase); +} +.tooltip.b-tooltip.fade:not(.show) { + opacity: 0; +} +.tooltip.b-tooltip.show { + opacity: 0.9; +} +.tooltip.b-tooltip.noninteractive { + pointer-events: none; +} +.tooltip.b-tooltip .arrow { + margin: 0 0.25rem; +} +.tooltip.b-tooltip.bs-tooltip-right .arrow, +.tooltip.b-tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=right] .arrow, +.tooltip.b-tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=right] .arrow, +.tooltip.b-tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=right] .arrow, +.tooltip.b-tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=right] .arrow, +.tooltip.b-tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=right] .arrow, +.tooltip.b-tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=right] .arrow, +.tooltip.b-tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=right] .arrow, +.tooltip.b-tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=right] .arrow, +.tooltip.b-tooltip.bs-tooltip-left .arrow, +.tooltip.b-tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=left] .arrow, +.tooltip.b-tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=left] .arrow, +.tooltip.b-tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=left] .arrow, +.tooltip.b-tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=left] .arrow, +.tooltip.b-tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=left] .arrow, +.tooltip.b-tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=left] .arrow, +.tooltip.b-tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=left] .arrow, +.tooltip.b-tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=left] .arrow { + margin: 0.25rem 0; +} +.tooltip.b-tooltip-primary.bs-tooltip-top .arrow::before, +.tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=top] .arrow::before { + border-top-color: #007bff; +} +.tooltip.b-tooltip-primary.bs-tooltip-right .arrow::before, +.tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=right] .arrow::before { + border-right-color: #007bff; +} +.tooltip.b-tooltip-primary.bs-tooltip-bottom .arrow::before, +.tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=bottom] .arrow::before { + border-bottom-color: #007bff; +} +.tooltip.b-tooltip-primary.bs-tooltip-left .arrow::before, +.tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=left] .arrow::before { + border-left-color: #007bff; +} +.tooltip.b-tooltip-primary .tooltip-inner { + color: #fff; + background-color: #007bff; +} +.tooltip.b-tooltip-secondary.bs-tooltip-top .arrow::before, +.tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=top] .arrow::before { + border-top-color: #6c757d; +} +.tooltip.b-tooltip-secondary.bs-tooltip-right .arrow::before, +.tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=right] .arrow::before { + border-right-color: #6c757d; +} +.tooltip.b-tooltip-secondary.bs-tooltip-bottom .arrow::before, +.tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=bottom] .arrow::before { + border-bottom-color: #6c757d; +} +.tooltip.b-tooltip-secondary.bs-tooltip-left .arrow::before, +.tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=left] .arrow::before { + border-left-color: #6c757d; +} +.tooltip.b-tooltip-secondary .tooltip-inner { + color: #fff; + background-color: #6c757d; +} +.tooltip.b-tooltip-success.bs-tooltip-top .arrow::before, +.tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=top] .arrow::before { + border-top-color: #28a745; +} +.tooltip.b-tooltip-success.bs-tooltip-right .arrow::before, +.tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=right] .arrow::before { + border-right-color: #28a745; +} +.tooltip.b-tooltip-success.bs-tooltip-bottom .arrow::before, +.tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=bottom] .arrow::before { + border-bottom-color: #28a745; +} +.tooltip.b-tooltip-success.bs-tooltip-left .arrow::before, +.tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=left] .arrow::before { + border-left-color: #28a745; +} +.tooltip.b-tooltip-success .tooltip-inner { + color: #fff; + background-color: #28a745; +} +.tooltip.b-tooltip-info.bs-tooltip-top .arrow::before, +.tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=top] .arrow::before { + border-top-color: #17a2b8; +} +.tooltip.b-tooltip-info.bs-tooltip-right .arrow::before, +.tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=right] .arrow::before { + border-right-color: #17a2b8; +} +.tooltip.b-tooltip-info.bs-tooltip-bottom .arrow::before, +.tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=bottom] .arrow::before { + border-bottom-color: #17a2b8; +} +.tooltip.b-tooltip-info.bs-tooltip-left .arrow::before, +.tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=left] .arrow::before { + border-left-color: #17a2b8; +} +.tooltip.b-tooltip-info .tooltip-inner { + color: #fff; + background-color: #17a2b8; +} +.tooltip.b-tooltip-warning.bs-tooltip-top .arrow::before, +.tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=top] .arrow::before { + border-top-color: #ffc107; +} +.tooltip.b-tooltip-warning.bs-tooltip-right .arrow::before, +.tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=right] .arrow::before { + border-right-color: #ffc107; +} +.tooltip.b-tooltip-warning.bs-tooltip-bottom .arrow::before, +.tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=bottom] .arrow::before { + border-bottom-color: #ffc107; +} +.tooltip.b-tooltip-warning.bs-tooltip-left .arrow::before, +.tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=left] .arrow::before { + border-left-color: #ffc107; +} +.tooltip.b-tooltip-warning .tooltip-inner { + color: #212529; + background-color: #ffc107; +} +.tooltip.b-tooltip-danger.bs-tooltip-top .arrow::before, +.tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=top] .arrow::before { + border-top-color: #dc3545; +} +.tooltip.b-tooltip-danger.bs-tooltip-right .arrow::before, +.tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=right] .arrow::before { + border-right-color: #dc3545; +} +.tooltip.b-tooltip-danger.bs-tooltip-bottom .arrow::before, +.tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=bottom] .arrow::before { + border-bottom-color: #dc3545; +} +.tooltip.b-tooltip-danger.bs-tooltip-left .arrow::before, +.tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=left] .arrow::before { + border-left-color: #dc3545; +} +.tooltip.b-tooltip-danger .tooltip-inner { + color: #fff; + background-color: #dc3545; +} +.tooltip.b-tooltip-light.bs-tooltip-top .arrow::before, +.tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=top] .arrow::before { + border-top-color: #f8f9fa; +} +.tooltip.b-tooltip-light.bs-tooltip-right .arrow::before, +.tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=right] .arrow::before { + border-right-color: #f8f9fa; +} +.tooltip.b-tooltip-light.bs-tooltip-bottom .arrow::before, +.tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=bottom] .arrow::before { + border-bottom-color: #f8f9fa; +} +.tooltip.b-tooltip-light.bs-tooltip-left .arrow::before, +.tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=left] .arrow::before { + border-left-color: #f8f9fa; +} +.tooltip.b-tooltip-light .tooltip-inner { + color: #212529; + background-color: #f8f9fa; +} +.tooltip.b-tooltip-dark.bs-tooltip-top .arrow::before, +.tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=top] .arrow::before { + border-top-color: #343a40; +} +.tooltip.b-tooltip-dark.bs-tooltip-right .arrow::before, +.tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=right] .arrow::before { + border-right-color: #343a40; +} +.tooltip.b-tooltip-dark.bs-tooltip-bottom .arrow::before, +.tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=bottom] .arrow::before { + border-bottom-color: #343a40; +} +.tooltip.b-tooltip-dark.bs-tooltip-left .arrow::before, +.tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=left] .arrow::before { + border-left-color: #343a40; +} +.tooltip.b-tooltip-dark .tooltip-inner { + color: #fff; + background-color: #343a40; +} +.b-icon.bi { + display: inline-block; + overflow: visible; + vertical-align: -0.15em; +} +.b-icon.b-icon-animation-cylon, +.b-icon.b-iconstack .b-icon-animation-cylon > g { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-animation: 0.75s infinite ease-in-out alternate b-icon-animation-cylon; + animation: 0.75s infinite ease-in-out alternate b-icon-animation-cylon; +} +@media (prefers-reduced-motion: reduce) { + .b-icon.b-icon-animation-cylon, + .b-icon.b-iconstack .b-icon-animation-cylon > g { + -webkit-animation: none; + animation: none; + } +} +.b-icon.b-icon-animation-cylon-vertical, +.b-icon.b-iconstack .b-icon-animation-cylon-vertical > g { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-animation: 0.75s infinite ease-in-out alternate b-icon-animation-cylon-vertical; + animation: 0.75s infinite ease-in-out alternate b-icon-animation-cylon-vertical; +} +@media (prefers-reduced-motion: reduce) { + .b-icon.b-icon-animation-cylon-vertical, + .b-icon.b-iconstack .b-icon-animation-cylon-vertical > g { + -webkit-animation: none; + animation: none; + } +} +.b-icon.b-icon-animation-fade, +.b-icon.b-iconstack .b-icon-animation-fade > g { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-animation: 0.75s infinite ease-in-out alternate b-icon-animation-fade; + animation: 0.75s infinite ease-in-out alternate b-icon-animation-fade; +} +@media (prefers-reduced-motion: reduce) { + .b-icon.b-icon-animation-fade, + .b-icon.b-iconstack .b-icon-animation-fade > g { + -webkit-animation: none; + animation: none; + } +} +.b-icon.b-icon-animation-spin, +.b-icon.b-iconstack .b-icon-animation-spin > g { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-animation: 2s infinite linear normal b-icon-animation-spin; + animation: 2s infinite linear normal b-icon-animation-spin; +} +@media (prefers-reduced-motion: reduce) { + .b-icon.b-icon-animation-spin, + .b-icon.b-iconstack .b-icon-animation-spin > g { + -webkit-animation: none; + animation: none; + } +} +.b-icon.b-icon-animation-spin-reverse, +.b-icon.b-iconstack .b-icon-animation-spin-reverse > g { + -webkit-transform-origin: center; + transform-origin: center; + animation: 2s infinite linear reverse b-icon-animation-spin; +} +@media (prefers-reduced-motion: reduce) { + .b-icon.b-icon-animation-spin-reverse, + .b-icon.b-iconstack .b-icon-animation-spin-reverse > g { + -webkit-animation: none; + animation: none; + } +} +.b-icon.b-icon-animation-spin-pulse, +.b-icon.b-iconstack .b-icon-animation-spin-pulse > g { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-animation: 1s infinite steps(8) normal b-icon-animation-spin; + animation: 1s infinite steps(8) normal b-icon-animation-spin; +} +@media (prefers-reduced-motion: reduce) { + .b-icon.b-icon-animation-spin-pulse, + .b-icon.b-iconstack .b-icon-animation-spin-pulse > g { + -webkit-animation: none; + animation: none; + } +} +.b-icon.b-icon-animation-spin-reverse-pulse, +.b-icon.b-iconstack .b-icon-animation-spin-reverse-pulse > g { + -webkit-transform-origin: center; + transform-origin: center; + animation: 1s infinite steps(8) reverse b-icon-animation-spin; +} +@media (prefers-reduced-motion: reduce) { + .b-icon.b-icon-animation-spin-reverse-pulse, + .b-icon.b-iconstack .b-icon-animation-spin-reverse-pulse > g { + -webkit-animation: none; + animation: none; + } +} +.b-icon.b-icon-animation-throb, +.b-icon.b-iconstack .b-icon-animation-throb > g { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-animation: 0.75s infinite ease-in-out alternate b-icon-animation-throb; + animation: 0.75s infinite ease-in-out alternate b-icon-animation-throb; +} +@media (prefers-reduced-motion: reduce) { + .b-icon.b-icon-animation-throb, + .b-icon.b-iconstack .b-icon-animation-throb > g { + -webkit-animation: none; + animation: none; + } +} +@-webkit-keyframes b-icon-animation-cylon { + 0% { + -webkit-transform: translateX(-25%); + transform: translateX(-25%); + } + 100% { + -webkit-transform: translateX(25%); + transform: translateX(25%); + } +} +@keyframes b-icon-animation-cylon { + 0% { + -webkit-transform: translateX(-25%); + transform: translateX(-25%); + } + 100% { + -webkit-transform: translateX(25%); + transform: translateX(25%); + } +} +@-webkit-keyframes b-icon-animation-cylon-vertical { + 0% { + -webkit-transform: translateY(25%); + transform: translateY(25%); + } + 100% { + -webkit-transform: translateY(-25%); + transform: translateY(-25%); + } +} +@keyframes b-icon-animation-cylon-vertical { + 0% { + -webkit-transform: translateY(25%); + transform: translateY(25%); + } + 100% { + -webkit-transform: translateY(-25%); + transform: translateY(-25%); + } +} +@-webkit-keyframes b-icon-animation-fade { + 0% { + opacity: 0.1; + } + 100% { + opacity: 1; + } +} +@keyframes b-icon-animation-fade { + 0% { + opacity: 0.1; + } + 100% { + opacity: 1; + } +} +@-webkit-keyframes b-icon-animation-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +@keyframes b-icon-animation-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +@-webkit-keyframes b-icon-animation-throb { + 0% { + opacity: 0.5; + -webkit-transform: scale(0.5); + transform: scale(0.5); + } + 100% { + opacity: 1; + -webkit-transform: scale(1); + transform: scale(1); + } +} +@keyframes b-icon-animation-throb { + 0% { + opacity: 0.5; + -webkit-transform: scale(0.5); + transform: scale(0.5); + } + 100% { + opacity: 1; + -webkit-transform: scale(1); + transform: scale(1); + } +} +.btn .b-icon.bi, +.nav-link .b-icon.bi, +.dropdown-toggle .b-icon.bi, +.dropdown-item .b-icon.bi, +.input-group-text .b-icon.bi { + font-size: 125%; + vertical-align: text-bottom; +} +/*# sourceMappingURL=bootstrap-vue.css.map */ diff --git a/src/renderer/less/bootstrap-vue.min.less b/src/renderer/less/bootstrap-vue.min.less new file mode 100644 index 00000000..8fac0f5e --- /dev/null +++ b/src/renderer/less/bootstrap-vue.min.less @@ -0,0 +1,2638 @@ +@charset "UTF-8"; +/*! + * BootstrapVue Custom CSS (https://bootstrap-vue.org) + */ +.bv-no-focus-ring:focus { + outline: none; +} + +@media (max-width: 575.98px) { + .bv-d-xs-down-none { + display: none !important; + } +} +@media (max-width: 767.98px) { + .bv-d-sm-down-none { + display: none !important; + } +} +@media (max-width: 991.98px) { + .bv-d-md-down-none { + display: none !important; + } +} +@media (max-width: 1199.98px) { + .bv-d-lg-down-none { + display: none !important; + } +} +.bv-d-xl-down-none { + display: none !important; +} + +.form-control.focus { + color: #495057; + background-color: #fff; + border-color: #80bdff; + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} +.form-control.focus.is-valid { + border-color: #28a745; + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} +.form-control.focus.is-invalid { + border-color: #dc3545; + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} + +.b-avatar { + display: inline-flex; + align-items: center; + justify-content: center; + vertical-align: middle; + flex-shrink: 0; + width: 2.5rem; + height: 2.5rem; + font-size: inherit; + font-weight: 400; + line-height: 1; + max-width: 100%; + max-height: auto; + text-align: center; + overflow: visible; + position: relative; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +.b-avatar:focus { + outline: 0; +} +.b-avatar.btn, .b-avatar[href] { + padding: 0; + border: 0; +} +.b-avatar.btn .b-avatar-img img, .b-avatar[href] .b-avatar-img img { + transition: -webkit-transform 0.15s ease-in-out; + transition: transform 0.15s ease-in-out; + transition: transform 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out; +} +.b-avatar.btn:not(:disabled):not(.disabled), .b-avatar[href]:not(:disabled):not(.disabled) { + cursor: pointer; +} +.b-avatar.btn:not(:disabled):not(.disabled):hover .b-avatar-img img, .b-avatar[href]:not(:disabled):not(.disabled):hover .b-avatar-img img { + -webkit-transform: scale(1.15); + transform: scale(1.15); +} +.b-avatar.disabled, .b-avatar:disabled, .b-avatar[disabled] { + opacity: 0.65; + pointer-events: none; +} +.b-avatar .b-avatar-custom, +.b-avatar .b-avatar-text, +.b-avatar .b-avatar-img { + border-radius: inherit; + width: 100%; + height: 100%; + overflow: hidden; + display: flex; + justify-content: center; + align-items: center; + -webkit-mask-image: radial-gradient(white, black); + mask-image: radial-gradient(white, black); +} +.b-avatar .b-avatar-text { + text-transform: uppercase; + white-space: nowrap; +} +.b-avatar[href] { + text-decoration: none; +} +.b-avatar > .b-icon { + width: 60%; + height: auto; + max-width: 100%; +} +.b-avatar .b-avatar-img img { + width: 100%; + height: 100%; + max-height: auto; + border-radius: inherit; + -o-object-fit: cover; + object-fit: cover; +} +.b-avatar .b-avatar-badge { + position: absolute; + min-height: 1.5em; + min-width: 1.5em; + padding: 0.25em; + line-height: 1; + border-radius: 10em; + font-size: 70%; + font-weight: 700; + z-index: 1; +} + +.b-avatar-sm { + width: 1.5rem; + height: 1.5rem; +} +.b-avatar-sm .b-avatar-text { + font-size: calc(0.6rem); +} +.b-avatar-sm .b-avatar-badge { + font-size: calc(0.42rem); +} + +.b-avatar-lg { + width: 3.5rem; + height: 3.5rem; +} +.b-avatar-lg .b-avatar-text { + font-size: calc(1.4rem); +} +.b-avatar-lg .b-avatar-badge { + font-size: calc(0.98rem); +} + +.b-avatar-group .b-avatar-group-inner { + display: flex; + flex-wrap: wrap; +} +.b-avatar-group .b-avatar { + border: 1px solid #dee2e6; +} +.b-avatar-group a.b-avatar:hover:not(.disabled):not(disabled), +.b-avatar-group .btn.b-avatar:hover:not(.disabled):not(disabled) { + z-index: 1; +} + +.b-calendar { + display: inline-flex; +} +.b-calendar .b-calendar-inner { + min-width: 250px; +} +.b-calendar .b-calendar-header, +.b-calendar .b-calendar-nav { + margin-bottom: 0.25rem; +} +.b-calendar .b-calendar-nav .btn { + padding: 0.25rem; +} +.b-calendar output { + padding: 0.25rem; + font-size: 80%; +} +.b-calendar output.readonly { + background-color: #e9ecef; + opacity: 1; +} +.b-calendar .b-calendar-footer { + margin-top: 0.5rem; +} +.b-calendar .b-calendar-grid { + padding: 0; + margin: 0; + overflow: hidden; +} +.b-calendar .b-calendar-grid .row { + flex-wrap: nowrap; +} +.b-calendar .b-calendar-grid-caption { + padding: 0.25rem; +} +.b-calendar .b-calendar-grid-body .col[data-date] .btn { + width: 32px; + height: 32px; + font-size: 14px; + line-height: 1; + margin: 3px auto; + padding: 9px 0; +} +.b-calendar .btn:disabled, .b-calendar .btn.disabled, .b-calendar .btn[aria-disabled=true] { + cursor: default; + pointer-events: none; +} + +.card-img-left { + border-top-left-radius: calc(0.25rem - 1px); + border-bottom-left-radius: calc(0.25rem - 1px); +} + +.card-img-right { + border-top-right-radius: calc(0.25rem - 1px); + border-bottom-right-radius: calc(0.25rem - 1px); +} + +.dropdown:not(.dropleft) .dropdown-toggle.dropdown-toggle-no-caret::after { + display: none !important; +} +.dropdown.dropleft .dropdown-toggle.dropdown-toggle-no-caret::before { + display: none !important; +} +.dropdown .dropdown-menu:focus { + outline: none; +} + +.b-dropdown-form { + display: inline-block; + padding: 0.25rem 1.5rem; + width: 100%; + clear: both; + font-weight: 400; +} +.b-dropdown-form:focus { + outline: 1px dotted !important; + outline: 5px auto -webkit-focus-ring-color !important; +} +.b-dropdown-form.disabled, .b-dropdown-form:disabled { + outline: 0 !important; + color: #6c757d; + pointer-events: none; +} + +.b-dropdown-text { + display: inline-block; + padding: 0.25rem 1.5rem; + margin-bottom: 0; + width: 100%; + clear: both; + font-weight: lighter; +} + +.custom-checkbox.b-custom-control-lg, +.input-group-lg .custom-checkbox { + font-size: 1.25rem; + line-height: 1.5; + padding-left: 1.875rem; +} +.custom-checkbox.b-custom-control-lg .custom-control-label::before, +.input-group-lg .custom-checkbox .custom-control-label::before { + top: 0.3125rem; + left: -1.875rem; + width: 1.25rem; + height: 1.25rem; + border-radius: 0.3rem; +} +.custom-checkbox.b-custom-control-lg .custom-control-label::after, +.input-group-lg .custom-checkbox .custom-control-label::after { + top: 0.3125rem; + left: -1.875rem; + width: 1.25rem; + height: 1.25rem; + background-size: 50% 50%; +} + +.custom-checkbox.b-custom-control-sm, +.input-group-sm .custom-checkbox { + font-size: 0.875rem; + line-height: 1.5; + padding-left: 1.3125rem; +} +.custom-checkbox.b-custom-control-sm .custom-control-label::before, +.input-group-sm .custom-checkbox .custom-control-label::before { + top: 0.21875rem; + left: -1.3125rem; + width: 0.875rem; + height: 0.875rem; + border-radius: 0.2rem; +} +.custom-checkbox.b-custom-control-sm .custom-control-label::after, +.input-group-sm .custom-checkbox .custom-control-label::after { + top: 0.21875rem; + left: -1.3125rem; + width: 0.875rem; + height: 0.875rem; + background-size: 50% 50%; +} + +.custom-switch.b-custom-control-lg, +.input-group-lg .custom-switch { + padding-left: 2.8125rem; +} +.custom-switch.b-custom-control-lg .custom-control-label, +.input-group-lg .custom-switch .custom-control-label { + font-size: 1.25rem; + line-height: 1.5; +} +.custom-switch.b-custom-control-lg .custom-control-label::before, +.input-group-lg .custom-switch .custom-control-label::before { + top: 0.3125rem; + height: 1.25rem; + left: -2.8125rem; + width: 2.1875rem; + border-radius: 0.625rem; +} +.custom-switch.b-custom-control-lg .custom-control-label::after, +.input-group-lg .custom-switch .custom-control-label::after { + top: calc( 0.3125rem + 2px ); + left: calc( -2.8125rem + 2px ); + width: calc( 1.25rem - 4px ); + height: calc( 1.25rem - 4px ); + border-radius: 0.625rem; + background-size: 50% 50%; +} +.custom-switch.b-custom-control-lg .custom-control-input:checked ~ .custom-control-label::after, +.input-group-lg .custom-switch .custom-control-input:checked ~ .custom-control-label::after { + -webkit-transform: translateX(0.9375rem); + transform: translateX(0.9375rem); +} + +.custom-switch.b-custom-control-sm, +.input-group-sm .custom-switch { + padding-left: 1.96875rem; +} +.custom-switch.b-custom-control-sm .custom-control-label, +.input-group-sm .custom-switch .custom-control-label { + font-size: 0.875rem; + line-height: 1.5; +} +.custom-switch.b-custom-control-sm .custom-control-label::before, +.input-group-sm .custom-switch .custom-control-label::before { + top: 0.21875rem; + left: -1.96875rem; + width: 1.53125rem; + height: 0.875rem; + border-radius: 0.4375rem; +} +.custom-switch.b-custom-control-sm .custom-control-label::after, +.input-group-sm .custom-switch .custom-control-label::after { + top: calc( 0.21875rem + 2px ); + left: calc( -1.96875rem + 2px ); + width: calc( 0.875rem - 4px ); + height: calc( 0.875rem - 4px ); + border-radius: 0.4375rem; + background-size: 50% 50%; +} +.custom-switch.b-custom-control-sm .custom-control-input:checked ~ .custom-control-label::after, +.input-group-sm .custom-switch .custom-control-input:checked ~ .custom-control-label::after { + -webkit-transform: translateX(0.65625rem); + transform: translateX(0.65625rem); +} + +.input-group > .input-group-prepend > .btn-group > .btn, +.input-group > .input-group-append:not(:last-child) > .btn-group > .btn, +.input-group > .input-group-append:last-child > .btn-group:not(:last-child):not(.dropdown-toggle) > .btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.input-group > .input-group-append > .btn-group > .btn, +.input-group > .input-group-prepend:not(:first-child) > .btn-group > .btn, +.input-group > .input-group-prepend:first-child > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.b-form-btn-label-control.form-control { + display: flex; + align-items: stretch; + height: auto; + padding: 0; + background-image: none; +} +.input-group .b-form-btn-label-control.form-control { + padding: 0; +} + +[dir=rtl] .b-form-btn-label-control.form-control, .b-form-btn-label-control.form-control[dir=rtl] { + flex-direction: row-reverse; +} +[dir=rtl] .b-form-btn-label-control.form-control > label, .b-form-btn-label-control.form-control[dir=rtl] > label { + text-align: right; +} + +.b-form-btn-label-control.form-control > .btn { + line-height: 1; + font-size: inherit; + box-shadow: none !important; + border: 0; +} +.b-form-btn-label-control.form-control > .btn:disabled { + pointer-events: none; +} +.b-form-btn-label-control.form-control.is-valid > .btn { + color: #28a745; +} +.b-form-btn-label-control.form-control.is-invalid > .btn { + color: #dc3545; +} +.b-form-btn-label-control.form-control > .dropdown-menu { + padding: 0.5rem; +} +.b-form-btn-label-control.form-control > .form-control { + height: auto; + min-height: calc(calc(1.5em + 0.75rem + 2px) - 2px); + padding-left: 0.25rem; + margin: 0; + border: 0; + outline: 0; + background: transparent; + word-break: break-word; + font-size: inherit; + white-space: normal; + cursor: pointer; +} +.b-form-btn-label-control.form-control > .form-control.form-control-sm { + min-height: calc(calc(1.5em + 0.5rem + 2px) - 2px); +} +.b-form-btn-label-control.form-control > .form-control.form-control-lg { + min-height: calc(calc(1.5em + 1rem + 2px) - 2px); +} +.input-group.input-group-sm .b-form-btn-label-control.form-control > .form-control { + min-height: calc(calc(1.5em + 0.5rem + 2px) - 2px); + padding-top: 0.25rem; + padding-bottom: 0.25rem; +} + +.input-group.input-group-lg .b-form-btn-label-control.form-control > .form-control { + min-height: calc(calc(1.5em + 1rem + 2px) - 2px); + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} + +.b-form-btn-label-control.form-control[aria-disabled=true], .b-form-btn-label-control.form-control[aria-readonly=true] { + background-color: #e9ecef; + opacity: 1; +} +.b-form-btn-label-control.form-control[aria-disabled=true] { + pointer-events: none; +} +.b-form-btn-label-control.form-control[aria-disabled=true] > label { + cursor: default; +} + +.b-form-btn-label-control.btn-group > .dropdown-menu { + padding: 0.5rem; +} + +.custom-file-label { + white-space: nowrap; + overflow-x: hidden; +} + +.b-custom-control-lg.custom-file, +.b-custom-control-lg .custom-file-input, +.b-custom-control-lg .custom-file-label, +.input-group-lg.custom-file, +.input-group-lg .custom-file-input, +.input-group-lg .custom-file-label { + font-size: 1.25rem; + height: calc(1.5em + 1rem + 2px); +} +.b-custom-control-lg .custom-file-label, +.b-custom-control-lg .custom-file-label:after, +.input-group-lg .custom-file-label, +.input-group-lg .custom-file-label:after { + padding: 0.5rem 1rem; + line-height: 1.5; +} +.b-custom-control-lg .custom-file-label, +.input-group-lg .custom-file-label { + border-radius: 0.3rem; +} +.b-custom-control-lg .custom-file-label::after, +.input-group-lg .custom-file-label::after { + font-size: inherit; + height: calc( 1.5em + 1rem ); + border-radius: 0 0.3rem 0.3rem 0; +} + +.b-custom-control-sm.custom-file, +.b-custom-control-sm .custom-file-input, +.b-custom-control-sm .custom-file-label, +.input-group-sm.custom-file, +.input-group-sm .custom-file-input, +.input-group-sm .custom-file-label { + font-size: 0.875rem; + height: calc(1.5em + 0.5rem + 2px); +} +.b-custom-control-sm .custom-file-label, +.b-custom-control-sm .custom-file-label:after, +.input-group-sm .custom-file-label, +.input-group-sm .custom-file-label:after { + padding: 0.25rem 0.5rem; + line-height: 1.5; +} +.b-custom-control-sm .custom-file-label, +.input-group-sm .custom-file-label { + border-radius: 0.2rem; +} +.b-custom-control-sm .custom-file-label::after, +.input-group-sm .custom-file-label::after { + font-size: inherit; + height: calc( 1.5em + 0.5rem ); + border-radius: 0 0.2rem 0.2rem 0; +} + +.was-validated .form-control:invalid, .was-validated .form-control:valid, .form-control.is-invalid, .form-control.is-valid { + background-position: right calc(0.375em + 0.1875rem) center; +} + +input[type=color].form-control { + height: calc(1.5em + 0.75rem + 2px); + padding: 0.125rem 0.25rem; +} + +input[type=color].form-control.form-control-sm, +.input-group-sm input[type=color].form-control { + height: calc(1.5em + 0.5rem + 2px); + padding: 0.125rem 0.25rem; +} + +input[type=color].form-control.form-control-lg, +.input-group-lg input[type=color].form-control { + height: calc(1.5em + 1rem + 2px); + padding: 0.125rem 0.25rem; +} + +input[type=color].form-control:disabled { + background-color: #adb5bd; + opacity: 0.65; +} + +.input-group > .custom-range { + position: relative; + flex: 1 1 auto; + width: 1%; + margin-bottom: 0; +} +.input-group > .custom-range + .form-control, +.input-group > .custom-range + .form-control-plaintext, +.input-group > .custom-range + .custom-select, +.input-group > .custom-range + .custom-range, +.input-group > .custom-range + .custom-file { + margin-left: -1px; +} +.input-group > .form-control + .custom-range, +.input-group > .form-control-plaintext + .custom-range, +.input-group > .custom-select + .custom-range, +.input-group > .custom-range + .custom-range, +.input-group > .custom-file + .custom-range { + margin-left: -1px; +} +.input-group > .custom-range:focus { + z-index: 3; +} +.input-group > .custom-range:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.input-group > .custom-range:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.input-group > .custom-range { + height: calc(1.5em + 0.75rem + 2px); + padding: 0 0.75rem; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #ced4da; + height: calc(1.5em + 0.75rem + 2px); + border-radius: 0.25rem; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .input-group > .custom-range { + transition: none; + } +} +.input-group > .custom-range:focus { + color: #495057; + background-color: #fff; + border-color: #80bdff; + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} +.input-group > .custom-range:disabled, .input-group > .custom-range[readonly] { + background-color: #e9ecef; +} + +.input-group-lg > .custom-range { + height: calc(1.5em + 1rem + 2px); + padding: 0 1rem; + border-radius: 0.3rem; +} + +.input-group-sm > .custom-range { + height: calc(1.5em + 0.5rem + 2px); + padding: 0 0.5rem; + border-radius: 0.2rem; +} + +.was-validated .input-group .custom-range:valid, .input-group .custom-range.is-valid { + border-color: #28a745; +} +.was-validated .input-group .custom-range:valid:focus, .input-group .custom-range.is-valid:focus { + border-color: #28a745; + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} + +.was-validated .custom-range:valid:focus::-webkit-slider-thumb, .custom-range.is-valid:focus::-webkit-slider-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem #9be7ac; +} +.was-validated .custom-range:valid:focus::-moz-range-thumb, .custom-range.is-valid:focus::-moz-range-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem #9be7ac; +} +.was-validated .custom-range:valid:focus::-ms-thumb, .custom-range.is-valid:focus::-ms-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem #9be7ac; +} +.was-validated .custom-range:valid::-webkit-slider-thumb, .custom-range.is-valid::-webkit-slider-thumb { + background-color: #28a745; + background-image: none; +} +.was-validated .custom-range:valid::-webkit-slider-thumb:active, .custom-range.is-valid::-webkit-slider-thumb:active { + background-color: #9be7ac; + background-image: none; +} +.was-validated .custom-range:valid::-webkit-slider-runnable-track, .custom-range.is-valid::-webkit-slider-runnable-track { + background-color: rgba(40, 167, 69, 0.35); +} +.was-validated .custom-range:valid::-moz-range-thumb, .custom-range.is-valid::-moz-range-thumb { + background-color: #28a745; + background-image: none; +} +.was-validated .custom-range:valid::-moz-range-thumb:active, .custom-range.is-valid::-moz-range-thumb:active { + background-color: #9be7ac; + background-image: none; +} +.was-validated .custom-range:valid::-moz-range-track, .custom-range.is-valid::-moz-range-track { + background: rgba(40, 167, 69, 0.35); +} +.was-validated .custom-range:valid ~ .valid-feedback, +.was-validated .custom-range:valid ~ .valid-tooltip, .custom-range.is-valid ~ .valid-feedback, +.custom-range.is-valid ~ .valid-tooltip { + display: block; +} +.was-validated .custom-range:valid::-ms-thumb, .custom-range.is-valid::-ms-thumb { + background-color: #28a745; + background-image: none; +} +.was-validated .custom-range:valid::-ms-thumb:active, .custom-range.is-valid::-ms-thumb:active { + background-color: #9be7ac; + background-image: none; +} +.was-validated .custom-range:valid::-ms-track-lower, .custom-range.is-valid::-ms-track-lower { + background: rgba(40, 167, 69, 0.35); +} +.was-validated .custom-range:valid::-ms-track-upper, .custom-range.is-valid::-ms-track-upper { + background: rgba(40, 167, 69, 0.35); +} + +.was-validated .input-group .custom-range:invalid, .input-group .custom-range.is-invalid { + border-color: #dc3545; +} +.was-validated .input-group .custom-range:invalid:focus, .input-group .custom-range.is-invalid:focus { + border-color: #dc3545; + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} + +.was-validated .custom-range:invalid:focus::-webkit-slider-thumb, .custom-range.is-invalid:focus::-webkit-slider-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem #f6cdd1; +} +.was-validated .custom-range:invalid:focus::-moz-range-thumb, .custom-range.is-invalid:focus::-moz-range-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem #f6cdd1; +} +.was-validated .custom-range:invalid:focus::-ms-thumb, .custom-range.is-invalid:focus::-ms-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem #f6cdd1; +} +.was-validated .custom-range:invalid::-webkit-slider-thumb, .custom-range.is-invalid::-webkit-slider-thumb { + background-color: #dc3545; + background-image: none; +} +.was-validated .custom-range:invalid::-webkit-slider-thumb:active, .custom-range.is-invalid::-webkit-slider-thumb:active { + background-color: #f6cdd1; + background-image: none; +} +.was-validated .custom-range:invalid::-webkit-slider-runnable-track, .custom-range.is-invalid::-webkit-slider-runnable-track { + background-color: rgba(220, 53, 69, 0.35); +} +.was-validated .custom-range:invalid::-moz-range-thumb, .custom-range.is-invalid::-moz-range-thumb { + background-color: #dc3545; + background-image: none; +} +.was-validated .custom-range:invalid::-moz-range-thumb:active, .custom-range.is-invalid::-moz-range-thumb:active { + background-color: #f6cdd1; + background-image: none; +} +.was-validated .custom-range:invalid::-moz-range-track, .custom-range.is-invalid::-moz-range-track { + background: rgba(220, 53, 69, 0.35); +} +.was-validated .custom-range:invalid ~ .invalid-feedback, +.was-validated .custom-range:invalid ~ .invalid-tooltip, .custom-range.is-invalid ~ .invalid-feedback, +.custom-range.is-invalid ~ .invalid-tooltip { + display: block; +} +.was-validated .custom-range:invalid::-ms-thumb, .custom-range.is-invalid::-ms-thumb { + background-color: #dc3545; + background-image: none; +} +.was-validated .custom-range:invalid::-ms-thumb:active, .custom-range.is-invalid::-ms-thumb:active { + background-color: #f6cdd1; + background-image: none; +} +.was-validated .custom-range:invalid::-ms-track-lower, .custom-range.is-invalid::-ms-track-lower { + background: rgba(220, 53, 69, 0.35); +} +.was-validated .custom-range:invalid::-ms-track-upper, .custom-range.is-invalid::-ms-track-upper { + background: rgba(220, 53, 69, 0.35); +} + +.custom-radio.b-custom-control-lg, +.input-group-lg .custom-radio { + font-size: 1.25rem; + line-height: 1.5; + padding-left: 1.875rem; +} +.custom-radio.b-custom-control-lg .custom-control-label::before, +.input-group-lg .custom-radio .custom-control-label::before { + top: 0.3125rem; + left: -1.875rem; + width: 1.25rem; + height: 1.25rem; + border-radius: 50%; +} +.custom-radio.b-custom-control-lg .custom-control-label::after, +.input-group-lg .custom-radio .custom-control-label::after { + top: 0.3125rem; + left: -1.875rem; + width: 1.25rem; + height: 1.25rem; + background: no-repeat 50%/50% 50%; +} + +.custom-radio.b-custom-control-sm, +.input-group-sm .custom-radio { + font-size: 0.875rem; + line-height: 1.5; + padding-left: 1.3125rem; +} +.custom-radio.b-custom-control-sm .custom-control-label::before, +.input-group-sm .custom-radio .custom-control-label::before { + top: 0.21875rem; + left: -1.3125rem; + width: 0.875rem; + height: 0.875rem; + border-radius: 50%; +} +.custom-radio.b-custom-control-sm .custom-control-label::after, +.input-group-sm .custom-radio .custom-control-label::after { + top: 0.21875rem; + left: -1.3125rem; + width: 0.875rem; + height: 0.875rem; + background: no-repeat 50%/50% 50%; +} + +.b-rating { + text-align: center; +} +.b-rating.d-inline-flex { + width: auto; +} +.b-rating .b-rating-star, +.b-rating .b-rating-value { + padding: 0 0.25em; +} +.b-rating .b-rating-value { + min-width: 2.5em; +} +.b-rating .b-rating-star { + display: inline-flex; + justify-content: center; + outline: 0; +} +.b-rating .b-rating-star .b-rating-icon { + display: inline-flex; + transition: all 0.15s ease-in-out; +} +.b-rating.disabled, .b-rating:disabled { + background-color: #e9ecef; + color: #6c757d; +} +.b-rating:not(.disabled):not(.readonly) .b-rating-star { + cursor: pointer; +} +.b-rating:not(.disabled):not(.readonly):focus:not(:hover) .b-rating-star.focused .b-rating-icon, +.b-rating:not(.disabled):not(.readonly) .b-rating-star:hover .b-rating-icon { + -webkit-transform: scale(1.5); + transform: scale(1.5); +} +.b-rating[dir=rtl] .b-rating-star-half { + -webkit-transform: scale(-1, 1); + transform: scale(-1, 1); +} + +.b-form-spinbutton { + text-align: center; + overflow: hidden; + background-image: none; + padding: 0; +} +[dir=rtl] .b-form-spinbutton:not(.flex-column), .b-form-spinbutton[dir=rtl]:not(.flex-column) { + flex-direction: row-reverse; +} + +.b-form-spinbutton output { + font-size: inherit; + outline: 0; + border: 0; + background-color: transparent; + width: auto; + margin: 0; + padding: 0 0.25rem; +} +.b-form-spinbutton output > div, +.b-form-spinbutton output > bdi { + display: block; + min-width: 2.25em; + height: 1.5em; +} +.b-form-spinbutton.flex-column { + height: auto; + width: auto; +} +.b-form-spinbutton.flex-column output { + margin: 0 0.25rem; + padding: 0.25rem 0; +} +.b-form-spinbutton:not(.d-inline-flex):not(.flex-column) { + output-width: 100%; +} +.b-form-spinbutton.d-inline-flex:not(.flex-column) { + width: auto; +} +.b-form-spinbutton .btn { + line-height: 1; + box-shadow: none !important; +} +.b-form-spinbutton .btn:disabled { + pointer-events: none; +} +.b-form-spinbutton .btn:hover:not(:disabled) > div > .b-icon { + -webkit-transform: scale(1.25); + transform: scale(1.25); +} +.b-form-spinbutton.disabled, .b-form-spinbutton.readonly { + background-color: #e9ecef; +} +.b-form-spinbutton.disabled { + pointer-events: none; +} + +.b-form-tags .b-form-tags-list { + margin-top: -0.25rem; +} +.b-form-tags .b-form-tags-list .b-from-tags-field, +.b-form-tags .b-form-tags-list .b-form-tag { + margin-top: 0.25rem; +} +.b-form-tags.focus { + color: #495057; + background-color: #fff; + border-color: #80bdff; + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} +.b-form-tags.focus.is-valid { + border-color: #28a745; + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} +.b-form-tags.focus.is-invalid { + border-color: #dc3545; + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} +.b-form-tags.disabled { + background-color: #e9ecef; +} + +.b-form-tag { + font-size: 75%; + font-weight: normal; + line-height: 1.5; + margin-right: 0.25rem; +} +.b-form-tag.disabled { + opacity: 0.75; +} +.b-form-tag > button.b-form-tag-remove { + color: inherit; + font-size: 125%; + line-height: 1; + float: none; + margin-left: 0.25rem; +} + +.form-control-sm .b-form-tag { + line-height: 1.5; +} + +.form-control-lg .b-form-tag { + line-height: 1.5; +} + +.media-aside { + display: flex; + margin-right: 1rem; +} + +.media-aside-right { + margin-right: 0; + margin-left: 1rem; +} + +.modal-backdrop { + opacity: 0.5; +} + +.b-pagination-pills .page-item .page-link { + border-radius: 50rem !important; + margin-left: 0.25rem; + line-height: 1; +} +.b-pagination-pills .page-item:first-child .page-link { + margin-left: 0; +} + +.popover.b-popover { + display: block; + opacity: 1; + outline: 0; +} +.popover.b-popover.fade:not(.show) { + opacity: 0; +} +.popover.b-popover.show { + opacity: 1; +} + +.b-popover-primary.popover { + background-color: #cce5ff; + border-color: #b8daff; +} +.b-popover-primary.bs-popover-top > .arrow::before, .b-popover-primary.bs-popover-auto[x-placement^=top] > .arrow::before { + border-top-color: #b8daff; +} +.b-popover-primary.bs-popover-top > .arrow::after, .b-popover-primary.bs-popover-auto[x-placement^=top] > .arrow::after { + border-top-color: #cce5ff; +} +.b-popover-primary.bs-popover-right > .arrow::before, .b-popover-primary.bs-popover-auto[x-placement^=right] > .arrow::before { + border-right-color: #b8daff; +} +.b-popover-primary.bs-popover-right > .arrow::after, .b-popover-primary.bs-popover-auto[x-placement^=right] > .arrow::after { + border-right-color: #cce5ff; +} +.b-popover-primary.bs-popover-bottom > .arrow::before, .b-popover-primary.bs-popover-auto[x-placement^=bottom] > .arrow::before { + border-bottom-color: #b8daff; +} +.b-popover-primary.bs-popover-bottom > .arrow::after, .b-popover-primary.bs-popover-auto[x-placement^=bottom] > .arrow::after { + border-bottom-color: #bdddff; +} +.b-popover-primary.bs-popover-bottom .popover-header::before, .b-popover-primary.bs-popover-auto[x-placement^=bottom] .popover-header::before { + border-bottom-color: #bdddff; +} +.b-popover-primary.bs-popover-left > .arrow::before, .b-popover-primary.bs-popover-auto[x-placement^=left] > .arrow::before { + border-left-color: #b8daff; +} +.b-popover-primary.bs-popover-left > .arrow::after, .b-popover-primary.bs-popover-auto[x-placement^=left] > .arrow::after { + border-left-color: #cce5ff; +} +.b-popover-primary .popover-header { + color: #212529; + background-color: #bdddff; + border-bottom-color: #a3d0ff; +} +.b-popover-primary .popover-body { + color: #004085; +} + +.b-popover-secondary.popover { + background-color: #e2e3e5; + border-color: #d6d8db; +} +.b-popover-secondary.bs-popover-top > .arrow::before, .b-popover-secondary.bs-popover-auto[x-placement^=top] > .arrow::before { + border-top-color: #d6d8db; +} +.b-popover-secondary.bs-popover-top > .arrow::after, .b-popover-secondary.bs-popover-auto[x-placement^=top] > .arrow::after { + border-top-color: #e2e3e5; +} +.b-popover-secondary.bs-popover-right > .arrow::before, .b-popover-secondary.bs-popover-auto[x-placement^=right] > .arrow::before { + border-right-color: #d6d8db; +} +.b-popover-secondary.bs-popover-right > .arrow::after, .b-popover-secondary.bs-popover-auto[x-placement^=right] > .arrow::after { + border-right-color: #e2e3e5; +} +.b-popover-secondary.bs-popover-bottom > .arrow::before, .b-popover-secondary.bs-popover-auto[x-placement^=bottom] > .arrow::before { + border-bottom-color: #d6d8db; +} +.b-popover-secondary.bs-popover-bottom > .arrow::after, .b-popover-secondary.bs-popover-auto[x-placement^=bottom] > .arrow::after { + border-bottom-color: #dadbde; +} +.b-popover-secondary.bs-popover-bottom .popover-header::before, .b-popover-secondary.bs-popover-auto[x-placement^=bottom] .popover-header::before { + border-bottom-color: #dadbde; +} +.b-popover-secondary.bs-popover-left > .arrow::before, .b-popover-secondary.bs-popover-auto[x-placement^=left] > .arrow::before { + border-left-color: #d6d8db; +} +.b-popover-secondary.bs-popover-left > .arrow::after, .b-popover-secondary.bs-popover-auto[x-placement^=left] > .arrow::after { + border-left-color: #e2e3e5; +} +.b-popover-secondary .popover-header { + color: #212529; + background-color: #dadbde; + border-bottom-color: #ccced2; +} +.b-popover-secondary .popover-body { + color: #383d41; +} + +.b-popover-success.popover { + background-color: #d4edda; + border-color: #c3e6cb; +} +.b-popover-success.bs-popover-top > .arrow::before, .b-popover-success.bs-popover-auto[x-placement^=top] > .arrow::before { + border-top-color: #c3e6cb; +} +.b-popover-success.bs-popover-top > .arrow::after, .b-popover-success.bs-popover-auto[x-placement^=top] > .arrow::after { + border-top-color: #d4edda; +} +.b-popover-success.bs-popover-right > .arrow::before, .b-popover-success.bs-popover-auto[x-placement^=right] > .arrow::before { + border-right-color: #c3e6cb; +} +.b-popover-success.bs-popover-right > .arrow::after, .b-popover-success.bs-popover-auto[x-placement^=right] > .arrow::after { + border-right-color: #d4edda; +} +.b-popover-success.bs-popover-bottom > .arrow::before, .b-popover-success.bs-popover-auto[x-placement^=bottom] > .arrow::before { + border-bottom-color: #c3e6cb; +} +.b-popover-success.bs-popover-bottom > .arrow::after, .b-popover-success.bs-popover-auto[x-placement^=bottom] > .arrow::after { + border-bottom-color: #c9e8d1; +} +.b-popover-success.bs-popover-bottom .popover-header::before, .b-popover-success.bs-popover-auto[x-placement^=bottom] .popover-header::before { + border-bottom-color: #c9e8d1; +} +.b-popover-success.bs-popover-left > .arrow::before, .b-popover-success.bs-popover-auto[x-placement^=left] > .arrow::before { + border-left-color: #c3e6cb; +} +.b-popover-success.bs-popover-left > .arrow::after, .b-popover-success.bs-popover-auto[x-placement^=left] > .arrow::after { + border-left-color: #d4edda; +} +.b-popover-success .popover-header { + color: #212529; + background-color: #c9e8d1; + border-bottom-color: #b7e1c1; +} +.b-popover-success .popover-body { + color: #155724; +} + +.b-popover-info.popover { + background-color: #d1ecf1; + border-color: #bee5eb; +} +.b-popover-info.bs-popover-top > .arrow::before, .b-popover-info.bs-popover-auto[x-placement^=top] > .arrow::before { + border-top-color: #bee5eb; +} +.b-popover-info.bs-popover-top > .arrow::after, .b-popover-info.bs-popover-auto[x-placement^=top] > .arrow::after { + border-top-color: #d1ecf1; +} +.b-popover-info.bs-popover-right > .arrow::before, .b-popover-info.bs-popover-auto[x-placement^=right] > .arrow::before { + border-right-color: #bee5eb; +} +.b-popover-info.bs-popover-right > .arrow::after, .b-popover-info.bs-popover-auto[x-placement^=right] > .arrow::after { + border-right-color: #d1ecf1; +} +.b-popover-info.bs-popover-bottom > .arrow::before, .b-popover-info.bs-popover-auto[x-placement^=bottom] > .arrow::before { + border-bottom-color: #bee5eb; +} +.b-popover-info.bs-popover-bottom > .arrow::after, .b-popover-info.bs-popover-auto[x-placement^=bottom] > .arrow::after { + border-bottom-color: #c5e7ed; +} +.b-popover-info.bs-popover-bottom .popover-header::before, .b-popover-info.bs-popover-auto[x-placement^=bottom] .popover-header::before { + border-bottom-color: #c5e7ed; +} +.b-popover-info.bs-popover-left > .arrow::before, .b-popover-info.bs-popover-auto[x-placement^=left] > .arrow::before { + border-left-color: #bee5eb; +} +.b-popover-info.bs-popover-left > .arrow::after, .b-popover-info.bs-popover-auto[x-placement^=left] > .arrow::after { + border-left-color: #d1ecf1; +} +.b-popover-info .popover-header { + color: #212529; + background-color: #c5e7ed; + border-bottom-color: #b2dfe7; +} +.b-popover-info .popover-body { + color: #0c5460; +} + +.b-popover-warning.popover { + background-color: #fff3cd; + border-color: #ffeeba; +} +.b-popover-warning.bs-popover-top > .arrow::before, .b-popover-warning.bs-popover-auto[x-placement^=top] > .arrow::before { + border-top-color: #ffeeba; +} +.b-popover-warning.bs-popover-top > .arrow::after, .b-popover-warning.bs-popover-auto[x-placement^=top] > .arrow::after { + border-top-color: #fff3cd; +} +.b-popover-warning.bs-popover-right > .arrow::before, .b-popover-warning.bs-popover-auto[x-placement^=right] > .arrow::before { + border-right-color: #ffeeba; +} +.b-popover-warning.bs-popover-right > .arrow::after, .b-popover-warning.bs-popover-auto[x-placement^=right] > .arrow::after { + border-right-color: #fff3cd; +} +.b-popover-warning.bs-popover-bottom > .arrow::before, .b-popover-warning.bs-popover-auto[x-placement^=bottom] > .arrow::before { + border-bottom-color: #ffeeba; +} +.b-popover-warning.bs-popover-bottom > .arrow::after, .b-popover-warning.bs-popover-auto[x-placement^=bottom] > .arrow::after { + border-bottom-color: #ffefbe; +} +.b-popover-warning.bs-popover-bottom .popover-header::before, .b-popover-warning.bs-popover-auto[x-placement^=bottom] .popover-header::before { + border-bottom-color: #ffefbe; +} +.b-popover-warning.bs-popover-left > .arrow::before, .b-popover-warning.bs-popover-auto[x-placement^=left] > .arrow::before { + border-left-color: #ffeeba; +} +.b-popover-warning.bs-popover-left > .arrow::after, .b-popover-warning.bs-popover-auto[x-placement^=left] > .arrow::after { + border-left-color: #fff3cd; +} +.b-popover-warning .popover-header { + color: #212529; + background-color: #ffefbe; + border-bottom-color: #ffe9a4; +} +.b-popover-warning .popover-body { + color: #856404; +} + +.b-popover-danger.popover { + background-color: #f8d7da; + border-color: #f5c6cb; +} +.b-popover-danger.bs-popover-top > .arrow::before, .b-popover-danger.bs-popover-auto[x-placement^=top] > .arrow::before { + border-top-color: #f5c6cb; +} +.b-popover-danger.bs-popover-top > .arrow::after, .b-popover-danger.bs-popover-auto[x-placement^=top] > .arrow::after { + border-top-color: #f8d7da; +} +.b-popover-danger.bs-popover-right > .arrow::before, .b-popover-danger.bs-popover-auto[x-placement^=right] > .arrow::before { + border-right-color: #f5c6cb; +} +.b-popover-danger.bs-popover-right > .arrow::after, .b-popover-danger.bs-popover-auto[x-placement^=right] > .arrow::after { + border-right-color: #f8d7da; +} +.b-popover-danger.bs-popover-bottom > .arrow::before, .b-popover-danger.bs-popover-auto[x-placement^=bottom] > .arrow::before { + border-bottom-color: #f5c6cb; +} +.b-popover-danger.bs-popover-bottom > .arrow::after, .b-popover-danger.bs-popover-auto[x-placement^=bottom] > .arrow::after { + border-bottom-color: #f6cace; +} +.b-popover-danger.bs-popover-bottom .popover-header::before, .b-popover-danger.bs-popover-auto[x-placement^=bottom] .popover-header::before { + border-bottom-color: #f6cace; +} +.b-popover-danger.bs-popover-left > .arrow::before, .b-popover-danger.bs-popover-auto[x-placement^=left] > .arrow::before { + border-left-color: #f5c6cb; +} +.b-popover-danger.bs-popover-left > .arrow::after, .b-popover-danger.bs-popover-auto[x-placement^=left] > .arrow::after { + border-left-color: #f8d7da; +} +.b-popover-danger .popover-header { + color: #212529; + background-color: #f6cace; + border-bottom-color: #f2b4ba; +} +.b-popover-danger .popover-body { + color: #721c24; +} + +.b-popover-light.popover { + background-color: #fefefe; + border-color: #fdfdfe; +} +.b-popover-light.bs-popover-top > .arrow::before, .b-popover-light.bs-popover-auto[x-placement^=top] > .arrow::before { + border-top-color: #fdfdfe; +} +.b-popover-light.bs-popover-top > .arrow::after, .b-popover-light.bs-popover-auto[x-placement^=top] > .arrow::after { + border-top-color: #fefefe; +} +.b-popover-light.bs-popover-right > .arrow::before, .b-popover-light.bs-popover-auto[x-placement^=right] > .arrow::before { + border-right-color: #fdfdfe; +} +.b-popover-light.bs-popover-right > .arrow::after, .b-popover-light.bs-popover-auto[x-placement^=right] > .arrow::after { + border-right-color: #fefefe; +} +.b-popover-light.bs-popover-bottom > .arrow::before, .b-popover-light.bs-popover-auto[x-placement^=bottom] > .arrow::before { + border-bottom-color: #fdfdfe; +} +.b-popover-light.bs-popover-bottom > .arrow::after, .b-popover-light.bs-popover-auto[x-placement^=bottom] > .arrow::after { + border-bottom-color: #f6f6f6; +} +.b-popover-light.bs-popover-bottom .popover-header::before, .b-popover-light.bs-popover-auto[x-placement^=bottom] .popover-header::before { + border-bottom-color: #f6f6f6; +} +.b-popover-light.bs-popover-left > .arrow::before, .b-popover-light.bs-popover-auto[x-placement^=left] > .arrow::before { + border-left-color: #fdfdfe; +} +.b-popover-light.bs-popover-left > .arrow::after, .b-popover-light.bs-popover-auto[x-placement^=left] > .arrow::after { + border-left-color: #fefefe; +} +.b-popover-light .popover-header { + color: #212529; + background-color: #f6f6f6; + border-bottom-color: #eaeaea; +} +.b-popover-light .popover-body { + color: #818182; +} + +.b-popover-dark.popover { + background-color: #d6d8d9; + border-color: #c6c8ca; +} +.b-popover-dark.bs-popover-top > .arrow::before, .b-popover-dark.bs-popover-auto[x-placement^=top] > .arrow::before { + border-top-color: #c6c8ca; +} +.b-popover-dark.bs-popover-top > .arrow::after, .b-popover-dark.bs-popover-auto[x-placement^=top] > .arrow::after { + border-top-color: #d6d8d9; +} +.b-popover-dark.bs-popover-right > .arrow::before, .b-popover-dark.bs-popover-auto[x-placement^=right] > .arrow::before { + border-right-color: #c6c8ca; +} +.b-popover-dark.bs-popover-right > .arrow::after, .b-popover-dark.bs-popover-auto[x-placement^=right] > .arrow::after { + border-right-color: #d6d8d9; +} +.b-popover-dark.bs-popover-bottom > .arrow::before, .b-popover-dark.bs-popover-auto[x-placement^=bottom] > .arrow::before { + border-bottom-color: #c6c8ca; +} +.b-popover-dark.bs-popover-bottom > .arrow::after, .b-popover-dark.bs-popover-auto[x-placement^=bottom] > .arrow::after { + border-bottom-color: #ced0d2; +} +.b-popover-dark.bs-popover-bottom .popover-header::before, .b-popover-dark.bs-popover-auto[x-placement^=bottom] .popover-header::before { + border-bottom-color: #ced0d2; +} +.b-popover-dark.bs-popover-left > .arrow::before, .b-popover-dark.bs-popover-auto[x-placement^=left] > .arrow::before { + border-left-color: #c6c8ca; +} +.b-popover-dark.bs-popover-left > .arrow::after, .b-popover-dark.bs-popover-auto[x-placement^=left] > .arrow::after { + border-left-color: #d6d8d9; +} +.b-popover-dark .popover-header { + color: #212529; + background-color: #ced0d2; + border-bottom-color: #c1c4c5; +} +.b-popover-dark .popover-body { + color: #1b1e21; +} + +.b-sidebar-outer { + position: fixed; + top: 0; + left: 0; + right: 0; + height: 0; + overflow: visible; + z-index: calc(1030 + 5); +} + +.b-sidebar-backdrop { + position: fixed; + top: 0; + left: 0; + z-index: -1; + width: 100vw; + height: 100vh; + opacity: 0.6; +} + +.b-sidebar { + display: flex; + flex-direction: column; + position: fixed; + top: 0; + width: 320px; + max-width: 100%; + height: 100vh; + max-height: 100%; + margin: 0; + outline: 0; + -webkit-transform: translateX(0); + transform: translateX(0); +} +.b-sidebar.slide { + transition: -webkit-transform 0.3s ease-in-out; + transition: transform 0.3s ease-in-out; + transition: transform 0.3s ease-in-out, -webkit-transform 0.3s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .b-sidebar.slide { + transition: none; + } +} +.b-sidebar:not(.b-sidebar-right) { + left: 0; + right: auto; +} +.b-sidebar:not(.b-sidebar-right).slide:not(.show) { + -webkit-transform: translateX(-100%); + transform: translateX(-100%); +} +.b-sidebar:not(.b-sidebar-right) > .b-sidebar-header .close { + margin-left: auto; +} +.b-sidebar.b-sidebar-right { + left: auto; + right: 0; +} +.b-sidebar.b-sidebar-right.slide:not(.show) { + -webkit-transform: translateX(100%); + transform: translateX(100%); +} +.b-sidebar.b-sidebar-right > .b-sidebar-header .close { + margin-right: auto; +} +.b-sidebar > .b-sidebar-header { + font-size: 1.5rem; + padding: 0.5rem 1rem; + display: flex; + flex-direction: row; + flex-grow: 0; + align-items: center; +} +[dir=rtl] .b-sidebar > .b-sidebar-header { + flex-direction: row-reverse; +} + +.b-sidebar > .b-sidebar-header .close { + float: none; + font-size: 1.5rem; +} +.b-sidebar > .b-sidebar-body { + flex-grow: 1; + height: 100%; + overflow-y: auto; +} +.b-sidebar > .b-sidebar-footer { + flex-grow: 0; +} + +.b-skeleton-wrapper { + cursor: wait; +} + +.b-skeleton { + position: relative; + overflow: hidden; + background-color: rgba(0, 0, 0, 0.12); + cursor: wait; + -webkit-mask-image: radial-gradient(white, black); + mask-image: radial-gradient(white, black); +} +.b-skeleton::before { + content: " "; +} + +.b-skeleton-text { + height: 1rem; + margin-bottom: 0.25rem; + border-radius: 0.25rem; +} + +.b-skeleton-button { + width: 75px; + padding: 0.375rem 0.75rem; + font-size: 1rem; + line-height: 1.5; + border-radius: 0.25rem; +} + +.b-skeleton-avatar { + width: 2.5em; + height: 2.5em; + border-radius: 50%; +} + +.b-skeleton-input { + height: calc(1.5em + 0.75rem + 2px); + padding: 0.375rem 0.75rem; + line-height: 1.5; + border: #ced4da solid 1px; + border-radius: 0.25rem; +} + +.b-skeleton-icon-wrapper svg { + color: rgba(0, 0, 0, 0.12); +} + +.b-skeleton-img { + height: 100%; + width: 100%; +} + +.b-skeleton-animate-wave::after { + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 0; + background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent); + -webkit-animation: b-skeleton-animate-wave 1.75s linear infinite; + animation: b-skeleton-animate-wave 1.75s linear infinite; +} +@media (prefers-reduced-motion: reduce) { + .b-skeleton-animate-wave::after { + background: none; + -webkit-animation: none; + animation: none; + } +} + +@-webkit-keyframes b-skeleton-animate-wave { + from { + -webkit-transform: translateX(-100%); + transform: translateX(-100%); + } + to { + -webkit-transform: translateX(100%); + transform: translateX(100%); + } +} + +@keyframes b-skeleton-animate-wave { + from { + -webkit-transform: translateX(-100%); + transform: translateX(-100%); + } + to { + -webkit-transform: translateX(100%); + transform: translateX(100%); + } +} +.b-skeleton-animate-fade { + -webkit-animation: b-skeleton-animate-fade 0.875s ease-in-out alternate infinite; + animation: b-skeleton-animate-fade 0.875s ease-in-out alternate infinite; +} +@media (prefers-reduced-motion: reduce) { + .b-skeleton-animate-fade { + -webkit-animation: none; + animation: none; + } +} + +@-webkit-keyframes b-skeleton-animate-fade { + 0% { + opacity: 1; + } + 100% { + opacity: 0.4; + } +} + +@keyframes b-skeleton-animate-fade { + 0% { + opacity: 1; + } + 100% { + opacity: 0.4; + } +} +.b-skeleton-animate-throb { + -webkit-animation: b-skeleton-animate-throb 0.875s ease-in alternate infinite; + animation: b-skeleton-animate-throb 0.875s ease-in alternate infinite; +} +@media (prefers-reduced-motion: reduce) { + .b-skeleton-animate-throb { + -webkit-animation: none; + animation: none; + } +} + +@-webkit-keyframes b-skeleton-animate-throb { + 0% { + -webkit-transform: scale(1); + transform: scale(1); + } + 100% { + -webkit-transform: scale(0.975); + transform: scale(0.975); + } +} + +@keyframes b-skeleton-animate-throb { + 0% { + -webkit-transform: scale(1); + transform: scale(1); + } + 100% { + -webkit-transform: scale(0.975); + transform: scale(0.975); + } +} +.table.b-table.b-table-fixed { + table-layout: fixed; +} +.table.b-table.b-table-no-border-collapse { + border-collapse: separate; + border-spacing: 0; +} +.table.b-table[aria-busy=true] { + opacity: 0.55; +} +.table.b-table > tbody > tr.b-table-details > td { + border-top: none !important; +} +.table.b-table > caption { + caption-side: bottom; +} +.table.b-table.b-table-caption-top > caption { + caption-side: top !important; +} +.table.b-table > tbody > .table-active, +.table.b-table > tbody > .table-active > th, +.table.b-table > tbody > .table-active > td { + background-color: rgba(0, 0, 0, 0.075); +} +.table.b-table.table-hover > tbody > tr.table-active:hover td, +.table.b-table.table-hover > tbody > tr.table-active:hover th { + color: #212529; + background-image: linear-gradient(rgba(0, 0, 0, 0.075), rgba(0, 0, 0, 0.075)); + background-repeat: no-repeat; +} +.table.b-table > tbody > .bg-active, +.table.b-table > tbody > .bg-active > th, +.table.b-table > tbody > .bg-active > td { + background-color: rgba(255, 255, 255, 0.075) !important; +} +.table.b-table.table-hover.table-dark > tbody > tr.bg-active:hover td, +.table.b-table.table-hover.table-dark > tbody > tr.bg-active:hover th { + color: #fff; + background-image: linear-gradient(rgba(255, 255, 255, 0.075), rgba(255, 255, 255, 0.075)); + background-repeat: no-repeat; +} + +.b-table-sticky-header, +.table-responsive, +[class*=table-responsive-] { + margin-bottom: 1rem; +} +.b-table-sticky-header > .table, +.table-responsive > .table, +[class*=table-responsive-] > .table { + margin-bottom: 0; +} + +.b-table-sticky-header { + overflow-y: auto; + max-height: 300px; +} + +@media print { + .b-table-sticky-header { + overflow-y: visible !important; + max-height: none !important; + } +} +@supports ((position: -webkit-sticky) or (position: sticky)) { + .b-table-sticky-header > .table.b-table > thead > tr > th { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 2; + } + + .b-table-sticky-header > .table.b-table > thead > tr > .b-table-sticky-column, +.b-table-sticky-header > .table.b-table > tbody > tr > .b-table-sticky-column, +.b-table-sticky-header > .table.b-table > tfoot > tr > .b-table-sticky-column, +.table-responsive > .table.b-table > thead > tr > .b-table-sticky-column, +.table-responsive > .table.b-table > tbody > tr > .b-table-sticky-column, +.table-responsive > .table.b-table > tfoot > tr > .b-table-sticky-column, +[class*=table-responsive-] > .table.b-table > thead > tr > .b-table-sticky-column, +[class*=table-responsive-] > .table.b-table > tbody > tr > .b-table-sticky-column, +[class*=table-responsive-] > .table.b-table > tfoot > tr > .b-table-sticky-column { + position: -webkit-sticky; + position: sticky; + left: 0; + } + .b-table-sticky-header > .table.b-table > thead > tr > .b-table-sticky-column, +.table-responsive > .table.b-table > thead > tr > .b-table-sticky-column, +[class*=table-responsive-] > .table.b-table > thead > tr > .b-table-sticky-column { + z-index: 5; + } + .b-table-sticky-header > .table.b-table > tbody > tr > .b-table-sticky-column, +.b-table-sticky-header > .table.b-table > tfoot > tr > .b-table-sticky-column, +.table-responsive > .table.b-table > tbody > tr > .b-table-sticky-column, +.table-responsive > .table.b-table > tfoot > tr > .b-table-sticky-column, +[class*=table-responsive-] > .table.b-table > tbody > tr > .b-table-sticky-column, +[class*=table-responsive-] > .table.b-table > tfoot > tr > .b-table-sticky-column { + z-index: 2; + } + + .table.b-table > thead > tr > .table-b-table-default, +.table.b-table > tbody > tr > .table-b-table-default, +.table.b-table > tfoot > tr > .table-b-table-default { + color: #212529; + background-color: #fff; + } + .table.b-table.table-dark > thead > tr > .bg-b-table-default, +.table.b-table.table-dark > tbody > tr > .bg-b-table-default, +.table.b-table.table-dark > tfoot > tr > .bg-b-table-default { + color: #fff; + background-color: #343a40; + } + .table.b-table.table-striped > tbody > tr:nth-of-type(odd) > .table-b-table-default { + background-image: linear-gradient(rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05)); + background-repeat: no-repeat; + } + .table.b-table.table-striped.table-dark > tbody > tr:nth-of-type(odd) > .bg-b-table-default { + background-image: linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.05)); + background-repeat: no-repeat; + } + .table.b-table.table-hover > tbody > tr:hover > .table-b-table-default { + color: #212529; + background-image: linear-gradient(rgba(0, 0, 0, 0.075), rgba(0, 0, 0, 0.075)); + background-repeat: no-repeat; + } + .table.b-table.table-hover.table-dark > tbody > tr:hover > .bg-b-table-default { + color: #fff; + background-image: linear-gradient(rgba(255, 255, 255, 0.075), rgba(255, 255, 255, 0.075)); + background-repeat: no-repeat; + } +} +.table.b-table > thead > tr > [aria-sort], +.table.b-table > tfoot > tr > [aria-sort] { + cursor: pointer; + background-image: none; + background-repeat: no-repeat; + background-size: 0.65em 1em; +} +.table.b-table > thead > tr > [aria-sort]:not(.b-table-sort-icon-left), +.table.b-table > tfoot > tr > [aria-sort]:not(.b-table-sort-icon-left) { + background-position: right calc(0.75rem / 2) center; + padding-right: calc(0.75rem + 0.65em); +} +.table.b-table > thead > tr > [aria-sort].b-table-sort-icon-left, +.table.b-table > tfoot > tr > [aria-sort].b-table-sort-icon-left { + background-position: left calc(0.75rem / 2) center; + padding-left: calc(0.75rem + 0.65em); +} +.table.b-table > thead > tr > [aria-sort=none], +.table.b-table > tfoot > tr > [aria-sort=none] { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='black' opacity='.3' d='M51 1l25 23 24 22H1l25-22zM51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e"); +} +.table.b-table > thead > tr > [aria-sort=ascending], +.table.b-table > tfoot > tr > [aria-sort=ascending] { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='black' d='M51 1l25 23 24 22H1l25-22z'/%3e%3cpath fill='black' opacity='.3' d='M51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e"); +} +.table.b-table > thead > tr > [aria-sort=descending], +.table.b-table > tfoot > tr > [aria-sort=descending] { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='black' opacity='.3' d='M51 1l25 23 24 22H1l25-22z'/%3e%3cpath fill='black' d='M51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e"); +} +.table.b-table.table-dark > thead > tr > [aria-sort=none], .table.b-table.table-dark > tfoot > tr > [aria-sort=none], +.table.b-table > .thead-dark > tr > [aria-sort=none] { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='white' opacity='.3' d='M51 1l25 23 24 22H1l25-22zM51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e"); +} +.table.b-table.table-dark > thead > tr > [aria-sort=ascending], .table.b-table.table-dark > tfoot > tr > [aria-sort=ascending], +.table.b-table > .thead-dark > tr > [aria-sort=ascending] { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='white' d='M51 1l25 23 24 22H1l25-22z'/%3e%3cpath fill='white' opacity='.3' d='M51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e"); +} +.table.b-table.table-dark > thead > tr > [aria-sort=descending], .table.b-table.table-dark > tfoot > tr > [aria-sort=descending], +.table.b-table > .thead-dark > tr > [aria-sort=descending] { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='white' opacity='.3' d='M51 1l25 23 24 22H1l25-22z'/%3e%3cpath fill='white' d='M51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e"); +} +.table.b-table > thead > tr > .table-dark[aria-sort=none], +.table.b-table > tfoot > tr > .table-dark[aria-sort=none] { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='white' opacity='.3' d='M51 1l25 23 24 22H1l25-22zM51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e"); +} +.table.b-table > thead > tr > .table-dark[aria-sort=ascending], +.table.b-table > tfoot > tr > .table-dark[aria-sort=ascending] { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='white' d='M51 1l25 23 24 22H1l25-22z'/%3e%3cpath fill='white' opacity='.3' d='M51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e"); +} +.table.b-table > thead > tr > .table-dark[aria-sort=descending], +.table.b-table > tfoot > tr > .table-dark[aria-sort=descending] { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='white' opacity='.3' d='M51 1l25 23 24 22H1l25-22z'/%3e%3cpath fill='white' d='M51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e"); +} +.table.b-table.table-sm > thead > tr > [aria-sort]:not(.b-table-sort-icon-left), +.table.b-table.table-sm > tfoot > tr > [aria-sort]:not(.b-table-sort-icon-left) { + background-position: right calc(0.3rem / 2) center; + padding-right: calc(0.3rem + 0.65em); +} +.table.b-table.table-sm > thead > tr > [aria-sort].b-table-sort-icon-left, +.table.b-table.table-sm > tfoot > tr > [aria-sort].b-table-sort-icon-left { + background-position: left calc(0.3rem / 2) center; + padding-left: calc(0.3rem + 0.65em); +} + +.table.b-table.b-table-selectable:not(.b-table-selectable-no-click) > tbody > tr { + cursor: pointer; +} +.table.b-table.b-table-selectable:not(.b-table-selectable-no-click).b-table-selecting.b-table-select-range > tbody > tr { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +@media (max-width: 575.98px) { + .table.b-table.b-table-stacked-sm { + display: block; + width: 100%; + } + .table.b-table.b-table-stacked-sm > caption, +.table.b-table.b-table-stacked-sm > tbody, +.table.b-table.b-table-stacked-sm > tbody > tr, +.table.b-table.b-table-stacked-sm > tbody > tr > td, +.table.b-table.b-table-stacked-sm > tbody > tr > th { + display: block; + } + .table.b-table.b-table-stacked-sm > thead, +.table.b-table.b-table-stacked-sm > tfoot { + display: none; + } + .table.b-table.b-table-stacked-sm > thead > tr.b-table-top-row, +.table.b-table.b-table-stacked-sm > thead > tr.b-table-bottom-row, +.table.b-table.b-table-stacked-sm > tfoot > tr.b-table-top-row, +.table.b-table.b-table-stacked-sm > tfoot > tr.b-table-bottom-row { + display: none; + } + .table.b-table.b-table-stacked-sm > caption { + caption-side: top !important; + } + .table.b-table.b-table-stacked-sm > tbody > tr > [data-label]::before { + content: attr(data-label); + width: 40%; + float: left; + text-align: right; + overflow-wrap: break-word; + font-weight: bold; + font-style: normal; + padding: 0 calc(1rem / 2) 0 0; + margin: 0; + } + .table.b-table.b-table-stacked-sm > tbody > tr > [data-label]::after { + display: block; + clear: both; + content: ""; + } + .table.b-table.b-table-stacked-sm > tbody > tr > [data-label] > div { + display: inline-block; + width: calc(100% - 40%); + padding: 0 0 0 calc(1rem / 2); + margin: 0; + } + .table.b-table.b-table-stacked-sm > tbody > tr.top-row, .table.b-table.b-table-stacked-sm > tbody > tr.bottom-row { + display: none; + } + .table.b-table.b-table-stacked-sm > tbody > tr > :first-child { + border-top-width: 3px; + } + .table.b-table.b-table-stacked-sm > tbody > tr > [rowspan] + td, +.table.b-table.b-table-stacked-sm > tbody > tr > [rowspan] + th { + border-top-width: 3px; + } +} +@media (max-width: 767.98px) { + .table.b-table.b-table-stacked-md { + display: block; + width: 100%; + } + .table.b-table.b-table-stacked-md > caption, +.table.b-table.b-table-stacked-md > tbody, +.table.b-table.b-table-stacked-md > tbody > tr, +.table.b-table.b-table-stacked-md > tbody > tr > td, +.table.b-table.b-table-stacked-md > tbody > tr > th { + display: block; + } + .table.b-table.b-table-stacked-md > thead, +.table.b-table.b-table-stacked-md > tfoot { + display: none; + } + .table.b-table.b-table-stacked-md > thead > tr.b-table-top-row, +.table.b-table.b-table-stacked-md > thead > tr.b-table-bottom-row, +.table.b-table.b-table-stacked-md > tfoot > tr.b-table-top-row, +.table.b-table.b-table-stacked-md > tfoot > tr.b-table-bottom-row { + display: none; + } + .table.b-table.b-table-stacked-md > caption { + caption-side: top !important; + } + .table.b-table.b-table-stacked-md > tbody > tr > [data-label]::before { + content: attr(data-label); + width: 40%; + float: left; + text-align: right; + overflow-wrap: break-word; + font-weight: bold; + font-style: normal; + padding: 0 calc(1rem / 2) 0 0; + margin: 0; + } + .table.b-table.b-table-stacked-md > tbody > tr > [data-label]::after { + display: block; + clear: both; + content: ""; + } + .table.b-table.b-table-stacked-md > tbody > tr > [data-label] > div { + display: inline-block; + width: calc(100% - 40%); + padding: 0 0 0 calc(1rem / 2); + margin: 0; + } + .table.b-table.b-table-stacked-md > tbody > tr.top-row, .table.b-table.b-table-stacked-md > tbody > tr.bottom-row { + display: none; + } + .table.b-table.b-table-stacked-md > tbody > tr > :first-child { + border-top-width: 3px; + } + .table.b-table.b-table-stacked-md > tbody > tr > [rowspan] + td, +.table.b-table.b-table-stacked-md > tbody > tr > [rowspan] + th { + border-top-width: 3px; + } +} +@media (max-width: 991.98px) { + .table.b-table.b-table-stacked-lg { + display: block; + width: 100%; + } + .table.b-table.b-table-stacked-lg > caption, +.table.b-table.b-table-stacked-lg > tbody, +.table.b-table.b-table-stacked-lg > tbody > tr, +.table.b-table.b-table-stacked-lg > tbody > tr > td, +.table.b-table.b-table-stacked-lg > tbody > tr > th { + display: block; + } + .table.b-table.b-table-stacked-lg > thead, +.table.b-table.b-table-stacked-lg > tfoot { + display: none; + } + .table.b-table.b-table-stacked-lg > thead > tr.b-table-top-row, +.table.b-table.b-table-stacked-lg > thead > tr.b-table-bottom-row, +.table.b-table.b-table-stacked-lg > tfoot > tr.b-table-top-row, +.table.b-table.b-table-stacked-lg > tfoot > tr.b-table-bottom-row { + display: none; + } + .table.b-table.b-table-stacked-lg > caption { + caption-side: top !important; + } + .table.b-table.b-table-stacked-lg > tbody > tr > [data-label]::before { + content: attr(data-label); + width: 40%; + float: left; + text-align: right; + overflow-wrap: break-word; + font-weight: bold; + font-style: normal; + padding: 0 calc(1rem / 2) 0 0; + margin: 0; + } + .table.b-table.b-table-stacked-lg > tbody > tr > [data-label]::after { + display: block; + clear: both; + content: ""; + } + .table.b-table.b-table-stacked-lg > tbody > tr > [data-label] > div { + display: inline-block; + width: calc(100% - 40%); + padding: 0 0 0 calc(1rem / 2); + margin: 0; + } + .table.b-table.b-table-stacked-lg > tbody > tr.top-row, .table.b-table.b-table-stacked-lg > tbody > tr.bottom-row { + display: none; + } + .table.b-table.b-table-stacked-lg > tbody > tr > :first-child { + border-top-width: 3px; + } + .table.b-table.b-table-stacked-lg > tbody > tr > [rowspan] + td, +.table.b-table.b-table-stacked-lg > tbody > tr > [rowspan] + th { + border-top-width: 3px; + } +} +@media (max-width: 1199.98px) { + .table.b-table.b-table-stacked-xl { + display: block; + width: 100%; + } + .table.b-table.b-table-stacked-xl > caption, +.table.b-table.b-table-stacked-xl > tbody, +.table.b-table.b-table-stacked-xl > tbody > tr, +.table.b-table.b-table-stacked-xl > tbody > tr > td, +.table.b-table.b-table-stacked-xl > tbody > tr > th { + display: block; + } + .table.b-table.b-table-stacked-xl > thead, +.table.b-table.b-table-stacked-xl > tfoot { + display: none; + } + .table.b-table.b-table-stacked-xl > thead > tr.b-table-top-row, +.table.b-table.b-table-stacked-xl > thead > tr.b-table-bottom-row, +.table.b-table.b-table-stacked-xl > tfoot > tr.b-table-top-row, +.table.b-table.b-table-stacked-xl > tfoot > tr.b-table-bottom-row { + display: none; + } + .table.b-table.b-table-stacked-xl > caption { + caption-side: top !important; + } + .table.b-table.b-table-stacked-xl > tbody > tr > [data-label]::before { + content: attr(data-label); + width: 40%; + float: left; + text-align: right; + overflow-wrap: break-word; + font-weight: bold; + font-style: normal; + padding: 0 calc(1rem / 2) 0 0; + margin: 0; + } + .table.b-table.b-table-stacked-xl > tbody > tr > [data-label]::after { + display: block; + clear: both; + content: ""; + } + .table.b-table.b-table-stacked-xl > tbody > tr > [data-label] > div { + display: inline-block; + width: calc(100% - 40%); + padding: 0 0 0 calc(1rem / 2); + margin: 0; + } + .table.b-table.b-table-stacked-xl > tbody > tr.top-row, .table.b-table.b-table-stacked-xl > tbody > tr.bottom-row { + display: none; + } + .table.b-table.b-table-stacked-xl > tbody > tr > :first-child { + border-top-width: 3px; + } + .table.b-table.b-table-stacked-xl > tbody > tr > [rowspan] + td, +.table.b-table.b-table-stacked-xl > tbody > tr > [rowspan] + th { + border-top-width: 3px; + } +} +.table.b-table.b-table-stacked { + display: block; + width: 100%; +} +.table.b-table.b-table-stacked > caption, +.table.b-table.b-table-stacked > tbody, +.table.b-table.b-table-stacked > tbody > tr, +.table.b-table.b-table-stacked > tbody > tr > td, +.table.b-table.b-table-stacked > tbody > tr > th { + display: block; +} +.table.b-table.b-table-stacked > thead, +.table.b-table.b-table-stacked > tfoot { + display: none; +} +.table.b-table.b-table-stacked > thead > tr.b-table-top-row, +.table.b-table.b-table-stacked > thead > tr.b-table-bottom-row, +.table.b-table.b-table-stacked > tfoot > tr.b-table-top-row, +.table.b-table.b-table-stacked > tfoot > tr.b-table-bottom-row { + display: none; +} +.table.b-table.b-table-stacked > caption { + caption-side: top !important; +} +.table.b-table.b-table-stacked > tbody > tr > [data-label]::before { + content: attr(data-label); + width: 40%; + float: left; + text-align: right; + overflow-wrap: break-word; + font-weight: bold; + font-style: normal; + padding: 0 calc(1rem / 2) 0 0; + margin: 0; +} +.table.b-table.b-table-stacked > tbody > tr > [data-label]::after { + display: block; + clear: both; + content: ""; +} +.table.b-table.b-table-stacked > tbody > tr > [data-label] > div { + display: inline-block; + width: calc(100% - 40%); + padding: 0 0 0 calc(1rem / 2); + margin: 0; +} +.table.b-table.b-table-stacked > tbody > tr.top-row, .table.b-table.b-table-stacked > tbody > tr.bottom-row { + display: none; +} +.table.b-table.b-table-stacked > tbody > tr > :first-child { + border-top-width: 3px; +} +.table.b-table.b-table-stacked > tbody > tr > [rowspan] + td, +.table.b-table.b-table-stacked > tbody > tr > [rowspan] + th { + border-top-width: 3px; +} + +.b-time { + min-width: 150px; +} +.b-time[aria-disabled=true] output, .b-time[aria-readonly=true] output, +.b-time output.disabled { + background-color: #e9ecef; + opacity: 1; +} +.b-time[aria-disabled=true] output { + pointer-events: none; +} +[dir=rtl] .b-time > .d-flex:not(.flex-column) { + flex-direction: row-reverse; +} + +.b-time .b-time-header { + margin-bottom: 0.5rem; +} +.b-time .b-time-header output { + padding: 0.25rem; + font-size: 80%; +} +.b-time .b-time-footer { + margin-top: 0.5rem; +} +.b-time .b-time-ampm { + margin-left: 0.5rem; +} + +.b-toast { + display: block; + position: relative; + max-width: 350px; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + background-clip: padding-box; + z-index: 1; + border-radius: 0.25rem; +} +.b-toast .toast { + background-color: rgba(255, 255, 255, 0.85); +} +.b-toast:not(:last-child) { + margin-bottom: 0.75rem; +} +.b-toast.b-toast-solid .toast { + background-color: white; +} +.b-toast .toast { + opacity: 1; +} +.b-toast .toast.fade:not(.show) { + opacity: 0; +} +.b-toast .toast .toast-body { + display: block; +} + +.b-toast-primary .toast { + background-color: rgba(230, 242, 255, 0.85); + border-color: rgba(184, 218, 255, 0.85); + color: #004085; +} +.b-toast-primary .toast .toast-header { + color: #004085; + background-color: rgba(204, 229, 255, 0.85); + border-bottom-color: rgba(184, 218, 255, 0.85); +} +.b-toast-primary.b-toast-solid .toast { + background-color: #e6f2ff; +} + +.b-toast-secondary .toast { + background-color: rgba(239, 240, 241, 0.85); + border-color: rgba(214, 216, 219, 0.85); + color: #383d41; +} +.b-toast-secondary .toast .toast-header { + color: #383d41; + background-color: rgba(226, 227, 229, 0.85); + border-bottom-color: rgba(214, 216, 219, 0.85); +} +.b-toast-secondary.b-toast-solid .toast { + background-color: #eff0f1; +} + +.b-toast-success .toast { + background-color: rgba(230, 245, 233, 0.85); + border-color: rgba(195, 230, 203, 0.85); + color: #155724; +} +.b-toast-success .toast .toast-header { + color: #155724; + background-color: rgba(212, 237, 218, 0.85); + border-bottom-color: rgba(195, 230, 203, 0.85); +} +.b-toast-success.b-toast-solid .toast { + background-color: #e6f5e9; +} + +.b-toast-info .toast { + background-color: rgba(229, 244, 247, 0.85); + border-color: rgba(190, 229, 235, 0.85); + color: #0c5460; +} +.b-toast-info .toast .toast-header { + color: #0c5460; + background-color: rgba(209, 236, 241, 0.85); + border-bottom-color: rgba(190, 229, 235, 0.85); +} +.b-toast-info.b-toast-solid .toast { + background-color: #e5f4f7; +} + +.b-toast-warning .toast { + background-color: rgba(255, 249, 231, 0.85); + border-color: rgba(255, 238, 186, 0.85); + color: #856404; +} +.b-toast-warning .toast .toast-header { + color: #856404; + background-color: rgba(255, 243, 205, 0.85); + border-bottom-color: rgba(255, 238, 186, 0.85); +} +.b-toast-warning.b-toast-solid .toast { + background-color: #fff9e7; +} + +.b-toast-danger .toast { + background-color: rgba(252, 237, 238, 0.85); + border-color: rgba(245, 198, 203, 0.85); + color: #721c24; +} +.b-toast-danger .toast .toast-header { + color: #721c24; + background-color: rgba(248, 215, 218, 0.85); + border-bottom-color: rgba(245, 198, 203, 0.85); +} +.b-toast-danger.b-toast-solid .toast { + background-color: #fcedee; +} + +.b-toast-light .toast { + background-color: rgba(255, 255, 255, 0.85); + border-color: rgba(253, 253, 254, 0.85); + color: #818182; +} +.b-toast-light .toast .toast-header { + color: #818182; + background-color: rgba(254, 254, 254, 0.85); + border-bottom-color: rgba(253, 253, 254, 0.85); +} +.b-toast-light.b-toast-solid .toast { + background-color: white; +} + +.b-toast-dark .toast { + background-color: rgba(227, 229, 229, 0.85); + border-color: rgba(198, 200, 202, 0.85); + color: #1b1e21; +} +.b-toast-dark .toast .toast-header { + color: #1b1e21; + background-color: rgba(214, 216, 217, 0.85); + border-bottom-color: rgba(198, 200, 202, 0.85); +} +.b-toast-dark.b-toast-solid .toast { + background-color: #e3e5e5; +} + +.b-toaster { + z-index: 1100; +} +.b-toaster .b-toaster-slot { + position: relative; + display: block; +} +.b-toaster .b-toaster-slot:empty { + display: none !important; +} + +.b-toaster.b-toaster-top-right, .b-toaster.b-toaster-top-left, .b-toaster.b-toaster-top-center, .b-toaster.b-toaster-top-full, .b-toaster.b-toaster-bottom-right, .b-toaster.b-toaster-bottom-left, .b-toaster.b-toaster-bottom-center, .b-toaster.b-toaster-bottom-full { + position: fixed; + left: 0.5rem; + right: 0.5rem; + margin: 0; + padding: 0; + height: 0; + overflow: visible; +} +.b-toaster.b-toaster-top-right .b-toaster-slot, .b-toaster.b-toaster-top-left .b-toaster-slot, .b-toaster.b-toaster-top-center .b-toaster-slot, .b-toaster.b-toaster-top-full .b-toaster-slot, .b-toaster.b-toaster-bottom-right .b-toaster-slot, .b-toaster.b-toaster-bottom-left .b-toaster-slot, .b-toaster.b-toaster-bottom-center .b-toaster-slot, .b-toaster.b-toaster-bottom-full .b-toaster-slot { + position: absolute; + max-width: 350px; + width: 100%; + /* IE 11 fix */ + left: 0; + right: 0; + padding: 0; + margin: 0; +} +.b-toaster.b-toaster-top-full .b-toaster-slot, .b-toaster.b-toaster-bottom-full .b-toaster-slot { + width: 100%; + max-width: 100%; +} +.b-toaster.b-toaster-top-full .b-toaster-slot .b-toast, +.b-toaster.b-toaster-top-full .b-toaster-slot .toast, .b-toaster.b-toaster-bottom-full .b-toaster-slot .b-toast, +.b-toaster.b-toaster-bottom-full .b-toaster-slot .toast { + width: 100%; + max-width: 100%; +} +.b-toaster.b-toaster-top-right, .b-toaster.b-toaster-top-left, .b-toaster.b-toaster-top-center, .b-toaster.b-toaster-top-full { + top: 0; +} +.b-toaster.b-toaster-top-right .b-toaster-slot, .b-toaster.b-toaster-top-left .b-toaster-slot, .b-toaster.b-toaster-top-center .b-toaster-slot, .b-toaster.b-toaster-top-full .b-toaster-slot { + top: 0.5rem; +} +.b-toaster.b-toaster-bottom-right, .b-toaster.b-toaster-bottom-left, .b-toaster.b-toaster-bottom-center, .b-toaster.b-toaster-bottom-full { + bottom: 0; +} +.b-toaster.b-toaster-bottom-right .b-toaster-slot, .b-toaster.b-toaster-bottom-left .b-toaster-slot, .b-toaster.b-toaster-bottom-center .b-toaster-slot, .b-toaster.b-toaster-bottom-full .b-toaster-slot { + bottom: 0.5rem; +} +.b-toaster.b-toaster-top-right .b-toaster-slot, .b-toaster.b-toaster-bottom-right .b-toaster-slot, .b-toaster.b-toaster-top-center .b-toaster-slot, .b-toaster.b-toaster-bottom-center .b-toaster-slot { + margin-left: auto; +} +.b-toaster.b-toaster-top-left .b-toaster-slot, .b-toaster.b-toaster-bottom-left .b-toaster-slot, .b-toaster.b-toaster-top-center .b-toaster-slot, .b-toaster.b-toaster-bottom-center .b-toaster-slot { + margin-right: auto; +} + +.b-toaster.b-toaster-top-right .b-toast.b-toaster-enter-active, .b-toaster.b-toaster-top-right .b-toast.b-toaster-leave-active, .b-toaster.b-toaster-top-right .b-toast.b-toaster-move, .b-toaster.b-toaster-top-left .b-toast.b-toaster-enter-active, .b-toaster.b-toaster-top-left .b-toast.b-toaster-leave-active, .b-toaster.b-toaster-top-left .b-toast.b-toaster-move, .b-toaster.b-toaster-bottom-right .b-toast.b-toaster-enter-active, .b-toaster.b-toaster-bottom-right .b-toast.b-toaster-leave-active, .b-toaster.b-toaster-bottom-right .b-toast.b-toaster-move, .b-toaster.b-toaster-bottom-left .b-toast.b-toaster-enter-active, .b-toaster.b-toaster-bottom-left .b-toast.b-toaster-leave-active, .b-toaster.b-toaster-bottom-left .b-toast.b-toaster-move { + transition: -webkit-transform 0.175s; + transition: transform 0.175s; + transition: transform 0.175s, -webkit-transform 0.175s; +} +.b-toaster.b-toaster-top-right .b-toast.b-toaster-enter-to .toast.fade, .b-toaster.b-toaster-top-right .b-toast.b-toaster-enter-active .toast.fade, .b-toaster.b-toaster-top-left .b-toast.b-toaster-enter-to .toast.fade, .b-toaster.b-toaster-top-left .b-toast.b-toaster-enter-active .toast.fade, .b-toaster.b-toaster-bottom-right .b-toast.b-toaster-enter-to .toast.fade, .b-toaster.b-toaster-bottom-right .b-toast.b-toaster-enter-active .toast.fade, .b-toaster.b-toaster-bottom-left .b-toast.b-toaster-enter-to .toast.fade, .b-toaster.b-toaster-bottom-left .b-toast.b-toaster-enter-active .toast.fade { + transition-delay: 0.175s; +} +.b-toaster.b-toaster-top-right .b-toast.b-toaster-leave-active, .b-toaster.b-toaster-top-left .b-toast.b-toaster-leave-active, .b-toaster.b-toaster-bottom-right .b-toast.b-toaster-leave-active, .b-toaster.b-toaster-bottom-left .b-toast.b-toaster-leave-active { + position: absolute; + transition-delay: 0.175s; +} +.b-toaster.b-toaster-top-right .b-toast.b-toaster-leave-active .toast.fade, .b-toaster.b-toaster-top-left .b-toast.b-toaster-leave-active .toast.fade, .b-toaster.b-toaster-bottom-right .b-toast.b-toaster-leave-active .toast.fade, .b-toaster.b-toaster-bottom-left .b-toast.b-toaster-leave-active .toast.fade { + transition-delay: 0s; +} +.tooltip.b-tooltip { + display: block; + opacity: 1; + outline: 0; + transition: opacity 0.1s var(--appleEase); +} +.tooltip.b-tooltip.fade:not(.show) { + opacity: 0; +} +.tooltip.b-tooltip.show { + opacity: 0.9; +} +.tooltip.b-tooltip.noninteractive { + pointer-events: none; +} +.tooltip.b-tooltip .arrow { + margin: 0 0.25rem; +} +.tooltip.b-tooltip.bs-tooltip-right .arrow, .tooltip.b-tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=right] .arrow, .tooltip.b-tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=right] .arrow, .tooltip.b-tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=right] .arrow, .tooltip.b-tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=right] .arrow, .tooltip.b-tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=right] .arrow, .tooltip.b-tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=right] .arrow, .tooltip.b-tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=right] .arrow, .tooltip.b-tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=right] .arrow, .tooltip.b-tooltip.bs-tooltip-left .arrow, .tooltip.b-tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=left] .arrow, .tooltip.b-tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=left] .arrow, .tooltip.b-tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=left] .arrow, .tooltip.b-tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=left] .arrow, .tooltip.b-tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=left] .arrow, .tooltip.b-tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=left] .arrow, .tooltip.b-tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=left] .arrow, .tooltip.b-tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=left] .arrow { + margin: 0.25rem 0; +} + +.tooltip.b-tooltip-primary.bs-tooltip-top .arrow::before, .tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=top] .arrow::before { + border-top-color: #007bff; +} +.tooltip.b-tooltip-primary.bs-tooltip-right .arrow::before, .tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=right] .arrow::before { + border-right-color: #007bff; +} +.tooltip.b-tooltip-primary.bs-tooltip-bottom .arrow::before, .tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=bottom] .arrow::before { + border-bottom-color: #007bff; +} +.tooltip.b-tooltip-primary.bs-tooltip-left .arrow::before, .tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=left] .arrow::before { + border-left-color: #007bff; +} +.tooltip.b-tooltip-primary .tooltip-inner { + color: #fff; + background-color: #007bff; +} + +.tooltip.b-tooltip-secondary.bs-tooltip-top .arrow::before, .tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=top] .arrow::before { + border-top-color: #6c757d; +} +.tooltip.b-tooltip-secondary.bs-tooltip-right .arrow::before, .tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=right] .arrow::before { + border-right-color: #6c757d; +} +.tooltip.b-tooltip-secondary.bs-tooltip-bottom .arrow::before, .tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=bottom] .arrow::before { + border-bottom-color: #6c757d; +} +.tooltip.b-tooltip-secondary.bs-tooltip-left .arrow::before, .tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=left] .arrow::before { + border-left-color: #6c757d; +} +.tooltip.b-tooltip-secondary .tooltip-inner { + color: #fff; + background-color: #6c757d; +} + +.tooltip.b-tooltip-success.bs-tooltip-top .arrow::before, .tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=top] .arrow::before { + border-top-color: #28a745; +} +.tooltip.b-tooltip-success.bs-tooltip-right .arrow::before, .tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=right] .arrow::before { + border-right-color: #28a745; +} +.tooltip.b-tooltip-success.bs-tooltip-bottom .arrow::before, .tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=bottom] .arrow::before { + border-bottom-color: #28a745; +} +.tooltip.b-tooltip-success.bs-tooltip-left .arrow::before, .tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=left] .arrow::before { + border-left-color: #28a745; +} +.tooltip.b-tooltip-success .tooltip-inner { + color: #fff; + background-color: #28a745; +} + +.tooltip.b-tooltip-info.bs-tooltip-top .arrow::before, .tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=top] .arrow::before { + border-top-color: #17a2b8; +} +.tooltip.b-tooltip-info.bs-tooltip-right .arrow::before, .tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=right] .arrow::before { + border-right-color: #17a2b8; +} +.tooltip.b-tooltip-info.bs-tooltip-bottom .arrow::before, .tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=bottom] .arrow::before { + border-bottom-color: #17a2b8; +} +.tooltip.b-tooltip-info.bs-tooltip-left .arrow::before, .tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=left] .arrow::before { + border-left-color: #17a2b8; +} +.tooltip.b-tooltip-info .tooltip-inner { + color: #fff; + background-color: #17a2b8; +} + +.tooltip.b-tooltip-warning.bs-tooltip-top .arrow::before, .tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=top] .arrow::before { + border-top-color: #ffc107; +} +.tooltip.b-tooltip-warning.bs-tooltip-right .arrow::before, .tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=right] .arrow::before { + border-right-color: #ffc107; +} +.tooltip.b-tooltip-warning.bs-tooltip-bottom .arrow::before, .tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=bottom] .arrow::before { + border-bottom-color: #ffc107; +} +.tooltip.b-tooltip-warning.bs-tooltip-left .arrow::before, .tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=left] .arrow::before { + border-left-color: #ffc107; +} +.tooltip.b-tooltip-warning .tooltip-inner { + color: #212529; + background-color: #ffc107; +} + +.tooltip.b-tooltip-danger.bs-tooltip-top .arrow::before, .tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=top] .arrow::before { + border-top-color: #dc3545; +} +.tooltip.b-tooltip-danger.bs-tooltip-right .arrow::before, .tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=right] .arrow::before { + border-right-color: #dc3545; +} +.tooltip.b-tooltip-danger.bs-tooltip-bottom .arrow::before, .tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=bottom] .arrow::before { + border-bottom-color: #dc3545; +} +.tooltip.b-tooltip-danger.bs-tooltip-left .arrow::before, .tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=left] .arrow::before { + border-left-color: #dc3545; +} +.tooltip.b-tooltip-danger .tooltip-inner { + color: #fff; + background-color: #dc3545; +} + +.tooltip.b-tooltip-light.bs-tooltip-top .arrow::before, .tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=top] .arrow::before { + border-top-color: #f8f9fa; +} +.tooltip.b-tooltip-light.bs-tooltip-right .arrow::before, .tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=right] .arrow::before { + border-right-color: #f8f9fa; +} +.tooltip.b-tooltip-light.bs-tooltip-bottom .arrow::before, .tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=bottom] .arrow::before { + border-bottom-color: #f8f9fa; +} +.tooltip.b-tooltip-light.bs-tooltip-left .arrow::before, .tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=left] .arrow::before { + border-left-color: #f8f9fa; +} +.tooltip.b-tooltip-light .tooltip-inner { + color: #212529; + background-color: #f8f9fa; +} + +.tooltip.b-tooltip-dark.bs-tooltip-top .arrow::before, .tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=top] .arrow::before { + border-top-color: #343a40; +} +.tooltip.b-tooltip-dark.bs-tooltip-right .arrow::before, .tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=right] .arrow::before { + border-right-color: #343a40; +} +.tooltip.b-tooltip-dark.bs-tooltip-bottom .arrow::before, .tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=bottom] .arrow::before { + border-bottom-color: #343a40; +} +.tooltip.b-tooltip-dark.bs-tooltip-left .arrow::before, .tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=left] .arrow::before { + border-left-color: #343a40; +} +.tooltip.b-tooltip-dark .tooltip-inner { + color: #fff; + background-color: #343a40; +} + +.b-icon.bi { + display: inline-block; + overflow: visible; + vertical-align: -0.15em; +} +.b-icon.b-icon-animation-cylon, .b-icon.b-iconstack .b-icon-animation-cylon > g { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-animation: 0.75s infinite ease-in-out alternate b-icon-animation-cylon; + animation: 0.75s infinite ease-in-out alternate b-icon-animation-cylon; +} +@media (prefers-reduced-motion: reduce) { + .b-icon.b-icon-animation-cylon, .b-icon.b-iconstack .b-icon-animation-cylon > g { + -webkit-animation: none; + animation: none; + } +} +.b-icon.b-icon-animation-cylon-vertical, .b-icon.b-iconstack .b-icon-animation-cylon-vertical > g { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-animation: 0.75s infinite ease-in-out alternate b-icon-animation-cylon-vertical; + animation: 0.75s infinite ease-in-out alternate b-icon-animation-cylon-vertical; +} +@media (prefers-reduced-motion: reduce) { + .b-icon.b-icon-animation-cylon-vertical, .b-icon.b-iconstack .b-icon-animation-cylon-vertical > g { + -webkit-animation: none; + animation: none; + } +} +.b-icon.b-icon-animation-fade, .b-icon.b-iconstack .b-icon-animation-fade > g { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-animation: 0.75s infinite ease-in-out alternate b-icon-animation-fade; + animation: 0.75s infinite ease-in-out alternate b-icon-animation-fade; +} +@media (prefers-reduced-motion: reduce) { + .b-icon.b-icon-animation-fade, .b-icon.b-iconstack .b-icon-animation-fade > g { + -webkit-animation: none; + animation: none; + } +} +.b-icon.b-icon-animation-spin, .b-icon.b-iconstack .b-icon-animation-spin > g { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-animation: 2s infinite linear normal b-icon-animation-spin; + animation: 2s infinite linear normal b-icon-animation-spin; +} +@media (prefers-reduced-motion: reduce) { + .b-icon.b-icon-animation-spin, .b-icon.b-iconstack .b-icon-animation-spin > g { + -webkit-animation: none; + animation: none; + } +} +.b-icon.b-icon-animation-spin-reverse, .b-icon.b-iconstack .b-icon-animation-spin-reverse > g { + -webkit-transform-origin: center; + transform-origin: center; + animation: 2s infinite linear reverse b-icon-animation-spin; +} +@media (prefers-reduced-motion: reduce) { + .b-icon.b-icon-animation-spin-reverse, .b-icon.b-iconstack .b-icon-animation-spin-reverse > g { + -webkit-animation: none; + animation: none; + } +} +.b-icon.b-icon-animation-spin-pulse, .b-icon.b-iconstack .b-icon-animation-spin-pulse > g { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-animation: 1s infinite steps(8) normal b-icon-animation-spin; + animation: 1s infinite steps(8) normal b-icon-animation-spin; +} +@media (prefers-reduced-motion: reduce) { + .b-icon.b-icon-animation-spin-pulse, .b-icon.b-iconstack .b-icon-animation-spin-pulse > g { + -webkit-animation: none; + animation: none; + } +} +.b-icon.b-icon-animation-spin-reverse-pulse, .b-icon.b-iconstack .b-icon-animation-spin-reverse-pulse > g { + -webkit-transform-origin: center; + transform-origin: center; + animation: 1s infinite steps(8) reverse b-icon-animation-spin; +} +@media (prefers-reduced-motion: reduce) { + .b-icon.b-icon-animation-spin-reverse-pulse, .b-icon.b-iconstack .b-icon-animation-spin-reverse-pulse > g { + -webkit-animation: none; + animation: none; + } +} +.b-icon.b-icon-animation-throb, .b-icon.b-iconstack .b-icon-animation-throb > g { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-animation: 0.75s infinite ease-in-out alternate b-icon-animation-throb; + animation: 0.75s infinite ease-in-out alternate b-icon-animation-throb; +} +@media (prefers-reduced-motion: reduce) { + .b-icon.b-icon-animation-throb, .b-icon.b-iconstack .b-icon-animation-throb > g { + -webkit-animation: none; + animation: none; + } +} + +@-webkit-keyframes b-icon-animation-cylon { + 0% { + -webkit-transform: translateX(-25%); + transform: translateX(-25%); + } + 100% { + -webkit-transform: translateX(25%); + transform: translateX(25%); + } +} + +@keyframes b-icon-animation-cylon { + 0% { + -webkit-transform: translateX(-25%); + transform: translateX(-25%); + } + 100% { + -webkit-transform: translateX(25%); + transform: translateX(25%); + } +} +@-webkit-keyframes b-icon-animation-cylon-vertical { + 0% { + -webkit-transform: translateY(25%); + transform: translateY(25%); + } + 100% { + -webkit-transform: translateY(-25%); + transform: translateY(-25%); + } +} +@keyframes b-icon-animation-cylon-vertical { + 0% { + -webkit-transform: translateY(25%); + transform: translateY(25%); + } + 100% { + -webkit-transform: translateY(-25%); + transform: translateY(-25%); + } +} +@-webkit-keyframes b-icon-animation-fade { + 0% { + opacity: 0.1; + } + 100% { + opacity: 1; + } +} +@keyframes b-icon-animation-fade { + 0% { + opacity: 0.1; + } + 100% { + opacity: 1; + } +} +@-webkit-keyframes b-icon-animation-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +@keyframes b-icon-animation-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +@-webkit-keyframes b-icon-animation-throb { + 0% { + opacity: 0.5; + -webkit-transform: scale(0.5); + transform: scale(0.5); + } + 100% { + opacity: 1; + -webkit-transform: scale(1); + transform: scale(1); + } +} +@keyframes b-icon-animation-throb { + 0% { + opacity: 0.5; + -webkit-transform: scale(0.5); + transform: scale(0.5); + } + 100% { + opacity: 1; + -webkit-transform: scale(1); + transform: scale(1); + } +} +.btn .b-icon.bi, +.nav-link .b-icon.bi, +.dropdown-toggle .b-icon.bi, +.dropdown-item .b-icon.bi, +.input-group-text .b-icon.bi { + font-size: 125%; + vertical-align: text-bottom; +} + +/*# sourceMappingURL=bootstrap-vue.css.map */ \ No newline at end of file diff --git a/src/renderer/less/bootstrap.css b/src/renderer/less/bootstrap.css new file mode 100644 index 00000000..a31aec11 --- /dev/null +++ b/src/renderer/less/bootstrap.css @@ -0,0 +1,6246 @@ +.dropup, +.dropend, +.dropdown, +.dropstart { + position: relative; +} +.dropdown-toggle { + white-space: nowrap; +} +.dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid; + border-right: 0.3em solid transparent; + border-bottom: 0; + border-left: 0.3em solid transparent; +} +.dropdown-toggle:empty::after { + margin-left: 0; +} +.dropdown-menu { + position: absolute; + z-index: 1000; + display: none; + min-width: 10rem; + padding: 0.5rem 0; + margin: 0; + font-size: 1rem; + color: #212529; + text-align: left; + list-style: none; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 0.25rem; +} +.dropdown-menu[data-bs-popper] { + top: 100%; + left: 0; + margin-top: 0.125rem; +} +.dropdown-menu-start { + --bs-position: start; +} +.dropdown-menu-start[data-bs-popper] { + right: auto; + left: 0; +} +.dropdown-menu-end { + --bs-position: end; +} +.dropdown-menu-end[data-bs-popper] { + right: 0; + left: auto; +} +@media (min-width: 576px) { + .dropdown-menu-sm-start { + --bs-position: start; + } + .dropdown-menu-sm-start[data-bs-popper] { + right: auto; + left: 0; + } + .dropdown-menu-sm-end { + --bs-position: end; + } + .dropdown-menu-sm-end[data-bs-popper] { + right: 0; + left: auto; + } +} +@media (min-width: 768px) { + .dropdown-menu-md-start { + --bs-position: start; + } + .dropdown-menu-md-start[data-bs-popper] { + right: auto; + left: 0; + } + .dropdown-menu-md-end { + --bs-position: end; + } + .dropdown-menu-md-end[data-bs-popper] { + right: 0; + left: auto; + } +} +@media (min-width: 992px) { + .dropdown-menu-lg-start { + --bs-position: start; + } + .dropdown-menu-lg-start[data-bs-popper] { + right: auto; + left: 0; + } + .dropdown-menu-lg-end { + --bs-position: end; + } + .dropdown-menu-lg-end[data-bs-popper] { + right: 0; + left: auto; + } +} +@media (min-width: 1200px) { + .dropdown-menu-xl-start { + --bs-position: start; + } + .dropdown-menu-xl-start[data-bs-popper] { + right: auto; + left: 0; + } + .dropdown-menu-xl-end { + --bs-position: end; + } + .dropdown-menu-xl-end[data-bs-popper] { + right: 0; + left: auto; + } +} +@media (min-width: 1400px) { + .dropdown-menu-xxl-start { + --bs-position: start; + } + .dropdown-menu-xxl-start[data-bs-popper] { + right: auto; + left: 0; + } + .dropdown-menu-xxl-end { + --bs-position: end; + } + .dropdown-menu-xxl-end[data-bs-popper] { + right: 0; + left: auto; + } +} +.dropup .dropdown-menu[data-bs-popper] { + top: auto; + bottom: 100%; + margin-top: 0; + margin-bottom: 0.125rem; +} +.dropup .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0; + border-right: 0.3em solid transparent; + border-bottom: 0.3em solid; + border-left: 0.3em solid transparent; +} +.dropup .dropdown-toggle:empty::after { + margin-left: 0; +} +.dropend .dropdown-menu[data-bs-popper] { + top: 0; + right: auto; + left: 100%; + margin-top: 0; + margin-left: 0.125rem; +} +.dropend .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0; + border-bottom: 0.3em solid transparent; + border-left: 0.3em solid; +} +.dropend .dropdown-toggle:empty::after { + margin-left: 0; +} +.dropend .dropdown-toggle::after { + vertical-align: 0; +} +.dropstart .dropdown-menu[data-bs-popper] { + top: 0; + right: 100%; + left: auto; + margin-top: 0; + margin-right: 0.125rem; +} +.dropstart .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; +} +.dropstart .dropdown-toggle::after { + display: none; +} +.dropstart .dropdown-toggle::before { + display: inline-block; + margin-right: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0.3em solid; + border-bottom: 0.3em solid transparent; +} +.dropstart .dropdown-toggle:empty::after { + margin-left: 0; +} +.dropstart .dropdown-toggle::before { + vertical-align: 0; +} +.dropdown-divider { + height: 0; + margin: 0.5rem 0; + overflow: hidden; + border-top: 1px solid rgba(0, 0, 0, 0.15); +} +.dropdown-item { + display: block; + width: 100%; + padding: 0.25rem 1rem; + clear: both; + font-weight: 400; + color: #212529; + text-align: inherit; + text-decoration: none; + white-space: nowrap; + background-color: transparent; + border: 0; +} +.dropdown-item:hover, +.dropdown-item:focus { + color: #1e2125; + background-color: #e9ecef; +} +.dropdown-item.active, +.dropdown-item:active { + color: #fff; + text-decoration: none; + background-color: #0d6efd; +} +.dropdown-item.disabled, +.dropdown-item:disabled { + color: #adb5bd; + pointer-events: none; + background-color: transparent; +} +.dropdown-menu.show { + display: block; +} +.dropdown-header { + display: block; + padding: 0.5rem 1rem; + margin-bottom: 0; + font-size: 0.875rem; + color: #6c757d; + white-space: nowrap; +} +.dropdown-item-text { + display: block; + padding: 0.25rem 1rem; + color: #212529; +} +.dropdown-menu-dark { + color: #dee2e6; + background-color: #343a40; + border-color: rgba(0, 0, 0, 0.15); +} +.dropdown-menu-dark .dropdown-item { + color: #dee2e6; +} +.dropdown-menu-dark .dropdown-item:hover, +.dropdown-menu-dark .dropdown-item:focus { + color: #fff; + background-color: rgba(255, 255, 255, 0.15); +} +.dropdown-menu-dark .dropdown-item.active, +.dropdown-menu-dark .dropdown-item:active { + color: #fff; + background-color: #0d6efd; +} +.dropdown-menu-dark .dropdown-item.disabled, +.dropdown-menu-dark .dropdown-item:disabled { + color: #adb5bd; +} +.dropdown-menu-dark .dropdown-divider { + border-color: rgba(0, 0, 0, 0.15); +} +.dropdown-menu-dark .dropdown-item-text { + color: #dee2e6; +} +.dropdown-menu-dark .dropdown-header { + color: #adb5bd; +} +.list-group { + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + border-radius: 0.25rem; +} +.list-group-numbered { + list-style-type: none; + counter-reset: section; +} +.list-group-numbered > li::before { + content: counters(section, ".") ". "; + counter-increment: section; +} +.list-group-item-action { + width: 100%; + color: #495057; + text-align: inherit; +} +.list-group-item-action:hover, +.list-group-item-action:focus { + z-index: 1; + color: #495057; + text-decoration: none; + background-color: #f8f9fa; +} +.list-group-item-action:active { + color: #212529; + background-color: #e9ecef; +} +.list-group-item { + position: relative; + display: block; + padding: 0.5rem 1rem; + color: #212529; + text-decoration: none; + background-color: #fff; + border: 1px solid rgba(0, 0, 0, 0.125); +} +.list-group-item:first-child { + border-top-left-radius: inherit; + border-top-right-radius: inherit; +} +.list-group-item:last-child { + border-bottom-right-radius: inherit; + border-bottom-left-radius: inherit; +} +.list-group-item.disabled, +.list-group-item:disabled { + color: #6c757d; + pointer-events: none; + background-color: #fff; +} +.list-group-item.active { + z-index: 2; + color: #fff; + background-color: #0d6efd; + border-color: #0d6efd; +} +.list-group-item + .list-group-item { + border-top-width: 0; +} +.list-group-item + .list-group-item.active { + margin-top: -1px; + border-top-width: 1px; +} +.list-group-horizontal { + flex-direction: row; +} +.list-group-horizontal > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; +} +.list-group-horizontal > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; +} +.list-group-horizontal > .list-group-item.active { + margin-top: 0; +} +.list-group-horizontal > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; +} +.list-group-horizontal > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; +} +@media (min-width: 576px) { + .list-group-horizontal-sm { + flex-direction: row; + } + .list-group-horizontal-sm > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-sm > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; + } + .list-group-horizontal-sm > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-sm > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-sm > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} +@media (min-width: 768px) { + .list-group-horizontal-md { + flex-direction: row; + } + .list-group-horizontal-md > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-md > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; + } + .list-group-horizontal-md > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-md > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-md > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} +@media (min-width: 992px) { + .list-group-horizontal-lg { + flex-direction: row; + } + .list-group-horizontal-lg > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-lg > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; + } + .list-group-horizontal-lg > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-lg > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-lg > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} +@media (min-width: 1200px) { + .list-group-horizontal-xl { + flex-direction: row; + } + .list-group-horizontal-xl > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-xl > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; + } + .list-group-horizontal-xl > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-xl > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-xl > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} +@media (min-width: 1400px) { + .list-group-horizontal-xxl { + flex-direction: row; + } + .list-group-horizontal-xxl > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-xxl > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; + } + .list-group-horizontal-xxl > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-xxl > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-xxl > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} +.list-group-flush { + border-radius: 0; +} +.list-group-flush > .list-group-item { + border-width: 0 0 1px; +} +.list-group-flush > .list-group-item:last-child { + border-bottom-width: 0; +} +.list-group-item-primary { + color: #084298; + background-color: #cfe2ff; +} +.list-group-item-primary.list-group-item-action:hover, +.list-group-item-primary.list-group-item-action:focus { + color: #084298; + background-color: #bacbe6; +} +.list-group-item-primary.list-group-item-action.active { + color: #fff; + background-color: #084298; + border-color: #084298; +} +.list-group-item-secondary { + color: #41464b; + background-color: #e2e3e5; +} +.list-group-item-secondary.list-group-item-action:hover, +.list-group-item-secondary.list-group-item-action:focus { + color: #41464b; + background-color: #cbccce; +} +.list-group-item-secondary.list-group-item-action.active { + color: #fff; + background-color: #41464b; + border-color: #41464b; +} +.list-group-item-success { + color: #0f5132; + background-color: #d1e7dd; +} +.list-group-item-success.list-group-item-action:hover, +.list-group-item-success.list-group-item-action:focus { + color: #0f5132; + background-color: #bcd0c7; +} +.list-group-item-success.list-group-item-action.active { + color: #fff; + background-color: #0f5132; + border-color: #0f5132; +} +.list-group-item-info { + color: #055160; + background-color: #cff4fc; +} +.list-group-item-info.list-group-item-action:hover, +.list-group-item-info.list-group-item-action:focus { + color: #055160; + background-color: #badce3; +} +.list-group-item-info.list-group-item-action.active { + color: #fff; + background-color: #055160; + border-color: #055160; +} +.list-group-item-warning { + color: #664d03; + background-color: #fff3cd; +} +.list-group-item-warning.list-group-item-action:hover, +.list-group-item-warning.list-group-item-action:focus { + color: #664d03; + background-color: #e6dbb9; +} +.list-group-item-warning.list-group-item-action.active { + color: #fff; + background-color: #664d03; + border-color: #664d03; +} +.list-group-item-danger { + color: #842029; + background-color: #f8d7da; +} +.list-group-item-danger.list-group-item-action:hover, +.list-group-item-danger.list-group-item-action:focus { + color: #842029; + background-color: #dfc2c4; +} +.list-group-item-danger.list-group-item-action.active { + color: #fff; + background-color: #842029; + border-color: #842029; +} +.list-group-item-light { + color: #636464; + background-color: #fefefe; +} +.list-group-item-light.list-group-item-action:hover, +.list-group-item-light.list-group-item-action:focus { + color: #636464; + background-color: #e5e5e5; +} +.list-group-item-light.list-group-item-action.active { + color: #fff; + background-color: #636464; + border-color: #636464; +} +.list-group-item-dark { + color: var(--textColor); + background-color: #333; +} +.list-group-item-dark.list-group-item-action:hover, +.list-group-item-dark.list-group-item-action:focus { + color: #141619; + background-color: #bebebf; +} +.list-group-item-dark.list-group-item-action.active { + color: #fff; + background-color: #141619; + border-color: #141619; +} +.toast { + width: 350px; + max-width: 100%; + font-size: 0.875rem; + pointer-events: auto; + background-color: rgba(255, 255, 255, 0.85); + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.1); + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + border-radius: 0.25rem; +} +.toast.showing { + opacity: 0; +} +.toast:not(.show) { + display: none; +} +.toast-container { + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; + max-width: 100%; + pointer-events: none; +} +.toast-container > :not(:last-child) { + margin-bottom: 0.75rem; +} +.toast-header { + display: flex; + align-items: center; + padding: 0.5rem 0.75rem; + color: #6c757d; + background-color: rgba(255, 255, 255, 0.85); + background-clip: padding-box; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); +} +.toast-header .btn-close { + margin-right: -0.375rem; + margin-left: 0.75rem; +} +.toast-body { + padding: 0.75rem; + word-wrap: break-word; +} +.card { + position: relative; + display: flex; + flex-direction: column; + min-width: 0; + word-wrap: break-word; + background-color: #333; + background-clip: border-box; + border: 1px solid rgba(0, 0, 0, 0.125); + border-radius: 0.25rem; +} +.card > hr { + margin-right: 0; + margin-left: 0; +} +.card > .list-group { + border-top: inherit; + border-bottom: inherit; +} +.card > .list-group:first-child { + border-top-width: 0; + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); +} +.card > .list-group:last-child { + border-bottom-width: 0; + border-bottom-right-radius: calc(0.25rem - 1px); + border-bottom-left-radius: calc(0.25rem - 1px); +} +.card > .card-header + .list-group, +.card > .list-group + .card-footer { + border-top: 0; +} +.card-body { + flex: 1 1 auto; + padding: 1rem 1rem; +} +.card-title { + margin-bottom: 0.5rem; +} +.card-subtitle { + margin-top: -0.25rem; + margin-bottom: 0; +} +.card-text:last-child { + margin-bottom: 0; +} +.card-link + .card-link { + margin-left: 1rem; +} +.card-header { + padding: 0.5rem 1rem; + margin-bottom: 0; + background-color: rgba(0, 0, 0, 0.03); + border-bottom: 1px solid rgba(0, 0, 0, 0.125); +} +.card-header:first-child { + border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; +} +.card-footer { + padding: 0.5rem 1rem; + background-color: rgba(0, 0, 0, 0.03); + border-top: 1px solid rgba(0, 0, 0, 0.125); +} +.card-footer:last-child { + border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px); +} +.card-header-tabs { + margin-right: -0.5rem; + margin-bottom: -0.5rem; + margin-left: -0.5rem; + border-bottom: 0; +} +.card-header-pills { + margin-right: -0.5rem; + margin-left: -0.5rem; +} +.card-img-overlay { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: 1rem; + border-radius: calc(0.25rem - 1px); +} +.card-img, +.card-img-top, +.card-img-bottom { + width: 100%; +} +.card-img, +.card-img-top { + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); +} +.card-img, +.card-img-bottom { + border-bottom-right-radius: calc(0.25rem - 1px); + border-bottom-left-radius: calc(0.25rem - 1px); +} +.card-group > .card { + margin-bottom: 0.75rem; +} +@media (min-width: 576px) { + .card-group { + display: flex; + flex-flow: row wrap; + } + .card-group > .card { + flex: 1 0 0%; + margin-bottom: 0; + } + .card-group > .card + .card { + margin-left: 0; + border-left: 0; + } + .card-group > .card:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + .card-group > .card:not(:last-child) .card-img-top, + .card-group > .card:not(:last-child) .card-header { + border-top-right-radius: 0; + } + .card-group > .card:not(:last-child) .card-img-bottom, + .card-group > .card:not(:last-child) .card-footer { + border-bottom-right-radius: 0; + } + .card-group > .card:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + .card-group > .card:not(:first-child) .card-img-top, + .card-group > .card:not(:first-child) .card-header { + border-top-left-radius: 0; + } + .card-group > .card:not(:first-child) .card-img-bottom, + .card-group > .card:not(:first-child) .card-footer { + border-bottom-left-radius: 0; + } +} +.modal { + position: fixed; + top: 0; + left: 0; + z-index: 1055; + display: none; + width: 100%; + height: 100%; + overflow-x: hidden; + overflow-y: auto; + outline: 0; + user-select: none; +} +.modal .close { + width: 50px; + height: 42px; + background-image: var(--gfx-closeBtn); + background-position: center; + background-repeat: no-repeat; + -webkit-app-region: no-drag; + appearance: none; + border: 0; + background-color: transparent; + position: absolute; + top: 0; + right: 0; +} +.modal .close:hover { + background-color: #c42b1c; +} +.modal-dialog { + position: relative; + width: auto; + margin: 0.5rem; + pointer-events: none; + color: var(--textColor); +} +.modal.fade .modal-dialog { + transition: transform 0.1s var(--appleEase), opacity 0.1s var(--appleEase); + transform: scale(0.9); + opacity: 0; +} +@media (prefers-reduced-motion: reduce) { + .modal.fade .modal-dialog { + transition: none; + } +} +.modal.show .modal-dialog { + transform: none; + opacity: 1; +} +.modal.modal-static .modal-dialog { + transform: scale(1.02); +} +.modal-dialog-scrollable { + height: calc(100% - 1rem); +} +.modal-dialog-scrollable .modal-content { + max-height: 100%; + overflow: hidden; +} +.modal-dialog-scrollable .modal-body { + overflow-y: auto; +} +.modal-dialog-centered { + display: flex; + align-items: center; + min-height: calc(100% - 1rem); +} +.modal-content { + position: relative; + display: flex; + flex-direction: column; + width: 100%; + pointer-events: auto; + background-color: var(--modalBackground); + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 0.3rem; + outline: 0; + box-shadow: var(--ciderShadow-Generic); + overflow: hidden; +} +.modal-backdrop { + position: fixed; + top: 0; + left: 0; + z-index: 1050; + width: 100vw; + height: 100vh; + background-color: #000; +} +.modal-backdrop.fade { + opacity: 0; +} +.modal-backdrop.show { + opacity: 0.5; +} +.modal-header { + display: flex; + flex-shrink: 0; + align-items: center; + justify-content: space-between; + padding: 1rem 1rem; + border-top-left-radius: calc(0.3rem - 1px); + border-top-right-radius: calc(0.3rem - 1px); +} +.modal-header .btn-close { + padding: 0.5rem 0.5rem; + margin: -0.5rem -0.5rem -0.5rem auto; +} +.modal-title { + line-height: 1.5; + margin: 0; +} +.modal-body { + position: relative; + flex: 1 1 auto; + padding: 3rem 1rem 1rem 1rem; + font-size: 0.9em; +} +.modal-footer { + display: flex; + flex-wrap: wrap; + flex-shrink: 0; + align-items: center; + justify-content: flex-end; + padding: 0.75rem; + border-bottom-right-radius: calc(0.3rem - 1px); + border-bottom-left-radius: calc(0.3rem - 1px); +} +.modal-footer > * { + margin: 0.25rem; +} +@media (min-width: 576px) { + .modal-dialog { + max-width: 500px; + margin: 1.75rem auto; + } + .modal-dialog-scrollable { + height: calc(100% - 3.5rem); + } + .modal-dialog-centered { + min-height: calc(100% - 3.5rem); + } + .modal-sm { + max-width: 300px; + } +} +@media (min-width: 992px) { + .modal-lg, + .modal-xl { + max-width: 800px; + } +} +@media (min-width: 1200px) { + .modal-xl { + max-width: 1140px; + } +} +.modal-fullscreen { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; +} +.modal-fullscreen .modal-content { + height: 100%; + border: 0; + border-radius: 0; +} +.modal-fullscreen .modal-header { + border-radius: 0; +} +.modal-fullscreen .modal-body { + overflow-y: auto; +} +.modal-fullscreen .modal-footer { + border-radius: 0; +} +@media (max-width: 575.98px) { + .modal-fullscreen-sm-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-sm-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-sm-down .modal-header { + border-radius: 0; + } + .modal-fullscreen-sm-down .modal-body { + overflow-y: auto; + } + .modal-fullscreen-sm-down .modal-footer { + border-radius: 0; + } +} +@media (max-width: 767.98px) { + .modal-fullscreen-md-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-md-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-md-down .modal-header { + border-radius: 0; + } + .modal-fullscreen-md-down .modal-body { + overflow-y: auto; + } + .modal-fullscreen-md-down .modal-footer { + border-radius: 0; + } +} +@media (max-width: 991.98px) { + .modal-fullscreen-lg-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-lg-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-lg-down .modal-header { + border-radius: 0; + } + .modal-fullscreen-lg-down .modal-body { + overflow-y: auto; + } + .modal-fullscreen-lg-down .modal-footer { + border-radius: 0; + } +} +@media (max-width: 1199.98px) { + .modal-fullscreen-xl-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-xl-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-xl-down .modal-header { + border-radius: 0; + } + .modal-fullscreen-xl-down .modal-body { + overflow-y: auto; + } + .modal-fullscreen-xl-down .modal-footer { + border-radius: 0; + } +} +@media (max-width: 1399.98px) { + .modal-fullscreen-xxl-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-xxl-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-xxl-down .modal-header { + border-radius: 0; + } + .modal-fullscreen-xxl-down .modal-body { + overflow-y: auto; + } + .modal-fullscreen-xxl-down .modal-footer { + border-radius: 0; + } +} +.btn { + display: inline-block; + font-weight: 400; + line-height: 1.5; + color: #212529; + text-align: center; + text-decoration: none; + vertical-align: middle; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + background-color: transparent; + border: 1px solid transparent; + padding: 0.375rem 0.75rem; + font-size: 1rem; + border-radius: 0.25rem; + font-family: inherit; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .btn { + transition: none; + } +} +.btn:hover { + color: #212529; +} +.btn-check:focus + .btn, +.btn:focus { + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} +.btn:disabled, +.btn.disabled, +fieldset:disabled .btn { + pointer-events: none; + opacity: 0.65; +} +.btn-primary { + color: #fff; + background-color: #0d6efd; + border-color: #0d6efd; +} +.btn-primary:hover { + color: #fff; + background-color: #0b5ed7; + border-color: #0a58ca; +} +.btn-check:focus + .btn-primary, +.btn-primary:focus { + color: #fff; + background-color: #0b5ed7; + border-color: #0a58ca; + box-shadow: 0 0 0 0.25rem rgba(49, 132, 253, 0.5); +} +.btn-check:checked + .btn-primary, +.btn-check:active + .btn-primary, +.btn-primary:active, +.btn-primary.active, +.show > .btn-primary.dropdown-toggle { + color: #fff; + background-color: #0a58ca; + border-color: #0a53be; +} +.btn-check:checked + .btn-primary:focus, +.btn-check:active + .btn-primary:focus, +.btn-primary:active:focus, +.btn-primary.active:focus, +.show > .btn-primary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.25rem rgba(49, 132, 253, 0.5); +} +.btn-primary:disabled, +.btn-primary.disabled { + color: #fff; + background-color: #0d6efd; + border-color: #0d6efd; +} +.btn-secondary { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} +.btn-secondary:hover { + color: #fff; + background-color: #5c636a; + border-color: #565e64; +} +.btn-check:focus + .btn-secondary, +.btn-secondary:focus { + color: #fff; + background-color: #5c636a; + border-color: #565e64; + box-shadow: 0 0 0 0.25rem rgba(130, 138, 145, 0.5); +} +.btn-check:checked + .btn-secondary, +.btn-check:active + .btn-secondary, +.btn-secondary:active, +.btn-secondary.active, +.show > .btn-secondary.dropdown-toggle { + color: #fff; + background-color: #565e64; + border-color: #51585e; +} +.btn-check:checked + .btn-secondary:focus, +.btn-check:active + .btn-secondary:focus, +.btn-secondary:active:focus, +.btn-secondary.active:focus, +.show > .btn-secondary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.25rem rgba(130, 138, 145, 0.5); +} +.btn-secondary:disabled, +.btn-secondary.disabled { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} +.btn-success { + color: #fff; + background-color: #198754; + border-color: #198754; +} +.btn-success:hover { + color: #fff; + background-color: #157347; + border-color: #146c43; +} +.btn-check:focus + .btn-success, +.btn-success:focus { + color: #fff; + background-color: #157347; + border-color: #146c43; + box-shadow: 0 0 0 0.25rem rgba(60, 153, 110, 0.5); +} +.btn-check:checked + .btn-success, +.btn-check:active + .btn-success, +.btn-success:active, +.btn-success.active, +.show > .btn-success.dropdown-toggle { + color: #fff; + background-color: #146c43; + border-color: #13653f; +} +.btn-check:checked + .btn-success:focus, +.btn-check:active + .btn-success:focus, +.btn-success:active:focus, +.btn-success.active:focus, +.show > .btn-success.dropdown-toggle:focus { + box-shadow: 0 0 0 0.25rem rgba(60, 153, 110, 0.5); +} +.btn-success:disabled, +.btn-success.disabled { + color: #fff; + background-color: #198754; + border-color: #198754; +} +.btn-info { + color: #000; + background-color: #0dcaf0; + border-color: #0dcaf0; +} +.btn-info:hover { + color: #000; + background-color: #31d2f2; + border-color: #25cff2; +} +.btn-check:focus + .btn-info, +.btn-info:focus { + color: #000; + background-color: #31d2f2; + border-color: #25cff2; + box-shadow: 0 0 0 0.25rem rgba(11, 172, 204, 0.5); +} +.btn-check:checked + .btn-info, +.btn-check:active + .btn-info, +.btn-info:active, +.btn-info.active, +.show > .btn-info.dropdown-toggle { + color: #000; + background-color: #3dd5f3; + border-color: #25cff2; +} +.btn-check:checked + .btn-info:focus, +.btn-check:active + .btn-info:focus, +.btn-info:active:focus, +.btn-info.active:focus, +.show > .btn-info.dropdown-toggle:focus { + box-shadow: 0 0 0 0.25rem rgba(11, 172, 204, 0.5); +} +.btn-info:disabled, +.btn-info.disabled { + color: #000; + background-color: #0dcaf0; + border-color: #0dcaf0; +} +.btn-warning { + color: #000; + background-color: #ffc107; + border-color: #ffc107; +} +.btn-warning:hover { + color: #000; + background-color: #ffca2c; + border-color: #ffc720; +} +.btn-check:focus + .btn-warning, +.btn-warning:focus { + color: #000; + background-color: #ffca2c; + border-color: #ffc720; + box-shadow: 0 0 0 0.25rem rgba(217, 164, 6, 0.5); +} +.btn-check:checked + .btn-warning, +.btn-check:active + .btn-warning, +.btn-warning:active, +.btn-warning.active, +.show > .btn-warning.dropdown-toggle { + color: #000; + background-color: #ffcd39; + border-color: #ffc720; +} +.btn-check:checked + .btn-warning:focus, +.btn-check:active + .btn-warning:focus, +.btn-warning:active:focus, +.btn-warning.active:focus, +.show > .btn-warning.dropdown-toggle:focus { + box-shadow: 0 0 0 0.25rem rgba(217, 164, 6, 0.5); +} +.btn-warning:disabled, +.btn-warning.disabled { + color: #000; + background-color: #ffc107; + border-color: #ffc107; +} +.btn-danger { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} +.btn-danger:hover { + color: #fff; + background-color: #bb2d3b; + border-color: #b02a37; +} +.btn-check:focus + .btn-danger, +.btn-danger:focus { + color: #fff; + background-color: #bb2d3b; + border-color: #b02a37; + box-shadow: 0 0 0 0.25rem rgba(225, 83, 97, 0.5); +} +.btn-check:checked + .btn-danger, +.btn-check:active + .btn-danger, +.btn-danger:active, +.btn-danger.active, +.show > .btn-danger.dropdown-toggle { + color: #fff; + background-color: #b02a37; + border-color: #a52834; +} +.btn-check:checked + .btn-danger:focus, +.btn-check:active + .btn-danger:focus, +.btn-danger:active:focus, +.btn-danger.active:focus, +.show > .btn-danger.dropdown-toggle:focus { + box-shadow: 0 0 0 0.25rem rgba(225, 83, 97, 0.5); +} +.btn-danger:disabled, +.btn-danger.disabled { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} +.btn-light { + color: #000; + background-color: #f8f9fa; + border-color: #f8f9fa; +} +.btn-light:hover { + color: #000; + background-color: #f9fafb; + border-color: #f9fafb; +} +.btn-check:focus + .btn-light, +.btn-light:focus { + color: #000; + background-color: #f9fafb; + border-color: #f9fafb; + box-shadow: 0 0 0 0.25rem rgba(211, 212, 213, 0.5); +} +.btn-check:checked + .btn-light, +.btn-check:active + .btn-light, +.btn-light:active, +.btn-light.active, +.show > .btn-light.dropdown-toggle { + color: #000; + background-color: #f9fafb; + border-color: #f9fafb; +} +.btn-check:checked + .btn-light:focus, +.btn-check:active + .btn-light:focus, +.btn-light:active:focus, +.btn-light.active:focus, +.show > .btn-light.dropdown-toggle:focus { + box-shadow: 0 0 0 0.25rem rgba(211, 212, 213, 0.5); +} +.btn-light:disabled, +.btn-light.disabled { + color: #000; + background-color: #f8f9fa; + border-color: #f8f9fa; +} +.btn-dark { + color: #fff; + background-color: #212529; + border-color: #212529; +} +.btn-dark:hover { + color: #fff; + background-color: #1c1f23; + border-color: #1a1e21; +} +.btn-check:focus + .btn-dark, +.btn-dark:focus { + color: #fff; + background-color: #1c1f23; + border-color: #1a1e21; + box-shadow: 0 0 0 0.25rem rgba(66, 70, 73, 0.5); +} +.btn-check:checked + .btn-dark, +.btn-check:active + .btn-dark, +.btn-dark:active, +.btn-dark.active, +.show > .btn-dark.dropdown-toggle { + color: #fff; + background-color: #1a1e21; + border-color: #191c1f; +} +.btn-check:checked + .btn-dark:focus, +.btn-check:active + .btn-dark:focus, +.btn-dark:active:focus, +.btn-dark.active:focus, +.show > .btn-dark.dropdown-toggle:focus { + box-shadow: 0 0 0 0.25rem rgba(66, 70, 73, 0.5); +} +.btn-dark:disabled, +.btn-dark.disabled { + color: #fff; + background-color: #212529; + border-color: #212529; +} +.btn-outline-primary { + color: #0d6efd; + border-color: #0d6efd; +} +.btn-outline-primary:hover { + color: #fff; + background-color: #0d6efd; + border-color: #0d6efd; +} +.btn-check:focus + .btn-outline-primary, +.btn-outline-primary:focus { + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.5); +} +.btn-check:checked + .btn-outline-primary, +.btn-check:active + .btn-outline-primary, +.btn-outline-primary:active, +.btn-outline-primary.active, +.btn-outline-primary.dropdown-toggle.show { + color: #fff; + background-color: #0d6efd; + border-color: #0d6efd; +} +.btn-check:checked + .btn-outline-primary:focus, +.btn-check:active + .btn-outline-primary:focus, +.btn-outline-primary:active:focus, +.btn-outline-primary.active:focus, +.btn-outline-primary.dropdown-toggle.show:focus { + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.5); +} +.btn-outline-primary:disabled, +.btn-outline-primary.disabled { + color: #0d6efd; + background-color: transparent; +} +.btn-outline-secondary { + color: #6c757d; + border-color: #6c757d; +} +.btn-outline-secondary:hover { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} +.btn-check:focus + .btn-outline-secondary, +.btn-outline-secondary:focus { + box-shadow: 0 0 0 0.25rem rgba(108, 117, 125, 0.5); +} +.btn-check:checked + .btn-outline-secondary, +.btn-check:active + .btn-outline-secondary, +.btn-outline-secondary:active, +.btn-outline-secondary.active, +.btn-outline-secondary.dropdown-toggle.show { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} +.btn-check:checked + .btn-outline-secondary:focus, +.btn-check:active + .btn-outline-secondary:focus, +.btn-outline-secondary:active:focus, +.btn-outline-secondary.active:focus, +.btn-outline-secondary.dropdown-toggle.show:focus { + box-shadow: 0 0 0 0.25rem rgba(108, 117, 125, 0.5); +} +.btn-outline-secondary:disabled, +.btn-outline-secondary.disabled { + color: #6c757d; + background-color: transparent; +} +.btn-outline-success { + color: #198754; + border-color: #198754; +} +.btn-outline-success:hover { + color: #fff; + background-color: #198754; + border-color: #198754; +} +.btn-check:focus + .btn-outline-success, +.btn-outline-success:focus { + box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.5); +} +.btn-check:checked + .btn-outline-success, +.btn-check:active + .btn-outline-success, +.btn-outline-success:active, +.btn-outline-success.active, +.btn-outline-success.dropdown-toggle.show { + color: #fff; + background-color: #198754; + border-color: #198754; +} +.btn-check:checked + .btn-outline-success:focus, +.btn-check:active + .btn-outline-success:focus, +.btn-outline-success:active:focus, +.btn-outline-success.active:focus, +.btn-outline-success.dropdown-toggle.show:focus { + box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.5); +} +.btn-outline-success:disabled, +.btn-outline-success.disabled { + color: #198754; + background-color: transparent; +} +.btn-outline-info { + color: #0dcaf0; + border-color: #0dcaf0; +} +.btn-outline-info:hover { + color: #000; + background-color: #0dcaf0; + border-color: #0dcaf0; +} +.btn-check:focus + .btn-outline-info, +.btn-outline-info:focus { + box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.5); +} +.btn-check:checked + .btn-outline-info, +.btn-check:active + .btn-outline-info, +.btn-outline-info:active, +.btn-outline-info.active, +.btn-outline-info.dropdown-toggle.show { + color: #000; + background-color: #0dcaf0; + border-color: #0dcaf0; +} +.btn-check:checked + .btn-outline-info:focus, +.btn-check:active + .btn-outline-info:focus, +.btn-outline-info:active:focus, +.btn-outline-info.active:focus, +.btn-outline-info.dropdown-toggle.show:focus { + box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.5); +} +.btn-outline-info:disabled, +.btn-outline-info.disabled { + color: #0dcaf0; + background-color: transparent; +} +.btn-outline-warning { + color: #ffc107; + border-color: #ffc107; +} +.btn-outline-warning:hover { + color: #000; + background-color: #ffc107; + border-color: #ffc107; +} +.btn-check:focus + .btn-outline-warning, +.btn-outline-warning:focus { + box-shadow: 0 0 0 0.25rem rgba(255, 193, 7, 0.5); +} +.btn-check:checked + .btn-outline-warning, +.btn-check:active + .btn-outline-warning, +.btn-outline-warning:active, +.btn-outline-warning.active, +.btn-outline-warning.dropdown-toggle.show { + color: #000; + background-color: #ffc107; + border-color: #ffc107; +} +.btn-check:checked + .btn-outline-warning:focus, +.btn-check:active + .btn-outline-warning:focus, +.btn-outline-warning:active:focus, +.btn-outline-warning.active:focus, +.btn-outline-warning.dropdown-toggle.show:focus { + box-shadow: 0 0 0 0.25rem rgba(255, 193, 7, 0.5); +} +.btn-outline-warning:disabled, +.btn-outline-warning.disabled { + color: #ffc107; + background-color: transparent; +} +.btn-outline-danger { + color: #dc3545; + border-color: #dc3545; +} +.btn-outline-danger:hover { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} +.btn-check:focus + .btn-outline-danger, +.btn-outline-danger:focus { + box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.5); +} +.btn-check:checked + .btn-outline-danger, +.btn-check:active + .btn-outline-danger, +.btn-outline-danger:active, +.btn-outline-danger.active, +.btn-outline-danger.dropdown-toggle.show { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} +.btn-check:checked + .btn-outline-danger:focus, +.btn-check:active + .btn-outline-danger:focus, +.btn-outline-danger:active:focus, +.btn-outline-danger.active:focus, +.btn-outline-danger.dropdown-toggle.show:focus { + box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.5); +} +.btn-outline-danger:disabled, +.btn-outline-danger.disabled { + color: #dc3545; + background-color: transparent; +} +.btn-outline-light { + color: #f8f9fa; + border-color: #f8f9fa; +} +.btn-outline-light:hover { + color: #000; + background-color: #f8f9fa; + border-color: #f8f9fa; +} +.btn-check:focus + .btn-outline-light, +.btn-outline-light:focus { + box-shadow: 0 0 0 0.25rem rgba(248, 249, 250, 0.5); +} +.btn-check:checked + .btn-outline-light, +.btn-check:active + .btn-outline-light, +.btn-outline-light:active, +.btn-outline-light.active, +.btn-outline-light.dropdown-toggle.show { + color: #000; + background-color: #f8f9fa; + border-color: #f8f9fa; +} +.btn-check:checked + .btn-outline-light:focus, +.btn-check:active + .btn-outline-light:focus, +.btn-outline-light:active:focus, +.btn-outline-light.active:focus, +.btn-outline-light.dropdown-toggle.show:focus { + box-shadow: 0 0 0 0.25rem rgba(248, 249, 250, 0.5); +} +.btn-outline-light:disabled, +.btn-outline-light.disabled { + color: #f8f9fa; + background-color: transparent; +} +.btn-outline-dark { + color: #212529; + border-color: #212529; +} +.btn-outline-dark:hover { + color: #fff; + background-color: #212529; + border-color: #212529; +} +.btn-check:focus + .btn-outline-dark, +.btn-outline-dark:focus { + box-shadow: 0 0 0 0.25rem rgba(33, 37, 41, 0.5); +} +.btn-check:checked + .btn-outline-dark, +.btn-check:active + .btn-outline-dark, +.btn-outline-dark:active, +.btn-outline-dark.active, +.btn-outline-dark.dropdown-toggle.show { + color: #fff; + background-color: #212529; + border-color: #212529; +} +.btn-check:checked + .btn-outline-dark:focus, +.btn-check:active + .btn-outline-dark:focus, +.btn-outline-dark:active:focus, +.btn-outline-dark.active:focus, +.btn-outline-dark.dropdown-toggle.show:focus { + box-shadow: 0 0 0 0.25rem rgba(33, 37, 41, 0.5); +} +.btn-outline-dark:disabled, +.btn-outline-dark.disabled { + color: #212529; + background-color: transparent; +} +.btn-link { + font-weight: 400; + color: #0d6efd; + text-decoration: underline; +} +.btn-link:hover { + color: #0a58ca; +} +.btn-link:disabled, +.btn-link.disabled { + color: #6c757d; +} +.btn-lg, +.btn-group-lg > .btn { + padding: 0.5rem 1rem; + font-size: 1.25rem; + border-radius: 0.3rem; +} +.btn-sm, +.btn-group-sm > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + border-radius: 0.2rem; +} +.form-control { + width: 100%; +} +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-flex; + vertical-align: middle; +} +.btn-group > .btn, +.btn-group-vertical > .btn { + position: relative; + flex: 1 1 auto; +} +.btn-group > .btn-check:checked + .btn, +.btn-group > .btn-check:focus + .btn, +.btn-group > .btn:hover, +.btn-group > .btn:focus, +.btn-group > .btn:active, +.btn-group > .btn.active, +.btn-group-vertical > .btn-check:checked + .btn, +.btn-group-vertical > .btn-check:focus + .btn, +.btn-group-vertical > .btn:hover, +.btn-group-vertical > .btn:focus, +.btn-group-vertical > .btn:active, +.btn-group-vertical > .btn.active { + z-index: 1; +} +.btn-toolbar { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; +} +.btn-toolbar .input-group { + width: auto; +} +.btn-group > .btn:not(:first-child), +.btn-group > .btn-group:not(:first-child) { + margin-left: -1px; +} +.btn-group > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group > .btn-group:not(:last-child) > .btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.btn-group > .btn:nth-child(n+3), +.btn-group > :not(.btn-check) + .btn, +.btn-group > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.dropdown-toggle-split { + padding-right: 0.5625rem; + padding-left: 0.5625rem; +} +.dropdown-toggle-split::after, +.dropup .dropdown-toggle-split::after, +.dropend .dropdown-toggle-split::after { + margin-left: 0; +} +.dropstart .dropdown-toggle-split::before { + margin-right: 0; +} +.btn-sm + .dropdown-toggle-split, +.btn-group-sm > .btn + .dropdown-toggle-split { + padding-right: 0.375rem; + padding-left: 0.375rem; +} +.btn-lg + .dropdown-toggle-split, +.btn-group-lg > .btn + .dropdown-toggle-split { + padding-right: 0.75rem; + padding-left: 0.75rem; +} +.btn-group-vertical { + flex-direction: column; + align-items: flex-start; + justify-content: center; +} +.btn-group-vertical > .btn, +.btn-group-vertical > .btn-group { + width: 100%; +} +.btn-group-vertical > .btn:not(:first-child), +.btn-group-vertical > .btn-group:not(:first-child) { + margin-top: -1px; +} +.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group-vertical > .btn-group:not(:last-child) > .btn { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group-vertical > .btn ~ .btn, +.btn-group-vertical > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.table { + --bs-table-bg: transparent; + --bs-table-accent-bg: transparent; + --bs-table-striped-color: #212529; + --bs-table-striped-bg: rgba(0, 0, 0, 0.05); + --bs-table-active-color: #212529; + --bs-table-active-bg: rgba(0, 0, 0, 0.1); + --bs-table-hover-color: #212529; + --bs-table-hover-bg: rgba(0, 0, 0, 0.075); + width: 100%; + margin-bottom: 1rem; + color: #212529; + vertical-align: top; + border-color: #dee2e6; +} +.table > :not(caption) > * > * { + padding: 0.5rem 0.5rem; + background-color: var(--bs-table-bg); + border-bottom-width: 1px; + box-shadow: inset 0 0 0 9999px var(--bs-table-accent-bg); +} +.table > tbody { + vertical-align: inherit; +} +.table > thead { + vertical-align: bottom; +} +.table > :not(:first-child) { + border-top: 2px solid currentColor; +} +.caption-top { + caption-side: top; +} +.table-sm > :not(caption) > * > * { + padding: 0.25rem 0.25rem; +} +.table-bordered > :not(caption) > * { + border-width: 1px 0; +} +.table-bordered > :not(caption) > * > * { + border-width: 0 1px; +} +.table-borderless > :not(caption) > * > * { + border-bottom-width: 0; +} +.table-borderless > :not(:first-child) { + border-top-width: 0; +} +.table-striped > tbody > tr:nth-of-type(odd) > * { + --bs-table-accent-bg: var(--bs-table-striped-bg); + color: var(--bs-table-striped-color); +} +.table-active { + --bs-table-accent-bg: var(--bs-table-active-bg); + color: var(--bs-table-active-color); +} +.table-hover > tbody > tr:hover > * { + --bs-table-accent-bg: var(--bs-table-hover-bg); + color: var(--bs-table-hover-color); +} +.table-primary { + --bs-table-bg: #cfe2ff; + --bs-table-striped-bg: #c5d7f2; + --bs-table-striped-color: #000; + --bs-table-active-bg: #bacbe6; + --bs-table-active-color: #000; + --bs-table-hover-bg: #bfd1ec; + --bs-table-hover-color: #000; + color: #000; + border-color: #bacbe6; +} +.table-secondary { + --bs-table-bg: #e2e3e5; + --bs-table-striped-bg: #d7d8da; + --bs-table-striped-color: #000; + --bs-table-active-bg: #cbccce; + --bs-table-active-color: #000; + --bs-table-hover-bg: #d1d2d4; + --bs-table-hover-color: #000; + color: #000; + border-color: #cbccce; +} +.table-success { + --bs-table-bg: #d1e7dd; + --bs-table-striped-bg: #c7dbd2; + --bs-table-striped-color: #000; + --bs-table-active-bg: #bcd0c7; + --bs-table-active-color: #000; + --bs-table-hover-bg: #c1d6cc; + --bs-table-hover-color: #000; + color: #000; + border-color: #bcd0c7; +} +.table-info { + --bs-table-bg: #cff4fc; + --bs-table-striped-bg: #c5e8ef; + --bs-table-striped-color: #000; + --bs-table-active-bg: #badce3; + --bs-table-active-color: #000; + --bs-table-hover-bg: #bfe2e9; + --bs-table-hover-color: #000; + color: #000; + border-color: #badce3; +} +.table-warning { + --bs-table-bg: #fff3cd; + --bs-table-striped-bg: #f2e7c3; + --bs-table-striped-color: #000; + --bs-table-active-bg: #e6dbb9; + --bs-table-active-color: #000; + --bs-table-hover-bg: #ece1be; + --bs-table-hover-color: #000; + color: #000; + border-color: #e6dbb9; +} +.table-danger { + --bs-table-bg: #f8d7da; + --bs-table-striped-bg: #eccccf; + --bs-table-striped-color: #000; + --bs-table-active-bg: #dfc2c4; + --bs-table-active-color: #000; + --bs-table-hover-bg: #e5c7ca; + --bs-table-hover-color: #000; + color: #000; + border-color: #dfc2c4; +} +.table-light { + --bs-table-bg: #f8f9fa; + --bs-table-striped-bg: #ecedee; + --bs-table-striped-color: #000; + --bs-table-active-bg: #dfe0e1; + --bs-table-active-color: #000; + --bs-table-hover-bg: #e5e6e7; + --bs-table-hover-color: #000; + color: #000; + border-color: #dfe0e1; +} +.table-dark { + --bs-table-bg: #212529; + --bs-table-striped-bg: #2c3034; + --bs-table-striped-color: #fff; + --bs-table-active-bg: #373b3e; + --bs-table-active-color: #fff; + --bs-table-hover-bg: #323539; + --bs-table-hover-color: #fff; + color: #fff; + border-color: #373b3e; +} +.table-responsive { + overflow-x: auto; + -webkit-overflow-scrolling: touch; +} +@media (max-width: 575.98px) { + .table-responsive-sm { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +@media (max-width: 767.98px) { + .table-responsive-md { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +@media (max-width: 991.98px) { + .table-responsive-lg { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +@media (max-width: 1199.98px) { + .table-responsive-xl { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +@media (max-width: 1399.98px) { + .table-responsive-xxl { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +.nav-tabs { + border-bottom: 1px solid #dee2e6; +} +.nav-tabs .nav-link { + margin-bottom: -1px; + background: none; + border: 1px solid transparent; + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} +.nav-tabs .nav-link:hover, +.nav-tabs .nav-link:focus { + border-color: #e9ecef #e9ecef #dee2e6; + isolation: isolate; +} +.nav-tabs .nav-link.disabled { + color: #6c757d; + background-color: transparent; + border-color: transparent; +} +.nav-tabs .nav-link.active, +.nav-tabs .nav-item.show .nav-link { + color: #495057; + background-color: #fff; + border-color: #dee2e6 #dee2e6 #fff; +} +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.nav-pills .nav-link { + background: none; + border: 0; + border-radius: 0.25rem; +} +.nav-pills .nav-link.active, +.nav-pills .show > .nav-link { + color: #fff; + background-color: #0d6efd; +} +.nav-fill > .nav-link, +.nav-fill .nav-item { + flex: 1 1 auto; + text-align: center; +} +.nav-justified > .nav-link, +.nav-justified .nav-item { + flex-basis: 0; + flex-grow: 1; + text-align: center; +} +.nav-fill .nav-item .nav-link, +.nav-justified .nav-item .nav-link { + width: 100%; +} +.tab-content > .tab-pane { + display: none; +} +.tab-content > .active { + display: block; +} +/*! + * Bootstrap Grid v5.1.1 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors + * Copyright 2011-2021 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +:root { + --bs-blue: #0d6efd; + --bs-indigo: #6610f2; + --bs-purple: #6f42c1; + --bs-pink: #d63384; + --bs-red: #dc3545; + --bs-orange: #fd7e14; + --bs-yellow: #ffc107; + --bs-green: #198754; + --bs-teal: #20c997; + --bs-cyan: #0dcaf0; + --bs-white: #fff; + --bs-gray: #6c757d; + --bs-gray-dark: #343a40; + --bs-gray-100: #f8f9fa; + --bs-gray-200: #e9ecef; + --bs-gray-300: #dee2e6; + --bs-gray-400: #ced4da; + --bs-gray-500: #adb5bd; + --bs-gray-600: #6c757d; + --bs-gray-700: #495057; + --bs-gray-800: #343a40; + --bs-gray-900: #212529; + --bs-primary: #0d6efd; + --bs-secondary: #6c757d; + --bs-success: #198754; + --bs-info: #0dcaf0; + --bs-warning: #ffc107; + --bs-danger: #dc3545; + --bs-light: #f8f9fa; + --bs-dark: #212529; + --bs-primary-rgb: 13, 110, 253; + --bs-secondary-rgb: 108, 117, 125; + --bs-success-rgb: 25, 135, 84; + --bs-info-rgb: 13, 202, 240; + --bs-warning-rgb: 255, 193, 7; + --bs-danger-rgb: 220, 53, 69; + --bs-light-rgb: 248, 249, 250; + --bs-dark-rgb: 33, 37, 41; + --bs-white-rgb: 255, 255, 255; + --bs-black-rgb: 0, 0, 0; + --bs-body-color-rgb: 33, 37, 41; + --bs-body-bg-rgb: 255, 255, 255; + --bs-font-sans-serif: inherit; + --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0)); + --bs-body-font-family: inherit; + --bs-body-font-size: 1rem; + --bs-body-font-weight: 400; + --bs-body-line-height: 1.5; + --bs-body-color: #212529; + --bs-body-bg: #fff; +} +.container, +.container-fluid, +.container-xxl, +.container-xl, +.container-lg, +.container-md, +.container-sm { + width: 100%; + padding-right: var(--bs-gutter-x, 0.75rem); + padding-left: var(--bs-gutter-x, 0.75rem); + margin-right: auto; + margin-left: auto; +} +@media (min-width: 576px) { + .container-sm, + .container { + max-width: 540px; + } +} +@media (min-width: 768px) { + .container-md, + .container-sm, + .container { + max-width: 720px; + } +} +@media (min-width: 992px) { + .container-lg, + .container-md, + .container-sm, + .container { + max-width: 960px; + } +} +@media (min-width: 1200px) { + .container-xl, + .container-lg, + .container-md, + .container-sm, + .container { + max-width: 1140px; + } +} +@media (min-width: 1400px) { + .container-xxl, + .container-xl, + .container-lg, + .container-md, + .container-sm, + .container { + max-width: 1320px; + } +} +.col { + flex: 1 0 0%; +} +.row-cols-auto > * { + flex: 0 0 auto; + width: auto; +} +.row-cols-1 > * { + flex: 0 0 auto; + width: 100%; +} +.row-cols-2 > * { + flex: 0 0 auto; + width: 50%; +} +.row-cols-3 > * { + flex: 0 0 auto; + width: 33.33333333%; +} +.row-cols-4 > * { + flex: 0 0 auto; + width: 25%; +} +.row-cols-5 > * { + flex: 0 0 auto; + width: 20%; +} +.row-cols-6 > * { + flex: 0 0 auto; + width: 16.66666667%; +} +.col-auto { + flex: 0 0 auto; + width: auto; +} +.col-1 { + flex: 0 0 auto; + width: 8.33333333%; +} +.col-2 { + flex: 0 0 auto; + width: 16.66666667%; +} +.col-3 { + flex: 0 0 auto; + width: 25%; +} +.col-4 { + flex: 0 0 auto; + width: 33.33333333%; +} +.col-5 { + flex: 0 0 auto; + width: 41.66666667%; +} +.col-6 { + flex: 0 0 auto; + width: 50%; +} +.col-7 { + flex: 0 0 auto; + width: 58.33333333%; +} +.col-8 { + flex: 0 0 auto; + width: 66.66666667%; +} +.col-9 { + flex: 0 0 auto; + width: 75%; +} +.col-10 { + flex: 0 0 auto; + width: 83.33333333%; +} +.col-11 { + flex: 0 0 auto; + width: 91.66666667%; +} +.col-12 { + flex: 0 0 auto; + width: 100%; +} +.offset-1 { + margin-left: 8.33333333%; +} +.offset-2 { + margin-left: 16.66666667%; +} +.offset-3 { + margin-left: 25%; +} +.offset-4 { + margin-left: 33.33333333%; +} +.offset-5 { + margin-left: 41.66666667%; +} +.offset-6 { + margin-left: 50%; +} +.offset-7 { + margin-left: 58.33333333%; +} +.offset-8 { + margin-left: 66.66666667%; +} +.offset-9 { + margin-left: 75%; +} +.offset-10 { + margin-left: 83.33333333%; +} +.offset-11 { + margin-left: 91.66666667%; +} +.g-0, +.gx-0 { + --bs-gutter-x: 0; +} +.g-0, +.gy-0 { + --bs-gutter-y: 0; +} +.g-1, +.gx-1 { + --bs-gutter-x: 0.25rem; +} +.g-1, +.gy-1 { + --bs-gutter-y: 0.25rem; +} +.g-2, +.gx-2 { + --bs-gutter-x: 0.5rem; +} +.g-2, +.gy-2 { + --bs-gutter-y: 0.5rem; +} +.g-3, +.gx-3 { + --bs-gutter-x: 1rem; +} +.g-3, +.gy-3 { + --bs-gutter-y: 1rem; +} +.g-4, +.gx-4 { + --bs-gutter-x: 1.5rem; +} +.g-4, +.gy-4 { + --bs-gutter-y: 1.5rem; +} +.g-5, +.gx-5 { + --bs-gutter-x: 3rem; +} +.g-5, +.gy-5 { + --bs-gutter-y: 3rem; +} +@media (min-width: 576px) { + .col-sm { + flex: 1 0 0%; + } + .row-cols-sm-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-sm-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-sm-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-sm-3 > * { + flex: 0 0 auto; + width: 33.33333333%; + } + .row-cols-sm-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-sm-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-sm-6 > * { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-sm-auto { + flex: 0 0 auto; + width: auto; + } + .col-sm-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-sm-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-sm-3 { + flex: 0 0 auto; + width: 25%; + } + .col-sm-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-sm-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-sm-6 { + flex: 0 0 auto; + width: 50%; + } + .col-sm-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-sm-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-sm-9 { + flex: 0 0 auto; + width: 75%; + } + .col-sm-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-sm-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-sm-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-sm-0 { + margin-left: 0; + } + .offset-sm-1 { + margin-left: 8.33333333%; + } + .offset-sm-2 { + margin-left: 16.66666667%; + } + .offset-sm-3 { + margin-left: 25%; + } + .offset-sm-4 { + margin-left: 33.33333333%; + } + .offset-sm-5 { + margin-left: 41.66666667%; + } + .offset-sm-6 { + margin-left: 50%; + } + .offset-sm-7 { + margin-left: 58.33333333%; + } + .offset-sm-8 { + margin-left: 66.66666667%; + } + .offset-sm-9 { + margin-left: 75%; + } + .offset-sm-10 { + margin-left: 83.33333333%; + } + .offset-sm-11 { + margin-left: 91.66666667%; + } + .g-sm-0, + .gx-sm-0 { + --bs-gutter-x: 0; + } + .g-sm-0, + .gy-sm-0 { + --bs-gutter-y: 0; + } + .g-sm-1, + .gx-sm-1 { + --bs-gutter-x: 0.25rem; + } + .g-sm-1, + .gy-sm-1 { + --bs-gutter-y: 0.25rem; + } + .g-sm-2, + .gx-sm-2 { + --bs-gutter-x: 0.5rem; + } + .g-sm-2, + .gy-sm-2 { + --bs-gutter-y: 0.5rem; + } + .g-sm-3, + .gx-sm-3 { + --bs-gutter-x: 1rem; + } + .g-sm-3, + .gy-sm-3 { + --bs-gutter-y: 1rem; + } + .g-sm-4, + .gx-sm-4 { + --bs-gutter-x: 1.5rem; + } + .g-sm-4, + .gy-sm-4 { + --bs-gutter-y: 1.5rem; + } + .g-sm-5, + .gx-sm-5 { + --bs-gutter-x: 3rem; + } + .g-sm-5, + .gy-sm-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 768px) { + .col-md { + flex: 1 0 0%; + } + .row-cols-md-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-md-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-md-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-md-3 > * { + flex: 0 0 auto; + width: 33.33333333%; + } + .row-cols-md-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-md-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-md-6 > * { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-md-auto { + flex: 0 0 auto; + width: auto; + } + .col-md-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-md-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-md-3 { + flex: 0 0 auto; + width: 25%; + } + .col-md-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-md-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-md-6 { + flex: 0 0 auto; + width: 50%; + } + .col-md-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-md-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-md-9 { + flex: 0 0 auto; + width: 75%; + } + .col-md-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-md-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-md-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-md-0 { + margin-left: 0; + } + .offset-md-1 { + margin-left: 8.33333333%; + } + .offset-md-2 { + margin-left: 16.66666667%; + } + .offset-md-3 { + margin-left: 25%; + } + .offset-md-4 { + margin-left: 33.33333333%; + } + .offset-md-5 { + margin-left: 41.66666667%; + } + .offset-md-6 { + margin-left: 50%; + } + .offset-md-7 { + margin-left: 58.33333333%; + } + .offset-md-8 { + margin-left: 66.66666667%; + } + .offset-md-9 { + margin-left: 75%; + } + .offset-md-10 { + margin-left: 83.33333333%; + } + .offset-md-11 { + margin-left: 91.66666667%; + } + .g-md-0, + .gx-md-0 { + --bs-gutter-x: 0; + } + .g-md-0, + .gy-md-0 { + --bs-gutter-y: 0; + } + .g-md-1, + .gx-md-1 { + --bs-gutter-x: 0.25rem; + } + .g-md-1, + .gy-md-1 { + --bs-gutter-y: 0.25rem; + } + .g-md-2, + .gx-md-2 { + --bs-gutter-x: 0.5rem; + } + .g-md-2, + .gy-md-2 { + --bs-gutter-y: 0.5rem; + } + .g-md-3, + .gx-md-3 { + --bs-gutter-x: 1rem; + } + .g-md-3, + .gy-md-3 { + --bs-gutter-y: 1rem; + } + .g-md-4, + .gx-md-4 { + --bs-gutter-x: 1.5rem; + } + .g-md-4, + .gy-md-4 { + --bs-gutter-y: 1.5rem; + } + .g-md-5, + .gx-md-5 { + --bs-gutter-x: 3rem; + } + .g-md-5, + .gy-md-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 992px) { + .col-lg { + flex: 1 0 0%; + } + .row-cols-lg-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-lg-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-lg-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-lg-3 > * { + flex: 0 0 auto; + width: 33.33333333%; + } + .row-cols-lg-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-lg-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-lg-6 > * { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-lg-auto { + flex: 0 0 auto; + width: auto; + } + .col-lg-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-lg-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-lg-3 { + flex: 0 0 auto; + width: 25%; + } + .col-lg-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-lg-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-lg-6 { + flex: 0 0 auto; + width: 50%; + } + .col-lg-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-lg-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-lg-9 { + flex: 0 0 auto; + width: 75%; + } + .col-lg-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-lg-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-lg-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-lg-0 { + margin-left: 0; + } + .offset-lg-1 { + margin-left: 8.33333333%; + } + .offset-lg-2 { + margin-left: 16.66666667%; + } + .offset-lg-3 { + margin-left: 25%; + } + .offset-lg-4 { + margin-left: 33.33333333%; + } + .offset-lg-5 { + margin-left: 41.66666667%; + } + .offset-lg-6 { + margin-left: 50%; + } + .offset-lg-7 { + margin-left: 58.33333333%; + } + .offset-lg-8 { + margin-left: 66.66666667%; + } + .offset-lg-9 { + margin-left: 75%; + } + .offset-lg-10 { + margin-left: 83.33333333%; + } + .offset-lg-11 { + margin-left: 91.66666667%; + } + .g-lg-0, + .gx-lg-0 { + --bs-gutter-x: 0; + } + .g-lg-0, + .gy-lg-0 { + --bs-gutter-y: 0; + } + .g-lg-1, + .gx-lg-1 { + --bs-gutter-x: 0.25rem; + } + .g-lg-1, + .gy-lg-1 { + --bs-gutter-y: 0.25rem; + } + .g-lg-2, + .gx-lg-2 { + --bs-gutter-x: 0.5rem; + } + .g-lg-2, + .gy-lg-2 { + --bs-gutter-y: 0.5rem; + } + .g-lg-3, + .gx-lg-3 { + --bs-gutter-x: 1rem; + } + .g-lg-3, + .gy-lg-3 { + --bs-gutter-y: 1rem; + } + .g-lg-4, + .gx-lg-4 { + --bs-gutter-x: 1.5rem; + } + .g-lg-4, + .gy-lg-4 { + --bs-gutter-y: 1.5rem; + } + .g-lg-5, + .gx-lg-5 { + --bs-gutter-x: 3rem; + } + .g-lg-5, + .gy-lg-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 1200px) { + .col-xl { + flex: 1 0 0%; + } + .row-cols-xl-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-xl-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-xl-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-xl-3 > * { + flex: 0 0 auto; + width: 33.33333333%; + } + .row-cols-xl-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-xl-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-xl-6 > * { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-xl-auto { + flex: 0 0 auto; + width: auto; + } + .col-xl-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-xl-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-xl-3 { + flex: 0 0 auto; + width: 25%; + } + .col-xl-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-xl-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-xl-6 { + flex: 0 0 auto; + width: 50%; + } + .col-xl-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-xl-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-xl-9 { + flex: 0 0 auto; + width: 75%; + } + .col-xl-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-xl-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-xl-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-xl-0 { + margin-left: 0; + } + .offset-xl-1 { + margin-left: 8.33333333%; + } + .offset-xl-2 { + margin-left: 16.66666667%; + } + .offset-xl-3 { + margin-left: 25%; + } + .offset-xl-4 { + margin-left: 33.33333333%; + } + .offset-xl-5 { + margin-left: 41.66666667%; + } + .offset-xl-6 { + margin-left: 50%; + } + .offset-xl-7 { + margin-left: 58.33333333%; + } + .offset-xl-8 { + margin-left: 66.66666667%; + } + .offset-xl-9 { + margin-left: 75%; + } + .offset-xl-10 { + margin-left: 83.33333333%; + } + .offset-xl-11 { + margin-left: 91.66666667%; + } + .g-xl-0, + .gx-xl-0 { + --bs-gutter-x: 0; + } + .g-xl-0, + .gy-xl-0 { + --bs-gutter-y: 0; + } + .g-xl-1, + .gx-xl-1 { + --bs-gutter-x: 0.25rem; + } + .g-xl-1, + .gy-xl-1 { + --bs-gutter-y: 0.25rem; + } + .g-xl-2, + .gx-xl-2 { + --bs-gutter-x: 0.5rem; + } + .g-xl-2, + .gy-xl-2 { + --bs-gutter-y: 0.5rem; + } + .g-xl-3, + .gx-xl-3 { + --bs-gutter-x: 1rem; + } + .g-xl-3, + .gy-xl-3 { + --bs-gutter-y: 1rem; + } + .g-xl-4, + .gx-xl-4 { + --bs-gutter-x: 1.5rem; + } + .g-xl-4, + .gy-xl-4 { + --bs-gutter-y: 1.5rem; + } + .g-xl-5, + .gx-xl-5 { + --bs-gutter-x: 3rem; + } + .g-xl-5, + .gy-xl-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 1400px) { + .col-xxl { + flex: 1 0 0%; + } + .row-cols-xxl-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-xxl-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-xxl-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-xxl-3 > * { + flex: 0 0 auto; + width: 33.33333333%; + } + .row-cols-xxl-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-xxl-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-xxl-6 > * { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-xxl-auto { + flex: 0 0 auto; + width: auto; + } + .col-xxl-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-xxl-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-xxl-3 { + flex: 0 0 auto; + width: 25%; + } + .col-xxl-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-xxl-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-xxl-6 { + flex: 0 0 auto; + width: 50%; + } + .col-xxl-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-xxl-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-xxl-9 { + flex: 0 0 auto; + width: 75%; + } + .col-xxl-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-xxl-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-xxl-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-xxl-0 { + margin-left: 0; + } + .offset-xxl-1 { + margin-left: 8.33333333%; + } + .offset-xxl-2 { + margin-left: 16.66666667%; + } + .offset-xxl-3 { + margin-left: 25%; + } + .offset-xxl-4 { + margin-left: 33.33333333%; + } + .offset-xxl-5 { + margin-left: 41.66666667%; + } + .offset-xxl-6 { + margin-left: 50%; + } + .offset-xxl-7 { + margin-left: 58.33333333%; + } + .offset-xxl-8 { + margin-left: 66.66666667%; + } + .offset-xxl-9 { + margin-left: 75%; + } + .offset-xxl-10 { + margin-left: 83.33333333%; + } + .offset-xxl-11 { + margin-left: 91.66666667%; + } + .g-xxl-0, + .gx-xxl-0 { + --bs-gutter-x: 0; + } + .g-xxl-0, + .gy-xxl-0 { + --bs-gutter-y: 0; + } + .g-xxl-1, + .gx-xxl-1 { + --bs-gutter-x: 0.25rem; + } + .g-xxl-1, + .gy-xxl-1 { + --bs-gutter-y: 0.25rem; + } + .g-xxl-2, + .gx-xxl-2 { + --bs-gutter-x: 0.5rem; + } + .g-xxl-2, + .gy-xxl-2 { + --bs-gutter-y: 0.5rem; + } + .g-xxl-3, + .gx-xxl-3 { + --bs-gutter-x: 1rem; + } + .g-xxl-3, + .gy-xxl-3 { + --bs-gutter-y: 1rem; + } + .g-xxl-4, + .gx-xxl-4 { + --bs-gutter-x: 1.5rem; + } + .g-xxl-4, + .gy-xxl-4 { + --bs-gutter-y: 1.5rem; + } + .g-xxl-5, + .gx-xxl-5 { + --bs-gutter-x: 3rem; + } + .g-xxl-5, + .gy-xxl-5 { + --bs-gutter-y: 3rem; + } +} +.d-inline { + display: inline !important; +} +.d-inline-block { + display: inline-block !important; +} +.d-block { + display: block !important; +} +.d-grid { + display: grid !important; +} +.d-table { + display: table !important; +} +.d-table-row { + display: table-row !important; +} +.d-table-cell { + display: table-cell !important; +} +.d-flex { + display: flex !important; +} +.d-inline-flex { + display: inline-flex !important; +} +.d-none { + display: none !important; +} +.flex-fill { + flex: 1 1 auto !important; +} +.flex-row { + flex-direction: row !important; +} +.flex-column { + flex-direction: column !important; +} +.flex-row-reverse { + flex-direction: row-reverse !important; +} +.flex-column-reverse { + flex-direction: column-reverse !important; +} +.flex-grow-0 { + flex-grow: 0 !important; +} +.flex-grow-1 { + flex-grow: 1 !important; +} +.flex-shrink-0 { + flex-shrink: 0 !important; +} +.flex-shrink-1 { + flex-shrink: 1 !important; +} +.flex-wrap { + flex-wrap: wrap !important; +} +.flex-nowrap { + flex-wrap: nowrap !important; +} +.flex-wrap-reverse { + flex-wrap: wrap-reverse !important; +} +.justify-content-start { + justify-content: flex-start !important; +} +.justify-content-end { + justify-content: flex-end !important; +} +.justify-content-center { + justify-content: center !important; +} +.justify-content-between { + justify-content: space-between !important; +} +.justify-content-around { + justify-content: space-around !important; +} +.justify-content-evenly { + justify-content: space-evenly !important; +} +.align-items-start { + align-items: flex-start !important; +} +.align-items-end { + align-items: flex-end !important; +} +.align-items-center { + align-items: center !important; +} +.align-items-baseline { + align-items: baseline !important; +} +.align-items-stretch { + align-items: stretch !important; +} +.align-content-start { + align-content: flex-start !important; +} +.align-content-end { + align-content: flex-end !important; +} +.align-content-center { + align-content: center !important; +} +.align-content-between { + align-content: space-between !important; +} +.align-content-around { + align-content: space-around !important; +} +.align-content-stretch { + align-content: stretch !important; +} +.align-self-auto { + align-self: auto !important; +} +.align-self-start { + align-self: flex-start !important; +} +.align-self-end { + align-self: flex-end !important; +} +.align-self-center { + align-self: center !important; +} +.align-self-baseline { + align-self: baseline !important; +} +.align-self-stretch { + align-self: stretch !important; +} +.order-first { + order: -1 !important; +} +.order-0 { + order: 0 !important; +} +.order-1 { + order: 1 !important; +} +.order-2 { + order: 2 !important; +} +.order-3 { + order: 3 !important; +} +.order-4 { + order: 4 !important; +} +.order-5 { + order: 5 !important; +} +.order-last { + order: 6 !important; +} +.m-0 { + margin: 0 !important; +} +.m-1 { + margin: 0.25rem !important; +} +.m-2 { + margin: 0.5rem !important; +} +.m-3 { + margin: 1rem !important; +} +.m-4 { + margin: 1.5rem !important; +} +.m-5 { + margin: 3rem !important; +} +.m-auto { + margin: auto !important; +} +.mx-0 { + margin-right: 0 !important; + margin-left: 0 !important; +} +.mx-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; +} +.mx-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; +} +.mx-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; +} +.mx-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; +} +.mx-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; +} +.mx-auto { + margin-right: auto !important; + margin-left: auto !important; +} +.my-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; +} +.my-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; +} +.my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; +} +.my-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; +} +.my-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; +} +.my-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; +} +.my-auto { + margin-top: auto !important; + margin-bottom: auto !important; +} +.mt-0 { + margin-top: 0 !important; +} +.mt-1 { + margin-top: 0.25rem !important; +} +.mt-2 { + margin-top: 0.5rem !important; +} +.mt-3 { + margin-top: 1rem !important; +} +.mt-4 { + margin-top: 1.5rem !important; +} +.mt-5 { + margin-top: 3rem !important; +} +.mt-auto { + margin-top: auto !important; +} +.me-0 { + margin-right: 0 !important; +} +.me-1 { + margin-right: 0.25rem !important; +} +.me-2 { + margin-right: 0.5rem !important; +} +.me-3 { + margin-right: 1rem !important; +} +.me-4 { + margin-right: 1.5rem !important; +} +.me-5 { + margin-right: 3rem !important; +} +.me-auto { + margin-right: auto !important; +} +.mb-0 { + margin-bottom: 0 !important; +} +.mb-1 { + margin-bottom: 0.25rem !important; +} +.mb-2 { + margin-bottom: 0.5rem !important; +} +.mb-3 { + margin-bottom: 1rem !important; +} +.mb-4 { + margin-bottom: 1.5rem !important; +} +.mb-5 { + margin-bottom: 3rem !important; +} +.mb-auto { + margin-bottom: auto !important; +} +.ms-0 { + margin-left: 0 !important; +} +.ms-1 { + margin-left: 0.25rem !important; +} +.ms-2 { + margin-left: 0.5rem !important; +} +.ms-3 { + margin-left: 1rem !important; +} +.ms-4 { + margin-left: 1.5rem !important; +} +.ms-5 { + margin-left: 3rem !important; +} +.ms-auto { + margin-left: auto !important; +} +.p-0 { + padding: 0 !important; +} +.p-1 { + padding: 0.25rem !important; +} +.p-2 { + padding: 0.5rem !important; +} +.p-3 { + padding: 1rem !important; +} +.p-4 { + padding: 1.5rem !important; +} +.p-5 { + padding: 3rem !important; +} +.px-0 { + padding-right: 0 !important; + padding-left: 0 !important; +} +.px-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; +} +.px-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; +} +.px-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; +} +.px-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; +} +.px-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; +} +.py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; +} +.py-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; +} +.py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; +} +.py-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; +} +.py-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; +} +.py-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; +} +.pt-0 { + padding-top: 0 !important; +} +.pt-1 { + padding-top: 0.25rem !important; +} +.pt-2 { + padding-top: 0.5rem !important; +} +.pt-3 { + padding-top: 1rem !important; +} +.pt-4 { + padding-top: 1.5rem !important; +} +.pt-5 { + padding-top: 3rem !important; +} +.pe-0 { + padding-right: 0 !important; +} +.pe-1 { + padding-right: 0.25rem !important; +} +.pe-2 { + padding-right: 0.5rem !important; +} +.pe-3 { + padding-right: 1rem !important; +} +.pe-4 { + padding-right: 1.5rem !important; +} +.pe-5 { + padding-right: 3rem !important; +} +.pb-0 { + padding-bottom: 0 !important; +} +.pb-1 { + padding-bottom: 0.25rem !important; +} +.pb-2 { + padding-bottom: 0.5rem !important; +} +.pb-3 { + padding-bottom: 1rem !important; +} +.pb-4 { + padding-bottom: 1.5rem !important; +} +.pb-5 { + padding-bottom: 3rem !important; +} +.ps-0 { + padding-left: 0 !important; +} +.ps-1 { + padding-left: 0.25rem !important; +} +.ps-2 { + padding-left: 0.5rem !important; +} +.ps-3 { + padding-left: 1rem !important; +} +.ps-4 { + padding-left: 1.5rem !important; +} +.ps-5 { + padding-left: 3rem !important; +} +@media (min-width: 576px) { + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-block { + display: block !important; + } + .d-sm-grid { + display: grid !important; + } + .d-sm-table { + display: table !important; + } + .d-sm-table-row { + display: table-row !important; + } + .d-sm-table-cell { + display: table-cell !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline-flex { + display: inline-flex !important; + } + .d-sm-none { + display: none !important; + } + .flex-sm-fill { + flex: 1 1 auto !important; + } + .flex-sm-row { + flex-direction: row !important; + } + .flex-sm-column { + flex-direction: column !important; + } + .flex-sm-row-reverse { + flex-direction: row-reverse !important; + } + .flex-sm-column-reverse { + flex-direction: column-reverse !important; + } + .flex-sm-grow-0 { + flex-grow: 0 !important; + } + .flex-sm-grow-1 { + flex-grow: 1 !important; + } + .flex-sm-shrink-0 { + flex-shrink: 0 !important; + } + .flex-sm-shrink-1 { + flex-shrink: 1 !important; + } + .flex-sm-wrap { + flex-wrap: wrap !important; + } + .flex-sm-nowrap { + flex-wrap: nowrap !important; + } + .flex-sm-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-sm-start { + justify-content: flex-start !important; + } + .justify-content-sm-end { + justify-content: flex-end !important; + } + .justify-content-sm-center { + justify-content: center !important; + } + .justify-content-sm-between { + justify-content: space-between !important; + } + .justify-content-sm-around { + justify-content: space-around !important; + } + .justify-content-sm-evenly { + justify-content: space-evenly !important; + } + .align-items-sm-start { + align-items: flex-start !important; + } + .align-items-sm-end { + align-items: flex-end !important; + } + .align-items-sm-center { + align-items: center !important; + } + .align-items-sm-baseline { + align-items: baseline !important; + } + .align-items-sm-stretch { + align-items: stretch !important; + } + .align-content-sm-start { + align-content: flex-start !important; + } + .align-content-sm-end { + align-content: flex-end !important; + } + .align-content-sm-center { + align-content: center !important; + } + .align-content-sm-between { + align-content: space-between !important; + } + .align-content-sm-around { + align-content: space-around !important; + } + .align-content-sm-stretch { + align-content: stretch !important; + } + .align-self-sm-auto { + align-self: auto !important; + } + .align-self-sm-start { + align-self: flex-start !important; + } + .align-self-sm-end { + align-self: flex-end !important; + } + .align-self-sm-center { + align-self: center !important; + } + .align-self-sm-baseline { + align-self: baseline !important; + } + .align-self-sm-stretch { + align-self: stretch !important; + } + .order-sm-first { + order: -1 !important; + } + .order-sm-0 { + order: 0 !important; + } + .order-sm-1 { + order: 1 !important; + } + .order-sm-2 { + order: 2 !important; + } + .order-sm-3 { + order: 3 !important; + } + .order-sm-4 { + order: 4 !important; + } + .order-sm-5 { + order: 5 !important; + } + .order-sm-last { + order: 6 !important; + } + .m-sm-0 { + margin: 0 !important; + } + .m-sm-1 { + margin: 0.25rem !important; + } + .m-sm-2 { + margin: 0.5rem !important; + } + .m-sm-3 { + margin: 1rem !important; + } + .m-sm-4 { + margin: 1.5rem !important; + } + .m-sm-5 { + margin: 3rem !important; + } + .m-sm-auto { + margin: auto !important; + } + .mx-sm-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-sm-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-sm-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-sm-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-sm-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-sm-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-sm-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-sm-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-sm-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-sm-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-sm-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-sm-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-sm-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-sm-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-sm-0 { + margin-top: 0 !important; + } + .mt-sm-1 { + margin-top: 0.25rem !important; + } + .mt-sm-2 { + margin-top: 0.5rem !important; + } + .mt-sm-3 { + margin-top: 1rem !important; + } + .mt-sm-4 { + margin-top: 1.5rem !important; + } + .mt-sm-5 { + margin-top: 3rem !important; + } + .mt-sm-auto { + margin-top: auto !important; + } + .me-sm-0 { + margin-right: 0 !important; + } + .me-sm-1 { + margin-right: 0.25rem !important; + } + .me-sm-2 { + margin-right: 0.5rem !important; + } + .me-sm-3 { + margin-right: 1rem !important; + } + .me-sm-4 { + margin-right: 1.5rem !important; + } + .me-sm-5 { + margin-right: 3rem !important; + } + .me-sm-auto { + margin-right: auto !important; + } + .mb-sm-0 { + margin-bottom: 0 !important; + } + .mb-sm-1 { + margin-bottom: 0.25rem !important; + } + .mb-sm-2 { + margin-bottom: 0.5rem !important; + } + .mb-sm-3 { + margin-bottom: 1rem !important; + } + .mb-sm-4 { + margin-bottom: 1.5rem !important; + } + .mb-sm-5 { + margin-bottom: 3rem !important; + } + .mb-sm-auto { + margin-bottom: auto !important; + } + .ms-sm-0 { + margin-left: 0 !important; + } + .ms-sm-1 { + margin-left: 0.25rem !important; + } + .ms-sm-2 { + margin-left: 0.5rem !important; + } + .ms-sm-3 { + margin-left: 1rem !important; + } + .ms-sm-4 { + margin-left: 1.5rem !important; + } + .ms-sm-5 { + margin-left: 3rem !important; + } + .ms-sm-auto { + margin-left: auto !important; + } + .p-sm-0 { + padding: 0 !important; + } + .p-sm-1 { + padding: 0.25rem !important; + } + .p-sm-2 { + padding: 0.5rem !important; + } + .p-sm-3 { + padding: 1rem !important; + } + .p-sm-4 { + padding: 1.5rem !important; + } + .p-sm-5 { + padding: 3rem !important; + } + .px-sm-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-sm-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-sm-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-sm-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-sm-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-sm-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-sm-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-sm-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-sm-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-sm-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-sm-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-sm-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-sm-0 { + padding-top: 0 !important; + } + .pt-sm-1 { + padding-top: 0.25rem !important; + } + .pt-sm-2 { + padding-top: 0.5rem !important; + } + .pt-sm-3 { + padding-top: 1rem !important; + } + .pt-sm-4 { + padding-top: 1.5rem !important; + } + .pt-sm-5 { + padding-top: 3rem !important; + } + .pe-sm-0 { + padding-right: 0 !important; + } + .pe-sm-1 { + padding-right: 0.25rem !important; + } + .pe-sm-2 { + padding-right: 0.5rem !important; + } + .pe-sm-3 { + padding-right: 1rem !important; + } + .pe-sm-4 { + padding-right: 1.5rem !important; + } + .pe-sm-5 { + padding-right: 3rem !important; + } + .pb-sm-0 { + padding-bottom: 0 !important; + } + .pb-sm-1 { + padding-bottom: 0.25rem !important; + } + .pb-sm-2 { + padding-bottom: 0.5rem !important; + } + .pb-sm-3 { + padding-bottom: 1rem !important; + } + .pb-sm-4 { + padding-bottom: 1.5rem !important; + } + .pb-sm-5 { + padding-bottom: 3rem !important; + } + .ps-sm-0 { + padding-left: 0 !important; + } + .ps-sm-1 { + padding-left: 0.25rem !important; + } + .ps-sm-2 { + padding-left: 0.5rem !important; + } + .ps-sm-3 { + padding-left: 1rem !important; + } + .ps-sm-4 { + padding-left: 1.5rem !important; + } + .ps-sm-5 { + padding-left: 3rem !important; + } +} +@media (min-width: 768px) { + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-block { + display: block !important; + } + .d-md-grid { + display: grid !important; + } + .d-md-table { + display: table !important; + } + .d-md-table-row { + display: table-row !important; + } + .d-md-table-cell { + display: table-cell !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline-flex { + display: inline-flex !important; + } + .d-md-none { + display: none !important; + } + .flex-md-fill { + flex: 1 1 auto !important; + } + .flex-md-row { + flex-direction: row !important; + } + .flex-md-column { + flex-direction: column !important; + } + .flex-md-row-reverse { + flex-direction: row-reverse !important; + } + .flex-md-column-reverse { + flex-direction: column-reverse !important; + } + .flex-md-grow-0 { + flex-grow: 0 !important; + } + .flex-md-grow-1 { + flex-grow: 1 !important; + } + .flex-md-shrink-0 { + flex-shrink: 0 !important; + } + .flex-md-shrink-1 { + flex-shrink: 1 !important; + } + .flex-md-wrap { + flex-wrap: wrap !important; + } + .flex-md-nowrap { + flex-wrap: nowrap !important; + } + .flex-md-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-md-start { + justify-content: flex-start !important; + } + .justify-content-md-end { + justify-content: flex-end !important; + } + .justify-content-md-center { + justify-content: center !important; + } + .justify-content-md-between { + justify-content: space-between !important; + } + .justify-content-md-around { + justify-content: space-around !important; + } + .justify-content-md-evenly { + justify-content: space-evenly !important; + } + .align-items-md-start { + align-items: flex-start !important; + } + .align-items-md-end { + align-items: flex-end !important; + } + .align-items-md-center { + align-items: center !important; + } + .align-items-md-baseline { + align-items: baseline !important; + } + .align-items-md-stretch { + align-items: stretch !important; + } + .align-content-md-start { + align-content: flex-start !important; + } + .align-content-md-end { + align-content: flex-end !important; + } + .align-content-md-center { + align-content: center !important; + } + .align-content-md-between { + align-content: space-between !important; + } + .align-content-md-around { + align-content: space-around !important; + } + .align-content-md-stretch { + align-content: stretch !important; + } + .align-self-md-auto { + align-self: auto !important; + } + .align-self-md-start { + align-self: flex-start !important; + } + .align-self-md-end { + align-self: flex-end !important; + } + .align-self-md-center { + align-self: center !important; + } + .align-self-md-baseline { + align-self: baseline !important; + } + .align-self-md-stretch { + align-self: stretch !important; + } + .order-md-first { + order: -1 !important; + } + .order-md-0 { + order: 0 !important; + } + .order-md-1 { + order: 1 !important; + } + .order-md-2 { + order: 2 !important; + } + .order-md-3 { + order: 3 !important; + } + .order-md-4 { + order: 4 !important; + } + .order-md-5 { + order: 5 !important; + } + .order-md-last { + order: 6 !important; + } + .m-md-0 { + margin: 0 !important; + } + .m-md-1 { + margin: 0.25rem !important; + } + .m-md-2 { + margin: 0.5rem !important; + } + .m-md-3 { + margin: 1rem !important; + } + .m-md-4 { + margin: 1.5rem !important; + } + .m-md-5 { + margin: 3rem !important; + } + .m-md-auto { + margin: auto !important; + } + .mx-md-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-md-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-md-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-md-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-md-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-md-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-md-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-md-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-md-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-md-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-md-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-md-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-md-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-md-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-md-0 { + margin-top: 0 !important; + } + .mt-md-1 { + margin-top: 0.25rem !important; + } + .mt-md-2 { + margin-top: 0.5rem !important; + } + .mt-md-3 { + margin-top: 1rem !important; + } + .mt-md-4 { + margin-top: 1.5rem !important; + } + .mt-md-5 { + margin-top: 3rem !important; + } + .mt-md-auto { + margin-top: auto !important; + } + .me-md-0 { + margin-right: 0 !important; + } + .me-md-1 { + margin-right: 0.25rem !important; + } + .me-md-2 { + margin-right: 0.5rem !important; + } + .me-md-3 { + margin-right: 1rem !important; + } + .me-md-4 { + margin-right: 1.5rem !important; + } + .me-md-5 { + margin-right: 3rem !important; + } + .me-md-auto { + margin-right: auto !important; + } + .mb-md-0 { + margin-bottom: 0 !important; + } + .mb-md-1 { + margin-bottom: 0.25rem !important; + } + .mb-md-2 { + margin-bottom: 0.5rem !important; + } + .mb-md-3 { + margin-bottom: 1rem !important; + } + .mb-md-4 { + margin-bottom: 1.5rem !important; + } + .mb-md-5 { + margin-bottom: 3rem !important; + } + .mb-md-auto { + margin-bottom: auto !important; + } + .ms-md-0 { + margin-left: 0 !important; + } + .ms-md-1 { + margin-left: 0.25rem !important; + } + .ms-md-2 { + margin-left: 0.5rem !important; + } + .ms-md-3 { + margin-left: 1rem !important; + } + .ms-md-4 { + margin-left: 1.5rem !important; + } + .ms-md-5 { + margin-left: 3rem !important; + } + .ms-md-auto { + margin-left: auto !important; + } + .p-md-0 { + padding: 0 !important; + } + .p-md-1 { + padding: 0.25rem !important; + } + .p-md-2 { + padding: 0.5rem !important; + } + .p-md-3 { + padding: 1rem !important; + } + .p-md-4 { + padding: 1.5rem !important; + } + .p-md-5 { + padding: 3rem !important; + } + .px-md-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-md-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-md-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-md-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-md-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-md-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-md-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-md-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-md-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-md-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-md-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-md-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-md-0 { + padding-top: 0 !important; + } + .pt-md-1 { + padding-top: 0.25rem !important; + } + .pt-md-2 { + padding-top: 0.5rem !important; + } + .pt-md-3 { + padding-top: 1rem !important; + } + .pt-md-4 { + padding-top: 1.5rem !important; + } + .pt-md-5 { + padding-top: 3rem !important; + } + .pe-md-0 { + padding-right: 0 !important; + } + .pe-md-1 { + padding-right: 0.25rem !important; + } + .pe-md-2 { + padding-right: 0.5rem !important; + } + .pe-md-3 { + padding-right: 1rem !important; + } + .pe-md-4 { + padding-right: 1.5rem !important; + } + .pe-md-5 { + padding-right: 3rem !important; + } + .pb-md-0 { + padding-bottom: 0 !important; + } + .pb-md-1 { + padding-bottom: 0.25rem !important; + } + .pb-md-2 { + padding-bottom: 0.5rem !important; + } + .pb-md-3 { + padding-bottom: 1rem !important; + } + .pb-md-4 { + padding-bottom: 1.5rem !important; + } + .pb-md-5 { + padding-bottom: 3rem !important; + } + .ps-md-0 { + padding-left: 0 !important; + } + .ps-md-1 { + padding-left: 0.25rem !important; + } + .ps-md-2 { + padding-left: 0.5rem !important; + } + .ps-md-3 { + padding-left: 1rem !important; + } + .ps-md-4 { + padding-left: 1.5rem !important; + } + .ps-md-5 { + padding-left: 3rem !important; + } +} +@media (min-width: 992px) { + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-block { + display: block !important; + } + .d-lg-grid { + display: grid !important; + } + .d-lg-table { + display: table !important; + } + .d-lg-table-row { + display: table-row !important; + } + .d-lg-table-cell { + display: table-cell !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline-flex { + display: inline-flex !important; + } + .d-lg-none { + display: none !important; + } + .flex-lg-fill { + flex: 1 1 auto !important; + } + .flex-lg-row { + flex-direction: row !important; + } + .flex-lg-column { + flex-direction: column !important; + } + .flex-lg-row-reverse { + flex-direction: row-reverse !important; + } + .flex-lg-column-reverse { + flex-direction: column-reverse !important; + } + .flex-lg-grow-0 { + flex-grow: 0 !important; + } + .flex-lg-grow-1 { + flex-grow: 1 !important; + } + .flex-lg-shrink-0 { + flex-shrink: 0 !important; + } + .flex-lg-shrink-1 { + flex-shrink: 1 !important; + } + .flex-lg-wrap { + flex-wrap: wrap !important; + } + .flex-lg-nowrap { + flex-wrap: nowrap !important; + } + .flex-lg-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-lg-start { + justify-content: flex-start !important; + } + .justify-content-lg-end { + justify-content: flex-end !important; + } + .justify-content-lg-center { + justify-content: center !important; + } + .justify-content-lg-between { + justify-content: space-between !important; + } + .justify-content-lg-around { + justify-content: space-around !important; + } + .justify-content-lg-evenly { + justify-content: space-evenly !important; + } + .align-items-lg-start { + align-items: flex-start !important; + } + .align-items-lg-end { + align-items: flex-end !important; + } + .align-items-lg-center { + align-items: center !important; + } + .align-items-lg-baseline { + align-items: baseline !important; + } + .align-items-lg-stretch { + align-items: stretch !important; + } + .align-content-lg-start { + align-content: flex-start !important; + } + .align-content-lg-end { + align-content: flex-end !important; + } + .align-content-lg-center { + align-content: center !important; + } + .align-content-lg-between { + align-content: space-between !important; + } + .align-content-lg-around { + align-content: space-around !important; + } + .align-content-lg-stretch { + align-content: stretch !important; + } + .align-self-lg-auto { + align-self: auto !important; + } + .align-self-lg-start { + align-self: flex-start !important; + } + .align-self-lg-end { + align-self: flex-end !important; + } + .align-self-lg-center { + align-self: center !important; + } + .align-self-lg-baseline { + align-self: baseline !important; + } + .align-self-lg-stretch { + align-self: stretch !important; + } + .order-lg-first { + order: -1 !important; + } + .order-lg-0 { + order: 0 !important; + } + .order-lg-1 { + order: 1 !important; + } + .order-lg-2 { + order: 2 !important; + } + .order-lg-3 { + order: 3 !important; + } + .order-lg-4 { + order: 4 !important; + } + .order-lg-5 { + order: 5 !important; + } + .order-lg-last { + order: 6 !important; + } + .m-lg-0 { + margin: 0 !important; + } + .m-lg-1 { + margin: 0.25rem !important; + } + .m-lg-2 { + margin: 0.5rem !important; + } + .m-lg-3 { + margin: 1rem !important; + } + .m-lg-4 { + margin: 1.5rem !important; + } + .m-lg-5 { + margin: 3rem !important; + } + .m-lg-auto { + margin: auto !important; + } + .mx-lg-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-lg-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-lg-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-lg-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-lg-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-lg-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-lg-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-lg-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-lg-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-lg-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-lg-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-lg-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-lg-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-lg-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-lg-0 { + margin-top: 0 !important; + } + .mt-lg-1 { + margin-top: 0.25rem !important; + } + .mt-lg-2 { + margin-top: 0.5rem !important; + } + .mt-lg-3 { + margin-top: 1rem !important; + } + .mt-lg-4 { + margin-top: 1.5rem !important; + } + .mt-lg-5 { + margin-top: 3rem !important; + } + .mt-lg-auto { + margin-top: auto !important; + } + .me-lg-0 { + margin-right: 0 !important; + } + .me-lg-1 { + margin-right: 0.25rem !important; + } + .me-lg-2 { + margin-right: 0.5rem !important; + } + .me-lg-3 { + margin-right: 1rem !important; + } + .me-lg-4 { + margin-right: 1.5rem !important; + } + .me-lg-5 { + margin-right: 3rem !important; + } + .me-lg-auto { + margin-right: auto !important; + } + .mb-lg-0 { + margin-bottom: 0 !important; + } + .mb-lg-1 { + margin-bottom: 0.25rem !important; + } + .mb-lg-2 { + margin-bottom: 0.5rem !important; + } + .mb-lg-3 { + margin-bottom: 1rem !important; + } + .mb-lg-4 { + margin-bottom: 1.5rem !important; + } + .mb-lg-5 { + margin-bottom: 3rem !important; + } + .mb-lg-auto { + margin-bottom: auto !important; + } + .ms-lg-0 { + margin-left: 0 !important; + } + .ms-lg-1 { + margin-left: 0.25rem !important; + } + .ms-lg-2 { + margin-left: 0.5rem !important; + } + .ms-lg-3 { + margin-left: 1rem !important; + } + .ms-lg-4 { + margin-left: 1.5rem !important; + } + .ms-lg-5 { + margin-left: 3rem !important; + } + .ms-lg-auto { + margin-left: auto !important; + } + .p-lg-0 { + padding: 0 !important; + } + .p-lg-1 { + padding: 0.25rem !important; + } + .p-lg-2 { + padding: 0.5rem !important; + } + .p-lg-3 { + padding: 1rem !important; + } + .p-lg-4 { + padding: 1.5rem !important; + } + .p-lg-5 { + padding: 3rem !important; + } + .px-lg-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-lg-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-lg-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-lg-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-lg-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-lg-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-lg-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-lg-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-lg-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-lg-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-lg-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-lg-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-lg-0 { + padding-top: 0 !important; + } + .pt-lg-1 { + padding-top: 0.25rem !important; + } + .pt-lg-2 { + padding-top: 0.5rem !important; + } + .pt-lg-3 { + padding-top: 1rem !important; + } + .pt-lg-4 { + padding-top: 1.5rem !important; + } + .pt-lg-5 { + padding-top: 3rem !important; + } + .pe-lg-0 { + padding-right: 0 !important; + } + .pe-lg-1 { + padding-right: 0.25rem !important; + } + .pe-lg-2 { + padding-right: 0.5rem !important; + } + .pe-lg-3 { + padding-right: 1rem !important; + } + .pe-lg-4 { + padding-right: 1.5rem !important; + } + .pe-lg-5 { + padding-right: 3rem !important; + } + .pb-lg-0 { + padding-bottom: 0 !important; + } + .pb-lg-1 { + padding-bottom: 0.25rem !important; + } + .pb-lg-2 { + padding-bottom: 0.5rem !important; + } + .pb-lg-3 { + padding-bottom: 1rem !important; + } + .pb-lg-4 { + padding-bottom: 1.5rem !important; + } + .pb-lg-5 { + padding-bottom: 3rem !important; + } + .ps-lg-0 { + padding-left: 0 !important; + } + .ps-lg-1 { + padding-left: 0.25rem !important; + } + .ps-lg-2 { + padding-left: 0.5rem !important; + } + .ps-lg-3 { + padding-left: 1rem !important; + } + .ps-lg-4 { + padding-left: 1.5rem !important; + } + .ps-lg-5 { + padding-left: 3rem !important; + } +} +@media (min-width: 1200px) { + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-block { + display: block !important; + } + .d-xl-grid { + display: grid !important; + } + .d-xl-table { + display: table !important; + } + .d-xl-table-row { + display: table-row !important; + } + .d-xl-table-cell { + display: table-cell !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline-flex { + display: inline-flex !important; + } + .d-xl-none { + display: none !important; + } + .flex-xl-fill { + flex: 1 1 auto !important; + } + .flex-xl-row { + flex-direction: row !important; + } + .flex-xl-column { + flex-direction: column !important; + } + .flex-xl-row-reverse { + flex-direction: row-reverse !important; + } + .flex-xl-column-reverse { + flex-direction: column-reverse !important; + } + .flex-xl-grow-0 { + flex-grow: 0 !important; + } + .flex-xl-grow-1 { + flex-grow: 1 !important; + } + .flex-xl-shrink-0 { + flex-shrink: 0 !important; + } + .flex-xl-shrink-1 { + flex-shrink: 1 !important; + } + .flex-xl-wrap { + flex-wrap: wrap !important; + } + .flex-xl-nowrap { + flex-wrap: nowrap !important; + } + .flex-xl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-xl-start { + justify-content: flex-start !important; + } + .justify-content-xl-end { + justify-content: flex-end !important; + } + .justify-content-xl-center { + justify-content: center !important; + } + .justify-content-xl-between { + justify-content: space-between !important; + } + .justify-content-xl-around { + justify-content: space-around !important; + } + .justify-content-xl-evenly { + justify-content: space-evenly !important; + } + .align-items-xl-start { + align-items: flex-start !important; + } + .align-items-xl-end { + align-items: flex-end !important; + } + .align-items-xl-center { + align-items: center !important; + } + .align-items-xl-baseline { + align-items: baseline !important; + } + .align-items-xl-stretch { + align-items: stretch !important; + } + .align-content-xl-start { + align-content: flex-start !important; + } + .align-content-xl-end { + align-content: flex-end !important; + } + .align-content-xl-center { + align-content: center !important; + } + .align-content-xl-between { + align-content: space-between !important; + } + .align-content-xl-around { + align-content: space-around !important; + } + .align-content-xl-stretch { + align-content: stretch !important; + } + .align-self-xl-auto { + align-self: auto !important; + } + .align-self-xl-start { + align-self: flex-start !important; + } + .align-self-xl-end { + align-self: flex-end !important; + } + .align-self-xl-center { + align-self: center !important; + } + .align-self-xl-baseline { + align-self: baseline !important; + } + .align-self-xl-stretch { + align-self: stretch !important; + } + .order-xl-first { + order: -1 !important; + } + .order-xl-0 { + order: 0 !important; + } + .order-xl-1 { + order: 1 !important; + } + .order-xl-2 { + order: 2 !important; + } + .order-xl-3 { + order: 3 !important; + } + .order-xl-4 { + order: 4 !important; + } + .order-xl-5 { + order: 5 !important; + } + .order-xl-last { + order: 6 !important; + } + .m-xl-0 { + margin: 0 !important; + } + .m-xl-1 { + margin: 0.25rem !important; + } + .m-xl-2 { + margin: 0.5rem !important; + } + .m-xl-3 { + margin: 1rem !important; + } + .m-xl-4 { + margin: 1.5rem !important; + } + .m-xl-5 { + margin: 3rem !important; + } + .m-xl-auto { + margin: auto !important; + } + .mx-xl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-xl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-xl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-xl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-xl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-xl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-xl-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-xl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-xl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-xl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-xl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-xl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-xl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-xl-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-xl-0 { + margin-top: 0 !important; + } + .mt-xl-1 { + margin-top: 0.25rem !important; + } + .mt-xl-2 { + margin-top: 0.5rem !important; + } + .mt-xl-3 { + margin-top: 1rem !important; + } + .mt-xl-4 { + margin-top: 1.5rem !important; + } + .mt-xl-5 { + margin-top: 3rem !important; + } + .mt-xl-auto { + margin-top: auto !important; + } + .me-xl-0 { + margin-right: 0 !important; + } + .me-xl-1 { + margin-right: 0.25rem !important; + } + .me-xl-2 { + margin-right: 0.5rem !important; + } + .me-xl-3 { + margin-right: 1rem !important; + } + .me-xl-4 { + margin-right: 1.5rem !important; + } + .me-xl-5 { + margin-right: 3rem !important; + } + .me-xl-auto { + margin-right: auto !important; + } + .mb-xl-0 { + margin-bottom: 0 !important; + } + .mb-xl-1 { + margin-bottom: 0.25rem !important; + } + .mb-xl-2 { + margin-bottom: 0.5rem !important; + } + .mb-xl-3 { + margin-bottom: 1rem !important; + } + .mb-xl-4 { + margin-bottom: 1.5rem !important; + } + .mb-xl-5 { + margin-bottom: 3rem !important; + } + .mb-xl-auto { + margin-bottom: auto !important; + } + .ms-xl-0 { + margin-left: 0 !important; + } + .ms-xl-1 { + margin-left: 0.25rem !important; + } + .ms-xl-2 { + margin-left: 0.5rem !important; + } + .ms-xl-3 { + margin-left: 1rem !important; + } + .ms-xl-4 { + margin-left: 1.5rem !important; + } + .ms-xl-5 { + margin-left: 3rem !important; + } + .ms-xl-auto { + margin-left: auto !important; + } + .p-xl-0 { + padding: 0 !important; + } + .p-xl-1 { + padding: 0.25rem !important; + } + .p-xl-2 { + padding: 0.5rem !important; + } + .p-xl-3 { + padding: 1rem !important; + } + .p-xl-4 { + padding: 1.5rem !important; + } + .p-xl-5 { + padding: 3rem !important; + } + .px-xl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-xl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-xl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-xl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-xl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-xl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-xl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-xl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-xl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-xl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-xl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-xl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-xl-0 { + padding-top: 0 !important; + } + .pt-xl-1 { + padding-top: 0.25rem !important; + } + .pt-xl-2 { + padding-top: 0.5rem !important; + } + .pt-xl-3 { + padding-top: 1rem !important; + } + .pt-xl-4 { + padding-top: 1.5rem !important; + } + .pt-xl-5 { + padding-top: 3rem !important; + } + .pe-xl-0 { + padding-right: 0 !important; + } + .pe-xl-1 { + padding-right: 0.25rem !important; + } + .pe-xl-2 { + padding-right: 0.5rem !important; + } + .pe-xl-3 { + padding-right: 1rem !important; + } + .pe-xl-4 { + padding-right: 1.5rem !important; + } + .pe-xl-5 { + padding-right: 3rem !important; + } + .pb-xl-0 { + padding-bottom: 0 !important; + } + .pb-xl-1 { + padding-bottom: 0.25rem !important; + } + .pb-xl-2 { + padding-bottom: 0.5rem !important; + } + .pb-xl-3 { + padding-bottom: 1rem !important; + } + .pb-xl-4 { + padding-bottom: 1.5rem !important; + } + .pb-xl-5 { + padding-bottom: 3rem !important; + } + .ps-xl-0 { + padding-left: 0 !important; + } + .ps-xl-1 { + padding-left: 0.25rem !important; + } + .ps-xl-2 { + padding-left: 0.5rem !important; + } + .ps-xl-3 { + padding-left: 1rem !important; + } + .ps-xl-4 { + padding-left: 1.5rem !important; + } + .ps-xl-5 { + padding-left: 3rem !important; + } +} +@media (min-width: 1400px) { + .d-xxl-inline { + display: inline !important; + } + .d-xxl-inline-block { + display: inline-block !important; + } + .d-xxl-block { + display: block !important; + } + .d-xxl-grid { + display: grid !important; + } + .d-xxl-table { + display: table !important; + } + .d-xxl-table-row { + display: table-row !important; + } + .d-xxl-table-cell { + display: table-cell !important; + } + .d-xxl-flex { + display: flex !important; + } + .d-xxl-inline-flex { + display: inline-flex !important; + } + .d-xxl-none { + display: none !important; + } + .flex-xxl-fill { + flex: 1 1 auto !important; + } + .flex-xxl-row { + flex-direction: row !important; + } + .flex-xxl-column { + flex-direction: column !important; + } + .flex-xxl-row-reverse { + flex-direction: row-reverse !important; + } + .flex-xxl-column-reverse { + flex-direction: column-reverse !important; + } + .flex-xxl-grow-0 { + flex-grow: 0 !important; + } + .flex-xxl-grow-1 { + flex-grow: 1 !important; + } + .flex-xxl-shrink-0 { + flex-shrink: 0 !important; + } + .flex-xxl-shrink-1 { + flex-shrink: 1 !important; + } + .flex-xxl-wrap { + flex-wrap: wrap !important; + } + .flex-xxl-nowrap { + flex-wrap: nowrap !important; + } + .flex-xxl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-xxl-start { + justify-content: flex-start !important; + } + .justify-content-xxl-end { + justify-content: flex-end !important; + } + .justify-content-xxl-center { + justify-content: center !important; + } + .justify-content-xxl-between { + justify-content: space-between !important; + } + .justify-content-xxl-around { + justify-content: space-around !important; + } + .justify-content-xxl-evenly { + justify-content: space-evenly !important; + } + .align-items-xxl-start { + align-items: flex-start !important; + } + .align-items-xxl-end { + align-items: flex-end !important; + } + .align-items-xxl-center { + align-items: center !important; + } + .align-items-xxl-baseline { + align-items: baseline !important; + } + .align-items-xxl-stretch { + align-items: stretch !important; + } + .align-content-xxl-start { + align-content: flex-start !important; + } + .align-content-xxl-end { + align-content: flex-end !important; + } + .align-content-xxl-center { + align-content: center !important; + } + .align-content-xxl-between { + align-content: space-between !important; + } + .align-content-xxl-around { + align-content: space-around !important; + } + .align-content-xxl-stretch { + align-content: stretch !important; + } + .align-self-xxl-auto { + align-self: auto !important; + } + .align-self-xxl-start { + align-self: flex-start !important; + } + .align-self-xxl-end { + align-self: flex-end !important; + } + .align-self-xxl-center { + align-self: center !important; + } + .align-self-xxl-baseline { + align-self: baseline !important; + } + .align-self-xxl-stretch { + align-self: stretch !important; + } + .order-xxl-first { + order: -1 !important; + } + .order-xxl-0 { + order: 0 !important; + } + .order-xxl-1 { + order: 1 !important; + } + .order-xxl-2 { + order: 2 !important; + } + .order-xxl-3 { + order: 3 !important; + } + .order-xxl-4 { + order: 4 !important; + } + .order-xxl-5 { + order: 5 !important; + } + .order-xxl-last { + order: 6 !important; + } + .m-xxl-0 { + margin: 0 !important; + } + .m-xxl-1 { + margin: 0.25rem !important; + } + .m-xxl-2 { + margin: 0.5rem !important; + } + .m-xxl-3 { + margin: 1rem !important; + } + .m-xxl-4 { + margin: 1.5rem !important; + } + .m-xxl-5 { + margin: 3rem !important; + } + .m-xxl-auto { + margin: auto !important; + } + .mx-xxl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-xxl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-xxl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-xxl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-xxl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-xxl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-xxl-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-xxl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-xxl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-xxl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-xxl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-xxl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-xxl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-xxl-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-xxl-0 { + margin-top: 0 !important; + } + .mt-xxl-1 { + margin-top: 0.25rem !important; + } + .mt-xxl-2 { + margin-top: 0.5rem !important; + } + .mt-xxl-3 { + margin-top: 1rem !important; + } + .mt-xxl-4 { + margin-top: 1.5rem !important; + } + .mt-xxl-5 { + margin-top: 3rem !important; + } + .mt-xxl-auto { + margin-top: auto !important; + } + .me-xxl-0 { + margin-right: 0 !important; + } + .me-xxl-1 { + margin-right: 0.25rem !important; + } + .me-xxl-2 { + margin-right: 0.5rem !important; + } + .me-xxl-3 { + margin-right: 1rem !important; + } + .me-xxl-4 { + margin-right: 1.5rem !important; + } + .me-xxl-5 { + margin-right: 3rem !important; + } + .me-xxl-auto { + margin-right: auto !important; + } + .mb-xxl-0 { + margin-bottom: 0 !important; + } + .mb-xxl-1 { + margin-bottom: 0.25rem !important; + } + .mb-xxl-2 { + margin-bottom: 0.5rem !important; + } + .mb-xxl-3 { + margin-bottom: 1rem !important; + } + .mb-xxl-4 { + margin-bottom: 1.5rem !important; + } + .mb-xxl-5 { + margin-bottom: 3rem !important; + } + .mb-xxl-auto { + margin-bottom: auto !important; + } + .ms-xxl-0 { + margin-left: 0 !important; + } + .ms-xxl-1 { + margin-left: 0.25rem !important; + } + .ms-xxl-2 { + margin-left: 0.5rem !important; + } + .ms-xxl-3 { + margin-left: 1rem !important; + } + .ms-xxl-4 { + margin-left: 1.5rem !important; + } + .ms-xxl-5 { + margin-left: 3rem !important; + } + .ms-xxl-auto { + margin-left: auto !important; + } + .p-xxl-0 { + padding: 0 !important; + } + .p-xxl-1 { + padding: 0.25rem !important; + } + .p-xxl-2 { + padding: 0.5rem !important; + } + .p-xxl-3 { + padding: 1rem !important; + } + .p-xxl-4 { + padding: 1.5rem !important; + } + .p-xxl-5 { + padding: 3rem !important; + } + .px-xxl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-xxl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-xxl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-xxl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-xxl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-xxl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-xxl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-xxl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-xxl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-xxl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-xxl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-xxl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-xxl-0 { + padding-top: 0 !important; + } + .pt-xxl-1 { + padding-top: 0.25rem !important; + } + .pt-xxl-2 { + padding-top: 0.5rem !important; + } + .pt-xxl-3 { + padding-top: 1rem !important; + } + .pt-xxl-4 { + padding-top: 1.5rem !important; + } + .pt-xxl-5 { + padding-top: 3rem !important; + } + .pe-xxl-0 { + padding-right: 0 !important; + } + .pe-xxl-1 { + padding-right: 0.25rem !important; + } + .pe-xxl-2 { + padding-right: 0.5rem !important; + } + .pe-xxl-3 { + padding-right: 1rem !important; + } + .pe-xxl-4 { + padding-right: 1.5rem !important; + } + .pe-xxl-5 { + padding-right: 3rem !important; + } + .pb-xxl-0 { + padding-bottom: 0 !important; + } + .pb-xxl-1 { + padding-bottom: 0.25rem !important; + } + .pb-xxl-2 { + padding-bottom: 0.5rem !important; + } + .pb-xxl-3 { + padding-bottom: 1rem !important; + } + .pb-xxl-4 { + padding-bottom: 1.5rem !important; + } + .pb-xxl-5 { + padding-bottom: 3rem !important; + } + .ps-xxl-0 { + padding-left: 0 !important; + } + .ps-xxl-1 { + padding-left: 0.25rem !important; + } + .ps-xxl-2 { + padding-left: 0.5rem !important; + } + .ps-xxl-3 { + padding-left: 1rem !important; + } + .ps-xxl-4 { + padding-left: 1.5rem !important; + } + .ps-xxl-5 { + padding-left: 3rem !important; + } +} +@media print { + .d-print-inline { + display: inline !important; + } + .d-print-inline-block { + display: inline-block !important; + } + .d-print-block { + display: block !important; + } + .d-print-grid { + display: grid !important; + } + .d-print-table { + display: table !important; + } + .d-print-table-row { + display: table-row !important; + } + .d-print-table-cell { + display: table-cell !important; + } + .d-print-flex { + display: flex !important; + } + .d-print-inline-flex { + display: inline-flex !important; + } + .d-print-none { + display: none !important; + } +} +.tooltip { + position: absolute; + z-index: 1080; + display: block; + margin: 0; + font-family: var(--bs-font-sans-serif); + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: 0.875rem; + word-wrap: break-word; + opacity: 0; + pointer-events: none; +} +.tooltip.show { + opacity: 0.9; +} +.tooltip .tooltip-arrow { + position: absolute; + display: block; + width: 0.8rem; + height: 0.4rem; +} +.tooltip .tooltip-arrow::before { + position: absolute; + content: ""; + border-color: transparent; + border-style: solid; +} +.bs-tooltip-top, +.bs-tooltip-auto[data-popper-placement^=top] { + padding: 0.4rem 0; +} +.bs-tooltip-top .tooltip-arrow, +.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow { + bottom: 0; +} +.bs-tooltip-top .tooltip-arrow::before, +.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before { + top: -1px; + border-width: 0.4rem 0.4rem 0; + border-top-color: #000; +} +.bs-tooltip-end, +.bs-tooltip-auto[data-popper-placement^=right] { + padding: 0 0.4rem; +} +.bs-tooltip-end .tooltip-arrow, +.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow { + left: 0; + width: 0.4rem; + height: 0.8rem; +} +.bs-tooltip-end .tooltip-arrow::before, +.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before { + right: -1px; + border-width: 0.4rem 0.4rem 0.4rem 0; + border-right-color: #000; +} +.bs-tooltip-bottom, +.bs-tooltip-auto[data-popper-placement^=bottom] { + padding: 0.4rem 0; +} +.bs-tooltip-bottom .tooltip-arrow, +.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow { + top: 0; +} +.bs-tooltip-bottom .tooltip-arrow::before, +.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before { + bottom: -1px; + border-width: 0 0.4rem 0.4rem; + border-bottom-color: #000; +} +.bs-tooltip-start, +.bs-tooltip-auto[data-popper-placement^=left] { + padding: 0 0.4rem; +} +.bs-tooltip-start .tooltip-arrow, +.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow { + right: 0; + width: 0.4rem; + height: 0.8rem; +} +.bs-tooltip-start .tooltip-arrow::before, +.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before { + left: -1px; + border-width: 0.4rem 0 0.4rem 0.4rem; + border-left-color: #000; +} +.tooltip-inner { + max-width: 200px; + padding: 0.25rem 0.5rem; + color: #fff; + text-align: center; + background-color: #000; + border-radius: 0.25rem; + -webkit-user-select: none; + user-select: none; + pointer-events: none; +} +.popover { + position: absolute; + top: 0; + left: 0 /* rtl:ignore */; + z-index: 1070; + display: block; + max-width: 276px; + font-family: var(--bs-font-sans-serif); + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: 0.875rem; + word-wrap: break-word; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 0.3rem; +} +.popover .popover-arrow { + position: absolute; + display: block; + width: 1rem; + height: 0.5rem; +} +.popover .popover-arrow::before, +.popover .popover-arrow::after { + position: absolute; + display: block; + content: ""; + border-color: transparent; + border-style: solid; +} +.bs-popover-top > .popover-arrow, +.bs-popover-auto[data-popper-placement^=top] > .popover-arrow { + bottom: calc(-0.5rem - 1px); +} +.bs-popover-top > .popover-arrow::before, +.bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before { + bottom: 0; + border-width: 0.5rem 0.5rem 0; + border-top-color: rgba(0, 0, 0, 0.25); +} +.bs-popover-top > .popover-arrow::after, +.bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after { + bottom: 1px; + border-width: 0.5rem 0.5rem 0; + border-top-color: #fff; +} +.bs-popover-end > .popover-arrow, +.bs-popover-auto[data-popper-placement^=right] > .popover-arrow { + left: calc(-0.5rem - 1px); + width: 0.5rem; + height: 1rem; +} +.bs-popover-end > .popover-arrow::before, +.bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before { + left: 0; + border-width: 0.5rem 0.5rem 0.5rem 0; + border-right-color: rgba(0, 0, 0, 0.25); +} +.bs-popover-end > .popover-arrow::after, +.bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after { + left: 1px; + border-width: 0.5rem 0.5rem 0.5rem 0; + border-right-color: #fff; +} +.bs-popover-bottom > .popover-arrow, +.bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow { + top: calc(-0.5rem - 1px); +} +.bs-popover-bottom > .popover-arrow::before, +.bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before { + top: 0; + border-width: 0 0.5rem 0.5rem 0.5rem; + border-bottom-color: rgba(0, 0, 0, 0.25); +} +.bs-popover-bottom > .popover-arrow::after, +.bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after { + top: 1px; + border-width: 0 0.5rem 0.5rem 0.5rem; + border-bottom-color: #fff; +} +.bs-popover-bottom .popover-header::before, +.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before { + position: absolute; + top: 0; + left: 50%; + display: block; + width: 1rem; + margin-left: -0.5rem; + content: ""; + border-bottom: 1px solid #f0f0f0; +} +.bs-popover-start > .popover-arrow, +.bs-popover-auto[data-popper-placement^=left] > .popover-arrow { + right: calc(-0.5rem - 1px); + width: 0.5rem; + height: 1rem; +} +.bs-popover-start > .popover-arrow::before, +.bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before { + right: 0; + border-width: 0.5rem 0 0.5rem 0.5rem; + border-left-color: rgba(0, 0, 0, 0.25); +} +.bs-popover-start > .popover-arrow::after, +.bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after { + right: 1px; + border-width: 0.5rem 0 0.5rem 0.5rem; + border-left-color: #fff; +} +.popover-header { + padding: 0.5rem 1rem; + margin-bottom: 0; + font-size: 1rem; + background-color: #f0f0f0; + border-bottom: 1px solid rgba(0, 0, 0, 0.2); + border-top-left-radius: calc(0.3rem - 1px); + border-top-right-radius: calc(0.3rem - 1px); +} +.popover-header:empty { + display: none; +} +.popover-body { + padding: 1rem 1rem; + color: #212529; +} diff --git a/src/renderer/less/bootstrap.less b/src/renderer/less/bootstrap.less index 6dfc7821..e2ec3b64 100644 --- a/src/renderer/less/bootstrap.less +++ b/src/renderer/less/bootstrap.less @@ -1,416 +1,1359 @@ -.modal { - position: fixed; - top: 0; - left: 0; - z-index: 1055; - display: none; - width: 100%; - height: 100%; - overflow-x: hidden; - overflow-y: auto; - outline: 0; - user-select: none; +// Dropdown - - .close { - width: 50px; - height: 42px; - background-image: var(--gfx-closeBtn); - background-position: center; - background-repeat: no-repeat; - -webkit-app-region: no-drag; - appearance: none; - border: 0; - background-color: transparent; - position: absolute; - top: 0; - right: 0; - - &:hover { - background-color: rgb(196, 43, 28) - } - } +.dropup, +.dropend, +.dropdown, +.dropstart { + position: relative; } -.modal-dialog { - position: relative; - width: auto; - margin: 0.5rem; - pointer-events: none; - color: var(--textColor); +.dropdown-toggle { + white-space: nowrap; +} +.dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid; + border-right: 0.3em solid transparent; + border-bottom: 0; + border-left: 0.3em solid transparent; +} +.dropdown-toggle:empty::after { + margin-left: 0; } -.modal.fade .modal-dialog { - transition: transform 0.1s var(--appleEase), opacity 0.1s var(--appleEase); - transform: scale(0.9); - opacity: 0; +.dropdown-menu { + position: absolute; + z-index: 1000; + display: none; + min-width: 10rem; + padding: 0.5rem 0; + margin: 0; + font-size: 1rem; + color: #212529; + text-align: left; + list-style: none; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 0.25rem; +} +.dropdown-menu[data-bs-popper] { + top: 100%; + left: 0; + margin-top: 0.125rem; } -@media (prefers-reduced-motion: reduce) { - .modal.fade .modal-dialog { - transition: none; - } +.dropdown-menu-start { + --bs-position: start; +} +.dropdown-menu-start[data-bs-popper] { + right: auto; + left: 0; } -.modal.show .modal-dialog { - transform: none; - opacity: 1; +.dropdown-menu-end { + --bs-position: end; } - -.modal.modal-static .modal-dialog { - transform: scale(1.02); -} - -.modal-dialog-scrollable { - height: calc(100% - 1rem); -} - -.modal-dialog-scrollable .modal-content { - max-height: 100%; - overflow: hidden; -} - -.modal-dialog-scrollable .modal-body { - overflow-y: auto; -} - -.modal-dialog-centered { - display: flex; - align-items: center; - min-height: calc(100% - 1rem); -} - -.modal-content { - position: relative; - display: flex; - flex-direction: column; - width: 100%; - pointer-events: auto; - background-color: var(--modalBackground); - background-clip: padding-box; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 0.3rem; - outline: 0; - box-shadow: var(--ciderShadow-Generic); - overflow: hidden; -} - -.modal-backdrop { - position: fixed; - top: 0; - left: 0; - z-index: 1050; - width: 100vw; - height: 100vh; - background-color: #000; -} - -.modal-backdrop.fade { - opacity: 0; -} - -.modal-backdrop.show { - opacity: 0.5; -} - -.modal-header { - display: flex; - flex-shrink: 0; - align-items: center; - justify-content: space-between; - padding: 1rem 1rem; - border-top-left-radius: calc(0.3rem - 1px); - border-top-right-radius: calc(0.3rem - 1px); -} - -.modal-header .btn-close { - padding: 0.5rem 0.5rem; - margin: -0.5rem -0.5rem -0.5rem auto; -} - -.modal-title { - line-height: 1.5; - margin: 0; -} - -.modal-body { - position: relative; - flex: 1 1 auto; - padding: 3rem 1rem 1rem 1rem; - font-size: 0.9em -} - -.modal-footer { - display: flex; - flex-wrap: wrap; - flex-shrink: 0; - align-items: center; - justify-content: flex-end; - padding: 0.75rem; - border-bottom-right-radius: calc(0.3rem - 1px); - border-bottom-left-radius: calc(0.3rem - 1px); -} - -.modal-footer>* { - margin: 0.25rem; +.dropdown-menu-end[data-bs-popper] { + right: 0; + left: auto; } @media (min-width: 576px) { - .modal-dialog { - max-width: 500px; - margin: 1.75rem auto; - } + .dropdown-menu-sm-start { + --bs-position: start; + } + .dropdown-menu-sm-start[data-bs-popper] { + right: auto; + left: 0; + } - .modal-dialog-scrollable { - height: calc(100% - 3.5rem); - } + .dropdown-menu-sm-end { + --bs-position: end; + } + .dropdown-menu-sm-end[data-bs-popper] { + right: 0; + left: auto; + } +} +@media (min-width: 768px) { + .dropdown-menu-md-start { + --bs-position: start; + } + .dropdown-menu-md-start[data-bs-popper] { + right: auto; + left: 0; + } - .modal-dialog-centered { - min-height: calc(100% - 3.5rem); - } + .dropdown-menu-md-end { + --bs-position: end; + } + .dropdown-menu-md-end[data-bs-popper] { + right: 0; + left: auto; + } +} +@media (min-width: 992px) { + .dropdown-menu-lg-start { + --bs-position: start; + } + .dropdown-menu-lg-start[data-bs-popper] { + right: auto; + left: 0; + } - .modal-sm { - max-width: 300px; + .dropdown-menu-lg-end { + --bs-position: end; + } + .dropdown-menu-lg-end[data-bs-popper] { + right: 0; + left: auto; + } +} +@media (min-width: 1200px) { + .dropdown-menu-xl-start { + --bs-position: start; + } + .dropdown-menu-xl-start[data-bs-popper] { + right: auto; + left: 0; + } + + .dropdown-menu-xl-end { + --bs-position: end; + } + .dropdown-menu-xl-end[data-bs-popper] { + right: 0; + left: auto; + } +} +@media (min-width: 1400px) { + .dropdown-menu-xxl-start { + --bs-position: start; + } + .dropdown-menu-xxl-start[data-bs-popper] { + right: auto; + left: 0; + } + + .dropdown-menu-xxl-end { + --bs-position: end; + } + .dropdown-menu-xxl-end[data-bs-popper] { + right: 0; + left: auto; + } +} +.dropup .dropdown-menu[data-bs-popper] { + top: auto; + bottom: 100%; + margin-top: 0; + margin-bottom: 0.125rem; +} +.dropup .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0; + border-right: 0.3em solid transparent; + border-bottom: 0.3em solid; + border-left: 0.3em solid transparent; +} +.dropup .dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropend .dropdown-menu[data-bs-popper] { + top: 0; + right: auto; + left: 100%; + margin-top: 0; + margin-left: 0.125rem; +} +.dropend .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0; + border-bottom: 0.3em solid transparent; + border-left: 0.3em solid; +} +.dropend .dropdown-toggle:empty::after { + margin-left: 0; +} +.dropend .dropdown-toggle::after { + vertical-align: 0; +} + +.dropstart .dropdown-menu[data-bs-popper] { + top: 0; + right: 100%; + left: auto; + margin-top: 0; + margin-right: 0.125rem; +} +.dropstart .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; +} +.dropstart .dropdown-toggle::after { + display: none; +} +.dropstart .dropdown-toggle::before { + display: inline-block; + margin-right: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0.3em solid; + border-bottom: 0.3em solid transparent; +} +.dropstart .dropdown-toggle:empty::after { + margin-left: 0; +} +.dropstart .dropdown-toggle::before { + vertical-align: 0; +} + +.dropdown-divider { + height: 0; + margin: 0.5rem 0; + overflow: hidden; + border-top: 1px solid rgba(0, 0, 0, 0.15); +} + +.dropdown-item { + display: block; + width: 100%; + padding: 0.25rem 1rem; + clear: both; + font-weight: 400; + color: #212529; + text-align: inherit; + text-decoration: none; + white-space: nowrap; + background-color: transparent; + border: 0; +} +.dropdown-item:hover, .dropdown-item:focus { + color: #1e2125; + background-color: #e9ecef; +} +.dropdown-item.active, .dropdown-item:active { + color: #fff; + text-decoration: none; + background-color: #0d6efd; +} +.dropdown-item.disabled, .dropdown-item:disabled { + color: #adb5bd; + pointer-events: none; + background-color: transparent; +} + +.dropdown-menu.show { + display: block; +} + +.dropdown-header { + display: block; + padding: 0.5rem 1rem; + margin-bottom: 0; + font-size: 0.875rem; + color: #6c757d; + white-space: nowrap; +} + +.dropdown-item-text { + display: block; + padding: 0.25rem 1rem; + color: #212529; +} + +.dropdown-menu-dark { + color: #dee2e6; + background-color: #343a40; + border-color: rgba(0, 0, 0, 0.15); +} +.dropdown-menu-dark .dropdown-item { + color: #dee2e6; +} +.dropdown-menu-dark .dropdown-item:hover, .dropdown-menu-dark .dropdown-item:focus { + color: #fff; + background-color: rgba(255, 255, 255, 0.15); +} +.dropdown-menu-dark .dropdown-item.active, .dropdown-menu-dark .dropdown-item:active { + color: #fff; + background-color: #0d6efd; +} +.dropdown-menu-dark .dropdown-item.disabled, .dropdown-menu-dark .dropdown-item:disabled { + color: #adb5bd; +} +.dropdown-menu-dark .dropdown-divider { + border-color: rgba(0, 0, 0, 0.15); +} +.dropdown-menu-dark .dropdown-item-text { + color: #dee2e6; +} +.dropdown-menu-dark .dropdown-header { + color: #adb5bd; +} + + +// List Group +.list-group { + display : flex; + flex-direction: column; + padding-left : 0; + margin-bottom : 0; + border-radius : 0.25rem; +} + +.list-group-numbered { + list-style-type: none; + counter-reset : section; +} + +.list-group-numbered>li::before { + content : counters(section, ".") ". "; + counter-increment: section; +} + +.list-group-item-action { + width : 100%; + color : #495057; + text-align: inherit; +} + +.list-group-item-action:hover, +.list-group-item-action:focus { + z-index : 1; + color : #495057; + text-decoration : none; + background-color: #f8f9fa; +} + +.list-group-item-action:active { + color : #212529; + background-color: #e9ecef; +} + +.list-group-item { + position : relative; + display : block; + padding : 0.5rem 1rem; + color : #212529; + text-decoration : none; + background-color: #fff; + border : 1px solid rgba(0, 0, 0, 0.125); +} + +.list-group-item:first-child { + border-top-left-radius : inherit; + border-top-right-radius: inherit; +} + +.list-group-item:last-child { + border-bottom-right-radius: inherit; + border-bottom-left-radius : inherit; +} + +.list-group-item.disabled, +.list-group-item:disabled { + color : #6c757d; + pointer-events : none; + background-color: #fff; +} + +.list-group-item.active { + z-index : 2; + color : #fff; + background-color: #0d6efd; + border-color : #0d6efd; +} + +.list-group-item+.list-group-item { + border-top-width: 0; +} + +.list-group-item+.list-group-item.active { + margin-top : -1px; + border-top-width: 1px; +} + +.list-group-horizontal { + flex-direction: row; +} + +.list-group-horizontal>.list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius : 0; +} + +.list-group-horizontal>.list-group-item:last-child { + border-top-right-radius : 0.25rem; + border-bottom-left-radius: 0; +} + +.list-group-horizontal>.list-group-item.active { + margin-top: 0; +} + +.list-group-horizontal>.list-group-item+.list-group-item { + border-top-width : 1px; + border-left-width: 0; +} + +.list-group-horizontal>.list-group-item+.list-group-item.active { + margin-left : -1px; + border-left-width: 1px; +} + +@media (min-width: 576px) { + .list-group-horizontal-sm { + flex-direction: row; + } + + .list-group-horizontal-sm>.list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius : 0; + } + + .list-group-horizontal-sm>.list-group-item:last-child { + border-top-right-radius : 0.25rem; + border-bottom-left-radius: 0; + } + + .list-group-horizontal-sm>.list-group-item.active { + margin-top: 0; + } + + .list-group-horizontal-sm>.list-group-item+.list-group-item { + border-top-width : 1px; + border-left-width: 0; + } + + .list-group-horizontal-sm>.list-group-item+.list-group-item.active { + margin-left : -1px; + border-left-width: 1px; + } +} + +@media (min-width: 768px) { + .list-group-horizontal-md { + flex-direction: row; + } + + .list-group-horizontal-md>.list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius : 0; + } + + .list-group-horizontal-md>.list-group-item:last-child { + border-top-right-radius : 0.25rem; + border-bottom-left-radius: 0; + } + + .list-group-horizontal-md>.list-group-item.active { + margin-top: 0; + } + + .list-group-horizontal-md>.list-group-item+.list-group-item { + border-top-width : 1px; + border-left-width: 0; + } + + .list-group-horizontal-md>.list-group-item+.list-group-item.active { + margin-left : -1px; + border-left-width: 1px; + } +} + +@media (min-width: 992px) { + .list-group-horizontal-lg { + flex-direction: row; + } + + .list-group-horizontal-lg>.list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius : 0; + } + + .list-group-horizontal-lg>.list-group-item:last-child { + border-top-right-radius : 0.25rem; + border-bottom-left-radius: 0; + } + + .list-group-horizontal-lg>.list-group-item.active { + margin-top: 0; + } + + .list-group-horizontal-lg>.list-group-item+.list-group-item { + border-top-width : 1px; + border-left-width: 0; + } + + .list-group-horizontal-lg>.list-group-item+.list-group-item.active { + margin-left : -1px; + border-left-width: 1px; + } +} + +@media (min-width: 1200px) { + .list-group-horizontal-xl { + flex-direction: row; + } + + .list-group-horizontal-xl>.list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius : 0; + } + + .list-group-horizontal-xl>.list-group-item:last-child { + border-top-right-radius : 0.25rem; + border-bottom-left-radius: 0; + } + + .list-group-horizontal-xl>.list-group-item.active { + margin-top: 0; + } + + .list-group-horizontal-xl>.list-group-item+.list-group-item { + border-top-width : 1px; + border-left-width: 0; + } + + .list-group-horizontal-xl>.list-group-item+.list-group-item.active { + margin-left : -1px; + border-left-width: 1px; + } +} + +@media (min-width: 1400px) { + .list-group-horizontal-xxl { + flex-direction: row; + } + + .list-group-horizontal-xxl>.list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius : 0; + } + + .list-group-horizontal-xxl>.list-group-item:last-child { + border-top-right-radius : 0.25rem; + border-bottom-left-radius: 0; + } + + .list-group-horizontal-xxl>.list-group-item.active { + margin-top: 0; + } + + .list-group-horizontal-xxl>.list-group-item+.list-group-item { + border-top-width : 1px; + border-left-width: 0; + } + + .list-group-horizontal-xxl>.list-group-item+.list-group-item.active { + margin-left : -1px; + border-left-width: 1px; + } +} + +.list-group-flush { + border-radius: 0; +} + +.list-group-flush>.list-group-item { + border-width: 0 0 1px; +} + +.list-group-flush>.list-group-item:last-child { + border-bottom-width: 0; +} + +.list-group-item-primary { + color : #084298; + background-color: #cfe2ff; +} + +.list-group-item-primary.list-group-item-action:hover, +.list-group-item-primary.list-group-item-action:focus { + color : #084298; + background-color: #bacbe6; +} + +.list-group-item-primary.list-group-item-action.active { + color : #fff; + background-color: #084298; + border-color : #084298; +} + +.list-group-item-secondary { + color : #41464b; + background-color: #e2e3e5; +} + +.list-group-item-secondary.list-group-item-action:hover, +.list-group-item-secondary.list-group-item-action:focus { + color : #41464b; + background-color: #cbccce; +} + +.list-group-item-secondary.list-group-item-action.active { + color : #fff; + background-color: #41464b; + border-color : #41464b; +} + +.list-group-item-success { + color : #0f5132; + background-color: #d1e7dd; +} + +.list-group-item-success.list-group-item-action:hover, +.list-group-item-success.list-group-item-action:focus { + color : #0f5132; + background-color: #bcd0c7; +} + +.list-group-item-success.list-group-item-action.active { + color : #fff; + background-color: #0f5132; + border-color : #0f5132; +} + +.list-group-item-info { + color : #055160; + background-color: #cff4fc; +} + +.list-group-item-info.list-group-item-action:hover, +.list-group-item-info.list-group-item-action:focus { + color : #055160; + background-color: #badce3; +} + +.list-group-item-info.list-group-item-action.active { + color : #fff; + background-color: #055160; + border-color : #055160; +} + +.list-group-item-warning { + color : #664d03; + background-color: #fff3cd; +} + +.list-group-item-warning.list-group-item-action:hover, +.list-group-item-warning.list-group-item-action:focus { + color : #664d03; + background-color: #e6dbb9; +} + +.list-group-item-warning.list-group-item-action.active { + color : #fff; + background-color: #664d03; + border-color : #664d03; +} + +.list-group-item-danger { + color : #842029; + background-color: #f8d7da; +} + +.list-group-item-danger.list-group-item-action:hover, +.list-group-item-danger.list-group-item-action:focus { + color : #842029; + background-color: #dfc2c4; +} + +.list-group-item-danger.list-group-item-action.active { + color : #fff; + background-color: #842029; + border-color : #842029; +} + +.list-group-item-light { + color : #636464; + background-color: #fefefe; +} + +.list-group-item-light.list-group-item-action:hover, +.list-group-item-light.list-group-item-action:focus { + color : #636464; + background-color: #e5e5e5; +} + +.list-group-item-light.list-group-item-action.active { + color : #fff; + background-color: #636464; + border-color : #636464; +} + +.list-group-item-dark { + color : var(--textColor); + background-color: #333; +} + +.list-group-item-dark.list-group-item-action:hover, +.list-group-item-dark.list-group-item-action:focus { + color : #141619; + background-color: #bebebf; +} + +.list-group-item-dark.list-group-item-action.active { + color : #fff; + background-color: #141619; + border-color : #141619; +} + +// Toasts + +.toast { + width: 350px; + max-width: 100%; + font-size: 0.875rem; + pointer-events: auto; + background-color: rgba(255, 255, 255, 0.85); + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.1); + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + border-radius: 0.25rem; +} +.toast.showing { + opacity: 0; +} +.toast:not(.show) { + display: none; +} + +.toast-container { + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; + max-width: 100%; + pointer-events: none; +} +.toast-container > :not(:last-child) { + margin-bottom: 0.75rem; +} + +.toast-header { + display: flex; + align-items: center; + padding: 0.5rem 0.75rem; + color: #6c757d; + background-color: rgba(255, 255, 255, 0.85); + background-clip: padding-box; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); +} +.toast-header .btn-close { + margin-right: -0.375rem; + margin-left: 0.75rem; +} + +.toast-body { + padding: 0.75rem; + word-wrap: break-word; +} + +// Card +.card { + position : relative; + display : flex; + flex-direction : column; + min-width : 0; + word-wrap : break-word; + background-color: #333; + background-clip : border-box; + border : 1px solid rgba(0, 0, 0, 0.125); + border-radius : 0.25rem; +} + +.card>hr { + margin-right: 0; + margin-left : 0; +} + +.card>.list-group { + border-top : inherit; + border-bottom: inherit; +} + +.card>.list-group:first-child { + border-top-width : 0; + border-top-left-radius : calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); +} + +.card>.list-group:last-child { + border-bottom-width : 0; + border-bottom-right-radius: calc(0.25rem - 1px); + border-bottom-left-radius : calc(0.25rem - 1px); +} + +.card>.card-header+.list-group, +.card>.list-group+.card-footer { + border-top: 0; +} + +.card-body { + flex : 1 1 auto; + padding: 1rem 1rem; +} + +.card-title { + margin-bottom: 0.5rem; +} + +.card-subtitle { + margin-top : -0.25rem; + margin-bottom: 0; +} + +.card-text:last-child { + margin-bottom: 0; +} + +.card-link+.card-link { + margin-left: 1rem; +} + +.card-header { + padding : 0.5rem 1rem; + margin-bottom : 0; + background-color: rgba(0, 0, 0, 0.03); + border-bottom : 1px solid rgba(0, 0, 0, 0.125); +} + +.card-header:first-child { + border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; +} + +.card-footer { + padding : 0.5rem 1rem; + background-color: rgba(0, 0, 0, 0.03); + border-top : 1px solid rgba(0, 0, 0, 0.125); +} + +.card-footer:last-child { + border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px); +} + +.card-header-tabs { + margin-right : -0.5rem; + margin-bottom: -0.5rem; + margin-left : -0.5rem; + border-bottom: 0; +} + +.card-header-pills { + margin-right: -0.5rem; + margin-left : -0.5rem; +} + +.card-img-overlay { + position : absolute; + top : 0; + right : 0; + bottom : 0; + left : 0; + padding : 1rem; + border-radius: calc(0.25rem - 1px); +} + +.card-img, +.card-img-top, +.card-img-bottom { + width: 100%; +} + +.card-img, +.card-img-top { + border-top-left-radius : calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); +} + +.card-img, +.card-img-bottom { + border-bottom-right-radius: calc(0.25rem - 1px); + border-bottom-left-radius : calc(0.25rem - 1px); +} + +.card-group>.card { + margin-bottom: 0.75rem; +} + +@media (min-width: 576px) { + .card-group { + display : flex; + flex-flow: row wrap; + } + + .card-group>.card { + flex : 1 0 0%; + margin-bottom: 0; + } + + .card-group>.card+.card { + margin-left: 0; + border-left: 0; + } + + .card-group>.card:not(:last-child) { + border-top-right-radius : 0; + border-bottom-right-radius: 0; + } + + .card-group>.card:not(:last-child) .card-img-top, + .card-group>.card:not(:last-child) .card-header { + border-top-right-radius: 0; + } + + .card-group>.card:not(:last-child) .card-img-bottom, + .card-group>.card:not(:last-child) .card-footer { + border-bottom-right-radius: 0; + } + + .card-group>.card:not(:first-child) { + border-top-left-radius : 0; + border-bottom-left-radius: 0; + } + + .card-group>.card:not(:first-child) .card-img-top, + .card-group>.card:not(:first-child) .card-header { + border-top-left-radius: 0; + } + + .card-group>.card:not(:first-child) .card-img-bottom, + .card-group>.card:not(:first-child) .card-footer { + border-bottom-left-radius: 0; + } +} + + +.modal { + position : fixed; + top : 0; + left : 0; + z-index : 1055; + display : none; + width : 100%; + height : 100%; + overflow-x : hidden; + overflow-y : auto; + outline : 0; + user-select: none; + + + .close { + width : 50px; + height : 42px; + background-image : var(--gfx-closeBtn); + background-position: center; + background-repeat : no-repeat; + -webkit-app-region : no-drag; + appearance : none; + border : 0; + background-color : transparent; + position : absolute; + top : 0; + right : 0; + + &:hover { + background-color: rgb(196, 43, 28) } + } +} + +.modal-dialog { + position : relative; + width : auto; + margin : 0.5rem; + pointer-events: none; + color : var(--textColor); +} + +.modal.fade .modal-dialog { + transition: transform 0.1s var(--appleEase), opacity 0.1s var(--appleEase); + transform : scale(0.9); + opacity : 0; +} + +@media (prefers-reduced-motion: reduce) { + .modal.fade .modal-dialog { + transition: none; + } +} + +.modal.show .modal-dialog { + transform: none; + opacity : 1; +} + +.modal.modal-static .modal-dialog { + transform: scale(1.02); +} + +.modal-dialog-scrollable { + height: calc(100% - 1rem); +} + +.modal-dialog-scrollable .modal-content { + max-height: 100%; + overflow : hidden; +} + +.modal-dialog-scrollable .modal-body { + overflow-y: auto; +} + +.modal-dialog-centered { + display : flex; + align-items: center; + min-height : calc(100% - 1rem); +} + +.modal-content { + position : relative; + display : flex; + flex-direction : column; + width : 100%; + pointer-events : auto; + background-color: var(--modalBackground); + background-clip : padding-box; + border : 1px solid rgba(0, 0, 0, 0.2); + border-radius : 0.3rem; + outline : 0; + box-shadow : var(--ciderShadow-Generic); + overflow : hidden; +} + +.modal-backdrop { + position : fixed; + top : 0; + left : 0; + z-index : 1050; + width : 100vw; + height : 100vh; + background-color: #000; +} + +.modal-backdrop.fade { + opacity: 0; +} + +.modal-backdrop.show { + opacity: 0.5; +} + +.modal-header { + display : flex; + flex-shrink : 0; + align-items : center; + justify-content : space-between; + padding : 1rem 1rem; + border-top-left-radius : calc(0.3rem - 1px); + border-top-right-radius: calc(0.3rem - 1px); +} + +.modal-header .btn-close { + padding: 0.5rem 0.5rem; + margin : -0.5rem -0.5rem -0.5rem auto; +} + +.modal-title { + line-height: 1.5; + margin : 0; +} + +.modal-body { + position : relative; + flex : 1 1 auto; + padding : 3rem 1rem 1rem 1rem; + font-size: 0.9em +} + +.modal-footer { + display : flex; + flex-wrap : wrap; + flex-shrink : 0; + align-items : center; + justify-content : flex-end; + padding : 0.75rem; + border-bottom-right-radius: calc(0.3rem - 1px); + border-bottom-left-radius : calc(0.3rem - 1px); +} + +.modal-footer>* { + margin: 0.25rem; +} + +@media (min-width: 576px) { + .modal-dialog { + max-width: 500px; + margin : 1.75rem auto; + } + + .modal-dialog-scrollable { + height: calc(100% - 3.5rem); + } + + .modal-dialog-centered { + min-height: calc(100% - 3.5rem); + } + + .modal-sm { + max-width: 300px; + } } @media (min-width: 992px) { - .modal-lg, - .modal-xl { - max-width: 800px; - } + .modal-lg, + .modal-xl { + max-width: 800px; + } } @media (min-width: 1200px) { - .modal-xl { - max-width: 1140px; - } + .modal-xl { + max-width: 1140px; + } } .modal-fullscreen { - width: 100vw; - max-width: none; - height: 100%; - margin: 0; + width : 100vw; + max-width: none; + height : 100%; + margin : 0; } .modal-fullscreen .modal-content { - height: 100%; - border: 0; - border-radius: 0; + height : 100%; + border : 0; + border-radius: 0; } .modal-fullscreen .modal-header { - border-radius: 0; + border-radius: 0; } .modal-fullscreen .modal-body { - overflow-y: auto; + overflow-y: auto; } .modal-fullscreen .modal-footer { - border-radius: 0; + border-radius: 0; } @media (max-width: 575.98px) { - .modal-fullscreen-sm-down { - width: 100vw; - max-width: none; - height: 100%; - margin: 0; - } + .modal-fullscreen-sm-down { + width : 100vw; + max-width: none; + height : 100%; + margin : 0; + } - .modal-fullscreen-sm-down .modal-content { - height: 100%; - border: 0; - border-radius: 0; - } + .modal-fullscreen-sm-down .modal-content { + height : 100%; + border : 0; + border-radius: 0; + } - .modal-fullscreen-sm-down .modal-header { - border-radius: 0; - } + .modal-fullscreen-sm-down .modal-header { + border-radius: 0; + } - .modal-fullscreen-sm-down .modal-body { - overflow-y: auto; - } + .modal-fullscreen-sm-down .modal-body { + overflow-y: auto; + } - .modal-fullscreen-sm-down .modal-footer { - border-radius: 0; - } + .modal-fullscreen-sm-down .modal-footer { + border-radius: 0; + } } @media (max-width: 767.98px) { - .modal-fullscreen-md-down { - width: 100vw; - max-width: none; - height: 100%; - margin: 0; - } + .modal-fullscreen-md-down { + width : 100vw; + max-width: none; + height : 100%; + margin : 0; + } - .modal-fullscreen-md-down .modal-content { - height: 100%; - border: 0; - border-radius: 0; - } + .modal-fullscreen-md-down .modal-content { + height : 100%; + border : 0; + border-radius: 0; + } - .modal-fullscreen-md-down .modal-header { - border-radius: 0; - } + .modal-fullscreen-md-down .modal-header { + border-radius: 0; + } - .modal-fullscreen-md-down .modal-body { - overflow-y: auto; - } + .modal-fullscreen-md-down .modal-body { + overflow-y: auto; + } - .modal-fullscreen-md-down .modal-footer { - border-radius: 0; - } + .modal-fullscreen-md-down .modal-footer { + border-radius: 0; + } } @media (max-width: 991.98px) { - .modal-fullscreen-lg-down { - width: 100vw; - max-width: none; - height: 100%; - margin: 0; - } + .modal-fullscreen-lg-down { + width : 100vw; + max-width: none; + height : 100%; + margin : 0; + } - .modal-fullscreen-lg-down .modal-content { - height: 100%; - border: 0; - border-radius: 0; - } + .modal-fullscreen-lg-down .modal-content { + height : 100%; + border : 0; + border-radius: 0; + } - .modal-fullscreen-lg-down .modal-header { - border-radius: 0; - } + .modal-fullscreen-lg-down .modal-header { + border-radius: 0; + } - .modal-fullscreen-lg-down .modal-body { - overflow-y: auto; - } + .modal-fullscreen-lg-down .modal-body { + overflow-y: auto; + } - .modal-fullscreen-lg-down .modal-footer { - border-radius: 0; - } + .modal-fullscreen-lg-down .modal-footer { + border-radius: 0; + } } @media (max-width: 1199.98px) { - .modal-fullscreen-xl-down { - width: 100vw; - max-width: none; - height: 100%; - margin: 0; - } + .modal-fullscreen-xl-down { + width : 100vw; + max-width: none; + height : 100%; + margin : 0; + } - .modal-fullscreen-xl-down .modal-content { - height: 100%; - border: 0; - border-radius: 0; - } + .modal-fullscreen-xl-down .modal-content { + height : 100%; + border : 0; + border-radius: 0; + } - .modal-fullscreen-xl-down .modal-header { - border-radius: 0; - } + .modal-fullscreen-xl-down .modal-header { + border-radius: 0; + } - .modal-fullscreen-xl-down .modal-body { - overflow-y: auto; - } + .modal-fullscreen-xl-down .modal-body { + overflow-y: auto; + } - .modal-fullscreen-xl-down .modal-footer { - border-radius: 0; - } + .modal-fullscreen-xl-down .modal-footer { + border-radius: 0; + } } @media (max-width: 1399.98px) { - .modal-fullscreen-xxl-down { - width: 100vw; - max-width: none; - height: 100%; - margin: 0; - } + .modal-fullscreen-xxl-down { + width : 100vw; + max-width: none; + height : 100%; + margin : 0; + } - .modal-fullscreen-xxl-down .modal-content { - height: 100%; - border: 0; - border-radius: 0; - } + .modal-fullscreen-xxl-down .modal-content { + height : 100%; + border : 0; + border-radius: 0; + } - .modal-fullscreen-xxl-down .modal-header { - border-radius: 0; - } + .modal-fullscreen-xxl-down .modal-header { + border-radius: 0; + } - .modal-fullscreen-xxl-down .modal-body { - overflow-y: auto; - } + .modal-fullscreen-xxl-down .modal-body { + overflow-y: auto; + } - .modal-fullscreen-xxl-down .modal-footer { - border-radius: 0; - } + .modal-fullscreen-xxl-down .modal-footer { + border-radius: 0; + } } .btn { - display: inline-block; - font-weight: 400; - line-height: 1.5; - color: #212529; - text-align: center; - text-decoration: none; - vertical-align: middle; - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; - background-color: transparent; - border: 1px solid transparent; - padding: 0.375rem 0.75rem; - font-size: 1rem; - border-radius: 0.25rem; - font-family: inherit; - transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + display : inline-block; + font-weight : 400; + line-height : 1.5; + color : #212529; + text-align : center; + text-decoration : none; + vertical-align : middle; + cursor : pointer; + -webkit-user-select: none; + -moz-user-select : none; + user-select : none; + background-color : transparent; + border : 1px solid transparent; + padding : 0.375rem 0.75rem; + font-size : 1rem; + border-radius : 0.25rem; + font-family : inherit; + transition : color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } @media (prefers-reduced-motion: reduce) { - .btn { - transition: none; - } + .btn { + transition: none; + } } .btn:hover { - color: #212529; + color: #212529; } .btn-check:focus+.btn, .btn:focus { - outline: 0; - box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); + outline : 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); } .btn:disabled, .btn.disabled, fieldset:disabled .btn { - pointer-events: none; - opacity: 0.65; + pointer-events: none; + opacity : 0.65; } .btn-primary { - color: #fff; - background-color: #0d6efd; - border-color: #0d6efd; + color : #fff; + background-color: #0d6efd; + border-color : #0d6efd; } .btn-primary:hover { - color: #fff; - background-color: #0b5ed7; - border-color: #0a58ca; + color : #fff; + background-color: #0b5ed7; + border-color : #0a58ca; } .btn-check:focus+.btn-primary, .btn-primary:focus { - color: #fff; - background-color: #0b5ed7; - border-color: #0a58ca; - box-shadow: 0 0 0 0.25rem rgba(49, 132, 253, 0.5); + color : #fff; + background-color: #0b5ed7; + border-color : #0a58ca; + box-shadow : 0 0 0 0.25rem rgba(49, 132, 253, 0.5); } .btn-check:checked+.btn-primary, @@ -418,9 +1361,9 @@ fieldset:disabled .btn { .btn-primary:active, .btn-primary.active, .show>.btn-primary.dropdown-toggle { - color: #fff; - background-color: #0a58ca; - border-color: #0a53be; + color : #fff; + background-color: #0a58ca; + border-color : #0a53be; } .btn-check:checked+.btn-primary:focus, @@ -428,34 +1371,34 @@ fieldset:disabled .btn { .btn-primary:active:focus, .btn-primary.active:focus, .show>.btn-primary.dropdown-toggle:focus { - box-shadow: 0 0 0 0.25rem rgba(49, 132, 253, 0.5); + box-shadow: 0 0 0 0.25rem rgba(49, 132, 253, 0.5); } .btn-primary:disabled, .btn-primary.disabled { - color: #fff; - background-color: #0d6efd; - border-color: #0d6efd; + color : #fff; + background-color: #0d6efd; + border-color : #0d6efd; } .btn-secondary { - color: #fff; - background-color: #6c757d; - border-color: #6c757d; + color : #fff; + background-color: #6c757d; + border-color : #6c757d; } .btn-secondary:hover { - color: #fff; - background-color: #5c636a; - border-color: #565e64; + color : #fff; + background-color: #5c636a; + border-color : #565e64; } .btn-check:focus+.btn-secondary, .btn-secondary:focus { - color: #fff; - background-color: #5c636a; - border-color: #565e64; - box-shadow: 0 0 0 0.25rem rgba(130, 138, 145, 0.5); + color : #fff; + background-color: #5c636a; + border-color : #565e64; + box-shadow : 0 0 0 0.25rem rgba(130, 138, 145, 0.5); } .btn-check:checked+.btn-secondary, @@ -463,9 +1406,9 @@ fieldset:disabled .btn { .btn-secondary:active, .btn-secondary.active, .show>.btn-secondary.dropdown-toggle { - color: #fff; - background-color: #565e64; - border-color: #51585e; + color : #fff; + background-color: #565e64; + border-color : #51585e; } .btn-check:checked+.btn-secondary:focus, @@ -473,34 +1416,34 @@ fieldset:disabled .btn { .btn-secondary:active:focus, .btn-secondary.active:focus, .show>.btn-secondary.dropdown-toggle:focus { - box-shadow: 0 0 0 0.25rem rgba(130, 138, 145, 0.5); + box-shadow: 0 0 0 0.25rem rgba(130, 138, 145, 0.5); } .btn-secondary:disabled, .btn-secondary.disabled { - color: #fff; - background-color: #6c757d; - border-color: #6c757d; + color : #fff; + background-color: #6c757d; + border-color : #6c757d; } .btn-success { - color: #fff; - background-color: #198754; - border-color: #198754; + color : #fff; + background-color: #198754; + border-color : #198754; } .btn-success:hover { - color: #fff; - background-color: #157347; - border-color: #146c43; + color : #fff; + background-color: #157347; + border-color : #146c43; } .btn-check:focus+.btn-success, .btn-success:focus { - color: #fff; - background-color: #157347; - border-color: #146c43; - box-shadow: 0 0 0 0.25rem rgba(60, 153, 110, 0.5); + color : #fff; + background-color: #157347; + border-color : #146c43; + box-shadow : 0 0 0 0.25rem rgba(60, 153, 110, 0.5); } .btn-check:checked+.btn-success, @@ -508,9 +1451,9 @@ fieldset:disabled .btn { .btn-success:active, .btn-success.active, .show>.btn-success.dropdown-toggle { - color: #fff; - background-color: #146c43; - border-color: #13653f; + color : #fff; + background-color: #146c43; + border-color : #13653f; } .btn-check:checked+.btn-success:focus, @@ -518,34 +1461,34 @@ fieldset:disabled .btn { .btn-success:active:focus, .btn-success.active:focus, .show>.btn-success.dropdown-toggle:focus { - box-shadow: 0 0 0 0.25rem rgba(60, 153, 110, 0.5); + box-shadow: 0 0 0 0.25rem rgba(60, 153, 110, 0.5); } .btn-success:disabled, .btn-success.disabled { - color: #fff; - background-color: #198754; - border-color: #198754; + color : #fff; + background-color: #198754; + border-color : #198754; } .btn-info { - color: #000; - background-color: #0dcaf0; - border-color: #0dcaf0; + color : #000; + background-color: #0dcaf0; + border-color : #0dcaf0; } .btn-info:hover { - color: #000; - background-color: #31d2f2; - border-color: #25cff2; + color : #000; + background-color: #31d2f2; + border-color : #25cff2; } .btn-check:focus+.btn-info, .btn-info:focus { - color: #000; - background-color: #31d2f2; - border-color: #25cff2; - box-shadow: 0 0 0 0.25rem rgba(11, 172, 204, 0.5); + color : #000; + background-color: #31d2f2; + border-color : #25cff2; + box-shadow : 0 0 0 0.25rem rgba(11, 172, 204, 0.5); } .btn-check:checked+.btn-info, @@ -553,9 +1496,9 @@ fieldset:disabled .btn { .btn-info:active, .btn-info.active, .show>.btn-info.dropdown-toggle { - color: #000; - background-color: #3dd5f3; - border-color: #25cff2; + color : #000; + background-color: #3dd5f3; + border-color : #25cff2; } .btn-check:checked+.btn-info:focus, @@ -563,34 +1506,34 @@ fieldset:disabled .btn { .btn-info:active:focus, .btn-info.active:focus, .show>.btn-info.dropdown-toggle:focus { - box-shadow: 0 0 0 0.25rem rgba(11, 172, 204, 0.5); + box-shadow: 0 0 0 0.25rem rgba(11, 172, 204, 0.5); } .btn-info:disabled, .btn-info.disabled { - color: #000; - background-color: #0dcaf0; - border-color: #0dcaf0; + color : #000; + background-color: #0dcaf0; + border-color : #0dcaf0; } .btn-warning { - color: #000; - background-color: #ffc107; - border-color: #ffc107; + color : #000; + background-color: #ffc107; + border-color : #ffc107; } .btn-warning:hover { - color: #000; - background-color: #ffca2c; - border-color: #ffc720; + color : #000; + background-color: #ffca2c; + border-color : #ffc720; } .btn-check:focus+.btn-warning, .btn-warning:focus { - color: #000; - background-color: #ffca2c; - border-color: #ffc720; - box-shadow: 0 0 0 0.25rem rgba(217, 164, 6, 0.5); + color : #000; + background-color: #ffca2c; + border-color : #ffc720; + box-shadow : 0 0 0 0.25rem rgba(217, 164, 6, 0.5); } .btn-check:checked+.btn-warning, @@ -598,9 +1541,9 @@ fieldset:disabled .btn { .btn-warning:active, .btn-warning.active, .show>.btn-warning.dropdown-toggle { - color: #000; - background-color: #ffcd39; - border-color: #ffc720; + color : #000; + background-color: #ffcd39; + border-color : #ffc720; } .btn-check:checked+.btn-warning:focus, @@ -608,34 +1551,34 @@ fieldset:disabled .btn { .btn-warning:active:focus, .btn-warning.active:focus, .show>.btn-warning.dropdown-toggle:focus { - box-shadow: 0 0 0 0.25rem rgba(217, 164, 6, 0.5); + box-shadow: 0 0 0 0.25rem rgba(217, 164, 6, 0.5); } .btn-warning:disabled, .btn-warning.disabled { - color: #000; - background-color: #ffc107; - border-color: #ffc107; + color : #000; + background-color: #ffc107; + border-color : #ffc107; } .btn-danger { - color: #fff; - background-color: #dc3545; - border-color: #dc3545; + color : #fff; + background-color: #dc3545; + border-color : #dc3545; } .btn-danger:hover { - color: #fff; - background-color: #bb2d3b; - border-color: #b02a37; + color : #fff; + background-color: #bb2d3b; + border-color : #b02a37; } .btn-check:focus+.btn-danger, .btn-danger:focus { - color: #fff; - background-color: #bb2d3b; - border-color: #b02a37; - box-shadow: 0 0 0 0.25rem rgba(225, 83, 97, 0.5); + color : #fff; + background-color: #bb2d3b; + border-color : #b02a37; + box-shadow : 0 0 0 0.25rem rgba(225, 83, 97, 0.5); } .btn-check:checked+.btn-danger, @@ -643,9 +1586,9 @@ fieldset:disabled .btn { .btn-danger:active, .btn-danger.active, .show>.btn-danger.dropdown-toggle { - color: #fff; - background-color: #b02a37; - border-color: #a52834; + color : #fff; + background-color: #b02a37; + border-color : #a52834; } .btn-check:checked+.btn-danger:focus, @@ -653,34 +1596,34 @@ fieldset:disabled .btn { .btn-danger:active:focus, .btn-danger.active:focus, .show>.btn-danger.dropdown-toggle:focus { - box-shadow: 0 0 0 0.25rem rgba(225, 83, 97, 0.5); + box-shadow: 0 0 0 0.25rem rgba(225, 83, 97, 0.5); } .btn-danger:disabled, .btn-danger.disabled { - color: #fff; - background-color: #dc3545; - border-color: #dc3545; + color : #fff; + background-color: #dc3545; + border-color : #dc3545; } .btn-light { - color: #000; - background-color: #f8f9fa; - border-color: #f8f9fa; + color : #000; + background-color: #f8f9fa; + border-color : #f8f9fa; } .btn-light:hover { - color: #000; - background-color: #f9fafb; - border-color: #f9fafb; + color : #000; + background-color: #f9fafb; + border-color : #f9fafb; } .btn-check:focus+.btn-light, .btn-light:focus { - color: #000; - background-color: #f9fafb; - border-color: #f9fafb; - box-shadow: 0 0 0 0.25rem rgba(211, 212, 213, 0.5); + color : #000; + background-color: #f9fafb; + border-color : #f9fafb; + box-shadow : 0 0 0 0.25rem rgba(211, 212, 213, 0.5); } .btn-check:checked+.btn-light, @@ -688,9 +1631,9 @@ fieldset:disabled .btn { .btn-light:active, .btn-light.active, .show>.btn-light.dropdown-toggle { - color: #000; - background-color: #f9fafb; - border-color: #f9fafb; + color : #000; + background-color: #f9fafb; + border-color : #f9fafb; } .btn-check:checked+.btn-light:focus, @@ -698,34 +1641,34 @@ fieldset:disabled .btn { .btn-light:active:focus, .btn-light.active:focus, .show>.btn-light.dropdown-toggle:focus { - box-shadow: 0 0 0 0.25rem rgba(211, 212, 213, 0.5); + box-shadow: 0 0 0 0.25rem rgba(211, 212, 213, 0.5); } .btn-light:disabled, .btn-light.disabled { - color: #000; - background-color: #f8f9fa; - border-color: #f8f9fa; + color : #000; + background-color: #f8f9fa; + border-color : #f8f9fa; } .btn-dark { - color: #fff; - background-color: #212529; - border-color: #212529; + color : #fff; + background-color: #212529; + border-color : #212529; } .btn-dark:hover { - color: #fff; - background-color: #1c1f23; - border-color: #1a1e21; + color : #fff; + background-color: #1c1f23; + border-color : #1a1e21; } .btn-check:focus+.btn-dark, .btn-dark:focus { - color: #fff; - background-color: #1c1f23; - border-color: #1a1e21; - box-shadow: 0 0 0 0.25rem rgba(66, 70, 73, 0.5); + color : #fff; + background-color: #1c1f23; + border-color : #1a1e21; + box-shadow : 0 0 0 0.25rem rgba(66, 70, 73, 0.5); } .btn-check:checked+.btn-dark, @@ -733,9 +1676,9 @@ fieldset:disabled .btn { .btn-dark:active, .btn-dark.active, .show>.btn-dark.dropdown-toggle { - color: #fff; - background-color: #1a1e21; - border-color: #191c1f; + color : #fff; + background-color: #1a1e21; + border-color : #191c1f; } .btn-check:checked+.btn-dark:focus, @@ -743,30 +1686,30 @@ fieldset:disabled .btn { .btn-dark:active:focus, .btn-dark.active:focus, .show>.btn-dark.dropdown-toggle:focus { - box-shadow: 0 0 0 0.25rem rgba(66, 70, 73, 0.5); + box-shadow: 0 0 0 0.25rem rgba(66, 70, 73, 0.5); } .btn-dark:disabled, .btn-dark.disabled { - color: #fff; - background-color: #212529; - border-color: #212529; + color : #fff; + background-color: #212529; + border-color : #212529; } .btn-outline-primary { - color: #0d6efd; - border-color: #0d6efd; + color : #0d6efd; + border-color: #0d6efd; } .btn-outline-primary:hover { - color: #fff; - background-color: #0d6efd; - border-color: #0d6efd; + color : #fff; + background-color: #0d6efd; + border-color : #0d6efd; } .btn-check:focus+.btn-outline-primary, .btn-outline-primary:focus { - box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.5); + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.5); } .btn-check:checked+.btn-outline-primary, @@ -774,9 +1717,9 @@ fieldset:disabled .btn { .btn-outline-primary:active, .btn-outline-primary.active, .btn-outline-primary.dropdown-toggle.show { - color: #fff; - background-color: #0d6efd; - border-color: #0d6efd; + color : #fff; + background-color: #0d6efd; + border-color : #0d6efd; } .btn-check:checked+.btn-outline-primary:focus, @@ -784,29 +1727,29 @@ fieldset:disabled .btn { .btn-outline-primary:active:focus, .btn-outline-primary.active:focus, .btn-outline-primary.dropdown-toggle.show:focus { - box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.5); + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.5); } .btn-outline-primary:disabled, .btn-outline-primary.disabled { - color: #0d6efd; - background-color: transparent; + color : #0d6efd; + background-color: transparent; } .btn-outline-secondary { - color: #6c757d; - border-color: #6c757d; + color : #6c757d; + border-color: #6c757d; } .btn-outline-secondary:hover { - color: #fff; - background-color: #6c757d; - border-color: #6c757d; + color : #fff; + background-color: #6c757d; + border-color : #6c757d; } .btn-check:focus+.btn-outline-secondary, .btn-outline-secondary:focus { - box-shadow: 0 0 0 0.25rem rgba(108, 117, 125, 0.5); + box-shadow: 0 0 0 0.25rem rgba(108, 117, 125, 0.5); } .btn-check:checked+.btn-outline-secondary, @@ -814,9 +1757,9 @@ fieldset:disabled .btn { .btn-outline-secondary:active, .btn-outline-secondary.active, .btn-outline-secondary.dropdown-toggle.show { - color: #fff; - background-color: #6c757d; - border-color: #6c757d; + color : #fff; + background-color: #6c757d; + border-color : #6c757d; } .btn-check:checked+.btn-outline-secondary:focus, @@ -824,29 +1767,29 @@ fieldset:disabled .btn { .btn-outline-secondary:active:focus, .btn-outline-secondary.active:focus, .btn-outline-secondary.dropdown-toggle.show:focus { - box-shadow: 0 0 0 0.25rem rgba(108, 117, 125, 0.5); + box-shadow: 0 0 0 0.25rem rgba(108, 117, 125, 0.5); } .btn-outline-secondary:disabled, .btn-outline-secondary.disabled { - color: #6c757d; - background-color: transparent; + color : #6c757d; + background-color: transparent; } .btn-outline-success { - color: #198754; - border-color: #198754; + color : #198754; + border-color: #198754; } .btn-outline-success:hover { - color: #fff; - background-color: #198754; - border-color: #198754; + color : #fff; + background-color: #198754; + border-color : #198754; } .btn-check:focus+.btn-outline-success, .btn-outline-success:focus { - box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.5); + box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.5); } .btn-check:checked+.btn-outline-success, @@ -854,9 +1797,9 @@ fieldset:disabled .btn { .btn-outline-success:active, .btn-outline-success.active, .btn-outline-success.dropdown-toggle.show { - color: #fff; - background-color: #198754; - border-color: #198754; + color : #fff; + background-color: #198754; + border-color : #198754; } .btn-check:checked+.btn-outline-success:focus, @@ -864,29 +1807,29 @@ fieldset:disabled .btn { .btn-outline-success:active:focus, .btn-outline-success.active:focus, .btn-outline-success.dropdown-toggle.show:focus { - box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.5); + box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.5); } .btn-outline-success:disabled, .btn-outline-success.disabled { - color: #198754; - background-color: transparent; + color : #198754; + background-color: transparent; } .btn-outline-info { - color: #0dcaf0; - border-color: #0dcaf0; + color : #0dcaf0; + border-color: #0dcaf0; } .btn-outline-info:hover { - color: #000; - background-color: #0dcaf0; - border-color: #0dcaf0; + color : #000; + background-color: #0dcaf0; + border-color : #0dcaf0; } .btn-check:focus+.btn-outline-info, .btn-outline-info:focus { - box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.5); + box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.5); } .btn-check:checked+.btn-outline-info, @@ -894,9 +1837,9 @@ fieldset:disabled .btn { .btn-outline-info:active, .btn-outline-info.active, .btn-outline-info.dropdown-toggle.show { - color: #000; - background-color: #0dcaf0; - border-color: #0dcaf0; + color : #000; + background-color: #0dcaf0; + border-color : #0dcaf0; } .btn-check:checked+.btn-outline-info:focus, @@ -904,29 +1847,29 @@ fieldset:disabled .btn { .btn-outline-info:active:focus, .btn-outline-info.active:focus, .btn-outline-info.dropdown-toggle.show:focus { - box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.5); + box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.5); } .btn-outline-info:disabled, .btn-outline-info.disabled { - color: #0dcaf0; - background-color: transparent; + color : #0dcaf0; + background-color: transparent; } .btn-outline-warning { - color: #ffc107; - border-color: #ffc107; + color : #ffc107; + border-color: #ffc107; } .btn-outline-warning:hover { - color: #000; - background-color: #ffc107; - border-color: #ffc107; + color : #000; + background-color: #ffc107; + border-color : #ffc107; } .btn-check:focus+.btn-outline-warning, .btn-outline-warning:focus { - box-shadow: 0 0 0 0.25rem rgba(255, 193, 7, 0.5); + box-shadow: 0 0 0 0.25rem rgba(255, 193, 7, 0.5); } .btn-check:checked+.btn-outline-warning, @@ -934,9 +1877,9 @@ fieldset:disabled .btn { .btn-outline-warning:active, .btn-outline-warning.active, .btn-outline-warning.dropdown-toggle.show { - color: #000; - background-color: #ffc107; - border-color: #ffc107; + color : #000; + background-color: #ffc107; + border-color : #ffc107; } .btn-check:checked+.btn-outline-warning:focus, @@ -944,29 +1887,29 @@ fieldset:disabled .btn { .btn-outline-warning:active:focus, .btn-outline-warning.active:focus, .btn-outline-warning.dropdown-toggle.show:focus { - box-shadow: 0 0 0 0.25rem rgba(255, 193, 7, 0.5); + box-shadow: 0 0 0 0.25rem rgba(255, 193, 7, 0.5); } .btn-outline-warning:disabled, .btn-outline-warning.disabled { - color: #ffc107; - background-color: transparent; + color : #ffc107; + background-color: transparent; } .btn-outline-danger { - color: #dc3545; - border-color: #dc3545; + color : #dc3545; + border-color: #dc3545; } .btn-outline-danger:hover { - color: #fff; - background-color: #dc3545; - border-color: #dc3545; + color : #fff; + background-color: #dc3545; + border-color : #dc3545; } .btn-check:focus+.btn-outline-danger, .btn-outline-danger:focus { - box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.5); + box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.5); } .btn-check:checked+.btn-outline-danger, @@ -974,9 +1917,9 @@ fieldset:disabled .btn { .btn-outline-danger:active, .btn-outline-danger.active, .btn-outline-danger.dropdown-toggle.show { - color: #fff; - background-color: #dc3545; - border-color: #dc3545; + color : #fff; + background-color: #dc3545; + border-color : #dc3545; } .btn-check:checked+.btn-outline-danger:focus, @@ -984,29 +1927,29 @@ fieldset:disabled .btn { .btn-outline-danger:active:focus, .btn-outline-danger.active:focus, .btn-outline-danger.dropdown-toggle.show:focus { - box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.5); + box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.5); } .btn-outline-danger:disabled, .btn-outline-danger.disabled { - color: #dc3545; - background-color: transparent; + color : #dc3545; + background-color: transparent; } .btn-outline-light { - color: #f8f9fa; - border-color: #f8f9fa; + color : #f8f9fa; + border-color: #f8f9fa; } .btn-outline-light:hover { - color: #000; - background-color: #f8f9fa; - border-color: #f8f9fa; + color : #000; + background-color: #f8f9fa; + border-color : #f8f9fa; } .btn-check:focus+.btn-outline-light, .btn-outline-light:focus { - box-shadow: 0 0 0 0.25rem rgba(248, 249, 250, 0.5); + box-shadow: 0 0 0 0.25rem rgba(248, 249, 250, 0.5); } .btn-check:checked+.btn-outline-light, @@ -1014,9 +1957,9 @@ fieldset:disabled .btn { .btn-outline-light:active, .btn-outline-light.active, .btn-outline-light.dropdown-toggle.show { - color: #000; - background-color: #f8f9fa; - border-color: #f8f9fa; + color : #000; + background-color: #f8f9fa; + border-color : #f8f9fa; } .btn-check:checked+.btn-outline-light:focus, @@ -1024,29 +1967,29 @@ fieldset:disabled .btn { .btn-outline-light:active:focus, .btn-outline-light.active:focus, .btn-outline-light.dropdown-toggle.show:focus { - box-shadow: 0 0 0 0.25rem rgba(248, 249, 250, 0.5); + box-shadow: 0 0 0 0.25rem rgba(248, 249, 250, 0.5); } .btn-outline-light:disabled, .btn-outline-light.disabled { - color: #f8f9fa; - background-color: transparent; + color : #f8f9fa; + background-color: transparent; } .btn-outline-dark { - color: #212529; - border-color: #212529; + color : #212529; + border-color: #212529; } .btn-outline-dark:hover { - color: #fff; - background-color: #212529; - border-color: #212529; + color : #fff; + background-color: #212529; + border-color : #212529; } .btn-check:focus+.btn-outline-dark, .btn-outline-dark:focus { - box-shadow: 0 0 0 0.25rem rgba(33, 37, 41, 0.5); + box-shadow: 0 0 0 0.25rem rgba(33, 37, 41, 0.5); } .btn-check:checked+.btn-outline-dark, @@ -1054,9 +1997,9 @@ fieldset:disabled .btn { .btn-outline-dark:active, .btn-outline-dark.active, .btn-outline-dark.dropdown-toggle.show { - color: #fff; - background-color: #212529; - border-color: #212529; + color : #fff; + background-color: #212529; + border-color : #212529; } .btn-check:checked+.btn-outline-dark:focus, @@ -1064,44 +2007,5969 @@ fieldset:disabled .btn { .btn-outline-dark:active:focus, .btn-outline-dark.active:focus, .btn-outline-dark.dropdown-toggle.show:focus { - box-shadow: 0 0 0 0.25rem rgba(33, 37, 41, 0.5); + box-shadow: 0 0 0 0.25rem rgba(33, 37, 41, 0.5); } .btn-outline-dark:disabled, .btn-outline-dark.disabled { - color: #212529; - background-color: transparent; + color : #212529; + background-color: transparent; } .btn-link { - font-weight: 400; - color: #0d6efd; - text-decoration: underline; + font-weight : 400; + color : #0d6efd; + text-decoration: underline; } .btn-link:hover { - color: #0a58ca; + color: #0a58ca; } .btn-link:disabled, .btn-link.disabled { - color: #6c757d; + color: #6c757d; } .btn-lg, .btn-group-lg>.btn { - padding: 0.5rem 1rem; - font-size: 1.25rem; - border-radius: 0.3rem; + padding : 0.5rem 1rem; + font-size : 1.25rem; + border-radius: 0.3rem; } .btn-sm, .btn-group-sm>.btn { - padding: 0.25rem 0.5rem; - font-size: 0.875rem; - border-radius: 0.2rem; + padding : 0.25rem 0.5rem; + font-size : 0.875rem; + border-radius: 0.2rem; } .form-control { - width:100%; -} \ No newline at end of file + width: 100%; +} + +// Button Group + +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-flex; + vertical-align: middle; +} +.btn-group > .btn, +.btn-group-vertical > .btn { + position: relative; + flex: 1 1 auto; +} +.btn-group > .btn-check:checked + .btn, +.btn-group > .btn-check:focus + .btn, +.btn-group > .btn:hover, +.btn-group > .btn:focus, +.btn-group > .btn:active, +.btn-group > .btn.active, +.btn-group-vertical > .btn-check:checked + .btn, +.btn-group-vertical > .btn-check:focus + .btn, +.btn-group-vertical > .btn:hover, +.btn-group-vertical > .btn:focus, +.btn-group-vertical > .btn:active, +.btn-group-vertical > .btn.active { + z-index: 1; +} + +.btn-toolbar { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; +} +.btn-toolbar .input-group { + width: auto; +} + +.btn-group > .btn:not(:first-child), +.btn-group > .btn-group:not(:first-child) { + margin-left: -1px; +} +.btn-group > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group > .btn-group:not(:last-child) > .btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.btn-group > .btn:nth-child(n+3), +.btn-group > :not(.btn-check) + .btn, +.btn-group > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.dropdown-toggle-split { + padding-right: 0.5625rem; + padding-left: 0.5625rem; +} +.dropdown-toggle-split::after, .dropup .dropdown-toggle-split::after, .dropend .dropdown-toggle-split::after { + margin-left: 0; +} +.dropstart .dropdown-toggle-split::before { + margin-right: 0; +} + +.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split { + padding-right: 0.375rem; + padding-left: 0.375rem; +} + +.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split { + padding-right: 0.75rem; + padding-left: 0.75rem; +} + +.btn-group-vertical { + flex-direction: column; + align-items: flex-start; + justify-content: center; +} +.btn-group-vertical > .btn, +.btn-group-vertical > .btn-group { + width: 100%; +} +.btn-group-vertical > .btn:not(:first-child), +.btn-group-vertical > .btn-group:not(:first-child) { + margin-top: -1px; +} +.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group-vertical > .btn-group:not(:last-child) > .btn { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group-vertical > .btn ~ .btn, +.btn-group-vertical > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +// Table +.table { + --bs-table-bg: transparent; + --bs-table-accent-bg: transparent; + --bs-table-striped-color: #212529; + --bs-table-striped-bg: rgba(0, 0, 0, 0.05); + --bs-table-active-color: #212529; + --bs-table-active-bg: rgba(0, 0, 0, 0.1); + --bs-table-hover-color: #212529; + --bs-table-hover-bg: rgba(0, 0, 0, 0.075); + width: 100%; + margin-bottom: 1rem; + color: #212529; + vertical-align: top; + border-color: #dee2e6; +} +.table > :not(caption) > * > * { + padding: 0.5rem 0.5rem; + background-color: var(--bs-table-bg); + border-bottom-width: 1px; + box-shadow: inset 0 0 0 9999px var(--bs-table-accent-bg); +} +.table > tbody { + vertical-align: inherit; +} +.table > thead { + vertical-align: bottom; +} +.table > :not(:first-child) { + border-top: 2px solid currentColor; +} + +.caption-top { + caption-side: top; +} + +.table-sm > :not(caption) > * > * { + padding: 0.25rem 0.25rem; +} + +.table-bordered > :not(caption) > * { + border-width: 1px 0; +} +.table-bordered > :not(caption) > * > * { + border-width: 0 1px; +} + +.table-borderless > :not(caption) > * > * { + border-bottom-width: 0; +} +.table-borderless > :not(:first-child) { + border-top-width: 0; +} + +.table-striped > tbody > tr:nth-of-type(odd) > * { + --bs-table-accent-bg: var(--bs-table-striped-bg); + color: var(--bs-table-striped-color); +} + +.table-active { + --bs-table-accent-bg: var(--bs-table-active-bg); + color: var(--bs-table-active-color); +} + +.table-hover > tbody > tr:hover > * { + --bs-table-accent-bg: var(--bs-table-hover-bg); + color: var(--bs-table-hover-color); +} + +.table-primary { + --bs-table-bg: #cfe2ff; + --bs-table-striped-bg: #c5d7f2; + --bs-table-striped-color: #000; + --bs-table-active-bg: #bacbe6; + --bs-table-active-color: #000; + --bs-table-hover-bg: #bfd1ec; + --bs-table-hover-color: #000; + color: #000; + border-color: #bacbe6; +} + +.table-secondary { + --bs-table-bg: #e2e3e5; + --bs-table-striped-bg: #d7d8da; + --bs-table-striped-color: #000; + --bs-table-active-bg: #cbccce; + --bs-table-active-color: #000; + --bs-table-hover-bg: #d1d2d4; + --bs-table-hover-color: #000; + color: #000; + border-color: #cbccce; +} + +.table-success { + --bs-table-bg: #d1e7dd; + --bs-table-striped-bg: #c7dbd2; + --bs-table-striped-color: #000; + --bs-table-active-bg: #bcd0c7; + --bs-table-active-color: #000; + --bs-table-hover-bg: #c1d6cc; + --bs-table-hover-color: #000; + color: #000; + border-color: #bcd0c7; +} + +.table-info { + --bs-table-bg: #cff4fc; + --bs-table-striped-bg: #c5e8ef; + --bs-table-striped-color: #000; + --bs-table-active-bg: #badce3; + --bs-table-active-color: #000; + --bs-table-hover-bg: #bfe2e9; + --bs-table-hover-color: #000; + color: #000; + border-color: #badce3; +} + +.table-warning { + --bs-table-bg: #fff3cd; + --bs-table-striped-bg: #f2e7c3; + --bs-table-striped-color: #000; + --bs-table-active-bg: #e6dbb9; + --bs-table-active-color: #000; + --bs-table-hover-bg: #ece1be; + --bs-table-hover-color: #000; + color: #000; + border-color: #e6dbb9; +} + +.table-danger { + --bs-table-bg: #f8d7da; + --bs-table-striped-bg: #eccccf; + --bs-table-striped-color: #000; + --bs-table-active-bg: #dfc2c4; + --bs-table-active-color: #000; + --bs-table-hover-bg: #e5c7ca; + --bs-table-hover-color: #000; + color: #000; + border-color: #dfc2c4; +} + +.table-light { + --bs-table-bg: #f8f9fa; + --bs-table-striped-bg: #ecedee; + --bs-table-striped-color: #000; + --bs-table-active-bg: #dfe0e1; + --bs-table-active-color: #000; + --bs-table-hover-bg: #e5e6e7; + --bs-table-hover-color: #000; + color: #000; + border-color: #dfe0e1; +} + +.table-dark { + --bs-table-bg: #212529; + --bs-table-striped-bg: #2c3034; + --bs-table-striped-color: #fff; + --bs-table-active-bg: #373b3e; + --bs-table-active-color: #fff; + --bs-table-hover-bg: #323539; + --bs-table-hover-color: #fff; + color: #fff; + border-color: #373b3e; +} + +.table-responsive { + overflow-x: auto; + -webkit-overflow-scrolling: touch; +} + +@media (max-width: 575.98px) { + .table-responsive-sm { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +@media (max-width: 767.98px) { + .table-responsive-md { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +@media (max-width: 991.98px) { + .table-responsive-lg { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +@media (max-width: 1199.98px) { + .table-responsive-xl { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +@media (max-width: 1399.98px) { + .table-responsive-xxl { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} + +// Tabs + +.nav-tabs { + border-bottom: 1px solid #dee2e6; +} +.nav-tabs .nav-link { + margin-bottom: -1px; + background: none; + border: 1px solid transparent; + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} +.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus { + border-color: #e9ecef #e9ecef #dee2e6; + isolation: isolate; +} +.nav-tabs .nav-link.disabled { + color: #6c757d; + background-color: transparent; + border-color: transparent; +} +.nav-tabs .nav-link.active, +.nav-tabs .nav-item.show .nav-link { + color: #495057; + background-color: #fff; + border-color: #dee2e6 #dee2e6 #fff; +} +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.nav-pills .nav-link { + background: none; + border: 0; + border-radius: 0.25rem; +} +.nav-pills .nav-link.active, +.nav-pills .show > .nav-link { + color: #fff; + background-color: #0d6efd; +} + +.nav-fill > .nav-link, +.nav-fill .nav-item { + flex: 1 1 auto; + text-align: center; +} + +.nav-justified > .nav-link, +.nav-justified .nav-item { + flex-basis: 0; + flex-grow: 1; + text-align: center; +} + +.nav-fill .nav-item .nav-link, +.nav-justified .nav-item .nav-link { + width: 100%; +} + +.tab-content > .tab-pane { + display: none; +} +.tab-content > .active { + display: block; +} + +/*! + * Bootstrap Grid v5.1.1 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors + * Copyright 2011-2021 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +:root { + --bs-blue : #0d6efd; + --bs-indigo : #6610f2; + --bs-purple : #6f42c1; + --bs-pink : #d63384; + --bs-red : #dc3545; + --bs-orange : #fd7e14; + --bs-yellow : #ffc107; + --bs-green : #198754; + --bs-teal : #20c997; + --bs-cyan : #0dcaf0; + --bs-white : #fff; + --bs-gray : #6c757d; + --bs-gray-dark : #343a40; + --bs-gray-100 : #f8f9fa; + --bs-gray-200 : #e9ecef; + --bs-gray-300 : #dee2e6; + --bs-gray-400 : #ced4da; + --bs-gray-500 : #adb5bd; + --bs-gray-600 : #6c757d; + --bs-gray-700 : #495057; + --bs-gray-800 : #343a40; + --bs-gray-900 : #212529; + --bs-primary : #0d6efd; + --bs-secondary : #6c757d; + --bs-success : #198754; + --bs-info : #0dcaf0; + --bs-warning : #ffc107; + --bs-danger : #dc3545; + --bs-light : #f8f9fa; + --bs-dark : #212529; + --bs-primary-rgb : 13, 110, 253; + --bs-secondary-rgb : 108, 117, 125; + --bs-success-rgb : 25, 135, 84; + --bs-info-rgb : 13, 202, 240; + --bs-warning-rgb : 255, 193, 7; + --bs-danger-rgb : 220, 53, 69; + --bs-light-rgb : 248, 249, 250; + --bs-dark-rgb : 33, 37, 41; + --bs-white-rgb : 255, 255, 255; + --bs-black-rgb : 0, 0, 0; + --bs-body-color-rgb : 33, 37, 41; + --bs-body-bg-rgb : 255, 255, 255; + --bs-font-sans-serif : inherit; + --bs-font-monospace : SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + --bs-gradient : linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0)); + --bs-body-font-family: inherit; + --bs-body-font-size : 1rem; + --bs-body-font-weight: 400; + --bs-body-line-height: 1.5; + --bs-body-color : #212529; + --bs-body-bg : #fff; +} + +.container, +.container-fluid, +.container-xxl, +.container-xl, +.container-lg, +.container-md, +.container-sm { + width : 100%; + padding-right: var(--bs-gutter-x, 0.75rem); + padding-left : var(--bs-gutter-x, 0.75rem); + margin-right : auto; + margin-left : auto; +} + +@media (min-width: 576px) { + + .container-sm, + .container { + max-width: 540px; + } +} + +@media (min-width: 768px) { + + .container-md, + .container-sm, + .container { + max-width: 720px; + } +} + +@media (min-width: 992px) { + + .container-lg, + .container-md, + .container-sm, + .container { + max-width: 960px; + } +} + +@media (min-width: 1200px) { + + .container-xl, + .container-lg, + .container-md, + .container-sm, + .container { + max-width: 1140px; + } +} + +@media (min-width: 1400px) { + + .container-xxl, + .container-xl, + .container-lg, + .container-md, + .container-sm, + .container { + max-width: 1320px; + } +} + +.col { + flex: 1 0 0%; +} + +.row-cols-auto>* { + flex : 0 0 auto; + width: auto; +} + +.row-cols-1>* { + flex : 0 0 auto; + width: 100%; +} + +.row-cols-2>* { + flex : 0 0 auto; + width: 50%; +} + +.row-cols-3>* { + flex : 0 0 auto; + width: 33.3333333333%; +} + +.row-cols-4>* { + flex : 0 0 auto; + width: 25%; +} + +.row-cols-5>* { + flex : 0 0 auto; + width: 20%; +} + +.row-cols-6>* { + flex : 0 0 auto; + width: 16.6666666667%; +} + +.col-auto { + flex : 0 0 auto; + width: auto; +} + +.col-1 { + flex : 0 0 auto; + width: 8.33333333%; +} + +.col-2 { + flex : 0 0 auto; + width: 16.66666667%; +} + +.col-3 { + flex : 0 0 auto; + width: 25%; +} + +.col-4 { + flex : 0 0 auto; + width: 33.33333333%; +} + +.col-5 { + flex : 0 0 auto; + width: 41.66666667%; +} + +.col-6 { + flex : 0 0 auto; + width: 50%; +} + +.col-7 { + flex : 0 0 auto; + width: 58.33333333%; +} + +.col-8 { + flex : 0 0 auto; + width: 66.66666667%; +} + +.col-9 { + flex : 0 0 auto; + width: 75%; +} + +.col-10 { + flex : 0 0 auto; + width: 83.33333333%; +} + +.col-11 { + flex : 0 0 auto; + width: 91.66666667%; +} + +.col-12 { + flex : 0 0 auto; + width: 100%; +} + +.offset-1 { + margin-left: 8.33333333%; +} + +.offset-2 { + margin-left: 16.66666667%; +} + +.offset-3 { + margin-left: 25%; +} + +.offset-4 { + margin-left: 33.33333333%; +} + +.offset-5 { + margin-left: 41.66666667%; +} + +.offset-6 { + margin-left: 50%; +} + +.offset-7 { + margin-left: 58.33333333%; +} + +.offset-8 { + margin-left: 66.66666667%; +} + +.offset-9 { + margin-left: 75%; +} + +.offset-10 { + margin-left: 83.33333333%; +} + +.offset-11 { + margin-left: 91.66666667%; +} + +.g-0, +.gx-0 { + --bs-gutter-x: 0; +} + +.g-0, +.gy-0 { + --bs-gutter-y: 0; +} + +.g-1, +.gx-1 { + --bs-gutter-x: 0.25rem; +} + +.g-1, +.gy-1 { + --bs-gutter-y: 0.25rem; +} + +.g-2, +.gx-2 { + --bs-gutter-x: 0.5rem; +} + +.g-2, +.gy-2 { + --bs-gutter-y: 0.5rem; +} + +.g-3, +.gx-3 { + --bs-gutter-x: 1rem; +} + +.g-3, +.gy-3 { + --bs-gutter-y: 1rem; +} + +.g-4, +.gx-4 { + --bs-gutter-x: 1.5rem; +} + +.g-4, +.gy-4 { + --bs-gutter-y: 1.5rem; +} + +.g-5, +.gx-5 { + --bs-gutter-x: 3rem; +} + +.g-5, +.gy-5 { + --bs-gutter-y: 3rem; +} + +@media (min-width: 576px) { + .col-sm { + flex: 1 0 0%; + } + + .row-cols-sm-auto>* { + flex : 0 0 auto; + width: auto; + } + + .row-cols-sm-1>* { + flex : 0 0 auto; + width: 100%; + } + + .row-cols-sm-2>* { + flex : 0 0 auto; + width: 50%; + } + + .row-cols-sm-3>* { + flex : 0 0 auto; + width: 33.3333333333%; + } + + .row-cols-sm-4>* { + flex : 0 0 auto; + width: 25%; + } + + .row-cols-sm-5>* { + flex : 0 0 auto; + width: 20%; + } + + .row-cols-sm-6>* { + flex : 0 0 auto; + width: 16.6666666667%; + } + + .col-sm-auto { + flex : 0 0 auto; + width: auto; + } + + .col-sm-1 { + flex : 0 0 auto; + width: 8.33333333%; + } + + .col-sm-2 { + flex : 0 0 auto; + width: 16.66666667%; + } + + .col-sm-3 { + flex : 0 0 auto; + width: 25%; + } + + .col-sm-4 { + flex : 0 0 auto; + width: 33.33333333%; + } + + .col-sm-5 { + flex : 0 0 auto; + width: 41.66666667%; + } + + .col-sm-6 { + flex : 0 0 auto; + width: 50%; + } + + .col-sm-7 { + flex : 0 0 auto; + width: 58.33333333%; + } + + .col-sm-8 { + flex : 0 0 auto; + width: 66.66666667%; + } + + .col-sm-9 { + flex : 0 0 auto; + width: 75%; + } + + .col-sm-10 { + flex : 0 0 auto; + width: 83.33333333%; + } + + .col-sm-11 { + flex : 0 0 auto; + width: 91.66666667%; + } + + .col-sm-12 { + flex : 0 0 auto; + width: 100%; + } + + .offset-sm-0 { + margin-left: 0; + } + + .offset-sm-1 { + margin-left: 8.33333333%; + } + + .offset-sm-2 { + margin-left: 16.66666667%; + } + + .offset-sm-3 { + margin-left: 25%; + } + + .offset-sm-4 { + margin-left: 33.33333333%; + } + + .offset-sm-5 { + margin-left: 41.66666667%; + } + + .offset-sm-6 { + margin-left: 50%; + } + + .offset-sm-7 { + margin-left: 58.33333333%; + } + + .offset-sm-8 { + margin-left: 66.66666667%; + } + + .offset-sm-9 { + margin-left: 75%; + } + + .offset-sm-10 { + margin-left: 83.33333333%; + } + + .offset-sm-11 { + margin-left: 91.66666667%; + } + + .g-sm-0, + .gx-sm-0 { + --bs-gutter-x: 0; + } + + .g-sm-0, + .gy-sm-0 { + --bs-gutter-y: 0; + } + + .g-sm-1, + .gx-sm-1 { + --bs-gutter-x: 0.25rem; + } + + .g-sm-1, + .gy-sm-1 { + --bs-gutter-y: 0.25rem; + } + + .g-sm-2, + .gx-sm-2 { + --bs-gutter-x: 0.5rem; + } + + .g-sm-2, + .gy-sm-2 { + --bs-gutter-y: 0.5rem; + } + + .g-sm-3, + .gx-sm-3 { + --bs-gutter-x: 1rem; + } + + .g-sm-3, + .gy-sm-3 { + --bs-gutter-y: 1rem; + } + + .g-sm-4, + .gx-sm-4 { + --bs-gutter-x: 1.5rem; + } + + .g-sm-4, + .gy-sm-4 { + --bs-gutter-y: 1.5rem; + } + + .g-sm-5, + .gx-sm-5 { + --bs-gutter-x: 3rem; + } + + .g-sm-5, + .gy-sm-5 { + --bs-gutter-y: 3rem; + } +} + +@media (min-width: 768px) { + .col-md { + flex: 1 0 0%; + } + + .row-cols-md-auto>* { + flex : 0 0 auto; + width: auto; + } + + .row-cols-md-1>* { + flex : 0 0 auto; + width: 100%; + } + + .row-cols-md-2>* { + flex : 0 0 auto; + width: 50%; + } + + .row-cols-md-3>* { + flex : 0 0 auto; + width: 33.3333333333%; + } + + .row-cols-md-4>* { + flex : 0 0 auto; + width: 25%; + } + + .row-cols-md-5>* { + flex : 0 0 auto; + width: 20%; + } + + .row-cols-md-6>* { + flex : 0 0 auto; + width: 16.6666666667%; + } + + .col-md-auto { + flex : 0 0 auto; + width: auto; + } + + .col-md-1 { + flex : 0 0 auto; + width: 8.33333333%; + } + + .col-md-2 { + flex : 0 0 auto; + width: 16.66666667%; + } + + .col-md-3 { + flex : 0 0 auto; + width: 25%; + } + + .col-md-4 { + flex : 0 0 auto; + width: 33.33333333%; + } + + .col-md-5 { + flex : 0 0 auto; + width: 41.66666667%; + } + + .col-md-6 { + flex : 0 0 auto; + width: 50%; + } + + .col-md-7 { + flex : 0 0 auto; + width: 58.33333333%; + } + + .col-md-8 { + flex : 0 0 auto; + width: 66.66666667%; + } + + .col-md-9 { + flex : 0 0 auto; + width: 75%; + } + + .col-md-10 { + flex : 0 0 auto; + width: 83.33333333%; + } + + .col-md-11 { + flex : 0 0 auto; + width: 91.66666667%; + } + + .col-md-12 { + flex : 0 0 auto; + width: 100%; + } + + .offset-md-0 { + margin-left: 0; + } + + .offset-md-1 { + margin-left: 8.33333333%; + } + + .offset-md-2 { + margin-left: 16.66666667%; + } + + .offset-md-3 { + margin-left: 25%; + } + + .offset-md-4 { + margin-left: 33.33333333%; + } + + .offset-md-5 { + margin-left: 41.66666667%; + } + + .offset-md-6 { + margin-left: 50%; + } + + .offset-md-7 { + margin-left: 58.33333333%; + } + + .offset-md-8 { + margin-left: 66.66666667%; + } + + .offset-md-9 { + margin-left: 75%; + } + + .offset-md-10 { + margin-left: 83.33333333%; + } + + .offset-md-11 { + margin-left: 91.66666667%; + } + + .g-md-0, + .gx-md-0 { + --bs-gutter-x: 0; + } + + .g-md-0, + .gy-md-0 { + --bs-gutter-y: 0; + } + + .g-md-1, + .gx-md-1 { + --bs-gutter-x: 0.25rem; + } + + .g-md-1, + .gy-md-1 { + --bs-gutter-y: 0.25rem; + } + + .g-md-2, + .gx-md-2 { + --bs-gutter-x: 0.5rem; + } + + .g-md-2, + .gy-md-2 { + --bs-gutter-y: 0.5rem; + } + + .g-md-3, + .gx-md-3 { + --bs-gutter-x: 1rem; + } + + .g-md-3, + .gy-md-3 { + --bs-gutter-y: 1rem; + } + + .g-md-4, + .gx-md-4 { + --bs-gutter-x: 1.5rem; + } + + .g-md-4, + .gy-md-4 { + --bs-gutter-y: 1.5rem; + } + + .g-md-5, + .gx-md-5 { + --bs-gutter-x: 3rem; + } + + .g-md-5, + .gy-md-5 { + --bs-gutter-y: 3rem; + } +} + +@media (min-width: 992px) { + .col-lg { + flex: 1 0 0%; + } + + .row-cols-lg-auto>* { + flex : 0 0 auto; + width: auto; + } + + .row-cols-lg-1>* { + flex : 0 0 auto; + width: 100%; + } + + .row-cols-lg-2>* { + flex : 0 0 auto; + width: 50%; + } + + .row-cols-lg-3>* { + flex : 0 0 auto; + width: 33.3333333333%; + } + + .row-cols-lg-4>* { + flex : 0 0 auto; + width: 25%; + } + + .row-cols-lg-5>* { + flex : 0 0 auto; + width: 20%; + } + + .row-cols-lg-6>* { + flex : 0 0 auto; + width: 16.6666666667%; + } + + .col-lg-auto { + flex : 0 0 auto; + width: auto; + } + + .col-lg-1 { + flex : 0 0 auto; + width: 8.33333333%; + } + + .col-lg-2 { + flex : 0 0 auto; + width: 16.66666667%; + } + + .col-lg-3 { + flex : 0 0 auto; + width: 25%; + } + + .col-lg-4 { + flex : 0 0 auto; + width: 33.33333333%; + } + + .col-lg-5 { + flex : 0 0 auto; + width: 41.66666667%; + } + + .col-lg-6 { + flex : 0 0 auto; + width: 50%; + } + + .col-lg-7 { + flex : 0 0 auto; + width: 58.33333333%; + } + + .col-lg-8 { + flex : 0 0 auto; + width: 66.66666667%; + } + + .col-lg-9 { + flex : 0 0 auto; + width: 75%; + } + + .col-lg-10 { + flex : 0 0 auto; + width: 83.33333333%; + } + + .col-lg-11 { + flex : 0 0 auto; + width: 91.66666667%; + } + + .col-lg-12 { + flex : 0 0 auto; + width: 100%; + } + + .offset-lg-0 { + margin-left: 0; + } + + .offset-lg-1 { + margin-left: 8.33333333%; + } + + .offset-lg-2 { + margin-left: 16.66666667%; + } + + .offset-lg-3 { + margin-left: 25%; + } + + .offset-lg-4 { + margin-left: 33.33333333%; + } + + .offset-lg-5 { + margin-left: 41.66666667%; + } + + .offset-lg-6 { + margin-left: 50%; + } + + .offset-lg-7 { + margin-left: 58.33333333%; + } + + .offset-lg-8 { + margin-left: 66.66666667%; + } + + .offset-lg-9 { + margin-left: 75%; + } + + .offset-lg-10 { + margin-left: 83.33333333%; + } + + .offset-lg-11 { + margin-left: 91.66666667%; + } + + .g-lg-0, + .gx-lg-0 { + --bs-gutter-x: 0; + } + + .g-lg-0, + .gy-lg-0 { + --bs-gutter-y: 0; + } + + .g-lg-1, + .gx-lg-1 { + --bs-gutter-x: 0.25rem; + } + + .g-lg-1, + .gy-lg-1 { + --bs-gutter-y: 0.25rem; + } + + .g-lg-2, + .gx-lg-2 { + --bs-gutter-x: 0.5rem; + } + + .g-lg-2, + .gy-lg-2 { + --bs-gutter-y: 0.5rem; + } + + .g-lg-3, + .gx-lg-3 { + --bs-gutter-x: 1rem; + } + + .g-lg-3, + .gy-lg-3 { + --bs-gutter-y: 1rem; + } + + .g-lg-4, + .gx-lg-4 { + --bs-gutter-x: 1.5rem; + } + + .g-lg-4, + .gy-lg-4 { + --bs-gutter-y: 1.5rem; + } + + .g-lg-5, + .gx-lg-5 { + --bs-gutter-x: 3rem; + } + + .g-lg-5, + .gy-lg-5 { + --bs-gutter-y: 3rem; + } +} + +@media (min-width: 1200px) { + .col-xl { + flex: 1 0 0%; + } + + .row-cols-xl-auto>* { + flex : 0 0 auto; + width: auto; + } + + .row-cols-xl-1>* { + flex : 0 0 auto; + width: 100%; + } + + .row-cols-xl-2>* { + flex : 0 0 auto; + width: 50%; + } + + .row-cols-xl-3>* { + flex : 0 0 auto; + width: 33.3333333333%; + } + + .row-cols-xl-4>* { + flex : 0 0 auto; + width: 25%; + } + + .row-cols-xl-5>* { + flex : 0 0 auto; + width: 20%; + } + + .row-cols-xl-6>* { + flex : 0 0 auto; + width: 16.6666666667%; + } + + .col-xl-auto { + flex : 0 0 auto; + width: auto; + } + + .col-xl-1 { + flex : 0 0 auto; + width: 8.33333333%; + } + + .col-xl-2 { + flex : 0 0 auto; + width: 16.66666667%; + } + + .col-xl-3 { + flex : 0 0 auto; + width: 25%; + } + + .col-xl-4 { + flex : 0 0 auto; + width: 33.33333333%; + } + + .col-xl-5 { + flex : 0 0 auto; + width: 41.66666667%; + } + + .col-xl-6 { + flex : 0 0 auto; + width: 50%; + } + + .col-xl-7 { + flex : 0 0 auto; + width: 58.33333333%; + } + + .col-xl-8 { + flex : 0 0 auto; + width: 66.66666667%; + } + + .col-xl-9 { + flex : 0 0 auto; + width: 75%; + } + + .col-xl-10 { + flex : 0 0 auto; + width: 83.33333333%; + } + + .col-xl-11 { + flex : 0 0 auto; + width: 91.66666667%; + } + + .col-xl-12 { + flex : 0 0 auto; + width: 100%; + } + + .offset-xl-0 { + margin-left: 0; + } + + .offset-xl-1 { + margin-left: 8.33333333%; + } + + .offset-xl-2 { + margin-left: 16.66666667%; + } + + .offset-xl-3 { + margin-left: 25%; + } + + .offset-xl-4 { + margin-left: 33.33333333%; + } + + .offset-xl-5 { + margin-left: 41.66666667%; + } + + .offset-xl-6 { + margin-left: 50%; + } + + .offset-xl-7 { + margin-left: 58.33333333%; + } + + .offset-xl-8 { + margin-left: 66.66666667%; + } + + .offset-xl-9 { + margin-left: 75%; + } + + .offset-xl-10 { + margin-left: 83.33333333%; + } + + .offset-xl-11 { + margin-left: 91.66666667%; + } + + .g-xl-0, + .gx-xl-0 { + --bs-gutter-x: 0; + } + + .g-xl-0, + .gy-xl-0 { + --bs-gutter-y: 0; + } + + .g-xl-1, + .gx-xl-1 { + --bs-gutter-x: 0.25rem; + } + + .g-xl-1, + .gy-xl-1 { + --bs-gutter-y: 0.25rem; + } + + .g-xl-2, + .gx-xl-2 { + --bs-gutter-x: 0.5rem; + } + + .g-xl-2, + .gy-xl-2 { + --bs-gutter-y: 0.5rem; + } + + .g-xl-3, + .gx-xl-3 { + --bs-gutter-x: 1rem; + } + + .g-xl-3, + .gy-xl-3 { + --bs-gutter-y: 1rem; + } + + .g-xl-4, + .gx-xl-4 { + --bs-gutter-x: 1.5rem; + } + + .g-xl-4, + .gy-xl-4 { + --bs-gutter-y: 1.5rem; + } + + .g-xl-5, + .gx-xl-5 { + --bs-gutter-x: 3rem; + } + + .g-xl-5, + .gy-xl-5 { + --bs-gutter-y: 3rem; + } +} + +@media (min-width: 1400px) { + .col-xxl { + flex: 1 0 0%; + } + + .row-cols-xxl-auto>* { + flex : 0 0 auto; + width: auto; + } + + .row-cols-xxl-1>* { + flex : 0 0 auto; + width: 100%; + } + + .row-cols-xxl-2>* { + flex : 0 0 auto; + width: 50%; + } + + .row-cols-xxl-3>* { + flex : 0 0 auto; + width: 33.3333333333%; + } + + .row-cols-xxl-4>* { + flex : 0 0 auto; + width: 25%; + } + + .row-cols-xxl-5>* { + flex : 0 0 auto; + width: 20%; + } + + .row-cols-xxl-6>* { + flex : 0 0 auto; + width: 16.6666666667%; + } + + .col-xxl-auto { + flex : 0 0 auto; + width: auto; + } + + .col-xxl-1 { + flex : 0 0 auto; + width: 8.33333333%; + } + + .col-xxl-2 { + flex : 0 0 auto; + width: 16.66666667%; + } + + .col-xxl-3 { + flex : 0 0 auto; + width: 25%; + } + + .col-xxl-4 { + flex : 0 0 auto; + width: 33.33333333%; + } + + .col-xxl-5 { + flex : 0 0 auto; + width: 41.66666667%; + } + + .col-xxl-6 { + flex : 0 0 auto; + width: 50%; + } + + .col-xxl-7 { + flex : 0 0 auto; + width: 58.33333333%; + } + + .col-xxl-8 { + flex : 0 0 auto; + width: 66.66666667%; + } + + .col-xxl-9 { + flex : 0 0 auto; + width: 75%; + } + + .col-xxl-10 { + flex : 0 0 auto; + width: 83.33333333%; + } + + .col-xxl-11 { + flex : 0 0 auto; + width: 91.66666667%; + } + + .col-xxl-12 { + flex : 0 0 auto; + width: 100%; + } + + .offset-xxl-0 { + margin-left: 0; + } + + .offset-xxl-1 { + margin-left: 8.33333333%; + } + + .offset-xxl-2 { + margin-left: 16.66666667%; + } + + .offset-xxl-3 { + margin-left: 25%; + } + + .offset-xxl-4 { + margin-left: 33.33333333%; + } + + .offset-xxl-5 { + margin-left: 41.66666667%; + } + + .offset-xxl-6 { + margin-left: 50%; + } + + .offset-xxl-7 { + margin-left: 58.33333333%; + } + + .offset-xxl-8 { + margin-left: 66.66666667%; + } + + .offset-xxl-9 { + margin-left: 75%; + } + + .offset-xxl-10 { + margin-left: 83.33333333%; + } + + .offset-xxl-11 { + margin-left: 91.66666667%; + } + + .g-xxl-0, + .gx-xxl-0 { + --bs-gutter-x: 0; + } + + .g-xxl-0, + .gy-xxl-0 { + --bs-gutter-y: 0; + } + + .g-xxl-1, + .gx-xxl-1 { + --bs-gutter-x: 0.25rem; + } + + .g-xxl-1, + .gy-xxl-1 { + --bs-gutter-y: 0.25rem; + } + + .g-xxl-2, + .gx-xxl-2 { + --bs-gutter-x: 0.5rem; + } + + .g-xxl-2, + .gy-xxl-2 { + --bs-gutter-y: 0.5rem; + } + + .g-xxl-3, + .gx-xxl-3 { + --bs-gutter-x: 1rem; + } + + .g-xxl-3, + .gy-xxl-3 { + --bs-gutter-y: 1rem; + } + + .g-xxl-4, + .gx-xxl-4 { + --bs-gutter-x: 1.5rem; + } + + .g-xxl-4, + .gy-xxl-4 { + --bs-gutter-y: 1.5rem; + } + + .g-xxl-5, + .gx-xxl-5 { + --bs-gutter-x: 3rem; + } + + .g-xxl-5, + .gy-xxl-5 { + --bs-gutter-y: 3rem; + } +} + +.d-inline { + display: inline !important; +} + +.d-inline-block { + display: inline-block !important; +} + +.d-block { + display: block !important; +} + +.d-grid { + display: grid !important; +} + +.d-table { + display: table !important; +} + +.d-table-row { + display: table-row !important; +} + +.d-table-cell { + display: table-cell !important; +} + +.d-flex { + display: flex !important; +} + +.d-inline-flex { + display: inline-flex !important; +} + +.d-none { + display: none !important; +} + +.flex-fill { + flex: 1 1 auto !important; +} + +.flex-row { + flex-direction: row !important; +} + +.flex-column { + flex-direction: column !important; +} + +.flex-row-reverse { + flex-direction: row-reverse !important; +} + +.flex-column-reverse { + flex-direction: column-reverse !important; +} + +.flex-grow-0 { + flex-grow: 0 !important; +} + +.flex-grow-1 { + flex-grow: 1 !important; +} + +.flex-shrink-0 { + flex-shrink: 0 !important; +} + +.flex-shrink-1 { + flex-shrink: 1 !important; +} + +.flex-wrap { + flex-wrap: wrap !important; +} + +.flex-nowrap { + flex-wrap: nowrap !important; +} + +.flex-wrap-reverse { + flex-wrap: wrap-reverse !important; +} + +.justify-content-start { + justify-content: flex-start !important; +} + +.justify-content-end { + justify-content: flex-end !important; +} + +.justify-content-center { + justify-content: center !important; +} + +.justify-content-between { + justify-content: space-between !important; +} + +.justify-content-around { + justify-content: space-around !important; +} + +.justify-content-evenly { + justify-content: space-evenly !important; +} + +.align-items-start { + align-items: flex-start !important; +} + +.align-items-end { + align-items: flex-end !important; +} + +.align-items-center { + align-items: center !important; +} + +.align-items-baseline { + align-items: baseline !important; +} + +.align-items-stretch { + align-items: stretch !important; +} + +.align-content-start { + align-content: flex-start !important; +} + +.align-content-end { + align-content: flex-end !important; +} + +.align-content-center { + align-content: center !important; +} + +.align-content-between { + align-content: space-between !important; +} + +.align-content-around { + align-content: space-around !important; +} + +.align-content-stretch { + align-content: stretch !important; +} + +.align-self-auto { + align-self: auto !important; +} + +.align-self-start { + align-self: flex-start !important; +} + +.align-self-end { + align-self: flex-end !important; +} + +.align-self-center { + align-self: center !important; +} + +.align-self-baseline { + align-self: baseline !important; +} + +.align-self-stretch { + align-self: stretch !important; +} + +.order-first { + order: -1 !important; +} + +.order-0 { + order: 0 !important; +} + +.order-1 { + order: 1 !important; +} + +.order-2 { + order: 2 !important; +} + +.order-3 { + order: 3 !important; +} + +.order-4 { + order: 4 !important; +} + +.order-5 { + order: 5 !important; +} + +.order-last { + order: 6 !important; +} + +.m-0 { + margin: 0 !important; +} + +.m-1 { + margin: 0.25rem !important; +} + +.m-2 { + margin: 0.5rem !important; +} + +.m-3 { + margin: 1rem !important; +} + +.m-4 { + margin: 1.5rem !important; +} + +.m-5 { + margin: 3rem !important; +} + +.m-auto { + margin: auto !important; +} + +.mx-0 { + margin-right: 0 !important; + margin-left : 0 !important; +} + +.mx-1 { + margin-right: 0.25rem !important; + margin-left : 0.25rem !important; +} + +.mx-2 { + margin-right: 0.5rem !important; + margin-left : 0.5rem !important; +} + +.mx-3 { + margin-right: 1rem !important; + margin-left : 1rem !important; +} + +.mx-4 { + margin-right: 1.5rem !important; + margin-left : 1.5rem !important; +} + +.mx-5 { + margin-right: 3rem !important; + margin-left : 3rem !important; +} + +.mx-auto { + margin-right: auto !important; + margin-left : auto !important; +} + +.my-0 { + margin-top : 0 !important; + margin-bottom: 0 !important; +} + +.my-1 { + margin-top : 0.25rem !important; + margin-bottom: 0.25rem !important; +} + +.my-2 { + margin-top : 0.5rem !important; + margin-bottom: 0.5rem !important; +} + +.my-3 { + margin-top : 1rem !important; + margin-bottom: 1rem !important; +} + +.my-4 { + margin-top : 1.5rem !important; + margin-bottom: 1.5rem !important; +} + +.my-5 { + margin-top : 3rem !important; + margin-bottom: 3rem !important; +} + +.my-auto { + margin-top : auto !important; + margin-bottom: auto !important; +} + +.mt-0 { + margin-top: 0 !important; +} + +.mt-1 { + margin-top: 0.25rem !important; +} + +.mt-2 { + margin-top: 0.5rem !important; +} + +.mt-3 { + margin-top: 1rem !important; +} + +.mt-4 { + margin-top: 1.5rem !important; +} + +.mt-5 { + margin-top: 3rem !important; +} + +.mt-auto { + margin-top: auto !important; +} + +.me-0 { + margin-right: 0 !important; +} + +.me-1 { + margin-right: 0.25rem !important; +} + +.me-2 { + margin-right: 0.5rem !important; +} + +.me-3 { + margin-right: 1rem !important; +} + +.me-4 { + margin-right: 1.5rem !important; +} + +.me-5 { + margin-right: 3rem !important; +} + +.me-auto { + margin-right: auto !important; +} + +.mb-0 { + margin-bottom: 0 !important; +} + +.mb-1 { + margin-bottom: 0.25rem !important; +} + +.mb-2 { + margin-bottom: 0.5rem !important; +} + +.mb-3 { + margin-bottom: 1rem !important; +} + +.mb-4 { + margin-bottom: 1.5rem !important; +} + +.mb-5 { + margin-bottom: 3rem !important; +} + +.mb-auto { + margin-bottom: auto !important; +} + +.ms-0 { + margin-left: 0 !important; +} + +.ms-1 { + margin-left: 0.25rem !important; +} + +.ms-2 { + margin-left: 0.5rem !important; +} + +.ms-3 { + margin-left: 1rem !important; +} + +.ms-4 { + margin-left: 1.5rem !important; +} + +.ms-5 { + margin-left: 3rem !important; +} + +.ms-auto { + margin-left: auto !important; +} + +.p-0 { + padding: 0 !important; +} + +.p-1 { + padding: 0.25rem !important; +} + +.p-2 { + padding: 0.5rem !important; +} + +.p-3 { + padding: 1rem !important; +} + +.p-4 { + padding: 1.5rem !important; +} + +.p-5 { + padding: 3rem !important; +} + +.px-0 { + padding-right: 0 !important; + padding-left : 0 !important; +} + +.px-1 { + padding-right: 0.25rem !important; + padding-left : 0.25rem !important; +} + +.px-2 { + padding-right: 0.5rem !important; + padding-left : 0.5rem !important; +} + +.px-3 { + padding-right: 1rem !important; + padding-left : 1rem !important; +} + +.px-4 { + padding-right: 1.5rem !important; + padding-left : 1.5rem !important; +} + +.px-5 { + padding-right: 3rem !important; + padding-left : 3rem !important; +} + +.py-0 { + padding-top : 0 !important; + padding-bottom: 0 !important; +} + +.py-1 { + padding-top : 0.25rem !important; + padding-bottom: 0.25rem !important; +} + +.py-2 { + padding-top : 0.5rem !important; + padding-bottom: 0.5rem !important; +} + +.py-3 { + padding-top : 1rem !important; + padding-bottom: 1rem !important; +} + +.py-4 { + padding-top : 1.5rem !important; + padding-bottom: 1.5rem !important; +} + +.py-5 { + padding-top : 3rem !important; + padding-bottom: 3rem !important; +} + +.pt-0 { + padding-top: 0 !important; +} + +.pt-1 { + padding-top: 0.25rem !important; +} + +.pt-2 { + padding-top: 0.5rem !important; +} + +.pt-3 { + padding-top: 1rem !important; +} + +.pt-4 { + padding-top: 1.5rem !important; +} + +.pt-5 { + padding-top: 3rem !important; +} + +.pe-0 { + padding-right: 0 !important; +} + +.pe-1 { + padding-right: 0.25rem !important; +} + +.pe-2 { + padding-right: 0.5rem !important; +} + +.pe-3 { + padding-right: 1rem !important; +} + +.pe-4 { + padding-right: 1.5rem !important; +} + +.pe-5 { + padding-right: 3rem !important; +} + +.pb-0 { + padding-bottom: 0 !important; +} + +.pb-1 { + padding-bottom: 0.25rem !important; +} + +.pb-2 { + padding-bottom: 0.5rem !important; +} + +.pb-3 { + padding-bottom: 1rem !important; +} + +.pb-4 { + padding-bottom: 1.5rem !important; +} + +.pb-5 { + padding-bottom: 3rem !important; +} + +.ps-0 { + padding-left: 0 !important; +} + +.ps-1 { + padding-left: 0.25rem !important; +} + +.ps-2 { + padding-left: 0.5rem !important; +} + +.ps-3 { + padding-left: 1rem !important; +} + +.ps-4 { + padding-left: 1.5rem !important; +} + +.ps-5 { + padding-left: 3rem !important; +} + +@media (min-width: 576px) { + .d-sm-inline { + display: inline !important; + } + + .d-sm-inline-block { + display: inline-block !important; + } + + .d-sm-block { + display: block !important; + } + + .d-sm-grid { + display: grid !important; + } + + .d-sm-table { + display: table !important; + } + + .d-sm-table-row { + display: table-row !important; + } + + .d-sm-table-cell { + display: table-cell !important; + } + + .d-sm-flex { + display: flex !important; + } + + .d-sm-inline-flex { + display: inline-flex !important; + } + + .d-sm-none { + display: none !important; + } + + .flex-sm-fill { + flex: 1 1 auto !important; + } + + .flex-sm-row { + flex-direction: row !important; + } + + .flex-sm-column { + flex-direction: column !important; + } + + .flex-sm-row-reverse { + flex-direction: row-reverse !important; + } + + .flex-sm-column-reverse { + flex-direction: column-reverse !important; + } + + .flex-sm-grow-0 { + flex-grow: 0 !important; + } + + .flex-sm-grow-1 { + flex-grow: 1 !important; + } + + .flex-sm-shrink-0 { + flex-shrink: 0 !important; + } + + .flex-sm-shrink-1 { + flex-shrink: 1 !important; + } + + .flex-sm-wrap { + flex-wrap: wrap !important; + } + + .flex-sm-nowrap { + flex-wrap: nowrap !important; + } + + .flex-sm-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .justify-content-sm-start { + justify-content: flex-start !important; + } + + .justify-content-sm-end { + justify-content: flex-end !important; + } + + .justify-content-sm-center { + justify-content: center !important; + } + + .justify-content-sm-between { + justify-content: space-between !important; + } + + .justify-content-sm-around { + justify-content: space-around !important; + } + + .justify-content-sm-evenly { + justify-content: space-evenly !important; + } + + .align-items-sm-start { + align-items: flex-start !important; + } + + .align-items-sm-end { + align-items: flex-end !important; + } + + .align-items-sm-center { + align-items: center !important; + } + + .align-items-sm-baseline { + align-items: baseline !important; + } + + .align-items-sm-stretch { + align-items: stretch !important; + } + + .align-content-sm-start { + align-content: flex-start !important; + } + + .align-content-sm-end { + align-content: flex-end !important; + } + + .align-content-sm-center { + align-content: center !important; + } + + .align-content-sm-between { + align-content: space-between !important; + } + + .align-content-sm-around { + align-content: space-around !important; + } + + .align-content-sm-stretch { + align-content: stretch !important; + } + + .align-self-sm-auto { + align-self: auto !important; + } + + .align-self-sm-start { + align-self: flex-start !important; + } + + .align-self-sm-end { + align-self: flex-end !important; + } + + .align-self-sm-center { + align-self: center !important; + } + + .align-self-sm-baseline { + align-self: baseline !important; + } + + .align-self-sm-stretch { + align-self: stretch !important; + } + + .order-sm-first { + order: -1 !important; + } + + .order-sm-0 { + order: 0 !important; + } + + .order-sm-1 { + order: 1 !important; + } + + .order-sm-2 { + order: 2 !important; + } + + .order-sm-3 { + order: 3 !important; + } + + .order-sm-4 { + order: 4 !important; + } + + .order-sm-5 { + order: 5 !important; + } + + .order-sm-last { + order: 6 !important; + } + + .m-sm-0 { + margin: 0 !important; + } + + .m-sm-1 { + margin: 0.25rem !important; + } + + .m-sm-2 { + margin: 0.5rem !important; + } + + .m-sm-3 { + margin: 1rem !important; + } + + .m-sm-4 { + margin: 1.5rem !important; + } + + .m-sm-5 { + margin: 3rem !important; + } + + .m-sm-auto { + margin: auto !important; + } + + .mx-sm-0 { + margin-right: 0 !important; + margin-left : 0 !important; + } + + .mx-sm-1 { + margin-right: 0.25rem !important; + margin-left : 0.25rem !important; + } + + .mx-sm-2 { + margin-right: 0.5rem !important; + margin-left : 0.5rem !important; + } + + .mx-sm-3 { + margin-right: 1rem !important; + margin-left : 1rem !important; + } + + .mx-sm-4 { + margin-right: 1.5rem !important; + margin-left : 1.5rem !important; + } + + .mx-sm-5 { + margin-right: 3rem !important; + margin-left : 3rem !important; + } + + .mx-sm-auto { + margin-right: auto !important; + margin-left : auto !important; + } + + .my-sm-0 { + margin-top : 0 !important; + margin-bottom: 0 !important; + } + + .my-sm-1 { + margin-top : 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .my-sm-2 { + margin-top : 0.5rem !important; + margin-bottom: 0.5rem !important; + } + + .my-sm-3 { + margin-top : 1rem !important; + margin-bottom: 1rem !important; + } + + .my-sm-4 { + margin-top : 1.5rem !important; + margin-bottom: 1.5rem !important; + } + + .my-sm-5 { + margin-top : 3rem !important; + margin-bottom: 3rem !important; + } + + .my-sm-auto { + margin-top : auto !important; + margin-bottom: auto !important; + } + + .mt-sm-0 { + margin-top: 0 !important; + } + + .mt-sm-1 { + margin-top: 0.25rem !important; + } + + .mt-sm-2 { + margin-top: 0.5rem !important; + } + + .mt-sm-3 { + margin-top: 1rem !important; + } + + .mt-sm-4 { + margin-top: 1.5rem !important; + } + + .mt-sm-5 { + margin-top: 3rem !important; + } + + .mt-sm-auto { + margin-top: auto !important; + } + + .me-sm-0 { + margin-right: 0 !important; + } + + .me-sm-1 { + margin-right: 0.25rem !important; + } + + .me-sm-2 { + margin-right: 0.5rem !important; + } + + .me-sm-3 { + margin-right: 1rem !important; + } + + .me-sm-4 { + margin-right: 1.5rem !important; + } + + .me-sm-5 { + margin-right: 3rem !important; + } + + .me-sm-auto { + margin-right: auto !important; + } + + .mb-sm-0 { + margin-bottom: 0 !important; + } + + .mb-sm-1 { + margin-bottom: 0.25rem !important; + } + + .mb-sm-2 { + margin-bottom: 0.5rem !important; + } + + .mb-sm-3 { + margin-bottom: 1rem !important; + } + + .mb-sm-4 { + margin-bottom: 1.5rem !important; + } + + .mb-sm-5 { + margin-bottom: 3rem !important; + } + + .mb-sm-auto { + margin-bottom: auto !important; + } + + .ms-sm-0 { + margin-left: 0 !important; + } + + .ms-sm-1 { + margin-left: 0.25rem !important; + } + + .ms-sm-2 { + margin-left: 0.5rem !important; + } + + .ms-sm-3 { + margin-left: 1rem !important; + } + + .ms-sm-4 { + margin-left: 1.5rem !important; + } + + .ms-sm-5 { + margin-left: 3rem !important; + } + + .ms-sm-auto { + margin-left: auto !important; + } + + .p-sm-0 { + padding: 0 !important; + } + + .p-sm-1 { + padding: 0.25rem !important; + } + + .p-sm-2 { + padding: 0.5rem !important; + } + + .p-sm-3 { + padding: 1rem !important; + } + + .p-sm-4 { + padding: 1.5rem !important; + } + + .p-sm-5 { + padding: 3rem !important; + } + + .px-sm-0 { + padding-right: 0 !important; + padding-left : 0 !important; + } + + .px-sm-1 { + padding-right: 0.25rem !important; + padding-left : 0.25rem !important; + } + + .px-sm-2 { + padding-right: 0.5rem !important; + padding-left : 0.5rem !important; + } + + .px-sm-3 { + padding-right: 1rem !important; + padding-left : 1rem !important; + } + + .px-sm-4 { + padding-right: 1.5rem !important; + padding-left : 1.5rem !important; + } + + .px-sm-5 { + padding-right: 3rem !important; + padding-left : 3rem !important; + } + + .py-sm-0 { + padding-top : 0 !important; + padding-bottom: 0 !important; + } + + .py-sm-1 { + padding-top : 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .py-sm-2 { + padding-top : 0.5rem !important; + padding-bottom: 0.5rem !important; + } + + .py-sm-3 { + padding-top : 1rem !important; + padding-bottom: 1rem !important; + } + + .py-sm-4 { + padding-top : 1.5rem !important; + padding-bottom: 1.5rem !important; + } + + .py-sm-5 { + padding-top : 3rem !important; + padding-bottom: 3rem !important; + } + + .pt-sm-0 { + padding-top: 0 !important; + } + + .pt-sm-1 { + padding-top: 0.25rem !important; + } + + .pt-sm-2 { + padding-top: 0.5rem !important; + } + + .pt-sm-3 { + padding-top: 1rem !important; + } + + .pt-sm-4 { + padding-top: 1.5rem !important; + } + + .pt-sm-5 { + padding-top: 3rem !important; + } + + .pe-sm-0 { + padding-right: 0 !important; + } + + .pe-sm-1 { + padding-right: 0.25rem !important; + } + + .pe-sm-2 { + padding-right: 0.5rem !important; + } + + .pe-sm-3 { + padding-right: 1rem !important; + } + + .pe-sm-4 { + padding-right: 1.5rem !important; + } + + .pe-sm-5 { + padding-right: 3rem !important; + } + + .pb-sm-0 { + padding-bottom: 0 !important; + } + + .pb-sm-1 { + padding-bottom: 0.25rem !important; + } + + .pb-sm-2 { + padding-bottom: 0.5rem !important; + } + + .pb-sm-3 { + padding-bottom: 1rem !important; + } + + .pb-sm-4 { + padding-bottom: 1.5rem !important; + } + + .pb-sm-5 { + padding-bottom: 3rem !important; + } + + .ps-sm-0 { + padding-left: 0 !important; + } + + .ps-sm-1 { + padding-left: 0.25rem !important; + } + + .ps-sm-2 { + padding-left: 0.5rem !important; + } + + .ps-sm-3 { + padding-left: 1rem !important; + } + + .ps-sm-4 { + padding-left: 1.5rem !important; + } + + .ps-sm-5 { + padding-left: 3rem !important; + } +} + +@media (min-width: 768px) { + .d-md-inline { + display: inline !important; + } + + .d-md-inline-block { + display: inline-block !important; + } + + .d-md-block { + display: block !important; + } + + .d-md-grid { + display: grid !important; + } + + .d-md-table { + display: table !important; + } + + .d-md-table-row { + display: table-row !important; + } + + .d-md-table-cell { + display: table-cell !important; + } + + .d-md-flex { + display: flex !important; + } + + .d-md-inline-flex { + display: inline-flex !important; + } + + .d-md-none { + display: none !important; + } + + .flex-md-fill { + flex: 1 1 auto !important; + } + + .flex-md-row { + flex-direction: row !important; + } + + .flex-md-column { + flex-direction: column !important; + } + + .flex-md-row-reverse { + flex-direction: row-reverse !important; + } + + .flex-md-column-reverse { + flex-direction: column-reverse !important; + } + + .flex-md-grow-0 { + flex-grow: 0 !important; + } + + .flex-md-grow-1 { + flex-grow: 1 !important; + } + + .flex-md-shrink-0 { + flex-shrink: 0 !important; + } + + .flex-md-shrink-1 { + flex-shrink: 1 !important; + } + + .flex-md-wrap { + flex-wrap: wrap !important; + } + + .flex-md-nowrap { + flex-wrap: nowrap !important; + } + + .flex-md-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .justify-content-md-start { + justify-content: flex-start !important; + } + + .justify-content-md-end { + justify-content: flex-end !important; + } + + .justify-content-md-center { + justify-content: center !important; + } + + .justify-content-md-between { + justify-content: space-between !important; + } + + .justify-content-md-around { + justify-content: space-around !important; + } + + .justify-content-md-evenly { + justify-content: space-evenly !important; + } + + .align-items-md-start { + align-items: flex-start !important; + } + + .align-items-md-end { + align-items: flex-end !important; + } + + .align-items-md-center { + align-items: center !important; + } + + .align-items-md-baseline { + align-items: baseline !important; + } + + .align-items-md-stretch { + align-items: stretch !important; + } + + .align-content-md-start { + align-content: flex-start !important; + } + + .align-content-md-end { + align-content: flex-end !important; + } + + .align-content-md-center { + align-content: center !important; + } + + .align-content-md-between { + align-content: space-between !important; + } + + .align-content-md-around { + align-content: space-around !important; + } + + .align-content-md-stretch { + align-content: stretch !important; + } + + .align-self-md-auto { + align-self: auto !important; + } + + .align-self-md-start { + align-self: flex-start !important; + } + + .align-self-md-end { + align-self: flex-end !important; + } + + .align-self-md-center { + align-self: center !important; + } + + .align-self-md-baseline { + align-self: baseline !important; + } + + .align-self-md-stretch { + align-self: stretch !important; + } + + .order-md-first { + order: -1 !important; + } + + .order-md-0 { + order: 0 !important; + } + + .order-md-1 { + order: 1 !important; + } + + .order-md-2 { + order: 2 !important; + } + + .order-md-3 { + order: 3 !important; + } + + .order-md-4 { + order: 4 !important; + } + + .order-md-5 { + order: 5 !important; + } + + .order-md-last { + order: 6 !important; + } + + .m-md-0 { + margin: 0 !important; + } + + .m-md-1 { + margin: 0.25rem !important; + } + + .m-md-2 { + margin: 0.5rem !important; + } + + .m-md-3 { + margin: 1rem !important; + } + + .m-md-4 { + margin: 1.5rem !important; + } + + .m-md-5 { + margin: 3rem !important; + } + + .m-md-auto { + margin: auto !important; + } + + .mx-md-0 { + margin-right: 0 !important; + margin-left : 0 !important; + } + + .mx-md-1 { + margin-right: 0.25rem !important; + margin-left : 0.25rem !important; + } + + .mx-md-2 { + margin-right: 0.5rem !important; + margin-left : 0.5rem !important; + } + + .mx-md-3 { + margin-right: 1rem !important; + margin-left : 1rem !important; + } + + .mx-md-4 { + margin-right: 1.5rem !important; + margin-left : 1.5rem !important; + } + + .mx-md-5 { + margin-right: 3rem !important; + margin-left : 3rem !important; + } + + .mx-md-auto { + margin-right: auto !important; + margin-left : auto !important; + } + + .my-md-0 { + margin-top : 0 !important; + margin-bottom: 0 !important; + } + + .my-md-1 { + margin-top : 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .my-md-2 { + margin-top : 0.5rem !important; + margin-bottom: 0.5rem !important; + } + + .my-md-3 { + margin-top : 1rem !important; + margin-bottom: 1rem !important; + } + + .my-md-4 { + margin-top : 1.5rem !important; + margin-bottom: 1.5rem !important; + } + + .my-md-5 { + margin-top : 3rem !important; + margin-bottom: 3rem !important; + } + + .my-md-auto { + margin-top : auto !important; + margin-bottom: auto !important; + } + + .mt-md-0 { + margin-top: 0 !important; + } + + .mt-md-1 { + margin-top: 0.25rem !important; + } + + .mt-md-2 { + margin-top: 0.5rem !important; + } + + .mt-md-3 { + margin-top: 1rem !important; + } + + .mt-md-4 { + margin-top: 1.5rem !important; + } + + .mt-md-5 { + margin-top: 3rem !important; + } + + .mt-md-auto { + margin-top: auto !important; + } + + .me-md-0 { + margin-right: 0 !important; + } + + .me-md-1 { + margin-right: 0.25rem !important; + } + + .me-md-2 { + margin-right: 0.5rem !important; + } + + .me-md-3 { + margin-right: 1rem !important; + } + + .me-md-4 { + margin-right: 1.5rem !important; + } + + .me-md-5 { + margin-right: 3rem !important; + } + + .me-md-auto { + margin-right: auto !important; + } + + .mb-md-0 { + margin-bottom: 0 !important; + } + + .mb-md-1 { + margin-bottom: 0.25rem !important; + } + + .mb-md-2 { + margin-bottom: 0.5rem !important; + } + + .mb-md-3 { + margin-bottom: 1rem !important; + } + + .mb-md-4 { + margin-bottom: 1.5rem !important; + } + + .mb-md-5 { + margin-bottom: 3rem !important; + } + + .mb-md-auto { + margin-bottom: auto !important; + } + + .ms-md-0 { + margin-left: 0 !important; + } + + .ms-md-1 { + margin-left: 0.25rem !important; + } + + .ms-md-2 { + margin-left: 0.5rem !important; + } + + .ms-md-3 { + margin-left: 1rem !important; + } + + .ms-md-4 { + margin-left: 1.5rem !important; + } + + .ms-md-5 { + margin-left: 3rem !important; + } + + .ms-md-auto { + margin-left: auto !important; + } + + .p-md-0 { + padding: 0 !important; + } + + .p-md-1 { + padding: 0.25rem !important; + } + + .p-md-2 { + padding: 0.5rem !important; + } + + .p-md-3 { + padding: 1rem !important; + } + + .p-md-4 { + padding: 1.5rem !important; + } + + .p-md-5 { + padding: 3rem !important; + } + + .px-md-0 { + padding-right: 0 !important; + padding-left : 0 !important; + } + + .px-md-1 { + padding-right: 0.25rem !important; + padding-left : 0.25rem !important; + } + + .px-md-2 { + padding-right: 0.5rem !important; + padding-left : 0.5rem !important; + } + + .px-md-3 { + padding-right: 1rem !important; + padding-left : 1rem !important; + } + + .px-md-4 { + padding-right: 1.5rem !important; + padding-left : 1.5rem !important; + } + + .px-md-5 { + padding-right: 3rem !important; + padding-left : 3rem !important; + } + + .py-md-0 { + padding-top : 0 !important; + padding-bottom: 0 !important; + } + + .py-md-1 { + padding-top : 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .py-md-2 { + padding-top : 0.5rem !important; + padding-bottom: 0.5rem !important; + } + + .py-md-3 { + padding-top : 1rem !important; + padding-bottom: 1rem !important; + } + + .py-md-4 { + padding-top : 1.5rem !important; + padding-bottom: 1.5rem !important; + } + + .py-md-5 { + padding-top : 3rem !important; + padding-bottom: 3rem !important; + } + + .pt-md-0 { + padding-top: 0 !important; + } + + .pt-md-1 { + padding-top: 0.25rem !important; + } + + .pt-md-2 { + padding-top: 0.5rem !important; + } + + .pt-md-3 { + padding-top: 1rem !important; + } + + .pt-md-4 { + padding-top: 1.5rem !important; + } + + .pt-md-5 { + padding-top: 3rem !important; + } + + .pe-md-0 { + padding-right: 0 !important; + } + + .pe-md-1 { + padding-right: 0.25rem !important; + } + + .pe-md-2 { + padding-right: 0.5rem !important; + } + + .pe-md-3 { + padding-right: 1rem !important; + } + + .pe-md-4 { + padding-right: 1.5rem !important; + } + + .pe-md-5 { + padding-right: 3rem !important; + } + + .pb-md-0 { + padding-bottom: 0 !important; + } + + .pb-md-1 { + padding-bottom: 0.25rem !important; + } + + .pb-md-2 { + padding-bottom: 0.5rem !important; + } + + .pb-md-3 { + padding-bottom: 1rem !important; + } + + .pb-md-4 { + padding-bottom: 1.5rem !important; + } + + .pb-md-5 { + padding-bottom: 3rem !important; + } + + .ps-md-0 { + padding-left: 0 !important; + } + + .ps-md-1 { + padding-left: 0.25rem !important; + } + + .ps-md-2 { + padding-left: 0.5rem !important; + } + + .ps-md-3 { + padding-left: 1rem !important; + } + + .ps-md-4 { + padding-left: 1.5rem !important; + } + + .ps-md-5 { + padding-left: 3rem !important; + } +} + +@media (min-width: 992px) { + .d-lg-inline { + display: inline !important; + } + + .d-lg-inline-block { + display: inline-block !important; + } + + .d-lg-block { + display: block !important; + } + + .d-lg-grid { + display: grid !important; + } + + .d-lg-table { + display: table !important; + } + + .d-lg-table-row { + display: table-row !important; + } + + .d-lg-table-cell { + display: table-cell !important; + } + + .d-lg-flex { + display: flex !important; + } + + .d-lg-inline-flex { + display: inline-flex !important; + } + + .d-lg-none { + display: none !important; + } + + .flex-lg-fill { + flex: 1 1 auto !important; + } + + .flex-lg-row { + flex-direction: row !important; + } + + .flex-lg-column { + flex-direction: column !important; + } + + .flex-lg-row-reverse { + flex-direction: row-reverse !important; + } + + .flex-lg-column-reverse { + flex-direction: column-reverse !important; + } + + .flex-lg-grow-0 { + flex-grow: 0 !important; + } + + .flex-lg-grow-1 { + flex-grow: 1 !important; + } + + .flex-lg-shrink-0 { + flex-shrink: 0 !important; + } + + .flex-lg-shrink-1 { + flex-shrink: 1 !important; + } + + .flex-lg-wrap { + flex-wrap: wrap !important; + } + + .flex-lg-nowrap { + flex-wrap: nowrap !important; + } + + .flex-lg-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .justify-content-lg-start { + justify-content: flex-start !important; + } + + .justify-content-lg-end { + justify-content: flex-end !important; + } + + .justify-content-lg-center { + justify-content: center !important; + } + + .justify-content-lg-between { + justify-content: space-between !important; + } + + .justify-content-lg-around { + justify-content: space-around !important; + } + + .justify-content-lg-evenly { + justify-content: space-evenly !important; + } + + .align-items-lg-start { + align-items: flex-start !important; + } + + .align-items-lg-end { + align-items: flex-end !important; + } + + .align-items-lg-center { + align-items: center !important; + } + + .align-items-lg-baseline { + align-items: baseline !important; + } + + .align-items-lg-stretch { + align-items: stretch !important; + } + + .align-content-lg-start { + align-content: flex-start !important; + } + + .align-content-lg-end { + align-content: flex-end !important; + } + + .align-content-lg-center { + align-content: center !important; + } + + .align-content-lg-between { + align-content: space-between !important; + } + + .align-content-lg-around { + align-content: space-around !important; + } + + .align-content-lg-stretch { + align-content: stretch !important; + } + + .align-self-lg-auto { + align-self: auto !important; + } + + .align-self-lg-start { + align-self: flex-start !important; + } + + .align-self-lg-end { + align-self: flex-end !important; + } + + .align-self-lg-center { + align-self: center !important; + } + + .align-self-lg-baseline { + align-self: baseline !important; + } + + .align-self-lg-stretch { + align-self: stretch !important; + } + + .order-lg-first { + order: -1 !important; + } + + .order-lg-0 { + order: 0 !important; + } + + .order-lg-1 { + order: 1 !important; + } + + .order-lg-2 { + order: 2 !important; + } + + .order-lg-3 { + order: 3 !important; + } + + .order-lg-4 { + order: 4 !important; + } + + .order-lg-5 { + order: 5 !important; + } + + .order-lg-last { + order: 6 !important; + } + + .m-lg-0 { + margin: 0 !important; + } + + .m-lg-1 { + margin: 0.25rem !important; + } + + .m-lg-2 { + margin: 0.5rem !important; + } + + .m-lg-3 { + margin: 1rem !important; + } + + .m-lg-4 { + margin: 1.5rem !important; + } + + .m-lg-5 { + margin: 3rem !important; + } + + .m-lg-auto { + margin: auto !important; + } + + .mx-lg-0 { + margin-right: 0 !important; + margin-left : 0 !important; + } + + .mx-lg-1 { + margin-right: 0.25rem !important; + margin-left : 0.25rem !important; + } + + .mx-lg-2 { + margin-right: 0.5rem !important; + margin-left : 0.5rem !important; + } + + .mx-lg-3 { + margin-right: 1rem !important; + margin-left : 1rem !important; + } + + .mx-lg-4 { + margin-right: 1.5rem !important; + margin-left : 1.5rem !important; + } + + .mx-lg-5 { + margin-right: 3rem !important; + margin-left : 3rem !important; + } + + .mx-lg-auto { + margin-right: auto !important; + margin-left : auto !important; + } + + .my-lg-0 { + margin-top : 0 !important; + margin-bottom: 0 !important; + } + + .my-lg-1 { + margin-top : 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .my-lg-2 { + margin-top : 0.5rem !important; + margin-bottom: 0.5rem !important; + } + + .my-lg-3 { + margin-top : 1rem !important; + margin-bottom: 1rem !important; + } + + .my-lg-4 { + margin-top : 1.5rem !important; + margin-bottom: 1.5rem !important; + } + + .my-lg-5 { + margin-top : 3rem !important; + margin-bottom: 3rem !important; + } + + .my-lg-auto { + margin-top : auto !important; + margin-bottom: auto !important; + } + + .mt-lg-0 { + margin-top: 0 !important; + } + + .mt-lg-1 { + margin-top: 0.25rem !important; + } + + .mt-lg-2 { + margin-top: 0.5rem !important; + } + + .mt-lg-3 { + margin-top: 1rem !important; + } + + .mt-lg-4 { + margin-top: 1.5rem !important; + } + + .mt-lg-5 { + margin-top: 3rem !important; + } + + .mt-lg-auto { + margin-top: auto !important; + } + + .me-lg-0 { + margin-right: 0 !important; + } + + .me-lg-1 { + margin-right: 0.25rem !important; + } + + .me-lg-2 { + margin-right: 0.5rem !important; + } + + .me-lg-3 { + margin-right: 1rem !important; + } + + .me-lg-4 { + margin-right: 1.5rem !important; + } + + .me-lg-5 { + margin-right: 3rem !important; + } + + .me-lg-auto { + margin-right: auto !important; + } + + .mb-lg-0 { + margin-bottom: 0 !important; + } + + .mb-lg-1 { + margin-bottom: 0.25rem !important; + } + + .mb-lg-2 { + margin-bottom: 0.5rem !important; + } + + .mb-lg-3 { + margin-bottom: 1rem !important; + } + + .mb-lg-4 { + margin-bottom: 1.5rem !important; + } + + .mb-lg-5 { + margin-bottom: 3rem !important; + } + + .mb-lg-auto { + margin-bottom: auto !important; + } + + .ms-lg-0 { + margin-left: 0 !important; + } + + .ms-lg-1 { + margin-left: 0.25rem !important; + } + + .ms-lg-2 { + margin-left: 0.5rem !important; + } + + .ms-lg-3 { + margin-left: 1rem !important; + } + + .ms-lg-4 { + margin-left: 1.5rem !important; + } + + .ms-lg-5 { + margin-left: 3rem !important; + } + + .ms-lg-auto { + margin-left: auto !important; + } + + .p-lg-0 { + padding: 0 !important; + } + + .p-lg-1 { + padding: 0.25rem !important; + } + + .p-lg-2 { + padding: 0.5rem !important; + } + + .p-lg-3 { + padding: 1rem !important; + } + + .p-lg-4 { + padding: 1.5rem !important; + } + + .p-lg-5 { + padding: 3rem !important; + } + + .px-lg-0 { + padding-right: 0 !important; + padding-left : 0 !important; + } + + .px-lg-1 { + padding-right: 0.25rem !important; + padding-left : 0.25rem !important; + } + + .px-lg-2 { + padding-right: 0.5rem !important; + padding-left : 0.5rem !important; + } + + .px-lg-3 { + padding-right: 1rem !important; + padding-left : 1rem !important; + } + + .px-lg-4 { + padding-right: 1.5rem !important; + padding-left : 1.5rem !important; + } + + .px-lg-5 { + padding-right: 3rem !important; + padding-left : 3rem !important; + } + + .py-lg-0 { + padding-top : 0 !important; + padding-bottom: 0 !important; + } + + .py-lg-1 { + padding-top : 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .py-lg-2 { + padding-top : 0.5rem !important; + padding-bottom: 0.5rem !important; + } + + .py-lg-3 { + padding-top : 1rem !important; + padding-bottom: 1rem !important; + } + + .py-lg-4 { + padding-top : 1.5rem !important; + padding-bottom: 1.5rem !important; + } + + .py-lg-5 { + padding-top : 3rem !important; + padding-bottom: 3rem !important; + } + + .pt-lg-0 { + padding-top: 0 !important; + } + + .pt-lg-1 { + padding-top: 0.25rem !important; + } + + .pt-lg-2 { + padding-top: 0.5rem !important; + } + + .pt-lg-3 { + padding-top: 1rem !important; + } + + .pt-lg-4 { + padding-top: 1.5rem !important; + } + + .pt-lg-5 { + padding-top: 3rem !important; + } + + .pe-lg-0 { + padding-right: 0 !important; + } + + .pe-lg-1 { + padding-right: 0.25rem !important; + } + + .pe-lg-2 { + padding-right: 0.5rem !important; + } + + .pe-lg-3 { + padding-right: 1rem !important; + } + + .pe-lg-4 { + padding-right: 1.5rem !important; + } + + .pe-lg-5 { + padding-right: 3rem !important; + } + + .pb-lg-0 { + padding-bottom: 0 !important; + } + + .pb-lg-1 { + padding-bottom: 0.25rem !important; + } + + .pb-lg-2 { + padding-bottom: 0.5rem !important; + } + + .pb-lg-3 { + padding-bottom: 1rem !important; + } + + .pb-lg-4 { + padding-bottom: 1.5rem !important; + } + + .pb-lg-5 { + padding-bottom: 3rem !important; + } + + .ps-lg-0 { + padding-left: 0 !important; + } + + .ps-lg-1 { + padding-left: 0.25rem !important; + } + + .ps-lg-2 { + padding-left: 0.5rem !important; + } + + .ps-lg-3 { + padding-left: 1rem !important; + } + + .ps-lg-4 { + padding-left: 1.5rem !important; + } + + .ps-lg-5 { + padding-left: 3rem !important; + } +} + +@media (min-width: 1200px) { + .d-xl-inline { + display: inline !important; + } + + .d-xl-inline-block { + display: inline-block !important; + } + + .d-xl-block { + display: block !important; + } + + .d-xl-grid { + display: grid !important; + } + + .d-xl-table { + display: table !important; + } + + .d-xl-table-row { + display: table-row !important; + } + + .d-xl-table-cell { + display: table-cell !important; + } + + .d-xl-flex { + display: flex !important; + } + + .d-xl-inline-flex { + display: inline-flex !important; + } + + .d-xl-none { + display: none !important; + } + + .flex-xl-fill { + flex: 1 1 auto !important; + } + + .flex-xl-row { + flex-direction: row !important; + } + + .flex-xl-column { + flex-direction: column !important; + } + + .flex-xl-row-reverse { + flex-direction: row-reverse !important; + } + + .flex-xl-column-reverse { + flex-direction: column-reverse !important; + } + + .flex-xl-grow-0 { + flex-grow: 0 !important; + } + + .flex-xl-grow-1 { + flex-grow: 1 !important; + } + + .flex-xl-shrink-0 { + flex-shrink: 0 !important; + } + + .flex-xl-shrink-1 { + flex-shrink: 1 !important; + } + + .flex-xl-wrap { + flex-wrap: wrap !important; + } + + .flex-xl-nowrap { + flex-wrap: nowrap !important; + } + + .flex-xl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .justify-content-xl-start { + justify-content: flex-start !important; + } + + .justify-content-xl-end { + justify-content: flex-end !important; + } + + .justify-content-xl-center { + justify-content: center !important; + } + + .justify-content-xl-between { + justify-content: space-between !important; + } + + .justify-content-xl-around { + justify-content: space-around !important; + } + + .justify-content-xl-evenly { + justify-content: space-evenly !important; + } + + .align-items-xl-start { + align-items: flex-start !important; + } + + .align-items-xl-end { + align-items: flex-end !important; + } + + .align-items-xl-center { + align-items: center !important; + } + + .align-items-xl-baseline { + align-items: baseline !important; + } + + .align-items-xl-stretch { + align-items: stretch !important; + } + + .align-content-xl-start { + align-content: flex-start !important; + } + + .align-content-xl-end { + align-content: flex-end !important; + } + + .align-content-xl-center { + align-content: center !important; + } + + .align-content-xl-between { + align-content: space-between !important; + } + + .align-content-xl-around { + align-content: space-around !important; + } + + .align-content-xl-stretch { + align-content: stretch !important; + } + + .align-self-xl-auto { + align-self: auto !important; + } + + .align-self-xl-start { + align-self: flex-start !important; + } + + .align-self-xl-end { + align-self: flex-end !important; + } + + .align-self-xl-center { + align-self: center !important; + } + + .align-self-xl-baseline { + align-self: baseline !important; + } + + .align-self-xl-stretch { + align-self: stretch !important; + } + + .order-xl-first { + order: -1 !important; + } + + .order-xl-0 { + order: 0 !important; + } + + .order-xl-1 { + order: 1 !important; + } + + .order-xl-2 { + order: 2 !important; + } + + .order-xl-3 { + order: 3 !important; + } + + .order-xl-4 { + order: 4 !important; + } + + .order-xl-5 { + order: 5 !important; + } + + .order-xl-last { + order: 6 !important; + } + + .m-xl-0 { + margin: 0 !important; + } + + .m-xl-1 { + margin: 0.25rem !important; + } + + .m-xl-2 { + margin: 0.5rem !important; + } + + .m-xl-3 { + margin: 1rem !important; + } + + .m-xl-4 { + margin: 1.5rem !important; + } + + .m-xl-5 { + margin: 3rem !important; + } + + .m-xl-auto { + margin: auto !important; + } + + .mx-xl-0 { + margin-right: 0 !important; + margin-left : 0 !important; + } + + .mx-xl-1 { + margin-right: 0.25rem !important; + margin-left : 0.25rem !important; + } + + .mx-xl-2 { + margin-right: 0.5rem !important; + margin-left : 0.5rem !important; + } + + .mx-xl-3 { + margin-right: 1rem !important; + margin-left : 1rem !important; + } + + .mx-xl-4 { + margin-right: 1.5rem !important; + margin-left : 1.5rem !important; + } + + .mx-xl-5 { + margin-right: 3rem !important; + margin-left : 3rem !important; + } + + .mx-xl-auto { + margin-right: auto !important; + margin-left : auto !important; + } + + .my-xl-0 { + margin-top : 0 !important; + margin-bottom: 0 !important; + } + + .my-xl-1 { + margin-top : 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .my-xl-2 { + margin-top : 0.5rem !important; + margin-bottom: 0.5rem !important; + } + + .my-xl-3 { + margin-top : 1rem !important; + margin-bottom: 1rem !important; + } + + .my-xl-4 { + margin-top : 1.5rem !important; + margin-bottom: 1.5rem !important; + } + + .my-xl-5 { + margin-top : 3rem !important; + margin-bottom: 3rem !important; + } + + .my-xl-auto { + margin-top : auto !important; + margin-bottom: auto !important; + } + + .mt-xl-0 { + margin-top: 0 !important; + } + + .mt-xl-1 { + margin-top: 0.25rem !important; + } + + .mt-xl-2 { + margin-top: 0.5rem !important; + } + + .mt-xl-3 { + margin-top: 1rem !important; + } + + .mt-xl-4 { + margin-top: 1.5rem !important; + } + + .mt-xl-5 { + margin-top: 3rem !important; + } + + .mt-xl-auto { + margin-top: auto !important; + } + + .me-xl-0 { + margin-right: 0 !important; + } + + .me-xl-1 { + margin-right: 0.25rem !important; + } + + .me-xl-2 { + margin-right: 0.5rem !important; + } + + .me-xl-3 { + margin-right: 1rem !important; + } + + .me-xl-4 { + margin-right: 1.5rem !important; + } + + .me-xl-5 { + margin-right: 3rem !important; + } + + .me-xl-auto { + margin-right: auto !important; + } + + .mb-xl-0 { + margin-bottom: 0 !important; + } + + .mb-xl-1 { + margin-bottom: 0.25rem !important; + } + + .mb-xl-2 { + margin-bottom: 0.5rem !important; + } + + .mb-xl-3 { + margin-bottom: 1rem !important; + } + + .mb-xl-4 { + margin-bottom: 1.5rem !important; + } + + .mb-xl-5 { + margin-bottom: 3rem !important; + } + + .mb-xl-auto { + margin-bottom: auto !important; + } + + .ms-xl-0 { + margin-left: 0 !important; + } + + .ms-xl-1 { + margin-left: 0.25rem !important; + } + + .ms-xl-2 { + margin-left: 0.5rem !important; + } + + .ms-xl-3 { + margin-left: 1rem !important; + } + + .ms-xl-4 { + margin-left: 1.5rem !important; + } + + .ms-xl-5 { + margin-left: 3rem !important; + } + + .ms-xl-auto { + margin-left: auto !important; + } + + .p-xl-0 { + padding: 0 !important; + } + + .p-xl-1 { + padding: 0.25rem !important; + } + + .p-xl-2 { + padding: 0.5rem !important; + } + + .p-xl-3 { + padding: 1rem !important; + } + + .p-xl-4 { + padding: 1.5rem !important; + } + + .p-xl-5 { + padding: 3rem !important; + } + + .px-xl-0 { + padding-right: 0 !important; + padding-left : 0 !important; + } + + .px-xl-1 { + padding-right: 0.25rem !important; + padding-left : 0.25rem !important; + } + + .px-xl-2 { + padding-right: 0.5rem !important; + padding-left : 0.5rem !important; + } + + .px-xl-3 { + padding-right: 1rem !important; + padding-left : 1rem !important; + } + + .px-xl-4 { + padding-right: 1.5rem !important; + padding-left : 1.5rem !important; + } + + .px-xl-5 { + padding-right: 3rem !important; + padding-left : 3rem !important; + } + + .py-xl-0 { + padding-top : 0 !important; + padding-bottom: 0 !important; + } + + .py-xl-1 { + padding-top : 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .py-xl-2 { + padding-top : 0.5rem !important; + padding-bottom: 0.5rem !important; + } + + .py-xl-3 { + padding-top : 1rem !important; + padding-bottom: 1rem !important; + } + + .py-xl-4 { + padding-top : 1.5rem !important; + padding-bottom: 1.5rem !important; + } + + .py-xl-5 { + padding-top : 3rem !important; + padding-bottom: 3rem !important; + } + + .pt-xl-0 { + padding-top: 0 !important; + } + + .pt-xl-1 { + padding-top: 0.25rem !important; + } + + .pt-xl-2 { + padding-top: 0.5rem !important; + } + + .pt-xl-3 { + padding-top: 1rem !important; + } + + .pt-xl-4 { + padding-top: 1.5rem !important; + } + + .pt-xl-5 { + padding-top: 3rem !important; + } + + .pe-xl-0 { + padding-right: 0 !important; + } + + .pe-xl-1 { + padding-right: 0.25rem !important; + } + + .pe-xl-2 { + padding-right: 0.5rem !important; + } + + .pe-xl-3 { + padding-right: 1rem !important; + } + + .pe-xl-4 { + padding-right: 1.5rem !important; + } + + .pe-xl-5 { + padding-right: 3rem !important; + } + + .pb-xl-0 { + padding-bottom: 0 !important; + } + + .pb-xl-1 { + padding-bottom: 0.25rem !important; + } + + .pb-xl-2 { + padding-bottom: 0.5rem !important; + } + + .pb-xl-3 { + padding-bottom: 1rem !important; + } + + .pb-xl-4 { + padding-bottom: 1.5rem !important; + } + + .pb-xl-5 { + padding-bottom: 3rem !important; + } + + .ps-xl-0 { + padding-left: 0 !important; + } + + .ps-xl-1 { + padding-left: 0.25rem !important; + } + + .ps-xl-2 { + padding-left: 0.5rem !important; + } + + .ps-xl-3 { + padding-left: 1rem !important; + } + + .ps-xl-4 { + padding-left: 1.5rem !important; + } + + .ps-xl-5 { + padding-left: 3rem !important; + } +} + +@media (min-width: 1400px) { + .d-xxl-inline { + display: inline !important; + } + + .d-xxl-inline-block { + display: inline-block !important; + } + + .d-xxl-block { + display: block !important; + } + + .d-xxl-grid { + display: grid !important; + } + + .d-xxl-table { + display: table !important; + } + + .d-xxl-table-row { + display: table-row !important; + } + + .d-xxl-table-cell { + display: table-cell !important; + } + + .d-xxl-flex { + display: flex !important; + } + + .d-xxl-inline-flex { + display: inline-flex !important; + } + + .d-xxl-none { + display: none !important; + } + + .flex-xxl-fill { + flex: 1 1 auto !important; + } + + .flex-xxl-row { + flex-direction: row !important; + } + + .flex-xxl-column { + flex-direction: column !important; + } + + .flex-xxl-row-reverse { + flex-direction: row-reverse !important; + } + + .flex-xxl-column-reverse { + flex-direction: column-reverse !important; + } + + .flex-xxl-grow-0 { + flex-grow: 0 !important; + } + + .flex-xxl-grow-1 { + flex-grow: 1 !important; + } + + .flex-xxl-shrink-0 { + flex-shrink: 0 !important; + } + + .flex-xxl-shrink-1 { + flex-shrink: 1 !important; + } + + .flex-xxl-wrap { + flex-wrap: wrap !important; + } + + .flex-xxl-nowrap { + flex-wrap: nowrap !important; + } + + .flex-xxl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .justify-content-xxl-start { + justify-content: flex-start !important; + } + + .justify-content-xxl-end { + justify-content: flex-end !important; + } + + .justify-content-xxl-center { + justify-content: center !important; + } + + .justify-content-xxl-between { + justify-content: space-between !important; + } + + .justify-content-xxl-around { + justify-content: space-around !important; + } + + .justify-content-xxl-evenly { + justify-content: space-evenly !important; + } + + .align-items-xxl-start { + align-items: flex-start !important; + } + + .align-items-xxl-end { + align-items: flex-end !important; + } + + .align-items-xxl-center { + align-items: center !important; + } + + .align-items-xxl-baseline { + align-items: baseline !important; + } + + .align-items-xxl-stretch { + align-items: stretch !important; + } + + .align-content-xxl-start { + align-content: flex-start !important; + } + + .align-content-xxl-end { + align-content: flex-end !important; + } + + .align-content-xxl-center { + align-content: center !important; + } + + .align-content-xxl-between { + align-content: space-between !important; + } + + .align-content-xxl-around { + align-content: space-around !important; + } + + .align-content-xxl-stretch { + align-content: stretch !important; + } + + .align-self-xxl-auto { + align-self: auto !important; + } + + .align-self-xxl-start { + align-self: flex-start !important; + } + + .align-self-xxl-end { + align-self: flex-end !important; + } + + .align-self-xxl-center { + align-self: center !important; + } + + .align-self-xxl-baseline { + align-self: baseline !important; + } + + .align-self-xxl-stretch { + align-self: stretch !important; + } + + .order-xxl-first { + order: -1 !important; + } + + .order-xxl-0 { + order: 0 !important; + } + + .order-xxl-1 { + order: 1 !important; + } + + .order-xxl-2 { + order: 2 !important; + } + + .order-xxl-3 { + order: 3 !important; + } + + .order-xxl-4 { + order: 4 !important; + } + + .order-xxl-5 { + order: 5 !important; + } + + .order-xxl-last { + order: 6 !important; + } + + .m-xxl-0 { + margin: 0 !important; + } + + .m-xxl-1 { + margin: 0.25rem !important; + } + + .m-xxl-2 { + margin: 0.5rem !important; + } + + .m-xxl-3 { + margin: 1rem !important; + } + + .m-xxl-4 { + margin: 1.5rem !important; + } + + .m-xxl-5 { + margin: 3rem !important; + } + + .m-xxl-auto { + margin: auto !important; + } + + .mx-xxl-0 { + margin-right: 0 !important; + margin-left : 0 !important; + } + + .mx-xxl-1 { + margin-right: 0.25rem !important; + margin-left : 0.25rem !important; + } + + .mx-xxl-2 { + margin-right: 0.5rem !important; + margin-left : 0.5rem !important; + } + + .mx-xxl-3 { + margin-right: 1rem !important; + margin-left : 1rem !important; + } + + .mx-xxl-4 { + margin-right: 1.5rem !important; + margin-left : 1.5rem !important; + } + + .mx-xxl-5 { + margin-right: 3rem !important; + margin-left : 3rem !important; + } + + .mx-xxl-auto { + margin-right: auto !important; + margin-left : auto !important; + } + + .my-xxl-0 { + margin-top : 0 !important; + margin-bottom: 0 !important; + } + + .my-xxl-1 { + margin-top : 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .my-xxl-2 { + margin-top : 0.5rem !important; + margin-bottom: 0.5rem !important; + } + + .my-xxl-3 { + margin-top : 1rem !important; + margin-bottom: 1rem !important; + } + + .my-xxl-4 { + margin-top : 1.5rem !important; + margin-bottom: 1.5rem !important; + } + + .my-xxl-5 { + margin-top : 3rem !important; + margin-bottom: 3rem !important; + } + + .my-xxl-auto { + margin-top : auto !important; + margin-bottom: auto !important; + } + + .mt-xxl-0 { + margin-top: 0 !important; + } + + .mt-xxl-1 { + margin-top: 0.25rem !important; + } + + .mt-xxl-2 { + margin-top: 0.5rem !important; + } + + .mt-xxl-3 { + margin-top: 1rem !important; + } + + .mt-xxl-4 { + margin-top: 1.5rem !important; + } + + .mt-xxl-5 { + margin-top: 3rem !important; + } + + .mt-xxl-auto { + margin-top: auto !important; + } + + .me-xxl-0 { + margin-right: 0 !important; + } + + .me-xxl-1 { + margin-right: 0.25rem !important; + } + + .me-xxl-2 { + margin-right: 0.5rem !important; + } + + .me-xxl-3 { + margin-right: 1rem !important; + } + + .me-xxl-4 { + margin-right: 1.5rem !important; + } + + .me-xxl-5 { + margin-right: 3rem !important; + } + + .me-xxl-auto { + margin-right: auto !important; + } + + .mb-xxl-0 { + margin-bottom: 0 !important; + } + + .mb-xxl-1 { + margin-bottom: 0.25rem !important; + } + + .mb-xxl-2 { + margin-bottom: 0.5rem !important; + } + + .mb-xxl-3 { + margin-bottom: 1rem !important; + } + + .mb-xxl-4 { + margin-bottom: 1.5rem !important; + } + + .mb-xxl-5 { + margin-bottom: 3rem !important; + } + + .mb-xxl-auto { + margin-bottom: auto !important; + } + + .ms-xxl-0 { + margin-left: 0 !important; + } + + .ms-xxl-1 { + margin-left: 0.25rem !important; + } + + .ms-xxl-2 { + margin-left: 0.5rem !important; + } + + .ms-xxl-3 { + margin-left: 1rem !important; + } + + .ms-xxl-4 { + margin-left: 1.5rem !important; + } + + .ms-xxl-5 { + margin-left: 3rem !important; + } + + .ms-xxl-auto { + margin-left: auto !important; + } + + .p-xxl-0 { + padding: 0 !important; + } + + .p-xxl-1 { + padding: 0.25rem !important; + } + + .p-xxl-2 { + padding: 0.5rem !important; + } + + .p-xxl-3 { + padding: 1rem !important; + } + + .p-xxl-4 { + padding: 1.5rem !important; + } + + .p-xxl-5 { + padding: 3rem !important; + } + + .px-xxl-0 { + padding-right: 0 !important; + padding-left : 0 !important; + } + + .px-xxl-1 { + padding-right: 0.25rem !important; + padding-left : 0.25rem !important; + } + + .px-xxl-2 { + padding-right: 0.5rem !important; + padding-left : 0.5rem !important; + } + + .px-xxl-3 { + padding-right: 1rem !important; + padding-left : 1rem !important; + } + + .px-xxl-4 { + padding-right: 1.5rem !important; + padding-left : 1.5rem !important; + } + + .px-xxl-5 { + padding-right: 3rem !important; + padding-left : 3rem !important; + } + + .py-xxl-0 { + padding-top : 0 !important; + padding-bottom: 0 !important; + } + + .py-xxl-1 { + padding-top : 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .py-xxl-2 { + padding-top : 0.5rem !important; + padding-bottom: 0.5rem !important; + } + + .py-xxl-3 { + padding-top : 1rem !important; + padding-bottom: 1rem !important; + } + + .py-xxl-4 { + padding-top : 1.5rem !important; + padding-bottom: 1.5rem !important; + } + + .py-xxl-5 { + padding-top : 3rem !important; + padding-bottom: 3rem !important; + } + + .pt-xxl-0 { + padding-top: 0 !important; + } + + .pt-xxl-1 { + padding-top: 0.25rem !important; + } + + .pt-xxl-2 { + padding-top: 0.5rem !important; + } + + .pt-xxl-3 { + padding-top: 1rem !important; + } + + .pt-xxl-4 { + padding-top: 1.5rem !important; + } + + .pt-xxl-5 { + padding-top: 3rem !important; + } + + .pe-xxl-0 { + padding-right: 0 !important; + } + + .pe-xxl-1 { + padding-right: 0.25rem !important; + } + + .pe-xxl-2 { + padding-right: 0.5rem !important; + } + + .pe-xxl-3 { + padding-right: 1rem !important; + } + + .pe-xxl-4 { + padding-right: 1.5rem !important; + } + + .pe-xxl-5 { + padding-right: 3rem !important; + } + + .pb-xxl-0 { + padding-bottom: 0 !important; + } + + .pb-xxl-1 { + padding-bottom: 0.25rem !important; + } + + .pb-xxl-2 { + padding-bottom: 0.5rem !important; + } + + .pb-xxl-3 { + padding-bottom: 1rem !important; + } + + .pb-xxl-4 { + padding-bottom: 1.5rem !important; + } + + .pb-xxl-5 { + padding-bottom: 3rem !important; + } + + .ps-xxl-0 { + padding-left: 0 !important; + } + + .ps-xxl-1 { + padding-left: 0.25rem !important; + } + + .ps-xxl-2 { + padding-left: 0.5rem !important; + } + + .ps-xxl-3 { + padding-left: 1rem !important; + } + + .ps-xxl-4 { + padding-left: 1.5rem !important; + } + + .ps-xxl-5 { + padding-left: 3rem !important; + } +} + +@media print { + .d-print-inline { + display: inline !important; + } + + .d-print-inline-block { + display: inline-block !important; + } + + .d-print-block { + display: block !important; + } + + .d-print-grid { + display: grid !important; + } + + .d-print-table { + display: table !important; + } + + .d-print-table-row { + display: table-row !important; + } + + .d-print-table-cell { + display: table-cell !important; + } + + .d-print-flex { + display: flex !important; + } + + .d-print-inline-flex { + display: inline-flex !important; + } + + .d-print-none { + display: none !important; + } +} + +// Tooltips +.tooltip { + position : absolute; + z-index : 1080; + display : block; + margin : 0; + font-family : var(--bs-font-sans-serif); + font-style : normal; + font-weight : 400; + line-height : 1.5; + text-align : left; + text-align : start; + text-decoration: none; + text-shadow : none; + text-transform : none; + letter-spacing : normal; + word-break : normal; + word-spacing : normal; + white-space : normal; + line-break : auto; + font-size : 0.875rem; + word-wrap : break-word; + opacity : 0; + pointer-events: none; +} + +.tooltip.show { + opacity: 0.9; +} + +.tooltip .tooltip-arrow { + position: absolute; + display : block; + width : 0.8rem; + height : 0.4rem; +} + +.tooltip .tooltip-arrow::before { + position : absolute; + content : ""; + border-color: transparent; + border-style: solid; +} + +.bs-tooltip-top, +.bs-tooltip-auto[data-popper-placement^=top] { + padding: 0.4rem 0; +} + +.bs-tooltip-top .tooltip-arrow, +.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow { + bottom: 0; +} + +.bs-tooltip-top .tooltip-arrow::before, +.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before { + top : -1px; + border-width : 0.4rem 0.4rem 0; + border-top-color: #000; +} + +.bs-tooltip-end, +.bs-tooltip-auto[data-popper-placement^=right] { + padding: 0 0.4rem; +} + +.bs-tooltip-end .tooltip-arrow, +.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow { + left : 0; + width : 0.4rem; + height: 0.8rem; +} + +.bs-tooltip-end .tooltip-arrow::before, +.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before { + right : -1px; + border-width : 0.4rem 0.4rem 0.4rem 0; + border-right-color: #000; +} + +.bs-tooltip-bottom, +.bs-tooltip-auto[data-popper-placement^=bottom] { + padding: 0.4rem 0; +} + +.bs-tooltip-bottom .tooltip-arrow, +.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow { + top: 0; +} + +.bs-tooltip-bottom .tooltip-arrow::before, +.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before { + bottom : -1px; + border-width : 0 0.4rem 0.4rem; + border-bottom-color: #000; +} + +.bs-tooltip-start, +.bs-tooltip-auto[data-popper-placement^=left] { + padding: 0 0.4rem; +} + +.bs-tooltip-start .tooltip-arrow, +.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow { + right : 0; + width : 0.4rem; + height: 0.8rem; +} + +.bs-tooltip-start .tooltip-arrow::before, +.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before { + left : -1px; + border-width : 0.4rem 0 0.4rem 0.4rem; + border-left-color: #000; +} + +.tooltip-inner { + max-width : 200px; + padding : 0.25rem 0.5rem; + color : #fff; + text-align : center; + background-color: #000; + border-radius : 0.25rem; + -webkit-user-select: none; + user-select: none; + pointer-events: none; +} + +.popover { + position: absolute; + top : 0; + left : 0 + /* rtl:ignore */ + ; + z-index : 1070; + display : block; + max-width : 276px; + font-family : var(--bs-font-sans-serif); + font-style : normal; + font-weight : 400; + line-height : 1.5; + text-align : left; + text-align : start; + text-decoration : none; + text-shadow : none; + text-transform : none; + letter-spacing : normal; + word-break : normal; + word-spacing : normal; + white-space : normal; + line-break : auto; + font-size : 0.875rem; + word-wrap : break-word; + background-color: #fff; + background-clip : padding-box; + border : 1px solid rgba(0, 0, 0, 0.2); + border-radius : 0.3rem; +} + +.popover .popover-arrow { + position: absolute; + display : block; + width : 1rem; + height : 0.5rem; +} + +.popover .popover-arrow::before, +.popover .popover-arrow::after { + position : absolute; + display : block; + content : ""; + border-color: transparent; + border-style: solid; +} + +.bs-popover-top>.popover-arrow, +.bs-popover-auto[data-popper-placement^=top]>.popover-arrow { + bottom: calc(-0.5rem - 1px); +} + +.bs-popover-top>.popover-arrow::before, +.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before { + bottom : 0; + border-width : 0.5rem 0.5rem 0; + border-top-color: rgba(0, 0, 0, 0.25); +} + +.bs-popover-top>.popover-arrow::after, +.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after { + bottom : 1px; + border-width : 0.5rem 0.5rem 0; + border-top-color: #fff; +} + +.bs-popover-end>.popover-arrow, +.bs-popover-auto[data-popper-placement^=right]>.popover-arrow { + left : calc(-0.5rem - 1px); + width : 0.5rem; + height: 1rem; +} + +.bs-popover-end>.popover-arrow::before, +.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before { + left : 0; + border-width : 0.5rem 0.5rem 0.5rem 0; + border-right-color: rgba(0, 0, 0, 0.25); +} + +.bs-popover-end>.popover-arrow::after, +.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after { + left : 1px; + border-width : 0.5rem 0.5rem 0.5rem 0; + border-right-color: #fff; +} + +.bs-popover-bottom>.popover-arrow, +.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow { + top: calc(-0.5rem - 1px); +} + +.bs-popover-bottom>.popover-arrow::before, +.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before { + top : 0; + border-width : 0 0.5rem 0.5rem 0.5rem; + border-bottom-color: rgba(0, 0, 0, 0.25); +} + +.bs-popover-bottom>.popover-arrow::after, +.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after { + top : 1px; + border-width : 0 0.5rem 0.5rem 0.5rem; + border-bottom-color: #fff; +} + +.bs-popover-bottom .popover-header::before, +.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before { + position : absolute; + top : 0; + left : 50%; + display : block; + width : 1rem; + margin-left : -0.5rem; + content : ""; + border-bottom: 1px solid #f0f0f0; +} + +.bs-popover-start>.popover-arrow, +.bs-popover-auto[data-popper-placement^=left]>.popover-arrow { + right : calc(-0.5rem - 1px); + width : 0.5rem; + height: 1rem; +} + +.bs-popover-start>.popover-arrow::before, +.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before { + right : 0; + border-width : 0.5rem 0 0.5rem 0.5rem; + border-left-color: rgba(0, 0, 0, 0.25); +} + +.bs-popover-start>.popover-arrow::after, +.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after { + right : 1px; + border-width : 0.5rem 0 0.5rem 0.5rem; + border-left-color: #fff; +} + +.popover-header { + padding : 0.5rem 1rem; + margin-bottom : 0; + font-size : 1rem; + background-color : #f0f0f0; + border-bottom : 1px solid rgba(0, 0, 0, 0.2); + border-top-left-radius : calc(0.3rem - 1px); + border-top-right-radius: calc(0.3rem - 1px); +} + +.popover-header:empty { + display: none; +} + +.popover-body { + padding: 1rem 1rem; + color : #212529; +} + +// carousel +.carousel { + position: relative; +} + +.carousel.pointer-event { + -ms-touch-action: pan-y; + touch-action: pan-y; +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} + +.carousel-inner::after { + display: block; + clear: both; + content: ""; +} + +.carousel-item { + position: relative; + display: none; + float: left; + width: 100%; + margin-right: -100%; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + transition: -webkit-transform 0.6s ease-in-out; + transition: transform 0.6s ease-in-out; + transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .carousel-item { + transition: none; + } +} + +.carousel-item.active, +.carousel-item-next, +.carousel-item-prev { + display: block; +} + +.carousel-item-next:not(.carousel-item-left), +.active.carousel-item-right { + -webkit-transform: translateX(100%); + transform: translateX(100%); +} + +.carousel-item-prev:not(.carousel-item-right), +.active.carousel-item-left { + -webkit-transform: translateX(-100%); + transform: translateX(-100%); +} + +.carousel-fade .carousel-item { + opacity: 0; + transition-property: opacity; + -webkit-transform: none; + transform: none; +} + +.carousel-fade .carousel-item.active, +.carousel-fade .carousel-item-next.carousel-item-left, +.carousel-fade .carousel-item-prev.carousel-item-right { + z-index: 1; + opacity: 1; +} + +.carousel-fade .active.carousel-item-left, +.carousel-fade .active.carousel-item-right { + z-index: 0; + opacity: 0; + transition: opacity 0s 0.6s; +} + +@media (prefers-reduced-motion: reduce) { + .carousel-fade .active.carousel-item-left, + .carousel-fade .active.carousel-item-right { + transition: none; + } +} + +.carousel-control-prev, +.carousel-control-next { + position: absolute; + top: 0; + bottom: 0; + z-index: 1; + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + -ms-flex-pack: center; + justify-content: center; + width: 15%; + padding: 0; + color: #fff; + text-align: center; + background: none; + border: 0; + opacity: 0.5; + transition: opacity 0.15s ease; +} + +@media (prefers-reduced-motion: reduce) { + .carousel-control-prev, + .carousel-control-next { + transition: none; + } +} + +.carousel-control-prev:hover, .carousel-control-prev:focus, +.carousel-control-next:hover, +.carousel-control-next:focus { + color: #fff; + text-decoration: none; + outline: 0; + opacity: 0.9; +} + +.carousel-control-prev { + left: 0; +} + +.carousel-control-next { + right: 0; +} + +.carousel-control-prev-icon, +.carousel-control-next-icon { + display: inline-block; + width: 20px; + height: 20px; + background: 50% / 100% 100% no-repeat; +} + +.carousel-control-prev-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e"); +} + +.carousel-control-next-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e"); +} + +.carousel-indicators { + position: absolute; + right: 0; + bottom: 0; + left: 0; + z-index: 15; + display: -ms-flexbox; + display: flex; + -ms-flex-pack: center; + justify-content: center; + padding-left: 0; + margin-right: 15%; + margin-left: 15%; + list-style: none; +} + +.carousel-indicators li { + box-sizing: content-box; + -ms-flex: 0 1 auto; + flex: 0 1 auto; + width: 30px; + height: 3px; + margin-right: 3px; + margin-left: 3px; + text-indent: -999px; + cursor: pointer; + background-color: #fff; + background-clip: padding-box; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + opacity: .5; + transition: opacity 0.6s ease; +} + +@media (prefers-reduced-motion: reduce) { + .carousel-indicators li { + transition: none; + } +} + +.carousel-indicators .active { + opacity: 1; +} + +.carousel-caption { + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #fff; + text-align: center; +} diff --git a/src/renderer/less/codicon.css b/src/renderer/less/codicon.css new file mode 100644 index 00000000..bd00654c --- /dev/null +++ b/src/renderer/less/codicon.css @@ -0,0 +1,553 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +@font-face { + font-family: "codicon"; + font-display: block; + src: url("codicon.ttf") format("truetype"); +} + +.codicon[class*='codicon-'] { + font: normal normal normal 16px/1 codicon; + display: inline-block; + text-decoration: none; + text-rendering: auto; + text-align: center; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + user-select: none; + -webkit-user-select: none; + -ms-user-select: none; +} + +/*--------------------- + * Modifiers + *-------------------*/ + +@keyframes codicon-spin { + 100% { + transform:rotate(360deg); + } +} + +.codicon-sync.codicon-modifier-spin, +.codicon-loading.codicon-modifier-spin, +.codicon-gear.codicon-modifier-spin { + /* Use steps to throttle FPS to reduce CPU usage */ + animation: codicon-spin 1.5s steps(30) infinite; +} + +.codicon-modifier-disabled { + opacity: 0.5; +} + +/* custom speed & easing for loading icon */ +.codicon-loading { + animation-duration: 1s !important; + animation-timing-function: cubic-bezier(0.53, 0.21, 0.29, 0.67) !important; +} + +/*--------------------- + * Icons + *-------------------*/ + +.codicon-add:before { content: "\ea60" } +.codicon-plus:before { content: "\ea60" } +.codicon-gist-new:before { content: "\ea60" } +.codicon-repo-create:before { content: "\ea60" } +.codicon-lightbulb:before { content: "\ea61" } +.codicon-light-bulb:before { content: "\ea61" } +.codicon-repo:before { content: "\ea62" } +.codicon-repo-delete:before { content: "\ea62" } +.codicon-gist-fork:before { content: "\ea63" } +.codicon-repo-forked:before { content: "\ea63" } +.codicon-git-pull-request:before { content: "\ea64" } +.codicon-git-pull-request-abandoned:before { content: "\ea64" } +.codicon-record-keys:before { content: "\ea65" } +.codicon-keyboard:before { content: "\ea65" } +.codicon-tag:before { content: "\ea66" } +.codicon-tag-add:before { content: "\ea66" } +.codicon-tag-remove:before { content: "\ea66" } +.codicon-person:before { content: "\ea67" } +.codicon-person-follow:before { content: "\ea67" } +.codicon-person-outline:before { content: "\ea67" } +.codicon-person-filled:before { content: "\ea67" } +.codicon-git-branch:before { content: "\ea68" } +.codicon-git-branch-create:before { content: "\ea68" } +.codicon-git-branch-delete:before { content: "\ea68" } +.codicon-source-control:before { content: "\ea68" } +.codicon-mirror:before { content: "\ea69" } +.codicon-mirror-public:before { content: "\ea69" } +.codicon-star:before { content: "\ea6a" } +.codicon-star-add:before { content: "\ea6a" } +.codicon-star-delete:before { content: "\ea6a" } +.codicon-star-empty:before { content: "\ea6a" } +.codicon-comment:before { content: "\ea6b" } +.codicon-comment-add:before { content: "\ea6b" } +.codicon-alert:before { content: "\ea6c" } +.codicon-warning:before { content: "\ea6c" } +.codicon-search:before { content: "\ea6d" } +.codicon-search-save:before { content: "\ea6d" } +.codicon-log-out:before { content: "\ea6e" } +.codicon-sign-out:before { content: "\ea6e" } +.codicon-log-in:before { content: "\ea6f" } +.codicon-sign-in:before { content: "\ea6f" } +.codicon-eye:before { content: "\ea70" } +.codicon-eye-unwatch:before { content: "\ea70" } +.codicon-eye-watch:before { content: "\ea70" } +.codicon-circle-filled:before { content: "\ea71" } +.codicon-primitive-dot:before { content: "\ea71" } +.codicon-close-dirty:before { content: "\ea71" } +.codicon-debug-breakpoint:before { content: "\ea71" } +.codicon-debug-breakpoint-disabled:before { content: "\ea71" } +.codicon-debug-hint:before { content: "\ea71" } +.codicon-primitive-square:before { content: "\ea72" } +.codicon-edit:before { content: "\ea73" } +.codicon-pencil:before { content: "\ea73" } +.codicon-info:before { content: "\ea74" } +.codicon-issue-opened:before { content: "\ea74" } +.codicon-gist-private:before { content: "\ea75" } +.codicon-git-fork-private:before { content: "\ea75" } +.codicon-lock:before { content: "\ea75" } +.codicon-mirror-private:before { content: "\ea75" } +.codicon-close:before { content: "\ea76" } +.codicon-remove-close:before { content: "\ea76" } +.codicon-x:before { content: "\ea76" } +.codicon-repo-sync:before { content: "\ea77" } +.codicon-sync:before { content: "\ea77" } +.codicon-clone:before { content: "\ea78" } +.codicon-desktop-download:before { content: "\ea78" } +.codicon-beaker:before { content: "\ea79" } +.codicon-microscope:before { content: "\ea79" } +.codicon-vm:before { content: "\ea7a" } +.codicon-device-desktop:before { content: "\ea7a" } +.codicon-file:before { content: "\ea7b" } +.codicon-file-text:before { content: "\ea7b" } +.codicon-more:before { content: "\ea7c" } +.codicon-ellipsis:before { content: "\ea7c" } +.codicon-kebab-horizontal:before { content: "\ea7c" } +.codicon-mail-reply:before { content: "\ea7d" } +.codicon-reply:before { content: "\ea7d" } +.codicon-organization:before { content: "\ea7e" } +.codicon-organization-filled:before { content: "\ea7e" } +.codicon-organization-outline:before { content: "\ea7e" } +.codicon-new-file:before { content: "\ea7f" } +.codicon-file-add:before { content: "\ea7f" } +.codicon-new-folder:before { content: "\ea80" } +.codicon-file-directory-create:before { content: "\ea80" } +.codicon-trash:before { content: "\ea81" } +.codicon-trashcan:before { content: "\ea81" } +.codicon-history:before { content: "\ea82" } +.codicon-clock:before { content: "\ea82" } +.codicon-folder:before { content: "\ea83" } +.codicon-file-directory:before { content: "\ea83" } +.codicon-symbol-folder:before { content: "\ea83" } +.codicon-logo-github:before { content: "\ea84" } +.codicon-mark-github:before { content: "\ea84" } +.codicon-github:before { content: "\ea84" } +.codicon-terminal:before { content: "\ea85" } +.codicon-console:before { content: "\ea85" } +.codicon-repl:before { content: "\ea85" } +.codicon-zap:before { content: "\ea86" } +.codicon-symbol-event:before { content: "\ea86" } +.codicon-error:before { content: "\ea87" } +.codicon-stop:before { content: "\ea87" } +.codicon-variable:before { content: "\ea88" } +.codicon-symbol-variable:before { content: "\ea88" } +.codicon-array:before { content: "\ea8a" } +.codicon-symbol-array:before { content: "\ea8a" } +.codicon-symbol-module:before { content: "\ea8b" } +.codicon-symbol-package:before { content: "\ea8b" } +.codicon-symbol-namespace:before { content: "\ea8b" } +.codicon-symbol-object:before { content: "\ea8b" } +.codicon-symbol-method:before { content: "\ea8c" } +.codicon-symbol-function:before { content: "\ea8c" } +.codicon-symbol-constructor:before { content: "\ea8c" } +.codicon-symbol-boolean:before { content: "\ea8f" } +.codicon-symbol-null:before { content: "\ea8f" } +.codicon-symbol-numeric:before { content: "\ea90" } +.codicon-symbol-number:before { content: "\ea90" } +.codicon-symbol-structure:before { content: "\ea91" } +.codicon-symbol-struct:before { content: "\ea91" } +.codicon-symbol-parameter:before { content: "\ea92" } +.codicon-symbol-type-parameter:before { content: "\ea92" } +.codicon-symbol-key:before { content: "\ea93" } +.codicon-symbol-text:before { content: "\ea93" } +.codicon-symbol-reference:before { content: "\ea94" } +.codicon-go-to-file:before { content: "\ea94" } +.codicon-symbol-enum:before { content: "\ea95" } +.codicon-symbol-value:before { content: "\ea95" } +.codicon-symbol-ruler:before { content: "\ea96" } +.codicon-symbol-unit:before { content: "\ea96" } +.codicon-activate-breakpoints:before { content: "\ea97" } +.codicon-archive:before { content: "\ea98" } +.codicon-arrow-both:before { content: "\ea99" } +.codicon-arrow-down:before { content: "\ea9a" } +.codicon-arrow-left:before { content: "\ea9b" } +.codicon-arrow-right:before { content: "\ea9c" } +.codicon-arrow-small-down:before { content: "\ea9d" } +.codicon-arrow-small-left:before { content: "\ea9e" } +.codicon-arrow-small-right:before { content: "\ea9f" } +.codicon-arrow-small-up:before { content: "\eaa0" } +.codicon-arrow-up:before { content: "\eaa1" } +.codicon-bell:before { content: "\eaa2" } +.codicon-bold:before { content: "\eaa3" } +.codicon-book:before { content: "\eaa4" } +.codicon-bookmark:before { content: "\eaa5" } +.codicon-debug-breakpoint-conditional-unverified:before { content: "\eaa6" } +.codicon-debug-breakpoint-conditional:before { content: "\eaa7" } +.codicon-debug-breakpoint-conditional-disabled:before { content: "\eaa7" } +.codicon-debug-breakpoint-data-unverified:before { content: "\eaa8" } +.codicon-debug-breakpoint-data:before { content: "\eaa9" } +.codicon-debug-breakpoint-data-disabled:before { content: "\eaa9" } +.codicon-debug-breakpoint-log-unverified:before { content: "\eaaa" } +.codicon-debug-breakpoint-log:before { content: "\eaab" } +.codicon-debug-breakpoint-log-disabled:before { content: "\eaab" } +.codicon-briefcase:before { content: "\eaac" } +.codicon-broadcast:before { content: "\eaad" } +.codicon-browser:before { content: "\eaae" } +.codicon-bug:before { content: "\eaaf" } +.codicon-calendar:before { content: "\eab0" } +.codicon-case-sensitive:before { content: "\eab1" } +.codicon-check:before { content: "\eab2" } +.codicon-checklist:before { content: "\eab3" } +.codicon-chevron-down:before { content: "\eab4" } +.codicon-chevron-left:before { content: "\eab5" } +.codicon-chevron-right:before { content: "\eab6" } +.codicon-chevron-up:before { content: "\eab7" } +.codicon-chrome-close:before { content: "\eab8" } +.codicon-chrome-maximize:before { content: "\eab9" } +.codicon-chrome-minimize:before { content: "\eaba" } +.codicon-chrome-restore:before { content: "\eabb" } +.codicon-circle-outline:before { content: "\eabc" } +.codicon-debug-breakpoint-unverified:before { content: "\eabc" } +.codicon-circle-slash:before { content: "\eabd" } +.codicon-circuit-board:before { content: "\eabe" } +.codicon-clear-all:before { content: "\eabf" } +.codicon-clippy:before { content: "\eac0" } +.codicon-close-all:before { content: "\eac1" } +.codicon-cloud-download:before { content: "\eac2" } +.codicon-cloud-upload:before { content: "\eac3" } +.codicon-code:before { content: "\eac4" } +.codicon-collapse-all:before { content: "\eac5" } +.codicon-color-mode:before { content: "\eac6" } +.codicon-comment-discussion:before { content: "\eac7" } +.codicon-credit-card:before { content: "\eac9" } +.codicon-dash:before { content: "\eacc" } +.codicon-dashboard:before { content: "\eacd" } +.codicon-database:before { content: "\eace" } +.codicon-debug-continue:before { content: "\eacf" } +.codicon-debug-disconnect:before { content: "\ead0" } +.codicon-debug-pause:before { content: "\ead1" } +.codicon-debug-restart:before { content: "\ead2" } +.codicon-debug-start:before { content: "\ead3" } +.codicon-debug-step-into:before { content: "\ead4" } +.codicon-debug-step-out:before { content: "\ead5" } +.codicon-debug-step-over:before { content: "\ead6" } +.codicon-debug-stop:before { content: "\ead7" } +.codicon-debug:before { content: "\ead8" } +.codicon-device-camera-video:before { content: "\ead9" } +.codicon-device-camera:before { content: "\eada" } +.codicon-device-mobile:before { content: "\eadb" } +.codicon-diff-added:before { content: "\eadc" } +.codicon-diff-ignored:before { content: "\eadd" } +.codicon-diff-modified:before { content: "\eade" } +.codicon-diff-removed:before { content: "\eadf" } +.codicon-diff-renamed:before { content: "\eae0" } +.codicon-diff:before { content: "\eae1" } +.codicon-discard:before { content: "\eae2" } +.codicon-editor-layout:before { content: "\eae3" } +.codicon-empty-window:before { content: "\eae4" } +.codicon-exclude:before { content: "\eae5" } +.codicon-extensions:before { content: "\eae6" } +.codicon-eye-closed:before { content: "\eae7" } +.codicon-file-binary:before { content: "\eae8" } +.codicon-file-code:before { content: "\eae9" } +.codicon-file-media:before { content: "\eaea" } +.codicon-file-pdf:before { content: "\eaeb" } +.codicon-file-submodule:before { content: "\eaec" } +.codicon-file-symlink-directory:before { content: "\eaed" } +.codicon-file-symlink-file:before { content: "\eaee" } +.codicon-file-zip:before { content: "\eaef" } +.codicon-files:before { content: "\eaf0" } +.codicon-filter:before { content: "\eaf1" } +.codicon-flame:before { content: "\eaf2" } +.codicon-fold-down:before { content: "\eaf3" } +.codicon-fold-up:before { content: "\eaf4" } +.codicon-fold:before { content: "\eaf5" } +.codicon-folder-active:before { content: "\eaf6" } +.codicon-folder-opened:before { content: "\eaf7" } +.codicon-gear:before { content: "\eaf8" } +.codicon-gift:before { content: "\eaf9" } +.codicon-gist-secret:before { content: "\eafa" } +.codicon-gist:before { content: "\eafb" } +.codicon-git-commit:before { content: "\eafc" } +.codicon-git-compare:before { content: "\eafd" } +.codicon-compare-changes:before { content: "\eafd" } +.codicon-git-merge:before { content: "\eafe" } +.codicon-github-action:before { content: "\eaff" } +.codicon-github-alt:before { content: "\eb00" } +.codicon-globe:before { content: "\eb01" } +.codicon-grabber:before { content: "\eb02" } +.codicon-graph:before { content: "\eb03" } +.codicon-gripper:before { content: "\eb04" } +.codicon-heart:before { content: "\eb05" } +.codicon-home:before { content: "\eb06" } +.codicon-horizontal-rule:before { content: "\eb07" } +.codicon-hubot:before { content: "\eb08" } +.codicon-inbox:before { content: "\eb09" } +.codicon-issue-reopened:before { content: "\eb0b" } +.codicon-issues:before { content: "\eb0c" } +.codicon-italic:before { content: "\eb0d" } +.codicon-jersey:before { content: "\eb0e" } +.codicon-json:before { content: "\eb0f" } +.codicon-kebab-vertical:before { content: "\eb10" } +.codicon-key:before { content: "\eb11" } +.codicon-law:before { content: "\eb12" } +.codicon-lightbulb-autofix:before { content: "\eb13" } +.codicon-link-external:before { content: "\eb14" } +.codicon-link:before { content: "\eb15" } +.codicon-list-ordered:before { content: "\eb16" } +.codicon-list-unordered:before { content: "\eb17" } +.codicon-live-share:before { content: "\eb18" } +.codicon-loading:before { content: "\eb19" } +.codicon-location:before { content: "\eb1a" } +.codicon-mail-read:before { content: "\eb1b" } +.codicon-mail:before { content: "\eb1c" } +.codicon-markdown:before { content: "\eb1d" } +.codicon-megaphone:before { content: "\eb1e" } +.codicon-mention:before { content: "\eb1f" } +.codicon-milestone:before { content: "\eb20" } +.codicon-mortar-board:before { content: "\eb21" } +.codicon-move:before { content: "\eb22" } +.codicon-multiple-windows:before { content: "\eb23" } +.codicon-mute:before { content: "\eb24" } +.codicon-no-newline:before { content: "\eb25" } +.codicon-note:before { content: "\eb26" } +.codicon-octoface:before { content: "\eb27" } +.codicon-open-preview:before { content: "\eb28" } +.codicon-package:before { content: "\eb29" } +.codicon-paintcan:before { content: "\eb2a" } +.codicon-pin:before { content: "\eb2b" } +.codicon-play:before { content: "\eb2c" } +.codicon-run:before { content: "\eb2c" } +.codicon-plug:before { content: "\eb2d" } +.codicon-preserve-case:before { content: "\eb2e" } +.codicon-preview:before { content: "\eb2f" } +.codicon-project:before { content: "\eb30" } +.codicon-pulse:before { content: "\eb31" } +.codicon-question:before { content: "\eb32" } +.codicon-quote:before { content: "\eb33" } +.codicon-radio-tower:before { content: "\eb34" } +.codicon-reactions:before { content: "\eb35" } +.codicon-references:before { content: "\eb36" } +.codicon-refresh:before { content: "\eb37" } +.codicon-regex:before { content: "\eb38" } +.codicon-remote-explorer:before { content: "\eb39" } +.codicon-remote:before { content: "\eb3a" } +.codicon-remove:before { content: "\eb3b" } +.codicon-replace-all:before { content: "\eb3c" } +.codicon-replace:before { content: "\eb3d" } +.codicon-repo-clone:before { content: "\eb3e" } +.codicon-repo-force-push:before { content: "\eb3f" } +.codicon-repo-pull:before { content: "\eb40" } +.codicon-repo-push:before { content: "\eb41" } +.codicon-report:before { content: "\eb42" } +.codicon-request-changes:before { content: "\eb43" } +.codicon-rocket:before { content: "\eb44" } +.codicon-root-folder-opened:before { content: "\eb45" } +.codicon-root-folder:before { content: "\eb46" } +.codicon-rss:before { content: "\eb47" } +.codicon-ruby:before { content: "\eb48" } +.codicon-save-all:before { content: "\eb49" } +.codicon-save-as:before { content: "\eb4a" } +.codicon-save:before { content: "\eb4b" } +.codicon-screen-full:before { content: "\eb4c" } +.codicon-screen-normal:before { content: "\eb4d" } +.codicon-search-stop:before { content: "\eb4e" } +.codicon-server:before { content: "\eb50" } +.codicon-settings-gear:before { content: "\eb51" } +.codicon-settings:before { content: "\eb52" } +.codicon-shield:before { content: "\eb53" } +.codicon-smiley:before { content: "\eb54" } +.codicon-sort-precedence:before { content: "\eb55" } +.codicon-split-horizontal:before { content: "\eb56" } +.codicon-split-vertical:before { content: "\eb57" } +.codicon-squirrel:before { content: "\eb58" } +.codicon-star-full:before { content: "\eb59" } +.codicon-star-half:before { content: "\eb5a" } +.codicon-symbol-class:before { content: "\eb5b" } +.codicon-symbol-color:before { content: "\eb5c" } +.codicon-symbol-constant:before { content: "\eb5d" } +.codicon-symbol-enum-member:before { content: "\eb5e" } +.codicon-symbol-field:before { content: "\eb5f" } +.codicon-symbol-file:before { content: "\eb60" } +.codicon-symbol-interface:before { content: "\eb61" } +.codicon-symbol-keyword:before { content: "\eb62" } +.codicon-symbol-misc:before { content: "\eb63" } +.codicon-symbol-operator:before { content: "\eb64" } +.codicon-symbol-property:before { content: "\eb65" } +.codicon-wrench:before { content: "\eb65" } +.codicon-wrench-subaction:before { content: "\eb65" } +.codicon-symbol-snippet:before { content: "\eb66" } +.codicon-tasklist:before { content: "\eb67" } +.codicon-telescope:before { content: "\eb68" } +.codicon-text-size:before { content: "\eb69" } +.codicon-three-bars:before { content: "\eb6a" } +.codicon-thumbsdown:before { content: "\eb6b" } +.codicon-thumbsup:before { content: "\eb6c" } +.codicon-tools:before { content: "\eb6d" } +.codicon-triangle-down:before { content: "\eb6e" } +.codicon-triangle-left:before { content: "\eb6f" } +.codicon-triangle-right:before { content: "\eb70" } +.codicon-triangle-up:before { content: "\eb71" } +.codicon-twitter:before { content: "\eb72" } +.codicon-unfold:before { content: "\eb73" } +.codicon-unlock:before { content: "\eb74" } +.codicon-unmute:before { content: "\eb75" } +.codicon-unverified:before { content: "\eb76" } +.codicon-verified:before { content: "\eb77" } +.codicon-versions:before { content: "\eb78" } +.codicon-vm-active:before { content: "\eb79" } +.codicon-vm-outline:before { content: "\eb7a" } +.codicon-vm-running:before { content: "\eb7b" } +.codicon-watch:before { content: "\eb7c" } +.codicon-whitespace:before { content: "\eb7d" } +.codicon-whole-word:before { content: "\eb7e" } +.codicon-window:before { content: "\eb7f" } +.codicon-word-wrap:before { content: "\eb80" } +.codicon-zoom-in:before { content: "\eb81" } +.codicon-zoom-out:before { content: "\eb82" } +.codicon-list-filter:before { content: "\eb83" } +.codicon-list-flat:before { content: "\eb84" } +.codicon-list-selection:before { content: "\eb85" } +.codicon-selection:before { content: "\eb85" } +.codicon-list-tree:before { content: "\eb86" } +.codicon-debug-breakpoint-function-unverified:before { content: "\eb87" } +.codicon-debug-breakpoint-function:before { content: "\eb88" } +.codicon-debug-breakpoint-function-disabled:before { content: "\eb88" } +.codicon-debug-stackframe-active:before { content: "\eb89" } +.codicon-debug-stackframe-dot:before { content: "\eb8a" } +.codicon-debug-stackframe:before { content: "\eb8b" } +.codicon-debug-stackframe-focused:before { content: "\eb8b" } +.codicon-debug-breakpoint-unsupported:before { content: "\eb8c" } +.codicon-symbol-string:before { content: "\eb8d" } +.codicon-debug-reverse-continue:before { content: "\eb8e" } +.codicon-debug-step-back:before { content: "\eb8f" } +.codicon-debug-restart-frame:before { content: "\eb90" } +.codicon-debug-alt:before { content: "\eb91" } +.codicon-call-incoming:before { content: "\eb92" } +.codicon-call-outgoing:before { content: "\eb93" } +.codicon-menu:before { content: "\eb94" } +.codicon-expand-all:before { content: "\eb95" } +.codicon-feedback:before { content: "\eb96" } +.codicon-group-by-ref-type:before { content: "\eb97" } +.codicon-ungroup-by-ref-type:before { content: "\eb98" } +.codicon-account:before { content: "\eb99" } +.codicon-bell-dot:before { content: "\eb9a" } +.codicon-debug-console:before { content: "\eb9b" } +.codicon-library:before { content: "\eb9c" } +.codicon-output:before { content: "\eb9d" } +.codicon-run-all:before { content: "\eb9e" } +.codicon-sync-ignored:before { content: "\eb9f" } +.codicon-pinned:before { content: "\eba0" } +.codicon-github-inverted:before { content: "\eba1" } +.codicon-server-process:before { content: "\eba2" } +.codicon-server-environment:before { content: "\eba3" } +.codicon-pass:before { content: "\eba4" } +.codicon-issue-closed:before { content: "\eba4" } +.codicon-stop-circle:before { content: "\eba5" } +.codicon-play-circle:before { content: "\eba6" } +.codicon-record:before { content: "\eba7" } +.codicon-debug-alt-small:before { content: "\eba8" } +.codicon-vm-connect:before { content: "\eba9" } +.codicon-cloud:before { content: "\ebaa" } +.codicon-merge:before { content: "\ebab" } +.codicon-export:before { content: "\ebac" } +.codicon-graph-left:before { content: "\ebad" } +.codicon-magnet:before { content: "\ebae" } +.codicon-notebook:before { content: "\ebaf" } +.codicon-redo:before { content: "\ebb0" } +.codicon-check-all:before { content: "\ebb1" } +.codicon-pinned-dirty:before { content: "\ebb2" } +.codicon-pass-filled:before { content: "\ebb3" } +.codicon-circle-large-filled:before { content: "\ebb4" } +.codicon-circle-large-outline:before { content: "\ebb5" } +.codicon-combine:before { content: "\ebb6" } +.codicon-gather:before { content: "\ebb6" } +.codicon-table:before { content: "\ebb7" } +.codicon-variable-group:before { content: "\ebb8" } +.codicon-type-hierarchy:before { content: "\ebb9" } +.codicon-type-hierarchy-sub:before { content: "\ebba" } +.codicon-type-hierarchy-super:before { content: "\ebbb" } +.codicon-git-pull-request-create:before { content: "\ebbc" } +.codicon-run-above:before { content: "\ebbd" } +.codicon-run-below:before { content: "\ebbe" } +.codicon-notebook-template:before { content: "\ebbf" } +.codicon-debug-rerun:before { content: "\ebc0" } +.codicon-workspace-trusted:before { content: "\ebc1" } +.codicon-workspace-untrusted:before { content: "\ebc2" } +.codicon-workspace-unknown:before { content: "\ebc3" } +.codicon-terminal-cmd:before { content: "\ebc4" } +.codicon-terminal-debian:before { content: "\ebc5" } +.codicon-terminal-linux:before { content: "\ebc6" } +.codicon-terminal-powershell:before { content: "\ebc7" } +.codicon-terminal-tmux:before { content: "\ebc8" } +.codicon-terminal-ubuntu:before { content: "\ebc9" } +.codicon-terminal-bash:before { content: "\ebca" } +.codicon-arrow-swap:before { content: "\ebcb" } +.codicon-copy:before { content: "\ebcc" } +.codicon-person-add:before { content: "\ebcd" } +.codicon-filter-filled:before { content: "\ebce" } +.codicon-wand:before { content: "\ebcf" } +.codicon-debug-line-by-line:before { content: "\ebd0" } +.codicon-inspect:before { content: "\ebd1" } +.codicon-layers:before { content: "\ebd2" } +.codicon-layers-dot:before { content: "\ebd3" } +.codicon-layers-active:before { content: "\ebd4" } +.codicon-compass:before { content: "\ebd5" } +.codicon-compass-dot:before { content: "\ebd6" } +.codicon-compass-active:before { content: "\ebd7" } +.codicon-azure:before { content: "\ebd8" } +.codicon-issue-draft:before { content: "\ebd9" } +.codicon-git-pull-request-closed:before { content: "\ebda" } +.codicon-git-pull-request-draft:before { content: "\ebdb" } +.codicon-debug-all:before { content: "\ebdc" } +.codicon-debug-coverage:before { content: "\ebdd" } +.codicon-run-errors:before { content: "\ebde" } +.codicon-folder-library:before { content: "\ebdf" } +.codicon-debug-continue-small:before { content: "\ebe0" } +.codicon-beaker-stop:before { content: "\ebe1" } +.codicon-graph-line:before { content: "\ebe2" } +.codicon-graph-scatter:before { content: "\ebe3" } +.codicon-pie-chart:before { content: "\ebe4" } +.codicon-bracket:before { content: "\eb0f" } +.codicon-bracket-dot:before { content: "\ebe5" } +.codicon-bracket-error:before { content: "\ebe6" } +.codicon-lock-small:before { content: "\ebe7" } +.codicon-azure-devops:before { content: "\ebe8" } +.codicon-verified-filled:before { content: "\ebe9" } +.codicon-newline:before { content: "\ebea" } +.codicon-layout:before { content: "\ebeb" } +.codicon-layout-activitybar-left:before { content: "\ebec" } +.codicon-layout-activitybar-right:before { content: "\ebed" } +.codicon-layout-panel-left:before { content: "\ebee" } +.codicon-layout-panel-center:before { content: "\ebef" } +.codicon-layout-panel-justify:before { content: "\ebf0" } +.codicon-layout-panel-right:before { content: "\ebf1" } +.codicon-layout-panel:before { content: "\ebf2" } +.codicon-layout-sidebar-left:before { content: "\ebf3" } +.codicon-layout-sidebar-right:before { content: "\ebf4" } +.codicon-layout-statusbar:before { content: "\ebf5" } +.codicon-layout-menubar:before { content: "\ebf6" } +.codicon-layout-centered:before { content: "\ebf7" } +.codicon-target:before { content: "\ebf8" } +.codicon-indent:before { content: "\ebf9" } +.codicon-record-small:before { content: "\ebfa" } +.codicon-error-small:before { content: "\ebfb" } +.codicon-arrow-circle-down:before { content: "\ebfc" } +.codicon-arrow-circle-left:before { content: "\ebfd" } +.codicon-arrow-circle-right:before { content: "\ebfe" } +.codicon-arrow-circle-up:before { content: "\ebff" } diff --git a/src/renderer/less/codicon.svg b/src/renderer/less/codicon.svg new file mode 100644 index 00000000..c0bb5a8d --- /dev/null +++ b/src/renderer/less/codicon.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/src/renderer/less/codicon.ttf b/src/renderer/less/codicon.ttf new file mode 100644 index 00000000..47dffef7 Binary files /dev/null and b/src/renderer/less/codicon.ttf differ diff --git a/src/renderer/less/directives.less b/src/renderer/less/directives.less new file mode 100644 index 00000000..b2b9305a --- /dev/null +++ b/src/renderer/less/directives.less @@ -0,0 +1,184 @@ +#app.twopanel { + --chromeHeight1: 42px; + --chromeHeight2: 76px; + --chromeHeight: calc(var(--chromeHeight1) + var(--chromeHeight2)); + + .app-chrome { + .app-mainmenu { + margin-left: 10px; + width: 88px; + } + + height: var(--chromeHeight1); + + &.chrome-bottom { + height: var(--chromeHeight2); + box-shadow: 0px -1px 0px rgba(0, 0, 0, 0.25); + z-index: 1; + } + } + + .app-sidebar-footer--controls { + display: none !important; + } + + .app-chrome.chrome-bottom { + .app-playback-controls .actions { + align-self: center; + } + + .playback-button.play, + .playback-button.pause { + width: 42px; + height: 42px; + background-color: rgb(200 200 200 / 20%); + border-radius: 50%; + margin: 6px; + box-shadow: 0px 0px 0px 2px var(--keyColor); + } + + .app-chrome--center { + display: flex; + flex-direction: column; + + .app-chrome-playback-controls { + display: flex; + z-index: 1; + // margin-bottom: 12px; + } + + .app-chrome-playback-duration { + position: relative; + width: 80%; + -webkit-app-region: no-drag; + height: 16px; + + .song-progress { + @bgColor: transparent; + height: 16px; + position: absolute; + bottom: 4px; + left: 0px; + right: 4px; + background: @bgColor; + z-index: 0; + + + .song-duration { + display: flex; + } + + .song-duration p { + font-weight: 400; + font-size: 10px; + height: 1.2em; + line-height: 1.3em; + overflow: hidden; + margin: 0 0 0 0.25em; + } + + &:hover { + > input[type=range] { + &::-webkit-slider-thumb { + opacity: 1; + transform: scale(1); + z-index: 1; + } + } + } + + input[type=range] { + appearance: none; + width: 100%; + height: 4px; + background-color: rgb(200 200 200 / 10%); + border-radius: 2px; + + &::-webkit-slider-thumb { + opacity: 0; + transform: scale(0.5); + -webkit-appearance: none; + appearance: none; + width: 12px; + height: 12px; + border-radius: 100%; + background: var(--keyColor); + cursor: default; + transition: opacity .10s var(--appleEase), transform .10s var(--appleEase); + } + } + } + } + + } + + .app-chrome--left { + width: 30%; + justify-content: flex-start; + align-items: flex-start; + + .playback-controls { + .artwork { + width: var(--chromeHeight2); + height: var(--chromeHeight2); + margin: 0px 6px 0px 0px; + box-shadow: unset; + border: 0px; + + .mediaitem-artwork, + img { + border-radius: 0px; + box-shadow: unset; + border: 0px; + } + } + + .playback-info { + align-items: flex-start; + margin: 6px; + + .song-name { + text-align: left; + font-size: 15px; + font-weight: initial; + width: 100%; + -webkit-mask-image: linear-gradient(-90deg, transparent 0%, transparent 10%, black 20%); + } + + .song-artist-album { + width: 100%; + -webkit-mask-image: linear-gradient(-90deg, transparent 0%, transparent 10%, black 20%); + } + + .audio-type { + margin: 0px; + } + + .song-artist-album-content { + text-align: left; + font-size: 12px; + } + } + + + width: 100%; + height: 100%; + max-width: 100%; + border: 0px; + } + + flex: 0 0 auto; + } + + .app-chrome--right { + width: 30%; + flex: 0 0 auto; + padding-right: 8px; + } + } + .collection-page { + .top-fab { + bottom:96px; + } + } +} diff --git a/src/renderer/less/elements.css b/src/renderer/less/elements.css new file mode 100644 index 00000000..4c1a2bb1 --- /dev/null +++ b/src/renderer/less/elements.css @@ -0,0 +1,1538 @@ +.md-select { + padding: 6px; + border-radius: 6px; + border: 1px solid rgba(200, 200, 200, 0.1); + border-top: 1px solid rgba(100, 100, 100, 0.5); + font-family: inherit; + font-size: 14px; + background: rgba(100, 100, 100, 0.25); + color: #eee; +} +.md-select option { + font-size: 1em; + font-family: inherit; + padding: 8px 16px; + background: #404040; +} +.md-select optgroup { + background: #2c2c2c; +} +.md-select:focus { + outline: solid 1px var(--selected); +} +.md-btn { + font-family: inherit; + background: rgba(100, 100, 100, 0.25); + padding: 8px 14px; + border-radius: 6px; + font-size: 14px; + border: 1px solid rgba(100, 100, 100, 0.35); + border-top: 1px solid rgba(100, 100, 100, 0.5); + color: #eee; + white-space: nowrap; + transition: transform 0.2s var(--appleEase), box-shadow 0.2s var(--appleEase); +} +.md-btn.md-btn-block { + display: block; + width: 100%; +} +.md-btn.md-btn-glyph { + display: flex; + align-items: center; + justify-content: center; + width: 100%; +} +.md-btn.md-btn-primary { + background: #ff2b52a6; + color: white; + border: 1px solid rgba(220, 53, 69, 0.25); + border-top: 1px solid rgba(220, 53, 69, 0.5); +} +.md-btn.md-btn-small { + padding: 6px 8px; + font-size: 13px; +} +.md-btn:hover { + filter: brightness(125%); +} +.md-btn:active { + filter: brightness(75%); + transform: scale(0.98); + transition: transform 0s var(--appleEase), box-shadow 0.2s var(--appleEase); +} +.md-btn.md-btn-icon { + display: inline-flex; + vertical-align: middle; + justify-content: center; +} +.md-btn.md-btn-icon > img { + margin: 0px 16px 0px 0px; + pointer-events: none; +} +.md-btn.md-btn-icon > .md-btn-text { + margin: 0px; +} +.btn-group { + display: inline-flex; + justify-content: center; + align-items: center; +} +.btn-group > .md-btn { + border-radius: 0px; + width: 100%; +} +.btn-group > .md-btn:first-child { + border-top-left-radius: 6px; + border-bottom-left-radius: 6px; +} +.btn-group > .md-btn:last-child { + border-top-right-radius: 6px; + border-bottom-right-radius: 6px; +} +.btn-group > .md-btn:not(:first-child):not(:last-child) { + border-radius: 0px; +} +.md-close-btn { + -webkit-mask-image: url("ameres://icons/webui/close.svg"); + -webkit-mask-repeat: no-repeat; + -webkit-mask-position: center; + background-color: white; + opacity: 0.75; + -webkit-mask-size: contain; + height: 18px; + width: 18px; +} +.md-ico-play { + content: url("assets/play.svg"); + width: 10px; + height: 12px; + margin-right: 1px; + align-self: center; +} +.md-ico-shuffle { + content: url("assets/shuffle.svg"); + width: 1em; + height: 1em; + margin-right: 1px; + margin-bottom: -2px; + align-self: center; +} +.md-ico-remove { + content: url("assets/feather/x-circle-white.svg"); + width: 16px; + height: 16px; + margin-right: 1px; + margin-bottom: -1.5px; + align-self: center; +} +.md-ico-add { + content: url("assets/feather/plus-circle-white.svg"); + width: 1em; + height: 1em; + margin-right: 1px; + margin-bottom: -1.5px; + align-self: center; +} +.reload-btn { + background: rgba(86, 86, 86, 0.52); + border-radius: 100%; + width: 32px; + height: 32px; + border: 0px; + appearance: none; + display: flex; + justify-content: center; + align-items: center; +} +.reload-btn:hover { + background: rgba(86, 86, 86, 0.8); + cursor: pointer; +} +.reload-btn > svg { + height: 50%; + color: #eee; +} +.wr-btn { + font-family: inherit; + appearance: none; + border: 0px; + border-radius: 6px; + padding: 8px; + font-weight: 600; + background: rgba(80, 80, 80, 0.7); + color: white; +} +.cd-btn-seeall { + background: transparent; + border: 0px; + color: var(--keyColor); + font-family: inherit; + font-weight: 500; + font-size: 16px; + border-radius: 4px; + padding: 6px; +} +.cd-btn-seeall:hover { + cursor: pointer; + background: rgba(200, 200, 200, 0.1); +} +.mediaitem-artwork { + border-radius: var(--mediaItemRadius); + overflow: hidden; + flex: 0 0 auto; + position: relative; + width: 100%; + height: 100%; + background-image: url("https://beta.music.apple.com/assets/product/MissingArtworkMusic.svg"); + background-size: cover; + background-position: center; +} +.mediaitem-artwork .animatedartwork-view-box { + position: absolute; + top: 0px; + width: 100%; + height: 100%; +} +.mediaitem-artwork .animatedartwork-view-box .animated { + position: absolute; + top: 0px; + width: 100%; + height: 100%; +} +.mediaitem-artwork .animatedartwork-view-box .animated video { + width: 100%; + height: 100%; +} +.mediaitem-artwork.rounded { + border-radius: 100%; +} +.mediaitem-artwork.rounded::after { + border-radius: 100%; +} +.mediaitem-artwork::after { + content: ""; + box-shadow: var(--mediaItemShadow); + z-index: 1; + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; + border-radius: inherit; +} +.mediaitem-artwork img { + width: 100%; + height: 100%; + object-fit: cover; + image-rendering: -webkit-optimize-contrast; + pointer-events: none; +} +.mediaitem-artwork.no-shadow { + box-shadow: none; +} +.mediaitem-artwork.no-shadow::after { + display: none; +} +.mediaitem-artwork.subtle-shadow { + box-shadow: var(--mediaItemShadow-ShadowSubtle); +} +.mediaitem-artwork.shadow { + box-shadow: var(--mediaItemShadow-Shadow); +} +/* queue item */ +.cd-queue-item { + border-bottom: 1px solid rgba(200, 200, 200, 0.1); + padding: 8px; +} +.cd-queue-item .row, +.cd-queue-item .col { + padding: 0px; + margin: 0px; +} +.cd-queue-item .artwork { + width: 32px; + height: 32px; + flex: 0 0 auto; +} +.cd-queue-item.selected { + background: var(--selected); +} +.cd-queue-item:active { + background: var(--selected-click); + color: #eee; +} +.cd-queue-item .queue-info { + display: flex; + flex-direction: column; +} +.cd-queue-item .queue-info .queue-title { + font-size: 14px; +} +.cd-queue-item .queue-info .queue-subtitle { + font-size: 13px; + opacity: 0.85; +} +/* horizontal media scroller */ +.cd-hmedia-scroller::-webkit-scrollbar-thumb { + box-shadow: none; +} +.cd-hmedia-scroller:hover::-webkit-scrollbar-thumb { + box-shadow: inset 0px 0px 10px 10px rgba(200, 200, 200, 0.5); +} +.cd-hmedia-scroller.hmedia-scroller-card .mediaitem-card { + margin: 16px; +} +/* mediaitem-list-item */ +.cd-mediaitem-list-item { + width: 100%; + height: 60px; + display: flex; + flex: 0 0 auto; + flex-direction: row; + font-size: 14px; + justify-content: center-between; + align-items: center; + border-radius: var(--mediaItemRadius); + /* CSS.gg + */ +} +.cd-mediaitem-list-item .artwork { + height: 42px; + width: 42px; + border-radius: var(--mediaItemRadius); + object-fit: cover; + object-position: center; + flex: 0 0 auto; + background-repeat: no-repeat; + margin: 12px; + border: 0px; + outline: none; + position: relative; + overflow: hidden; +} +.cd-mediaitem-list-item .artwork .overlay-play { + background: rgba(0, 0, 0, 0.5); + opacity: 0; + appearance: none; + border: 0; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + padding: 0px; + z-index: 5; + cursor: pointer; +} +.cd-mediaitem-list-item .artwork .overlay-play:hover { + opacity: 1; +} +.cd-mediaitem-list-item .artwork .overlay-play:active { + background: var(--selected-click); +} +.cd-mediaitem-list-item .artwork.round { + border-radius: var(--mediaItemRadiusRound); +} +.cd-mediaitem-list-item .info-rect { + height: 100%; + display: flex; + flex-flow: column; + justify-content: center; + flex-grow: 1; +} +.cd-mediaitem-list-item .title { + width: 100%; +} +.cd-mediaitem-list-item .subtitle { + width: 90%; + font-size: 0.8em; + opacity: 0.7; +} +.cd-mediaitem-list-item .duration { + min-width: 60px; + text-align: center; + height: 100%; + display: flex; + align-items: center; + justify-content: center; +} +.cd-mediaitem-list-item .metainfo { + min-width: 145px; + text-align: center; + height: 100%; + display: flex; + align-items: center; + justify-content: center; +} +.cd-mediaitem-list-item .explicit-icon { + background-image: url("assets/explicit.svg"); + height: 12px; + width: 36px; + filter: contrast(0); + background-repeat: no-repeat; +} +@keyframes load-bar { + 10% { + box-shadow: inset 0 -4px 0; + } + 20% { + box-shadow: inset 0 -10px 0; + } + 30% { + box-shadow: inset 0 -12px 0; + } + 40% { + box-shadow: inset 0 -8px 0; + } + 50% { + box-shadow: inset 0 -4px 0; + } + 60% { + box-shadow: inset 0 -6px 0; + } + 80% { + box-shadow: inset 0 -12px 0; + } + 90% { + box-shadow: inset 0 -6px 0; + } + to { + box-shadow: inset 0 -2px 0; + } +} +.cd-mediaitem-list-item .loadbar-sound, +.cd-mediaitem-list-item .loadbar-sound::after, +.cd-mediaitem-list-item .loadbar-sound::before { + animation: load-bar 1.3s ease infinite alternate; + box-sizing: border-box; + width: 3px; + height: 28px; + box-shadow: inset 0 -12px 0; +} +.cd-mediaitem-list-item .loadbar-sound { + margin-left: 22px; + margin-top: -16px; + position: relative; + transform: scale(var(--load-bar, 1)); + color: var(--keyColor); + display: block; +} +.cd-mediaitem-list-item .loadbar-sound::after, +.cd-mediaitem-list-item .loadbar-sound::before { + content: ""; + position: absolute; + bottom: 0; +} +.cd-mediaitem-list-item .loadbar-sound::before { + left: -4.5px; + animation-delay: -2.4s; +} +.cd-mediaitem-list-item .loadbar-sound::after { + right: -4.2px; + animation-delay: -3.7s; +} +.cd-mediaitem-list-item .isLibrary { + flex: 0 0 auto; + width: 40px; + text-align: center; +} +.cd-mediaitem-list-item .isLibrary button { + appearance: none; + border: 0px; + background: transparent; + cursor: pointer; + filter: contrast(0.8); +} +.cd-mediaitem-list-item:hover { + background: rgba(200, 200, 200, 0.1); + box-shadow: var(--mediaItemShadow); +} +.cd-mediaitem-list-item:hover .overlay-play { + opacity: 1; +} +.cd-mediaitem-list-item.mediaitem-selected { + background: var(--selected); + box-shadow: var(--mediaItemShadow); +} +.cd-mediaitem-list-item:active { + background: var(--selected-click); + box-shadow: var(--mediaItemShadow); + color: #eee; +} +.cd-mediaitem-list-item.disabled { + opacity: 0.5; + pointer-events: none; +} +.cd-mediaitem-list-item.compact { + height: 40px; + font-size: 13px; +} +.cd-mediaitem-list-item.compact .artwork { + display: none; +} +.cd-mediaitem-list-item.compact .info-rect { + padding-left: 1em; +} +/* mediaitem-hrect */ +.cd-mediaitem-hrect { + background: rgba(255, 255, 255, 0.18); + width: 264px; + height: 100px; + display: inline-flex; + flex: 0 0 auto; + flex-direction: row; + font-size: 14px; + justify-content: center; + align-items: center; + border-radius: 6px; + cursor: pointer; +} +.cd-mediaitem-hrect .artwork { + height: 70px; + width: 70px; + background: blue; + border-radius: var(--mediaItemRadius); + background: var(--artwork); + background-size: contain; + flex: 0 0 auto; + background-repeat: no-repeat; + margin: 18px; +} +.cd-mediaitem-hrect .artwork.round { + border-radius: var(--mediaItemRadiusRound); +} +.cd-mediaitem-hrect .info-rect { + width: 100%; +} +.cd-mediaitem-hrect .title { + width: 100%; + text-align: center; +} +.cd-mediaitem-hrect .subtitle { + width: 100%; + text-align: center; + font-size: 12px; +} +/* mediaitem-square-sp */ +.cd-mediaitem-square-sp { + --spcolor: var(""); + width: 190px; + height: 245px; + display: inline-flex; + flex: 0 0 auto; + flex-direction: column; + font-size: 14px; + justify-content: flex-start; + align-items: center; + border-radius: 6px; + margin-left: 10px; + cursor: pointer; + background-color: var(--spcolor); +} +.cd-mediaitem-square-sp .artwork { + height: 190px; + width: 190px; + background: blue; + border-top-left-radius: 6px; + border-top-right-radius: 6px; + background: var(--artwork); + background-size: cover; + flex: 0 0 auto; + margin: 6px; + margin-top: 0px; +} +.cd-mediaitem-square-sp .artwork.round { + border-radius: var(--mediaItemRadiusRound); +} +.cd-mediaitem-square-sp .artwork:hover { + box-shadow: rgba(0, 0, 0, 0.5) 0 0 0 1000000px inset; +} +.cd-mediaitem-square-sp .title { + width: 90%; + text-align: center; +} +.cd-mediaitem-square-sp .subtitle { + width: 100%; + text-align: center; + font-size: 12px; +} +.cd-mediaitem-square-sp > .cd-mediaitem-square-large-overlay { + z-index: 3; +} +.cd-mediaitem-square-sp > .cd-mediaitem-square-large-overlay:hover { + opacity: 1; +} +.cd-mediaitem-square-sp + .cd-mediaitem-square-large-overlay { + pointer-events: none; +} +.cd-mediaitem-square-sp:hover + .cd-mediaitem-square-large-overlay { + opacity: 1; +} +.cd-mediaitem-square-sp:hover { + box-shadow: rgba(0, 0, 0, 0.5) 0 0 0 1000000px inset; +} +/* mediaitem-square-large */ +.cd-mediaitem-square-large { + width: 190px; + height: 250px; + display: inline-flex; + flex: 0 0 auto; + flex-direction: column; + font-size: 14px; + justify-content: flex-start; + align-items: center; + border-radius: 6px; + margin-left: 10px; + cursor: pointer; +} +.cd-mediaitem-square-large > * { + z-index: inherit; +} +.cd-mediaitem-square-large .artwork { + height: 190px; + width: 190px; + background: blue; + border-top-left-radius: 6px; + border-top-right-radius: 6px; + background: var(--artwork); + background-size: cover; + flex: 0 0 auto; + margin: 6px; + margin-top: 0px; +} +.cd-mediaitem-square-large-overlay { + position: absolute; + width: 190px; + float: right; + height: 250px; + top: 0px; + margin: 10px; + margin-top: 0px; + opacity: 0; +} +.cd-mediaitem-square-large-overlay > * { + pointer-events: auto; +} +.cd-mediaitem-square-large > .cd-mediaitem-square-large-overlay { + z-index: 3; +} +.cd-mediaitem-square-large > .cd-mediaitem-square-large-overlay:hover { + opacity: 1; +} +.cd-mediaitem-square-large + .cd-mediaitem-square-large-overlay { + pointer-events: none; +} +.cd-mediaitem-square-large:hover + .cd-mediaitem-square-large-overlay { + opacity: 1; +} +.cd-mediaitem-square-large .artwork.round { + border-radius: var(--mediaItemRadiusRound); +} +.cd-mediaitem-square-large .title { + width: 90%; + text-align: center; +} +.cd-mediaitem-square-large .subtitle { + width: 100%; + text-align: center; + font-size: 12px; +} +/* mediaitem-mvview */ +/* mediaitem-mvview */ +.cd-mediaitem-mvview { + width: 300px; + height: 250px; + display: inline-flex; + flex: 0 0 auto; + flex-direction: column; + font-size: 14px; + justify-content: flex-start; + align-items: center; + border-radius: 6px; + margin-left: 10px; + cursor: pointer; +} +.cd-mediaitem-mvview > * { + z-index: inherit; +} +.cd-mediaitem-mvview .artwork { + height: 172px; + width: 300px; + background: blue; + border-top-left-radius: 6px; + border-top-right-radius: 6px; + background: var(--artwork); + background-size: cover; + flex: 0 0 auto; + margin: 6px; + margin-top: 0px; +} +.cd-mediaitem-mvview-overlay { + position: absolute; + width: 300px; + float: right; + height: 250px; + top: 0px; + margin: 10px; + margin-top: 0px; + opacity: 0; +} +.cd-mediaitem-mvview-overlay > * { + pointer-events: auto; +} +.cd-mediaitem-mvview > .cd-mediaitem-mvview-overlay { + z-index: 3; +} +.cd-mediaitem-mvview > .cd-mediaitem-mvview-overlay:hover { + opacity: 1; +} +.cd-mediaitem-mvview + .cd-mediaitem-mvview-overlay { + pointer-events: none; +} +.cd-mediaitem-mvview:hover + .cd-mediaitem-mvview-overlay { + opacity: 1; +} +.cd-mediaitem-mvview .artwork.round { + border-radius: var(--mediaItemRadiusRound); +} +.cd-mediaitem-mvview .title { + width: 90%; + text-align: center; +} +.cd-mediaitem-mvview .subtitle { + width: 100%; + text-align: center; + font-size: 12px; +} +/* mediaitem-square */ +.cd-mediaitem-square { + width: 220px; + height: 238px; + display: inline-flex; + flex: 0 0 auto; + flex-direction: column; + font-size: 14px; + justify-content: center; + align-items: center; + border-radius: 6px; +} +.cd-mediaitem-square .artwork-container { + position: relative; +} +.cd-mediaitem-square .artwork-container .artwork { + height: 190px; + width: 190px; + background: blue; + border-radius: var(--mediaItemRadius); + background: var(--artwork); + background-size: cover; + flex: 0 0 auto; + margin: 6px; + cursor: pointer; +} +.cd-mediaitem-square .artwork-container .artwork.round { + border-radius: var(--mediaItemRadiusRound); +} +.cd-mediaitem-square .artwork-container .badge-container { + transition: opacity 0.1s var(--appleEase); + opacity: 1; +} +.cd-mediaitem-square .artwork-container .badge-container .socialBadge { + width: 32px; + height: 32px; + position: absolute; + right: 14px; + bottom: 14px; + border-radius: 100%; + overflow: hidden; + z-index: 2; + pointer-events: none; +} +.cd-mediaitem-square .artwork-container > .play-btn, +.cd-mediaitem-square .artwork-container > .menu-btn { + opacity: 0; + appearance: none; + padding: 0px; + border: 0px; + width: 30px; + height: 30px; + border-radius: 50%; + background: rgba(50, 50, 50, 0.7); + cursor: pointer; + transition: opacity 0.1s var(--appleEase); +} +.cd-mediaitem-square .artwork-container > .play-btn :hover, +.cd-mediaitem-square .artwork-container > .menu-btn :hover { + border-radius: 50%; + background: rgba(250, 0, 0, 0.7); +} +.cd-mediaitem-square .artwork-container > .play-btn { + position: absolute; + bottom: 14px; + left: 14px; + z-index: 2; +} +.cd-mediaitem-square .artwork-container > .menu-btn { + position: absolute; + bottom: 14px; + right: 14px; + z-index: 2; +} +.cd-mediaitem-square .artwork-container:hover > .badge-container { + opacity: 0; +} +.cd-mediaitem-square .artwork-container:hover > .play-btn, +.cd-mediaitem-square .artwork-container:hover > .menu-btn { + opacity: 1; +} +.cd-mediaitem-square .info-rect { + width: 90%; + height: 100%; + display: flex; + flex-direction: column; + align-items: center; +} +.cd-mediaitem-square .title { + width: 100%; + text-align: center; + display: flex; + align-content: center; + justify-content: center; +} +.cd-mediaitem-square .subtitle { + width: 100%; + text-align: center; + font-size: 12px; +} +.cd-mediaitem-square .unavailable-overlay { + position: absolute; + top: 0px; + left: 0px; + bottom: 0; + right: 0; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + z-index: 2; + pointer-events: none; + background: rgba(0, 0, 0, 0.4); + margin: 2em; + border-radius: 10px; +} +.cd-mediaitem-square .unavailable-overlay > .codicon { + font-size: 4em; + font-weight: bold; + opacity: 0.5; +} +.cd-mediaitem-square.mediaitem-video { + height: 200px; + width: 240px; +} +.cd-mediaitem-square.mediaitem-video .artwork { + height: 120px; + width: 212px; +} +.cd-mediaitem-square.mediaitem-brick { + height: 200px; + width: 240px; +} +.cd-mediaitem-square.mediaitem-brick .artwork { + height: 123px; + width: 220px; +} +.cd-mediaitem-square.mediaitem-small { + width: 140px; + height: 180px; +} +.cd-mediaitem-square.mediaitem-small .artwork { + height: 128px; + width: 128px; +} +.cd-mediaitem-square.mediaitem-card { + background: #ccc; + background: var(--spcolor); + height: 298px; + width: 230px; + max-width: 250px; + max-height: 500px; + overflow: hidden; + position: relative; + border-radius: calc(var(--mediaItemRadius) * 2); + box-shadow: var(--mediaItemShadow-ShadowSubtle); +} +.cd-mediaitem-square.mediaitem-card .artwork { + width: 230px; + height: 230px; + overflow: hidden; + border-radius: 0px; + margin: 0; +} +.cd-mediaitem-square.mediaitem-card .artwork .mediaitem-artwork { + border-radius: 0px; +} +.cd-mediaitem-square.mediaitem-card .artwork .mediaitem-artwork::after { + box-shadow: unset; +} +.cd-mediaitem-square.mediaitem-card .info-rect-card { + padding: 10px 10px 14px; + position: relative; + width: 100%; +} +.cd-mediaitem-square.mediaitem-card .info-rect-card::before { + background: var(--bgartwork); + content: ""; + top: 0; + left: 0; + bottom: 0; + right: 0; + position: absolute; + background-size: cover; + background-position: bottom; + z-index: 0; + opacity: 1; + filter: brightness(0.5) blur(50px) saturate(180%); +} +.cd-mediaitem-square.mediaitem-card .title { + height: 100%; + display: flex; + justify-content: center; + align-items: center; + font-size: 0.9em; + font-weight: 500; + z-index: 1; +} +.cd-mediaitem-square.mediaitem-card .subtitle { + height: 100%; + justify-content: center; + align-items: center; + font-size: 0.75em; + width: 100%; + display: flex; + z-index: 1; +} +.cd-mediaitem-square.mediaitem-card::after { + box-shadow: var(--mediaItemShadow); + content: ""; + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; + pointer-events: none; + border-radius: inherit; +} +/* mediaitem-square */ +.albums-square-containeru > * > .cd-mediaitem-square { + --frame: max(220px, 15vw); + width: var(--frame); + height: calc(var(--frame) * 13 / 11); + display: inline-flex; + flex: 0 0 auto; + flex-direction: column; + font-size: calc(var(--frame) / 220 * 14); + justify-content: center; + align-items: center; + border-radius: calc(var(--frame) / 220 * 6); +} +.albums-square-containeru > * > .cd-mediaitem-square .artwork-container { + position: relative; +} +.albums-square-containeru > * > .cd-mediaitem-square .artwork-container .artwork { + height: calc(var(--frame) * 19 / 22); + width: calc(var(--frame) * 19 / 22); + background: blue; + border-radius: var(--mediaItemRadius); + background: var(--artwork); + background-size: cover; + flex: 0 0 auto; + margin: calc(var(--frame) / 220 * 6); + cursor: pointer; +} +.albums-square-containeru > * > .cd-mediaitem-square .artwork-container .artwork.round { + border-radius: var(--mediaItemRadiusRound); +} +.albums-square-containeru > * > .cd-mediaitem-square .artwork-container > .play-btn, +.albums-square-containeru > * > .cd-mediaitem-square .artwork-container > .menu-btn { + opacity: 0; + appearance: none; + padding: 0px; + border: 0px; + width: calc(var(--frame) / 220 * 30); + height: calc(var(--frame) / 220 * 30); + border-radius: 50%; + background: rgba(50, 50, 50, 0.7); + cursor: pointer; + backdrop-filter: blur(32px) saturate(180%); + transition: opacity 0.1s var(--appleEase); +} +.albums-square-containeru > * > .cd-mediaitem-square .artwork-container > .play-btn { + position: absolute; + bottom: calc(var(--frame) / 220 * 14); + left: calc(var(--frame) / 220 * 14); + z-index: 2; +} +.albums-square-containeru > * > .cd-mediaitem-square .artwork-container > .menu-btn { + position: absolute; + bottom: calc(var(--frame) / 220 * 14); + right: calc(var(--frame) / 220 * 14); + z-index: 2; +} +.albums-square-containeru > * > .cd-mediaitem-square .artwork-container:hover > .play-btn, +.albums-square-containeru > * > .cd-mediaitem-square .artwork-container:hover > .menu-btn { + opacity: 1; +} +.albums-square-containeru > * > .cd-mediaitem-square .title { + width: 90%; + text-align: center; +} +.albums-square-containeru > * > .cd-mediaitem-square .subtitle { + width: 100%; + text-align: center; + font-size: calc(var(--frame) / 220 * 12); +} +.albums-square-containeru > * > .cd-mediaitem-square.mediaitem-video { + height: calc(var(--frame) / 220 * 200); + width: calc(var(--frame) / 220 * 240); +} +.albums-square-containeru > * > .cd-mediaitem-square.mediaitem-video .artwork { + height: calc(var(--frame) / 220 * 120); + width: calc(var(--frame) / 220 * 212); +} +.albums-square-containeru > * > .cd-mediaitem-square.mediaitem-brick { + height: calc(var(--frame) / 220 * 200); + width: calc(var(--frame) / 220 * 240); +} +.albums-square-containeru > * > .cd-mediaitem-square.mediaitem-brick .artwork { + height: calc(var(--frame) / 220 * 123); + width: calc(var(--frame)); +} +.listitem-horizontal .cd-mediaitem-list-item { + width: 350px; + height: 60px; +} +.mediaitem-list-item__grid { + background: rgba(200, 200, 200, 0.05); + border-radius: 10px; + padding: var(--contentInnerPadding); + box-shadow: rgba(0, 0, 0, 0.08) 0px 0px 0px 1px; + width: 100%; +} +.mediaitem-list-item__grid .cd-mediaitem-list-item { + width: 350px; + height: 60px; +} +.mediaitem-list-item__grid::-webkit-scrollbar { + display: none; +} +.mediaitem-list-item__grid:hover::-webkit-scrollbar { + display: initial; +} +.svg-icon { + --color: #aaa; + --url: url("assets/feather/share.svg"); + -webkit-mask-image: var(--url); + -webkit-mask-size: cover; + height: 18px; + width: 18px; + background: var(--color); +} +.svg-icon.inline { + display: inline-block; +} +.sidebar-icon { + width: 18px; + height: 18px; + margin-right: 8px; +} +.sidebar-icon > .svg-icon { + width: 100%; + height: 100%; + --color: #aaa; +} +.sidebar-icon > svg { + width: 100%; + height: 100%; + color: #aaa; +} +/* Switch Checkbox */ +input[type=checkbox][switch] { + width: 38px; + appearance: none; + border-radius: 32px; + height: 24px; + zoom: 1; + top: 0; + cursor: pointer; + left: 0; + position: relative; + transform: scale(1); + background: #8e8e93; + padding: 0; + margin: 0; +} +input[type=checkbox][switch]:focus, +input[type=checkbox][switch]:active { + outline: none; +} +input[type=checkbox][switch]:checked { + background: var(--keyColor); + border: 0 solid var(--keyColor); + mix-blend-mode: unset; +} +input[type=checkbox][switch]:checked:hover { + background: var(--keyColor-rollover); +} +input[type=checkbox][switch]:checked:active { + background: var(--keyColor-pressed); +} +input[type=checkbox][switch]::before { + background: white; + width: 26px; + height: 26px; + top: -1px; + left: -1px; + position: absolute; + content: ' '; + border-radius: 32px; + transition: 0.1s left var(--appleEase); + transform: scale(0.75); +} +input[type=checkbox][switch]:checked::before { + background: white; + top: -1px; + left: 13px; + transition: 0.1s left var(--appleEase); + transform: scale(0.75); +} +input[type=checkbox][switch]:disabled::before { + opacity: 0.5; +} +input[type=checkbox][switch]:active::before { + left: 13px; +} +input[type=checkbox][switch]:checked:active::before { + left: -1px; +} +/* End Switch Checkbox */ +.header-text { + margin: 0px; +} +.media-item--small { + background: rgba(0, 0, 0, 0.25); + height: 162px; + width: 132px; + display: inline-flex; + flex-direction: column; + justify-content: center; + align-items: center; + border-radius: 10px; +} +.media-item--small .artwork { + background: red; + margin: 6px; + border-radius: 100%; + width: 90px; + height: 90px; + box-shadow: inset 0px 0px 0px 1px rgba(200, 200, 200, 0.3); +} +.playlist-artwork { + height: 190px; + width: 190px; + background: blue; + border-radius: 6px; + background: var(--artwork); + background-size: cover; + box-shadow: var(--mediaItemShadow); + flex: 0 0 auto; + margin: 6px; + margin-top: 0px; +} +.media-item--small .text { + font-weight: 600; + font-size: 0.9em; +} +.media-item--small .subtext { + font-size: 0.75em; +} +.player-duration-time { + opacity: 0.5; +} +.player-artwork-container { + display: flex; + align-items: center; + justify-content: center; +} +.player-duration-container { + font-size: 0.85em; + font-weight: 500; +} +.media-artwork { + --artwork: url(""); + width: 80vw; + height: 80vw; + max-height: 500px; + max-width: 500px; + background: black; + background-image: var(--artwork); + background-size: cover; + background-position: center; + background-repeat: no-repeat; + border-radius: 8px; + box-shadow: inset 0px 0px 0px 1px rgba(200, 200, 200, 0.16), 0 8px 40px rgba(0, 0, 0, 0.55); + transition: transform 0.1s var(--appleEase); +} +.media-artwork.paused { + transition: transform 0.35s var(--appleEase); + transform: scale(0.85); +} +.playback-slider { + width: 90%; +} +.volume-slider { + width: 100%; +} +.volume-slider-container { + width: 90%; + margin: 0 auto; + padding: 0px; +} +.volume-slider-container .col-auto, +.volume-slider-container .col { + display: flex; + align-items: center; + justify-self: center; + padding: 0px; + margin: 0px; +} +.playback-button { + font-size: 2em; + width: 40px; + height: 36px; + padding: 0px; + background: transparent; + border: 0px; + border-radius: 0px; + box-shadow: unset; + background-size: 12px; + background-position: center; + background-repeat: no-repeat; + opacity: 0.7; + border-radius: 6px; +} +.playback-button:active { + transform: scale(0.95); +} +.playback-button--small { + border-radius: 6px; + font-size: 1em; + color: inherit; + background-size: 14px; + background-repeat: no-repeat; + background-position: center; + background-color: transparent; + width: 40px; + height: 32px; + border: 0px; + box-shadow: unset; + opacity: 0.7; +} +.playback-button:hover, +.playback-button--small:hover { + background-color: rgba(200, 200, 200, 0.1); +} +.playback-button:active, +.playback-button--small:active { + transform: scale(0.9); +} +.playback-button--small.active { + background-color: rgba(200, 200, 200, 0.25); +} +.playback-button--small.search { + background-image: url("assets/search.svg"); +} +.playback-button--small.cast { + background-image: url("assets/cast_white.svg"); +} +.playback-button--small.miniplayer { + background-image: url("assets/pip.svg"); +} +.playback-button--small.queue { + background-image: url("assets/list.svg"); +} +.playback-button--small.lyrics { + background-image: url("assets/quote-right.svg"); +} +.playback-button--small.shuffle { + background-image: url("assets/shuffle.svg"); +} +.playback-button--small.repeat { + background-image: url("assets/repeat.svg"); +} +.playback-button--small.repeat.repeatOne { + background-color: rgba(200, 200, 200, 0.25); + background-image: url("assets/repeatOne.svg"); +} +.playback-button.pause { + background-image: url('assets/pause.svg'); +} +.playback-button.play { + background-image: url('assets/play.svg'); +} +.playback-button.next { + background-image: url('assets/forward.svg'); +} +.playback-button.previous { + background-image: url('assets/backward.svg'); +} +.playback-buttons { + display: flex; + align-items: center; + justify-content: center; +} +.player-volume-glyph { + width: 32px; + height: 16px; + background-repeat: no-repeat; + background-size: contain; + background-position: center; +} +.player-volume-glyph.decrease { + background-image: url("assets/volume.svg"); + opacity: 0.5; +} +.player-volume-glyph.increase { + background-image: url("assets/volume-2.svg"); + opacity: 0.5; +} +.player-track-info { + width: 90%; + margin: 0 auto; +} +.player-song-title { + font-size: 1.25em; + text-align: left; + margin: 0 auto; + font-weight: 500; +} +.player-song-artist { + font-size: 1em; + text-align: left; + margin: 0 auto; + color: var(--keyColor); + font-weight: 400; +} +.player-song-artist:hover { + cursor: pointer; + text-decoration: underline; +} +.player-more-container { + display: flex; + align-items: center; + justify-content: center; +} +.player-more-button { + appearance: none; + width: 32px; + height: 32px; + border-radius: 50%; + border: 0px; + background: var(--keyColor); + cursor: pointer; + box-shadow: inset 0px 0px 0px 1px rgba(200, 200, 200, 0.16); + color: white; + font-weight: bold; + padding: 0px; + font-size: 16px; +} +.back-button { + width: 40px; + height: 40px; + background-color: transparent; + background-size: 16px; + background-position: center; + background-repeat: no-repeat; + background-image: url("assets/arrow-left.svg"); + border: 0px; + border-radius: 0px; +} +.header-text { + height: 40px; + display: flex; + align-items: center; +} +.list-entry-header { + display: flex; + align-items: center; + justify-content: space-between; + padding: 12px; + font-size: 1em; + font-family: inherit; +} +.list-entry { + display: flex; + align-items: center; + /* justify-content: space-between; */ + padding: 12px; + font-size: 1em; + font-family: inherit; + border-bottom: 1px solid rgba(255 255 255 / 0.1); + cursor: pointer; +} +.list-entry-image { + --artwork: url(""); + width: 64px; + height: 64px; + background: var(--artwork); + background-size: cover; + background-position: center; + background-repeat: no-repeat; + border-radius: 8px; + box-shadow: inset 0px 0px 0px 1px rgba(200, 200, 200, 0.16), 0 8px 40px rgba(0, 0, 0, 0.55); +} +.list-entry-image.artist { + border-radius: 50%; +} +.list-entry-body { + display: flex; + flex-direction: column; + justify-content: center; + align-items: flex-start; + margin-left: 12px; +} +.list-entry-name { + font-size: 14px; + font-weight: 500; + overflow: hidden; + width: 100%; +} +.list-entry-artist { + font-size: 12px; + overflow: hidden; + width: 100%; +} +.list-entry .handle { + height: 100%; + width: 28px; + background: var(--keyColor); + display: flex; + justify-content: center; + align-items: center; +} +.artist-chip { + display: inline-flex; + align-items: center; + justify-content: center; + margin: 4px 0px; + border-radius: 4px; + color: white; + font-size: 1em; + font-weight: 500; + cursor: pointer; + padding: 8px; +} +.artist-chip:hover { + background: var(--selected); +} +.artist-chip .artist-chip__follow { + appearance: none; + border: 0; + height: 32px; + width: 32px; + background: #ffffff0f; + margin: 0px 0px 0px 10px; + font-weight: bold; + color: white; + border-radius: 100%; + display: flex; + justify-content: center; + align-items: center; + font-size: 12px; + cursor: pointer; + flex: 0 0 32px; +} +.artist-chip .artist-chip__follow:hover { + background: var(--selected); +} +.artist-chip .artist-chip__image { + width: 32px; + height: 32px; + background-size: contain; + background-position: center; + background-repeat: no-repeat; + border-radius: 100%; + overflow: hidden; + margin: 0px 12px 0px 0px; + pointer-events: none; + flex: 0 0 32px; +} +.artist-chip .artist-chip__image .mediaitem-artwork { + border-radius: inherit; +} +.artist-chip .artist-chip__name { + pointer-events: none; +} +.search-panel { + background: rgba(0, 0, 0, 0.5); +} +.search-header { + position: absolute; + width: 100%; + z-index: 1; + backdrop-filter: blur(16px); + -webkit-backdrop-filter: blur(16px); + border-bottom: 1px solid rgba(200, 200, 200, 0.08); +} +.connection-error-panel { + background: rgba(0, 0, 0, 0.5); +} +.search-type-container { + display: flex; +} +.search-type-button { + background: rgba(20, 20, 20, 0.85); + border-radius: 50px; + color: white; + border: 0px; + box-shadow: unset; + font-family: inherit; + padding: 8px 16px; + font-size: 14px; + font-weight: 500; + margin: 8px; + margin-top: 0px; + margin-bottom: 0px; +} +.search-type-button.active { + background: var(--keyColor); +} +.search-tab-container { + overflow: auto; + white-space: nowrap; + overflow-y: hidden; +} +.search-body-container { + position: relative; + width: 100%; + height: 100%; +} +.search-body { + position: absolute; + width: 100%; + height: 100%; + padding-top: 220px; +} +.search-tab { + background: rgba(20, 20, 20, 0.85); + border-radius: 50px; + color: white; + border: 0px; + box-shadow: unset; + font-family: inherit; + padding: 8px 16px; + font-size: 14px; + font-weight: 500; +} +.search-tab.active { + background: var(--keyColor); +} diff --git a/src/renderer/less/elements.less b/src/renderer/less/elements.less new file mode 100644 index 00000000..fd2176fc --- /dev/null +++ b/src/renderer/less/elements.less @@ -0,0 +1,1843 @@ +// Form + +.md-select { + padding: 6px; + border-radius: 6px; + border: 1px solid rgba(200, 200, 200, 0.1); + border-top: 1px solid rgba(100, 100, 100, 0.5); + font-family: inherit; + font-size: 14px; + background: rgba(100, 100, 100, 0.25); + color: #eee; + + option { + font-size: 1em; + font-family: inherit; + padding: 8px 16px; + background: #404040; + } + + optgroup { + background: #2c2c2c; + } + + &:focus { + outline: solid 1px var(--selected); + } +} + +// Buttons +.md-btn { + font-family: inherit; + background: rgb(100 100 100 / 25%); + padding: 8px 14px; + border-radius: 6px; + font-size: 14px; + border: 1px solid rgba(100, 100, 100, 0.35); + border-top: 1px solid rgba(100, 100, 100, 0.5); + color: #eee; + white-space: nowrap; + transition: transform 0.2s var(--appleEase), box-shadow 0.2s var(--appleEase); + + &.md-btn-block { + display: block; + width: 100%; + } + + &.md-btn-glyph { + display: flex; + align-items: center; + justify-content: center; + width: 100%; + } + + &.md-btn-primary { + background: #ff2b52a6; + color: white; + border: 1px solid rgb(220 53 69 / 25%); + border-top: 1px solid rgb(220 53 69 / 50%); + } + + &.md-btn-small { + padding: 6px 8px; + font-size: 13px; + } + + &:hover { + filter: brightness(125%); + } + + &:active { + filter: brightness(75%); + transform: scale(0.98); + transition: transform 0s var(--appleEase), box-shadow 0.2s var(--appleEase); + } + + &.md-btn-icon { + display: inline-flex; + vertical-align: middle; + justify-content: center; + + > img { + margin: 0px 16px 0px 0px; + pointer-events: none; + } + + > .md-btn-text { + margin: 0px; + } + } +} + +.btn-group { + display: inline-flex; + justify-content: center; + align-items: center; + + > .md-btn { + border-radius: 0px; + width: 100%; + } + + > .md-btn:first-child { + border-top-left-radius: 6px; + border-bottom-left-radius: 6px; + } + + > .md-btn:last-child { + border-top-right-radius: 6px; + border-bottom-right-radius: 6px; + } + + > .md-btn:not(:first-child):not(:last-child) { + border-radius: 0px; + } +} + + +.md-close-btn { + -webkit-mask-image: url("ameres://icons/webui/close.svg"); + -webkit-mask-repeat: no-repeat; + -webkit-mask-position: center; + background-color: white; + opacity: 0.75; + -webkit-mask-size: contain; + height: 18px; + width: 18px; +} + +.md-ico-play { + content: url("./assets/play.svg"); + width: 10px; + height: 12px; + margin-right: 1px; + align-self: center; +} + +.md-ico-shuffle { + content: url("./assets/shuffle.svg"); + width: 1em; + height: 1em; + margin-right: 1px; + margin-bottom: -2px; + align-self: center; +} + +.md-ico-remove { + content: url("./assets/feather/x-circle-white.svg"); + width: 16px; + height: 16px; + margin-right: 1px; + margin-bottom: -1.5px; + align-self: center; +} + +.md-ico-add { + content: url("./assets/feather/plus-circle-white.svg"); + width: 1em; + height: 1em; + margin-right: 1px; + margin-bottom: -1.5px; + align-self: center; +} + +.reload-btn { + background: rgb(86 86 86 / 52%); + border-radius: 100%; + width: 32px; + height: 32px; + border: 0px; + appearance: none; + display: flex; + justify-content: center; + align-items: center; +} + +.reload-btn:hover { + background: rgb(86 86 86 / 80%); + cursor: pointer; +} + +.reload-btn > svg { + height: 50%; + color: #eee; +} + +.wr-btn { + font-family: inherit; + appearance: none; + border: 0px; + border-radius: 6px; + padding: 8px; + font-weight: 600; + background: rgb(80 80 80 / 70%); + color: white; +} + +.cd-btn-seeall { + background: transparent; + border: 0px; + color: var(--keyColor); + font-family: inherit; + font-weight: 500; + font-size: 16px; + border-radius: 4px; + padding: 6px; + + &:hover { + cursor: pointer; + background: rgb(200 200 200 / 10%) + } +} + + +// Media Item Elements + +.mediaitem-artwork { + border-radius: var(--mediaItemRadius); + overflow: hidden; + flex: 0 0 auto; + position: relative; + width: 100%; + height: 100%; + background-image: url("https://beta.music.apple.com/assets/product/MissingArtworkMusic.svg"); + background-size: cover; + background-position: center; + + .animatedartwork-view-box { + position: absolute; + top: 0px; + width: 100%; + height: 100%; + + .animated { + position: absolute; + top: 0px; + width: 100%; + height: 100%; + + video { + width: 100%; + height: 100%; + } + } + } + + &.rounded { + border-radius: 100%; + + &::after { + border-radius: 100%; + } + } + + &::after { + content: ""; + box-shadow: var(--mediaItemShadow); + z-index: 1; + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; + border-radius: inherit; + } + + img { + width: 100%; + height: 100%; + object-fit: cover; + image-rendering: -webkit-optimize-contrast; + pointer-events: none; + } + + &.no-shadow { + box-shadow: none; + + &::after { + display: none; + } + } + + &.subtle-shadow { + box-shadow: var(--mediaItemShadow-ShadowSubtle); + } + + &.shadow { + box-shadow: var(--mediaItemShadow-Shadow); + } +} + +/* queue item */ +.cd-queue-item { + border-bottom: 1px solid rgb(200 200 200 / 10%); + padding: 8px; + + .row, + .col { + padding: 0px; + margin: 0px; + } + + .artwork { + width: 32px; + height: 32px; + flex: 0 0 auto; + } + + &.selected { + background: var(--selected); + } + + &:active { + background: var(--selected-click); + color: #eee; + } + + .queue-info { + display: flex; + flex-direction: column; + + .queue-title { + font-size: 14px; + } + + .queue-subtitle { + font-size: 13px; + opacity: 0.85; + } + } +} + +/* horizontal media scroller */ +.cd-hmedia-scroller { + &::-webkit-scrollbar-thumb { + box-shadow: none; + } + + &:hover::-webkit-scrollbar-thumb { + box-shadow: inset 0px 0px 10px 10px rgb(200 200 200 / 50%); + } + + &.hmedia-scroller-card { + .mediaitem-card { + margin: 16px; + } + } +} + +/* mediaitem-list-item */ +.cd-mediaitem-list-item { + width: 100%; + height: 60px; + display: flex; + flex: 0 0 auto; + flex-direction: row; + font-size: 14px; + justify-content: center-between; + align-items: center; + border-radius: var(--mediaItemRadius); + + .artwork { + height: 42px; + width: 42px; + border-radius: var(--mediaItemRadius); + object-fit: cover; + object-position: center; + flex: 0 0 auto; + background-repeat: no-repeat; + margin: 12px; + border: 0px; + outline: none; + position: relative; + overflow: hidden; + + .overlay-play { + background: rgba(0, 0, 0, 0.5); + opacity: 0; + appearance: none; + border: 0; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + padding: 0px; + z-index: 5; + cursor: pointer; + + &:hover { + opacity: 1; + } + + &:active { + background: var(--selected-click); + } + } + } + + .artwork.round { + border-radius: var(--mediaItemRadiusRound); + } + + .info-rect { + height: 100%; + display: flex; + flex-flow: column; + justify-content: center; + flex-grow: 1; + } + + .title { + width: 100%; + } + + .subtitle { + width: 90%; + font-size: .8em; + opacity: 0.7; + } + + .duration { + min-width: 60px; + text-align: center; + height: 100%; + display: flex; + align-items: center; + justify-content: center; + } + + .metainfo { + min-width: 145px; + text-align: center; + height: 100%; + display: flex; + align-items: center; + justify-content: center; + } + + .explicit-icon { + background-image: url("./assets/explicit.svg"); + height: 12px; + width: 36px; + filter: contrast(0); + background-repeat: no-repeat; + } + + /* CSS.gg + */ + @keyframes load-bar { + 10% { + box-shadow: inset 0 -4px 0 + } + 20% { + box-shadow: inset 0 -10px 0 + } + 30% { + box-shadow: inset 0 -12px 0 + } + 40% { + box-shadow: inset 0 -8px 0 + } + 50% { + box-shadow: inset 0 -4px 0 + } + 60% { + box-shadow: inset 0 -6px 0 + } + 80% { + box-shadow: inset 0 -12px 0 + } + 90% { + box-shadow: inset 0 -6px 0 + } + to { + box-shadow: inset 0 -2px 0 + } + } + + .loadbar-sound, + .loadbar-sound::after, + .loadbar-sound::before { + animation: load-bar 1.3s ease infinite alternate; + box-sizing: border-box; + width: 3px; + height: 28px; + box-shadow: inset 0 -12px 0; + } + + .loadbar-sound { + margin-left: 22px; + margin-top: -16px; + position: relative; + transform: scale(var(--load-bar, 1)); + color: var(--keyColor); + display: block; + } + + .loadbar-sound::after, + .loadbar-sound::before { + content: ""; + position: absolute; + bottom: 0 + } + + .loadbar-sound::before { + left: -4.5px; + animation-delay: -2.4s + } + + .loadbar-sound::after { + right: -4.2px; + animation-delay: -3.7s + } + + .isLibrary { + flex: 0 0 auto; + width: 40px; + text-align: center; + + button { + appearance: none; + border: 0px; + background: transparent; + cursor: pointer; + filter: contrast(0.8); + } + } + + &:hover { + background: rgb(200 200 200 / 10%); + box-shadow: var(--mediaItemShadow); + + .overlay-play { + opacity: 1; + } + } + + &.mediaitem-selected { + background: var(--selected); + box-shadow: var(--mediaItemShadow); + } + + + &:active { + background: var(--selected-click); + box-shadow: var(--mediaItemShadow); + color: #eee; + } + + &.disabled { + opacity: 0.5; + pointer-events: none; + } + + // list item compact + &.compact { + height: 40px; + font-size: 13px; + + .artwork { + display: none; + } + + .info-rect { + padding-left: 1em; + } + } +} + +/* mediaitem-hrect */ +.cd-mediaitem-hrect { + background: rgb(255 255 255 / 18%); + width: 264px; + height: 100px; + display: inline-flex; + flex: 0 0 auto; + flex-direction: row; + font-size: 14px; + justify-content: center; + align-items: center; + border-radius: 6px; + cursor: pointer; + + .artwork { + height: 70px; + width: 70px; + background: blue; + border-radius: var(--mediaItemRadius); + background: var(--artwork); + background-size: contain; + flex: 0 0 auto; + background-repeat: no-repeat; + margin: 18px; + } + + .artwork.round { + border-radius: var(--mediaItemRadiusRound); + } + + .info-rect { + width: 100%; + } + + .title { + width: 100%; + text-align: center; + } + + .subtitle { + width: 100%; + text-align: center; + font-size: 12px; + } +} + +/* mediaitem-square-sp */ +.cd-mediaitem-square-sp { + --spcolor: var(""); + width: 190px; + height: 245px; + display: inline-flex; + flex: 0 0 auto; + flex-direction: column; + font-size: 14px; + justify-content: flex-start; + align-items: center; + border-radius: 6px; + margin-left: 10px; + cursor: pointer; + background-color: var(--spcolor); + + .artwork { + height: 190px; + width: 190px; + background: blue; + border-top-left-radius: 6px; + border-top-right-radius: 6px; + background: var(--artwork); + background-size: cover; + flex: 0 0 auto; + margin: 6px; + margin-top: 0px; + + &.round { + border-radius: var(--mediaItemRadiusRound); + } + + &:hover { + box-shadow: rgb(0 0 0 / 50%) 0 0 0 1000000px inset; + } + } + + .title { + width: 90%; + text-align: center; + } + + .subtitle { + width: 100%; + text-align: center; + font-size: 12px; + } + + > .cd-mediaitem-square-large-overlay { + z-index: 3; + + &:hover { + opacity: 1; + } + } + + + .cd-mediaitem-square-large-overlay { + pointer-events: none; + } + + &:hover + .cd-mediaitem-square-large-overlay { + opacity: 1; + + } + + &:hover { + box-shadow: rgb(0 0 0 / 50%) 0 0 0 1000000px inset; + } +} + + +/* mediaitem-square-large */ +.cd-mediaitem-square-large { + width: 190px; + height: 250px; + display: inline-flex; + flex: 0 0 auto; + flex-direction: column; + font-size: 14px; + justify-content: flex-start; + align-items: center; + border-radius: 6px; + margin-left: 10px; + cursor: pointer; + + > * { + z-index: inherit; + } +} + +.cd-mediaitem-square-large .artwork { + height: 190px; + width: 190px; + background: blue; + border-top-left-radius: 6px; + border-top-right-radius: 6px; + background: var(--artwork); + background-size: cover; + flex: 0 0 auto; + margin: 6px; + margin-top: 0px; +} + +.cd-mediaitem-square-large-overlay { + position: absolute; + width: 190px; + float: right; + height: 250px; + top: 0px; + margin: 10px; + margin-top: 0px; + opacity: 0; + +} + +.cd-mediaitem-square-large-overlay > * { + pointer-events: auto; + +} + +.cd-mediaitem-square-large > .cd-mediaitem-square-large-overlay { + z-index: 3; +} + +.cd-mediaitem-square-large > .cd-mediaitem-square-large-overlay:hover { + opacity: 1; +} + +.cd-mediaitem-square-large + .cd-mediaitem-square-large-overlay { + pointer-events: none; + +} + +.cd-mediaitem-square-large:hover + .cd-mediaitem-square-large-overlay { + opacity: 1; + +} + + +.cd-mediaitem-square-large .artwork.round { + border-radius: var(--mediaItemRadiusRound); +} + +.cd-mediaitem-square-large .title { + width: 90%; + text-align: center; +} + +.cd-mediaitem-square-large .subtitle { + width: 100%; + text-align: center; + font-size: 12px; +} + +/* mediaitem-mvview */ + +/* mediaitem-mvview */ +.cd-mediaitem-mvview { + width: 300px; + height: 250px; + display: inline-flex; + flex: 0 0 auto; + flex-direction: column; + font-size: 14px; + justify-content: flex-start; + align-items: center; + border-radius: 6px; + margin-left: 10px; + cursor: pointer; + + > * { + z-index: inherit; + } +} + +.cd-mediaitem-mvview .artwork { + height: 172px; + width: 300px; + background: blue; + border-top-left-radius: 6px; + border-top-right-radius: 6px; + background: var(--artwork); + background-size: cover; + flex: 0 0 auto; + margin: 6px; + margin-top: 0px; +} + +.cd-mediaitem-mvview-overlay { + position: absolute; + width: 300px; + float: right; + height: 250px; + top: 0px; + margin: 10px; + margin-top: 0px; + opacity: 0; + +} + +.cd-mediaitem-mvview-overlay > * { + pointer-events: auto; + +} + +.cd-mediaitem-mvview > .cd-mediaitem-mvview-overlay { + z-index: 3; +} + +.cd-mediaitem-mvview > .cd-mediaitem-mvview-overlay:hover { + opacity: 1; +} + +.cd-mediaitem-mvview + .cd-mediaitem-mvview-overlay { + pointer-events: none; + +} + +.cd-mediaitem-mvview:hover + .cd-mediaitem-mvview-overlay { + opacity: 1; + +} + + +.cd-mediaitem-mvview .artwork.round { + border-radius: var(--mediaItemRadiusRound); +} + +.cd-mediaitem-mvview .title { + width: 90%; + text-align: center; +} + +.cd-mediaitem-mvview .subtitle { + width: 100%; + text-align: center; + font-size: 12px; +} + + +/* mediaitem-square */ +.cd-mediaitem-square { + width: 220px; + height: 238px; + display: inline-flex; + flex: 0 0 auto; + flex-direction: column; + font-size: 14px; + justify-content: center; + align-items: center; + border-radius: 6px; + + .artwork-container { + position: relative; + + .artwork { + height: 190px; + width: 190px; + background: blue; + border-radius: var(--mediaItemRadius); + background: var(--artwork); + background-size: cover; + flex: 0 0 auto; + margin: 6px; + cursor: pointer; + + &.round { + border-radius: var(--mediaItemRadiusRound); + } + } + + .badge-container { + transition: opacity 0.1s var(--appleEase); + opacity: 1; + + .socialBadge { + width: 32px; + height: 32px; + position: absolute; + right: 14px; + bottom: 14px; + border-radius: 100%; + overflow: hidden; + z-index: 2; + pointer-events: none; + } + } + + > .play-btn, + > .menu-btn { + opacity: 0; + appearance: none; + padding: 0px; + border: 0px; + width: 30px; + height: 30px; + border-radius: 50%; + background: rgba(50, 50, 50, 0.7); + cursor: pointer; + transition: opacity 0.1s var(--appleEase); + + :hover { + border-radius: 50%; + background: rgba(250, 0, 0, 0.7); + } + } + + > .play-btn { + position: absolute; + bottom: 14px; + left: 14px; + z-index: 2; + + } + + > .menu-btn { + position: absolute; + bottom: 14px; + right: 14px; + z-index: 2; + } + + &:hover { + > .badge-container { + opacity: 0; + } + + > .play-btn, + > .menu-btn { + opacity: 1; + } + } + } + + .info-rect { + width: 90%; + height: 100%; + display: flex; + flex-direction: column; + align-items: center; + } + + + .title { + width: 100%; + text-align: center; + display: flex; + align-content: center; + justify-content: center; + } + + .subtitle { + width: 100%; + text-align: center; + font-size: 12px; + } + + .unavailable-overlay { + position: absolute; + top: 0px; + left: 0px; + bottom: 0; + right: 0; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + z-index: 2; + pointer-events: none; + background: rgb(0 0 0 / 40%); + margin: 2em; + border-radius: 10px; + + >.codicon { + font-size: 4em; + font-weight: bold; + opacity: 0.5; + } + } + + &.mediaitem-video { + height: 200px; + width: 240px; + + .artwork { + height: 120px; + width: 212px; + } + } + + &.mediaitem-brick { + height: 200px; + width: 240px; + + .artwork { + height: 123px; + width: 220px; + } + } + + &.mediaitem-small { + width: 140px; + height: 180px; + + .artwork { + height: 128px; + width: 128px; + } + } + + &.mediaitem-card { + background: #ccc; + background: var(--spcolor); + height: 298px; + width: 230px; + max-width: 250px; + max-height: 500px; + overflow: hidden; + position: relative; + border-radius: calc(var(--mediaItemRadius) * 2); + box-shadow: var(--mediaItemShadow-ShadowSubtle); + + .artwork { + width: 230px; + height: 230px; + overflow: hidden; + border-radius: 0px; + margin: 0; + + .mediaitem-artwork { + border-radius: 0px; + + &::after { + box-shadow: unset; + } + } + } + + .info-rect-card { + padding: 10px 10px 14px; + position: relative; + width: 100%; + + &::before { + background: var(--bgartwork); + content: ""; + top: 0; + left: 0; + bottom: 0; + right: 0; + position: absolute; + background-size: cover; + background-position: bottom; + z-index: 0; + opacity: 1; + filter: brightness(0.5) blur(50px) saturate(180%); + } + } + + .title { + height: 100%; + display: flex; + justify-content: center; + align-items: center; + font-size: 0.9em; + font-weight: 500; + z-index: 1; + } + + .subtitle { + height: 100%; + justify-content: center; + align-items: center; + font-size: 0.75em; + width: 100%; + display: flex; + z-index: 1; + } + + &::after { + box-shadow: var(--mediaItemShadow); + content: ""; + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; + pointer-events: none; + border-radius: inherit; + } + } +} + +/* mediaitem-square */ +.albums-square-containeru > * > .cd-mediaitem-square { + --frame: max(220px, 15vw); + width: var(--frame); + height: calc(var(--frame) * 13 / 11); + display: inline-flex; + flex: 0 0 auto; + flex-direction: column; + font-size: calc(var(--frame) / 220 * 14); + justify-content: center; + align-items: center; + border-radius: calc(var(--frame) / 220 * 6); + + .artwork-container { + position: relative; + + .artwork { + height: calc(var(--frame) * 19 / 22); + width: calc(var(--frame) * 19 / 22); + background: blue; + border-radius: var(--mediaItemRadius); + background: var(--artwork); + background-size: cover; + flex: 0 0 auto; + margin: calc(var(--frame) / 220 * 6); + cursor: pointer; + + &.round { + border-radius: var(--mediaItemRadiusRound); + } + } + + > .play-btn, + > .menu-btn { + opacity: 0; + appearance: none; + padding: 0px; + border: 0px; + width: calc(var(--frame) / 220 * 30); + height: calc(var(--frame) / 220 * 30); + border-radius: 50%; + background: rgba(50, 50, 50, 0.7); + cursor: pointer; + backdrop-filter: blur(32px) saturate(180%); + transition: opacity 0.1s var(--appleEase); + } + + > .play-btn { + position: absolute; + bottom: calc(var(--frame) / 220 * 14); + left: calc(var(--frame) / 220 * 14); + z-index: 2; + } + + > .menu-btn { + position: absolute; + bottom: calc(var(--frame) / 220 * 14); + right: calc(var(--frame) / 220 * 14); + z-index: 2; + } + + &:hover { + + > .play-btn, + > .menu-btn { + opacity: 1; + } + } + } + + + .title { + width: 90%; + text-align: center; + } + + .subtitle { + width: 100%; + text-align: center; + font-size: calc(var(--frame) / 220 * 12); + } + + &.mediaitem-video { + height: calc(var(--frame) / 220 * 200); + width: calc(var(--frame) / 220 * 240); + + .artwork { + height: calc(var(--frame) / 220 * 120); + width: calc(var(--frame) / 220 * 212); + } + } + + &.mediaitem-brick { + height: calc(var(--frame) / 220 * 200); + width: calc(var(--frame) / 220 * 240); + + .artwork { + height: calc(var(--frame) / 220 * 123); + width: calc(var(--frame)); + } + } +} + + +.listitem-horizontal { + .cd-mediaitem-list-item { + width: 350px; + height: 60px; + } +} + +.mediaitem-list-item__grid { + background: rgba(200, 200, 200, 0.05); + border-radius: 10px; + padding: var(--contentInnerPadding); + box-shadow: rgba(0, 0, 0, 0.08) 0px 0px 0px 1px; + width: 100%; + + .cd-mediaitem-list-item { + width: 350px; + height: 60px; + } + + &::-webkit-scrollbar { + display: none; + } + + &:hover::-webkit-scrollbar { + display: initial; + + } +} + +// Graphics + +// sidebar icon +.svg-icon { + --color: #aaa; + --url: url("./assets/feather/share.svg"); + -webkit-mask-image: var(--url); + -webkit-mask-size: cover; + height: 18px; + width: 18px; + background: var(--color); + + &.inline { + display: inline-block; + } +} + +.sidebar-icon { + width: 18px; + height: 18px; + margin-right: 8px; + + > .svg-icon { + width: 100%; + height: 100%; + --color: #aaa; + } + + > svg { + width: 100%; + height: 100%; + color: #aaa; + } +} + + +/* Switch Checkbox */ +input[type=checkbox][switch] { + width: 38px; + appearance: none; + border-radius: 32px; + height: 24px; + zoom: 1; + top: 0; + cursor: pointer; + left: 0; + position: relative; + transform: scale(1); + background: rgb(142 142 147 / 100%); + padding: 0; + margin: 0; +} + +input[type=checkbox][switch]:focus, +input[type=checkbox][switch]:active { + outline: none; +} + +input[type=checkbox][switch]:checked { + background: var(--keyColor); + border: 0 solid var(--keyColor); + mix-blend-mode: unset; + + &:hover { + background: var(--keyColor-rollover); + } + + &:active { + background: var(--keyColor-pressed); + } +} + +input[type=checkbox][switch]::before { + background: white; + width: 26px; + height: 26px; + top: -1px; + left: -1px; + position: absolute; + content: ' '; + border-radius: 32px; + transition: .10s left var(--appleEase); + transform: scale(.75); +} + + +input[type=checkbox][switch]:checked::before { + background: white; + top: -1px; + left: 13px; + transition: .10s left var(--appleEase); + transform: scale(.75); +} + +input[type=checkbox][switch]:disabled::before { + opacity: .5; +} + +input[type=checkbox][switch]:active::before { + left: 13px; +} + +input[type=checkbox][switch]:checked:active::before { + left: -1px; +} + +/* End Switch Checkbox */ + + + +.header-text { + margin: 0px; +} + +.media-item--small { + background: rgb(0 0 0 / 25%); + height: 162px; + width: 132px; + display: inline-flex; + flex-direction: column; + justify-content: center; + align-items: center; + border-radius: 10px; +} + +.media-item--small .artwork { + background: red; + margin: 6px; + border-radius: 100%; + width: 90px; + height: 90px; + box-shadow: inset 0px 0px 0px 1px rgb(200 200 200 / 30%); +} + +.playlist-artwork { + height: 190px; + width: 190px; + background: blue; + border-radius: 6px; + background: var(--artwork); + background-size: cover; + box-shadow: var(--mediaItemShadow); + flex: 0 0 auto; + margin: 6px; + margin-top: 0px; +} + +.media-item--small .text { + font-weight: 600; + font-size: 0.90em; +} + +.media-item--small .subtext { + font-size: 0.75em; +} + +.player-duration-time { + opacity: 0.5; +} + +.player-artwork-container { + display: flex; + align-items: center; + justify-content: center; +} + +.player-duration-container { + font-size: 0.85em; + font-weight: 500; +} + +.media-artwork { + --artwork: url(""); + width: 80vw; + height: 80vw; + max-height: 500px; + max-width: 500px; + background: black; + background-image: var(--artwork); + background-size: cover; + background-position: center; + background-repeat: no-repeat; + border-radius: 8px; + box-shadow: inset 0px 0px 0px 1px rgb(200 200 200 / 16%), 0 8px 40px rgb(0 0 0 / 0.55); + transition: transform .10s var(--appleEase); +} + +.media-artwork.paused { + transition: transform .35s var(--appleEase); + transform: scale(0.85); +} + +.playback-slider { + width: 90%; +} + +.volume-slider { + width: 100%; +} + +.volume-slider-container { + width: 90%; + margin: 0 auto; + padding: 0px; +} + +.volume-slider-container .col-auto, +.volume-slider-container .col { + display: flex; + align-items: center; + justify-self: center; + padding: 0px; + margin: 0px; +} + +.playback-button { + font-size: 2em; + width: 40px; + height: 36px; + padding: 0px; + background: transparent; + border: 0px; + border-radius: 0px; + box-shadow: unset; + background-size: 12px; + background-position: center; + background-repeat: no-repeat; + opacity: 0.70; + border-radius: 6px; +} + +.playback-button:active { + transform: scale(0.95); +} + +.playback-button--small { + border-radius: 6px; + font-size: 1em; + color: inherit; + background-size: 14px; + background-repeat: no-repeat; + background-position: center; + background-color: transparent; + width: 40px; + height: 32px; + border: 0px; + box-shadow: unset; + opacity: 0.70; +} + +.playback-button:hover, +.playback-button--small:hover { + background-color: rgb(200 200 200 / 10%); +} + +.playback-button:active, +.playback-button--small:active { + transform: scale(0.9); +} + +.playback-button--small.active { + background-color: rgb(200 200 200 / 25%); +} + +.playback-button--small.search { + background-image: url("./assets/search.svg"); +} + +.playback-button--small.cast { + background-image: url("./assets/cast_white.svg"); +} + +.playback-button--small.miniplayer { + background-image: url("./assets/pip.svg"); +} + +.playback-button--small.queue { + background-image: url("./assets/list.svg"); +} + +.playback-button--small.lyrics { + background-image: url("./assets/quote-right.svg"); +} + +.playback-button--small.shuffle { + background-image: url("./assets/shuffle.svg"); +} + +.playback-button--small.repeat { + background-image: url("./assets/repeat.svg"); +} + +.playback-button--small.repeat.repeatOne { + background-color: rgb(200 200 200 / 25%); + background-image: url("./assets/repeatOne.svg"); +} + +.playback-button.pause { + background-image: url('./assets/pause.svg'); +} + +.playback-button.play { + background-image: url('./assets/play.svg'); +} + +.playback-button.next { + background-image: url('./assets/forward.svg'); +} + +.playback-button.previous { + background-image: url('./assets/backward.svg'); +} + +.playback-buttons { + display: flex; + align-items: center; + justify-content: center; +} + +.player-volume-glyph { + width: 32px; + height: 16px; + background-repeat: no-repeat; + background-size: contain; + background-position: center; +} + +.player-volume-glyph.decrease { + background-image: url("./assets/volume.svg"); + opacity: 0.5; +} + +.player-volume-glyph.increase { + background-image: url("./assets/volume-2.svg"); + opacity: 0.5; +} + +.player-track-info { + width: 90%; + margin: 0 auto; +} + +.player-song-title { + font-size: 1.25em; + text-align: left; + margin: 0 auto; + font-weight: 500; +} + +.player-song-artist { + font-size: 1.0em; + text-align: left; + margin: 0 auto; + color: var(--keyColor); + font-weight: 400; +} + +.player-song-artist:hover { + cursor: pointer; + text-decoration: underline; +} + +.player-more-container { + display: flex; + align-items: center; + justify-content: center; +} + +.player-more-button { + appearance: none; + width: 32px; + height: 32px; + border-radius: 50%; + border: 0px; + background: var(--keyColor); + cursor: pointer; + box-shadow: inset 0px 0px 0px 1px rgb(200 200 200 / 16%); + color: white; + font-weight: bold; + padding: 0px; + font-size: 16px; +} + +.back-button { + width: 40px; + height: 40px; + background-color: transparent; + background-size: 16px; + background-position: center; + background-repeat: no-repeat; + background-image: url("./assets/arrow-left.svg"); + border: 0px; + border-radius: 0px; +} + +.header-text { + height: 40px; + display: flex; + align-items: center; + +} + + +.list-entry-header { + display: flex; + align-items: center; + justify-content: space-between; + padding: 12px; + font-size: 1em; + font-family: inherit; +} + +.list-entry { + display: flex; + align-items: center; + /* justify-content: space-between; */ + padding: 12px; + font-size: 1em; + font-family: inherit; + border-bottom: 1px solid rgba(255 255 255 / 0.1); + cursor: pointer; +} + +.list-entry-image { + --artwork: url(""); + width: 64px; + height: 64px; + background: var(--artwork); + background-size: cover; + background-position: center; + background-repeat: no-repeat; + border-radius: 8px; + box-shadow: inset 0px 0px 0px 1px rgb(200 200 200 / 16%), 0 8px 40px rgb(0 0 0 / 0.55); +} + +.list-entry-image.artist { + border-radius: 50%; +} + +.list-entry-body { + display: flex; + flex-direction: column; + justify-content: center; + align-items: flex-start; + margin-left: 12px; +} + +.list-entry-name { + font-size: 14px; + font-weight: 500; + overflow: hidden; + width: 100%; +} + +.list-entry-artist { + font-size: 12px; + overflow: hidden; + width: 100%; +} + +.list-entry .handle { + height: 100%; + width: 28px; + background: var(--keyColor); + display: flex; + justify-content: center; + align-items: center; +} + +.artist-chip { + display: inline-flex; + align-items: center; + justify-content: center; + margin: 4px 0px; + border-radius: 4px; + color: white; + font-size: 1em; + font-weight: 500; + cursor: pointer; + padding: 8px; + + &:hover { + background: var(--selected); + } + + .artist-chip__follow { + appearance: none; + border: 0; + height: 32px; + width: 32px; + background: #ffffff0f; + margin: 0px 0px 0px 10px; + font-weight: bold; + color: white; + border-radius: 100%; + display: flex; + justify-content: center; + align-items: center; + font-size: 12px; + cursor: pointer; + flex: 0 0 32px; + + &:hover { + background: var(--selected); + } + } + + .artist-chip__image { + width: 32px; + height: 32px; + background-size: contain; + background-position: center; + background-repeat: no-repeat; + border-radius: 100%; + overflow: hidden; + margin: 0px 12px 0px 0px; + pointer-events: none; + flex: 0 0 32px; + + .mediaitem-artwork { + border-radius: inherit; + } + } + .artist-chip__name { + pointer-events: none; + } +} + +.search-panel { + background: rgb(0 0 0 / 50%); +} + +.search-header { + position: absolute; + width: 100%; + z-index: 1; + backdrop-filter: blur(16px); + -webkit-backdrop-filter: blur(16px); + border-bottom: 1px solid rgb(200 200 200 / 8%); +} + +.connection-error-panel { + background: rgb(0 0 0 / 50%); +} + +.search-type-container { + display: flex; +} + +.search-type-button { + background: rgb(20 20 20 / 0.85); + border-radius: 50px; + color: white; + border: 0px; + box-shadow: unset; + font-family: inherit; + padding: 8px 16px; + font-size: 14px; + font-weight: 500; + margin: 8px; + margin-top: 0px; + margin-bottom: 0px; +} + +.search-type-button.active { + background: var(--keyColor); +} + +.search-tab-container { + overflow: auto; + white-space: nowrap; + overflow-y: hidden; +} + +.search-body-container { + position: relative; + width: 100%; + height: 100%; +} + +.search-body { + position: absolute; + width: 100%; + height: 100%; + padding-top: 220px; +} + +.search-tab { + background: rgb(20 20 20 / 0.85); + border-radius: 50px; + color: white; + border: 0px; + box-shadow: unset; + font-family: inherit; + padding: 8px 16px; + font-size: 14px; + font-weight: 500; +} + +.search-tab.active { + background: var(--keyColor); +} \ No newline at end of file diff --git a/src/renderer/less/helpers.css b/src/renderer/less/helpers.css new file mode 100644 index 00000000..f911c573 --- /dev/null +++ b/src/renderer/less/helpers.css @@ -0,0 +1,349 @@ +.notyf__toast { + -webkit-app-region: no-drag; + cursor: pointer; +} +.notyf-info { + background: var(--keyColor); +} +.tooltip-inner { + background: #2f2f2f; + opacity: 1; + border: 1px solid rgba(0, 0, 0, 0.35); + transition: all 0.3s ease-in-out; + box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.25); +} +.modal-fullscreen { + display: flex; + justify-content: center; + align-items: center; + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.3); + z-index: 1000; +} +.modal-fullscreen .modal-window { + background: #333; + border-radius: 10px; + box-shadow: var(--mediaItemShadow-Shadow); + display: flex; + flex-flow: column; + max-height: 500px; + max-width: 360px; + background: #121212; + width: 100%; + position: relative; +} +.modal-fullscreen .modal-window:after { + content: ""; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + pointer-events: none; + box-shadow: var(--mediaItemShadow); + z-index: 1; + border-radius: inherit; +} +.modal-fullscreen .modal-window .modal-header { + width: 100%; + padding: 6px; +} +.modal-fullscreen .modal-window .modal-content { + width: 100%; + height: 100%; + overflow: hidden; + overflow-y: overlay; +} +.spatialproperties-panel .modal-window { + height: 700px; + max-height: 700px; + width: 800px; + max-width: 800px; + overflow: hidden; +} +.spatialproperties-panel .modal-window .info-header { + padding-left: 12px; +} +.spatialproperties-panel .modal-window .visual-container { + display: flex; + justify-content: center; + align-items: center; + overflow: hidden; +} +.spatialproperties-panel .modal-window .visual { + position: relative; + height: 250px; + width: 300px; + display: inline-flex; + align-items: flex-end; + justify-content: center; + filter: drop-shadow(2px 12px 6px rgba(0, 0, 0, 0.25)); + margin: 0 auto; +} +.spatialproperties-panel .modal-window .visual .face { + position: absolute; + width: calc(12px * 6); + height: calc(12px * 6); + border-radius: 6px; + transform: rotateX(60deg) rotateZ(-45deg); + transition: transform 0.2s linear, width 0.2s linear, height 0.2s linear; +} +.spatialproperties-panel .modal-window .visual .listener { + position: absolute; + width: 32px; + height: 32px; + border-radius: 6px; + transform: rotateX(60deg) rotateZ(-45deg); + transition: transform 0.2s linear, width 0.2s linear, height 0.2s linear; + background: white; + color: black; + z-index: 2; +} +.spatialproperties-panel .modal-window .visual .audiosource { + position: absolute; + width: 32px; + height: 32px; + border-radius: 6px; + transform: rotateX(60deg) rotateZ(-45deg); + transition: transform 0.2s linear, width 0.2s linear, height 0.2s linear; + background: yellow; + z-index: 2; +} +.spatialproperties-panel .modal-window .visual .face:nth-of-type(1) { + background: linear-gradient(45deg, #28223a, #1f2038); + z-index: 1; +} +.spatialproperties-panel .modal-window .visual .face:nth-of-type(2) { + background: linear-gradient(45deg, #7d53ad, #5763ff); + transform: rotateX(60deg) rotateZ(-45deg) translateZ(30px); + opacity: 0.7; + z-index: 3; +} +.spatialproperties-panel .modal-window .modal-header { + padding: 16px; + position: relative; + overflow: hidden; +} +.spatialproperties-panel .modal-window .modal-header .modal-title { + text-align: center; +} +.spatialproperties-panel .modal-window .modal-header .close-btn { + width: 50px; + height: 100%; + background-image: var(--gfx-closeBtn); + background-position: center; + background-repeat: no-repeat; + -webkit-app-region: no-drag; + appearance: none; + border: 0; + background-color: transparent; + position: absolute; + top: 0; + right: 0; +} +.spatialproperties-panel .modal-window .modal-header .close-btn:hover { + background-color: #c42b1c; +} +.addtoplaylist-panel .modal-window { + max-height: 600px; + max-width: 400px; + background: rgba(18, 18, 18, 0.9); + overflow: hidden; + backdrop-filter: blur(16px) saturate(180%); +} +.addtoplaylist-panel .modal-window .modal-header { + padding: 16px; + position: relative; +} +.addtoplaylist-panel .modal-window .modal-header .modal-title { + text-align: center; +} +.addtoplaylist-panel .modal-window .modal-header .close-btn { + width: 50px; + height: 100%; + background-image: var(--gfx-closeBtn); + background-position: center; + background-repeat: no-repeat; + -webkit-app-region: no-drag; + appearance: none; + border: 0; + background-color: transparent; + position: absolute; + top: 0; + right: 0; +} +.addtoplaylist-panel .modal-window .modal-header .close-btn:hover { + background-color: #c42b1c; +} +.addtoplaylist-panel .modal-window .modal-search { + width: 100%; + padding: 0px 16px; + position: relative; +} +.addtoplaylist-panel .modal-window .playlist-item { + appearance: none; + border: 0px; + text-align: left; + width: 100%; + margin: 0; + display: flex; + background: rgba(32, 32, 32, 0.46); + color: #eee; + font-family: inherit; + font-size: 0.98em; + padding: 6px 12px; + align-items: center; + flex-flow: row; +} +.addtoplaylist-panel .modal-window .playlist-item .icon { + pointer-events: none; + width: 32px; + height: 32px; + display: flex; + justify-content: center; + align-items: center; + margin-right: 6px; +} +.addtoplaylist-panel .modal-window .playlist-item .name { + position: relative; +} +.addtoplaylist-panel .modal-window .playlist-item:hover { + background: var(--selected); +} +.addtoplaylist-panel .modal-window .playlist-item:active { + background: var(--selected-click); +} +.addtoplaylist-panel .modal-window .playlist-item.focused { + background: var(--keyColor); +} +.addtoplaylist-panel .modal-window .playlist-item:last-child { + border-bottom: 0px; +} +.menu-panel { + width: 100%; + height: 100%; + position: fixed; + top: 0; + left: 0; + z-index: 100001; + display: flex; + justify-content: center; + align-items: center; + -webkit-app-region: no-drag; +} +.menu-panel .menu-header-body { + padding: 6px; + display: flex; + background: rgba(200, 200, 200, 0.1); +} +.menu-panel .menu-header-body .menu-option-header { + width: 40px; + height: 40px; + display: flex; + justify-content: center; + align-items: center; + border-radius: var(--mediaItemRadius); + appearance: none; + border: 0; + background: transparent; +} +.menu-panel .menu-header-body .menu-option-header.active .sidebar-icon > .svg-icon { + --color: var(--keyColor); +} +.menu-panel .menu-header-body .menu-option-header:hover { + background: var(--selected); +} +.menu-panel .menu-header-body .menu-option-header:active { + background: var(--selected-click); +} +.menu-panel .menu-panel-body { + display: flex; + flex-flow: column; + background: #262626; + position: relative; + min-width: 200px; + box-shadow: var(--ciderShadow-Generic); + border-radius: var(--mediaItemRadius); + overflow: hidden; + font-size: 13px; +} +.menu-panel .menu-panel-body .menu-option { + text-align: left; + display: flex; + width: 100%; + padding: 9px 16px; + appearance: none; + border: 0px; + font: inherit; + background: transparent; + color: inherit; +} +.menu-panel .menu-panel-body .menu-option:hover { + background: var(--selected); +} +.menu-panel .menu-panel-body .menu-option:active { + background: var(--selected-click); +} +.menu-panel .menu-header-text { + margin: 18px 6px; +} +.menu-panel .menu-header-text .close-btn { + width: 50px; + height: 42px; + background-image: var(--gfx-closeBtn); + background-position: center; + background-repeat: no-repeat; + -webkit-app-region: no-drag; + appearance: none; + border: 0; + background-color: transparent; + position: absolute; + top: 0; + right: 0; +} +.menu-panel .menu-header-text .close-btn:hover { + background-color: #c42b1c; +} +.menu-panel .menu-body { + overflow: overlay; + height: 100%; +} +.menu-panel .menu-footer { + width: 100%; + padding: 12px; +} +.queue-panel { + height: 100%; + width: 100%; + display: flex; + flex-flow: column; +} +.queue-panel .queue-header-text { + margin: 18px 6px; +} +.queue-panel .queue-body { + overflow: overlay; + height: 100%; +} +.queue-panel .queue-footer { + width: 100%; + padding: 12px; +} +.queue-panel .autoplay { + background: rgba(200, 200, 200, 0.15); + display: flex; + justify-content: center; + appearance: none; + border: 0; + border-radius: 6px; + height: 32px; + width: 32px; +} +.queue-panel .infinity { + content: url("assets/infinity.svg"); + margin: auto; +} diff --git a/src/renderer/less/helpers.less b/src/renderer/less/helpers.less new file mode 100644 index 00000000..211e8cd9 --- /dev/null +++ b/src/renderer/less/helpers.less @@ -0,0 +1,413 @@ +.notyf__toast { + -webkit-app-region: no-drag; + cursor: pointer; +} + +.notyf-info { + background: var(--keyColor); +} + +.tooltip-inner { + background: #2f2f2f; + opacity: 1; + border: 1px solid rgb(0 0 0 / 35%); + transition: all 0.3s ease-in-out; + box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.25); +} + +.modal-fullscreen { + display: flex; + justify-content: center; + align-items: center; + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.3); + z-index: 1000; + + .modal-window { + background: #333; + border-radius: 10px; + box-shadow: var(--mediaItemShadow-Shadow); + display: flex; + flex-flow: column; + max-height: 500px; + max-width: 360px; + background: #121212; + width: 100%; + position: relative; + + &:after { + content: ""; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + pointer-events: none; + box-shadow: var(--mediaItemShadow); + z-index: 1; + border-radius: inherit; + } + + .modal-header { + width: 100%; + padding: 6px; + } + + .modal-content { + width: 100%; + height: 100%; + overflow: hidden; + overflow-y: overlay; + } + + .modal-footer { + } + } +} + +.spatialproperties-panel { + .modal-window { + height: 700px; + max-height: 700px; + width: 800px; + max-width: 800px; + overflow: hidden; + + .info-header { + padding-left: 12px; + } + + .visual-container { + display: flex; + justify-content: center; + align-items: center; + overflow: hidden; + } + + .visual { + position: relative; + height: 250px; + width: 300px; + display: inline-flex; + align-items: flex-end; + justify-content: center; + filter: drop-shadow(2px 12px 6px rgb(0 0 0 / 25%)); + margin: 0 auto; + + .face { + position: absolute; + width: calc(12px * 6); + height: calc(12px * 6); + border-radius: 6px; + transform: rotateX(60deg) rotateZ(-45deg); + transition: transform 0.2s linear, width 0.2s linear, height 0.2s linear; + } + + .listener { + position: absolute; + width: 32px; + height: 32px; + border-radius: 6px; + transform: rotateX(60deg) rotateZ(-45deg); + transition: transform 0.2s linear, width 0.2s linear, height 0.2s linear; + background: white; + color: black; + z-index: 2; + } + + .audiosource { + position: absolute; + width: 32px; + height: 32px; + border-radius: 6px; + transform: rotateX(60deg) rotateZ(-45deg); + transition: transform 0.2s linear, width 0.2s linear, height 0.2s linear; + background: yellow; + z-index: 2; + } + + .face:nth-of-type(1) { + background: linear-gradient(45deg, #28223a, #1f2038); + z-index: 1; + } + + .face:nth-of-type(2) { + background: linear-gradient(45deg, #7d53ad, #5763ff); + transform: rotateX(60deg) rotateZ(-45deg) translateZ(30px); + opacity: 0.7; + z-index: 3; + } + } + + .modal-header { + padding: 16px; + position: relative; + overflow: hidden; + + .modal-title { + text-align: center; + } + + .close-btn { + width: 50px; + height: 100%; + background-image: var(--gfx-closeBtn); + background-position: center; + background-repeat: no-repeat; + -webkit-app-region: no-drag; + appearance: none; + border: 0; + background-color: transparent; + position: absolute; + top: 0; + right: 0; + + &:hover { + background-color: rgb(196, 43, 28) + } + } + } + } +} + +.addtoplaylist-panel { + .modal-window { + max-height: 600px; + max-width: 400px; + background: rgb(18 18 18 / 90%); + overflow: hidden; + backdrop-filter: blur(16px) saturate(180%); + + .modal-header { + padding: 16px; + position: relative; + + .modal-title { + text-align: center; + } + + .close-btn { + width: 50px; + height: 100%; + background-image: var(--gfx-closeBtn); + background-position: center; + background-repeat: no-repeat; + -webkit-app-region: no-drag; + appearance: none; + border: 0; + background-color: transparent; + position: absolute; + top: 0; + right: 0; + + &:hover { + background-color: rgb(196, 43, 28) + } + } + } + + .modal-search { + width: 100%; + padding: 0px 16px; + position: relative; + } + + .playlist-item { + appearance: none; + border: 0px; + text-align: left; + width: 100%; + margin: 0; + display: flex; + background: rgba(32, 32, 32, 0.46); + color: #eee; + font-family: inherit; + font-size: 0.98em; + padding: 6px 12px; + align-items: center; + flex-flow: row; + + .icon { + pointer-events: none; + width: 32px; + height: 32px; + display: flex; + justify-content: center; + align-items: center; + margin-right: 6px; + } + + .name { + position: relative; + } + + &:hover { + background: var(--selected); + } + + &:active { + background: var(--selected-click); + } + + &.focused { + background: var(--keyColor); + } + } + + .playlist-item:last-child { + border-bottom: 0px; + } + } +} + +.menu-panel { + width: 100%; + height: 100%; + position: fixed; + top: 0; + left: 0; + z-index: 100001; + display: flex; + justify-content: center; + align-items: center; + -webkit-app-region: no-drag; + + .menu-header-body { + padding: 6px; + display: flex; + background: rgb(200 200 200 / 10%); + + .menu-option-header { + width: 40px; + height: 40px; + display: flex; + justify-content: center; + align-items: center; + border-radius: var(--mediaItemRadius); + appearance: none; + border: 0; + background: transparent; + + &.active { + .sidebar-icon > .svg-icon { + --color: var(--keyColor); + } + } + + &:hover { + background: var(--selected); + } + + &:active { + background: var(--selected-click); + } + } + } + + .menu-panel-body { + display: flex; + flex-flow: column; + background: #262626; + position: relative; + min-width: 200px; + box-shadow: var(--ciderShadow-Generic); + border-radius: var(--mediaItemRadius); + overflow: hidden; + font-size: 13px; + + .menu-option { + text-align: left; + display: flex; + width: 100%; + padding: 9px 16px; + appearance: none; + border: 0px; + font: inherit; + background: transparent; + color: inherit; + + &:hover { + background: var(--selected); + } + + &:active { + background: var(--selected-click); + } + } + } + + + .menu-header-text { + margin: 18px 6px; + + .close-btn { + width: 50px; + height: 42px; + background-image: var(--gfx-closeBtn); + background-position: center; + background-repeat: no-repeat; + -webkit-app-region: no-drag; + appearance: none; + border: 0; + background-color: transparent; + position: absolute; + top: 0; + right: 0; + + &:hover { + background-color: rgb(196, 43, 28) + } + } + } + + .menu-body { + overflow: overlay; + height: 100%; + } + + .menu-footer { + width: 100%; + padding: 12px; + } +} + +.queue-panel { + height: 100%; + width: 100%; + display: flex; + flex-flow: column; + + .queue-header-text { + margin: 18px 6px; + } + + .queue-body { + overflow: overlay; + height: 100%; + } + + .queue-footer { + width: 100%; + padding: 12px; + } + + .autoplay { + background: rgb(200 200 200 / 15%); + display: flex; + justify-content: center; + appearance: none; + border: 0; + border-radius: 6px; + height: 32px; + width: 32px; + } + + .infinity { + content: url("./assets/infinity.svg"); + margin: auto; + } +} diff --git a/src/renderer/less/linux.less b/src/renderer/less/linux.less new file mode 100644 index 00000000..6b26d1ee --- /dev/null +++ b/src/renderer/less/linux.less @@ -0,0 +1,6 @@ +// Linux +body[platform="linux"] { + #window-controls-container { + display: none; + } +} \ No newline at end of file diff --git a/src/renderer/less/macos.less b/src/renderer/less/macos.less new file mode 100644 index 00000000..af21338b --- /dev/null +++ b/src/renderer/less/macos.less @@ -0,0 +1,17 @@ +body[platform="darwin"] { + html { + background: transparent!important; + } + + &.notransparency::before { + display: none; + } + #app { + &.simplebg { + background: transparent; + } + &::before { + display: none; + } + } +} \ No newline at end of file diff --git a/src/renderer/less/pages.less b/src/renderer/less/pages.less new file mode 100644 index 00000000..b2ff7c4e --- /dev/null +++ b/src/renderer/less/pages.less @@ -0,0 +1,1185 @@ +// Helpers +.content-inner { + position : absolute; + top : var(--navigationBarHeight); + left : 0; + padding : 32px; + width : 100%; + transition: zoom 1s; + zoom : 1; +} + +.content-inner.centered { + height : 100%; + display : flex; + flex-flow : column; + justify-content: center; + align-items : center; +} + +// End Helpers + +// GitHub Themes +.github-themes-page { + display : flex; + flex-direction: column; + padding : 0px; + height : calc(100% - var(--navigationBarHeight)); + + .github-avatar { + height : 42px; + width : 42px; + margin : 6px; + border-radius: 32px; + } + + .repo-name { + margin : 0px; + font-weight : 500; + overflow : hidden; + text-overflow: ellipsis; + white-space : break-spaces; + } + + .repo-url { + color : var(--textColor); + font-size: 0.8em; + } + + .repo-preview-name { + margin: 0px; + } + + .repos-list { + height : 100%; + overflow-y: overlay; + width : 320px; + font-size : 14px; + + >.list-group { + margin: 0px; + } + + .list-group-item { + padding: 12px 6px; + + &:hover { + filter: brightness(1.2); + } + + &:active { + filter: brightness(0.8); + } + } + } + + .github-preview { + height : 100%; + flex : 1; + background: var(--color2); + padding : 16px 32px; + overflow-y: overlay; + } + + .gh-content { + display : flex; + flex-direction: row; + flex : 1; + overflow : hidden; + } + + .gh-header { + padding: 16px; + } +} + +// Library - Songs page +.library-page { + padding: 0px; + + .library-header { + position : sticky; + top : 0; + left : 0; + border-bottom : 1px solid rgba(200, 200, 200, 0.05); + z-index : 6; + background : black; + padding : 0px 2em; + backdrop-filter: blur(32px); + background : rgba(0, 0, 0, 0.25); + top : var(--navigationBarHeight); + } + + .well { + margin: 2em; + } +} + +// Podcast Page +.content-inner.podcasts-page { + display: flex; + height : calc(100% - var(--navigationBarHeight)); + padding: 0px; + + .list-flat { + border-radius: 0px; + } + + .podcast-artwork { + width : 200px; + margin: 16px auto; + height: 200px; + } + + .podcasts-list { + height : 100%; + width : 280px; + background : rgb(200 200 200 / 10%); + overflow-y : overlay; + border-right: 1px solid var(--color2); + flex : none; + overflow-x : hidden; + + .podcast-list-header { + border-bottom : 1px solid var(--color2); + font-size : 0.7em; + padding : 6px; + background : #ffffff17; + text-transform: uppercase; + font-weight : 600; + opacity : 0.5; + } + + .podcasts-search { + padding : 10px; + position : sticky; + top : 0; + left : 0; + width : 100%; + border-bottom: 1px solid var(--color2); + z-index : 2; + background : #303030; + } + } + + .episodes-list { + height : 100%; + width : 100%; + background: rgb(200 200 200 / 6%); + overflow-y: overlay; + overflow-x: hidden; + + .episodes-inline-info { + padding: 14px 14px 0px 14px; + + .podcast-show-info { + display : flex; + justify-content: center; + flex-direction : column; + } + + .podcast-show-description { + margin : 32px 6px; + font-size : 0.8rem; + white-space: pre-wrap; + display : block; + } + + .podcast-artwork { + width : 120px; + margin: 0px auto; + height: 120px; + } + } + + .podcast-no-search-results { + text-align: center; + margin-top: 40px; + } + } + + .podcasts-details { + width : 300px; + flex : none; + background : rgb(255 255 255 / 5%); + overflow-y : overlay; + overflow-x : hidden; + top : 2%; + z-index : 2; + border-left : 1px solid var(--color2); + padding-bottom: 1em; + + .meta-btn { + font-size: 0.75em; + } + + .podcasts-details-header { + display : flex; + justify-content: end; + align-items : center; + position : sticky; + top : 0; + z-index : 2; + } + + .close-btn { + width : 50px; + height : 42px; + background-image : var(--gfx-closeBtn); + background-position: center; + background-repeat : no-repeat; + -webkit-app-region : no-drag; + appearance : none; + border : 0; + background-color : transparent; + position : absolute; + top : 0; + right : 0; + + &:hover { + background-color: rgb(196, 43, 28) + } + } + + .podcast-genre { + text-align : center; + margin : 6px; + font-size : 0.8em; + font-weight: 500; + opacity : 0.8; + } + + .podcast-metainfo { + text-align: center; + font-size : 0.7em; + opacity : 0.8; + } + + .podcast-header { + text-align: center; + } + + .podcast-play-btn { + width : 50%; + display: block; + margin : 0 auto; + } + + .podcast-description { + margin : 12px; + font-size : 0.75em; + white-space: pre-wrap; + display : block; + line-break : anywhere; + } + + + } + +} + +@media only screen and (max-width: 1230px) { + .content-inner.podcasts-page { + .podcasts-details { + height : 96%; + width : 300px; + flex : none; + background : rgb(20 20 20 / 97%); + overflow-y : overlay; + overflow-x : hidden; + position : absolute; + right : 2%; + top : 2%; + border-radius: 10px; + box-shadow : var(--ciderShadow-Generic); + z-index : 2; + } + } +} + +/* Album / Playlist Page */ +.playlist-page { + --bgColor : transparent; + padding : 0px; + //background: linear-gradient(180deg, var(--bgColor) 32px, var(--bgColor) 18px, transparent 60px, transparent 100%); + top : 0; + padding-top : var(--navigationBarHeight); + + .playlist-body { + padding : var(--contentInnerPadding) 2em; + margin-top: -75px; + } + + .floating-header { + position : sticky; + top : 0; + left : 0; + border-bottom : 1px solid rgba(200, 200, 200, 0.05); + z-index : 6; + padding : 0px 1em; + backdrop-filter: blur(32px); + background : rgba(0, 0, 0, 0.25); + top : var(--navigationBarHeight); + transition : opacity 0.1s var(--appleEase); + } + + .playlist-display { + padding : var(--contentInnerPadding); + min-height: 300px; + position : relative; + + .artworkContainer { + position : absolute; + top : 0; + left : 0; + bottom : 0; + right : 0; + margin : 0; + margin-top : calc(var(--navigationBarHeight) * -1); + margin-bottom : -10px; + padding : 0; + -webkit-mask-image: radial-gradient(at top left, black, transparent 70%), radial-gradient(at top right, black, transparent 70%), linear-gradient(180deg, rgb(200 200 200), transparent 98%); + opacity : .7; + animation : playlistArtworkFadeIn 1s var(--appleEase); + + .artworkMaterial>img { + filter : brightness(100%) blur(80px) saturate(100%) contrast(1); + object-position: center; + object-fit : cover; + width : 100%; + height : 100%; + transform : unset; + } + } + + .playlistInfo { + z-index : 1; + position : absolute; + bottom : 0; + left : 0; + right : 0; + top : 0; + display : flex; + justify-content: center; + align-items : center; + width : 100%; + height : 100%; + + >.row { + width: calc(100% - 32px); + } + + .playlist-info { + flex-shrink : unset; + display : flex; + flex-flow : column; + justify-content: flex-end; + + .playlist-name { + font-weight : 700; + font-size : 1.6rem; + //margin-bottom: 6px; + margin-right : 6px; + flex-shrink : unset; + } + + .nameEdit { + font-weight : 700; + font-size : 1.6rem; + margin-bottom: 6px; + margin-right : 6px; + flex-shrink : unset; + background : transparent; + border : 0px; + color : inherit; + font-family : inherit; + } + + .playlist-artist { + font-size : 20px; + margin-bottom: 6px; + margin-right : 6px; + flex-shrink : unset; + } + + .playlist-desc { + box-sizing : border-box; + font-size : 14px; + flex-shrink : unset; + margin-right: 5px; + max-height : 100px; + position : relative; + + .content { + height : 100px; + -webkit-mask-image: -webkit-gradient(linear, left 50%, left 90%, from(rgba(0, 0, 0, 1)), to(rgba(0, 0, 0, 0))); + } + + .more-btn { + appearance : none; + position : absolute; + right : 0; + bottom : 0; + padding : 0 5px; + font-size : 14px; + color : var(--keyColor); + background-color: transparent; + border : 0px; + cursor : pointer; + width : 100%; + height : 100%; + overflow : hidden; + display : flex; + justify-content : flex-end; + align-items : flex-end; + font-weight : 600; + font-family : inherit; + text-transform : uppercase; + } + } + + .playlist-desc-expanded { + box-sizing: border-box; + font-size : 14px; + position : relative; + + .more-btn { + appearance : none; + position : absolute; + right : 0; + bottom : 0; + padding : 0 5px; + font-size : 14px; + color : var(--keyColor); + background-color: transparent; + border : 0px; + cursor : pointer; + width : 100%; + height : 100%; + overflow : hidden; + display : flex; + justify-content : flex-end; + align-items : flex-end; + font-weight : 600; + font-family : inherit; + text-transform : uppercase; + } + } + } + } + + + } + + .friends-info { + display : flex; + flex-flow: column; + + .badge-container { + display : flex; + flex-flow: wrap; + + .socialBadge { + width : 40px; + height : 40px; + border-radius: 100%; + overflow : hidden; + box-shadow : var(--mediaItemShadow-ShadowSubtle); + transition : transform .2s var(--appleEase); + margin : 6px; + + &:hover { + transform: scale(1.2); + } + } + } + + .friends-name { + text-align: center; + font-size : 0.9em; + margin : 8px; + } + } + + .playlist-time { + font-size: 0.9em; + margin : 6px; + opacity : 0.7; + } + + &.inline-playlist { + overflow : hidden; + width : 100%; + height : 100%; + background : rgba(0, 0, 0, 0.5); + display : flex; + justify-content: center; + align-items : center; + z-index : 10; + position : sticky; + margin-top : calc(var(--navigationBarHeight) * -1); + + .floating-header { + opacity : 1; + top : 0px; + z-index : 6; + padding : 1em; + backdrop-filter: unset; + background : black; + + h3 { + display: none; + } + } + + .playlist-inner { + background : black; + width : 80%; + height : 100%; + overflow : overlay; + box-shadow : var(--ciderShadow-Generic); + border-radius: var(--mediaItemRadius) var(--mediaItemRadius) 0px 0px; + + .close-btn { + position : sticky; + top : 16px; + left : 16px; + margin-left: 16px; + z-index : 7; + } + } + } +} + +@keyframes playlistArtworkFadeIn { + 0% { + opacity: 0; + } + + 100% { + opacity: 0.7; + } +} + +// Collection Page +.collection-page { + padding-bottom: 128px; + + .top-fab { + height : 52px; + width : 52px; + position : fixed; + bottom : 32px; + right : 32px; + border-radius: 100%; + background : rgb(60 60 60); + border : 0px; + appearance : none; + box-shadow : var(--ciderShadow-Generic); + + >svg { + height : 50%; + color : #eee; + pointer-events: none; + } + + &:hover { + background: rgb(100 100 100); + } + + &:active { + background: var(--keyColor); + } + } + + .header-text { + margin-bottom: 32px; + } +} + +/* Artist Page */ + +.artist-page { + padding: 0px; + top : 0; + + .floating-header { + position : sticky; + top : 0; + left : 0; + border-bottom : 1px solid rgba(200, 200, 200, 0.05); + z-index : 6; + padding : 0px 1em; + backdrop-filter: blur(32px); + background : rgba(0, 0, 0, 0.25); + top : var(--navigationBarHeight); + transition : opacity 0.1s var(--appleEase); + } + + &.animated .artist-header .more-btn-round { + position: absolute; + bottom : 22px !important; + right : 28px; + } + + .artist-header { + //background: linear-gradient(45deg, var(--keyColor), #0e0e0e); + color : white; + display : flex; + align-items : center; + justify-content: space-between; + min-height : 400px; + position : relative; + pointer-events : none; + + .header-content { + z-index : 1; + margin-top: -16px; + } + + + .artworkContainer { + position : absolute; + top : 0; + left : 0; + bottom : 0; + right : 0; + margin : 0; + padding : 0; + -webkit-mask-image: radial-gradient(at top left, black, transparent 70%), radial-gradient(at top right, black, transparent 70%), linear-gradient(180deg, rgb(200 200 200), transparent 98%); + opacity : .7; + animation : playlistArtworkFadeIn 1s var(--appleEase); + + .artworkMaterial>img { + filter : brightness(100%) blur(80px) saturate(100%) contrast(1); + object-position: center; + object-fit : cover; + width : 100%; + height : 100%; + transform : unset; + } + } + + .more-btn-round { + position: absolute; + bottom : 82px; + right : 28px; + } + + .animated { + width : 100%; + height : 100%; + align-self: center; + position : absolute; + overflow : hidden; + box-shadow: rgb(0 0 0 / 50%) 0 0 0 1000000px inset; + + video { + overflow : hidden; + height : 100%; + width : 100%; + min-height: 56.25vw; + position : absolute; + top : 50%; + left : 50%; + transform : translate(-50%, -50%); + } + } + + .row .col.flex-center { + z-index: 4; + } + } + + .artist-image { + width : 200px; + height : 200px; + margin : 32px; + position: relative; + + .overlay-play { + position : absolute; + top : 0; + left : 0; + width : 100%; + height : 100%; + opacity : 0; + background : rgb(0 0 0 / 50%); + transition : opacity 0.1s var(--appleEase); + border-radius : 100%; + z-index : 1; + display : flex; + align-items : center; + justify-content: center; + cursor : pointer; + appearance : none; + border : 0px; + padding : 0px; + + &:hover { + opacity: 1; + } + + &:active { + background: var(--selected-click); + } + + >svg { + width: 70%; + } + } + } + + .artist-play { + width : 32px; + height : 32px; + background : rgba(100, 100, 100, 0.5); + box-shadow : var(--ciderShadow-Generic); + border-radius: 100%; + box-shadow : var(--mediaItemShadow); + display : none; + cursor : pointer; + appearance : none; + border : 0px; + padding : 0px; + + &:hover { + filter: brightness(125%); + } + + &:active { + filter : brightness(75%); + transform : scale(0.98); + transition: transform 0s var(--appleEase), box-shadow 0.2s var(--appleEase); + } + } + + .artist-title { + + .artist-play { + transform: translateY(3px); + margin : 14px; + } + + &.artist-animation-on { + width : 100%; + flex : unset; + margin-left: 0.5em; + color : whitesmoke; + position : absolute; + bottom : 0; + + .artist-play { + display: block; + } + } + } + + .artist-body { + padding: 0px var(--contentInnerPadding) 0px var(--contentInnerPadding); + margin : -140px 20px; + + .arow { + display : flex; + overflow: hidden; + padding : 16px 32px; + >.latestRelease { + width: 250px; + } + >.topSongs { + width: calc(100% - 250px); + } + + &.arowb>.topSongs { + width: 100%; + } + } + } + + &.animated>.artist-body { + padding : 0px var(--contentInnerPadding) 0px var(--contentInnerPadding); + margin-top: -57px; + } + + .showmoreless { + font-family : inherit; + font-size : 16px; + font-weight : 500; + background : transparent; + border : 0px; + border-radius: 6px; + appearance : none; + color : var(--keyColor); + padding : 8px 12px; + cursor : pointer; + margin-top : 12px; + float : right; + } + + .showmoreless:hover { + background: rgb(200 200 200 / 10%); + } +} + +/* Artist Page End */ + +// Settings page +.settings-page { + padding: 0px; + + .md-option-header { + padding : 1.25em 1.25em; + border-bottom: unset; + border-top : unset; + font-weight : 600; + font-size : 1.0em; + background : rgb(255 255 255 / 3%); + } + + .settings-option-body { + margin: 16px; + } +} + +// AudioLabs page +.audiolabs-page { + padding: 0px; + + .md-option-header { + padding : 1.25em 1.25em; + border-bottom: unset; + border-top : unset; + font-weight : 600; + font-size : 1.0em; + background : rgb(255 255 255 / 3%); + } + + .carousel-item>img { + object-fit: cover; + width:100%; + } + + .spprofile-line { + height: 300px; + width: 100%; + max-width: 1024px; + padding: 16px; + margin: 0 auto; + + .spprofile-viewport { + height: 100%; + position: relative; + border-radius: var(--mediaItemRadius); + overflow: hidden; + box-shadow: var(--mediaItemShadow-Shadow); + background: black; + + .spprev, .nextprev { + position: absolute; + height: 100%; + width: 64px; + top: 0; + background: rgb(0 0 0 / 20%); + z-index: 1; + border: 0px; + transition: background 0.2s var(--appleEase), transform 0.2s var(--appleEase); + &:hover { + background: var(--selected); + transform: scale(1.1); + } + + &:active { + transition: background 0s var(--appleEase); + background: var(--selected-click); + } + + &:before { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: #eee; + opacity: 1; + -webkit-mask-position: center; + -webkit-mask-repeat: no-repeat; + -webkit-mask-size: 1em; + } + } + + .spprev { + left: 0; + &:before { + -webkit-mask-image: url("./views/svg/chevron-left.svg"); + } + + } + + .nextprev { + right: 0; + &:before { + -webkit-mask-image: url("./views/svg/chevron-right.svg"); + } + + } + + .spslide { + position: absolute; + width: 100%; + height: 100%; + overflow: hidden; + background: black; + + >img { + WIDTH: 100%; + height: 100%; + object-fit: cover; + } + + .sptitle { + position: absolute; + bottom: 0px; + left: 0; + width: 100%; + text-align: center; + font-size: 18px; + text-shadow: 0px 2px 4px #00000033; + } + } + + .spfade-enter-active, + .spfade-leave-active { + --transitionTime: 0.2s; + transition: opacity var(--transitionTime) var(--appleEase), transform var(--transitionTime) var(--appleEase); + will-change: opacity, transform; + } + + .spfade-enter { + opacity: 0; + transform: scale(1.2) translate3d(0,0,0); + will-change: opacity, transform; + } + .spfade-leave-to { + opacity: 1; + transform: scale(1) translate3d(0,0,0); + will-change: opacity, transform; + } + } + } + + .settings-option-body { + margin: 16px; + } +} + + +//Home +.home-page { + top : 0; + padding-top: var(--navbarHeight); + + .md-btn-replay { + background : var(--replayGradient); + border : 0px; + box-shadow : inset 0px 0px 0px 1px rgba(200, 200, 200, 0.2); + text-transform: uppercase; + font-weight : bold; + } + + .md-btn-replay--hero { + font-size : 1em; + padding : 16px; + background : var(--replayGradient); + border : 0px; + box-shadow : inset 0px 0px 0px 1px rgb(200 200 200 / 20%); + margin-top : 1em; + font-size : 0.9em; + text-transform: uppercase; + font-weight : bold; + } + + .artist-feed-card { + position : absolute; + bottom : 0; + left : 10%; + z-index : 1; + background : black; + width : 80%; + height : 96%; + overflow : scroll; + border-radius: 10px; + } + + .col.madeforyou-col { + width : 420px; + min-width: 0px; + max-width: 420px; + } + + .well.artistfeed-well { + margin-top : 0px; + height : 392px; + align-content: flex-start; + } + + .hint-text { + font-size: 0.9rem; + color : rgb(200 200 200 / 70%); + } + + .user-icon { + border-radius: 100%; + width : 128px; + height : 128px; + overflow : hidden; + box-shadow : var(--mediaItemShadow-Shadow); + margin : 16px; + } + + .well.profile-well { + flex-direction : column; + justify-content: center; + align-items : center; + + .name { + margin : 4px; + font-weight: 500; + } + + .handle { + margin : 4px; + opacity : 0.7; + font-weight: 500; + } + } +} + +// Replay +.replay-page { + --replayTextShadow: 0px 3px 2px #6f3f52; + + .replay-period { + height : 200px; + width : 200px; + margin : 6px; + border-radius : var(--mediaItemRadius); + overflow : hidden; + cursor : pointer; + transition : transform .2s var(--appleEase); + transition-delay: .1s; + align-self : center; + + &:hover { + transform : translateY(-6px); + transition-delay: 0s; + } + + .artwork-container { + height: 200px; + width : 200px; + } + } + + .replay-playlist-container { + .cd-mediaitem-square { + height: 230px; + width : 230px; + + .info-rect { + display: none; + } + } + } + + .replay-video { + max-height: 300px; + max-width : 800px; + margin : 0 auto; + + .mediaitem-artwork { + max-height: 300px; + max-width : 800px; + } + + .mediaitem-artwork .animatedartwork-view-box .animated video { + object-fit: cover; + } + } + + .top-genres-container { + + .genre-name { + font-size : 0.9em; + margin : 6px 0px; + font-weight: 500; + } + + .genre-count { + width : 100%; + height : 32px; + background : #ffffff14; + border-radius: 10px; + overflow : hidden; + + .genre-count-bar { + height : 100%; + width : 0%; + background : var(--keyColor); + display : flex; + justify-content: center; + align-items : center; + min-width : 32px; + font-size : 0.9em; + font-weight : 500; + } + } + } + + .cd-mediaitem-square { + .mediaitem-artwork { + animation: replayFadeIn .5s var(--appleEase); + } + + transition : transform .2s var(--appleEase); + transition-delay: .1s; + + &:hover { + transform : scale(1.1); + transition-delay: 0s; + } + } + + @keyframes replayFadeIn { + 0% { + //border-radius: 100%; + transform: translateY(10px) scale(0.9); + opacity : 0; + } + + 100% { + //border-radius: var(--mediaItemRadius); + transform: scale(1); + opacity : 1; + } + } + + .replay-viewport { + background : var(--replayGradient); + padding : 16px 40px; + border-radius: 10px; + box-shadow : var(--mediaItemShadow), var(--mediaItemShadow-Shadow); + color : rgb(238 238 238 / 86%); + + .replay-header { + text-align : center; + font-size : 3em; + text-shadow: var(--replayTextShadow); + } + } + + .replay-card { + background: transparent; + border : 0px; + } +} \ No newline at end of file diff --git a/src/renderer/js/bootbox.min.js b/src/renderer/lib/bootbox.min.js similarity index 100% rename from src/renderer/js/bootbox.min.js rename to src/renderer/lib/bootbox.min.js diff --git a/src/renderer/lib/bootstrap-vue.min.js b/src/renderer/lib/bootstrap-vue.min.js new file mode 100644 index 00000000..74575d56 --- /dev/null +++ b/src/renderer/lib/bootstrap-vue.min.js @@ -0,0 +1,11 @@ +/*! + * BootstrapVue 2.21.2 + * + * @link https://bootstrap-vue.org + * @source https://github.com/bootstrap-vue/bootstrap-vue + * @copyright (c) 2016-2021 BootstrapVue + * @license MIT + * https://github.com/bootstrap-vue/bootstrap-vue/blob/master/LICENSE + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("vue")):"function"==typeof define&&define.amd?define(["vue"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrapVue=e(t.Vue)}(this,(function(t){"use strict";function e(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var i=e(t);function n(t){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function r(t,e){for(var i=0;it.length)&&(e=t.length);for(var i=0,n=new Array(e);i0,W=(/msie|trident/.test(j),function(){var t=!1;if(M)try{var e={get passive(){t=!0}};H.addEventListener("test",e,e),H.removeEventListener("test",e,e)}catch(e){t=!1}return t}()),Y=M&&("ontouchstart"in z.documentElement||N.maxTouchPoints>0),U=M&&Boolean(H.PointerEvent||H.MSPointerEvent),q=M&&"IntersectionObserver"in H&&"IntersectionObserverEntry"in H&&"intersectionRatio"in H.IntersectionObserverEntry.prototype,K="BvConfig",X=["xs","sm","md","lg","xl"],Z=/\[(\d+)]/g,J=/^(BV?)/,Q=/^\d+$/,tt=/^\..+/,et=/^#/,it=/^#[A-Za-z]+[\w\-:.]*$/,nt=/(<([^>]+)>)/gi,ot=/\B([A-Z])/g,rt=/([a-z])([A-Z])/g,st=/^[0-9]*\.?[0-9]+$/,at=/\+/g,lt=/[-/\\^$*+?.()|[\]{}]/g,ct=/[\s\uFEFF\xA0]+/g,ut=/\s+/,dt=/\/\*$/,ht=/(\s|^)(\w)/g,ft=/^\s+/,pt=/_/g,mt=/-(\w)/g,vt=/^\d+-\d\d?-\d\d?(?:\s|T|$)/,bt=/-|\s|T/,gt=/^([0-1]?[0-9]|2[0-3]):[0-5]?[0-9](:[0-5]?[0-9])?$/,yt=/^.*(#[^#]+)$/,wt=/%2C/g,Tt=/[!'()*]/g,Ct=/^(\?|#|&)/,xt=/^\d+(\.\d*)?[/:]\d+(\.\d*)?$/,St=/[/:]/,kt=/^col-/,$t=/^BIcon/,Bt=/-u-.+/,Element=V?H.Element:function(t){u(Element,t);var e=g(Element);function Element(){return o(this,Element),e.apply(this,arguments)}return Element}(m(Object)),HTMLElement=V?H.HTMLElement:function(t){u(HTMLElement,t);var e=g(HTMLElement);function HTMLElement(){return o(this,HTMLElement),e.apply(this,arguments)}return HTMLElement}(Element),SVGElement=V?H.SVGElement:function(t){u(SVGElement,t);var e=g(SVGElement);function SVGElement(){return o(this,SVGElement),e.apply(this,arguments)}return SVGElement}(Element),_t=V?H.File:function(t){u(i,t);var e=g(i);function i(){return o(this,i),e.apply(this,arguments)}return i}(m(Object)),Dt=function(t){return n(t)},Ft=function(t){return void 0===t},It=function(t){return null===t},Pt=function(t){return Ft(t)||It(t)},Ot=function(t){return"function"===Dt(t)},Vt=function(t){return"boolean"===Dt(t)},Et=function(t){return"string"===Dt(t)},Lt=function(t){return"number"===Dt(t)},At=function(t){return st.test(String(t))},Rt=function(t){return Array.isArray(t)},Mt=function(t){return null!==t&&"object"===n(t)},Ht=function(t){return"[object Object]"===Object.prototype.toString.call(t)},zt=function(t){return t instanceof Date},Nt=function(t){return t instanceof Event},jt=function(t){return"RegExp"===function(t){return Object.prototype.toString.call(t).slice(8,-1)}(t)},Gt=function(){return Object.assign.apply(Object,arguments)},Wt=function(t,e){return Object.create(t,e)},Yt=function(t,e){return Object.defineProperties(t,e)},Ut=function(t,e,i){return Object.defineProperty(t,e,i)},qt=function(t){return Object.getOwnPropertyNames(t)},Kt=function(t){return Object.keys(t)},Xt=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},Zt=function(t){return c({},t)},Jt=function(t,e){return Kt(t).filter((function(t){return-1!==e.indexOf(t)})).reduce((function(e,i){return c(c({},e),{},a({},i,t[i]))}),{})},Qt=function(t,e){return Kt(t).filter((function(t){return-1===e.indexOf(t)})).reduce((function(e,i){return c(c({},e),{},a({},i,t[i]))}),{})},te=function t(e,i){return Mt(e)&&Mt(i)&&Kt(i).forEach((function(n){Mt(i[n])?(e[n]&&Mt(e[n])||(e[n]=i[n]),t(e[n],i[n])):Gt(e,a({},n,i[n]))})),e},ee=function(t){return Kt(t).sort().reduce((function(e,i){return c(c({},e),{},a({},i,t[i]))}),{})},ie=function t(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e;return Rt(e)?e.reduce((function(e,i){return[].concat(T(e),[t(i,i)])}),[]):Ht(e)?Kt(e).reduce((function(i,n){return c(c({},i),{},a({},n,t(e[n],e[n])))}),{}):i},ne=function(t){return t},oe=function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;if(!(e=Rt(e)?e.join("."):e)||!Mt(t))return i;if(e in t)return t[e];var n=(e=String(e).replace(Z,".$1")).split(".").filter(ne);return 0===n.length?i:n.every((function(e){return Mt(t)&&e in t&&!Pt(t=t[e])}))?t:It(t)?null:i},re=function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=oe(t,e);return Pt(n)?i:n},se=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i="undefined"!=typeof process&&process&&process.env||{};return t?i[t]||e:i},ae=function(){return se("BOOTSTRAP_VUE_NO_WARN")||"production"===se("NODE_ENV")},le=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;ae()||console.warn("[BootstrapVue warn]: ".concat(e?"".concat(e," - "):"").concat(t))},ce=function(t){return!M&&(le("".concat(t,": Can not be called during SSR.")),!0)},ue=function(t){return!A&&(le("".concat(t,": Requires Promise support.")),!0)},de=function(){function t(){o(this,t),this.$_config={}}return s(t,[{key:"setConfig",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(Ht(e)){var i=qt(e);i.forEach((function(i){var n=e[i];"breakpoints"===i?!Rt(n)||n.length<2||n.some((function(t){return!Et(t)||0===t.length}))?le('"breakpoints" must be an array of at least 2 breakpoint names',K):t.$_config[i]=ie(n):Ht(n)&&(t.$_config[i]=qt(n).reduce((function(t,e){return Ft(n[e])||(t[e]=ie(n[e])),t}),t.$_config[i]||{}))}))}}},{key:"resetConfig",value:function(){this.$_config={}}},{key:"getConfig",value:function(){return ie(this.$_config)}},{key:"getConfigValue",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;return ie(oe(this.$_config,t,e))}}]),t}(),he=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:i.default;e.prototype.$bvConfig=i.default.prototype.$bvConfig=e.prototype.$bvConfig||i.default.prototype.$bvConfig||new de,e.prototype.$bvConfig.setConfig(t)},fe=(I=!1,P=["Multiple instances of Vue detected!","You may need to set up an alias for Vue in your bundler config.","See: https://bootstrap-vue.org/docs#using-module-bundlers"].join("\n"),function(t){I||i.default===t||G||le(P),I=!0}),pe=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.components,i=t.directives,n=t.plugins,o=function t(o){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t.installed||(t.installed=!0,fe(o),he(r,o),ge(o,e),we(o,i),ve(o,n))};return o.installed=!1,o},me=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return c(c({},e),{},{install:pe(t)})},ve=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};for(var i in e)i&&e[i]&&t.use(e[i])},be=function(t,e,i){t&&e&&i&&t.component(e,i)},ge=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};for(var i in e)be(t,i,e[i])},ye=function(t,e,i){t&&e&&i&&t.directive(e.replace(/^VB/,"B"),i)},we=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};for(var i in e)ye(t,i,e[i])},Te="BAlert",Ce="BAspect",xe="BAvatar",Se="BAvatarGroup",ke="BBadge",$e="BBreadcrumb",Be="BBreadcrumbItem",_e="BBreadcrumbLink",De="BButton",Fe="BButtonClose",Ie="BButtonGroup",Pe="BButtonToolbar",Oe="BCalendar",Ve="BCard",Ee="BCardBody",Le="BCardFooter",Ae="BCardGroup",Re="BCardHeader",Me="BCardImg",He="BCardImgLazy",ze="BCardSubTitle",Ne="BCardText",je="BCardTitle",Ge="BCarousel",We="BCarouselSlide",Ye="BCol",Ue="BCollapse",qe="BContainer",Ke="BDropdown",Xe="BDropdownDivider",Ze="BDropdownForm",Je="BDropdownGroup",Qe="BDropdownHeader",ti="BDropdownItem",ei="BDropdownItemButton",ii="BDropdownText",ni="BEmbed",oi="BForm",ri="BFormCheckbox",si="BFormCheckboxGroup",ai="BFormDatalist",li="BFormDatepicker",ci="BFormFile",ui="BFormGroup",di="BFormInput",hi="BFormInvalidFeedback",fi="BFormRadio",pi="BFormRadioGroup",mi="BFormRating",vi="BFormRow",bi="BFormSelect",gi="BFormSelectOption",yi="BFormSelectOptionGroup",wi="BFormSpinbutton",Ti="BFormTag",Ci="BFormTags",xi="BFormText",Si="BFormTextarea",ki="BFormTimepicker",$i="BFormValidFeedback",Bi="BIcon",_i="BImg",Di="BImgLazy",Fi="BInputGroup",Ii="BInputGroupAddon",Pi="BInputGroupAppend",Oi="BInputGroupPrepend",Vi="BInputGroupText",Ei="BJumbotron",Li="BLink",Ai="BListGroup",Ri="BListGroupItem",Mi="BMedia",Hi="BMediaAside",zi="BMediaBody",Ni="BModal",ji="BNav",Gi="BNavbar",Wi="BNavbarBrand",Yi="BNavbarNav",Ui="BNavbarToggle",qi="BNavForm",Ki="BNavItem",Xi="BNavItemDropdown",Zi="BOverlay",Ji="BPagination",Qi="BPaginationNav",tn="BPopover",en="BProgress",nn="BProgressBar",on="BRow",rn="BSidebar",sn="BSkeleton",an="BSkeletonIcon",ln="BSkeletonImg",cn="BSkeletonTable",un="BSkeletonWrapper",dn="BSpinner",hn="BTab",fn="BTable",pn="BTableCell",mn="BTableLite",vn="BTableSimple",bn="BTabs",gn="BTbody",yn="BTfoot",wn="BThead",Tn="BTime",Cn="BToast",xn="BToaster",Sn="BTooltip",kn="cancel",$n="change",Bn="click",_n="close",Dn="context",Fn="context-changed",In="destroyed",Pn="disable",On="disabled",Vn="enable",En="enabled",Ln="filtered",An="first",Rn="focusin",Mn="focusout",Hn="head-clicked",zn="hidden",Nn="hide",jn="input",Gn="last",Wn="mouseenter",Yn="mouseleave",Un="next",qn="open",Kn="page-click",Xn="prev",Zn="refreshed",Jn="row-clicked",Qn="selected",to="show",eo="shown",io="sliding-end",no="toggle",oo="hook:beforeDestroy",ro="hook:destroyed",so="bv",ao={passive:!0},lo={passive:!0,capture:!1},co=void 0,uo=Array,ho=Boolean,fo=Date,po=Function,mo=Number,vo=Object,bo=RegExp,go=String,yo=[uo,po],wo=[uo,vo],To=[uo,vo,go],Co=[uo,go],xo=[ho,mo],So=[ho,mo,go],ko=[ho,go],$o=[fo,go],Bo=[po,go],_o=[mo,go],Do=[mo,vo,go],Fo=[vo,po],Io=[vo,go],Po="append",Oo="badge",Vo="bottom-row",Eo="button-content",Lo="custom-foot",Ao="default",Ro="empty",Mo="file-name",Ho="first",zo="footer",No="header",jo="label",Go="lead",Wo="modal-cancel",Yo="modal-ok",Uo="modal-title",qo="prepend",Ko="row-details",Xo="table-busy",Zo="table-caption",Jo="table-colgroup",Qo="thead-top",tr="title",er="top-row",ir=function(){return Array.from.apply(Array,arguments)},nr=function(t,e){return-1!==t.indexOf(e)},or=function(){for(var t=arguments.length,e=new Array(t),i=0;i1&&void 0!==arguments[1]?arguments[1]:NaN,i=parseInt(t,10);return isNaN(i)?e:i},cr=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:NaN,i=parseFloat(t);return isNaN(i)?e:i},ur=function(t,e){return cr(t).toFixed(lr(e,0))},dr=function(t){return t.replace(ot,"-$1").toLowerCase()},hr=function(t){return(t=dr(t).replace(mt,(function(t,e){return e?e.toUpperCase():""}))).charAt(0).toUpperCase()+t.slice(1)},fr=function(t){return t.replace(pt," ").replace(rt,(function(t,e,i){return e+" "+i})).replace(ht,(function(t,e,i){return e+i.toUpperCase()}))},pr=function(t){return(t=Et(t)?t.trim():String(t)).charAt(0).toUpperCase()+t.slice(1)},mr=function(t){return t.replace(lt,"\\$&")},vr=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2;return Pt(t)?"":Rt(t)||Ht(t)&&t.toString===Object.prototype.toString?JSON.stringify(t,null,e):String(t)},br=function(t){return vr(t).trim()},gr=function(t){return vr(t).toLowerCase()},yr=Element.prototype,wr=["button","[href]:not(.disabled)","input","select","textarea","[tabindex]","[contenteditable]"].map((function(t){return"".concat(t,":not(:disabled):not([disabled])")})).join(", "),Tr=yr.matches||yr.msMatchesSelector||yr.webkitMatchesSelector,Cr=yr.closest||function(t){var e=this;do{if(Vr(e,t))return e;e=e.parentElement||e.parentNode}while(!It(e)&&e.nodeType===Node.ELEMENT_NODE);return null},xr=H.requestAnimationFrame||H.webkitRequestAnimationFrame||H.mozRequestAnimationFrame||H.msRequestAnimationFrame||H.oRequestAnimationFrame||function(t){return setTimeout(t,16)},Sr=H.MutationObserver||H.WebKitMutationObserver||H.MozMutationObserver||null,kr=function(t){return!(!t||t.nodeType!==Node.ELEMENT_NODE)},$r=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=z.activeElement;return e&&!t.some((function(t){return t===e}))?e:null},Br=function(t,e){return vr(t).toLowerCase()===vr(e).toLowerCase()},_r=function(t){return kr(t)&&t===$r()},Dr=function(t){if(!kr(t)||!t.parentNode||!Lr(z.body,t))return!1;if("none"===Ur(t,"display"))return!1;var e=qr(t);return!!(e&&e.height>0&&e.width>0)},Fr=function(t){return!kr(t)||t.disabled||Gr(t,"disabled")||Hr(t,"disabled")},Ir=function(t){return kr(t)&&t.offsetHeight},Pr=function(t,e){return ir((kr(e)?e:z).querySelectorAll(t))},Or=function(t,e){return(kr(e)?e:z).querySelector(t)||null},Vr=function(t,e){return!!kr(t)&&Tr.call(t,e)},Er=function(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!kr(e))return null;var n=Cr.call(e,t);return i?n:n===e?null:n},Lr=function(t,e){return!(!t||!Ot(t.contains))&&t.contains(e)},Ar=function(t){return z.getElementById(/^#/.test(t)?t.slice(1):t)||null},Rr=function(t,e){e&&kr(t)&&t.classList&&t.classList.add(e)},Mr=function(t,e){e&&kr(t)&&t.classList&&t.classList.remove(e)},Hr=function(t,e){return!!(e&&kr(t)&&t.classList)&&t.classList.contains(e)},zr=function(t,e,i){e&&kr(t)&&t.setAttribute(e,i)},Nr=function(t,e){e&&kr(t)&&t.removeAttribute(e)},jr=function(t,e){return e&&kr(t)?t.getAttribute(e):null},Gr=function(t,e){return e&&kr(t)?t.hasAttribute(e):null},Wr=function(t,e,i){e&&kr(t)&&(t.style[e]=i)},Yr=function(t,e){e&&kr(t)&&(t.style[e]="")},Ur=function(t,e){return e&&kr(t)&&t.style[e]||null},qr=function(t){return kr(t)?t.getBoundingClientRect():null},Kr=function(t){var e=H.getComputedStyle;return e&&kr(t)?e(t):{}},Xr=function(){return H.getSelection?H.getSelection():null},Zr=function(t){var e={top:0,left:0};if(!kr(t)||0===t.getClientRects().length)return e;var i=qr(t);if(i){var n=t.ownerDocument.defaultView;e.top=i.top+n.pageYOffset,e.left=i.left+n.pageXOffset}return e},Jr=function(t){var e={top:0,left:0};if(!kr(t))return e;var i={top:0,left:0},n=Kr(t);if("fixed"===n.position)e=qr(t)||e;else{e=Zr(t);for(var o=t.ownerDocument,r=t.offsetParent||o.documentElement;r&&(r===o.body||r===o.documentElement)&&"static"===Kr(r).position;)r=r.parentNode;if(r&&r!==t&&r.nodeType===Node.ELEMENT_NODE){i=Zr(r);var s=Kr(r);i.top+=cr(s.borderTopWidth,0),i.left+=cr(s.borderLeftWidth,0)}}return{top:e.top-i.top-cr(n.marginTop,0),left:e.left-i.left-cr(n.marginLeft,0)}},Qr=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document;return Pr(wr,t).filter(Dr).filter((function(t){return t.tabIndex>-1&&!t.disabled}))},ts=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};try{t.focus(e)}catch(t){}return _r(t)},es=function(t){try{t.blur()}catch(t){}return!_r(t)},is=function(t){var e=Wt(null);return function(){for(var i=arguments.length,n=new Array(i),o=0;o1&&void 0!==arguments[1]?arguments[1]:void 0,i=ns.$bvConfig;return i?i.getConfigValue(t,e):ie(e)},rs=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;return e?os("".concat(t,".").concat(e),i):os(t,{})},ss=function(){return os("breakpoints",X)},as=is((function(){return ss()})),ls=is((function(){var t=ie(as());return t[0]="",t})),cs=function(t,e){return t+pr(e)},us=function(t,e){return i=e.replace(t,""),(i=Et(i)?i.trim():String(i)).charAt(0).toLowerCase()+i.slice(1);var i},ds=function(t,e){return e+(t?pr(t):"")},hs=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:co,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:void 0,o=!0===i;return n=o?n:i,c(c(c({},t?{type:t}:{}),o?{required:o}:Ft(e)?{}:{default:Mt(e)?function(){return e}:e}),Ft(n)?{}:{validator:n})},fs=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ne;if(Rt(t))return t.map(e);var i={};for(var n in t)Xt(t,n)&&(i[e(n)]=Mt(t[n])?Zt(t[n]):t[n]);return i},ps=function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:ne;return(Rt(t)?t.slice():Kt(t)).reduce((function(t,n){return t[i(n)]=e[n],t}),{})},ms=function(t,e,i){return c(c({},ie(t)),{},{default:function(){var n=rs(i,e,t.default);return Ot(n)?n():n}})},vs=function(t,e){return Kt(t).reduce((function(i,n){return c(c({},i),{},a({},n,ms(t[n],n,e)))}),{})},bs=ms({},"","").default.name,gs=function(t){return Ot(t)&&t.name!==bs},ys=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.type,o=void 0===n?co:n,r=e.defaultValue,s=void 0===r?void 0:r,l=e.validator,c=void 0===l?void 0:l,u=e.event,d=void 0===u?jn:u,h=a({},t,hs(o,s,c)),f=i.default.extend({model:{prop:t,event:d},props:h});return{mixin:f,props:h,prop:t,event:d}},ws=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return(t=or(t).filter(ne)).some((function(t){return e[t]||i[t]}))},Ts=function(t){var e,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};t=or(t).filter(ne);for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:Ao,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.$scopedSlots,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.$slots;return ws(t,e,i)},normalizeSlot:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Ao,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.$scopedSlots,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:this.$slots,o=Ts(t,e,i,n);return o?or(o):o}}}),xs=function(t){return W?Mt(t)?t:{capture:!!t||!1}:!!(Mt(t)?t.capture:t)},Ss=function(t,e,i,n){t&&t.addEventListener&&t.addEventListener(e,i,xs(n))},ks=function(t,e,i,n){t&&t.removeEventListener&&t.removeEventListener(e,i,xs(n))},$s=function(t){for(var e=t?Ss:ks,i=arguments.length,n=new Array(i>1?i-1:0),o=1;o1&&void 0!==arguments[1]?arguments[1]:{},i=e.preventDefault,n=void 0===i||i,o=e.propagation,r=void 0===o||o,s=e.immediatePropagation,a=void 0!==s&&s;n&&t.preventDefault(),r&&t.stopPropagation(),a&&t.stopImmediatePropagation()},_s=function(t){return dr(t.replace(J,""))},Ds=function(t,e){return[so,_s(t),e].join("::")},Fs=function(t,e){return[so,e,_s(t)].join("::")},Is=vs({ariaLabel:hs(go,"Close"),content:hs(go,"×"),disabled:hs(ho,!1),textVariant:hs(go)},Fe),Ps=i.default.extend({name:Fe,functional:!0,props:Is,render:function(t,e){var i=e.props,n=e.data,o=e.slots,r=e.scopedSlots,s=o(),l=r||{},c={staticClass:"close",class:a({},"text-".concat(i.textVariant),i.textVariant),attrs:{type:"button",disabled:i.disabled,"aria-label":i.ariaLabel?String(i.ariaLabel):null},on:{click:function(t){i.disabled&&Nt(t)&&Bs(t)}}};return ws(Ao,l,s)||(c.domProps={innerHTML:i.content}),t("button",F(n,c),Ts(Ao,{},l,s))}}),Os={name:"",enterClass:"",enterActiveClass:"",enterToClass:"show",leaveClass:"show",leaveActiveClass:"",leaveToClass:""},Vs=c(c({},Os),{},{enterActiveClass:"fade",leaveActiveClass:"fade"}),Es={appear:hs(ho,!1),mode:hs(go),noFade:hs(ho,!1),transProps:hs(vo)},Ls=i.default.extend({name:"BVTransition",functional:!0,props:Es,render:function(t,e){var i=e.children,n=e.data,o=e.props,r=o.transProps;return Ht(r)||(r=o.noFade?Os:Vs,o.appear&&(r=c(c({},r),{},{appear:!0,appearClass:r.enterClass,appearActiveClass:r.enterActiveClass,appearToClass:r.enterToClass}))),t("transition",F(n,{props:r=c(c({mode:o.mode},r),{},{css:!0})}),i)}}),As=ys("show",{type:So,defaultValue:!1}),Rs=As.mixin,Ms=As.props,Hs=As.prop,zs=As.event,Ns=function(t){return""===t||Vt(t)?0:(t=lr(t,0))>0?t:0},js=function(t){return""===t||!0===t||!(lr(t,0)<1)&&!!t},Gs=vs(ee(c(c({},Ms),{},{dismissLabel:hs(go,"Close"),dismissible:hs(ho,!1),fade:hs(ho,!1),variant:hs(go,"info")})),Te),Ws=me({components:{BAlert:i.default.extend({name:Te,mixins:[Rs,Cs],props:Gs,data:function(){return{countDown:0,localShow:js(this[Hs])}},watch:(O={},a(O,Hs,(function(t){this.countDown=Ns(t),this.localShow=js(t)})),a(O,"countDown",(function(t){var e=this;this.clearCountDownInterval();var i=this[Hs];At(i)&&(this.$emit("dismiss-count-down",t),i!==t&&this.$emit(zs,t),t>0?(this.localShow=!0,this.$_countDownTimeout=setTimeout((function(){e.countDown--}),1e3)):this.$nextTick((function(){xr((function(){e.localShow=!1}))})))})),a(O,"localShow",(function(t){var e=this[Hs];t||!this.dismissible&&!At(e)||this.$emit("dismissed"),At(e)||e===t||this.$emit(zs,t)})),O),created:function(){this.$_filterTimer=null;var t=this[Hs];this.countDown=Ns(t),this.localShow=js(t)},beforeDestroy:function(){this.clearCountDownInterval()},methods:{dismiss:function(){this.clearCountDownInterval(),this.countDown=0,this.localShow=!1},clearCountDownInterval:function(){clearTimeout(this.$_countDownTimeout),this.$_countDownTimeout=null}},render:function(t){var e=t();if(this.localShow){var i=this.dismissible,n=this.variant,o=t();i&&(o=t(Ps,{attrs:{"aria-label":this.dismissLabel},on:{click:this.dismiss}},[this.normalizeSlot("dismiss")])),e=t("div",{staticClass:"alert",class:a({"alert-dismissible":i},"alert-".concat(n),n),attrs:{role:"alert","aria-live":"polite","aria-atomic":!0},key:this._uid},[o,this.normalizeSlot()])}return t(Ls,{props:{noFade:!this.fade}},[e])}})}}),Ys=Math.min,Us=Math.max,qs=Math.abs,Ks=Math.ceil,Xs=Math.floor,Zs=Math.pow,Js=Math.round,Qs="b-aspect",ta=vs({aspect:hs(_o,"1:1"),tag:hs(go,"div")},Ce),ea=i.default.extend({name:Ce,mixins:[Cs],props:ta,computed:{padding:function(){var t=this.aspect,e=1;if(xt.test(t)){var i=w(t.split(St).map((function(t){return cr(t)||1})),2);e=i[0]/i[1]}else e=cr(t)||1;return"".concat(100/qs(e),"%")}},render:function(t){var e=t("div",{staticClass:"".concat(Qs,"-sizer flex-grow-1"),style:{paddingBottom:this.padding,height:0}}),i=t("div",{staticClass:"".concat(Qs,"-content flex-grow-1 w-100 mw-100"),style:{marginLeft:"-100%"}},this.normalizeSlot());return t(this.tag,{staticClass:"".concat(Qs," d-flex")},[e,i])}}),ia=me({components:{BAspect:ea}}),na=function(t){return"%"+t.charCodeAt(0).toString(16)},oa=function(t){return encodeURIComponent(vr(t)).replace(Tt,na).replace(wt,",")},ra=decodeURIComponent,sa=function(t){if(!Ht(t))return"";var e=Kt(t).map((function(e){var i=t[e];return Ft(i)?"":It(i)?oa(e):Rt(i)?i.reduce((function(t,i){return It(i)?t.push(oa(e)):Ft(i)||t.push(oa(e)+"="+oa(i)),t}),[]).join("&"):oa(e)+"="+oa(i)})).filter((function(t){return t.length>0})).join("&");return e?"?".concat(e):""},aa=function(t){var e={};return(t=vr(t).trim().replace(Ct,""))?(t.split("&").forEach((function(t){var i=t.replace(at," ").split("="),n=ra(i.shift()),o=i.length>0?ra(i.join("=")):null;Ft(e[n])?e[n]=o:Rt(e[n])?e[n].push(o):e[n]=[e[n],o]})),e):e},la=function(t){return!(!t.href&&!t.to)},ca=function(t){return!(!t||Br(t,"a"))},ua=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.href,i=t.to,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"a",o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"#",r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"/";if(e)return e;if(ca(n))return null;if(Et(i))return i||r;if(Ht(i)&&(i.path||i.query||i.hash)){var s=vr(i.path),a=sa(i.query),l=vr(i.hash);return l=l&&"#"!==l.charAt(0)?"#".concat(l):l,"".concat(s).concat(a).concat(l)||r}return o},da={viewBox:"0 0 16 16",width:"1em",height:"1em",focusable:"false",role:"img","aria-label":"icon"},ha={width:null,height:null,focusable:null,role:null,"aria-label":null},fa={animation:hs(go),content:hs(go),flipH:hs(ho,!1),flipV:hs(ho,!1),fontScale:hs(_o,1),rotate:hs(_o,0),scale:hs(_o,1),shiftH:hs(_o,0),shiftV:hs(_o,0),stacked:hs(ho,!1),title:hs(go),variant:hs(go)},pa=i.default.extend({name:"BIconBase",functional:!0,props:fa,render:function(t,e){var i,n=e.data,o=e.props,r=e.children,s=o.animation,l=o.content,c=o.flipH,u=o.flipV,d=o.stacked,h=o.title,f=o.variant,p=Us(cr(o.fontScale,1),0)||1,m=Us(cr(o.scale,1),0)||1,v=cr(o.rotate,0),b=cr(o.shiftH,0),g=cr(o.shiftV,0),y=c||u||1!==m,w=y||v,T=b||g,C=!Pt(l),x=t("g",{attrs:{transform:[w?"translate(8 8)":null,y?"scale(".concat((c?-1:1)*m," ").concat((u?-1:1)*m,")"):null,v?"rotate(".concat(v,")"):null,w?"translate(-8 -8)":null].filter(ne).join(" ")||null},domProps:C?{innerHTML:l||""}:{}},r);T&&(x=t("g",{attrs:{transform:"translate(".concat(16*b/16," ").concat(-16*g/16,")")}},[x])),d&&(x=t("g",[x]));var S=[h?t("title",h):null,x].filter(ne);return t("svg",F({staticClass:"b-icon bi",class:(i={},a(i,"text-".concat(f),f),a(i,"b-icon-animation-".concat(s),s),i),attrs:da,style:d?{}:{fontSize:1===p?null:"".concat(100*p,"%")}},n,d?{attrs:ha}:{},{attrs:{xmlns:d?null:"http://www.w3.org/2000/svg",fill:"currentColor"}}),S)}}),ma=function(t,e){var n=dr(t),o="BIcon".concat(hr(t)),r="bi-".concat(n),s=n.replace(/-/g," "),a=br(e||"");return i.default.extend({name:o,functional:!0,props:Qt(fa,["content"]),render:function(t,e){var i=e.data,n=e.props;return t(pa,F({props:{title:s},attrs:{"aria-label":s}},i,{staticClass:r,props:c(c({},n),{},{content:a})}))}})},va=ma("Blank",""),ba=ma("Calendar",''),ga=ma("CalendarFill",''),ya=ma("ChevronBarLeft",''),wa=ma("ChevronDoubleLeft",''),Ta=ma("ChevronDown",''),Ca=ma("ChevronLeft",''),xa=ma("ChevronUp",''),Sa=ma("CircleFill",''),ka=ma("Clock",''),$a=ma("ClockFill",''),Ba=ma("Dash",''),_a=ma("PersonFill",''),Da=ma("Plus",''),Fa=ma("Star",''),Ia=ma("StarFill",''),Pa=ma("StarHalf",''),Oa=ma("X",''),Va=function t(e,i){return e?(e.$options||{}).components[i]||t(e.$parent,i):null},Ea=Qt(fa,["content"]),La=vs(ee(c(c({},Ea),{},{icon:hs(go)})),Bi),Aa=i.default.extend({name:Bi,functional:!0,props:La,render:function(t,e){var i=e.data,n=e.props,o=e.parent,r=hr(br(n.icon||"")).replace($t,"");return t(r&&Va(o,"BIcon".concat(r))||va,F(i,{props:ps(Ea,n)}))}}),Ra=40,Ma=35,Ha=13,za=36,Na=37,ja=39,Ga=32,Wa=38,Ya=function(t,e){if(t.length!==e.length)return!1;for(var i=!0,n=0;i&&n1?i-1:0),o=1;o0&&void 0!==arguments[0]?arguments[0]:{},e=t.target,i=t.rel;return"_blank"===e&&It(i)?"noopener":i||null}({target:this.target,rel:this.rel})},computedHref:function(){var t=this.to,e=this.href;return ua({to:t,href:e},this.computedTag)},computedProps:function(){var t=this.prefetch;return this.isRouterLink?c(c({},ps(c(c({},el),il),this)),{},{prefetch:Vt(t)?t:void 0,tag:this.routerTag}):{}},computedAttrs:function(){var t=this.bvAttrs,e=this.computedHref,i=this.computedRel,n=this.disabled,o=this.target,r=this.routerTag,s=this.isRouterLink;return c(c(c(c({},t),e?{href:e}:{}),s&&!Br(r,"a")?{}:{rel:i,target:o}),{},{tabindex:n?"-1":Ft(t.tabindex)?null:t.tabindex,"aria-disabled":n?"true":null})},computedListeners:function(){return c(c({},this.bvListeners),{},{click:this.onClick})}},methods:{onClick:function(t){var e=arguments,i=Nt(t),n=this.isRouterLink,o=this.bvListeners.click;i&&this.disabled?Bs(t,{immediatePropagation:!0}):(n&&t.currentTarget.__vue__&&t.currentTarget.__vue__.$emit(Bn,t),or(o).filter((function(t){return Ot(t)})).forEach((function(t){t.apply(void 0,T(e))})),this.emitOnRoot(tl,t),this.emitOnRoot("clicked::link",t)),i&&!n&&"#"===this.computedHref&&Bs(t,{propagation:!1})},focus:function(){ts(this.$el)},blur:function(){es(this.$el)}},render:function(t){var e=this.active,i=this.disabled;return t(this.computedTag,a({class:{active:e,disabled:i},attrs:this.computedAttrs,props:this.computedProps},this.isRouterLink?"nativeOn":"on",this.computedListeners),this.normalizeSlot())}}),rl=Qt(nl,["event","routerTag"]);delete rl.href.default,delete rl.to.default;var sl=vs(ee(c(c({},rl),{},{block:hs(ho,!1),disabled:hs(ho,!1),pill:hs(ho,!1),pressed:hs(ho,null),size:hs(go),squared:hs(ho,!1),tag:hs(go,"button"),type:hs(go,"button"),variant:hs(go,"secondary")})),De),al=function(t){"focusin"===t.type?Rr(t.target,"focus"):"focusout"===t.type&&Mr(t.target,"focus")},ll=function(t){return la(t)||Br(t.tag,"a")},cl=function(t){return Vt(t.pressed)},ul=function(t){return!(ll(t)||t.tag&&!Br(t.tag,"button"))},dl=function(t){return!ll(t)&&!ul(t)},hl=function(t){var e;return["btn-".concat(t.variant||"secondary"),(e={},a(e,"btn-".concat(t.size),t.size),a(e,"btn-block",t.block),a(e,"rounded-pill",t.pill),a(e,"rounded-0",t.squared&&!t.pill),a(e,"disabled",t.disabled),a(e,"active",t.pressed),e)]},fl=function(t){return ll(t)?ps(rl,t):{}},pl=function(t,e){var i=ul(t),n=ll(t),o=cl(t),r=dl(t),s=n&&"#"===t.href,a=e.attrs&&e.attrs.role?e.attrs.role:null,l=e.attrs?e.attrs.tabindex:null;return(r||s)&&(l="0"),{type:i&&!n?t.type:null,disabled:i?t.disabled:null,role:r||s?"button":a,"aria-disabled":r?String(t.disabled):null,"aria-pressed":o?String(t.pressed):null,autocomplete:o?"off":null,tabindex:t.disabled&&!i?"-1":l}},ml=i.default.extend({name:De,functional:!0,props:sl,render:function(t,e){var i=e.props,n=e.data,o=e.listeners,r=e.children,s=cl(i),a=ll(i),l=dl(i),c=a&&"#"===i.href,u={keydown:function(t){if(!i.disabled&&(l||c)){var e=t.keyCode;if(e===Ga||e===Ha&&l){var n=t.currentTarget||t.target;Bs(t,{propagation:!1}),n.click()}}},click:function(t){i.disabled&&Nt(t)?Bs(t):s&&o&&o["update:pressed"]&&or(o["update:pressed"]).forEach((function(t){Ot(t)&&t(!i.pressed)}))}};s&&(u.focusin=al,u.focusout=al);var d={staticClass:"btn",class:hl(i),props:fl(i),attrs:pl(i,n),on:u};return t(a?ol:i.tag,F(n,d),r)}}),vl="b-avatar",bl=["sm",null,"lg"],gl=function(t){return t=Et(t)&&At(t)?cr(t,0):t,Lt(t)?"".concat(t,"px"):t||null},yl=Qt(nl,["active","event","routerTag"]),wl=vs(ee(c(c({},yl),{},{alt:hs(go,"avatar"),ariaLabel:hs(go),badge:hs(ko,!1),badgeLeft:hs(ho,!1),badgeOffset:hs(go),badgeTop:hs(ho,!1),badgeVariant:hs(go,"primary"),button:hs(ho,!1),buttonType:hs(go,"button"),icon:hs(go),rounded:hs(ko,!1),size:hs(_o),square:hs(ho,!1),src:hs(go),text:hs(go),variant:hs(go,"secondary")})),xe),Tl=i.default.extend({name:xe,mixins:[Cs],inject:{bvAvatarGroup:{default:null}},props:wl,data:function(){return{localSrc:this.src||null}},computed:{computedSize:function(){var t=this.bvAvatarGroup;return gl(t?t.size:this.size)},computedVariant:function(){var t=this.bvAvatarGroup;return t&&t.variant?t.variant:this.variant},computedRounded:function(){var t=this.bvAvatarGroup,e=!(!t||!t.square)||this.square,i=t&&t.rounded?t.rounded:this.rounded;return e?"0":""===i||(i||"circle")},fontStyle:function(){var t=this.computedSize,e=-1===bl.indexOf(t)?"calc(".concat(t," * ").concat(.4,")"):null;return e?{fontSize:e}:{}},marginStyle:function(){var t=this.computedSize,e=this.bvAvatarGroup,i=e?e.overlapScale:0,n=t&&i?"calc(".concat(t," * -").concat(i,")"):null;return n?{marginLeft:n,marginRight:n}:{}},badgeStyle:function(){var t=this.computedSize,e=this.badgeTop,i=this.badgeLeft,n=this.badgeOffset||"0px";return{fontSize:-1===bl.indexOf(t)?"calc(".concat(t," * ").concat(.27999999999999997," )"):null,top:e?n:null,bottom:e?null:n,left:i?n:null,right:i?null:n}}},watch:{src:function(t,e){t!==e&&(this.localSrc=t||null)}},methods:{onImgError:function(t){this.localSrc=null,this.$emit("img-error",t)},onClick:function(t){this.$emit(Bn,t)}},render:function(t){var e,i=this.computedVariant,n=this.disabled,o=this.computedRounded,r=this.icon,s=this.localSrc,l=this.text,u=this.fontStyle,d=this.marginStyle,h=this.computedSize,f=this.button,p=this.buttonType,m=this.badge,v=this.badgeVariant,b=this.badgeStyle,g=!f&&la(this),y=f?ml:g?ol:"span",w=this.alt,T=this.ariaLabel||null,C=null;this.hasNormalizedSlot()?C=t("span",{staticClass:"b-avatar-custom"},[this.normalizeSlot()]):s?(C=t("img",{style:i?{}:{width:"100%",height:"100%"},attrs:{src:s,alt:w},on:{error:this.onImgError}}),C=t("span",{staticClass:"b-avatar-img"},[C])):C=r?t(Aa,{props:{icon:r},attrs:{"aria-hidden":"true",alt:w}}):l?t("span",{staticClass:"b-avatar-text",style:u},[t("span",l)]):t(_a,{attrs:{"aria-hidden":"true",alt:w}});var x=t(),S=this.hasNormalizedSlot(Oo);if(m||""===m||S){var k=!0===m?"":m;x=t("span",{staticClass:"b-avatar-badge",class:a({},"badge-".concat(v),v),style:b},[S?this.normalizeSlot(Oo):k])}return t(y,{staticClass:vl,class:(e={},a(e,"".concat(vl,"-").concat(h),h&&-1!==bl.indexOf(h)),a(e,"badge-".concat(i),!f&&i),a(e,"rounded",!0===o),a(e,"rounded-".concat(o),o&&!0!==o),a(e,"disabled",n),e),style:c(c({},d),{},{width:h,height:h}),attrs:{"aria-label":T||null},props:f?{variant:i,disabled:n,type:p}:g?ps(yl,this):{},on:f||g?{click:this.onClick}:{}},[C,x])}}),Cl=vs({overlap:hs(_o,.3),rounded:hs(ko,!1),size:hs(go),square:hs(ho,!1),tag:hs(go,"div"),variant:hs(go)},Se),xl=me({components:{BAvatar:Tl,BAvatarGroup:i.default.extend({name:Se,mixins:[Cs],provide:function(){return{bvAvatarGroup:this}},props:Cl,computed:{computedSize:function(){return gl(this.size)},overlapScale:function(){return Ys(Us(cr(this.overlap,0),0),1)/2},paddingStyle:function(){var t=this.computedSize;return(t=t?"calc(".concat(t," * ").concat(this.overlapScale,")"):null)?{paddingLeft:t,paddingRight:t}:{}}},render:function(t){var e=t("div",{staticClass:"b-avatar-group-inner",style:this.paddingStyle},this.normalizeSlot());return t(this.tag,{staticClass:"b-avatar-group",attrs:{role:"group"}},[e])}})}}),Sl=Qt(nl,["event","routerTag"]);delete Sl.href.default,delete Sl.to.default;var kl,$l=vs(ee(c(c({},Sl),{},{pill:hs(ho,!1),tag:hs(go,"span"),variant:hs(go,"secondary")})),ke),Bl=i.default.extend({name:ke,functional:!0,props:$l,render:function(t,e){var i=e.props,n=e.data,o=e.children,r=i.active,s=i.disabled,a=la(i),l=a?ol:i.tag,c=i.variant||"secondary";return t(l,F(n,{staticClass:"badge",class:["badge-".concat(c),{"badge-pill":i.pill,active:r,disabled:s}],props:a?ps(Sl,i):{}}),o)}}),_l=me({components:{BBadge:Bl}}),Dl=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return String(t).replace(nt,"")},Fl=function(t,e){return t?{innerHTML:t}:e?{textContent:e}:{}},Il=vs(ee(c(c({},Qt(nl,["event","routerTag"])),{},{ariaCurrent:hs(go,"location"),html:hs(go),text:hs(go)})),_e),Pl=i.default.extend({name:_e,functional:!0,props:Il,render:function(t,e){var i=e.props,n=e.data,o=e.children,r=i.active,s=r?"span":ol,a={attrs:{"aria-current":r?i.ariaCurrent:null},props:ps(Il,i)};return o||(a.domProps=Fl(i.html,i.text)),t(s,F(n,a),o)}}),Ol=vs(Il,Be),Vl=i.default.extend({name:Be,functional:!0,props:Ol,render:function(t,e){var i=e.props,n=e.data,o=e.children;return t("li",F(n,{staticClass:"breadcrumb-item",class:{active:i.active}}),[t(Pl,{props:i},o)])}}),El=vs({items:hs(uo)},$e),Ll=me({components:{BBreadcrumb:i.default.extend({name:$e,functional:!0,props:El,render:function(t,e){var i=e.props,n=e.data,o=e.children,r=i.items,s=o;if(Rt(r)){var a=!1;s=r.map((function(e,i){Mt(e)||(e={text:vr(e)});var n=e.active;return n&&(a=!0),n||a||(n=i+1===r.length),t(Vl,{props:c(c({},e),{},{active:n})})}))}return t("ol",F(n,{staticClass:"breadcrumb"}),s)}}),BBreadcrumbItem:Vl,BBreadcrumbLink:Pl}}),Al=me({components:{BButton:ml,BBtn:ml,BButtonClose:Ps,BBtnClose:Ps}}),Rl=vs(ee(c(c({},Jt(sl,["size"])),{},{ariaRole:hs(go,"group"),size:hs(go),tag:hs(go,"div"),vertical:hs(ho,!1)})),Ie),Ml=i.default.extend({name:Ie,functional:!0,props:Rl,render:function(t,e){var i=e.props,n=e.data,o=e.children;return t(i.tag,F(n,{class:a({"btn-group":!i.vertical,"btn-group-vertical":i.vertical},"btn-group-".concat(i.size),i.size),attrs:{role:i.ariaRole}}),o)}}),Hl=me({components:{BButtonGroup:Ml,BBtnGroup:Ml}}),zl=[".btn:not(.disabled):not([disabled]):not(.dropdown-item)",".form-control:not(.disabled):not([disabled])","select:not(.disabled):not([disabled])",'input[type="checkbox"]:not(.disabled)','input[type="radio"]:not(.disabled)'].join(","),Nl=vs({justify:hs(ho,!1),keyNav:hs(ho,!1)},Pe),jl=i.default.extend({name:Pe,mixins:[Cs],props:Nl,mounted:function(){this.keyNav&&this.getItems()},methods:{getItems:function(){var t=Pr(zl,this.$el);return t.forEach((function(t){t.tabIndex=-1})),t.filter((function(t){return Dr(t)}))},focusFirst:function(){var t=this.getItems();ts(t[0])},focusPrev:function(t){var e=this.getItems(),i=e.indexOf(t.target);i>-1&&(e=e.slice(0,i).reverse(),ts(e[0]))},focusNext:function(t){var e=this.getItems(),i=e.indexOf(t.target);i>-1&&(e=e.slice(i+1),ts(e[0]))},focusLast:function(){var t=this.getItems().reverse();ts(t[0])},onFocusin:function(t){var e=this.$el;t.target!==e||Lr(e,t.relatedTarget)||(Bs(t),this.focusFirst(t))},onKeydown:function(t){var e=t.keyCode,i=t.shiftKey;e===Wa||e===Na?(Bs(t),i?this.focusFirst(t):this.focusPrev(t)):e!==Ra&&e!==ja||(Bs(t),i?this.focusLast(t):this.focusNext(t))}},render:function(t){var e=this.keyNav;return t("div",{staticClass:"btn-toolbar",class:{"justify-content-between":this.justify},attrs:{role:"toolbar",tabindex:e?"0":null},on:e?{focusin:this.onFocusin,keydown:this.onKeydown}:{}},[this.normalizeSlot()])}}),Gl=me({components:{BButtonToolbar:jl,BBtnToolbar:jl}}),Wl="gregory",Yl="long",Ul="short",ql="2-digit",Kl="numeric",Xl=function(){for(var t=arguments.length,e=new Array(t),i=0;i1&&void 0!==arguments[1]?arguments[1]:null,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return t=Zl(t),e=Zl(e)||t,i=Zl(i)||t,t?ti?i:t:null},dc=["ar","az","ckb","fa","he","ks","lrc","mzn","ps","sd","te","ug","ur","yi"].map((function(t){return t.toLowerCase()})),hc=function(t){var e=vr(t).toLowerCase().replace(Bt,"").split("-"),i=e.slice(0,2).join("-"),n=e[0];return nr(dc,i)||nr(dc,n)},fc={id:hs(go)},pc=i.default.extend({props:fc,data:function(){return{localId_:null}},computed:{safeId:function(){var t=this.id||this.localId_;return function(e){return t?(e=String(e||"").replace(/\s+/g,"_"))?t+"_"+e:t:null}}},mounted:function(){var t=this;this.$nextTick((function(){t.localId_="__BVID__".concat(t._uid)}))}}),mc=ys("value",{type:$o}),vc=mc.mixin,bc=mc.props,gc=mc.prop,yc=mc.event,wc=vs(ee(c(c(c({},fc),bc),{},{ariaControls:hs(go),block:hs(ho,!1),dateDisabledFn:hs(po),dateFormatOptions:hs(vo,{year:Kl,month:Yl,day:Kl,weekday:Yl}),dateInfoFn:hs(po),direction:hs(go),disabled:hs(ho,!1),hidden:hs(ho,!1),hideHeader:hs(ho,!1),initialDate:hs($o),labelCalendar:hs(go,"Calendar"),labelCurrentMonth:hs(go,"Current month"),labelHelp:hs(go,"Use cursor keys to navigate calendar dates"),labelNav:hs(go,"Calendar navigation"),labelNextDecade:hs(go,"Next decade"),labelNextMonth:hs(go,"Next month"),labelNextYear:hs(go,"Next year"),labelNoDateSelected:hs(go,"No date selected"),labelPrevDecade:hs(go,"Previous decade"),labelPrevMonth:hs(go,"Previous month"),labelPrevYear:hs(go,"Previous year"),labelSelected:hs(go,"Selected date"),labelToday:hs(go,"Today"),locale:hs(Co),max:hs($o),min:hs($o),navButtonVariant:hs(go,"secondary"),noHighlightToday:hs(ho,!1),noKeyNav:hs(ho,!1),readonly:hs(ho,!1),roleDescription:hs(go),selectedVariant:hs(go,"primary"),showDecadeNav:hs(ho,!1),startWeekday:hs(_o,0),todayVariant:hs(go),valueAsDate:hs(ho,!1),weekdayHeaderFormat:hs(go,Ul,(function(t){return nr([Yl,Ul,"narrow"],t)})),width:hs(go,"270px")})),Oe),Tc=i.default.extend({name:Oe,mixins:[Za,pc,vc,Cs],props:wc,data:function(){var t=Jl(this[gc])||"";return{selectedYMD:t,activeYMD:t||Jl(uc(this.initialDate||this.getToday()),this.min,this.max),gridHasFocus:!1,isLive:!1}},computed:{valueId:function(){return this.safeId()},widgetId:function(){return this.safeId("_calendar-wrapper_")},navId:function(){return this.safeId("_calendar-nav_")},gridId:function(){return this.safeId("_calendar-grid_")},gridCaptionId:function(){return this.safeId("_calendar-grid-caption_")},gridHelpId:function(){return this.safeId("_calendar-grid-help_")},activeId:function(){return this.activeYMD?this.safeId("_cell-".concat(this.activeYMD,"_")):null},selectedDate:function(){return Zl(this.selectedYMD)},activeDate:function(){return Zl(this.activeYMD)},computedMin:function(){return Zl(this.min)},computedMax:function(){return Zl(this.max)},computedWeekStarts:function(){return Us(lr(this.startWeekday,0),0)%7},computedLocale:function(){return function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Wl;return t=or(t).filter(ne),new Intl.DateTimeFormat(t,{calendar:e}).resolvedOptions().locale}(or(this.locale).filter(ne),Wl)},computedDateDisabledFn:function(){var t=this.dateDisabledFn;return gs(t)?t:function(){return!1}},computedDateInfoFn:function(){var t=this.dateInfoFn;return gs(t)?t:function(){return{}}},calendarLocale:function(){var t=new Intl.DateTimeFormat(this.computedLocale,{calendar:Wl}),e=t.resolvedOptions().calendar,i=t.resolvedOptions().locale;return e!==Wl&&(i=i.replace(/-u-.+$/i,"").concat("-u-ca-gregory")),i},calendarYear:function(){return this.activeDate.getFullYear()},calendarMonth:function(){return this.activeDate.getMonth()},calendarFirstDay:function(){return Xl(this.calendarYear,this.calendarMonth,1,12)},calendarDaysInMonth:function(){var t=Xl(this.calendarFirstDay);return t.setMonth(t.getMonth()+1,0),t.getDate()},computedVariant:function(){return"btn-".concat(this.selectedVariant||"primary")},computedTodayVariant:function(){return"btn-outline-".concat(this.todayVariant||this.selectedVariant||"primary")},computedNavButtonVariant:function(){return"btn-outline-".concat(this.navButtonVariant||"primary")},isRTL:function(){var t=vr(this.direction).toLowerCase();return"rtl"===t||"ltr"!==t&&hc(this.computedLocale)},context:function(){var t=this.selectedYMD,e=this.activeYMD,i=Zl(t),n=Zl(e);return{selectedYMD:t,selectedDate:i,selectedFormatted:i?this.formatDateString(i):this.labelNoDateSelected,activeYMD:e,activeDate:n,activeFormatted:n?this.formatDateString(n):"",disabled:this.dateDisabled(n),locale:this.computedLocale,calendarLocale:this.calendarLocale,rtl:this.isRTL}},dateOutOfRange:function(){var t=this.computedMin,e=this.computedMax;return function(i){return i=Zl(i),t&&ie}},dateDisabled:function(){var t=this,e=this.dateOutOfRange;return function(i){i=Zl(i);var n=Jl(i);return!(!e(i)&&!t.computedDateDisabledFn(n,i))}},formatDateString:function(){return Ql(this.calendarLocale,c(c({year:Kl,month:ql,day:ql},this.dateFormatOptions),{},{hour:void 0,minute:void 0,second:void 0,calendar:Wl}))},formatYearMonth:function(){return Ql(this.calendarLocale,{year:Kl,month:Yl,calendar:Wl})},formatWeekdayName:function(){return Ql(this.calendarLocale,{weekday:Yl,calendar:Wl})},formatWeekdayNameShort:function(){return Ql(this.calendarLocale,{weekday:this.weekdayHeaderFormat||Ul,calendar:Wl})},formatDay:function(){var t=new Intl.NumberFormat([this.computedLocale],{style:"decimal",minimumIntegerDigits:1,minimumFractionDigits:0,maximumFractionDigits:0,notation:"standard"});return function(e){return t.format(e.getDate())}},prevDecadeDisabled:function(){var t=this.computedMin;return this.disabled||t&&ic(lc(this.activeDate))t},nextYearDisabled:function(){var t=this.computedMax;return this.disabled||t&&ec(ac(this.activeDate))>t},nextDecadeDisabled:function(){var t=this.computedMax;return this.disabled||t&&ec(cc(this.activeDate))>t},calendar:function(){for(var t=[],e=this.calendarFirstDay,i=e.getFullYear(),n=e.getMonth(),o=this.calendarDaysInMonth,r=e.getDay(),s=0-((this.computedWeekStarts>r?7:0)-this.computedWeekStarts)-r,a=0;a<6&&s',Ec=vs({alt:hs(go),blank:hs(ho,!1),blankColor:hs(go,"transparent"),block:hs(ho,!1),center:hs(ho,!1),fluid:hs(ho,!1),fluidGrow:hs(ho,!1),height:hs(_o),left:hs(ho,!1),right:hs(ho,!1),rounded:hs(ko,!1),sizes:hs(Co),src:hs(go),srcset:hs(Co),thumbnail:hs(ho,!1),width:hs(_o)},_i),Lc=i.default.extend({name:_i,functional:!0,props:Ec,render:function(t,e){var i,n=e.props,o=e.data,r=n.alt,s=n.src,l=n.block,c=n.fluidGrow,u=n.rounded,d=lr(n.width)||null,h=lr(n.height)||null,f=null,p=or(n.srcset).filter(ne).join(","),m=or(n.sizes).filter(ne).join(",");return n.blank&&(!h&&d?h=d:!d&&h&&(d=h),d||h||(d=1,h=1),s=function(t,e,i){var n=encodeURIComponent(Vc.replace("%{w}",vr(t)).replace("%{h}",vr(e)).replace("%{f}",i));return"data:image/svg+xml;charset=UTF-8,".concat(n)}(d,h,n.blankColor||"transparent"),p=null,m=null),n.left?f="float-left":n.right?f="float-right":n.center&&(f="mx-auto",l=!0),t("img",F(o,{attrs:{src:s,alt:r,width:d?vr(d):null,height:h?vr(h):null,srcset:p||null,sizes:m||null},class:(i={"img-thumbnail":n.thumbnail,"img-fluid":n.fluid||c,"w-100":c,rounded:""===u||!0===u},a(i,"rounded-".concat(u),Et(u)&&""!==u),a(i,f,f),a(i,"d-block",l),i)}))}}),Ac=vs(ee(c(c({},Jt(Ec,["src","alt","width","height","left","right"])),{},{bottom:hs(ho,!1),end:hs(ho,!1),start:hs(ho,!1),top:hs(ho,!1)})),Me),Rc=i.default.extend({name:Me,functional:!0,props:Ac,render:function(t,e){var i=e.props,n=e.data,o=i.src,r=i.alt,s=i.width,a=i.height,l="card-img";return i.top?l+="-top":i.right||i.end?l+="-right":i.bottom?l+="-bottom":(i.left||i.start)&&(l+="-left"),t("img",F(n,{class:l,attrs:{src:o,alt:r,width:s,height:a}}))}}),Mc=fs(Ac,cs.bind(null,"img"));Mc.imgSrc.required=!1;var Hc,zc,Nc,jc=vs(ee(c(c(c(c(c(c({},_c),Fc),Pc),Mc),xc),{},{align:hs(go),noBody:hs(ho,!1)})),Ve),Gc=i.default.extend({name:Ve,functional:!0,props:jc,render:function(t,e){var i,n=e.props,o=e.data,r=e.slots,s=e.scopedSlots,l=n.imgSrc,c=n.imgLeft,u=n.imgRight,d=n.imgStart,h=n.imgEnd,f=n.imgBottom,p=n.header,m=n.headerHtml,v=n.footer,b=n.footerHtml,g=n.align,y=n.textVariant,w=n.bgVariant,T=n.borderVariant,C=s||{},x=r(),S={},k=t(),$=t();if(l){var B=t(Rc,{props:ps(Mc,n,us.bind(null,"img"))});f?$=B:k=B}var _=t(),D=ws(No,C,x);(D||p||m)&&(_=t(Ic,{props:ps(Fc,n),domProps:D?{}:Fl(m,p)},Ts(No,S,C,x)));var I=Ts(Ao,S,C,x);n.noBody||(I=t(Dc,{props:ps(_c,n)},I),n.overlay&&l&&(I=t("div",{staticClass:"position-relative"},[k,I,$]),k=t(),$=t()));var P=t();return(ws(zo,C,x)||v||b)&&(P=t(Oc,{props:ps(Pc,n),domProps:D?{}:Fl(b,v)},Ts(zo,S,C,x))),t(n.tag,F(o,{staticClass:"card",class:(i={"flex-row":c||d,"flex-row-reverse":(u||h)&&!(c||d)},a(i,"text-".concat(g),g),a(i,"bg-".concat(w),w),a(i,"border-".concat(T),T),a(i,"text-".concat(y),y),i)}),[k,_,I,P,$])}}),Wc="__bv__visibility_observer",Yc=function(){function t(e,i,n){o(this,t),this.el=e,this.callback=i.callback,this.margin=i.margin||0,this.once=i.once||!1,this.observer=null,this.visible=void 0,this.doneOnce=!1,this.createObserver(n)}return s(t,[{key:"createObserver",value:function(t){var e=this;if(this.observer&&this.stop(),!this.doneOnce&&Ot(this.callback)){try{this.observer=new IntersectionObserver(this.handler.bind(this),{root:null,rootMargin:this.margin,threshold:0})}catch(t){return this.doneOnce=!0,this.observer=void 0,void this.callback(null)}t.context.$nextTick((function(){xr((function(){e.observer&&e.observer.observe(e.el)}))}))}}},{key:"handler",value:function(t){var e=t?t[0]:{},i=Boolean(e.isIntersecting||e.intersectionRatio>0);i!==this.visible&&(this.visible=i,this.callback(i),this.once&&this.visible&&(this.doneOnce=!0,this.stop()))}},{key:"stop",value:function(){this.observer&&this.observer.disconnect(),this.observer=null}}]),t}(),Uc=function(t){var e=t[Wc];e&&e.stop&&e.stop(),delete t[Wc]},qc=function(t,e,i){var n=e.value,o=e.modifiers,r={margin:"0px",once:!1,callback:n};Kt(o).forEach((function(t){Q.test(t)?r.margin="".concat(t,"px"):"once"===t.toLowerCase()&&(r.once=!0)})),Uc(t),t[Wc]=new Yc(t,r,i),t[Wc]._prevModifiers=Zt(o)},Kc={bind:qc,componentUpdated:function(t,e,i){var n=e.value,o=e.oldValue,r=e.modifiers;r=Zt(r),!t||n===o&&t[Wc]&&Ua(r,t[Wc]._prevModifiers)||qc(t,{value:n,modifiers:r},i)},unbind:function(t){Uc(t)}},Xc="show",Zc=Qt(Ec,["blank"]),Jc=vs(c(c({},Zc),{},a({blankColor:hs(go,"transparent"),blankHeight:hs(_o),blankSrc:hs(go,null),blankWidth:hs(_o),offset:hs(_o,360)},Xc,hs(ho,!1))),Di),Qc=i.default.extend({name:Di,directives:{"b-visible":Kc},props:Jc,data:function(){return{isShown:this.show}},computed:{computedSrc:function(){var t=this.blankSrc;return!t||this.isShown?this.src:t},computedBlank:function(){return!(this.isShown||this.blankSrc)},computedWidth:function(){var t=this.width;return this.isShown?t:this.blankWidth||t},computedHeight:function(){var t=this.height;return this.isShown?t:this.blankHeight||t},computedSrcset:function(){var t=or(this.srcset).filter(ne).join(",");return!this.blankSrc||this.isShown?t:null},computedSizes:function(){var t=or(this.sizes).filter(ne).join(",");return!this.blankSrc||this.isShown?t:null}},watch:(Hc={},a(Hc,Xc,(function(t,e){if(t!==e){var i=!q||t;this.isShown=i,i!==t&&this.$nextTick(this.updateShowProp)}})),a(Hc,"isShown",(function(t,e){t!==e&&this.updateShowProp()})),Hc),mounted:function(){this.isShown=!q||this.show},methods:{updateShowProp:function(){this.$emit("update:show",this.isShown)},doShow:function(t){!t&&null!==t||this.isShown||(this.isShown=!0)}},render:function(t){var e,i=[];this.isShown||i.push({name:"b-visible",value:this.doShow,modifiers:(e={},a(e,"".concat(lr(this.offset,0)),!0),a(e,"once",!0),e)});return t(Lc,{directives:i,props:c({src:this.computedSrc,blank:this.computedBlank,width:this.computedWidth,height:this.computedHeight,srcset:this.computedSrcset||null,sizes:this.computedSizes||null},ps(Zc,this.$props))})}}),tu=vs(ee(c(c({},Qt(Jc,Kt(Ec))),Qt(Ac,["src","alt","width","height"]))),He),eu=i.default.extend({name:He,functional:!0,props:tu,render:function(t,e){var i=e.props,n=e.data,o="card-img";return i.top?o+="-top":i.right||i.end?o+="-right":i.bottom?o+="-bottom":(i.left||i.start)&&(o+="-left"),t(Qc,F(n,{class:[o],props:Qt(i,["left","right"])}))}}),iu=vs({textTag:hs(go,"p")},Ne),nu=i.default.extend({name:Ne,functional:!0,props:iu,render:function(t,e){var i=e.props,n=e.data,o=e.children;return t(i.textTag,F(n,{staticClass:"card-text"}),o)}}),ou=vs({columns:hs(ho,!1),deck:hs(ho,!1),tag:hs(go,"div")},Ae),ru=me({components:{BCard:Gc,BCardHeader:Ic,BCardBody:Dc,BCardTitle:kc,BCardSubTitle:Bc,BCardFooter:Oc,BCardImg:Rc,BCardImgLazy:eu,BCardText:nu,BCardGroup:i.default.extend({name:Ae,functional:!0,props:ou,render:function(t,e){var i=e.props,n=e.data,o=e.children;return t(i.tag,F(n,{class:i.deck?"card-deck":i.columns?"card-columns":"card-group"}),o)}})}}),su=function(){},au=function(t,e,i){if(t=t?t.$el||t:null,!kr(t))return null;if(n="observeDom",!R&&(le("".concat(n,": Requires MutationObserver support.")),1))return null;var n,o=new Sr((function(t){for(var i=!1,n=0;n0||o.removedNodes.length>0))&&(i=!0)}i&&e()}));return o.observe(t,c({childList:!0,subtree:!0},i)),o},lu=ys("value",{type:mo,defaultValue:0}),cu=lu.mixin,uu=lu.props,du=lu.prop,hu=lu.event,fu={next:{dirClass:"carousel-item-left",overlayClass:"carousel-item-next"},prev:{dirClass:"carousel-item-right",overlayClass:"carousel-item-prev"}},pu={TOUCH:"touch",PEN:"pen"},mu={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"otransitionend oTransitionEnd",transition:"transitionend"},vu=vs(ee(c(c(c({},fc),uu),{},{background:hs(go),controls:hs(ho,!1),fade:hs(ho,!1),imgHeight:hs(_o),imgWidth:hs(_o),indicators:hs(ho,!1),interval:hs(mo,5e3),labelGotoSlide:hs(go,"Goto slide"),labelIndicators:hs(go,"Select a slide to display"),labelNext:hs(go,"Next slide"),labelPrev:hs(go,"Previous slide"),noAnimation:hs(ho,!1),noHoverPause:hs(ho,!1),noTouch:hs(ho,!1),noWrap:hs(ho,!1)})),Ge),bu=i.default.extend({name:Ge,mixins:[pc,cu,Cs],provide:function(){return{bvCarousel:this}},props:vu,data:function(){return{index:this[du]||0,isSliding:!1,transitionEndEvent:null,slides:[],direction:null,isPaused:!(lr(this.interval,0)>0),touchStartX:0,touchDeltaX:0}},computed:{numSlides:function(){return this.slides.length}},watch:(zc={},a(zc,du,(function(t,e){t!==e&&this.setSlide(lr(t,0))})),a(zc,"interval",(function(t,e){t!==e&&(t?(this.pause(!0),this.start(!1)):this.pause(!1))})),a(zc,"isPaused",(function(t,e){t!==e&&this.$emit(t?"paused":"unpaused")})),a(zc,"index",(function(t,e){t===e||this.isSliding||this.doSlide(t,e)})),zc),created:function(){this.$_interval=null,this.$_animationTimeout=null,this.$_touchTimeout=null,this.$_observer=null,this.isPaused=!(lr(this.interval,0)>0)},mounted:function(){this.transitionEndEvent=function(t){for(var e in mu)if(!Ft(t.style[e]))return mu[e];return null}(this.$el)||null,this.updateSlides(),this.setObserver(!0)},beforeDestroy:function(){this.clearInterval(),this.clearAnimationTimeout(),this.clearTouchTimeout(),this.setObserver(!1)},methods:{clearInterval:function(t){function e(){return t.apply(this,arguments)}return e.toString=function(){return t.toString()},e}((function(){clearInterval(this.$_interval),this.$_interval=null})),clearAnimationTimeout:function(){clearTimeout(this.$_animationTimeout),this.$_animationTimeout=null},clearTouchTimeout:function(){clearTimeout(this.$_touchTimeout),this.$_touchTimeout=null},setObserver:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.$_observer&&this.$_observer.disconnect(),this.$_observer=null,t&&(this.$_observer=au(this.$refs.inner,this.updateSlides.bind(this),{subtree:!1,childList:!0,attributes:!0,attributeFilter:["id"]}))},setSlide:function(t){var e=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(!(M&&document.visibilityState&&document.hidden)){var n=this.noWrap,o=this.numSlides;t=Xs(t),0!==o&&(this.isSliding?this.$once(io,(function(){xr((function(){return e.setSlide(t,i)}))})):(this.direction=i,this.index=t>=o?n?o-1:0:t<0?n?0:o-1:t,n&&this.index!==t&&this.index!==this[du]&&this.$emit(hu,this.index)))}},prev:function(){this.setSlide(this.index-1,"prev")},next:function(){this.setSlide(this.index+1,"next")},pause:function(t){t||(this.isPaused=!0),this.clearInterval()},start:function(t){t||(this.isPaused=!1),this.clearInterval(),this.interval&&this.numSlides>1&&(this.$_interval=setInterval(this.next,Us(1e3,this.interval)))},restart:function(){this.$el.contains($r())||this.start()},doSlide:function(t,e){var i=this,n=Boolean(this.interval),o=this.calcDirection(this.direction,e,t),r=o.overlayClass,s=o.dirClass,a=this.slides[e],l=this.slides[t];if(a&&l){if(this.isSliding=!0,n&&this.pause(!1),this.$emit("sliding-start",t),this.$emit(hu,this.index),this.noAnimation)Rr(l,"active"),Mr(a,"active"),this.isSliding=!1,this.$nextTick((function(){return i.$emit(io,t)}));else{Rr(l,r),Ir(l),Rr(a,s),Rr(l,s);var c=!1,u=function e(){if(!c){if(c=!0,i.transitionEndEvent)i.transitionEndEvent.split(/\s+/).forEach((function(t){return ks(l,t,e,lo)}));i.clearAnimationTimeout(),Mr(l,s),Mr(l,r),Rr(l,"active"),Mr(a,"active"),Mr(a,s),Mr(a,r),zr(a,"aria-current","false"),zr(l,"aria-current","true"),zr(a,"aria-hidden","true"),zr(l,"aria-hidden","false"),i.isSliding=!1,i.direction=null,i.$nextTick((function(){return i.$emit(io,t)}))}};if(this.transitionEndEvent)this.transitionEndEvent.split(/\s+/).forEach((function(t){return Ss(l,t,u,lo)}));this.$_animationTimeout=setTimeout(u,650)}n&&this.start(!1)}},updateSlides:function(){this.pause(!0),this.slides=Pr(".carousel-item",this.$refs.inner);var t=this.slides.length,e=Us(0,Ys(Xs(this.index),t-1));this.slides.forEach((function(i,n){var o=n+1;n===e?(Rr(i,"active"),zr(i,"aria-current","true")):(Mr(i,"active"),zr(i,"aria-current","false")),zr(i,"aria-posinset",String(o)),zr(i,"aria-setsize",String(t))})),this.setSlide(e),this.start(this.isPaused)},calcDirection:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return t?fu[t]:i>e?fu.next:fu.prev},handleClick:function(t,e){var i=t.keyCode;"click"!==t.type&&i!==Ga&&i!==Ha||(Bs(t),e())},handleSwipe:function(){var t=qs(this.touchDeltaX);if(!(t<=40)){var e=t/this.touchDeltaX;this.touchDeltaX=0,e>0?this.prev():e<0&&this.next()}},touchStart:function(t){U&&pu[t.pointerType.toUpperCase()]?this.touchStartX=t.clientX:U||(this.touchStartX=t.touches[0].clientX)},touchMove:function(t){t.touches&&t.touches.length>1?this.touchDeltaX=0:this.touchDeltaX=t.touches[0].clientX-this.touchStartX},touchEnd:function(t){U&&pu[t.pointerType.toUpperCase()]&&(this.touchDeltaX=t.clientX-this.touchStartX),this.handleSwipe(),this.pause(!1),this.clearTouchTimeout(),this.$_touchTimeout=setTimeout(this.start,500+Us(1e3,this.interval))}},render:function(t){var e=this,i=this.indicators,n=this.background,o=this.noAnimation,r=this.noHoverPause,s=this.noTouch,a=this.index,l=this.isSliding,c=this.pause,u=this.restart,d=this.touchStart,h=this.touchEnd,f=this.safeId("__BV_inner_"),p=t("div",{staticClass:"carousel-inner",attrs:{id:f,role:"list"},ref:"inner"},[this.normalizeSlot()]),m=t();if(this.controls){var v=function(i,n,o){var r=function(t){l?Bs(t,{propagation:!1}):e.handleClick(t,o)};return t("a",{staticClass:"carousel-control-".concat(i),attrs:{href:"#",role:"button","aria-controls":f,"aria-disabled":l?"true":null},on:{click:r,keydown:r}},[t("span",{staticClass:"carousel-control-".concat(i,"-icon"),attrs:{"aria-hidden":"true"}}),t("span",{class:"sr-only"},[n])])};m=[v("prev",this.labelPrev,this.prev),v("next",this.labelNext,this.next)]}var b=t("ol",{staticClass:"carousel-indicators",directives:[{name:"show",value:i}],attrs:{id:this.safeId("__BV_indicators_"),"aria-hidden":i?"false":"true","aria-label":this.labelIndicators,"aria-owns":f}},this.slides.map((function(n,o){var r=function(t){e.handleClick(t,(function(){e.setSlide(o)}))};return t("li",{class:{active:o===a},attrs:{role:"button",id:e.safeId("__BV_indicator_".concat(o+1,"_")),tabindex:i?"0":"-1","aria-current":o===a?"true":"false","aria-label":"".concat(e.labelGotoSlide," ").concat(o+1),"aria-describedby":n.id||null,"aria-controls":f},on:{click:r,keydown:r},key:"slide_".concat(o)})}))),g={mouseenter:r?su:c,mouseleave:r?su:u,focusin:c,focusout:u,keydown:function(t){if(!/input|textarea/i.test(t.target.tagName)){var i=t.keyCode;i!==Na&&i!==ja||(Bs(t),e[i===Na?"prev":"next"]())}}};return Y&&!s&&(U?(g["&pointerdown"]=d,g["&pointerup"]=h):(g["&touchstart"]=d,g["&touchmove"]=this.touchMove,g["&touchend"]=h)),t("div",{staticClass:"carousel",class:{slide:!o,"carousel-fade":!o&&this.fade,"pointer-event":Y&&U&&!s},style:{background:n},attrs:{role:"region",id:this.safeId(),"aria-busy":l?"true":"false"},on:g},[p,m,b])}}),gu={imgAlt:hs(go),imgBlank:hs(ho,!1),imgBlankColor:hs(go,"transparent"),imgHeight:hs(_o),imgSrc:hs(go),imgWidth:hs(_o)},yu=vs(ee(c(c(c({},fc),gu),{},{background:hs(go),caption:hs(go),captionHtml:hs(go),captionTag:hs(go,"h3"),contentTag:hs(go,"div"),contentVisibleUp:hs(go),text:hs(go),textHtml:hs(go),textTag:hs(go,"p")})),We),wu=me({components:{BCarousel:bu,BCarouselSlide:i.default.extend({name:We,mixins:[pc,Cs],inject:{bvCarousel:{default:function(){return{noTouch:!0}}}},props:yu,computed:{contentClasses:function(){return[this.contentVisibleUp?"d-none":"",this.contentVisibleUp?"d-".concat(this.contentVisibleUp,"-block"):""]},computedWidth:function(){return this.imgWidth||this.bvCarousel.imgWidth||null},computedHeight:function(){return this.imgHeight||this.bvCarousel.imgHeight||null}},render:function(t){var e=this.normalizeSlot("img");if(!e&&(this.imgSrc||this.imgBlank)){var i={};!this.bvCarousel.noTouch&&Y&&(i.dragstart=function(t){return Bs(t,{propagation:!1})}),e=t(Lc,{props:c(c({},ps(gu,this.$props,us.bind(null,"img"))),{},{width:this.computedWidth,height:this.computedHeight,fluidGrow:!0,block:!0}),on:i})}var n=[!(!this.caption&&!this.captionHtml)&&t(this.captionTag,{domProps:Fl(this.captionHtml,this.caption)}),!(!this.text&&!this.textHtml)&&t(this.textTag,{domProps:Fl(this.textHtml,this.text)}),this.normalizeSlot()||!1],o=t();return n.some(ne)&&(o=t(this.contentTag,{staticClass:"carousel-caption",class:this.contentClasses},n.map((function(e){return e||t()})))),t("div",{staticClass:"carousel-item",style:{background:this.background||this.bvCarousel.background||null},attrs:{id:this.safeId(),role:"listitem"}},[e,o])}})}}),Tu="show",Cu={css:!0,enterClass:"",enterActiveClass:"collapsing",enterToClass:"collapse show",leaveClass:"collapse show",leaveActiveClass:"collapsing",leaveToClass:"collapse"},xu={enter:function(t){Wr(t,"height",0),xr((function(){Ir(t),Wr(t,"height","".concat(t.scrollHeight,"px"))}))},afterEnter:function(t){Yr(t,"height")},leave:function(t){Wr(t,"height","auto"),Wr(t,"display","block"),Wr(t,"height","".concat(qr(t).height,"px")),Ir(t),Wr(t,"height",0)},afterLeave:function(t){Yr(t,"height")}},Su={appear:hs(ho,!1)},ku=i.default.extend({name:"BVCollapse",functional:!0,props:Su,render:function(t,e){var i=e.props,n=e.data,o=e.children;return t("transition",F(n,{props:Cu,on:xu},{props:i}),o)}}),$u=Fs(Ue,"toggle"),Bu=Fs(Ue,"request-state"),_u=Ds(Ue,"accordion"),Du=Ds(Ue,"state"),Fu=Ds(Ue,"sync-state"),Iu=ys("visible",{type:ho,defaultValue:!1}),Pu=Iu.mixin,Ou=Iu.props,Vu=Iu.prop,Eu=Iu.event,Lu=vs(ee(c(c(c({},fc),Ou),{},{accordion:hs(go),appear:hs(ho,!1),isNav:hs(ho,!1),tag:hs(go,"div")})),Ue),Au=i.default.extend({name:Ue,mixins:[pc,Pu,Cs,Ja],props:Lu,data:function(){return{show:this[Vu],transitioning:!1}},computed:{classObject:function(){var t=this.transitioning;return{"navbar-collapse":this.isNav,collapse:!t,show:this.show&&!t}},slotScope:function(){var t=this;return{visible:this.show,close:function(){t.show=!1}}}},watch:(Nc={},a(Nc,Vu,(function(t){t!==this.show&&(this.show=t)})),a(Nc,"show",(function(t,e){t!==e&&this.emitState()})),Nc),created:function(){this.show=this[Vu]},mounted:function(){var t=this;this.show=this[Vu],this.listenOnRoot($u,this.handleToggleEvt),this.listenOnRoot(_u,this.handleAccordionEvt),this.isNav&&(this.setWindowEvents(!0),this.handleResize()),this.$nextTick((function(){t.emitState()})),this.listenOnRoot(Bu,(function(e){e===t.safeId()&&t.$nextTick(t.emitSync)}))},updated:function(){this.emitSync()},deactivated:function(){this.isNav&&this.setWindowEvents(!1)},activated:function(){this.isNav&&this.setWindowEvents(!0),this.emitSync()},beforeDestroy:function(){this.show=!1,this.isNav&&M&&this.setWindowEvents(!1)},methods:{setWindowEvents:function(t){$s(t,window,"resize",this.handleResize,lo),$s(t,window,"orientationchange",this.handleResize,lo)},toggle:function(){this.show=!this.show},onEnter:function(){this.transitioning=!0,this.$emit(to)},onAfterEnter:function(){this.transitioning=!1,this.$emit(eo)},onLeave:function(){this.transitioning=!0,this.$emit(Nn)},onAfterLeave:function(){this.transitioning=!1,this.$emit(zn)},emitState:function(){var t=this.show,e=this.accordion,i=this.safeId();this.$emit(Eu,t),this.emitOnRoot(Du,i,t),e&&t&&this.emitOnRoot(_u,i,e)},emitSync:function(){this.emitOnRoot(Fu,this.safeId(),this.show)},checkDisplayBlock:function(){var t=this.$el,e=Hr(t,Tu);Mr(t,Tu);var i="block"===Kr(t).display;return e&&Rr(t,Tu),i},clickHandler:function(t){var e=t.target;this.isNav&&e&&"block"===Kr(this.$el).display&&(!Vr(e,".nav-link,.dropdown-item")&&!Er(".nav-link,.dropdown-item",e)||this.checkDisplayBlock()||(this.show=!1))},handleToggleEvt:function(t){t===this.safeId()&&this.toggle()},handleAccordionEvt:function(t,e){var i=this.accordion,n=this.show;if(i&&i===e){var o=t===this.safeId();(o&&!n||!o&&n)&&this.toggle()}},handleResize:function(){this.show="block"===Kr(this.$el).display}},render:function(t){var e=this.appear,i=t(this.tag,{class:this.classObject,directives:[{name:"show",value:this.show}],attrs:{id:this.safeId()},on:{click:this.clickHandler}},this.normalizeSlot(Ao,this.slotScope));return t(ku,{props:{appear:e},on:{enter:this.onEnter,afterEnter:this.onAfterEnter,leave:this.onLeave,afterLeave:this.onAfterLeave}},[i])}}),Ru="collapsed",Mu="not-collapsed",Hu="__BV_toggle",zu="".concat(Hu,"_HANDLER__"),Nu="".concat(Hu,"_CLICK__"),ju="".concat(Hu,"_STATE__"),Gu="".concat(Hu,"_TARGETS__"),Wu="aria-controls",Yu="aria-expanded",Uu="role",qu="tabindex",Ku="overflow-anchor",Xu=Fs(Ue,"toggle"),Zu=Ds(Ue,"state"),Ju=Ds(Ue,"sync-state"),Qu=Fs(Ue,"request-state"),td=[Ha,Ga],ed=function(t){return!nr(["button","a"],t.tagName.toLowerCase())},id=function(t){var e=t[Nu];e&&(ks(t,"click",e,ao),ks(t,"keydown",e,ao)),t[Nu]=null},nd=function(t,e){t[zu]&&e.context&&e.context.$root.$off([Zu,Ju],t[zu]),t[zu]=null},od=function(t,e){e?(Mr(t,Ru),Rr(t,Mu),zr(t,Yu,"true")):(Mr(t,Mu),Rr(t,Ru),zr(t,Yu,"false"))},rd=function(t,e){t[e]=null,delete t[e]},sd=function(t,e,i){if(M&&i.context){ed(t)&&(Gr(t,Uu)||zr(t,Uu,"button"),Gr(t,qu)||zr(t,qu,"0")),od(t,t[ju]);var n=function(t,e){var i=t.modifiers,n=t.arg,o=t.value,r=Kt(i||{});if(o=Et(o)?o.split(ut):o,Br(e.tagName,"a")){var s=jr(e,"href")||"";it.test(s)&&r.push(s.replace(et,""))}return or(n,o).forEach((function(t){return Et(t)&&r.push(t)})),r.filter((function(t,e,i){return t&&i.indexOf(t)===e}))}(e,t);n.length>0?(zr(t,Wu,n.join(" ")),Wr(t,Ku,"none")):(Nr(t,Wu),Yr(t,Ku)),xr((function(){!function(t,e){if(id(t),e.context){var i=function(i){"keydown"===i.type&&!nr(td,i.keyCode)||Fr(t)||(t[Gu]||[]).forEach((function(t){e.context.$root.$emit(Xu,t)}))};t[Nu]=i,Ss(t,"click",i,ao),ed(t)&&Ss(t,"keydown",i,ao)}}(t,i)})),Ua(n,t[Gu])||(t[Gu]=n,n.forEach((function(t){i.context.$root.$emit(Qu,t)})))}},ad={bind:function(t,e,i){t[ju]=!1,t[Gu]=[],function(t,e){if(nd(t,e),e.context){var i=function(e,i){nr(t[Gu]||[],e)&&(t[ju]=i,od(t,i))};t[zu]=i,e.context.$root.$on([Zu,Ju],i)}}(t,i),sd(t,e,i)},componentUpdated:sd,updated:sd,unbind:function(t,e,i){id(t),nd(t,i),rd(t,zu),rd(t,Nu),rd(t,ju),rd(t,Gu),Mr(t,Ru),Mr(t,Mu),Nr(t,Yu),Nr(t,Wu),Nr(t,Uu),Yr(t,Ku)}},ld=me({directives:{VBToggle:ad}}),cd=me({components:{BCollapse:Au},plugins:{VBTogglePlugin:ld}}),ud="undefined"!=typeof window&&"undefined"!=typeof document&&"undefined"!=typeof navigator,dd=function(){for(var t=["Edge","Trident","Firefox"],e=0;e=0)return 1;return 0}();var hd=ud&&window.Promise?function(t){var e=!1;return function(){e||(e=!0,window.Promise.resolve().then((function(){e=!1,t()})))}}:function(t){var e=!1;return function(){e||(e=!0,setTimeout((function(){e=!1,t()}),dd))}};function fd(t){return t&&"[object Function]"==={}.toString.call(t)}function pd(t,e){if(1!==t.nodeType)return[];var i=t.ownerDocument.defaultView.getComputedStyle(t,null);return e?i[e]:i}function md(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function vd(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}var e=pd(t),i=e.overflow,n=e.overflowX,o=e.overflowY;return/(auto|scroll|overlay)/.test(i+o+n)?t:vd(md(t))}function bd(t){return t&&t.referenceNode?t.referenceNode:t}var gd=ud&&!(!window.MSInputMethodContext||!document.documentMode),yd=ud&&/MSIE 10/.test(navigator.userAgent);function wd(t){return 11===t?gd:10===t?yd:gd||yd}function Td(t){if(!t)return document.documentElement;for(var e=wd(10)?document.body:null,i=t.offsetParent||null;i===e&&t.nextElementSibling;)i=(t=t.nextElementSibling).offsetParent;var n=i&&i.nodeName;return n&&"BODY"!==n&&"HTML"!==n?-1!==["TH","TD","TABLE"].indexOf(i.nodeName)&&"static"===pd(i,"position")?Td(i):i:t?t.ownerDocument.documentElement:document.documentElement}function Cd(t){return null!==t.parentNode?Cd(t.parentNode):t}function xd(t,e){if(!(t&&t.nodeType&&e&&e.nodeType))return document.documentElement;var i=t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING,n=i?t:e,o=i?e:t,r=document.createRange();r.setStart(n,0),r.setEnd(o,0);var s,a,l=r.commonAncestorContainer;if(t!==l&&e!==l||n.contains(o))return"BODY"===(a=(s=l).nodeName)||"HTML"!==a&&Td(s.firstElementChild)!==s?Td(l):l;var c=Cd(t);return c.host?xd(c.host,e):xd(t,Cd(e).host)}function Sd(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top",i="top"===e?"scrollTop":"scrollLeft",n=t.nodeName;if("BODY"===n||"HTML"===n){var o=t.ownerDocument.documentElement,r=t.ownerDocument.scrollingElement||o;return r[i]}return t[i]}function kd(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=Sd(e,"top"),o=Sd(e,"left"),r=i?-1:1;return t.top+=n*r,t.bottom+=n*r,t.left+=o*r,t.right+=o*r,t}function $d(t,e){var i="x"===e?"Left":"Top",n="Left"===i?"Right":"Bottom";return parseFloat(t["border"+i+"Width"])+parseFloat(t["border"+n+"Width"])}function Bd(t,e,i,n){return Math.max(e["offset"+t],e["scroll"+t],i["client"+t],i["offset"+t],i["scroll"+t],wd(10)?parseInt(i["offset"+t])+parseInt(n["margin"+("Height"===t?"Top":"Left")])+parseInt(n["margin"+("Height"===t?"Bottom":"Right")]):0)}function _d(t){var e=t.body,i=t.documentElement,n=wd(10)&&getComputedStyle(i);return{height:Bd("Height",e,i,n),width:Bd("Width",e,i,n)}}var Dd=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},Fd=function(){function t(t,e){for(var i=0;i2&&void 0!==arguments[2]&&arguments[2],n=wd(10),o="HTML"===e.nodeName,r=Vd(t),s=Vd(e),a=vd(t),l=pd(e),c=parseFloat(l.borderTopWidth),u=parseFloat(l.borderLeftWidth);i&&o&&(s.top=Math.max(s.top,0),s.left=Math.max(s.left,0));var d=Od({top:r.top-s.top-c,left:r.left-s.left-u,width:r.width,height:r.height});if(d.marginTop=0,d.marginLeft=0,!n&&o){var h=parseFloat(l.marginTop),f=parseFloat(l.marginLeft);d.top-=c-h,d.bottom-=c-h,d.left-=u-f,d.right-=u-f,d.marginTop=h,d.marginLeft=f}return(n&&!i?e.contains(a):e===a&&"BODY"!==a.nodeName)&&(d=kd(d,e)),d}function Ld(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=t.ownerDocument.documentElement,n=Ed(t,i),o=Math.max(i.clientWidth,window.innerWidth||0),r=Math.max(i.clientHeight,window.innerHeight||0),s=e?0:Sd(i),a=e?0:Sd(i,"left"),l={top:s-n.top+n.marginTop,left:a-n.left+n.marginLeft,width:o,height:r};return Od(l)}function Ad(t){var e=t.nodeName;if("BODY"===e||"HTML"===e)return!1;if("fixed"===pd(t,"position"))return!0;var i=md(t);return!!i&&Ad(i)}function Rd(t){if(!t||!t.parentElement||wd())return document.documentElement;for(var e=t.parentElement;e&&"none"===pd(e,"transform");)e=e.parentElement;return e||document.documentElement}function Md(t,e,i,n){var o=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r={top:0,left:0},s=o?Rd(t):xd(t,bd(e));if("viewport"===n)r=Ld(s,o);else{var a=void 0;"scrollParent"===n?"BODY"===(a=vd(md(e))).nodeName&&(a=t.ownerDocument.documentElement):a="window"===n?t.ownerDocument.documentElement:n;var l=Ed(a,s,o);if("HTML"!==a.nodeName||Ad(s))r=l;else{var c=_d(t.ownerDocument),u=c.height,d=c.width;r.top+=l.top-l.marginTop,r.bottom=u+l.top,r.left+=l.left-l.marginLeft,r.right=d+l.left}}var h="number"==typeof(i=i||0);return r.left+=h?i:i.left||0,r.top+=h?i:i.top||0,r.right-=h?i:i.right||0,r.bottom-=h?i:i.bottom||0,r}function Hd(t){return t.width*t.height}function zd(t,e,i,n,o){var r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===t.indexOf("auto"))return t;var s=Md(i,n,r,o),a={top:{width:s.width,height:e.top-s.top},right:{width:s.right-e.right,height:s.height},bottom:{width:s.width,height:s.bottom-e.bottom},left:{width:e.left-s.left,height:s.height}},l=Object.keys(a).map((function(t){return Pd({key:t},a[t],{area:Hd(a[t])})})).sort((function(t,e){return e.area-t.area})),c=l.filter((function(t){var e=t.width,n=t.height;return e>=i.clientWidth&&n>=i.clientHeight})),u=c.length>0?c[0].key:l[0].key,d=t.split("-")[1];return u+(d?"-"+d:"")}function Nd(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,o=n?Rd(e):xd(e,bd(i));return Ed(i,o,n)}function jd(t){var e=t.ownerDocument.defaultView.getComputedStyle(t),i=parseFloat(e.marginTop||0)+parseFloat(e.marginBottom||0),n=parseFloat(e.marginLeft||0)+parseFloat(e.marginRight||0);return{width:t.offsetWidth+n,height:t.offsetHeight+i}}function Gd(t){var e={left:"right",right:"left",bottom:"top",top:"bottom"};return t.replace(/left|right|bottom|top/g,(function(t){return e[t]}))}function Wd(t,e,i){i=i.split("-")[0];var n=jd(t),o={width:n.width,height:n.height},r=-1!==["right","left"].indexOf(i),s=r?"top":"left",a=r?"left":"top",l=r?"height":"width",c=r?"width":"height";return o[s]=e[s]+e[l]/2-n[l]/2,o[a]=i===a?e[a]-n[c]:e[Gd(a)],o}function Yd(t,e){return Array.prototype.find?t.find(e):t.filter(e)[0]}function Ud(t,e,i){return(void 0===i?t:t.slice(0,function(t,e,i){if(Array.prototype.findIndex)return t.findIndex((function(t){return t[e]===i}));var n=Yd(t,(function(t){return t[e]===i}));return t.indexOf(n)}(t,"name",i))).forEach((function(t){t.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var i=t.function||t.fn;t.enabled&&fd(i)&&(e.offsets.popper=Od(e.offsets.popper),e.offsets.reference=Od(e.offsets.reference),e=i(e,t))})),e}function qd(){if(!this.state.isDestroyed){var t={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};t.offsets.reference=Nd(this.state,this.popper,this.reference,this.options.positionFixed),t.placement=zd(this.options.placement,t.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),t.originalPlacement=t.placement,t.positionFixed=this.options.positionFixed,t.offsets.popper=Wd(this.popper,t.offsets.reference,t.placement),t.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",t=Ud(this.modifiers,t),this.state.isCreated?this.options.onUpdate(t):(this.state.isCreated=!0,this.options.onCreate(t))}}function Kd(t,e){return t.some((function(t){var i=t.name;return t.enabled&&i===e}))}function Xd(t){for(var e=[!1,"ms","Webkit","Moz","O"],i=t.charAt(0).toUpperCase()+t.slice(1),n=0;n1&&void 0!==arguments[1]&&arguments[1],i=lh.indexOf(t),n=lh.slice(i+1).concat(lh.slice(0,i));return e?n.reverse():n}var uh="flip",dh="clockwise",hh="counterclockwise";function fh(t,e,i,n){var o=[0,0],r=-1!==["right","left"].indexOf(n),s=t.split(/(\+|\-)/).map((function(t){return t.trim()})),a=s.indexOf(Yd(s,(function(t){return-1!==t.search(/,|\s/)})));s[a]&&-1===s[a].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var l=/\s*,\s*|\s+/,c=-1!==a?[s.slice(0,a).concat([s[a].split(l)[0]]),[s[a].split(l)[1]].concat(s.slice(a+1))]:[s];return(c=c.map((function(t,n){var o=(1===n?!r:r)?"height":"width",s=!1;return t.reduce((function(t,e){return""===t[t.length-1]&&-1!==["+","-"].indexOf(e)?(t[t.length-1]=e,s=!0,t):s?(t[t.length-1]+=e,s=!1,t):t.concat(e)}),[]).map((function(t){return function(t,e,i,n){var o=t.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+o[1],s=o[2];if(!r)return t;if(0===s.indexOf("%")){var a=void 0;switch(s){case"%p":a=i;break;case"%":case"%r":default:a=n}return Od(a)[e]/100*r}if("vh"===s||"vw"===s)return("vh"===s?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*r;return r}(t,o,e,i)}))}))).forEach((function(t,e){t.forEach((function(i,n){nh(i)&&(o[e]+=i*("-"===t[n-1]?-1:1))}))})),o}var ph={placement:"bottom",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(t){var e=t.placement,i=e.split("-")[0],n=e.split("-")[1];if(n){var o=t.offsets,r=o.reference,s=o.popper,a=-1!==["bottom","top"].indexOf(i),l=a?"left":"top",c=a?"width":"height",u={start:Id({},l,r[l]),end:Id({},l,r[l]+r[c]-s[c])};t.offsets.popper=Pd({},s,u[n])}return t}},offset:{order:200,enabled:!0,fn:function(t,e){var i=e.offset,n=t.placement,o=t.offsets,r=o.popper,s=o.reference,a=n.split("-")[0],l=void 0;return l=nh(+i)?[+i,0]:fh(i,r,s,a),"left"===a?(r.top+=l[0],r.left-=l[1]):"right"===a?(r.top+=l[0],r.left+=l[1]):"top"===a?(r.left+=l[0],r.top-=l[1]):"bottom"===a&&(r.left+=l[0],r.top+=l[1]),t.popper=r,t},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(t,e){var i=e.boundariesElement||Td(t.instance.popper);t.instance.reference===i&&(i=Td(i));var n=Xd("transform"),o=t.instance.popper.style,r=o.top,s=o.left,a=o[n];o.top="",o.left="",o[n]="";var l=Md(t.instance.popper,t.instance.reference,e.padding,i,t.positionFixed);o.top=r,o.left=s,o[n]=a,e.boundaries=l;var c=e.priority,u=t.offsets.popper,d={primary:function(t){var i=u[t];return u[t]l[t]&&!e.escapeWithReference&&(n=Math.min(u[i],l[t]-("right"===t?u.width:u.height))),Id({},i,n)}};return c.forEach((function(t){var e=-1!==["left","top"].indexOf(t)?"primary":"secondary";u=Pd({},u,d[e](t))})),t.offsets.popper=u,t},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(t){var e=t.offsets,i=e.popper,n=e.reference,o=t.placement.split("-")[0],r=Math.floor,s=-1!==["top","bottom"].indexOf(o),a=s?"right":"bottom",l=s?"left":"top",c=s?"width":"height";return i[a]r(n[a])&&(t.offsets.popper[l]=r(n[a])),t}},arrow:{order:500,enabled:!0,fn:function(t,e){var i;if(!sh(t.instance.modifiers,"arrow","keepTogether"))return t;var n=e.element;if("string"==typeof n){if(!(n=t.instance.popper.querySelector(n)))return t}else if(!t.instance.popper.contains(n))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),t;var o=t.placement.split("-")[0],r=t.offsets,s=r.popper,a=r.reference,l=-1!==["left","right"].indexOf(o),c=l?"height":"width",u=l?"Top":"Left",d=u.toLowerCase(),h=l?"left":"top",f=l?"bottom":"right",p=jd(n)[c];a[f]-ps[f]&&(t.offsets.popper[d]+=a[d]+p-s[f]),t.offsets.popper=Od(t.offsets.popper);var m=a[d]+a[c]/2-p/2,v=pd(t.instance.popper),b=parseFloat(v["margin"+u]),g=parseFloat(v["border"+u+"Width"]),y=m-t.offsets.popper[d]-b-g;return y=Math.max(Math.min(s[c]-p,y),0),t.arrowElement=n,t.offsets.arrow=(Id(i={},d,Math.round(y)),Id(i,h,""),i),t},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(t,e){if(Kd(t.instance.modifiers,"inner"))return t;if(t.flipped&&t.placement===t.originalPlacement)return t;var i=Md(t.instance.popper,t.instance.reference,e.padding,e.boundariesElement,t.positionFixed),n=t.placement.split("-")[0],o=Gd(n),r=t.placement.split("-")[1]||"",s=[];switch(e.behavior){case uh:s=[n,o];break;case dh:s=ch(n);break;case hh:s=ch(n,!0);break;default:s=e.behavior}return s.forEach((function(a,l){if(n!==a||s.length===l+1)return t;n=t.placement.split("-")[0],o=Gd(n);var c=t.offsets.popper,u=t.offsets.reference,d=Math.floor,h="left"===n&&d(c.right)>d(u.left)||"right"===n&&d(c.left)d(u.top)||"bottom"===n&&d(c.top)d(i.right),m=d(c.top)d(i.bottom),b="left"===n&&f||"right"===n&&p||"top"===n&&m||"bottom"===n&&v,g=-1!==["top","bottom"].indexOf(n),y=!!e.flipVariations&&(g&&"start"===r&&f||g&&"end"===r&&p||!g&&"start"===r&&m||!g&&"end"===r&&v),w=!!e.flipVariationsByContent&&(g&&"start"===r&&p||g&&"end"===r&&f||!g&&"start"===r&&v||!g&&"end"===r&&m),T=y||w;(h||b||T)&&(t.flipped=!0,(h||b)&&(n=s[l+1]),T&&(r=function(t){return"end"===t?"start":"start"===t?"end":t}(r)),t.placement=n+(r?"-"+r:""),t.offsets.popper=Pd({},t.offsets.popper,Wd(t.instance.popper,t.offsets.reference,t.placement)),t=Ud(t.instance.modifiers,t,"flip"))})),t},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(t){var e=t.placement,i=e.split("-")[0],n=t.offsets,o=n.popper,r=n.reference,s=-1!==["left","right"].indexOf(i),a=-1===["top","left"].indexOf(i);return o[s?"left":"top"]=r[i]-(a?o[s?"width":"height"]:0),t.placement=Gd(e),t.offsets.popper=Od(o),t}},hide:{order:800,enabled:!0,fn:function(t){if(!sh(t.instance.modifiers,"hide","preventOverflow"))return t;var e=t.offsets.reference,i=Yd(t.instance.modifiers,(function(t){return"preventOverflow"===t.name})).boundaries;if(e.bottomi.right||e.top>i.bottom||e.right2&&void 0!==arguments[2]?arguments[2]:{};Dd(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(n.update)},this.update=hd(this.update.bind(this)),this.options=Pd({},t.Defaults,o),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=e&&e.jquery?e[0]:e,this.popper=i&&i.jquery?i[0]:i,this.options.modifiers={},Object.keys(Pd({},t.Defaults.modifiers,o.modifiers)).forEach((function(e){n.options.modifiers[e]=Pd({},t.Defaults.modifiers[e]||{},o.modifiers?o.modifiers[e]:{})})),this.modifiers=Object.keys(this.options.modifiers).map((function(t){return Pd({name:t},n.options.modifiers[t])})).sort((function(t,e){return t.order-e.order})),this.modifiers.forEach((function(t){t.enabled&&fd(t.onLoad)&&t.onLoad(n.reference,n.popper,n.options,t,n.state)})),this.update();var r=this.options.eventsEnabled;r&&this.enableEventListeners(),this.state.eventsEnabled=r}return Fd(t,[{key:"update",value:function(){return qd.call(this)}},{key:"destroy",value:function(){return Zd.call(this)}},{key:"enableEventListeners",value:function(){return eh.call(this)}},{key:"disableEventListeners",value:function(){return ih.call(this)}}]),t}();mh.Utils=("undefined"!=typeof window?window:global).PopperUtils,mh.placements=ah,mh.Defaults=ph;var vh,bh,gh,yh,wh,Th,Ch,xh,Sh,kh,$h,Bh,BvEvent=function(){function BvEvent(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(o(this,BvEvent),!t)throw new TypeError("Failed to construct '".concat(this.constructor.name,"'. 1 argument required, ").concat(arguments.length," given."));Gt(this,BvEvent.Defaults,this.constructor.Defaults,e,{type:t}),Yt(this,{type:{enumerable:!0,configurable:!1,writable:!1},cancelable:{enumerable:!0,configurable:!1,writable:!1},nativeEvent:{enumerable:!0,configurable:!1,writable:!1},target:{enumerable:!0,configurable:!1,writable:!1},relatedTarget:{enumerable:!0,configurable:!1,writable:!1},vueTarget:{enumerable:!0,configurable:!1,writable:!1},componentId:{enumerable:!0,configurable:!1,writable:!1}});var i=!1;this.preventDefault=function(){this.cancelable&&(i=!0)},Ut(this,"defaultPrevented",{enumerable:!0,get:function(){return i}})}return s(BvEvent,null,[{key:"Defaults",get:function(){return{type:"",cancelable:!0,nativeEvent:null,target:null,relatedTarget:null,vueTarget:null,componentId:null}}}]),BvEvent}(),_h=i.default.extend({data:function(){return{listenForClickOut:!1}},watch:{listenForClickOut:function(t,e){t!==e&&(ks(this.clickOutElement,this.clickOutEventName,this._clickOutHandler,lo),t&&Ss(this.clickOutElement,this.clickOutEventName,this._clickOutHandler,lo))}},beforeCreate:function(){this.clickOutElement=null,this.clickOutEventName=null},mounted:function(){this.clickOutElement||(this.clickOutElement=document),this.clickOutEventName||(this.clickOutEventName="click"),this.listenForClickOut&&Ss(this.clickOutElement,this.clickOutEventName,this._clickOutHandler,lo)},beforeDestroy:function(){ks(this.clickOutElement,this.clickOutEventName,this._clickOutHandler,lo)},methods:{isClickOut:function(t){return!Lr(this.$el,t.target)},_clickOutHandler:function(t){this.clickOutHandler&&this.isClickOut(t)&&this.clickOutHandler(t)}}}),Dh=i.default.extend({data:function(){return{listenForFocusIn:!1}},watch:{listenForFocusIn:function(t,e){t!==e&&(ks(this.focusInElement,"focusin",this._focusInHandler,lo),t&&Ss(this.focusInElement,"focusin",this._focusInHandler,lo))}},beforeCreate:function(){this.focusInElement=null},mounted:function(){this.focusInElement||(this.focusInElement=document),this.listenForFocusIn&&Ss(this.focusInElement,"focusin",this._focusInHandler,lo)},beforeDestroy:function(){ks(this.focusInElement,"focusin",this._focusInHandler,lo)},methods:{_focusInHandler:function(t){this.focusInHandler&&this.focusInHandler(t)}}}),Fh=Ds(Ke,eo),Ih=Ds(Ke,zn),Ph=[".dropdown-item",".b-dropdown-form"].map((function(t){return"".concat(t,":not(.disabled):not([disabled])")})).join(", "),Oh=vs(ee(c(c({},fc),{},{boundary:hs([HTMLElement,go],"scrollParent"),disabled:hs(ho,!1),dropleft:hs(ho,!1),dropright:hs(ho,!1),dropup:hs(ho,!1),noFlip:hs(ho,!1),offset:hs(_o,0),popperOpts:hs(vo,{}),right:hs(ho,!1)})),Ke),Vh=i.default.extend({mixins:[pc,Ja,_h,Dh],provide:function(){return{bvDropdown:this}},inject:{bvNavbar:{default:null}},props:Oh,data:function(){return{visible:!1,visibleChangePrevented:!1}},computed:{inNavbar:function(){return!It(this.bvNavbar)},toggler:function(){var t=this.$refs.toggle;return t?t.$el||t:null},directionClass:function(){return this.dropup?"dropup":this.dropright?"dropright":this.dropleft?"dropleft":""},boundaryClass:function(){return"scrollParent"===this.boundary||this.inNavbar?"":"position-static"}},watch:{visible:function(t,e){if(this.visibleChangePrevented)this.visibleChangePrevented=!1;else if(t!==e){var i=new BvEvent(t?to:Nn,{cancelable:!0,vueTarget:this,target:this.$refs.menu,relatedTarget:null,componentId:this.safeId?this.safeId():this.id||null});if(this.emitEvent(i),i.defaultPrevented)return this.visibleChangePrevented=!0,this.visible=e,void this.$off(zn,this.focusToggler);t?this.showMenu():this.hideMenu()}},disabled:function(t,e){t!==e&&t&&this.visible&&(this.visible=!1)}},created:function(){this.$_popper=null,this.$_hideTimeout=null},deactivated:function(){this.visible=!1,this.whileOpenListen(!1),this.destroyPopper()},beforeDestroy:function(){this.visible=!1,this.whileOpenListen(!1),this.destroyPopper(),this.clearHideTimeout()},methods:{emitEvent:function(t){var e=t.type;this.emitOnRoot(Ds(Ke,e),t),this.$emit(e,t)},showMenu:function(){var t=this;if(!this.disabled){if(!this.inNavbar)if("undefined"==typeof mh)le("Popper.js not found. Falling back to CSS positioning",Ke);else{var e=this.dropup&&this.right||this.split?this.$el:this.$refs.toggle;e=e.$el||e,this.createPopper(e)}this.emitOnRoot(Fh,this),this.whileOpenListen(!0),this.$nextTick((function(){t.focusMenu(),t.$emit(eo)}))}},hideMenu:function(){this.whileOpenListen(!1),this.emitOnRoot(Ih,this),this.$emit(zn),this.destroyPopper()},createPopper:function(t){this.destroyPopper(),this.$_popper=new mh(t,this.$refs.menu,this.getPopperConfig())},destroyPopper:function(){this.$_popper&&this.$_popper.destroy(),this.$_popper=null},updatePopper:function(){try{this.$_popper.scheduleUpdate()}catch(t){}},clearHideTimeout:function(){clearTimeout(this.$_hideTimeout),this.$_hideTimeout=null},getPopperConfig:function(){var t="bottom-start";this.dropup?t=this.right?"top-end":"top-start":this.dropright?t="right-start":this.dropleft?t="left-start":this.right&&(t="bottom-end");var e={placement:t,modifiers:{offset:{offset:this.offset||0},flip:{enabled:!this.noFlip}}},i=this.boundary;return i&&(e.modifiers.preventOverflow={boundariesElement:i}),te(e,this.popperOpts||{})},whileOpenListen:function(t){this.listenForClickOut=t,this.listenForFocusIn=t;var e=t?"$on":"$off";this.$root[e](Fh,this.rootCloseListener)},rootCloseListener:function(t){t!==this&&(this.visible=!1)},show:function(){var t=this;this.disabled||xr((function(){t.visible=!0}))},hide:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.disabled||(this.visible=!1,t&&this.$once(zn,this.focusToggler))},toggle:function(t){var e=t=t||{},i=e.type,n=e.keyCode;("click"===i||"keydown"===i&&-1!==[Ha,Ga,Ra].indexOf(n))&&(this.disabled?this.visible=!1:(this.$emit(no,t),Bs(t),this.visible?this.hide(!0):this.show()))},onMousedown:function(t){Bs(t,{propagation:!1})},onKeydown:function(t){var e=t.keyCode;27===e?this.onEsc(t):e===Ra?this.focusNext(t,!1):e===Wa&&this.focusNext(t,!0)},onEsc:function(t){this.visible&&(this.visible=!1,Bs(t),this.$once(zn,this.focusToggler))},onSplitClick:function(t){this.disabled?this.visible=!1:this.$emit(Bn,t)},hideHandler:function(t){var e=this,i=t.target;!this.visible||Lr(this.$refs.menu,i)||Lr(this.toggler,i)||(this.clearHideTimeout(),this.$_hideTimeout=setTimeout((function(){return e.hide()}),this.inNavbar?300:0))},clickOutHandler:function(t){this.hideHandler(t)},focusInHandler:function(t){this.hideHandler(t)},focusNext:function(t,e){var i=this,n=t.target;!this.visible||t&&Er(".dropdown form",n)||(Bs(t),this.$nextTick((function(){var t=i.getItems();if(!(t.length<1)){var o=t.indexOf(n);e&&o>0?o--:!e&&o1&&void 0!==arguments[1]?arguments[1]:null;if(Ht(t)){var i=re(t,this.valueField),n=re(t,this.textField);return{value:Ft(i)?e||n:i,text:Dl(String(Ft(n)?e:n)),html:re(t,this.htmlField),disabled:Boolean(re(t,this.disabledField))}}return{value:e||t,text:Dl(String(t)),disabled:!1}},normalizeOptions:function(t){var e=this;return Rt(t)?t.map((function(t){return e.normalizeOption(t)})):Ht(t)?(le('Setting prop "options" to an object is deprecated. Use the array format instead.',this.$options.name),Kt(t).map((function(i){return e.normalizeOption(t[i]||{},i)}))):[]}}}),lf=vs(ee(c(c({},sf),{},{id:hs(go,void 0,!0)})),ai),cf=i.default.extend({name:ai,mixins:[af,Cs],props:lf,render:function(t){var e=this.id,i=this.formOptions.map((function(e,i){var n=e.value,o=e.text,r=e.html,s=e.disabled;return t("option",{attrs:{value:n,disabled:s},domProps:Fl(r,o),key:"option_".concat(i)})}));return t("datalist",{attrs:{id:e}},[i,this.normalizeSlot()])}}),uf=vs({id:hs(go),inline:hs(ho,!1),tag:hs(go,"small"),textVariant:hs(go,"muted")},xi),df=i.default.extend({name:xi,functional:!0,props:uf,render:function(t,e){var i=e.props,n=e.data,o=e.children;return t(i.tag,F(n,{class:a({"form-text":!i.inline},"text-".concat(i.textVariant),i.textVariant),attrs:{id:i.id}}),o)}}),hf=vs({ariaLive:hs(go),forceShow:hs(ho,!1),id:hs(go),role:hs(go),state:hs(ho,null),tag:hs(go,"div"),tooltip:hs(ho,!1)},hi),ff=i.default.extend({name:hi,functional:!0,props:hf,render:function(t,e){var i=e.props,n=e.data,o=e.children,r=i.tooltip,s=i.ariaLive,a=!0===i.forceShow||!1===i.state;return t(i.tag,F(n,{class:{"d-block":a,"invalid-feedback":!r,"invalid-tooltip":r},attrs:{id:i.id||null,role:i.role||null,"aria-live":s||null,"aria-atomic":s?"true":null}}),o)}}),pf=vs({ariaLive:hs(go),forceShow:hs(ho,!1),id:hs(go),role:hs(go),state:hs(ho,null),tag:hs(go,"div"),tooltip:hs(ho,!1)},$i),mf=i.default.extend({name:$i,functional:!0,props:pf,render:function(t,e){var i=e.props,n=e.data,o=e.children,r=i.tooltip,s=i.ariaLive,a=!0===i.forceShow||!0===i.state;return t(i.tag,F(n,{class:{"d-block":a,"valid-feedback":!r,"valid-tooltip":r},attrs:{id:i.id||null,role:i.role||null,"aria-live":s||null,"aria-atomic":s?"true":null}}),o)}}),vf=vs({tag:hs(go,"div")},vi),bf=i.default.extend({name:vi,functional:!0,props:vf,render:function(t,e){var i=e.props,n=e.data,o=e.children;return t(i.tag,F(n,{staticClass:"form-row"}),o)}}),gf=me({components:{BForm:Uh,BFormDatalist:cf,BDatalist:cf,BFormText:df,BFormInvalidFeedback:ff,BFormFeedback:ff,BFormValidFeedback:mf,BFormRow:bf}}),yf=function(t,e){for(var i=0;i-1:Ua(e,t)},isRadio:function(){return!1}},watch:a({},Lf,(function(t,e){Ua(t,e)||this.setIndeterminate(t)})),mounted:function(){this.setIndeterminate(this.indeterminate)},methods:{computedLocalCheckedWatcher:function(t,e){if(!Ua(t,e)){this.$emit(Of,t);var i=this.$refs.input;i&&this.$emit(Af,i.indeterminate)}},handleChange:function(t){var e=this,i=t.target,n=i.checked,o=i.indeterminate,r=this.value,s=this.uncheckedValue,a=this.computedLocalChecked;if(Rt(a)){var l=yf(a,r);n&&l<0?a=a.concat(r):!n&&l>-1&&(a=a.slice(0,l).concat(a.slice(l+1)))}else a=n?r:s;this.computedLocalChecked=a,this.$nextTick((function(){e.$emit($n,a),e.isGroup&&e.bvGroup.$emit($n,a),e.$emit(Af,o)}))},setIndeterminate:function(t){Rt(this.computedLocalChecked)&&(t=!1);var e=this.$refs.input;e&&(e.indeterminate=t,this.$emit(Af,t))}}}),Hf=vs(ee(c(c(c(c(c({},fc),Tf),Vf),kf),Bf)),fi),zf=i.default.extend({name:fi,mixins:[pc,Ef,Cf,$f,_f],inject:{bvGroup:{from:"bvRadioGroup",default:!1}},props:Hf,watch:{computedLocalChecked:function(t,e){Ua(t,e)||this.$emit(Of,t)}}}),Nf=["aria-describedby","aria-labelledby"],jf=ys("checked"),Gf=jf.mixin,Wf=jf.props,Yf=jf.prop,Uf=jf.event,qf=vs(ee(c(c(c(c(c(c(c(c({},fc),Wf),Tf),sf),kf),Bf),xf),{},{ariaInvalid:hs(ko,!1),buttonVariant:hs(go),buttons:hs(ho,!1),stacked:hs(ho,!1),validated:hs(ho,!1)})),"formRadioCheckGroups"),Kf=i.default.extend({mixins:[pc,Gf,Cs,Cf,af,$f,_f,Sf],inheritAttrs:!1,props:qf,data:function(){return{localChecked:this[Yf]}},computed:{inline:function(){return!this.stacked},groupName:function(){return this.name||this.safeId()},groupClasses:function(){var t=this.inline,e=this.size,i={"was-validated":this.validated};return this.buttons&&(i=[i,"btn-group-toggle",a({"btn-group":t,"btn-group-vertical":!t},"btn-group-".concat(e),e)]),i}},watch:(yh={},a(yh,Yf,(function(t){Ua(t,this.localChecked)||(this.localChecked=t)})),a(yh,"localChecked",(function(t,e){Ua(t,e)||this.$emit(Uf,t)})),yh),render:function(t){var e=this,i=this.isRadioGroup,n=Jt(this.$attrs,Nf),o=i?zf:Mf,r=this.formOptions.map((function(i,r){var s="BV_option_".concat(r);return t(o,{props:{disabled:i.disabled||!1,id:e.safeId(s),value:i.value},attrs:n,key:s},[t("span",{domProps:Fl(i.html,i.text)})])}));return t("div",{class:[this.groupClasses,"bv-no-focus-ring"],attrs:c(c({},Qt(this.$attrs,Nf)),{},{"aria-invalid":this.computedAriaInvalid,"aria-required":this.required?"true":null,id:this.safeId(),role:i?"radiogroup":"group",tabindex:"-1"})},[this.normalizeSlot(Ho),r,this.normalizeSlot()])}}),Xf=vs(ee(c(c({},qf),{},(a(wh={},Yf,hs(uo,[])),a(wh,"switches",hs(ho,!1)),wh))),si),Zf=i.default.extend({name:si,mixins:[Kf],provide:function(){return{bvCheckGroup:this}},props:Xf,computed:{isRadioGroup:function(){return!1}}}),Jf=me({components:{BFormCheckbox:Mf,BCheckbox:Mf,BCheck:Mf,BFormCheckboxGroup:Zf,BCheckboxGroup:Zf,BCheckGroup:Zf}}),Qf="__BV_hover_handler__",tp="mouseenter",ep=function(t,e,i){$s(t,e,tp,i,lo),$s(t,e,"mouseleave",i,lo)},ip=function(t,e){var i=e.value,n=void 0===i?null:i;if(M){var o=t[Qf],r=Ot(o),s=!(r&&o.fn===n);r&&s&&(ep(!1,t,o),delete t[Qf]),Ot(n)&&s&&(t[Qf]=function(t){var e=function(e){t(e.type===tp,e)};return e.fn=t,e}(n),ep(!0,t,t[Qf]))}},np={bind:ip,componentUpdated:ip,unbind:function(t){ip(t,{value:null})}},op=ee(c(c(c(c(c(c({},fc),kf),Bf),Qt(Oh,["disabled"])),Qt(Tf,["autofocus"])),{},{buttonOnly:hs(ho,!1),buttonVariant:hs(go,"secondary"),formattedValue:hs(go),labelSelected:hs(go),lang:hs(go),menuClass:hs(To),placeholder:hs(go),readonly:hs(ho,!1),rtl:hs(ho,null),value:hs(go,"")})),rp=i.default.extend({name:"BVFormBtnLabelControl",directives:{"b-hover":np},mixins:[pc,$f,_f,Vh,Cs],props:op,data:function(){return{isHovered:!1,hasFocus:!1}},computed:{idButton:function(){return this.safeId()},idLabel:function(){return this.safeId("_value_")},idMenu:function(){return this.safeId("_dialog_")},idWrapper:function(){return this.safeId("_outer_")},computedDir:function(){return!0===this.rtl?"rtl":!1===this.rtl?"ltr":null}},methods:{focus:function(){this.disabled||ts(this.$refs.toggle)},blur:function(){this.disabled||es(this.$refs.toggle)},setFocus:function(t){this.hasFocus="focus"===t.type},handleHover:function(t){this.isHovered=t}},render:function(t){var e,i=this.idButton,n=this.idLabel,o=this.idMenu,r=this.idWrapper,s=this.disabled,l=this.readonly,c=this.required,u=this.name,d=this.state,h=this.visible,f=this.size,p=this.isHovered,m=this.hasFocus,v=this.labelSelected,b=this.buttonVariant,g=this.buttonOnly,y=vr(this.value)||"",w=!1===d||c&&!y,T={isHovered:p,hasFocus:m,state:d,opened:h},C=t("button",{staticClass:"btn",class:(e={},a(e,"btn-".concat(b),g),a(e,"btn-".concat(f),f),a(e,"h-auto",!g),a(e,"dropdown-toggle",g),a(e,"dropdown-toggle-no-caret",g),e),attrs:{id:i,type:"button",disabled:s,"aria-haspopup":"dialog","aria-expanded":h?"true":"false","aria-invalid":w?"true":null,"aria-required":c?"true":null},directives:[{name:"b-hover",value:this.handleHover}],on:{mousedown:this.onMousedown,click:this.toggle,keydown:this.toggle,"!focus":this.setFocus,"!blur":this.setFocus},ref:"toggle"},[this.hasNormalizedSlot(Eo)?this.normalizeSlot(Eo,T):t(Ta,{props:{scale:1.25}})]),x=t();u&&!s&&(x=t("input",{attrs:{type:"hidden",name:u||null,form:this.form||null,value:y}}));var S=t("div",{staticClass:"dropdown-menu",class:[this.menuClass,{show:h,"dropdown-menu-right":this.right}],attrs:{id:o,role:"dialog",tabindex:"-1","aria-modal":"false","aria-labelledby":n},on:{keydown:this.onKeydown},ref:"menu"},[this.normalizeSlot(Ao,{opened:h})]),k=t("label",{class:g?"sr-only":["form-control",{"text-muted":!y},this.stateClass,this.sizeFormClass],attrs:{id:n,for:i,"aria-invalid":w?"true":null,"aria-required":c?"true":null},directives:[{name:"b-hover",value:this.handleHover}],on:{"!click":function(t){Bs(t,{preventDefault:!1})}}},[y?this.formattedValue||y:this.placeholder||"",y&&v?t("bdi",{staticClass:"sr-only"},v):""]);return t("div",{staticClass:"b-form-btn-label-control dropdown",class:[this.directionClass,this.boundaryClass,[{"btn-group":g,"form-control":!g,focus:m&&!g,show:h,"is-valid":!0===d,"is-invalid":!1===d},g?null:this.sizeFormClass]],attrs:{id:r,role:g?null:"group",lang:this.lang||null,dir:this.computedDir,"aria-disabled":s,"aria-readonly":l&&!s,"aria-labelledby":n,"aria-invalid":!1===d||c&&!y?"true":null,"aria-required":c?"true":null}},[C,x,S,k])}}),sp=ys("value",{type:$o}),ap=sp.mixin,lp=sp.props,cp=sp.prop,up=sp.event,dp=Qt(wc,["block","hidden","id","noKeyNav","roleDescription","value","width"]),hp=Qt(op,["formattedValue","id","lang","rtl","value"]),fp=vs(ee(c(c(c(c(c({},fc),lp),dp),hp),{},{calendarWidth:hs(go,"270px"),closeButton:hs(ho,!1),closeButtonVariant:hs(go,"outline-secondary"),dark:hs(ho,!1),labelCloseButton:hs(go,"Close"),labelResetButton:hs(go,"Reset"),labelTodayButton:hs(go,"Select today"),noCloseOnSelect:hs(ho,!1),resetButton:hs(ho,!1),resetButtonVariant:hs(go,"outline-danger"),resetValue:hs($o),todayButton:hs(ho,!1),todayButtonVariant:hs(go,"outline-primary")})),li),pp=i.default.extend({name:li,mixins:[pc,ap],props:fp,data:function(){return{localYMD:Jl(this[cp])||"",isVisible:!1,localLocale:null,isRTL:!1,formattedValue:"",activeYMD:""}},computed:{calendarYM:function(){return this.activeYMD.slice(0,-3)},computedLang:function(){return(this.localLocale||"").replace(/-u-.*$/i,"")||null},computedResetValue:function(){return Jl(uc(this.resetValue))||""}},watch:(Th={},a(Th,cp,(function(t){this.localYMD=Jl(t)||""})),a(Th,"localYMD",(function(t){this.isVisible&&this.$emit(up,this.valueAsDate?Zl(t)||null:t||"")})),a(Th,"calendarYM",(function(t,e){if(t!==e&&e)try{this.$refs.control.updatePopper()}catch(t){}})),Th),methods:{focus:function(){this.disabled||ts(this.$refs.control)},blur:function(){this.disabled||es(this.$refs.control)},setAndClose:function(t){var e=this;this.localYMD=t,this.noCloseOnSelect||this.$nextTick((function(){e.$refs.control.hide(!0)}))},onSelected:function(t){var e=this;this.$nextTick((function(){e.setAndClose(t)}))},onInput:function(t){this.localYMD!==t&&(this.localYMD=t)},onContext:function(t){var e=t.activeYMD,i=t.isRTL,n=t.locale,o=t.selectedYMD,r=t.selectedFormatted;this.isRTL=i,this.localLocale=n,this.formattedValue=r,this.localYMD=o,this.activeYMD=e,this.$emit(Dn,t)},onTodayButton:function(){this.setAndClose(Jl(uc(Xl(),this.min,this.max)))},onResetButton:function(){this.setAndClose(this.computedResetValue)},onCloseButton:function(){this.$refs.control.hide(!0)},onShow:function(){this.isVisible=!0},onShown:function(){var t=this;this.$nextTick((function(){ts(t.$refs.calendar),t.$emit(eo)}))},onHidden:function(){this.isVisible=!1,this.$emit(zn)},defaultButtonFn:function(t){var e=t.isHovered,i=t.hasFocus;return this.$createElement(e||i?ga:ba,{attrs:{"aria-hidden":"true"}})}},render:function(t){var e=this.localYMD,i=this.disabled,n=this.readonly,o=this.dark,r=this.$props,s=this.$scopedSlots,l=Pt(this.placeholder)?this.labelNoDateSelected:this.placeholder,u=[];if(this.todayButton){var d=this.labelTodayButton;u.push(t(ml,{props:{disabled:i||n,size:"sm",variant:this.todayButtonVariant},attrs:{"aria-label":d||null},on:{click:this.onTodayButton}},d))}if(this.resetButton){var h=this.labelResetButton;u.push(t(ml,{props:{disabled:i||n,size:"sm",variant:this.resetButtonVariant},attrs:{"aria-label":h||null},on:{click:this.onResetButton}},h))}if(this.closeButton){var f=this.labelCloseButton;u.push(t(ml,{props:{disabled:i,size:"sm",variant:this.closeButtonVariant},attrs:{"aria-label":f||null},on:{click:this.onCloseButton}},f))}u.length>0&&(u=[t("div",{staticClass:"b-form-date-controls d-flex flex-wrap",class:{"justify-content-between":u.length>1,"justify-content-end":u.length<2}},u)]);var p=t(Tc,{staticClass:"b-form-date-calendar w-100",props:c(c({},ps(dp,r)),{},{hidden:!this.isVisible,value:e,valueAsDate:!1,width:this.calendarWidth}),on:{selected:this.onSelected,input:this.onInput,context:this.onContext},scopedSlots:Jt(s,["nav-prev-decade","nav-prev-year","nav-prev-month","nav-this-month","nav-next-month","nav-next-year","nav-next-decade"]),key:"calendar",ref:"calendar"},u);return t(rp,{staticClass:"b-form-datepicker",props:c(c({},ps(hp,r)),{},{formattedValue:e?this.formattedValue:"",id:this.safeId(),lang:this.computedLang,menuClass:[{"bg-dark":o,"text-light":o},this.menuClass],placeholder:l,rtl:this.isRTL,value:e}),on:{show:this.onShow,shown:this.onShown,hidden:this.onHidden},scopedSlots:a({},Eo,s["button-content"]||this.defaultButtonFn),ref:"control"},[p])}}),mp=me({components:{BFormDatepicker:pp,BDatepicker:pp}}),vp=ys("value",{type:[uo,_t],defaultValue:null,validator:function(t){return""===t?(le(Tp,ci),!0):Pt(t)||Cp(t)}}),bp=vp.mixin,gp=vp.props,yp=vp.prop,wp=vp.event,Tp='Setting "value"/"v-model" to an empty string for reset is deprecated. Set to "null" instead.',Cp=function t(e){return function(t){return t instanceof _t}(e)||Rt(e)&&e.every((function(e){return t(e)}))},xp=function(t){return Ot(t.getAsEntry)?t.getAsEntry():Ot(t.webkitGetAsEntry)?t.webkitGetAsEntry():null},Sp=function t(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return new Promise((function(n){var o=[];!function r(){e.readEntries((function(e){0===e.length?n(Promise.all(o).then((function(t){return sr(t)}))):(o.push(Promise.all(e.map((function(e){if(e){if(e.isDirectory)return t(e.createReader(),"".concat(i).concat(e.name,"/"));if(e.isFile)return new Promise((function(t){e.file((function(e){e.$path="".concat(i).concat(e.name),t(e)}))}))}return null})).filter(ne))),r())}))}()}))},kp=vs(ee(c(c(c(c(c(c(c({},fc),gp),Tf),xf),Bf),kf),{},{accept:hs(go,""),browseText:hs(go,"Browse"),capture:hs(ho,!1),directory:hs(ho,!1),dropPlaceholder:hs(go,"Drop files here"),fileNameFormatter:hs(po),multiple:hs(ho,!1),noDrop:hs(ho,!1),noDropPlaceholder:hs(go,"Not allowed"),noTraverse:hs(ho,!1),placeholder:hs(go,"No file chosen")})),ci),$p=i.default.extend({name:ci,mixins:[Za,pc,bp,Cs,Cf,_f,Sf,Cs],inheritAttrs:!1,props:kp,data:function(){return{files:[],dragging:!1,dropAllowed:!this.noDrop,hasFocus:!1}},computed:{computedAccept:function(){var t=this.accept;return 0===(t=(t||"").trim().split(/[,\s]+/).filter(ne)).length?null:t.map((function(t){var e="name",i="^",n="$";return tt.test(t)?i="":(e="type",dt.test(t)&&(n=".+$",t=t.slice(0,-1))),t=mr(t),{rx:new RegExp("".concat(i).concat(t).concat(n)),prop:e}}))},computedCapture:function(){var t=this.capture;return!0===t||""===t||(t||null)},computedAttrs:function(){var t=this.name,e=this.disabled,i=this.required,n=this.form,o=this.computedCapture,r=this.accept,s=this.multiple,a=this.directory;return c(c({},this.bvAttrs),{},{type:"file",id:this.safeId(),name:t,disabled:e,required:i,form:n||null,capture:o,accept:r||null,multiple:s,directory:a,webkitdirectory:a,"aria-required":i?"true":null})},computedFileNameFormatter:function(){var t=this.fileNameFormatter;return gs(t)?t:this.defaultFileNameFormatter},clonedFiles:function(){return ie(this.files)},flattenedFiles:function(){return ar(this.files)},fileNames:function(){return this.flattenedFiles.map((function(t){return t.name}))},labelContent:function(){if(this.dragging&&!this.noDrop)return this.normalizeSlot("drop-placeholder",{allowed:this.dropAllowed})||(this.dropAllowed?this.dropPlaceholder:this.$createElement("span",{staticClass:"text-danger"},this.noDropPlaceholder));if(0===this.files.length)return this.normalizeSlot("placeholder")||this.placeholder;var t=this.flattenedFiles,e=this.clonedFiles,i=this.fileNames,n=this.computedFileNameFormatter;return this.hasNormalizedSlot(Mo)?this.normalizeSlot(Mo,{files:t,filesTraversed:e,names:i}):n(t,e,i)}},watch:(Ch={},a(Ch,yp,(function(t){(!t||Rt(t)&&0===t.length)&&this.reset()})),a(Ch,"files",(function(t,e){if(!Ua(t,e)){var i=this.multiple,n=this.noTraverse,o=!i||n?ar(t):t;this.$emit(wp,i?o:o[0]||null)}})),Ch),created:function(){this.$_form=null},mounted:function(){var t=Er("form",this.$el);t&&(Ss(t,"reset",this.reset,ao),this.$_form=t)},beforeDestroy:function(){var t=this.$_form;t&&ks(t,"reset",this.reset,ao)},methods:{isFileValid:function(t){if(!t)return!1;var e=this.computedAccept;return!e||e.some((function(e){return e.rx.test(t[e.prop])}))},isFilesArrayValid:function(t){var e=this;return Rt(t)?t.every((function(t){return e.isFileValid(t)})):this.isFileValid(t)},defaultFileNameFormatter:function(t,e,i){return i.join(", ")},setFiles:function(t){this.dropAllowed=!this.noDrop,this.dragging=!1,this.files=this.multiple?this.directory?t:ar(t):ar(t).slice(0,1)},setInputFiles:function(t){try{var e=new ClipboardEvent("").clipboardData||new DataTransfer;ar(ie(t)).forEach((function(t){delete t.$path,e.items.add(t)})),this.$refs.input.files=e.files}catch(t){}},reset:function(){try{var t=this.$refs.input;t.value="",t.type="",t.type="file"}catch(t){}this.files=[]},handleFiles:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(e){var i=t.filter(this.isFilesArrayValid);i.length>0&&(this.setFiles(i),this.setInputFiles(i))}else this.setFiles(t)},focusHandler:function(t){this.plain||"focusout"===t.type?this.hasFocus=!1:this.hasFocus=!0},onChange:function(t){var e=this,i=t.type,n=t.target,o=t.dataTransfer,r=void 0===o?{}:o,s="drop"===i;this.$emit($n,t);var a=ir(r.items||[]);if(A&&a.length>0&&!It(xp(a[0])))(function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return Promise.all(ir(t).filter((function(t){return"file"===t.kind})).map((function(t){var i=xp(t);if(i){if(i.isDirectory&&e)return Sp(i.createReader(),"".concat(i.name,"/"));if(i.isFile)return new Promise((function(t){i.file((function(e){e.$path="",t(e)}))}))}return null})).filter(ne))})(a,this.directory).then((function(t){return e.handleFiles(t,s)}));else{var l=ir(n.files||r.files||[]).map((function(t){return t.$path=t.webkitRelativePath||"",t}));this.handleFiles(l,s)}},onDragenter:function(t){Bs(t),this.dragging=!0;var e=t.dataTransfer,i=void 0===e?{}:e;if(this.noDrop||this.disabled||!this.dropAllowed)return i.dropEffect="none",void(this.dropAllowed=!1);i.dropEffect="copy"},onDragover:function(t){Bs(t),this.dragging=!0;var e=t.dataTransfer,i=void 0===e?{}:e;if(this.noDrop||this.disabled||!this.dropAllowed)return i.dropEffect="none",void(this.dropAllowed=!1);i.dropEffect="copy"},onDragleave:function(t){var e=this;Bs(t),this.$nextTick((function(){e.dragging=!1,e.dropAllowed=!e.noDrop}))},onDrop:function(t){var e=this;Bs(t),this.dragging=!1,this.noDrop||this.disabled||!this.dropAllowed?this.$nextTick((function(){e.dropAllowed=!e.noDrop})):this.onChange(t)}},render:function(t){var e=this.custom,i=this.plain,n=this.size,o=this.dragging,r=this.stateClass,s=this.bvAttrs,l=t("input",{class:[{"form-control-file":i,"custom-file-input":e,focus:e&&this.hasFocus},r],style:e?{zIndex:-5}:{},attrs:this.computedAttrs,on:{change:this.onChange,focusin:this.focusHandler,focusout:this.focusHandler,reset:this.reset},ref:"input"});if(i)return l;var c=t("label",{staticClass:"custom-file-label",class:{dragging:o},attrs:{for:this.safeId(),"data-browse":this.browseText||null}},[t("span",{staticClass:"d-block form-file-text",style:{pointerEvents:"none"}},[this.labelContent])]);return t("div",{staticClass:"custom-file b-form-file",class:[a({},"b-custom-control-".concat(n),n),r,s.class],style:s.style,attrs:{id:this.safeId("_BV_file_outer_")},on:{dragenter:this.onDragenter,dragover:this.onDragover,dragleave:this.onDragleave,drop:this.onDrop}},[l,c])}}),Bp=me({components:{BFormFile:$p,BFile:$p}}),_p=function(t){return"\\"+t},Dp=function(t){var e=(t=vr(t)).length,i=t.charCodeAt(0);return t.split("").reduce((function(n,o,r){var s=t.charCodeAt(r);return 0===s?n+"īŋŊ":127===s||s>=1&&s<=31||0===r&&s>=48&&s<=57||1===r&&s>=48&&s<=57&&45===i?n+_p("".concat(s.toString(16)," ")):0===r&&45===s&&1===e?n+_p(o):s>=128||45===s||95===s||s>=48&&s<=57||s>=65&&s<=90||s>=97&&s<=122?n+o:n+_p(o)}),"")},Fp=["auto","start","end","center","baseline","stretch"],Ip=is((function(t,e,i){var n=t;if(!Pt(i)&&!1!==i)return e&&(n+="-".concat(e)),"col"!==t||""!==i&&!0!==i?(n+="-".concat(i),gr(n)):gr(n)})),Pp=Wt(null),Op={name:Ye,functional:!0,get props(){return delete this.props,this.props=(t=ls().filter(ne),e=t.reduce((function(t,e){return t[e]=hs(So),t}),Wt(null)),i=t.reduce((function(t,e){return t[ds(e,"offset")]=hs(_o),t}),Wt(null)),n=t.reduce((function(t,e){return t[ds(e,"order")]=hs(_o),t}),Wt(null)),Pp=Gt(Wt(null),{col:Kt(e),offset:Kt(i),order:Kt(n)}),vs(ee(c(c(c(c({},e),i),n),{},{alignSelf:hs(go,null,(function(t){return nr(Fp,t)})),col:hs(ho,!1),cols:hs(_o),offset:hs(_o),order:hs(_o),tag:hs(go,"div")})),Ye));var t,e,i,n},render:function(t,e){var i,n=e.props,o=e.data,r=e.children,s=n.cols,l=n.offset,c=n.order,u=n.alignSelf,d=[];for(var h in Pp)for(var f=Pp[h],p=0;p0||Kt(this.labelColProps).length>0}},watch:{ariaDescribedby:function(t,e){t!==e&&this.updateAriaDescribedby(t,e)}},mounted:function(){var t=this;this.$nextTick((function(){t.updateAriaDescribedby(t.ariaDescribedby)}))},methods:{getAlignClasses:function(t,e){return ls().reduce((function(i,n){var o=t[ds(n,"".concat(e,"Align"))]||null;return o&&i.push(["text",n,o].filter(ne).join("-")),i}),[])},getColProps:function(t,e){return ls().reduce((function(i,n){var o=t[ds(n,"".concat(e,"Cols"))];return Vt(o=""===o||(o||!1))||"auto"===o||(o=(o=lr(o,0))>0&&o),o&&(i[n||(Vt(o)?"col":"cols")]=o),i}),{})},updateAriaDescribedby:function(t,e){var i=this.labelFor;if(M&&i){var n=Or("#".concat(Dp(i)),this.$refs.content);if(n){var o="aria-describedby",r=(t||"").split(ut),s=(e||"").split(ut),a=(jr(n,o)||"").split(ut).filter((function(t){return!nr(s,t)})).concat(r).filter((function(t,e,i){return i.indexOf(t)===e})).filter(ne).join(" ").trim();a?zr(n,o,a):Nr(n,o)}}},onLegendClick:function(t){if(!this.labelFor){var e=t.target,i=e?e.tagName:"";if(-1===Lp.indexOf(i)){var n=Pr(Ep,this.$refs.content).filter(Dr);1===n.length&&ts(n[0])}}}},render:function(t){var e=this.computedState,i=this.feedbackAriaLive,n=this.isHorizontal,o=this.labelFor,r=this.normalizeSlot,s=this.safeId,a=this.tooltip,l=s(),u=!o,d=t(),h=r(jo)||this.label,f=h?s("_BV_label_"):null;if(h||n){var p=this.labelSize,m=this.labelColProps,v=u?"legend":"label";this.labelSrOnly?(h&&(d=t(v,{class:"sr-only",attrs:{id:f,for:o||null}},[h])),d=t(n?Op:"div",{props:n?m:{}},[d])):d=t(n?Op:v,{on:u?{click:this.onLegendClick}:{},props:n?c(c({},m),{},{tag:v}):{},attrs:{id:f,for:o||null,tabindex:u?"-1":null},class:[u?"bv-no-focus-ring":"",n||u?"col-form-label":"",!n&&u?"pt-0":"",n||u?"":"d-block",p?"col-form-label-".concat(p):"",this.labelAlignClasses,this.labelClass]},[h])}var b=t(),g=r("invalid-feedback")||this.invalidFeedback,y=g?s("_BV_feedback_invalid_"):null;g&&(b=t(ff,{props:{ariaLive:i,id:y,role:i?"alert":null,state:e,tooltip:a},attrs:{tabindex:g?"-1":null}},[g]));var w=t(),T=r("valid-feedback")||this.validFeedback,C=T?s("_BV_feedback_valid_"):null;T&&(w=t(mf,{props:{ariaLive:i,id:C,role:i?"alert":null,state:e,tooltip:a},attrs:{tabindex:T?"-1":null}},[T]));var x=t(),S=r("description")||this.description,k=S?s("_BV_description_"):null;S&&(x=t(df,{attrs:{id:k,tabindex:"-1"}},[S]));var $=this.ariaDescribedby=[k,!1===e?y:null,!0===e?C:null].filter(ne).join(" ")||null,B=t(n?Op:"div",{props:n?this.contentColProps:{},ref:"content"},[r(Ao,{ariaDescribedby:$,descriptionId:k,id:l,labelId:f})||t(),b,w,x]);return t(u?"fieldset":n?bf:"div",{staticClass:"form-group",class:[{"was-validated":this.validated},this.stateClass],attrs:{id:l,disabled:u?this.disabled:null,role:u?null:"group","aria-invalid":this.computedAriaInvalid,"aria-labelledby":u&&n?f:null}},n&&u?[t(bf,[d,B])]:[d,B])}},Rp=me({components:{BFormGroup:Ap,BFormFieldset:Ap}}),Mp=i.default.extend({computed:{selectionStart:{cache:!1,get:function(){return this.$refs.input.selectionStart},set:function(t){this.$refs.input.selectionStart=t}},selectionEnd:{cache:!1,get:function(){return this.$refs.input.selectionEnd},set:function(t){this.$refs.input.selectionEnd=t}},selectionDirection:{cache:!1,get:function(){return this.$refs.input.selectionDirection},set:function(t){this.$refs.input.selectionDirection=t}}},methods:{select:function(){var t;(t=this.$refs.input).select.apply(t,arguments)},setSelectionRange:function(){var t;(t=this.$refs.input).setSelectionRange.apply(t,arguments)},setRangeText:function(){var t;(t=this.$refs.input).setRangeText.apply(t,arguments)}}}),Hp=ys("value",{type:_o,defaultValue:"",event:"update"}),zp=Hp.mixin,Np=Hp.props,jp=Hp.prop,Gp=Hp.event,Wp=vs(ee(c(c({},Np),{},{ariaInvalid:hs(ko,!1),autocomplete:hs(go),debounce:hs(_o,0),formatter:hs(po),lazy:hs(ho,!1),lazyFormatter:hs(ho,!1),number:hs(ho,!1),placeholder:hs(go),plaintext:hs(ho,!1),readonly:hs(ho,!1),trim:hs(ho,!1)})),"formTextControls"),Yp=i.default.extend({mixins:[zp],props:Wp,data:function(){var t=this[jp];return{localValue:vr(t),vModelValue:this.modifyValue(t)}},computed:{computedClass:function(){var t=this.plaintext,e=this.type,i="range"===e,n="color"===e;return[{"custom-range":i,"form-control-plaintext":t&&!i&&!n,"form-control":n||!t&&!i},this.sizeFormClass,this.stateClass]},computedDebounce:function(){return Us(lr(this.debounce,0),0)},hasFormatter:function(){return gs(this.formatter)}},watch:a({},jp,(function(t){var e=vr(t),i=this.modifyValue(t);e===this.localValue&&i===this.vModelValue||(this.clearDebounce(),this.localValue=e,this.vModelValue=i)})),created:function(){this.$_inputDebounceTimer=null},mounted:function(){this.$on(oo,this.clearDebounce)},beforeDestroy:function(){this.clearDebounce()},methods:{clearDebounce:function(){clearTimeout(this.$_inputDebounceTimer),this.$_inputDebounceTimer=null},formatValue:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return t=vr(t),!this.hasFormatter||this.lazyFormatter&&!i||(t=this.formatter(t,e)),t},modifyValue:function(t){return t=vr(t),this.trim&&(t=t.trim()),this.number&&(t=cr(t,t)),t},updateValue:function(t){var e=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=this.lazy;if(!n||i){this.clearDebounce();var o=function(){if((t=e.modifyValue(t))!==e.vModelValue)e.vModelValue=t,e.$emit(Gp,t);else if(e.hasFormatter){var i=e.$refs.input;i&&t!==i.value&&(i.value=t)}},r=this.computedDebounce;r>0&&!n&&!i?this.$_inputDebounceTimer=setTimeout(o,r):o()}},onInput:function(t){if(!t.target.composing){var e=t.target.value,i=this.formatValue(e,t);!1===i||t.defaultPrevented?Bs(t,{propagation:!1}):(this.localValue=i,this.updateValue(i),this.$emit(jn,i))}},onChange:function(t){var e=t.target.value,i=this.formatValue(e,t);!1===i||t.defaultPrevented?Bs(t,{propagation:!1}):(this.localValue=i,this.updateValue(i,!0),this.$emit($n,i))},onBlur:function(t){var e=t.target.value,i=this.formatValue(e,t,!0);!1!==i&&(this.localValue=vr(this.modifyValue(i)),this.updateValue(i,!0)),this.$emit("blur",t)},focus:function(){this.disabled||ts(this.$el)},blur:function(){this.disabled||es(this.$el)}}}),Up=i.default.extend({computed:{validity:{cache:!1,get:function(){return this.$refs.input.validity}},validationMessage:{cache:!1,get:function(){return this.$refs.input.validationMessage}},willValidate:{cache:!1,get:function(){return this.$refs.input.willValidate}}},methods:{setCustomValidity:function(){var t;return(t=this.$refs.input).setCustomValidity.apply(t,arguments)},checkValidity:function(){var t;return(t=this.$refs.input).checkValidity.apply(t,arguments)},reportValidity:function(){var t;return(t=this.$refs.input).reportValidity.apply(t,arguments)}}}),qp=["text","password","email","number","url","tel","search","range","color","date","time","datetime","datetime-local","month","week"],Kp=vs(ee(c(c(c(c(c(c({},fc),Tf),kf),Bf),Wp),{},{list:hs(go),max:hs(_o),min:hs(_o),noWheel:hs(ho,!1),step:hs(_o),type:hs(go,"text",(function(t){return nr(qp,t)}))})),di),Xp=i.default.extend({name:di,mixins:[Qa,pc,Cf,$f,_f,Yp,Mp,Up],props:Kp,computed:{localType:function(){var t=this.type;return nr(qp,t)?t:"text"},computedAttrs:function(){var t=this.localType,e=this.name,i=this.form,n=this.disabled,o=this.placeholder,r=this.required,s=this.min,a=this.max,l=this.step;return{id:this.safeId(),name:e,form:i,type:t,disabled:n,placeholder:o,required:r,autocomplete:this.autocomplete||null,readonly:this.readonly||this.plaintext,min:s,max:a,step:l,list:"password"!==t?this.list:null,"aria-required":r?"true":null,"aria-invalid":this.computedAriaInvalid}},computedListeners:function(){return c(c({},this.bvListeners),{},{input:this.onInput,change:this.onChange,blur:this.onBlur})}},watch:{noWheel:function(t){this.setWheelStopper(t)}},mounted:function(){this.setWheelStopper(this.noWheel)},deactivated:function(){this.setWheelStopper(!1)},activated:function(){this.setWheelStopper(this.noWheel)},beforeDestroy:function(){this.setWheelStopper(!1)},methods:{setWheelStopper:function(t){var e=this.$el;$s(t,e,"focus",this.onWheelFocus),$s(t,e,"blur",this.onWheelBlur),t||ks(document,"wheel",this.stopWheel)},onWheelFocus:function(){Ss(document,"wheel",this.stopWheel)},onWheelBlur:function(){ks(document,"wheel",this.stopWheel)},stopWheel:function(t){Bs(t,{propagation:!1}),es(this.$el)}},render:function(t){return t("input",{class:this.computedClass,attrs:this.computedAttrs,domProps:{value:this.localValue},on:this.computedListeners,ref:"input"})}}),Zp=me({components:{BFormInput:Xp,BInput:Xp}}),Jp=vs(qf,pi),Qp=i.default.extend({name:pi,mixins:[Kf],provide:function(){return{bvRadioGroup:this}},props:Jp,computed:{isRadioGroup:function(){return!0}}}),tm=me({components:{BFormRadio:zf,BRadio:zf,BFormRadioGroup:Qp,BRadioGroup:Qp}}),em=ys("value",{type:_o,event:$n}),im=em.mixin,nm=em.props,om=em.prop,rm=em.event,sm=function(t){return Us(3,lr(t,5))},am=function(t,e,i){return Us(Ys(t,i),e)},lm=i.default.extend({name:"BVFormRatingStar",mixins:[Cs],props:{disabled:hs(ho,!1),focused:hs(ho,!1),hasClear:hs(ho,!1),rating:hs(mo,0),readonly:hs(ho,!1),star:hs(mo,0),variant:hs(go)},methods:{onClick:function(t){this.disabled||this.readonly||(Bs(t,{propagation:!1}),this.$emit(Qn,this.star))}},render:function(t){var e=this.rating,i=this.star,n=this.focused,o=this.hasClear,r=this.variant,s=this.disabled,a=this.readonly,l=o?0:1,c=e>=i?"full":e>=i-.5?"half":"empty",u={variant:r,disabled:s,readonly:a};return t("span",{staticClass:"b-rating-star",class:{focused:n&&e===i||!lr(e)&&i===l,"b-rating-star-empty":"empty"===c,"b-rating-star-half":"half"===c,"b-rating-star-full":"full"===c},attrs:{tabindex:s||a?null:"-1"},on:{click:this.onClick}},[t("span",{staticClass:"b-rating-icon"},[this.normalizeSlot(c,u)])])}}),cm=vs(ee(c(c(c(c(c({},fc),nm),Qt(Tf,["required","autofocus"])),kf),{},{color:hs(go),iconClear:hs(go,"x"),iconEmpty:hs(go,"star"),iconFull:hs(go,"star-fill"),iconHalf:hs(go,"star-half"),inline:hs(ho,!1),locale:hs(Co),noBorder:hs(ho,!1),precision:hs(_o),readonly:hs(ho,!1),showClear:hs(ho,!1),showValue:hs(ho,!1),showValueMax:hs(ho,!1),stars:hs(_o,5,(function(t){return lr(t)>=3})),variant:hs(go)})),mi),um=i.default.extend({name:mi,components:{BIconStar:Fa,BIconStarHalf:Pa,BIconStarFill:Ia,BIconX:Oa},mixins:[pc,im,$f],props:cm,data:function(){var t=cr(this[om],null),e=sm(this.stars);return{localValue:It(t)?null:am(t,0,e),hasFocus:!1}},computed:{computedStars:function(){return sm(this.stars)},computedRating:function(){var t=cr(this.localValue,0),e=lr(this.precision,3);return am(cr(t.toFixed(e)),0,this.computedStars)},computedLocale:function(){var t=or(this.locale).filter(ne);return new Intl.NumberFormat(t).resolvedOptions().locale},isInteractive:function(){return!this.disabled&&!this.readonly},isRTL:function(){return hc(this.computedLocale)},formattedRating:function(){var t=lr(this.precision),e=this.showValueMax,i=this.computedLocale,n={notation:"standard",minimumFractionDigits:isNaN(t)?0:t,maximumFractionDigits:isNaN(t)?3:t},o=this.computedStars.toLocaleString(i),r=this.localValue;return r=It(r)?e?"-":"":r.toLocaleString(i,n),e?"".concat(r,"/").concat(o):r}},watch:(xh={},a(xh,om,(function(t,e){if(t!==e){var i=cr(t,null);this.localValue=It(i)?null:am(i,0,this.computedStars)}})),a(xh,"localValue",(function(t,e){t!==e&&t!==(this.value||0)&&this.$emit(rm,t||null)})),a(xh,"disabled",(function(t){t&&(this.hasFocus=!1,this.blur())})),xh),methods:{focus:function(){this.disabled||ts(this.$el)},blur:function(){this.disabled||es(this.$el)},onKeydown:function(t){var e=t.keyCode;if(this.isInteractive&&nr([Na,Ra,ja,Wa],e)){Bs(t,{propagation:!1});var i=lr(this.localValue,0),n=this.showClear?0:1,o=this.computedStars,r=this.isRTL?-1:1;e===Na?this.localValue=am(i-r,n,o)||null:e===ja?this.localValue=am(i+r,n,o):e===Ra?this.localValue=am(i-1,n,o)||null:e===Wa&&(this.localValue=am(i+1,n,o))}},onSelected:function(t){this.isInteractive&&(this.localValue=t)},onFocus:function(t){this.hasFocus=!!this.isInteractive&&"focus"===t.type},renderIcon:function(t){return this.$createElement(Aa,{props:{icon:t,variant:this.disabled||this.color?null:this.variant||null}})},iconEmptyFn:function(){return this.renderIcon(this.iconEmpty)},iconHalfFn:function(){return this.renderIcon(this.iconHalf)},iconFullFn:function(){return this.renderIcon(this.iconFull)},iconClearFn:function(){return this.$createElement(Aa,{props:{icon:this.iconClear}})}},render:function(t){var e=this,i=this.disabled,n=this.readonly,o=this.name,r=this.form,s=this.inline,a=this.variant,l=this.color,c=this.noBorder,u=this.hasFocus,d=this.computedRating,h=this.computedStars,f=this.formattedRating,p=this.showClear,m=this.isRTL,v=this.isInteractive,b=this.$scopedSlots,g=[];if(p&&!i&&!n){var y=t("span",{staticClass:"b-rating-icon"},[(b["icon-clear"]||this.iconClearFn)()]);g.push(t("span",{staticClass:"b-rating-star b-rating-star-clear flex-grow-1",class:{focused:u&&0===d},attrs:{tabindex:v?"-1":null},on:{click:function(){return e.onSelected(null)}},key:"clear"},[y]))}for(var w=0;w1&&void 0!==arguments[1]?arguments[1]:null;if(Ht(t)){var i=re(t,this.valueField),n=re(t,this.textField),o=re(t,this.optionsField,null);return It(o)?{value:Ft(i)?e||n:i,text:String(Ft(n)?e:n),html:re(t,this.htmlField),disabled:Boolean(re(t,this.disabledField))}:{label:String(re(t,this.labelField)||n),options:this.normalizeOptions(o)}}return{value:e||t,text:String(t),disabled:!1}}}}),ym=vs({disabled:hs(ho,!1),value:hs(co,void 0,!0)},gi),wm=i.default.extend({name:gi,functional:!0,props:ym,render:function(t,e){var i=e.props,n=e.data,o=e.children,r=i.value;return t("option",F(n,{attrs:{disabled:i.disabled},domProps:{value:r}}),o)}}),Tm=vs(ee(c(c({},sf),{},{label:hs(go,void 0,!0)})),yi),Cm=i.default.extend({name:yi,mixins:[Cs,af],props:Tm,render:function(t){var e=this.label,i=this.formOptions.map((function(e,i){var n=e.value,o=e.text,r=e.html,s=e.disabled;return t(wm,{attrs:{value:n,disabled:s},domProps:Fl(r,o),key:"option_".concat(i)})}));return t("optgroup",{attrs:{label:e}},[this.normalizeSlot(Ho),i,this.normalizeSlot()])}}),xm=vs(ee(c(c(c(c(c(c(c({},fc),pm),Tf),xf),kf),Bf),{},{ariaInvalid:hs(ko,!1),multiple:hs(ho,!1),selectSize:hs(mo,0)})),bi),Sm=i.default.extend({name:bi,mixins:[pc,fm,Cf,$f,_f,Sf,gm,Cs],props:xm,data:function(){return{localValue:this[mm]}},computed:{computedSelectSize:function(){return this.plain||0!==this.selectSize?this.selectSize:null},inputClass:function(){return[this.plain?"form-control":"custom-select",this.size&&this.plain?"form-control-".concat(this.size):null,this.size&&!this.plain?"custom-select-".concat(this.size):null,this.stateClass]}},watch:{value:function(t){this.localValue=t},localValue:function(){this.$emit(vm,this.localValue)}},methods:{focus:function(){ts(this.$refs.input)},blur:function(){es(this.$refs.input)},onChange:function(t){var e=this,i=t.target,n=ir(i.options).filter((function(t){return t.selected})).map((function(t){return"_value"in t?t._value:t.value}));this.localValue=i.multiple?n:n[0],this.$nextTick((function(){e.$emit($n,e.localValue)}))}},render:function(t){var e=this.name,i=this.disabled,n=this.required,o=this.computedSelectSize,r=this.localValue,s=this.formOptions.map((function(e,i){var n=e.value,o=e.label,r=e.options,s=e.disabled,a="option_".concat(i);return Rt(r)?t(Cm,{props:{label:o,options:r},key:a}):t(wm,{props:{value:n,disabled:s},domProps:Fl(e.html,e.text),key:a})}));return t("select",{class:this.inputClass,attrs:{id:this.safeId(),name:e,form:this.form||null,multiple:this.multiple||null,size:o,disabled:i,required:n,"aria-required":n?"true":null,"aria-invalid":this.computedAriaInvalid},on:{change:this.onChange},directives:[{name:"model",value:r}],ref:"input"},[this.normalizeSlot(Ho),s,this.normalizeSlot()])}}),km=me({components:{BFormSelect:Sm,BFormSelectOption:wm,BFormSelectOptionGroup:Cm,BSelect:Sm,BSelectOption:wm,BSelectOptionGroup:Cm}}),$m=ys("value",{type:xo}),Bm=$m.mixin,_m=$m.props,Dm=$m.prop,Fm=$m.event,Im=[Wa,Ra,za,Ma,33,34],Pm=vs(ee(c(c(c(c(c(c({},fc),_m),Qt(Tf,["required","autofocus"])),kf),Bf),{},{ariaControls:hs(go),ariaLabel:hs(go),formatterFn:hs(po),inline:hs(ho,!1),labelDecrement:hs(go,"Decrement"),labelIncrement:hs(go,"Increment"),locale:hs(Co),max:hs(_o,100),min:hs(_o,1),placeholder:hs(go),readonly:hs(ho,!1),repeatDelay:hs(_o,500),repeatInterval:hs(_o,100),repeatStepMultiplier:hs(_o,4),repeatThreshold:hs(_o,10),step:hs(_o,1),vertical:hs(ho,!1),wrap:hs(ho,!1)})),wi),Om=i.default.extend({name:wi,mixins:[Za,pc,Bm,$f,_f,Cs],inheritAttrs:!1,props:Pm,data:function(){return{localValue:cr(this[Dm],null),hasFocus:!1}},computed:{spinId:function(){return this.safeId()},computedInline:function(){return this.inline&&!this.vertical},computedReadonly:function(){return this.readonly&&!this.disabled},computedRequired:function(){return this.required&&!this.computedReadonly&&!this.disabled},computedStep:function(){return cr(this.step,1)},computedMin:function(){return cr(this.min,1)},computedMax:function(){var t=cr(this.max,100),e=this.computedStep,i=this.computedMin;return Xs((t-i)/e)*e+i},computedDelay:function(){var t=lr(this.repeatDelay,0);return t>0?t:500},computedInterval:function(){var t=lr(this.repeatInterval,0);return t>0?t:100},computedThreshold:function(){return Us(lr(this.repeatThreshold,10),1)},computedStepMultiplier:function(){return Us(lr(this.repeatStepMultiplier,4),1)},computedPrecision:function(){var t=this.computedStep;return Xs(t)===t?0:(t.toString().split(".")[1]||"").length},computedMultiplier:function(){return Zs(10,this.computedPrecision||0)},valueAsFixed:function(){var t=this.localValue;return It(t)?"":t.toFixed(this.computedPrecision)},computedLocale:function(){var t=or(this.locale).filter(ne);return new Intl.NumberFormat(t).resolvedOptions().locale},computedRTL:function(){return hc(this.computedLocale)},defaultFormatter:function(){var t=this.computedPrecision;return new Intl.NumberFormat(this.computedLocale,{style:"decimal",useGrouping:!1,minimumIntegerDigits:1,minimumFractionDigits:t,maximumFractionDigits:t,notation:"standard"}).format},computedFormatter:function(){var t=this.formatterFn;return gs(t)?t:this.defaultFormatter},computedAttrs:function(){return c(c({},this.bvAttrs),{},{role:"group",lang:this.computedLocale,tabindex:this.disabled?null:"-1",title:this.ariaLabel})},computedSpinAttrs:function(){var t=this.spinId,e=this.localValue,i=this.computedRequired,n=this.disabled,o=this.state,r=this.computedFormatter,s=!It(e);return c(c({dir:this.computedRTL?"rtl":"ltr"},this.bvAttrs),{},{id:t,role:"spinbutton",tabindex:n?null:"0","aria-live":"off","aria-label":this.ariaLabel||null,"aria-controls":this.ariaControls||null,"aria-invalid":!1===o||!s&&i?"true":null,"aria-required":i?"true":null,"aria-valuemin":vr(this.computedMin),"aria-valuemax":vr(this.computedMax),"aria-valuenow":s?e:null,"aria-valuetext":s?r(e):null})}},watch:(Sh={},a(Sh,Dm,(function(t){this.localValue=cr(t,null)})),a(Sh,"localValue",(function(t){this.$emit(Fm,t)})),a(Sh,"disabled",(function(t){t&&this.clearRepeat()})),a(Sh,"readonly",(function(t){t&&this.clearRepeat()})),Sh),created:function(){this.$_autoDelayTimer=null,this.$_autoRepeatTimer=null,this.$_keyIsDown=!1},beforeDestroy:function(){this.clearRepeat()},deactivated:function(){this.clearRepeat()},methods:{focus:function(){this.disabled||ts(this.$refs.spinner)},blur:function(){this.disabled||es(this.$refs.spinner)},emitChange:function(){this.$emit($n,this.localValue)},stepValue:function(t){var e=this.localValue;if(!this.disabled&&!It(e)){var i=this.computedStep*t,n=this.computedMin,o=this.computedMax,r=this.computedMultiplier,s=this.wrap;e=Js((e-n)/i)*i+n+i,e=Js(e*r)/r,this.localValue=e>o?s?n:o:e0&&void 0!==arguments[0]?arguments[0]:1,e=this.localValue;It(e)?this.localValue=this.computedMin:this.stepValue(1*t)},stepDown:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,e=this.localValue;It(e)?this.localValue=this.wrap?this.computedMax:this.computedMin:this.stepValue(-1*t)},onKeydown:function(t){var e=t.keyCode,i=t.altKey,n=t.ctrlKey,o=t.metaKey;if(!(this.disabled||this.readonly||i||n||o)&&nr(Im,e)){if(Bs(t,{propagation:!1}),this.$_keyIsDown)return;this.resetTimers(),nr([Wa,Ra],e)?(this.$_keyIsDown=!0,e===Wa?this.handleStepRepeat(t,this.stepUp):e===Ra&&this.handleStepRepeat(t,this.stepDown)):33===e?this.stepUp(this.computedStepMultiplier):34===e?this.stepDown(this.computedStepMultiplier):e===za?this.localValue=this.computedMin:e===Ma&&(this.localValue=this.computedMax)}},onKeyup:function(t){var e=t.keyCode,i=t.altKey,n=t.ctrlKey,o=t.metaKey;this.disabled||this.readonly||i||n||o||nr(Im,e)&&(Bs(t,{propagation:!1}),this.resetTimers(),this.$_keyIsDown=!1,this.emitChange())},handleStepRepeat:function(t,e){var i=this,n=t||{},o=n.type,r=n.button;if(!this.disabled&&!this.readonly){if("mousedown"===o&&r)return;this.resetTimers(),e(1);var s=this.computedThreshold,a=this.computedStepMultiplier,l=this.computedDelay,c=this.computedInterval;this.$_autoDelayTimer=setTimeout((function(){var t=0;i.$_autoRepeatTimer=setInterval((function(){e(t0&&i.indexOf(t)===e}))},Wm=function(t){return Et(t)?t:Nt(t)&&t.target.value||""},Ym=vs(ee(c(c(c(c(c(c({},fc),Mm),Tf),kf),Bf),{},{addButtonText:hs(go,"Add"),addButtonVariant:hs(go,"outline-secondary"),addOnChange:hs(ho,!1),duplicateTagText:hs(go,"Duplicate tag(s)"),ignoreInputFocusSelector:hs(Co,jm),inputAttrs:hs(vo,{}),inputClass:hs(To),inputId:hs(go),inputType:hs(go,"text",(function(t){return nr(Nm,t)})),invalidTagText:hs(go,"Invalid tag(s)"),limit:hs(mo),limitTagsText:hs(go,"Tag limit reached"),noAddOnEnter:hs(ho,!1),noOuterFocus:hs(ho,!1),noTagRemove:hs(ho,!1),placeholder:hs(go,"Add tag..."),removeOnDelete:hs(ho,!1),separator:hs(Co),tagClass:hs(To),tagPills:hs(ho,!1),tagRemoveLabel:hs(go,"Remove tag"),tagRemovedLabel:hs(go,"Tag removed"),tagValidator:hs(po),tagVariant:hs(go,"secondary")})),Ci),Um=i.default.extend({name:Ci,mixins:[pc,Rm,Cf,$f,_f,Cs],props:Ym,data:function(){return{hasFocus:!1,newTag:"",tags:[],removedTags:[],tagsState:{all:[],valid:[],invalid:[],duplicate:[]}}},computed:{computedInputId:function(){return this.inputId||this.safeId("__input__")},computedInputType:function(){return nr(Nm,this.inputType)?this.inputType:"text"},computedInputAttrs:function(){var t=this.disabled,e=this.form;return c(c({},this.inputAttrs),{},{id:this.computedInputId,value:this.newTag,disabled:t,form:e})},computedInputHandlers:function(){return{input:this.onInputInput,change:this.onInputChange,keydown:this.onInputKeydown,reset:this.reset}},computedSeparator:function(){return or(this.separator).filter(Et).filter(ne).join("")},computedSeparatorRegExp:function(){var t=this.computedSeparator;return t?new RegExp("[".concat(mr(t).replace(ct,"\\s"),"]+")):null},computedJoiner:function(){var t=this.computedSeparator.charAt(0);return" "!==t?"".concat(t," "):t},computeIgnoreInputFocusSelector:function(){return or(this.ignoreInputFocusSelector).filter(ne).join(",").trim()},disableAddButton:function(){var t=this,e=br(this.newTag);return""===e||!this.splitTags(e).some((function(e){return!nr(t.tags,e)&&t.validateTag(e)}))},duplicateTags:function(){return this.tagsState.duplicate},hasDuplicateTags:function(){return this.duplicateTags.length>0},invalidTags:function(){return this.tagsState.invalid},hasInvalidTags:function(){return this.invalidTags.length>0},isLimitReached:function(){var t=this.limit;return Lt(t)&&t>=0&&this.tags.length>=t}},watch:(kh={},a(kh,Hm,(function(t){this.tags=Gm(t)})),a(kh,"tags",(function(t,e){Ua(t,this[Hm])||this.$emit(zm,t),Ua(t,e)||(t=or(t).filter(ne),e=or(e).filter(ne),this.removedTags=e.filter((function(e){return!nr(t,e)})))})),a(kh,"tagsState",(function(t,e){Ua(t,e)||this.$emit("tag-state",t.valid,t.invalid,t.duplicate)})),kh),created:function(){this.tags=Gm(this[Hm])},mounted:function(){var t=this,e=Er("form",this.$el);e&&(Ss(e,"reset",this.reset,ao),this.$on(oo,(function(){ks(e,"reset",t.reset,ao)})))},methods:{addTag:function(t){if(t=Et(t)?t:this.newTag,!this.disabled&&""!==br(t)&&!this.isLimitReached){var e=this.parseTags(t);if(e.valid.length>0||0===e.all.length)if(Vr(this.getInput(),"select"))this.newTag="";else{var i=[].concat(T(e.invalid),T(e.duplicate));this.newTag=e.all.filter((function(t){return nr(i,t)})).join(this.computedJoiner).concat(i.length>0?this.computedJoiner.charAt(0):"")}e.valid.length>0&&(this.tags=or(this.tags,e.valid)),this.tagsState=e,this.focus()}},removeTag:function(t){var e=this;this.disabled||(this.tags=this.tags.filter((function(e){return e!==t})),this.$nextTick((function(){e.focus()})))},reset:function(){var t=this;this.newTag="",this.tags=[],this.$nextTick((function(){t.removedTags=[],t.tagsState={all:[],valid:[],invalid:[],duplicate:[]}}))},onInputInput:function(t){if(!(this.disabled||Nt(t)&&t.target.composing)){var e=Wm(t),i=this.computedSeparatorRegExp;this.newTag!==e&&(this.newTag=e),e=vr(e).replace(ft,""),i&&i.test(e.slice(-1))?this.addTag():this.tagsState=""===e?{all:[],valid:[],invalid:[],duplicate:[]}:this.parseTags(e)}},onInputChange:function(t){if(!this.disabled&&this.addOnChange){var e=Wm(t);this.newTag!==e&&(this.newTag=e),this.addTag()}},onInputKeydown:function(t){if(!this.disabled&&Nt(t)){var e=t.keyCode,i=t.target.value||"";this.noAddOnEnter||e!==Ha?!this.removeOnDelete||8!==e&&46!==e||""!==i||(Bs(t,{propagation:!1}),this.tags=this.tags.slice(0,-1)):(Bs(t,{propagation:!1}),this.addTag())}},onClick:function(t){var e=this,i=this.computeIgnoreInputFocusSelector,n=t.target;this.disabled||_r(n)||i&&Er(i,n,!0)||this.$nextTick((function(){e.focus()}))},onFocusin:function(){this.hasFocus=!0},onFocusout:function(){this.hasFocus=!1},handleAutofocus:function(){var t=this;this.$nextTick((function(){xr((function(){t.autofocus&&!t.disabled&&t.focus()}))}))},focus:function(){this.disabled||ts(this.getInput())},blur:function(){this.disabled||es(this.getInput())},splitTags:function(t){t=vr(t);var e=this.computedSeparatorRegExp;return(e?t.split(e):[t]).map(br).filter(ne)},parseTags:function(t){var e=this,i=this.splitTags(t),n={all:i,valid:[],invalid:[],duplicate:[]};return i.forEach((function(t){nr(e.tags,t)||nr(n.valid,t)?nr(n.duplicate,t)||n.duplicate.push(t):e.validateTag(t)?n.valid.push(t):nr(n.invalid,t)||n.invalid.push(t)})),n},validateTag:function(t){var e=this.tagValidator;return!gs(e)||e(t)},getInput:function(){return Or("#".concat(Dp(this.computedInputId)),this.$el)},defaultRender:function(t){var e=t.addButtonText,i=t.addButtonVariant,n=t.addTag,o=t.disableAddButton,r=t.disabled,s=t.duplicateTagText,a=t.inputAttrs,l=t.inputClass,u=t.inputHandlers,d=t.inputType,h=t.invalidTagText,f=t.isDuplicate,p=t.isInvalid,m=t.isLimitReached,v=t.limitTagsText,b=t.noTagRemove,g=t.placeholder,y=t.removeTag,w=t.tagClass,T=t.tagPills,C=t.tagRemoveLabel,x=t.tagVariant,S=t.tags,k=this.$createElement,$=S.map((function(t){return t=vr(t),k(Lm,{class:w,props:{disabled:r,noRemove:b,pill:T,removeLabel:C,tag:"li",title:t,variant:x},on:{remove:function(){return y(t)}},key:"tags_".concat(t)},t)})),B=h&&p?this.safeId("__invalid_feedback__"):null,_=s&&f?this.safeId("__duplicate_feedback__"):null,D=v&&m?this.safeId("__limit_feedback__"):null,F=[a["aria-describedby"],B,_,D].filter(ne).join(" "),I=k("input",{staticClass:"b-form-tags-input w-100 flex-grow-1 p-0 m-0 bg-transparent border-0",class:l,style:{outline:0,minWidth:"5rem"},attrs:c(c({},a),{},{"aria-describedby":F||null,type:d,placeholder:g||null}),domProps:{value:a.value},on:u,directives:[{name:"model",value:a.value}],ref:"input"}),P=k(ml,{staticClass:"b-form-tags-button py-0",class:{invisible:o},style:{fontSize:"90%"},props:{disabled:o||m,variant:i},on:{click:function(){return n()}},ref:"button"},[this.normalizeSlot("add-button-text")||e]),O=this.safeId("__tag_list__"),V=k("li",{staticClass:"b-from-tags-field flex-grow-1",attrs:{role:"none","aria-live":"off","aria-controls":O},key:"tags_field"},[k("div",{staticClass:"d-flex",attrs:{role:"group"}},[I,P])]),E=k("ul",{staticClass:"b-form-tags-list list-unstyled mb-0 d-flex flex-wrap align-items-center",attrs:{id:O},key:"tags_list"},[$,V]),L=k();if(h||s||v){var A=this.computedJoiner,R=k();B&&(R=k(ff,{props:{id:B,forceShow:!0},key:"tags_invalid_feedback"},[this.invalidTagText,": ",this.invalidTags.join(A)]));var M=k();_&&(M=k(df,{props:{id:_},key:"tags_duplicate_feedback"},[this.duplicateTagText,": ",this.duplicateTags.join(A)]));var H=k();D&&(H=k(df,{props:{id:D},key:"tags_limit_feedback"},[v])),L=k("div",{attrs:{"aria-live":"polite","aria-atomic":"true"},key:"tags_feedback"},[R,M,H])}return[E,L]}},render:function(t){var e=this.name,i=this.disabled,n=this.required,o=this.form,r=this.tags,s=this.computedInputId,a=this.hasFocus,l=this.noOuterFocus,u=c({tags:r.slice(),inputAttrs:this.computedInputAttrs,inputType:this.computedInputType,inputHandlers:this.computedInputHandlers,removeTag:this.removeTag,addTag:this.addTag,reset:this.reset,inputId:s,isInvalid:this.hasInvalidTags,invalidTags:this.invalidTags.slice(),isDuplicate:this.hasDuplicateTags,duplicateTags:this.duplicateTags.slice(),isLimitReached:this.isLimitReached,disableAddButton:this.disableAddButton},Jt(this.$props,["addButtonText","addButtonVariant","disabled","duplicateTagText","form","inputClass","invalidTagText","limit","limitTagsText","noTagRemove","placeholder","required","separator","size","state","tagClass","tagPills","tagRemoveLabel","tagVariant"])),d=this.normalizeSlot(Ao,u)||this.defaultRender(u),h=t("output",{staticClass:"sr-only",attrs:{id:this.safeId("__selected_tags__"),role:"status",for:s,"aria-live":a?"polite":"off","aria-atomic":"true","aria-relevant":"additions text"}},this.tags.join(", ")),f=t("div",{staticClass:"sr-only",attrs:{id:this.safeId("__removed_tags__"),role:"status","aria-live":a?"assertive":"off","aria-atomic":"true"}},this.removedTags.length>0?"(".concat(this.tagRemovedLabel,") ").concat(this.removedTags.join(", ")):""),p=t();if(e&&!i){var m=r.length>0;p=(m?r:[""]).map((function(i){return t("input",{class:{"sr-only":!m},attrs:{type:m?"hidden":"text",value:i,required:n,name:e,form:o},key:"tag_input_".concat(i)})}))}return t("div",{staticClass:"b-form-tags form-control h-auto",class:[{focus:a&&!l&&!i,disabled:i},this.sizeFormClass,this.stateClass],attrs:{id:this.safeId(),role:"group",tabindex:i||l?null:"-1","aria-describedby":this.safeId("__selected_tags__")},on:{click:this.onClick,focusin:this.onFocusin,focusout:this.onFocusout}},[h,f,d,p])}}),qm=me({components:{BFormTags:Um,BTags:Um,BFormTag:Lm,BTag:Lm}}),Km=vs(ee(c(c(c(c(c(c({},fc),Tf),kf),Bf),Wp),{},{maxRows:hs(_o),noAutoShrink:hs(ho,!1),noResize:hs(ho,!1),rows:hs(_o,2),wrap:hs(go,"soft")})),Si),Xm=i.default.extend({name:Si,directives:{"b-visible":Kc},mixins:[Qa,pc,Ja,Cf,$f,_f,Yp,Mp,Up],props:Km,data:function(){return{heightInPx:null}},computed:{computedStyle:function(){var t={resize:!this.computedRows||this.noResize?"none":null};return this.computedRows||(t.height=this.heightInPx,t.overflowY="scroll"),t},computedMinRows:function(){return Us(lr(this.rows,2),2)},computedMaxRows:function(){return Us(this.computedMinRows,lr(this.maxRows,0))},computedRows:function(){return this.computedMinRows===this.computedMaxRows?this.computedMinRows:null},computedAttrs:function(){var t=this.disabled,e=this.required;return{id:this.safeId(),name:this.name||null,form:this.form||null,disabled:t,placeholder:this.placeholder||null,required:e,autocomplete:this.autocomplete||null,readonly:this.readonly||this.plaintext,rows:this.computedRows,wrap:this.wrap||null,"aria-required":this.required?"true":null,"aria-invalid":this.computedAriaInvalid}},computedListeners:function(){return c(c({},this.bvListeners),{},{input:this.onInput,change:this.onChange,blur:this.onBlur})}},watch:{localValue:function(){this.setHeight()}},mounted:function(){this.setHeight()},methods:{visibleCallback:function(t){t&&this.$nextTick(this.setHeight)},setHeight:function(){var t=this;this.$nextTick((function(){xr((function(){t.heightInPx=t.computeHeight()}))}))},computeHeight:function(){if(this.$isServer||!It(this.computedRows))return null;var t=this.$el;if(!Dr(t))return null;var e=Kr(t),i=cr(e.lineHeight,1),n=cr(e.borderTopWidth,0)+cr(e.borderBottomWidth,0),o=cr(e.paddingTop,0)+cr(e.paddingBottom,0),r=n+o,s=i*this.computedMinRows+r,a=Ur(t,"height")||e.height;Wr(t,"height","auto");var l=t.scrollHeight;Wr(t,"height",a);var c=Us((l-o)/i,2),u=Ys(Us(c,this.computedMinRows),this.computedMaxRows),d=Us(Ks(u*i+r),s);return this.noAutoShrink&&cr(a,0)>d?a:"".concat(d,"px")}},render:function(t){return t("textarea",{class:this.computedClass,style:this.computedStyle,directives:[{name:"b-visible",value:this.visibleCallback,modifiers:{640:!0}}],attrs:this.computedAttrs,domProps:{value:this.localValue},on:this.computedListeners,ref:"input"})}}),Zm=me({components:{BFormTextarea:Xm,BTextarea:Xm}}),Jm=ys("value",{type:go,defaultValue:""}),Qm=Jm.mixin,tv=Jm.props,ev=Jm.prop,iv=Jm.event,nv="numeric",ov=function(t){return"00".concat(t||"").slice(-2)},rv=function(t){t=vr(t);var e=null,i=null,n=null;if(gt.test(t)){var o=w(t.split(":").map((function(t){return lr(t,null)})),3);e=o[0],i=o[1],n=o[2]}return{hours:Pt(e)?null:e,minutes:Pt(i)?null:i,seconds:Pt(n)?null:n,ampm:Pt(e)||e<12?0:1}},sv=vs(ee(c(c(c(c({},fc),tv),Jt(Pm,["labelIncrement","labelDecrement"])),{},{ariaLabelledby:hs(go),disabled:hs(ho,!1),hidden:hs(ho,!1),hideHeader:hs(ho,!1),hour12:hs(ho,null),labelAm:hs(go,"AM"),labelAmpm:hs(go,"AM/PM"),labelHours:hs(go,"Hours"),labelMinutes:hs(go,"Minutes"),labelNoTimeSelected:hs(go,"No time selected"),labelPm:hs(go,"PM"),labelSeconds:hs(go,"Seconds"),labelSelected:hs(go,"Selected time"),locale:hs(Co),minutesStep:hs(_o,1),readonly:hs(ho,!1),secondsStep:hs(_o,1),showSeconds:hs(ho,!1)})),Tn),av=i.default.extend({name:Tn,mixins:[pc,Qm,Cs],props:sv,data:function(){var t=rv(this[ev]||"");return{modelHours:t.hours,modelMinutes:t.minutes,modelSeconds:t.seconds,modelAmpm:t.ampm,isLive:!1}},computed:{computedHMS:function(){return function(t){var e=t.hours,i=t.minutes,n=t.seconds,o=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return It(e)||It(i)||o&&It(n)?"":[e,i,o?n:0].map(ov).join(":")}({hours:this.modelHours,minutes:this.modelMinutes,seconds:this.modelSeconds},this.showSeconds)},resolvedOptions:function(){var t=or(this.locale).filter(ne),e={hour:nv,minute:nv,second:nv};Pt(this.hour12)||(e.hour12=!!this.hour12);var i=new Intl.DateTimeFormat(t,e).resolvedOptions(),n=i.hour12||!1,o=i.hourCycle||(n?"h12":"h23");return{locale:i.locale,hour12:n,hourCycle:o}},computedLocale:function(){return this.resolvedOptions.locale},computedLang:function(){return(this.computedLocale||"").replace(/-u-.*$/,"")},computedRTL:function(){return hc(this.computedLang)},computedHourCycle:function(){return this.resolvedOptions.hourCycle},is12Hour:function(){return!!this.resolvedOptions.hour12},context:function(){return{locale:this.computedLocale,isRTL:this.computedRTL,hourCycle:this.computedHourCycle,hour12:this.is12Hour,hours:this.modelHours,minutes:this.modelMinutes,seconds:this.showSeconds?this.modelSeconds:0,value:this.computedHMS,formatted:this.formattedTimeString}},valueId:function(){return this.safeId()||null},computedAriaLabelledby:function(){return[this.ariaLabelledby,this.valueId].filter(ne).join(" ")||null},timeFormatter:function(){var t={hour12:this.is12Hour,hourCycle:this.computedHourCycle,hour:nv,minute:nv,timeZone:"UTC"};return this.showSeconds&&(t.second=nv),Ql(this.computedLocale,t)},numberFormatter:function(){return new Intl.NumberFormat(this.computedLocale,{style:"decimal",minimumIntegerDigits:2,minimumFractionDigits:0,maximumFractionDigits:0,notation:"standard"}).format},formattedTimeString:function(){var t=this.modelHours,e=this.modelMinutes,i=this.showSeconds&&this.modelSeconds||0;return this.computedHMS?this.timeFormatter(Xl(Date.UTC(0,0,1,t,e,i))):this.labelNoTimeSelected||" "},spinScopedSlots:function(){var t=this.$createElement;return{increment:function(e){var i=e.hasFocus;return t(xa,{props:{scale:i?1.5:1.25},attrs:{"aria-hidden":"true"}})},decrement:function(e){var i=e.hasFocus;return t(xa,{props:{flipV:!0,scale:i?1.5:1.25},attrs:{"aria-hidden":"true"}})}}}},watch:($h={},a($h,ev,(function(t,e){if(t!==e&&!Ua(rv(t),rv(this.computedHMS))){var i=rv(t),n=i.hours,o=i.minutes,r=i.seconds,s=i.ampm;this.modelHours=n,this.modelMinutes=o,this.modelSeconds=r,this.modelAmpm=s}})),a($h,"computedHMS",(function(t,e){t!==e&&this.$emit(iv,t)})),a($h,"context",(function(t,e){Ua(t,e)||this.$emit(Dn,t)})),a($h,"modelAmpm",(function(t,e){var i=this;if(t!==e){var n=It(this.modelHours)?0:this.modelHours;this.$nextTick((function(){0===t&&n>11?i.modelHours=n-12:1===t&&n<12&&(i.modelHours=n+12)}))}})),a($h,"modelHours",(function(t,e){t!==e&&(this.modelAmpm=t>11?1:0)})),$h),created:function(){var t=this;this.$nextTick((function(){t.$emit(Dn,t.context)}))},mounted:function(){this.setLive(!0)},activated:function(){this.setLive(!0)},deactivated:function(){this.setLive(!1)},beforeDestroy:function(){this.setLive(!1)},methods:{focus:function(){this.disabled||ts(this.$refs.spinners[0])},blur:function(){if(!this.disabled){var t=$r();Lr(this.$el,t)&&es(t)}},formatHours:function(t){var e=this.computedHourCycle;return t=0===(t=this.is12Hour&&t>12?t-12:t)&&"h12"===e?12:0===t&&"h24"===e?24:12===t&&"h11"===e?0:t,this.numberFormatter(t)},formatMinutes:function(t){return this.numberFormatter(t)},formatSeconds:function(t){return this.numberFormatter(t)},formatAmpm:function(t){return 0===t?this.labelAm:1===t?this.labelPm:""},setHours:function(t){this.modelHours=t},setMinutes:function(t){this.modelMinutes=t},setSeconds:function(t){this.modelSeconds=t},setAmpm:function(t){this.modelAmpm=t},onSpinLeftRight:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.type,i=t.keyCode;if(!this.disabled&&"keydown"===e&&(i===Na||i===ja)){Bs(t);var n=this.$refs.spinners||[],o=n.map((function(t){return!!t.hasFocus})).indexOf(!0);o=(o+=i===Na?-1:1)>=n.length?0:o<0?n.length-1:o,ts(n[o])}},setLive:function(t){var e=this;t?this.$nextTick((function(){xr((function(){e.isLive=!0}))})):this.isLive=!1}},render:function(t){var e=this;if(this.hidden)return t();var i=this.valueId,n=this.computedAriaLabelledby,o=[],r=function(n,r,s){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},l=e.safeId("_spinbutton_".concat(r,"_"))||null;return o.push(l),t(Om,{class:s,props:c({id:l,placeholder:"--",vertical:!0,required:!0,disabled:e.disabled,readonly:e.readonly,locale:e.computedLocale,labelIncrement:e.labelIncrement,labelDecrement:e.labelDecrement,wrap:!0,ariaControls:i,min:0},a),scopedSlots:e.spinScopedSlots,on:{change:n},key:r,ref:"spinners",refInFor:!0})},s=function(){return t("div",{staticClass:"d-flex flex-column",class:{"text-muted":e.disabled||e.readonly},attrs:{"aria-hidden":"true"}},[t(Sa,{props:{shiftV:4,scale:.5}}),t(Sa,{props:{shiftV:-4,scale:.5}})])},a=[];a.push(r(this.setHours,"hours","b-time-hours",{value:this.modelHours,max:23,step:1,formatterFn:this.formatHours,ariaLabel:this.labelHours})),a.push(s()),a.push(r(this.setMinutes,"minutes","b-time-minutes",{value:this.modelMinutes,max:59,step:this.minutesStep||1,formatterFn:this.formatMinutes,ariaLabel:this.labelMinutes})),this.showSeconds&&(a.push(s()),a.push(r(this.setSeconds,"seconds","b-time-seconds",{value:this.modelSeconds,max:59,step:this.secondsStep||1,formatterFn:this.formatSeconds,ariaLabel:this.labelSeconds}))),this.is12Hour&&a.push(r(this.setAmpm,"ampm","b-time-ampm",{value:this.modelAmpm,max:1,formatterFn:this.formatAmpm,ariaLabel:this.labelAmpm,required:!1})),a=t("div",{staticClass:"d-flex align-items-center justify-content-center mx-auto",attrs:{role:"group",tabindex:this.disabled||this.readonly?null:"-1","aria-labelledby":n},on:{keydown:this.onSpinLeftRight,click:function(t){t.target===t.currentTarget&&e.focus()}}},a);var l=t("output",{staticClass:"form-control form-control-sm text-center",class:{disabled:this.disabled||this.readonly},attrs:{id:i,role:"status",for:o.filter(ne).join(" ")||null,tabindex:this.disabled?null:"-1","aria-live":this.isLive?"polite":"off","aria-atomic":"true"},on:{click:this.focus,focus:this.focus}},[t("bdi",this.formattedTimeString),this.computedHMS?t("span",{staticClass:"sr-only"}," (".concat(this.labelSelected,") ")):""]),u=t("header",{staticClass:"b-time-header",class:{"sr-only":this.hideHeader}},[l]),d=this.normalizeSlot();return d=d?t("footer",{staticClass:"b-time-footer"},d):t(),t("div",{staticClass:"b-time d-inline-flex flex-column text-center",attrs:{role:"group",lang:this.computedLang||null,"aria-labelledby":n||null,"aria-disabled":this.disabled?"true":null,"aria-readonly":this.readonly&&!this.disabled?"true":null}},[u,a,d])}}),lv=ys("value",{type:go,defaultValue:""}),cv=lv.mixin,uv=lv.props,dv=lv.prop,hv=lv.event,fv=Qt(sv,["hidden","id","value"]),pv=Qt(op,["formattedValue","id","lang","rtl","value"]),mv=vs(ee(c(c(c(c(c({},fc),uv),fv),pv),{},{closeButtonVariant:hs(go,"outline-secondary"),labelCloseButton:hs(go,"Close"),labelNowButton:hs(go,"Select now"),labelResetButton:hs(go,"Reset"),noCloseButton:hs(ho,!1),nowButton:hs(ho,!1),nowButtonVariant:hs(go,"outline-primary"),resetButton:hs(ho,!1),resetButtonVariant:hs(go,"outline-danger"),resetValue:hs($o)})),ki),vv=i.default.extend({name:ki,mixins:[pc,cv],props:mv,data:function(){return{localHMS:this[dv]||"",localLocale:null,isRTL:!1,formattedValue:"",isVisible:!1}},computed:{computedLang:function(){return(this.localLocale||"").replace(/-u-.*$/i,"")||null}},watch:(Bh={},a(Bh,dv,(function(t){this.localHMS=t||""})),a(Bh,"localHMS",(function(t){this.isVisible&&this.$emit(hv,t||"")})),Bh),methods:{focus:function(){this.disabled||ts(this.$refs.control)},blur:function(){this.disabled||es(this.$refs.control)},setAndClose:function(t){var e=this;this.localHMS=t,this.$nextTick((function(){e.$refs.control.hide(!0)}))},onInput:function(t){this.localHMS!==t&&(this.localHMS=t)},onContext:function(t){var e=t.isRTL,i=t.locale,n=t.value,o=t.formatted;this.isRTL=e,this.localLocale=i,this.formattedValue=o,this.localHMS=n||"",this.$emit(Dn,t)},onNowButton:function(){var t=new Date,e=[t.getHours(),t.getMinutes(),this.showSeconds?t.getSeconds():0].map((function(t){return"00".concat(t||"").slice(-2)})).join(":");this.setAndClose(e)},onResetButton:function(){this.setAndClose(this.resetValue)},onCloseButton:function(){this.$refs.control.hide(!0)},onShow:function(){this.isVisible=!0},onShown:function(){var t=this;this.$nextTick((function(){ts(t.$refs.time),t.$emit(eo)}))},onHidden:function(){this.isVisible=!1,this.$emit(zn)},defaultButtonFn:function(t){var e=t.isHovered,i=t.hasFocus;return this.$createElement(e||i?$a:ka,{attrs:{"aria-hidden":"true"}})}},render:function(t){var e=this.localHMS,i=this.disabled,n=this.readonly,o=this.$props,r=Pt(this.placeholder)?this.labelNoTimeSelected:this.placeholder,s=[];if(this.nowButton){var l=this.labelNowButton;s.push(t(ml,{props:{size:"sm",disabled:i||n,variant:this.nowButtonVariant},attrs:{"aria-label":l||null},on:{click:this.onNowButton},key:"now-btn"},l))}if(this.resetButton){s.length>0&&s.push(t("span"," "));var u=this.labelResetButton;s.push(t(ml,{props:{size:"sm",disabled:i||n,variant:this.resetButtonVariant},attrs:{"aria-label":u||null},on:{click:this.onResetButton},key:"reset-btn"},u))}if(!this.noCloseButton){s.length>0&&s.push(t("span"," "));var d=this.labelCloseButton;s.push(t(ml,{props:{size:"sm",disabled:i,variant:this.closeButtonVariant},attrs:{"aria-label":d||null},on:{click:this.onCloseButton},key:"close-btn"},d))}s.length>0&&(s=[t("div",{staticClass:"b-form-date-controls d-flex flex-wrap",class:{"justify-content-between":s.length>1,"justify-content-end":s.length<2}},s)]);var h=t(av,{staticClass:"b-form-time-control",props:c(c({},ps(fv,o)),{},{value:e,hidden:!this.isVisible}),on:{input:this.onInput,context:this.onContext},ref:"time"},s);return t(rp,{staticClass:"b-form-timepicker",props:c(c({},ps(pv,o)),{},{id:this.safeId(),value:e,formattedValue:e?this.formattedValue:"",placeholder:r,rtl:this.isRTL,lang:this.computedLang}),on:{show:this.onShow,shown:this.onShown,hidden:this.onHidden},scopedSlots:a({},Eo,this.$scopedSlots["button-content"]||this.defaultButtonFn),ref:"control"},[h])}}),bv=me({components:{BFormTimepicker:vv,BTimepicker:vv}}),gv=me({components:{BImg:Lc,BImgLazy:Qc}}),yv=vs({tag:hs(go,"div")},Vi),wv=i.default.extend({name:Vi,functional:!0,props:yv,render:function(t,e){var i=e.props,n=e.data,o=e.children;return t(i.tag,F(n,{staticClass:"input-group-text"}),o)}}),Tv=vs({append:hs(ho,!1),id:hs(go),isText:hs(ho,!1),tag:hs(go,"div")},Ii),Cv=i.default.extend({name:Ii,functional:!0,props:Tv,render:function(t,e){var i=e.props,n=e.data,o=e.children,r=i.append;return t(i.tag,F(n,{class:{"input-group-append":r,"input-group-prepend":!r},attrs:{id:i.id}}),i.isText?[t(wv,o)]:o)}}),xv=vs(Qt(Tv,["append"]),Pi),Sv=i.default.extend({name:Pi,functional:!0,props:xv,render:function(t,e){var i=e.props,n=e.data,o=e.children;return t(Cv,F(n,{props:c(c({},i),{},{append:!0})}),o)}}),kv=vs(Qt(Tv,["append"]),Oi),$v=i.default.extend({name:Oi,functional:!0,props:kv,render:function(t,e){var i=e.props,n=e.data,o=e.children;return t(Cv,F(n,{props:c(c({},i),{},{append:!1})}),o)}}),Bv=vs({append:hs(go),appendHtml:hs(go),id:hs(go),prepend:hs(go),prependHtml:hs(go),size:hs(go),tag:hs(go,"div")},Fi),_v=me({components:{BInputGroup:i.default.extend({name:Fi,functional:!0,props:Bv,render:function(t,e){var i=e.props,n=e.data,o=e.slots,r=e.scopedSlots,s=i.prepend,l=i.prependHtml,c=i.append,u=i.appendHtml,d=i.size,h=r||{},f=o(),p={},m=t(),v=ws(qo,h,f);(v||s||l)&&(m=t($v,[v?Ts(qo,p,h,f):t(wv,{domProps:Fl(l,s)})]));var b=t(),g=ws(Po,h,f);return(g||c||u)&&(b=t(Sv,[g?Ts(Po,p,h,f):t(wv,{domProps:Fl(u,c)})])),t(i.tag,F(n,{staticClass:"input-group",class:a({},"input-group-".concat(d),d),attrs:{id:i.id||null,role:"group"}}),[m,Ts(Ao,p,h,f),b])}}),BInputGroupAddon:Cv,BInputGroupPrepend:$v,BInputGroupAppend:Sv,BInputGroupText:wv}}),Dv=vs({fluid:hs(ko,!1),tag:hs(go,"div")},qe),Fv=i.default.extend({name:qe,functional:!0,props:Dv,render:function(t,e){var i=e.props,n=e.data,o=e.children,r=i.fluid;return t(i.tag,F(n,{class:a({container:!(r||""===r),"container-fluid":!0===r||""===r},"container-".concat(r),r&&!0!==r)}),o)}}),Iv=vs({bgVariant:hs(go),borderVariant:hs(go),containerFluid:hs(ko,!1),fluid:hs(ho,!1),header:hs(go),headerHtml:hs(go),headerLevel:hs(_o,3),headerTag:hs(go,"h1"),lead:hs(go),leadHtml:hs(go),leadTag:hs(go,"p"),tag:hs(go,"div"),textVariant:hs(go)},Ei),Pv=me({components:{BJumbotron:i.default.extend({name:Ei,functional:!0,props:Iv,render:function(t,e){var i,n=e.props,o=e.data,r=e.slots,s=e.scopedSlots,l=n.header,c=n.headerHtml,u=n.lead,d=n.leadHtml,h=n.textVariant,f=n.bgVariant,p=n.borderVariant,m=s||{},v=r(),b={},g=t(),y=ws(No,m,v);if(y||l||c){var w=n.headerLevel;g=t(n.headerTag,{class:a({},"display-".concat(w),w),domProps:y?{}:Fl(c,l)},Ts(No,b,m,v))}var T=t(),C=ws(Go,m,v);(C||u||d)&&(T=t(n.leadTag,{staticClass:"lead",domProps:C?{}:Fl(d,u)},Ts(Go,b,m,v)));var x=[g,T,Ts(Ao,b,m,v)];return n.fluid&&(x=[t(Fv,{props:{fluid:n.containerFluid}},x)]),t(n.tag,F(o,{staticClass:"jumbotron",class:(i={"jumbotron-fluid":n.fluid},a(i,"text-".concat(h),h),a(i,"bg-".concat(f),f),a(i,"border-".concat(p),p),a(i,"border",p),i)}),x)}})}}),Ov=["start","end","center"],Vv=is((function(t,e){return(e=br(vr(e)))?gr(["row-cols",t,e].filter(ne).join("-")):null})),Ev=is((function(t){return gr(t.replace("cols",""))})),Lv=[],Av=me({components:{BContainer:Fv,BRow:{name:on,functional:!0,get props(){var t;return delete this.props,this.props=(t=ls().reduce((function(t,e){return t[ds(e,"cols")]=hs(_o),t}),Wt(null)),Lv=Kt(t),vs(ee(c(c({},t),{},{alignContent:hs(go,null,(function(t){return nr(or(Ov,"between","around","stretch"),t)})),alignH:hs(go,null,(function(t){return nr(or(Ov,"between","around"),t)})),alignV:hs(go,null,(function(t){return nr(or(Ov,"baseline","stretch"),t)})),noGutters:hs(ho,!1),tag:hs(go,"div")})),on)),this.props},render:function(t,e){var i,n=e.props,o=e.data,r=e.children,s=n.alignV,l=n.alignH,c=n.alignContent,u=[];return Lv.forEach((function(t){var e=Vv(Ev(t),n[t]);e&&u.push(e)})),u.push((a(i={"no-gutters":n.noGutters},"align-items-".concat(s),s),a(i,"justify-content-".concat(l),l),a(i,"align-content-".concat(c),c),i)),t(n.tag,F(o,{staticClass:"row",class:u}),r)}},BCol:Op,BFormRow:bf}}),Rv=me({components:{BLink:ol}}),Mv=vs({flush:hs(ho,!1),horizontal:hs(ko,!1),tag:hs(go,"div")},Ai),Hv=i.default.extend({name:Ai,functional:!0,props:Mv,render:function(t,e){var i=e.props,n=e.data,o=e.children,r=""===i.horizontal||i.horizontal;r=!i.flush&&r;var s={staticClass:"list-group",class:a({"list-group-flush":i.flush,"list-group-horizontal":!0===r},"list-group-horizontal-".concat(r),Et(r))};return t(i.tag,F(n,s),o)}}),zv=["a","router-link","button","b-link"],Nv=Qt(nl,["event","routerTag"]);delete Nv.href.default,delete Nv.to.default;var jv=vs(ee(c(c({},Nv),{},{action:hs(ho,!1),button:hs(ho,!1),tag:hs(go,"div"),variant:hs(go)})),Ri),Gv=me({components:{BListGroup:Hv,BListGroupItem:i.default.extend({name:Ri,functional:!0,props:jv,render:function(t,e){var i,n=e.props,o=e.data,r=e.children,s=n.button,l=n.variant,c=n.active,u=n.disabled,d=la(n),h=s?"button":d?ol:n.tag,f=!!(n.action||d||s||nr(zv,n.tag)),p={},m={};return Br(h,"button")?(o.attrs&&o.attrs.type||(p.type="button"),n.disabled&&(p.disabled=!0)):m=ps(Nv,n),t(h,F(o,{attrs:p,props:m,staticClass:"list-group-item",class:(i={},a(i,"list-group-item-".concat(l),l),a(i,"list-group-item-action",f),a(i,"active",c),a(i,"disabled",u),i)}),r)}})}}),Wv=vs({right:hs(ho,!1),tag:hs(go,"div"),verticalAlign:hs(go,"top")},Hi),Yv=i.default.extend({name:Hi,functional:!0,props:Wv,render:function(t,e){var i=e.props,n=e.data,o=e.children,r=i.verticalAlign,s="top"===r?"start":"bottom"===r?"end":r;return t(i.tag,F(n,{staticClass:"media-aside",class:a({"media-aside-right":i.right},"align-self-".concat(s),s)}),o)}}),Uv=vs({tag:hs(go,"div")},zi),qv=i.default.extend({name:zi,functional:!0,props:Uv,render:function(t,e){var i=e.props,n=e.data,o=e.children;return t(i.tag,F(n,{staticClass:"media-body"}),o)}}),Kv=vs({noBody:hs(ho,!1),rightAlign:hs(ho,!1),tag:hs(go,"div"),verticalAlign:hs(go,"top")},Mi),Xv=me({components:{BMedia:i.default.extend({name:Mi,functional:!0,props:Kv,render:function(t,e){var i=e.props,n=e.data,o=e.slots,r=e.scopedSlots,s=e.children,a=i.noBody,l=i.rightAlign,c=i.verticalAlign,u=a?s:[];if(!a){var d={},h=o(),f=r||{};u.push(t(qv,Ts(Ao,d,f,h)));var p=Ts("aside",d,f,h);p&&u[l?"push":"unshift"](t(Yv,{props:{right:l,verticalAlign:c}},p))}return t(i.tag,F(n,{staticClass:"media"}),u)}}),BMediaAside:Yv,BMediaBody:qv}}),Zv="$_bv_documentHandlers_",Jv=i.default.extend({created:function(){var t=this;M&&(this[Zv]={},this.$once(oo,(function(){var e=t[Zv]||{};delete t[Zv],Kt(e).forEach((function(t){(e[t]||[]).forEach((function(e){return ks(document,t,e,lo)}))}))})))},methods:{listenDocument:function(t,e,i){t?this.listenOnDocument(e,i):this.listenOffDocument(e,i)},listenOnDocument:function(t,e){this[Zv]&&Et(t)&&Ot(e)&&(this[Zv][t]=this[Zv][t]||[],nr(this[Zv][t],e)||(this[Zv][t].push(e),Ss(document,t,e,lo)))},listenOffDocument:function(t,e){this[Zv]&&Et(t)&&Ot(e)&&(ks(document,t,e,lo),this[Zv][t]=(this[Zv][t]||[]).filter((function(t){return t!==e})))}}}),Qv="$_bv_windowHandlers_",tb=i.default.extend({beforeCreate:function(){this[Qv]={}},beforeDestroy:function(){if(M){var t=this[Qv];delete this[Qv],Kt(t).forEach((function(e){(t[e]||[]).forEach((function(t){return ks(window,e,t,lo)}))}))}},methods:{listenWindow:function(t,e,i){t?this.listenOnWindow(e,i):this.listenOffWindow(e,i)},listenOnWindow:function(t,e){M&&this[Qv]&&Et(t)&&Ot(e)&&(this[Qv][t]=this[Qv][t]||[],nr(this[Qv][t],e)||(this[Qv][t].push(e),Ss(window,t,e,lo)))},listenOffWindow:function(t,e){M&&this[Qv]&&Et(t)&&Ot(e)&&(ks(window,t,e,lo),this[Qv][t]=(this[Qv][t]||[]).filter((function(t){return t!==e})))}}}),eb=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return t&&t.$options._scopeId||e},ib=i.default.extend({computed:{scopedStyleAttrs:function(){var t=eb(this.$parent);return t?a({},t,""):{}}}}),nb=i.default.extend({abstract:!0,name:"BVTransporterTarget",props:{nodes:hs(yo)},data:function(t){return{updatedNodes:t.nodes}},destroyed:function(){var t;(t=this.$el)&&t.parentNode&&t.parentNode.removeChild(t)},render:function(t){var e=this.updatedNodes,i=Ot(e)?e({}):e;return(i=or(i).filter(ne))&&i.length>0&&!i[0].text?i[0]:t()}}),ob={container:hs([HTMLElement,go],"body"),disabled:hs(ho,!1),tag:hs(go,"div")},rb=i.default.extend({name:"BVTransporter",mixins:[Cs],props:ob,watch:{disabled:{immediate:!0,handler:function(t){t?this.unmountTarget():this.$nextTick(this.mountTarget)}}},created:function(){this.$_defaultFn=null,this.$_target=null},beforeMount:function(){this.mountTarget()},updated:function(){this.updateTarget()},beforeDestroy:function(){this.unmountTarget(),this.$_defaultFn=null},methods:{getContainer:function(){if(M){var t=this.container;return Et(t)?Or(t):t}return null},mountTarget:function(){if(!this.$_target){var t=this.getContainer();if(t){var e=document.createElement("div");t.appendChild(e),this.$_target=new nb({el:e,parent:this,propsData:{nodes:or(this.normalizeSlot())}})}}},updateTarget:function(){if(M&&this.$_target){var t=this.$scopedSlots.default;this.disabled||(t&&this.$_defaultFn!==t?this.$_target.updatedNodes=t:t||(this.$_target.updatedNodes=this.$slots.default)),this.$_defaultFn=t}},unmountTarget:function(){this.$_target&&this.$_target.$destroy(),this.$_target=null}},render:function(t){if(this.disabled){var e=or(this.normalizeSlot()).filter(ne);if(e.length>0&&!e[0].text)return e[0]}return t()}}),BvModalEvent=function(t){u(BvModalEvent,t);var e=g(BvModalEvent);function BvModalEvent(t){var i,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return o(this,BvModalEvent),i=e.call(this,t,n),Yt(v(i),{trigger:{enumerable:!0,configurable:!1,writable:!1}}),i}return s(BvModalEvent,null,[{key:"Defaults",get:function(){return c(c({},y(d(BvModalEvent),"Defaults",this)),{},{trigger:null})}}]),BvModalEvent}(BvEvent),sb=new(i.default.extend({data:function(){return{modals:[],baseZIndex:null,scrollbarWidth:null,isBodyOverflowing:!1}},computed:{modalCount:function(){return this.modals.length},modalsAreOpen:function(){return this.modalCount>0}},watch:{modalCount:function(t,e){M&&(this.getScrollbarWidth(),t>0&&0===e?(this.checkScrollbar(),this.setScrollbar(),Rr(document.body,"modal-open")):0===t&&e>0&&(this.resetScrollbar(),Mr(document.body,"modal-open")),zr(document.body,"data-modal-open-count",String(t)))},modals:function(t){var e=this;this.checkScrollbar(),xr((function(){e.updateModals(t||[])}))}},methods:{registerModal:function(t){var e=this;t&&-1===this.modals.indexOf(t)&&(this.modals.push(t),t.$once(oo,(function(){e.unregisterModal(t)})))},unregisterModal:function(t){var e=this.modals.indexOf(t);e>-1&&(this.modals.splice(e,1),t._isBeingDestroyed||t._isDestroyed||this.resetModal(t))},getBaseZIndex:function(){if(It(this.baseZIndex)&&M){var t=document.createElement("div");Rr(t,"modal-backdrop"),Rr(t,"d-none"),Wr(t,"display","none"),document.body.appendChild(t),this.baseZIndex=lr(Kr(t).zIndex,1040),document.body.removeChild(t)}return this.baseZIndex||1040},getScrollbarWidth:function(){if(It(this.scrollbarWidth)&&M){var t=document.createElement("div");Rr(t,"modal-scrollbar-measure"),document.body.appendChild(t),this.scrollbarWidth=qr(t).width-t.clientWidth,document.body.removeChild(t)}return this.scrollbarWidth||0},updateModals:function(t){var e=this,i=this.getBaseZIndex(),n=this.getScrollbarWidth();t.forEach((function(t,o){t.zIndex=i+o,t.scrollbarWidth=n,t.isTop=o===e.modals.length-1,t.isBodyOverflowing=e.isBodyOverflowing}))},resetModal:function(t){t&&(t.zIndex=this.getBaseZIndex(),t.isTop=!0,t.isBodyOverflowing=!1)},checkScrollbar:function(){var t=qr(document.body),e=t.left,i=t.right;this.isBodyOverflowing=e+i0&&void 0!==arguments[0]&&arguments[0];this.$_observer&&this.$_observer.disconnect(),this.$_observer=null,t&&(this.$_observer=au(this.$refs.content,this.checkModalOverflow.bind(this),bb))},updateModel:function(t){t!==this[ub]&&this.$emit(db,t)},buildEvent:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new BvModalEvent(t,c(c({cancelable:!1,target:this.$refs.modal||this.$el||null,relatedTarget:null,trigger:null},e),{},{vueTarget:this,componentId:this.modalId}))},show:function(){if(!this.isVisible&&!this.isOpening)if(this.isClosing)this.$once(zn,this.show);else{this.isOpening=!0,this.$_returnFocus=this.$_returnFocus||this.getActiveElement();var t=this.buildEvent(to,{cancelable:!0});if(this.emitEvent(t),t.defaultPrevented||this.isVisible)return this.isOpening=!1,void this.updateModel(!1);this.doShow()}},hide:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";if(this.isVisible&&!this.isClosing){this.isClosing=!0;var e=this.buildEvent(Nn,{cancelable:t!==hb,trigger:t||null});if(t===mb?this.$emit("ok",e):t===fb?this.$emit(kn,e):t===pb&&this.$emit(_n,e),this.emitEvent(e),e.defaultPrevented||!this.isVisible)return this.isClosing=!1,void this.updateModel(!0);this.setObserver(!1),this.isVisible=!1,this.updateModel(!1)}},toggle:function(t){t&&(this.$_returnFocus=t),this.isVisible?this.hide("toggle"):this.show()},getActiveElement:function(){var t=$r(M?[document.body]:[]);return t&&t.focus?t:null},doShow:function(){var t=this;sb.modalsAreOpen&&this.noStacking?this.listenOnRootOnce(Ds(Ni,zn),this.doShow):(sb.registerModal(this),this.isHidden=!1,this.$nextTick((function(){t.isVisible=!0,t.isOpening=!1,t.updateModel(!0),t.$nextTick((function(){t.setObserver(!0)}))})))},onBeforeEnter:function(){this.isTransitioning=!0,this.setResizeEvent(!0)},onEnter:function(){var t=this;this.isBlock=!0,xr((function(){xr((function(){t.isShow=!0}))}))},onAfterEnter:function(){var t=this;this.checkModalOverflow(),this.isTransitioning=!1,xr((function(){t.emitEvent(t.buildEvent(eo)),t.setEnforceFocus(!0),t.$nextTick((function(){t.focusFirst()}))}))},onBeforeLeave:function(){this.isTransitioning=!0,this.setResizeEvent(!1),this.setEnforceFocus(!1)},onLeave:function(){this.isShow=!1},onAfterLeave:function(){var t=this;this.isBlock=!1,this.isTransitioning=!1,this.isModalOverflowing=!1,this.isHidden=!0,this.$nextTick((function(){t.isClosing=!1,sb.unregisterModal(t),t.returnFocusTo(),t.emitEvent(t.buildEvent(zn))}))},emitEvent:function(t){var e=t.type;this.emitOnRoot(Ds(Ni,e),t,t.componentId),this.$emit(e,t)},onDialogMousedown:function(){var t=this,e=this.$refs.modal;Ss(e,"mouseup",(function i(n){ks(e,"mouseup",i,lo),n.target===e&&(t.ignoreBackdropClick=!0)}),lo)},onClickOut:function(t){this.ignoreBackdropClick?this.ignoreBackdropClick=!1:this.isVisible&&!this.noCloseOnBackdrop&&Lr(document.body,t.target)&&(Lr(this.$refs.content,t.target)||this.hide("backdrop"))},onOk:function(){this.hide(mb)},onCancel:function(){this.hide(fb)},onClose:function(){this.hide(pb)},onEsc:function(t){27===t.keyCode&&this.isVisible&&!this.noCloseOnEsc&&this.hide("esc")},focusHandler:function(t){var e=this.$refs.content,i=t.target;if(!(this.noEnforceFocus||!this.isTop||!this.isVisible||!e||document===i||Lr(e,i)||this.computeIgnoreEnforceFocusSelector&&Er(this.computeIgnoreEnforceFocusSelector,i,!0))){var n=Qr(this.$refs.content),o=this.$refs["bottom-trap"],r=this.$refs["top-trap"];if(o&&i===o){if(ts(n[0]))return}else if(r&&i===r&&ts(n[n.length-1]))return;ts(e,{preventScroll:!0})}},setEnforceFocus:function(t){this.listenDocument(t,"focusin",this.focusHandler)},setResizeEvent:function(t){this.listenWindow(t,"resize",this.checkModalOverflow),this.listenWindow(t,"orientationchange",this.checkModalOverflow)},showHandler:function(t,e){t===this.modalId&&(this.$_returnFocus=e||this.getActiveElement(),this.show())},hideHandler:function(t){t===this.modalId&&this.hide("event")},toggleHandler:function(t,e){t===this.modalId&&this.toggle(e)},modalListener:function(t){this.noStacking&&t.vueTarget!==this&&this.hide()},focusFirst:function(){var t=this;M&&xr((function(){var e=t.$refs.modal,i=t.$refs.content,n=t.getActiveElement();if(e&&i&&(!n||!Lr(i,n))){var o=t.$refs["ok-button"],r=t.$refs["cancel-button"],s=t.$refs["close-button"],a=t.autoFocusButton,l=a===mb&&o?o.$el||o:a===fb&&r?r.$el||r:a===pb&&s?s.$el||s:i;ts(l),l===i&&t.$nextTick((function(){e.scrollTop=0}))}}))},returnFocusTo:function(){var t=this.returnFocus||this.$_returnFocus||null;this.$_returnFocus=null,this.$nextTick((function(){(t=Et(t)?Or(t):t)&&(t=t.$el||t,ts(t))}))},checkModalOverflow:function(){if(this.isVisible){var t=this.$refs.modal;this.isModalOverflowing=t.scrollHeight>document.documentElement.clientHeight}},makeModal:function(t){var e=t();if(!this.hideHeader){var i=this.normalizeSlot("modal-header",this.slotScope);if(!i){var n=t();this.hideHeaderClose||(n=t(Ps,{props:{content:this.headerCloseContent,disabled:this.isTransitioning,ariaLabel:this.headerCloseLabel,textVariant:this.headerCloseVariant||this.headerTextVariant},on:{click:this.onClose},ref:"close-button"},[this.normalizeSlot("modal-header-close")])),i=[t(this.titleTag,{staticClass:"modal-title",class:this.titleClasses,attrs:{id:this.modalTitleId},domProps:this.hasNormalizedSlot(Uo)?{}:Fl(this.titleHtml,this.title)},this.normalizeSlot(Uo,this.slotScope)),n]}e=t("header",{staticClass:"modal-header",class:this.headerClasses,attrs:{id:this.modalHeaderId},ref:"header"},[i])}var o=t("div",{staticClass:"modal-body",class:this.bodyClasses,attrs:{id:this.modalBodyId},ref:"body"},this.normalizeSlot(Ao,this.slotScope)),r=t();if(!this.hideFooter){var s=this.normalizeSlot("modal-footer",this.slotScope);if(!s){var a=t();this.okOnly||(a=t(ml,{props:{variant:this.cancelVariant,size:this.buttonSize,disabled:this.cancelDisabled||this.busy||this.isTransitioning},domProps:this.hasNormalizedSlot(Wo)?{}:Fl(this.cancelTitleHtml,this.cancelTitle),on:{click:this.onCancel},ref:"cancel-button"},this.normalizeSlot(Wo))),s=[a,t(ml,{props:{variant:this.okVariant,size:this.buttonSize,disabled:this.okDisabled||this.busy||this.isTransitioning},domProps:this.hasNormalizedSlot(Yo)?{}:Fl(this.okTitleHtml,this.okTitle),on:{click:this.onOk},ref:"ok-button"},this.normalizeSlot(Yo))]}r=t("footer",{staticClass:"modal-footer",class:this.footerClasses,attrs:{id:this.modalFooterId},ref:"footer"},[s])}var l=t("div",{staticClass:"modal-content",class:this.contentClass,attrs:{id:this.modalContentId,tabindex:"-1"},ref:"content"},[e,o,r]),c=t(),u=t();this.isVisible&&!this.noEnforceFocus&&(c=t("span",{attrs:{tabindex:"0"},ref:"top-trap"}),u=t("span",{attrs:{tabindex:"0"},ref:"bottom-trap"}));var d=t("div",{staticClass:"modal-dialog",class:this.dialogClasses,on:{mousedown:this.onDialogMousedown},ref:"dialog"},[c,l,u]),h=t("div",{staticClass:"modal",class:this.modalClasses,style:this.modalStyles,attrs:this.computedModalAttrs,on:{keydown:this.onEsc,click:this.onClickOut},directives:[{name:"show",value:this.isVisible}],ref:"modal"},[d]);h=t("transition",{props:{enterClass:"",enterToClass:"",enterActiveClass:"",leaveClass:"",leaveActiveClass:"",leaveToClass:""},on:{beforeEnter:this.onBeforeEnter,enter:this.onEnter,afterEnter:this.onAfterEnter,beforeLeave:this.onBeforeLeave,leave:this.onLeave,afterLeave:this.onAfterLeave}},[h]);var f=t();return!this.hideBackdrop&&this.isVisible&&(f=t("div",{staticClass:"modal-backdrop",attrs:{id:this.modalBackdropId}},this.normalizeSlot("modal-backdrop"))),f=t(Ls,{props:{noFade:this.noFade}},[f]),t("div",{style:this.modalOuterStyle,attrs:this.computedAttrs,key:"modal-outer-".concat(this._uid)},[h,f])}},render:function(t){return this.static?this.lazy&&this.isHidden?t():this.makeModal(t):this.isHidden?t():t(rb,[this.makeModal(t)])}}),wb=Fs(Ni,to),Tb="__bv_modal_directive__",Cb=function(t){var e=t.modifiers,i=void 0===e?{}:e,n=t.arg,o=t.value;return Et(o)?o:Et(n)?n:Kt(i).reverse()[0]},xb=function(t){return t&&Vr(t,".dropdown-menu > li, li.nav-item")&&Or("a, button",t)||t},Sb=function(t){t&&"BUTTON"!==t.tagName&&(Gr(t,"role")||zr(t,"role","button"),"A"===t.tagName||Gr(t,"tabindex")||zr(t,"tabindex","0"))},kb=function(t){var e=t[Tb]||{},i=e.trigger,n=e.handler;i&&n&&(ks(i,"click",n,ao),ks(i,"keydown",n,ao),ks(t,"click",n,ao),ks(t,"keydown",n,ao)),delete t[Tb]},$b=function(t,e,i){var n=t[Tb]||{},o=Cb(e),r=xb(t);o===n.target&&r===n.trigger||(kb(t),function(t,e,i){var n=Cb(e),o=xb(t);if(n&&o){var r=function(t){var e=t.currentTarget;if(!Fr(e)){var o=t.type,r=t.keyCode;"click"!==o&&("keydown"!==o||r!==Ha&&r!==Ga)||i.context.$root.$emit(wb,n,e)}};t[Tb]={handler:r,target:n,trigger:o},Sb(o),Ss(o,"click",r,ao),"BUTTON"!==o.tagName&&"button"===jr(o,"role")&&Ss(o,"keydown",r,ao)}}(t,e,i)),Sb(r)},Bb={inserted:$b,updated:function(){},componentUpdated:$b,unbind:kb},_b="$bvModal",Db=["id"].concat(T(Kt(Qt(gb,["busy","lazy","noStacking","static","visible"])))),Fb=function(){},Ib={msgBoxContent:"default",title:"modal-title",okTitle:"modal-ok",cancelTitle:"modal-cancel"},Pb=function(t){return Db.reduce((function(e,i){return Ft(t[i])||(e[i]=t[i]),e}),{})},Ob=me({components:{BModal:yb},directives:{VBModal:Bb},plugins:{BVModalPlugin:me({plugins:{plugin:function(t){var e=t.extend({name:"BMsgBox",extends:yb,destroyed:function(){this.$el&&this.$el.parentNode&&this.$el.parentNode.removeChild(this.$el)},mounted:function(){var t=this,e=function(){t.$nextTick((function(){xr((function(){t.$destroy()}))}))};this.$parent.$once(ro,e),this.$once(zn,e),this.$router&&this.$route&&this.$once(oo,this.$watch("$router",e)),this.show()}}),i=function(t,i){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Fb;if(!ce(_b)&&!ue(_b)){var o=new e({parent:t,propsData:c(c(c({},Pb(rs(Ni))),{},{hideHeaderClose:!0,hideHeader:!(i.title||i.titleHtml)},Qt(i,Kt(Ib))),{},{lazy:!1,busy:!1,visible:!1,noStacking:!1,noEnforceFocus:!1})});return Kt(Ib).forEach((function(t){Ft(i[t])||(o.$slots[Ib[t]]=or(i[t]))})),new Promise((function(t,e){var i=!1;o.$once(ro,(function(){i||e(new Error("BootstrapVue MsgBox destroyed before resolve"))})),o.$on(Nn,(function(e){if(!e.defaultPrevented){var o=n(e);e.defaultPrevented||(i=!0,t(o))}}));var r=document.createElement("div");document.body.appendChild(r),o.$mount(r)}))}},n=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;if(e&&!ue(_b)&&!ce(_b)&&Ot(o))return i(t,c(c({},Pb(n)),{},{msgBoxContent:e}),o)},r=function(){function t(e){o(this,t),Gt(this,{_vm:e,_root:e.$root}),Yt(this,{_vm:{enumerable:!0,configurable:!1,writable:!1},_root:{enumerable:!0,configurable:!1,writable:!1}})}return s(t,[{key:"show",value:function(t){if(t&&this._root){for(var e,i=arguments.length,n=new Array(i>1?i-1:0),o=1;o1?i-1:0),o=1;o1&&void 0!==arguments[1]?arguments[1]:{},i=c(c({},e),{},{okOnly:!0,okDisabled:!1,hideFooter:!1,msgBoxContent:t});return n(this._vm,t,i,(function(){return!0}))}},{key:"msgBoxConfirm",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=c(c({},e),{},{okOnly:!1,okDisabled:!1,cancelDisabled:!1,hideFooter:!1});return n(this._vm,t,i,(function(t){var e=t.trigger;return"ok"===e||"cancel"!==e&&null}))}}]),t}();t.mixin({beforeCreate:function(){this._bv__modal=new r(this)}}),Xt(t.prototype,_b)||Ut(t.prototype,_b,{get:function(){return this&&this._bv__modal||le('"'.concat(_b,'" must be accessed from a Vue instance "this" context.'),Ni),this._bv__modal}})}}})}}),Vb=vs({align:hs(go),cardHeader:hs(ho,!1),fill:hs(ho,!1),justified:hs(ho,!1),pills:hs(ho,!1),small:hs(ho,!1),tabs:hs(ho,!1),tag:hs(go,"ul"),vertical:hs(ho,!1)},ji),Eb=i.default.extend({name:ji,functional:!0,props:Vb,render:function(t,e){var i,n,o=e.props,r=e.data,s=e.children,l=o.tabs,c=o.pills,u=o.vertical,d=o.align,h=o.cardHeader;return t(o.tag,F(r,{staticClass:"nav",class:(i={"nav-tabs":l,"nav-pills":c&&!l,"card-header-tabs":!u&&h&&l,"card-header-pills":!u&&h&&c&&!l,"flex-column":u,"nav-fill":!u&&o.fill,"nav-justified":!u&&o.justified},a(i,(n=d,"justify-content-".concat(n="left"===n?"start":"right"===n?"end":n)),!u&&d),a(i,"small",o.small),i)}),s)}}),Lb=Qt(nl,["event","routerTag"]),Ab=vs(ee(c(c({},Lb),{},{linkAttrs:hs(vo,{}),linkClasses:hs(To)})),Ki),Rb=i.default.extend({name:Ki,functional:!0,props:Ab,render:function(t,e){var i=e.props,n=e.data,o=e.listeners,r=e.children;return t("li",F(Qt(n,["on"]),{staticClass:"nav-item"}),[t(ol,{staticClass:"nav-link",class:i.linkClasses,attrs:i.linkAttrs,props:ps(Lb,i),on:o},r)])}}),Mb=i.default.extend({name:"BNavText",functional:!0,props:{},render:function(t,e){var i=e.data,n=e.children;return t("li",F(i,{staticClass:"navbar-text"}),n)}}),Hb=Qt(Yh,["inline"]),zb=vs(ee(c(c({},Hb),{},{formClass:hs(To)})),qi),Nb=i.default.extend({name:qi,functional:!0,props:zb,render:function(t,e){var i=e.props,n=e.data,o=e.children,r=e.listeners,s=t(Uh,{class:i.formClass,props:c(c({},ps(Hb,i)),{},{inline:!0}),attrs:n.attrs,on:r},o);return t("li",F(Qt(n,["attrs","on"]),{staticClass:"form-inline"}),[s])}}),jb=vs(ee(c(c({},fc),Jt(Eh,[].concat(T(Kt(Oh)),["html","lazy","menuClass","noCaret","role","text","toggleClass"])))),Xi),Gb=i.default.extend({name:Xi,mixins:[pc,Vh,Cs],props:jb,computed:{toggleId:function(){return this.safeId("_BV_toggle_")},dropdownClasses:function(){return[this.directionClass,this.boundaryClass,{show:this.visible}]},menuClasses:function(){return[this.menuClass,{"dropdown-menu-right":this.right,show:this.visible}]},toggleClasses:function(){return[this.toggleClass,{"dropdown-toggle-no-caret":this.noCaret}]}},render:function(t){var e=this.toggleId,i=this.visible,n=this.hide,o=t(ol,{staticClass:"nav-link dropdown-toggle",class:this.toggleClasses,props:{href:"#".concat(this.id||""),disabled:this.disabled},attrs:{id:e,role:"button","aria-haspopup":"true","aria-expanded":i?"true":"false"},on:{mousedown:this.onMousedown,click:this.toggle,keydown:this.toggle},ref:"toggle"},[this.normalizeSlot([Eo,"text"])||t("span",{domProps:Fl(this.html,this.text)})]),r=t("ul",{staticClass:"dropdown-menu",class:this.menuClasses,attrs:{tabindex:"-1","aria-labelledby":e},on:{keydown:this.onKeydown},ref:"menu"},!this.lazy||i?this.normalizeSlot(Ao,{hide:n}):[t()]);return t("li",{staticClass:"nav-item b-nav-dropdown dropdown",class:this.dropdownClasses,attrs:{id:this.safeId()}},[o,r])}}),Wb=me({components:{BNav:Eb,BNavItem:Rb,BNavText:Mb,BNavForm:Nb,BNavItemDropdown:Gb,BNavItemDd:Gb,BNavDropdown:Gb,BNavDd:Gb},plugins:{DropdownPlugin:tf}}),Yb=vs({fixed:hs(go),print:hs(ho,!1),sticky:hs(ho,!1),tag:hs(go,"nav"),toggleable:hs(ko,!1),type:hs(go,"light"),variant:hs(go)},Gi),Ub=i.default.extend({name:Gi,mixins:[Cs],provide:function(){return{bvNavbar:this}},props:Yb,computed:{breakpointClass:function(){var t=this.toggleable,e=ss()[0],i=null;return t&&Et(t)&&t!==e?i="navbar-expand-".concat(t):!1===t&&(i="navbar-expand"),i}},render:function(t){var e,i=this.tag,n=this.type,o=this.variant,r=this.fixed;return t(i,{staticClass:"navbar",class:[(e={"d-print":this.print,"sticky-top":this.sticky},a(e,"navbar-".concat(n),n),a(e,"bg-".concat(o),o),a(e,"fixed-".concat(r),r),e),this.breakpointClass],attrs:{role:Br(i,"nav")?null:"navigation"}},[this.normalizeSlot()])}}),qb=vs(Jt(Vb,["tag","fill","justified","align","small"]),Yi),Kb=i.default.extend({name:Yi,functional:!0,props:qb,render:function(t,e){var i,n,o=e.props,r=e.data,s=e.children,l=o.align;return t(o.tag,F(r,{staticClass:"navbar-nav",class:(i={"nav-fill":o.fill,"nav-justified":o.justified},a(i,(n=l,"justify-content-".concat(n="left"===n?"start":"right"===n?"end":n)),l),a(i,"small",o.small),i)}),s)}}),Xb=Qt(nl,["event","routerTag"]);Xb.href.default=void 0,Xb.to.default=void 0;var Zb,Jb,Qb,tg,eg,ig,ng,og,rg,sg=vs(ee(c(c({},Xb),{},{tag:hs(go,"div")})),Wi),ag=i.default.extend({name:Wi,functional:!0,props:sg,render:function(t,e){var i=e.props,n=e.data,o=e.children,r=i.to||i.href;return t(r?ol:i.tag,F(n,{staticClass:"navbar-brand",props:r?ps(Xb,i):{}}),o)}}),lg="navbar-toggler",cg=Ds(Ue,"state"),ug=Ds(Ue,"sync-state"),dg=vs({disabled:hs(ho,!1),label:hs(go,"Toggle navigation"),target:hs(Co,void 0,!0)},Ui),hg=i.default.extend({name:Ui,directives:{VBToggle:ad},mixins:[Ja,Cs],props:dg,data:function(){return{toggleState:!1}},created:function(){this.listenOnRoot(cg,this.handleStateEvt),this.listenOnRoot(ug,this.handleStateEvt)},methods:{onClick:function(t){this.disabled||this.$emit(Bn,t)},handleStateEvt:function(t,e){t===this.target&&(this.toggleState=e)}},render:function(t){var e=this.disabled;return t("button",{staticClass:lg,class:{disabled:e},directives:[{name:"VBToggle",value:this.target}],attrs:{type:"button",disabled:e,"aria-label":this.label},on:{click:this.onClick}},[this.normalizeSlot(Ao,{expanded:this.toggleState})||t("span",{staticClass:"".concat(lg,"-icon")})])}}),fg=me({components:{BNavbar:Ub,BNavbarNav:Kb,BNavbarBrand:ag,BNavbarToggle:hg,BNavToggle:hg},plugins:{NavPlugin:Wb,CollapsePlugin:cd,DropdownPlugin:tf}}),pg=vs({label:hs(go),role:hs(go,"status"),small:hs(ho,!1),tag:hs(go,"span"),type:hs(go,"border"),variant:hs(go)},dn),mg=i.default.extend({name:dn,functional:!0,props:pg,render:function(t,e){var i,n=e.props,o=e.data,r=e.slots,s=e.scopedSlots,l=r(),c=Ts(jo,{},s||{},l)||n.label;return c&&(c=t("span",{staticClass:"sr-only"},c)),t(n.tag,F(o,{attrs:{role:c?n.role||"status":null,"aria-hidden":c?null:"true"},class:(i={},a(i,"spinner-".concat(n.type),n.type),a(i,"spinner-".concat(n.type,"-sm"),n.small),a(i,"text-".concat(n.variant),n.variant),i)}),[c||t()])}}),vg={top:0,left:0,bottom:0,right:0},bg=vs({bgColor:hs(go),blur:hs(go,"2px"),fixed:hs(ho,!1),noCenter:hs(ho,!1),noFade:hs(ho,!1),noWrap:hs(ho,!1),opacity:hs(_o,.85,(function(t){var e=cr(t,0);return e>=0&&e<=1})),overlayTag:hs(go,"div"),rounded:hs(ko,!1),show:hs(ho,!1),spinnerSmall:hs(ho,!1),spinnerType:hs(go,"border"),spinnerVariant:hs(go),variant:hs(go,"light"),wrapTag:hs(go,"div"),zIndex:hs(_o,10)},Zi),gg=i.default.extend({name:Zi,mixins:[Cs],props:bg,computed:{computedRounded:function(){var t=this.rounded;return!0===t||""===t?"rounded":t?"rounded-".concat(t):""},computedVariant:function(){var t=this.variant;return t&&!this.bgColor?"bg-".concat(t):""},slotScope:function(){return{spinnerType:this.spinnerType||null,spinnerVariant:this.spinnerVariant||null,spinnerSmall:this.spinnerSmall}}},methods:{defaultOverlayFn:function(t){var e=t.spinnerType,i=t.spinnerVariant,n=t.spinnerSmall;return this.$createElement(mg,{props:{type:e,variant:i,small:n}})}},render:function(t){var e=this,i=this.show,n=this.fixed,o=this.noFade,r=this.noWrap,s=this.slotScope,a=t();if(i){var l=t("div",{staticClass:"position-absolute",class:[this.computedVariant,this.computedRounded],style:c(c({},vg),{},{opacity:this.opacity,backgroundColor:this.bgColor||null,backdropFilter:this.blur?"blur(".concat(this.blur,")"):null})}),u=t("div",{staticClass:"position-absolute",style:this.noCenter?c({},vg):{top:"50%",left:"50%",transform:"translateX(-50%) translateY(-50%)"}},[this.normalizeSlot("overlay",s)||this.defaultOverlayFn(s)]);a=t(this.overlayTag,{staticClass:"b-overlay",class:{"position-absolute":!r||r&&!n,"position-fixed":r&&n},style:c(c({},vg),{},{zIndex:this.zIndex||10}),on:{click:function(t){return e.$emit(Bn,t)}},key:"overlay"},[l,u])}return a=t(Ls,{props:{noFade:o,appear:!0},on:{"after-enter":function(){return e.$emit(eo)},"after-leave":function(){return e.$emit(zn)}}},[a]),r?a:t(this.wrapTag,{staticClass:"b-overlay-wrap position-relative",attrs:{"aria-busy":i?"true":null}},r?[a]:[this.normalizeSlot(),a])}}),yg=me({components:{BOverlay:gg}}),wg=ys("value",{type:So,defaultValue:null,validator:function(t){return!(!It(t)&&lr(t,0)<1)||(le('"v-model" value must be a number greater than "0"',Ji),!1)}}),Tg=wg.mixin,Cg=wg.props,xg=wg.prop,Sg=wg.event,kg=function(t){var e=lr(t)||1;return e<1?5:e},$g=function(t,e){var i=lr(t)||1;return i>e?e:i<1?1:i},Bg=function(t){if(t.keyCode===Ga)return Bs(t,{immediatePropagation:!0}),t.currentTarget.click(),!1},_g=vs(ee(c(c({},Cg),{},{align:hs(go,"left"),ariaLabel:hs(go,"Pagination"),disabled:hs(ho,!1),ellipsisClass:hs(To),ellipsisText:hs(go,"â€Ļ"),firstClass:hs(To),firstNumber:hs(ho,!1),firstText:hs(go,"ÂĢ"),hideEllipsis:hs(ho,!1),hideGotoEndButtons:hs(ho,!1),labelFirstPage:hs(go,"Go to first page"),labelLastPage:hs(go,"Go to last page"),labelNextPage:hs(go,"Go to next page"),labelPage:hs(Bo,"Go to page"),labelPrevPage:hs(go,"Go to previous page"),lastClass:hs(To),lastNumber:hs(ho,!1),lastText:hs(go,"Âģ"),limit:hs(_o,5,(function(t){return!(lr(t,0)<1)||(le('Prop "limit" must be a number greater than "0"',Ji),!1)})),nextClass:hs(To),nextText:hs(go,"â€ē"),pageClass:hs(To),pills:hs(ho,!1),prevClass:hs(To),prevText:hs(go,"‹"),size:hs(go)})),"pagination"),Dg=i.default.extend({mixins:[Tg,Cs],props:_g,data:function(){var t=lr(this[xg],0);return{currentPage:t=t>0?t:-1,localNumberOfPages:1,localLimit:5}},computed:{btnSize:function(){var t=this.size;return t?"pagination-".concat(t):""},alignment:function(){var t=this.align;return"center"===t?"justify-content-center":"end"===t||"right"===t?"justify-content-end":"fill"===t?"text-center":""},styleClass:function(){return this.pills?"b-pagination-pills":""},computedCurrentPage:function(){return $g(this.currentPage,this.localNumberOfPages)},paginationParams:function(){var t=this.localLimit,e=this.localNumberOfPages,i=this.computedCurrentPage,n=this.hideEllipsis,o=this.firstNumber,r=this.lastNumber,s=!1,a=!1,l=t,c=1;e<=t?l=e:i3?(n&&!r||(a=!0,l=t-(o?0:1)),l=Ys(l,t)):e-i+23?(n&&!o||(s=!0,l=t-(r?0:1)),c=e-l+1):(t>3&&(l=t-(n?0:2),s=!(n&&!o),a=!(n&&!r)),c=i-Xs(l/2)),c<1?(c=1,s=!1):c>e-l&&(c=e-l+1,a=!1),s&&o&&c<4&&(l+=2,c=1,s=!1);var u=c+l-1;return a&&r&&u>e-3&&(l+=u===e-2?2:3,a=!1),t<=3&&(o&&1===c?l=Ys(l+1,e,t+1):r&&e===c+l-1&&(c=Us(c-1,1),l=Ys(e-c+1,e,t+1))),{showFirstDots:s,showLastDots:a,numberOfLinks:l=Ys(l,e-c+1),startNumber:c}},pageList:function(){var t=this.paginationParams,e=t.numberOfLinks,i=t.startNumber,n=this.computedCurrentPage,o=function(t,e){return rr(e,(function(e,i){return{number:t+i,classes:null}}))}(i,e);if(o.length>3){var r=n-i,s="bv-d-xs-down-none";if(0===r)for(var a=3;ar+1;u--)o[u].classes=s}}return o}},watch:(Zb={},a(Zb,xg,(function(t,e){t!==e&&(this.currentPage=$g(t,this.localNumberOfPages))})),a(Zb,"currentPage",(function(t,e){t!==e&&this.$emit(Sg,t>0?t:null)})),a(Zb,"limit",(function(t,e){t!==e&&(this.localLimit=kg(t))})),Zb),created:function(){var t=this;this.localLimit=kg(this.limit),this.$nextTick((function(){t.currentPage=t.currentPage>t.localNumberOfPages?t.localNumberOfPages:t.currentPage}))},methods:{handleKeyNav:function(t){var e=t.keyCode,i=t.shiftKey;this.isNav||(e===Na||e===Wa?(Bs(t,{propagation:!1}),i?this.focusFirst():this.focusPrev()):e!==ja&&e!==Ra||(Bs(t,{propagation:!1}),i?this.focusLast():this.focusNext()))},getButtons:function(){return Pr("button.page-link, a.page-link",this.$el).filter((function(t){return Dr(t)}))},focusCurrent:function(){var t=this;this.$nextTick((function(){var e=t.getButtons().find((function(e){return lr(jr(e,"aria-posinset"),0)===t.computedCurrentPage}));ts(e)||t.focusFirst()}))},focusFirst:function(){var t=this;this.$nextTick((function(){var e=t.getButtons().find((function(t){return!Fr(t)}));ts(e)}))},focusLast:function(){var t=this;this.$nextTick((function(){var e=t.getButtons().reverse().find((function(t){return!Fr(t)}));ts(e)}))},focusPrev:function(){var t=this;this.$nextTick((function(){var e=t.getButtons(),i=e.indexOf($r());i>0&&!Fr(e[i-1])&&ts(e[i-1])}))},focusNext:function(){var t=this;this.$nextTick((function(){var e=t.getButtons(),i=e.indexOf($r());is,v=n<1?1:n>s?s:n,b={disabled:f,page:v,index:v-1},g=e.normalizeSlot(a,b)||vr(l)||t(),y=t(f?"span":r?ol:"button",{staticClass:"page-link",class:{"flex-grow-1":!r&&!f&&h},props:f||!r?{}:e.linkProps(n),attrs:{role:r?null:"menuitem",type:r||f?null:"button",tabindex:f||r?null:"-1","aria-label":o,"aria-controls":e.ariaControls||null,"aria-disabled":f?"true":null},on:f?{}:{"!click":function(t){e.onClick(t,n)},keydown:Bg}},[g]);return t("li",{key:d,staticClass:"page-item",class:[{disabled:f,"flex-fill":h,"d-flex":h&&!r&&!f},c],attrs:{role:r?null:"presentation","aria-hidden":f?"true":null}},[y])},b=function(i){return t("li",{staticClass:"page-item",class:["disabled","bv-d-xs-down-none",h?"flex-fill":"",e.ellipsisClass],attrs:{role:"separator"},key:"ellipsis-".concat(i?"last":"first")},[t("span",{staticClass:"page-link"},[e.normalizeSlot("ellipsis-text")||vr(e.ellipsisText)||t()])])},g=function(o,a){var l=o.number,c=p(l)&&!m,u=i?null:c||m&&0===a?"0":"-1",d={role:r?null:"menuitemradio",type:r||i?null:"button","aria-disabled":i?"true":null,"aria-controls":e.ariaControls||null,"aria-label":gs(n)?n(l):"".concat(Ot(n)?n():n," ").concat(l),"aria-checked":r?null:c?"true":"false","aria-current":r&&c?"page":null,"aria-posinset":r?null:l,"aria-setsize":r?null:s,tabindex:r?null:u},f=vr(e.makePage(l)),v={page:l,index:l-1,content:f,active:c,disabled:i},b=t(i?"span":r?ol:"button",{props:i||!r?{}:e.linkProps(l),staticClass:"page-link",class:{"flex-grow-1":!r&&!i&&h},attrs:d,on:i?{}:{"!click":function(t){e.onClick(t,l)},keydown:Bg}},[e.normalizeSlot("page",v)||f]);return t("li",{staticClass:"page-item",class:[{disabled:i,active:c,"flex-fill":h,"d-flex":h&&!r&&!i},o.classes,e.pageClass],attrs:{role:r?null:"presentation"},key:"page-".concat(l)},[b])},y=t();this.firstNumber||this.hideGotoEndButtons||(y=v(1,this.labelFirstPage,"first-text",this.firstText,this.firstClass,1,"pagination-goto-first")),f.push(y),f.push(v(a-1,this.labelPrevPage,"prev-text",this.prevText,this.prevClass,1,"pagination-goto-prev")),f.push(this.firstNumber&&1!==l[0]?g({number:1},0):t()),f.push(u?b(!1):t()),this.pageList.forEach((function(t,i){var n=u&&e.firstNumber&&1!==l[0]?1:0;f.push(g(t,i+n))})),f.push(d?b(!0):t()),f.push(this.lastNumber&&l[l.length-1]!==s?g({number:s},-1):t()),f.push(v(a+1,this.labelNextPage,"next-text",this.nextText,this.nextClass,s,"pagination-goto-next"));var w=t();this.lastNumber||this.hideGotoEndButtons||(w=v(s,this.labelLastPage,"last-text",this.lastText,this.lastClass,s,"pagination-goto-last")),f.push(w);var T=t("ul",{staticClass:"pagination",class:["b-pagination",this.btnSize,this.alignment,this.styleClass],attrs:{role:r?null:"menubar","aria-disabled":i?"true":"false","aria-label":r?null:o||null},on:r?{}:{keydown:this.handleKeyNav},ref:"ul"},f);return r?t("nav",{attrs:{"aria-disabled":i?"true":null,"aria-hidden":i?"true":"false","aria-label":r&&o||null}},[T]):T}}),Fg=function(t){return Us(lr(t)||20,1)},Ig=function(t){return Us(lr(t)||0,0)},Pg=vs(ee(c(c({},_g),{},{ariaControls:hs(go),perPage:hs(_o,20),totalRows:hs(_o,0)})),Ji),Og=i.default.extend({name:Ji,mixins:[Dg],props:Pg,computed:{numberOfPages:function(){var t=Ks(Ig(this.totalRows)/Fg(this.perPage));return t<1?1:t},pageSizeNumberOfPages:function(){return{perPage:Fg(this.perPage),totalRows:Ig(this.totalRows),numberOfPages:this.numberOfPages}}},watch:{pageSizeNumberOfPages:function(t,e){Pt(e)||(t.perPage!==e.perPage&&t.totalRows===e.totalRows||t.numberOfPages!==e.numberOfPages&&this.currentPage>t.numberOfPages)&&(this.currentPage=1),this.localNumberOfPages=t.numberOfPages}},created:function(){var t=this;this.localNumberOfPages=this.numberOfPages;var e=lr(this[xg],0);e>0?this.currentPage=e:this.$nextTick((function(){t.currentPage=0}))},methods:{onClick:function(t,e){var i=this;if(e!==this.currentPage){var n=t.target,o=new BvEvent(Kn,{cancelable:!0,vueTarget:this,target:n});this.$emit(o.type,o,e),o.defaultPrevented||(this.currentPage=e,this.$emit($n,this.currentPage),this.$nextTick((function(){Dr(n)&&i.$el.contains(n)?ts(n):i.focusCurrent()})))}},makePage:function(t){return t},linkProps:function(){return{}}}}),Vg=me({components:{BPagination:Og}}),Eg=Qt(nl,["event","routerTag"]),Lg=vs(ee(c(c(c({},_g),Eg),{},{baseUrl:hs(go,"/"),linkGen:hs(po),noPageDetect:hs(ho,!1),numberOfPages:hs(_o,1,(function(t){return!(lr(t,0)<1)||(le('Prop "number-of-pages" must be a number greater than "0"',Qi),!1)})),pageGen:hs(po),pages:hs(uo),useRouter:hs(ho,!1)})),Qi),Ag=i.default.extend({name:Qi,mixins:[Dg],props:Lg,computed:{isNav:function(){return!0},computedValue:function(){var t=lr(this.value,0);return t<1?null:t}},watch:{numberOfPages:function(){var t=this;this.$nextTick((function(){t.setNumberOfPages()}))},pages:function(){var t=this;this.$nextTick((function(){t.setNumberOfPages()}))}},created:function(){this.setNumberOfPages()},mounted:function(){var t=this;this.$router&&this.$watch("$route",(function(){t.$nextTick((function(){xr((function(){t.guessCurrentPage()}))}))}))},methods:{setNumberOfPages:function(){var t,e=this;Rt(this.pages)&&this.pages.length>0?this.localNumberOfPages=this.pages.length:this.localNumberOfPages=(t=this.numberOfPages,Us(lr(t,0),1)),this.$nextTick((function(){e.guessCurrentPage()}))},onClick:function(t,e){var i=this;if(e!==this.currentPage){var n=t.currentTarget||t.target,o=new BvEvent(Kn,{cancelable:!0,vueTarget:this,target:n});this.$emit(o.type,o,e),o.defaultPrevented||(xr((function(){i.currentPage=e,i.$emit($n,e)})),this.$nextTick((function(){es(n)})))}},getPageInfo:function(t){if(!Rt(this.pages)||0===this.pages.length||Ft(this.pages[t-1])){var e="".concat(this.baseUrl).concat(t);return{link:this.useRouter?{path:e}:e,text:vr(t)}}var i=this.pages[t-1];if(Mt(i)){var n=i.link;return{link:Mt(n)?n:this.useRouter?{path:n}:n,text:vr(i.text||t)}}return{link:vr(i),text:vr(t)}},makePage:function(t){var e=this.pageGen,i=this.getPageInfo(t);return gs(e)?e(t,i):i.text},makeLink:function(t){var e=this.linkGen,i=this.getPageInfo(t);return gs(e)?e(t,i):i.link},linkProps:function(t){var e=ps(Eg,this),i=this.makeLink(t);return this.useRouter||Mt(i)?e.to=i:e.href=i,e},resolveLink:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";try{(t=document.createElement("a")).href=ua({to:e},"a","/","/"),document.body.appendChild(t);var i=t,n=i.pathname,o=i.hash,r=i.search;return document.body.removeChild(t),{path:n,hash:o,query:aa(r)}}catch(e){try{t&&t.parentNode&&t.parentNode.removeChild(t)}catch(t){}return{}}},resolveRoute:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";try{var e=this.$router.resolve(t,this.$route).route;return{path:e.path,hash:e.hash,query:e.query}}catch(t){return{}}},guessCurrentPage:function(){var t=this.$router,e=this.$route,i=this.computedValue;if(!this.noPageDetect&&!i&&(M||!M&&t))for(var n=t&&e?{path:e.path,hash:e.hash,query:e.query}:{},o=M?window.location||document.location:null,r=o?{path:o.pathname,hash:o.hash,query:aa(o.search)}:{},s=1;!i&&s<=this.localNumberOfPages;s++){var a=this.makeLink(s);i=t&&(Mt(a)||this.useRouter)?Ua(this.resolveRoute(a),n)?s:null:M?Ua(this.resolveLink(a),r)?s:null:-1}this.currentPage=i>0?i:0}}}),Rg=me({components:{BPaginationNav:Ag}}),Mg={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left",TOPLEFT:"top",TOPRIGHT:"top",RIGHTTOP:"right",RIGHTBOTTOM:"right",BOTTOMLEFT:"bottom",BOTTOMRIGHT:"bottom",LEFTTOP:"left",LEFTBOTTOM:"left"},Hg={AUTO:0,TOPLEFT:-1,TOP:0,TOPRIGHT:1,RIGHTTOP:-1,RIGHT:0,RIGHTBOTTOM:1,BOTTOMLEFT:-1,BOTTOM:0,BOTTOMRIGHT:1,LEFTTOP:-1,LEFT:0,LEFTBOTTOM:1},zg={arrowPadding:hs(_o,6),boundary:hs([HTMLElement,go],"scrollParent"),boundaryPadding:hs(_o,5),fallbackPlacement:hs(Co,"flip"),offset:hs(_o,0),placement:hs(go,"top"),target:hs([HTMLElement,SVGElement])},Ng=i.default.extend({name:"BVPopper",props:zg,data:function(){return{noFade:!1,localShow:!0,attachment:this.getAttachment(this.placement)}},computed:{templateType:function(){return"unknown"},popperConfig:function(){var t=this,e=this.placement;return{placement:this.getAttachment(e),modifiers:{offset:{offset:this.getOffset(e)},flip:{behavior:this.fallbackPlacement},arrow:{element:".arrow"},preventOverflow:{padding:this.boundaryPadding,boundariesElement:this.boundary}},onCreate:function(e){e.originalPlacement!==e.placement&&t.popperPlacementChange(e)},onUpdate:function(e){t.popperPlacementChange(e)}}}},created:function(){var t=this;this.$_popper=null,this.localShow=!0,this.$on(to,(function(e){t.popperCreate(e)}));var e=function(){t.$nextTick((function(){xr((function(){t.$destroy()}))}))};this.$parent.$once(ro,e),this.$once(zn,e)},beforeMount:function(){this.attachment=this.getAttachment(this.placement)},updated:function(){this.updatePopper()},beforeDestroy:function(){this.destroyPopper()},destroyed:function(){var t=this.$el;t&&t.parentNode&&t.parentNode.removeChild(t)},methods:{hide:function(){this.localShow=!1},getAttachment:function(t){return Mg[String(t).toUpperCase()]||"auto"},getOffset:function(t){if(!this.offset){var e=this.$refs.arrow||Or(".arrow",this.$el),i=cr(Kr(e).width,0)+cr(this.arrowPadding,0);switch(Hg[String(t).toUpperCase()]||0){case 1:return"+50%p - ".concat(i,"px");case-1:return"-50%p + ".concat(i,"px");default:return 0}}return this.offset},popperCreate:function(t){this.destroyPopper(),this.$_popper=new mh(this.target,t,this.popperConfig)},destroyPopper:function(){this.$_popper&&this.$_popper.destroy(),this.$_popper=null},updatePopper:function(){this.$_popper&&this.$_popper.scheduleUpdate()},popperPlacementChange:function(t){this.attachment=this.getAttachment(t.placement)},renderTemplate:function(t){return t("div")}},render:function(t){var e=this,i=this.noFade;return t(Ls,{props:{appear:!0,noFade:i},on:{beforeEnter:function(t){return e.$emit(to,t)},afterEnter:function(t){return e.$emit(eo,t)},beforeLeave:function(t){return e.$emit(Nn,t)},afterLeave:function(t){return e.$emit(zn,t)}}},[this.localShow?this.renderTemplate(t):t()])}}),jg={html:hs(ho,!1),id:hs(go)},Gg=i.default.extend({name:"BVTooltipTemplate",extends:Ng,mixins:[ib],props:jg,data:function(){return{title:"",content:"",variant:null,customClass:null,interactive:!0}},computed:{templateType:function(){return"tooltip"},templateClasses:function(){var t,e=this.variant,i=this.attachment,n=this.templateType;return[(t={noninteractive:!this.interactive},a(t,"b-".concat(n,"-").concat(e),e),a(t,"bs-".concat(n,"-").concat(i),i),t),this.customClass]},templateAttributes:function(){var t=this.id;return c(c({},this.$parent.$parent.$attrs),{},{id:t,role:"tooltip",tabindex:"-1"},this.scopedStyleAttrs)},templateListeners:function(){var t=this;return{mouseenter:function(e){t.$emit(Wn,e)},mouseleave:function(e){t.$emit(Yn,e)},focusin:function(e){t.$emit(Rn,e)},focusout:function(e){t.$emit(Mn,e)}}}},methods:{renderTemplate:function(t){var e=this.title,i=Ot(e)?e({}):e,n=this.html&&!Ot(e)?{innerHTML:e}:{};return t("div",{staticClass:"tooltip b-tooltip",class:this.templateClasses,attrs:this.templateAttributes,on:this.templateListeners},[t("div",{staticClass:"arrow",ref:"arrow"}),t("div",{staticClass:"tooltip-inner",domProps:n},[i])])}}}),Wg=".modal-content",Yg=Ds(Ni,zn),Ug=[Wg,".b-sidebar"].join(", "),qg="data-original-title",Kg={title:"",content:"",variant:null,customClass:null,triggers:"",placement:"auto",fallbackPlacement:"flip",target:null,container:null,noFade:!1,boundary:"scrollParent",boundaryPadding:5,offset:0,delay:0,arrowPadding:6,interactive:!0,disabled:!1,id:null,html:!1},Xg=i.default.extend({name:"BVTooltip",mixins:[Ja],data:function(){return c(c({},Kg),{},{activeTrigger:{hover:!1,click:!1,focus:!1},localShow:!1})},computed:{templateType:function(){return"tooltip"},computedId:function(){return this.id||"__bv_".concat(this.templateType,"_").concat(this._uid,"__")},computedDelay:function(){var t={show:0,hide:0};return Ht(this.delay)?(t.show=Us(lr(this.delay.show,0),0),t.hide=Us(lr(this.delay.hide,0),0)):(Lt(this.delay)||Et(this.delay))&&(t.show=t.hide=Us(lr(this.delay,0),0)),t},computedTriggers:function(){return or(this.triggers).filter(ne).join(" ").trim().toLowerCase().split(/\s+/).sort()},isWithActiveTrigger:function(){for(var t in this.activeTrigger)if(this.activeTrigger[t])return!0;return!1},computedTemplateData:function(){return{title:this.title,content:this.content,variant:this.variant,customClass:this.customClass,noFade:this.noFade,interactive:this.interactive}}},watch:{computedTriggers:function(t,e){var i=this;Ua(t,e)||this.$nextTick((function(){i.unListen(),e.forEach((function(e){nr(t,e)||i.activeTrigger[e]&&(i.activeTrigger[e]=!1)})),i.listen()}))},computedTemplateData:function(){this.handleTemplateUpdate()},title:function(t,e){t===e||t||this.hide()},disabled:function(t){t?this.disable():this.enable()}},created:function(){var t=this;this.$_tip=null,this.$_hoverTimeout=null,this.$_hoverState="",this.$_visibleInterval=null,this.$_enabled=!this.disabled,this.$_noop=su.bind(this),this.$parent&&this.$parent.$once(oo,(function(){t.$nextTick((function(){xr((function(){t.$destroy()}))}))})),this.$nextTick((function(){var e=t.getTarget();e&&Lr(document.body,e)?(t.scopeId=eb(t.$parent),t.listen()):le(Et(t.target)?'Unable to find target element by ID "#'.concat(t.target,'" in document.'):"The provided target is no valid HTML element.",t.templateType)}))},updated:function(){this.$nextTick(this.handleTemplateUpdate)},deactivated:function(){this.forceHide()},beforeDestroy:function(){this.unListen(),this.setWhileOpenListeners(!1),this.clearHoverTimeout(),this.clearVisibilityInterval(),this.destroyTemplate(),this.$_noop=null},methods:{getTemplate:function(){return Gg},updateData:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=!1;Kt(Kg).forEach((function(n){Ft(e[n])||t[n]===e[n]||(t[n]=e[n],"title"===n&&(i=!0))})),i&&this.localShow&&this.fixTitle()},createTemplateAndShow:function(){var t=this.getContainer(),e=this.getTemplate(),i=this.$_tip=new e({parent:this,propsData:{id:this.computedId,html:this.html,placement:this.placement,fallbackPlacement:this.fallbackPlacement,target:this.getPlacementTarget(),boundary:this.getBoundary(),offset:lr(this.offset,0),arrowPadding:lr(this.arrowPadding,0),boundaryPadding:lr(this.boundaryPadding,0)}});this.handleTemplateUpdate(),i.$once(to,this.onTemplateShow),i.$once(eo,this.onTemplateShown),i.$once(Nn,this.onTemplateHide),i.$once(zn,this.onTemplateHidden),i.$once(ro,this.destroyTemplate),i.$on(Rn,this.handleEvent),i.$on(Mn,this.handleEvent),i.$on(Wn,this.handleEvent),i.$on(Yn,this.handleEvent),i.$mount(t.appendChild(document.createElement("div")))},hideTemplate:function(){this.$_tip&&this.$_tip.hide(),this.clearActiveTriggers(),this.$_hoverState=""},destroyTemplate:function(){this.setWhileOpenListeners(!1),this.clearHoverTimeout(),this.$_hoverState="",this.clearActiveTriggers(),this.localPlacementTarget=null;try{this.$_tip.$destroy()}catch(t){}this.$_tip=null,this.removeAriaDescribedby(),this.restoreTitle(),this.localShow=!1},getTemplateElement:function(){return this.$_tip?this.$_tip.$el:null},handleTemplateUpdate:function(){var t=this,e=this.$_tip;if(e){["title","content","variant","customClass","noFade","interactive"].forEach((function(i){e[i]!==t[i]&&(e[i]=t[i])}))}},show:function(){var t=this.getTarget();if(t&&Lr(document.body,t)&&Dr(t)&&!this.dropdownOpen()&&(!Pt(this.title)&&""!==this.title||!Pt(this.content)&&""!==this.content)&&!this.$_tip&&!this.localShow){this.localShow=!0;var e=this.buildEvent(to,{cancelable:!0});this.emitEvent(e),e.defaultPrevented?this.destroyTemplate():(this.fixTitle(),this.addAriaDescribedby(),this.createTemplateAndShow())}},hide:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=this.getTemplateElement();if(e&&this.localShow){var i=this.buildEvent(Nn,{cancelable:!t});this.emitEvent(i),i.defaultPrevented||this.hideTemplate()}else this.restoreTitle()},forceHide:function(){this.getTemplateElement()&&this.localShow&&(this.setWhileOpenListeners(!1),this.clearHoverTimeout(),this.$_hoverState="",this.clearActiveTriggers(),this.$_tip&&(this.$_tip.noFade=!0),this.hide(!0))},enable:function(){this.$_enabled=!0,this.emitEvent(this.buildEvent(En))},disable:function(){this.$_enabled=!1,this.emitEvent(this.buildEvent(On))},onTemplateShow:function(){this.setWhileOpenListeners(!0)},onTemplateShown:function(){var t=this.$_hoverState;this.$_hoverState="","out"===t&&this.leave(null),this.emitEvent(this.buildEvent(eo))},onTemplateHide:function(){this.setWhileOpenListeners(!1)},onTemplateHidden:function(){this.destroyTemplate(),this.emitEvent(this.buildEvent(zn))},getTarget:function(){var t=this.target;return Et(t)?t=Ar(t.replace(/^#/,"")):Ot(t)?t=t():t&&(t=t.$el||t),kr(t)?t:null},getPlacementTarget:function(){return this.getTarget()},getTargetId:function(){var t=this.getTarget();return t&&t.id?t.id:null},getContainer:function(){var t=!!this.container&&(this.container.$el||this.container),e=document.body,i=this.getTarget();return!1===t?Er(Ug,i)||e:Et(t)&&Ar(t.replace(/^#/,""))||e},getBoundary:function(){return this.boundary?this.boundary.$el||this.boundary:"scrollParent"},isInModal:function(){var t=this.getTarget();return t&&Er(Wg,t)},isDropdown:function(){var t=this.getTarget();return t&&Hr(t,"dropdown")},dropdownOpen:function(){var t=this.getTarget();return this.isDropdown()&&t&&Or(".dropdown-menu.show",t)},clearHoverTimeout:function(){clearTimeout(this.$_hoverTimeout),this.$_hoverTimeout=null},clearVisibilityInterval:function(){clearInterval(this.$_visibleInterval),this.$_visibleInterval=null},clearActiveTriggers:function(){for(var t in this.activeTrigger)this.activeTrigger[t]=!1},addAriaDescribedby:function(){var t=this.getTarget(),e=jr(t,"aria-describedby")||"";e=e.split(/\s+/).concat(this.computedId).join(" ").trim(),zr(t,"aria-describedby",e)},removeAriaDescribedby:function(){var t=this,e=this.getTarget(),i=jr(e,"aria-describedby")||"";(i=i.split(/\s+/).filter((function(e){return e!==t.computedId})).join(" ").trim())?zr(e,"aria-describedby",i):Nr(e,"aria-describedby")},fixTitle:function(){var t=this.getTarget();if(Gr(t,"title")){var e=jr(t,"title");zr(t,"title",""),e&&zr(t,qg,e)}},restoreTitle:function(){var t=this.getTarget();if(Gr(t,qg)){var e=jr(t,qg);Nr(t,qg),e&&zr(t,"title",e)}},buildEvent:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new BvEvent(t,c({cancelable:!1,target:this.getTarget(),relatedTarget:this.getTemplateElement()||null,componentId:this.computedId,vueTarget:this},e))},emitEvent:function(t){var e=t.type;this.emitOnRoot(Ds(this.templateType,e),t),this.$emit(e,t)},listen:function(){var t=this,e=this.getTarget();e&&(this.setRootListener(!0),this.computedTriggers.forEach((function(i){"click"===i?Ss(e,"click",t.handleEvent,lo):"focus"===i?(Ss(e,"focusin",t.handleEvent,lo),Ss(e,"focusout",t.handleEvent,lo)):"blur"===i?Ss(e,"focusout",t.handleEvent,lo):"hover"===i&&(Ss(e,"mouseenter",t.handleEvent,lo),Ss(e,"mouseleave",t.handleEvent,lo))}),this))},unListen:function(){var t=this,e=this.getTarget();this.setRootListener(!1),["click","focusin","focusout","mouseenter","mouseleave"].forEach((function(i){e&&ks(e,i,t.handleEvent,lo)}),this)},setRootListener:function(t){var e=this.$root;if(e){var i=t?"$on":"$off",n=this.templateType;e[i](Fs(n,Nn),this.doHide),e[i](Fs(n,to),this.doShow),e[i](Fs(n,Pn),this.doDisable),e[i](Fs(n,Vn),this.doEnable)}},setWhileOpenListeners:function(t){this.setModalListener(t),this.setDropdownListener(t),this.visibleCheck(t),this.setOnTouchStartListener(t)},visibleCheck:function(t){var e=this;this.clearVisibilityInterval();var i=this.getTarget(),n=this.getTemplateElement();t&&(this.$_visibleInterval=setInterval((function(){!n||!e.localShow||i.parentNode&&Dr(i)||e.forceHide()}),100))},setModalListener:function(t){this.isInModal()&&this.$root[t?"$on":"$off"](Yg,this.forceHide)},setOnTouchStartListener:function(t){var e=this;"ontouchstart"in document.documentElement&&ir(document.body.children).forEach((function(i){$s(t,i,"mouseover",e.$_noop)}))},setDropdownListener:function(t){var e=this.getTarget();e&&this.$root&&this.isDropdown&&e.__vue__&&e.__vue__[t?"$on":"$off"](eo,this.forceHide)},handleEvent:function(t){var e=this.getTarget();if(e&&!Fr(e)&&this.$_enabled&&!this.dropdownOpen()){var i=t.type,n=this.computedTriggers;if("click"===i&&nr(n,"click"))this.click(t);else if("mouseenter"===i&&nr(n,"hover"))this.enter(t);else if("focusin"===i&&nr(n,"focus"))this.enter(t);else if("focusout"===i&&(nr(n,"focus")||nr(n,"blur"))||"mouseleave"===i&&nr(n,"hover")){var o=this.getTemplateElement(),r=t.target,s=t.relatedTarget;if(o&&Lr(o,r)&&Lr(e,s)||o&&Lr(e,r)&&Lr(o,s)||o&&Lr(o,r)&&Lr(o,s)||Lr(e,r)&&Lr(e,s))return;this.leave(t)}}},doHide:function(t){t&&this.getTargetId()!==t&&this.computedId!==t||this.forceHide()},doShow:function(t){t&&this.getTargetId()!==t&&this.computedId!==t||this.show()},doDisable:function(t){t&&this.getTargetId()!==t&&this.computedId!==t||this.disable()},doEnable:function(t){t&&this.getTargetId()!==t&&this.computedId!==t||this.enable()},click:function(t){this.$_enabled&&!this.dropdownOpen()&&(ts(t.currentTarget),this.activeTrigger.click=!this.activeTrigger.click,this.isWithActiveTrigger?this.enter(null):this.leave(null))},toggle:function(){this.$_enabled&&!this.dropdownOpen()&&(this.localShow?this.leave(null):this.enter(null))},enter:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;e&&(this.activeTrigger["focusin"===e.type?"focus":"hover"]=!0),this.localShow||"in"===this.$_hoverState?this.$_hoverState="in":(this.clearHoverTimeout(),this.$_hoverState="in",this.computedDelay.show?(this.fixTitle(),this.$_hoverTimeout=setTimeout((function(){"in"===t.$_hoverState?t.show():t.localShow||t.restoreTitle()}),this.computedDelay.show)):this.show())},leave:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;e&&(this.activeTrigger["focusout"===e.type?"focus":"hover"]=!1,"focusout"===e.type&&nr(this.computedTriggers,"blur")&&(this.activeTrigger.click=!1,this.activeTrigger.hover=!1)),this.isWithActiveTrigger||(this.clearHoverTimeout(),this.$_hoverState="out",this.computedDelay.hide?this.$_hoverTimeout=setTimeout((function(){"out"===t.$_hoverState&&t.hide()}),this.computedDelay.hide):this.hide())}}}),Zg="disabled",Jg="update:disabled",Qg="show",ty=vs((a(Jb={boundary:hs([HTMLElement,vo,go],"scrollParent"),boundaryPadding:hs(_o,50),container:hs([HTMLElement,vo,go]),customClass:hs(go),delay:hs(Do,50)},Zg,hs(ho,!1)),a(Jb,"fallbackPlacement",hs(Co,"flip")),a(Jb,"id",hs(go)),a(Jb,"noFade",hs(ho,!1)),a(Jb,"noninteractive",hs(ho,!1)),a(Jb,"offset",hs(_o,0)),a(Jb,"placement",hs(go,"top")),a(Jb,Qg,hs(ho,!1)),a(Jb,"target",hs([HTMLElement,SVGElement,po,vo,go],void 0,!0)),a(Jb,"title",hs(go)),a(Jb,"triggers",hs(Co,"hover focus")),a(Jb,"variant",hs(go)),Jb),Sn),ey=i.default.extend({name:Sn,mixins:[Cs],inheritAttrs:!1,props:ty,data:function(){return{localShow:this.show,localTitle:"",localContent:""}},computed:{templateData:function(){return c({title:this.localTitle,content:this.localContent,interactive:!this.noninteractive},Jt(this.$props,["boundary","boundaryPadding","container","customClass","delay","fallbackPlacement","id","noFade","offset","placement","target","target","triggers","variant",Zg]))},templateTitleContent:function(){return{title:this.title,content:this.content}}},watch:(Qb={},a(Qb,Qg,(function(t,e){t!==e&&t!==this.localShow&&this.$_toolpop&&(t?this.$_toolpop.show():this.$_toolpop.forceHide())})),a(Qb,Zg,(function(t){t?this.doDisable():this.doEnable()})),a(Qb,"localShow",(function(t){this.$emit("update:show",t)})),a(Qb,"templateData",(function(){var t=this;this.$nextTick((function(){t.$_toolpop&&t.$_toolpop.updateData(t.templateData)}))})),a(Qb,"templateTitleContent",(function(){this.$nextTick(this.updateContent)})),Qb),created:function(){this.$_toolpop=null},updated:function(){this.$nextTick(this.updateContent)},beforeDestroy:function(){this.$off(qn,this.doOpen),this.$off(_n,this.doClose),this.$off(Pn,this.doDisable),this.$off(Vn,this.doEnable),this.$_toolpop&&(this.$_toolpop.$destroy(),this.$_toolpop=null)},mounted:function(){var t=this;this.$nextTick((function(){var e=t.getComponent();t.updateContent();var i=eb(t)||eb(t.$parent),n=t.$_toolpop=new e({parent:t,_scopeId:i||void 0});n.updateData(t.templateData),n.$on(to,t.onShow),n.$on(eo,t.onShown),n.$on(Nn,t.onHide),n.$on(zn,t.onHidden),n.$on(On,t.onDisabled),n.$on(En,t.onEnabled),t.disabled&&t.doDisable(),t.$on(qn,t.doOpen),t.$on(_n,t.doClose),t.$on(Pn,t.doDisable),t.$on(Vn,t.doEnable),t.localShow&&n.show()}))},methods:{getComponent:function(){return Xg},updateContent:function(){this.setTitle(this.normalizeSlot()||this.title)},setTitle:function(t){t=Pt(t)?"":t,this.localTitle!==t&&(this.localTitle=t)},setContent:function(t){t=Pt(t)?"":t,this.localContent!==t&&(this.localContent=t)},onShow:function(t){this.$emit(to,t),t&&(this.localShow=!t.defaultPrevented)},onShown:function(t){this.localShow=!0,this.$emit(eo,t)},onHide:function(t){this.$emit(Nn,t)},onHidden:function(t){this.$emit(zn,t),this.localShow=!1},onDisabled:function(t){t&&t.type===On&&(this.$emit(Jg,!0),this.$emit(On,t))},onEnabled:function(t){t&&t.type===En&&(this.$emit(Jg,!1),this.$emit(En,t))},doOpen:function(){!this.localShow&&this.$_toolpop&&this.$_toolpop.show()},doClose:function(){this.localShow&&this.$_toolpop&&this.$_toolpop.hide()},doDisable:function(){this.$_toolpop&&this.$_toolpop.disable()},doEnable:function(){this.$_toolpop&&this.$_toolpop.enable()}},render:function(t){return t()}}),iy=i.default.extend({name:"BVPopoverTemplate",extends:Gg,computed:{templateType:function(){return"popover"}},methods:{renderTemplate:function(t){var e=this.title,i=this.content,n=Ot(e)?e({}):e,o=Ot(i)?i({}):i,r=this.html&&!Ot(e)?{innerHTML:e}:{},s=this.html&&!Ot(i)?{innerHTML:i}:{};return t("div",{staticClass:"popover b-popover",class:this.templateClasses,attrs:this.templateAttributes,on:this.templateListeners},[t("div",{staticClass:"arrow",ref:"arrow"}),Pt(n)||""===n?t():t("h3",{staticClass:"popover-header",domProps:r},[n]),Pt(o)||""===o?t():t("div",{staticClass:"popover-body",domProps:s},[o])])}}}),ny=i.default.extend({name:"BVPopover",extends:Xg,computed:{templateType:function(){return"popover"}},methods:{getTemplate:function(){return iy}}}),oy=vs(ee(c(c({},ty),{},{content:hs(go),placement:hs(go,"right"),triggers:hs(Co,Bn)})),tn),ry=i.default.extend({name:tn,extends:ey,inheritAttrs:!1,props:oy,methods:{getComponent:function(){return ny},updateContent:function(){this.setContent(this.normalizeSlot()||this.content),this.setTitle(this.normalizeSlot(tr)||this.title)}}}),sy="__BV_Popover__",ay={focus:!0,hover:!0,click:!0,blur:!0,manual:!0},ly=/^html$/i,cy=/^nofade$/i,uy=/^(auto|top(left|right)?|bottom(left|right)?|left(top|bottom)?|right(top|bottom)?)$/i,dy=/^(window|viewport|scrollParent)$/i,hy=/^d\d+$/i,fy=/^ds\d+$/i,py=/^dh\d+$/i,my=/^o-?\d+$/i,vy=/^v-.+$/i,by=/\s+/,gy=function(t,e,i){if(M){var n=function(t,e){var i={title:void 0,content:void 0,trigger:"",placement:"right",fallbackPlacement:"flip",container:!1,animation:!0,offset:0,disabled:!1,id:null,html:!1,delay:rs(tn,"delay",50),boundary:String(rs(tn,"boundary","scrollParent")),boundaryPadding:lr(rs(tn,"boundaryPadding",5),0),variant:rs(tn,"variant"),customClass:rs(tn,"customClass")};if(Et(t.value)||Lt(t.value)||Ot(t.value)?i.content=t.value:Ht(t.value)&&(i=c(c({},i),t.value)),t.arg&&(i.container="#".concat(t.arg)),Ft(i.title)){var n=e.data||{};i.title=n.attrs&&!Pt(n.attrs.title)?n.attrs.title:void 0}Ht(i.delay)||(i.delay={show:lr(i.delay,0),hide:lr(i.delay,0)}),Kt(t.modifiers).forEach((function(t){if(ly.test(t))i.html=!0;else if(cy.test(t))i.animation=!1;else if(uy.test(t))i.placement=t;else if(dy.test(t))t="scrollparent"===t?"scrollParent":t,i.boundary=t;else if(hy.test(t)){var e=lr(t.slice(1),0);i.delay.show=e,i.delay.hide=e}else fy.test(t)?i.delay.show=lr(t.slice(2),0):py.test(t)?i.delay.hide=lr(t.slice(2),0):my.test(t)?i.offset=lr(t.slice(1),0):vy.test(t)&&(i.variant=t.slice(2)||null)}));var o={};return or(i.trigger||"").filter(ne).join(" ").trim().toLowerCase().split(by).forEach((function(t){ay[t]&&(o[t]=!0)})),Kt(t.modifiers).forEach((function(t){t=t.toLowerCase(),ay[t]&&(o[t]=!0)})),i.trigger=Kt(o).join(" "),"blur"===i.trigger&&(i.trigger="focus"),i.trigger||(i.trigger="click"),i}(e,i);if(!t[sy]){var o=i.context;t[sy]=new ny({parent:o,_scopeId:eb(o,void 0)}),t[sy].__bv_prev_data__={},t[sy].$on(to,(function(){var e={};Ot(n.title)&&(e.title=n.title(t)),Ot(n.content)&&(e.content=n.content(t)),Kt(e).length>0&&t[sy].updateData(e)}))}var r={title:n.title,content:n.content,triggers:n.trigger,placement:n.placement,fallbackPlacement:n.fallbackPlacement,variant:n.variant,customClass:n.customClass,container:n.container,boundary:n.boundary,delay:n.delay,offset:n.offset,noFade:!n.animation,id:n.id,disabled:n.disabled,html:n.html},s=t[sy].__bv_prev_data__;if(t[sy].__bv_prev_data__=r,!Ua(r,s)){var a={target:t};Kt(r).forEach((function(e){r[e]!==s[e]&&(a[e]="title"!==e&&"content"!==e||!Ot(r[e])?r[e]:r[e](t))})),t[sy].updateData(a)}}},yy=me({directives:{VBPopover:{bind:function(t,e,i){gy(t,e,i)},componentUpdated:function(t,e,i){i.context.$nextTick((function(){gy(t,e,i)}))},unbind:function(t){!function(t){t[sy]&&(t[sy].$destroy(),t[sy]=null),delete t[sy]}(t)}}}}),wy=me({components:{BPopover:ry},plugins:{VBPopoverPlugin:yy}}),Ty=vs({animated:hs(ho,null),label:hs(go),labelHtml:hs(go),max:hs(_o,null),precision:hs(_o,null),showProgress:hs(ho,null),showValue:hs(ho,null),striped:hs(ho,null),value:hs(_o,0),variant:hs(go)},nn),Cy=i.default.extend({name:nn,mixins:[Cs],inject:{bvProgress:{default:function(){return{}}}},props:Ty,computed:{progressBarClasses:function(){var t=this.computedAnimated,e=this.computedVariant;return[e?"bg-".concat(e):"",this.computedStriped||t?"progress-bar-striped":"",t?"progress-bar-animated":""]},progressBarStyles:function(){return{width:this.computedValue/this.computedMax*100+"%"}},computedValue:function(){return cr(this.value,0)},computedMax:function(){var t=cr(this.max)||cr(this.bvProgress.max,0);return t>0?t:100},computedPrecision:function(){return Us(lr(this.precision,lr(this.bvProgress.precision,0)),0)},computedProgress:function(){var t=this.computedPrecision,e=Zs(10,t);return ur(100*e*this.computedValue/this.computedMax/e,t)},computedVariant:function(){return this.variant||this.bvProgress.variant},computedStriped:function(){return Vt(this.striped)?this.striped:this.bvProgress.striped||!1},computedAnimated:function(){return Vt(this.animated)?this.animated:this.bvProgress.animated||!1},computedShowProgress:function(){return Vt(this.showProgress)?this.showProgress:this.bvProgress.showProgress||!1},computedShowValue:function(){return Vt(this.showValue)?this.showValue:this.bvProgress.showValue||!1}},render:function(t){var e,i=this.label,n=this.labelHtml,o=this.computedValue,r=this.computedPrecision,s={};return this.hasNormalizedSlot()?e=this.normalizeSlot():i||n?s=Fl(n,i):this.computedShowProgress?e=this.computedProgress:this.computedShowValue&&(e=ur(o,r)),t("div",{staticClass:"progress-bar",class:this.progressBarClasses,style:this.progressBarStyles,attrs:{role:"progressbar","aria-valuemin":"0","aria-valuemax":vr(this.computedMax),"aria-valuenow":ur(o,r)},domProps:s},e)}}),xy=Qt(Ty,["label","labelHtml"]),Sy=vs(ee(c(c({},xy),{},{animated:hs(ho,!1),height:hs(go),max:hs(_o,100),precision:hs(_o,0),showProgress:hs(ho,!1),showValue:hs(ho,!1),striped:hs(ho,!1)})),en),ky=me({components:{BProgress:i.default.extend({name:en,mixins:[Cs],provide:function(){return{bvProgress:this}},props:Sy,computed:{progressHeight:function(){return{height:this.height||null}}},render:function(t){var e=this.normalizeSlot();return e||(e=t(Cy,{props:ps(xy,this.$props)})),t("div",{staticClass:"progress",style:this.progressHeight},[e])}}),BProgressBar:Cy}}),$y="b-sidebar",By=Fs(Ue,"request-state"),_y=Fs(Ue,"toggle"),Dy=Ds(Ue,"state"),Fy=Ds(Ue,"sync-state"),Iy=ys("visible",{type:ho,defaultValue:!1,event:$n}),Py=Iy.mixin,Oy=Iy.props,Vy=Iy.prop,Ey=Iy.event,Ly=vs(ee(c(c(c({},fc),Oy),{},{ariaLabel:hs(go),ariaLabelledby:hs(go),backdrop:hs(ho,!1),backdropVariant:hs(go,"dark"),bgVariant:hs(go,"light"),bodyClass:hs(To),closeLabel:hs(go),footerClass:hs(To),headerClass:hs(To),lazy:hs(ho,!1),noCloseOnBackdrop:hs(ho,!1),noCloseOnEsc:hs(ho,!1),noCloseOnRouteChange:hs(ho,!1),noEnforceFocus:hs(ho,!1),noHeader:hs(ho,!1),noHeaderClose:hs(ho,!1),noSlide:hs(ho,!1),right:hs(ho,!1),shadow:hs(ko,!1),sidebarClass:hs(To),tag:hs(go,"div"),textVariant:hs(go,"dark"),title:hs(go),width:hs(go),zIndex:hs(_o)})),rn),Ay=function(t,e){if(e.noHeader)return t();var i=e.normalizeSlot(No,e.slotScope);if(!i){var n=function(t,e){var i=e.normalizeSlot(tr,e.slotScope)||e.title;return i?t("strong",{attrs:{id:e.safeId("__title__")}},[i]):t("span")}(t,e),o=function(t,e){if(e.noHeaderClose)return t();var i=e.closeLabel,n=e.textVariant,o=e.hide;return t(Ps,{props:{ariaLabel:i,textVariant:n},on:{click:o},ref:"close-button"},[e.normalizeSlot("header-close")||t(Oa)])}(t,e);i=e.right?[o,n]:[n,o]}return t("header",{staticClass:"".concat($y,"-header"),class:e.headerClass,key:"header"},i)},Ry=function(t,e){return t("div",{staticClass:"".concat($y,"-body"),class:e.bodyClass,key:"body"},[e.normalizeSlot(Ao,e.slotScope)])},My=function(t,e){var i=e.normalizeSlot(zo,e.slotScope);return i?t("footer",{staticClass:"".concat($y,"-footer"),class:e.footerClass,key:"footer"},[i]):t()},Hy=function(t,e){var i=Ay(t,e);return e.lazy&&!e.isOpen?i:[i,Ry(t,e),My(t,e)]},zy=function(t,e){if(!e.backdrop)return t();var i=e.backdropVariant;return t("div",{directives:[{name:"show",value:e.localShow}],staticClass:"b-sidebar-backdrop",class:a({},"bg-".concat(i),i),on:{click:e.onBackdropClick}})},Ny=me({components:{BSidebar:i.default.extend({name:rn,mixins:[Za,pc,Py,Ja,Cs],inheritAttrs:!1,props:Ly,data:function(){var t=!!this[Vy];return{localShow:t,isOpen:t}},computed:{transitionProps:function(){return this.noSlide?{css:!0}:{css:!0,enterClass:"",enterActiveClass:"slide",enterToClass:"show",leaveClass:"show",leaveActiveClass:"slide",leaveToClass:""}},slotScope:function(){return{hide:this.hide,right:this.right,visible:this.localShow}},hasTitle:function(){var t=this.$scopedSlots,e=this.$slots;return!(this.noHeader||this.hasNormalizedSlot(No)||!this.normalizeSlot(tr,this.slotScope,t,e)&&!this.title)},titleId:function(){return this.hasTitle?this.safeId("__title__"):null},computedAttrs:function(){return c(c({},this.bvAttrs),{},{id:this.safeId(),tabindex:"-1",role:"dialog","aria-modal":this.backdrop?"true":"false","aria-hidden":this.localShow?null:"true","aria-label":this.ariaLabel||null,"aria-labelledby":this.ariaLabelledby||this.titleId||null})}},watch:(tg={},a(tg,Vy,(function(t,e){t!==e&&(this.localShow=t)})),a(tg,"localShow",(function(t,e){t!==e&&(this.emitState(t),this.$emit(Ey,t))})),a(tg,"$route",(function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.noCloseOnRouteChange||t.fullPath===e.fullPath||this.hide()})),tg),created:function(){this.$_returnFocusEl=null},mounted:function(){var t=this;this.listenOnRoot(_y,this.handleToggle),this.listenOnRoot(By,this.handleSync),this.$nextTick((function(){t.emitState(t.localShow)}))},activated:function(){this.emitSync()},beforeDestroy:function(){this.localShow=!1,this.$_returnFocusEl=null},methods:{hide:function(){this.localShow=!1},emitState:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.localShow;this.emitOnRoot(Dy,this.safeId(),t)},emitSync:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.localShow;this.emitOnRoot(Fy,this.safeId(),t)},handleToggle:function(t){t&&t===this.safeId()&&(this.localShow=!this.localShow)},handleSync:function(t){var e=this;t&&t===this.safeId()&&this.$nextTick((function(){e.emitSync(e.localShow)}))},onKeydown:function(t){var e=t.keyCode;!this.noCloseOnEsc&&27===e&&this.localShow&&this.hide()},onBackdropClick:function(){this.localShow&&!this.noCloseOnBackdrop&&this.hide()},onTopTrapFocus:function(){var t=Qr(this.$refs.content);this.enforceFocus(t.reverse()[0])},onBottomTrapFocus:function(){var t=Qr(this.$refs.content);this.enforceFocus(t[0])},onBeforeEnter:function(){this.$_returnFocusEl=$r(M?[document.body]:[]),this.isOpen=!0},onAfterEnter:function(t){Lr(t,$r())||this.enforceFocus(t),this.$emit(eo)},onAfterLeave:function(){this.enforceFocus(this.$_returnFocusEl),this.$_returnFocusEl=null,this.isOpen=!1,this.$emit(zn)},enforceFocus:function(t){this.noEnforceFocus||ts(t)}},render:function(t){var e,i=this.bgVariant,n=this.width,o=this.textVariant,r=this.localShow,s=""===this.shadow||this.shadow,l=t(this.tag,{staticClass:$y,class:[(e={shadow:!0===s},a(e,"shadow-".concat(s),s&&!0!==s),a(e,"".concat($y,"-right"),this.right),a(e,"bg-".concat(i),i),a(e,"text-".concat(o),o),e),this.sidebarClass],style:{width:n},attrs:this.computedAttrs,directives:[{name:"show",value:r}],ref:"content"},[Hy(t,this)]);l=t("transition",{props:this.transitionProps,on:{beforeEnter:this.onBeforeEnter,afterEnter:this.onAfterEnter,afterLeave:this.onAfterLeave}},[l]);var c=t(Ls,{props:{noFade:this.noSlide}},[zy(t,this)]),u=t(),d=t();return this.backdrop&&r&&(u=t("div",{attrs:{tabindex:"0"},on:{focus:this.onTopTrapFocus}}),d=t("div",{attrs:{tabindex:"0"},on:{focus:this.onBottomTrapFocus}})),t("div",{staticClass:"b-sidebar-outer",style:{zIndex:this.zIndex},attrs:{tabindex:"-1"},on:{keydown:this.onKeydown}},[u,l,d,c])}})},plugins:{VBTogglePlugin:ld}}),jy=vs({animation:hs(go,"wave"),height:hs(go),size:hs(go),type:hs(go,"text"),variant:hs(go),width:hs(go)},sn),Gy=i.default.extend({name:sn,functional:!0,props:jy,render:function(t,e){var i,n=e.data,o=e.props,r=o.size,s=o.animation,l=o.variant;return t("div",F(n,{staticClass:"b-skeleton",style:{width:r||o.width,height:r||o.height},class:(i={},a(i,"b-skeleton-".concat(o.type),!0),a(i,"b-skeleton-animate-".concat(s),s),a(i,"bg-".concat(l),l),i)}))}}),Wy=(vs(Qt(fa,["content","stacked"]),"BIconstack"),vs({animation:hs(go,"wave"),icon:hs(go),iconProps:hs(vo,{})},an)),Yy=i.default.extend({name:an,functional:!0,props:Wy,render:function(t,e){var i=e.props,n=i.icon,o=i.animation,r=t(Aa,{staticClass:"b-skeleton-icon",props:c(c({},i.iconProps),{},{icon:n})});return t("div",{staticClass:"b-skeleton-icon-wrapper position-relative d-inline-block overflow-hidden",class:a({},"b-skeleton-animate-".concat(o),o)},[r])}}),Uy=vs({animation:hs(go),aspect:hs(go,"16:9"),cardImg:hs(go),height:hs(go),noAspect:hs(ho,!1),variant:hs(go),width:hs(go)},ln),qy=i.default.extend({name:ln,functional:!0,props:Uy,render:function(t,e){var i=e.props,n=i.aspect,o=i.width,r=i.height,s=i.animation,l=i.variant,c=i.cardImg,u=t(Gy,{props:{type:"img",width:o,height:r,animation:s,variant:l},class:a({},"card-img-".concat(c),c)});return i.noAspect?u:t(ea,{props:{aspect:n}},[u])}}),Ky=i.default.extend({methods:{hasListener:function(t){var e=this.$listeners||{},i=this._events||{};return!Ft(e[t])||Rt(i[t])&&i[t].length>0}}}),Xy="light",Zy="dark",Jy=vs({variant:hs(go)},"BTr"),Qy=i.default.extend({name:"BTr",mixins:[Za,Qa,Cs],provide:function(){return{bvTableTr:this}},inject:{bvTableRowGroup:{default:function(){return{}}}},inheritAttrs:!1,props:Jy,computed:{inTbody:function(){return this.bvTableRowGroup.isTbody},inThead:function(){return this.bvTableRowGroup.isThead},inTfoot:function(){return this.bvTableRowGroup.isTfoot},isDark:function(){return this.bvTableRowGroup.isDark},isStacked:function(){return this.bvTableRowGroup.isStacked},isResponsive:function(){return this.bvTableRowGroup.isResponsive},isStickyHeader:function(){return this.bvTableRowGroup.isStickyHeader},hasStickyHeader:function(){return!this.isStacked&&this.bvTableRowGroup.hasStickyHeader},tableVariant:function(){return this.bvTableRowGroup.tableVariant},headVariant:function(){return this.inThead?this.bvTableRowGroup.headVariant:null},footVariant:function(){return this.inTfoot?this.bvTableRowGroup.footVariant:null},isRowDark:function(){return this.headVariant!==Xy&&this.footVariant!==Xy&&(this.headVariant===Zy||this.footVariant===Zy||this.isDark)},trClasses:function(){var t=this.variant;return[t?"".concat(this.isRowDark?"bg":"table","-").concat(t):null]},trAttrs:function(){return c({role:"row"},this.bvAttrs)}},render:function(t){return t("tr",{class:this.trClasses,attrs:this.trAttrs,on:this.bvListeners},this.normalizeSlot())}}),tw={},ew=i.default.extend({props:tw,methods:{renderBottomRow:function(){var t=this.computedFields,e=this.stacked,i=this.tbodyTrClass,n=this.tbodyTrAttr,o=this.$createElement;return this.hasNormalizedSlot(Vo)&&!0!==e&&""!==e?o(Qy,{staticClass:"b-table-bottom-row",class:[Ot(i)?i(null,"row-bottom"):i],attrs:Ot(n)?n(null,"row-bottom"):n,key:"b-bottom-row"},this.normalizeSlot(Vo,{columns:t.length,fields:t})):o()}}}),iw=function(t){return(t=lr(t,0))>0?t:null},nw=function(t){return Pt(t)||iw(t)>0},ow=vs({colspan:hs(_o,null,nw),rowspan:hs(_o,null,nw),stackedHeading:hs(go),stickyColumn:hs(ho,!1),variant:hs(go)},pn),rw=i.default.extend({name:pn,mixins:[Za,Qa,Cs],inject:{bvTableTr:{default:function(){return{}}}},inheritAttrs:!1,props:ow,computed:{tag:function(){return"td"},inTbody:function(){return this.bvTableTr.inTbody},inThead:function(){return this.bvTableTr.inThead},inTfoot:function(){return this.bvTableTr.inTfoot},isDark:function(){return this.bvTableTr.isDark},isStacked:function(){return this.bvTableTr.isStacked},isStackedCell:function(){return this.inTbody&&this.isStacked},isResponsive:function(){return this.bvTableTr.isResponsive},isStickyHeader:function(){return this.bvTableTr.isStickyHeader},hasStickyHeader:function(){return this.bvTableTr.hasStickyHeader},isStickyColumn:function(){return!this.isStacked&&(this.isResponsive||this.hasStickyHeader)&&this.stickyColumn},rowVariant:function(){return this.bvTableTr.variant},headVariant:function(){return this.bvTableTr.headVariant},footVariant:function(){return this.bvTableTr.footVariant},tableVariant:function(){return this.bvTableTr.tableVariant},computedColspan:function(){return iw(this.colspan)},computedRowspan:function(){return iw(this.rowspan)},cellClasses:function(){var t=this.variant,e=this.headVariant,i=this.isStickyColumn;return(!t&&this.isStickyHeader&&!e||!t&&i&&this.inTfoot&&!this.footVariant||!t&&i&&this.inThead&&!e||!t&&i&&this.inTbody)&&(t=this.rowVariant||this.tableVariant||"b-table-default"),[t?"".concat(this.isDark?"bg":"table","-").concat(t):null,i?"b-table-sticky-column":null]},cellAttrs:function(){var t=this.stackedHeading,e=this.inThead||this.inTfoot,i=this.computedColspan,n=this.computedRowspan,o="cell",r=null;return e?(o="columnheader",r=i>0?"colspan":"col"):Br(this.tag,"th")&&(o="rowheader",r=n>0?"rowgroup":"row"),c(c({colspan:i,rowspan:n,role:o,scope:r},this.bvAttrs),{},{"data-label":this.isStackedCell&&!Pt(t)?vr(t):null})}},render:function(t){var e=[this.normalizeSlot()];return t(this.tag,{class:this.cellClasses,attrs:this.cellAttrs,on:this.bvListeners},[this.isStackedCell?t("div",[e]):e])}}),sw="busy",aw=a({},sw,hs(ho,!1)),lw=i.default.extend({props:aw,data:function(){return{localBusy:!1}},computed:{computedBusy:function(){return this.busy||this.localBusy}},watch:{localBusy:function(t,e){t!==e&&this.$emit("update:busy",t)}},methods:{stopIfBusy:function(t){return!!this.computedBusy&&(Bs(t),!0)},renderBusy:function(){var t=this.tbodyTrClass,e=this.tbodyTrAttr,i=this.$createElement;return this.computedBusy&&this.hasNormalizedSlot(Xo)?i(Qy,{staticClass:"b-table-busy-slot",class:[Ot(t)?t(null,Xo):t],attrs:Ot(e)?e(null,Xo):e,key:"table-busy-slot"},[i(rw,{props:{colspan:this.computedFields.length||null}},[this.normalizeSlot(Xo)])]):null}}}),cw={caption:hs(go),captionHtml:hs(go)},uw=i.default.extend({props:cw,computed:{captionId:function(){return this.isStacked?this.safeId("_caption_"):null}},methods:{renderCaption:function(){var t=this.caption,e=this.captionHtml,i=this.$createElement,n=i(),o=this.hasNormalizedSlot(Zo);return(o||t||e)&&(n=i("caption",{attrs:{id:this.captionId},domProps:o?{}:Fl(e,t),key:"caption",ref:"caption"},this.normalizeSlot(Zo))),n}}}),dw={},hw=i.default.extend({methods:{renderColgroup:function(){var t=this.computedFields,e=this.$createElement,i=e();return this.hasNormalizedSlot(Jo)&&(i=e("colgroup",{key:"colgroup"},[this.normalizeSlot(Jo,{columns:t.length,fields:t})])),i}}}),fw={emptyFilteredHtml:hs(go),emptyFilteredText:hs(go,"There are no records matching your request"),emptyHtml:hs(go),emptyText:hs(go,"There are no records to show"),showEmpty:hs(ho,!1)},pw=i.default.extend({props:fw,methods:{renderEmpty:function(){var t=this.computedItems,e=this.$createElement,i=e();if(this.showEmpty&&(!t||0===t.length)&&(!this.computedBusy||!this.hasNormalizedSlot(Xo))){var n=this.computedFields,o=this.isFiltered,r=this.emptyText,s=this.emptyHtml,a=this.emptyFilteredText,l=this.emptyFilteredHtml,c=this.tbodyTrClass,u=this.tbodyTrAttr;(i=this.normalizeSlot(o?"emptyfiltered":Ro,{emptyFilteredHtml:l,emptyFilteredText:a,emptyHtml:s,emptyText:r,fields:n,items:t}))||(i=e("div",{class:["text-center","my-2"],domProps:o?Fl(l,a):Fl(s,r)})),i=e(rw,{props:{colspan:n.length||null}},[e("div",{attrs:{role:"alert","aria-live":"polite"}},[i])]),i=e(Qy,{staticClass:"b-table-empty-row",class:[Ot(c)?c(null,"row-empty"):c],attrs:Ot(u)?u(null,"row-empty"):u,key:o?"b-empty-filtered-row":"b-empty-row"},[i])}return i}}}),mw=function t(e){return Pt(e)?"":Mt(e)&&!zt(e)?Kt(e).sort().map((function(i){return t(e[i])})).filter((function(t){return!!t})).join(" "):vr(e)},vw="_cellVariants",bw="_rowVariant",gw="_showDetails",yw=[vw,bw,gw].reduce((function(t,e){return c(c({},t),{},a({},e,!0))}),{}),ww=["a","a *","button","button *","input:not(.disabled):not([disabled])","select:not(.disabled):not([disabled])","textarea:not(.disabled):not([disabled])",'[role="link"]','[role="link"] *','[role="button"]','[role="button"] *',"[tabindex]:not(.disabled):not([disabled])"].join(","),Tw=function(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=Kt(n).reduce((function(e,i){var o=n[i],r=o.filterByFormatted,s=Ot(r)?r:r?o.formatter:null;return Ot(s)&&(e[i]=s(t[i],i,t)),e}),Zt(t)),r=Kt(o).filter((function(t){return!(yw[t]||Rt(e)&&e.length>0&&nr(e,t)||Rt(i)&&i.length>0&&!nr(i,t))}));return Jt(o,r)},Cw={filter:hs([].concat(T(To),[bo])),filterDebounce:hs(_o,0,(function(t){return Q.test(String(t))})),filterFunction:hs(po),filterIgnoredFields:hs(uo,[]),filterIncludedFields:hs(uo,[])},xw=i.default.extend({props:Cw,data:function(){return{isFiltered:!1,localFilter:this.filterSanitize(this.filter)}},computed:{computedFilterIgnored:function(){return or(this.filterIgnoredFields||[]).filter(ne)},computedFilterIncluded:function(){return or(this.filterIncludedFields||[]).filter(ne)},computedFilterDebounce:function(){var t=lr(this.filterDebounce,0);return t>0&&le('Prop "filter-debounce" is deprecated. Use the debounce feature of "" instead.',fn),t},localFiltering:function(){return!this.hasProvider||!!this.noProviderFiltering},filteredCheck:function(){return{filteredItems:this.filteredItems,localItems:this.localItems,localFilter:this.localFilter}},localFilterFn:function(){var t=this.filterFunction;return gs(t)?t:null},filteredItems:function(){var t=this.localItems,e=this.localFilter,i=this.localFiltering?this.filterFnFactory(this.localFilterFn,e)||this.defaultFilterFnFactory(e):null;return i&&t.length>0?t.filter(i):t}},watch:{computedFilterDebounce:function(t){!t&&this.$_filterTimer&&(this.clearFilterTimer(),this.localFilter=this.filterSanitize(this.filter))},filter:{deep:!0,handler:function(t){var e=this,i=this.computedFilterDebounce;this.clearFilterTimer(),i&&i>0?this.$_filterTimer=setTimeout((function(){e.localFilter=e.filterSanitize(t)}),i):this.localFilter=this.filterSanitize(t)}},filteredCheck:function(t){var e=t.filteredItems,i=t.localFilter,n=!1;i?Ua(i,[])||Ua(i,{})?n=!1:i&&(n=!0):n=!1,n&&this.$emit(Ln,e,e.length),this.isFiltered=n},isFiltered:function(t,e){if(!1===t&&!0===e){var i=this.localItems;this.$emit(Ln,i,i.length)}}},created:function(){var t=this;this.$_filterTimer=null,this.$nextTick((function(){t.isFiltered=Boolean(t.localFilter)}))},beforeDestroy:function(){this.clearFilterTimer()},methods:{clearFilterTimer:function(){clearTimeout(this.$_filterTimer),this.$_filterTimer=null},filterSanitize:function(t){return!this.localFiltering||this.localFilterFn||Et(t)||jt(t)?ie(t):""},filterFnFactory:function(t,e){if(!t||!Ot(t)||!e||Ua(e,[])||Ua(e,{}))return null;return function(i){return t(i,e)}},defaultFilterFnFactory:function(t){var e=this;if(!t||!Et(t)&&!jt(t))return null;var i=t;if(Et(i)){var n=mr(t).replace(ct,"\\s+");i=new RegExp(".*".concat(n,".*"),"i")}return function(t){return i.lastIndex=0,i.test((n=t,o=e.computedFilterIgnored,r=e.computedFilterIncluded,s=e.computedFieldsObj,Mt(n)?mw(Tw(n,o,r,s)):""));var n,o,r,s}}}}),Sw=function(t,e){var i=[];if(Rt(t)&&t.filter(ne).forEach((function(t){if(Et(t))i.push({key:t,label:fr(t)});else if(Mt(t)&&t.key&&Et(t.key))i.push(Zt(t));else if(Mt(t)&&1===Kt(t).length){var e=Kt(t)[0],n=function(t,e){var i=null;return Et(e)?i={key:t,label:e}:Ot(e)?i={key:t,formatter:e}:Mt(e)?(i=Zt(e)).key=i.key||t:!1!==e&&(i={key:t}),i}(e,t[e]);n&&i.push(n)}})),0===i.length&&Rt(e)&&e.length>0){var n=e[0];Kt(n).forEach((function(t){yw[t]||i.push({key:t,label:fr(t)})}))}var o={};return i.filter((function(t){return!o[t.key]&&(o[t.key]=!0,t.label=Et(t.label)?t.label:fr(t.key),!0)}))},kw=ys("value",{type:uo,defaultValue:[]}),$w=kw.mixin,Bw=kw.props,_w=kw.prop,Dw=kw.event,Fw=ee(c(c({},Bw),{},a({fields:hs(uo,null),items:hs(uo,[]),primaryKey:hs(go)},_w,hs(uo,[])))),Iw=i.default.extend({mixins:[$w],props:Fw,data:function(){var t=this.items;return{localItems:Rt(t)?t.slice():[]}},computed:{computedFields:function(){return Sw(this.fields,this.localItems)},computedFieldsObj:function(){var t=this.$parent;return this.computedFields.reduce((function(e,i){if(e[i.key]=Zt(i),i.formatter){var n=i.formatter;Et(n)&&Ot(t[n])?n=t[n]:Ot(n)||(n=void 0),e[i.key].formatter=n}return e}),{})},computedItems:function(){return(this.paginatedItems||this.sortedItems||this.filteredItems||this.localItems||[]).slice()},context:function(){return{filter:this.localFilter,sortBy:this.localSortBy,sortDesc:this.localSortDesc,perPage:Us(lr(this.perPage,0),0),currentPage:Us(lr(this.currentPage,0),1),apiUrl:this.apiUrl}}},watch:{items:function(t){this.localItems=Rt(t)?t.slice():[]},computedItems:function(t,e){Ua(t,e)||this.$emit(Dw,t)},context:function(t,e){Ua(t,e)||this.$emit(Fn,t)}},mounted:function(){this.$emit(Dw,this.computedItems)},methods:{getFieldFormatter:function(t){var e=this.computedFieldsObj[t];return e?e.formatter:void 0}}}),Pw={currentPage:hs(_o,1),perPage:hs(_o,0)},Ow=i.default.extend({props:Pw,computed:{localPaging:function(){return!this.hasProvider||!!this.noProviderPaging},paginatedItems:function(){var t=this.sortedItems||this.filteredItems||this.localItems||[],e=Us(lr(this.currentPage,1),1),i=Us(lr(this.perPage,0),0);return this.localPaging&&i&&(t=t.slice((e-1)*i,e*i)),t}}}),Vw=Ds(fn,Zn),Ew=Fs(fn,"refresh"),Lw={apiUrl:hs(go),items:hs(yo,[]),noProviderFiltering:hs(ho,!1),noProviderPaging:hs(ho,!1),noProviderSorting:hs(ho,!1)},Aw=i.default.extend({mixins:[Ja],props:Lw,computed:{hasProvider:function(){return Ot(this.items)},providerTriggerContext:function(){var t={apiUrl:this.apiUrl,filter:null,sortBy:null,sortDesc:null,perPage:null,currentPage:null};return this.noProviderFiltering||(t.filter=this.localFilter),this.noProviderSorting||(t.sortBy=this.localSortBy,t.sortDesc=this.localSortDesc),this.noProviderPaging||(t.perPage=this.perPage,t.currentPage=this.currentPage),Zt(t)}},watch:{items:function(t){(this.hasProvider||Ot(t))&&this.$nextTick(this._providerUpdate)},providerTriggerContext:function(t,e){Ua(t,e)||this.$nextTick(this._providerUpdate)}},mounted:function(){var t=this;!this.hasProvider||this.localItems&&0!==this.localItems.length||this._providerUpdate(),this.listenOnRoot(Ew,(function(e){e!==t.id&&e!==t||t.refresh()}))},methods:{refresh:function(){var t=this.items,e=this.refresh;this.$off(Zn,e),this.computedBusy?this.localBusy&&this.hasProvider&&this.$on(Zn,e):(this.clearSelected(),this.hasProvider?this.$nextTick(this._providerUpdate):this.localItems=Rt(t)?t.slice():[])},_providerSetLocal:function(t){this.localItems=Rt(t)?t.slice():[],this.localBusy=!1,this.$emit(Zn),this.id&&this.emitOnRoot(Vw,this.id)},_providerUpdate:function(){var t=this;this.hasProvider&&(this.computedBusy?this.$nextTick(this.refresh):(this.localBusy=!0,this.$nextTick((function(){try{var e=t.items(t.context,t._providerSetLocal);!Pt(i=e)&&Ot(i.then)&&Ot(i.catch)?e.then((function(e){t._providerSetLocal(e)})):Rt(e)?t._providerSetLocal(e):2!==t.items.length&&(le("Provider function didn't request callback and did not return a promise or data.",fn),t.localBusy=!1)}catch(e){le("Provider function error [".concat(e.name,"] ").concat(e.message,"."),fn),t.localBusy=!1,t.$off(Zn,t.refresh)}var i}))))}}}),Rw=["range","multi","single"],Mw={noSelectOnClick:hs(ho,!1),selectMode:hs(go,"multi",(function(t){return nr(Rw,t)})),selectable:hs(ho,!1),selectedVariant:hs(go,"active")},Hw=i.default.extend({props:Mw,data:function(){return{selectedRows:[],selectedLastRow:-1}},computed:{isSelectable:function(){return this.selectable&&this.selectMode},hasSelectableRowClick:function(){return this.isSelectable&&!this.noSelectOnClick},supportsSelectableRows:function(){return!0},selectableHasSelection:function(){var t=this.selectedRows;return this.isSelectable&&t&&t.length>0&&t.some(ne)},selectableIsMultiSelect:function(){return this.isSelectable&&nr(["range","multi"],this.selectMode)},selectableTableClasses:function(){var t,e=this.isSelectable;return a(t={"b-table-selectable":e},"b-table-select-".concat(this.selectMode),e),a(t,"b-table-selecting",this.selectableHasSelection),a(t,"b-table-selectable-no-click",e&&!this.hasSelectableRowClick),t},selectableTableAttrs:function(){return{"aria-multiselectable":this.isSelectable?this.selectableIsMultiSelect?"true":"false":null}}},watch:{computedItems:function(t,e){var i=!1;if(this.isSelectable&&this.selectedRows.length>0){i=Rt(t)&&Rt(e)&&t.length===e.length;for(var n=0;i&&n=0&&t0&&(this.selectedLastClicked=-1,this.selectedRows=this.selectableIsMultiSelect?rr(t,!0):[!0])},isRowSelected:function(t){return!(!Lt(t)||!this.selectedRows[t])},clearSelected:function(){this.selectedLastClicked=-1,this.selectedRows=[]},selectableRowClasses:function(t){if(this.isSelectable&&this.isRowSelected(t)){var e=this.selectedVariant;return a({"b-table-row-selected":!0},"".concat(this.dark?"bg":"table","-").concat(e),e)}return{}},selectableRowAttrs:function(t){return{"aria-selected":this.isSelectable?this.isRowSelected(t)?"true":"false":null}},setSelectionHandlers:function(t){var e=t&&!this.noSelectOnClick?"$on":"$off";this[e](Jn,this.selectionHandler),this[e](Ln,this.clearSelected),this[e](Fn,this.clearSelected)},selectionHandler:function(t,e,i){if(this.isSelectable&&!this.noSelectOnClick){var n=this.selectMode,o=this.selectedLastRow,r=this.selectedRows.slice(),s=!r[e];if("single"===n)r=[];else if("range"===n)if(o>-1&&i.shiftKey){for(var a=Ys(o,e);a<=Us(o,e);a++)r[a]=!0;s=!0}else i.ctrlKey||i.metaKey||(r=[],s=!0),this.selectedLastRow=s?e:-1;r[e]=s,this.selectedRows=r}else this.clearSelected()}}}),zw=function(t,e){return t.map((function(t,e){return[e,t]})).sort(function(t,e){return this(t[1],e[1])||t[0]-e[0]}.bind(e)).map((function(t){return t[1]}))},Nw=function(t){return Pt(t)?"":At(t)?cr(t,t):t},jw="sortBy",Gw="sortDesc",Ww="asc",Yw="desc",Uw=[Ww,Yw,"last"],qw=(a(eg={labelSortAsc:hs(go,"Click to sort Ascending"),labelSortClear:hs(go,"Click to clear sorting"),labelSortDesc:hs(go,"Click to sort Descending"),noFooterSorting:hs(ho,!1),noLocalSorting:hs(ho,!1),noSortReset:hs(ho,!1)},jw,hs(go)),a(eg,"sortCompare",hs(po)),a(eg,"sortCompareLocale",hs(Co)),a(eg,"sortCompareOptions",hs(vo,{numeric:!0})),a(eg,Gw,hs(ho,!1)),a(eg,"sortDirection",hs(go,Ww,(function(t){return nr(Uw,t)}))),a(eg,"sortIconLeft",hs(ho,!1)),a(eg,"sortNullLast",hs(ho,!1)),eg),Kw=i.default.extend({props:qw,data:function(){return{localSortBy:this.sortBy||"",localSortDesc:this.sortDesc||!1}},computed:{localSorting:function(){return this.hasProvider?!!this.noProviderSorting:!this.noLocalSorting},isSortable:function(){return this.computedFields.some((function(t){return t.sortable}))},sortedItems:function(){var t=this.localSortBy,e=this.localSortDesc,i=this.sortCompareLocale,n=this.sortNullLast,o=this.sortCompare,r=this.localSorting,s=(this.filteredItems||this.localItems||[]).slice(),a=c(c({},this.sortCompareOptions),{},{usage:"sort"});if(t&&r){var l=(this.computedFieldsObj[t]||{}).sortByFormatted,u=Ot(l)?l:l?this.getFieldFormatter(t):void 0;return zw(s,(function(r,s){var l=null;return Ot(o)&&(l=o(r,s,t,e,u,a,i)),(Pt(l)||!1===l)&&(l=function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=i.sortBy,o=void 0===n?null:n,r=i.formatter,s=void 0===r?null:r,a=i.locale,l=void 0===a?void 0:a,c=i.localeOptions,u=void 0===c?{}:c,d=i.nullLast,h=void 0!==d&&d,f=re(t,o,null),p=re(e,o,null);return Ot(s)&&(f=s(f,o,t),p=s(p,o,e)),f=Nw(f),p=Nw(p),zt(f)&&zt(p)||Lt(f)&&Lt(p)?fp?1:0:h&&""===f&&""!==p?1:h&&""!==f&&""===p?-1:mw(f).localeCompare(mw(p),l,u)}(r,s,{sortBy:t,formatter:u,locale:i,localeOptions:a,nullLast:n})),(l||0)*(e?-1:1)}))}return s}},watch:(ig={isSortable:function(t){t?this.isSortable&&this.$on(Hn,this.handleSort):this.$off(Hn,this.handleSort)}},a(ig,Gw,(function(t){t!==this.localSortDesc&&(this.localSortDesc=t||!1)})),a(ig,jw,(function(t){t!==this.localSortBy&&(this.localSortBy=t||"")})),a(ig,"localSortDesc",(function(t,e){t!==e&&this.$emit("update:sortDesc",t)})),a(ig,"localSortBy",(function(t,e){t!==e&&this.$emit("update:sortBy",t)})),ig),created:function(){this.isSortable&&this.$on(Hn,this.handleSort)},methods:{handleSort:function(t,e,i,n){var o=this;if(this.isSortable&&(!n||!this.noFooterSorting)){var r=!1,s=function(){var t=e.sortDirection||o.sortDirection;t===Ww?o.localSortDesc=!1:t===Yw&&(o.localSortDesc=!0)};if(e.sortable){var a=!this.localSorting&&e.sortKey?e.sortKey:t;this.localSortBy===a?this.localSortDesc=!this.localSortDesc:(this.localSortBy=a,s()),r=!0}else this.localSortBy&&!this.noSortReset&&(this.localSortBy="",s(),r=!0);r&&this.$emit("sort-changed",this.context)}},sortTheadThClasses:function(t,e,i){return{"b-table-sort-icon-left":e.sortable&&this.sortIconLeft&&!(i&&this.noFooterSorting)}},sortTheadThAttrs:function(t,e,i){if(!this.isSortable||i&&this.noFooterSorting)return{};var n=e.sortable;return{"aria-sort":n&&this.localSortBy===t?this.localSortDesc?"descending":"ascending":n?"none":null}},sortTheadThLabel:function(t,e,i){if(!this.isSortable||i&&this.noFooterSorting)return null;var n="";if(e.sortable)if(this.localSortBy===t)n=this.localSortDesc?this.labelSortAsc:this.labelSortDesc;else{n=this.localSortDesc?this.labelSortDesc:this.labelSortAsc;var o=this.sortDirection||e.sortDirection;o===Ww?n=this.labelSortAsc:o===Yw&&(n=this.labelSortDesc)}else this.noSortReset||(n=this.localSortBy?this.labelSortClear:"");return br(n)||null}}}),Xw={stacked:hs(ko,!1)},Zw=i.default.extend({props:Xw,computed:{isStacked:function(){var t=this.stacked;return""===t||t},isStackedAlways:function(){return!0===this.isStacked},stackedTableClasses:function(){var t=this.isStackedAlways;return a({"b-table-stacked":t},"b-table-stacked-".concat(this.stacked),!t&&this.isStacked)}}}),Jw={bordered:hs(ho,!1),borderless:hs(ho,!1),captionTop:hs(ho,!1),dark:hs(ho,!1),fixed:hs(ho,!1),hover:hs(ho,!1),noBorderCollapse:hs(ho,!1),outlined:hs(ho,!1),responsive:hs(ko,!1),small:hs(ho,!1),stickyHeader:hs(ko,!1),striped:hs(ho,!1),tableClass:hs(To),tableVariant:hs(go)},Qw=i.default.extend({mixins:[Za],provide:function(){return{bvTable:this}},inheritAttrs:!1,props:Jw,computed:{isResponsive:function(){var t=this.responsive;return""===t||t},isStickyHeader:function(){var t=this.stickyHeader;return t=""===t||t,!this.isStacked&&t},wrapperClasses:function(){var t=this.isResponsive;return[this.isStickyHeader?"b-table-sticky-header":"",!0===t?"table-responsive":t?"table-responsive-".concat(this.responsive):""].filter(ne)},wrapperStyles:function(){var t=this.isStickyHeader;return t&&!Vt(t)?{maxHeight:t}:{}},tableClasses:function(){var t=this.hover,e=this.tableVariant;return t=this.isTableSimple?t:t&&this.computedItems.length>0&&!this.computedBusy,[this.tableClass,{"table-striped":this.striped,"table-hover":t,"table-dark":this.dark,"table-bordered":this.bordered,"table-borderless":this.borderless,"table-sm":this.small,border:this.outlined,"b-table-fixed":this.fixed,"b-table-caption-top":this.captionTop,"b-table-no-border-collapse":this.noBorderCollapse},e?"".concat(this.dark?"bg":"table","-").concat(e):"",this.stackedTableClasses,this.selectableTableClasses]},tableAttrs:function(){var t=this.computedItems,e=this.filteredItems,i=this.computedFields,n=this.selectableTableAttrs,o=this.isTableSimple?{}:{"aria-busy":this.computedBusy?"true":"false","aria-colcount":vr(i.length),"aria-describedby":this.bvAttrs["aria-describedby"]||this.$refs.caption?this.captionId:null};return c(c(c({"aria-rowcount":t&&e&&e.length>t.length?vr(e.length):null},this.bvAttrs),{},{id:this.safeId(),role:"table"},o),n)}},render:function(t){var e=this.wrapperClasses,i=this.renderCaption,n=this.renderColgroup,o=this.renderThead,r=this.renderTbody,s=this.renderTfoot,a=[];this.isTableSimple?a.push(this.normalizeSlot()):(a.push(i?i():null),a.push(n?n():null),a.push(o?o():null),a.push(r?r():null),a.push(s?s():null));var l=t("table",{staticClass:"table b-table",class:this.tableClasses,attrs:this.tableAttrs,key:"b-table"},a.filter(ne));return e.length>0?t("div",{class:e,style:this.wrapperStyles,key:"wrap"},[l]):l}}),tT=vs({tbodyTransitionHandlers:hs(vo),tbodyTransitionProps:hs(vo)},gn),eT=i.default.extend({name:gn,mixins:[Za,Qa,Cs],provide:function(){return{bvTableRowGroup:this}},inject:{bvTable:{default:function(){return{}}}},inheritAttrs:!1,props:tT,computed:{isTbody:function(){return!0},isDark:function(){return this.bvTable.dark},isStacked:function(){return this.bvTable.isStacked},isResponsive:function(){return this.bvTable.isResponsive},isStickyHeader:function(){return!1},hasStickyHeader:function(){return!this.isStacked&&this.bvTable.stickyHeader},tableVariant:function(){return this.bvTable.tableVariant},isTransitionGroup:function(){return this.tbodyTransitionProps||this.tbodyTransitionHandlers},tbodyAttrs:function(){return c({role:"rowgroup"},this.bvAttrs)},tbodyProps:function(){var t=this.tbodyTransitionProps;return t?c(c({},t),{},{tag:"tbody"}):{}}},render:function(t){var e={props:this.tbodyProps,attrs:this.tbodyAttrs};return this.isTransitionGroup?(e.on=this.tbodyTransitionHandlers||{},e.nativeOn=this.bvListeners):e.on=this.bvListeners,t(this.isTransitionGroup?"transition-group":"tbody",e,this.normalizeSlot())}}),iT=["TD","TH","TR"],nT=function(t){if(!t||!t.target)return!1;var e=t.target;if(e.disabled||-1!==iT.indexOf(e.tagName))return!1;if(Er(".dropdown-menu",e))return!0;var i="LABEL"===e.tagName?e:Er("label",e);if(i){var n=jr(i,"for"),o=n?Ar(n):Or("input, select, textarea",i);if(o&&!o.disabled)return!0}return Vr(e,ww)},oT=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document,e=Xr();return!!(e&&""!==e.toString().trim()&&e.containsNode&&kr(t))&&e.containsNode(t,!0)},rT=vs(ow,"BTh"),sT=i.default.extend({name:"BTh",extends:rw,props:rT,computed:{tag:function(){return"th"}}}),aT={detailsTdClass:hs(To),tbodyTrAttr:hs(Fo),tbodyTrClass:hs([].concat(T(To),[po]))},lT=i.default.extend({props:aT,methods:{getTdValues:function(t,e,i,n){var o=this.$parent;if(i){var r=re(t,e,"");return Ot(i)?i(r,e,t):Et(i)&&Ot(o[i])?o[i](r,e,t):i}return n},getThValues:function(t,e,i,n,o){var r=this.$parent;if(i){var s=re(t,e,"");return Ot(i)?i(s,e,t,n):Et(i)&&Ot(r[i])?r[i](s,e,t,n):i}return o},getFormattedValue:function(t,e){var i=e.key,n=this.getFieldFormatter(i),o=re(t,i,null);return Ot(n)&&(o=n(o,i,t)),Pt(o)?"":o},toggleDetailsFactory:function(t,e){var i=this;return function(){t&&i.$set(e,gw,!e[gw])}},rowHovered:function(t){this.tbodyRowEvtStopped(t)||this.emitTbodyRowEvent("row-hovered",t)},rowUnhovered:function(t){this.tbodyRowEvtStopped(t)||this.emitTbodyRowEvent("row-unhovered",t)},renderTbodyRowCell:function(t,e,i,n){var o=this,r=this.isStacked,s=t.key,a=t.label,l=t.isRowHeader,u=this.$createElement,d=this.hasNormalizedSlot(Ko),h=this.getFormattedValue(i,t),f=!r&&(this.isResponsive||this.stickyHeader)&&t.stickyColumn,p=f?l?sT:rw:l?"th":"td",m=i[vw]&&i[vw][s]?i[vw][s]:t.variant||null,v={class:[t.class?t.class:"",this.getTdValues(i,s,t.tdClass,"")],props:{},attrs:c({"aria-colindex":String(e+1)},l?this.getThValues(i,s,t.thAttr,"row",{}):this.getTdValues(i,s,t.tdAttr,{})),key:"row-".concat(n,"-cell-").concat(e,"-").concat(s)};f?v.props={stackedHeading:r?a:null,stickyColumn:!0,variant:m}:(v.attrs["data-label"]=r&&!Pt(a)?vr(a):null,v.attrs.role=l?"rowheader":"cell",v.attrs.scope=l?"row":null,m&&v.class.push("".concat(this.dark?"bg":"table","-").concat(m)));var b={item:i,index:n,field:t,unformatted:re(i,s,""),value:h,toggleDetails:this.toggleDetailsFactory(d,i),detailsShowing:Boolean(i[gw])};this.supportsSelectableRows&&(b.rowSelected=this.isRowSelected(n),b.selectRow=function(){return o.selectRow(n)},b.unselectRow=function(){return o.unselectRow(n)});var g=this.$_bodyFieldSlotNameCache[s],y=g?this.normalizeSlot(g,b):vr(h);return this.isStacked&&(y=[u("div",[y])]),u(p,v,[y])},renderTbodyRow:function(t,e){var i=this,n=this.computedFields,o=this.striped,r=this.primaryKey,s=this.currentPage,a=this.perPage,l=this.tbodyTrClass,u=this.tbodyTrAttr,d=this.$createElement,h=this.hasNormalizedSlot(Ko),f=t[gw]&&h,p=this.$listeners["row-clicked"]||this.hasSelectableRowClick,m=[],v=f?this.safeId("_details_".concat(e,"_")):null,b=n.map((function(n,o){return i.renderTbodyRowCell(n,o,t,e)})),g=null;s&&a&&a>0&&(g=String((s-1)*a+e+1));var y=vr(re(t,r))||null,w=y||vr(e),T=y?this.safeId("_row_".concat(y)):null,C=this.selectableRowClasses?this.selectableRowClasses(e):{},x=this.selectableRowAttrs?this.selectableRowAttrs(e):{},S=Ot(l)?l(t,"row"):l,k=Ot(u)?u(t,"row"):u;if(m.push(d(Qy,{class:[S,C,f?"b-table-has-details":""],props:{variant:t[bw]||null},attrs:c(c({id:T},k),{},{tabindex:p?"0":null,"data-pk":y||null,"aria-details":v,"aria-owns":v,"aria-rowindex":g},x),on:{mouseenter:this.rowHovered,mouseleave:this.rowUnhovered},key:"__b-table-row-".concat(w,"__"),ref:"item-rows",refInFor:!0},b)),f){var $={item:t,index:e,fields:n,toggleDetails:this.toggleDetailsFactory(h,t)};this.supportsSelectableRows&&($.rowSelected=this.isRowSelected(e),$.selectRow=function(){return i.selectRow(e)},$.unselectRow=function(){return i.unselectRow(e)});var B=d(rw,{props:{colspan:n.length},class:this.detailsTdClass},[this.normalizeSlot(Ko,$)]);o&&m.push(d("tr",{staticClass:"d-none",attrs:{"aria-hidden":"true",role:"presentation"},key:"__b-table-details-stripe__".concat(w)}));var _=Ot(this.tbodyTrClass)?this.tbodyTrClass(t,Ko):this.tbodyTrClass,D=Ot(this.tbodyTrAttr)?this.tbodyTrAttr(t,Ko):this.tbodyTrAttr;m.push(d(Qy,{staticClass:"b-table-details",class:[_],props:{variant:t[bw]||null},attrs:c(c({},D),{},{id:v,tabindex:"-1"}),key:"__b-table-details__".concat(w)},[B]))}else h&&(m.push(d()),o&&m.push(d()));return m}}}),cT=function(t){return"cell(".concat(t||"",")")},uT=ee(c(c(c({},tT),aT),{},{tbodyClass:hs(To)})),dT=i.default.extend({mixins:[lT],props:uT,beforeDestroy:function(){this.$_bodyFieldSlotNameCache=null},methods:{getTbodyTrs:function(){var t=this.$refs,e=t.tbody?t.tbody.$el||t.tbody:null,i=(t["item-rows"]||[]).map((function(t){return t.$el||t}));return e&&e.children&&e.children.length>0&&i&&i.length>0?ir(e.children).filter((function(t){return nr(i,t)})):[]},getTbodyTrIndex:function(t){if(!kr(t))return-1;var e="TR"===t.tagName?t:Er("tr",t,!0);return e?this.getTbodyTrs().indexOf(e):-1},emitTbodyRowEvent:function(t,e){if(t&&this.hasListener(t)&&e&&e.target){var i=this.getTbodyTrIndex(e.target);if(i>-1){var n=this.computedItems[i];this.$emit(t,n,i,e)}}},tbodyRowEvtStopped:function(t){return this.stopIfBusy&&this.stopIfBusy(t)},onTbodyRowKeydown:function(t){var e=t.target,i=t.keyCode;if(!this.tbodyRowEvtStopped(t)&&"TR"===e.tagName&&_r(e)&&0===e.tabIndex)if(nr([Ha,Ga],i))Bs(t),this.onTBodyRowClicked(t);else if(nr([Wa,Ra,za,Ma],i)){var n=this.getTbodyTrIndex(e);if(n>-1){Bs(t);var o=this.getTbodyTrs(),r=t.shiftKey;i===za||r&&i===Wa?ts(o[0]):i===Ma||r&&i===Ra?ts(o[o.length-1]):i===Wa&&n>0?ts(o[n-1]):i===Ra&&n0&&void 0!==arguments[0]&&arguments[0],i=this.computedFields,n=this.isSortable,o=this.isSelectable,r=this.headVariant,s=this.footVariant,a=this.headRowVariant,l=this.footRowVariant,u=this.$createElement;if(this.isStackedAlways||0===i.length)return u();var d=n||this.hasListener(Hn),h=o?this.selectAllRows:su,f=o?this.clearSelected:su,p=function(i,o){var r=i.label,s=i.labelHtml,a=i.variant,l=i.stickyColumn,p=i.key,m=null;i.label.trim()||i.headerTitle||(m=fr(i.key));var v={};d&&(v.click=function(n){t.headClicked(n,i,e)},v.keydown=function(n){var o=n.keyCode;o!==Ha&&o!==Ga||t.headClicked(n,i,e)});var b=n?t.sortTheadThAttrs(p,i,e):{},g=n?t.sortTheadThClasses(p,i,e):null,y=n?t.sortTheadThLabel(p,i,e):null,w={class:[t.fieldClasses(i),g],props:{variant:a,stickyColumn:l},style:i.thStyle||{},attrs:c(c({tabindex:d&&i.sortable?"0":null,abbr:i.headerAbbr||null,title:i.headerTitle||null,"aria-colindex":o+1,"aria-label":m},t.getThValues(null,p,i.thAttr,e?"foot":"head",{})),b),on:v,key:p},C=[gT(p),gT(p.toLowerCase()),gT()];e&&(C=[yT(p),yT(p.toLowerCase()),yT()].concat(T(C)));var x={label:r,column:p,field:i,isFoot:e,selectAllRows:h,clearSelected:f},S=t.normalizeSlot(C,x)||u("div",{domProps:Fl(s,r)}),k=y?u("span",{staticClass:"sr-only"}," (".concat(y,")")):null;return u(sT,w,[S,k].filter(ne))},m=i.map(p).filter(ne),v=[];if(e)v.push(u(Qy,{class:this.tfootTrClass,props:{variant:Pt(l)?a:l}},m));else{var b={columns:i.length,fields:i,selectAllRows:h,clearSelected:f};v.push(this.normalizeSlot(Qo,b)||u()),v.push(u(Qy,{class:this.theadTrClass,props:{variant:a}},m))}return u(e?fT:bT,{class:(e?this.tfootClass:this.theadClass)||null,props:e?{footVariant:s||r||null}:{headVariant:r||null},key:e?"bv-tfoot":"bv-thead"},v)}}}),CT=i.default.extend({methods:{renderTopRow:function(){var t=this.computedFields,e=this.stacked,i=this.tbodyTrClass,n=this.tbodyTrAttr,o=this.$createElement;return this.hasNormalizedSlot(er)&&!0!==e&&""!==e?o(Qy,{staticClass:"b-table-top-row",class:[Ot(i)?i(null,"row-top"):i],attrs:Ot(n)?n(null,"row-top"):n,key:"b-top-row"},[this.normalizeSlot(er,{columns:t.length,fields:t})]):o()}}}),xT=vs(ee(c(c(c(c(c(c(c(c(c(c(c(c(c(c(c(c(c(c({},fc),tw),aw),cw),dw),fw),Cw),Fw),Pw),Lw),Mw),qw),Xw),Jw),uT),pT),wT),{})),fn),ST=i.default.extend({name:fn,mixins:[Za,Ky,pc,Cs,Iw,Qw,Zw,TT,mT,dT,Zw,xw,Kw,Ow,uw,hw,Hw,pw,CT,ew,lw,Aw],props:xT}),kT=vs(ee(c(c(c(c(c(c(c(c(c({},fc),cw),dw),Fw),Xw),Jw),uT),pT),wT)),mn),$T=i.default.extend({name:mn,mixins:[Za,Ky,pc,Cs,Iw,Qw,Zw,TT,mT,dT,uw,hw],props:kT}),BT=vs(ee(c(c(c({},fc),Xw),Jw)),vn),_T=i.default.extend({name:vn,mixins:[Za,Ky,pc,Cs,Qw,Zw],props:BT,computed:{isTableSimple:function(){return!0}}}),DT=me({components:{BTable:ST},plugins:{TableLitePlugin:me({components:{BTableLite:$T}}),TableSimplePlugin:me({components:{BTableSimple:_T,BTbody:eT,BThead:bT,BTfoot:fT,BTr:Qy,BTd:rw,BTh:sT}})}}),FT=function(t){return t>0},IT=vs({animation:hs(go),columns:hs(mo,5,FT),hideHeader:hs(ho,!1),rows:hs(mo,3,FT),showFooter:hs(ho,!1),tableProps:hs(vo,{})},cn),PT=i.default.extend({name:cn,functional:!0,props:IT,render:function(t,e){var i=e.props,n=i.animation,o=i.columns,r=t("th",[t(Gy,{props:{animation:n}})]),s=t("tr",rr(o,r)),a=t("td",[t(Gy,{props:{width:"75%",animation:n}})]),l=t("tr",rr(o,a)),u=t("tbody",rr(i.rows,l)),d=i.hideHeader?t():t("thead",[s]),h=i.showFooter?t("tfoot",[s]):t();return t(_T,{props:c({},i.tableProps)},[d,u,h])}}),OT=vs({loading:hs(ho,!1)},un),VT=me({components:{BSkeleton:Gy,BSkeletonIcon:Yy,BSkeletonImg:qy,BSkeletonTable:PT,BSkeletonWrapper:i.default.extend({name:un,functional:!0,props:OT,render:function(t,e){var i=e.data,n=e.props,o=e.slots,r=e.scopedSlots,s=o(),a=r||{},l={};return n.loading?t("div",F(i,{attrs:{role:"alert","aria-live":"polite","aria-busy":!0},staticClass:"b-skeleton-wrapper",key:"loading"}),Ts("loading",l,a,s)):Ts(Ao,l,a,s)}})}}),ET=me({components:{BSpinner:mg}}),LT=ys("value",{type:mo}),AT=LT.mixin,RT=LT.props,MT=LT.prop,HT=LT.event,zT=function(t){return!t.disabled},NT=i.default.extend({name:"BVTabButton",inject:{bvTabs:{default:function(){return{}}}},props:{controls:hs(go),id:hs(go),noKeyNav:hs(ho,!1),posInSet:hs(mo),setSize:hs(mo),tab:hs(),tabIndex:hs(mo)},methods:{focus:function(){ts(this.$refs.link)},handleEvt:function(t){if(!this.tab.disabled){var e=t.type,i=t.keyCode,n=t.shiftKey;"click"===e||"keydown"===e&&i===Ga?(Bs(t),this.$emit(Bn,t)):"keydown"!==e||this.noKeyNav||(-1!==[Wa,Na,za].indexOf(i)?(Bs(t),n||i===za?this.$emit(An,t):this.$emit(Xn,t)):-1!==[Ra,ja,Ma].indexOf(i)&&(Bs(t),n||i===Ma?this.$emit(Gn,t):this.$emit(Un,t)))}}},render:function(t){var e=this.id,i=this.tabIndex,n=this.setSize,o=this.posInSet,r=this.controls,s=this.handleEvt,a=this.tab,l=a.title,u=a.localActive,d=a.disabled,h=a.titleItemClass,f=a.titleLinkClass,p=a.titleLinkAttributes,m=t(ol,{staticClass:"nav-link",class:[{active:u&&!d,disabled:d},f,u?this.bvTabs.activeNavItemClass:null],props:{disabled:d},attrs:c(c({},p),{},{id:e,role:"tab",tabindex:i,"aria-selected":u&&!d?"true":"false","aria-setsize":n,"aria-posinset":o,"aria-controls":r}),on:{click:s,keydown:s},ref:"link"},[this.tab.normalizeSlot(tr)||l]);return t("li",{staticClass:"nav-item",class:[h],attrs:{role:"presentation"}},[m])}}),jT=Qt(Vb,["tabs","isNavBar","cardHeader"]),GT=vs(ee(c(c(c(c({},fc),RT),jT),{},{activeNavItemClass:hs(To),activeTabClass:hs(To),card:hs(ho,!1),contentClass:hs(To),end:hs(ho,!1),lazy:hs(ho,!1),navClass:hs(To),navWrapperClass:hs(To),noFade:hs(ho,!1),noKeyNav:hs(ho,!1),noNavStyle:hs(ho,!1),tag:hs(go,"div")})),bn),WT=i.default.extend({name:bn,mixins:[pc,AT,Cs],provide:function(){return{bvTabs:this}},props:GT,data:function(){return{currentTab:lr(this[MT],-1),tabs:[],registeredTabs:[]}},computed:{fade:function(){return!this.noFade},localNavClass:function(){var t=[];return this.card&&this.vertical&&t.push("card-header","h-100","border-bottom-0","rounded-0"),[].concat(t,[this.navClass])}},watch:(ng={},a(ng,MT,(function(t,e){if(t!==e){t=lr(t,-1),e=lr(e,0);var i=this.tabs[t];i&&!i.disabled?this.activateTab(i):t0&&void 0!==arguments[0])||arguments[0];if(this.$_observer&&this.$_observer.disconnect(),this.$_observer=null,e){var i=function(){t.$nextTick((function(){xr((function(){t.updateTabs()}))}))};this.$_observer=au(this.$refs.content,i,{childList:!0,subtree:!1,attributes:!0,attributeFilter:["id"]})}},getTabs:function(){var t=this.registeredTabs.filter((function(t){return 0===t.$children.filter((function(t){return t._isTab})).length})),e=[];if(M&&t.length>0){var i=t.map((function(t){return"#".concat(t.safeId())})).join(", ");e=Pr(i,this.$el).map((function(t){return t.id})).filter(ne)}return zw(t,(function(t,i){return e.indexOf(t.safeId())-e.indexOf(i.safeId())}))},updateTabs:function(){var t=this.getTabs(),e=t.indexOf(t.slice().reverse().find((function(t){return t.localActive&&!t.disabled})));if(e<0){var i=this.currentTab;i>=t.length?e=t.indexOf(t.slice().reverse().find(zT)):t[i]&&!t[i].disabled&&(e=i)}e<0&&(e=t.indexOf(t.find(zT))),t.forEach((function(t,i){t.localActive=i===e})),this.tabs=t,this.currentTab=e},getButtonForTab:function(t){return(this.$refs.buttons||[]).find((function(e){return e.tab===t}))},updateButton:function(t){var e=this.getButtonForTab(t);e&&e.$forceUpdate&&e.$forceUpdate()},activateTab:function(t){var e=this.currentTab,i=this.tabs,n=!1;if(t){var o=i.indexOf(t);if(o!==e&&o>-1&&!t.disabled){var r=new BvEvent("activate-tab",{cancelable:!0,vueTarget:this,componentId:this.safeId()});this.$emit(r.type,o,e,r),r.defaultPrevented||(this.currentTab=o,n=!0)}}return n||this[MT]===e||this.$emit(HT,e),n},deactivateTab:function(t){return!!t&&this.activateTab(this.tabs.filter((function(e){return e!==t})).find(zT))},focusButton:function(t){var e=this;this.$nextTick((function(){ts(e.getButtonForTab(t))}))},emitTabClick:function(t,e){Nt(e)&&t&&t.$emit&&!t.disabled&&t.$emit(Bn,e)},clickTab:function(t,e){this.activateTab(t),this.emitTabClick(t,e)},firstTab:function(t){var e=this.tabs.find(zT);this.activateTab(e)&&t&&(this.focusButton(e),this.emitTabClick(e,t))},previousTab:function(t){var e=Us(this.currentTab,0),i=this.tabs.slice(0,e).reverse().find(zT);this.activateTab(i)&&t&&(this.focusButton(i),this.emitTabClick(i,t))},nextTab:function(t){var e=Us(this.currentTab,-1),i=this.tabs.slice(e+1).find(zT);this.activateTab(i)&&t&&(this.focusButton(i),this.emitTabClick(i,t))},lastTab:function(t){var e=this.tabs.slice().reverse().find(zT);this.activateTab(e)&&t&&(this.focusButton(e),this.emitTabClick(e,t))}},render:function(t){var e=this,i=this.align,n=this.card,o=this.end,r=this.fill,s=this.firstTab,l=this.justified,c=this.lastTab,u=this.nextTab,d=this.noKeyNav,h=this.noNavStyle,f=this.pills,p=this.previousTab,m=this.small,v=this.tabs,b=this.vertical,g=v.find((function(t){return t.localActive&&!t.disabled})),y=v.find((function(t){return!t.disabled})),w=v.map((function(i,n){var o,r=i.safeId,l=null;return d||(l=-1,(i===g||!g&&i===y)&&(l=null)),t(NT,{props:{controls:r?r():null,id:i.controlledBy||(r?r("_BV_tab_button_"):null),noKeyNav:d,posInSet:n+1,setSize:v.length,tab:i,tabIndex:l},on:(o={},a(o,Bn,(function(t){e.clickTab(i,t)})),a(o,An,s),a(o,Xn,p),a(o,Un,u),a(o,Gn,c),o),key:i._uid||n,ref:"buttons",refInFor:!0})})),T=t(Eb,{class:this.localNavClass,attrs:{role:"tablist",id:this.safeId("_BV_tab_controls_")},props:{fill:r,justified:l,align:i,tabs:!h&&!f,pills:!h&&f,vertical:b,small:m,cardHeader:n&&!b},ref:"nav"},[this.normalizeSlot("tabs-start")||t(),w,this.normalizeSlot("tabs-end")||t()]);T=t("div",{class:[{"card-header":n&&!b&&!o,"card-footer":n&&!b&&o,"col-auto":b},this.navWrapperClass],key:"bv-tabs-nav"},[T]);var C=this.normalizeSlot()||[],x=t();0===C.length&&(x=t("div",{class:["tab-pane","active",{"card-body":n}],key:"bv-empty-tab"},this.normalizeSlot(Ro)));var S=t("div",{staticClass:"tab-content",class:[{col:b},this.contentClass],attrs:{id:this.safeId("_BV_tab_container_")},key:"bv-content",ref:"content"},[C,x]);return t(this.tag,{staticClass:"tabs",class:{row:b,"no-gutters":b&&n},attrs:{id:this.safeId()}},[o?S:t(),T,o?t():S])}}),YT="active",UT="update:active",qT=vs(ee(c(c({},fc),{},(a(og={},YT,hs(ho,!1)),a(og,"buttonId",hs(go)),a(og,"disabled",hs(ho,!1)),a(og,"lazy",hs(ho,!1)),a(og,"noBody",hs(ho,!1)),a(og,"tag",hs(go,"div")),a(og,"title",hs(go)),a(og,"titleItemClass",hs(To)),a(og,"titleLinkAttributes",hs(vo)),a(og,"titleLinkClass",hs(To)),og))),hn),KT=me({components:{BTabs:WT,BTab:i.default.extend({name:hn,mixins:[pc,Cs],inject:{bvTabs:{default:function(){return{}}}},props:qT,data:function(){return{localActive:this.active&&!this.disabled}},computed:{_isTab:function(){return!0},tabClasses:function(){var t=this.localActive;return[{active:t,disabled:this.disabled,"card-body":this.bvTabs.card&&!this.noBody},t?this.bvTabs.activeTabClass:null]},controlledBy:function(){return this.buttonId||this.safeId("__BV_tab_button__")},computedNoFade:function(){return!this.bvTabs.fade},computedLazy:function(){return this.bvTabs.lazy||this.lazy}},watch:(rg={},a(rg,YT,(function(t,e){t!==e&&(t?this.activate():this.deactivate()||this.$emit(UT,this.localActive))})),a(rg,"disabled",(function(t,e){if(t!==e){var i=this.bvTabs.firstTab;t&&this.localActive&&i&&(this.localActive=!1,i())}})),a(rg,"localActive",(function(t){this.$emit(UT,t)})),rg),mounted:function(){this.registerTab()},updated:function(){var t=this.bvTabs.updateButton;t&&this.hasNormalizedSlot(tr)&&t(this)},beforeDestroy:function(){this.unregisterTab()},methods:{registerTab:function(){var t=this.bvTabs.registerTab;t&&t(this)},unregisterTab:function(){var t=this.bvTabs.unregisterTab;t&&t(this)},activate:function(){var t=this.bvTabs.activateTab;return!(!t||this.disabled)&&t(this)},deactivate:function(){var t=this.bvTabs.deactivateTab;return!(!t||!this.localActive)&&t(this)}},render:function(t){var e=this.localActive,i=t(this.tag,{staticClass:"tab-pane",class:this.tabClasses,directives:[{name:"show",value:e}],attrs:{role:"tabpanel",id:this.safeId(),"aria-hidden":e?"false":"true","aria-labelledby":this.controlledBy||null},ref:"panel"},[e||!this.computedLazy?this.normalizeSlot():t()]);return t(Ls,{props:{mode:"out-in",noFade:this.computedNoFade}},[i])}})}}),XT=me({components:{BTime:av}});function ZT(t){return(ZT="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function JT(t){return function(t){if(Array.isArray(t)){for(var e=0,i=new Array(t.length);e1&&void 0!==arguments[1]&&arguments[1],i=t.to,n=t.from;if(i&&(n||!1!==e)&&this.transports[i])if(e)this.transports[i]=[];else{var o=this.$_getTransportIndex(t);if(o>=0){var r=this.transports[i].slice(0);r.splice(o,1),this.transports[i]=r}}},registerTarget:function(t,e,i){QT&&(this.trackInstances&&!i&&this.targets[t]&&console.warn("[portal-vue]: Target ".concat(t," already exists")),this.$set(this.targets,t,Object.freeze([e])))},unregisterTarget:function(t){this.$delete(this.targets,t)},registerSource:function(t,e,i){QT&&(this.trackInstances&&!i&&this.sources[t]&&console.warn("[portal-vue]: source ".concat(t," already exists")),this.$set(this.sources,t,Object.freeze([e])))},unregisterSource:function(t){this.$delete(this.sources,t)},hasTarget:function(t){return!(!this.targets[t]||!this.targets[t][0])},hasSource:function(t){return!(!this.sources[t]||!this.sources[t][0])},hasContentFor:function(t){return!!this.transports[t]&&!!this.transports[t].length},$_getTransportIndex:function(t){var e=t.to,i=t.from;for(var n in this.transports[e])if(this.transports[e][n].from===i)return+n;return-1}}}))(nC),aC=1,lC=i.default.extend({name:"portal",props:{disabled:{type:Boolean},name:{type:String,default:function(){return String(aC++)}},order:{type:Number,default:0},slim:{type:Boolean},slotProps:{type:Object,default:function(){return{}}},tag:{type:String,default:"DIV"},to:{type:String,default:function(){return String(Math.round(1e7*Math.random()))}}},created:function(){var t=this;this.$nextTick((function(){sC.registerSource(t.name,t)}))},mounted:function(){this.disabled||this.sendUpdate()},updated:function(){this.disabled?this.clear():this.sendUpdate()},beforeDestroy:function(){sC.unregisterSource(this.name),this.clear()},watch:{to:function(t,e){e&&e!==t&&this.clear(e),this.sendUpdate()}},methods:{clear:function(t){var e={from:this.name,to:t||this.to};sC.close(e)},normalizeSlots:function(){return this.$scopedSlots.default?[this.$scopedSlots.default]:this.$slots.default},normalizeOwnChildren:function(t){return"function"==typeof t?t(this.slotProps):t},sendUpdate:function(){var t=this.normalizeSlots();if(t){var e={from:this.name,to:this.to,passengers:JT(t),order:this.order};sC.open(e)}else this.clear()}},render:function(t){var e=this.$slots.default||this.$scopedSlots.default||[],i=this.tag;return e&&this.disabled?e.length<=1&&this.slim?this.normalizeOwnChildren(e)[0]:t(i,[this.normalizeOwnChildren(e)]):this.slim?t():t(i,{class:{"v-portal":!0},style:{display:"none"},key:"v-portal-placeholder"})}}),cC=i.default.extend({name:"portalTarget",props:{multiple:{type:Boolean,default:!1},name:{type:String,required:!0},slim:{type:Boolean,default:!1},slotProps:{type:Object,default:function(){return{}}},tag:{type:String,default:"div"},transition:{type:[String,Object,Function]}},data:function(){return{transports:sC.transports,firstRender:!0}},created:function(){var t=this;this.$nextTick((function(){sC.registerTarget(t.name,t)}))},watch:{ownTransports:function(){this.$emit("change",this.children().length>0)},name:function(t,e){sC.unregisterTarget(e),sC.registerTarget(t,this)}},mounted:function(){var t=this;this.transition&&this.$nextTick((function(){t.firstRender=!1}))},beforeDestroy:function(){sC.unregisterTarget(this.name)},computed:{ownTransports:function(){var t=this.transports[this.name]||[];return this.multiple?t:0===t.length?[]:[t[t.length-1]]},passengers:function(){return function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t.reduce((function(t,i){var n=i.passengers[0],o="function"==typeof n?n(e):i.passengers;return t.concat(o)}),[])}(this.ownTransports,this.slotProps)}},methods:{children:function(){return 0!==this.passengers.length?this.passengers:this.$scopedSlots.default?this.$scopedSlots.default(this.slotProps):this.$slots.default||[]},noWrapper:function(){var t=this.slim&&!this.transition;return t&&this.children().length>1&&console.warn("[portal-vue]: PortalTarget with `slim` option received more than one child element."),t}},render:function(t){var e=this.noWrapper(),i=this.children(),n=this.transition||this.tag;return e?i[0]:this.slim&&!n?t():t(n,{props:{tag:this.transition&&this.tag?this.tag:void 0},class:{"vue-portal-target":!0}},i)}}),uC=0,dC=["disabled","name","order","slim","slotProps","tag","to"],hC=["multiple","transition"],fC=(i.default.extend({name:"MountingPortal",inheritAttrs:!1,props:{append:{type:[Boolean,String]},bail:{type:Boolean},mountTo:{type:String,required:!0},disabled:{type:Boolean},name:{type:String,default:function(){return"mounted_"+String(uC++)}},order:{type:Number,default:0},slim:{type:Boolean},slotProps:{type:Object,default:function(){return{}}},tag:{type:String,default:"DIV"},to:{type:String,default:function(){return String(Math.round(1e7*Math.random()))}},multiple:{type:Boolean,default:!1},targetSlim:{type:Boolean},targetSlotProps:{type:Object,default:function(){return{}}},targetTag:{type:String,default:"div"},transition:{type:[String,Object,Function]}},created:function(){if("undefined"!=typeof document){var t=document.querySelector(this.mountTo);if(t){var e=this.$props;if(sC.targets[e.name])e.bail?console.warn("[portal-vue]: Target ".concat(e.name," is already mounted.\n Aborting because 'bail: true' is set")):this.portalTarget=sC.targets[e.name];else{var i=e.append;if(i){var n="string"==typeof i?i:"DIV",o=document.createElement(n);t.appendChild(o),t=o}var r=tC(this.$props,hC);r.slim=this.targetSlim,r.tag=this.targetTag,r.slotProps=this.targetSlotProps,r.name=this.to,this.portalTarget=new cC({el:t,parent:this.$parent||this,propsData:r})}}else console.error("[portal-vue]: Mount Point '".concat(this.mountTo,"' not found in document"))}},beforeDestroy:function(){var t=this.portalTarget;if(this.append){var e=t.$el;e.parentNode.removeChild(e)}t.$destroy()},render:function(t){if(!this.portalTarget)return console.warn("[portal-vue] Target wasn't mounted"),t();if(!this.$scopedSlots.manual){var e=tC(this.$props,dC);return t(lC,{props:e,attrs:this.$attrs,on:this.$listeners,scopedSlots:this.$scopedSlots},this.$slots.default)}var i=this.$scopedSlots.manual({to:this.to});return Array.isArray(i)&&(i=i[0]),i||t()}}),i.default.extend({mixins:[Cs],data:function(){return{name:"b-toaster"}},methods:{onAfterEnter:function(t){var e=this;xr((function(){Mr(t,"".concat(e.name,"-enter-to"))}))}},render:function(t){return t("transition-group",{props:{tag:"div",name:this.name},on:{afterEnter:this.onAfterEnter}},this.normalizeSlot())}})),pC=vs({ariaAtomic:hs(go),ariaLive:hs(go),name:hs(go,void 0,!0),role:hs(go)},xn),mC=i.default.extend({name:xn,mixins:[Ja],props:pC,data:function(){return{doRender:!1,dead:!1,staticName:this.name}},beforeMount:function(){var t=this,e=this.name;this.staticName=e,sC.hasTarget(e)?(le('A "" with name "'.concat(e,'" already exists in the document.'),xn),this.dead=!0):(this.doRender=!0,this.$once(oo,(function(){t.emitOnRoot(Ds(xn,In),e)})))},destroyed:function(){var t=this.$el;t&&t.parentNode&&t.parentNode.removeChild(t)},render:function(t){var e=t("div",{class:["d-none",{"b-dead-toaster":this.dead}]});if(this.doRender){var i=t(cC,{staticClass:"b-toaster-slot",props:{name:this.staticName,multiple:!0,tag:"div",slim:!1,transition:fC}});e=t("div",{staticClass:"b-toaster",class:[this.staticName],attrs:{id:this.staticName,role:this.role||null,"aria-live":this.ariaLive,"aria-atomic":this.ariaAtomic}},[i])}return e}}),vC=ys("visible",{type:ho,defaultValue:!1,event:$n}),bC=vC.mixin,gC=vC.props,yC=vC.prop,wC=vC.event,TC=Jt(nl,["href","to"]),CC=vs(ee(c(c(c(c({},fc),gC),TC),{},{appendToast:hs(ho,!1),autoHideDelay:hs(_o,5e3),bodyClass:hs(To),headerClass:hs(To),isStatus:hs(ho,!1),noAutoHide:hs(ho,!1),noCloseButton:hs(ho,!1),noFade:hs(ho,!1),noHoverPause:hs(ho,!1),solid:hs(ho,!1),static:hs(ho,!1),title:hs(go),toastClass:hs(To),toaster:hs(go,"b-toaster-top-right"),variant:hs(go)})),Cn),xC=i.default.extend({name:Cn,mixins:[Za,pc,bC,Ja,Cs,ib],inheritAttrs:!1,props:CC,data:function(){return{isMounted:!1,doRender:!1,localShow:!1,isTransitioning:!1,isHiding:!1,order:0,dismissStarted:0,resumeDismiss:0}},computed:{toastClasses:function(){var t=this.appendToast,e=this.variant;return a({"b-toast-solid":this.solid,"b-toast-append":t,"b-toast-prepend":!t},"b-toast-".concat(e),e)},slotScope:function(){return{hide:this.hide}},computedDuration:function(){return Us(lr(this.autoHideDelay,0),1e3)},computedToaster:function(){return String(this.toaster)},transitionHandlers:function(){return{beforeEnter:this.onBeforeEnter,afterEnter:this.onAfterEnter,beforeLeave:this.onBeforeLeave,afterLeave:this.onAfterLeave}},computedAttrs:function(){return c(c({},this.bvAttrs),{},{id:this.safeId(),tabindex:"0"})}},watch:(eC={},a(eC,yC,(function(t){this[t?"show":"hide"]()})),a(eC,"localShow",(function(t){t!==this[yC]&&this.$emit(wC,t)})),a(eC,"toaster",(function(){this.$nextTick(this.ensureToaster)})),a(eC,"static",(function(t){t&&this.localShow&&this.ensureToaster()})),eC),created:function(){this.$_dismissTimer=null},mounted:function(){var t=this;this.isMounted=!0,this.$nextTick((function(){t[yC]&&xr((function(){t.show()}))})),this.listenOnRoot(Fs(Cn,to),(function(e){e===t.safeId()&&t.show()})),this.listenOnRoot(Fs(Cn,Nn),(function(e){e&&e!==t.safeId()||t.hide()})),this.listenOnRoot(Ds(xn,In),(function(e){e===t.computedToaster&&t.hide()}))},beforeDestroy:function(){this.clearDismissTimer()},methods:{show:function(){var t=this;if(!this.localShow){this.ensureToaster();var e=this.buildEvent(to);this.emitEvent(e),this.dismissStarted=this.resumeDismiss=0,this.order=Date.now()*(this.appendToast?1:-1),this.isHiding=!1,this.doRender=!0,this.$nextTick((function(){xr((function(){t.localShow=!0}))}))}},hide:function(){var t=this;if(this.localShow){var e=this.buildEvent(Nn);this.emitEvent(e),this.setHoverHandler(!1),this.dismissStarted=this.resumeDismiss=0,this.clearDismissTimer(),this.isHiding=!0,xr((function(){t.localShow=!1}))}},buildEvent:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new BvEvent(t,c(c({cancelable:!1,target:this.$el||null,relatedTarget:null},e),{},{vueTarget:this,componentId:this.safeId()}))},emitEvent:function(t){var e=t.type;this.emitOnRoot(Ds(Cn,e),t),this.$emit(e,t)},ensureToaster:function(){if(!this.static){var t=this.computedToaster;if(!sC.hasTarget(t)){var e=document.createElement("div");document.body.appendChild(e),new mC({parent:this.$root,propsData:{name:t}}).$mount(e)}}},startDismissTimer:function(){this.clearDismissTimer(),this.noAutoHide||(this.$_dismissTimer=setTimeout(this.hide,this.resumeDismiss||this.computedDuration),this.dismissStarted=Date.now(),this.resumeDismiss=0)},clearDismissTimer:function(){clearTimeout(this.$_dismissTimer),this.$_dismissTimer=null},setHoverHandler:function(t){var e=this.$refs["b-toast"];$s(t,e,"mouseenter",this.onPause,lo),$s(t,e,"mouseleave",this.onUnPause,lo)},onPause:function(){if(!this.noAutoHide&&!this.noHoverPause&&this.$_dismissTimer&&!this.resumeDismiss){var t=Date.now()-this.dismissStarted;t>0&&(this.clearDismissTimer(),this.resumeDismiss=Us(this.computedDuration-t,1e3))}},onUnPause:function(){this.noAutoHide||this.noHoverPause||!this.resumeDismiss?this.resumeDismiss=this.dismissStarted=0:this.startDismissTimer()},onLinkClick:function(){var t=this;this.$nextTick((function(){xr((function(){t.hide()}))}))},onBeforeEnter:function(){this.isTransitioning=!0},onAfterEnter:function(){this.isTransitioning=!1;var t=this.buildEvent(eo);this.emitEvent(t),this.startDismissTimer(),this.setHoverHandler(!0)},onBeforeLeave:function(){this.isTransitioning=!0},onAfterLeave:function(){this.isTransitioning=!1,this.order=0,this.resumeDismiss=this.dismissStarted=0;var t=this.buildEvent(zn);this.emitEvent(t),this.doRender=!1},makeToast:function(t){var e=this,i=this.title,n=this.slotScope,o=la(this),r=[],s=this.normalizeSlot("toast-title",n);s?r.push(s):i&&r.push(t("strong",{staticClass:"mr-2"},i)),this.noCloseButton||r.push(t(Ps,{staticClass:"ml-auto mb-1",on:{click:function(){e.hide()}}}));var a=t();r.length>0&&(a=t("header",{staticClass:"toast-header",class:this.headerClass},r));var l=t(o?ol:"div",{staticClass:"toast-body",class:this.bodyClass,props:o?ps(TC,this):{},on:o?{click:this.onLinkClick}:{}},this.normalizeSlot(Ao,n));return t("div",{staticClass:"toast",class:this.toastClass,attrs:this.computedAttrs,key:"toast-".concat(this._uid),ref:"toast"},[a,l])}},render:function(t){if(!this.doRender||!this.isMounted)return t();var e=this.order,i=this.static,n=this.isHiding,o=this.isStatus,r="b-toast-".concat(this._uid),s=t("div",{staticClass:"b-toast",class:this.toastClasses,attrs:c(c({},i?{}:this.scopedStyleAttrs),{},{id:this.safeId("_toast_outer"),role:n?null:o?"status":"alert","aria-live":n?null:o?"polite":"assertive","aria-atomic":n?null:"true"}),key:r,ref:"b-toast"},[t(Ls,{props:{noFade:this.noFade},on:this.transitionHandlers},[this.localShow?this.makeToast(t):t()])]);return t(lC,{props:{name:r,to:this.computedToaster,order:e,slim:!0,disabled:i}},[s])}}),SC="$bvToast",kC=["id"].concat(T(Kt(Qt(CC,["static","visible"])))),$C={toastContent:"default",title:"toast-title"},BC=function(t){return kC.reduce((function(e,i){return Ft(t[i])||(e[i]=t[i]),e}),{})},_C=me({components:{BToast:xC,BToaster:mC},plugins:{BVToastPlugin:me({plugins:{plugin:function(t){var e=t.extend({name:"BVToastPop",extends:xC,destroyed:function(){var t=this.$el;t&&t.parentNode&&t.parentNode.removeChild(t)},mounted:function(){var t=this,e=function(){t.localShow=!1,t.doRender=!1,t.$nextTick((function(){t.$nextTick((function(){xr((function(){t.$destroy()}))}))}))};this.$parent.$once(ro,e),this.$once(zn,e),this.listenOnRoot(Ds(xn,In),(function(i){i===t.toaster&&e()}))}}),i=function(t,i){if(!ce(SC)){var n=new e({parent:i,propsData:c(c(c({},BC(rs(Cn))),Qt(t,Kt($C))),{},{static:!1,visible:!0})});Kt($C).forEach((function(e){var o=t[e];Ft(o)||("title"===e&&Et(o)&&(o=[i.$createElement("strong",{class:"mr-2"},o)]),n.$slots[$C[e]]=or(o))}));var o=document.createElement("div");document.body.appendChild(o),n.$mount(o)}},n=function(){function t(e){o(this,t),Gt(this,{_vm:e,_root:e.$root}),Yt(this,{_vm:{enumerable:!0,configurable:!1,writable:!1},_root:{enumerable:!0,configurable:!1,writable:!1}})}return s(t,[{key:"toast",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t&&!ce(SC)&&i(c(c({},BC(e)),{},{toastContent:t}),this._vm)}},{key:"show",value:function(t){t&&this._root.$emit(Fs(Cn,to),t)}},{key:"hide",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;this._root.$emit(Fs(Cn,Nn),t)}}]),t}();t.mixin({beforeCreate:function(){this._bv__toast=new n(this)}}),Xt(t.prototype,SC)||Ut(t.prototype,SC,{get:function(){return this&&this._bv__toast||le('"'.concat(SC,'" must be accessed from a Vue instance "this" context.'),Cn),this._bv__toast}})}}})}}),DC="__BV_Tooltip__",FC={focus:!0,hover:!0,click:!0,blur:!0,manual:!0},IC=/^html$/i,PC=/^noninteractive$/i,OC=/^nofade$/i,VC=/^(auto|top(left|right)?|bottom(left|right)?|left(top|bottom)?|right(top|bottom)?)$/i,EC=/^(window|viewport|scrollParent)$/i,LC=/^d\d+$/i,AC=/^ds\d+$/i,RC=/^dh\d+$/i,MC=/^o-?\d+$/i,HC=/^v-.+$/i,zC=/\s+/,NC=function(t,e,i){if(M){var n=function(t,e){var i={title:void 0,trigger:"",placement:"top",fallbackPlacement:"flip",container:!1,animation:!0,offset:0,id:null,html:!1,interactive:!0,disabled:!1,delay:rs(Sn,"delay",50),boundary:String(rs(Sn,"boundary","scrollParent")),boundaryPadding:lr(rs(Sn,"boundaryPadding",5),0),variant:rs(Sn,"variant"),customClass:rs(Sn,"customClass")};if(Et(t.value)||Lt(t.value)||Ot(t.value)?i.title=t.value:Ht(t.value)&&(i=c(c({},i),t.value)),Ft(i.title)){var n=e.data||{};i.title=n.attrs&&!Pt(n.attrs.title)?n.attrs.title:void 0}Ht(i.delay)||(i.delay={show:lr(i.delay,0),hide:lr(i.delay,0)}),t.arg&&(i.container="#".concat(t.arg)),Kt(t.modifiers).forEach((function(t){if(IC.test(t))i.html=!0;else if(PC.test(t))i.interactive=!1;else if(OC.test(t))i.animation=!1;else if(VC.test(t))i.placement=t;else if(EC.test(t))t="scrollparent"===t?"scrollParent":t,i.boundary=t;else if(LC.test(t)){var e=lr(t.slice(1),0);i.delay.show=e,i.delay.hide=e}else AC.test(t)?i.delay.show=lr(t.slice(2),0):RC.test(t)?i.delay.hide=lr(t.slice(2),0):MC.test(t)?i.offset=lr(t.slice(1),0):HC.test(t)&&(i.variant=t.slice(2)||null)}));var o={};return or(i.trigger||"").filter(ne).join(" ").trim().toLowerCase().split(zC).forEach((function(t){FC[t]&&(o[t]=!0)})),Kt(t.modifiers).forEach((function(t){t=t.toLowerCase(),FC[t]&&(o[t]=!0)})),i.trigger=Kt(o).join(" "),"blur"===i.trigger&&(i.trigger="focus"),i.trigger||(i.trigger="hover focus"),i}(e,i);if(!t[DC]){var o=i.context;t[DC]=new Xg({parent:o,_scopeId:eb(o,void 0)}),t[DC].__bv_prev_data__={},t[DC].$on(to,(function(){Ot(n.title)&&t[DC].updateData({title:n.title(t)})}))}var r={title:n.title,triggers:n.trigger,placement:n.placement,fallbackPlacement:n.fallbackPlacement,variant:n.variant,customClass:n.customClass,container:n.container,boundary:n.boundary,delay:n.delay,offset:n.offset,noFade:!n.animation,id:n.id,interactive:n.interactive,disabled:n.disabled,html:n.html},s=t[DC].__bv_prev_data__;if(t[DC].__bv_prev_data__=r,!Ua(r,s)){var a={target:t};Kt(r).forEach((function(e){r[e]!==s[e]&&(a[e]="title"===e&&Ot(r[e])?r[e](t):r[e])})),t[DC].updateData(a)}}},jC=me({directives:{VBTooltip:{bind:function(t,e,i){NC(t,e,i)},componentUpdated:function(t,e,i){i.context.$nextTick((function(){NC(t,e,i)}))},unbind:function(t){!function(t){t[DC]&&(t[DC].$destroy(),t[DC]=null),delete t[DC]}(t)}}}}),GC=me({plugins:{AlertPlugin:Ws,AspectPlugin:ia,AvatarPlugin:xl,BadgePlugin:_l,BreadcrumbPlugin:Ll,ButtonPlugin:Al,ButtonGroupPlugin:Hl,ButtonToolbarPlugin:Gl,CalendarPlugin:Cc,CardPlugin:ru,CarouselPlugin:wu,CollapsePlugin:cd,DropdownPlugin:tf,EmbedPlugin:rf,FormPlugin:gf,FormCheckboxPlugin:Jf,FormDatepickerPlugin:mp,FormFilePlugin:Bp,FormGroupPlugin:Rp,FormInputPlugin:Zp,FormRadioPlugin:tm,FormRatingPlugin:dm,FormSelectPlugin:km,FormSpinbuttonPlugin:Vm,FormTagsPlugin:qm,FormTextareaPlugin:Zm,FormTimepickerPlugin:bv,ImagePlugin:gv,InputGroupPlugin:_v,JumbotronPlugin:Pv,LayoutPlugin:Av,LinkPlugin:Rv,ListGroupPlugin:Gv,MediaPlugin:Xv,ModalPlugin:Ob,NavPlugin:Wb,NavbarPlugin:fg,OverlayPlugin:yg,PaginationPlugin:Vg,PaginationNavPlugin:Rg,PopoverPlugin:wy,ProgressPlugin:ky,SidebarPlugin:Ny,SkeletonPlugin:VT,SpinnerPlugin:ET,TablePlugin:DT,TabsPlugin:KT,TimePlugin:XT,ToastPlugin:_C,TooltipPlugin:me({components:{BTooltip:ey},plugins:{VBTooltipPlugin:jC}})}}),WC=me({directives:{VBHover:np}}),YC=me({directives:{VBModal:Bb}}),UC="active",qC=".nav-link",KC=".nav-item",XC=".list-group-item",ZC=".dropdown-item",JC=Ds("BVScrollspy","activate"),QC="position",tx={element:"body",offset:10,method:"auto",throttle:75},ex={element:"(string|element|component)",offset:"number",method:"string",throttle:"number"},ix=["webkitTransitionEnd","transitionend","otransitionend","oTransitionEnd"],nx=function(t){return function(t){return Object.prototype.toString.call(t)}(t).match(/\s([a-zA-Z]+)/)[1].toLowerCase()},ox=function(){function t(e,i,n){o(this,t),this.$el=e,this.$scroller=null,this.$selector=[qC,XC,ZC].join(","),this.$offsets=[],this.$targets=[],this.$activeTarget=null,this.$scrollHeight=0,this.$resizeTimeout=null,this.$scrollerObserver=null,this.$targetsObserver=null,this.$root=n||null,this.$config=null,this.updateConfig(i)}return s(t,[{key:"updateConfig",value:function(t,e){this.$scroller&&(this.unlisten(),this.$scroller=null);var i=c(c({},this.constructor.Default),t);if(e&&(this.$root=e),function(t,e,i){for(var n in i)if(Xt(i,n)){var o=i[n],r=e[n],s=r&&kr(r)?"element":nx(r);s=r&&r._isVue?"component":s,new RegExp(o).test(s)||le("".concat(t,': Option "').concat(n,'" provided type "').concat(s,'" but expected type "').concat(o,'"'))}}(this.constructor.Name,i,this.constructor.DefaultType),this.$config=i,this.$root){var n=this;this.$root.$nextTick((function(){n.listen()}))}else this.listen()}},{key:"dispose",value:function(){this.unlisten(),clearTimeout(this.$resizeTimeout),this.$resizeTimeout=null,this.$el=null,this.$config=null,this.$scroller=null,this.$selector=null,this.$offsets=null,this.$targets=null,this.$activeTarget=null,this.$scrollHeight=null}},{key:"listen",value:function(){var t=this,e=this.getScroller();e&&"BODY"!==e.tagName&&Ss(e,"scroll",this,lo),Ss(window,"scroll",this,lo),Ss(window,"resize",this,lo),Ss(window,"orientationchange",this,lo),ix.forEach((function(e){Ss(window,e,t,lo)})),this.setObservers(!0),this.handleEvent("refresh")}},{key:"unlisten",value:function(){var t=this,e=this.getScroller();this.setObservers(!1),e&&"BODY"!==e.tagName&&ks(e,"scroll",this,lo),ks(window,"scroll",this,lo),ks(window,"resize",this,lo),ks(window,"orientationchange",this,lo),ix.forEach((function(e){ks(window,e,t,lo)}))}},{key:"setObservers",value:function(t){var e=this;this.$scrollerObserver&&this.$scrollerObserver.disconnect(),this.$targetsObserver&&this.$targetsObserver.disconnect(),this.$scrollerObserver=null,this.$targetsObserver=null,t&&(this.$targetsObserver=au(this.$el,(function(){e.handleEvent("mutation")}),{subtree:!0,childList:!0,attributes:!0,attributeFilter:["href"]}),this.$scrollerObserver=au(this.getScroller(),(function(){e.handleEvent("mutation")}),{subtree:!0,childList:!0,characterData:!0,attributes:!0,attributeFilter:["id","style","class"]}))}},{key:"handleEvent",value:function(t){var e=Et(t)?t:t.type,i=this;"scroll"===e?(this.$scrollerObserver||this.listen(),this.process()):/(resize|orientationchange|mutation|refresh)/.test(e)&&(i.$resizeTimeout||(i.$resizeTimeout=setTimeout((function(){i.refresh(),i.process(),i.$resizeTimeout=null}),i.$config.throttle)))}},{key:"refresh",value:function(){var t=this,e=this.getScroller();if(e){var i=e!==e.window?QC:"offset",n="auto"===this.$config.method?i:this.$config.method,o=n===QC?Jr:Zr,r=n===QC?this.getScrollTop():0;return this.$offsets=[],this.$targets=[],this.$scrollHeight=this.getScrollHeight(),Pr(this.$selector,this.$el).map((function(t){return jr(t,"href")})).filter((function(t){return t&&yt.test(t||"")})).map((function(t){var i=t.replace(yt,"$1").trim();if(!i)return null;var n=Or(i,e);return n&&Dr(n)?{offset:lr(o(n).top,0)+r,target:i}:null})).filter(ne).sort((function(t,e){return t.offset-e.offset})).reduce((function(e,i){return e[i.target]||(t.$offsets.push(i.offset),t.$targets.push(i.target),e[i.target]=!0),e}),{}),this}}},{key:"process",value:function(){var t=this.getScrollTop()+this.$config.offset,e=this.getScrollHeight(),i=this.$config.offset+e-this.getOffsetHeight();if(this.$scrollHeight!==e&&this.refresh(),t>=i){var n=this.$targets[this.$targets.length-1];this.$activeTarget!==n&&this.activate(n)}else{if(this.$activeTarget&&t0)return this.$activeTarget=null,void this.clear();for(var o=this.$offsets.length;o--;){this.$activeTarget!==this.$targets[o]&&t>=this.$offsets[o]&&(Ft(this.$offsets[o+1])||t0&&this.$root&&this.$root.$emit(JC,t,i)}},{key:"clear",value:function(){var t=this;Pr("".concat(this.$selector,", ").concat(KC),this.$el).filter((function(t){return Hr(t,UC)})).forEach((function(e){return t.setActiveState(e,!1)}))}},{key:"setActiveState",value:function(t,e){t&&(e?Rr(t,UC):Mr(t,UC))}}],[{key:"Name",get:function(){return"v-b-scrollspy"}},{key:"Default",get:function(){return tx}},{key:"DefaultType",get:function(){return ex}}]),t}(),rx="__BV_ScrollSpy__",sx=/^\d+$/,ax=/^(auto|position|offset)$/,lx=function(t,e,i){if(M){var n=function(t){var e={};return t.arg&&(e.element="#".concat(t.arg)),Kt(t.modifiers).forEach((function(t){sx.test(t)?e.offset=lr(t,0):ax.test(t)&&(e.method=t)})),Et(t.value)?e.element=t.value:Lt(t.value)?e.offset=Js(t.value):Mt(t.value)&&Kt(t.value).filter((function(t){return!!ox.DefaultType[t]})).forEach((function(i){e[i]=t.value[i]})),e}(e);t[rx]?t[rx].updateConfig(n,i.context.$root):t[rx]=new ox(t,n,i.context.$root)}},cx={install:pe({plugins:{componentsPlugin:GC,directivesPlugin:me({plugins:{VBHoverPlugin:WC,VBModalPlugin:YC,VBPopoverPlugin:yy,VBScrollspyPlugin:me({directives:{VBScrollspy:{bind:function(t,e,i){lx(t,e,i)},inserted:function(t,e,i){lx(t,e,i)},update:function(t,e,i){e.value!==e.oldValue&&lx(t,e,i)},componentUpdated:function(t,e,i){e.value!==e.oldValue&&lx(t,e,i)},unbind:function(t){!function(t){t[rx]&&(t[rx].dispose(),t[rx]=null,delete t[rx])}(t)}}}}),VBTogglePlugin:ld,VBTooltipPlugin:jC,VBVisiblePlugin:me({directives:{VBVisible:Kc}})}})}}),NAME:"BootstrapVue"};return iC=cx,V&&window.Vue&&window.Vue.use(iC),V&&iC.NAME&&(window[iC.NAME]=iC),cx})); +//# sourceMappingURL=bootstrap-vue.min.js.map \ No newline at end of file diff --git a/src/renderer/js/bootstrap.min.js b/src/renderer/lib/bootstrap.min.js similarity index 100% rename from src/renderer/js/bootstrap.min.js rename to src/renderer/lib/bootstrap.min.js diff --git a/src/renderer/lib/fast-plural-rules.js b/src/renderer/lib/fast-plural-rules.js new file mode 100644 index 00000000..b0b5c857 --- /dev/null +++ b/src/renderer/lib/fast-plural-rules.js @@ -0,0 +1 @@ +!function(n,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((n="undefined"!=typeof globalThis?globalThis:n||self).fastPluralRules={})}(this,(function(n){"use strict";var e=[function(){return 0},function(n){return 1===n?0:1},function(n){return n<=1?0:1},function(n){return n%10==1&&n%100!=11?1:n%10!=0?2:0},function(n){return 1===n||11===n?0:2===n||12===n?1:n>2&&n<20?2:3},function(n){return 1===n?0:0===n||n%100>0&&n%100<20?1:2},function(n){return n%10==1&&n%100!=11?0:n%10>=2&&(n%100<10||n%100>=20)?2:1},function(n){return n%10==1&&n%100!=11?0:n%10>=2&&n%10<=4&&(n%100<10||n%100>=20)?1:2},function(n){return 1===n?0:n>=2&&n<=4?1:2},function(n){return 1===n?0:n%10>=2&&n%10<=4&&(n%100<10||n%100>=20)?1:2},function(n){return n%100==1?0:n%100==2?1:n%100==3||n%100==4?2:3},function(n){return 1===n?0:2===n?1:n>2&&n<7?2:n>6&&n<11?3:4},function(n){return 1===n?0:2===n?1:n%100>=3&&n%100<=10?2:n%100>=11?3:0!==n?4:5},function(n){return 1===n?0:0===n||n%100>0&&n%100<11?1:n%100>10&&n%100<20?2:3},function(n){return n%10==1?0:n%10==2?1:2},function(n){return n%10==1&&n%100!=11?0:1},function(n){return n%10==1&&n%100!=11&&n%100!=71&&n%100!=91?0:n%10==2&&n%100!=12&&n%100!=72&&n%100!=92?1:n%10!=3&&n%10!=4&&n%10!=9||n%100==13||n%100==73||n%100==93||n%100==14||n%100==74||n%100==94||n%100==19||n%100==79||n%100==99?0!==n&&n%1e6==0?3:4:2},function(n){return 0!==n?1:0},function(n){return 1===n?1:2===n?2:3===n?3:6===n?4:0!==n?5:0},function(n){return 1===n?0:n%10>=2&&n%10<=4&&(n%100<10||n%100>=20)?1:2},function(n){return 1===n?0:2===n?1:3===n?2:3},function(n){return n%10==1&&n%100!=11?0:n%10>=2&&n%10<=4&&(n%100<10||n%100>=20)?1:2},function(n){return 0===n?0:1===n?1:2}],r={ach:2,af:1,ak:2,am:2,an:1,anp:1,ar:12,arn:2,as:1,ast:1,ay:0,az:1,be:7,bg:1,bn:1,bo:0,br:2,brx:1,bs:7,ca:1,cgg:0,cs:8,csb:19,cy:18,da:1,de:1,doi:1,dz:0,el:1,en:1,eo:1,es:1,"es-ar":1,et:1,eu:1,fa:2,ff:1,fi:1,fil:2,fo:1,fr:2,fur:1,fy:1,ga:11,gd:4,gl:1,gu:1,gun:2,ha:1,he:1,hi:1,hne:1,hr:7,hu:1,hy:1,ia:1,id:0,is:15,it:1,ja:0,jbo:0,jv:17,ka:0,kk:1,kl:1,km:0,kn:1,ko:0,ku:1,kw:20,ky:1,lb:1,ln:2,lo:0,lt:6,lv:3,mai:1,me:21,mfe:2,mg:2,mi:2,mk:15,ml:1,mn:1,mni:1,mnk:22,mr:1,ms:0,mt:13,my:0,nah:1,nap:1,nb:1,ne:1,nl:1,nn:1,no:1,nso:1,oc:2,or:1,pa:1,pap:1,pl:9,pms:1,ps:1,pt:1,"pt-br":2,rm:1,ro:5,ru:7,rw:1,sah:0,sat:1,sco:1,sd:1,se:1,si:1,sk:8,sl:10,so:1,son:1,sq:1,sr:7,su:0,sv:1,sw:1,ta:1,te:1,tg:2,th:0,ti:2,tk:1,tr:2,tt:0,ug:0,uk:7,ur:1,uz:2,vi:0,wa:2,wo:0,yo:1,"zh-cn":0,"zh-tw":2},o=[["other"],["one","other"],["one","other"],["zero","one","other"],["one","two","few","other"],["one","few","other"],["one","few","other"],["one","few","other"],["one","few","other"],["one","few","other"],["one","two","few","other"],["one","two","few","many","other"],["one","two","few","many","other","zero"],["one","few","many","other"],["one","few","other"],["one","other"],["one","two","few","many","other"],["zero","other"],["zero","one","two","few","many","other"],["one","few","other"],["one","two","few","other"],["one","few","other"],["zero","one","other"]];function t(n){n=function(n){return n.toLowerCase().replace("_","-")}(n);var e=r[n];if(void 0===e){var o=function(n){var e=n.indexOf("-");return e>0?n.substr(0,e):n}(n);e=r[o]}if(void 0===e)throw new Error('Unrecognized locale: "'+n+'".');return e}function u(n,e){var r=o[e];return function(e){return r[n(e)]}}function a(n){var r=t(n);return e[r]}function i(n){var r=e[n];if(void 0===r)throw new Error('Invalid index: "'+n+'".');return r}function f(n){var r=t(n);return u(e[r],r)}function l(n){if(void 0===e[n])throw new Error('Invalid index: "'+n+'".');return u(e[n],n)}n.getPluralFormForCardinalByIndex=function(n,e){return i(n)(e)},n.getPluralFormForCardinalByLocale=function(n,e){return a(n)(e)},n.getPluralFormNameForCardinalByIndex=function(n,e){return l(n)(e)},n.getPluralFormNameForCardinalByLocale=function(n,e){return f(n)(e)},n.getPluralRuleForCardinalsByIndex=i,n.getPluralRuleForCardinalsByLocale=a,n.getPluralRuleForNamedFormsForCardinalsByIndex=l,n.getPluralRuleForNamedFormsForCardinalsByLocale=f,Object.defineProperty(n,"__esModule",{value:!0})})); \ No newline at end of file diff --git a/src/renderer/js/jquery-3.2.1.slim.min.js b/src/renderer/lib/jquery-3.2.1.slim.min.js similarity index 100% rename from src/renderer/js/jquery-3.2.1.slim.min.js rename to src/renderer/lib/jquery-3.2.1.slim.min.js diff --git a/src/renderer/js/less.js b/src/renderer/lib/less.js similarity index 100% rename from src/renderer/js/less.js rename to src/renderer/lib/less.js diff --git a/src/renderer/js/notyf.min.js b/src/renderer/lib/notyf.min.js similarity index 100% rename from src/renderer/js/notyf.min.js rename to src/renderer/lib/notyf.min.js diff --git a/src/renderer/js/popper.min.js b/src/renderer/lib/popper.min.js similarity index 100% rename from src/renderer/js/popper.min.js rename to src/renderer/lib/popper.min.js diff --git a/src/renderer/lib/resonance-audio.min.js b/src/renderer/lib/resonance-audio.min.js new file mode 100644 index 00000000..7d4349e1 --- /dev/null +++ b/src/renderer/lib/resonance-audio.min.js @@ -0,0 +1,181 @@ +!function(A,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e=t();for(var i in e)("object"==typeof exports?exports:A)[i]=e[i]}}(this,function(){return function(A){function t(i){if(e[i])return e[i].exports;var n=e[i]={i:i,l:!1,exports:{}};return A[i].call(n.exports,n,n.exports,t),n.l=!0,n.exports}var e={};return t.m=A,t.c=e,t.d=function(A,e,i){t.o(A,e)||Object.defineProperty(A,e,{configurable:!1,enumerable:!0,get:i})},t.n=function(A){var e=A&&A.__esModule?function(){return A.default}:function(){return A};return t.d(e,"a",e),e},t.o=function(A,t){return Object.prototype.hasOwnProperty.call(A,t)},t.p="",t(t.s=10)}([function(A,t,e){"use strict";/** + * @license + * Copyright 2017 Google Inc. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function i(){}i.DEFAULT_SOURCE_GAIN=1,i.LISTENER_MAX_OUTSIDE_ROOM_DISTANCE=1,i.SOURCE_MAX_OUTSIDE_ROOM_DISTANCE=1,i.DEFAULT_SOURCE_DISTANCE=1,i.DEFAULT_POSITION=[0,0,0],i.DEFAULT_FORWARD=[0,0,-1],i.DEFAULT_UP=[0,1,0],i.DEFAULT_RIGHT=[1,0,0],i.DEFAULT_SPEED_OF_SOUND=343,i.ATTENUATION_ROLLOFFS=["logarithmic","linear","none"],i.DEFAULT_ATTENUATION_ROLLOFF="logarithmic",i.DEFAULT_MIN_DISTANCE=1,i.DEFAULT_MAX_DISTANCE=1e3,i.DEFAULT_DIRECTIVITY_ALPHA=0,i.DEFAULT_DIRECTIVITY_SHARPNESS=1,i.DEFAULT_AZIMUTH=0,i.DEFAULT_ELEVATION=0,i.DEFAULT_AMBISONIC_ORDER=1,i.DEFAULT_SOURCE_WIDTH=0,i.DEFAULT_REFLECTION_MAX_DURATION=.5,i.DEFAULT_REFLECTION_CUTOFF_FREQUENCY=6400,i.DEFAULT_REFLECTION_COEFFICIENTS={left:0,right:0,front:0,back:0,down:0,up:0},i.DEFAULT_REFLECTION_MIN_DISTANCE=1,i.DEFAULT_ROOM_DIMENSIONS={width:0,height:0,depth:0},i.DEFAULT_REFLECTION_MULTIPLIER=1,i.DEFAULT_REVERB_BANDWIDTH=1,i.DEFAULT_REVERB_DURATION_MULTIPLIER=1,i.DEFAULT_REVERB_PREDELAY=1.5,i.DEFAULT_REVERB_TAIL_ONSET=3.8,i.DEFAULT_REVERB_GAIN=.01,i.DEFAULT_REVERB_MAX_DURATION=3,i.NUMBER_REVERB_FREQUENCY_BANDS=(i.DEFAULT_REVERB_FREQUENCY_BANDS=[31.25,62.5,125,250,500,1e3,2e3,4e3,8e3]).length,i.DEFAULT_REVERB_DURATIONS=new Float32Array(i.NUMBER_REVERB_FREQUENCY_BANDS),i.ROOM_MATERIAL_COEFFICIENTS={transparent:[1,1,1,1,1,1,1,1,1],"acoustic-ceiling-tiles":[.672,.675,.7,.66,.72,.92,.88,.75,1],"brick-bare":[.03,.03,.03,.03,.03,.04,.05,.07,.14],"brick-painted":[.006,.007,.01,.01,.02,.02,.02,.03,.06],"concrete-block-coarse":[.36,.36,.36,.44,.31,.29,.39,.25,.5],"concrete-block-painted":[.092,.09,.1,.05,.06,.07,.09,.08,.16],"curtain-heavy":[.073,.106,.14,.35,.55,.72,.7,.65,1],"fiber-glass-insulation":[.193,.22,.22,.82,.99,.99,.99,.99,1],"glass-thin":[.18,.169,.18,.06,.04,.03,.02,.02,.04],"glass-thick":[.35,.35,.35,.25,.18,.12,.07,.04,.08],grass:[.05,.05,.15,.25,.4,.55,.6,.6,.6],"linoleum-on-concrete":[.02,.02,.02,.03,.03,.03,.03,.02,.04],marble:[.01,.01,.01,.01,.01,.01,.02,.02,.04],metal:[.03,.035,.04,.04,.05,.05,.05,.07,.09],"parquet-on-concrete":[.028,.03,.04,.04,.07,.06,.06,.07,.14],"plaster-rough":[.017,.018,.02,.03,.04,.05,.04,.03,.06],"plaster-smooth":[.011,.012,.013,.015,.02,.03,.04,.05,.1],"plywood-panel":[.4,.34,.28,.22,.17,.09,.1,.11,.22],"polished-concrete-or-tile":[.008,.008,.01,.01,.015,.02,.02,.02,.04],"sheet-rock":[.29,.279,.29,.1,.05,.04,.07,.09,.18],"water-or-ice-surface":[.006,.006,.008,.008,.013,.015,.02,.025,.05],"wood-ceiling":[.15,.147,.15,.11,.1,.07,.06,.07,.14],"wood-panel":[.28,.28,.28,.22,.17,.09,.1,.11,.22],uniform:[.5,.5,.5,.5,.5,.5,.5,.5,.5]},i.DEFAULT_ROOM_MATERIALS={left:"transparent",right:"transparent",front:"transparent",back:"transparent",down:"transparent",up:"transparent"},i.NUMBER_REFLECTION_AVERAGING_BANDS=3,i.ROOM_STARTING_AVERAGING_BAND=4,i.ROOM_MIN_VOLUME=1e-4,i.ROOM_AIR_ABSORPTION_COEFFICIENTS=[6e-4,6e-4,7e-4,8e-4,.001,.0015,.0026,.006,.0207],i.ROOM_EYRING_CORRECTION_COEFFICIENT=1.38,i.TWO_PI=6.28318530717959,i.TWENTY_FOUR_LOG10=55.2620422318571,i.LOG1000=6.90775527898214,i.LOG2_DIV2=.346573590279973,i.DEGREES_TO_RADIANS=.017453292519943,i.RADIANS_TO_DEGREES=57.29577951308232,i.EPSILON_FLOAT=1e-8,i.log=function(){window.console.log.apply(window.console,["%c[ResonanceAudio]%c "+Array.prototype.slice.call(arguments).join(" ")+" %c(@"+performance.now().toFixed(2)+"ms)","background: #BBDEFB; color: #FF5722; font-weight: 700","font-weight: 400","color: #AAA"])},i.normalizeVector=function(A){let e=Math.sqrt(A[0]*A[0]+A[1]*A[1]+A[2]*A[2]);return e>t.EPSILON_FLOAT&&(e=1/e,A[0]*=e,A[1]*=e,A[2]*=e),A},i.crossProduct=function(A,t){return[A[1]*t[2]-A[2]*t[1],A[2]*t[0]-A[0]*t[2],A[0]*t[1]-A[1]*t[0]]},A.exports=i},function(A,t,e){"use strict";function i(A,t){void 0==t&&(t={}),void 0==t.ambisonicOrder&&(t.ambisonicOrder=s.DEFAULT_AMBISONIC_ORDER),void 0==t.azimuth&&(t.azimuth=s.DEFAULT_AZIMUTH),void 0==t.elevation&&(t.elevation=s.DEFAULT_ELEVATION),void 0==t.sourceWidth&&(t.sourceWidth=s.DEFAULT_SOURCE_WIDTH),this._context=A,this.input=A.createGain(),this._channelGain=[],this._merger=void 0,this.output=A.createGain(),this.setAmbisonicOrder(t.ambisonicOrder),this._azimuth=t.azimuth,this._elevation=t.elevation,this.setSourceWidth(t.sourceWidth)}/** + * @license + * Copyright 2017 Google Inc. All Rights Reserved. + * 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. + */ +const n=e(3),s=e(0);i.prototype.setAmbisonicOrder=function(A){this._ambisonicOrder=i.validateAmbisonicOrder(A),this.input.disconnect();for(let e=0;en.SPHERICAL_HARMONICS_MAX_ORDER&&(s.log("Error: Unable to render ambisonic order",options.ambisonicOrder,"(Max order is",n.SPHERICAL_HARMONICS_MAX_ORDER,")\nUsing max order instead."),options.ambisonicOrder=n.SPHERICAL_HARMONICS_MAX_ORDER),A},A.exports=i},function(A,t,e){"use strict";function i(A,t){void 0==t&&(t={}),void 0==t.ambisonicOrder&&(t.ambisonicOrder=o.DEFAULT_AMBISONIC_ORDER),void 0==t.position&&(t.position=o.DEFAULT_POSITION.slice()),void 0==t.forward&&(t.forward=o.DEFAULT_FORWARD.slice()),void 0==t.up&&(t.up=o.DEFAULT_UP.slice()),this.position=new Float32Array(3),this._tempMatrix3=new Float32Array(9),this._ambisonicOrder=s.validateAmbisonicOrder(t.ambisonicOrder),this._context=A,1==this._ambisonicOrder?this._renderer=n.Omnitone.createFOARenderer(A,{}):this._ambisonicOrder>1&&(this._renderer=n.Omnitone.createHOARenderer(A,{ambisonicOrder:this._ambisonicOrder})),this.input=A.createGain(),this.output=A.createGain(),this.ambisonicOutput=A.createGain();let e=this;this._renderer.initialize().then(function(){e.input.connect(e._renderer.input),e._ambisonicOrder>1?e._renderer._hoaRotator.output.connect(e.ambisonicOutput):e._renderer._foaRotator.output.connect(e.ambisonicOutput),e._renderer.output.connect(e.output)}),this.setOrientation(t.forward[0],t.forward[1],t.forward[2],t.up[0],t.up[1],t.up[2])}/** + * @license + * Copyright 2017 Google Inc. All Rights Reserved. + * 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. + */ +const n=e(12),s=e(1),o=e(0);i.prototype.setOrientation=function(A,t,e,i,n,s){let r=o.crossProduct([A,t,e],[i,n,s]);this._tempMatrix3[0]=r[0],this._tempMatrix3[1]=r[1],this._tempMatrix3[2]=r[2],this._tempMatrix3[3]=i,this._tempMatrix3[4]=n,this._tempMatrix3[5]=s,this._tempMatrix3[6]=A,this._tempMatrix3[7]=t,this._tempMatrix3[8]=e,this._renderer.setRotationMatrix3(this._tempMatrix3)},i.prototype.setFromMatrix=function(A){this._renderer.setRotationMatrix4(A.elements),this.position[0]=A.elements[12],this.position[1]=A.elements[13],this.position[2]=A.elements[14]},A.exports=i},function(A,t,e){"use strict";t.SPHERICAL_HARMONICS=[[[0,0,0,1,1,1],[.052336,.034899,.017452,.999848,.999391,.99863],[.104528,.069756,.034899,.999391,.997564,.994522],[.156434,.104528,.052336,.99863,.994522,.987688],[.207912,.139173,.069756,.997564,.990268,.978148],[.258819,.173648,.087156,.996195,.984808,.965926],[.309017,.207912,.104528,.994522,.978148,.951057],[.358368,.241922,.121869,.992546,.970296,.93358],[.406737,.275637,.139173,.990268,.961262,.913545],[.45399,.309017,.156434,.987688,.951057,.891007],[.5,.34202,.173648,.984808,.939693,.866025],[.544639,.374607,.190809,.981627,.927184,.838671],[.587785,.406737,.207912,.978148,.913545,.809017],[.62932,.438371,.224951,.97437,.898794,.777146],[.669131,.469472,.241922,.970296,.882948,.743145],[.707107,.5,.258819,.965926,.866025,.707107],[.743145,.529919,.275637,.961262,.848048,.669131],[.777146,.559193,.292372,.956305,.829038,.62932],[.809017,.587785,.309017,.951057,.809017,.587785],[.838671,.615661,.325568,.945519,.788011,.544639],[.866025,.642788,.34202,.939693,.766044,.5],[.891007,.669131,.358368,.93358,.743145,.45399],[.913545,.694658,.374607,.927184,.71934,.406737],[.93358,.71934,.390731,.920505,.694658,.358368],[.951057,.743145,.406737,.913545,.669131,.309017],[.965926,.766044,.422618,.906308,.642788,.258819],[.978148,.788011,.438371,.898794,.615661,.207912],[.987688,.809017,.45399,.891007,.587785,.156434],[.994522,.829038,.469472,.882948,.559193,.104528],[.99863,.848048,.48481,.87462,.529919,.052336],[1,.866025,.5,.866025,.5,0],[.99863,.882948,.515038,.857167,.469472,-.052336],[.994522,.898794,.529919,.848048,.438371,-.104528],[.987688,.913545,.544639,.838671,.406737,-.156434],[.978148,.927184,.559193,.829038,.374607,-.207912],[.965926,.939693,.573576,.819152,.34202,-.258819],[.951057,.951057,.587785,.809017,.309017,-.309017],[.93358,.961262,.601815,.798636,.275637,-.358368],[.913545,.970296,.615661,.788011,.241922,-.406737],[.891007,.978148,.62932,.777146,.207912,-.45399],[.866025,.984808,.642788,.766044,.173648,-.5],[.838671,.990268,.656059,.75471,.139173,-.544639],[.809017,.994522,.669131,.743145,.104528,-.587785],[.777146,.997564,.681998,.731354,.069756,-.62932],[.743145,.999391,.694658,.71934,.034899,-.669131],[.707107,1,.707107,.707107,0,-.707107],[.669131,.999391,.71934,.694658,-.034899,-.743145],[.62932,.997564,.731354,.681998,-.069756,-.777146],[.587785,.994522,.743145,.669131,-.104528,-.809017],[.544639,.990268,.75471,.656059,-.139173,-.838671],[.5,.984808,.766044,.642788,-.173648,-.866025],[.45399,.978148,.777146,.62932,-.207912,-.891007],[.406737,.970296,.788011,.615661,-.241922,-.913545],[.358368,.961262,.798636,.601815,-.275637,-.93358],[.309017,.951057,.809017,.587785,-.309017,-.951057],[.258819,.939693,.819152,.573576,-.34202,-.965926],[.207912,.927184,.829038,.559193,-.374607,-.978148],[.156434,.913545,.838671,.544639,-.406737,-.987688],[.104528,.898794,.848048,.529919,-.438371,-.994522],[.052336,.882948,.857167,.515038,-.469472,-.99863],[0,.866025,.866025,.5,-.5,-1],[-.052336,.848048,.87462,.48481,-.529919,-.99863],[-.104528,.829038,.882948,.469472,-.559193,-.994522],[-.156434,.809017,.891007,.45399,-.587785,-.987688],[-.207912,.788011,.898794,.438371,-.615661,-.978148],[-.258819,.766044,.906308,.422618,-.642788,-.965926],[-.309017,.743145,.913545,.406737,-.669131,-.951057],[-.358368,.71934,.920505,.390731,-.694658,-.93358],[-.406737,.694658,.927184,.374607,-.71934,-.913545],[-.45399,.669131,.93358,.358368,-.743145,-.891007],[-.5,.642788,.939693,.34202,-.766044,-.866025],[-.544639,.615661,.945519,.325568,-.788011,-.838671],[-.587785,.587785,.951057,.309017,-.809017,-.809017],[-.62932,.559193,.956305,.292372,-.829038,-.777146],[-.669131,.529919,.961262,.275637,-.848048,-.743145],[-.707107,.5,.965926,.258819,-.866025,-.707107],[-.743145,.469472,.970296,.241922,-.882948,-.669131],[-.777146,.438371,.97437,.224951,-.898794,-.62932],[-.809017,.406737,.978148,.207912,-.913545,-.587785],[-.838671,.374607,.981627,.190809,-.927184,-.544639],[-.866025,.34202,.984808,.173648,-.939693,-.5],[-.891007,.309017,.987688,.156434,-.951057,-.45399],[-.913545,.275637,.990268,.139173,-.961262,-.406737],[-.93358,.241922,.992546,.121869,-.970296,-.358368],[-.951057,.207912,.994522,.104528,-.978148,-.309017],[-.965926,.173648,.996195,.087156,-.984808,-.258819],[-.978148,.139173,.997564,.069756,-.990268,-.207912],[-.987688,.104528,.99863,.052336,-.994522,-.156434],[-.994522,.069756,.999391,.034899,-.997564,-.104528],[-.99863,.034899,.999848,.017452,-.999391,-.052336],[-1,0,1,0,-1,-0],[-.99863,-.034899,.999848,-.017452,-.999391,.052336],[-.994522,-.069756,.999391,-.034899,-.997564,.104528],[-.987688,-.104528,.99863,-.052336,-.994522,.156434],[-.978148,-.139173,.997564,-.069756,-.990268,.207912],[-.965926,-.173648,.996195,-.087156,-.984808,.258819],[-.951057,-.207912,.994522,-.104528,-.978148,.309017],[-.93358,-.241922,.992546,-.121869,-.970296,.358368],[-.913545,-.275637,.990268,-.139173,-.961262,.406737],[-.891007,-.309017,.987688,-.156434,-.951057,.45399],[-.866025,-.34202,.984808,-.173648,-.939693,.5],[-.838671,-.374607,.981627,-.190809,-.927184,.544639],[-.809017,-.406737,.978148,-.207912,-.913545,.587785],[-.777146,-.438371,.97437,-.224951,-.898794,.62932],[-.743145,-.469472,.970296,-.241922,-.882948,.669131],[-.707107,-.5,.965926,-.258819,-.866025,.707107],[-.669131,-.529919,.961262,-.275637,-.848048,.743145],[-.62932,-.559193,.956305,-.292372,-.829038,.777146],[-.587785,-.587785,.951057,-.309017,-.809017,.809017],[-.544639,-.615661,.945519,-.325568,-.788011,.838671],[-.5,-.642788,.939693,-.34202,-.766044,.866025],[-.45399,-.669131,.93358,-.358368,-.743145,.891007],[-.406737,-.694658,.927184,-.374607,-.71934,.913545],[-.358368,-.71934,.920505,-.390731,-.694658,.93358],[-.309017,-.743145,.913545,-.406737,-.669131,.951057],[-.258819,-.766044,.906308,-.422618,-.642788,.965926],[-.207912,-.788011,.898794,-.438371,-.615661,.978148],[-.156434,-.809017,.891007,-.45399,-.587785,.987688],[-.104528,-.829038,.882948,-.469472,-.559193,.994522],[-.052336,-.848048,.87462,-.48481,-.529919,.99863],[-0,-.866025,.866025,-.5,-.5,1],[.052336,-.882948,.857167,-.515038,-.469472,.99863],[.104528,-.898794,.848048,-.529919,-.438371,.994522],[.156434,-.913545,.838671,-.544639,-.406737,.987688],[.207912,-.927184,.829038,-.559193,-.374607,.978148],[.258819,-.939693,.819152,-.573576,-.34202,.965926],[.309017,-.951057,.809017,-.587785,-.309017,.951057],[.358368,-.961262,.798636,-.601815,-.275637,.93358],[.406737,-.970296,.788011,-.615661,-.241922,.913545],[.45399,-.978148,.777146,-.62932,-.207912,.891007],[.5,-.984808,.766044,-.642788,-.173648,.866025],[.544639,-.990268,.75471,-.656059,-.139173,.838671],[.587785,-.994522,.743145,-.669131,-.104528,.809017],[.62932,-.997564,.731354,-.681998,-.069756,.777146],[.669131,-.999391,.71934,-.694658,-.034899,.743145],[.707107,-1,.707107,-.707107,-0,.707107],[.743145,-.999391,.694658,-.71934,.034899,.669131],[.777146,-.997564,.681998,-.731354,.069756,.62932],[.809017,-.994522,.669131,-.743145,.104528,.587785],[.838671,-.990268,.656059,-.75471,.139173,.544639],[.866025,-.984808,.642788,-.766044,.173648,.5],[.891007,-.978148,.62932,-.777146,.207912,.45399],[.913545,-.970296,.615661,-.788011,.241922,.406737],[.93358,-.961262,.601815,-.798636,.275637,.358368],[.951057,-.951057,.587785,-.809017,.309017,.309017],[.965926,-.939693,.573576,-.819152,.34202,.258819],[.978148,-.927184,.559193,-.829038,.374607,.207912],[.987688,-.913545,.544639,-.838671,.406737,.156434],[.994522,-.898794,.529919,-.848048,.438371,.104528],[.99863,-.882948,.515038,-.857167,.469472,.052336],[1,-.866025,.5,-.866025,.5,0],[.99863,-.848048,.48481,-.87462,.529919,-.052336],[.994522,-.829038,.469472,-.882948,.559193,-.104528],[.987688,-.809017,.45399,-.891007,.587785,-.156434],[.978148,-.788011,.438371,-.898794,.615661,-.207912],[.965926,-.766044,.422618,-.906308,.642788,-.258819],[.951057,-.743145,.406737,-.913545,.669131,-.309017],[.93358,-.71934,.390731,-.920505,.694658,-.358368],[.913545,-.694658,.374607,-.927184,.71934,-.406737],[.891007,-.669131,.358368,-.93358,.743145,-.45399],[.866025,-.642788,.34202,-.939693,.766044,-.5],[.838671,-.615661,.325568,-.945519,.788011,-.544639],[.809017,-.587785,.309017,-.951057,.809017,-.587785],[.777146,-.559193,.292372,-.956305,.829038,-.62932],[.743145,-.529919,.275637,-.961262,.848048,-.669131],[.707107,-.5,.258819,-.965926,.866025,-.707107],[.669131,-.469472,.241922,-.970296,.882948,-.743145],[.62932,-.438371,.224951,-.97437,.898794,-.777146],[.587785,-.406737,.207912,-.978148,.913545,-.809017],[.544639,-.374607,.190809,-.981627,.927184,-.838671],[.5,-.34202,.173648,-.984808,.939693,-.866025],[.45399,-.309017,.156434,-.987688,.951057,-.891007],[.406737,-.275637,.139173,-.990268,.961262,-.913545],[.358368,-.241922,.121869,-.992546,.970296,-.93358],[.309017,-.207912,.104528,-.994522,.978148,-.951057],[.258819,-.173648,.087156,-.996195,.984808,-.965926],[.207912,-.139173,.069756,-.997564,.990268,-.978148],[.156434,-.104528,.052336,-.99863,.994522,-.987688],[.104528,-.069756,.034899,-.999391,.997564,-.994522],[.052336,-.034899,.017452,-.999848,.999391,-.99863],[0,-0,0,-1,1,-1],[-.052336,.034899,-.017452,-.999848,.999391,-.99863],[-.104528,.069756,-.034899,-.999391,.997564,-.994522],[-.156434,.104528,-.052336,-.99863,.994522,-.987688],[-.207912,.139173,-.069756,-.997564,.990268,-.978148],[-.258819,.173648,-.087156,-.996195,.984808,-.965926],[-.309017,.207912,-.104528,-.994522,.978148,-.951057],[-.358368,.241922,-.121869,-.992546,.970296,-.93358],[-.406737,.275637,-.139173,-.990268,.961262,-.913545],[-.45399,.309017,-.156434,-.987688,.951057,-.891007],[-.5,.34202,-.173648,-.984808,.939693,-.866025],[-.544639,.374607,-.190809,-.981627,.927184,-.838671],[-.587785,.406737,-.207912,-.978148,.913545,-.809017],[-.62932,.438371,-.224951,-.97437,.898794,-.777146],[-.669131,.469472,-.241922,-.970296,.882948,-.743145],[-.707107,.5,-.258819,-.965926,.866025,-.707107],[-.743145,.529919,-.275637,-.961262,.848048,-.669131],[-.777146,.559193,-.292372,-.956305,.829038,-.62932],[-.809017,.587785,-.309017,-.951057,.809017,-.587785],[-.838671,.615661,-.325568,-.945519,.788011,-.544639],[-.866025,.642788,-.34202,-.939693,.766044,-.5],[-.891007,.669131,-.358368,-.93358,.743145,-.45399],[-.913545,.694658,-.374607,-.927184,.71934,-.406737],[-.93358,.71934,-.390731,-.920505,.694658,-.358368],[-.951057,.743145,-.406737,-.913545,.669131,-.309017],[-.965926,.766044,-.422618,-.906308,.642788,-.258819],[-.978148,.788011,-.438371,-.898794,.615661,-.207912],[-.987688,.809017,-.45399,-.891007,.587785,-.156434],[-.994522,.829038,-.469472,-.882948,.559193,-.104528],[-.99863,.848048,-.48481,-.87462,.529919,-.052336],[-1,.866025,-.5,-.866025,.5,0],[-.99863,.882948,-.515038,-.857167,.469472,.052336],[-.994522,.898794,-.529919,-.848048,.438371,.104528],[-.987688,.913545,-.544639,-.838671,.406737,.156434],[-.978148,.927184,-.559193,-.829038,.374607,.207912],[-.965926,.939693,-.573576,-.819152,.34202,.258819],[-.951057,.951057,-.587785,-.809017,.309017,.309017],[-.93358,.961262,-.601815,-.798636,.275637,.358368],[-.913545,.970296,-.615661,-.788011,.241922,.406737],[-.891007,.978148,-.62932,-.777146,.207912,.45399],[-.866025,.984808,-.642788,-.766044,.173648,.5],[-.838671,.990268,-.656059,-.75471,.139173,.544639],[-.809017,.994522,-.669131,-.743145,.104528,.587785],[-.777146,.997564,-.681998,-.731354,.069756,.62932],[-.743145,.999391,-.694658,-.71934,.034899,.669131],[-.707107,1,-.707107,-.707107,0,.707107],[-.669131,.999391,-.71934,-.694658,-.034899,.743145],[-.62932,.997564,-.731354,-.681998,-.069756,.777146],[-.587785,.994522,-.743145,-.669131,-.104528,.809017],[-.544639,.990268,-.75471,-.656059,-.139173,.838671],[-.5,.984808,-.766044,-.642788,-.173648,.866025],[-.45399,.978148,-.777146,-.62932,-.207912,.891007],[-.406737,.970296,-.788011,-.615661,-.241922,.913545],[-.358368,.961262,-.798636,-.601815,-.275637,.93358],[-.309017,.951057,-.809017,-.587785,-.309017,.951057],[-.258819,.939693,-.819152,-.573576,-.34202,.965926],[-.207912,.927184,-.829038,-.559193,-.374607,.978148],[-.156434,.913545,-.838671,-.544639,-.406737,.987688],[-.104528,.898794,-.848048,-.529919,-.438371,.994522],[-.052336,.882948,-.857167,-.515038,-.469472,.99863],[-0,.866025,-.866025,-.5,-.5,1],[.052336,.848048,-.87462,-.48481,-.529919,.99863],[.104528,.829038,-.882948,-.469472,-.559193,.994522],[.156434,.809017,-.891007,-.45399,-.587785,.987688],[.207912,.788011,-.898794,-.438371,-.615661,.978148],[.258819,.766044,-.906308,-.422618,-.642788,.965926],[.309017,.743145,-.913545,-.406737,-.669131,.951057],[.358368,.71934,-.920505,-.390731,-.694658,.93358],[.406737,.694658,-.927184,-.374607,-.71934,.913545],[.45399,.669131,-.93358,-.358368,-.743145,.891007],[.5,.642788,-.939693,-.34202,-.766044,.866025],[.544639,.615661,-.945519,-.325568,-.788011,.838671],[.587785,.587785,-.951057,-.309017,-.809017,.809017],[.62932,.559193,-.956305,-.292372,-.829038,.777146],[.669131,.529919,-.961262,-.275637,-.848048,.743145],[.707107,.5,-.965926,-.258819,-.866025,.707107],[.743145,.469472,-.970296,-.241922,-.882948,.669131],[.777146,.438371,-.97437,-.224951,-.898794,.62932],[.809017,.406737,-.978148,-.207912,-.913545,.587785],[.838671,.374607,-.981627,-.190809,-.927184,.544639],[.866025,.34202,-.984808,-.173648,-.939693,.5],[.891007,.309017,-.987688,-.156434,-.951057,.45399],[.913545,.275637,-.990268,-.139173,-.961262,.406737],[.93358,.241922,-.992546,-.121869,-.970296,.358368],[.951057,.207912,-.994522,-.104528,-.978148,.309017],[.965926,.173648,-.996195,-.087156,-.984808,.258819],[.978148,.139173,-.997564,-.069756,-.990268,.207912],[.987688,.104528,-.99863,-.052336,-.994522,.156434],[.994522,.069756,-.999391,-.034899,-.997564,.104528],[.99863,.034899,-.999848,-.017452,-.999391,.052336],[1,0,-1,-0,-1,0],[.99863,-.034899,-.999848,.017452,-.999391,-.052336],[.994522,-.069756,-.999391,.034899,-.997564,-.104528],[.987688,-.104528,-.99863,.052336,-.994522,-.156434],[.978148,-.139173,-.997564,.069756,-.990268,-.207912],[.965926,-.173648,-.996195,.087156,-.984808,-.258819],[.951057,-.207912,-.994522,.104528,-.978148,-.309017],[.93358,-.241922,-.992546,.121869,-.970296,-.358368],[.913545,-.275637,-.990268,.139173,-.961262,-.406737],[.891007,-.309017,-.987688,.156434,-.951057,-.45399],[.866025,-.34202,-.984808,.173648,-.939693,-.5],[.838671,-.374607,-.981627,.190809,-.927184,-.544639],[.809017,-.406737,-.978148,.207912,-.913545,-.587785],[.777146,-.438371,-.97437,.224951,-.898794,-.62932],[.743145,-.469472,-.970296,.241922,-.882948,-.669131],[.707107,-.5,-.965926,.258819,-.866025,-.707107],[.669131,-.529919,-.961262,.275637,-.848048,-.743145],[.62932,-.559193,-.956305,.292372,-.829038,-.777146],[.587785,-.587785,-.951057,.309017,-.809017,-.809017],[.544639,-.615661,-.945519,.325568,-.788011,-.838671],[.5,-.642788,-.939693,.34202,-.766044,-.866025],[.45399,-.669131,-.93358,.358368,-.743145,-.891007],[.406737,-.694658,-.927184,.374607,-.71934,-.913545],[.358368,-.71934,-.920505,.390731,-.694658,-.93358],[.309017,-.743145,-.913545,.406737,-.669131,-.951057],[.258819,-.766044,-.906308,.422618,-.642788,-.965926],[.207912,-.788011,-.898794,.438371,-.615661,-.978148],[.156434,-.809017,-.891007,.45399,-.587785,-.987688],[.104528,-.829038,-.882948,.469472,-.559193,-.994522],[.052336,-.848048,-.87462,.48481,-.529919,-.99863],[0,-.866025,-.866025,.5,-.5,-1],[-.052336,-.882948,-.857167,.515038,-.469472,-.99863],[-.104528,-.898794,-.848048,.529919,-.438371,-.994522],[-.156434,-.913545,-.838671,.544639,-.406737,-.987688],[-.207912,-.927184,-.829038,.559193,-.374607,-.978148],[-.258819,-.939693,-.819152,.573576,-.34202,-.965926],[-.309017,-.951057,-.809017,.587785,-.309017,-.951057],[-.358368,-.961262,-.798636,.601815,-.275637,-.93358],[-.406737,-.970296,-.788011,.615661,-.241922,-.913545],[-.45399,-.978148,-.777146,.62932,-.207912,-.891007],[-.5,-.984808,-.766044,.642788,-.173648,-.866025],[-.544639,-.990268,-.75471,.656059,-.139173,-.838671],[-.587785,-.994522,-.743145,.669131,-.104528,-.809017],[-.62932,-.997564,-.731354,.681998,-.069756,-.777146],[-.669131,-.999391,-.71934,.694658,-.034899,-.743145],[-.707107,-1,-.707107,.707107,-0,-.707107],[-.743145,-.999391,-.694658,.71934,.034899,-.669131],[-.777146,-.997564,-.681998,.731354,.069756,-.62932],[-.809017,-.994522,-.669131,.743145,.104528,-.587785],[-.838671,-.990268,-.656059,.75471,.139173,-.544639],[-.866025,-.984808,-.642788,.766044,.173648,-.5],[-.891007,-.978148,-.62932,.777146,.207912,-.45399],[-.913545,-.970296,-.615661,.788011,.241922,-.406737],[-.93358,-.961262,-.601815,.798636,.275637,-.358368],[-.951057,-.951057,-.587785,.809017,.309017,-.309017],[-.965926,-.939693,-.573576,.819152,.34202,-.258819],[-.978148,-.927184,-.559193,.829038,.374607,-.207912],[-.987688,-.913545,-.544639,.838671,.406737,-.156434],[-.994522,-.898794,-.529919,.848048,.438371,-.104528],[-.99863,-.882948,-.515038,.857167,.469472,-.052336],[-1,-.866025,-.5,.866025,.5,-0],[-.99863,-.848048,-.48481,.87462,.529919,.052336],[-.994522,-.829038,-.469472,.882948,.559193,.104528],[-.987688,-.809017,-.45399,.891007,.587785,.156434],[-.978148,-.788011,-.438371,.898794,.615661,.207912],[-.965926,-.766044,-.422618,.906308,.642788,.258819],[-.951057,-.743145,-.406737,.913545,.669131,.309017],[-.93358,-.71934,-.390731,.920505,.694658,.358368],[-.913545,-.694658,-.374607,.927184,.71934,.406737],[-.891007,-.669131,-.358368,.93358,.743145,.45399],[-.866025,-.642788,-.34202,.939693,.766044,.5],[-.838671,-.615661,-.325568,.945519,.788011,.544639],[-.809017,-.587785,-.309017,.951057,.809017,.587785],[-.777146,-.559193,-.292372,.956305,.829038,.62932],[-.743145,-.529919,-.275637,.961262,.848048,.669131],[-.707107,-.5,-.258819,.965926,.866025,.707107],[-.669131,-.469472,-.241922,.970296,.882948,.743145],[-.62932,-.438371,-.224951,.97437,.898794,.777146],[-.587785,-.406737,-.207912,.978148,.913545,.809017],[-.544639,-.374607,-.190809,.981627,.927184,.838671],[-.5,-.34202,-.173648,.984808,.939693,.866025],[-.45399,-.309017,-.156434,.987688,.951057,.891007],[-.406737,-.275637,-.139173,.990268,.961262,.913545],[-.358368,-.241922,-.121869,.992546,.970296,.93358],[-.309017,-.207912,-.104528,.994522,.978148,.951057],[-.258819,-.173648,-.087156,.996195,.984808,.965926],[-.207912,-.139173,-.069756,.997564,.990268,.978148],[-.156434,-.104528,-.052336,.99863,.994522,.987688],[-.104528,-.069756,-.034899,.999391,.997564,.994522],[-.052336,-.034899,-.017452,.999848,.999391,.99863]],[[-1,-0,1,-0,0,-1,-0,0,-0],[-.999848,.017452,.999543,-.030224,264e-6,-.999086,.042733,-59e-5,4e-6],[-.999391,.034899,.998173,-.060411,.001055,-.996348,.085356,-.002357,34e-6],[-.99863,.052336,.995891,-.090524,.002372,-.991791,.127757,-.005297,113e-6],[-.997564,.069756,.992701,-.120527,.004214,-.985429,.169828,-.0094,268e-6],[-.996195,.087156,.988606,-.150384,.006578,-.977277,.21146,-.014654,523e-6],[-.994522,.104528,.983611,-.180057,.009462,-.967356,.252544,-.021043,903e-6],[-.992546,.121869,.977722,-.209511,.012862,-.955693,.292976,-.028547,.001431],[-.990268,.139173,.970946,-.238709,.016774,-.942316,.332649,-.037143,.002131],[-.987688,.156434,.963292,-.267617,.021193,-.927262,.371463,-.046806,.003026],[-.984808,.173648,.954769,-.296198,.026114,-.910569,.409317,-.057505,.00414],[-.981627,.190809,.945388,-.324419,.03153,-.892279,.446114,-.069209,.005492],[-.978148,.207912,.935159,-.352244,.037436,-.872441,.481759,-.08188,.007105],[-.97437,.224951,.924096,-.379641,.043823,-.851105,.516162,-.095481,.008999],[-.970296,.241922,.912211,-.406574,.050685,-.828326,.549233,-.109969,.011193],[-.965926,.258819,.899519,-.433013,.058013,-.804164,.580889,-.1253,.013707],[-.961262,.275637,.886036,-.458924,.065797,-.77868,.61105,-.141427,.016556],[-.956305,.292372,.871778,-.484275,.074029,-.75194,.639639,-.158301,.019758],[-.951057,.309017,.856763,-.509037,.082698,-.724012,.666583,-.175868,.023329],[-.945519,.325568,.841008,-.533178,.091794,-.694969,.691816,-.194075,.027281],[-.939693,.34202,.824533,-.55667,.101306,-.664885,.715274,-.212865,.03163],[-.93358,.358368,.807359,-.579484,.111222,-.633837,.736898,-.23218,.036385],[-.927184,.374607,.789505,-.601592,.121529,-.601904,.756637,-.25196,.041559],[-.920505,.390731,.770994,-.622967,.132217,-.569169,.774442,-.272143,.04716],[-.913545,.406737,.751848,-.643582,.143271,-.535715,.79027,-.292666,.053196],[-.906308,.422618,.732091,-.663414,.154678,-.501627,.804083,-.313464,.059674],[-.898794,.438371,.711746,-.682437,.166423,-.466993,.81585,-.334472,.066599],[-.891007,.45399,.690839,-.700629,.178494,-.431899,.825544,-.355623,.073974],[-.882948,.469472,.669395,-.717968,.190875,-.396436,.833145,-.376851,.081803],[-.87462,.48481,.647439,-.734431,.203551,-.360692,.838638,-.398086,.090085],[-.866025,.5,.625,-.75,.216506,-.32476,.842012,-.419263,.098821],[-.857167,.515038,.602104,-.764655,.229726,-.288728,.843265,-.440311,.108009],[-.848048,.529919,.578778,-.778378,.243192,-.252688,.842399,-.461164,.117644],[-.838671,.544639,.555052,-.791154,.256891,-.21673,.839422,-.481753,.127722],[-.829038,.559193,.530955,-.802965,.270803,-.180944,.834347,-.502011,.138237],[-.819152,.573576,.506515,-.813798,.284914,-.14542,.827194,-.521871,.149181],[-.809017,.587785,.481763,-.823639,.299204,-.110246,.817987,-.541266,.160545],[-.798636,.601815,.456728,-.832477,.313658,-.075508,.806757,-.560132,.172317],[-.788011,.615661,.431441,-.840301,.328257,-.041294,.793541,-.578405,.184487],[-.777146,.62932,.405934,-.847101,.342984,-.007686,.778379,-.596021,.19704],[-.766044,.642788,.380236,-.852869,.357821,.025233,.761319,-.612921,.209963],[-.75471,.656059,.35438,-.857597,.372749,.057383,.742412,-.629044,.223238],[-.743145,.669131,.328396,-.861281,.387751,.088686,.721714,-.644334,.23685],[-.731354,.681998,.302317,-.863916,.402807,.119068,.699288,-.658734,.250778],[-.71934,.694658,.276175,-.865498,.417901,.148454,.675199,-.67219,.265005],[-.707107,.707107,.25,-.866025,.433013,.176777,.649519,-.684653,.279508],[-.694658,.71934,.223825,-.865498,.448125,.203969,.622322,-.696073,.294267],[-.681998,.731354,.197683,-.863916,.463218,.229967,.593688,-.706405,.309259],[-.669131,.743145,.171604,-.861281,.478275,.254712,.5637,-.715605,.324459],[-.656059,.75471,.14562,-.857597,.493276,.278147,.532443,-.723633,.339844],[-.642788,.766044,.119764,-.852869,.508205,.300221,.500009,-.730451,.355387],[-.62932,.777146,.094066,-.847101,.523041,.320884,.46649,-.736025,.371063],[-.615661,.788011,.068559,-.840301,.537768,.340093,.431982,-.740324,.386845],[-.601815,.798636,.043272,-.832477,.552367,.357807,.396584,-.74332,.402704],[-.587785,.809017,.018237,-.823639,.566821,.373991,.360397,-.744989,.418613],[-.573576,.819152,-.006515,-.813798,.581112,.388612,.323524,-.745308,.434544],[-.559193,.829038,-.030955,-.802965,.595222,.401645,.286069,-.744262,.450467],[-.544639,.838671,-.055052,-.791154,.609135,.413066,.24814,-.741835,.466352],[-.529919,.848048,-.078778,-.778378,.622833,.422856,.209843,-.738017,.482171],[-.515038,.857167,-.102104,-.764655,.6363,.431004,.171288,-.732801,.497894],[-.5,.866025,-.125,-.75,.649519,.4375,.132583,-.726184,.51349],[-.48481,.87462,-.147439,-.734431,.662474,.44234,.093837,-.718167,.528929],[-.469472,.882948,-.169395,-.717968,.67515,.445524,.05516,-.708753,.544183],[-.45399,.891007,-.190839,-.700629,.687531,.447059,.016662,-.69795,.55922],[-.438371,.898794,-.211746,-.682437,.699602,.446953,-.02155,-.685769,.574011],[-.422618,.906308,-.232091,-.663414,.711348,.445222,-.059368,-.672226,.588528],[-.406737,.913545,-.251848,-.643582,.722755,.441884,-.096684,-.657339,.602741],[-.390731,.920505,-.270994,-.622967,.733809,.436964,-.133395,-.64113,.616621],[-.374607,.927184,-.289505,-.601592,.744496,.430488,-.169397,-.623624,.630141],[-.358368,.93358,-.307359,-.579484,.754804,.422491,-.204589,-.604851,.643273],[-.34202,.939693,-.324533,-.55667,.76472,.413008,-.238872,-.584843,.65599],[-.325568,.945519,-.341008,-.533178,.774231,.402081,-.27215,-.563635,.668267],[-.309017,.951057,-.356763,-.509037,.783327,.389754,-.304329,-.541266,.680078],[-.292372,.956305,-.371778,-.484275,.791997,.376077,-.335319,-.517778,.691399],[-.275637,.961262,-.386036,-.458924,.800228,.361102,-.365034,-.493216,.702207],[-.258819,.965926,-.399519,-.433013,.808013,.344885,-.393389,-.467627,.712478],[-.241922,.970296,-.412211,-.406574,.81534,.327486,-.420306,-.441061,.722191],[-.224951,.97437,-.424096,-.379641,.822202,.308969,-.445709,-.413572,.731327],[-.207912,.978148,-.435159,-.352244,.828589,.289399,-.469527,-.385215,.739866],[-.190809,.981627,-.445388,-.324419,.834495,.268846,-.491693,-.356047,.74779],[-.173648,.984808,-.454769,-.296198,.839912,.247382,-.512145,-.326129,.755082],[-.156434,.987688,-.463292,-.267617,.844832,.225081,-.530827,-.295521,.761728],[-.139173,.990268,-.470946,-.238709,.849251,.20202,-.547684,-.264287,.767712],[-.121869,.992546,-.477722,-.209511,.853163,.178279,-.562672,-.232494,.773023],[-.104528,.994522,-.483611,-.180057,.856563,.153937,-.575747,-.200207,.777648],[-.087156,.996195,-.488606,-.150384,.859447,.129078,-.586872,-.167494,.781579],[-.069756,.997564,-.492701,-.120527,.861811,.103786,-.596018,-.134426,.784806],[-.052336,.99863,-.495891,-.090524,.863653,.078146,-.603158,-.101071,.787324],[-.034899,.999391,-.498173,-.060411,.864971,.052243,-.608272,-.0675,.789126],[-.017452,.999848,-.499543,-.030224,.865762,.026165,-.611347,-.033786,.790208],[0,1,-.5,0,.866025,-0,-.612372,0,.790569],[.017452,.999848,-.499543,.030224,.865762,-.026165,-.611347,.033786,.790208],[.034899,.999391,-.498173,.060411,.864971,-.052243,-.608272,.0675,.789126],[.052336,.99863,-.495891,.090524,.863653,-.078146,-.603158,.101071,.787324],[.069756,.997564,-.492701,.120527,.861811,-.103786,-.596018,.134426,.784806],[.087156,.996195,-.488606,.150384,.859447,-.129078,-.586872,.167494,.781579],[.104528,.994522,-.483611,.180057,.856563,-.153937,-.575747,.200207,.777648],[.121869,.992546,-.477722,.209511,.853163,-.178279,-.562672,.232494,.773023],[.139173,.990268,-.470946,.238709,.849251,-.20202,-.547684,.264287,.767712],[.156434,.987688,-.463292,.267617,.844832,-.225081,-.530827,.295521,.761728],[.173648,.984808,-.454769,.296198,.839912,-.247382,-.512145,.326129,.755082],[.190809,.981627,-.445388,.324419,.834495,-.268846,-.491693,.356047,.74779],[.207912,.978148,-.435159,.352244,.828589,-.289399,-.469527,.385215,.739866],[.224951,.97437,-.424096,.379641,.822202,-.308969,-.445709,.413572,.731327],[.241922,.970296,-.412211,.406574,.81534,-.327486,-.420306,.441061,.722191],[.258819,.965926,-.399519,.433013,.808013,-.344885,-.393389,.467627,.712478],[.275637,.961262,-.386036,.458924,.800228,-.361102,-.365034,.493216,.702207],[.292372,.956305,-.371778,.484275,.791997,-.376077,-.335319,.517778,.691399],[.309017,.951057,-.356763,.509037,.783327,-.389754,-.304329,.541266,.680078],[.325568,.945519,-.341008,.533178,.774231,-.402081,-.27215,.563635,.668267],[.34202,.939693,-.324533,.55667,.76472,-.413008,-.238872,.584843,.65599],[.358368,.93358,-.307359,.579484,.754804,-.422491,-.204589,.604851,.643273],[.374607,.927184,-.289505,.601592,.744496,-.430488,-.169397,.623624,.630141],[.390731,.920505,-.270994,.622967,.733809,-.436964,-.133395,.64113,.616621],[.406737,.913545,-.251848,.643582,.722755,-.441884,-.096684,.657339,.602741],[.422618,.906308,-.232091,.663414,.711348,-.445222,-.059368,.672226,.588528],[.438371,.898794,-.211746,.682437,.699602,-.446953,-.02155,.685769,.574011],[.45399,.891007,-.190839,.700629,.687531,-.447059,.016662,.69795,.55922],[.469472,.882948,-.169395,.717968,.67515,-.445524,.05516,.708753,.544183],[.48481,.87462,-.147439,.734431,.662474,-.44234,.093837,.718167,.528929],[.5,.866025,-.125,.75,.649519,-.4375,.132583,.726184,.51349],[.515038,.857167,-.102104,.764655,.6363,-.431004,.171288,.732801,.497894],[.529919,.848048,-.078778,.778378,.622833,-.422856,.209843,.738017,.482171],[.544639,.838671,-.055052,.791154,.609135,-.413066,.24814,.741835,.466352],[.559193,.829038,-.030955,.802965,.595222,-.401645,.286069,.744262,.450467],[.573576,.819152,-.006515,.813798,.581112,-.388612,.323524,.745308,.434544],[.587785,.809017,.018237,.823639,.566821,-.373991,.360397,.744989,.418613],[.601815,.798636,.043272,.832477,.552367,-.357807,.396584,.74332,.402704],[.615661,.788011,.068559,.840301,.537768,-.340093,.431982,.740324,.386845],[.62932,.777146,.094066,.847101,.523041,-.320884,.46649,.736025,.371063],[.642788,.766044,.119764,.852869,.508205,-.300221,.500009,.730451,.355387],[.656059,.75471,.14562,.857597,.493276,-.278147,.532443,.723633,.339844],[.669131,.743145,.171604,.861281,.478275,-.254712,.5637,.715605,.324459],[.681998,.731354,.197683,.863916,.463218,-.229967,.593688,.706405,.309259],[.694658,.71934,.223825,.865498,.448125,-.203969,.622322,.696073,.294267],[.707107,.707107,.25,.866025,.433013,-.176777,.649519,.684653,.279508],[.71934,.694658,.276175,.865498,.417901,-.148454,.675199,.67219,.265005],[.731354,.681998,.302317,.863916,.402807,-.119068,.699288,.658734,.250778],[.743145,.669131,.328396,.861281,.387751,-.088686,.721714,.644334,.23685],[.75471,.656059,.35438,.857597,.372749,-.057383,.742412,.629044,.223238],[.766044,.642788,.380236,.852869,.357821,-.025233,.761319,.612921,.209963],[.777146,.62932,.405934,.847101,.342984,.007686,.778379,.596021,.19704],[.788011,.615661,.431441,.840301,.328257,.041294,.793541,.578405,.184487],[.798636,.601815,.456728,.832477,.313658,.075508,.806757,.560132,.172317],[.809017,.587785,.481763,.823639,.299204,.110246,.817987,.541266,.160545],[.819152,.573576,.506515,.813798,.284914,.14542,.827194,.521871,.149181],[.829038,.559193,.530955,.802965,.270803,.180944,.834347,.502011,.138237],[.838671,.544639,.555052,.791154,.256891,.21673,.839422,.481753,.127722],[.848048,.529919,.578778,.778378,.243192,.252688,.842399,.461164,.117644],[.857167,.515038,.602104,.764655,.229726,.288728,.843265,.440311,.108009],[.866025,.5,.625,.75,.216506,.32476,.842012,.419263,.098821],[.87462,.48481,.647439,.734431,.203551,.360692,.838638,.398086,.090085],[.882948,.469472,.669395,.717968,.190875,.396436,.833145,.376851,.081803],[.891007,.45399,.690839,.700629,.178494,.431899,.825544,.355623,.073974],[.898794,.438371,.711746,.682437,.166423,.466993,.81585,.334472,.066599],[.906308,.422618,.732091,.663414,.154678,.501627,.804083,.313464,.059674],[.913545,.406737,.751848,.643582,.143271,.535715,.79027,.292666,.053196],[.920505,.390731,.770994,.622967,.132217,.569169,.774442,.272143,.04716],[.927184,.374607,.789505,.601592,.121529,.601904,.756637,.25196,.041559],[.93358,.358368,.807359,.579484,.111222,.633837,.736898,.23218,.036385],[.939693,.34202,.824533,.55667,.101306,.664885,.715274,.212865,.03163],[.945519,.325568,.841008,.533178,.091794,.694969,.691816,.194075,.027281],[.951057,.309017,.856763,.509037,.082698,.724012,.666583,.175868,.023329],[.956305,.292372,.871778,.484275,.074029,.75194,.639639,.158301,.019758],[.961262,.275637,.886036,.458924,.065797,.77868,.61105,.141427,.016556],[.965926,.258819,.899519,.433013,.058013,.804164,.580889,.1253,.013707],[.970296,.241922,.912211,.406574,.050685,.828326,.549233,.109969,.011193],[.97437,.224951,.924096,.379641,.043823,.851105,.516162,.095481,.008999],[.978148,.207912,.935159,.352244,.037436,.872441,.481759,.08188,.007105],[.981627,.190809,.945388,.324419,.03153,.892279,.446114,.069209,.005492],[.984808,.173648,.954769,.296198,.026114,.910569,.409317,.057505,.00414],[.987688,.156434,.963292,.267617,.021193,.927262,.371463,.046806,.003026],[.990268,.139173,.970946,.238709,.016774,.942316,.332649,.037143,.002131],[.992546,.121869,.977722,.209511,.012862,.955693,.292976,.028547,.001431],[.994522,.104528,.983611,.180057,.009462,.967356,.252544,.021043,903e-6],[.996195,.087156,.988606,.150384,.006578,.977277,.21146,.014654,523e-6],[.997564,.069756,.992701,.120527,.004214,.985429,.169828,.0094,268e-6],[.99863,.052336,.995891,.090524,.002372,.991791,.127757,.005297,113e-6],[.999391,.034899,.998173,.060411,.001055,.996348,.085356,.002357,34e-6],[.999848,.017452,.999543,.030224,264e-6,.999086,.042733,59e-5,4e-6],[1,-0,1,-0,0,1,-0,0,-0]]],t.SPHERICAL_HARMONICS_AZIMUTH_RESOLUTION=t.SPHERICAL_HARMONICS[0].length,t.SPHERICAL_HARMONICS_ELEVATION_RESOLUTION=t.SPHERICAL_HARMONICS[1].length,t.SPHERICAL_HARMONICS_MAX_ORDER=t.SPHERICAL_HARMONICS[0][0].length/2,t.MAX_RE_WEIGHTS=[[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1.003236,1.002156,.999152,.990038],[1.03237,1.021194,.990433,.898572],[1.062694,1.040231,.979161,.799806],[1.093999,1.058954,.964976,.693603],[1.126003,1.077006,.947526,.57989],[1.158345,1.093982,.926474,.45869],[1.19059,1.109437,.901512,.330158],[1.222228,1.12289,.87237,.194621],[1.252684,1.133837,.838839,.052614],[1.281987,1.142358,.801199,0],[1.312073,1.150207,.760839,0],[1.343011,1.157424,.717799,0],[1.374649,1.163859,.671999,0],[1.406809,1.169354,.623371,0],[1.439286,1.173739,.571868,0],[1.471846,1.176837,.517465,0],[1.504226,1.178465,.460174,0],[1.536133,1.178438,.400043,0],[1.567253,1.176573,.337165,0],[1.597247,1.172695,.271688,0],[1.625766,1.166645,.203815,0],[1.652455,1.158285,.133806,0],[1.676966,1.147506,.061983,0],[1.699006,1.134261,0,0],[1.720224,1.119789,0,0],[1.741631,1.10481,0,0],[1.763183,1.08933,0,0],[1.784837,1.073356,0,0],[1.806548,1.056898,0,0],[1.828269,1.039968,0,0],[1.849952,1.02258,0,0],[1.871552,1.004752,0,0],[1.893018,.986504,0,0],[1.914305,.967857,0,0],[1.935366,.948837,0,0],[1.956154,.929471,0,0],[1.976625,.90979,0,0],[1.996736,.889823,0,0],[2.016448,.869607,0,0],[2.035721,.849175,0,0],[2.054522,.828565,0,0],[2.072818,.807816,0,0],[2.090581,.786964,0,0],[2.107785,.766051,0,0],[2.124411,.745115,0,0],[2.140439,.724196,0,0],[2.155856,.703332,0,0],[2.170653,.682561,0,0],[2.184823,.661921,0,0],[2.198364,.641445,0,0],[2.211275,.621169,0,0],[2.223562,.601125,0,0],[2.23523,.581341,0,0],[2.246289,.561847,0,0],[2.256751,.542667,0,0],[2.266631,.523826,0,0],[2.275943,.505344,0,0],[2.284707,.487239,0,0],[2.292939,.469528,0,0],[2.300661,.452225,0,0],[2.307892,.435342,0,0],[2.314654,.418888,0,0],[2.320969,.40287,0,0],[2.326858,.387294,0,0],[2.332343,.372164,0,0],[2.337445,.357481,0,0],[2.342186,.343246,0,0],[2.346585,.329458,0,0],[2.350664,.316113,0,0],[2.354442,.303208,0,0],[2.357937,.290738,0,0],[2.361168,.278698,0,0],[2.364152,.26708,0,0],[2.366906,.255878,0,0],[2.369446,.245082,0,0],[2.371786,.234685,0,0],[2.37394,.224677,0,0],[2.375923,.215048,0,0],[2.377745,.20579,0,0],[2.379421,.196891,0,0],[2.380959,.188342,0,0],[2.382372,.180132,0,0],[2.383667,.172251,0,0],[2.384856,.164689,0,0],[2.385945,.157435,0,0],[2.386943,.150479,0,0],[2.387857,.143811,0,0],[2.388694,.137421,0,0],[2.38946,.131299,0,0],[2.39016,.125435,0,0],[2.390801,.11982,0,0],[2.391386,.114445,0,0],[2.391921,.1093,0,0],[2.39241,.104376,0,0],[2.392857,.099666,0,0],[2.393265,.09516,0,0],[2.393637,.090851,0,0],[2.393977,.086731,0,0],[2.394288,.082791,0,0],[2.394571,.079025,0,0],[2.394829,.075426,0,0],[2.395064,.071986,0,0],[2.395279,.068699,0,0],[2.395475,.065558,0,0],[2.395653,.062558,0,0],[2.395816,.059693,0,0],[2.395964,.056955,0,0],[2.396099,.054341,0,0],[2.396222,.051845,0,0],[2.396334,.049462,0,0],[2.396436,.047186,0,0],[2.396529,.045013,0,0],[2.396613,.042939,0,0],[2.396691,.040959,0,0],[2.396761,.039069,0,0],[2.396825,.037266,0,0],[2.396883,.035544,0,0],[2.396936,.033901,0,0],[2.396984,.032334,0,0],[2.397028,.030838,0,0],[2.397068,.02941,0,0],[2.397104,.028048,0,0],[2.397137,.026749,0,0],[2.397167,.025509,0,0],[2.397194,.024326,0,0],[2.397219,.023198,0,0],[2.397242,.022122,0,0],[2.397262,.021095,0,0],[2.397281,.020116,0,0],[2.397298,.019181,0,0],[2.397314,.01829,0,0],[2.397328,.017441,0,0],[2.397341,.01663,0,0],[2.397352,.015857,0,0],[2.397363,.015119,0,0],[2.397372,.014416,0,0],[2.397381,.013745,0,0],[2.397389,.013106,0,0],[2.397396,.012496,0,0],[2.397403,.011914,0,0],[2.397409,.01136,0,0],[2.397414,.010831,0,0],[2.397419,.010326,0,0],[2.397424,.009845,0,0],[2.397428,.009387,0,0],[2.397432,.008949,0,0],[2.397435,.008532,0,0],[2.397438,.008135,0,0],[2.397441,.007755,0,0],[2.397443,.007394,0,0],[2.397446,.007049,0,0],[2.397448,.006721,0,0],[2.39745,.006407,0,0],[2.397451,.006108,0,0],[2.397453,.005824,0,0],[2.397454,.005552,0,0],[2.397456,.005293,0,0],[2.397457,.005046,0,0],[2.397458,.004811,0,0],[2.397459,.004586,0,0],[2.39746,.004372,0,0],[2.397461,.004168,0,0],[2.397461,.003974,0,0],[2.397462,.003788,0,0],[2.397463,.003611,0,0],[2.397463,.003443,0,0],[2.397464,.003282,0,0],[2.397464,.003129,0,0],[2.397465,.002983,0,0],[2.397465,.002844,0,0],[2.397465,.002711,0,0],[2.397466,.002584,0,0],[2.397466,.002464,0,0],[2.397466,.002349,0,0],[2.397466,.002239,0,0],[2.397467,.002135,0,0],[2.397467,.002035,0,0],[2.397467,.00194,0,0],[2.397467,.001849,0,0],[2.397467,.001763,0,0],[2.397467,.001681,0,0],[2.397468,.001602,0,0],[2.397468,.001527,0,0],[2.397468,.001456,0,0],[2.397468,.001388,0,0],[2.397468,.001323,0,0],[2.397468,.001261,0,0],[2.397468,.001202,0,0],[2.397468,.001146,0,0],[2.397468,.001093,0,0],[2.397468,.001042,0,0],[2.397468,993e-6,0,0],[2.397468,947e-6,0,0],[2.397468,902e-6,0,0],[2.397468,86e-5,0,0],[2.397468,82e-5,0,0],[2.397469,782e-6,0,0],[2.397469,745e-6,0,0],[2.397469,71e-5,0,0],[2.397469,677e-6,0,0],[2.397469,646e-6,0,0],[2.397469,616e-6,0,0],[2.397469,587e-6,0,0],[2.397469,559e-6,0,0],[2.397469,533e-6,0,0],[2.397469,508e-6,0,0],[2.397469,485e-6,0,0],[2.397469,462e-6,0,0],[2.397469,44e-5,0,0],[2.397469,42e-5,0,0],[2.397469,4e-4,0,0],[2.397469,381e-6,0,0],[2.397469,364e-6,0,0],[2.397469,347e-6,0,0],[2.397469,33e-5,0,0],[2.397469,315e-6,0,0],[2.397469,3e-4,0,0],[2.397469,286e-6,0,0],[2.397469,273e-6,0,0],[2.397469,26e-5,0,0],[2.397469,248e-6,0,0],[2.397469,236e-6,0,0],[2.397469,225e-6,0,0],[2.397469,215e-6,0,0],[2.397469,205e-6,0,0],[2.397469,195e-6,0,0],[2.397469,186e-6,0,0],[2.397469,177e-6,0,0],[2.397469,169e-6,0,0],[2.397469,161e-6,0,0],[2.397469,154e-6,0,0],[2.397469,147e-6,0,0],[2.397469,14e-5,0,0],[2.397469,133e-6,0,0],[2.397469,127e-6,0,0],[2.397469,121e-6,0,0],[2.397469,115e-6,0,0],[2.397469,11e-5,0,0],[2.397469,105e-6,0,0],[2.397469,1e-4,0,0],[2.397469,95e-6,0,0],[2.397469,91e-6,0,0],[2.397469,87e-6,0,0],[2.397469,83e-6,0,0],[2.397469,79e-6,0,0],[2.397469,75e-6,0,0],[2.397469,71e-6,0,0],[2.397469,68e-6,0,0],[2.397469,65e-6,0,0],[2.397469,62e-6,0,0],[2.397469,59e-6,0,0],[2.397469,56e-6,0,0],[2.397469,54e-6,0,0],[2.397469,51e-6,0,0],[2.397469,49e-6,0,0],[2.397469,46e-6,0,0],[2.397469,44e-6,0,0],[2.397469,42e-6,0,0],[2.397469,4e-5,0,0],[2.397469,38e-6,0,0],[2.397469,37e-6,0,0],[2.397469,35e-6,0,0],[2.397469,33e-6,0,0],[2.397469,32e-6,0,0],[2.397469,3e-5,0,0],[2.397469,29e-6,0,0],[2.397469,27e-6,0,0],[2.397469,26e-6,0,0],[2.397469,25e-6,0,0],[2.397469,24e-6,0,0],[2.397469,23e-6,0,0],[2.397469,22e-6,0,0],[2.397469,21e-6,0,0],[2.397469,2e-5,0,0],[2.397469,19e-6,0,0],[2.397469,18e-6,0,0],[2.397469,17e-6,0,0],[2.397469,16e-6,0,0],[2.397469,15e-6,0,0],[2.397469,15e-6,0,0],[2.397469,14e-6,0,0],[2.397469,13e-6,0,0],[2.397469,13e-6,0,0],[2.397469,12e-6,0,0],[2.397469,12e-6,0,0],[2.397469,11e-6,0,0],[2.397469,11e-6,0,0],[2.397469,1e-5,0,0],[2.397469,1e-5,0,0],[2.397469,9e-6,0,0],[2.397469,9e-6,0,0],[2.397469,8e-6,0,0],[2.397469,8e-6,0,0],[2.397469,8e-6,0,0],[2.397469,7e-6,0,0],[2.397469,7e-6,0,0],[2.397469,7e-6,0,0],[2.397469,6e-6,0,0],[2.397469,6e-6,0,0],[2.397469,6e-6,0,0],[2.397469,5e-6,0,0],[2.397469,5e-6,0,0],[2.397469,5e-6,0,0],[2.397469,5e-6,0,0],[2.397469,4e-6,0,0],[2.397469,4e-6,0,0],[2.397469,4e-6,0,0],[2.397469,4e-6,0,0],[2.397469,4e-6,0,0],[2.397469,4e-6,0,0],[2.397469,3e-6,0,0],[2.397469,3e-6,0,0],[2.397469,3e-6,0,0],[2.397469,3e-6,0,0],[2.397469,3e-6,0,0],[2.397469,3e-6,0,0],[2.397469,3e-6,0,0],[2.397469,2e-6,0,0],[2.397469,2e-6,0,0],[2.397469,2e-6,0,0],[2.397469,2e-6,0,0],[2.397469,2e-6,0,0],[2.397469,2e-6,0,0],[2.397469,2e-6,0,0],[2.397469,2e-6,0,0],[2.397469,2e-6,0,0],[2.397469,2e-6,0,0],[2.397469,1e-6,0,0],[2.397469,1e-6,0,0],[2.397469,1e-6,0,0]],t.MAX_RE_WEIGHTS_RESOLUTION=t.MAX_RE_WEIGHTS.length},function(A,t,e){"use strict";function i(A,t){void 0==t&&(t={}),void 0==t.position&&(t.position=a.DEFAULT_POSITION.slice()),void 0==t.forward&&(t.forward=a.DEFAULT_FORWARD.slice()),void 0==t.up&&(t.up=a.DEFAULT_UP.slice()),void 0==t.minDistance&&(t.minDistance=a.DEFAULT_MIN_DISTANCE),void 0==t.maxDistance&&(t.maxDistance=a.DEFAULT_MAX_DISTANCE),void 0==t.rolloff&&(t.rolloff=a.DEFAULT_ROLLOFF),void 0==t.gain&&(t.gain=a.DEFAULT_SOURCE_GAIN),void 0==t.alpha&&(t.alpha=a.DEFAULT_DIRECTIVITY_ALPHA),void 0==t.sharpness&&(t.sharpness=a.DEFAULT_DIRECTIVITY_SHARPNESS),void 0==t.sourceWidth&&(t.sourceWidth=a.DEFAULT_SOURCE_WIDTH),this._scene=A,this._position=t.position,this._forward=t.forward,this._up=t.up,this._dx=new Float32Array(3),this._right=a.crossProduct(this._forward,this._up);let e=A._context;this.input=e.createGain(),this._directivity=new s(e,{alpha:t.alpha,sharpness:t.sharpness}),this._toEarly=e.createGain(),this._toLate=e.createGain(),this._attenuation=new o(e,{minDistance:t.minDistance,maxDistance:t.maxDistance,rolloff:t.rolloff}),this._encoder=new r(e,{ambisonicOrder:A._ambisonicOrder,sourceWidth:t.sourceWidth}),this.input.connect(this._toLate),this._toLate.connect(A._room.late.input),this.input.connect(this._attenuation.input),this._attenuation.output.connect(this._toEarly),this._toEarly.connect(A._room.early.input),this._attenuation.output.connect(this._directivity.input),this._directivity.output.connect(this._encoder.input),this._encoder.output.connect(A._listener.input),this.setPosition(t.position[0],t.position[1],t.position[2]),this.input.gain.value=t.gain}function n(A){let t=1;return A>a.EPSILON_FLOAT&&(t=1-A/a.SOURCE_MAX_OUTSIDE_ROOM_DISTANCE,t=Math.max(0,Math.min(1,t))),t}/** + * @license + * Copyright 2017 Google Inc. All Rights Reserved. + * 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. + */ +const s=e(5),o=e(6),r=e(1),a=e(0);i.prototype.setPosition=function(A,t,e){this._position[0]=A,this._position[1]=t,this._position[2]=e;let i=n(this._scene._room.getDistanceOutsideRoom(this._position[0],this._position[1],this._position[2]));this._toLate.gain.value=i,this._toEarly.gain.value=i,this._update()},i.prototype._update=function(){for(let i=0;i<3;i++)this._dx[i]=this._position[i]-this._scene._listener.position[i];let A=Math.sqrt(this._dx[0]*this._dx[0]+this._dx[1]*this._dx[1]+this._dx[2]*this._dx[2]);A>0&&(this._dx[0]/=A,this._dx[1]/=A,this._dx[2]/=A);let t=Math.atan2(-this._dx[0],this._dx[2])*a.RADIANS_TO_DEGREES,e=Math.atan2(this._dx[1],Math.sqrt(this._dx[0]*this._dx[0]+this._dx[2]*this._dx[2]))*a.RADIANS_TO_DEGREES;this._attenuation.setDistance(A),this._directivity.computeAngle(this._forward,this._dx),this._encoder.setDirection(t,e)},i.prototype.setRolloff=function(A){this._attenuation.setRolloff(A)},i.prototype.setMinDistance=function(A){this._attenuation.minDistance=A},i.prototype.setMaxDistance=function(A){this._attenuation.maxDistance=A},i.prototype.setGain=function(A){this.input.gain.value=A},i.prototype.setOrientation=function(A,t,e,i,n,s){this._forward[0]=A,this._forward[1]=t,this._forward[2]=e,this._up[0]=i,this._up[1]=n,this._up[2]=s,this._right=a.crossProduct(this._forward,this._up)},i.prototype.setFromMatrix=function(A){this._right[0]=A.elements[0],this._right[1]=A.elements[1],this._right[2]=A.elements[2],this._up[0]=A.elements[4],this._up[1]=A.elements[5],this._up[2]=A.elements[6],this._forward[0]=A.elements[8],this._forward[1]=A.elements[9],this._forward[2]=A.elements[10],this._right=a.normalizeVector(this._right),this._up=a.normalizeVector(this._up),this._forward=a.normalizeVector(this._forward),this.setPosition(A.elements[12],A.elements[13],A.elements[14])},i.prototype.setSourceWidth=function(A){this._encoder.setSourceWidth(A),this.setPosition(this._position[0],this._position[1],this._position[2])},i.prototype.setDirectivityPattern=function(A,t){this._directivity.setPattern(A,t),this.setPosition(this._position[0],this._position[1],this._position[2])},A.exports=i},function(A,t,e){"use strict";function i(A,t){void 0==t&&(t={}),void 0==t.alpha&&(t.alpha=n.DEFAULT_DIRECTIVITY_ALPHA),void 0==t.sharpness&&(t.sharpness=n.DEFAULT_DIRECTIVITY_SHARPNESS),this._context=A,this._lowpass=A.createBiquadFilter(),this._lowpass.type="lowpass",this._lowpass.Q.value=0,this._lowpass.frequency.value=.5*A.sampleRate,this._cosTheta=0,this.setPattern(t.alpha,t.sharpness),this.input=this._lowpass,this.output=this._lowpass}/** + * @license + * Copyright 2017 Google Inc. All Rights Reserved. + * 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. + */ +const n=e(0);i.prototype.computeAngle=function(A,t){let e=n.normalizeVector(A),i=n.normalizeVector(t),s=1;if(this._alpha>n.EPSILON_FLOAT){let A=e[0]*i[0]+e[1]*i[1]+e[2]*i[2];s=1-this._alpha+this._alpha*A,s=Math.pow(Math.abs(s),this._sharpness)}this._lowpass.frequency.value=.5*this._context.sampleRate*s},i.prototype.setPattern=function(A,t){this._alpha=Math.min(1,Math.max(0,A)),this._sharpness=Math.max(1,t),this.computeAngle([this._cosTheta*this._cosTheta,0,0],[1,0,0])},A.exports=i},function(A,t,e){"use strict";function i(A,t){void 0==t&&(t={}),void 0==t.minDistance&&(t.minDistance=n.DEFAULT_MIN_DISTANCE),void 0==t.maxDistance&&(t.maxDistance=n.DEFAULT_MAX_DISTANCE),void 0==t.rolloff&&(t.rolloff=n.DEFAULT_ATTENUATION_ROLLOFF),this.minDistance=t.minDistance,this.maxDistance=t.maxDistance,this.setRolloff(t.rolloff),this._gainNode=A.createGain(),this.setDistance(t.maxDistance),this.input=this._gainNode,this.output=this._gainNode}/** + * @license + * Copyright 2017 Google Inc. All Rights Reserved. + * 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. + */ +const n=e(0);i.prototype.setDistance=function(A){let t=1;if("logarithmic"==this._rolloff){if(A>this.maxDistance)t=0;else if(A>this.minDistance){let e=this.maxDistance-this.minDistance;if(e>n.EPSILON_FLOAT){let i=1/(e+1);t=(1/(A-this.minDistance+1)-i)/(1-i)}}}else if("linear"==this._rolloff)if(A>this.maxDistance)t=0;else if(A>this.minDistance){let e=this.maxDistance-this.minDistance;e>n.EPSILON_FLOAT&&(t=(this.maxDistance-A)/e)}this._gainNode.gain.value=t},i.prototype.setRolloff=function(A){let t=~n.ATTENUATION_ROLLOFFS.indexOf(A);void 0!=A&&t?A=A.toString().toLowerCase():(t||n.log('Invalid rolloff model ("'+A+'"). Using default: "'+n.DEFAULT_ATTENUATION_ROLLOFF+'".'),A=n.DEFAULT_ATTENUATION_ROLLOFF),this._rolloff=A},A.exports=i},function(A,t,e){"use strict";function i(A){let t={};for(let e in _.DEFAULT_ROOM_MATERIALS)_.DEFAULT_ROOM_MATERIALS.hasOwnProperty(e)&&(t[e]=_.ROOM_MATERIAL_COEFFICIENTS[_.DEFAULT_ROOM_MATERIALS[e]]);void 0==A&&(A={},Object.assign(A,_.DEFAULT_ROOM_MATERIALS));for(let e in _.DEFAULT_ROOM_MATERIALS)_.DEFAULT_ROOM_MATERIALS.hasOwnProperty(e)&&A.hasOwnProperty(e)?A[e]in _.ROOM_MATERIAL_COEFFICIENTS?t[e]=_.ROOM_MATERIAL_COEFFICIENTS[A[e]]:_.log('Material "'+A[e]+'" on wall "'+e+'" not found. Using "'+_.DEFAULT_ROOM_MATERIALS[e]+'".'):_.log('Wall "'+e+'" is not defined. Default used.');return t}function n(A){void 0==A&&(A={});for(let t in _.DEFAULT_ROOM_MATERIALS)A.hasOwnProperty(t)||(A[t]=_.ROOM_MATERIAL_COEFFICIENTS[_.DEFAULT_ROOM_MATERIALS[t]]);return A}function s(A){void 0==A&&(A={});for(let t in _.DEFAULT_ROOM_DIMENSIONS)A.hasOwnProperty(t)||(A[t]=_.DEFAULT_ROOM_DIMENSIONS[t]);return A}function o(A,t,e){let i=new Float32Array(_.NUMBER_REVERB_FREQUENCY_BANDS);A=s(A),t=n(t),void 0==e&&(e=_.DEFAULT_SPEED_OF_SOUND);let o=_.TWENTY_FOUR_LOG10/e,r=A.width*A.height*A.depth;if(r<_.ROOM_MIN_VOLUME)return i;let a=A.width*A.height,h=A.width*A.depth,c=A.depth*A.height,f=2*(a+h+c);for(let n=0;n<_.NUMBER_REVERB_FREQUENCY_BANDS;n++){let A=((t.left[n]+t.right[n])*a+(t.down[n]+t.up[n])*h+(t.front[n]+t.back[n])*c)/f;i[n]=_.ROOM_EYRING_CORRECTION_COEFFICIENT*o*r/(-f*Math.log(1-A)+4*_.ROOM_AIR_ABSORPTION_COEFFICIENTS[n]*r)}return i}function r(A){let t=[];for(let e in _.DEFAULT_REFLECTION_COEFFICIENTS)if(_.DEFAULT_REFLECTION_COEFFICIENTS.hasOwnProperty(e)){t[e]=0;for(let i=0;i<_.NUMBER_REFLECTION_AVERAGING_BANDS;i++){let n=i+_.ROOM_STARTING_AVERAGING_BAND;t[e]+=A[e][n]}t[e]/=_.NUMBER_REFLECTION_AVERAGING_BANDS,t[e]=Math.sqrt(1-t[e])}return t}function a(A,t){void 0==t&&(t={}),void 0==t.listenerPosition&&(t.listenerPosition=_.DEFAULT_POSITION.slice()),void 0==t.dimensions&&(t.dimensions={},Object.assign(t.dimensions,_.DEFAULT_ROOM_DIMENSIONS)),void 0==t.materials&&(t.materials={},Object.assign(t.materials,_.DEFAULT_ROOM_MATERIALS)),void 0==t.speedOfSound&&(t.speedOfSound=_.DEFAULT_SPEED_OF_SOUND),t.dimensions=s(t.dimensions);let e=i(t.materials),n=r(e),a=o(t.dimensions,e,t.speedOfSound);this.early=new c(A,{dimensions:t.dimensions,coefficients:n,speedOfSound:t.speedOfSound,listenerPosition:t.listenerPosition}),this.late=new h(A,{durations:a}),this.speedOfSound=t.speedOfSound,this.output=A.createGain(),this.early.output.connect(this.output),this._merger=A.createChannelMerger(4),this.late.output.connect(this._merger,0,0),this._merger.connect(this.output)}/** + * @license + * Copyright 2017 Google Inc. All Rights Reserved. + * 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. + */ +const h=e(8),c=e(9),_=e(0);a.prototype.setProperties=function(A,t){let e=i(t),n=o(A,e,this.speedOfSound);this.late.setDurations(n),this.early.speedOfSound=this.speedOfSound;let s=r(e);this.early.setRoomProperties(A,s)},a.prototype.setListenerPosition=function(A,t,e){this.early.speedOfSound=this.speedOfSound,this.early.setListenerPosition(A,t,e);let i=this.getDistanceOutsideRoom(A,t,e),n=1;i>_.EPSILON_FLOAT&&(n=1-i/_.LISTENER_MAX_OUTSIDE_ROOM_DISTANCE,n=Math.max(0,Math.min(1,n))),this.output.gain.value=n},a.prototype.getDistanceOutsideRoom=function(A,t,e){let i=Math.max(0,-this.early._halfDimensions.width-A,A-this.early._halfDimensions.width),n=Math.max(0,-this.early._halfDimensions.height-t,t-this.early._halfDimensions.height),s=Math.max(0,-this.early._halfDimensions.depth-e,e-this.early._halfDimensions.depth);return Math.sqrt(i*i+n*n+s*s)},A.exports=a},function(A,t,e){"use strict";function i(A,t){void 0==t&&(t={}),void 0==t.durations&&(t.durations=n.DEFAULT_REVERB_DURATIONS.slice()),void 0==t.predelay&&(t.predelay=n.DEFAULT_REVERB_PREDELAY),void 0==t.gain&&(t.gain=n.DEFAULT_REVERB_GAIN),void 0==t.bandwidth&&(t.bandwidth=n.DEFAULT_REVERB_BANDWIDTH),void 0==t.tailonset&&(t.tailonset=n.DEFAULT_REVERB_TAIL_ONSET);let e=t.predelay/1e3;this._bandwidthCoeff=t.bandwidth*n.LOG2_DIV2,this._tailonsetSamples=t.tailonset/1e3,this._context=A,this.input=A.createGain(),this._predelay=A.createDelay(e),this._convolver=A.createConvolver(),this.output=A.createGain(),this.output.gain.value=t.gain,this._convolver.normalize=!1,this.input.connect(this._predelay),this._predelay.connect(this._convolver),this._convolver.connect(this.output),this.setDurations(t.durations)}/** + * @license + * Copyright 2017 Google Inc. All Rights Reserved. + * 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. + */ +const n=e(0);i.prototype.setDurations=function(A){if(A.length!==n.NUMBER_REVERB_FREQUENCY_BANDS)return void n.log("Warning: invalid number of RT60 values provided to reverb.");let t=new Float32Array(n.NUMBER_REVERB_FREQUENCY_BANDS),e=this._context.sampleRate;for(let h=0;hi&&(i=t[n]);i<1&&(i=1);let s=this._context.createBuffer(1,i,e),o=s.getChannelData(0),r=new Float32Array(i);for(let n=0;n32&&t.throw("Utils.mergeBuffer: Number of channels cannot exceed 32.(got "+s+")"),i!==e[a].length&&t.throw("Utils.mergeBuffer: AudioBuffer lengths are inconsistent. (expected "+i+" but got "+e[a].length+")"),n!==e[a].sampleRate&&t.throw("Utils.mergeBuffer: AudioBuffer sample rates are inconsistent. (expected "+n+" but got "+e[a].sampleRate+")"),s+=e[a].numberOfChannels;const o=A.createBuffer(s,i,n);let r=0;for(let t=0;te[i]=t.charCodeAt(i)),e.buffer}},function(A,t,e){"use strict";function i(A,t,e){this._context=n.isAudioContext(A)?A:n.throw("BufferList: Invalid BaseAudioContext."),this._options={dataType:s.BASE64,verbose:!1},e&&(e.dataType&&n.isDefinedENUMEntry(s,e.dataType)&&(this._options.dataType=e.dataType),e.verbose&&(this._options.verbose=Boolean(e.verbose))),this._bufferList=[],this._bufferData=this._options.dataType===s.BASE64?t:t.slice(0),this._numberOfTasks=this._bufferData.length,this._resolveHandler=null,this._rejectHandler=new Function}const n=e(0),s={BASE64:"base64",URL:"url"};i.prototype.load=function(){return new Promise(this._promiseGenerator.bind(this))},i.prototype._promiseGenerator=function(A,t){"function"!=typeof A?n.throw("BufferList: Invalid Promise resolver."):this._resolveHandler=A,"function"==typeof t&&(this._rejectHandler=t);for(let e=0;e=0?this._stereoSplitters[i].connect(this._positiveIndexSphericalHarmonics,e%2):this._stereoSplitters[i].connect(this._negativeIndexSphericalHarmonics,e%2)}this._positiveIndexSphericalHarmonics.connect(this._binauralMerger,0,0),this._positiveIndexSphericalHarmonics.connect(this._binauralMerger,0,1),this._negativeIndexSphericalHarmonics.connect(this._binauralMerger,0,0),this._negativeIndexSphericalHarmonics.connect(this._inverter),this._inverter.connect(this._binauralMerger,0,1),this._inverter.gain.value=-1,this.input=this._inputSplitter,this.output=this._outputGain},i.prototype.setHRIRBufferList=function(A){if(!this._isBufferLoaded){for(let t=0;t0){const s=i(t,1);return o(A,1,t-1,e,n)*Math.sqrt(1+s)-o(A,-1,1-t,e,n)*(1-s)}{const s=i(t,-1);return o(A,1,t+1,e,n)*(1-s)+o(A,-1,-t-1,e,n)*Math.sqrt(1+s)}}function h(A,t,e,i){return 0===t?0:t>0?o(A,1,t+1,e,i)+o(A,-1,-t-1,e,i):o(A,1,t-1,e,i)-o(A,-1,1-t,e,i)}function c(A,t,e){const n=i(A,0),s=Math.abs(t)===e?1/(2*e*(2*e-1)):1/((e+t)*(e-t));return[Math.sqrt((e+A)*(e-A)*s),.5*(1-2*n)*Math.sqrt((1+n)*(e+Math.abs(A)-1)*(e+Math.abs(A))*s),-.5*(1-n)*Math.sqrt((e-Math.abs(A)-1)*(e-Math.abs(A)))*s]}function _(A,t){for(let e=-t;e<=t;e++)for(let i=-t;i<=t;i++){const s=c(e,i,t);Math.abs(s[0])>0&&(s[0]*=r(A,e,i,t)),Math.abs(s[1])>0&&(s[1]*=a(A,e,i,t)),Math.abs(s[2])>0&&(s[2]*=h(A,e,i,t)),n(A,t,e,i,s[0]+s[1]+s[2])}}function f(A){for(let t=2;t<=A.length;t++)_(A,t)}function l(A,t){this._context=A,this._ambisonicOrder=t;const e=(t+1)*(t+1);this._splitter=this._context.createChannelSplitter(e),this._merger=this._context.createChannelMerger(e),this._gainNodeMatrix=[];let i,n,s,o,r;for(let a=1;a<=t;a++){i=a*a,n=2*a+1,this._gainNodeMatrix[a-1]=[];for(let A=0;A ["+A+"])"),this._audioElementSource=this._context.createMediaElementSource(this._videoElement),this._foaRouter=new s(this._context,this._channelMap),this._foaRotator=new o(this._context),this._foaPhaseMatchedFilter=new r(this._context),this._audioElementSource.connect(this._foaRouter.input),this._foaRouter.output.connect(this._foaRotator.input),this._foaRotator.output.connect(this._foaPhaseMatchedFilter.input),this._foaVirtualSpeakers=[],this._bypass=this._context.createGain(),this._audioElementSource.connect(this._bypass);const e=Math.pow(10,this._postGainDB/20);c.log("Gain compensation: "+e+" ("+this._postGainDB+"dB)");const i=this;return new Promise(function(A,t){new n(i._context,i._speakerData,function(t){for(let A=0;A ["+A.toString()+"])."),this._config.channelMap=A.slice(),this._foaRouter.setChannelMap(this._config.channelMap))},i.prototype.setRotationMatrix3=function(A){this._isRendererReady&&this._foaRotator.setRotationMatrix3(A)},i.prototype.setRotationMatrix4=function(A){this._isRendererReady&&this._foaRotator.setRotationMatrix4(A)},i.prototype.setRotationMatrixFromCamera=function(A){this._isRendererReady&&(h.invertMatrix4(this._tempMatrix4,A.elements),this._foaRotator.setRotationMatrix4(this._tempMatrix4))},i.prototype.setRenderingMode=function(A){if(A!==this._config.renderingMode){switch(A){case c.AMBISONIC:this._foaConvolver.enable(),this._bypass.disconnect();break;case c.BYPASS:this._foaConvolver.disable(),this._bypass.connect(this.output);break;case c.OFF:this._foaConvolver.disable(),this._bypass.disconnect();break;default:return void h.log('FOARenderer: Rendering mode "'+A+'" is not supported.')}this._config.renderingMode=A,h.log("FOARenderer: Rendering mode changed. ("+A+")")}},A.exports=i},function(A,t){A.exports=["UklGRiQEAABXQVZFZm10IBAAAAABAAIAgLsAAADuAgAEABAAZGF0YQAEAAD+/wIA9v8QAPv/CwD+/wcA/v8MAP//AQD7/wEACAAEAPj/+v8YABAA7v/n//v/9P/M/8D//f34/R38EvzxAfEBtA2lDTcBJQFJ9T71FP0D/cD1tfVo/Wv9uPTO9PPmOufc/U/+agL3Aisc/RxuGKEZBv3j/iYMzQ2gAzsEQQUABiQFrASzA5cB2QmyCy0AtgR4AeYGtfgAA2j5OQHP+scArPsMBJgEggIEBtz6+QVq/pj/aPg8BPP3gQEi+jEAof0fA1v9+/7S+8IBjvwd/xD4IADL/Pf9zvs+/l3+wgB7/+L+7fzFADH9kf6A+n3+DP6+/TP9xP68/pn+w/26/i39YgA0/u790Pt9/kD+7v1s/Wb+8f4C/1P+pf/x/cT+6/3p/Xz9ff5F/0f9G/4r/6v/4P5L/sL+ff7c/pj+Ov7X/UT+9P5G/oz+6v6A/2D+9/6P/8r/bP7m/ij+C//e/tj/Gf4e/9v+FwDP/lz/sP7F/2H+rv/G/s7/Hf7y/4P+NAD9/k0AK/6w/zP/hACh/sX/gf44AOP+dgCm/iUAk/5qAOD+PwC+/jEAWP4CAAr/bQBw/vv/zf5iACD/OgCS/uD/Cv9oAAb/CgDK/kwA//5tACH/TgCg/h4AHP9aABP/JADP/hEAYv9gAAj/3f8m/ysAYv8gACX/8/8k/ysAXv8bABH//v8j/ygAa/8qAAD/9f9g/1YAWf8JACH/AgB2/z4AXP/w/z3/FgB2/ykAX//9/z//EwCV/zUAS//n/1T/GACK/x4ATv/0/4P/QQB4//v/WP/2/3X/HAB8//P/V//3/2f/AQBh/9v/Tf/x/5P/IwCI/wMAf/8hAKP/JACZ/xUAiv8nAK//HgCr/yMAm/8uAMz/OACi/yQAqf87AMT/MwCY/yUAtP9FAMH/KgCu/ycAyP85AMv/IwCz/xoA1f8qAMn/FgC8/xQA4/8nAMX/CwDJ/xQA4f8ZAMH/BgDO/xQA4f8WAMP/BwDU/xQA4P8QAMH/AQDb/xQA3P8JAMP/AgDh/xIA2v8EAMj/AgDk/w0A1f/+/8v/AwDm/wwA0v/+/9H/BgDl/wkAzv/8/9T/BwDk/wcAzv/8/9r/CQDi/wQAzf/8/9//CADf////0P/9/+L/BwDd//7/0////+T/BgDb//z/1f8AAOf/BQDZ//v/2v8CAOb/AwDY//v/3v8EAOb/AgDY//3/4f8FAOX/AQDZ//7/5P8GAOP/AADb/wAA5/8GAOH////d/wIA5/8FAOD////f/wMA6P8FAOD////h/wQA6P8EAN7////h/wUA4v8DANv/AQDd/wQA3P8CANn/AgDb/wMA2/8CANv/AgDd/wIA3v8CAOH/AQDj/wEA","UklGRiQEAABXQVZFZm10IBAAAAABAAIAgLsAAADuAgAEABAAZGF0YQAEAAAAAAAA/f8CAP//AQD//wEA//8BAP3/AAACAP7/+f8AAAIA/P8FAAQA8/8AABoA+f/V/wQAHQDO/xoAQQBO/ocA0Px1/ucHW/4UCm8HLO6kAjv8/fCRDdAAYfPiBIgFXveUCM0GBvh6/nz7rf0J/QcQSRVdBgoBSgFR62r9NP8m+LoEAvriBVAAiAPmABEGMf2l+SwBjva6/G4A//8P/CYDMgXm/R0CKAE6/fcBBwAtAND+kQA0A5UDhwFs/8IB8fydAEP/A/8v/e7/mP8j/2YBIwE3Av0AYv+uAOD8lgAg/wwAIf/L/n0Ae//OAJMB3P/XAF//XwCM/08AB/8NAEf/rf4jAT3/lgAJAP4AHgDpAO8AUf9L/07/Qf8KAOD/x/+D/3sATQCDAMoA0f79/+L/EQDt/7EAqv+S/7IAuv/o/wgAc//X//H/SwCm/+3/Yf/B/yoAAADI/7X/AwBg/5EATgCX/xYA/P+q/00AVACY/6v/BADD/zwALQCN/8z/KQDu/ygAEgCZ/6f/VQDC//T/KQCs/7P/UgAfAO7/NgC8/57/awAZAPP/+P/V/8z/bQBBAL//DgD0/+T/TABBAMz/CwAxAPz/SQBqALn/BgALAPz/EAA7AIz/3/8iAAUA//8kALf/y/9VABQA+v81AOj/0P9cAB4A+f8WAOr/vv83ABgAw/8JAOj/4f8nACIAsf/y/w4A3v8gACQAxP/n/ycA7P8WAC0Ayf/U/ycA9v/7/yUA0P/P/zUABADc/xUA5P/J/zcACwDS/xUA9P/m/zAACQDX/+3/9v/2/yQACgDZ/+P/AwAKABYA///b/9j/EQALABkADgD6/+7/GwD4/w4A8P/w//j/EgAEAAUA9f/1/wQAGgD4/wAA5////wAAGQD1////7f8FAAUAFQDv/wAA6v8LAAcAFQDs/wEA9P8SAAYACwDr//7/AQASAAYABQDv/wIAAwAWAAIAAgDv/wAABgATAAEA/f/u/wQABgAQAPr/+P/z/wUACQALAPj/9//4/wgABwAKAPT/+f/5/w4ABwAIAPT/+//9/w4AAwADAPH//f///w8A//8BAPP///8BAA0A/f/+//X/AgACAA0A+//8//b/BAADAAoA+f/7//n/BgADAAcA+P/7//v/BwABAAQA+P/8//3/CQABAAIA9//9////CQD/////+P///wAACAD9//7/+f8AAAAABwD8//3/+v8CAAAABgD7//z//P8EAAAABAD6//3//P8FAP//AgD6//7//v8FAP7/AQD7//////8GAP7/AAD7/wEA//8EAP3/AAD9/wEA/v8DAP3/AAD9/wIA/v8CAP3/AQD9/wIA/v8CAP7/AQD+/wEA"]},function(A,t,e){"use strict";function i(A,t){this._context=h.isAudioContext(A)?A:h.throw("HOARenderer: Invalid BaseAudioContext."),this._config={ambisonicOrder:3,renderingMode:c.AMBISONIC},t&&t.ambisonicOrder&&(_.includes(t.ambisonicOrder)?this._config.ambisonicOrder=t.ambisonicOrder:h.log("HOARenderer: Invalid ambisonic order. (got "+t.ambisonicOrder+") Fallbacks to 3rd-order ambisonic.")),this._config.numberOfChannels=(this._config.ambisonicOrder+1)*(this._config.ambisonicOrder+1),this._config.numberOfStereoChannels=Math.ceil(this._config.numberOfChannels/2),t&&t.hrirPathList&&(Array.isArray(t.hrirPathList)&&t.hrirPathList.length===this._config.numberOfStereoChannels?this._config.pathList=t.hrirPathList:h.throw("HOARenderer: Invalid HRIR URLs. It must be an array with "+this._config.numberOfStereoChannels+" URLs to HRIR files. (got "+t.hrirPathList+")")),t&&t.renderingMode&&(Object.values(c).includes(t.renderingMode)?this._config.renderingMode=t.renderingMode:h.log("HOARenderer: Invalid rendering mode. (got "+t.renderingMode+') Fallbacks to "ambisonic".')),this._buildAudioGraph(),this._isRendererReady=!1}const n=e(1),s=e(8),o=e(9),r=e(17),a=e(18),h=e(0),c={AMBISONIC:"ambisonic",BYPASS:"bypass",OFF:"off"},_=[2,3];i.prototype._buildAudioGraph=function(){this.input=this._context.createGain(),this.output=this._context.createGain(),this._bypass=this._context.createGain(),this._hoaRotator=new o(this._context,this._config.ambisonicOrder),this._hoaConvolver=new s(this._context,this._config.ambisonicOrder),this.input.connect(this._hoaRotator.input),this.input.connect(this._bypass),this._hoaRotator.output.connect(this._hoaConvolver.input),this._hoaConvolver.output.connect(this.output),this.input.channelCount=this._config.numberOfChannels,this.input.channelCountMode="explicit",this.input.channelInterpretation="discrete"},i.prototype._initializeCallback=function(A,t){let e;(e=this._config.pathList?new n(this._context,this._config.pathList,{dataType:"url"}):2===this._config.ambisonicOrder?new n(this._context,a):new n(this._context,r)).load().then(function(t){this._hoaConvolver.setHRIRBufferList(t),this.setRenderingMode(this._config.renderingMode),this._isRendererReady=!0,h.log("HOARenderer: HRIRs loaded successfully. Ready."),A()}.bind(this),function(){const A="HOARenderer: HRIR loading/decoding failed.";h.throw(A),t(A)})},i.prototype.initialize=function(){return h.log("HOARenderer: Initializing... (mode: "+this._config.renderingMode+", ambisonic order: "+this._config.ambisonicOrder+")"),new Promise(this._initializeCallback.bind(this),function(A){h.throw("HOARenderer: Initialization failed. ("+A+")")})},i.prototype.setRotationMatrix3=function(A){this._isRendererReady&&this._hoaRotator.setRotationMatrix3(A)},i.prototype.setRotationMatrix4=function(A){this._isRendererReady&&this._hoaRotator.setRotationMatrix4(A)},i.prototype.setRenderingMode=function(A){if(A!==this._config.renderingMode){switch(A){case c.AMBISONIC:this._hoaConvolver.enable(),this._bypass.disconnect();break;case c.BYPASS:this._hoaConvolver.disable(),this._bypass.connect(this.output);break;case c.OFF:this._hoaConvolver.disable(),this._bypass.disconnect();break;default:return void h.log('HOARenderer: Rendering mode "'+A+'" is not supported.')}this._config.renderingMode=A,h.log("HOARenderer: Rendering mode changed. ("+A+")")}},A.exports=i},function(A,t){A.exports=["UklGRiQEAABXQVZFZm10IBAAAAABAAIAgLsAAADuAgAEABAAZGF0YQAEAAD+/wQA8/8YAP3/CgACAAAA//8CAAYA8/8AAPH/CgDv/97/e/+y/9P+UQDwAHUBEwV7/pP8P/y09bsDwAfNBGYIFf/Y+736+fP890Hv8AGcC3T/vwYy+S70AAICA3AD4AagBw0R4w3ZEAcN8RVYAV8Q8P2z+kECHwdK/jIG0QNKAYUElf8IClj7BgjX+/f8j/l3/5f/6fkK+xz8FP0v/nj/Mf/n/FcBPfvH/1H3+gBP/Hf8cfiCAR/54QBh+UQAcvkzAWL8TP13+iD/V/73+wv9Kv+Y/hv+xPz7/UL83//a/z/9AP6R/5L+jf26/P3+rP26/tD8nP7B/Pv+WP1V/sP9gv91/3P9xP3J/nv/GP5S/sb+IP8v/9j/dv7U/pr+6v+u/Z3/sv5cAOr9Q/83/+n/zP5x/57+2//k/nwA/v01//L+SACB/sD/Ff81AJT+TgDp/ocAm/5dAFT+MgD+/pMAW/7o/yH/xQDA/kkA9P6LAL3+pAC0/iQAz/5UALD+UwAt/3UAhf4UAA//pwC+/joAz/5aAAv/fwDY/iMAIf+uAPP+ZAAc/0QAy/4xAB7/TgDs/goADP8wAEL/NwDo/ub/Uf9BAC3/+v9F/y4ARP9HAFP/EQA3/xMATP81AG3/HQAu/wgAaP9FACb/9f9B/y0AUP8rAED/CwBV/z4AW/8TAGH/BQBK/xsAfv8eAFn/AgB3/zwAff8RAGj//v+E/yAAb//0/3n/FwBz/xcAiv8PAHn/FQCJ/xgAg//x/3j/EQCa/ycAff/w/47/HwCI//X/iv/7/43/JQCM/+n/kP8AAJb/JACj//7/oP8ZAML/SwCo/w4Atv8tAMb/PACr/xcAwP9HAMP/OADF/y4A0f9IANL/NwC//zEA0f9LAMb/MAC8/y4A3f9GAMH/FQDQ/yYA2/8sAMT/AwDX/xkA3v8SAM3/9v/c/w8A4f8LAMj/8f/h/xQA2P8CAMn/8//j/xQA0v/7/9H//P/i/xEA0v/1/9L//f/j/w0A0f/x/9f//v/k/wgAz//u/9z/AwDg/wMA0P/v/9//BQDf////0v/y/+D/CADc//3/0v/2/+L/CgDa//r/1v/5/+T/CgDY//j/2f/9/+T/CADY//f/3P8AAOT/BwDY//f/4P8EAOP/BADZ//j/4v8GAOL/AwDa//r/5f8IAOH/AQDc//3/5v8JAOD//v/f////5v8IAOD//v/h/wIA5/8HAOD//f/j/wMA5/8GAOD//f/l/wYA5v8EAOD//v/m/wYA5f8CAOL////n/wYA5P8BAOH/AADl/wUA4f///+H/AQDk/wMA4f///+T/AQDm/wEA5////+r/AADt/wAA7/////P/AAD1////","UklGRiQEAABXQVZFZm10IBAAAAABAAIAgLsAAADuAgAEABAAZGF0YQAEAAD//////v///wAAAAAAAAAAAQAAAAAA///9/wAABAD+//n/AgAJAAAA+v/+//f/DAAdAPv/+v+l/8L+jf/4/vgAdwVPAQACLQBo+Qj/Ev7o/N3/VgCbA08Bxf+L+yn9J/2HCU8FmgBvDe30Rv5h/LT09gi5CxkA5gOi8/30kwEM+4YJMf2nBmkJJAQQBLoFtvvv+m4A7PF6/R0Bif3qAuf8WARAAf4GyABG/BIAwvr4Acv8U//c/yIC8AEn/B8Daf2CAgMBAf3MAN38vgLK/UT/QwCyAPYClPyvAW/+pQAoASD+zP+R/IYC1f7C/nEBQP96AZb+1QAIAM//yQE7/tkAZ/7TAXL/w/8+AIsAtwB7/24A4v9a/z4A7v4iADb/dwCj/23/kgBOANUAIv8lAKEAxP9gAK7/BwCP/5kA7/9v/0wAzv9DAGT/3/9vAHv/6P+q/xUA7P8XAO//uv/g/2UAEgCV/wEATADM/+7/+//j/+D/9v/i//j/IgD+/xoAxf/6/z4A5/+8/9D/QwDq/+3/OQDT/zUAIgA/APP/PgAjAPD/BwAGACAADAC3//b/HAA3AN//RgDN/w8AIAACAN//GQBDACEAIwA+ACoAJQAeAPz/KgAYAPr/DgAEABYAIgAcAMT/7f8OAOL/5P/2//L/9P8GAPT/7v/8/+7/6v/t//z/AgAUAOL//P8VAAMA4/8IAPb/+P8MAAoA5v8NAAsA9v///wEAAAD9//n/9/8JAAYA7v/6/wMA+f8GAAEA7f/7/xgACAD4/w8A///3/w0A+f8BAAIA/P/5/xIA///9//r/7v/+/xYACQD///H/CwDz/wEADgAHAPP/FADn/+3/AQD5//f/AgD7/wEABwAMAAEADQD8//n/8f8OAPX/BAD+//X/+v8WAAQA+f8CAAEA7/8QAAEA/P8DAAUA9f8KAAwA9v8DAAUA+f8OAAoA9f/7/w0A+v8EAAgA8P/6/woA+//8/wkA+P/3/woA+//8/wcA9//1/woAAwD5/wcA/P/3/w0AAwD3/wEABAD2/wkABgD3/wEABQD3/wUABQD3//v/BwD3/wMABQD3//r/CQD7////BQD6//n/CQD9//3/BAD9//j/BwAAAPv/AwD///j/BwABAPn/AQABAPn/BQACAPn///8DAPr/AwADAPr//v8EAPv/AQADAPv//P8FAP3///8DAPz/+/8FAP7//f8CAP7/+/8EAP///P8BAP//+/8DAAEA+/8AAAEA+/8CAAIA+////wIA/f8AAAIA/P/+/wIA/f8AAAIA/f/9/wMA/////wEA///+/wIA/////wAAAAD+/wAAAAD/////AAD//wAA//8AAP//AAD//wAA","UklGRiQEAABXQVZFZm10IBAAAAABAAIAgLsAAADuAgAEABAAZGF0YQAEAAD////////+//////8AAP////8AAP//AAAAAPz//f8IAAMA9////w4AAQD6/wwA8//+/y8Afv/0/2H/UP5gAbH+2QG1B2cAVAIh/l32FPyM/nACPQDV/+UEo/Q6AQwCu/oLD9kF8QJA/Uz+Wf2KCOcC+wUKBsL5aQBQ97rwOPiPAvn5CAl8AHEDkQPcAA8Bn/lIAdz7HQF1+xz9cAM4/94E4gDKAun+cgPYAYr9JgJr/bf+ivxz/MoBgv5UA8EBSgAQAJ7/UgEk/cQB7f63/sD/vf4XAhT/BQFCADYAnQGI/9EBtv3hALD/vP+c/3H/TgIN/1sBpf8yAP3/4f8qABr+1f8OAJ3/dwAGADEBnv9JAPz/IQBwAIH/jgAS/4wAsACTAOn/DQDCALn/ZQCSAAIAAwD1/9//jv9aADQA/v9EAB0AfgA8AAQACgB9APr/IAARAPT/5v9xACAABAAHAGUAt/89AC4ACgAjAMP/+v/9/xYA7f/1/+D/7P87AC0Auv8RAAcA9/8FAC8A2//y/xIAEwAaADQAJADp/zoAAgAfABIA2f/e/zUA+P/6/w4A9//A/zcA4//P//T/5f/R////EwDb/w4A8/8BABkANADh/xEA+f/0/wIAHADc//j/GwD1//f/GADs/+v/EAAAAPz/EgD3/+r/FgAMAAkAGAD9/+z/IQAQAPH/GQD3//z/CgAfAOX/AgD8//H/BAATAOv/+v///wIABAAdAOj/BQAPAAcAAQATAOz/8/8JAAkA6f8VAOv/+f8QABUA/v8OAO3/+P8KABUA9f8FAPv/5/8TAA0A7f8XAAkAAQAJABYA4/8WAAcACgANABEA7v8EAP7/AAD+/wMA9//7/xAAAQD8/wQA+f/7/wMABgDq/wAA+v/3/wYACQD1//3/BAD9/wgADgDw//r/AgD6/wEACADv//j/BQD///X/BwDu//j/AgACAPP/BAD2//n/BAAGAPb/BAD8//3/BQAJAPL/AwD+//3/BAAIAPP//f8DAPz/AAAGAPP/+/8CAP7//f8FAPX/+f8DAAAA/P8EAPf/+v8GAAMA+/8EAPv/+/8GAAQA+v8CAP///P8EAAUA+f8AAP///f8CAAUA+P///wEA/v8BAAUA+f/+/wIAAAD//wUA+v/9/wMAAQD9/wQA+//9/wMAAgD8/wMA/P/9/wMAAwD7/wEA/v/+/wIAAwD6/wEA///+/wAABAD6/wAAAQD//wAAAwD7////AQAAAP//AwD8//7/AgABAP3/AgD9//7/AQABAP3/AQD+//7/AAACAPz/AAD+//////8BAP3/AAD//wAA//8BAP7/AAD//wAA/v8AAP7/AAD//wAA//8AAP//","UklGRiQEAABXQVZFZm10IBAAAAABAAIAgLsAAADuAgAEABAAZGF0YQAEAAD//////P/9//3//////wAAAAAAAAIAAgACAP//CAAEAEEA//+cAAUAb/8HAAH9+P9eARkAogQUAJn8BwCd/gX/+QQNAKoC9gFdAtb/b/vd/936TP/6AsD/nfqn/un1W/0dA8IEsQLvAJv2bP72+WMAkP8dAcX+nQO2AIr6bP/EABX+NgK/Bdj2IQv2AE4EUAiD/xQAnwIm/B0B/wGNAoH7sQaP/b8CiQakAqD+R/9xA477KQL//6r75v/O/pcCgQCtAiMCBQAkANAARwHf//39hgBl/kUAJgEtAUEATgA/AgoASADK/zUAJv29/vL+l/9c/0cAUwBBAE8A6QE5/87/Wv9NAOf+5v7P/5P/4/9BAKYAQwDD/zYB5v+r/zYATwAp/1v/WQAEAB0AhwA0AA0AIAA3AAEAzv/u/+//5v9m/zwAIADQ/8T/SABiANb/SwAbAFf/MQDX/7L/hP8TAPr/AgAMAAsAHwAZAI3/VgDC/9v/5//x/6P/AwBlAMv/yf82AB4A+P9WAPj/NwDi/1EA0v9JANj/JwAcAAEADABYANj/4f8MAEwAmP82AN//3P8UADYA7//6/wIACADU/ygAyv82AN7/9v/2/ygAxv/9/+3/5//n/zUA6//g/y4ADgD5/wsABwDv/xIADwAGACoAJQD3/zIA+/8FABsAFgDO/zAAHAAIABQALADp/xcACAAAAPH/GADs/wkACQAFAAgAFQDp/wIAHAD1//P/EQDw/+3/GAD9/+f/HAD8//T/DAAQAPH/HwD4//r/DwAPAOj/EQACAOn/DAAXAOX/BAAOANH/9/8MAO//9f8LANT/9f8EAO//6f8NANb/+P8KAOz/5v8MAOD/7f8UAO//7//+//7/9v8YAPj/9f/z/wsA+v8SAPD/+v/x/xYA+f8SAPb/9//3/xEABQACAPn/9//y/xQACQD///b//v/7/xIACQD9//H/AAD7/xEAAgD5//P/AwD9/w8AAgD3//D/BAD//wUA/v/0//D/BgADAAMA/P/2//f/BwAGAP7/+//2//j/CAAFAPv/+f/5//v/BwAHAPn/9//7//7/BQAFAPf/9//+/wEABAACAPf/+P8BAAIAAgAAAPj/9/8CAAMAAAD+//n/+f8EAAQA/v/8//r/+/8EAAMA/P/7//z//P8EAAIA/P/5//7//v8DAAEA+//5//////8CAAAA+//5/wEAAAABAP//+//6/wIAAQD///3//P/7/wMAAQD///3//f/9/wIAAQD9//3//v/9/wMAAQD9//z/AAD//wEAAAD9//z/AAAAAAAA///9//3/AAD//wAA/v////7/AAD//wAA////////AAD//wAA//8AAP//","UklGRiQEAABXQVZFZm10IBAAAAABAAIAgLsAAADuAgAEABAAZGF0YQAEAAD+////+f////v//v///wAA/////wUAAQAIAAIABwACAHkATAAOAaMAAf9C/9X6QvwhArAAtghABW37nv/y+0wAWQNcAE8JRwSOC6AEJe8P8S/zrPWaBI/+LQA/+0L+P/4K8AgAb/8uCh78BQtC614GaQWfAin5UfzN8Tf+GQizAZ4MCQMbGJ4BoRS7AvcHyQARA6n9ZwHZ/z4DvwAZAlAB6gbNAS4GFADFATL7E/2K+j37C/xp/SD9Uv0VAOsDs//WAd3+bv7F/f79mP2X/KH+FwC0/1n+VgFcATABHQGaAET+nf8Y/hoAovpqAXj9CQKW/lsCl/4RApj+bAHk/RcAlv4BAG/+DgDi//3/GwAOAEIAq/+y/3z/8v8+/7T/Tv8//27/mgDZ/1sA+P+cAAAA/P/i/yMAi/85AMP/KgDM/9MA9P+QABoA4QAiACwACwBdAP7/TQDb/y0Ayf+SAA0AZwDg/4wA+/8/AAMAgQDp/w0ADAAQAAoANgAgAA4AKABIAB4A4v/3/+f/+v/c/+n/EADn/wgAFAAqAOz/IwDc/9//3f8XAND/2v/a/w0A5v8BANb/9P/m/wAA8P8ZAN3/RwAGAEsABgB/AP7/NAASAEgABAA3AP3/KgD9/1sA8P8lAOr/FgD1/xAA4/8kAOv/AwD4/xEA5f8NAPT/+v/3/x8A7f8PAPj/IwD5/yAA9/8ZAAEAGgD4/xoA9f8HAAMACAD0/xgA+P8AAPr/IQDp/w4A8v8HAPX/IgD1/wYA+P8GAPX/GgD3/woABQASAAcAGQDw/+v/9P8bAP3/HADs/+f/7/8LAPr//v/0//T/AgD2/wsA6P///+P/CADY//7/5v/3/wQA/v8LAPD/GgD1/yMA/P8QAOv/LADw/yQA+P8XAO7/MQD9/yEAAQAcAPD/IgD9/xMA+/8OAO//FQABAAoA+/8PAPP/FQABAAQA9/8PAPX/CAADAAEA+P8NAPv/CAAGAAUA9/8JAP//AAAFAPz/+f8HAAQA/f8FAP3//P8FAAYA+P8DAP7/+/8AAAcA9/8BAP///f///wgA9//+/wAA/v/8/wUA9//8/wIA///7/wUA+v/7/wIAAAD6/wMA/P/6/wEAAQD6/wEA/v/7/wIAAgD6////AAD7/wEAAgD7//7/AQD8/wAAAwD8//3/AwD9/wAAAgD9//z/AwD/////AgD+//z/AwAAAP7/AQD///3/AgABAP3/AAAAAP3/AgACAPz///8BAP3/AQACAP3//v8BAP7/AAABAP3//v8CAP7///8BAP7//f8CAP////8AAAAA/v8CAAAAAAAAAAAA/v8BAAAAAAD//wAA//8AAP//AAD//wAA//8AAP//","UklGRiQEAABXQVZFZm10IBAAAAABAAIAgLsAAADuAgAEABAAZGF0YQAEAAAAAP//AAD//wAA//8AAAAA/////wAAAQD+////AAAGAP3/OAABAIIAAwBv//f/E/0QAK0ADQCzA/7/8P4u/0cBDQCJA6ABbQDg/w7/z/9o+Vn/SPnL/1//Ef+2+jr9RfZgA5QFZwILDFj+PAb2/nEFKgKk/R0Dlv6b/FUDsP6YAoj9SgAT/iL/tAPwAv8A0P6zAr7/dwAnAf39uP22/skA2v///2YCoP4UAUsAZgF2AJH+4P70/rz9+f+U/Xv/8v7CAcb+TACS/kwAv/+x/tX9oP71/oL/1f8nAEUAZwGtAAgAIgC/AD4BaP8GAGH/dQDF/64Arf8nAakAhAH9/+kAQQD3AFb/q/8p/yIAR/8FAPD/ZAA/AIYA3v8tADQADQBp/3f/CwABAP3/Wf8OANj/WwDH/xoAe/8DAKz/zv96/z8A3f/J/5X/IAD5//j/q//c/+//RADq//D/vv8pADUAFQDI/y8ACAAbANb/OwD3/+3/9f/e/wcAIAAeAMH/8/8xAC0AEADW/+3/HAADAPv/8P8DAOL/OwD3/xcACQAHAM//5f8XAAcAz//T/9D/HgD9////yf/e//v/AgD//9H/6/////H/+/8hAAIA9//7/w0AFgAQAPL/2v/8/xsAGQABANz/9P8YAAQA/v/y/wMA5v8YAAkAAAAAAAMA7/8KABgADwDs//j/BwATABsA8P/1//z/BAAMAAAA9P/s/xAA/v8GAAkA/v/p/wMACwALAP7/9P/p/wcADQAFAPb/7//4/w0ACAD8//b//v/1/wMACwD1//T/8P/8/wAACQDz/+f/5P8GAAkABQD5//D/+v8FAA0AAwD///T/AgACABAA/v8CAPD/+/8FAAoA9f/3//f//v8GAP7/9v/t//z/+f8AAPj/+v/3/wEA+v8HAPr//P/5/wQA//8DAPr/+P/3/wYA///+//X/+//5/wQA/f/7//X/+//4/wMA/f/8//j//v/9/wYA///8//f/AgAAAAUA/f/6//n/AwACAAIA/f/7//z/AwACAAAA/f/6//3/AgADAP7//f/7/wAAAwAFAPz////8/wMAAgAEAPv//v/+/wMAAgADAPv//v///wMAAQABAPv//f8AAAIAAAD///v//f8BAAIA///+//z//v8CAAIA/v/9//3///8CAAEA/v/9//7/AAACAAAA/v/9////AAABAAAA/f/9/wAAAQABAP///f/+/wEAAQAAAP///v/+/wEAAQD///7//v///wEAAQD///7//v///wEAAAD+//7///8AAAAAAAD+//7///8AAAAA///+//7///8AAAAA////////AAAAAP////////////8AAP//////////","UklGRiQEAABXQVZFZm10IBAAAAABAAIAgLsAAADuAgAEABAAZGF0YQAEAAAAAAAAAAABAAAAAAD//////////////v////3/////////+//8////AQD9//z/9f8BAAIA+f8dACgAWQBxAJX/qv+Y/uz9aP9k/7UDUQQBAiQA4Pgi/AkB0gKaBsD/+fxp/vz9CQSp/I/+ywDO+vMD0fzK/PABcgBeBfoBv/+uAuH9Sf5gAy39awMmBWUBuP9fA9/9fgDj/2/+EACaACcCSv9Z/2j/rv7hAA0AWf55/7L84P7E/SIAT/67AMv/tf+FAA7/1v+7/gv/IP+E/sQA+P5aAXz/tP9XAFX/tP8o/4r/j//e/yQAMv9mAJT/rgCr/9X/EwCb//H/9f7F/6D/EAAoAK3//v+e/zsAh/+B/7r/if/C/2r/4P/z/6//HwCy/0IA7/9ZALT/y/80ACgA9v/J/9//DgA5ADUALQARADIACwAfAOf/NgArACMACQBBAEcAGAAjAC4AWQBUAHcAAAAfACEAIAAcAPj/CADk/yQA7v89AEEAFwD5/xYA6f8aAOX/AADF/zQADwAUAOT/BQDr/yUA6P8XAOf/HADR/0AA8P8nAAgACQDt/ycAKAAHAPH/IQDz/xsACADn//n/DgADAA4A8P///8z/GgDN/yMA/f8QANj/MwACAC0ACwAOAO3/JgAZAAUACgAAAA4AIgAaAAkADwACAAAAHQATAAUABQACAAgACwAjAO////8AAA8ABQAPAPL//f8GAAsABgAGAPD/8v8GAPz/CAD6//H/6v8PAAgABgD4//3/9v8aAAgABwD1//7//v8QAAoACAD//wUA9v8QAAoABAAFAAgAAgAJAAoAAwD//w0AAgD//wcA/v8DAAoABQAFABUABAAKAAYABwAHAA8ACgAGAAwADwAMAAkAEAAJAAgADwAMAAgADgAJAAUACQAPAAUACwAHAAEABgAIAAEABAAGAP//AgAJAAAAAgAEAP7///8IAAIA//8GAAEAAQAJAAIA/v8EAAMA//8JAAEA/v8DAAMA/v8HAAMA/f8BAAUA/v8FAAMA/v8BAAcA//8DAAMA/v8BAAYA//8CAAMA/////wcAAAAAAAMAAAD//wYAAQD+/wMAAQD//wUAAQD+/wIAAgD//wQAAgD+/wEAAwD//wMAAwD+/wEAAwD//wIAAwD//wEABAAAAAEABAD//wAABAABAAAAAwAAAAAABAABAP//AwABAAAAAwACAP//AgACAAAAAwACAP//AgACAAAAAgACAAAAAQADAAAAAQACAAAAAQADAAAAAQACAAAAAAACAAEAAAACAAEAAAACAAEAAAABAAEAAAABAAEAAAABAAEAAAABAAEAAAABAAEAAAABAAEAAAAAAAAAAAAAAAAA","UklGRiQEAABXQVZFZm10IBAAAAABAAIAgLsAAADuAgAEABAAZGF0YQAEAAAAAP//AAD//wAA//8AAAAA//8AAP//AAACAAAA+f8BAAYA///4/wIA//8AAA8A/v/V/wEAEwA9AAEBRwA2AF7/kfog/3gBwv99CDYBU/qtAUX/AP7OAfkAX/o9B38FSfwaAuT14/60BAr8CQAI/tfyIQTzAXP+egdUBBwBof7TBMT8bAWi/5EEWwBRAAAKyfxE/8b88vp6ACP+PAF4/qD8MQNM/ygCJ/2XAPD9kP5gAVT/iP9I/lEB4P8qAD0BFAGa/+7/DgB2AOP98gFm/u/+Vv5/AG8ASP9gAM//qv9w//oAcv+2/jIBHgA7/6D/oAAGAKH/lADT/wAAggC8AAYAkP9yAEcAkf8BAOD/RAAr/zUANwDt/xQAJQAkAMT/zwA/AOH/xv9zAGsANQBTAIcALAAvACIATACy/xMADADg/xcAWABvAJL/7f9VAPb/EgDt/wcA4f8kAPP/5P+h/wgACQDy//r/LgAQAMn/8/9CAOX/5v/S/9//3P8pABYAuP/s/w8AFgDt/+3/7v/w/9j/5/8GAOf/2P/2//P//v8kABMAuf/m/xoADADZ/+r/3P8KAAUAKwDe/wsA3P8VAAAADgAfAB0ACAAMAF4AGgAhAPL/MwDz/0kABAAKAPX/LwAbAAkA9v/s/+3/8/8CABAAAADm//n/BQALAAUAAQDj//n/JQAVAPX/9v/+/wIAEQABAPP/8P/1/wAABgD6/+3/7//o//j/DAD8/+b/8P8IAAkABgD4//D/8P8UAAoAAwD4/wAA+f8OAAcAAAAFAPX/9v8TAAkA8v8EAPb/9/8dAA0A7/8CAPn/+f8SAAQA8/8CAOf/+v8DAAgA9P////H//P8IAAUA8//0/wIAAQAGAAgA9//7/wAA+/8EAP//+P/+////AgACAAsA8v/+/wIABQD7/wgA9v/7/wMABAD5/wAA/P/3/wEAAQD7//7//P/1/wQA///3//r////3/wMAAwD1//r/AwD6////AgD4//n/AwD8//7/AgD4//n/AwD+//3/AQD4//n/BQD///n/AAD6//j/BAABAPj/AAD9//v/AwADAPj//v/+//z/AwAEAPj//v8BAP7/AQADAPj//f8CAP////8EAPr//P8DAAAA/v8CAPv//P8DAAEA/f8BAP3//f8DAAIA/P8AAP7//f8DAAIA/P///wAA/f8BAAIA+//+/wEA//8AAAEA+//+/wEA/////wEA/P/+/wEA///+/wAA/f/9/wEAAAD9/wAA/f/+/wEAAQD8/////v/+/wAAAQD8////////////AQD9////AAD/////AAD+////AAAAAP//AAD///////8AAP//AAD//wAA//8AAP//"]},function(A,t){A.exports=["UklGRiQEAABXQVZFZm10IBAAAAABAAIAgLsAAADuAgAEABAAZGF0YQAEAAD+/wQA8/8ZAPr/DAD+/wMA/v8KAAQA/f8DAAMABADs//z/8v/z/8f/R/90/ob+//zAAWsDAwY3DKn9//tu93DvkwI6An4CuwJ0/BH7VPux92X0Gu7N/EX9mgfqCkkIiRMgBd4NQQGL/c0G/xBxAKELZATUA/sIHRSx+fkCyAUmBNEJIARlAdHz2AjNACcIsAW4AlECsvtJ/P/7K/tf++n8aP4W+g0FXAElAMn8nQHn/sT+Zv7N+9X2xvzM/O3+EvpqBBD7SQLd+vb/sPlw/JD72/3n+Rr+L/wS/vz6UQGg/Nf+Av5L/5X9Gv2//SP+mf3j/lf+v/2B/ZH/5P05/iL9MP9F/uf9UP4v/qv9mv7o/Xn+wP2k/8L+uP5J/tD+Dv/Y/bL+mP72/n3+pP+7/hAA+/5zAGH+Z/+u/g8Azv2y/6L+//9o/iIADP8VACz/CwCN/pb/1v4yAFP+wf+4/jsAcf5VAP3+bADa/nMA6f4sAOT+IQBd/v7/7v6aAIL+QADe/nEA0P4yAKz+CQCo/moAuf5xAN7+mAC8/jcANf9eAPX+IAA1/1kAAP9hAMz+PQD5/m0A2/4gAPr+UQDh/jQAEv9BAPH+FABN/zkASv9DADP/BABe/1IAGf8oAE3/RQAw/zIAQf8mADn/GgBE/xIAR/8hAD7/BABy/zEAKP/0/07/GwBX/z4ARf8mAFr/QQBV/zUAVP8eAFz/JABt/0EAUP8MAHz/KgBr/ycAYv8EAH3/MABl/x8Agv8bAIj/GgBv//z/ff8AAJX/IABu/+T/jv/r/4z/9/9n/77/pP8JAJD/EQCJ//r/q/8WAJ//GQCU/xYAtv8qAKr/PQCW/ysAwf8+ALb/OgC3/ygAz/8uAM7/OgDH/ygAz/8kAMz/OgC//xsA1f8qAMn/LwDN/xcA1f8oAMv/JQDR/xMAzf8bAM//HgDU/wUA2v8ZANL/EwDW/wEA1f8ZAMz/BwDX/wIA0v8SANT/BQDW/wMA0/8PANT/AADY/wIA1f8MANX/+f/a/wUA0v8IANf/+//Y/wUA0/8DANr/+f/Y/wQA1v8BANr/+f/Z/wUA1//8/9z/+v/Y/wYA2f/8/93//v/Y/wUA2v/9/93////Z/wUA3P/8/97/AgDa/wMA3v/8/97/AwDb/wIA3//9/97/BADd/wEA4f///9//BQDf/wAA4v8AAN//BQDf/wAA4/8CAN//BADh/wAA4/8DAOD/BADi////4/8DAOH/AwDk/wAA5P8FAOL/AgDl/wEA5P8FAOL/AQDl/wEA4/8EAOL/AQDj/wIA4P8DAN//AADg/wIA3v8CAOD/AADh/wEA4v8AAOP/AADm/wAA6P8AAOz/AADu/wAA","UklGRiQEAABXQVZFZm10IBAAAAABAAIAgLsAAADuAgAEABAAZGF0YQAEAAD//////f/+//7///8AAP////8BAAEA/f8AAAEAAQAFAAUA9//6/x0A2f/9/xMA3P+jAE//of9HAKP//gCj/77/Z/vi/28D9/ywDJAJIvr6AsX0Xec4BhcGzf23DZP7yfZ6C1//nwBDBIHyYgob/Tf3sQ41ANoKRA/A+E7yffAa9gD5EQUBDMwMygiqAHMAqPqhAGUB2/gE+a78H/+4APT6DwIUAA0HNwMhBfL8E/90A5n7dP9cALIC+v5C/q0AOv9kAogBHv01/+3/qAQD/ub8T/4vAOUA5P6KATv+ywEYAeT+KP6i/3gCFP6h/hr/+P83ACL/VADn/8UARQJI/4MAu/8qAlj+wf4iAPb/LgFJ/8QAUABAAI4ABf+k/3X/YgFK/ij/j/9HADoAi/+WAA0BVwC/ACL/LACe//cARv9i/xgAUgA0ACj/FgBgAIj/5P9M/7z/zv8/AKz/gv8sAEQA6/+I/yYAawDL/7T/xf8qAOv/FQCu/5n/EgAyAO3/i/9LAE4A+//R//P/FgDe/8z/u/8DADIALAAZALL/TAA8ABwAo//1/xwA/P/L/z0A6P8jAN7/7v+a/zAAwf/7/3//KQAuACwA9v8RAGYAIwBNADgAKgASAF0ADgANACEAMQDH//H/LQACAB0Ay////x0APAABAAQA2v8iAAcAEgDE/+v/FQD+/+P/DAD1/97/6v/4//X/EwD4/+7/5P8cAA0ACQDH//7/CQAXAAEA/P/5//j/CwAWAAEABQD9//n/AQAWAB0A7v/k/wAACQAmAP//9/8AAPn/8/8aAO//6/8fAOv/5v8hAP//5/8PAOf/AAAGAPn/6v8JAAYABgABAOv/1//1//L/+P8DABcA6f/8/wMACgD7/xAA3v/2//z/DADu//z/5v/5/wEA/P/6//7/7v/x/wQABgD5/wAA8v/w/wkAEQD2//j/+v8EAAcAEAD3//v/+v8CAAAACQD3//v//v/9/wUADAD2//X/AgAHAAAABwD2//T/BgAKAP7/AQD4//r/BAAIAPn/AAD3//f/BQAHAPv//v/7//n/BQAJAPj/+v/9//7/AgAGAPj/+f8BAAEAAgAFAPn/+v8BAAIAAAAEAPn/+f8CAAQA/v8BAPr/+v8CAAQA/P////v//P8CAAQA+//+//3//f8CAAUA+v/9//////8AAAQA+v/8////AAD//wIA+//8/wAAAQD+/wEA+//8/wAAAgD9/////P/9/wEAAgD8//7//f/9/wAAAgD8//3//v/+////AQD8//z/////////AAD8//3///8AAP7/AAD9//7///8AAP7////+//////8AAP7////+////////////////////","UklGRiQEAABXQVZFZm10IBAAAAABAAIAgLsAAADuAgAEABAAZGF0YQAEAAD//////v8AAP///////wAAAAAAAP7/AQABAAAABwD///X/BQAjAPL/CQDb/9D/GAAb/7sAYwCW/z0BcP/X/7T/2QDW+wH8yANCCCUJ5QT++UXmhPwhA78FuAxH+p78ifudBlAG9vmu/lAK2fdlB///cfjoCa0E7Akn9Yb/zvba+AkAHPywBGEBFwUNAL8AXAAGA20DFvmR/kz+F/06Ag/+GwHl/5EEKgJd/q0AP/ym/9n6EfxY/2H+/QFtAC4C6QBDAaMCo/20/+3/3f/p/fL9rv9V/6cBhQHuAX4AcwJYAaH/IP/P/gsApP0LAe7/sQBuAI0AAgGDAE4BzACe/5X//v+v/+f+Zf+gAOv/5QBhAOIApAANASYAuP+h/8b/HQBr/9//bACWAGEAFAB5AD0AWQDU/+D/Yf/p//D/s/+R/4QAMQBvABEAkQBfABQAJgDW/wwA8/8XALz/vf8zAFAAKwD1/zEAPwDJ/x0A7/8LAOX/FwDR//H/EQAdAO//6P8QAFEA2f8WABEAMgDy/xIA+f/s/xAALgDv////HQAvAPT/+f8iAAYAEgAFABoAGgD//w0A+f/0/xsAHgDx/9f/GAACAPH/8f8JAPf/GwALABEA7/8cAPT/CgD2//j/BQD8/+3/OgAgAAYA9f8PAN7/DgD9/9r/1//3/+3/9//1//b/8//5//f/AgAJAOf/+v8OAAMACwD9/+7/5f8eAAEA9//q//7/8P8WAP7/+//4/wIA+f8TAAIA9f/5/wcA+P8iAAgA9v/n/xoA//8gAAUABwDj/wAA9v8BAAUAFQDn/wMA7v8QABAAEQDm/wwA8f8aAAAABwDu/wcACgASAAEA7//w//f/BgARAAkA6P/3/wcADgAKAAYA4f/4/wYADgAAAPr/8P/9/xQACgAHAPn/7//9/xEAAgD+//L/8v/8/xUAAwDw//H/9f8CAAsA/v/q//L/+f8FAAYA/P/r//j///8GAAkA+//o//j/AQAIAP//+v/o//v/CAAIAPv/+P/w/wEACQAHAPj/+f/0/wIACwAFAPb/+f/4/wQACwACAPP/+f/+/wYACAD///L/+/8BAAYABQD9//P//P8FAAUAAgD7//T//f8HAAQA///7//f///8IAAMA/P/6//r/AQAIAAEA+v/6//3/AgAHAAAA+f/7/wAAAwAFAP7/+P/8/wIAAgACAP3/+f/9/wMAAwAAAPz/+v/+/wQAAgD+//z/+/8AAAQAAQD8//z//f8BAAQAAAD7//3///8BAAMA///7//3/AAACAAEA/v/7//7/AQABAAAA/v/9////AQAAAP///v/+////AAD/////////////////////////////","UklGRiQEAABXQVZFZm10IBAAAAABAAIAgLsAAADuAgAEABAAZGF0YQAEAAD////////+//////8AAAAA/v/+/wAAAQD8//3/CQAJAP3/+v8PAAcApABlABkBkwCO/i//lfqa/HQAcf/3BdkCzwJcBCMC0wMN/9/9wgI7AaECYfxV/Tf83vhn/xrt8Owx/8n7cgHABYb43QcZDh4WugNrA7P74gHu/9z/zv0t/acCiQHY/iv4qQOl/ysCE/0//XT9Sf4O//j9xfupAn394gHO+rsCXAFIAxQC9wIXBgcD2AQuAnb/9gJh/6wAVfxEAI4Bvf7oAFv/bALsAMQBe/88/joAT/4dAH39/v9LAXn/gwDI//QBdABcAA0A7f4lAMn///+9/tv/iABp/13/pP/dALv/w/8MAHv//f+y/6////7U/5AAZP+Z/8r/nQDR/5r/DwDr/xAA4v+s/3z/+P9uAOv/t/82AGcAHgCb/yQAFQBGAM7/CgD3/xoAegAaAOz/CgBHAA8Adv8/AAAABQC2/xIAAAA7ABQAKgCj/z4AAQAXAJz/JAADAAcA8f/1/2AAAQAlAPD/NgDx/1wA7v/4/wMAZADv//3/HQAkAFoA8P9FAPv/FgBIAPf/WQAHAEUACQD0/xIAQwDu/wMAwP9VALn/XwCw/yEA5f8sAPj/FgDD/1YAyv8rAOX/HQDo//j/IQAQACAAHwD9/yQAHQBAABgABQAiAAUAKAD3/wkACwAKAAMABwAJAPb/+f8GAOr/JQAHABMA6P8TAA4AGgD//woA8/8ZAP//GADu/w0A9v8SAAMABwD4/wQA5P8XAAQACgDq/wUA+/8VAAcACADs/xIAAAATAPH/+v/1//T/7f///+z/+v/y/+//9/8KAAcACgAJAPT/BAAKAAAABgAIAPL/9v8KAAMABAACAPr/9v8OAAIA+P/x//v/+f8MAPb/+P/w/wQA9f8MAPn////7/woA/v8PAAEAAgD1/xAAAQAPAP//AwD//xQABwALAAAABgADABAAAgAHAAAACAABAA8ABQAFAAMABwAEAA4ABwADAAEACQAFAAoAAwD//wAACQADAAUAAQD/////CAABAAMAAAD/////BwACAAEAAAD/////BwACAP7///8BAAAABgABAP7///8CAAAABAAAAP7///8DAAAAAwAAAP3///8DAAAAAQAAAP3//v8EAAAAAAD+//////8EAP/////+/wAA/v8EAP/////+/wEA/v8EAP///v/+/wIA//8DAP///v/+/wIA//8BAP///v/+/wMA//8BAP/////+/wMA//8AAP//AAD+/wQA//8AAP7/AQD//wIA////////AQD//wIA////////AQAAAAEAAAAAAP//AQD//wEAAAAAAP//AQAAAAEAAAAAAAAA","UklGRiQEAABXQVZFZm10IBAAAAABAAIAgLsAAADuAgAEABAAZGF0YQAEAAD+/wAA+v8AAPz/AAD//wAA/f8AAAEAAAD+/wAACQAAAAQAAAAZAAAAtgAAAFsBAABW/gAAH/oAAGcBAABoBwAAlAAAAO3/AAARAQAA+wIAAEoEAACe/gAAiv4AALD0AADJ8wAAkQQAAF34AABi8QAAPQAAAAH2AAD19AAADAMAAJwGAACTEAAA0AwAAJkHAACOBwAAuQEAANcDAAC6AgAAHwUAAHEFAAB0AwAAbgEAADz+AADYAQAAGAAAAJwCAADgAAAA//0AAMn+AAAT/AAAwP8AAOn9AAAJAAAAewEAAOn+AACN/wAAOv0AAO3+AADN/gAAcP8AACj/AACq/gAA+f4AAML9AACa/wAA/f4AAN7/AABo/wAA6/4AAE//AAAC/wAAEQAAAHX/AAB0AAAA5f8AAEwAAAB3AAAA5/8AAMIAAABCAAAAzgAAAE8AAAB3AAAAKAAAADMAAACqAAAALwAAAK4AAAASAAAAVgAAACgAAAAtAAAATAAAAP3/AAA7AAAA2/8AACQAAADw/wAALQAAADEAAAAlAAAAbAAAADMAAABUAAAAEAAAACgAAAD1/wAA9v8AAPr/AADu/wAALgAAABIAAABUAAAARAAAAGUAAABGAAAAOAAAAGAAAAAuAAAARQAAACEAAAAfAAAAAAAAAAkAAAAQAAAAAwAAABIAAADs/wAAEAAAAAYAAAASAAAAIgAAABEAAAADAAAABAAAAA8AAAD4/wAAHQAAAAsAAAAIAAAADgAAAP//AAAcAAAADwAAAAYAAAASAAAAFwAAAAMAAAAYAAAAEgAAAPr/AAAQAAAADQAAAAoAAAD3/wAABgAAAPb/AADf/wAA/v8AAPL/AAD6/wAAFAAAAAQAAAAEAAAAGwAAAAEAAAAMAAAAIAAAAAIAAAAdAAAAGAAAAAIAAAAcAAAAEgAAAAcAAAAeAAAADwAAAAQAAAAeAAAABAAAAAYAAAAZAAAAAQAAAA4AAAATAAAA/v8AAAoAAAAOAAAA+/8AAAsAAAAJAAAA+f8AAAsAAAABAAAA+f8AAAoAAAD9/wAA+v8AAAcAAAD5/wAA+v8AAAUAAAD3/wAA/f8AAAQAAAD2/wAAAAAAAAEAAAD3/wAAAgAAAAAAAAD4/wAAAwAAAP7/AAD6/wAABAAAAP3/AAD8/wAABAAAAPv/AAD+/wAAAwAAAPv/AAD//wAAAQAAAPv/AAAAAAAAAAAAAPv/AAACAAAA//8AAPz/AAACAAAA/v8AAP3/AAACAAAA/f8AAP7/AAABAAAA/f8AAP//AAABAAAA/f8AAAAAAAAAAAAA/v8AAAEAAAAAAAAA//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA"]},function(A,t,e){"use strict";t.getBrowserInfo=function(){const A=navigator.userAgent;let t,e=A.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*([\d\.]+)/i)||[];if(/trident/i.test(e[1]))return t=/\brv[ :]+(\d+)/g.exec(A)||[],{name:"IE",version:t[1]||""};if("Chrome"===e[1]&&null!=(t=A.match(/\bOPR|Edge\/(\d+)/)))return{name:"Opera",version:t[1]};e=e[2]?[e[1],e[2]]:[navigator.appName,navigator.appVersion,"-?"],null!=(t=A.match(/version\/([\d.]+)/i))&&e.splice(1,1,t[1]);let i=A.match(/android|ipad|iphone/i);return i||(i=A.match(/cros|linux|mac os x|windows/i)),{name:e[0],version:e[1],platform:i?i[0]:"unknown"}},t.patchSafari=function(){window.webkitAudioContext&&window.webkitOfflineAudioContext&&(window.AudioContext=window.webkitAudioContext,window.OfflineAudioContext=window.webkitOfflineAudioContext)}},function(A,t,e){"use strict";A.exports="1.0.6"}])})},function(A,t,e){"use strict";A.exports="0.0.4"}])}); \ No newline at end of file diff --git a/src/renderer/lib/showdown.min.js b/src/renderer/lib/showdown.min.js new file mode 100644 index 00000000..7ed96f26 --- /dev/null +++ b/src/renderer/lib/showdown.min.js @@ -0,0 +1,5531 @@ +;/*! showdown v 2.0.0-alpha1 - 14-11-2021 */ +(function(){ + /** + * Created by Tivie on 13-07-2015. + */ + + function getDefaultOpts (simple) { + 'use strict'; + + var defaultOptions = { + omitExtraWLInCodeBlocks: { + defaultValue: false, + describe: 'Omit the default extra whiteline added to code blocks', + type: 'boolean' + }, + noHeaderId: { + defaultValue: false, + describe: 'Turn on/off generated header id', + type: 'boolean' + }, + prefixHeaderId: { + defaultValue: false, + describe: 'Add a prefix to the generated header ids. Passing a string will prefix that string to the header id. Setting to true will add a generic \'section-\' prefix', + type: 'string' + }, + rawPrefixHeaderId: { + defaultValue: false, + describe: 'Setting this option to true will prevent showdown from modifying the prefix. This might result in malformed IDs (if, for instance, the " char is used in the prefix)', + type: 'boolean' + }, + ghCompatibleHeaderId: { + defaultValue: false, + describe: 'Generate header ids compatible with github style (spaces are replaced with dashes, a bunch of non alphanumeric chars are removed)', + type: 'boolean' + }, + rawHeaderId: { + defaultValue: false, + describe: 'Remove only spaces, \' and " from generated header ids (including prefixes), replacing them with dashes (-). WARNING: This might result in malformed ids', + type: 'boolean' + }, + headerLevelStart: { + defaultValue: false, + describe: 'The header blocks level start', + type: 'integer' + }, + parseImgDimensions: { + defaultValue: false, + describe: 'Turn on/off image dimension parsing', + type: 'boolean' + }, + simplifiedAutoLink: { + defaultValue: false, + describe: 'Turn on/off GFM autolink style', + type: 'boolean' + }, + literalMidWordUnderscores: { + defaultValue: false, + describe: 'Parse midword underscores as literal underscores', + type: 'boolean' + }, + literalMidWordAsterisks: { + defaultValue: false, + describe: 'Parse midword asterisks as literal asterisks', + type: 'boolean' + }, + strikethrough: { + defaultValue: false, + describe: 'Turn on/off strikethrough support', + type: 'boolean' + }, + tables: { + defaultValue: false, + describe: 'Turn on/off tables support', + type: 'boolean' + }, + tablesHeaderId: { + defaultValue: false, + describe: 'Add an id to table headers', + type: 'boolean' + }, + ghCodeBlocks: { + defaultValue: true, + describe: 'Turn on/off GFM fenced code blocks support', + type: 'boolean' + }, + tasklists: { + defaultValue: false, + describe: 'Turn on/off GFM tasklist support', + type: 'boolean' + }, + smoothLivePreview: { + defaultValue: false, + describe: 'Prevents weird effects in live previews due to incomplete input', + type: 'boolean' + }, + smartIndentationFix: { + defaultValue: false, + description: 'Tries to smartly fix indentation in es6 strings', + type: 'boolean' + }, + disableForced4SpacesIndentedSublists: { + defaultValue: false, + description: 'Disables the requirement of indenting nested sublists by 4 spaces', + type: 'boolean' + }, + simpleLineBreaks: { + defaultValue: false, + description: 'Parses simple line breaks as
(GFM Style)', + type: 'boolean' + }, + requireSpaceBeforeHeadingText: { + defaultValue: false, + description: 'Makes adding a space between `#` and the header text mandatory (GFM Style)', + type: 'boolean' + }, + ghMentions: { + defaultValue: false, + description: 'Enables github @mentions', + type: 'boolean' + }, + ghMentionsLink: { + defaultValue: 'https://github.com/{u}', + description: 'Changes the link generated by @mentions. Only applies if ghMentions option is enabled.', + type: 'string' + }, + encodeEmails: { + defaultValue: true, + description: 'Encode e-mail addresses through the use of Character Entities, transforming ASCII e-mail addresses into its equivalent decimal entities', + type: 'boolean' + }, + openLinksInNewWindow: { + defaultValue: false, + description: 'Open all links in new windows', + type: 'boolean' + }, + backslashEscapesHTMLTags: { + defaultValue: false, + description: 'Support for HTML Tag escaping. ex: \
foo\
', + type: 'boolean' + }, + emoji: { + defaultValue: false, + description: 'Enable emoji support. Ex: `this is a :smile: emoji`', + type: 'boolean' + }, + underline: { + defaultValue: false, + description: 'Enable support for underline. Syntax is double or triple underscores: `__underline word__`. With this option enabled, underscores no longer parses into `` and ``', + type: 'boolean' + }, + ellipsis: { + defaultValue: true, + description: 'Replaces three dots with the ellipsis unicode character', + type: 'boolean' + }, + completeHTMLDocument: { + defaultValue: false, + description: 'Outputs a complete html document, including ``, `` and `` tags', + type: 'boolean' + }, + metadata: { + defaultValue: false, + description: 'Enable support for document metadata (defined at the top of the document between `ÂĢÂĢÂĢ` and `ÂģÂģÂģ` or between `---` and `---`).', + type: 'boolean' + }, + splitAdjacentBlockquotes: { + defaultValue: false, + description: 'Split adjacent blockquote blocks', + type: 'boolean' + }, + relativePathBaseUrl: { + defaultValue: false, + describe: 'Prepends a base URL to relative paths', + type: 'string' + }, + }; + if (simple === false) { + return JSON.parse(JSON.stringify(defaultOptions)); + } + var ret = {}; + for (var opt in defaultOptions) { + if (defaultOptions.hasOwnProperty(opt)) { + ret[opt] = defaultOptions[opt].defaultValue; + } + } + return ret; + } + + function allOptionsOn () { + 'use strict'; + var options = getDefaultOpts(true), + ret = {}; + for (var opt in options) { + if (options.hasOwnProperty(opt)) { + ret[opt] = true; + } + } + return ret; + } + + /** + * Created by Tivie on 06-01-2015. + */ +// Private properties + var showdown = {}, + parsers = {}, + extensions = {}, + globalOptions = getDefaultOpts(true), + setFlavor = 'vanilla', + flavor = { + github: { + omitExtraWLInCodeBlocks: true, + simplifiedAutoLink: true, + literalMidWordUnderscores: true, + strikethrough: true, + tables: true, + tablesHeaderId: true, + ghCodeBlocks: true, + tasklists: true, + disableForced4SpacesIndentedSublists: true, + simpleLineBreaks: true, + requireSpaceBeforeHeadingText: true, + ghCompatibleHeaderId: true, + ghMentions: true, + backslashEscapesHTMLTags: true, + emoji: true, + splitAdjacentBlockquotes: true + }, + original: { + noHeaderId: true, + ghCodeBlocks: false + }, + ghost: { + omitExtraWLInCodeBlocks: true, + parseImgDimensions: true, + simplifiedAutoLink: true, + literalMidWordUnderscores: true, + strikethrough: true, + tables: true, + tablesHeaderId: true, + ghCodeBlocks: true, + tasklists: true, + smoothLivePreview: true, + simpleLineBreaks: true, + requireSpaceBeforeHeadingText: true, + ghMentions: false, + encodeEmails: true + }, + vanilla: getDefaultOpts(true), + allOn: allOptionsOn() + }; + + /** + * helper namespace + * @type {{}} + */ + showdown.helper = {}; + + /** + * TODO LEGACY SUPPORT CODE + * @type {{}} + */ + showdown.extensions = {}; + + /** + * Set a global option + * @static + * @param {string} key + * @param {*} value + * @returns {showdown} + */ + showdown.setOption = function (key, value) { + 'use strict'; + globalOptions[key] = value; + return this; + }; + + /** + * Get a global option + * @static + * @param {string} key + * @returns {*} + */ + showdown.getOption = function (key) { + 'use strict'; + return globalOptions[key]; + }; + + /** + * Get the global options + * @static + * @returns {{}} + */ + showdown.getOptions = function () { + 'use strict'; + return globalOptions; + }; + + /** + * Reset global options to the default values + * @static + */ + showdown.resetOptions = function () { + 'use strict'; + globalOptions = getDefaultOpts(true); + }; + + /** + * Set the flavor showdown should use as default + * @param {string} name + */ + showdown.setFlavor = function (name) { + 'use strict'; + if (!flavor.hasOwnProperty(name)) { + throw Error(name + ' flavor was not found'); + } + showdown.resetOptions(); + var preset = flavor[name]; + setFlavor = name; + for (var option in preset) { + if (preset.hasOwnProperty(option)) { + globalOptions[option] = preset[option]; + } + } + }; + + /** + * Get the currently set flavor + * @returns {string} + */ + showdown.getFlavor = function () { + 'use strict'; + return setFlavor; + }; + + /** + * Get the options of a specified flavor. Returns undefined if the flavor was not found + * @param {string} name Name of the flavor + * @returns {{}|undefined} + */ + showdown.getFlavorOptions = function (name) { + 'use strict'; + if (flavor.hasOwnProperty(name)) { + return flavor[name]; + } + }; + + /** + * Get the default options + * @static + * @param {boolean} [simple=true] + * @returns {{}} + */ + showdown.getDefaultOptions = function (simple) { + 'use strict'; + return getDefaultOpts(simple); + }; + + /** + * Get or set a subParser + * + * subParser(name) - Get a registered subParser + * subParser(name, func) - Register a subParser + * @static + * @param {string} name + * @param {function} [func] + * @returns {*} + */ + showdown.subParser = function (name, func) { + 'use strict'; + if (showdown.helper.isString(name)) { + if (typeof func !== 'undefined') { + parsers[name] = func; + } else { + if (parsers.hasOwnProperty(name)) { + return parsers[name]; + } else { + throw Error('SubParser named ' + name + ' not registered!'); + } + } + } else { + throw Error('showdown.subParser function first argument must be a string (the name of the subparser)'); + } + }; + + /** + * Gets or registers an extension + * @static + * @param {string} name + * @param {object|function=} ext + * @returns {*} + */ + showdown.extension = function (name, ext) { + 'use strict'; + + if (!showdown.helper.isString(name)) { + throw Error('Extension \'name\' must be a string'); + } + + name = showdown.helper.stdExtName(name); + + // Getter + if (showdown.helper.isUndefined(ext)) { + if (!extensions.hasOwnProperty(name)) { + throw Error('Extension named ' + name + ' is not registered!'); + } + return extensions[name]; + + // Setter + } else { + // Expand extension if it's wrapped in a function + if (typeof ext === 'function') { + ext = ext(); + } + + // Ensure extension is an array + if (!showdown.helper.isArray(ext)) { + ext = [ext]; + } + + var validExtension = validate(ext, name); + + if (validExtension.valid) { + extensions[name] = ext; + } else { + throw Error(validExtension.error); + } + } + }; + + /** + * Gets all extensions registered + * @returns {{}} + */ + showdown.getAllExtensions = function () { + 'use strict'; + return extensions; + }; + + /** + * Remove an extension + * @param {string} name + */ + showdown.removeExtension = function (name) { + 'use strict'; + delete extensions[name]; + }; + + /** + * Removes all extensions + */ + showdown.resetExtensions = function () { + 'use strict'; + extensions = {}; + }; + + /** + * Validate extension + * @param {array} extension + * @param {string} name + * @returns {{valid: boolean, error: string}} + */ + function validate (extension, name) { + 'use strict'; + + var errMsg = (name) ? 'Error in ' + name + ' extension->' : 'Error in unnamed extension', + ret = { + valid: true, + error: '' + }; + + if (!showdown.helper.isArray(extension)) { + extension = [extension]; + } + + for (var i = 0; i < extension.length; ++i) { + var baseMsg = errMsg + ' sub-extension ' + i + ': ', + ext = extension[i]; + if (typeof ext !== 'object') { + ret.valid = false; + ret.error = baseMsg + 'must be an object, but ' + typeof ext + ' given'; + return ret; + } + + if (!showdown.helper.isString(ext.type)) { + ret.valid = false; + ret.error = baseMsg + 'property "type" must be a string, but ' + typeof ext.type + ' given'; + return ret; + } + + var type = ext.type = ext.type.toLowerCase(); + + // normalize extension type + if (type === 'language') { + type = ext.type = 'lang'; + } + + if (type === 'html') { + type = ext.type = 'output'; + } + + if (type !== 'lang' && type !== 'output' && type !== 'listener') { + ret.valid = false; + ret.error = baseMsg + 'type ' + type + ' is not recognized. Valid values: "lang/language", "output/html" or "listener"'; + return ret; + } + + if (type === 'listener') { + if (showdown.helper.isUndefined(ext.listeners)) { + ret.valid = false; + ret.error = baseMsg + '. Extensions of type "listener" must have a property called "listeners"'; + return ret; + } + } else { + if (showdown.helper.isUndefined(ext.filter) && showdown.helper.isUndefined(ext.regex)) { + ret.valid = false; + ret.error = baseMsg + type + ' extensions must define either a "regex" property or a "filter" method'; + return ret; + } + } + + if (ext.listeners) { + if (typeof ext.listeners !== 'object') { + ret.valid = false; + ret.error = baseMsg + '"listeners" property must be an object but ' + typeof ext.listeners + ' given'; + return ret; + } + for (var ln in ext.listeners) { + if (ext.listeners.hasOwnProperty(ln)) { + if (typeof ext.listeners[ln] !== 'function') { + ret.valid = false; + ret.error = baseMsg + '"listeners" property must be an hash of [event name]: [callback]. listeners.' + ln + + ' must be a function but ' + typeof ext.listeners[ln] + ' given'; + return ret; + } + } + } + } + + if (ext.filter) { + if (typeof ext.filter !== 'function') { + ret.valid = false; + ret.error = baseMsg + '"filter" must be a function, but ' + typeof ext.filter + ' given'; + return ret; + } + } else if (ext.regex) { + if (showdown.helper.isString(ext.regex)) { + ext.regex = new RegExp(ext.regex, 'g'); + } + if (!(ext.regex instanceof RegExp)) { + ret.valid = false; + ret.error = baseMsg + '"regex" property must either be a string or a RegExp object, but ' + typeof ext.regex + ' given'; + return ret; + } + if (showdown.helper.isUndefined(ext.replace)) { + ret.valid = false; + ret.error = baseMsg + '"regex" extensions must implement a replace string or function'; + return ret; + } + } + } + return ret; + } + + /** + * Validate extension + * @param {object} ext + * @returns {boolean} + */ + showdown.validateExtension = function (ext) { + 'use strict'; + + var validateExtension = validate(ext, null); + if (!validateExtension.valid) { + console.warn(validateExtension.error); + return false; + } + return true; + }; + + /** + * showdownjs helper functions + */ + + if (!showdown.hasOwnProperty('helper')) { + showdown.helper = {}; + } + + if (typeof this.document === 'undefined' && typeof this.window === 'undefined') { + var jsdom = require('jsdom'); + this.window = new jsdom.JSDOM('', {}).window; // jshint ignore:line + } + showdown.helper.document = this.window.document; + + /** + * Check if var is string + * @static + * @param {string} a + * @returns {boolean} + */ + showdown.helper.isString = function (a) { + 'use strict'; + return (typeof a === 'string' || a instanceof String); + }; + + /** + * Check if var is a function + * @static + * @param {*} a + * @returns {boolean} + */ + showdown.helper.isFunction = function (a) { + 'use strict'; + var getType = {}; + return a && getType.toString.call(a) === '[object Function]'; + }; + + /** + * isArray helper function + * @static + * @param {*} a + * @returns {boolean} + */ + showdown.helper.isArray = function (a) { + 'use strict'; + return Array.isArray(a); + }; + + /** + * Check if value is undefined + * @static + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`. + */ + showdown.helper.isUndefined = function (value) { + 'use strict'; + return typeof value === 'undefined'; + }; + + /** + * ForEach helper function + * Iterates over Arrays and Objects (own properties only) + * @static + * @param {*} obj + * @param {function} callback Accepts 3 params: 1. value, 2. key, 3. the original array/object + */ + showdown.helper.forEach = function (obj, callback) { + 'use strict'; + // check if obj is defined + if (showdown.helper.isUndefined(obj)) { + throw new Error('obj param is required'); + } + + if (showdown.helper.isUndefined(callback)) { + throw new Error('callback param is required'); + } + + if (!showdown.helper.isFunction(callback)) { + throw new Error('callback param must be a function/closure'); + } + + if (typeof obj.forEach === 'function') { + obj.forEach(callback); + } else if (showdown.helper.isArray(obj)) { + for (var i = 0; i < obj.length; i++) { + callback(obj[i], i, obj); + } + } else if (typeof (obj) === 'object') { + for (var prop in obj) { + if (obj.hasOwnProperty(prop)) { + callback(obj[prop], prop, obj); + } + } + } else { + throw new Error('obj does not seem to be an array or an iterable object'); + } + }; + + /** + * Standardidize extension name + * @static + * @param {string} s extension name + * @returns {string} + */ + showdown.helper.stdExtName = function (s) { + 'use strict'; + return s.replace(/[_?*+\/\\.^-]/g, '').replace(/\s/g, '').toLowerCase(); + }; + + function escapeCharactersCallback (wholeMatch, m1) { + 'use strict'; + var charCodeToEscape = m1.charCodeAt(0); + return '¨E' + charCodeToEscape + 'E'; + } + + /** + * Callback used to escape characters when passing through String.replace + * @static + * @param {string} wholeMatch + * @param {string} m1 + * @returns {string} + */ + showdown.helper.escapeCharactersCallback = escapeCharactersCallback; + + /** + * Escape characters in a string + * @static + * @param {string} text + * @param {string} charsToEscape + * @param {boolean} afterBackslash + * @returns {XML|string|void|*} + */ + showdown.helper.escapeCharacters = function (text, charsToEscape, afterBackslash) { + 'use strict'; + // First we have to escape the escape characters so that + // we can build a character class out of them + var regexString = '([' + charsToEscape.replace(/([\[\]\\])/g, '\\$1') + '])'; + + if (afterBackslash) { + regexString = '\\\\' + regexString; + } + + var regex = new RegExp(regexString, 'g'); + text = text.replace(regex, escapeCharactersCallback); + + return text; + }; + + var rgxFindMatchPos = function (str, left, right, flags) { + 'use strict'; + var f = flags || '', + g = f.indexOf('g') > -1, + x = new RegExp(left + '|' + right, 'g' + f.replace(/g/g, '')), + l = new RegExp(left, f.replace(/g/g, '')), + pos = [], + t, s, m, start, end; + + do { + t = 0; + while ((m = x.exec(str))) { + if (l.test(m[0])) { + if (!(t++)) { + s = x.lastIndex; + start = s - m[0].length; + } + } else if (t) { + if (!--t) { + end = m.index + m[0].length; + var obj = { + left: {start: start, end: s}, + match: {start: s, end: m.index}, + right: {start: m.index, end: end}, + wholeMatch: {start: start, end: end} + }; + pos.push(obj); + if (!g) { + return pos; + } + } + } + } + } while (t && (x.lastIndex = s)); + + return pos; + }; + + /** + * matchRecursiveRegExp + * + * (c) 2007 Steven Levithan + * MIT License + * + * Accepts a string to search, a left and right format delimiter + * as regex patterns, and optional regex flags. Returns an array + * of matches, allowing nested instances of left/right delimiters. + * Use the "g" flag to return all matches, otherwise only the + * first is returned. Be careful to ensure that the left and + * right format delimiters produce mutually exclusive matches. + * Backreferences are not supported within the right delimiter + * due to how it is internally combined with the left delimiter. + * When matching strings whose format delimiters are unbalanced + * to the left or right, the output is intentionally as a + * conventional regex library with recursion support would + * produce, e.g. "<" and ">" both produce ["x"] when using + * "<" and ">" as the delimiters (both strings contain a single, + * balanced instance of ""). + * + * examples: + * matchRecursiveRegExp("test", "\\(", "\\)") + * returns: [] + * matchRecursiveRegExp(">>t<>", "<", ">", "g") + * returns: ["t<>", ""] + * matchRecursiveRegExp("
test
", "]*>", "", "gi") + * returns: ["test"] + */ + showdown.helper.matchRecursiveRegExp = function (str, left, right, flags) { + 'use strict'; + + var matchPos = rgxFindMatchPos (str, left, right, flags), + results = []; + + for (var i = 0; i < matchPos.length; ++i) { + results.push([ + str.slice(matchPos[i].wholeMatch.start, matchPos[i].wholeMatch.end), + str.slice(matchPos[i].match.start, matchPos[i].match.end), + str.slice(matchPos[i].left.start, matchPos[i].left.end), + str.slice(matchPos[i].right.start, matchPos[i].right.end) + ]); + } + return results; + }; + + /** + * + * @param {string} str + * @param {string|function} replacement + * @param {string} left + * @param {string} right + * @param {string} flags + * @returns {string} + */ + showdown.helper.replaceRecursiveRegExp = function (str, replacement, left, right, flags) { + 'use strict'; + + if (!showdown.helper.isFunction(replacement)) { + var repStr = replacement; + replacement = function () { + return repStr; + }; + } + + var matchPos = rgxFindMatchPos(str, left, right, flags), + finalStr = str, + lng = matchPos.length; + + if (lng > 0) { + var bits = []; + if (matchPos[0].wholeMatch.start !== 0) { + bits.push(str.slice(0, matchPos[0].wholeMatch.start)); + } + for (var i = 0; i < lng; ++i) { + bits.push( + replacement( + str.slice(matchPos[i].wholeMatch.start, matchPos[i].wholeMatch.end), + str.slice(matchPos[i].match.start, matchPos[i].match.end), + str.slice(matchPos[i].left.start, matchPos[i].left.end), + str.slice(matchPos[i].right.start, matchPos[i].right.end) + ) + ); + if (i < lng - 1) { + bits.push(str.slice(matchPos[i].wholeMatch.end, matchPos[i + 1].wholeMatch.start)); + } + } + if (matchPos[lng - 1].wholeMatch.end < str.length) { + bits.push(str.slice(matchPos[lng - 1].wholeMatch.end)); + } + finalStr = bits.join(''); + } + return finalStr; + }; + + /** + * Returns the index within the passed String object of the first occurrence of the specified regex, + * starting the search at fromIndex. Returns -1 if the value is not found. + * + * @param {string} str string to search + * @param {RegExp} regex Regular expression to search + * @param {int} [fromIndex = 0] Index to start the search + * @returns {Number} + * @throws InvalidArgumentError + */ + showdown.helper.regexIndexOf = function (str, regex, fromIndex) { + 'use strict'; + if (!showdown.helper.isString(str)) { + throw 'InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string'; + } + if (regex instanceof RegExp === false) { + throw 'InvalidArgumentError: second parameter of showdown.helper.regexIndexOf function must be an instance of RegExp'; + } + var indexOf = str.substring(fromIndex || 0).search(regex); + return (indexOf >= 0) ? (indexOf + (fromIndex || 0)) : indexOf; + }; + + /** + * Splits the passed string object at the defined index, and returns an array composed of the two substrings + * @param {string} str string to split + * @param {int} index index to split string at + * @returns {[string,string]} + * @throws InvalidArgumentError + */ + showdown.helper.splitAtIndex = function (str, index) { + 'use strict'; + if (!showdown.helper.isString(str)) { + throw 'InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string'; + } + return [str.substring(0, index), str.substring(index)]; + }; + + /** + * Obfuscate an e-mail address through the use of Character Entities, + * transforming ASCII characters into their equivalent decimal or hex entities. + * + * Since it has a random component, subsequent calls to this function produce different results + * + * @param {string} mail + * @returns {string} + */ + showdown.helper.encodeEmailAddress = function (mail) { + 'use strict'; + var encode = [ + function (ch) { + return '&#' + ch.charCodeAt(0) + ';'; + }, + function (ch) { + return '&#x' + ch.charCodeAt(0).toString(16) + ';'; + }, + function (ch) { + return ch; + } + ]; + + mail = mail.replace(/./g, function (ch) { + if (ch === '@') { + // this *must* be encoded. I insist. + ch = encode[Math.floor(Math.random() * 2)](ch); + } else { + var r = Math.random(); + // roughly 10% raw, 45% hex, 45% dec + ch = ( + r > 0.9 ? encode[2](ch) : r > 0.45 ? encode[1](ch) : encode[0](ch) + ); + } + return ch; + }); + + return mail; + }; + + /** + * + * @param str + * @param targetLength + * @param padString + * @returns {string} + */ + showdown.helper.padEnd = function padEnd (str, targetLength, padString) { + 'use strict'; + /*jshint bitwise: false*/ + // eslint-disable-next-line space-infix-ops + targetLength = targetLength>>0; //floor if number or convert non-number to 0; + /*jshint bitwise: true*/ + padString = String(padString || ' '); + if (str.length > targetLength) { + return String(str); + } else { + targetLength = targetLength - str.length; + if (targetLength > padString.length) { + padString += padString.repeat(targetLength / padString.length); //append to original to ensure we are longer than needed + } + return String(str) + padString.slice(0,targetLength); + } + }; + + /** + * Unescape HTML entities + * @param txt + * @returns {string} + */ + showdown.helper.unescapeHTMLEntities = function (txt) { + 'use strict'; + + return txt + .replace(/"/g, '"') + .replace(/</g, '<') + .replace(/>/g, '>') + .replace(/&/g, '&'); + }; + + showdown.helper._hashHTMLSpan = function (html, globals) { + return '¨C' + (globals.gHtmlSpans.push(html) - 1) + 'C'; + }; + + /** + * Prepends a base URL to relative paths. + * + * @param {string} baseUrl the base URL to prepend to a relative path + * @param {string} url the path to modify, which may be relative + * @returns {string} the full URL + */ + showdown.helper.applyBaseUrl = function (baseUrl, url) { + // Only prepend if given a base URL and the path is not absolute. + if (baseUrl && !this.isAbsolutePath(url)) { + var urlResolve = require('url').resolve; + url = urlResolve(baseUrl, url); + } + + return url; + }; + + /** + * Checks if the given path is absolute. + * + * @param {string} path the path to test for absolution + * @returns {boolean} `true` if the given path is absolute, else `false` + */ + showdown.helper.isAbsolutePath = function (path) { + // Absolute paths begin with '[protocol:]//' or '#' (anchors) + return /(^([a-z]+:)?\/\/)|(^#)/i.test(path); + }; + + /** + * Showdown's Event Object + * @param {string} name Name of the event + * @param {string} text Text + * @param {{}} params optional. params of the event + * @constructor + */ + showdown.helper.Event = function (name, text, params) { + 'use strict'; + + var regexp = params.regexp || null; + var matches = params.matches || {}; + var options = params.options || {}; + var converter = params.converter || null; + var globals = params.globals || {}; + + /** + * Get the name of the event + * @returns {string} + */ + this.getName = function () { + return name; + }; + + this.getEventName = function () { + return name; + }; + + this._stopExecution = false; + + this.parsedText = params.parsedText || null; + + this.getRegexp = function () { + return regexp; + }; + + this.getOptions = function () { + return options; + }; + + this.getConverter = function () { + return converter; + }; + + this.getGlobals = function () { + return globals; + }; + + this.getCapturedText = function () { + return text; + }; + + this.getText = function () { + return text; + }; + + this.setText = function (newText) { + text = newText; + }; + + this.getMatches = function () { + return matches; + }; + + this.setMatches = function (newMatches) { + matches = newMatches; + }; + + this.preventDefault = function (bool) { + this._stopExecution = !bool; + }; + }; + + /** + * POLYFILLS + */ +// use this instead of builtin is undefined for IE8 compatibility + if (typeof (console) === 'undefined') { + console = { + warn: function (msg) { + 'use strict'; + alert(msg); + }, + log: function (msg) { + 'use strict'; + alert(msg); + }, + error: function (msg) { + 'use strict'; + throw msg; + } + }; + } + + /** + * Common regexes. + * We declare some common regexes to improve performance + */ + showdown.helper.regexes = { + asteriskDashTildeAndColon: /([*_:~])/g, + asteriskDashAndTilde: /([*_~])/g + }; + + /** + * EMOJIS LIST + */ + showdown.helper.emojis = { + '+1':'\ud83d\udc4d', + '-1':'\ud83d\udc4e', + '100':'\ud83d\udcaf', + '1234':'\ud83d\udd22', + '1st_place_medal':'\ud83e\udd47', + '2nd_place_medal':'\ud83e\udd48', + '3rd_place_medal':'\ud83e\udd49', + '8ball':'\ud83c\udfb1', + 'a':'\ud83c\udd70\ufe0f', + 'ab':'\ud83c\udd8e', + 'abc':'\ud83d\udd24', + 'abcd':'\ud83d\udd21', + 'accept':'\ud83c\ude51', + 'aerial_tramway':'\ud83d\udea1', + 'airplane':'\u2708\ufe0f', + 'alarm_clock':'\u23f0', + 'alembic':'\u2697\ufe0f', + 'alien':'\ud83d\udc7d', + 'ambulance':'\ud83d\ude91', + 'amphora':'\ud83c\udffa', + 'anchor':'\u2693\ufe0f', + 'angel':'\ud83d\udc7c', + 'anger':'\ud83d\udca2', + 'angry':'\ud83d\ude20', + 'anguished':'\ud83d\ude27', + 'ant':'\ud83d\udc1c', + 'apple':'\ud83c\udf4e', + 'aquarius':'\u2652\ufe0f', + 'aries':'\u2648\ufe0f', + 'arrow_backward':'\u25c0\ufe0f', + 'arrow_double_down':'\u23ec', + 'arrow_double_up':'\u23eb', + 'arrow_down':'\u2b07\ufe0f', + 'arrow_down_small':'\ud83d\udd3d', + 'arrow_forward':'\u25b6\ufe0f', + 'arrow_heading_down':'\u2935\ufe0f', + 'arrow_heading_up':'\u2934\ufe0f', + 'arrow_left':'\u2b05\ufe0f', + 'arrow_lower_left':'\u2199\ufe0f', + 'arrow_lower_right':'\u2198\ufe0f', + 'arrow_right':'\u27a1\ufe0f', + 'arrow_right_hook':'\u21aa\ufe0f', + 'arrow_up':'\u2b06\ufe0f', + 'arrow_up_down':'\u2195\ufe0f', + 'arrow_up_small':'\ud83d\udd3c', + 'arrow_upper_left':'\u2196\ufe0f', + 'arrow_upper_right':'\u2197\ufe0f', + 'arrows_clockwise':'\ud83d\udd03', + 'arrows_counterclockwise':'\ud83d\udd04', + 'art':'\ud83c\udfa8', + 'articulated_lorry':'\ud83d\ude9b', + 'artificial_satellite':'\ud83d\udef0', + 'astonished':'\ud83d\ude32', + 'athletic_shoe':'\ud83d\udc5f', + 'atm':'\ud83c\udfe7', + 'atom_symbol':'\u269b\ufe0f', + 'avocado':'\ud83e\udd51', + 'b':'\ud83c\udd71\ufe0f', + 'baby':'\ud83d\udc76', + 'baby_bottle':'\ud83c\udf7c', + 'baby_chick':'\ud83d\udc24', + 'baby_symbol':'\ud83d\udebc', + 'back':'\ud83d\udd19', + 'bacon':'\ud83e\udd53', + 'badminton':'\ud83c\udff8', + 'baggage_claim':'\ud83d\udec4', + 'baguette_bread':'\ud83e\udd56', + 'balance_scale':'\u2696\ufe0f', + 'balloon':'\ud83c\udf88', + 'ballot_box':'\ud83d\uddf3', + 'ballot_box_with_check':'\u2611\ufe0f', + 'bamboo':'\ud83c\udf8d', + 'banana':'\ud83c\udf4c', + 'bangbang':'\u203c\ufe0f', + 'bank':'\ud83c\udfe6', + 'bar_chart':'\ud83d\udcca', + 'barber':'\ud83d\udc88', + 'baseball':'\u26be\ufe0f', + 'basketball':'\ud83c\udfc0', + 'basketball_man':'\u26f9\ufe0f', + 'basketball_woman':'\u26f9\ufe0f‍\u2640\ufe0f', + 'bat':'\ud83e\udd87', + 'bath':'\ud83d\udec0', + 'bathtub':'\ud83d\udec1', + 'battery':'\ud83d\udd0b', + 'beach_umbrella':'\ud83c\udfd6', + 'bear':'\ud83d\udc3b', + 'bed':'\ud83d\udecf', + 'bee':'\ud83d\udc1d', + 'beer':'\ud83c\udf7a', + 'beers':'\ud83c\udf7b', + 'beetle':'\ud83d\udc1e', + 'beginner':'\ud83d\udd30', + 'bell':'\ud83d\udd14', + 'bellhop_bell':'\ud83d\udece', + 'bento':'\ud83c\udf71', + 'biking_man':'\ud83d\udeb4', + 'bike':'\ud83d\udeb2', + 'biking_woman':'\ud83d\udeb4‍\u2640\ufe0f', + 'bikini':'\ud83d\udc59', + 'biohazard':'\u2623\ufe0f', + 'bird':'\ud83d\udc26', + 'birthday':'\ud83c\udf82', + 'black_circle':'\u26ab\ufe0f', + 'black_flag':'\ud83c\udff4', + 'black_heart':'\ud83d\udda4', + 'black_joker':'\ud83c\udccf', + 'black_large_square':'\u2b1b\ufe0f', + 'black_medium_small_square':'\u25fe\ufe0f', + 'black_medium_square':'\u25fc\ufe0f', + 'black_nib':'\u2712\ufe0f', + 'black_small_square':'\u25aa\ufe0f', + 'black_square_button':'\ud83d\udd32', + 'blonde_man':'\ud83d\udc71', + 'blonde_woman':'\ud83d\udc71‍\u2640\ufe0f', + 'blossom':'\ud83c\udf3c', + 'blowfish':'\ud83d\udc21', + 'blue_book':'\ud83d\udcd8', + 'blue_car':'\ud83d\ude99', + 'blue_heart':'\ud83d\udc99', + 'blush':'\ud83d\ude0a', + 'boar':'\ud83d\udc17', + 'boat':'\u26f5\ufe0f', + 'bomb':'\ud83d\udca3', + 'book':'\ud83d\udcd6', + 'bookmark':'\ud83d\udd16', + 'bookmark_tabs':'\ud83d\udcd1', + 'books':'\ud83d\udcda', + 'boom':'\ud83d\udca5', + 'boot':'\ud83d\udc62', + 'bouquet':'\ud83d\udc90', + 'bowing_man':'\ud83d\ude47', + 'bow_and_arrow':'\ud83c\udff9', + 'bowing_woman':'\ud83d\ude47‍\u2640\ufe0f', + 'bowling':'\ud83c\udfb3', + 'boxing_glove':'\ud83e\udd4a', + 'boy':'\ud83d\udc66', + 'bread':'\ud83c\udf5e', + 'bride_with_veil':'\ud83d\udc70', + 'bridge_at_night':'\ud83c\udf09', + 'briefcase':'\ud83d\udcbc', + 'broken_heart':'\ud83d\udc94', + 'bug':'\ud83d\udc1b', + 'building_construction':'\ud83c\udfd7', + 'bulb':'\ud83d\udca1', + 'bullettrain_front':'\ud83d\ude85', + 'bullettrain_side':'\ud83d\ude84', + 'burrito':'\ud83c\udf2f', + 'bus':'\ud83d\ude8c', + 'business_suit_levitating':'\ud83d\udd74', + 'busstop':'\ud83d\ude8f', + 'bust_in_silhouette':'\ud83d\udc64', + 'busts_in_silhouette':'\ud83d\udc65', + 'butterfly':'\ud83e\udd8b', + 'cactus':'\ud83c\udf35', + 'cake':'\ud83c\udf70', + 'calendar':'\ud83d\udcc6', + 'call_me_hand':'\ud83e\udd19', + 'calling':'\ud83d\udcf2', + 'camel':'\ud83d\udc2b', + 'camera':'\ud83d\udcf7', + 'camera_flash':'\ud83d\udcf8', + 'camping':'\ud83c\udfd5', + 'cancer':'\u264b\ufe0f', + 'candle':'\ud83d\udd6f', + 'candy':'\ud83c\udf6c', + 'canoe':'\ud83d\udef6', + 'capital_abcd':'\ud83d\udd20', + 'capricorn':'\u2651\ufe0f', + 'car':'\ud83d\ude97', + 'card_file_box':'\ud83d\uddc3', + 'card_index':'\ud83d\udcc7', + 'card_index_dividers':'\ud83d\uddc2', + 'carousel_horse':'\ud83c\udfa0', + 'carrot':'\ud83e\udd55', + 'cat':'\ud83d\udc31', + 'cat2':'\ud83d\udc08', + 'cd':'\ud83d\udcbf', + 'chains':'\u26d3', + 'champagne':'\ud83c\udf7e', + 'chart':'\ud83d\udcb9', + 'chart_with_downwards_trend':'\ud83d\udcc9', + 'chart_with_upwards_trend':'\ud83d\udcc8', + 'checkered_flag':'\ud83c\udfc1', + 'cheese':'\ud83e\uddc0', + 'cherries':'\ud83c\udf52', + 'cherry_blossom':'\ud83c\udf38', + 'chestnut':'\ud83c\udf30', + 'chicken':'\ud83d\udc14', + 'children_crossing':'\ud83d\udeb8', + 'chipmunk':'\ud83d\udc3f', + 'chocolate_bar':'\ud83c\udf6b', + 'christmas_tree':'\ud83c\udf84', + 'church':'\u26ea\ufe0f', + 'cinema':'\ud83c\udfa6', + 'circus_tent':'\ud83c\udfaa', + 'city_sunrise':'\ud83c\udf07', + 'city_sunset':'\ud83c\udf06', + 'cityscape':'\ud83c\udfd9', + 'cl':'\ud83c\udd91', + 'clamp':'\ud83d\udddc', + 'clap':'\ud83d\udc4f', + 'clapper':'\ud83c\udfac', + 'classical_building':'\ud83c\udfdb', + 'clinking_glasses':'\ud83e\udd42', + 'clipboard':'\ud83d\udccb', + 'clock1':'\ud83d\udd50', + 'clock10':'\ud83d\udd59', + 'clock1030':'\ud83d\udd65', + 'clock11':'\ud83d\udd5a', + 'clock1130':'\ud83d\udd66', + 'clock12':'\ud83d\udd5b', + 'clock1230':'\ud83d\udd67', + 'clock130':'\ud83d\udd5c', + 'clock2':'\ud83d\udd51', + 'clock230':'\ud83d\udd5d', + 'clock3':'\ud83d\udd52', + 'clock330':'\ud83d\udd5e', + 'clock4':'\ud83d\udd53', + 'clock430':'\ud83d\udd5f', + 'clock5':'\ud83d\udd54', + 'clock530':'\ud83d\udd60', + 'clock6':'\ud83d\udd55', + 'clock630':'\ud83d\udd61', + 'clock7':'\ud83d\udd56', + 'clock730':'\ud83d\udd62', + 'clock8':'\ud83d\udd57', + 'clock830':'\ud83d\udd63', + 'clock9':'\ud83d\udd58', + 'clock930':'\ud83d\udd64', + 'closed_book':'\ud83d\udcd5', + 'closed_lock_with_key':'\ud83d\udd10', + 'closed_umbrella':'\ud83c\udf02', + 'cloud':'\u2601\ufe0f', + 'cloud_with_lightning':'\ud83c\udf29', + 'cloud_with_lightning_and_rain':'\u26c8', + 'cloud_with_rain':'\ud83c\udf27', + 'cloud_with_snow':'\ud83c\udf28', + 'clown_face':'\ud83e\udd21', + 'clubs':'\u2663\ufe0f', + 'cocktail':'\ud83c\udf78', + 'coffee':'\u2615\ufe0f', + 'coffin':'\u26b0\ufe0f', + 'cold_sweat':'\ud83d\ude30', + 'comet':'\u2604\ufe0f', + 'computer':'\ud83d\udcbb', + 'computer_mouse':'\ud83d\uddb1', + 'confetti_ball':'\ud83c\udf8a', + 'confounded':'\ud83d\ude16', + 'confused':'\ud83d\ude15', + 'congratulations':'\u3297\ufe0f', + 'construction':'\ud83d\udea7', + 'construction_worker_man':'\ud83d\udc77', + 'construction_worker_woman':'\ud83d\udc77‍\u2640\ufe0f', + 'control_knobs':'\ud83c\udf9b', + 'convenience_store':'\ud83c\udfea', + 'cookie':'\ud83c\udf6a', + 'cool':'\ud83c\udd92', + 'policeman':'\ud83d\udc6e', + 'copyright':'\u00a9\ufe0f', + 'corn':'\ud83c\udf3d', + 'couch_and_lamp':'\ud83d\udecb', + 'couple':'\ud83d\udc6b', + 'couple_with_heart_woman_man':'\ud83d\udc91', + 'couple_with_heart_man_man':'\ud83d\udc68‍\u2764\ufe0f‍\ud83d\udc68', + 'couple_with_heart_woman_woman':'\ud83d\udc69‍\u2764\ufe0f‍\ud83d\udc69', + 'couplekiss_man_man':'\ud83d\udc68‍\u2764\ufe0f‍\ud83d\udc8b‍\ud83d\udc68', + 'couplekiss_man_woman':'\ud83d\udc8f', + 'couplekiss_woman_woman':'\ud83d\udc69‍\u2764\ufe0f‍\ud83d\udc8b‍\ud83d\udc69', + 'cow':'\ud83d\udc2e', + 'cow2':'\ud83d\udc04', + 'cowboy_hat_face':'\ud83e\udd20', + 'crab':'\ud83e\udd80', + 'crayon':'\ud83d\udd8d', + 'credit_card':'\ud83d\udcb3', + 'crescent_moon':'\ud83c\udf19', + 'cricket':'\ud83c\udfcf', + 'crocodile':'\ud83d\udc0a', + 'croissant':'\ud83e\udd50', + 'crossed_fingers':'\ud83e\udd1e', + 'crossed_flags':'\ud83c\udf8c', + 'crossed_swords':'\u2694\ufe0f', + 'crown':'\ud83d\udc51', + 'cry':'\ud83d\ude22', + 'crying_cat_face':'\ud83d\ude3f', + 'crystal_ball':'\ud83d\udd2e', + 'cucumber':'\ud83e\udd52', + 'cupid':'\ud83d\udc98', + 'curly_loop':'\u27b0', + 'currency_exchange':'\ud83d\udcb1', + 'curry':'\ud83c\udf5b', + 'custard':'\ud83c\udf6e', + 'customs':'\ud83d\udec3', + 'cyclone':'\ud83c\udf00', + 'dagger':'\ud83d\udde1', + 'dancer':'\ud83d\udc83', + 'dancing_women':'\ud83d\udc6f', + 'dancing_men':'\ud83d\udc6f‍\u2642\ufe0f', + 'dango':'\ud83c\udf61', + 'dark_sunglasses':'\ud83d\udd76', + 'dart':'\ud83c\udfaf', + 'dash':'\ud83d\udca8', + 'date':'\ud83d\udcc5', + 'deciduous_tree':'\ud83c\udf33', + 'deer':'\ud83e\udd8c', + 'department_store':'\ud83c\udfec', + 'derelict_house':'\ud83c\udfda', + 'desert':'\ud83c\udfdc', + 'desert_island':'\ud83c\udfdd', + 'desktop_computer':'\ud83d\udda5', + 'male_detective':'\ud83d\udd75\ufe0f', + 'diamond_shape_with_a_dot_inside':'\ud83d\udca0', + 'diamonds':'\u2666\ufe0f', + 'disappointed':'\ud83d\ude1e', + 'disappointed_relieved':'\ud83d\ude25', + 'dizzy':'\ud83d\udcab', + 'dizzy_face':'\ud83d\ude35', + 'do_not_litter':'\ud83d\udeaf', + 'dog':'\ud83d\udc36', + 'dog2':'\ud83d\udc15', + 'dollar':'\ud83d\udcb5', + 'dolls':'\ud83c\udf8e', + 'dolphin':'\ud83d\udc2c', + 'door':'\ud83d\udeaa', + 'doughnut':'\ud83c\udf69', + 'dove':'\ud83d\udd4a', + 'dragon':'\ud83d\udc09', + 'dragon_face':'\ud83d\udc32', + 'dress':'\ud83d\udc57', + 'dromedary_camel':'\ud83d\udc2a', + 'drooling_face':'\ud83e\udd24', + 'droplet':'\ud83d\udca7', + 'drum':'\ud83e\udd41', + 'duck':'\ud83e\udd86', + 'dvd':'\ud83d\udcc0', + 'e-mail':'\ud83d\udce7', + 'eagle':'\ud83e\udd85', + 'ear':'\ud83d\udc42', + 'ear_of_rice':'\ud83c\udf3e', + 'earth_africa':'\ud83c\udf0d', + 'earth_americas':'\ud83c\udf0e', + 'earth_asia':'\ud83c\udf0f', + 'egg':'\ud83e\udd5a', + 'eggplant':'\ud83c\udf46', + 'eight_pointed_black_star':'\u2734\ufe0f', + 'eight_spoked_asterisk':'\u2733\ufe0f', + 'electric_plug':'\ud83d\udd0c', + 'elephant':'\ud83d\udc18', + 'email':'\u2709\ufe0f', + 'end':'\ud83d\udd1a', + 'envelope_with_arrow':'\ud83d\udce9', + 'euro':'\ud83d\udcb6', + 'european_castle':'\ud83c\udff0', + 'european_post_office':'\ud83c\udfe4', + 'evergreen_tree':'\ud83c\udf32', + 'exclamation':'\u2757\ufe0f', + 'expressionless':'\ud83d\ude11', + 'eye':'\ud83d\udc41', + 'eye_speech_bubble':'\ud83d\udc41‍\ud83d\udde8', + 'eyeglasses':'\ud83d\udc53', + 'eyes':'\ud83d\udc40', + 'face_with_head_bandage':'\ud83e\udd15', + 'face_with_thermometer':'\ud83e\udd12', + 'fist_oncoming':'\ud83d\udc4a', + 'factory':'\ud83c\udfed', + 'fallen_leaf':'\ud83c\udf42', + 'family_man_woman_boy':'\ud83d\udc6a', + 'family_man_boy':'\ud83d\udc68‍\ud83d\udc66', + 'family_man_boy_boy':'\ud83d\udc68‍\ud83d\udc66‍\ud83d\udc66', + 'family_man_girl':'\ud83d\udc68‍\ud83d\udc67', + 'family_man_girl_boy':'\ud83d\udc68‍\ud83d\udc67‍\ud83d\udc66', + 'family_man_girl_girl':'\ud83d\udc68‍\ud83d\udc67‍\ud83d\udc67', + 'family_man_man_boy':'\ud83d\udc68‍\ud83d\udc68‍\ud83d\udc66', + 'family_man_man_boy_boy':'\ud83d\udc68‍\ud83d\udc68‍\ud83d\udc66‍\ud83d\udc66', + 'family_man_man_girl':'\ud83d\udc68‍\ud83d\udc68‍\ud83d\udc67', + 'family_man_man_girl_boy':'\ud83d\udc68‍\ud83d\udc68‍\ud83d\udc67‍\ud83d\udc66', + 'family_man_man_girl_girl':'\ud83d\udc68‍\ud83d\udc68‍\ud83d\udc67‍\ud83d\udc67', + 'family_man_woman_boy_boy':'\ud83d\udc68‍\ud83d\udc69‍\ud83d\udc66‍\ud83d\udc66', + 'family_man_woman_girl':'\ud83d\udc68‍\ud83d\udc69‍\ud83d\udc67', + 'family_man_woman_girl_boy':'\ud83d\udc68‍\ud83d\udc69‍\ud83d\udc67‍\ud83d\udc66', + 'family_man_woman_girl_girl':'\ud83d\udc68‍\ud83d\udc69‍\ud83d\udc67‍\ud83d\udc67', + 'family_woman_boy':'\ud83d\udc69‍\ud83d\udc66', + 'family_woman_boy_boy':'\ud83d\udc69‍\ud83d\udc66‍\ud83d\udc66', + 'family_woman_girl':'\ud83d\udc69‍\ud83d\udc67', + 'family_woman_girl_boy':'\ud83d\udc69‍\ud83d\udc67‍\ud83d\udc66', + 'family_woman_girl_girl':'\ud83d\udc69‍\ud83d\udc67‍\ud83d\udc67', + 'family_woman_woman_boy':'\ud83d\udc69‍\ud83d\udc69‍\ud83d\udc66', + 'family_woman_woman_boy_boy':'\ud83d\udc69‍\ud83d\udc69‍\ud83d\udc66‍\ud83d\udc66', + 'family_woman_woman_girl':'\ud83d\udc69‍\ud83d\udc69‍\ud83d\udc67', + 'family_woman_woman_girl_boy':'\ud83d\udc69‍\ud83d\udc69‍\ud83d\udc67‍\ud83d\udc66', + 'family_woman_woman_girl_girl':'\ud83d\udc69‍\ud83d\udc69‍\ud83d\udc67‍\ud83d\udc67', + 'fast_forward':'\u23e9', + 'fax':'\ud83d\udce0', + 'fearful':'\ud83d\ude28', + 'feet':'\ud83d\udc3e', + 'female_detective':'\ud83d\udd75\ufe0f‍\u2640\ufe0f', + 'ferris_wheel':'\ud83c\udfa1', + 'ferry':'\u26f4', + 'field_hockey':'\ud83c\udfd1', + 'file_cabinet':'\ud83d\uddc4', + 'file_folder':'\ud83d\udcc1', + 'film_projector':'\ud83d\udcfd', + 'film_strip':'\ud83c\udf9e', + 'fire':'\ud83d\udd25', + 'fire_engine':'\ud83d\ude92', + 'fireworks':'\ud83c\udf86', + 'first_quarter_moon':'\ud83c\udf13', + 'first_quarter_moon_with_face':'\ud83c\udf1b', + 'fish':'\ud83d\udc1f', + 'fish_cake':'\ud83c\udf65', + 'fishing_pole_and_fish':'\ud83c\udfa3', + 'fist_raised':'\u270a', + 'fist_left':'\ud83e\udd1b', + 'fist_right':'\ud83e\udd1c', + 'flags':'\ud83c\udf8f', + 'flashlight':'\ud83d\udd26', + 'fleur_de_lis':'\u269c\ufe0f', + 'flight_arrival':'\ud83d\udeec', + 'flight_departure':'\ud83d\udeeb', + 'floppy_disk':'\ud83d\udcbe', + 'flower_playing_cards':'\ud83c\udfb4', + 'flushed':'\ud83d\ude33', + 'fog':'\ud83c\udf2b', + 'foggy':'\ud83c\udf01', + 'football':'\ud83c\udfc8', + 'footprints':'\ud83d\udc63', + 'fork_and_knife':'\ud83c\udf74', + 'fountain':'\u26f2\ufe0f', + 'fountain_pen':'\ud83d\udd8b', + 'four_leaf_clover':'\ud83c\udf40', + 'fox_face':'\ud83e\udd8a', + 'framed_picture':'\ud83d\uddbc', + 'free':'\ud83c\udd93', + 'fried_egg':'\ud83c\udf73', + 'fried_shrimp':'\ud83c\udf64', + 'fries':'\ud83c\udf5f', + 'frog':'\ud83d\udc38', + 'frowning':'\ud83d\ude26', + 'frowning_face':'\u2639\ufe0f', + 'frowning_man':'\ud83d\ude4d‍\u2642\ufe0f', + 'frowning_woman':'\ud83d\ude4d', + 'middle_finger':'\ud83d\udd95', + 'fuelpump':'\u26fd\ufe0f', + 'full_moon':'\ud83c\udf15', + 'full_moon_with_face':'\ud83c\udf1d', + 'funeral_urn':'\u26b1\ufe0f', + 'game_die':'\ud83c\udfb2', + 'gear':'\u2699\ufe0f', + 'gem':'\ud83d\udc8e', + 'gemini':'\u264a\ufe0f', + 'ghost':'\ud83d\udc7b', + 'gift':'\ud83c\udf81', + 'gift_heart':'\ud83d\udc9d', + 'girl':'\ud83d\udc67', + 'globe_with_meridians':'\ud83c\udf10', + 'goal_net':'\ud83e\udd45', + 'goat':'\ud83d\udc10', + 'golf':'\u26f3\ufe0f', + 'golfing_man':'\ud83c\udfcc\ufe0f', + 'golfing_woman':'\ud83c\udfcc\ufe0f‍\u2640\ufe0f', + 'gorilla':'\ud83e\udd8d', + 'grapes':'\ud83c\udf47', + 'green_apple':'\ud83c\udf4f', + 'green_book':'\ud83d\udcd7', + 'green_heart':'\ud83d\udc9a', + 'green_salad':'\ud83e\udd57', + 'grey_exclamation':'\u2755', + 'grey_question':'\u2754', + 'grimacing':'\ud83d\ude2c', + 'grin':'\ud83d\ude01', + 'grinning':'\ud83d\ude00', + 'guardsman':'\ud83d\udc82', + 'guardswoman':'\ud83d\udc82‍\u2640\ufe0f', + 'guitar':'\ud83c\udfb8', + 'gun':'\ud83d\udd2b', + 'haircut_woman':'\ud83d\udc87', + 'haircut_man':'\ud83d\udc87‍\u2642\ufe0f', + 'hamburger':'\ud83c\udf54', + 'hammer':'\ud83d\udd28', + 'hammer_and_pick':'\u2692', + 'hammer_and_wrench':'\ud83d\udee0', + 'hamster':'\ud83d\udc39', + 'hand':'\u270b', + 'handbag':'\ud83d\udc5c', + 'handshake':'\ud83e\udd1d', + 'hankey':'\ud83d\udca9', + 'hatched_chick':'\ud83d\udc25', + 'hatching_chick':'\ud83d\udc23', + 'headphones':'\ud83c\udfa7', + 'hear_no_evil':'\ud83d\ude49', + 'heart':'\u2764\ufe0f', + 'heart_decoration':'\ud83d\udc9f', + 'heart_eyes':'\ud83d\ude0d', + 'heart_eyes_cat':'\ud83d\ude3b', + 'heartbeat':'\ud83d\udc93', + 'heartpulse':'\ud83d\udc97', + 'hearts':'\u2665\ufe0f', + 'heavy_check_mark':'\u2714\ufe0f', + 'heavy_division_sign':'\u2797', + 'heavy_dollar_sign':'\ud83d\udcb2', + 'heavy_heart_exclamation':'\u2763\ufe0f', + 'heavy_minus_sign':'\u2796', + 'heavy_multiplication_x':'\u2716\ufe0f', + 'heavy_plus_sign':'\u2795', + 'helicopter':'\ud83d\ude81', + 'herb':'\ud83c\udf3f', + 'hibiscus':'\ud83c\udf3a', + 'high_brightness':'\ud83d\udd06', + 'high_heel':'\ud83d\udc60', + 'hocho':'\ud83d\udd2a', + 'hole':'\ud83d\udd73', + 'honey_pot':'\ud83c\udf6f', + 'horse':'\ud83d\udc34', + 'horse_racing':'\ud83c\udfc7', + 'hospital':'\ud83c\udfe5', + 'hot_pepper':'\ud83c\udf36', + 'hotdog':'\ud83c\udf2d', + 'hotel':'\ud83c\udfe8', + 'hotsprings':'\u2668\ufe0f', + 'hourglass':'\u231b\ufe0f', + 'hourglass_flowing_sand':'\u23f3', + 'house':'\ud83c\udfe0', + 'house_with_garden':'\ud83c\udfe1', + 'houses':'\ud83c\udfd8', + 'hugs':'\ud83e\udd17', + 'hushed':'\ud83d\ude2f', + 'ice_cream':'\ud83c\udf68', + 'ice_hockey':'\ud83c\udfd2', + 'ice_skate':'\u26f8', + 'icecream':'\ud83c\udf66', + 'id':'\ud83c\udd94', + 'ideograph_advantage':'\ud83c\ude50', + 'imp':'\ud83d\udc7f', + 'inbox_tray':'\ud83d\udce5', + 'incoming_envelope':'\ud83d\udce8', + 'tipping_hand_woman':'\ud83d\udc81', + 'information_source':'\u2139\ufe0f', + 'innocent':'\ud83d\ude07', + 'interrobang':'\u2049\ufe0f', + 'iphone':'\ud83d\udcf1', + 'izakaya_lantern':'\ud83c\udfee', + 'jack_o_lantern':'\ud83c\udf83', + 'japan':'\ud83d\uddfe', + 'japanese_castle':'\ud83c\udfef', + 'japanese_goblin':'\ud83d\udc7a', + 'japanese_ogre':'\ud83d\udc79', + 'jeans':'\ud83d\udc56', + 'joy':'\ud83d\ude02', + 'joy_cat':'\ud83d\ude39', + 'joystick':'\ud83d\udd79', + 'kaaba':'\ud83d\udd4b', + 'key':'\ud83d\udd11', + 'keyboard':'\u2328\ufe0f', + 'keycap_ten':'\ud83d\udd1f', + 'kick_scooter':'\ud83d\udef4', + 'kimono':'\ud83d\udc58', + 'kiss':'\ud83d\udc8b', + 'kissing':'\ud83d\ude17', + 'kissing_cat':'\ud83d\ude3d', + 'kissing_closed_eyes':'\ud83d\ude1a', + 'kissing_heart':'\ud83d\ude18', + 'kissing_smiling_eyes':'\ud83d\ude19', + 'kiwi_fruit':'\ud83e\udd5d', + 'koala':'\ud83d\udc28', + 'koko':'\ud83c\ude01', + 'label':'\ud83c\udff7', + 'large_blue_circle':'\ud83d\udd35', + 'large_blue_diamond':'\ud83d\udd37', + 'large_orange_diamond':'\ud83d\udd36', + 'last_quarter_moon':'\ud83c\udf17', + 'last_quarter_moon_with_face':'\ud83c\udf1c', + 'latin_cross':'\u271d\ufe0f', + 'laughing':'\ud83d\ude06', + 'leaves':'\ud83c\udf43', + 'ledger':'\ud83d\udcd2', + 'left_luggage':'\ud83d\udec5', + 'left_right_arrow':'\u2194\ufe0f', + 'leftwards_arrow_with_hook':'\u21a9\ufe0f', + 'lemon':'\ud83c\udf4b', + 'leo':'\u264c\ufe0f', + 'leopard':'\ud83d\udc06', + 'level_slider':'\ud83c\udf9a', + 'libra':'\u264e\ufe0f', + 'light_rail':'\ud83d\ude88', + 'link':'\ud83d\udd17', + 'lion':'\ud83e\udd81', + 'lips':'\ud83d\udc44', + 'lipstick':'\ud83d\udc84', + 'lizard':'\ud83e\udd8e', + 'lock':'\ud83d\udd12', + 'lock_with_ink_pen':'\ud83d\udd0f', + 'lollipop':'\ud83c\udf6d', + 'loop':'\u27bf', + 'loud_sound':'\ud83d\udd0a', + 'loudspeaker':'\ud83d\udce2', + 'love_hotel':'\ud83c\udfe9', + 'love_letter':'\ud83d\udc8c', + 'low_brightness':'\ud83d\udd05', + 'lying_face':'\ud83e\udd25', + 'm':'\u24c2\ufe0f', + 'mag':'\ud83d\udd0d', + 'mag_right':'\ud83d\udd0e', + 'mahjong':'\ud83c\udc04\ufe0f', + 'mailbox':'\ud83d\udceb', + 'mailbox_closed':'\ud83d\udcea', + 'mailbox_with_mail':'\ud83d\udcec', + 'mailbox_with_no_mail':'\ud83d\udced', + 'man':'\ud83d\udc68', + 'man_artist':'\ud83d\udc68‍\ud83c\udfa8', + 'man_astronaut':'\ud83d\udc68‍\ud83d\ude80', + 'man_cartwheeling':'\ud83e\udd38‍\u2642\ufe0f', + 'man_cook':'\ud83d\udc68‍\ud83c\udf73', + 'man_dancing':'\ud83d\udd7a', + 'man_facepalming':'\ud83e\udd26‍\u2642\ufe0f', + 'man_factory_worker':'\ud83d\udc68‍\ud83c\udfed', + 'man_farmer':'\ud83d\udc68‍\ud83c\udf3e', + 'man_firefighter':'\ud83d\udc68‍\ud83d\ude92', + 'man_health_worker':'\ud83d\udc68‍\u2695\ufe0f', + 'man_in_tuxedo':'\ud83e\udd35', + 'man_judge':'\ud83d\udc68‍\u2696\ufe0f', + 'man_juggling':'\ud83e\udd39‍\u2642\ufe0f', + 'man_mechanic':'\ud83d\udc68‍\ud83d\udd27', + 'man_office_worker':'\ud83d\udc68‍\ud83d\udcbc', + 'man_pilot':'\ud83d\udc68‍\u2708\ufe0f', + 'man_playing_handball':'\ud83e\udd3e‍\u2642\ufe0f', + 'man_playing_water_polo':'\ud83e\udd3d‍\u2642\ufe0f', + 'man_scientist':'\ud83d\udc68‍\ud83d\udd2c', + 'man_shrugging':'\ud83e\udd37‍\u2642\ufe0f', + 'man_singer':'\ud83d\udc68‍\ud83c\udfa4', + 'man_student':'\ud83d\udc68‍\ud83c\udf93', + 'man_teacher':'\ud83d\udc68‍\ud83c\udfeb', + 'man_technologist':'\ud83d\udc68‍\ud83d\udcbb', + 'man_with_gua_pi_mao':'\ud83d\udc72', + 'man_with_turban':'\ud83d\udc73', + 'tangerine':'\ud83c\udf4a', + 'mans_shoe':'\ud83d\udc5e', + 'mantelpiece_clock':'\ud83d\udd70', + 'maple_leaf':'\ud83c\udf41', + 'martial_arts_uniform':'\ud83e\udd4b', + 'mask':'\ud83d\ude37', + 'massage_woman':'\ud83d\udc86', + 'massage_man':'\ud83d\udc86‍\u2642\ufe0f', + 'meat_on_bone':'\ud83c\udf56', + 'medal_military':'\ud83c\udf96', + 'medal_sports':'\ud83c\udfc5', + 'mega':'\ud83d\udce3', + 'melon':'\ud83c\udf48', + 'memo':'\ud83d\udcdd', + 'men_wrestling':'\ud83e\udd3c‍\u2642\ufe0f', + 'menorah':'\ud83d\udd4e', + 'mens':'\ud83d\udeb9', + 'metal':'\ud83e\udd18', + 'metro':'\ud83d\ude87', + 'microphone':'\ud83c\udfa4', + 'microscope':'\ud83d\udd2c', + 'milk_glass':'\ud83e\udd5b', + 'milky_way':'\ud83c\udf0c', + 'minibus':'\ud83d\ude90', + 'minidisc':'\ud83d\udcbd', + 'mobile_phone_off':'\ud83d\udcf4', + 'money_mouth_face':'\ud83e\udd11', + 'money_with_wings':'\ud83d\udcb8', + 'moneybag':'\ud83d\udcb0', + 'monkey':'\ud83d\udc12', + 'monkey_face':'\ud83d\udc35', + 'monorail':'\ud83d\ude9d', + 'moon':'\ud83c\udf14', + 'mortar_board':'\ud83c\udf93', + 'mosque':'\ud83d\udd4c', + 'motor_boat':'\ud83d\udee5', + 'motor_scooter':'\ud83d\udef5', + 'motorcycle':'\ud83c\udfcd', + 'motorway':'\ud83d\udee3', + 'mount_fuji':'\ud83d\uddfb', + 'mountain':'\u26f0', + 'mountain_biking_man':'\ud83d\udeb5', + 'mountain_biking_woman':'\ud83d\udeb5‍\u2640\ufe0f', + 'mountain_cableway':'\ud83d\udea0', + 'mountain_railway':'\ud83d\ude9e', + 'mountain_snow':'\ud83c\udfd4', + 'mouse':'\ud83d\udc2d', + 'mouse2':'\ud83d\udc01', + 'movie_camera':'\ud83c\udfa5', + 'moyai':'\ud83d\uddff', + 'mrs_claus':'\ud83e\udd36', + 'muscle':'\ud83d\udcaa', + 'mushroom':'\ud83c\udf44', + 'musical_keyboard':'\ud83c\udfb9', + 'musical_note':'\ud83c\udfb5', + 'musical_score':'\ud83c\udfbc', + 'mute':'\ud83d\udd07', + 'nail_care':'\ud83d\udc85', + 'name_badge':'\ud83d\udcdb', + 'national_park':'\ud83c\udfde', + 'nauseated_face':'\ud83e\udd22', + 'necktie':'\ud83d\udc54', + 'negative_squared_cross_mark':'\u274e', + 'nerd_face':'\ud83e\udd13', + 'neutral_face':'\ud83d\ude10', + 'new':'\ud83c\udd95', + 'new_moon':'\ud83c\udf11', + 'new_moon_with_face':'\ud83c\udf1a', + 'newspaper':'\ud83d\udcf0', + 'newspaper_roll':'\ud83d\uddde', + 'next_track_button':'\u23ed', + 'ng':'\ud83c\udd96', + 'no_good_man':'\ud83d\ude45‍\u2642\ufe0f', + 'no_good_woman':'\ud83d\ude45', + 'night_with_stars':'\ud83c\udf03', + 'no_bell':'\ud83d\udd15', + 'no_bicycles':'\ud83d\udeb3', + 'no_entry':'\u26d4\ufe0f', + 'no_entry_sign':'\ud83d\udeab', + 'no_mobile_phones':'\ud83d\udcf5', + 'no_mouth':'\ud83d\ude36', + 'no_pedestrians':'\ud83d\udeb7', + 'no_smoking':'\ud83d\udead', + 'non-potable_water':'\ud83d\udeb1', + 'nose':'\ud83d\udc43', + 'notebook':'\ud83d\udcd3', + 'notebook_with_decorative_cover':'\ud83d\udcd4', + 'notes':'\ud83c\udfb6', + 'nut_and_bolt':'\ud83d\udd29', + 'o':'\u2b55\ufe0f', + 'o2':'\ud83c\udd7e\ufe0f', + 'ocean':'\ud83c\udf0a', + 'octopus':'\ud83d\udc19', + 'oden':'\ud83c\udf62', + 'office':'\ud83c\udfe2', + 'oil_drum':'\ud83d\udee2', + 'ok':'\ud83c\udd97', + 'ok_hand':'\ud83d\udc4c', + 'ok_man':'\ud83d\ude46‍\u2642\ufe0f', + 'ok_woman':'\ud83d\ude46', + 'old_key':'\ud83d\udddd', + 'older_man':'\ud83d\udc74', + 'older_woman':'\ud83d\udc75', + 'om':'\ud83d\udd49', + 'on':'\ud83d\udd1b', + 'oncoming_automobile':'\ud83d\ude98', + 'oncoming_bus':'\ud83d\ude8d', + 'oncoming_police_car':'\ud83d\ude94', + 'oncoming_taxi':'\ud83d\ude96', + 'open_file_folder':'\ud83d\udcc2', + 'open_hands':'\ud83d\udc50', + 'open_mouth':'\ud83d\ude2e', + 'open_umbrella':'\u2602\ufe0f', + 'ophiuchus':'\u26ce', + 'orange_book':'\ud83d\udcd9', + 'orthodox_cross':'\u2626\ufe0f', + 'outbox_tray':'\ud83d\udce4', + 'owl':'\ud83e\udd89', + 'ox':'\ud83d\udc02', + 'package':'\ud83d\udce6', + 'page_facing_up':'\ud83d\udcc4', + 'page_with_curl':'\ud83d\udcc3', + 'pager':'\ud83d\udcdf', + 'paintbrush':'\ud83d\udd8c', + 'palm_tree':'\ud83c\udf34', + 'pancakes':'\ud83e\udd5e', + 'panda_face':'\ud83d\udc3c', + 'paperclip':'\ud83d\udcce', + 'paperclips':'\ud83d\udd87', + 'parasol_on_ground':'\u26f1', + 'parking':'\ud83c\udd7f\ufe0f', + 'part_alternation_mark':'\u303d\ufe0f', + 'partly_sunny':'\u26c5\ufe0f', + 'passenger_ship':'\ud83d\udef3', + 'passport_control':'\ud83d\udec2', + 'pause_button':'\u23f8', + 'peace_symbol':'\u262e\ufe0f', + 'peach':'\ud83c\udf51', + 'peanuts':'\ud83e\udd5c', + 'pear':'\ud83c\udf50', + 'pen':'\ud83d\udd8a', + 'pencil2':'\u270f\ufe0f', + 'penguin':'\ud83d\udc27', + 'pensive':'\ud83d\ude14', + 'performing_arts':'\ud83c\udfad', + 'persevere':'\ud83d\ude23', + 'person_fencing':'\ud83e\udd3a', + 'pouting_woman':'\ud83d\ude4e', + 'phone':'\u260e\ufe0f', + 'pick':'\u26cf', + 'pig':'\ud83d\udc37', + 'pig2':'\ud83d\udc16', + 'pig_nose':'\ud83d\udc3d', + 'pill':'\ud83d\udc8a', + 'pineapple':'\ud83c\udf4d', + 'ping_pong':'\ud83c\udfd3', + 'pisces':'\u2653\ufe0f', + 'pizza':'\ud83c\udf55', + 'place_of_worship':'\ud83d\uded0', + 'plate_with_cutlery':'\ud83c\udf7d', + 'play_or_pause_button':'\u23ef', + 'point_down':'\ud83d\udc47', + 'point_left':'\ud83d\udc48', + 'point_right':'\ud83d\udc49', + 'point_up':'\u261d\ufe0f', + 'point_up_2':'\ud83d\udc46', + 'police_car':'\ud83d\ude93', + 'policewoman':'\ud83d\udc6e‍\u2640\ufe0f', + 'poodle':'\ud83d\udc29', + 'popcorn':'\ud83c\udf7f', + 'post_office':'\ud83c\udfe3', + 'postal_horn':'\ud83d\udcef', + 'postbox':'\ud83d\udcee', + 'potable_water':'\ud83d\udeb0', + 'potato':'\ud83e\udd54', + 'pouch':'\ud83d\udc5d', + 'poultry_leg':'\ud83c\udf57', + 'pound':'\ud83d\udcb7', + 'rage':'\ud83d\ude21', + 'pouting_cat':'\ud83d\ude3e', + 'pouting_man':'\ud83d\ude4e‍\u2642\ufe0f', + 'pray':'\ud83d\ude4f', + 'prayer_beads':'\ud83d\udcff', + 'pregnant_woman':'\ud83e\udd30', + 'previous_track_button':'\u23ee', + 'prince':'\ud83e\udd34', + 'princess':'\ud83d\udc78', + 'printer':'\ud83d\udda8', + 'purple_heart':'\ud83d\udc9c', + 'purse':'\ud83d\udc5b', + 'pushpin':'\ud83d\udccc', + 'put_litter_in_its_place':'\ud83d\udeae', + 'question':'\u2753', + 'rabbit':'\ud83d\udc30', + 'rabbit2':'\ud83d\udc07', + 'racehorse':'\ud83d\udc0e', + 'racing_car':'\ud83c\udfce', + 'radio':'\ud83d\udcfb', + 'radio_button':'\ud83d\udd18', + 'radioactive':'\u2622\ufe0f', + 'railway_car':'\ud83d\ude83', + 'railway_track':'\ud83d\udee4', + 'rainbow':'\ud83c\udf08', + 'rainbow_flag':'\ud83c\udff3\ufe0f‍\ud83c\udf08', + 'raised_back_of_hand':'\ud83e\udd1a', + 'raised_hand_with_fingers_splayed':'\ud83d\udd90', + 'raised_hands':'\ud83d\ude4c', + 'raising_hand_woman':'\ud83d\ude4b', + 'raising_hand_man':'\ud83d\ude4b‍\u2642\ufe0f', + 'ram':'\ud83d\udc0f', + 'ramen':'\ud83c\udf5c', + 'rat':'\ud83d\udc00', + 'record_button':'\u23fa', + 'recycle':'\u267b\ufe0f', + 'red_circle':'\ud83d\udd34', + 'registered':'\u00ae\ufe0f', + 'relaxed':'\u263a\ufe0f', + 'relieved':'\ud83d\ude0c', + 'reminder_ribbon':'\ud83c\udf97', + 'repeat':'\ud83d\udd01', + 'repeat_one':'\ud83d\udd02', + 'rescue_worker_helmet':'\u26d1', + 'restroom':'\ud83d\udebb', + 'revolving_hearts':'\ud83d\udc9e', + 'rewind':'\u23ea', + 'rhinoceros':'\ud83e\udd8f', + 'ribbon':'\ud83c\udf80', + 'rice':'\ud83c\udf5a', + 'rice_ball':'\ud83c\udf59', + 'rice_cracker':'\ud83c\udf58', + 'rice_scene':'\ud83c\udf91', + 'right_anger_bubble':'\ud83d\uddef', + 'ring':'\ud83d\udc8d', + 'robot':'\ud83e\udd16', + 'rocket':'\ud83d\ude80', + 'rofl':'\ud83e\udd23', + 'roll_eyes':'\ud83d\ude44', + 'roller_coaster':'\ud83c\udfa2', + 'rooster':'\ud83d\udc13', + 'rose':'\ud83c\udf39', + 'rosette':'\ud83c\udff5', + 'rotating_light':'\ud83d\udea8', + 'round_pushpin':'\ud83d\udccd', + 'rowing_man':'\ud83d\udea3', + 'rowing_woman':'\ud83d\udea3‍\u2640\ufe0f', + 'rugby_football':'\ud83c\udfc9', + 'running_man':'\ud83c\udfc3', + 'running_shirt_with_sash':'\ud83c\udfbd', + 'running_woman':'\ud83c\udfc3‍\u2640\ufe0f', + 'sa':'\ud83c\ude02\ufe0f', + 'sagittarius':'\u2650\ufe0f', + 'sake':'\ud83c\udf76', + 'sandal':'\ud83d\udc61', + 'santa':'\ud83c\udf85', + 'satellite':'\ud83d\udce1', + 'saxophone':'\ud83c\udfb7', + 'school':'\ud83c\udfeb', + 'school_satchel':'\ud83c\udf92', + 'scissors':'\u2702\ufe0f', + 'scorpion':'\ud83e\udd82', + 'scorpius':'\u264f\ufe0f', + 'scream':'\ud83d\ude31', + 'scream_cat':'\ud83d\ude40', + 'scroll':'\ud83d\udcdc', + 'seat':'\ud83d\udcba', + 'secret':'\u3299\ufe0f', + 'see_no_evil':'\ud83d\ude48', + 'seedling':'\ud83c\udf31', + 'selfie':'\ud83e\udd33', + 'shallow_pan_of_food':'\ud83e\udd58', + 'shamrock':'\u2618\ufe0f', + 'shark':'\ud83e\udd88', + 'shaved_ice':'\ud83c\udf67', + 'sheep':'\ud83d\udc11', + 'shell':'\ud83d\udc1a', + 'shield':'\ud83d\udee1', + 'shinto_shrine':'\u26e9', + 'ship':'\ud83d\udea2', + 'shirt':'\ud83d\udc55', + 'shopping':'\ud83d\udecd', + 'shopping_cart':'\ud83d\uded2', + 'shower':'\ud83d\udebf', + 'shrimp':'\ud83e\udd90', + 'signal_strength':'\ud83d\udcf6', + 'six_pointed_star':'\ud83d\udd2f', + 'ski':'\ud83c\udfbf', + 'skier':'\u26f7', + 'skull':'\ud83d\udc80', + 'skull_and_crossbones':'\u2620\ufe0f', + 'sleeping':'\ud83d\ude34', + 'sleeping_bed':'\ud83d\udecc', + 'sleepy':'\ud83d\ude2a', + 'slightly_frowning_face':'\ud83d\ude41', + 'slightly_smiling_face':'\ud83d\ude42', + 'slot_machine':'\ud83c\udfb0', + 'small_airplane':'\ud83d\udee9', + 'small_blue_diamond':'\ud83d\udd39', + 'small_orange_diamond':'\ud83d\udd38', + 'small_red_triangle':'\ud83d\udd3a', + 'small_red_triangle_down':'\ud83d\udd3b', + 'smile':'\ud83d\ude04', + 'smile_cat':'\ud83d\ude38', + 'smiley':'\ud83d\ude03', + 'smiley_cat':'\ud83d\ude3a', + 'smiling_imp':'\ud83d\ude08', + 'smirk':'\ud83d\ude0f', + 'smirk_cat':'\ud83d\ude3c', + 'smoking':'\ud83d\udeac', + 'snail':'\ud83d\udc0c', + 'snake':'\ud83d\udc0d', + 'sneezing_face':'\ud83e\udd27', + 'snowboarder':'\ud83c\udfc2', + 'snowflake':'\u2744\ufe0f', + 'snowman':'\u26c4\ufe0f', + 'snowman_with_snow':'\u2603\ufe0f', + 'sob':'\ud83d\ude2d', + 'soccer':'\u26bd\ufe0f', + 'soon':'\ud83d\udd1c', + 'sos':'\ud83c\udd98', + 'sound':'\ud83d\udd09', + 'space_invader':'\ud83d\udc7e', + 'spades':'\u2660\ufe0f', + 'spaghetti':'\ud83c\udf5d', + 'sparkle':'\u2747\ufe0f', + 'sparkler':'\ud83c\udf87', + 'sparkles':'\u2728', + 'sparkling_heart':'\ud83d\udc96', + 'speak_no_evil':'\ud83d\ude4a', + 'speaker':'\ud83d\udd08', + 'speaking_head':'\ud83d\udde3', + 'speech_balloon':'\ud83d\udcac', + 'speedboat':'\ud83d\udea4', + 'spider':'\ud83d\udd77', + 'spider_web':'\ud83d\udd78', + 'spiral_calendar':'\ud83d\uddd3', + 'spiral_notepad':'\ud83d\uddd2', + 'spoon':'\ud83e\udd44', + 'squid':'\ud83e\udd91', + 'stadium':'\ud83c\udfdf', + 'star':'\u2b50\ufe0f', + 'star2':'\ud83c\udf1f', + 'star_and_crescent':'\u262a\ufe0f', + 'star_of_david':'\u2721\ufe0f', + 'stars':'\ud83c\udf20', + 'station':'\ud83d\ude89', + 'statue_of_liberty':'\ud83d\uddfd', + 'steam_locomotive':'\ud83d\ude82', + 'stew':'\ud83c\udf72', + 'stop_button':'\u23f9', + 'stop_sign':'\ud83d\uded1', + 'stopwatch':'\u23f1', + 'straight_ruler':'\ud83d\udccf', + 'strawberry':'\ud83c\udf53', + 'stuck_out_tongue':'\ud83d\ude1b', + 'stuck_out_tongue_closed_eyes':'\ud83d\ude1d', + 'stuck_out_tongue_winking_eye':'\ud83d\ude1c', + 'studio_microphone':'\ud83c\udf99', + 'stuffed_flatbread':'\ud83e\udd59', + 'sun_behind_large_cloud':'\ud83c\udf25', + 'sun_behind_rain_cloud':'\ud83c\udf26', + 'sun_behind_small_cloud':'\ud83c\udf24', + 'sun_with_face':'\ud83c\udf1e', + 'sunflower':'\ud83c\udf3b', + 'sunglasses':'\ud83d\ude0e', + 'sunny':'\u2600\ufe0f', + 'sunrise':'\ud83c\udf05', + 'sunrise_over_mountains':'\ud83c\udf04', + 'surfing_man':'\ud83c\udfc4', + 'surfing_woman':'\ud83c\udfc4‍\u2640\ufe0f', + 'sushi':'\ud83c\udf63', + 'suspension_railway':'\ud83d\ude9f', + 'sweat':'\ud83d\ude13', + 'sweat_drops':'\ud83d\udca6', + 'sweat_smile':'\ud83d\ude05', + 'sweet_potato':'\ud83c\udf60', + 'swimming_man':'\ud83c\udfca', + 'swimming_woman':'\ud83c\udfca‍\u2640\ufe0f', + 'symbols':'\ud83d\udd23', + 'synagogue':'\ud83d\udd4d', + 'syringe':'\ud83d\udc89', + 'taco':'\ud83c\udf2e', + 'tada':'\ud83c\udf89', + 'tanabata_tree':'\ud83c\udf8b', + 'taurus':'\u2649\ufe0f', + 'taxi':'\ud83d\ude95', + 'tea':'\ud83c\udf75', + 'telephone_receiver':'\ud83d\udcde', + 'telescope':'\ud83d\udd2d', + 'tennis':'\ud83c\udfbe', + 'tent':'\u26fa\ufe0f', + 'thermometer':'\ud83c\udf21', + 'thinking':'\ud83e\udd14', + 'thought_balloon':'\ud83d\udcad', + 'ticket':'\ud83c\udfab', + 'tickets':'\ud83c\udf9f', + 'tiger':'\ud83d\udc2f', + 'tiger2':'\ud83d\udc05', + 'timer_clock':'\u23f2', + 'tipping_hand_man':'\ud83d\udc81‍\u2642\ufe0f', + 'tired_face':'\ud83d\ude2b', + 'tm':'\u2122\ufe0f', + 'toilet':'\ud83d\udebd', + 'tokyo_tower':'\ud83d\uddfc', + 'tomato':'\ud83c\udf45', + 'tongue':'\ud83d\udc45', + 'top':'\ud83d\udd1d', + 'tophat':'\ud83c\udfa9', + 'tornado':'\ud83c\udf2a', + 'trackball':'\ud83d\uddb2', + 'tractor':'\ud83d\ude9c', + 'traffic_light':'\ud83d\udea5', + 'train':'\ud83d\ude8b', + 'train2':'\ud83d\ude86', + 'tram':'\ud83d\ude8a', + 'triangular_flag_on_post':'\ud83d\udea9', + 'triangular_ruler':'\ud83d\udcd0', + 'trident':'\ud83d\udd31', + 'triumph':'\ud83d\ude24', + 'trolleybus':'\ud83d\ude8e', + 'trophy':'\ud83c\udfc6', + 'tropical_drink':'\ud83c\udf79', + 'tropical_fish':'\ud83d\udc20', + 'truck':'\ud83d\ude9a', + 'trumpet':'\ud83c\udfba', + 'tulip':'\ud83c\udf37', + 'tumbler_glass':'\ud83e\udd43', + 'turkey':'\ud83e\udd83', + 'turtle':'\ud83d\udc22', + 'tv':'\ud83d\udcfa', + 'twisted_rightwards_arrows':'\ud83d\udd00', + 'two_hearts':'\ud83d\udc95', + 'two_men_holding_hands':'\ud83d\udc6c', + 'two_women_holding_hands':'\ud83d\udc6d', + 'u5272':'\ud83c\ude39', + 'u5408':'\ud83c\ude34', + 'u55b6':'\ud83c\ude3a', + 'u6307':'\ud83c\ude2f\ufe0f', + 'u6708':'\ud83c\ude37\ufe0f', + 'u6709':'\ud83c\ude36', + 'u6e80':'\ud83c\ude35', + 'u7121':'\ud83c\ude1a\ufe0f', + 'u7533':'\ud83c\ude38', + 'u7981':'\ud83c\ude32', + 'u7a7a':'\ud83c\ude33', + 'umbrella':'\u2614\ufe0f', + 'unamused':'\ud83d\ude12', + 'underage':'\ud83d\udd1e', + 'unicorn':'\ud83e\udd84', + 'unlock':'\ud83d\udd13', + 'up':'\ud83c\udd99', + 'upside_down_face':'\ud83d\ude43', + 'v':'\u270c\ufe0f', + 'vertical_traffic_light':'\ud83d\udea6', + 'vhs':'\ud83d\udcfc', + 'vibration_mode':'\ud83d\udcf3', + 'video_camera':'\ud83d\udcf9', + 'video_game':'\ud83c\udfae', + 'violin':'\ud83c\udfbb', + 'virgo':'\u264d\ufe0f', + 'volcano':'\ud83c\udf0b', + 'volleyball':'\ud83c\udfd0', + 'vs':'\ud83c\udd9a', + 'vulcan_salute':'\ud83d\udd96', + 'walking_man':'\ud83d\udeb6', + 'walking_woman':'\ud83d\udeb6‍\u2640\ufe0f', + 'waning_crescent_moon':'\ud83c\udf18', + 'waning_gibbous_moon':'\ud83c\udf16', + 'warning':'\u26a0\ufe0f', + 'wastebasket':'\ud83d\uddd1', + 'watch':'\u231a\ufe0f', + 'water_buffalo':'\ud83d\udc03', + 'watermelon':'\ud83c\udf49', + 'wave':'\ud83d\udc4b', + 'wavy_dash':'\u3030\ufe0f', + 'waxing_crescent_moon':'\ud83c\udf12', + 'wc':'\ud83d\udebe', + 'weary':'\ud83d\ude29', + 'wedding':'\ud83d\udc92', + 'weight_lifting_man':'\ud83c\udfcb\ufe0f', + 'weight_lifting_woman':'\ud83c\udfcb\ufe0f‍\u2640\ufe0f', + 'whale':'\ud83d\udc33', + 'whale2':'\ud83d\udc0b', + 'wheel_of_dharma':'\u2638\ufe0f', + 'wheelchair':'\u267f\ufe0f', + 'white_check_mark':'\u2705', + 'white_circle':'\u26aa\ufe0f', + 'white_flag':'\ud83c\udff3\ufe0f', + 'white_flower':'\ud83d\udcae', + 'white_large_square':'\u2b1c\ufe0f', + 'white_medium_small_square':'\u25fd\ufe0f', + 'white_medium_square':'\u25fb\ufe0f', + 'white_small_square':'\u25ab\ufe0f', + 'white_square_button':'\ud83d\udd33', + 'wilted_flower':'\ud83e\udd40', + 'wind_chime':'\ud83c\udf90', + 'wind_face':'\ud83c\udf2c', + 'wine_glass':'\ud83c\udf77', + 'wink':'\ud83d\ude09', + 'wolf':'\ud83d\udc3a', + 'woman':'\ud83d\udc69', + 'woman_artist':'\ud83d\udc69‍\ud83c\udfa8', + 'woman_astronaut':'\ud83d\udc69‍\ud83d\ude80', + 'woman_cartwheeling':'\ud83e\udd38‍\u2640\ufe0f', + 'woman_cook':'\ud83d\udc69‍\ud83c\udf73', + 'woman_facepalming':'\ud83e\udd26‍\u2640\ufe0f', + 'woman_factory_worker':'\ud83d\udc69‍\ud83c\udfed', + 'woman_farmer':'\ud83d\udc69‍\ud83c\udf3e', + 'woman_firefighter':'\ud83d\udc69‍\ud83d\ude92', + 'woman_health_worker':'\ud83d\udc69‍\u2695\ufe0f', + 'woman_judge':'\ud83d\udc69‍\u2696\ufe0f', + 'woman_juggling':'\ud83e\udd39‍\u2640\ufe0f', + 'woman_mechanic':'\ud83d\udc69‍\ud83d\udd27', + 'woman_office_worker':'\ud83d\udc69‍\ud83d\udcbc', + 'woman_pilot':'\ud83d\udc69‍\u2708\ufe0f', + 'woman_playing_handball':'\ud83e\udd3e‍\u2640\ufe0f', + 'woman_playing_water_polo':'\ud83e\udd3d‍\u2640\ufe0f', + 'woman_scientist':'\ud83d\udc69‍\ud83d\udd2c', + 'woman_shrugging':'\ud83e\udd37‍\u2640\ufe0f', + 'woman_singer':'\ud83d\udc69‍\ud83c\udfa4', + 'woman_student':'\ud83d\udc69‍\ud83c\udf93', + 'woman_teacher':'\ud83d\udc69‍\ud83c\udfeb', + 'woman_technologist':'\ud83d\udc69‍\ud83d\udcbb', + 'woman_with_turban':'\ud83d\udc73‍\u2640\ufe0f', + 'womans_clothes':'\ud83d\udc5a', + 'womans_hat':'\ud83d\udc52', + 'women_wrestling':'\ud83e\udd3c‍\u2640\ufe0f', + 'womens':'\ud83d\udeba', + 'world_map':'\ud83d\uddfa', + 'worried':'\ud83d\ude1f', + 'wrench':'\ud83d\udd27', + 'writing_hand':'\u270d\ufe0f', + 'x':'\u274c', + 'yellow_heart':'\ud83d\udc9b', + 'yen':'\ud83d\udcb4', + 'yin_yang':'\u262f\ufe0f', + 'yum':'\ud83d\ude0b', + 'zap':'\u26a1\ufe0f', + 'zipper_mouth_face':'\ud83e\udd10', + 'zzz':'\ud83d\udca4', + + /* special emojis :P */ + 'octocat': '', + 'showdown': '' + }; + + /** + * These are all the transformations that form block-level + * tags like paragraphs, headers, and list items. + */ + showdown.subParser('makehtml.blockGamut', function (text, options, globals) { + 'use strict'; + + text = globals.converter._dispatch('makehtml.blockGamut.before', text, options, globals).getText(); + + // we parse blockquotes first so that we can have headings and hrs + // inside blockquotes + text = showdown.subParser('makehtml.blockQuotes')(text, options, globals); + text = showdown.subParser('makehtml.headers')(text, options, globals); + + // Do Horizontal Rules: + text = showdown.subParser('makehtml.horizontalRule')(text, options, globals); + + text = showdown.subParser('makehtml.lists')(text, options, globals); + text = showdown.subParser('makehtml.codeBlocks')(text, options, globals); + text = showdown.subParser('makehtml.tables')(text, options, globals); + + // We already ran _HashHTMLBlocks() before, in Markdown(), but that + // was to escape raw HTML in the original Markdown source. This time, + // we're escaping the markup we've just created, so that we don't wrap + //

tags around block-level tags. + text = showdown.subParser('makehtml.hashHTMLBlocks')(text, options, globals); + text = showdown.subParser('makehtml.paragraphs')(text, options, globals); + + text = globals.converter._dispatch('makehtml.blockGamut.after', text, options, globals).getText(); + + return text; + }); + + showdown.subParser('makehtml.blockQuotes', function (text, options, globals) { + 'use strict'; + + text = globals.converter._dispatch('makehtml.blockQuotes.before', text, options, globals).getText(); + + // add a couple extra lines after the text and endtext mark + text = text + '\n\n'; + + var rgx = /(^ {0,3}>[ \t]?.+\n(.+\n)*\n*)+/gm; + + if (options.splitAdjacentBlockquotes) { + rgx = /^ {0,3}>[\s\S]*?(?:\n\n)/gm; + } + + text = text.replace(rgx, function (bq) { + // attacklab: hack around Konqueror 3.5.4 bug: + // "----------bug".replace(/^-/g,"") == "bug" + bq = bq.replace(/^[ \t]*>[ \t]?/gm, ''); // trim one level of quoting + + // attacklab: clean up hack + bq = bq.replace(/¨0/g, ''); + + bq = bq.replace(/^[ \t]+$/gm, ''); // trim whitespace-only lines + bq = showdown.subParser('makehtml.githubCodeBlocks')(bq, options, globals); + bq = showdown.subParser('makehtml.blockGamut')(bq, options, globals); // recurse + + bq = bq.replace(/(^|\n)/g, '$1 '); + // These leading spaces screw with

 content, so we need to fix that:
+            bq = bq.replace(/(\s*
[^\r]+?<\/pre>)/gm, function (wholeMatch, m1) {
+                var pre = m1;
+                // attacklab: hack around Konqueror 3.5.4 bug:
+                pre = pre.replace(/^  /mg, '¨0');
+                pre = pre.replace(/¨0/g, '');
+                return pre;
+            });
+
+            return showdown.subParser('makehtml.hashBlock')('
\n' + bq + '\n
', options, globals); + }); + + text = globals.converter._dispatch('makehtml.blockQuotes.after', text, options, globals).getText(); + return text; + }); + + /** + * Process Markdown `
` blocks.
+     */
+    showdown.subParser('makehtml.codeBlocks', function (text, options, globals) {
+        'use strict';
+
+        text = globals.converter._dispatch('makehtml.codeBlocks.before', text, options, globals).getText();
+
+        // sentinel workarounds for lack of \A and \Z, safari\khtml bug
+        text += '¨0';
+
+        var pattern = /(?:\n\n|^)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=¨0))/g;
+        text = text.replace(pattern, function (wholeMatch, m1, m2) {
+            var codeblock = m1,
+                nextChar = m2,
+                end = '\n';
+
+            codeblock = showdown.subParser('makehtml.outdent')(codeblock, options, globals);
+            codeblock = showdown.subParser('makehtml.encodeCode')(codeblock, options, globals);
+            codeblock = showdown.subParser('makehtml.detab')(codeblock, options, globals);
+            codeblock = codeblock.replace(/^\n+/g, ''); // trim leading newlines
+            codeblock = codeblock.replace(/\n+$/g, ''); // trim trailing newlines
+
+            if (options.omitExtraWLInCodeBlocks) {
+                end = '';
+            }
+
+            codeblock = '
' + codeblock + end + '
'; + + return showdown.subParser('makehtml.hashBlock')(codeblock, options, globals) + nextChar; + }); + + // strip sentinel + text = text.replace(/¨0/, ''); + + text = globals.converter._dispatch('makehtml.codeBlocks.after', text, options, globals).getText(); + return text; + }); + + /** + * + * * Backtick quotes are used for spans. + * + * * You can use multiple backticks as the delimiters if you want to + * include literal backticks in the code span. So, this input: + * + * Just type ``foo `bar` baz`` at the prompt. + * + * Will translate to: + * + *

Just type foo `bar` baz at the prompt.

+ * + * There's no arbitrary limit to the number of backticks you + * can use as delimters. If you need three consecutive backticks + * in your code, use four for delimiters, etc. + * + * * You can use spaces to get literal backticks at the edges: + * + * ... type `` `bar` `` ... + * + * Turns to: + * + * ... type `bar` ... + */ + showdown.subParser('makehtml.codeSpans', function (text, options, globals) { + 'use strict'; + + text = globals.converter._dispatch('makehtml.codeSpans.before', text, options, globals).getText(); + + if (typeof (text) === 'undefined') { + text = ''; + } + text = text.replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm, + function (wholeMatch, m1, m2, m3) { + var c = m3; + c = c.replace(/^([ \t]*)/g, ''); // leading whitespace + c = c.replace(/[ \t]*$/g, ''); // trailing whitespace + c = showdown.subParser('makehtml.encodeCode')(c, options, globals); + c = m1 + '' + c + ''; + c = showdown.subParser('makehtml.hashHTMLSpans')(c, options, globals); + return c; + } + ); + + text = globals.converter._dispatch('makehtml.codeSpans.after', text, options, globals).getText(); + return text; + }); + + /** + * Create a full HTML document from the processed markdown + */ + showdown.subParser('makehtml.completeHTMLDocument', function (text, options, globals) { + 'use strict'; + + if (!options.completeHTMLDocument) { + return text; + } + + text = globals.converter._dispatch('makehtml.completeHTMLDocument.before', text, options, globals).getText(); + + var doctype = 'html', + doctypeParsed = '\n', + title = '', + charset = '\n', + lang = '', + metadata = ''; + + if (typeof globals.metadata.parsed.doctype !== 'undefined') { + doctypeParsed = '\n'; + doctype = globals.metadata.parsed.doctype.toString().toLowerCase(); + if (doctype === 'html' || doctype === 'html5') { + charset = ''; + } + } + + for (var meta in globals.metadata.parsed) { + if (globals.metadata.parsed.hasOwnProperty(meta)) { + switch (meta.toLowerCase()) { + case 'doctype': + break; + + case 'title': + title = '' + globals.metadata.parsed.title + '\n'; + break; + + case 'charset': + if (doctype === 'html' || doctype === 'html5') { + charset = '\n'; + } else { + charset = '\n'; + } + break; + + case 'language': + case 'lang': + lang = ' lang="' + globals.metadata.parsed[meta] + '"'; + metadata += '\n'; + break; + + default: + metadata += '\n'; + } + } + } + + text = doctypeParsed + '\n\n' + title + charset + metadata + '\n\n' + text.trim() + '\n\n'; + + text = globals.converter._dispatch('makehtml.completeHTMLDocument.after', text, options, globals).getText(); + return text; + }); + + /** + * Convert all tabs to spaces + */ + showdown.subParser('makehtml.detab', function (text, options, globals) { + 'use strict'; + text = globals.converter._dispatch('makehtml.detab.before', text, options, globals).getText(); + + // expand first n-1 tabs + text = text.replace(/\t(?=\t)/g, ' '); // g_tab_width + + // replace the nth with two sentinels + text = text.replace(/\t/g, '¨A¨B'); + + // use the sentinel to anchor our regex so it doesn't explode + text = text.replace(/¨B(.+?)¨A/g, function (wholeMatch, m1) { + var leadingText = m1, + numSpaces = 4 - leadingText.length % 4; // g_tab_width + + // there *must* be a better way to do this: + for (var i = 0; i < numSpaces; i++) { + leadingText += ' '; + } + + return leadingText; + }); + + // clean up sentinels + text = text.replace(/¨A/g, ' '); // g_tab_width + text = text.replace(/¨B/g, ''); + + text = globals.converter._dispatch('makehtml.detab.after', text, options, globals).getText(); + return text; + }); + + showdown.subParser('makehtml.ellipsis', function (text, options, globals) { + 'use strict'; + + if (!options.ellipsis) { + return text; + } + + text = globals.converter._dispatch('makehtml.ellipsis.before', text, options, globals).getText(); + + text = text.replace(/\.\.\./g, 'â€Ļ'); + + text = globals.converter._dispatch('makehtml.ellipsis.after', text, options, globals).getText(); + + return text; + }); + + /** + * Turn emoji codes into emojis + * + * List of supported emojis: https://github.com/showdownjs/showdown/wiki/Emojis + */ + showdown.subParser('makehtml.emoji', function (text, options, globals) { + 'use strict'; + + if (!options.emoji) { + return text; + } + + text = globals.converter._dispatch('makehtml.emoji.before', text, options, globals).getText(); + + var emojiRgx = /:([\S]+?):/g; + + text = text.replace(emojiRgx, function (wm, emojiCode) { + if (showdown.helper.emojis.hasOwnProperty(emojiCode)) { + return showdown.helper.emojis[emojiCode]; + } + return wm; + }); + + text = globals.converter._dispatch('makehtml.emoji.after', text, options, globals).getText(); + + return text; + }); + + /** + * Smart processing for ampersands and angle brackets that need to be encoded. + */ + showdown.subParser('makehtml.encodeAmpsAndAngles', function (text, options, globals) { + 'use strict'; + text = globals.converter._dispatch('makehtml.encodeAmpsAndAngles.before', text, options, globals).getText(); + + // Ampersand-encoding based entirely on Nat Irons's Amputator MT plugin: + // http://bumppo.net/projects/amputator/ + text = text.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/g, '&'); + + // Encode naked <'s + text = text.replace(/<(?![a-z\/?$!])/gi, '<'); + + // Encode < + text = text.replace(/ + text = text.replace(/>/g, '>'); + + text = globals.converter._dispatch('makehtml.encodeAmpsAndAngles.after', text, options, globals).getText(); + return text; + }); + + /** + * Returns the string, with after processing the following backslash escape sequences. + * + * attacklab: The polite way to do this is with the new escapeCharacters() function: + * + * text = escapeCharacters(text,"\\",true); + * text = escapeCharacters(text,"`*_{}[]()>#+-.!",true); + * + * ...but we're sidestepping its use of the (slow) RegExp constructor + * as an optimization for Firefox. This function gets called a LOT. + */ + showdown.subParser('makehtml.encodeBackslashEscapes', function (text, options, globals) { + 'use strict'; + text = globals.converter._dispatch('makehtml.encodeBackslashEscapes.before', text, options, globals).getText(); + + text = text.replace(/\\(\\)/g, showdown.helper.escapeCharactersCallback); + text = text.replace(/\\([`*_{}\[\]()>#+.!~=|:-])/g, showdown.helper.escapeCharactersCallback); + + text = globals.converter._dispatch('makehtml.encodeBackslashEscapes.after', text, options, globals).getText(); + return text; + }); + + /** + * Encode/escape certain characters inside Markdown code runs. + * The point is that in code, these characters are literals, + * and lose their special Markdown meanings. + */ + showdown.subParser('makehtml.encodeCode', function (text, options, globals) { + 'use strict'; + + text = globals.converter._dispatch('makehtml.encodeCode.before', text, options, globals).getText(); + + // Encode all ampersands; HTML entities are not + // entities within a Markdown code span. + text = text + .replace(/&/g, '&') + // Do the angle bracket song and dance: + .replace(//g, '>') + // Now, escape characters that are magic in Markdown: + .replace(/([*_{}\[\]\\=~-])/g, showdown.helper.escapeCharactersCallback); + + text = globals.converter._dispatch('makehtml.encodeCode.after', text, options, globals).getText(); + return text; + }); + + /** + * Within tags -- meaning between < and > -- encode [\ ` * _ ~ =] so they + * don't conflict with their use in Markdown for code, italics and strong. + */ + showdown.subParser('makehtml.escapeSpecialCharsWithinTagAttributes', function (text, options, globals) { + 'use strict'; + text = globals.converter._dispatch('makehtml.escapeSpecialCharsWithinTagAttributes.before', text, options, globals).getText(); + + // Build a regex to find HTML tags. + var tags = /<\/?[a-z\d_:-]+(?:[\s]+[\s\S]+?)?>/gi, + comments = /-]|-[^>])(?:[^-]|-[^-])*)--)>/gi; + + text = text.replace(tags, function (wholeMatch) { + return wholeMatch + .replace(/(.)<\/?code>(?=.)/g, '$1`') + .replace(/([\\`*_~=|])/g, showdown.helper.escapeCharactersCallback); + }); + + text = text.replace(comments, function (wholeMatch) { + return wholeMatch + .replace(/([\\`*_~=|])/g, showdown.helper.escapeCharactersCallback); + }); + + text = globals.converter._dispatch('makehtml.escapeSpecialCharsWithinTagAttributes.after', text, options, globals).getText(); + return text; + }); + + /** + * Handle github codeblocks prior to running HashHTML so that + * HTML contained within the codeblock gets escaped properly + * Example: + * ```ruby + * def hello_world(x) + * puts "Hello, #{x}" + * end + * ``` + */ + showdown.subParser('makehtml.githubCodeBlocks', function (text, options, globals) { + 'use strict'; + + // early exit if option is not enabled + if (!options.ghCodeBlocks) { + return text; + } + + text = globals.converter._dispatch('makehtml.githubCodeBlocks.before', text, options, globals).getText(); + + text += '¨0'; + + text = text.replace(/(?:^|\n)(?: {0,3})(```+|~~~+)(?: *)([^\s`~]*)\n([\s\S]*?)\n(?: {0,3})\1/g, function (wholeMatch, delim, language, codeblock) { + var end = (options.omitExtraWLInCodeBlocks) ? '' : '\n'; + + // First parse the github code block + codeblock = showdown.subParser('makehtml.encodeCode')(codeblock, options, globals); + codeblock = showdown.subParser('makehtml.detab')(codeblock, options, globals); + codeblock = codeblock.replace(/^\n+/g, ''); // trim leading newlines + codeblock = codeblock.replace(/\n+$/g, ''); // trim trailing whitespace + + codeblock = '
' + codeblock + end + '
'; + + codeblock = showdown.subParser('makehtml.hashBlock')(codeblock, options, globals); + + // Since GHCodeblocks can be false positives, we need to + // store the primitive text and the parsed text in a global var, + // and then return a token + return '\n\n¨G' + (globals.ghCodeBlocks.push({text: wholeMatch, codeblock: codeblock}) - 1) + 'G\n\n'; + }); + + // attacklab: strip sentinel + text = text.replace(/¨0/, ''); + + return globals.converter._dispatch('makehtml.githubCodeBlocks.after', text, options, globals).getText(); + }); + + showdown.subParser('makehtml.hashBlock', function (text, options, globals) { + 'use strict'; + text = globals.converter._dispatch('makehtml.hashBlock.before', text, options, globals).getText(); + text = text.replace(/(^\n+|\n+$)/g, ''); + text = '\n\n¨K' + (globals.gHtmlBlocks.push(text) - 1) + 'K\n\n'; + text = globals.converter._dispatch('makehtml.hashBlock.after', text, options, globals).getText(); + return text; + }); + + /** + * Hash and escape elements that should not be parsed as markdown + */ + showdown.subParser('makehtml.hashCodeTags', function (text, options, globals) { + 'use strict'; + text = globals.converter._dispatch('makehtml.hashCodeTags.before', text, options, globals).getText(); + + var repFunc = function (wholeMatch, match, left, right) { + var codeblock = left + showdown.subParser('makehtml.encodeCode')(match, options, globals) + right; + return '¨C' + (globals.gHtmlSpans.push(codeblock) - 1) + 'C'; + }; + + // Hash naked + text = showdown.helper.replaceRecursiveRegExp(text, repFunc, ']*>', '', 'gim'); + + text = globals.converter._dispatch('makehtml.hashCodeTags.after', text, options, globals).getText(); + return text; + }); + + showdown.subParser('makehtml.hashElement', function (text, options, globals) { + 'use strict'; + + return function (wholeMatch, m1) { + var blockText = m1; + + // Undo double lines + blockText = blockText.replace(/\n\n/g, '\n'); + blockText = blockText.replace(/^\n/, ''); + + // strip trailing blank lines + blockText = blockText.replace(/\n+$/g, ''); + + // Replace the element text with a marker ("¨KxK" where x is its key) + blockText = '\n\n¨K' + (globals.gHtmlBlocks.push(blockText) - 1) + 'K\n\n'; + + return blockText; + }; + }); + + showdown.subParser('makehtml.hashHTMLBlocks', function (text, options, globals) { + 'use strict'; + text = globals.converter._dispatch('makehtml.hashHTMLBlocks.before', text, options, globals).getText(); + + var blockTags = [ + 'pre', + 'div', + 'h1', + 'h2', + 'h3', + 'h4', + 'h5', + 'h6', + 'blockquote', + 'table', + 'dl', + 'ol', + 'ul', + 'script', + 'noscript', + 'form', + 'fieldset', + 'iframe', + 'math', + 'style', + 'section', + 'header', + 'footer', + 'nav', + 'article', + 'aside', + 'address', + 'audio', + 'canvas', + 'figure', + 'hgroup', + 'output', + 'video', + 'details', + 'p' + ], + repFunc = function (wholeMatch, match, left, right) { + var txt = wholeMatch; + // check if this html element is marked as markdown + // if so, it's contents should be parsed as markdown + if (left.search(/\bmarkdown\b/) !== -1) { + txt = left + globals.converter.makeHtml(match) + right; + } + return '\n\n¨K' + (globals.gHtmlBlocks.push(txt) - 1) + 'K\n\n'; + }; + + if (options.backslashEscapesHTMLTags) { + // encode backslash escaped HTML tags + text = text.replace(/\\<(\/?[^>]+?)>/g, function (wm, inside) { + return '<' + inside + '>'; + }); + } + + // hash HTML Blocks + for (var i = 0; i < blockTags.length; ++i) { + + var opTagPos, + rgx1 = new RegExp('^ {0,3}(<' + blockTags[i] + '\\b[^>]*>)', 'im'), + patLeft = '<' + blockTags[i] + '\\b[^>]*>', + patRight = ''; + // 1. Look for the first position of the first opening HTML tag in the text + while ((opTagPos = showdown.helper.regexIndexOf(text, rgx1)) !== -1) { + + // if the HTML tag is \ escaped, we need to escape it and break + + + //2. Split the text in that position + var subTexts = showdown.helper.splitAtIndex(text, opTagPos), + //3. Match recursively + newSubText1 = showdown.helper.replaceRecursiveRegExp(subTexts[1], repFunc, patLeft, patRight, 'im'); + + // prevent an infinite loop + if (newSubText1 === subTexts[1]) { + break; + } + text = subTexts[0].concat(newSubText1); + } + } + // HR SPECIAL CASE + text = text.replace(/(\n {0,3}(<(hr)\b([^<>])*?\/?>)[ \t]*(?=\n{2,}))/g, + showdown.subParser('makehtml.hashElement')(text, options, globals)); + + // Special case for standalone HTML comments + text = showdown.helper.replaceRecursiveRegExp(text, function (txt) { + return '\n\n¨K' + (globals.gHtmlBlocks.push(txt) - 1) + 'K\n\n'; + }, '^ {0,3}', 'gm'); + + // PHP and ASP-style processor instructions ( and <%...%>) + text = text.replace(/(?:\n\n)( {0,3}(?:<([?%])[^\r]*?\2>)[ \t]*(?=\n{2,}))/g, + showdown.subParser('makehtml.hashElement')(text, options, globals)); + + text = globals.converter._dispatch('makehtml.hashHTMLBlocks.after', text, options, globals).getText(); + return text; + }); + + /** + * Hash span elements that should not be parsed as markdown + */ + showdown.subParser('makehtml.hashHTMLSpans', function (text, options, globals) { + 'use strict'; + text = globals.converter._dispatch('makehtml.hashHTMLSpans.before', text, options, globals).getText(); + + // Hash Self Closing tags + text = text.replace(/<[^>]+?\/>/gi, function (wm) { + return showdown.helper._hashHTMLSpan(wm, globals); + }); + + // Hash tags without properties + text = text.replace(/<([^>]+?)>[\s\S]*?<\/\1>/g, function (wm) { + return showdown.helper._hashHTMLSpan(wm, globals); + }); + + // Hash tags with properties + text = text.replace(/<([^>]+?)\s[^>]+?>[\s\S]*?<\/\1>/g, function (wm) { + return showdown.helper._hashHTMLSpan(wm, globals); + }); + + // Hash self closing tags without /> + text = text.replace(/<[^>]+?>/gi, function (wm) { + return showdown.helper._hashHTMLSpan(wm, globals); + }); + + text = globals.converter._dispatch('makehtml.hashHTMLSpans.after', text, options, globals).getText(); + return text; + }); + + /** + * Unhash HTML spans + */ + showdown.subParser('makehtml.unhashHTMLSpans', function (text, options, globals) { + 'use strict'; + text = globals.converter._dispatch('makehtml.unhashHTMLSpans.before', text, options, globals).getText(); + + for (var i = 0; i < globals.gHtmlSpans.length; ++i) { + var repText = globals.gHtmlSpans[i], + // limiter to prevent infinite loop (assume 10 as limit for recurse) + limit = 0; + + while (/¨C(\d+)C/.test(repText)) { + var num = RegExp.$1; + repText = repText.replace('¨C' + num + 'C', globals.gHtmlSpans[num]); + if (limit === 10) { + console.error('maximum nesting of 10 spans reached!!!'); + break; + } + ++limit; + } + text = text.replace('¨C' + i + 'C', repText); + } + + text = globals.converter._dispatch('makehtml.unhashHTMLSpans.after', text, options, globals).getText(); + return text; + }); + + /** + * Hash and escape
 elements that should not be parsed as markdown
+     */
+    showdown.subParser('makehtml.hashPreCodeTags', function (text, options, globals) {
+        'use strict';
+        text = globals.converter._dispatch('makehtml.hashPreCodeTags.before', text, options, globals).getText();
+
+        var repFunc = function (wholeMatch, match, left, right) {
+            // encode html entities
+            var codeblock = left + showdown.subParser('makehtml.encodeCode')(match, options, globals) + right;
+            return '\n\n¨G' + (globals.ghCodeBlocks.push({text: wholeMatch, codeblock: codeblock}) - 1) + 'G\n\n';
+        };
+
+        // Hash 

+        text = showdown.helper.replaceRecursiveRegExp(text, repFunc, '^ {0,3}]*>\\s*]*>', '^ {0,3}\\s*
', 'gim'); + + text = globals.converter._dispatch('makehtml.hashPreCodeTags.after', text, options, globals).getText(); + return text; + }); + + showdown.subParser('makehtml.headers', function (text, options, globals) { + 'use strict'; + + text = globals.converter._dispatch('makehtml.headers.before', text, options, globals).getText(); + + var headerLevelStart = (isNaN(parseInt(options.headerLevelStart))) ? 1 : parseInt(options.headerLevelStart), + + // Set text-style headers: + // Header 1 + // ======== + // + // Header 2 + // -------- + // + setextRegexH1 = (options.smoothLivePreview) ? /^(.+)[ \t]*\n={2,}[ \t]*\n+/gm : /^(.+)[ \t]*\n=+[ \t]*\n+/gm, + setextRegexH2 = (options.smoothLivePreview) ? /^(.+)[ \t]*\n-{2,}[ \t]*\n+/gm : /^(.+)[ \t]*\n-+[ \t]*\n+/gm; + + text = text.replace(setextRegexH1, function (wholeMatch, m1) { + + var spanGamut = showdown.subParser('makehtml.spanGamut')(m1, options, globals), + hID = (options.noHeaderId) ? '' : ' id="' + headerId(m1) + '"', + hLevel = headerLevelStart, + hashBlock = '' + spanGamut + ''; + return showdown.subParser('makehtml.hashBlock')(hashBlock, options, globals); + }); + + text = text.replace(setextRegexH2, function (matchFound, m1) { + var spanGamut = showdown.subParser('makehtml.spanGamut')(m1, options, globals), + hID = (options.noHeaderId) ? '' : ' id="' + headerId(m1) + '"', + hLevel = headerLevelStart + 1, + hashBlock = '' + spanGamut + ''; + return showdown.subParser('makehtml.hashBlock')(hashBlock, options, globals); + }); + + // atx-style headers: + // # Header 1 + // ## Header 2 + // ## Header 2 with closing hashes ## + // ... + // ###### Header 6 + // + var atxStyle = (options.requireSpaceBeforeHeadingText) ? /^(#{1,6})[ \t]+(.+?)[ \t]*#*\n+/gm : /^(#{1,6})[ \t]*(.+?)[ \t]*#*\n+/gm; + + text = text.replace(atxStyle, function (wholeMatch, m1, m2) { + var hText = m2; + if (options.customizedHeaderId) { + hText = m2.replace(/\s?\{([^{]+?)}\s*$/, ''); + } + + var span = showdown.subParser('makehtml.spanGamut')(hText, options, globals), + hID = (options.noHeaderId) ? '' : ' id="' + headerId(m2) + '"', + hLevel = headerLevelStart - 1 + m1.length, + header = '' + span + ''; + + return showdown.subParser('makehtml.hashBlock')(header, options, globals); + }); + + function headerId (m) { + var title, + prefix; + + // It is separate from other options to allow combining prefix and customized + if (options.customizedHeaderId) { + var match = m.match(/\{([^{]+?)}\s*$/); + if (match && match[1]) { + m = match[1]; + } + } + + title = m; + + // Prefix id to prevent causing inadvertent pre-existing style matches. + if (showdown.helper.isString(options.prefixHeaderId)) { + prefix = options.prefixHeaderId; + } else if (options.prefixHeaderId === true) { + prefix = 'section-'; + } else { + prefix = ''; + } + + if (!options.rawPrefixHeaderId) { + title = prefix + title; + } + + if (options.ghCompatibleHeaderId) { + title = title + .replace(/ /g, '-') + // replace previously escaped chars (&, ¨ and $) + .replace(/&/g, '') + .replace(/¨T/g, '') + .replace(/¨D/g, '') + // replace rest of the chars (&~$ are repeated as they might have been escaped) + // borrowed from github's redcarpet (some they should produce similar results) + .replace(/[&+$,\/:;=?@"#{}|^¨~\[\]`\\*)(%.!'<>]/g, '') + .toLowerCase(); + } else if (options.rawHeaderId) { + title = title + .replace(/ /g, '-') + // replace previously escaped chars (&, ¨ and $) + .replace(/&/g, '&') + .replace(/¨T/g, '¨') + .replace(/¨D/g, '$') + // replace " and ' + .replace(/["']/g, '-') + .toLowerCase(); + } else { + title = title + .replace(/[^\w]/g, '') + .toLowerCase(); + } + + if (options.rawPrefixHeaderId) { + title = prefix + title; + } + + if (globals.hashLinkCounts[title]) { + title = title + '-' + (globals.hashLinkCounts[title]++); + } else { + globals.hashLinkCounts[title] = 1; + } + return title; + } + + text = globals.converter._dispatch('makehtml.headers.after', text, options, globals).getText(); + return text; + }); + + /** + * Turn Markdown horizontal rule shortcuts into
tags. + * + * Any 3 or more unindented consecutive hyphens, asterisks or underscores with or without a space beetween them + * in a single line is considered a horizontal rule + */ + showdown.subParser('makehtml.horizontalRule', function (text, options, globals) { + 'use strict'; + text = globals.converter._dispatch('makehtml.horizontalRule.before', text, options, globals).getText(); + + var key = showdown.subParser('makehtml.hashBlock')('
', options, globals); + text = text.replace(/^ {0,2}( ?-){3,}[ \t]*$/gm, key); + text = text.replace(/^ {0,2}( ?\*){3,}[ \t]*$/gm, key); + text = text.replace(/^ {0,2}( ?_){3,}[ \t]*$/gm, key); + + text = globals.converter._dispatch('makehtml.horizontalRule.after', text, options, globals).getText(); + return text; + }); + + /** + * Turn Markdown image shortcuts into tags. + */ + showdown.subParser('makehtml.images', function (text, options, globals) { + 'use strict'; + + text = globals.converter._dispatch('makehtml.images.before', text, options, globals).getText(); + + var inlineRegExp = /!\[([^\]]*?)][ \t]*()\([ \t]??(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(["'])([^"]*?)\6)?[ \t]?\)/g, + crazyRegExp = /!\[([^\]]*?)][ \t]*()\([ \t]?<([^>]*)>(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(?:(["'])([^"]*?)\6))?[ \t]?\)/g, + base64RegExp = /!\[([^\]]*?)][ \t]*()\([ \t]??(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(["'])([^"]*?)\6)?[ \t]?\)/g, + referenceRegExp = /!\[([^\]]*?)] ?(?:\n *)?\[([\s\S]*?)]()()()()()/g, + refShortcutRegExp = /!\[([^\[\]]+)]()()()()()/g; + + function writeImageTagBase64 (wholeMatch, altText, linkId, url, width, height, m5, title) { + url = url.replace(/\s/g, ''); + return writeImageTag (wholeMatch, altText, linkId, url, width, height, m5, title); + } + + function writeImageTagBaseUrl (wholeMatch, altText, linkId, url, width, height, m5, title) { + url = showdown.helper.applyBaseUrl(options.relativePathBaseUrl, url); + + return writeImageTag (wholeMatch, altText, linkId, url, width, height, m5, title); + } + + function writeImageTag (wholeMatch, altText, linkId, url, width, height, m5, title) { + + var gUrls = globals.gUrls, + gTitles = globals.gTitles, + gDims = globals.gDimensions; + + linkId = linkId.toLowerCase(); + + if (!title) { + title = ''; + } + // Special case for explicit empty url + if (wholeMatch.search(/\(? ?(['"].*['"])?\)$/m) > -1) { + url = ''; + + } else if (url === '' || url === null) { + if (linkId === '' || linkId === null) { + // lower-case and turn embedded newlines into spaces + linkId = altText.toLowerCase().replace(/ ?\n/g, ' '); + } + url = '#' + linkId; + + if (!showdown.helper.isUndefined(gUrls[linkId])) { + url = gUrls[linkId]; + if (!showdown.helper.isUndefined(gTitles[linkId])) { + title = gTitles[linkId]; + } + if (!showdown.helper.isUndefined(gDims[linkId])) { + width = gDims[linkId].width; + height = gDims[linkId].height; + } + } else { + return wholeMatch; + } + } + + altText = altText + .replace(/"/g, '"') + //altText = showdown.helper.escapeCharacters(altText, '*_', false); + .replace(showdown.helper.regexes.asteriskDashTildeAndColon, showdown.helper.escapeCharactersCallback); + //url = showdown.helper.escapeCharacters(url, '*_', false); + url = url.replace(showdown.helper.regexes.asteriskDashTildeAndColon, showdown.helper.escapeCharactersCallback); + var result = '' + altText + 'x "optional title") + + // base64 encoded images + text = text.replace(base64RegExp, writeImageTagBase64); + + // cases with crazy urls like ./image/cat1).png + text = text.replace(crazyRegExp, writeImageTagBaseUrl); + + // normal cases + text = text.replace(inlineRegExp, writeImageTagBaseUrl); + + // handle reference-style shortcuts: ![img text] + text = text.replace(refShortcutRegExp, writeImageTag); + + text = globals.converter._dispatch('makehtml.images.after', text, options, globals).getText(); + return text; + }); + + showdown.subParser('makehtml.italicsAndBold', function (text, options, globals) { + 'use strict'; + + text = globals.converter._dispatch('makehtml.italicsAndBold.before', text, options, globals).getText(); + + // it's faster to have 3 separate regexes for each case than have just one + // because of backtracing, in some cases, it could lead to an exponential effect + // called "catastrophic backtrace". Ominous! + + function parseInside (txt, left, right) { + return left + txt + right; + } + + // Parse underscores + if (options.literalMidWordUnderscores) { + text = text.replace(/\b___(\S[\s\S]*?)___\b/g, function (wm, txt) { + return parseInside (txt, '', ''); + }); + text = text.replace(/\b__(\S[\s\S]*?)__\b/g, function (wm, txt) { + return parseInside (txt, '', ''); + }); + text = text.replace(/\b_(\S[\s\S]*?)_\b/g, function (wm, txt) { + return parseInside (txt, '', ''); + }); + } else { + text = text.replace(/___(\S[\s\S]*?)___/g, function (wm, m) { + return (/\S$/.test(m)) ? parseInside (m, '', '') : wm; + }); + text = text.replace(/__(\S[\s\S]*?)__/g, function (wm, m) { + return (/\S$/.test(m)) ? parseInside (m, '', '') : wm; + }); + text = text.replace(/_([^\s_][\s\S]*?)_/g, function (wm, m) { + // !/^_[^_]/.test(m) - test if it doesn't start with __ (since it seems redundant, we removed it) + return (/\S$/.test(m)) ? parseInside (m, '', '') : wm; + }); + } + + // Now parse asterisks + /* + if (options.literalMidWordAsterisks) { + text = text.replace(/([^*]|^)\B\*\*\*(\S[\s\S]+?)\*\*\*\B(?!\*)/g, function (wm, lead, txt) { + return parseInside (txt, lead + '', ''); + }); + text = text.replace(/([^*]|^)\B\*\*(\S[\s\S]+?)\*\*\B(?!\*)/g, function (wm, lead, txt) { + return parseInside (txt, lead + '', ''); + }); + text = text.replace(/([^*]|^)\B\*(\S[\s\S]+?)\*\B(?!\*)/g, function (wm, lead, txt) { + return parseInside (txt, lead + '', ''); + }); + } else { + */ + text = text.replace(/\*\*\*(\S[\s\S]*?)\*\*\*/g, function (wm, m) { + return (/\S$/.test(m)) ? parseInside (m, '', '') : wm; + }); + text = text.replace(/\*\*(\S[\s\S]*?)\*\*/g, function (wm, m) { + return (/\S$/.test(m)) ? parseInside (m, '', '') : wm; + }); + text = text.replace(/\*([^\s*][\s\S]*?)\*/g, function (wm, m) { + // !/^\*[^*]/.test(m) - test if it doesn't start with ** (since it seems redundant, we removed it) + return (/\S$/.test(m)) ? parseInside (m, '', '') : wm; + }); + //} + + text = globals.converter._dispatch('makehtml.italicsAndBold.after', text, options, globals).getText(); + return text; + }); + +//// +// makehtml/links.js +// Copyright (c) 2018 ShowdownJS +// +// Transforms MD links into `` html anchors +// +// A link contains link text (the visible text), a link destination (the URI that is the link destination), and +// optionally a link title. There are two basic kinds of links in Markdown. +// In inline links the destination and title are given immediately after the link text. +// In reference links the destination and title are defined elsewhere in the document. +// +// ***Author:*** +// - EstevÃŖo Soares dos Santos (Tivie) +//// + + (function () { + /** + * Helper function: Wrapper function to pass as second replace parameter + * + * @param {RegExp} rgx + * @param {string} evtRootName + * @param {{}} options + * @param {{}} globals + * @returns {Function} + */ + function replaceAnchorTagReference (rgx, evtRootName, options, globals, emptyCase) { + emptyCase = !!emptyCase; + return function (wholeMatch, text, id, url, m5, m6, title) { + // bail we we find 2 newlines somewhere + if (/\n\n/.test(wholeMatch)) { + return wholeMatch; + } + + var evt = createEvent(rgx, evtRootName + '.captureStart', wholeMatch, text, id, url, title, options, globals); + return writeAnchorTag(evt, options, globals, emptyCase); + }; + } + + function replaceAnchorTagBaseUrl (rgx, evtRootName, options, globals, emptyCase) { + return function (wholeMatch, text, id, url, m5, m6, title) { + url = showdown.helper.applyBaseUrl(options.relativePathBaseUrl, url); + + var evt = createEvent(rgx, evtRootName + '.captureStart', wholeMatch, text, id, url, title, options, globals); + return writeAnchorTag(evt, options, globals, emptyCase); + }; + } + + /** + * TODO Normalize this + * Helper function: Create a capture event + * @param {RegExp} rgx + * @param {String} evtName Event name + * @param {String} wholeMatch + * @param {String} text + * @param {String} id + * @param {String} url + * @param {String} title + * @param {{}} options + * @param {{}} globals + * @returns {showdown.helper.Event|*} + */ + function createEvent (rgx, evtName, wholeMatch, text, id, url, title, options, globals) { + return globals.converter._dispatch(evtName, wholeMatch, options, globals, { + regexp: rgx, + matches: { + wholeMatch: wholeMatch, + text: text, + id: id, + url: url, + title: title + } + }); + } + + /** + * Helper Function: Normalize and write an anchor tag based on passed parameters + * @param evt + * @param options + * @param globals + * @param {boolean} emptyCase + * @returns {string} + */ + function writeAnchorTag (evt, options, globals, emptyCase) { + + var wholeMatch = evt.getMatches().wholeMatch; + var text = evt.getMatches().text; + var id = evt.getMatches().id; + var url = evt.getMatches().url; + var title = evt.getMatches().title; + var target = ''; + + if (!title) { + title = ''; + } + id = (id) ? id.toLowerCase() : ''; + + if (emptyCase) { + url = ''; + } else if (!url) { + if (!id) { + // lower-case and turn embedded newlines into spaces + id = text.toLowerCase().replace(/ ?\n/g, ' '); + } + url = '#' + id; + + if (!showdown.helper.isUndefined(globals.gUrls[id])) { + url = globals.gUrls[id]; + if (!showdown.helper.isUndefined(globals.gTitles[id])) { + title = globals.gTitles[id]; + } + } else { + return wholeMatch; + } + } + //url = showdown.helper.escapeCharacters(url, '*_:~', false); // replaced line to improve performance + url = url.replace(showdown.helper.regexes.asteriskDashTildeAndColon, showdown.helper.escapeCharactersCallback); + + if (title !== '' && title !== null) { + title = title.replace(/"/g, '"'); + //title = showdown.helper.escapeCharacters(title, '*_', false); // replaced line to improve performance + title = title.replace(showdown.helper.regexes.asteriskDashTildeAndColon, showdown.helper.escapeCharactersCallback); + title = ' title="' + title + '"'; + } + + // optionLinksInNewWindow only applies + // to external links. Hash links (#) open in same page + if (options.openLinksInNewWindow && !/^#/.test(url)) { + // escaped _ + target = ' rel="noopener noreferrer" target="¨E95Eblank"'; + } + + // Text can be a markdown element, so we run through the appropriate parsers + text = showdown.subParser('makehtml.codeSpans')(text, options, globals); + text = showdown.subParser('makehtml.emoji')(text, options, globals); + text = showdown.subParser('makehtml.underline')(text, options, globals); + text = showdown.subParser('makehtml.italicsAndBold')(text, options, globals); + text = showdown.subParser('makehtml.strikethrough')(text, options, globals); + text = showdown.subParser('makehtml.ellipsis')(text, options, globals); + text = showdown.subParser('makehtml.hashHTMLSpans')(text, options, globals); + + //evt = createEvent(rgx, evtRootName + '.captureEnd', wholeMatch, text, id, url, title, options, globals); + + var result = '' + text + ''; + + //evt = createEvent(rgx, evtRootName + '.beforeHash', wholeMatch, text, id, url, title, options, globals); + + result = showdown.subParser('makehtml.hashHTMLSpans')(result, options, globals); + + return result; + } + + var evtRootName = 'makehtml.links'; + + /** + * Turn Markdown link shortcuts into XHTML tags. + */ + showdown.subParser('makehtml.links', function (text, options, globals) { + + text = globals.converter._dispatch(evtRootName + '.start', text, options, globals).getText(); + + // 1. Handle reference-style links: [link text] [id] + text = showdown.subParser('makehtml.links.reference')(text, options, globals); + + // 2. Handle inline-style links: [link text](url "optional title") + text = showdown.subParser('makehtml.links.inline')(text, options, globals); + + // 3. Handle reference-style shortcuts: [link text] + // These must come last in case there's a [link text][1] or [link text](/foo) + text = showdown.subParser('makehtml.links.referenceShortcut')(text, options, globals); + + // 4. Handle angle brackets links -> `` + // Must come after links, because you can use < and > delimiters in inline links like [this](). + text = showdown.subParser('makehtml.links.angleBrackets')(text, options, globals); + + // 5. Handle GithubMentions (if option is enabled) + text = showdown.subParser('makehtml.links.ghMentions')(text, options, globals); + + // 6. Handle tags and img tags + text = text.replace(/]*>[\s\S]*<\/a>/g, function (wholeMatch) { + return showdown.helper._hashHTMLSpan(wholeMatch, globals); + }); + + text = text.replace(/]*\/?>/g, function (wholeMatch) { + return showdown.helper._hashHTMLSpan(wholeMatch, globals); + }); + + // 7. Handle naked links (if option is enabled) + text = showdown.subParser('makehtml.links.naked')(text, options, globals); + + text = globals.converter._dispatch(evtRootName + '.end', text, options, globals).getText(); + return text; + }); + + /** + * TODO WRITE THIS DOCUMENTATION + */ + showdown.subParser('makehtml.links.inline', function (text, options, globals) { + var evtRootName = evtRootName + '.inline'; + + text = globals.converter._dispatch(evtRootName + '.start', text, options, globals).getText(); + + // 1. Look for empty cases: []() and [empty]() and []("title") + var rgxEmpty = /\[(.*?)]()()()()\(? ?(?:["'](.*)["'])?\)/g; + text = text.replace(rgxEmpty, replaceAnchorTagBaseUrl(rgxEmpty, evtRootName, options, globals, true)); + + // 2. Look for cases with crazy urls like ./image/cat1).png + var rgxCrazy = /\[((?:\[[^\]]*]|[^\[\]])*)]()\s?\([ \t]?<([^>]*)>(?:[ \t]*((["'])([^"]*?)\5))?[ \t]?\)/g; + text = text.replace(rgxCrazy, replaceAnchorTagBaseUrl(rgxCrazy, evtRootName, options, globals)); + + // 3. inline links with no title or titles wrapped in ' or ": + // [text](url.com) || [text]() || [text](url.com "title") || [text]( "title") + //var rgx2 = /\[[ ]*[\s]?[ ]*([^\n\[\]]*?)[ ]*[\s]?[ ]*] ?()\(?(?:[ ]*[\n]?[ ]*()(['"])(.*?)\5)?[ ]*[\s]?[ ]*\)/; // this regex is too slow!!! + var rgx2 = /\[([\S ]*?)]\s?()\( *?\s*(?:()(['"])(.*?)\5)? *\)/g; + text = text.replace(rgx2, replaceAnchorTagBaseUrl(rgx2, evtRootName, options, globals)); + + // 4. inline links with titles wrapped in (): [foo](bar.com (title)) + var rgx3 = /\[([\S ]*?)]\s?()\( *?\s+()()\((.*?)\) *\)/g; + text = text.replace(rgx3, replaceAnchorTagBaseUrl(rgx3, evtRootName, options, globals)); + + text = globals.converter._dispatch(evtRootName + '.end', text, options, globals).getText(); + + return text; + }); + + /** + * TODO WRITE THIS DOCUMENTATION + */ + showdown.subParser('makehtml.links.reference', function (text, options, globals) { + var evtRootName = evtRootName + '.reference'; + + text = globals.converter._dispatch(evtRootName + '.start', text, options, globals).getText(); + + var rgx = /\[((?:\[[^\]]*]|[^\[\]])*)] ?(?:\n *)?\[(.*?)]()()()()/g; + text = text.replace(rgx, replaceAnchorTagReference(rgx, evtRootName, options, globals)); + + text = globals.converter._dispatch(evtRootName + '.end', text, options, globals).getText(); + + return text; + }); + + /** + * TODO WRITE THIS DOCUMENTATION + */ + showdown.subParser('makehtml.links.referenceShortcut', function (text, options, globals) { + var evtRootName = evtRootName + '.referenceShortcut'; + + text = globals.converter._dispatch(evtRootName + '.start', text, options, globals).getText(); + + var rgx = /\[([^\[\]]+)]()()()()()/g; + text = text.replace(rgx, replaceAnchorTagReference(rgx, evtRootName, options, globals)); + + text = globals.converter._dispatch(evtRootName + '.end', text, options, globals).getText(); + + return text; + }); + + /** + * TODO WRITE THIS DOCUMENTATION + */ + showdown.subParser('makehtml.links.ghMentions', function (text, options, globals) { + var evtRootName = evtRootName + 'ghMentions'; + + if (!options.ghMentions) { + return text; + } + + text = globals.converter._dispatch(evtRootName + '.start', text, options, globals).getText(); + + var rgx = /(^|\s)(\\)?(@([a-z\d]+(?:[a-z\d._-]+?[a-z\d]+)*))/gi; + + text = text.replace(rgx, function (wholeMatch, st, escape, mentions, username) { + // bail if the mentions was escaped + if (escape === '\\') { + return st + mentions; + } + + // check if options.ghMentionsLink is a string + // TODO Validation should be done at initialization not at runtime + if (!showdown.helper.isString(options.ghMentionsLink)) { + throw new Error('ghMentionsLink option must be a string'); + } + var url = options.ghMentionsLink.replace(/{u}/g, username); + var evt = createEvent(rgx, evtRootName + '.captureStart', wholeMatch, mentions, null, url, null, options, globals); + // captureEnd Event is triggered inside writeAnchorTag function + return st + writeAnchorTag(evt, options, globals); + }); + + text = globals.converter._dispatch(evtRootName + '.end', text, options, globals).getText(); + + return text; + }); + + /** + * TODO WRITE THIS DOCUMENTATION + */ + showdown.subParser('makehtml.links.angleBrackets', function (text, options, globals) { + var evtRootName = 'makehtml.links.angleBrackets'; + + text = globals.converter._dispatch(evtRootName + '.start', text, options, globals).getText(); + + // 1. Parse links first + var urlRgx = /<(((?:https?|ftp):\/\/|www\.)[^'">\s]+)>/gi; + text = text.replace(urlRgx, function (wholeMatch, url, urlStart) { + var text = url; + url = (urlStart === 'www.') ? 'http://' + url : url; + var evt = createEvent(urlRgx, evtRootName + '.captureStart', wholeMatch, text, null, url, null, options, globals); + return writeAnchorTag(evt, options, globals); + }); + + // 2. Then Mail Addresses + var mailRgx = /<(?:mailto:)?([-.\w]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)>/gi; + text = text.replace(mailRgx, function (wholeMatch, mail) { + var url = 'mailto:'; + mail = showdown.subParser('makehtml.unescapeSpecialChars')(mail, options, globals); + if (options.encodeEmails) { + url = showdown.helper.encodeEmailAddress(url + mail); + mail = showdown.helper.encodeEmailAddress(mail); + } else { + url = url + mail; + } + var evt = createEvent(mailRgx, evtRootName + '.captureStart', wholeMatch, mail, null, url, null, options, globals); + return writeAnchorTag(evt, options, globals); + }); + + text = globals.converter._dispatch(evtRootName + '.end', text, options, globals).getText(); + return text; + }); + + /** + * TODO MAKE THIS WORK (IT'S NOT ACTIVATED) + * TODO WRITE THIS DOCUMENTATION + */ + showdown.subParser('makehtml.links.naked', function (text, options, globals) { + if (!options.simplifiedAutoLink) { + return text; + } + + var evtRootName = 'makehtml.links.naked'; + + text = globals.converter._dispatch(evtRootName + '.start', text, options, globals).getText(); + + // 2. Now we check for + // we also include leading markdown magic chars [_*~] for cases like __https://www.google.com/foobar__ + var urlRgx = /([_*~]*?)(((?:https?|ftp):\/\/|www\.)[^\s<>"'`´.-][^\s<>"'`´]*?\.[a-z\d.]+[^\s<>"']*)\1/gi; + text = text.replace(urlRgx, function (wholeMatch, leadingMDChars, url, urlPrefix) { + + // we now will start traversing the url from the front to back, looking for punctuation chars [_*~,;:.!?\)\]] + var len = url.length; + var suffix = ''; + for (var i = len - 1; i >= 0; --i) { + var char = url.charAt(i); + + if (/[_*~,;:.!?]/.test(char)) { + // it's a punctuation char + // we remove it from the url + url = url.slice(0, -1); + // and prepend it to the suffix + suffix = char + suffix; + } else if (/\)/.test(char)) { + var opPar = url.match(/\(/g) || []; + var clPar = url.match(/\)/g); + + // it's a curved parenthesis so we need to check for "balance" (kinda) + if (opPar.length < clPar.length) { + // there are more closing Parenthesis than opening so chop it!!!!! + url = url.slice(0, -1); + // and prepend it to the suffix + suffix = char + suffix; + } else { + // it's (kinda) balanced so our work is done + break; + } + } else if (/]/.test(char)) { + var opPar2 = url.match(/\[/g) || []; + var clPar2 = url.match(/\]/g); + // it's a squared parenthesis so we need to check for "balance" (kinda) + if (opPar2.length < clPar2.length) { + // there are more closing Parenthesis than opening so chop it!!!!! + url = url.slice(0, -1); + // and prepend it to the suffix + suffix = char + suffix; + } else { + // it's (kinda) balanced so our work is done + break; + } + } else { + // it's not a punctuation or a parenthesis so our work is done + break; + } + } + + // we copy the treated url to the text variable + var text = url; + // finally, if it's a www shortcut, we prepend http + url = (urlPrefix === 'www.') ? 'http://' + url : url; + + // url part is done so let's take care of text now + // we need to escape the text (because of links such as www.example.com/foo__bar__baz) + text = text.replace(showdown.helper.regexes.asteriskDashTildeAndColon, showdown.helper.escapeCharactersCallback); + + // finally we dispatch the event + var evt = createEvent(urlRgx, evtRootName + '.captureStart', wholeMatch, text, null, url, null, options, globals); + + // and return the link tag, with the leadingMDChars and suffix. The leadingMDChars are added at the end too because + // we consumed those characters in the regexp + return leadingMDChars + writeAnchorTag(evt, options, globals) + suffix + leadingMDChars; + }); + + // 2. Then mails + var mailRgx = /(^|\s)(?:mailto:)?([A-Za-z0-9!#$%&'*+-/=?^_`{|}~.]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)(?=$|\s)/gmi; + text = text.replace(mailRgx, function (wholeMatch, leadingChar, mail) { + var url = 'mailto:'; + mail = showdown.subParser('makehtml.unescapeSpecialChars')(mail, options, globals); + if (options.encodeEmails) { + url = showdown.helper.encodeEmailAddress(url + mail); + mail = showdown.helper.encodeEmailAddress(mail); + } else { + url = url + mail; + } + var evt = createEvent(mailRgx, evtRootName + '.captureStart', wholeMatch, mail, null, url, null, options, globals); + return leadingChar + writeAnchorTag(evt, options, globals); + }); + + + text = globals.converter._dispatch(evtRootName + '.end', text, options, globals).getText(); + return text; + }); + })(); + + /** + * Form HTML ordered (numbered) and unordered (bulleted) lists. + */ + showdown.subParser('makehtml.lists', function (text, options, globals) { + 'use strict'; + + /** + * Process the contents of a single ordered or unordered list, splitting it + * into individual list items. + * @param {string} listStr + * @param {boolean} trimTrailing + * @returns {string} + */ + function processListItems (listStr, trimTrailing) { + // The $g_list_level global keeps track of when we're inside a list. + // Each time we enter a list, we increment it; when we leave a list, + // we decrement. If it's zero, we're not in a list anymore. + // + // We do this because when we're not inside a list, we want to treat + // something like this: + // + // I recommend upgrading to version + // 8. Oops, now this line is treated + // as a sub-list. + // + // As a single paragraph, despite the fact that the second line starts + // with a digit-period-space sequence. + // + // Whereas when we're inside a list (or sub-list), that line will be + // treated as the start of a sub-list. What a kludge, huh? This is + // an aspect of Markdown's syntax that's hard to parse perfectly + // without resorting to mind-reading. Perhaps the solution is to + // change the syntax rules such that sub-lists must start with a + // starting cardinal number; e.g. "1." or "a.". + globals.gListLevel++; + + // trim trailing blank lines: + listStr = listStr.replace(/\n{2,}$/, '\n'); + + // attacklab: add sentinel to emulate \z + listStr += '¨0'; + + var rgx = /(\n)?(^ {0,3})([*+-]|\d+[.])[ \t]+((\[(x|X| )?])?[ \t]*[^\r]+?(\n{1,2}))(?=\n*(¨0| {0,3}([*+-]|\d+[.])[ \t]+))/gm, + isParagraphed = (/\n[ \t]*\n(?!¨0)/.test(listStr)); + + // Since version 1.5, nesting sublists requires 4 spaces (or 1 tab) indentation, + // which is a syntax breaking change + // activating this option reverts to old behavior + // This will be removed in version 2.0 + if (options.disableForced4SpacesIndentedSublists) { + rgx = /(\n)?(^ {0,3})([*+-]|\d+[.])[ \t]+((\[(x|X| )?])?[ \t]*[^\r]+?(\n{1,2}))(?=\n*(¨0|\2([*+-]|\d+[.])[ \t]+))/gm; + } + + listStr = listStr.replace(rgx, function (wholeMatch, m1, m2, m3, m4, taskbtn, checked) { + checked = (checked && checked.trim() !== ''); + + var item = showdown.subParser('makehtml.outdent')(m4, options, globals), + bulletStyle = ''; + + // Support for github tasklists + if (taskbtn && options.tasklists) { + bulletStyle = ' class="task-list-item" style="list-style-type: none;"'; + item = item.replace(/^[ \t]*\[(x|X| )?]/m, function () { + var otp = '
  • a
  • + // instead of: + //
    • - - a
    + // So, to prevent it, we will put a marker (¨A)in the beginning of the line + // Kind of hackish/monkey patching, but seems more effective than overcomplicating the list parser + item = item.replace(/^([-*+]|\d\.)[ \t]+[\S\n ]*/g, function (wm2) { + return '¨A' + wm2; + }); + + // SPECIAL CASE: an heading followed by a paragraph of text that is not separated by a double newline + // or/nor indented. ex: + // + // - # foo + // bar is great + // + // While this does now follow the spec per se, not allowing for this might cause confusion since + // header blocks don't need double newlines after + if (/^#+.+\n.+/.test(item)) { + item = item.replace(/^(#+.+)$/m, '$1\n'); + } + + // m1 - Leading line or + // Has a double return (multi paragraph) + if (m1 || (item.search(/\n{2,}/) > -1)) { + item = showdown.subParser('makehtml.githubCodeBlocks')(item, options, globals); + item = showdown.subParser('makehtml.blockGamut')(item, options, globals); + } else { + + // Recursion for sub-lists: + item = showdown.subParser('makehtml.lists')(item, options, globals); + item = item.replace(/\n$/, ''); // chomp(item) + item = showdown.subParser('makehtml.hashHTMLBlocks')(item, options, globals); + + // Colapse double linebreaks + item = item.replace(/\n\n+/g, '\n\n'); + + if (isParagraphed) { + item = showdown.subParser('makehtml.paragraphs')(item, options, globals); + } else { + item = showdown.subParser('makehtml.spanGamut')(item, options, globals); + } + } + + // now we need to remove the marker (¨A) + item = item.replace('¨A', ''); + // we can finally wrap the line in list item tags + item = '' + item + '\n'; + + return item; + }); + + // attacklab: strip sentinel + listStr = listStr.replace(/¨0/g, ''); + + globals.gListLevel--; + + if (trimTrailing) { + listStr = listStr.replace(/\s+$/, ''); + } + + return listStr; + } + + function styleStartNumber (list, listType) { + // check if ol and starts by a number different than 1 + if (listType === 'ol') { + var res = list.match(/^ *(\d+)\./); + if (res && res[1] !== '1') { + return ' start="' + res[1] + '"'; + } + } + return ''; + } + + /** + * Check and parse consecutive lists (better fix for issue #142) + * @param {string} list + * @param {string} listType + * @param {boolean} trimTrailing + * @returns {string} + */ + function parseConsecutiveLists (list, listType, trimTrailing) { + // check if we caught 2 or more consecutive lists by mistake + // we use the counterRgx, meaning if listType is UL we look for OL and vice versa + var olRgx = (options.disableForced4SpacesIndentedSublists) ? /^ ?\d+\.[ \t]/gm : /^ {0,3}\d+\.[ \t]/gm, + ulRgx = (options.disableForced4SpacesIndentedSublists) ? /^ ?[*+-][ \t]/gm : /^ {0,3}[*+-][ \t]/gm, + counterRxg = (listType === 'ul') ? olRgx : ulRgx, + result = ''; + + if (list.search(counterRxg) !== -1) { + (function parseCL (txt) { + var pos = txt.search(counterRxg), + style = styleStartNumber(list, listType); + if (pos !== -1) { + // slice + result += '\n\n<' + listType + style + '>\n' + processListItems(txt.slice(0, pos), !!trimTrailing) + '\n'; + + // invert counterType and listType + listType = (listType === 'ul') ? 'ol' : 'ul'; + counterRxg = (listType === 'ul') ? olRgx : ulRgx; + + //recurse + parseCL(txt.slice(pos)); + } else { + result += '\n\n<' + listType + style + '>\n' + processListItems(txt, !!trimTrailing) + '\n'; + } + })(list); + } else { + var style = styleStartNumber(list, listType); + result = '\n\n<' + listType + style + '>\n' + processListItems(list, !!trimTrailing) + '\n'; + } + + return result; + } + + // Start of list parsing + var subListRgx = /^(( {0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(¨0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm; + var mainListRgx = /(\n\n|^\n?)(( {0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(¨0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm; + + text = globals.converter._dispatch('lists.before', text, options, globals).getText(); + // add sentinel to hack around khtml/safari bug: + // http://bugs.webkit.org/show_bug.cgi?id=11231 + text += '¨0'; + + if (globals.gListLevel) { + text = text.replace(subListRgx, function (wholeMatch, list, m2) { + var listType = (m2.search(/[*+-]/g) > -1) ? 'ul' : 'ol'; + return parseConsecutiveLists(list, listType, true); + }); + } else { + text = text.replace(mainListRgx, function (wholeMatch, m1, list, m3) { + var listType = (m3.search(/[*+-]/g) > -1) ? 'ul' : 'ol'; + return parseConsecutiveLists(list, listType, false); + }); + } + + // strip sentinel + text = text.replace(/¨0/, ''); + text = globals.converter._dispatch('makehtml.lists.after', text, options, globals).getText(); + return text; + }); + + /** + * Parse metadata at the top of the document + */ + showdown.subParser('makehtml.metadata', function (text, options, globals) { + 'use strict'; + + if (!options.metadata) { + return text; + } + + text = globals.converter._dispatch('makehtml.metadata.before', text, options, globals).getText(); + + function parseMetadataContents (content) { + // raw is raw so it's not changed in any way + globals.metadata.raw = content; + + // escape chars forbidden in html attributes + // double quotes + content = content + // ampersand first + .replace(/&/g, '&') + // double quotes + .replace(/"/g, '"'); + + content = content.replace(/\n {4}/g, ' '); + content.replace(/^([\S ]+): +([\s\S]+?)$/gm, function (wm, key, value) { + globals.metadata.parsed[key] = value; + return ''; + }); + } + + text = text.replace(/^\s*ÂĢÂĢÂĢ+(\S*?)\n([\s\S]+?)\nÂģÂģÂģ+\n/, function (wholematch, format, content) { + parseMetadataContents(content); + return '¨M'; + }); + + text = text.replace(/^\s*---+(\S*?)\n([\s\S]+?)\n---+\n/, function (wholematch, format, content) { + if (format) { + globals.metadata.format = format; + } + parseMetadataContents(content); + return '¨M'; + }); + + text = text.replace(/¨M/g, ''); + + text = globals.converter._dispatch('makehtml.metadata.after', text, options, globals).getText(); + return text; + }); + + /** + * Remove one level of line-leading tabs or spaces + */ + showdown.subParser('makehtml.outdent', function (text, options, globals) { + 'use strict'; + text = globals.converter._dispatch('makehtml.outdent.before', text, options, globals).getText(); + + // attacklab: hack around Konqueror 3.5.4 bug: + // "----------bug".replace(/^-/g,"") == "bug" + text = text.replace(/^(\t|[ ]{1,4})/gm, '¨0'); // attacklab: g_tab_width + + // attacklab: clean up hack + text = text.replace(/¨0/g, ''); + + text = globals.converter._dispatch('makehtml.outdent.after', text, options, globals).getText(); + return text; + }); + + /** + * + */ + showdown.subParser('makehtml.paragraphs', function (text, options, globals) { + 'use strict'; + + text = globals.converter._dispatch('makehtml.paragraphs.before', text, options, globals).getText(); + // Strip leading and trailing lines: + text = text.replace(/^\n+/g, ''); + text = text.replace(/\n+$/g, ''); + + var grafs = text.split(/\n{2,}/g), + grafsOut = [], + end = grafs.length; // Wrap

    tags + + for (var i = 0; i < end; i++) { + var str = grafs[i]; + // if this is an HTML marker, copy it + if (str.search(/¨(K|G)(\d+)\1/g) >= 0) { + grafsOut.push(str); + + // test for presence of characters to prevent empty lines being parsed + // as paragraphs (resulting in undesired extra empty paragraphs) + } else if (str.search(/\S/) >= 0) { + str = showdown.subParser('makehtml.spanGamut')(str, options, globals); + str = str.replace(/^([ \t]*)/g, '

    '); + str += '

    '; + grafsOut.push(str); + } + } + + /** Unhashify HTML blocks */ + end = grafsOut.length; + for (i = 0; i < end; i++) { + var blockText = '', + grafsOutIt = grafsOut[i], + codeFlag = false; + // if this is a marker for an html block... + // use RegExp.test instead of string.search because of QML bug + while (/¨(K|G)(\d+)\1/.test(grafsOutIt)) { + var delim = RegExp.$1, + num = RegExp.$2; + + if (delim === 'K') { + blockText = globals.gHtmlBlocks[num]; + } else { + // we need to check if ghBlock is a false positive + if (codeFlag) { + // use encoded version of all text + blockText = showdown.subParser('makehtml.encodeCode')(globals.ghCodeBlocks[num].text, options, globals); + } else { + blockText = globals.ghCodeBlocks[num].codeblock; + } + } + blockText = blockText.replace(/\$/g, '$$$$'); // Escape any dollar signs + + grafsOutIt = grafsOutIt.replace(/(\n\n)?¨(K|G)\d+\2(\n\n)?/, blockText); + // Check if grafsOutIt is a pre->code + if (/^]*>\s*]*>/.test(grafsOutIt)) { + codeFlag = true; + } + } + grafsOut[i] = grafsOutIt; + } + text = grafsOut.join('\n'); + // Strip leading and trailing lines: + text = text.replace(/^\n+/g, ''); + text = text.replace(/\n+$/g, ''); + return globals.converter._dispatch('makehtml.paragraphs.after', text, options, globals).getText(); + }); + + /** + * Run extension + */ + showdown.subParser('makehtml.runExtension', function (ext, text, options, globals) { + 'use strict'; + + if (ext.filter) { + text = ext.filter(text, globals.converter, options); + + } else if (ext.regex) { + // TODO remove this when old extension loading mechanism is deprecated + var re = ext.regex; + if (!(re instanceof RegExp)) { + re = new RegExp(re, 'g'); + } + text = text.replace(re, ext.replace); + } + + return text; + }); + + /** + * These are all the transformations that occur *within* block-level + * tags like paragraphs, headers, and list items. + */ + showdown.subParser('makehtml.spanGamut', function (text, options, globals) { + 'use strict'; + + text = globals.converter._dispatch('makehtml.span.before', text, options, globals).getText(); + + text = showdown.subParser('makehtml.codeSpans')(text, options, globals); + text = showdown.subParser('makehtml.escapeSpecialCharsWithinTagAttributes')(text, options, globals); + text = showdown.subParser('makehtml.encodeBackslashEscapes')(text, options, globals); + + // Process link and image tags. Images must come first, + // because ![foo][f] looks like a link. + text = showdown.subParser('makehtml.images')(text, options, globals); + + text = globals.converter._dispatch('smakehtml.links.before', text, options, globals).getText(); + text = showdown.subParser('makehtml.links')(text, options, globals); + text = globals.converter._dispatch('smakehtml.links.after', text, options, globals).getText(); + + //text = showdown.subParser('makehtml.autoLinks')(text, options, globals); + //text = showdown.subParser('makehtml.simplifiedAutoLinks')(text, options, globals); + text = showdown.subParser('makehtml.emoji')(text, options, globals); + text = showdown.subParser('makehtml.underline')(text, options, globals); + text = showdown.subParser('makehtml.italicsAndBold')(text, options, globals); + text = showdown.subParser('makehtml.strikethrough')(text, options, globals); + text = showdown.subParser('makehtml.ellipsis')(text, options, globals); + + // we need to hash HTML tags inside spans + text = showdown.subParser('makehtml.hashHTMLSpans')(text, options, globals); + + // now we encode amps and angles + text = showdown.subParser('makehtml.encodeAmpsAndAngles')(text, options, globals); + + // Do hard breaks + if (options.simpleLineBreaks) { + // GFM style hard breaks + // only add line breaks if the text does not contain a block (special case for lists) + if (!/\n\n¨K/.test(text)) { + text = text.replace(/\n+/g, '
    \n'); + } + } else { + // Vanilla hard breaks + text = text.replace(/ +\n/g, '
    \n'); + } + + text = globals.converter._dispatch('makehtml.spanGamut.after', text, options, globals).getText(); + return text; + }); + + showdown.subParser('makehtml.strikethrough', function (text, options, globals) { + 'use strict'; + + if (options.strikethrough) { + text = globals.converter._dispatch('makehtml.strikethrough.before', text, options, globals).getText(); + text = text.replace(/(?:~){2}([\s\S]+?)(?:~){2}/g, function (wm, txt) { return '' + txt + ''; }); + text = globals.converter._dispatch('makehtml.strikethrough.after', text, options, globals).getText(); + } + + return text; + }); + + /** + * Strips link definitions from text, stores the URLs and titles in + * hash references. + * Link defs are in the form: ^[id]: url "optional title" + */ + showdown.subParser('makehtml.stripLinkDefinitions', function (text, options, globals) { + 'use strict'; + + var regex = /^ {0,3}\[(.+)]:[ \t]*\n?[ \t]*\s]+)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*\n?[ \t]*(?:(\n*)["|'(](.+?)["|')][ \t]*)?(?:\n+|(?=¨0))/gm, + base64Regex = /^ {0,3}\[(.+)]:[ \t]*\n?[ \t]*?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*\n?[ \t]*(?:(\n*)["|'(](.+?)["|')][ \t]*)?(?:\n\n|(?=¨0)|(?=\n\[))/gm; + + // attacklab: sentinel workarounds for lack of \A and \Z, safari\khtml bug + text += '¨0'; + + var replaceFunc = function (wholeMatch, linkId, url, width, height, blankLines, title) { + linkId = linkId.toLowerCase(); + if (url.match(/^data:.+?\/.+?;base64,/)) { + // remove newlines + globals.gUrls[linkId] = url.replace(/\s/g, ''); + } else { + url = showdown.helper.applyBaseUrl(options.relativePathBaseUrl, url); + + globals.gUrls[linkId] = showdown.subParser('makehtml.encodeAmpsAndAngles')(url, options, globals); // Link IDs are case-insensitive + } + + if (blankLines) { + // Oops, found blank lines, so it's not a title. + // Put back the parenthetical statement we stole. + return blankLines + title; + + } else { + if (title) { + globals.gTitles[linkId] = title.replace(/"|'/g, '"'); + } + if (options.parseImgDimensions && width && height) { + globals.gDimensions[linkId] = { + width: width, + height: height + }; + } + } + // Completely remove the definition from the text + return ''; + }; + + // first we try to find base64 link references + text = text.replace(base64Regex, replaceFunc); + + text = text.replace(regex, replaceFunc); + + // attacklab: strip sentinel + text = text.replace(/¨0/, ''); + + return text; + }); + + showdown.subParser('makehtml.tables', function (text, options, globals) { + 'use strict'; + + if (!options.tables) { + return text; + } + + var tableRgx = /^ {0,3}\|?.+\|.+\n {0,3}\|?[ \t]*:?[ \t]*(?:[-=]){2,}[ \t]*:?[ \t]*\|[ \t]*:?[ \t]*(?:[-=]){2,}[\s\S]+?(?:\n\n|¨0)/gm, + //singeColTblRgx = /^ {0,3}\|.+\|\n {0,3}\|[ \t]*:?[ \t]*(?:[-=]){2,}[ \t]*:?[ \t]*\|[ \t]*\n(?: {0,3}\|.+\|\n)+(?:\n\n|¨0)/gm; + singeColTblRgx = /^ {0,3}\|.+\|[ \t]*\n {0,3}\|[ \t]*:?[ \t]*(?:[-=]){2,}[ \t]*:?[ \t]*\|[ \t]*\n( {0,3}\|.+\|[ \t]*\n)*(?:\n|¨0)/gm; + + function parseStyles (sLine) { + if (/^:[ \t]*--*$/.test(sLine)) { + return ' style="text-align:left;"'; + } else if (/^--*[ \t]*:[ \t]*$/.test(sLine)) { + return ' style="text-align:right;"'; + } else if (/^:[ \t]*--*[ \t]*:$/.test(sLine)) { + return ' style="text-align:center;"'; + } else { + return ''; + } + } + + function parseHeaders (header, style) { + var id = ''; + header = header.trim(); + // support both tablesHeaderId and tableHeaderId due to error in documentation so we don't break backwards compatibility + if (options.tablesHeaderId || options.tableHeaderId) { + id = ' id="' + header.replace(/ /g, '_').toLowerCase() + '"'; + } + header = showdown.subParser('makehtml.spanGamut')(header, options, globals); + + return '' + header + '\n'; + } + + function parseCells (cell, style) { + var subText = showdown.subParser('makehtml.spanGamut')(cell, options, globals); + return '' + subText + '\n'; + } + + function buildTable (headers, cells) { + var tb = '\n\n\n', + tblLgn = headers.length; + + for (var i = 0; i < tblLgn; ++i) { + tb += headers[i]; + } + tb += '\n\n\n'; + + for (i = 0; i < cells.length; ++i) { + tb += '\n'; + for (var ii = 0; ii < tblLgn; ++ii) { + tb += cells[i][ii]; + } + tb += '\n'; + } + tb += '\n
    \n'; + return tb; + } + + function parseTable (rawTable) { + var i, tableLines = rawTable.split('\n'); + + for (i = 0; i < tableLines.length; ++i) { + // strip wrong first and last column if wrapped tables are used + if (/^ {0,3}\|/.test(tableLines[i])) { + tableLines[i] = tableLines[i].replace(/^ {0,3}\|/, ''); + } + if (/\|[ \t]*$/.test(tableLines[i])) { + tableLines[i] = tableLines[i].replace(/\|[ \t]*$/, ''); + } + // parse code spans first, but we only support one line code spans + + tableLines[i] = showdown.subParser('makehtml.codeSpans')(tableLines[i], options, globals); + } + + var rawHeaders = tableLines[0].split('|').map(function (s) { return s.trim();}), + rawStyles = tableLines[1].split('|').map(function (s) { return s.trim();}), + rawCells = [], + headers = [], + styles = [], + cells = []; + + tableLines.shift(); + tableLines.shift(); + + for (i = 0; i < tableLines.length; ++i) { + if (tableLines[i].trim() === '') { + continue; + } + rawCells.push( + tableLines[i] + .split('|') + .map(function (s) { + return s.trim(); + }) + ); + } + + if (rawHeaders.length < rawStyles.length) { + return rawTable; + } + + for (i = 0; i < rawStyles.length; ++i) { + styles.push(parseStyles(rawStyles[i])); + } + + for (i = 0; i < rawHeaders.length; ++i) { + if (showdown.helper.isUndefined(styles[i])) { + styles[i] = ''; + } + headers.push(parseHeaders(rawHeaders[i], styles[i])); + } + + for (i = 0; i < rawCells.length; ++i) { + var row = []; + for (var ii = 0; ii < headers.length; ++ii) { + if (showdown.helper.isUndefined(rawCells[i][ii])) { + + } + row.push(parseCells(rawCells[i][ii], styles[ii])); + } + cells.push(row); + } + + return buildTable(headers, cells); + } + + text = globals.converter._dispatch('makehtml.tables.before', text, options, globals).getText(); + + // find escaped pipe characters + text = text.replace(/\\(\|)/g, showdown.helper.escapeCharactersCallback); + + // parse multi column tables + text = text.replace(tableRgx, parseTable); + + // parse one column tables + text = text.replace(singeColTblRgx, parseTable); + + text = globals.converter._dispatch('makehtml.tables.after', text, options, globals).getText(); + + return text; + }); + + showdown.subParser('makehtml.underline', function (text, options, globals) { + 'use strict'; + + if (!options.underline) { + return text; + } + + text = globals.converter._dispatch('makehtml.underline.before', text, options, globals).getText(); + + if (options.literalMidWordUnderscores) { + text = text.replace(/\b___(\S[\s\S]*?)___\b/g, function (wm, txt) { + return '' + txt + ''; + }); + text = text.replace(/\b__(\S[\s\S]*?)__\b/g, function (wm, txt) { + return '' + txt + ''; + }); + } else { + text = text.replace(/___(\S[\s\S]*?)___/g, function (wm, m) { + return (/\S$/.test(m)) ? '' + m + '' : wm; + }); + text = text.replace(/__(\S[\s\S]*?)__/g, function (wm, m) { + return (/\S$/.test(m)) ? '' + m + '' : wm; + }); + } + + // escape remaining underscores to prevent them being parsed by italic and bold + text = text.replace(/(_)/g, showdown.helper.escapeCharactersCallback); + + text = globals.converter._dispatch('makehtml.underline.after', text, options, globals).getText(); + + return text; + }); + + /** + * Swap back in all the special characters we've hidden. + */ + showdown.subParser('makehtml.unescapeSpecialChars', function (text, options, globals) { + 'use strict'; + text = globals.converter._dispatch('makehtml.unescapeSpecialChars.before', text, options, globals).getText(); + + text = text.replace(/¨E(\d+)E/g, function (wholeMatch, m1) { + var charCodeToReplace = parseInt(m1); + return String.fromCharCode(charCodeToReplace); + }); + + text = globals.converter._dispatch('makehtml.unescapeSpecialChars.after', text, options, globals).getText(); + return text; + }); + + showdown.subParser('makeMarkdown.blockquote', function (node, globals) { + 'use strict'; + + var txt = ''; + if (node.hasChildNodes()) { + var children = node.childNodes, + childrenLength = children.length; + + for (var i = 0; i < childrenLength; ++i) { + var innerTxt = showdown.subParser('makeMarkdown.node')(children[i], globals); + + if (innerTxt === '') { + continue; + } + txt += innerTxt; + } + } + // cleanup + txt = txt.trim(); + txt = '> ' + txt.split('\n').join('\n> '); + return txt; + }); + + showdown.subParser('makeMarkdown.break', function () { + 'use strict'; + + return ' \n'; + }); + + showdown.subParser('makeMarkdown.codeBlock', function (node, globals) { + 'use strict'; + + var lang = node.getAttribute('language'), + num = node.getAttribute('precodenum'); + return '```' + lang + '\n' + globals.preList[num] + '\n```'; + }); + + showdown.subParser('makeMarkdown.codeSpan', function (node) { + 'use strict'; + + return '`' + node.innerHTML + '`'; + }); + + showdown.subParser('makeMarkdown.emphasis', function (node, globals) { + 'use strict'; + + var txt = ''; + if (node.hasChildNodes()) { + txt += '*'; + var children = node.childNodes, + childrenLength = children.length; + for (var i = 0; i < childrenLength; ++i) { + txt += showdown.subParser('makeMarkdown.node')(children[i], globals); + } + txt += '*'; + } + return txt; + }); + + showdown.subParser('makeMarkdown.header', function (node, globals, headerLevel) { + 'use strict'; + + var headerMark = new Array(headerLevel + 1).join('#'), + txt = ''; + + if (node.hasChildNodes()) { + txt = headerMark + ' '; + var children = node.childNodes, + childrenLength = children.length; + + for (var i = 0; i < childrenLength; ++i) { + txt += showdown.subParser('makeMarkdown.node')(children[i], globals); + } + } + return txt; + }); + + showdown.subParser('makeMarkdown.hr', function () { + 'use strict'; + + return '---'; + }); + + showdown.subParser('makeMarkdown.image', function (node) { + 'use strict'; + + var txt = ''; + if (node.hasAttribute('src')) { + txt += '![' + node.getAttribute('alt') + ']('; + txt += '<' + node.getAttribute('src') + '>'; + if (node.hasAttribute('width') && node.hasAttribute('height')) { + txt += ' =' + node.getAttribute('width') + 'x' + node.getAttribute('height'); + } + + if (node.hasAttribute('title')) { + txt += ' "' + node.getAttribute('title') + '"'; + } + txt += ')'; + } + return txt; + }); + + showdown.subParser('makeMarkdown.links', function (node, globals) { + 'use strict'; + + var txt = ''; + if (node.hasChildNodes() && node.hasAttribute('href')) { + var children = node.childNodes, + childrenLength = children.length; + txt = '['; + for (var i = 0; i < childrenLength; ++i) { + txt += showdown.subParser('makeMarkdown.node')(children[i], globals); + } + txt += ']('; + txt += '<' + node.getAttribute('href') + '>'; + if (node.hasAttribute('title')) { + txt += ' "' + node.getAttribute('title') + '"'; + } + txt += ')'; + } + return txt; + }); + + showdown.subParser('makeMarkdown.list', function (node, globals, type) { + 'use strict'; + + var txt = ''; + if (!node.hasChildNodes()) { + return ''; + } + var listItems = node.childNodes, + listItemsLenght = listItems.length, + listNum = node.getAttribute('start') || 1; + + for (var i = 0; i < listItemsLenght; ++i) { + if (typeof listItems[i].tagName === 'undefined' || listItems[i].tagName.toLowerCase() !== 'li') { + continue; + } + + // define the bullet to use in list + var bullet = ''; + if (type === 'ol') { + bullet = listNum.toString() + '. '; + } else { + bullet = '- '; + } + + // parse list item + txt += bullet + showdown.subParser('makeMarkdown.listItem')(listItems[i], globals); + ++listNum; + } + + return txt.trim(); + }); + + showdown.subParser('makeMarkdown.listItem', function (node, globals) { + 'use strict'; + + var listItemTxt = ''; + + var children = node.childNodes, + childrenLenght = children.length; + + for (var i = 0; i < childrenLenght; ++i) { + listItemTxt += showdown.subParser('makeMarkdown.node')(children[i], globals); + } + // if it's only one liner, we need to add a newline at the end + if (!/\n$/.test(listItemTxt)) { + listItemTxt += '\n'; + } else { + // it's multiparagraph, so we need to indent + listItemTxt = listItemTxt + .split('\n') + .join('\n ') + .replace(/^ {4}$/gm, '') + .replace(/\n\n+/g, '\n\n'); + } + + return listItemTxt; + }); + + + + showdown.subParser('makeMarkdown.node', function (node, globals, spansOnly) { + 'use strict'; + + spansOnly = spansOnly || false; + + var txt = ''; + + // edge case of text without wrapper paragraph + if (node.nodeType === 3) { + return showdown.subParser('makeMarkdown.txt')(node, globals); + } + + // HTML comment + if (node.nodeType === 8) { + return '\n\n'; + } + + // process only node elements + if (node.nodeType !== 1) { + return ''; + } + + var tagName = node.tagName.toLowerCase(); + + switch (tagName) { + + // + // BLOCKS + // + case 'h1': + if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 1) + '\n\n'; } + break; + case 'h2': + if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 2) + '\n\n'; } + break; + case 'h3': + if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 3) + '\n\n'; } + break; + case 'h4': + if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 4) + '\n\n'; } + break; + case 'h5': + if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 5) + '\n\n'; } + break; + case 'h6': + if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 6) + '\n\n'; } + break; + + case 'p': + if (!spansOnly) { txt = showdown.subParser('makeMarkdown.paragraph')(node, globals) + '\n\n'; } + break; + + case 'blockquote': + if (!spansOnly) { txt = showdown.subParser('makeMarkdown.blockquote')(node, globals) + '\n\n'; } + break; + + case 'hr': + if (!spansOnly) { txt = showdown.subParser('makeMarkdown.hr')(node, globals) + '\n\n'; } + break; + + case 'ol': + if (!spansOnly) { txt = showdown.subParser('makeMarkdown.list')(node, globals, 'ol') + '\n\n'; } + break; + + case 'ul': + if (!spansOnly) { txt = showdown.subParser('makeMarkdown.list')(node, globals, 'ul') + '\n\n'; } + break; + + case 'precode': + if (!spansOnly) { txt = showdown.subParser('makeMarkdown.codeBlock')(node, globals) + '\n\n'; } + break; + + case 'pre': + if (!spansOnly) { txt = showdown.subParser('makeMarkdown.pre')(node, globals) + '\n\n'; } + break; + + case 'table': + if (!spansOnly) { txt = showdown.subParser('makeMarkdown.table')(node, globals) + '\n\n'; } + break; + + // + // SPANS + // + case 'code': + txt = showdown.subParser('makeMarkdown.codeSpan')(node, globals); + break; + + case 'em': + case 'i': + txt = showdown.subParser('makeMarkdown.emphasis')(node, globals); + break; + + case 'strong': + case 'b': + txt = showdown.subParser('makeMarkdown.strong')(node, globals); + break; + + case 'del': + txt = showdown.subParser('makeMarkdown.strikethrough')(node, globals); + break; + + case 'a': + txt = showdown.subParser('makeMarkdown.links')(node, globals); + break; + + case 'img': + txt = showdown.subParser('makeMarkdown.image')(node, globals); + break; + + case 'br': + txt = showdown.subParser('makeMarkdown.break')(node, globals); + break; + + default: + txt = node.outerHTML + '\n\n'; + } + + // common normalization + // TODO eventually + + return txt; + }); + + showdown.subParser('makeMarkdown.paragraph', function (node, globals) { + 'use strict'; + + var txt = ''; + if (node.hasChildNodes()) { + var children = node.childNodes, + childrenLength = children.length; + for (var i = 0; i < childrenLength; ++i) { + txt += showdown.subParser('makeMarkdown.node')(children[i], globals); + } + } + + // some text normalization + txt = txt.trim(); + + return txt; + }); + + showdown.subParser('makeMarkdown.pre', function (node, globals) { + 'use strict'; + + var num = node.getAttribute('prenum'); + return '
    ' + globals.preList[num] + '
    '; + }); + + showdown.subParser('makeMarkdown.strikethrough', function (node, globals) { + 'use strict'; + + var txt = ''; + if (node.hasChildNodes()) { + txt += '~~'; + var children = node.childNodes, + childrenLength = children.length; + for (var i = 0; i < childrenLength; ++i) { + txt += showdown.subParser('makeMarkdown.node')(children[i], globals); + } + txt += '~~'; + } + return txt; + }); + + showdown.subParser('makeMarkdown.strong', function (node, globals) { + 'use strict'; + + var txt = ''; + if (node.hasChildNodes()) { + txt += '**'; + var children = node.childNodes, + childrenLength = children.length; + for (var i = 0; i < childrenLength; ++i) { + txt += showdown.subParser('makeMarkdown.node')(children[i], globals); + } + txt += '**'; + } + return txt; + }); + + showdown.subParser('makeMarkdown.table', function (node, globals) { + 'use strict'; + + var txt = '', + tableArray = [[], []], + headings = node.querySelectorAll('thead>tr>th'), + rows = node.querySelectorAll('tbody>tr'), + i, ii; + for (i = 0; i < headings.length; ++i) { + var headContent = showdown.subParser('makeMarkdown.tableCell')(headings[i], globals), + allign = '---'; + + if (headings[i].hasAttribute('style')) { + var style = headings[i].getAttribute('style').toLowerCase().replace(/\s/g, ''); + switch (style) { + case 'text-align:left;': + allign = ':---'; + break; + case 'text-align:right;': + allign = '---:'; + break; + case 'text-align:center;': + allign = ':---:'; + break; + } + } + tableArray[0][i] = headContent.trim(); + tableArray[1][i] = allign; + } + + for (i = 0; i < rows.length; ++i) { + var r = tableArray.push([]) - 1, + cols = rows[i].getElementsByTagName('td'); + + for (ii = 0; ii < headings.length; ++ii) { + var cellContent = ' '; + if (typeof cols[ii] !== 'undefined') { + cellContent = showdown.subParser('makeMarkdown.tableCell')(cols[ii], globals); + } + tableArray[r].push(cellContent); + } + } + + var cellSpacesCount = 3; + for (i = 0; i < tableArray.length; ++i) { + for (ii = 0; ii < tableArray[i].length; ++ii) { + var strLen = tableArray[i][ii].length; + if (strLen > cellSpacesCount) { + cellSpacesCount = strLen; + } + } + } + + for (i = 0; i < tableArray.length; ++i) { + for (ii = 0; ii < tableArray[i].length; ++ii) { + if (i === 1) { + if (tableArray[i][ii].slice(-1) === ':') { + tableArray[i][ii] = showdown.helper.padEnd(tableArray[i][ii].slice(-1), cellSpacesCount - 1, '-') + ':'; + } else { + tableArray[i][ii] = showdown.helper.padEnd(tableArray[i][ii], cellSpacesCount, '-'); + } + } else { + tableArray[i][ii] = showdown.helper.padEnd(tableArray[i][ii], cellSpacesCount); + } + } + txt += '| ' + tableArray[i].join(' | ') + ' |\n'; + } + + return txt.trim(); + }); + + showdown.subParser('makeMarkdown.tableCell', function (node, globals) { + 'use strict'; + + var txt = ''; + if (!node.hasChildNodes()) { + return ''; + } + var children = node.childNodes, + childrenLength = children.length; + + for (var i = 0; i < childrenLength; ++i) { + txt += showdown.subParser('makeMarkdown.node')(children[i], globals, true); + } + return txt.trim(); + }); + + showdown.subParser('makeMarkdown.txt', function (node) { + 'use strict'; + + var txt = node.nodeValue; + + // multiple spaces are collapsed + txt = txt.replace(/ +/g, ' '); + + // replace the custom ¨NBSP; with a space + txt = txt.replace(/¨NBSP;/g, ' '); + + // ", <, > and & should replace escaped html entities + txt = showdown.helper.unescapeHTMLEntities(txt); + + // escape markdown magic characters + // emphasis, strong and strikethrough - can appear everywhere + // we also escape pipe (|) because of tables + // and escape ` because of code blocks and spans + txt = txt.replace(/([*_~|`])/g, '\\$1'); + + // escape > because of blockquotes + txt = txt.replace(/^(\s*)>/g, '\\$1>'); + + // hash character, only troublesome at the beginning of a line because of headers + txt = txt.replace(/^#/gm, '\\#'); + + // horizontal rules + txt = txt.replace(/^(\s*)([-=]{3,})(\s*)$/, '$1\\$2$3'); + + // dot, because of ordered lists, only troublesome at the beginning of a line when preceded by an integer + txt = txt.replace(/^( {0,3}\d+)\./gm, '$1\\.'); + + // +, * and -, at the beginning of a line becomes a list, so we need to escape them also (asterisk was already escaped) + txt = txt.replace(/^( {0,3})([+-])/gm, '$1\\$2'); + + // images and links, ] followed by ( is problematic, so we escape it + txt = txt.replace(/]([\s]*)\(/g, '\\]$1\\('); + + // reference URIs must also be escaped + txt = txt.replace(/^ {0,3}\[([\S \t]*?)]:/gm, '\\[$1]:'); + + return txt; + }); + + /** + * Created by Estevao on 31-05-2015. + */ + + /** + * Showdown Converter class + * @class + * @param {object} [converterOptions] + * @returns {Converter} + */ + showdown.Converter = function (converterOptions) { + 'use strict'; + + var + /** + * Options used by this converter + * @private + * @type {{}} + */ + options = {}, + + /** + * Language extensions used by this converter + * @private + * @type {Array} + */ + langExtensions = [], + + /** + * Output modifiers extensions used by this converter + * @private + * @type {Array} + */ + outputModifiers = [], + + /** + * Event listeners + * @private + * @type {{}} + */ + listeners = {}, + + /** + * The flavor set in this converter + */ + setConvFlavor = setFlavor, + + /** + * Metadata of the document + * @type {{parsed: {}, raw: string, format: string}} + */ + metadata = { + parsed: {}, + raw: '', + format: '' + }; + + _constructor(); + + /** + * Converter constructor + * @private + */ + function _constructor () { + converterOptions = converterOptions || {}; + + for (var gOpt in globalOptions) { + if (globalOptions.hasOwnProperty(gOpt)) { + options[gOpt] = globalOptions[gOpt]; + } + } + + // Merge options + if (typeof converterOptions === 'object') { + for (var opt in converterOptions) { + if (converterOptions.hasOwnProperty(opt)) { + options[opt] = converterOptions[opt]; + } + } + } else { + throw Error('Converter expects the passed parameter to be an object, but ' + typeof converterOptions + + ' was passed instead.'); + } + + if (options.extensions) { + showdown.helper.forEach(options.extensions, _parseExtension); + } + } + + /** + * Parse extension + * @param {*} ext + * @param {string} [name=''] + * @private + */ + function _parseExtension (ext, name) { + + name = name || null; + // If it's a string, the extension was previously loaded + if (showdown.helper.isString(ext)) { + ext = showdown.helper.stdExtName(ext); + name = ext; + + // LEGACY_SUPPORT CODE + if (showdown.extensions[ext]) { + console.warn('DEPRECATION WARNING: ' + ext + ' is an old extension that uses a deprecated loading method.' + + 'Please inform the developer that the extension should be updated!'); + legacyExtensionLoading(showdown.extensions[ext], ext); + return; + // END LEGACY SUPPORT CODE + + } else if (!showdown.helper.isUndefined(extensions[ext])) { + ext = extensions[ext]; + + } else { + throw Error('Extension "' + ext + '" could not be loaded. It was either not found or is not a valid extension.'); + } + } + + if (typeof ext === 'function') { + ext = ext(); + } + + if (!showdown.helper.isArray(ext)) { + ext = [ext]; + } + + var validExt = validate(ext, name); + if (!validExt.valid) { + throw Error(validExt.error); + } + + for (var i = 0; i < ext.length; ++i) { + switch (ext[i].type) { + + case 'lang': + langExtensions.push(ext[i]); + break; + + case 'output': + outputModifiers.push(ext[i]); + break; + } + if (ext[i].hasOwnProperty('listeners')) { + for (var ln in ext[i].listeners) { + if (ext[i].listeners.hasOwnProperty(ln)) { + listen(ln, ext[i].listeners[ln]); + } + } + } + } + + } + + /** + * LEGACY_SUPPORT + * @param {*} ext + * @param {string} name + */ + function legacyExtensionLoading (ext, name) { + if (typeof ext === 'function') { + ext = ext(new showdown.Converter()); + } + if (!showdown.helper.isArray(ext)) { + ext = [ext]; + } + var valid = validate(ext, name); + + if (!valid.valid) { + throw Error(valid.error); + } + + for (var i = 0; i < ext.length; ++i) { + switch (ext[i].type) { + case 'lang': + langExtensions.push(ext[i]); + break; + case 'output': + outputModifiers.push(ext[i]); + break; + default:// should never reach here + throw Error('Extension loader error: Type unrecognized!!!'); + } + } + } + + /** + * Listen to an event + * @param {string} name + * @param {function} callback + */ + function listen (name, callback) { + if (!showdown.helper.isString(name)) { + throw Error('Invalid argument in converter.listen() method: name must be a string, but ' + typeof name + ' given'); + } + + if (typeof callback !== 'function') { + throw Error('Invalid argument in converter.listen() method: callback must be a function, but ' + typeof callback + ' given'); + } + name = name.toLowerCase(); + if (!listeners.hasOwnProperty(name)) { + listeners[name] = []; + } + listeners[name].push(callback); + } + + function rTrimInputText (text) { + var rsp = text.match(/^\s*/)[0].length, + rgx = new RegExp('^\\s{0,' + rsp + '}', 'gm'); + return text.replace(rgx, ''); + } + + /** + * + * @param {string} evtName Event name + * @param {string} text Text + * @param {{}} options Converter Options + * @param {{}} globals Converter globals + * @param {{}} pParams extra params for event + * @returns showdown.helper.Event + * @private + */ + this._dispatch = function dispatch (evtName, text, options, globals, pParams) { + evtName = evtName.toLowerCase(); + var params = pParams || {}; + params.converter = this; + params.text = text; + params.options = options; + params.globals = globals; + var event = new showdown.helper.Event(evtName, text, params); + + if (listeners.hasOwnProperty(evtName)) { + for (var ei = 0; ei < listeners[evtName].length; ++ei) { + var nText = listeners[evtName][ei](event); + if (nText && typeof nText !== 'undefined') { + event.setText(nText); + } + } + } + return event; + }; + + /** + * Listen to an event + * @param {string} name + * @param {function} callback + * @returns {showdown.Converter} + */ + this.listen = function (name, callback) { + listen(name, callback); + return this; + }; + + /** + * Converts a markdown string into HTML string + * @param {string} text + * @returns {*} + */ + this.makeHtml = function (text) { + //check if text is not falsy + if (!text) { + return text; + } + + var globals = { + gHtmlBlocks: [], + gHtmlMdBlocks: [], + gHtmlSpans: [], + gUrls: {}, + gTitles: {}, + gDimensions: {}, + gListLevel: 0, + hashLinkCounts: {}, + langExtensions: langExtensions, + outputModifiers: outputModifiers, + converter: this, + ghCodeBlocks: [], + metadata: { + parsed: {}, + raw: '', + format: '' + } + }; + + // This lets us use ¨ trema as an escape char to avoid md5 hashes + // The choice of character is arbitrary; anything that isn't + // magic in Markdown will work. + text = text.replace(/¨/g, '¨T'); + + // Replace $ with ¨D + // RegExp interprets $ as a special character + // when it's in a replacement string + text = text.replace(/\$/g, '¨D'); + + // Standardize line endings + text = text.replace(/\r\n/g, '\n'); // DOS to Unix + text = text.replace(/\r/g, '\n'); // Mac to Unix + + // Stardardize line spaces + text = text.replace(/\u00A0/g, ' '); + + if (options.smartIndentationFix) { + text = rTrimInputText(text); + } + + // Make sure text begins and ends with a couple of newlines: + text = '\n\n' + text + '\n\n'; + + // detab + text = showdown.subParser('makehtml.detab')(text, options, globals); + + /** + * Strip any lines consisting only of spaces and tabs. + * This makes subsequent regexs easier to write, because we can + * match consecutive blank lines with /\n+/ instead of something + * contorted like /[ \t]*\n+/ + */ + text = text.replace(/^[ \t]+$/mg, ''); + + //run languageExtensions + showdown.helper.forEach(langExtensions, function (ext) { + text = showdown.subParser('makehtml.runExtension')(ext, text, options, globals); + }); + + // run the sub parsers + text = showdown.subParser('makehtml.metadata')(text, options, globals); + text = showdown.subParser('makehtml.hashPreCodeTags')(text, options, globals); + text = showdown.subParser('makehtml.githubCodeBlocks')(text, options, globals); + text = showdown.subParser('makehtml.hashHTMLBlocks')(text, options, globals); + text = showdown.subParser('makehtml.hashCodeTags')(text, options, globals); + text = showdown.subParser('makehtml.stripLinkDefinitions')(text, options, globals); + text = showdown.subParser('makehtml.blockGamut')(text, options, globals); + text = showdown.subParser('makehtml.unhashHTMLSpans')(text, options, globals); + text = showdown.subParser('makehtml.unescapeSpecialChars')(text, options, globals); + + // attacklab: Restore dollar signs + text = text.replace(/¨D/g, '$$'); + + // attacklab: Restore tremas + text = text.replace(/¨T/g, '¨'); + + // render a complete html document instead of a partial if the option is enabled + text = showdown.subParser('makehtml.completeHTMLDocument')(text, options, globals); + + // Run output modifiers + showdown.helper.forEach(outputModifiers, function (ext) { + text = showdown.subParser('makehtml.runExtension')(ext, text, options, globals); + }); + + // update metadata + metadata = globals.metadata; + return text; + }; + + /** + * Converts an HTML string into a markdown string + * @param src + * @returns {string} + */ + this.makeMarkdown = function (src) { + + // replace \r\n with \n + src = src.replace(/\r\n/g, '\n'); + src = src.replace(/\r/g, '\n'); // old macs + + // due to an edge case, we need to find this: > < + // to prevent removing of non silent white spaces + // ex: this is sparta + src = src.replace(/>[ \t]+¨NBSP;<'); + + var doc = showdown.helper.document.createElement('div'); + doc.innerHTML = src; + + var globals = { + preList: substitutePreCodeTags(doc) + }; + + // remove all newlines and collapse spaces + clean(doc); + + // some stuff, like accidental reference links must now be escaped + // TODO + // doc.innerHTML = doc.innerHTML.replace(/\[[\S\t ]]/); + + var nodes = doc.childNodes, + mdDoc = ''; + + for (var i = 0; i < nodes.length; i++) { + mdDoc += showdown.subParser('makeMarkdown.node')(nodes[i], globals); + } + + function clean (node) { + for (var n = 0; n < node.childNodes.length; ++n) { + var child = node.childNodes[n]; + if (child.nodeType === 3) { + if (!/\S/.test(child.nodeValue) && !/^[ ]+$/.test(child.nodeValue)) { + node.removeChild(child); + --n; + } else { + child.nodeValue = child.nodeValue.split('\n').join(' '); + child.nodeValue = child.nodeValue.replace(/(\s)+/g, '$1'); + } + } else if (child.nodeType === 1) { + clean(child); + } + } + } + + // find all pre tags and replace contents with placeholder + // we need this so that we can remove all indentation from html + // to ease up parsing + function substitutePreCodeTags (doc) { + + var pres = doc.querySelectorAll('pre'), + presPH = []; + + for (var i = 0; i < pres.length; ++i) { + + if (pres[i].childElementCount === 1 && pres[i].firstChild.tagName.toLowerCase() === 'code') { + var content = pres[i].firstChild.innerHTML.trim(), + language = pres[i].firstChild.getAttribute('data-language') || ''; + + // if data-language attribute is not defined, then we look for class language-* + if (language === '') { + var classes = pres[i].firstChild.className.split(' '); + for (var c = 0; c < classes.length; ++c) { + var matches = classes[c].match(/^language-(.+)$/); + if (matches !== null) { + language = matches[1]; + break; + } + } + } + + // unescape html entities in content + content = showdown.helper.unescapeHTMLEntities(content); + + presPH.push(content); + pres[i].outerHTML = ''; + } else { + presPH.push(pres[i].innerHTML); + pres[i].innerHTML = ''; + pres[i].setAttribute('prenum', i.toString()); + } + } + return presPH; + } + + return mdDoc; + }; + + /** + * Set an option of this Converter instance + * @param {string} key + * @param {*} value + */ + this.setOption = function (key, value) { + options[key] = value; + }; + + /** + * Get the option of this Converter instance + * @param {string} key + * @returns {*} + */ + this.getOption = function (key) { + return options[key]; + }; + + /** + * Get the options of this Converter instance + * @returns {{}} + */ + this.getOptions = function () { + return options; + }; + + /** + * Add extension to THIS converter + * @param {{}} extension + * @param {string} [name=null] + */ + this.addExtension = function (extension, name) { + name = name || null; + _parseExtension(extension, name); + }; + + /** + * Use a global registered extension with THIS converter + * @param {string} extensionName Name of the previously registered extension + */ + this.useExtension = function (extensionName) { + _parseExtension(extensionName); + }; + + /** + * Set the flavor THIS converter should use + * @param {string} name + */ + this.setFlavor = function (name) { + if (!flavor.hasOwnProperty(name)) { + throw Error(name + ' flavor was not found'); + } + var preset = flavor[name]; + setConvFlavor = name; + for (var option in preset) { + if (preset.hasOwnProperty(option)) { + options[option] = preset[option]; + } + } + }; + + /** + * Get the currently set flavor of this converter + * @returns {string} + */ + this.getFlavor = function () { + return setConvFlavor; + }; + + /** + * Remove an extension from THIS converter. + * Note: This is a costly operation. It's better to initialize a new converter + * and specify the extensions you wish to use + * @param {Array} extension + */ + this.removeExtension = function (extension) { + if (!showdown.helper.isArray(extension)) { + extension = [extension]; + } + for (var a = 0; a < extension.length; ++a) { + var ext = extension[a]; + for (var i = 0; i < langExtensions.length; ++i) { + if (langExtensions[i] === ext) { + langExtensions[i].splice(i, 1); + } + } + for (var ii = 0; ii < outputModifiers.length; ++i) { + if (outputModifiers[ii] === ext) { + outputModifiers[ii].splice(i, 1); + } + } + } + }; + + /** + * Get all extension of THIS converter + * @returns {{language: Array, output: Array}} + */ + this.getAllExtensions = function () { + return { + language: langExtensions, + output: outputModifiers + }; + }; + + /** + * Get the metadata of the previously parsed document + * @param raw + * @returns {string|{}} + */ + this.getMetadata = function (raw) { + if (raw) { + return metadata.raw; + } else { + return metadata.parsed; + } + }; + + /** + * Get the metadata format of the previously parsed document + * @returns {string} + */ + this.getMetadataFormat = function () { + return metadata.format; + }; + + /** + * Private: set a single key, value metadata pair + * @param {string} key + * @param {string} value + */ + this._setMetadataPair = function (key, value) { + metadata.parsed[key] = value; + }; + + /** + * Private: set metadata format + * @param {string} format + */ + this._setMetadataFormat = function (format) { + metadata.format = format; + }; + + /** + * Private: set metadata raw text + * @param {string} raw + */ + this._setMetadataRaw = function (raw) { + metadata.raw = raw; + }; + }; + + var root = this; + +// AMD Loader + if (typeof define === 'function' && define.amd) { + define(function () { + 'use strict'; + return showdown; + }); + +// CommonJS/nodeJS Loader + } else if (typeof module !== 'undefined' && module.exports) { + module.exports = showdown; + +// Regular Browser loader + } else { + root.showdown = showdown; + } +}).call(this); + +//# sourceMappingURL=showdown.js.map diff --git a/src/renderer/lib/smoothscroll.js b/src/renderer/lib/smoothscroll.js new file mode 100644 index 00000000..8c694ad6 --- /dev/null +++ b/src/renderer/lib/smoothscroll.js @@ -0,0 +1,434 @@ +/* smoothscroll v0.4.4 - 2019 - Dustan Kasten, Jeremias Menichelli - MIT License */ +(function () { + 'use strict'; + + // polyfill + function polyfill() { + // aliases + var w = window; + var d = document; + + // return if scroll behavior is supported and polyfill is not forced + if ( + 'scrollBehavior' in d.documentElement.style && + w.__forceSmoothScrollPolyfill__ !== true + ) { + return; + } + + // globals + var Element = w.HTMLElement || w.Element; + var SCROLL_TIME = 468; + + // object gathering original scroll methods + var original = { + scroll: w.scroll || w.scrollTo, + scrollBy: w.scrollBy, + elementScroll: Element.prototype.scroll || scrollElement, + scrollIntoView: Element.prototype.scrollIntoView + }; + + // define timing method + var now = + w.performance && w.performance.now + ? w.performance.now.bind(w.performance) + : Date.now; + + /** + * indicates if a the current browser is made by Microsoft + * @method isMicrosoftBrowser + * @param {String} userAgent + * @returns {Boolean} + */ + function isMicrosoftBrowser(userAgent) { + var userAgentPatterns = ['MSIE ', 'Trident/', 'Edge/']; + + return new RegExp(userAgentPatterns.join('|')).test(userAgent); + } + + /* + * IE has rounding bug rounding down clientHeight and clientWidth and + * rounding up scrollHeight and scrollWidth causing false positives + * on hasScrollableSpace + */ + var ROUNDING_TOLERANCE = isMicrosoftBrowser(w.navigator.userAgent) ? 1 : 0; + + /** + * changes scroll position inside an element + * @method scrollElement + * @param {Number} x + * @param {Number} y + * @returns {undefined} + */ + function scrollElement(x, y) { + this.scrollLeft = x; + this.scrollTop = y; + } + + /** + * returns result of applying ease math function to a number + * @method ease + * @param {Number} k + * @returns {Number} + */ + function ease(k) { + return 0.5 * (1 - Math.cos(Math.PI * k)); + } + + /** + * indicates if a smooth behavior should be applied + * @method shouldBailOut + * @param {Number|Object} firstArg + * @returns {Boolean} + */ + function shouldBailOut(firstArg) { + if ( + firstArg === null || + typeof firstArg !== 'object' || + firstArg.behavior === undefined || + firstArg.behavior === 'auto' || + firstArg.behavior === 'instant' + ) { + // first argument is not an object/null + // or behavior is auto, instant or undefined + return true; + } + + if (typeof firstArg === 'object' && firstArg.behavior === 'smooth') { + // first argument is an object and behavior is smooth + return false; + } + + // throw error when behavior is not supported + throw new TypeError( + 'behavior member of ScrollOptions ' + + firstArg.behavior + + ' is not a valid value for enumeration ScrollBehavior.' + ); + } + + /** + * indicates if an element has scrollable space in the provided axis + * @method hasScrollableSpace + * @param {Node} el + * @param {String} axis + * @returns {Boolean} + */ + function hasScrollableSpace(el, axis) { + if (axis === 'Y') { + return el.clientHeight + ROUNDING_TOLERANCE < el.scrollHeight; + } + + if (axis === 'X') { + return el.clientWidth + ROUNDING_TOLERANCE < el.scrollWidth; + } + } + + /** + * indicates if an element has a scrollable overflow property in the axis + * @method canOverflow + * @param {Node} el + * @param {String} axis + * @returns {Boolean} + */ + function canOverflow(el, axis) { + var overflowValue = w.getComputedStyle(el, null)['overflow' + axis]; + + return overflowValue === 'auto' || overflowValue === 'scroll'; + } + + /** + * indicates if an element can be scrolled in either axis + * @method isScrollable + * @param {Node} el + * @param {String} axis + * @returns {Boolean} + */ + function isScrollable(el) { + var isScrollableY = hasScrollableSpace(el, 'Y') && canOverflow(el, 'Y'); + var isScrollableX = hasScrollableSpace(el, 'X') && canOverflow(el, 'X'); + + return isScrollableY || isScrollableX; + } + + /** + * finds scrollable parent of an element + * @method findScrollableParent + * @param {Node} el + * @returns {Node} el + */ + function findScrollableParent(el) { + while (el !== d.body && isScrollable(el) === false) { + el = el.parentNode || el.host; + } + + return el; + } + + /** + * self invoked function that, given a context, steps through scrolling + * @method step + * @param {Object} context + * @returns {undefined} + */ + function step(context) { + var time = now(); + var value; + var currentX; + var currentY; + var elapsed = (time - context.startTime) / SCROLL_TIME; + + // avoid elapsed times higher than one + elapsed = elapsed > 1 ? 1 : elapsed; + + // apply easing to elapsed time + value = ease(elapsed); + + currentX = context.startX + (context.x - context.startX) * value; + currentY = context.startY + (context.y - context.startY) * value; + + context.method.call(context.scrollable, currentX, currentY); + + // scroll more if we have not reached our destination + if (currentX !== context.x || currentY !== context.y) { + w.requestAnimationFrame(step.bind(w, context)); + } + } + + /** + * scrolls window or element with a smooth behavior + * @method smoothScroll + * @param {Object|Node} el + * @param {Number} x + * @param {Number} y + * @returns {undefined} + */ + function smoothScroll(el, x, y) { + var scrollable; + var startX; + var startY; + var method; + var startTime = now(); + + // define scroll context + if (el === d.body) { + scrollable = w; + startX = w.scrollX || w.pageXOffset; + startY = w.scrollY || w.pageYOffset; + method = original.scroll; + } else { + scrollable = el; + startX = el.scrollLeft; + startY = el.scrollTop; + method = scrollElement; + } + + // scroll looping over a frame + step({ + scrollable: scrollable, + method: method, + startTime: startTime, + startX: startX, + startY: startY, + x: x, + y: y + }); + } + + // ORIGINAL METHODS OVERRIDES + // w.scroll and w.scrollTo + w.scroll = w.scrollTo = function() { + // avoid action when no arguments are passed + if (arguments[0] === undefined) { + return; + } + + // avoid smooth behavior if not required + if (shouldBailOut(arguments[0]) === true) { + original.scroll.call( + w, + arguments[0].left !== undefined + ? arguments[0].left + : typeof arguments[0] !== 'object' + ? arguments[0] + : w.scrollX || w.pageXOffset, + // use top prop, second argument if present or fallback to scrollY + arguments[0].top !== undefined + ? arguments[0].top + : arguments[1] !== undefined + ? arguments[1] + : w.scrollY || w.pageYOffset + ); + + return; + } + + // LET THE SMOOTHNESS BEGIN! + smoothScroll.call( + w, + d.body, + arguments[0].left !== undefined + ? ~~arguments[0].left + : w.scrollX || w.pageXOffset, + arguments[0].top !== undefined + ? ~~arguments[0].top + : w.scrollY || w.pageYOffset + ); + }; + + // w.scrollBy + w.scrollBy = function() { + // avoid action when no arguments are passed + if (arguments[0] === undefined) { + return; + } + + // avoid smooth behavior if not required + if (shouldBailOut(arguments[0])) { + original.scrollBy.call( + w, + arguments[0].left !== undefined + ? arguments[0].left + : typeof arguments[0] !== 'object' ? arguments[0] : 0, + arguments[0].top !== undefined + ? arguments[0].top + : arguments[1] !== undefined ? arguments[1] : 0 + ); + + return; + } + + // LET THE SMOOTHNESS BEGIN! + smoothScroll.call( + w, + d.body, + ~~arguments[0].left + (w.scrollX || w.pageXOffset), + ~~arguments[0].top + (w.scrollY || w.pageYOffset) + ); + }; + + // Element.prototype.scroll and Element.prototype.scrollTo + Element.prototype.scroll = Element.prototype.scrollTo = function() { + // avoid action when no arguments are passed + if (arguments[0] === undefined) { + return; + } + + // avoid smooth behavior if not required + if (shouldBailOut(arguments[0]) === true) { + // if one number is passed, throw error to match Firefox implementation + if (typeof arguments[0] === 'number' && arguments[1] === undefined) { + throw new SyntaxError('Value could not be converted'); + } + + original.elementScroll.call( + this, + // use left prop, first number argument or fallback to scrollLeft + arguments[0].left !== undefined + ? ~~arguments[0].left + : typeof arguments[0] !== 'object' ? ~~arguments[0] : this.scrollLeft, + // use top prop, second argument or fallback to scrollTop + arguments[0].top !== undefined + ? ~~arguments[0].top + : arguments[1] !== undefined ? ~~arguments[1] : this.scrollTop + ); + + return; + } + + var left = arguments[0].left; + var top = arguments[0].top; + + // LET THE SMOOTHNESS BEGIN! + smoothScroll.call( + this, + this, + typeof left === 'undefined' ? this.scrollLeft : ~~left, + typeof top === 'undefined' ? this.scrollTop : ~~top + ); + }; + + // Element.prototype.scrollBy + Element.prototype.scrollBy = function() { + // avoid action when no arguments are passed + if (arguments[0] === undefined) { + return; + } + + // avoid smooth behavior if not required + if (shouldBailOut(arguments[0]) === true) { + original.elementScroll.call( + this, + arguments[0].left !== undefined + ? ~~arguments[0].left + this.scrollLeft + : ~~arguments[0] + this.scrollLeft, + arguments[0].top !== undefined + ? ~~arguments[0].top + this.scrollTop + : ~~arguments[1] + this.scrollTop + ); + + return; + } + + this.scroll({ + left: ~~arguments[0].left + this.scrollLeft, + top: ~~arguments[0].top + this.scrollTop, + behavior: arguments[0].behavior + }); + }; + + // Element.prototype.scrollIntoView + Element.prototype.scrollIntoView = function() { + // avoid smooth behavior if not required + if (shouldBailOut(arguments[0]) === true) { + original.scrollIntoView.call( + this, + arguments[0] === undefined ? true : arguments[0] + ); + + return; + } + + // LET THE SMOOTHNESS BEGIN! + var scrollableParent = findScrollableParent(this); + var parentRects = scrollableParent.getBoundingClientRect(); + var clientRects = this.getBoundingClientRect(); + + if (scrollableParent !== d.body) { + // reveal element inside parent + smoothScroll.call( + this, + scrollableParent, + scrollableParent.scrollLeft + clientRects.left - parentRects.left, + scrollableParent.scrollTop + clientRects.top - parentRects.top + ); + + // reveal parent in viewport unless is fixed + if (w.getComputedStyle(scrollableParent).position !== 'fixed') { + w.scrollBy({ + left: parentRects.left, + top: parentRects.top, + behavior: 'smooth' + }); + } + } else { + // reveal element in viewport + w.scrollBy({ + left: clientRects.left, + top: clientRects.top, + behavior: 'smooth' + }); + } + }; + } + + if (typeof exports === 'object' && typeof module !== 'undefined') { + // commonjs + module.exports = { polyfill: polyfill }; + } else { + // global + polyfill(); + } + + }()); + \ No newline at end of file diff --git a/src/renderer/js/sortable.min.js b/src/renderer/lib/sortable.min.js similarity index 100% rename from src/renderer/js/sortable.min.js rename to src/renderer/lib/sortable.min.js diff --git a/src/renderer/lib/stackblur.min.js b/src/renderer/lib/stackblur.min.js new file mode 100644 index 00000000..79cff7a8 --- /dev/null +++ b/src/renderer/lib/stackblur.min.js @@ -0,0 +1,2 @@ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).StackBlur={})}(this,(function(t){"use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var r=[512,512,456,512,328,456,335,512,405,328,271,456,388,335,292,512,454,405,364,328,298,271,496,456,420,388,360,335,312,292,273,512,482,454,428,405,383,364,345,328,312,298,284,271,259,496,475,456,437,420,404,388,374,360,347,335,323,312,302,292,282,273,265,512,497,482,468,454,441,428,417,405,394,383,373,364,354,345,337,328,320,312,305,298,291,284,278,271,265,259,507,496,485,475,465,456,446,437,428,420,412,404,396,388,381,374,367,360,354,347,341,335,329,323,318,312,307,302,297,292,287,282,278,273,269,265,261,512,505,497,489,482,475,468,461,454,447,441,435,428,422,417,411,405,399,394,389,383,378,373,368,364,359,354,350,345,341,337,332,328,324,320,316,312,309,305,301,298,294,291,287,284,281,278,274,271,268,265,262,259,257,507,501,496,491,485,480,475,470,465,460,456,451,446,442,437,433,428,424,420,416,412,408,404,400,396,392,388,385,381,377,374,370,367,363,360,357,354,350,347,344,341,338,335,332,329,326,323,320,318,315,312,310,307,304,302,299,297,294,292,289,287,285,282,280,278,275,273,271,269,267,265,263,261,259],n=[9,11,12,13,13,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24];function a(t,r,n,a,o){if("string"==typeof t&&(t=document.getElementById(t)),!t||"object"!==e(t)||!("getContext"in t))throw new TypeError("Expecting canvas with `getContext` method in processCanvasRGB(A) calls!");var i=t.getContext("2d");try{return i.getImageData(r,n,a,o)}catch(t){throw new Error("unable to access image data: "+t)}}function o(t,e,r,n,o,f){if(!(isNaN(f)||f<1)){f|=0;var g=a(t,e,r,n,o);g=i(g,e,r,n,o,f),t.getContext("2d").putImageData(g,e,r)}}function i(t,e,a,o,i,f){for(var g,l=t.data,c=2*f+1,s=o-1,v=i-1,b=f+1,x=b*(b+1)/2,d=new u,y=d,h=1;h>E;if(l[B+3]=Y,0!==Y){var Z=255/Y;l[B]=(O*C>>E)*Z,l[B+1]=(P*C>>E)*Z,l[B+2]=(q*C>>E)*Z}else l[B]=l[B+1]=l[B+2]=0;O-=k,P-=H,q-=_,z-=M,k-=p.r,H-=p.g,_-=p.b,M-=p.a;var $=X+f+1;$=w+($>E,ut>0?(ut=255/ut,l[Nt]=(bt*C>>E)*ut,l[Nt+1]=(xt*C>>E)*ut,l[Nt+2]=(dt*C>>E)*ut):l[Nt]=l[Nt+1]=l[Nt+2]=0,bt-=lt,xt-=ct,dt-=st,yt-=vt,lt-=p.r,ct-=p.g,st-=p.b,vt-=p.a,Nt=ot+((Nt=St+b)>E,l[S+1]=k*C>>E,l[S+2]=H*C>>E,W-=T,k-=j,H-=A,T-=w.r,j-=w.g,A-=w.b,p=I+((p=z+f+1)>E,l[p+1]=Y*C>>E,l[p+2]=Z*C>>E,X-=Q,Y-=U,Z-=V,Q-=w.r,U-=w.g,V-=w.b,p=F+((p=ot+b)=t?function(t,n){for(var r=0;r0?i=a:t=a}while(Math.abs(o)>n&&++l=0)return n;null==e||t||console.error("VelocityJS: Trying to set 'duration' to an invalid value:",e)}function W(e,t,n){if(u(e))return S[e];if(o(e))return e;if(Array.isArray(e)){if(1===e.length)return r=e[0],C[r]||(C[r]=function(e,t,n){return 0===e?t:1===e?n:t+Math.round(e*r)*(1/r)*(n-t)});if(2===e.length)return function e(t,n,r){var i={x:-1,v:0,tension:parseFloat(t)||500,friction:parseFloat(n)||20},o=[0],a=null!=r,l=0,s=void 0,u=void 0;for(s=a?(l=e(i.tension,i.friction))/r*.016:.016;u=j(u||i,s),o.push(1+u.x),l+=16,Math.abs(u.x)>1e-4&&Math.abs(u.v)>1e-4;);return a?function(e,t,n){return 0===e?t:1===e?n:t+o[Math.floor(e*(o.length-1))]*(n-t)}:l}(e[0],e[1],t);if(4===e.length)return q.apply(null,e)||!1}var r;null==e||n||console.error("VelocityJS: Trying to set 'easing' to an invalid value:",e)}function $(e){if(!1===e)return 0;var t=parseInt(e,10);if(!isNaN(t)&&t>=0)return Math.min(t,60);null!=e&&console.warn("VelocityJS: Trying to set 'fpsLimit' to an invalid value:",e)}function G(e){switch(e){case!1:return 0;case!0:return!0;default:var t=parseInt(e,10);if(!isNaN(t)&&t>=0)return t}null!=e&&console.warn("VelocityJS: Trying to set 'loop' to an invalid value:",e)}function Q(e,t){if(!1===e||u(e))return e;null==e||t||console.warn("VelocityJS: Trying to set 'queue' to an invalid value:",e)}function D(e){switch(e){case!1:return 0;case!0:return!0;default:var t=parseInt(e,10);if(!isNaN(t)&&t>=0)return t}null!=e&&console.warn("VelocityJS: Trying to set 'repeat' to an invalid value:",e)}function U(e){if(l(e))return e;null!=e&&console.error("VelocityJS: Trying to set 'speed' to an invalid value:",e)}function Z(e){if(i(e))return e;null!=e&&console.error("VelocityJS: Trying to set 'sync' to an invalid value:",e)}var Y=void 0,X=void 0,K=void 0,ee=void 0,te=void 0,ne=void 0,re=void 0,ie=void 0,oe=void 0,ae=void 0,le=void 0,se=void 0,ue=void 0,ce=void 0,fe=void 0,de=void 0,ve=function(){function e(){t(this,e)}return n(e,null,[{key:"reset",value:function(){Y=!0,X=void 0,K=void 0,ee=0,te=w,ne=W("swing",w),re=60,ie=0,ae=980/60,le=!0,se=!0,ue="",ce=0,fe=1,de=!0}},{key:"cache",get:function(){return Y},set:function(e){void 0!==(e=z(e))&&(Y=e)}},{key:"begin",get:function(){return X},set:function(e){void 0!==(e=F(e))&&(X=e)}},{key:"complete",get:function(){return K},set:function(e){void 0!==(e=H(e))&&(K=e)}},{key:"delay",get:function(){return ee},set:function(e){void 0!==(e=R(e))&&(ee=e)}},{key:"duration",get:function(){return te},set:function(e){void 0!==(e=B(e))&&(te=e)}},{key:"easing",get:function(){return ne},set:function(e){void 0!==(e=W(e,te))&&(ne=e)}},{key:"fpsLimit",get:function(){return re},set:function(e){void 0!==(e=$(e))&&(re=e,ae=980/e)}},{key:"loop",get:function(){return ie},set:function(e){void 0!==(e=G(e))&&(ie=e)}},{key:"mobileHA",get:function(){return oe},set:function(e){i(e)&&(oe=e)}},{key:"minFrameTime",get:function(){return ae}},{key:"promise",get:function(){return le},set:function(e){void 0!==(e=function(e){if(i(e))return e;null!=e&&console.warn("VelocityJS: Trying to set 'promise' to an invalid value:",e)}(e))&&(le=e)}},{key:"promiseRejectEmpty",get:function(){return se},set:function(e){void 0!==(e=function(e){if(i(e))return e;null!=e&&console.warn("VelocityJS: Trying to set 'promiseRejectEmpty' to an invalid value:",e)}(e))&&(se=e)}},{key:"queue",get:function(){return ue},set:function(e){void 0!==(e=Q(e))&&(ue=e)}},{key:"repeat",get:function(){return ce},set:function(e){void 0!==(e=D(e))&&(ce=e)}},{key:"repeatAgain",get:function(){return ce}},{key:"speed",get:function(){return fe},set:function(e){void 0!==(e=U(e))&&(fe=e)}},{key:"sync",get:function(){return de},set:function(e){void 0!==(e=Z(e))&&(de=e)}}]),e}();Object.freeze(ve),ve.reset();var pe=[],ye={},ge=new Set,he=[],me=new Map,we="velocityData";function be(e){var t=e[we];if(t)return t;for(var n=e.ownerDocument.defaultView,r=0,i=0;i=0&&pe[r].hasOwnProperty(n)}function Ne(e,t){for(var n=be(e),r=void 0,i=he.length-1,o=n.types;!r&&i>=0;i--)o&1<=2&&console.info('Set "'+t+'": "'+n+'"',e))}function Le(e){if(e.indexOf("calc(")>=0){for(var t=e.split(/([\(\)])/),n=0,r=0;r=2&&console.info('Get "'+t+'": "'+o+'"',e),o}var De=/^#([A-f\d]{3}){1,2}$/i,Ue={function:function(e,t,n,r,i,o){return e.call(t,r,n.length,i)},number:function(e,t,n,r,i,o){return String(e)+function(e){for(var t in ye)if(ye[t].includes(e))return t;return""}(o.fn)},string:function(e,t,n,r,i,o){return Be(e)},undefined:function(e,t,n,r,i,o){return Be(Qe(t,i,o.fn)||"")}};function Ze(t,n){var r=t.tweens=Object.create(null),i=t.elements,a=t.element,s=i.indexOf(a),c=be(a),f=p(t.queue,t.options.queue),d=p(t.options.duration,ve.duration);for(var v in n)if(n.hasOwnProperty(v)){var y=Ie(v),g=Ne(a,y),h=n[v];if(!g&&"tween"!==y){Ut.debug&&console.log('Skipping "'+v+'" due to a lack of browser support.');continue}if(null==h){Ut.debug&&console.log('Skipping "'+v+'" due to no value supplied.');continue}var m=r[y]={},w=void 0,b=void 0;if(m.fn=g,o(h)&&(h=h.call(a,s,i.length,i)),Array.isArray(h)){var x=h[1],k=h[2];w=h[0],u(x)&&(/^[\d-]/.test(x)||De.test(x))||o(x)||l(x)?b=x:u(x)&&S[x]||Array.isArray(x)?(m.easing=W(x,d),b=k):b=x||k}else w=h;m.end=Ue[void 0===w?"undefined":e(w)](w,a,i,s,y,m),null==b&&!1!==f&&void 0!==c.queueList[f]||(m.start=Ue[void 0===b?"undefined":e(b)](b,a,i,s,y,m),et(y,m,d))}}var Ye=/((?:[+\-*/]=)?(?:[+-]?\d*\.\d+|[+-]?\d+)[a-z%]*|(?:.(?!$|[+-]?\d|[+\-*/]=[+-]?\d))+.|.)/g,Xe=/^([+\-*/]=)?([+-]?\d*\.\d+|[+-]?\d+)(.*)$/;function Ke(e,t){for(var n=e.length,r=[],i=[],o=void 0,a=0;a1}for(var l=[],s=l.pattern=[],c=function(e){if(u(s[s.length-1]))s[s.length-1]+=e;else if(e){s.push(e);for(var t=0;t1)){for(var r="display"===t,i="visibility"===t,a=0;a=0?H++:R.indexOf("rgb")>=0&&(H=1):H&&(H<4?s[F]=!0:H=0)}return l}function et(e,t,n,r){var i=t.start,o=t.end;if(u(o)&&u(i)){var a=Ke([i,o],e);if(!a&&r){var l=i.match(/\d\.?\d*/g)||["0"],s=l.length,c=0;a=Ke([o.replace(/\d+\.?\d*/g,function(){return l[c++%s]}),o],e)}if(a)switch(Ut.debug&&console.log("Velocity: Sequence found:",a),a[0].percent=0,a[1].percent=1,t.sequence=a,t.easing){case S["at-start"]:case S.during:case S["at-end"]:a[0].easing=a[1].easing=t.easing}}}function tt(e){if(ke.firstNew===e&&(ke.firstNew=e._next),!(1&e._flags)){var t=e.element,n=e.tweens;p(e.options.duration,ve.duration);for(var r in n){var i=n[r];if(null==i.start){var o=Qe(e.element,r);u(o)?(i.start=Be(o),et(r,i,0,!0)):Array.isArray(o)||console.warn("bad type",i,r,o)}Ut.debug&&console.log('tweensContainer "'+r+'": '+JSON.stringify(i),t)}e._flags|=1}}function nt(e){var t=e.begin||e.options.begin;if(t)try{var n=e.elements;t.call(n,n,e)}catch(e){setTimeout(function(){throw e},1)}}function rt(e){var t=e.progress||e.options.progress;if(t)try{var n=e.elements,r=e.percentComplete,i=e.options,o=e.tween;t.call(n,n,r,Math.max(0,e.timeStart+(null!=e.duration?e.duration:null!=i.duration?i.duration:ve.duration)-vt),void 0!==o?o:String(100*r),e)}catch(e){setTimeout(function(){throw e},1)}}function it(){var e=!0,t=!1,n=void 0;try{for(var r,i=lt[Symbol.iterator]();!(e=(r=i.next()).done);e=!0){rt(r.value)}}catch(e){t=!0,n=e}finally{try{!e&&i.return&&i.return()}finally{if(t)throw n}}lt.clear();var o=!0,a=!1,l=void 0;try{for(var s,u=at[Symbol.iterator]();!(o=(s=u.next()).done);o=!0){Me(s.value)}}catch(e){a=!0,l=e}finally{try{!o&&u.return&&u.return()}finally{if(a)throw l}}at.clear()}var ot=1e3/60,at=new Set,lt=new Set,st=function(){var e=window.performance||{};if("function"!=typeof e.now){var t=e.timing&&e.timing.navigationStart?e.timing.navigationStart:y();e.now=function(){return y()-t}}return e}(),ut=function(e){return setTimeout(e,Math.max(0,ot-(st.now()-vt)))},ct=window.requestAnimationFrame||ut,ft=void 0,dt=void 0,vt=0;try{(dt=new Worker(URL.createObjectURL(new Blob(["("+function(){var e=this,t=void 0;this.onmessage=function(n){switch(n.data){case!0:t||(t=setInterval(function(){e.postMessage(!0)},1e3/30));break;case!1:t&&(clearInterval(t),t=0);break;default:e.postMessage(n.data)}}}+")()"])))).onmessage=function(e){!0===e.data?pt():it()},ke.isMobile||void 0===document.hidden||document.addEventListener("visibilitychange",function(){dt.postMessage(ke.isTicking&&document.hidden)})}catch(e){}function pt(e){if(!ft){if(ft=!0,!1!==e){var t=st.now(),n=vt?t-vt:ot,r=ve.speed,i=ve.easing,o=ve.duration,a=void 0,l=void 0;if(n>=ve.minFrameTime||!vt){for(vt=t;ke.firstNew;)tt(ke.firstNew);for(a=ke.first;a&&a!==ke.firstNew;a=a._next){var s=a.element,u=be(s);if(s.parentNode&&u){var c=a.options,f=a._flags,d=a.timeStart;if(!d){var v=null!=a.queue?a.queue:c.queue;d=t-n,!1!==v&&(d=Math.max(d,u.lastFinishList[v]||0)),a.timeStart=d}16&f?a.timeStart+=n:2&f||(a._flags|=2,c._ready++)}else _e(a)}for(a=ke.first;a&&a!==ke.firstNew;a=l){var p=a._flags;if(l=a._next,2&p&&!(16&p)){var y=a.options;if(32&p&&y._readyt)continue;a.timeStart=h+=m/(m>0?g:1)}a._flags|=4,0==y._started++&&(y._first=a,y.begin&&(nt(a),y.begin=void 0))}1!==g&&(a.timeStart=h+=Math.min(n,t-h)*(1-g));var w=null!=a.easing?a.easing:null!=y.easing?y.easing:i,b=a.ellapsedTime=t-h,S=null!=a.duration?a.duration:null!=y.duration?y.duration:o,x=a.percentComplete=Ut.mock?1:Math.min(b/S,1),O=a.tweens,E=64&p;for(var _ in(a.progress||y._first===a&&y.progress)&<.add(a),1===x&&at.add(a),O){var T=O[_],M=T.sequence,V=M.pattern,q="",N=0;if(V){for(var A=(T.easing||w)(x,0,1,_),L=0,J=0;J=0?r.replace(/^.*\./,""):void 0)&&Q(e[0]),a=ve.queue;if(c(t)&&t.velocity.animations){var l=!0,s=!1,u=void 0;try{for(var f,d=t.velocity.animations[Symbol.iterator]();!(l=(f=d.next()).done);l=!0){ht(f.value,o,a,i)}}catch(e){s=!0,u=e}finally{try{!l&&d.return&&d.return()}finally{if(s)throw u}}}else for(var v=ke.first;v;)t&&!t.includes(v.element)||ht(v,o,a,i),v=v._next;n&&(c(t)&&t.velocity.animations&&t.then?t.then(n._resolver):n._resolver(t))}function wt(t,n,r,i){var o=t[0],a=t[1];if(!o)return console.warn("VelocityJS: Cannot access a non-existant property!"),null;if(void 0===a&&!s(o)){if(Array.isArray(o)){if(1===n.length){var f={},d=!0,v=!1,p=void 0;try{for(var y,g=o[Symbol.iterator]();!(d=(y=g.next()).done);d=!0){var h=y.value;f[h]=Be(Qe(n[0],h))}}catch(e){v=!0,p=e}finally{try{!d&&g.return&&g.return()}finally{if(v)throw p}}return f}var m=[],w=!0,b=!1,S=void 0;try{for(var x,k=n[Symbol.iterator]();!(w=(x=k.next()).done);w=!0){var O=x.value,E={},_=!0,T=!1,M=void 0;try{for(var V,q=o[Symbol.iterator]();!(_=(V=q.next()).done);_=!0){var N=V.value;E[N]=Be(Qe(O,N))}}catch(e){T=!0,M=e}finally{try{!_&&q.return&&q.return()}finally{if(T)throw M}}m.push(E)}}catch(e){b=!0,S=e}finally{try{!w&&k.return&&k.return()}finally{if(b)throw S}}return m}if(1===n.length)return Be(Qe(n[0],o));var A=[],L=!0,J=!1,I=void 0;try{for(var j,C=n[Symbol.iterator]();!(L=(j=C.next()).done);L=!0){var P=j.value;A.push(Be(Qe(P,o)))}}catch(e){J=!0,I=e}finally{try{!L&&C.return&&C.return()}finally{if(J)throw I}}return A}var z=[];if(s(o)){for(var F in o)if(o.hasOwnProperty(F)){var H=!0,R=!1,B=void 0;try{for(var W,$=n[Symbol.iterator]();!(H=(W=$.next()).done);H=!0){var G=W.value,Q=o[F];u(Q)||l(Q)?Ae(G,F,o[F]):(z.push('Cannot set a property "'+F+'" to an unknown type: '+(void 0===Q?"undefined":e(Q))),console.warn('VelocityJS: Cannot set a property "'+F+'" to an unknown type:',Q))}}catch(e){R=!0,B=e}finally{try{!H&&$.return&&$.return()}finally{if(R)throw B}}}}else if(u(a)||l(a)){var D=!0,U=!1,Z=void 0;try{for(var Y,X=n[Symbol.iterator]();!(D=(Y=X.next()).done);D=!0){Ae(Y.value,o,String(a))}}catch(e){U=!0,Z=e}finally{try{!D&&X.return&&X.return()}finally{if(U)throw Z}}}else z.push('Cannot set a property "'+o+'" to an unknown type: '+(void 0===a?"undefined":e(a))),console.warn('VelocityJS: Cannot set a property "'+o+'" to an unknown type:',a);r&&(z.length?r._rejecter(z.join(", ")):c(n)&&n.velocity.animations&&n.then?n.then(r._resolver):r._resolver(n))}function bt(e,t,n){tt(e),void 0!==t&&t!==p(e.queue,e.options.queue,n)||(e._flags|=8,Me(e))}m(["option",function(e,t,n,r){var i=e[0],o=r.indexOf(".")>=0?r.replace(/^.*\./,""):void 0,a="false"!==o&&Q(o,!0),l=void 0,s=e[1];if(!i)return console.warn("VelocityJS: Cannot access a non-existant key!"),null;if(c(t)&&t.velocity.animations)l=t.velocity.animations;else{l=[];for(var u=ke.first;u;u=u._next)t.indexOf(u.element)>=0&&p(u.queue,u.options.queue)===a&&l.push(u);if(t.length>1&&l.length>1){for(var f=1,d=l[0].options;f, "tween", percentComplete, property, end | [end, , ], ) => value\nVelocity(, "tween", percentComplete, {property: end | [end, , ], ...}, ) => {property: value, ...}'),null;t=[document.body],o=!0}var a=e[0],c={elements:t,element:t[0],queue:!1,options:{duration:1e3},tweens:null},f={},d=e[1],v=void 0,y=void 0,g=e[2],h=0;if(u(e[1])?Te&&Te[e[1]]?(y=Te[e[1]],d={},g=e[2]):(v=!0,d=r({},e[1],e[2]),g=e[3]):Array.isArray(e[1])&&(v=!0,d={tween:e[1]},g=e[2]),!l(a)||a<0||a>1)throw new Error("VelocityJS: Must tween a percentage from 0 to 1!");if(!s(d))throw new Error("VelocityJS: Cannot tween an invalid property!");if(o)for(var m in d)if(d.hasOwnProperty(m)&&(!Array.isArray(d[m])||d[m].length<2))throw new Error("VelocityJS: When not supplying an element you must force-feed values: "+m);var b=W(p(g,ve.easing),w);for(var S in y?tn(c,y):Ze(c,d),c.tweens){var x=c.tweens[S],O=x.sequence,E=O.pattern,_="",T=0;if(h++,E){for(var M=(x.easing||b)(a,0,1,S),V=0,q=0;q4;e--){var t=document.createElement("div");if(t.innerHTML="\x3c!--[if IE "+e+"]>100)console.warn("VelocityJS: Trying to use an invalid value as a percentage (0 <= n <= 100):",r,x);else if(isNaN(x))console.warn("VelocityJS: Trying to use an invalid number as a percentage:",r,v,S);else for(var k in o[String(x)]||(o[String(x)]=[]),o[String(x)].push(v),i[v])c.includes(k)||c.push(k)}}catch(e){g=!0,h=e}finally{try{!y&&b.return&&b.return()}finally{if(g)throw h}}}}var O=Object.keys(o).sort(function(e,t){var n=parseFloat(e),r=parseFloat(t);return n>r?1:n1&&(u(ae[1])||Array.isArray(ae[1]))&&(Q[D].easing=W(ae[1],f.duration||w)),Q[D++].percent=parseFloat(ee)/100)}}catch(e){ne=!0,re=e}finally{try{!te&&oe.return&&oe.return()}finally{if(ne)throw re}}}}catch(e){Z=!0,Y=e}finally{try{!U&&K.return&&K.return()}finally{if(Z)throw Y}}f.tweens[A]=Q}}}}catch(e){_=!0,T=e}finally{try{!E&&V.return&&V.return()}finally{if(_)throw T}}}else console.warn("VelocityJS: Trying to set 'registerSequence' sequence to an invalid value:",r,i);else console.warn("VelocityJS: Trying to set 'registerSequence' name to an invalid value:",r)}}],!0);var nn=void 0;try{nn=Promise}catch(e){}var rn=", if that is deliberate then pass `promiseRejectEmpty:false` as an option";function on(e,t){v(t,"promise",e),v(t,"then",e.then.bind(e)),v(t,"catch",e.catch.bind(e)),e.finally&&v(t,"finally",e.finally.bind(e))}function an(){var e,t=ve,n=arguments.length<=0?void 0:arguments[0],r=s(n)&&(n.p||s(n.properties)&&!n.properties.names||u(n.properties)),y=0,g=void 0,m=void 0,w=void 0,b=void 0,S=void 0,x=void 0,k=void 0;(a(this)?g=[this]:f(this)?(g=d(this),c(this)&&(b=this.velocity.animations)):r?(g=d(n.elements||n.e),y++):a(n)?(g=d([n]),y++):f(n)&&(g=d(n),y++),g&&(v(g,"velocity",an.bind(g)),b&&v(g.velocity,"animations",b)),r)?m=p(n.properties,n.p):(e=y++,m=arguments.length<=e?void 0:arguments[e]);var O="reverse"===m,E=!O&&u(m),_=E&&Te[m],T=r?p(n.options,n.o):arguments.length<=y?void 0:arguments[y];if(s(T)&&(w=T),nn&&p(w&&w.promise,t.promise)&&(S=new nn(function(e,t){k=t,x=function(t){c(t)&&t.promise?(delete t.then,delete t.catch,delete t.finally,e(t),on(t.promise,t)):e(t)}}),g&&on(S,g)),S){var M=w&&w.promiseRejectEmpty,V=p(M,t.promiseRejectEmpty);g||E?m||(V?k("Velocity: No properties supplied"+(i(M)?"":rn)+". Aborting."):x()):V?k("Velocity: No elements supplied"+(i(M)?"":rn)+". Aborting."):x()}if(!g&&!E||!m)return S;if(E){for(var q=[],N=S&&{_promise:S,_resolver:x,_rejecter:k};y4;e--){var t=document.createElement("div");if(t.innerHTML="\x3c!--[if IE "+e+"]>2.5)return void this.scrollToLeft(t.scrollLeft+o)}var l=t.clientWidth*this.displacement;this.scrollToLeft(t.scrollLeft+l)},scrollToIndex:function(t){var e=this.children();if(e[t]){var n=this.$refs.container,i=e[t].getBoundingClientRect().left-n.getBoundingClientRect().left;this.scrollToLeft(n.scrollLeft+i)}},scrollToLeft:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"smooth",n=this.$refs.container;n.scrollTo({left:t,behavior:e})},onScroll:function(){var t=this.$refs.container;t&&(this.$emit("scroll",{left:t.scrollLeft}),clearTimeout(this.debounceId),this.debounceId=setTimeout(this.onScrollDebounce,100))},onScrollDebounce:function(){var t=this;this.refresh((function(e){t.$emit("scroll-debounce",e)}))},refresh:function(t){var e=this;this.$nextTick((function(){var n=e.calculate();e.left=n.left,e.width=n.width,e.scrollWidth=n.scrollWidth,e.hasNext=n.hasNext,e.hasPrev=n.hasPrev,null==t||t(n)}))},calculate:function(){var t=this.$refs.container,e=this.children()[0];return{left:t.scrollLeft,width:t.clientWidth,scrollWidth:t.scrollWidth,hasNext:t.scrollWidth>t.scrollLeft+t.clientWidth+2.5,hasPrev:function(){var n,i;if(0===t.scrollLeft)return!1;var o=t.getBoundingClientRect().left,l=null!==(n=null==e||null===(i=e.getBoundingClientRect())||void 0===i?void 0:i.left)&&void 0!==n?n:0;return Math.abs(o-l)>=2.5}()}}}});function o(t,e,n,i,o,l,r,a,s,c){"boolean"!=typeof r&&(s=a,a=r,r=!1);const d="function"==typeof n?n.options:n;let h;if(t&&t.render&&(d.render=t.render,d.staticRenderFns=t.staticRenderFns,d._compiled=!0,o&&(d.functional=!0)),i&&(d._scopeId=i),l?(h=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),e&&e.call(this,s(t)),t&&t._registeredComponents&&t._registeredComponents.add(l)},d._ssrRegister=h):e&&(h=r?function(t){e.call(this,c(t,this.$root.$options.shadowRoot))}:function(t){e.call(this,a(t))}),h)if(d.functional){const t=d.render;d.render=function(e,n){return h.call(n),t(e,n)}}else{const t=d.beforeCreate;d.beforeCreate=t?[].concat(t,h):[h]}return n}const l="undefined"!=typeof navigator&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());function r(t){return(t,e)=>function(t,e){const n=l?e.media||"default":t,i=s[n]||(s[n]={ids:new Set,styles:[]});if(!i.ids.has(t)){i.ids.add(t);let n=e.source;if(e.map&&(n+="\n/*# sourceURL="+e.map.sources[0]+" */",n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(e.map))))+" */"),i.element||(i.element=document.createElement("style"),i.element.type="text/css",e.media&&i.element.setAttribute("media",e.media),void 0===a&&(a=document.head||document.getElementsByTagName("head")[0]),a.appendChild(i.element)),"styleSheet"in i.element)i.styles.push(n),i.element.styleSheet.cssText=i.styles.filter(Boolean).join("\n");else{const t=i.ids.size-1,e=document.createTextNode(n),o=i.element.childNodes;o[t]&&i.element.removeChild(o[t]),o.length?i.element.insertBefore(e,o[t]):i.element.appendChild(e)}}}(t,e)}let a;const s={};var c=o({render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"vue-horizontal",staticStyle:{position:"relative",display:"flex"}},[t.button&&t.hasPrev?n("div",{staticClass:"v-hl-btn v-hl-btn-prev",class:{"v-hl-btn-between":t.buttonBetween},attrs:{role:"button"},on:{click:function(e){return e.stopPropagation(),t.prev(e)}}},[t._t("btn-prev",[n("svg",{staticClass:"v-hl-svg",attrs:{viewBox:"0 0 24 24","aria-label":"horizontal scroll area navigate to previous button"}},[n("path",{attrs:{d:"m9.8 12 5 5a1 1 0 1 1-1.4 1.4l-5.7-5.7a1 1 0 0 1 0-1.4l5.7-5.7a1 1 0 0 1 1.4 1.4l-5 5z"}})])])],2):t._e(),t._v(" "),t.button&&t.hasNext?n("div",{staticClass:"v-hl-btn v-hl-btn-next",class:{"v-hl-btn-between":t.buttonBetween},attrs:{role:"button"},on:{click:function(e){return e.stopPropagation(),t.next(e)}}},[t._t("btn-next",[n("svg",{staticClass:"v-hl-svg",attrs:{viewBox:"0 0 24 24","aria-label":"horizontal scroll area navigate to next button"}},[n("path",{attrs:{d:"m14.3 12.1-5-5a1 1 0 0 1 1.4-1.4l5.7 5.7a1 1 0 0 1 0 1.4l-5.7 5.7a1 1 0 0 1-1.4-1.4l5-5z"}})])])],2):t._e(),t._v(" "),n("div",{ref:"container",staticClass:"v-hl-container",class:{"v-hl-responsive":t.responsive,"v-hl-scroll":t.scroll,"v-hl-snap-start":"start"===t.snap,"v-hl-snap-center":"center"===t.snap,"v-hl-snap-end":"end"===t.snap},on:{"&scroll":function(e){return t.onScroll(e)}}},[t._t("default")],2)])},staticRenderFns:[]},(function(t){t&&t("data-v-45080727_0",{source:".v-hl-btn[data-v-45080727]{position:absolute;align-self:center;z-index:1;top:0;bottom:0;display:flex;align-items:center;cursor:pointer}.v-hl-btn-prev[data-v-45080727]{left:0}.v-hl-btn-prev.v-hl-btn-between[data-v-45080727]{transform:translateX(-50%)}.v-hl-btn-next[data-v-45080727]{right:0}.v-hl-btn-next.v-hl-btn-between[data-v-45080727]{transform:translateX(50%)}.v-hl-svg[data-v-45080727]{width:40px;height:40px;margin:6px;padding:6px;border-radius:20px;box-sizing:border-box;background:#fff;color:#000;fill:currentColor;box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24)}.v-hl-container[data-v-45080727]{display:flex;width:100%;margin:0;padding:0;border:none;box-sizing:content-box;overflow-x:scroll;overflow-y:hidden;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.v-hl-container>*[data-v-45080727]{flex-shrink:0;box-sizing:border-box;min-height:1px}.v-hl-snap-start>*[data-v-45080727]{scroll-snap-align:start}.v-hl-snap-center>*[data-v-45080727]{scroll-snap-align:center}.v-hl-snap-end>*[data-v-45080727]{scroll-snap-align:end}.v-hl-container[data-v-45080727]:not(.v-hl-scroll){scrollbar-width:none;-ms-overflow-style:none;padding-bottom:30px;margin-bottom:-30px;clip-path:inset(0 0 30px 0)}.v-hl-container[data-v-45080727]:not(.v-hl-scroll)::-webkit-scrollbar{width:0!important;height:0!important}.v-hl-responsive>*[data-v-45080727]{width:100%;margin-right:24px}.v-hl-responsive[data-v-45080727]>:last-child{margin-right:0}@media (min-width:640px){.v-hl-responsive>*[data-v-45080727]{width:calc((100% - 24px)/ 2)}}@media (min-width:768px){.v-hl-responsive>*[data-v-45080727]{width:calc((100% - 48px)/ 3)}}@media (min-width:1024px){.v-hl-responsive>*[data-v-45080727]{width:calc((100% - 72px)/ 4)}}@media (min-width:1280px){.v-hl-responsive>*[data-v-45080727]{width:calc((100% - 96px)/ 5)}}",map:void 0,media:void 0})}),i,"data-v-45080727",!1,void 0,!1,r,void 0,void 0),d=function(t){d.installed||(d.installed=!0,t.component("VueHorizontal",c))},h={install:d},u=null;return"undefined"!=typeof window?u=window.Vue:"undefined"!=typeof global&&(u=global.Vue),u&&u.use(h),c.install=d,t.default=c,Object.defineProperty(t,"__esModule",{value:!0}),t}({},Vue); \ No newline at end of file diff --git a/src/renderer/js/vue-observe-visibility.min.js b/src/renderer/lib/vue-observe-visibility.min.js similarity index 100% rename from src/renderer/js/vue-observe-visibility.min.js rename to src/renderer/lib/vue-observe-visibility.min.js diff --git a/src/renderer/js/vue.dev.js b/src/renderer/lib/vue.dev.js similarity index 100% rename from src/renderer/js/vue.dev.js rename to src/renderer/lib/vue.dev.js diff --git a/src/renderer/js/vue.js b/src/renderer/lib/vue.js similarity index 100% rename from src/renderer/js/vue.js rename to src/renderer/lib/vue.js diff --git a/src/renderer/js/vuedraggable.umd.min.js b/src/renderer/lib/vuedraggable.umd.min.js similarity index 100% rename from src/renderer/js/vuedraggable.umd.min.js rename to src/renderer/lib/vuedraggable.umd.min.js diff --git a/src/renderer/js/vuex.min.js b/src/renderer/lib/vuex.min.js similarity index 100% rename from src/renderer/js/vuex.min.js rename to src/renderer/lib/vuex.min.js diff --git a/src/renderer/main/app.js b/src/renderer/main/app.js new file mode 100644 index 00000000..a1b66680 --- /dev/null +++ b/src/renderer/main/app.js @@ -0,0 +1,32 @@ +import { app } from "./vueapp.js" +import {CiderCache} from './cidercache.js' +import {CiderFrontAPI} from './ciderfrontapi.js' +import {simulateGamepad} from './gamepad.js' +import {CiderAudio} from '../audio/audio.js' +import {Events} from './events.js' +import { wsapi } from "./wsapi_interop.js" +import { MusicKitTools } from "./musickittools.js" +import { spawnMica } from "./mica.js" + + +// Define window objects +window.app = app +window.MusicKitTools = MusicKitTools +window.CiderAudio = CiderAudio +window.CiderCache = CiderCache +window.CiderFrontAPI = CiderFrontAPI +window.wsapi = wsapi + +// Mount Vue to #app +app.$mount("#app") + +// Init CiderAudio +if (app.cfg.advanced.AudioContext){ + CiderAudio.init() +} + +// Import gamepad support +app.simulateGamepad = simulateGamepad +app.spawnMica = spawnMica + +Events.InitEvents() \ No newline at end of file diff --git a/src/renderer/main/cidercache.js b/src/renderer/main/cidercache.js new file mode 100644 index 00000000..c28550c1 --- /dev/null +++ b/src/renderer/main/cidercache.js @@ -0,0 +1,24 @@ +const CiderCache = { + async getCache(file) { + let cache = await ipcRenderer.sendSync("get-cache", file) + if (isJson(cache)) { + cache = JSON.parse(cache) + if (Object.keys(cache).length === 0) { + cache = false + } + } else { + cache = false + } + return cache + }, + async putCache(file, data) { + console.log(`Caching ${file}`) + ipcRenderer.invoke("put-cache", { + file: file, + data: JSON.stringify(data) + }) + return true + } +} + +export {CiderCache} \ No newline at end of file diff --git a/src/renderer/main/ciderfrontapi.js b/src/renderer/main/ciderfrontapi.js new file mode 100644 index 00000000..145bd770 --- /dev/null +++ b/src/renderer/main/ciderfrontapi.js @@ -0,0 +1,32 @@ +const CiderFrontAPI = { + Objects: { + MenuEntry: function () { + this.id = "" + this.name = "" + this.onClick = () => { + } + } + }, + AddMenuEntry(entry) { + app.pluginMenuEntries.push(entry) + app.pluginInstalled = true + }, + StyleSheets: { + Add(href) { + console.log("Adding stylesheet: " + href) + let id = uuidv4() + let link = document.createElement("link") + link.rel = "stylesheet/less" + link.type = "text/css" + link.href = href + link.setAttribute("css-id", id) + // insert the link before document.querySelector("#userTheme") in head + document.querySelector("head").insertBefore(link, document.querySelector("#userTheme")) + less.registerStylesheetsImmediately() + less.refresh(true, true, true) + return link + } + } +} + +export {CiderFrontAPI} \ No newline at end of file diff --git a/src/renderer/main/events.js b/src/renderer/main/events.js new file mode 100644 index 00000000..23236e41 --- /dev/null +++ b/src/renderer/main/events.js @@ -0,0 +1,74 @@ +const Events = { + InitEvents() { + const app = window.app + // Key binds + document.addEventListener('keydown', function (e) { + if (e.keyCode === 70 && e.ctrlKey) { + app.$refs.searchInput.focus() + app.$refs.searchInput.select() + } + }); + +// add event listener for when window.location.hash changes + window.addEventListener("hashchange", function () { + app.appRoute(window.location.hash) + }); + + // Key bind to unjam MusicKit in case it fails: CTRL+F10 + + document.addEventListener('keydown', function (event) { + if (event.ctrlKey && event.keyCode == 121) { + try { + app.mk._services.mediaItemPlayback._currentPlayer.stop() + } catch (e) { + } + try { + app.mk._services.mediaItemPlayback._currentPlayer.destroy() + } catch (e) { + } + } + }); + + window.addEventListener("mouseup", (e) => { + if (e.button === 3) { + e.preventDefault() + app.navigateBack() + } else if (e.button === 4) { + e.preventDefault() + app.navigateForward() + } + }); + + document.addEventListener('keydown', function (event) { + if (event.ctrlKey && event.keyCode == 122) { + try { + ipcRenderer.send('detachDT', '') + } catch (e) { + } + } + }); + + // Hang Timer + app.hangtimer = setTimeout(() => { + if (confirm("Cider is not responding. Reload the app?")) { + window.location.reload() + } + }, 10000) + +// Refresh Focus + function refreshFocus() { + if (document.hasFocus() == false) { + app.windowFocus(false) + } else { + app.windowFocus(true) + } + setTimeout(refreshFocus, 200); + } + + app.getHTMLStyle() + + refreshFocus(); + } +} + +export {Events} \ No newline at end of file diff --git a/src/renderer/main/gamepad.js b/src/renderer/main/gamepad.js new file mode 100644 index 00000000..a902cd5f --- /dev/null +++ b/src/renderer/main/gamepad.js @@ -0,0 +1,327 @@ +function simulateGamepad () { + const app = window.app + app.chrome.showCursor = true + let cursorPos = [0, 0]; + let intTabIndex = 0 + const cursorSpeedPvt = 8 + const cursorSize = 16 + let scrollSpeed = 8 + let buttonPressDelay = 500 + let stickDeadZone = 0.2 + let scrollGroup = null + let scrollGroupY = null + let elementFocusEnabled = true + let start; + + let cursorSpeed = cursorSpeedPvt + + let lastButtonPress = { + + } + + var sounds = { + Confirm: new Audio("./sounds/confirm.ogg"), + Menu: new Audio("./sounds/btn1.ogg"), + Hover: new Audio("./sounds/hover.ogg") + } + + let element = document.elementFromPoint(0, 0) + let elementType = 0 + + function appLoop() { + var gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []); + if (!gamepads) { + return; + } + + var gp = gamepads[0]; + + // LEFT STICK + if (gp.axes[0] > stickDeadZone) { + cursorPos[0] += (gp.axes[0] * cursorSpeed) + } else if (gp.axes[0] < -stickDeadZone) { + cursorPos[0] += (gp.axes[0] * cursorSpeed) + } + + if (gp.axes[1] > stickDeadZone) { + cursorPos[1] += (gp.axes[1] * cursorSpeed) + } else if (gp.axes[1] < -stickDeadZone) { + cursorPos[1] += (gp.axes[1] * cursorSpeed) + } + + if (cursorPos[0] < cursorSize) { + cursorPos[0] = cursorSize + } + if (cursorPos[1] < cursorSize) { + cursorPos[1] = cursorSize + } + if (cursorPos[0] > window.innerWidth - cursorSize) { + cursorPos[0] = window.innerWidth - cursorSize + } + if (cursorPos[1] > window.innerHeight - cursorSize) { + cursorPos[1] = window.innerHeight - cursorSize + } + + + // RIGHT STICK. + if (scrollGroupY) { + if (gp.axes[3] > stickDeadZone) { + $(scrollGroupY).scrollTop($(scrollGroupY).scrollTop() + (gp.axes[3] * scrollSpeed)) + elementFocusEnabled = false + } else if (gp.axes[3] < -stickDeadZone) { + $(scrollGroupY).scrollTop($(scrollGroupY).scrollTop() + (gp.axes[3] * scrollSpeed)) + elementFocusEnabled = false + } else { + elementFocusEnabled = true + } + } + + + + if (scrollGroup) { + if (gp.axes[2] > stickDeadZone) { + $(scrollGroup).scrollLeft($(scrollGroup).scrollLeft() + (gp.axes[2] * scrollSpeed)) + elementFocusEnabled = false + } else if (gp.axes[2] < -stickDeadZone) { + $(scrollGroup).scrollLeft($(scrollGroup).scrollLeft() + (gp.axes[2] * scrollSpeed)) + elementFocusEnabled = false + } else { + elementFocusEnabled = true + } + } + + + $(".cursor").css({ + top: cursorPos[1] + "px", + left: cursorPos[0] + "px", + display: "block" + }) + + // A BUTTON + if (gp.buttons[0].pressed) { + if (!lastButtonPress["A"]) { + lastButtonPress["A"] = 0 + } + if (Date.now() - lastButtonPress["A"] > buttonPressDelay) { + lastButtonPress["A"] = Date.now() + sounds.Confirm.play() + if (elementType == 0) { + document.activeElement.dispatchEvent(new Event("click")) + document.activeElement.dispatchEvent(new Event("controller-click")) + } else { + element.dispatchEvent(new Event("click")) + element.dispatchEvent(new Event("controller-click")) + } + } + } + + // B BUTTON + if (gp.buttons[1].pressed) { + + if (!lastButtonPress["B"]) { + lastButtonPress["B"] = 0 + } + if (Date.now() - lastButtonPress["B"] > buttonPressDelay) { + lastButtonPress["B"] = Date.now() + if (elementType == 0) { + document.activeElement.dispatchEvent(new Event("contextmenu")) + setTimeout(() => { + if ($(".menu-option").length > 0) { + let bounds = $(".menu-option")[0].getBoundingClientRect() + cursorPos[0] = bounds.left + (bounds.width / 2) + cursorPos[1] = bounds.top + (bounds.height / 2) + } + }, 100) + } else { + element.dispatchEvent(new Event("contextmenu")) + } + } + + } + + // right bumper + if (gp.buttons[5].pressed) { + if (!lastButtonPress["RB"]) { + lastButtonPress["RB"] = 0 + } + if (Date.now() - lastButtonPress["RB"] > buttonPressDelay) { + lastButtonPress["RB"] = Date.now() + app.navigateForward() + + } + } + + // left bumper + if (gp.buttons[4].pressed) { + if (!lastButtonPress["LB"]) { + lastButtonPress["LB"] = 0 + } + if (Date.now() - lastButtonPress["LB"] > buttonPressDelay) { + lastButtonPress["LB"] = Date.now() + app.navigateBack() + + } + } + + + + // cursor hover + if (elementFocusEnabled) { + element = document.elementFromPoint(cursorPos[0], cursorPos[1]) + } + + if (element) { + + let closest = element.closest("[tabindex], input, button, a") + + // VERT SCROLL + let scrollGroupCloY = element.closest(`[scrollaxis="y"]`) + if (scrollGroupCloY) { + scrollGroupY = scrollGroupCloY + } + + + // HOZ SCROLL + let scrollGroupClo = element.closest(".v-hl-container") + + if (scrollGroupClo) { + if (scrollGroupClo.classList.contains("v-hl-container")) { + scrollGroup = scrollGroupClo + scrollGroup.style["scroll-snap-type"] = "unset" + } else { + scrollGroup.style["scroll-snap-type"] = "" + scrollGroup = null + } + } + + if (closest) { + elementType = 0 + closest.focus() + } else { + if (closest) { + closest.blur() + } + elementType = 1 + element.focus() + } + cursorSpeed = cursorSpeedPvt + if (!element.classList.contains("app-chrome") + && !element.classList.contains("app-content")) { + cursorSpeed = cursorSpeedPvt + } + // console.log($._data($(element), "events")) + } else { + cursorSpeed = 12 + } + // console.log(gp.axes[0], gp.axes[1]) + start = requestAnimationFrame(appLoop); + } + +// controller pairing + notyf.error("Press the button on your controller to pair it to Cider.") + window.addEventListener("gamepadconnected", function (e) { + console.log("Gamepad connected at index %d: %s. %d buttons, %d axes.", + e.gamepad.index, e.gamepad.id, + e.gamepad.buttons.length, e.gamepad.axes.length); + notyf.success("Pairing successful!") + appLoop() + }, { once: true }); + + document.addEventListener("keydown", (e) => { + sounds.Confirm.currentTime = 0 + sounds.Menu.currentTime = 0 + sounds.Hover.currentTime = 0 + let tabbable = $("[tabindex]") + console.log(e.key) + switch (e.key) { + default: + break; + case "ArrowLeft": + e.preventDefault() + + cursorPos[0] -= cursorSpeed + break; + case "ArrowRight": + e.preventDefault() + + cursorPos[0] += cursorSpeed + break; + case "ArrowUp": + e.preventDefault() + + cursorPos[1] -= cursorSpeed + // sounds.Hover.play() + // if(intTabIndex <= 0) { + // intTabIndex = 0 + // }else{ + // intTabIndex-- + // } + // $(tabbable[intTabIndex]).focus() + // $("#app-content").scrollTop($(document.activeElement).offset().top) + break; + case "ArrowDown": + e.preventDefault() + + cursorPos[1] += cursorSpeed + // if(intTabIndex < tabbable.length) { + // intTabIndex++ + // }else{ + // intTabIndex = tabbable.length + // } + // $(tabbable[intTabIndex]).focus() + // $("#app-content").scrollTop($(document.activeElement).offset().top) + break; + case "c": + app.resetState() + break; + case "x": + // set cursorPos to the top right of the screen + // sounds.Menu.play() + if (elementType == 0) { + document.activeElement.dispatchEvent(new Event("contextmenu")) + } else { + element.dispatchEvent(new Event("contextmenu")) + } + + e.preventDefault() + break; + case "z": + sounds.Confirm.play() + if (elementType == 0) { + document.activeElement.dispatchEvent(new Event("click")) + document.activeElement.dispatchEvent(new Event("controller-click")) + } else { + element.dispatchEvent(new Event("click")) + element.dispatchEvent(new Event("controller-click")) + } + + e.preventDefault() + break; + } + + $(".cursor").css({ + top: cursorPos[1] + "px", + left: cursorPos[0] + "px" + }) + function lerp(a, b, n) { + return (1 - n) * a + n * b + } + + + element = document.elementFromPoint(cursorPos[0], cursorPos[1]) + + if (element) { + let closest = element.closest("[tabindex], input, button, a") + if (closest) { + elementType = 0 + closest.focus() + } else { + elementType = 1 + element.focus() + } + } + console.log(element) + }); +} + +export {simulateGamepad} \ No newline at end of file diff --git a/src/renderer/main/mica.js b/src/renderer/main/mica.js new file mode 100644 index 00000000..a27161f7 --- /dev/null +++ b/src/renderer/main/mica.js @@ -0,0 +1,87 @@ +async function spawnMica() { + if(typeof window.micaSpawned !== "undefined") { + return + }else{ + window.micaSpawned = true + } + const micaDiv = document.createElement('div'); + const blurIterations = 6 + micaDiv.id = 'micaEffect'; + micaDiv.style.position = "fixed" + micaDiv.style.top = "0" + micaDiv.style.left = "0" + micaDiv.style.right = "0" + micaDiv.style.bottom = "0" + micaDiv.style.zIndex = -1 + + let lastScreenX; + let lastScreenY; + let lastScreenWidth; + let lastScreenHeight; + + let imgSrc = await ipcRenderer.sendSync("get-wallpaper") + let canvas = document.createElement('canvas'); + let ctx = canvas.getContext('2d'); + let img = new Image(); + img.src = imgSrc; + img.onload = function () { + canvas.width = img.width; + canvas.height = img.height; + ctx.drawImage(img, 0, 0); + for (let i = 0; i < blurIterations; i++) { + StackBlur.canvasRGB(canvas, 0, 0, img.width, img.height, 128); + } + let imgData = ctx.getImageData(0, 0, canvas.width, canvas.height); + micaDiv.style.backgroundImage = `url(${canvas.toDataURL()})`; + document.body.appendChild(micaDiv); + // on animation finished set animation to unset + micaDiv.addEventListener('animationend', function () { + micaDiv.style.opacity = '1'; + micaDiv.style.animation = 'unset'; + }) + } + + + function onScreenMove(cb) { + function detectScreenMove() { + if (lastScreenY !== window.screenY || lastScreenX !== window.screenX) { + lastScreenY = window.screenY; + lastScreenX = window.screenX; + cb(); + } + // window size change + if (lastScreenWidth !== window.innerWidth || lastScreenHeight !== window.innerHeight) { + lastScreenWidth = window.innerWidth; + lastScreenHeight = window.innerHeight; + cb(); + } + if (true) { + requestAnimationFrame(detectScreenMove); + } + } + + if (true) { + requestAnimationFrame(detectScreenMove); + } + } + + onScreenMove(function () { + const screenHeight = window.screen.height; + const screenWidth = window.screen.width; + const windowHeight = window.innerHeight; + const windowWidth = window.innerWidth; + const ratio = windowWidth / windowHeight; + const x = window.screenX; + const y = window.screenY; + micaDiv.style.backgroundSize = `${screenWidth}px ${screenHeight}px`; + // micaDiv.style.backgroundPosition = `-${x}px -${y}px`; + if (x < 0) { + micaDiv.style.backgroundPosition = `${screenWidth + x}px -${y}px`; + } else { + micaDiv.style.backgroundPosition = `-${x}px -${y}px`; + } + }); + return true +} + +export {spawnMica} \ No newline at end of file diff --git a/src/renderer/main/musickittools.js b/src/renderer/main/musickittools.js new file mode 100644 index 00000000..8967f4a9 --- /dev/null +++ b/src/renderer/main/musickittools.js @@ -0,0 +1,42 @@ +const MusicKitTools = { + async v3Continuous ({ + href, + options = {}, + reqOptions = {}, + onProgress = () => {}, + onError = () => {}, + onSuccess = () => {} + } = {}) { + let returnData = [] + async function sendReq(href, options) { + const response = await app.mk.api.v3.music(href, options).catch(error => onError) + + returnData = returnData.concat(response.data.data) + if(response.data.next) { + onProgress({ + response: response, + total: returnData.length + }) + try { + await sendReq(response.data.next, options) + }catch(e){ + await sendReq(response.data.next, options) + } + } + } + + await sendReq(href, options) + onSuccess(returnData) + return returnData + }, + getHeader() { + return new Headers({ + Authorization: 'Bearer ' + MusicKit.getInstance().developerToken, + Accept: 'application/json', + 'Content-Type': 'application/json', + 'Music-User-Token': '' + MusicKit.getInstance().musicUserToken + }); + } +} + +export { MusicKitTools } \ No newline at end of file diff --git a/src/renderer/main/vueapp.js b/src/renderer/main/vueapp.js new file mode 100644 index 00000000..eefa8f21 --- /dev/null +++ b/src/renderer/main/vueapp.js @@ -0,0 +1,4021 @@ +import { store } from './vuex-store.js'; + +Vue.use(VueHorizontal); +Vue.use(VueObserveVisibility); +Vue.use(BootstrapVue) +/* @namespace */ +const app = new Vue({ + store: store, + data: { + version: ipcRenderer.sendSync("get-version"), + appMode: "player", + ipcRenderer: ipcRenderer, + cfg: ipcRenderer.sendSync("getStore"), + isDev: ipcRenderer.sendSync("is-dev"), + drawertest: false, + platform: "", + mk: {}, + quickPlayQuery: "", + pluginInstalled: false, + pluginMenuEntries: [], + lz: ipcRenderer.sendSync("get-i18n", "en_US"), + lzListing: ipcRenderer.sendSync("get-i18n-listing"), + search: { + term: "", + hints: [], + showHints: false, + results: {}, + resultsSocial: {}, + limit: 10 + }, + fullscreenLyrics: false, + playerLCD: { + playbackDuration: 0, + desiredDuration: 0, + userInteraction: false + }, + drawer: { + open: false, + panel: "" + }, + browsepage: [], + listennow: [], + madeforyou: [], + radio: { + personal: [] + }, + mklang: 'en', + webview: { + url: "", + title: "", + loading: false + }, + showingPlaylist: [], + appleCurator: [], + artistPage: { + data: {}, + }, + library: { + backgroundNotification: { + show: false, + message: "", + total: 0, + progress: 0 + }, + songs: { + sortingOptions: { + "albumName": "0", + "artistName": "0", + "name": "0", + "genre": "0", + "releaseDate": "0", + "durationInMillis": "0", + "dateAdded": "0" + }, + sorting: "name", + sortOrder: "asc", + listing: [], + meta: { total: 0, progress: 0 }, + search: "", + displayListing: [], + downloadState: 0 // 0 = not started, 1 = in progress, 2 = complete, 3 = empty library + }, + albums: { + sortingOptions: { + "albumName": "0", + "artistName": "0", + "name": "0", + "genre": "0" + }, + viewAs: 'covers', + sorting: ["dateAdded", "name"], // [0] = recentlyadded page, [1] = albums page + sortOrder: ["desc", "asc"], // [0] = recentlyadded page, [1] = albums page + listing: [], + meta: { total: 0, progress: 0 }, + search: "", + displayListing: [], + downloadState: 0 // 0 = not started, 1 = in progress, 2 = complete, 3 = empty library + }, + artists: { + sortingOptions: { + "artistName": "0", + "name": "0", + "genre": "0", + "releaseDate": "0" + }, + viewAs: 'covers', + sorting: ["dateAdded", "name"], // [0] = recentlyadded page, [1] = albums page + sortOrder: ["desc", "asc"], // [0] = recentlyadded page, [1] = albums page + listing: [], + meta: { total: 0, progress: 0 }, + search: "", + displayListing: [], + downloadState: 0 // 0 = not started, 1 = in progress, 2 = complete, 3 = empty library + }, + }, + playlists: { + listing: [], + details: {}, + loadingState: 0, // 0 loading, 1 loaded, 2 error + id: "", + trackMapping: {} + }, + webremoteurl: "", + webremoteqr: "", + mxmtoken: "", + mkIsReady: false, + playerReady: false, + animateBackground: false, + currentArtUrl: '', + currentArtUrlRaw: '', + lyricon: false, + currentTrackID: '', + currentTrackIDBG: '', + lyrics: [], + currentLyricsLine: 0, + lyriccurrenttime: 0, + richlyrics: [], + lyricsMediaItem: {}, + lyricsDebug: { + current: 0, + start: 0, + end: 0 + }, + v3: { + requestBody: { + platform: "web" + } + }, + tmpHeight: '', + tmpWidth: '', + tmpVar: [], + notification: false, + chrome: { + contentScrollPosY: 0, + appliedTheme: { + location: "", + info: {} + }, + desiredPageTransition: "wpfade_transform", + hideUserInfo: ipcRenderer.sendSync("is-dev") || false, + artworkReady: false, + userinfo: { + "id": "", + "attributes": { + "name": "Cider User", + "handle": "CiderUser", + "artwork": { "url": "./assets/logocut.png" } + } + }, + menuOpened: false, + maximized: false, + drawerOpened: false, + drawerState: "queue", + topChromeVisible: true, + progresshover: false, + windowControlPosition: "right", + contentAreaScrolling: true, + showCursor: false + }, + collectionList: { + response: {}, + title: "", + type: "" + }, + prevButtonBackIndicator: false, + currentSongInfo: {}, + page: "", + pageHistory: [], + songstest: false, + hangtimer: null, + selectedMediaItems: [], + routes: ["browse", "listen_now", "radio"], + musicBaseUrl: "https://api.music.apple.com/", + modals: { + addToPlaylist: false, + spatialProperties: false, + qrcode: false, + equalizer: false, + audioSettings: false, + pluginMenu: false, + audioControls: false, + showPlaylist: false, + castMenu: false + }, + socialBadges: { + badgeMap: {}, + version: "", + mediaItems: [], + mediaItemDLState: 0 // 0 = not started, 1 = in progress, 2 = complete + }, + menuPanel: { + visible: false, + event: null, + content: { + name: "", + items: {}, + headerItems: {} + } + }, + pauseButtonTimer: null, + activeCasts: [], + pluginPages: { + page: "hello-world", + pages: [], + } + }, + watch: { + cfg: { + handler: function (val, oldVal) { + console.log(`cfg changed from ${oldVal} to ${val}`); + ipcRenderer.send("setStore", val); + }, + deep: true + }, + page: () => { + document.getElementById("app-content").scrollTo(0, 0); + app.resetState() + }, + showingPlaylist: () => { + if (!app.modals.showPlaylist) { + document.getElementById("app-content").scrollTo(0, 0); + app.resetState() + } + }, + artistPage: () => { + document.getElementById("app-content").scrollTo(0, 0); + app.resetState() + } + }, + methods: { + setTimeout(func, time) { + return setTimeout(func, time); + }, + songLinkShare(amUrl) { + notyf.open({ type: "info", className: "notyf-info", message: app.getLz('term.song.link.generate') }) + let self = this + let httpRequest = new XMLHttpRequest(); + httpRequest.open('GET', `https://api.song.link/v1-alpha.1/links?url=${amUrl}&userCountry=US`, true); + httpRequest.send(); + httpRequest.onreadystatechange = function () { + if (httpRequest.readyState === 4) { + if (httpRequest.status === 200) { + let response = JSON.parse(httpRequest.responseText); + console.log(response); + self.copyToClipboard(response.pageUrl) + } else { + console.log('There was a problem with the request.'); + notyf.error(app.getLz('term.requestError')) + } + } + } + }, + mainMenuVisibility(val) { + if (val) { + (this.mk.isAuthorized) ? this.chrome.menuOpened = !this.chrome.menuOpened : false; + if (!this.mk.isAuthorized) { + this.mk.authorize() + } + } else { + setTimeout(() => { + this.chrome.menuOpened = false + }, 100) + } + }, + stringTemplateParser(expression, valueObj) { + const templateMatcher = /{{\s?([^{}\s]*)\s?}}/g; + let text = expression.replace(templateMatcher, (substring, value, index) => { + value = valueObj[value]; + return value; + }); + return text + // stringTemplateParser('my name is {{name}} and age is {{age}}', {name: 'Tom', age:100}) + }, + async setLz(lang) { + if (lang == "") { + lang = this.cfg.general.language + } + this.lz = ipcRenderer.sendSync("get-i18n", lang) + this.mklang = await this.MKJSLang() + try { + this.listennow.timestamp = 0; + this.browsepage.timestamp = 0; + } catch (e) { } + }, + /** + * Grabs translation for localization. + * @param {string} message - The key to grab the translated term + * @param {object} options - Optional options + * @author booploops#7139 + * @memberOf app + */ + getLz(message, options = {}) { + if (this.lz[message]) { + if (options["count"]) { + if (typeof this.lz[message] === "object") { + let type = window.fastPluralRules.getPluralFormNameForCardinalByLocale(this.cfg.general.language.replace("_", "-"), options["count"]); + return this.lz[message][type] ?? ((this.lz[message])[Object.keys(this.lz[message])[0]] ?? this.lz[message]) + } else { + // fallback English plural forms ( old i18n ) + if (options["count"] > 1) { + return this.lz[message + "s"] ?? this.lz[message] + } else { + return this.lz[message] ?? this.lz[message + "s"] + } + } + } else if (typeof this.lz[message] === "object") { + return (this.lz[message])[Object.keys(this.lz[message])[0]] + } + return this.lz[message] + } else { + return message + } + }, + setLzManual() { + app.$data.library.songs.sortingOptions = { + "albumName": app.getLz('term.sortBy.album'), + "artistName": app.getLz('term.sortBy.artist'), + "name": app.getLz('term.sortBy.name'), + "genre": app.getLz('term.sortBy.genre'), + "releaseDate": app.getLz('term.sortBy.releaseDate'), + "durationInMillis": app.getLz('term.sortBy.duration'), + "dateAdded": app.getLz('term.sortBy.dateAdded') + } + + app.$data.library.albums.sortingOptions = { + "albumName": app.getLz('term.sortBy.album'), + "artistName": app.getLz('term.sortBy.artist'), + "name": app.getLz('term.sortBy.name'), + "genre": app.getLz('term.sortBy.genre') + } + + app.$data.library.artists.sortingOptions = { + "artistName": app.getLz('term.sortBy.artist'), + "name": app.getLz('term.sortBy.name'), + "genre": app.getLz('term.sortBy.genre'), + "releaseDate": app.getLz('term.sortBy.releaseDate') + } + }, + async showSocialListeningTo() { + let contentIds = Object.keys(app.socialBadges.badgeMap) + app.showCollection({ data: this.socialBadges.mediaItems }, "Friends Listening To", "albums") + if (this.socialBadges.mediaItemDLState == 1 || this.socialBadges.mediaItemDLState == 2) { + return + } + this.socialBadges.mediaItemDLState = 2 + await asyncForEach(contentIds, async (item) => { + try { + let type = "albums" + if (item.includes("pl.")) { + type = "playlists" + } + if (item.includes("ra.")) { + type = "stations" + } + let found = await app.mk.api.v3.music(`/v1/catalog/us/${type}/${item}`) + this.socialBadges.mediaItems.push(found.data.data[0]) + } catch (e) { + + } + }) + }, + async openAppleMusicURL(url) { + let properties = MusicKit.formattedMediaURL(url) + let item = { + id: properties.contentId, + attributes: { + playParams: { + id: properties.contentId, + kind: properties.kind, + } + }, + type: properties.kind, + kind: properties.kind + } + app.routeView(item) + }, + saveFile(fileName, urlFile) { + let a = document.createElement("a"); + a.style = "display: none"; + document.body.appendChild(a); + a.href = urlFile; + a.download = fileName; + a.click(); + window.URL.revokeObjectURL(url); + a.remove(); + }, + async showMenuPanel(data, event) { + app.menuPanel.visible = true; + app.menuPanel.content.name = data.name ?? ""; + app.menuPanel.content.items = data.items ?? {}; + app.menuPanel.content.headerItems = data.headerItems ?? {}; + if (event) { + app.menuPanel.event = event; + } + }, + async getSvgIcon(url) { + let response = await fetch(url); + let data = await response.text(); + return data; + }, + getSocialBadges(cb = () => { + }) { + let self = this + try { + app.mk.api.v3.music("/v1/social/badging-map").then(data => { + self.socialBadges.badgeMap = data.data.results.badgingMap + cb(data.data.results.badgingMap) + }) + } catch (ex) { + this.socialBadges.badgeMap = {} + } + }, + addFavorite(id, type) { + this.cfg.home.favoriteItems.push({ + id: id, + type: type + }); + }, + modularUITest(val = false) { + this.fullscreenLyrics = val; + if (val) { + document.querySelector("#app-main").classList.add("modular-fs") + } else { + document.querySelector("#app-main").classList.remove("modular-fs") + } + }, + navigateBack() { + this.chrome.desiredPageTransition = "wpfade_transform_backwards" + return new Promise((resolve, reject) => { + history.back() + setTimeout(() => { + + + resolve(this.chrome.desiredPageTransition = "wpfade_transform") + }, 100) + }) + }, + navigateForward() { + history.forward() + }, + getHTMLStyle() { + // document.querySelector("html").style.background = "#222"; + document.querySelector("body").classList.add("notransparency") + }, + resetState() { + this.menuPanel.visible = false; + app.selectedMediaItems = []; + this.chrome.contentAreaScrolling = true + for (let key in app.modals) { + app.modals[key] = false; + } + }, + promptAddToPlaylist() { + app.modals.addToPlaylist = true; + }, + async addSelectedToNewPlaylist() { + let self = this + let pl_items = [] + for (let i = 0; i < self.selectedMediaItems.length; i++) { + if (self.selectedMediaItems[i].kind == "song" || self.selectedMediaItems[i].kind == "songs") { + self.selectedMediaItems[i].kind = "songs" + pl_items.push({ + id: self.selectedMediaItems[i].id, + type: self.selectedMediaItems[i].kind + }) + } else if ((self.selectedMediaItems[i].kind == "album" || self.selectedMediaItems[i].kind == "albums") && self.selectedMediaItems[i].isLibrary != true) { + self.selectedMediaItems[i].kind = "albums" + let res = await self.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/albums/${self.selectedMediaItems[i].id}/tracks`); + let ids = res.data.data.map(function (i) { + return { id: i.id, type: i.type } + }) + pl_items = pl_items.concat(ids) + } else if (self.selectedMediaItems[i].kind == "library-song" || self.selectedMediaItems[i].kind == "library-songs") { + self.selectedMediaItems[i].kind = "library-songs" + pl_items.push({ + id: self.selectedMediaItems[i].id, + type: self.selectedMediaItems[i].kind + }) + } else if ((self.selectedMediaItems[i].kind == "library-album" || self.selectedMediaItems[i].kind == "library-albums") || (self.selectedMediaItems[i].kind == "album" && self.selectedMediaItems[i].isLibrary == true)) { + self.selectedMediaItems[i].kind = "library-albums" + let res = await self.mk.api.v3.music(`/v1/me/library/albums/${self.selectedMediaItems[i].id}/tracks`); + let ids = res.data.data.map(function (i) { + return { id: i.id, type: i.type } + }) + pl_items = pl_items.concat(ids) + } else { + pl_items.push({ + id: self.selectedMediaItems[i].id, + type: self.selectedMediaItems[i].kind + }) + } + } + this.modals.addToPlaylist = false + app.newPlaylist(app.getLz('term.newPlaylist'), pl_items) + }, + async addSelectedToPlaylist(playlist_id) { + let self = this + let pl_items = [] + for (let i = 0; i < self.selectedMediaItems.length; i++) { + if (self.selectedMediaItems[i].kind == "song" || self.selectedMediaItems[i].kind == "songs") { + self.selectedMediaItems[i].kind = "songs" + pl_items.push({ + id: self.selectedMediaItems[i].id, + type: self.selectedMediaItems[i].kind + }) + } else if ((self.selectedMediaItems[i].kind == "album" || self.selectedMediaItems[i].kind == "albums") && self.selectedMediaItems[i].isLibrary != true) { + self.selectedMediaItems[i].kind = "albums" + let res = await self.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/albums/${self.selectedMediaItems[i].id}/tracks`); + let ids = res.data.data.map(function (i) { + return { id: i.id, type: i.type } + }) + pl_items = pl_items.concat(ids) + } else if (self.selectedMediaItems[i].kind == "library-song" || self.selectedMediaItems[i].kind == "library-songs") { + self.selectedMediaItems[i].kind = "library-songs" + pl_items.push({ + id: self.selectedMediaItems[i].id, + type: self.selectedMediaItems[i].kind + }) + } else if ((self.selectedMediaItems[i].kind == "library-album" || self.selectedMediaItems[i].kind == "library-albums") || (self.selectedMediaItems[i].kind == "album" && self.selectedMediaItems[i].isLibrary == true)) { + self.selectedMediaItems[i].kind = "library-albums" + let res = await self.mk.api.v3.music(`/v1/me/library/albums/${self.selectedMediaItems[i].id}/tracks`); + let ids = res.data.data.map(function (i) { + return { id: i.id, type: i.type } + }) + pl_items = pl_items.concat(ids) + } else { + pl_items.push({ + id: self.selectedMediaItems[i].id, + type: self.selectedMediaItems[i].kind + }) + } + + } + this.modals.addToPlaylist = false + await app.mk.api.v3.music( + `/v1/me/library/playlists/${playlist_id}/tracks`, {}, { + fetchOptions: { + method: "POST", + body: JSON.stringify({ + data: pl_items + }) + } + } + ).then(() => { + if (this.page == 'playlist_' + this.showingPlaylist.id) { + this.getPlaylistFromID(this.showingPlaylist.id, true) + } + }) + }, + async init() { + let self = this + if (this.cfg.visual.theme != "default.less" && this.cfg.visual.theme != "") { + this.setTheme(this.cfg.visual.theme) + } + + this.setLz(this.cfg.general.language) + this.setLzManual() + clearTimeout(this.hangtimer) + this.mk = MusicKit.getInstance() + let needsReload = (typeof localStorage["music.ampwebplay.media-user-token"] == "undefined") + this.mk.authorize().then(() => { + self.mkIsReady = true + if (needsReload) { + document.location.reload() + } + }) + this.$forceUpdate() + if (this.isDev) { + this.mk.privateEnabled = true + // Hide UserInfo if Dev mode + } else { + // Get Hide User from Settings + this.chrome.hideUserInfo = !this.cfg.visual.showuserinfo + this.mk.privateEnabled = this.cfg.general.privateEnabled + } + if (this.cfg.visual.hw_acceleration == "disabled") { + document.body.classList.add("no-gpu") + } + this.mk._services.timing.mode = 0 + this.platform = ipcRenderer.sendSync('cider-platform'); + + this.mklang = await this.MKJSLang() + + try { + // Set profile name + this.chrome.userinfo = (await app.mk.api.v3.music(`/v1/me/social-profile`)).data.data[0] + // check if this.chrome.userinfo.attributes.artwork exists + if (this.chrome.userinfo.attributes.artwork) { + document.documentElement.style + .setProperty('--cvar-userprofileimg', `url("${this.getMediaItemArtwork(this.chrome.userinfo.attributes.artwork.url)}")`); + } + } catch (err) { + } + + this.mk._bag.features['seamless-audio-transitions'] = this.cfg.audio.seamless_audio + + // API Fallback + if (!this.chrome.userinfo) { + this.chrome.userinfo = { + "id": "", + "attributes": { + "name": "Cider User", + "handle": "CiderUser", + "artwork": { "url": "./assets/logocut.png" } + } + } + } + MusicKitInterop.init() + // Set the volume + + // Check the value of this.cfg.audio.muted + if (!this.cfg.audio.muted) { + // Set the mk.volume to the last stored volume data + this.mk.volume = this.cfg.audio.volume + } else if (this.cfg.audio.muted) { + // Set mk.volume to -1 (setting to 0 wont work, so temp solution setting to -1) + this.mk.volume = -1; + } + // ipcRenderer.invoke('getStoreValue', 'audio.volume').then((value) => { + // self.mk.volume = value + // }) + + // load cached library + let librarySongs = await CiderCache.getCache("library-songs") + let libraryAlbums = await CiderCache.getCache("library-albums") + if (librarySongs) { + this.library.songs.listing = librarySongs + this.library.songs.displayListing = this.library.songs.listing + } + if (libraryAlbums) { + this.library.albums.listing = libraryAlbums + this.library.albums.displayListing = this.library.albums.listing + } + + + if (typeof MusicKit.PlaybackBitrate[app.cfg.audio.quality] !== "string") { + app.mk.bitrate = MusicKit.PlaybackBitrate[app.cfg.audio.quality] + } else { + app.mk.bitrate = 256 + app.cfg.audio.quality = "HIGH" + } + + switch (this.cfg.general.resumeOnStartupBehavior) { + default: + case "local": + // load last played track + try { + let lastItem = window.localStorage.getItem("currentTrack") + let time = window.localStorage.getItem("currentTime") + let queue = window.localStorage.getItem("currentQueue") + if (lastItem != null) { + lastItem = JSON.parse(lastItem) + let kind = lastItem.attributes.playParams.kind; + let truekind = (!kind.endsWith("s")) ? (kind + "s") : kind; + app.mk.setQueue({ + [truekind]: [lastItem.attributes.playParams.id], + parameters: { l: app.mklang } + }) + app.mk.mute() + setTimeout(() => { + app.mk.play().then(() => { + app.mk.pause().then(() => { + if (time != null) { + app.mk.seekToTime(time) + } + app.mk.unmute() + if (queue != null) { + queue = JSON.parse(queue) + if (queue && queue.length > 0) { + let ids = queue.map(e => (e.playParams ? e.playParams.id : (e.attributes.playParams ? e.attributes.playParams.id : ''))) + let i = 0; + if (ids.length > 0) { + for (let id of ids) { + if (!(i == 0 && ids[0] == lastItem.attributes.playParams.id)) { + try { + app.mk.playLater({ songs: [id] }) + } catch (err) { + } + } + i++; + } + } + } + } + + }) + + }) + }, 1500) + + } + + } catch (e) { + console.log(e) + } + break; + case "history": + let history = await app.mk.api.v3.music(`/v1/me/recent/played/tracks`, { l: app.mklang }) + if (history.data.data.length > 0) { + let lastItem = history.data.data[0] + let kind = lastItem.attributes.playParams.kind; + let truekind = (!kind.endsWith("s")) ? (kind + "s") : kind; + app.mk.setQueue({ + [truekind]: [lastItem.attributes.playParams.id], + parameters: { l: app.mklang } + }) + app.mk.mute() + setTimeout(() => { + app.mk.play().then(() => { + app.mk.pause().then(() => { + app.mk.unmute() + }) + }) + }, 1500) + } + + break; + case "disabled": + + break; + } + + MusicKit.getInstance().videoContainerElement = document.getElementById("apple-music-video-player") + + ipcRenderer.on('theme-update', (event, arg) => { + less.refresh(true, true, true) + self.setTheme(self.cfg.visual.theme, true) + }) + + ipcRenderer.on('SoundCheckTag', (event, tag) => { + // let replaygain = self.parseSCTagToRG(tag) + let soundcheck = tag.split(" ") + let numbers = [] + for (let item of soundcheck) { + numbers.push(parseInt(item, 16)) + + } + numbers.shift() + let peak = Math.max(numbers[6], numbers[7]) / 32768.0 + let gain = Math.pow(10, ((-7.63 - (Math.log10(peak) * 20)) / 20))// EBU R 128 Compliant + console.debug(`[Cider][MaikiwiSoundCheck] Peak Gain: '${Math.log10(peak) * 20}' dB | Adjusting '${Math.log10(gain) * 20}' dB`) + try { + //CiderAudio.audioNodes.gainNode.gain.value = (Math.min(Math.pow(10, (replaygain.gain / 20)), (1 / replaygain.peak))) + CiderAudio.audioNodes.gainNode.gain.value = gain + } catch (e) { + } + }) + + ipcRenderer.on('play', function (_event, mode, id) { + if (mode !== 'url') { + self.mk.setQueue({ [mode]: id, parameters: { l: self.mklang } }).then(() => { + app.mk.play() + }) + + } else { + app.openAppleMusicURL(id) + } + }); + + this.mk.addEventListener(MusicKit.Events.playbackStateDidChange, () => { + ipcRenderer.send('wsapi-updatePlaybackState', wsapi.getAttributes()); + }) + + this.mk.addEventListener(MusicKit.Events.playbackTimeDidChange, (a) => { + self.lyriccurrenttime = self.mk.currentPlaybackTime + this.currentSongInfo = a + self.playerLCD.playbackDuration = (self.mk.currentPlaybackTime) + // wsapi + ipcRenderer.send('wsapi-updatePlaybackState', wsapi.getAttributes()); + }) + + this.mk.addEventListener(MusicKit.Events.nowPlayingItemDidChange, (a) => { + if (self.$refs.queue) { + self.$refs.queue.updateQueue(); + } + this.currentSongInfo = a + + + if (app.cfg.audio.normalization) { + // get unencrypted audio previews to get SoundCheck's normalization tag + try { + let previewURL = null + try { + previewURL = app.mk.nowPlayingItem.previewURL + } catch (e) { + } + if (previewURL == null && ((app.mk.nowPlayingItem?._songId ?? (app.mk.nowPlayingItem["songId"] ?? app.mk.nowPlayingItem.relationships.catalog.data[0].id)) != -1)) { + app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/songs/${app.mk.nowPlayingItem?._songId ?? (app.mk.nowPlayingItem["songId"] ?? app.mk.nowPlayingItem.relationships.catalog.data[0].id)}`).then((response) => { + previewURL = response.data.data[0].attributes.previews[0].url + if (previewURL) + ipcRenderer.send('getPreviewURL', previewURL) + }) + } else { + if (previewURL) + ipcRenderer.send('getPreviewURL', previewURL) + } + + } catch (e) { + } + } + + + try { + a = a.item.attributes; + } catch (_) { + } + let type = (self.mk.nowPlayingItem != null) ? self.mk.nowPlayingItem["type"] ?? '' : ''; + + if (type.includes("musicVideo") || type.includes("uploadedVideo") || type.includes("music-movie")) { + document.getElementById("apple-music-video-container").style.display = "block"; + // app.chrome.topChromeVisible = false + } else { + document.getElementById("apple-music-video-container").style.display = "none"; + // app.chrome.topChromeVisible = true + } + self.chrome.artworkReady = false + self.lyrics = [] + self.richlyrics = [] + app.getCurrentArtURL(); + // app.getNowPlayingArtwork(42); + app.getNowPlayingArtworkBG(32); + app.loadLyrics(); + + // Playback Notifications + if (this.cfg.general.playbackNotifications && !document.hasFocus() && a.artistName && a.artwork && a.name) { + if (this.notification) { + this.notification.close() + } + this.notification = new Notification(a.name, { + body: `${a.artistName} — ${a.albumName}`, + icon: a.artwork.url.replace('/{w}x{h}bb', '/512x512bb').replace('/2000x2000bb', '/35x35bb'), + silent: true, + }); + } + + }) + + + this.mk.addEventListener(MusicKit.Events.playbackVolumeDidChange, (_a) => { + this.cfg.audio.volume = this.mk.volume + }) + + this.refreshPlaylists(this.isDev) + document.body.removeAttribute("loading") + if (window.location.hash != "") { + this.appRoute(window.location.hash) + } else { + this.page = "home" + } + + this.mediaKeyFixes() + + setTimeout(() => { + this.getSocialBadges() + this.getBrowsePage(); + this.$forceUpdate() + }, 500) + ipcRenderer.invoke("renderer-ready", true) + document.querySelector("#LOADER").remove() + if (this.cfg.general.themeUpdateNotification) { + this.checkForThemeUpdates() + } + }, + setContentScrollPos(scroll) { + this.chrome.contentScrollPosY = scroll.target.scrollTop + }, + async checkForThemeUpdates() { + let self = this + const themes = ipcRenderer.sendSync("get-themes") + await asyncForEach(themes, async (theme) => { + if (theme.commit != "") { + await fetch(`https://api.github.com/repos/${theme.github_repo}/commits`) + .then(res => res.json()) + .then(res => { + if (res[0].sha != theme.commit) { + const notify = notyf.open({ className: "notyf-info", type: "info", message: `[Themes] ${theme.name} has an update available.` }) + notify.on("click", () => { + app.appRoute("themes-github") + notyf.dismiss(notify) + }) + } + }) + } + }) + }, + async setTheme(theme = "", onlyPrefs = false) { + console.log(theme) + if (this.cfg.visual.theme == "") { + this.cfg.visual.theme = "default.less" + } + if (theme == "") { + theme = this.cfg.visual.theme + } else { + this.cfg.visual.theme = "" + this.cfg.visual.theme = theme + } + const info = {} + try { + const infoResponse = await fetch("themes/" + app.cfg.visual.theme.replace("index.less", "theme.json")) + this.chrome.appliedTheme.info = await infoResponse.json() + } catch (e) { + e = null + console.warn("failed to get theme.json") + this.chrome.appliedTheme.info = {} + } + + + if (!onlyPrefs) { + document.querySelector("#userTheme").href = `themes/${this.cfg.visual.theme}` + document.querySelectorAll(`[id*='less']`).forEach(el => { + el.remove() + }); + less.refresh() + } + }, + getThemeDirective(directive = "") { + let directives = {} + if (typeof this.chrome.appliedTheme.info.directives == "object") { + directives = this.chrome.appliedTheme.info.directives + } + if (directives[directive]) { + return this.chrome.appliedTheme.info.directives[directive].value + } else if (this.cfg.visual.directives[directive]) { + return this.cfg.visual.directives.windowLayout + } else { + return "" + } + }, + unauthorize() { + bootbox.confirm(app.getLz('term.confirmLogout'), function (result) { + if (result) { + app.mk.unauthorize() + document.location.reload() + } + }); + }, + getAppClasses() { + let classes = {} + if (this.cfg.advanced.experiments.includes('compactui')) { + classes.compact = true + } + if (this.cfg.visual.window_background_style == "none") { + classes.simplebg = true + } + + if (this.getThemeDirective('windowLayout') == 'twopanel') { + classes.twopanel = true + } + return classes + }, + invokeDrawer(panel) { + if (this.drawer.panel == panel && this.drawer.open) { + if (panel == "lyrics") { + this.lyricon = false + } + this.drawer.panel = "" + this.drawer.open = false + } else { + if (panel == "lyrics") { + this.lyricon = true + } else { + this.lyricon = false + } + this.drawer.open = true + this.drawer.panel = panel + } + }, + select_removeMediaItem(id) { + this.selectedMediaItems.filter(item => item.guid == id).forEach(item => { + this.selectedMediaItems.splice(this.selectedMediaItems.indexOf(item), 1) + }) + }, + select_hasMediaItem(id) { + let found = this.selectedMediaItems.find(item => item.guid == id) + if (found) { + return true + } else { + return false + } + }, + select_selectMediaItem(id, kind, index, guid, library) { + if (!this.select_hasMediaItem(guid)) { + this.selectedMediaItems.push({ + id: id, + kind: kind, + index: index, + guid: guid, + isLibrary: library + }) + } + }, + getPlaylistFolderChildren(id) { + return this.playlists.listing.filter(playlist => { + if (playlist.parent == id) { + return playlist + } + }) + }, + async refreshPlaylists(localOnly = false) { + let self = this + let trackMap = this.cfg.advanced.playlistTrackMapping + let newListing = [] + let trackMapping = {} + const cachedPlaylist = await CiderCache.getCache("library-playlists") + const cachedTrackMapping = await CiderCache.getCache("library-playlists-tracks") + + if (cachedPlaylist) { + console.log("using cached playlists") + this.playlists.listing = cachedPlaylist + self.sortPlaylists() + } else { + console.log("playlist has no cache") + } + + if (cachedTrackMapping) { + console.log("using cached track mapping") + this.playlists.trackMapping = cachedTrackMapping + } + if (localOnly) { + return + } + + this.library.backgroundNotification.message = "Building playlist cache..." + this.library.backgroundNotification.show = true + + async function deepScan(parent = "p.playlistsroot") { + console.log(`scanning ${parent}`) + const playlistData = await app.mk.api.v3.music(`/v1/me/library/playlist-folders/${parent}/children/`) + await asyncForEach(playlistData.data.data, async (playlist) => { + playlist.parent = parent + if ( + playlist.type != "library-playlist-folders" && + typeof playlist.attributes.playParams["versionHash"] != "undefined" + ) { + playlist.parent = "p.applemusic" + } + playlist.children = [] + playlist.tracks = [] + try { + if (trackMap) { + let tracks = await app.mk.api.v3.music(playlist.href + "/tracks").catch(e => { + // no tracks + e = null + }) + tracks.data.data.forEach(track => { + if (!trackMapping[track.id]) { + trackMapping[track.id] = [] + } + trackMapping[track.id].push(playlist.id) + + if (typeof track.attributes.playParams.catalogId == "string") { + if (!trackMapping[track.attributes.playParams.catalogId]) { + trackMapping[track.attributes.playParams.catalogId] = [] + } + trackMapping[track.attributes.playParams.catalogId].push(playlist.id) + } + }) + } + } catch (e) { } + if (playlist.type == "library-playlist-folders") { + try { + await deepScan(playlist.id).catch(e => { }) + } catch (e) { + + } + } + newListing.push(playlist) + }) + } + + await deepScan() + + this.library.backgroundNotification.show = false + this.playlists.listing = newListing + self.sortPlaylists() + if (trackMap) { + CiderCache.putCache("library-playlists-tracks", trackMapping) + this.playlists.trackMapping = trackMapping + } + CiderCache.putCache("library-playlists", newListing) + }, + sortPlaylists() { + this.playlists.listing.sort((a, b) => { + if (a.type === "library-playlist-folders" && b.type !== "library-playlist-folders") { + return -1 + } else if (a.type !== "library-playlist-folders" && b.type === "library-playlist-folders") { + return 1 + } else { + return 0 + } + }) + }, + playlistHeaderContextMenu(event) { + let menu = { + items: [{ + name: app.getLz('term.createNewPlaylist'), + action: () => { + this.newPlaylist() + } + }, + { + name: app.getLz('term.createNewPlaylistFolder'), + action: () => { + this.newPlaylistFolder() + } + } + ] + } + this.showMenuPanel(menu, event) + }, + async editPlaylistFolder(id, name = app.getLz('term.newPlaylist')) { + let self = this + this.mk.api.v3.music( + `/v1/me/library/playlist-folders/${id}`, {}, { + fetchOptions: { + method: "PATCH", + body: JSON.stringify({ + attributes: { name: name } + }) + } + } + ).then(res => { + self.refreshPlaylists() + }) + }, + async editPlaylist(id, name = app.getLz('term.newPlaylist')) { + let self = this + this.mk.api.v3.music( + `/v1/me/library/playlists/${id}`, {}, { + fetchOptions: { + method: "PATCH", + body: JSON.stringify({ + attributes: { name: name } + }) + } + } + ).then(res => { + self.refreshPlaylists() + }) + }, + copyToClipboard(str) { + if (navigator.userAgent.includes('Darwin') || navigator.appVersion.indexOf("Mac") != -1) { + this.darwinShare(str) + } else { + notyf.success(app.getLz('term.share.success')) + navigator.clipboard.writeText(str).then(r => console.log("Copied to clipboard.")) + } + }, + newPlaylist(name = app.getLz('term.newPlaylist'), tracks = []) { + let self = this + let request = { + name: name + } + if (tracks.length > 0) { + request.tracks = tracks + } + app.mk.api.v3.music(`/v1/me/library/playlists`, {}, { + fetchOptions: { + method: "POST", + body: JSON.stringify({ + "attributes": { "name": name }, + "relationships": { + "tracks": { "data": tracks }, + } + }) + } + }).then(res => { + res = res.data.data[0] + console.log(res) + self.appRoute(`playlist_` + res.id); + self.showingPlaylist = []; + self.getPlaylistFromID(app.page.substring(9), true) + self.playlists.listing.push({ + id: res.id, + attributes: { + name: name + }, + parent: "p.playlistsroot" + }) + self.sortPlaylists() + setTimeout(() => { + app.refreshPlaylists() + }, 8000) + }) + }, + deletePlaylist(id) { + let self = this + if (confirm(app.getLz('term.deletePlaylist'))) { + app.mk.api.v3.music(`/v1/me/library/playlists/${id}`, {}, { + fetchOptions: { + method: "DELETE" + } + }).then(res => { + // remove this playlist from playlists.listing if it exists + let found = self.playlists.listing.find(item => item.id == id) + if (found) { + self.playlists.listing.splice(self.playlists.listing.indexOf(found), 1) + } + }) + } + }, + async showCollection(response, title, type, requestBody = {}) { + let self = this + console.log(response) + this.collectionList.requestBody = {} + this.collectionList.response = response + this.collectionList.title = title + this.collectionList.type = type + this.collectionList.requestBody = requestBody + app.appRoute("collection-list") + }, + async showArtistView(artist, title, view) { + let response = (await app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/artists/${artist}/view/${view}?l=${this.mklang}`, {}, { includeResponseMeta: !0 })).data + console.log(response) + await this.showCollection(response, title, "artists") + }, + async showRecordLabelView(label, title, view) { + let response = (await app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/record-labels/${label}/view/${view}?l=${this.mklang}`)).data + await this.showCollection(response, title, "record-labels") + }, + async showSearchView(term, group, title) { + + let requestBody = { + platform: "web", + groups: group, + types: "activities,albums,apple-curators,artists,curators,editorial-items,music-movies,music-videos,playlists,songs,stations,tv-episodes,uploaded-videos,record-labels", + limit: 25, + relate: { + editorialItems: ["contents"] + }, + include: { + albums: ["artists"], + songs: ["artists"], + "music-videos": ["artists"] + }, + extend: "artistUrl", + fields: { + artists: "url,name,artwork,hero", + albums: "artistName,artistUrl,artwork,contentRating,editorialArtwork,name,playParams,releaseDate,url" + }, + with: "serverBubbles,lyricHighlights", + art: { + "url": "cf" + }, + omit: { + resource: ["autos"] + }, + l: this.mklang + } + let response = await app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/search?term=${term}`, requestBody, { + includeResponseMeta: !0 + }) + + console.log('searchres', response) + let responseFormat = { + data: response.data.results[group].data, + next: response.data.results[group].next, + groups: group + } + await this.showCollection(responseFormat, title, "search", requestBody) + }, + async getPlaylistContinuous(response, transient = false) { + response = response.data.data[0] + let self = this + let playlistId = response.id + this.playlists.loadingState = (!transient) ? 0 : 1 + this.showingPlaylist = response + if (!response.relationships?.tracks?.next) { + this.playlists.loadingState = 1 + return + } + + function getPlaylistTracks(next) { + app.apiCall(app.musicBaseUrl + next, res => { + if (self.showingPlaylist.id != playlistId) { + return + } + self.showingPlaylist.relationships.tracks.data = self.showingPlaylist.relationships.tracks.data.concat(res.data) + if (res.next) { + getPlaylistTracks(res.next) + } else { + self.playlists.loadingState = 1 + } + }) + } + + getPlaylistTracks(response.relationships.tracks.next) + + }, + async getPlaylistFromID(id, transient = false) { + let self = this + const params = { + include: "tracks", + platform: "web", + "include[library-playlists]": "catalog,tracks", + "fields[playlists]": "curatorName,playlistType,name,artwork,url,playParams", + "include[library-songs]": "catalog,artists,albums,playParams,name,artwork,url", + "fields[catalog]": "artistUrl,albumUrl,url", + "fields[songs]": "artistUrl,albumUrl,playParams,name,artwork,url,artistName,albumName,durationInMillis", + l: this.mklang + } + if (!transient) { + this.playlists.loadingState = 0; + } + app.mk.api.v3.music(`/v1/me/library/playlists/${id}`, params).then(res => { + self.getPlaylistContinuous(res, transient) + }).catch((e) => { + console.log(e); + try { + app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/playlists/${id}`, params).then(res => { + self.getPlaylistContinuous(res, transient) + }) + } catch (err) { + console.log(err) + } + }) + + }, + async getArtistFromID(id) { + this.page = "" + const artistData = await this.mkapi("artists", false, id, { + "views": "featured-release,full-albums,appears-on-albums,featured-albums,featured-on-albums,singles,compilation-albums,live-albums,latest-release,top-music-videos,similar-artists,top-songs,playlists,more-to-hear,more-to-see", + "extend": "artistBio,bornOrFormed,editorialArtwork,editorialVideo,isGroup,origin,hero", + "extend[playlists]": "trackCount", + "include[songs]": "albums", + "fields[albums]": "artistName,artistUrl,artwork,contentRating,editorialArtwork,editorialVideo,name,playParams,releaseDate,url,trackCount", + "limit[artists:top-songs]": 20, + "art[url]": "f", + l: this.mklang + }, { includeResponseMeta: !0 }) + console.log(artistData.data.data[0]) + this.artistPage.data = artistData.data.data[0] + this.page = "artist-page" + }, + progressBarStyle() { + let val = this.playerLCD.playbackDuration + if (this.playerLCD.desiredDuration > 0) { + val = this.playerLCD.desiredDuration + } + let min = 0 + let max = this.mk.currentPlaybackDuration + let value = (val - min) / (max - min) * 100 + return { + 'background': ('linear-gradient(to right, var(--songProgressColor) 0%, var(--songProgressColor) ' + value + '%, var(--songProgressBackground) ' + value + '%, var(--songProgressBackground) 100%)') + } + }, + async getRecursive(response) { + // if response has a .next() property run it and keep running until .next is null or undefined + // and then return the response concatenated with the results of the next() call + function executeRequest() { + if (response.next) { + return response.next().then(executeRequest) + } else { + return response + } + } + + return executeRequest() + }, + async getRecursive2(response, sendTo) { + let returnData = { + "data": [], + "meta": {} + } + if (response.next) { + console.log("has next") + returnData.data.concat(response.data) + returnData.meta = response.meta + return await this.getRecursive(await response.next()) + } else { + console.log("no next") + returnData.data.concat(response.data) + return returnData + } + }, + async getSearchHints() { + if (this.search.term == "") { + this.search.hints = [] + return + } + let hints = await (await app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/search/hints?term=${this.search.term}`)).data.results + this.search.hints = hints ? hints.terms : [] + }, + getSongProgress() { + if (this.playerLCD.userInteraction) { + return this.playerLCD.desiredDuration + } else { + return this.playerLCD.playbackDuration + } + }, + /** + * Converts seconds to dd:hh:mm:ss / Days:Hours:Minutes:Seconds + * @param {number} seconds + * @param {string} format (short, long) + * @returns {string} + * @author Core#1034 + * @memberOf app + */ + convertTime(seconds, format = "short") { + + if (isNaN(seconds)) { + seconds = 0 + } + seconds = parseInt(seconds); + + const datetime = new Date(seconds * 1000) + + if (format === "long") { + const d = Math.floor(seconds / (3600 * 24)); + const h = Math.floor(seconds % (3600 * 24) / 3600); + const m = Math.floor(seconds % 3600 / 60); + const s = Math.floor(seconds % 60); + + const dDisplay = d > 0 ? `${d} ${app.getLz("term.time.day", { "count": d })}, ` : ""; + const hDisplay = h > 0 ? `${h} ${app.getLz("term.time.hour", { "count": h })}, ` : ""; + const mDisplay = m > 0 ? `${m} ${app.getLz("term.time.minute", { "count": m })}, ` : ""; + const sDisplay = s > 0 ? `${s} ${app.getLz("term.time.second", { "count": s })}` : ""; + + return dDisplay + hDisplay + mDisplay + sDisplay; + } + else { + let returnTime = datetime.toISOString().substring(11, 19); + + const timeGates = { + 600: 15, // 10 Minutes + 3600: 14, // Hour + 36000: 12, // 10 Hours + } + + for (let key in timeGates) { + if (seconds < key) { + returnTime = datetime.toISOString().substring(timeGates[key], 19) + break + } + } + + // Add the days on the front + if (seconds >= 86400) { + returnTime = parseInt(datetime.toISOString().substring(8, 10)) - 1 + ":" + returnTime + } + + return returnTime + } + }, + hashCode(str) { + let hash = 0, + i, chr; + if (str.length === 0) return hash; + for (i = 0; i < str.length; i++) { + chr = str.charCodeAt(i); + hash = ((hash << 5) - hash) + chr; + hash |= 0; // Convert to 32bit integer + } + return hash; + }, + appRoute(route) { + if (route == "" || route == "#" || route == "/") { + return; + } + route = route.replace(/#/g, "") + // if the route contains does not include a / then route to the page directly + if (route.indexOf("/") == -1) { + this.page = route + window.location.hash = this.page + // if (this.page == "settings") { + // this.version + // } + return + } + let hash = route.split("/") + let page = hash[0] + let id = hash[1] + let isLibrary = hash[2] ?? false + if (page == "plugin") { + this.pluginPages.page = "plugin." + id + this.page = "plugin-renderer" + return + } + this.routeView({ + kind: page, + id: id, + attributes: { + playParams: { kind: page, id: id, isLibrary: isLibrary } + } + }) + }, + routeView(item) { + let kind = (item.attributes.playParams ? (item.attributes.playParams.kind ?? (item.type ?? '')) : (item.type ?? '')); + let id = (item.attributes.playParams ? (item.attributes.playParams.id ?? (item.id ?? '')) : (item.id ?? '')); + ; + let isLibrary = item.attributes.playParams ? (item.attributes.playParams.isLibrary ?? false) : false; + if (kind.includes("playlist") || kind.includes("album")) { + app.showingPlaylist = []; + } + if (kind.toString().includes("apple-curator")) { + kind = "appleCurator" + app.getTypeFromID("appleCurator", (id), false, { + platform: "web", + include: "grouping,playlists", + extend: "editorialArtwork", + "art[url]": "f" + }); + window.location.hash = `${kind}/${id}` + document.querySelector("#app-content").scrollTop = 0 + } else if (kind == "editorial-elements") { + console.log(item) + if (item.relationships?.contents?.data != null && item.relationships?.contents?.data.length > 0) { + this.routeView(item.relationships.contents.data[0]) + } else if (item.attributes?.link?.url != null) { + window.open(item.attributes.link.url) + } + + } else if (kind.toString().includes("artist")) { + app.getArtistInfo(id, isLibrary) + window.location.hash = `${kind}/${id}${isLibrary ? "/" + isLibrary : ''}` + document.querySelector("#app-content").scrollTop = 0 + + } else if (kind.toString().includes("record-label") || kind.toString().includes("curator")) { + if (kind.toString().includes("record-label")) { + kind = "recordLabel" + } else { + kind = "curator" + } + app.page = (kind) + "_" + (id); + app.getTypeFromID((kind), (id), (isLibrary), { + extend: "editorialVideo", + include: 'grouping,playlists', + views: 'top-releases,latest-releases,top-artists' + }); + window.location.hash = `${kind}/${id}` + document.querySelector("#app-content").scrollTop = 0 + } else if (!kind.toString().includes("radioStation") && !kind.toString().includes("song") && !kind.toString().includes("musicVideo") && !kind.toString().includes("uploadedVideo") && !kind.toString().includes("music-movie")) { + let params = { + extend: "offers,editorialVideo", + "views": "appears-on,more-by-artist,related-videos,other-versions,you-might-also-like,video-extras,audio-extras", + } + if (kind.includes("playlist")) { + params["include"] = "tracks"; + } + if (kind.includes("album")) { + params["include[albums]"] = "artists" + params["fields[artists]"] = "name,url" + params["fields[albums]"] = "artistName,artistUrl,artwork,contentRating,editorialArtwork,editorialVideo,name,playParams,releaseDate,url,copyright" + } + + if (this.cfg.advanced.experiments.includes('inline-playlists')) { + let showModal = kind.toString().includes("album") || kind.toString().includes("playlist") + if (app.page.includes("playlist") || app.page.includes("album")) { + showModal = false + } + if (showModal) { + app.modals.showPlaylist = true + app.chrome.contentAreaScrolling = false + } else { + app.page = (kind) + "_" + (id); + window.location.hash = `${kind}/${id}${isLibrary ? "/" + isLibrary : ''}` + } + } else { + app.page = (kind) + "_" + (id); + window.location.hash = `${kind}/${id}${isLibrary ? "/" + isLibrary : ''}` + } + + + app.getTypeFromID((kind), (id), (isLibrary), params); + // document.querySelector("#app-content").scrollTop = 0 + } else { + app.playMediaItemById((id), (kind), (isLibrary), item.attributes.url ?? '') + } + }, + prevButton() { + if (!app.prevButtonBackIndicator && app.mk.nowPlayingItem && app.mk.currentPlaybackTime > 2) { + app.prevButtonBackIndicator = true; + try { + clearTimeout(app.pauseButtonTimer) + } catch (e) { + } + app.mk.seekToTime(0); + app.pauseButtonTimer = setTimeout(() => { + app.prevButtonBackIndicator = false + }, 3000); + } else { + try { + clearTimeout(app.pauseButtonTimer) + } catch (e) { + } + app.prevButtonBackIndicator = false; + app.skipToPreviousItem() + } + }, + async getNowPlayingItemDetailed(target) { + try { + let u = await app.mkapi(app.mk.nowPlayingItem.playParams.kind, + (app.mk.nowPlayingItem.songId == -1), + (app.mk.nowPlayingItem.songId != -1) ? app.mk.nowPlayingItem.songId : app.mk.nowPlayingItem["id"], + { "include[songs]": "albums,artists", l: app.mklang }); + app.searchAndNavigate(u.data.data[0], target) + } catch (e) { + app.searchAndNavigate(app.mk.nowPlayingItem, target) + } + }, + async searchAndNavigate(item, target) { + let self = this + app.tmpVar = item; + switch (target) { + case "artist": + let artistId = ''; + try { + if (item.relationships.artists && item.relationships.artists.data.length > 0 && !item.relationships.artists.data[0].type.includes("library")) { + if (item.relationships.artists.data[0].type === "artist" || item.relationships.artists.data[0].type === "artists") { + artistId = item.relationships.artists.data[0].id + } + } + if (artistId == '') { + const url = (item.relationships.catalog.data[0].attributes.artistUrl); + artistId = (url).substring(url.lastIndexOf('/') + 1) + if (artistId.includes('viewCollaboration')) { + artistId = artistId.substring(artistId.lastIndexOf('ids=') + 4, artistId.lastIndexOf('-')) + } + } + } catch (_) { + } + + if (artistId == "") { + let artistQuery = (await app.mk.api.v3.music(`v1/catalog/${app.mk.storefrontId}/search?term=${item.attributes.artistName}`, { + limit: 1, + types: 'artists' + })).data.results; + try { + if (artistQuery.artists.data.length > 0) { + artistId = artistQuery.artists.data[0].id; + console.log(artistId) + } + } catch (e) { + } + } + console.log(artistId); + if (artistId != "") + self.appRoute(`artist/${artistId}`) + break; + case "album": + let albumId = ''; + try { + if ((item.type ?? item.playParams?.kind ?? "") == "albums") { + albumId = item.id ?? "" + } else if (item.relationships.albums && item.relationships.albums.data.length > 0 && !item.relationships.albums.data[0].type.includes("library")) { + if (item.relationships.albums.data[0].type === "album" || item.relationships.albums.data[0].type === "albums") { + albumId = item.relationships.albums.data[0].id + } + } + if (albumId == '') { + const url = (item.relationships.catalog.data[0].attributes.url); + albumId = (url).substring(url.lastIndexOf('/') + 1) + if (albumId.includes("?i=")) { + albumId = albumId.substring(0, albumId.indexOf("?i=")) + } + } + } catch (_) { + } + + if (albumId == "") { + try { + let albumQuery = (await app.mk.api.v3.music(`v1/catalog/${app.mk.storefrontId}/search?term=${(item.attributes.albumName ?? item.attributes.name ?? "") + " " + (item.attributes.artistName ?? "")}`, { + limit: 1, + types: 'albums' + })).data.results; + if (albumQuery.albums.data.length > 0) { + albumId = albumQuery.albums.data[0].id; + console.log(albumId) + } + } catch (e) { + } + } + if (albumId != "") { + self.appRoute(`album/${albumId}`) + } + break; + case "recordLabel": + let labelId = ''; + try { + labelId = item.relationships['record-labels'].data[0].id + } catch (_) { + } + + if (labelId == "") { + try { + let labelQuery = (await app.mk.api.v3.music(`v1/catalog/${app.mk.storefrontId}/search?term=${item.attributes.recordLabel}`, { + limit: 1, + types: 'record-labels' + })).data.results; + if (labelQuery["record-labels"].data.length > 0) { + labelId = labelQuery["record-labels"].data[0].id; + console.log(labelId) + } + } catch (e) { + } + } + if (labelId != "") { + app.showingPlaylist = [] + await app.getTypeFromID("recordLabel", labelId, false, { views: 'top-releases,latest-releases,top-artists' }); + app.page = "recordLabel_" + labelId; + } + + break; + } + }, + exitMV() { + MusicKit.getInstance().stop() + document.getElementById("apple-music-video-container").style.display = "none"; + }, + getArtistInfo(id, isLibrary) { + this.getArtistFromID(id) + //this.getTypeFromID("artist",id,isLibrary,query) + }, + followArtistById(id, follow) { + if (follow && !this.followingArtist(id)) { + this.cfg.home.followedArtists.push(id) + } else { + let index = this.cfg.home.followedArtists.indexOf(id) + if (index > -1) { + this.cfg.home.followedArtists.splice(index, 1) + } + } + }, + followingArtist(id) { + console.log(`check for ${id}`) + return this.cfg.home.followedArtists.includes(id) + }, + playMediaItem(item) { + let kind = (item.attributes.playParams ? (item.attributes.playParams.kind ?? (item.type ?? '')) : (item.type ?? '')); + let id = (item.attributes.playParams ? (item.attributes.playParams.id ?? (item.id ?? '')) : (item.id ?? '')); + ; + let isLibrary = item.attributes.playParams ? (item.attributes.playParams.isLibrary ?? false) : false; + let truekind = (!kind.endsWith("s")) ? (kind + "s") : kind; + // console.log(kind, id, isLibrary) + app.mk.stop().then(() => { + if (kind.includes("artist")) { + app.mk.setStationQueue({ artist: 'a-' + id }).then(() => { + app.mk.play() + }) + } + else { + app.playMediaItemById((id), (kind), (isLibrary), item.attributes.url ?? '') + } + }) + }, + async getTypeFromID(kind, id, isLibrary = false, params = {}, params2 = {}) { + let a; + if (kind == "album" | kind == "albums") { + params["include"] = "tracks,artists,record-labels,catalog"; + } + params['l'] = this.mklang; + try { + a = await this.mkapi(kind.toString(), isLibrary, id.toString(), params, params2); + } catch (e) { + console.log(e); + try { + a = await this.mkapi(kind.toString(), !isLibrary, id.toString(), params, params2); + } catch (err) { + console.log(err); + a = [] + } finally { + if (kind == "appleCurator") { + app.appleCurator = a.data.data[0] + } else { + this.getPlaylistContinuous(a, true) + } + } + } finally { + if (kind == "appleCurator") { + app.appleCurator = a.data.data[0] + } else { + this.getPlaylistContinuous(a, true) + } + } + ; + }, + searchLibrarySongs() { + let self = this + let prefs = this.cfg.libraryPrefs.songs + let albumAdded = self.library?.albums?.listing?.map(function (i) { + return { [i.id]: i.attributes?.dateAdded } + }) + let startTime = new Date().getTime() + + function sortSongs() { + // sort this.library.songs.displayListing by song.attributes[self.library.songs.sorting] in descending or ascending order based on alphabetical order and numeric order + // check if song.attributes[self.library.songs.sorting] is a number and if so, sort by number if not, sort by alphabetical order ignoring case + self.library.songs.displayListing.sort((a, b) => { + let aa = a.attributes[prefs.sort] + let bb = b.attributes[prefs.sort] + if (prefs.sort == "genre") { + aa = a.attributes.genreNames[0] + bb = b.attributes.genreNames[0] + } + if (prefs.sort == "dateAdded") { + let albumida = a.relationships?.albums?.data[0]?.id ?? '1970-01-01T00:01:01Z' + let albumidb = b.relationships?.albums?.data[0]?.id ?? '1970-01-01T00:01:01Z' + aa = startTime - new Date(((albumAdded.find(i => i[albumida])) ?? [])[albumida] ?? '1970-01-01T00:01:01Z').getTime() + bb = startTime - new Date(((albumAdded.find(i => i[albumidb])) ?? [])[albumidb] ?? '1970-01-01T00:01:01Z').getTime() + } + if (aa == null) { + aa = "" + } + if (bb == null) { + bb = "" + } + if (prefs.sortOrder == "asc") { + if (aa.toString().match(/^\d+$/) && bb.toString().match(/^\d+$/)) { + return aa - bb + } else { + return aa.toString().toLowerCase().localeCompare(bb.toString().toLowerCase()) + } + } else if (prefs.sortOrder == "desc") { + if (aa.toString().match(/^\d+$/) && bb.toString().match(/^\d+$/)) { + return bb - aa + } else { + return bb.toString().toLowerCase().localeCompare(aa.toString().toLowerCase()) + } + } + }) + } + + if (this.library.songs.search == "") { + this.library.songs.displayListing = this.library.songs.listing + sortSongs() + } else { + this.library.songs.displayListing = this.library.songs.listing.filter(item => { + let itemName = item.attributes.name.toLowerCase() + let searchTerm = this.library.songs.search.toLowerCase() + let artistName = "" + let albumName = "" + if (item.attributes.artistName != null) { + artistName = item.attributes.artistName.toLowerCase() + } + if (item.attributes.albumName != null) { + albumName = item.attributes.albumName.toLowerCase() + } + + // remove any non-alphanumeric characters and spaces from search term and item name + searchTerm = searchTerm.replace(/[^\p{L}\p{N} ]/gu, "") + itemName = itemName.replace(/[^\p{L}\p{N} ]/gu, "") + artistName = artistName.replace(/[^\p{L}\p{N} ]/gu, "") + albumName = albumName.replace(/[^\p{L}\p{N} ]/gu, "") + + if (itemName.includes(searchTerm) || artistName.includes(searchTerm) || albumName.includes(searchTerm)) { + return item + } + }) + sortSongs() + } + }, + getAlbumSort() { + this.library.albums.sortOrder[1] = this.cfg.libraryPrefs.albums.sortOrder; + this.library.albums.sorting[1] = this.cfg.libraryPrefs.albums.sort; + }, + // make a copy of searchLibrarySongs except use Albums instead of Songs + searchLibraryAlbums(index) { + let self = this + + function sortAlbums() { + // sort this.library.albums.displayListing by album.attributes[self.library.albums.sorting[index]] in descending or ascending order based on alphabetical order and numeric order + // check if album.attributes[self.library.albums.sorting[index]] is a number and if so, sort by number if not, sort by alphabetical order ignoring case + self.library.albums.displayListing.sort((a, b) => { + let aa = a.attributes[self.library.albums.sorting[index]] + let bb = b.attributes[self.library.albums.sorting[index]] + if (self.library.albums.sorting[index] == "genre") { + aa = a.attributes.genreNames[0] + bb = b.attributes.genreNames[0] + } + if (aa == null) { + aa = "" + } + if (bb == null) { + bb = "" + } + if (self.library.albums.sortOrder[index] == "asc") { + if (aa.toString().match(/^\d+$/) && bb.toString().match(/^\d+$/)) { + return aa - bb + } else { + return aa.toString().toLowerCase().localeCompare(bb.toString().toLowerCase()) + } + } else if (self.library.albums.sortOrder[index] == "desc") { + if (aa.toString().match(/^\d+$/) && bb.toString().match(/^\d+$/)) { + return bb - aa + } else { + return bb.toString().toLowerCase().localeCompare(aa.toString().toLowerCase()) + } + } + }) + } + + if (this.library.albums.search == "") { + this.library.albums.displayListing = this.library.albums.listing + sortAlbums() + } else { + this.library.albums.displayListing = this.library.albums.listing.filter(item => { + let itemName = item.attributes.name.toLowerCase() + let searchTerm = this.library.albums.search.toLowerCase() + let artistName = "" + let albumName = "" + if (item.attributes.artistName != null) { + artistName = item.attributes.artistName.toLowerCase() + } + if (item.attributes.albumName != null) { + albumName = item.attributes.albumName.toLowerCase() + } + + // remove any non-alphanumeric characters and spaces from search term and item name + searchTerm = searchTerm.replace(/[^\p{L}\p{N} ]/gu, "") + itemName = itemName.replace(/[^\p{L}\p{N} ]/gu, "") + artistName = artistName.replace(/[^\p{L}\p{N} ]/gu, "") + albumName = albumName.replace(/[^\p{L}\p{N} ]/gu, "") + + if (itemName.includes(searchTerm) || artistName.includes(searchTerm) || albumName.includes(searchTerm)) { + return item + } + }) + sortAlbums() + } + }, + // make a copy of searchLibrarySongs except use Albums instead of Songs + searchLibraryArtists(index) { + let self = this + + function sortArtists() { + // sort this.library.albums.displayListing by album.attributes[self.library.albums.sorting[index]] in descending or ascending order based on alphabetical order and numeric order + // check if album.attributes[self.library.albums.sorting[index]] is a number and if so, sort by number if not, sort by alphabetical order ignoring case + self.library.artists.displayListing.sort((a, b) => { + let aa = a.attributes[self.library.artists.sorting[index]] + let bb = b.attributes[self.library.artists.sorting[index]] + if (self.library.artists.sorting[index] == "genre") { + aa = a.attributes.genreNames[0] + bb = b.attributes.genreNames[0] + } + if (aa == null) { + aa = "" + } + if (bb == null) { + bb = "" + } + if (self.library.artists.sortOrder[index] == "asc") { + if (aa.toString().match(/^\d+$/) && bb.toString().match(/^\d+$/)) { + return aa - bb + } else { + return aa.toString().toLowerCase().localeCompare(bb.toString().toLowerCase()) + } + } else if (self.library.artists.sortOrder[index] == "desc") { + if (aa.toString().match(/^\d+$/) && bb.toString().match(/^\d+$/)) { + return bb - aa + } else { + return bb.toString().toLowerCase().localeCompare(aa.toString().toLowerCase()) + } + } + }) + } + + if (this.library.artists.search == "") { + this.library.artists.displayListing = this.library.artists.listing + sortArtists() + } else { + this.library.artists.displayListing = this.library.artists.listing.filter(item => { + let itemName = item.attributes.name.toLowerCase() + let searchTerm = this.library.artists.search.toLowerCase() + let artistName = "" + let albumName = "" + // if (item.attributes.artistName != null) { + // artistName = item.attributes.artistName.toLowerCase() + // } + // if (item.attributes.albumName != null) { + // albumName = item.attributes.albumName.toLowerCase() + // } + + // remove any non-alphanumeric characters and spaces from search term and item name + searchTerm = searchTerm.replace(/[^\p{L}\p{N} ]/gu, "") + itemName = itemName.replace(/[^\p{L}\p{N} ]/gu, "") + + + if (itemName.includes(searchTerm) || artistName.includes(searchTerm) || albumName.includes(searchTerm)) { + return item + } + }) + sortArtists() + } + }, + getSidebarItemClass(page) { + if (this.page == page) { + return ["active"] + } else { + return [] + } + }, + async mkapi(method, library = false, term, params = {}, params2 = {}, attempts = 0) { + if (method.includes(`recordLabel`)) { + method = `record-labels` + } + if (method.includes(`appleCurator`)) { + method = `apple-curators` + } + if (attempts > 3) { + return + } + let truemethod = (!method.endsWith("s")) ? (method + "s") : method; + try { + if (library) { + return await this.mk.api.v3.music(`v1/me/library/${truemethod}/${term.toString()}`, params, params2) + } else { + return await this.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/${truemethod}/${term.toString()}`, params, params2) + } + } catch (e) { + console.log(e) + return await this.mkapi(method, library, term, params, params2, attempts + 1) + } + }, + getLibraryGenres() { + let genres = [] + genres = [] + this.library.songs.listing.forEach((item) => { + item.attributes.genreNames.forEach((genre) => { + if (!genres.includes(genre)) { + genres.push(genre) + } + }) + }) + return genres + }, + async getLibrarySongsFull(force = false) { + let self = this + let library = [] + let cacheId = "library-songs" + let downloaded = null; + if ((this.library.songs.downloadState == 2) && !force) { + return + } + if (this.library.songs.downloadState == 1) { + return + } + let librarySongs = await CiderCache.getCache(cacheId) + if (librarySongs) { + this.library.songs.listing.data = librarySongs + this.searchLibrarySongs() + } + if (this.songstest) { + return + } + this.library.songs.downloadState = 1 + this.library.backgroundNotification.show = true + this.library.backgroundNotification.message = app.getLz('notification.updatingLibrarySongs') + + library = await MusicKitTools.v3Continuous({ + href: `/v1/me/library/songs/`, + options: { + "include[library-songs]": "catalog,artists,albums", + "fields[artists]": "name,url,id", + "fields[albums]": "name,url,id", + platform: "web", + "fields[catalog]": "artistUrl,albumUrl", + "fields[songs]": "artistName,artistUrl,artwork,contentRating,editorialArtwork,name,playParams,releaseDate,url", + limit: 100, + l: app.mklang, + }, + onProgress: (data) => { + console.log(`${data.total}/${data.response.data.meta.total}`) + self.library.backgroundNotification.show = true + self.library.backgroundNotification.message = app.getLz('notification.updatingLibrarySongs') + self.library.backgroundNotification.total = data.response.data.meta.total + self.library.backgroundNotification.progress = data.total + }, + onSuccess: () => { + + } + }) + + self.library.songs.listing = library + self.library.songs.downloadState = 2 + self.library.backgroundNotification.show = false + self.searchLibrarySongs() + CiderCache.putCache(cacheId, library) + console.log("Done!") + + return + }, + // copy the getLibrarySongsFull function except change Songs to Albums + async getLibraryAlbumsFull(force = false, index) { + let self = this + let library = [] + let cacheId = "library-albums" + let downloaded = null; + if ((this.library.albums.downloadState == 2 || this.library.albums.downloadState == 1) && !force) { + return + } + let libraryAlbums = await CiderCache.getCache(cacheId) + if (libraryAlbums) { + this.library.albums.listing = libraryAlbums + this.searchLibraryAlbums(index) + } + if (this.songstest) { + return + } + this.library.albums.downloadState = 1 + this.library.backgroundNotification.show = true + this.library.backgroundNotification.message = app.getLz('notification.updatingLibraryAlbums') + + function downloadChunk() { + self.library.albums.downloadState = 1 + const params = { + "include[library-albums]": "catalog,artists,albums", + "fields[artists]": "name,url,id", + // "fields[albums]": "name,url,id", + platform: "web", + "fields[catalog]": "artistUrl,albumUrl", + "fields[albums]": "artistName,artistUrl,artwork,contentRating,editorialArtwork,name,playParams,releaseDate,url", + limit: 100, + l: self.mklang + } + const safeparams = { + platform: "web", + limit: "60", + "include[library-albums]": "artists", + "include[library-artists]": "catalog", + "include[albums]": "artists", + "fields[artists]": "name,url", + "fields[albums]": "artistName,artistUrl,artwork,contentRating,editorialArtwork,name,playParams,releaseDate,url", + "includeOnly": "catalog,artists" + } + if (downloaded == null) { + app.mk.api.v3.music(`/v1/me/library/albums/`, params).then((response) => { + processChunk(response.data) + }).catch((error) => { + console.log('safe loading'); + app.mk.api.v3.music(`/v1/me/library/albums/`, safeparams).then((response) => { + processChunk(response.data) + }).catch((error) => { + console.log('safe loading failed', error) + app.library.albums.downloadState = 2 + app.library.backgroundNotification.show = false + }) + }) + } else { + if (downloaded.next != null) { + app.mk.api.v3.music(downloaded.next, params).then((response) => { + processChunk(response.data) + }).catch((error) => { + console.log('safe loading'); + app.mk.api.v3.music(downloaded.next, safeparams).then((response) => { + processChunk(response.data) + }).catch((error) => { + console.log('safe loading failed', error); + app.library.albums.downloadState = 2 + app.library.backgroundNotification.show = false + }) + }) + } else { + console.log("Download next", downloaded.next) + } + } + } + + function processChunk(response) { + downloaded = response + library = library.concat(downloaded.data) + self.library.backgroundNotification.show = true + self.library.backgroundNotification.message = app.getLz('notification.updatingLibraryAlbums') + self.library.backgroundNotification.total = downloaded.meta.total + self.library.backgroundNotification.progress = library.length + if (downloaded.meta.total == 0) { + self.library.albums.downloadState = 3 + return + } + if (typeof downloaded.next == "undefined") { + console.log("downloaded.next is undefined") + self.library.albums.listing = library + self.library.albums.downloadState = 2 + self.library.backgroundNotification.show = false + CiderCache.putCache(cacheId, library) + self.searchLibraryAlbums(index) + } + if (downloaded.meta.total > library.length || typeof downloaded.meta.next != "undefined") { + console.log(`downloading next chunk - ${library.length + } albums so far`) + downloadChunk() + } else { + self.library.albums.listing = library + self.library.albums.downloadState = 2 + self.library.backgroundNotification.show = false + CiderCache.putCache(cacheId, library) + self.searchLibraryAlbums(index) + // console.log(library) + } + } + + downloadChunk() + }, + // copy the getLibrarySongsFull function except change Songs to Albums + async getLibraryArtistsFull(force = false, index) { + let self = this + let library = [] + let cacheId = "library-artists" + let downloaded = null; + if ((this.library.artists.downloadState == 2 || this.library.artists.downloadState == 1) && !force) { + return + } + let libraryArtists = await CiderCache.getCache(cacheId) + if (libraryArtists) { + this.library.artists.listing = libraryArtists + this.searchLibraryArtists(index) + } + if (this.songstest) { + return + } + this.library.artists.downloadState = 1 + this.library.backgroundNotification.show = true + this.library.backgroundNotification.message = app.getLz('notification.updatingLibraryArtists') + + function downloadChunk() { + self.library.artists.downloadState = 1 + const params = { + include: "catalog", + // "include[library-artists]": "catalog,artists,albums", + // "fields[artists]": "name,url,id", + // "fields[albums]": "name,url,id", + platform: "web", + // "fields[catalog]": "artistUrl,albumUrl", + // "fields[artists]": "artistName,artistUrl,artwork,contentRating,editorialArtwork,name,playParams,releaseDate,url", + limit: 100, + l: self.mklang + } + const safeparams = { + include: "catalog", + platform: "web", + limit: 50, + } + if (downloaded == null) { + app.mk.api.v3.music(`/v1/me/library/artists/`, params).then((response) => { + processChunk(response.data) + }).catch((error) => { + console.log('safe loading'); + app.mk.api.v3.music(`/v1/me/library/artists/`, safeparams).then((response) => { + processChunk(response.data) + }).catch((error) => { + console.log('safe loading failed', error) + app.library.artists.downloadState = 2 + app.library.backgroundNotification.show = false + }) + }) + + } else { + if (downloaded.next != null) { + app.mk.api.v3.music(downloaded.next, params).then((response) => { + processChunk(response.data) + }).catch((error) => { + console.log('safe loading'); + app.mk.api.v3.music(downloaded.next, safeparams).then((response) => { + processChunk(response.data) + }).catch((error) => { + console.log('safe loading failed', error) + app.library.artists.downloadState = 2 + app.library.backgroundNotification.show = false + }) + }) + } else { + console.log("Download next", downloaded.next) + } + + } + } + + function processChunk(response) { + downloaded = response + library = library.concat(downloaded.data) + self.library.backgroundNotification.show = true + self.library.backgroundNotification.message = app.getLz('notification.updatingLibraryArtists') + self.library.backgroundNotification.total = downloaded.meta.total + self.library.backgroundNotification.progress = library.length + if (downloaded.meta.total == 0) { + self.library.albums.downloadState = 3 + return + } + if (typeof downloaded.next == "undefined") { + console.log("downloaded.next is undefined") + self.library.artists.listing = library + self.library.artists.downloadState = 2 + self.library.artists.show = false + CiderCache.putCache(cacheId, library) + self.searchLibraryArtists(index) + } + if (downloaded.meta.total > library.length || typeof downloaded.meta.next != "undefined") { + console.log(`downloading next chunk - ${library.length + } artists so far`) + downloadChunk() + } else { + self.library.artists.listing = library + self.library.artists.downloadState = 2 + self.library.backgroundNotification.show = false + CiderCache.putCache(cacheId, library) + self.searchLibraryArtists(index) + // console.log(library) + } + } + + downloadChunk() + }, + /** + * Gets the total duration in seconds of a playlist + * @returns {string} Total tracks, and duration + * @author Core#1034 + * @memberOf app + */ + getTotalTime() { + try { + if (app.showingPlaylist.relationships.tracks.data.length === 0) return "" + const timeInSeconds = Math.round([].concat(...app.showingPlaylist.relationships.tracks.data).reduce((a, { attributes: { durationInMillis } }) => a + durationInMillis, 0) / 1000); + return `${app.showingPlaylist.relationships.tracks.data.length} ${app.getLz("term.track", { "count": app.showingPlaylist.relationships.tracks.data.length })}, ${app.convertTime(timeInSeconds, 'long')}` + } catch (err) { + return "" + } + }, + async getLibrarySongs() { + let response = await this.mkapi("songs", true, "", { limit: 100, l: this.mklang }, { includeResponseMeta: !0 }) + this.library.songs.listing = response.data.data + this.library.songs.meta = response.data.meta + }, + async getLibraryAlbums() { + let response = await this.mkapi("albums", true, "", { limit: 100, l: this.mklang }, { includeResponseMeta: !0 }) + this.library.albums.listing = response.data.data + this.library.albums.meta = response.data.meta + }, + async getListenNow(attempt = 0) { + if (this.listennow.timestamp > Date.now() - 120000) { + return + } + + if (attempt > 3) { + return + } + try { + this.listennow = (await this.mk.api.v3.music(`v1/me/recommendations?timezone=${encodeURIComponent(this.formatTimezoneOffset())}`, { + name: "listen-now", + with: "friendsMix,library,social", + "art[social-profiles:url]": "c", + "art[url]": "c,f", + "omit[resource]": "autos", + "relate[editorial-items]": "contents", + extend: ["editorialCard", "editorialVideo"], + "extend[albums]": ["artistUrl"], + "extend[library-albums]": ["artistUrl", "editorialVideo"], + "extend[playlists]": ["artistNames", "editorialArtwork", "editorialVideo"], + "extend[library-playlists]": ["artistNames", "editorialArtwork", "editorialVideo"], + "extend[social-profiles]": "topGenreNames", + "include[albums]": "artists", + "include[songs]": "artists", + "include[music-videos]": "artists", + "fields[albums]": ["artistName", "artistUrl", "artwork", "contentRating", "editorialArtwork", "editorialVideo", "name", "playParams", "releaseDate", "url"], + "fields[artists]": ["name", "url"], + "extend[stations]": ["airDate", "supportsAirTimeUpdates"], + "meta[stations]": "inflectionPoints", + types: "artists,albums,editorial-items,library-albums,library-playlists,music-movies,music-videos,playlists,stations,uploaded-audios,uploaded-videos,activities,apple-curators,curators,tv-shows,social-upsells", + platform: "web", + l: this.mklang + }, { + includeResponseMeta: !0, + reload: !0 + })).data; + this.listennow.timestamp = Date.now() + console.log(this.listennow) + } catch (e) { + console.log(e) + this.getListenNow(attempt + 1) + } + }, + async getBrowsePage(attempt = 0) { + if (this.browsepage.timestamp > Date.now() - 120000) { + return + } + if (attempt > 3) { + return + } + try { + let browse = await app.mk.api.v3.music(`/v1/editorial/${app.mk.storefrontId}/groupings`, { + platform: "web", + name: "music", + "omit[resource:artists]": "relationships", + "include[albums]": "artists", + "include[songs]": "artists", + "include[music-videos]": "artists", + extend: "editorialArtwork,artistUrl", + "fields[artists]": "name,url,artwork,editorialArtwork,genreNames,editorialNotes", + "art[url]": "f", + l: this.mklang + }); + this.browsepage = browse.data.data[0]; + this.browsepage.timestamp = Date.now() + console.log(this.browsepage) + } catch (e) { + console.log(e) + this.getBrowsePage(attempt + 1) + } + }, + async getRadioStations(attempt = 0) { + if (attempt > 3) { + return + } + try { + this.radio.personal = (await app.mk.api.v3.music(`/v1/me/recent/radio-stations`, { + "platform": "web", + "art[url]": "f", + l: this.mklang + })).data.data; + } catch (e) { + console.log(e) + this.getRadioStations(attempt + 1) + } + }, + async getMadeForYou(attempt = 0) { + if (attempt > 3) { + return + } + try { + let mfu = await app.mk.api.v3.music("/v1/me/library/playlists?platform=web&extend=editorialVideo&fields%5Bplaylists%5D=lastModifiedDate&filter%5Bfeatured%5D=made-for-you&include%5Blibrary-playlists%5D=catalog&fields%5Blibrary-playlists%5D=artwork%2Cname%2CplayParams%2CdateAdded") + this.madeforyou = mfu.data + } catch (e) { + console.log(e) + this.getMadeForYou(attempt + 1) + } + }, + newPlaylistFolder(name = app.getLz('term.newPlaylistFolder')) { + let self = this + this.mk.api.v3.music( + "/v1/me/library/playlist-folders/", {}, { + fetchOptions: { + method: "POST", + body: JSON.stringify({ + attributes: { name: name } + }) + } + } + ).then((res) => { + let playlist = (res.data.data[0]) + self.playlists.listing.push({ + id: playlist.id, + attributes: { + name: playlist.attributes.name + }, + type: "library-playlist-folders", + parent: "p.playlistsroot" + }) + self.sortPlaylists() + setTimeout(() => { + app.refreshPlaylists() + }, 13000) + }) + }, + showSearch() { + this.page = "search" + }, + loadLyrics() { + const musicType = (MusicKit.getInstance().nowPlayingItem != null) ? MusicKit.getInstance().nowPlayingItem["type"] ?? '' : ''; + // console.log("mt", musicType) + if (musicType === "musicVideo") { + this.loadYTLyrics(); + } else { + if (app.cfg.lyrics.enable_mxm) { + this.loadMXM(); + } else { + this.loadAMLyrics(); + } + } + }, + loadAMLyrics() { + const songID = (this.mk.nowPlayingItem != null) ? this.mk.nowPlayingItem["_songId"] ?? (this.mk.nowPlayingItem["songId"] ?? -1) : -1; + // this.getMXM( trackName, artistName, 'en', duration); + if (songID != -1) { + this.mk.api.v3.music(`v1/catalog/${this.mk.storefrontId}/songs/${songID}/lyrics`) + .then((response) => { + this.lyricsMediaItem = response.data?.data[0]?.attributes["ttml"] + this.parseTTML() + }) + } + }, + addToLibrary(id) { + let self = this + this.mk.addToLibrary(id).then((data) => { + self.getLibrarySongsFull(true) + }) + notyf.success(app.getLz('action.addToLibrary.success')); + }, + removeFromLibrary(kind, id) { + let self = this + let truekind = (!kind.endsWith("s")) ? (kind + "s") : kind; + app.mk.api.v3.music(`v1/me/library/${truekind}/${id.toString()}`, {}, { + fetchOptions: { + method: "DELETE" + } + }).then((data) => { + self.getLibrarySongsFull(true) + }) + notyf.success(app.getLz('action.removeFromLibrary.success')) + }, + async loadYTLyrics() { + const track = (this.mk.nowPlayingItem != null) ? this.mk.nowPlayingItem.title ?? '' : ''; + const artist = (this.mk.nowPlayingItem != null) ? this.mk.nowPlayingItem.artistName ?? '' : ''; + const time = (this.mk.nowPlayingItem != null) ? (Math.round((this.mk.nowPlayingItem.attributes["durationInMillis"] ?? -1000) / 1000) ?? -1) : -1; + ipcRenderer.invoke('getYTLyrics', track, artist).then((result) => { + if (result.length > 0) { + let ytid = result[0]['id']['videoId']; + if (app.cfg.lyrics.enable_yt) { + loadYT(ytid, app.cfg.lyrics.mxm_language ?? "en") + } else { + app.loadMXM() + } + } else { + app.loadMXM() + } + + function loadYT(id, lang) { + let req = new XMLHttpRequest(); + let url = `https://www.youtube.com/watch?&v=${id}`; + req.open('GET', url, true); + req.onerror = function (e) { + this.loadMXM(); + } + req.onload = function () { + // console.log(this.responseText); + let res = this.responseText; + let captionurl1 = res.substring(res.indexOf(`{"playerCaptionsRenderer":{"baseUrl":"`) + (`{"playerCaptionsRenderer":{"baseUrl":"`).length); + let captionurl = captionurl1.substring(0, captionurl1.indexOf(`"`)); + if (captionurl.includes("timedtext")) { + let json = JSON.parse(`{"url": "${captionurl}"}`); + let newurl = json.url + `&lang=${lang}&format=ttml` + + let req2 = new XMLHttpRequest(); + + req2.open('GET', newurl, true); + req2.onerror = function (e) { + app.loadMXM(); + } + req2.onload = function () { + try { + const ttmlLyrics = this.responseText; + if (ttmlLyrics) { + this.lyricsMediaItem = ttmlLyrics + this.parseTTML() + } + } catch (e) { + app.loadMXM(); + } + + } + req2.send(); + } else { + + app.loadMXM(); + + } + } + req.send(); + } + + }) + + }, + loadMXM() { + let attempt = 0; + const track = encodeURIComponent((this.mk.nowPlayingItem != null) ? this.mk.nowPlayingItem.title ?? '' : ''); + const artist = encodeURIComponent((this.mk.nowPlayingItem != null) ? this.mk.nowPlayingItem.artistName ?? '' : ''); + const time = encodeURIComponent((this.mk.nowPlayingItem != null) ? (Math.round((this.mk.nowPlayingItem.attributes["durationInMillis"] ?? -1000) / 1000) ?? -1) : -1); + const id = encodeURIComponent((this.mk.nowPlayingItem != null) ? app.mk.nowPlayingItem._songId ?? (app.mk.nowPlayingItem["songId"] ?? '') : ''); + let lrcfile = ""; + let richsync = []; + const lang = app.cfg.lyrics.mxm_language // translation language + function revisedRandId() { + return Math.random().toString(36).replace(/[^a-z]+/g, '').slice(2, 10); + } + + /* get token */ + function getToken(mode, track, artist, songid, lang, time, id) { + if (attempt > 2) { + app.loadAMLyrics(); + } else { + attempt = attempt + 1; + let url = "https://apic-desktop.musixmatch.com/ws/1.1/token.get?app_id=web-desktop-app-v1.0&t=" + revisedRandId(); + let req = new XMLHttpRequest(); + req.overrideMimeType("application/json"); + req.open('GET', url, true); + req.setRequestHeader("authority", "apic-desktop.musixmatch.com"); + req.onload = function () { + try { + let jsonResponse = JSON.parse(this.responseText); + let status2 = jsonResponse["message"]["header"]["status_code"]; + if (status2 == 200) { + let token = jsonResponse["message"]["body"]["user_token"] ?? ''; + if (token != "" && token != "UpgradeOnlyUpgradeOnlyUpgradeOnlyUpgradeOnly") { + console.log('200 token', mode); + // token good + app.mxmtoken = token; + + if (mode == 1) { + getMXMSubs(track, artist, app.mxmtoken, lang, time, id); + } else { + getMXMTrans(songid, lang, app.mxmtoken); + } + } else { + console.log('fake 200 token'); + getToken(mode, track, artist, songid, lang, time) + } + } else { + // console.log('token 4xx'); + getToken(mode, track, artist, songid, lang, time) + } + } catch (e) { + console.log('error'); + app.loadAMLyrics(); + } + }; + req.onerror = function () { + console.log('error'); + app.loadAMLyrics(); + }; + req.send(); + } + } + + function getMXMSubs(track, artist, token, lang, time, id) { + let usertoken = encodeURIComponent(token); + let richsyncQuery = (app.cfg.lyrics.mxm_karaoke) ? "&optional_calls=track.richsync" : "" + let timecustom = (!time || (time && time < 0)) ? '' : `&f_subtitle_length=${time}&q_duration=${time}&f_subtitle_length_max_deviation=40`; + let itunesid = (id && id != "") ? `&track_itunes_id=${id}` : ''; + let url = "https://apic-desktop.musixmatch.com/ws/1.1/macro.subtitles.get?format=json&namespace=lyrics_richsynched" + richsyncQuery + "&subtitle_format=lrc&q_artist=" + artist + "&q_track=" + track + itunesid + "&usertoken=" + usertoken + timecustom + "&app_id=web-desktop-app-v1.0&t=" + revisedRandId(); + let req = new XMLHttpRequest(); + req.overrideMimeType("application/json"); + req.open('GET', url, true); + req.setRequestHeader("authority", "apic-desktop.musixmatch.com"); + req.onload = function () { + try { + let jsonResponse = JSON.parse(this.responseText); + console.log(jsonResponse); + let status1 = jsonResponse["message"]["header"]["status_code"]; + + if (status1 == 200) { + let id = ''; + try { + if (jsonResponse["message"]["body"]["macro_calls"]["matcher.track.get"]["message"]["header"]["status_code"] == 200 && jsonResponse["message"]["body"]["macro_calls"]["track.subtitles.get"]["message"]["header"]["status_code"] == 200) { + id = jsonResponse["message"]["body"]["macro_calls"]["matcher.track.get"]["message"]["body"]["track"]["track_id"] ?? ''; + lrcfile = jsonResponse["message"]["body"]["macro_calls"]["track.subtitles.get"]["message"]["body"]["subtitle_list"][0]["subtitle"]["subtitle_body"]; + + try { + let lrcrich = jsonResponse["message"]["body"]["macro_calls"]["track.richsync.get"]["message"]["body"]["richsync"]["richsync_body"]; + richsync = JSON.parse(lrcrich); + app.richlyrics = richsync; + } catch (_) { + } + } + + if (lrcfile == "") { + app.loadAMLyrics() + } else { + if (richsync == [] || richsync.length == 0) { + console.log("ok"); + // process lrcfile to json here + app.lyricsMediaItem = lrcfile + let u = app.lyricsMediaItem.split(/[\r\n]/); + let preLrc = [] + for (var i = u.length - 1; i >= 0; i--) { + let xline = (/(\[[0-9.:\[\]]*\])+(.*)/).exec(u[i]) + let end = (preLrc.length > 0) ? ((preLrc[preLrc.length - 1].startTime) ?? 99999) : 99999 + preLrc.push({ + startTime: app.toMS(xline[1].substring(1, xline[1].length - 2)) ?? 0, + endTime: end, + line: xline[2], + translation: '' + }) + } + if (preLrc.length > 0) + preLrc.push({ + startTime: 0, + endTime: preLrc[preLrc.length - 1].startTime, + line: "lrcInstrumental", + translation: '' + }); + app.lyrics = preLrc.reverse(); + } else { + let preLrc = richsync.map(function (item) { + return { + startTime: item.ts, + endTime: item.te, + line: item.x, + translation: '' + } + }) + if (preLrc.length > 0) + preLrc.unshift({ + startTime: 0, + endTime: preLrc[0].startTime, + line: "lrcInstrumental", + translation: '' + }); + app.lyrics = preLrc; + } + if (lrcfile != null && lrcfile != '' && lang != "disabled") { + // load translation + getMXMTrans(id, lang, token); + } else { + app.loadAMLyrics() + } + } + } catch (e) { + console.log(e); + app.loadAMLyrics() + } + } else { //4xx rejected + getToken(1, track, artist, '', lang, time); + } + } catch (e) { + console.log(e); + app.loadAMLyrics() + } + } + req.onerror = function () { + console.log('error'); + app.loadAMLyrics(); + }; + req.send(); + } + + function getMXMTrans(id, lang, token) { + if (lang != "disabled" && id != '') { + let usertoken = encodeURIComponent(token); + let url2 = "https://apic-desktop.musixmatch.com/ws/1.1/crowd.track.translations.get?translation_fields_set=minimal&selected_language=" + lang + "&track_id=" + id + "&comment_format=text&part=user&format=json&usertoken=" + usertoken + "&app_id=web-desktop-app-v1.0&t=" + revisedRandId(); + let req2 = new XMLHttpRequest(); + req2.overrideMimeType("application/json"); + req2.open('GET', url2, true); + req2.setRequestHeader("authority", "apic-desktop.musixmatch.com"); + req2.onload = function () { + try { + let jsonResponse2 = JSON.parse(this.responseText); + console.log(jsonResponse2); + let status2 = jsonResponse2["message"]["header"]["status_code"]; + if (status2 == 200) { + try { + let preTrans = [] + let u = app.lyrics; + let translation_list = jsonResponse2["message"]["body"]["translations_list"]; + if (translation_list.length > 0) { + for (var i = 0; i < u.length - 1; i++) { + preTrans[i] = "" + for (var trans_line of translation_list) { + if (u[i].line == " " + trans_line["translation"]["matched_line"] || u[i].line == trans_line["translation"]["matched_line"]) { + u[i].translation = trans_line["translation"]["description"]; + break; + } + } + } + app.lyrics = u; + } + } catch (e) { + /// not found trans -> ignore + } + } else { //4xx rejected + getToken(2, '', '', id, lang, ''); + } + } catch (e) { } + } + req2.send(); + } + + } + + if (track != "" & track != "No Title Found") { + if (app.mxmtoken != null && app.mxmtoken != '') { + getMXMSubs(track, artist, app.mxmtoken, lang, time, id) + } else { + getToken(1, track, artist, '', lang, time); + } + } + }, + toMS(str) { + let rawTime = str.match(/(\d+:)?(\d+:)?(\d+)(\.\d+)?/); + let hours = (rawTime[2] != null) ? (rawTime[1].replace(":", "")) : 0; + let minutes = (rawTime[2] != null) ? (hours * 60 + rawTime[2].replace(":", "") * 1) : ((rawTime[1] != null) ? rawTime[1].replace(":", "") : 0); + let seconds = (rawTime[3] != null) ? (rawTime[3]) : 0; + let milliseconds = (rawTime[4] != null) ? (rawTime[4].replace(".", "")) : 0 + return parseFloat(`${minutes * 60 + seconds * 1}.${milliseconds * 1}`); + }, + parseTTML() { + this.lyrics = []; + let preLrc = []; + let xml = this.stringToXml(this.lyricsMediaItem); + let lyricsLines = xml.getElementsByTagName('p'); + let synced = true; + let endTimes = []; + if (xml.getElementsByTagName('tt')[0].getAttribute("itunes:timing") === "None") { + synced = false; + } + endTimes.push(0); + if (synced) { + for (let element of lyricsLines) { + let start = this.toMS(element.getAttribute('begin')) + let end = this.toMS(element.getAttribute('end')) + if (start - endTimes[endTimes.length - 1] > 5 && endTimes[endTimes.length - 1] != 0) { + preLrc.push({ + startTime: endTimes[endTimes.length - 1], + endTime: start, + line: "lrcInstrumental" + }); + } + preLrc.push({ startTime: start, endTime: end, line: element.textContent }); + endTimes.push(end); + } + // first line dot + if (preLrc.length > 0) + preLrc.unshift({ startTime: 0, endTime: preLrc[0].startTime, line: "lrcInstrumental" }); + } else { + for (let element of lyricsLines) { + preLrc.push({ startTime: 9999999, endTime: 9999999, line: element.textContent }); + } + } + this.lyrics = preLrc; + + }, + parseLyrics() { + let xml = this.stringToXml(this.lyricsMediaItem) + let json = xmlToJson(xml); + this.lyrics = json + }, + stringToXml(st) { + // string to xml + let xml = (new DOMParser()).parseFromString(st, "text/xml"); + return xml; + + }, + getCurrentTime() { + return parseFloat(this.hmsToSecondsOnly(this.parseTime(this.mk.nowPlayingItem.attributes.durationInMillis - app.mk.currentPlaybackTimeRemaining * 1000))); + }, + seekTo(time) { + this.mk.seekToTime(time); + }, + parseTime(value) { + let minutes = Math.floor(value / 60000); + let seconds = ((value % 60000) / 1000).toFixed(0); + return minutes + ":" + (seconds < 10 ? '0' : '') + seconds; + }, + parseTimeDecimal(value) { + let minutes = Math.floor(value / 60000); + let seconds = ((value % 60000) / 1000).toFixed(0); + return minutes + "." + (seconds < 10 ? '0' : '') + seconds; + }, + hmsToSecondsOnly(str) { + let p = str.split(':'), + s = 0, + m = 1; + + while (p.length > 0) { + s += m * parseInt(p.pop(), 10); + m *= 60; + } + + return s; + }, + getLyricBGStyle(start, end) { + let currentTime = this.getCurrentTime(); + // let duration = this.mk.nowPlayingItem.attributes.durationInMillis + let start2 = this.hmsToSecondsOnly(start) + let end2 = this.hmsToSecondsOnly(end) + // let currentProgress = ((100 * (currentTime)) / (end2)) + // check if currenttime is between start and end + this.player.lyricsDebug.start = start2 + this.player.lyricsDebug.end = end2 + this.player.lyricsDebug.current = currentTime + if (currentTime >= start2 && currentTime <= end2) { + return { + "--bgSpeed": `${(end2 - start2)}s` + } + } else { + return {} + } + }, + playMediaItemById(id, kind, isLibrary, raurl = "") { + let truekind = (!kind.endsWith("s")) ? (kind + "s") : kind; + console.log(id, truekind, isLibrary) + try { + if (truekind.includes("artist")) { + app.mk.setStationQueue({ artist: 'a-' + id }).then(() => { + app.mk.play() + }) + } else if (truekind == "radioStations") { + this.mk.setStationQueue({ url: raurl }).then(function (queue) { + MusicKit.getInstance().play() + }); + } else { + this.mk.setQueue({ + [truekind]: [id], + parameters: { l: this.mklang } + }).then(function (queue) { + MusicKit.getInstance().play() + }) + } + } catch (err) { + console.log(err) + this.playMediaItemById(id, kind, isLibrary, raurl) + } + }, + queueParentandplayChild(parent, childIndex, item) { + + /* Randomize array in-place using Durstenfeld shuffle algorithm */ + function shuffleArray(array) { + for (var i = array.length - 1; i > 0; i--) { + var j = Math.floor(Math.random() * (i + 1)); + var temp = array[i]; + array[i] = array[j]; + array[j] = temp; + } + } + + let kind = parent.substring(0, parent.indexOf(":")) + let id = parent.substring(parent.indexOf(":") + 1, parent.length) + let truekind = (!kind.endsWith("s")) ? (kind + "s") : kind; + console.log(truekind, id) + + try { + if (app.library.songs.displayListing.length > childIndex && parent == "librarysongs") { + console.log(item) + if (item && ((app.library.songs.displayListing[childIndex].id != item.id))) { + childIndex = app.library.songs.displayListing.indexOf(item) + } + + let query = app.library.songs.displayListing.map(item => new MusicKit.MediaItem(item)); + + + app.mk.stop().then(() => { + if (item) { + app.mk.setQueue({ + [item.attributes.playParams.kind ?? item.type]: item.attributes.playParams.id ?? item.id, + parameters: { l: app.mklang } + }).then(function () { + app.mk.play().then(() => { + if (app.mk.shuffleMode == 1) { + shuffleArray(query) + } else { + for (let i = 0; i < query.length; i++) { + if (query[i].id == item.id) { + query.splice(0, i + 1); + break; + } + } + } + app.mk.queue.append(query) + }) + }) + } else { + app.mk.queue.splice(0, app.mk.queue._itemIDs.length) + if (app.mk.shuffleMode == 1) { + shuffleArray(query) + } + app.mk.queue.append(query) + if (childIndex != -1) { + app.mk.changeToMediaAtIndex(childIndex) + } else { + app.mk.play() + } + + } + }) + } else if (parent.startsWith('listitem-hr')) { + app.mk.stop().then(() => { + if (app.mk.shuffleMode == 1) { + app.mk.setQueue({ + [item.attributes.playParams.kind ?? item.type]: item.attributes.playParams.id ?? item.id + }).then(function () { + app.mk.play().then(() => { + let data = JSON.parse(parent.split('listitem-hr')[1] ?? '[]') + let itemsToPlay = {} + let u = data.map(x => x.id) + try { + data.splice(u.indexOf(item.attributes.playParams.id ?? item.id), 1) + } catch (e) { + } + if (app.mk.shuffleMode == 1) { + shuffleArray(data) + } + data.forEach(item => { + if (!itemsToPlay[item.kind]) { + itemsToPlay[item.kind] = [] + } + itemsToPlay[item.kind].push(item.id) + }) + // loop through itemsToPlay + for (let kind in itemsToPlay) { + let ids = itemsToPlay[kind] + if (ids.length > 0) { + app.mk.playLater({ [kind + "s"]: itemsToPlay[kind] }) + } + } + }) + }) + } else { + let data = JSON.parse(parent.split('listitem-hr')[1] ?? '[]') + let itemsToPlay = {} + data.forEach(item => { + if (!itemsToPlay[item.kind]) { + itemsToPlay[item.kind] = [] + } + itemsToPlay[item.kind].push(item.id) + }) + // loop through itemsToPlay + app.mk.queue.splice(0, app.mk.queue._itemIDs.length) + let ind = 0; + for (let kind in itemsToPlay) { + let ids = itemsToPlay[kind] + if (ids.length > 0) { + if (app.mk.queue._itemIDs.length > 0) { + app.mk.playLater({ [kind + "s"]: itemsToPlay[kind] }).then(function () { + ind += 1; + console.log(ind, Object.keys(itemsToPlay).length) + if (ind >= Object.keys(itemsToPlay).length) { + app.mk.changeToMediaAtIndex(app.mk.queue._itemIDs.indexOf(item.attributes.playParams.id ?? item.id)) + } + } + ) + } else { + app.mk.setQueue({ [kind + "s"]: itemsToPlay[kind] }).then(function () { + ind += 1; + console.log(ind, Object.keys(itemsToPlay).length) + if (ind >= Object.keys(itemsToPlay).length) { + app.mk.changeToMediaAtIndex(app.mk.queue._itemIDs.indexOf(item.attributes.playParams.id ?? item.id)) + } + } + ) + } + } + + } + } + }) + } else { + app.mk.stop().then(() => { + if (truekind == "playlists" && (id.startsWith("p.") || id.startsWith("pl.u"))) { + app.mk.setQueue({ + [item.attributes.playParams.kind ?? item.type]: item.attributes.playParams.id ?? item.id, + parameters: { l: app.mklang } + }).then(function () { + app.mk.changeToMediaAtIndex(app.mk.queue._itemIDs.indexOf(item.id) ?? 1).then(function () { + if ((app.showingPlaylist && app.showingPlaylist.id == id)) { + let query = app.showingPlaylist.relationships.tracks.data.map(item => new MusicKit.MediaItem(item)); + let u = query; + if (app.mk.shuffleMode == 1) { + shuffleArray(u) + } else { + for (let i = 0; i < app.showingPlaylist.relationships.tracks.data.length; i++) { + if (app.showingPlaylist.relationships.tracks.data[i].id == item.id) { + u.splice(0, i + 1); + break; + } + } + } + app.mk.queue.append(u) + } else { + app.getPlaylistFromID(id, true).then(function () { + let query = app.showingPlaylist.relationships.tracks.data.map(item => new MusicKit.MediaItem(item)); + let u = query; + if (app.mk.shuffleMode == 1) { + shuffleArray(u) + } else { + for (let i = 0; i < app.showingPlaylist.relationships.tracks.data.length; i++) { + if (app.showingPlaylist.relationships.tracks.data[i].id == item.id) { + u.splice(0, i + 1); + break; + } + } + } + app.mk.queue.append(u) + }) + } + }) + + }) + } else { + this.mk.setQueue({ + [truekind]: [id], + parameters: { l: this.mklang } + }).then(function (queue) { + if (item && ((queue._itemIDs[childIndex] != item.id))) { + childIndex = queue._itemIDs.indexOf(item.id) + } + if (childIndex != -1) { + app.mk.changeToMediaAtIndex(childIndex) + } else if (item) { + app.mk.playNext({ + [item.attributes.playParams.kind ?? item.type]: item.attributes.playParams.id ?? item.id + }).then(function () { + app.mk.changeToMediaAtIndex(app.mk.queue._itemIDs.indexOf(item.id) ?? 1) + app.mk.play() + }) + } else { + app.mk.play() + } + }) + } + }) + } + } catch (err) { + console.log(err) + try { + app.mk.stop() + } catch (e) { + } + this.playMediaItemById(item.attributes.playParams.id ?? item.id, item.attributes.playParams.kind ?? item.type, item.attributes.playParams.isLibrary ?? false, item.attributes.url) + } + + }, + friendlyTypes(type) { + // use switch statement to return friendly name for media types "songs,artists,albums,playlists,music-videos,stations,apple-curators,curators" + switch (type) { + case "song": + return app.getLz('term.songs') + break; + case "artist": + return app.getLz('term.artists') + break; + case "album": + return app.getLz('term.albums') + break; + case "playlist": + return app.getLz('term.playlists') + break; + case "music_video": + return app.getLz('term.musicVideos') + break; + case "station": + return app.getLz('term.stations') + break; + case "apple-curator": + return app.getLz('term.appleCurators') + break; + case "radio_show": + return app.getLz('term.radioShows') + break; + case "record_label": + return app.getLz('term.recordLabels') + break; + case "radio_episode": + return app.getLz('podcast.episodes') + break; + case "video_extra": + return app.getLz('term.videoExtras') + break; + case "curator": + return app.getLz('term.curators') + break; + case "top": + return app.getLz('term.top') + break; + default: + return type + break; + } + }, + async searchQuery(term = this.search.term) { + let self = this + if (term == "") { + return + } + //this.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/search?term=${this.search.term}` + this.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/search?term=${encodeURIComponent(this.search.term)}`, { + types: "activities,albums,apple-curators,artists,curators,editorial-items,music-movies,music-videos,playlists,songs,stations,tv-episodes,uploaded-videos,record-labels", + "relate[editorial-items]": "contents", + "include[editorial-items]": "contents", + "include[albums]": "artists", + "include[artists]": "artists", + "include[songs]": "artists,albums", + "include[music-videos]": "artists", + "extend": "artistUrl", + "fields[artists]": "url,name,artwork,hero", + "fields[albums]": "artistName,artistUrl,artwork,contentRating,editorialArtwork,editorialVideo,name,playParams,releaseDate,url", + "with": "serverBubbles,lyricHighlights", + "art[url]": "c,f", + "omit[resource]": "autos", + "platform": "web", + limit: 25, + l: this.mklang + }).then(function (results) { + results.data.results["meta"] = results.data.meta + self.search.results = results.data.results + }) + + await app.mk.api.v3.music(`v1/social/${app.mk.storefrontId}/search?term=${app.search.term}`, { + types: ["playlists", "social-profiles"], + limit: 25, + with: ["serverBubbles", "lyricSnippet"], + "art[url]": "f", + "art[social-profiles:url]": "c" + }, { includeResponseMeta: !0 }).then(function (results) { + results.data.results["meta"] = results.data.meta + self.search.resultsSocial = results.data.results + }) + }, + async inLibrary(items = []) { + let types = [] + + for (let item of items) { + let type = item.type + if (type.slice(-1) != "s") { + type += "s" + } + type = type.replace("library-", "") + let id = item.attributes.playParams.catalogId ?? item.attributes.playParams.id ?? item.id + + let index = types.findIndex(function (type) { + return type.type == this + }, type) + if (index == -1) { + types.push({ type: type, id: [id] }) + } else { + types[index].id.push(id) + } + } + let types2 = types.map(function (item) { + return { + [`ids[${item.type}]`]: [item.id] + } + }) + types2 = types2.reduce(function (result, item) { + var key = Object.keys(item)[0]; //first property: a, b, c + result[key] = item[key]; + return result; + }, {}); + return (await this.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}`, { + ...{ + "omit[resource]": "autos", + relate: "library", + fields: "inLibrary" + }, + ...types2 + })).data.data + }, + isInLibrary(playParams) { + let self = this + let id = "" + // ugly code to check if current playback item is in library + if (typeof playParams == "undefined") { + return true + } + if (playParams["isLibrary"]) { + return true + } else if (playParams["catalogId"]) { + id = playParams["catalogId"] + } else if (playParams["id"]) { + id = playParams["id"] + } + let found = this.library.songs.listing.filter((item) => { + if (item["attributes"]) { + if (item["attributes"]["playParams"] && (item["attributes"]["playParams"]["catalogId"] == id)) { + return item; + } + } + }) + if (found.length != 0) { + return true + } else { + return false + } + }, + mkReady() { + if (this.mk["nowPlayingItem"]) { + return true + } else { + return false + } + }, + getMediaItemArtwork(url, height = 64, width) { + if (typeof url == "undefined" || url == "") { + return "https://beta.music.apple.com/assets/product/MissingArtworkMusic.svg" + } + let newurl = `${url.replace('{w}', width ?? height).replace('{h}', height).replace('{f}', "webp").replace('{c}', ((width === 900) ? "sr" : "cc"))}`; + + if (newurl.includes("900x516")) { + newurl = newurl.replace("900x516cc", "900x516sr").replace("900x516bb", "900x516sr"); + } + return newurl + }, + _rgbToRgb(rgb = [0, 0, 0]) { + // if rgb + return `rgb(${rgb[0]},${rgb[1]},${rgb[2]})` + }, + getNowPlayingArtworkBG(size = 32, force = false) { + let self = this + if (typeof this.mk.nowPlayingItem === "undefined") return; + let bginterval = setInterval(() => { + if (!this.mkReady()) { + return "" + } + + try { + if ((this.mk.nowPlayingItem && this.mk.nowPlayingItem["id"] != this.currentTrackID && document.querySelector('.bg-artwork')) || force) { + if (document.querySelector('.bg-artwork')) { + clearInterval(bginterval); + } + this.currentTrackID = this.mk.nowPlayingItem["id"]; + document.querySelector('.bg-artwork').src = ""; + if (this.mk["nowPlayingItem"]["attributes"]["artwork"]["url"]) { + getBase64FromUrl(this.mk["nowPlayingItem"]["attributes"]["artwork"]["url"].replace('{w}', size).replace('{h}', size)).then(img => { + document.querySelectorAll('.bg-artwork').forEach(artwork => { + artwork.src = img; + }) + self.$store.commit("setLCDArtwork", img) + }) + try { + clearInterval(bginterval); + } catch (err) { + } + } else { + this.setLibraryArtBG() + } + } else if (this.mk.nowPlayingItem["id"] == this.currentTrackID) { + try { + clearInterval(bginterval); + } catch (err) { + } + } + } catch (e) { + if (this.mk.nowPlayingItem && this.mk.nowPlayingItem["id"] && document.querySelector('.bg-artwork')) { + this.setLibraryArtBG() + try { + clearInterval(bginterval); + } catch (err) { + } + } + } + }, 200) + }, + async getCurrentArtURL() { + try { + let artworkSize = 50 + if (app.getThemeDirective("lcdArtworkSize") != "") { + artworkSize = app.getThemeDirective("lcdArtworkSize") + } else if (this.cfg.visual.directives.windowLayout == "twopanel") { + artworkSize = 80 + } + this.currentArtUrl = ''; + this.currentArtUrlRaw = ''; + if (app.mk.nowPlayingItem != null && app.mk.nowPlayingItem.attributes != null && app.mk.nowPlayingItem.attributes.artwork != null && app.mk.nowPlayingItem.attributes.artwork.url != null && app.mk.nowPlayingItem.attributes.artwork.url != '') { + this.currentArtUrlRaw = (this.mk["nowPlayingItem"]["attributes"]["artwork"]["url"] ?? '') + this.currentArtUrl = (this.mk["nowPlayingItem"]["attributes"]["artwork"]["url"] ?? '').replace('{w}', artworkSize).replace('{h}', artworkSize); + try { + document.querySelector('.app-playback-controls .artwork').style.setProperty('--artwork', `url("${this.currentArtUrl}")`); + } catch (e) { + } + } else { + let data = await this.mk.api.v3.music(`/v1/me/library/songs/${this.mk.nowPlayingItem.id}`); + data = data.data.data[0]; + if (data != null && data !== "" && data.attributes != null && data.attributes.artwork != null) { + this.currentArtUrlRaw = (data["attributes"]["artwork"]["url"] ?? '') + this.currentArtUrl = (data["attributes"]["artwork"]["url"] ?? '').replace('{w}', artworkSize).replace('{h}', artworkSize); + ipcRenderer.send('updateRPCImage', this.currentArtUrl ?? ''); + try { + document.querySelector('.app-playback-controls .artwork').style.setProperty('--artwork', `url("${this.currentArtUrl}")`); + } catch (e) { + } + } else { + this.currentArtUrlRaw = '' + this.currentArtUrl = ''; + try { + document.querySelector('.app-playback-controls .artwork').style.setProperty('--artwork', `url("${this.currentArtUrl}")`); + } catch (e) { + } + } + } + } catch (e) { + + } + }, + async setLibraryArt() { + if (typeof this.mk.nowPlayingItem === "undefined") return; + try { + let data = await this.mk.api.v3.music(`/v1/me/library/songs/${this.mk.nowPlayingItem.id}`); + data = data.data.data[0]; + + if (data != null && data !== "") { + document.querySelector('.app-playback-controls .artwork').style.setProperty('--artwork', 'url("' + (data["attributes"]["artwork"]["url"]).toString() + '")'); + } else { + document.querySelector('.app-playback-controls .artwork').style.setProperty('--artwork', `url("")`); + } + } catch (e) { + } + }, + async setLibraryArtBG() { + if (typeof this.mk.nowPlayingItem === "undefined") return; + try { + let data = await this.mk.api.v3.music(`/v1/me/library/songs/${this.mk.nowPlayingItem.id}`); + data = data.data.data[0]; + + if (data != null && data !== "") { + getBase64FromUrl((data["attributes"]["artwork"]["url"]).toString()).then(img => { + document.querySelector('.bg-artwork').forEach(artwork => { + artwork.src = img; + }) + self.$store.commit("setLCDArtwork", img) + }) + } + } catch (e) { + } + + }, + quickPlay(query) { + let self = this + MusicKit.getInstance().api.search(query, { limit: 2, types: 'songs' }).then(function (data) { + MusicKit.getInstance().setQueue({ + song: data["songs"]['data'][0]["id"], + parameters: { l: app.mklang } + }).then(function (queue) { + MusicKit.getInstance().play() + setTimeout(() => { + self.$forceUpdate() + }, 1000) + }) + }) + }, + async getRating(item) { + let type = item.type.slice(-1) === "s" ? item.type : item.type + "s" + let id = item.attributes?.playParams?.catalogId ? item.attributes.playParams.catalogId : (item.attributes?.playParams?.id ?? item.id) + if (item.id != null && (item.id.toString()).startsWith("i.")) { + if (!type.startsWith("library-")) { + type = "library-" + type + } + id = item.id + } + let response = await this.mk.api.v3.music(`/v1/me/ratings/${type}?platform=web&ids=${type.includes('library') ? item.id : id}`) + if (response.data.data.length != 0) { + let value = response.data.data[0].attributes.value + return value + } else { + return 0 + } + }, + love(item) { + let type = item.type.slice(-1) === "s" ? item.type : item.type + "s" + let id = item.attributes?.playParams?.catalogId ? item.attributes.playParams.catalogId : (item.attributes?.playParams?.id ?? item.id) + if (item.id != null && (item.id.toString()).startsWith("i.")) { + if (!type.startsWith("library-")) { + type = "library-" + type + } + id = item.id + } + this.mk.api.v3.music(`/v1/me/ratings/${type}/${id}`, {}, { + fetchOptions: { + method: "PUT", + body: JSON.stringify({ + "type": "rating", + "attributes": { + "value": 1 + } + }) + } + }) + }, + dislike(item) { + let type = item.type.slice(-1) === "s" ? item.type : item.type + "s" + let id = item.attributes?.playParams?.catalogId ? item.attributes.playParams.catalogId : (item.attributes?.playParams?.id ?? item.id) + if (item.id != null && (item.id.toString()).startsWith("i.")) { + if (!type.startsWith("library-")) { + type = "library-" + type + } + id = item.id + } + this.mk.api.v3.music(`/v1/me/ratings/${type}/${id}`, {}, { + fetchOptions: { + method: "PUT", + body: JSON.stringify({ + "type": "rating", + "attributes": { + "value": -1 + } + }) + } + }) + }, + unlove(item) { + let type = item.type.slice(-1) === "s" ? item.type : item.type + "s" + let id = item.attributes.playParams.catalogId ? item.attributes.playParams.catalogId : item.id + if (item.id.startsWith("i.")) { + if (!type.startsWith("library-")) { + type = "library-" + type + } + id = item.id + } + this.mk.api.v3.music(`/v1/me/ratings/${type}/${id}`, {}, { + fetchOptions: { + method: "DELETE", + } + }) + }, + checkScrollDirectionIsUp(event) { + if (event.wheelDelta) { + return event.wheelDelta > 0; + } + return event.deltaY < 0; + }, + volumeUp() { + if ((app.mk.volume + app.cfg.audio.volumeStep) > app.cfg.audio.maxVolume) { + app.mk.volume = app.cfg.audio.maxVolume; + console.log('setting max volume') + } else { + console.log('volume up') + app.mk.volume = ((app.mk.volume * 100) + (app.cfg.audio.volumeStep * 100)) / 100 + } + }, + volumeDown() { + if ((app.mk.volume - app.cfg.audio.volumeStep) < 0) { + app.mk.volume = 0; + console.log('setting volume to 0') + } else { + console.log('volume down') + app.mk.volume = ((app.mk.volume * 100) - (app.cfg.audio.volumeStep * 100)) / 100 + } + }, + volumeWheel(event) { + app.checkScrollDirectionIsUp(event) ? this.volumeUp() : this.volumeDown() + }, + muteButtonPressed() { + if (this.cfg.audio.muted) { + this.mk.volume = this.cfg.audio.lastVolume; + this.cfg.audio.muted = false; + } else { + this.cfg.audio.lastVolume = this.cfg.audio.volume; + this.mk.volume = 0; + this.cfg.audio.muted = true; + } + }, + checkMuteChange() { + if (this.cfg.audio.muted) { + this.cfg.audio.muted = false; + } + }, + async apiCall(url, callback) { + const xmlHttp = new XMLHttpRequest(); + + xmlHttp.onreadystatechange = (e) => { + if (xmlHttp.readyState !== 4) { + return; + } + + if (xmlHttp.status === 200) { + // console.log('SUCCESS', xmlHttp.responseText); + callback(JSON.parse(xmlHttp.responseText)); + } else { + console.warn('request_error'); + } + }; + + xmlHttp.open("GET", url); + xmlHttp.setRequestHeader("Authorization", "Bearer " + MusicKit.getInstance().developerToken); + xmlHttp.setRequestHeader("Music-User-Token", "" + MusicKit.getInstance().musicUserToken); + xmlHttp.setRequestHeader("Accept", "application/json"); + xmlHttp.setRequestHeader("Content-Type", "application/json"); + xmlHttp.responseType = "text"; + xmlHttp.send(); + }, + fetchPlaylist(id, callback) { + // id can be found in playlist.attributes.playParams.globalId + // this.mk.api. + this.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/playlists/${id}`).then(res => { + callback(res.data.data[0]) + }) + + // tracks are found in relationship.data + }, + windowFocus(val) { + if (val) { + document.querySelectorAll(".animated-artwork-video").forEach(el => { + el.play() + }) + document.querySelector("body").classList.remove("stopanimation") + this.animateBackground = true + } else { + document.querySelectorAll(".animated-artwork-video").forEach(el => { + el.pause() + }) + document.querySelector("body").classList.add("stopanimation") + this.animateBackground = false + } + }, + async nowPlayingContextMenu(event) { + let self = this + let data_type = this.mk.nowPlayingItem.playParams.kind + let item_id = this.mk.nowPlayingItem.attributes.playParams.id ?? this.mk.nowPlayingItem.id + let isLibrary = this.mk.nowPlayingItem.attributes.playParams.isLibrary ?? false + let params = { "fields[songs]": "inLibrary", "fields[albums]": "inLibrary", "relate": "library", "t": "1" } + app.selectedMediaItems = [] + app.select_selectMediaItem(item_id, data_type, 0, '12344', isLibrary) + let useMenu = "normal" + let menus = { + multiple: { + items: [] + }, + normal: { + headerItems: [{ + "icon": "./assets/feather/heart.svg", + "id": "love", + "name": app.getLz('action.love'), + "hidden": false, + "disabled": true, + "action": function () { + app.love(app.mk.nowPlayingItem) + } + }, + { + "icon": "./assets/feather/heart.svg", + "id": "unlove", + "active": true, + "name": app.getLz('action.unlove'), + "hidden": true, + "action": function () { + app.unlove(app.mk.nowPlayingItem) + } + }, + { + "icon": "./assets/feather/thumbs-down.svg", + "id": "dislike", + "name": app.getLz('action.dislike'), + "hidden": false, + "disabled": true, + "action": function () { + app.dislike(app.mk.nowPlayingItem) + } + }, + { + "icon": "./assets/feather/thumbs-down.svg", + "id": "undo_dislike", + "name": app.getLz('action.undoDislike'), + "active": true, + "hidden": true, + "action": function () { + app.unlove(app.mk.nowPlayingItem) + } + }, + ], + items: [ + { + "icon": "./assets/feather/plus.svg", + "id": "addToLibrary", + "name": app.getLz('action.addToLibrary') + " ...", + "disabled": true, + "action": function () { + app.addToLibrary(app.mk.nowPlayingItem.id); + } + }, + { + "id": "removeFromLibrary", + "icon": "./assets/feather/x-circle.svg", + "name": app.getLz('action.removeFromLibrary'), + "hidden": true, + "action": function () { + self.removeFromLibrary() + } + }, + { + "icon": "./assets/feather/list.svg", + "name": app.getLz('action.addToPlaylist') + " ...", + "action": function () { + app.promptAddToPlaylist() + } + }, + { + "icon": "./assets/feather/radio.svg", + "name": app.getLz('action.startRadio'), + "action": function () { + app.mk.setStationQueue({ song: app.mk.nowPlayingItem.id }).then(() => { + app.mk.play() + app.selectedMediaItems = [] + }) + } + }, + { + "icon": "./assets/feather/user.svg", + "name": app.getLz('action.goToArtist'), + "action": function () { + app.appRoute(`artist/${app.mk.nowPlayingItem.relationships.artists.data[0].id}`) + } + }, + { + "icon": "./assets/feather/disc.svg", + "name": app.getLz('action.goToAlbum'), + "action": function () { + app.appRoute(`album/${app.mk.nowPlayingItem.relationships.albums.data[0].id}`) + } + }, + { + "id": "showInMusic", + "icon": "./assets/music.svg", + "hidden": true, + "name": app.getLz('action.showInAppleMusic'), + "action": function () { + app.routeView(app.mk.nowPlayingItem._container) + } + }, + { + "icon": "./assets/feather/share.svg", + "name": app.getLz('action.share'), + "action": function () { + app.mkapi(app.mk.nowPlayingItem.attributes?.playParams?.kind ?? app.mk.nowPlayingItem.type ?? 'songs', false, app.mk.nowPlayingItem._songId ?? (app.mk.nowPlayingItem.songId ?? app.mk.nowPlayingItem.id) ?? '').then(u => { + app.copyToClipboard((u.data.data.length && u.data.data.length > 0) ? u.data.data[0].attributes.url : u.data.data.attributes.url) + }) + } + }, + { + "icon": "./assets/feather/share.svg", + "name": `${app.getLz('action.share')} (song.link)`, + "action": function () { + app.mkapi(app.mk.nowPlayingItem.attributes?.playParams?.kind ?? app.mk.nowPlayingItem.type ?? 'songs', false, app.mk.nowPlayingItem._songId ?? (app.mk.nowPlayingItem.songId ?? app.mk.nowPlayingItem.id) ?? '').then(u => { + app.songLinkShare((u.data.data.length && u.data.data.length > 0) ? u.data.data[0].attributes.url : u.data.data.attributes.url) + }) + } + } + ] + } + } + if (this.contextExt) { + if (this.contextExt.normal) { + menus.normal.items = menus.normal.items.concat(this.contextExt.normal) + } + } + + if (app.mk.nowPlayingItem._container["attributes"] && app.mk.nowPlayingItem._container.name != "station") { + menus.normal.items.find(x => x.id == "showInMusic").hidden = false + } + + this.showMenuPanel(menus[useMenu], event) + + try { + let result = await this.inLibrary([this.mk.nowPlayingItem]) + if (result[0].attributes.inLibrary) { + menus.normal.items.find(x => x.id == 'addToLibrary').hidden = true + menus.normal.items.find(x => x.id == 'removeFromLibrary').hidden = false + } else { + menus.normal.items.find(x => x.id == 'addToLibrary').disabled = false + } + } catch (e) { + e = null + } + + try { + let rating = await app.getRating(app.mk.nowPlayingItem) + if (rating == 0) { + menus.normal.headerItems.find(x => x.id == 'love').disabled = false + menus.normal.headerItems.find(x => x.id == 'dislike').disabled = false + } else if (rating == 1) { + menus.normal.headerItems.find(x => x.id == 'unlove').hidden = false + menus.normal.headerItems.find(x => x.id == 'love').hidden = true + } else if (rating == -1) { + menus.normal.headerItems.find(x => x.id == 'undo_dislike').hidden = false + menus.normal.headerItems.find(x => x.id == 'dislike').hidden = true + } + } catch (err) { + + } + }, + LastFMDeauthorize() { + ipcRenderer.invoke('setStoreValue', 'lastfm.enabled', false).catch((e) => console.error(e)); + ipcRenderer.invoke('setStoreValue', 'lastfm.auth_token', '').catch((e) => console.error(e)); + app.cfg.lastfm.auth_token = ""; + app.cfg.lastfm.enabled = false; + const element = document.getElementById('lfmConnect'); + element.innerHTML = app.getLz('term.connect'); + element.onclick = app.LastFMAuthenticate; + }, + LastFMAuthenticate() { + console.log("[LastFM] Received LastFM authentication callback") + const element = document.getElementById('lfmConnect'); + // new key : f9986d12aab5a0fe66193c559435ede3 + window.open('https://www.last.fm/api/auth?api_key=f9986d12aab5a0fe66193c559435ede3&cb=cider://auth/lastfm'); + element.innerText = app.getLz('term.connecting') + '...'; + + /* Just a timeout for the button */ + setTimeout(() => { + if (element.innerText === app.getLz('term.connecting') + '...') { + element.innerText = app.getLz('term.connect'); + console.warn('[LastFM] Attempted connection timed out.'); + } + }, 20000); + + ipcRenderer.on('LastfmAuthenticated', function (_event, lfmAuthKey) { + app.cfg.lastfm.auth_token = lfmAuthKey; + app.cfg.lastfm.enabled = true; + element.innerHTML = `${app.getLz('term.disconnect')}\n

    (${app.getLz('term.authed')}: ${lfmAuthKey})

    `; + element.onclick = app.LastFMDeauthorize; + }); + }, + /** + parseSCTagToRG: function (tag) { + let soundcheck = tag.split(" ") + let numbers = [] + for (item of soundcheck) { + numbers.push(parseInt(item, 16)) + + } + numbers.shift() + //let gain = Math.log10((Math.max(numbers[0], numbers[1]) ?? 1000) / 1000.0) * -10 + let peak = Math.max(numbers[6], numbers[7]) / 32768.0 + let gain = Math.pow(10, ((-7.63 - (Math.log10(peak) * 20)) / 20))// EBU R 128 Compliant + return { + gain: gain, + peak: peak + } + },*/ + fullscreen(flag) { + if (flag) { + ipcRenderer.send('setFullScreen', true); + if (app.mk.nowPlayingItem.type && app.mk.nowPlayingItem.type.toLowerCase().includes("video")) { + document.querySelector('video#apple-music-video-player').requestFullscreen() + } else { + app.appMode = 'fullscreen'; + } + document.addEventListener('keydown', event => { + if (event.key === 'Escape' && app.appMode === 'fullscreen') { + this.fullscreen(false); + } + }); + } else { + ipcRenderer.send('setFullScreen', false); + app.appMode = 'player'; + } + }, + miniPlayer(flag) { + if (flag) { + this.tmpWidth = window.innerWidth; + this.tmpHeight = window.innerHeight; + ipcRenderer.send('unmaximize'); + ipcRenderer.send('windowmin', 250, 250) + ipcRenderer.send('windowresize', 300, 300, false) + app.appMode = 'mini'; + } else { + ipcRenderer.send('windowmin', 844, 410) + ipcRenderer.send('windowresize', this.tmpWidth, this.tmpHeight, false) + ipcRenderer.send('windowontop', false) + //this.cfg.visual.miniplayer_top_toggle = true; + app.appMode = 'player'; + } + }, + pinMiniPlayer(status = false) { + if (!status) { + if (!this.cfg.visual.miniplayer_top_toggle) { + ipcRenderer.send('windowontop', true) + this.cfg.visual.miniplayer_top_toggle = true; + } else { + ipcRenderer.send('windowontop', false) + this.cfg.visual.miniplayer_top_toggle = false; + } + } else { + ipcRenderer.send('windowontop', this.cfg.visual.miniplayer_top_toggle ?? false) + } + }, + formatTimezoneOffset: (e = new Date) => { + let leadingZeros = (e, s = 2) => { + let n = "" + e; + for (; n.length < s;) + n = "0" + n; + return n + } + + const s = e.getTimezoneOffset(), + n = Math.floor(Math.abs(s) / 60), + d = Math.round(Math.abs(s) % 60); + let h = "+"; + return 0 !== s && (h = s > 0 ? "-" : "+"), + `${h}${leadingZeros(n, 2)}:${leadingZeros(d, 2)}` + }, + toggleHideUserInfo() { + if (this.chrome.hideUserInfo) { + this.cfg.visual.showuserinfo = true + this.chrome.hideUserInfo = false + } else { + this.cfg.visual.showuserinfo = false + this.chrome.hideUserInfo = true + } + }, + isElementOverflowing(selector) { + try { + let element = document.querySelector(selector); + var overflowX = element.offsetWidth < element.scrollWidth, + overflowY = element.offsetHeight < element.scrollHeight; + element.setAttribute('data-value', '\xa0\xa0\xa0\xa0' + element.textContent); + + return (overflowX || overflowY); + } catch (e) { + return false + } + }, + async showWebRemoteQR() { + //this.webremoteqr = await ipcRenderer.invoke('setRemoteQR','') + this.webremoteurl = await ipcRenderer.invoke('showQR', '') + //this.modals.qrcode = true; + }, + checkMarquee() { + if (isElementOverflowing('#app-main > div.app-chrome > div.app-chrome--center > div > div > div.playback-info > div.song-artist') == true) { + document.getElementsByClassName('song-artist')[0].classList.add('marquee'); + document.getElementsByClassName('song-artist')[1].classList.add('marquee-after'); + } + if (isElementOverflowing('#app-main > div.app-chrome > div.app-chrome--center > div > div > div.playback-info > div.song-name') == true) { + document.getElementsByClassName('song-name')[0].classList.add('marquee'); + document.getElementsByClassName('song-name')[1].classList.add('marquee-after'); + } + }, + closeWindow() { + ipcRenderer.send('close'); + }, + darwinShare(url) { + ipcRenderer.send('share-menu', url) + }, + arrayToChunk(arr, chunkSize) { + let R = []; + for (let i = 0, len = arr.length; i < len; i += chunkSize) { + R.push(arr.slice(i, i + chunkSize)); + } + return R; + }, + SpacePause() { + const elems = document.querySelectorAll('input'); + for (let elem of elems) { + if (elem === document.activeElement) { + return; + } + } + if (!this.isDev) // disable in dev mode to keep my sanity + MusicKitInterop.playPause(); + }, + async MKJSLang() { + let u = this.cfg.general.language; + // use MusicKit.getInstance or crash + try { + let item = await MusicKit.getInstance().api.v3.music(`v1/storefronts/${app.mk.storefrontId}`) + let langcodes = item.data.data[0].attributes.supportedLanguageTags; + if (langcodes) langcodes = langcodes.map(function (u) { + return u.replace(/-Han[s|t]/i, "").toLowerCase() + }) + console.log(langcodes) + let sellang = "" + if (u && langcodes.includes(u.toLowerCase().replace('_', "-"))) { + sellang = ((u.toLowerCase()).replace('_', "-")) + } else if (u && u.includes('_') && langcodes.includes(((u.toLowerCase()).replace('_', "-")).split("-")[0])) { + sellang = ((u.toLowerCase()).replace('_', "-")).split("-")[0] + } + if (sellang == "") sellang = (item.data.data[0].attributes.defaultLanguageTag).toLowerCase() + + // Fix weird locales: + if (sellang == "iw") sellang = "iw-il" + sellang = sellang.replace(/-Han[s|t]/i, "").toLowerCase() + + console.log(sellang) + return await sellang + } catch (err) { + console.log('locale err', err) + let langcodes = ['af', 'sq', 'ar', 'eu', 'bg', 'be', 'ca', 'zh', 'zh-tw', 'zh-cn', 'zh-hk', 'zh-sg', 'hr', 'cs', 'da', 'nl', 'nl-be', 'en', 'en-us', 'en-eg', 'en-au', 'en-gb', 'en-ca', 'en-nz', 'en-ie', 'en-za', 'en-jm', 'en-bz', 'en-tt', 'en-001', 'et', 'fo', 'fa', 'fi', 'fr', 'fr-ca', 'gd', 'de', 'de-ch', 'el', 'he', 'hi', 'hu', 'is', 'id', 'it', 'ja', 'ko', 'lv', 'lt', 'mk', 'mt', 'no', 'nb', 'nn', 'pl', 'pt-br', 'pt', 'rm', 'ro', 'ru', 'sr', 'sk', 'sl', 'es', 'es-mx', 'es-419', 'sv', 'th', 'ts', 'tn', 'tr', 'uk', 'ur', 've', 'vi', 'xh', 'yi', 'zu', 'ms', 'iw', 'lo', 'tl', 'kk', 'ta', 'te', 'bn', 'ga', 'ht', 'la', 'pa', 'sa']; + let sellang = "en" + if (u && langcodes.includes(u.toLowerCase().replace('_', "-"))) { + sellang = ((u.toLowerCase()).replace('_', "-")) + } else if (u && u.includes('_') && langcodes.includes(((u.toLowerCase()).replace('_', "-")).split("-")[0])) { + sellang = ((u.toLowerCase()).replace('_', "-")).split("-")[0] + } + if (sellang.startsWith("en") && this.mk.storefrontId != "us") sellang = "en-gb" + return await sellang + } + }, + skipToNextItem() { + app.prevButtonBackIndicator = false; + // app.mk.skipToNextItem() is buggy somehow so use this + if (this.mk.queue.nextPlayableItemIndex != -1 && this.mk.queue.nextPlayableItemIndex != null) + this.mk.changeToMediaAtIndex(this.mk.queue.nextPlayableItemIndex); + }, + skipToPreviousItem() { + // app.mk.skipToPreviousItem() is buggy somehow so use this + if (this.mk.queue.previousPlayableItemIndex != -1 && this.mk.queue.previousPlayableItemIndex != null) + this.mk.changeToMediaAtIndex(this.mk.queue.previousPlayableItemIndex); + }, + mediaKeyFixes() { + navigator.mediaSession.setActionHandler('previoustrack', function () { + app.prevButton() + }); + navigator.mediaSession.setActionHandler('nexttrack', function () { + app.skipToNextItem() + }); + }, + checkForUpdate() { + ipcRenderer.send('check-for-update') + document.getElementById('settings.option.general.updateCider.check').innerHTML = 'Checking...' + notyf.success('Checking for update in background...') + ipcRenderer.on('update-response', (event, res) => { + if (res === "update-not-available") { + notyf.error(app.getLz(`settings.notyf.updateCider.${res}`)) + } else if (res === "update-downloaded") { + notyf.success(app.getLz(`settings.notyf.updateCider.${res}`)) + } else if (res === "update-error") { + notyf.error(app.getLz(`settings.notyf.updateCider.${res}`)) + } else if (res === "update-timeout") { + notyf.error(app.getLz(`settings.notyf.updateCider.${res}`)) + } + document.getElementById('settings.option.general.updateCider.check').innerHTML = app.getLz('term.check') + }) + }, + } +}) + + +export { app } diff --git a/src/renderer/main/vuex-store.js b/src/renderer/main/vuex-store.js new file mode 100644 index 00000000..fb2b774f --- /dev/null +++ b/src/renderer/main/vuex-store.js @@ -0,0 +1,20 @@ +const store = new Vuex.Store({ + state: { + library: { + // songs: ipcRenderer.sendSync("get-library-songs"), + // albums: ipcRenderer.sendSync("get-library-albums"), + // recentlyAdded: ipcRenderer.sendSync("get-library-recentlyAdded"), + // playlists: ipcRenderer.sendSync("get-library-playlists") + }, + artwork: { + playerLCD: "" + } + }, + mutations: { + setLCDArtwork(state, artwork) { + state.artwork.playerLCD = artwork + } + } +}) + +export {store} \ No newline at end of file diff --git a/src/renderer/js/WSAPI_Interop.js b/src/renderer/main/wsapi_interop.js similarity index 86% rename from src/renderer/js/WSAPI_Interop.js rename to src/renderer/main/wsapi_interop.js index 525ad47e..563b2e30 100644 --- a/src/renderer/js/WSAPI_Interop.js +++ b/src/renderer/main/wsapi_interop.js @@ -49,13 +49,13 @@ const wsapi = { }, musickitApi(method, id, params, library = false) { if (library) { - MusicKit.getInstance().api.library[method](id, params).then((results)=>{ - ipcRenderer.send('wsapi-returnMusicKitApi', JSON.stringify(results), method) - }) + MusicKit.getInstance().api.library[method](id, params).then((results)=>{ + ipcRenderer.send('wsapi-returnMusicKitApi', JSON.stringify(results), method) + }) } else { - MusicKit.getInstance().api[method](id, params).then((results)=>{ - ipcRenderer.send('wsapi-returnMusicKitApi', JSON.stringify(results), method) - }) + MusicKit.getInstance().api[method](id, params).then((results)=>{ + ipcRenderer.send('wsapi-returnMusicKitApi', JSON.stringify(results), method) + }) } }, getPlaybackState () { @@ -81,14 +81,14 @@ const wsapi = { }, playTrackById(id, kind = "song") { - MusicKit.getInstance().setQueue({ [kind]: id }).then(function (queue) { + MusicKit.getInstance().setQueue({ [kind]: id , parameters : {l : app.mklang}}).then(function (queue) { MusicKit.getInstance().play() }) }, quickPlay(term) { // Quick play by song name MusicKit.getInstance().api.search(term, { limit: 2, types: 'songs' }).then(function (data) { - MusicKit.getInstance().setQueue({ song: data["songs"][0]["id"] }).then(function (queue) { + MusicKit.getInstance().setQueue({ song: data["songs"][0]["id"],parameters : {l : app.mklang} }).then(function (queue) { MusicKit.getInstance().play() }) }) @@ -107,5 +107,10 @@ const wsapi = { }else{ MusicKit.getInstance().repeatMode = 0 } + }, + getmaxVolume() { + ipcRenderer.send('wsapi-returnvolumeMax',JSON.stringify(app.cfg.audio.maxVolume)); } -} \ No newline at end of file +} + +export {wsapi} \ No newline at end of file diff --git a/src/renderer/sounds/btn1.ogg b/src/renderer/sounds/btn1.ogg new file mode 100644 index 00000000..f6f75efa Binary files /dev/null and b/src/renderer/sounds/btn1.ogg differ diff --git a/src/renderer/sounds/confirm.ogg b/src/renderer/sounds/confirm.ogg new file mode 100644 index 00000000..c4e3857b Binary files /dev/null and b/src/renderer/sounds/confirm.ogg differ diff --git a/src/renderer/sounds/hover.ogg b/src/renderer/sounds/hover.ogg new file mode 100644 index 00000000..9da1b148 Binary files /dev/null and b/src/renderer/sounds/hover.ogg differ diff --git a/src/renderer/style.css b/src/renderer/style.css new file mode 100644 index 00000000..81ec3918 --- /dev/null +++ b/src/renderer/style.css @@ -0,0 +1,13157 @@ +@import url("assets/fonts/Inter/inter.css"); +@import url("less/bootstrap-vue.min.css"); +@import url("less/codicon.css"); +@font-face { + font-family: 'Noto Sans JP'; + font-style: normal; + font-weight: 100; + font-display: swap; + src: url(https://fonts.gstatic.com/s/notosansjp/v40/-F6ofjtqLzI2JPCgQBnw7HFQoggM.otf) format('opentype'); +} +@font-face { + font-family: 'Noto Sans JP'; + font-style: normal; + font-weight: 300; + font-display: swap; + src: url(https://fonts.gstatic.com/s/notosansjp/v40/-F6pfjtqLzI2JPCgQBnw7HFQaioq1A.otf) format('opentype'); +} +@font-face { + font-family: 'Noto Sans JP'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(https://fonts.gstatic.com/s/notosansjp/v40/-F62fjtqLzI2JPCgQBnw7HFowA.otf) format('opentype'); +} +@font-face { + font-family: 'Noto Sans JP'; + font-style: normal; + font-weight: 500; + font-display: swap; + src: url(https://fonts.gstatic.com/s/notosansjp/v40/-F6pfjtqLzI2JPCgQBnw7HFQMisq1A.otf) format('opentype'); +} +@font-face { + font-family: 'Noto Sans JP'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url(https://fonts.gstatic.com/s/notosansjp/v40/-F6pfjtqLzI2JPCgQBnw7HFQei0q1A.otf) format('opentype'); +} +@font-face { + font-family: 'Noto Sans JP'; + font-style: normal; + font-weight: 900; + font-display: swap; + src: url(https://fonts.gstatic.com/s/notosansjp/v40/-F6pfjtqLzI2JPCgQBnw7HFQQi8q1A.otf) format('opentype'); +} +@font-face { + font-family: 'Noto Sans SC'; + font-style: normal; + font-weight: 100; + font-display: swap; + src: url(https://fonts.gstatic.com/s/notosanssc/v24/k3kJo84MPvpLmixcA63oeALZTYKL.otf) format('opentype'); +} +@font-face { + font-family: 'Noto Sans SC'; + font-style: normal; + font-weight: 300; + font-display: swap; + src: url(https://fonts.gstatic.com/s/notosanssc/v24/k3kIo84MPvpLmixcA63oeALZhaCt9w.otf) format('opentype'); +} +@font-face { + font-family: 'Noto Sans SC'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(https://fonts.gstatic.com/s/notosanssc/v24/k3kXo84MPvpLmixcA63oeALhLw.otf) format('opentype'); +} +@font-face { + font-family: 'Noto Sans SC'; + font-style: normal; + font-weight: 500; + font-display: swap; + src: url(https://fonts.gstatic.com/s/notosanssc/v24/k3kIo84MPvpLmixcA63oeALZ3aGt9w.otf) format('opentype'); +} +@font-face { + font-family: 'Noto Sans SC'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url(https://fonts.gstatic.com/s/notosanssc/v24/k3kIo84MPvpLmixcA63oeALZlaet9w.otf) format('opentype'); +} +@font-face { + font-family: 'Noto Sans SC'; + font-style: normal; + font-weight: 900; + font-display: swap; + src: url(https://fonts.gstatic.com/s/notosanssc/v24/k3kIo84MPvpLmixcA63oeALZraWt9w.otf) format('opentype'); +} +@font-face { + font-family: 'Noto Sans HK'; + font-style: normal; + font-weight: 100; + font-display: swap; + src: url(https://fonts.gstatic.com/s/notosanshk/v19/nKKO-GM_FYFRJvXzVXaAPe9ZUHp1.otf) format('opentype'); +} +@font-face { + font-family: 'Noto Sans HK'; + font-style: normal; + font-weight: 300; + font-display: swap; + src: url(https://fonts.gstatic.com/s/notosanshk/v19/nKKP-GM_FYFRJvXzVXaAPe9ZmFhTHA.otf) format('opentype'); +} +@font-face { + font-family: 'Noto Sans HK'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(https://fonts.gstatic.com/s/notosanshk/v19/nKKQ-GM_FYFRJvXzVXaAPe9hMg.otf) format('opentype'); +} +@font-face { + font-family: 'Noto Sans HK'; + font-style: normal; + font-weight: 500; + font-display: swap; + src: url(https://fonts.gstatic.com/s/notosanshk/v19/nKKP-GM_FYFRJvXzVXaAPe9ZwFlTHA.otf) format('opentype'); +} +@font-face { + font-family: 'Noto Sans HK'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url(https://fonts.gstatic.com/s/notosanshk/v19/nKKP-GM_FYFRJvXzVXaAPe9ZiF9THA.otf) format('opentype'); +} +@font-face { + font-family: 'Noto Sans HK'; + font-style: normal; + font-weight: 900; + font-display: swap; + src: url(https://fonts.gstatic.com/s/notosanshk/v19/nKKP-GM_FYFRJvXzVXaAPe9ZsF1THA.otf) format('opentype'); +} +@font-face { + font-family: 'Noto Sans TC'; + font-style: normal; + font-weight: 100; + font-display: swap; + src: url(https://fonts.gstatic.com/s/notosanstc/v24/-nFlOG829Oofr2wohFbTp9i9WyEJ.otf) format('opentype'); +} +@font-face { + font-family: 'Noto Sans TC'; + font-style: normal; + font-weight: 300; + font-display: swap; + src: url(https://fonts.gstatic.com/s/notosanstc/v24/-nFkOG829Oofr2wohFbTp9i9kwMvDQ.otf) format('opentype'); +} +@font-face { + font-family: 'Noto Sans TC'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(https://fonts.gstatic.com/s/notosanstc/v24/-nF7OG829Oofr2wohFbTp9iFOQ.otf) format('opentype'); +} +@font-face { + font-family: 'Noto Sans TC'; + font-style: normal; + font-weight: 500; + font-display: swap; + src: url(https://fonts.gstatic.com/s/notosanstc/v24/-nFkOG829Oofr2wohFbTp9i9ywIvDQ.otf) format('opentype'); +} +@font-face { + font-family: 'Noto Sans TC'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url(https://fonts.gstatic.com/s/notosanstc/v24/-nFkOG829Oofr2wohFbTp9i9gwQvDQ.otf) format('opentype'); +} +@font-face { + font-family: 'Noto Sans TC'; + font-style: normal; + font-weight: 900; + font-display: swap; + src: url(https://fonts.gstatic.com/s/notosanstc/v24/-nFkOG829Oofr2wohFbTp9i9uwYvDQ.otf) format('opentype'); +} +@font-face { + font-family: 'Noto Sans KR'; + font-style: normal; + font-weight: 100; + font-display: swap; + src: url(https://fonts.gstatic.com/s/notosanskr/v25/Pby6FmXiEBPT4ITbgNA5CgmOsn7u.otf) format('opentype'); +} +@font-face { + font-family: 'Noto Sans KR'; + font-style: normal; + font-weight: 300; + font-display: swap; + src: url(https://fonts.gstatic.com/s/notosanskr/v25/Pby7FmXiEBPT4ITbgNA5CgmOelzI7g.otf) format('opentype'); +} +@font-face { + font-family: 'Noto Sans KR'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(https://fonts.gstatic.com/s/notosanskr/v25/PbykFmXiEBPT4ITbgNA5Cgm20A.otf) format('opentype'); +} +@font-face { + font-family: 'Noto Sans KR'; + font-style: normal; + font-weight: 500; + font-display: swap; + src: url(https://fonts.gstatic.com/s/notosanskr/v25/Pby7FmXiEBPT4ITbgNA5CgmOIl3I7g.otf) format('opentype'); +} +@font-face { + font-family: 'Noto Sans KR'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url(https://fonts.gstatic.com/s/notosanskr/v25/Pby7FmXiEBPT4ITbgNA5CgmOalvI7g.otf) format('opentype'); +} +@font-face { + font-family: 'Noto Sans KR'; + font-style: normal; + font-weight: 900; + font-display: swap; + src: url(https://fonts.gstatic.com/s/notosanskr/v25/Pby7FmXiEBPT4ITbgNA5CgmOUlnI7g.otf) format('opentype'); +} +:root { + --appleEase: cubic-bezier(0.42, 0, 0.58, 1); + --appleTransition: 0.2s var(--appleEase); +} +/* Simple CSS framework for Apple Music Electron */ +.md-labeltext { + font-size: 14px; + text-transform: uppercase; + opacity: 0.75; + font-weight: 500; +} +.md-option-container { + /* border-radius: 10px; */ + overflow: hidden; +} +.md-option-line { + display: flex; + width: 100%; + padding: 14px; + background: var(--opaquePageBGColor); + font-size: 0.85em; +} +.md-option-segment.md-option-segment_auto { + width: auto; + white-space: nowrap; +} +.md-option-container .md-option-line:not(:last-child) { + border-bottom: 1px solid rgba(0, 0, 0, 0.15); +} +input[type="range"].md-slider { + -webkit-appearance: none; + height: 7px; + background: rgba(255, 255, 255, 0.6); + border-radius: 5px; + background-size: 70% 100%; + background-repeat: no-repeat; +} +input[type="range"].md-slider::-webkit-slider-thumb { + -webkit-appearance: none; + height: 20px; + width: 20px; + border-radius: 50%; + background: #ffffff; + cursor: ew-resize; + box-shadow: 0 0 2px 0 #555; +} +input[type=range].md-slider::-webkit-slider-runnable-track { + -webkit-appearance: none; + box-shadow: none; + border: none; + background: transparent; +} +.md-option-header { + padding: 10px; + border-bottom: 1px solid rgba(200, 200, 200, 0.25); + font-weight: 500; + font-size: 0.9em; + background: rgba(255, 255, 255, 0.1); +} +.md-option-segment { + width: 100%; + display: flex; + justify-content: center; + flex-direction: column; +} +.md-h1 { + font-size: 3em; + text-align: center; +} +.md-header { + padding: 16px; +} +.md-header-title { + padding: 18px; + font-weight: 600; + font-size: 16px; + height: 55px; + background: var(--opaquePageBGColor); + border-bottom: 1px solid rgba(0, 0, 0, 0.15); +} +.md-footer { + padding: 16px; + text-align: center; +} +.md-transparent { + background: transparent; +} +.md-container { + display: flex; + flex-direction: column; + height: 100%; + position: absolute; + top: 0px; + left: 0px; + width: 100%; + padding: 32px; +} +.md-container_panel { + padding: 0px; +} +.md-body { + height: 100%; + padding: 16px; + font-size: 1.25em; +} +@media (prefers-color-scheme: light) { + .md-btn { + box-shadow: rgba(0, 0, 0, 0.1) 0px 0px 1px, rgba(0, 0, 0, 0.2) 0px 1px 1px; + border: 1px solid rgba(0, 0, 0, 0.15); + } + .md-close-btn { + background-color: #000; + } +} +/* Vue transitions */ +.fade_simple-enter-active, +.fade_simple-leave-active { + transition: all 0.5s; +} +.fade_simple-enter, +.fade_simple-leave-to { + opacity: 0; +} +.fade-enter-active, +.fade-leave-active { + transition: all 0.5s; +} +.fade-enter, +.fade-leave-to { + opacity: 0; + transform: scale(0.95); +} +/* CSS Grids */ +.container, +.container-fluid, +.container-xxl, +.container-xl, +.container-lg, +.container-md, +.container-sm { + width: 100%; + padding-right: var(--bs-gutter-x, 0.75rem); + padding-left: var(--bs-gutter-x, 0.75rem); + margin-right: auto; + margin-left: auto; +} +.row { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + display: flex; + flex-wrap: wrap; + /*margin-top: calc(-1 * var(--bs-gutter-y));*/ + /*margin-right: calc(-0.5 * var(--bs-gutter-x));*/ + /*margin-left: calc(-0.5 * var(--bs-gutter-x));*/ +} +.row > * { + box-sizing: border-box; + flex-shrink: 0; + width: 100%; + max-width: 100%; + padding-right: calc(var(--bs-gutter-x) * 0.5); + padding-left: calc(var(--bs-gutter-x) * 0.5); + margin-top: var(--bs-gutter-y); +} +.col { + flex: 1 0 0%; +} +.row-cols-auto > * { + flex: 0 0 auto; + width: auto; +} +.row-cols-1 > * { + flex: 0 0 auto; + width: 100%; +} +.row-cols-2 > * { + flex: 0 0 auto; + width: 50%; +} +.row-cols-3 > * { + flex: 0 0 auto; + width: 33.33333333%; +} +.row-cols-4 > * { + flex: 0 0 auto; + width: 25%; +} +.row-cols-5 > * { + flex: 0 0 auto; + width: 20%; +} +.row-cols-6 > * { + flex: 0 0 auto; + width: 16.66666667%; +} +.col-auto { + flex: 0 0 auto; + width: auto; +} +.col-1 { + flex: 0 0 auto; + width: 8.33333333%; +} +.col-2 { + flex: 0 0 auto; + width: 16.66666667%; +} +.col-3 { + flex: 0 0 auto; + width: 25%; +} +.col-4 { + flex: 0 0 auto; + width: 33.33333333%; +} +.col-5 { + flex: 0 0 auto; + width: 41.66666667%; +} +.col-6 { + flex: 0 0 auto; + width: 50%; +} +.col-7 { + flex: 0 0 auto; + width: 58.33333333%; +} +.col-8 { + flex: 0 0 auto; + width: 66.66666667%; +} +.col-9 { + flex: 0 0 auto; + width: 75%; +} +.col-10 { + flex: 0 0 auto; + width: 83.33333333%; +} +.col-11 { + flex: 0 0 auto; + width: 91.66666667%; +} +.col-12 { + flex: 0 0 auto; + width: 100%; +} +.offset-1 { + margin-left: 8.33333333%; +} +.offset-2 { + margin-left: 16.66666667%; +} +.offset-3 { + margin-left: 25%; +} +.offset-4 { + margin-left: 33.33333333%; +} +.offset-5 { + margin-left: 41.66666667%; +} +.offset-6 { + margin-left: 50%; +} +.offset-7 { + margin-left: 58.33333333%; +} +.offset-8 { + margin-left: 66.66666667%; +} +.offset-9 { + margin-left: 75%; +} +.offset-10 { + margin-left: 83.33333333%; +} +.offset-11 { + margin-left: 91.66666667%; +} +.g-0, +.gx-0 { + --bs-gutter-x: 0; +} +.g-0, +.gy-0 { + --bs-gutter-y: 0; +} +.g-1, +.gx-1 { + --bs-gutter-x: 0.25rem; +} +.g-1, +.gy-1 { + --bs-gutter-y: 0.25rem; +} +.g-2, +.gx-2 { + --bs-gutter-x: 0.5rem; +} +.g-2, +.gy-2 { + --bs-gutter-y: 0.5rem; +} +.g-3, +.gx-3 { + --bs-gutter-x: 1rem; +} +.g-3, +.gy-3 { + --bs-gutter-y: 1rem; +} +.g-4, +.gx-4 { + --bs-gutter-x: 1.5rem; +} +.g-4, +.gy-4 { + --bs-gutter-y: 1.5rem; +} +.g-5, +.gx-5 { + --bs-gutter-x: 3rem; +} +.g-5, +.gy-5 { + --bs-gutter-y: 3rem; +} +.d-inline { + display: inline !important; +} +.d-inline-block { + display: inline-block !important; +} +.d-block { + display: block !important; +} +.d-grid { + display: grid !important; +} +.d-table { + display: table !important; +} +.d-table-row { + display: table-row !important; +} +.d-table-cell { + display: table-cell !important; +} +.d-flex { + display: flex !important; +} +.d-inline-flex { + display: inline-flex !important; +} +.d-none { + display: none !important; +} +.flex-fill { + flex: 1 1 auto !important; +} +.flex-row { + flex-direction: row !important; +} +.flex-column { + flex-direction: column !important; +} +.flex-row-reverse { + flex-direction: row-reverse !important; +} +.flex-column-reverse { + flex-direction: column-reverse !important; +} +.flex-grow-0 { + flex-grow: 0 !important; +} +.flex-grow-1 { + flex-grow: 1 !important; +} +.flex-shrink-0 { + flex-shrink: 0 !important; +} +.flex-shrink-1 { + flex-shrink: 1 !important; +} +.flex-wrap { + flex-wrap: wrap !important; +} +.flex-nowrap { + flex-wrap: nowrap !important; +} +.flex-wrap-reverse { + flex-wrap: wrap-reverse !important; +} +.justify-content-start { + justify-content: flex-start !important; +} +.justify-content-end { + justify-content: flex-end !important; +} +.justify-content-center { + justify-content: center !important; +} +.justify-content-between { + justify-content: space-between !important; +} +.justify-content-around { + justify-content: space-around !important; +} +.justify-content-evenly { + justify-content: space-evenly !important; +} +.align-items-start { + align-items: flex-start !important; +} +.align-items-end { + align-items: flex-end !important; +} +.align-items-center { + align-items: center !important; +} +.align-items-baseline { + align-items: baseline !important; +} +.align-items-stretch { + align-items: stretch !important; +} +.align-content-start { + align-content: flex-start !important; +} +.align-content-end { + align-content: flex-end !important; +} +.align-content-center { + align-content: center !important; +} +.align-content-between { + align-content: space-between !important; +} +.align-content-around { + align-content: space-around !important; +} +.align-content-stretch { + align-content: stretch !important; +} +.align-self-auto { + align-self: auto !important; +} +.align-self-start { + align-self: flex-start !important; +} +.align-self-end { + align-self: flex-end !important; +} +.align-self-center { + align-self: center !important; +} +.align-self-baseline { + align-self: baseline !important; +} +.align-self-stretch { + align-self: stretch !important; +} +.order-first { + order: -1 !important; +} +.order-0 { + order: 0 !important; +} +.order-1 { + order: 1 !important; +} +.order-2 { + order: 2 !important; +} +.order-3 { + order: 3 !important; +} +.order-4 { + order: 4 !important; +} +.order-5 { + order: 5 !important; +} +.order-last { + order: 6 !important; +} +.m-0 { + margin: 0 !important; +} +.m-1 { + margin: 0.25rem !important; +} +.m-2 { + margin: 0.5rem !important; +} +.m-3 { + margin: 1rem !important; +} +.m-4 { + margin: 1.5rem !important; +} +.m-5 { + margin: 3rem !important; +} +.m-auto { + margin: auto !important; +} +.mx-0 { + margin-right: 0 !important; + margin-left: 0 !important; +} +.mx-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; +} +.mx-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; +} +.mx-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; +} +.mx-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; +} +.mx-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; +} +.mx-auto { + margin-right: auto !important; + margin-left: auto !important; +} +.my-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; +} +.my-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; +} +.my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; +} +.my-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; +} +.my-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; +} +.my-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; +} +.my-auto { + margin-top: auto !important; + margin-bottom: auto !important; +} +.mt-0 { + margin-top: 0 !important; +} +.mt-1 { + margin-top: 0.25rem !important; +} +.mt-2 { + margin-top: 0.5rem !important; +} +.mt-3 { + margin-top: 1rem !important; +} +.mt-4 { + margin-top: 1.5rem !important; +} +.mt-5 { + margin-top: 3rem !important; +} +.mt-auto { + margin-top: auto !important; +} +.me-0 { + margin-right: 0 !important; +} +.me-1 { + margin-right: 0.25rem !important; +} +.me-2 { + margin-right: 0.5rem !important; +} +.me-3 { + margin-right: 1rem !important; +} +.me-4 { + margin-right: 1.5rem !important; +} +.me-5 { + margin-right: 3rem !important; +} +.me-auto { + margin-right: auto !important; +} +.mb-0 { + margin-bottom: 0 !important; +} +.mb-1 { + margin-bottom: 0.25rem !important; +} +.mb-2 { + margin-bottom: 0.5rem !important; +} +.mb-3 { + margin-bottom: 1rem !important; +} +.mb-4 { + margin-bottom: 1.5rem !important; +} +.mb-5 { + margin-bottom: 3rem !important; +} +.mb-auto { + margin-bottom: auto !important; +} +.ms-0 { + margin-left: 0 !important; +} +.ms-1 { + margin-left: 0.25rem !important; +} +.ms-2 { + margin-left: 0.5rem !important; +} +.ms-3 { + margin-left: 1rem !important; +} +.ms-4 { + margin-left: 1.5rem !important; +} +.ms-5 { + margin-left: 3rem !important; +} +.ms-auto { + margin-left: auto !important; +} +.p-0 { + padding: 0 !important; +} +.p-1 { + padding: 0.25rem !important; +} +.p-2 { + padding: 0.5rem !important; +} +.p-3 { + padding: 1rem !important; +} +.p-4 { + padding: 1.5rem !important; +} +.p-5 { + padding: 3rem !important; +} +.px-0 { + padding-right: 0 !important; + padding-left: 0 !important; +} +.px-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; +} +.px-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; +} +.px-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; +} +.px-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; +} +.px-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; +} +.py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; +} +.py-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; +} +.py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; +} +.py-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; +} +.py-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; +} +.py-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; +} +.pt-0 { + padding-top: 0 !important; +} +.pt-1 { + padding-top: 0.25rem !important; +} +.pt-2 { + padding-top: 0.5rem !important; +} +.pt-3 { + padding-top: 1rem !important; +} +.pt-4 { + padding-top: 1.5rem !important; +} +.pt-5 { + padding-top: 3rem !important; +} +.pe-0 { + padding-right: 0 !important; +} +.pe-1 { + padding-right: 0.25rem !important; +} +.pe-2 { + padding-right: 0.5rem !important; +} +.pe-3 { + padding-right: 1rem !important; +} +.pe-4 { + padding-right: 1.5rem !important; +} +.pe-5 { + padding-right: 3rem !important; +} +.pb-0 { + padding-bottom: 0 !important; +} +.pb-1 { + padding-bottom: 0.25rem !important; +} +.pb-2 { + padding-bottom: 0.5rem !important; +} +.pb-3 { + padding-bottom: 1rem !important; +} +.pb-4 { + padding-bottom: 1.5rem !important; +} +.pb-5 { + padding-bottom: 3rem !important; +} +.ps-0 { + padding-left: 0 !important; +} +.ps-1 { + padding-left: 0.25rem !important; +} +.ps-2 { + padding-left: 0.5rem !important; +} +.ps-3 { + padding-left: 1rem !important; +} +.ps-4 { + padding-left: 1.5rem !important; +} +.ps-5 { + padding-left: 3rem !important; +} +.dropup, +.dropend, +.dropdown, +.dropstart { + position: relative; +} +.dropdown-toggle { + white-space: nowrap; +} +.dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid; + border-right: 0.3em solid transparent; + border-bottom: 0; + border-left: 0.3em solid transparent; +} +.dropdown-toggle:empty::after { + margin-left: 0; +} +.dropdown-menu { + position: absolute; + z-index: 1000; + display: none; + min-width: 10rem; + padding: 0.5rem 0; + margin: 0; + font-size: 1rem; + color: #212529; + text-align: left; + list-style: none; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 0.25rem; +} +.dropdown-menu[data-bs-popper] { + top: 100%; + left: 0; + margin-top: 0.125rem; +} +.dropdown-menu-start { + --bs-position: start; +} +.dropdown-menu-start[data-bs-popper] { + right: auto; + left: 0; +} +.dropdown-menu-end { + --bs-position: end; +} +.dropdown-menu-end[data-bs-popper] { + right: 0; + left: auto; +} +@media (min-width: 576px) { + .dropdown-menu-sm-start { + --bs-position: start; + } + .dropdown-menu-sm-start[data-bs-popper] { + right: auto; + left: 0; + } + .dropdown-menu-sm-end { + --bs-position: end; + } + .dropdown-menu-sm-end[data-bs-popper] { + right: 0; + left: auto; + } +} +@media (min-width: 768px) { + .dropdown-menu-md-start { + --bs-position: start; + } + .dropdown-menu-md-start[data-bs-popper] { + right: auto; + left: 0; + } + .dropdown-menu-md-end { + --bs-position: end; + } + .dropdown-menu-md-end[data-bs-popper] { + right: 0; + left: auto; + } +} +@media (min-width: 992px) { + .dropdown-menu-lg-start { + --bs-position: start; + } + .dropdown-menu-lg-start[data-bs-popper] { + right: auto; + left: 0; + } + .dropdown-menu-lg-end { + --bs-position: end; + } + .dropdown-menu-lg-end[data-bs-popper] { + right: 0; + left: auto; + } +} +@media (min-width: 1200px) { + .dropdown-menu-xl-start { + --bs-position: start; + } + .dropdown-menu-xl-start[data-bs-popper] { + right: auto; + left: 0; + } + .dropdown-menu-xl-end { + --bs-position: end; + } + .dropdown-menu-xl-end[data-bs-popper] { + right: 0; + left: auto; + } +} +@media (min-width: 1400px) { + .dropdown-menu-xxl-start { + --bs-position: start; + } + .dropdown-menu-xxl-start[data-bs-popper] { + right: auto; + left: 0; + } + .dropdown-menu-xxl-end { + --bs-position: end; + } + .dropdown-menu-xxl-end[data-bs-popper] { + right: 0; + left: auto; + } +} +.dropup .dropdown-menu[data-bs-popper] { + top: auto; + bottom: 100%; + margin-top: 0; + margin-bottom: 0.125rem; +} +.dropup .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0; + border-right: 0.3em solid transparent; + border-bottom: 0.3em solid; + border-left: 0.3em solid transparent; +} +.dropup .dropdown-toggle:empty::after { + margin-left: 0; +} +.dropend .dropdown-menu[data-bs-popper] { + top: 0; + right: auto; + left: 100%; + margin-top: 0; + margin-left: 0.125rem; +} +.dropend .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0; + border-bottom: 0.3em solid transparent; + border-left: 0.3em solid; +} +.dropend .dropdown-toggle:empty::after { + margin-left: 0; +} +.dropend .dropdown-toggle::after { + vertical-align: 0; +} +.dropstart .dropdown-menu[data-bs-popper] { + top: 0; + right: 100%; + left: auto; + margin-top: 0; + margin-right: 0.125rem; +} +.dropstart .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; +} +.dropstart .dropdown-toggle::after { + display: none; +} +.dropstart .dropdown-toggle::before { + display: inline-block; + margin-right: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0.3em solid; + border-bottom: 0.3em solid transparent; +} +.dropstart .dropdown-toggle:empty::after { + margin-left: 0; +} +.dropstart .dropdown-toggle::before { + vertical-align: 0; +} +.dropdown-divider { + height: 0; + margin: 0.5rem 0; + overflow: hidden; + border-top: 1px solid rgba(0, 0, 0, 0.15); +} +.dropdown-item { + display: block; + width: 100%; + padding: 0.25rem 1rem; + clear: both; + font-weight: 400; + color: #212529; + text-align: inherit; + text-decoration: none; + white-space: nowrap; + background-color: transparent; + border: 0; +} +.dropdown-item:hover, +.dropdown-item:focus { + color: #1e2125; + background-color: #e9ecef; +} +.dropdown-item.active, +.dropdown-item:active { + color: #fff; + text-decoration: none; + background-color: #0d6efd; +} +.dropdown-item.disabled, +.dropdown-item:disabled { + color: #adb5bd; + pointer-events: none; + background-color: transparent; +} +.dropdown-menu.show { + display: block; +} +.dropdown-header { + display: block; + padding: 0.5rem 1rem; + margin-bottom: 0; + font-size: 0.875rem; + color: #6c757d; + white-space: nowrap; +} +.dropdown-item-text { + display: block; + padding: 0.25rem 1rem; + color: #212529; +} +.dropdown-menu-dark { + color: #dee2e6; + background-color: #343a40; + border-color: rgba(0, 0, 0, 0.15); +} +.dropdown-menu-dark .dropdown-item { + color: #dee2e6; +} +.dropdown-menu-dark .dropdown-item:hover, +.dropdown-menu-dark .dropdown-item:focus { + color: #fff; + background-color: rgba(255, 255, 255, 0.15); +} +.dropdown-menu-dark .dropdown-item.active, +.dropdown-menu-dark .dropdown-item:active { + color: #fff; + background-color: #0d6efd; +} +.dropdown-menu-dark .dropdown-item.disabled, +.dropdown-menu-dark .dropdown-item:disabled { + color: #adb5bd; +} +.dropdown-menu-dark .dropdown-divider { + border-color: rgba(0, 0, 0, 0.15); +} +.dropdown-menu-dark .dropdown-item-text { + color: #dee2e6; +} +.dropdown-menu-dark .dropdown-header { + color: #adb5bd; +} +.list-group { + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + border-radius: 0.25rem; +} +.list-group-numbered { + list-style-type: none; + counter-reset: section; +} +.list-group-numbered > li::before { + content: counters(section, ".") ". "; + counter-increment: section; +} +.list-group-item-action { + width: 100%; + color: #495057; + text-align: inherit; +} +.list-group-item-action:hover, +.list-group-item-action:focus { + z-index: 1; + color: #495057; + text-decoration: none; + background-color: #f8f9fa; +} +.list-group-item-action:active { + color: #212529; + background-color: #e9ecef; +} +.list-group-item { + position: relative; + display: block; + padding: 0.5rem 1rem; + color: #212529; + text-decoration: none; + background-color: #fff; + border: 1px solid rgba(0, 0, 0, 0.125); +} +.list-group-item:first-child { + border-top-left-radius: inherit; + border-top-right-radius: inherit; +} +.list-group-item:last-child { + border-bottom-right-radius: inherit; + border-bottom-left-radius: inherit; +} +.list-group-item.disabled, +.list-group-item:disabled { + color: #6c757d; + pointer-events: none; + background-color: #fff; +} +.list-group-item.active { + z-index: 2; + color: #fff; + background-color: #0d6efd; + border-color: #0d6efd; +} +.list-group-item + .list-group-item { + border-top-width: 0; +} +.list-group-item + .list-group-item.active { + margin-top: -1px; + border-top-width: 1px; +} +.list-group-horizontal { + flex-direction: row; +} +.list-group-horizontal > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; +} +.list-group-horizontal > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; +} +.list-group-horizontal > .list-group-item.active { + margin-top: 0; +} +.list-group-horizontal > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; +} +.list-group-horizontal > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; +} +@media (min-width: 576px) { + .list-group-horizontal-sm { + flex-direction: row; + } + .list-group-horizontal-sm > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-sm > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; + } + .list-group-horizontal-sm > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-sm > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-sm > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} +@media (min-width: 768px) { + .list-group-horizontal-md { + flex-direction: row; + } + .list-group-horizontal-md > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-md > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; + } + .list-group-horizontal-md > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-md > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-md > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} +@media (min-width: 992px) { + .list-group-horizontal-lg { + flex-direction: row; + } + .list-group-horizontal-lg > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-lg > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; + } + .list-group-horizontal-lg > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-lg > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-lg > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} +@media (min-width: 1200px) { + .list-group-horizontal-xl { + flex-direction: row; + } + .list-group-horizontal-xl > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-xl > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; + } + .list-group-horizontal-xl > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-xl > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-xl > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} +@media (min-width: 1400px) { + .list-group-horizontal-xxl { + flex-direction: row; + } + .list-group-horizontal-xxl > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-xxl > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; + } + .list-group-horizontal-xxl > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-xxl > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-xxl > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} +.list-group-flush { + border-radius: 0; +} +.list-group-flush > .list-group-item { + border-width: 0 0 1px; +} +.list-group-flush > .list-group-item:last-child { + border-bottom-width: 0; +} +.list-group-item-primary { + color: #084298; + background-color: #cfe2ff; +} +.list-group-item-primary.list-group-item-action:hover, +.list-group-item-primary.list-group-item-action:focus { + color: #084298; + background-color: #bacbe6; +} +.list-group-item-primary.list-group-item-action.active { + color: #fff; + background-color: #084298; + border-color: #084298; +} +.list-group-item-secondary { + color: #41464b; + background-color: #e2e3e5; +} +.list-group-item-secondary.list-group-item-action:hover, +.list-group-item-secondary.list-group-item-action:focus { + color: #41464b; + background-color: #cbccce; +} +.list-group-item-secondary.list-group-item-action.active { + color: #fff; + background-color: #41464b; + border-color: #41464b; +} +.list-group-item-success { + color: #0f5132; + background-color: #d1e7dd; +} +.list-group-item-success.list-group-item-action:hover, +.list-group-item-success.list-group-item-action:focus { + color: #0f5132; + background-color: #bcd0c7; +} +.list-group-item-success.list-group-item-action.active { + color: #fff; + background-color: #0f5132; + border-color: #0f5132; +} +.list-group-item-info { + color: #055160; + background-color: #cff4fc; +} +.list-group-item-info.list-group-item-action:hover, +.list-group-item-info.list-group-item-action:focus { + color: #055160; + background-color: #badce3; +} +.list-group-item-info.list-group-item-action.active { + color: #fff; + background-color: #055160; + border-color: #055160; +} +.list-group-item-warning { + color: #664d03; + background-color: #fff3cd; +} +.list-group-item-warning.list-group-item-action:hover, +.list-group-item-warning.list-group-item-action:focus { + color: #664d03; + background-color: #e6dbb9; +} +.list-group-item-warning.list-group-item-action.active { + color: #fff; + background-color: #664d03; + border-color: #664d03; +} +.list-group-item-danger { + color: #842029; + background-color: #f8d7da; +} +.list-group-item-danger.list-group-item-action:hover, +.list-group-item-danger.list-group-item-action:focus { + color: #842029; + background-color: #dfc2c4; +} +.list-group-item-danger.list-group-item-action.active { + color: #fff; + background-color: #842029; + border-color: #842029; +} +.list-group-item-light { + color: #636464; + background-color: #fefefe; +} +.list-group-item-light.list-group-item-action:hover, +.list-group-item-light.list-group-item-action:focus { + color: #636464; + background-color: #e5e5e5; +} +.list-group-item-light.list-group-item-action.active { + color: #fff; + background-color: #636464; + border-color: #636464; +} +.list-group-item-dark { + color: var(--textColor); + background-color: #333; +} +.list-group-item-dark.list-group-item-action:hover, +.list-group-item-dark.list-group-item-action:focus { + color: #141619; + background-color: #bebebf; +} +.list-group-item-dark.list-group-item-action.active { + color: #fff; + background-color: #141619; + border-color: #141619; +} +.toast { + width: 350px; + max-width: 100%; + font-size: 0.875rem; + pointer-events: auto; + background-color: rgba(255, 255, 255, 0.85); + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.1); + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + border-radius: 0.25rem; +} +.toast.showing { + opacity: 0; +} +.toast:not(.show) { + display: none; +} +.toast-container { + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; + max-width: 100%; + pointer-events: none; +} +.toast-container > :not(:last-child) { + margin-bottom: 0.75rem; +} +.toast-header { + display: flex; + align-items: center; + padding: 0.5rem 0.75rem; + color: #6c757d; + background-color: rgba(255, 255, 255, 0.85); + background-clip: padding-box; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); +} +.toast-header .btn-close { + margin-right: -0.375rem; + margin-left: 0.75rem; +} +.toast-body { + padding: 0.75rem; + word-wrap: break-word; +} +.card { + position: relative; + display: flex; + flex-direction: column; + min-width: 0; + word-wrap: break-word; + background-color: #333; + background-clip: border-box; + border: 1px solid rgba(0, 0, 0, 0.125); + border-radius: 0.25rem; +} +.card > hr { + margin-right: 0; + margin-left: 0; +} +.card > .list-group { + border-top: inherit; + border-bottom: inherit; +} +.card > .list-group:first-child { + border-top-width: 0; + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); +} +.card > .list-group:last-child { + border-bottom-width: 0; + border-bottom-right-radius: calc(0.25rem - 1px); + border-bottom-left-radius: calc(0.25rem - 1px); +} +.card > .card-header + .list-group, +.card > .list-group + .card-footer { + border-top: 0; +} +.card-body { + flex: 1 1 auto; + padding: 1rem 1rem; +} +.card-title { + margin-bottom: 0.5rem; +} +.card-subtitle { + margin-top: -0.25rem; + margin-bottom: 0; +} +.card-text:last-child { + margin-bottom: 0; +} +.card-link + .card-link { + margin-left: 1rem; +} +.card-header { + padding: 0.5rem 1rem; + margin-bottom: 0; + background-color: rgba(0, 0, 0, 0.03); + border-bottom: 1px solid rgba(0, 0, 0, 0.125); +} +.card-header:first-child { + border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; +} +.card-footer { + padding: 0.5rem 1rem; + background-color: rgba(0, 0, 0, 0.03); + border-top: 1px solid rgba(0, 0, 0, 0.125); +} +.card-footer:last-child { + border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px); +} +.card-header-tabs { + margin-right: -0.5rem; + margin-bottom: -0.5rem; + margin-left: -0.5rem; + border-bottom: 0; +} +.card-header-pills { + margin-right: -0.5rem; + margin-left: -0.5rem; +} +.card-img-overlay { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: 1rem; + border-radius: calc(0.25rem - 1px); +} +.card-img, +.card-img-top, +.card-img-bottom { + width: 100%; +} +.card-img, +.card-img-top { + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); +} +.card-img, +.card-img-bottom { + border-bottom-right-radius: calc(0.25rem - 1px); + border-bottom-left-radius: calc(0.25rem - 1px); +} +.card-group > .card { + margin-bottom: 0.75rem; +} +@media (min-width: 576px) { + .card-group { + display: flex; + flex-flow: row wrap; + } + .card-group > .card { + flex: 1 0 0%; + margin-bottom: 0; + } + .card-group > .card + .card { + margin-left: 0; + border-left: 0; + } + .card-group > .card:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + .card-group > .card:not(:last-child) .card-img-top, + .card-group > .card:not(:last-child) .card-header { + border-top-right-radius: 0; + } + .card-group > .card:not(:last-child) .card-img-bottom, + .card-group > .card:not(:last-child) .card-footer { + border-bottom-right-radius: 0; + } + .card-group > .card:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + .card-group > .card:not(:first-child) .card-img-top, + .card-group > .card:not(:first-child) .card-header { + border-top-left-radius: 0; + } + .card-group > .card:not(:first-child) .card-img-bottom, + .card-group > .card:not(:first-child) .card-footer { + border-bottom-left-radius: 0; + } +} +.modal { + position: fixed; + top: 0; + left: 0; + z-index: 1055; + display: none; + width: 100%; + height: 100%; + overflow-x: hidden; + overflow-y: auto; + outline: 0; + user-select: none; +} +.modal .close { + width: 50px; + height: 42px; + background-image: var(--gfx-closeBtn); + background-position: center; + background-repeat: no-repeat; + -webkit-app-region: no-drag; + appearance: none; + border: 0; + background-color: transparent; + position: absolute; + top: 0; + right: 0; +} +.modal .close:hover { + background-color: #c42b1c; +} +.modal-dialog { + position: relative; + width: auto; + margin: 0.5rem; + pointer-events: none; + color: var(--textColor); +} +.modal.fade .modal-dialog { + transition: transform 0.1s var(--appleEase), opacity 0.1s var(--appleEase); + transform: scale(0.9); + opacity: 0; +} +@media (prefers-reduced-motion: reduce) { + .modal.fade .modal-dialog { + transition: none; + } +} +.modal.show .modal-dialog { + transform: none; + opacity: 1; +} +.modal.modal-static .modal-dialog { + transform: scale(1.02); +} +.modal-dialog-scrollable { + height: calc(100% - 1rem); +} +.modal-dialog-scrollable .modal-content { + max-height: 100%; + overflow: hidden; +} +.modal-dialog-scrollable .modal-body { + overflow-y: auto; +} +.modal-dialog-centered { + display: flex; + align-items: center; + min-height: calc(100% - 1rem); +} +.modal-content { + position: relative; + display: flex; + flex-direction: column; + width: 100%; + pointer-events: auto; + background-color: var(--modalBackground); + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 0.3rem; + outline: 0; + box-shadow: var(--ciderShadow-Generic); + overflow: hidden; +} +.modal-backdrop { + position: fixed; + top: 0; + left: 0; + z-index: 1050; + width: 100vw; + height: 100vh; + background-color: #000; +} +.modal-backdrop.fade { + opacity: 0; +} +.modal-backdrop.show { + opacity: 0.5; +} +.modal-header { + display: flex; + flex-shrink: 0; + align-items: center; + justify-content: space-between; + padding: 1rem 1rem; + border-top-left-radius: calc(0.3rem - 1px); + border-top-right-radius: calc(0.3rem - 1px); +} +.modal-header .btn-close { + padding: 0.5rem 0.5rem; + margin: -0.5rem -0.5rem -0.5rem auto; +} +.modal-title { + line-height: 1.5; + margin: 0; +} +.modal-body { + position: relative; + flex: 1 1 auto; + padding: 3rem 1rem 1rem 1rem; + font-size: 0.9em; +} +.modal-footer { + display: flex; + flex-wrap: wrap; + flex-shrink: 0; + align-items: center; + justify-content: flex-end; + padding: 0.75rem; + border-bottom-right-radius: calc(0.3rem - 1px); + border-bottom-left-radius: calc(0.3rem - 1px); +} +.modal-footer > * { + margin: 0.25rem; +} +@media (min-width: 576px) { + .modal-dialog { + max-width: 500px; + margin: 1.75rem auto; + } + .modal-dialog-scrollable { + height: calc(100% - 3.5rem); + } + .modal-dialog-centered { + min-height: calc(100% - 3.5rem); + } + .modal-sm { + max-width: 300px; + } +} +@media (min-width: 992px) { + .modal-lg, + .modal-xl { + max-width: 800px; + } +} +@media (min-width: 1200px) { + .modal-xl { + max-width: 1140px; + } +} +.modal-fullscreen { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; +} +.modal-fullscreen .modal-content { + height: 100%; + border: 0; + border-radius: 0; +} +.modal-fullscreen .modal-header { + border-radius: 0; +} +.modal-fullscreen .modal-body { + overflow-y: auto; +} +.modal-fullscreen .modal-footer { + border-radius: 0; +} +@media (max-width: 575.98px) { + .modal-fullscreen-sm-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-sm-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-sm-down .modal-header { + border-radius: 0; + } + .modal-fullscreen-sm-down .modal-body { + overflow-y: auto; + } + .modal-fullscreen-sm-down .modal-footer { + border-radius: 0; + } +} +@media (max-width: 767.98px) { + .modal-fullscreen-md-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-md-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-md-down .modal-header { + border-radius: 0; + } + .modal-fullscreen-md-down .modal-body { + overflow-y: auto; + } + .modal-fullscreen-md-down .modal-footer { + border-radius: 0; + } +} +@media (max-width: 991.98px) { + .modal-fullscreen-lg-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-lg-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-lg-down .modal-header { + border-radius: 0; + } + .modal-fullscreen-lg-down .modal-body { + overflow-y: auto; + } + .modal-fullscreen-lg-down .modal-footer { + border-radius: 0; + } +} +@media (max-width: 1199.98px) { + .modal-fullscreen-xl-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-xl-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-xl-down .modal-header { + border-radius: 0; + } + .modal-fullscreen-xl-down .modal-body { + overflow-y: auto; + } + .modal-fullscreen-xl-down .modal-footer { + border-radius: 0; + } +} +@media (max-width: 1399.98px) { + .modal-fullscreen-xxl-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-xxl-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-xxl-down .modal-header { + border-radius: 0; + } + .modal-fullscreen-xxl-down .modal-body { + overflow-y: auto; + } + .modal-fullscreen-xxl-down .modal-footer { + border-radius: 0; + } +} +.btn { + display: inline-block; + font-weight: 400; + line-height: 1.5; + color: #212529; + text-align: center; + text-decoration: none; + vertical-align: middle; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + background-color: transparent; + border: 1px solid transparent; + padding: 0.375rem 0.75rem; + font-size: 1rem; + border-radius: 0.25rem; + font-family: inherit; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .btn { + transition: none; + } +} +.btn:hover { + color: #212529; +} +.btn-check:focus + .btn, +.btn:focus { + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} +.btn:disabled, +.btn.disabled, +fieldset:disabled .btn { + pointer-events: none; + opacity: 0.65; +} +.btn-primary { + color: #fff; + background-color: #0d6efd; + border-color: #0d6efd; +} +.btn-primary:hover { + color: #fff; + background-color: #0b5ed7; + border-color: #0a58ca; +} +.btn-check:focus + .btn-primary, +.btn-primary:focus { + color: #fff; + background-color: #0b5ed7; + border-color: #0a58ca; + box-shadow: 0 0 0 0.25rem rgba(49, 132, 253, 0.5); +} +.btn-check:checked + .btn-primary, +.btn-check:active + .btn-primary, +.btn-primary:active, +.btn-primary.active, +.show > .btn-primary.dropdown-toggle { + color: #fff; + background-color: #0a58ca; + border-color: #0a53be; +} +.btn-check:checked + .btn-primary:focus, +.btn-check:active + .btn-primary:focus, +.btn-primary:active:focus, +.btn-primary.active:focus, +.show > .btn-primary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.25rem rgba(49, 132, 253, 0.5); +} +.btn-primary:disabled, +.btn-primary.disabled { + color: #fff; + background-color: #0d6efd; + border-color: #0d6efd; +} +.btn-secondary { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} +.btn-secondary:hover { + color: #fff; + background-color: #5c636a; + border-color: #565e64; +} +.btn-check:focus + .btn-secondary, +.btn-secondary:focus { + color: #fff; + background-color: #5c636a; + border-color: #565e64; + box-shadow: 0 0 0 0.25rem rgba(130, 138, 145, 0.5); +} +.btn-check:checked + .btn-secondary, +.btn-check:active + .btn-secondary, +.btn-secondary:active, +.btn-secondary.active, +.show > .btn-secondary.dropdown-toggle { + color: #fff; + background-color: #565e64; + border-color: #51585e; +} +.btn-check:checked + .btn-secondary:focus, +.btn-check:active + .btn-secondary:focus, +.btn-secondary:active:focus, +.btn-secondary.active:focus, +.show > .btn-secondary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.25rem rgba(130, 138, 145, 0.5); +} +.btn-secondary:disabled, +.btn-secondary.disabled { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} +.btn-success { + color: #fff; + background-color: #198754; + border-color: #198754; +} +.btn-success:hover { + color: #fff; + background-color: #157347; + border-color: #146c43; +} +.btn-check:focus + .btn-success, +.btn-success:focus { + color: #fff; + background-color: #157347; + border-color: #146c43; + box-shadow: 0 0 0 0.25rem rgba(60, 153, 110, 0.5); +} +.btn-check:checked + .btn-success, +.btn-check:active + .btn-success, +.btn-success:active, +.btn-success.active, +.show > .btn-success.dropdown-toggle { + color: #fff; + background-color: #146c43; + border-color: #13653f; +} +.btn-check:checked + .btn-success:focus, +.btn-check:active + .btn-success:focus, +.btn-success:active:focus, +.btn-success.active:focus, +.show > .btn-success.dropdown-toggle:focus { + box-shadow: 0 0 0 0.25rem rgba(60, 153, 110, 0.5); +} +.btn-success:disabled, +.btn-success.disabled { + color: #fff; + background-color: #198754; + border-color: #198754; +} +.btn-info { + color: #000; + background-color: #0dcaf0; + border-color: #0dcaf0; +} +.btn-info:hover { + color: #000; + background-color: #31d2f2; + border-color: #25cff2; +} +.btn-check:focus + .btn-info, +.btn-info:focus { + color: #000; + background-color: #31d2f2; + border-color: #25cff2; + box-shadow: 0 0 0 0.25rem rgba(11, 172, 204, 0.5); +} +.btn-check:checked + .btn-info, +.btn-check:active + .btn-info, +.btn-info:active, +.btn-info.active, +.show > .btn-info.dropdown-toggle { + color: #000; + background-color: #3dd5f3; + border-color: #25cff2; +} +.btn-check:checked + .btn-info:focus, +.btn-check:active + .btn-info:focus, +.btn-info:active:focus, +.btn-info.active:focus, +.show > .btn-info.dropdown-toggle:focus { + box-shadow: 0 0 0 0.25rem rgba(11, 172, 204, 0.5); +} +.btn-info:disabled, +.btn-info.disabled { + color: #000; + background-color: #0dcaf0; + border-color: #0dcaf0; +} +.btn-warning { + color: #000; + background-color: #ffc107; + border-color: #ffc107; +} +.btn-warning:hover { + color: #000; + background-color: #ffca2c; + border-color: #ffc720; +} +.btn-check:focus + .btn-warning, +.btn-warning:focus { + color: #000; + background-color: #ffca2c; + border-color: #ffc720; + box-shadow: 0 0 0 0.25rem rgba(217, 164, 6, 0.5); +} +.btn-check:checked + .btn-warning, +.btn-check:active + .btn-warning, +.btn-warning:active, +.btn-warning.active, +.show > .btn-warning.dropdown-toggle { + color: #000; + background-color: #ffcd39; + border-color: #ffc720; +} +.btn-check:checked + .btn-warning:focus, +.btn-check:active + .btn-warning:focus, +.btn-warning:active:focus, +.btn-warning.active:focus, +.show > .btn-warning.dropdown-toggle:focus { + box-shadow: 0 0 0 0.25rem rgba(217, 164, 6, 0.5); +} +.btn-warning:disabled, +.btn-warning.disabled { + color: #000; + background-color: #ffc107; + border-color: #ffc107; +} +.btn-danger { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} +.btn-danger:hover { + color: #fff; + background-color: #bb2d3b; + border-color: #b02a37; +} +.btn-check:focus + .btn-danger, +.btn-danger:focus { + color: #fff; + background-color: #bb2d3b; + border-color: #b02a37; + box-shadow: 0 0 0 0.25rem rgba(225, 83, 97, 0.5); +} +.btn-check:checked + .btn-danger, +.btn-check:active + .btn-danger, +.btn-danger:active, +.btn-danger.active, +.show > .btn-danger.dropdown-toggle { + color: #fff; + background-color: #b02a37; + border-color: #a52834; +} +.btn-check:checked + .btn-danger:focus, +.btn-check:active + .btn-danger:focus, +.btn-danger:active:focus, +.btn-danger.active:focus, +.show > .btn-danger.dropdown-toggle:focus { + box-shadow: 0 0 0 0.25rem rgba(225, 83, 97, 0.5); +} +.btn-danger:disabled, +.btn-danger.disabled { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} +.btn-light { + color: #000; + background-color: #f8f9fa; + border-color: #f8f9fa; +} +.btn-light:hover { + color: #000; + background-color: #f9fafb; + border-color: #f9fafb; +} +.btn-check:focus + .btn-light, +.btn-light:focus { + color: #000; + background-color: #f9fafb; + border-color: #f9fafb; + box-shadow: 0 0 0 0.25rem rgba(211, 212, 213, 0.5); +} +.btn-check:checked + .btn-light, +.btn-check:active + .btn-light, +.btn-light:active, +.btn-light.active, +.show > .btn-light.dropdown-toggle { + color: #000; + background-color: #f9fafb; + border-color: #f9fafb; +} +.btn-check:checked + .btn-light:focus, +.btn-check:active + .btn-light:focus, +.btn-light:active:focus, +.btn-light.active:focus, +.show > .btn-light.dropdown-toggle:focus { + box-shadow: 0 0 0 0.25rem rgba(211, 212, 213, 0.5); +} +.btn-light:disabled, +.btn-light.disabled { + color: #000; + background-color: #f8f9fa; + border-color: #f8f9fa; +} +.btn-dark { + color: #fff; + background-color: #212529; + border-color: #212529; +} +.btn-dark:hover { + color: #fff; + background-color: #1c1f23; + border-color: #1a1e21; +} +.btn-check:focus + .btn-dark, +.btn-dark:focus { + color: #fff; + background-color: #1c1f23; + border-color: #1a1e21; + box-shadow: 0 0 0 0.25rem rgba(66, 70, 73, 0.5); +} +.btn-check:checked + .btn-dark, +.btn-check:active + .btn-dark, +.btn-dark:active, +.btn-dark.active, +.show > .btn-dark.dropdown-toggle { + color: #fff; + background-color: #1a1e21; + border-color: #191c1f; +} +.btn-check:checked + .btn-dark:focus, +.btn-check:active + .btn-dark:focus, +.btn-dark:active:focus, +.btn-dark.active:focus, +.show > .btn-dark.dropdown-toggle:focus { + box-shadow: 0 0 0 0.25rem rgba(66, 70, 73, 0.5); +} +.btn-dark:disabled, +.btn-dark.disabled { + color: #fff; + background-color: #212529; + border-color: #212529; +} +.btn-outline-primary { + color: #0d6efd; + border-color: #0d6efd; +} +.btn-outline-primary:hover { + color: #fff; + background-color: #0d6efd; + border-color: #0d6efd; +} +.btn-check:focus + .btn-outline-primary, +.btn-outline-primary:focus { + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.5); +} +.btn-check:checked + .btn-outline-primary, +.btn-check:active + .btn-outline-primary, +.btn-outline-primary:active, +.btn-outline-primary.active, +.btn-outline-primary.dropdown-toggle.show { + color: #fff; + background-color: #0d6efd; + border-color: #0d6efd; +} +.btn-check:checked + .btn-outline-primary:focus, +.btn-check:active + .btn-outline-primary:focus, +.btn-outline-primary:active:focus, +.btn-outline-primary.active:focus, +.btn-outline-primary.dropdown-toggle.show:focus { + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.5); +} +.btn-outline-primary:disabled, +.btn-outline-primary.disabled { + color: #0d6efd; + background-color: transparent; +} +.btn-outline-secondary { + color: #6c757d; + border-color: #6c757d; +} +.btn-outline-secondary:hover { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} +.btn-check:focus + .btn-outline-secondary, +.btn-outline-secondary:focus { + box-shadow: 0 0 0 0.25rem rgba(108, 117, 125, 0.5); +} +.btn-check:checked + .btn-outline-secondary, +.btn-check:active + .btn-outline-secondary, +.btn-outline-secondary:active, +.btn-outline-secondary.active, +.btn-outline-secondary.dropdown-toggle.show { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} +.btn-check:checked + .btn-outline-secondary:focus, +.btn-check:active + .btn-outline-secondary:focus, +.btn-outline-secondary:active:focus, +.btn-outline-secondary.active:focus, +.btn-outline-secondary.dropdown-toggle.show:focus { + box-shadow: 0 0 0 0.25rem rgba(108, 117, 125, 0.5); +} +.btn-outline-secondary:disabled, +.btn-outline-secondary.disabled { + color: #6c757d; + background-color: transparent; +} +.btn-outline-success { + color: #198754; + border-color: #198754; +} +.btn-outline-success:hover { + color: #fff; + background-color: #198754; + border-color: #198754; +} +.btn-check:focus + .btn-outline-success, +.btn-outline-success:focus { + box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.5); +} +.btn-check:checked + .btn-outline-success, +.btn-check:active + .btn-outline-success, +.btn-outline-success:active, +.btn-outline-success.active, +.btn-outline-success.dropdown-toggle.show { + color: #fff; + background-color: #198754; + border-color: #198754; +} +.btn-check:checked + .btn-outline-success:focus, +.btn-check:active + .btn-outline-success:focus, +.btn-outline-success:active:focus, +.btn-outline-success.active:focus, +.btn-outline-success.dropdown-toggle.show:focus { + box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.5); +} +.btn-outline-success:disabled, +.btn-outline-success.disabled { + color: #198754; + background-color: transparent; +} +.btn-outline-info { + color: #0dcaf0; + border-color: #0dcaf0; +} +.btn-outline-info:hover { + color: #000; + background-color: #0dcaf0; + border-color: #0dcaf0; +} +.btn-check:focus + .btn-outline-info, +.btn-outline-info:focus { + box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.5); +} +.btn-check:checked + .btn-outline-info, +.btn-check:active + .btn-outline-info, +.btn-outline-info:active, +.btn-outline-info.active, +.btn-outline-info.dropdown-toggle.show { + color: #000; + background-color: #0dcaf0; + border-color: #0dcaf0; +} +.btn-check:checked + .btn-outline-info:focus, +.btn-check:active + .btn-outline-info:focus, +.btn-outline-info:active:focus, +.btn-outline-info.active:focus, +.btn-outline-info.dropdown-toggle.show:focus { + box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.5); +} +.btn-outline-info:disabled, +.btn-outline-info.disabled { + color: #0dcaf0; + background-color: transparent; +} +.btn-outline-warning { + color: #ffc107; + border-color: #ffc107; +} +.btn-outline-warning:hover { + color: #000; + background-color: #ffc107; + border-color: #ffc107; +} +.btn-check:focus + .btn-outline-warning, +.btn-outline-warning:focus { + box-shadow: 0 0 0 0.25rem rgba(255, 193, 7, 0.5); +} +.btn-check:checked + .btn-outline-warning, +.btn-check:active + .btn-outline-warning, +.btn-outline-warning:active, +.btn-outline-warning.active, +.btn-outline-warning.dropdown-toggle.show { + color: #000; + background-color: #ffc107; + border-color: #ffc107; +} +.btn-check:checked + .btn-outline-warning:focus, +.btn-check:active + .btn-outline-warning:focus, +.btn-outline-warning:active:focus, +.btn-outline-warning.active:focus, +.btn-outline-warning.dropdown-toggle.show:focus { + box-shadow: 0 0 0 0.25rem rgba(255, 193, 7, 0.5); +} +.btn-outline-warning:disabled, +.btn-outline-warning.disabled { + color: #ffc107; + background-color: transparent; +} +.btn-outline-danger { + color: #dc3545; + border-color: #dc3545; +} +.btn-outline-danger:hover { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} +.btn-check:focus + .btn-outline-danger, +.btn-outline-danger:focus { + box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.5); +} +.btn-check:checked + .btn-outline-danger, +.btn-check:active + .btn-outline-danger, +.btn-outline-danger:active, +.btn-outline-danger.active, +.btn-outline-danger.dropdown-toggle.show { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} +.btn-check:checked + .btn-outline-danger:focus, +.btn-check:active + .btn-outline-danger:focus, +.btn-outline-danger:active:focus, +.btn-outline-danger.active:focus, +.btn-outline-danger.dropdown-toggle.show:focus { + box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.5); +} +.btn-outline-danger:disabled, +.btn-outline-danger.disabled { + color: #dc3545; + background-color: transparent; +} +.btn-outline-light { + color: #f8f9fa; + border-color: #f8f9fa; +} +.btn-outline-light:hover { + color: #000; + background-color: #f8f9fa; + border-color: #f8f9fa; +} +.btn-check:focus + .btn-outline-light, +.btn-outline-light:focus { + box-shadow: 0 0 0 0.25rem rgba(248, 249, 250, 0.5); +} +.btn-check:checked + .btn-outline-light, +.btn-check:active + .btn-outline-light, +.btn-outline-light:active, +.btn-outline-light.active, +.btn-outline-light.dropdown-toggle.show { + color: #000; + background-color: #f8f9fa; + border-color: #f8f9fa; +} +.btn-check:checked + .btn-outline-light:focus, +.btn-check:active + .btn-outline-light:focus, +.btn-outline-light:active:focus, +.btn-outline-light.active:focus, +.btn-outline-light.dropdown-toggle.show:focus { + box-shadow: 0 0 0 0.25rem rgba(248, 249, 250, 0.5); +} +.btn-outline-light:disabled, +.btn-outline-light.disabled { + color: #f8f9fa; + background-color: transparent; +} +.btn-outline-dark { + color: #212529; + border-color: #212529; +} +.btn-outline-dark:hover { + color: #fff; + background-color: #212529; + border-color: #212529; +} +.btn-check:focus + .btn-outline-dark, +.btn-outline-dark:focus { + box-shadow: 0 0 0 0.25rem rgba(33, 37, 41, 0.5); +} +.btn-check:checked + .btn-outline-dark, +.btn-check:active + .btn-outline-dark, +.btn-outline-dark:active, +.btn-outline-dark.active, +.btn-outline-dark.dropdown-toggle.show { + color: #fff; + background-color: #212529; + border-color: #212529; +} +.btn-check:checked + .btn-outline-dark:focus, +.btn-check:active + .btn-outline-dark:focus, +.btn-outline-dark:active:focus, +.btn-outline-dark.active:focus, +.btn-outline-dark.dropdown-toggle.show:focus { + box-shadow: 0 0 0 0.25rem rgba(33, 37, 41, 0.5); +} +.btn-outline-dark:disabled, +.btn-outline-dark.disabled { + color: #212529; + background-color: transparent; +} +.btn-link { + font-weight: 400; + color: #0d6efd; + text-decoration: underline; +} +.btn-link:hover { + color: #0a58ca; +} +.btn-link:disabled, +.btn-link.disabled { + color: #6c757d; +} +.btn-lg, +.btn-group-lg > .btn { + padding: 0.5rem 1rem; + font-size: 1.25rem; + border-radius: 0.3rem; +} +.btn-sm, +.btn-group-sm > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + border-radius: 0.2rem; +} +.form-control { + width: 100%; +} +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-flex; + vertical-align: middle; +} +.btn-group > .btn, +.btn-group-vertical > .btn { + position: relative; + flex: 1 1 auto; +} +.btn-group > .btn-check:checked + .btn, +.btn-group > .btn-check:focus + .btn, +.btn-group > .btn:hover, +.btn-group > .btn:focus, +.btn-group > .btn:active, +.btn-group > .btn.active, +.btn-group-vertical > .btn-check:checked + .btn, +.btn-group-vertical > .btn-check:focus + .btn, +.btn-group-vertical > .btn:hover, +.btn-group-vertical > .btn:focus, +.btn-group-vertical > .btn:active, +.btn-group-vertical > .btn.active { + z-index: 1; +} +.btn-toolbar { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; +} +.btn-toolbar .input-group { + width: auto; +} +.btn-group > .btn:not(:first-child), +.btn-group > .btn-group:not(:first-child) { + margin-left: -1px; +} +.btn-group > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group > .btn-group:not(:last-child) > .btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.btn-group > .btn:nth-child(n+3), +.btn-group > :not(.btn-check) + .btn, +.btn-group > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.dropdown-toggle-split { + padding-right: 0.5625rem; + padding-left: 0.5625rem; +} +.dropdown-toggle-split::after, +.dropup .dropdown-toggle-split::after, +.dropend .dropdown-toggle-split::after { + margin-left: 0; +} +.dropstart .dropdown-toggle-split::before { + margin-right: 0; +} +.btn-sm + .dropdown-toggle-split, +.btn-group-sm > .btn + .dropdown-toggle-split { + padding-right: 0.375rem; + padding-left: 0.375rem; +} +.btn-lg + .dropdown-toggle-split, +.btn-group-lg > .btn + .dropdown-toggle-split { + padding-right: 0.75rem; + padding-left: 0.75rem; +} +.btn-group-vertical { + flex-direction: column; + align-items: flex-start; + justify-content: center; +} +.btn-group-vertical > .btn, +.btn-group-vertical > .btn-group { + width: 100%; +} +.btn-group-vertical > .btn:not(:first-child), +.btn-group-vertical > .btn-group:not(:first-child) { + margin-top: -1px; +} +.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group-vertical > .btn-group:not(:last-child) > .btn { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group-vertical > .btn ~ .btn, +.btn-group-vertical > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.table { + --bs-table-bg: transparent; + --bs-table-accent-bg: transparent; + --bs-table-striped-color: #212529; + --bs-table-striped-bg: rgba(0, 0, 0, 0.05); + --bs-table-active-color: #212529; + --bs-table-active-bg: rgba(0, 0, 0, 0.1); + --bs-table-hover-color: #212529; + --bs-table-hover-bg: rgba(0, 0, 0, 0.075); + width: 100%; + margin-bottom: 1rem; + color: #212529; + vertical-align: top; + border-color: #dee2e6; +} +.table > :not(caption) > * > * { + padding: 0.5rem 0.5rem; + background-color: var(--bs-table-bg); + border-bottom-width: 1px; + box-shadow: inset 0 0 0 9999px var(--bs-table-accent-bg); +} +.table > tbody { + vertical-align: inherit; +} +.table > thead { + vertical-align: bottom; +} +.table > :not(:first-child) { + border-top: 2px solid currentColor; +} +.caption-top { + caption-side: top; +} +.table-sm > :not(caption) > * > * { + padding: 0.25rem 0.25rem; +} +.table-bordered > :not(caption) > * { + border-width: 1px 0; +} +.table-bordered > :not(caption) > * > * { + border-width: 0 1px; +} +.table-borderless > :not(caption) > * > * { + border-bottom-width: 0; +} +.table-borderless > :not(:first-child) { + border-top-width: 0; +} +.table-striped > tbody > tr:nth-of-type(odd) > * { + --bs-table-accent-bg: var(--bs-table-striped-bg); + color: var(--bs-table-striped-color); +} +.table-active { + --bs-table-accent-bg: var(--bs-table-active-bg); + color: var(--bs-table-active-color); +} +.table-hover > tbody > tr:hover > * { + --bs-table-accent-bg: var(--bs-table-hover-bg); + color: var(--bs-table-hover-color); +} +.table-primary { + --bs-table-bg: #cfe2ff; + --bs-table-striped-bg: #c5d7f2; + --bs-table-striped-color: #000; + --bs-table-active-bg: #bacbe6; + --bs-table-active-color: #000; + --bs-table-hover-bg: #bfd1ec; + --bs-table-hover-color: #000; + color: #000; + border-color: #bacbe6; +} +.table-secondary { + --bs-table-bg: #e2e3e5; + --bs-table-striped-bg: #d7d8da; + --bs-table-striped-color: #000; + --bs-table-active-bg: #cbccce; + --bs-table-active-color: #000; + --bs-table-hover-bg: #d1d2d4; + --bs-table-hover-color: #000; + color: #000; + border-color: #cbccce; +} +.table-success { + --bs-table-bg: #d1e7dd; + --bs-table-striped-bg: #c7dbd2; + --bs-table-striped-color: #000; + --bs-table-active-bg: #bcd0c7; + --bs-table-active-color: #000; + --bs-table-hover-bg: #c1d6cc; + --bs-table-hover-color: #000; + color: #000; + border-color: #bcd0c7; +} +.table-info { + --bs-table-bg: #cff4fc; + --bs-table-striped-bg: #c5e8ef; + --bs-table-striped-color: #000; + --bs-table-active-bg: #badce3; + --bs-table-active-color: #000; + --bs-table-hover-bg: #bfe2e9; + --bs-table-hover-color: #000; + color: #000; + border-color: #badce3; +} +.table-warning { + --bs-table-bg: #fff3cd; + --bs-table-striped-bg: #f2e7c3; + --bs-table-striped-color: #000; + --bs-table-active-bg: #e6dbb9; + --bs-table-active-color: #000; + --bs-table-hover-bg: #ece1be; + --bs-table-hover-color: #000; + color: #000; + border-color: #e6dbb9; +} +.table-danger { + --bs-table-bg: #f8d7da; + --bs-table-striped-bg: #eccccf; + --bs-table-striped-color: #000; + --bs-table-active-bg: #dfc2c4; + --bs-table-active-color: #000; + --bs-table-hover-bg: #e5c7ca; + --bs-table-hover-color: #000; + color: #000; + border-color: #dfc2c4; +} +.table-light { + --bs-table-bg: #f8f9fa; + --bs-table-striped-bg: #ecedee; + --bs-table-striped-color: #000; + --bs-table-active-bg: #dfe0e1; + --bs-table-active-color: #000; + --bs-table-hover-bg: #e5e6e7; + --bs-table-hover-color: #000; + color: #000; + border-color: #dfe0e1; +} +.table-dark { + --bs-table-bg: #212529; + --bs-table-striped-bg: #2c3034; + --bs-table-striped-color: #fff; + --bs-table-active-bg: #373b3e; + --bs-table-active-color: #fff; + --bs-table-hover-bg: #323539; + --bs-table-hover-color: #fff; + color: #fff; + border-color: #373b3e; +} +.table-responsive { + overflow-x: auto; + -webkit-overflow-scrolling: touch; +} +@media (max-width: 575.98px) { + .table-responsive-sm { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +@media (max-width: 767.98px) { + .table-responsive-md { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +@media (max-width: 991.98px) { + .table-responsive-lg { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +@media (max-width: 1199.98px) { + .table-responsive-xl { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +@media (max-width: 1399.98px) { + .table-responsive-xxl { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +.nav-tabs { + border-bottom: 1px solid #dee2e6; +} +.nav-tabs .nav-link { + margin-bottom: -1px; + background: none; + border: 1px solid transparent; + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} +.nav-tabs .nav-link:hover, +.nav-tabs .nav-link:focus { + border-color: #e9ecef #e9ecef #dee2e6; + isolation: isolate; +} +.nav-tabs .nav-link.disabled { + color: #6c757d; + background-color: transparent; + border-color: transparent; +} +.nav-tabs .nav-link.active, +.nav-tabs .nav-item.show .nav-link { + color: #495057; + background-color: #fff; + border-color: #dee2e6 #dee2e6 #fff; +} +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.nav-pills .nav-link { + background: none; + border: 0; + border-radius: 0.25rem; +} +.nav-pills .nav-link.active, +.nav-pills .show > .nav-link { + color: #fff; + background-color: #0d6efd; +} +.nav-fill > .nav-link, +.nav-fill .nav-item { + flex: 1 1 auto; + text-align: center; +} +.nav-justified > .nav-link, +.nav-justified .nav-item { + flex-basis: 0; + flex-grow: 1; + text-align: center; +} +.nav-fill .nav-item .nav-link, +.nav-justified .nav-item .nav-link { + width: 100%; +} +.tab-content > .tab-pane { + display: none; +} +.tab-content > .active { + display: block; +} +/*! + * Bootstrap Grid v5.1.1 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors + * Copyright 2011-2021 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +:root { + --bs-blue: #0d6efd; + --bs-indigo: #6610f2; + --bs-purple: #6f42c1; + --bs-pink: #d63384; + --bs-red: #dc3545; + --bs-orange: #fd7e14; + --bs-yellow: #ffc107; + --bs-green: #198754; + --bs-teal: #20c997; + --bs-cyan: #0dcaf0; + --bs-white: #fff; + --bs-gray: #6c757d; + --bs-gray-dark: #343a40; + --bs-gray-100: #f8f9fa; + --bs-gray-200: #e9ecef; + --bs-gray-300: #dee2e6; + --bs-gray-400: #ced4da; + --bs-gray-500: #adb5bd; + --bs-gray-600: #6c757d; + --bs-gray-700: #495057; + --bs-gray-800: #343a40; + --bs-gray-900: #212529; + --bs-primary: #0d6efd; + --bs-secondary: #6c757d; + --bs-success: #198754; + --bs-info: #0dcaf0; + --bs-warning: #ffc107; + --bs-danger: #dc3545; + --bs-light: #f8f9fa; + --bs-dark: #212529; + --bs-primary-rgb: 13, 110, 253; + --bs-secondary-rgb: 108, 117, 125; + --bs-success-rgb: 25, 135, 84; + --bs-info-rgb: 13, 202, 240; + --bs-warning-rgb: 255, 193, 7; + --bs-danger-rgb: 220, 53, 69; + --bs-light-rgb: 248, 249, 250; + --bs-dark-rgb: 33, 37, 41; + --bs-white-rgb: 255, 255, 255; + --bs-black-rgb: 0, 0, 0; + --bs-body-color-rgb: 33, 37, 41; + --bs-body-bg-rgb: 255, 255, 255; + --bs-font-sans-serif: inherit; + --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0)); + --bs-body-font-family: inherit; + --bs-body-font-size: 1rem; + --bs-body-font-weight: 400; + --bs-body-line-height: 1.5; + --bs-body-color: #212529; + --bs-body-bg: #fff; +} +.container, +.container-fluid, +.container-xxl, +.container-xl, +.container-lg, +.container-md, +.container-sm { + width: 100%; + padding-right: var(--bs-gutter-x, 0.75rem); + padding-left: var(--bs-gutter-x, 0.75rem); + margin-right: auto; + margin-left: auto; +} +@media (min-width: 576px) { + .container-sm, + .container { + max-width: 540px; + } +} +@media (min-width: 768px) { + .container-md, + .container-sm, + .container { + max-width: 720px; + } +} +@media (min-width: 992px) { + .container-lg, + .container-md, + .container-sm, + .container { + max-width: 960px; + } +} +@media (min-width: 1200px) { + .container-xl, + .container-lg, + .container-md, + .container-sm, + .container { + max-width: 1140px; + } +} +@media (min-width: 1400px) { + .container-xxl, + .container-xl, + .container-lg, + .container-md, + .container-sm, + .container { + max-width: 1320px; + } +} +.col { + flex: 1 0 0%; +} +.row-cols-auto > * { + flex: 0 0 auto; + width: auto; +} +.row-cols-1 > * { + flex: 0 0 auto; + width: 100%; +} +.row-cols-2 > * { + flex: 0 0 auto; + width: 50%; +} +.row-cols-3 > * { + flex: 0 0 auto; + width: 33.33333333%; +} +.row-cols-4 > * { + flex: 0 0 auto; + width: 25%; +} +.row-cols-5 > * { + flex: 0 0 auto; + width: 20%; +} +.row-cols-6 > * { + flex: 0 0 auto; + width: 16.66666667%; +} +.col-auto { + flex: 0 0 auto; + width: auto; +} +.col-1 { + flex: 0 0 auto; + width: 8.33333333%; +} +.col-2 { + flex: 0 0 auto; + width: 16.66666667%; +} +.col-3 { + flex: 0 0 auto; + width: 25%; +} +.col-4 { + flex: 0 0 auto; + width: 33.33333333%; +} +.col-5 { + flex: 0 0 auto; + width: 41.66666667%; +} +.col-6 { + flex: 0 0 auto; + width: 50%; +} +.col-7 { + flex: 0 0 auto; + width: 58.33333333%; +} +.col-8 { + flex: 0 0 auto; + width: 66.66666667%; +} +.col-9 { + flex: 0 0 auto; + width: 75%; +} +.col-10 { + flex: 0 0 auto; + width: 83.33333333%; +} +.col-11 { + flex: 0 0 auto; + width: 91.66666667%; +} +.col-12 { + flex: 0 0 auto; + width: 100%; +} +.offset-1 { + margin-left: 8.33333333%; +} +.offset-2 { + margin-left: 16.66666667%; +} +.offset-3 { + margin-left: 25%; +} +.offset-4 { + margin-left: 33.33333333%; +} +.offset-5 { + margin-left: 41.66666667%; +} +.offset-6 { + margin-left: 50%; +} +.offset-7 { + margin-left: 58.33333333%; +} +.offset-8 { + margin-left: 66.66666667%; +} +.offset-9 { + margin-left: 75%; +} +.offset-10 { + margin-left: 83.33333333%; +} +.offset-11 { + margin-left: 91.66666667%; +} +.g-0, +.gx-0 { + --bs-gutter-x: 0; +} +.g-0, +.gy-0 { + --bs-gutter-y: 0; +} +.g-1, +.gx-1 { + --bs-gutter-x: 0.25rem; +} +.g-1, +.gy-1 { + --bs-gutter-y: 0.25rem; +} +.g-2, +.gx-2 { + --bs-gutter-x: 0.5rem; +} +.g-2, +.gy-2 { + --bs-gutter-y: 0.5rem; +} +.g-3, +.gx-3 { + --bs-gutter-x: 1rem; +} +.g-3, +.gy-3 { + --bs-gutter-y: 1rem; +} +.g-4, +.gx-4 { + --bs-gutter-x: 1.5rem; +} +.g-4, +.gy-4 { + --bs-gutter-y: 1.5rem; +} +.g-5, +.gx-5 { + --bs-gutter-x: 3rem; +} +.g-5, +.gy-5 { + --bs-gutter-y: 3rem; +} +@media (min-width: 576px) { + .col-sm { + flex: 1 0 0%; + } + .row-cols-sm-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-sm-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-sm-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-sm-3 > * { + flex: 0 0 auto; + width: 33.33333333%; + } + .row-cols-sm-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-sm-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-sm-6 > * { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-sm-auto { + flex: 0 0 auto; + width: auto; + } + .col-sm-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-sm-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-sm-3 { + flex: 0 0 auto; + width: 25%; + } + .col-sm-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-sm-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-sm-6 { + flex: 0 0 auto; + width: 50%; + } + .col-sm-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-sm-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-sm-9 { + flex: 0 0 auto; + width: 75%; + } + .col-sm-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-sm-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-sm-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-sm-0 { + margin-left: 0; + } + .offset-sm-1 { + margin-left: 8.33333333%; + } + .offset-sm-2 { + margin-left: 16.66666667%; + } + .offset-sm-3 { + margin-left: 25%; + } + .offset-sm-4 { + margin-left: 33.33333333%; + } + .offset-sm-5 { + margin-left: 41.66666667%; + } + .offset-sm-6 { + margin-left: 50%; + } + .offset-sm-7 { + margin-left: 58.33333333%; + } + .offset-sm-8 { + margin-left: 66.66666667%; + } + .offset-sm-9 { + margin-left: 75%; + } + .offset-sm-10 { + margin-left: 83.33333333%; + } + .offset-sm-11 { + margin-left: 91.66666667%; + } + .g-sm-0, + .gx-sm-0 { + --bs-gutter-x: 0; + } + .g-sm-0, + .gy-sm-0 { + --bs-gutter-y: 0; + } + .g-sm-1, + .gx-sm-1 { + --bs-gutter-x: 0.25rem; + } + .g-sm-1, + .gy-sm-1 { + --bs-gutter-y: 0.25rem; + } + .g-sm-2, + .gx-sm-2 { + --bs-gutter-x: 0.5rem; + } + .g-sm-2, + .gy-sm-2 { + --bs-gutter-y: 0.5rem; + } + .g-sm-3, + .gx-sm-3 { + --bs-gutter-x: 1rem; + } + .g-sm-3, + .gy-sm-3 { + --bs-gutter-y: 1rem; + } + .g-sm-4, + .gx-sm-4 { + --bs-gutter-x: 1.5rem; + } + .g-sm-4, + .gy-sm-4 { + --bs-gutter-y: 1.5rem; + } + .g-sm-5, + .gx-sm-5 { + --bs-gutter-x: 3rem; + } + .g-sm-5, + .gy-sm-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 768px) { + .col-md { + flex: 1 0 0%; + } + .row-cols-md-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-md-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-md-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-md-3 > * { + flex: 0 0 auto; + width: 33.33333333%; + } + .row-cols-md-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-md-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-md-6 > * { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-md-auto { + flex: 0 0 auto; + width: auto; + } + .col-md-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-md-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-md-3 { + flex: 0 0 auto; + width: 25%; + } + .col-md-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-md-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-md-6 { + flex: 0 0 auto; + width: 50%; + } + .col-md-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-md-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-md-9 { + flex: 0 0 auto; + width: 75%; + } + .col-md-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-md-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-md-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-md-0 { + margin-left: 0; + } + .offset-md-1 { + margin-left: 8.33333333%; + } + .offset-md-2 { + margin-left: 16.66666667%; + } + .offset-md-3 { + margin-left: 25%; + } + .offset-md-4 { + margin-left: 33.33333333%; + } + .offset-md-5 { + margin-left: 41.66666667%; + } + .offset-md-6 { + margin-left: 50%; + } + .offset-md-7 { + margin-left: 58.33333333%; + } + .offset-md-8 { + margin-left: 66.66666667%; + } + .offset-md-9 { + margin-left: 75%; + } + .offset-md-10 { + margin-left: 83.33333333%; + } + .offset-md-11 { + margin-left: 91.66666667%; + } + .g-md-0, + .gx-md-0 { + --bs-gutter-x: 0; + } + .g-md-0, + .gy-md-0 { + --bs-gutter-y: 0; + } + .g-md-1, + .gx-md-1 { + --bs-gutter-x: 0.25rem; + } + .g-md-1, + .gy-md-1 { + --bs-gutter-y: 0.25rem; + } + .g-md-2, + .gx-md-2 { + --bs-gutter-x: 0.5rem; + } + .g-md-2, + .gy-md-2 { + --bs-gutter-y: 0.5rem; + } + .g-md-3, + .gx-md-3 { + --bs-gutter-x: 1rem; + } + .g-md-3, + .gy-md-3 { + --bs-gutter-y: 1rem; + } + .g-md-4, + .gx-md-4 { + --bs-gutter-x: 1.5rem; + } + .g-md-4, + .gy-md-4 { + --bs-gutter-y: 1.5rem; + } + .g-md-5, + .gx-md-5 { + --bs-gutter-x: 3rem; + } + .g-md-5, + .gy-md-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 992px) { + .col-lg { + flex: 1 0 0%; + } + .row-cols-lg-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-lg-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-lg-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-lg-3 > * { + flex: 0 0 auto; + width: 33.33333333%; + } + .row-cols-lg-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-lg-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-lg-6 > * { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-lg-auto { + flex: 0 0 auto; + width: auto; + } + .col-lg-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-lg-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-lg-3 { + flex: 0 0 auto; + width: 25%; + } + .col-lg-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-lg-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-lg-6 { + flex: 0 0 auto; + width: 50%; + } + .col-lg-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-lg-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-lg-9 { + flex: 0 0 auto; + width: 75%; + } + .col-lg-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-lg-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-lg-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-lg-0 { + margin-left: 0; + } + .offset-lg-1 { + margin-left: 8.33333333%; + } + .offset-lg-2 { + margin-left: 16.66666667%; + } + .offset-lg-3 { + margin-left: 25%; + } + .offset-lg-4 { + margin-left: 33.33333333%; + } + .offset-lg-5 { + margin-left: 41.66666667%; + } + .offset-lg-6 { + margin-left: 50%; + } + .offset-lg-7 { + margin-left: 58.33333333%; + } + .offset-lg-8 { + margin-left: 66.66666667%; + } + .offset-lg-9 { + margin-left: 75%; + } + .offset-lg-10 { + margin-left: 83.33333333%; + } + .offset-lg-11 { + margin-left: 91.66666667%; + } + .g-lg-0, + .gx-lg-0 { + --bs-gutter-x: 0; + } + .g-lg-0, + .gy-lg-0 { + --bs-gutter-y: 0; + } + .g-lg-1, + .gx-lg-1 { + --bs-gutter-x: 0.25rem; + } + .g-lg-1, + .gy-lg-1 { + --bs-gutter-y: 0.25rem; + } + .g-lg-2, + .gx-lg-2 { + --bs-gutter-x: 0.5rem; + } + .g-lg-2, + .gy-lg-2 { + --bs-gutter-y: 0.5rem; + } + .g-lg-3, + .gx-lg-3 { + --bs-gutter-x: 1rem; + } + .g-lg-3, + .gy-lg-3 { + --bs-gutter-y: 1rem; + } + .g-lg-4, + .gx-lg-4 { + --bs-gutter-x: 1.5rem; + } + .g-lg-4, + .gy-lg-4 { + --bs-gutter-y: 1.5rem; + } + .g-lg-5, + .gx-lg-5 { + --bs-gutter-x: 3rem; + } + .g-lg-5, + .gy-lg-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 1200px) { + .col-xl { + flex: 1 0 0%; + } + .row-cols-xl-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-xl-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-xl-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-xl-3 > * { + flex: 0 0 auto; + width: 33.33333333%; + } + .row-cols-xl-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-xl-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-xl-6 > * { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-xl-auto { + flex: 0 0 auto; + width: auto; + } + .col-xl-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-xl-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-xl-3 { + flex: 0 0 auto; + width: 25%; + } + .col-xl-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-xl-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-xl-6 { + flex: 0 0 auto; + width: 50%; + } + .col-xl-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-xl-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-xl-9 { + flex: 0 0 auto; + width: 75%; + } + .col-xl-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-xl-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-xl-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-xl-0 { + margin-left: 0; + } + .offset-xl-1 { + margin-left: 8.33333333%; + } + .offset-xl-2 { + margin-left: 16.66666667%; + } + .offset-xl-3 { + margin-left: 25%; + } + .offset-xl-4 { + margin-left: 33.33333333%; + } + .offset-xl-5 { + margin-left: 41.66666667%; + } + .offset-xl-6 { + margin-left: 50%; + } + .offset-xl-7 { + margin-left: 58.33333333%; + } + .offset-xl-8 { + margin-left: 66.66666667%; + } + .offset-xl-9 { + margin-left: 75%; + } + .offset-xl-10 { + margin-left: 83.33333333%; + } + .offset-xl-11 { + margin-left: 91.66666667%; + } + .g-xl-0, + .gx-xl-0 { + --bs-gutter-x: 0; + } + .g-xl-0, + .gy-xl-0 { + --bs-gutter-y: 0; + } + .g-xl-1, + .gx-xl-1 { + --bs-gutter-x: 0.25rem; + } + .g-xl-1, + .gy-xl-1 { + --bs-gutter-y: 0.25rem; + } + .g-xl-2, + .gx-xl-2 { + --bs-gutter-x: 0.5rem; + } + .g-xl-2, + .gy-xl-2 { + --bs-gutter-y: 0.5rem; + } + .g-xl-3, + .gx-xl-3 { + --bs-gutter-x: 1rem; + } + .g-xl-3, + .gy-xl-3 { + --bs-gutter-y: 1rem; + } + .g-xl-4, + .gx-xl-4 { + --bs-gutter-x: 1.5rem; + } + .g-xl-4, + .gy-xl-4 { + --bs-gutter-y: 1.5rem; + } + .g-xl-5, + .gx-xl-5 { + --bs-gutter-x: 3rem; + } + .g-xl-5, + .gy-xl-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 1400px) { + .col-xxl { + flex: 1 0 0%; + } + .row-cols-xxl-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-xxl-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-xxl-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-xxl-3 > * { + flex: 0 0 auto; + width: 33.33333333%; + } + .row-cols-xxl-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-xxl-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-xxl-6 > * { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-xxl-auto { + flex: 0 0 auto; + width: auto; + } + .col-xxl-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-xxl-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-xxl-3 { + flex: 0 0 auto; + width: 25%; + } + .col-xxl-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-xxl-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-xxl-6 { + flex: 0 0 auto; + width: 50%; + } + .col-xxl-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-xxl-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-xxl-9 { + flex: 0 0 auto; + width: 75%; + } + .col-xxl-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-xxl-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-xxl-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-xxl-0 { + margin-left: 0; + } + .offset-xxl-1 { + margin-left: 8.33333333%; + } + .offset-xxl-2 { + margin-left: 16.66666667%; + } + .offset-xxl-3 { + margin-left: 25%; + } + .offset-xxl-4 { + margin-left: 33.33333333%; + } + .offset-xxl-5 { + margin-left: 41.66666667%; + } + .offset-xxl-6 { + margin-left: 50%; + } + .offset-xxl-7 { + margin-left: 58.33333333%; + } + .offset-xxl-8 { + margin-left: 66.66666667%; + } + .offset-xxl-9 { + margin-left: 75%; + } + .offset-xxl-10 { + margin-left: 83.33333333%; + } + .offset-xxl-11 { + margin-left: 91.66666667%; + } + .g-xxl-0, + .gx-xxl-0 { + --bs-gutter-x: 0; + } + .g-xxl-0, + .gy-xxl-0 { + --bs-gutter-y: 0; + } + .g-xxl-1, + .gx-xxl-1 { + --bs-gutter-x: 0.25rem; + } + .g-xxl-1, + .gy-xxl-1 { + --bs-gutter-y: 0.25rem; + } + .g-xxl-2, + .gx-xxl-2 { + --bs-gutter-x: 0.5rem; + } + .g-xxl-2, + .gy-xxl-2 { + --bs-gutter-y: 0.5rem; + } + .g-xxl-3, + .gx-xxl-3 { + --bs-gutter-x: 1rem; + } + .g-xxl-3, + .gy-xxl-3 { + --bs-gutter-y: 1rem; + } + .g-xxl-4, + .gx-xxl-4 { + --bs-gutter-x: 1.5rem; + } + .g-xxl-4, + .gy-xxl-4 { + --bs-gutter-y: 1.5rem; + } + .g-xxl-5, + .gx-xxl-5 { + --bs-gutter-x: 3rem; + } + .g-xxl-5, + .gy-xxl-5 { + --bs-gutter-y: 3rem; + } +} +.d-inline { + display: inline !important; +} +.d-inline-block { + display: inline-block !important; +} +.d-block { + display: block !important; +} +.d-grid { + display: grid !important; +} +.d-table { + display: table !important; +} +.d-table-row { + display: table-row !important; +} +.d-table-cell { + display: table-cell !important; +} +.d-flex { + display: flex !important; +} +.d-inline-flex { + display: inline-flex !important; +} +.d-none { + display: none !important; +} +.flex-fill { + flex: 1 1 auto !important; +} +.flex-row { + flex-direction: row !important; +} +.flex-column { + flex-direction: column !important; +} +.flex-row-reverse { + flex-direction: row-reverse !important; +} +.flex-column-reverse { + flex-direction: column-reverse !important; +} +.flex-grow-0 { + flex-grow: 0 !important; +} +.flex-grow-1 { + flex-grow: 1 !important; +} +.flex-shrink-0 { + flex-shrink: 0 !important; +} +.flex-shrink-1 { + flex-shrink: 1 !important; +} +.flex-wrap { + flex-wrap: wrap !important; +} +.flex-nowrap { + flex-wrap: nowrap !important; +} +.flex-wrap-reverse { + flex-wrap: wrap-reverse !important; +} +.justify-content-start { + justify-content: flex-start !important; +} +.justify-content-end { + justify-content: flex-end !important; +} +.justify-content-center { + justify-content: center !important; +} +.justify-content-between { + justify-content: space-between !important; +} +.justify-content-around { + justify-content: space-around !important; +} +.justify-content-evenly { + justify-content: space-evenly !important; +} +.align-items-start { + align-items: flex-start !important; +} +.align-items-end { + align-items: flex-end !important; +} +.align-items-center { + align-items: center !important; +} +.align-items-baseline { + align-items: baseline !important; +} +.align-items-stretch { + align-items: stretch !important; +} +.align-content-start { + align-content: flex-start !important; +} +.align-content-end { + align-content: flex-end !important; +} +.align-content-center { + align-content: center !important; +} +.align-content-between { + align-content: space-between !important; +} +.align-content-around { + align-content: space-around !important; +} +.align-content-stretch { + align-content: stretch !important; +} +.align-self-auto { + align-self: auto !important; +} +.align-self-start { + align-self: flex-start !important; +} +.align-self-end { + align-self: flex-end !important; +} +.align-self-center { + align-self: center !important; +} +.align-self-baseline { + align-self: baseline !important; +} +.align-self-stretch { + align-self: stretch !important; +} +.order-first { + order: -1 !important; +} +.order-0 { + order: 0 !important; +} +.order-1 { + order: 1 !important; +} +.order-2 { + order: 2 !important; +} +.order-3 { + order: 3 !important; +} +.order-4 { + order: 4 !important; +} +.order-5 { + order: 5 !important; +} +.order-last { + order: 6 !important; +} +.m-0 { + margin: 0 !important; +} +.m-1 { + margin: 0.25rem !important; +} +.m-2 { + margin: 0.5rem !important; +} +.m-3 { + margin: 1rem !important; +} +.m-4 { + margin: 1.5rem !important; +} +.m-5 { + margin: 3rem !important; +} +.m-auto { + margin: auto !important; +} +.mx-0 { + margin-right: 0 !important; + margin-left: 0 !important; +} +.mx-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; +} +.mx-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; +} +.mx-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; +} +.mx-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; +} +.mx-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; +} +.mx-auto { + margin-right: auto !important; + margin-left: auto !important; +} +.my-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; +} +.my-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; +} +.my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; +} +.my-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; +} +.my-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; +} +.my-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; +} +.my-auto { + margin-top: auto !important; + margin-bottom: auto !important; +} +.mt-0 { + margin-top: 0 !important; +} +.mt-1 { + margin-top: 0.25rem !important; +} +.mt-2 { + margin-top: 0.5rem !important; +} +.mt-3 { + margin-top: 1rem !important; +} +.mt-4 { + margin-top: 1.5rem !important; +} +.mt-5 { + margin-top: 3rem !important; +} +.mt-auto { + margin-top: auto !important; +} +.me-0 { + margin-right: 0 !important; +} +.me-1 { + margin-right: 0.25rem !important; +} +.me-2 { + margin-right: 0.5rem !important; +} +.me-3 { + margin-right: 1rem !important; +} +.me-4 { + margin-right: 1.5rem !important; +} +.me-5 { + margin-right: 3rem !important; +} +.me-auto { + margin-right: auto !important; +} +.mb-0 { + margin-bottom: 0 !important; +} +.mb-1 { + margin-bottom: 0.25rem !important; +} +.mb-2 { + margin-bottom: 0.5rem !important; +} +.mb-3 { + margin-bottom: 1rem !important; +} +.mb-4 { + margin-bottom: 1.5rem !important; +} +.mb-5 { + margin-bottom: 3rem !important; +} +.mb-auto { + margin-bottom: auto !important; +} +.ms-0 { + margin-left: 0 !important; +} +.ms-1 { + margin-left: 0.25rem !important; +} +.ms-2 { + margin-left: 0.5rem !important; +} +.ms-3 { + margin-left: 1rem !important; +} +.ms-4 { + margin-left: 1.5rem !important; +} +.ms-5 { + margin-left: 3rem !important; +} +.ms-auto { + margin-left: auto !important; +} +.p-0 { + padding: 0 !important; +} +.p-1 { + padding: 0.25rem !important; +} +.p-2 { + padding: 0.5rem !important; +} +.p-3 { + padding: 1rem !important; +} +.p-4 { + padding: 1.5rem !important; +} +.p-5 { + padding: 3rem !important; +} +.px-0 { + padding-right: 0 !important; + padding-left: 0 !important; +} +.px-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; +} +.px-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; +} +.px-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; +} +.px-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; +} +.px-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; +} +.py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; +} +.py-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; +} +.py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; +} +.py-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; +} +.py-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; +} +.py-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; +} +.pt-0 { + padding-top: 0 !important; +} +.pt-1 { + padding-top: 0.25rem !important; +} +.pt-2 { + padding-top: 0.5rem !important; +} +.pt-3 { + padding-top: 1rem !important; +} +.pt-4 { + padding-top: 1.5rem !important; +} +.pt-5 { + padding-top: 3rem !important; +} +.pe-0 { + padding-right: 0 !important; +} +.pe-1 { + padding-right: 0.25rem !important; +} +.pe-2 { + padding-right: 0.5rem !important; +} +.pe-3 { + padding-right: 1rem !important; +} +.pe-4 { + padding-right: 1.5rem !important; +} +.pe-5 { + padding-right: 3rem !important; +} +.pb-0 { + padding-bottom: 0 !important; +} +.pb-1 { + padding-bottom: 0.25rem !important; +} +.pb-2 { + padding-bottom: 0.5rem !important; +} +.pb-3 { + padding-bottom: 1rem !important; +} +.pb-4 { + padding-bottom: 1.5rem !important; +} +.pb-5 { + padding-bottom: 3rem !important; +} +.ps-0 { + padding-left: 0 !important; +} +.ps-1 { + padding-left: 0.25rem !important; +} +.ps-2 { + padding-left: 0.5rem !important; +} +.ps-3 { + padding-left: 1rem !important; +} +.ps-4 { + padding-left: 1.5rem !important; +} +.ps-5 { + padding-left: 3rem !important; +} +@media (min-width: 576px) { + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-block { + display: block !important; + } + .d-sm-grid { + display: grid !important; + } + .d-sm-table { + display: table !important; + } + .d-sm-table-row { + display: table-row !important; + } + .d-sm-table-cell { + display: table-cell !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline-flex { + display: inline-flex !important; + } + .d-sm-none { + display: none !important; + } + .flex-sm-fill { + flex: 1 1 auto !important; + } + .flex-sm-row { + flex-direction: row !important; + } + .flex-sm-column { + flex-direction: column !important; + } + .flex-sm-row-reverse { + flex-direction: row-reverse !important; + } + .flex-sm-column-reverse { + flex-direction: column-reverse !important; + } + .flex-sm-grow-0 { + flex-grow: 0 !important; + } + .flex-sm-grow-1 { + flex-grow: 1 !important; + } + .flex-sm-shrink-0 { + flex-shrink: 0 !important; + } + .flex-sm-shrink-1 { + flex-shrink: 1 !important; + } + .flex-sm-wrap { + flex-wrap: wrap !important; + } + .flex-sm-nowrap { + flex-wrap: nowrap !important; + } + .flex-sm-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-sm-start { + justify-content: flex-start !important; + } + .justify-content-sm-end { + justify-content: flex-end !important; + } + .justify-content-sm-center { + justify-content: center !important; + } + .justify-content-sm-between { + justify-content: space-between !important; + } + .justify-content-sm-around { + justify-content: space-around !important; + } + .justify-content-sm-evenly { + justify-content: space-evenly !important; + } + .align-items-sm-start { + align-items: flex-start !important; + } + .align-items-sm-end { + align-items: flex-end !important; + } + .align-items-sm-center { + align-items: center !important; + } + .align-items-sm-baseline { + align-items: baseline !important; + } + .align-items-sm-stretch { + align-items: stretch !important; + } + .align-content-sm-start { + align-content: flex-start !important; + } + .align-content-sm-end { + align-content: flex-end !important; + } + .align-content-sm-center { + align-content: center !important; + } + .align-content-sm-between { + align-content: space-between !important; + } + .align-content-sm-around { + align-content: space-around !important; + } + .align-content-sm-stretch { + align-content: stretch !important; + } + .align-self-sm-auto { + align-self: auto !important; + } + .align-self-sm-start { + align-self: flex-start !important; + } + .align-self-sm-end { + align-self: flex-end !important; + } + .align-self-sm-center { + align-self: center !important; + } + .align-self-sm-baseline { + align-self: baseline !important; + } + .align-self-sm-stretch { + align-self: stretch !important; + } + .order-sm-first { + order: -1 !important; + } + .order-sm-0 { + order: 0 !important; + } + .order-sm-1 { + order: 1 !important; + } + .order-sm-2 { + order: 2 !important; + } + .order-sm-3 { + order: 3 !important; + } + .order-sm-4 { + order: 4 !important; + } + .order-sm-5 { + order: 5 !important; + } + .order-sm-last { + order: 6 !important; + } + .m-sm-0 { + margin: 0 !important; + } + .m-sm-1 { + margin: 0.25rem !important; + } + .m-sm-2 { + margin: 0.5rem !important; + } + .m-sm-3 { + margin: 1rem !important; + } + .m-sm-4 { + margin: 1.5rem !important; + } + .m-sm-5 { + margin: 3rem !important; + } + .m-sm-auto { + margin: auto !important; + } + .mx-sm-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-sm-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-sm-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-sm-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-sm-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-sm-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-sm-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-sm-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-sm-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-sm-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-sm-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-sm-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-sm-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-sm-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-sm-0 { + margin-top: 0 !important; + } + .mt-sm-1 { + margin-top: 0.25rem !important; + } + .mt-sm-2 { + margin-top: 0.5rem !important; + } + .mt-sm-3 { + margin-top: 1rem !important; + } + .mt-sm-4 { + margin-top: 1.5rem !important; + } + .mt-sm-5 { + margin-top: 3rem !important; + } + .mt-sm-auto { + margin-top: auto !important; + } + .me-sm-0 { + margin-right: 0 !important; + } + .me-sm-1 { + margin-right: 0.25rem !important; + } + .me-sm-2 { + margin-right: 0.5rem !important; + } + .me-sm-3 { + margin-right: 1rem !important; + } + .me-sm-4 { + margin-right: 1.5rem !important; + } + .me-sm-5 { + margin-right: 3rem !important; + } + .me-sm-auto { + margin-right: auto !important; + } + .mb-sm-0 { + margin-bottom: 0 !important; + } + .mb-sm-1 { + margin-bottom: 0.25rem !important; + } + .mb-sm-2 { + margin-bottom: 0.5rem !important; + } + .mb-sm-3 { + margin-bottom: 1rem !important; + } + .mb-sm-4 { + margin-bottom: 1.5rem !important; + } + .mb-sm-5 { + margin-bottom: 3rem !important; + } + .mb-sm-auto { + margin-bottom: auto !important; + } + .ms-sm-0 { + margin-left: 0 !important; + } + .ms-sm-1 { + margin-left: 0.25rem !important; + } + .ms-sm-2 { + margin-left: 0.5rem !important; + } + .ms-sm-3 { + margin-left: 1rem !important; + } + .ms-sm-4 { + margin-left: 1.5rem !important; + } + .ms-sm-5 { + margin-left: 3rem !important; + } + .ms-sm-auto { + margin-left: auto !important; + } + .p-sm-0 { + padding: 0 !important; + } + .p-sm-1 { + padding: 0.25rem !important; + } + .p-sm-2 { + padding: 0.5rem !important; + } + .p-sm-3 { + padding: 1rem !important; + } + .p-sm-4 { + padding: 1.5rem !important; + } + .p-sm-5 { + padding: 3rem !important; + } + .px-sm-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-sm-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-sm-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-sm-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-sm-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-sm-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-sm-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-sm-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-sm-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-sm-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-sm-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-sm-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-sm-0 { + padding-top: 0 !important; + } + .pt-sm-1 { + padding-top: 0.25rem !important; + } + .pt-sm-2 { + padding-top: 0.5rem !important; + } + .pt-sm-3 { + padding-top: 1rem !important; + } + .pt-sm-4 { + padding-top: 1.5rem !important; + } + .pt-sm-5 { + padding-top: 3rem !important; + } + .pe-sm-0 { + padding-right: 0 !important; + } + .pe-sm-1 { + padding-right: 0.25rem !important; + } + .pe-sm-2 { + padding-right: 0.5rem !important; + } + .pe-sm-3 { + padding-right: 1rem !important; + } + .pe-sm-4 { + padding-right: 1.5rem !important; + } + .pe-sm-5 { + padding-right: 3rem !important; + } + .pb-sm-0 { + padding-bottom: 0 !important; + } + .pb-sm-1 { + padding-bottom: 0.25rem !important; + } + .pb-sm-2 { + padding-bottom: 0.5rem !important; + } + .pb-sm-3 { + padding-bottom: 1rem !important; + } + .pb-sm-4 { + padding-bottom: 1.5rem !important; + } + .pb-sm-5 { + padding-bottom: 3rem !important; + } + .ps-sm-0 { + padding-left: 0 !important; + } + .ps-sm-1 { + padding-left: 0.25rem !important; + } + .ps-sm-2 { + padding-left: 0.5rem !important; + } + .ps-sm-3 { + padding-left: 1rem !important; + } + .ps-sm-4 { + padding-left: 1.5rem !important; + } + .ps-sm-5 { + padding-left: 3rem !important; + } +} +@media (min-width: 768px) { + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-block { + display: block !important; + } + .d-md-grid { + display: grid !important; + } + .d-md-table { + display: table !important; + } + .d-md-table-row { + display: table-row !important; + } + .d-md-table-cell { + display: table-cell !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline-flex { + display: inline-flex !important; + } + .d-md-none { + display: none !important; + } + .flex-md-fill { + flex: 1 1 auto !important; + } + .flex-md-row { + flex-direction: row !important; + } + .flex-md-column { + flex-direction: column !important; + } + .flex-md-row-reverse { + flex-direction: row-reverse !important; + } + .flex-md-column-reverse { + flex-direction: column-reverse !important; + } + .flex-md-grow-0 { + flex-grow: 0 !important; + } + .flex-md-grow-1 { + flex-grow: 1 !important; + } + .flex-md-shrink-0 { + flex-shrink: 0 !important; + } + .flex-md-shrink-1 { + flex-shrink: 1 !important; + } + .flex-md-wrap { + flex-wrap: wrap !important; + } + .flex-md-nowrap { + flex-wrap: nowrap !important; + } + .flex-md-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-md-start { + justify-content: flex-start !important; + } + .justify-content-md-end { + justify-content: flex-end !important; + } + .justify-content-md-center { + justify-content: center !important; + } + .justify-content-md-between { + justify-content: space-between !important; + } + .justify-content-md-around { + justify-content: space-around !important; + } + .justify-content-md-evenly { + justify-content: space-evenly !important; + } + .align-items-md-start { + align-items: flex-start !important; + } + .align-items-md-end { + align-items: flex-end !important; + } + .align-items-md-center { + align-items: center !important; + } + .align-items-md-baseline { + align-items: baseline !important; + } + .align-items-md-stretch { + align-items: stretch !important; + } + .align-content-md-start { + align-content: flex-start !important; + } + .align-content-md-end { + align-content: flex-end !important; + } + .align-content-md-center { + align-content: center !important; + } + .align-content-md-between { + align-content: space-between !important; + } + .align-content-md-around { + align-content: space-around !important; + } + .align-content-md-stretch { + align-content: stretch !important; + } + .align-self-md-auto { + align-self: auto !important; + } + .align-self-md-start { + align-self: flex-start !important; + } + .align-self-md-end { + align-self: flex-end !important; + } + .align-self-md-center { + align-self: center !important; + } + .align-self-md-baseline { + align-self: baseline !important; + } + .align-self-md-stretch { + align-self: stretch !important; + } + .order-md-first { + order: -1 !important; + } + .order-md-0 { + order: 0 !important; + } + .order-md-1 { + order: 1 !important; + } + .order-md-2 { + order: 2 !important; + } + .order-md-3 { + order: 3 !important; + } + .order-md-4 { + order: 4 !important; + } + .order-md-5 { + order: 5 !important; + } + .order-md-last { + order: 6 !important; + } + .m-md-0 { + margin: 0 !important; + } + .m-md-1 { + margin: 0.25rem !important; + } + .m-md-2 { + margin: 0.5rem !important; + } + .m-md-3 { + margin: 1rem !important; + } + .m-md-4 { + margin: 1.5rem !important; + } + .m-md-5 { + margin: 3rem !important; + } + .m-md-auto { + margin: auto !important; + } + .mx-md-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-md-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-md-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-md-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-md-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-md-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-md-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-md-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-md-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-md-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-md-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-md-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-md-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-md-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-md-0 { + margin-top: 0 !important; + } + .mt-md-1 { + margin-top: 0.25rem !important; + } + .mt-md-2 { + margin-top: 0.5rem !important; + } + .mt-md-3 { + margin-top: 1rem !important; + } + .mt-md-4 { + margin-top: 1.5rem !important; + } + .mt-md-5 { + margin-top: 3rem !important; + } + .mt-md-auto { + margin-top: auto !important; + } + .me-md-0 { + margin-right: 0 !important; + } + .me-md-1 { + margin-right: 0.25rem !important; + } + .me-md-2 { + margin-right: 0.5rem !important; + } + .me-md-3 { + margin-right: 1rem !important; + } + .me-md-4 { + margin-right: 1.5rem !important; + } + .me-md-5 { + margin-right: 3rem !important; + } + .me-md-auto { + margin-right: auto !important; + } + .mb-md-0 { + margin-bottom: 0 !important; + } + .mb-md-1 { + margin-bottom: 0.25rem !important; + } + .mb-md-2 { + margin-bottom: 0.5rem !important; + } + .mb-md-3 { + margin-bottom: 1rem !important; + } + .mb-md-4 { + margin-bottom: 1.5rem !important; + } + .mb-md-5 { + margin-bottom: 3rem !important; + } + .mb-md-auto { + margin-bottom: auto !important; + } + .ms-md-0 { + margin-left: 0 !important; + } + .ms-md-1 { + margin-left: 0.25rem !important; + } + .ms-md-2 { + margin-left: 0.5rem !important; + } + .ms-md-3 { + margin-left: 1rem !important; + } + .ms-md-4 { + margin-left: 1.5rem !important; + } + .ms-md-5 { + margin-left: 3rem !important; + } + .ms-md-auto { + margin-left: auto !important; + } + .p-md-0 { + padding: 0 !important; + } + .p-md-1 { + padding: 0.25rem !important; + } + .p-md-2 { + padding: 0.5rem !important; + } + .p-md-3 { + padding: 1rem !important; + } + .p-md-4 { + padding: 1.5rem !important; + } + .p-md-5 { + padding: 3rem !important; + } + .px-md-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-md-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-md-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-md-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-md-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-md-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-md-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-md-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-md-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-md-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-md-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-md-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-md-0 { + padding-top: 0 !important; + } + .pt-md-1 { + padding-top: 0.25rem !important; + } + .pt-md-2 { + padding-top: 0.5rem !important; + } + .pt-md-3 { + padding-top: 1rem !important; + } + .pt-md-4 { + padding-top: 1.5rem !important; + } + .pt-md-5 { + padding-top: 3rem !important; + } + .pe-md-0 { + padding-right: 0 !important; + } + .pe-md-1 { + padding-right: 0.25rem !important; + } + .pe-md-2 { + padding-right: 0.5rem !important; + } + .pe-md-3 { + padding-right: 1rem !important; + } + .pe-md-4 { + padding-right: 1.5rem !important; + } + .pe-md-5 { + padding-right: 3rem !important; + } + .pb-md-0 { + padding-bottom: 0 !important; + } + .pb-md-1 { + padding-bottom: 0.25rem !important; + } + .pb-md-2 { + padding-bottom: 0.5rem !important; + } + .pb-md-3 { + padding-bottom: 1rem !important; + } + .pb-md-4 { + padding-bottom: 1.5rem !important; + } + .pb-md-5 { + padding-bottom: 3rem !important; + } + .ps-md-0 { + padding-left: 0 !important; + } + .ps-md-1 { + padding-left: 0.25rem !important; + } + .ps-md-2 { + padding-left: 0.5rem !important; + } + .ps-md-3 { + padding-left: 1rem !important; + } + .ps-md-4 { + padding-left: 1.5rem !important; + } + .ps-md-5 { + padding-left: 3rem !important; + } +} +@media (min-width: 992px) { + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-block { + display: block !important; + } + .d-lg-grid { + display: grid !important; + } + .d-lg-table { + display: table !important; + } + .d-lg-table-row { + display: table-row !important; + } + .d-lg-table-cell { + display: table-cell !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline-flex { + display: inline-flex !important; + } + .d-lg-none { + display: none !important; + } + .flex-lg-fill { + flex: 1 1 auto !important; + } + .flex-lg-row { + flex-direction: row !important; + } + .flex-lg-column { + flex-direction: column !important; + } + .flex-lg-row-reverse { + flex-direction: row-reverse !important; + } + .flex-lg-column-reverse { + flex-direction: column-reverse !important; + } + .flex-lg-grow-0 { + flex-grow: 0 !important; + } + .flex-lg-grow-1 { + flex-grow: 1 !important; + } + .flex-lg-shrink-0 { + flex-shrink: 0 !important; + } + .flex-lg-shrink-1 { + flex-shrink: 1 !important; + } + .flex-lg-wrap { + flex-wrap: wrap !important; + } + .flex-lg-nowrap { + flex-wrap: nowrap !important; + } + .flex-lg-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-lg-start { + justify-content: flex-start !important; + } + .justify-content-lg-end { + justify-content: flex-end !important; + } + .justify-content-lg-center { + justify-content: center !important; + } + .justify-content-lg-between { + justify-content: space-between !important; + } + .justify-content-lg-around { + justify-content: space-around !important; + } + .justify-content-lg-evenly { + justify-content: space-evenly !important; + } + .align-items-lg-start { + align-items: flex-start !important; + } + .align-items-lg-end { + align-items: flex-end !important; + } + .align-items-lg-center { + align-items: center !important; + } + .align-items-lg-baseline { + align-items: baseline !important; + } + .align-items-lg-stretch { + align-items: stretch !important; + } + .align-content-lg-start { + align-content: flex-start !important; + } + .align-content-lg-end { + align-content: flex-end !important; + } + .align-content-lg-center { + align-content: center !important; + } + .align-content-lg-between { + align-content: space-between !important; + } + .align-content-lg-around { + align-content: space-around !important; + } + .align-content-lg-stretch { + align-content: stretch !important; + } + .align-self-lg-auto { + align-self: auto !important; + } + .align-self-lg-start { + align-self: flex-start !important; + } + .align-self-lg-end { + align-self: flex-end !important; + } + .align-self-lg-center { + align-self: center !important; + } + .align-self-lg-baseline { + align-self: baseline !important; + } + .align-self-lg-stretch { + align-self: stretch !important; + } + .order-lg-first { + order: -1 !important; + } + .order-lg-0 { + order: 0 !important; + } + .order-lg-1 { + order: 1 !important; + } + .order-lg-2 { + order: 2 !important; + } + .order-lg-3 { + order: 3 !important; + } + .order-lg-4 { + order: 4 !important; + } + .order-lg-5 { + order: 5 !important; + } + .order-lg-last { + order: 6 !important; + } + .m-lg-0 { + margin: 0 !important; + } + .m-lg-1 { + margin: 0.25rem !important; + } + .m-lg-2 { + margin: 0.5rem !important; + } + .m-lg-3 { + margin: 1rem !important; + } + .m-lg-4 { + margin: 1.5rem !important; + } + .m-lg-5 { + margin: 3rem !important; + } + .m-lg-auto { + margin: auto !important; + } + .mx-lg-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-lg-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-lg-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-lg-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-lg-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-lg-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-lg-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-lg-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-lg-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-lg-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-lg-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-lg-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-lg-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-lg-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-lg-0 { + margin-top: 0 !important; + } + .mt-lg-1 { + margin-top: 0.25rem !important; + } + .mt-lg-2 { + margin-top: 0.5rem !important; + } + .mt-lg-3 { + margin-top: 1rem !important; + } + .mt-lg-4 { + margin-top: 1.5rem !important; + } + .mt-lg-5 { + margin-top: 3rem !important; + } + .mt-lg-auto { + margin-top: auto !important; + } + .me-lg-0 { + margin-right: 0 !important; + } + .me-lg-1 { + margin-right: 0.25rem !important; + } + .me-lg-2 { + margin-right: 0.5rem !important; + } + .me-lg-3 { + margin-right: 1rem !important; + } + .me-lg-4 { + margin-right: 1.5rem !important; + } + .me-lg-5 { + margin-right: 3rem !important; + } + .me-lg-auto { + margin-right: auto !important; + } + .mb-lg-0 { + margin-bottom: 0 !important; + } + .mb-lg-1 { + margin-bottom: 0.25rem !important; + } + .mb-lg-2 { + margin-bottom: 0.5rem !important; + } + .mb-lg-3 { + margin-bottom: 1rem !important; + } + .mb-lg-4 { + margin-bottom: 1.5rem !important; + } + .mb-lg-5 { + margin-bottom: 3rem !important; + } + .mb-lg-auto { + margin-bottom: auto !important; + } + .ms-lg-0 { + margin-left: 0 !important; + } + .ms-lg-1 { + margin-left: 0.25rem !important; + } + .ms-lg-2 { + margin-left: 0.5rem !important; + } + .ms-lg-3 { + margin-left: 1rem !important; + } + .ms-lg-4 { + margin-left: 1.5rem !important; + } + .ms-lg-5 { + margin-left: 3rem !important; + } + .ms-lg-auto { + margin-left: auto !important; + } + .p-lg-0 { + padding: 0 !important; + } + .p-lg-1 { + padding: 0.25rem !important; + } + .p-lg-2 { + padding: 0.5rem !important; + } + .p-lg-3 { + padding: 1rem !important; + } + .p-lg-4 { + padding: 1.5rem !important; + } + .p-lg-5 { + padding: 3rem !important; + } + .px-lg-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-lg-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-lg-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-lg-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-lg-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-lg-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-lg-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-lg-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-lg-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-lg-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-lg-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-lg-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-lg-0 { + padding-top: 0 !important; + } + .pt-lg-1 { + padding-top: 0.25rem !important; + } + .pt-lg-2 { + padding-top: 0.5rem !important; + } + .pt-lg-3 { + padding-top: 1rem !important; + } + .pt-lg-4 { + padding-top: 1.5rem !important; + } + .pt-lg-5 { + padding-top: 3rem !important; + } + .pe-lg-0 { + padding-right: 0 !important; + } + .pe-lg-1 { + padding-right: 0.25rem !important; + } + .pe-lg-2 { + padding-right: 0.5rem !important; + } + .pe-lg-3 { + padding-right: 1rem !important; + } + .pe-lg-4 { + padding-right: 1.5rem !important; + } + .pe-lg-5 { + padding-right: 3rem !important; + } + .pb-lg-0 { + padding-bottom: 0 !important; + } + .pb-lg-1 { + padding-bottom: 0.25rem !important; + } + .pb-lg-2 { + padding-bottom: 0.5rem !important; + } + .pb-lg-3 { + padding-bottom: 1rem !important; + } + .pb-lg-4 { + padding-bottom: 1.5rem !important; + } + .pb-lg-5 { + padding-bottom: 3rem !important; + } + .ps-lg-0 { + padding-left: 0 !important; + } + .ps-lg-1 { + padding-left: 0.25rem !important; + } + .ps-lg-2 { + padding-left: 0.5rem !important; + } + .ps-lg-3 { + padding-left: 1rem !important; + } + .ps-lg-4 { + padding-left: 1.5rem !important; + } + .ps-lg-5 { + padding-left: 3rem !important; + } +} +@media (min-width: 1200px) { + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-block { + display: block !important; + } + .d-xl-grid { + display: grid !important; + } + .d-xl-table { + display: table !important; + } + .d-xl-table-row { + display: table-row !important; + } + .d-xl-table-cell { + display: table-cell !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline-flex { + display: inline-flex !important; + } + .d-xl-none { + display: none !important; + } + .flex-xl-fill { + flex: 1 1 auto !important; + } + .flex-xl-row { + flex-direction: row !important; + } + .flex-xl-column { + flex-direction: column !important; + } + .flex-xl-row-reverse { + flex-direction: row-reverse !important; + } + .flex-xl-column-reverse { + flex-direction: column-reverse !important; + } + .flex-xl-grow-0 { + flex-grow: 0 !important; + } + .flex-xl-grow-1 { + flex-grow: 1 !important; + } + .flex-xl-shrink-0 { + flex-shrink: 0 !important; + } + .flex-xl-shrink-1 { + flex-shrink: 1 !important; + } + .flex-xl-wrap { + flex-wrap: wrap !important; + } + .flex-xl-nowrap { + flex-wrap: nowrap !important; + } + .flex-xl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-xl-start { + justify-content: flex-start !important; + } + .justify-content-xl-end { + justify-content: flex-end !important; + } + .justify-content-xl-center { + justify-content: center !important; + } + .justify-content-xl-between { + justify-content: space-between !important; + } + .justify-content-xl-around { + justify-content: space-around !important; + } + .justify-content-xl-evenly { + justify-content: space-evenly !important; + } + .align-items-xl-start { + align-items: flex-start !important; + } + .align-items-xl-end { + align-items: flex-end !important; + } + .align-items-xl-center { + align-items: center !important; + } + .align-items-xl-baseline { + align-items: baseline !important; + } + .align-items-xl-stretch { + align-items: stretch !important; + } + .align-content-xl-start { + align-content: flex-start !important; + } + .align-content-xl-end { + align-content: flex-end !important; + } + .align-content-xl-center { + align-content: center !important; + } + .align-content-xl-between { + align-content: space-between !important; + } + .align-content-xl-around { + align-content: space-around !important; + } + .align-content-xl-stretch { + align-content: stretch !important; + } + .align-self-xl-auto { + align-self: auto !important; + } + .align-self-xl-start { + align-self: flex-start !important; + } + .align-self-xl-end { + align-self: flex-end !important; + } + .align-self-xl-center { + align-self: center !important; + } + .align-self-xl-baseline { + align-self: baseline !important; + } + .align-self-xl-stretch { + align-self: stretch !important; + } + .order-xl-first { + order: -1 !important; + } + .order-xl-0 { + order: 0 !important; + } + .order-xl-1 { + order: 1 !important; + } + .order-xl-2 { + order: 2 !important; + } + .order-xl-3 { + order: 3 !important; + } + .order-xl-4 { + order: 4 !important; + } + .order-xl-5 { + order: 5 !important; + } + .order-xl-last { + order: 6 !important; + } + .m-xl-0 { + margin: 0 !important; + } + .m-xl-1 { + margin: 0.25rem !important; + } + .m-xl-2 { + margin: 0.5rem !important; + } + .m-xl-3 { + margin: 1rem !important; + } + .m-xl-4 { + margin: 1.5rem !important; + } + .m-xl-5 { + margin: 3rem !important; + } + .m-xl-auto { + margin: auto !important; + } + .mx-xl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-xl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-xl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-xl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-xl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-xl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-xl-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-xl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-xl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-xl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-xl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-xl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-xl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-xl-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-xl-0 { + margin-top: 0 !important; + } + .mt-xl-1 { + margin-top: 0.25rem !important; + } + .mt-xl-2 { + margin-top: 0.5rem !important; + } + .mt-xl-3 { + margin-top: 1rem !important; + } + .mt-xl-4 { + margin-top: 1.5rem !important; + } + .mt-xl-5 { + margin-top: 3rem !important; + } + .mt-xl-auto { + margin-top: auto !important; + } + .me-xl-0 { + margin-right: 0 !important; + } + .me-xl-1 { + margin-right: 0.25rem !important; + } + .me-xl-2 { + margin-right: 0.5rem !important; + } + .me-xl-3 { + margin-right: 1rem !important; + } + .me-xl-4 { + margin-right: 1.5rem !important; + } + .me-xl-5 { + margin-right: 3rem !important; + } + .me-xl-auto { + margin-right: auto !important; + } + .mb-xl-0 { + margin-bottom: 0 !important; + } + .mb-xl-1 { + margin-bottom: 0.25rem !important; + } + .mb-xl-2 { + margin-bottom: 0.5rem !important; + } + .mb-xl-3 { + margin-bottom: 1rem !important; + } + .mb-xl-4 { + margin-bottom: 1.5rem !important; + } + .mb-xl-5 { + margin-bottom: 3rem !important; + } + .mb-xl-auto { + margin-bottom: auto !important; + } + .ms-xl-0 { + margin-left: 0 !important; + } + .ms-xl-1 { + margin-left: 0.25rem !important; + } + .ms-xl-2 { + margin-left: 0.5rem !important; + } + .ms-xl-3 { + margin-left: 1rem !important; + } + .ms-xl-4 { + margin-left: 1.5rem !important; + } + .ms-xl-5 { + margin-left: 3rem !important; + } + .ms-xl-auto { + margin-left: auto !important; + } + .p-xl-0 { + padding: 0 !important; + } + .p-xl-1 { + padding: 0.25rem !important; + } + .p-xl-2 { + padding: 0.5rem !important; + } + .p-xl-3 { + padding: 1rem !important; + } + .p-xl-4 { + padding: 1.5rem !important; + } + .p-xl-5 { + padding: 3rem !important; + } + .px-xl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-xl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-xl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-xl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-xl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-xl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-xl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-xl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-xl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-xl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-xl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-xl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-xl-0 { + padding-top: 0 !important; + } + .pt-xl-1 { + padding-top: 0.25rem !important; + } + .pt-xl-2 { + padding-top: 0.5rem !important; + } + .pt-xl-3 { + padding-top: 1rem !important; + } + .pt-xl-4 { + padding-top: 1.5rem !important; + } + .pt-xl-5 { + padding-top: 3rem !important; + } + .pe-xl-0 { + padding-right: 0 !important; + } + .pe-xl-1 { + padding-right: 0.25rem !important; + } + .pe-xl-2 { + padding-right: 0.5rem !important; + } + .pe-xl-3 { + padding-right: 1rem !important; + } + .pe-xl-4 { + padding-right: 1.5rem !important; + } + .pe-xl-5 { + padding-right: 3rem !important; + } + .pb-xl-0 { + padding-bottom: 0 !important; + } + .pb-xl-1 { + padding-bottom: 0.25rem !important; + } + .pb-xl-2 { + padding-bottom: 0.5rem !important; + } + .pb-xl-3 { + padding-bottom: 1rem !important; + } + .pb-xl-4 { + padding-bottom: 1.5rem !important; + } + .pb-xl-5 { + padding-bottom: 3rem !important; + } + .ps-xl-0 { + padding-left: 0 !important; + } + .ps-xl-1 { + padding-left: 0.25rem !important; + } + .ps-xl-2 { + padding-left: 0.5rem !important; + } + .ps-xl-3 { + padding-left: 1rem !important; + } + .ps-xl-4 { + padding-left: 1.5rem !important; + } + .ps-xl-5 { + padding-left: 3rem !important; + } +} +@media (min-width: 1400px) { + .d-xxl-inline { + display: inline !important; + } + .d-xxl-inline-block { + display: inline-block !important; + } + .d-xxl-block { + display: block !important; + } + .d-xxl-grid { + display: grid !important; + } + .d-xxl-table { + display: table !important; + } + .d-xxl-table-row { + display: table-row !important; + } + .d-xxl-table-cell { + display: table-cell !important; + } + .d-xxl-flex { + display: flex !important; + } + .d-xxl-inline-flex { + display: inline-flex !important; + } + .d-xxl-none { + display: none !important; + } + .flex-xxl-fill { + flex: 1 1 auto !important; + } + .flex-xxl-row { + flex-direction: row !important; + } + .flex-xxl-column { + flex-direction: column !important; + } + .flex-xxl-row-reverse { + flex-direction: row-reverse !important; + } + .flex-xxl-column-reverse { + flex-direction: column-reverse !important; + } + .flex-xxl-grow-0 { + flex-grow: 0 !important; + } + .flex-xxl-grow-1 { + flex-grow: 1 !important; + } + .flex-xxl-shrink-0 { + flex-shrink: 0 !important; + } + .flex-xxl-shrink-1 { + flex-shrink: 1 !important; + } + .flex-xxl-wrap { + flex-wrap: wrap !important; + } + .flex-xxl-nowrap { + flex-wrap: nowrap !important; + } + .flex-xxl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-xxl-start { + justify-content: flex-start !important; + } + .justify-content-xxl-end { + justify-content: flex-end !important; + } + .justify-content-xxl-center { + justify-content: center !important; + } + .justify-content-xxl-between { + justify-content: space-between !important; + } + .justify-content-xxl-around { + justify-content: space-around !important; + } + .justify-content-xxl-evenly { + justify-content: space-evenly !important; + } + .align-items-xxl-start { + align-items: flex-start !important; + } + .align-items-xxl-end { + align-items: flex-end !important; + } + .align-items-xxl-center { + align-items: center !important; + } + .align-items-xxl-baseline { + align-items: baseline !important; + } + .align-items-xxl-stretch { + align-items: stretch !important; + } + .align-content-xxl-start { + align-content: flex-start !important; + } + .align-content-xxl-end { + align-content: flex-end !important; + } + .align-content-xxl-center { + align-content: center !important; + } + .align-content-xxl-between { + align-content: space-between !important; + } + .align-content-xxl-around { + align-content: space-around !important; + } + .align-content-xxl-stretch { + align-content: stretch !important; + } + .align-self-xxl-auto { + align-self: auto !important; + } + .align-self-xxl-start { + align-self: flex-start !important; + } + .align-self-xxl-end { + align-self: flex-end !important; + } + .align-self-xxl-center { + align-self: center !important; + } + .align-self-xxl-baseline { + align-self: baseline !important; + } + .align-self-xxl-stretch { + align-self: stretch !important; + } + .order-xxl-first { + order: -1 !important; + } + .order-xxl-0 { + order: 0 !important; + } + .order-xxl-1 { + order: 1 !important; + } + .order-xxl-2 { + order: 2 !important; + } + .order-xxl-3 { + order: 3 !important; + } + .order-xxl-4 { + order: 4 !important; + } + .order-xxl-5 { + order: 5 !important; + } + .order-xxl-last { + order: 6 !important; + } + .m-xxl-0 { + margin: 0 !important; + } + .m-xxl-1 { + margin: 0.25rem !important; + } + .m-xxl-2 { + margin: 0.5rem !important; + } + .m-xxl-3 { + margin: 1rem !important; + } + .m-xxl-4 { + margin: 1.5rem !important; + } + .m-xxl-5 { + margin: 3rem !important; + } + .m-xxl-auto { + margin: auto !important; + } + .mx-xxl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-xxl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-xxl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-xxl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-xxl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-xxl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-xxl-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-xxl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-xxl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-xxl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-xxl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-xxl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-xxl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-xxl-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-xxl-0 { + margin-top: 0 !important; + } + .mt-xxl-1 { + margin-top: 0.25rem !important; + } + .mt-xxl-2 { + margin-top: 0.5rem !important; + } + .mt-xxl-3 { + margin-top: 1rem !important; + } + .mt-xxl-4 { + margin-top: 1.5rem !important; + } + .mt-xxl-5 { + margin-top: 3rem !important; + } + .mt-xxl-auto { + margin-top: auto !important; + } + .me-xxl-0 { + margin-right: 0 !important; + } + .me-xxl-1 { + margin-right: 0.25rem !important; + } + .me-xxl-2 { + margin-right: 0.5rem !important; + } + .me-xxl-3 { + margin-right: 1rem !important; + } + .me-xxl-4 { + margin-right: 1.5rem !important; + } + .me-xxl-5 { + margin-right: 3rem !important; + } + .me-xxl-auto { + margin-right: auto !important; + } + .mb-xxl-0 { + margin-bottom: 0 !important; + } + .mb-xxl-1 { + margin-bottom: 0.25rem !important; + } + .mb-xxl-2 { + margin-bottom: 0.5rem !important; + } + .mb-xxl-3 { + margin-bottom: 1rem !important; + } + .mb-xxl-4 { + margin-bottom: 1.5rem !important; + } + .mb-xxl-5 { + margin-bottom: 3rem !important; + } + .mb-xxl-auto { + margin-bottom: auto !important; + } + .ms-xxl-0 { + margin-left: 0 !important; + } + .ms-xxl-1 { + margin-left: 0.25rem !important; + } + .ms-xxl-2 { + margin-left: 0.5rem !important; + } + .ms-xxl-3 { + margin-left: 1rem !important; + } + .ms-xxl-4 { + margin-left: 1.5rem !important; + } + .ms-xxl-5 { + margin-left: 3rem !important; + } + .ms-xxl-auto { + margin-left: auto !important; + } + .p-xxl-0 { + padding: 0 !important; + } + .p-xxl-1 { + padding: 0.25rem !important; + } + .p-xxl-2 { + padding: 0.5rem !important; + } + .p-xxl-3 { + padding: 1rem !important; + } + .p-xxl-4 { + padding: 1.5rem !important; + } + .p-xxl-5 { + padding: 3rem !important; + } + .px-xxl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-xxl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-xxl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-xxl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-xxl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-xxl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-xxl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-xxl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-xxl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-xxl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-xxl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-xxl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-xxl-0 { + padding-top: 0 !important; + } + .pt-xxl-1 { + padding-top: 0.25rem !important; + } + .pt-xxl-2 { + padding-top: 0.5rem !important; + } + .pt-xxl-3 { + padding-top: 1rem !important; + } + .pt-xxl-4 { + padding-top: 1.5rem !important; + } + .pt-xxl-5 { + padding-top: 3rem !important; + } + .pe-xxl-0 { + padding-right: 0 !important; + } + .pe-xxl-1 { + padding-right: 0.25rem !important; + } + .pe-xxl-2 { + padding-right: 0.5rem !important; + } + .pe-xxl-3 { + padding-right: 1rem !important; + } + .pe-xxl-4 { + padding-right: 1.5rem !important; + } + .pe-xxl-5 { + padding-right: 3rem !important; + } + .pb-xxl-0 { + padding-bottom: 0 !important; + } + .pb-xxl-1 { + padding-bottom: 0.25rem !important; + } + .pb-xxl-2 { + padding-bottom: 0.5rem !important; + } + .pb-xxl-3 { + padding-bottom: 1rem !important; + } + .pb-xxl-4 { + padding-bottom: 1.5rem !important; + } + .pb-xxl-5 { + padding-bottom: 3rem !important; + } + .ps-xxl-0 { + padding-left: 0 !important; + } + .ps-xxl-1 { + padding-left: 0.25rem !important; + } + .ps-xxl-2 { + padding-left: 0.5rem !important; + } + .ps-xxl-3 { + padding-left: 1rem !important; + } + .ps-xxl-4 { + padding-left: 1.5rem !important; + } + .ps-xxl-5 { + padding-left: 3rem !important; + } +} +@media print { + .d-print-inline { + display: inline !important; + } + .d-print-inline-block { + display: inline-block !important; + } + .d-print-block { + display: block !important; + } + .d-print-grid { + display: grid !important; + } + .d-print-table { + display: table !important; + } + .d-print-table-row { + display: table-row !important; + } + .d-print-table-cell { + display: table-cell !important; + } + .d-print-flex { + display: flex !important; + } + .d-print-inline-flex { + display: inline-flex !important; + } + .d-print-none { + display: none !important; + } +} +.tooltip { + position: absolute; + z-index: 1080; + display: block; + margin: 0; + font-family: var(--bs-font-sans-serif); + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: 0.875rem; + word-wrap: break-word; + opacity: 0; + pointer-events: none; +} +.tooltip.show { + opacity: 0.9; +} +.tooltip .tooltip-arrow { + position: absolute; + display: block; + width: 0.8rem; + height: 0.4rem; +} +.tooltip .tooltip-arrow::before { + position: absolute; + content: ""; + border-color: transparent; + border-style: solid; +} +.bs-tooltip-top, +.bs-tooltip-auto[data-popper-placement^=top] { + padding: 0.4rem 0; +} +.bs-tooltip-top .tooltip-arrow, +.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow { + bottom: 0; +} +.bs-tooltip-top .tooltip-arrow::before, +.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before { + top: -1px; + border-width: 0.4rem 0.4rem 0; + border-top-color: #000; +} +.bs-tooltip-end, +.bs-tooltip-auto[data-popper-placement^=right] { + padding: 0 0.4rem; +} +.bs-tooltip-end .tooltip-arrow, +.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow { + left: 0; + width: 0.4rem; + height: 0.8rem; +} +.bs-tooltip-end .tooltip-arrow::before, +.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before { + right: -1px; + border-width: 0.4rem 0.4rem 0.4rem 0; + border-right-color: #000; +} +.bs-tooltip-bottom, +.bs-tooltip-auto[data-popper-placement^=bottom] { + padding: 0.4rem 0; +} +.bs-tooltip-bottom .tooltip-arrow, +.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow { + top: 0; +} +.bs-tooltip-bottom .tooltip-arrow::before, +.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before { + bottom: -1px; + border-width: 0 0.4rem 0.4rem; + border-bottom-color: #000; +} +.bs-tooltip-start, +.bs-tooltip-auto[data-popper-placement^=left] { + padding: 0 0.4rem; +} +.bs-tooltip-start .tooltip-arrow, +.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow { + right: 0; + width: 0.4rem; + height: 0.8rem; +} +.bs-tooltip-start .tooltip-arrow::before, +.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before { + left: -1px; + border-width: 0.4rem 0 0.4rem 0.4rem; + border-left-color: #000; +} +.tooltip-inner { + max-width: 200px; + padding: 0.25rem 0.5rem; + color: #fff; + text-align: center; + background-color: #000; + border-radius: 0.25rem; + -webkit-user-select: none; + user-select: none; + pointer-events: none; +} +.popover { + position: absolute; + top: 0; + left: 0 /* rtl:ignore */; + z-index: 1070; + display: block; + max-width: 276px; + font-family: var(--bs-font-sans-serif); + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: 0.875rem; + word-wrap: break-word; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 0.3rem; +} +.popover .popover-arrow { + position: absolute; + display: block; + width: 1rem; + height: 0.5rem; +} +.popover .popover-arrow::before, +.popover .popover-arrow::after { + position: absolute; + display: block; + content: ""; + border-color: transparent; + border-style: solid; +} +.bs-popover-top > .popover-arrow, +.bs-popover-auto[data-popper-placement^=top] > .popover-arrow { + bottom: calc(-0.5rem - 1px); +} +.bs-popover-top > .popover-arrow::before, +.bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before { + bottom: 0; + border-width: 0.5rem 0.5rem 0; + border-top-color: rgba(0, 0, 0, 0.25); +} +.bs-popover-top > .popover-arrow::after, +.bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after { + bottom: 1px; + border-width: 0.5rem 0.5rem 0; + border-top-color: #fff; +} +.bs-popover-end > .popover-arrow, +.bs-popover-auto[data-popper-placement^=right] > .popover-arrow { + left: calc(-0.5rem - 1px); + width: 0.5rem; + height: 1rem; +} +.bs-popover-end > .popover-arrow::before, +.bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before { + left: 0; + border-width: 0.5rem 0.5rem 0.5rem 0; + border-right-color: rgba(0, 0, 0, 0.25); +} +.bs-popover-end > .popover-arrow::after, +.bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after { + left: 1px; + border-width: 0.5rem 0.5rem 0.5rem 0; + border-right-color: #fff; +} +.bs-popover-bottom > .popover-arrow, +.bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow { + top: calc(-0.5rem - 1px); +} +.bs-popover-bottom > .popover-arrow::before, +.bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before { + top: 0; + border-width: 0 0.5rem 0.5rem 0.5rem; + border-bottom-color: rgba(0, 0, 0, 0.25); +} +.bs-popover-bottom > .popover-arrow::after, +.bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after { + top: 1px; + border-width: 0 0.5rem 0.5rem 0.5rem; + border-bottom-color: #fff; +} +.bs-popover-bottom .popover-header::before, +.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before { + position: absolute; + top: 0; + left: 50%; + display: block; + width: 1rem; + margin-left: -0.5rem; + content: ""; + border-bottom: 1px solid #f0f0f0; +} +.bs-popover-start > .popover-arrow, +.bs-popover-auto[data-popper-placement^=left] > .popover-arrow { + right: calc(-0.5rem - 1px); + width: 0.5rem; + height: 1rem; +} +.bs-popover-start > .popover-arrow::before, +.bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before { + right: 0; + border-width: 0.5rem 0 0.5rem 0.5rem; + border-left-color: rgba(0, 0, 0, 0.25); +} +.bs-popover-start > .popover-arrow::after, +.bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after { + right: 1px; + border-width: 0.5rem 0 0.5rem 0.5rem; + border-left-color: #fff; +} +.popover-header { + padding: 0.5rem 1rem; + margin-bottom: 0; + font-size: 1rem; + background-color: #f0f0f0; + border-bottom: 1px solid rgba(0, 0, 0, 0.2); + border-top-left-radius: calc(0.3rem - 1px); + border-top-right-radius: calc(0.3rem - 1px); +} +.popover-header:empty { + display: none; +} +.popover-body { + padding: 1rem 1rem; + color: #212529; +} +@-webkit-keyframes notyf-fadeinup { + 0% { + opacity: 0; + transform: translateY(25%); + } + to { + opacity: 1; + transform: translateY(0); + } +} +@keyframes notyf-fadeinup { + 0% { + opacity: 0; + transform: translateY(25%); + } + to { + opacity: 1; + transform: translateY(0); + } +} +@-webkit-keyframes notyf-fadeinleft { + 0% { + opacity: 0; + transform: translateX(25%); + } + to { + opacity: 1; + transform: translateX(0); + } +} +@keyframes notyf-fadeinleft { + 0% { + opacity: 0; + transform: translateX(25%); + } + to { + opacity: 1; + transform: translateX(0); + } +} +@-webkit-keyframes notyf-fadeoutright { + 0% { + opacity: 1; + transform: translateX(0); + } + to { + opacity: 0; + transform: translateX(25%); + } +} +@keyframes notyf-fadeoutright { + 0% { + opacity: 1; + transform: translateX(0); + } + to { + opacity: 0; + transform: translateX(25%); + } +} +@-webkit-keyframes notyf-fadeoutdown { + 0% { + opacity: 1; + transform: translateY(0); + } + to { + opacity: 0; + transform: translateY(25%); + } +} +@keyframes notyf-fadeoutdown { + 0% { + opacity: 1; + transform: translateY(0); + } + to { + opacity: 0; + transform: translateY(25%); + } +} +@-webkit-keyframes ripple { + 0% { + transform: scale(0) translateY(-45%) translateX(13%); + } + to { + transform: scale(1) translateY(-45%) translateX(13%); + } +} +@keyframes ripple { + 0% { + transform: scale(0) translateY(-45%) translateX(13%); + } + to { + transform: scale(1) translateY(-45%) translateX(13%); + } +} +.notyf { + position: fixed; + top: 0; + left: 0; + height: 100%; + width: 100%; + color: #fff; + z-index: 9999; + display: flex; + flex-direction: column; + align-items: flex-end; + justify-content: flex-end; + pointer-events: none; + box-sizing: border-box; + padding: 20px; +} +.notyf__icon--error, +.notyf__icon--success { + height: 21px; + width: 21px; + background: #fff; + border-radius: 50%; + display: block; + margin: 0 auto; + position: relative; +} +.notyf__icon--error:after, +.notyf__icon--error:before { + content: ""; + background: currentColor; + display: block; + position: absolute; + width: 3px; + border-radius: 3px; + left: 9px; + height: 12px; + top: 5px; +} +.notyf__icon--error:after { + transform: rotate(-45deg); +} +.notyf__icon--error:before { + transform: rotate(45deg); +} +.notyf__icon--success:after, +.notyf__icon--success:before { + content: ""; + background: currentColor; + display: block; + position: absolute; + width: 3px; + border-radius: 3px; +} +.notyf__icon--success:after { + height: 6px; + transform: rotate(-45deg); + top: 9px; + left: 6px; +} +.notyf__icon--success:before { + height: 11px; + transform: rotate(45deg); + top: 5px; + left: 10px; +} +.notyf__toast { + display: block; + overflow: hidden; + pointer-events: auto; + -webkit-animation: notyf-fadeinup 0.3s ease-in forwards; + animation: notyf-fadeinup 0.3s ease-in forwards; + box-shadow: 0 3px 7px 0 rgba(0, 0, 0, 0.25); + position: relative; + padding: 0 15px; + border-radius: 2px; + max-width: 300px; + transform: translateY(25%); + box-sizing: border-box; + flex-shrink: 0; +} +.notyf__toast--disappear { + transform: translateY(0); + -webkit-animation: notyf-fadeoutdown 0.3s forwards; + animation: notyf-fadeoutdown 0.3s forwards; + -webkit-animation-delay: 0.25s; + animation-delay: 0.25s; +} +.notyf__toast--disappear .notyf__icon, +.notyf__toast--disappear .notyf__message { + -webkit-animation: notyf-fadeoutdown 0.3s forwards; + animation: notyf-fadeoutdown 0.3s forwards; + opacity: 1; + transform: translateY(0); +} +.notyf__toast--disappear .notyf__dismiss { + -webkit-animation: notyf-fadeoutright 0.3s forwards; + animation: notyf-fadeoutright 0.3s forwards; + opacity: 1; + transform: translateX(0); +} +.notyf__toast--disappear .notyf__message { + -webkit-animation-delay: 0.05s; + animation-delay: 0.05s; +} +.notyf__toast--upper { + margin-bottom: 20px; +} +.notyf__toast--lower { + margin-top: 20px; +} +.notyf__toast--dismissible .notyf__wrapper { + padding-right: 30px; +} +.notyf__ripple { + height: 400px; + width: 400px; + position: absolute; + transform-origin: bottom right; + right: 0; + top: 0; + border-radius: 50%; + transform: scale(0) translateY(-51%) translateX(13%); + z-index: 5; + -webkit-animation: ripple 0.4s ease-out forwards; + animation: ripple 0.4s ease-out forwards; +} +.notyf__wrapper { + display: flex; + align-items: center; + padding-top: 17px; + padding-bottom: 17px; + padding-right: 15px; + border-radius: 3px; + position: relative; + z-index: 10; +} +.notyf__icon { + width: 22px; + text-align: center; + font-size: 1.3em; + opacity: 0; + -webkit-animation: notyf-fadeinup 0.3s forwards; + animation: notyf-fadeinup 0.3s forwards; + -webkit-animation-delay: 0.3s; + animation-delay: 0.3s; + margin-right: 13px; +} +.notyf__dismiss { + position: absolute; + top: 0; + right: 0; + height: 100%; + width: 26px; + margin-right: -15px; + -webkit-animation: notyf-fadeinleft 0.3s forwards; + animation: notyf-fadeinleft 0.3s forwards; + -webkit-animation-delay: 0.35s; + animation-delay: 0.35s; + opacity: 0; +} +.notyf__dismiss-btn { + background-color: rgba(0, 0, 0, 0.25); + border: none; + cursor: pointer; + transition: opacity 0.2s ease, background-color 0.2s ease; + outline: none; + opacity: 0.35; + height: 100%; + width: 100%; +} +.notyf__dismiss-btn:after, +.notyf__dismiss-btn:before { + content: ""; + background: #fff; + height: 12px; + width: 2px; + border-radius: 3px; + position: absolute; + left: calc(50% - 1px); + top: calc(50% - 5px); +} +.notyf__dismiss-btn:after { + transform: rotate(-45deg); +} +.notyf__dismiss-btn:before { + transform: rotate(45deg); +} +.notyf__dismiss-btn:hover { + opacity: 0.7; + background-color: rgba(0, 0, 0, 0.15); +} +.notyf__dismiss-btn:active { + opacity: 0.8; +} +.notyf__message { + vertical-align: middle; + position: relative; + opacity: 0; + -webkit-animation: notyf-fadeinup 0.3s forwards; + animation: notyf-fadeinup 0.3s forwards; + -webkit-animation-delay: 0.25s; + animation-delay: 0.25s; + line-height: 1.5em; +} +@media only screen and (max-width: 480px) { + .notyf { + padding: 0; + } + .notyf__ripple { + height: 600px; + width: 600px; + -webkit-animation-duration: 0.5s; + animation-duration: 0.5s; + } + .notyf__toast { + max-width: none; + border-radius: 0; + box-shadow: 0 -2px 7px 0 rgba(0, 0, 0, 0.13); + width: 100%; + } + .notyf__dismiss { + width: 56px; + } +} +.md-select { + padding: 6px; + border-radius: 6px; + border: 1px solid rgba(200, 200, 200, 0.1); + border-top: 1px solid rgba(100, 100, 100, 0.5); + font-family: inherit; + font-size: 14px; + background: rgba(100, 100, 100, 0.25); + color: #eee; +} +.md-select option { + font-size: 1em; + font-family: inherit; + padding: 8px 16px; + background: #404040; +} +.md-select optgroup { + background: #2c2c2c; +} +.md-select:focus { + outline: solid 1px var(--selected); +} +.md-btn { + font-family: inherit; + background: rgba(100, 100, 100, 0.25); + padding: 8px 14px; + border-radius: 6px; + font-size: 14px; + border: 1px solid rgba(100, 100, 100, 0.35); + border-top: 1px solid rgba(100, 100, 100, 0.5); + color: #eee; + white-space: nowrap; + transition: transform 0.2s var(--appleEase), box-shadow 0.2s var(--appleEase); +} +.md-btn.md-btn-block { + display: block; + width: 100%; +} +.md-btn.md-btn-glyph { + display: flex; + align-items: center; + justify-content: center; + width: 100%; +} +.md-btn.md-btn-primary { + background: #ff2b52a6; + color: white; + border: 1px solid rgba(220, 53, 69, 0.25); + border-top: 1px solid rgba(220, 53, 69, 0.5); +} +.md-btn.md-btn-small { + padding: 6px 8px; + font-size: 13px; +} +.md-btn:hover { + filter: brightness(125%); +} +.md-btn:active { + filter: brightness(75%); + transform: scale(0.98); + transition: transform 0s var(--appleEase), box-shadow 0.2s var(--appleEase); +} +.md-btn.md-btn-icon { + display: inline-flex; + vertical-align: middle; + justify-content: center; +} +.md-btn.md-btn-icon > img { + margin: 0px 16px 0px 0px; + pointer-events: none; +} +.md-btn.md-btn-icon > .md-btn-text { + margin: 0px; +} +.btn-group { + display: inline-flex; + justify-content: center; + align-items: center; +} +.btn-group > .md-btn { + border-radius: 0px; + width: 100%; +} +.btn-group > .md-btn:first-child { + border-top-left-radius: 6px; + border-bottom-left-radius: 6px; +} +.btn-group > .md-btn:last-child { + border-top-right-radius: 6px; + border-bottom-right-radius: 6px; +} +.btn-group > .md-btn:not(:first-child):not(:last-child) { + border-radius: 0px; +} +.md-close-btn { + -webkit-mask-image: url("ameres://icons/webui/close.svg"); + -webkit-mask-repeat: no-repeat; + -webkit-mask-position: center; + background-color: white; + opacity: 0.75; + -webkit-mask-size: contain; + height: 18px; + width: 18px; +} +.md-ico-play { + content: url("assets/play.svg"); + width: 10px; + height: 12px; + margin-right: 1px; + align-self: center; +} +.md-ico-shuffle { + content: url("assets/shuffle.svg"); + width: 1em; + height: 1em; + margin-right: 1px; + margin-bottom: -2px; + align-self: center; +} +.md-ico-remove { + content: url("assets/feather/x-circle-white.svg"); + width: 16px; + height: 16px; + margin-right: 1px; + margin-bottom: -1.5px; + align-self: center; +} +.md-ico-add { + content: url("assets/feather/plus-circle-white.svg"); + width: 1em; + height: 1em; + margin-right: 1px; + margin-bottom: -1.5px; + align-self: center; +} +.reload-btn { + background: rgba(86, 86, 86, 0.52); + border-radius: 100%; + width: 32px; + height: 32px; + border: 0px; + appearance: none; + display: flex; + justify-content: center; + align-items: center; +} +.reload-btn:hover { + background: rgba(86, 86, 86, 0.8); + cursor: pointer; +} +.reload-btn > svg { + height: 50%; + color: #eee; +} +.wr-btn { + font-family: inherit; + appearance: none; + border: 0px; + border-radius: 6px; + padding: 8px; + font-weight: 600; + background: rgba(80, 80, 80, 0.7); + color: white; +} +.cd-btn-seeall { + background: transparent; + border: 0px; + color: var(--keyColor); + font-family: inherit; + font-weight: 500; + font-size: 16px; + border-radius: 4px; + padding: 6px; +} +.cd-btn-seeall:hover { + cursor: pointer; + background: rgba(200, 200, 200, 0.1); +} +.mediaitem-artwork { + border-radius: var(--mediaItemRadius); + overflow: hidden; + flex: 0 0 auto; + position: relative; + width: 100%; + height: 100%; + background-image: url("https://beta.music.apple.com/assets/product/MissingArtworkMusic.svg"); + background-size: cover; + background-position: center; +} +.mediaitem-artwork .animatedartwork-view-box { + position: absolute; + top: 0px; + width: 100%; + height: 100%; +} +.mediaitem-artwork .animatedartwork-view-box .animated { + position: absolute; + top: 0px; + width: 100%; + height: 100%; +} +.mediaitem-artwork .animatedartwork-view-box .animated video { + width: 100%; + height: 100%; +} +.mediaitem-artwork.rounded { + border-radius: 100%; +} +.mediaitem-artwork.rounded::after { + border-radius: 100%; +} +.mediaitem-artwork::after { + content: ""; + box-shadow: var(--mediaItemShadow); + z-index: 1; + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; + border-radius: inherit; +} +.mediaitem-artwork img { + width: 100%; + height: 100%; + object-fit: cover; + image-rendering: -webkit-optimize-contrast; + pointer-events: none; +} +.mediaitem-artwork.no-shadow { + box-shadow: none; +} +.mediaitem-artwork.no-shadow::after { + display: none; +} +.mediaitem-artwork.subtle-shadow { + box-shadow: var(--mediaItemShadow-ShadowSubtle); +} +.mediaitem-artwork.shadow { + box-shadow: var(--mediaItemShadow-Shadow); +} +/* queue item */ +.cd-queue-item { + border-bottom: 1px solid rgba(200, 200, 200, 0.1); + padding: 8px; +} +.cd-queue-item .row, +.cd-queue-item .col { + padding: 0px; + margin: 0px; +} +.cd-queue-item .artwork { + width: 32px; + height: 32px; + flex: 0 0 auto; +} +.cd-queue-item.selected { + background: var(--selected); +} +.cd-queue-item:active { + background: var(--selected-click); + color: #eee; +} +.cd-queue-item .queue-info { + display: flex; + flex-direction: column; +} +.cd-queue-item .queue-info .queue-title { + font-size: 14px; +} +.cd-queue-item .queue-info .queue-subtitle { + font-size: 13px; + opacity: 0.85; +} +/* horizontal media scroller */ +.cd-hmedia-scroller::-webkit-scrollbar-thumb { + box-shadow: none; +} +.cd-hmedia-scroller:hover::-webkit-scrollbar-thumb { + box-shadow: inset 0px 0px 10px 10px rgba(200, 200, 200, 0.5); +} +.cd-hmedia-scroller.hmedia-scroller-card .mediaitem-card { + margin: 16px; +} +/* mediaitem-list-item */ +.cd-mediaitem-list-item { + width: 100%; + height: 60px; + display: flex; + flex: 0 0 auto; + flex-direction: row; + font-size: 14px; + justify-content: center-between; + align-items: center; + border-radius: var(--mediaItemRadius); + /* CSS.gg + */ +} +.cd-mediaitem-list-item .artwork { + height: 42px; + width: 42px; + border-radius: var(--mediaItemRadius); + object-fit: cover; + object-position: center; + flex: 0 0 auto; + background-repeat: no-repeat; + margin: 12px; + border: 0px; + outline: none; + position: relative; + overflow: hidden; +} +.cd-mediaitem-list-item .artwork .overlay-play { + background: rgba(0, 0, 0, 0.5); + opacity: 0; + appearance: none; + border: 0; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + padding: 0px; + z-index: 5; + cursor: pointer; +} +.cd-mediaitem-list-item .artwork .overlay-play:hover { + opacity: 1; +} +.cd-mediaitem-list-item .artwork .overlay-play:active { + background: var(--selected-click); +} +.cd-mediaitem-list-item .artwork.round { + border-radius: var(--mediaItemRadiusRound); +} +.cd-mediaitem-list-item .info-rect { + height: 100%; + display: flex; + flex-flow: column; + justify-content: center; + flex-grow: 1; +} +.cd-mediaitem-list-item .title { + width: 100%; +} +.cd-mediaitem-list-item .subtitle { + width: 90%; + font-size: 0.8em; + opacity: 0.7; +} +.cd-mediaitem-list-item .duration { + min-width: 60px; + text-align: center; + height: 100%; + display: flex; + align-items: center; + justify-content: center; +} +.cd-mediaitem-list-item .metainfo { + min-width: 145px; + text-align: center; + height: 100%; + display: flex; + align-items: center; + justify-content: center; +} +.cd-mediaitem-list-item .explicit-icon { + background-image: url("assets/explicit.svg"); + height: 12px; + width: 36px; + filter: contrast(0); + background-repeat: no-repeat; +} +@keyframes load-bar { + 10% { + box-shadow: inset 0 -4px 0; + } + 20% { + box-shadow: inset 0 -10px 0; + } + 30% { + box-shadow: inset 0 -12px 0; + } + 40% { + box-shadow: inset 0 -8px 0; + } + 50% { + box-shadow: inset 0 -4px 0; + } + 60% { + box-shadow: inset 0 -6px 0; + } + 80% { + box-shadow: inset 0 -12px 0; + } + 90% { + box-shadow: inset 0 -6px 0; + } + to { + box-shadow: inset 0 -2px 0; + } +} +.cd-mediaitem-list-item .loadbar-sound, +.cd-mediaitem-list-item .loadbar-sound::after, +.cd-mediaitem-list-item .loadbar-sound::before { + animation: load-bar 1.3s ease infinite alternate; + box-sizing: border-box; + width: 3px; + height: 28px; + box-shadow: inset 0 -12px 0; +} +.cd-mediaitem-list-item .loadbar-sound { + margin-left: 22px; + margin-top: -16px; + position: relative; + transform: scale(var(--load-bar, 1)); + color: var(--keyColor); + display: block; +} +.cd-mediaitem-list-item .loadbar-sound::after, +.cd-mediaitem-list-item .loadbar-sound::before { + content: ""; + position: absolute; + bottom: 0; +} +.cd-mediaitem-list-item .loadbar-sound::before { + left: -4.5px; + animation-delay: -2.4s; +} +.cd-mediaitem-list-item .loadbar-sound::after { + right: -4.2px; + animation-delay: -3.7s; +} +.cd-mediaitem-list-item .isLibrary { + flex: 0 0 auto; + width: 40px; + text-align: center; +} +.cd-mediaitem-list-item .isLibrary button { + appearance: none; + border: 0px; + background: transparent; + cursor: pointer; + filter: contrast(0.8); +} +.cd-mediaitem-list-item:hover { + background: rgba(200, 200, 200, 0.1); + box-shadow: var(--mediaItemShadow); +} +.cd-mediaitem-list-item:hover .overlay-play { + opacity: 1; +} +.cd-mediaitem-list-item.mediaitem-selected { + background: var(--selected); + box-shadow: var(--mediaItemShadow); +} +.cd-mediaitem-list-item:active { + background: var(--selected-click); + box-shadow: var(--mediaItemShadow); + color: #eee; +} +.cd-mediaitem-list-item.disabled { + opacity: 0.5; + pointer-events: none; +} +.cd-mediaitem-list-item.compact { + height: 40px; + font-size: 13px; +} +.cd-mediaitem-list-item.compact .artwork { + display: none; +} +.cd-mediaitem-list-item.compact .info-rect { + padding-left: 1em; +} +/* mediaitem-hrect */ +.cd-mediaitem-hrect { + background: rgba(255, 255, 255, 0.18); + width: 264px; + height: 100px; + display: inline-flex; + flex: 0 0 auto; + flex-direction: row; + font-size: 14px; + justify-content: center; + align-items: center; + border-radius: 6px; + cursor: pointer; +} +.cd-mediaitem-hrect .artwork { + height: 70px; + width: 70px; + background: blue; + border-radius: var(--mediaItemRadius); + background: var(--artwork); + background-size: contain; + flex: 0 0 auto; + background-repeat: no-repeat; + margin: 18px; +} +.cd-mediaitem-hrect .artwork.round { + border-radius: var(--mediaItemRadiusRound); +} +.cd-mediaitem-hrect .info-rect { + width: 100%; +} +.cd-mediaitem-hrect .title { + width: 100%; + text-align: center; +} +.cd-mediaitem-hrect .subtitle { + width: 100%; + text-align: center; + font-size: 12px; +} +/* mediaitem-square-sp */ +.cd-mediaitem-square-sp { + --spcolor: var(""); + width: 190px; + height: 245px; + display: inline-flex; + flex: 0 0 auto; + flex-direction: column; + font-size: 14px; + justify-content: flex-start; + align-items: center; + border-radius: 6px; + margin-left: 10px; + cursor: pointer; + background-color: var(--spcolor); +} +.cd-mediaitem-square-sp .artwork { + height: 190px; + width: 190px; + background: blue; + border-top-left-radius: 6px; + border-top-right-radius: 6px; + background: var(--artwork); + background-size: cover; + flex: 0 0 auto; + margin: 6px; + margin-top: 0px; +} +.cd-mediaitem-square-sp .artwork.round { + border-radius: var(--mediaItemRadiusRound); +} +.cd-mediaitem-square-sp .artwork:hover { + box-shadow: rgba(0, 0, 0, 0.5) 0 0 0 1000000px inset; +} +.cd-mediaitem-square-sp .title { + width: 90%; + text-align: center; +} +.cd-mediaitem-square-sp .subtitle { + width: 100%; + text-align: center; + font-size: 12px; +} +.cd-mediaitem-square-sp > .cd-mediaitem-square-large-overlay { + z-index: 3; +} +.cd-mediaitem-square-sp > .cd-mediaitem-square-large-overlay:hover { + opacity: 1; +} +.cd-mediaitem-square-sp + .cd-mediaitem-square-large-overlay { + pointer-events: none; +} +.cd-mediaitem-square-sp:hover + .cd-mediaitem-square-large-overlay { + opacity: 1; +} +.cd-mediaitem-square-sp:hover { + box-shadow: rgba(0, 0, 0, 0.5) 0 0 0 1000000px inset; +} +/* mediaitem-square-large */ +.cd-mediaitem-square-large { + width: 190px; + height: 250px; + display: inline-flex; + flex: 0 0 auto; + flex-direction: column; + font-size: 14px; + justify-content: flex-start; + align-items: center; + border-radius: 6px; + margin-left: 10px; + cursor: pointer; +} +.cd-mediaitem-square-large > * { + z-index: inherit; +} +.cd-mediaitem-square-large .artwork { + height: 190px; + width: 190px; + background: blue; + border-top-left-radius: 6px; + border-top-right-radius: 6px; + background: var(--artwork); + background-size: cover; + flex: 0 0 auto; + margin: 6px; + margin-top: 0px; +} +.cd-mediaitem-square-large-overlay { + position: absolute; + width: 190px; + float: right; + height: 250px; + top: 0px; + margin: 10px; + margin-top: 0px; + opacity: 0; +} +.cd-mediaitem-square-large-overlay > * { + pointer-events: auto; +} +.cd-mediaitem-square-large > .cd-mediaitem-square-large-overlay { + z-index: 3; +} +.cd-mediaitem-square-large > .cd-mediaitem-square-large-overlay:hover { + opacity: 1; +} +.cd-mediaitem-square-large + .cd-mediaitem-square-large-overlay { + pointer-events: none; +} +.cd-mediaitem-square-large:hover + .cd-mediaitem-square-large-overlay { + opacity: 1; +} +.cd-mediaitem-square-large .artwork.round { + border-radius: var(--mediaItemRadiusRound); +} +.cd-mediaitem-square-large .title { + width: 90%; + text-align: center; +} +.cd-mediaitem-square-large .subtitle { + width: 100%; + text-align: center; + font-size: 12px; +} +/* mediaitem-mvview */ +/* mediaitem-mvview */ +.cd-mediaitem-mvview { + width: 300px; + height: 250px; + display: inline-flex; + flex: 0 0 auto; + flex-direction: column; + font-size: 14px; + justify-content: flex-start; + align-items: center; + border-radius: 6px; + margin-left: 10px; + cursor: pointer; +} +.cd-mediaitem-mvview > * { + z-index: inherit; +} +.cd-mediaitem-mvview .artwork { + height: 172px; + width: 300px; + background: blue; + border-top-left-radius: 6px; + border-top-right-radius: 6px; + background: var(--artwork); + background-size: cover; + flex: 0 0 auto; + margin: 6px; + margin-top: 0px; +} +.cd-mediaitem-mvview-overlay { + position: absolute; + width: 300px; + float: right; + height: 250px; + top: 0px; + margin: 10px; + margin-top: 0px; + opacity: 0; +} +.cd-mediaitem-mvview-overlay > * { + pointer-events: auto; +} +.cd-mediaitem-mvview > .cd-mediaitem-mvview-overlay { + z-index: 3; +} +.cd-mediaitem-mvview > .cd-mediaitem-mvview-overlay:hover { + opacity: 1; +} +.cd-mediaitem-mvview + .cd-mediaitem-mvview-overlay { + pointer-events: none; +} +.cd-mediaitem-mvview:hover + .cd-mediaitem-mvview-overlay { + opacity: 1; +} +.cd-mediaitem-mvview .artwork.round { + border-radius: var(--mediaItemRadiusRound); +} +.cd-mediaitem-mvview .title { + width: 90%; + text-align: center; +} +.cd-mediaitem-mvview .subtitle { + width: 100%; + text-align: center; + font-size: 12px; +} +/* mediaitem-square */ +.cd-mediaitem-square { + width: 220px; + height: 238px; + display: inline-flex; + flex: 0 0 auto; + flex-direction: column; + font-size: 14px; + justify-content: center; + align-items: center; + border-radius: 6px; +} +.cd-mediaitem-square .artwork-container { + position: relative; +} +.cd-mediaitem-square .artwork-container .artwork { + height: 190px; + width: 190px; + background: blue; + border-radius: var(--mediaItemRadius); + background: var(--artwork); + background-size: cover; + flex: 0 0 auto; + margin: 6px; + cursor: pointer; +} +.cd-mediaitem-square .artwork-container .artwork.round { + border-radius: var(--mediaItemRadiusRound); +} +.cd-mediaitem-square .artwork-container .badge-container { + transition: opacity 0.1s var(--appleEase); + opacity: 1; +} +.cd-mediaitem-square .artwork-container .badge-container .socialBadge { + width: 32px; + height: 32px; + position: absolute; + right: 14px; + bottom: 14px; + border-radius: 100%; + overflow: hidden; + z-index: 2; + pointer-events: none; +} +.cd-mediaitem-square .artwork-container > .play-btn, +.cd-mediaitem-square .artwork-container > .menu-btn { + opacity: 0; + appearance: none; + padding: 0px; + border: 0px; + width: 30px; + height: 30px; + border-radius: 50%; + background: rgba(50, 50, 50, 0.7); + cursor: pointer; + transition: opacity 0.1s var(--appleEase); +} +.cd-mediaitem-square .artwork-container > .play-btn :hover, +.cd-mediaitem-square .artwork-container > .menu-btn :hover { + border-radius: 50%; + background: rgba(250, 0, 0, 0.7); +} +.cd-mediaitem-square .artwork-container > .play-btn { + position: absolute; + bottom: 14px; + left: 14px; + z-index: 2; +} +.cd-mediaitem-square .artwork-container > .menu-btn { + position: absolute; + bottom: 14px; + right: 14px; + z-index: 2; +} +.cd-mediaitem-square .artwork-container:hover > .badge-container { + opacity: 0; +} +.cd-mediaitem-square .artwork-container:hover > .play-btn, +.cd-mediaitem-square .artwork-container:hover > .menu-btn { + opacity: 1; +} +.cd-mediaitem-square .info-rect { + width: 90%; + height: 100%; + display: flex; + flex-direction: column; + align-items: center; +} +.cd-mediaitem-square .title { + width: 100%; + text-align: center; + display: flex; + align-content: center; + justify-content: center; +} +.cd-mediaitem-square .subtitle { + width: 100%; + text-align: center; + font-size: 12px; +} +.cd-mediaitem-square .unavailable-overlay { + position: absolute; + top: 0px; + left: 0px; + bottom: 0; + right: 0; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + z-index: 2; + pointer-events: none; + background: rgba(0, 0, 0, 0.4); + margin: 2em; + border-radius: 10px; +} +.cd-mediaitem-square .unavailable-overlay > .codicon { + font-size: 4em; + font-weight: bold; + opacity: 0.5; +} +.cd-mediaitem-square.mediaitem-video { + height: 200px; + width: 240px; +} +.cd-mediaitem-square.mediaitem-video .artwork { + height: 120px; + width: 212px; +} +.cd-mediaitem-square.mediaitem-brick { + height: 200px; + width: 240px; +} +.cd-mediaitem-square.mediaitem-brick .artwork { + height: 123px; + width: 220px; +} +.cd-mediaitem-square.mediaitem-small { + width: 140px; + height: 180px; +} +.cd-mediaitem-square.mediaitem-small .artwork { + height: 128px; + width: 128px; +} +.cd-mediaitem-square.mediaitem-card { + background: #ccc; + background: var(--spcolor); + height: 298px; + width: 230px; + max-width: 250px; + max-height: 500px; + overflow: hidden; + position: relative; + border-radius: calc(var(--mediaItemRadius) * 2); + box-shadow: var(--mediaItemShadow-ShadowSubtle); +} +.cd-mediaitem-square.mediaitem-card .artwork { + width: 230px; + height: 230px; + overflow: hidden; + border-radius: 0px; + margin: 0; +} +.cd-mediaitem-square.mediaitem-card .artwork .mediaitem-artwork { + border-radius: 0px; +} +.cd-mediaitem-square.mediaitem-card .artwork .mediaitem-artwork::after { + box-shadow: unset; +} +.cd-mediaitem-square.mediaitem-card .info-rect-card { + padding: 10px 10px 14px; + position: relative; + width: 100%; +} +.cd-mediaitem-square.mediaitem-card .info-rect-card::before { + background: var(--bgartwork); + content: ""; + top: 0; + left: 0; + bottom: 0; + right: 0; + position: absolute; + background-size: cover; + background-position: bottom; + z-index: 0; + opacity: 1; + filter: brightness(0.5) blur(50px) saturate(180%); +} +.cd-mediaitem-square.mediaitem-card .title { + height: 100%; + display: flex; + justify-content: center; + align-items: center; + font-size: 0.9em; + font-weight: 500; + z-index: 1; +} +.cd-mediaitem-square.mediaitem-card .subtitle { + height: 100%; + justify-content: center; + align-items: center; + font-size: 0.75em; + width: 100%; + display: flex; + z-index: 1; +} +.cd-mediaitem-square.mediaitem-card::after { + box-shadow: var(--mediaItemShadow); + content: ""; + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; + pointer-events: none; + border-radius: inherit; +} +/* mediaitem-square */ +.albums-square-containeru > * > .cd-mediaitem-square { + --frame: max(220px, 15vw); + width: var(--frame); + height: calc(var(--frame) * 13 / 11); + display: inline-flex; + flex: 0 0 auto; + flex-direction: column; + font-size: calc(var(--frame) / 220 * 14); + justify-content: center; + align-items: center; + border-radius: calc(var(--frame) / 220 * 6); +} +.albums-square-containeru > * > .cd-mediaitem-square .artwork-container { + position: relative; +} +.albums-square-containeru > * > .cd-mediaitem-square .artwork-container .artwork { + height: calc(var(--frame) * 19 / 22); + width: calc(var(--frame) * 19 / 22); + background: blue; + border-radius: var(--mediaItemRadius); + background: var(--artwork); + background-size: cover; + flex: 0 0 auto; + margin: calc(var(--frame) / 220 * 6); + cursor: pointer; +} +.albums-square-containeru > * > .cd-mediaitem-square .artwork-container .artwork.round { + border-radius: var(--mediaItemRadiusRound); +} +.albums-square-containeru > * > .cd-mediaitem-square .artwork-container > .play-btn, +.albums-square-containeru > * > .cd-mediaitem-square .artwork-container > .menu-btn { + opacity: 0; + appearance: none; + padding: 0px; + border: 0px; + width: calc(var(--frame) / 220 * 30); + height: calc(var(--frame) / 220 * 30); + border-radius: 50%; + background: rgba(50, 50, 50, 0.7); + cursor: pointer; + backdrop-filter: blur(32px) saturate(180%); + transition: opacity 0.1s var(--appleEase); +} +.albums-square-containeru > * > .cd-mediaitem-square .artwork-container > .play-btn { + position: absolute; + bottom: calc(var(--frame) / 220 * 14); + left: calc(var(--frame) / 220 * 14); + z-index: 2; +} +.albums-square-containeru > * > .cd-mediaitem-square .artwork-container > .menu-btn { + position: absolute; + bottom: calc(var(--frame) / 220 * 14); + right: calc(var(--frame) / 220 * 14); + z-index: 2; +} +.albums-square-containeru > * > .cd-mediaitem-square .artwork-container:hover > .play-btn, +.albums-square-containeru > * > .cd-mediaitem-square .artwork-container:hover > .menu-btn { + opacity: 1; +} +.albums-square-containeru > * > .cd-mediaitem-square .title { + width: 90%; + text-align: center; +} +.albums-square-containeru > * > .cd-mediaitem-square .subtitle { + width: 100%; + text-align: center; + font-size: calc(var(--frame) / 220 * 12); +} +.albums-square-containeru > * > .cd-mediaitem-square.mediaitem-video { + height: calc(var(--frame) / 220 * 200); + width: calc(var(--frame) / 220 * 240); +} +.albums-square-containeru > * > .cd-mediaitem-square.mediaitem-video .artwork { + height: calc(var(--frame) / 220 * 120); + width: calc(var(--frame) / 220 * 212); +} +.albums-square-containeru > * > .cd-mediaitem-square.mediaitem-brick { + height: calc(var(--frame) / 220 * 200); + width: calc(var(--frame) / 220 * 240); +} +.albums-square-containeru > * > .cd-mediaitem-square.mediaitem-brick .artwork { + height: calc(var(--frame) / 220 * 123); + width: calc(var(--frame)); +} +.listitem-horizontal .cd-mediaitem-list-item { + width: 350px; + height: 60px; +} +.mediaitem-list-item__grid { + background: rgba(200, 200, 200, 0.05); + border-radius: 10px; + padding: var(--contentInnerPadding); + box-shadow: rgba(0, 0, 0, 0.08) 0px 0px 0px 1px; + width: 100%; +} +.mediaitem-list-item__grid .cd-mediaitem-list-item { + width: 350px; + height: 60px; +} +.mediaitem-list-item__grid::-webkit-scrollbar { + display: none; +} +.mediaitem-list-item__grid:hover::-webkit-scrollbar { + display: initial; +} +.svg-icon { + --color: #aaa; + --url: url("assets/feather/share.svg"); + -webkit-mask-image: var(--url); + -webkit-mask-size: cover; + height: 18px; + width: 18px; + background: var(--color); +} +.svg-icon.inline { + display: inline-block; +} +.sidebar-icon { + width: 18px; + height: 18px; + margin-right: 8px; +} +.sidebar-icon > .svg-icon { + width: 100%; + height: 100%; + --color: #aaa; +} +.sidebar-icon > svg { + width: 100%; + height: 100%; + color: #aaa; +} +/* Switch Checkbox */ +input[type=checkbox][switch] { + width: 38px; + appearance: none; + border-radius: 32px; + height: 24px; + zoom: 1; + top: 0; + cursor: pointer; + left: 0; + position: relative; + transform: scale(1); + background: #8e8e93; + padding: 0; + margin: 0; +} +input[type=checkbox][switch]:focus, +input[type=checkbox][switch]:active { + outline: none; +} +input[type=checkbox][switch]:checked { + background: var(--keyColor); + border: 0 solid var(--keyColor); + mix-blend-mode: unset; +} +input[type=checkbox][switch]:checked:hover { + background: var(--keyColor-rollover); +} +input[type=checkbox][switch]:checked:active { + background: var(--keyColor-pressed); +} +input[type=checkbox][switch]::before { + background: white; + width: 26px; + height: 26px; + top: -1px; + left: -1px; + position: absolute; + content: ' '; + border-radius: 32px; + transition: 0.1s left var(--appleEase); + transform: scale(0.75); +} +input[type=checkbox][switch]:checked::before { + background: white; + top: -1px; + left: 13px; + transition: 0.1s left var(--appleEase); + transform: scale(0.75); +} +input[type=checkbox][switch]:disabled::before { + opacity: 0.5; +} +input[type=checkbox][switch]:active::before { + left: 13px; +} +input[type=checkbox][switch]:checked:active::before { + left: -1px; +} +/* End Switch Checkbox */ +.header-text { + margin: 0px; +} +.media-item--small { + background: rgba(0, 0, 0, 0.25); + height: 162px; + width: 132px; + display: inline-flex; + flex-direction: column; + justify-content: center; + align-items: center; + border-radius: 10px; +} +.media-item--small .artwork { + background: red; + margin: 6px; + border-radius: 100%; + width: 90px; + height: 90px; + box-shadow: inset 0px 0px 0px 1px rgba(200, 200, 200, 0.3); +} +.playlist-artwork { + height: 190px; + width: 190px; + background: blue; + border-radius: 6px; + background: var(--artwork); + background-size: cover; + box-shadow: var(--mediaItemShadow); + flex: 0 0 auto; + margin: 6px; + margin-top: 0px; +} +.media-item--small .text { + font-weight: 600; + font-size: 0.9em; +} +.media-item--small .subtext { + font-size: 0.75em; +} +.player-duration-time { + opacity: 0.5; +} +.player-artwork-container { + display: flex; + align-items: center; + justify-content: center; +} +.player-duration-container { + font-size: 0.85em; + font-weight: 500; +} +.media-artwork { + --artwork: url(""); + width: 80vw; + height: 80vw; + max-height: 500px; + max-width: 500px; + background: black; + background-image: var(--artwork); + background-size: cover; + background-position: center; + background-repeat: no-repeat; + border-radius: 8px; + box-shadow: inset 0px 0px 0px 1px rgba(200, 200, 200, 0.16), 0 8px 40px rgba(0, 0, 0, 0.55); + transition: transform 0.1s var(--appleEase); +} +.media-artwork.paused { + transition: transform 0.35s var(--appleEase); + transform: scale(0.85); +} +.playback-slider { + width: 90%; +} +.volume-slider { + width: 100%; +} +.volume-slider-container { + width: 90%; + margin: 0 auto; + padding: 0px; +} +.volume-slider-container .col-auto, +.volume-slider-container .col { + display: flex; + align-items: center; + justify-self: center; + padding: 0px; + margin: 0px; +} +.playback-button { + font-size: 2em; + width: 40px; + height: 36px; + padding: 0px; + background: transparent; + border: 0px; + border-radius: 0px; + box-shadow: unset; + background-size: 12px; + background-position: center; + background-repeat: no-repeat; + opacity: 0.7; + border-radius: 6px; +} +.playback-button:active { + transform: scale(0.95); +} +.playback-button--small { + border-radius: 6px; + font-size: 1em; + color: inherit; + background-size: 14px; + background-repeat: no-repeat; + background-position: center; + background-color: transparent; + width: 40px; + height: 32px; + border: 0px; + box-shadow: unset; + opacity: 0.7; +} +.playback-button:hover, +.playback-button--small:hover { + background-color: rgba(200, 200, 200, 0.1); +} +.playback-button:active, +.playback-button--small:active { + transform: scale(0.9); +} +.playback-button--small.active { + background-color: rgba(200, 200, 200, 0.25); +} +.playback-button--small.search { + background-image: url("assets/search.svg"); +} +.playback-button--small.cast { + background-image: url("assets/cast_white.svg"); +} +.playback-button--small.miniplayer { + background-image: url("assets/pip.svg"); +} +.playback-button--small.queue { + background-image: url("assets/list.svg"); +} +.playback-button--small.lyrics { + background-image: url("assets/quote-right.svg"); +} +.playback-button--small.shuffle { + background-image: url("assets/shuffle.svg"); +} +.playback-button--small.repeat { + background-image: url("assets/repeat.svg"); +} +.playback-button--small.repeat.repeatOne { + background-color: rgba(200, 200, 200, 0.25); + background-image: url("assets/repeatOne.svg"); +} +.playback-button.pause { + background-image: url('assets/pause.svg'); +} +.playback-button.play { + background-image: url('assets/play.svg'); +} +.playback-button.next { + background-image: url('assets/forward.svg'); +} +.playback-button.previous { + background-image: url('assets/backward.svg'); +} +.playback-buttons { + display: flex; + align-items: center; + justify-content: center; +} +.player-volume-glyph { + width: 32px; + height: 16px; + background-repeat: no-repeat; + background-size: contain; + background-position: center; +} +.player-volume-glyph.decrease { + background-image: url("assets/volume.svg"); + opacity: 0.5; +} +.player-volume-glyph.increase { + background-image: url("assets/volume-2.svg"); + opacity: 0.5; +} +.player-track-info { + width: 90%; + margin: 0 auto; +} +.player-song-title { + font-size: 1.25em; + text-align: left; + margin: 0 auto; + font-weight: 500; +} +.player-song-artist { + font-size: 1em; + text-align: left; + margin: 0 auto; + color: var(--keyColor); + font-weight: 400; +} +.player-song-artist:hover { + cursor: pointer; + text-decoration: underline; +} +.player-more-container { + display: flex; + align-items: center; + justify-content: center; +} +.player-more-button { + appearance: none; + width: 32px; + height: 32px; + border-radius: 50%; + border: 0px; + background: var(--keyColor); + cursor: pointer; + box-shadow: inset 0px 0px 0px 1px rgba(200, 200, 200, 0.16); + color: white; + font-weight: bold; + padding: 0px; + font-size: 16px; +} +.back-button { + width: 40px; + height: 40px; + background-color: transparent; + background-size: 16px; + background-position: center; + background-repeat: no-repeat; + background-image: url("assets/arrow-left.svg"); + border: 0px; + border-radius: 0px; +} +.header-text { + height: 40px; + display: flex; + align-items: center; +} +.list-entry-header { + display: flex; + align-items: center; + justify-content: space-between; + padding: 12px; + font-size: 1em; + font-family: inherit; +} +.list-entry { + display: flex; + align-items: center; + /* justify-content: space-between; */ + padding: 12px; + font-size: 1em; + font-family: inherit; + border-bottom: 1px solid rgba(255 255 255 / 0.1); + cursor: pointer; +} +.list-entry-image { + --artwork: url(""); + width: 64px; + height: 64px; + background: var(--artwork); + background-size: cover; + background-position: center; + background-repeat: no-repeat; + border-radius: 8px; + box-shadow: inset 0px 0px 0px 1px rgba(200, 200, 200, 0.16), 0 8px 40px rgba(0, 0, 0, 0.55); +} +.list-entry-image.artist { + border-radius: 50%; +} +.list-entry-body { + display: flex; + flex-direction: column; + justify-content: center; + align-items: flex-start; + margin-left: 12px; +} +.list-entry-name { + font-size: 14px; + font-weight: 500; + overflow: hidden; + width: 100%; +} +.list-entry-artist { + font-size: 12px; + overflow: hidden; + width: 100%; +} +.list-entry .handle { + height: 100%; + width: 28px; + background: var(--keyColor); + display: flex; + justify-content: center; + align-items: center; +} +.artist-chip { + display: inline-flex; + align-items: center; + justify-content: center; + margin: 4px 0px; + border-radius: 4px; + color: white; + font-size: 1em; + font-weight: 500; + cursor: pointer; + padding: 8px; +} +.artist-chip:hover { + background: var(--selected); +} +.artist-chip .artist-chip__follow { + appearance: none; + border: 0; + height: 32px; + width: 32px; + background: #ffffff0f; + margin: 0px 0px 0px 10px; + font-weight: bold; + color: white; + border-radius: 100%; + display: flex; + justify-content: center; + align-items: center; + font-size: 12px; + cursor: pointer; + flex: 0 0 32px; +} +.artist-chip .artist-chip__follow:hover { + background: var(--selected); +} +.artist-chip .artist-chip__image { + width: 32px; + height: 32px; + background-size: contain; + background-position: center; + background-repeat: no-repeat; + border-radius: 100%; + overflow: hidden; + margin: 0px 12px 0px 0px; + pointer-events: none; + flex: 0 0 32px; +} +.artist-chip .artist-chip__image .mediaitem-artwork { + border-radius: inherit; +} +.artist-chip .artist-chip__name { + pointer-events: none; +} +.search-panel { + background: rgba(0, 0, 0, 0.5); +} +.search-header { + position: absolute; + width: 100%; + z-index: 1; + backdrop-filter: blur(16px); + -webkit-backdrop-filter: blur(16px); + border-bottom: 1px solid rgba(200, 200, 200, 0.08); +} +.connection-error-panel { + background: rgba(0, 0, 0, 0.5); +} +.search-type-container { + display: flex; +} +.search-type-button { + background: rgba(20, 20, 20, 0.85); + border-radius: 50px; + color: white; + border: 0px; + box-shadow: unset; + font-family: inherit; + padding: 8px 16px; + font-size: 14px; + font-weight: 500; + margin: 8px; + margin-top: 0px; + margin-bottom: 0px; +} +.search-type-button.active { + background: var(--keyColor); +} +.search-tab-container { + overflow: auto; + white-space: nowrap; + overflow-y: hidden; +} +.search-body-container { + position: relative; + width: 100%; + height: 100%; +} +.search-body { + position: absolute; + width: 100%; + height: 100%; + padding-top: 220px; +} +.search-tab { + background: rgba(20, 20, 20, 0.85); + border-radius: 50px; + color: white; + border: 0px; + box-shadow: unset; + font-family: inherit; + padding: 8px 16px; + font-size: 14px; + font-weight: 500; +} +.search-tab.active { + background: var(--keyColor); +} +.notyf__toast { + -webkit-app-region: no-drag; + cursor: pointer; +} +.notyf-info { + background: var(--keyColor); +} +.tooltip-inner { + background: #2f2f2f; + opacity: 1; + border: 1px solid rgba(0, 0, 0, 0.35); + transition: all 0.3s ease-in-out; + box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.25); +} +.modal-fullscreen { + display: flex; + justify-content: center; + align-items: center; + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.3); + z-index: 1000; +} +.modal-fullscreen .modal-window { + background: #333; + border-radius: 10px; + box-shadow: var(--mediaItemShadow-Shadow); + display: flex; + flex-flow: column; + max-height: 500px; + max-width: 360px; + background: #121212; + width: 100%; + position: relative; +} +.modal-fullscreen .modal-window:after { + content: ""; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + pointer-events: none; + box-shadow: var(--mediaItemShadow); + z-index: 1; + border-radius: inherit; +} +.modal-fullscreen .modal-window .modal-header { + width: 100%; + padding: 6px; +} +.modal-fullscreen .modal-window .modal-content { + width: 100%; + height: 100%; + overflow: hidden; + overflow-y: overlay; +} +.spatialproperties-panel .modal-window { + height: 700px; + max-height: 700px; + width: 800px; + max-width: 800px; + overflow: hidden; +} +.spatialproperties-panel .modal-window .info-header { + padding-left: 12px; +} +.spatialproperties-panel .modal-window .visual-container { + display: flex; + justify-content: center; + align-items: center; + overflow: hidden; +} +.spatialproperties-panel .modal-window .visual { + position: relative; + height: 250px; + width: 300px; + display: inline-flex; + align-items: flex-end; + justify-content: center; + filter: drop-shadow(2px 12px 6px rgba(0, 0, 0, 0.25)); + margin: 0 auto; +} +.spatialproperties-panel .modal-window .visual .face { + position: absolute; + width: calc(12px * 6); + height: calc(12px * 6); + border-radius: 6px; + transform: rotateX(60deg) rotateZ(-45deg); + transition: transform 0.2s linear, width 0.2s linear, height 0.2s linear; +} +.spatialproperties-panel .modal-window .visual .listener { + position: absolute; + width: 32px; + height: 32px; + border-radius: 6px; + transform: rotateX(60deg) rotateZ(-45deg); + transition: transform 0.2s linear, width 0.2s linear, height 0.2s linear; + background: white; + color: black; + z-index: 2; +} +.spatialproperties-panel .modal-window .visual .audiosource { + position: absolute; + width: 32px; + height: 32px; + border-radius: 6px; + transform: rotateX(60deg) rotateZ(-45deg); + transition: transform 0.2s linear, width 0.2s linear, height 0.2s linear; + background: yellow; + z-index: 2; +} +.spatialproperties-panel .modal-window .visual .face:nth-of-type(1) { + background: linear-gradient(45deg, #28223a, #1f2038); + z-index: 1; +} +.spatialproperties-panel .modal-window .visual .face:nth-of-type(2) { + background: linear-gradient(45deg, #7d53ad, #5763ff); + transform: rotateX(60deg) rotateZ(-45deg) translateZ(30px); + opacity: 0.7; + z-index: 3; +} +.spatialproperties-panel .modal-window .modal-header { + padding: 16px; + position: relative; + overflow: hidden; +} +.spatialproperties-panel .modal-window .modal-header .modal-title { + text-align: center; +} +.spatialproperties-panel .modal-window .modal-header .close-btn { + width: 50px; + height: 100%; + background-image: var(--gfx-closeBtn); + background-position: center; + background-repeat: no-repeat; + -webkit-app-region: no-drag; + appearance: none; + border: 0; + background-color: transparent; + position: absolute; + top: 0; + right: 0; +} +.spatialproperties-panel .modal-window .modal-header .close-btn:hover { + background-color: #c42b1c; +} +.addtoplaylist-panel .modal-window { + max-height: 600px; + max-width: 400px; + background: rgba(18, 18, 18, 0.9); + overflow: hidden; + backdrop-filter: blur(16px) saturate(180%); +} +.addtoplaylist-panel .modal-window .modal-header { + padding: 16px; + position: relative; +} +.addtoplaylist-panel .modal-window .modal-header .modal-title { + text-align: center; +} +.addtoplaylist-panel .modal-window .modal-header .close-btn { + width: 50px; + height: 100%; + background-image: var(--gfx-closeBtn); + background-position: center; + background-repeat: no-repeat; + -webkit-app-region: no-drag; + appearance: none; + border: 0; + background-color: transparent; + position: absolute; + top: 0; + right: 0; +} +.addtoplaylist-panel .modal-window .modal-header .close-btn:hover { + background-color: #c42b1c; +} +.addtoplaylist-panel .modal-window .modal-search { + width: 100%; + padding: 0px 16px; + position: relative; +} +.addtoplaylist-panel .modal-window .playlist-item { + appearance: none; + border: 0px; + text-align: left; + width: 100%; + margin: 0; + display: flex; + background: rgba(32, 32, 32, 0.46); + color: #eee; + font-family: inherit; + font-size: 0.98em; + padding: 6px 12px; + align-items: center; + flex-flow: row; +} +.addtoplaylist-panel .modal-window .playlist-item .icon { + pointer-events: none; + width: 32px; + height: 32px; + display: flex; + justify-content: center; + align-items: center; + margin-right: 6px; +} +.addtoplaylist-panel .modal-window .playlist-item .name { + position: relative; +} +.addtoplaylist-panel .modal-window .playlist-item:hover { + background: var(--selected); +} +.addtoplaylist-panel .modal-window .playlist-item:active { + background: var(--selected-click); +} +.addtoplaylist-panel .modal-window .playlist-item.focused { + background: var(--keyColor); +} +.addtoplaylist-panel .modal-window .playlist-item:last-child { + border-bottom: 0px; +} +.menu-panel { + width: 100%; + height: 100%; + position: fixed; + top: 0; + left: 0; + z-index: 100001; + display: flex; + justify-content: center; + align-items: center; + -webkit-app-region: no-drag; +} +.menu-panel .menu-header-body { + padding: 6px; + display: flex; + background: rgba(200, 200, 200, 0.1); +} +.menu-panel .menu-header-body .menu-option-header { + width: 40px; + height: 40px; + display: flex; + justify-content: center; + align-items: center; + border-radius: var(--mediaItemRadius); + appearance: none; + border: 0; + background: transparent; +} +.menu-panel .menu-header-body .menu-option-header.active .sidebar-icon > .svg-icon { + --color: var(--keyColor); +} +.menu-panel .menu-header-body .menu-option-header:hover { + background: var(--selected); +} +.menu-panel .menu-header-body .menu-option-header:active { + background: var(--selected-click); +} +.menu-panel .menu-panel-body { + display: flex; + flex-flow: column; + background: #262626; + position: relative; + min-width: 200px; + box-shadow: var(--ciderShadow-Generic); + border-radius: var(--mediaItemRadius); + overflow: hidden; + font-size: 13px; +} +.menu-panel .menu-panel-body .menu-option { + text-align: left; + display: flex; + width: 100%; + padding: 9px 16px; + appearance: none; + border: 0px; + font: inherit; + background: transparent; + color: inherit; +} +.menu-panel .menu-panel-body .menu-option:hover { + background: var(--selected); +} +.menu-panel .menu-panel-body .menu-option:active { + background: var(--selected-click); +} +.menu-panel .menu-header-text { + margin: 18px 6px; +} +.menu-panel .menu-header-text .close-btn { + width: 50px; + height: 42px; + background-image: var(--gfx-closeBtn); + background-position: center; + background-repeat: no-repeat; + -webkit-app-region: no-drag; + appearance: none; + border: 0; + background-color: transparent; + position: absolute; + top: 0; + right: 0; +} +.menu-panel .menu-header-text .close-btn:hover { + background-color: #c42b1c; +} +.menu-panel .menu-body { + overflow: overlay; + height: 100%; +} +.menu-panel .menu-footer { + width: 100%; + padding: 12px; +} +.queue-panel { + height: 100%; + width: 100%; + display: flex; + flex-flow: column; +} +.queue-panel .queue-header-text { + margin: 18px 6px; +} +.queue-panel .queue-body { + overflow: overlay; + height: 100%; +} +.queue-panel .queue-footer { + width: 100%; + padding: 12px; +} +.queue-panel .autoplay { + background: rgba(200, 200, 200, 0.15); + display: flex; + justify-content: center; + appearance: none; + border: 0; + border-radius: 6px; + height: 32px; + width: 32px; +} +.queue-panel .infinity { + content: url("assets/infinity.svg"); + margin: auto; +} +.content-inner { + position: absolute; + top: var(--navigationBarHeight); + left: 0; + padding: 32px; + width: 100%; + transition: zoom 1s; + zoom: 1; +} +.content-inner.centered { + height: 100%; + display: flex; + flex-flow: column; + justify-content: center; + align-items: center; +} +.github-themes-page { + display: flex; + flex-direction: column; + padding: 0px; + height: calc(100% - var(--navigationBarHeight)); +} +.github-themes-page .github-avatar { + height: 42px; + width: 42px; + margin: 6px; + border-radius: 32px; +} +.github-themes-page .repo-name { + margin: 0px; + font-weight: 500; + overflow: hidden; + text-overflow: ellipsis; + white-space: break-spaces; +} +.github-themes-page .repo-url { + color: var(--textColor); + font-size: 0.8em; +} +.github-themes-page .repo-preview-name { + margin: 0px; +} +.github-themes-page .repos-list { + height: 100%; + overflow-y: overlay; + width: 320px; + font-size: 14px; +} +.github-themes-page .repos-list > .list-group { + margin: 0px; +} +.github-themes-page .repos-list .list-group-item { + padding: 12px 6px; +} +.github-themes-page .repos-list .list-group-item:hover { + filter: brightness(1.2); +} +.github-themes-page .repos-list .list-group-item:active { + filter: brightness(0.8); +} +.github-themes-page .github-preview { + height: 100%; + flex: 1; + background: var(--color2); + padding: 16px 32px; + overflow-y: overlay; +} +.github-themes-page .gh-content { + display: flex; + flex-direction: row; + flex: 1; + overflow: hidden; +} +.github-themes-page .gh-header { + padding: 16px; +} +.library-page { + padding: 0px; +} +.library-page .library-header { + position: sticky; + top: 0; + left: 0; + border-bottom: 1px solid rgba(200, 200, 200, 0.05); + z-index: 6; + background: black; + padding: 0px 2em; + backdrop-filter: blur(32px); + background: rgba(0, 0, 0, 0.25); + top: var(--navigationBarHeight); +} +.library-page .well { + margin: 2em; +} +.content-inner.podcasts-page { + display: flex; + height: calc(100% - var(--navigationBarHeight)); + padding: 0px; +} +.content-inner.podcasts-page .list-flat { + border-radius: 0px; +} +.content-inner.podcasts-page .podcast-artwork { + width: 200px; + margin: 16px auto; + height: 200px; +} +.content-inner.podcasts-page .podcasts-list { + height: 100%; + width: 280px; + background: rgba(200, 200, 200, 0.1); + overflow-y: overlay; + border-right: 1px solid var(--color2); + flex: none; + overflow-x: hidden; +} +.content-inner.podcasts-page .podcasts-list .podcast-list-header { + border-bottom: 1px solid var(--color2); + font-size: 0.7em; + padding: 6px; + background: #ffffff17; + text-transform: uppercase; + font-weight: 600; + opacity: 0.5; +} +.content-inner.podcasts-page .podcasts-list .podcasts-search { + padding: 10px; + position: sticky; + top: 0; + left: 0; + width: 100%; + border-bottom: 1px solid var(--color2); + z-index: 2; + background: #303030; +} +.content-inner.podcasts-page .episodes-list { + height: 100%; + width: 100%; + background: rgba(200, 200, 200, 0.06); + overflow-y: overlay; + overflow-x: hidden; +} +.content-inner.podcasts-page .episodes-list .episodes-inline-info { + padding: 14px 14px 0px 14px; +} +.content-inner.podcasts-page .episodes-list .episodes-inline-info .podcast-show-info { + display: flex; + justify-content: center; + flex-direction: column; +} +.content-inner.podcasts-page .episodes-list .episodes-inline-info .podcast-show-description { + margin: 32px 6px; + font-size: 0.8rem; + white-space: pre-wrap; + display: block; +} +.content-inner.podcasts-page .episodes-list .episodes-inline-info .podcast-artwork { + width: 120px; + margin: 0px auto; + height: 120px; +} +.content-inner.podcasts-page .episodes-list .podcast-no-search-results { + text-align: center; + margin-top: 40px; +} +.content-inner.podcasts-page .podcasts-details { + width: 300px; + flex: none; + background: rgba(255, 255, 255, 0.05); + overflow-y: overlay; + overflow-x: hidden; + top: 2%; + z-index: 2; + border-left: 1px solid var(--color2); + padding-bottom: 1em; +} +.content-inner.podcasts-page .podcasts-details .meta-btn { + font-size: 0.75em; +} +.content-inner.podcasts-page .podcasts-details .podcasts-details-header { + display: flex; + justify-content: end; + align-items: center; + position: sticky; + top: 0; + z-index: 2; +} +.content-inner.podcasts-page .podcasts-details .close-btn { + width: 50px; + height: 42px; + background-image: var(--gfx-closeBtn); + background-position: center; + background-repeat: no-repeat; + -webkit-app-region: no-drag; + appearance: none; + border: 0; + background-color: transparent; + position: absolute; + top: 0; + right: 0; +} +.content-inner.podcasts-page .podcasts-details .close-btn:hover { + background-color: #c42b1c; +} +.content-inner.podcasts-page .podcasts-details .podcast-genre { + text-align: center; + margin: 6px; + font-size: 0.8em; + font-weight: 500; + opacity: 0.8; +} +.content-inner.podcasts-page .podcasts-details .podcast-metainfo { + text-align: center; + font-size: 0.7em; + opacity: 0.8; +} +.content-inner.podcasts-page .podcasts-details .podcast-header { + text-align: center; +} +.content-inner.podcasts-page .podcasts-details .podcast-play-btn { + width: 50%; + display: block; + margin: 0 auto; +} +.content-inner.podcasts-page .podcasts-details .podcast-description { + margin: 12px; + font-size: 0.75em; + white-space: pre-wrap; + display: block; + line-break: anywhere; +} +@media only screen and (max-width: 1230px) { + .content-inner.podcasts-page .podcasts-details { + height: 96%; + width: 300px; + flex: none; + background: rgba(20, 20, 20, 0.97); + overflow-y: overlay; + overflow-x: hidden; + position: absolute; + right: 2%; + top: 2%; + border-radius: 10px; + box-shadow: var(--ciderShadow-Generic); + z-index: 2; + } +} +/* Album / Playlist Page */ +.playlist-page { + --bgColor: transparent; + padding: 0px; + top: 0; + padding-top: var(--navigationBarHeight); +} +.playlist-page .playlist-body { + padding: var(--contentInnerPadding) 2em; + margin-top: -75px; +} +.playlist-page .floating-header { + position: sticky; + top: 0; + left: 0; + border-bottom: 1px solid rgba(200, 200, 200, 0.05); + z-index: 6; + padding: 0px 1em; + backdrop-filter: blur(32px); + background: rgba(0, 0, 0, 0.25); + top: var(--navigationBarHeight); + transition: opacity 0.1s var(--appleEase); +} +.playlist-page .playlist-display { + padding: var(--contentInnerPadding); + min-height: 300px; + position: relative; +} +.playlist-page .playlist-display .artworkContainer { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + margin: 0; + margin-top: calc(var(--navigationBarHeight) * -1); + margin-bottom: -10px; + padding: 0; + -webkit-mask-image: radial-gradient(at top left, black, transparent 70%), radial-gradient(at top right, black, transparent 70%), linear-gradient(180deg, #c8c8c8, transparent 98%); + opacity: 0.7; + animation: playlistArtworkFadeIn 1s var(--appleEase); +} +.playlist-page .playlist-display .artworkContainer .artworkMaterial > img { + filter: brightness(100%) blur(80px) saturate(100%) contrast(1); + object-position: center; + object-fit: cover; + width: 100%; + height: 100%; + transform: unset; +} +.playlist-page .playlist-display .playlistInfo { + z-index: 1; + position: absolute; + bottom: 0; + left: 0; + right: 0; + top: 0; + display: flex; + justify-content: center; + align-items: center; + width: 100%; + height: 100%; +} +.playlist-page .playlist-display .playlistInfo > .row { + width: calc(100% - 32px); +} +.playlist-page .playlist-display .playlistInfo .playlist-info { + flex-shrink: unset; + display: flex; + flex-flow: column; + justify-content: flex-end; +} +.playlist-page .playlist-display .playlistInfo .playlist-info .playlist-name { + font-weight: 700; + font-size: 1.6rem; + margin-right: 6px; + flex-shrink: unset; +} +.playlist-page .playlist-display .playlistInfo .playlist-info .nameEdit { + font-weight: 700; + font-size: 1.6rem; + margin-bottom: 6px; + margin-right: 6px; + flex-shrink: unset; + background: transparent; + border: 0px; + color: inherit; + font-family: inherit; +} +.playlist-page .playlist-display .playlistInfo .playlist-info .playlist-artist { + font-size: 20px; + margin-bottom: 6px; + margin-right: 6px; + flex-shrink: unset; +} +.playlist-page .playlist-display .playlistInfo .playlist-info .playlist-desc { + box-sizing: border-box; + font-size: 14px; + flex-shrink: unset; + margin-right: 5px; + max-height: 100px; + position: relative; +} +.playlist-page .playlist-display .playlistInfo .playlist-info .playlist-desc .content { + height: 100px; + -webkit-mask-image: -webkit-gradient(linear, left 50%, left 90%, from(#000000), to(rgba(0, 0, 0, 0))); +} +.playlist-page .playlist-display .playlistInfo .playlist-info .playlist-desc .more-btn { + appearance: none; + position: absolute; + right: 0; + bottom: 0; + padding: 0 5px; + font-size: 14px; + color: var(--keyColor); + background-color: transparent; + border: 0px; + cursor: pointer; + width: 100%; + height: 100%; + overflow: hidden; + display: flex; + justify-content: flex-end; + align-items: flex-end; + font-weight: 600; + font-family: inherit; + text-transform: uppercase; +} +.playlist-page .playlist-display .playlistInfo .playlist-info .playlist-desc-expanded { + box-sizing: border-box; + font-size: 14px; + position: relative; +} +.playlist-page .playlist-display .playlistInfo .playlist-info .playlist-desc-expanded .more-btn { + appearance: none; + position: absolute; + right: 0; + bottom: 0; + padding: 0 5px; + font-size: 14px; + color: var(--keyColor); + background-color: transparent; + border: 0px; + cursor: pointer; + width: 100%; + height: 100%; + overflow: hidden; + display: flex; + justify-content: flex-end; + align-items: flex-end; + font-weight: 600; + font-family: inherit; + text-transform: uppercase; +} +.playlist-page .friends-info { + display: flex; + flex-flow: column; +} +.playlist-page .friends-info .badge-container { + display: flex; + flex-flow: wrap; +} +.playlist-page .friends-info .badge-container .socialBadge { + width: 40px; + height: 40px; + border-radius: 100%; + overflow: hidden; + box-shadow: var(--mediaItemShadow-ShadowSubtle); + transition: transform 0.2s var(--appleEase); + margin: 6px; +} +.playlist-page .friends-info .badge-container .socialBadge:hover { + transform: scale(1.2); +} +.playlist-page .friends-info .friends-name { + text-align: center; + font-size: 0.9em; + margin: 8px; +} +.playlist-page .playlist-time { + font-size: 0.9em; + margin: 6px; + opacity: 0.7; +} +.playlist-page.inline-playlist { + overflow: hidden; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.5); + display: flex; + justify-content: center; + align-items: center; + z-index: 10; + position: sticky; + margin-top: calc(var(--navigationBarHeight) * -1); +} +.playlist-page.inline-playlist .floating-header { + opacity: 1; + top: 0px; + z-index: 6; + padding: 1em; + backdrop-filter: unset; + background: black; +} +.playlist-page.inline-playlist .floating-header h3 { + display: none; +} +.playlist-page.inline-playlist .playlist-inner { + background: black; + width: 80%; + height: 100%; + overflow: overlay; + box-shadow: var(--ciderShadow-Generic); + border-radius: var(--mediaItemRadius) var(--mediaItemRadius) 0px 0px; +} +.playlist-page.inline-playlist .playlist-inner .close-btn { + position: sticky; + top: 16px; + left: 16px; + margin-left: 16px; + z-index: 7; +} +@keyframes playlistArtworkFadeIn { + 0% { + opacity: 0; + } + 100% { + opacity: 0.7; + } +} +.collection-page { + padding-bottom: 128px; +} +.collection-page .top-fab { + height: 52px; + width: 52px; + position: fixed; + bottom: 32px; + right: 32px; + border-radius: 100%; + background: #3c3c3c; + border: 0px; + appearance: none; + box-shadow: var(--ciderShadow-Generic); +} +.collection-page .top-fab > svg { + height: 50%; + color: #eee; + pointer-events: none; +} +.collection-page .top-fab:hover { + background: #646464; +} +.collection-page .top-fab:active { + background: var(--keyColor); +} +.collection-page .header-text { + margin-bottom: 32px; +} +/* Artist Page */ +.artist-page { + padding: 0px; + top: 0; +} +.artist-page .floating-header { + position: sticky; + top: 0; + left: 0; + border-bottom: 1px solid rgba(200, 200, 200, 0.05); + z-index: 6; + padding: 0px 1em; + backdrop-filter: blur(32px); + background: rgba(0, 0, 0, 0.25); + top: var(--navigationBarHeight); + transition: opacity 0.1s var(--appleEase); +} +.artist-page.animated .artist-header .more-btn-round { + position: absolute; + bottom: 22px !important; + right: 28px; +} +.artist-page .artist-header { + color: white; + display: flex; + align-items: center; + justify-content: space-between; + min-height: 400px; + position: relative; + pointer-events: none; +} +.artist-page .artist-header .header-content { + z-index: 1; + margin-top: -16px; +} +.artist-page .artist-header .artworkContainer { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + margin: 0; + padding: 0; + -webkit-mask-image: radial-gradient(at top left, black, transparent 70%), radial-gradient(at top right, black, transparent 70%), linear-gradient(180deg, #c8c8c8, transparent 98%); + opacity: 0.7; + animation: playlistArtworkFadeIn 1s var(--appleEase); +} +.artist-page .artist-header .artworkContainer .artworkMaterial > img { + filter: brightness(100%) blur(80px) saturate(100%) contrast(1); + object-position: center; + object-fit: cover; + width: 100%; + height: 100%; + transform: unset; +} +.artist-page .artist-header .more-btn-round { + position: absolute; + bottom: 82px; + right: 28px; +} +.artist-page .artist-header .animated { + width: 100%; + height: 100%; + align-self: center; + position: absolute; + overflow: hidden; + box-shadow: rgba(0, 0, 0, 0.5) 0 0 0 1000000px inset; +} +.artist-page .artist-header .animated video { + overflow: hidden; + height: 100%; + width: 100%; + min-height: 56.25vw; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); +} +.artist-page .artist-header .row .col.flex-center { + z-index: 4; +} +.artist-page .artist-image { + width: 200px; + height: 200px; + margin: 32px; + position: relative; +} +.artist-page .artist-image .overlay-play { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + opacity: 0; + background: rgba(0, 0, 0, 0.5); + transition: opacity 0.1s var(--appleEase); + border-radius: 100%; + z-index: 1; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + appearance: none; + border: 0px; + padding: 0px; +} +.artist-page .artist-image .overlay-play:hover { + opacity: 1; +} +.artist-page .artist-image .overlay-play:active { + background: var(--selected-click); +} +.artist-page .artist-image .overlay-play > svg { + width: 70%; +} +.artist-page .artist-play { + width: 32px; + height: 32px; + background: rgba(100, 100, 100, 0.5); + box-shadow: var(--ciderShadow-Generic); + border-radius: 100%; + box-shadow: var(--mediaItemShadow); + display: none; + cursor: pointer; + appearance: none; + border: 0px; + padding: 0px; +} +.artist-page .artist-play:hover { + filter: brightness(125%); +} +.artist-page .artist-play:active { + filter: brightness(75%); + transform: scale(0.98); + transition: transform 0s var(--appleEase), box-shadow 0.2s var(--appleEase); +} +.artist-page .artist-title .artist-play { + transform: translateY(3px); + margin: 14px; +} +.artist-page .artist-title.artist-animation-on { + width: 100%; + flex: unset; + margin-left: 0.5em; + color: whitesmoke; + position: absolute; + bottom: 0; +} +.artist-page .artist-title.artist-animation-on .artist-play { + display: block; +} +.artist-page .artist-body { + padding: 0px var(--contentInnerPadding) 0px var(--contentInnerPadding); + margin: -140px 20px; +} +.artist-page.animated > .artist-body { + padding: 0px var(--contentInnerPadding) 0px var(--contentInnerPadding); + margin-top: -57px; +} +.artist-page .showmoreless { + font-family: inherit; + font-size: 16px; + font-weight: 500; + background: transparent; + border: 0px; + border-radius: 6px; + appearance: none; + color: var(--keyColor); + padding: 8px 12px; + cursor: pointer; + margin-top: 12px; + float: right; +} +.artist-page .showmoreless:hover { + background: rgba(200, 200, 200, 0.1); +} +/* Artist Page End */ +.settings-page { + padding: 0px; +} +.settings-page .md-option-header { + padding: 1.25em 1.25em; + border-bottom: unset; + border-top: unset; + font-weight: 600; + font-size: 1em; + background: rgba(255, 255, 255, 0.03); +} +.settings-page .settings-option-body { + margin: 16px; +} +.home-page { + top: 0; + padding-top: var(--navbarHeight); +} +.home-page .md-btn-replay { + background: var(--replayGradient); + border: 0px; + box-shadow: inset 0px 0px 0px 1px rgba(200, 200, 200, 0.2); + text-transform: uppercase; + font-weight: bold; +} +.home-page .md-btn-replay--hero { + font-size: 1em; + padding: 16px; + background: var(--replayGradient); + border: 0px; + box-shadow: inset 0px 0px 0px 1px rgba(200, 200, 200, 0.2); + margin-top: 1em; + font-size: 0.9em; + text-transform: uppercase; + font-weight: bold; +} +.home-page .artist-feed-card { + position: absolute; + bottom: 0; + left: 10%; + z-index: 1; + background: black; + width: 80%; + height: 96%; + overflow: scroll; + border-radius: 10px; +} +.home-page .col.madeforyou-col { + width: 420px; + min-width: 0px; + max-width: 420px; +} +.home-page .well.artistfeed-well { + margin-top: 0px; + height: 392px; + align-content: flex-start; +} +.home-page .hint-text { + font-size: 0.9rem; + color: rgba(200, 200, 200, 0.7); +} +.home-page .user-icon { + border-radius: 100%; + width: 128px; + height: 128px; + overflow: hidden; + box-shadow: var(--mediaItemShadow-Shadow); + margin: 16px; +} +.home-page .well.profile-well { + flex-direction: column; + justify-content: center; + align-items: center; +} +.home-page .well.profile-well .name { + margin: 4px; + font-weight: 500; +} +.home-page .well.profile-well .handle { + margin: 4px; + opacity: 0.7; + font-weight: 500; +} +.replay-page { + --replayTextShadow: 0px 3px 2px #6f3f52; +} +.replay-page .replay-period { + height: 200px; + width: 200px; + margin: 6px; + border-radius: var(--mediaItemRadius); + overflow: hidden; + cursor: pointer; + transition: transform 0.2s var(--appleEase); + transition-delay: 0.1s; + align-self: center; +} +.replay-page .replay-period:hover { + transform: translateY(-6px); + transition-delay: 0s; +} +.replay-page .replay-period .artwork-container { + height: 200px; + width: 200px; +} +.replay-page .replay-playlist-container .cd-mediaitem-square { + height: 230px; + width: 230px; +} +.replay-page .replay-playlist-container .cd-mediaitem-square .info-rect { + display: none; +} +.replay-page .replay-video { + max-height: 300px; + max-width: 800px; + margin: 0 auto; +} +.replay-page .replay-video .mediaitem-artwork { + max-height: 300px; + max-width: 800px; +} +.replay-page .replay-video .mediaitem-artwork .animatedartwork-view-box .animated video { + object-fit: cover; +} +.replay-page .top-genres-container .genre-name { + font-size: 0.9em; + margin: 6px 0px; + font-weight: 500; +} +.replay-page .top-genres-container .genre-count { + width: 100%; + height: 32px; + background: #ffffff14; + border-radius: 10px; + overflow: hidden; +} +.replay-page .top-genres-container .genre-count .genre-count-bar { + height: 100%; + width: 0%; + background: var(--keyColor); + display: flex; + justify-content: center; + align-items: center; + min-width: 32px; + font-size: 0.9em; + font-weight: 500; +} +.replay-page .cd-mediaitem-square { + transition: transform 0.2s var(--appleEase); + transition-delay: 0.1s; +} +.replay-page .cd-mediaitem-square .mediaitem-artwork { + animation: replayFadeIn 0.5s var(--appleEase); +} +.replay-page .cd-mediaitem-square:hover { + transform: scale(1.1); + transition-delay: 0s; +} +@keyframes replayFadeIn { + 0% { + transform: translateY(10px) scale(0.9); + opacity: 0; + } + 100% { + transform: scale(1); + opacity: 1; + } +} +.replay-page .replay-viewport { + background: var(--replayGradient); + padding: 16px 40px; + border-radius: 10px; + box-shadow: var(--mediaItemShadow), var(--mediaItemShadow-Shadow); + color: rgba(238, 238, 238, 0.86); +} +.replay-page .replay-viewport .replay-header { + text-align: center; + font-size: 3em; + text-shadow: var(--replayTextShadow); +} +.replay-page .replay-card { + background: transparent; + border: 0px; +} +:root { + --appleEase: cubic-bezier(0.42, 0, 0.58, 1); + --mediaItemShadow: inset 0px 0px 0px 1px rgba(200, 200, 200, 0.16); + --mediaItemShadow-Shadow: 0 8px 40px rgba(0, 0, 0, 0.55); + --mediaItemShadow-ShadowSubtle: 0 4px 14px rgba(0, 0, 0, 0.1); + --ciderShadow-Generic: var(--mediaItemShadow), 0 8px 40px rgb(0 0 0 / 0.55); + --mediaItemRadius: 6px; + --mediaItemRadiusRound: 100%; + --contentInnerPadding: 16px; + --navbarHeight1: 48px; + --navbarHeight2: 0px; + --navbarHeight: calc(var(--navbarHeight1) + var(--navbarHeight2)); + --selected: rgba(130, 130, 130, 0.3); + --selected-click: rgba(80, 80, 80, 0.3); + --hover: rgba(200, 200, 200, 0.1); + --keyColor: #fa586a; + --keyColor-rgb: 250, 88, 106; + --keyColor-rollover: #ff8a9c; + --keyColor-rollover-rgb: 255, 138, 156; + --keyColor-pressed: #ff7183; + --keyColor-pressed-rgb: 255, 113, 131; + --keyColor-deepPressed: #ff8a9c; + --keyColor-deepPressed-rgb: 255, 138, 156; + --keyColor-disabled: rgba(250, 88, 106, 0.35); + --navigationBarHeight: 38px; + --modalBackground: #262626; + --songProgressColor: var(--keyColor); + --songProgressBackground: #333; + --textColor: #eee; + --replayGradient: linear-gradient(45deg, hsl(248, 58%, 29%), hsl(13, 41%, 42%)); +} +*:focus-visible { + outline: 2px solid var(--keyColor); +} +html, +body { + margin: 0; + padding: 0; + overflow: hidden; + width: 100%; + height: 100%; + box-sizing: border-box; + background-size: cover; + background-position: center; + background: #0000; + font-family: "Inter var experimental", -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; + transition: opacity 0.1s var(--appleEase); +} +a:-webkit-any-link { + color: var(--keyColor); +} +hr { + appearance: none; + border: none; + height: 1px; + background-color: rgba(255, 255, 255, 0.2); +} +body[loading] .app-navigation { + pointer-events: none; +} +body.stopanimation * { + animation: unset !important; +} +body.stopanimation * .loadbar-sound { + display: none; +} +body.notransparency::before { + content: ""; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + opacity: 0.5; + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAMAAAAp4XiDAAAAUVBMVEWFhYWDg4N3d3dtbW17e3t1dXWBgYGHh4d5eXlzc3OLi4ubm5uVlZWPj4+NjY19fX2JiYl/f39ra2uRkZGZmZlpaWmXl5dvb29xcXGTk5NnZ2c8TV1mAAAAG3RSTlNAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAvEOwtAAAFVklEQVR4XpWWB67c2BUFb3g557T/hRo9/WUMZHlgr4Bg8Z4qQgQJlHI4A8SzFVrapvmTF9O7dmYRFZ60YiBhJRCgh1FYhiLAmdvX0CzTOpNE77ME0Zty/nWWzchDtiqrmQDeuv3powQ5ta2eN0FY0InkqDD73lT9c9lEzwUNqgFHs9VQce3TVClFCQrSTfOiYkVJQBmpbq2L6iZavPnAPcoU0dSw0SUTqz/GtrGuXfbyyBniKykOWQWGqwwMA7QiYAxi+IlPdqo+hYHnUt5ZPfnsHJyNiDtnpJyayNBkF6cWoYGAMY92U2hXHF/C1M8uP/ZtYdiuj26UdAdQQSXQErwSOMzt/XWRWAz5GuSBIkwG1H3FabJ2OsUOUhGC6tK4EMtJO0ttC6IBD3kM0ve0tJwMdSfjZo+EEISaeTr9P3wYrGjXqyC1krcKdhMpxEnt5JetoulscpyzhXN5FRpuPHvbeQaKxFAEB6EN+cYN6xD7RYGpXpNndMmZgM5Dcs3YSNFDHUo2LGfZuukSWyUYirJAdYbF3MfqEKmjM+I2EfhA94iG3L7uKrR+GdWD73ydlIB+6hgref1QTlmgmbM3/LeX5GI1Ux1RWpgxpLuZ2+I+IjzZ8wqE4nilvQdkUdfhzI5QDWy+kw5Wgg2pGpeEVeCCA7b85BO3F9DzxB3cdqvBzWcmzbyMiqhzuYqtHRVG2y4x+KOlnyqla8AoWWpuBoYRxzXrfKuILl6SfiWCbjxoZJUaCBj1CjH7GIaDbc9kqBY3W/Rgjda1iqQcOJu2WW+76pZC9QG7M00dffe9hNnseupFL53r8F7YHSwJWUKP2q+k7RdsxyOB11n0xtOvnW4irMMFNV4H0uqwS5ExsmP9AxbDTc9JwgneAT5vTiUSm1E7BSflSt3bfa1tv8Di3R8n3Af7MNWzs49hmauE2wP+ttrq+AsWpFG2awvsuOqbipWHgtuvuaAE+A1Z/7gC9hesnr+7wqCwG8c5yAg3AL1fm8T9AZtp/bbJGwl1pNrE7RuOX7PeMRUERVaPpEs+yqeoSmuOlokqw49pgomjLeh7icHNlG19yjs6XXOMedYm5xH2YxpV2tc0Ro2jJfxC50ApuxGob7lMsxfTbeUv07TyYxpeLucEH1gNd4IKH2LAg5TdVhlCafZvpskfncCfx8pOhJzd76bJWeYFnFciwcYfubRc12Ip/ppIhA1/mSZ/RxjFDrJC5xifFjJpY2Xl5zXdguFqYyTR1zSp1Y9p+tktDYYSNflcxI0iyO4TPBdlRcpeqjK/piF5bklq77VSEaA+z8qmJTFzIWiitbnzR794USKBUaT0NTEsVjZqLaFVqJoPN9ODG70IPbfBHKK+/q/AWR0tJzYHRULOa4MP+W/HfGadZUbfw177G7j/OGbIs8TahLyynl4X4RinF793Oz+BU0saXtUHrVBFT/DnA3ctNPoGbs4hRIjTok8i+algT1lTHi4SxFvONKNrgQFAq2/gFnWMXgwffgYMJpiKYkmW3tTg3ZQ9Jq+f8XN+A5eeUKHWvJWJ2sgJ1Sop+wwhqFVijqWaJhwtD8MNlSBeWNNWTa5Z5kPZw5+LbVT99wqTdx29lMUH4OIG/D86ruKEauBjvH5xy6um/Sfj7ei6UUVk4AIl3MyD4MSSTOFgSwsH/QJWaQ5as7ZcmgBZkzjjU1UrQ74ci1gWBCSGHtuV1H2mhSnO3Wp/3fEV5a+4wz//6qy8JxjZsmxxy5+4w9CDNJY09T072iKG0EnOS0arEYgXqYnXcYHwjTtUNAcMelOd4xpkoqiTYICWFq0JSiPfPDQdnt+4/wuqcXY47QILbgAAAABJRU5ErkJggg==); +} +*, +*:before, +*:after { + box-sizing: inherit; +} +/* Modern style overlay scrollbars */ +::-webkit-scrollbar { + width: 16px; + height: 24px; +} +::-webkit-scrollbar-button { + display: none; +} +::-webkit-scrollbar-track-piece { + background: transparent; +} +::-webkit-scrollbar-thumb { + background: transparent; + border: 6px solid transparent; + box-shadow: inset 0px 0px 10px 10px rgba(200, 200, 200, 0.5); + border-radius: 16px; + min-height: 64px; + transition: border 1s; +} +::-webkit-scrollbar-thumb:hover { + border: 5px solid transparent; + box-shadow: inset 0px 0px 10px 10px rgba(200, 200, 200, 0.8); +} +[disabled] { + pointer-events: none; + opacity: 0.5; +} +#app { + --color1: rgba(30, 30, 30, 0.3); + --color2: rgba(15, 15, 15, 0.3); + --bgColor: transparent; + --bgWidth: 0px; + --bgHeight: 0px; + --chromeHeight1: 55px; + --chromeHeight2: 0px; + --chromeHeight: calc(var(--chromeHeight1) + var(--chromeHeight2)); + width: 100%; + height: 100%; + background: var(--color1); + color: var(--textColor); + user-select: none; + margin: 0 auto; + position: relative; + overflow: hidden; + background-size: 400% 400%; +} +#app.simplebg { + background: #0e0e0e; +} +#app.simplebg::before { + content: ""; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + opacity: 0.5; + z-index: 0; + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAMAAAAp4XiDAAAAUVBMVEWFhYWDg4N3d3dtbW17e3t1dXWBgYGHh4d5eXlzc3OLi4ubm5uVlZWPj4+NjY19fX2JiYl/f39ra2uRkZGZmZlpaWmXl5dvb29xcXGTk5NnZ2c8TV1mAAAAG3RSTlNAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAvEOwtAAAFVklEQVR4XpWWB67c2BUFb3g557T/hRo9/WUMZHlgr4Bg8Z4qQgQJlHI4A8SzFVrapvmTF9O7dmYRFZ60YiBhJRCgh1FYhiLAmdvX0CzTOpNE77ME0Zty/nWWzchDtiqrmQDeuv3powQ5ta2eN0FY0InkqDD73lT9c9lEzwUNqgFHs9VQce3TVClFCQrSTfOiYkVJQBmpbq2L6iZavPnAPcoU0dSw0SUTqz/GtrGuXfbyyBniKykOWQWGqwwMA7QiYAxi+IlPdqo+hYHnUt5ZPfnsHJyNiDtnpJyayNBkF6cWoYGAMY92U2hXHF/C1M8uP/ZtYdiuj26UdAdQQSXQErwSOMzt/XWRWAz5GuSBIkwG1H3FabJ2OsUOUhGC6tK4EMtJO0ttC6IBD3kM0ve0tJwMdSfjZo+EEISaeTr9P3wYrGjXqyC1krcKdhMpxEnt5JetoulscpyzhXN5FRpuPHvbeQaKxFAEB6EN+cYN6xD7RYGpXpNndMmZgM5Dcs3YSNFDHUo2LGfZuukSWyUYirJAdYbF3MfqEKmjM+I2EfhA94iG3L7uKrR+GdWD73ydlIB+6hgref1QTlmgmbM3/LeX5GI1Ux1RWpgxpLuZ2+I+IjzZ8wqE4nilvQdkUdfhzI5QDWy+kw5Wgg2pGpeEVeCCA7b85BO3F9DzxB3cdqvBzWcmzbyMiqhzuYqtHRVG2y4x+KOlnyqla8AoWWpuBoYRxzXrfKuILl6SfiWCbjxoZJUaCBj1CjH7GIaDbc9kqBY3W/Rgjda1iqQcOJu2WW+76pZC9QG7M00dffe9hNnseupFL53r8F7YHSwJWUKP2q+k7RdsxyOB11n0xtOvnW4irMMFNV4H0uqwS5ExsmP9AxbDTc9JwgneAT5vTiUSm1E7BSflSt3bfa1tv8Di3R8n3Af7MNWzs49hmauE2wP+ttrq+AsWpFG2awvsuOqbipWHgtuvuaAE+A1Z/7gC9hesnr+7wqCwG8c5yAg3AL1fm8T9AZtp/bbJGwl1pNrE7RuOX7PeMRUERVaPpEs+yqeoSmuOlokqw49pgomjLeh7icHNlG19yjs6XXOMedYm5xH2YxpV2tc0Ro2jJfxC50ApuxGob7lMsxfTbeUv07TyYxpeLucEH1gNd4IKH2LAg5TdVhlCafZvpskfncCfx8pOhJzd76bJWeYFnFciwcYfubRc12Ip/ppIhA1/mSZ/RxjFDrJC5xifFjJpY2Xl5zXdguFqYyTR1zSp1Y9p+tktDYYSNflcxI0iyO4TPBdlRcpeqjK/piF5bklq77VSEaA+z8qmJTFzIWiitbnzR794USKBUaT0NTEsVjZqLaFVqJoPN9ODG70IPbfBHKK+/q/AWR0tJzYHRULOa4MP+W/HfGadZUbfw177G7j/OGbIs8TahLyynl4X4RinF793Oz+BU0saXtUHrVBFT/DnA3ctNPoGbs4hRIjTok8i+algT1lTHi4SxFvONKNrgQFAq2/gFnWMXgwffgYMJpiKYkmW3tTg3ZQ9Jq+f8XN+A5eeUKHWvJWJ2sgJ1Sop+wwhqFVijqWaJhwtD8MNlSBeWNNWTa5Z5kPZw5+LbVT99wqTdx29lMUH4OIG/D86ruKEauBjvH5xy6um/Sfj7ei6UUVk4AIl3MyD4MSSTOFgSwsH/QJWaQ5as7ZcmgBZkzjjU1UrQ74ci1gWBCSGHtuV1H2mhSnO3Wp/3fEV5a+4wz//6qy8JxjZsmxxy5+4w9CDNJY09T072iKG0EnOS0arEYgXqYnXcYHwjTtUNAcMelOd4xpkoqiTYICWFq0JSiPfPDQdnt+4/wuqcXY47QILbgAAAABJRU5ErkJggg==); +} +#app.simplebg .app-chrome { + z-index: 1; +} +.bgGradientMaterial-base { + position: relative; +} +.bgGradientMaterial-base::before { + position: absolute; + top: -50%; + left: -50%; + width: 200%; + height: 250%; + background-image: var(--bgColor); + content: ""; + z-index: -1; + transform: rotateZ(0deg); + transform-origin: center; + animation: bgRotate 10s linear infinite; + filter: brightness(100%) saturate(200%) contrast(1.5); +} +@keyframes bgRotate { + 0% { + transform: rotateZ(0deg); + } + 100% { + transform: rotateZ(360deg); + } +} +[hidden] { + display: none !important; +} +input[type="text"], +input[type="number"] { + background: #1c1c1c; + border-radius: 3px; + border: 1px solid rgba(200, 200, 200, 0.25); + color: #eee; + padding: 6px; + font-size: 1em; + font-family: inherit; +} +.bg-artwork--placeholder { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: #222; + z-index: -1; + background-size: cover; + background-position: center; + opacity: 0.7; +} +.bg-artwork { + position: absolute; + width: 200%; + background: var(--artwork); + filter: brightness(200%) blur(180px) saturate(280%) contrast(2); + opacity: 1; + transition: opacity 0.25s var(--appleEase); + pointer-events: none; + transform: translateZ(0px); + animation: rotateBg 35s linear infinite; + backface-visibility: hidden; +} +@keyframes rotateBg { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} +.bg-artwork-container { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + pointer-events: none; + transform: translateZ(0px); + z-index: -1; +} +.bg-artwork-container .bg-artwork.a { + top: 0; + left: 0; +} +.bg-artwork-container .bg-artwork.b { + bottom: 0; + right: 0; + animation-direction: reverse; + animation-delay: 10s; +} +.bg-artwork-container.noanimation .bg-artwork { + animation: none; +} +.artworkMaterial { + position: relative; + height: 100%; + width: 100%; + overflow: hidden; + pointer-events: none; +} +.artworkMaterial > img { + position: absolute; + width: 200%; + opacity: 0.5; + filter: brightness(200%) blur(180px) saturate(280%) contrast(2); +} +.artworkMaterial > img:first-child { + top: 0; + left: 0; +} +.artworkMaterial > img:last-child { + bottom: 0; + right: 0; + transform: rotate(180deg); +} +[artwork-hidden] { + transition: opacity 0.25s var(--appleEase); + opacity: 0; +} +input[type="range"].web-slider { + -webkit-appearance: none; + height: 4px; + background: rgba(255, 255, 255, 0.6); + border-radius: 5px; + background-size: 70% 100%; + background-repeat: no-repeat; +} +input[type="range"].web-slider::-webkit-slider-thumb { + -webkit-appearance: none; + height: 20px; + width: 20px; + border-radius: 50%; + background: #ffffff; + cursor: ew-resize; + box-shadow: 0 0 2px 0 #555; +} +input[type=range].web-slider::-webkit-slider-runnable-track { + -webkit-appearance: none; + box-shadow: none; + border: none; + background: transparent; +} +.nopadding { + padding: 0px; +} +#app-main { + display: flex; + width: 100%; + height: 100%; + flex-direction: column; + opacity: 1; + overflow: hidden; +} +#app-sidebar { + /* background-color: var(--color1); */ + height: 100%; + width: 260px; + display: flex; + flex-direction: column; + flex: 0 0 auto; + position: relative; +} +#app-navbar { + height: 40px; + width: 100%; + background: rgba(30, 30, 30, 0.85); + position: sticky; + top: 0px; + left: 0; + z-index: 2; + backdrop-filter: blur(16px) saturate(180%); +} +#app-content { + background-color: var(--color2); + height: 100%; + width: 100%; + overflow-y: scroll; + overflow-y: overlay; + overflow-x: hidden; + border-radius: 10px 0px 0px 0px; + border-left: 1px solid rgba(0, 0, 0, 0.25); + border-top: 1px solid rgba(0, 0, 0, 0.25); + position: relative; +} +.app-drawer { + width: 300px; + flex: 0 0 auto; + position: absolute; + right: 16px; + top: 3%; + background: #1c1c1c8f; + border-radius: 12px; + z-index: 9; + height: 94%; + backdrop-filter: blur(40px) saturate(180%); + box-shadow: var(--ciderShadow-Generic); + overflow: hidden; +} +.app-drawer .bgArtworkMaterial { + display: none; + position: absolute; + width: 100%; + height: 100%; +} +.app-drawer .bgArtworkMaterial .bg-artwork-container .bg-artwork { + filter: brightness(80%) blur(180px) saturate(180%) contrast(1); +} +.search-input-container { + position: relative; +} +.search-input { + width: 100%; + padding: 6px; + border-radius: 6px; + border: 1px solid rgba(200, 200, 200, 0.1); + font-family: inherit; + font-size: 14px; + background: rgba(100, 100, 100, 0.25); + color: #c8c8c8; + font-weight: 500; + padding-left: 32px; + position: relative; + filter: contrast(0.1); +} +.search-input:focus { + outline: none; + border-bottom: 1px solid var(--keyColor); +} +.search-input--icon { + content: ''; + width: 100%; + height: 100%; + display: block; + position: absolute; + top: 0px; + left: 0px; + background-image: url('assets/search.svg'); + background-position: 10px; + background-repeat: no-repeat; + background-size: 12px; + pointer-events: none; + opacity: 0.55; +} +.app-sidebar-header { + font-size: 14px; + padding: 11px; + font-weight: 600; +} +.app-sidebar-header-text { + font-size: 11px; + margin: 6px 3px; + font-weight: 600; + opacity: 0.5; +} +.app-sidebar-footer { + border-top: 1px solid rgba(200, 200, 200, 0.15); + padding: 11px; +} +.app-sidebar-footer .app-playback-controls { + margin: 0 auto; +} +.app-sidebar-footer .app-playback-controls .control-buttons { + display: flex; + justify-content: center; + align-content: center; +} +.app-sidebar-footer .app-playback-controls .volume { + display: flex; +} +.app-sidebar-button { + width: 100%; + padding: 0px; + font-family: inherit; + display: flex; + border-radius: 6px; + border: 1px solid rgba(200, 200, 200, 0.05); + background: rgba(100, 100, 100, 0.25); + color: #eee; + font-weight: 500; + align-items: center; +} +.app-sidebar-button.active { + background: rgba(200, 200, 200, 0.15); + animation: usermenuBtnClick 0.3s cubic-bezier(0.36, 0, 0.66, -0.56); +} +@keyframes usermenuBtnClick { + 0% { + transform: translateY(0px); + } + 50% { + transform: translateY(-6px); + } + 100% { + transform: translateY(0px); + } +} +.app-sidebar-button > .sidebar-user-icon { + width: 32px; + height: 32px; + border-radius: 100%; + background-image: var(--artwork); + margin: 10px; + flex: 0 0 auto; + box-shadow: var(--mediaItemShadow); + background-size: contain; +} +.app-sidebar-button > .sidebar-user-text { + width: 100%; + display: flex; + font-size: 14px; + flex-direction: column; + text-align: center; + margin-right: 35px; +} +.app-sidebar-button > .sidebar-user-text .fullname { + text-align: left; +} +.app-sidebar-button > .sidebar-user-text .handle-text { + font-size: 12px; + opacity: 0.7; + text-align: left; +} +.app-sidebar-notification { + text-align: center; + font-size: 12px; + min-height: 36px; + display: flex; + justify-content: center; + align-items: center; + border-top: 1px solid rgba(200, 200, 200, 0.15); + background: rgba(0, 0, 0, 0.15); + flex-direction: column; + padding: 10px 0px; +} +.app-sidebar-notification.libraryNotification { + flex-direction: row; + padding: 0px; +} +.app-sidebar-notification.libraryNotification .message { + flex-grow: 1; +} +.app-sidebar-notification.libraryNotification .spinner { + width: 46px; + height: 30px; + margin-left: 1em; +} +.app-sidebar-content { + padding: 8px; + overflow-y: scroll; + overflow-y: overlay; + height: 100%; +} +.search-hints-container { + top: 44px; + position: absolute; + width: 100%; + padding: 10px; + z-index: 1; +} +.search-hints-container .search-hints { + background: #242424; + padding: 6px; + border-radius: 6px; + width: 100%; + box-shadow: var(--ciderShadow-Generic); +} +.search-hints-container .search-hints .search-hint { + background: transparent; + display: block; + width: 100%; + text-align: left; + color: #eee; + font-family: inherit; + font-size: 15px; + padding: 8px 12px; + border: 0px; + appearance: none; + border-radius: 6px; + margin: 2px 0px; +} +.search-hints-container .search-hints .search-hint:hover { + background: var(--keyColor); +} +.usermenu-container { + top: 0px; + z-index: 200001 !important; + position: absolute; + width: 100%; + padding: 10px; + z-index: 1; +} +.usermenu-container .usermenu-body { + background: #242424; + padding: 6px; + border-radius: 6px; + width: 100%; + box-shadow: var(--ciderShadow-Generic); +} +.usermenu-container .usermenu-body .usermenu-item { + background: transparent; + display: block; + width: 100%; + text-align: left; + color: #eee; + font-family: inherit; + font-size: 15px; + padding: 8px 12px; + border: 0px; + appearance: none; + border-radius: 6px; + margin: 2px 0px; +} +.usermenu-container .usermenu-body .usermenu-item:hover { + background: var(--keyColor); +} +.usermenu-container .usermenu-body .usermenu-item .usermenu-item-icon { + position: relative; + top: 1.5px; + right: 3px; + display: table-cell; +} +.usermenu-container .usermenu-body .usermenu-item .usermenu-item-name { + position: relative; + bottom: 2px; + padding-left: 5px; + display: table-cell; +} +.context-menu { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0); + z-index: 100; +} +.context-menu .context-menu-item { + background: transparent; + display: flex; + width: 100%; + text-align: left; + color: #eee; + font-family: inherit; + font-size: 14px; + padding: 6px 12px; + border: 0px; + appearance: none; + border-radius: 6px; + margin: 2px 0px; +} +.context-menu .context-menu-item:hover { + background: var(--selected); + cursor: pointer; +} +.context-menu .context-menu-item:active { + background: var(--selected-click); +} +.context-menu .context-menu-body { + background: #242424; + padding: 6px; + border-radius: 6px; + box-shadow: var(--ciderShadow-Generic); +} +.context-menu .context-menu-body.context-menu-open { + animation-duration: 0.1s; + animation-name: contextMenuIn; + animation-iteration-count: 1; + animation-easings: var(--appleEase); +} +.context-menu .context-menu-body.context-menu-close { + animation-duration: 0.1s; + animation-name: contextMenuOut; + animation-iteration-count: 1; + animation-easings: var(--appleEase); +} +@keyframes contextMenuIn { + 0% { + transform: scale(0.9); + opacity: 0; + } + 100% { + transform: scale(1); + opacity: 1; + } +} +@keyframes contextMenuOut { + 0% { + transform: scale(1); + opacity: 1; + } + 100% { + transform: scale(0.9); + opacity: 0; + } +} +.hidden-opacity { + opacity: 0; + height: 0px; + width: 0px; + margin: 0px; +} +.spinner { + background-image: url("assets/spinner.svg"); + background-position: center; + background-repeat: no-repeat; + background-size: contain; + width: 50px; + height: 50px; + display: inline-block; +} +.app-sidebar-content::-webkit-scrollbar { + display: none; +} +.app-sidebar-content:hover::-webkit-scrollbar { + display: initial; +} +.app-sidebar-item { + display: flex; + width: 100%; + padding: 8px 12px; + font-weight: 400; + font-family: inherit; + font-size: 14px; + margin: 3px 0px; + border: 1px solid transparent; + border-radius: 6px; + background: transparent; + color: #eee; + transition: transform 0.1s; + text-align: left; +} +.app-sidebar-item.app-sidebar-item-playlist { + -webkit-user-drag: element; + overflow: hidden; + text-overflow: ellipsis; +} +.app-sidebar-item.app-sidebar-item-playlist .presentNotice { + align-self: center; + margin-left: 8px; + text-transform: uppercase; + font-size: 0.7em; + opacity: 0.6; +} +.app-sidebar-item:hover { + border: 1px solid rgba(200, 200, 200, 0.05); + background: rgba(200, 200, 200, 0.15); +} +.app-sidebar-item:active { + border: 1px solid rgba(200, 200, 200, 0.05); + background: rgba(200, 200, 200, 0.15); + transform: scale(0.98); + transition: transform 0s; +} +.app-sidebar-item.active { + border: 1px solid rgba(200, 200, 200, 0.05); + background: rgba(200, 200, 200, 0.15); + transform: scale(1); + transition: transform 0s; +} +.app-sidebar-item.active::after { + content: ''; + width: 4px; + height: 16px; + display: block; + position: absolute; + top: calc(100% - 72%); + border-radius: 10px; + left: 0px; + background: var(--keyColor); +} +.app-chrome { + background: var(--color1); + width: 100%; + height: var(--chromeHeight1); + display: flex; + flex-direction: row; + -webkit-app-region: drag; +} +.mv-chrome { + position: absolute; + top: 0; + right: 0; + width: 90%; + height: 55px; + -webkit-app-region: drag; +} +.app-chrome .app-chrome--left, +.app-chrome .app-chrome--center, +.app-chrome .app-chrome--right { + height: 100%; + width: 100%; + display: flex; + justify-content: center; + align-items: center; +} +.app-chrome .app-chrome--left { + width: 30%; + justify-content: left; + -webkit-app-region: drag; +} +.app-chrome .app-chrome--center { + width: 40%; +} +.app-chrome .app-chrome--right { + width: 30%; + justify-content: right; +} +.app-chrome .app-chrome-item { + height: 100%; + width: auto; + display: flex; + justify-content: center; + align-items: center; + -webkit-app-region: no-drag; + height: auto; +} +.app-chrome .app-chrome-item.generic { + width: 50px; + opacity: 0.7; +} +.app-chrome .app-chrome-item.volume { + width: 100px; + margin-right: 6px; +} +.volume-button { + background-image: url("assets/feather/volume-2.svg"); + height: 15px; + width: 30px; + padding: 0px; + background: transparent; + border: 0px; + border-radius: 0px; + box-shadow: unset; + background-size: 12px; + background-position: center; + background-repeat: no-repeat; + opacity: 0.7; + border-radius: 6px; +} +.volume-button:active, +.volume-button--small:active { + transform: scale(0.9); +} +.volume-button.active, +.volume-button--small.active { + background-image: url("assets/feather/volume.svg"); +} +.volume-button--small { + border-radius: 6px; + color: inherit; + background-size: 16px; + background-repeat: no-repeat; + background-position: center; + background-color: transparent; + height: 15px; + width: 30px; + border: 0px; + box-shadow: unset; + opacity: 0.7; + background-image: url("assets/feather/volume-2.svg"); +} +.app-chrome .app-chrome-item.volume > input[type=range]::-webkit-slider-thumb { + -webkit-appearance: none; + height: 14px; + width: 14px; + border-radius: 50%; + background: #323232; + cursor: default; + box-shadow: inset 0px 0px 0px 1px rgba(255, 255, 255, 0.4); + transition: all var(--appleTransition); +} +.app-chrome .app-chrome-item.volume > input[type=range]::-webkit-slider-thumb:hover { + background-image: radial-gradient(var(--keyColor) 2px, transparent 3px, transparent 10px); + transform: scale(1.2); +} +.app-chrome .app-chrome-item.volume > input[type=range]::-webkit-slider-thumb:active { + background-image: radial-gradient(var(--keyColor) 3px, transparent 4px, transparent 10px); + transform: scale(1); +} +.app-chrome .app-chrome-item.volume > input[type=range] { + -webkit-appearance: none; + height: 4px; + background: rgba(255, 255, 255, 0.4); + border-radius: 5px; + background-size: 70% 100%; + background-repeat: no-repeat; + width: 100%; +} +.app-chrome .app-chrome-item.volume > input[type=range]::-webkit-slider-runnable-track { + -webkit-appearance: none; + box-shadow: none; + border: none; + background: transparent; +} +.app-chrome .back-button { + height: 100%; + width: 60px; +} +.app-chrome .app-chrome-item.full-height { + height: 100%; +} +.app-chrome .app-chrome-item > .app-mainmenu { + width: 110px; + font-size: 13px; + background: url("assets/AppChromeBtn.svg"); + background-size: contain; + background-repeat: no-repeat; + background-position: center; + height: 70%; + margin-right: 16px; + margin-left: 16px; + margin-top: 1.5px; + border: 0px; + border-radius: 6px; +} +.app-chrome .app-chrome-item > .app-mainmenu:hover { + background-color: var(--selected); +} +.app-chrome .app-chrome-item > .app-mainmenu:active, +.app-chrome .app-chrome-item > .app-mainmenu.active { + background-color: var(--selected-click); +} +.app-chrome .app-chrome-item > .app-mainmenu.active { + background-image: url("assets/AppChromeBtn-Open.svg"); +} +.app-chrome .app-chrome-item > .window-controls { + width: 138px; + font-size: 13px; + height: 100%; + display: flex; +} +.app-chrome .app-chrome-item > .window-controls > div { + height: 100%; + width: 32px; +} +.app-chrome .app-chrome-item > .window-controls > div:hover { + background: rgba(200, 200, 200, 0.1); +} +.app-chrome .app-chrome-item > .window-controls > div.close { + width: 100%; + height: 100%; + background-image: var(--gfx-closeBtn); + background-position: center; + background-repeat: no-repeat; + -webkit-app-region: no-drag; +} +.app-chrome .app-chrome-item > .window-controls > div.close:hover { + background-color: #c42b1c; +} +.app-chrome .app-chrome-item > .window-controls > div.minmax { + background-image: var(--gfx-maxBtn); + background-position: center; + background-repeat: no-repeat; + -webkit-app-region: no-drag; + width: 100%; + height: 100%; +} +.app-chrome .app-chrome-item > .window-controls > div.minmax.restore { + background-image: var(--gfx-restoreBtn); +} +.app-chrome .app-chrome-item > .window-controls > div.minimize { + background-image: var(--gfx-minBtn); + background-position: center; + background-repeat: no-repeat; + -webkit-app-region: no-drag; + width: 100%; + height: 100%; +} +body[platform="darwin"] .app-chrome .app-chrome-item > .window-controls > div.minimize { + display: none; +} +body[platform="darwin"] .app-chrome .app-chrome-item > .window-controls { + display: none; +} +body[platform="darwin"] .app-chrome .app-chrome-item > .window-controls > div.minmax { + display: none; +} +body[platform="darwin"] .app-chrome .app-chrome-item > .window-controls > div.close { + display: none; +} +.app-chrome .app-chrome-item.playback-controls { + width: 80%; + height: 90%; + display: flex; + max-width: 500px; + border-left: 1px solid rgba(200, 200, 200, 0.08); + border-right: 1px solid rgba(200, 200, 200, 0.08); + -webkit-app-region: drag; +} +.app-chrome .app-chrome-item > .app-playback-controls { + display: flex; + justify-content: center; + align-content: center; + width: 100%; + -webkit-app-region: no-drag; +} +.app-chrome .app-chrome-item > .app-playback-controls .song-name { + font-weight: 600; + text-align: center; + font-size: 13px; + height: 1.3em; + line-height: 1.3em; + white-space: nowrap; + max-width: 360px; +} +.app-chrome .app-chrome-item > .app-playback-controls .song-name .song-name-normal { + height: inherit; +} +.app-chrome .app-chrome-item > .app-playback-controls .song-name .explicit-icon { + background-image: url("assets/explicit.svg"); + height: 9px; + width: 13px; + filter: contrast(0); + background-repeat: no-repeat; + margin-left: 3px; +} +.app-chrome .app-chrome-item > .app-playback-controls .lossless-icon { + background-image: url("assets/lossless.svg") !important; +} +.app-chrome .app-chrome-item > .app-playback-controls .ppe-icon { + background-image: url("assets/ppe.svg") !important; +} +.app-chrome .app-chrome-item > .app-playback-controls .audio-type { + filter: contrast(0); + background-repeat: no-repeat; + background-size: contain; + height: 15px; + width: 15px; + position: absolute; + right: 0; + margin-bottom: 15px; +} +.app-chrome .app-chrome-item > .app-playback-controls .song-duration p { + font-weight: 400; + font-size: 10px; + height: 1.2em; + line-height: 1.3em; + overflow: hidden; + margin: 0 0 0 0.25em; +} +.app-playback-controls:hover .marquee { + animation: unset; +} +.app-playback-controls:hover .marquee.song-artist { + overflow: hidden; +} +.app-playback-controls:hover .marquee .song-artist { + overflow: hidden; +} +.app-playback-controls:hover .marquee.song-name { + overflow: hidden; +} +.app-playback-controls:hover .marquee::after { + content: none !important; + display: none; +} +.marquee { + animation: marquee 15s linear infinite; +} +.marquee.song-artist { + overflow: unset; +} +.marquee .song-artist { + overflow: unset; +} +.marquee.song-name { + overflow: unset; +} +.marquee::after { + content: attr(data-value); +} +.app-chrome .app-chrome-item > .app-playback-controls .song-progress { + position: absolute; + bottom: 0px; + left: 0px; + background: transparent; +} +.app-chrome .app-chrome-item > .app-playback-controls .song-progress:hover > input[type=range]::-webkit-slider-thumb { + opacity: 1; + transform: scale(1); + z-index: 1; +} +.app-chrome .app-chrome-item > .app-playback-controls .song-progress > input[type=range] { + appearance: none; + width: 100%; + height: 4px; + background-color: rgba(200, 200, 200, 0.1); + border-radius: 2px; + margin: 0; +} +.app-chrome .app-chrome-item > .app-playback-controls .song-progress > input[type=range]::-webkit-slider-thumb { + opacity: 0; + transform: scale(0.5); + -webkit-appearance: none; + appearance: none; + width: 12px; + height: 12px; + border-radius: 100%; + background: var(--keyColor); + cursor: default; + transition: opacity 0.1s var(--appleEase), transform 0.1s var(--appleEase); +} +.app-chrome .app-chrome-item > .app-playback-controls .song-progress > input[type=range]::-moz-range-thumb { + width: 8px; + height: 8px; + border-radius: 100%; + background: var(--keyColor); + cursor: default; +} +@keyframes marquee { + from { + transform: translateX(0); + } + to { + transform: translateX(-140%); + } +} +.app-chrome .app-chrome-item > .app-playback-controls .artwork { + width: 42px; + height: 42px; + background-image: var(--artwork); + background-position: center; + background-size: contain; + background-repeat: no-repeat; + border-radius: 4px; + flex: 0 0 auto; + margin: 6px; + image-rendering: -webkit-optimize-contrast; +} +.app-chrome .app-chrome-item > .app-playback-controls .actions { + width: 42px; + height: 42px; + border-radius: 2px; + flex: 0 0 auto; + margin: 6px; + display: flex; + justify-content: center; + align-items: center; + filter: contrast(0.8); +} +.app-chrome .app-chrome-item > .app-playback-controls .actions .lcdMenu { + height: 100%; + width: 100%; + padding: 0px; + margin: 0px; + background: transparent; + border: 0px; + appearance: none; + display: flex; + justify-content: center; + align-items: center; + border-radius: 6px; +} +.app-chrome .app-chrome-item > .app-playback-controls .actions .lcdMenu:focus { + outline: none; +} +.app-chrome .app-chrome-item > .app-playback-controls .actions .lcdMenu:hover { + background: var(--hover); +} +.app-chrome .app-chrome-item > .app-playback-controls .actions .lcdMenu:active { + background: var(--selected-click); + transform: scale(0.95); +} +.app-chrome .app-chrome-item > .app-playback-controls .actions .lcdMenu .svg-icon { + --url: url('views/svg/more.svg') !important; +} +.app-chrome .app-chrome-item > .app-playback-controls .playback-info { + width: 100%; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + position: relative; + overflow: hidden; +} +.app-chrome .app-chrome-item > .app-playback-controls .playback-info > .song-progress { + width: 100%; +} +.app-navigation { + background: var(--color1); + height: calc(100% - var(--chromeHeight)); + width: 100%; + display: flex; + position: relative; +} +.app-chrome .app-chrome-item > .app-playback-controls > div > .song-artist-album { + font-weight: 400; + font-size: 12px; + text-align: center; + /*height: 1.2em; + line-height: 1.2em;*/ + z-index: 1; + align-items: center; + justify-content: center; + width: 80%; + max-width: 340px; + overflow: hidden; +} +.app-chrome .app-chrome-item > .app-playback-controls > div > .song-artist-album .song-artist-album-content { + font-weight: 400; + font-size: 12px; + text-align: center; + width: 100%; +} +.app-chrome .app-chrome-item > .app-playback-controls > div > .song-artist-album .song-artist-album-content.song-artist-normal { + height: inherit; +} +.app-chrome .app-chrome-item > .app-playback-controls > div > .song-artist-album.song-artist-marquee > marquee { + margin-bottom: -3px; +} +.display--small { + display: none !important; +} +.web-slider.display--small { + margin: 10px; +} +input[type="range"].web-slider.display--small::-webkit-slider-thumb { + -webkit-appearance: none; + height: 14px; + width: 14px; + border-radius: 50%; + background: #323232; + cursor: default; + box-shadow: inset 0px 0px 0px 1px rgba(255, 255, 255, 0.4); +} +/* Window is smaller <= 1023px width */ +@media only screen and (max-width: 1120px) { + .display--small { + display: inherit !important; + } + .display--small .slider { + width: 100%; + z-index: 1; + } + .display--small .input-container { + display: flex; + justify-content: center; + align-items: center; + width: 100%; + padding-bottom: 10px; + } + .display--small input[type=range] { + -webkit-appearance: none; + height: 4px; + background: rgba(255, 255, 255, 0.4); + border-radius: 5px; + background-size: 70% 100%; + background-repeat: no-repeat; + } + .display--small input[type=range]::-webkit-slider-thumb { + -webkit-appearance: none; + height: 14px; + width: 14px; + border-radius: 50%; + background: #323232; + cursor: default; + box-shadow: inset 0px 0px 0px 1px rgba(255, 255, 255, 0.4); + transition: all var(--appleTransition); + } + .display--small input[type=range]::-webkit-slider-thumb:hover { + background-image: radial-gradient(var(--keyColor) 2px, transparent 3px, transparent 10px); + transform: scale(1.2); + } + .display--small input[type=range]::-webkit-slider-thumb:active { + background-image: radial-gradient(var(--keyColor) 3px, transparent 4px, transparent 10px); + transform: scale(1); + } + .display--small input[type=range]::-webkit-slider-runnable-track { + -webkit-appearance: none; + box-shadow: none; + border: none; + background: transparent; + } + .display--large { + display: none !important; + } +} +.flex-center { + display: flex; + align-items: center; + flex-wrap: wrap; +} +.md-container { + width: 100%; + position: relative; +} +.lyric-body { + -webkit-mask-image: -webkit-gradient(linear, left 95%, left bottom, from(#000000), to(rgba(0, 0, 0, 0))); + overflow-y: scroll; + overflow-x: hidden; + display: flex; + flex-flow: column; + font-family: 'Inter', 'Noto Sans JP', 'Source Han Sans SC', 'Source Han Sans HK', 'Noto Sans SC', 'Noto Sans TC', 'Noto Sans HK', 'Noto Sans KR', sans-serif; +} +.lyric-body .no-lyrics { + width: 100%; + justify-content: center; + align-items: center; + font-weight: bold; + font-size: 26px; +} +.lyric-line { + --bgSpeed: 1s; + appearance: none; + color: white; + font-size: 26px; + transform: scale(0.8); + transform-origin: left center; + transition: transform 0.2s var(--appleEase); + opacity: 0.75; + width: auto; + display: inline-block; + margin: 10px; + margin-left: 5%; + margin-right: 0px; +} +.lyric-line.active .verse { + opacity: 0.6; +} +.lyric-line.active .verse.verse-active { + opacity: 1; +} +.lyric-line:hover { + cursor: pointer; +} +.lyric-line:hover::after { + content: ' '; + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; + transform: scale(1.06); + background: rgba(200, 200, 200, 0.1); + pointer-events: none; + border-radius: 10px; + -webkit-backface-visibility: hidden; +} +.lyric-line.active { + --bgSpeed: 1s; + opacity: 1; + transform: scale(1); + /*background: var(--keyColor);*/ + transition: transform 0.2s var(--appleEase); +} +.lyric-line:not(.active) { + filter: blur(1px); +} +.lyric-line:not(.active).unsynced { + filter: none !important; +} +.lyric-line.unsynced { + filter: none !important; +} +.lyricWaiting { + margin-top: 8px; + display: none; +} +.lyric-line.active .lyricWaiting { + display: inline-flex; + animation: lyricWaitingLine 6s cubic-bezier(0.42, 0, 0.58, 1) infinite; +} +.lyric-line.active .lyricWaiting > div { + width: 10px; + height: 10px; + background: white; + border-radius: 50%; + margin: 3px; +} +.lyrics-translation { + font-size: 1.6rem; + font-weight: 450; + font-family: 'Inter', 'Noto Sans JP', 'Noto Sans SC', 'Noto Sans TC', 'Noto Sans HK', 'Noto Sans KR', sans-serif; + filter: contrast(0.5); +} +.lyric-footer { + bottom: 0; + height: 50px; + width: 100%; + position: absolute; + z-index: 1000; + opacity: 1; + background: rgba(30, 30, 30, 0.8); + justify-content: center; + align-items: center; + display: none; + transition: opacity 0.1s var(--appleEase); +} +.lyric-body:hover + .lyric-footer, +.lyric-footer:hover { + display: flex; +} +.modular-fs .app-drawer .lyric-footer { + background: unset; + display: flex; + opacity: 0.3; +} +.modular-fs .app-drawer .lyric-footer:hover { + opacity: 1; +} +.modular-fs .app-drawer .lyric-body .no-lyrics { + height: 100%; + display: flex; +} +@keyframes lyricWaitingLine { + 0% { + opacity: 0.25; + transform: scale(0.85); + } + 50% { + opacity: 1; + transform: scale(1); + } + 100% { + opacity: 0.25; + transform: scale(0.85); + } +} +@keyframes dotOpacity { + 0% { + opacity: 0.25; + } + 100% { + opacity: 1; + } +} +.lyric-line2:before { + background: var(--keyColor); + content: ''; + width: 0%; + height: 6px; + position: absolute; + bottom: -8px; + left: 0; + border-radius: 10px; + z-index: -1; + transition: width var(--bgSpeed); +} +.lyric-line2.active:before { + width: 100%; + transition: width var(--bgSpeed); +} +.player_top { + height: 100%; +} +/* Cider */ +.more-btn-round { + border-radius: 100%; + background: rgba(100, 100, 100, 0.5); + box-shadow: var(--ciderShadow-Generic); + width: 32px; + height: 32px; + border: 0px; + cursor: pointer; + z-index: 5; + display: flex; + justify-content: center; + align-items: center; +} +.more-btn-round:hover { + filter: brightness(125%); +} +.more-btn-round:active { + filter: brightness(75%); + transform: scale(0.98); + transition: transform 0s var(--appleEase), box-shadow 0.2s var(--appleEase); +} +.more-btn-round .svg-icon { + width: 100%; + background: #eee; + --url: url("views/svg/more.svg"); +} +.about-page .teamBtn { + display: flex; + align-items: center; + width: 100%; + font-size: 14px; + padding: 6px 16px; + margin: 4px; +} +.about-page .teamBtn > img { + width: 30px; + margin: 0px 16px 0px 0px; + pointer-events: none; + border-radius: 100%; + box-shadow: var(--mediaItemShadow); + image-rendering: -webkit-optimize-contrast; +} +.about-page .sponsorBtn { + display: inline-flex; + justify-content: center; + align-items: center; +} +.about-page .sponsorBtn > img { + width: 26px; + margin: 0px 16px 0px 0px; + pointer-events: none; +} +.sidebar-playlist .folder-button-active { + background: rgba(255, 255, 255, 0.12); +} +.sidebar-playlist .folder-body { + background: #ffffff0a; + border-radius: 10px; + padding: 1px 6px; +} +.sidebar-playlist .folder-body .spinner { + display: block; + width: 100%; + height: 32px; + background-size: 16px; +} +#navigation-bar { + width: 100%; + background: rgba(0, 0, 0, 0.25); + height: var(--navigationBarHeight); + display: flex; + align-items: center; + padding: 0px 6px; + z-index: 7; + position: sticky; + top: 0; + left: 0; + backdrop-filter: blur(32px); + mix-blend-mode: hard-light; +} +#navigation-bar .nav-item { + appearance: none; + border: 0px; + height: 32px; + width: 40px; + background: transparent; + padding: 6px; + display: flex; + justify-content: center; + align-items: center; + color: rgba(200, 200, 200, 0.8); + margin: 2px; + border-radius: 6px; + transition: transform 0.1s var(--appleEase); +} +#navigation-bar .nav-item:active { + background: var(--selected-click); + transform: scale(0.96); + transition: transform 0s var(--appleEase); +} +#navigation-bar .nav-item > svg { + width: 8px; + pointer-events: none; +} +#navigation-bar .nav-item:hover { + background: var(--selected); +} +#navigation-bar .nav-item:hover > svg { + color: #c8c8c8; +} +.well { + background: rgba(200, 200, 200, 0.05); + border-radius: 10px; + padding: var(--contentInnerPadding); + box-shadow: rgba(0, 0, 0, 0.08) 0px 0px 0px 1px; + margin-top: 16px; +} +.well.itemContainer { + display: flex; + flex-flow: wrap; + justify-content: center; +} +.well.itemContainer .cd-mediaitem-square { + width: 220px; + height: 260px; + display: inline-flex; + flex: 0 0 auto; + flex-direction: column; + font-size: 14px; + justify-content: center; + align-items: center; + border-radius: 6px; + max-width: 240px; + flex-grow: 1; +} +.text-overflow-elipsis { + display: -webkit-box; + min-width: 0px; + overflow: hidden; + text-overflow: ellipsis; + -webkit-line-clamp: 1; + -webkit-box-orient: vertical; +} +.no-animation { + animation: unset !important; +} +.fullscreen-view-container { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: black; + z-index: 99; + display: flex; + justify-content: center; + align-items: center; + opacity: 1; +} +.fullscreen-view { + width: 100%; + height: 100%; + background: black; + display: flex; + justify-content: center; + align-items: center; +} +.fullscreen-view .fs-row { + flex-grow: 1; +} +.fullscreen-view .playback-button--small.active { + background-color: rgba(200, 200, 200, 0.25); +} +.fullscreen-view .playback-button--small { + opacity: 0.7; +} +.fullscreen-view .right-col { + height: 50vh; +} +.fullscreen-view .bg-artwork-container { + display: block !important; +} +@media only screen and (max-width: 1121px) { + .fullscreen-view .display--large { + display: flex !important; + } +} +.fullscreen-view .display--large { + display: flex; +} +.fullscreen-view .display--large .slider { + width: 100%; + z-index: 1; +} +.fullscreen-view .display--large .input-container { + display: flex; + justify-content: center; + align-items: center; + width: 100%; +} +.fullscreen-view .display--large .volume-button--small { + border-radius: 6px; + color: inherit; + background-size: 16px; + background-repeat: no-repeat; + background-position: center; + background-color: transparent; + height: 15px; + width: 30px; + border: 0px; + box-shadow: unset; + opacity: 0.7; + background-image: url("assets/feather/volume-2.svg"); +} +.fullscreen-view .display--large .volume-button--small:active { + transform: scale(0.9); +} +.fullscreen-view .display--large .volume-button--small.active { + background-image: url("assets/feather/volume.svg"); +} +.fullscreen-view .display--large input[type=range] { + -webkit-appearance: none; + height: 4px; + background: rgba(255, 255, 255, 0.4); + border-radius: 5px; + background-size: 70% 100%; + background-repeat: no-repeat; +} +.fullscreen-view .display--large input[type=range]::-webkit-slider-thumb { + -webkit-appearance: none; + height: 14px; + width: 14px; + border-radius: 50%; + background: #323232; + cursor: default; + box-shadow: inset 0px 0px 0px 1px rgba(255, 255, 255, 0.4); + transition: all var(--appleTransition); +} +.fullscreen-view .display--large input[type=range]::-webkit-slider-thumb:hover { + background-image: radial-gradient(var(--keyColor) 2px, transparent 3px, transparent 10px); + transform: scale(1.2); +} +.fullscreen-view .display--large input[type=range]::-webkit-slider-thumb:active { + background-image: radial-gradient(var(--keyColor) 3px, transparent 4px, transparent 10px); + transform: scale(1); +} +.fullscreen-view .display--large input[type=range]::-webkit-slider-runnable-track { + -webkit-appearance: none; + box-shadow: none; + border: none; + background: transparent; +} +.fullscreen-view .background { + position: absolute; + background-size: cover; + width: 100%; + height: 100%; +} +.fullscreen-view .background .bgArtworkMaterial { + position: absolute; + width: 100%; + height: 100%; +} +.fullscreen-view .background .bgArtworkMaterial .bg-artwork-container { + z-index: unset; +} +.fullscreen-view .background .bgArtworkMaterial .bg-artwork-container .bg-artwork { + filter: brightness(85%) saturate(95%) blur(180px) contrast(0.9) opacity(0.9); +} +.fullscreen-view .lyrics-col { + height: 62vh; + display: flex; + justify-content: center; + align-content: center; + width: 80%; +} +.fullscreen-view .lyrics-col ::-webkit-scrollbar-thumb { + box-shadow: unset; +} +.fullscreen-view .lyrics-col:hover ::-webkit-scrollbar-thumb { + box-shadow: inset 0px 0px 10px 10px rgba(200, 200, 200, 0.5); +} +.fullscreen-view .lyrics-col .no-lyrics { + width: 100%; + height: 100%; + display: flex; + justify-content: center; +} +.fullscreen-view .lyrics-col .lyric-line { + font-size: 35px; +} +.fullscreen-view .queue-col { + width: 60vh; + height: 62vh; +} +.fullscreen-view .queue-col .queue-title { + opacity: 0.6; +} +.fullscreen-view .queue-col .queue-panel > * { + z-index: 3; +} +.fullscreen-view .queue-col ::-webkit-scrollbar-thumb { + box-shadow: unset; +} +.fullscreen-view .queue-col:hover ::-webkit-scrollbar-thumb { + box-shadow: inset 0px 0px 10px 10px rgba(200, 200, 200, 0.5); +} +.fullscreen-view .tab-toggles { + display: flex; + position: absolute; + bottom: 0; + right: 0; + width: 15vh; + height: 5vh; + justify-content: space-evenly; +} +.fullscreen-view .tab-toggles .volume { + background-image: url("assets/feathers/volume.svg"); + padding: 0.5vh; + width: 2vh; + height: 2vh; + background-origin: content-box; + background-repeat: no-repeat; +} +.fullscreen-view .tab-toggles .queue { + background-image: url("assets/list.svg"); + padding: 0.5vh; + width: 2.5vh; + height: 2.5vh; + background-origin: content-box; + background-repeat: no-repeat; +} +.fullscreen-view .tab-toggles .lyrics { + background-image: url("assets/quote-right.svg"); + padding: 0.5vh; + width: 2.5vh; + height: 2.5vh; + background-origin: content-box; + background-repeat: no-repeat; +} +.fullscreen-view .tab-toggles .active { + background-color: rgba(200, 200, 200, 0.7); + border-radius: 3px; +} +.fullscreen-view .artwork-col { + justify-content: center; + align-items: center; + display: flex; + flex-direction: column; +} +.fullscreen-view .artwork-col .artwork { + width: 50vh; + height: 50vh; +} +.fullscreen-view .artwork-col .controls-parents { + width: 50vh; +} +.fullscreen-view .artwork-col .app-playback-controls .song-artist, +.fullscreen-view .artwork-col .app-playback-controls .song-name { + font-weight: 600; + text-align: center; + font-size: 0.9em; + height: 1.2em; + line-height: 0.9em; + overflow: hidden; + text-overflow: ellipsis; + max-width: 360px; +} +.fullscreen-view .artwork-col .app-playback-controls .song-artist .song-name-normal, +.fullscreen-view .artwork-col .app-playback-controls .song-name .song-name-normal { + height: inherit; +} +.fullscreen-view .artwork-col .app-playback-controls .song-artist { + font-size: 0.875em; + font-weight: 400; +} +.fullscreen-view .artwork-col .app-playback-controls .song-name { + width: unset !important; + margin-top: 0.15vh; + display: -webkit-box; + line-height: 1.2; + text-overflow: ellipsis; + text-align: center; +} +.fullscreen-view .artwork-col .app-playback-controls .playback-info { + margin-top: 0.5vh; + width: 100%; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + position: relative; +} +.fullscreen-view .artwork-col .app-playback-controls .playback-info input[type="range"] { + width: 100%; +} +.fullscreen-view .artwork-col .app-playback-controls .playback-info > div { + width: 100%; + text-align: center; +} +.fullscreen-view .artwork-col .app-playback-controls .song-progress { + position: absolute; + bottom: -1.5vh; + left: 0px; + background: transparent; +} +.fullscreen-view .artwork-col .app-playback-controls .song-progress .song-duration p { + font-weight: 400; + font-size: 10px; + height: 1.2em; + line-height: 1.3em; + overflow: hidden; + margin: 0 0 0 0.25em; +} +.fullscreen-view .artwork-col .app-playback-controls .song-progress:hover > input[type=range]::-webkit-slider-thumb { + opacity: 1; + transform: scale(1); + z-index: 1; +} +.fullscreen-view .artwork-col .app-playback-controls .song-progress input[type=range] { + appearance: none; + width: 100%; + height: 4px; + background-color: rgba(200, 200, 200, 0.1); + border-radius: 2px; +} +.fullscreen-view .artwork-col .app-playback-controls .song-progress input[type=range]::-webkit-slider-thumb { + opacity: 0; + transform: scale(0.5); + -webkit-appearance: none; + appearance: none; + width: 12px; + height: 12px; + border-radius: 100%; + background: var(--keyColor); + cursor: default; + transition: opacity 0.1s var(--appleEase), transform 0.1s var(--appleEase); +} +.fullscreen-view .artwork-col .app-playback-controls .song-progress input[type=range]::-moz-range-thumb { + width: 8px; + height: 8px; + border-radius: 100%; + background: var(--keyColor); + cursor: default; +} +.fullscreen-view .artwork-col .control-buttons { + margin-top: 2vh; + display: inline-flex; + width: 100%; + justify-content: center; +} +.mini-view { + width: 100%; + height: 100%; + display: flex; + justify-content: center; + align-items: center; +} +.mini-view .fs-row { + flex-grow: 1; +} +.mini-view .playback-button--small.active { + background-color: rgba(200, 200, 200, 0.25); +} +.mini-view .player-exit { + z-index: 3; + position: absolute; + top: 5px; + right: 5px; + -webkit-app-region: no-drag; +} +.mini-view .player-pin { + z-index: 3; + position: absolute; + min-width: 20px; + min-height: 20px; + top: 5px; + right: 30px; + -webkit-app-region: no-drag; +} +.mini-view #mini-pin { + display: none; +} +.mini-view .player-pin:hover #mini-pin { + display: block; +} +.mini-view .playback-button--small { + opacity: 0.7; +} +.mini-view .right-col { + height: 50vh; +} +@media only screen and (max-width: 1121px) { + .mini-view .display--large { + display: flex !important; + } +} +.mini-view .display--large { + display: flex; +} +.mini-view .display--large .slider { + width: 100%; + z-index: 1; +} +.mini-view .display--large .input-container { + display: flex; + justify-content: center; + align-items: center; + width: 100%; +} +.mini-view .display--large .volume-button--small { + border-radius: 6px; + color: inherit; + background-size: 16px; + background-repeat: no-repeat; + background-position: center; + background-color: transparent; + height: 15px; + width: 30px; + border: 0px; + box-shadow: unset; + opacity: 0.7; + background-image: url("assets/feather/volume-2.svg"); +} +.mini-view .display--large .volume-button--small:active { + transform: scale(0.9); +} +.mini-view .display--large .volume-button--small.active { + background-image: url("assets/feather/volume.svg"); +} +.mini-view .display--large input[type=range] { + -webkit-appearance: none; + height: 4px; + background: rgba(255, 255, 255, 0.4); + border-radius: 5px; + background-size: 70% 100%; + background-repeat: no-repeat; +} +.mini-view .display--large input[type=range]::-webkit-slider-thumb { + -webkit-appearance: none; + height: 14px; + width: 14px; + border-radius: 50%; + background: #323232; + cursor: default; + box-shadow: inset 0px 0px 0px 1px rgba(255, 255, 255, 0.4); + transition: all var(--appleTransition); +} +.mini-view .display--large input[type=range]::-webkit-slider-thumb:hover { + background-image: radial-gradient(var(--keyColor) 2px, transparent 3px, transparent 10px); + transform: scale(1.2); +} +.mini-view .display--large input[type=range]::-webkit-slider-thumb:active { + background-image: radial-gradient(var(--keyColor) 3px, transparent 4px, transparent 10px); + transform: scale(1); +} +.mini-view .display--large input[type=range]::-webkit-slider-runnable-track { + -webkit-appearance: none; + box-shadow: none; + border: none; + background: transparent; +} +.mini-view .background { + position: absolute; + background-size: cover; + width: 100%; + height: 100%; + -webkit-user-select: none; + -webkit-app-region: drag; +} +.mini-view .background .bgArtworkMaterial { + position: absolute; + width: 100%; + height: 100%; +} +.mini-view .background .bgArtworkMaterial .bg-artwork-container { + z-index: unset; +} +.mini-view .background .bgArtworkMaterial .bg-artwork-container .bg-artwork { + filter: brightness(85%) saturate(95%) blur(180px) contrast(0.9) opacity(0.9); +} +.mini-view .background .bgArtworkMaterial .no-animation { + animation: unset; +} +.mini-view .lyrics-col { + height: 62vh; + display: flex; + justify-content: center; + align-content: center; + width: 80%; +} +.mini-view .lyrics-col ::-webkit-scrollbar-thumb { + box-shadow: unset; +} +.mini-view .lyrics-col:hover ::-webkit-scrollbar-thumb { + box-shadow: inset 0px 0px 10px 10px rgba(200, 200, 200, 0.5); +} +.mini-view .lyrics-col .no-lyrics { + width: 100%; + height: 100%; + display: flex; + justify-content: center; +} +.mini-view .lyrics-col .lyric-line { + font-size: 35px; +} +.mini-view .queue-col { + width: 60vh; + height: 50vh; +} +.mini-view .queue-col .queue-title { + opacity: 0.6; +} +.mini-view .queue-col .queue-panel > * { + z-index: 3; +} +.mini-view .queue-col ::-webkit-scrollbar-thumb { + box-shadow: unset; +} +.mini-view .queue-col:hover ::-webkit-scrollbar-thumb { + box-shadow: inset 0px 0px 10px 10px rgba(200, 200, 200, 0.5); +} +.mini-view .tab-toggles { + display: flex; + position: absolute; + bottom: 0; + right: 0; + width: 15vh; + height: 5vh; + justify-content: space-evenly; +} +.mini-view .tab-toggles .volume { + background-image: url("assets/feathers/volume.svg"); + padding: 0.5vh; + width: 2vh; + height: 2vh; + background-origin: content-box; + background-repeat: no-repeat; +} +.mini-view .tab-toggles .queue { + background-image: url("assets/list.svg"); + padding: 0.5vh; + width: 2.5vh; + height: 2.5vh; + background-origin: content-box; + background-repeat: no-repeat; +} +.mini-view .tab-toggles .lyrics { + background-image: url("assets/quote-right.svg"); + padding: 0.5vh; + width: 2.5vh; + height: 2.5vh; + background-origin: content-box; + background-repeat: no-repeat; +} +.mini-view .tab-toggles .active { + background-color: rgba(200, 200, 200, 0.7); + border-radius: 3px; +} +.mini-view .artwork-col { + justify-content: center; + align-items: center; + display: flex; + flex-direction: column; +} +.mini-view .artwork-col .artwork { + width: 100%; + height: 100%; +} +.mini-view .artwork-col .artwork .mediaitem-artwork { + border-radius: unset; +} +.mini-view .artwork-col .controls-parents { + width: 100%; + position: absolute; + background: #0000009e; + backdrop-filter: blur(10px); + bottom: 0px; + z-index: 3; + opacity: 0; + padding: 3%; +} +.mini-view .artwork-col .controls-parents:hover { + opacity: 1; +} +.mini-view .artwork-col .app-playback-controls { + -webkit-app-region: no-drag; +} +.mini-view .artwork-col .app-playback-controls .song-artist, +.mini-view .artwork-col .app-playback-controls .song-name { + font-weight: 600; + text-align: center; + font-size: 0.9em; + height: 1.2em; + line-height: 0.9em; + overflow: hidden; + text-overflow: ellipsis; + max-width: 360px; +} +.mini-view .artwork-col .app-playback-controls .song-artist .song-name-normal, +.mini-view .artwork-col .app-playback-controls .song-name .song-name-normal { + height: inherit; +} +.mini-view .artwork-col .app-playback-controls .song-artist { + font-size: 0.875em; + font-weight: 400; +} +.mini-view .artwork-col .app-playback-controls .song-name { + width: unset !important; + margin-top: 0.15vh; + display: -webkit-box; + line-height: 1.2; + text-overflow: ellipsis; + text-align: center; +} +.mini-view .artwork-col .app-playback-controls .playback-info { + margin-top: 0.5vh; + width: 100%; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + position: relative; +} +.mini-view .artwork-col .app-playback-controls .playback-info input[type="range"] { + width: 100%; +} +.mini-view .artwork-col .app-playback-controls .playback-info > div { + width: 100%; + text-align: center; +} +.mini-view .artwork-col .app-playback-controls .song-progress { + position: absolute; + bottom: -3.5vh; + left: 0px; + background: transparent; +} +.mini-view .artwork-col .app-playback-controls .song-progress .song-duration p { + font-weight: 400; + font-size: 10px; + height: 1.2em; + line-height: 1.3em; + overflow: hidden; + margin: 0 0 0 0.25em; +} +.mini-view .artwork-col .app-playback-controls .song-progress:hover > input[type=range]::-webkit-slider-thumb { + opacity: 1; + transform: scale(1); + z-index: 1; +} +.mini-view .artwork-col .app-playback-controls .song-progress input[type=range] { + appearance: none; + width: 100%; + height: 4px; + background-color: rgba(200, 200, 200, 0.1); + border-radius: 2px; +} +.mini-view .artwork-col .app-playback-controls .song-progress input[type=range]::-webkit-slider-thumb { + opacity: 0; + transform: scale(0.5); + -webkit-appearance: none; + appearance: none; + width: 12px; + height: 12px; + border-radius: 100%; + background: var(--keyColor); + cursor: default; + transition: opacity 0.1s var(--appleEase), transform 0.1s var(--appleEase); +} +.mini-view .artwork-col .app-playback-controls .song-progress input[type=range]::-moz-range-thumb { + width: 8px; + height: 8px; + border-radius: 100%; + background: var(--keyColor); + cursor: default; +} +.mini-view .artwork-col .control-buttons { + margin-top: 3.5vh; + display: inline-flex; + width: 100%; + justify-content: center; +} +#micaEffect { + opacity: 1; + filter: brightness(0.5); +} +@keyframes micaEnter { + 0% { + opacity: 0; + transform: translateY(10px); + } + 100% { + opacity: 1; + transform: translateY(0px); + } +} +@keyframes rotate { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} +.modular-fs .app-drawer { + width: 100%; + right: 0px; + top: 0px; + height: 100%; + border-radius: 0px; + box-shadow: unset; + background: black; +} +.modular-fs .app-drawer .bgArtworkMaterial { + display: block; +} +.modular-fs .app-drawer .bgArtworkMaterial::before { + top: -50%; + left: -20%; + width: 200VH; + height: 200VH; +} +.modular-fs .app-drawer .bgArtworkMaterial .bg-artwork-container { + display: block !important; +} +.modular-fs .app-drawer .lyric-body { + justify-content: center; + align-items: center; + padding: 0px; + margin: 0px; + overflow: hidden; + filter: drop-shadow(0px 4px 6px rgba(0, 0, 0, 0.7)); +} +.modular-fs .app-drawer .lyric-body .lyric-line { + pointer-events: none; + font-weight: 600; + font-size: 2em; + transform-origin: center; + animation: fsLyricIn var(--appleEase) 0.2s; + opacity: 0.9; +} +.modular-fs .app-drawer .lyric-body .lyric-line:not(.active) { + display: none; + margin: 0; + transform: scale(1); +} +.modular-fs .app-drawer .lyric-body .lyric-line.active { + margin: 0; + transform: scale(1); +} +@keyframes fsLyricIn { + 0% { + opacity: 0; + transform: scale(0.98); + } + 100% { + opacity: 1; + transform: scale(1); + } +} +/* Transitions */ +.replaycard-enter-active, +.replaycard-leave-active { + transition: opacity 0.5s var(--appleEase), transform 0.5s var(--appleEase); +} +.replaycard-enter, +.replaycard-leave-to { + opacity: 0; + transform: translateY(20px); +} +.modal-enter-active, +.modal-leave-active { + transition: opacity 0.1s var(--appleEase), transform 0.1s var(--appleEase); +} +.modal-enter, +.modal-leave-to { + opacity: 0; + transform: scale(1.1); +} +.wpfade-enter-active, +.wpfade-leave-active { + transition: opacity 0.1s var(--appleEase); +} +.wpfade-enter, +.wpfade-leave-to { + opacity: 0; +} +.wpfade_transform-enter-active, +.wpfade_transform-leave-active { + --transitionTime: 0.2s; + transition: opacity var(--transitionTime) var(--appleEase), transform var(--transitionTime) var(--appleEase); + will-change: opacity, transform; +} +.wpfade_transform-enter { + opacity: 0; + transform: translateX(50%) translate3d(0, 0, 0); + will-change: opacity, transform; +} +.wpfade_transform-leave-to { + opacity: 0; + transform: translateX(-50%) translate3d(0, 0, 0); + will-change: opacity, transform; +} +.wpfade_transform_backwards-enter-active, +.wpfade_transform_backwards-leave-active { + --transitionTime: 0.2s; + transition: opacity var(--transitionTime) var(--appleEase), transform var(--transitionTime) var(--appleEase); +} +.wpfade_transform_backwards-enter { + opacity: 0; + transform: translateX(-50%) translate3d(0, 0, 0); + will-change: opacity, transform; +} +.wpfade_transform_backwards-leave-to { + opacity: 0; + transform: translateX(50%) translate3d(0, 0, 0); + will-change: opacity, transform; +} +.fabfade-enter-active, +.fabfade-leave-active { + transition: transform 0.1s var(--appleEase), opacity 0.1s var(--appleEase); +} +.fabfade-enter, +.fabfade-leave-to { + opacity: 0; + transform: scale(0.5); +} +.fsModeSwitch-enter-active, +.fsModeSwitch-leave-active { + transition: transform 1s var(--appleEase), opacity 1s var(--appleEase); +} +.fsModeSwitch-enter, +.fsModeSwitch-leave-to { + transform: scale(1.1); + opacity: 0; +} +.drawertransition-enter-active, +.drawertransition-leave-active { + transition: right 0.25s var(--appleEase); +} +.drawertransition-enter, +.drawertransition-leave-to { + right: -300px; +} +:root { + --gfx-closeBtn: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAIn2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIKICAgZGM6Zm9ybWF0PSJpbWFnZS9wbmciCiAgIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiCiAgIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIKICAgdGlmZjpJbWFnZUxlbmd0aD0iMTAiCiAgIHRpZmY6SW1hZ2VXaWR0aD0iMTAiCiAgIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiCiAgIHRpZmY6WFJlc29sdXRpb249IjcyLjAiCiAgIHRpZmY6WVJlc29sdXRpb249IjcyLjAiCiAgIHhtcDpDcmVhdGVEYXRlPSIyMDIwLTAyLTE3VDEyOjU1OjM3WiIKICAgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiCiAgIHhtcDpNZXRhZGF0YURhdGU9IjIwMjEtMTAtMDVUMTQ6Mjc6MzYtMDc6MDAiCiAgIHhtcDpNb2RpZnlEYXRlPSIyMDIxLTEwLTA1VDE0OjI3OjM2LTA3OjAwIgogICB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6ZTk5OWM2NWYtNDhhOS0wNjQyLWI2MTktZmJlYTExMmUxOGZiIgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY5MzMyOWNhLWNkNjctMzY0Zi04MzU1LTY5N2ZmYzI0ZDdlZCIKICAgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjgyZjQwYmU3LTE0YzItZjc0Ni1hZmE1LWQxYmIxNzAyMjM4OCIKICAgZXhpZjpQaXhlbFhEaW1lbnNpb249IjEwIgogICBleGlmOlBpeGVsWURpbWVuc2lvbj0iMTAiCiAgIGV4aWY6Q29sb3JTcGFjZT0iMSI+CiAgIDxwaG90b3Nob3A6VGV4dExheWVycz4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgcGhvdG9zaG9wOkxheWVyTmFtZT0i7qSiIgogICAgICBwaG90b3Nob3A6TGF5ZXJUZXh0PSLupKIiLz4KICAgIDwvcmRmOlNlcT4KICAgPC9waG90b3Nob3A6VGV4dExheWVycz4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHhtcE1NOmFjdGlvbj0iY3JlYXRlZCIKICAgICAgeG1wTU06aW5zdGFuY2VJRD0ieG1wLmlpZDo4MmY0MGJlNy0xNGMyLWY3NDYtYWZhNS1kMWJiMTcwMjIzODgiCiAgICAgIHhtcE1NOnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIKICAgICAgeG1wTU06d2hlbj0iMjAyMC0wMi0xN1QxMjo1NTozN1oiLz4KICAgICA8cmRmOmxpCiAgICAgIHhtcE1NOmFjdGlvbj0ic2F2ZWQiCiAgICAgIHhtcE1NOmNoYW5nZWQ9Ii8iCiAgICAgIHhtcE1NOmluc3RhbmNlSUQ9InhtcC5paWQ6NjkzMzI5Y2EtY2Q2Ny0zNjRmLTgzNTUtNjk3ZmZjMjRkN2VkIgogICAgICB4bXBNTTpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiCiAgICAgIHhtcE1NOndoZW49IjIwMjAtMDItMTdUMTI6NTU6MzdaIi8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InByb2R1Y2VkIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZmZpbml0eSBQaG90byAxLjEwLjEiCiAgICAgIHN0RXZ0OndoZW49IjIwMjEtMTAtMDVUMTQ6Mjc6MzYtMDc6MDAiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KPD94cGFja2V0IGVuZD0iciI/PmN2D9EAAAGCaUNDUHNSR0IgSUVDNjE5NjYtMi4xAAAokXWRv0tCURTHP2lhmGFRQUODhDVZlELU0qD0C6pBDbJa9OWPQO3xnhHRGrQKBVFLv4b6C2oNmoOgKIJoC5qLWkpe56mgRJ7Luedzv/eew73ngiWcVjJ6/QBksjktOOF3zUcWXLZX7DTQQSu+qKKrM6HxMDXt64E6M971mbVqn/vXmpbjugJ1jcKjiqrlhCeFp9dzqsm7wu1KKrosfC7s0eSCwvemHivxm8nJEv+YrIWDAbC0CLuSVRyrYiWlZYTl5bgz6TWlfB/zJY54di4ksVu8C50gE/hxMcUYAYYYZETmIfrw0i8rauQPFPNnWZVcRWaVDTRWSJIih0fUNakel5gQPS4jzYbZ/7991RM+b6m6ww8NL4bx0QO2HSjkDeP72DAKJ2B9hqtsJX/1CIY/Rc9XNPchOLfg4rqixfbgchs6n9SoFi1KVnFLIgHvZ9AcgbZbsC+Welbe5/QRwpvyVTewfwC9ct659At2bGftHD0UJwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAEtJREFUGJWNkMENwDAIA1FGY/8hkn8HOAqPfBsFKvz1yZYtbqwAlUIB6saUAH2NJ4MvL4PLgK/x13LAGTSqEaVa1a0x7XvcmI3D1wbntaRbB2haYwAAAABJRU5ErkJggg=='); + --gfx-maxBtn: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAIn2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIKICAgZGM6Zm9ybWF0PSJpbWFnZS9wbmciCiAgIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiCiAgIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIKICAgdGlmZjpJbWFnZUxlbmd0aD0iMTAiCiAgIHRpZmY6SW1hZ2VXaWR0aD0iMTAiCiAgIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiCiAgIHRpZmY6WFJlc29sdXRpb249IjcyLjAiCiAgIHRpZmY6WVJlc29sdXRpb249IjcyLjAiCiAgIHhtcDpDcmVhdGVEYXRlPSIyMDIwLTAyLTE3VDEyOjU1OjM3WiIKICAgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiCiAgIHhtcDpNZXRhZGF0YURhdGU9IjIwMjEtMTAtMDVUMTQ6Mjc6NTgtMDc6MDAiCiAgIHhtcDpNb2RpZnlEYXRlPSIyMDIxLTEwLTA1VDE0OjI3OjU4LTA3OjAwIgogICB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6ZTk5OWM2NWYtNDhhOS0wNjQyLWI2MTktZmJlYTExMmUxOGZiIgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY5MzMyOWNhLWNkNjctMzY0Zi04MzU1LTY5N2ZmYzI0ZDdlZCIKICAgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjgyZjQwYmU3LTE0YzItZjc0Ni1hZmE1LWQxYmIxNzAyMjM4OCIKICAgZXhpZjpQaXhlbFhEaW1lbnNpb249IjEwIgogICBleGlmOlBpeGVsWURpbWVuc2lvbj0iMTAiCiAgIGV4aWY6Q29sb3JTcGFjZT0iMSI+CiAgIDxwaG90b3Nob3A6VGV4dExheWVycz4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgcGhvdG9zaG9wOkxheWVyTmFtZT0i7qSiIgogICAgICBwaG90b3Nob3A6TGF5ZXJUZXh0PSLupKIiLz4KICAgIDwvcmRmOlNlcT4KICAgPC9waG90b3Nob3A6VGV4dExheWVycz4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHhtcE1NOmFjdGlvbj0iY3JlYXRlZCIKICAgICAgeG1wTU06aW5zdGFuY2VJRD0ieG1wLmlpZDo4MmY0MGJlNy0xNGMyLWY3NDYtYWZhNS1kMWJiMTcwMjIzODgiCiAgICAgIHhtcE1NOnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIKICAgICAgeG1wTU06d2hlbj0iMjAyMC0wMi0xN1QxMjo1NTozN1oiLz4KICAgICA8cmRmOmxpCiAgICAgIHhtcE1NOmFjdGlvbj0ic2F2ZWQiCiAgICAgIHhtcE1NOmNoYW5nZWQ9Ii8iCiAgICAgIHhtcE1NOmluc3RhbmNlSUQ9InhtcC5paWQ6NjkzMzI5Y2EtY2Q2Ny0zNjRmLTgzNTUtNjk3ZmZjMjRkN2VkIgogICAgICB4bXBNTTpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiCiAgICAgIHhtcE1NOndoZW49IjIwMjAtMDItMTdUMTI6NTU6MzdaIi8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InByb2R1Y2VkIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZmZpbml0eSBQaG90byAxLjEwLjEiCiAgICAgIHN0RXZ0OndoZW49IjIwMjEtMTAtMDVUMTQ6Mjc6NTgtMDc6MDAiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KPD94cGFja2V0IGVuZD0iciI/PlwQMBUAAAGCaUNDUHNSR0IgSUVDNjE5NjYtMi4xAAAokXWRv0tCURTHP2lhmGFRQUODhDVZlELU0qD0C6pBDbJa9OWPQO3xnhHRGrQKBVFLv4b6C2oNmoOgKIJoC5qLWkpe56mgRJ7Luedzv/eew73ngiWcVjJ6/QBksjktOOF3zUcWXLZX7DTQQSu+qKKrM6HxMDXt64E6M971mbVqn/vXmpbjugJ1jcKjiqrlhCeFp9dzqsm7wu1KKrosfC7s0eSCwvemHivxm8nJEv+YrIWDAbC0CLuSVRyrYiWlZYTl5bgz6TWlfB/zJY54di4ksVu8C50gE/hxMcUYAYYYZETmIfrw0i8rauQPFPNnWZVcRWaVDTRWSJIih0fUNakel5gQPS4jzYbZ/7991RM+b6m6ww8NL4bx0QO2HSjkDeP72DAKJ2B9hqtsJX/1CIY/Rc9XNPchOLfg4rqixfbgchs6n9SoFi1KVnFLIgHvZ9AcgbZbsC+Welbe5/QRwpvyVTewfwC9ct659At2bGftHD0UJwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAFBJREFUGJXV0LERgCAUBNHVsQADM3uwWWbojQIs47MEGhgAuS/eSw41qeFYqGlRA7iAm74DKLyrfRABoLrOgq+/hJXngi71BOoGZKBMHqhAbtMvQzel9pREAAAAAElFTkSuQmCC'); + --gfx-restoreBtn: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAIn2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIKICAgZGM6Zm9ybWF0PSJpbWFnZS9wbmciCiAgIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiCiAgIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIKICAgdGlmZjpJbWFnZUxlbmd0aD0iMTAiCiAgIHRpZmY6SW1hZ2VXaWR0aD0iMTAiCiAgIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiCiAgIHRpZmY6WFJlc29sdXRpb249IjcyLjAiCiAgIHRpZmY6WVJlc29sdXRpb249IjcyLjAiCiAgIHhtcDpDcmVhdGVEYXRlPSIyMDIwLTAyLTE3VDEyOjU1OjM3WiIKICAgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiCiAgIHhtcDpNZXRhZGF0YURhdGU9IjIwMjEtMTAtMDVUMTQ6Mjc6MjQtMDc6MDAiCiAgIHhtcDpNb2RpZnlEYXRlPSIyMDIxLTEwLTA1VDE0OjI3OjI0LTA3OjAwIgogICB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6ZTk5OWM2NWYtNDhhOS0wNjQyLWI2MTktZmJlYTExMmUxOGZiIgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY5MzMyOWNhLWNkNjctMzY0Zi04MzU1LTY5N2ZmYzI0ZDdlZCIKICAgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjgyZjQwYmU3LTE0YzItZjc0Ni1hZmE1LWQxYmIxNzAyMjM4OCIKICAgZXhpZjpQaXhlbFhEaW1lbnNpb249IjEwIgogICBleGlmOlBpeGVsWURpbWVuc2lvbj0iMTAiCiAgIGV4aWY6Q29sb3JTcGFjZT0iMSI+CiAgIDxwaG90b3Nob3A6VGV4dExheWVycz4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgcGhvdG9zaG9wOkxheWVyTmFtZT0i7qSiIgogICAgICBwaG90b3Nob3A6TGF5ZXJUZXh0PSLupKIiLz4KICAgIDwvcmRmOlNlcT4KICAgPC9waG90b3Nob3A6VGV4dExheWVycz4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHhtcE1NOmFjdGlvbj0iY3JlYXRlZCIKICAgICAgeG1wTU06aW5zdGFuY2VJRD0ieG1wLmlpZDo4MmY0MGJlNy0xNGMyLWY3NDYtYWZhNS1kMWJiMTcwMjIzODgiCiAgICAgIHhtcE1NOnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIKICAgICAgeG1wTU06d2hlbj0iMjAyMC0wMi0xN1QxMjo1NTozN1oiLz4KICAgICA8cmRmOmxpCiAgICAgIHhtcE1NOmFjdGlvbj0ic2F2ZWQiCiAgICAgIHhtcE1NOmNoYW5nZWQ9Ii8iCiAgICAgIHhtcE1NOmluc3RhbmNlSUQ9InhtcC5paWQ6NjkzMzI5Y2EtY2Q2Ny0zNjRmLTgzNTUtNjk3ZmZjMjRkN2VkIgogICAgICB4bXBNTTpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiCiAgICAgIHhtcE1NOndoZW49IjIwMjAtMDItMTdUMTI6NTU6MzdaIi8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InByb2R1Y2VkIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZmZpbml0eSBQaG90byAxLjEwLjEiCiAgICAgIHN0RXZ0OndoZW49IjIwMjEtMTAtMDVUMTQ6Mjc6MjQtMDc6MDAiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KPD94cGFja2V0IGVuZD0iciI/PqiFCFwAAAGCaUNDUHNSR0IgSUVDNjE5NjYtMi4xAAAokXWRv0tCURTHP2lhmGFRQUODhDVZlELU0qD0C6pBDbJa9OWPQO3xnhHRGrQKBVFLv4b6C2oNmoOgKIJoC5qLWkpe56mgRJ7Luedzv/eew73ngiWcVjJ6/QBksjktOOF3zUcWXLZX7DTQQSu+qKKrM6HxMDXt64E6M971mbVqn/vXmpbjugJ1jcKjiqrlhCeFp9dzqsm7wu1KKrosfC7s0eSCwvemHivxm8nJEv+YrIWDAbC0CLuSVRyrYiWlZYTl5bgz6TWlfB/zJY54di4ksVu8C50gE/hxMcUYAYYYZETmIfrw0i8rauQPFPNnWZVcRWaVDTRWSJIih0fUNakel5gQPS4jzYbZ/7991RM+b6m6ww8NL4bx0QO2HSjkDeP72DAKJ2B9hqtsJX/1CIY/Rc9XNPchOLfg4rqixfbgchs6n9SoFi1KVnFLIgHvZ9AcgbZbsC+Welbe5/QRwpvyVTewfwC9ct659At2bGftHD0UJwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHNJREFUGJWtkKEOwlAMRc+QM5AwQYJFoPjZCWb2YRPIaeRTLwfTLQs0UxzX3tumtxCog78UdVTbZmM8AmsdXIABeKH2ak221dDuamnUCjyA+WtbB0zAGXgT0ycSFk31kBky/moUeBLpbsl91wi6Nnbfs/g+7XOQq6ifjfkAAAAASUVORK5CYII='); + --gfx-minBtn: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAGOmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIwLTAyLTE3VDEzOjAwOjMyWiIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMC0wMi0xN1QxMzowMDozMloiIHhtcDpNb2RpZnlEYXRlPSIyMDIwLTAyLTE3VDEzOjAwOjMyWiIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4NWQwZWRiMC1mZDAwLWI2NGYtOWVmYi1hMmI0NTg3MDVhOGEiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDphMzAwMWUxYS0yOTE5LWU0NDktYjk0Yy1jMjEyMjQ4YTlmOGEiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo3ODdmNzk5Yy00YjExLWU1NGEtYjIwZC02ODYxN2VkOWM1ZTIiIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo3ODdmNzk5Yy00YjExLWU1NGEtYjIwZC02ODYxN2VkOWM1ZTIiIHN0RXZ0OndoZW49IjIwMjAtMDItMTdUMTM6MDA6MzJaIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjg1ZDBlZGIwLWZkMDAtYjY0Zi05ZWZiLWEyYjQ1ODcwNWE4YSIgc3RFdnQ6d2hlbj0iMjAyMC0wMi0xN1QxMzowMDozMloiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPHBob3Rvc2hvcDpUZXh0TGF5ZXJzPiA8cmRmOkJhZz4gPHJkZjpsaSBwaG90b3Nob3A6TGF5ZXJOYW1lPSLupKEiIHBob3Rvc2hvcDpMYXllclRleHQ9Iu6koSIvPiA8L3JkZjpCYWc+IDwvcGhvdG9zaG9wOlRleHRMYXllcnM+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+FwvRXAAAABdJREFUGNNj/P//PwMxgHGIKPw/XDwDAOr1HuzlELLnAAAAAElFTkSuQmCC'); +} +#apple-music-video-container { + background: black; + position: absolute; + float: left; + display: none; + width: 100%; + height: calc(100% - var(--chromeHeight)); + bottom: 0; + z-index: 100000; +} +#apple-music-video-player { + position: absolute; + top: 50%; + width: 100%; + transform: translate(0, -50%); + height: 100%; +} +#app.twopanel #apple-music-video-container { + top: var(--chromeHeight1); + bottom: unset; +} +#apple-music-video-player-controls { + position: absolute; + z-index: 100001; + float: left; + width: 100%; + height: 100%; +} +#apple-music-video-player-controls #player-exit { + position: absolute; + z-index: 100001; + float: left; + width: 100%; + margin: 10px; + cursor: pointer; +} +#apple-music-video-player-controls #player-pip { + position: absolute; + z-index: 100001; + width: 32px; + height: 32px; + margin: 10px; + right: 50px; + border-radius: 100%; + background: rgba(255, 255, 255, 0.5); + display: flex; + justify-content: center; + align-items: center; + cursor: pointer; +} +#apple-music-video-player-controls #player-pip > svg { + width: 50%; +} +#apple-music-video-player-controls #player-fullscreen { + position: absolute; + z-index: 100001; + width: 32px; + height: 32px; + margin: 10px; + right: 0px; + border-radius: 100%; + background: rgba(255, 255, 255, 0.5); + display: flex; + justify-content: center; + align-items: center; + cursor: pointer; +} +#apple-music-video-player-controls #player-fullscreen > svg { + width: 70%; +} +#apple-music-video-player-controls:hover { + opacity: 1; +} +img[src=""] { + text-indent: -10000px; +} +div#captions { + font-size: 1.2rem; + position: absolute; + top: 85%; + text-align: center; + width: auto; + align-self: center; + left: 50%; + transform: translate(-50%, -50%); + background: rgba(0, 0, 0, 0.6); + color: yellow; + white-space: pre-line; + font-family: 'Inter', 'Noto Sans JP', 'Source Han Sans SC', 'Source Han Sans HK', 'Source Han Sans SC', 'Source Han Sans HK', 'Noto Sans SC', 'Noto Sans TC', 'Noto Sans HK', 'Noto Sans KR', sans-serif; +} +[v-cloak] { + display: none !important; +} +.item-navigate:hover { + text-decoration: underline; + cursor: pointer; +} +.title-browse-sp { + width: 100%; + text-align: left; + margin-bottom: 2px; +} +.bold { + font-weight: bold; +} +.semibold { + font-weight: 500; +} +.madeforyou-body { + margin-top: 15px; +} +.albums-square-container { + text-align: center; +} +body.no-gpu { + --ciderShadow-Generic: var(--mediaItemShadow); + --mediaItemShadow-Shadow: var(--mediaItemShadow); + --mediaItemShadow-ShadowSubtle: var(--mediaItemShadow); +} +body.no-gpu .bg-artwork-container { + display: none; + animation: none !important; +} +body.no-gpu .bg-artwork-container .bg-artwork { + animation: none !important; +} +body.no-gpu #navigation-bar { + backdrop-filter: unset; + mix-blend-mode: unset; + background: #000000; +} +body.no-gpu .addtoplaylist-panel .modal-window { + background: #121212; + backdrop-filter: unset; +} +body.no-gpu .app-drawer { + backdrop-filter: unset; + mix-blend-mode: unset; + background: #1c1c1c; +} +body.no-gpu .wpfade-enter-active, +body.no-gpu .wpfade-leave-active { + transition: opacity 0s var(--appleEase); +} +body.no-gpu .wpfade-enter, +body.no-gpu .wpfade-leave-to { + opacity: 0; +} +body.no-gpu .drawertransition-enter-active, +body.no-gpu .drawertransition-leave-active { + transition: right 0s var(--appleEase); +} +body.no-gpu .drawertransition-enter, +body.no-gpu .drawertransition-leave-to { + right: -300px; +} +body.no-gpu .lyric-line:hover::after { + display: none; +} +.qrimg { + width: -webkit-fill-available; + max-block-size: -webkit-fill-available; + object-fit: contain; + overflow-x: hidden; + overflow-y: hidden; +} +.equalizer-panel .modal-window { + height: 330px; + max-height: 330px; + width: 740px; + max-width: 800px; + overflow: hidden; +} +.equalizer-panel .modal-window .info-header { + padding-left: 12px; +} +.equalizer-panel .modal-window .visual-container { + display: flex; + justify-content: center; + align-items: center; + overflow: hidden; +} +.equalizer-panel .modal-window .modal-header { + padding: 16px; + position: relative; + overflow: hidden; +} +.equalizer-panel .modal-window .modal-header .modal-title { + text-align: center; +} +.equalizer-panel .modal-window .modal-header .close-btn { + width: 50px; + height: 100%; + background-image: var(--gfx-closeBtn); + background-position: center; + background-repeat: no-repeat; + -webkit-app-region: no-drag; + appearance: none; + border: 0; + background-color: transparent; + position: absolute; + top: 0; + right: 0; +} +.equalizer-panel .modal-window .modal-header .close-btn:hover { + background-color: #c42b1c; +} +.equalizer-panel .modal-window .modal-content { + display: block; +} +.equalizer-panel .modal-window .modal-content .inputs-container { + margin-left: 8px; +} +.equalizer-panel .modal-window .modal-content .input-container { + display: inline-grid; + width: 54px; + justify-items: center; + font-size: 0.7em; +} +.equalizer-panel .modal-window .modal-content .input-container.mini { + display: inline-grid; + width: 43px; + justify-items: center; + font-size: 0.7em; +} +.equalizer-panel .modal-window .modal-content .freq-header { + margin-bottom: 2px; +} +.equalizer-panel .modal-window .modal-content .reset-button { + width: 50%; + margin-left: 25%; + text-align: center; +} +.equalizer-panel .modal-window .modal-content input.eq-slider { + -webkit-appearance: slider-vertical; + width: 5%; +} +.equalizer-panel .modal-window .modal-content input[type="number"] { + padding: unset; + width: 55px; +} +.equalizer-panel .modal-window .modal-content .header input.eq-slider { + -webkit-appearance: slider-vertical; + width: 5%; + opacity: 0; +} +.equalizer-panel .modal-window .modal-lowercontent { + padding: 16px; + background-color: var(--modalBackground); +} +body[platform='darwin'] #window-controls-container { + display: none; +} +body[platform='darwin'] .app-chrome .app-chrome-item > .app-mainmenu { + opacity: 0; + pointer-events: none; + -webkit-app-region: drag; +} +.percent { + display: inline-block; + position: relative; +} +.percent::after { + position: relative; + right: 2em; + transition: all 0.05s ease-in-out; +} +.percent:hover::after, +.percent:focus-within::after { + right: 3.5em; +} +.percent::after { + content: '%'; +} +.spatialproperties-panel.modal-fullscreen { + flex-direction: column; +} +.cursor { + background: rgba(255, 255, 255, 0.5); + width: 16px; + height: 16px; + position: fixed; + z-index: 9999999999; + pointer-events: none; + border-radius: 100%; + box-shadow: 0px 0px 0px 2px #c8c8c8; + top: 0; + left: 0; + display: none; +} +body[platform="darwin"] html { + background: transparent!important; +} +body[platform="darwin"].notransparency::before { + display: none; +} +body[platform="darwin"] #app.simplebg { + background: transparent; +} +body[platform="darwin"] #app::before { + display: none; +} +body[platform="linux"] #window-controls-container { + display: none; +} +#app.compact .content-inner { + zoom: 0.95; +} +#app.compact .app-sidebar-content { + padding: 0px; +} +#app.compact .app-sidebar-content .app-sidebar-header-text { + padding: 6px 10px; + margin: 0px; +} +#app.compact .app-sidebar-content .app-sidebar-item { + display: flex; + width: 100%; + padding: 8px 12px; + font-size: 13px; + margin: 0px; + border: 1px solid transparent; + border-radius: 0px; + transition: unset; + transform: unset; +} +#app.compact .app-sidebar-content .app-sidebar-item:active { + background: var(--selected-click); +} +#app.compact .app-sidebar-content .app-sidebar-item::after { + display: none; +} +#app.compact .app-sidebar-content .app-sidebar-item.active { + background: var(--keyColor-disabled); +} +#app.compact .app-sidebar-content .sidebar-icon { + width: 14px; + height: 16px; + margin-right: 8px; +} +#app.compact .app-sidebar-content .folder-body { + border-radius: 0px; + padding: 0px; +} +@media (max-width: 951px) { + #app.compact #app-content { + zoom: 0.8; + } +} +@media (max-width: 951px) { + #app-content { + zoom: 0.8; + } +} +#app.twopanel { + --chromeHeight1: 42px; + --chromeHeight2: 76px; + --chromeHeight: calc(var(--chromeHeight1) + var(--chromeHeight2)); +} +#app.twopanel .app-chrome { + height: var(--chromeHeight1); +} +#app.twopanel .app-chrome .app-mainmenu { + margin-left: 10px; + width: 88px; +} +#app.twopanel .app-chrome.chrome-bottom { + height: var(--chromeHeight2); + box-shadow: 0px -1px 0px rgba(0, 0, 0, 0.25); + z-index: 1; +} +#app.twopanel .app-sidebar-footer--controls { + display: none !important; +} +#app.twopanel .app-chrome.chrome-bottom .app-playback-controls .actions { + align-self: center; +} +#app.twopanel .app-chrome.chrome-bottom .playback-button.play, +#app.twopanel .app-chrome.chrome-bottom .playback-button.pause { + width: 42px; + height: 42px; + background-color: rgba(200, 200, 200, 0.2); + border-radius: 50%; + margin: 6px; + box-shadow: 0px 0px 0px 2px var(--keyColor); +} +#app.twopanel .app-chrome.chrome-bottom .app-chrome--center { + display: flex; + flex-direction: column; +} +#app.twopanel .app-chrome.chrome-bottom .app-chrome--center .app-chrome-playback-controls { + display: flex; + z-index: 1; +} +#app.twopanel .app-chrome.chrome-bottom .app-chrome--center .app-chrome-playback-duration { + position: relative; + width: 80%; + -webkit-app-region: no-drag; + height: 16px; +} +#app.twopanel .app-chrome.chrome-bottom .app-chrome--center .app-chrome-playback-duration .song-progress { + height: 16px; + position: absolute; + bottom: 4px; + left: 0px; + right: 4px; + background: transparent; + z-index: 0; +} +#app.twopanel .app-chrome.chrome-bottom .app-chrome--center .app-chrome-playback-duration .song-progress .song-duration { + display: flex; +} +#app.twopanel .app-chrome.chrome-bottom .app-chrome--center .app-chrome-playback-duration .song-progress .song-duration p { + font-weight: 400; + font-size: 10px; + height: 1.2em; + line-height: 1.3em; + overflow: hidden; + margin: 0 0 0 0.25em; +} +#app.twopanel .app-chrome.chrome-bottom .app-chrome--center .app-chrome-playback-duration .song-progress:hover > input[type=range]::-webkit-slider-thumb { + opacity: 1; + transform: scale(1); + z-index: 1; +} +#app.twopanel .app-chrome.chrome-bottom .app-chrome--center .app-chrome-playback-duration .song-progress input[type=range] { + appearance: none; + width: 100%; + height: 4px; + background-color: rgba(200, 200, 200, 0.1); + border-radius: 2px; +} +#app.twopanel .app-chrome.chrome-bottom .app-chrome--center .app-chrome-playback-duration .song-progress input[type=range]::-webkit-slider-thumb { + opacity: 0; + transform: scale(0.5); + -webkit-appearance: none; + appearance: none; + width: 12px; + height: 12px; + border-radius: 100%; + background: var(--keyColor); + cursor: default; + transition: opacity 0.1s var(--appleEase), transform 0.1s var(--appleEase); +} +#app.twopanel .app-chrome.chrome-bottom .app-chrome--left { + width: 30%; + justify-content: flex-start; + align-items: flex-start; + flex: 0 0 auto; +} +#app.twopanel .app-chrome.chrome-bottom .app-chrome--left .playback-controls { + width: 100%; + height: 100%; + max-width: 100%; + border: 0px; +} +#app.twopanel .app-chrome.chrome-bottom .app-chrome--left .playback-controls .artwork { + width: var(--chromeHeight2); + height: var(--chromeHeight2); + margin: 0px 6px 0px 0px; + box-shadow: unset; + border: 0px; +} +#app.twopanel .app-chrome.chrome-bottom .app-chrome--left .playback-controls .artwork .mediaitem-artwork, +#app.twopanel .app-chrome.chrome-bottom .app-chrome--left .playback-controls .artwork img { + border-radius: 0px; + box-shadow: unset; + border: 0px; +} +#app.twopanel .app-chrome.chrome-bottom .app-chrome--left .playback-controls .playback-info { + align-items: flex-start; + margin: 6px; +} +#app.twopanel .app-chrome.chrome-bottom .app-chrome--left .playback-controls .playback-info .song-name { + text-align: left; + font-size: 15px; + font-weight: initial; + width: 100%; + -webkit-mask-image: linear-gradient(-90deg, transparent 0%, transparent 10%, black 20%); +} +#app.twopanel .app-chrome.chrome-bottom .app-chrome--left .playback-controls .playback-info .song-artist-album { + width: 100%; + -webkit-mask-image: linear-gradient(-90deg, transparent 0%, transparent 10%, black 20%); +} +#app.twopanel .app-chrome.chrome-bottom .app-chrome--left .playback-controls .playback-info .audio-type { + margin: 0px; +} +#app.twopanel .app-chrome.chrome-bottom .app-chrome--left .playback-controls .playback-info .song-artist-album-content { + text-align: left; + font-size: 12px; +} +#app.twopanel .app-chrome.chrome-bottom .app-chrome--right { + width: 30%; + flex: 0 0 auto; +} +#app.twopanel .collection-page .top-fab { + bottom: 96px; +} diff --git a/src/renderer/style.less b/src/renderer/style.less index 4b88be9c..1ad5ba32 100644 --- a/src/renderer/style.less +++ b/src/renderer/style.less @@ -4,9 +4,14 @@ @import url("https://fonts.googleapis.com/css2?family=Noto+Sans+HK:wght@100;300;400;500;700;900&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@100;300;400;500;700;900&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@100;300;400;500;700;900&display=swap"); +@import url("less/bootstrap-vue.min.css"); @import url("less/ameframework.less"); +@import url("less/codicon.css"); @import url("less/bootstrap.less"); @import url("less/notyf.less"); +@import url("less/elements.less"); +@import url("less/helpers.less"); +@import url("less/pages.less"); :root { --appleEase: cubic-bezier(0.42, 0, 0.58, 1); @@ -17,7 +22,9 @@ --mediaItemRadius: 6px; --mediaItemRadiusRound: 100%; --contentInnerPadding: 16px; - --navbarHeight: 48px; + --navbarHeight1: 48px; + --navbarHeight2: 0px; + --navbarHeight: calc(var(--navbarHeight1) + var(--navbarHeight2)); --selected: rgb(130 130 130 / 30%); --selected-click: rgb(80 80 80 / 30%); --hover: rgb(200 200 200 / 10%); @@ -32,7 +39,14 @@ --keyColor-disabled: rgba(250, 88, 106, 0.35); --navigationBarHeight: 38px; --modalBackground: #262626; + --songProgressColor: var(--keyColor); + --songProgressBackground: #333; --textColor: #eee; + --replayGradient: linear-gradient(45deg, hsl(248deg 58% 29%), hsl(13deg 41% 42%)); +} + +*:focus-visible { + outline:2px solid var(--keyColor); } html, @@ -68,6 +82,14 @@ body[loading] { } } +body.stopanimation * { + animation: unset !important; + + .loadbar-sound { + display: none; + } +} + body.notransparency::before { content: ""; position: absolute; @@ -79,14 +101,6 @@ body.notransparency::before { background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAMAAAAp4XiDAAAAUVBMVEWFhYWDg4N3d3dtbW17e3t1dXWBgYGHh4d5eXlzc3OLi4ubm5uVlZWPj4+NjY19fX2JiYl/f39ra2uRkZGZmZlpaWmXl5dvb29xcXGTk5NnZ2c8TV1mAAAAG3RSTlNAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAvEOwtAAAFVklEQVR4XpWWB67c2BUFb3g557T/hRo9/WUMZHlgr4Bg8Z4qQgQJlHI4A8SzFVrapvmTF9O7dmYRFZ60YiBhJRCgh1FYhiLAmdvX0CzTOpNE77ME0Zty/nWWzchDtiqrmQDeuv3powQ5ta2eN0FY0InkqDD73lT9c9lEzwUNqgFHs9VQce3TVClFCQrSTfOiYkVJQBmpbq2L6iZavPnAPcoU0dSw0SUTqz/GtrGuXfbyyBniKykOWQWGqwwMA7QiYAxi+IlPdqo+hYHnUt5ZPfnsHJyNiDtnpJyayNBkF6cWoYGAMY92U2hXHF/C1M8uP/ZtYdiuj26UdAdQQSXQErwSOMzt/XWRWAz5GuSBIkwG1H3FabJ2OsUOUhGC6tK4EMtJO0ttC6IBD3kM0ve0tJwMdSfjZo+EEISaeTr9P3wYrGjXqyC1krcKdhMpxEnt5JetoulscpyzhXN5FRpuPHvbeQaKxFAEB6EN+cYN6xD7RYGpXpNndMmZgM5Dcs3YSNFDHUo2LGfZuukSWyUYirJAdYbF3MfqEKmjM+I2EfhA94iG3L7uKrR+GdWD73ydlIB+6hgref1QTlmgmbM3/LeX5GI1Ux1RWpgxpLuZ2+I+IjzZ8wqE4nilvQdkUdfhzI5QDWy+kw5Wgg2pGpeEVeCCA7b85BO3F9DzxB3cdqvBzWcmzbyMiqhzuYqtHRVG2y4x+KOlnyqla8AoWWpuBoYRxzXrfKuILl6SfiWCbjxoZJUaCBj1CjH7GIaDbc9kqBY3W/Rgjda1iqQcOJu2WW+76pZC9QG7M00dffe9hNnseupFL53r8F7YHSwJWUKP2q+k7RdsxyOB11n0xtOvnW4irMMFNV4H0uqwS5ExsmP9AxbDTc9JwgneAT5vTiUSm1E7BSflSt3bfa1tv8Di3R8n3Af7MNWzs49hmauE2wP+ttrq+AsWpFG2awvsuOqbipWHgtuvuaAE+A1Z/7gC9hesnr+7wqCwG8c5yAg3AL1fm8T9AZtp/bbJGwl1pNrE7RuOX7PeMRUERVaPpEs+yqeoSmuOlokqw49pgomjLeh7icHNlG19yjs6XXOMedYm5xH2YxpV2tc0Ro2jJfxC50ApuxGob7lMsxfTbeUv07TyYxpeLucEH1gNd4IKH2LAg5TdVhlCafZvpskfncCfx8pOhJzd76bJWeYFnFciwcYfubRc12Ip/ppIhA1/mSZ/RxjFDrJC5xifFjJpY2Xl5zXdguFqYyTR1zSp1Y9p+tktDYYSNflcxI0iyO4TPBdlRcpeqjK/piF5bklq77VSEaA+z8qmJTFzIWiitbnzR794USKBUaT0NTEsVjZqLaFVqJoPN9ODG70IPbfBHKK+/q/AWR0tJzYHRULOa4MP+W/HfGadZUbfw177G7j/OGbIs8TahLyynl4X4RinF793Oz+BU0saXtUHrVBFT/DnA3ctNPoGbs4hRIjTok8i+algT1lTHi4SxFvONKNrgQFAq2/gFnWMXgwffgYMJpiKYkmW3tTg3ZQ9Jq+f8XN+A5eeUKHWvJWJ2sgJ1Sop+wwhqFVijqWaJhwtD8MNlSBeWNNWTa5Z5kPZw5+LbVT99wqTdx29lMUH4OIG/D86ruKEauBjvH5xy6um/Sfj7ei6UUVk4AIl3MyD4MSSTOFgSwsH/QJWaQ5as7ZcmgBZkzjjU1UrQ74ci1gWBCSGHtuV1H2mhSnO3Wp/3fEV5a+4wz//6qy8JxjZsmxxy5+4w9CDNJY09T072iKG0EnOS0arEYgXqYnXcYHwjTtUNAcMelOd4xpkoqiTYICWFq0JSiPfPDQdnt+4/wuqcXY47QILbgAAAABJRU5ErkJggg==); } -body.stopanimation * { - animation: unset !important; - - .loadbar-sound { - display: none; - } -} - *, *:before, *:after { @@ -128,16 +142,18 @@ body.stopanimation * { } #app { - --color1: rgba(30, 30, 30, 30%); - --color2: rgba(15, 15, 15, 30%); + --color1: rgba(15, 15, 15, 30%); + --color2: rgba(30, 30, 30, 50%); --bgColor: transparent; --bgWidth: 0px; --bgHeight: 0px; - --chromeHeight: 55px; + --chromeHeight1: 55px; + --chromeHeight2: 0px; + --chromeHeight: calc(var(--chromeHeight1) + var(--chromeHeight2)); width: 100%; height: 100%; background: var(--color1); - color: white; + color: var(--textColor); user-select: none; margin: 0 auto; position: relative; @@ -163,21 +179,6 @@ body.stopanimation * { z-index: 1; } } - - //&::before { - // position: absolute; - // top: -50%; - // left: -50%; - // width: var(--bgWidth); - // height: var(--bgHeight); - // background-image: var(--bgColor); - // content: ""; - // z-index: -1; - // transform: rotateZ(0deg); - // transform-origin: center; - // animation: bgRotate 10s linear infinite; - // filter: brightness(100%) saturate(200%) contrast(1.5); - //} } .bgGradientMaterial-base { @@ -352,11 +353,6 @@ input[type=range].web-slider::-webkit-slider-runnable-track { padding: 0px; } -.md-btn { - font-family: inherit; - font-size: 14px; -} - #app-main { display: flex; width: 100%; @@ -400,24 +396,6 @@ input[type=range].web-slider::-webkit-slider-runnable-track { position: relative; } -.content-inner { - position: absolute; - top: var(--navigationBarHeight); - left: 0; - padding: 32px; - width: 100%; - transition: zoom 1s; - zoom: 1; -} - -.content-inner.centered { - height: 100%; - display: flex; - flex-flow: column; - justify-content: center; - align-items: center; -} - .app-drawer { width: 300px; flex: 0 0 auto; @@ -580,14 +558,14 @@ input[type=range].web-slider::-webkit-slider-runnable-track { .app-sidebar-notification { text-align: center; font-size: 12px; - min-height: 60px; + min-height: 36px; display: flex; justify-content: center; align-items: center; border-top: 1px solid rgb(200 200 200 / 15%); background: rgb(0 0 0 / 15%); flex-direction: column; - padding: 20px 0px; + padding: 10px 0px; &.libraryNotification { flex-direction: row; @@ -663,6 +641,7 @@ input[type=range].web-slider::-webkit-slider-runnable-track { .usermenu-container { top: 0px; + z-index: 200001 !important; #cmenu.container(); .usermenu-body { @@ -799,38 +778,49 @@ input[type=range].web-slider::-webkit-slider-runnable-track { font-weight: 400; font-family: inherit; font-size: 14px; - margin: 6px 0px; + margin: 3px 0px; border: 1px solid transparent; border-radius: 6px; background: transparent; color: #eee; - transition: transform .1s; + transition: transform 0.1s; text-align: left; &.app-sidebar-item-playlist { -webkit-user-drag: element; overflow: hidden; text-overflow: ellipsis; + + .presentNotice { + align-self: center; + margin-left: 8px; + text-transform: uppercase; + font-size: 0.7em; + opacity: 0.6; + } } + } .app-sidebar-item:hover { - border: 1px solid rgb(200 200 200 / 5%); - background: rgb(200 200 200 / 15%); + border: 1px solid rgb(200 200 200 / 0%); + background: rgb(180 180 180 / 15%); + // cursor: pointer; } .app-sidebar-item:active { - border: 1px solid rgb(200 200 200 / 5%); - background: rgb(200 200 200 / 15%); - transform: scale(0.98); + border: 1px solid rgb(200 200 200 / 0%); + background: rgb(150 150 150 / 15%); + // transform: scale(0.98); transition: transform 0s; } .app-sidebar-item.active { - border: 1px solid rgb(200 200 200 / 5%); + border: 1px solid rgb(200 200 200 / 0%); background: rgb(200 200 200 / 15%); transform: scale(1); transition: transform 0s; + cursor: default; } .app-sidebar-item.active::after { @@ -843,12 +833,23 @@ input[type=range].web-slider::-webkit-slider-runnable-track { border-radius: 10px; left: 0px; background: var(--keyColor); + animation: expandIndicator .2s cubic-bezier(0.25, 1, 0.5, 1); + + @keyframes expandIndicator { + 0% { + transform: scaleY(0); + } + + 100% { + transform: scaleY(1); + } + } } .app-chrome { background: var(--color1); width: 100%; - height: var(--chromeHeight); + height: var(--chromeHeight1); display: flex; flex-direction: row; -webkit-app-region: drag; @@ -880,7 +881,7 @@ input[type=range].web-slider::-webkit-slider-runnable-track { } .app-chrome .app-chrome--center { - width: 100%; + width: 40%; } .app-chrome .app-chrome--right { @@ -1073,41 +1074,19 @@ input[type=range].web-slider::-webkit-slider-runnable-track { } body[platform="darwin"] .app-chrome .app-chrome-item > .window-controls > div.minimize { - height: 12px; - width: 12px; - background-color: rgb(255, 92, 92); - border-radius: 50%; - display: inline-block; - margin: auto 4px; - color: rgb(130, 0, 5); - -webkit-app-region: no-drag; - background-image: unset; + display: none; } body[platform="darwin"] .app-chrome .app-chrome-item > .window-controls { - width: 67px; + display: none; } body[platform="darwin"] .app-chrome .app-chrome-item > .window-controls > div.minmax { - height: 12px; - width: 12px; - background-color: rgb(255, 189, 76); - border-radius: 50%; - display: inline-block; - margin: auto 4px; - -webkit-app-region: no-drag; - background-image: unset; + display: none; } body[platform="darwin"] .app-chrome .app-chrome-item > .window-controls > div.close { - height: 12px; - width: 12px; - background-color: rgb(0, 202, 86); - border-radius: 50%; - display: inline-block; - margin: auto 4px auto 4px; - -webkit-app-region: no-drag; - background-image: unset; + display: none; } .app-chrome .app-chrome-item.playback-controls { @@ -1117,6 +1096,7 @@ body[platform="darwin"] .app-chrome .app-chrome-item > .window-controls > div.cl max-width: 500px; border-left: 1px solid rgb(200 200 200 / 8%); border-right: 1px solid rgb(200 200 200 / 8%); + -webkit-app-region: drag; } .app-chrome .app-chrome-item > .app-playback-controls { @@ -1124,6 +1104,7 @@ body[platform="darwin"] .app-chrome .app-chrome-item > .window-controls > div.cl justify-content: center; align-content: center; width: 100%; + -webkit-app-region: no-drag; } .app-chrome .app-chrome-item > .app-playback-controls { @@ -1252,6 +1233,7 @@ body[platform="darwin"] .app-chrome .app-chrome-item > .window-controls > div.cl height: 4px; background-color: rgb(200 200 200 / 10%); border-radius: 2px; + margin: 0; &::-webkit-slider-thumb { opacity: 0; @@ -1296,7 +1278,6 @@ body[platform="darwin"] .app-chrome .app-chrome-item > .window-controls > div.cl border-radius: 4px; flex: 0 0 auto; margin: 6px; - box-shadow: inset 0px 0px 0px 1px rgb(200 200 200 / 25%); image-rendering: -webkit-optimize-contrast; } @@ -1477,450 +1458,17 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { } } -.header-text { - margin: 0px; -} - -.media-item--small { - background: rgb(0 0 0 / 25%); - height: 162px; - width: 132px; - display: inline-flex; - flex-direction: column; - justify-content: center; - align-items: center; - border-radius: 10px; -} - -.media-item--small .artwork { - background: red; - margin: 6px; - border-radius: 100%; - width: 90px; - height: 90px; - box-shadow: inset 0px 0px 0px 1px rgb(200 200 200 / 30%); -} - -.playlist-artwork { - height: 190px; - width: 190px; - background: blue; - border-radius: 6px; - background: var(--artwork); - background-size: cover; - box-shadow: var(--mediaItemShadow); - flex: 0 0 auto; - margin: 6px; - margin-top: 0px; -} - -.media-item--small .text { - font-weight: 600; - font-size: 0.90em; -} - -.media-item--small .subtext { - font-size: 0.75em; -} - -.player-duration-time { - opacity: 0.5; -} - -.player-artwork-container { - display: flex; - align-items: center; - justify-content: center; -} - -.player-duration-container { - font-size: 0.85em; - font-weight: 500; -} - -.media-artwork { - --artwork: url(""); - width: 80vw; - height: 80vw; - max-height: 500px; - max-width: 500px; - background: black; - background-image: var(--artwork); - background-size: cover; - background-position: center; - background-repeat: no-repeat; - border-radius: 8px; - box-shadow: inset 0px 0px 0px 1px rgb(200 200 200 / 16%), 0 8px 40px rgb(0 0 0 / 0.55); - transition: transform .10s var(--appleEase); -} - -.media-artwork.paused { - transition: transform .35s var(--appleEase); - transform: scale(0.85); -} - -.playback-slider { - width: 90%; -} - -.volume-slider { - width: 100%; -} - -.volume-slider-container { - width: 90%; - margin: 0 auto; - padding: 0px; -} - -.volume-slider-container .col-auto, -.volume-slider-container .col { - display: flex; - align-items: center; - justify-self: center; - padding: 0px; - margin: 0px; -} - -.playback-button { - font-size: 2em; - width: 40px; - height: 36px; - padding: 0px; - background: transparent; - border: 0px; - border-radius: 0px; - box-shadow: unset; - background-size: 12px; - background-position: center; - background-repeat: no-repeat; - opacity: 0.70; - border-radius: 6px; -} - -.playback-button:active { - transform: scale(0.95); -} - -.playback-button--small { - border-radius: 6px; - font-size: 1em; - color: inherit; - background-size: 14px; - background-repeat: no-repeat; - background-position: center; - background-color: transparent; - width: 40px; - height: 32px; - border: 0px; - box-shadow: unset; - opacity: 0.70; -} - -.playback-button:hover, -.playback-button--small:hover { - background-color: rgb(200 200 200 / 10%); -} - -.playback-button:active, -.playback-button--small:active { - transform: scale(0.9); -} - -.playback-button--small.active { - background-color: rgb(200 200 200 / 25%); -} - -.playback-button--small.search { - background-image: url("./assets/search.svg"); -} - -.playback-button--small.cast { - background-image: url("./assets/cast_white.svg"); -} - -.playback-button--small.miniplayer { - background-image: url("./assets/pip.svg"); -} - -.playback-button--small.queue { - background-image: url("./assets/list.svg"); -} - -.playback-button--small.lyrics { - background-image: url("./assets/quote-right.svg"); -} - -.playback-button--small.shuffle { - background-image: url("./assets/shuffle.svg"); -} - -.playback-button--small.repeat { - background-image: url("./assets/repeat.svg"); -} - -.playback-button--small.repeat.repeatOne { - background-color: rgb(200 200 200 / 25%); - background-image: url("./assets/repeatOne.svg"); -} - -.playback-button.pause { - background-image: url('./assets/pause.svg'); -} - -.playback-button.play { - background-image: url('./assets/play.svg'); -} - -.playback-button.next { - background-image: url('./assets/forward.svg'); -} - -.playback-button.previous { - background-image: url('./assets/backward.svg'); -} - -.playback-buttons { - display: flex; - align-items: center; - justify-content: center; -} - -.player-volume-glyph { - width: 32px; - height: 16px; - background-repeat: no-repeat; - background-size: contain; - background-position: center; -} - -.player-volume-glyph.decrease { - background-image: url("./assets/volume.svg"); - opacity: 0.5; -} - -.player-volume-glyph.increase { - background-image: url("./assets/volume-2.svg"); - opacity: 0.5; -} - -.player-track-info { - width: 90%; - margin: 0 auto; -} - -.player-song-title { - font-size: 1.25em; - text-align: left; - margin: 0 auto; - font-weight: 500; -} - -.player-song-artist { - font-size: 1.0em; - text-align: left; - margin: 0 auto; - color: var(--keyColor); - font-weight: 400; -} - -.player-song-artist:hover { - cursor: pointer; - text-decoration: underline; -} - -.player-more-container { - display: flex; - align-items: center; - justify-content: center; -} - -.player-more-button { - appearance: none; - width: 32px; - height: 32px; - border-radius: 50%; - border: 0px; - background: var(--keyColor); - cursor: pointer; - box-shadow: inset 0px 0px 0px 1px rgb(200 200 200 / 16%); - color: white; - font-weight: bold; - padding: 0px; - font-size: 16px; -} - -.back-button { - width: 40px; - height: 40px; - background-color: transparent; - background-size: 16px; - background-position: center; - background-repeat: no-repeat; - background-image: url("./assets/arrow-left.svg"); - border: 0px; - border-radius: 0px; -} - -.header-text { - height: 40px; - display: flex; - align-items: center; - -} - - .flex-center { display: flex; align-items: center; flex-wrap: wrap; } -.list-entry-header { - display: flex; - align-items: center; - justify-content: space-between; - padding: 12px; - font-size: 1em; - font-family: inherit; -} - -.list-entry { - display: flex; - align-items: center; - /* justify-content: space-between; */ - padding: 12px; - font-size: 1em; - font-family: inherit; - border-bottom: 1px solid rgba(255 255 255 / 0.1); - cursor: pointer; -} - -.list-entry-image { - --artwork: url(""); - width: 64px; - height: 64px; - background: var(--artwork); - background-size: cover; - background-position: center; - background-repeat: no-repeat; - border-radius: 8px; - box-shadow: inset 0px 0px 0px 1px rgb(200 200 200 / 16%), 0 8px 40px rgb(0 0 0 / 0.55); -} - -.list-entry-image.artist { - border-radius: 50%; -} - -.list-entry-body { - display: flex; - flex-direction: column; - justify-content: center; - align-items: flex-start; - margin-left: 12px; -} - -.list-entry-name { - font-size: 14px; - font-weight: 500; - overflow: hidden; - width: 100%; -} - -.list-entry-artist { - font-size: 12px; - overflow: hidden; - width: 100%; -} - -.list-entry .handle { - height: 100%; - width: 28px; - background: var(--keyColor); - display: flex; - justify-content: center; - align-items: center; -} - .md-container { width: 100%; position: relative; } -.search-panel { - background: rgb(0 0 0 / 50%); -} - -.search-header { - position: absolute; - width: 100%; - z-index: 1; - backdrop-filter: blur(16px); - -webkit-backdrop-filter: blur(16px); - border-bottom: 1px solid rgb(200 200 200 / 8%); -} - -.connection-error-panel { - background: rgb(0 0 0 / 50%); -} - -.search-type-container { - display: flex; -} - -.search-type-button { - background: rgb(20 20 20 / 0.85); - border-radius: 50px; - color: white; - border: 0px; - box-shadow: unset; - font-family: inherit; - padding: 8px 16px; - font-size: 14px; - font-weight: 500; - margin: 8px; - margin-top: 0px; - margin-bottom: 0px; -} - -.search-type-button.active { - background: var(--keyColor); -} - -.search-tab-container { - overflow: auto; - white-space: nowrap; - overflow-y: hidden; -} - -.search-body-container { - position: relative; - width: 100%; - height: 100%; -} - -.search-body { - position: absolute; - width: 100%; - height: 100%; - padding-top: 220px; -} - -.search-tab { - background: rgb(20 20 20 / 0.85); - border-radius: 50px; - color: white; - border: 0px; - box-shadow: unset; - font-family: inherit; - padding: 8px 16px; - font-size: 14px; - font-weight: 500; -} - -.search-tab.active { - background: var(--keyColor); -} .lyric-body { -webkit-mask-image: -webkit-gradient(linear, left 95%, left bottom, from(rgba(0, 0, 0, 1)), to(rgba(0, 0, 0, 0))); @@ -2001,6 +1549,14 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { filter: none !important; } + +.lyric-body:hover > .lyric-line:not(.active) { + filter: none !important; +} +.lyric-body > .lyric-line:not(.active) { + transition: filter var(--appleEase) 0.5s ease; +} + .lyricWaiting { margin-top: 8px; display: none; @@ -2110,66 +1666,6 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { height: 100%; } -.home-page { - top: 0; - padding-top: var(--navbarHeight); - - .artist-feed-card { - position: absolute; - bottom: 0; - left: 10%; - z-index: 1; - background: black; - width: 80%; - height: 96%; - overflow: scroll; - border-radius: 10px; - } - - .col.madeforyou-col { - width: 420px; - min-width: 0px; - max-width: 420px; - } - - .well.artistfeed-well { - margin-top: 0px; - height: 392px; - align-content: flex-start; - } - - .hint-text { - font-size: 0.9rem; - color: rgb(200 200 200 / 70%); - } - - .user-icon { - border-radius: 100%; - width: 128px; - height: 128px; - overflow: hidden; - box-shadow: var(--mediaItemShadow-Shadow); - margin: 16px; - } - - .well.profile-well { - flex-direction: column; - justify-content: center; - align-items: center; - - .name { - margin: 4px; - font-weight: 500; - } - - .handle { - margin: 4px; - opacity: 0.7; - font-weight: 500; - } - } -} - /* Cider */ .more-btn-round { @@ -2234,159 +1730,6 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { } } -.md-close-btn { - -webkit-mask-image: url("ameres://icons/webui/close.svg"); - -webkit-mask-repeat: no-repeat; - -webkit-mask-position: center; - background-color: white; - opacity: 0.75; - -webkit-mask-size: contain; - height: 18px; - width: 18px; -} - -.md-btn { - background: rgb(100 100 100 / 25%); - padding: 8px 14px; - border-radius: 6px; - font-size: 14px; - border: 1px solid rgba(100, 100, 100, 0.35); - border-top: 1px solid rgba(100, 100, 100, 0.5); - color: #eee; - white-space: nowrap; - transition: transform 0.2s var(--appleEase), box-shadow 0.2s var(--appleEase); - - &.md-btn-block { - display: block; - width: 100%; - } - - &.md-btn-glyph { - display: flex; - align-items: center; - justify-content: center; - width: 100%; - } - - &.md-btn-primary { - background: #ff2b52a6; - color: white; - border: 1px solid rgb(220 53 69 / 25%); - border-top: 1px solid rgb(220 53 69 / 50%); - } - - &.md-btn-small { - padding: 6px 8px; - font-size: 13px; - } - - &:hover { - filter: brightness(125%); - } - - &:active { - filter: brightness(75%); - transform: scale(0.98); - transition: transform 0s var(--appleEase), box-shadow 0.2s var(--appleEase); - } - - &.md-btn-icon { - display: inline-flex; - vertical-align: middle; - justify-content: center; - - > img { - margin: 0px 16px 0px 0px; - pointer-events: none; - } - - > .md-btn-text { - margin: 0px; - } - } -} - -.btn-group { - display:inline-flex; - justify-content: center; - align-items: center; - > .md-btn { - border-radius:0px; - width:100%; - } - > .md-btn:first-child { - border-top-left-radius: 6px; - border-bottom-left-radius: 6px; - } - > .md-btn:last-child { - border-top-right-radius: 6px; - border-bottom-right-radius: 6px; - } - > .md-btn:not(:first-child):not(:last-child) { - border-radius: 0px; - } -} - -.md-ico-play { - content: url("./assets/play.svg"); - width: 10px; - height: 12px; - margin-right: 1px; - align-self: center; -} - -.md-ico-shuffle { - content: url("./assets/shuffle.svg"); - width: 1em; - height: 1em; - margin-right: 1px; - margin-bottom: -2px; - align-self: center; -} - -.md-ico-remove { - content: url("./assets/feather/x-circle-white.svg"); - width: 16px; - height: 16px; - margin-right: 1px; - margin-bottom: -1.5px; - align-self: center; -} - -.md-ico-add { - content: url("./assets/feather/plus-circle-white.svg"); - width: 1em; - height: 1em; - margin-right: 1px; - margin-bottom: -1.5px; - align-self: center; -} - -.md-select { - padding: 6px; - border-radius: 6px; - border: 1px solid rgba(200, 200, 200, 0.1); - border-top: 1px solid rgba(100, 100, 100, 0.5); - font-family: inherit; - font-size: 14px; - background: rgba(100, 100, 100, 0.25); - color: #eee; - - option { - font-size: 1em; - font-family: inherit; - padding: 8px 16px; - background: #404040; - } - - optgroup { - background: #2c2c2c; - } - - &:focus { - outline: solid 1px var(--selected); - } -} .sidebar-playlist { .folder-button-active { @@ -2407,254 +1750,6 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { } } -.modal-fullscreen { - display: flex; - justify-content: center; - align-items: center; - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - background: rgba(0, 0, 0, 0.3); - z-index: 1000; - - .modal-window { - background: #333; - border-radius: 10px; - box-shadow: var(--mediaItemShadow-Shadow); - display: flex; - flex-flow: column; - max-height: 500px; - max-width: 360px; - background: #121212; - width: 100%; - position: relative; - - &:after { - content: ""; - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - pointer-events: none; - box-shadow: var(--mediaItemShadow); - z-index: 1; - border-radius: inherit; - } - - .modal-header { - width: 100%; - padding: 6px; - } - - .modal-content { - width: 100%; - height: 100%; - overflow: hidden; - overflow-y: overlay; - } - - .modal-footer { - } - } -} - -.spatialproperties-panel { - .modal-window { - height: 700px; - max-height: 700px; - width: 800px; - max-width: 800px; - overflow: hidden; - - .info-header { - padding-left: 12px; - } - - .visual-container { - display: flex; - justify-content: center; - align-items: center; - overflow: hidden; - } - - .visual { - position: relative; - height: 250px; - width: 300px; - display: inline-flex; - align-items: flex-end; - justify-content: center; - filter: drop-shadow(2px 12px 6px rgb(0 0 0 / 25%)); - margin: 0 auto; - - .face { - position: absolute; - width: calc(12px * 6); - height: calc(12px * 6); - border-radius: 6px; - transform: rotateX(60deg) rotateZ(-45deg); - transition: transform 0.2s linear, width 0.2s linear, height 0.2s linear; - } - - .listener { - position: absolute; - width: 32px; - height: 32px; - border-radius: 6px; - transform: rotateX(60deg) rotateZ(-45deg); - transition: transform 0.2s linear, width 0.2s linear, height 0.2s linear; - background: white; - color: black; - z-index: 2; - } - - .audiosource { - position: absolute; - width: 32px; - height: 32px; - border-radius: 6px; - transform: rotateX(60deg) rotateZ(-45deg); - transition: transform 0.2s linear, width 0.2s linear, height 0.2s linear; - background: yellow; - z-index: 2; - } - - .face:nth-of-type(1) { - background: linear-gradient(45deg, #28223a, #1f2038); - z-index: 1; - } - - .face:nth-of-type(2) { - background: linear-gradient(45deg, #7d53ad, #5763ff); - transform: rotateX(60deg) rotateZ(-45deg) translateZ(30px); - opacity: 0.7; - z-index: 3; - } - } - - .modal-header { - padding: 16px; - position: relative; - overflow: hidden; - - .modal-title { - text-align: center; - } - - .close-btn { - width: 50px; - height: 100%; - background-image: var(--gfx-closeBtn); - background-position: center; - background-repeat: no-repeat; - -webkit-app-region: no-drag; - appearance: none; - border: 0; - background-color: transparent; - position: absolute; - top: 0; - right: 0; - - &:hover { - background-color: rgb(196, 43, 28) - } - } - } - } -} - -.addtoplaylist-panel { - .modal-window { - max-height: 600px; - max-width: 400px; - background: rgb(18 18 18 / 90%); - overflow: hidden; - backdrop-filter: blur(16px) saturate(180%); - - .modal-header { - padding: 16px; - position: relative; - - .modal-title { - text-align: center; - } - - .close-btn { - width: 50px; - height: 100%; - background-image: var(--gfx-closeBtn); - background-position: center; - background-repeat: no-repeat; - -webkit-app-region: no-drag; - appearance: none; - border: 0; - background-color: transparent; - position: absolute; - top: 0; - right: 0; - - &:hover { - background-color: rgb(196, 43, 28) - } - } - } - - .modal-search { - width: 100%; - padding: 0px 16px; - position: relative; - } - - .playlist-item { - appearance: none; - border: 0px; - text-align: left; - width: 100%; - margin: 0; - display: flex; - background: rgba(32, 32, 32, 0.46); - color: #eee; - font-family: inherit; - font-size: 0.98em; - padding: 6px 12px; - align-items: center; - flex-flow: row; - - .icon { - pointer-events: none; - width: 32px; - height: 32px; - display: flex; - justify-content: center; - align-items: center; - margin-right: 6px; - } - - .name { - } - - &:hover { - background: var(--selected); - } - - &:active { - background: var(--selected-click); - } - - &.focused { - background: var(--keyColor); - } - } - - .playlist-item:last-child { - border-bottom: 0px; - } - } -} - #navigation-bar { width: 100%; background: rgba(0, 0, 0, 0.25); @@ -2706,775 +1801,34 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { } } -.reload-btn { - background: rgb(86 86 86 / 52%); - border-radius: 100%; - width: 32px; - height: 32px; - border: 0px; - appearance: none; - display: flex; - justify-content: center; - align-items: center; -} - -.reload-btn:hover { - background: rgb(86 86 86 / 80%); - cursor: pointer; -} - -.reload-btn > svg { - height: 50%; - color: #eee; -} - -.wr-btn { - font-family: inherit; - appearance: none; - border: 0px; - border-radius: 6px; - padding: 8px; - font-weight: 600; - background: rgb(80 80 80 / 70%); - color: white; -} - .well { background: rgba(200, 200, 200, 0.05); border-radius: 10px; padding: var(--contentInnerPadding); box-shadow: rgba(0, 0, 0, 0.08) 0px 0px 0px 1px; margin-top: 16px; - display: flex; - flex-flow: wrap; - justify-content: center; - > .cd-mediaitem-square { - width: 220px; - height: 260px; - display: inline-flex; - flex: 0 0 auto; - flex-direction: column; - font-size: 14px; + + &.itemContainer { + display: flex; + flex-flow: wrap; justify-content: center; - align-items: center; - border-radius: 6px; - max-width: 240px; - flex-grow: 1; - } -} - -// Library - Songs page -.library-page { - padding: 0px; - - .library-header { - position: sticky; - top: 0; - left: 0; - border-bottom: 1px solid rgba(200, 200, 200, 0.05); - z-index: 6; - background: black; - padding: 0px 2em; - backdrop-filter: blur(32px); - background: rgba(0, 0, 0, 0.25); - top: var(--navigationBarHeight); - } - - .well { - margin: 2em; - } -} - -// Podcast Page -.content-inner.podcasts-page { - display: flex; - height: calc(100% - var(--navigationBarHeight)); - padding: 0px; - - .list-flat { - border-radius: 0px; - } - - .podcast-artwork { - width: 200px; - margin: 16px auto; - height: 200px; - } - - .podcasts-list { - height: 100%; - width: 280px; - background: rgb(200 200 200 / 10%); - overflow-y: overlay; - border-right: 1px solid var(--color2); - flex: none; - overflow-x: hidden; - - .podcast-list-header { - border-bottom: 1px solid var(--color2); - font-size: 0.7em; - padding: 6px; - background: #ffffff17; - text-transform: uppercase; - font-weight: 600; - opacity: 0.5; - } - - .podcasts-search { - padding: 10px; - position: sticky; - top: 0; - left: 0; - width: 100%; - border-bottom: 1px solid var(--color2); - z-index: 2; - background: #303030; - } - } - - .episodes-list { - height: 100%; - width: 100%; - background: rgb(200 200 200 / 6%); - overflow-y: overlay; - overflow-x: hidden; - - .episodes-inline-info { - padding: 14px 14px 0px 14px; - - .podcast-show-info { - display: flex; - justify-content: center; - flex-direction: column; - } - - .podcast-show-description { - margin: 32px 6px; - font-size: 0.8rem; - white-space: pre-wrap; - display: block; - } - - .podcast-artwork { - width: 120px; - margin: 0px auto; - height: 120px; - } - } - - .podcast-no-search-results { - text-align: center; - margin-top: 40px; - } - } - - .podcasts-details { - width: 300px; - flex: none; - background: rgb(255 255 255 / 5%); - overflow-y: overlay; - overflow-x: hidden; - top: 2%; - z-index: 2; - border-left: 1px solid var(--color2); - padding-bottom: 1em; - - .meta-btn { - font-size: 0.75em; - } - - .podcasts-details-header { - display: flex; - justify-content: end; - align-items: center; - position: sticky; - top: 0; - z-index: 2; - } - - .close-btn { - width: 50px; - height: 42px; - background-image: var(--gfx-closeBtn); - background-position: center; - background-repeat: no-repeat; - -webkit-app-region: no-drag; - appearance: none; - border: 0; - background-color: transparent; - position: absolute; - top: 0; - right: 0; - - &:hover { - background-color: rgb(196, 43, 28) - } - } - - .podcast-genre { - text-align: center; - margin: 6px; - font-size: 0.8em; - font-weight: 500; - opacity: 0.8; - } - - .podcast-metainfo { - text-align: center; - font-size: 0.7em; - opacity: 0.8; - } - - .podcast-header { - text-align: center; - } - - .podcast-play-btn { - width: 50%; - display: block; - margin: 0 auto; - } - - .podcast-description { - margin: 12px; - font-size: 0.75em; - white-space: pre-wrap; - display: block; - line-break: anywhere; - } - - - } - -} - -@media only screen and (max-width: 1230px) { - .content-inner.podcasts-page { - .podcasts-details { - height: 96%; - width: 300px; - flex: none; - background: rgb(20 20 20 / 97%); - overflow-y: overlay; - overflow-x: hidden; - position: absolute; - right: 2%; - top: 2%; - border-radius: 10px; - box-shadow: var(--ciderShadow-Generic); - z-index: 2; - } - } -} - -/* Album / Playlist Page */ -.playlist-page { - --bgColor: transparent; - padding: 0px; - //background: linear-gradient(180deg, var(--bgColor) 32px, var(--bgColor) 18px, transparent 60px, transparent 100%); - top: 0; - padding-top: var(--navigationBarHeight); - - .playlist-body { - padding: 0px var(--contentInnerPadding) 0px var(--contentInnerPadding); - margin-top: -75px; - } - - .floating-header { - position: sticky; - top: 0; - left: 0; - border-bottom: 1px solid rgba(200, 200, 200, 0.05); - z-index: 6; - padding: 0px 1em; - backdrop-filter: blur(32px); - background: rgba(0, 0, 0, 0.25); - top: var(--navigationBarHeight); - transition: opacity 0.1s var(--appleEase); - } - - .playlist-display { - padding: var(--contentInnerPadding); - min-height: 300px; - position: relative; - - .artworkContainer { - position: absolute; - top: 0; - left: 0; - bottom: 0; - right: 0; - margin: 0; - margin-top: calc(var(--navigationBarHeight) * -1); - margin-bottom: -10px; - padding: 0; - -webkit-mask-image: radial-gradient(at top left, black, transparent 70%), radial-gradient(at top right, black, transparent 70%), linear-gradient(180deg, rgb(200 200 200), transparent 98%); - opacity: .7; - animation: playlistArtworkFadeIn 1s var(--appleEase); - - .artworkMaterial > img { - filter: brightness(100%) blur(80px) saturate(100%) contrast(1); - object-position: center; - object-fit: cover; - width: 100%; - height: 100%; - transform: unset; - } - } - - .playlistInfo { - z-index: 1; - position: absolute; - bottom: 0; - left: 0; - right: 0; - top: 0; - display: flex; + .cd-mediaitem-square { + width: 220px; + height: 260px; + display: inline-flex; + flex: 0 0 auto; + flex-direction: column; + font-size: 14px; justify-content: center; align-items: center; - width: 100%; - height: 100%; - - > .row { - width: calc(100% - 32px); - } - - .playlist-info { - flex-shrink: unset; - display: flex; - flex-flow: column; - justify-content: flex-end; - - .playlist-name { - font-weight: 700; - font-size: 1.6rem; - margin-bottom: 6px; - margin-right: 6px; - flex-shrink: unset; - } - - .nameEdit { - font-weight: 700; - font-size: 1.6rem; - margin-bottom: 6px; - margin-right: 6px; - flex-shrink: unset; - background: transparent; - border: 0px; - color: inherit; - font-family: inherit; - } - - .playlist-artist { - font-size: 20px; - margin-bottom: 6px; - margin-right: 6px; - flex-shrink: unset; - } - - .playlist-desc { - box-sizing: border-box; - font-size: 14px; - flex-shrink: unset; - margin-right: 5px; - max-height: 100px; - position: relative; - - .content { - height: 100px; - -webkit-mask-image: -webkit-gradient(linear, left 50%, left 90%, from(rgba(0, 0, 0, 1)), to(rgba(0, 0, 0, 0))); - } - - .more-btn { - appearance: none; - position: absolute; - right: 0; - bottom: 0; - padding: 0 5px; - font-size: 14px; - color: var(--keyColor); - background-color: transparent; - border: 0px; - cursor: pointer; - width: 100%; - height: 100%; - overflow: hidden; - display: flex; - justify-content: flex-end; - align-items: flex-end; - font-weight: 600; - font-family: inherit; - text-transform: uppercase; - } - } - - .playlist-desc-expanded { - box-sizing: border-box; - font-size: 14px; - position: relative; - - .more-btn { - appearance: none; - position: absolute; - right: 0; - bottom: 0; - padding: 0 5px; - font-size: 14px; - color: var(--keyColor); - background-color: transparent; - border: 0px; - cursor: pointer; - width: 100%; - height: 100%; - overflow: hidden; - display: flex; - justify-content: flex-end; - align-items: flex-end; - font-weight: 600; - font-family: inherit; - text-transform: uppercase; - } - } - } - } - - - } - - .friends-info { - display: flex; - flex-flow: column; - - .badge-container { - display: flex; - flex-flow: wrap; - - .socialBadge { - width: 40px; - height: 40px; - border-radius: 100%; - overflow: hidden; - box-shadow: var(--mediaItemShadow-ShadowSubtle); - transition: transform .2s var(--appleEase); - margin: 6px; - - &:hover { - transform: scale(1.2); - } - } - } - - .friends-name { - text-align: center; - font-size: 0.9em; - margin: 8px; - } - } - - .playlist-time { - font-size: 0.9em; - margin: 6px; - opacity: 0.7; - } - - &.inline-playlist { - overflow: hidden; - width: 100%; - height: 100%; - background: rgba(0, 0, 0, 0.5); - display: flex; - justify-content: center; - align-items: center; - z-index: 6; - position: sticky; - margin-top: calc(var(--navigationBarHeight) * -1); - - .floating-header { - opacity: 1; - top: 0px; - z-index: 6; - padding: 1em; - backdrop-filter: unset; - background: black; - h3 { - display: none; - } - } - .playlist-inner { - background: black; - width: 80%; - height: 100%; - overflow: overlay; - box-shadow: var(--ciderShadow-Generic); - border-radius: var(--mediaItemRadius) var(--mediaItemRadius) 0px 0px; - - .close-btn { - position: sticky; - top: 16px; - left: 16px; - margin-left: 16px; - z-index: 7; - } + border-radius: 6px; + max-width: 240px; + flex-grow: 1; } } } -@keyframes playlistArtworkFadeIn { - 0% { - opacity: 0; - } - 100% { - opacity: 0.7; - } -} - -// Collection Page -.collection-page { - padding-bottom: 128px; - - .top-fab { - height: 52px; - width: 52px; - position: fixed; - bottom: 32px; - right: 32px; - border-radius: 100%; - background: rgb(60 60 60); - border: 0px; - appearance: none; - box-shadow: var(--ciderShadow-Generic); - - > svg { - height: 50%; - color: #eee; - pointer-events: none; - } - - &:hover { - background: rgb(100 100 100); - } - - &:active { - background: var(--keyColor); - } - } - - .header-text { - margin-bottom: 32px; - } -} - -/* Artist Page */ - -.artist-page { - padding: 0px; - top: 0; - - .floating-header { - position: sticky; - top: 0; - left: 0; - border-bottom: 1px solid rgba(200, 200, 200, 0.05); - z-index: 6; - padding: 0px 1em; - backdrop-filter: blur(32px); - background: rgba(0, 0, 0, 0.25); - top: var(--navigationBarHeight); - transition: opacity 0.1s var(--appleEase); - } - - &.animated .artist-header .more-btn-round { - position: absolute; - bottom: 22px !important; - right: 28px; - } - - .artist-header { - //background: linear-gradient(45deg, var(--keyColor), #0e0e0e); - color: white; - display: flex; - align-items: center; - justify-content: space-between; - min-height: 400px; - position: relative; - pointer-events: none; - - .header-content { - z-index: 1; - margin-top: -16px; - } - - - .artworkContainer { - position: absolute; - top: 0; - left: 0; - bottom: 0; - right: 0; - margin: 0; - padding: 0; - -webkit-mask-image: radial-gradient(at top left, black, transparent 70%), radial-gradient(at top right, black, transparent 70%), linear-gradient(180deg, rgb(200 200 200), transparent 98%); - opacity: .7; - animation: playlistArtworkFadeIn 1s var(--appleEase); - - .artworkMaterial > img { - filter: brightness(100%) blur(80px) saturate(100%) contrast(1); - object-position: center; - object-fit: cover; - width: 100%; - height: 100%; - transform: unset; - } - } - - .more-btn-round { - position: absolute; - bottom: 82px; - right: 28px; - } - - .animated { - width: 100%; - height: 100%; - align-self: center; - position: absolute; - overflow: hidden; - box-shadow: rgb(0 0 0 / 50%) 0 0 0 1000000px inset; - - video { - overflow: hidden; - height: 100%; - width: 100%; - min-height: 56.25vw; - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - } - } - - .row .col.flex-center { - z-index: 4; - } - } - - .artist-image { - width: 200px; - height: 200px; - margin: 32px; - position: relative; - - .overlay-play { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - opacity: 0; - background: rgb(0 0 0 / 50%); - transition: opacity 0.1s var(--appleEase); - border-radius: 100%; - z-index: 1; - display: flex; - align-items: center; - justify-content: center; - cursor: pointer; - appearance: none; - border: 0px; - padding: 0px; - - &:hover { - opacity: 1; - } - - &:active { - background: var(--selected-click); - } - - > svg { - width: 70%; - } - } - } - - .artist-play { - width: 32px; - height: 32px; - background: rgba(100, 100, 100, 0.5); - box-shadow: var(--ciderShadow-Generic); - border-radius: 100%; - box-shadow: var(--mediaItemShadow); - display: none; - cursor: pointer; - appearance: none; - border: 0px; - padding: 0px; - - &:hover { - filter: brightness(125%); - } - - &:active { - filter: brightness(75%); - transform: scale(0.98); - transition: transform 0s var(--appleEase), box-shadow 0.2s var(--appleEase); - } - } - - .artist-title { - - .artist-play { - transform: translateY(3px); - margin: 14px; - } - - &.artist-animation-on { - width: 100%; - flex: unset; - margin-left: 0.5em; - color: whitesmoke; - position: absolute; - bottom: 0; - - .artist-play { - display: block; - } - } - } - - .artist-body { - padding: 0px var(--contentInnerPadding) 0px var(--contentInnerPadding); - margin-top: -140px; - } - - &.animated > .artist-body { - padding: 0px var(--contentInnerPadding) 0px var(--contentInnerPadding); - margin-top: -57px; - } - - .showmoreless { - font-family: inherit; - font-size: 16px; - font-weight: 500; - background: transparent; - border: 0px; - border-radius: 6px; - appearance: none; - color: var(--keyColor); - padding: 8px 12px; - cursor: pointer; - margin-top: 12px; - float: right; - } - - .showmoreless:hover { - background: rgb(200 200 200 / 10%); - } -} - -/* Artist Page End */ - .text-overflow-elipsis { display: -webkit-box; min-width: 0px; @@ -3484,1152 +1838,8 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { -webkit-box-orient: vertical; } - -.mediaitem-artwork { - border-radius: var(--mediaItemRadius); - overflow: hidden; - flex: 0 0 auto; - position: relative; - width: 100%; - height: 100%; - background-image: url("https://beta.music.apple.com/assets/product/MissingArtworkMusic.svg"); - background-size: cover; - background-position: center; - - .animatedartwork-view-box { - position: absolute; - top: 0px; - width: 100%; - height: 100%; - - .animated { - position: absolute; - top: 0px; - width: 100%; - height: 100%; - - video { - width: 100%; - height: 100%; - } - } - } - - &.rounded { - border-radius: 100%; - - &::after { - border-radius: 100%; - } - } - - &::after { - content: ""; - box-shadow: var(--mediaItemShadow); - z-index: 1; - width: 100%; - height: 100%; - position: absolute; - top: 0; - left: 0; - border-radius: inherit; - } - - img { - width: 100%; - height: 100%; - object-fit: cover; - image-rendering: -webkit-optimize-contrast; - pointer-events: none; - } - - &.no-shadow { - box-shadow: none; - - &::after { - display: none; - } - } - - &.subtle-shadow { - box-shadow: var(--mediaItemShadow-ShadowSubtle); - } - - &.shadow { - box-shadow: var(--mediaItemShadow-Shadow); - } -} - -.menu-panel { - width: 100%; - height: 100%; - position: fixed; - top: 0; - left: 0; - z-index: 1001; - display: flex; - justify-content: center; - align-items: center; - -webkit-app-region: no-drag; - - .menu-header-body { - padding: 6px; - display: flex; - background: rgb(200 200 200 / 10%); - - .menu-option-header { - width: 40px; - height: 40px; - display: flex; - justify-content: center; - align-items: center; - border-radius: var(--mediaItemRadius); - appearance: none; - border: 0; - background: transparent; - - &.active { - .sidebar-icon > .svg-icon { - --color: var(--keyColor); - } - } - - &:hover { - background: var(--selected); - } - - &:active { - background: var(--selected-click); - } - } - } - - .menu-panel-body { - display: flex; - flex-flow: column; - background: rgb(38 38 38); - position: relative; - min-width: 200px; - box-shadow: var(--ciderShadow-Generic); - border-radius: var(--mediaItemRadius); - overflow: hidden; - font-size: 14px; - - .menu-option { - text-align: left; - display: flex; - width: 100%; - padding: 12px 16px; - appearance: none; - border: 0px; - font: inherit; - background: transparent; - color: inherit; - - &:hover { - background: var(--selected); - } - - &:active { - background: var(--selected-click); - } - } - } - - - .menu-header-text { - margin: 18px 6px; - - .close-btn { - width: 50px; - height: 42px; - background-image: var(--gfx-closeBtn); - background-position: center; - background-repeat: no-repeat; - -webkit-app-region: no-drag; - appearance: none; - border: 0; - background-color: transparent; - position: absolute; - top: 0; - right: 0; - - &:hover { - background-color: rgb(196, 43, 28) - } - } - } - - .menu-body { - overflow: overlay; - height: 100%; - } - - .menu-footer { - width: 100%; - padding: 12px; - } -} - -.queue-panel { - height: 100%; - width: 100%; - display: flex; - flex-flow: column; - - .queue-header-text { - margin: 18px 6px; - } - - .queue-body { - overflow: overlay; - height: 100%; - } - - .queue-footer { - width: 100%; - padding: 12px; - } - - .autoplay { - background: rgb(200 200 200 / 15%); - display: flex; - justify-content: center; - appearance: none; - border: 0; - border-radius: 6px; - height: 32px; - width: 32px; - } - - .infinity { - content: url("./assets/infinity.svg"); - margin: auto; - } -} - -/* queue item */ -.cd-queue-item { - border-bottom: 1px solid rgb(200 200 200 / 10%); - padding: 8px; - - .row, - .col { - padding: 0px; - margin: 0px; - } - - .artwork { - width: 32px; - height: 32px; - flex: 0 0 auto; - } - - &.selected { - background: var(--selected); - } - - &:active { - background: var(--selected-click); - color: #eee; - } - - .queue-info { - display: flex; - flex-direction: column; - - .queue-title { - font-size: 14px; - } - - .queue-subtitle { - font-size: 13px; - opacity: 0.85; - } - } -} - -/* horizontal media scroller */ -.cd-hmedia-scroller { - margin: 0 auto; - display: flex; - flex-flow: row; - overflow-x: scroll; - overflow-y: hidden; - height: 284px; - align-items: center; - - &::-webkit-scrollbar-thumb { - box-shadow: none; - } - - &:hover::-webkit-scrollbar-thumb { - box-shadow: inset 0px 0px 10px 10px rgb(200 200 200 / 50%); - } - - &.small { - overflow-x: overlay; - height: 210px; - } - - &.hmedia-scroller-card { - height: 370px; - - .mediaitem-card { - margin: 12px; - } - } -} - -/* mediaitem-list-item */ -.cd-mediaitem-list-item { - width: 100%; - height: 60px; - display: flex; - flex: 0 0 auto; - flex-direction: row; - font-size: 14px; - justify-content: center-between; - align-items: center; - border-radius: var(--mediaItemRadius); - - .artwork { - height: 42px; - width: 42px; - border-radius: var(--mediaItemRadius); - object-fit: cover; - object-position: center; - flex: 0 0 auto; - background-repeat: no-repeat; - margin: 12px; - border: 0px; - outline: none; - position: relative; - overflow: hidden; - - .overlay-play { - background: rgba(0, 0, 0, 0.5); - opacity: 0; - appearance: none; - border: 0; - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - padding: 0px; - z-index: 5; - cursor: pointer; - - &:hover { - opacity: 1; - } - - &:active { - background: var(--selected-click); - } - } - } - - .artwork.round { - border-radius: var(--mediaItemRadiusRound); - } - - .info-rect { - height: 100%; - display: flex; - flex-flow: column; - justify-content: center; - flex-grow: 1; - } - - .title { - width: 100%; - } - - .subtitle { - width: 90%; - font-size: .8em; - opacity: 0.7; - } - - .duration { - min-width: 60px; - text-align: center; - height: 100%; - display: flex; - align-items: center; - justify-content: center; - } - - .metainfo { - min-width: 145px; - text-align: center; - height: 100%; - display: flex; - align-items: center; - justify-content: center; - } - - .explicit-icon { - background-image: url("./assets/explicit.svg"); - height: 12px; - width: 36px; - filter: contrast(0); - background-repeat: no-repeat; - } - - /* CSS.gg - */ - @keyframes load-bar { - 10% { - box-shadow: inset 0 -4px 0 - } - 20% { - box-shadow: inset 0 -10px 0 - } - 30% { - box-shadow: inset 0 -12px 0 - } - 40% { - box-shadow: inset 0 -8px 0 - } - 50% { - box-shadow: inset 0 -4px 0 - } - 60% { - box-shadow: inset 0 -6px 0 - } - 80% { - box-shadow: inset 0 -12px 0 - } - 90% { - box-shadow: inset 0 -6px 0 - } - to { - box-shadow: inset 0 -2px 0 - } - } - - .loadbar-sound, - .loadbar-sound::after, - .loadbar-sound::before { - animation: load-bar 1.3s ease infinite alternate; - box-sizing: border-box; - width: 3px; - height: 28px; - box-shadow: inset 0 -12px 0; - } - - .loadbar-sound { - margin-left: 22px; - margin-top: -16px; - position: relative; - transform: scale(var(--load-bar, 1)); - color: var(--keyColor); - display: block; - } - - .loadbar-sound::after, - .loadbar-sound::before { - content: ""; - position: absolute; - bottom: 0 - } - - .loadbar-sound::before { - left: -4.5px; - animation-delay: -2.4s - } - - .loadbar-sound::after { - right: -4.2px; - animation-delay: -3.7s - } - - .isLibrary { - flex: 0 0 auto; - width: 40px; - text-align: center; - - button { - appearance: none; - border: 0px; - background: transparent; - cursor: pointer; - filter: contrast(0.8); - } - } - - &:hover { - background: rgb(200 200 200 / 10%); - box-shadow: var(--mediaItemShadow); - - .overlay-play { - opacity: 1; - } - } - - &.mediaitem-selected { - background: var(--selected); - box-shadow: var(--mediaItemShadow); - } - - - &:active { - background: var(--selected-click); - box-shadow: var(--mediaItemShadow); - color: #eee; - } - - // list item compact - &.compact { - height: 40px; - font-size: 13px; - - .artwork { - display: none; - } - - .info-rect { - padding-left: 1em; - } - } -} - -/* mediaitem-hrect */ -.cd-mediaitem-hrect { - background: rgb(255 255 255 / 18%); - width: 264px; - height: 100px; - display: inline-flex; - flex: 0 0 auto; - flex-direction: row; - font-size: 14px; - justify-content: center; - align-items: center; - border-radius: 6px; - cursor: pointer; - - .artwork { - height: 70px; - width: 70px; - background: blue; - border-radius: var(--mediaItemRadius); - background: var(--artwork); - background-size: contain; - flex: 0 0 auto; - background-repeat: no-repeat; - margin: 18px; - } - - .artwork.round { - border-radius: var(--mediaItemRadiusRound); - } - - .info-rect { - width: 100%; - } - - .title { - width: 100%; - text-align: center; - } - - .subtitle { - width: 100%; - text-align: center; - font-size: 12px; - } -} - -/* mediaitem-square-sp */ -.cd-mediaitem-square-sp { - --spcolor: var(""); - width: 190px; - height: 250px; - display: inline-flex; - flex: 0 0 auto; - flex-direction: column; - font-size: 14px; - justify-content: flex-start; - align-items: center; - border-radius: 6px; - margin-left: 10px; - cursor: pointer; - background-color: var(--spcolor); - - .artwork { - height: 190px; - width: 190px; - background: blue; - border-top-left-radius: 6px; - border-top-right-radius: 6px; - background: var(--artwork); - background-size: cover; - flex: 0 0 auto; - margin: 6px; - margin-top: 0px; - - &.round { - border-radius: var(--mediaItemRadiusRound); - } - - &:hover { - box-shadow: rgb(0 0 0 / 50%) 0 0 0 1000000px inset; - } - } - - .title { - width: 90%; - text-align: center; - } - - .subtitle { - width: 100%; - text-align: center; - font-size: 12px; - } - - > .cd-mediaitem-square-large-overlay { - z-index: 3; - - &:hover { - opacity: 1; - } - } - - + .cd-mediaitem-square-large-overlay { - pointer-events: none; - } - - &:hover + .cd-mediaitem-square-large-overlay { - opacity: 1; - - } - - &:hover { - box-shadow: rgb(0 0 0 / 50%) 0 0 0 1000000px inset; - } -} - - -/* mediaitem-square-large */ -.cd-mediaitem-square-large { - width: 190px; - height: 250px; - display: inline-flex; - flex: 0 0 auto; - flex-direction: column; - font-size: 14px; - justify-content: flex-start; - align-items: center; - border-radius: 6px; - margin-left: 10px; - cursor: pointer; - - > * { - z-index: inherit; - } -} - -.cd-mediaitem-square-large .artwork { - height: 190px; - width: 190px; - background: blue; - border-top-left-radius: 6px; - border-top-right-radius: 6px; - background: var(--artwork); - background-size: cover; - flex: 0 0 auto; - margin: 6px; - margin-top: 0px; -} - -.cd-mediaitem-square-large-overlay { - position: absolute; - width: 190px; - float: right; - height: 250px; - top: 0px; - margin: 10px; - margin-top: 0px; - opacity: 0; - -} - -.cd-mediaitem-square-large-overlay > * { - pointer-events: auto; - -} - -.cd-mediaitem-square-large > .cd-mediaitem-square-large-overlay { - z-index: 3; -} - -.cd-mediaitem-square-large > .cd-mediaitem-square-large-overlay:hover { - opacity: 1; -} - -.cd-mediaitem-square-large + .cd-mediaitem-square-large-overlay { - pointer-events: none; - -} - -.cd-mediaitem-square-large:hover + .cd-mediaitem-square-large-overlay { - opacity: 1; - -} - - -.cd-mediaitem-square-large .artwork.round { - border-radius: var(--mediaItemRadiusRound); -} - -.cd-mediaitem-square-large .title { - width: 90%; - text-align: center; -} - -.cd-mediaitem-square-large .subtitle { - width: 100%; - text-align: center; - font-size: 12px; -} - -/* mediaitem-mvview */ - -/* mediaitem-mvview */ -.cd-mediaitem-mvview { - width: 300px; - height: 250px; - display: inline-flex; - flex: 0 0 auto; - flex-direction: column; - font-size: 14px; - justify-content: flex-start; - align-items: center; - border-radius: 6px; - margin-left: 10px; - cursor: pointer; - - > * { - z-index: inherit; - } -} - -.cd-mediaitem-mvview .artwork { - height: 172px; - width: 300px; - background: blue; - border-top-left-radius: 6px; - border-top-right-radius: 6px; - background: var(--artwork); - background-size: cover; - flex: 0 0 auto; - margin: 6px; - margin-top: 0px; -} - -.cd-mediaitem-mvview-overlay { - position: absolute; - width: 300px; - float: right; - height: 250px; - top: 0px; - margin: 10px; - margin-top: 0px; - opacity: 0; - -} - -.cd-mediaitem-mvview-overlay > * { - pointer-events: auto; - -} - -.cd-mediaitem-mvview > .cd-mediaitem-mvview-overlay { - z-index: 3; -} - -.cd-mediaitem-mvview > .cd-mediaitem-mvview-overlay:hover { - opacity: 1; -} - -.cd-mediaitem-mvview + .cd-mediaitem-mvview-overlay { - pointer-events: none; - -} - -.cd-mediaitem-mvview:hover + .cd-mediaitem-mvview-overlay { - opacity: 1; - -} - - -.cd-mediaitem-mvview .artwork.round { - border-radius: var(--mediaItemRadiusRound); -} - -.cd-mediaitem-mvview .title { - width: 90%; - text-align: center; -} - -.cd-mediaitem-mvview .subtitle { - width: 100%; - text-align: center; - font-size: 12px; -} - - -/* mediaitem-square */ -.cd-mediaitem-square { - width: 220px; - height: 260px; - display: inline-flex; - flex: 0 0 auto; - flex-direction: column; - font-size: 14px; - justify-content: center; - align-items: center; - border-radius: 6px; - - .artwork-container { - position: relative; - - .artwork { - height: 190px; - width: 190px; - background: blue; - border-radius: var(--mediaItemRadius); - background: var(--artwork); - background-size: cover; - flex: 0 0 auto; - margin: 6px; - cursor: pointer; - - &.round { - border-radius: var(--mediaItemRadiusRound); - } - } - - .badge-container { - transition: opacity 0.1s var(--appleEase); - opacity: 1; - - .socialBadge { - width: 32px; - height: 32px; - position: absolute; - right: 14px; - bottom: 14px; - border-radius: 100%; - overflow: hidden; - z-index: 2; - pointer-events: none; - } - } - - > .play-btn, - > .menu-btn { - opacity: 0; - appearance: none; - padding: 0px; - border: 0px; - width: 30px; - height: 30px; - border-radius: 50%; - background: rgba(50, 50, 50, 0.7); - cursor: pointer; - transition: opacity 0.1s var(--appleEase); - - :hover { - border-radius: 50%; - background: rgba(250, 0, 0, 0.7); - } - } - - > .play-btn { - position: absolute; - bottom: 14px; - left: 14px; - z-index: 2; - - } - - > .menu-btn { - position: absolute; - bottom: 14px; - right: 14px; - z-index: 2; - } - - &:hover { - > .badge-container { - opacity: 0; - } - - > .play-btn, - > .menu-btn { - opacity: 1; - } - } - } - - .info-rect { - width: 90%; - height: 100%; - display: flex; - flex-direction: column; - align-items: center; - } - - - .title { - width: 100%; - text-align: center; - display: flex; - align-content: center; - justify-content: center; - } - - .subtitle { - width: 100%; - text-align: center; - font-size: 12px; - } - - &.mediaitem-video { - height: 200px; - width: 240px; - - .artwork { - height: 120px; - width: 212px; - } - } - - &.mediaitem-brick { - height: 200px; - width: 240px; - - .artwork { - height: 123px; - width: 220px; - } - } - - &.mediaitem-small { - width: 140px; - height: 180px; - - .artwork { - height: 128px; - width: 128px; - } - } - - &.mediaitem-card { - background: #ccc; - background: var(--spcolor); - height: 298px; - width: 230px; - max-width: 250px; - max-height: 500px; - overflow: hidden; - position: relative; - border-radius: calc(var(--mediaItemRadius) * 2); - box-shadow: var(--mediaItemShadow-ShadowSubtle); - - .artwork { - width: 230px; - height: 230px; - overflow: hidden; - border-radius: 0px; - margin: 0; - - .mediaitem-artwork { - border-radius: 0px; - - &::after { - box-shadow: unset; - } - } - } - - .info-rect-card { - padding: 10px 10px 14px; - position: relative; - width: 100%; - - &::before { - background: var(--bgartwork); - content: ""; - top: 0; - left: 0; - bottom: 0; - right: 0; - position: absolute; - background-size: cover; - background-position: bottom; - z-index: 0; - opacity: 1; - filter: brightness(0.5) blur(50px) saturate(180%); - } - } - - .title { - height: 100%; - display: flex; - justify-content: center; - align-items: center; - font-size: 0.9em; - font-weight: 500; - z-index: 1; - } - - .subtitle { - height: 100%; - justify-content: center; - align-items: center; - font-size: 0.75em; - width: 100%; - display: flex; - z-index: 1; - } - - &::after { - box-shadow: var(--mediaItemShadow); - content: ""; - width: 100%; - height: 100%; - position: absolute; - top: 0; - left: 0; - pointer-events: none; - border-radius: inherit; - } - } -} - -/* mediaitem-square */ -.albums-square-containeru > * > .cd-mediaitem-square { - --frame: max(220px, 15vw); - width: var(--frame); - height: calc(var(--frame) * 13 / 11); - display: inline-flex; - flex: 0 0 auto; - flex-direction: column; - font-size: calc(var(--frame) / 220 * 14); - justify-content: center; - align-items: center; - border-radius: calc(var(--frame) / 220 * 6); - - .artwork-container { - position: relative; - - .artwork { - height: calc(var(--frame) * 19 / 22); - width: calc(var(--frame) * 19 / 22); - background: blue; - border-radius: var(--mediaItemRadius); - background: var(--artwork); - background-size: cover; - flex: 0 0 auto; - margin: calc(var(--frame) / 220 * 6); - cursor: pointer; - - &.round { - border-radius: var(--mediaItemRadiusRound); - } - } - - > .play-btn, - > .menu-btn { - opacity: 0; - appearance: none; - padding: 0px; - border: 0px; - width: calc(var(--frame) / 220 * 30); - height: calc(var(--frame) / 220 * 30); - border-radius: 50%; - background: rgba(50, 50, 50, 0.7); - cursor: pointer; - backdrop-filter: blur(32px) saturate(180%); - transition: opacity 0.1s var(--appleEase); - } - - > .play-btn { - position: absolute; - bottom: calc(var(--frame) / 220 * 14); - left: calc(var(--frame) / 220 * 14); - z-index: 2; - } - - > .menu-btn { - position: absolute; - bottom: calc(var(--frame) / 220 * 14); - right: calc(var(--frame) / 220 * 14); - z-index: 2; - } - - &:hover { - - > .play-btn, - > .menu-btn { - opacity: 1; - } - } - } - - - .title { - width: 90%; - text-align: center; - } - - .subtitle { - width: 100%; - text-align: center; - font-size: calc(var(--frame) / 220 * 12); - } - - &.mediaitem-video { - height: calc(var(--frame) / 220 * 200); - width: calc(var(--frame) / 220 * 240); - - .artwork { - height: calc(var(--frame) / 220 * 120); - width: calc(var(--frame) / 220 * 212); - } - } - - &.mediaitem-brick { - height: calc(var(--frame) / 220 * 200); - width: calc(var(--frame) / 220 * 240); - - .artwork { - height: calc(var(--frame) / 220 * 123); - width: calc(var(--frame)); - } - } -} - -.cd-btn-seeall { - background: transparent; - border: 0px; - color: var(--keyColor); - font-family: inherit; - font-weight: 500; - font-size: 16px; - border-radius: 4px; - padding: 6px; - - &:hover { - cursor: pointer; - background: rgb(200 200 200 / 10%) - } +.no-animation { + animation: unset !important; } .fullscreen-view-container { @@ -4670,6 +1880,10 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { height: 50vh; } + .bg-artwork-container { + display: block !important; + } + @media only screen and (max-width: 1121px) { .display--large { display: flex !important; @@ -4772,13 +1986,10 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { filter: brightness(85%) saturate(95%) blur(180px) contrast(0.9) opacity(0.9); } - .no-animation { - animation: unset; - } + } } - .lyrics-col { height: 62vh; @@ -5425,87 +2636,22 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { // Cider App -.mediaitem-list-item__grid { - overflow-x: overlay; - overflow-y: hidden; - background: rgba(200, 200, 200, 0.05); - border-radius: 10px; - padding: var(--contentInnerPadding); - box-shadow: rgba(0, 0, 0, 0.08) 0px 0px 0px 1px; - height: 300px; - display: flex; - align-items: center; - - .grid-body { - display: grid; - grid-auto-flow: column dense; - grid-template-rows: auto auto auto auto; - grid-gap: 0 6px; - padding: 2px 0; - justify-content: left; - width: 0; - } - - .cd-mediaitem-list-item { - width: 350px; - height: 60px; - } - - &::-webkit-scrollbar { - display: none; - } - - &:hover::-webkit-scrollbar { - display: initial; - +#micaEffect { + opacity:1; + // animation: micaEnter 1s ease-in-out forwards; + filter: brightness(0.5); + @keyframes micaEnter { + 0% { + opacity: 0; + transform: translateY(10px); + } + 100% { + opacity: 1; + transform: translateY(0px); + } } } -.settings-page { - padding: 0px; - - .md-option-header { - padding: 1.25em 1.25em; - border-bottom: unset; - border-top: unset; - font-weight: 600; - font-size: 1.0em; - background: rgb(255 255 255 / 3%); - } - - .settings-option-body { - margin: 16px; - } -} - -// sidebar icon -.svg-icon { - --color: #aaa; - --url: url("./assets/feather/share.svg"); - -webkit-mask-image: var(--url); - -webkit-mask-size: cover; - height: 18px; - width: 18px; - background: var(--color); -} - -.sidebar-icon { - width: 18px; - height: 18px; - margin-right: 8px; - - > .svg-icon { - width: 100%; - height: 100%; - --color: #aaa; - } - - > svg { - width: 100%; - height: 100%; - color: #aaa; - } -} @keyframes rotate { from { @@ -5537,6 +2683,10 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { width: 200VH; height: 200VH; } + + .bg-artwork-container{ + display: block !important; + } } .lyric-body { @@ -5545,22 +2695,15 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { padding: 0px; margin: 0px; overflow: hidden; + filter: drop-shadow(0px 4px 6px rgb(0 0 0 / 70%)); .lyric-line { pointer-events: none; - font-weight: 500; + font-weight: 600; font-size: 2em; transform-origin: center; animation: fsLyricIn var(--appleEase) .2s; opacity: 0.9; - text-shadow: -1px -1px 0 #000, - 0 -1px 0 #000, - 1px -1px 0 #000, - 1px 0 0 #000, - 1px 1px 0 #000, - 0 1px 0 #000, - -1px 1px 0 #000, - -1px 0 0 #000; &:not(.active) { display: none; @@ -5592,6 +2735,17 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { /* Transitions */ +.replaycard-enter-active, +.replaycard-leave-active { + transition: opacity .5s var(--appleEase), transform .5s var(--appleEase); +} + +.replaycard-enter, +.replaycard-leave-to { + opacity: 0; + transform: translateY(20px); +} + .modal-enter-active, .modal-leave-active { transition: opacity .1s var(--appleEase), transform .1s var(--appleEase); @@ -5615,13 +2769,38 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { .wpfade_transform-enter-active, .wpfade_transform-leave-active { - transition: opacity .1s var(--appleEase), transform .1s var(--appleEase); + --transitionTime: 0.2s; + transition: opacity var(--transitionTime) var(--appleEase), transform var(--transitionTime) var(--appleEase); + will-change: opacity, transform; } -.wpfade_transform-enter, -.wpfade_transform-leave-to { - transform: scale(0.90); +.wpfade_transform-enter { opacity: 0; + transform: translateX(50%) translate3d(0,0,0); + will-change: opacity, transform; +} +.wpfade_transform-leave-to { + opacity: 0; + transform: translateX(-50%) translate3d(0,0,0); + will-change: opacity, transform; +} + + +.wpfade_transform_backwards-enter-active, +.wpfade_transform_backwards-leave-active { + --transitionTime: 0.2s; + transition: opacity var(--transitionTime) var(--appleEase), transform var(--transitionTime) var(--appleEase); +} + +.wpfade_transform_backwards-enter { + opacity: 0; + transform: translateX(-50%) translate3d(0,0,0); + will-change: opacity, transform; +} +.wpfade_transform_backwards-leave-to { + opacity: 0; + transform: translateX(50%) translate3d(0,0,0); + will-change: opacity, transform; } .fabfade-enter-active, @@ -5657,18 +2836,6 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { right: -300px; } -/* Transitions End */ - -// @media (prefers-color-scheme: light) { -// :root { -// /* */ -// --gfx-closeBtn: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAIn2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIKICAgZGM6Zm9ybWF0PSJpbWFnZS9wbmciCiAgIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiCiAgIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIKICAgdGlmZjpJbWFnZUxlbmd0aD0iMTAiCiAgIHRpZmY6SW1hZ2VXaWR0aD0iMTAiCiAgIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiCiAgIHRpZmY6WFJlc29sdXRpb249IjcyLjAiCiAgIHRpZmY6WVJlc29sdXRpb249IjcyLjAiCiAgIHhtcDpDcmVhdGVEYXRlPSIyMDIwLTAyLTE3VDEyOjU1OjM3WiIKICAgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiCiAgIHhtcDpNZXRhZGF0YURhdGU9IjIwMjEtMTAtMDVUMTQ6MjY6MjgtMDc6MDAiCiAgIHhtcDpNb2RpZnlEYXRlPSIyMDIxLTEwLTA1VDE0OjI2OjI4LTA3OjAwIgogICB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6ZTk5OWM2NWYtNDhhOS0wNjQyLWI2MTktZmJlYTExMmUxOGZiIgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY5MzMyOWNhLWNkNjctMzY0Zi04MzU1LTY5N2ZmYzI0ZDdlZCIKICAgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjgyZjQwYmU3LTE0YzItZjc0Ni1hZmE1LWQxYmIxNzAyMjM4OCIKICAgZXhpZjpQaXhlbFhEaW1lbnNpb249IjEwIgogICBleGlmOlBpeGVsWURpbWVuc2lvbj0iMTAiCiAgIGV4aWY6Q29sb3JTcGFjZT0iMSI+CiAgIDxwaG90b3Nob3A6VGV4dExheWVycz4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgcGhvdG9zaG9wOkxheWVyTmFtZT0i7qSiIgogICAgICBwaG90b3Nob3A6TGF5ZXJUZXh0PSLupKIiLz4KICAgIDwvcmRmOlNlcT4KICAgPC9waG90b3Nob3A6VGV4dExheWVycz4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHhtcE1NOmFjdGlvbj0iY3JlYXRlZCIKICAgICAgeG1wTU06aW5zdGFuY2VJRD0ieG1wLmlpZDo4MmY0MGJlNy0xNGMyLWY3NDYtYWZhNS1kMWJiMTcwMjIzODgiCiAgICAgIHhtcE1NOnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIKICAgICAgeG1wTU06d2hlbj0iMjAyMC0wMi0xN1QxMjo1NTozN1oiLz4KICAgICA8cmRmOmxpCiAgICAgIHhtcE1NOmFjdGlvbj0ic2F2ZWQiCiAgICAgIHhtcE1NOmNoYW5nZWQ9Ii8iCiAgICAgIHhtcE1NOmluc3RhbmNlSUQ9InhtcC5paWQ6NjkzMzI5Y2EtY2Q2Ny0zNjRmLTgzNTUtNjk3ZmZjMjRkN2VkIgogICAgICB4bXBNTTpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiCiAgICAgIHhtcE1NOndoZW49IjIwMjAtMDItMTdUMTI6NTU6MzdaIi8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InByb2R1Y2VkIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZmZpbml0eSBQaG90byAxLjEwLjEiCiAgICAgIHN0RXZ0OndoZW49IjIwMjEtMTAtMDVUMTQ6MjY6MjgtMDc6MDAiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KPD94cGFja2V0IGVuZD0iciI/PtPY89oAAAGCaUNDUHNSR0IgSUVDNjE5NjYtMi4xAAAokXWRv0tCURTHP2lhmGFRQUODhDVZlELU0qD0C6pBDbJa9OWPQO3xnhHRGrQKBVFLv4b6C2oNmoOgKIJoC5qLWkpe56mgRJ7Luedzv/eew73ngiWcVjJ6/QBksjktOOF3zUcWXLZX7DTQQSu+qKKrM6HxMDXt64E6M971mbVqn/vXmpbjugJ1jcKjiqrlhCeFp9dzqsm7wu1KKrosfC7s0eSCwvemHivxm8nJEv+YrIWDAbC0CLuSVRyrYiWlZYTl5bgz6TWlfB/zJY54di4ksVu8C50gE/hxMcUYAYYYZETmIfrw0i8rauQPFPNnWZVcRWaVDTRWSJIih0fUNakel5gQPS4jzYbZ/7991RM+b6m6ww8NL4bx0QO2HSjkDeP72DAKJ2B9hqtsJX/1CIY/Rc9XNPchOLfg4rqixfbgchs6n9SoFi1KVnFLIgHvZ9AcgbZbsC+Welbe5/QRwpvyVTewfwC9ct659At2bGftHD0UJwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAEpJREFUGJWNkMENwDAIA1Gh3F7sP0Ty7xD5JgpU+OuTLVvMmQohhRTCnCEK8TpfBl9eBpcBu/HXcsAZ9FQjSrWqW2Pa95gzGofPBQZRG2fS0899AAAAAElFTkSuQmCC'); -// --gfx-maxBtn: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAIn2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIKICAgZGM6Zm9ybWF0PSJpbWFnZS9wbmciCiAgIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiCiAgIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIKICAgdGlmZjpJbWFnZUxlbmd0aD0iMTAiCiAgIHRpZmY6SW1hZ2VXaWR0aD0iMTAiCiAgIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiCiAgIHRpZmY6WFJlc29sdXRpb249IjcyLjAiCiAgIHRpZmY6WVJlc29sdXRpb249IjcyLjAiCiAgIHhtcDpDcmVhdGVEYXRlPSIyMDIwLTAyLTE3VDEyOjU1OjM3WiIKICAgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiCiAgIHhtcDpNZXRhZGF0YURhdGU9IjIwMjEtMTAtMDVUMTQ6MjU6NTItMDc6MDAiCiAgIHhtcDpNb2RpZnlEYXRlPSIyMDIxLTEwLTA1VDE0OjI1OjUyLTA3OjAwIgogICB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6ZTk5OWM2NWYtNDhhOS0wNjQyLWI2MTktZmJlYTExMmUxOGZiIgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY5MzMyOWNhLWNkNjctMzY0Zi04MzU1LTY5N2ZmYzI0ZDdlZCIKICAgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjgyZjQwYmU3LTE0YzItZjc0Ni1hZmE1LWQxYmIxNzAyMjM4OCIKICAgZXhpZjpQaXhlbFhEaW1lbnNpb249IjEwIgogICBleGlmOlBpeGVsWURpbWVuc2lvbj0iMTAiCiAgIGV4aWY6Q29sb3JTcGFjZT0iMSI+CiAgIDxwaG90b3Nob3A6VGV4dExheWVycz4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgcGhvdG9zaG9wOkxheWVyTmFtZT0i7qSiIgogICAgICBwaG90b3Nob3A6TGF5ZXJUZXh0PSLupKIiLz4KICAgIDwvcmRmOlNlcT4KICAgPC9waG90b3Nob3A6VGV4dExheWVycz4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHhtcE1NOmFjdGlvbj0iY3JlYXRlZCIKICAgICAgeG1wTU06aW5zdGFuY2VJRD0ieG1wLmlpZDo4MmY0MGJlNy0xNGMyLWY3NDYtYWZhNS1kMWJiMTcwMjIzODgiCiAgICAgIHhtcE1NOnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIKICAgICAgeG1wTU06d2hlbj0iMjAyMC0wMi0xN1QxMjo1NTozN1oiLz4KICAgICA8cmRmOmxpCiAgICAgIHhtcE1NOmFjdGlvbj0ic2F2ZWQiCiAgICAgIHhtcE1NOmNoYW5nZWQ9Ii8iCiAgICAgIHhtcE1NOmluc3RhbmNlSUQ9InhtcC5paWQ6NjkzMzI5Y2EtY2Q2Ny0zNjRmLTgzNTUtNjk3ZmZjMjRkN2VkIgogICAgICB4bXBNTTpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiCiAgICAgIHhtcE1NOndoZW49IjIwMjAtMDItMTdUMTI6NTU6MzdaIi8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InByb2R1Y2VkIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZmZpbml0eSBQaG90byAxLjEwLjEiCiAgICAgIHN0RXZ0OndoZW49IjIwMjEtMTAtMDVUMTQ6MjU6NTItMDc6MDAiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KPD94cGFja2V0IGVuZD0iciI/PntJ23wAAAGCaUNDUHNSR0IgSUVDNjE5NjYtMi4xAAAokXWRv0tCURTHP2lhmGFRQUODhDVZlELU0qD0C6pBDbJa9OWPQO3xnhHRGrQKBVFLv4b6C2oNmoOgKIJoC5qLWkpe56mgRJ7Luedzv/eew73ngiWcVjJ6/QBksjktOOF3zUcWXLZX7DTQQSu+qKKrM6HxMDXt64E6M971mbVqn/vXmpbjugJ1jcKjiqrlhCeFp9dzqsm7wu1KKrosfC7s0eSCwvemHivxm8nJEv+YrIWDAbC0CLuSVRyrYiWlZYTl5bgz6TWlfB/zJY54di4ksVu8C50gE/hxMcUYAYYYZETmIfrw0i8rauQPFPNnWZVcRWaVDTRWSJIih0fUNakel5gQPS4jzYbZ/7991RM+b6m6ww8NL4bx0QO2HSjkDeP72DAKJ2B9hqtsJX/1CIY/Rc9XNPchOLfg4rqixfbgchs6n9SoFi1KVnFLIgHvZ9AcgbZbsC+Welbe5/QRwpvyVTewfwC9ct659At2bGftHD0UJwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAEhJREFUGJVjYGBgmMzAwPCXgYHhPw78l4GBYTIjlKHHwMDwlAE7EGFgYLjJANUlgEMRDPxnIqAADoaKwn8MkCDABaShaogLcACWZRl4ajKVtAAAAABJRU5ErkJggg=='); -// --gfx-restoreBtn: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAIn2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIKICAgZGM6Zm9ybWF0PSJpbWFnZS9wbmciCiAgIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiCiAgIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIKICAgdGlmZjpJbWFnZUxlbmd0aD0iMTAiCiAgIHRpZmY6SW1hZ2VXaWR0aD0iMTAiCiAgIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiCiAgIHRpZmY6WFJlc29sdXRpb249IjcyLjAiCiAgIHRpZmY6WVJlc29sdXRpb249IjcyLjAiCiAgIHhtcDpDcmVhdGVEYXRlPSIyMDIwLTAyLTE3VDEyOjU1OjM3WiIKICAgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiCiAgIHhtcDpNZXRhZGF0YURhdGU9IjIwMjEtMTAtMDVUMTQ6MjY6NTMtMDc6MDAiCiAgIHhtcDpNb2RpZnlEYXRlPSIyMDIxLTEwLTA1VDE0OjI2OjUzLTA3OjAwIgogICB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6ZTk5OWM2NWYtNDhhOS0wNjQyLWI2MTktZmJlYTExMmUxOGZiIgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY5MzMyOWNhLWNkNjctMzY0Zi04MzU1LTY5N2ZmYzI0ZDdlZCIKICAgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjgyZjQwYmU3LTE0YzItZjc0Ni1hZmE1LWQxYmIxNzAyMjM4OCIKICAgZXhpZjpQaXhlbFhEaW1lbnNpb249IjEwIgogICBleGlmOlBpeGVsWURpbWVuc2lvbj0iMTAiCiAgIGV4aWY6Q29sb3JTcGFjZT0iMSI+CiAgIDxwaG90b3Nob3A6VGV4dExheWVycz4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgcGhvdG9zaG9wOkxheWVyTmFtZT0i7qSiIgogICAgICBwaG90b3Nob3A6TGF5ZXJUZXh0PSLupKIiLz4KICAgIDwvcmRmOlNlcT4KICAgPC9waG90b3Nob3A6VGV4dExheWVycz4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHhtcE1NOmFjdGlvbj0iY3JlYXRlZCIKICAgICAgeG1wTU06aW5zdGFuY2VJRD0ieG1wLmlpZDo4MmY0MGJlNy0xNGMyLWY3NDYtYWZhNS1kMWJiMTcwMjIzODgiCiAgICAgIHhtcE1NOnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIKICAgICAgeG1wTU06d2hlbj0iMjAyMC0wMi0xN1QxMjo1NTozN1oiLz4KICAgICA8cmRmOmxpCiAgICAgIHhtcE1NOmFjdGlvbj0ic2F2ZWQiCiAgICAgIHhtcE1NOmNoYW5nZWQ9Ii8iCiAgICAgIHhtcE1NOmluc3RhbmNlSUQ9InhtcC5paWQ6NjkzMzI5Y2EtY2Q2Ny0zNjRmLTgzNTUtNjk3ZmZjMjRkN2VkIgogICAgICB4bXBNTTpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiCiAgICAgIHhtcE1NOndoZW49IjIwMjAtMDItMTdUMTI6NTU6MzdaIi8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InByb2R1Y2VkIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZmZpbml0eSBQaG90byAxLjEwLjEiCiAgICAgIHN0RXZ0OndoZW49IjIwMjEtMTAtMDVUMTQ6MjY6NTMtMDc6MDAiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KPD94cGFja2V0IGVuZD0iciI/PluKsJ0AAAGCaUNDUHNSR0IgSUVDNjE5NjYtMi4xAAAokXWRv0tCURTHP2lhmGFRQUODhDVZlELU0qD0C6pBDbJa9OWPQO3xnhHRGrQKBVFLv4b6C2oNmoOgKIJoC5qLWkpe56mgRJ7Luedzv/eew73ngiWcVjJ6/QBksjktOOF3zUcWXLZX7DTQQSu+qKKrM6HxMDXt64E6M971mbVqn/vXmpbjugJ1jcKjiqrlhCeFp9dzqsm7wu1KKrosfC7s0eSCwvemHivxm8nJEv+YrIWDAbC0CLuSVRyrYiWlZYTl5bgz6TWlfB/zJY54di4ksVu8C50gE/hxMcUYAYYYZETmIfrw0i8rauQPFPNnWZVcRWaVDTRWSJIih0fUNakel5gQPS4jzYbZ/7991RM+b6m6ww8NL4bx0QO2HSjkDeP72DAKJ2B9hqtsJX/1CIY/Rc9XNPchOLfg4rqixfbgchs6n9SoFi1KVnFLIgHvZ9AcgbZbsC+Welbe5/QRwpvyVTewfwC9ct659At2bGftHD0UJwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAGlJREFUGJWt0LEOgkAQhOFPShspSWyvMPFxKaDh0XgOq8tZuCqBIzRMMsXmn51slr9GlJVfmHC9LII3LGfoomCGHrnSloM9olnGE+3KKVgbi0oMNX1ZaXYCG50aLBj4HJwqgXuwn47eA95vgSGy6zr7OwAAAABJRU5ErkJggg=='); -// --gfx-minBtn: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAACxMAAAsTAQCanBgAAAaxaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pg0KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPg0KICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPg0KICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIgeG1wOkNyZWF0ZURhdGU9IjIwMjAtMDItMTdUMTM6MDA6MzJaIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDIwLTAyLTE3VDEzOjAwOjMyWiIgeG1wOk1vZGlmeURhdGU9IjIwMjAtMDItMTdUMTM6MDA6MzJaIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjg1ZDBlZGIwLWZkMDAtYjY0Zi05ZWZiLWEyYjQ1ODcwNWE4YSIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOmEzMDAxZTFhLTI5MTktZTQ0OS1iOTRjLWMyMTIyNDhhOWY4YSIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjc4N2Y3OTljLTRiMTEtZTU0YS1iMjBkLTY4NjE3ZWQ5YzVlMiIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciPg0KICAgICAgPHhtcE1NOkhpc3Rvcnk+DQogICAgICAgIDxyZGY6U2VxPg0KICAgICAgICAgIDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjc4N2Y3OTljLTRiMTEtZTU0YS1iMjBkLTY4NjE3ZWQ5YzVlMiIgc3RFdnQ6d2hlbj0iMjAyMC0wMi0xN1QxMzowMDozMloiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIgLz4NCiAgICAgICAgICA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ODVkMGVkYjAtZmQwMC1iNjRmLTllZmItYTJiNDU4NzA1YThhIiBzdEV2dDp3aGVuPSIyMDIwLTAyLTE3VDEzOjAwOjMyWiIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIiAvPg0KICAgICAgICA8L3JkZjpTZXE+DQogICAgICA8L3htcE1NOkhpc3Rvcnk+DQogICAgICA8cGhvdG9zaG9wOlRleHRMYXllcnM+DQogICAgICAgIDxyZGY6QmFnPg0KICAgICAgICAgIDxyZGY6bGkgcGhvdG9zaG9wOkxheWVyTmFtZT0i7qShIiBwaG90b3Nob3A6TGF5ZXJUZXh0PSLupKEiIC8+DQogICAgICAgIDwvcmRmOkJhZz4NCiAgICAgIDwvcGhvdG9zaG9wOlRleHRMYXllcnM+DQogICAgPC9yZGY6RGVzY3JpcHRpb24+DQogIDwvcmRmOlJERj4NCjwveDp4bXBtZXRhPg0KPD94cGFja2V0IGVuZD0iciI/PmeGdrgAAAAVSURBVChTYxhOgBGI/0OYQx0wMAAAyp4BAZ26NiYAAAAASUVORK5CYII='); -// } -// } - @media (prefers-color-scheme: dark) { } @@ -5680,7 +2847,6 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { --gfx-minBtn: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAGOmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIwLTAyLTE3VDEzOjAwOjMyWiIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMC0wMi0xN1QxMzowMDozMloiIHhtcDpNb2RpZnlEYXRlPSIyMDIwLTAyLTE3VDEzOjAwOjMyWiIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4NWQwZWRiMC1mZDAwLWI2NGYtOWVmYi1hMmI0NTg3MDVhOGEiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDphMzAwMWUxYS0yOTE5LWU0NDktYjk0Yy1jMjEyMjQ4YTlmOGEiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo3ODdmNzk5Yy00YjExLWU1NGEtYjIwZC02ODYxN2VkOWM1ZTIiIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo3ODdmNzk5Yy00YjExLWU1NGEtYjIwZC02ODYxN2VkOWM1ZTIiIHN0RXZ0OndoZW49IjIwMjAtMDItMTdUMTM6MDA6MzJaIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjg1ZDBlZGIwLWZkMDAtYjY0Zi05ZWZiLWEyYjQ1ODcwNWE4YSIgc3RFdnQ6d2hlbj0iMjAyMC0wMi0xN1QxMzowMDozMloiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPHBob3Rvc2hvcDpUZXh0TGF5ZXJzPiA8cmRmOkJhZz4gPHJkZjpsaSBwaG90b3Nob3A6TGF5ZXJOYW1lPSLupKEiIHBob3Rvc2hvcDpMYXllclRleHQ9Iu6koSIvPiA8L3JkZjpCYWc+IDwvcGhvdG9zaG9wOlRleHRMYXllcnM+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+FwvRXAAAABdJREFUGNNj/P//PwMxgHGIKPw/XDwDAOr1HuzlELLnAAAAAElFTkSuQmCC'); } - #apple-music-video-container { background: black; position: absolute; @@ -5692,6 +2858,8 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { z-index: 100000; } + + #apple-music-video-player { position: absolute; top: 50%; @@ -5700,6 +2868,11 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { height: 100%; } +#app.twopanel #apple-music-video-container { + top: var(--chromeHeight1); + bottom: unset; +} + #apple-music-video-player-controls { position: absolute; z-index: 100001; @@ -5801,78 +2974,6 @@ div#captions { font-weight: 500; } -/* Switch Checkbox */ -input[type=checkbox][switch] { - width: 38px; - appearance: none; - border-radius: 32px; - height: 24px; - zoom: 1; - top: 0; - cursor: pointer; - left: 0; - position: relative; - transform: scale(1); - background: rgb(142 142 147 / 100%); - padding: 0; - margin: 0; -} - -input[type=checkbox][switch]:focus, -input[type=checkbox][switch]:active { - outline: none; -} - -input[type=checkbox][switch]:checked { - background: var(--keyColor); - border: 0 solid var(--keyColor); - mix-blend-mode: unset; - - &:hover { - background: var(--keyColor-rollover); - } - - &:active { - background: var(--keyColor-pressed); - } -} - -input[type=checkbox][switch]::before { - background: white; - width: 26px; - height: 26px; - top: -1px; - left: -1px; - position: absolute; - content: ' '; - border-radius: 32px; - transition: .10s left var(--appleEase); - transform: scale(.75); -} - - -input[type=checkbox][switch]:checked::before { - background: white; - top: -1px; - left: 13px; - transition: .10s left var(--appleEase); - transform: scale(.75); -} - -input[type=checkbox][switch]:disabled::before { - opacity: .5; -} - -input[type=checkbox][switch]:active::before { - left: 13px; -} - -input[type=checkbox][switch]:checked:active::before { - left: -1px; -} - -/* End Switch Checkbox */ - .madeforyou-body { margin-top: 15px; } @@ -5888,6 +2989,10 @@ body.no-gpu { .bg-artwork-container { display: none; + animation: none !important; + .bg-artwork{ + animation: none !important; + } } #navigation-bar { @@ -5928,6 +3033,10 @@ body.no-gpu { .drawertransition-leave-to { right: -300px; } + + .lyric-line:hover::after { + display: none; + } } .qrimg { @@ -6054,5 +3163,45 @@ body[platform='darwin'] { } } +.percent { + display: inline-block; + position: relative; +} +.percent::after { + position: relative; + right: 2em; + transition: all .05s ease-in-out; +} + +.percent:hover::after, +.percent:focus-within::after { + right: 3.5em; +} + +.percent::after { + content: '%'; +} + +.spatialproperties-panel.modal-fullscreen{ + flex-direction: column; +} + +.cursor { + background: rgb(255 255 255 / 50%); + width: 16px; + height: 16px; + position: fixed; + z-index: 9999999999; + pointer-events: none; + border-radius: 100%; + box-shadow: 0px 0px 0px 2px rgb(200 200 200 / 100%); + top: 0; + left: 0; + display: none; +} + +@import url("less/macos.less"); +@import url("less/linux.less"); @import url("less/compact.less"); +@import url("less/directives.less"); \ No newline at end of file diff --git a/src/renderer/themes/groovy/index.less b/src/renderer/themes/groovy/index.less new file mode 100644 index 00000000..ab0c0141 --- /dev/null +++ b/src/renderer/themes/groovy/index.less @@ -0,0 +1 @@ +// \ No newline at end of file diff --git a/src/renderer/themes/groovy/theme.json b/src/renderer/themes/groovy/theme.json new file mode 100644 index 00000000..db9f5469 --- /dev/null +++ b/src/renderer/themes/groovy/theme.json @@ -0,0 +1,15 @@ +{ + "name": "Groovy", + "description": "Inspired by Groove Music and Media Player found on Windows", + "version": "1.0.0", + "author": "ciderapp", + "github_repo": "ciderapp/Groovy", + "directives": { + "windowLayout": { + "value": "twopanel" + }, + "lcdArtworkSize": { + "value": 70 + } + } +} \ No newline at end of file diff --git a/src/renderer/themes/sweetener.css b/src/renderer/themes/sweetener.css new file mode 100644 index 00000000..51e9f4e3 --- /dev/null +++ b/src/renderer/themes/sweetener.css @@ -0,0 +1,40 @@ +.menu-panel .menu-panel-body { + background-color: rgba(30, 30, 30, 0.45); + backdrop-filter: blur(32px) saturate(180%); + animation: menuIn 0.1s var(--appleEase); +} +@keyframes menuIn { + 0% { + opacity: 0; + transform: translateY(-10px) translate3d(0, 0, 0); + background: #1e1e1e; + } + 100% { + opacity: 1; + transform: translateY(0); + background: rgba(30, 30, 30, 0.45); + } +} +.cd-mediaitem-square:not(.mediaitem-card) { + transition: transform 0.2s var(--appleEase); + transition-delay: 0.1s; + padding: 12px; + height: 250px; +} +.cd-mediaitem-square:not(.mediaitem-card) .artwork-container, +.cd-mediaitem-square:not(.mediaitem-card) .info-rect { + transition: transform 0.22s var(--appleEase); + transition-delay: 0.05s; +} +.cd-mediaitem-square:not(.mediaitem-card):hover .artwork-container { + transform: scale(1.1); + transition: transform 0.1s var(--appleEase); + transition-delay: 0s; + transform-origin: center; +} +.cd-mediaitem-square:not(.mediaitem-card):hover .info-rect { + z-index: 1; + transition: transform 0.1s var(--appleEase); + transition-delay: 0s; + transform: translateY(8px) translate3d(0, 0, 0); +} diff --git a/src/renderer/themes/sweetener.less b/src/renderer/themes/sweetener.less new file mode 100644 index 00000000..681f41d3 --- /dev/null +++ b/src/renderer/themes/sweetener.less @@ -0,0 +1,68 @@ +@panelColorsFallback: rgb(30 30 30); +@panelColors : rgb(30 30 30 / 45%); + +.menu-panel { + .menu-panel-body { + background-color: @panelColors; + backdrop-filter : blur(32px) saturate(180%); + animation: menuIn .10s var(--appleEase); + } + + + @keyframes menuIn { + 0% { + opacity : 0; + transform : translateY(-10px) translate3d(0,0,0); + background: @panelColorsFallback; + } + + 100% { + opacity : 1; + transform : translateY(0); + background: @panelColors; + } + } + +} + + +.cd-mediaitem-square:not(.mediaitem-card) { + transition : transform .2s var(--appleEase); + transition-delay: .1s; + padding : 12px; + + // background-color: red; + height: 250px; + + + .artwork-container {} + + .info-rect {} + + .artwork-container, + .info-rect { + transition : transform .22s var(--appleEase); + transition-delay: .05s; + } + + &:hover { + .artwork-container { + transform : scale(1.1); + transition : transform .1s var(--appleEase); + transition-delay: 0s; + transform-origin: center; + } + + + .info-rect { + z-index : 1; + transition : transform .1s var(--appleEase); + transition-delay: 0s; + transform : translateY(8px) translate3d(0,0,0); + } + } + + &:active { + + } +} \ No newline at end of file diff --git a/src/renderer/views/app/app-content.ejs b/src/renderer/views/app/app-content.ejs index e3ad44a4..3912c46f 100644 --- a/src/renderer/views/app/app-content.ejs +++ b/src/renderer/views/app/app-content.ejs @@ -1,4 +1,4 @@ -
    +
    - - - - - - - - + + <% for(var i=0; i < Object.keys(env.appRoutes).length ; i++) {%> + + v-on:enter="<%- env.appRoutes[i].onEnter %>" + <% + } + %> + :name="chrome.desiredPageTransition"> + + + <% } %> - - - - - - - - - - - - - - <%- include('../pages/zoo') %> - - - <%- include('../pages/webview') %> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - + <%- include('../pages/library-recentlyadded') %>'); - - - - - - - <%- include('../pages/library-albums') %>'); - %> - - + - + - - -
    \ No newline at end of file diff --git a/src/renderer/views/app/app-navigation.ejs b/src/renderer/views/app/app-navigation.ejs index b7d7f654..58833a1c 100644 --- a/src/renderer/views/app/app-navigation.ejs +++ b/src/renderer/views/app/app-navigation.ejs @@ -6,8 +6,9 @@ v-if="drawer.open && drawer.panel == 'lyrics' && lyrics && lyrics != [] && lyrics.length > 0">
    - - + + +
    +
    +
    + + +
    + +
    +
    +
    +
    + + +
    +
    + +
    +
    + + +
    +
    + +
    +
    + + + +
    +
    +
    +
    +
    +

    {{ convertTime(getSongProgress()) }}

    +

    {{ convertTime(mk.currentPlaybackDuration) }} +

    +
    + + +
    +
    +
    +
    +
    + + +
    +
    + +
    +
    + +
    +
    + + + +
    +
    +
    diff --git a/src/renderer/views/app/chrome-top.ejs b/src/renderer/views/app/chrome-top.ejs index fa2e3012..17a9eafe 100644 --- a/src/renderer/views/app/chrome-top.ejs +++ b/src/renderer/views/app/chrome-top.ejs @@ -16,33 +16,35 @@ @click="mainMenuVisibility(true)" :class="{active: chrome.menuOpened}"> -
    - - -
    -
    - -
    -
    - - -
    -
    - -
    -
    - - - -
    +
    -
    +