diff --git a/.circleci/config.yml b/.circleci/config.yml index f1370fb9..b15cbeb7 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -3,7 +3,7 @@ version: 2.1 executors: cider-ci: docker: - - image: circleci/node:16 + - image: cimg/node:lts-browsers working_directory: ~/Cider orbs: # Add orbs to your configuration @@ -15,15 +15,9 @@ jobs: executor: cider-ci steps: - checkout - # - run: - # name: Rename Repository - # command: sed -i 's/github:ciderapp\/Cider/github:ciderapp\/cider-releases/' package.json - run: name: Update Version Number of App command: sudo chmod +x resources/version.sh && ./resources/version.sh || true - - run: - name: Update Package Managers - command: sudo npm update -g npm yarn - restore_cache: name: Restore Yarn Package Cache keys: @@ -36,6 +30,9 @@ jobs: key: yarn-packages-{{ checksum "cider.lock" }} paths: - ~/.cache/yarn + - run: + name: Clear Yarn Cache + command: yarn cache clean - run: name: TypeScript Compile command: yarn build @@ -60,9 +57,6 @@ jobs: steps: - attach_workspace: at: ~/Cider -# - run: -# name: Fix Versioning and Add Channel -# command: yarn circle:script - run: name: Generate Builds (Linux) command: yarn electron-builder -l -p never @@ -89,9 +83,6 @@ jobs: sudo dpkg --add-architecture i386 sudo apt-get update -y sudo apt-get install -y wine32 -# - run: -# name: Fix Versioning and Add Channel -# command: yarn circle:script - run: name: Generate Builds (Windows) command: yarn electron-builder -w --x64 -p never @@ -117,9 +108,6 @@ jobs: sudo dpkg --add-architecture i386 sudo apt-get update -y sudo apt-get install -y wine32 -# - run: -# name: Fix Versioning and Add Channel -# command: yarn circle:script - run: name: Generate Builds (Winget) command: yarn electron-builder --win -c winget.json -p never @@ -156,15 +144,13 @@ jobs: mv ~/Cider/dist/*.blockmap ~/Cider/dist/artifacts - store_artifacts: path: ~/Cider/dist/artifacts -# - run: -# name: Fix Versioning and Add Channel -# command: yarn circle:script - run: name: Update Version Number of App command: sudo chmod +x resources/version.sh && ./resources/version.sh || true - run: name: Publish Release command: | + echo "Creating release for Cider v${APP_VERSION} on the ${CIRCLE_BRANCH} branch." gh release create "v${APP_VERSION}" --title "Cider Version ${APP_VERSION} (${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 # Orchestrate our job run sequence diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index ed95f376..d25be6c5 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -6,8 +6,8 @@ contact_links: - name: Discord Support url: https://discord.com/invite/AppleMusic about: For quick support, make a ticket or ask for community support here. - - name: GitHub Troublshooting - url: https://github.com/ciderapp/Cider/wiki/Troubleshooting + - name: Cider Documentation + url: https://docs.cider.sh/support/troubleshooting about: In most cases, these troubleshooting tips can resolve basic issues. Try them out before opening an issue. - name: GitHub Issues url: https://github.com/ciderapp/Cider/issues diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index a9a2fa0f..f47f1d37 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -94,6 +94,9 @@ jobs: 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 + rm -r node_modules/pouchdb-node/node_modules/leveldown + rm -r node_modules/pouchdb-adapter-leveldb/node_modules/leveldown + rm -r /node_modules/leveldown/node_modules/node-gyp-build || true yarn dist:universalNotWorking -p never # - name: Perform CodeQL Analysis # uses: github/codeql-action/analyze@v1 diff --git a/.github/workflows/stale-issues.yml b/.github/workflows/stale-issues.yml index 923438ae..3307a8b2 100644 --- a/.github/workflows/stale-issues.yml +++ b/.github/workflows/stale-issues.yml @@ -18,3 +18,5 @@ jobs: days-before-close: 7 stale-issue-label: "stale" stale-pr-label: "stale" + exempt-all-assignees: true + exempt-issue-labels: 'more-info,work-in-progress,accessibility-feature,help-wanted' diff --git a/.gitignore b/.gitignore index e6413018..fc8bf102 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ dist build .flatpak* yarn-cache +src/renderer/style.css # Misc .idea @@ -328,3 +329,5 @@ savedconfig/cider-config.json savedconfig/config.json savedconfig/session.json savedconfig/window-state.json +src/main/base/sample.json + diff --git a/Assets/Release.svg b/Assets/Release.svg index f27dc45d..3c9999cd 100644 --- a/Assets/Release.svg +++ b/Assets/Release.svg @@ -1,6 +1,9 @@ - - - + + + + + + diff --git a/README.md b/README.md index d0515b36..2702cdf9 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,7 @@ Open Collective GitHub Sponsor
+ QQ群 Discord Twitter Reddit @@ -18,13 +19,14 @@

#### Links -* [Wiki](https://docs.cider.sh) + +* [Documentation](https://docs.cider.sh) * [Request Feature](https://github.com/ciderapp/Cider/discussions/new?category=feature-request) * [Report Bug](https://github.com/ciderapp/Cider/issues/new?assignees=&labels=bug&template=bug_report.md&title=%5BBUG%5D+) -* [**View The Releases**](https://github.com/ciderapp/Cider/releases/latest) +* [**View The Releases**](https://github.com/ciderapp/cider-releases/releases/latest) ### Install Sources -[![Get it from Github](https://img.shields.io/badge/Get_It_From_GitHub-100000?style=for-the-badge&logo=github&logoColor=white)](https://github.com/ciderapp/cider/releases/latest) +[![Get it from Github](https://img.shields.io/badge/Get_It_From_GitHub-100000?style=for-the-badge&logo=github&logoColor=white)](https://github.com/ciderapp/cider-releases/releases/latest) [![Get it from the Microsoft Store](https://img.shields.io/badge/Get_It_From_The_Microsoft_Store-100000?style=for-the-badge&logo=microsoft)](https://www.microsoft.com/store/apps/9P21XJ9D9G66) @@ -44,8 +46,8 @@ --> [![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) -### Compiling and Configuration -For more information surrounding configuration, compiling and other developer documentation, see the [compilation docs](https://cider.sh/compile.html). +### Insights Snapshot +[![CircleCI](https://dl.circleci.com/insights-snapshot/gh/ciderapp/Cider/main/build_and_release/badge.svg?window=30d)](https://app.circleci.com/insights/github/ciderapp/Cider/workflows/build_and_release/overview?branch=main&reporting-window=last-30-days&insights-snapshot=true) ### Credits ![Contributors](https://contrib.rocks/image?repo=ciderapp/Cider) diff --git a/cider.lock b/cider.lock index 8cec071c..27dcab09 100644 --- a/cider.lock +++ b/cider.lock @@ -4,92 +4,93 @@ "7zip-bin@~5.1.1": version "5.1.1" - resolved "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-5.1.1.tgz#9274ec7460652f9c632c59addf24efb1684ef876" integrity sha512-sAP4LldeWNz0lNzmTird3uWfFDWWTeg6V/MsmyyLR9X1idwKBWIgt/ZvinqQldJm3LecKEs1emkbquO6PCiLVQ== "7zip@0.0.6": version "0.0.6" - resolved "https://registry.npmjs.org/7zip/-/7zip-0.0.6.tgz" - integrity sha1-nK+xca+CMpSQNTtIFvAzR6oVCjA= + resolved "https://registry.yarnpkg.com/7zip/-/7zip-0.0.6.tgz#9cafb171af82329490353b4816f03347aa150a30" + integrity sha512-ns8vKbKhIQm338AeWo/YdDSWil3pldwCMoyR2npoM2qDAzF8Vuko8BtDxpNt/wE15SXOh5K5WbjSLR4kTOAHLA== "@ampproject/remapping@^2.1.0": - version "2.1.2" - resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz" - integrity sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg== + version "2.2.0" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" + integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== dependencies: - "@jridgewell/trace-mapping" "^0.3.0" + "@jridgewell/gen-mapping" "^0.1.0" + "@jridgewell/trace-mapping" "^0.3.9" "@babel/code-frame@^7.16.7": version "7.16.7" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz" + 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.8", "@babel/compat-data@^7.17.0", "@babel/compat-data@^7.17.7": - version "7.17.7" - resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz" - integrity sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ== +"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.17.10": + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.10.tgz#711dc726a492dfc8be8220028b1b92482362baab" + integrity sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw== "@babel/core@^7.9.0": - version "7.17.9" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.17.9.tgz" - integrity sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw== + version "7.18.2" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.2.tgz#87b2fcd7cce9becaa7f5acebdc4f09f3dd19d876" + integrity sha512-A8pri1YJiC5UnkdrWcmfZTJTV85b4UXTAfImGmCfYmax4TR9Cw8sDS0MOk++Gp2mE/BefVJ5nwy5yzqNJbP/DQ== dependencies: "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.9" - "@babel/helper-compilation-targets" "^7.17.7" - "@babel/helper-module-transforms" "^7.17.7" - "@babel/helpers" "^7.17.9" - "@babel/parser" "^7.17.9" + "@babel/generator" "^7.18.2" + "@babel/helper-compilation-targets" "^7.18.2" + "@babel/helper-module-transforms" "^7.18.0" + "@babel/helpers" "^7.18.2" + "@babel/parser" "^7.18.0" "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.9" - "@babel/types" "^7.17.0" + "@babel/traverse" "^7.18.2" + "@babel/types" "^7.18.2" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.1" semver "^6.3.0" -"@babel/generator@^7.17.9": - version "7.17.9" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.17.9.tgz" - integrity sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ== +"@babel/generator@^7.18.2": + version "7.18.2" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.2.tgz#33873d6f89b21efe2da63fe554460f3df1c5880d" + integrity sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw== dependencies: - "@babel/types" "^7.17.0" + "@babel/types" "^7.18.2" + "@jridgewell/gen-mapping" "^0.3.0" jsesc "^2.5.1" - source-map "^0.5.0" "@babel/helper-annotate-as-pure@^7.16.7": version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz#bb2339a7534a9c128e3102024c60760a3a7f3862" integrity sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw== dependencies: "@babel/types" "^7.16.7" "@babel/helper-builder-binary-assignment-operator-visitor@^7.16.7": version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz#38d138561ea207f0f69eb1626a418e4f7e6a580b" integrity sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA== dependencies: "@babel/helper-explode-assignable-expression" "^7.16.7" "@babel/types" "^7.16.7" -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.17.7": - version "7.17.7" - resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz" - integrity sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w== +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.17.10", "@babel/helper-compilation-targets@^7.18.2": + version "7.18.2" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz#67a85a10cbd5fc7f1457fec2e7f45441dc6c754b" + integrity sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ== dependencies: - "@babel/compat-data" "^7.17.7" + "@babel/compat-data" "^7.17.10" "@babel/helper-validator-option" "^7.16.7" - browserslist "^4.17.5" + browserslist "^4.20.2" semver "^6.3.0" -"@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.9" - resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.9.tgz" - integrity sha512-kUjip3gruz6AJKOq5i3nC6CoCEEF/oHH3cp6tOZhB+IyyyPyW0g1Gfsxn3mkk6S08pIA2y8GQh609v9G/5sHVQ== +"@babel/helper-create-class-features-plugin@^7.17.12", "@babel/helper-create-class-features-plugin@^7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz#fac430912606331cb075ea8d82f9a4c145a4da19" + integrity sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg== dependencies: "@babel/helper-annotate-as-pure" "^7.16.7" "@babel/helper-environment-visitor" "^7.16.7" @@ -99,17 +100,17 @@ "@babel/helper-replace-supers" "^7.16.7" "@babel/helper-split-export-declaration" "^7.16.7" -"@babel/helper-create-regexp-features-plugin@^7.16.7": - version "7.17.0" - resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz" - integrity sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA== +"@babel/helper-create-regexp-features-plugin@^7.16.7", "@babel/helper-create-regexp-features-plugin@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.12.tgz#bb37ca467f9694bbe55b884ae7a5cc1e0084e4fd" + integrity sha512-b2aZrV4zvutr9AIa6/gA3wsZKRwTKYoDxYiFKcESS3Ug2GTXzwBEvMuuFLhCQpEnRXs1zng4ISAXSUxxKBIcxw== dependencies: "@babel/helper-annotate-as-pure" "^7.16.7" regexpu-core "^5.0.1" "@babel/helper-define-polyfill-provider@^0.3.1": version "0.3.1" - resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz#52411b445bdb2e676869e5a74960d2d3826d2665" integrity sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA== dependencies: "@babel/helper-compilation-targets" "^7.13.0" @@ -121,23 +122,21 @@ resolve "^1.14.2" semver "^6.1.2" -"@babel/helper-environment-visitor@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz" - integrity sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag== - dependencies: - "@babel/types" "^7.16.7" +"@babel/helper-environment-visitor@^7.16.7", "@babel/helper-environment-visitor@^7.18.2": + version "7.18.2" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz#8a6d2dedb53f6bf248e31b4baf38739ee4a637bd" + integrity sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ== "@babel/helper-explode-assignable-expression@^7.16.7": version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz#12a6d8522fdd834f194e868af6354e8650242b7a" integrity sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ== dependencies: "@babel/types" "^7.16.7" "@babel/helper-function-name@^7.16.7", "@babel/helper-function-name@^7.17.9": version "7.17.9" - resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz#136fcd54bc1da82fcb47565cf16fd8e444b1ff12" integrity sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg== dependencies: "@babel/template" "^7.16.7" @@ -145,21 +144,21 @@ "@babel/helper-hoist-variables@^7.16.7": version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246" integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg== dependencies: "@babel/types" "^7.16.7" -"@babel/helper-member-expression-to-functions@^7.16.7", "@babel/helper-member-expression-to-functions@^7.17.7": +"@babel/helper-member-expression-to-functions@^7.17.7": version "7.17.7" - resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz#a34013b57d8542a8c4ff8ba3f747c02452a4d8c4" integrity sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw== dependencies: "@babel/types" "^7.17.0" "@babel/helper-module-imports@7.0.0-beta.35": version "7.0.0-beta.35" - resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0-beta.35.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0-beta.35.tgz#308e350e731752cdb4d0f058df1d704925c64e0a" integrity sha512-vaC1KyIZSuyWb3Lj277fX0pxivyHwuDU4xZsofqgYAbkDxNieMg2vuhzP5AgMweMY7fCQUMTi+BgPqTLjkxXFg== dependencies: "@babel/types" "7.0.0-beta.35" @@ -167,15 +166,15 @@ "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.7": version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== dependencies: "@babel/types" "^7.16.7" -"@babel/helper-module-transforms@^7.16.7", "@babel/helper-module-transforms@^7.17.7": - version "7.17.7" - resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz" - integrity sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw== +"@babel/helper-module-transforms@^7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz#baf05dec7a5875fb9235bd34ca18bad4e21221cd" + integrity sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA== dependencies: "@babel/helper-environment-visitor" "^7.16.7" "@babel/helper-module-imports" "^7.16.7" @@ -183,75 +182,75 @@ "@babel/helper-split-export-declaration" "^7.16.7" "@babel/helper-validator-identifier" "^7.16.7" "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.3" - "@babel/types" "^7.17.0" + "@babel/traverse" "^7.18.0" + "@babel/types" "^7.18.0" "@babel/helper-optimise-call-expression@^7.16.7": version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz#a34e3560605abbd31a18546bd2aad3e6d9a174f2" integrity sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w== dependencies: "@babel/types" "^7.16.7" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz" - integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA== +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.17.12", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz#86c2347da5acbf5583ba0a10aed4c9bf9da9cf96" + integrity sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA== "@babel/helper-remap-async-to-generator@^7.16.8": version "7.16.8" - resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz#29ffaade68a367e2ed09c90901986918d25e57e3" integrity sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw== dependencies: "@babel/helper-annotate-as-pure" "^7.16.7" "@babel/helper-wrap-function" "^7.16.8" "@babel/types" "^7.16.8" -"@babel/helper-replace-supers@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz" - integrity sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw== +"@babel/helper-replace-supers@^7.16.7", "@babel/helper-replace-supers@^7.18.2": + version "7.18.2" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.18.2.tgz#41fdfcc9abaf900e18ba6e5931816d9062a7b2e0" + integrity sha512-XzAIyxx+vFnrOxiQrToSUOzUOn0e1J2Li40ntddek1Y69AXUTXoDJ40/D5RdjFu7s7qHiaeoTiempZcbuVXh2Q== dependencies: - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-member-expression-to-functions" "^7.16.7" + "@babel/helper-environment-visitor" "^7.18.2" + "@babel/helper-member-expression-to-functions" "^7.17.7" "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/traverse" "^7.16.7" - "@babel/types" "^7.16.7" + "@babel/traverse" "^7.18.2" + "@babel/types" "^7.18.2" -"@babel/helper-simple-access@^7.17.7": - version "7.17.7" - resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz" - integrity sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA== +"@babel/helper-simple-access@^7.17.7", "@babel/helper-simple-access@^7.18.2": + version "7.18.2" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz#4dc473c2169ac3a1c9f4a51cfcd091d1c36fcff9" + integrity sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ== dependencies: - "@babel/types" "^7.17.0" + "@babel/types" "^7.18.2" "@babel/helper-skip-transparent-expression-wrappers@^7.16.0": version "7.16.0" - resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz#0ee3388070147c3ae051e487eca3ebb0e2e8bb09" integrity sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw== dependencies: "@babel/types" "^7.16.0" "@babel/helper-split-export-declaration@^7.16.7": version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b" integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw== dependencies: "@babel/types" "^7.16.7" "@babel/helper-validator-identifier@^7.16.7": version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== "@babel/helper-validator-option@^7.16.7": version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23" integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== "@babel/helper-wrap-function@^7.16.8": version "7.16.8" - resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz#58afda087c4cd235de92f7ceedebca2c41274200" integrity sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw== dependencies: "@babel/helper-function-name" "^7.16.7" @@ -259,552 +258,562 @@ "@babel/traverse" "^7.16.8" "@babel/types" "^7.16.8" -"@babel/helpers@^7.17.9": - version "7.17.9" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz" - integrity sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q== +"@babel/helpers@^7.18.2": + version "7.18.2" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.18.2.tgz#970d74f0deadc3f5a938bfa250738eb4ac889384" + integrity sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg== dependencies: "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.9" - "@babel/types" "^7.17.0" + "@babel/traverse" "^7.18.2" + "@babel/types" "^7.18.2" "@babel/highlight@^7.16.7": - version "7.17.9" - resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz" - integrity sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg== + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.17.12.tgz#257de56ee5afbd20451ac0a75686b6b404257351" + integrity sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg== dependencies: "@babel/helper-validator-identifier" "^7.16.7" chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.16.7", "@babel/parser@^7.17.9": - version "7.17.9" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.17.9.tgz" - integrity sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg== +"@babel/parser@^7.16.7", "@babel/parser@^7.18.0": + version "7.18.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.4.tgz#6774231779dd700e0af29f6ad8d479582d7ce5ef" + integrity sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow== -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz" - integrity sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg== +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12.tgz#1dca338caaefca368639c9ffb095afbd4d420b1e" + integrity sha512-xCJQXl4EeQ3J9C4yOmpTrtVGmzpm2iSzyxbkZHw7UCnZBftHpF/hpII80uWVyVrc40ytIClHjgWGTG1g/yB+aw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.16.7": - version "7.16.7" - resolved "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" - integrity sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw== +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.17.12.tgz#0d498ec8f0374b1e2eb54b9cb2c4c78714c77753" + integrity sha512-/vt0hpIw0x4b6BLKUkwlvEoiGZYYLNZ96CzyHYPbtG2jZGz6LBe7/V+drYrc/d+ovrF9NBi0pmtvmNb/FsWtRQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" - "@babel/plugin-proposal-optional-chaining" "^7.16.7" + "@babel/plugin-proposal-optional-chaining" "^7.17.12" -"@babel/plugin-proposal-async-generator-functions@^7.16.8": - version "7.16.8" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz" - integrity sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ== +"@babel/plugin-proposal-async-generator-functions@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.17.12.tgz#094a417e31ce7e692d84bab06c8e2a607cbeef03" + integrity sha512-RWVvqD1ooLKP6IqWTA5GyFVX2isGEgC5iFxKzfYOIy/QEFdxYyCybBDtIGjipHpb9bDWHzcqGqFakf+mVmBTdQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/helper-remap-async-to-generator" "^7.16.8" "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-proposal-class-properties@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz" - integrity sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww== +"@babel/plugin-proposal-class-properties@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.17.12.tgz#84f65c0cc247d46f40a6da99aadd6438315d80a4" + integrity sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw== dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-create-class-features-plugin" "^7.17.12" + "@babel/helper-plugin-utils" "^7.17.12" -"@babel/plugin-proposal-class-static-block@^7.16.7": - version "7.17.6" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz" - integrity sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA== +"@babel/plugin-proposal-class-static-block@^7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.0.tgz#7d02253156e3c3793bdb9f2faac3a1c05f0ba710" + integrity sha512-t+8LsRMMDE74c6sV7KShIw13sqbqd58tlqNrsWoWBTIMw7SVQ0cZ905wLNS/FBCy/3PyooRHLFFlfrUNyyz5lA== dependencies: - "@babel/helper-create-class-features-plugin" "^7.17.6" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-create-class-features-plugin" "^7.18.0" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-proposal-dynamic-import@^7.16.7": version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz#c19c897eaa46b27634a00fee9fb7d829158704b2" integrity sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg== dependencies: "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@babel/plugin-proposal-export-namespace-from@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz" - integrity sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA== +"@babel/plugin-proposal-export-namespace-from@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.17.12.tgz#b22864ccd662db9606edb2287ea5fd1709f05378" + integrity sha512-j7Ye5EWdwoXOpRmo5QmRyHPsDIe6+u70ZYZrd7uz+ebPYFKfRcLcNu3Ro0vOlJ5zuv8rU7xa+GttNiRzX56snQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-proposal-json-strings@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz" - integrity sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ== +"@babel/plugin-proposal-json-strings@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.17.12.tgz#f4642951792437233216d8c1af370bb0fbff4664" + integrity sha512-rKJ+rKBoXwLnIn7n6o6fulViHMrOThz99ybH+hKHcOZbnN14VuMnH9fo2eHE69C8pO4uX1Q7t2HYYIDmv8VYkg== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-proposal-logical-assignment-operators@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz" - integrity sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg== +"@babel/plugin-proposal-logical-assignment-operators@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.17.12.tgz#c64a1bcb2b0a6d0ed2ff674fd120f90ee4b88a23" + integrity sha512-EqFo2s1Z5yy+JeJu7SFfbIUtToJTVlC61/C7WLKDntSw4Sz6JNAIfL7zQ74VvirxpjB5kz/kIx0gCcb+5OEo2Q== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz" - integrity sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ== +"@babel/plugin-proposal-nullish-coalescing-operator@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.17.12.tgz#1e93079bbc2cbc756f6db6a1925157c4a92b94be" + integrity sha512-ws/g3FSGVzv+VH86+QvgtuJL/kR67xaEIF2x0iPqdDfYW6ra6JF3lKVBkWynRLcNtIC1oCTfDRVxmm2mKzy+ag== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" "@babel/plugin-proposal-numeric-separator@^7.16.7": version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz" + 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== dependencies: "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.16.7": - version "7.17.3" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz" - integrity sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw== +"@babel/plugin-proposal-object-rest-spread@^7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.0.tgz#79f2390c892ba2a68ec112eb0d895cfbd11155e8" + integrity sha512-nbTv371eTrFabDfHLElkn9oyf9VG+VKK6WMzhY2o4eHKaG19BToD9947zzGMO6I/Irstx9d8CwX6njPNIAR/yw== dependencies: - "@babel/compat-data" "^7.17.0" - "@babel/helper-compilation-targets" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/compat-data" "^7.17.10" + "@babel/helper-compilation-targets" "^7.17.10" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.16.7" + "@babel/plugin-transform-parameters" "^7.17.12" "@babel/plugin-proposal-optional-catch-binding@^7.16.7": version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz#c623a430674ffc4ab732fd0a0ae7722b67cb74cf" integrity sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA== dependencies: "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz" - integrity sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA== +"@babel/plugin-proposal-optional-chaining@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.17.12.tgz#f96949e9bacace3a9066323a5cf90cfb9de67174" + integrity sha512-7wigcOs/Z4YWlK7xxjkvaIw84vGhDv/P1dFGQap0nHkc8gFKY/r+hXc8Qzf5k1gY7CvGIcHqAnOagVKJJ1wVOQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-proposal-private-methods@^7.16.11": - version "7.16.11" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz" - integrity sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw== +"@babel/plugin-proposal-private-methods@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.17.12.tgz#c2ca3a80beb7539289938da005ad525a038a819c" + integrity sha512-SllXoxo19HmxhDWm3luPz+cPhtoTSKLJE9PXshsfrOzBqs60QP0r8OaJItrPhAj0d7mZMnNF0Y1UUggCDgMz1A== dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.10" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-create-class-features-plugin" "^7.17.12" + "@babel/helper-plugin-utils" "^7.17.12" -"@babel/plugin-proposal-private-property-in-object@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz" - integrity sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ== +"@babel/plugin-proposal-private-property-in-object@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.17.12.tgz#b02efb7f106d544667d91ae97405a9fd8c93952d" + integrity sha512-/6BtVi57CJfrtDNKfK5b66ydK2J5pXUKBKSPD2G1whamMuEnZWgoOIfO8Vf9F/DoD4izBLD/Au4NMQfruzzykg== dependencies: "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-create-class-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-create-class-features-plugin" "^7.17.12" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" -"@babel/plugin-proposal-unicode-property-regex@^7.16.7", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz" - integrity sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg== +"@babel/plugin-proposal-unicode-property-regex@^7.17.12", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.17.12.tgz#3dbd7a67bd7f94c8238b394da112d86aaf32ad4d" + integrity sha512-Wb9qLjXf3ZazqXA7IvI7ozqRIXIGPtSo+L5coFmEkhTQK18ao4UDDD0zdTGAarmbLj2urpRwrc6893cu5Bfh0A== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-create-regexp-features-plugin" "^7.17.12" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-class-properties@^7.12.13": version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== dependencies: "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-syntax-class-static-block@^7.14.5": version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-export-namespace-from@^7.8.3": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== dependencies: "@babel/helper-plugin-utils" "^7.8.3" +"@babel/plugin-syntax-import-assertions@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.17.12.tgz#58096a92b11b2e4e54b24c6a0cc0e5e607abcedd" + integrity sha512-n/loy2zkq9ZEM8tEOwON9wTQSTNDTDEz6NujPtJGLU7qObzT1N4c4YZZf8E6ATB2AjNQg/Ib2AIpO03EZaCehw== + dependencies: + "@babel/helper-plugin-utils" "^7.17.12" + "@babel/plugin-syntax-json-strings@^7.8.3": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-numeric-separator@^7.10.4": version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-object-rest-spread@^7.8.3": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" + 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": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz" + 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== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-optional-chaining@^7.8.3": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-private-property-in-object@^7.14.5": version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-top-level-await@^7.14.5": version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-arrow-functions@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz" - integrity sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ== +"@babel/plugin-transform-arrow-functions@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.17.12.tgz#dddd783b473b1b1537ef46423e3944ff24898c45" + integrity sha512-PHln3CNi/49V+mza4xMwrg+WGYevSF1oaiXaC2EQfdp4HWlSjRsrDXWJiQBKpP7749u6vQ9mcry2uuFOv5CXvA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" -"@babel/plugin-transform-async-to-generator@^7.16.8": - version "7.16.8" - resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz" - integrity sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg== +"@babel/plugin-transform-async-to-generator@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.17.12.tgz#dbe5511e6b01eee1496c944e35cdfe3f58050832" + integrity sha512-J8dbrWIOO3orDzir57NRsjg4uxucvhby0L/KZuGsWDj0g7twWK3g7JhJhOrXtuXiw8MeiSdJ3E0OW9H8LYEzLQ== dependencies: "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/helper-remap-async-to-generator" "^7.16.8" "@babel/plugin-transform-block-scoped-functions@^7.16.7": version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz#4d0d57d9632ef6062cdf354bb717102ee042a620" integrity sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg== dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-block-scoping@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz" - integrity sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ== +"@babel/plugin-transform-block-scoping@^7.17.12": + version "7.18.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.4.tgz#7988627b3e9186a13e4d7735dc9c34a056613fb9" + integrity sha512-+Hq10ye+jlvLEogSOtq4mKvtk7qwcUQ1f0Mrueai866C82f844Yom2cttfJdMdqRLTxWpsbfbkIkOIfovyUQXw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" -"@babel/plugin-transform-classes@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz" - integrity sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ== +"@babel/plugin-transform-classes@^7.17.12": + version "7.18.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.4.tgz#51310b812a090b846c784e47087fa6457baef814" + integrity sha512-e42NSG2mlKWgxKUAD9EJJSkZxR67+wZqzNxLSpc51T8tRU5SLFHsPmgYR5yr7sdgX4u+iHA1C5VafJ6AyImV3A== dependencies: "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.16.7" + "@babel/helper-environment-visitor" "^7.18.2" + "@babel/helper-function-name" "^7.17.9" "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-replace-supers" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-replace-supers" "^7.18.2" "@babel/helper-split-export-declaration" "^7.16.7" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz" - integrity sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw== +"@babel/plugin-transform-computed-properties@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.17.12.tgz#bca616a83679698f3258e892ed422546e531387f" + integrity sha512-a7XINeplB5cQUWMg1E/GI1tFz3LfK021IjV1rj1ypE+R7jHm+pIHmHl25VNkZxtx9uuYp7ThGk8fur1HHG7PgQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" -"@babel/plugin-transform-destructuring@^7.16.7": - version "7.17.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz" - integrity sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ== +"@babel/plugin-transform-destructuring@^7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.0.tgz#dc4f92587e291b4daa78aa20cc2d7a63aa11e858" + integrity sha512-Mo69klS79z6KEfrLg/1WkmVnB8javh75HX4pi2btjvlIoasuxilEyjtsQW6XPrubNd7AQy0MMaNIaQE4e7+PQw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/plugin-transform-dotall-regex@^7.16.7", "@babel/plugin-transform-dotall-regex@^7.4.4": version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz#6b2d67686fab15fb6a7fd4bd895d5982cfc81241" integrity sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-duplicate-keys@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz" - integrity sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw== +"@babel/plugin-transform-duplicate-keys@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.17.12.tgz#a09aa709a3310013f8e48e0e23bc7ace0f21477c" + integrity sha512-EA5eYFUG6xeerdabina/xIoB95jJ17mAkR8ivx6ZSu9frKShBjpOGZPn511MTDTkiCO+zXnzNczvUM69YSf3Zw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/plugin-transform-exponentiation-operator@^7.16.7": version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz#efa9862ef97e9e9e5f653f6ddc7b665e8536fe9b" integrity sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA== dependencies: "@babel/helper-builder-binary-assignment-operator-visitor" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-for-of@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz" - integrity sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg== +"@babel/plugin-transform-for-of@^7.18.1": + version "7.18.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.1.tgz#ed14b657e162b72afbbb2b4cdad277bf2bb32036" + integrity sha512-+TTB5XwvJ5hZbO8xvl2H4XaMDOAK57zF4miuC9qQJgysPNEAZZ9Z69rdF5LJkozGdZrjBIUAIyKUWRMmebI7vg== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/plugin-transform-function-name@^7.16.7": version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz#5ab34375c64d61d083d7d2f05c38d90b97ec65cf" integrity sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA== dependencies: "@babel/helper-compilation-targets" "^7.16.7" "@babel/helper-function-name" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-literals@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz" - integrity sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ== +"@babel/plugin-transform-literals@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.17.12.tgz#97131fbc6bbb261487105b4b3edbf9ebf9c830ae" + integrity sha512-8iRkvaTjJciWycPIZ9k9duu663FT7VrBdNqNgxnVXEFwOIp55JWcZd23VBRySYbnS3PwQ3rGiabJBBBGj5APmQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/plugin-transform-member-expression-literals@^7.16.7": version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz#6e5dcf906ef8a098e630149d14c867dd28f92384" integrity sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw== dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-modules-amd@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz" - integrity sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g== +"@babel/plugin-transform-modules-amd@^7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.0.tgz#7ef1002e67e36da3155edc8bf1ac9398064c02ed" + integrity sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA== dependencies: - "@babel/helper-module-transforms" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-module-transforms" "^7.18.0" + "@babel/helper-plugin-utils" "^7.17.12" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.16.8": - version "7.17.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.9.tgz" - integrity sha512-2TBFd/r2I6VlYn0YRTz2JdazS+FoUuQ2rIFHoAxtyP/0G3D82SBLaRq9rnUkpqlLg03Byfl/+M32mpxjO6KaPw== +"@babel/plugin-transform-modules-commonjs@^7.18.2": + version "7.18.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.2.tgz#1aa8efa2e2a6e818b6a7f2235fceaf09bdb31e9e" + integrity sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ== dependencies: - "@babel/helper-module-transforms" "^7.17.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-simple-access" "^7.17.7" + "@babel/helper-module-transforms" "^7.18.0" + "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-simple-access" "^7.18.2" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-systemjs@^7.16.7": - version "7.17.8" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz" - integrity sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw== +"@babel/plugin-transform-modules-systemjs@^7.18.0": + version "7.18.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.4.tgz#3d6fd9868c735cce8f38d6ae3a407fb7e61e6d46" + integrity sha512-lH2UaQaHVOAeYrUUuZ8i38o76J/FnO8vu21OE+tD1MyP9lxdZoSfz+pDbWkq46GogUrdrMz3tiz/FYGB+bVThg== dependencies: "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-module-transforms" "^7.17.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-module-transforms" "^7.18.0" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/helper-validator-identifier" "^7.16.7" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-umd@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz" - integrity sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ== +"@babel/plugin-transform-modules-umd@^7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.0.tgz#56aac64a2c2a1922341129a4597d1fd5c3ff020f" + integrity sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA== dependencies: - "@babel/helper-module-transforms" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-module-transforms" "^7.18.0" + "@babel/helper-plugin-utils" "^7.17.12" -"@babel/plugin-transform-named-capturing-groups-regex@^7.16.8": - version "7.16.8" - resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz" - integrity sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw== +"@babel/plugin-transform-named-capturing-groups-regex@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.12.tgz#9c4a5a5966e0434d515f2675c227fd8cc8606931" + integrity sha512-vWoWFM5CKaTeHrdUJ/3SIOTRV+MBVGybOC9mhJkaprGNt5demMymDW24yC74avb915/mIRe3TgNb/d8idvnCRA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.7" + "@babel/helper-create-regexp-features-plugin" "^7.17.12" + "@babel/helper-plugin-utils" "^7.17.12" -"@babel/plugin-transform-new-target@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz" - integrity sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg== +"@babel/plugin-transform-new-target@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.17.12.tgz#10842cd605a620944e81ea6060e9e65c265742e3" + integrity sha512-CaOtzk2fDYisbjAD4Sd1MTKGVIpRtx9bWLyj24Y/k6p4s4gQ3CqDGJauFJxt8M/LEx003d0i3klVqnN73qvK3w== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/plugin-transform-object-super@^7.16.7": version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz#ac359cf8d32cf4354d27a46867999490b6c32a94" integrity sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw== dependencies: "@babel/helper-plugin-utils" "^7.16.7" "@babel/helper-replace-supers" "^7.16.7" -"@babel/plugin-transform-parameters@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz" - integrity sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw== +"@babel/plugin-transform-parameters@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.17.12.tgz#eb467cd9586ff5ff115a9880d6fdbd4a846b7766" + integrity sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/plugin-transform-property-literals@^7.16.7": version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz#2dadac85155436f22c696c4827730e0fe1057a55" integrity sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw== dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-regenerator@^7.16.7": - version "7.17.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.17.9.tgz" - integrity sha512-Lc2TfbxR1HOyn/c6b4Y/b6NHoTb67n/IoWLxTu4kC7h4KQnWlhCq2S8Tx0t2SVvv5Uu87Hs+6JEJ5kt2tYGylQ== +"@babel/plugin-transform-regenerator@^7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.0.tgz#44274d655eb3f1af3f3a574ba819d3f48caf99d5" + integrity sha512-C8YdRw9uzx25HSIzwA7EM7YP0FhCe5wNvJbZzjVNHHPGVcDJ3Aie+qGYYdS1oVQgn+B3eAIJbWFLrJ4Jipv7nw== dependencies: + "@babel/helper-plugin-utils" "^7.17.12" regenerator-transform "^0.15.0" -"@babel/plugin-transform-reserved-words@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz" - integrity sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg== +"@babel/plugin-transform-reserved-words@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.17.12.tgz#7dbd349f3cdffba751e817cf40ca1386732f652f" + integrity sha512-1KYqwbJV3Co03NIi14uEHW8P50Md6KqFgt0FfpHdK6oyAHQVTosgPuPSiWud1HX0oYJ1hGRRlk0fP87jFpqXZA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/plugin-transform-shorthand-properties@^7.16.7": version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz#e8549ae4afcf8382f711794c0c7b6b934c5fbd2a" integrity sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg== dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-spread@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz" - integrity sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg== +"@babel/plugin-transform-spread@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.17.12.tgz#c112cad3064299f03ea32afed1d659223935d1f5" + integrity sha512-9pgmuQAtFi3lpNUstvG9nGfk9DkrdmWNp9KeKPFmuZCpEnxRzYlS8JgwPjYj+1AWDOSvoGN0H30p1cBOmT/Svg== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" "@babel/plugin-transform-sticky-regex@^7.16.7": version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz#c84741d4f4a38072b9a1e2e3fd56d359552e8660" integrity sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw== dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-template-literals@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz" - integrity sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA== +"@babel/plugin-transform-template-literals@^7.18.2": + version "7.18.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.2.tgz#31ed6915721864847c48b656281d0098ea1add28" + integrity sha512-/cmuBVw9sZBGZVOMkpAEaVLwm4JmK2GZ1dFKOGGpMzEHWFmyZZ59lUU0PdRr8YNYeQdNzTDwuxP2X2gzydTc9g== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" -"@babel/plugin-transform-typeof-symbol@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz" - integrity sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ== +"@babel/plugin-transform-typeof-symbol@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.17.12.tgz#0f12f57ac35e98b35b4ed34829948d42bd0e6889" + integrity sha512-Q8y+Jp7ZdtSPXCThB6zjQ74N3lj0f6TDh1Hnf5B+sYlzQ8i5Pjp8gW0My79iekSpT4WnI06blqP6DT0OmaXXmw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/plugin-transform-unicode-escapes@^7.16.7": version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz#da8717de7b3287a2c6d659750c964f302b31ece3" integrity sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q== dependencies: "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-transform-unicode-regex@^7.16.7": version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz#0f7aa4a501198976e25e82702574c34cfebe9ef2" integrity sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" "@babel/preset-env@^7.9.0": - version "7.16.11" - resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz" - integrity sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g== + version "7.18.2" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.18.2.tgz#f47d3000a098617926e674c945d95a28cb90977a" + integrity sha512-PfpdxotV6afmXMU47S08F9ZKIm2bJIQ0YbAAtDfIENX7G1NUAXigLREh69CWDjtgUy7dYn7bsMzkgdtAlmS68Q== dependencies: - "@babel/compat-data" "^7.16.8" - "@babel/helper-compilation-targets" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/compat-data" "^7.17.10" + "@babel/helper-compilation-targets" "^7.18.2" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/helper-validator-option" "^7.16.7" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.16.7" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.16.7" - "@babel/plugin-proposal-async-generator-functions" "^7.16.8" - "@babel/plugin-proposal-class-properties" "^7.16.7" - "@babel/plugin-proposal-class-static-block" "^7.16.7" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.17.12" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.17.12" + "@babel/plugin-proposal-async-generator-functions" "^7.17.12" + "@babel/plugin-proposal-class-properties" "^7.17.12" + "@babel/plugin-proposal-class-static-block" "^7.18.0" "@babel/plugin-proposal-dynamic-import" "^7.16.7" - "@babel/plugin-proposal-export-namespace-from" "^7.16.7" - "@babel/plugin-proposal-json-strings" "^7.16.7" - "@babel/plugin-proposal-logical-assignment-operators" "^7.16.7" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.16.7" + "@babel/plugin-proposal-export-namespace-from" "^7.17.12" + "@babel/plugin-proposal-json-strings" "^7.17.12" + "@babel/plugin-proposal-logical-assignment-operators" "^7.17.12" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.17.12" "@babel/plugin-proposal-numeric-separator" "^7.16.7" - "@babel/plugin-proposal-object-rest-spread" "^7.16.7" + "@babel/plugin-proposal-object-rest-spread" "^7.18.0" "@babel/plugin-proposal-optional-catch-binding" "^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-proposal-unicode-property-regex" "^7.16.7" + "@babel/plugin-proposal-optional-chaining" "^7.17.12" + "@babel/plugin-proposal-private-methods" "^7.17.12" + "@babel/plugin-proposal-private-property-in-object" "^7.17.12" + "@babel/plugin-proposal-unicode-property-regex" "^7.17.12" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-class-properties" "^7.12.13" "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-import-assertions" "^7.17.12" "@babel/plugin-syntax-json-strings" "^7.8.3" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" @@ -814,49 +823,49 @@ "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-transform-arrow-functions" "^7.16.7" - "@babel/plugin-transform-async-to-generator" "^7.16.8" + "@babel/plugin-transform-arrow-functions" "^7.17.12" + "@babel/plugin-transform-async-to-generator" "^7.17.12" "@babel/plugin-transform-block-scoped-functions" "^7.16.7" - "@babel/plugin-transform-block-scoping" "^7.16.7" - "@babel/plugin-transform-classes" "^7.16.7" - "@babel/plugin-transform-computed-properties" "^7.16.7" - "@babel/plugin-transform-destructuring" "^7.16.7" + "@babel/plugin-transform-block-scoping" "^7.17.12" + "@babel/plugin-transform-classes" "^7.17.12" + "@babel/plugin-transform-computed-properties" "^7.17.12" + "@babel/plugin-transform-destructuring" "^7.18.0" "@babel/plugin-transform-dotall-regex" "^7.16.7" - "@babel/plugin-transform-duplicate-keys" "^7.16.7" + "@babel/plugin-transform-duplicate-keys" "^7.17.12" "@babel/plugin-transform-exponentiation-operator" "^7.16.7" - "@babel/plugin-transform-for-of" "^7.16.7" + "@babel/plugin-transform-for-of" "^7.18.1" "@babel/plugin-transform-function-name" "^7.16.7" - "@babel/plugin-transform-literals" "^7.16.7" + "@babel/plugin-transform-literals" "^7.17.12" "@babel/plugin-transform-member-expression-literals" "^7.16.7" - "@babel/plugin-transform-modules-amd" "^7.16.7" - "@babel/plugin-transform-modules-commonjs" "^7.16.8" - "@babel/plugin-transform-modules-systemjs" "^7.16.7" - "@babel/plugin-transform-modules-umd" "^7.16.7" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.16.8" - "@babel/plugin-transform-new-target" "^7.16.7" + "@babel/plugin-transform-modules-amd" "^7.18.0" + "@babel/plugin-transform-modules-commonjs" "^7.18.2" + "@babel/plugin-transform-modules-systemjs" "^7.18.0" + "@babel/plugin-transform-modules-umd" "^7.18.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.17.12" + "@babel/plugin-transform-new-target" "^7.17.12" "@babel/plugin-transform-object-super" "^7.16.7" - "@babel/plugin-transform-parameters" "^7.16.7" + "@babel/plugin-transform-parameters" "^7.17.12" "@babel/plugin-transform-property-literals" "^7.16.7" - "@babel/plugin-transform-regenerator" "^7.16.7" - "@babel/plugin-transform-reserved-words" "^7.16.7" + "@babel/plugin-transform-regenerator" "^7.18.0" + "@babel/plugin-transform-reserved-words" "^7.17.12" "@babel/plugin-transform-shorthand-properties" "^7.16.7" - "@babel/plugin-transform-spread" "^7.16.7" + "@babel/plugin-transform-spread" "^7.17.12" "@babel/plugin-transform-sticky-regex" "^7.16.7" - "@babel/plugin-transform-template-literals" "^7.16.7" - "@babel/plugin-transform-typeof-symbol" "^7.16.7" + "@babel/plugin-transform-template-literals" "^7.18.2" + "@babel/plugin-transform-typeof-symbol" "^7.17.12" "@babel/plugin-transform-unicode-escapes" "^7.16.7" "@babel/plugin-transform-unicode-regex" "^7.16.7" "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.16.8" + "@babel/types" "^7.18.2" babel-plugin-polyfill-corejs2 "^0.3.0" babel-plugin-polyfill-corejs3 "^0.5.0" babel-plugin-polyfill-regenerator "^0.3.0" - core-js-compat "^3.20.2" + core-js-compat "^3.22.1" semver "^6.3.0" "@babel/preset-modules@^0.1.5": version "0.1.5" - resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" @@ -865,66 +874,66 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/runtime@^7.8.4": - version "7.17.9" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.9.tgz" - integrity sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg== +"@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4": + version "7.18.3" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.3.tgz#c7b654b57f6f63cf7f8b418ac9ca04408c4579f4" + integrity sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug== dependencies: regenerator-runtime "^0.13.4" "@babel/template@^7.16.7": version "7.16.7" - resolved "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w== dependencies: "@babel/code-frame" "^7.16.7" "@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.3", "@babel/traverse@^7.17.9": - version "7.17.9" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.9.tgz" - integrity sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw== +"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.8", "@babel/traverse@^7.18.0", "@babel/traverse@^7.18.2": + version "7.18.2" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.2.tgz#b77a52604b5cc836a9e1e08dca01cba67a12d2e8" + integrity sha512-9eNwoeovJ6KH9zcCNnENY7DMFwTU9JdGCFtqNLfUAqtUHRCOsTOqWoffosP8vKmNYeSBUv3yVJXjfd8ucwOjUA== dependencies: "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.9" - "@babel/helper-environment-visitor" "^7.16.7" + "@babel/generator" "^7.18.2" + "@babel/helper-environment-visitor" "^7.18.2" "@babel/helper-function-name" "^7.17.9" "@babel/helper-hoist-variables" "^7.16.7" "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.17.9" - "@babel/types" "^7.17.0" + "@babel/parser" "^7.18.0" + "@babel/types" "^7.18.2" debug "^4.1.0" globals "^11.1.0" "@babel/types@7.0.0-beta.35": version "7.0.0-beta.35" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.35.tgz" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.35.tgz#cf933a9a9a38484ca724b335b88d83726d5ab960" integrity sha512-y9XT11CozHDgjWcTdxmhSj13rJVXpa5ZXwjjOiTedjaM0ba5ItqdS02t31EhPl7HtOWxsZkYCCUNrSfrOisA6w== dependencies: esutils "^2.0.2" lodash "^4.2.0" to-fast-properties "^2.0.0" -"@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.4.4": - version "7.17.0" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz" - integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw== +"@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.18.0", "@babel/types@^7.18.2", "@babel/types@^7.4.4": + version "7.18.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.4.tgz#27eae9b9fd18e9dccc3f9d6ad051336f307be354" + integrity sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw== dependencies: "@babel/helper-validator-identifier" "^7.16.7" to-fast-properties "^2.0.0" "@develar/schema-utils@~2.6.5": version "2.6.5" - resolved "https://registry.npmjs.org/@develar/schema-utils/-/schema-utils-2.6.5.tgz" + resolved "https://registry.yarnpkg.com/@develar/schema-utils/-/schema-utils-2.6.5.tgz#3ece22c5838402419a6e0425f85742b961d9b6c6" integrity sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig== dependencies: ajv "^6.12.0" ajv-keywords "^3.4.1" -"@electron/get@^1.14.1": +"@electron/get@^1.13.0": version "1.14.1" - resolved "https://registry.npmjs.org/@electron/get/-/get-1.14.1.tgz" + resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.14.1.tgz#16ba75f02dffb74c23965e72d617adc721d27f40" integrity sha512-BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw== dependencies: debug "^4.1.1" @@ -940,7 +949,7 @@ "@electron/universal@1.2.0": version "1.2.0" - resolved "https://registry.npmjs.org/@electron/universal/-/universal-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/@electron/universal/-/universal-1.2.0.tgz#518cac72bccd79c00bf41345119e6fdbabdb871d" integrity sha512-eu20BwNsrMPKoe2bZ3/l9c78LclDvxg3PlVXrQf3L50NaUuW5M59gbPytI+V4z7/QMrohUHetQaU0ou+p1UG9Q== dependencies: "@malept/cross-spawn-promise" "^1.1.0" @@ -953,37 +962,357 @@ "@gar/promisify@^1.1.3": version "1.1.3" - resolved "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== +"@jimp/bmp@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/bmp/-/bmp-0.16.1.tgz#6e2da655b2ba22e721df0795423f34e92ef13768" + integrity sha512-iwyNYQeBawrdg/f24x3pQ5rEx+/GwjZcCXd3Kgc+ZUd+Ivia7sIqBsOnDaMZdKCBPlfW364ekexnlOqyVa0NWg== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + bmp-js "^0.1.0" + +"@jimp/core@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/core/-/core-0.16.1.tgz#68c4288f6ef7f31a0f6b859ba3fb28dae930d39d" + integrity sha512-la7kQia31V6kQ4q1kI/uLimu8FXx7imWVajDGtwUG8fzePLWDFJyZl0fdIXVCL1JW2nBcRHidUot6jvlRDi2+g== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + any-base "^1.1.0" + buffer "^5.2.0" + exif-parser "^0.1.12" + file-type "^9.0.0" + load-bmfont "^1.3.1" + mkdirp "^0.5.1" + phin "^2.9.1" + pixelmatch "^4.0.2" + tinycolor2 "^1.4.1" + +"@jimp/custom@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/custom/-/custom-0.16.1.tgz#28b659c59e20a1d75a0c46067bd3f4bd302cf9c5" + integrity sha512-DNUAHNSiUI/j9hmbatD6WN/EBIyeq4AO0frl5ETtt51VN1SvE4t4v83ZA/V6ikxEf3hxLju4tQ5Pc3zmZkN/3A== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/core" "^0.16.1" + +"@jimp/gif@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/gif/-/gif-0.16.1.tgz#d1f7c3a58f4666482750933af8b8f4666414f3ca" + integrity sha512-r/1+GzIW1D5zrP4tNrfW+3y4vqD935WBXSc8X/wm23QTY9aJO9Lw6PEdzpYCEY+SOklIFKaJYUAq/Nvgm/9ryw== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + gifwrap "^0.9.2" + omggif "^1.0.9" + +"@jimp/jpeg@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/jpeg/-/jpeg-0.16.1.tgz#3b7bb08a4173f2f6d81f3049b251df3ee2ac8175" + integrity sha512-8352zrdlCCLFdZ/J+JjBslDvml+fS3Z8gttdml0We759PnnZGqrnPRhkOEOJbNUlE+dD4ckLeIe6NPxlS/7U+w== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + jpeg-js "0.4.2" + +"@jimp/plugin-blit@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugin-blit/-/plugin-blit-0.16.1.tgz#09ea919f9d326de3b9c2826fe4155da37dde8edb" + integrity sha512-fKFNARm32RoLSokJ8WZXHHH2CGzz6ire2n1Jh6u+XQLhk9TweT1DcLHIXwQMh8oR12KgjbgsMGvrMVlVknmOAg== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + +"@jimp/plugin-blur@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugin-blur/-/plugin-blur-0.16.1.tgz#e614fa002797dcd662e705d4cea376e7db968bf5" + integrity sha512-1WhuLGGj9MypFKRcPvmW45ht7nXkOKu+lg3n2VBzIB7r4kKNVchuI59bXaCYQumOLEqVK7JdB4glaDAbCQCLyw== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + +"@jimp/plugin-circle@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugin-circle/-/plugin-circle-0.16.1.tgz#20e3194a67ca29740aba2630fd4d0a89afa27491" + integrity sha512-JK7yi1CIU7/XL8hdahjcbGA3V7c+F+Iw+mhMQhLEi7Q0tCnZ69YJBTamMiNg3fWPVfMuvWJJKOBRVpwNTuaZRg== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + +"@jimp/plugin-color@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugin-color/-/plugin-color-0.16.1.tgz#0f298ba74dee818b663834cd80d53e56f3755233" + integrity sha512-9yQttBAO5SEFj7S6nJK54f+1BnuBG4c28q+iyzm1JjtnehjqMg6Ljw4gCSDCvoCQ3jBSYHN66pmwTV74SU1B7A== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + tinycolor2 "^1.4.1" + +"@jimp/plugin-contain@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugin-contain/-/plugin-contain-0.16.1.tgz#3c5f5c495fd9bb08a970739d83694934f58123f2" + integrity sha512-44F3dUIjBDHN+Ym/vEfg+jtjMjAqd2uw9nssN67/n4FdpuZUVs7E7wadKY1RRNuJO+WgcD5aDQcsvurXMETQTg== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + +"@jimp/plugin-cover@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugin-cover/-/plugin-cover-0.16.1.tgz#0e8caec16a40abe15b1b32e5383a603a3306dc41" + integrity sha512-YztWCIldBAVo0zxcQXR+a/uk3/TtYnpKU2CanOPJ7baIuDlWPsG+YE4xTsswZZc12H9Kl7CiziEbDtvF9kwA/Q== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + +"@jimp/plugin-crop@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugin-crop/-/plugin-crop-0.16.1.tgz#b362497c873043fe47ba881ab08604bf7226f50f" + integrity sha512-UQdva9oQzCVadkyo3T5Tv2CUZbf0klm2cD4cWMlASuTOYgaGaFHhT9st+kmfvXjKL8q3STkBu/zUPV6PbuV3ew== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + +"@jimp/plugin-displace@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugin-displace/-/plugin-displace-0.16.1.tgz#4dd9db518c3e78de9d723f86a234bf98922afe8d" + integrity sha512-iVAWuz2+G6Heu8gVZksUz+4hQYpR4R0R/RtBzpWEl8ItBe7O6QjORAkhxzg+WdYLL2A/Yd4ekTpvK0/qW8hTVw== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + +"@jimp/plugin-dither@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugin-dither/-/plugin-dither-0.16.1.tgz#b47de2c0bb09608bed228b41c3cd01a85ec2d45b" + integrity sha512-tADKVd+HDC9EhJRUDwMvzBXPz4GLoU6s5P7xkVq46tskExYSptgj5713J5Thj3NMgH9Rsqu22jNg1H/7tr3V9Q== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + +"@jimp/plugin-fisheye@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugin-fisheye/-/plugin-fisheye-0.16.1.tgz#f625047b6cdbe1b83b89e9030fd025ab19cdb1a4" + integrity sha512-BWHnc5hVobviTyIRHhIy9VxI1ACf4CeSuCfURB6JZm87YuyvgQh5aX5UDKtOz/3haMHXBLP61ZBxlNpMD8CG4A== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + +"@jimp/plugin-flip@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugin-flip/-/plugin-flip-0.16.1.tgz#7a99ea22bde802641017ed0f2615870c144329bb" + integrity sha512-KdxTf0zErfZ8DyHkImDTnQBuHby+a5YFdoKI/G3GpBl3qxLBvC+PWkS2F/iN3H7wszP7/TKxTEvWL927pypT0w== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + +"@jimp/plugin-gaussian@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugin-gaussian/-/plugin-gaussian-0.16.1.tgz#0845e314085ccd52e34fad9a83949bc0d81a68e8" + integrity sha512-u9n4wjskh3N1mSqketbL6tVcLU2S5TEaFPR40K6TDv4phPLZALi1Of7reUmYpVm8mBDHt1I6kGhuCJiWvzfGyg== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + +"@jimp/plugin-invert@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugin-invert/-/plugin-invert-0.16.1.tgz#7e6f5a15707256f3778d06921675bbcf18545c97" + integrity sha512-2DKuyVXANH8WDpW9NG+PYFbehzJfweZszFYyxcaewaPLN0GxvxVLOGOPP1NuUTcHkOdMFbE0nHDuB7f+sYF/2w== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + +"@jimp/plugin-mask@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugin-mask/-/plugin-mask-0.16.1.tgz#e7f2460e05c3cda7af5e76f33ccb0579f66f90df" + integrity sha512-snfiqHlVuj4bSFS0v96vo2PpqCDMe4JB+O++sMo5jF5mvGcGL6AIeLo8cYqPNpdO6BZpBJ8MY5El0Veckhr39Q== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + +"@jimp/plugin-normalize@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugin-normalize/-/plugin-normalize-0.16.1.tgz#032dfd88eefbc4dedc8b1b2d243832e4f3af30c8" + integrity sha512-dOQfIOvGLKDKXPU8xXWzaUeB0nvkosHw6Xg1WhS1Z5Q0PazByhaxOQkSKgUryNN/H+X7UdbDvlyh/yHf3ITRaw== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + +"@jimp/plugin-print@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugin-print/-/plugin-print-0.16.1.tgz#66b803563f9d109825970714466e6ab9ae639ff6" + integrity sha512-ceWgYN40jbN4cWRxixym+csyVymvrryuKBQ+zoIvN5iE6OyS+2d7Mn4zlNgumSczb9GGyZZESIgVcBDA1ezq0Q== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + load-bmfont "^1.4.0" + +"@jimp/plugin-resize@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugin-resize/-/plugin-resize-0.16.1.tgz#65e39d848ed13ba2d6c6faf81d5d590396571d10" + integrity sha512-u4JBLdRI7dargC04p2Ha24kofQBk3vhaf0q8FwSYgnCRwxfvh2RxvhJZk9H7Q91JZp6wgjz/SjvEAYjGCEgAwQ== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + +"@jimp/plugin-rotate@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugin-rotate/-/plugin-rotate-0.16.1.tgz#53fb5d51a4b3d05af9c91c2a8fffe5d7a1a47c8c" + integrity sha512-ZUU415gDQ0VjYutmVgAYYxC9Og9ixu2jAGMCU54mSMfuIlmohYfwARQmI7h4QB84M76c9hVLdONWjuo+rip/zg== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + +"@jimp/plugin-scale@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugin-scale/-/plugin-scale-0.16.1.tgz#89f6ba59feed3429847ed226aebda33a240cc647" + integrity sha512-jM2QlgThIDIc4rcyughD5O7sOYezxdafg/2Xtd1csfK3z6fba3asxDwthqPZAgitrLgiKBDp6XfzC07Y/CefUw== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + +"@jimp/plugin-shadow@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugin-shadow/-/plugin-shadow-0.16.1.tgz#a7af892a740febf41211e10a5467c3c5c521a04c" + integrity sha512-MeD2Is17oKzXLnsphAa1sDstTu6nxscugxAEk3ji0GV1FohCvpHBcec0nAq6/czg4WzqfDts+fcPfC79qWmqrA== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + +"@jimp/plugin-threshold@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugin-threshold/-/plugin-threshold-0.16.1.tgz#34f3078f9965145b7ae26c53a32ad74b1195bbf5" + integrity sha512-iGW8U/wiCSR0+6syrPioVGoSzQFt4Z91SsCRbgNKTAk7D+XQv6OI78jvvYg4o0c2FOlwGhqz147HZV5utoSLxA== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + +"@jimp/plugins@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugins/-/plugins-0.16.1.tgz#9f08544c97226d6460a16ced79f57e85bec3257b" + integrity sha512-c+lCqa25b+4q6mJZSetlxhMoYuiltyS+ValLzdwK/47+aYsq+kcJNl+TuxIEKf59yr9+5rkbpsPkZHLF/V7FFA== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/plugin-blit" "^0.16.1" + "@jimp/plugin-blur" "^0.16.1" + "@jimp/plugin-circle" "^0.16.1" + "@jimp/plugin-color" "^0.16.1" + "@jimp/plugin-contain" "^0.16.1" + "@jimp/plugin-cover" "^0.16.1" + "@jimp/plugin-crop" "^0.16.1" + "@jimp/plugin-displace" "^0.16.1" + "@jimp/plugin-dither" "^0.16.1" + "@jimp/plugin-fisheye" "^0.16.1" + "@jimp/plugin-flip" "^0.16.1" + "@jimp/plugin-gaussian" "^0.16.1" + "@jimp/plugin-invert" "^0.16.1" + "@jimp/plugin-mask" "^0.16.1" + "@jimp/plugin-normalize" "^0.16.1" + "@jimp/plugin-print" "^0.16.1" + "@jimp/plugin-resize" "^0.16.1" + "@jimp/plugin-rotate" "^0.16.1" + "@jimp/plugin-scale" "^0.16.1" + "@jimp/plugin-shadow" "^0.16.1" + "@jimp/plugin-threshold" "^0.16.1" + timm "^1.6.1" + +"@jimp/png@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/png/-/png-0.16.1.tgz#f24cfc31529900b13a2dd9d4fdb4460c1e4d814e" + integrity sha512-iyWoCxEBTW0OUWWn6SveD4LePW89kO7ZOy5sCfYeDM/oTPLpR8iMIGvZpZUz1b8kvzFr27vPst4E5rJhGjwsdw== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + pngjs "^3.3.3" + +"@jimp/tiff@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/tiff/-/tiff-0.16.1.tgz#0e8756695687d7574b6bc73efab0acd4260b7a12" + integrity sha512-3K3+xpJS79RmSkAvFMgqY5dhSB+/sxhwTFA9f4AVHUK0oKW+u6r52Z1L0tMXHnpbAdR9EJ+xaAl2D4x19XShkQ== + dependencies: + "@babel/runtime" "^7.7.2" + utif "^2.0.1" + +"@jimp/types@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/types/-/types-0.16.1.tgz#0dbab37b3202315c91010f16c31766d35a2322cc" + integrity sha512-g1w/+NfWqiVW4CaXSJyD28JQqZtm2eyKMWPhBBDCJN9nLCN12/Az0WFF3JUAktzdsEC2KRN2AqB1a2oMZBNgSQ== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/bmp" "^0.16.1" + "@jimp/gif" "^0.16.1" + "@jimp/jpeg" "^0.16.1" + "@jimp/png" "^0.16.1" + "@jimp/tiff" "^0.16.1" + timm "^1.6.1" + +"@jimp/utils@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/utils/-/utils-0.16.1.tgz#2f51e6f14ff8307c4aa83d5e1a277da14a9fe3f7" + integrity sha512-8fULQjB0x4LzUSiSYG6ZtQl355sZjxbv8r9PPAuYHzS9sGiSHJQavNqK/nKnpDsVkU88/vRGcE7t3nMU0dEnVw== + dependencies: + "@babel/runtime" "^7.7.2" + regenerator-runtime "^0.13.3" + +"@jridgewell/gen-mapping@^0.1.0": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" + integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== + dependencies: + "@jridgewell/set-array" "^1.0.0" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@jridgewell/gen-mapping@^0.3.0": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz#cf92a983c83466b8c0ce9124fadeaf09f7c66ea9" + integrity sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg== + dependencies: + "@jridgewell/set-array" "^1.0.0" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + "@jridgewell/resolve-uri@^3.0.3": - version "3.0.5" - resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz" - integrity sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew== + version "3.0.7" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz#30cd49820a962aff48c8fffc5cd760151fca61fe" + integrity sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA== + +"@jridgewell/set-array@^1.0.0": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.1.tgz#36a6acc93987adcf0ba50c66908bd0b70de8afea" + integrity sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ== + +"@jridgewell/source-map@^0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb" + integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" "@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.11" - resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz" - integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg== + version "1.4.13" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz#b6461fb0c2964356c469e115f504c95ad97ab88c" + integrity sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w== -"@jridgewell/trace-mapping@^0.3.0": - version "0.3.4" - resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz" - integrity sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ== +"@jridgewell/trace-mapping@^0.3.7", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.13" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz#dcfe3e95f224c8fe97a87a5235defec999aa92ea" + integrity sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w== dependencies: "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" "@malept/cross-spawn-promise@^1.1.0": version "1.1.1" - resolved "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz#504af200af6b98e198bce768bc1730c6936ae01d" integrity sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ== dependencies: cross-spawn "^7.0.1" "@malept/flatpak-bundler@^0.4.0": version "0.4.0" - resolved "https://registry.npmjs.org/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz" + resolved "https://registry.yarnpkg.com/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz#e8a32c30a95d20c2b1bb635cc580981a06389858" integrity sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q== dependencies: debug "^4.1.1" @@ -993,12 +1322,12 @@ "@nornagon/put@0.0.8": version "0.0.8" - resolved "https://registry.npmjs.org/@nornagon/put/-/put-0.0.8.tgz" + resolved "https://registry.yarnpkg.com/@nornagon/put/-/put-0.0.8.tgz#9d497ec46c9364acc3f8b59aa3cf8ee4134ae337" integrity sha512-ugvXJjwF5ldtUpa7D95kruNJ41yFQDEKyF5CW4TgKJnh+W/zmlBzXXeKTyqIgwMFrkePN2JqOBqcF0M0oOunow== "@npmcli/fs@^2.1.0": version "2.1.0" - resolved "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-2.1.0.tgz#f2a21c28386e299d1a9fae8051d35ad180e33109" integrity sha512-DmfBvNXGaetMxj9LTp8NAN9vEidXURrf5ZTslQzEAi/6GbW+4yjaLFQc6Tue5cpZ9Frlk4OBo/Snf1Bh/S7qTQ== dependencies: "@gar/promisify" "^1.1.3" @@ -1006,7 +1335,7 @@ "@npmcli/move-file@^2.0.0": version "2.0.0" - resolved "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-2.0.0.tgz#417f585016081a0184cef3e38902cd917a9bbd02" integrity sha512-UR6D5f4KEGWJV6BGPH3Qb2EtgH+t+1XQ1Tt85c7qicN6cezzuHPdZwwAxqZr4JLtnQu0LZsTza/5gmNmSl8XLg== dependencies: mkdirp "^1.0.4" @@ -1014,60 +1343,60 @@ "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": version "1.1.2" - resolved "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz" - integrity sha1-m4sMxmPWaafY9vXQiToU00jzD78= + resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" + integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== "@protobufjs/base64@^1.1.2": version "1.1.2" - resolved "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz" + 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.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz" + 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.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz" - integrity sha1-NVy8mLr61ZePntCV85diHx0Ga3A= + resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" + integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== "@protobufjs/fetch@^1.1.0": version "1.1.0" - resolved "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz" - integrity sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU= + resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" + integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== dependencies: "@protobufjs/aspromise" "^1.1.1" "@protobufjs/inquire" "^1.1.0" "@protobufjs/float@^1.0.2": version "1.0.2" - resolved "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz" - integrity sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E= + resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" + integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== "@protobufjs/inquire@^1.1.0": version "1.1.0" - resolved "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz" - integrity sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik= + resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" + integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== "@protobufjs/path@^1.1.2": version "1.1.2" - resolved "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz" - integrity sha1-bMKyDFya1q0NzP0hynZz2Nf79o0= + resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" + integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA== "@protobufjs/pool@^1.1.0": version "1.1.0" - resolved "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz" - integrity sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q= + resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" + integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== "@protobufjs/utf8@^1.1.0": version "1.1.0" - resolved "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz" - integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= + resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" + integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== "@sentry/browser@6.19.2": version "6.19.2" - resolved "https://registry.npmjs.org/@sentry/browser/-/browser-6.19.2.tgz" + resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-6.19.2.tgz#c0f6df07584f3b36fa037067aea20b2c8c2095a3" integrity sha512-5VC44p5Vu2eJhVT39nLAJFgha5MjHDYCyZRR1ieeZt3a++otojPGBBAKNAtrEMGV+A2Z9AoneD6ZnDVlyb3GKg== dependencies: "@sentry/core" "6.19.2" @@ -1077,7 +1406,7 @@ "@sentry/core@6.19.2": version "6.19.2" - resolved "https://registry.npmjs.org/@sentry/core/-/core-6.19.2.tgz" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.19.2.tgz#dd35ba6ca41a2dd011c43f732bcdadbb52c06376" integrity sha512-yu1R3ewBT4udmB4v7sc4biQZ0Z0rfB9+TzB5ZKoCftbe6kqXjFMMaFRYNUF9HicVldKAsBktgkWw3+yfqGkw/A== dependencies: "@sentry/hub" "6.19.2" @@ -1088,7 +1417,7 @@ "@sentry/electron@^3.0.7": version "3.0.7" - resolved "https://registry.npmjs.org/@sentry/electron/-/electron-3.0.7.tgz" + resolved "https://registry.yarnpkg.com/@sentry/electron/-/electron-3.0.7.tgz#d32ebd27d7fc9b0e7e8dd8498ee797fcaafb5a13" integrity sha512-Rahi1jgvjHnx1jGkkPPvDCxSCAME7xc2eBcFCLb4R/WDuNblR7tgJUuAtzv9JpxUgRHy1oLNct0wcvIu1mcXoA== dependencies: "@sentry/browser" "6.19.2" @@ -1101,7 +1430,7 @@ "@sentry/hub@6.19.2": version "6.19.2" - resolved "https://registry.npmjs.org/@sentry/hub/-/hub-6.19.2.tgz" + resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.19.2.tgz#0e9f9c507e55d8396002f644b43ef27cc9ff1289" integrity sha512-W7KCgNBgdBIMagOxy5J5KQPe+maYxSqfE8a5ncQ3R8BcZDQEKnkW/1FplNbfRLZqA/tL/ndKb7pTPqVtzsbARw== dependencies: "@sentry/types" "6.19.2" @@ -1109,18 +1438,18 @@ tslib "^1.9.3" "@sentry/integrations@^6.19.6": - version "6.19.6" - resolved "https://registry.npmjs.org/@sentry/integrations/-/integrations-6.19.6.tgz" - integrity sha512-K2xuA/ByhTh3qfIe0/XIsQSNf1HrRuIgtkC4TbU7T0QosybtXDsh6t/EWK+qzs2RjVE+Iaqldihstpoyew1JgA== + version "6.19.7" + resolved "https://registry.yarnpkg.com/@sentry/integrations/-/integrations-6.19.7.tgz#e6e126b692077c8731644224c754012bed65b425" + integrity sha512-yNeeFyuygJaV7Mdc5qWuDa13xVj5mVdECaaw2Xs4pfeHaXmRfRzZY17N8ypWFegKWxKBHynyQRMD10W5pBwJvA== dependencies: - "@sentry/types" "6.19.6" - "@sentry/utils" "6.19.6" + "@sentry/types" "6.19.7" + "@sentry/utils" "6.19.7" localforage "^1.8.1" tslib "^1.9.3" "@sentry/minimal@6.19.2": version "6.19.2" - resolved "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.19.2.tgz" + resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.19.2.tgz#e748541e4adbc7e80a3b6ccaf01b631c17fc44b4" integrity sha512-ClwxKm77iDHET7kpzv1JvzDx1er5DoNu+EUjst0kQzARIrXvu9xuZuE2/CnBWycQWqw8o3HoGoKz65uIhsUCzQ== dependencies: "@sentry/hub" "6.19.2" @@ -1129,7 +1458,7 @@ "@sentry/node@6.19.2": version "6.19.2" - resolved "https://registry.npmjs.org/@sentry/node/-/node-6.19.2.tgz" + resolved "https://registry.yarnpkg.com/@sentry/node/-/node-6.19.2.tgz#cad621ad319f555826110f4d6c972a2fc95800fc" integrity sha512-Z1qREpTpYHxaeWjc1zMUk8ZTAp1WbxMiI2TVNc+a14DVT19Z2xNXb06MiRfeLgNc9lVGdmzR62dPmMBjVgPJYg== dependencies: "@sentry/core" "6.19.2" @@ -1143,62 +1472,62 @@ "@sentry/types@6.19.2": version "6.19.2" - resolved "https://registry.npmjs.org/@sentry/types/-/types-6.19.2.tgz" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.19.2.tgz#0219c9da21ed975951108b8541913b1966464435" integrity sha512-XO5qmVBdTs+7PdCz7fAwn1afWxSnRE2KLBFg5/vOdKosPSSHsSHUURSkxiEZc2QsR+JpRB4AeQ26AkIRX38qTg== -"@sentry/types@6.19.6": - version "6.19.6" - resolved "https://registry.npmjs.org/@sentry/types/-/types-6.19.6.tgz" - integrity sha512-QH34LMJidEUPZK78l+Frt3AaVFJhEmIi05Zf8WHd9/iTt+OqvCHBgq49DDr1FWFqyYWm/QgW/3bIoikFpfsXyQ== +"@sentry/types@6.19.7": + version "6.19.7" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.19.7.tgz#c6b337912e588083fc2896eb012526cf7cfec7c7" + integrity sha512-jH84pDYE+hHIbVnab3Hr+ZXr1v8QABfhx39KknxqKWr2l0oEItzepV0URvbEhB446lk/S/59230dlUUIBGsXbg== "@sentry/utils@6.19.2": version "6.19.2" - resolved "https://registry.npmjs.org/@sentry/utils/-/utils-6.19.2.tgz" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.19.2.tgz#995efb896c5159369509f4896c27a2d2ea9191f2" integrity sha512-2DQQ2OJaxjtyxGq5FmMlqb6hptsqMs2xoBiVRMkTS/rvyTrk1oQdKZ8ePwjtgX3nJ728ni3IXIyXV+vfGp4EBw== dependencies: "@sentry/types" "6.19.2" tslib "^1.9.3" -"@sentry/utils@6.19.6": - version "6.19.6" - resolved "https://registry.npmjs.org/@sentry/utils/-/utils-6.19.6.tgz" - integrity sha512-fAMWcsguL0632eWrROp/vhPgI7sBj/JROWVPzpabwVkm9z3m1rQm6iLFn4qfkZL8Ozy6NVZPXOQ7EXmeU24byg== +"@sentry/utils@6.19.7": + version "6.19.7" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.19.7.tgz#6edd739f8185fd71afe49cbe351c1bbf5e7b7c79" + integrity sha512-z95ECmE3i9pbWoXQrD/7PgkBAzJYR+iXtPuTkpBjDKs86O3mT+PXOT3BAn79w2wkn7/i3vOGD2xVr1uiMl26dA== dependencies: - "@sentry/types" "6.19.6" + "@sentry/types" "6.19.7" tslib "^1.9.3" "@sindresorhus/is@^0.14.0": version "0.14.0" - resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== "@sindresorhus/is@^4.0.0": version "4.6.0" - resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz" + 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" - resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== dependencies: defer-to-connect "^1.0.1" "@szmarczak/http-timer@^4.0.5": version "4.0.6" - resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== dependencies: defer-to-connect "^2.0.0" "@tokenizer/token@^0.3.0": version "0.3.0" - resolved "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz" + resolved "https://registry.yarnpkg.com/@tokenizer/token/-/token-0.3.0.tgz#fe98a93fe789247e998c75e74e9c7c63217aa276" integrity sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A== "@tootallnate/once@2": version "2.0.0" - resolved "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== "@types/adm-zip@^0.5.0": @@ -1210,7 +1539,7 @@ "@types/body-parser@*": version "1.19.2" - resolved "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== dependencies: "@types/connect" "*" @@ -1218,7 +1547,7 @@ "@types/cacheable-request@^6.0.1": version "6.0.2" - resolved "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz" + resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.2.tgz#c324da0197de0a98a2312156536ae262429ff6b9" integrity sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA== dependencies: "@types/http-cache-semantics" "*" @@ -1228,47 +1557,47 @@ "@types/connect@*": version "3.4.35" - resolved "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== dependencies: "@types/node" "*" "@types/debug@^4.1.6": version "4.1.7" - resolved "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.7.tgz#7cc0ea761509124709b8b2d1090d8f6c17aadb82" integrity sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg== dependencies: "@types/ms" "*" -"@types/discord-rpc@4.0.2": - version "4.0.2" - resolved "https://registry.npmjs.org/@types/discord-rpc/-/discord-rpc-4.0.2.tgz" - integrity sha512-0cmpmTvq4vR6UrYDV4Lb+D/NySNYAvCmRvKSN6YUwy+Jy7gTZ+dQpGG2E2kT8dqE8SwMDGWyLp71c0C5qRbtXA== +"@types/discord-rpc@4.0.3", "@types/discord-rpc@^4.0.2": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/discord-rpc/-/discord-rpc-4.0.3.tgz#3ff5bf9d406841e3744575df0a9e967f52df1ccb" + integrity sha512-4Kh+8u1+OXRHD5OHET3zbBInDkx3cMLaj8Qif8JQbgHZjiru2IYf/WHhuYdzjgtJ/J0CuImOpvt98+Bhe/lr1g== "@types/eslint-scope@^3.7.3": version "3.7.3" - resolved "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.3.tgz#125b88504b61e3c8bc6f870882003253005c3224" integrity sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g== dependencies: "@types/eslint" "*" "@types/estree" "*" "@types/eslint@*": - version "8.4.1" - resolved "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.1.tgz" - integrity sha512-GE44+DNEyxxh2Kc6ro/VkIj+9ma0pO0bwv9+uHSyBrikYOHr8zYcdPvnBOp1aw8s+CjRvuSx7CyWqRrNFQ59mA== + version "8.4.3" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.3.tgz#5c92815a3838b1985c90034cd85f26f59d9d0ece" + integrity sha512-YP1S7YJRMPs+7KZKDb9G63n8YejIwW9BALq7a5j2+H4yl6iOv9CB29edho+cuFRrvmJbbaH2yiVChKLJVysDGw== dependencies: "@types/estree" "*" "@types/json-schema" "*" "@types/estree@*", "@types/estree@^0.0.51": version "0.0.51" - resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz" + 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" - resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz#c47def9f34ec81dc6328d0b1b5303d1ec98d86b8" integrity sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig== dependencies: "@types/node" "*" @@ -1277,7 +1606,7 @@ "@types/express@^4.17.13": version "4.17.13" - resolved "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034" integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA== dependencies: "@types/body-parser" "*" @@ -1287,14 +1616,14 @@ "@types/fs-extra@^9.0.11": version "9.0.13" - resolved "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz" + resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.13.tgz#7594fbae04fe7f1918ce8b3d213f74ff44ac1f45" integrity sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA== dependencies: "@types/node" "*" "@types/glob@^7.1.1": version "7.2.0" - resolved "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== dependencies: "@types/minimatch" "*" @@ -1302,60 +1631,65 @@ "@types/html-minifier-terser@^5.0.0": version "5.1.2" - resolved "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz#693b316ad323ea97eed6b38ed1a3cc02b1672b57" integrity sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w== "@types/http-cache-semantics@*": version "4.0.1" - resolved "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== "@types/json-buffer@~3.0.0": version "3.0.0" - resolved "https://registry.npmjs.org/@types/json-buffer/-/json-buffer-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/@types/json-buffer/-/json-buffer-3.0.0.tgz#85c1ff0f0948fc159810d4b5be35bf8c20875f64" integrity sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ== "@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8": version "7.0.11" - resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== "@types/keyv@*": version "3.1.4" - resolved "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz" + resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6" integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg== dependencies: "@types/node" "*" "@types/long@^4.0.1": - version "4.0.1" - resolved "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz" - integrity sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w== + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" + integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== "@types/mime@^1": version "1.3.2" - resolved "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== "@types/minimatch@*": version "3.0.5" - resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/ms@*": version "0.7.31" - resolved "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== "@types/node@*", "@types/node@>=13.7.0": - version "17.0.25" - resolved "https://registry.npmjs.org/@types/node/-/node-17.0.25.tgz" - integrity sha512-wANk6fBrUwdpY4isjWrKTufkrXdu1D2YHCot2fD/DfWxF5sMrVSA+KN7ydckvaTCh0HiqX9IVl0L5/ZoXg5M7w== + version "17.0.42" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.42.tgz#d7e8f22700efc94d125103075c074396b5f41f9b" + integrity sha512-Q5BPGyGKcvQgAMbsr7qEGN/kIPN6zZecYYABeTDBizOsau+2NMdSVTar9UQw21A2+JyA2KRNDYaYrPB0Rpk2oQ== + +"@types/node@16.9.1": + version "16.9.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.9.1.tgz#0611b37db4246c937feef529ddcc018cf8e35708" + integrity sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g== "@types/node@^16.11.26": - version "16.11.27" - resolved "https://registry.npmjs.org/@types/node/-/node-16.11.27.tgz" - integrity sha512-C1pD3kgLoZ56Uuy5lhfOxie4aZlA3UMGLX9rXteq4WitEZH6Rl80mwactt9QG0w0gLFlN/kLBTFnGXtDVWvWQw== + version "16.11.39" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.39.tgz#07223cd2bc332ad9d92135e3a522eebdee3b060e" + integrity sha512-K0MsdV42vPwm9L6UwhIxMAOmcvH/1OoVkZyCgEtVu4Wx7sElGloy/W7kMBNe/oJ7V/jW9BVt1F6RahH6e7tPXw== "@types/plist@^3.0.1": version "3.0.2" @@ -1367,34 +1701,34 @@ "@types/qrcode-terminal@^0.12.0": version "0.12.0" - resolved "https://registry.npmjs.org/@types/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz" + resolved "https://registry.yarnpkg.com/@types/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz#cee13a96db9346e3240e2128290465db56799961" integrity sha512-g0fQKl3IVnUePV8tLkiBTduxAVSZsXts444T2aMfjOEGxd7XoeSIs16/AmRe2NlcJLqbvsOBSXov7dKSo4wigA== "@types/qs@*": version "6.9.7" - resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== "@types/range-parser@*": version "1.2.4" - resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== "@types/responselike@*", "@types/responselike@^1.0.0": version "1.0.0" - resolved "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== dependencies: "@types/node" "*" "@types/semver@^7.3.6": version "7.3.9" - resolved "https://registry.npmjs.org/@types/semver/-/semver-7.3.9.tgz" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.9.tgz#152c6c20a7688c30b967ec1841d31ace569863fc" integrity sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ== "@types/serve-static@*": version "1.13.10" - resolved "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.10.tgz#f5e0ce8797d2d7cc5ebeda48a52c96c4fa47a8d9" integrity sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ== dependencies: "@types/mime" "^1" @@ -1402,18 +1736,18 @@ "@types/source-list-map@*": version "0.1.2" - resolved "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz" + resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== "@types/tapable@^1", "@types/tapable@^1.0.5": version "1.0.8" - resolved "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.8.tgz" + resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.8.tgz#b94a4391c85666c7b73299fd3ad79d4faa435310" integrity sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ== "@types/uglify-js@*": - version "3.13.2" - resolved "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.13.2.tgz" - integrity sha512-/xFrPIo+4zOeNGtVMbf9rUm0N+i4pDf1ynExomqtokIJmVzR3962lJ1UE+MmexMkA0cmN9oTzg5Xcbwge0Ij2Q== + version "3.16.0" + resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.16.0.tgz#2cf74a0e6ebb6cd54c0d48e509d5bd91160a9602" + integrity sha512-0yeUr92L3r0GLRnBOvtYK1v2SjqMIqQDHMl7GLb+l2L8+6LSFWEEWEIgVsPdMn5ImLM8qzWT8xFPtQYpp8co0g== dependencies: source-map "^0.6.1" @@ -1423,13 +1757,13 @@ integrity sha512-9UjMCHK5GPgQRoNbqdLIAvAy0EInuiqbW0PBMtVP6B5B2HQJlvoJHM+KodPZMEjOa5VkSc+5LH7xy+cUzQdmHw== "@types/webpack-env@^1.15.1": - version "1.16.4" - resolved "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.16.4.tgz" - integrity sha512-llS8qveOUX3wxHnSykP5hlYFFuMfJ9p5JvIyCiBgp7WTfl6K5ZcyHj8r8JsN/J6QODkAsRRCLIcTuOCu8etkUw== + version "1.17.0" + resolved "https://registry.yarnpkg.com/@types/webpack-env/-/webpack-env-1.17.0.tgz#f99ce359f1bfd87da90cc4a57cab0a18f34a48d0" + integrity sha512-eHSaNYEyxRA5IAG0Ym/yCyf86niZUIF/TpWKofQI/CVfh5HsMEUyfE2kwFxha4ow0s5g0LfISQxpDKjbRDrizw== "@types/webpack-sources@*": version "3.2.0" - resolved "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-3.2.0.tgz" + resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-3.2.0.tgz#16d759ba096c289034b26553d2df1bf45248d38b" integrity sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg== dependencies: "@types/node" "*" @@ -1438,7 +1772,7 @@ "@types/webpack@^4.41.8": version "4.41.32" - resolved "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.32.tgz" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.32.tgz#a7bab03b72904070162b2f169415492209e94212" integrity sha512-cb+0ioil/7oz5//7tZUSwbrSAN/NWHrQylz5cW8G0dWTcF/g+/dSdMlKVZspBYuMAN1+WnwHrkxiRrLcwd0Heg== dependencies: "@types/node" "*" @@ -1450,26 +1784,26 @@ "@types/ws@^8.5.3": version "8.5.3" - resolved "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.3.tgz#7d25a1ffbecd3c4f2d35068d0b283c037003274d" integrity sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w== dependencies: "@types/node" "*" "@types/yargs-parser@*": version "21.0.0" - resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== "@types/yargs@^17.0.1": version "17.0.10" - resolved "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.10.tgz" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.10.tgz#591522fce85d8739bca7b8bb90d048e4478d186a" integrity sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA== dependencies: "@types/yargs-parser" "*" "@webassemblyjs/ast@1.11.1": version "1.11.1" - resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== dependencies: "@webassemblyjs/helper-numbers" "1.11.1" @@ -1477,22 +1811,22 @@ "@webassemblyjs/floating-point-hex-parser@1.11.1": version "1.11.1" - resolved "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f" integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== "@webassemblyjs/helper-api-error@1.11.1": version "1.11.1" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16" integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== "@webassemblyjs/helper-buffer@1.11.1": version "1.11.1" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5" integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== "@webassemblyjs/helper-numbers@1.11.1": version "1.11.1" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae" integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ== dependencies: "@webassemblyjs/floating-point-hex-parser" "1.11.1" @@ -1501,12 +1835,12 @@ "@webassemblyjs/helper-wasm-bytecode@1.11.1": version "1.11.1" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1" integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== "@webassemblyjs/helper-wasm-section@1.11.1": version "1.11.1" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a" integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== dependencies: "@webassemblyjs/ast" "1.11.1" @@ -1516,26 +1850,26 @@ "@webassemblyjs/ieee754@1.11.1": version "1.11.1" - resolved "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614" integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== dependencies: "@xtuc/ieee754" "^1.2.0" "@webassemblyjs/leb128@1.11.1": version "1.11.1" - resolved "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5" integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== dependencies: "@xtuc/long" "4.2.2" "@webassemblyjs/utf8@1.11.1": version "1.11.1" - resolved "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff" integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== "@webassemblyjs/wasm-edit@1.11.1": version "1.11.1" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6" integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== dependencies: "@webassemblyjs/ast" "1.11.1" @@ -1549,7 +1883,7 @@ "@webassemblyjs/wasm-gen@1.11.1": version "1.11.1" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76" integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== dependencies: "@webassemblyjs/ast" "1.11.1" @@ -1560,7 +1894,7 @@ "@webassemblyjs/wasm-opt@1.11.1": version "1.11.1" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2" integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== dependencies: "@webassemblyjs/ast" "1.11.1" @@ -1570,7 +1904,7 @@ "@webassemblyjs/wasm-parser@1.11.1": version "1.11.1" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199" integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== dependencies: "@webassemblyjs/ast" "1.11.1" @@ -1582,7 +1916,7 @@ "@webassemblyjs/wast-printer@1.11.1": version "1.11.1" - resolved "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0" integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== dependencies: "@webassemblyjs/ast" "1.11.1" @@ -1590,22 +1924,22 @@ "@xtuc/ieee754@^1.2.0": version "1.2.0" - resolved "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== "@xtuc/long@4.2.2": version "4.2.2" - resolved "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== abbrev@1: version "1.1.1" - resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== abstract-socket@^2.0.0: version "2.1.1" - resolved "https://registry.npmjs.org/abstract-socket/-/abstract-socket-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/abstract-socket/-/abstract-socket-2.1.1.tgz#243a7e6e6ff65bb9eab16a22fa90699b91e528f7" integrity sha512-YZJizsvS1aBua5Gd01woe4zuyYBGgSMeqDOB6/ChwdTI904KP6QGtJswXl4hcqWxbz86hQBe++HWV0hF1aGUtA== dependencies: bindings "^1.2.1" @@ -1613,7 +1947,7 @@ abstract-socket@^2.0.0: accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: version "1.3.8" - resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== dependencies: mime-types "~2.1.34" @@ -1621,13 +1955,13 @@ accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: acorn-import-assertions@^1.7.6: version "1.8.0" - resolved "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz" + 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.5.0: - version "8.7.0" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz" - integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== + version "8.7.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30" + integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== adm-zip@0.4.10: version "0.4.10" @@ -1636,14 +1970,14 @@ adm-zip@0.4.10: agent-base@6, agent-base@^6.0.2: version "6.0.2" - resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== dependencies: debug "4" agentkeepalive@^4.2.1: version "4.2.1" - resolved "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.2.1.tgz#a7975cbb9f83b367f06c90cc51ff28fe7d499717" integrity sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA== dependencies: debug "^4.1.0" @@ -1652,32 +1986,49 @@ agentkeepalive@^4.2.1: aggregate-error@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== dependencies: clean-stack "^2.0.0" indent-string "^4.0.0" +"airtunes2@git+https://github.com/ciderapp/node_airtunes2": + version "2.2.1" + resolved "git+https://github.com/ciderapp/node_airtunes2#8f367df5d7900a8c26dcd403854228ab5722efdb" + dependencies: + async "^3.2.1" + axlsign "git+https://github.com/wavesplatform/curve25519-js.git" + big-integer "^1.6.25" + crypto-js "^4.1.1" + elliptic "^6.4.0" + js-crypto-aes "^1.0.4" + js-sha1 "^0.4.1" + lodash "^4.17.4" + parse-raw-http "0.0.1" + prebuild-install "^7.1.0" + simple-plist "^1.3.1" + yargs "^9.0.1" + ajv-errors@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== ajv-formats@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== dependencies: ajv "^8.0.0" ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: version "3.5.2" - resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.1, ajv@^6.12.0, ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: fast-deep-equal "^3.1.1" @@ -1687,7 +2038,7 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.1, ajv@^6.12.0, ajv@^6.12.4, ajv@^6.12.5: ajv@^8.0.0, ajv@^8.6.3: version "8.11.0" - resolved "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== dependencies: fast-deep-equal "^3.1.1" @@ -1697,53 +2048,63 @@ ajv@^8.0.0, ajv@^8.6.3: ansi-align@^3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== dependencies: string-width "^4.1.0" ansi-colors@^3.0.0: version "3.2.4" - resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== ansi-html-community@0.0.8: version "0.0.8" - resolved "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz" + resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== ansi-regex@^2.0.0: version "2.1.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== + +ansi-regex@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" + integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== ansi-regex@^4.1.0: version "4.1.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== ansi-regex@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" +any-base@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/any-base/-/any-base-1.1.0.tgz#ae101a62bc08a597b4c9ab5b7089d456630549fe" + integrity sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg== + anymatch@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== dependencies: micromatch "^3.1.4" @@ -1751,7 +2112,7 @@ anymatch@^2.0.0: anymatch@^3.0.0, anymatch@~3.1.2: version "3.1.2" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== dependencies: normalize-path "^3.0.0" @@ -1759,12 +2120,12 @@ anymatch@^3.0.0, anymatch@~3.1.2: app-builder-bin@4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-4.0.0.tgz#1df8e654bd1395e4a319d82545c98667d7eed2f0" integrity sha512-xwdG0FJPQMe0M0UA4Tz0zEB8rBJTRA5a476ZawAqiBkMv16GRK5xpXThOjMaEOFnZ6zabejjG4J3da0SXG63KA== app-builder-lib@23.0.3: version "23.0.3" - resolved "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-23.0.3.tgz" + resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-23.0.3.tgz#44c90237abdc4ad9b34a24658bee022828ad6205" integrity sha512-1qrtXYHXJfXhzJnMtVGjIva3067F1qYQubl2oBjI61gCBoCHvhghdYJ57XxXTQQ0VxnUhg1/Iaez87uXp8mD8w== dependencies: "7zip-bin" "~5.1.1" @@ -1795,17 +2156,17 @@ app-builder-lib@23.0.3: "aproba@^1.0.3 || ^2.0.0": version "2.0.0" - resolved "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== aproba@^1.1.1: version "1.2.0" - resolved "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== are-we-there-yet@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz" + 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" @@ -1813,61 +2174,72 @@ are-we-there-yet@^3.0.0: argparse@^1.0.7: version "1.0.10" - resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== dependencies: sprintf-js "~1.0.2" argparse@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== arr-diff@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA== arr-flatten@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== arr-union@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q== array-flatten@1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== array-flatten@^2.1.0: version "2.1.2" - resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== array-union@^1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz" - integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + integrity sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng== dependencies: array-uniq "^1.0.1" array-uniq@^1.0.1: version "1.0.3" - resolved "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz" - integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== array-unique@^0.3.2: version "0.3.2" - resolved "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ== + +array.prototype.reduce@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.4.tgz#8167e80089f78bff70a99e20bd4201d4663b0a6f" + integrity sha512-WnM+AjG/DvLRLo4DDl+r+SvCzYtD2Jd9oeBYMcEaI7t3fFrHY9M53/wdLcTvmZNQ70IU6Htj0emFkZ5TS+lrdw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.2" + es-array-method-boxes-properly "^1.0.0" + is-string "^1.0.7" asar@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/asar/-/asar-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/asar/-/asar-3.1.0.tgz#70b0509449fe3daccc63beb4d3c7d2e24d3c6473" integrity sha512-vyxPxP5arcAqN4F/ebHd/HhwnAiZtwhglvdmc7BR2f0ywbVNTOpSeyhLDbGXtE/y58hv1oC75TaNIXutnsOZsQ== dependencies: chromium-pickle-js "^0.2.0" @@ -1880,12 +2252,12 @@ asar@^3.1.0: assert-plus@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== assign-symbols@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw== astral-regex@^2.0.0: version "2.0.0" @@ -1894,55 +2266,59 @@ astral-regex@^2.0.0: async-each@^1.0.1: version "1.0.3" - resolved "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== async-exit-hook@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/async-exit-hook/-/async-exit-hook-2.0.1.tgz#8bd8b024b0ec9b1c01cccb9af9db29bd717dfaf3" integrity sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw== async-limiter@~1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== -async@0.9.x: - version "0.9.2" - resolved "https://registry.npmjs.org/async/-/async-0.9.2.tgz" - integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0= - async@^2.6.0, async@^2.6.2: version "2.6.4" - resolved "https://registry.npmjs.org/async/-/async-2.6.4.tgz" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== dependencies: lodash "^4.17.14" +async@^3.2.1, async@^3.2.3: + version "3.2.4" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" + integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== + asynckit@^0.4.0: version "0.4.0" - resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== at-least-node@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== atob@^2.1.2: version "2.1.2" - resolved "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== atomically@^1.7.0: version "1.7.0" - resolved "https://registry.npmjs.org/atomically/-/atomically-1.7.0.tgz" + resolved "https://registry.yarnpkg.com/atomically/-/atomically-1.7.0.tgz#c07a0458432ea6dbc9a3506fffa424b48bccaafe" integrity sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w== +"axlsign@git+https://github.com/wavesplatform/curve25519-js.git": + version "1.0.0" + resolved "git+https://github.com/wavesplatform/curve25519-js.git#cae68782564b83ffa1c7c757e40a3944cb140290" + babel-loader@^8.1.0: - version "8.2.4" - resolved "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.4.tgz" - integrity sha512-8dytA3gcvPPPv4Grjhnt8b5IIiTcq/zeXOPk4iTYI0SVXcsmuGg7JtBRDp8S9X+gJfhQ8ektjXZlDu1Bb33U8A== + version "8.2.5" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.5.tgz#d45f585e654d5a5d90f5350a779d7647c5ed512e" + integrity sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ== dependencies: find-cache-dir "^3.3.1" loader-utils "^2.0.0" @@ -1951,21 +2327,21 @@ babel-loader@^8.1.0: babel-plugin-component@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/babel-plugin-component/-/babel-plugin-component-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/babel-plugin-component/-/babel-plugin-component-1.1.1.tgz#9b023a23ff5c9aae0fd56c5a18b9cab8c4d45eea" integrity sha512-WUw887kJf2GH80Ng/ZMctKZ511iamHNqPhd9uKo14yzisvV7Wt1EckIrb8oq/uCz3B3PpAW7Xfl7AkTLDYT6ag== dependencies: "@babel/helper-module-imports" "7.0.0-beta.35" babel-plugin-dynamic-import-node@^2.3.3: version "2.3.3" - resolved "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== dependencies: object.assign "^4.1.0" babel-plugin-polyfill-corejs2@^0.3.0: version "0.3.1" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz#440f1b70ccfaabc6b676d196239b138f8a2cfba5" integrity sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w== dependencies: "@babel/compat-data" "^7.13.11" @@ -1974,7 +2350,7 @@ babel-plugin-polyfill-corejs2@^0.3.0: babel-plugin-polyfill-corejs3@^0.5.0: version "0.5.2" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz#aabe4b2fa04a6e038b688c5e55d44e78cd3a5f72" integrity sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ== dependencies: "@babel/helper-define-polyfill-provider" "^0.3.1" @@ -1982,24 +2358,24 @@ babel-plugin-polyfill-corejs3@^0.5.0: babel-plugin-polyfill-regenerator@^0.3.0: version "0.3.1" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz#2c0678ea47c75c8cc2fbb1852278d8fb68233990" integrity sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A== dependencies: "@babel/helper-define-polyfill-provider" "^0.3.1" balanced-match@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== base64-js@^1.3.1, base64-js@^1.5.1: version "1.5.1" - resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== base@^0.11.1: version "0.11.2" - resolved "https://registry.npmjs.org/base/-/base-0.11.2.tgz" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== dependencies: cache-base "^1.0.1" @@ -2012,63 +2388,89 @@ base@^0.11.1: batch@0.6.1: version "0.6.1" - resolved "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz" - integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== + +big-integer@1.6.x, big-integer@^1.6.25: + version "1.6.51" + resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" + integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== big.js@^5.2.2: version "5.2.2" - resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== binary-extensions@^1.0.0: version "1.13.1" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz" + 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.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" + 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: +bindings@^1.2.1, bindings@^1.5.0: version "1.5.0" - resolved "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== dependencies: file-uri-to-path "1.0.0" +bl@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + bluebird-lst@^1.0.9: version "1.0.9" - resolved "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.9.tgz" + resolved "https://registry.yarnpkg.com/bluebird-lst/-/bluebird-lst-1.0.9.tgz#a64a0e4365658b9ab5fe875eb9dfb694189bb41c" integrity sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw== dependencies: bluebird "^3.5.5" bluebird@^3.5.0, bluebird@^3.5.1, bluebird@^3.5.5, bluebird@^3.7.2: version "3.7.2" - resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== -body-parser@1.19.2: - version "1.19.2" - resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz" - integrity sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw== +bmp-js@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/bmp-js/-/bmp-js-0.1.0.tgz#e05a63f796a6c1ff25f4771ec7adadc148c07233" + integrity sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw== + +bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== + +body-parser@1.20.0: + version "1.20.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.0.tgz#3de69bd89011c11573d7bfee6a64f11b6bd27cc5" + integrity sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg== dependencies: bytes "3.1.2" content-type "~1.0.4" debug "2.6.9" - depd "~1.1.2" - http-errors "1.8.1" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" iconv-lite "0.4.24" - on-finished "~2.3.0" - qs "6.9.7" - raw-body "2.4.3" + on-finished "2.4.1" + qs "6.10.3" + raw-body "2.5.1" type-is "~1.6.18" + unpipe "1.0.0" bonjour@^3.5.0: version "3.5.0" - resolved "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz" - integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= + resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" + integrity sha512-RaVTblr+OnEli0r/ud8InrU7D+G0y6aJhlxaLa6Pwty4+xoxboF1BsUI45tujvRpbj9dQVoglChqonGAsjEBYg== dependencies: array-flatten "^2.1.0" deep-equal "^1.0.1" @@ -2079,17 +2481,17 @@ bonjour@^3.5.0: boolbase@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" - integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== boolean@^3.0.1: version "3.2.0" - resolved "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz" + 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" - resolved "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.1.2.tgz#788cb686fc83c1f486dfa8a40c68fc2b831d2b50" integrity sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ== dependencies: ansi-align "^3.0.0" @@ -2101,17 +2503,38 @@ boxen@^5.0.0: widest-line "^3.1.0" wrap-ansi "^7.0.0" +bplist-creator@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/bplist-creator/-/bplist-creator-0.1.0.tgz#018a2d1b587f769e379ef5519103730f8963ba1e" + integrity sha512-sXaHZicyEEmY86WyueLTQesbeoH/mquvarJaQNbjuOQO+7gbFcDEWqKmcWA4cOTLzFlfgvkiVxolk1k5bBIpmg== + dependencies: + stream-buffers "2.2.x" + +bplist-parser@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.3.1.tgz#e1c90b2ca2a9f9474cc72f6862bbf3fee8341fd1" + integrity sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA== + dependencies: + big-integer "1.6.x" + brace-expansion@^1.1.7: version "1.1.11" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + braces@^2.3.1, braces@^2.3.2: version "2.3.2" - resolved "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== dependencies: arr-flatten "^1.1.0" @@ -2127,30 +2550,35 @@ braces@^2.3.1, braces@^2.3.2: braces@~3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: fill-range "^7.0.1" -browserslist@^4.14.5, browserslist@^4.17.5, browserslist@^4.20.2: - version "4.20.2" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz" - integrity sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA== +brorand@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== + +browserslist@^4.14.5, browserslist@^4.20.2, browserslist@^4.20.3: + version "4.20.4" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.4.tgz#98096c9042af689ee1e0271333dbc564b8ce4477" + integrity sha512-ok1d+1WpnU24XYN7oC3QWgTyMhY/avPJ/r9T00xxvUOIparA/gc+UPUMaod3i+G6s+nI2nUb9xZ5k794uIwShw== dependencies: - caniuse-lite "^1.0.30001317" - electron-to-chromium "^1.4.84" + caniuse-lite "^1.0.30001349" + electron-to-chromium "^1.4.147" escalade "^3.1.1" - node-releases "^2.0.2" + node-releases "^2.0.5" picocolors "^1.0.0" buffer-alloc-unsafe@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== buffer-alloc@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== dependencies: buffer-alloc-unsafe "^1.1.0" @@ -2158,30 +2586,35 @@ buffer-alloc@^1.2.0: buffer-crc32@~0.2.3: version "0.2.13" - resolved "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz" - integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== + +buffer-equal@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz#91bc74b11ea405bc916bc6aa908faafa5b4aac4b" + integrity sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA== buffer-equal@1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz" - integrity sha1-WWFrSYME1Var1GaWayLu2j7KX74= + resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.0.tgz#59616b498304d556abd466966b22eeda3eca5fbe" + integrity sha512-tcBWO2Dl4e7Asr9hTGcpVrCe+F7DubpmqWCTbj4FHLmjqO2hIaC383acQubWtRJhdceqs5uBHs6Es+Sk//RKiQ== buffer-fill@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz" - integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= + resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" + integrity sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ== buffer-from@^1.0.0: version "1.1.2" - resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== buffer-indexof@^1.0.0: version "1.1.1" - resolved "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== -buffer@^5.1.0: +buffer@^5.1.0, buffer@^5.2.0, buffer@^5.5.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== @@ -2191,7 +2624,7 @@ buffer@^5.1.0: builder-util-runtime@9.0.0: version "9.0.0" - resolved "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.0.0.tgz" + resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-9.0.0.tgz#3a40ba7382712ccdb24471567f91d7c167e00830" integrity sha512-SkpEtSmTkREDHRJnxKEv43aAYp8sYWY8fxYBhGLBLOBIRXeaIp6Kv3lBgSD7uR8jQtC7CA659sqJrpSV6zNvSA== dependencies: debug "^4.3.2" @@ -2199,7 +2632,7 @@ builder-util-runtime@9.0.0: builder-util@23.0.2: version "23.0.2" - resolved "https://registry.npmjs.org/builder-util/-/builder-util-23.0.2.tgz" + resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-23.0.2.tgz#da84a971076397e3a671726f4bb96f0c2214fea7" integrity sha512-HaNHL3axNW/Ms8O1mDx3I07G+ZnZ/TKSWWvorOAPau128cdt9S+lNx5ocbx8deSaHHX4WFXSZVHh3mxlaKJNgg== dependencies: "7zip-bin" "~5.1.1" @@ -2222,17 +2655,17 @@ builder-util@23.0.2: bytes@3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz" - integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== bytes@3.1.2: version "3.1.2" - resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== cacache@^13.0.1: version "13.0.1" - resolved "https://registry.npmjs.org/cacache/-/cacache-13.0.1.tgz" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-13.0.1.tgz#a8000c21697089082f85287a1aec6e382024a71c" integrity sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w== dependencies: chownr "^1.1.2" @@ -2254,16 +2687,16 @@ cacache@^13.0.1: ssri "^7.0.0" unique-filename "^1.1.1" -cacache@^16.0.2: - version "16.0.4" - resolved "https://registry.npmjs.org/cacache/-/cacache-16.0.4.tgz" - integrity sha512-U0D4wF3/W8ZgK4qDA5fTtOVSr0gaDfd5aa7tUdAV0uukVWKsAIn6SzXQCoVlg7RWZiJa+bcsM3/pXLumGaL2Ug== +cacache@^16.1.0: + version "16.1.1" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-16.1.1.tgz#4e79fb91d3efffe0630d5ad32db55cc1b870669c" + integrity sha512-VDKN+LHyCQXaaYZ7rA/qtkURU+/yYhviUdvqEv2LT6QPZU8jpyzEkEVAcKlKLt5dJ5BRp11ym8lo3NKLluEPLg== dependencies: "@npmcli/fs" "^2.1.0" "@npmcli/move-file" "^2.0.0" chownr "^2.0.0" fs-minipass "^2.1.0" - glob "^7.2.0" + glob "^8.0.1" infer-owner "^1.0.4" lru-cache "^7.7.1" minipass "^3.1.6" @@ -2280,7 +2713,7 @@ cacache@^16.0.2: cache-base@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== dependencies: collection-visit "^1.0.0" @@ -2295,12 +2728,12 @@ cache-base@^1.0.1: cacheable-lookup@^5.0.3: version "5.0.4" - resolved "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== cacheable-request@^6.0.0: version "6.1.0" - resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== dependencies: clone-response "^1.0.2" @@ -2313,7 +2746,7 @@ cacheable-request@^6.0.0: cacheable-request@^7.0.2: version "7.0.2" - resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.2.tgz#ea0d0b889364a25854757301ca12b2da77f91d27" integrity sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew== dependencies: clone-response "^1.0.2" @@ -2326,7 +2759,7 @@ cacheable-request@^7.0.2: call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== dependencies: function-bind "^1.1.1" @@ -2334,38 +2767,43 @@ call-bind@^1.0.0, call-bind@^1.0.2: camel-case@^4.1.1: version "4.1.2" - resolved "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== dependencies: pascal-case "^3.1.2" tslib "^2.0.3" +camelcase@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + integrity sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw== + camelcase@^5.0.0, camelcase@^5.3.1: version "5.3.1" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== camelcase@^6.2.0: version "6.3.0" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001317: - version "1.0.30001332" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz" - integrity sha512-10T30NYOEQtN6C11YGg411yebhvpnC6Z102+B95eAsN0oB6KUs01ivE8u+G6FMIRtIrVlYXhL+LUwQ3/hXwDWw== +caniuse-lite@^1.0.30001349: + version "1.0.30001352" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001352.tgz#cc6f5da3f983979ad1e2cdbae0505dccaa7c6a12" + integrity sha512-GUgH8w6YergqPQDGWhJGt8GDRnY0L/iJVQcU3eJ46GYf52R8tk0Wxp0PymuFVZboJYXGiCqwozAYZNRjVj6IcA== castv2-client@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/castv2-client/-/castv2-client-1.2.0.tgz" - integrity sha1-qRk7GlRIuMuaBBW9AhyIEe17BUQ= + resolved "https://registry.yarnpkg.com/castv2-client/-/castv2-client-1.2.0.tgz#a9193b1a5448b8cb9a0415bd021c8811ed7b0544" + integrity sha512-2diOsC0vSSxa3QEOgoGBy9fZRHzNXatHz464Kje2OpwQ7GM5vulyrD0gLFOQ1P4rgLAFsYiSGQl4gK402nEEuA== dependencies: castv2 "~0.1.4" debug "^2.2.0" castv2@~0.1.4: version "0.1.10" - resolved "https://registry.npmjs.org/castv2/-/castv2-0.1.10.tgz" + resolved "https://registry.yarnpkg.com/castv2/-/castv2-0.1.10.tgz#d3df00124f1ba8a97691c69dd44221d3b5f93c56" integrity sha512-3QWevHrjT22KdF08Y2a217IYCDQDP7vEJaY4n0lPBeC5UBYbMFMadDfVTsaQwq7wqsEgYUHElPGm3EO1ey+TNw== dependencies: debug "^4.1.1" @@ -2373,7 +2811,7 @@ castv2@~0.1.4: chalk@^2.0.0, chalk@^2.4.2: version "2.4.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== dependencies: ansi-styles "^3.2.1" @@ -2382,7 +2820,7 @@ chalk@^2.0.0, chalk@^2.4.2: chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1: version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" @@ -2390,7 +2828,7 @@ chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1: chokidar@^2.1.8: version "2.1.8" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== dependencies: anymatch "^2.0.0" @@ -2409,7 +2847,7 @@ chokidar@^2.1.8: chokidar@^3.5.3: version "3.5.3" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== dependencies: anymatch "~3.1.2" @@ -2422,39 +2860,39 @@ chokidar@^3.5.3: optionalDependencies: fsevents "~2.3.2" -chownr@^1.1.2: +chownr@^1.1.1, chownr@^1.1.2: version "1.1.4" - resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== chownr@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== chrome-trace-event@^1.0.2: version "1.0.3" - resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== chromium-pickle-js@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz" - integrity sha1-BKEGZywYsIWrd02YPfo+oTjyIgU= + resolved "https://registry.yarnpkg.com/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz#04a106672c18b085ab774d983dfa3ea138f22205" + integrity sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw== ci-info@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== ci-info@^3.2.0: - version "3.3.0" - resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz" - integrity sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw== + version "3.3.1" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.1.tgz#58331f6f472a25fe3a50a351ae3052936c2c7f32" + integrity sha512-SXgeMX9VwDe7iFFaEWkA5AstuER9YKqy4EhHqr4DVqkwmD9rpVimkMKWHdjn30Ja45txyjhSn63lVX69eVCckg== class-utils@^0.3.5: version "0.3.6" - resolved "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== dependencies: arr-union "^3.1.0" @@ -2464,19 +2902,19 @@ class-utils@^0.3.5: clean-css@^4.2.3: version "4.2.4" - resolved "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.4.tgz#733bf46eba4e607c6891ea57c24a989356831178" integrity sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A== dependencies: source-map "~0.6.0" clean-stack@^2.0.0: version "2.2.0" - resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== cli-boxes@^2.2.1: version "2.2.1" - resolved "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== cli-truncate@^2.1.0: @@ -2487,9 +2925,18 @@ cli-truncate@^2.1.0: slice-ansi "^3.0.0" string-width "^4.2.0" +cliui@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + integrity sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w== + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi "^2.0.0" + cliui@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== dependencies: string-width "^3.1.0" @@ -2498,7 +2945,7 @@ cliui@^5.0.0: cliui@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== dependencies: string-width "^4.2.0" @@ -2507,7 +2954,7 @@ cliui@^6.0.0: cliui@^7.0.2: version "7.0.4" - resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== dependencies: string-width "^4.2.0" @@ -2516,115 +2963,120 @@ cliui@^7.0.2: clone-response@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz" - integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + integrity sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q== dependencies: mimic-response "^1.0.0" +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA== + collection-visit@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw== dependencies: map-visit "^1.0.0" object-visit "^1.0.0" color-convert@^1.9.0: version "1.9.3" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: color-name "1.1.3" color-convert@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== dependencies: color-name "~1.1.4" color-name@1.1.3: version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== color-name@~1.1.4: version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== color-support@^1.1.3: version "1.1.3" - resolved "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== colors@1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz" - integrity sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs= + resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" + integrity sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw== combined-stream@^1.0.8: version "1.0.8" - resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== dependencies: delayed-stream "~1.0.0" commander@2.9.0: version "2.9.0" - resolved "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz" - integrity sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q= + resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" + integrity sha512-bmkUukX8wAOjHdN26xj5c4ctEV22TQ7dQYhSmuckKhToXrkUn0iIaolHdIxYYqD55nhpSPA9zPQ1yP57GdXP2A== dependencies: graceful-readlink ">= 1.0.0" commander@^2.20.0: version "2.20.3" - resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== commander@^4.1.1: version "4.1.1" - resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== commander@^5.0.0: version "5.1.0" - resolved "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz" + resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== commondir@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== compare-version@^0.1.2: version "0.1.2" - resolved "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz" - integrity sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA= + resolved "https://registry.yarnpkg.com/compare-version/-/compare-version-0.1.2.tgz#0162ec2d9351f5ddd59a9202cba935366a725080" + integrity sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A== component-emitter@^1.2.1: version "1.3.0" - resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== -compress-brotli@^1.3.6: - version "1.3.6" - resolved "https://registry.npmjs.org/compress-brotli/-/compress-brotli-1.3.6.tgz" - integrity sha512-au99/GqZtUtiCBliqLFbWlhnCxn+XSYjwZ77q6mKN4La4qOXDoLVPZ50iXr0WmAyMxl8yqoq3Yq4OeQNPPkyeQ== +compress-brotli@^1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/compress-brotli/-/compress-brotli-1.3.8.tgz#0c0a60c97a989145314ec381e84e26682e7b38db" + integrity sha512-lVcQsjhxhIXsuupfy9fmZUFtAIdBmXA7EGY6GBdgZ++qkM9zG4YFT8iU7FoBxzryNDMOpD1HIFHUSX4D87oqhQ== dependencies: "@types/json-buffer" "~3.0.0" json-buffer "~3.0.1" compressible@~2.0.16: version "2.0.18" - resolved "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== dependencies: mime-db ">= 1.43.0 < 2" compression@^1.7.4: version "1.7.4" - resolved "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== dependencies: accepts "~1.3.5" @@ -2637,12 +3089,12 @@ compression@^1.7.4: concat-map@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== concat-stream@^1.6.2: version "1.6.2" - resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== dependencies: buffer-from "^1.0.0" @@ -2650,9 +3102,9 @@ concat-stream@^1.6.2: readable-stream "^2.2.2" typedarray "^0.0.6" -conf@^10.0.3: +conf@^10.1.2: version "10.1.2" - resolved "https://registry.npmjs.org/conf/-/conf-10.1.2.tgz" + resolved "https://registry.yarnpkg.com/conf/-/conf-10.1.2.tgz#50132158f388756fa9dea3048f6b47935315c14e" integrity sha512-o9Fv1Mv+6A0JpoayQ8JleNp3hhkbOJP/Re/Q+QqxMPHPkABVsRjQGWZn9A5GcqLiTNC6d89p2PB5ZhHVDSMwyg== dependencies: ajv "^8.6.3" @@ -2668,7 +3120,7 @@ conf@^10.0.3: config-chain@^1.1.11: version "1.1.13" - resolved "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== dependencies: ini "^1.3.4" @@ -2676,7 +3128,7 @@ config-chain@^1.1.11: configstore@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== dependencies: dot-prop "^5.2.0" @@ -2688,46 +3140,51 @@ configstore@^5.0.1: connect-history-api-fallback@^1.6.0: version "1.6.0" - resolved "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz" + 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.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz" - integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== content-disposition@0.5.4: version "0.5.4" - resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== dependencies: safe-buffer "5.2.1" content-type@^1.0.4, content-type@~1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== convert-source-map@^1.7.0: version "1.8.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== dependencies: safe-buffer "~5.1.1" cookie-signature@1.0.6: version "1.0.6" - resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== -cookie@0.4.2, cookie@^0.4.1: +cookie@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" + integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== + +cookie@^0.4.1: version "0.4.2" - resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== copy-concurrently@^1.0.0: version "1.0.5" - resolved "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== dependencies: aproba "^1.1.1" @@ -2739,25 +3196,25 @@ copy-concurrently@^1.0.0: copy-descriptor@^0.1.0: version "0.1.1" - resolved "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== -core-js-compat@^3.20.2, core-js-compat@^3.21.0: - version "3.22.0" - resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.22.0.tgz" - integrity sha512-WwA7xbfRGrk8BGaaHlakauVXrlYmAIkk8PNGb1FDQS+Rbrewc3pgFfwJFRw6psmJVAll7Px9UHRYE16oRQnwAQ== +core-js-compat@^3.21.0, core-js-compat@^3.22.1: + version "3.22.8" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.22.8.tgz#46fa34ce1ddf742acd7f95f575f66bbb21e05d62" + integrity sha512-pQnwg4xtuvc2Bs/5zYQPaEYYSuTxsF7LBWF0SvnVhthZo/Qe+rJpcEekrdNK5DWwDJ0gv0oI9NNX5Mppdy0ctg== dependencies: - browserslist "^4.20.2" + browserslist "^4.20.3" semver "7.0.0" core-util-is@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== core-util-is@~1.0.0: version "1.0.3" - resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== crc@^3.8.0: @@ -2769,14 +3226,23 @@ crc@^3.8.0: crocket@^0.9.11: version "0.9.11" - resolved "https://registry.npmjs.org/crocket/-/crocket-0.9.11.tgz" - integrity sha1-KI/KEe8NPdI5tixIgmXzDI7fsMU= + resolved "https://registry.yarnpkg.com/crocket/-/crocket-0.9.11.tgz#288fca11ef0d3dd239b62c488265f30c8edfb0c5" + integrity sha512-Ylflbm4qvJCC/G76Yp62PrSzEpYYrzTvkxGQFwgwbDj2PakNOwOns6NBs2YYS+TrPXAUq68N5fee7Gia+Z13tw== dependencies: xpipe "*" +cross-spawn@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + integrity sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A== + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + cross-spawn@^6.0.0, cross-spawn@^6.0.5: version "6.0.5" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== dependencies: nice-try "^1.0.4" @@ -2787,7 +3253,7 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.3: version "7.0.3" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== dependencies: path-key "^3.1.0" @@ -2796,17 +3262,22 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.3: cross-unzip@0.0.2: version "0.0.2" - resolved "https://registry.npmjs.org/cross-unzip/-/cross-unzip-0.0.2.tgz" - integrity sha1-UYO8R6CVWb78+YzEZXlkmZNZNy8= + resolved "https://registry.yarnpkg.com/cross-unzip/-/cross-unzip-0.0.2.tgz#5183bc47a09559befcf98cc4657964999359372f" + integrity sha512-nRJ5c+aqHz0OJVU4V1bqoaDggydfauK/Gha/H/ScBvuIjhZvl8YIpdWVzSR3vUhzCloqB1tvBdQ4V7J8qK7HzQ== + +crypto-js@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.1.1.tgz#9e485bcf03521041bd85844786b83fb7619736cf" + integrity sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw== crypto-random-string@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== css-hot-loader@^1.4.4: version "1.4.4" - resolved "https://registry.npmjs.org/css-hot-loader/-/css-hot-loader-1.4.4.tgz" + resolved "https://registry.yarnpkg.com/css-hot-loader/-/css-hot-loader-1.4.4.tgz#ae784932cd8b7d092f7f15702af08b3ec9436052" integrity sha512-J/qXHz+r7FOT92qMIJfxUk0LC9fecQNZVr0MswQ4FOpKLyOCBjofVMfc6R268bh/5ktkTShrweMr0wWqerC92g== dependencies: loader-utils "^1.1.0" @@ -2815,7 +3286,7 @@ css-hot-loader@^1.4.4: css-loader@^3.4.2: version "3.6.0" - resolved "https://registry.npmjs.org/css-loader/-/css-loader-3.6.0.tgz" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.6.0.tgz#2e4b2c7e6e2d27f8c8f28f61bffcd2e6c91ef645" integrity sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ== dependencies: camelcase "^5.3.1" @@ -2834,7 +3305,7 @@ css-loader@^3.4.2: css-select@^4.1.3: version "4.3.0" - resolved "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== dependencies: boolbase "^1.0.0" @@ -2845,17 +3316,17 @@ css-select@^4.1.3: css-what@^6.0.1: version "6.1.0" - resolved "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== cssesc@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== dbus-next@^0.9.2: version "0.9.2" - resolved "https://registry.npmjs.org/dbus-next/-/dbus-next-0.9.2.tgz" + resolved "https://registry.yarnpkg.com/dbus-next/-/dbus-next-0.9.2.tgz#d69a24ea5b54d90ab6bd543c7b81bcb965a99f93" integrity sha512-tzQq/+wrTZ2yU+U5PoeXc97KABhX2v55C/T0finH3tSKYuI8H/SqppIFymBBrUHcK13LvEGY3vdj3ikPPenL5g== dependencies: "@nornagon/put" "0.0.8" @@ -2870,59 +3341,59 @@ dbus-next@^0.9.2: debounce-fn@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/debounce-fn/-/debounce-fn-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/debounce-fn/-/debounce-fn-4.0.0.tgz#ed76d206d8a50e60de0dd66d494d82835ffe61c7" integrity sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ== dependencies: mimic-fn "^3.0.0" debug@2.6.9, debug@^2.1.0, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: version "4.3.4" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" debug@^3.1.0, debug@^3.1.1, debug@^3.2.7: version "3.2.7" - resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: ms "^2.1.1" -decamelize@^1.2.0: +decamelize@^1.1.1, decamelize@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== decode-uri-component@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og== decompress-response@^3.3.0: version "3.3.0" - resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz" - integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA== dependencies: mimic-response "^1.0.0" decompress-response@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== dependencies: mimic-response "^3.1.0" deep-equal@^1.0.1: version "1.1.1" - resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== dependencies: is-arguments "^1.0.4" @@ -2934,17 +3405,17 @@ deep-equal@^1.0.1: deep-extend@^0.6.0: version "0.6.0" - resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz" + 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.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz" + 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.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== dependencies: execa "^1.0.0" @@ -2952,17 +3423,17 @@ default-gateway@^4.2.0: defer-to-connect@^1.0.1: version "1.1.3" - resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== defer-to-connect@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== -define-properties@^1.1.2, define-properties@^1.1.3: +define-properties@^1.1.2, define-properties@^1.1.3, define-properties@^1.1.4: version "1.1.4" - resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== dependencies: has-property-descriptors "^1.0.0" @@ -2970,21 +3441,21 @@ define-properties@^1.1.2, define-properties@^1.1.3: define-property@^0.2.5: version "0.2.5" - resolved "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA== dependencies: is-descriptor "^0.1.0" define-property@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA== dependencies: is-descriptor "^1.0.0" define-property@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== dependencies: is-descriptor "^1.0.2" @@ -2992,7 +3463,7 @@ define-property@^2.0.2: del@^4.1.1: version "4.1.1" - resolved "https://registry.npmjs.org/del/-/del-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== dependencies: "@types/glob" "^7.1.1" @@ -3005,47 +3476,57 @@ del@^4.1.1: delay@^4.3.0: version "4.4.1" - resolved "https://registry.npmjs.org/delay/-/delay-4.4.1.tgz" + 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.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== delegates@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" - integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== + +depd@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== depd@^1.1.2, depd@~1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz" - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== detect-file@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz" - integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= + resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" + integrity sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q== + +detect-libc@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd" + integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w== detect-node@^2.0.4: version "2.1.0" - resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== dijkstrajs@^1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.2.tgz#2e48c0d3b825462afe75ab4ad5e829c8ece36257" integrity sha512-QV6PMaHTCNmKSeP6QoXhVTw9snc9VD8MulTT0Bd99Pacp4SS1cjcrYPgBPmibqKVtMJJfqC6XvOXgPMEEPH/fg== dir-compare@^2.4.0: version "2.4.0" - resolved "https://registry.npmjs.org/dir-compare/-/dir-compare-2.4.0.tgz" + resolved "https://registry.yarnpkg.com/dir-compare/-/dir-compare-2.4.0.tgz#785c41dc5f645b34343a4eafc50b79bac7f11631" integrity sha512-l9hmu8x/rjVC9Z2zmGzkhOEowZvW7pmYws5CWHutg8u1JgvsKWMx7Q/UODeu4djLZ4FgW5besw5yvMQnBHzuCA== dependencies: buffer-equal "1.0.0" @@ -3053,19 +3534,25 @@ dir-compare@^2.4.0: commander "2.9.0" minimatch "3.0.4" -discord-rpc@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/discord-rpc/-/discord-rpc-4.0.1.tgz" - integrity sha512-HOvHpbq5STRZJjQIBzwoKnQ0jHplbEWFWlPDwXXKm/bILh4nzjcg7mNqll0UY7RsjFoaXA7e/oYb/4lvpda2zA== +discord-auto-rpc@^1.0.16: + version "1.0.17" + resolved "https://registry.yarnpkg.com/discord-auto-rpc/-/discord-auto-rpc-1.0.17.tgz#83ff30a1eb7f8a7a064a96c22d901b89d8cc0ecd" + integrity sha512-ZTK8azvfapMmwjxLAowHuOSglAens7UtBuQnL8b4VDmqzPM0K8ze1A/uPViWkJ8ROEOjZeHoK3zu0jwsQKGavQ== + dependencies: + "@types/discord-rpc" "^4.0.2" + discord-rpc "^3.2.0" + +discord-rpc@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/discord-rpc/-/discord-rpc-3.2.0.tgz#8da4e01654fce38e959d70b58708c46ae1d6c8fa" + integrity sha512-KJv0EVbGMlr04HoG6f5b3wD7X9kSHzQ2Ed2qfHSDvYJ1MkE8RbCQmMcQQrSvAxpfsqZgUjB/bsfi/mjyicCH+A== dependencies: node-fetch "^2.6.1" ws "^7.3.1" - optionalDependencies: - register-scheme "github:devsnek/node-register-scheme" dmg-builder@23.0.3: version "23.0.3" - resolved "https://registry.npmjs.org/dmg-builder/-/dmg-builder-23.0.3.tgz" + resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-23.0.3.tgz#ea94bc76fcd94612641580f3c6ae42c3f07f3fee" integrity sha512-mBYrHHnSM5PC656TDE+xTGmXIuWHAGmmRfyM+dV0kP+AxtwPof4pAXNQ8COd0/exZQ4dqf72FiPS3B9G9aB5IA== dependencies: app-builder-lib "23.0.3" @@ -3093,11 +3580,11 @@ dmg-license@^1.0.9: dns-equal@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz" - integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= + resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + integrity sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg== "dns-js@git+https://github.com/ciderapp/node-dns-js.git": - version "0.2.1" + version "0.2.1" resolved "git+https://github.com/ciderapp/node-dns-js.git#212b6c903db40bcd501af741e51cd20d676acbc9" dependencies: debug "^2.1.0" @@ -3105,7 +3592,7 @@ dns-equal@^1.0.0: dns-packet@^1.3.1: version "1.3.4" - resolved "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.4.tgz#e3455065824a2507ba886c55a89963bb107dec6f" integrity sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA== dependencies: ip "^1.1.0" @@ -3113,49 +3600,54 @@ dns-packet@^1.3.1: dns-txt@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz" - integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= + resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" + integrity sha512-Ix5PrWjphuSoUXV/Zv5gaFHjnaJtb02F2+Si3Ht9dyJ87+Z/lMmy+dpNHtTGraNK958ndXq2i+GLkWsWHcKaBQ== dependencies: buffer-indexof "^1.0.0" dom-converter@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== dependencies: utila "~0.4" dom-serializer@^1.0.1: version "1.4.1" - resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== dependencies: domelementtype "^2.0.1" domhandler "^4.2.0" entities "^2.0.0" +dom-walk@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" + integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== + domelementtype@^2.0.1, domelementtype@^2.2.0: version "2.3.0" - resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== domhandler@^3.0.0: version "3.3.0" - resolved "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-3.3.0.tgz#6db7ea46e4617eb15cf875df68b2b8524ce0037a" integrity sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA== dependencies: domelementtype "^2.0.1" domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: version "4.3.1" - resolved "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== dependencies: domelementtype "^2.2.0" domutils@^2.0.0, domutils@^2.5.2, domutils@^2.8.0: version "2.8.0" - resolved "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== dependencies: dom-serializer "^1.0.1" @@ -3164,7 +3656,7 @@ domutils@^2.0.0, domutils@^2.5.2, domutils@^2.8.0: dot-case@^3.0.4: version "3.0.4" - resolved "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== dependencies: no-case "^3.0.4" @@ -3172,58 +3664,58 @@ dot-case@^3.0.4: dot-prop@^5.2.0: version "5.3.0" - resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== dependencies: is-obj "^2.0.0" dot-prop@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083" integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA== dependencies: is-obj "^2.0.0" dotenv-expand@^5.1.0: version "5.1.0" - resolved "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz" + resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== dotenv@^8.0.0, dotenv@^8.2.0: version "8.6.0" - resolved "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b" integrity sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g== dotenv@^9.0.2: version "9.0.2" - resolved "https://registry.npmjs.org/dotenv/-/dotenv-9.0.2.tgz" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-9.0.2.tgz#dacc20160935a37dea6364aa1bef819fb9b6ab05" integrity sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg== duplexer3@^0.1.4: version "0.1.4" - resolved "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz" - integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + integrity sha512-CEj8FwwNA4cVH2uFCoHUrmojhYh1vmCdOaneKJXwkeY1i9jnlslVo9dx+hQ5Hl9GnH/Bwy/IjxAyOePyPKYnzA== duplexer@~0.1.1: version "0.1.2" - resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== ee-first@1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== ejs@^3.1.6: - version "3.1.6" - resolved "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz" - integrity sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw== + version "3.1.8" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.8.tgz#758d32910c78047585c7ef1f92f9ee041c1c190b" + integrity sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ== dependencies: - jake "^10.6.1" + jake "^10.8.5" electron-builder-notarize-pkg@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/electron-builder-notarize-pkg/-/electron-builder-notarize-pkg-1.2.0.tgz" + 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" @@ -3231,7 +3723,7 @@ electron-builder-notarize-pkg@^1.2.0: electron-builder@^23.0.3: version "23.0.3" - resolved "https://registry.npmjs.org/electron-builder/-/electron-builder-23.0.3.tgz" + resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-23.0.3.tgz#16264a0d8e3d40da1467bcc8ef7917538b54a3bc" integrity sha512-0lnTsljAgcOMuIiOjPcoFf+WxOOe/O04hZPgIvvUBXIbz3kolbNu0Xdch1f5WuQ40NdeZI7oqs8Eo395PcuGHQ== dependencies: "@types/yargs" "^17.0.1" @@ -3249,7 +3741,7 @@ electron-builder@^23.0.3: electron-devtools-installer@^2.2.4: version "2.2.4" - resolved "https://registry.npmjs.org/electron-devtools-installer/-/electron-devtools-installer-2.2.4.tgz" + resolved "https://registry.yarnpkg.com/electron-devtools-installer/-/electron-devtools-installer-2.2.4.tgz#261a50337e37121d338b966f07922eb4939a8763" integrity sha512-b5kcM3hmUqn64+RUcHjjr8ZMpHS2WJ5YO0pnG9+P/RTdx46of/JrEjuciHWux6pE+On6ynWhHJF53j/EDJN0PA== dependencies: "7zip" "0.0.6" @@ -3259,19 +3751,19 @@ electron-devtools-installer@^2.2.4: electron-fetch@^1.7.4: version "1.7.4" - resolved "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.7.4.tgz" + resolved "https://registry.yarnpkg.com/electron-fetch/-/electron-fetch-1.7.4.tgz#af975ab92a14798bfaa025f88dcd2e54a7b0b769" integrity sha512-+fBLXEy4CJWQ5bz8dyaeSG1hD6JJ15kBZyj3eh24pIVrd3hLM47H/umffrdQfS6GZ0falF0g9JT9f3Rs6AVUhw== dependencies: encoding "^0.1.13" electron-log@^4.4.6: - version "4.4.6" - resolved "https://registry.npmjs.org/electron-log/-/electron-log-4.4.6.tgz" - integrity sha512-nirYgRdY+F+vclr8ijdwy2vW03IzFpDHTaKNWu76dEN21Y76+smcES5knS7cgHUUB0qNLOi8vZO36taakjbSXA== + version "4.4.7" + resolved "https://registry.yarnpkg.com/electron-log/-/electron-log-4.4.7.tgz#d55b7232c019521694c3503d2109e5a49cb49dd0" + integrity sha512-uFZQdgevOp9Fn5lDOrJMU/bmmYxDLZitbIHJM7VXN+cpB59ZnPt1FQL4bOf/Dl2gaIMPYJEfXx38GvJma5iV6A== electron-notarize@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/electron-notarize/-/electron-notarize-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/electron-notarize/-/electron-notarize-1.2.1.tgz#347c18eca8e29dddadadee511b870c13d4008baf" integrity sha512-u/ECWhIrhkSQpZM4cJzVZ5TsmkaqrRo5LDC/KMbGF0sPkm53Ng59+M0zp8QVaql0obfJy9vlVT+4iOkAi2UDlA== dependencies: debug "^4.1.1" @@ -3279,7 +3771,7 @@ electron-notarize@^1.2.1: electron-osx-sign@^0.6.0: version "0.6.0" - resolved "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.6.0.tgz" + resolved "https://registry.yarnpkg.com/electron-osx-sign/-/electron-osx-sign-0.6.0.tgz#9b69c191d471d9458ef5b1e4fdd52baa059f1bb8" integrity sha512-+hiIEb2Xxk6eDKJ2FFlpofCnemCbjbT5jz+BKGpVBrRNT3kWTGs4DfNX6IzGwgi33hUcXF+kFs9JW+r6Wc1LRg== dependencies: bluebird "^3.5.0" @@ -3291,7 +3783,7 @@ electron-osx-sign@^0.6.0: electron-publish@23.0.2: version "23.0.2" - resolved "https://registry.npmjs.org/electron-publish/-/electron-publish-23.0.2.tgz" + resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-23.0.2.tgz#aa11419ae57b847df4beb63b95e2b2a43161957c" integrity sha512-8gMYgWqv96lc83FCm85wd+tEyxNTJQK7WKyPkNkO8GxModZqt1GO8S+/vAnFGxilS/7vsrVRXFfqiCDUCSuxEg== dependencies: "@types/fs-extra" "^9.0.11" @@ -3303,21 +3795,21 @@ electron-publish@23.0.2: mime "^2.5.2" electron-store@^8.0.1: - version "8.0.1" - resolved "https://registry.npmjs.org/electron-store/-/electron-store-8.0.1.tgz" - integrity sha512-ZyLvNywiqSpbwC/pp89O/AycVWY/UJIkmtyzF2Bd0Nm/rLmcFc0NTGuLdg6+LE8mS8qsiK5JMoe4PnrecLHH5w== + version "8.0.2" + resolved "https://registry.yarnpkg.com/electron-store/-/electron-store-8.0.2.tgz#95c8cf81c1e1cf48b24f3ceeea24b921c1ff62d7" + integrity sha512-9GwUMv51w8ydbkaG7X0HrPlElXLApg63zYy1/VZ/a08ndl0gfm4iCoD3f0E1JvP3V16a+7KxqriCI0c122stiA== dependencies: - conf "^10.0.3" - type-fest "^1.0.2" + conf "^10.1.2" + type-fest "^2.12.2" -electron-to-chromium@^1.4.84: - version "1.4.113" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.113.tgz" - integrity sha512-s30WKxp27F3bBH6fA07FYL2Xm/FYnYrKpMjHr3XVCTUb9anAyZn/BeZfPWgTZGAbJeT4NxNwISSbLcYZvggPMA== +electron-to-chromium@^1.4.147: + version "1.4.152" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.152.tgz#7dedbe8f3dc1c597088982a203f392e60f7ee90a" + integrity sha512-jk4Ju5SGZAQQJ1iI4Rgru7dDlvkQPLpNPWH9gIZmwCD4YteA5Bbk1xPcPDUf5jUYs3e1e80RXdi8XgKQZaigeg== electron-updater@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/electron-updater/-/electron-updater-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/electron-updater/-/electron-updater-5.0.1.tgz#327915f1b2e573daf1ce1d8102bcab93f4880c1a" integrity sha512-dNnXPCqYmergXy3jgg4UICuD50Orug9GQe/5xfHy+BE2Fy0icB0QE+y6iQWdCDf7yeONxwMBf4HgIkGG5pIaVg== dependencies: "@types/semver" "^7.3.6" @@ -3331,7 +3823,7 @@ electron-updater@^5.0.1: electron-webpack-js@~2.4.1: version "2.4.1" - resolved "https://registry.npmjs.org/electron-webpack-js/-/electron-webpack-js-2.4.1.tgz" + resolved "https://registry.yarnpkg.com/electron-webpack-js/-/electron-webpack-js-2.4.1.tgz#5389cc22f34c71f6416d5ba1e043f9b0fd6130af" integrity sha512-NPbcI4nnuclkLEKmwRI8sui2GNe37NKm0pCQR6KZA7YSV3KQdH4I7wOgIZ2AkeCpyeUHrBSMGQY+VqhPD7OtMA== dependencies: "@babel/core" "^7.9.0" @@ -3342,7 +3834,7 @@ electron-webpack-js@~2.4.1: electron-webpack@^2.8.2: version "2.8.2" - resolved "https://registry.npmjs.org/electron-webpack/-/electron-webpack-2.8.2.tgz" + resolved "https://registry.yarnpkg.com/electron-webpack/-/electron-webpack-2.8.2.tgz#5a0357ce8f7d147e5f559294a08bb072d1092b0a" integrity sha512-rR7hxoOlZIcJf6R08mVl/4TBtFY+HW6sv4Z28TdMWETvcM4ZBIBdGNGylxF0gNwB8gkTgo8UkkDbXGX48K4Vow== dependencies: "@types/webpack-env" "^1.15.1" @@ -3377,71 +3869,84 @@ electron-webpack@^2.8.2: electron-window-state@^5.0.3: version "5.0.3" - resolved "https://registry.npmjs.org/electron-window-state/-/electron-window-state-5.0.3.tgz" + resolved "https://registry.yarnpkg.com/electron-window-state/-/electron-window-state-5.0.3.tgz#4f36d09e3f953d87aff103bf010f460056050aa8" integrity sha512-1mNTwCfkolXl3kMf50yW3vE2lZj0y92P/HYWFBrb+v2S/pCka5mdwN3cagKm458A7NjndSwijynXgcLWRodsVg== dependencies: jsonfile "^4.0.0" mkdirp "^0.5.1" -"electron@git+https://github.com/castlabs/electron-releases.git": - version "19.0.0-alpha.3" - resolved "git+ssh://git@github.com/castlabs/electron-releases.git#7d6b99d586cd0594030b1a837267b59e25772d2d" +"electron@git+https://github.com/castlabs/electron-releases.git#18-x-y": + version "18.3.3" + resolved "git+https://github.com/castlabs/electron-releases.git#848962216f749397fe9fe2c1456396edd7923633" dependencies: - "@electron/get" "^1.14.1" + "@electron/get" "^1.13.0" "@types/node" "^16.11.26" extract-zip "^1.0.3" +elliptic@^6.4.0: + version "6.5.4" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + emoji-regex@^7.0.1: version "7.0.3" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== emoji-regex@^8.0.0: version "8.0.0" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== emojis-list@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== encode-utf8@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/encode-utf8/-/encode-utf8-1.0.3.tgz#f30fdd31da07fb596f281beb2f6b027851994cda" integrity sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw== encodeurl@^1.0.2, encodeurl@~1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== encoding@^0.1.13: version "0.1.13" - resolved "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== dependencies: iconv-lite "^0.6.2" -end-of-stream@^1.1.0: +end-of-stream@^1.1.0, end-of-stream@^1.4.1: version "1.4.4" - resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: once "^1.4.0" enhanced-resolve@^4.1.1: version "4.5.0" - resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== dependencies: graceful-fs "^4.1.2" memory-fs "^0.5.0" tapable "^1.0.0" -enhanced-resolve@^5.9.2: +enhanced-resolve@^5.9.3: version "5.9.3" - resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz#44a342c012cbc473254af5cc6ae20ebd0aae5d88" integrity sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow== dependencies: graceful-fs "^4.2.4" @@ -3449,44 +3954,46 @@ enhanced-resolve@^5.9.2: entities@^2.0.0: version "2.2.0" - resolved "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== env-paths@^2.2.0, env-paths@^2.2.1: version "2.2.1" - resolved "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== err-code@^2.0.2: version "2.0.3" - resolved "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== errno@^0.1.3: version "0.1.8" - resolved "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== dependencies: prr "~1.0.1" -error-ex@^1.3.1: +error-ex@^1.2.0, error-ex@^1.3.1: version "1.3.2" - resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== dependencies: is-arrayish "^0.2.1" -es-abstract@^1.19.1: - version "1.19.5" - resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.5.tgz" - integrity sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA== +es-abstract@^1.19.0, es-abstract@^1.19.2, es-abstract@^1.19.5, es-abstract@^1.20.1: + version "1.20.1" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.1.tgz#027292cd6ef44bd12b1913b828116f54787d1814" + integrity sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA== dependencies: call-bind "^1.0.2" es-to-primitive "^1.2.1" function-bind "^1.1.1" + function.prototype.name "^1.1.5" get-intrinsic "^1.1.1" get-symbol-description "^1.0.0" has "^1.0.3" + has-property-descriptors "^1.0.0" has-symbols "^1.0.3" internal-slot "^1.0.3" is-callable "^1.2.4" @@ -3498,18 +4005,24 @@ es-abstract@^1.19.1: object-inspect "^1.12.0" object-keys "^1.1.1" object.assign "^4.1.2" - string.prototype.trimend "^1.0.4" - string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.1" + regexp.prototype.flags "^1.4.3" + string.prototype.trimend "^1.0.5" + string.prototype.trimstart "^1.0.5" + unbox-primitive "^1.0.2" + +es-array-method-boxes-properly@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" + integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== es-module-lexer@^0.9.0: version "0.9.3" - resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== es-to-primitive@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== dependencies: is-callable "^1.1.4" @@ -3518,37 +4031,37 @@ es-to-primitive@^1.2.1: es6-error@^4.1.1: version "4.1.1" - resolved "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== escalade@^3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== escape-goat@^2.0.0: version "2.1.1" - resolved "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== escape-html@~1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== escape-string-regexp@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== escape-string-regexp@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== eslint-scope@5.1.1: version "5.1.1" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== dependencies: esrecurse "^4.3.0" @@ -3556,40 +4069,40 @@ eslint-scope@5.1.1: esprima@^4.0.0: version "4.0.1" - resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== esrecurse@^4.3.0: version "4.3.0" - resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: estraverse "^5.2.0" estraverse@^4.1.1: version "4.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== estraverse@^5.2.0: version "5.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== esutils@^2.0.2: version "2.0.3" - resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== etag@~1.8.1: version "1.8.1" - resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== event-stream@3.3.4: version "3.3.4" - resolved "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz" - integrity sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE= + resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" + integrity sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g== dependencies: duplexer "~0.1.1" from "~0" @@ -3601,24 +4114,35 @@ event-stream@3.3.4: eventemitter3@^4.0.0: version "4.0.7" - resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== events@^3.2.0: version "3.3.0" - resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== -eventsource@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/eventsource/-/eventsource-1.1.0.tgz" - integrity sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg== +eventsource@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-2.0.2.tgz#76dfcc02930fb2ff339520b6d290da573a9e8508" + integrity sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA== + +execa@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + integrity sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw== dependencies: - original "^1.0.0" + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" execa@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== dependencies: cross-spawn "^6.0.0" @@ -3631,7 +4155,7 @@ execa@^1.0.0: execa@^4.0.0: version "4.1.0" - resolved "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== dependencies: cross-spawn "^7.0.0" @@ -3644,10 +4168,15 @@ execa@^4.0.0: signal-exit "^3.0.2" strip-final-newline "^2.0.0" +exif-parser@^0.1.12: + version "0.1.12" + resolved "https://registry.yarnpkg.com/exif-parser/-/exif-parser-0.1.12.tgz#58a9d2d72c02c1f6f02a0ef4a9166272b7760922" + integrity sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw== + expand-brackets@^2.1.4: version "2.1.4" - resolved "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA== dependencies: debug "^2.3.3" define-property "^0.2.5" @@ -3657,72 +4186,78 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" +expand-template@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" + integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== + expand-tilde@^2.0.0, expand-tilde@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz" - integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= + resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" + integrity sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw== dependencies: homedir-polyfill "^1.0.1" express@^4.17.1, express@^4.17.3: - version "4.17.3" - resolved "https://registry.npmjs.org/express/-/express-4.17.3.tgz" - integrity sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg== + version "4.18.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.1.tgz#7797de8b9c72c857b9cd0e14a5eea80666267caf" + integrity sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q== dependencies: accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.19.2" + body-parser "1.20.0" content-disposition "0.5.4" content-type "~1.0.4" - cookie "0.4.2" + cookie "0.5.0" cookie-signature "1.0.6" debug "2.6.9" - depd "~1.1.2" + depd "2.0.0" encodeurl "~1.0.2" escape-html "~1.0.3" etag "~1.8.1" - finalhandler "~1.1.2" + finalhandler "1.2.0" fresh "0.5.2" + http-errors "2.0.0" merge-descriptors "1.0.1" methods "~1.1.2" - on-finished "~2.3.0" + on-finished "2.4.1" parseurl "~1.3.3" path-to-regexp "0.1.7" proxy-addr "~2.0.7" - qs "6.9.7" + qs "6.10.3" range-parser "~1.2.1" safe-buffer "5.2.1" - send "0.17.2" - serve-static "1.14.2" + send "0.18.0" + serve-static "1.15.0" setprototypeof "1.2.0" - statuses "~1.5.0" + statuses "2.0.1" type-is "~1.6.18" utils-merge "1.0.1" vary "~1.1.2" extend-shallow@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== dependencies: is-extendable "^0.1.0" extend-shallow@^3.0.0, extend-shallow@^3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q== dependencies: assign-symbols "^1.0.0" is-extendable "^1.0.1" extend@^3.0.1: version "3.0.2" - resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" + 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.npmjs.org/extglob/-/extglob-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== dependencies: array-unique "^0.3.2" @@ -3736,7 +4271,7 @@ extglob@^2.0.4: extract-zip@^1.0.3: version "1.7.0" - resolved "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz" + 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" @@ -3751,41 +4286,41 @@ extsprintf@^1.2.0: fast-deep-equal@^3.1.1: version "3.1.3" - resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-json-stable-stringify@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== fast-safe-stringify@^2.0.6: version "2.1.1" - resolved "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz" + 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.4: version "0.11.4" - resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== dependencies: websocket-driver ">=0.5.1" fd-slicer@~1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz" - integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== dependencies: pend "~1.2.0" figgy-pudding@^3.5.1: version "3.5.2" - resolved "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz" + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== file-loader@^6.0.0: version "6.2.0" - resolved "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== dependencies: loader-utils "^2.0.0" @@ -3793,29 +4328,34 @@ file-loader@^6.0.0: file-type@16.5.3: version "16.5.3" - resolved "https://registry.npmjs.org/file-type/-/file-type-16.5.3.tgz" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-16.5.3.tgz#474b7e88c74724046abb505e9b8ed4db30c4fc06" integrity sha512-uVsl7iFhHSOY4bEONLlTK47iAHtNsFHWP5YE4xJfZ4rnX7S1Q3wce09XgqSC7E/xh8Ncv/be1lNoyprlUH/x6A== dependencies: readable-web-to-node-stream "^3.0.0" strtok3 "^6.2.4" token-types "^4.1.1" +file-type@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-9.0.0.tgz#a68d5ad07f486414dfb2c8866f73161946714a18" + integrity sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw== + file-uri-to-path@1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== filelist@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz" - integrity sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ== + version "1.0.4" + resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" + integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== dependencies: - minimatch "^3.0.4" + minimatch "^5.0.1" fill-range@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ== dependencies: extend-shallow "^2.0.1" is-number "^3.0.0" @@ -3824,43 +4364,50 @@ fill-range@^4.0.0: fill-range@^7.0.1: version "7.0.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== dependencies: to-regex-range "^5.0.1" -finalhandler@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== dependencies: debug "2.6.9" encodeurl "~1.0.2" escape-html "~1.0.3" - on-finished "~2.3.0" + on-finished "2.4.1" parseurl "~1.3.3" - statuses "~1.5.0" + statuses "2.0.1" unpipe "~1.0.0" find-cache-dir@^3.3.1: version "3.3.2" - resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== dependencies: commondir "^1.0.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 sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ== + dependencies: + locate-path "^2.0.0" + find-up@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== dependencies: locate-path "^3.0.0" find-up@^4.0.0, find-up@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== dependencies: locate-path "^5.0.0" @@ -3868,7 +4415,7 @@ find-up@^4.0.0, find-up@^4.1.0: findup-sync@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg== dependencies: detect-file "^1.0.0" @@ -3877,18 +4424,18 @@ findup-sync@^3.0.0: resolve-dir "^1.0.1" follow-redirects@^1.0.0: - version "1.14.9" - resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz" - integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w== + version "1.15.1" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.1.tgz#0ca6a452306c9b276e4d3127483e29575e207ad5" + integrity sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA== for-in@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ== form-data@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== dependencies: asynckit "^0.4.0" @@ -3897,29 +4444,34 @@ form-data@^4.0.0: forwarded@0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== fragment-cache@^0.2.1: version "0.2.1" - resolved "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA== dependencies: map-cache "^0.2.2" fresh@0.5.2: version "0.5.2" - resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== from@~0: version "0.1.7" - resolved "https://registry.npmjs.org/from/-/from-0.1.7.tgz" - integrity sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4= + resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" + integrity sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g== + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== fs-extra@^10.0.0: version "10.1.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== dependencies: graceful-fs "^4.2.0" @@ -3928,7 +4480,7 @@ fs-extra@^10.0.0: fs-extra@^8.1.0: version "8.1.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== dependencies: graceful-fs "^4.2.0" @@ -3937,7 +4489,7 @@ fs-extra@^8.1.0: fs-extra@^9.0.0, fs-extra@^9.0.1: version "9.1.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== dependencies: at-least-node "^1.0.0" @@ -3947,15 +4499,15 @@ fs-extra@^9.0.0, fs-extra@^9.0.1: fs-minipass@^2.0.0, fs-minipass@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== dependencies: minipass "^3.0.0" fs-write-stream-atomic@^1.0.8: version "1.0.10" - resolved "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz" - integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= + resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + integrity sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA== dependencies: graceful-fs "^4.1.2" iferr "^0.1.5" @@ -3964,8 +4516,8 @@ fs-write-stream-atomic@^1.0.8: fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== fsevents@^1.2.7: version "1.2.13" @@ -3982,17 +4534,27 @@ fsevents@~2.3.2: function-bind@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -functions-have-names@^1.2.2: - version "1.2.2" - resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.2.tgz" - integrity sha512-bLgc3asbWdwPbx2mNk2S49kmJCuQeu0nfmaOgbs8WIyzzkw3r4htszdIi9Q9EMezDPTYuJx2wvjZ/EwgAthpnA== +function.prototype.name@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" + integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + functions-have-names "^1.2.2" -gauge@^4.0.0: +functions-have-names@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +gauge@^4.0.3: version "4.0.4" - resolved "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.4.tgz#52ff0652f2bbf607a989793d53b751bef2328dce" integrity sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg== dependencies: aproba "^1.0.3 || ^2.0.0" @@ -4006,45 +4568,55 @@ gauge@^4.0.0: gensync@^1.0.0-beta.2: version "1.0.0-beta.2" - resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== +get-caller-file@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" + integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== + get-caller-file@^2.0.1, get-caller-file@^2.0.5: version "2.0.5" - resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== + version "1.1.2" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.2.tgz#336975123e05ad0b7ba41f152ee4aadbea6cf598" + integrity sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA== dependencies: function-bind "^1.1.1" has "^1.0.3" - has-symbols "^1.0.1" + has-symbols "^1.0.3" get-port@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ== + get-stream@^4.0.0, get-stream@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== dependencies: pump "^3.0.0" get-stream@^5.0.0, get-stream@^5.1.0: version "5.2.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== dependencies: pump "^3.0.0" get-symbol-description@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== dependencies: call-bind "^1.0.2" @@ -4052,44 +4624,68 @@ get-symbol-description@^1.0.0: get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" - resolved "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA== + +gifwrap@^0.9.2: + version "0.9.4" + resolved "https://registry.yarnpkg.com/gifwrap/-/gifwrap-0.9.4.tgz#f4eb6169ba027d61df64aafbdcb1f8ae58ccc0c5" + integrity sha512-MDMwbhASQuVeD4JKd1fKgNgCRL3fGqMM4WaqpNhWO0JiMOAjbQdumbs4BbBZEy9/M00EHEjKN3HieVhCUlwjeQ== + dependencies: + image-q "^4.0.0" + omggif "^1.0.10" + +github-from-package@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" + integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== glob-parent@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA== dependencies: is-glob "^3.1.0" path-dirname "^1.0.0" glob-parent@~5.1.2: version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + 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.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@^7.0.3, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.2.0: - version "7.2.0" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== +glob@^7.0.3, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.0.4" + minimatch "^3.1.1" once "^1.3.0" path-is-absolute "^1.0.0" +glob@^8.0.1: + version "8.0.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.0.3.tgz#415c6eb2deed9e502c68fa44a272e6da6eeca42e" + integrity sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + global-agent@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-3.0.0.tgz#ae7cd31bd3583b93c5a16437a1afe27cc33a1ab6" integrity sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q== dependencies: boolean "^3.0.1" @@ -4101,14 +4697,14 @@ global-agent@^3.0.0: global-dirs@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686" integrity sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA== dependencies: ini "2.0.0" global-modules@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== dependencies: global-prefix "^1.0.1" @@ -4117,15 +4713,15 @@ global-modules@^1.0.0: global-modules@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== dependencies: global-prefix "^3.0.0" global-prefix@^1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz" - integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" + integrity sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg== dependencies: expand-tilde "^2.0.2" homedir-polyfill "^1.0.1" @@ -4135,7 +4731,7 @@ global-prefix@^1.0.1: global-prefix@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== dependencies: ini "^1.3.5" @@ -4144,7 +4740,7 @@ global-prefix@^3.0.0: global-tunnel-ng@^2.7.1: version "2.7.1" - resolved "https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz" + resolved "https://registry.yarnpkg.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz#d03b5102dfde3a69914f5ee7d86761ca35d57d8f" integrity sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg== dependencies: encodeurl "^1.0.2" @@ -4152,22 +4748,30 @@ global-tunnel-ng@^2.7.1: npm-conf "^1.1.3" tunnel "^0.0.6" +global@~4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" + integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== + dependencies: + min-document "^2.19.0" + process "^0.11.10" + globals@^11.1.0: version "11.12.0" - resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globalthis@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz" - integrity sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ== + version "1.0.3" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" + integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== dependencies: define-properties "^1.1.3" globby@^6.1.0: version "6.1.0" - resolved "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz" - integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= + resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + integrity sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw== dependencies: array-union "^1.0.1" glob "^7.0.3" @@ -4176,9 +4780,9 @@ globby@^6.1.0: pinkie-promise "^2.0.0" got@^11.8.3: - version "11.8.3" - resolved "https://registry.npmjs.org/got/-/got-11.8.3.tgz" - integrity sha512-7gtQ5KiPh1RtGS9/Jbv1ofDpBFuq42gyfEib+ejaRBJuj/3tQFeR5+gw57e4ipaU8c/rCjvX6fkQz2lyDlGAOg== + version "11.8.5" + resolved "https://registry.yarnpkg.com/got/-/got-11.8.5.tgz#ce77d045136de56e8f024bebb82ea349bc730046" + integrity sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ== dependencies: "@sindresorhus/is" "^4.0.0" "@szmarczak/http-timer" "^4.0.5" @@ -4194,7 +4798,7 @@ got@^11.8.3: got@^9.6.0: version "9.6.0" - resolved "https://registry.npmjs.org/got/-/got-9.6.0.tgz" + resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== dependencies: "@sindresorhus/is" "^0.14.0" @@ -4211,62 +4815,62 @@ got@^9.6.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.2.9: version "4.2.10" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== "graceful-readlink@>= 1.0.0": version "1.0.1" - resolved "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" - integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU= + resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" + integrity sha512-8tLu60LgxF6XpdbK8OW3FA+IfTNBn1ZHGHKF4KQbEeSkajYw5PlYJcKluntgegDPTg8UkHjpet1T82vk6TQ68w== handle-thing@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== -has-bigints@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz" - integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== has-flag@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== has-flag@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== has-property-descriptors@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== dependencies: get-intrinsic "^1.1.1" has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" + 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" - resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== dependencies: has-symbols "^1.0.2" has-unicode@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz" - integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== has-value@^0.3.1: version "0.3.1" - resolved "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q== dependencies: get-value "^2.0.3" has-values "^0.1.4" @@ -4274,8 +4878,8 @@ has-value@^0.3.1: has-value@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw== dependencies: get-value "^2.0.6" has-values "^1.0.0" @@ -4283,57 +4887,79 @@ has-value@^1.0.0: has-values@^0.1.4: version "0.1.4" - resolved "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ== has-values@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ== dependencies: is-number "^3.0.0" kind-of "^4.0.0" has-yarn@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== has@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== dependencies: function-bind "^1.1.1" +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + he@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== hexy@^0.2.10: version "0.2.11" - resolved "https://registry.npmjs.org/hexy/-/hexy-0.2.11.tgz" + resolved "https://registry.yarnpkg.com/hexy/-/hexy-0.2.11.tgz#9939c25cb6f86a91302f22b8a8a72573518e25b4" integrity sha512-ciq6hFsSG/Bpt2DmrZJtv+56zpPdnq+NQ4ijEFrveKN0ZG1mhl/LdT1NQZ9se6ty1fACcI4d4vYqC9v8EYpH2A== +hmac-drbg@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + homedir-polyfill@^1.0.1: version "1.0.3" - resolved "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== 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.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== dependencies: lru-cache "^6.0.0" hpack.js@^2.1.6: version "2.1.6" - resolved "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz" - integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ== dependencies: inherits "^2.0.1" obuf "^1.0.0" @@ -4342,12 +4968,12 @@ hpack.js@^2.1.6: html-entities@^1.3.1: version "1.4.0" - resolved "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== html-loader@^1.1.0: version "1.3.2" - resolved "https://registry.npmjs.org/html-loader/-/html-loader-1.3.2.tgz" + resolved "https://registry.yarnpkg.com/html-loader/-/html-loader-1.3.2.tgz#5a72ebba420d337083497c9aba7866c9e1aee340" integrity sha512-DEkUwSd0sijK5PF3kRWspYi56XP7bTNkyg5YWSzBdjaSDmvCufep5c4Vpb3PBf6lUL0YPtLwBfy9fL0t5hBAGA== dependencies: html-minifier-terser "^5.1.1" @@ -4357,7 +4983,7 @@ html-loader@^1.1.0: html-minifier-terser@^5.0.1, html-minifier-terser@^5.1.1: version "5.1.1" - resolved "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#922e96f1f3bb60832c2634b79884096389b1f054" integrity sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg== dependencies: camel-case "^4.1.1" @@ -4370,7 +4996,7 @@ html-minifier-terser@^5.0.1, html-minifier-terser@^5.1.1: html-webpack-plugin@^4.0.4: version "4.5.2" - resolved "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.5.2.tgz" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-4.5.2.tgz#76fc83fa1a0f12dd5f7da0404a54e2699666bc12" integrity sha512-q5oYdzjKUIPQVjOosjgvCHQOv9Ett9CYYHlgvJeXG0qQvdSojnBq4vAdQBwn1+yGveAwHCoe/rMR86ozX3+c2A== dependencies: "@types/html-minifier-terser" "^5.0.0" @@ -4385,7 +5011,7 @@ html-webpack-plugin@^4.0.4: htmlparser2@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-4.1.0.tgz#9a4ef161f2e4625ebf7dfbe6c0a2f52d18a59e78" integrity sha512-4zDq1a1zhE4gQso/c5LP1OtrhYTncXNSpvJYtWJBtXAETPlMfi3IFNjGuQbYLuVY4ZR0QMqRVvo4Pdy9KLyP8Q== dependencies: domelementtype "^2.0.1" @@ -4395,7 +5021,7 @@ htmlparser2@^4.1.0: htmlparser2@^6.1.0: version "6.1.0" - resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== dependencies: domelementtype "^2.0.1" @@ -4405,29 +5031,29 @@ htmlparser2@^6.1.0: http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== http-deceiver@^1.2.7: version "1.2.7" - resolved "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz" - integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== -http-errors@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz" - integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== dependencies: - depd "~1.1.2" + depd "2.0.0" inherits "2.0.4" setprototypeof "1.2.0" - statuses ">= 1.5.0 < 2" + statuses "2.0.1" toidentifier "1.0.1" http-errors@~1.6.2: version "1.6.3" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz" - integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== dependencies: depd "~1.1.2" inherits "2.0.3" @@ -4436,12 +5062,12 @@ http-errors@~1.6.2: http-parser-js@>=0.5.1: version "0.5.6" - resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.6.tgz" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.6.tgz#2e02406ab2df8af8a7abfba62e0da01c62b95afd" integrity sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA== http-proxy-agent@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz" + 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" @@ -4450,7 +5076,7 @@ http-proxy-agent@^5.0.0: http-proxy-middleware@0.19.1: version "0.19.1" - resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== dependencies: http-proxy "^1.17.0" @@ -4460,7 +5086,7 @@ http-proxy-middleware@0.19.1: http-proxy@^1.17.0: version "1.18.1" - resolved "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== dependencies: eventemitter3 "^4.0.0" @@ -4469,7 +5095,7 @@ http-proxy@^1.17.0: http2-wrapper@^1.0.0-beta.5.2: version "1.0.3" - resolved "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg== dependencies: quick-lru "^5.1.1" @@ -4477,7 +5103,7 @@ http2-wrapper@^1.0.0-beta.5.2: https-proxy-agent@^5.0.0: version "5.0.1" - resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== dependencies: agent-base "6" @@ -4485,13 +5111,13 @@ https-proxy-agent@^5.0.0: human-signals@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz" + 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.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz" - integrity sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0= + resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" + integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== dependencies: ms "^2.0.0" @@ -4505,48 +5131,55 @@ iconv-corefoundation@^1.1.7: iconv-lite@0.4.24: version "0.4.24" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== dependencies: safer-buffer ">= 2.1.2 < 3" iconv-lite@^0.6.2: version "0.6.3" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== dependencies: safer-buffer ">= 2.1.2 < 3.0.0" icss-utils@^4.0.0, icss-utils@^4.1.1: version "4.1.1" - resolved "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== dependencies: postcss "^7.0.14" ieee754@^1.1.13, ieee754@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== iferr@^0.1.5: version "0.1.5" - resolved "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz" - integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= + resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + integrity sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA== + +image-q@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/image-q/-/image-q-4.0.0.tgz#31e075be7bae3c1f42a85c469b4732c358981776" + integrity sha512-PfJGVgIfKQJuq3s0tTDOKtztksibuUEbJQIYT3by6wctQo+Rdlh7ef4evJ5NCdxY4CfMbvFkocEwbl4BF8RlJw== + dependencies: + "@types/node" "16.9.1" immediate@~3.0.5: version "3.0.6" - resolved "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz" - integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps= + resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" + integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ== import-lazy@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz" - integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + integrity sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A== import-local@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== dependencies: pkg-dir "^3.0.0" @@ -4554,50 +5187,50 @@ import-local@^2.0.0: imurmurhash@^0.1.4: version "0.1.4" - resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== indent-string@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== infer-owner@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== inflight@^1.0.4: version "1.0.6" - resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" wrappy "1" inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: version "2.0.4" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== inherits@2.0.3: version "2.0.3" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== ini@2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: version "1.3.8" - resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== internal-ip@^4.3.0: version "4.3.0" - resolved "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== dependencies: default-gateway "^4.2.0" @@ -4605,7 +5238,7 @@ internal-ip@^4.3.0: internal-slot@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== dependencies: get-intrinsic "^1.1.0" @@ -4614,46 +5247,51 @@ internal-slot@^1.0.3: interpret@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + integrity sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ== + ip-regex@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz" - integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + integrity sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw== ip@^1.1.0, ip@^1.1.5: - version "1.1.5" - resolved "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz" - integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= + version "1.1.8" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.8.tgz#ae05948f6b075435ed3307acce04629da8cdbf48" + integrity sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg== ipaddr.js@1.9.1, ipaddr.js@^1.9.0: version "1.9.1" - resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== is-absolute-url@^3.0.3: version "3.0.3" - resolved "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== is-accessor-descriptor@^0.1.6: version "0.1.6" - resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A== dependencies: kind-of "^3.0.2" is-accessor-descriptor@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== dependencies: kind-of "^6.0.0" is-arguments@^1.0.4: version "1.1.1" - resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== dependencies: call-bind "^1.0.2" @@ -4661,33 +5299,33 @@ is-arguments@^1.0.4: is-arrayish@^0.2.1: version "0.2.1" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== is-bigint@^1.0.1: version "1.0.4" - resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== dependencies: has-bigints "^1.0.1" is-binary-path@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q== dependencies: binary-extensions "^1.0.0" is-binary-path@~2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" + 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.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== dependencies: call-bind "^1.0.2" @@ -4695,59 +5333,59 @@ is-boolean-object@^1.1.0: is-buffer@^1.1.5: version "1.1.6" - resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== is-callable@^1.1.4, is-callable@^1.2.4: version "1.2.4" - resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== is-ci@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== dependencies: ci-info "^2.0.0" is-ci@^3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== dependencies: ci-info "^3.2.0" is-core-module@^2.8.1: version "2.9.0" - resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== dependencies: has "^1.0.3" is-data-descriptor@^0.1.4: version "0.1.4" - resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg== dependencies: kind-of "^3.0.2" is-data-descriptor@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== dependencies: kind-of "^6.0.0" is-date-object@^1.0.1: version "1.0.5" - resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== dependencies: has-tostringtag "^1.0.0" is-descriptor@^0.1.0: version "0.1.6" - resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== dependencies: is-accessor-descriptor "^0.1.6" @@ -4756,7 +5394,7 @@ is-descriptor@^0.1.0: is-descriptor@^1.0.0, is-descriptor@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== dependencies: is-accessor-descriptor "^1.0.0" @@ -4765,48 +5403,60 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" - resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== is-extendable@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== dependencies: is-plain-object "^2.0.4" is-extglob@^2.1.0, is-extglob@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw== + dependencies: + number-is-nan "^1.0.0" is-fullwidth-code-point@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== is-fullwidth-code-point@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== +is-function@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" + integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== + is-glob@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw== dependencies: is-extglob "^2.1.0" is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.3" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" is-installed-globally@^0.4.0: version "0.4.0" - resolved "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== dependencies: global-dirs "^3.0.0" @@ -4814,82 +5464,82 @@ is-installed-globally@^0.4.0: is-lambda@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz" - integrity sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU= + resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" + integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== is-negative-zero@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== is-npm@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz#43e8d65cc56e1b67f8d47262cf667099193f45a8" integrity sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA== is-number-object@^1.0.4: version "1.0.7" - resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== dependencies: has-tostringtag "^1.0.0" is-number@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg== dependencies: kind-of "^3.0.2" is-number@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-obj@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== is-path-cwd@^2.0.0: version "2.2.0" - resolved "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== is-path-in-cwd@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== dependencies: is-path-inside "^2.1.0" is-path-inside@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== dependencies: path-is-inside "^1.0.2" is-path-inside@^3.0.2: version "3.0.3" - resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== is-plain-obj@^1.0.0: version "1.1.0" - resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz" - integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" - resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== dependencies: isobject "^3.0.1" is-regex@^1.0.4, is-regex@^1.1.4: version "1.1.4" - resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== dependencies: call-bind "^1.0.2" @@ -4897,109 +5547,109 @@ is-regex@^1.0.4, is-regex@^1.1.4: is-shared-array-buffer@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== dependencies: call-bind "^1.0.2" is-stream@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== is-stream@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" + 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.npmjs.org/is-string/-/is-string-1.0.7.tgz" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== dependencies: has-tostringtag "^1.0.0" is-symbol@^1.0.2, is-symbol@^1.0.3: version "1.0.4" - resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== dependencies: has-symbols "^1.0.2" is-typedarray@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== is-weakref@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== dependencies: call-bind "^1.0.2" is-windows@^1.0.1, is-windows@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== is-wsl@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz" - integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + integrity sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw== is-yarn-global@^0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz" + resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== isarray@1.0.0, isarray@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== isbinaryfile@^3.0.2: version "3.0.3" - resolved "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.3.tgz#5d6def3edebf6e8ca8cae9c30183a804b5f8be80" integrity sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw== dependencies: buffer-alloc "^1.2.0" isbinaryfile@^4.0.8: version "4.0.10" - resolved "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.10.tgz#0c5b5e30c2557a2f06febd37b7322946aaee42b3" integrity sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw== isexe@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== isobject@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA== dependencies: isarray "1.0.0" isobject@^3.0.0, isobject@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== -jake@^10.6.1: - version "10.8.4" - resolved "https://registry.npmjs.org/jake/-/jake-10.8.4.tgz" - integrity sha512-MtWeTkl1qGsWUtbl/Jsca/8xSoK3x0UmS82sNbjqxxG/de/M/3b1DntdjHgPMC50enlTNwXOCRqPXLLt5cCfZA== +jake@^10.8.5: + version "10.8.5" + resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.5.tgz#f2183d2c59382cb274226034543b9c03b8164c46" + integrity sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw== dependencies: - async "0.9.x" + async "^3.2.3" chalk "^4.0.2" filelist "^1.0.1" minimatch "^3.0.4" jest-worker@^25.4.0: version "25.5.0" - resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-25.5.0.tgz#2611d071b79cea0f43ee57a3d118593ac1547db1" integrity sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw== dependencies: merge-stream "^2.0.0" @@ -5007,21 +5657,54 @@ jest-worker@^25.4.0: jest-worker@^27.4.5: version "27.5.1" - resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz" + 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" +jimp@^0.16.1: + version "0.16.1" + resolved "https://registry.yarnpkg.com/jimp/-/jimp-0.16.1.tgz#192f851a30e5ca11112a3d0aa53137659a78ca7a" + integrity sha512-+EKVxbR36Td7Hfd23wKGIeEyHbxShZDX6L8uJkgVW3ESA9GiTEPK08tG1XI2r/0w5Ch0HyJF5kPqF9K7EmGjaw== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/custom" "^0.16.1" + "@jimp/plugins" "^0.16.1" + "@jimp/types" "^0.16.1" + regenerator-runtime "^0.13.3" + +jpeg-js@0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.4.2.tgz#8b345b1ae4abde64c2da2fe67ea216a114ac279d" + integrity sha512-+az2gi/hvex7eLTMTlbRLOhH6P6WFdk2ITI8HJsaH2VqYO0I594zXSYEP+tf4FW+8Cy68ScDXoAsQdyQanv3sw== + +js-crypto-aes@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/js-crypto-aes/-/js-crypto-aes-1.0.4.tgz#db3fed7b2d7ceec4610eb246be515f12d9674594" + integrity sha512-L2fh7Q55+8eS/ALbhgAZYZpTkuo+n12+3GpuUE+U6SGlObmwibG5rVtDTVSTNgV9VuzD2BaY4unTkRWTcfLYxg== + dependencies: + js-crypto-env "^1.0.4" + +js-crypto-env@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/js-crypto-env/-/js-crypto-env-1.0.4.tgz#2be3b0987124bfaf094aadd3c9d91a56aedb0f2a" + integrity sha512-b7WdjaX4csatMPfZ/mQ94yb/XTKe3o6qt0jPBVbKmaiOH97e+FlmIANoFEMrhxQM1xxKfA2QYLjgqL/YtdMm9g== + +js-sha1@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/js-sha1/-/js-sha1-0.4.1.tgz#d118479722a766822e951513c897a31c9654a5b8" + integrity sha512-kB3avqSVzjcUemu5itp3qNmN/wA0hZr2kRs6l0k3BBbVC1RnJT5rMzAKhOy+rlXmwO9a8jBXR6CftvUQ32Ypag== + "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== js-yaml@^3.13.1: version "3.14.1" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== dependencies: argparse "^1.0.7" @@ -5029,76 +5712,81 @@ js-yaml@^3.13.1: js-yaml@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== dependencies: argparse "^2.0.1" jsbi@^2.0.5: version "2.0.5" - resolved "https://registry.npmjs.org/jsbi/-/jsbi-2.0.5.tgz" + resolved "https://registry.yarnpkg.com/jsbi/-/jsbi-2.0.5.tgz#82589011da87dc59b4b549d94dcef51a9155f6fe" integrity sha512-TzO/62Hxeb26QMb4IGlI/5X+QLr9Uqp1FPkwp2+KOICW+Q+vSuFj61c8pkT6wAns4WcK56X7CmSHhJeDGWOqxQ== jsesc@^2.5.1: version "2.5.2" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== jsesc@~0.5.0: version "0.5.0" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== json-buffer@3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz" - integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + integrity sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ== json-buffer@3.0.1, json-buffer@~3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== -json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: +json-parse-better-errors@^1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== +json-parse-even-better-errors@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + json-schema-traverse@^0.4.1: version "0.4.1" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== json-schema-traverse@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== json-schema-typed@^7.0.3: version "7.0.3" - resolved "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.3.tgz" + resolved "https://registry.yarnpkg.com/json-schema-typed/-/json-schema-typed-7.0.3.tgz#23ff481b8b4eebcd2ca123b4fa0409e66469a2d9" integrity sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A== json-stringify-safe@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== json5@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== dependencies: minimist "^1.2.0" json5@^2.1.0, json5@^2.1.2, json5@^2.2.0, json5@^2.2.1: version "2.2.1" - resolved "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== jsonc@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/jsonc/-/jsonc-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/jsonc/-/jsonc-2.0.0.tgz#9e2a25100d164a9bb864c57517563717fa882551" integrity sha512-B281bLCT2TRMQa+AQUQY5AGcqSOXBOKaYGP4wDzoA/+QswUfN8sODektbPEs9Baq7LGKun5jQbNFpzwGuVYKhw== dependencies: fast-safe-stringify "^2.0.6" @@ -5110,14 +5798,14 @@ jsonc@^2.0.0: jsonfile@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== optionalDependencies: graceful-fs "^4.1.6" jsonfile@^6.0.1: version "6.1.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== dependencies: universalify "^2.0.0" @@ -5126,89 +5814,120 @@ jsonfile@^6.0.1: keyv@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== dependencies: json-buffer "3.0.0" keyv@^4.0.0: - version "4.2.2" - resolved "https://registry.npmjs.org/keyv/-/keyv-4.2.2.tgz" - integrity sha512-uYS0vKTlBIjNCAUqrjlxmruxOEiZxZIHXyp32sdcGmP+ukFrmWUnE//RcPXJH3Vxrni1H2gsQbjHE0bH7MtMQQ== + version "4.3.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.3.0.tgz#b4352e0e4fe7c94111947d6738a6d3fe7903027c" + integrity sha512-C30Un9+63J0CsR7Wka5quXKqYZsT6dcRQ2aOwGcSc3RiQ4HGWpTAHlCA+puNfw2jA/s11EsxA1nCXgZRuRKMQQ== dependencies: - compress-brotli "^1.3.6" + compress-brotli "^1.3.8" json-buffer "3.0.1" killable@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== dependencies: is-buffer "^1.1.5" kind-of@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw== dependencies: is-buffer "^1.1.5" kind-of@^5.0.0: version "5.1.0" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== kind-of@^6.0.0, kind-of@^6.0.2: version "6.0.3" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== lastfm@0.8.x: version "0.8.4" - resolved "https://registry.npmjs.org/lastfm/-/lastfm-0.8.4.tgz" - integrity sha1-Td3wgpem+iP4TUgnBSoNKC/plog= + resolved "https://registry.yarnpkg.com/lastfm/-/lastfm-0.8.4.tgz#4dddf08297a6fa23f84d4827052a0d282fe99688" + integrity sha512-gqpLM8CydkanIXYTGF4JryQyF/MAT/Br9l7DeS/xu/JidAw9fZQ8T6OdQS4HEyeNa/drhiMQ40i+MC+AvM1yWA== dependencies: underscore "" lastfmapi@^0.1.1: version "0.1.1" - resolved "https://registry.npmjs.org/lastfmapi/-/lastfmapi-0.1.1.tgz" - integrity sha1-zjNtz3zIGCDCLcQCR8l7MRM0hvo= + resolved "https://registry.yarnpkg.com/lastfmapi/-/lastfmapi-0.1.1.tgz#ce336dcf7cc81820c22dc40247c97b31133486fa" + integrity sha512-v4L4ng8pJBA3bXUeyWVb3A5v1t00p+Yd/o8trXf0Hz5iRgkRc5Z5092PW3YlhymbUuQVAzx4J6tZuKfrbWfOMQ== dependencies: lastfm "0.8.x" latest-version@^5.1.0: version "5.1.0" - resolved "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== dependencies: package-json "^6.3.0" lazy-val@^1.0.4, lazy-val@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.5.tgz#6cf3b9f5bc31cee7ee3e369c0832b7583dcd923d" integrity sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q== +lcid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + integrity sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw== + dependencies: + invert-kv "^1.0.0" + lie@3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz" - integrity sha1-mkNrLMd0bKWd56QfpGmz77dr2H4= + resolved "https://registry.yarnpkg.com/lie/-/lie-3.1.1.tgz#9a436b2cc7746ca59de7a41fa469b3efb76bd87e" + integrity sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw== dependencies: immediate "~3.0.5" +load-bmfont@^1.3.1, load-bmfont@^1.4.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/load-bmfont/-/load-bmfont-1.4.1.tgz#c0f5f4711a1e2ccff725a7b6078087ccfcddd3e9" + integrity sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA== + dependencies: + buffer-equal "0.0.1" + mime "^1.3.4" + parse-bmfont-ascii "^1.0.3" + parse-bmfont-binary "^1.0.5" + parse-bmfont-xml "^1.1.4" + phin "^2.9.1" + xhr "^2.0.1" + xtend "^4.0.0" + +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 sha512-3p6ZOGNbiX4CdvEd1VcE6yi78UrGNpjHO33noGwHCnT/o2fyllJDepsm8+mFFv/DvtwFHht5HIHSyOy5a+ChVQ== + 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.3.0" - resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== dependencies: big.js "^5.2.2" @@ -5217,7 +5936,7 @@ loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: loader-utils@^2.0.0: version "2.0.2" - resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.2.tgz#d6e3b4fb81870721ae4e0868ab11dd638368c129" integrity sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A== dependencies: big.js "^5.2.2" @@ -5226,14 +5945,22 @@ loader-utils@^2.0.0: localforage@^1.8.1: version "1.10.0" - resolved "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz" + resolved "https://registry.yarnpkg.com/localforage/-/localforage-1.10.0.tgz#5c465dc5f62b2807c3a84c0c6a1b1b3212781dd4" integrity sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg== 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 sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA== + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + locate-path@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== dependencies: p-locate "^3.0.0" @@ -5241,103 +5968,111 @@ locate-path@^3.0.0: locate-path@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== dependencies: p-locate "^4.1.0" lodash.debounce@^4.0.8: version "4.0.8" - resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" - integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== lodash.escaperegexp@^4.1.2: version "4.1.2" - resolved "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz" - integrity sha1-ZHYsSGGAglGKw99Mz11YhtriA0c= + resolved "https://registry.yarnpkg.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz#64762c48618082518ac3df4ccf5d5886dae20347" + integrity sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw== lodash.isequal@^4.5.0: version "4.5.0" - resolved "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz" - integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== -lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.5, lodash@^4.2.0: +lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.0: version "4.17.21" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== loglevel@^1.6.8: version "1.8.0" - resolved "https://registry.npmjs.org/loglevel/-/loglevel-1.8.0.tgz" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.8.0.tgz#e7ec73a57e1e7b419cb6c6ac06bf050b67356114" integrity sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA== long@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/long/-/long-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== loose-envify@^1.1.0: version "1.4.0" - resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== dependencies: js-tokens "^3.0.0 || ^4.0.0" lower-case@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== dependencies: tslib "^2.0.3" lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== lowercase-keys@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== +lru-cache@^4.0.1: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + lru-cache@^5.1.1: version "5.1.1" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== dependencies: yallist "^3.0.2" lru-cache@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== dependencies: yallist "^4.0.0" lru-cache@^7.7.1: - version "7.8.1" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-7.8.1.tgz" - integrity sha512-E1v547OCgJvbvevfjgK9sNKIVXO96NnsTsFPBlg4ZxjhsJSODoH9lk8Bm0OxvHNm6Vm5Yqkl/1fErDxhYL8Skg== + version "7.10.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.10.1.tgz#db577f42a94c168f676b638d15da8fb073448cab" + integrity sha512-BQuhQxPuRl79J5zSXRP+uNzPOyZw2oFI9JLRQ80XswSvg21KMKNtQza9eF42rfI/3Z40RvzBdXgziEkudzjo8A== lru_map@^0.3.3: version "0.3.3" - resolved "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz" - integrity sha1-tcg1G5Rky9dQM1p5ZQoOwOVhGN0= + resolved "https://registry.yarnpkg.com/lru_map/-/lru_map-0.3.3.tgz#b5c8351b9464cbd750335a79650a0ec0e56118dd" + integrity sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ== make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== dependencies: semver "^6.0.0" make-fetch-happen@^10.0.3: - version "10.1.2" - resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.1.2.tgz" - integrity sha512-GWMGiZsKVeJACQGJ1P3Z+iNec7pLsU6YW1q11eaPn3RR8nRXHppFWfP7Eu0//55JK3hSjrAQRl8sDa5uXpq1Ew== + version "10.1.7" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-10.1.7.tgz#b1402cb3c9fad92b380ff3a863cdae5414a42f76" + integrity sha512-J/2xa2+7zlIUKqfyXDCXFpH3ypxO4k3rgkZHPSZkyUYcBT/hM80M3oyKLM/9dVriZFiGeGGS2Ei+0v2zfhqj3Q== dependencies: agentkeepalive "^4.2.1" - cacache "^16.0.2" + cacache "^16.1.0" http-cache-semantics "^4.1.0" http-proxy-agent "^5.0.0" https-proxy-agent "^5.0.0" @@ -5350,62 +6085,69 @@ make-fetch-happen@^10.0.3: minipass-pipeline "^1.2.4" negotiator "^0.6.3" promise-retry "^2.0.1" - socks-proxy-agent "^6.1.1" + socks-proxy-agent "^7.0.0" ssri "^9.0.0" map-cache@^0.2.2: version "0.2.2" - resolved "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== map-stream@~0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz" - integrity sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ= + resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" + integrity sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g== map-visit@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w== dependencies: object-visit "^1.0.0" matcher@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/matcher/-/matcher-3.0.0.tgz#bd9060f4c5b70aa8041ccc6f80368760994f30ca" integrity sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng== dependencies: escape-string-regexp "^4.0.0" "mdns-js@git+https://github.com/ciderapp/node-mdns-js.git": version "1.0.7" - resolved "git+ssh://git@github.com/ciderapp/node-mdns-js.git#1af6b83ce91e5538012f977e1dcadbda5dc0d3b5" + resolved "git+https://github.com/ciderapp/node-mdns-js.git#d8f658b623233c3cf58be229332f3342f553cde2" dependencies: debug "^4.1.1" - dns-js "github:bitfocus/node-dns-js#v0.2.2" + dns-js "git+https://github.com/ciderapp/node-dns-js.git" semver "^7.2.3" media-typer@0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== media-typer@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-1.1.0.tgz#6ab74b8f2d3320f2064b2a87a38e7931ff3a5561" integrity sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw== +mem@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" + integrity sha512-nOBDrc/wgpkd3X/JOhMqYR+/eLqlfLP4oQfoBA6QExIxEl+GU01oyEkwWyueyO8110pUKijtiHGhEmYoOn88oQ== + dependencies: + mimic-fn "^1.0.0" + memory-fs@^0.4.1: version "0.4.1" - resolved "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz" - integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + integrity sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ== dependencies: errno "^0.1.3" readable-stream "^2.0.1" memory-fs@^0.5.0: version "0.5.0" - resolved "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== dependencies: errno "^0.1.3" @@ -5413,22 +6155,22 @@ memory-fs@^0.5.0: merge-descriptors@1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== merge-stream@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== methods@~1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== dependencies: arr-diff "^4.0.0" @@ -5447,49 +6189,61 @@ micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": version "1.52.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" + 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.35" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: mime-db "1.52.0" -mime@1.6.0: +mime@1.6.0, mime@^1.3.4: version "1.6.0" - resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== mime@^2.4.4, mime@^2.5.2: version "2.6.0" - resolved "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + mimic-fn@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== mimic-fn@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-3.1.0.tgz#65755145bbf3e36954b949c16450427451d5ca74" integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ== mimic-response@^1.0.0, mimic-response@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== mimic-response@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== +min-document@^2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" + integrity sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ== + dependencies: + dom-walk "^0.1.0" + mini-css-extract-plugin@^0.9.0: version "0.9.0" - resolved "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz#47f2cf07aa165ab35733b1fc97d4c46c0564339e" integrity sha512-lp3GeY7ygcgAmVIcRPBVhIkf8Us7FZjA+ILpal44qLdSu11wmjKQ3d9k15lfD7pO4esu9eUIAW7qiYIBppv40A== dependencies: loader-utils "^1.1.0" @@ -5497,40 +6251,52 @@ mini-css-extract-plugin@^0.9.0: schema-utils "^1.0.0" webpack-sources "^1.1.0" -minimalistic-assert@^1.0.0: +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== +minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== + minimatch@3.0.4: version "3.0.4" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" + 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: +minimatch@^3.0.4, minimatch@^3.1.1: version "3.1.2" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" + 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.6: +minimatch@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.0.tgz#1717b464f4971b144f6aabe8f2d0b8e4511e09c7" + integrity sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg== + dependencies: + brace-expansion "^2.0.1" + +minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.6: version "1.2.6" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== minipass-collect@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== dependencies: minipass "^3.0.0" minipass-fetch@^2.0.3: version "2.1.0" - resolved "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-2.1.0.tgz#ca1754a5f857a3be99a9271277246ac0b44c3ff8" integrity sha512-H9U4UVBGXEyyWJnqYDCLp1PwD8XIkJ4akNHp1aGVI+2Ym7wQMlxDKi4IB4JbmyU+pl9pEs/cVrK6cOuvmbK4Sg== dependencies: minipass "^3.1.6" @@ -5541,35 +6307,35 @@ minipass-fetch@^2.0.3: minipass-flush@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== dependencies: minipass "^3.0.0" minipass-pipeline@^1.2.2, minipass-pipeline@^1.2.4: version "1.2.4" - resolved "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz" + resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== dependencies: minipass "^3.0.0" minipass-sized@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70" integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== dependencies: minipass "^3.0.0" minipass@^3.0.0, minipass@^3.1.1, minipass@^3.1.6: version "3.1.6" - resolved "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.6.tgz#3b8150aa688a711a1521af5e8779c1d3bb4f45ee" integrity sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ== dependencies: yallist "^4.0.0" minizlib@^2.1.1, minizlib@^2.1.2: version "2.1.2" - resolved "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== dependencies: minipass "^3.0.0" @@ -5577,28 +6343,33 @@ minizlib@^2.1.1, minizlib@^2.1.2: mixin-deep@^1.2.0: version "1.3.2" - resolved "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== dependencies: for-in "^1.0.2" is-extendable "^1.0.1" +mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" + integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== + mkdirp@^0.5.1, mkdirp@^0.5.4, mkdirp@^0.5.5: version "0.5.6" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== dependencies: minimist "^1.2.6" mkdirp@^1.0.3, mkdirp@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== move-concurrently@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz" - integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= + resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + integrity sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ== dependencies: aproba "^1.1.1" copy-concurrently "^1.0.0" @@ -5609,7 +6380,7 @@ move-concurrently@^1.0.1: mpris-service@^2.1.2: version "2.1.2" - resolved "https://registry.npmjs.org/mpris-service/-/mpris-service-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/mpris-service/-/mpris-service-2.1.2.tgz#ed6db2574f48e1fc356413fd3fc8e857d93d2e7b" integrity sha512-AC6WepCnFWwOME9OWplHZ8ps/BB+g9QrEpUKCv7wX82fDPzR3nPrypOFmL/Fm0JloEAu6QTWSfDLLc6mM/jinw== dependencies: dbus-next "^0.9.2" @@ -5618,27 +6389,27 @@ mpris-service@^2.1.2: ms@2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== ms@2.1.2: version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + 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: version "2.1.3" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== multicast-dns-service-types@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz" - integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= + resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" + integrity sha512-cnAsSVxIDsYt0v7HmC0hWZFwwXSh+E6PgCrREDuN/EsjgLwA5XRmlMHhSiDPrt6HxY1gTivEa/Zh7GtODoLevQ== multicast-dns@^6.0.1: version "6.2.3" - resolved "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== dependencies: dns-packet "^1.3.1" @@ -5646,7 +6417,7 @@ multicast-dns@^6.0.1: music-metadata@^7.12.3: version "7.12.3" - resolved "https://registry.npmjs.org/music-metadata/-/music-metadata-7.12.3.tgz" + resolved "https://registry.yarnpkg.com/music-metadata/-/music-metadata-7.12.3.tgz#47d2414a959352c9d310074d39182e9be71e1419" integrity sha512-6pZngaroNxGBf8KZjE8reGZJiS533eJq7dBFsyoiEAZIORQAxmVVx20ABh9W2tsLT+5mKYyDzcNi5GuHf3jitg== dependencies: "@tokenizer/token" "^0.3.0" @@ -5659,17 +6430,17 @@ music-metadata@^7.12.3: musickit-typescript@^1.2.4: version "1.2.4" - resolved "https://registry.npmjs.org/musickit-typescript/-/musickit-typescript-1.2.4.tgz" + resolved "https://registry.yarnpkg.com/musickit-typescript/-/musickit-typescript-1.2.4.tgz#d055117e2c897c4ebc570f0d969ad31649744837" integrity sha512-3+/20Pi2zOVAHfUFf631LU2NwaC/qEHBBksM+YQzQ/fff4tIMPX5WJ6We/WXmwTHkAkHIOEitJW4cRPnvVAq+A== nan@^2.12.1: - version "2.15.0" - resolved "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz" - integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== + version "2.16.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.16.0.tgz#664f43e45460fb98faf00edca0bb0d7b8dce7916" + integrity sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA== nanomatch@^1.2.9: version "1.2.13" - resolved "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== dependencies: arr-diff "^4.0.0" @@ -5684,47 +6455,61 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" +napi-build-utils@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" + integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== + negotiator@0.6.3, negotiator@^0.6.3: version "0.6.3" - resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== neo-async@^2.6.2: version "2.6.2" - resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== nice-try@^1.0.4: version "1.0.5" - resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== no-case@^3.0.4: version "3.0.4" - resolved "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== dependencies: lower-case "^2.0.2" tslib "^2.0.3" -node-addon-api@^1.3.0, node-addon-api@^1.6.3: +node-abi@^3.3.0: + version "3.22.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.22.0.tgz#00b8250e86a0816576258227edbce7bbe0039362" + integrity sha512-u4uAs/4Zzmp/jjsD9cyFYDXeISfUWaAVWshPmDZOFOv4Xl4SbzTXm53I04C2uRueYJ+0t5PEtLH/owbn2Npf/w== + dependencies: + semver "^7.3.5" + +node-addon-api@^1.6.3: version "1.7.2" - resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.2.tgz#3df30b95720b53c24e59948b49532b662444f54d" integrity sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg== node-fetch@^2.6.1: - version "2.6.1" - resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz" - integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== + version "2.6.7" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" + integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== + dependencies: + whatwg-url "^5.0.0" node-forge@^0.10.0: version "0.10.0" - resolved "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== node-gyp@^9.0.0: version "9.0.0" - resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-9.0.0.tgz" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-9.0.0.tgz#e1da2067427f3eb5bb56820cb62bc6b1e4bd2089" integrity sha512-Ma6p4s+XCTPxCuAMrOA/IJRmVy16R8Sdhtwl4PrCr7IBlj4cPawF0vg/l7nOT1jPbuNS7lIRJpBSvVsXwEZuzw== dependencies: env-paths "^2.2.0" @@ -5740,17 +6525,17 @@ node-gyp@^9.0.0: node-loader@^0.6.0: version "0.6.0" - resolved "https://registry.npmjs.org/node-loader/-/node-loader-0.6.0.tgz" - integrity sha1-x5fvUQle1YWZArFX9jhPY2HgWug= + resolved "https://registry.yarnpkg.com/node-loader/-/node-loader-0.6.0.tgz#c797ef51095ed5859902b157f6384f6361e05ae8" + integrity sha512-WlUacqHqHWb383Mec656pJmAtg7EXBcijg1sovgy0tI4xevAzv8RqcRARTMlzm0HLXzy1Pdo/DMU19/fxoMnmA== -node-releases@^2.0.2: - version "2.0.3" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.3.tgz" - integrity sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw== +node-releases@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.5.tgz#280ed5bc3eba0d96ce44897d8aee478bfb3d9666" + integrity sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q== node-ssdp@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/node-ssdp/-/node-ssdp-4.0.1.tgz" + 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" @@ -5761,27 +6546,37 @@ node-ssdp@^4.0.1: nopt@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== 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.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w== dependencies: remove-trailing-separator "^1.0.1" normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== normalize-url@1.9.1, normalize-url@^1.9.1: version "1.9.1" - resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz" - integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" + integrity sha512-A48My/mtCklowHBlI8Fq2jFWK4tX4lJ5E6ytFsSOq1fzpvT0SQSgKhSg7lN5c2uYFOrUAOQp6zhhJnpp1eMloQ== dependencies: object-assign "^4.0.1" prepend-http "^1.0.0" @@ -5790,17 +6585,17 @@ normalize-url@1.9.1, normalize-url@^1.9.1: normalize-url@^4.1.0: version "4.5.1" - resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== normalize-url@^6.0.1: version "6.1.0" - resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== npm-conf@^1.1.3: version "1.1.3" - resolved "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9" integrity sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw== dependencies: config-chain "^1.1.11" @@ -5808,57 +6603,62 @@ npm-conf@^1.1.3: npm-run-path@^2.0.0: version "2.0.2" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw== dependencies: path-key "^2.0.0" npm-run-path@^4.0.0: version "4.0.1" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== dependencies: path-key "^3.0.0" npmlog@^6.0.0: - version "6.0.1" - resolved "https://registry.npmjs.org/npmlog/-/npmlog-6.0.1.tgz" - integrity sha512-BTHDvY6nrRHuRfyjt1MAufLxYdVXZfd099H4+i1f0lPywNQyI4foeNXJRObB/uy+TYqUW0vAD9gbdSOXPst7Eg== + version "6.0.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-6.0.2.tgz#c8166017a42f2dea92d6453168dd865186a70830" + integrity sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg== dependencies: are-we-there-yet "^3.0.0" console-control-strings "^1.1.0" - gauge "^4.0.0" + gauge "^4.0.3" set-blocking "^2.0.0" nth-check@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz" - integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w== + version "2.1.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== dependencies: boolbase "^1.0.0" +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ== + object-assign@^4.0.1, object-assign@^4.1.0: version "4.1.1" - resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== object-copy@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ== dependencies: copy-descriptor "^0.1.0" define-property "^0.2.5" kind-of "^3.0.3" object-inspect@^1.12.0, object-inspect@^1.9.0: - version "1.12.0" - resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz" - integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== + version "1.12.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" + integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== object-is@^1.0.1: version "1.1.5" - resolved "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== dependencies: call-bind "^1.0.2" @@ -5866,19 +6666,19 @@ object-is@^1.0.1: object-keys@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== object-visit@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA== dependencies: isobject "^3.0.0" object.assign@^4.1.0, object.assign@^4.1.2: version "4.1.2" - resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== dependencies: call-bind "^1.0.0" @@ -5887,136 +6687,163 @@ object.assign@^4.1.0, object.assign@^4.1.2: object-keys "^1.1.1" object.getownpropertydescriptors@^2.0.3: - version "2.1.3" - resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz" - integrity sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw== + version "2.1.4" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.4.tgz#7965e6437a57278b587383831a9b829455a4bc37" + integrity sha512-sccv3L/pMModT6dJAYF3fzGMVcb38ysQ0tEE6ixv2yXJDtEIPph268OlAdJj5/qZMZDq2g/jqvwppt36uS/uQQ== dependencies: + array.prototype.reduce "^1.0.4" call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" + define-properties "^1.1.4" + es-abstract "^1.20.1" object.pick@^1.3.0: version "1.3.0" - resolved "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ== dependencies: isobject "^3.0.1" obuf@^1.0.0, obuf@^1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= +omggif@^1.0.10, omggif@^1.0.9: + version "1.0.10" + resolved "https://registry.yarnpkg.com/omggif/-/omggif-1.0.10.tgz#ddaaf90d4a42f532e9e7cb3a95ecdd47f17c7b19" + integrity sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw== + +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== dependencies: ee-first "1.1.1" on-headers@~1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" onetime@^5.1.0, onetime@^5.1.2: version "5.1.2" - resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== dependencies: mimic-fn "^2.1.0" opn@^5.5.0: version "5.5.0" - resolved "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz" + resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== dependencies: is-wsl "^1.1.0" -original@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/original/-/original-1.0.2.tgz" - integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== +os-locale@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" + integrity sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA== dependencies: - url-parse "^1.4.3" + execa "^0.7.0" + lcid "^1.0.0" + mem "^1.1.0" p-cancelable@^1.0.0: version "1.1.0" - resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== p-cancelable@^2.0.0: version "2.1.1" - resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== p-finally@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== + +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.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== 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 sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg== + dependencies: + p-limit "^1.1.0" + p-locate@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== dependencies: p-limit "^2.0.0" p-locate@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== dependencies: p-limit "^2.2.0" p-map@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== p-map@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d" integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ== dependencies: aggregate-error "^3.0.0" p-map@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== dependencies: aggregate-error "^3.0.0" p-retry@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== 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 sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== + p-try@^2.0.0: version "2.2.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== package-json@^6.3.0: version "6.5.0" - resolved "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== dependencies: got "^9.6.0" @@ -6024,35 +6851,75 @@ package-json@^6.3.0: registry-url "^5.0.0" semver "^6.2.0" +pako@^1.0.5: + version "1.0.11" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + param-case@^3.0.3: version "3.0.4" - resolved "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== dependencies: dot-case "^3.0.4" tslib "^2.0.3" +parse-bmfont-ascii@^1.0.3: + version "1.0.6" + resolved "https://registry.yarnpkg.com/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz#11ac3c3ff58f7c2020ab22769079108d4dfa0285" + integrity sha512-U4RrVsUFCleIOBsIGYOMKjn9PavsGOXxbvYGtMOEfnId0SVNsgehXh1DxUdVPLoxd5mvcEtvmKs2Mmf0Mpa1ZA== + +parse-bmfont-binary@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz#d038b476d3e9dd9db1e11a0b0e53a22792b69006" + integrity sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA== + +parse-bmfont-xml@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz#015319797e3e12f9e739c4d513872cd2fa35f389" + integrity sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ== + dependencies: + xml-parse-from-string "^1.0.0" + xml2js "^0.4.5" + +parse-headers@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.5.tgz#069793f9356a54008571eb7f9761153e6c770da9" + integrity sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA== + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ== + dependencies: + error-ex "^1.2.0" + parse-json@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== dependencies: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" parse-passwd@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz" - integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= + resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + integrity sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q== + +parse-raw-http@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/parse-raw-http/-/parse-raw-http-0.0.1.tgz#d71a51512a691706bf481b4a7c65b606c8f845f4" + integrity sha512-GndQvIQXviId7eHnc+fEcmtEjkj1tQ96EhNOplPwXA8L1jgOnrlx/xLmmOEew8Yj4ZoZpmoAh0IvypAaeMbILg== parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" - resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== pascal-case@^3.1.2: version "3.1.2" - resolved "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== dependencies: no-case "^3.0.4" @@ -6060,150 +6927,174 @@ pascal-case@^3.1.2: pascalcase@^0.1.1: version "0.1.1" - resolved "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== path-dirname@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q== path-exists@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== path-exists@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-is-inside@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz" - integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w== path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-parse@^1.0.7: version "1.0.7" - resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== path-to-regexp@0.1.7: version "0.1.7" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== + +path-type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + integrity sha512-dUnb5dXUf+kzhC/W/F4e5/SkluXIFf5VUHolW1Eg1irn1hGWjPGdsRcvYJ1nD6lhk8Ir7VM0bHJKsYTx8Jx9OQ== + dependencies: + pify "^2.0.0" pause-stream@0.0.11: version "0.0.11" - resolved "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz" - integrity sha1-/lo0sMvOErWqaitAPuLnO2AvFEU= + resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" + integrity sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A== dependencies: through "~2.3" peek-readable@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz" + 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" - resolved "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz" - integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== + +phin@^2.9.1: + version "2.9.3" + resolved "https://registry.yarnpkg.com/phin/-/phin-2.9.3.tgz#f9b6ac10a035636fb65dfc576aaaa17b8743125c" + integrity sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA== picocolors@^0.2.1: version "0.2.1" - resolved "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== picocolors@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" + 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.1: version "2.3.1" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== pify@^2.0.0: version "2.3.0" - resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== pify@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== pify@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== pinkie-promise@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" - integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw== dependencies: pinkie "^2.0.0" pinkie@^2.0.0: version "2.0.4" - resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" - integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== + +pixelmatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/pixelmatch/-/pixelmatch-4.0.2.tgz#8f47dcec5011b477b67db03c243bc1f3085e8854" + integrity sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA== + dependencies: + pngjs "^3.0.0" pkg-dir@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== dependencies: find-up "^3.0.0" pkg-dir@^4.1.0: version "4.2.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== dependencies: find-up "^4.0.0" pkg-up@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== dependencies: find-up "^3.0.0" -plist@^3.0.1, plist@^3.0.4: +plist@^3.0.1, plist@^3.0.4, plist@^3.0.5: version "3.0.5" - resolved "https://registry.npmjs.org/plist/-/plist-3.0.5.tgz" + resolved "https://registry.yarnpkg.com/plist/-/plist-3.0.5.tgz#2cbeb52d10e3cdccccf0c11a63a85d830970a987" integrity sha512-83vX4eYdQp3vP9SxuYgEM/G/pJQqLUz/V/xzPrzruLs7fz7jxGQ1msZ/mg1nwZxUSuOp4sb+/bEIbRrbzZRxDA== dependencies: base64-js "^1.5.1" xmlbuilder "^9.0.7" +pngjs@^3.0.0, pngjs@^3.3.3: + version "3.4.0" + resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" + integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== + pngjs@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-5.0.0.tgz#e79dd2b215767fd9c04561c01236df960bce7fbb" integrity sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw== portfinder@^1.0.26: version "1.0.28" - resolved "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== dependencies: async "^2.6.2" @@ -6212,19 +7103,19 @@ portfinder@^1.0.26: posix-character-classes@^0.1.0: version "0.1.1" - resolved "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg== postcss-modules-extract-imports@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== dependencies: postcss "^7.0.5" postcss-modules-local-by-default@^3.0.2: version "3.0.3" - resolved "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0" integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw== dependencies: icss-utils "^4.1.1" @@ -6234,7 +7125,7 @@ postcss-modules-local-by-default@^3.0.2: postcss-modules-scope@^2.2.0: version "2.2.0" - resolved "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee" integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== dependencies: postcss "^7.0.6" @@ -6242,7 +7133,7 @@ postcss-modules-scope@^2.2.0: postcss-modules-values@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== dependencies: icss-utils "^4.0.0" @@ -6250,7 +7141,7 @@ postcss-modules-values@^3.0.0: postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: version "6.0.10" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d" integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== dependencies: cssesc "^3.0.0" @@ -6258,30 +7149,48 @@ postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: postcss-value-parser@^4.1.0: version "4.2.0" - resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== postcss@^7.0.14, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: version "7.0.39" - resolved "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309" integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== dependencies: picocolors "^0.2.1" source-map "^0.6.1" +prebuild-install@^7.1.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.1.tgz#de97d5b34a70a0c81334fd24641f2a1702352e45" + integrity sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw== + dependencies: + detect-libc "^2.0.0" + expand-template "^2.0.3" + github-from-package "0.0.0" + minimist "^1.2.3" + mkdirp-classic "^0.5.3" + napi-build-utils "^1.0.1" + node-abi "^3.3.0" + pump "^3.0.0" + rc "^1.2.7" + simple-get "^4.0.0" + tar-fs "^2.0.0" + tunnel-agent "^0.6.0" + prepend-http@^1.0.0: version "1.0.4" - resolved "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz" - integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + integrity sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg== prepend-http@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz" - integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + integrity sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA== pretty-error@^2.1.1: version "2.1.2" - resolved "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.2.tgz#be89f82d81b1c86ec8fdfbc385045882727f93b6" integrity sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw== dependencies: lodash "^4.17.20" @@ -6289,22 +7198,27 @@ pretty-error@^2.1.1: process-nextick-args@~2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== + progress@^2.0.3: version "2.0.3" - resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== promise-inflight@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz" - integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== promise-retry@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== dependencies: err-code "^2.0.2" @@ -6312,13 +7226,13 @@ promise-retry@^2.0.1: proto-list@~1.2.1: version "1.2.4" - resolved "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz" - integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== protobufjs@^6.8.8: - version "6.11.2" - resolved "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.2.tgz" - integrity sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw== + version "6.11.3" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.3.tgz#637a527205a35caa4f3e2a9a4a13ddffe0e7af74" + integrity sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg== dependencies: "@protobufjs/aspromise" "^1.1.2" "@protobufjs/base64" "^1.1.2" @@ -6336,7 +7250,7 @@ protobufjs@^6.8.8: proxy-addr@~2.0.7: version "2.0.7" - resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== dependencies: forwarded "0.2.0" @@ -6344,12 +7258,17 @@ proxy-addr@~2.0.7: prr@~1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== pump@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== dependencies: end-of-stream "^1.1.0" @@ -6357,29 +7276,29 @@ pump@^3.0.0: punycode@1.3.2: version "1.3.2" - resolved "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw== punycode@^2.1.0: version "2.1.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== pupa@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62" integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== dependencies: escape-goat "^2.0.0" qap@^3.1.2: version "3.3.1" - resolved "https://registry.npmjs.org/qap/-/qap-3.3.1.tgz" - integrity sha1-Efno+oiQ/ny5khDA9E0GE7c3LKw= + resolved "https://registry.yarnpkg.com/qap/-/qap-3.3.1.tgz#11f9e8fa8890fe7cb99210c0f44d0613b7372cac" + integrity sha512-U0MV9LRz4u19xaK4gssnwyc7XWTnFdmDGrgG9hvV6nchKeu3XeITTclugWKT9rLiLK2GvN3utSkKY90+1tEHkw== qrcode@^1.5.0: version "1.5.0" - resolved "https://registry.npmjs.org/qrcode/-/qrcode-1.5.0.tgz" + resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.5.0.tgz#95abb8a91fdafd86f8190f2836abbfc500c72d1b" integrity sha512-9MgRpgVc+/+47dFvQeD6U2s0Z92EsKzcHogtum4QB+UNd025WOJSHvn/hjk9xmzj7Stj95CyUAs31mrjxliEsQ== dependencies: dijkstrajs "^1.0.1" @@ -6387,59 +7306,61 @@ qrcode@^1.5.0: pngjs "^5.0.0" yargs "^15.3.1" -qs@6.9.7: - version "6.9.7" - resolved "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz" - integrity sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw== +qs@6.10.3: + version "6.10.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" + integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== + dependencies: + side-channel "^1.0.4" query-string@^4.1.0: version "4.3.4" - resolved "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz" - integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= + resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" + integrity sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q== dependencies: object-assign "^4.1.0" strict-uri-encode "^1.0.0" querystring@0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g== querystringify@^2.1.1: version "2.2.0" - resolved "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== quick-lru@^5.1.1: version "5.1.1" - resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== randombytes@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" range-parser@^1.2.1, range-parser@~1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" + 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.3: - version "2.4.3" - resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz" - integrity sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g== +raw-body@2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" + integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== dependencies: bytes "3.1.2" - http-errors "1.8.1" + http-errors "2.0.0" iconv-lite "0.4.24" unpipe "1.0.0" -rc@^1.2.8: +rc@^1.2.7, rc@^1.2.8: version "1.2.8" - resolved "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== dependencies: deep-extend "^0.6.0" @@ -6448,23 +7369,23 @@ rc@^1.2.8: strip-json-comments "~2.0.1" react-dom@^18.0.0: - version "18.0.0" - resolved "https://registry.npmjs.org/react-dom/-/react-dom-18.0.0.tgz" - integrity sha512-XqX7uzmFo0pUceWFCt7Gff6IyIMzFUn7QMZrbrQfGxtaxXZIcGQzoNpRLE3fQLnS4XzLLPMZX2T9TRcSrasicw== + version "18.1.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.1.0.tgz#7f6dd84b706408adde05e1df575b3a024d7e8a2f" + integrity sha512-fU1Txz7Budmvamp7bshe4Zi32d0ll7ect+ccxNu9FlObT605GOEB8BfO4tmRJ39R5Zj831VCpvQ05QPBW5yb+w== dependencies: loose-envify "^1.1.0" - scheduler "^0.21.0" + scheduler "^0.22.0" react@^18.0.0: - version "18.0.0" - resolved "https://registry.npmjs.org/react/-/react-18.0.0.tgz" - integrity sha512-x+VL6wbT4JRVPm7EGxXhZ8w8LTROaxPXOqhlGyVSrv0sB1jkyFGgXxJ8LVoPRLvPR6/CIZGFmfzqUa2NYeMr2A== + version "18.1.0" + resolved "https://registry.yarnpkg.com/react/-/react-18.1.0.tgz#6f8620382decb17fdc5cc223a115e2adbf104890" + integrity sha512-4oL8ivCz5ZEPyclFQXaNksK3adutVS8l2xzZU0cqEFrE9Sb7fC0EFK5uEk74wIreL1DERyjvsU915j1pcT2uEQ== dependencies: loose-envify "^1.1.0" read-config-file@6.2.0: version "6.2.0" - resolved "https://registry.npmjs.org/read-config-file/-/read-config-file-6.2.0.tgz" + resolved "https://registry.yarnpkg.com/read-config-file/-/read-config-file-6.2.0.tgz#71536072330bcd62ba814f91458b12add9fc7ade" integrity sha512-gx7Pgr5I56JtYz+WuqEbQHj/xWo+5Vwua2jhb1VwM4Wid5PqYmZ4i00ZB0YEGIfkVBsCv9UrjgyqCiQfS/Oosg== dependencies: dotenv "^9.0.2" @@ -6475,7 +7396,7 @@ read-config-file@6.2.0: read-config-file@~4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/read-config-file/-/read-config-file-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/read-config-file/-/read-config-file-4.0.1.tgz#ece5f6b1a5e6a46d0d93fdd0339f2f60ab892776" integrity sha512-5caED3uo2IAZMPcbh/9hx/O29s2430RLxtnFDdzxpH/epEpawOrQnGBHueotIXUrGPPIgdNQN+S/CIp2WmiSfw== dependencies: ajv "^6.10.1" @@ -6487,9 +7408,26 @@ 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 sha512-1orxQfbWGUiTn9XsPlChs6rLie/AV9jwZTGmu2NZw/CUDJQchXJFYE0Fq5j7+n558T1JhDWLdhyd1Zj+wLY//w== + 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 sha512-eFIBOPW7FGjzBuk3hdXEuNSiTZS/xEMlH49HxMyzb0hyPfu4EhVjT2DH32K1hSSmVq4sebAWnZuuY5auISUTGA== + 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.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== dependencies: core-util-is "~1.0.0" @@ -6500,9 +7438,9 @@ read-config-file@~4.0.1: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.0.6, readable-stream@^3.6.0: +readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.0" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== dependencies: inherits "^2.0.3" @@ -6511,14 +7449,14 @@ readable-stream@^3.0.6, readable-stream@^3.6.0: readable-web-to-node-stream@^3.0.0: version "3.0.2" - resolved "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz#5d52bb5df7b54861fd48d015e93a2cb87b3ee0bb" integrity sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw== dependencies: readable-stream "^3.6.0" readdirp@^2.2.1: version "2.2.1" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== dependencies: graceful-fs "^4.1.11" @@ -6527,46 +7465,46 @@ readdirp@^2.2.1: readdirp@~3.6.0: version "3.6.0" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" + 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.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz#7f442732aa7934a3740c779bb9b3340dccc1fb56" integrity sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw== dependencies: regenerate "^1.4.2" regenerate@^1.4.2: version "1.4.2" - resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== -regenerator-runtime@^0.13.4: +regenerator-runtime@^0.13.3, regenerator-runtime@^0.13.4: version "0.13.9" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== regenerator-transform@^0.15.0: version "0.15.0" - resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.0.tgz#cbd9ead5d77fae1a48d957cf889ad0586adb6537" integrity sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg== dependencies: "@babel/runtime" "^7.8.4" regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== dependencies: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexp.prototype.flags@^1.2.0: +regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.4.3: version "1.4.3" - resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== dependencies: call-bind "^1.0.2" @@ -6575,7 +7513,7 @@ regexp.prototype.flags@^1.2.0: regexpu-core@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.0.1.tgz#c531122a7840de743dcf9c83e923b5560323ced3" integrity sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw== dependencies: regenerate "^1.4.2" @@ -6585,52 +7523,45 @@ regexpu-core@^5.0.1: unicode-match-property-ecmascript "^2.0.0" unicode-match-property-value-ecmascript "^2.0.0" -"register-scheme@github:devsnek/node-register-scheme": - version "0.0.2" - resolved "https://codeload.github.com/devsnek/node-register-scheme/tar.gz/e7cc9a63a1f512565da44cb57316d9fb10750e17" - dependencies: - bindings "^1.3.0" - node-addon-api "^1.3.0" - registry-auth-token@^4.0.0: version "4.2.1" - resolved "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.1.tgz#6d7b4006441918972ccd5fedcd41dc322c79b250" integrity sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw== dependencies: rc "^1.2.8" registry-url@^5.0.0: version "5.1.0" - resolved "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== dependencies: rc "^1.2.8" regjsgen@^0.6.0: version "0.6.0" - resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.6.0.tgz#83414c5354afd7d6627b16af5f10f41c4e71808d" integrity sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA== regjsparser@^0.8.2: version "0.8.4" - resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.8.4.tgz#8a14285ffcc5de78c5b95d62bbf413b6bc132d5f" integrity sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA== dependencies: jsesc "~0.5.0" relateurl@^0.2.7: version "0.2.7" - resolved "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz" - integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== remove-trailing-separator@^1.0.1: version "1.1.0" - resolved "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== renderkid@^2.0.4: version "2.0.7" - resolved "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.7.tgz#464f276a6bdcee606f4a15993f9b29fc74ca8609" integrity sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ== dependencies: css-select "^4.1.3" @@ -6641,67 +7572,72 @@ renderkid@^2.0.4: repeat-element@^1.1.2: version "1.1.4" - resolved "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== repeat-string@^1.6.1: version "1.6.1" - resolved "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== require-directory@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== require-from-string@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + integrity sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug== + require-main-filename@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== requires-port@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== resolve-alpn@^1.0.0: version "1.2.1" - resolved "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== resolve-cwd@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz" - integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + integrity sha512-ccu8zQTrzVr954472aUVPLEcB3YpKSYR3cg/3lo1okzobPBM+1INXBbBZlDbnI/hbEocnf8j0QVo43hQKrbchg== dependencies: resolve-from "^3.0.0" resolve-dir@^1.0.0, resolve-dir@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz" - integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= + resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" + integrity sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg== dependencies: expand-tilde "^2.0.0" global-modules "^1.0.0" resolve-from@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz" - integrity sha1-six699nWiBvItuZTM17rywoYh0g= + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw== resolve-url@^0.2.1: version "0.2.1" - resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== -resolve@^1.14.2: +resolve@^1.10.0, resolve@^1.14.2: version "1.22.0" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== dependencies: is-core-module "^2.8.1" @@ -6710,45 +7646,45 @@ resolve@^1.14.2: responselike@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz" - integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= + resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + integrity sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ== dependencies: lowercase-keys "^1.0.0" responselike@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723" integrity sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw== dependencies: lowercase-keys "^2.0.0" ret@~0.1.10: version "0.1.15" - resolved "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== retry@^0.12.0: version "0.12.0" - resolved "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz" - integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.3, rimraf@^2.7.1: version "2.7.1" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== dependencies: glob "^7.1.3" rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" + 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.npmjs.org/roarr/-/roarr-2.15.4.tgz" + resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.4.tgz#f5fe795b7b838ccfe35dc608e0282b9eba2e7afd" integrity sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A== dependencies: boolean "^3.0.1" @@ -6760,60 +7696,60 @@ roarr@^2.15.3: run-queue@^1.0.0, run-queue@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz" - integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= + resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + integrity sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg== dependencies: aproba "^1.1.1" run-script-os@^1.1.6: version "1.1.6" - resolved "https://registry.npmjs.org/run-script-os/-/run-script-os-1.1.6.tgz" + resolved "https://registry.yarnpkg.com/run-script-os/-/run-script-os-1.1.6.tgz#8b0177fb1b54c99a670f95c7fdc54f18b9c72347" integrity sha512-ql6P2LzhBTTDfzKts+Qo4H94VUKpxKDFz6QxxwaUZN0mwvi7L3lpOI7BqPCq7lgDh3XLl0dpeXwfcVIitlrYrw== safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.2.0: version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-regex@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg== dependencies: ret "~0.1.10" "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" - resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== sanitize-filename@^1.6.3: version "1.6.3" - resolved "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz" + resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378" integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg== dependencies: truncate-utf8-bytes "^1.0.0" sax@>=0.6.0, sax@^1.2.4: version "1.2.4" - resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== -scheduler@^0.21.0: - version "0.21.0" - resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.21.0.tgz" - integrity sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ== +scheduler@^0.22.0: + version "0.22.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.22.0.tgz#83a5d63594edf074add9a7198b1bae76c3db01b8" + integrity sha512-6QAm1BgQI88NPYymgGQLCZgvep4FyePDWFpXVK+zNSUgHwlqpJy8VEh8Et0KxTACS4VWwMousBElAZOH9nkkoQ== dependencies: loose-envify "^1.1.0" schema-utils@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== dependencies: ajv "^6.1.0" @@ -6822,7 +7758,7 @@ schema-utils@^1.0.0: schema-utils@^2.6.5, schema-utils@^2.6.6, schema-utils@^2.7.0: version "2.7.1" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== dependencies: "@types/json-schema" "^7.0.5" @@ -6831,7 +7767,7 @@ schema-utils@^2.6.5, schema-utils@^2.6.6, schema-utils@^2.7.0: schema-utils@^3.0.0, schema-utils@^3.1.0, schema-utils@^3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== dependencies: "@types/json-schema" "^7.0.8" @@ -6840,94 +7776,94 @@ schema-utils@^3.0.0, schema-utils@^3.1.0, schema-utils@^3.1.1: select-hose@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz" - integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== selfsigned@^1.10.8: version "1.10.14" - resolved "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.14.tgz" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.14.tgz#ee51d84d9dcecc61e07e4aba34f229ab525c1574" integrity sha512-lkjaiAye+wBZDCBsu5BGi0XiLRxeUlsGod5ZP924CRSEoGuZAw/f7y9RKu28rwTfiHVhdavhB0qH0INV6P1lEA== dependencies: node-forge "^0.10.0" semver-compare@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz" - integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= + resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow== semver-diff@^3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== 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.npmjs.org/semver/-/semver-7.0.0.tgz" + 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.npmjs.org/semver/-/semver-5.7.1.tgz" - 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.npmjs.org/semver/-/semver-6.3.0.tgz" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== semver@^7.1.3, semver@^7.2.3, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: version "7.3.7" - resolved "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== dependencies: lru-cache "^6.0.0" -send@0.17.2: - version "0.17.2" - resolved "https://registry.npmjs.org/send/-/send-0.17.2.tgz" - integrity sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww== +send@0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== dependencies: debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" + depd "2.0.0" + destroy "1.2.0" encodeurl "~1.0.2" escape-html "~1.0.3" etag "~1.8.1" fresh "0.5.2" - http-errors "1.8.1" + http-errors "2.0.0" mime "1.6.0" ms "2.1.3" - on-finished "~2.3.0" + on-finished "2.4.1" range-parser "~1.2.1" - statuses "~1.5.0" + statuses "2.0.1" serialize-error@^7.0.1: version "7.0.1" - resolved "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz" + resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-7.0.1.tgz#f1360b0447f61ffb483ec4157c737fab7d778e18" integrity sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw== dependencies: type-fest "^0.13.1" serialize-javascript@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== dependencies: randombytes "^2.1.0" serialize-javascript@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== dependencies: randombytes "^2.1.0" serve-index@^1.9.1: version "1.9.1" - resolved "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz" - integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== dependencies: accepts "~1.3.4" batch "0.6.1" @@ -6937,24 +7873,24 @@ serve-index@^1.9.1: mime-types "~2.1.17" parseurl "~1.3.2" -serve-static@1.14.2: - version "1.14.2" - resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz" - integrity sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ== +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== dependencies: encodeurl "~1.0.2" escape-html "~1.0.3" parseurl "~1.3.3" - send "0.17.2" + send "0.18.0" set-blocking@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== set-value@^2.0.0, set-value@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== dependencies: extend-shallow "^2.0.1" @@ -6964,41 +7900,41 @@ set-value@^2.0.0, set-value@^2.0.1: setprototypeof@1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== setprototypeof@1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== shebang-command@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== dependencies: shebang-regex "^1.0.0" shebang-command@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: shebang-regex "^3.0.0" shebang-regex@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== shebang-regex@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== side-channel@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== dependencies: call-bind "^1.0.0" @@ -7007,9 +7943,32 @@ side-channel@^1.0.4: signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.7: version "3.0.7" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== +simple-concat@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + +simple-get@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" + integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== + dependencies: + decompress-response "^6.0.0" + once "^1.3.1" + simple-concat "^1.0.0" + +simple-plist@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/simple-plist/-/simple-plist-1.3.1.tgz#16e1d8f62c6c9b691b8383127663d834112fb017" + integrity sha512-iMSw5i0XseMnrhtIzRb7XpQEXepa9xhWxGUojHBL43SIpQuDQkh3Wpy67ZbDzZVr6EKxvwVChnVpdl8hEVLDiw== + dependencies: + bplist-creator "0.1.0" + bplist-parser "0.3.1" + plist "^3.0.5" + slice-ansi@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" @@ -7021,12 +7980,12 @@ slice-ansi@^3.0.0: smart-buffer@^4.0.2, smart-buffer@^4.2.0: version "4.2.0" - resolved "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== snapdragon-node@^2.0.1: version "2.1.1" - resolved "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== dependencies: define-property "^1.0.0" @@ -7035,14 +7994,14 @@ snapdragon-node@^2.0.1: snapdragon-util@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== dependencies: kind-of "^3.2.0" snapdragon@^0.8.1: version "0.8.2" - resolved "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== dependencies: base "^0.11.1" @@ -7055,29 +8014,29 @@ snapdragon@^0.8.1: use "^3.1.0" sockjs-client@^1.5.0: - version "1.6.0" - resolved "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.6.0.tgz" - integrity sha512-qVHJlyfdHFht3eBFZdKEXKTlb7I4IV41xnVNo8yUKA1UHcPJwgW2SvTq9LhnjjCywSkSK7c/e4nghU0GOoMCRQ== + version "1.6.1" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.6.1.tgz#350b8eda42d6d52ddc030c39943364c11dcad806" + integrity sha512-2g0tjOR+fRs0amxENLi/q5TiJTqY+WXFOzb5UwXndlK6TO3U/mirZznpx6w34HVMoc3g7cY24yC/ZMIYnDlfkw== dependencies: debug "^3.2.7" - eventsource "^1.1.0" + eventsource "^2.0.2" faye-websocket "^0.11.4" inherits "^2.0.4" url-parse "^1.5.10" sockjs@^0.3.21: version "0.3.24" - resolved "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== dependencies: faye-websocket "^0.11.3" uuid "^8.3.2" websocket-driver "^0.7.4" -socks-proxy-agent@^6.1.1: - version "6.2.0" - resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.0.tgz" - integrity sha512-wWqJhjb32Q6GsrUqzuFkukxb/zzide5quXYcMVpIjxalDBBYy2nqKCFQ/9+Ie4dvOYSQdOk3hUlZSdzZOd3zMQ== +socks-proxy-agent@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz#dc069ecf34436621acb41e3efa66ca1b5fed15b6" + integrity sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww== dependencies: agent-base "^6.0.2" debug "^4.3.3" @@ -7085,7 +8044,7 @@ socks-proxy-agent@^6.1.1: socks@^2.6.2: version "2.6.2" - resolved "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.6.2.tgz#ec042d7960073d40d94268ff3bb727dc685f111a" integrity sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA== dependencies: ip "^1.1.5" @@ -7093,19 +8052,19 @@ socks@^2.6.2: sort-keys@^1.0.0: version "1.1.2" - resolved "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz" - integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" + integrity sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg== dependencies: is-plain-obj "^1.0.0" source-list-map@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== source-map-resolve@^0.5.0: version "0.5.3" - resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== dependencies: atob "^2.1.2" @@ -7116,7 +8075,7 @@ source-map-resolve@^0.5.0: source-map-support@^0.5.11, source-map-support@^0.5.16, source-map-support@^0.5.19, source-map-support@^0.5.21, source-map-support@~0.5.12, source-map-support@~0.5.20: version "0.5.21" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== dependencies: buffer-from "^1.0.0" @@ -7124,27 +8083,53 @@ source-map-support@^0.5.11, source-map-support@^0.5.16, source-map-support@^0.5. source-map-url@^0.4.0: version "0.4.1" - resolved "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== -source-map@^0.5.0, source-map@^0.5.6: +source-map@^0.5.6: version "0.5.7" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -source-map@^0.7.3, source-map@~0.7.2: - version "0.7.3" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== +source-map@^0.7.3: + version "0.7.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== + +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.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== dependencies: debug "^4.1.0" @@ -7156,7 +8141,7 @@ spdy-transport@^3.0.0: spdy@^4.0.2: version "4.0.2" - resolved "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== dependencies: debug "^4.1.0" @@ -7167,170 +8152,211 @@ spdy@^4.0.2: split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" - resolved "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== dependencies: extend-shallow "^3.0.0" split@0.3: version "0.3.3" - resolved "https://registry.npmjs.org/split/-/split-0.3.3.tgz" - integrity sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8= + resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" + integrity sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA== dependencies: through "2" sprintf-js@^1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== sprintf-js@~1.0.2: version "1.0.3" - resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== ssri@^7.0.0: version "7.1.1" - resolved "https://registry.npmjs.org/ssri/-/ssri-7.1.1.tgz" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-7.1.1.tgz#33e44f896a967158e3c63468e47ec46613b95b5f" integrity sha512-w+daCzXN89PseTL99MkA+fxJEcU3wfaE/ah0i0lnOlpG1CYLJ2ZjzEry68YBKfLs4JfoTShrTEsJkAZuNZ/stw== dependencies: figgy-pudding "^3.5.1" minipass "^3.1.1" ssri@^9.0.0: - version "9.0.0" - resolved "https://registry.npmjs.org/ssri/-/ssri-9.0.0.tgz" - integrity sha512-Y1Z6J8UYnexKFN1R/hxUaYoY2LVdKEzziPmVAFKiKX8fiwvCJTVzn/xYE9TEWod5OVyNfIHHuVfIEuBClL/uJQ== + version "9.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-9.0.1.tgz#544d4c357a8d7b71a19700074b6883fcb4eae057" + integrity sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q== dependencies: minipass "^3.1.1" stat-mode@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-1.0.0.tgz#68b55cb61ea639ff57136f36b216a291800d1465" integrity sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg== static-extend@^0.1.1: version "0.1.2" - resolved "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g== dependencies: define-property "^0.2.5" object-copy "^0.1.0" -"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +"statuses@>= 1.4.0 < 2": version "1.5.0" - resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + +stream-buffers@2.2.x: + version "2.2.0" + resolved "https://registry.yarnpkg.com/stream-buffers/-/stream-buffers-2.2.0.tgz#91d5f5130d1cef96dcfa7f726945188741d09ee4" + integrity sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg== stream-combiner@~0.0.4: version "0.0.4" - resolved "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz" - integrity sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ= + resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" + integrity sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw== dependencies: duplexer "~0.1.1" strict-uri-encode@^1.0.0: version "1.1.0" - resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz" - integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ== + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw== + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: version "4.2.3" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" +string-width@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + string-width@^3.0.0, string-width@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== dependencies: emoji-regex "^7.0.1" is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string.prototype.trimend@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz" - integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== +string.prototype.trimend@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz#914a65baaab25fbdd4ee291ca7dde57e869cb8d0" + integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" + define-properties "^1.1.4" + es-abstract "^1.19.5" -string.prototype.trimstart@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz" - integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== +string.prototype.trimstart@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz#5466d93ba58cfa2134839f81d7f42437e8c01fef" + integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" + define-properties "^1.1.4" + es-abstract "^1.19.5" string_decoder@^1.1.1: version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== dependencies: safe-buffer "~5.2.0" string_decoder@~1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== dependencies: safe-buffer "~5.1.0" -strip-ansi@^3.0.1: +strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== dependencies: ansi-regex "^2.0.0" +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== + dependencies: + ansi-regex "^3.0.0" + strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: version "5.2.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== dependencies: ansi-regex "^4.1.0" strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== 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 sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + strip-bom@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== strip-eof@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q== strip-final-newline@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" + 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.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== strip-json-comments@~2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== strtok3@^6.2.4, strtok3@^6.3.0: version "6.3.0" - resolved "https://registry.npmjs.org/strtok3/-/strtok3-6.3.0.tgz" + resolved "https://registry.yarnpkg.com/strtok3/-/strtok3-6.3.0.tgz#358b80ffe6d5d5620e19a073aa78ce947a90f9a0" integrity sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw== dependencies: "@tokenizer/token" "^0.3.0" @@ -7338,7 +8364,7 @@ strtok3@^6.2.4, strtok3@^6.3.0: style-loader@^1.1.3: version "1.3.0" - resolved "https://registry.npmjs.org/style-loader/-/style-loader-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-1.3.0.tgz#828b4a3b3b7e7aa5847ce7bae9e874512114249e" integrity sha512-V7TCORko8rs9rIqkSrlMfkqA63DfoGBBJmK1kKGCcSi+BWb4cqz0SRsnp4l6rU5iwOEd0/2ePv68SV22VXon4Q== dependencies: loader-utils "^2.0.0" @@ -7346,57 +8372,78 @@ style-loader@^1.1.3: sumchecker@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-3.0.1.tgz#6377e996795abb0b6d348e9b3e1dfb24345a8e42" integrity sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg== dependencies: debug "^4.1.0" supports-color@^5.3.0: version "5.5.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" supports-color@^6.1.0: version "6.1.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== dependencies: has-flag "^3.0.0" supports-color@^7.0.0, supports-color@^7.1.0: version "7.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" supports-color@^8.0.0: version "8.1.1" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== dependencies: has-flag "^4.0.0" supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== tapable@^1.0.0, tapable@^1.1.3: version "1.1.3" - resolved "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== tapable@^2.1.1, tapable@^2.2.0: version "2.2.1" - resolved "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== +tar-fs@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" + integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== + dependencies: + chownr "^1.1.1" + mkdirp-classic "^0.5.2" + pump "^3.0.0" + tar-stream "^2.1.4" + +tar-stream@^2.1.4: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== + dependencies: + bl "^4.0.3" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + tar@^6.1.11, tar@^6.1.2: version "6.1.11" - resolved "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== dependencies: chownr "^2.0.0" @@ -7408,7 +8455,7 @@ tar@^6.1.11, tar@^6.1.2: temp-file@^3.4.0: version "3.4.0" - resolved "https://registry.npmjs.org/temp-file/-/temp-file-3.4.0.tgz" + resolved "https://registry.yarnpkg.com/temp-file/-/temp-file-3.4.0.tgz#766ea28911c683996c248ef1a20eea04d51652c7" integrity sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg== dependencies: async-exit-hook "^2.0.1" @@ -7416,7 +8463,7 @@ temp-file@^3.4.0: terser-webpack-plugin@^2.3.5: version "2.3.8" - resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.3.8.tgz" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-2.3.8.tgz#894764a19b0743f2f704e7c2a848c5283a696724" integrity sha512-/fKw3R+hWyHfYx7Bv6oPqmk4HGQcrWLtV3X6ggvPuwPNHSnzvVV51z6OaaCOus4YLjutYGOz3pEpbhe6Up2s1w== dependencies: cacache "^13.0.1" @@ -7430,19 +8477,19 @@ terser-webpack-plugin@^2.3.5: webpack-sources "^1.4.3" terser-webpack-plugin@^5.1.3: - version "5.3.1" - resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz" - integrity sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g== + version "5.3.3" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.3.tgz#8033db876dd5875487213e87c627bca323e5ed90" + integrity sha512-Fx60G5HNYknNTNQnzQ1VePRuu89ZVYWfjRAeT5rITuCY/1b08s49e5kSQwHDirKZWuoKOBRFS98EUUoZ9kLEwQ== dependencies: + "@jridgewell/trace-mapping" "^0.3.7" jest-worker "^27.4.5" schema-utils "^3.1.1" serialize-javascript "^6.0.0" - source-map "^0.6.1" terser "^5.7.2" terser@^4.6.12, terser@^4.6.3: version "4.8.0" - resolved "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== dependencies: commander "^2.20.0" @@ -7450,74 +8497,84 @@ terser@^4.6.12, terser@^4.6.3: source-map-support "~0.5.12" terser@^5.7.2: - version "5.12.1" - resolved "https://registry.npmjs.org/terser/-/terser-5.12.1.tgz" - integrity sha512-NXbs+7nisos5E+yXwAD+y7zrcTkMqb0dEJxIGtSKPdCBzopf7ni4odPul2aechpV7EXNvOudYOX2bb5tln1jbQ== + version "5.14.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.14.1.tgz#7c95eec36436cb11cf1902cc79ac564741d19eca" + integrity sha512-+ahUAE+iheqBTDxXhTisdA8hgvbEG1hHOQ9xmNjeUJSoi6DU/gMrKNcfZjHkyY6Alnuyc+ikYJaxxfHkT3+WuQ== dependencies: + "@jridgewell/source-map" "^0.3.2" acorn "^8.5.0" commander "^2.20.0" - source-map "~0.7.2" source-map-support "~0.5.20" through@2, through@~2.3, through@~2.3.1: version "2.3.8" - resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== thunky@^1.0.2: version "1.1.0" - resolved "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== +timm@^1.6.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/timm/-/timm-1.7.1.tgz#96bab60c7d45b5a10a8a4d0f0117c6b7e5aff76f" + integrity sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw== + +tinycolor2@^1.4.1: + version "1.4.2" + resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.2.tgz#3f6a4d1071ad07676d7fa472e1fac40a719d8803" + integrity sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA== + tmp-promise@^3.0.2: version "3.0.3" - resolved "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.3.tgz#60a1a1cc98c988674fcbfd23b6e3367bdeac4ce7" integrity sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ== dependencies: tmp "^0.2.0" tmp@^0.2.0: version "0.2.1" - resolved "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== dependencies: rimraf "^3.0.0" to-fast-properties@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== to-object-path@^0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg== dependencies: kind-of "^3.0.2" to-readable-stream@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== to-regex-range@^2.1.0: version "2.1.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg== dependencies: is-number "^3.0.0" repeat-string "^1.6.1" to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" to-regex@^3.0.1, to-regex@^3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== dependencies: define-property "^2.0.2" @@ -7527,57 +8584,69 @@ to-regex@^3.0.1, to-regex@^3.0.2: toidentifier@1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" + 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, token-types@^4.2.0: version "4.2.0" - resolved "https://registry.npmjs.org/token-types/-/token-types-4.2.0.tgz" + 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" +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + truncate-utf8-bytes@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz" - integrity sha1-QFkjkJWS1W94pYGENLC3hInKXys= + resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" + integrity sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ== dependencies: utf8-byte-length "^1.0.1" tslib@^1.9.3: version "1.14.1" - resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== tslib@^2.0.3, tslib@^2.3.1: - version "2.3.1" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz" - integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== + version "2.4.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" + integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== + dependencies: + safe-buffer "^5.0.1" tunnel@^0.0.6: version "0.0.6" - resolved "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz" + resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== type-fest@^0.13.1: version "0.13.1" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== type-fest@^0.20.2: version "0.20.2" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== -type-fest@^1.0.2: - version "1.4.0" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz" - integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== +type-fest@^2.12.2: + version "2.13.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.13.0.tgz#d1ecee38af29eb2e863b22299a3d68ef30d2abfb" + integrity sha512-lPfAm42MxE4/456+QyIaaVBAwgpJb6xZ8PRu09utnhPdWwcyj9vgy6Sq0Z5yNbJ21EdxB5dRU/Qg8bsyAMtlcw== type-is@~1.6.18: version "1.6.18" - resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== dependencies: media-typer "0.3.0" @@ -7585,44 +8654,44 @@ type-is@~1.6.18: typedarray-to-buffer@^3.1.5: version "3.1.5" - resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== dependencies: is-typedarray "^1.0.0" typedarray@^0.0.6: version "0.0.6" - resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@^4.6.3: - version "4.6.3" - resolved "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz" - integrity sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw== +typescript@^4.6.4: + version "4.7.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.3.tgz#8364b502d5257b540f9de4c40be84c98e23a129d" + integrity sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA== -unbox-primitive@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz" - integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== dependencies: - function-bind "^1.1.1" - has-bigints "^1.0.1" - has-symbols "^1.0.2" + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" underscore@: - version "1.13.2" - resolved "https://registry.npmjs.org/underscore/-/underscore-1.13.2.tgz" - integrity sha512-ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g== + version "1.13.4" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.4.tgz#7886b46bbdf07f768e0052f1828e1dcab40c0dee" + integrity sha512-BQFnUDuAQ4Yf/cYY5LNrK9NCJFKriaRbD9uR1fTeXnBeoa97W0i41qkZfGO9pSo8I5KzjAcSY2XYtdf0oKd7KQ== unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== unicode-match-property-ecmascript@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== dependencies: unicode-canonical-property-names-ecmascript "^2.0.0" @@ -7630,17 +8699,17 @@ unicode-match-property-ecmascript@^2.0.0: unicode-match-property-value-ecmascript@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz#1a01aa57247c14c568b89775a54938788189a714" integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw== unicode-property-aliases-ecmascript@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8" integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ== union-value@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== dependencies: arr-union "^3.1.0" @@ -7650,43 +8719,43 @@ union-value@^1.0.0: unique-filename@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== dependencies: unique-slug "^2.0.0" unique-slug@^2.0.0: version "2.0.2" - resolved "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== dependencies: imurmurhash "^0.1.4" unique-string@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== dependencies: crypto-random-string "^2.0.0" universalify@^0.1.0: version "0.1.2" - resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== universalify@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= unset-value@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= dependencies: has-value "^0.3.1" @@ -7694,12 +8763,12 @@ unset-value@^1.0.0: upath@^1.1.1: version "1.2.0" - resolved "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== update-notifier@^5.1.0: version "5.1.0" - resolved "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz#4ab0d7c7f36a231dd7316cf7729313f0214d9ad9" integrity sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw== dependencies: boxen "^5.0.0" @@ -7719,19 +8788,19 @@ update-notifier@^5.1.0: uri-js@^4.2.2: version "4.4.1" - resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: punycode "^2.1.0" urix@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= url-loader@^4.0.0: version "4.1.1" - resolved "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz#28505e905cae158cf07c92ca622d7f237e70a4e2" integrity sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA== dependencies: loader-utils "^2.0.0" @@ -7740,14 +8809,14 @@ url-loader@^4.0.0: url-parse-lax@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= dependencies: prepend-http "^2.0.0" -url-parse@^1.4.3, url-parse@^1.5.10: +url-parse@^1.5.10: version "1.5.10" - resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz" + 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" @@ -7755,7 +8824,7 @@ url-parse@^1.4.3, url-parse@^1.5.10: url@^0.11.0: version "0.11.0" - resolved "https://registry.npmjs.org/url/-/url-0.11.0.tgz" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= dependencies: punycode "1.3.2" @@ -7763,22 +8832,29 @@ url@^0.11.0: use@^3.1.0: version "3.1.1" - resolved "https://registry.npmjs.org/use/-/use-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== utf8-byte-length@^1.0.1: version "1.0.4" - resolved "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61" integrity sha1-9F8VDExm7uloGGUFq5P8u4rWv2E= +utif@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/utif/-/utif-2.0.1.tgz#9e1582d9bbd20011a6588548ed3266298e711759" + integrity sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg== + dependencies: + pako "^1.0.5" + util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= util.promisify@1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== dependencies: define-properties "^1.1.2" @@ -7786,32 +8862,40 @@ util.promisify@1.0.0: utila@~0.4: version "0.4.0" - resolved "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= utils-merge@1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= uuid@^3.3.2: version "3.4.0" - resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== uuid@^8.3.2: version "8.3.2" - resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== v8-compile-cache@^2.1.1, v8-compile-cache@^2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz" + 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.npmjs.org/vary/-/vary-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= verror@^1.10.0: @@ -7825,7 +8909,7 @@ verror@^1.10.0: vue-devtools@^5.1.4: version "5.1.4" - resolved "https://registry.npmjs.org/vue-devtools/-/vue-devtools-5.1.4.tgz" + resolved "https://registry.yarnpkg.com/vue-devtools/-/vue-devtools-5.1.4.tgz#265a7458ade2affb291739176964256b597fa302" integrity sha512-EBAEXvAHUinsPzoSiElps0JgtLXUnJXKIJbP6nfdz/R63VdKBMfJ34/rFip+4iT7iMbVS5lA4W6N1jq4Hj4LCg== wallpaper@5.0.1: @@ -7834,23 +8918,28 @@ wallpaper@5.0.1: integrity sha512-yB9sBVfosR+NVabo/Ej21hga5u55NQUUdDVoo4LwrLJDRA+ezzX4wmNGwl5yxx/fkBgTADMqLL8ldnfN8TI9hQ== watchpack@^2.3.1: - version "2.3.1" - resolved "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz" - integrity sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA== + version "2.4.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" + integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== dependencies: glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" wbuf@^1.1.0, wbuf@^1.7.3: version "1.7.3" - resolved "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== dependencies: minimalistic-assert "^1.0.0" +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= + webpack-cli@^3.3.11: version "3.3.12" - resolved "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.12.tgz" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.12.tgz#94e9ada081453cd0aa609c99e500012fd3ad2d4a" integrity sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag== dependencies: chalk "^2.4.2" @@ -7867,7 +8956,7 @@ webpack-cli@^3.3.11: webpack-dev-middleware@^3.7.2: version "3.7.3" - resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz#0639372b143262e2b84ab95d3b91a7597061c2c5" integrity sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ== dependencies: memory-fs "^0.4.1" @@ -7878,7 +8967,7 @@ webpack-dev-middleware@^3.7.2: webpack-dev-server@^3.10.3: version "3.11.3" - resolved "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.3.tgz" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.3.tgz#8c86b9d2812bf135d3c9bce6f07b718e30f7c3d3" integrity sha512-3x31rjbEQWKMNzacUZRE6wXvUFuGpH7vr0lIEbYpMAG9BOxi0928QU1BBswOAP3kg3H1O4hiS+sq4YyAn6ANnA== dependencies: ansi-html-community "0.0.8" @@ -7917,7 +9006,7 @@ webpack-dev-server@^3.10.3: webpack-log@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== dependencies: ansi-colors "^3.0.0" @@ -7925,14 +9014,14 @@ webpack-log@^2.0.0: webpack-merge@^4.2.2: version "4.2.2" - resolved "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d" integrity sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g== dependencies: lodash "^4.17.15" webpack-sources@^1.1.0, webpack-sources@^1.4.3: version "1.4.3" - resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== dependencies: source-list-map "^2.0.0" @@ -7940,13 +9029,13 @@ webpack-sources@^1.1.0, webpack-sources@^1.4.3: webpack-sources@^3.2.3: version "3.2.3" - resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== webpack@~5.72.0: - version "5.72.0" - resolved "https://registry.npmjs.org/webpack/-/webpack-5.72.0.tgz" - integrity sha512-qmSmbspI0Qo5ld49htys8GY9XhS9CGqFoHTsOVAnjBdg0Zn79y135R+k4IR4rKK6+eKaabMhJwiVB7xw0SJu5w== + version "5.72.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.72.1.tgz#3500fc834b4e9ba573b9f430b2c0a61e1bb57d13" + integrity sha512-dXG5zXCLspQR4krZVR6QgajnZOjW2K/djHvdcRaDQvsjV9z9vaW6+ja5dZOYbqBBjF6kGXka/2ZyxNdc+8Jung== dependencies: "@types/eslint-scope" "^3.7.3" "@types/estree" "^0.0.51" @@ -7957,13 +9046,13 @@ webpack@~5.72.0: acorn-import-assertions "^1.7.6" browserslist "^4.14.5" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.9.2" + enhanced-resolve "^5.9.3" es-module-lexer "^0.9.0" eslint-scope "5.1.1" events "^3.2.0" glob-to-regexp "^0.4.1" graceful-fs "^4.2.9" - json-parse-better-errors "^1.0.2" + json-parse-even-better-errors "^2.3.1" loader-runner "^4.2.0" mime-types "^2.1.27" neo-async "^2.6.2" @@ -7975,7 +9064,7 @@ webpack@~5.72.0: websocket-driver@>=0.5.1, websocket-driver@^0.7.4: version "0.7.4" - resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== dependencies: http-parser-js ">=0.5.1" @@ -7984,12 +9073,20 @@ websocket-driver@>=0.5.1, websocket-driver@^0.7.4: websocket-extensions@>=0.1.1: version "0.1.4" - resolved "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + which-boxed-primitive@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== dependencies: is-bigint "^1.0.1" @@ -8000,40 +9097,48 @@ which-boxed-primitive@^1.0.2: which-module@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= which@^1.2.14, which@^1.2.9, which@^1.3.1: version "1.3.1" - resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== dependencies: isexe "^2.0.0" which@^2.0.1, which@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" wide-align@^1.1.5: version "1.1.5" - resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== dependencies: string-width "^1.0.2 || 2 || 3 || 4" widest-line@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== dependencies: string-width "^4.0.0" +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi@^5.1.0: version "5.1.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== dependencies: ansi-styles "^3.2.0" @@ -8042,7 +9147,7 @@ wrap-ansi@^5.1.0: wrap-ansi@^6.2.0: version "6.2.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== dependencies: ansi-styles "^4.0.0" @@ -8051,7 +9156,7 @@ wrap-ansi@^6.2.0: wrap-ansi@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" @@ -8060,12 +9165,12 @@ wrap-ansi@^7.0.0: wrappy@1: version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= write-file-atomic@^3.0.0: version "3.0.3" - resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== dependencies: imurmurhash "^0.1.4" @@ -8075,29 +9180,44 @@ write-file-atomic@^3.0.0: ws@^6.2.1: version "6.2.2" - resolved "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e" integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw== dependencies: async-limiter "~1.0.0" ws@^7.3.1: - version "7.5.7" - resolved "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz" - integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A== + version "7.5.8" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.8.tgz#ac2729881ab9e7cbaf8787fe3469a48c5c7f636a" + integrity sha512-ri1Id1WinAX5Jqn9HejiGb8crfRio0Qgu8+MtL36rlTA6RLsMdWt1Az/19A2Qij6uSHUMphEFaTKa4WG+UNHNw== ws@^8.5.0: - version "8.5.0" - resolved "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz" - integrity sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg== + version "8.8.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.8.0.tgz#8e71c75e2f6348dbf8d78005107297056cb77769" + integrity sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ== xdg-basedir@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== -xml2js@^0.4.17, xml2js@^0.4.23: +xhr@^2.0.1: + version "2.6.0" + resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.6.0.tgz#b69d4395e792b4173d6b7df077f0fc5e4e2b249d" + integrity sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA== + dependencies: + global "~4.4.0" + is-function "^1.0.1" + parse-headers "^2.0.0" + xtend "^4.0.0" + +xml-parse-from-string@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz#a9029e929d3dbcded169f3c6e28238d95a5d5a28" + integrity sha1-qQKekp09vN7RafPG4oI42VpdWig= + +xml2js@^0.4.17, xml2js@^0.4.23, xml2js@^0.4.5: version "0.4.23" - resolved "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== dependencies: sax ">=0.6.0" @@ -8110,42 +9230,57 @@ xmlbuilder@>=11.0.1: xmlbuilder@^9.0.7: version "9.0.7" - resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= xmlbuilder@~11.0.0: version "11.0.1" - resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== xpipe@*: version "1.0.5" - resolved "https://registry.npmjs.org/xpipe/-/xpipe-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/xpipe/-/xpipe-1.0.5.tgz#8dd8bf45fc3f7f55f0e054b878f43a62614dafdf" integrity sha1-jdi/Rfw/f1Xw4FS4ePQ6YmFNr98= +xtend@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^3.2.1: + version "3.2.2" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.2.tgz#85c901bd6470ce71fc4bb723ad209b70f7f28696" + integrity sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ== + y18n@^4.0.0: version "4.0.3" - resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== y18n@^5.0.5: version "5.0.8" - resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + yallist@^3.0.2: version "3.1.1" - resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== yallist@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== yargs-parser@^13.1.2: version "13.1.2" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== dependencies: camelcase "^5.0.0" @@ -8153,7 +9288,7 @@ yargs-parser@^13.1.2: yargs-parser@^18.1.2: version "18.1.3" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== dependencies: camelcase "^5.0.0" @@ -8161,12 +9296,19 @@ yargs-parser@^18.1.2: yargs-parser@^21.0.0: version "21.0.1" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.1.tgz#0267f286c877a4f0f728fceb6f8a3e4cb95c6e35" integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg== +yargs-parser@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" + integrity sha1-jQrELxbqVd69MyyvTEA4s+P139k= + dependencies: + camelcase "^4.1.0" + yargs@^13.3.2: version "13.3.2" - resolved "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== dependencies: cliui "^5.0.0" @@ -8182,7 +9324,7 @@ yargs@^13.3.2: yargs@^15.3.1: version "15.4.1" - resolved "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== dependencies: cliui "^6.0.0" @@ -8198,9 +9340,9 @@ yargs@^15.3.1: yargs-parser "^18.1.2" yargs@^17.0.1: - version "17.4.1" - resolved "https://registry.npmjs.org/yargs/-/yargs-17.4.1.tgz" - integrity sha512-WSZD9jgobAg3ZKuCQZSa3g9QOJeCCqLoLAykiWgmXnDo9EPnn4RPf5qVTtzgOx66o6/oqhcA5tHtJXpG8pMt3g== + version "17.5.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.5.1.tgz#e109900cab6fcb7fd44b1d8249166feb0b36e58e" + integrity sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA== dependencies: cliui "^7.0.2" escalade "^3.1.1" @@ -8210,9 +9352,28 @@ yargs@^17.0.1: y18n "^5.0.5" yargs-parser "^21.0.0" +yargs@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-9.0.1.tgz#52acc23feecac34042078ee78c0c007f5085db4c" + integrity sha1-UqzCP+7Kw0BCB47njAwAf1CF20w= + dependencies: + camelcase "^4.1.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + read-pkg-up "^2.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1" + yargs-parser "^7.0.0" + yauzl@^2.10.0: version "2.10.0" - resolved "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= dependencies: buffer-crc32 "~0.2.3" @@ -8220,7 +9381,7 @@ yauzl@^2.10.0: youtube-search-without-api-key@^1.0.7: version "1.0.7" - resolved "https://registry.npmjs.org/youtube-search-without-api-key/-/youtube-search-without-api-key-1.0.7.tgz" + resolved "https://registry.yarnpkg.com/youtube-search-without-api-key/-/youtube-search-without-api-key-1.0.7.tgz#39b348d6416318731430a9316da7900c3744bf4f" integrity sha512-PjwejF6YApZDqTFo46/4q6IQlztUtQsP/8ygcHYyakPHqijIKn36+yUQVPTC92/+IZtqyZBhpTKP1bG6uZKP/Q== dependencies: got "^11.8.3" diff --git a/package.json b/package.json index 3248c3c9..9aa21352 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "cider", "applicationId": "Cider", "productName": "Cider", - "version": "1.5.0", + "version": "1.5.1", "description": "A new cross-platform Apple Music experience based on Electron and Vue.js written from scratch with performance in mind.", "license": "AGPL-3.0", "main": "./build/index.js", @@ -14,7 +14,8 @@ "homepage": "https://cider.sh/", "buildResources": "resources", "scripts": { - "build": "tsc", + "build": "tsc && yarn compile-less", + "compile-less": "lessc ./src/renderer/style.less ./src/renderer/style.css", "watch": "tsc --watch", "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", @@ -39,8 +40,10 @@ "dependencies": { "@sentry/electron": "^3.0.7", "@sentry/integrations": "^6.19.6", + "@types/pouchdb": "^6.4.0", + "@types/pouchdb-node": "^6.1.4", "adm-zip": "0.4.10", - "airtunes2": "git+https://github.com/ciderapp/node_airtunes2", + "airtunes2": "git+https://github.com/ciderapp/node_airtunes2.git", "castv2-client": "^1.2.0", "chokidar": "^3.5.3", "discord-auto-rpc": "^1.0.16", @@ -57,16 +60,22 @@ "jimp": "^0.16.1", "jsonc": "^2.0.0", "lastfmapi": "^0.1.1", + "level": "^8.0.0", + "leveldown": "^6.1.1", "mdns-js": "git+https://github.com/ciderapp/node-mdns-js.git", "mpris-service": "^2.1.2", - "music-metadata": "^7.12.3", + "music-metadata": "^7.12.4", "node-gyp": "^9.0.0", "node-ssdp": "^4.0.1", + "pouchdb-adapter-leveldb": "^7.3.0", + "pouchdb-node": "^7.3.0", + "pouchdb-upsert": "^2.2.0", "qrcode": "^1.5.0", "react": "^18.0.0", "react-dom": "^18.0.0", "run-script-os": "^1.1.6", "source-map-support": "^0.5.21", + "ts-md5": "^1.2.11", "v8-compile-cache": "^2.3.0", "wallpaper": "5.0.1", "ws": "^8.5.0", @@ -79,10 +88,11 @@ "@types/express": "^4.17.13", "@types/qrcode-terminal": "^0.12.0", "@types/ws": "^8.5.3", - "electron": "git+https://github.com/castlabs/electron-releases.git#19-x-y", + "electron": "git+https://github.com/castlabs/electron-releases.git#18-x-y", "electron-builder": "^23.0.3", "electron-builder-notarize-pkg": "^1.2.0", "electron-webpack": "^2.8.2", + "less": "^4.1.3", "musickit-typescript": "^1.2.4", "typescript": "^4.6.4", "vue-devtools": "^5.1.4", @@ -111,9 +121,9 @@ } ], "build": { - "electronVersion": "19.0.3", + "electronVersion": "19.0.8", "electronDownload": { - "version": "19.0.3+wvcus", + "version": "20.0.0-beta.11+wvcus", "mirror": "https://github.com/castlabs/electron-releases/releases/download/v" }, "appId": "cider", diff --git a/resources/afterPack.js b/resources/afterPack.js index dd9eda0d..7cbae403 100644 --- a/resources/afterPack.js +++ b/resources/afterPack.js @@ -14,7 +14,7 @@ exports.default = function(context) { // console.log('Castlabs-evs update complete') // xcode 13 - if (fs.existsSync('dist/mac-universal--x64') && fs.existsSync('dist/mac-universal--arm64')) + if (fs.existsSync('dist/mac-universal--x64') && fs.existsSync('dist/mac-universal--arm64') && fs.existsSync('dist/mac-universal--x64/Cider.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/MainMenu.nib/keyedobjects-101300.nib')) 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') @@ -24,9 +24,7 @@ exports.default = function(context) { // 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/icons/icon.svg b/resources/icons/icon.svg new file mode 100644 index 00000000..6f5cad41 --- /dev/null +++ b/resources/icons/icon.svg @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + diff --git a/resources/version.sh b/resources/version.sh index 404521cd..deb492ca 100755 --- a/resources/version.sh +++ b/resources/version.sh @@ -3,13 +3,17 @@ LATEST_SHA=$(curl -s https://api.github.com/repos/ciderapp/Cider/branches/stable | grep sha | cut -d '"' -f 4 | sed 's/v//' | xargs) COMMITSINCESTABLE=$(git rev-list $LATEST_SHA..HEAD --count) CURRENT_VERSION=$(node -p -e "require('./package.json').version") -NEW_VERSION=${CURRENT_VERSION/0/$COMMITSINCESTABLE} -if [[ $COMMITSINCESTABLE -gt 0 ]] -then +if [[ $CIRCLE_BRANCH == "main" && $COMMITSINCESTABLE -gt 0 ]]; then + NEW_VERSION="${CURRENT_VERSION}-beta.${COMMITSINCESTABLE}" +else + NEW_VERSION=${CURRENT_VERSION/0/$COMMITSINCESTABLE} +fi + +if [[ $COMMITSINCESTABLE -gt 0 ]]; then echo "Version: $NEW_VERSION" sed -i "0,/$CURRENT_VERSION/s//$NEW_VERSION/" package.json else - echo "Version unchanged, commits since stable is 0" + echo "Version unchanged, commits since stable is ${COMMITSINCESTABLE}" fi -echo "export APP_VERSION=$(node -p -e 'require("./package.json").version')" >> $BASH_ENV +echo "export APP_VERSION=$(node -p -e 'require("./package.json").version')" >>$BASH_ENV diff --git a/src/i18n/README.md b/src/i18n/README.md index fa109d75..5ab6cba6 100644 --- a/src/i18n/README.md +++ b/src/i18n/README.md @@ -423,10 +423,10 @@ Update 24/05/2022 20:30 UTC Update 24/05/2022 21:15 UTC -* `settings.option.general.updateCider`: Deleted for all language files -* `settings.option.general.updateCider.branch`: Deleted for all language files +* `settings.option.general.updateCider`: Deleted for all language files +* `settings.option.general.updateCider.branch`: Deleted for all language files * `settings.option.general.updateCider.branch.description`: Deleted for all language files -* `settings.option.general.updateCider.branch.main`: Deleted for all language files +* `settings.option.general.updateCider.branch.main`: Deleted for all language files * `settings.option.general.updateCider.branch.develop`: Deleted for all language files * `settings.notyf.updateCider.update-error`: Deleted for all language files @@ -442,4 +442,86 @@ Update 30/5/2022 05:35 UTC Update 03/06/2022 11:40 UTC * `settings.option.connectivity.discordRPC.reload`: Added to `en_US` -* `settings.option.connectivity.discordRPC.reconnectedToUser`: Added to `en_US` \ No newline at end of file +* `settings.option.connectivity.discordRPC.reconnectedToUser`: Added to `en_US` + +Update 04/06/2022 03:00 UTC + +* `term.cast`: Added to `en_US` +* `term.playpause`: Added to `en_US` +* `term.reload`: Added to `en_US` +* `term.toggleprivate`: Added to `en_US` +* `term.webremote`: Added to `en_US` +* `term.cast2`: Added to `en_US` +* `term.quit`: Added to `en_US` +* `menubar.options.zoom`: Added to `en_US` +* `term.zoomin`: Added to `en_US` +* `term.zoomout`: Added to `en_US` +* `term.zoomreset`: Added to `en_US` +* `term.fullscreen`: Added to `en_US` +* `settings.option.general.keybindings.library`: Added to `en_US` +* `settings.option.general.keybindings.session`: Added to `en_US` +* `settings.option.general.keybindings.control`: Added to `en_US` +* `settings.option.general.keybindings.interface`: Added to `en_US` +* `settings.option.general.keybindings.advanced`: Added to `en_US` + +* `action.tray.quit`: Deleted for all language files +* `action.tray.playpause`: Deleted for all language files +* `action.tray.next`: Deleted for all language files +* `action.tray.previous`: Deleted for all language files +* `menubar.options.about`: Deleted for all language files +* `menubar.options.settings`: Deleted for all language files +* `menubar.options.quit`: Deleted for all language files +* `menubar.options.toggleprivate`: Deleted for all language files +* `menubar.options.webremote`: Deleted for all language files +* `menubar.options.audio`: Deleted for all language files +* `menubar.options.next`: Deleted for all language files +* `menubar.options.previous`: Deleted for all language files +* `menubar.options.browse`: Deleted for all language files +* `menubar.options.artists`: Deleted for all language files +* `menubar.options.search`: Deleted for all language files +* `menubar.options.albums`: Deleted for all language files +* `menubar.options.cast`: Deleted for all language files +* `menubar.options.accountsettings`: Deleted for all language files +* `menubar.options.discord`: Deleted for all language files +* `menubar.options.github`: Deleted for all language files, +* `menubar.options.listennow`: Deleted for all language files +* `menubar.options.recentlyAdded`: Deleted for all language files +* `menubar.options.songs`: Deleted for all language files +* `settings.option.general.keybindings.open`: Deleted for all language files +* `menubar.options.playpause`: Deleted for all language files +Update 10/06/2022 20:00 UTC + +* `settings.option.visual.purplePodcastPlaybackBar`: Added to `en_US` + +Update 14/06/2022 14:10 UTC + +* `term.themeManaged`: Added to `en_US` + +Update 15/06/2022 20:00 UTC + +* `settings.notyf.connectivity.lastfmScrobble.connectError`: Added to `en_US` +* `settings.notyf.connectivity.lastfmScrobble.connectSuccess`: Added to `en_US` +* `settings.notyf.connectivity.lastfmScrobble.connecting`: Added to `en_US` + +Update 19/06/2022 12:00 UTC + +* `settings.option.connectivity.lastfmScrobble.filterLoop.description`: Added to `en_US` + +Update 21/06/2022 20:39 UTC + +* `term.showSearch`: Added to `en_US` +* `term.hideSearch`: Added to `en_US` + +Update 23/06/2022 04:00 UTC + +* `settings.option.connectivity.lastfmScrobble.filterTypes`: Added to `en_US` + + +Update 03/07/2022 20:00 UTC + +* `term.plugins`: Added to `en_US` +* `settings.header.visual.styles`: Added to `en_US` + +Update 25/07/2022 00:22 UTC + +* `settings.option.visual.compactArtistHeader`: Added to `en_US` diff --git a/src/i18n/de_DE.json b/src/i18n/de_DE.json index 071d18eb..8f86cdf6 100644 --- a/src/i18n/de_DE.json +++ b/src/i18n/de_DE.json @@ -386,5 +386,18 @@ "term.track": { "one": "Titel", "other": "Titel" - } + }, + "settings.option.visual.customAccentColor": "Benutzerdefinierte Akzentfarbe", + "settings.option.visual.accentColor": "Akzentfarbe", + "settings.option.visual.purplePodcastPlaybackBar": "Lila Wiedergabeleiste für Podcasts", + "settings.option.visual.windowColor": "Fenstertönung Farbe", + "action.cut": "Ausschneiden", + "action.paste": "Einfügen", + "action.selectAll": "Alles auswählen", + "action.delete": "Löschen", + "home.syncFavorites": "Sync Favoriten", + "term.quit" : "Beenden", + "settings.option.connectivity.lastfmScrobble.filterLoop.description": "Verhindert, dass geloopte Titel gescrobbelt oder in der (Hört Gerade)-Liste auf Last.fm angezeigt werden", + "settings.option.connectivity.lastfmScrobble.filterTypes": "Medientypen filtern (Last.fm)", + "settings.option.connectivity.lastfmScrobble.manualToken": "Last.fm-Token manuell eingeben" } diff --git a/src/i18n/en_GB.json b/src/i18n/en_GB.json index bd4f7203..3be188ea 100644 --- a/src/i18n/en_GB.json +++ b/src/i18n/en_GB.json @@ -2,7 +2,7 @@ "i18n.languageName": "English (UK)", "i18n.languageNameEnglish": "English (UK)", "i18n.category": "main", - "i18n.authors": "Core, inalone, nosh118", + "i18n.authors": "Core, inalone, nosh118, booploops", "date.format": "${d} ${m}, ${y}", "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.", @@ -14,5 +14,14 @@ "term.track": { "one" : "song", "other" : "songs" - } + }, + "home.syncFavorites": "Sync Favourites", + "home.syncFavorites.gettingArtists": "Getting Favourited Artists...", + "action.addToFavorites": "Add to Favourites", + "action.favorite": "Favourite", + "action.removeFavorite": "Remove Favourite", + "settings.option.visual.customAccentColor": "Custom Accent Colour", + "settings.option.visual.accentColor": "Accent Colour", + "settings.option.visual.windowColor": "Window Tint Colour", + "settings.header.visual.windowBackgroundStyle.color": "Colour Tint" } diff --git a/src/i18n/en_OWO.json b/src/i18n/en_OWO.json index b46d1673..eb147a67 100644 --- a/src/i18n/en_OWO.json +++ b/src/i18n/en_OWO.json @@ -22,7 +22,6 @@ "term.logout": "Wogout", "term.login": "Wog In", "term.quickNav": "Quick Nyav", - "term.cast": "Cast", "term.about": "About", "term.privateSession": "Pwivate Session", "term.disablePrivateSession": "Disabwe Pwivate Session", @@ -42,6 +41,7 @@ "term.artists": "Awtists", "term.podcasts": "Podcasts", "term.playlists": "Pwaywists", + "term.charts": "Chawts", "term.playlist": "Pwaywist", "term.newPlaylist": "Nyew Pwaywist", "term.newPlaylistFolder": "Nyew Pwaywist Fowdew", @@ -51,6 +51,7 @@ "term.navigateBack": "Nyavigate back", "term.navigateForward": "Nyavigate fowwawd", "term.play": "Pway", + "term.playpause": "Pway/Pause", "term.pause": "Pause", "term.stop": "Stop", "term.previous": "Pwevious", @@ -135,7 +136,7 @@ "term.amLive": "Appwe Music Wive", "term.language": "Wanguage", "term.funLanguages": "Fun", - "term.noLyrics": "Woading... / Wywics nyot found./ Instwumentaw.", + "term.noLyrics": ">w< Sowwy Wowwy.. N-Nyo Wywics Avaiwabwe", "term.copyright": "Copywight", "term.rightsReserved": "Aww Wights Wesewved.", "term.sponsor": "Sponsow this pwoject", @@ -153,6 +154,7 @@ }, "term.videos": "Videos", "term.menu": "Menyu", + "term.themeManaged": "Manyaged by a theme", "term.check": "Check", "term.aboutArtist": "About {{artistName}}", "term.topResult": "Top Wesuwt", @@ -192,6 +194,16 @@ "term.confirmLogout": "Awe you suwe you want to wogout?", "term.creditDesignedBy": "Designyed by ${authorUsername}", "term.discNumber": "Disc ${discNumber}", + "term.reload": "Wewoad Cidew ?", + "term.toggleprivate": "Toggwe Pwivate Session", + "term.webremote": "Web Wemote", + "term.cast": "Cast", + "term.cast2": "Cast to Devices", + "term.quit": "Quit", + "term.zoomin": "Zoom In", + "term.zoomout": "Zoom Out", + "term.zoomreset": "Weset Zoom", + "term.fullscreen": "Fuwwscween", "home.title": "Home", "home.recentlyPlayed": "Wecentwy Pwayed", "home.recentlyAdded": "Wecentwy Added", @@ -264,11 +276,7 @@ "action.export": "Expowt", "action.showAlbum": "Show Compwete Awbum", "action.tray.minimize": "Minyimize to Tway", - "action.tray.quit": "Quit", "action.tray.show": "Show Cidew", - "action.tray.playpause": "Pway/Pause", - "action.tray.next": "Nyext", - "action.tray.previous": "Pwevious", "action.tray.listento": "Wisten To:", "action.update": "Update", "action.install": "Instaww", @@ -288,45 +296,26 @@ "action.createNew": "Cweate Nyew...", "action.openArtworkInBrowser": "Open awtwowk in bwowsew", "action.scrollToTop": "Scwoww to top", - "menubar.options.about": "About", - "menubar.options.settings": "Settings", - "menubar.options.quit": "Quit Cidew", - "menubar.options.view": "View ", + "menubar.options.view": "View", "menubar.options.reload": "Wewoad", "menubar.options.forcereload": "Fowce Wewoad", "menubar.options.toggledevtools": "Toggwe Devewopew Toows", "menubar.options.window": "Window", "menubar.options.minimize": "Minyimize", - "menubar.options.toggleprivate": "Toggwe Pwivate Session", - "menubar.options.webremote": "Web Wemote", - "menubar.options.audio": "Audio Settings", "menubar.options.plugins": "Pwu-gins Menyu", "menubar.options.controls": "Contwows", - "menubar.options.next": "Nyext", - "menubar.options.playpause": "Pway/Pause", - "menubar.options.previous": "Pwevious", "menubar.options.volumeup": "Vowume Up", "menubar.options.volumedown": "Vowume Down", - "menubar.options.browse": "Bwowse", - "menubar.options.artists": "Awtists", - "menubar.options.search": "Seawch", - "menubar.options.albums": "Awbums", - "menubar.options.cast": "Cast To Devices", "menubar.options.account": "Account", - "menubar.options.accountsettings": "Account Settings", "menubar.options.signout": "Sign Out", "menubar.options.support": "Suppowt", - "menubar.options.discord": "Discowd", - "menubar.options.github": "GitHub Wiki", "menubar.options.report": "Wepowt a...", "menubar.options.bug": "Bug", "menubar.options.feature": "Featuwe Wequest", "menubar.options.trans": "Twanswation Wepowt/Wequest", "menubar.options.license": "View Wicense", "menubar.options.conf": "Open Configuwation Fiwe in Editow", - "menubar.options.listennow": "Wisten Nyow", - "menubar.options.recentlyAdded": "Wecentwy Added", - "menubar.options.songs": "Songs", + "menubar.options.zoom": "Zoom", "settings.header.general": "Genyewaw", "settings.header.general.description": "Adjust the genyewaw settings fow Cidew.", "settings.option.general.language": "Wanguage", @@ -346,11 +335,15 @@ "settings.option.general.customizeSidebar": "Customize Sidebaw Items", "settings.option.general.customizeSidebar.customize": "Customize", "settings.option.general.keybindings": "Keybindings", + "settings.option.general.keybindings.library": "Wibwawy", + "settings.option.general.keybindings.session": "Session", + "settings.option.general.keybindings.control": "Contwows", + "settings.option.general.keybindings.interface": "Intewface", + "settings.option.general.keybindings.advanced": "Advanced", "settings.option.general.keybindings.pressCombination": "Pwess a combinyation of two keys to update keybind.", "settings.option.general.keybindings.pressEscape": "Pwess Escape key to go back.", "settings.notyf.general.keybindings.update.success": "Keybind updated successfuwwy", "settings.prompt.general.keybindings.update.success": "Keybind updated successfuwwy. Pwess OK to wewaunch Cidew", - "settings.option.general.keybindings.open": "Open", "settings.option.general.themeUpdateNotification": "Automaticawwy check fow theme updates", "settings.option.general.showLovedTracksInline": "Show wuvd twacks inwinye", "settings.description.search": "Seawch", diff --git a/src/i18n/en_PISS.json b/src/i18n/en_PISS.json index 3047cac2..692c8ebc 100644 --- a/src/i18n/en_PISS.json +++ b/src/i18n/en_PISS.json @@ -103,7 +103,7 @@ "term.recentStations": "recent pisses", "term.language": "piss around the world", "term.funLanguages": "piss languages", - "term.noLyrics": "piss…", + "term.noLyrics": "out of piss...", "term.copyright": "copypiss", "term.rightsReserved": "all piss reserved.", "term.sponsor": "piss on Cider", diff --git a/src/i18n/en_US.json b/src/i18n/en_US.json index efbee836..71ef359a 100644 --- a/src/i18n/en_US.json +++ b/src/i18n/en_US.json @@ -22,7 +22,6 @@ "term.logout": "Logout", "term.login": "Log In", "term.quickNav": "Quick Nav", - "term.cast": "Cast", "term.about": "About", "term.privateSession": "Private Session", "term.disablePrivateSession": "Disable Private Session", @@ -32,6 +31,12 @@ "term.miniplayer": "MiniPlayer", "term.history": "History", "term.search": "Search", + "term.scroll": "Scroll Mode", + "term.scroll.infinite": "Infinite", + "term.scroll.paged": "${songsPerPage} per page", + "term.live": "LIVE", + "term.showSearch": "Show search bar", + "term.hideSearch": "Hide search bar", "term.library": "Library", "term.listenNow": "Listen Now", "term.browse": "Browse", @@ -52,6 +57,7 @@ "term.navigateBack": "Navigate back", "term.navigateForward": "Navigate forward", "term.play": "Play", + "term.playpause": "Play/Pause", "term.pause": "Pause", "term.stop": "Stop", "term.previous": "Previous", @@ -136,7 +142,7 @@ "term.amLive": "Apple Music Live", "term.language": "Language", "term.funLanguages": "Fun", - "term.noLyrics": "Loading... / Lyrics not found./ Instrumental.", + "term.noLyrics": "Instrumental Track / No Lyrics.", "term.copyright": "Copyright", "term.rightsReserved": "All Rights Reserved.", "term.sponsor": "Sponsor this project", @@ -154,6 +160,7 @@ }, "term.videos": "Videos", "term.menu": "Menu", + "term.themeManaged": "Managed by a theme", "term.check": "Check", "term.aboutArtist": "About {{artistName}}", "term.topResult": "Top Result", @@ -177,8 +184,9 @@ "term.top": "Top", "term.version": "Version", "term.noVideos": "No videos found.", - "term.plugin": "Plug-in", - "term.pluginMenu": "Plug-in Menu", + "term.plugins": "Plugins", + "term.plugin": "Plugin", + "term.pluginMenu": "Plugins Menu", "term.pluginMenu.none": "No interactive plugins", "term.replay": "Replay", "term.uniqueAlbums": "Unique Albums", @@ -193,6 +201,22 @@ "term.confirmLogout": "Are you sure you want to logout?", "term.creditDesignedBy": "Designed by ${authorUsername}", "term.discNumber": "Disc ${discNumber}", + "term.reload" : "Reload Cider?", + "term.toggleprivate" : "Toggle Private Session", + "term.webremote" : "Web Remote", + "term.cast" : "Cast", + "term.cast2" : "Cast to Devices", + "term.quit" : "Quit", + "term.zoomin" : "Zoom In", + "term.zoomout" : "Zoom Out", + "term.zoomreset" : "Reset Zoom", + "term.fullscreen" : "Fullscreen", + "term.nowPlaying": "Now Playing", + "home.syncFavorites": "Sync Favorites", + "home.syncFavorites.gettingArtists": "Getting Favorited Artists...", + "action.favorite": "Favorite", + "action.removeFavorite": "Remove Favorite", + "action.refresh": "Refresh", "home.title": "Home", "home.recentlyPlayed": "Recently Played", "home.recentlyAdded": "Recently Added", @@ -213,8 +237,6 @@ "podcast.episodes": "Episodes", "podcast.playEpisode": "Play Episode", "podcast.website": "Podcast Website", - "action.favorite": "Favorite", - "action.removeFavorite": "Remove Favorite", "action.hideLibrary": "Hide Library", "action.showLibrary": "Show Library", "action.cut": "Cut", @@ -223,6 +245,7 @@ "action.delete": "Delete", "action.edit": "Edit", "action.done": "Done", + "action.submit": "Submit", "action.editTracklist": "Edit Tracklist", "action.addToLibrary": "Add to Library", "action.addToLibrary.success": "Added to Library", @@ -267,11 +290,7 @@ "action.export": "Export", "action.showAlbum": "Show Complete Album", "action.tray.minimize": "Minimize to Tray", - "action.tray.quit": "Quit", "action.tray.show": "Show Cider", - "action.tray.playpause": "Play/Pause", - "action.tray.next": "Next", - "action.tray.previous": "Previous", "action.tray.listento": "Listen To:", "action.update": "Update", "action.install": "Install", @@ -291,45 +310,26 @@ "action.createNew": "Create New...", "action.openArtworkInBrowser": "Open artwork in browser", "action.scrollToTop": "Scroll to top", - "menubar.options.about": "About", - "menubar.options.settings": "Settings", - "menubar.options.quit": "Quit Cider", - "menubar.options.view": "View ", + "menubar.options.view": "View", "menubar.options.reload": "Reload", "menubar.options.forcereload": "Force Reload", "menubar.options.toggledevtools": "Toggle Developer Tools", "menubar.options.window": "Window", "menubar.options.minimize": "Minimize", - "menubar.options.toggleprivate": "Toggle Private Session", - "menubar.options.webremote": "Web Remote", - "menubar.options.audio": "Audio Settings", "menubar.options.plugins": "Plu-gins Menu", "menubar.options.controls": "Controls", - "menubar.options.next": "Next", - "menubar.options.playpause": "Play/Pause", - "menubar.options.previous": "Previous", "menubar.options.volumeup": "Volume Up", "menubar.options.volumedown": "Volume Down", - "menubar.options.browse": "Browse", - "menubar.options.artists": "Artists", - "menubar.options.search": "Search", - "menubar.options.albums": "Albums", - "menubar.options.cast": "Cast To Devices", "menubar.options.account": "Account", - "menubar.options.accountsettings": "Account Settings", "menubar.options.signout": "Sign Out", "menubar.options.support": "Support", - "menubar.options.discord": "Discord", - "menubar.options.github": "GitHub Wiki", "menubar.options.report": "Report a...", "menubar.options.bug": "Bug", "menubar.options.feature": "Feature Request", "menubar.options.trans": "Translation Report/Request", "menubar.options.license": "View License", "menubar.options.conf": "Open Configuration File in Editor", - "menubar.options.listennow": "Listen Now", - "menubar.options.recentlyAdded": "Recently Added", - "menubar.options.songs": "Songs", + "menubar.options.zoom": "Zoom", "settings.header.general": "General", "settings.header.general.description": "Adjust the general settings for Cider.", "settings.option.general.language": "Language", @@ -349,13 +349,19 @@ "settings.option.general.customizeSidebar": "Customize Sidebar Items", "settings.option.general.customizeSidebar.customize": "Customize", "settings.option.general.keybindings": "Keybindings", + "settings.option.general.keybindings.library": "Library", + "settings.option.general.keybindings.session": "Session", + "settings.option.general.keybindings.control": "Controls", + "settings.option.general.keybindings.interface": "Interface", + "settings.option.general.keybindings.advanced": "Advanced", "settings.option.general.keybindings.pressCombination": "Press a combination of two keys to update keybind.", "settings.option.general.keybindings.pressEscape": "Press Escape key to go back.", "settings.notyf.general.keybindings.update.success": "Keybind updated successfully", "settings.prompt.general.keybindings.update.success": "Keybind updated successfully. Press OK to relaunch Cider", - "settings.option.general.keybindings.open": "Open", "settings.option.general.themeUpdateNotification": "Automatically check for theme updates", "settings.option.general.showLovedTracksInline": "Show loved tracks inline", + "settings.option.general.pagination": "Items to show per page", + "settings.options.general.pagination.description": "This determines how many songs/albums to show initially for infinite scrolling, or how many songs/albums to show for a single page", "settings.description.search": "Search", "settings.description.albums": "Library Albums", "settings.description.artists": "Library Artists", @@ -416,9 +422,9 @@ "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.E168_1": "Jasmine Macchiato", "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z3600": "Hokkaido Milk Tea", "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z8500A": "Moonlight Softcake", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.BSCBM": "Brown Sugar Creme Brûlée Milk", "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z8500B": "Clafoutis aux Cerises", "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z8500C": "Uji Matcha Mochi", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.BSCBM": "Brown Sugar Creme Brûlée Milk", "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.CUDDLE": "Cuddle Warmth", "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️", "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Enhances the perceived audio quality of AAC encoded audio by using a real-time algorithm that takes advantage of both psychoacoustic models of human hearing and AAC encoding characteristics.", @@ -452,14 +458,10 @@ "settings.header.visual": "Visual", "settings.header.visual.description": "Adjust the visual settings for Cider.", "settings.option.visual.windowStyle": "Window Style", - "settings.option.visual.customAccentColor": "Custom Accent Color", - "settings.option.visual.accentColor": "Accent Color", - "settings.option.visual.windowColor": "Window Tint Color", "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.header.visual.windowBackgroundStyle.color": "Color Tint", "settings.option.visual.animatedArtwork": "Animated Artwork", "settings.header.visual.animatedArtwork.always": "Always", "settings.header.visual.animatedArtwork.limited": "Limited to pages and special entries", @@ -485,6 +487,7 @@ "settings.prompt.visual.theme.github.URL": "Enter the URL of the theme you want to install", "settings.prompt.visual.theme.uninstallTheme": "Are you sure you want to uninstall {{ theme }}?", "settings.option.visual.theme.checkForUpdates": "Check for updates", + "settings.header.visual.styles": "Styles", "settings.option.visual.theme.manageStyles": "Manage Styles", "settings.option.visual.theme.uninstall": "Uninstall", "settings.option.visual.theme.viewInfo": "View Info", @@ -536,6 +539,12 @@ "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.option.connectivity.lastfmScrobble.filterLoop.description": "Prevent looped tracks from being scrobbled or displayed in the Now Playing list on Last.fm.", + "settings.option.connectivity.lastfmScrobble.filterTypes": "Filter Media Types (Last.fm)", + "settings.option.connectivity.lastfmScrobble.manualToken": "Enter Last.fm Token Manually", + "settings.notyf.connectivity.lastfmScrobble.connectError": "Last.fm Connection Timed Out", + "settings.notyf.connectivity.lastfmScrobble.connectSuccess": "Last.fm Connection Successful", + "settings.notyf.connectivity.lastfmScrobble.connecting": "Connecting to Last.fm...", "settings.header.debug": "Debug", "settings.option.debug.copy_log": "Copy logs to clipboard", "settings.option.debug.openAppData": "Open Cider Folder", @@ -547,11 +556,18 @@ "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.window.maxElementScale": "Maximum Element Scale", "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": "needs Theme Support, requires relaunch", + "settings.option.visual.customAccentColor": "Custom Accent Color", + "settings.option.visual.accentColor": "Accent Color", + "settings.option.visual.purplePodcastPlaybackBar": "Purple Playback Bar for Podcasts", + "settings.option.visual.compactArtistHeader": "Compact Artist Header", + "settings.option.visual.windowColor": "Window Tint Color", + "settings.header.visual.windowBackgroundStyle.color": "Color Tint", "settings.header.advanced": "Advanced", "settings.header.connect": "Sync", "settings.option.connect.link_account": "Enable Sync with Cider Connect", @@ -628,4 +644,4 @@ "oobe.visual.suggestingThemes.community3": "Dracula", "oobe.visual.suggestingThemes.community3.text": "The iconic Dracula color scheme.", "oobe.amsignin.title": "" -} +} \ No newline at end of file diff --git a/src/i18n/es_ES.json b/src/i18n/es_ES.json index 68a1f802..c2bfe0b9 100644 --- a/src/i18n/es_ES.json +++ b/src/i18n/es_ES.json @@ -22,7 +22,6 @@ "term.logout": "Cerrar Sesión", "term.login": "Iniciar Sesión", "term.quickNav": "Navegación rápida", - "term.cast": "Transmitir", "term.about": "Acerca de", "term.privateSession": "Sesión Privada", "term.disablePrivateSession": "Deshabilitar Sesión Privada", @@ -32,16 +31,23 @@ "term.miniplayer": "Mini-Reproductor", "term.history": "Historial", "term.search": "Buscar", + "term.scroll": "Modo de Desplazamiento", + "term.scroll.infinite": "Infinito", + "term.scroll.paged": "${songsPerPage} por Página", + "term.live": "LIVE", + "term.showSearch": "Mostrar Barra de Búsqueda", + "term.hideSearch": "Ocultar Barra de Búsqueda", "term.library": "Biblioteca", "term.listenNow": "Escuchar Ahora", "term.browse": "Explorar", "term.radio": "Radio", - "term.recentlyAdded": "Agregadas Recientemente", + "term.recentlyAdded": "Agregado Recientemente", "term.songs": "Canciones", "term.albums": "Álbumes", "term.artists": "Artistas", "term.podcasts": "Podcasts", "term.playlists": "Listas de Reproducción", + "term.charts": "Tarjetas", "term.playlist": "Lista de Reproducción", "term.newPlaylist": "Nueva Lista de Reproducción", "term.newPlaylistFolder": "Nueva Carpeta de Listas de Reproducción", @@ -51,7 +57,9 @@ "term.navigateBack": "Navegar Hacia Atrás", "term.navigateForward": "Navegar Hacia Adelante", "term.play": "Reproducir", + "term.playpause": "Reproducir/Pausar", "term.pause": "Pausar", + "term.stop": "Detener", "term.previous": "Anterior", "term.next": "Siguiente", "term.shuffle": "Aleatorio", @@ -60,7 +68,7 @@ "term.repeat": "Repetir", "term.enableRepeatOne": "Habilitar Repetir Uno", "term.disableRepeatOne": "Deshabilitar Repetir Uno", - "term.disableRepeat": "Deshabilitar Repetición", + "term.disableRepeat": "Deshabilitar Repetir", "term.volume": "Volumen", "term.mute": "Silenciar", "term.unmute": "De-silenciar", @@ -94,7 +102,7 @@ "term.connecting": "Conectando", "term.disconnect": "Desconectar", "term.authed": "Autenticado", - "term.confirm": "¿Confirma?", + "term.confirm": "¿ Confirma ?", "term.more": "Más", "term.less": "Menos", "term.showMore": "Mostrar Más", @@ -124,12 +132,14 @@ "one": "Segundo", "other": "Segundos" }, - "term.fullscreenView": "Vista de Pantalla Completa", + "term.fullscreenView": "Pantalla Completa", "term.defaultView": "Vista Predeterminada", "term.audioSettings": "Configuración de Audio", "term.audioControls": "Configuración volumen", "term.clearAll": "Borrar todo", "term.recentStations": "Estaciones Recientes", + "term.personalStations": "Estaciones Personales", + "term.amLive": "Apple Music Live", "term.language": "Idioma", "term.funLanguages": "Idiomas Fun (Parodias)", "term.noLyrics": "Cargando... / Letras no encontradas./ Instrumental.", @@ -150,6 +160,7 @@ }, "term.videos": "Videos", "term.menu": "Menú", + "term.themeManaged": "Administrado por un Tema", "term.check": "Comprobar", "term.aboutArtist": "Acerca de {{artistName}}", "term.topResult": "Mejor Resultado", @@ -173,10 +184,11 @@ "term.top": "Top", "term.version": "Versión", "term.noVideos": "No hay Videos Disponibles.", - "term.plugin": "Plug-in", - "term.pluginMenu": "Plug-in Menú", + "term.plugins": "Plugins", + "term.plugin": "Plugin", + "term.pluginMenu": "Plugins Menú", "term.pluginMenu.none": "Sin Plugins Interactivos", - "term.replay": "Repetir", + "term.replay": "Replay", "term.uniqueAlbums": "Álbumes Únicos", "term.uniqueArtists": "Artistas Únicos", "term.uniqueSongs": "Canciones Únicas", @@ -189,11 +201,27 @@ "term.confirmLogout": "¿Estás seguro de que quieres cerrar sesión?", "term.creditDesignedBy": "Diseñado por ${authorUsername}", "term.discNumber": "Disco ${discNumber}", + "term.reload" : "¿ Recargar Cider ?", + "term.toggleprivate" : "Cambiar a Sesión Privada", + "term.webremote" : "Web Remoto", + "term.cast" : "Transmitir", + "term.cast2" : "Transmitir a los Dispositivos", + "term.quit" : "Salir", + "term.zoomin" : "Acercar", + "term.zoomout" : "Alejar", + "term.zoomreset" : "Restablecer", + "term.fullscreen" : "Pantalla Completa", + "term.nowPlaying": "Reproduciendo Ahora", + "home.syncFavorites": "Sincronizar Favoritos", + "home.syncFavorites.gettingArtists": "Consiguiendo Artistas Favoritos...", + "action.favorite": "Favorito", + "action.removeFavorite": "Eliminar Favorito", + "action.refresh": "Actualizar", "home.title": "Principal", "home.recentlyPlayed": "Escuchado Recientemente", "home.recentlyAdded": "Agregado Recientemente", "home.artistsFeed": "Tu Feed de artistas", - "home.artistsFeed.noArtist": "Sigue a algunos Artistas para ver sus últimos Lanzamientos", + "home.artistsFeed.noArtist": "Sigue a algunos Artistas para ver sus Últimos Lanzamientos", "home.madeForYou": "Hecho para Ti", "home.friendsListeningTo": "Amigos Escuchando", "home.followedArtists": "Artistas Seguidos", @@ -209,20 +237,27 @@ "podcast.episodes": "Episodios", "podcast.playEpisode": "Reproducir Episodio", "podcast.website": "Sitio web de Podcasts", + "action.hideLibrary": "Ocultar biblioteca", + "action.showLibrary": "Mostrar biblioteca", + "action.cut": "Cortar", + "action.paste": "Pegar", + "action.selectAll": "Seleccionar Todo", + "action.delete": "Borrar", "action.edit": "Editar", "action.done": "Hecho", - "action.editTracklist": "Edit Tracklist", + "action.submit": "Enviar", + "action.editTracklist": "Editar Lista de Canciones", "action.addToLibrary": "Agregar a la Biblioteca", "action.addToLibrary.success": "Agregado a la Biblioteca", "action.addToLibrary.error": "Error al agregar a la Biblioteca", "action.removeFromLibrary": "Eliminar de la Biblioteca", "action.removeFromLibrary.success": "Eliminado de la Biblioteca", - "action.addToQueue": "Añadir a la cola", - "action.addToQueue.success": "Agregado a la cola", - "action.addToQueue.error": "Error al agregar a la cola", - "action.removeFromQueue": "Eliminar de la cola", - "action.removeFromQueue.success": "Eliminado de la cola", - "action.removeFromQueue.error": "Error al eliminar de la cola", + "action.addToQueue": "Agregar a la Cola", + "action.addToQueue.success": "Agregado a la Cola", + "action.addToQueue.error": "Error al Agregar a la Cola", + "action.removeFromQueue": "Eliminar de la Cola", + "action.removeFromQueue.success": "Eliminado de la Cola", + "action.removeFromQueue.error": "Error al Eliminar de la Cola", "action.createPlaylist": "Crear una nueva lista de reproducción", "action.addToPlaylist": "Agregar a lista de reproducción", "action.removeFromPlaylist": "Eliminar de la lista de reproducción", @@ -233,14 +268,14 @@ "action.unfollow": "Dejar de Seguir", "action.unfollow.success": "Dejando de Seguir", "action.unfollow.error": "Error al dejar de Seguir", - "action.playNext": "Reproducir siguiente", - "action.playLater": "Reproducir más tarde", + "action.playNext": "Reproducir Siguiente", + "action.playLater": "Reproducir Más Tarde", "action.startRadio": "Iniciar Radio", - "action.goToArtist": "Ir al artista", - "action.goToAlbum": "Ir al álbum", - "action.showInPlaylist": "Mostrar en lista de reproducción", + "action.goToArtist": "Ir al Artista", + "action.goToAlbum": "Ir al Álbum", + "action.showInPlaylist": "Mostrar en Lista de Reproducción", "action.showInAppleMusic": "Mostrar en Apple Music", - "action.moveToTop": "Mover fuera de la carpeta", + "action.moveToTop": "Mover fuera de la Carpeta", "action.share": "Compartir", "action.rename": "Renombrar", "action.love": "Me Gusta", @@ -248,15 +283,15 @@ "action.dislike": "Recomendar menos este contenido", "action.undoDislike": "Recomendar mas este contenido", "action.showWebRemoteQR": "Web Remoto", - "action.playTracksNext": "Reproducir ${app.selectedMediaItems.length} pistas siguientes", - "action.playTracksLater": "Reproducir ${app.selectedMediaItems.length} pistas mas tarde", - "action.removeTracks": "Eliminar ${self.selectedItems.length} pistas de la cola", + "action.playTracksNext": "Reproducir ${app.selectedMediaItems.length} Canciones Siguientes", + "action.playTracksLater": "Reproducir ${app.selectedMediaItems.length} Canciones mas tarde", + "action.removeTracks": "Eliminar ${self.selectedItems.length} Canciones de la Cola", "action.import": "Importar", "action.export": "Exportar", "action.showAlbum": "Mostrar Álbum Completo", "action.tray.minimize": "Minimizar a la bandeja", - "action.tray.quit": "Salir", "action.tray.show": "Mostrar Cider", + "action.tray.listento": "Escuchando a:", "action.update": "Actualizar", "action.install": "Instalar", "action.copy": "Copiar", @@ -264,7 +299,7 @@ "action.deletepreset": "Borrar Preset", "action.open": "Abrir", "action.close": "Cerrar", - "action.relaunch.confirm": "¿Quieres reiniciar Cider?", + "action.relaunch.confirm": "¿ Quieres reiniciar Cider ?", "action.cast.chromecast": "Chromecast", "action.cast.todevices": "Transmitir a los Dispositivos", "action.cast.stop": "Dejar de transmitir a todos los Dispositivos", @@ -273,47 +308,28 @@ "action.cast.scan": "Escanear", "action.cast.scanning": "Escaneando...", "action.createNew": "Crear Nuevo...", - "action.openArtworkInBrowser": "Abrir Ilustración en el navegador", + "action.openArtworkInBrowser": "Abrir Ilustración en el Navegador", "action.scrollToTop": "Ir al inicio", - "menubar.options.about": "Acerca de", - "menubar.options.settings": "Ajustes", - "menubar.options.quit": "Salir", "menubar.options.view": "Ver", "menubar.options.reload": "Recargar", "menubar.options.forcereload": "Forzar Recarga", "menubar.options.toggledevtools": "Herramientas de Desarrollo", "menubar.options.window": "Ventana", "menubar.options.minimize": "Minimizar", - "menubar.options.toggleprivate": "Cambiar Sesión Privada", - "menubar.options.webremote": "Web Remoto", - "menubar.options.audio": "Configuraciones de Audio", - "menubar.options.plugins": "Menu de Plu-gins", + "menubar.options.plugins": "Menú de Plugins", "menubar.options.controls": "Controles", - "menubar.options.next": "Siguiente", - "menubar.options.playpause": "Reproducir/Pausar", - "menubar.options.previous": "Anterior", "menubar.options.volumeup": "Subir Volumen", "menubar.options.volumedown": "Bajar Volumen", - "menubar.options.browse": "Explorar", - "menubar.options.artists": "Artistas", - "menubar.options.search": "Buscar", - "menubar.options.albums": "Álbumes", - "menubar.options.cast": "Transmitir a Dispositivos", "menubar.options.account": "Cuenta", - "menubar.options.accountsettings": "Ajustes de Cuenta", "menubar.options.signout": "Cerrar Sesión", "menubar.options.support": "Soporte", - "menubar.options.discord": "Discord", - "menubar.options.github": "GitHub Wiki", "menubar.options.report": "Reportar a...", "menubar.options.bug": "Bug", "menubar.options.feature": "Solicitud de características", "menubar.options.trans": "Solicitud de Informe/Traducción", "menubar.options.license": "Ver licencia", "menubar.options.conf": "Abrir archivo de configuración en el editor", - "menubar.options.listennow": "Escuchar Ahora", - "menubar.options.recentlyAdded": "Agregadas Recientemente", - "menubar.options.songs": "Canciones", + "menubar.options.zoom": "Zoom", "settings.header.general": "General", "settings.header.general.description": "Ajuste la configuración general de Cider.", "settings.option.general.language": "Idioma", @@ -333,11 +349,17 @@ "settings.option.general.customizeSidebar": "Personalizar elementos de la barra lateral", "settings.option.general.customizeSidebar.customize": "Personalizar", "settings.option.general.keybindings": "Combinaciones de Teclas", + "settings.option.general.keybindings.library": "Biblioteca", + "settings.option.general.keybindings.session": "Sesión", + "settings.option.general.keybindings.control": "Controles", + "settings.option.general.keybindings.interface": "Interfaz", + "settings.option.general.keybindings.advanced": "Avanzado", "settings.option.general.keybindings.pressCombination": "Presione una combinación de dos teclas para actualizar la combinación de teclas.", "settings.option.general.keybindings.pressEscape": "Pulse la tecla Escape para volver.", "settings.notyf.general.keybindings.update.success": "Combinación de teclas actualizada correctamente", "settings.prompt.general.keybindings.update.success": "La combinación de teclas se actualizó correctamente. Pulsa OK para reiniciar Cider", - "settings.option.general.keybindings.open": "Abrir", + "settings.option.general.themeUpdateNotification": "Buscar actualizaciones de temas automáticamente", + "settings.option.general.showLovedTracksInline": "Mostrar pistas favoritas en la línea", "settings.description.search": "Buscar", "settings.description.albums": "Álbumes de la biblioteca", "settings.description.artists": "Artistas de la biblioteca", @@ -356,8 +378,9 @@ "settings.notyf.updateCider.update-downloaded": "La actualización se ha descargado, Reinicie para aplicarla", "settings.notyf.updateCider.update-timeout": "Tiempo de espera agotado para actualizar Cider", "settings.header.audio": "Audio", - "settings.header.audio.description": "Ajuste la Configuración de Audio para Cider.", - "settings.option.audio.volumeStep": "Paso de Volumen", + "settings.header.audio.description": "Ajuste la configuración de audio para Cider.", + "settings.option.audio.volumeStep": "Pasos de Volumen", + "settings.option.audio.advanced": "Control de Volumen Avanzado", "settings.option.audio.maxVolume": "Volumen Máximo", "settings.option.audio.changePlaybackRate": "Cambiar la Velocidad de Reproducción", "settings.option.audio.playbackRate": "Velocidad de Reproducción", @@ -373,48 +396,63 @@ "settings.header.audio.quality.standard.description": "64 kbps", "settings.option.audio.seamlessTransition": "Transición de audio sin interrupciones", "settings.option.audio.enableAdvancedFunctionality": "Habilitar funcionalidad avanzada", - "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 pistas de audio.", - "settings.warn.audio.enableAdvancedFunctionality.lowcores": "Cider cree que su PC no puede manejar estas funciones. ¿Estás seguro de que quieres continuar?", + "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 pistas de audio.", + "settings.warn.audio.enableAdvancedFunctionality.lowcores": "Cider cree que su PC no puede manejar estas funciones. ¿ Estás seguro de que quieres continuar ?", "settings.option.audio.audioLab": "Cider Audio Lab", - "settings.option.audio.audioLab.description": "Una variedad de efectos de audio desarrollados internamente para Cider.", + "settings.option.audio.audioLab.description": "Una variedad de efectos de Audio desarrollados internamente para Cider.", "settings.option.audio.audioLab.subheader": "Designed by Cider Acoustic Technologies in California", - "settings.warn.audioLab.withoutAF": "Se requiere AudioContext (funcionalidad avanzada) para habilitar Laboratorio de audio de Cider.", - "settings.warn.enableAdvancedFunctionality": "AudioContext (funcionalidad avanzada) es necesaria para habilitar esta característica.", - "settings.option.audio.enableAdvancedFunctionality.analogWarmth": "Calidez analógica", - "settings.option.audio.enableAdvancedFunctionality.analogWarmth.description": "Simula la calidez analógica inspirada en el Korg Nutube 6P1", - "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity": "Intensidad de calidez analógica", - "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.description": "Cambia la intensidad del procesamiento del módulo de Calidez analógica", + "settings.warn.audioLab.withoutAF": "Se requiere AudioContext (funcionalidad avanzada) para habilitar Cider Audio Lab.", + "settings.warn.enableAdvancedFunctionality": "AudioContext (funcionalidad avanzada) es necesaria para Habilitar esta Característica.", + "settings.option.audio.enableAdvancedFunctionality.analogWarmth": "Calidez Analógica", + "settings.option.audio.enableAdvancedFunctionality.analogWarmth.description": "Simula la Calidez Analógica inspirada en el Korg Nutube 6P1", + "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity": "Intensidad de Calidez Analógica", + "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.description": "Cambia la intensidad del procesamiento del módulo de Calidez Analógica", "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth": "Suave", "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm": "Calido", "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizer": "Cider Atmosphere Realizer™️", "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizer.description": "Realiza una Atmósfera musical diferente modelada a partir de las configuraciones de audio de última generación.", "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode": "Cider Atmosphere Realizer™️ Mode", "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.description": "Cambia el modo de funcionamiento del módulo Atmosphere Realizer.", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_STANDARD": "Natural (Estándar)", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_PLUS": "Natural (Plus)", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_STANDARD": "Té De Espuma de Queso Hōjicha", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_PLUS": "Té con Leche de Tapioca Genmaicha", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.E68_1": "Té De Espuma De Queso Con Sal de Roca", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.E68_2": "Té con Leche Uji Matcha", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.E168_1": "Jazmín Macchiato", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z3600": "Té de leche de Hokkaido", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z8500A": "Pastel Suave de Luz de Luna", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.BSCBM": "Leche Creme Brûlée de Azúcar Morena", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z8500B": "Clafoutis de Cerezas", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z8500C": "Uji Matcha Mochi", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.CUDDLE": "Abrazo de Calidez", "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️", - "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Mejora la calidad de audio percibida del audio AAC de 256 kbps mediante el uso de un algoritmo en tiempo real que aprovecha los modelos psicoacústicos de la audición humana y las características de codificación AAC.", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Mejora la calidad de audio percibida del codificador de audio en AAC mediante el uso de un algoritmo en 'Tiempo Real' que aprovecha los modelos psicoacústicos de la audición humana y las características de codificación de AAC.", "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP no es compatible con la Espacialización. Desactive la Espacialización para continuar.", - "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "Intensidad de CAP", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "Fuerza de CAP", "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Cambia la intensidad del procesamiento realizado en el audio. (Agresivo puede producir resultados no deseados)", "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Estándar", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.adaptive": "Adaptativo", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.legacy": "Legacy", "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Agresivo", "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalización de audio", - "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normaliza el volumen máximo de pistas individuales para crear una experiencia auditiva más uniforme. (No funciona en las pistas cargadas por el usuario)", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normaliza el volumen máximo de las Canciones individuales para crear una experiencia auditiva más uniforme. (No funciona en las Canciones cargadas por el usuario)", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.disabled": "Gestionado por AudioLab", - "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Espacialización Sintonizada de Cider", - "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "Efecto de preajuste de espacialización, deshabilita la configuración personalizable de la espacialización de audio. La espacialización debe estar habilitada como requisito previo.", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Espacialización ajustada de Cider", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "Efecto de Preajuste de espacialización, desactiva la configuración personalizable de espacialización de audio.", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Perfil de espacialización de Cider", - "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description": "Cambia el Perfil de Ajuste de Espacialización.", - "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard": "Estándar", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description": "Cambia el Perfil de Ajuste de la Espacialización.", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard": "Estandar", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.soundstage": "Estudio de Sonido", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.separation": "Separación", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.minimal": "Mínimo", - "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "La Espacialización no es compatible con CAP. Deshabilite CAP para continuar.", - "settings.option.audio.dbspl.display": "Visualización dB SPL", - "settings.option.audio.dbspl.description": "(Solo usuarios avanzados) Muestra 'dB SPL' en lugar de 'dBFS' en el control deslizante de volumen.", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile": "Audiófilo", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.diffused": "Difuso", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.bplk": "Encore", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.hw2k": "Expanded Encore", + "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "La espacialización no es compatible con CAP. Deshabilite CAP para continuar.", + "settings.option.audio.dbspl.display": "Visualización de dB SPL", + "settings.option.audio.dbspl.description": "(Solo para usuarios avanzados) Muestra dB SPL en lugar de dBFS en el control deslizante de Volumen.", "settings.option.audio.dbfs.calibration": "Calibración de 0 dBFS", - "settings.option.audio.dbfs.description": "Ingrese el pico 'dB SPL con Ponderación-Z' cuando Cider esté en 0 dBFS.", + "settings.option.audio.dbfs.description": "Ingrese el Pico de dB SPL con 'Ponderación Z' cuando Cider esté en 0 dBFS.", "settings.header.visual": "Visual", "settings.header.visual.description": "Ajuste la configuración visual de Cider.", "settings.option.visual.windowStyle": "Estilo de Ventana", @@ -432,7 +470,7 @@ "settings.header.visual.animatedArtworkQuality.high": "Alto", "settings.header.visual.animatedArtworkQuality.veryHigh": "Muy alto", "settings.header.visual.animatedArtworkQuality.extreme": "Extremo", - "settings.option.visual.animatedWindowBackground": "Fondo de ventana animado", + "settings.option.visual.animatedWindowBackground": "Fondo de Ventana Animado", "settings.option.visual.hardwareAcceleration": "Aceleración de Hardware", "settings.option.visual.hardwareAcceleration.description": "Requiere reinicio", "settings.header.visual.hardwareAcceleration.default": "Por defecto", @@ -443,10 +481,11 @@ "settings.option.visual.theme.github.openfolder": "Abrir Carpeta de Temas", "settings.option.visual.theme.github.explore": "Explorar Temas de GitHub", "settings.header.visual.theme.github.page": "Temas de GitHub", - "settings.option.visual.theme.github.install.confirm": "¿Está seguro de que desea instalar {{ repo }}?", + "settings.option.visual.theme.github.install.confirm": "¿ Está seguro de que desea instalar {{ repo }} ?", "settings.prompt.visual.theme.github.URL": "Introduce la URL del tema que quieres instalar", - "settings.prompt.visual.theme.uninstallTheme": "¿Estas seguro que lo quieres desinstalar {{ theme }}?", + "settings.prompt.visual.theme.uninstallTheme": "¿ Estas seguro que lo quieres desinstalar {{ theme }} ?", "settings.option.visual.theme.checkForUpdates": "Buscar actualizaciones", + "settings.header.visual.styles": "Estilos", "settings.option.visual.theme.manageStyles": "Gestionar Estilos", "settings.option.visual.theme.uninstall": "Desinstalar", "settings.option.visual.theme.viewInfo": "Ver Información", @@ -491,11 +530,19 @@ "settings.option.connectivity.discordRPC.hideTimestamp": "Ocultar Marca de Tiempo en Discord Rich Presence", "settings.option.connectivity.discordRPC.detailsFormat": "Formato de los detalles", "settings.option.connectivity.discordRPC.stateFormat": "Formato de Estado", + "settings.option.connectivity.discordRPC.reload": "Recargar Discord RPC", + "settings.option.connectivity.discordRPC.reconnectedToUser": "Discord RPC reconectando al usuario: {{user}} ({{userid}})", "settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling", "settings.option.connectivity.lastfmScrobble.delay": "Last.fm Retraso de Scrobble (%)", "settings.option.connectivity.lastfmScrobble.nowPlaying": "Activar Last.fm Now Playing", "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)", + "settings.option.connectivity.lastfmScrobble.filterLoop.description": "Evite que las pistas en bucle se scrobblen o se muestren en la lista Now Playing en Last.fm.", + "settings.option.connectivity.lastfmScrobble.filterTypes": "Tipos de Filtros de Medios (Last.fm)", + "settings.option.connectivity.lastfmScrobble.manualToken": "Ingrese el token de Last.fm Manualmente", + "settings.notyf.connectivity.lastfmScrobble.connectError": "Last.fm Tiempo de Conexión agotado", + "settings.notyf.connectivity.lastfmScrobble.connectSuccess": "Last.fm Conexión exitosa", + "settings.notyf.connectivity.lastfmScrobble.connecting": "Conectando a Last.fm...", "settings.header.debug": "Debug", "settings.option.debug.copy_log": "Copiar Logs al portapapeles", "settings.option.debug.openAppData": "Abrir carpeta de Cider", @@ -507,11 +554,17 @@ "settings.option.experimental.unknownPlugin.description": "Permitir la instalación de Plugins desde otros repos que no sean el repositorio de Plugins de Cider", "settings.option.experimental.compactUI": "UI Compacto", "settings.option.window.close_button_hide": "El botón Cerrar oculta la aplicación", + "settings.option.window.maxElementScale": "Escala Máxima de Elementos", "settings.option.experimental.inline_playlists": "Álbumes y listas de reproducción en línea", "settings.option.advanced.playlistTrackMapping": "Mapeo de pistas de listas de reproducción", "settings.option.advanced.playlistTrackMapping.description": "Habilita el escaneo profundo de las listas de reproducción para determinar qué pistas están en qué listas de reproducción. Los tiempos de creación de la caché de la lista de reproducción pueden aumentar significativamente.", "settings.option.visual.transparent": "Marco transparente", "settings.option.visual.transparent.description": "Necesita compatibilidad con temas, requiere reiniciar", + "settings.option.visual.customAccentColor": "Color de Acento Personalizado", + "settings.option.visual.accentColor": "Color de Acento", + "settings.option.visual.purplePodcastPlaybackBar": "Barra de Reproducción Morada para Podcasts", + "settings.option.visual.windowColor": "Color de Tinte de Ventana", + "settings.header.visual.windowBackgroundStyle.color": "Matiz de Color", "settings.header.advanced": "Avanzado", "settings.header.connect": "Conectar", "settings.option.connect.link_account": "Habilitar sincronización con Cider Connect", @@ -546,7 +599,46 @@ "share.platform.whatsapp": "WhatsApp", "share.platform.messenger": "Messenger", "share.platform.email": "Email", - "share.platform.songLink": "Copy with song.link", + "share.platform.songLink": "Copiar con song.link", "share.platform.clipboard": "Copiar link", - "about.thanks": "Muchas gracias al equipo de Cider Collective y a Todos nuestros colaboradores." + "about.thanks": "Muchas gracias al equipo de Cider Collective y a Todos nuestros colaboradores.", + "oobe.yes": "Sí", + "oobe.no": "No", + "oobe.next": "Siguiente", + "oobe.previous": "Anterior", + "oobe.done": "Hecho", + "oobe.amupsell.title": "Antes de Empezar", + "oobe.amupsell.text": "Cider Requiere una Suscripción paga Activa a Apple Music\nCider NO funcionará con Apple Music Voice Plan ni con algunas suscripciones de prueba promocionales. Si ya tiene una suscripción calificada de Apple Music, haga click en Siguiente para continuar.", + "oobe.amupsell.subscribeBtn": "Suscríbete a Apple Music", + "oobe.amupsell.explainBtn": "Explique", + "oobe.amupsell.subscribeUrl": "https://apple.co/3MdqJVQ", + "oobe.amupsell.amWebUrl": "https://beta.music.apple.com/", + "oobe.amupsell.promoExplained": "Algunas suscripciones de Apple Music promocionales y de prueba fuera de EE.UU. no tienen acceso a las API del reproductor web de Apple Music necesarias para que Cider funcione. Para verificar si su versión de prueba activa funcionará con Cider, vaya a {{ amWebUrl }} inicie sesión e intente reproducir música. Si funciona, ¡genial! Está listo para usar Cider, sin embargo, si no considera suscribirse a Apple Music aquí: {{ subscribeUrl }}", + "oobe.intro.title": "Bienvenido a Cider", + "oobe.intro.subtitle": "", + "oobe.intro.text": "Configuremos algunas cosas para que puedas usar Cider como quieras. Siempre puede cambiar esta configuración más tarde.", + "oobe.general.title": "General", + "oobe.general.subtitle": "", + "oobe.general.text": "", + "oobe.audio.title": "Audio", + "oobe.audio.subtitle": "", + "oobe.audio.text": "Cider cuenta con una pila de audio diseñada y afinada a medida que brinda una experiencia de audio rica y de alta calidad.\nCon Cider Adrenaline, Atmosphere Realizer y Spatialized Audio.\nPara habilitar esta funcionalidad, \"Funcionalidad de audio avanzada\" debe estar habilitada.\nHabilitar audio avanzado La funcionalidad le dará acceso a estas mejoras en Cider Audio Labs, que se encuentra en la configuración de la aplicación.", + "oobe.audio.advancedFunctionality": "", + "oobe.visual.title": "Visual", + "oobe.visual.subtitle": "", + "oobe.visual.text": "", + "oobe.visual.layout.text": "Cider presenta dos diseños de ventana diferentes.\nMaverick es un diseño similar a iTunes con el reproductor en la parte superior de la ventana.\nMojave es un nuevo giro creado por Cider Collective.\n\nPuedes cambiar el diseño en cualquier momento en la configuración.", + "oobe.visual.suggestingThemes": "La tematización es una excelente forma de personalizar tu experiencia. Aquí hay algunos que sugerimos: ", + "oobe.visual.suggestingThemes.subtext": "(Estos temas se descargarán de GitHub)", + "oobe.visual.suggestingThemes.default": "Cider", + "oobe.visual.suggestingThemes.default.text": "El clásico tema de Cider.", + "oobe.visual.suggestingThemes.dark": "Oscuro", + "oobe.visual.suggestingThemes.dark.text": "Oscurisimo", + "oobe.visual.suggestingThemes.community1": "Groovy", + "oobe.visual.suggestingThemes.community1.text": "Un tema influenciado por WinUI", + "oobe.visual.suggestingThemes.community2": "iTheme", + "oobe.visual.suggestingThemes.community2.text": " El clásico diseño de frutas grandes.", + "oobe.visual.suggestingThemes.community3": "Dracula", + "oobe.visual.suggestingThemes.community3.text": "El icónico esquema de color de Drácula.", + "oobe.amsignin.title": "" } diff --git a/src/i18n/es_MX.json b/src/i18n/es_MX.json index b867f834..5b0cf580 100644 --- a/src/i18n/es_MX.json +++ b/src/i18n/es_MX.json @@ -10,6 +10,7 @@ "notification.updatingLibrarySongs": "Actualizando Canciones de la Biblioteca...", "notification.updatingLibraryAlbums": "Actualizando Álbumes de la Biblioteca...", "notification.updatingLibraryArtists": "Actualizando Artistas de la Biblioteca...", + "term.variables": "Variables", "term.appleInc": "Apple Inc.", "term.appleMusic": "Apple Music", "term.applePodcasts": "Apple Podcasts", @@ -20,37 +21,54 @@ "term.accountSettings": "Configuración de la Cuenta", "term.logout": "Cerrar Sesión", "term.login": "Iniciar Sesión", - "term.cast": "Transmitir", + "term.quickNav": "Navegación rápida", "term.about": "Acerca de", "term.privateSession": "Sesión Privada", - "term.disablePrivateSession": "deshabilitar Sesión Privada", + "term.disablePrivateSession": "Deshabilitar Sesión Privada", "term.queue": "Cola", + "term.autoplay": "Reproducción Automática", "term.lyrics": "Letras", - "term.miniplayer": "Mini Reproductor", + "term.miniplayer": "Mini-Reproductor", "term.history": "Historial", "term.search": "Buscar", + "term.scroll": "Modo de Desplazamiento", + "term.scroll.infinite": "Infinito", + "term.scroll.paged": "${songsPerPage} por Página", + "term.live": "LIVE", + "term.showSearch": "Mostrar Barra de Búsqueda", + "term.hideSearch": "Ocultar Barra de Búsqueda", "term.library": "Biblioteca", "term.listenNow": "Escuchar Ahora", "term.browse": "Explorar", "term.radio": "Radio", - "term.recentlyAdded": "Agregadas Recientemente", + "term.recentlyAdded": "Agregado Recientemente", "term.songs": "Canciones", "term.albums": "Álbumes", "term.artists": "Artistas", "term.podcasts": "Podcasts", "term.playlists": "Listas de Reproducción", + "term.charts": "Tarjetas", "term.playlist": "Lista de Reproducción", "term.newPlaylist": "Nueva Lista de Reproducción", "term.newPlaylistFolder": "Nueva Carpeta de Listas de Reproducción", "term.createNewPlaylist": "Crear Nueva Lista de Reproducción", "term.createNewPlaylistFolder": "Crear Nueva Carpeta de Listas de Reproducción", - "term.deletePlaylist": "Estas Seguro de Querer Eliminar esta Lista de Reproducción", + "term.deletePlaylist": "¿Estas Seguro de Querer Eliminar esta Lista de Reproducción?", + "term.navigateBack": "Navegar Hacia Atrás", + "term.navigateForward": "Navegar Hacia Adelante", "term.play": "Reproducir", + "term.playpause": "Reproducir/Pausar", "term.pause": "Pausar", + "term.stop": "Detener", "term.previous": "Anterior", "term.next": "Siguiente", "term.shuffle": "Aleatorio", + "term.enableShuffle": "Habilitar Reproducción Aleatoria", + "term.disableShuffle": "Desactivar Reproducción Aleatoria", "term.repeat": "Repetir", + "term.enableRepeatOne": "Habilitar Repetir Uno", + "term.disableRepeatOne": "Deshabilitar Repetir Uno", + "term.disableRepeat": "Deshabilitar Repetir", "term.volume": "Volumen", "term.mute": "Silenciar", "term.unmute": "De-silenciar", @@ -72,6 +90,7 @@ "term.viewAs": "Ver como", "term.viewAs.coverArt": "Portada", "term.viewAs.list": "Lista", + "term.dynamic": "Dinámico", "term.size": "Tamaño", "term.size.normal": "Normal", "term.size.compact": "Compacto", @@ -88,7 +107,7 @@ "term.less": "Menos", "term.showMore": "Mostrar Más", "term.showLess": "Mostrar Menos", - "term.topSongs": "Canciones Principales", + "term.topSongs": "Mejores canciones", "term.latestReleases": "Últimos Lanzamientos", "term.time.added": "Agregado", "term.time.released": "Publicado", @@ -113,12 +132,14 @@ "one": "Segundo", "other": "Segundos" }, - "term.fullscreenView": "Vista de Pantalla Completa", + "term.fullscreenView": "Pantalla Completa", "term.defaultView": "Vista Predeterminada", "term.audioSettings": "Configuración de Audio", "term.audioControls": "Configuración volumen", "term.clearAll": "Borrar todo", "term.recentStations": "Estaciones Recientes", + "term.personalStations": "Estaciones Personales", + "term.amLive": "Apple Music Live", "term.language": "Idioma", "term.funLanguages": "Idiomas Fun (Parodias)", "term.noLyrics": "Cargando... / Letras no encontradas./ Instrumental.", @@ -130,7 +151,7 @@ "term.socialTeam": "Equipo Social", "term.socials": "Redes Sociales", "term.contributors": "Contribuidores", - "term.equalizer": "Equalizador", + "term.equalizer": "Ecualizador", "term.reset": "Reiniciar", "term.tracks": "Pistas", "term.track": { @@ -139,124 +160,176 @@ }, "term.videos": "Videos", "term.menu": "Menú", + "term.themeManaged": "Administrado por un Tema", "term.check": "Comprobar", "term.aboutArtist": "Acerca de {{artistName}}", - "term.topResult": "Mejor resultado", - "term.sharedPlaylists": "Listas de reproducción compartidas", + "term.topResult": "Mejor Resultado", + "term.sharedPlaylists": "Listas de Reproducción Compartidas", "term.people": "Personas", - "term.newpreset.name": "Nuevo nombre de preajuste de ecualizador", - "term.addedpreset": "Preajuste agregado", - "term.deletepreset.warn": "¿Estas seguro de que quieres eliminar este preajuste?", - "term.deletedpreset": "Preajuste eliminado", - "term.defaultPresets": "Preajustes predeterminados", - "term.userPresets": "Preajustes de usuario", + "term.newpreset.name": "Nuevo nombre de Preset de Ecualizador", + "term.addedpreset": "Preset Agregado", + "term.deletepreset.warn": "¿Estas seguro de que quieres eliminar este Preset?", + "term.deletedpreset": "Preset Eliminado", + "term.defaultPresets": "Preset Predeterminados", + "term.userPresets": "Preset de Usuario", "term.requestError": "Hubo un problema con la solicitud.", "term.song.link.generate": "Obtener URL de la Canción compartida...", - "term.musicVideos": "Videos de Música", + "term.musicVideos": "Videos Musicales", "term.stations": "Estaciones", "term.curators": "Curadores", "term.appleCurators": "Curadores de Apple", "term.radioShows": "Programas de Radio", - "term.recordLabels": "Etiquetas discográficas", + "term.recordLabels": "Etiquetas Discográficas", "term.videoExtras": "Extras de Video", "term.top": "Top", - "term.version": "Version", - "term.noVideos": "No hay videos disponibles.", - "term.plugin": "Plug-in", - "term.pluginMenu": "Plug-in Menu", - "term.pluginMenu.none": "Sin plugins interactivos", - "term.replay": "Repetir", - "term.uniqueAlbums": "Álbumes únicos", - "term.uniqueArtists": "Artistas únicos", - "term.uniqueSongs": "Canciones únicas", - "term.topArtists": "Artistas Principales", - "term.listenedTo": "Escuchado:", + "term.version": "Versión", + "term.noVideos": "No hay Videos Disponibles.", + "term.plugins": "Plugins", + "term.plugin": "Plugin", + "term.pluginMenu": "Plugins Menú", + "term.pluginMenu.none": "Sin Plugins Interactivos", + "term.replay": "Replay", + "term.uniqueAlbums": "Álbumes Únicos", + "term.uniqueArtists": "Artistas Únicos", + "term.uniqueSongs": "Canciones Únicas", + "term.topArtists": "Mejores Artistas", + "term.listenedTo": "Escuchando a:", "term.times": "Veces", - "term.topAlbums": "Mejores álbumes", + "term.topAlbums": "Mejores Álbumes", "term.plays": "Reproducciones", "term.topGenres": "Mejores Géneros", "term.confirmLogout": "¿Estás seguro de que quieres cerrar sesión?", "term.creditDesignedBy": "Diseñado por ${authorUsername}", "term.discNumber": "Disco ${discNumber}", - "home.title": "Hogar", + "term.reload" : "¿ Recargar Cider ?", + "term.toggleprivate" : "Cambiar a Sesión Privada", + "term.webremote" : "Web Remoto", + "term.cast" : "Transmitir", + "term.cast2" : "Transmitir a los Dispositivos", + "term.quit" : "Salir", + "term.zoomin" : "Acercar", + "term.zoomout" : "Alejar", + "term.zoomreset" : "Restablecer", + "term.fullscreen" : "Pantalla Completa", + "term.nowPlaying": "Reproduciendo Ahora", + "home.syncFavorites": "Sincronizar Favoritos", + "home.syncFavorites.gettingArtists": "Consiguiendo Artistas Favoritos...", + "action.favorite": "Favorito", + "action.removeFavorite": "Eliminar Favorito", + "action.refresh": "Actualizar", + "home.title": "Inicio", "home.recentlyPlayed": "Escuchado Recientemente", "home.recentlyAdded": "Agregado Recientemente", - "home.artistsFeed": "Tu feed de artistas", - "home.artistsFeed.noArtist": "Sigue a algunos artistas para ver sus últimos lanzamientos", - "home.madeForYou": "Hecho para ti", - "home.friendsListeningTo": "Amigos escuchando", - "home.followedArtists": "Artistas seguidos", - "error.appleMusicSubRequired": "Apple Music requiere una suscripción.", + "home.artistsFeed": "Tu Feed de artistas", + "home.artistsFeed.noArtist": "Sigue a algunos Artistas para ver sus Últimos Lanzamientos", + "home.madeForYou": "Hecho para Ti", + "home.friendsListeningTo": "Amigos Escuchando", + "home.followedArtists": "Artistas Seguidos", + "error.appleMusicSubRequired": "Apple Music Requiere una Suscripción.", "error.connectionError": "Hubo un problema al conectarse a Apple Music.", - "error.noResults": "No hay resultados.", - "error.noResults.description": "Prueba una nueva búsqueda", + "error.noResults": "No hay Resultados.", + "error.noResults.description": "Prueba una Nueva Búsqueda", "podcast.followOnCider": "Sigue en Cider", "podcast.followedOnCider": "Siguiendo en Cider", "podcast.subscribeOnItunes": "Suscríbete en iTunes", "podcast.subscribedOnItunes": "Suscrito en iTunes", "podcast.itunesStore": "Tienda de iTunes", "podcast.episodes": "Episodios", - "podcast.playEpisode": "Reproducir episodio", - "podcast.website": "Sitio web de podcasts", - "action.addToLibrary": "Agregar a la biblioteca", - "action.addToLibrary.success": "Agregado a la biblioteca", - "action.addToLibrary.error": "Error al agregar a la biblioteca", - "action.removeFromLibrary": "Eliminar de la biblioteca", - "action.removeFromLibrary.success": "Eliminado de la biblioteca", - "action.addToQueue": "Añadir a la cola", - "action.addToQueue.success": "Agregado a la cola", - "action.addToQueue.error": "Error al agregar a la cola", - "action.removeFromQueue": "Eliminar de la cola", - "action.removeFromQueue.success": "Eliminado de la cola", - "action.removeFromQueue.error": "Error al eliminar de la cola", + "podcast.playEpisode": "Reproducir Episodio", + "podcast.website": "Sitio web de Podcasts", + "action.hideLibrary": "Ocultar biblioteca", + "action.showLibrary": "Mostrar biblioteca", + "action.cut": "Cortar", + "action.paste": "Pegar", + "action.selectAll": "Seleccionar Todo", + "action.delete": "Borrar", + "action.edit": "Editar", + "action.done": "Hecho", + "action.submit": "Enviar", + "action.editTracklist": "Editar Lista de Canciones", + "action.addToLibrary": "Agregar a la Biblioteca", + "action.addToLibrary.success": "Agregado a la Biblioteca", + "action.addToLibrary.error": "Error al agregar a la Biblioteca", + "action.removeFromLibrary": "Eliminar de la Biblioteca", + "action.removeFromLibrary.success": "Eliminado de la Biblioteca", + "action.addToQueue": "Agregar a la Cola", + "action.addToQueue.success": "Agregado a la Cola", + "action.addToQueue.error": "Error al Agregar a la Cola", + "action.removeFromQueue": "Eliminar de la Cola", + "action.removeFromQueue.success": "Eliminado de la Cola", + "action.removeFromQueue.error": "Error al Eliminar de la Cola", "action.createPlaylist": "Crear una nueva lista de reproducción", "action.addToPlaylist": "Agregar a lista de reproducción", "action.removeFromPlaylist": "Eliminar de la lista de reproducción", - "action.addToFavorites": "Agregar a favoritos", + "action.addToFavorites": "Agregar a Favoritos", "action.follow": "Seguir", "action.follow.success": "Siguiendo", - "action.follow.error": "Error al seguir", - "action.unfollow": "Dejar de seguir", - "action.unfollow.success": "Dejando de seguir", - "action.unfollow.error": "Error al dejar de seguir", - "action.playNext": "Reproducir siguiente", - "action.playLater": "Reproducir más tarde", + "action.follow.error": "Error al Seguir", + "action.unfollow": "Dejar de Seguir", + "action.unfollow.success": "Dejando de Seguir", + "action.unfollow.error": "Error al dejar de Seguir", + "action.playNext": "Reproducir Siguiente", + "action.playLater": "Reproducir Más Tarde", "action.startRadio": "Iniciar Radio", - "action.goToArtist": "Ir al artista", - "action.goToAlbum": "Ir al álbum", - "action.showInPlaylist": "Mostrar en lista de reproducción", + "action.goToArtist": "Ir al Artista", + "action.goToAlbum": "Ir al Álbum", + "action.showInPlaylist": "Mostrar en Lista de Reproducción", "action.showInAppleMusic": "Mostrar en Apple Music", - "action.moveToTop": "Mover fuera de la carpeta", + "action.moveToTop": "Mover fuera de la Carpeta", "action.share": "Compartir", "action.rename": "Renombrar", - "action.love": "Love", - "action.unlove": "Unlove", - "action.dislike": "Dislike", - "action.undoDislike": "Undo dislike", - "action.showWebRemoteQR": "Web Remota", - "action.playTracksNext": "Reproducir ${app.selectedMediaItems.length} pistas siguientes", - "action.playTracksLater": "Reproducir ${app.selectedMediaItems.length} pistas mas tarde", - "action.removeTracks": "Eliminar ${self.selectedItems.length} pistas de la cola", + "action.love": "Me Gusta", + "action.unlove": "No Me Gusta", + "action.dislike": "Recomendar menos este contenido", + "action.undoDislike": "Recomendar mas este contenido", + "action.showWebRemoteQR": "Web Remoto", + "action.playTracksNext": "Reproducir ${app.selectedMediaItems.length} Pistas Siguientes", + "action.playTracksLater": "Reproducir ${app.selectedMediaItems.length} Pistas mas tarde", + "action.removeTracks": "Eliminar ${self.selectedItems.length} Pistas de la Cola", "action.import": "Importar", "action.export": "Exportar", - "action.showAlbum": "Mostrar Album Completo", + "action.showAlbum": "Mostrar Álbum Completo", "action.tray.minimize": "Minimizar a la bandeja", - "action.tray.quit": "Abandonar", + "action.tray.show": "Mostrar Cider", + "action.tray.listento": "Escuchando a:", "action.update": "Actualizar", "action.install": "Instalar", "action.copy": "Copiar", - "action.newpreset": "Nuevo preset...", + "action.newpreset": "Nuevo Preset...", "action.deletepreset": "Borrar Preset", "action.open": "Abrir", - "action.relaunch.confirm": "¿Quieres reabrir Cider?", + "action.close": "Cerrar", + "action.relaunch.confirm": "¿ Quieres reiniciar Cider ?", "action.cast.chromecast": "Chromecast", - "action.cast.todevices": "Transmitir a los dispositivos", - "action.cast.stop": "Dejar de transmitir a todos los dispositivos", + "action.cast.todevices": "Transmitir a los Dispositivos", + "action.cast.stop": "Dejar de transmitir a todos los Dispositivos", "action.cast.airplay": "AirPlay", "action.cast.airplay.underdevelopment": "AirPlay todavía está en desarrollo", "action.cast.scan": "Escanear", "action.cast.scanning": "Escaneando...", "action.createNew": "Crear Nuevo...", + "action.openArtworkInBrowser": "Abrir Ilustración en el Navegador", + "action.scrollToTop": "Ir al inicio", + "menubar.options.view": "Ver", + "menubar.options.reload": "Recargar", + "menubar.options.forcereload": "Forzar Recarga", + "menubar.options.toggledevtools": "Herramientas de Desarrollo", + "menubar.options.window": "Ventana", + "menubar.options.minimize": "Minimizar", + "menubar.options.plugins": "Menú de Plugins", + "menubar.options.controls": "Controles", + "menubar.options.volumeup": "Subir Volumen", + "menubar.options.volumedown": "Bajar Volumen", + "menubar.options.account": "Cuenta", + "menubar.options.signout": "Cerrar Sesión", + "menubar.options.support": "Soporte", + "menubar.options.report": "Reportar a...", + "menubar.options.bug": "Bug", + "menubar.options.feature": "Solicitud de características", + "menubar.options.trans": "Solicitud de Informe/Traducción", + "menubar.options.license": "Ver licencia", + "menubar.options.conf": "Abrir archivo de configuración en el editor", + "menubar.options.zoom": "Zoom", "settings.header.general": "General", "settings.header.general.description": "Ajuste la configuración general de Cider.", "settings.option.general.language": "Idioma", @@ -266,18 +339,52 @@ "settings.option.general.resumebehavior.locally.description": "Cider reanudará su última sesión en esta PC.", "settings.option.general.resumebehavior.history": "Histórico", "settings.option.general.resumebehavior.history.description": "Cider pondrá en cola la última canción de su historial general de Apple Music, en todos sus dispositivos.", + "settings.option.general.resumetabs": "Abrir pestaña al iniciar", + "settings.option.general.resumetabs.description": "Puede elegir qué pestaña desea abrir cuando inicie Cider.", + "settings.option.general.resumetabs.dynamic": "Dinámico", + "settings.option.general.resumetabs.dynamic.description": "Cider abrirá la pestaña que utilizó por última vez.", "settings.option.general.language.main": "Idiomas", "settings.option.general.language.fun": "Idiomas Fun (Parodias)", "settings.option.general.language.unsorted": "Sin Clasificar", "settings.option.general.customizeSidebar": "Personalizar elementos de la barra lateral", "settings.option.general.customizeSidebar.customize": "Personalizar", + "settings.option.general.keybindings": "Combinaciones de Teclas", + "settings.option.general.keybindings.library": "Biblioteca", + "settings.option.general.keybindings.session": "Sesión", + "settings.option.general.keybindings.control": "Controles", + "settings.option.general.keybindings.interface": "Interfaz", + "settings.option.general.keybindings.advanced": "Avanzado", + "settings.option.general.keybindings.pressCombination": "Presione una combinación de dos teclas para actualizar la combinación de teclas.", + "settings.option.general.keybindings.pressEscape": "Pulse la tecla Escape para volver.", + "settings.notyf.general.keybindings.update.success": "Combinación de teclas actualizada correctamente", + "settings.prompt.general.keybindings.update.success": "La combinación de teclas se actualizó correctamente. Pulsa OK para reiniciar Cider", + "settings.option.general.themeUpdateNotification": "Buscar actualizaciones de temas automáticamente", + "settings.option.general.showLovedTracksInline": "Mostrar pistas favoritas en la línea", + "settings.description.search": "Buscar", + "settings.description.albums": "Álbumes de la biblioteca", + "settings.description.artists": "Artistas de la biblioteca", + "settings.description.browse": "Navegar", + "settings.description.private": "Cambiar a Sesión Privada", + "settings.description.remote": "Web Remoto", + "settings.description.audio": "Configuraciones de Audio", + "settings.description.plugins": "Menú de Plugins", + "settings.description.cast": "Transmitir a los Dispositivos", + "settings.description.settings": "Configuraciones", + "settings.description.developer": "Herramientas para Desarrolladores", + "settings.description.listnow": "Escuchar Ahora", + "settings.description.recentAdd": "Agregadas Recientemente", + "settings.description.songs": "Canciones", "settings.notyf.updateCider.update-not-available": "No hay actualizaciones disponibles", - "settings.notyf.updateCider.update-downloaded": "La actualización se ha descargado, reinicie para aplicarla", + "settings.notyf.updateCider.update-downloaded": "La actualización se ha descargado, Reinicie para aplicarla", "settings.notyf.updateCider.update-timeout": "Tiempo de espera agotado para actualizar Cider", "settings.header.audio": "Audio", "settings.header.audio.description": "Ajuste la configuración de audio para Cider.", - "settings.option.audio.volumeStep": "Paso de Volumen", + "settings.option.audio.volumeStep": "Pasos de Volumen", + "settings.option.audio.advanced": "Control de Volumen Avanzado", "settings.option.audio.maxVolume": "Volumen Máximo", + "settings.option.audio.changePlaybackRate": "Cambiar la Velocidad de Reproducción", + "settings.option.audio.playbackRate": "Velocidad de Reproducción", + "settings.option.audio.playbackRate.change": "Cambiar", "settings.option.audio.quality": "Calidad de Audio", "settings.header.audio.quality.hireslossless": "Hi-Res Lossless", "settings.header.audio.quality.hireslossless.description": "arriba de 24-bit/192 kHz", @@ -289,40 +396,69 @@ "settings.header.audio.quality.standard.description": "64 kbps", "settings.option.audio.seamlessTransition": "Transición de audio sin interrupciones", "settings.option.audio.enableAdvancedFunctionality": "Habilitar funcionalidad avanzada", - "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 pistas de audio.", - "settings.warn.audio.enableAdvancedFunctionality.lowcores": "Cider cree que su PC no puede manejar estas funciones. ¿Estás seguro de que quieres continuar?", + "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 pistas de audio.", + "settings.warn.audio.enableAdvancedFunctionality.lowcores": "Cider cree que su PC no puede manejar estas funciones. ¿ Estás seguro de que quieres continuar ?", "settings.option.audio.audioLab": "Cider Audio Lab", - "settings.option.audio.audioLab.description": "Una variedad de efectos de audio desarrollados internamente para Cider.", - "settings.warn.audioLab.withoutAF": "Se requiere AudioContext (funcionalidad avanzada) para habilitar Laboratorio de audio de Cider.", - "settings.option.audio.enableAdvancedFunctionality.analogWarmth": "Calidez analógica", - "settings.option.audio.enableAdvancedFunctionality.analogWarmth.description": "Simula la calidez analógica inspirada en el Korg Nutube 6P1", - "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity": "Intensidad de calidez analógica", - "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.description": "Cambia la intensidad del procesamiento del módulo de Calidez analógica", + "settings.option.audio.audioLab.description": "Una variedad de efectos de Audio desarrollados internamente para Cider.", + "settings.option.audio.audioLab.subheader": "Designed by Cider Acoustic Technologies in California", + "settings.warn.audioLab.withoutAF": "Se requiere AudioContext (funcionalidad avanzada) para habilitar Cider Audio Lab.", + "settings.warn.enableAdvancedFunctionality": "AudioContext (funcionalidad avanzada) es necesaria para Habilitar esta Característica.", + "settings.option.audio.enableAdvancedFunctionality.analogWarmth": "Calidez Analógica", + "settings.option.audio.enableAdvancedFunctionality.analogWarmth.description": "Simula la Calidez Analógica inspirada en el Korg Nutube 6P1", + "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity": "Intensidad de Calidez Analógica", + "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.description": "Cambia la intensidad del procesamiento del módulo de Calidez Analógica", "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth": "Suave", "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm": "Calido", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizer": "Cider Atmosphere Realizer™️", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizer.description": "Realiza una Atmósfera musical diferente modelada a partir de las configuraciones de audio de última generación.", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode": "Cider Atmosphere Realizer™️ Mode", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.description": "Cambia el modo de funcionamiento del módulo Atmosphere Realizer.", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_STANDARD": "Té De Espuma de Queso Hōjicha", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_PLUS": "Té con Leche de Tapioca Genmaicha", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.E68_1": "Té De Espuma De Queso Con Sal de Roca", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.E68_2": "Té con Leche Uji Matcha", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.E168_1": "Jazmín Macchiato", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z3600": "Té de leche de Hokkaido", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z8500A": "Pastel Suave de Luz de Luna", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.BSCBM": "Leche Creme Brûlée de Azúcar Morena", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z8500B": "Clafoutis de Cerezas", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z8500C": "Uji Matcha Mochi", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.CUDDLE": "Abrazo de Calidez", "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️", - "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Mejora la calidad de audio percibida del audio AAC de 256 kbps mediante el uso de un algoritmo en tiempo real que aprovecha los modelos psicoacústicos de la audición humana y las características de codificación AAC.", - "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP no es compatible con la espacialización. Desactive la espacialización para continuar.", - "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "Intensidad de CAP", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Mejora la calidad de audio percibida del codificador de audio en AAC mediante el uso de un algoritmo en 'Tiempo Real' que aprovecha los modelos psicoacústicos de la audición humana y las características de codificación de AAC.", + "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP no es compatible con la Espacialización. Desactive la Espacialización para continuar.", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "Fuerza de CAP", "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Cambia la intensidad del procesamiento realizado en el audio. (Agresivo puede producir resultados no deseados)", "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Estándar", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.adaptive": "Adaptativo", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.legacy": "Legacy", "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Agresivo", "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalización de audio", - "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normaliza el volumen máximo de pistas individuales para crear una experiencia auditiva más uniforme. (No funciona en las pistas cargadas por el usuario)", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normaliza el volumen máximo de las Canciones individuales para crear una experiencia auditiva más uniforme. (No funciona en las Canciones cargadas por el usuario)", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.disabled": "Gestionado por AudioLab", - "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Cider Tuned Spatialization", - "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "Efecto de preajuste de espacialización, deshabilita la configuración personalizable de la espacialización de audio. La espacialización debe estar habilitada como requisito previo.", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Espacialización ajustada de Cider", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "Efecto de Preajuste de espacialización, desactiva la configuración personalizable de espacialización de audio.", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Perfil de espacialización de Cider", - "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description": "Cambia el Perfil de Ajuste de Espacialización.", - "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard": "Estándar", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description": "Cambia el Perfil de Ajuste de la Espacialización.", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard": "Estandar", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.soundstage": "Estudio de Sonido", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.separation": "Separación", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.minimal": "Mínimo", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile": "Audiófilo", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.diffused": "Difuso", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.bplk": "Encore", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.hw2k": "Expanded Encore", "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "La espacialización no es compatible con CAP. Deshabilite CAP para continuar.", + "settings.option.audio.dbspl.display": "Visualización de dB SPL", + "settings.option.audio.dbspl.description": "(Solo para usuarios avanzados) Muestra dB SPL en lugar de dBFS en el control deslizante de Volumen.", + "settings.option.audio.dbfs.calibration": "Calibración de 0 dBFS", + "settings.option.audio.dbfs.description": "Ingrese el Pico de dB SPL con 'Ponderación Z' cuando Cider esté en 0 dBFS.", "settings.header.visual": "Visual", "settings.header.visual.description": "Ajuste la configuración visual de Cider.", - "settings.option.visual.windowStyle": "Estilo de ventana", - "settings.option.visual.windowBackgroundStyle": "Estilo de fondo de ventana", + "settings.option.visual.windowStyle": "Estilo de Ventana", + "settings.option.visual.windowBackgroundStyle": "Estilo de Fondo de Ventana", "settings.header.visual.windowBackgroundStyle.none": "Ninguno", - "settings.header.visual.windowBackgroundStyle.artwork": "ilustracion", + "settings.header.visual.windowBackgroundStyle.artwork": "ilustración", "settings.header.visual.windowBackgroundStyle.image": "Imagen", "settings.option.visual.animatedArtwork": "Ilustración Animada", "settings.header.visual.animatedArtwork.always": "Siempre", @@ -334,19 +470,29 @@ "settings.header.visual.animatedArtworkQuality.high": "Alto", "settings.header.visual.animatedArtworkQuality.veryHigh": "Muy alto", "settings.header.visual.animatedArtworkQuality.extreme": "Extremo", - "settings.option.visual.animatedWindowBackground": "Fondo de ventana animado", - "settings.option.visual.hardwareAcceleration": "Aceleracion de hardware", + "settings.option.visual.animatedWindowBackground": "Fondo de Ventana Animado", + "settings.option.visual.hardwareAcceleration": "Aceleración de Hardware", "settings.option.visual.hardwareAcceleration.description": "Requiere reinicio", "settings.header.visual.hardwareAcceleration.default": "Por defecto", "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", + "settings.option.visual.uiscale": "Escalado de IU", "settings.header.visual.theme": "Tema", "settings.option.visual.theme.github.download": "Instalar desde la URL de GitHub", - "settings.option.visual.theme.github.explore": "Explorar temas de GitHub", + "settings.option.visual.theme.github.openfolder": "Abrir Carpeta de Temas", + "settings.option.visual.theme.github.explore": "Explorar Temas de GitHub", "settings.header.visual.theme.github.page": "Temas de GitHub", - "settings.option.visual.theme.github.install.confirm": "¿Está seguro de que desea instalar {{ repo }}?", - "settings.prompt.visual.theme.github.URL": "Ingrese la URL del tema que desea instalar", - "settings.notyf.visual.theme.install.success": "Tema instalado correctamente", - "settings.notyf.visual.theme.install.error": "La instalación del tema falló", + "settings.option.visual.theme.github.install.confirm": "¿ Está seguro de que desea instalar {{ repo }} ?", + "settings.prompt.visual.theme.github.URL": "Introduce la URL del tema que quieres instalar", + "settings.prompt.visual.theme.uninstallTheme": "¿ Estas seguro que lo quieres desinstalar {{ theme }} ?", + "settings.option.visual.theme.checkForUpdates": "Buscar actualizaciones", + "settings.header.visual.styles": "Estilos", + "settings.option.visual.theme.manageStyles": "Gestionar Estilos", + "settings.option.visual.theme.uninstall": "Desinstalar", + "settings.option.visual.theme.viewInfo": "Ver Información", + "settings.option.visual.theme.github.available": "Disponible", + "settings.option.visual.theme.github.applied": "Aplicado", + "settings.notyf.visual.theme.install.success": "Tema Instalado Correctamente", + "settings.notyf.visual.theme.install.error": "La Instalación del Tema Falló", "settings.header.visual.plugin": "Plugin", "settings.option.visual.plugin.github.download": "Instalar desde la URL de GitHub", "settings.option.visual.plugin.github.explore": "Explorar Plugins de GitHub", @@ -355,7 +501,7 @@ "settings.prompt.visual.plugin.github.URL": "Ingrese la URL del tema que desea instalar", "settings.prompt.visual.plugin.github.success": "El Plugin instalado correctamente, Presione OK para reiniciar Cider", "settings.notyf.visual.plugin.install.success": "El Plugin instalado correctamente", - "settings.notyf.visual.plugin.install.error": "La instalación del Plugin falló", + "settings.notyf.visual.plugin.install.error": "La instalación del Plugin Falló", "settings.option.visual.theme.default": "Cider", "settings.option.visual.theme.dark": "Oscuro", "settings.option.visual.showPersonalInfo": "Mostrar información personal", @@ -364,7 +510,7 @@ "settings.option.window.openOnStartup": "Abrir Cider al Iniciar", "settings.option.window.openOnStartup.hidden": "Abrir oculto", "settings.option.window.useNativeTitleBar": "Usar barra de título nativa", - "settings.option.window.windowControlStyle": "Estilo de control de ventanaEstilo de control de ventana", + "settings.option.window.windowControlStyle": "Estilo de control de ventana", "settings.option.window.windowControlStyle.right": "Derecha", "settings.option.window.windowControlStyle.left": "Izquierda", "settings.header.lyrics": "Letras", @@ -373,17 +519,30 @@ "settings.option.lyrics.enableMusixmatchKaraoke": "Habilitar el modo Karaoke (solo Musixmatch)", "settings.option.lyrics.musixmatchPreferredLanguage": "Idioma preferido de traducción de Musixmatch", "settings.option.lyrics.enableYoutubeLyrics": "Habilitar letras de YouTube para videos musicales", + "settings.option.lyrics.enableQQLyrics": "Habilitar letras de QQ", "settings.header.connectivity": "Conectividad", "settings.header.connectivity.description": "Ajuste la configuración de conectividad para Cider.", + "settings.option.connectivity.playbackNotifications": "Notificaciones de Reproducción", "settings.option.connectivity.discordRPC": "Discord Rich Presence", - "settings.option.connectivity.playbackNotifications": "Notificaciones de reproducción", - "settings.option.connectivity.discordRPC.clearOnPause": "Borrar Discord Rich Presence en Pausa", + "settings.option.connectivity.discordRPC.clientName": "Nombre del Cliente", + "settings.option.connectivity.discordRPC.clearOnPause": "Borrar Discord Rich Presence en pausa", "settings.option.connectivity.discordRPC.hideButtons": "Ocultar botones en Discord Rich Presence", + "settings.option.connectivity.discordRPC.hideTimestamp": "Ocultar Marca de Tiempo en Discord Rich Presence", + "settings.option.connectivity.discordRPC.detailsFormat": "Formato de los detalles", + "settings.option.connectivity.discordRPC.stateFormat": "Formato de Estado", + "settings.option.connectivity.discordRPC.reload": "Recargar Discord RPC", + "settings.option.connectivity.discordRPC.reconnectedToUser": "Discord RPC reconectando al usuario: {{user}} ({{userid}})", "settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling", "settings.option.connectivity.lastfmScrobble.delay": "Last.fm Retraso de Scrobble (%)", "settings.option.connectivity.lastfmScrobble.nowPlaying": "Activar Last.fm Now Playing", "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)", + "settings.option.connectivity.lastfmScrobble.filterLoop.description": "Evite que las pistas en bucle se scrobblen o se muestren en la lista Now Playing en Last.fm.", + "settings.option.connectivity.lastfmScrobble.filterTypes": "Tipos de Filtros de Medios (Last.fm)", + "settings.option.connectivity.lastfmScrobble.manualToken": "Ingrese el token de Last.fm Manualmente", + "settings.notyf.connectivity.lastfmScrobble.connectError": "Last.fm Tiempo de Conexión agotado", + "settings.notyf.connectivity.lastfmScrobble.connectSuccess": "Last.fm Conexión exitosa", + "settings.notyf.connectivity.lastfmScrobble.connecting": "Conectando a Last.fm...", "settings.header.debug": "Debug", "settings.option.debug.copy_log": "Copiar Logs al portapapeles", "settings.option.debug.openAppData": "Abrir carpeta de Cider", @@ -393,16 +552,25 @@ "settings.option.experimental.reinstallwidevine.confirm": "¿Estás seguro de que quieres reinstalar Widevine?", "settings.option.experimental.unknownPlugin": "Fuentes desconocidas", "settings.option.experimental.unknownPlugin.description": "Permitir la instalación de Plugins desde otros repos que no sean el repositorio de Plugins de Cider", - "settings.option.experimental.compactUI": "UI compacta", + "settings.option.experimental.compactUI": "UI Compacto", "settings.option.window.close_button_hide": "El botón Cerrar oculta la aplicación", + "settings.option.window.maxElementScale": "Escala Máxima de Elementos", "settings.option.experimental.inline_playlists": "Álbumes y listas de reproducción en línea", "settings.option.advanced.playlistTrackMapping": "Mapeo de pistas de listas de reproducción", "settings.option.advanced.playlistTrackMapping.description": "Habilita el escaneo profundo de las listas de reproducción para determinar qué pistas están en qué listas de reproducción. Los tiempos de creación de la caché de la lista de reproducción pueden aumentar significativamente.", "settings.option.visual.transparent": "Marco transparente", "settings.option.visual.transparent.description": "Necesita compatibilidad con temas, requiere reiniciar", + "settings.option.visual.customAccentColor": "Color de Acento Personalizado", + "settings.option.visual.accentColor": "Color de Acento", + "settings.option.visual.purplePodcastPlaybackBar": "Barra de Reproducción Morada para Podcasts", + "settings.option.visual.windowColor": "Color de Tinte de Ventana", + "settings.header.visual.windowBackgroundStyle.color": "Matiz de Color", "settings.header.advanced": "Avanzado", - "spatial.notTurnedOn": "La espacialización de audio está deshabilitada. Para usar, habilítelo primero.", - "spatial.spatialProperties": "Propiedades de Espacializacion", + "settings.header.connect": "Conectar", + "settings.option.connect.link_account": "Habilitar sincronización con Cider Connect", + "settings.option.connect.link_account.description": "Vincular su cuenta de Discord con Cider Connect le permite almacenar datos de usuario que incluyen configuraciones, ecualizadores y eventualmente más, una vez que haya terminado. (Trabajo en progreso)", + "spatial.notTurnedOn": "La Espacialización de audio está deshabilitada. Para usar, habilítelo primero.", + "spatial.spatialProperties": "Propiedades de Espacialización", "spatial.width": "Ancho", "spatial.height": "Alto", "spatial.depth": "Profundidad", @@ -431,7 +599,46 @@ "share.platform.whatsapp": "WhatsApp", "share.platform.messenger": "Messenger", "share.platform.email": "Email", - "share.platform.songLink": "Copy with song.link", + "share.platform.songLink": "Copiar con song.link", "share.platform.clipboard": "Copiar link", - "about.thanks": "Muchas gracias al equipo de Cider Collective y a todos nuestros colaboradores." + "about.thanks": "Muchas gracias al equipo de Cider Collective y a Todos nuestros colaboradores.", + "oobe.yes": "Sí", + "oobe.no": "No", + "oobe.next": "Siguiente", + "oobe.previous": "Anterior", + "oobe.done": "Hecho", + "oobe.amupsell.title": "Antes de Empezar", + "oobe.amupsell.text": "Cider Requiere una Suscripción paga Activa a Apple Music\nCider NO funcionará con Apple Music Voice Plan ni con algunas suscripciones de prueba promocionales. Si ya tiene una suscripción calificada de Apple Music, haga click en Siguiente para continuar.", + "oobe.amupsell.subscribeBtn": "Suscríbete a Apple Music", + "oobe.amupsell.explainBtn": "Explique", + "oobe.amupsell.subscribeUrl": "https://apple.co/3MdqJVQ", + "oobe.amupsell.amWebUrl": "https://beta.music.apple.com/", + "oobe.amupsell.promoExplained": "Algunas suscripciones de Apple Music promocionales y de prueba fuera de EE.UU. no tienen acceso a las API del reproductor web de Apple Music necesarias para que Cider funcione. Para verificar si su versión de prueba activa funcionará con Cider, vaya a {{ amWebUrl }} inicie sesión e intente reproducir música. Si funciona, ¡genial! Está listo para usar Cider, sin embargo, si no considera suscribirse a Apple Music aquí: {{ subscribeUrl }}", + "oobe.intro.title": "Bienvenido a Cider", + "oobe.intro.subtitle": "", + "oobe.intro.text": "Configuremos algunas cosas para que puedas usar Cider como quieras. Siempre puede cambiar esta configuración más tarde.", + "oobe.general.title": "General", + "oobe.general.subtitle": "", + "oobe.general.text": "", + "oobe.audio.title": "Audio", + "oobe.audio.subtitle": "", + "oobe.audio.text": "Cider cuenta con una pila de audio diseñada y afinada a medida que brinda una experiencia de audio rica y de alta calidad.\nCon Cider Adrenaline, Atmosphere Realizer y Spatialized Audio.\nPara habilitar esta funcionalidad, \"Funcionalidad de audio avanzada\" debe estar habilitada.\nHabilitar audio avanzado La funcionalidad le dará acceso a estas mejoras en Cider Audio Labs, que se encuentra en la configuración de la aplicación.", + "oobe.audio.advancedFunctionality": "", + "oobe.visual.title": "Visual", + "oobe.visual.subtitle": "", + "oobe.visual.text": "", + "oobe.visual.layout.text": "Cider presenta dos diseños de ventana diferentes.\nMaverick es un diseño similar a iTunes con el reproductor en la parte superior de la ventana.\nMojave es un nuevo giro creado por Cider Collective.\n\nPuedes cambiar el diseño en cualquier momento en la configuración.", + "oobe.visual.suggestingThemes": "La tematización es una excelente forma de personalizar tu experiencia. Aquí hay algunos que sugerimos: ", + "oobe.visual.suggestingThemes.subtext": "(Estos temas se descargarán de GitHub)", + "oobe.visual.suggestingThemes.default": "Cider", + "oobe.visual.suggestingThemes.default.text": "El clásico tema de Cider.", + "oobe.visual.suggestingThemes.dark": "Oscuro", + "oobe.visual.suggestingThemes.dark.text": "Oscurisimo", + "oobe.visual.suggestingThemes.community1": "Groovy", + "oobe.visual.suggestingThemes.community1.text": "Un tema influenciado por WinUI", + "oobe.visual.suggestingThemes.community2": "iTheme", + "oobe.visual.suggestingThemes.community2.text": " El clásico diseño de frutas grandes.", + "oobe.visual.suggestingThemes.community3": "Dracula", + "oobe.visual.suggestingThemes.community3.text": "El icónico esquema de color de Drácula.", + "oobe.amsignin.title": "" } diff --git a/src/i18n/fr_FR.json b/src/i18n/fr_FR.json index 3886fd0e..720ee97c 100644 --- a/src/i18n/fr_FR.json +++ b/src/i18n/fr_FR.json @@ -22,7 +22,6 @@ "term.logout": "Déconnexion", "term.login": "Connexion", "term.quickNav": "Navigation rapide", - "term.cast": "Diffuser", "term.about": "À propos", "term.privateSession": "Session privée", "term.disablePrivateSession": "Désactiver la session privée", @@ -33,7 +32,7 @@ "term.history": "Historique", "term.search": "Recherche", "term.library": "Bibliothèque", - "term.listenNow": "Écoutez maintenant", + "term.listenNow": "Écouter", "term.browse": "Explorer", "term.radio": "Radio", "term.recentlyAdded": "Ajouté récemment", @@ -42,6 +41,7 @@ "term.artists": "Artistes", "term.podcasts": "Podcasts", "term.playlists": "Playlists", + "term.charts": "Classements", "term.playlist": "Playlist", "term.newPlaylist": "Nouvelle Playlist", "term.newPlaylistFolder": "Nouveau dossier de playlist", @@ -51,7 +51,9 @@ "term.navigateBack": "Naviguer en arrière", "term.navigateForward": "Naviguer en avant", "term.play": "Lecture", + "term.playpause": "Lecture/Pause", "term.pause": "Pause", + "term.stop": "Stop", "term.previous": "Précédent", "term.next": "Suivant", "term.shuffle": "Aléatoire", @@ -130,6 +132,8 @@ "term.audioControls": "Contrôles du volume", "term.clearAll": "Tout effacer", "term.recentStations": "Stations récentes", + "term.personalStations": "Stations personnelles", + "term.amLive": "Apple Music Live", "term.language": "Langue", "term.funLanguages": "Amusant", "term.noLyrics": "Chargement... / Paroles non trouvé./ Instrumental.", @@ -150,6 +154,7 @@ }, "term.videos": "Vidéos", "term.menu": "Menu", + "term.themeManaged": "Géré par un thème", "term.check": "Vérifier", "term.aboutArtist": "À propos de {{artistName}}", "term.topResult": "Meilleurs résultats", @@ -174,7 +179,7 @@ "term.version": "Version", "term.noVideos": "Aucune vidéo trouvée.", "term.plugin": "Plugin", - "term.pluginMenu": "Plug-in Menu", + "term.pluginMenu": "Menu des plugins", "term.pluginMenu.none": "Aucun plugin interactif", "term.replay": "Replay", "term.uniqueAlbums": "Albums uniques", @@ -189,6 +194,16 @@ "term.confirmLogout": "Êtes-vous sûr de vouloir vous déconnecter ?", "term.creditDesignedBy": "Conçu par ${authorUsername}", "term.discNumber": "Disque ${discNumber}", + "term.reload": "Recharger Cider ?", + "term.toggleprivate": "Activer/désactiver la session privée", + "term.webremote": "Télécommande Web", + "term.cast": "Diffuser", + "term.cast2": "Diffuser sur des appareils", + "term.quit": "Quitter", + "term.zoomin": "Zoom avant", + "term.zoomout": "Zoom Out", + "term.zoomreset": "Zoom arrière", + "term.fullscreen": "Plein écran", "home.title": "Accueil", "home.recentlyPlayed": "Joué récemment", "home.recentlyAdded": "Ajouté récemment", @@ -209,9 +224,16 @@ "podcast.episodes": "Épisodes", "podcast.playEpisode": "Lire l'épisode", "podcast.website": "Site du podcast", + "action.hideLibrary": "Cacher la bibliothèque", + "action.showLibrary": "Afficher la bibliothèque", + "action.cut": "Couper", + "action.paste": "Coller", + "action.selectAll": "Tout sélectionner", + "action.delete": "Supprimer", "action.edit": "Modifier", "action.done": "Terminé", - "action.editTracklist": "Edit Tracklist", + "action.submit": "Soumettre", + "action.editTracklist": "Modifier la liste de morceaux", "action.addToLibrary": "Ajouter à la bibliothèque", "action.addToLibrary.success": "Ajouté à la bibliothèque", "action.addToLibrary.error": "Erreur lors de l'ajout à la bibliothèque", @@ -275,45 +297,26 @@ "action.createNew": "Créer un nouveau...", "action.openArtworkInBrowser": "Ouvrir la pochette d'album dans le navigateur", "action.scrollToTop": "Défiler vers le haut", - "menubar.options.about": "À propos", - "menubar.options.settings": "Paramètres", - "menubar.options.quit": "Quitter Cider", "menubar.options.view": "Afficher ", "menubar.options.reload": "Recharger", "menubar.options.forcereload": "Rechargement forcé", "menubar.options.toggledevtools": "Activer les outils de développement", "menubar.options.window": "Fenêtre", "menubar.options.minimize": "Minimiser", - "menubar.options.toggleprivate": "Activer la session privée", - "menubar.options.webremote": "Télécommande Web", - "menubar.options.audio": "Paramètres audio", "menubar.options.plugins": "Menu des plugins", "menubar.options.controls": "Contrôles", - "menubar.options.next": "Suivant", - "menubar.options.playpause": "Lecture/Pause", - "menubar.options.previous": "Précédent", "menubar.options.volumeup": "Augmenter le volume", "menubar.options.volumedown": "Réduire le volume", - "menubar.options.browse": "Parcourir", - "menubar.options.artists": "Artistes", - "menubar.options.search": "Search", - "menubar.options.albums": "Albums", - "menubar.options.cast": "Diffuser sur des appareils", "menubar.options.account": "Compte", - "menubar.options.accountsettings": "Paramètres du compte", "menubar.options.signout": "Se déconnecter", "menubar.options.support": "Support", - "menubar.options.discord": "Discord", - "menubar.options.github": "Documentation GitHub", "menubar.options.report": "Remonter un(e)...", "menubar.options.bug": "Bug", "menubar.options.feature": "Demande de fonctionnalité", "menubar.options.trans": "Erreur/Demande de traduction", "menubar.options.license": "Voir la license", "menubar.options.conf": "Ouvrir le fichier de configuration dans l'éditeur", - "menubar.options.listennow": "Écoutez maintenant", - "menubar.options.recentlyAdded": "Ajouté récemment", - "menubar.options.songs": "Musiques", + "menubar.options.zoom": "Zoom", "settings.header.general": "Général", "settings.header.general.description": "Ajuster les paramètres généraux de Cider.", "settings.option.general.language": "Langue", @@ -333,11 +336,15 @@ "settings.option.general.customizeSidebar": "Personnaliser les éléments de la barre latérale", "settings.option.general.customizeSidebar.customize": "Personnalisez", "settings.option.general.keybindings": "Raccourcis clavier", + "settings.option.general.keybindings.library": "Bibliothèque", + "settings.option.general.keybindings.session": "Session", + "settings.option.general.keybindings.control": "Contrôles", + "settings.option.general.keybindings.interface": "Interface", + "settings.option.general.keybindings.advanced": "Avancé", "settings.option.general.keybindings.pressCombination": "Appuyez sur une combinaison de deux touches pour mettre à jour la combinaison de touches.", "settings.option.general.keybindings.pressEscape": "Appuyez sur la touche Échap pour revenir en arrière.", "settings.notyf.general.keybindings.update.success": "Le raccourci clavier a bien été mis à jour", "settings.prompt.general.keybindings.update.success": "Le raccourci clavier a bien été mis à jour. Appuyez sur OK pour relancer Cider", - "settings.option.general.keybindings.open": "Ouvrir", "settings.option.general.themeUpdateNotification": "Vérifier automatiquement les mises à jour des thèmes", "settings.option.general.showLovedTracksInline": "Afficher les pistes aimées en ligne", "settings.description.search": "Rechercher", @@ -360,6 +367,7 @@ "settings.header.audio": "Audio", "settings.header.audio.description": "Ajuster les paramètres audio de Cider.", "settings.option.audio.volumeStep": "Étape du volume", + "settings.option.audio.advanced": "Contrôle avancé du volume", "settings.option.audio.maxVolume": "Volume maximum", "settings.option.audio.changePlaybackRate": "Changer la vitesse de lecture", "settings.option.audio.playbackRate": "Vitesse de lecture", @@ -394,12 +402,21 @@ "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.description": "Changes the mode of operation of the Atmosphere Realizer module.", "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_STANDARD": "Naturelle (Standard)", "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_PLUS": "Naturelle (Plus)", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.E68_1": "Fromage au sel de roche et thé mousseux", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.E68_2": "Thé au lait Uji Matcha", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.E168_1": "Macchiato au jasmin", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z3600": "Thé au lait Hokkaido", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z8500A": "Gâteau au clair de lune", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.BSCBM": "Lait crème brûlée au sucre brun", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.CUDDLE": "Chaleur des câlins", "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Moteur de traitement psycho-acoustique Cider", "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Améliore la qualité audio perçue de l'audio AAC 256 kbps en utilisant un algorithme en temps réel qui tire parti à la fois des modèles psychoacoustiques de l'audition humaine et des caractéristiques de codage AAC.", "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "Le moteur de traitement psycho-acoustique n'est pas compatible avec la spatialisation. Veuillez désactiver la spatialisation pour continuer.", "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "Force du moteur de traitement psycho-acoustique", "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Modifie l'intensité du traitement effectué sur l'audio. (Un traitement agressif peut donner des résultats indésirables).", "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Standard", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.adaptive": "Adaptive", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.legacy": "Ancien", "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Agressive", "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.", @@ -413,6 +430,9 @@ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.separation": "Séparation", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.minimal": "Minimale", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile": "Audiophile", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.diffused": "Diffusé", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.bplk": "Encore", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.hw2k": "Encore élargi", "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "La spatialisation n'est pas compatible avec le moteur de traitement psycho-acoustique. Veuillez le désactiver pour continuer.", "settings.option.audio.dbspl.display": "Affichage dB SPL", "settings.option.audio.dbspl.description": "(Utilisateurs avancés uniquement) Affichez dB SPL au lieu de dBFS sur le curseur de volume.", @@ -494,11 +514,19 @@ "settings.option.connectivity.discordRPC.hideTimestamp": "Cacher le temps restant sur le Discord Rich Presence", "settings.option.connectivity.discordRPC.detailsFormat": "Format des détails", "settings.option.connectivity.discordRPC.stateFormat": "Format de l'état", + "settings.option.connectivity.discordRPC.reload": "Recharger DiscordRPC", + "settings.option.connectivity.discordRPC.reconnectedToUser": "DiscordRPC Reconnecté à l'utilisateur: {{user}} ({{userid}})", "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.option.connectivity.lastfmScrobble.filterLoop.description": "Empêcher les pistes en boucle d'être scrobbulées ou affichées dans la liste En cours de lecture sur Last.fm.", + "settings.option.connectivity.lastfmScrobble.filterTypes": "Types de médias filtrés (Last.fm)", + "settings.option.connectivity.lastfmScrobble.manualToken": "Entrer manuellement le jeton Last.fm", + "settings.notyf.connectivity.lastfmScrobble.connectError": "Last.fm Connection échouée", + "settings.notyf.connectivity.lastfmScrobble.connectSuccess": "Last.fm Connection réussie", + "settings.notyf.connectivity.lastfmScrobble.connecting": "Connexion à Last.fm...", "settings.header.debug": "Débogage", "settings.option.debug.copy_log": "Copier les logs dans le presse-papiers", "settings.option.debug.openAppData": "Ouvrir le dossier de Cider", @@ -551,5 +579,44 @@ "share.platform.email": "Email", "share.platform.songLink": "Copier avec song.link", "share.platform.clipboard": "Copier le lien", - "about.thanks": "Un grand merci à l'équipe de la Cider Collective et à tous nos contributeurs." + "about.thanks": "Un grand merci à l'équipe de la Cider Collective et à tous nos contributeurs.", + "oobe.yes": "Oui", + "oobe.no": "Non", + "oobe.next": "Suivant", + "oobe.previous": "Précédent", + "oobe.done": "Terminé", + "oobe.amupsell.title": "Avant de commencer", + "oobe.amupsell.text": "Cider nécessite un abonnement Apple Music actif et payant.\nCider ne fonctionne pas avec l'offre Apple Music Voice ou certains abonnements d'essai promotionnels. Si vous avez déjà un abonnement Apple Music qualifié, cliquez sur Suivant pour continuer.", + "oobe.amupsell.subscribeBtn": "S'abonner à Apple Music", + "oobe.amupsell.explainBtn": "Expliquer", + "oobe.amupsell.subscribeUrl": "https://apple.co/3MdqJVQ", + "oobe.amupsell.amWebUrl": "https://beta.music.apple.com/", + "oobe.amupsell.promoExplained": "Certains abonnements d'essai Apple Music promotionnels et non américains n'ont pas accès aux API du lecteur web Apple Music nécessaires au fonctionnement de Cider. Pour vérifier si votre version d'essai active fonctionnera avec Cider, rendez-vous à l'adresse suivante {{ amWebUrl }} connectez-vous et essayez de jouer de la musique. Si cela fonctionne, tant mieux ! Vous êtes prêt à utiliser Cider, mais si ce n'est pas le cas, abonnez-vous à Apple Music ici : {{ subscribeUrl }}", + "oobe.intro.title": "Bienvenue sur Cider", + "oobe.intro.subtitle": "", + "oobe.intro.text": "Nous allons mettre en place quelques éléments pour que vous puissiez utiliser Cider comme vous le souhaitez. Vous pourrez toujours modifier ces paramètres plus tard.", + "oobe.general.title": "Général", + "oobe.general.subtitle": "", + "oobe.general.text": "", + "oobe.audio.title": "Audio", + "oobe.audio.subtitle": "", + "oobe.audio.text": "Cider dispose d'une pile audio personnalisée et conçue pour offrir une expérience audio riche et de haute qualité.\nIl comprend le moteur de traitement psycho-acoustique Cider, le réalisateur d'atmosphère et la spatialisation de l'audio.\nPour activer cette fonctionnalité, la fonction \"Fonctionnalité audio avancée\" doit être activée.\nL'activation de la fonctionnalité audio avancée vous donnera accès à ces améliorations dans les laboratoires audio de Cider, qui se trouvent dans les paramètres de l'application.", + "oobe.audio.advancedFunctionality": "", + "oobe.visual.title": "Visuel", + "oobe.visual.subtitle": "", + "oobe.visual.text": "", + "oobe.visual.layout.text": "Cider présente deux agencements de fenêtres différents.\nMaverick est une mise en page semblable à celle d'iTunes, avec le lecteur en haut de la fenêtre.\nMojave est une nouvelle agencement créé par la Cider Collective.\n\nVous pouvez modifier la mise en page à tout moment dans les paramètres.", + "oobe.visual.suggestingThemes": "Les thèmes sont un excellent moyen de personnaliser votre expérience. En voici quelques-uns que nous vous suggérons : ", + "oobe.visual.suggestingThemes.subtext": "(Ces thèmes seront téléchargés à partir de GitHub)", + "oobe.visual.suggestingThemes.default": "Cider", + "oobe.visual.suggestingThemes.default.text": "Le thème classique de Cider.", + "oobe.visual.suggestingThemes.dark": "Sombre", + "oobe.visual.suggestingThemes.dark.text": "L'obscurité.", + "oobe.visual.suggestingThemes.community1": "Groovy", + "oobe.visual.suggestingThemes.community1.text": "Un thème influencé par WinUI", + "oobe.visual.suggestingThemes.community2": "iTheme", + "oobe.visual.suggestingThemes.community2.text": "La disposition classique des gros fruits.", + "oobe.visual.suggestingThemes.community3": "Dracula", + "oobe.visual.suggestingThemes.community3.text": "L'emblématique combinaison de couleurs de Dracula.", + "oobe.amsignin.title": "" } diff --git a/src/i18n/hi_IN.json b/src/i18n/hi_IN.json index d941bf5d..c09c0b66 100644 --- a/src/i18n/hi_IN.json +++ b/src/i18n/hi_IN.json @@ -101,7 +101,7 @@ "term.recentStations": "Recent Stations", "term.language": "Language", "term.funLanguages": "Fun", - "term.noLyrics": "Loading... / Lyrics not found./ Instrumental.", + "term.noLyrics": "Instrumental Track / No Lyrics.", "term.copyright": "Copyright", "term.rightsReserved": "All Rights Reserved.", "term.sponsor": "Sponsor this project", diff --git a/src/i18n/hu_HU.json b/src/i18n/hu_HU.json index dd0b7161..a2dabd7a 100644 --- a/src/i18n/hu_HU.json +++ b/src/i18n/hu_HU.json @@ -154,6 +154,7 @@ }, "term.videos": "Videók", "term.menu": "Menü", + "term.themeManaged": "Egy téma kezeli a beállítást", "term.check": "Ellenőrzés", "term.aboutArtist": "{{artistName}}-ról/ről", "term.topResult": "Legjobb találatok", @@ -250,7 +251,7 @@ "action.goToAlbum": "Album megjelenítése", "action.showInPlaylist": "Lejátszási lista megjelenítése", "action.showInAppleMusic": "Megjelenítés az Apple Musicban", - "action.moveToTop": "Mozgatás legfelülre", + "action.moveToTop": "Kivétel a mappákból", "action.share": "Megosztás", "action.rename": "Átnevezés", "action.love": "Szeretem", @@ -441,6 +442,7 @@ "settings.header.visual": "Vizuális", "settings.header.visual.description": "A Cider vizuális beállításainak módosítása.", "settings.option.visual.windowStyle": "Ablakelrendezés", + "settings.option.visual.purplePodcastPlaybackBar": "Lila lejátszási sáv a Podcastoknál", "settings.option.visual.windowBackgroundStyle": "Ablakháttér stílusa", "settings.header.visual.windowBackgroundStyle.none": "Sehol", "settings.header.visual.windowBackgroundStyle.artwork": "Borító", diff --git a/src/i18n/in_ID.json b/src/i18n/in_ID.json index 24acf48f..aa1e9a1c 100644 --- a/src/i18n/in_ID.json +++ b/src/i18n/in_ID.json @@ -10,6 +10,7 @@ "notification.updatingLibrarySongs": "Memperbarui Pustaka lagu...", "notification.updatingLibraryAlbums": "Memperbarui Pustaka album...", "notification.updatingLibraryArtists": "Memperbarui Pustaka artis...", + "term.variables": "Variabel", "term.appleInc": "Apple Inc.", "term.appleMusic": "Apple Music", "term.applePodcasts": "Apple Podcasts", @@ -20,9 +21,12 @@ "term.accountSettings": "Pengaturan Akun", "term.logout": "Keluar", "term.login": "Masuk", + "term.quickNav": "Navigasi Cepat", "term.about": "Tentang", "term.privateSession": "Sesi Pribadi", + "term.disablePrivateSession": "Matikan Mode Pribadi", "term.queue": "Antrian", + "term.autoplay": "Pemutar Otomatis", "term.lyrics": "Lirik", "term.miniplayer": "Pemutar Kecil", "term.history": "Riwayat", @@ -37,18 +41,28 @@ "term.artists": "Artis", "term.podcasts": "Podcasts", "term.playlists": "Playlist", + "term.charts": "Tangga Lagu", "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.navigateBack": "Navigasi kembali", + "term.navigateForward": "Navigasi kedepan", "term.play": "Mainkan", + "term.playpause": "Mainkan/Jeda", "term.pause": "Jeda", + "term.stop": "Berhenti", "term.previous": "Sebelumnya", "term.next": "Selanjutnya", "term.shuffle": "Acak", + "term.enableShuffle": "Nyalakan pemutaran acak", + "term.disableShuffle": "Matikan pemutaran acak", "term.repeat": "Ulangi", + "term.enableRepeatOne": "Aktifkan ulangi sekali", + "term.disableRepeatOne": "Matikan ulangi sekali", + "term.disableRepeat": "Matikan ulangi", "term.volume": "Volume", "term.mute": "Bisu", "term.unmute": "Bunyikan", @@ -70,6 +84,7 @@ "term.viewAs": "Lihat Sebagai", "term.viewAs.coverArt": "Cover Art", "term.viewAs.list": "Daftar", + "term.dynamic": "Dinamis", "term.size": "Ukuran", "term.size.normal": "Normal", "term.size.compact": "Kompak", @@ -117,6 +132,9 @@ "term.audioControls": "Kontrol Volume", "term.clearAll": "Bersihkan Semua", "term.recentStations": "Stasiun Terbaru", + "term.personalStations": "Stasiun Pribadi", + "term.amLive": "Apple Music Live", + "term.live": "LIVE", "term.language": "Bahasa", "term.funLanguages": "Senang-senang", "term.noLyrics": "Memuat... / Lirik tidak ditermukan./ Instrumental.", @@ -137,6 +155,7 @@ }, "term.videos": "Video", "term.menu": "Menu", + "term.themeManaged": "Diatur oleh tema", "term.check": "Cek", "term.aboutArtist": "Tentang {{artistName}}", "term.topResult": "Hasil Teratas", @@ -175,6 +194,19 @@ "term.topGenres": "Genre Teratas", "term.confirmLogout": "Apakah Anda yakin ingin keluar??", "term.creditDesignedBy": "Dirancang oleh ${authorUsername}", + "term.discNumber": "Kaset ${discNumber}", + "term.reload" : "Muat ulang Cider?", + "term.toggleprivate" : "Nyalakan Sesi Pribadi", + "term.webremote" : "Remot Web", + "term.cast" : "Transmisi", + "term.cast2" : "Transmisikan ke Perangkat", + "term.quit" : "Keluar", + "term.zoomin" : "Perbesar", + "term.zoomout" : "Perkecil", + "term.zoomreset" : "Atur Ulang", + "term.fullscreen" : "Layar Penuh", + "home.syncFavorites": "Sinkronkan Favorit", + "home.syncFavorites.gettingArtists": "Mendapatkan artis favorit", "home.title": "Beranda", "home.recentlyPlayed": "Baru Dimainkan", "home.recentlyAdded": "Baru Ditambahkan", @@ -187,14 +219,25 @@ "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.followOnCider": "Ikuti di Cider", + "podcast.followedOnCider": "Mengikuti di Cider", + "podcast.subscribeOnItunes": "Langganan di iTunes", + "podcast.subscribedOnItunes": "Telah Berlangganan di iTunes", "podcast.itunesStore": "iTunes Store", "podcast.episodes": "Episode", "podcast.playEpisode": "Mainkan Episode", "podcast.website": "Website Podcast", + "action.favorite": "Favorit", + "action.removeFavorite": "Hapus Favorit", + "action.hideLibrary": "Sembunyikan Pustaka", + "action.showLibrary": "Tampilkan Pustaka", + "action.cut": "Cut", + "action.paste": "Paste", + "action.selectAll": "Pilih Semua", + "action.delete": "Hapus", + "action.edit": "Ubah", + "action.done": "Selesai", + "action.editTracklist": "Edit Daftar Lagu", "action.addToLibrary": "Tambahkan ke Pustaka", "action.addToLibrary.success": "Ditambahkan ke Pustaka", "action.addToLibrary.error": "Terjadi Kesalahan Saat Menambahkan Pustaka", @@ -240,12 +283,45 @@ "action.tray.minimize": "Sembunyikan ke Tray", "action.tray.quit": "Keluar", "action.update": "Perbarui", + "action.tray.listento": "Dengarkan:", "action.install": "Pasang", "action.copy": "Salin", "action.newpreset": "Preset Baru...", "action.deletepreset": "Hapus Preset", "action.open": "Buka", + "action.close": "Close", "action.relaunch.confirm": "Apakah Anda ingin memulai ulang Cider?", + "action.cast.chromecast": "Chromecast", + "action.cast.todevices": "Transmisi ke Perangkat", + "action.cast.stop": "Stop transmisi ke semua perangkat", + "action.cast.airplay": "AirPlay", + "action.cast.airplay.underdevelopment": "AirPlay masih dalam tahap pengembangan", + "action.cast.scan": "Pindai", + "action.cast.scanning": "Pindai...", + "action.createNew": "Buat Baru...", + "action.openArtworkInBrowser": "Buka artwork di browser", + "action.scrollToTop": "Gulir ke atas", + "action.refresh": "Muat ulang", + "menubar.options.view": "Tampilan", + "menubar.options.reload": "Muat Ulang", + "menubar.options.forcereload": "Paksa Muat Ulang", + "menubar.options.toggledevtools": "Aktfikan Alat Developer", + "menubar.options.window": "Jendela", + "menubar.options.minimize": "Perkecil", + "menubar.options.plugins": "Menu Plu-gins", + "menubar.options.controls": "Kontrol", + "menubar.options.volumeup": "Keraskan Volume", + "menubar.options.volumedown": "Kecilkan Volume", + "menubar.options.account": "Akun", + "menubar.options.signout": "Keluar", + "menubar.options.support": "Bantuan", + "menubar.options.report": "Laporkan...", + "menubar.options.bug": "Bug", + "menubar.options.feature": "Permintaan Fitur", + "menubar.options.trans": "Laporkan/Minta Terjemahan", + "menubar.options.license": "Lihat Lisensi", + "menubar.options.conf": "Bukan File Konfigurasi pada Editor", + "menubar.options.zoom": "Zoom", "settings.header.general": "Umum", "settings.header.general.description": "Sesuaikan pengaturan umum untuk Cider.", "settings.option.general.language": "Bahasa", @@ -254,17 +330,53 @@ "settings.option.general.resumebehavior.locally": "Lokal", "settings.option.general.resumebehavior.locally.description": "Cider akan melanjutkan sesi terakhir Anda di perangkat ini.", "settings.option.general.resumebehavior.history": "Riwayat", - "settings.option.general.resumebehavior.history.description": "Cider akan menambahkan lagu terakhir dari keseluruhan riwayat Apple Music Anda ke dalam antrian di seluruh perangkat.", + "settings.option.general.resumebehavior.history.description": "Cider akan melanjutkan lagu terakhir dari riwayat Apple Music di seluruh perangkat Anda.", + "settings.option.general.resumetabs" : "Buka Tab ketika Diluncurkan", + "settings.option.general.resumetabs.description" : "Anda dapat memilih tab apa yang akan dibuka ketika Anda membuka Cider.", + "settings.option.general.resumetabs.dynamic" : "Dinamis", + "settings.option.general.resumetabs.dynamic.description" : "Cider akan membuka tab yang terakhir digunakan", "settings.option.general.language.main": "Bahasa", "settings.option.general.language.fun": "Bahasa Candaan", "settings.option.general.language.unsorted": "Tidak disortir", + "settings.option.general.customizeSidebar": "Sesuaikan Item Sidebar", + "settings.option.general.customizeSidebar.customize": "Sesuaikan", + "settings.option.general.keybindings": "Kombinasi Keyboard", + "settings.option.general.keybindings.library": "Pustaka", + "settings.option.general.keybindings.session": "Sesi", + "settings.option.general.keybindings.control": "Kontrol", + "settings.option.general.keybindings.interface": "Tampilan", + "settings.option.general.keybindings.advanced": "Lebih Lanjut", + "settings.option.general.keybindings.pressCombination": "Tekan kombinasi dua tombol untuk memperbarui", + "settings.option.general.keybindings.pressEscape": "Tekan ESC untuk kembali", + "settings.notyf.general.keybindings.update.success": "Kombinasi Keyboard telah diperbarui", + "settings.prompt.general.keybindings.update.success": "Kombinasi keyboard telah diperbarui", + "settings.option.general.themeUpdateNotification": "Perbarui tema secara otomatis", + "settings.option.general.showLovedTracksInline": "Tampilkan lagu yang di-love sejajar", + "settings.description.search": "Cari", + "settings.description.albums": "Pustaka Album", + "settings.description.artists": "Pustaka Artis", + "settings.description.browse": "Jelajahi", + "settings.description.private": "Nyalakan Sesi Pribadi", + "settings.description.remote": "Remote Web", + "settings.description.audio": "Peraturan Audio", + "settings.description.plugins": "Menu Plugins", + "settings.description.cast": "Transmisikan ke Perangkat", + "settings.description.settings": "Pengaturan", + "settings.description.developer": "Alat Developer", + "settings.description.listnow": "Dengarkan Sekarang", + "settings.description.recentAdd": "Baru Ditambahkan", + "settings.description.songs": "Lagu", "settings.notyf.updateCider.update-not-available": "Tidak ada pembaruan tersedia", "settings.notyf.updateCider.update-downloaded": "Pembaruan sudah didownload, mulai ulang untuk menginstall pembaruan", "settings.notyf.updateCider.update-timeout": "Waktu pembaruan habis", "settings.header.audio": "Audio", "settings.header.audio.description": "Sesuaikan pengaturan audio untuk Cider.", "settings.option.audio.volumeStep": "Jangkah Volume", + "settings.option.audio.advanced": "Kontrol Volume Lanjut", "settings.option.audio.maxVolume": "Volume Maksimal", + "settings.option.audio.changePlaybackRate": "Ubah Tingkat Pemutaran", + "settings.option.audio.playbackRate": "Tingkat Pemutaran", + "settings.option.audio.playbackRate.change": "Ganti", "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", @@ -277,20 +389,41 @@ "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.warn.audio.enableAdvancedFunctionality.lowcores": "Cider memperkirakan bahwa PC Anda tidak dapat menggunakan fitur ini. Apakah Anda yakin ingin melanjutkan?", "settings.option.audio.audioLab": "Lab Audio Cider", "settings.option.audio.audioLab.description": "Macam-macam efek audio yang dikembangkan sendiri untuk Cider.", + "settings.option.audio.audioLab.subheader": "Dibuat oleh Cider Acoustic Technologies di California", "settings.warn.audioLab.withoutAF": "AudioContext (Fungsi Lanjutan) perlu diaktifkan untuk menggunakan Lab Audio Cider.", + "settings.warn.enableAdvancedFunctionality": "AudioContext (Advanced Functionality) dibutuhkan untuk menyalakan fitur ini.", "settings.option.audio.enableAdvancedFunctionality.analogWarmth": "Analog Warmth", "settings.option.audio.enableAdvancedFunctionality.analogWarmth.description": "Mensimulasikan kehangatan analog yang dimodelkan setelah Korg Nutube 6P1", "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity": "Analog Warmth intensity", "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.description": "Mengubah intensitas pemrosesan modul Analog Warmth.", "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth": "Halus", "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm": "Hangat", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizer": "Cider Atmosphere Realizer™️", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizer.description": "Membuat atmosfir musik yang berbeda setelah penyesuaian audio tingkat modern dan terbaru", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode": "Cider Atmosphere Realizer™️ Mode", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.description": "Ubah mode operasi dari modul Atmosphere Realizer.", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_STANDARD": "Hōjicha Cheese Foam Tea", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_PLUS": "Genmaicha Tapioca Milk Tea", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.E68_1": "Rock Salt Cheese Foam Tea", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.E68_2": "Uji Matcha Milk Tea", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.E168_1": "Jasmine Macchiato", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z3600": "Hokkaido Milk Tea", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z8500A": "Moonlight Softcake", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z8500B": "Clafoutis aux Cerises", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z8500C": "Uji Matcha Mochi", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.BSCBM": "Brown Sugar Creme Brûlée Milk", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.CUDDLE": "Cuddle Warmth", "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Meningkatkan kualitas audio AAC secara 'realtime' dengan algoritma yang memanfaatkan model psychoacoustic manusia dan karakteristik encoding AAC", "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP tidak cocok dengan Spatialisasi. Matikan Spasialisasi untuk menggunakan.", "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.adaptive": "Adaptif", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.legacy": "Legacy", "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.", @@ -300,14 +433,30 @@ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Profil Spasialisasi Cider", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description": "Mengubah Profil Tuning Spasialisasi. (Memerlukan Restart Aplikasi)", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard": "Standar", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.soundstage": "Soundstage", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.separation": "Separation", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.minimal": "Minimal", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile": "Audiophile", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.diffused": "Diffused", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.bplk": "Encore", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.hw2k": "Expanded Encore", "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "Spatialization tidak cocok dengan CAP. Matikan CAP untuk menggunakan.", + "settings.option.audio.dbspl.display": "dB SPL Display", + "settings.option.audio.dbspl.description": "(Untuk pengguna ahli) Tampilkan dB SPL daripada dBFS pada penggeser volume.", + "settings.option.audio.dbfs.calibration": "0 dBFS Calibration", + "settings.option.audio.dbfs.description": "Masukkan puncak Z-weighted dB SPL saat Cider berada pada 0 dBFS.", "settings.header.visual": "Visual", "settings.header.visual.description": "Sesuaikan pengaturan visual untuk Cider.", + "settings.option.visual.windowStyle": "Gaya Jendela", + "settings.option.visual.customAccentColor": "Warna Pilihan", + "settings.option.visual.accentColor": "Warna", + "settings.option.visual.purplePodcastPlaybackBar": "Bilah Pemutaran Ungu untuk Podcast", + "settings.option.visual.windowColor": "Warna Jendela", "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.header.visual.windowBackgroundStyle.color": "Warna-warna", "settings.option.visual.animatedArtwork": "Artwork Bergerak", "settings.header.visual.animatedArtwork.always": "Selalu", "settings.header.visual.animatedArtwork.limited": "Terbatas untuk halaman dan entri khusus", @@ -323,12 +472,21 @@ "settings.option.visual.hardwareAcceleration.description": "Membutuhkan dibuka ulang", "settings.header.visual.hardwareAcceleration.default": "Default", "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", + "settings.option.visual.uiscale": "Skala UI", "settings.header.visual.theme": "Tema", "settings.option.visual.theme.github.download": "Pasang dari URL GitHub", + "settings.option.visual.theme.github.openfolder": "Buka Folder Tema", "settings.option.visual.theme.github.explore": "Jelajahi Tema di GitHub", "settings.header.visual.theme.github.page": "Tema dari GitHub", "settings.option.visual.theme.github.install.confirm": "Apakah anda yakin untuk memasang {{ repo }}?", "settings.prompt.visual.theme.github.URL": "Masukan URL tema yang ingin Anda pasang", + "settings.prompt.visual.theme.uninstallTheme": "Apakah Anda yakin untuk untuk mencopot {{ theme }}?", + "settings.option.visual.theme.checkForUpdates": "Cek Pembaruan", + "settings.option.visual.theme.manageStyles": "Kelola Gaya", + "settings.option.visual.theme.uninstall": "Copot", + "settings.option.visual.theme.viewInfo": "Lihat Info", + "settings.option.visual.theme.github.available": "Tersedia", + "settings.option.visual.theme.github.applied": "Diterapkan", "settings.notyf.visual.theme.install.success": "Tema berhasil dipasang", "settings.notyf.visual.theme.install.error": "Pemasangan tema gagal", "settings.header.visual.plugin": "Plugin", @@ -347,17 +505,29 @@ "settings.header.window.description": "Atur pengaturan jendela pada Cider.", "settings.option.window.openOnStartup": "Buka Cider Ketika Perangkat Dinyalakan", "settings.option.window.openOnStartup.hidden": "Buka dalam mode tersembunyi", + "settings.option.window.useNativeTitleBar": "Gunakan Title Bar Native", + "settings.option.window.windowControlStyle": "Pengontrol Style Jendela", + "settings.option.window.windowControlStyle.right": "Kanan", + "settings.option.window.windowControlStyle.left": "Kiri", "settings.header.lyrics": "Lirik", "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.option.lyrics.enableQQLyrics": "Aktifkan QQ Lyrics", "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.option.connectivity.discordRPC": "Discord Rich Presence", + "settings.option.connectivity.discordRPC.clientName": "Nama Client", "settings.option.connectivity.discordRPC.clearOnPause": "Sembunyikan Discord Rich Presence Saat Dijeda", + "settings.option.connectivity.discordRPC.hideButtons": "Sembunyikan tombol pada Discord Rich Presence", + "settings.option.connectivity.discordRPC.hideTimestamp": "Sembunyikan tanda waktu pada Discord Rich Presence", + "settings.option.connectivity.discordRPC.detailsFormat": "Format Detail", + "settings.option.connectivity.discordRPC.stateFormat": "Format State", + "settings.option.connectivity.discordRPC.reload": "Muat Ulang DiscordRPC", + "settings.option.connectivity.discordRPC.reconnectedToUser": "DiscordRPC terhubung ke pengguna: {{user}} ({{userid}})", "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", @@ -368,6 +538,8 @@ "settings.option.debug.openAppData": "Buka Folder Cider", "settings.header.experimental": "Eksperimental", "settings.header.experimental.description": "Sesuaikan pengaturan eksperimental untuk Cider.", + "settings.option.experimental.reinstallwidevine": "Pasang Ulang WidevineCDM", + "settings.option.experimental.reinstallwidevine.confirm": "Apakah Anda yakin untuk memasang ulang Widevine?", "settings.option.experimental.unknownPlugin": "Sumber Tidak Diketahui", "settings.option.experimental.unknownPlugin.description": "Izinkan pemasangan plugin dari repo selain Cider Plugin Repository", "settings.option.experimental.compactUI": "UI Kompak", @@ -377,6 +549,10 @@ "settings.option.advanced.playlistTrackMapping.description": "Mengaktifkan pemindaian daftar putar yang mendalam untuk menentukan trek mana yang ada di daftar putar. Waktu pembuatan cache daftar putar dapat meningkat secara signifikan.", "settings.option.visual.transparent": "Frame transparan", "settings.option.visual.transparent.description": "membutuhkan tema yang mendukung, membutuhkan dibuka ulang", + "settings.header.advanced": "Lanjutan", + "settings.header.connect": "Sinkron", + "settings.option.connect.link_account": "Sikronisasikan dengan Cider Connect", + "settings.option.connect.link_account.description": "Menghubungkan akun Discord Anda dengan Cider Connect memungkinkan Anda untuk menyimpan data pengguna termasuk Pengaturan, EQ, dan lebih banyak lagi setelah selesai. (Pekerjaan Dalam Proses)", "spatial.notTurnedOn": "Spasialisasi Audio dinonaktifkan. Untuk menggunakan, aktifkan terlebih dahulu.", "spatial.spatialProperties": "Spatial Properties", "spatial.width": "Lebar", @@ -399,5 +575,54 @@ "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." + "share.platform.twitter.tweet": "Dengarkan {{song}} di 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": "Salin dengan song.link", + "share.platform.clipboard": "Salin Link", + "about.thanks": "Terima kasih yang sebesar-besarnya kepada Cider Collective Team dan semua kontributor kami.", + "oobe.yes": "Ya", + "oobe.no": "Tidak", + "oobe.next": "Berikutnya", + "oobe.previous": "Sebelumnya", + "oobe.done": "Selesai", + "oobe.amupsell.title": "Sebelum kita mulai", + "oobe.amupsell.text": "Cider memerlukan langganan Apple Music yang aktif\nCider tidak akan berfungsi dengan Apple Music Voice Plan atau beberapa langganan uji coba promosi. Jika Anda sudah berlangganan Apple Music yang memenuhi syarat, klik Berikutnya untuk melanjutkan.", + "oobe.amupsell.subscribeBtn": "Berlangganan Apple Music", + "oobe.amupsell.explainBtn": "Jelaskan", + "oobe.amupsell.subscribeUrl": "https://apple.co/3MdqJVQ", + "oobe.amupsell.amWebUrl": "https://beta.music.apple.com/", + "oobe.amupsell.promoExplained": "Beberapa promosi uji coba Apple Music dan akun non AS tidak memiliki akses ke Apple Music Web Player API yang diperlukan agar Cider berfungsi. Untuk memverifikasi apakah uji coba aktif Anda akan berfungsi dengan Cider, buka {{ amWebUrl }} masuk dan coba putar musik. Jika berhasil, bagus! Anda siap menggunakan Cider, namun jika tidak mempertimbangkan untuk berlangganan Apple Music di sini: {{ subscribeUrl }}", + "oobe.intro.title": "Selamat Datang di Cider", + "oobe.intro.subtitle": "", + "oobe.intro.text": "Mari kita siapkan beberapa hal agar Anda dapat menggunakan Cider sesuai keinginan Anda. Anda selalu dapat mengubah setelan ini nanti.", + "oobe.general.title": "Umum", + "oobe.general.subtitle": "", + "oobe.general.text": "", + "oobe.audio.title": "Audio", + "oobe.audio.subtitle": "", + "oobe.audio.text": "Cider menghadirkan tumpukan audio yang disesuaikan dan dirancang khusus. Serta menghadirkan pengalaman audio berkualitas tinggi yang baik.\nDengan fitur seperti Cider Adrenaline, Atmosphere Realizer, dan Spatialized Audio.\nUntuk mengaktifkan fungsi ini \"Pengaturan Audio Tingkat Lanjut\" harus dinyalakan.\nMengaktifkan Pengaturan Audio Tingkat Lanjut akan memberi Anda akses ke peningkatan ini di Lab Audio Cider, yang ditemukan di pengaturan aplikasi", + "oobe.audio.advancedFunctionality": "", + "oobe.visual.title": "Visual", + "oobe.visual.subtitle": "", + "oobe.visual.text": "", + "oobe.visual.layout.text": "Cider menampilkan dua jendela tata letak yang berbeda.\nMaverick adalah tata letak seperti iTunes dengan pemutar di bagian atas jendela.\nMojave adalah putaran baru yang dibuat oleh tim Cider Collective.\n\nAnda dapat mengubah tata letak kapan saja di setelan.", + "oobe.visual.suggestingThemes": "Tema adalah cara terbaik untuk mempersonalisasi pengalaman Anda. Berikut adalah beberapa yang kami sarankan:", + "oobe.visual.suggestingThemes.subtext": "(Tema-tema ini akan diunduh dari GitHub)", + "oobe.visual.suggestingThemes.default": "Cider", + "oobe.visual.suggestingThemes.default.text": "Tema classic Cider.", + "oobe.visual.suggestingThemes.dark": "Gelap", + "oobe.visual.suggestingThemes.dark.text": "Kegelapan.", + "oobe.visual.suggestingThemes.community1": "Groovy", + "oobe.visual.suggestingThemes.community1.text": "A WinUI influenced theme", + "oobe.visual.suggestingThemes.community2": "iTheme", + "oobe.visual.suggestingThemes.community2.text": "The classic big fruit layout.", + "oobe.visual.suggestingThemes.community3": "Dracula", + "oobe.visual.suggestingThemes.community3.text": "The iconic Dracula color scheme.", + "oobe.amsignin.title": "" } diff --git a/src/i18n/ja_JP.json b/src/i18n/ja_JP.json index a44fc6ed..22d17b8e 100644 --- a/src/i18n/ja_JP.json +++ b/src/i18n/ja_JP.json @@ -2,7 +2,7 @@ "i18n.languageName": "日本語", "i18n.languageNameEnglish": "Japanese", "i18n.category": "main", - "i18n.authors": "@notmaikiwi @tanaka_kakuel", + "i18n.authors": "@notmaikiwi @tanaka_kakuel @YTJVDCM", "app.name": "Cider", "date.format": "${y}年${m}月${d}日", "dialog.cancel": "キャンセル", @@ -21,11 +21,13 @@ "term.accountSettings": "アカウント設定", "term.logout": "サインアウト", "term.login": "サインイン", + "term.quickNav": "Quick Nav", "term.cast": "Cast", "term.about": "Ciderについて", "term.privateSession": "プライベートセッション", "term.disablePrivateSession": "プライベートセッションを無効にする", "term.queue": "次はこちら", + "term.autoplay": "自動再生", "term.lyrics": "歌詞", "term.miniplayer": "ミニプレイヤー", "term.history": "履歴", @@ -40,22 +42,32 @@ "term.artists": "アーティスト", "term.podcasts": "ポッドキャスト", "term.playlists": "プレイリスト", + "term.charts": "チャート", "term.playlist": "プレイリスト", "term.newPlaylist": "New Playlist", "term.newPlaylistFolder": "新しいプレイリストフォルダ", "term.createNewPlaylist": "新しいプレイリストを作る", "term.createNewPlaylistFolder": "新しいプレイリストフォルダを作る", "term.deletePlaylist": "本当にこのプレイリストを削除しますか?", + "term.navigateBack": "戻る", + "term.navigateForward": "進む", "term.play": "再生", - "term.pause": "停止", + "term.pause": "一時停止", + "term.stop": "停止", "term.previous": "戻る", "term.next": "次へ", "term.shuffle": "シャッフル", + "term.enableShuffle": "シャッフル再生を有効化", + "term.disableShuffle": "シャッフル再生を無効化", "term.repeat": "リピート", + "term.enableRepeatOne": "1曲リピートを有効化", + "term.disableRepeatOne": "1曲リピートを無効化", + "term.disableRepeat": "リピート再生を無効化", "term.volume": "音量", "term.mute": "ミュート", "term.unmute": "ミュート解除", "term.share": "共有", + "term.share.success": "クリップボードにコピーしました", "term.settings": "設定", "term.seeAll": "すべて見る", "term.sortBy": "並べ替え", @@ -72,13 +84,14 @@ "term.viewAs": "表示", "term.viewAs.coverArt": "カバーアート", "term.viewAs.list": "リスト", + "term.dynamic": "ダイナミック", "term.size": "サイズ", "term.size.normal": "普通", "term.size.compact": "コンパクト", - "term.enabled": "ON", - "term.disable": "OFF", - "term.disabled": "OFF", "term.enable": "ON", + "term.disable": "OFF", + "term.enabled": "ON", + "term.disabled": "OFF", "term.connect": "接続", "term.connecting": "接続中", "term.disconnect": "切断", @@ -119,9 +132,11 @@ "term.audioControls": "ボリューム設定", "term.clearAll": "消去", "term.recentStations": "最近の再生", + "term.personalStations": "あなたのステーション", + "term.amLive": "Apple Music Live", "term.language": "言語", "term.funLanguages": "Fun", - "term.noLyrics": "ローディング。。 / 歌詞が見つからない / 器楽曲.", + "term.noLyrics": "ロード中... / 歌詞が見つかりません / インストゥルメンタル.", "term.copyright": "Copyright", "term.rightsReserved": "All Rights Reserved.", "term.sponsor": "スポンサーになりましょう", @@ -178,6 +193,8 @@ "term.confirmLogout": "本当にログアウトしますか?", "term.creditDesignedBy": "${authorUsername}によってデザインされました", "term.discNumber": "ディスク ${discNumber}", + "home.syncFavorites": "お気に入りを同期", + "home.syncFavorites.gettingArtists": "お気に入りのアーティストを同期中...", "home.title": "ホーム", "home.recentlyPlayed": "最近の再生", "home.recentlyAdded": "最近追加した項目", @@ -198,6 +215,14 @@ "podcast.episodes": "番組", "podcast.playEpisode": "再生", "podcast.website": "Podcastウェブ", + "action.favorite": "お気に入り", + "action.removeFavorite": "リモートでお気に入り", + "action.hideLibrary": "ライブラリから非表示", + "action.showLibrary": "ライブラリに表示", + "action.cut": "切り取り", + "action.paste": "貼り付け", + "action.selectAll": "全選択", + "action.delete": "削除", "action.edit": "編集", "action.done": "完了", "action.editTracklist": "トラックリストを編集", @@ -227,6 +252,8 @@ "action.startRadio": "ステーションを作成", "action.goToArtist": "アーティストへ移動", "action.goToAlbum": "アルバムへ移動", + "action.showInPlaylist": "プレイリストを表示", + "action.showInAppleMusic": "Apple Musicで表示", "action.moveToTop": "上に戻る", "action.share": "曲を共有", "action.rename": "名前の変更", @@ -243,13 +270,18 @@ "action.showAlbum": "アルバムを表示", "action.tray.minimize": "最小化", "action.tray.quit": "終了", - "action.tray.show": "表示", + "action.tray.show": "Ciderで表示", + "action.tray.playpause": "再生/停止", + "action.tray.next": "次へ", + "action.tray.previous": "前へ", + "action.tray.listento": "次で聞く:", "action.update": "アップデート", "action.install": "インストール", "action.copy": "コピー", "action.newpreset": "新しいプリセット", "action.deletepreset": "プリセットを削除", "action.open": "開く", + "action.close": "閉じる", "action.relaunch.confirm": "Ciderを再開しますか?", "action.cast.chromecast": "Chromecast", "action.cast.todevices": "デバイスにキャストする", @@ -260,6 +292,46 @@ "action.cast.scanning": "スキャン中...", "action.createNew": "新規作成...", "action.openArtworkInBrowser": "アートワークをブラウザで表示する", + "action.scrollToTop": "上に戻る", + "menubar.options.about": "詳細", + "menubar.options.settings": "設定", + "menubar.options.quit": "Ciderを終了", + "menubar.options.view": "表示 ", + "menubar.options.reload": "再読み込み", + "menubar.options.forcereload": "強制的に再読み込み", + "menubar.options.toggledevtools": "Developer Toolsを切り替え", + "menubar.options.window": "ウィンドウ", + "menubar.options.minimize": "最小化", + "menubar.options.toggleprivate": "プライベートセッションに切り替え", + "menubar.options.webremote": "Webリモコン", + "menubar.options.audio": "オーティオ設定", + "menubar.options.plugins": "プラグインメニュー", + "menubar.options.controls": "操作", + "menubar.options.next": "次へ", + "menubar.options.playpause": "再生/停止", + "menubar.options.previous": "前に戻る", + "menubar.options.volumeup": "音量を上げる", + "menubar.options.volumedown": "音量を下げる", + "menubar.options.browse": "見つける", + "menubar.options.artists": "アーティスト", + "menubar.options.search": "検索", + "menubar.options.albums": "アルバム", + "menubar.options.cast": "デバイスにキャスト", + "menubar.options.account": "アカウント", + "menubar.options.accountsettings": "アカウント設定", + "menubar.options.signout": "サインアウト", + "menubar.options.support": "サポート", + "menubar.options.discord": "Discord", + "menubar.options.github": "GitHub Wiki", + "menubar.options.report": "報告...", + "menubar.options.bug": "バグ", + "menubar.options.feature": "将来的な提案", + "menubar.options.trans": "翻訳に関する報告/提案", + "menubar.options.license": "ライセンスを表示", + "menubar.options.conf": "設定ファイルをエディタで開く", + "menubar.options.listennow": "Listen Now", + "menubar.options.recentlyAdded": "最近追加した項目", + "menubar.options.songs": "曲", "settings.header.general": "一般", "settings.header.general.description": "Ciderの一般設定", "settings.option.general.language": "言語", @@ -269,20 +341,24 @@ "settings.option.general.resumebehavior.locally.description": "このコンピューターでの最終セッションを復元", "settings.option.general.resumebehavior.history": "履歴", "settings.option.general.resumebehavior.history.description": "Apple Musicの履歴から曲を復元", - "settings.option.general.resumetabs": "起動時にタブを開く", - "settings.option.general.resumetabs.description": "Ciderを起動したときに開くタブを選択することができます", - "settings.option.general.resumetabs.dynamic": "ダイナミック", - "settings.option.general.resumetabs.dynamic.description": "最後のセッションで開いていたタブを開きます", + "settings.option.general.resumetabs" : "起動時にタブを開く", + "settings.option.general.resumetabs.description" : "Ciderを起動したときに開くタブを選択することができます", + "settings.option.general.resumetabs.dynamic" : "ダイナミック", + "settings.option.general.resumetabs.dynamic.description" : "最後のセッションで開いていたタブを開きます", "settings.option.general.language.main": "メイン", "settings.option.general.language.fun": "荒らし", "settings.option.general.language.unsorted": "未分類", "settings.option.general.customizeSidebar": "サイドバーをカスタマイズ", "settings.option.general.customizeSidebar.customize": "カスタマイズ", "settings.option.general.keybindings": "キーバインド", + "settings.option.general.keybindings.pressCombination": "2つのキーを同時に押してキーバインドを更新します", + "settings.option.general.keybindings.pressEscape": "Escキーを押すと戻ります", "settings.notyf.general.keybindings.update.success": "キーバインドのアップデートに成功しました", "settings.prompt.general.keybindings.update.success": "キーバインドのアップデートに成功しました。OKを押すとciderが再起動します", "settings.option.general.keybindings.open": "開く", "settings.description.search": "検索", + "settings.option.general.themeUpdateNotification": "テーマのアップデートを自動的に確認", + "settings.option.general.showLovedTracksInline": "ラブした楽曲を列挙", "settings.description.albums": "ライブラリのアルバム", "settings.description.artists": "ライブラリのアーティスト", "settings.description.browse": "検索", @@ -293,12 +369,16 @@ "settings.description.cast": "デバイスでキャストする", "settings.description.settings": "設定", "settings.description.developer": "デベロッパーツール", + "settings.description.listnow": "Listen Now", + "settings.description.recentAdd": "最近追加した項目", + "settings.description.songs": "曲", "settings.notyf.updateCider.update-not-available": "現在最新版です", "settings.notyf.updateCider.update-downloaded": "アップデートは再起動後に適用されます", "settings.notyf.updateCider.update-timeout": "アップデートはタイムアウトしました", "settings.header.audio": "オーディオ", "settings.header.audio.description": "Ciderのオーディオ設定", "settings.option.audio.volumeStep": "音量調整のステップ", + "settings.option.audio.advanced": "追加のボリューム設定", "settings.option.audio.maxVolume": "最大音量", "settings.option.audio.changePlaybackRate": "再生速度の変更", "settings.option.audio.playbackRate": "再生速度の変更", @@ -309,14 +389,18 @@ "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.warn.audio.enableAdvancedFunctionality.lowcores": "あなたのPCがこの処理に耐えられないかもしれません。", "settings.option.audio.audioLab": "Cider Audio Lab", - "settings.option.audio.audioLab.description": "An assortment of in-house developed audio effects for Cider.", + "settings.option.audio.audioLab.description": "Cider自社開発の各種音響設定", + "settings.option.audio.audioLab.subheader": "Designed by Cider Acoustic Technologies in California", "settings.warn.audioLab.withoutAF": "Cider Audio Labを有効にするにはAudioContextを有効にする必要があります", + "settings.warn.enableAdvancedFunctionality": "AudioContext (高度な機能) はこの機能を有効化する必要があります", "settings.option.audio.enableAdvancedFunctionality.analogWarmth": "Analog Warmth", "settings.option.audio.enableAdvancedFunctionality.analogWarmth.description": "Korg Nutube 6P1をモデルにしたオーディオをシミュレートします", "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity": "Analog Warmth intensity", @@ -358,17 +442,27 @@ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.soundstage": "音場", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.separation": "分離感", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.minimal": "ミニマル", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile": "オーディオマニア", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.diffused": "拡散", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.bplk": "アンコール", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.hw2k": "拡張アンコール", "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "オーディオ空間化はCAPと互換性がありません", + "settings.option.audio.dbspl.display": "dB SPL 表示", + "settings.option.audio.dbspl.description": "(上級者向け) dBFS の代わりに dB SPL でボリュームスライダーを表示します", + "settings.option.audio.dbfs.calibration": "0 dBFS キャリブレーション", + "settings.option.audio.dbfs.description": "Ciderが0 dBFSとするZ特性の値を入力してください", "settings.header.visual": "ビジュアル", "settings.header.visual.description": "Ciderのビジュアル設定", "settings.option.visual.windowStyle": "Window Style", + "settings.option.visual.customAccentColor": "カスタムアクセントカラー", + "settings.option.visual.accentColor": "アクセントカラー", + "settings.option.visual.purplePodcastPlaybackBar": "Podcasts再生時に紫色の再生バーにする", + "settings.option.visual.windowColor": "ウィンドウの色合い", "settings.option.visual.windowBackgroundStyle": "背景の設定", "settings.header.visual.windowBackgroundStyle.none": "なし", "settings.header.visual.windowBackgroundStyle.artwork": "アートワーク", "settings.header.visual.windowBackgroundStyle.image": "画像", + "settings.header.visual.windowBackgroundStyle.color": "色調", "settings.option.visual.animatedArtwork": "アニメーションアートワーク", "settings.header.visual.animatedArtwork.always": "常に表示", "settings.header.visual.animatedArtwork.limited": "アーティストページのみ表示", @@ -392,6 +486,13 @@ "settings.header.visual.theme.github.page": "GitHub", "settings.option.visual.theme.github.install.confirm": "本当に {{ repo }} をインストールしますか?", "settings.prompt.visual.theme.github.URL": "インストールしたいテーマのURLを入力してください", + "settings.prompt.visual.theme.uninstallTheme": "本当に {{ theme }} をアンインストールしますか?", + "settings.option.visual.theme.checkForUpdates": "アップデートを確認", + "settings.option.visual.theme.manageStyles": "スタイルを管理", + "settings.option.visual.theme.uninstall": "アンインストール", + "settings.option.visual.theme.viewInfo": "情報を表示", + "settings.option.visual.theme.github.available": "利用可能", + "settings.option.visual.theme.github.applied": "適用済み", "settings.notyf.visual.theme.install.success": "テーマのインストールが完了しました", "settings.notyf.visual.theme.install.error": "テーマのインストールに失敗しました", "settings.header.visual.plugin": "プラグイン", @@ -428,8 +529,11 @@ "settings.option.connectivity.discordRPC.clientName": "クライアントの名前", "settings.option.connectivity.discordRPC.clearOnPause": "一時停止した時にDiscord Rich Presenceを非表示にする", "settings.option.connectivity.discordRPC.hideButtons": "Discord Rich Presenceのボタンを非表示にする", + "settings.option.connectivity.discordRPC.hideTimestamp": "Discord Rich Presenceのタイムスタンプを非表示にする", "settings.option.connectivity.discordRPC.detailsFormat": "ディティールのフォーマット", "settings.option.connectivity.discordRPC.stateFormat": "状態のフォーマット", + "settings.option.connectivity.discordRPC.reload": "DiscordRPCを再読み込み", + "settings.option.connectivity.discordRPC.reconnectedToUser": "DiscordRPCは以下のユーザーに再接続しました: {{user}} ({{userid}})", "settings.option.connectivity.lastfmScrobble": "Last.fm に接続する", "settings.option.connectivity.lastfmScrobble.delay": "遅延 (%)", "settings.option.connectivity.lastfmScrobble.nowPlaying": "Last.fm Now Playingを有効化する", @@ -487,5 +591,44 @@ "share.platform.email": "Email", "share.platform.songLink": "song.linkのURLをコピーする", "share.platform.clipboard": "URLをコピーする", - "about.thanks": "Cider Collective とご協力いただいた貢献者様に感謝申し上げます。" + "about.thanks": "Cider Collective とご協力いただいた貢献者様に感謝申し上げます。", + "oobe.yes": "はい", + "oobe.no": "いいえ", + "oobe.next": "次へ", + "oobe.previous": "戻る", + "oobe.done": "完了", + "oobe.amupsell.title": "始める前に", + "oobe.amupsell.text": "Ciderを利用するにはは有効なApple Musicサブスクリプションが必要です\nCiderはApple Music Voiceプランやその他のプロモーション向け試用サブスクリプションでは動作しません。 もし既にApple Musicのサブスクリプション資格がある場合は、次へをクリックして続けてください。", + "oobe.amupsell.subscribeBtn": "Apple Musicに登録", + "oobe.amupsell.explainBtn": "説明", + "oobe.amupsell.subscribeUrl": "https://apple.co/3MdqJVQ", + "oobe.amupsell.amWebUrl": "https://beta.music.apple.com/", + "oobe.amupsell.promoExplained": "いくつかのプロモーション向けかつアメリカ合衆国以外のApple Music試用サブスクリプションは、Ciderを使うために必要なApple Music Web Player APIにアクセスできません。 あなたの試用プランが有効かどうかを確認するには {{ amWebUrl }} にログインして、任意の楽曲が再生できるか確認してください。 もし正常に動作したならば、素晴らしい! あなたはCiderを利用することができます、しかしながら、もしApple Musicの購読をしていない場合はこちらから: {{ subscribeUrl }}", + "oobe.intro.title": "Ciderへようこそ", + "oobe.intro.subtitle": "", + "oobe.intro.text": "Ciderを自分好みに利用するための、いくつかのセットアップを行いましょう。これらの設定はあとから変更することができます。", + "oobe.general.title": "一般", + "oobe.general.subtitle": "", + "oobe.general.text": "", + "oobe.audio.title": "オーディオ", + "oobe.audio.subtitle": "", + "oobe.audio.text": "Ciderにはリッチで高品質なオーディオを提供するための、カスタマイズ、デザインされたオーディオスタック機能があります。\nCider Adrenaline、Atmosphere Realizer、ならびにSpatailized Audioがあります。\nこれらの機能を有効化するには、\"先進的な機能\"を有効化する必要があります。\n先進的な機能を有効化すると、これらの強化機能をアプリ設定のCider Audio Labsから利用することができるようになります。", + "oobe.audio.advancedFunctionality": "", + "oobe.visual.title": "ビジュアル", + "oobe.visual.subtitle": "", + "oobe.visual.text": "", + "oobe.visual.layout.text": "Ciderには2つの異なるウィンドウレイアウトがあります。\nMaverickはウィンドウ上部にプレイヤーのある、iTunes風のレイアウトです。\nMojaveはCider Collectiveによって作成された新たな試作品です。\n\nこれらのレイアウトはいつでも設定から変更することができます。", + "oobe.visual.suggestingThemes": "テーマの設定は、より良い経験を得るための優れた方法です。 これらは私達からの提案です : ", + "oobe.visual.suggestingThemes.subtext": "(これらのテーマはGitHubからダウンロードされます)", + "oobe.visual.suggestingThemes.default": "Cider", + "oobe.visual.suggestingThemes.default.text": "クラシックCiderテーマ", + "oobe.visual.suggestingThemes.dark": "Dark", + "oobe.visual.suggestingThemes.dark.text": "ダークテーマ", + "oobe.visual.suggestingThemes.community1": "Groovy", + "oobe.visual.suggestingThemes.community1.text": "WinUIに影響を受けたテーマ", + "oobe.visual.suggestingThemes.community2": "iTheme", + "oobe.visual.suggestingThemes.community2.text": "クラシックな巨大果物のレイアウト", + "oobe.visual.suggestingThemes.community3": "Dracula", + "oobe.visual.suggestingThemes.community3.text": "ドラキュラをイメージしたカラースキーム", + "oobe.amsignin.title": "" } diff --git a/src/i18n/pt_PT.json b/src/i18n/pt_PT.json index 5cac376a..54496abe 100644 --- a/src/i18n/pt_PT.json +++ b/src/i18n/pt_PT.json @@ -1,584 +1,590 @@ { - "i18n.languageName": "Português (Portugal)", - "i18n.languageNameEnglish": "Portuguese (Portugal)", - "i18n.category": "main", - "i18n.authors": "@pgalhardo", - "app.name": "Cider", - "date.format": "${m} ${d}, ${y}", - "dialog.cancel": "Cancelar", - "dialog.ok": "OK", - "notification.updatingLibrarySongs": "A atualizar biblioteca de músicas...", - "notification.updatingLibraryAlbums": "A atualizar biblioteca de álbuns...", - "notification.updatingLibraryArtists": "A atualizar biblioteca de artistas...", - "term.variables": "Variáveis", - "term.appleInc": "Apple Inc.", - "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": "Terminar sessão", - "term.login": "Iniciar sessão", - "term.quickNav": "Navegação rápida", - "term.cast": "Transmitir", - "term.about": "Sobre", - "term.privateSession": "Sessão privada", - "term.disablePrivateSession": "Desativar sessão privada", - "term.queue": "Fila", - "term.autoplay": "Reprodução automática", - "term.lyrics": "Letra", - "term.miniplayer": "Mini-leitor", - "term.history": "Histórico", - "term.search": "Pesquisa", - "term.library": "Biblioteca", - "term.listenNow": "Ouvir agora", - "term.browse": "Explorar", - "term.radio": "Rádio", - "term.recentlyAdded": "Adições recentes", - "term.songs": "Músicas", - "term.albums": "Álbuns", - "term.artists": "Intérpretes", - "term.podcasts": "Podcasts", - "term.playlists": "Listas de reprodução", - "term.charts": "Gráficos", - "term.playlist": "Lista de reprodução", - "term.newPlaylist": "Nova lista de reprodução", - "term.newPlaylistFolder": "Nova pasta de listas de reprodução", - "term.createNewPlaylist": "Criar nova lista de reprodução", - "term.createNewPlaylistFolder": "Criar nova pasta de listas de reprodução", - "term.deletePlaylist": "Tem a certeza de que pretende apagar esta lista de reprodução?", - "term.navigateBack": "Retroceder uma página", - "term.navigateForward": "Avançar uma página", - "term.play": "Reproduzir", - "term.pause": "Pausa", - "term.stop": "Parar", - "term.previous": "Anterior", - "term.next": "Seguinte", - "term.shuffle": "Modo aleatório", - "term.enableShuffle": "Ativar modo aleatório", - "term.disableShuffle": "Desativar modo aleatório", - "term.repeat": "Repetir", - "term.enableRepeatOne": "Ativar repetir uma", - "term.disableRepeatOne": "Desativar repetir uma", - "term.disableRepeat": "Não repetir", - "term.volume": "Volume", - "term.mute": "Mudo", - "term.unmute": "Com som", - "term.share": "Partilhar", - "term.share.success": "Copiado para a área de transferência", - "term.settings": "Definições", - "term.seeAll": "Ver tudo", - "term.sortBy": "Ordenar por", - "term.sortBy.album": "Álbum", - "term.sortBy.artist": "Intérprete", - "term.sortBy.name": "Nome", - "term.sortBy.genre": "Género", - "term.sortBy.releaseDate": "Data de lançamento", - "term.sortBy.duration": "Duração", - "term.sortBy.dateAdded": "Data de adição", - "term.sortOrder": "A-Z", - "term.sortOrder.ascending": "Ascendente", - "term.sortOrder.descending": "Descendente", - "term.viewAs": "Ver como", - "term.viewAs.coverArt": "Grafismos", - "term.viewAs.list": "Lista", - "term.dynamic": "Dinâmico", - "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": "Ligar", - "term.connecting": "A ligar", - "term.disconnect": "Desligar", - "term.authed": "Autenticado", - "term.confirm": "Confirmar?", - "term.more": "Mais", - "term.less": "Menos", - "term.showMore": "Mostrar mais", - "term.showLess": "Mostrar menos", - "term.topSongs": "Músicas populares", - "term.latestReleases": "Últimos lançamentos", - "term.time.added": "Adicionado", - "term.time.released": "Lançado", - "term.time.updated": "Atualizado", - "term.time.days": "dias", - "term.time.day": { - "one": "dia", - "other": "dias" - }, - "term.time.hours": "horas", - "term.time.hour": { - "one": "hora", - "other": "horas" - }, - "term.time.minutes": "minutos", - "term.time.minute": { - "one": "minuto", - "other": "minutos" - }, - "term.time.seconds": "segundos", - "term.time.second": { - "one": "segundo", - "other": "segundos" - }, - "term.fullscreenView": "Vista de ecrã inteiro", - "term.defaultView": "Vista normal", - "term.audioSettings": "Definições de áudio", - "term.audioControls": "Controlos de volume", - "term.clearAll": "Limpar tudo", - "term.recentStations": "Estações recentes", - "term.personalStations": "Estações pessoais", - "term.amLive": "Apple Music Live", - "term.language": "Idioma", - "term.funLanguages": "Divertido", - "term.noLyrics": "A carregar... / Letra não encontrada. / Instrumental.", - "term.copyright": "Copyright", - "term.rightsReserved": "Todos os direitos reservados.", - "term.sponsor": "Patrocine este projecto", - "term.ciderTeam": "Equipa do Cider", - "term.developer": "Programador", - "term.socialTeam": "Equipa social", - "term.socials": "Redes sociais", - "term.contributors": "Contribuidores", - "term.equalizer": "Equalizador", - "term.reset": "Repor", - "term.tracks": "músicas", - "term.track": { - "one": "música", - "other": "músicas" - }, - "term.videos": "Vídeos", - "term.menu": "Menu", - "term.check": "Verificar", - "term.aboutArtist": "Sobre {{artistName}}", - "term.topResult": "Melhor resultado", - "term.sharedPlaylists": "Listas de reprodução partilhadas", - "term.people": "Pessoas", - "term.newpreset.name": "Nome da nova predefinição do EQ", - "term.addedpreset": "Predefinição adicionada", - "term.deletepreset.warn": "Tem a certeza de que pretende apagar esta predefinição?", - "term.deletedpreset": "Predefinição eliminada", - "term.defaultPresets": "Predefinições por omissão", - "term.userPresets": "Predefinições do utilizador", - "term.requestError": "Ocorreu um problema ao processar o pedido.", - "term.song.link.generate": "A obter o URL de partilha song.link...", - "term.musicVideos": "Videoclipes", - "term.stations": "Estações", - "term.curators": "Curadores", - "term.appleCurators": "Curadores da Apple", - "term.radioShows": "Programas de rádio", - "term.recordLabels": "Gravadoras", - "term.videoExtras": "Vídeos extra", - "term.top": "Top", - "term.version": "Versão", - "term.noVideos": "Não foram encontrados vídeos.", - "term.plugin": "Plug-in", - "term.pluginMenu": "Menu de plug-ins", - "term.pluginMenu.none": "Sem plug-ins interactivos", - "term.replay": "Repetir", - "term.uniqueAlbums": "Álbuns únicos", - "term.uniqueArtists": "Intérpretes únicos", - "term.uniqueSongs": "Músicas únicas", - "term.topArtists": "Intérpretes populares", - "term.listenedTo": "Reproduzido:", - "term.times": "vezes", - "term.topAlbums": "Álbuns populares", - "term.plays": "Reproduções", - "term.topGenres": "Géneros populares", - "term.confirmLogout": "Tem a certeza de que pretende terminar sessão?", - "term.creditDesignedBy": "Concebido por ${authorUsername}", - "term.discNumber": "Disco ${discNumber}", - "home.title": "Início", - "home.recentlyPlayed": "Reproduzido recentemente", - "home.recentlyAdded": "Adicionado recentemente", - "home.artistsFeed": "Feed dos seus artistas", - "home.artistsFeed.noArtist": "Siga alguns artistas para ver os seus últimos lançamentos", - "home.madeForYou": "Feito para si", - "home.friendsListeningTo": "O que os seus amigos estão a ouvir", - "home.followedArtists": "Artistas seguidos", - "error.appleMusicSubRequired": "A Apple Music requer uma subscrição.", - "error.connectionError": "Ocorreu um problema ao estabelecer ligação à Apple Music.", - "error.noResults": "Sem resultados.", - "error.noResults.description": "Tente uma nova pesquisa.", - "podcast.followOnCider": "Siga no Cider", - "podcast.followedOnCider": "A seguir no Cider", - "podcast.subscribeOnItunes": "Subscreva no iTunes", - "podcast.subscribedOnItunes": "Subscrito no iTunes", - "podcast.itunesStore": "iTunes Store", - "podcast.episodes": "Episódios", - "podcast.playEpisode": "Reproduzir episódio", - "podcast.website": "Website do Podcast", - "action.hideLibrary": "Ocultar biblioteca", - "action.showLibrary": "Mostrar biblioteca", - "action.cut": "Cortar", - "action.paste": "Colar", - "action.selectAll": "Seleccionar tudo", - "action.delete": "Apagar", - "action.edit": "Editar", - "action.done": "Concluído", - "action.editTracklist": "Editar lista de reprodução", - "action.addToLibrary": "Adicionar à biblioteca", - "action.addToLibrary.success": "Adicionado à biblioteca", - "action.addToLibrary.error": "Erro ao adicionar à 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.createPlaylist": "Criar uma nova lista de reprodução", - "action.addToPlaylist": "Adicionar à lista de reprodução", - "action.removeFromPlaylist": "Removar da lista de reprodução", - "action.addToFavorites": "Adicionar aos favoritos", - "action.follow": "Seguir", - "action.follow.success": "Seguido", - "action.follow.error": "Erro ao seguir", - "action.unfollow": "Não seguir", - "action.unfollow.success": "Não seguido", - "action.unfollow.error": "Erro ao deixar de seguir", - "action.playNext": "Reproduzir a seguir", - "action.playLater": "Reproduzir mais tarde", - "action.startRadio": "Criar estação", - "action.goToArtist": "Ir para intérprete", - "action.goToAlbum": "Ir para álbum", - "action.showInPlaylist": "Mostrar na lista de reprodução", - "action.showInAppleMusic": "Mostrar na Apple Music", - "action.moveToTop": "Mover para fora da pasta", - "action.share": "Partilhar", - "action.rename": "Renomear", - "action.love": "Gostar", - "action.unlove": "Desfazer gostar", - "action.dislike": "Não gostar", - "action.undoDislike": "Desfazer não gostar", - "action.showWebRemoteQR": "Web Remote", - "action.playTracksNext": "Reproduzir ${app.selectedMediaItems.length} músicas a seguir", - "action.playTracksLater": "Reproduzir ${app.selectedMediaItems.length} músicas mais tarde", - "action.removeTracks": "Remover ${self.selectedItems.length} músicas da fila", - "action.import": "Importar", - "action.export": "Exportar", - "action.showAlbum": "Mostrar álbum completo", - "action.tray.minimize": "Minimizar para a bandeja", - "action.tray.quit": "Fechar", - "action.tray.show": "Mostrar o Cider", - "action.tray.playpause": "Reproduzir/Pausa", - "action.tray.next": "Seguinte", - "action.tray.previous": "Anterior", - "action.tray.listento": "Ouvir:", - "action.update": "Atualizar", - "action.install": "Instalar", - "action.copy": "Copiar", - "action.newpreset": "Nova predefinição...", - "action.deletepreset": "Eliminar predefinição", - "action.open": "Abrir", - "action.close": "Fechar", - "action.relaunch.confirm": "Pretende reiniciar o Cider?", - "action.cast.chromecast": "Chromecast", - "action.cast.todevices": "Transmitir para dispositivos", - "action.cast.stop": "Parar a transmissão para todos os dispositivos", - "action.cast.airplay": "AirPlay", - "action.cast.airplay.underdevelopment": "AirPlay ainda está em desenvolvimento", - "action.cast.scan": "Procurar", - "action.cast.scanning": "A procurar...", - "action.createNew": "Criar nova...", - "action.openArtworkInBrowser": "Abrir grafismo no navegador", - "action.scrollToTop": "Voltar ao topo", - "menubar.options.about": "Sobre", - "menubar.options.settings": "Definições", - "menubar.options.quit": "Fechar o Cider", - "menubar.options.view": "Ver", - "menubar.options.reload": "Atualizar", - "menubar.options.forcereload": "Forçar atualização", - "menubar.options.toggledevtools": "Alternar ferramentas do programador", - "menubar.options.window": "Janela", - "menubar.options.minimize": "Minimizar", - "menubar.options.toggleprivate": "Alternar sessão privada", - "menubar.options.webremote": "Web Remote", - "menubar.options.audio": "Definições de áudio", - "menubar.options.plugins": "Menu de plug-ins", - "menubar.options.controls": "Controlos", - "menubar.options.next": "Seguinte", - "menubar.options.playpause": "Reproduzir/Pausa", - "menubar.options.previous": "Anterior", - "menubar.options.volumeup": "Aumentar o volume", - "menubar.options.volumedown": "Diminuir o volume", - "menubar.options.browse": "Explorar", - "menubar.options.artists": "Intérpretes", - "menubar.options.search": "Pesquisa", - "menubar.options.albums": "Álbuns", - "menubar.options.cast": "Transmitir para dispositivos", - "menubar.options.account": "Conta", - "menubar.options.accountsettings": "Definições da conta", - "menubar.options.signout": "Terminar sessão", - "menubar.options.support": "Suporte", - "menubar.options.discord": "Discord", - "menubar.options.github": "GitHub Wiki", - "menubar.options.report": "Reportar um...", - "menubar.options.bug": "Problema", - "menubar.options.feature": "Pedido de funcionalidade", - "menubar.options.trans": "Pedido de tradução", - "menubar.options.license": "Ver licença", - "menubar.options.conf": "Abrir ficheiro de configuração no editor", - "menubar.options.listennow": "Ouvir agora", - "menubar.options.recentlyAdded": "Adições recentes", - "menubar.options.songs": "Músicas", - "settings.header.general": "Geral", - "settings.header.general.description": "Ajustar as definições gerais do Cider.", - "settings.option.general.language": "Idioma", - "settings.option.general.resumebehavior": "Comportamento de retoma", - "settings.option.general.resumebehavior.description": "Define a forma como o Cider irá retomar a sua sessão quando regressar à aplicação.", - "settings.option.general.resumebehavior.locally": "Localmente", - "settings.option.general.resumebehavior.locally.description": "O Cider irá retomar a sua última sessão nesta máquina.", - "settings.option.general.resumebehavior.history": "Histórico", - "settings.option.general.resumebehavior.history.description": "O Cider irá colocar na fila a última música do seu histórico da Apple Music, através de todos os seus dispositivos.", - "settings.option.general.resumetabs": "Abrir separador no arranque", - "settings.option.general.resumetabs.description": "Pode escolher que separador quer abrir quando abre o Cider.", - "settings.option.general.resumetabs.dynamic": "Dinâmico", - "settings.option.general.resumetabs.dynamic.description": "O Cider abrirá o separador que utilizou pela última vez.", - "settings.option.general.language.main": "Idiomas", - "settings.option.general.language.fun": "Idiomas divertidos", - "settings.option.general.language.unsorted": "Indiferenciado", - "settings.option.general.customizeSidebar": "Personalizar os itens da barra lateral", - "settings.option.general.customizeSidebar.customize": "Personalizar", - "settings.option.general.keybindings": "Atalhos do teclado", - "settings.option.general.keybindings.pressCombination": "Prima uma combinação de duas teclas para atualizar o atalho.", - "settings.option.general.keybindings.pressEscape": "Prima a tecla Escape para voltar atrás.", - "settings.notyf.general.keybindings.update.success": "Atalho atualizado com sucesso", - "settings.prompt.general.keybindings.update.success": "Atalho atualizado com sucesso. Prima OK para reiniciar o Cider", - "settings.option.general.keybindings.open": "Abrir", - "settings.option.general.themeUpdateNotification": "Verificação automática de atualizações de temas", - "settings.option.general.showLovedTracksInline": "Mostrar músicas que gosta \"inline\"", - "settings.description.search": "Pesquisa", - "settings.description.albums": "Álbuns da biblioteca", - "settings.description.artists": "Intérpretes da biblioteca", - "settings.description.browse": "Explorar", - "settings.description.private": "Alternar sessão privada", - "settings.description.remote": "Web Remote", - "settings.description.audio": "Definições de áudio", - "settings.description.plugins": "Menu de plug-ins", - "settings.description.cast": "Transmitir para dispositivos", - "settings.description.settings": "Definições", - "settings.description.developer": "Ferramentas do programador", - "settings.description.listnow": "Ouvir agora", - "settings.description.recentAdd": "Adições recentes", - "settings.description.songs": "Músicas", - "settings.notyf.updateCider.update-not-available": "Nenhuma atualização disponível", - "settings.notyf.updateCider.update-downloaded": "A atualização foi descarregada, reinicie para aplicar", - "settings.notyf.updateCider.update-timeout": "O pedido de atualização estou o tempo limite", - "settings.header.audio": "Áudio", - "settings.header.audio.description": "Ajustar as definições de áudio para o Cider.", - "settings.option.audio.volumeStep": "Nível de incremento de volume", - "settings.option.audio.advanced": "Controlo avançado de volume", - "settings.option.audio.maxVolume": "Volume máximo", - "settings.option.audio.changePlaybackRate": "Alterar velocidade de reprodução", - "settings.option.audio.playbackRate": "Velocidade de reprodução", - "settings.option.audio.playbackRate.change": "Alterar", - "settings.option.audio.quality": "Qualidade do áudio", - "settings.header.audio.quality.hireslossless": "Alta resolução sem perdas", - "settings.header.audio.quality.hireslossless.description": "até 24-bit/192 kHz", - "settings.header.audio.quality.lossless": "Sem perdas", - "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 gradual do áudio", - "settings.option.audio.enableAdvancedFunctionality": "Ativar funcionalidades avançadas", - "settings.option.audio.enableAdvancedFunctionality.description": "Ativar o AudioContext dá acesso a funcionalidades alargadas como Normalização de Áudio, Equalizadores e Visualizadores - contudo, isto pode causar dificuldades em alguns sistemas.", - "settings.warn.audio.enableAdvancedFunctionality.lowcores": "O Cider pensa que o seu PC não é capaz de lidar com estas funcionalidades. Tem a certeza de que pretende continuar?", - "settings.option.audio.audioLab": "Cider Audio Lab", - "settings.option.audio.audioLab.description": "Efeitos de áudio desenvolvidos internamente para o Cider.", - "settings.option.audio.audioLab.subheader": "Designed by Cider Acoustic Technologies in California", - "settings.warn.audioLab.withoutAF": "AudioContext (funcionalidade avançada) é necessário para suportar o Cider Audio Lab.", - "settings.warn.enableAdvancedFunctionality": "AudioContext (funcionalidade avançada) é necessário para suportar esta funcionalidade.", - "settings.option.audio.enableAdvancedFunctionality.analogWarmth": "Calor Analógico", - "settings.option.audio.enableAdvancedFunctionality.analogWarmth.description": "Simula o calor analógico inspirado no Korg Nutube 6P1", - "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity": "Intensidade do calor analógico", - "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.description": "Altera a intensidade do processamento do módulo de calor analógico.", - "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth": "Suave", - "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm": "Quente", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizer": "Cider Atmosphere Realizer™️", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizer.description": "Cria uma atmosfera musical diferente inspirada nas mais modernas aparelhagens.", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode": "Modo do Cider Atmosphere Realizer™️", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.description": "Altera o modo de funcionamento do módulo Atmosphere Realizer.", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_STANDARD": "Hōjicha Cheese Foam Tea", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_PLUS": "Genmaicha Tapioca Milk Tea", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.E68_1": "Rock Salt Cheese Foam Tea", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.E68_2": "Uji Matcha Milk Tea", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.E168_1": "Jasmine Macchiato", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z3600": "Hokkaido Milk Tea", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z8500": "Moonlight Softcake", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.BSCBM": "Brown Sugar Creme Brûlée Milk", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.CUDDLE": "Cuddle Warmth", - "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️", - "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Melhora a qualidade de áudio percecionada do áudio codificado em AAC, utilizando um algoritmo de tempo real que tira partido tanto dos modelos psicoacústicos da audição humana como das características de codificação do AAC.", - "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "O CAP não é compatível com a espacialização. Por favor, desative a espacialização para continuar.", - "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "Intensidade do CAP", - "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Muda a intensidade do processamento feito ao áudio (a agressividade pode produzir resultados indesejáveis).", - "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Padrão", - "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.adaptive": "Adaptativo", - "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.legacy": "Antigo", - "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Agressivo", - "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalização de áudio", - "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normaliza o volume de pico das músicas para criar uma experiência de audição mais uniforme (não funciona em músicas carregadas pelo utilizador).", - "settings.option.audio.enableAdvancedFunctionality.audioNormalization.disabled": "Gerido pelo Audio Lab", - "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Espacialização ajustada pelo Cider", - "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "Efeito de espacialização pré-ajustado, desactiva as configurações personalizáveis de espacialização de áudio.", - "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Perfil de espacialização do Cider", - "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description": "Altera o perfil de ajuste da espacialização.", - "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard": "Padrão", - "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.soundstage": "Palco", - "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.separation": "Separação", - "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.minimal": "Mínimo", - "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile": "Audiófilo", - "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.diffused": "Difundido", - "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.bplk": "Encore", - "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.hw2k": "Encore expandido", - "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "A espacialização não é compatível com o CAP. Por favor, desative o CAP para continuar.", - "settings.option.audio.dbspl.display": "Mostrar dB SPL", - "settings.option.audio.dbspl.description": "(Apenas para utilizadores avançados) Mostrar dB SPL em vez de dBFS no controlo de volume.", - "settings.option.audio.dbfs.calibration": "Calibração de 0 dBFS", - "settings.option.audio.dbfs.description": "Introduza o pico de SPL com ponderação Z quando o Cider está a 0 dBFS.", - "settings.header.visual": "Aparência", - "settings.header.visual.description": "Ajustar as definições visuais do Cider.", - "settings.option.visual.windowStyle": "Estilo da janela", - "settings.option.visual.windowBackgroundStyle": "Estilo do fundo da janela", - "settings.header.visual.windowBackgroundStyle.none": "Nenhum", - "settings.header.visual.windowBackgroundStyle.artwork": "Grafismo", - "settings.header.visual.windowBackgroundStyle.image": "Imagem", - "settings.option.visual.animatedArtwork": "Grafismo animado", - "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 todo o lado", - "settings.option.visual.animatedArtworkQuality": "Qualidade dos grafismos animados", - "settings.header.visual.animatedArtworkQuality.low": "Baixa", - "settings.header.visual.animatedArtworkQuality.medium": "Média", - "settings.header.visual.animatedArtworkQuality.high": "Alta", - "settings.header.visual.animatedArtworkQuality.veryHigh": "Muito alta", - "settings.header.visual.animatedArtworkQuality.extreme": "Extrema", - "settings.option.visual.animatedWindowBackground": "Fundo da janela animado", - "settings.option.visual.hardwareAcceleration": "Aceleração de hardware", - "settings.option.visual.hardwareAcceleration.description": "Requer reinício", - "settings.header.visual.hardwareAcceleration.default": "Padrão", - "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", - "settings.option.visual.uiscale": "Escala da UI", - "settings.header.visual.theme": "Tema", - "settings.option.visual.theme.github.download": "Instalar a partir de um URL do GitHub", - "settings.option.visual.theme.github.openfolder": "Abrir pasta de temas", - "settings.option.visual.theme.github.explore": "Explorar temas do GitHub", - "settings.header.visual.theme.github.page": "Temas do GitHub", - "settings.option.visual.theme.github.install.confirm": "Tem a certeza de que pretende instalar {{ repo }}?", - "settings.prompt.visual.theme.github.URL": "Introduza o URL do tema que pretende instalar", - "settings.prompt.visual.theme.uninstallTheme": "Tem a certeza de que pretende desinstalar {{ theme }}?", - "settings.option.visual.theme.checkForUpdates": "Procurar por atualizações", - "settings.option.visual.theme.manageStyles": "Gerir estilos", - "settings.option.visual.theme.uninstall": "Desinstalar", - "settings.option.visual.theme.viewInfo": "Ver informação", - "settings.option.visual.theme.github.available": "Disponível", - "settings.option.visual.theme.github.applied": "Aplicado", - "settings.notyf.visual.theme.install.success": "Tema instalado com sucesso", - "settings.notyf.visual.theme.install.error": "A instalação do tema falhou", - "settings.header.visual.plugin": "Plug-in", - "settings.option.visual.plugin.github.download": "Instalar a partir de um URL do GitHub", - "settings.option.visual.plugin.github.explore": "Explorar plug-ins do GitHub", - "settings.header.visual.plugin.github.page": "Plug-ins do GitHub", - "settings.option.visual.plugin.github.install.confirm": "Tem a certeza de que pretende instalar {{ repo }}?", - "settings.prompt.visual.plugin.github.URL": "Introduza o URL do plug-in que pretende instalar", - "settings.prompt.visual.plugin.github.success": "Plug-in instalado com sucesso. Pressione OK para reiniciar o Cider", - "settings.notyf.visual.plugin.install.success": "Plug-in instalado com sucesso", - "settings.notyf.visual.plugin.install.error": "A instalação do plug-in falhou", - "settings.option.visual.theme.default": "Cider", - "settings.option.visual.theme.dark": "Escuro", - "settings.option.visual.showPersonalInfo": "Mostrar informação pessoal", - "settings.header.window": "Janela", - "settings.header.window.description": "Ajustar as definições da janela para o Cider.", - "settings.option.window.openOnStartup": "Abrir o Cider no arranque", - "settings.option.window.openOnStartup.hidden": "Abrir escondido", - "settings.option.window.useNativeTitleBar": "Usar barra de título nativa", - "settings.option.window.windowControlStyle": "Estilo de controlo da janela", - "settings.option.window.windowControlStyle.right": "Direita", - "settings.option.window.windowControlStyle.left": "Esquerda", - "settings.header.lyrics": "Letras", - "settings.header.lyrics.description": "Ajustar as definições de letras para o Cider.", - "settings.option.lyrics.enableMusixmatch": "Ativar letras do Musixmatch", - "settings.option.lyrics.enableMusixmatchKaraoke": "Ativar o modo Karaoke (apenas para o Musixmatch)", - "settings.option.lyrics.musixmatchPreferredLanguage": "Língua preferida para traduções do Musixmatch", - "settings.option.lyrics.enableYoutubeLyrics": "Ativar letras do Youtube para videoclipes", - "settings.option.lyrics.enableQQLyrics": "Ativar letras do QQ", - "settings.header.connectivity": "Conectividade", - "settings.header.connectivity.description": "Ajustar as definições de conectividade para o Cider.", - "settings.option.connectivity.playbackNotifications": "Notificações de reprodução", - "settings.option.connectivity.discordRPC": "Discord Rich Presence", - "settings.option.connectivity.discordRPC.clientName": "Nome do cliente", - "settings.option.connectivity.discordRPC.clearOnPause": "Limpar o Discord Rich Presence ao colocar em pausa", - "settings.option.connectivity.discordRPC.hideButtons": "Esconder botões no Discord Rich Presence", - "settings.option.connectivity.discordRPC.hideTimestamp": "Esconder timestamp no Discord Rich Presence", - "settings.option.connectivity.discordRPC.detailsFormat": "Formato dos detalhes", - "settings.option.connectivity.discordRPC.stateFormat": "Formato do estado", - "settings.option.connectivity.discordRPC.reload": "Reiniciar o DiscordRPC", - "settings.option.connectivity.discordRPC.reconnectedToUser": "DiscordRPC ligação restabelecida ao utilizador: {{user}} ({{userid}})", - "settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling", - "settings.option.connectivity.lastfmScrobble.delay": "Last.fm atraso do scrobble (%)", - "settings.option.connectivity.lastfmScrobble.nowPlaying": "Ativar Last.fm Now Playing", - "settings.option.connectivity.lastfmScrobble.removeFeatured": "Remover artistas do título da música (Last.fm)", - "settings.option.connectivity.lastfmScrobble.filterLoop": "Filtrar música em loop (Last.fm)", - "settings.header.debug": "Debug", - "settings.option.debug.copy_log": "Copiar logs para a área de transferência", - "settings.option.debug.openAppData": "Abrir pasta do Cider", - "settings.header.experimental": "Experimental", - "settings.header.experimental.description": "Ajustar as definições experimentais para o Cider.", - "settings.option.experimental.reinstallwidevine": "Reinstalar WidevineCDM", - "settings.option.experimental.reinstallwidevine.confirm": "Tem a certeza de que pretende reinstalar o Widevine?", - "settings.option.experimental.unknownPlugin": "Fontes desconhecidas", - "settings.option.experimental.unknownPlugin.description": "Permitir a instalação de plug-ins de outros repositórios que não o repositório de plug-ins do Cider", - "settings.option.experimental.compactUI": "UI compacta", - "settings.option.window.close_button_hide": "Botão fechar oculta a aplicação", - "settings.option.experimental.inline_playlists": "Listas de reprodução e álbuns \"inline\"", - "settings.option.advanced.playlistTrackMapping": "Mapeamento de músicas de listas de reprodução", - "settings.option.advanced.playlistTrackMapping.description": "Ativa uma análise profunda das listas de reprodução para determinar que músicas estão em que listas de reprodução. O tempo de construção da cache das listas de reprodução pode aumentar significativamente.", - "settings.option.visual.transparent": "Moldura transparente", - "settings.option.visual.transparent.description": "Necessita de suporte do tema, requer reinício", - "settings.header.advanced": "Avançado", - "settings.header.connect": "Sincronização", - "settings.option.connect.link_account": "Ativar a sincronização com o Cider Connect", - "settings.option.connect.link_account.description": "Ligar a sua conta Discord ao Cider Connect permite-lhe armazenar dados de utilizador incluindo definições, EQ's, e eventualmente mais uma vez terminado (trabalho em curso).", - "spatial.notTurnedOn": "A espacialização de áudio está desativada. Para utilizar, por favor, ative-a primeiro.", - "spatial.spatialProperties": "Propriedades espaciais", - "spatial.width": "Largura", - "spatial.height": "Altura", - "spatial.depth": "Profundidade", - "spatial.gain": "Ganho", - "spatial.roomMaterials": "Materiais da sala", - "spatial.roomDimensions": "Dimensões da sala", - "spatial.roomPositions": "Posições na 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": "Em baixo", - "spatial.listener": "Ouvinte", - "spatial.audioSource": "Fonte de áudio", - "settings.header.unfinished": "Inacabado", - "remote.web.title": "Cider Remote", - "remote.web.description": "Digitalize o código QR para emparelhar o seu telemóvel com esta instância do Cider", - "share.platform.twitter.tweet": "Ouça {{song}} na 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": "Copiar com song.link", - "share.platform.clipboard": "Copiar ligação", - "about.thanks": "Um grande obrigado à equipa da Cider Collective e a todos os nossos contribuidores." + "i18n.languageName": "Português (Portugal)", + "i18n.languageNameEnglish": "Portuguese (Portugal)", + "i18n.category": "main", + "i18n.authors": "@pgalhardo", + "app.name": "Cider", + "date.format": "${m} ${d}, ${y}", + "dialog.cancel": "Cancelar", + "dialog.ok": "OK", + "notification.updatingLibrarySongs": "A atualizar biblioteca de músicas...", + "notification.updatingLibraryAlbums": "A atualizar biblioteca de álbuns...", + "notification.updatingLibraryArtists": "A atualizar biblioteca de artistas...", + "term.variables": "Variáveis", + "term.appleInc": "Apple Inc.", + "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": "Terminar sessão", + "term.login": "Iniciar sessão", + "term.quickNav": "Navegação rápida", + "term.about": "Sobre", + "term.privateSession": "Sessão privada", + "term.disablePrivateSession": "Desativar sessão privada", + "term.queue": "Fila", + "term.autoplay": "Reprodução automática", + "term.lyrics": "Letra", + "term.miniplayer": "Mini-leitor", + "term.history": "Histórico", + "term.search": "Pesquisa", + "term.showSearch": "Mostrar a barra de pesquisa", + "term.hideSearch": "Esconder a barar de pesquisa", + "term.library": "Biblioteca", + "term.listenNow": "Ouvir agora", + "term.browse": "Explorar", + "term.radio": "Rádio", + "term.recentlyAdded": "Adições recentes", + "term.songs": "Músicas", + "term.albums": "Álbuns", + "term.artists": "Intérpretes", + "term.podcasts": "Podcasts", + "term.playlists": "Listas de reprodução", + "term.charts": "Gráficos", + "term.playlist": "Lista de reprodução", + "term.newPlaylist": "Nova lista de reprodução", + "term.newPlaylistFolder": "Nova pasta de listas de reprodução", + "term.createNewPlaylist": "Criar nova lista de reprodução", + "term.createNewPlaylistFolder": "Criar nova pasta de listas de reprodução", + "term.deletePlaylist": "Tem a certeza de que pretende apagar esta lista de reprodução?", + "term.navigateBack": "Retroceder uma página", + "term.navigateForward": "Avançar uma página", + "term.play": "Reproduzir", + "term.playpause": "Reproduzir/Pausa", + "term.pause": "Pausa", + "term.stop": "Parar", + "term.previous": "Anterior", + "term.next": "Seguinte", + "term.shuffle": "Modo aleatório", + "term.enableShuffle": "Ativar modo aleatório", + "term.disableShuffle": "Desativar modo aleatório", + "term.repeat": "Repetir", + "term.enableRepeatOne": "Ativar repetir uma", + "term.disableRepeatOne": "Desativar repetir uma", + "term.disableRepeat": "Não repetir", + "term.volume": "Volume", + "term.mute": "Mudo", + "term.unmute": "Com som", + "term.share": "Partilhar", + "term.share.success": "Copiado para a área de transferência", + "term.settings": "Definições", + "term.seeAll": "Ver tudo", + "term.sortBy": "Ordenar por", + "term.sortBy.album": "Álbum", + "term.sortBy.artist": "Intérprete", + "term.sortBy.name": "Nome", + "term.sortBy.genre": "Género", + "term.sortBy.releaseDate": "Data de lançamento", + "term.sortBy.duration": "Duração", + "term.sortBy.dateAdded": "Data de adição", + "term.sortOrder": "A-Z", + "term.sortOrder.ascending": "Ascendente", + "term.sortOrder.descending": "Descendente", + "term.viewAs": "Ver como", + "term.viewAs.coverArt": "Grafismos", + "term.viewAs.list": "Lista", + "term.dynamic": "Dinâmico", + "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": "Ligar", + "term.connecting": "A ligar", + "term.disconnect": "Desligar", + "term.authed": "Autenticado", + "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": "Últimos lançamentos", + "term.time.added": "Adicionado", + "term.time.released": "Lançado", + "term.time.updated": "Atualizado", + "term.time.days": "dias", + "term.time.day": { + "one": "dia", + "other": "dias" + }, + "term.time.hours": "horas", + "term.time.hour": { + "one": "hora", + "other": "horas" + }, + "term.time.minutes": "minutos", + "term.time.minute": { + "one": "minuto", + "other": "minutos" + }, + "term.time.seconds": "segundos", + "term.time.second": { + "one": "segundo", + "other": "segundos" + }, + "term.fullscreenView": "Vista de ecrã inteiro", + "term.defaultView": "Vista normal", + "term.audioSettings": "Definições de áudio", + "term.audioControls": "Controlos de volume", + "term.clearAll": "Limpar tudo", + "term.recentStations": "Estações recentes", + "term.personalStations": "Estações pessoais", + "term.amLive": "Apple Music Live", + "term.live": "AO VIVO", + "term.language": "Idioma", + "term.funLanguages": "Divertido", + "term.noLyrics": "A carregar... / Letra não encontrada. / Instrumental.", + "term.copyright": "Copyright", + "term.rightsReserved": "Todos os direitos reservados.", + "term.sponsor": "Patrocine este projecto", + "term.ciderTeam": "Equipa do Cider", + "term.developer": "Programador", + "term.socialTeam": "Equipa social", + "term.socials": "Redes sociais", + "term.contributors": "Contribuidores", + "term.equalizer": "Equalizador", + "term.reset": "Repor", + "term.tracks": "músicas", + "term.track": { + "one": "música", + "other": "músicas" + }, + "term.videos": "Vídeos", + "term.menu": "Menu", + "term.themeManaged": "Gerido por um tema", + "term.check": "Verificar", + "term.aboutArtist": "Sobre {{artistName}}", + "term.topResult": "Melhor resultado", + "term.sharedPlaylists": "Listas de reprodução partilhadas", + "term.people": "Pessoas", + "term.newpreset.name": "Nome da nova predefinição do EQ", + "term.addedpreset": "Predefinição adicionada", + "term.deletepreset.warn": "Tem a certeza de que pretende apagar esta predefinição?", + "term.deletedpreset": "Predefinição eliminada", + "term.defaultPresets": "Predefinições por omissão", + "term.userPresets": "Predefinições do utilizador", + "term.requestError": "Ocorreu um problema ao processar o pedido.", + "term.song.link.generate": "A obter o URL de partilha song.link...", + "term.musicVideos": "Videoclipes", + "term.stations": "Estações", + "term.curators": "Curadores", + "term.appleCurators": "Curadores da Apple", + "term.radioShows": "Programas de rádio", + "term.recordLabels": "Gravadoras", + "term.videoExtras": "Vídeos extra", + "term.top": "Top", + "term.version": "Versão", + "term.noVideos": "Não foram encontrados vídeos.", + "term.plugin": "Plug-in", + "term.pluginMenu": "Menu de plug-ins", + "term.pluginMenu.none": "Sem plug-ins interactivos", + "term.replay": "Repetir", + "term.uniqueAlbums": "Álbuns únicos", + "term.uniqueArtists": "Intérpretes únicos", + "term.uniqueSongs": "Músicas únicas", + "term.topArtists": "Top de intérpretes", + "term.listenedTo": "Reproduzido:", + "term.times": "vezes", + "term.topAlbums": "Top de álbuns", + "term.plays": "Reproduções", + "term.topGenres": "Top de géneros", + "term.confirmLogout": "Tem a certeza de que pretende terminar sessão?", + "term.creditDesignedBy": "Concebido por ${authorUsername}", + "term.discNumber": "Disco ${discNumber}", + "term.reload": "Reiniciar o Cider ?", + "term.toggleprivate": "Alternar sessão privada", + "term.webremote": "Web Remote", + "term.cast": "Transmitir", + "term.cast2": "Transmitir para dispositivos", + "term.quit": "Fechar", + "term.zoomin": "Aumentar o zoom", + "term.zoomout": "Diminuir o zoom", + "term.zoomreset": "Repor zoom", + "term.fullscreen": "Ecrã inteiro", + "home.syncFavorites": "Sincronizar favoritos", + "home.syncFavorites.gettingArtists": "A obter os artistas favoritos...", + "home.title": "Início", + "home.recentlyPlayed": "Reproduzido recentemente", + "home.recentlyAdded": "Adicionado recentemente", + "home.artistsFeed": "Feed dos seus artistas", + "home.artistsFeed.noArtist": "Siga alguns artistas para ver os seus últimos lançamentos", + "home.madeForYou": "Feito para si", + "home.friendsListeningTo": "O que os seus amigos estão a ouvir", + "home.followedArtists": "Artistas seguidos", + "error.appleMusicSubRequired": "A Apple Music requer uma subscrição.", + "error.connectionError": "Ocorreu um problema ao estabelecer ligação à Apple Music.", + "error.noResults": "Sem resultados.", + "error.noResults.description": "Tente uma nova pesquisa.", + "podcast.followOnCider": "Siga no Cider", + "podcast.followedOnCider": "A seguir no Cider", + "podcast.subscribeOnItunes": "Subscreva no iTunes", + "podcast.subscribedOnItunes": "Subscrito no iTunes", + "podcast.itunesStore": "iTunes Store", + "podcast.episodes": "Episódios", + "podcast.playEpisode": "Reproduzir episódio", + "podcast.website": "Website do Podcast", + "action.favorite": "Adicionar favorito", + "action.removeFavorite": "Remover favorito", + "action.hideLibrary": "Ocultar biblioteca", + "action.showLibrary": "Mostrar biblioteca", + "action.cut": "Cortar", + "action.paste": "Colar", + "action.selectAll": "Seleccionar tudo", + "action.delete": "Apagar", + "action.edit": "Editar", + "action.done": "Concluído", + "action.editTracklist": "Editar lista de reprodução", + "action.addToLibrary": "Adicionar à biblioteca", + "action.addToLibrary.success": "Adicionado à biblioteca", + "action.addToLibrary.error": "Erro ao adicionar à 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.createPlaylist": "Criar uma nova lista de reprodução", + "action.addToPlaylist": "Adicionar à lista de reprodução", + "action.removeFromPlaylist": "Removar da lista de reprodução", + "action.addToFavorites": "Adicionar aos favoritos", + "action.follow": "Seguir", + "action.follow.success": "Seguido", + "action.follow.error": "Erro ao seguir", + "action.unfollow": "Não seguir", + "action.unfollow.success": "Não seguido", + "action.unfollow.error": "Erro ao deixar de seguir", + "action.playNext": "Reproduzir a seguir", + "action.playLater": "Reproduzir mais tarde", + "action.startRadio": "Criar estação", + "action.goToArtist": "Ir para intérprete", + "action.goToAlbum": "Ir para álbum", + "action.showInPlaylist": "Mostrar na lista de reprodução", + "action.showInAppleMusic": "Mostrar na Apple Music", + "action.moveToTop": "Mover para fora da pasta", + "action.share": "Partilhar", + "action.rename": "Renomear", + "action.love": "Gostar", + "action.unlove": "Desfazer gostar", + "action.dislike": "Não gostar", + "action.undoDislike": "Desfazer não gostar", + "action.showWebRemoteQR": "Web Remote", + "action.playTracksNext": "Reproduzir ${app.selectedMediaItems.length} músicas a seguir", + "action.playTracksLater": "Reproduzir ${app.selectedMediaItems.length} músicas mais tarde", + "action.removeTracks": "Remover ${self.selectedItems.length} músicas da fila", + "action.import": "Importar", + "action.export": "Exportar", + "action.showAlbum": "Mostrar álbum completo", + "action.tray.minimize": "Minimizar para a bandeja", + "action.tray.show": "Mostrar o Cider", + "action.tray.listento": "Ouvir:", + "action.update": "Atualizar", + "action.install": "Instalar", + "action.copy": "Copiar", + "action.newpreset": "Nova predefinição...", + "action.deletepreset": "Eliminar predefinição", + "action.open": "Abrir", + "action.close": "Fechar", + "action.relaunch.confirm": "Pretende reiniciar o Cider?", + "action.cast.chromecast": "Chromecast", + "action.cast.todevices": "Transmitir para dispositivos", + "action.cast.stop": "Parar a transmissão para todos os dispositivos", + "action.cast.airplay": "AirPlay", + "action.cast.airplay.underdevelopment": "AirPlay ainda está em desenvolvimento", + "action.cast.scan": "Procurar", + "action.cast.scanning": "A procurar...", + "action.createNew": "Criar nova...", + "action.openArtworkInBrowser": "Abrir grafismo no navegador", + "action.scrollToTop": "Voltar ao topo", + "menubar.options.view": "Ver", + "menubar.options.reload": "Atualizar", + "menubar.options.forcereload": "Forçar atualização", + "menubar.options.toggledevtools": "Alternar ferramentas do programador", + "menubar.options.window": "Janela", + "menubar.options.minimize": "Minimizar", + "menubar.options.plugins": "Menu de plug-ins", + "menubar.options.controls": "Controlos", + "menubar.options.volumeup": "Aumentar o volume", + "menubar.options.volumedown": "Diminuir o volume", + "menubar.options.account": "Conta", + "menubar.options.signout": "Terminar sessão", + "menubar.options.support": "Suporte", + "menubar.options.report": "Reportar um...", + "menubar.options.bug": "Problema", + "menubar.options.feature": "Pedido de funcionalidade", + "menubar.options.trans": "Pedido de tradução", + "menubar.options.license": "Ver licença", + "menubar.options.conf": "Abrir ficheiro de configuração no editor", + "menubar.options.zoom": "Zoom", + "settings.header.general": "Geral", + "settings.header.general.description": "Ajustar as definições gerais do Cider.", + "settings.option.general.language": "Idioma", + "settings.option.general.resumebehavior": "Comportamento de retoma", + "settings.option.general.resumebehavior.description": "Define a forma como o Cider irá retomar a sua sessão quando regressar à aplicação.", + "settings.option.general.resumebehavior.locally": "Localmente", + "settings.option.general.resumebehavior.locally.description": "O Cider irá retomar a sua última sessão nesta máquina.", + "settings.option.general.resumebehavior.history": "Histórico", + "settings.option.general.resumebehavior.history.description": "O Cider irá colocar na fila a última música do seu histórico da Apple Music, através de todos os seus dispositivos.", + "settings.option.general.resumetabs": "Abrir separador no arranque", + "settings.option.general.resumetabs.description": "Pode escolher que separador quer abrir quando abre o Cider.", + "settings.option.general.resumetabs.dynamic": "Dinâmico", + "settings.option.general.resumetabs.dynamic.description": "O Cider abrirá o separador que utilizou pela última vez.", + "settings.option.general.language.main": "Idiomas", + "settings.option.general.language.fun": "Idiomas divertidos", + "settings.option.general.language.unsorted": "Indiferenciado", + "settings.option.general.customizeSidebar": "Personalizar os itens da barra lateral", + "settings.option.general.customizeSidebar.customize": "Personalizar", + "settings.option.general.keybindings": "Atalhos do teclado", + "settings.option.general.keybindings.library": "Biblioteca", + "settings.option.general.keybindings.session": "Sessão", + "settings.option.general.keybindings.control": "Controlos", + "settings.option.general.keybindings.interface": "Interface", + "settings.option.general.keybindings.advanced": "Avançado", + "settings.option.general.keybindings.pressCombination": "Prima uma combinação de duas teclas para atualizar o atalho.", + "settings.option.general.keybindings.pressEscape": "Prima a tecla Escape para voltar atrás.", + "settings.notyf.general.keybindings.update.success": "Atalho atualizado com sucesso", + "settings.prompt.general.keybindings.update.success": "Atalho atualizado com sucesso. Prima OK para reiniciar o Cider", + "settings.option.general.themeUpdateNotification": "Verificação automática de atualizações de temas", + "settings.option.general.showLovedTracksInline": "Mostrar músicas que gosta \"inline\"", + "settings.description.search": "Pesquisa", + "settings.description.albums": "Álbuns da biblioteca", + "settings.description.artists": "Intérpretes da biblioteca", + "settings.description.browse": "Explorar", + "settings.description.private": "Alternar sessão privada", + "settings.description.remote": "Web Remote", + "settings.description.audio": "Definições de áudio", + "settings.description.plugins": "Menu de plug-ins", + "settings.description.cast": "Transmitir para dispositivos", + "settings.description.settings": "Definições", + "settings.description.developer": "Ferramentas do programador", + "settings.description.listnow": "Ouvir agora", + "settings.description.recentAdd": "Adições recentes", + "settings.description.songs": "Músicas", + "settings.notyf.updateCider.update-not-available": "Nenhuma atualização disponível", + "settings.notyf.updateCider.update-downloaded": "A atualização foi descarregada, reinicie para aplicar", + "settings.notyf.updateCider.update-timeout": "O pedido de atualização estou o tempo limite", + "settings.header.audio": "Áudio", + "settings.header.audio.description": "Ajustar as definições de áudio para o Cider.", + "settings.option.audio.volumeStep": "Nível de incremento de volume", + "settings.option.audio.advanced": "Controlo avançado de volume", + "settings.option.audio.maxVolume": "Volume máximo", + "settings.option.audio.changePlaybackRate": "Alterar velocidade de reprodução", + "settings.option.audio.playbackRate": "Velocidade de reprodução", + "settings.option.audio.playbackRate.change": "Alterar", + "settings.option.audio.quality": "Qualidade do áudio", + "settings.header.audio.quality.hireslossless": "Alta resolução sem perdas", + "settings.header.audio.quality.hireslossless.description": "até 24-bit/192 kHz", + "settings.header.audio.quality.lossless": "Sem perdas", + "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 gradual do áudio", + "settings.option.audio.enableAdvancedFunctionality": "Ativar funcionalidades avançadas", + "settings.option.audio.enableAdvancedFunctionality.description": "Ativar o AudioContext dá acesso a funcionalidades alargadas como Normalização de Áudio, Equalizadores e Visualizadores - contudo, isto pode causar dificuldades em alguns sistemas.", + "settings.warn.audio.enableAdvancedFunctionality.lowcores": "O Cider pensa que o seu PC não é capaz de lidar com estas funcionalidades. Tem a certeza de que pretende continuar?", + "settings.option.audio.audioLab": "Cider Audio Lab", + "settings.option.audio.audioLab.description": "Efeitos de áudio desenvolvidos internamente para o Cider.", + "settings.option.audio.audioLab.subheader": "Designed by Cider Acoustic Technologies in California", + "settings.warn.audioLab.withoutAF": "AudioContext (funcionalidade avançada) é necessário para suportar o Cider Audio Lab.", + "settings.warn.enableAdvancedFunctionality": "AudioContext (funcionalidade avançada) é necessário para suportar esta funcionalidade.", + "settings.option.audio.enableAdvancedFunctionality.analogWarmth": "Calor Analógico", + "settings.option.audio.enableAdvancedFunctionality.analogWarmth.description": "Simula o calor analógico inspirado no Korg Nutube 6P1", + "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity": "Intensidade do calor analógico", + "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.description": "Altera a intensidade do processamento do módulo de calor analógico.", + "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth": "Suave", + "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm": "Quente", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizer": "Cider Atmosphere Realizer™️", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizer.description": "Cria uma atmosfera musical diferente inspirada nas mais modernas aparelhagens.", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode": "Modo do Cider Atmosphere Realizer™️", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.description": "Altera o modo de funcionamento do módulo Atmosphere Realizer.", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_STANDARD": "Hōjicha Cheese Foam Tea", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_PLUS": "Genmaicha Tapioca Milk Tea", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.E68_1": "Rock Salt Cheese Foam Tea", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.E68_2": "Uji Matcha Milk Tea", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.E168_1": "Jasmine Macchiato", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z3600": "Hokkaido Milk Tea", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z8500A": "Moonwight Softcake", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z8500B": "Clafoutis aux Cerises", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z8500C": "Uji Matcha Mochi", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.BSCBM": "Brown Sugar Creme Brûlée Milk", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.CUDDLE": "Cuddle Warmth", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Melhora a qualidade de áudio percecionada do áudio codificado em AAC, utilizando um algoritmo de tempo real que tira partido tanto dos modelos psicoacústicos da audição humana como das características de codificação do AAC.", + "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "O CAP não é compatível com a espacialização. Por favor, desative a espacialização para continuar.", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "Intensidade do CAP", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Muda a intensidade do processamento feito ao áudio (a agressividade pode produzir resultados indesejáveis).", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Padrão", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.adaptive": "Adaptativo", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.legacy": "Antigo", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Agressivo", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalização de áudio", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normaliza o volume de pico das músicas para criar uma experiência de audição mais uniforme (não funciona em músicas carregadas pelo utilizador).", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization.disabled": "Gerido pelo Audio Lab", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Espacialização ajustada pelo Cider", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "Efeito de espacialização pré-ajustado, desactiva as configurações personalizáveis de espacialização de áudio.", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Perfil de espacialização do Cider", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description": "Altera o perfil de ajuste da espacialização.", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard": "Padrão", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.soundstage": "Palco", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.separation": "Separação", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.minimal": "Mínimo", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile": "Audiófilo", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.diffused": "Difundido", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.bplk": "Encore", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.hw2k": "Encore expandido", + "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "A espacialização não é compatível com o CAP. Por favor, desative o CAP para continuar.", + "settings.option.audio.dbspl.display": "Mostrar dB SPL", + "settings.option.audio.dbspl.description": "(Apenas para utilizadores avançados) Mostrar dB SPL em vez de dBFS no controlo de volume.", + "settings.option.audio.dbfs.calibration": "Calibração de 0 dBFS", + "settings.option.audio.dbfs.description": "Introduza o pico de SPL com ponderação Z quando o Cider está a 0 dBFS.", + "settings.header.visual": "Aparência", + "settings.header.visual.description": "Ajustar as definições visuais do Cider.", + "settings.option.visual.windowStyle": "Estilo da janela", + "settings.option.visual.customAccentColor": "Cor de destaque personalizada", + "settings.option.visual.accentColor": "Cor de destaque", + "settings.option.visual.purplePodcastPlaybackBar": "Barra de reprodução roxa para Podcasts", + "settings.option.visual.windowColor": "Tonalidade da cor da janela", + "settings.header.visual.windowBackgroundStyle.color": "Tonalidade da cor", + "settings.option.visual.windowBackgroundStyle": "Estilo do fundo da janela", + "settings.header.visual.windowBackgroundStyle.none": "Nenhum", + "settings.header.visual.windowBackgroundStyle.artwork": "Grafismo", + "settings.header.visual.windowBackgroundStyle.image": "Imagem", + "settings.option.visual.animatedArtwork": "Grafismo animado", + "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 todo o lado", + "settings.option.visual.animatedArtworkQuality": "Qualidade dos grafismos animados", + "settings.header.visual.animatedArtworkQuality.low": "Baixa", + "settings.header.visual.animatedArtworkQuality.medium": "Média", + "settings.header.visual.animatedArtworkQuality.high": "Alta", + "settings.header.visual.animatedArtworkQuality.veryHigh": "Muito alta", + "settings.header.visual.animatedArtworkQuality.extreme": "Extrema", + "settings.option.visual.animatedWindowBackground": "Fundo da janela animado", + "settings.option.visual.hardwareAcceleration": "Aceleração de hardware", + "settings.option.visual.hardwareAcceleration.description": "Requer reinício", + "settings.header.visual.hardwareAcceleration.default": "Padrão", + "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", + "settings.option.visual.uiscale": "Escala da UI", + "settings.header.visual.theme": "Tema", + "settings.option.visual.theme.github.download": "Instalar a partir de um URL do GitHub", + "settings.option.visual.theme.github.openfolder": "Abrir pasta de temas", + "settings.option.visual.theme.github.explore": "Explorar temas do GitHub", + "settings.header.visual.theme.github.page": "Temas do GitHub", + "settings.option.visual.theme.github.install.confirm": "Tem a certeza de que pretende instalar {{ repo }}?", + "settings.prompt.visual.theme.github.URL": "Introduza o URL do tema que pretende instalar", + "settings.prompt.visual.theme.uninstallTheme": "Tem a certeza de que pretende desinstalar {{ theme }}?", + "settings.option.visual.theme.checkForUpdates": "Procurar por atualizações", + "settings.option.visual.theme.manageStyles": "Gerir estilos", + "settings.option.visual.theme.uninstall": "Desinstalar", + "settings.option.visual.theme.viewInfo": "Ver informação", + "settings.option.visual.theme.github.available": "Disponível", + "settings.option.visual.theme.github.applied": "Aplicado", + "settings.notyf.visual.theme.install.success": "Tema instalado com sucesso", + "settings.notyf.visual.theme.install.error": "A instalação do tema falhou", + "settings.header.visual.plugin": "Plug-in", + "settings.option.visual.plugin.github.download": "Instalar a partir de um URL do GitHub", + "settings.option.visual.plugin.github.explore": "Explorar plug-ins do GitHub", + "settings.header.visual.plugin.github.page": "Plug-ins do GitHub", + "settings.option.visual.plugin.github.install.confirm": "Tem a certeza de que pretende instalar {{ repo }}?", + "settings.prompt.visual.plugin.github.URL": "Introduza o URL do plug-in que pretende instalar", + "settings.prompt.visual.plugin.github.success": "Plug-in instalado com sucesso. Pressione OK para reiniciar o Cider", + "settings.notyf.visual.plugin.install.success": "Plug-in instalado com sucesso", + "settings.notyf.visual.plugin.install.error": "A instalação do plug-in falhou", + "settings.option.visual.theme.default": "Cider", + "settings.option.visual.theme.dark": "Escuro", + "settings.option.visual.showPersonalInfo": "Mostrar informação pessoal", + "settings.header.window": "Janela", + "settings.header.window.description": "Ajustar as definições da janela para o Cider.", + "settings.option.window.openOnStartup": "Abrir o Cider no arranque", + "settings.option.window.openOnStartup.hidden": "Abrir escondido", + "settings.option.window.useNativeTitleBar": "Usar barra de título nativa", + "settings.option.window.windowControlStyle": "Estilo de controlo da janela", + "settings.option.window.windowControlStyle.right": "Direita", + "settings.option.window.windowControlStyle.left": "Esquerda", + "settings.header.lyrics": "Letras", + "settings.header.lyrics.description": "Ajustar as definições de letras para o Cider.", + "settings.option.lyrics.enableMusixmatch": "Ativar letras do Musixmatch", + "settings.option.lyrics.enableMusixmatchKaraoke": "Ativar o modo Karaoke (apenas para o Musixmatch)", + "settings.option.lyrics.musixmatchPreferredLanguage": "Língua preferida para traduções do Musixmatch", + "settings.option.lyrics.enableYoutubeLyrics": "Ativar letras do Youtube para videoclipes", + "settings.option.lyrics.enableQQLyrics": "Ativar letras do QQ", + "settings.header.connectivity": "Conectividade", + "settings.header.connectivity.description": "Ajustar as definições de conectividade para o Cider.", + "settings.option.connectivity.playbackNotifications": "Notificações de reprodução", + "settings.option.connectivity.discordRPC": "Discord Rich Presence", + "settings.option.connectivity.discordRPC.clientName": "Nome do cliente", + "settings.option.connectivity.discordRPC.clearOnPause": "Limpar o Discord Rich Presence ao colocar em pausa", + "settings.option.connectivity.discordRPC.hideButtons": "Esconder botões no Discord Rich Presence", + "settings.option.connectivity.discordRPC.hideTimestamp": "Esconder timestamp no Discord Rich Presence", + "settings.option.connectivity.discordRPC.detailsFormat": "Formato dos detalhes", + "settings.option.connectivity.discordRPC.stateFormat": "Formato do estado", + "settings.option.connectivity.discordRPC.reload": "Reiniciar o DiscordRPC", + "settings.option.connectivity.discordRPC.reconnectedToUser": "DiscordRPC ligação restabelecida ao utilizador: {{user}} ({{userid}})", + "settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling", + "settings.option.connectivity.lastfmScrobble.delay": "Last.fm atraso do scrobble (%)", + "settings.option.connectivity.lastfmScrobble.nowPlaying": "Ativar Last.fm Now Playing", + "settings.option.connectivity.lastfmScrobble.removeFeatured": "Remover artistas do título da música (Last.fm)", + "settings.option.connectivity.lastfmScrobble.filterLoop": "Filtrar música em loop (Last.fm)", + "settings.header.debug": "Debug", + "settings.option.debug.copy_log": "Copiar logs para a área de transferência", + "settings.option.debug.openAppData": "Abrir pasta do Cider", + "settings.header.experimental": "Experimental", + "settings.header.experimental.description": "Ajustar as definições experimentais para o Cider.", + "settings.option.experimental.reinstallwidevine": "Reinstalar WidevineCDM", + "settings.option.experimental.reinstallwidevine.confirm": "Tem a certeza de que pretende reinstalar o Widevine?", + "settings.option.experimental.unknownPlugin": "Fontes desconhecidas", + "settings.option.experimental.unknownPlugin.description": "Permitir a instalação de plug-ins de outros repositórios que não o repositório de plug-ins do Cider", + "settings.option.experimental.compactUI": "UI compacta", + "settings.option.window.close_button_hide": "Botão fechar oculta a aplicação", + "settings.option.experimental.inline_playlists": "Listas de reprodução e álbuns \"inline\"", + "settings.option.advanced.playlistTrackMapping": "Mapeamento de músicas de listas de reprodução", + "settings.option.advanced.playlistTrackMapping.description": "Ativa uma análise profunda das listas de reprodução para determinar que músicas estão em que listas de reprodução. O tempo de construção da cache das listas de reprodução pode aumentar significativamente.", + "settings.option.visual.transparent": "Moldura transparente", + "settings.option.visual.transparent.description": "Necessita de suporte do tema, requer reinício", + "settings.header.advanced": "Avançado", + "settings.header.connect": "Sincronização", + "settings.option.connect.link_account": "Ativar a sincronização com o Cider Connect", + "settings.option.connect.link_account.description": "Ligar a sua conta Discord ao Cider Connect permite-lhe armazenar dados de utilizador incluindo definições, EQ's, e eventualmente mais uma vez terminado (trabalho em curso).", + "spatial.notTurnedOn": "A espacialização de áudio está desativada. Para utilizar, por favor, ative-a primeiro.", + "spatial.spatialProperties": "Propriedades espaciais", + "spatial.width": "Largura", + "spatial.height": "Altura", + "spatial.depth": "Profundidade", + "spatial.gain": "Ganho", + "spatial.roomMaterials": "Materiais da sala", + "spatial.roomDimensions": "Dimensões da sala", + "spatial.roomPositions": "Posições na 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": "Em baixo", + "spatial.listener": "Ouvinte", + "spatial.audioSource": "Fonte de áudio", + "settings.header.unfinished": "Inacabado", + "remote.web.title": "Cider Remote", + "remote.web.description": "Digitalize o código QR para emparelhar o seu telemóvel com esta instância do Cider", + "share.platform.twitter.tweet": "Ouça {{song}} na 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": "Copiar com song.link", + "share.platform.clipboard": "Copiar ligação", + "about.thanks": "Um grande obrigado à equipa da Cider Collective e a todos os nossos contribuidores." } diff --git a/src/i18n/ru_RU.json b/src/i18n/ru_RU.json index 9120d764..2506e85f 100644 --- a/src/i18n/ru_RU.json +++ b/src/i18n/ru_RU.json @@ -10,6 +10,7 @@ "notification.updatingLibrarySongs": "Обновление медиатеки песен...", "notification.updatingLibraryAlbums": "Обновление медиатеки альбомов...", "notification.updatingLibraryArtists": "Обновление медиатеки артистов...", + "term.variables": "Переменные", "term.appleInc": "Apple Inc.", "term.appleMusic": "Apple Music", "term.applePodcasts": "Подкасты Apple", @@ -18,17 +19,24 @@ "term.discord": "Discord", "term.learnMore": "Узнать больше", "term.accountSettings": "Настройки аккаунта", - "term.logout": "Выйти", + "term.logout": "Выйти из аккаунта", "term.login": "Войти", - "term.cast": "Транслировать", + "term.quickNav": "Быстрая навигация", "term.about": "О Cider", "term.privateSession": "Частная сессия", "term.disablePrivateSession": "Выключить частную сессию", "term.queue": "Очередь", + "term.autoplay": "Автовоспроизведение", "term.lyrics": "Текст", "term.miniplayer": "Мини-проигрыватель", "term.history": "История", "term.search": "Поиск", + "term.scroll": "Прокрутка", + "term.scroll.infinite": "Бесконечная", + "term.scroll.paged": "${songsPerPage} на страницу", + "term.live": "LIVE", + "term.showSearch": "Показать панель поиска", + "term.hideSearch": "Скрыть панель поиска", "term.library": "Медиатека", "term.listenNow": "Слушайте сейчас", "term.browse": "Обзор", @@ -39,18 +47,28 @@ "term.artists": "Артисты", "term.podcasts": "Подкасты", "term.playlists": "Плейлисты", + "term.charts": "Чарты", "term.playlist": "Плейлист", "term.newPlaylist": "Новый Плейлист", "term.newPlaylistFolder": "Новая Папка Плейлиста", "term.createNewPlaylist": "Создать новый плейлист", "term.createNewPlaylistFolder": "Создать новую папку", "term.deletePlaylist": "Вы уверены, что хотите удалить этот плейлист?", + "term.navigateBack": "Назад", + "term.navigateForward": "Вперед", "term.play": "Воспроизвести", + "term.playpause": "Воспроизвести/Пауза", "term.pause": "Пауза", + "term.stop": "Остановить", "term.previous": "Предыдущий", "term.next": "Следующий", "term.shuffle": "Перемешать", + "term.enableShuffle": "Перемешать", + "term.disableShuffle": "Перемешать", "term.repeat": "Повторять", + "term.enableRepeatOne": "Включить повтор одной композиции", + "term.disableRepeatOne": "Выключить повтор одной композиции", + "term.disableRepeat": "Выключить повторение", "term.volume": "Громкость", "term.mute": "Заглушить", "term.unmute": "Включить звук", @@ -72,6 +90,7 @@ "term.viewAs": "Показывать", "term.viewAs.coverArt": "Обложки", "term.viewAs.list": "Список", + "term.dynamic": "Динамический", "term.size": "Размер", "term.size.normal": "Обычный", "term.size.compact": "Компактный", @@ -113,12 +132,14 @@ "few": "секунды", "other": "секунд" }, - "term.fullscreenView": "Полноэкранное отображение", + "term.fullscreenView": "Полноэкранный режим", "term.defaultView": "Стандартное отображение", "term.audioSettings": "Настройки звука", "term.audioControls": "Настройка громкости", "term.clearAll": "Очистить", "term.recentStations": "Вы недавно слушали", + "term.personalStations": "Персональные станции", + "term.amLive": "Apple Music Live", "term.language": "Язык", "term.funLanguages": "Забавные", "term.noLyrics": "Текст песни не найден.", @@ -139,6 +160,7 @@ }, "term.videos": "Видео", "term.menu": "Меню", + "term.themeManaged": "Управляется темой", "term.check": "Проверить", "term.aboutArtist": "О {{artistName}}", "term.topResult": "Топ результатов", @@ -162,7 +184,8 @@ "term.top": "Top", "term.version": "Версия", "term.noVideos": "Видео не найдено.", - "term.plugin": "Плагины", + "term.plugins": "Плагины", + "term.plugin": "Плагин", "term.pluginMenu": "Меню плагинов", "term.pluginMenu.none": "Нет плагинов", "term.replay": "Мой год", @@ -186,6 +209,22 @@ "term.confirmLogout": "Вы уверены, что хотите выйти?", "term.creditDesignedBy": "Разработано ${authorUsername}", "term.discNumber": "Диск ${discNumber}", + "term.reload" : "Перезагрузить Cider?", + "term.toggleprivate" : "Переключить частную сессию", + "term.webremote" : "Web Remote", + "term.cast" : "Транслировать", + "term.cast2" : "Трансляция на устройства", + "term.quit" : "Выход", + "term.zoomin" : "Приблизить", + "term.zoomout" : "Отдалить", + "term.zoomreset" : "Сбросить масштаб", + "term.fullscreen" : "Полный экран", + "term.nowPlaying": "Сейчас играет", + "home.syncFavorites": "Синхронизировать", + "home.syncFavorites.gettingArtists": "Получение отслеживаемых исполнителей...", + "action.favorite": "Отслеживать", + "action.removeFavorite": "Перестать отслеживать", + "action.refresh": "Обновить", "home.title": "Главная", "home.recentlyPlayed": "Недавно прослушанные", "home.recentlyAdded": "Недавно добавленные", @@ -206,6 +245,16 @@ "podcast.episodes": "Выпуски радиошоу", "podcast.playEpisode": "Воспроизвести", "podcast.website": "Веб-сайт", + "action.hideLibrary": "Скрыть библиотеку", + "action.showLibrary": "Показать библиотеку", + "action.cut": "Вырезать", + "action.paste": "Вставить", + "action.selectAll": "Выбрать всё", + "action.delete": "Удалить", + "action.edit": "Изменить", + "action.done": "Готово", + "action.submit": "Подтвердить", + "action.editTracklist": "Редактировать треклист", "action.addToLibrary": "Добавить в медиатеку", "action.addToLibrary.success": "Добавлено в медиатеку", "action.addToLibrary.error": "Ошибка Добавления в медиатику", @@ -241,7 +290,7 @@ "action.unlove": "Больше не нравится", "action.dislike": "Меньше подобных рекомендаций", "action.undoDislike": "Вернуть подобные рекомендации", - "action.showWebRemoteQR": "Веб-интерфейс", + "action.showWebRemoteQR": "Web Remote", "action.playTracksNext": "Воспроизвести ${app.selectedMediaItems.length} песен следующими", "action.playTracksLater": "Воспроизвести ${app.selectedMediaItems.length} песен позже", "action.removeTracks": "Удалить ${self.selectedItems.length} песен из очереди", @@ -249,13 +298,15 @@ "action.export": "Экспорт", "action.showAlbum": "Показать весь альбом", "action.tray.minimize": "Свернуть в трей", - "action.tray.quit": "Выйти", + "action.tray.show": "Показать Cider", + "action.tray.listento": "Listen To:", "action.update": "Обновить", "action.install": "Установить", "action.copy": "Скопировать", "action.newpreset": "Новый пресет...", "action.deletepreset": "Удалить пресет", "action.open": "Открыть", + "action.close": "Закрыть", "action.relaunch.confirm": "Вы хотите перезапустить Cider?", "action.cast.chromecast": "Chromecast", "action.cast.todevices": "Транслировать на устройства", @@ -266,6 +317,27 @@ "action.cast.scanning": "Поиск...", "action.createNew": "Создать новый...", "action.openArtworkInBrowser": "Открыть обложку в браузере", + "action.scrollToTop": "Scroll to top", + "menubar.options.view": "View", + "menubar.options.reload": "Перезагрузить", + "menubar.options.forcereload": "Жесткая перезагрузка", + "menubar.options.toggledevtools": "Toggle Developer Tools", + "menubar.options.window": "Window", + "menubar.options.minimize": "Minimize", + "menubar.options.plugins": "Меню плагинов", + "menubar.options.controls": "Управление", + "menubar.options.volumeup": "Громче", + "menubar.options.volumedown": "Тише", + "menubar.options.account": "Аккаунт", + "menubar.options.signout": "Выйти из аккаунта", + "menubar.options.support": "Поддержать", + "menubar.options.report": "Сообщить о...", + "menubar.options.bug": "Баг", + "menubar.options.feature": "Feature Request", + "menubar.options.trans": "Translation Report/Request", + "menubar.options.license": "Просмотреть лицензию", + "menubar.options.conf": "Открыть файл конфигурации в редакторе", + "menubar.options.zoom": "Zoom", "settings.header.general": "Общие", "settings.header.general.description": "Настройка общих параметров Cider.", "settings.option.general.language": "Язык", @@ -275,18 +347,52 @@ "settings.option.general.resumebehavior.locally.description": "Cider возобновит ваш последний сеанс на этом компьютере.", "settings.option.general.resumebehavior.history": "История", "settings.option.general.resumebehavior.history.description": "Cider поставит в очередь последнюю песню из вашей общей истории Apple Music на разных устройствах.", + "settings.option.general.resumetabs" : "Раздел при запуске", + "settings.option.general.resumetabs.description" : "Вы можете выбрать, какой раздел будет открыться при запуске Cider.", + "settings.option.general.resumetabs.dynamic" : "Динамически", + "settings.option.general.resumetabs.dynamic.description" : "Cider откроет последний использованный раздел.", "settings.option.general.language.main": "Языки", "settings.option.general.language.fun": "Забавные языки", "settings.option.general.language.unsorted": "Неотсортированные", "settings.option.general.customizeSidebar": "Настроить элементы боковой панели", "settings.option.general.customizeSidebar.customize": "Настроить", + "settings.option.general.keybindings": "Сочетания клавиш", + "settings.option.general.keybindings.library": "Библиотека", + "settings.option.general.keybindings.session": "Сессия", + "settings.option.general.keybindings.control": "Элементы управления", + "settings.option.general.keybindings.interface": "Интерфейс", + "settings.option.general.keybindings.advanced": "Расширенные", + "settings.option.general.keybindings.pressCombination": "Нажмите комбинацию двух клавиш, чтобы обновить привязку клавиш.", + "settings.option.general.keybindings.pressEscape": "Нажмите клавишу Escape, чтобы вернуться.", + "settings.notyf.general.keybindings.update.success": "Комбинация клавиш успешно обновлена", + "settings.prompt.general.keybindings.update.success": "Комбинация клавиш успешно обновлена. Нажмите OK, чтобы перезапустить Cider", + "settings.option.general.themeUpdateNotification": "Автоматически проверять наличие обновлений темы", + "settings.option.general.showLovedTracksInline": "Показывать любимые треки в строке", + "settings.description.search": "Поиск", + "settings.description.albums": "Альбомы медиатеки", + "settings.description.artists": "Артисты", + "settings.description.browse": "Обзор", + "settings.description.private": "Переключить частную сессию", + "settings.description.remote": "Web Remote", + "settings.description.audio": "Настройки аудио", + "settings.description.plugins": "Меню плагинов", + "settings.description.cast": "Трансляция на устройства", + "settings.description.settings": "Настройки", + "settings.description.developer": "Инструменты разработчика", + "settings.description.listnow": "Сейчас играет", + "settings.description.recentAdd": "Недавно добавлено", + "settings.description.songs": "Песни", "settings.notyf.updateCider.update-not-available": "Нет доступных обновлений", "settings.notyf.updateCider.update-downloaded": "Обновление загружено, перезапустите, чтобы обновить", "settings.notyf.updateCider.update-timeout": "Время ожидания обновления истекло", "settings.header.audio": "Звук", "settings.header.audio.description": "Настройка звука Cider.", "settings.option.audio.volumeStep": "Шаг громкости", + "settings.option.audio.advanced": "Расширенные настройки громкости", "settings.option.audio.maxVolume": "Максимальная громкость", + "settings.option.audio.changePlaybackRate": "Изменить скорость воспроизведения", + "settings.option.audio.playbackRate": "Скорость воспроизведения", + "settings.option.audio.playbackRate.change": "Изменить", "settings.option.audio.quality": "Качество звука", "settings.header.audio.quality.hireslossless": "Высокое разрешение, без потерь", "settings.header.audio.quality.hireslossless.description": "ALAC до 24 бит/192 кГц", @@ -295,27 +401,46 @@ "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.header.audio.quality.standard.description": "64 кб/с", "settings.option.audio.seamlessTransition": "Плавный переход между песнями", "settings.option.audio.enableAdvancedFunctionality": "Включить расширенный функционал", "settings.option.audio.enableAdvancedFunctionality.description": "Включение функции AudioContext позволит использовать расширенные функции звука, такие как нормализация звука, эквалайзеры и визуализаторы, однако в некоторых системах это может вызвать заикание звука.", "settings.warn.audio.enableAdvancedFunctionality.lowcores": "Cider считает, что ваш компьютер не справится с этими функциями. Вы уверены что хотите продолжить?", "settings.option.audio.audioLab": "Cider Audio Lab", "settings.option.audio.audioLab.description": "Ассортимент звуковых обработок собственной разработки для Cider.", + "settings.option.audio.audioLab.subheader": "Разработано Cider Acoustic Technologies в Калифорнии", "settings.warn.audioLab.withoutAF": "AudioContext (Расширенный функционал) требуется для включения Cider Audio Laboratory.", + "settings.warn.enableAdvancedFunctionality": "Для включения этой функции требуется 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.atmosphereRealizer": "Cider Atmosphere Realizer™️", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizer.description": "Реализует другую музыкальную атмосферу, созданную по образцу современных аудиосистем.", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode": "Режим работы Cider Atmosphere Realizer™️", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.description": "Изменяет режим работы Atmosphere Realizer.", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_STANDARD": "Hōjicha Cheese Foam Tea", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_PLUS": "Genmaicha Tapioca Milk Tea", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.E68_1": "Rock Salt Cheese Foam Tea", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.E68_2": "Uji Matcha Milk Tea", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.E168_1": "Jasmine Macchiato", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z3600": "Hokkaido Milk Tea", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z8500A": "Moonlight Softcake", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.BSCBM": "Brown Sugar Creme Brûlée Milk", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z8500B": "Clafoutis aux Cerises", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z8500C": "Uji Matcha Mochi", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.CUDDLE": "Cuddle Warmth", "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️", "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Улучшает воспринимаемое качество звука AAC 256 кбит/с за счет использования алгоритма реального времени, использующего как психоакустические модели человеческого слуха, так и характеристики кодирования AAC.", "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.ciderPPEStrength.adaptive": "Адаптивный", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.legacy": "Legacy", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Агрессивный", "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Нормализация звука", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Нормализует пиковую громкость для отдельных треков, чтобы создать более однородное впечатление от прослушивания.", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.disabled": "Управляется Audio Lab", @@ -324,8 +449,18 @@ "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.soundstage": "Звуковая сцена", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.separation": "Separation", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.minimal": "Минимальный", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile": "Аудиофил", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.diffused": "Рассеянный", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.bplk": "Encore", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.hw2k": "Expanded Encore", "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "Пространственная обработка несовместима с CAP. Пожалуйста, отключите CAP, чтобы продолжить.", + "settings.option.audio.dbspl.display": "Отображение dB SPL", + "settings.option.audio.dbspl.description": "(Только для опытных пользователей) Отображение dB SPL вместо dBFS на ползунке громкости.", + "settings.option.audio.dbfs.calibration": "0 dBFS Калибровка", + "settings.option.audio.dbfs.description": "Введите пиковый Z-взвешенный уровень звукового давления в дБ, когда Cider находится на уровне 0 дБ полной шкалы.", "settings.header.visual": "Внешний вид", "settings.header.visual.description": "Настройка внешнего вида Cider.", "settings.option.visual.windowStyle": "Стиль окна", @@ -351,10 +486,19 @@ "settings.option.visual.uiscale": "Размер интерфейса", "settings.header.visual.theme": "Тема", "settings.option.visual.theme.github.download": "Установить с GitHub", + "settings.option.visual.theme.github.openfolder": "Открыть папку с темами", "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.prompt.visual.theme.uninstallTheme": "Вы уверены, что хотите удалить {{ theme }}?", + "settings.option.visual.theme.checkForUpdates": "Проверить наличие обновлений", + "settings.header.visual.styles": "Стили", + "settings.option.visual.theme.manageStyles": "Управление стилями", + "settings.option.visual.theme.uninstall": "Удалить", + "settings.option.visual.theme.viewInfo": "Просмотреть информацию", + "settings.option.visual.theme.github.available": "Доступные", + "settings.option.visual.theme.github.applied": "Применённые", "settings.notyf.visual.theme.install.success": "Тема успешно установлена", "settings.notyf.visual.theme.install.error": "Не удалось установить тему", "settings.header.visual.plugin": "Плагин", @@ -383,17 +527,30 @@ "settings.option.lyrics.enableMusixmatchKaraoke": "Включить режим караоке (только с Musixmatch)", "settings.option.lyrics.musixmatchPreferredLanguage": "Предпочтительный язык перевода Musixmatch", "settings.option.lyrics.enableYoutubeLyrics": "Включить Youtube Lyrics для музыкальных клипов", + "settings.option.lyrics.enableQQLyrics": "Получать текст песен из QQ Lyrics", "settings.header.connectivity": "Прочее", "settings.header.connectivity.description": "Настройка прочих параметров Cider.", - "settings.option.connectivity.discordRPC": "Discord Rich Presence", "settings.option.connectivity.playbackNotifications": "Уведомления о воспроизведении", + "settings.option.connectivity.discordRPC": "Discord Rich Presence", + "settings.option.connectivity.discordRPC.clientName": "Название клиента", "settings.option.connectivity.discordRPC.clearOnPause": "Отключать Discord Rich Presence на паузе", "settings.option.connectivity.discordRPC.hideButtons": "Скрыть кнопки в Discord Rich Presence", + "settings.option.connectivity.discordRPC.hideTimestamp": "Скрыть отметку времени в Discord Rich Presence", + "settings.option.connectivity.discordRPC.detailsFormat": "Формат деталей", + "settings.option.connectivity.discordRPC.stateFormat": "Формат состояния", + "settings.option.connectivity.discordRPC.reload": "Перезагрузить DiscordRPC", + "settings.option.connectivity.discordRPC.reconnectedToUser": "DiscordRPC переподключен к пользователю: {{user}} ({{userid}})", "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.option.connectivity.lastfmScrobble.filterLoop.description": "Предотвращение скробблинга или отображения зацикленных треков в списке «Сейчас исполняется» на Last.fm.", + "settings.option.connectivity.lastfmScrobble.filterTypes": "Фильтровать медиа типы (Last.fm)", + "settings.option.connectivity.lastfmScrobble.manualToken": "Ввести токен Last.fm вручную", + "settings.notyf.connectivity.lastfmScrobble.connectError": "Last.fm Время соединения истекло", + "settings.notyf.connectivity.lastfmScrobble.connectSuccess": "Last.fm Соединение успешно", + "settings.notyf.connectivity.lastfmScrobble.connecting": "Подключение к Last.fm...", "settings.header.debug": "Debug", "settings.option.debug.copy_log": "Копировать логи в буфер обмена", "settings.option.debug.openAppData": "Открыть папку Cider", @@ -405,12 +562,21 @@ "settings.option.experimental.unknownPlugin.description": "Разрешить установку плагинов из репозиториев, отличных от репозитория плагинов Cider", "settings.option.experimental.compactUI": "Компактный интерфейс", "settings.option.window.close_button_hide": "Кнопка «Закрыть» скрывает приложение", + "settings.option.window.maxElementScale": "Максимальный масштаб элемента", "settings.option.experimental.inline_playlists": "Встроенные плейлисты и альбомы", "settings.option.advanced.playlistTrackMapping": "Сканирование песен в плейлистах", "settings.option.advanced.playlistTrackMapping.description": "Включает глубокое сканирование плейлистов, чтобы определить, какие треки находятся в каких плейлистах. Время сборки кеша плейлиста может значительно увеличиться.", "settings.option.visual.transparent": "Прозрачность", "settings.option.visual.transparent.description": "Прозрачность окна (требуется поддержка Тем, требуется перезапуск)", + "settings.option.visual.customAccentColor": "Пользовательский основной цвет", + "settings.option.visual.accentColor": "Основной цвет", + "settings.option.visual.purplePodcastPlaybackBar": "Фиолетовая полоса воспроизведения для подкастов", + "settings.option.visual.windowColor": "Цветовой оттенок", + "settings.header.visual.windowBackgroundStyle.color": "Цвет", "settings.header.advanced": "Расширенные", + "settings.header.connect": "Sync", + "settings.option.connect.link_account": "Enable Sync with Cider Connect", + "settings.option.connect.link_account.description": "Linking your Discord account with Cider Connect allows you to store userdata including Settings, EQ's, and eventually more once finished. (Work In Progress)", "spatial.notTurnedOn": "Пространственное аудио отключено. Чтобы использовать, сначала включите его.", "spatial.spatialProperties": "Настройка пространственного аудио", "spatial.width": "Ширина", @@ -443,5 +609,44 @@ "share.platform.email": "Email", "share.platform.songLink": "Скопировать с song.link", "share.platform.clipboard": "Скопировать ссылку", - "about.thanks": "Большое спасибо команде Cider Collective и всем нашим вкладчикам." + "about.thanks": "Большое спасибо команде Cider Collective и всем нашим вкладчикам.", + "oobe.yes": "Да", + "oobe.no": "Нет", + "oobe.next": "Следующий", + "oobe.previous": "Предыдущий", + "oobe.done": "Готово", + "oobe.amupsell.title": "Прежде чем мы начнем", + "oobe.amupsell.text": "Для Cider требуется действующая платная подписка на Apple Music\nCider не будет работать с тарифным планом Apple Music Voice или некоторыми рекламными пробными подписками. Если у вас уже есть соответствующая подписка Apple Music, нажмите «Далее», чтобы продолжить.", + "oobe.amupsell.subscribeBtn": "Подпишитесь на Apple Music", + "oobe.amupsell.explainBtn": "Объяснять", + "oobe.amupsell.subscribeUrl": "https://apple.co/3MdqJVQ", + "oobe.amupsell.amWebUrl": "https://beta.music.apple.com/", + "oobe.amupsell.promoExplained": "Некоторые рекламные и пробные подписки на Apple Music за пределами США не имеют доступа к необходимым API-интерфейсам Apple Music Web Player, необходимым для работы Cider. Чтобы проверить, будет ли ваша действующая пробная версия работать с Cider, перейдите на страницу {{ amWebUrl }}, войдите в систему и попробуйте включить музыку. Если это работает, отлично! Однако вы готовы использовать Cider, если он не рассматривает возможность подписки на Apple Music здесь: {{ subscribeUrl }}", + "oobe.intro.title": "Добро пожаловать в Cider", + "oobe.intro.subtitle": "", + "oobe.intro.text": "Давайте настроим кое-что, чтобы вы могли использовать Cider, как хотите. Вы всегда можете изменить эти настройки позже.", + "oobe.general.title": "Основные", + "oobe.general.subtitle": "", + "oobe.general.text": "", + "oobe.audio.title": "Аудио", + "oobe.audio.subtitle": "", + "oobe.audio.text": "В Cider используется специально настроенный и разработанный звуковой стек, который обеспечивает богатое высококачественное звучание.\nВключая Cider Adrenaline, Atmosphere Realizer и Spatialized Audio.\nДля включения этой функции необходимо включить \"Расширенные функции звука\".\nВключение расширенного звука Функциональность даст вам доступ к этим улучшениям в Cider Audio Labs, которые можно найти в настройках приложения.", + "oobe.audio.advancedFunctionality": "", + "oobe.visual.title": "Visual", + "oobe.visual.subtitle": "", + "oobe.visual.text": "", + "oobe.visual.layout.text": "В Cider есть два разных макета окна.\nMaverick – это макет, похожий на iTunes, с проигрывателем в верхней части окна.\nMojave – это новый вариант, созданный Cider Collective.\n\nВы можете изменить макет в любое время в настройках.", + "oobe.visual.suggestingThemes": "Темы — отличный способ персонализировать ваш опыт. Вот некоторые из них, которые мы предлагаем: ", + "oobe.visual.suggestingThemes.subtext": "(Эти темы будут загружены с GitHub)", + "oobe.visual.suggestingThemes.default": "Cider", + "oobe.visual.suggestingThemes.default.text": "Классическая тема Cider.", + "oobe.visual.suggestingThemes.dark": "Dark", + "oobe.visual.suggestingThemes.dark.text": "Darkness.", + "oobe.visual.suggestingThemes.community1": "Groovy", + "oobe.visual.suggestingThemes.community1.text": "Тема под влиянием WinUI", + "oobe.visual.suggestingThemes.community2": "iTheme", + "oobe.visual.suggestingThemes.community2.text": "The classic big fruit layout.", + "oobe.visual.suggestingThemes.community3": "Dracula", + "oobe.visual.suggestingThemes.community3.text": "Культовая цветовая гамма Дракулы.", + "oobe.amsignin.title": "" } diff --git a/src/i18n/source/en_US.json b/src/i18n/source/en_US.json index e202b0bf..ba797af7 100644 --- a/src/i18n/source/en_US.json +++ b/src/i18n/source/en_US.json @@ -22,7 +22,6 @@ "term.logout": "Logout", "term.login": "Log In", "term.quickNav": "Quick Nav", - "term.cast": "Cast", "term.about": "About", "term.privateSession": "Private Session", "term.disablePrivateSession": "Disable Private Session", @@ -32,6 +31,12 @@ "term.miniplayer": "MiniPlayer", "term.history": "History", "term.search": "Search", + "term.scroll": "Scroll Mode", + "term.scroll.infinite": "Infinite", + "term.scroll.paged": "${songsPerPage} per page", + "term.live": "LIVE", + "term.showSearch": "Show search bar", + "term.hideSearch": "Hide search bar", "term.library": "Library", "term.listenNow": "Listen Now", "term.browse": "Browse", @@ -42,6 +47,7 @@ "term.artists": "Artists", "term.podcasts": "Podcasts", "term.playlists": "Playlists", + "term.charts": "Charts", "term.playlist": "Playlist", "term.newPlaylist": "New Playlist", "term.newPlaylistFolder": "New Playlist Folder", @@ -51,6 +57,7 @@ "term.navigateBack": "Navigate back", "term.navigateForward": "Navigate forward", "term.play": "Play", + "term.playpause": "Play/Pause", "term.pause": "Pause", "term.stop": "Stop", "term.previous": "Previous", @@ -135,7 +142,7 @@ "term.amLive": "Apple Music Live", "term.language": "Language", "term.funLanguages": "Fun", - "term.noLyrics": "Loading... / Lyrics not found./ Instrumental.", + "term.noLyrics": "Instrumental Track / No Lyrics.", "term.copyright": "Copyright", "term.rightsReserved": "All Rights Reserved.", "term.sponsor": "Sponsor this project", @@ -153,6 +160,7 @@ }, "term.videos": "Videos", "term.menu": "Menu", + "term.themeManaged": "Managed by a theme", "term.check": "Check", "term.aboutArtist": "About {{artistName}}", "term.topResult": "Top Result", @@ -176,8 +184,9 @@ "term.top": "Top", "term.version": "Version", "term.noVideos": "No videos found.", - "term.plugin": "Plug-in", - "term.pluginMenu": "Plug-in Menu", + "term.plugins": "Plugins", + "term.plugin": "Plugin", + "term.pluginMenu": "Plugins Menu", "term.pluginMenu.none": "No interactive plugins", "term.replay": "Replay", "term.uniqueAlbums": "Unique Albums", @@ -192,6 +201,22 @@ "term.confirmLogout": "Are you sure you want to logout?", "term.creditDesignedBy": "Designed by ${authorUsername}", "term.discNumber": "Disc ${discNumber}", + "term.reload" : "Reload Cider?", + "term.toggleprivate" : "Toggle Private Session", + "term.webremote" : "Web Remote", + "term.cast" : "Cast", + "term.cast2" : "Cast to Devices", + "term.quit" : "Quit", + "term.zoomin" : "Zoom In", + "term.zoomout" : "Zoom Out", + "term.zoomreset" : "Reset Zoom", + "term.fullscreen" : "Fullscreen", + "term.nowPlaying": "Now Playing", + "home.syncFavorites": "Sync Favorites", + "home.syncFavorites.gettingArtists": "Getting Favorited Artists...", + "action.favorite": "Favorite", + "action.removeFavorite": "Remove Favorite", + "action.refresh": "Refresh", "home.title": "Home", "home.recentlyPlayed": "Recently Played", "home.recentlyAdded": "Recently Added", @@ -220,6 +245,7 @@ "action.delete": "Delete", "action.edit": "Edit", "action.done": "Done", + "action.submit": "Submit", "action.editTracklist": "Edit Tracklist", "action.addToLibrary": "Add to Library", "action.addToLibrary.success": "Added to Library", @@ -264,11 +290,7 @@ "action.export": "Export", "action.showAlbum": "Show Complete Album", "action.tray.minimize": "Minimize to Tray", - "action.tray.quit": "Quit", "action.tray.show": "Show Cider", - "action.tray.playpause": "Play/Pause", - "action.tray.next": "Next", - "action.tray.previous": "Previous", "action.tray.listento": "Listen To:", "action.update": "Update", "action.install": "Install", @@ -288,45 +310,26 @@ "action.createNew": "Create New...", "action.openArtworkInBrowser": "Open artwork in browser", "action.scrollToTop": "Scroll to top", - "menubar.options.about": "About", - "menubar.options.settings": "Settings", - "menubar.options.quit": "Quit Cider", - "menubar.options.view": "View ", + "menubar.options.view": "View", "menubar.options.reload": "Reload", "menubar.options.forcereload": "Force Reload", "menubar.options.toggledevtools": "Toggle Developer Tools", "menubar.options.window": "Window", "menubar.options.minimize": "Minimize", - "menubar.options.toggleprivate": "Toggle Private Session", - "menubar.options.webremote": "Web Remote", - "menubar.options.audio": "Audio Settings", "menubar.options.plugins": "Plu-gins Menu", "menubar.options.controls": "Controls", - "menubar.options.next": "Next", - "menubar.options.playpause": "Play/Pause", - "menubar.options.previous": "Previous", "menubar.options.volumeup": "Volume Up", "menubar.options.volumedown": "Volume Down", - "menubar.options.browse": "Browse", - "menubar.options.artists": "Artists", - "menubar.options.search": "Search", - "menubar.options.albums": "Albums", - "menubar.options.cast": "Cast To Devices", "menubar.options.account": "Account", - "menubar.options.accountsettings": "Account Settings", "menubar.options.signout": "Sign Out", "menubar.options.support": "Support", - "menubar.options.discord": "Discord", - "menubar.options.github": "GitHub Wiki", "menubar.options.report": "Report a...", "menubar.options.bug": "Bug", "menubar.options.feature": "Feature Request", "menubar.options.trans": "Translation Report/Request", "menubar.options.license": "View License", "menubar.options.conf": "Open Configuration File in Editor", - "menubar.options.listennow": "Listen Now", - "menubar.options.recentlyAdded": "Recently Added", - "menubar.options.songs": "Songs", + "menubar.options.zoom": "Zoom", "settings.header.general": "General", "settings.header.general.description": "Adjust the general settings for Cider.", "settings.option.general.language": "Language", @@ -346,11 +349,15 @@ "settings.option.general.customizeSidebar": "Customize Sidebar Items", "settings.option.general.customizeSidebar.customize": "Customize", "settings.option.general.keybindings": "Keybindings", + "settings.option.general.keybindings.library": "Library", + "settings.option.general.keybindings.session": "Session", + "settings.option.general.keybindings.control": "Controls", + "settings.option.general.keybindings.interface": "Interface", + "settings.option.general.keybindings.advanced": "Advanced", "settings.option.general.keybindings.pressCombination": "Press a combination of two keys to update keybind.", "settings.option.general.keybindings.pressEscape": "Press Escape key to go back.", "settings.notyf.general.keybindings.update.success": "Keybind updated successfully", "settings.prompt.general.keybindings.update.success": "Keybind updated successfully. Press OK to relaunch Cider", - "settings.option.general.keybindings.open": "Open", "settings.option.general.themeUpdateNotification": "Automatically check for theme updates", "settings.option.general.showLovedTracksInline": "Show loved tracks inline", "settings.description.search": "Search", @@ -414,6 +421,8 @@ "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z3600": "Hokkaido Milk Tea", "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z8500A": "Moonlight Softcake", "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.BSCBM": "Brown Sugar Creme Brûlée Milk", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z8500B": "Clafoutis aux Cerises", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z8500C": "Uji Matcha Mochi", "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.CUDDLE": "Cuddle Warmth", "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️", "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Enhances the perceived audio quality of AAC encoded audio by using a real-time algorithm that takes advantage of both psychoacoustic models of human hearing and AAC encoding characteristics.", @@ -476,6 +485,7 @@ "settings.prompt.visual.theme.github.URL": "Enter the URL of the theme you want to install", "settings.prompt.visual.theme.uninstallTheme": "Are you sure you want to uninstall {{ theme }}?", "settings.option.visual.theme.checkForUpdates": "Check for updates", + "settings.header.visual.styles": "Styles", "settings.option.visual.theme.manageStyles": "Manage Styles", "settings.option.visual.theme.uninstall": "Uninstall", "settings.option.visual.theme.viewInfo": "View Info", @@ -527,6 +537,12 @@ "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.option.connectivity.lastfmScrobble.filterLoop.description": "Prevent looped tracks from being scrobbled or displayed in the Now Playing list on Last.fm.", + "settings.option.connectivity.lastfmScrobble.filterTypes": "Filter Media Types (Last.fm)", + "settings.option.connectivity.lastfmScrobble.manualToken": "Enter Last.fm Token Manually", + "settings.notyf.connectivity.lastfmScrobble.connectError": "Last.fm Connection Timed Out", + "settings.notyf.connectivity.lastfmScrobble.connectSuccess": "Last.fm Connection Successful", + "settings.notyf.connectivity.lastfmScrobble.connecting": "Connecting to Last.fm...", "settings.header.debug": "Debug", "settings.option.debug.copy_log": "Copy logs to clipboard", "settings.option.debug.openAppData": "Open Cider Folder", @@ -538,11 +554,18 @@ "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.window.maxElementScale": "Maximum Element Scale", "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": "needs Theme Support, requires relaunch", + "settings.option.visual.customAccentColor": "Custom Accent Color", + "settings.option.visual.accentColor": "Accent Color", + "settings.option.visual.purplePodcastPlaybackBar": "Purple Playback Bar for Podcasts", + "settings.option.visual.compactArtistHeader": "Compact Artist Header", + "settings.option.visual.windowColor": "Window Tint Color", + "settings.header.visual.windowBackgroundStyle.color": "Color Tint", "settings.header.advanced": "Advanced", "settings.header.connect": "Sync", "settings.option.connect.link_account": "Enable Sync with Cider Connect", @@ -619,4 +642,4 @@ "oobe.visual.suggestingThemes.community3": "Dracula", "oobe.visual.suggestingThemes.community3.text": "The iconic Dracula color scheme.", "oobe.amsignin.title": "" -} +} \ No newline at end of file diff --git a/src/i18n/zh_CN.json b/src/i18n/zh_CN.json index 493a6395..100546db 100644 --- a/src/i18n/zh_CN.json +++ b/src/i18n/zh_CN.json @@ -2,7 +2,7 @@ "i18n.languageName": "简体中文(中国)", "i18n.languageNameEnglish": "Simp. Chinese (China)", "i18n.category": "main", - "i18n.authors": "@notmaikiwi @BillKerman @jay900604", + "i18n.authors": "@notmaikiwi @BillKerman @jay900604 @sakura0224", "app.name": "Cider", "date.format": "${y}年${m}月${d}日", "dialog.cancel": "取消", @@ -10,6 +10,7 @@ "notification.updatingLibrarySongs": "正在更新歌曲资料库...", "notification.updatingLibraryAlbums": "正在更新专辑资料库...", "notification.updatingLibraryArtists": "正在更新艺人资料库...", + "term.variables": "Variables", "term.appleInc": "Apple Inc.", "term.appleMusic": "Apple Music", "term.applePodcasts": "Apple Podcasts", @@ -20,13 +21,22 @@ "term.accountSettings": "账户设置", "term.logout": "退出登录", "term.login": "登录", + "term.quickNav": "快速导航", "term.about": "关于", - "term.privateSession": "私人聆听", - "term.lyrics": "歌词", + "term.privateSession": "隐身聆听", + "term.disablePrivateSession": "停止隐身聆听", "term.queue": "待播清单", - "term.history": "历史记录", + "term.autoplay": "自动播放", + "term.lyrics": "歌词", "term.miniplayer": "迷你播放器", + "term.history": "历史记录", "term.search": "搜索", + "term.scroll": "滚动模式", + "term.scroll.infinite": "无限制", + "term.scroll.paged": "每页${songsPerPage}首", + "term.live": "LIVE", + "term.showSearch": "显示搜索栏", + "term.hideSearch": "隐藏搜索栏", "term.library": "资料库", "term.listenNow": "现在就听", "term.browse": "浏览", @@ -37,23 +47,33 @@ "term.artists": "艺人", "term.podcasts": "播客", "term.playlists": "播放列表", + "term.charts": "排行榜", "term.playlist": "播放列表", "term.newPlaylist": "新播放列表", "term.newPlaylistFolder": "新播放列表文件夹", "term.createNewPlaylist": "新建播放列表", "term.createNewPlaylistFolder": "新建播放列表文件夹", "term.deletePlaylist": "您确定要删除该播放列表吗?", + "term.navigateBack": "上一页", + "term.navigateForward": "下一页", "term.play": "播放", + "term.playpause": "播放/暂停", "term.pause": "暂停", + "term.stop": "停止", "term.previous": "上一首", "term.next": "下一首", "term.shuffle": "随机播放", - "term.repeat": "重复播放", + "term.enableShuffle": "开启随机播放", + "term.disableShuffle": "关闭随机播放", + "term.repeat": "循环播放", + "term.enableRepeatOne": "开启单曲循环", + "term.disableRepeatOne": "关闭单曲循环", + "term.disableRepeat": "关闭循环播放", "term.volume": "音量", "term.mute": "静音", "term.unmute": "解除静音", "term.share": "分享", - "term.share.success": "已拷貝到剪贴板", + "term.share.success": "已拷贝到剪贴板", "term.settings": "设置", "term.seeAll": "查看全部", "term.sortBy": "排序", @@ -63,12 +83,14 @@ "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.dynamic": "动态", "term.size": "大小", "term.size.normal": "正常", "term.size.compact": "紧凑", @@ -90,6 +112,8 @@ "term.time.added": "添加于", "term.time.released": "发行于", "term.time.updated": "更新于", + "term.time.days": "天", + "term.time.day": "天", "term.time.hours": "小时", "term.time.hour": "小时", "term.time.minutes": "分钟", @@ -101,7 +125,9 @@ "term.audioControls": "音频控制", "term.audioSettings": "音频设置", "term.clearAll": "清空", - "term.recentStations": "最近播放的频道", + "term.recentStations": "最近播放的广播", + "term.personalStations": "最近播放的个人广播", + "term.amLive": "Apple Music Live", "term.language": "语言", "term.funLanguages": "恶搞", "term.noLyrics": "加载中... / 无搜索结果 / 纯音乐", @@ -115,13 +141,11 @@ "term.contributors": "贡献者", "term.equalizer": "均衡器", "term.reset": "重置", - "term.track": { - "one": "首歌曲", - "other": "首歌曲" - }, "term.tracks": "歌曲", + "term.track": "首歌曲", "term.videos": "音乐视频", "term.menu": "菜单", + "term.themeManaged": "由主题所管理", "term.check": "检查", "term.aboutArtist": "关于{{artistName}}", "term.topResult": "热门搜索结果", @@ -137,13 +161,47 @@ "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.plugins": "插件", "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": "你确定要退出登录吗?", + "term.creditDesignedBy": "由 ${authorUsername} 设计", + "term.discNumber": "碟 ${discNumber}", + "term.reload" : "重新载入 Cider?", + "term.toggleprivate": "切换隐身聆听", + "term.webremote": "远程控制", + "term.cast": "投射", + "term.cast2" : "投射到设备", + "term.quit" : "退出应用", + "term.zoomin" : "放大", + "term.zoomout" : "缩小", + "term.zoomreset" : "重置缩放", + "term.fullscreen" : "全屏模式", + "term.nowPlaying": "正在播放", + "home.syncFavorites": "同步喜爱艺人", + "home.syncFavorites.gettingArtists": "获取喜爱艺人...", + "action.favorite": "喜爱", + "action.removeFavorite": "取消喜爱", + "action.refresh": "刷新", "home.title": "主页", "home.recentlyPlayed": "最近播放", "home.recentlyAdded": "最近添加", @@ -164,8 +222,15 @@ "podcast.episodes": "单集", "podcast.playEpisode": "播放单集", "podcast.website": "Podcast 网站", + "action.hideLibrary": "隐藏资料库", + "action.showLibrary": "显示资料库", + "action.cut": "剪切", + "action.paste": "粘贴", + "action.selectAll": "全选", + "action.delete": "删除", "action.edit": "编辑", "action.done": "完成", + "action.submit": "提交", "action.editTracklist": "编辑歌曲清单", "action.addToLibrary": "加入资料库", "action.addToLibrary.success": "成功加入资料库", @@ -181,7 +246,7 @@ "action.createPlaylist": "新建播放列表", "action.addToPlaylist": "添加到播放列表", "action.removeFromPlaylist": "从播放列表移除", - "action.addToFavorites": "加至收藏", + "action.addToFavorites": "添加至收藏", "action.follow": "关注", "action.follow.success": "已关注", "action.follow.error": "尝试关注的过程发生了错误", @@ -193,7 +258,8 @@ "action.startRadio": "开始电台", "action.goToArtist": "前往艺人", "action.goToAlbum": "前往专辑", - "action.showInAppleMusic": "显示于 Apple Music", + "action.showInPlaylist": "在播放列表中显示", + "action.showInAppleMusic": "在 Apple Music 中显示", "action.moveToTop": "移到顶部", "action.share": "分享歌曲", "action.rename": "重命名", @@ -209,24 +275,49 @@ "action.export": "导出", "action.showAlbum": "显示专辑", "action.tray.minimize": "最小化", - "action.tray.quit": "退出", + "action.tray.show": "显示 Cider", + "action.tray.listento": "Listen To:", "action.update": "更新", + "action.install": "安装", "action.copy": "复制", "action.newpreset": "新建默认...", "action.deletepreset": "删除默认", "action.open": "打开", + "action.close": "关闭", + "action.relaunch.confirm": "你想重新启动 Cider 吗?", "action.cast.chromecast": "Chromecast", "action.cast.todevices": "投射到设备", "action.cast.stop": "停止投射到所有设备", - "action.cast.airplay": "AirPlay", - "action.cast.airplay.underdevelopment": "AirPlay 仍处于开发阶段中,敬请期待。", + "action.cast.airplay": "隔空播放", + "action.cast.airplay.underdevelopment": "隔空播放仍处于开发阶段中,敬请期待。", "action.cast.scan": "搜索", "action.cast.scanning": "搜索中...", "action.createNew": "添加...", + "action.openArtworkInBrowser": "在浏览器中打开专辑封面", + "action.scrollToTop": "回到顶部", + "menubar.options.view": "查看 ", + "menubar.options.reload": "重新载入", + "menubar.options.forcereload": "强制重新载入", + "menubar.options.toggledevtools": "切换开发人员工具", + "menubar.options.window": "窗口", + "menubar.options.minimize": "最小化", + "menubar.options.plugins": "插件目录", + "menubar.options.controls": "控制", + "menubar.options.volumeup": "增大音量", + "menubar.options.volumedown": "减小音量", + "menubar.options.account": "账户", + "menubar.options.signout": "注销", + "menubar.options.support": "支持", + "menubar.options.report": "报告...", + "menubar.options.bug": "Bug", + "menubar.options.feature": "功能请求", + "menubar.options.trans": "翻译报告/请求", + "menubar.options.license": "查看授权", + "menubar.options.conf": "在编辑器打开配置文件", + "menubar.options.zoom": "缩放", "settings.header.general": "通用", "settings.header.general.description": "调整 Cider 的通用设置", - "settings.option.audio.volumeStep": "音量改变量", - "settings.option.audio.maxVolume": "最大音量", + "settings.option.general.language": "语言", "settings.option.general.resumebehavior": "恢复行为", "settings.option.general.resumebehavior.description": "会影响你回到 Cider 应用程序时,恢复歌曲的方式。", "settings.option.general.resumebehavior.locally": "本地", @@ -237,32 +328,66 @@ "settings.option.general.resumetabs.description": "你可以选择启动 Cider 时要默认打开的页面。", "settings.option.general.resumetabs.dynamic": "动态", "settings.option.general.resumetabs.dynamic.description": "Cider 将自动打开你上次停留的页面。", - "settings.option.general.language": "语言", "settings.option.general.language.main": "语言", "settings.option.general.language.fun": "恶搞语言", "settings.option.general.language.unsorted": "未分类", "settings.option.general.customizeSidebar": "自定义侧边栏的功能", "settings.option.general.customizeSidebar.customize": "自定义", "settings.option.general.keybindings": "快捷操作键", - "settings.option.general.keybindings.open": "打开", + "settings.option.general.keybindings.library": "资料库", + "settings.option.general.keybindings.session": "聆听", + "settings.option.general.keybindings.control": "控制", + "settings.option.general.keybindings.interface": "界面", + "settings.option.general.keybindings.advanced": "高级", + "settings.option.general.keybindings.pressCombination": "按下两个键组合来更新操作设定。", + "settings.option.general.keybindings.pressEscape": "按下 Esc 键返回。", + "settings.notyf.general.keybindings.update.success": "快捷键更新成功。", + "settings.prompt.general.keybindings.update.success": "快捷键更新成功,按下 OK 重新启动 Cider。", + "settings.option.general.themeUpdateNotification": "自动检查主题更新", + "settings.option.general.showLovedTracksInline": "行内显示喜爱曲目", + "settings.description.search": "搜索", + "settings.description.albums": "资料库专辑", + "settings.description.artists": "资料库艺人", + "settings.description.browse": "浏览", + "settings.description.private": "隐身聆听", + "settings.description.remote": "远程控制", + "settings.description.audio": "音频设定", + "settings.description.plugins": "插件目录", + "settings.description.cast": "投射到装置", + "settings.description.settings": "设置", + "settings.description.developer": "开发者", + "settings.description.listnow": "现在就听", + "settings.description.recentAdd": "最近加入", + "settings.description.songs": "歌曲", "settings.notyf.updateCider.update-not-available": "没有可用的更新", "settings.notyf.updateCider.update-downloaded": "更新已成功下载,重启后进行更新", "settings.notyf.updateCider.update-timeout": "更新超时", "settings.header.audio": "音频", "settings.header.audio.description": "调整 Cider 的音频设置", + "settings.option.audio.volumeStep": "音量改变量", + "settings.option.audio.advanced": "高级功能", + "settings.option.audio.maxVolume": "最大音量", + "settings.option.audio.changePlaybackRate": "修改播放速度", + "settings.option.audio.playbackRate": "播放速度", + "settings.option.audio.playbackRate.change": "修改", "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.warn.audio.enableAdvancedFunctionality.lowcores": "您的电脑可能无法处理这些功能, 您确定要继续?", "settings.option.audio.audioLab": "Cider 音频实验室", "settings.option.audio.audioLab.description": "包含由 Cider 开发团队进行的各种音频优化功能。", + "settings.option.audio.audioLab.subheader": "Designed by Cider Acoustic Technologies in California", "settings.warn.audioLab.withoutAF": "使用 Cider 音频实验室需要打开进阶音频功能才可使用。", + "settings.warn.enableAdvancedFunctionality": "此功能需要开启高级音频功能才可使用。", "settings.option.audio.enableAdvancedFunctionality.analogWarmth": "模拟温暖", "settings.option.audio.enableAdvancedFunctionality.analogWarmth.description": "以 Korg Nutube 6P1 为蓝本的模拟温暖。", "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity": "模拟温暖强度", @@ -280,11 +405,18 @@ "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.E168_1": "春毫茉莉玛琪雅朵", "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z3600": "北海道奶茶", "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z8500A": "月光软饼干", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.BSCBM": "布蕾黑糖鲜奶", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z8500B": "樱桃克拉芙缇", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z8500C": "宇治抹茶麻糬", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.CUDDLE": "温暖抱抱", "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider 数码增强音频处理™️", "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "通过人类的听力心理学模型和 AAC 编码特色的即时算法,强化 AAC 音频的感知音频质量。", + "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.adaptive": "自适应", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.legacy": "传统", "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "增强", "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "音量平衡", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "自动将歌曲播放音量调整到相同水平,享受更舒适的聆听体验。", @@ -294,11 +426,21 @@ "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.soundstage": "声场", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.separation": "分离感", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.minimal": "微调", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile": "发烧友", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.diffused": "扩散", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.bplk": "安可", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.hw2k": "延长版安可", "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "音频空间无法与 CAP 相容,请关闭 CAP 在进行操作。", - "settings.option.visual.uiscale": "UI界面大小", + "settings.option.audio.dbspl.display": "显示 dB SPL(声压)", + "settings.option.audio.dbspl.description": "(专业用户选项) 音量滑动条显示 dB SPL 而非 dBFS。", + "settings.option.audio.dbfs.calibration": "0 dBFS 校正", + "settings.option.audio.dbfs.description": "输入当 Cider 为 0 dBFS 时的峰值 Z 加权 dB SPL。", "settings.header.visual": "外观", "settings.header.visual.description": "调整 Cider 的外观", + "settings.option.visual.windowStyle": "窗口风格", "settings.option.visual.windowBackgroundStyle": "窗口背景样式", "settings.header.visual.windowBackgroundStyle.none": "无", "settings.header.visual.windowBackgroundStyle.artwork": "专辑插图", @@ -318,10 +460,22 @@ "settings.option.visual.hardwareAcceleration.description": "需要重启 Cider 才会生效", "settings.header.visual.hardwareAcceleration.default": "默认", "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", + "settings.option.visual.uiscale": "UI界面大小", "settings.header.visual.theme": "主题", "settings.option.visual.theme.github.download": "从 GitHub 链接安装", + "settings.option.visual.theme.github.openfolder": "开启主题文件夹", "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.prompt.visual.theme.uninstallTheme": "你确定要删除 {{ theme }}", + "settings.option.visual.theme.checkForUpdates": "检查更新", + "settings.header.visual.styles": "主题", + "settings.option.visual.theme.manageStyles": "管理主题", + "settings.option.visual.theme.uninstall": "卸载", + "settings.option.visual.theme.viewInfo": "查看信息", + "settings.option.visual.theme.github.available": "可使用的主题", + "settings.option.visual.theme.github.applied": "已应用", "settings.notyf.visual.theme.install.success": "主题成功安装", "settings.notyf.visual.theme.install.error": "主题安装失败", "settings.header.visual.plugin": "插件", @@ -353,18 +507,27 @@ "settings.option.lyrics.enableQQLyrics": "启用 QQ 音乐的歌词", "settings.header.connectivity": "外部连接", "settings.header.connectivity.description": "调整 Cider 与外部应用的交互设置", - "settings.option.connectivity.discordRPC": "Discord 动态", "settings.option.connectivity.playbackNotifications": "歌曲播放通知", + "settings.option.connectivity.discordRPC": "Discord 动态", "settings.option.connectivity.discordRPC.clientName": "应用程序名称", "settings.option.connectivity.discordRPC.clearOnPause": "暂停时清除 Discord 动态", "settings.option.connectivity.discordRPC.hideButtons": "隐藏 Discord 动态上的按钮", + "settings.option.connectivity.discordRPC.hideTimestamp": "隐藏 Discord 动态上的时间戳", "settings.option.connectivity.discordRPC.detailsFormat": "详细信息格式", "settings.option.connectivity.discordRPC.stateFormat": "动态格式", + "settings.option.connectivity.discordRPC.reload": "重新加载 DiscordRPC", + "settings.option.connectivity.discordRPC.reconnectedToUser": "DiscordRPC 重新连接至用户: {{user}} ({{userid}})", "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.option.connectivity.lastfmScrobble.filterLoop.description": "防止循环单曲被记录或展示在Last.FM 的正在播放列表中。", + "settings.option.connectivity.lastfmScrobble.filterTypes": "过滤媒体类型 (Last.fm)", + "settings.option.connectivity.lastfmScrobble.manualToken": "手动输入 Last.fm 验证码", + "settings.notyf.connectivity.lastfmScrobble.connectError": "Last.fm 连接超时", + "settings.notyf.connectivity.lastfmScrobble.connectSuccess": "Last.fm 连接成功", + "settings.notyf.connectivity.lastfmScrobble.connecting": "正在连接至 Last.fm...", "settings.header.debug": "Debug", "settings.option.debug.copy_log": "拷贝日志至剪贴板", "settings.option.debug.openAppData": "打开 Cider 程序文件夹", @@ -376,12 +539,21 @@ "settings.option.experimental.unknownPlugin.description": "允许从 Cider 来源以外的 repo 安装插件", "settings.option.experimental.compactUI": "紧凑型 UI", "settings.option.window.close_button_hide": "关闭按钮将 Cider 隐藏至系统栏", + "settings.option.window.maxElementScale": "最大元素比例", "settings.option.experimental.inline_playlists": "将播放列表做为行内元素显示", "settings.option.advanced.playlistTrackMapping": "播放列表追踪映射", "settings.option.advanced.playlistTrackMapping.description": "打开对播放列表的深度扫描,以确认歌曲在哪些播放列表中。但播放列表加载时间会显著增加。", "settings.option.visual.transparent": "透明窗口框架", "settings.option.visual.transparent.description": "需主题有支持透明框架,且须重新启动才会生效。", + "settings.option.visual.customAccentColor": "自定义强调色", + "settings.option.visual.accentColor": "强调色", + "settings.option.visual.purplePodcastPlaybackBar": "播放播客时使用紫色进度条", + "settings.option.visual.windowColor": "窗口色调", + "settings.header.visual.windowBackgroundStyle.color": "色调", "settings.header.advanced": "高级", + "settings.header.connect": "同步", + "settings.option.connect.link_account": "开启 Cider Connect 同步", + "settings.option.connect.link_account.description": "将您的 Discord 帐户与 Cider Connect 关联后,您可以储存用户资料,包括设定、均衡器,并在后续版本中加入更多可同步选项。(正在更新中)", "spatial.notTurnedOn": "请在设置中开启空间音频。", "spatial.spatialProperties": "空间属性", "spatial.width": "宽度", @@ -404,5 +576,54 @@ "settings.header.unfinished": "未完成", "remote.web.title": "Cider 远程控制", "remote.web.description": "扫描以下的二维码以控制 Cider", - "about.thanks": "郑重感谢 Cider Collective 以及为这个项目提供支持的贡献者。" + "share.platform.twitter.tweet": "在 Apple Music 上聆听 {{song}}。 \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": "电子邮件", + "share.platform.songLink": "复制 song.link 链接", + "share.platform.clipboard": "复制到剪贴板", + "about.thanks": "郑重感谢 Cider Collective 以及为这个项目提供支持的贡献者。", + "oobe.yes": "好的", + "oobe.no": "不", + "oobe.next": "下一步", + "oobe.previous": "上一步", + "oobe.done": "完成", + "oobe.amupsell.title": "在我们开始之前", + "oobe.amupsell.text": "使用 Cider 需要付费的 Apple Music 订阅。\nCider 不能在 Apple Music Voice 计划或某些促销试用订阅状态下使用。 如果您已经订阅 Apple Music,请点击下一步继续。", + "oobe.amupsell.subscribeBtn": "订阅 Apple Music", + "oobe.amupsell.explainBtn": "这是什么?", + "oobe.amupsell.subscribeUrl": "https://apple.co/3MdqJVQ", + "oobe.amupsell.amWebUrl": "https://beta.music.apple.com/", + "oobe.amupsell.promoExplained": "Cider 无法获取部分促销活动与非美区 Apple Muisc 试用状态下的网络播放器API. 要验证您的试用订阅是否能够在Cider内使用, 点击{{ amWebUrl }}, 登陆后尝试播放音乐。如果能够播放,您就可以使用 Cider 了!否则请考虑订阅 Apple Music 服务: {{ subscribeUrl }}。", + "oobe.intro.title": "欢迎使用 Cider", + "oobe.intro.subtitle": "", + "oobe.intro.text": "为了按您喜欢的方式使用 Cider ,请先完成一些设置。您之后可以随时改变这些设置。", + "oobe.general.title": "通用设置", + "oobe.general.subtitle": "", + "oobe.general.text": "", + "oobe.audio.title": "音频设置", + "oobe.audio.subtitle": "", + "oobe.audio.text": "Cider 能够自定义调整和设置的音频属性,提供丰富的高品质音频体验,包括Cider Adrenaline Processor,气氛实现器和空间音频。要启用这些功能,必须启用 \"高级音频功能\"。", + "oobe.audio.advancedFunctionality": "", + "oobe.visual.title": "外观设置", + "oobe.visual.subtitle": "", + "oobe.visual.text": "", + "oobe.visual.layout.text": "Cider 拥有两种不同的窗口布局。Maverick 是一个类似 iTunes 的布局,播放器在窗口的顶部。Mojave 是由 Cider 团队设计的一种新的布局。您可以在设置中随时改变布局。", + "oobe.visual.suggestingThemes": "主题能够个性化您的播放器。以下是推荐的几个主题:", + "oobe.visual.suggestingThemes.subtext": "(主题会从 GitHub 上下载)", + "oobe.visual.suggestingThemes.default": "Cider", + "oobe.visual.suggestingThemes.default.text": "经典的 Cider 主题。", + "oobe.visual.suggestingThemes.dark": "Dark", + "oobe.visual.suggestingThemes.dark.text": "暗黑模式。", + "oobe.visual.suggestingThemes.community1": "Groovy", + "oobe.visual.suggestingThemes.community1.text": "类 WinUI 主题。", + "oobe.visual.suggestingThemes.community2": "iTheme", + "oobe.visual.suggestingThemes.community2.text": "经典的苹果风主题。", + "oobe.visual.suggestingThemes.community3": "Dracula", + "oobe.visual.suggestingThemes.community3.text": "著名的德古拉吸血鬼主题。", + "oobe.amsignin.title": "" } diff --git a/src/i18n/zh_TW.json b/src/i18n/zh_TW.json index 745bb613..6d30e581 100644 --- a/src/i18n/zh_TW.json +++ b/src/i18n/zh_TW.json @@ -19,7 +19,10 @@ "term.accountSettings": "帳戶設定", "term.logout": "登出", "term.login": "登入", + "term.quit" : "結束", "term.about": "關於", + "term.cast" : "投影", + "term.cast2" : "投影到裝置", "term.privateSession": "私人時間", "term.queue": "待播清單", "term.lyrics": "歌詞", @@ -37,6 +40,7 @@ "term.podcasts": "Podcasts", "term.playlists": "播放列表", "term.playlist": "播放列表", + "term.charts": "圖表", "term.newPlaylist": "新的播放列表", "term.newPlaylistFolder": "新的播放列表檔案夾", "term.createNewPlaylist": "新增播放列表", @@ -45,6 +49,7 @@ "term.navigateBack": "回上一頁", "term.navigateForward": "到下一頁", "term.play": "播放", + "term.playpause": "播放/暫停", "term.pause": "暫停", "term.stop": "停止", "term.previous": "上一首", @@ -53,8 +58,9 @@ "term.repeat": "重複播放", "term.enableShuffle": "開啟隨機播放", "term.disableShuffle": "取消隨機播放", - "term.repeat": "開啟單曲循環", - "term.enableRepeatOne": "取消單曲循環", + "term.disableRepeat": "取消重複", + "term.enableRepeatOne": "開啟單曲循環", + "term.disableRepeatOne": "取消單曲循環", "term.volume": "音量", "term.mute": "靜音", "term.unmute": "取消靜音", @@ -110,11 +116,11 @@ "term.clearAll": "清空", "term.recentStations": "最近收聽的廣播", "term.language": "語言", - "term.noLyrics": "沒有可用的歌詞", + "term.noLyrics": "沒有可用的歌詞/純音樂享受", "term.copyright": "版權聲明", "term.rightsReserved": "保留所有權利。", "term.sponsor": "贊助我們", - "term.socials": "社群平台", + "term.socials": "追蹤我們", "term.ciderTeam": "Cider 團隊", "term.developer": "開發者", "term.socialTeam": "公關團隊", @@ -129,26 +135,32 @@ "term.videos": "音樂錄影帶", "term.menu": "選單", "term.check": "檢查", + "term.themeManaged": "此功能現在由主題管理。", "term.aboutArtist": "關於{{artistName}}", "term.requestError": "請求發生錯誤。", "term.song.link.generate": "正在取得 song.link 的分享網址...", + "term.musicVideos": "音樂錄影帶", "term.version": "版本", "term.creditDesignedBy": "由 ${authorUsername} 設計", "term.plugin": "模組", + "term.plugins": "模組", "term.pluginMenu": "模組選單", "term.pluginMenu.none": "沒有交互式模組", + "term.fullscreen" : "全螢幕模式", "home.title": "首頁", "home.recentlyPlayed": "最近播放", "home.recentlyAdded": "最近加入", "home.artistsFeed": "藝人追蹤", "home.artistsFeed.noArtist": "追蹤你喜愛的藝人來取得他們的最新發行歌曲。", + "home.syncFavorites" : "同步追蹤" , + "home.syncFavorites.gettingArtists" : "取得追蹤的藝人歌手列表... " , "home.madeForYou": "為您推薦", "home.friendsListeningTo": "朋友正在聆聽", "home.followedArtists": "追蹤的藝人", - "error.appleMusicSubRequired": "需要訂閱 Apple Music 服務以使用 Cider", + "error.appleMusicSubRequired": "你需要擁有 Apple Music 訂閱,才能使用 Cider 軟體。", "error.connectionError": "無法連線到 Apple Music。", "error.noResults": "沒有結果", - "error.noResults.description": "嘗試新的搜尋項目。", + "error.noResults.description": "請嘗試透過搜尋功能尋找內容。", "podcast.followOnCider": "在 Cider 上追蹤", "podcast.followedOnCider": "已追蹤", "podcast.subscribeOnItunes": "在 iTunes 上訂閱", @@ -159,6 +171,8 @@ "podcast.website": "Podcast 網站", "action.edit": "編輯", "action.done": "完成", + "action.hideLibrary": "隱藏側邊欄", + "action.showLibrary": "顯示側邊欄", "action.editTracklist": "編輯歌曲清單", "action.addToLibrary": "加入到資料庫", "action.addToLibrary.success": "成功加入資料庫", @@ -213,13 +227,15 @@ "action.deletepreset": "刪除預設", "action.open": "開啟", "action.cast.chromecast": "Chromecast", - "action.cast.todevices": "投射到裝置", - "action.cast.stop": "停止投射到所有裝置", + "action.cast.todevices": "投影到裝置", + "action.cast.stop": "停止投影到所有裝置", "action.cast.airplay": "AirPlay", "action.cast.airplay.underdevelopment": "AirPlay 仍處於開發階段中,敬請期待。", "action.cast.scan": "尋找", "action.cast.scanning": "尋找中...", "action.createNew": "新增...", + "action.refresh": "重新整理", + "menubar.options.reload": "重新載入", "settings.header.general": "一般", "settings.header.general.description": "調整 Cider 的一般設定", "settings.option.general.resumebehavior": "還原行為", @@ -252,6 +268,9 @@ "settings.header.audio.description": "調整 Cider 的音訊設定", "settings.option.audio.volumeStep": "音量改變量", "settings.option.audio.maxVolume": "最大音量", + "settings.option.audio.changePlaybackRate": "更改播放速率", + "settings.option.audio.playbackRate": "播放速率", + "settings.option.audio.playbackRate.change": "更改", "settings.option.audio.quality": "音訊品質", "settings.header.audio.quality.hireslossless": "高品質無損壓縮", "settings.header.audio.quality.hireslossless.description": "(最高24位元/192 kHz)", @@ -261,7 +280,7 @@ "settings.header.audio.quality.standard": "高效率", "settings.option.audio.seamlessTransition": "無間斷播放", "settings.option.audio.enableAdvancedFunctionality": "進階音訊功能", - "settings.option.audio.enableAdvancedFunctionality.description": "開啟 AudioContext 將啟用類似音量平衡和等化器的進階設定。但這並不一定適合每部電腦,可能會發生音樂卡頓。", + "settings.option.audio.enableAdvancedFunctionality.description": "開啟進階音訊功能將提供包含音量平衡和等化器等進階設定。但這不一定適合每部電腦,可能會發生音樂卡頓。", "settings.option.audio.audioLab": "Cider 音訊實驗室", "settings.option.audio.audioLab.description": "包含由 Cider 開發團隊進行的各種音訊改善功能。", "settings.warn.audioLab.withoutAF": "使用 Cider 音訊實驗室需要開啟進階音訊功能才能使用。", @@ -272,7 +291,7 @@ "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth": "溫和", "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm": "溫暖", "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizer": "Cider 臨場音效™️", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizer.description": "以業界頂尖的算法,實現擁有臨場感的音樂體驗。", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizer.description": "以業界頂尖的算法,實現擁有臨場感的音樂聆聽體驗。", "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode": "Cider 臨場音效™️模式", "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.description": "更改臨場音效感的模式。", "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_STANDARD": "自然(標準)", @@ -285,7 +304,7 @@ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "增強", "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "音量平衡", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "自動將歌曲播放音量調整至相同位準,享受更舒適的聆聽體驗。", - "settings.option.audio.enableAdvancedFunctionality.audioNormalization.disabled": "此功能由音訊實驗室管理", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization.disabled": "此功能現在由 Cider 音訊實驗室管理。", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Cider 空間音訊效果", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "預先調整空間音訊效果,關閉空間音訊可自訂設定。", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Cider 空間音訊配置檔案", @@ -300,6 +319,11 @@ "settings.option.visual.uiscale": "介面顯示大小", "settings.header.visual": "外觀", "settings.header.visual.description": "調整 Cider 的外觀", + "settings.option.visual.windowStyle": "視窗布局風格", + "settings.option.visual.customAccentColor": "自訂強調色", + "settings.option.visual.accentColor": "強調色", + "settings.option.visual.purplePodcastPlaybackBar": "Podcasts 功能的紫色播放列", + "settings.option.visual.windowColor": "視窗色調顏色", "settings.option.visual.windowBackgroundStyle": "視窗背景樣式", "settings.header.visual.windowBackgroundStyle.none": "空白", "settings.header.visual.windowBackgroundStyle.artwork": "專輯插圖", @@ -324,6 +348,8 @@ "settings.option.visual.theme.github.openfolder": "開啟主題存放位置", "settings.option.visual.theme.github.explore": "探索 GitHub 上的主題", "settings.prompt.visual.theme.github.URL": "輸入你要安裝的主題網址", + "settings.option.visual.theme.checkForUpdates": "檢查更新", + "settings.header.visual.styles": "主題", "settings.option.visual.theme.manageStyles": "管理主題", "settings.option.visual.theme.uninstall": "移除", "settings.option.visual.theme.viewInfo": "查看資訊", @@ -345,6 +371,7 @@ "settings.option.visual.showPersonalInfo": "顯示個人檔案", "settings.header.window": "視窗", "settings.header.window.description": "調整 Cider 的視窗設定", + "settings.option.window.maxElementScale": "最大元素比例", "settings.option.window.openOnStartup": "開機時,啟動 Cider ", "settings.option.window.openOnStartup.hidden": "啟動時,自動隱藏至系統列", "settings.option.window.useNativeTitleBar": "使用原生視窗標題列", @@ -358,7 +385,7 @@ "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch 歌詞優先語言偏好選項", "settings.option.lyrics.enableYoutubeLyrics": "播放 MV 時,使用 YouTube 歌詞", "settings.option.lyrics.enableQQLyrics": "開啟 QQ 音樂的歌詞", - "settings.header.connectivity": "外部連接", + "settings.header.connectivity": "連接", "settings.header.connectivity.description": "調整 Cider 與外部的連接", "settings.option.connectivity.playbackNotifications": "歌曲播放通知", "settings.option.connectivity.discordRPC": "Discord 動態", @@ -368,11 +395,19 @@ "settings.option.connectivity.discordRPC.hideTimestamp": "隱藏 Discord 動態的時間戳", "settings.option.connectivity.discordRPC.detailsFormat": "詳細資訊格式", "settings.option.connectivity.discordRPC.stateFormat": "狀態格式", + "settings.option.connectivity.discordRPC.reload": "重新載入 Discord 動態", + "settings.option.connectivity.discordRPC.reconnectedToUser": "Discord 動態重新連線到使用者: {{user}} ({{userid}})", "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.option.connectivity.lastfmScrobble.removeFeatured": "從 Last.FM 的歌名中移除客串藝人", + "settings.option.connectivity.lastfmScrobble.filterLoop": "讓 Last.FM 不記錄單曲循環", + "settings.option.connectivity.lastfmScrobble.filterLoop.description": "防止循環單曲被打亂或顯示在 Last.FM 的正在播放列表中。", + "settings.option.connectivity.lastfmScrobble.filterTypes": "過濾媒體類型 (Last.FM)", + "settings.option.connectivity.lastfmScrobble.manualToken": "手動輸入 Last.FM 驗證碼", + "settings.notyf.connectivity.lastfmScrobble.connectError": "Last.FM 連線超時", + "settings.notyf.connectivity.lastfmScrobble.connectSuccess": "Last.FM 連線成功", + "settings.notyf.connectivity.lastfmScrobble.connecting": "正在連線到 Last.FM...", "settings.header.debug": "除錯", "settings.option.debug.copy_log": "複製執行紀錄檔至剪貼簿", "settings.option.debug.openAppData": "打開 Cider 資料夾", @@ -380,7 +415,7 @@ "settings.header.experimental.description": "調整 Cider 的實驗性功能", "settings.option.experimental.reinstallwidevine": "重新安裝 WidevineCDM", "settings.option.experimental.reinstallwidevine.confirm": "你確定要重新安裝 WidevineCDM 嗎?", - "settings.option.experimental.unknownPlugin": "未知來源", + "settings.option.experimental.unknownPlugin": "其他來源", "settings.option.experimental.unknownPlugin.description": "允許從 Cider 來源以外的 repo 安裝套件", "settings.option.experimental.compactUI": "使用緊密的介面設計", "settings.option.window.close_button_hide": "關閉按鈕將 Cider 隱藏至系統列", @@ -392,7 +427,7 @@ "settings.header.advanced": "進階", "settings.header.connect": "同步", "settings.option.connect.link_account": "開啟與 Cider Connect 同步", - "settings.option.connect.link_account.description": "將您的 Discord 帳戶與 Cider Connect 連接後,你可以儲存使用者資料,包括設定、等化器,並最終在完成後儲存更多資料。(正在進行中)", + "settings.option.connect.link_account.description": "將你的 Discord 帳戶與 Cider 連線後,你將可以儲存使用者資料,且包括設定、等化器以及更多資料。(該功能開發中...)", "spatial.notTurnedOn": "空間音訊目前是關閉狀態,請先開啟再使用。", "spatial.spatialProperties": "空間音訊屬性設定", "spatial.width": "寬度", diff --git a/src/main/base/app.ts b/src/main/base/app.ts index 58ccda47..fe54b158 100644 --- a/src/main/base/app.ts +++ b/src/main/base/app.ts @@ -162,13 +162,10 @@ export class AppEvents { // LastFM Auth URL if (arg.includes('auth')) { - let authURI = arg.split('/auth/')[1] + const authURI = arg.split('/auth/')[1] if (authURI.startsWith('lastfm')) { // If we wanted more auth options - const authKey = authURI.split('lastfm?token=')[1]; - utils.setStoreValue('lastfm.enabled', true); - utils.setStoreValue('lastfm.auth_token', authKey); - utils.getWindow().webContents.send('LastfmAuthenticated', authKey); - this.plugin.callPlugin('lastfm', 'authenticate', authKey); + console.log('token: ', authURI.split('lastfm?token=')[1]) + utils.getWindow().webContents.executeJavaScript(`ipcRenderer.send('lastfm:auth', "${authURI.split('lastfm?token=')[1]}")`).catch(console.error) } } // Play @@ -335,7 +332,7 @@ export class AppEvents { { visible: !visible, - label: this.i18n['action.tray.playpause'], + label: this.i18n['term.playpause'], click: () => { utils.getWindow().webContents.executeJavaScript('MusicKitInterop.playPause()') } @@ -343,7 +340,7 @@ export class AppEvents { { visible: !visible, - label: this.i18n['action.tray.next'], + label: this.i18n['term.next'], click: () => { utils.getWindow().webContents.executeJavaScript(`MusicKitInterop.next()`) } @@ -351,7 +348,7 @@ export class AppEvents { { visible: !visible, - label: this.i18n['action.tray.previous'], + label: this.i18n['term.previous'], click: () => { utils.getWindow().webContents.executeJavaScript(`MusicKitInterop.previous()`) } @@ -372,7 +369,7 @@ export class AppEvents { } }, { - label: this.i18n['action.tray.quit'], + label: this.i18n['term.quit'], click: () => { app.quit() } diff --git a/src/main/base/browserwindow.ts b/src/main/base/browserwindow.ts index 89c54e55..a63dec93 100644 --- a/src/main/base/browserwindow.ts +++ b/src/main/base/browserwindow.ts @@ -1,9 +1,9 @@ -import {join} from "path"; -import {app, BrowserWindow as bw, ipcMain, ShareMenu, shell, screen} from "electron"; +import { join } from "path"; +import { app, BrowserWindow as bw, ipcMain, ShareMenu, shell, screen, dialog } from "electron"; 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 { search } from "youtube-search-without-api-key"; import { existsSync, rmSync, @@ -16,19 +16,18 @@ import { rmdirSync, lstatSync, } from "fs"; -import {Stream} from "stream"; -import {networkInterfaces} from "os"; +import { Stream } from "stream"; +import { networkInterfaces } from "os"; import * as mm from 'music-metadata'; import fetch from 'electron-fetch' -import {wsapi} from "./wsapi"; -import {utils} from './utils'; -import {Plugins} from "./plugins"; -import {watch} from "chokidar"; +import { wsapi } from "./wsapi"; +import { utils } from './utils'; +import { Plugins } from "./plugins"; +import { watch } from "chokidar"; import * as os from "os"; import wallpaper from "wallpaper"; import * as AdmZip from "adm-zip"; -import * as path from 'path'; -const { readdir } = require('fs').promises; +import { LocalFiles } from "../providers/local/"; /** @@ -40,11 +39,11 @@ const { readdir } = require('fs').promises; export class BrowserWindow { public static win: any | undefined = null; private devMode: boolean = !app.isPackaged; + public static express: any | undefined = null; private audioStream: any = new Stream.PassThrough(); private headerSent: any = false; private chromecastIP: any = []; - private localSongs: any = []; private clientPort: number = 0; private remotePort: number = 6942; private EnvironmentVariables: object = { @@ -53,6 +52,7 @@ export class BrowserWindow { dev: app.isPackaged, osRelease: os.release(), updatable: !process.windowsStore || !process.mas, + useV3: utils.getStoreValue('advanced.experiments').includes("ampv3"), components: [ "pages/podcasts", "pages/apple-account-settings", @@ -63,8 +63,7 @@ export class BrowserWindow { "pages/browse", "pages/groupings", "pages/charts", - "pages/settings", - "pages/installed-themes", + //"pages/installed-themes", "pages/listen_now", "pages/radio", "pages/home", @@ -80,14 +79,16 @@ export class BrowserWindow { "pages/about", "pages/library-videos", "pages/remote-pair", - "pages/themes-github", - "pages/plugins-github", + //"pages/themes-github", + //"pages/plugins-github", "pages/replay", "pages/audiolabs", "pages/zoo", "pages/plugin-renderer", - "pages/keybinds", "pages/oobe", + "pages/cider-profile", + "components/app-content", + "components/sidebar", "components/mediaitem-artwork", "components/artwork-material", "components/menu-panel", @@ -118,159 +119,174 @@ export class BrowserWindow { "components/fullscreen", "components/miniplayer", "components/castmenu", + "components/pathmenu", "components/airplay-modal", "components/artist-chip", "components/hello-world", "components/inline-collection-list", + "components/settings-window", + "components/pagination", + "components/settings-keybinds", + "components/settings-themes", + "components/settings-themes-github", + "components/settings-plugins-github", ], appRoutes: [ { page: "library-recentlyadded", component: ``, - condition: "page == 'library-recentlyadded'" + condition: "$root.page == 'library-recentlyadded'" }, { page: "plugin-renderer", component: ``, - condition: "page == 'plugin-renderer'" + condition: "$root.page == 'plugin-renderer'" }, { page: "zoo", component: "", - condition: "page == 'zoo'" + condition: "$root.page == 'zoo'" }, { page: "podcasts", component: ``, - condition: `page == 'podcasts'` + condition: `$root.page == 'podcasts'` }, { page: "library-videos", component: ``, - condition: `page == 'library-videos'` + condition: `$root.page == 'library-videos'` }, { page: "apple-account-settings", component: ``, - condition: `page == 'apple-account-settings'` + condition: `$root.page == 'apple-account-settings'` }, { page: "about", component: ``, - condition: `page == 'about'` + condition: `$root.page == 'about'` }, { page: "cider-artist", - component: ``, - condition: `page == 'artist-page' && artistPage.data.attributes` + component: ``, + condition: `$root.page == 'artist-page' && $root.artistPage.data.attributes` }, { page: "collection-list", - component: ``, - condition: `page == 'collection-list'` + component: ``, + condition: `$root.page == 'collection-list'` }, { page: "home", component: ``, - condition: `page == 'home'` + condition: `$root.page == 'home'` }, { page: "artist-feed", component: ``, - condition: `page == 'artist-feed'` + condition: `$root.page == 'artist-feed'` }, { page: "playlist-inline", - component: ``, - condition: `modals.showPlaylist` + component: ``, + condition: `$root.modals.showPlaylist` }, { page: "playlist_", - component: ``, - condition: `page.includes('playlist_')` + component: ``, + condition: `$root.page.includes('playlist_')` }, { page: "album_", - component: ``, - condition: `page.includes('album_')` + component: ``, + condition: `$root.page.includes('album_')` }, { page: "recordLabel_", - component: ``, - condition: `page.includes('recordLabel_')` + component: ``, + condition: `$root.page.includes('recordLabel_')` + }, { + page: "social-profiles_", + component: ``, + condition: `$root.page.includes('social-profiles_')` }, { page: "multiroom", - component: ``, - condition: `page.includes('multiroom')` + component: ``, + condition: `$root.page.includes('multiroom')` }, { page: "curator_", - component: ``, - condition: `page.includes('curator_')` + component: ``, + condition: `$root.page.includes('curator_')` }, { page: "browsepage", - component: ``, - condition: `page == 'browse'`, + component: ``, + condition: `$root.page == 'browse'`, onEnter: `` - },{ + }, { page: "groupings", - component: ``, - condition: `page == 'groupings'`, + component: ``, + condition: `$root.page == 'groupings'`, onEnter: `` - },{ + }, { page: "charts", - component: ``, - condition: `page == 'charts'`, + component: ``, + condition: `$root.page == 'charts'`, onEnter: `` }, { page: "listen_now", - component: ``, - condition: `page == 'listen_now'`, + component: ``, + condition: `$root.page == 'listen_now'`, onEnter: `` }, { page: "radio", - component: ``, - condition: `page == 'radio'`, + component: ``, + condition: `$root.page == 'radio'`, onEnter: `` }, { page: "settings", component: ``, - condition: `page == 'settings'` + condition: `$root.page == 'settings'` }, { page: "installed-themes", component: ``, - condition: `page == 'installed-themes'` + condition: `$root.page == 'installed-themes'` }, { page: "search", - component: ``, - condition: `page == 'search'` + component: ``, + condition: `$root.page == 'search'` }, { page: "library-songs", - component: ``, - condition: `page == 'library-songs'`, + component: ``, + condition: `$root.page == 'library-songs'`, onEnter: `` }, { page: "library-albums", - component: ``, - condition: `page == 'library-albums'`, + component: ``, + condition: `$root.page == 'library-albums'`, onEnter: `` }, { page: "library-artists", component: ``, - condition: `page == 'library-artists'`, + condition: `$root.page == 'library-artists'`, onEnter: `` }, { page: "appleCurator", - component: ``, - condition: `page.includes('appleCurator')` + component: ``, + condition: `$root.page.includes('appleCurator')` }, { page: "themes-github", component: ``, - condition: `page == 'themes-github'` + condition: `$root.page == 'themes-github'` }, { page: "plugins-github", component: ``, - condition: `page == 'plugins-github'` + condition: `$root.page == 'plugins-github'` }, { page: "remote-pair", component: ``, - condition: `page == 'remote-pair'` + condition: `$root.page == 'remote-pair'` }, { page: "audiolabs", component: ``, - condition: `page == 'audiolabs'` + condition: `$root.page == 'audiolabs'` }, { page: "replay", component: ``, - condition: `page == 'replay'` + condition: `$root.page == 'replay'` + }, { + page: "keydinds", + component: ``, + condition: `$root.page == 'keybinds-settings'` } ] }, @@ -291,7 +307,7 @@ export class BrowserWindow { show: false, // backgroundColor: "#1E1E1E", titleBarStyle: 'hidden', - trafficLightPosition: {x: 15, y: 20}, + trafficLightPosition: { x: 15, y: 20 }, webPreferences: { experimentalFeatures: true, nodeIntegration: true, @@ -357,7 +373,8 @@ export class BrowserWindow { * @yields {object} Electron browser window */ async createWindow(): Promise { - this.clientPort = await getPort({port: 9000}); + const envPort = process.env?.CIDER_PORT || '9000' + this.clientPort = await getPort({ port: parseInt(envPort, 10) || 9000 }); BrowserWindow.verifyFiles(); this.StartWatcher(utils.getPath('themes')); @@ -404,9 +421,10 @@ export class BrowserWindow { } // Start the webserver for the browser window to load - + // LocalFiles.DB.init() this.startWebServer(); + BrowserWindow.win = new bw(this.options); // cant be built in CI // if (process.platform === "win32" && (utils.getStoreValue('visual.transparent') ?? false)) { @@ -462,7 +480,7 @@ export class BrowserWindow { */ private startWebServer(): void { const app = express(); - + BrowserWindow.express = app; app.use(express.static(join(utils.getPath('srcPath'), "./renderer/"))); app.set("views", join(utils.getPath('srcPath'), "./renderer/views")); app.set("view engine", "ejs"); @@ -494,9 +512,9 @@ export class BrowserWindow { app.get("/cideraudio/impulses/:file", (req, res) => { const impulseExternals = join(utils.getPath("externals"), "/impulses/") const impulseFile = join(impulseExternals, req.params.file) - if(existsSync(impulseFile)) { + if (existsSync(impulseFile)) { res.sendFile(impulseFile) - }else{ + } else { res.sendFile(join(utils.getPath('srcPath'), "./renderer/audio/impulses/" + req.params.file)) } }) @@ -546,14 +564,6 @@ export class BrowserWindow { res.send(`// Theme not found - ${userThemePath}`); } }); - app.get("/ciderlocal/:songs", (req, res) => { - const audio = atob(req.params.songs.replace(/_/g, '/').replace(/-/g, '+')); - console.log('auss', audio) - let data = {data: - this.localSongs.filter((f: any) => audio.split(',').includes(f.id))}; - res.send(data); - }); - app.get("/themes/:theme/*", (req: { params: { theme: string, 0: string } }, res) => { const theme = req.params.theme; @@ -614,10 +624,12 @@ export class BrowserWindow { //region Connect Integration app.get("/connect/set-cc-user/:data", (req, res) => { //utils.getStoreValue('connectUser', JSON.parse()) // [Connect] Save user in store - utils.setStoreValue('connectUser', JSON.parse(req.params.data)) - utils.getWindow().reload() + utils.getWindow().webContents.send('setStoreValue', 'connectUser', JSON.parse(req.params.data)) res.redirect(`https://connect.cidercollective.dev/linked.html`) }); + + LocalFiles.setupHandlers() + // [Connect] Set auth URL in store for `shell.openExternal` utils.setStoreValue('cc_authURL', `https://connect.cidercollective.dev/callback/discord?app=cider&appPort=${this.clientPort}`) console.log(`[Connect] Auth URL: ${utils.getStoreValue('cc_authURL')}`) @@ -637,7 +649,7 @@ export class BrowserWindow { remote.use(express.static(join(utils.getPath('srcPath'), "./web-remote/"))) remote.set("views", join(utils.getPath('srcPath'), "./web-remote/views")); remote.set("view engine", "ejs"); - getPort({port: 6942}).then((port: number) => { + getPort({ port: 6942 }).then((port: number) => { this.remotePort = port; // Start Remote Discovery this.broadcastRemote() @@ -668,13 +680,13 @@ export class BrowserWindow { callback({ redirectURL: `http://localhost:${this.clientPort}/apple-hls.js`, }); - } else if (details.url.includes("ciderlocal")) { + } else if (details.url.includes("ciderlocal") && !details.url.includes("https://apic-desktop.musixmatch.com") ) { let text = details.url.toString().includes('ids=') ? decodeURIComponent(details.url.toString()).split("?ids=")[1] : decodeURIComponent(details.url.toString().substring(details.url.toString().lastIndexOf('/') + 1)); - console.log('localurl',text) + //console.log('localurl',text) callback({ redirectURL: `http://localhost:${this.clientPort}/ciderlocal/${Buffer.from(text).toString('base64url')}`, }); - }else { + } else { callback({ cancel: false, }); @@ -716,7 +728,7 @@ export class BrowserWindow { 'KHTML, like Gecko) Mobile/17D50 UCBrowser/12.8.2.1268 Mobile AliApp(TUnionSDK/0.1.20.3) ' details.requestHeaders['Referer'] = "https://y.qq.com/portal/player.html" } - callback({requestHeaders: details.requestHeaders}); + callback({ requestHeaders: details.requestHeaders }); } ); @@ -773,7 +785,7 @@ export class BrowserWindow { const Jimp = require("jimp") const img = await Jimp.read(wpPath) const blurAmount = args.blurAmount ?? 256 - if(blurAmount) { + if (blurAmount) { img.blur(blurAmount) } const screens = await screen.getAllDisplays() @@ -810,7 +822,7 @@ export class BrowserWindow { } // if path is directory, delete it if (lstatSync(path).isDirectory()) { - await rmdirSync(path, {recursive: true}); + await rmdirSync(path, { recursive: true }); } else { // if path is file, delete it await unlinkSync(path); @@ -841,7 +853,7 @@ export class BrowserWindow { // remove WidevineCDM from appdata folder const widevineCdmPath = join(app.getPath("userData"), "./WidevineCdm"); if (existsSync(widevineCdmPath)) { - rmSync(widevineCdmPath, {recursive: true, force: true}) + rmSync(widevineCdmPath, { recursive: true, force: true }) } // reinstall WidevineCDM app.relaunch() @@ -849,6 +861,7 @@ export class BrowserWindow { }) ipcMain.handle("get-github-plugin", async (event, url) => { + await this.StopWatcher() const returnVal = { success: true, theme: null, @@ -893,9 +906,11 @@ export class BrowserWindow { returnVal.success = false; } BrowserWindow.win.webContents.send("plugin-installed", returnVal); + this.StartWatcher(utils.getPath('themes')); }); ipcMain.handle("get-github-theme", async (event, url) => { + await this.StopWatcher() const returnVal = { success: true, theme: null, @@ -940,6 +955,8 @@ export class BrowserWindow { returnVal.success = false; } BrowserWindow.win.webContents.send("theme-installed", returnVal); + this.StartWatcher(utils.getPath('themes')); + BrowserWindow.win.webContents.send("theme-update", "") }); ipcMain.on("get-themes", (event, _key) => { @@ -1128,7 +1145,7 @@ export class BrowserWindow { // Move window ipcMain.on("windowmove", (_event, x, y) => { - BrowserWindow.win.setBounds({x, y}); + BrowserWindow.win.setBounds({ x, y }); }); //Fullscreen @@ -1143,7 +1160,7 @@ export class BrowserWindow { //Fullscreen ipcMain.on('detachDT', (_event, _) => { - BrowserWindow.win.webContents.openDevTools({mode: 'detach'}); + BrowserWindow.win.webContents.openDevTools({ mode: 'detach' }); }) ipcMain.handle('relaunchApp', (_event, _) => { @@ -1162,6 +1179,10 @@ export class BrowserWindow { app.quit(); }) + ipcMain.handle("quit-app", (_event, _) => { + app.quit(); + }) + app.on('before-quit', () => { }) @@ -1176,102 +1197,17 @@ export class BrowserWindow { }); - ipcMain.on("scanLibrary", async (event, folders) => { - async function getFiles(dir : any) { - const dirents = await readdir(dir, { withFileTypes: true }); - const files = await Promise.all(dirents.map((dirent: any) => { - const res = path.resolve(dir, dirent.name); - return dirent.isDirectory() ? getFiles(res) : res; - })); - return Array.prototype.concat(...files); - } - if (folders == null || folders.length == null || folders.length == 0) folders = ["D:\\Music"] - console.log('folders', folders) - let files: any[] = [] - for (var folder of folders){ - // get files from the Music folder - files = files.concat(await getFiles(folder)) - } - - //console.log("cider.files", files2); - let supporttedformats = ["mp3", "aac", "webm", "flac", "m4a", "ogg", "wav", "opus"] - let audiofiles = files.filter(f => supporttedformats.includes(f.substring(f.lastIndexOf('.') + 1))); - // console.log("cider.files2", audiofiles, audiofiles.length); - let metadatalist = [] - let numid = 0; - for (var audio of audiofiles) { - try{ - const metadata = await mm.parseFile(audio); - if (metadata != null){ - let form = { - "id": "ciderlocal" + numid, - "type": "podcast-episodes", - "href": audio, - "attributes": { - "artwork": { - "width": 3000, - "height": 3000, - "url": metadata.common.picture != undefined ? "data:image/png;base64,"+metadata.common.picture[0].data.toString('base64')+"" : "", - }, - "topics": [], - "url": "", - "subscribable": true, - "mediaKind": "audio", - "genreNames": [ - "" - ], - // "playParams": { - // "id": "ciderlocal" + numid, - // "kind": "podcast", - // "isLibrary": true, - // "reporting": false }, - "trackNumber": metadata.common.track?.no ?? 0, - "discNumber": metadata.common.disk?.no ?? 0, - "name": metadata.common.title ?? audio.substring(audio.lastIndexOf('\\') + 1), - "albumName": metadata.common.album, - "artistName": metadata.common.artist, - "copyright": metadata.common.copyright ?? "", - "assetUrl": "file:///" +audio, - "contentAdvisory": "", - "releaseDateTime": "2022-05-13T00:23:00Z", - "durationInMilliseconds": Math.floor((metadata.format.duration?? 0) * 1000), - - "offers": [ - { - "kind": "get", - "type": "STDQ" - } - ], - "contentRating": "clean" - } - }; - numid += 1; - - // let form = {"id": "/ciderlocal?" + audio, - // "type": "library-songs", - // "href": "/ciderlocal?" + audio, - // "artwork": { - // "url": metadata.common.picture != undefined ? "data:image/png;base64,"+metadata.common.picture[0].data.toString('base64')+"" : "", - // }, - // "attributes": - // { "durationInMillis": Math.floor((metadata.format.duration?? 0) * 1000), - // "hasLyrics": false, - // "playParams": { "id": "/ciderlocal?" + audio, "kind": "song", "isLibrary": true, "reporting": false }, - // "trackNumber": 0, - // "discNumber": 0, - // "genreNames": [""], - // "name": metadata.common.title, - // "albumName": metadata.common.album, - // "artistName": metadata.common.artist}} - metadatalist.push(form)} - } catch (e){} - } - // console.log('metadatalist', metadatalist); - this.localSongs = metadatalist; - BrowserWindow.win.webContents.send('getUpdatedLocalList', metadatalist); - } + ipcMain.handle("scanLibrary", async (event, folders) => { + const oldmetadatalist = await LocalFiles.sendOldLibrary() + BrowserWindow.win.webContents.send('getUpdatedLocalList', oldmetadatalist); + const metadatalist = await LocalFiles.scanLibrary() + BrowserWindow.win.webContents.send('getUpdatedLocalList', metadatalist); + LocalFiles.cleanUpDB() + }) - ) + LocalFiles.eventEmitter.on('newtracks', (data) => { + BrowserWindow.win.webContents.send('getUpdatedLocalList', data); + }); ipcMain.on('writeWAV', (event, leftpcm, rightpcm, bufferlength) => { @@ -1439,13 +1375,13 @@ export class BrowserWindow { console.log('sc', SoundCheckTag) BrowserWindow.win.webContents.send('SoundCheckTag', SoundCheckTag) }).catch(err => { - console.log(err) - }); + console.log(err) + }); }); ipcMain.on('share-menu', async (_event, url) => { - if (process.platform != 'darwin') return; + if (process.platform !== 'darwin') return; //https://www.electronjs.org/docs/latest/api/share-menu console.log('[Share Sheet - App.ts]', url) const options = { @@ -1464,10 +1400,17 @@ export class BrowserWindow { } }); + ipcMain.on('open-appdata', (_event) => { shell.openPath(app.getPath('userData')); }); + ipcMain.handle('folderSelector', async (_event) => { + let u = await dialog.showOpenDialog({ + properties: ['openDirectory', 'multiSelections'] + }); + return u.filePaths + }); //#region Cider Connect ipcMain.on('cc-auth', (_event) => { @@ -1492,35 +1435,38 @@ export class BrowserWindow { /* ********************************************************************************************* * Window Events * **********************************************************************************************/ - if (process.platform === "win32") { - let WND_STATE = { - MINIMIZED: 0, - NORMAL: 1, - MAXIMIZED: 2, - FULL_SCREEN: 3, - }; - let wndState = WND_STATE.NORMAL; + let WND_STATE = { + MINIMIZED: 0, + NORMAL: 1, + MAXIMIZED: 2, + FULL_SCREEN: 3, + }; + let wndState = WND_STATE.NORMAL; + + BrowserWindow.win.on("resize", (_: any) => { + const isMaximized = BrowserWindow.win.isMaximized(); + const isMinimized = BrowserWindow.win.isMinimized(); + const isFullScreen = BrowserWindow.win.isFullScreen(); + const state = wndState; + if (isMinimized && state !== WND_STATE.MINIMIZED) { + wndState = WND_STATE.MINIMIZED; + BrowserWindow.win.webContents.send('window-state-changed', 'minimized'); + } else if (isFullScreen && state !== WND_STATE.FULL_SCREEN) { + wndState = WND_STATE.FULL_SCREEN; + BrowserWindow.win.webContents.send('window-state-changed', 'fullscreen') + } else if (isMaximized && state !== WND_STATE.MAXIMIZED) { + wndState = WND_STATE.MAXIMIZED; + BrowserWindow.win.webContents.send('window-state-changed', 'maximized') + BrowserWindow.win.webContents.executeJavaScript(`app.chrome.maximized = true`); + } else if (state !== WND_STATE.NORMAL) { + wndState = WND_STATE.NORMAL; + BrowserWindow.win.webContents.send('window-state-changed', 'normal') + BrowserWindow.win.webContents.executeJavaScript( + `app.chrome.maximized = false` + ); + } + }); - BrowserWindow.win.on("resize", (_: any) => { - const isMaximized = BrowserWindow.win.isMaximized(); - const isMinimized = BrowserWindow.win.isMinimized(); - const isFullScreen = BrowserWindow.win.isFullScreen(); - const state = wndState; - if (isMinimized && state !== WND_STATE.MINIMIZED) { - wndState = WND_STATE.MINIMIZED; - } else if (isFullScreen && state !== WND_STATE.FULL_SCREEN) { - wndState = WND_STATE.FULL_SCREEN; - } else if (isMaximized && state !== WND_STATE.MAXIMIZED) { - wndState = WND_STATE.MAXIMIZED; - BrowserWindow.win.webContents.executeJavaScript(`app.chrome.maximized = true`); - } else if (state !== WND_STATE.NORMAL) { - wndState = WND_STATE.NORMAL; - BrowserWindow.win.webContents.executeJavaScript( - `app.chrome.maximized = false` - ); - } - }); - } let isQuiting = false @@ -1563,10 +1509,10 @@ export class BrowserWindow { // Set window Handler BrowserWindow.win.webContents.setWindowOpenHandler((x: any) => { if (x.url.includes("apple") || x.url.includes("localhost")) { - return {action: "allow"}; + return { action: "allow" }; } shell.openExternal(x.url).catch(console.error); - return {action: "deny"}; + return { action: "deny" }; }); } @@ -1622,7 +1568,7 @@ export class BrowserWindow { "CtlN": "Cider", "iV": "196623" }; - let server2 = mdns.createAdvertisement(x, `${await getPort({port: 3839})}`, { + let server2 = mdns.createAdvertisement(x, `${await getPort({ port: 3839 })}`, { name: encoded, txt: txt_record }); diff --git a/src/main/base/plugins.ts b/src/main/base/plugins.ts index d51e8a85..5873af4c 100644 --- a/src/main/base/plugins.ts +++ b/src/main/base/plugins.ts @@ -16,10 +16,10 @@ import {utils} from './utils'; * @see {@link https://github.com/ciderapp/Cider/wiki/Plugins|Documentation} */ export class Plugins { + private static PluginMap: any = {}; private basePluginsPath = path.join(__dirname, '../plugins'); private userPluginsPath = path.join(electron.app.getPath('userData'), 'Plugins'); private readonly pluginsList: any = {}; - private static PluginMap: any = {}; constructor() { this.pluginsList = this.getPlugins(); @@ -35,8 +35,8 @@ export class Plugins { public getPlugins(): any { let plugins: any = {}; - - + + if (fs.existsSync(this.basePluginsPath)) { fs.readdirSync(this.basePluginsPath).forEach(file => { if (file.endsWith('.ts') || file.endsWith('.js')) { @@ -49,8 +49,8 @@ export class Plugins { } }); } - - + + if (fs.existsSync(this.userPluginsPath)) { fs.readdirSync(this.userPluginsPath).forEach(file => { // Plugins V1 @@ -104,10 +104,11 @@ export class Plugins { public callPlugins(event: string, ...args: any[]) { for (const plugin in this.pluginsList) { if (this.pluginsList[plugin][event]) { - try{ + try { this.pluginsList[plugin][event](...args); - }catch(e) { - console.log(`[${plugin}] Plugin error: ${e}`); + } catch (e) { + console.error(`[${plugin}] An error was encountered: ${e}`); + console.error(e) } } } diff --git a/src/main/base/store.ts b/src/main/base/store.ts index 3190e8e5..d7881352 100644 --- a/src/main/base/store.ts +++ b/src/main/base/store.ts @@ -2,6 +2,7 @@ import * as ElectronStore from 'electron-store'; import * as electron from "electron"; import {app} from "electron"; import fetch from "electron-fetch"; + export class Store { static cfg: ElectronStore; @@ -12,15 +13,6 @@ export class Store { }, "general": { "close_button_hide": false, - "discordrpc": { - "enabled": true, - "client": "Cider", - "clear_on_pause": true, - "hide_buttons": false, - "hide_timestamp": false, - "state_format": "by {artist}", - "details_format": "{title}", - }, "language": "en_US", // electron.app.getLocale().replace('-', '_') this can be used in future "playbackNotifications": true, "resumeOnStartupBehavior": "local", @@ -39,7 +31,8 @@ export class Store { "applemusic": false, "library": false, "amplaylists": false, - "playlists": false + "playlists": false, + "localLibrary": false }, "onStartup": { "enabled": false, @@ -66,7 +59,7 @@ export class Store { "CommandOrControl", "G" ], - "songs" : [ + "songs": [ "CommandOrControl", "J" ], @@ -89,23 +82,35 @@ export class Store { ], "audioSettings": [ "CommandOrControl", - process.platform == "darwin" ? "Option" : (process.platform == "linux" ? "Shift": "Alt"), + process.platform == "darwin" ? "Option" : (process.platform == "linux" ? "Shift" : "Alt"), "A" ], "pluginMenu": [ "CommandOrControl", - process.platform == "darwin" ? "Option" : (process.platform == "linux" ? "Shift": "Alt"), + process.platform == "darwin" ? "Option" : (process.platform == "linux" ? "Shift" : "Alt"), "P" ], "castToDevices": [ "CommandOrControl", - process.platform == "darwin" ? "Option" : (process.platform == "linux" ? "Shift": "Alt"), + process.platform == "darwin" ? "Option" : (process.platform == "linux" ? "Shift" : "Alt"), "C" ], "settings": [ "CommandOrControl", // Who the hell uses a different key for this? Fucking Option? "," ], + "zoomn": [ + "Control", + "numadd", + ], + "zoomt": [ + "Control", + "numsub", + ], + "zoomrst": [ + "Control", + "num0", + ], "openDeveloperTools": [ "CommandOrControl", "Shift", @@ -114,21 +119,50 @@ export class Store { }, "showLovedTracksInline": true }, + "connectivity": { + "discord_rpc": { + "enabled": true, + "client": "Cider", + "clear_on_pause": true, + "hide_buttons": false, + "hide_timestamp": false, + "state_format": "by {artist}", + "details_format": "{title}", + }, + "lastfm": { + "enabled": false, + "scrobble_after": 50, + "filter_loop": false, + "filter_types": {}, + "secrets": { + "username": "", + "key": "" + } + + }, + }, "home": { "followedArtists": [], "favoriteItems": [] }, "libraryPrefs": { "songs": { + "scroll": "paged", "sort": "name", "sortOrder": "asc", "size": "normal" }, "albums": { + "scroll": "paged", "sort": "name", "sortOrder": "asc", "viewAs": "covers" }, + "playlists": { + "scroll": "infinite" + }, + "localPaths": [], + "pageSize": 250 }, "audio": { "volume": 1, @@ -139,18 +173,19 @@ export class Store { "playbackRate": 1, "quality": "HIGH", "seamless_audio": true, - "normalization": false, + "normalization": true, "dBSPL": false, "dBSPLcalibration": 90, "maikiwiAudio": { - "ciderPPE": false, + "ciderPPE": true, "ciderPPE_value": "MAIKIWI", + "opportunisticCorrection_state": "OFF", "atmosphereRealizer1": false, "atmosphereRealizer1_value": "NATURAL_STANDARD", "atmosphereRealizer2": false, "atmosphereRealizer2_value": "NATURAL_STANDARD", "spatial": false, - "spatialProfile": "71_420maikiwi", + "spatialProfile": "BPLK", "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], @@ -206,31 +241,25 @@ export class Store { }, "windowControlPosition": 0, // 0 default right "nativeTitleBar": false, - "uiScale": 1.0, "windowColor": "#000000", "customAccentColor": false, - "accentColor": "#fc3c44" + "accentColor": "#fc3c44", + "purplePodcastPlaybackBar": false, + "maxElementScale": -1 // -1 default, anything else is a custom scale }, "lyrics": { - "enable_mxm": false, + "enable_mxm": true, "mxm_karaoke": false, - "mxm_language": "en", + "mxm_language": "disabled", "enable_qq": false, "enable_yt": false, }, - "lastfm": { - "enabled": false, - "scrobble_after": 30, - "auth_token": "", - "enabledRemoveFeaturingArtists": true, - "filterLoop": true, - "NowPlaying": "true" - }, "advanced": { - "AudioContext": false, + "AudioContext": true, "experiments": [], "playlistTrackMapping": true, - "ffmpegLocation": "" + "ffmpegLocation": "", + "disableLogging": true }, "connectUser": { "auth": null, @@ -241,15 +270,9 @@ export class Store { } }, } - private migrations: any = { - '>=1.4.3': (store: ElectronStore) => { - if (typeof store.get('general.discordrpc') == 'number' || typeof store.get('general.discordrpc') == 'string') { - store.delete('general.discordrpc'); - } - }, - } + private migrations: any = {} private schema: ElectronStore.Schema = { - "general.discordrpc": { + "connectivity.discord_rpc": { type: 'object' }, } @@ -260,57 +283,13 @@ export class Store { defaults: this.defaults, schema: this.schema, migrations: this.migrations, - clearInvalidConfig: true + clearInvalidConfig: false //disabled for now }); Store.cfg.set(this.mergeStore(this.defaults, Store.cfg.store)) this.ipcHandler(); } - /** - * Merge Configurations - * @param target The target configuration - * @param source The source configuration - */ - private mergeStore = (target: { [x: string]: any; }, source: { [x: string]: any; }) => { - // Iterate through `source` properties and if an `Object` set property to merge of `target` and `source` properties - for (const key of Object.keys(source)) { - if (key.includes('migrations')) { - continue; - } - if (source[key] instanceof Array) { - continue - } - if (source[key] instanceof Object) Object.assign(source[key], this.mergeStore(target[key], source[key])) - } - // Join `target` and modified `source` - Object.assign(target || {}, source) - return target - } - - - /** - * IPC Handler - */ - private ipcHandler(): void { - electron.ipcMain.handle('getStoreValue', (_event, key, defaultValue) => { - return (defaultValue ? Store.cfg.get(key, true) : Store.cfg.get(key)); - }); - - electron.ipcMain.handle('setStoreValue', (_event, key, value) => { - Store.cfg.set(key, value); - }); - - electron.ipcMain.on('getStore', (event) => { - event.returnValue = Store.cfg.store - }) - - electron.ipcMain.on('setStore', (_event, store) => { - Store.cfg.store = store - }) - } - - static pushToCloud(): void { if (Store.cfg.get('connectUser.auth') === null) return; var syncData = Object(); @@ -324,7 +303,7 @@ export class Store { plugins: Store.cfg.store.plugins }) } - + if (Store.cfg.get('connectUser.sync.settings')) { syncData.push({ general: Store.cfg.get('general'), @@ -348,4 +327,46 @@ export class Store { body: JSON.stringify(postBody) }) } + + /** + * Merge Configurations + * @param target The target configuration + * @param source The source configuration + */ + private mergeStore = (target: { [x: string]: any; }, source: { [x: string]: any; }) => { + // Iterate through `source` properties and if an `Object` set property to merge of `target` and `source` properties + for (const key of Object.keys(source)) { + if (key.includes('migrations')) { + continue; + } + if (source[key] instanceof Array) { + continue + } + if (source[key] instanceof Object) Object.assign(source[key], this.mergeStore(target[key], source[key])) + } + // Join `target` and modified `source` + Object.assign(target || {}, source) + return target + } + + /** + * IPC Handler + */ + private ipcHandler(): void { + electron.ipcMain.handle('getStoreValue', (_event, key, defaultValue) => { + return (defaultValue ? Store.cfg.get(key, true) : Store.cfg.get(key)); + }); + + electron.ipcMain.handle('setStoreValue', (_event, key, value) => { + Store.cfg.set(key, value); + }); + + electron.ipcMain.on('getStore', (event) => { + event.returnValue = Store.cfg.store + }) + + electron.ipcMain.on('setStore', (_event, store) => { + Store.cfg.store = store + }) + } } diff --git a/src/main/base/utils.ts b/src/main/base/utils.ts index 41e0ae12..da47e917 100644 --- a/src/main/base/utils.ts +++ b/src/main/base/utils.ts @@ -2,18 +2,39 @@ import * as fs from "fs"; import * as path from "path"; import {Store} from "./store"; import {BrowserWindow as bw} from "./browserwindow"; -import {app, dialog, ipcMain, Notification, shell } from "electron"; +import {app, BrowserWindow, ipcMain} from "electron"; import fetch from "electron-fetch"; -import {AppImageUpdater, NsisUpdater} from "electron-updater"; -import * as log from "electron-log"; import ElectronStore from "electron-store"; export class utils { + /** + * Playback Functions + */ + static playback = { + pause: () => { + bw.win.webContents.executeJavaScript("MusicKitInterop.pause()") + }, + play: () => { + bw.win.webContents.executeJavaScript("MusicKitInterop.play()") + }, + playPause: () => { + bw.win.webContents.executeJavaScript("MusicKitInterop.playPause()") + }, + next: () => { + bw.win.webContents.executeJavaScript("MusicKitInterop.next()") + }, + previous: () => { + bw.win.webContents.executeJavaScript("MusicKitInterop.previous()") + }, + seek: (seconds: number) => { + bw.win.webContents.executeJavaScript(`MusicKit.getInstance().seekToTime(${seconds})`) + } + } /** * Paths for the application to use */ - private static paths: any = { + static paths: any = { srcPath: path.join(__dirname, "../../src"), rendererPath: path.join(__dirname, "../../src/renderer"), mainPath: path.join(__dirname, "../../src/main"), @@ -43,6 +64,21 @@ export class utils { return app; } + /** + * Get the IPCMain + */ + static getIPCMain(): Electron.IpcMain { + return ipcMain + } + + /* + * Get the Express instance + * @returns {any} + */ + static getExpress(): any { + return bw.express + } + /** * Fetches the i18n locale for the given language. * @param language {string} The language to fetch the locale for. @@ -64,7 +100,7 @@ export class utils { } else { i18n = Object.assign(i18n, JSON.parse(fs.readFileSync(path.join(this.paths.i18nPath, `en_US.json`), "utf8"))); } - }) + }) } if (key) { return i18n[key] @@ -90,7 +126,6 @@ export class utils { return Store.cfg.store } - /** * Get the store instance * @returns {Store} @@ -116,15 +151,15 @@ export class utils { return Store.pushToCloud } - - - - /** * Gets the browser window */ static getWindow(): Electron.BrowserWindow { - return bw.win + if (bw.win) { + return bw.win + } else { + return BrowserWindow.getAllWindows()[0] + } } static loadPluginFrontend(path: string): void { @@ -134,25 +169,4 @@ export class utils { static loadJSFrontend(path: string): void { bw.win.webContents.executeJavaScript(fs.readFileSync(path, "utf8")); } - - /** - * Playback Functions - */ - static playback = { - pause: () => { - bw.win.webContents.executeJavaScript("MusicKitInterop.pause()") - }, - play: () => { - bw.win.webContents.executeJavaScript("MusicKitInterop.play()") - }, - playPause: () => { - bw.win.webContents.executeJavaScript("MusicKitInterop.playPause()") - }, - next: () => { - bw.win.webContents.executeJavaScript("MusicKitInterop.next()") - }, - previous: () => { - bw.win.webContents.executeJavaScript("MusicKitInterop.previous()") - } - } } diff --git a/src/main/base/vcomponents.json b/src/main/base/vcomponents.json index 42f86c68..fcbc115c 100644 --- a/src/main/base/vcomponents.json +++ b/src/main/base/vcomponents.json @@ -6,7 +6,6 @@ "pages/library-artists", "pages/browse", "pages/groupings", - "pages/settings", "pages/installed-themes", "pages/listen_now", "pages/radio", @@ -60,6 +59,7 @@ "components/fullscreen", "components/miniplayer", "components/castmenu", + "components/pathmenu", "components/airplay-modal", "components/artist-chip", "components/hello-world", diff --git a/src/main/base/vrouting.json b/src/main/base/vrouting.json index 6d69582c..613103d1 100644 --- a/src/main/base/vrouting.json +++ b/src/main/base/vrouting.json @@ -69,6 +69,11 @@ "component": "", "condition": "page.includes('album_')" }, + { + "page": "social-profiles_", + "component": "", + "condition": "$root.page.includes('social-profiles_')" + }, { "page": "recordLabel_", "component": "", diff --git a/src/main/base/wsapi.ts b/src/main/base/wsapi.ts index a10fd529..58f1affd 100644 --- a/src/main/base/wsapi.ts +++ b/src/main/base/wsapi.ts @@ -64,6 +64,15 @@ export class wsapi { electron.ipcMain.on('wsapi-returnvolumeMax', (_event: any, arg: any) => { this.returnmaxVolume(JSON.parse(arg)); }); + electron.ipcMain.on('wsapi-libraryStatus', (_event: any, inLibrary: boolean, rating: number) => { + this.returnLibraryStatus(inLibrary, rating); + }); + electron.ipcMain.on('wsapi-rate', (_event: any, kind: string, id: string, rating: number) => { + this.returnRatingStatus(kind, id, rating); + }); + electron.ipcMain.on('wsapi-change-library', (_event: any, kind: string, id: string, shouldAdd: boolean) => { + this.returnLibraryChange(kind, id, shouldAdd); + }); this.wss = new WebSocketServer({ port: this.port, perMessageDeflate: { @@ -242,6 +251,15 @@ export class wsapi { case "get-currentmediaitem": this._win.webContents.executeJavaScript(`wsapi.getPlaybackState()`); break; + case "library-status": + this._win.webContents.executeJavaScript(`wsapi.getLibraryStatus("${data.type}", "${data.id}")`); + break; + case "rating": + this._win.webContents.executeJavaScript(`wsapi.rate("${data.type}", "${data.id}", ${data.rating})`); + break; + case "change-library": + this._win.webContents.executeJavaScript(`wsapi.changeLibrary("${data.type}", "${data.id}", ${data.add})`); + break; case "quit": electron.app.quit(); break; @@ -317,4 +335,35 @@ export class wsapi { client.send(JSON.stringify(response)); }); } + + returnLibraryStatus(inLibrary: boolean, rating: number) { + const response: standardResponse = { + status: 0, data: { + inLibrary, rating + }, message: "OK", type: "libraryStatus" + } + this.clients.forEach(function each(client: any) { + client.send(JSON.stringify(response)); + }); + } + + returnRatingStatus(kind: string, id: string, rating: number) { + const response: standardResponse = { + status: 0, data: { kind, id, rating }, + message: "OK", type: "rate" + }; + this.clients.forEach(function each(client: any) { + client.send(JSON.stringify(response)); + }); + } + + returnLibraryChange(kind: string, id: string, shouldAdd: boolean) { + const response: standardResponse = { + status: 0, data: { kind, id, add: shouldAdd }, + message: "OK", type: "change-library" + }; + 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 ce2d043d..dcb407c2 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -1,18 +1,18 @@ -require('v8-compile-cache'); - -const {app, components, ipcMain} = require('electron'); -import {join} from 'path'; +require("v8-compile-cache"); +import {join} from "path"; +import {app} from "electron" if (!app.isPackaged) { - app.setPath('userData', join(app.getPath('appData'), 'Cider')); + app.setPath("userData", join(app.getPath("appData"), "Cider")); } import {Store} from "./base/store"; import {AppEvents} from "./base/app"; import {Plugins} from "./base/plugins"; import {BrowserWindow} from "./base/browserwindow"; -import {init as Sentry} from '@sentry/electron'; +import {init as Sentry} from "@sentry/electron"; import {RewriteFrames} from "@sentry/integrations"; +import {components, ipcMain} from "electron" // Analytics for debugging fun yeah. Sentry({ @@ -32,13 +32,13 @@ const CiderPlug = new Plugins(); * App Event Handlers * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ -app.on('ready', () => { +app.on("ready", () => { Cider.ready(CiderPlug); - console.log('[Cider] Application is Ready. Creating Window.') + console.log("[Cider] Application is Ready. Creating Window.") if (!app.isPackaged) { - console.info('[Cider] Running in development mode.') - require('vue-devtools').install() + console.info("[Cider] Running in development mode.") + require("vue-devtools").install() } components.whenReady().then(async () => { @@ -49,11 +49,11 @@ app.on('ready', () => { console.log(gpuInfo) }) - console.log('[Cider][Widevine] Status:', components.status()); + console.log("[Cider][Widevine] Status:", components.status()); Cider.bwCreated(); win.on("ready-to-show", () => { - console.debug('[Cider] Window is Ready.') - CiderPlug.callPlugins('onReady', win); + console.debug("[Cider] Window is Ready.") + CiderPlug.callPlugins("onReady", win); win.show(); }); }); @@ -68,20 +68,16 @@ ipcMain.handle("renderer-ready", (event) => { CiderPlug.callPlugins("onRendererReady", event); }) -ipcMain.on('playbackStateDidChange', (_event, attributes) => { - CiderPlug.callPlugins('onPlaybackStateDidChange', attributes); +ipcMain.on("playbackStateDidChange", (_event, attributes) => { + CiderPlug.callPlugins("onPlaybackStateDidChange", attributes); }); -ipcMain.on('nowPlayingItemDidChange', (_event, attributes) => { - CiderPlug.callPlugins('onNowPlayingItemDidChange', attributes); +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'); +app.on("before-quit", () => { + CiderPlug.callPlugins("onBeforeQuit"); console.warn(`${app.getName()} exited.`); }); @@ -90,21 +86,21 @@ app.on('before-quit', () => { * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ // @ts-ignore -app.on('widevine-ready', (version, lastVersion) => { +app.on("widevine-ready", (version, lastVersion) => { if (null !== lastVersion) { - console.log('[Cider][Widevine] Widevine ' + version + ', upgraded from ' + lastVersion + ', is ready to be used!') + console.log("[Cider][Widevine] Widevine " + version + ", upgraded from " + lastVersion + ", is ready to be used!") } else { - console.log('[Cider][Widevine] Widevine ' + version + ' is ready to be used!') + console.log("[Cider][Widevine] Widevine " + version + " is ready to be used!") } }) // @ts-ignore -app.on('widevine-update-pending', (currentVersion, pendingVersion) => { - console.log('[Cider][Widevine] Widevine ' + currentVersion + ' is ready to be upgraded to ' + pendingVersion + '!') +app.on("widevine-update-pending", (currentVersion, pendingVersion) => { + console.log("[Cider][Widevine] Widevine " + currentVersion + " is ready to be upgraded to " + pendingVersion + "!") }) // @ts-ignore -app.on('widevine-error', (error) => { - console.log('[Cider][Widevine] Widevine installation encountered an error: ' + error) +app.on("widevine-error", (error) => { + console.log("[Cider][Widevine] Widevine installation encountered an error: " + error) app.exit() }) diff --git a/src/main/plugins/discordrpc.ts b/src/main/plugins/discordrpc.ts index 9cc7baf1..9c606d17 100644 --- a/src/main/plugins/discordrpc.ts +++ b/src/main/plugins/discordrpc.ts @@ -52,29 +52,57 @@ export default class DiscordRPC { const self = this this.connect(); console.debug(`[Plugin][${this.name}] Ready.`); - ipcMain.on('updateRPCImage', (_event, imageurl) => { + ipcMain.on('updateRPCImage', async (_event, imageurl) => { if (!this._utils.getStoreValue("general.privateEnabled")) { - fetch('https://api.cider.sh/v1/images', { + let b64data = "" + let postbody = "" + if (imageurl.startsWith("/ciderlocalart")){ + let port = await _win.webContents.executeJavaScript( + `app.clientPort` + ); + console.log("http://localhost:"+port+imageurl) + const response = await fetch("http://localhost:"+port+imageurl) + b64data = (await response.buffer()).toString('base64'); + postbody = JSON.stringify({data: b64data}) + 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.setActivity(self._attributes) + method: 'POST', + body: postbody, + headers: { + 'Content-Type': 'application/json', + 'User-Agent': _win.webContents.getUserAgent() + }, }) + .then(res => res.json()) + .then(function (json) { + self._attributes["artwork"]["url"] = json.url + self.setActivity(self._attributes) + }) + } else { + postbody = JSON.stringify({url: imageurl}) + fetch('https://api.cider.sh/v1/images', { + + method: 'POST', + body: postbody, + headers: { + 'Content-Type': 'application/json', + 'User-Agent': _win.webContents.getUserAgent() + }, + }) + .then(res => res.json()) + .then(function (json) { + self._attributes["artwork"]["url"] = json.url + self.setActivity(self._attributes) + }) + } + } }) ipcMain.on("reloadRPC", () => { console.log(`[DiscordRPC][reload] Reloading DiscordRPC.`); this._client.destroy() - this._client.endlessLogin({clientId: this._utils.getStoreValue("general.discordrpc.client") === "Cider" ? '911790844204437504' : '886578863147192350'}) + this._client.endlessLogin({clientId: this._utils.getStoreValue("connectivity.discord_rpc.client") === "Cider" ? '911790844204437504' : '886578863147192350'}) .then(() => { this.ready = true this._utils.getWindow().webContents.send("rpcReloaded", this._client.user) @@ -88,6 +116,7 @@ export default class DiscordRPC { }) } + /** * Runs on app stop */ @@ -125,7 +154,7 @@ export default class DiscordRPC { * @private */ private connect() { - if (!this._utils.getStoreValue("general.discordrpc.enabled")) { + if (!this._utils.getStoreValue("connectivity.discord_rpc.enabled")) { return; } @@ -143,7 +172,7 @@ export default class DiscordRPC { }) // Login to Discord - this._client.endlessLogin({clientId: this._utils.getStoreValue("general.discordrpc.client") === "Cider" ? '911790844204437504' : '886578863147192350'}) + this._client.endlessLogin({clientId: this._utils.getStoreValue("connectivity.discord_rpc.client") === "Cider" ? '911790844204437504' : '886578863147192350'}) .then(() => { this.ready = true }) @@ -161,8 +190,8 @@ export default class DiscordRPC { // Check if show buttons is (true) or (false) let activity: Object = { - details: this._utils.getStoreValue("general.discordrpc.details_format"), - state: this._utils.getStoreValue("general.discordrpc.state_format"), + details: this._utils.getStoreValue("connectivity.discord_rpc.details_format"), + state: this._utils.getStoreValue("connectivity.discord_rpc.state_format"), largeImageKey: attributes?.artwork?.url?.replace('{w}', '1024').replace('{h}', '1024'), largeImageText: attributes.albumName, instance: false // Whether the activity is in a game session @@ -177,7 +206,7 @@ export default class DiscordRPC { } // Set the activity - if (!attributes.status && this._utils.getStoreValue("general.discordrpc.clear_on_pause")) { + if (!attributes.status && this._utils.getStoreValue("connectivity.discord_rpc.clear_on_pause")) { this._client.clearActivity() } else if (activity && this._activityCache !== activity) { this._client.setActivity(activity) @@ -191,7 +220,7 @@ export default class DiscordRPC { private filterActivity(activity: any, attributes: any): Object { // Add the buttons if people want them - if (!this._utils.getStoreValue("general.discordrpc.hide_buttons")) { + if (!this._utils.getStoreValue("connectivity.discord_rpc.hide_buttons")) { activity.buttons = [ {label: 'Listen on Cider', url: attributes.url.cider}, {label: 'View on Apple Music', url: attributes.url.appleMusic} @@ -199,13 +228,13 @@ export default class DiscordRPC { } // Add the timestamp if its playing and people want them - if (!this._utils.getStoreValue("general.discordrpc.hide_timestamp") && attributes.status) { + if (!this._utils.getStoreValue("connectivity.discord_rpc.hide_timestamp") && attributes.status) { activity.startTimestamp = Date.now() - (attributes?.durationInMillis - attributes?.remainingTime) activity.endTimestamp = attributes.endTime } // If the user wants to keep the activity when paused - if (!this._utils.getStoreValue("general.discordrpc.clear_on_pause")) { + if (!this._utils.getStoreValue("connectivity.discord_rpc.clear_on_pause")) { activity.smallImageKey = attributes.status ? 'play' : 'pause'; activity.smallImageText = attributes.status ? 'Playing' : 'Paused'; } diff --git a/src/main/plugins/lastfm.ts b/src/main/plugins/lastfm.ts index 5018c01b..027f997c 100644 --- a/src/main/plugins/lastfm.ts +++ b/src/main/plugins/lastfm.ts @@ -1,278 +1,236 @@ -import * as electron from 'electron'; -import * as fs from 'fs'; -import {resolve} from 'path'; +export default class lastfm { -export default class LastFMPlugin { - private sessionPath = resolve(electron.app.getPath('userData'), 'session.json'); - private apiCredentials = { + /** + * Base Plugin Information + */ + public name: string = 'LastFM Plugin'; + public version: string = '2.0.0'; + public author: string = 'Core (Cider Collective)'; + + + private _apiCredentials = { key: "f9986d12aab5a0fe66193c559435ede3", secret: "acba3c29bd5973efa38cc2f0b63cc625" } /** - * Private variables for interaction in plugins + * Plugin Initialization */ - private _win: any; - private _app: any; - private _lastfm: any; - private _store: any; - private _timer: any; - - private authenticateFromFile() { - let sessionData = require(this.sessionPath) - console.log("[LastFM][authenticateFromFile] Logging in with Session Info.") - this._lastfm.setSessionCredentials(sessionData.username, sessionData.key) - console.log("[LastFM][authenticateFromFile] Logged in.", sessionData.username, sessionData.key) - } - - - authenticate() { - try { - if (this._store.lastfm.auth_token) { - this._store.lastfm.enabled = true; - } - - if (!this._store.lastfm.enabled || !this._store.lastfm.auth_token) { - this._store.lastfm.enabled = false; - return - } - /// dont move this require to top , app wont load - const LastfmAPI = require('lastfmapi'); - const lfmAPI = new LastfmAPI({ - 'api_key': this.apiCredentials.key, - 'secret': this.apiCredentials.secret - }); - - this._lastfm = Object.assign(lfmAPI, {cachedAttributes: false, cachedNowPlayingAttributes: false}); - - fs.stat(this.sessionPath, (err: any) => { - if (err) { - console.error("[LastFM][Session] Session file couldn't be opened or doesn't exist,", err) - console.log("[LastFM][Auth] Beginning authentication from configuration") - console.log("[LastFM][tk]", this._store.lastfm.auth_token) - this._lastfm.authenticate(this._store.lastfm.auth_token, (err: any, session: any) => { - if (err) { - throw err; - } - console.log("[LastFM] Successfully obtained LastFM session info,", session); // {"name": "LASTFM_USERNAME", "key": "THE_USER_SESSION_KEY"} - console.log("[LastFM] Saving session info to disk.") - let tempData = JSON.stringify(session) - fs.writeFile(this.sessionPath, tempData, (err: any) => { - if (err) - console.log("[LastFM][fs]", err) - else { - console.log("[LastFM][fs] File was written successfully.") - this.authenticateFromFile() - new electron.Notification({ - title: electron.app.getName(), - body: "Successfully logged into LastFM using Authentication Key." - }).show() - } - }) - }); - } else { - this.authenticateFromFile() - } - }) - } catch (err) { - console.log(err) - } - } - - private scrobbleSong(attributes: any) { - if (this._timer) clearTimeout(this._timer); - var self = this; - this._timer = setTimeout(async () => { - const currentAttributes = attributes; - - if (!self._lastfm || self._lastfm.cachedAttributes === attributes) { - return - } - - if (self._lastfm.cachedAttributes) { - if (self._lastfm.cachedAttributes.playParams.id === attributes.playParams.id) return; - } - - const artist = await this.getPrimaryArtist(attributes) - const album = this.getAlbumName(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 { - return console.log('[LastFM] Did not add ', attributes.name, '—', artist, 'because now playing a other song.'); - } - }, Math.round(attributes.durationInMillis * Math.min((self._store.lastfm.scrobble_after / 100), 0.8))); - } - - private async updateNowPlayingSong(attributes: any) { - if (!this._lastfm || this._lastfm.cachedNowPlayingAttributes === attributes || !this._store.lastfm.NowPlaying) { - return - } - - if (this._lastfm.cachedNowPlayingAttributes) { - if (this._lastfm.cachedNowPlayingAttributes.playParams.id === attributes.playParams.id) return; - } - - 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': artist, - 'track': attributes.name, - 'album': album, - 'albumArtist': artist - }, function (err: any, nowPlaying: any) { - if (err) { - return console.error('[LastFM] An error occurred while updating nowPlayingSong', err); - } - - console.log('[LastFM] Successfully updated nowPlayingSong', nowPlaying); - }); - this._lastfm.cachedNowPlayingAttributes = attributes - } - - } else { - this.authenticate() - } - } - - 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 - } + private _lfm: any = null; + private _authenticated: boolean = false; + private _scrobbleDelay: any = null; + private _utils: any = null; + private _scrobbleCache: any = {}; + private _nowPlayingCache: any = {}; /** - * Base Plugin Details (Eventually implemented into a GUI in settings) + * Public Methods */ - public name: string = 'LastFMPlugin'; - 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() - 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')) { - console.log('[LastFMPlugin ok]') - let authURI = String(argv).split('/auth/')[1]; - if (authURI.startsWith('lastfm')) { // If we wanted more auth options - const authKey = authURI.split('lastfm?token=')[1]; - this._store.lastfm.enabled = true; - this._store.lastfm.auth_token = authKey; - console.log(authKey); - this._win.webContents.send('LastfmAuthenticated', authKey); - this.authenticate(); - } - } - }) + constructor(utils: any) { + this._utils = utils; + } + + onReady(_win: Electron.BrowserWindow): void { + this.initializeLastFM("", this._apiCredentials) + + // Register the ipcMain handlers + this._utils.getIPCMain().handle('lastfm:url', (event: any) => { + console.debug(`[${lastfm.name}:url] Called.`) + return this._lfm.getAuthenticationUrl({"cb": "cider://auth/lastfm"}) }) - electron.app.on('open-url', (event: any, arg: any) => { - console.log('[LastFMPlugin] yes') - event.preventDefault(); - if (arg.includes('auth')) { - let authURI = String(arg).split('/auth/')[1]; - if (authURI.startsWith('lastfm')) { // If we wanted more auth options - const authKey = authURI.split('lastfm?token=')[1]; - this._store.lastfm.enabled = true; - this._store.lastfm.auth_token = authKey; - this._win.webContents.send('LastfmAuthenticated', authKey); - console.log(authKey); - this.authenticate(); - } - } + + this._utils.getIPCMain().on('lastfm:auth', (event: any, token: string) => { + console.debug(`[${lastfm.name}:auth] Token: `, token) + this.authenticateLastFM(token) + }) + + this._utils.getIPCMain().on('lastfm:disconnect', (_event: any) => { + this._lfm.setSessionCredentials(null, null); + this._authenticated = false; + console.debug(`[${lastfm.name}:disconnect] Disconnected`) + }) + + this._utils.getIPCMain().on('lastfm:nowPlayingChange', (event: any, attributes: any) => { + if (this._utils.getStoreValue("connectivity.lastfm.filter_loop") || this._utils.getStoreValue("general.privateEnabled")) return; + this.updateNowPlayingTrack(attributes) + }) + + this._utils.getIPCMain().on('lastfm:scrobbleTrack', (event: any, attributes: any) => { + if (this._utils.getStoreValue("general.privateEnabled")) return; + this.scrobbleTrack(attributes) }) } /** - * Runs on app ready + * Runs on playback State Change + * @param attributes Music Attributes (attributes.status = current state) */ - onReady(win: any): void { - this._win = win; - this.authenticate(); - } - - /** - * Runs on app stop - */ - onBeforeQuit(): void { - console.log('Example plugin stopped'); + onPlaybackStateDidChange(attributes: object): void { } /** * Runs on song change * @param attributes Music Attributes + * @param scrobble */ - 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) + onNowPlayingItemDidChange(attributes: any, scrobble = false): void { + if (this._utils.getStoreValue("general.privateEnabled")) return; + this.updateNowPlayingTrack(attributes) + } + + /** + * Initialize LastFM + * @param token + * @param api + * @private + */ + private initializeLastFM(token: string, api: { key: string, secret: string }): void { + console.debug(`[${lastfm.name}:initialize] Initializing LastFM`) + const LastfmAPI = require("lastfmapi") + this._lfm = new LastfmAPI({ + 'api_key': api.key, + 'secret': api.secret, + }); + + if (this._utils.getStoreValue("connectivity.lastfm.secrets.username") && this._utils.getStoreValue("connectivity.lastfm.secrets.key")) { + this._lfm.setSessionCredentials(this._utils.getStoreValue("connectivity.lastfm.secrets.username"), this._utils.getStoreValue("connectivity.lastfm.secrets.key")); + this._authenticated = true; + } else { + this.authenticateLastFM(token) } } -} + /** + * Authenticate the user with the given token + * @param token + * @private + */ + private authenticateLastFM(token: string): void { + if (!token) return; + this._lfm.authenticate(token, (err: any, session: any) => { + if (err) { + console.error(`[${lastfm.name}:authenticate] Error: ${typeof err === "string" ? err : err.message}`); + + this._utils.getWindow().webContents.executeJavaScript(`app.notyf.error("${err.message}");`) + return; + } + this._utils.getWindow().webContents.send('lastfm:authenticated', session) + this._authenticated = true; + console.debug(`[${lastfm.name}:authenticate] Authenticated as ${session.username}`) + }); + } + + /** + * Verifies the track information with lastfm + * @param attributes + * @param callback + * @private + */ + private verifyTrack(attributes: any, callback: Function): void { + if (!attributes) return attributes; + + if (!attributes.lfmAlbum) { + this._lfm.album.getInfo({ + "artist": attributes.artistName, + "album": attributes.albumName + }, (err: any, data: any) => { + if (err) { + console.error(`[${lastfm.name}] [album.getInfo] Error: ${typeof err === "string" ? err : err.message}`) + return {}; + } + if (data) { + attributes.lfmAlbum = data + callback(attributes) + } + }) + } else { + this._lfm.track.getCorrection(attributes.artistName, attributes.name, (err: any, data: any) => { + if (err) { + console.error(`[${lastfm.name}] [track.getCorrection] Error: ${typeof err === "string" ? err : err.message}`) + return {}; + } + if (data) { + attributes.lfmTrack = data.correction.track + callback(attributes) + } + }) + } + + + } + + /** + * Scrobbles the track to lastfm + * @param attributes + * @private + */ + private scrobbleTrack(attributes: any): void { + if (!attributes?.lfmTrack || !attributes?.lfmAlbum) { + this.verifyTrack(attributes, (a: any) => { + this.scrobbleTrack(a) + }) + return + } + + if (!this._authenticated || !attributes || this._utils.getStoreValue("connectivity.lastfm.filter_types")[attributes.playParams.kind] || (this._utils.getStoreValue("connectivity.lastfm.filter_loop") && this._scrobbleCache.track === attributes.lfmTrack.name)) return; + + // Scrobble + const scrobble = { + 'artist': attributes.lfmTrack.artist.name, + 'track': attributes.lfmTrack.name, + 'album': attributes.lfmAlbum.name, + 'albumArtist': attributes.lfmAlbum.artist, + 'timestamp': new Date().getTime() / 1000, + 'trackNumber': attributes.trackNumber, + 'duration': attributes.durationInMillis / 1000, + } + + // Easy Debugging + console.debug(`[${lastfm.name}:scrobble] Scrobbling ${scrobble.artist} - ${scrobble.track}`) + + // Scrobble the track + this._lfm.track.scrobble(scrobble, (err: any, _res: any) => { + if (err) { + console.error(`[${lastfm.name}:scrobble] Scrobble failed: ${err.message}`); + } else { + console.debug(`[${lastfm.name}:scrobble] Track scrobbled: ${scrobble.artist} - ${scrobble.track}`); + this._scrobbleCache = scrobble + } + }); + } + + /** + * Updates the now playing track + * @param attributes + * @private + */ + private updateNowPlayingTrack(attributes: any): void { + if (!attributes?.lfmTrack || !attributes?.lfmAlbum) { + this.verifyTrack(attributes, (a: any) => { + this.updateNowPlayingTrack(a) + }) + return + } + + if (!this._authenticated || !attributes || this._utils.getStoreValue("connectivity.lastfm.filter_types")[attributes.playParams.kind] || (this._utils.getStoreValue("connectivity.lastfm.filter_loop") && this._nowPlayingCache.track === attributes.lfmTrack.name)) return; + + const nowPlaying = { + 'artist': attributes.lfmTrack.artist.name, + 'track': attributes.lfmTrack.name, + 'album': attributes.lfmAlbum.name, + 'trackNumber': attributes.trackNumber, + 'duration': attributes.durationInMillis / 1000, + 'albumArtist': attributes.lfmAlbum.artist, + } + + this._lfm.track.updateNowPlaying(nowPlaying, (err: any, res: any) => { + if (err) { + console.error(`[${lastfm.name}:updateNowPlaying] Now Playing Update failed: ${err.message}`); + } else { + console.debug(`[${lastfm.name}:updateNowPlaying] Now Playing Updated: ${nowPlaying.artist} - ${nowPlaying.track}`); + this._nowPlayingCache = nowPlaying + } + }); + } + +} \ No newline at end of file diff --git a/src/main/plugins/menubar.ts b/src/main/plugins/menubar.ts index 5b9f47a1..a51b6b05 100644 --- a/src/main/plugins/menubar.ts +++ b/src/main/plugins/menubar.ts @@ -17,6 +17,8 @@ export default class Thumbar { * Menubar Assets * @private */ + + private isNotMac: boolean = process.platform !== 'darwin'; private isMac: boolean = process.platform === 'darwin'; private _menuTemplate: any = [ { @@ -28,14 +30,14 @@ export default class Thumbar { }, {type: 'separator'}, { - label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.toggleprivate'), + label: utils.getLocale(utils.getStoreValue('general.language'), 'term.toggleprivate'), accelerator: utils.getStoreValue("general.keybindings.togglePrivateSession").join('+'), click: () => utils.getWindow().webContents.executeJavaScript(`app.cfg.general.privateEnabled = !app.cfg.general.privateEnabled`) }, { - label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.settings'), + label: utils.getLocale(utils.getStoreValue('general.language'), 'term.settings'), accelerator: utils.getStoreValue("general.keybindings.settings").join('+'), - click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('settings')`) + click: () => utils.getWindow().webContents.executeJavaScript(`app.openSettingsPage()`) }, ...(this.isMac ? [ {type: 'separator'}, @@ -47,11 +49,21 @@ export default class Thumbar { {type: 'separator'}, {role: 'quit'} ] : []), + ...(this.isNotMac ? [ + {type: 'separator'}, + { + label: utils.getLocale(utils.getStoreValue('general.language'), 'term.quit'), + accelerator: 'Control+Q', + click: () => app.quit() + + } + ] : []) ] }, { label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.view'), submenu: [ + ...(this.isMac ? [ {role: 'reload'}, {role: 'forceReload'}, {role: 'toggleDevTools'}, @@ -62,40 +74,41 @@ export default class Thumbar { {type: 'separator'}, {role: 'togglefullscreen'}, {type: 'separator'}, + ] : []), { - label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.search'), + label: utils.getLocale(utils.getStoreValue('general.language'), 'term.search'), accelerator: utils.getStoreValue("general.keybindings.search").join('+'), click: () => utils.getWindow().webContents.executeJavaScript('app.focusSearch()') }, {type:'separator'}, { - label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.listennow'), + label: utils.getLocale(utils.getStoreValue('general.language'), 'term.listenNow'), accelerator: utils.getStoreValue('general.keybindings.listnow').join('+'), click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('listen_now')`) }, { - label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.browse'), + label: utils.getLocale(utils.getStoreValue('general.language'), 'term.browse'), accelerator: utils.getStoreValue("general.keybindings.browse").join('+'), click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('browse')`) }, {type: 'separator'}, { - label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.recentlyAdded') + label: utils.getLocale(utils.getStoreValue('general.language'), 'term.recentlyAdded') ,accelerator: utils.getStoreValue("general.keybindings.recentAdd").join('+'), click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('library-recentlyadded')`) }, { - label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.songs'), + label: utils.getLocale(utils.getStoreValue('general.language'), 'term.songs'), accelerator: utils.getStoreValue("general.keybindings.songs").join('+'), click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('library-songs')`) }, { - label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.albums'), + label: utils.getLocale(utils.getStoreValue('general.language'), 'term.albums'), accelerator: utils.getStoreValue("general.keybindings.albums").join('+'), click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('library-albums')`) }, { - label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.artists'), + label: utils.getLocale(utils.getStoreValue('general.language'), 'term.artists'), accelerator: utils.getStoreValue("general.keybindings.artists").join('+'), click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('library-artists')`) }, @@ -105,29 +118,16 @@ export default class Thumbar { label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.window'), submenu: [ {role: 'minimize', label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.minimize')}, + {type: 'separator'}, ...(this.isMac ? [ { label: 'Show', click: () => utils.getWindow().show() }, - {role: 'toggleDevTools'}, + {role: 'zoom'}, {type: 'separator'}, - { - label:'Zoom', - submenu: [ - {role: 'zoom'}, - {role: 'resetZoom'}, - {role: 'zoomIn'}, - {role: 'zoomOut'}, - ] - }, - {type: 'separator'}, - {role: 'togglefullscreen'}, - - - {type: 'separator'}, - {role: 'front'}, - {role: 'close'}, + {role: 'front'}, + {role: 'close'}, { label: 'Edit', submenu: [ @@ -139,29 +139,74 @@ export default class Thumbar { {role: 'paste'}, ] }, - ] : [ + {type: 'separator'}, + ] : [ ]), + ...(this.isNotMac ? [ + + { + label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.zoom'), + submenu: [ + { + label: utils.getLocale(utils.getStoreValue('general.language'), 'term.zoomin'), + role: 'zoomIn', + accelerator: utils.getStoreValue("general.keybindings.zoomn").join('+') + + }, + { + label: utils.getLocale(utils.getStoreValue('general.language'), 'term.zoomout'), + role: 'zoomOut', + accelerator: utils.getStoreValue("general.keybindings.zoomt").join('+') + + }, + { + label: utils.getLocale(utils.getStoreValue('general.language'), 'term.zoomreset'), + role: 'resetZoom', + accelerator: utils.getStoreValue("general.keybindings.zoomrst").join('+') + } + ] + }, + {type: 'separator'}, + { + label: utils.getLocale(utils.getStoreValue('general.language'), 'term.fullscreen'), + accelerator: 'Control+Enter', + role: 'togglefullscreen' + }, + {type: 'separator'}, + { + label: utils.getLocale(utils.getStoreValue('general.language'), 'action.close'), + accelerator: 'Control+W', + role: 'close' + }, {type:'separator'}, - {role: 'reload', label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.reload')}, - {role: 'forceReload', label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.forcereload')}, - ]), - ] + { + label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.reload'), + accelerator: 'Control+R', + role: 'reload' + }, + { + label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.forcereload'), + accelerator: 'Control+Shift+R', + role: 'forceReload' + }, + ] : []), + ], }, { label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.controls'), submenu: [ { - label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.playpause'), + label: utils.getLocale(utils.getStoreValue('general.language'), 'term.playpause'), accelerator: 'Space', click: () => utils.getWindow().webContents.executeJavaScript(`app.SpacePause()`) }, { - label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.next'), + label: utils.getLocale(utils.getStoreValue('general.language'), 'term.next'), accelerator: 'CommandOrControl+Right', click: () => utils.getWindow().webContents.executeJavaScript(`MusicKitInterop.next()`) }, { - label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.previous'), + label: utils.getLocale(utils.getStoreValue('general.language'), 'term.previous'), accelerator: 'CommandOrControl+Left', click: () => utils.getWindow().webContents.executeJavaScript(`MusicKitInterop.previous()`) }, @@ -178,19 +223,19 @@ export default class Thumbar { }, {type: 'separator'}, { - label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.cast'), + label: utils.getLocale(utils.getStoreValue('general.language'), 'term.cast2'), accelerator: utils.getStoreValue("general.keybindings.castToDevices").join('+'), click: () => utils.getWindow().webContents.executeJavaScript(`app.modals.castMenu = true`) }, { - label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.webremote'), + label: utils.getLocale(utils.getStoreValue('general.language'), 'term.webremote'), accelerator: utils.getStoreValue("general.keybindings.webRemote").join('+'), sublabel: 'Opens in external window', click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('remote-pair')`) }, {type: 'separator'}, { - label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.audio'), + label: utils.getLocale(utils.getStoreValue('general.language'), 'term.audioSettings'), accelerator: utils.getStoreValue("general.keybindings.audioSettings").join('+'), click: () => utils.getWindow().webContents.executeJavaScript(`app.modals.audioSettings = true`) }, @@ -207,7 +252,7 @@ export default class Thumbar { label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.account'), submenu: [ { - label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.accountsettings'), + label: utils.getLocale(utils.getStoreValue('general.language'), 'term.accountSettings'), click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('apple-account-settings')`) }, { @@ -221,11 +266,11 @@ export default class Thumbar { role: 'help', submenu: [ { - label: utils.getLocale('Discord', 'menubar.options.discord'), + label: utils.getLocale(utils.getStoreValue('general.language'), 'term.discord'), click: () => shell.openExternal("https://discord.gg/AppleMusic").catch(console.error) }, { - label: utils.getLocale('GitHub Wiki', 'menubar.options.github'), + label: utils.getLocale(utils.getStoreValue('general.language'), 'term.github'), click: () => shell.openExternal("https://github.com/ciderapp/Cider/wiki/Troubleshooting").catch(console.error) }, {type: 'separator'}, diff --git a/src/main/plugins/mpris.ts b/src/main/plugins/mpris.ts index 25730ee9..2dcfa64d 100644 --- a/src/main/plugins/mpris.ts +++ b/src/main/plugins/mpris.ts @@ -6,7 +6,10 @@ export default class mpris { * Private variables for interaction in plugins */ private static utils: any; - + /** + * MPRIS Service + */ + private static player: Player.Player; /** * Base Plugin Details (Eventually implemented into a GUI in settings) */ @@ -15,30 +18,17 @@ export default class mpris { public version: string = '1.0.0'; public author: string = 'Core'; - /** - * MPRIS Service - */ - private static player: Player.Player; - private static mprisEvents: Object = { - "playpause": "playPause", - "play": "play", - "pause": "pause", - "next": "next", - "previous": "previous", - } - /******************************************************************************************* * Private Methods * ****************************************************************************************/ /** - * Runs a media event - * @param type - pausePlay, next, previous - * @private + * Runs on plugin load (Currently run on application start) */ - private static runMediaEvent(type: string) { - console.debug(`[Plugin][${this.name}] ${type}.`); - mpris.utils.getWindow().webContents.executeJavaScript(`MusicKitInterop.${type}()`).catch(console.error) + constructor(utils: any) { + mpris.utils = utils + + console.debug(`[Plugin][${mpris.name}] Loading Complete.`); } /** @@ -54,7 +44,6 @@ export default class mpris { } } - /** * Connects to MPRIS Service */ @@ -63,29 +52,49 @@ export default class mpris { const player = Player({ name: 'cider', identity: 'Cider', - supportedUriSchemes: [], - supportedMimeTypes: [], supportedInterfaces: ['player'] }); - console.debug(`[Plugin][${mpris.name}] Successfully connected.`); + console.debug(`[${mpris.name}:connect] Successfully connected.`); - const pos_atr = {durationInMillis: 0}; - player.getPosition = function () { - const durationInMicro = pos_atr.durationInMillis * 1000; - const percentage = parseFloat("0") || 0; - return durationInMicro * percentage; + const renderer = mpris.utils.getWindow().webContents + const loopType: { [key: string]: number; } = { + 'none': 0, + 'track': 1, + 'playlist': 2, } - for (const [key, value] of Object.entries(mpris.mprisEvents)) { - player.on(key, function () { - mpris.runMediaEvent(value) - }); - } + player.on('next', () => mpris.utils.playback.next()) + player.on('previous', () => mpris.utils.playback.previous()) + player.on('playpause', () => mpris.utils.playback.playPause()) + player.on('play', () => mpris.utils.playback.play()) + player.on('pause', () => mpris.utils.playback.pause()) + player.on('quit', () => mpris.utils.getApp().exit()) + player.on('position', (args: { position: any; }) => mpris.utils.playback.seek(args.position / 1000 / 1000)) + player.on('loopStatus', (status: string) => renderer.executeJavaScript(`app.mk.repeatMode = ${loopType[status.toLowerCase()]}`)) + player.on('shuffle', () => renderer.executeJavaScript('app.mk.shuffleMode = (app.mk.shuffleMode === 0) ? 1 : 0')) - player.on('quit', function () { - process.exit(); - }); + mpris.utils.getIPCMain().on('mpris:playbackTimeDidChange', (event: any, time: number) => { + player.getPosition = () => time; + }) + + mpris.utils.getIPCMain().on('repeatModeDidChange', (_e: any, mode: number) => { + switch (mode) { + case 0: + player.loopStatus = Player.LOOP_STATUS_NONE; + break; + case 1: + player.loopStatus = Player.LOOP_STATUS_TRACK; + break; + case 2: + player.loopStatus = Player.LOOP_STATUS_PLAYLIST; + break; + } + }) + + mpris.utils.getIPCMain().on('shuffleModeDidChange', (_e: any, mode: number) => { + player.shuffle = mode === 1 + }) mpris.player = player; } @@ -93,9 +102,9 @@ export default class mpris { /** * Update M.P.R.I.S Player Attributes */ - private static updatePlayer(attributes: any) { + private static updateMetaData(attributes: any) { - const MetaData = { + mpris.player.metadata = { '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'), @@ -103,33 +112,12 @@ export default class mpris { 'xesam:album': `${attributes.albumName}`, 'xesam:artist': [`${attributes.artistName}`], 'xesam:genre': attributes.genreNames - } - - if (mpris.player.metadata["mpris:trackid"] === MetaData["mpris:trackid"]) { - return - } - - mpris.player.metadata = MetaData; + }; } - /** - * Update M.P.R.I.S Player State - * @private - * @param attributes - */ - 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 - } - } + /******************************************************************************************* + * Public Methods + * ****************************************************************************************/ /** * Clear state @@ -143,26 +131,12 @@ export default class mpris { mpris.player.playbackStatus = Player.PLAYBACK_STATUS_STOPPED; } - - /******************************************************************************************* - * Public Methods - * ****************************************************************************************/ - - /** - * Runs on plugin load (Currently run on application start) - */ - constructor(utils: any) { - mpris.utils = utils - - console.debug(`[Plugin][${mpris.name}] Loading Complete.`); - } - /** * Runs on app ready */ @mpris.linuxOnly onReady(_: any): void { - console.debug(`[Plugin][${mpris.name}] Ready.`); + console.debug(`[${mpris.name}:onReady] Ready.`); } /** @@ -187,9 +161,8 @@ export default class mpris { * @param attributes Music Attributes (attributes.status = current state) */ @mpris.linuxOnly - onPlaybackStateDidChange(attributes: object): void { - console.debug(`[Plugin][${mpris.name}] onPlaybackStateDidChange.`); - mpris.updatePlayerState(attributes) + onPlaybackStateDidChange(attributes: any): void { + mpris.player.playbackStatus = attributes?.status ? Player.PLAYBACK_STATUS_PLAYING : Player.PLAYBACK_STATUS_PAUSED } /** @@ -198,8 +171,7 @@ export default class mpris { */ @mpris.linuxOnly onNowPlayingItemDidChange(attributes: object): void { - console.debug(`[Plugin][${mpris.name}] onMetadataDidChange.`); - mpris.updatePlayer(attributes); + mpris.updateMetaData(attributes); } } diff --git a/src/main/providers/local/db/index.ts b/src/main/providers/local/db/index.ts new file mode 100644 index 00000000..89063d20 --- /dev/null +++ b/src/main/providers/local/db/index.ts @@ -0,0 +1,12 @@ +import * as PouchDB from 'pouchdb-node'; +import {join} from 'path'; +import {app} from "electron"; +PouchDB.plugin(require('pouchdb-upsert')); +export class ProviderDB { + public static db: any = null + static init() { + if (ProviderDB.db == null){ + ProviderDB.db = new PouchDB(join(app.getPath('userData'), 'tracksdb')) + } + } +} \ No newline at end of file diff --git a/src/main/providers/local/index.ts b/src/main/providers/local/index.ts new file mode 100644 index 00000000..bdcf547c --- /dev/null +++ b/src/main/providers/local/index.ts @@ -0,0 +1,180 @@ +import { ProviderDB } from "./db"; +import * as path from 'path'; +const { readdir } = require('fs').promises; +import { utils } from '../../base/utils'; +import * as mm from 'music-metadata'; +import {Md5} from 'ts-md5/dist/md5'; +import e from "express"; +import { EventEmitter } from 'events'; + +export class LocalFiles { + static localSongs: any = []; + static localSongsArts: any = []; + public static DB = ProviderDB.db; + static eventEmitter = new EventEmitter(); + + static getDataType(item_id : String | any){ + if ((item_id ?? ('')).startsWith('ciderlocalart')) + return 'artwork' + else if ((item_id ?? ('')).startsWith('ciderlocal')) + return 'track' + } + + static async sendOldLibrary() { + ProviderDB.init() + let rows = (await ProviderDB.db.allDocs({include_docs: true, + attachments: true})).rows.map((item: any)=>{return item.doc}) + let tracks = rows.filter((item: any) => {return this.getDataType(item._id) == "track"}) + let arts = rows.filter((item: any) => {return this.getDataType(item._id) == "artwork"}) + this.localSongs = tracks; + this.localSongsArts = arts; + return tracks; + } + + static async scanLibrary() { + ProviderDB.init() + let folders = utils.getStoreValue("libraryPrefs.localPaths") + if (folders == null || folders.length == null || folders.length == 0) folders = [] + let files: any[] = [] + for (var folder of folders) { + // get files from the Music folder + files = files.concat(await LocalFiles.getFiles(folder)) + } + + let supporttedformats = ["mp3", "aac", "webm", "flac", "m4a", "ogg", "wav", "opus"] + let audiofiles = files.filter(f => supporttedformats.includes(f.substring(f.lastIndexOf('.') + 1))); + let metadatalist = [] + let metadatalistart = [] + let numid = 0; + for (var audio of audiofiles) { + try { + const metadata = await mm.parseFile(audio); + let lochash = Md5.hashStr(audio) ?? numid; + if (metadata != null) { + let form = { + "id": "ciderlocal" + lochash, + "_id": "ciderlocal" + lochash, + "type": "podcast-episodes", + "href": audio, + "attributes": { + "artwork": { + "width": 3000, + "height": 3000, + "url": "/ciderlocalart/" + "ciderlocal" + lochash, + }, + "topics": [], + "url": "", + "subscribable": true, + "mediaKind": "audio", + "genreNames": [ + "" + ], + // "playParams": { + // "id": "ciderlocal" + numid, + // "kind": "podcast", + // "isLibrary": true, + // "reporting": false }, + "trackNumber": metadata.common.track?.no ?? 0, + "discNumber": metadata.common.disk?.no ?? 0, + "name": metadata.common.title ?? audio.substring(audio.lastIndexOf('\\') + 1), + "albumName": metadata.common.album, + "artistName": metadata.common.artist, + "copyright": metadata.common.copyright ?? "", + "assetUrl": "file:///" + audio, + "contentAdvisory": "", + "releaseDateTime": `${metadata?.common?.year ?? '2022'}-05-13T00:23:00Z`, + "durationInMillis": Math.floor((metadata.format.duration ?? 0) * 1000), + "bitrate": Math.floor((metadata.format?.bitrate ?? 0) / 1000), + "offers": [ + { + "kind": "get", + "type": "STDQ" + } + ], + "contentRating": "clean" + }, + flavor: Math.floor((metadata.format?.bitrate ?? 0) / 1000), + localFilesMetadata: { + lossless: metadata.format?.lossless, + container: metadata.format?.container, + bitDepth: metadata.format?.bitsPerSample ?? 0, + sampleRate: metadata.format?.sampleRate ?? 0, + }, + }; + let art = { + id: "ciderlocal" + lochash, + _id: "ciderlocalart" + lochash, + url: metadata.common.picture != undefined ? metadata.common.picture[0].data.toString('base64') : "", + } + metadatalistart.push(art) + numid += 1; + ProviderDB.db.putIfNotExists(form) + ProviderDB.db.putIfNotExists(art) + metadatalist.push(form) + + if (this.localSongs.length === 0 && numid % 10 === 0) { // send updated chunks only if there is no previous database + this.eventEmitter.emit('newtracks', metadatalist)} + } + } catch (e) {console.error("localfiles error:", e)} + } + // console.log('metadatalist', metadatalist); + this.localSongs = metadatalist; + this.localSongsArts = metadatalistart; + return metadatalist; + } + static async getFiles(dir: any) { + const dirents = await readdir(dir, { withFileTypes: true }); + const files = await Promise.all(dirents.map((dirent: any) => { + const res = path.resolve(dir, dirent.name); + return dirent.isDirectory() ? this.getFiles(res) : res; + })); + return Array.prototype.concat(...files); + } + + static async cleanUpDB(){ + let folders = utils.getStoreValue("libraryPrefs.localPaths") + let rows = (await ProviderDB.db.allDocs({include_docs: true, + attachments: true})).rows.map((item: any)=>{return item.doc}) + let tracks = rows.filter((item: any) => {return this.getDataType(item._id) == "track" && !folders.some((i: String) => {return item["attributes"]["assetUrl"].startsWith("file:///" + i)})}) + let hashs = tracks.map((i: any) => {return i._id}) + for (let hash of hashs){ + try{ + ProviderDB.db.get(hash).then(function (doc: any) { + return ProviderDB.db.remove(doc); + });} catch(e){} + try{ + ProviderDB.db.get(hash.replace('ciderlocal','ciderlocalart')).then(function (doc: any) { + return ProviderDB.db.remove(doc); + });} catch(e){} + } + } + + static setupHandlers () { + const app = utils.getExpress() + console.log("Setting up handlers for local files") + app.get("/ciderlocal/:songs", (req: any, res: any) => { + const audio = atob(req.params.songs.replace(/_/g, '/').replace(/-/g, '+')); + //console.log('auss', audio) + let data = { + data: + LocalFiles.localSongs.filter((f: any) => audio.split(',').includes(f.id)) + }; + res.send(data); + }); + + app.get("/ciderlocalart/:songs", (req: any, res: any) => { + const audio = req.params.songs; + // metadata.common.picture[0].data.toString('base64') + + res.setHeader('Cache-Control', 'public, max-age=31536000'); + res.setHeader('Expires', new Date(Date.now() + 31536000000).toUTCString()); + res.setHeader('Content-Type', 'image/jpeg'); + + let data = + LocalFiles.localSongsArts.filter((f: any) => f.id == audio); + res.status(200).send(Buffer.from(data[0]?.url, 'base64')); + }); + + return app + } +} \ No newline at end of file diff --git a/src/preload/cider-preload.js b/src/preload/cider-preload.js index 44ba7589..8afae876 100644 --- a/src/preload/cider-preload.js +++ b/src/preload/cider-preload.js @@ -11,9 +11,6 @@ const MusicKitInterop = { 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()}) - // } } }); @@ -23,19 +20,18 @@ const MusicKitInterop = { }); /** wsapi */ + MusicKit.getInstance().addEventListener(MusicKit.Events.playbackTimeDidChange, () => { + ipcRenderer.send('mpris:playbackTimeDidChange', (MusicKit.getInstance()?.currentPlaybackTime * 1000 * 1000 ) ?? 0); + }) + MusicKit.getInstance().addEventListener(MusicKit.Events.nowPlayingItemDidChange, async () => { - console.debug('nowPlayingItemDidChange') + console.debug('[cider:preload] nowPlayingItemDidChange') const attributes = MusicKitInterop.getAttributes() - const trackFilter = MusicKitInterop.filterTrack(attributes, false, true) - if (trackFilter) { + if (MusicKitInterop.filterTrack(attributes, false, true)) { global.ipcRenderer.send('nowPlayingItemDidChange', attributes); - } - - // LastFM's Custom Call - await MusicKitInterop.modifyNamesOnLocale(); - if (trackFilter || !app.cfg.lastfm.filterLoop) { - global.ipcRenderer.send('nowPlayingItemDidChangeLastFM', attributes); + } else if (attributes.name !== 'no-title-found' && attributes.playParams.id !== "no-id-found") { + global.ipcRenderer.send('lastfm:nowPlayingChange', attributes); } if (MusicKit.getInstance().nowPlayingItem) { @@ -46,41 +42,27 @@ const MusicKitInterop = { MusicKit.getInstance().addEventListener(MusicKit.Events.authorizationStatusDidChange, () => { global.ipcRenderer.send('authorizationStatusDidChange', MusicKit.getInstance().authorizationStatus) - }) + }); MusicKit.getInstance().addEventListener(MusicKit.Events.mediaPlaybackError, (e) => { - console.warn(`[mediaPlaybackError] ${e}`); - }) + console.warn(`[cider:preload] mediaPlaybackError] ${e}`); + }); + + MusicKit.getInstance().addEventListener(MusicKit.Events.shuffleModeDidChange, () => { + global.ipcRenderer.send('shuffleModeDidChange', MusicKit.getInstance().shuffleMode) + }); + + MusicKit.getInstance().addEventListener(MusicKit.Events.repeatModeDidChange, () => { + global.ipcRenderer.send('repeatModeDidChange', MusicKit.getInstance().repeatMode) + }); }, sleep(ms) { return new Promise((resolve) => { - setTimeout(resolve, ms); + setTimeout(resolve, ms); }); }, - 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; @@ -96,8 +78,8 @@ const MusicKitInterop = { attributes.playParams = attributes?.playParams ?? {id: 'no-id-found'}; attributes.playParams.id = attributes?.playParams?.id ?? 'no-id-found'; attributes.url = { - 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')}` + 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'; @@ -109,13 +91,14 @@ const MusicKitInterop = { ? remainingTimeExport * 1000 : 0; attributes.durationInMillis = attributes?.durationInMillis ?? 0; + attributes.currentPlaybackTime = mk?.currentPlaybackTime ?? 0; attributes.currentPlaybackProgress = currentPlaybackProgress ?? 0; attributes.startTime = Date.now(); attributes.endTime = Math.round( attributes?.playParams?.id === cache.playParams.id ? Date.now() + attributes?.remainingTime : attributes?.startTime + attributes?.durationInMillis - ); + ); return attributes; }, @@ -156,19 +139,19 @@ const MusicKitInterop = { // } 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.debug(`[MusicKitInterop.next] Skipping to Next ${r}`)); + MusicKit.getInstance().skipToNextItem().then(r => console.debug(`[cider:preload] [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.debug(`[MusicKitInterop.previous] Skipping to Previous ${r}`)); + MusicKit.getInstance().skipToPreviousItem().then(r => console.debug(`[cider:preload] [previous] Skipping to Previous ${r}`)); } } process.once('loaded', () => { - console.debug("Setting ipcRenderer") + console.debug("[cider:preload] IPC Listeners Created!") global.MusicKitInterop = MusicKitInterop; }); diff --git a/src/renderer/assets/angles-left.svg b/src/renderer/assets/angles-left.svg new file mode 100644 index 00000000..cc38eb23 --- /dev/null +++ b/src/renderer/assets/angles-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/assets/angles-right.svg b/src/renderer/assets/angles-right.svg new file mode 100644 index 00000000..7bc040ed --- /dev/null +++ b/src/renderer/assets/angles-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/assets/chevron-right.svg b/src/renderer/assets/chevron-right.svg new file mode 100644 index 00000000..538cc611 --- /dev/null +++ b/src/renderer/assets/chevron-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/assets/discord.svg b/src/renderer/assets/discord.svg index f905d235..3b0fa57f 100644 --- a/src/renderer/assets/discord.svg +++ b/src/renderer/assets/discord.svg @@ -1,10 +1,41 @@ - - - - - - - - - + + + + + diff --git a/src/renderer/assets/feather/hard-drive.svg b/src/renderer/assets/feather/hard-drive.svg new file mode 100644 index 00000000..30305b6c --- /dev/null +++ b/src/renderer/assets/feather/hard-drive.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/renderer/assets/feather/headphones.svg b/src/renderer/assets/feather/headphones.svg new file mode 100644 index 00000000..6c197a70 --- /dev/null +++ b/src/renderer/assets/feather/headphones.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/renderer/assets/feather/pen-tool.svg b/src/renderer/assets/feather/pen-tool.svg new file mode 100644 index 00000000..304803a1 --- /dev/null +++ b/src/renderer/assets/feather/pen-tool.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/renderer/assets/feather/plugins.svg b/src/renderer/assets/feather/plugins.svg new file mode 100644 index 00000000..1ad5759a --- /dev/null +++ b/src/renderer/assets/feather/plugins.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/assets/feather/style.svg b/src/renderer/assets/feather/style.svg new file mode 100644 index 00000000..e6eae9e2 --- /dev/null +++ b/src/renderer/assets/feather/style.svg @@ -0,0 +1,41 @@ + + + + + + diff --git a/src/renderer/assets/feather/zap.svg b/src/renderer/assets/feather/zap.svg new file mode 100644 index 00000000..8e71dd07 --- /dev/null +++ b/src/renderer/assets/feather/zap.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/renderer/assets/github.svg b/src/renderer/assets/github.svg index 2180f759..e84df9e7 100644 --- a/src/renderer/assets/github.svg +++ b/src/renderer/assets/github.svg @@ -1,3 +1,41 @@ - - - \ No newline at end of file + + + + + + diff --git a/src/renderer/assets/ko_fi.svg b/src/renderer/assets/ko_fi.svg index 8630f586..dcd86131 100644 --- a/src/renderer/assets/ko_fi.svg +++ b/src/renderer/assets/ko_fi.svg @@ -1 +1,4 @@ - \ No newline at end of file + + + + diff --git a/src/renderer/assets/open_collective.svg b/src/renderer/assets/open_collective.svg index ea86a543..59e09857 100644 --- a/src/renderer/assets/open_collective.svg +++ b/src/renderer/assets/open_collective.svg @@ -1 +1,50 @@ - \ No newline at end of file + + + + + + + + + diff --git a/src/renderer/assets/search-alt.svg b/src/renderer/assets/search-alt.svg new file mode 100644 index 00000000..d21e9b73 --- /dev/null +++ b/src/renderer/assets/search-alt.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/renderer/assets/settings.svg b/src/renderer/assets/settings.svg new file mode 100644 index 00000000..41f574c0 --- /dev/null +++ b/src/renderer/assets/settings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/assets/spatialization.svg b/src/renderer/assets/spatialization.svg new file mode 100644 index 00000000..97c0ef77 --- /dev/null +++ b/src/renderer/assets/spatialization.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/renderer/assets/twitter.svg b/src/renderer/assets/twitter.svg index 1bbb2f50..ce724ef1 100644 --- a/src/renderer/assets/twitter.svg +++ b/src/renderer/assets/twitter.svg @@ -1,49 +1,41 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + diff --git a/src/renderer/audio/audio.js b/src/renderer/audio/audio.js index eaf0860d..de6b8d82 100644 --- a/src/renderer/audio/audio.js +++ b/src/renderer/audio/audio.js @@ -11,6 +11,7 @@ const CiderAudio = { intelliGainComp: null, atmosphereRealizer2: null, atmosphereRealizer1: null, + opportunisticCorrection: null }, ccON: false, mediaRecorder: null, @@ -23,7 +24,7 @@ const CiderAudio = { CiderAudio.connectContext(document.getElementById("apple-music-player"), 0); cb(); - clearInterval(searchInt); + clearInterval(searchInt); } }, 1000); }, @@ -40,6 +41,7 @@ const CiderAudio = { intelliGainComp: null, atmosphereRealizer2: null, atmosphereRealizer1: null, + opportunisticCorrection: null, } } catch (e) { } CiderAudio.source.connect(CiderAudio.context.destination); @@ -47,7 +49,8 @@ const CiderAudio = { }, connectContext: function (mediaElem) { if (!CiderAudio.context) { - CiderAudio.context = new window.AudioContext({ sampleRate: 96000 }); // Don't ever remove the sample rate arg. Ask Maikiwi. + CiderAudio.context = new window.AudioContext({ sampleRate: 96000, latencyHint: "playback"}); // Don't ever remove the sample rate arg. Ask Maikiwi. + app.lyricOffset = CiderAudio.context.baseLatency + CiderAudio.context.outputLatency } if (!CiderAudio.source) { CiderAudio.source = CiderAudio.context.createMediaElementSource(mediaElem); @@ -80,6 +83,7 @@ const CiderAudio = { } } catch (e) { + console.debug("[Cider][MaikiwiSoundCheck] normalizer func err: " + e) } }, normalizerOff: function () { @@ -225,6 +229,14 @@ const CiderAudio = { "description": "8500", } ], + opportunisticCorrectionProfiles: [ + { + "id": "CHU", + "file": './cideraudio/impulses/MoondropCHU_Cider.wav', + "name": "Moondrop CHU Specific", + "description": "", + } + ], spatial_ninf: function () { CiderAudio.audioNodes.spatialNode = null; CiderAudio.audioNodes.spatialNode = CiderAudio.context.createConvolver(); @@ -385,7 +397,7 @@ const CiderAudio = { if (this._isBufferFull()) { this._flush(); } - let dataLength = audioRawData[0].length; + let dataLength = audioRawData[0]?.length ?? 0; for (let idx=0; idx Spatial");} catch (e) { } + try { CiderAudio.audioNodes.atmosphereRealizer2.connect(CiderAudio.audioNodes.spatialNode); console.debug("[Cider][Audio] atmosphereRealizer2_n6 -> Spatial");} catch (e) { } break; - case "n5": + case "n6": try { CiderAudio.audioNodes.atmosphereRealizer2.connect(CiderAudio.audioNodes.atmosphereRealizer2); - console.debug("[Cider][Audio] atmosphereRealizer2_n5 -> atmosphereRealizer2"); + console.debug("[Cider][Audio] atmosphereRealizer2_n6 -> atmosphereRealizer2"); + } catch (e) { } + break; + case 'n5': + try { + CiderAudio.audioNodes.atmosphereRealizer2.connect(CiderAudio.audioNodes.atmosphereRealizer1); + console.debug("[Cider][Audio] atmosphereRealizer2_n6 -> atmosphereRealizer1"); } catch (e) { } break; case 'n4': try { - CiderAudio.audioNodes.atmosphereRealizer2.connect(CiderAudio.audioNodes.atmosphereRealizer1); - console.debug("[Cider][Audio] atmosphereRealizer2_n5 -> atmosphereRealizer1"); + CiderAudio.audioNodes.atmosphereRealizer2.connect(CiderAudio.audioNodes.vibrantbassNode[0]); + console.debug("[Cider][Audio] atmosphereRealizer2_n6 -> vibrantbassNode"); } catch (e) { } break; case 'n3': try { - CiderAudio.audioNodes.atmosphereRealizer2.connect(CiderAudio.audioNodes.vibrantbassNode[0]); - console.debug("[Cider][Audio] atmosphereRealizer2_n5 -> vibrantbassNode"); + CiderAudio.audioNodes.atmosphereRealizer2.connect(CiderAudio.audioNodes.audioBands[0]); + console.debug("[Cider][Audio] atmosphereRealizer2_n6 -> audioBands"); } catch (e) { } break; case 'n2': try { - CiderAudio.audioNodes.atmosphereRealizer2.connect(CiderAudio.audioNodes.audioBands[0]); - console.debug("[Cider][Audio] atmosphereRealizer2_n5 -> audioBands"); + CiderAudio.audioNodes.atmosphereRealizer2.connect(CiderAudio.audioNodes.opportunisticCorrection); + console.debug("[Cider][Audio] atmosphereRealizer2_n6 -> opportunisticCorrection"); } catch (e) { } break; case 'n1': try { CiderAudio.audioNodes.atmosphereRealizer2.connect(CiderAudio.audioNodes.llpw[0]); - console.debug("[Cider][Audio] atmosphereRealizer2_n5 -> llpw"); + console.debug("[Cider][Audio] atmosphereRealizer2_n6 -> llpw"); } catch (e) { } break; case 'n0': - try { CiderAudio.audioNodes.atmosphereRealizer2.connect(CiderAudio.context.destination); console.debug("[Cider][Audio] atmosphereRealizer2_n5 -> destination");} catch (e) { } + try { CiderAudio.audioNodes.atmosphereRealizer2.connect(CiderAudio.context.destination); console.debug("[Cider][Audio] atmosphereRealizer2_n6 -> destination");} catch (e) { } break; } @@ -547,7 +565,7 @@ const CiderAudio = { } }, - atmosphereRealizer1_n4: function (status, destination) { + atmosphereRealizer1_n5: function (status, destination) { if (status === true) { CiderAudio.audioNodes.atmosphereRealizer1 = CiderAudio.context.createConvolver(); CiderAudio.audioNodes.atmosphereRealizer1.normalize = false; @@ -565,40 +583,46 @@ const CiderAudio = { switch (destination) { case "spatial": - try { CiderAudio.audioNodes.atmosphereRealizer1.connect(CiderAudio.audioNodes.spatialNode); console.debug("[Cider][Audio] atmosphereRealizer1_n4 -> Spatial");} catch (e) { } + try { CiderAudio.audioNodes.atmosphereRealizer1.connect(CiderAudio.audioNodes.spatialNode); console.debug("[Cider][Audio] atmosphereRealizer1_n5 -> Spatial");} catch (e) { } break; - case "n5": + case "n6": try { CiderAudio.audioNodes.atmosphereRealizer1.connect(CiderAudio.audioNodes.atmosphereRealizer2); - console.debug("[Cider][Audio] atmosphereRealizer1_n4 -> atmosphereRealizer2"); + console.debug("[Cider][Audio] atmosphereRealizer1_n5 -> atmosphereRealizer2"); + } catch (e) { } + break; + case 'n5': + try { + CiderAudio.audioNodes.atmosphereRealizer1.connect(CiderAudio.audioNodes.atmosphereRealizer1); + console.debug("[Cider][Audio] atmosphereRealizer1_n5 -> atmosphereRealizer1"); } catch (e) { } break; case 'n4': try { - CiderAudio.audioNodes.atmosphereRealizer1.connect(CiderAudio.audioNodes.atmosphereRealizer1); - console.debug("[Cider][Audio] atmosphereRealizer1_n4 -> atmosphereRealizer1"); + CiderAudio.audioNodes.atmosphereRealizer1.connect(CiderAudio.audioNodes.vibrantbassNode[0]); + console.debug("[Cider][Audio] atmosphereRealizer1_n5 -> vibrantbassNode"); } catch (e) { } break; case 'n3': try { - CiderAudio.audioNodes.atmosphereRealizer1.connect(CiderAudio.audioNodes.vibrantbassNode[0]); - console.debug("[Cider][Audio] atmosphereRealizer1_n4 -> vibrantbassNode"); + CiderAudio.audioNodes.atmosphereRealizer1.connect(CiderAudio.audioNodes.audioBands[0]); + console.debug("[Cider][Audio] atmosphereRealizer1_n5 -> audioBands"); } catch (e) { } break; case 'n2': try { - CiderAudio.audioNodes.atmosphereRealizer1.connect(CiderAudio.audioNodes.audioBands[0]); - console.debug("[Cider][Audio] atmosphereRealizer1_n4 -> audioBands"); + CiderAudio.audioNodes.atmosphereRealizer1.connect(CiderAudio.audioNodes.opportunisticCorrection); + console.debug("[Cider][Audio] atmosphereRealizer1_n5 -> opportunisticCorrection"); } catch (e) { } break; case 'n1': try { CiderAudio.audioNodes.atmosphereRealizer1.connect(CiderAudio.audioNodes.llpw[0]); - console.debug("[Cider][Audio] atmosphereRealizer1_n4 -> llpw"); + console.debug("[Cider][Audio] atmosphereRealizer1_n5 -> llpw"); } catch (e) { } break; case 'n0': - try { CiderAudio.audioNodes.atmosphereRealizer1.connect(CiderAudio.context.destination); console.debug("[Cider][Audio] atmosphereRealizer1_n4 -> destination");} catch (e) { } + try { CiderAudio.audioNodes.atmosphereRealizer1.connect(CiderAudio.context.destination); console.debug("[Cider][Audio] atmosphereRealizer1_n5 -> destination");} catch (e) { } break; } @@ -606,6 +630,64 @@ const CiderAudio = { } }, + opportunisticCorrection_n2: function (status, destination) { + if (status === true) { + CiderAudio.audioNodes.opportunisticCorrection = CiderAudio.context.createConvolver(); + CiderAudio.audioNodes.opportunisticCorrection.normalize = false; + let opportunisticCorrectionProfile = CiderAudio.opportunisticCorrectionProfiles.find(function (profile) { + return profile.id === app.cfg.audio.maikiwiAudio.opportunisticCorrection_state; + }); + + if (opportunisticCorrectionProfile === undefined) { + opportunisticCorrectionProfile = CiderAudio.opportunisticCorrectionProfiles[0]; + } + fetch(opportunisticCorrectionProfile.file).then(async (impulseData) => { + let bufferedImpulse = await impulseData.arrayBuffer(); + CiderAudio.audioNodes.opportunisticCorrection.buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse); + }); + + switch (destination) { + case "spatial": + try { CiderAudio.audioNodes.opportunisticCorrection.connect(CiderAudio.audioNodes.spatialNode); console.debug("[Cider][Audio] opportunisticCorrection_n2 -> Spatial");} catch (e) { } + break; + case "n6": + try { + CiderAudio.audioNodes.opportunisticCorrection.connect(CiderAudio.audioNodes.atmosphereRealizer2); + console.debug("[Cider][Audio] opportunisticCorrection_n2 -> atmosphereRealizer2"); + } catch (e) { } + break; + case 'n5': + try { + CiderAudio.audioNodes.opportunisticCorrection.connect(CiderAudio.audioNodes.atmosphereRealizer1); + console.debug("[Cider][Audio] opportunisticCorrection_n2 -> atmosphereRealizer1"); + } catch (e) { } + break; + case 'n4': + try { CiderAudio.audioNodes.opportunisticCorrection.connect(CiderAudio.audioNodes.vibrantbassNode[0]); + console.debug("[Cider][Audio] opportunisticCorrection_n2 -> vibrantbassNode");} catch (e) { } + break; + case 'n3': + try { CiderAudio.audioNodes.opportunisticCorrection.connect(CiderAudio.audioNodes.audioBands[0]); console.debug("[Cider][Audio] opportunisticCorrection_n2 -> audioBands");} catch (e) { } + break; + case 'n2': + try { + CiderAudio.audioNodes.opportunisticCorrection.connect(CiderAudio.audioNodes.opportunisticCorrection); + console.debug("[Cider][Audio] opportunisticCorrection_n2 -> opportunisticCorrection"); + } catch (e) { } + break; + case 'n1': + try { + CiderAudio.audioNodes.opportunisticCorrection.connect(CiderAudio.audioNodes.opportunisticCorrection[0]); + console.debug("[Cider][Audio] opportunisticCorrection_n2 -> opportunisticCorrection"); + } catch (e) { } + break; + case 'n0': + try { CiderAudio.audioNodes.opportunisticCorrection.connect(CiderAudio.context.destination); console.debug("[Cider][Audio] opportunisticCorrection_n2 -> destination");} catch (e) { } + break; + } + + } + }, llpw_n1: function (status, destination) { 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]; @@ -619,89 +701,48 @@ const CiderAudio = { switch (app.cfg.audio.maikiwiAudio.ciderPPE_value) { case "MAIKIWI": - try { - switch (localStorage.getItem("playingBitrate")) { - case "64": - CiderAudio.audioNodes.llpw[0] = CiderAudio.context.createConvolver(); - CiderAudio.audioNodes.llpw[0].normalize = false; - fetch('./cideraudio/impulses/CAP_64.wav').then(async (impulseData) => { - let bufferedImpulse = await impulseData.arrayBuffer(); - CiderAudio.audioNodes.llpw[0].buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse); - }); - console.debug("[Cider][Audio] CAP Adaptive - 64kbps"); - - break; - case "256": - CiderAudio.audioNodes.llpw[0] = CiderAudio.context.createConvolver(); CiderAudio.audioNodes.llpw[0].normalize = false; - CiderAudio.audioNodes.llpw[1] = CiderAudio.context.createGain(); CiderAudio.audioNodes.llpw[1].gain.value = 2.37; // Post Gain Compensation - CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.llpw[1]); - fetch('./cideraudio/impulses/CAP_256_FINAL_48k.wav').then(async (impulseData) => { - let bufferedImpulse = await impulseData.arrayBuffer(); - CiderAudio.audioNodes.llpw[0].buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse); - }); - console.debug("[Cider][Audio] CAP Adaptive - 256kbps_2_48k"); - - break; - default: - CiderAudio.audioNodes.llpw[0] = CiderAudio.context.createConvolver(); CiderAudio.audioNodes.llpw[0].normalize = false; - CiderAudio.audioNodes.llpw[1] = CiderAudio.context.createGain(); CiderAudio.audioNodes.llpw[1].gain.value = 2.37; // Post Gain Compensation - CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.llpw[1]); - fetch('./cideraudio/impulses/CAP_256_FINAL_48k.wav').then(async (impulseData) => { - let bufferedImpulse = await impulseData.arrayBuffer(); - CiderAudio.audioNodes.llpw[0].buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse); - }); - console.debug("[Cider][Audio] CAP Adaptive - CONFIG FALLBACK - 256kbps_2_48k"); + try { + switch (localStorage.getItem("playingBitrate")) { + case "64": + CiderAudio.audioNodes.llpw[0] = CiderAudio.context.createConvolver(); + CiderAudio.audioNodes.llpw[0].normalize = false; + fetch('./cideraudio/impulses/CAP_64.wav').then(async (impulseData) => { + let bufferedImpulse = await impulseData.arrayBuffer(); + CiderAudio.audioNodes.llpw[0].buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse); + }); + console.debug("[Cider][Audio] CAP Adaptive - 64kbps"); + + break; + case "256": + CiderAudio.audioNodes.llpw[0] = CiderAudio.context.createConvolver(); CiderAudio.audioNodes.llpw[0].normalize = false; + CiderAudio.audioNodes.llpw[1] = CiderAudio.context.createGain(); CiderAudio.audioNodes.llpw[1].gain.value = 2.37; // Post Gain Compensation + CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.llpw[1]); + fetch('./cideraudio/impulses/CAP_256_FINAL_48k.wav').then(async (impulseData) => { + let bufferedImpulse = await impulseData.arrayBuffer(); + CiderAudio.audioNodes.llpw[0].buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse); + }); + console.debug("[Cider][Audio] CAP Adaptive - 256kbps"); + + break; + default: + CiderAudio.audioNodes.llpw[0] = CiderAudio.context.createGain(); CiderAudio.audioNodes.llpw[0].gain.value = 1 + console.debug("[Cider][Audio] CAP Disabled (Passthrough) : Non-Lossy Bitrate."); - break; - } - - } catch (e) { - CiderAudio.audioNodes.llpw[0] = CiderAudio.context.createConvolver(); CiderAudio.audioNodes.llpw[0].normalize = false; - CiderAudio.audioNodes.llpw[1] = CiderAudio.context.createGain(); CiderAudio.audioNodes.llpw[1].gain.value = 2.37; - CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.llpw[1]); - fetch('./cideraudio/impulses/CAP_256_FINAL_48k.wav').then(async (impulseData) => { - let bufferedImpulse = await impulseData.arrayBuffer(); - CiderAudio.audioNodes.llpw[0].buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse); - }); - console.debug("[Cider][Audio] CAP Adaptive - (Error Fallback) 256kbps"); - } - - switch (destination) { - case "spatial": - try { CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.spatialNode); console.debug("[Cider][Audio] llpw_n1 -> Spatial");} catch (e) { } - break; - case "n5": - try { - CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.atmosphereRealizer2); - console.debug("[Cider][Audio] llpw_n1 -> atmosphereRealizer2"); - } catch (e) { } - break; - case 'n4': - try { - CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.atmosphereRealizer1); - console.debug("[Cider][Audio] llpw_n1 -> atmosphereRealizer1"); - } catch (e) { } - break; - - case 'n3': - try { CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.vibrantbassNode[0]); - console.debug("[Cider][Audio] llpw_n1 -> vibrantbassNode");} catch (e) { } - break; - case 'n2': - try { CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.audioBands[0]); console.debug("[Cider][Audio] llpw_n1 -> audioBands");} catch (e) { } - break; - case 'n1': - try { - CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.llpw[0]); - console.debug("[Cider][Audio] llpw_n1 -> llpw"); - } catch (e) { } - break; - case 'n0': - try { CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.context.destination); console.debug("[Cider][Audio] llpw_n1 -> destination");} catch (e) { } - break; + break; } - - break; + + } catch (e) { + CiderAudio.audioNodes.llpw[0] = CiderAudio.context.createConvolver(); CiderAudio.audioNodes.llpw[0].normalize = false; + CiderAudio.audioNodes.llpw[1] = CiderAudio.context.createGain(); CiderAudio.audioNodes.llpw[1].gain.value = 2.37; + CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.llpw[1]); + fetch('./cideraudio/impulses/CAP_256_FINAL_48k.wav').then(async (impulseData) => { + let bufferedImpulse = await impulseData.arrayBuffer(); + CiderAudio.audioNodes.llpw[0].buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse); + }); + console.debug("[Cider][Audio] CAP Adaptive - (Error Fallback) 256kbps"); + } + + break; case "MAIKIWI_LEGACY": CiderAudio.audioNodes.llpw[0] = CiderAudio.context.createConvolver(); CiderAudio.audioNodes.llpw[0].normalize = false; @@ -709,41 +750,6 @@ const CiderAudio = { let bufferedImpulse = await impulseData.arrayBuffer(); CiderAudio.audioNodes.llpw[0].buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse); }); - - switch (destination) { - case "spatial": - try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.spatialNode); console.debug("[Cider][Audio] llpw_n1 -> Spatial");} catch (e) { } - break; - case "n5": - try { - CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.atmosphereRealizer2); - console.debug("[Cider][Audio] llpw_n1 -> atmosphereRealizer2"); - } catch (e) { } - break; - case 'n4': - try { - CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.atmosphereRealizer1); - console.debug("[Cider][Audio] llpw_n1 -> atmosphereRealizer1"); - } catch (e) { } - break; - case 'n1': - try { - CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.llpw[0]); - console.debug("[Cider][Audio] llpw_n1 -> llpw"); - } catch (e) { } - break; - case 'n3': - try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.vibrantbassNode[0]); - console.debug("[Cider][Audio] llpw_n1 -> vibrantbassNode");} catch (e) { } - break; - case 'n2': - try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.audioBands[0]); console.debug("[Cider][Audio] llpw_n1 -> audioBands");} catch (e) { } - break; - case 'n0': - try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.context.destination); console.debug("[Cider][Audio] llpw_n1 -> destination");} catch (e) { } - break; - } - console.debug("[Cider][Audio] CAP - Maikiwi Signature Mode"); break; case "NATURAL": @@ -754,41 +760,6 @@ const CiderAudio = { CiderAudio.audioNodes.llpw[0].buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse); }); - switch (destination) { - case "spatial": - try { CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.spatialNode); console.debug("[Cider][Audio] llpw_n1 -> Spatial");} catch (e) { } - break; - case "n5": - try { - CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.atmosphereRealizer2); - console.debug("[Cider][Audio] llpw_n1 -> atmosphereRealizer2"); - } catch (e) { } - break; - case 'n4': - try { - CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.atmosphereRealizer1); - console.debug("[Cider][Audio] llpw_n1 -> atmosphereRealizer1"); - } catch (e) { } - break; - case 'n1': - try { - CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.llpw[0]); - console.debug("[Cider][Audio] llpw_n1 -> llpw"); - } catch (e) { } - break; - case 'n3': - try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.vibrantbassNode[0]); - console.debug("[Cider][Audio] llpw_n1 -> vibrantbassNode");} catch (e) { } - break; - case 'n2': - try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.audioBands[0]); console.debug("[Cider][Audio] llpw_n1 -> audioBands");} catch (e) { } - break; - case 'n0': - try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.context.destination); console.debug("[Cider][Audio] llpw_n1 -> destination");} catch (e) { } - break; - - } - console.debug("[Cider][Audio] CAP - Natural Mode"); break; @@ -803,41 +774,7 @@ const CiderAudio = { for (let i = 1; i < LLPW_FREQUENCIES.length; i ++) { CiderAudio.audioNodes.llpw[i-1].connect(CiderAudio.audioNodes.llpw[i]); } - - switch (destination) { - case "spatial": - try { CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.spatialNode); console.debug("[Cider][Audio] llpw_n1 -> Spatial");} catch (e) { } - break; - case "n5": - try { - CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.atmosphereRealizer2); - console.debug("[Cider][Audio] llpw_n1 -> atmosphereRealizer2"); - } catch (e) { } - break; - case 'n4': - try { - CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.atmosphereRealizer1); - console.debug("[Cider][Audio] llpw_n1 -> atmosphereRealizer1"); - } catch (e) { } - break; - case 'n1': - try { - CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.llpw[0]); - console.debug("[Cider][Audio] llpw_n1 -> llpw"); - } catch (e) { } - break; - case 'n3': - try { CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.vibrantbassNode[0]); - console.debug("[Cider][Audio] llpw_n1 -> vibrantbassNode");} catch (e) { } - break; - case 'n2': - try { CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.audioBands[0]); console.debug("[Cider][Audio] llpw_n1 -> audioBands");} catch (e) { } - break; - case 'n0': - try { CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.context.destination); console.debug("[Cider][Audio] llpw_n1 -> destination");} catch (e) { } - break; - } - console.debug("[Cider][Audio] CAP - Legacy Mode"); + console.debug("[Cider][Audio] CAP - Legacy Mode"); break; @@ -851,46 +788,53 @@ const CiderAudio = { }); app.cfg.audio.maikiwiAudio.ciderPPE_value = "MAIKIWI"; - switch (destination) { - case "spatial": - try { CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.spatialNode); console.debug("[Cider][Audio] llpw_n1 -> Spatial");} catch (e) { } - break; - case "n5": - try { - CiderAudio.audioNodes.llpw[1].connect(CiderAudio.audioNodes.atmosphereRealizer2); - console.debug("[Cider][Audio] llpw_n1 -> atmosphereRealizer2"); - } catch (e) { } - break; - case 'n4': - try { - CiderAudio.audioNodes.llpw[1].connect(CiderAudio.audioNodes.atmosphereRealizer1); - console.debug("[Cider][Audio] llpw_n1 -> atmosphereRealizer1"); - } catch (e) { } - break; - case 'n1': - try { - CiderAudio.audioNodes.llpw[1].connect(CiderAudio.audioNodes.llpw[0]); - console.debug("[Cider][Audio] llpw_n1 -> llpw"); - } catch (e) { } - break; - case 'n3': - try { CiderAudio.audioNodes.llpw[1].connect(CiderAudio.audioNodes.vibrantbassNode[0]); - console.debug("[Cider][Audio] llpw_n1 -> vibrantbassNode");} catch (e) { } - break; - case 'n2': - try { CiderAudio.audioNodes.llpw[1].connect(CiderAudio.audioNodes.audioBands[0]); console.debug("[Cider][Audio] llpw_n1 -> audioBands");} catch (e) { } - break; - case 'n0': - try { CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.context.destination); console.debug("[Cider][Audio] llpw_n1 -> destination");} catch (e) { } - break; - } console.debug("[Cider][Audio] CAP - Maikiwi Adaptive Mode (Defaulted from broki config)"); break; } + + switch (destination) { + case "spatial": + try { CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.spatialNode); console.debug("[Cider][Audio] llpw_n1 -> Spatial");} catch (e) { } + break; + case "n6": + try { + CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.atmosphereRealizer2); + console.debug("[Cider][Audio] llpw_n1 -> atmosphereRealizer2"); + } catch (e) { } + break; + case 'n5': + try { + CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.atmosphereRealizer1); + console.debug("[Cider][Audio] llpw_n1 -> atmosphereRealizer1"); + } catch (e) { } + break; + case 'n4': + try { CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.vibrantbassNode[0]); + console.debug("[Cider][Audio] llpw_n1 -> vibrantbassNode");} catch (e) { } + break; + case 'n3': + try { CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.audioBands[0]); console.debug("[Cider][Audio] llpw_n1 -> audioBands");} catch (e) { } + break; + case 'n2': + try { + CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.opportunisticCorrection); + console.debug("[Cider][Audio] llpw_n1 -> opportunisticCorrection"); + } catch (e) { } + break; + case 'n1': + try { + CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.audioNodes.llpw[0]); + console.debug("[Cider][Audio] llpw_n1 -> llpw"); + } catch (e) { } + break; + case 'n0': + try { CiderAudio.audioNodes.llpw.at(-1).connect(CiderAudio.context.destination); console.debug("[Cider][Audio] llpw_n1 -> destination");} catch (e) { } + break; + } } }, - vibrantbass_n3: function (status, destination) { + vibrantbass_n4: function (status, destination) { if (status === true) { let VIBRANTBASSBANDS = app.cfg.audio.maikiwiAudio.vibrantBass.frequencies; let VIBRANTBASSGAIN = app.cfg.audio.maikiwiAudio.vibrantBass.gain; @@ -911,41 +855,47 @@ const CiderAudio = { switch (destination) { case "spatial": - try { CiderAudio.audioNodes.vibrantbassNode[0].connect(CiderAudio.audioNodes.spatialNode); console.debug("[Cider][Audio] vibrantbass_n3 -> Spatial");} catch (e) { } + try { CiderAudio.audioNodes.vibrantbassNode.at(-1).connect(CiderAudio.audioNodes.spatialNode); console.debug("[Cider][Audio] vibrantbass_n4 -> Spatial");} catch (e) { } break; - case "n5": + case "n6": try { - CiderAudio.audioNodes.vibrantbassNode[0].connect(CiderAudio.audioNodes.atmosphereRealizer2); - console.debug("[Cider][Audio] vibrantbass_n3 -> atmosphereRealizer2"); + CiderAudio.audioNodes.vibrantbassNode.at(-1).connect(CiderAudio.audioNodes.atmosphereRealizer2); + console.debug("[Cider][Audio] vibrantbass_n4 -> atmosphereRealizer2"); + } catch (e) { } + break; + case 'n5': + try { + CiderAudio.audioNodes.vibrantbassNode.at(-1).connect(CiderAudio.audioNodes.atmosphereRealizer1); + console.debug("[Cider][Audio] vibrantbass_n4 -> atmosphereRealizer1"); } catch (e) { } break; case 'n4': try { - CiderAudio.audioNodes.vibrantbassNode[0].connect(CiderAudio.audioNodes.atmosphereRealizer1); - console.debug("[Cider][Audio] vibrantbass_n3 -> atmosphereRealizer1"); + CiderAudio.audioNodes.vibrantbassNode.at(-1).connect(CiderAudio.audioNodes.vibrantbassNode[0]); + console.debug("[Cider][Audio] vibrantbass_n4 -> vibrantbassNode"); } catch (e) { } break; case 'n3': try { - CiderAudio.audioNodes.vibrantbassNode[0].connect(CiderAudio.audioNodes.vibrantbassNode[0]); - console.debug("[Cider][Audio] vibrantbass_n3 -> vibrantbassNode"); + CiderAudio.audioNodes.vibrantbassNode.at(-1).connect(CiderAudio.audioNodes.audioBands[0]); + console.debug("[Cider][Audio] vibrantbass_n4 -> audioBands"); } catch (e) { } break; case 'n2': try { - CiderAudio.audioNodes.vibrantbassNode[0].connect(CiderAudio.audioNodes.audioBands[0]); - console.debug("[Cider][Audio] vibrantbass_n3 -> audioBands"); + CiderAudio.audioNodes.vibrantbassNode.at(-1).connect(CiderAudio.audioNodes.opportunisticCorrection); + console.debug("[Cider][Audio] vibrantbass_n4 -> opportunisticCorrection"); } catch (e) { } break; case 'n1': try { - CiderAudio.audioNodes.vibrantbassNode[0].connect(CiderAudio.audioNodes.llpw[0]); - console.debug("[Cider][Audio] vibrantbass_n3 -> llpw"); + CiderAudio.audioNodes.vibrantbassNode.at(-1).connect(CiderAudio.audioNodes.llpw[0]); + console.debug("[Cider][Audio] vibrantbass_n4 -> llpw"); } catch (e) { } break; case 'n0': - try { CiderAudio.audioNodes.vibrantbassNode[0].connect(CiderAudio.context.destination); console.debug("[Cider][Audio] vibrantbass_n3 -> destination");} catch (e) { } + try { CiderAudio.audioNodes.vibrantbassNode.at(-1).connect(CiderAudio.context.destination); console.debug("[Cider][Audio] vibrantbass_n4 -> destination");} catch (e) { } break; } } @@ -958,15 +908,17 @@ const CiderAudio = { 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.vibrantbassNode = null} catch (e) { }; + try {CiderAudio.audioNodes.opportunisticCorrection.disconnect(); CiderAudio.audioNodes.opportunisticCorrection = null } catch (e) { }; console.debug("[Cider][Audio] Finished hierarchical unloading") }, hierarchical_loading: async function () { const configMap = new Map([ ['spatial', app.cfg.audio.maikiwiAudio.spatial === true], - ['n5', app.cfg.audio.maikiwiAudio.atmosphereRealizer2 === true], - ['n4', app.cfg.audio.maikiwiAudio.atmosphereRealizer1 === true], - ['n3', app.cfg.audio.equalizer.vibrantBass != 0], - ['n2', Math.max(...app.cfg.audio.equalizer.gain) != 0], + ['n6', app.cfg.audio.maikiwiAudio.atmosphereRealizer2 === true], + ['n5', app.cfg.audio.maikiwiAudio.atmosphereRealizer1 === true], + ['n4', app.cfg.audio.equalizer.vibrantBass != 0], + ['n3', Math.max(...app.cfg.audio.equalizer.gain) != 0], + ['n2', app.cfg.audio.maikiwiAudio.opportunisticCorrection_state !== "OFF"], ['n1', app.cfg.audio.maikiwiAudio.ciderPPE === true] ]); @@ -979,22 +931,26 @@ const CiderAudio = { CiderAudio.spatial_ninf(); lastNode = 'spatial'; break; + case 'n6': + app.cfg.audio.normalization = true; + CiderAudio.atmosphereRealizer2_n6(true, lastNode); + lastNode = 'n6'; + break; case 'n5': app.cfg.audio.normalization = true; - CiderAudio.atmosphereRealizer2_n5(true, lastNode); + CiderAudio.atmosphereRealizer1_n5(true, lastNode); lastNode = 'n5'; - break; - case 'n4': - app.cfg.audio.normalization = true; - CiderAudio.atmosphereRealizer1_n4(true, lastNode); - lastNode = 'n4'; break; - case 'n3': - CiderAudio.vibrantbass_n3(true, lastNode); - lastNode = 'n3'; + case 'n4': + CiderAudio.vibrantbass_n4(true, lastNode); + lastNode = 'n4'; break; - case 'n2': + case 'n3': CiderAudio.equalizer(true, lastNode); + lastNode = 'n3'; + break; + case 'n2': + CiderAudio.opportunisticCorrection_n2(true, lastNode); lastNode = 'n2'; break; case 'n1': @@ -1011,22 +967,28 @@ const CiderAudio = { CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); console.debug("[Cider][Audio] gainNode -> Spatial"); break; - case 'n5': + case 'n6': CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.atmosphereRealizer2); console.debug("[Cider][Audio] gainNode -> atmosphereRealizer2"); break; - case 'n4': + case 'n5': CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.atmosphereRealizer1); console.debug("[Cider][Audio] gainNode -> atmosphereRealizer1"); break; - case 'n3': + case 'n4': CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.vibrantbassNode[0]); console.debug("[Cider][Audio] gainNode -> vibrantbass"); break; - case 'n2': + case 'n3': CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.audioBands[0]); console.debug("[Cider][Audio] gainNode -> audioBands"); + break; + case 'n2': + try { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.opportunisticCorrection); + console.debug("[Cider][Audio] gainNode -> opportunisticCorrection"); + } catch (e) { } break; case 'n1': CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.llpw[0]); @@ -1045,7 +1007,7 @@ const CiderAudio = { }, - equalizer: function (status, destination) { // n2_1 + equalizer: function (status, destination) { // n3_1 if (status === true) { let BANDS = app.cfg.audio.equalizer.frequencies; let GAIN = app.cfg.audio.equalizer.gain; @@ -1066,41 +1028,47 @@ const CiderAudio = { switch (destination) { case 'spatial': - CiderAudio.audioNodes.audioBands[BANDS.length - 1].connect(CiderAudio.audioNodes.spatialNode); + CiderAudio.audioNodes.audioBands.at(-1).connect(CiderAudio.audioNodes.spatialNode); console.debug("[Cider][Audio] Equalizer -> Spatial"); break; - case "n5": + case "n6": try { - CiderAudio.audioNodes.audioBands[BANDS.length - 1].connect(CiderAudio.audioNodes.atmosphereRealizer2); + CiderAudio.audioNodes.audioBands.at(-1).connect(CiderAudio.audioNodes.atmosphereRealizer2); console.debug("[Cider][Audio] Equalizer -> atmosphereRealizer2"); } catch (e) { } break; + case 'n5': + try { + CiderAudio.audioNodes.audioBands.at(-1).connect(CiderAudio.audioNodes.atmosphereRealizer1); + console.debug("[Cider][Audio] Equalizer -> atmosphereRealizer1"); + } catch (e) { } + break; case 'n4': try { - CiderAudio.audioNodes.audioBands[BANDS.length - 1].connect(CiderAudio.audioNodes.atmosphereRealizer1); - console.debug("[Cider][Audio] Equalizer -> atmosphereRealizer1"); + CiderAudio.audioNodes.audioBands.at(-1).connect(CiderAudio.audioNodes.vibrantbassNode[0]); + console.debug("[Cider][Audio] Equalizer -> vibrantbassNode"); } catch (e) { } break; case 'n3': try { - CiderAudio.audioNodes.audioBands[BANDS.length - 1].connect(CiderAudio.audioNodes.vibrantbassNode[0]); - console.debug("[Cider][Audio] Equalizer -> vibrantbassNode"); + CiderAudio.audioNodes.audioBands.at(-1).connect(CiderAudio.audioNodes.audioBands[0]); + console.debug("[Cider][Audio] Equalizer -> audioBands"); } catch (e) { } break; case 'n2': try { - CiderAudio.audioNodes.audioBands[BANDS.length - 1].connect(CiderAudio.audioNodes.audioBands[0]); - console.debug("[Cider][Audio] Equalizer -> audioBands"); + CiderAudio.audioNodes.audioBands.at(-1).connect(CiderAudio.audioNodes.opportunisticCorrection); + console.debug("[Cider][Audio] Equalizer -> opportunisticCorrection"); } catch (e) { } break; case 'n1': try { - CiderAudio.audioNodes.audioBands[BANDS.length - 1].connect(CiderAudio.audioNodes.llpw[0]); + CiderAudio.audioNodes.audioBands.at(-1).connect(CiderAudio.audioNodes.llpw[0]); console.debug("[Cider][Audio] Equalizer -> llpw"); } catch (e) { } break; case 'n0': - try { CiderAudio.audioNodes.audioBands[BANDS.length - 1].connect(CiderAudio.context.destination); console.debug("[Cider][Audio] Equalizer -> destination");} catch (e) { } + try { CiderAudio.audioNodes.audioBands.at(-1).connect(CiderAudio.context.destination); console.debug("[Cider][Audio] Equalizer -> destination");} catch (e) { } break; } diff --git a/src/renderer/audio/impulses/CAP_64.wav b/src/renderer/audio/impulses/CAP_64.wav index ed2f442b..ac60adcc 100644 Binary files a/src/renderer/audio/impulses/CAP_64.wav and b/src/renderer/audio/impulses/CAP_64.wav differ diff --git a/src/renderer/audio/impulses/CiderSpatial_LIVE.wav b/src/renderer/audio/impulses/CiderSpatial_LIVE.wav deleted file mode 100644 index ca707d66..00000000 Binary files a/src/renderer/audio/impulses/CiderSpatial_LIVE.wav and /dev/null differ diff --git a/src/renderer/audio/impulses/MoondropCHU_Cider.wav b/src/renderer/audio/impulses/MoondropCHU_Cider.wav new file mode 100644 index 00000000..ab57c636 Binary files /dev/null and b/src/renderer/audio/impulses/MoondropCHU_Cider.wav differ diff --git a/src/renderer/index.js b/src/renderer/index.js index 6868dd26..b9a7de0e 100644 --- a/src/renderer/index.js +++ b/src/renderer/index.js @@ -1,5 +1,9 @@ var notyf = new Notyf(); +function clamp(num, min, max) { + return Math.min(Math.max(num, min), max); +} + const MusicKitObjects = { LibraryPlaylist: function () { this.id = ""; @@ -52,75 +56,15 @@ Vue.component("animated-number", { }, }); -Vue.component("sidebar-library-item", { - template: "#sidebar-library-item", - props: { - name: { - type: String, - required: true, - }, - page: { - type: String, - required: true, - }, - svgIcon: { - type: String, - required: false, - default: "", - }, - cdClick: { - type: Function, - required: false, - }, - }, - data: function () { - return { - app: app, - svgIconData: "", - }; - }, - async mounted() { - if (this.svgIcon) { - this.svgIconData = await this.app.getSvgIcon(this.svgIcon); - } - }, - methods: {}, -}); - -function fallbackinitMusicKit() { - const request = new XMLHttpRequest(); - - function loadAlternateKey() { - let parsedJson = JSON.parse(this.responseText); - MusicKit.configure({ - developerToken: parsedJson.developerToken, - app: { - name: "Apple Music", - build: "1978.4.1", - version: "1.0", - }, - sourceType: 24, - suppressErrorDialog: true, - }); - setTimeout(() => { - app.init(); - if (app.cfg.visual.window_background_style == "mica" && !app.isDev) { - app.spawnMica(); - } - }, 1000); - } - - request.addEventListener("load", loadAlternateKey); - request.open( - "GET", - "https://raw.githubusercontent.com/lujjjh/LitoMusic/main/token.json" - ); - request.send(); -} - function initMusicKit() { - + if(!this.responseText) { + console.log("Using stored token") + this.responseText = JSON.stringify({ + token: localStorage.getItem("lastToken") + }) + } let parsedJson = JSON.parse(this.responseText); + localStorage.setItem("lastToken", parsedJson.token); MusicKit.configure({ developerToken: parsedJson.token, app: { @@ -150,8 +94,12 @@ function capiInit() { request.timeout = 5000; request.addEventListener("load", initMusicKit); request.onreadystatechange = function (aEvt) { - if (request.readyState == 4) { - if (request.status != 200) fallbackinitMusicKit(); + if (request.readyState == 4 && request.status != 200) { + if(localStorage.getItem("lastToken") != null) { + initMusicKit() + } else { + console.error(`Failed to load capi, cannot get token [${request.status}]`) + } } }; request.open("GET", "https://api.cider.sh/v1/"); diff --git a/src/renderer/less/ameframework.less b/src/renderer/less/ameframework.less index de057c2f..085aa08e 100644 --- a/src/renderer/less/ameframework.less +++ b/src/renderer/less/ameframework.less @@ -239,6 +239,14 @@ input[type=range].md-slider::-webkit-slider-runnable-track { width: auto; } +@media only screen and (min-width: 1133px) and (max-width: 1233px) { + .about-page { + .row .col-auto { + display: none !important; + } + } +} + .col-1 { flex: 0 0 auto; width: 8.33333333%; diff --git a/src/renderer/less/bootstrap.less b/src/renderer/less/bootstrap.less index a392294e..8fe8cd27 100644 --- a/src/renderer/less/bootstrap.less +++ b/src/renderer/less/bootstrap.less @@ -2432,10 +2432,9 @@ fieldset:disabled .btn { .nav-pills .nav-link { background-color: transparent; border: 0; - border-radius: 50px; + border-radius: 6px; color: #eee; -webkit-user-drag: none; - // transition: transform .35s var(--appleEase), background-color .35s var(--appleEase); font-weight: 500; margin: 0px 4px; &:hover { @@ -2447,7 +2446,7 @@ fieldset:disabled .btn { .nav-pills .show > .nav-link { color: #fff; background-color: var(--selected); - outline:2px solid var(--keyColor); + // outline:2px solid var(--keyColor); } .nav-fill > .nav-link, @@ -2643,6 +2642,14 @@ fieldset:disabled .btn { width: auto; } +@media only screen and (min-width: 1133px) and (max-width: 1233px) { + .about-page { + .row .col-auto { + display: none !important; + } + } +} + .col-1 { flex : 0 0 auto; width: 8.33333333%; diff --git a/src/renderer/less/directives.less b/src/renderer/less/directives.less index 978c0707..9af65a5d 100644 --- a/src/renderer/less/directives.less +++ b/src/renderer/less/directives.less @@ -35,6 +35,11 @@ margin : 0px; height : 100%; position : relative; + white-space: nowrap; + + ._svg-icon { + flex: 0 0 auto; + } &:before { --dist : 1px; @@ -338,7 +343,9 @@ #app.twopanel .app-chrome:not(.chrome-bottom) .app-chrome--center .top-nav-group .app-sidebar-item { min-width: 110px; - font-size: 0em; + .sidebar-item-text { + display: none; + } .sidebar-icon { margin: 0px; @@ -353,7 +360,9 @@ #app.twopanel .app-chrome:not(.chrome-bottom) .app-chrome--center .top-nav-group .app-sidebar-item { min-width: 60px; - font-size: 0em; + .sidebar-item-text { + display: none; + } .sidebar-icon { margin: 0px; diff --git a/src/renderer/less/elements.less b/src/renderer/less/elements.less index 00ff74da..719bb79d 100644 --- a/src/renderer/less/elements.less +++ b/src/renderer/less/elements.less @@ -162,6 +162,33 @@ align-self: center; } +.page-btn { + align-self: center; + height: 32px; + width:max-content; +} + +.page-btn img { + height: 100%; + align-self: center; +} + +.md-ico-first { + content: url('./assets/angles-left.svg'); +} + +.md-ico-prev { + content: url('./assets/chevron-left.svg'); +} + +.md-ico-next { + content: url('./assets/chevron-right.svg'); +} + +.md-ico-last { + content: url('./assets/angles-right.svg'); +} + .reload-btn { background: rgb(86 86 86 / 52%); border-radius: 100%; @@ -398,6 +425,19 @@ border-radius: var(--mediaItemRadius); position: relative; + .listitem-content { + 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); + position: relative; + } + &:hover { .heart-icon { display: none; @@ -431,6 +471,7 @@ .mediaitem-artwork { border-radius: var(--mediaItemRadiusSmall); } + .overlay-play { background: rgba(0, 0, 0, 0.5); opacity: 0; @@ -944,10 +985,11 @@ /* mediaitem-square */ .cd-mediaitem-square { + --transitionDuration: .5s; --scaleRate: 1.25; --scaleRateArtwork: 1; - width: 200px; - height: 200px; + width: calc(160px * var(--windowRelativeScale)); + height: calc(200px * var(--windowRelativeScale)); display: inline-flex; flex: 0 0 auto; flex-direction: column; @@ -960,8 +1002,8 @@ position: relative; .artwork { - height: 150px; - width: 150px; + height: calc(140px * var(--windowRelativeScale)); + width: calc(140px * var(--windowRelativeScale)); background: blue; border-radius: var(--mediaItemRadius); background: var(--artwork); @@ -1042,15 +1084,32 @@ } } - @media (min-width: 1600px) { - width: calc(200px * var(--scaleRate)); - height: calc(200px * var(--scaleRate)); + // &:not(.mediaitem-card):not(.mediaitem-brick):not(.mediaitem-video):not(.noscale) { + // @media (min-width: 1460px) { + // --scaleRate: 1.1; + // --scaleRateArtwork: 0.9; + // width: calc(200px * var(--scaleRate)); + // height: calc(200px * var(--scaleRate)); + + // .artwork-container > .artwork { + // width: calc(190px * var(--scaleRateArtwork)); + // height: calc(190px * var(--scaleRateArtwork)); + // } + // } + + // @media (min-width: 1550px) { + // --scaleRate: 1.25; + // --scaleRateArtwork: 1; + // width: calc(200px * var(--scaleRate)); + // height: calc(200px * var(--scaleRate)); + + // .artwork-container > .artwork { + // width: calc(190px * var(--scaleRateArtwork)); + // height: calc(190px * var(--scaleRateArtwork)); + // } + // } + // } - .artwork-container > .artwork { - width: calc(190px * var(--scaleRateArtwork)); - height: calc(190px * var(--scaleRateArtwork)); - } - } .info-rect { width: 90%; @@ -1099,23 +1158,39 @@ } &.mediaitem-video { - --scaleRate: 1.25; - --scaleRateArtwork: 1.25; height: 200px; width: 240px; + transition: width var(--transitionDuration) linear, height var(--transitionDuration) linear; .artwork { height: 120px; width: 212px; + transition: width var(--transitionDuration) linear, height var(--transitionDuration) linear; } - @media (min-width: 1600px) { - width: calc(240px * var(--scaleRate)); - height: calc(200px * var(--scaleRate)); - - .artwork-container > .artwork { - width: calc(212px * var(--scaleRateArtwork)); - height: calc(120px * var(--scaleRateArtwork)); + &:not(.noscale) { + @media (min-width: 1460px) { + --scaleRate: 1.1; + --scaleRateArtwork: 1.1; + width: calc(240px * var(--scaleRate)); + height: calc(200px * var(--scaleRate)); + + .artwork-container > .artwork { + width: calc(220px * var(--scaleRateArtwork)); + height: calc(123px * var(--scaleRateArtwork)); + } + } + + @media (min-width: 1550px) { + --scaleRate: 1.25; + --scaleRateArtwork: 1.25; + width: calc(240px * var(--scaleRate)); + height: calc(200px * var(--scaleRate)); + + .artwork-container > .artwork { + width: calc(220px * var(--scaleRateArtwork)); + height: calc(123px * var(--scaleRateArtwork)); + } } } } @@ -1123,20 +1198,50 @@ &.mediaitem-brick { height: 200px; width: 240px; + transition: width var(--transitionDuration) linear, height var(--transitionDuration) linear; .artwork { height: 123px; width: 220px; + transition: width var(--transitionDuration) linear, height var(--transitionDuration) linear; + } + + &:not(.noscale) { + @media (min-width: 1460px) { + --scaleRate: 1.1; + --scaleRateArtwork: 1.1; + width: calc(240px * var(--scaleRate)); + height: calc(200px * var(--scaleRate)); + + .artwork-container > .artwork { + width: calc(220px * var(--scaleRateArtwork)); + height: calc(123px * var(--scaleRateArtwork)); + } + } + + @media (min-width: 1550px) { + --scaleRate: 1.25; + --scaleRateArtwork: 1.25; + width: calc(240px * var(--scaleRate)); + height: calc(200px * var(--scaleRate)); + + .artwork-container > .artwork { + width: calc(220px * var(--scaleRateArtwork)); + height: calc(123px * var(--scaleRateArtwork)); + } + } } } &.mediaitem-small { - width: 140px; - height: 180px; + width: calc(140px, var(--windowRelativeScale)); + height: calc(180px, var(--windowRelativeScale)); + transition: width var(--transitionDuration) linear, height var(--transitionDuration) linear; .artwork { - height: 128px; - width: 128px; + height: calc(128px, var(--windowRelativeScale)); + width: calc(128px, var(--windowRelativeScale)); + transition: width var(--transitionDuration) linear, height var(--transitionDuration) linear; } } @@ -1149,6 +1254,7 @@ position: relative; border-radius: calc(var(--mediaItemRadius) * 2); box-shadow: var(--mediaItemShadow-ShadowSubtle); + transition: width var(--transitionDuration) linear, height var(--transitionDuration) linear; .artwork { width: 230px; @@ -1156,7 +1262,7 @@ overflow: hidden; border-radius: 0px; margin: 0; - + transition: width var(--transitionDuration) linear, height var(--transitionDuration) linear, filter 0.2s ease-in-out; .mediaitem-artwork { border-radius: 0px; @@ -1170,6 +1276,8 @@ padding: 10px 10px 14px; position: relative; width: 100%; + display: grid; + align-content: center; &::before { background: var(--bgartwork); @@ -1184,6 +1292,7 @@ z-index: 0; opacity: 1; filter: brightness(0.5) blur(50px) saturate(180%); + transition: filter 0.2s ease-in-out; } } @@ -1198,7 +1307,7 @@ & + .subtitle { max-height: none !important; - margin-top: -0.5em; + // margin-top: -0.5em; } } @@ -1228,14 +1337,34 @@ border-radius: inherit; } - //@media (min-width: 1600px) { - // width: calc(230px * 1.25); - // height: calc(298px * 1.25); - // .artwork-container>.artwork { - // width: calc(230px * 1.25); - // height: calc(230px * 1.25); - // } - //} + &:hover { + .artwork{ + filter: brightness(0.8); + } + .info-rect-card::before { + filter: brightness(0.3) blur(50px) saturate(180%); + } + } + + &:not(.noscale) { + @media (min-width: 1200px) { + width: calc(230px * 1.1); + height: calc(298px * 1.1); + .artwork-container > .artwork { + width: calc(230px * 1.1); + height: calc(230px * 1.1); + } + } + + @media (min-width: 1400px) { + width: calc(230px * 1.25); + height: calc(298px * 1.25); + .artwork-container > .artwork { + width: calc(230px * 1.25); + height: calc(230px * 1.25); + } + } + } } } @@ -1776,7 +1905,7 @@ input[type=checkbox][switch]:checked:active::before { align-items: center; color: white; - > svg { + > ._svg-icon { height: 16px; width: 16px; pointer-events: none; @@ -1967,6 +2096,7 @@ input[type=checkbox][switch]:checked:active::before { font-size: 12px; cursor: pointer; flex: 0 0 32px; + box-shadow: var(--ciderShadow-Generic); &:hover { background: var(--selected); @@ -2071,107 +2201,116 @@ input[type=checkbox][switch]:checked:active::before { } // fancy pills -.nav-pills { - position: relative; - - .nav-link { - transition: transform .3s var(--appleEase); +.fancy-pills { + .nav-pills { position: relative; - - - &:after { - --dist: 1px; - content: ""; - position: absolute; - top: var(--dist); - bottom: var(--dist); - left: var(--dist); - right: var(--dist); - // width : 100%; - // height : 100%; + + .nav-link { + transition: transform .3s var(--appleEase); + position: relative; background-color: transparent; + border: 0; border-radius: 50px; - z-index: -1; - opacity: 0; - transition: background-color .5s var(--appleEase), opacity 0.25s var(--appleEase), border-radius .32s var(--appleEase); - } - - - &:hover { - outline: none; - transform: scale(1.1); - // background: #eee; - background: transparent; - color: #333; - - &:after { - opacity: 1; - background-color: #eee; - transition: background-color .25s var(--appleEase), - border-radius .25s var(--appleEase), - color .0s var(--appleEase), - opacity 0.0s var(--appleEase); - } - } - - &.active { - outline: none; - transform: scale(1.1); - // background: #eee; - background: transparent; - color: #333; - font-weight: 600; - - &:after { - opacity: 1; - background-color: #eee; - } - } - - - } - - &:hover { - .nav-link.active { - outline: none; - transform: scale(1.0); - background: transparent; color: #eee; - transform: scale(1.0); - + -webkit-user-drag: none; + font-weight: 500; + margin: 0px 4px; + + &:after { - background: rgb(200 200 200 / 15%); - opacity: 1; - transition: color 0s; - // border-radius: 5px; - --dist: 4px; + --dist: 1px; + content: ""; + position: absolute; + top: var(--dist); + bottom: var(--dist); + left: var(--dist); + right: var(--dist); + // width : 100%; + // height : 100%; + background-color: transparent; + border-radius: 50px; + z-index: -1; + opacity: 0; + transition: background-color .5s var(--appleEase), opacity 0.25s var(--appleEase), border-radius .32s var(--appleEase); } - + + &:hover { + outline: none; transform: scale(1.1); - z-index: 1; + // background: #eee; + background: transparent; color: #333; - + &:after { - background: #eee; - border-radius: inherit; - --dist: 1px; + opacity: 1; + background-color: #eee; + transition: background-color .25s var(--appleEase), + border-radius .25s var(--appleEase), + color .0s var(--appleEase), + opacity 0.0s var(--appleEase); + } + } + + &.active { + outline: none; + transform: scale(1.1); + // background: #eee; + background: transparent; + color: #333; + font-weight: 600; + + &:after { + opacity: 1; + background-color: #eee; + } + } + + + } + + &:hover { + .nav-link.active { + outline: none; + transform: scale(1.0); + background: transparent; + color: #eee; + transform: scale(1.0); + + &:after { + background: rgb(200 200 200 / 15%); + opacity: 1; + transition: color 0s; + // border-radius: 5px; + --dist: 4px; + } + + &:hover { + transform: scale(1.1); + z-index: 1; + color: #333; + + &:after { + background: #eee; + border-radius: inherit; + --dist: 1px; + } } } } - } - - &:after { - content: ''; - position: absolute; - top: 0; - left: 0; - bottom: 0; - right: 0; - background: rgb(200 200 200 / 10%); - border-radius: 50px; - z-index: 0; - pointer-events: none; + + &:after { + content: ''; + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: rgb(200 200 200 / 10%); + border-radius: 50px; + z-index: 0; + pointer-events: none; + } } } @@ -2242,4 +2381,25 @@ input[type=checkbox][switch]:checked:active::before { } } } +} + +.listennow-chip.circle { + border-radius: 50%; + div { + border-radius: 50%; + } + img { + border-radius: 50%; + } +} + +.pagination-container { + display: flex; + justify-content: center; + align-items: center; + gap: 0.5rem; + margin-bottom: 16px; + .md-input-number{ + min-width: 12em; + } } \ No newline at end of file diff --git a/src/renderer/less/fullscreen.less b/src/renderer/less/fullscreen.less new file mode 100644 index 00000000..82c3bdd9 --- /dev/null +++ b/src/renderer/less/fullscreen.less @@ -0,0 +1,604 @@ +.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; + --chromeHeight1: 70px; + + .app-content-container { + width:100%; + height:100%; + #app-content { + width:100%; + height:100%; + + .fs-search { + + .search-input--icon { + width: 4em; + background-size: 40%; + background-position: center; + } + input { + padding-left: 2em; + font-size: 2em; + border-radius: var(--mediaItemRadius) + } + } + } + } + + .fs-header { + position: fixed; + top: 0; + left: 0; + right: 0; + height: var(--chromeHeight1); + display: flex; + justify-content: center; + align-items: center; + z-index: 9999; + + .top-nav-group { + background : #1e1e1e99; + border : 1px solid lighten(@baseColor, 8); + border-radius: 12px; + display : flex; + height : 55px; + width: 90%; + backdrop-filter: var(--glassFilter); + + + .app-sidebar-item { + background-color: #1e1e1e00; + border-radius : 10px !important; + border : 0px; + min-width : 120px; + padding : 6px; + justify-content : center; + align-items : center; + margin : 0px; + height : 100%; + position : relative; + font-size: 1.1em; + font-weight: 500; + + &:before { + --dist : 1px; + content : ''; + position : absolute; + top : var(--dist); + left : var(--dist); + right : var(--dist); + bottom : var(--dist); + background-color: #fff; + opacity : 0; + border-radius : 10px; + transform : scale(0.5); + transition : transform 0.2s ease-in-out, opacity 0.2s ease-in-out; + } + + &:after { + display: none; + } + + &:hover { + background-color: transparent; + + &:before { + transition: transform 0.1s ease-in-out, opacity 0.1s ease-in-out; + opacity : .1; + transform : scale(1); + } + } + + &.active { + background-color: transparent; + + &:before { + opacity : .2; + transform: scale(1); + } + } + + &.md-btn-primary { + box-shadow : 0px 0px 0px 1px lighten(@baseColor, @colorMixRate * 8); + background-color: lighten(@baseColor, @colorMixRate * 5); + z-index : 1; + } + } + } + } + + .fs-row { + flex-grow: 0.5; + } + + .playback-button--small.active { + background-color: rgb(200 200 200 / 25%); + } + + .playback-button--small { + opacity: 0.7; + } + + .right-col { + height: 50vh; + } + + .bg-artwork-container { + display: block !important; + } + + @media only screen and (max-width: 1121px) { + .display--large { + display: flex !important; + } + } + + .display--large { + display: flex; + + .slider { + width: 100%; + z-index: 1; + } + + .input-container { + display: flex; + justify-content: center; + align-items: center; + width: 100% + } + + .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.70; + background-image: url("./assets/feather/volume-2.svg"); + } + + .volume-button--small:active { + transform: scale(0.9); + } + + .volume-button--small.active { + background-image: url("./assets/feather/volume.svg"); + } + + 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; + + &::-webkit-slider-thumb { + -webkit-appearance: none; + height: 14px; + width: 14px; + border-radius: 50%; + background: rgb(50 50 50); + cursor: default; + box-shadow: inset 0px 0px 0px 1px rgba(255, 255, 255, 0.4); + transition: all var(--appleTransition); + } + + &::-webkit-slider-thumb:hover { + background-image: radial-gradient(var(--songProgressColor) 2px, transparent 3px, transparent 10px); + transform: scale(1.2); + } + + &::-webkit-slider-thumb:active { + background-image: radial-gradient(var(--songProgressColor) 3px, transparent 4px, transparent 10px); + transform: scale(1); + } + + &::-webkit-slider-runnable-track { + -webkit-appearance: none; + box-shadow: none; + border: none; + background: transparent; + } + } + } + + + .background { + position: absolute; + background-size: cover; + width: 100%; + height: 100%; + + .bgArtworkMaterial { + position: absolute; + width: 100%; + height: 100%; + + .bg-artwork-container { + z-index: unset; + } + + .bg-artwork-container .bg-artwork { + filter: brightness(85%) saturate(95%) blur(180px) contrast(0.9) opacity(0.9); + } + + + } + } + + .lyrics-col { + + height: 62vh; + display: flex; + justify-content: center; + align-content: center; + width: 80%; + + ::-webkit-scrollbar-thumb { + box-shadow: unset; + } + + &:hover ::-webkit-scrollbar-thumb { + box-shadow: inset 0px 0px 10px 10px rgb(200 200 200 / 50%); + } + + .no-lyrics { + width: 100%; + height: 100%; + display: flex; + justify-content: center; + } + + .lyric-line { + font-size: 35px; + } + + } + + .queue-col { + + width: 60vh; + height: 62vh; + + .queue-title { + opacity: 0.6; + } + + .queue-panel > * { + z-index: 3; + } + + ::-webkit-scrollbar-thumb { + box-shadow: unset; + } + + &:hover ::-webkit-scrollbar-thumb { + box-shadow: inset 0px 0px 10px 10px rgb(200 200 200 / 50%); + } + } + + .tab-toggles { + display: flex; + position: absolute; + bottom: 0; + right: 0; + width: 15vh; + height: 5vh; + justify-content: space-evenly; + + .volume { + background-image: url("./assets/feathers/volume.svg"); + padding: 0.5vh; + width: 2vh; + height: 2vh; + background-origin: content-box; + background-repeat: no-repeat; + } + + .queue { + background-image: url("./assets/list.svg"); + padding: 0.5vh; + width: 2.5vh; + height: 2.5vh; + background-origin: content-box; + background-repeat: no-repeat; + } + + .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; + } + + .active { + background-color: rgba(200, 200, 200, 0.7); + border-radius: 3px; + } + } + + .artwork-col { + justify-content: center; + align-items: center; + display: flex; + flex-direction: column; + + .artwork { + width: 50vh; + height: 50vh; + } + + .controls-parents { + width: 50vh; + } + + .app-playback-controls { + .song-artist, .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; + + .song-name-normal { + height: inherit; + } + + &.song-artist-marquee { + > marquee { + //margin-bottom: -3px; + } + } + } + + .song-artist { + font-size: 0.875em; + font-weight: 400; + } + + .song-name { + width: unset !important; + margin-top: 0.15vh; + display: -webkit-box; + line-height: 1.2; + text-overflow: ellipsis; + text-align: center; + } + } + + .app-playback-controls .playback-info { + margin-top: 0.5vh; + width: 100%; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + position: relative; + + input[type="range"] { + width: 100%; + } + + > div { + width: 100%; + text-align: center; + } + + + } + + .app-playback-controls .song-progress { + @bgColor: transparent; + //height: 16px; + position: absolute; + bottom: -1.5vh; + left: 0px; + background: @bgColor; + + .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(--songProgressColor); + cursor: default; + transition: opacity .10s var(--appleEase), transform .10s var(--appleEase); + } + + &::-moz-range-thumb { + width: 8px; + height: 8px; + border-radius: 100%; + background: var(--songProgressColor); + cursor: default; + } + } + } + + .control-buttons { + margin-top: 2vh; + display: inline-flex; + width: 100%; + justify-content: center; + } + + } + + .cd-mediaitem-square { + font-size: 17px; + font-weight: 500; + } + + .cd-mediaitem-square .artwork-container .artwork { + box-shadow: var(--mediaItemShadow-Shadow); + } + + .cd-mediaitem-list-item { + height: 80px; + } + + .cd-mediaitem-list-item .title { + font-size: 1.2em; + font-weight: 450; + } + + .cd-mediaitem-list-item .subtitle { + font-size: 1.1em; + font-weight: 380; + } + + .cd-mediaitem-list-item .duration { + font-size: 1.2em; + } + + .cd-mediaitem-list-item .artwork { + width: 50px; + height: 50px; + } + + .cd-btn-seeall { + font-size: 1.2em; + } + + h1 { + font-size: 3em; + } + + h3 { + font-size: 1.5rem; + } + + .home-page .well.artistfeed-well { + height: 512px; + } + + .header-text { + font-size: 3em; + height: 3em; + padding-left: 0.2em; + } + + .grouping-container .grouping-btn { + font-size: 1.3em; + color: var(--textColor); + background-color: var(--sidebarColor); + font-weight: 600; + padding: 32px; + //box-shadow: var(--ciderShadow-Generic); + } + + .content-inner.playlist-page { + display: flex; + flex-direction: row; + } + + .playlist-page .playlist-display { + width: 100%; + max-width: 500px; + flex:1; + text-align: center; + + .playlistInfo { + >.row { + justify-content: center; + } + } + + .playlist-controls { + div { + width:100%; + } + } + } + .playlist-page .mediaContainer { + width: 30vh; + height: 30vh; + aspect-ratio: 1; + } + .playlist-page .playlist-display .playlistInfo .playlist-info { + gap: 16px; + margin-top: 40px; + } + + .playlist-page .playlist-display .playlistInfo .playlist-hero { + transform: unset; + } + + .artist-page .artist-header { + min-height: 60vh; + } + + .artist-page .artist-image { + width: 20vh; + height: 20vh; + aspect-ratio: 1; + } + + .artist-page.animated .artist-header { + min-height: 80vh; + } + + .playlist-page .playlist-body { + flex: 1; + } +} diff --git a/src/renderer/less/helpers.css b/src/renderer/less/helpers.css new file mode 100644 index 00000000..396c6433 --- /dev/null +++ b/src/renderer/less/helpers.css @@ -0,0 +1,481 @@ +.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 { + overflow: hidden; +} +.spatialproperties-panel .modal-window:not(.airplay-modal) { + height: 700px; + max-height: 700px; + width: 800px; + max-width: 800px; +} +.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: 36px; + height: 36px; + background-position: center; + background-repeat: no-repeat; + -webkit-app-region: no-drag; + appearance: none; + border: 0; + background-color: transparent; + position: absolute; + top: 10px; + right: 10px; + border-radius: 50px; + display: grid; + align-content: center; +} +.spatialproperties-panel .modal-window .modal-header .close-btn:before { + content: ""; + font-family: "codicon"; + color: var(--textColor); + font-size: 20px; +} +.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: 36px; + height: 36px; + background-position: center; + background-repeat: no-repeat; + -webkit-app-region: no-drag; + appearance: none; + border: 0; + background-color: transparent; + position: absolute; + top: 10px; + right: 10px; + border-radius: 50px; + display: grid; + align-content: center; +} +.addtoplaylist-panel .modal-window .modal-header .close-btn:before { + content: ""; + font-family: "codicon"; + color: var(--textColor); + font-size: 20px; +} +.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: rgba(30, 30, 30, 0.45); + backdrop-filter: blur(32px) saturate(180%); + position: relative; + min-width: 200px; + box-shadow: var(--ciderShadow-Generic); + border-radius: var(--panelRadius); + overflow: hidden; + font-size: 13px; +} +.menu-panel .menu-panel-body .menu-option { + text-align: left; + display: flex; + appearance: none; + border: 0px; + font: inherit; + background: transparent; + color: inherit; + margin: 0 auto; + position: relative; + width: 100%; + padding: 9px 14px; + align-items: center; +} +.menu-panel .menu-panel-body .menu-option::before { + background: var(--hover); + border-radius: 6px; + content: ""; + --sizeY: 3px; + --sizeX: 4px; + top: var(--sizeY); + left: var(--sizeX); + bottom: var(--sizeY); + right: var(--sizeX); + position: absolute; + opacity: 0; + transform: scale(0.98); + z-index: -1; + transition: transform 0.25s ease-out, opacity 0.25s ease-out; +} +.menu-panel .menu-panel-body .menu-option:hover::before { + transition: transform 0s ease-in, opacity 0s ease-in; + opacity: 1; + transform: scale(1); +} +.menu-panel .menu-panel-body .menu-option:active::before { + transition: transform 0.1s ease-in-out, opacity 0.1s ease-in-out; + opacity: 1; + transform: scale(0.98); + background: var(--selected-click); +} +.menu-panel .menu-header-text { + margin: 18px 6px; +} +.menu-panel .menu-header-text .close-btn { + width: 36px; + height: 36px; + background-position: center; + background-repeat: no-repeat; + -webkit-app-region: no-drag; + appearance: none; + border: 0; + background-color: transparent; + position: absolute; + top: 10px; + right: 10px; + border-radius: 50px; + display: grid; + align-content: center; +} +.menu-panel .menu-header-text .close-btn:before { + content: ""; + font-family: "codicon"; + color: var(--textColor); + font-size: 20px; +} +.menu-panel .menu-header-text .close-btn:hover { + background-color: #c42b1c; +} +.menu-panel .menu-body { + overflow: overlay; + height: 100%; + display: flex; + flex-flow: column; + gap: 0px; + padding: 0px; + position: relative; +} +.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; +} +.moreinfo-modal .modal-window { + height: 70%; + max-height: 100%; + width: 45%; + max-width: 100%; + overflow: hidden; + line-height: 1.25; +} +.moreinfo-modal .modal-content { + padding: 1em; + font-size: 0.8rem; +} +.moreinfo-modal .modal-content br { + display: block; + /* makes it have a width */ + content: ""; + /* clears default height */ + margin: 2em; + margin-bottom: -0.6rem; +} +.moreinfo-modal .modal-header { + flex-direction: column; +} +.moreinfo-modal .modal-header .modal-title { + text-align: unset !important; + width: 100%; +} +.moreinfo-modal .modal-header .modal-title:not(.modal-subtitle) { + font-size: 25px; +} +.mediainfo-popover { + user-select: none; + background-color: #000000; + overflow: hidden; +} +.mediainfo-popover .content .shadow-artwork { + height: 100%; + width: 100%; + position: absolute; + top: 0; + left: 0; + z-index: -1; + filter: blur(32px) brightness(50%) saturate(280%); +} +.mediainfo-popover .content .popover-artwork { + width: 200px; + height: 200px; + margin: 0 auto; + margin-bottom: 20px; +} +.mediainfo-popover .content .song-name { + font-weight: 600; +} +.mediainfo-popover .content .song-artist, +.mediainfo-popover .content .song-album { + opacity: 0.75; + cursor: pointer; +} +.mediainfo-popover .content .song-artist:hover, +.mediainfo-popover .content .song-album:hover { + text-decoration: underline; +} +._svg-icon { + --icon: url("assets/chevron-left.svg"); + --size: 1em; + width: var(--size); + height: var(--size); + -webkit-mask-image: var(--icon); + -webkit-mask-position: center; + -webkit-mask-size: contain; + background: rgba(255, 255, 255, 0.76); + -webkit-mask-repeat: no-repeat; +} +._svg-icon.svg-md { + --size: 1.2em; +} diff --git a/src/renderer/less/helpers.less b/src/renderer/less/helpers.less index 73ee3d45..39b11a94 100644 --- a/src/renderer/less/helpers.less +++ b/src/renderer/less/helpers.less @@ -1,6 +1,6 @@ .notyf__toast { -webkit-app-region: no-drag; - cursor : pointer; + cursor: pointer; } .notyf-info { @@ -9,142 +9,145 @@ .tooltip-inner { background: #2f2f2f; - opacity : 1; - border : 1px solid rgb(0 0 0 / 35%); + 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; + 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; + 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; + 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; + 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%; + content: ""; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; pointer-events: none; - box-shadow : var(--mediaItemShadow); - z-index : 1; - border-radius : inherit; + box-shadow: var(--mediaItemShadow); + z-index: 1; + border-radius: inherit; } .modal-header { - width : 100%; + width: 100%; padding: 6px; } .modal-content { - width : 100%; - height : 100%; - overflow : hidden; + width: 100%; + height: 100%; + overflow: hidden; overflow-y: overlay; } - .modal-footer {} + .modal-footer { + } } } .spatialproperties-panel { .modal-window { - &:not(.airplay-modal){ - height : 700px; - max-height: 700px; - width : 800px; - max-width : 800px;} - overflow : hidden; + &:not(.airplay-modal) { + height: 700px; + max-height: 700px; + width: 800px; + max-width: 800px; + } + + overflow: hidden; .info-header { padding-left: 12px; } .visual-container { - display : flex; + display: flex; justify-content: center; - align-items : center; - overflow : hidden; + align-items: center; + overflow: hidden; } .visual { - position : relative; - height : 250px; - width : 300px; - display : inline-flex; - align-items : flex-end; + 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; + 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); + 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; + 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; + 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; + 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; + 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; + 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; + 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; + transform: rotateX(60deg) rotateZ(-45deg) translateZ(30px); + opacity: 0.7; + z-index: 3; } } .modal-header { - padding : 16px; + padding: 16px; position: relative; overflow: hidden; @@ -153,22 +156,8 @@ } .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; + .menu-panel.menu-header-text.close-btn - &:hover { - background-color: rgb(196, 43, 28) - } } } } @@ -176,14 +165,14 @@ .addtoplaylist-panel { .modal-window { - max-height : 600px; - max-width : 400px; - background : rgb(18 18 18 / 90%); - overflow : hidden; + max-height: 600px; + max-width: 400px; + background: rgb(18 18 18 / 90%); + overflow: hidden; backdrop-filter: blur(16px) saturate(180%); .modal-header { - padding : 16px; + padding: 16px; position: relative; .modal-title { @@ -191,54 +180,39 @@ } .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) - } + .menu-panel.menu-header-text.close-btn } } .modal-search { - width : 100%; - padding : 0px 16px; + 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; + 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; + font-size: 0.98em; + padding: 6px 12px; align-items: center; - flex-flow : row; + flex-flow: row; .icon { - pointer-events : none; - width : 32px; - height : 32px; - display : flex; + pointer-events: none; + width: 32px; + height: 32px; + display: flex; justify-content: center; - align-items : center; - margin-right : 6px; + align-items: center; + margin-right: 6px; } .name { @@ -265,35 +239,35 @@ } .menu-panel { - width : 100%; - height : 100%; - position : fixed; - top : 0; - left : 0; - z-index : 100001; - display : flex; - justify-content : center; - align-items : center; + 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; + padding: 6px; + display: flex; background: rgb(200 200 200 / 10%); .menu-option-header { - width : 40px; - height : 40px; - display : flex; + width: 40px; + height: 40px; + display: flex; justify-content: center; - align-items : center; - border-radius : var(--mediaItemRadius); - appearance : none; - border : 0; - background : transparent; + align-items: center; + border-radius: var(--mediaItemRadius); + appearance: none; + border: 0; + background: transparent; &.active { - .sidebar-icon>.svg-icon { + .sidebar-icon > .svg-icon { --color: var(--keyColor); } } @@ -309,85 +283,93 @@ } .menu-panel-body { - display : flex; - flex-flow : column; - background : rgb(30 30 30 / 45%); + display: flex; + flex-flow: column; + background: rgb(30 30 30 / 45%); backdrop-filter: blur(32px) saturate(180%); - position : relative; - min-width : 200px; - box-shadow : var(--ciderShadow-Generic); - border-radius : var(--panelRadius); - overflow : hidden; - font-size : 13px; + position: relative; + min-width: 200px; + box-shadow: var(--ciderShadow-Generic); + border-radius: var(--panelRadius); + overflow: hidden; + font-size: 13px; .menu-option { text-align: left; - display : flex; + display: flex; appearance: none; - border : 0px; - font : inherit; + border: 0px; + font: inherit; background: transparent; - color : inherit; - margin : 0 auto; - position : relative; - width : 100%; - padding : 9px 14px; + color: inherit; + margin: 0 auto; + position: relative; + width: 100%; + padding: 9px 14px; align-items: center; &::before { - background : var(--hover); + background: var(--hover); border-radius: 6px; - content : ""; - --sizeY : 3px; - --sizeX : 4px; - top : var(--sizeY); - left : var(--sizeX); - bottom : var(--sizeY); - right : var(--sizeX); - position : absolute; - opacity : 0; - transform : scale(0.98); - z-index : -1; - transition : transform .25s ease-out, opacity .25s ease-out; + content: ""; + --sizeY: 3px; + --sizeX: 4px; + top: var(--sizeY); + left: var(--sizeX); + bottom: var(--sizeY); + right: var(--sizeX); + position: absolute; + opacity: 0; + transform: scale(0.98); + z-index: -1; + transition: transform .25s ease-out, opacity .25s ease-out; } &:hover { &::before { transition: transform 0s ease-in, opacity 0s ease-in; - opacity : 1; - transform : scale(1); + opacity: 1; + transform: scale(1); } } &:active { &::before { transition: transform .1s ease-in-out, opacity .1s ease-in-out; - opacity : 1; - transform : scale(0.98); + opacity: 1; + transform: scale(0.98); background: var(--selected-click); } } } } - .menu-header-text { margin: 18px 6px; .close-btn { - width : 50px; - height : 42px; - background-image : var(--gfx-closeBtn); + width: 36px; + height: 36px; 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; + background-repeat: no-repeat; + -webkit-app-region: no-drag; + appearance: none; + border: 0; + background-color: transparent; + position: absolute; + top: 10px; + right: 10px; + border-radius: 50px; + display: grid; + align-content: center; + + &:before { + content: ""; + font-family: "codicon"; + color: var(--textColor); + font-size: 20px; + } &:hover { background-color: rgb(196, 43, 28) @@ -396,25 +378,25 @@ } .menu-body { - overflow : overlay; - height : 100%; - display : flex; + overflow: overlay; + height: 100%; + display: flex; flex-flow: column; - gap : 0px; - padding : 0px; - position : relative; + gap: 0px; + padding: 0px; + position: relative; } .menu-footer { - width : 100%; + width: 100%; padding: 12px; } } .queue-panel { - height : 100%; - width : 100%; - display : flex; + height: 100%; + width: 100%; + display: flex; flex-flow: column; .queue-header-text { @@ -423,52 +405,52 @@ .queue-body { overflow: overlay; - height : 100%; + height: 100%; } .queue-footer { - width : 100%; + width: 100%; padding: 12px; } .autoplay { - background : rgb(200 200 200 / 15%); - display : flex; + background: rgb(200 200 200 / 15%); + display: flex; justify-content: center; - appearance : none; - border : 0; - border-radius : 6px; - height : 32px; - width : 32px; + appearance: none; + border: 0; + border-radius: 6px; + height: 32px; + width: 32px; } .infinity { content: url("./assets/infinity.svg"); - margin : auto; + margin: auto; } } .moreinfo-modal { .modal-window { - height : 70%; - max-height : 100%; - width : 45%; - max-width : 100%; - overflow : hidden; + height: 70%; + max-height: 100%; + width: 45%; + max-width: 100%; + overflow: hidden; line-height: 1.25; } .modal-content { - padding : 1em; + padding: 1em; font-size: 0.8rem; br { - display : block; + display: block; /* makes it have a width */ - content : ""; + content: ""; /* clears default height */ - margin : 2em; + margin: 2em; margin-bottom: -0.6rem; } } @@ -478,7 +460,7 @@ .modal-title { text-align: unset !important; - width : 100%; + width: 100%; &:not(.modal-subtitle) { font-size: 25px; @@ -500,18 +482,21 @@ top: 0; left: 0; z-index: -1; - filter:blur(32px) brightness(50%) saturate(280%); + filter: blur(32px) brightness(50%) saturate(280%); } + .popover-artwork { width: 200px; height: 200px; - margin: 0 0 20px 0; + margin: 0 auto; + margin-bottom: 20px; } .song-name { font-weight: 600; } - .song-artist,.song-album { + + .song-artist, .song-album { opacity: 0.75; cursor: pointer; @@ -520,4 +505,20 @@ } } } +} + +._svg-icon { + --icon: url("./assets/chevron-left.svg"); + --size: 1em; + width: var(--size); + height: var(--size); + -webkit-mask-image: var(--icon); + -webkit-mask-position: center; + -webkit-mask-size: contain; + background: rgb(255 255 255 / 76%); + -webkit-mask-repeat: no-repeat; + + &.svg-md { + --size: 1.2em; + } } \ No newline at end of file diff --git a/src/renderer/less/linux.less b/src/renderer/less/linux.less index dc0be238..777e9cd0 100644 --- a/src/renderer/less/linux.less +++ b/src/renderer/less/linux.less @@ -3,4 +3,57 @@ body[platform="linux"] { #window-controls-container { //display: none; } + + .window-controls { + justify-content: flex-end; + align-items : center; + padding-right : 6px; + + >div { + --iconSize: 16px; + + &.close, + &.minmax, + &.minimize, + &.minmax.restore { + background-image: unset!important; + position : relative; + display : grid; + align-content : center; + text-align : center; + height : 36px!important; + width : 36px!important; + border-radius : 50px; + transition: background-color .1s ease-in-out; + + &:hover { + background: rgb(200 200 200 / 10%)!important; + } + } + + &.close::before { + font-family: "codicon"; + font-size : var(--iconSize); + content : ""; + } + + &.minmax::before { + font-family: "codicon"; + font-size : var(--iconSize); + content : ""; + } + + &.minimize::before { + font-family: "codicon"; + font-size : var(--iconSize); + content : ""; + } + + &.restore::before { + font-family: "codicon"; + font-size : var(--iconSize); + content : ""; + } + } + } } \ No newline at end of file diff --git a/src/renderer/less/macos.less b/src/renderer/less/macos.less index 80ae65c8..4819a263 100644 --- a/src/renderer/less/macos.less +++ b/src/renderer/less/macos.less @@ -1,15 +1,17 @@ body[platform="darwin"] { html { - background: transparent!important; + background: transparent !important; } &.notransparency::before { display: none; } + #app { &.simplebg { background: transparent; } + &::before { display: none; } @@ -25,6 +27,7 @@ body[platform="darwin"] { .app-chrome .app-chrome-item.search { margin-right: 12px; } + .app-chrome .app-mainmenu { width: 46px; } @@ -33,6 +36,21 @@ body[platform="darwin"] { background-color: var(--macOSChromeColor); } } + + &[window-state="normal"] { + &::after { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + box-shadow: inset 0px 0px .5px 1px rgb(200 200 200 / 40%); + border-radius: 10px; + content: " "; + z-index: 999999; + pointer-events: none; + } + } } #app-main { @@ -43,7 +61,19 @@ body[platform="darwin"] { } #app-content { - background-color: var(--baseColor); + background-color: #1e1e1e6b; } } + + .settings-window.maxed { + .tabs>.col-auto { + transition: padding-top .3s linear; + padding-top: var(--chromeHeight1); + } + } + + #apple-music-video-player-controls #player-exit { + margin-top: 18px; + left: 70px; + } } \ No newline at end of file diff --git a/src/renderer/less/miniplayer.less b/src/renderer/less/miniplayer.less new file mode 100644 index 00000000..795c2158 --- /dev/null +++ b/src/renderer/less/miniplayer.less @@ -0,0 +1,410 @@ +.mini-view { + width: 100%; + height: 100%; + display: flex; + justify-content: center; + align-items: center; + + .fs-row { + flex-grow: 1; + } + + .playback-button--small.active { + background-color: rgb(200 200 200 / 25%); + } + + .player-exit { + z-index: 3; + position: absolute; + top: 5px; + right: 5px; + -webkit-app-region: no-drag; + } + + .player-pin { + z-index: 3; + position: absolute; + min-width: 20px; + min-height: 20px; + top: 5px; + right: 30px; + -webkit-app-region: no-drag; + } + + #mini-pin { + display: none; + } + + .player-pin:hover #mini-pin { + display: block; + } + + .playback-button--small { + opacity: 0.7; + } + + .right-col { + height: 50vh; + } + + @media only screen and (max-width: 1121px) { + .display--large { + display: flex !important; + } + } + + .display--large { + display: flex; + + .slider { + width: 100%; + z-index: 1; + } + + .input-container { + display: flex; + justify-content: center; + align-items: center; + width: 100% + } + + .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.70; + background-image: url("./assets/feather/volume-2.svg"); + } + + .volume-button--small:active { + transform: scale(0.9); + } + + .volume-button--small.active { + background-image: url("./assets/feather/volume.svg"); + } + + 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; + + &::-webkit-slider-thumb { + -webkit-appearance: none; + height: 14px; + width: 14px; + border-radius: 50%; + background: rgb(50 50 50); + cursor: default; + box-shadow: inset 0px 0px 0px 1px rgba(255, 255, 255, 0.4); + transition: all var(--appleTransition); + } + + &::-webkit-slider-thumb:hover { + background-image: radial-gradient(var(--songProgressColor) 2px, transparent 3px, transparent 10px); + transform: scale(1.2); + } + + &::-webkit-slider-thumb:active { + background-image: radial-gradient(var(--songProgressColor) 3px, transparent 4px, transparent 10px); + transform: scale(1); + } + + &::-webkit-slider-runnable-track { + -webkit-appearance: none; + box-shadow: none; + border: none; + background: transparent; + } + } + } + + + .background { + position: absolute; + background-size: cover; + width: 100%; + height: 100%; + -webkit-user-select: none; + -webkit-app-region: drag; + + .bgArtworkMaterial { + position: absolute; + width: 100%; + height: 100%; + + .bg-artwork-container { + z-index: unset; + } + + .bg-artwork-container .bg-artwork { + filter: brightness(85%) saturate(95%) blur(180px) contrast(0.9) opacity(0.9); + } + + .no-animation { + animation: unset; + } + } + } + + + .lyrics-col { + + height: 62vh; + display: flex; + justify-content: center; + align-content: center; + width: 80%; + + ::-webkit-scrollbar-thumb { + box-shadow: unset; + } + + &:hover ::-webkit-scrollbar-thumb { + box-shadow: inset 0px 0px 10px 10px rgb(200 200 200 / 50%); + } + + .no-lyrics { + width: 100%; + height: 100%; + display: flex; + justify-content: center; + } + + .lyric-line { + font-size: 35px; + } + + } + + .queue-col { + + width: 60vh; + height: 50vh; + + .queue-title { + opacity: 0.6; + } + + .queue-panel > * { + z-index: 3; + } + + ::-webkit-scrollbar-thumb { + box-shadow: unset; + } + + &:hover ::-webkit-scrollbar-thumb { + box-shadow: inset 0px 0px 10px 10px rgb(200 200 200 / 50%); + } + } + + .tab-toggles { + display: flex; + position: absolute; + bottom: 0; + right: 0; + width: 15vh; + height: 5vh; + justify-content: space-evenly; + + .volume { + background-image: url("./assets/feathers/volume.svg"); + padding: 0.5vh; + width: 2vh; + height: 2vh; + background-origin: content-box; + background-repeat: no-repeat; + } + + .queue { + background-image: url("./assets/list.svg"); + padding: 0.5vh; + width: 2.5vh; + height: 2.5vh; + background-origin: content-box; + background-repeat: no-repeat; + } + + .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; + } + + .active { + background-color: rgba(200, 200, 200, 0.7); + border-radius: 3px; + } + } + + .artwork-col { + justify-content: center; + align-items: center; + display: flex; + flex-direction: column; + + .artwork { + width: 100%; + height: 100%; + + .mediaitem-artwork { + border-radius: unset; + } + } + + .controls-parents { + width: 100%; + position: absolute; + background: #0000009e; + backdrop-filter: blur(10px); + bottom: 0px; + z-index: 3; + opacity: 0; + padding: 3%; + + &:hover { + opacity: 1; + } + } + + + .app-playback-controls { + -webkit-app-region: no-drag; + + .song-artist, .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; + + .song-name-normal { + height: inherit; + } + + &.song-artist-marquee { + > marquee { + //margin-bottom: -3px; + } + } + } + + .song-artist { + font-size: 0.875em; + font-weight: 400; + } + + .song-name { + width: unset !important; + margin-top: 0.15vh; + display: -webkit-box; + line-height: 1.2; + text-overflow: ellipsis; + text-align: center; + } + } + + .app-playback-controls .playback-info { + margin-top: 0.5vh; + width: 100%; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + position: relative; + + input[type="range"] { + width: 100%; + } + + > div { + width: 100%; + text-align: center; + } + + + } + + .app-playback-controls .song-progress { + @bgColor: transparent; + //height: 16px; + position: absolute; + bottom: -3.5vh; + left: 0px; + background: @bgColor; + + .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(--songProgressColor); + cursor: default; + transition: opacity .10s var(--appleEase), transform .10s var(--appleEase); + } + + &::-moz-range-thumb { + width: 8px; + height: 8px; + border-radius: 100%; + background: var(--songProgressColor); + cursor: default; + } + } + } + + .control-buttons { + margin-top: 3.5vh; + display: inline-flex; + width: 100%; + justify-content: center; + } + + } +} diff --git a/src/renderer/less/pages.css b/src/renderer/less/pages.css new file mode 100644 index 00000000..5b186e9c --- /dev/null +++ b/src/renderer/less/pages.css @@ -0,0 +1,1886 @@ +.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; + height: 100%; +} +.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%; + width: 320px; + font-size: 14px; + overflow: overlay; + padding-bottom: 16px; + flex: 0 0 auto; +} +.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; + padding: 16px 32px; + overflow: auto; + padding-bottom: 16px; +} +.github-themes-page .gh-content { + display: flex; + flex-direction: row; + flex: 1; + overflow: hidden; +} +.github-themes-page .gh-header { + padding: 16px; + height: 64px; + display: grid; + align-content: center; + flex: 0 0 auto; +} +.github-themes-page .gh-header .header-text { + position: initial !important; + justify-content: left !important; +} +.github-themes-page .installed-themes-page .style-editor-container { + height: 100%; + flex: 1; + background: var(--color2); + padding: 0px; + overflow-y: overlay; +} +.github-themes-page .installed-themes-page .style-editor-container .list-group-item { + border-radius: 0px; +} +.installed-themes-page { + display: flex; + flex-direction: column; + height: 100%; + overflow: hidden; +} +.installed-themes-page .themeContextMenu { + background: transparent; + color: var(--keyColor); + border: 0px; +} +.installed-themes-page .list-group-item.addon { + background: rgba(86, 86, 86, 0.2); +} +.installed-themes-page .list-group-item.applied { + background: var(--keyColor-disabled); + pointer-events: none; +} +.installed-themes-page .repo-header { + font-size: 16px; + position: sticky; + top: 0; + left: 0; + right: 0; + width: 100%; + height: 50px; + z-index: 1; + background: rgba(36, 36, 36, 0.5); + display: flex; + justify-content: center; + align-items: center; + backdrop-filter: var(--glassFilter); + overflow: hidden; + border-bottom: 1px solid rgba(0, 0, 0, 0.18); + border-top: 1px solid rgba(135, 135, 135, 0.18); +} +.installed-themes-page .gh-header { + z-index: 5; + padding: 16px; + flex: 0 0 auto; + height: 64px; + display: grid; + align-content: center; +} +.installed-themes-page .gh-header .header-text { + position: initial !important; + justify-content: left !important; +} +.installed-themes-page .gh-content { + display: flex; + flex-direction: row; + padding: 0px; + height: 100%; + flex: 0 0 auto; +} +.installed-themes-page .gh-content .repos-list { + width: 320px; + overflow: overlay; + height: 90%; + font-size: 14px; + white-space: nowrap; +} +.installed-themes-page .gh-content .repos-list > .list-group { + margin: 0px; + padding-bottom: 16px; +} +.installed-themes-page .gh-content .repos-list .list-group-item { + padding: 12px 6px; +} +.installed-themes-page .gh-content .repos-list .list-group-item:hover { + filter: brightness(1.2); +} +.installed-themes-page .gh-content .repos-list .list-group-item:active { + filter: brightness(0.8); +} +.installed-themes-page .gh-content .style-editor-container { + height: 100%; + flex: 1; + padding: 0px; + width: 100%; + overflow: hidden; +} +.installed-themes-page .gh-content .style-editor-container .stylestack-editor { + padding-bottom: 16px; +} +.installed-themes-page .gh-content .style-editor-container .list-group-item { + border-radius: 0px; +} +.installed-themes-page .stylestack-editor { + width: 100%; +} +.installed-themes-page .stylestack-editor .btn, +.installed-themes-page .stylestack-editor .btn-group { + width: 100%; +} +.installed-themes-page .stylestack-editor .themeLabel { + display: flex; + align-items: center; +} +.installed-themes-page .stylestack-editor .handle { + height: 100%; + display: flex; + justify-content: center; + align-items: center; +} +.installed-themes-page .stylestack-editor .list-group-item:hover { + cursor: grab; +} +.installed-themes-page .stylestack-editor .list-group-item:active { + cursor: grabbing; +} +.installed-themes-page .stylestack-editor .removeItem { + border: 0px; + background: transparent; + height: 32px; + font-weight: bold; + color: var(--textColor); + cursor: pointer; +} +.installed-themes-page .stylestack-editor .stylesDropdown > .dropdown-menu { + height: 300px; + overflow-y: overlay; +} +.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; +} +.search-page .searchToggle { + float: right; +} +.search-page .searchToggle > button { + min-width: 120px; +} +.search-page .cd-mediaitem-square.mediaitem-brick { + width: 530px !important; +} +.search-page .cd-mediaitem-square.mediaitem-brick .artwork-container .artwork { + height: 168px !important; + width: 507px !important; + z-index: 1; +} +.search-page .cd-mediaitem-square.mediaitem-brick .title { + font-weight: bold; + justify-content: left; + font-size: 18px; + margin-top: -40px; + z-index: 5; + pointer-events: none; +} +.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; + padding: 0 1rem; +} +.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; +} +.content-inner.library-artists-page { + height: calc(100% - 60px - var(--navigationBarHeight)); + padding: 0px; +} +.content-inner.library-artists-page .inner-container { + display: flex; + height: calc(100% - var(--navigationBarHeight)); + padding: 0px; + height: 100%; +} +.content-inner.library-artists-page .inner-container .list-flat { + border-radius: 0px; +} +.content-inner.library-artists-page .inner-container .podcast-artwork { + width: 200px; + margin: 16px auto; + height: 200px; +} +.content-inner.library-artists-page .inner-container .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.library-artists-page .inner-container .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.library-artists-page .inner-container .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.library-artists-page .inner-container .episodes-list { + height: calc(100% + 60px); + width: 100%; + background: rgba(200, 200, 200, 0.06); + overflow-y: overlay; + overflow-x: hidden; +} +.content-inner.library-artists-page .inner-container .episodes-list .episodes-inline-info { + padding: 14px 14px 0px 14px; +} +.content-inner.library-artists-page .inner-container .episodes-list .episodes-inline-info .podcast-show-info { + display: flex; + justify-content: center; + flex-direction: column; +} +.content-inner.library-artists-page .inner-container .episodes-list .episodes-inline-info .podcast-show-description { + margin: 32px 6px; + font-size: 0.8rem; + white-space: pre-wrap; + display: block; +} +.content-inner.library-artists-page .inner-container .episodes-list .episodes-inline-info .podcast-artwork { + width: 120px; + margin: 0px auto; + height: 120px; +} +.content-inner.library-artists-page .inner-container .episodes-list .podcast-no-search-results { + text-align: center; + margin-top: 40px; +} +.content-inner.library-artists-page .inner-container .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.library-artists-page .inner-container .podcasts-details .meta-btn { + font-size: 0.75em; +} +.content-inner.library-artists-page .inner-container .podcasts-details .podcasts-details-header { + display: flex; + justify-content: end; + align-items: center; + position: sticky; + top: 0; + z-index: 2; +} +.content-inner.library-artists-page .inner-container .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.library-artists-page .inner-container .podcasts-details .close-btn:hover { + background-color: #c42b1c; +} +.content-inner.library-artists-page .inner-container .podcasts-details .podcast-genre { + text-align: center; + margin: 6px; + font-size: 0.8em; + font-weight: 500; + opacity: 0.8; +} +.content-inner.library-artists-page .inner-container .podcasts-details .podcast-metainfo { + text-align: center; + font-size: 0.7em; + opacity: 0.8; +} +.content-inner.library-artists-page .inner-container .podcasts-details .podcast-header { + text-align: center; +} +.content-inner.library-artists-page .inner-container .podcasts-details .podcast-play-btn { + width: 50%; + display: block; + margin: 0 auto; +} +.content-inner.library-artists-page .inner-container .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.library-artists-page .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; + } +} +@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); + display: flex; + flex-direction: column; + height: 100%; + overflow: hidden; +} +.playlist-page .cd-mediaitem-list-item:hover .heart-icon { + display: flex; +} +.playlist-page .cd-mediaitem-list-item .heart-icon { + left: -25px; +} +.playlist-page .editTracksBtn { + position: absolute; + top: 20px; + right: 20px; + z-index: 1; +} +.playlist-page .editTracksBtn > span { + display: flex; + gap: 8px; +} +.playlist-page .mediaContainer { + transition: width 0.5s ease-in-out, height 0.5s ease-in-out; + width: 260px; + height: 260px; +} +.playlist-page .playlist-body { + padding: 32px; + overflow-y: overlay; + height: 100%; + padding: 0px; + background-color: var(--color3); +} +.playlist-page .playlist-body.scrollbody .tabs { + display: flex; + flex-flow: column; + height: 100%; +} +.playlist-page .playlist-body.scrollbody .tabs .nav-link { + text-transform: capitalize; +} +.playlist-page .playlist-body.scrollbody .tabs .tab-content { + height: 100%; + overflow: hidden; + margin: 0px; +} +.playlist-page .playlist-body.scrollbody .tabs .tab-content .tab-pane { + height: 100%; + overflow-y: overlay; + overflow-x: hidden; + padding: var(--contentInnerPadding); + padding-inline: 40px; + -webkit-mask-image: linear-gradient(180deg, transparent, white 20px); +} +.playlist-page .playlist-body.scrollbody .tabs .tab-content .tab-pane .well { + margin: 0px; +} +.playlist-page .playlist-body .search-input-container { + height: 2.5rem; + margin: 1rem; + margin-top: 0; + scroll-margin-top: 1rem; +} +.playlist-page .playlist-body .search-input-container .search-input { + width: 100%; + height: 100%; +} +.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); + display: none; +} +.playlist-page .playlist-display { + padding: var(--contentInnerPadding); + min-height: 300px; + position: relative; + box-shadow: 0px 4px 6px 3px rgba(0, 0, 0, 0.1); + transition: min-height 0.5s ease-in-out; +} +.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 .playlist-hero { + width: 100%; + transform: translateX(25%); + position: absolute; + z-index: -1; + top: 0; + left: 0; + right: 0; + bottom: 0; +} +.playlist-page .playlist-display .playlistInfo .playlist-hero .mediaitem-artwork { + -webkit-mask-image: -webkit-radial-gradient(center, circle cover, #000000 50%, rgba(0, 0, 0, 0) 75%); + border-radius: 0px; +} +.playlist-page .playlist-display .playlistInfo .playlist-hero .hero-tint { + position: absolute; + top: 0; + opacity: 0.6; + 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; + margin-bottom: 6px; + flex-shrink: unset; +} +.playlist-page .playlist-display .playlistInfo .playlist-info .search-input::placeholder { + color: var(--heroplaceholdercolor); +} +.playlist-page .playlist-display .playlistInfo .playlist-info .nameEdit { + font-weight: 700; + font-size: 1.6rem; + flex-shrink: unset; + background: transparent; + border: 0px; + color: inherit; + font-family: inherit; +} +.playlist-page .playlist-display .playlistInfo .playlist-info .descriptionEdit { + font-size: 14px; + flex-shrink: unset; + background: transparent; + border: 0px; + color: inherit; + font-family: inherit; + width: 60vw; +} +.playlist-page .playlist-display .playlistInfo .playlist-info .descriptionEdit { + font-size: 14px; + flex-shrink: unset; + background: transparent; + border: 0px; + color: inherit; + font-family: inherit; + width: 60vw; +} +.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 { + transition: height 0.2s ease-in-out, opacity 0.2s ease-in-out; + box-sizing: border-box; + font-size: 14px; + flex-shrink: unset; + margin-right: 5px; + max-height: 100px; + position: relative; + height: 4vh; +} +.playlist-page .playlist-display .playlistInfo .playlist-info .playlist-desc .content { + height: 4vh; + -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 .playlist-display .playlistInfo .playlist-info .search-btn { + display: flex; + width: 32px; + align-items: center; + margin-right: 1rem; + background: rgba(100, 100, 100, 0.5); + border: none; + cursor: pointer; + border-radius: 100vmax; + box-shadow: var(--ciderShadow-Generic); +} +.playlist-page .playlist-display .playlistInfo .playlist-info .search-btn > ._svg-icon { + width: 18px; + height: 18px; + margin: auto; +} +.playlist-page .playlist-display .playlistInfo .playlist-info .search-btn.active { + animation: enlarge 0.5s ease-in-out; +} +.playlist-page .playlist-display .playlistInfo .playlist-info .search-btn:hover { + filter: brightness(125%); +} +@keyframes enlarge { + 0% { + transform: scale(1); + } + 50% { + transform: scale(1.2); + } + 100% { + transform: scale(1); + } +} +.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; + transition: height 0.2s ease-in-out, opacity 0.2s ease-in-out; + height: 0.9em; +} +.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; +} +.playlist-page .pilldim .nav-pills { + width: max-content; + margin: 0 auto; + margin-top: 16px; +} +.playlist-page.plmin .playlist-display { + transition: min-height 0.5s ease-in-out; + min-height: 200px; +} +.playlist-page.plmin .playlist-display .mediaContainer { + transition: width 0.5s ease-in-out, height 0.5s ease-in-out; + width: 128px !important; + height: 128px !important; +} +.playlist-page.plmin .playlist-display .playlist-time { + transition: height 0.2s ease-in-out, opacity 0.2s ease-in-out; + height: 0px; + opacity: 0; +} +.playlist-page.plmin .playlist-display .playlist-desc { + transition: height 0.2s ease-in-out, opacity 0.2s ease-in-out; + height: 0px !important; + opacity: 0; +} +@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.animated .artist-header { + min-height: 80vh; +} +.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; +} +.artist-page .artist-header .artist-hero { + height: 100%; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; +} +.artist-page .artist-header .artist-hero .mediaitem-artwork { + border-radius: 0px; +} +.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 .social-btn { + border-radius: 100%; + background: transparent; + height: 17px; + border: 0px; + cursor: pointer; + z-index: 69; + display: flex; + justify-content: center; + align-items: center; + float: right; +} +@media only screen and (min-width: 1133px) and (max-width: 1277px) { + .artist-page .artist-header .about-page .social-btn { + display: none !important; + } +} +.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; + z-index: 1; +} +.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%); + object-fit: cover; +} +.artist-page .artist-header .row .col.cider-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: -64px 20px; +} +.artist-page .artist-body .arow { + display: flex; + overflow: hidden; + padding: 16px 32px; +} +.artist-page .artist-body .arow > .latestRelease { + width: 250px; +} +.artist-page .artist-body .arow > .topSongs { + width: calc(100% - 250px); +} +.artist-page .artist-body .arow.arowb > .topSongs { + width: 100%; +} +.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 .nav { + width: 90%; + margin: 16px auto 0px; +} +.audiolabs-page { + padding: 0px; +} +.audiolabs-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); +} +.audiolabs-page .carousel-item > img { + object-fit: cover; + width: 100%; +} +.audiolabs-page .spprofile-line { + height: 300px; + width: 100%; + max-width: 1024px; + padding: 16px; + margin: 0 auto; +} +.audiolabs-page .spprofile-line .spprofile-viewport { + height: 100%; + position: relative; + border-radius: var(--mediaItemRadius); + overflow: hidden; + box-shadow: var(--mediaItemShadow-Shadow); + background: black; +} +.audiolabs-page .spprofile-line .spprofile-viewport .spprev, +.audiolabs-page .spprofile-line .spprofile-viewport .nextprev { + position: absolute; + height: 100%; + width: 64px; + top: 0; + background: rgba(0, 0, 0, 0.2); + z-index: 1; + border: 0px; + transition: background 0.2s var(--appleEase), transform 0.2s var(--appleEase); +} +.audiolabs-page .spprofile-line .spprofile-viewport .spprev:hover, +.audiolabs-page .spprofile-line .spprofile-viewport .nextprev:hover { + background: var(--selected); + transform: scale(1.1); +} +.audiolabs-page .spprofile-line .spprofile-viewport .spprev:active, +.audiolabs-page .spprofile-line .spprofile-viewport .nextprev:active { + transition: background 0s var(--appleEase); + background: var(--selected-click); +} +.audiolabs-page .spprofile-line .spprofile-viewport .spprev:before, +.audiolabs-page .spprofile-line .spprofile-viewport .nextprev: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; +} +.audiolabs-page .spprofile-line .spprofile-viewport .spprev { + left: 0; +} +.audiolabs-page .spprofile-line .spprofile-viewport .spprev:before { + -webkit-mask-image: url("views/svg/chevron-left.svg"); +} +.audiolabs-page .spprofile-line .spprofile-viewport .nextprev { + right: 0; +} +.audiolabs-page .spprofile-line .spprofile-viewport .nextprev:before { + -webkit-mask-image: url("views/svg/chevron-right.svg"); +} +.audiolabs-page .spprofile-line .spprofile-viewport .spslide { + position: absolute; + width: 100%; + height: 100%; + overflow: hidden; + background: black; +} +.audiolabs-page .spprofile-line .spprofile-viewport .spslide > img { + WIDTH: 100%; + height: 100%; + object-fit: cover; +} +.audiolabs-page .spprofile-line .spprofile-viewport .spslide .sptitle { + position: absolute; + bottom: 0px; + left: 0; + width: 100%; + text-align: center; + font-size: 18px; + text-shadow: 0px 2px 4px #00000033; +} +.audiolabs-page .spprofile-line .spprofile-viewport .spfade-enter-active, +.audiolabs-page .spprofile-line .spprofile-viewport .spfade-leave-active { + --transitionTime: 0.2s; + transition: opacity var(--transitionTime) var(--appleEase), transform var(--transitionTime) var(--appleEase); + will-change: opacity, transform; +} +.audiolabs-page .spprofile-line .spprofile-viewport .spfade-enter { + opacity: 0; + transform: scale(1.2) translate3d(0, 0, 0); + will-change: opacity, transform; +} +.audiolabs-page .spprofile-line .spprofile-viewport .spfade-leave-to { + opacity: 1; + transform: scale(1) translate3d(0, 0, 0); + will-change: opacity, transform; +} +.audiolabs-page .settings-option-body { + margin: 16px; +} +@keyframes gradient-animation { + 0% { + background-position: 0% 0%; + } + 50% { + background-position: 100% 0%; + } + 100% { + background-position: 0% 0%; + } +} +.home-page .md-btn-replay { + background-image: linear-gradient(-45deg, #2e2173, #925042); + animation: gradient-animation 5s ease-in-out infinite; + background-size: 400% 400%; + 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-image: linear-gradient(-45deg, #2e2173, #925042); + animation: gradient-animation 5s ease-in-out infinite; + background-size: 400% 400%; + 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-image: linear-gradient(-45deg, #2e2173, #925042); + animation: gradient-animation 5s ease-in-out infinite; + background-size: 400% 400%; + 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; +} +.content-inner.oobe { + position: absolute; + overflow: hidden; + top: 0; + left: 0; + bottom: 0; + right: 0; + display: grid; + place-items: center; + width: 100%; + background: #1e1e1e; +} +.content-inner.oobe .oobe-view { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + gap: 32px; + max-width: 1280px; + max-height: 720px; + align-self: center; + justify-self: center; + height: 100%; + width: 100%; +} +.content-inner.oobe .oobe-view .oobe-header { + font-size: 3em; + text-shadow: var(--replayTextShadow); + font-weight: 600; +} +.content-inner.oobe .oobe-view .oobe-body { + flex: 1; + width: 100%; + background: #ffffff0d; + border-radius: 20px; + padding: 3em; + overflow-y: scroll; + overflow-x: hidden; +} +@media screen and (max-width: 1161px) { + .content-inner.oobe .oobe-view .oobe-body { + font-size: 13px; + } +} +.content-inner.oobe .oobe-view .oobe-body.text { + white-space: pre-wrap; +} +.content-inner.oobe .oobe-view .oobe-body .blurb { + white-space: pre-wrap; + margin: 16px; + line-height: 1.5em; +} +.content-inner.oobe .oobe-view .oobe-body.visual { + padding: 1em; +} +.content-inner.oobe .oobe-view .oobe-body.visual .stylePicker { + border-radius: 10px; + overflow: hidden; + cursor: pointer; + transition: 0.25s all; + box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.25); + width: 450px; + margin: 0 auto; +} +.content-inner.oobe .oobe-view .oobe-body.visual .stylePicker .visualPreview { + pointer-events: none; + transition: 0.25s all; + width: 100%; +} +.content-inner.oobe .oobe-view .oobe-body.visual .stylePicker .card-body { + padding: 0; + display: flex; + justify-content: center; + align-items: center; +} +.content-inner.oobe .oobe-view .oobe-body.visual .stylePicker .card-footer { + font-size: 1.25em; + font-weight: 500; + position: absolute; + bottom: 0; + left: 0; + width: 100%; + border: 0px; + text-shadow: 0px 2px 6px rgba(0, 0, 0, 0.25); + font-weight: bold; +} +.content-inner.oobe .oobe-view .oobe-body.visual .stylePicker.style-active { + outline: 4px solid var(--keyColor); +} +.content-inner.oobe .oobe-view .oobe-body.visual .stylePicker:hover { + transform: scale(1.1) translateZ(-1px) translateY(10px); + z-index: 1; + box-shadow: 0px 12px 16px rgba(0, 0, 0, 0.25); +} +@media screen and (max-height: 688px) { + .content-inner.oobe .oobe-view .oobe-body.visual .stylePicker { + width: 270px; + } +} +.content-inner.oobe .oobe-view .oobe-footer { + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + padding: 16px; +} +.content-inner.oobe .oobe-view .oobe-footer .md-btn { + font-size: 18px; + min-width: 128px; + text-align: center; +} +.content-inner.oobe .oobe-titlebar { + position: absolute; + top: 0; + left: 0; + height: 46px; + width: 100%; + align-items: center; + justify-content: right; + display: flex; + -webkit-app-region: drag; +} +.content-inner.oobe .oobe-titlebar .button-group { + -webkit-app-region: no-drag; + display: flex; + flex-direction: row; + width: 100px; + height: 100%; + justify-content: center; + align-items: center; + gap: 16px; +} +.content-inner.oobe .oobe-titlebar .button-group > button { + height: 32px; + width: 32px; + font-size: 16px; + border-radius: 0px; + border: 0; + appearance: none; + position: relative; + display: flex; + justify-content: center; + align-items: center; + border-radius: 100%; +} +.content-inner.oobe .oobe-titlebar .button-group > button.close { + background-color: #fc3c44aa; +} +.content-inner.oobe .oobe-titlebar .button-group > button.close:hover { + background-color: #fc3c44; +} +.content-inner.oobe .oobe-titlebar .button-group > button.min { + background-color: rgba(200, 200, 200, 0.05); +} +.content-inner.oobe .oobe-titlebar .button-group > button.min:hover { + background-color: rgba(200, 200, 200, 0.1); +} +.content-inner.oobe .oobe-titlebar .button-group > button.close::before { + font-family: "codicon"; + content: ""; + color: white; +} +.content-inner.oobe .oobe-titlebar .button-group > button.min::before { + font-family: "codicon"; + content: ""; + color: white; +} +.content-inner.cider-multiroom { + padding: 0px; +} +.content-inner.cider-multiroom .detail { + padding: 32px; +} +.content-inner.cider-multiroom .header-desc { + font-size: 1em; + font-weight: 400; +} +.content-inner.cider-multiroom .artworkContainer { + height: 300px; + width: 100%; +} +.content-inner.cider-multiroom .artworkContainer img { + height: 100%; + width: 100%; + overflow: hidden; + object-fit: cover; + filter: unset; +} +.content-inner.cider-multiroom .artworkContainer img:last-child { + transform: unset; +} +.settings-panel { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0); + display: flex; + justify-content: center; + align-items: center; + z-index: 16; +} +.settings-panel .settings-window { + background: var(--baseColorMix); + max-width: 90%; + max-height: 90%; + width: 100%; + height: 100%; + border-radius: 10px; + box-shadow: var(--ciderShadow-Generic); + overflow: hidden; + display: flex; + align-items: center; + justify-content: center; + position: relative; + flex: 1; + backdrop-filter: var(--glassFilterHeavy); + transition: width 0.25s ease-in-out, height 0.25s ease-in-out, max-width 0.25s ease-in-out, max-height 0.25s ease-in-out; +} +.settings-panel .settings-window .header-text { + position: absolute; + top: 0; + left: 0; + right: 0; + height: 48px; + display: flex; + align-items: center; + justify-content: center; + font-weight: 600; + opacity: 0.9; +} +.settings-panel .settings-window .nav-pills { + gap: 6px; +} +.settings-panel .settings-window .nav-pills .nav-link { + display: flex; + gap: 10px; + align-items: center; + height: 35px; +} +.settings-panel .settings-window .nav-pills .nav-link :nth-child(2) { + white-space: nowrap; +} +.settings-panel .settings-window .md-option-header { + padding: 0px 26px; + border-bottom: unset; + border-top: unset; + font-weight: 600; + background: rgba(255, 255, 255, 0); + font-size: 2em; +} +.settings-panel .settings-window .settings-option-body-webview { + height: 100%; + width: 100%; +} +.settings-panel .settings-window .settings-option-body { + margin: 16px; +} +.settings-panel .settings-window.maxed { + width: 100%; + height: 100%; + max-height: 100%; + max-width: 100%; + border-radius: 0px; + box-shadow: unset; +} +.settings-panel .settings-window .close-btn { + width: 36px; + height: 36px; + background-position: center; + background-repeat: no-repeat; + -webkit-app-region: no-drag; + appearance: none; + border: 0; + background-color: transparent; + position: absolute; + top: 10px; + right: 10px; + border-radius: 50px; + display: grid; + align-content: center; + z-index: 9; +} +.settings-panel .settings-window .close-btn:before { + content: ""; + font-family: "codicon"; + color: var(--textColor); + font-size: 20px; +} +.settings-panel .settings-window .close-btn:hover { + background-color: #c42b1c; +} +.settings-panel .settings-window .close-btn.back-btn { + left: 10px; + right: unset; +} +.settings-panel .settings-window .close-btn.minmax-btn { + right: 52px; +} +.settings-panel .settings-window .close-btn.minmax-btn:before { + content: ""; +} +.settings-panel .settings-window .close-btn.minmax-btn.min:before { + content: ""; +} +.settings-panel .settings-window .close-btn.minmax-btn:hover { + background-color: var(--selected); +} +.settings-panel .settings-window .tabs { + height: 100%; + width: 100%; + margin: 0; + padding: 0; +} +.settings-panel .settings-window .tabs > .col-auto { + width: 230px; + overflow-x: hidden; + overflow-y: overlay; + transition: width 0.25s ease-in-out; +} +.settings-panel .settings-window .tabs .tab-content { + margin: 0 !important; +} +.settings-panel .settings-window .tab-content { + overflow-y: overlay; + height: 100%; + background-color: var(--panelColor2); + padding: 0px; + padding-top: 48px; + border-left: 1px solid var(--borderColor); +} +.settings-panel .settings-window .github-themes-page .header-text, +.settings-panel .settings-window .installed-themes-page .header-text { + font-size: 1.25em; +} +.settings-panel .settings-window .tab-pane { + height: 100%; +} +.settings-panel .settings-window .settings-tab-content { + height: 100%; +} +.settings-panel .settings-window.no-sidebar .gh-header > .row:last-child { + padding-right: 90px; +} +.settings-panel .settings-window.no-sidebar .tab-content { + padding-top: 0px; +} +.settings-panel .settings-window.no-sidebar .tabs .nav-pills .nav-link { + width: 50px; +} +.settings-panel .settings-window.no-sidebar .tabs .nav-pills .nav-link :nth-child(2) { + opacity: 0; +} +.settings-panel .settings-window.no-sidebar .tabs > .col-auto { + width: 80px; +} +#hid___BV_tab_button__ { + display: none; +} diff --git a/src/renderer/less/pages.less b/src/renderer/less/pages.less index 3abcb2c9..ca133d63 100644 --- a/src/renderer/less/pages.less +++ b/src/renderer/less/pages.less @@ -1,48 +1,47 @@ // Helpers .content-inner { - position : absolute; - top : var(--navigationBarHeight); - left : 0; - padding : 32px; - width : 100%; + position: absolute; + top: var(--navigationBarHeight); + left: 0; + padding: 32px; + width: 100%; transition: zoom 1s; - zoom : 1; + zoom: 1; } .content-inner.centered { - height : 100%; - display : flex; - flex-flow : column; + height: 100%; + display: flex; + flex-flow: column; justify-content: center; - align-items : center; + align-items: center; } // End Helpers // GitHub Themes .github-themes-page { - display : flex; + display: flex; flex-direction: column; - padding : 0px; - height : calc(100% - var(--navigationBarHeight)); + height: 100%; .github-avatar { - height : 42px; - width : 42px; - margin : 6px; + height: 42px; + width: 42px; + margin: 6px; border-radius: 32px; } .repo-name { - margin : 0px; - font-weight : 500; - overflow : hidden; + margin: 0px; + font-weight: 500; + overflow: hidden; text-overflow: ellipsis; - white-space : break-spaces; + white-space: break-spaces; } .repo-url { - color : var(--textColor); + color: var(--textColor); font-size: 0.8em; } @@ -51,12 +50,14 @@ } .repos-list { - height : 100%; - overflow-y: overlay; - width : 320px; - font-size : 14px; + height: 100%; + width: 320px; + font-size: 14px; + overflow: overlay; + padding-bottom: 16px; + flex: 0 0 auto; - >.list-group { + > .list-group { margin: 0px; } @@ -74,22 +75,198 @@ } .github-preview { - height : 100%; - flex : 1; - background: var(--color2); - padding : 16px 32px; - overflow-y: overlay; + height: 100%; + flex: 1; + padding: 16px 32px; + overflow: auto; + padding-bottom: 16px; } .gh-content { - display : flex; + display: flex; flex-direction: row; - flex : 1; - overflow : hidden; + flex: 1; + overflow: hidden; } .gh-header { padding: 16px; + height: 64px; + display: grid; + align-content: center; + flex: 0 0 auto; + + .header-text { + position: initial !important; + justify-content: left !important; + } + } + + .installed-themes-page { + .style-editor-container { + height: 100%; + flex: 1; + background: var(--color2); + padding: 0px; + overflow-y: overlay; + + .list-group-item { + border-radius: 0px; + } + } + } +} + +//Styles Page +.installed-themes-page { + display: flex; + flex-direction: column; + height: 100%; + overflow: hidden; + .themeContextMenu { + background: transparent; + color: var(--keyColor); + border: 0px; + } + + .list-group-item { + &.addon { + background: rgb(86 86 86 / 20%); + } + + &.applied { + background: var(--keyColor-disabled); + pointer-events: none; + } + } + + .repo-header { + font-size: 16px; + position: sticky; + top: 0; + left: 0; + right: 0; + width: 100%; + height: 50px; + z-index: 1; + background: rgba(36, 36, 36, 0.5); + display: flex; + justify-content: center; + align-items: center; + backdrop-filter: var(--glassFilter); + overflow: hidden; + border-bottom: 1px solid rgb(0 0 0 / 18%); + border-top: 1px solid rgb(135 135 135 / 18%); + } + + .gh-header { + z-index: 5; + padding: 16px; + flex: 0 0 auto; + height: 64px; + display: grid; + align-content: center; + .header-text { + position: initial !important; + justify-content: left !important; + } + } + + .gh-content { + display: flex; + flex-direction: row; + padding: 0px; + height: 100%; + flex: 0 0 auto; + + .repos-list { + width: 320px; + overflow: overlay; + height: 90%; + font-size: 14px; + white-space: nowrap; + + > .list-group { + margin: 0px; + padding-bottom: 16px; + } + + .list-group-item { + padding: 12px 6px; + + &:hover { + filter: brightness(1.2); + } + + &:active { + filter: brightness(0.8); + } + } + } + + .style-editor-container { + height: 100%; + flex: 1; + padding: 0px; + width: 100%; + overflow: hidden; + + .stylestack-editor { + padding-bottom: 16px; + } + + .list-group-item { + border-radius: 0px; + } + } + } + + .stylestack-editor { + width: 100%; + + .btn, + .btn-group { + width: 100%; + } + + .themeLabel { + display: flex; + align-items: center; + } + + .handle { + height: 100%; + display: flex; + justify-content: center; + align-items: center; + } + + .list-group-item { + + &:hover { + cursor: grab; + } + + &:active { + cursor: grabbing; + } + } + + .removeItem { + border: 0px; + background: transparent; + height: 32px; + font-weight: bold; + color: var(--textColor); + cursor: pointer; + } + + .stylesDropdown { + > .dropdown-menu { + height: 300px; + overflow-y: overlay; + } + } } } @@ -98,16 +275,16 @@ 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; + 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); + background: rgba(0, 0, 0, 0.25); + top: var(--navigationBarHeight); } .well { @@ -121,27 +298,34 @@ .searchToggle { float: right; - >button { + > button { min-width: 120px; } } - + .categories{ + display: grid; + grid-template-columns: repeat(3, minmax(200px, 1fr)); + gap: 1rem; + } .cd-mediaitem-square.mediaitem-brick { - width: 530px !important; - + width: 100% !important; + height: 168px; + padding-block: 0.5rem; .artwork-container .artwork { - height : 168px !important; - width : 507px !important; + height: 168px !important; + width: 100% !important; z-index: 1; } - + .info-rect{ + height: max-content; + } .title { - font-weight : bold; + font-weight: bold; justify-content: left; - font-size : 18px; - margin-top : -40px; - z-index : 5; - pointer-events : none; + font-size: 18px; + margin-top: -40px; + z-index: 5; + pointer-events: none; } } } @@ -149,7 +333,7 @@ // Podcast Page .content-inner.podcasts-page { display: flex; - height : calc(100% - var(--navigationBarHeight)); + height: calc(100% - var(--navigationBarHeight)); padding: 0px; .list-flat { @@ -157,45 +341,45 @@ } .podcast-artwork { - width : 200px; + width: 200px; margin: 16px auto; height: 200px; } .podcasts-list { - height : 100%; - width : 280px; - background : rgb(200 200 200 / 10%); - overflow-y : overlay; + height: 100%; + width: 280px; + background: rgb(200 200 200 / 10%); + overflow-y: overlay; border-right: 1px solid var(--color2); - flex : none; - overflow-x : hidden; + flex: none; + overflow-x: hidden; .podcast-list-header { - border-bottom : 1px solid var(--color2); - font-size : 0.7em; - padding : 6px; - background : #ffffff17; + border-bottom: 1px solid var(--color2); + font-size: 0.7em; + padding: 6px; + background: #ffffff17; text-transform: uppercase; - font-weight : 600; - opacity : 0.5; + font-weight: 600; + opacity: 0.5; } .podcasts-search { - padding : 10px; - position : sticky; - top : 0; - left : 0; - width : 100%; + padding: 10px; + position: sticky; + top: 0; + left: 0; + width: 100%; border-bottom: 1px solid var(--color2); - z-index : 2; - background : #303030; + z-index: 2; + background: #303030; } } .episodes-list { - height : 100%; - width : 100%; + height: 100%; + width: 100%; background: rgb(200 200 200 / 6%); overflow-y: overlay; overflow-x: hidden; @@ -204,20 +388,20 @@ padding: 14px 14px 0px 14px; .podcast-show-info { - display : flex; + display: flex; justify-content: center; - flex-direction : column; + flex-direction: column; } .podcast-show-description { - margin : 32px 6px; - font-size : 0.8rem; + margin: 32px 6px; + font-size: 0.8rem; white-space: pre-wrap; - display : block; + display: block; } .podcast-artwork { - width : 120px; + width: 120px; margin: 0px auto; height: 120px; } @@ -230,14 +414,14 @@ } .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); + 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 { @@ -245,27 +429,27 @@ } .podcasts-details-header { - display : flex; + display: flex; justify-content: end; - align-items : center; - position : sticky; - top : 0; - z-index : 2; + align-items: center; + position: sticky; + top: 0; + z-index: 2; } .close-btn { - width : 50px; - height : 42px; - background-image : var(--gfx-closeBtn); + 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; + 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) @@ -273,35 +457,36 @@ } .podcast-genre { - text-align : center; - margin : 6px; - font-size : 0.8em; + text-align: center; + margin: 6px; + font-size: 0.8em; font-weight: 500; - opacity : 0.8; + opacity: 0.8; } .podcast-metainfo { text-align: center; - font-size : 0.7em; - opacity : 0.8; + font-size: 0.7em; + opacity: 0.8; } .podcast-header { text-align: center; + padding: 0 1rem; } .podcast-play-btn { - width : 50%; + width: 50%; display: block; - margin : 0 auto; + margin: 0 auto; } .podcast-description { - margin : 12px; - font-size : 0.75em; + margin: 12px; + font-size: 0.75em; white-space: pre-wrap; - display : block; - line-break : anywhere; + display: block; + line-break: anywhere; } @@ -312,59 +497,59 @@ // Podcast Page .content-inner.library-artists-page { // top: 0; - height : calc(100% - 60px - var(--navigationBarHeight)); + height: calc(100% - 60px - var(--navigationBarHeight)); padding: 0px; .inner-container { display: flex; - height : calc(100% - var(--navigationBarHeight)); + height: calc(100% - var(--navigationBarHeight)); padding: 0px; - height : 100%; + height: 100%; .list-flat { border-radius: 0px; } .podcast-artwork { - width : 200px; + width: 200px; margin: 16px auto; height: 200px; } .podcasts-list { - height : 100%; - width : 280px; - background : rgb(200 200 200 / 10%); - overflow-y : overlay; + height: 100%; + width: 280px; + background: rgb(200 200 200 / 10%); + overflow-y: overlay; border-right: 1px solid var(--color2); - flex : none; - overflow-x : hidden; + flex: none; + overflow-x: hidden; .podcast-list-header { - border-bottom : 1px solid var(--color2); - font-size : 0.7em; - padding : 6px; - background : #ffffff17; + border-bottom: 1px solid var(--color2); + font-size: 0.7em; + padding: 6px; + background: #ffffff17; text-transform: uppercase; - font-weight : 600; - opacity : 0.5; + font-weight: 600; + opacity: 0.5; } .podcasts-search { - padding : 10px; - position : sticky; - top : 0; - left : 0; - width : 100%; + padding: 10px; + position: sticky; + top: 0; + left: 0; + width: 100%; border-bottom: 1px solid var(--color2); - z-index : 2; - background : #303030; + z-index: 2; + background: #303030; } } .episodes-list { - height : calc(100% + 60px); - width : 100%; + height: calc(100% + 60px); + width: 100%; background: rgb(200 200 200 / 6%); overflow-y: overlay; overflow-x: hidden; @@ -373,20 +558,20 @@ padding: 14px 14px 0px 14px; .podcast-show-info { - display : flex; + display: flex; justify-content: center; - flex-direction : column; + flex-direction: column; } .podcast-show-description { - margin : 32px 6px; - font-size : 0.8rem; + margin: 32px 6px; + font-size: 0.8rem; white-space: pre-wrap; - display : block; + display: block; } .podcast-artwork { - width : 120px; + width: 120px; margin: 0px auto; height: 120px; } @@ -399,14 +584,14 @@ } .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); + 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 { @@ -414,27 +599,27 @@ } .podcasts-details-header { - display : flex; + display: flex; justify-content: end; - align-items : center; - position : sticky; - top : 0; - z-index : 2; + align-items: center; + position: sticky; + top: 0; + z-index: 2; } .close-btn { - width : 50px; - height : 42px; - background-image : var(--gfx-closeBtn); + 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; + 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) @@ -442,17 +627,17 @@ } .podcast-genre { - text-align : center; - margin : 6px; - font-size : 0.8em; + text-align: center; + margin: 6px; + font-size: 0.8em; font-weight: 500; - opacity : 0.8; + opacity: 0.8; } .podcast-metainfo { text-align: center; - font-size : 0.7em; - opacity : 0.8; + font-size: 0.7em; + opacity: 0.8; } .podcast-header { @@ -460,17 +645,17 @@ } .podcast-play-btn { - width : 50%; + width: 50%; display: block; - margin : 0 auto; + margin: 0 auto; } .podcast-description { - margin : 12px; - font-size : 0.75em; + margin: 12px; + font-size: 0.75em; white-space: pre-wrap; - display : block; - line-break : anywhere; + display: block; + line-break: anywhere; } @@ -481,18 +666,18 @@ @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%; + 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; + box-shadow: var(--ciderShadow-Generic); + z-index: 2; } } } @@ -501,33 +686,33 @@ @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%; + 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; + box-shadow: var(--ciderShadow-Generic); + z-index: 2; } } } /* Album / Playlist Page */ .playlist-page { - --bgColor : transparent; - padding : 0px; + --bgColor: transparent; + padding: 0px; //background: linear-gradient(180deg, var(--bgColor) 32px, var(--bgColor) 18px, transparent 60px, transparent 100%); - top : 0; - padding-top : var(--navigationBarHeight); - display : flex; + top: 0; + padding-top: var(--navigationBarHeight); + display: flex; flex-direction: column; - height : 100%; - overflow : hidden; + height: 100%; + overflow: hidden; .cd-mediaitem-list-item { &:hover { @@ -543,51 +728,51 @@ .editTracksBtn { position: absolute; - top : 20px; - right : 20px; - z-index : 1; + top: 20px; + right: 20px; + z-index: 1; - >span { + > span { display: flex; - gap : 8px; + gap: 8px; } } .mediaContainer { transition: width 0.5s ease-in-out, height 0.5s ease-in-out; - width : 260px; - height : 260px; + width: 260px; + height: 260px; } .playlist-body { - padding : 32px; + padding: 32px; // margin-top: -75px; - overflow-y : overlay; - height : 100%; - padding : 0px; + overflow-y: overlay; + height: 100%; + padding: 0px; background-color: var(--color3); &.scrollbody { .tabs { - display : flex; + display: flex; flex-flow: column; - height : 100%; + height: 100%; .nav-link { text-transform: capitalize; } .tab-content { - height : 100%; + height: 100%; overflow: hidden; - margin : 0px; + margin: 0px; .tab-pane { - height : 100%; - overflow-y : overlay; - overflow-x : hidden; - padding : var(--contentInnerPadding); - padding-inline : 40px; + height: 100%; + overflow-y: overlay; + overflow-x: hidden; + padding: var(--contentInnerPadding); + padding-inline: 40px; -webkit-mask-image: linear-gradient(180deg, transparent, white 20px); .well { @@ -597,175 +782,263 @@ } } } + + .search-input-container { + height: 2.5rem; + margin: 1rem; + margin-top: 0; + scroll-margin-top: 1rem; + + .search-input { + width: 100%; + height: 100%; + } + } } .floating-header { - position : sticky; - top : 0; - left : 0; - border-bottom : 1px solid rgba(200, 200, 200, 0.05); - z-index : 6; - padding : 0px 1em; + 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); - display : none; + background: rgba(0, 0, 0, 0.25); + top: var(--navigationBarHeight); + transition: opacity 0.1s var(--appleEase); + display: none; } .playlist-display { - padding : var(--contentInnerPadding); + padding: var(--contentInnerPadding); min-height: 300px; - position : relative; + position: relative; box-shadow: 0px 4px 6px 3px rgb(0 0 0 / 10%); transition: min-height 0.5s ease-in-out; .artworkContainer { - position : absolute; - top : 0; - left : 0; - bottom : 0; - right : 0; - margin : 0; - margin-top : calc(var(--navigationBarHeight) * -1); - margin-bottom : -10px; - padding : 0; + 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); + opacity: .7; + animation: playlistArtworkFadeIn 1s var(--appleEase); - .artworkMaterial>img { - filter : brightness(100%) blur(80px) saturate(100%) contrast(1); + .artworkMaterial img { + filter: brightness(100%) blur(80px) saturate(100%) contrast(1); object-position: center; - object-fit : cover; - width : 100%; - height : 100%; - transform : unset; + 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; + 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%; + align-items: center; + width: 100%; + height: 100%; - >.row { + .playlist-hero { + width: 100%; + transform: translateX(+25%); + position: absolute; + z-index: -1; + top: 0; + left: 0; + right: 0; + bottom: 0; + + .mediaitem-artwork { + -webkit-mask-image: -webkit-radial-gradient(center, circle cover, rgba(0, 0, 0, 1) 50%, rgba(0, 0, 0, 0) 75%); + border-radius: 0px; + } + + .hero-tint { + position: absolute; + top: 0; + opacity: 0.6; + width: 100%; + height: 100%; + } + } + + > .row { width: calc(100% - 32px); } .playlist-info { - flex-shrink : unset; - display : flex; - flex-flow : column; + flex-shrink: unset; + display: flex; + flex-flow: column; justify-content: flex-end; .playlist-name { - font-weight : 700; - font-size : 1.6rem; + font-weight: 700; + font-size: 1.6rem; //margin-bottom: 6px; - margin-right : 6px; - margin-bottom : 6px; - flex-shrink : unset; + margin-right: 6px; + margin-bottom: 6px; + flex-shrink: unset; + } + + .search-input::placeholder { + color: var(--heroplaceholdercolor) } .nameEdit { font-weight: 700; - font-size : 1.6rem; + font-size: 1.6rem; flex-shrink: unset; - background : transparent; - border : 0px; - color : inherit; + background: transparent; + border: 0px; + color: inherit; font-family: inherit; } .descriptionEdit { - font-size : 14px; + font-size: 14px; flex-shrink: unset; - background : transparent; - border : 0px; - color : inherit; + background: transparent; + border: 0px; + color: inherit; font-family: inherit; - width : 60vw; + width: 60vw; + } + + .descriptionEdit { + font-size: 14px; + flex-shrink: unset; + background: transparent; + border: 0px; + color: inherit; + font-family: inherit; + width: 60vw; } .playlist-artist { - font-size : 20px; + font-size: 20px; margin-bottom: 6px; - margin-right : 6px; - flex-shrink : unset; + margin-right: 6px; + flex-shrink: unset; } .playlist-desc { - transition : height .2s ease-in-out, opacity .2s ease-in-out; - box-sizing : border-box; - font-size : 14px; - flex-shrink : unset; + transition: height .2s ease-in-out, opacity .2s ease-in-out; + box-sizing: border-box; + font-size: 14px; + flex-shrink: unset; margin-right: 5px; - max-height : 100px; - position : relative; - height : 4vh; + max-height: 100px; + position: relative; + height: 4vh; .content { - height : 4vh; + height: 4vh; -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); + 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; + 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; + font-size: 14px; + position: relative; .more-btn { - appearance : none; - position : absolute; - right : 0; - bottom : 0; - padding : 0 5px; - font-size : 14px; - color : var(--keyColor); + 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; + 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; + } + } + + .search-btn { + display: flex; + width: 32px; + align-items: center; + margin-right: 1rem; + background: rgba(100, 100, 100, 0.5); + border: none; + cursor: pointer; + border-radius: 100vmax; + box-shadow: var(--ciderShadow-Generic); + + > ._svg-icon { + width: 18px; + height: 18px; + margin: auto; + } + } + + .search-btn.active { + animation: enlarge 0.5s ease-in-out; + } + + .search-btn:hover { + filter: brightness(125%); + } + + @keyframes enlarge { + 0% { + transform: scale(1); + } + 50% { + transform: scale(1.2); + } + 100% { + transform: scale(1); } } } @@ -775,21 +1048,21 @@ } .friends-info { - display : flex; + display: flex; flex-flow: column; .badge-container { - display : flex; + display: flex; flex-flow: wrap; .socialBadge { - width : 40px; - height : 40px; + width: 40px; + height: 40px; border-radius: 100%; - overflow : hidden; - box-shadow : var(--mediaItemShadow-ShadowSubtle); - transition : transform .2s var(--appleEase); - margin : 6px; + overflow: hidden; + box-shadow: var(--mediaItemShadow-ShadowSubtle); + transition: transform .2s var(--appleEase); + margin: 6px; &:hover { transform: scale(1.2); @@ -799,38 +1072,38 @@ .friends-name { text-align: center; - font-size : 0.9em; - margin : 8px; + font-size: 0.9em; + margin: 8px; } } .playlist-time { - font-size : 0.9em; - margin : 6px; - opacity : 0.7; + font-size: 0.9em; + margin: 6px; + opacity: 0.7; transition: height .2s ease-in-out, opacity .2s ease-in-out; - height : 0.9em; + height: 0.9em; } &.inline-playlist { - overflow : hidden; - width : 100%; - height : 100%; - background : rgba(0, 0, 0, 0.5); - display : flex; + 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); + 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; + opacity: 1; + top: 0px; + z-index: 6; + padding: 1em; backdrop-filter: unset; - background : black; + background: black; h3 { display: none; @@ -838,27 +1111,27 @@ } .playlist-inner { - background : black; - width : 80%; - height : 100%; - overflow : overlay; - box-shadow : var(--ciderShadow-Generic); + 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; + position: sticky; + top: 16px; + left: 16px; margin-left: 16px; - z-index : 7; + z-index: 7; } } } .pilldim { .nav-pills { - width : max-content; - margin : 0 auto; + width: max-content; + margin: 0 auto; margin-top: 16px; } } @@ -868,24 +1141,25 @@ transition: min-height 0.5s ease-in-out; min-height: 200px; - .playlistInfo {} + .playlistInfo { + } .mediaContainer { transition: width 0.5s ease-in-out, height 0.5s ease-in-out; - width : 128px !important; - height : 128px !important; + width: 128px !important; + height: 128px !important; } .playlist-time { transition: height .2s ease-in-out, opacity .2s ease-in-out; - height : 0px; - opacity : 0; + height: 0px; + opacity: 0; } .playlist-desc { transition: height .2s ease-in-out, opacity .2s ease-in-out; - height : 0px !important; - opacity : 0; + height: 0px !important; + opacity: 0; } } } @@ -906,20 +1180,20 @@ padding-bottom: 128px; .top-fab { - height : 52px; - width : 52px; - position : fixed; - bottom : 32px; - right : 32px; + 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); + background: rgb(60 60 60); + border: 0px; + appearance: none; + box-shadow: var(--ciderShadow-Generic); - >svg { - height : 50%; - color : #eee; + > svg { + height: 50%; + color: #eee; pointer-events: none; } @@ -941,120 +1215,163 @@ .artist-page { padding: 0px; - top : 0; + 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; + 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); + 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; + bottom: 22px !important; + right: 28px; + } + + &.animated .artist-header { + min-height: 80vh; + } + + &.animated .artist-header-compact { + min-height: 40vh; } .artist-header { //background: linear-gradient(45deg, var(--keyColor), #0e0e0e); - color : white; - display : flex; - align-items : center; + color: white; + display: flex; + align-items: center; justify-content: space-between; - min-height : 400px; - position : relative; - pointer-events : none; + min-height: 400px; + position: relative; + pointer-events: none; .header-content { - z-index : 1; + z-index: 1; // margin-top: -16px; } + .artist-hero { + height: 100%; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + + .mediaitem-artwork { + border-radius: 0px; + } + } + .artworkContainer { - position : absolute; - top : 0; - left : 0; - bottom : 0; - right : 0; - margin : 0; - padding : 0; + 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); + opacity: .7; + animation: playlistArtworkFadeIn 1s var(--appleEase); - .artworkMaterial>img { - filter : brightness(100%) blur(80px) saturate(100%) contrast(1); + .artworkMaterial img { + filter: brightness(100%) blur(80px) saturate(100%) contrast(1); object-position: center; - object-fit : cover; - width : 100%; - height : 100%; - transform : unset; + object-fit: cover; + width: 100%; + height: 100%; + transform: unset; } } .more-btn-round { position: absolute; - bottom : 82px; - right : 28px; + 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%); + .social-btn { + border-radius: 100%; + background: transparent; + height: 17px; + border: 0px; + cursor: pointer; + z-index: 69; + display: flex; + justify-content: center; + align-items: center; + float: right; + } + @media only screen and (min-width: 1133px) and (max-width: 1277px) { + .about-page { + .social-btn { + display: none !important; + } } } - .row .col.flex-center { + .animated { + width: 100%; + height: 100%; + align-self: center; + position: absolute; + overflow: hidden; + box-shadow: rgb(0 0 0 / 50%) 0 0 0 1000000px inset; + z-index: 1; + + video { + overflow: hidden; + height: 100%; + width: 100%; + min-height: 56.25vw; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + object-fit: cover; + } + } + + .row .col.cider-flex-center { z-index: 4; } } .artist-image { - width : 200px; - height : 200px; - margin : 32px; + 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; + 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; + cursor: pointer; + appearance: none; + border: 0px; + padding: 0px; &:hover { opacity: 1; @@ -1064,32 +1381,32 @@ background: var(--selected-click); } - >svg { + > svg { width: 70%; } } } .artist-play { - width : 32px; - height : 32px; - background : rgba(100, 100, 100, 0.5); - box-shadow : var(--ciderShadow-Generic); + 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; + 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); + filter: brightness(75%); + transform: scale(0.98); transition: transform 0s var(--appleEase), box-shadow 0.2s var(--appleEase); } } @@ -1098,16 +1415,16 @@ .artist-play { transform: translateY(3px); - margin : 14px; + margin: 14px; } &.artist-animation-on { - width : 100%; - flex : unset; + width: 100%; + flex: unset; margin-left: 0.5em; - color : whitesmoke; - position : absolute; - bottom : 0; + color: whitesmoke; + position: absolute; + bottom: 0; .artist-play { display: block; @@ -1117,45 +1434,45 @@ .artist-body { padding: 0px var(--contentInnerPadding) 0px var(--contentInnerPadding); - margin : -64px 20px; + margin: -64px 20px; .arow { - display : flex; + display: flex; overflow: hidden; - padding : 16px 32px; + padding: 16px 32px; - >.latestRelease { + > .latestRelease { width: 250px; } - >.topSongs { + > .topSongs { width: calc(100% - 250px); } - &.arowb>.topSongs { + &.arowb > .topSongs { width: 100%; } } } - &.animated>.artist-body { - padding : 0px var(--contentInnerPadding) 0px var(--contentInnerPadding); + &.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; + 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; + appearance: none; + color: var(--keyColor); + padding: 8px 12px; + cursor: pointer; + margin-top: 12px; + float: right; } .showmoreless:hover { @@ -1165,133 +1482,15 @@ /* Artist Page End */ - -.installed-themes-page { - - .themeContextMenu { - background: transparent; - color : var(--keyColor); - border : 0px; - } - - .list-group-item { - &.addon { - background: rgb(86 86 86 / 20%); - } - - &.applied { - background : var(--keyColor-disabled); - pointer-events: none; - } - } - - .repo-header { - font-size : 16px; - position : sticky; - top : 0; - left : 0; - right : 0; - width : 100%; - height : 50px; - z-index : 1; - background : rgba(36, 36, 36, 0.5); - display : flex; - justify-content: center; - align-items : center; - backdrop-filter: var(--glassFilter); - overflow : hidden; - border-bottom : 1px solid rgb(0 0 0 / 18%); - border-top : 1px solid rgb(135 135 135 / 18%); - } - - .style-editor-container { - height : 100%; - flex : 1; - background: var(--color2); - padding : 0px; - overflow-y: overlay; - - .list-group-item { - border-radius: 0px; - } - } - - - .stylestack-editor { - width: 100%; - - .btn, - .btn-group { - width: 100%; - } - - .themeLabel { - display : flex; - align-items: center; - } - - .handle { - height : 100%; - display : flex; - justify-content: center; - align-items : center; - } - - .list-group-item { - - &:hover { - cursor: grab; - } - - &:active { - cursor: grabbing; - } - } - - .removeItem { - border : 0px; - background : transparent; - height : 32px; - font-weight: bold; - color : var(--textColor); - cursor : pointer; - } - - .stylesDropdown { - >.dropdown-menu { - height : 300px; - overflow-y: overlay; - } - } - } -} - // Settings page .settings-page { padding: 0px; .nav { - width : 90%; + width: 90%; margin: 16px auto 0px; } - .md-option-header { - padding : 0px 26px; - border-bottom: unset; - border-top : unset; - font-weight : 600; - background : rgb(255 255 255 / 0%); - font-size : 2em; - } - - .settings-option-body-webview { - height: 100%; - width : 100%; - } - - .settings-option-body { - margin: 16px; - } } // AudioLabs page @@ -1299,48 +1498,48 @@ padding: 0px; .md-option-header { - padding : 1.25em 1.25em; + padding: 1.25em 1.25em; border-bottom: unset; - border-top : unset; - font-weight : 600; - font-size : 1.0em; - background : rgb(255 255 255 / 3%); + border-top: unset; + font-weight: 600; + font-size: 1.0em; + background: rgb(255 255 255 / 3%); } - .carousel-item>img { + .carousel-item > img { object-fit: cover; - width : 100%; + width: 100%; } .spprofile-line { - height : 300px; - width : 100%; + height: 300px; + width: 100%; max-width: 1024px; - padding : 16px; - margin : 0 auto; + padding: 16px; + margin: 0 auto; .spprofile-viewport { - height : 100%; - position : relative; + height: 100%; + position: relative; border-radius: var(--mediaItemRadius); - overflow : hidden; - box-shadow : var(--mediaItemShadow-Shadow); - background : black; + overflow: hidden; + box-shadow: var(--mediaItemShadow-Shadow); + background: black; .spprev, .nextprev { - position : absolute; - height : 100%; - width : 64px; - top : 0; + position: absolute; + height: 100%; + width: 64px; + top: 0; background: rgb(0 0 0 / 20%); - z-index : 1; - border : 0px; + z-index: 1; + border: 0px; transition: background 0.2s var(--appleEase), transform 0.2s var(--appleEase); &:hover { background: var(--selected); - transform : scale(1.1); + transform: scale(1.1); } &:active { @@ -1349,17 +1548,17 @@ } &:before { - content : ''; - position : absolute; - top : 0; - left : 0; - width : 100%; - height : 100%; - background : #eee; - opacity : 1; + 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; + -webkit-mask-repeat: no-repeat; + -webkit-mask-size: 1em; } } @@ -1382,25 +1581,25 @@ } .spslide { - position : absolute; - width : 100%; - height : 100%; - overflow : hidden; + position: absolute; + width: 100%; + height: 100%; + overflow: hidden; background: black; - >img { - WIDTH : 100%; - height : 100%; + > img { + WIDTH: 100%; + height: 100%; object-fit: cover; } .sptitle { - position : absolute; - bottom : 0px; - left : 0; - width : 100%; - text-align : center; - font-size : 18px; + position: absolute; + bottom: 0px; + left: 0; + width: 100%; + text-align: center; + font-size: 18px; text-shadow: 0px 2px 4px #00000033; } } @@ -1408,19 +1607,19 @@ .spfade-enter-active, .spfade-leave-active { --transitionTime: 0.2s; - transition : opacity var(--transitionTime) var(--appleEase), transform var(--transitionTime) var(--appleEase); - will-change : opacity, transform; + 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); + 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); + opacity: 1; + transform: scale(1) translate3d(0, 0, 0); will-change: opacity, transform; } } @@ -1450,79 +1649,79 @@ .md-btn-replay { background-image: linear-gradient(-45deg, #2e2173, #925042); - animation : gradient-animation 5s ease-in-out infinite; - background-size : 400% 400%; - border : 0px; - box-shadow : inset 0px 0px 0px 1px rgba(200, 200, 200, 0.2); - text-transform : uppercase; - font-weight : bold; + animation: gradient-animation 5s ease-in-out infinite; + background-size: 400% 400%; + 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; + font-size: 1em; + padding: 16px; background-image: linear-gradient(-45deg, #2e2173, #925042); - animation : gradient-animation 5s ease-in-out infinite; - background-size : 400% 400%; - 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; + animation: gradient-animation 5s ease-in-out infinite; + background-size: 400% 400%; + 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; + 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; + width: 420px; min-width: 0px; max-width: 420px; } .well.artistfeed-well { - margin-top : 0px; - height : 392px; + margin-top: 0px; + height: 392px; align-content: flex-start; } .hint-text { font-size: 0.9rem; - color : rgb(200 200 200 / 70%); + color: rgb(200 200 200 / 70%); } .user-icon { border-radius: 100%; - width : 128px; - height : 128px; - overflow : hidden; - box-shadow : var(--mediaItemShadow-Shadow); - margin : 16px; + width: 128px; + height: 128px; + overflow: hidden; + box-shadow: var(--mediaItemShadow-Shadow); + margin: 16px; } .well.profile-well { - flex-direction : column; + flex-direction: column; justify-content: center; - align-items : center; + align-items: center; .name { - margin : 4px; + margin: 4px; font-weight: 500; } .handle { - margin : 4px; - opacity : 0.7; + margin: 4px; + opacity: 0.7; font-weight: 500; } } @@ -1533,31 +1732,31 @@ --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); + 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; + align-self: center; &:hover { - transform : translateY(-6px); + transform: translateY(-6px); transition-delay: 0s; } .artwork-container { height: 200px; - width : 200px; + width: 200px; } } .replay-playlist-container { .cd-mediaitem-square { height: 230px; - width : 230px; + width: 230px; .info-rect { display: none; @@ -1567,12 +1766,12 @@ .replay-video { max-height: 300px; - max-width : 800px; - margin : 0 auto; + max-width: 800px; + margin: 0 auto; .mediaitem-artwork { max-height: 300px; - max-width : 800px; + max-width: 800px; } .mediaitem-artwork .animatedartwork-view-box .animated video { @@ -1583,28 +1782,28 @@ .top-genres-container { .genre-name { - font-size : 0.9em; - margin : 6px 0px; + font-size: 0.9em; + margin: 6px 0px; font-weight: 500; } .genre-count { - width : 100%; - height : 32px; - background : #ffffff14; + width: 100%; + height: 32px; + background: #ffffff14; border-radius: 10px; - overflow : hidden; + overflow: hidden; .genre-count-bar { - height : 100%; - width : 0%; - background : var(--keyColor); - display : flex; + 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; + align-items: center; + min-width: 32px; + font-size: 0.9em; + font-weight: 500; } } } @@ -1614,11 +1813,11 @@ animation: replayFadeIn .5s var(--appleEase); } - transition : transform .2s var(--appleEase); + transition: transform .2s var(--appleEase); transition-delay: .1s; &:hover { - transform : scale(1.1); + transform: scale(1.1); transition-delay: 0s; } } @@ -1627,78 +1826,78 @@ 0% { //border-radius: 100%; transform: translateY(10px) scale(0.9); - opacity : 0; + opacity: 0; } 100% { //border-radius: var(--mediaItemRadius); transform: scale(1); - opacity : 1; + opacity: 1; } } .replay-viewport { background-image: linear-gradient(-45deg, #2e2173, #925042); - animation : gradient-animation 5s ease-in-out infinite; - background-size : 400% 400%; - padding : 16px 40px; - border-radius : 10px; - box-shadow : var(--mediaItemShadow), var(--mediaItemShadow-Shadow); - color : rgb(238 238 238 / 86%); + animation: gradient-animation 5s ease-in-out infinite; + background-size: 400% 400%; + 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-align: center; + font-size: 3em; text-shadow: var(--replayTextShadow); } } .replay-card { background: transparent; - border : 0px; + border: 0px; } } .content-inner.oobe { - position : absolute; - overflow : hidden; - top : 0; - left : 0; - bottom : 0; - right : 0; - display : grid; + position: absolute; + overflow: hidden; + top: 0; + left: 0; + bottom: 0; + right: 0; + display: grid; place-items: center; - width : 100%; - background : #1e1e1e; + width: 100%; + background: #1e1e1e; .oobe-view { - display : flex; - flex-direction : column; + display: flex; + flex-direction: column; justify-content: center; - align-items : center; - gap : 32px; - max-width : 1280px; - max-height : 720px; - align-self : center; - justify-self : center; - height : 100%; - width : 100%; + align-items: center; + gap: 32px; + max-width: 1280px; + max-height: 720px; + align-self: center; + justify-self: center; + height: 100%; + width: 100%; .oobe-header { - font-size : 3em; + font-size: 3em; text-shadow: var(--replayTextShadow); font-weight: 600; } .oobe-body { - flex : 1; - width : 100%; - background : #ffffff0d; + flex: 1; + width: 100%; + background: #ffffff0d; border-radius: 20px; - padding : 3em; - overflow-y : scroll; - overflow-x : hidden; + padding: 3em; + overflow-y: scroll; + overflow-x: hidden; @media screen and (max-width: 1161px) { font-size: 13px; @@ -1710,7 +1909,7 @@ .blurb { white-space: pre-wrap; - margin : 16px; + margin: 16px; line-height: 1.5em; } @@ -1719,34 +1918,34 @@ .stylePicker { border-radius: 10px; - overflow : hidden; - cursor : pointer; - transition : 0.25s all; - box-shadow : 0px 2px 6px rgba(0, 0, 0, 0.25); - width : 450px; - margin : 0 auto; + overflow: hidden; + cursor: pointer; + transition: 0.25s all; + box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.25); + width: 450px; + margin: 0 auto; .visualPreview { pointer-events: none; - transition : .25s all; - width : 100%; + transition: .25s all; + width: 100%; } .card-body { - padding : 0; - display : flex; + padding: 0; + display: flex; justify-content: center; - align-items : center; + align-items: center; } .card-footer { - font-size : 1.25em; + font-size: 1.25em; font-weight: 500; - position : absolute; - bottom : 0; - left : 0; - width : 100%; - border : 0px; + position: absolute; + bottom: 0; + left: 0; + width: 100%; + border: 0px; text-shadow: 0px 2px 6px rgba(0, 0, 0, 0.25); font-weight: bold; } @@ -1756,10 +1955,9 @@ } - &:hover { - transform : scale(1.10) translateZ(-1px) translateY(10px); - z-index : 1; + transform: scale(1.10) translateZ(-1px) translateY(10px); + z-index: 1; box-shadow: 0px 12px 16px rgb(0 0 0 / 25%); } @@ -1771,15 +1969,15 @@ } .oobe-footer { - display : flex; - flex-direction : row; + display: flex; + flex-direction: row; justify-content: center; - align-items : center; - padding : 16px; + align-items: center; + padding: 16px; .md-btn { - font-size : 18px; - min-width : 128px; + font-size: 18px; + min-width: 128px; text-align: center; } } @@ -1788,41 +1986,42 @@ .oobe-titlebar { - position : absolute; - top : 0; - left : 0; - height : 46px; - width : 100%; - align-items : center; - justify-content : right; - display : flex; + position: absolute; + top: 0; + left: 0; + height: 46px; + width: 100%; + align-items: center; + justify-content: right; + display: flex; -webkit-app-region: drag; .button-group { -webkit-app-region: no-drag; - display : flex; - flex-direction : row; - width : 100px; - height : 100%; - justify-content : center; - align-items : center; - gap : 16px; + display: flex; + flex-direction: row; + width: 100px; + height: 100%; + justify-content: center; + align-items: center; + gap: 16px; - >button { - height : 32px; - width : 32px; - font-size : 16px; - border-radius : 0px; - border : 0; - appearance : none; - position : relative; - display : flex; + > button { + height: 32px; + width: 32px; + font-size: 16px; + border-radius: 0px; + border: 0; + appearance: none; + position: relative; + display: flex; justify-content: center; - align-items : center; - border-radius : 100%; + align-items: center; + border-radius: 100%; &.close { background-color: #fc3c44aa; + &:hover { background-color: #fc3c44; } @@ -1830,6 +2029,7 @@ &.min { background-color: rgb(200 200 200 / 5%); + &:hover { background-color: rgb(200 200 200 / 10%); } @@ -1837,14 +2037,14 @@ &.close::before { font-family: "codicon"; - content : ""; - color : white; + content: ""; + color: white; } &.min::before { font-family: "codicon"; - content : ""; - color : white; + content: ""; + color: white; } } } @@ -1859,24 +2059,235 @@ } .header-desc { - font-size : 1em; + font-size: 1em; font-weight: 400; } .artworkContainer { height: 300px; - width : 100%; + width: 100%; img { - height : 100%; - width : 100%; - overflow : hidden; + height: 100%; + width: 100%; + overflow: hidden; object-fit: cover; - filter : unset; + filter: unset; &:last-child { transform: unset; } } } +} + +.settings-panel { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgb(0 0 0 / 0); + display: flex; + justify-content: center; + align-items: center; + z-index: 16; + + .settings-window { + background: var(--baseColorMix); + max-width: 90%; + max-height: 90%; + width: 100%; + height: 100%; + border-radius: 10px; + box-shadow: var(--ciderShadow-Generic); + overflow: hidden; + display: flex; + align-items: center; + justify-content: center; + position: relative; + flex: 1; + backdrop-filter: var(--glassFilterHeavy); + transition: width 0.25s ease-in-out, height 0.25s ease-in-out, max-width 0.25s ease-in-out, max-height 0.25s ease-in-out; + + .header-text { + position: absolute; + top: 0; + left: 0; + right: 0; + height: 48px; + display: flex; + align-items: center; + justify-content: center; + font-weight: 600; + opacity: 0.9; + } + + .nav-pills { + gap: 6px; + + } + + .nav-pills .nav-link { + display: flex; + gap: 10px; + align-items: center; + height: 35px; + + :nth-child(2) { + white-space: nowrap; + } + } + + + .md-option-header { + padding: 0px 26px; + border-bottom: unset; + border-top: unset; + font-weight: 600; + background: rgb(255 255 255 / 0%); + font-size: 2em; + } + + .settings-option-body-webview { + height: 100%; + width: 100%; + } + + .settings-option-body { + margin: 16px; + } + + &.maxed { + width: 100%; + height: 100%; + max-height: 100%; + max-width: 100%; + border-radius: 0px; + box-shadow: unset; + } + + .close-btn { + width: 36px; + height: 36px; + background-position: center; + background-repeat: no-repeat; + -webkit-app-region: no-drag; + appearance: none; + border: 0; + background-color: transparent; + position: absolute; + top: 10px; + right: 10px; + border-radius: 50px; + display: grid; + align-content: center; + z-index: 9; + + &:before { + content: ""; + font-family: "codicon"; + color: var(--textColor); + font-size: 20px; + } + + &:hover { + background-color: rgb(196, 43, 28) + } + + &.back-btn { + left: 10px; + right: unset; + } + + &.minmax-btn { + right: 52px; + + &:before { + content: ""; + } + + &.min { + &:before { + content: ""; + } + } + + &:hover { + background-color: var(--selected); + } + } + } + + .tabs { + height: 100%; + width: 100%; + margin: 0; + padding: 0; + + > .col-auto { + width: 230px; + overflow-x: hidden; + overflow-y: overlay; + transition: width 0.25s ease-in-out; + } + + .tab-content { + margin: 0 !important; + } + } + + .tab-content { + overflow-y: overlay; + height: 100%; + background-color: var(--panelColor2); + padding:0px; + padding-top: 48px; + border-left: 1px solid var(--borderColor); + } + + .github-themes-page, .installed-themes-page { + .header-text { + font-size: 1.25em; + } + } + + .tab-pane { + height:100%; + } + + .settings-tab-content { + height:100%; + } + + &.no-sidebar { + .gh-header { + >.row { + &:last-child { + padding-right: 90px; + } + } + } + .tab-content { + padding-top:0px; + } + + .tabs { + .nav-pills .nav-link { + width: 50px; + :nth-child(2) { + // font-size: 0px; + opacity:0; + } + } + >.col-auto { + width: 80px; + } + } + } + } +} + +#hid___BV_tab_button__ { + display: none; } \ No newline at end of file diff --git a/src/renderer/lib/quasar/quasar.min.css b/src/renderer/lib/quasar/quasar.min.css new file mode 100644 index 00000000..60acb04b --- /dev/null +++ b/src/renderer/lib/quasar/quasar.min.css @@ -0,0 +1,14733 @@ +*, +:after, +:before { + box-sizing : inherit; + -webkit-tap-highlight-color: transparent; + -moz-tap-highlight-color : transparent +} + +#q-app, +body, +html { + width : 100%; + direction: ltr +} + +body.platform-ios.within-iframe, +body.platform-ios.within-iframe #q-app { + width : 100px; + min-width: 100% +} + +body, +html { + margin : 0; + box-sizing: border-box +} + +article, +aside, +details, +figcaption, +figure, +footer, +header, +main, +menu, +nav, +section, +summary { + display: block +} + +abbr[title] { + border-bottom : none; + text-decoration : underline; + -webkit-text-decoration: underline dotted; + text-decoration : underline dotted +} + +img { + border-style: none +} + +svg:not(:root) { + overflow: hidden +} + +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size : 1em +} + +hr { + box-sizing: content-box; + height : 0; + overflow : visible +} + +fieldset { + padding: 0.35em 0.75em 0.625em +} + +legend { + box-sizing : border-box; + color : inherit; + display : table; + max-width : 100%; + padding : 0; + white-space: normal +} + +progress { + vertical-align: baseline +} + +textarea { + overflow: auto +} + +input[type=search]::-webkit-search-cancel-button, +input[type=search]::-webkit-search-decoration { + -webkit-appearance: none +} + +.q-icon { + line-height : 1; + width : 1em; + height : 1em; + flex-shrink : 0; + letter-spacing: normal; + text-transform: none; + white-space : nowrap; + word-wrap : normal; + direction : ltr; + text-align : center; + position : relative; + box-sizing : content-box; + fill : currentColor +} + +.q-icon:after, +.q-icon:before { + width : 100%; + height : 100%; + display : flex !important; + align-items : center; + justify-content: center +} + +.q-icon>img, +.q-icon>svg { + width : 100%; + height: 100% +} + +.material-icons, +.material-icons-outlined, +.material-icons-round, +.material-icons-sharp, +.material-symbols-outlined, +.material-symbols-rounded, +.material-symbols-sharp, +.q-icon { + -webkit-user-select: none; + -moz-user-select : none; + -ms-user-select : none; + user-select : none; + cursor : inherit; + font-size : inherit; + display : inline-flex; + align-items : center; + justify-content : center; + vertical-align : middle +} + +.q-panel, +.q-panel>div { + height: 100%; + width : 100% +} + +.q-panel-parent { + overflow: hidden; + position: relative +} + +.q-loading-bar { + position : fixed; + z-index : 9998; + transition: transform 0.5s cubic-bezier(0, 0, 0.2, 1), opacity 0.5s; + background: #f44336 +} + +.q-loading-bar--top { + left : 0; + right: 0; + top : 0; + width: 100% +} + +.q-loading-bar--bottom { + left : 0; + right : 0; + bottom: 0; + width : 100% +} + +.q-loading-bar--right { + top : 0; + bottom: 0; + right : 0; + height: 100% +} + +.q-loading-bar--left { + top : 0; + bottom: 0; + left : 0; + height: 100% +} + +.q-avatar { + position : relative; + vertical-align: middle; + display : inline-block; + border-radius : 50%; + font-size : 48px; + height : 1em; + width : 1em +} + +.q-avatar__content { + font-size : 0.5em; + line-height: 0.5em +} + +.q-avatar__content, +.q-avatar img:not(.q-icon) { + border-radius: inherit; + height : inherit; + width : inherit +} + +.q-avatar--square { + border-radius: 0 +} + +.q-badge { + background-color: #1976d2; + background-color: var(--q-color-primary); + color : #fff; + padding : 2px 6px; + border-radius : 4px; + font-size : 12px; + min-height : 12px; + line-height : 12px; + font-weight : 400; + vertical-align : baseline +} + +.q-badge--single-line { + white-space: nowrap +} + +.q-badge--multi-line { + word-break: break-all; + word-wrap : break-word +} + +.q-badge--floating { + position: absolute; + top : -4px; + right : -3px; + cursor : inherit +} + +.q-badge--transparent { + opacity: 0.8 +} + +.q-badge--outline { + background-color: transparent; + border : 1px solid currentColor +} + +.q-badge--rounded { + border-radius: 1em +} + +.q-banner { + min-height: 54px; + padding : 8px 16px; + background: #fff +} + +.q-banner--top-padding { + padding-top: 14px +} + +.q-banner__avatar { + min-width: 1px !important +} + +.q-banner__avatar>.q-avatar { + font-size: 46px +} + +.q-banner__avatar>.q-icon { + font-size: 40px +} + +.q-banner__actions.col-auto, +.q-banner__avatar:not(:empty)+.q-banner__content { + padding-left: 16px +} + +.q-banner__actions.col-all .q-btn-item { + margin: 4px 0 0 4px +} + +.q-banner--dense { + min-height: 32px; + padding : 8px +} + +.q-banner--dense.q-banner--top-padding { + padding-top: 12px +} + +.q-banner--dense .q-banner__avatar>.q-avatar, +.q-banner--dense .q-banner__avatar>.q-icon { + font-size: 28px +} + +.q-banner--dense .q-banner__actions.col-auto, +.q-banner--dense .q-banner__avatar:not(:empty)+.q-banner__content { + padding-left: 8px +} + +.q-bar { + background: rgba(0, 0, 0, 0.2) +} + +.q-bar>.q-icon { + margin-left: 2px +} + +.q-bar>div, +.q-bar>div+.q-icon { + margin-left: 8px +} + +.q-bar>.q-btn { + margin-left: 2px +} + +.q-bar>.q-btn:first-child, +.q-bar>.q-icon:first-child, +.q-bar>div:first-child { + margin-left: 0 +} + +.q-bar--standard { + padding : 0 12px; + height : 32px; + font-size: 18px +} + +.q-bar--standard>div { + font-size: 16px +} + +.q-bar--standard .q-btn { + font-size: 11px +} + +.q-bar--dense { + padding : 0 8px; + height : 24px; + font-size: 14px +} + +.q-bar--dense .q-btn { + font-size: 8px +} + +.q-bar--dark { + background: hsla(0, 0%, 100%, 0.15) +} + +.q-breadcrumbs__el { + color: inherit +} + +.q-breadcrumbs__el-icon { + font-size: 125% +} + +.q-breadcrumbs__el-icon--with-label { + margin-right: 8px +} + +[dir=rtl] .q-breadcrumbs__separator .q-icon { + transform: scaleX(-1) +} + +.q-btn { + display : inline-flex; + flex-direction : column; + align-items : stretch; + position : relative; + outline : 0; + border : 0; + vertical-align : middle; + padding : 0; + font-size : 14px; + line-height : 1.715em; + text-decoration: none; + color : inherit; + background : transparent; + font-weight : 500; + text-transform : uppercase; + text-align : center; + width : auto; + height : auto +} + +.q-btn .q-icon, +.q-btn .q-spinner { + font-size: 1.715em +} + +.q-btn.disabled { + opacity: 0.7 !important +} + +.q-btn__wrapper { + padding : 4px 16px; + min-height : 2.572em; + border-radius: inherit; + width : 100%; + height : 100% +} + +.q-btn__wrapper:before { + content : ""; + display : block; + position : absolute; + left : 0; + right : 0; + top : 0; + bottom : 0; + border-radius: inherit; + box-shadow : 0 1px 5px rgba(0, 0, 0, 0.2), 0 2px 2px rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12) +} + +.q-btn--actionable { + cursor: pointer +} + +.q-btn--actionable.q-btn--standard .q-btn__wrapper:before { + transition: box-shadow 0.3s cubic-bezier(0.25, 0.8, 0.5, 1) +} + +.q-btn--actionable.q-btn--standard.q-btn--active .q-btn__wrapper:before, +.q-btn--actionable.q-btn--standard:active .q-btn__wrapper:before { + box-shadow: 0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 5px 8px rgba(0, 0, 0, 0.14), 0 1px 14px rgba(0, 0, 0, 0.12) +} + +.q-btn--no-uppercase { + text-transform: none +} + +.q-btn--rectangle { + border-radius: 3px +} + +.q-btn--outline { + background: transparent !important +} + +.q-btn--outline .q-btn__wrapper:before { + border: 1px solid currentColor +} + +.q-btn--push { + border-radius: 7px +} + +.q-btn--push .q-btn__wrapper:before { + border-bottom: 3px solid rgba(0, 0, 0, 0.15) +} + +.q-btn--push.q-btn--actionable { + transition: transform 0.3s cubic-bezier(0.25, 0.8, 0.5, 1) +} + +.q-btn--push.q-btn--actionable .q-btn__wrapper:before { + transition: top 0.3s cubic-bezier(0.25, 0.8, 0.5, 1), bottom 0.3s cubic-bezier(0.25, 0.8, 0.5, 1), border-bottom-width 0.3s cubic-bezier(0.25, 0.8, 0.5, 1) +} + +.q-btn--push.q-btn--actionable.q-btn--active, +.q-btn--push.q-btn--actionable:active { + transform: translateY(2px) +} + +.q-btn--push.q-btn--actionable.q-btn--active .q-btn__wrapper:before, +.q-btn--push.q-btn--actionable:active .q-btn__wrapper:before { + border-bottom-width: 0 +} + +.q-btn--rounded { + border-radius: 28px +} + +.q-btn--round { + border-radius: 50% +} + +.q-btn--round .q-btn__wrapper { + padding : 0; + min-width : 3em; + min-height: 3em +} + +.q-btn--flat .q-btn__wrapper:before, +.q-btn--outline .q-btn__wrapper:before, +.q-btn--unelevated .q-btn__wrapper:before { + box-shadow: none +} + +.q-btn--dense .q-btn__wrapper { + padding : 0.285em; + min-height: 2em +} + +.q-btn--dense.q-btn--round .q-btn__wrapper { + padding : 0; + min-height: 2.4em; + min-width : 2.4em +} + +.q-btn--dense .on-left { + margin-right: 6px +} + +.q-btn--dense .on-right { + margin-left: 6px +} + +.q-btn--fab-mini .q-icon, +.q-btn--fab .q-icon { + font-size: 24px +} + +.q-btn--fab .q-icon { + margin: auto +} + +.q-btn--fab .q-btn__wrapper { + padding : 16px; + min-height: 56px; + min-width : 56px +} + +.q-btn--fab-mini .q-btn__wrapper { + padding : 8px; + min-height: 40px; + min-width : 40px +} + +.q-btn__content { + transition: opacity 0.3s; + z-index : 0 +} + +.q-btn__content--hidden { + opacity : 0; + pointer-events: none +} + +.q-btn__progress { + border-radius: inherit; + z-index : 0 +} + +.q-btn__progress-indicator { + z-index : -1; + transform : translateX(-100%); + background: hsla(0, 0%, 100%, 0.25) +} + +.q-btn__progress--dark .q-btn__progress-indicator { + background: rgba(0, 0, 0, 0.2) +} + +.q-btn--flat .q-btn__progress-indicator, +.q-btn--outline .q-btn__progress-indicator { + opacity : 0.2; + background: currentColor +} + +.q-btn-dropdown--split .q-btn-dropdown__arrow-container.q-btn--outline { + border-left: 1px solid currentColor +} + +.q-btn-dropdown--split .q-btn-dropdown__arrow-container:not(.q-btn--outline) { + border-left: 1px solid hsla(0, 0%, 100%, 0.3) +} + +.q-btn-dropdown--split .q-btn-dropdown__arrow-container .q-btn__wrapper { + padding: 0 4px +} + +.q-btn-dropdown--simple *+.q-btn-dropdown__arrow { + margin-left: 8px +} + +.q-btn-dropdown__arrow { + transition: transform 0.28s +} + +.q-btn-dropdown--current { + flex-grow: 1 +} + +.q-btn-group { + border-radius : 3px; + box-shadow : 0 1px 5px rgba(0, 0, 0, 0.2), 0 2px 2px rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12); + vertical-align: middle +} + +.q-btn-group>.q-btn-item { + border-radius: inherit; + align-self : stretch +} + +.q-btn-group>.q-btn-item .q-btn__wrapper:before { + box-shadow: none +} + +.q-btn-group>.q-btn-item .q-badge--floating { + right: 0 +} + +.q-btn-group>.q-btn-group { + box-shadow: none +} + +.q-btn-group>.q-btn-group:first-child>.q-btn:first-child { + border-top-left-radius : inherit; + border-bottom-left-radius: inherit +} + +.q-btn-group>.q-btn-group:last-child>.q-btn:last-child { + border-top-right-radius : inherit; + border-bottom-right-radius: inherit +} + +.q-btn-group>.q-btn-group:not(:first-child)>.q-btn:first-child .q-btn__wrapper:before { + border-left: 0 +} + +.q-btn-group>.q-btn-group:not(:last-child)>.q-btn:last-child .q-btn__wrapper:before { + border-right: 0 +} + +.q-btn-group>.q-btn-item:not(:last-child) { + border-top-right-radius : 0; + border-bottom-right-radius: 0 +} + +.q-btn-group>.q-btn-item:not(:first-child) { + border-top-left-radius : 0; + border-bottom-left-radius: 0 +} + +.q-btn-group>.q-btn-item.q-btn--standard .q-btn__wrapper:before { + z-index: -1 +} + +.q-btn-group--push { + border-radius: 7px +} + +.q-btn-group--push>.q-btn--push.q-btn--actionable { + transform: none +} + +.q-btn-group--push>.q-btn--push.q-btn--actionable .q-btn__wrapper { + transition: margin-top 0.3s cubic-bezier(0.25, 0.8, 0.5, 1), margin-bottom 0.3s cubic-bezier(0.25, 0.8, 0.5, 1), box-shadow 0.3s cubic-bezier(0.25, 0.8, 0.5, 1) +} + +.q-btn-group--push>.q-btn--push.q-btn--actionable.q-btn--active .q-btn__wrapper, +.q-btn-group--push>.q-btn--push.q-btn--actionable:active .q-btn__wrapper { + margin-top : 2px; + margin-bottom: -2px +} + +.q-btn-group--rounded { + border-radius: 28px +} + +.q-btn-group--flat, +.q-btn-group--outline, +.q-btn-group--unelevated { + box-shadow: none +} + +.q-btn-group--outline>.q-separator { + display: none +} + +.q-btn-group--outline>.q-btn-item+.q-btn-item .q-btn__wrapper:before { + border-left: 0 +} + +.q-btn-group--outline>.q-btn-item:not(:last-child) .q-btn__wrapper:before { + border-right: 0 +} + +.q-btn-group--stretch { + align-self : stretch; + border-radius: 0 +} + +.q-btn-group--glossy>.q-btn-item { + background-image: linear-gradient(180deg, hsla(0, 0%, 100%, 0.3), hsla(0, 0%, 100%, 0) 50%, rgba(0, 0, 0, 0.12) 51%, rgba(0, 0, 0, 0.04)) !important +} + +.q-btn-group--spread>.q-btn-group { + display: flex !important +} + +.q-btn-group--spread>.q-btn-group>.q-btn-item:not(.q-btn-dropdown__arrow-container), +.q-btn-group--spread>.q-btn-item { + width : auto; + min-width: 0; + max-width: 100%; + flex : 10000 1 0% +} + +.q-btn-toggle, +.q-card { + position: relative +} + +.q-card { + box-shadow : 0 1px 5px rgba(0, 0, 0, 0.2), 0 2px 2px rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12); + border-radius : 4px; + vertical-align: top; + background : #fff +} + +.q-card>div:first-child, +.q-card>img:first-child { + border-top : 0; + border-top-left-radius : inherit; + border-top-right-radius: inherit +} + +.q-card>div:last-child, +.q-card>img:last-child { + border-bottom : 0; + border-bottom-left-radius : inherit; + border-bottom-right-radius: inherit +} + +.q-card>div:not(:first-child), +.q-card>img:not(:first-child) { + border-top-left-radius : 0; + border-top-right-radius: 0 +} + +.q-card>div:not(:last-child), +.q-card>img:not(:last-child) { + border-bottom-left-radius : 0; + border-bottom-right-radius: 0 +} + +.q-card>div { + border-left : 0; + border-right: 0; + box-shadow : none +} + +.q-card--bordered { + border: 1px solid rgba(0, 0, 0, 0.12) +} + +.q-card--dark { + border-color: hsla(0, 0%, 100%, 0.28) +} + +.q-card__section { + position: relative +} + +.q-card__section--vert { + padding: 16px +} + +.q-card__section--horiz>div:first-child, +.q-card__section--horiz>img:first-child { + border-top-left-radius : inherit; + border-bottom-left-radius: inherit +} + +.q-card__section--horiz>div:last-child, +.q-card__section--horiz>img:last-child { + border-top-right-radius : inherit; + border-bottom-right-radius: inherit +} + +.q-card__section--horiz>div:not(:first-child), +.q-card__section--horiz>img:not(:first-child) { + border-top-left-radius : 0; + border-bottom-left-radius: 0 +} + +.q-card__section--horiz>div:not(:last-child), +.q-card__section--horiz>img:not(:last-child) { + border-top-right-radius : 0; + border-bottom-right-radius: 0 +} + +.q-card__section--horiz>div { + border-top : 0; + border-bottom: 0; + box-shadow : none +} + +.q-card__actions { + padding : 8px; + align-items: center +} + +.q-card__actions .q-btn__wrapper { + padding: 0 8px +} + +.q-card__actions--horiz>.q-btn-group+.q-btn-item, +.q-card__actions--horiz>.q-btn-item+.q-btn-group, +.q-card__actions--horiz>.q-btn-item+.q-btn-item { + margin-left: 8px +} + +.q-card__actions--vert>.q-btn-item.q-btn--round { + align-self: center +} + +.q-card__actions--vert>.q-btn-group+.q-btn-item, +.q-card__actions--vert>.q-btn-item+.q-btn-group, +.q-card__actions--vert>.q-btn-item+.q-btn-item { + margin-top: 4px +} + +.q-card__actions--vert>.q-btn-group>.q-btn-item { + flex-grow: 1 +} + +.q-card>img { + display : block; + width : 100%; + max-width: 100%; + border : 0 +} + +.q-carousel { + background-color: #fff; + height : 400px +} + +.q-carousel__slide { + min-height : 100%; + background-size : cover; + background-position: 50% +} + +.q-carousel .q-carousel--padding, +.q-carousel__slide { + padding: 16px +} + +.q-carousel__slides-container { + height: 100% +} + +.q-carousel__control { + color: #fff +} + +.q-carousel__arrow { + pointer-events: none +} + +.q-carousel__arrow .q-icon { + font-size: 28px +} + +.q-carousel__arrow .q-btn { + pointer-events: all +} + +.q-carousel__next-arrow--horizontal, +.q-carousel__prev-arrow--horizontal { + top : 16px; + bottom: 16px +} + +.q-carousel__prev-arrow--horizontal { + left: 16px +} + +.q-carousel__next-arrow--horizontal { + right: 16px +} + +.q-carousel__next-arrow--vertical, +.q-carousel__prev-arrow--vertical { + left : 16px; + right: 16px +} + +.q-carousel__prev-arrow--vertical { + top: 16px +} + +.q-carousel__next-arrow--vertical { + bottom: 16px +} + +.q-carousel__navigation--bottom, +.q-carousel__navigation--top { + left : 16px; + right : 16px; + overflow-x: auto; + overflow-y: hidden +} + +.q-carousel__navigation--top { + top: 16px +} + +.q-carousel__navigation--bottom { + bottom: 16px +} + +.q-carousel__navigation--left, +.q-carousel__navigation--right { + top : 16px; + bottom : 16px; + overflow-x: hidden; + overflow-y: auto +} + +.q-carousel__navigation--left>.q-carousel__navigation-inner, +.q-carousel__navigation--right>.q-carousel__navigation-inner { + flex-direction: column +} + +.q-carousel__navigation--left { + left: 16px +} + +.q-carousel__navigation--right { + right: 16px +} + +.q-carousel__navigation-inner { + flex: 1 1 auto +} + +.q-carousel__navigation .q-btn { + margin: 6px 4px +} + +.q-carousel__navigation .q-btn .q-btn__wrapper { + padding: 5px +} + +.q-carousel__navigation-icon--inactive { + opacity: 0.7 +} + +.q-carousel .q-carousel__thumbnail { + margin : 2px; + height : 50px; + width : auto; + display : inline-block; + cursor : pointer; + border : 1px solid transparent; + border-radius : 4px; + vertical-align: middle; + opacity : 0.7; + transition : opacity 0.3s +} + +.q-carousel .q-carousel__thumbnail--active, +.q-carousel .q-carousel__thumbnail:hover { + opacity: 1 +} + +.q-carousel .q-carousel__thumbnail--active { + border-color: currentColor; + cursor : default +} + +.q-carousel--arrows-vertical .q-carousel--padding, +.q-carousel--arrows-vertical.q-carousel--with-padding .q-carousel__slide, +.q-carousel--navigation-top .q-carousel--padding, +.q-carousel--navigation-top.q-carousel--with-padding .q-carousel__slide { + padding-top: 60px +} + +.q-carousel--arrows-vertical .q-carousel--padding, +.q-carousel--arrows-vertical.q-carousel--with-padding .q-carousel__slide, +.q-carousel--navigation-bottom .q-carousel--padding, +.q-carousel--navigation-bottom.q-carousel--with-padding .q-carousel__slide { + padding-bottom: 60px +} + +.q-carousel--arrows-horizontal .q-carousel--padding, +.q-carousel--arrows-horizontal.q-carousel--with-padding .q-carousel__slide, +.q-carousel--navigation-left .q-carousel--padding, +.q-carousel--navigation-left.q-carousel--with-padding .q-carousel__slide { + padding-left: 60px +} + +.q-carousel--arrows-horizontal .q-carousel--padding, +.q-carousel--arrows-horizontal.q-carousel--with-padding .q-carousel__slide, +.q-carousel--navigation-right .q-carousel--padding, +.q-carousel--navigation-right.q-carousel--with-padding .q-carousel__slide { + padding-right: 60px +} + +.q-carousel.fullscreen { + height: 100% +} + +.q-message-label, +.q-message-name, +.q-message-stamp { + font-size: small +} + +.q-message-label { + margin : 24px 0; + text-align: center +} + +.q-message-stamp { + color : inherit; + margin-top: 4px; + opacity : 0.6; + display : none +} + +.q-message-avatar { + border-radius: 50%; + width : 48px; + height : 48px; + min-width : 48px +} + +.q-message { + margin-bottom: 8px +} + +.q-message:first-child .q-message-label { + margin-top: 0 +} + +.q-message-avatar--received { + margin-right: 8px +} + +.q-message-text--received { + color : #81c784; + border-radius: 4px 4px 4px 0 +} + +.q-message-text--received:last-child:before { + right : 100%; + border-right : 0 solid transparent; + border-left : 8px solid transparent; + border-bottom: 8px solid currentColor +} + +.q-message-text-content--received { + color: #000 +} + +.q-message-name--sent { + text-align: right +} + +.q-message-avatar--sent { + margin-left: 8px +} + +.q-message-container--sent { + flex-direction: row-reverse +} + +.q-message-text--sent { + color : #e0e0e0; + border-radius: 4px 4px 0 4px +} + +.q-message-text--sent:last-child:before { + left : 100%; + border-left : 0 solid transparent; + border-right : 8px solid transparent; + border-bottom: 8px solid currentColor +} + +.q-message-text-content--sent { + color: #000 +} + +.q-message-text { + background : currentColor; + padding : 8px; + line-height: 1.2; + word-break : break-word; + position : relative +} + +.q-message-text+.q-message-text { + margin-top: 3px +} + +.q-message-text:last-child { + min-height: 48px +} + +.q-message-text:last-child .q-message-stamp { + display: block +} + +.q-message-text:last-child:before { + content : ""; + position: absolute; + bottom : 0; + width : 0; + height : 0 +} + +.q-checkbox { + vertical-align: middle +} + +.q-checkbox__native { + width : 1px; + height: 1px +} + +.q-checkbox__bg, +.q-checkbox__icon-container { + -webkit-user-select: none; + -moz-user-select : none; + -ms-user-select : none; + user-select : none +} + +.q-checkbox__bg { + top : 25%; + left : 25%; + width : 50%; + height : 50%; + border : 2px solid currentColor; + border-radius : 2px; + transition : background 0.22s cubic-bezier(0, 0, 0.2, 1) 0ms; + -webkit-print-color-adjust: exact +} + +.q-checkbox__icon { + color : currentColor; + font-size: 0.5em +} + +.q-checkbox__svg { + color: #fff +} + +.q-checkbox__truthy { + stroke : currentColor; + stroke-width : 3.12px; + stroke-dashoffset: 29.78334; + stroke-dasharray : 29.78334 +} + +.q-checkbox__indet { + fill : currentColor; + transform-origin: 50% 50%; + transform : rotate(-280deg) scale(0) +} + +.q-checkbox__inner { + font-size : 40px; + width : 1em; + min-width : 1em; + height : 1em; + outline : 0; + border-radius: 50%; + color : rgba(0, 0, 0, 0.54) +} + +.q-checkbox__inner--indet, +.q-checkbox__inner--truthy { + color: #1976d2; + color: var(--q-color-primary) +} + +.q-checkbox__inner--indet .q-checkbox__bg, +.q-checkbox__inner--truthy .q-checkbox__bg { + background: currentColor +} + +.q-checkbox__inner--truthy path { + stroke-dashoffset: 0; + transition : stroke-dashoffset 0.18s cubic-bezier(0.4, 0, 0.6, 1) 0ms +} + +.q-checkbox__inner--indet .q-checkbox__indet { + transform : rotate(0) scale(1); + transition: transform 0.22s cubic-bezier(0, 0, 0.2, 1) 0ms +} + +.q-checkbox.disabled { + opacity: 0.75 !important +} + +.q-checkbox--dark .q-checkbox__inner { + color: hsla(0, 0%, 100%, 0.7) +} + +.q-checkbox--dark .q-checkbox__inner:before { + opacity: 0.32 !important +} + +.q-checkbox--dark .q-checkbox__inner--indet, +.q-checkbox--dark .q-checkbox__inner--truthy { + color: #1976d2; + color: var(--q-color-primary) +} + +.q-checkbox--dense .q-checkbox__inner { + width : 0.5em; + min-width: 0.5em; + height : 0.5em +} + +.q-checkbox--dense .q-checkbox__bg { + left : 5%; + top : 5%; + width : 90%; + height: 90% +} + +.q-checkbox--dense .q-checkbox__label { + padding-left: 0.5em +} + +.q-checkbox--dense.reverse .q-checkbox__label { + padding-left : 0; + padding-right: 0.5em +} + +body.desktop .q-checkbox:not(.disabled) .q-checkbox__inner:before { + content : ""; + position : absolute; + top : 0; + right : 0; + bottom : 0; + left : 0; + border-radius: 50%; + background : currentColor; + opacity : 0.12; + transform : scale3d(0, 0, 1); + transition : transform 0.22s cubic-bezier(0, 0, 0.2, 1) +} + +body.desktop .q-checkbox:not(.disabled):focus .q-checkbox__inner:before, +body.desktop .q-checkbox:not(.disabled):hover .q-checkbox__inner:before { + transform: scale3d(1, 1, 1) +} + +body.desktop .q-checkbox--dense:not(.disabled):focus .q-checkbox__inner:before, +body.desktop .q-checkbox--dense:not(.disabled):hover .q-checkbox__inner:before { + transform: scale3d(1.4, 1.4, 1) +} + +.q-chip { + vertical-align: middle; + border-radius : 16px; + outline : 0; + position : relative; + height : 2em; + max-width : 100%; + margin : 4px; + background : #e0e0e0; + color : rgba(0, 0, 0, 0.87); + font-size : 14px; + padding : 0.5em 0.9em +} + +.q-chip--colored .q-chip__icon, +.q-chip--dark .q-chip__icon { + color: inherit +} + +.q-chip--outline { + background: transparent !important; + border : 1px solid currentColor +} + +.q-chip .q-avatar { + font-size : 2em; + margin-left : -0.45em; + margin-right : 0.2em; + border-radius: 16px +} + +.q-chip--selected .q-avatar { + display: none +} + +.q-chip__icon { + color : rgba(0, 0, 0, 0.54); + font-size: 1.5em; + margin : -0.2em +} + +.q-chip__icon--left { + margin-right: 0.2em +} + +.q-chip__icon--right { + margin-left: 0.2em +} + +.q-chip__icon--remove { + margin-left : 0.1em; + margin-right: -0.5em; + opacity : 0.6; + outline : 0 +} + +.q-chip__icon--remove:focus, +.q-chip__icon--remove:hover { + opacity: 1 +} + +.q-chip__content { + white-space: nowrap +} + +.q-chip--dense { + border-radius: 12px; + padding : 0 0.4em; + height : 1.5em +} + +.q-chip--dense .q-avatar { + font-size : 1.5em; + margin-left : -0.27em; + margin-right : 0.1em; + border-radius: 12px +} + +.q-chip--dense .q-chip__icon { + font-size: 1.25em +} + +.q-chip--dense .q-chip__icon--left { + margin-right: 0.195em +} + +.q-chip--dense .q-chip__icon--remove { + margin-right: -0.25em +} + +.q-chip--square { + border-radius: 4px +} + +.q-chip--square .q-avatar { + border-radius: 3px 0 0 3px +} + +body.desktop .q-chip--clickable:focus { + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2), 0 1px 1px rgba(0, 0, 0, 0.14), 0 2px 1px -1px rgba(0, 0, 0, 0.12) +} + +.q-circular-progress { + display : inline-block; + position : relative; + vertical-align: middle; + width : 1em; + height : 1em; + line-height : 1 +} + +.q-circular-progress.q-focusable { + border-radius: 50% +} + +.q-circular-progress__svg { + width : 100%; + height: 100% +} + +.q-circular-progress__text { + font-size: 0.25em +} + +.q-circular-progress--indeterminate .q-circular-progress__svg { + transform-origin : 50% 50%; + -webkit-animation: q-spin 2s linear infinite; + animation : q-spin 2s linear infinite +} + +.q-circular-progress--indeterminate .q-circular-progress__circle { + stroke-dasharray : 1 400; + stroke-dashoffset: 0; + -webkit-animation: q-circular-progress-circle 1.5s ease-in-out infinite; + animation : q-circular-progress-circle 1.5s ease-in-out infinite +} + +.q-color-picker { + overflow : hidden; + background : #fff; + max-width : 350px; + vertical-align: top; + min-width : 180px; + border-radius : 4px; + box-shadow : 0 1px 5px rgba(0, 0, 0, 0.2), 0 2px 2px rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12) +} + +.q-color-picker .q-tab { + padding: 0 !important +} + +.q-color-picker--bordered { + border: 1px solid rgba(0, 0, 0, 0.12) +} + +.q-color-picker__header-tabs { + height: 32px +} + +.q-color-picker__header input { + line-height: 24px; + border : 0 +} + +.q-color-picker__header .q-tab { + min-height: 32px !important; + height : 32px !important +} + +.q-color-picker__header .q-tab--inactive { + background: linear-gradient(0deg, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0.15) 25%, rgba(0, 0, 0, 0.1)) +} + +.q-color-picker__error-icon { + bottom : 2px; + right : 2px; + font-size : 24px; + opacity : 0; + transition: opacity 0.3s ease-in +} + +.q-color-picker__header-content { + position : relative; + background: #fff +} + +.q-color-picker__header-content--light { + color: #000 +} + +.q-color-picker__header-content--dark { + color: #fff +} + +.q-color-picker__header-content--dark .q-tab--inactive:before { + content : ""; + position : absolute; + top : 0; + right : 0; + bottom : 0; + left : 0; + background: hsla(0, 0%, 100%, 0.2) +} + +.q-color-picker__header-banner { + height: 36px +} + +.q-color-picker__header-bg { + background : #fff; + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAH0lEQVQoU2NkYGAwZkAFZ5G5jPRRgOYEVDeB3EBjBQBOZwTVugIGyAAAAABJRU5ErkJggg==") !important +} + +.q-color-picker__footer { + height: 36px +} + +.q-color-picker__footer .q-tab { + min-height: 36px !important; + height : 36px !important +} + +.q-color-picker__footer .q-tab--inactive { + background: linear-gradient(180deg, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0.15) 25%, rgba(0, 0, 0, 0.1)) +} + +.q-color-picker__spectrum { + width : 100%; + height: 100% +} + +.q-color-picker__spectrum-tab { + padding: 0 !important +} + +.q-color-picker__spectrum-white { + background: linear-gradient(90deg, #fff, hsla(0, 0%, 100%, 0)) +} + +.q-color-picker__spectrum-black { + background: linear-gradient(0deg, #000, transparent) +} + +.q-color-picker__spectrum-circle { + width : 10px; + height : 10px; + box-shadow : 0 0 0 1.5px #fff, inset 0 0 1px 1px rgba(0, 0, 0, 0.3), 0 0 1px 2px rgba(0, 0, 0, 0.4); + border-radius: 50%; + transform : translate(-5px, -5px) +} + +.q-color-picker__hue .q-slider__track { + background: linear-gradient(90deg, red 0%, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, red) !important; + opacity : 1 +} + +.q-color-picker__alpha .q-slider__track-container { + padding-top: 0 +} + +.q-color-picker__alpha .q-slider__track:before { + content : ""; + position : absolute; + top : 0; + right : 0; + bottom : 0; + left : 0; + border-radius: inherit; + background : linear-gradient(90deg, hsla(0, 0%, 100%, 0), #757575) +} + +.q-color-picker__sliders { + padding: 0 16px +} + +.q-color-picker__sliders .q-slider__thumb { + color: #424242 +} + +.q-color-picker__sliders .q-slider__thumb path { + stroke-width: 2px; + fill : transparent +} + +.q-color-picker__sliders .q-slider--active path { + stroke-width: 3px +} + +.q-color-picker__tune-tab .q-slider { + margin-left : 18px; + margin-right: 18px +} + +.q-color-picker__tune-tab input { + font-size : 11px; + border : 1px solid #e0e0e0; + border-radius: 4px; + width : 3.5em +} + +.q-color-picker__palette-tab { + padding: 0 !important +} + +.q-color-picker__palette-rows--editable .q-color-picker__cube { + cursor: pointer +} + +.q-color-picker__cube { + padding-bottom: 10%; + width : 10% !important +} + +.q-color-picker input { + color : inherit; + background: transparent; + outline : 0; + text-align: center +} + +.q-color-picker .q-tabs { + overflow: hidden +} + +.q-color-picker .q-tab--active { + box-shadow: 0 0 14px 3px rgba(0, 0, 0, 0.2) +} + +.q-color-picker .q-tab--active .q-focus-helper, +.q-color-picker .q-tab__indicator { + display: none +} + +.q-color-picker .q-tab-panels { + background: inherit +} + +.q-color-picker--dark .q-color-picker__tune-tab input { + border: 1px solid hsla(0, 0%, 100%, 0.3) +} + +.q-color-picker--dark .q-slider { + color: #fafafa +} + +.q-date { + display : inline-flex; + box-shadow : 0 1px 5px rgba(0, 0, 0, 0.2), 0 2px 2px rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12); + border-radius: 4px; + background : #fff; + width : 290px; + min-width : 290px; + max-width : 100% +} + +.q-date--bordered { + border: 1px solid rgba(0, 0, 0, 0.12) +} + +.q-date__header { + border-top-left-radius: inherit; + color : #fff; + background-color : #1976d2; + background-color : var(--q-color-primary); + padding : 16px +} + +.q-date__actions { + padding: 0 16px 16px +} + +.q-date__content, +.q-date__main { + outline: 0 +} + +.q-date__content .q-btn { + font-weight: 400 +} + +.q-date__header-link { + opacity : 0.64; + outline : 0; + transition: opacity 0.3s ease-out +} + +.q-date__header-link--active, +.q-date__header-link:focus, +.q-date__header-link:hover { + opacity: 1 +} + +.q-date__header-subtitle { + font-size : 14px; + line-height : 1.75; + letter-spacing: 0.00938em +} + +.q-date__header-title-label { + font-size : 24px; + line-height : 1.2; + letter-spacing: 0.00735em +} + +.q-date__view { + height : 100%; + width : 100%; + min-height: 290px; + padding : 16px +} + +.q-date__navigation { + height: 12.5% +} + +.q-date__navigation>div:first-child { + width : 8%; + min-width : 24px; + justify-content: flex-end +} + +.q-date__navigation>div:last-child { + width : 8%; + min-width : 24px; + justify-content: flex-start +} + +.q-date__calendar-weekdays { + height: 12.5% +} + +.q-date__calendar-weekdays>div { + opacity : 0.38; + font-size: 12px +} + +.q-date__calendar-item { + display : inline-flex; + align-items : center; + justify-content: center; + vertical-align : middle; + width : 14.285% !important; + height : 12.5% !important; + position : relative; + padding : 1px +} + +.q-date__calendar-item:after { + content : ""; + position : absolute; + pointer-events: none; + top : 1px; + right : 0; + bottom : 1px; + left : 0; + border-style : dashed; + border-color : transparent; + border-width : 1px +} + +.q-date__calendar-item>div, +.q-date__calendar-item button { + width : 30px; + height : 30px; + border-radius: 50% +} + +.q-date__calendar-item>div { + line-height: 30px; + text-align : center +} + +.q-date__calendar-item>button { + line-height: 22px +} + +.q-date__calendar-item--out { + opacity: 0.18 +} + +.q-date__calendar-item--fill { + visibility: hidden +} + +.q-date__range-from:before, +.q-date__range-to:before, +.q-date__range:before { + content : ""; + background-color: currentColor; + position : absolute; + top : 1px; + bottom : 1px; + left : 0; + right : 0; + opacity : 0.3 +} + +.q-date__range-from:nth-child(7n-6):before, +.q-date__range-to:nth-child(7n-6):before, +.q-date__range:nth-child(7n-6):before { + border-top-left-radius : 0; + border-bottom-left-radius: 0 +} + +.q-date__range-from:nth-child(7n):before, +.q-date__range-to:nth-child(7n):before, +.q-date__range:nth-child(7n):before { + border-top-right-radius : 0; + border-bottom-right-radius: 0 +} + +.q-date__range-from:before { + left: 50% +} + +.q-date__range-to:before { + right: 50% +} + +.q-date__edit-range:after { + border-color: currentColor transparent +} + +.q-date__edit-range:nth-child(7n-6):after { + border-top-left-radius : 0; + border-bottom-left-radius: 0 +} + +.q-date__edit-range:nth-child(7n):after { + border-top-right-radius : 0; + border-bottom-right-radius: 0 +} + +.q-date__edit-range-from-to:after, +.q-date__edit-range-from:after { + left : 4px; + border-left-color : currentColor; + border-top-color : currentColor; + border-bottom-color : currentColor; + border-top-left-radius : 28px; + border-bottom-left-radius: 28px +} + +.q-date__edit-range-from-to:after, +.q-date__edit-range-to:after { + right : 4px; + border-right-color : currentColor; + border-top-color : currentColor; + border-bottom-color : currentColor; + border-top-right-radius : 28px; + border-bottom-right-radius: 28px +} + +.q-date__calendar-days-container { + height : 75%; + min-height: 192px +} + +.q-date__calendar-days>div { + height: 16.66% !important +} + +.q-date__event { + position : absolute; + bottom : 2px; + left : 50%; + height : 5px; + width : 8px; + border-radius : 5px; + background-color: #26a69a; + background-color: var(--q-color-secondary); + transform : translate3d(-50%, 0, 0) +} + +.q-date__today { + box-shadow: 0 0 1px 0 currentColor +} + +.q-date__years-content { + padding: 0 8px +} + +.q-date__months-item, +.q-date__years-item { + flex: 0 0 33.3333% +} + +.q-date--readonly .q-date__content, +.q-date--readonly .q-date__header, +.q-date.disabled .q-date__content, +.q-date.disabled .q-date__header { + pointer-events: none +} + +.q-date--readonly .q-date__navigation { + display: none +} + +.q-date--portrait { + flex-direction: column +} + +.q-date--portrait-standard .q-date__content { + height: calc(100% - 86px) +} + +.q-date--portrait-standard .q-date__header { + border-top-right-radius: inherit; + height : 86px +} + +.q-date--portrait-standard .q-date__header-title { + align-items: center; + height : 30px +} + +.q-date--portrait-minimal .q-date__content { + height: 100% +} + +.q-date--landscape { + flex-direction: row; + align-items : stretch; + min-width : 420px +} + +.q-date--landscape>div { + display : flex; + flex-direction: column +} + +.q-date--landscape .q-date__content { + height: 100% +} + +.q-date--landscape-standard { + min-width: 420px +} + +.q-date--landscape-standard .q-date__header { + border-bottom-left-radius: inherit; + min-width : 110px; + width : 110px +} + +.q-date--landscape-standard .q-date__header-title { + flex-direction: column +} + +.q-date--landscape-standard .q-date__header-today { + margin-top : 12px; + margin-left: -8px +} + +.q-date--landscape-minimal { + width: 310px +} + +.q-date--dark { + border-color: hsla(0, 0%, 100%, 0.28) +} + +.q-dialog__title { + font-size : 1.25rem; + font-weight : 500; + line-height : 2rem; + letter-spacing: 0.0125em +} + +.q-dialog__progress { + font-size: 4rem +} + +.q-dialog__inner { + outline: 0 +} + +.q-dialog__inner>div { + pointer-events : all; + overflow : auto; + -webkit-overflow-scrolling: touch; + will-change : scroll-position; + border-radius : 4px; + box-shadow : 0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px rgba(0, 0, 0, 0.14), 0 1px 10px rgba(0, 0, 0, 0.12) +} + +.q-dialog__inner--square>div { + border-radius: 0 !important +} + +.q-dialog__inner>.q-card>.q-card__actions .q-btn--rectangle .q-btn__wrapper { + min-width: 64px +} + +.q-dialog__inner--minimized { + padding: 24px +} + +.q-dialog__inner--minimized>div { + max-height: calc(100vh - 48px) +} + +.q-dialog__inner--maximized>div { + height : 100%; + width : 100%; + max-height : 100vh; + max-width : 100vw; + border-radius: 0 !important +} + +.q-dialog__inner--bottom, +.q-dialog__inner--top { + padding-top : 0 !important; + padding-bottom: 0 !important +} + +.q-dialog__inner--left, +.q-dialog__inner--right { + padding-right: 0 !important; + padding-left : 0 !important +} + +.q-dialog__inner--left:not(.q-dialog__inner--animating)>div, +.q-dialog__inner--top:not(.q-dialog__inner--animating)>div { + border-top-left-radius: 0 +} + +.q-dialog__inner--right:not(.q-dialog__inner--animating)>div, +.q-dialog__inner--top:not(.q-dialog__inner--animating)>div { + border-top-right-radius: 0 +} + +.q-dialog__inner--bottom:not(.q-dialog__inner--animating)>div, +.q-dialog__inner--left:not(.q-dialog__inner--animating)>div { + border-bottom-left-radius: 0 +} + +.q-dialog__inner--bottom:not(.q-dialog__inner--animating)>div, +.q-dialog__inner--right:not(.q-dialog__inner--animating)>div { + border-bottom-right-radius: 0 +} + +.q-dialog__inner--fullwidth>div { + width : 100% !important; + max-width: 100% !important +} + +.q-dialog__inner--fullheight>div { + height : 100% !important; + max-height: 100% !important +} + +.q-dialog__backdrop { + z-index : -1; + pointer-events: all; + outline : 0; + background : rgba(0, 0, 0, 0.4) +} + +body.platform-android:not(.native-mobile) .q-dialog__inner--minimized>div, +body.platform-ios .q-dialog__inner--minimized>div { + max-height: calc(100vh - 108px) +} + +body.q-ios-padding .q-dialog__inner { + padding-top : 20px !important; + padding-top : env(safe-area-inset-top) !important; + padding-bottom: env(safe-area-inset-bottom) !important +} + +body.q-ios-padding .q-dialog__inner>div { + max-height: calc(100vh - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important +} + +@media (max-width:599.98px) { + + .q-dialog__inner--bottom, + .q-dialog__inner--top { + padding-left : 0; + padding-right: 0 + } + + .q-dialog__inner--bottom>div, + .q-dialog__inner--top>div { + width: 100% !important + } +} + +@media (min-width:600px) { + .q-dialog__inner--minimized>div { + max-width: 560px + } +} + +.q-body--dialog { + overflow: hidden +} + +.q-bottom-sheet { + padding-bottom: 8px +} + +.q-bottom-sheet__avatar { + border-radius: 50% +} + +.q-bottom-sheet--list { + width: 400px +} + +.q-bottom-sheet--list .q-icon, +.q-bottom-sheet--list img { + font-size: 24px; + width : 24px; + height : 24px +} + +.q-bottom-sheet--grid { + width: 700px +} + +.q-bottom-sheet--grid .q-bottom-sheet__item { + padding : 8px; + text-align: center; + min-width : 100px +} + +.q-bottom-sheet--grid .q-bottom-sheet__empty-icon, +.q-bottom-sheet--grid .q-icon, +.q-bottom-sheet--grid img { + font-size : 48px; + width : 48px; + height : 48px; + margin-bottom: 8px +} + +.q-bottom-sheet--grid .q-separator { + margin: 12px 0 +} + +.q-bottom-sheet__item { + flex: 0 0 33.3333% +} + +@media (min-width:600px) { + .q-bottom-sheet__item { + flex: 0 0 25% + } +} + +.q-dialog-plugin { + width: 400px +} + +.q-dialog-plugin__form { + max-height: 50vh +} + +.q-dialog-plugin .q-card__section+.q-card__section { + padding-top: 0 +} + +.q-dialog-plugin--progress { + text-align: center +} + +.q-editor { + border : 1px solid rgba(0, 0, 0, 0.12); + border-radius : 4px; + background-color: #fff +} + +.q-editor.disabled { + border-style: dashed +} + +.q-editor.fullscreen { + max-height: 100% +} + +.q-editor>div:first-child, +.q-editor__toolbars-container, +.q-editor__toolbars-container>div:first-child { + border-top-left-radius : inherit; + border-top-right-radius: inherit +} + +.q-editor__toolbars-container { + max-width: 100% +} + +.q-editor__content { + outline : 0; + padding : 10px; + min-height : 10em; + border-bottom-left-radius : inherit; + border-bottom-right-radius: inherit; + overflow : auto; + max-width : 100% +} + +.q-editor__content pre { + white-space: pre-wrap +} + +.q-editor__content hr { + border : 0; + outline : 0; + margin : 1px; + height : 1px; + background: rgba(0, 0, 0, 0.12) +} + +.q-editor__content:empty:not(:focus):before { + content: attr(placeholder); + opacity: 0.7 +} + +.q-editor__toolbar { + border-bottom: 1px solid rgba(0, 0, 0, 0.12); + min-height : 32px +} + +.q-editor .q-btn { + margin: 4px +} + +.q-editor__toolbar-group { + position: relative; + margin : 0 4px +} + +.q-editor__toolbar-group+.q-editor__toolbar-group:before { + content : ""; + position : absolute; + left : -4px; + top : 4px; + bottom : 4px; + width : 1px; + background: rgba(0, 0, 0, 0.12) +} + +.q-editor__link-input { + color : inherit; + text-decoration: none; + text-transform : none; + border : none; + border-radius : 0; + background : none; + outline : 0 +} + +.q-editor--flat, +.q-editor--flat .q-editor__toolbar { + border: 0 +} + +.q-editor--dense .q-editor__toolbar-group { + display : flex; + align-items: center; + flex-wrap : nowrap +} + +.q-editor--dark { + border-color: hsla(0, 0%, 100%, 0.28) +} + +.q-editor--dark .q-editor__content hr { + background: hsla(0, 0%, 100%, 0.28) +} + +.q-editor--dark .q-editor__toolbar { + border-color: hsla(0, 0%, 100%, 0.28) +} + +.q-editor--dark .q-editor__toolbar-group+.q-editor__toolbar-group:before { + background: hsla(0, 0%, 100%, 0.28) +} + +.q-expansion-item__border { + opacity: 0 +} + +.q-expansion-item__toggle-icon { + position : relative; + transition: transform 0.3s +} + +.q-expansion-item__toggle-icon--rotated { + transform: rotate(180deg) +} + +.q-expansion-item__toggle-focus { + width : 1em !important; + height : 1em !important; + position: relative !important +} + +.q-expansion-item__toggle-focus+.q-expansion-item__toggle-icon { + margin-top: -1em +} + +.q-expansion-item--standard.q-expansion-item--expanded>div>.q-expansion-item__border { + opacity: 1 +} + +.q-expansion-item--popup { + transition: padding 0.5s +} + +.q-expansion-item--popup>.q-expansion-item__container { + border: 1px solid rgba(0, 0, 0, 0.12) +} + +.q-expansion-item--popup>.q-expansion-item__container>.q-separator { + display: none +} + +.q-expansion-item--popup.q-expansion-item--collapsed { + padding: 0 15px +} + +.q-expansion-item--popup.q-expansion-item--expanded { + padding: 15px 0 +} + +.q-expansion-item--popup.q-expansion-item--expanded+.q-expansion-item--popup.q-expansion-item--expanded { + padding-top: 0 +} + +.q-expansion-item--popup.q-expansion-item--collapsed:not(:first-child)>.q-expansion-item__container { + border-top-width: 0 +} + +.q-expansion-item--popup.q-expansion-item--expanded+.q-expansion-item--popup.q-expansion-item--collapsed>.q-expansion-item__container { + border-top-width: 1px +} + +.q-expansion-item__content>.q-card { + box-shadow : none; + border-radius: 0 +} + +.q-expansion-item--expanded+.q-expansion-item--expanded>div>.q-expansion-item__border--top, +.q-expansion-item:first-child>div>.q-expansion-item__border--top, +.q-expansion-item:last-child>div>.q-expansion-item__border--bottom { + opacity: 0 +} + +.q-expansion-item--expanded .q-textarea--autogrow textarea { + -webkit-animation: q-expansion-done 0s; + animation : q-expansion-done 0s +} + +.z-fab { + z-index: 990 +} + +.q-fab { + position : relative; + vertical-align: middle +} + +.q-fab>.q-btn { + width: 100% +} + +.q-fab--form-rounded { + border-radius: 28px +} + +.q-fab--form-square { + border-radius: 4px +} + +.q-fab__active-icon, +.q-fab__icon { + transition: opacity 0.4s, transform 0.4s +} + +.q-fab__icon { + opacity : 1; + transform: rotate(0deg) +} + +.q-fab__active-icon { + opacity : 0; + transform: rotate(-180deg) +} + +.q-fab__label--external { + position : absolute; + padding : 0 8px; + transition: opacity 0.18s cubic-bezier(0.65, 0.815, 0.735, 0.395) +} + +.q-fab__label--external-hidden { + opacity : 0; + pointer-events: none +} + +.q-fab__label--external-left { + top : 50%; + left : -12px; + transform: translate(-100%, -50%) +} + +.q-fab__label--external-right { + top : 50%; + right : -12px; + transform: translate(100%, -50%) +} + +.q-fab__label--external-bottom { + bottom : -12px; + left : 50%; + transform: translate(-50%, 100%) +} + +.q-fab__label--external-top { + top : -12px; + left : 50%; + transform: translate(-50%, -100%) +} + +.q-fab__label--internal { + padding : 0; + transition: font-size 0.12s cubic-bezier(0.65, 0.815, 0.735, 0.395), max-height 0.12s cubic-bezier(0.65, 0.815, 0.735, 0.395), opacity 0.07s cubic-bezier(0.65, 0.815, 0.735, 0.395); + max-height: 30px +} + +.q-fab__label--internal-hidden { + font-size: 0; + opacity : 0 +} + +.q-fab__label--internal-top { + padding-bottom: 0.12em +} + +.q-fab__label--internal-bottom { + padding-top: 0.12em +} + +.q-fab__label--internal-bottom.q-fab__label--internal-hidden, +.q-fab__label--internal-top.q-fab__label--internal-hidden { + max-height: 0 +} + +.q-fab__label--internal-left { + padding-left : 0.285em; + padding-right: 0.571em +} + +.q-fab__label--internal-right { + padding-right: 0.285em; + padding-left : 0.571em +} + +.q-fab__icon-holder { + min-width : 24px; + min-height: 24px; + position : relative +} + +.q-fab__icon-holder--opened .q-fab__icon { + transform: rotate(180deg); + opacity : 0 +} + +.q-fab__icon-holder--opened .q-fab__active-icon { + transform: rotate(0deg); + opacity : 1 +} + +.q-fab__actions { + position : absolute; + opacity : 0; + transition : transform 0.18s ease-in, opacity 0.18s ease-in; + pointer-events : none; + align-items : center; + justify-content: center; + align-self : center; + padding : 3px +} + +.q-fab__actions .q-btn { + margin: 5px +} + +.q-fab__actions--right { + transform-origin: 0 50%; + transform : scale(0.4) translateX(-62px); + height : 56px; + left : 100%; + margin-left : 9px +} + +.q-fab__actions--left { + transform-origin: 100% 50%; + transform : scale(0.4) translateX(62px); + height : 56px; + right : 100%; + margin-right : 9px; + flex-direction : row-reverse +} + +.q-fab__actions--up { + transform-origin: 50% 100%; + transform : scale(0.4) translateY(62px); + width : 56px; + bottom : 100%; + margin-bottom : 9px; + flex-direction : column-reverse +} + +.q-fab__actions--down { + transform-origin: 50% 0; + transform : scale(0.4) translateY(-62px); + width : 56px; + top : 100%; + margin-top : 9px; + flex-direction : column +} + +.q-fab__actions--down, +.q-fab__actions--up { + left : 50%; + margin-left: -28px +} + +.q-fab__actions--opened { + opacity : 1; + transform : scale(1) translate(0, 0); + pointer-events: all +} + +.q-fab--align-left>.q-fab__actions--down, +.q-fab--align-left>.q-fab__actions--up { + align-items: flex-start; + left : 28px +} + +.q-fab--align-right>.q-fab__actions--down, +.q-fab--align-right>.q-fab__actions--up { + align-items: flex-end; + left : auto; + right : 0 +} + +.q-field { + font-size: 14px +} + +.q-field ::-ms-clear, +.q-field ::-ms-reveal { + display: none +} + +.q-field--with-bottom { + padding-bottom: 20px +} + +.q-field__marginal { + height : 56px; + color : rgba(0, 0, 0, 0.54); + font-size: 24px +} + +.q-field__marginal>*+* { + margin-left: 2px +} + +.q-field__marginal .q-avatar { + font-size: 32px +} + +.q-field__before, +.q-field__prepend { + padding-right: 12px +} + +.q-field__after, +.q-field__append { + padding-left: 12px +} + +.q-field__after:empty, +.q-field__append:empty { + display: none +} + +.q-field__append+.q-field__append { + padding-left: 2px +} + +.q-field__inner { + text-align: left +} + +.q-field__bottom { + font-size : 12px; + min-height : 20px; + line-height : 1; + color : rgba(0, 0, 0, 0.54); + padding : 8px 12px 0; + -webkit-backface-visibility: hidden; + backface-visibility : hidden +} + +.q-field__bottom--animated { + transform: translateY(100%); + position : absolute; + left : 0; + right : 0; + bottom : 0 +} + +.q-field__messages { + line-height: 1 +} + +.q-field__messages>div { + word-break : break-word; + word-wrap : break-word; + overflow-wrap: break-word +} + +.q-field__messages>div+div { + margin-top: 4px +} + +.q-field__counter { + padding-left: 8px; + line-height : 1 +} + +.q-field--item-aligned { + padding: 8px 16px +} + +.q-field--item-aligned .q-field__before { + min-width: 56px +} + +.q-field__control-container { + height: inherit +} + +.q-field__control { + color : #1976d2; + color : var(--q-color-primary); + height : 56px; + max-width: 100%; + outline : none +} + +.q-field__control:after, +.q-field__control:before { + content : ""; + position : absolute; + top : 0; + right : 0; + bottom : 0; + left : 0; + pointer-events: none +} + +.q-field__control:before { + border-radius: inherit +} + +.q-field__shadow { + top : 8px; + opacity : 0; + overflow : hidden; + white-space: pre-wrap; + transition : opacity 0.36s cubic-bezier(0.4, 0, 0.2, 1) +} + +.q-field__shadow+.q-field__native::-moz-placeholder { + -moz-transition: opacity 0.36s cubic-bezier(0.4, 0, 0.2, 1); + transition : opacity 0.36s cubic-bezier(0.4, 0, 0.2, 1) +} + +.q-field__shadow+.q-field__native:-ms-input-placeholder { + -ms-transition: opacity 0.36s cubic-bezier(0.4, 0, 0.2, 1); + transition : opacity 0.36s cubic-bezier(0.4, 0, 0.2, 1) +} + +.q-field__shadow+.q-field__native::placeholder { + transition: opacity 0.36s cubic-bezier(0.4, 0, 0.2, 1) +} + +.q-field__shadow+.q-field__native:focus::-moz-placeholder { + opacity: 0 +} + +.q-field__shadow+.q-field__native:focus:-ms-input-placeholder { + opacity: 0 +} + +.q-field__shadow+.q-field__native:focus::placeholder { + opacity: 0 +} + +.q-field__input, +.q-field__native, +.q-field__prefix, +.q-field__suffix { + font-weight : 400; + line-height : 28px; + letter-spacing : 0.00937em; + text-decoration: inherit; + text-transform : inherit; + border : none; + border-radius : 0; + background : none; + color : rgba(0, 0, 0, 0.87); + outline : 0; + padding : 6px 0 +} + +.q-field__input, +.q-field__native { + width : 100%; + min-width : 0; + outline : 0 !important; + -webkit-user-select: auto; + -moz-user-select : auto; + -ms-user-select : auto; + user-select : auto +} + +.q-field__input:-webkit-autofill, +.q-field__native:-webkit-autofill { + -webkit-animation-name : q-autofill; + -webkit-animation-fill-mode: both +} + +.q-field__input:-webkit-autofill+.q-field__label, +.q-field__native:-webkit-autofill+.q-field__label { + transform: translateY(-40%) scale(0.75) +} + +.q-field__input[type=number]:invalid+.q-field__label, +.q-field__native[type=number]:invalid+.q-field__label { + transform: translateY(-40%) scale(0.75) +} + +.q-field__input:invalid, +.q-field__native:invalid { + box-shadow: none +} + +.q-field__native[type=file] { + line-height: 1em +} + +.q-field__input { + padding : 0; + height : 0; + min-height : 24px; + line-height: 24px +} + +.q-field__prefix, +.q-field__suffix { + transition : opacity 0.36s cubic-bezier(0.4, 0, 0.2, 1); + white-space: nowrap +} + +.q-field__prefix { + padding-right: 4px +} + +.q-field__suffix { + padding-left: 4px +} + +.q-field--disabled .q-placeholder, +.q-field--readonly .q-placeholder { + opacity: 1 !important +} + +.q-field--readonly.q-field--labeled .q-field__input, +.q-field--readonly.q-field--labeled .q-field__native { + cursor: default +} + +.q-field--readonly.q-field--float .q-field__input, +.q-field--readonly.q-field--float .q-field__native { + cursor: text +} + +.q-field--disabled .q-field__inner { + cursor: not-allowed +} + +.q-field--disabled .q-field__control { + pointer-events: none +} + +.q-field--disabled .q-field__control>div { + opacity: 0.6 !important +} + +.q-field--disabled .q-field__control>div, +.q-field--disabled .q-field__control>div * { + outline: 0 !important +} + +.q-field__label { + left : 0; + right : 0; + top : 18px; + color : rgba(0, 0, 0, 0.6); + font-size : 16px; + line-height : 20px; + font-weight : 400; + letter-spacing : 0.00937em; + text-decoration : inherit; + text-transform : inherit; + transform-origin : left top; + transition : transform 0.36s cubic-bezier(0.4, 0, 0.2, 1), right 0.324s cubic-bezier(0.4, 0, 0.2, 1); + -webkit-backface-visibility: hidden; + backface-visibility : hidden +} + +.q-field--float .q-field__label { + transform : translateY(-40%) scale(0.75); + right : -33.33333%; + transition: transform 0.36s cubic-bezier(0.4, 0, 0.2, 1), right 0.396s cubic-bezier(0.4, 0, 0.2, 1) +} + +.q-field--highlighted .q-field__label { + color: currentColor +} + +.q-field--highlighted .q-field__shadow { + opacity: 0.5 +} + +.q-field--filled .q-field__control { + padding : 0 12px; + background : rgba(0, 0, 0, 0.05); + border-radius: 4px 4px 0 0 +} + +.q-field--filled .q-field__control:before { + background : rgba(0, 0, 0, 0.05); + border-bottom: 1px solid rgba(0, 0, 0, 0.42); + opacity : 0; + transition : opacity 0.36s cubic-bezier(0.4, 0, 0.2, 1), background 0.36s cubic-bezier(0.4, 0, 0.2, 1) +} + +.q-field--filled .q-field__control:hover:before { + opacity: 1 +} + +.q-field--filled .q-field__control:after { + height : 2px; + top : auto; + transform-origin: center bottom; + transform : scale3d(0, 1, 1); + background : currentColor; + transition : transform 0.36s cubic-bezier(0.4, 0, 0.2, 1) +} + +.q-field--filled.q-field--rounded .q-field__control { + border-radius: 28px 28px 0 0 +} + +.q-field--filled.q-field--highlighted .q-field__control:before { + opacity : 1; + background: rgba(0, 0, 0, 0.12) +} + +.q-field--filled.q-field--highlighted .q-field__control:after { + transform: scale3d(1, 1, 1) +} + +.q-field--filled.q-field--dark .q-field__control, +.q-field--filled.q-field--dark .q-field__control:before { + background: hsla(0, 0%, 100%, 0.07) +} + +.q-field--filled.q-field--dark.q-field--highlighted .q-field__control:before { + background: hsla(0, 0%, 100%, 0.1) +} + +.q-field--filled.q-field--readonly .q-field__control:before { + opacity : 1; + background : transparent; + border-bottom-style: dashed +} + +.q-field--outlined .q-field__control { + border-radius: 4px; + padding : 0 12px +} + +.q-field--outlined .q-field__control:before { + border : 1px solid rgba(0, 0, 0, 0.24); + transition: border-color 0.36s cubic-bezier(0.4, 0, 0.2, 1) +} + +.q-field--outlined .q-field__control:hover:before { + border-color: #000 +} + +.q-field--outlined .q-field__control:after { + height : inherit; + border-radius: inherit; + border : 2px solid transparent; + transition : border-color 0.36s cubic-bezier(0.4, 0, 0.2, 1) +} + +.q-field--outlined .q-field__input:-webkit-autofill, +.q-field--outlined .q-field__native:-webkit-autofill { + margin-top : 1px; + margin-bottom: 1px +} + +.q-field--outlined.q-field--rounded .q-field__control { + border-radius: 28px +} + +.q-field--outlined.q-field--highlighted .q-field__control:hover:before { + border-color: transparent +} + +.q-field--outlined.q-field--highlighted .q-field__control:after { + border-color: currentColor; + border-width: 2px; + transform : scale3d(1, 1, 1) +} + +.q-field--outlined.q-field--readonly .q-field__control:before { + border-style: dashed +} + +.q-field--standard .q-field__control:before { + border-bottom: 1px solid rgba(0, 0, 0, 0.24); + transition : border-color 0.36s cubic-bezier(0.4, 0, 0.2, 1) +} + +.q-field--standard .q-field__control:hover:before { + border-color: #000 +} + +.q-field--standard .q-field__control:after { + height : 2px; + top : auto; + border-bottom-left-radius : inherit; + border-bottom-right-radius: inherit; + transform-origin : center bottom; + transform : scale3d(0, 1, 1); + background : currentColor; + transition : transform 0.36s cubic-bezier(0.4, 0, 0.2, 1) +} + +.q-field--standard.q-field--highlighted .q-field__control:after { + transform: scale3d(1, 1, 1) +} + +.q-field--standard.q-field--readonly .q-field__control:before { + border-bottom-style: dashed +} + +.q-field--dark .q-field__control:before { + border-color: hsla(0, 0%, 100%, 0.6) +} + +.q-field--dark .q-field__control:hover:before { + border-color: #fff +} + +.q-field--dark .q-field__input, +.q-field--dark .q-field__native, +.q-field--dark .q-field__prefix, +.q-field--dark .q-field__suffix { + color: #fff +} + +.q-field--dark .q-field__bottom, +.q-field--dark .q-field__marginal, +.q-field--dark:not(.q-field--highlighted) .q-field__label { + color: hsla(0, 0%, 100%, 0.7) +} + +.q-field--standout .q-field__control { + padding : 0 12px; + background : rgba(0, 0, 0, 0.05); + border-radius: 4px; + transition : box-shadow 0.36s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.36s cubic-bezier(0.4, 0, 0.2, 1) +} + +.q-field--standout .q-field__control:before { + background: rgba(0, 0, 0, 0.07); + opacity : 0; + transition: opacity 0.36s cubic-bezier(0.4, 0, 0.2, 1), background 0.36s cubic-bezier(0.4, 0, 0.2, 1) +} + +.q-field--standout .q-field__control:hover:before { + opacity: 1 +} + +.q-field--standout.q-field--rounded .q-field__control { + border-radius: 28px +} + +.q-field--standout.q-field--highlighted .q-field__control { + box-shadow: 0 1px 5px rgba(0, 0, 0, 0.2), 0 2px 2px rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12); + background: #000 +} + +.q-field--standout.q-field--highlighted .q-field__append, +.q-field--standout.q-field--highlighted .q-field__input, +.q-field--standout.q-field--highlighted .q-field__native, +.q-field--standout.q-field--highlighted .q-field__prefix, +.q-field--standout.q-field--highlighted .q-field__prepend, +.q-field--standout.q-field--highlighted .q-field__suffix { + color: #fff +} + +.q-field--standout.q-field--readonly .q-field__control:before { + opacity : 1; + background: transparent; + border : 1px dashed rgba(0, 0, 0, 0.24) +} + +.q-field--standout.q-field--dark .q-field__control, +.q-field--standout.q-field--dark .q-field__control:before { + background: hsla(0, 0%, 100%, 0.07) +} + +.q-field--standout.q-field--dark.q-field--highlighted .q-field__control { + background: #fff +} + +.q-field--standout.q-field--dark.q-field--highlighted .q-field__append, +.q-field--standout.q-field--dark.q-field--highlighted .q-field__input, +.q-field--standout.q-field--dark.q-field--highlighted .q-field__native, +.q-field--standout.q-field--dark.q-field--highlighted .q-field__prefix, +.q-field--standout.q-field--dark.q-field--highlighted .q-field__prepend, +.q-field--standout.q-field--dark.q-field--highlighted .q-field__suffix { + color: #000 +} + +.q-field--standout.q-field--dark.q-field--readonly .q-field__control:before { + border-color: hsla(0, 0%, 100%, 0.24) +} + +.q-field--labeled .q-field__native, +.q-field--labeled .q-field__prefix, +.q-field--labeled .q-field__suffix { + line-height : 24px; + padding-top : 24px; + padding-bottom: 8px +} + +.q-field--labeled .q-field__shadow { + top: 0 +} + +.q-field--labeled:not(.q-field--float) .q-field__prefix, +.q-field--labeled:not(.q-field--float) .q-field__suffix { + opacity: 0 +} + +.q-field--labeled:not(.q-field--float) .q-field__input:-ms-input-placeholder, +.q-field--labeled:not(.q-field--float) .q-field__native:-ms-input-placeholder { + color: transparent !important +} + +.q-field--labeled:not(.q-field--float) .q-field__input::-moz-placeholder, +.q-field--labeled:not(.q-field--float) .q-field__native::-moz-placeholder { + color: transparent +} + +.q-field--labeled:not(.q-field--float) .q-field__input:-ms-input-placeholder, +.q-field--labeled:not(.q-field--float) .q-field__native:-ms-input-placeholder { + color: transparent +} + +.q-field--labeled:not(.q-field--float) .q-field__input::placeholder, +.q-field--labeled:not(.q-field--float) .q-field__native::placeholder { + color: transparent +} + +.q-field--labeled.q-field--dense .q-field__native, +.q-field--labeled.q-field--dense .q-field__prefix, +.q-field--labeled.q-field--dense .q-field__suffix { + padding-top : 14px; + padding-bottom: 2px +} + +.q-field--dense .q-field__shadow { + top: 0 +} + +.q-field--dense .q-field__control, +.q-field--dense .q-field__marginal { + height: 40px +} + +.q-field--dense .q-field__bottom { + font-size: 11px +} + +.q-field--dense .q-field__label { + font-size: 14px; + top : 10px +} + +.q-field--dense .q-field__before, +.q-field--dense .q-field__prepend { + padding-right: 6px +} + +.q-field--dense .q-field__after, +.q-field--dense .q-field__append { + padding-left: 6px +} + +.q-field--dense .q-field__append+.q-field__append { + padding-left: 2px +} + +.q-field--dense .q-field__marginal .q-avatar { + font-size: 24px +} + +.q-field--dense.q-field--float .q-field__label { + transform: translateY(-30%) scale(0.75) +} + +.q-field--dense .q-field__input:-webkit-autofill+.q-field__label, +.q-field--dense .q-field__native:-webkit-autofill+.q-field__label { + transform: translateY(-30%) scale(0.75) +} + +.q-field--dense .q-field__input[type=number]:invalid+.q-field__label, +.q-field--dense .q-field__native[type=number]:invalid+.q-field__label { + transform: translateY(-30%) scale(0.75) +} + +.q-field--borderless.q-field--dense .q-field__control, +.q-field--borderless .q-field__bottom, +.q-field--standard.q-field--dense .q-field__control, +.q-field--standard .q-field__bottom { + padding-left : 0; + padding-right: 0 +} + +.q-field--error .q-field__label { + -webkit-animation: q-field-label 0.36s; + animation : q-field-label 0.36s +} + +.q-field--error .q-field__bottom { + color: #c10015; + color: var(--q-color-negative) +} + +.q-field__focusable-action { + opacity : 0.6; + cursor : pointer; + outline : 0 !important; + border : 0; + color : inherit; + background: transparent; + padding : 0 +} + +.q-field__focusable-action:focus, +.q-field__focusable-action:hover { + opacity: 1 +} + +.q-field--auto-height .q-field__control { + height: auto +} + +.q-field--auto-height .q-field__control, +.q-field--auto-height .q-field__native { + min-height: 56px +} + +.q-field--auto-height .q-field__native { + align-items: center +} + +.q-field--auto-height .q-field__control-container { + padding-top: 0 +} + +.q-field--auto-height .q-field__native, +.q-field--auto-height .q-field__prefix, +.q-field--auto-height .q-field__suffix { + line-height: 18px +} + +.q-field--auto-height.q-field--labeled .q-field__control-container { + padding-top: 24px +} + +.q-field--auto-height.q-field--labeled .q-field__shadow { + top: 24px +} + +.q-field--auto-height.q-field--labeled .q-field__native, +.q-field--auto-height.q-field--labeled .q-field__prefix, +.q-field--auto-height.q-field--labeled .q-field__suffix { + padding-top: 0 +} + +.q-field--auto-height.q-field--labeled .q-field__native { + min-height: 24px +} + +.q-field--auto-height.q-field--dense .q-field__control, +.q-field--auto-height.q-field--dense .q-field__native { + min-height: 40px +} + +.q-field--auto-height.q-field--dense.q-field--labeled .q-field__control-container { + padding-top: 14px +} + +.q-field--auto-height.q-field--dense.q-field--labeled .q-field__shadow { + top: 14px +} + +.q-field--auto-height.q-field--dense.q-field--labeled .q-field__native { + min-height: 24px +} + +.q-field--square .q-field__control { + border-radius: 0 !important +} + +.q-transition--field-message-enter-active, +.q-transition--field-message-leave-active { + transition: transform 0.6s cubic-bezier(0.86, 0, 0.07, 1), opacity 0.6s cubic-bezier(0.86, 0, 0.07, 1) +} + +.q-transition--field-message-enter, +.q-transition--field-message-leave-to { + opacity : 0; + transform: translateY(-10px) +} + +.q-transition--field-message-leave, +.q-transition--field-message-leave-active { + position: absolute +} + +.q-file .q-field__native { + word-break: break-all +} + +.q-file .q-field__input { + opacity: 0 !important +} + +.q-file .q-field__input::-webkit-file-upload-button { + cursor: pointer +} + +.q-file__filler { + visibility: hidden; + width : 100%; + border : none; + padding : 0 +} + +.q-file__dnd { + outline : 1px dashed currentColor; + outline-offset: -4px +} + +.q-form, +.q-img { + position: relative +} + +.q-img { + width : 100%; + display : inline-block; + vertical-align: middle +} + +.q-img__loading .q-spinner { + font-size: 50px +} + +.q-img__image { + border-radius : inherit; + background-repeat: no-repeat +} + +.q-img__content { + overflow : hidden; + border-radius: inherit +} + +.q-img__content>div { + position : absolute; + padding : 16px; + color : #fff; + background: rgba(0, 0, 0, 0.47) +} + +.q-img--menu .q-img__image { + pointer-events: none +} + +.q-img--menu .q-img__image>img { + pointer-events: all; + opacity : 0 +} + +.q-img--menu .q-img__content { + pointer-events: none +} + +.q-img--menu .q-img__content>div { + pointer-events: all +} + +.q-inner-loading { + background: hsla(0, 0%, 100%, 0.6) +} + +.q-inner-loading--dark { + background: rgba(0, 0, 0, 0.4) +} + +.q-inner-loading__label { + margin-top: 8px +} + +.q-textarea .q-field__control { + min-height: 56px; + height : auto +} + +.q-textarea .q-field__control-container { + padding-top : 2px; + padding-bottom: 2px +} + +.q-textarea .q-field__shadow { + top : 2px; + bottom: 2px +} + +.q-textarea .q-field__native, +.q-textarea .q-field__prefix, +.q-textarea .q-field__suffix { + line-height: 18px +} + +.q-textarea .q-field__native { + resize : vertical; + padding-top: 17px; + min-height : 52px +} + +.q-textarea.q-field--labeled .q-field__control-container { + padding-top: 26px +} + +.q-textarea.q-field--labeled .q-field__shadow { + top: 26px +} + +.q-textarea.q-field--labeled .q-field__native, +.q-textarea.q-field--labeled .q-field__prefix, +.q-textarea.q-field--labeled .q-field__suffix { + padding-top: 0 +} + +.q-textarea.q-field--labeled .q-field__native { + min-height : 26px; + padding-top: 1px +} + +.q-textarea--autogrow .q-field__native { + resize: none +} + +.q-textarea.q-field--dense .q-field__control, +.q-textarea.q-field--dense .q-field__native { + min-height: 36px +} + +.q-textarea.q-field--dense .q-field__native { + padding-top: 9px +} + +.q-textarea.q-field--dense.q-field--labeled .q-field__control-container { + padding-top: 14px +} + +.q-textarea.q-field--dense.q-field--labeled .q-field__shadow { + top: 14px +} + +.q-textarea.q-field--dense.q-field--labeled .q-field__native { + min-height : 24px; + padding-top: 3px +} + +.q-textarea.q-field--dense.q-field--labeled .q-field__prefix, +.q-textarea.q-field--dense.q-field--labeled .q-field__suffix { + padding-top: 2px +} + +.q-textarea.disabled .q-field__native, +body.mobile .q-textarea .q-field__native { + resize: none +} + +.q-intersection { + position: relative +} + +.q-item { + min-height: 48px; + padding : 8px 16px; + color : inherit; + transition: color 0.3s, background-color 0.3s +} + +.q-item__section--side { + color : #757575; + align-items : flex-start; + padding-right: 16px; + width : auto; + min-width : 0; + max-width : 100% +} + +.q-item__section--side>.q-icon { + font-size: 24px +} + +.q-item__section--side>.q-avatar { + font-size: 40px +} + +.q-item__section--avatar { + color : inherit; + min-width: 56px +} + +.q-item__section--thumbnail img { + width : 100px; + height: 56px +} + +.q-item__section--nowrap { + white-space: nowrap +} + +.q-item>.q-focus-helper+.q-item__section--thumbnail, +.q-item>.q-item__section--thumbnail:first-child { + margin-left: -16px +} + +.q-item>.q-item__section--thumbnail:last-of-type { + margin-right: -16px +} + +.q-item__label { + line-height: 1.2em !important; + max-width : 100% +} + +.q-item__label--overline { + color: rgba(0, 0, 0, 0.7) +} + +.q-item__label--caption { + color: rgba(0, 0, 0, 0.54) +} + +.q-item__label--header { + color : #757575; + padding : 16px; + font-size : 0.875rem; + line-height : 1.25rem; + letter-spacing: 0.01786em +} + +.q-list--padding .q-item__label--header, +.q-separator--spaced+.q-item__label--header { + padding-top: 8px +} + +.q-item__label+.q-item__label { + margin-top: 4px +} + +.q-item__section--main { + width : auto; + min-width: 0; + max-width: 100%; + flex : 10000 1 0% +} + +.q-item__section--main+.q-item__section--main { + margin-left: 8px +} + +.q-item__section--main~.q-item__section--side { + align-items : flex-end; + padding-right: 0; + padding-left : 16px +} + +.q-item__section--main.q-item__section--thumbnail { + margin-left : 0; + margin-right: -16px +} + +.q-list--bordered { + border: 1px solid rgba(0, 0, 0, 0.12) +} + +.q-list--separator>.q-item-type+.q-item-type, +.q-list--separator>.q-virtual-scroll__content>.q-item-type+.q-item-type { + border-top: 1px solid rgba(0, 0, 0, 0.12) +} + +.q-list--padding { + padding: 8px 0 +} + +.q-item--dense, +.q-list--dense>.q-item { + min-height: 32px; + padding : 2px 16px +} + +.q-list--dark.q-list--separator>.q-item-type+.q-item-type, +.q-list--dark.q-list--separator>.q-virtual-scroll__content>.q-item-type+.q-item-type { + border-top-color: hsla(0, 0%, 100%, 0.28) +} + +.q-item--dark, +.q-list--dark { + color : #fff; + border-color: hsla(0, 0%, 100%, 0.28) +} + +.q-item--dark .q-item__section--side:not(.q-item__section--avatar), +.q-list--dark .q-item__section--side:not(.q-item__section--avatar) { + color: hsla(0, 0%, 100%, 0.7) +} + +.q-item--dark .q-item__label--header, +.q-list--dark .q-item__label--header { + color: hsla(0, 0%, 100%, 0.64) +} + +.q-item--dark .q-item__label--caption, +.q-item--dark .q-item__label--overline, +.q-list--dark .q-item__label--caption, +.q-list--dark .q-item__label--overline { + color: hsla(0, 0%, 100%, 0.8) +} + +.q-item { + position: relative +} + +.q-item--active, +.q-item.q-router-link--active { + color: #1976d2; + color: var(--q-color-primary) +} + +.q-knob { + font-size: 48px +} + +.q-knob--editable { + cursor : pointer; + outline: 0 +} + +.q-knob--editable:before { + content : ""; + position : absolute; + top : 0; + right : 0; + bottom : 0; + left : 0; + border-radius: 50%; + box-shadow : none; + transition : box-shadow 0.24s ease-in-out +} + +.q-knob--editable:focus:before { + box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px rgba(0, 0, 0, 0.14), 0 1px 10px rgba(0, 0, 0, 0.12) +} + +.q-layout { + width: 100% +} + +.q-layout-container { + position: relative; + width : 100%; + height : 100% +} + +.q-layout-container .q-layout { + min-height: 100% +} + +.q-layout-container>div { + transform: translate3d(0, 0, 0) +} + +.q-layout-container>div>div { + min-height: 0; + max-height: 100% +} + +.q-layout__shadow { + width: 100% +} + +.q-layout__shadow:after { + content : ""; + position : absolute; + top : 0; + right : 0; + bottom : 0; + left : 0; + box-shadow: 0 0 10px 2px rgba(0, 0, 0, 0.2), 0 0px 10px rgba(0, 0, 0, 0.24) +} + +.q-layout__section--marginal { + background-color: #1976d2; + background-color: var(--q-color-primary); + color : #fff +} + +.q-header--hidden { + transform: translateY(-110%) +} + +.q-header--bordered { + border-bottom: 1px solid rgba(0, 0, 0, 0.12) +} + +.q-header .q-layout__shadow { + bottom: -10px +} + +.q-header .q-layout__shadow:after { + bottom: 10px +} + +.q-footer--hidden { + transform: translateY(110%) +} + +.q-footer--bordered { + border-top: 1px solid rgba(0, 0, 0, 0.12) +} + +.q-footer .q-layout__shadow { + top: -10px +} + +.q-footer .q-layout__shadow:after { + top: 10px +} + +.q-footer, +.q-header { + z-index: 2000 +} + +.q-drawer { + position : absolute; + top : 0; + bottom : 0; + background: #fff; + z-index : 1000 +} + +.q-drawer--on-top { + z-index: 3000 +} + +.q-drawer--left { + left : 0; + transform: translateX(-100%) +} + +.q-drawer--left.q-drawer--bordered { + border-right: 1px solid rgba(0, 0, 0, 0.12) +} + +.q-drawer--left .q-layout__shadow { + left : 10px; + right: -10px +} + +.q-drawer--left .q-layout__shadow:after { + right: 10px +} + +.q-drawer--right { + right : 0; + transform: translateX(100%) +} + +.q-drawer--right.q-drawer--bordered { + border-left: 1px solid rgba(0, 0, 0, 0.12) +} + +.q-drawer--right .q-layout__shadow { + left: -10px +} + +.q-drawer--right .q-layout__shadow:after { + left: 10px +} + +.q-drawer-container:not(.q-drawer--mini-animate) .q-drawer--mini { + padding: 0 !important +} + +.q-drawer-container:not(.q-drawer--mini-animate) .q-drawer--mini .q-item, +.q-drawer-container:not(.q-drawer--mini-animate) .q-drawer--mini .q-item__section { + text-align : center; + justify-content: center; + padding-left : 0; + padding-right : 0; + min-width : 0 +} + +.q-drawer--mini .q-expansion-item__content, +.q-drawer--mini .q-mini-drawer-hide, +.q-drawer-container:not(.q-drawer--mini-animate) .q-drawer--mini .q-item__label, +.q-drawer-container:not(.q-drawer--mini-animate) .q-drawer--mini .q-item__section--main, +.q-drawer-container:not(.q-drawer--mini-animate) .q-drawer--mini .q-item__section--side~.q-item__section--side { + display: none +} + +.q-drawer--mini-animate .q-drawer__content { + overflow-x : hidden; + white-space: nowrap +} + +.q-drawer--mobile .q-mini-drawer-hide, +.q-drawer--mobile .q-mini-drawer-only, +.q-drawer--standard .q-mini-drawer-only { + display: none +} + +.q-drawer__backdrop { + z-index : 2999 !important; + will-change: background-color +} + +.q-drawer__opener { + z-index : 2001; + height : 100%; + width : 15px; + -webkit-user-select: none; + -moz-user-select : none; + -ms-user-select : none; + user-select : none +} + +.q-footer, +.q-header, +.q-layout, +.q-page { + position: relative +} + +.q-page-sticky--shrink { + pointer-events: none +} + +.q-page-sticky--shrink>div { + display : inline-block; + pointer-events: auto +} + +body.q-ios-padding .q-layout--standard .q-drawer--top-padding .q-drawer__content, +body.q-ios-padding .q-layout--standard .q-header>.q-tabs:first-child .q-tabs-head, +body.q-ios-padding .q-layout--standard .q-header>.q-toolbar:first-child { + padding-top: 20px; + min-height : 70px; + padding-top: env(safe-area-inset-top); + min-height : calc(env(safe-area-inset-top) + 50px) +} + +body.q-ios-padding .q-layout--standard .q-drawer--top-padding .q-drawer__content, +body.q-ios-padding .q-layout--standard .q-footer>.q-tabs:last-child .q-tabs-head, +body.q-ios-padding .q-layout--standard .q-footer>.q-toolbar:last-child { + padding-bottom: env(safe-area-inset-bottom); + min-height : calc(env(safe-area-inset-bottom) + 50px) +} + +.q-body--layout-animate .q-drawer__backdrop { + transition: background-color 0.12s !important +} + +.q-body--layout-animate .q-drawer { + transition: transform 0.12s, width 0.12s, top 0.12s, bottom 0.12s !important +} + +.q-body--layout-animate .q-layout__section--marginal { + transition: transform 0.12s, left 0.12s, right 0.12s !important +} + +.q-body--layout-animate .q-page-container { + transition: padding-top 0.12s, padding-right 0.12s, padding-bottom 0.12s, padding-left 0.12s !important +} + +.q-body--layout-animate .q-page-sticky { + transition: transform 0.12s, left 0.12s, right 0.12s, top 0.12s, bottom 0.12s !important +} + +body:not(.q-body--layout-animate) .q-layout--prevent-focus { + visibility: hidden +} + +.q-body--drawer-toggle { + overflow-x: hidden !important +} + +@media (max-width:599.98px) { + .q-layout-padding { + padding: 8px + } +} + +@media (min-width:600px) and (max-width:1439.98px) { + .q-layout-padding { + padding: 16px + } +} + +@media (min-width:1440px) { + .q-layout-padding { + padding: 24px + } +} + +body.body--dark .q-drawer, +body.body--dark .q-footer, +body.body--dark .q-header { + border-color: hsla(0, 0%, 100%, 0.28) +} + +body.platform-ios .q-layout--containerized { + position: unset !important +} + +.q-linear-progress { + position : relative; + width : 100%; + overflow : hidden; + font-size: 4px; + height : 1em; + color : #1976d2; + color : var(--q-color-primary); + transform: scale3d(1, 1, 1) +} + +.q-linear-progress__model, +.q-linear-progress__track { + transform-origin: 0 0 +} + +.q-linear-progress__model--with-transition, +.q-linear-progress__track--with-transition { + transition: transform 0.3s +} + +.q-linear-progress--reverse .q-linear-progress__model, +.q-linear-progress--reverse .q-linear-progress__track { + transform-origin: 0 100% +} + +.q-linear-progress__model--determinate { + background: currentColor +} + +.q-linear-progress__model--indeterminate, +.q-linear-progress__model--query { + transition: none +} + +.q-linear-progress__model--indeterminate:after, +.q-linear-progress__model--indeterminate:before, +.q-linear-progress__model--query:after, +.q-linear-progress__model--query:before { + background : currentColor; + content : ""; + position : absolute; + top : 0; + right : 0; + bottom : 0; + left : 0; + transform-origin: 0 0 +} + +.q-linear-progress__model--indeterminate:before, +.q-linear-progress__model--query:before { + -webkit-animation: q-linear-progress--indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite; + animation : q-linear-progress--indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite +} + +.q-linear-progress__model--indeterminate:after, +.q-linear-progress__model--query:after { + transform : translate3d(-101%, 0, 0) scale3d(1, 1, 1); + -webkit-animation : q-linear-progress--indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite; + animation : q-linear-progress--indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite; + -webkit-animation-delay: 1.15s; + animation-delay : 1.15s +} + +.q-linear-progress__track { + opacity: 0.4 +} + +.q-linear-progress__track--light { + background: rgba(0, 0, 0, 0.26) +} + +.q-linear-progress__track--dark { + background: hsla(0, 0%, 100%, 0.6) +} + +.q-linear-progress__stripe { + transition : width 0.3s; + background-image: linear-gradient(45deg, hsla(0, 0%, 100%, 0.15) 25%, hsla(0, 0%, 100%, 0) 0, hsla(0, 0%, 100%, 0) 50%, hsla(0, 0%, 100%, 0.15) 0, hsla(0, 0%, 100%, 0.15) 75%, hsla(0, 0%, 100%, 0) 0, hsla(0, 0%, 100%, 0)) !important; + background-size : 40px 40px !important +} + +.q-menu { + position : fixed !important; + display : inline-block; + max-width : 95vw; + box-shadow : 0 1px 5px rgba(0, 0, 0, 0.2), 0 2px 2px rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12); + background : #fff; + border-radius: 4px; + overflow-y : auto; + overflow-x : hidden; + outline : 0; + max-height : 65vh; + z-index : 6000 +} + +.q-menu--square { + border-radius: 0 +} + +.q-option-group--inline>div { + display: inline-block +} + +.q-pagination input { + text-align : center; + -moz-appearance: textfield +} + +.q-pagination input::-webkit-inner-spin-button, +.q-pagination input::-webkit-outer-spin-button { + -webkit-appearance: none; + margin : 0 +} + +.q-parallax { + position : relative; + width : 100%; + overflow : hidden; + border-radius: inherit +} + +.q-parallax__media>img, +.q-parallax__media>video { + position : absolute; + left : 50%; + bottom : 0; + min-width : 100%; + min-height : 100%; + will-change: transform; + display : none +} + +.q-popup-edit { + padding: 8px 16px +} + +.q-popup-edit__buttons { + margin-top: 8px +} + +.q-popup-edit__buttons .q-btn+.q-btn { + margin-left: 8px +} + +.q-pull-to-refresh { + position: relative +} + +.q-pull-to-refresh__puller { + border-radius: 50%; + width : 40px; + height : 40px; + color : #1976d2; + color : var(--q-color-primary); + background : #fff; + box-shadow : 0 0 4px 0 rgba(0, 0, 0, 0.3) +} + +.q-pull-to-refresh__puller--animating { + transition: transform 0.3s, opacity 0.3s +} + +.q-radio { + vertical-align: middle +} + +.q-radio__native { + width : 1px; + height: 1px +} + +.q-radio__bg, +.q-radio__icon-container { + -webkit-user-select: none; + -moz-user-select : none; + -ms-user-select : none; + user-select : none +} + +.q-radio__bg { + top : 25%; + left : 25%; + width : 50%; + height : 50%; + -webkit-print-color-adjust: exact +} + +.q-radio__bg path { + fill: currentColor +} + +.q-radio__icon { + color : currentColor; + font-size: 0.5em +} + +.q-radio__check { + transform-origin: 50% 50%; + transform : scale3d(0, 0, 1); + transition : transform 0.22s cubic-bezier(0, 0, 0.2, 1) 0ms +} + +.q-radio__inner { + font-size : 40px; + width : 1em; + min-width : 1em; + height : 1em; + outline : 0; + border-radius: 50%; + color : rgba(0, 0, 0, 0.54) +} + +.q-radio__inner--truthy { + color: #1976d2; + color: var(--q-color-primary) +} + +.q-radio__inner--truthy .q-radio__check { + transform: scale3d(1, 1, 1) +} + +.q-radio.disabled { + opacity: 0.75 !important +} + +.q-radio--dark .q-radio__inner { + color: hsla(0, 0%, 100%, 0.7) +} + +.q-radio--dark .q-radio__inner:before { + opacity: 0.32 !important +} + +.q-radio--dark .q-radio__inner--truthy { + color: #1976d2; + color: var(--q-color-primary) +} + +.q-radio--dense .q-radio__inner { + width : 0.5em; + min-width: 0.5em; + height : 0.5em +} + +.q-radio--dense .q-radio__bg { + left : 0; + top : 0; + width : 100%; + height: 100% +} + +.q-radio--dense .q-radio__label { + padding-left: 0.5em +} + +.q-radio--dense.reverse .q-radio__label { + padding-left : 0; + padding-right: 0.5em +} + +body.desktop .q-radio:not(.disabled) .q-radio__inner:before { + content : ""; + position : absolute; + top : 0; + right : 0; + bottom : 0; + left : 0; + border-radius: 50%; + background : currentColor; + opacity : 0.12; + transform : scale3d(0, 0, 1); + transition : transform 0.22s cubic-bezier(0, 0, 0.2, 1) 0ms +} + +body.desktop .q-radio:not(.disabled):focus .q-radio__inner:before, +body.desktop .q-radio:not(.disabled):hover .q-radio__inner:before { + transform: scale3d(1, 1, 1) +} + +body.desktop .q-radio--dense:not(.disabled):focus .q-radio__inner:before, +body.desktop .q-radio--dense:not(.disabled):hover .q-radio__inner:before { + transform: scale3d(1.5, 1.5, 1) +} + +.q-rating { + color : #ffeb3b; + vertical-align: middle +} + +.q-rating__icon-container { + height : 1em; + outline: 0 +} + +.q-rating__icon-container+.q-rating__icon-container { + margin-left: 2px +} + +.q-rating__icon { + color : currentColor; + text-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24); + position : relative; + opacity : 0.4; + transition : transform 0.2s ease-in, opacity 0.2s ease-in +} + +.q-rating__icon--hovered { + transform: scale(1.3) +} + +.q-rating__icon--active { + opacity: 1 +} + +.q-rating__icon--exselected { + opacity: 0.7 +} + +.q-rating--no-dimming .q-rating__icon { + opacity: 1 +} + +.q-rating--editable .q-rating__icon-container { + cursor: pointer +} + +.q-responsive { + position : relative; + max-width : 100%; + max-height: 100% +} + +.q-responsive__filler { + width : inherit; + max-width : inherit; + height : inherit; + max-height: inherit +} + +.q-responsive__content { + border-radius: inherit +} + +.q-responsive__content>* { + width : 100% !important; + height : 100% !important; + max-height: 100% !important; + max-width : 100% !important +} + +.q-scrollarea { + position: relative; + contain : strict +} + +.q-scrollarea__bar, +.q-scrollarea__thumb { + opacity : 0.2; + transition : opacity 0.3s; + will-change: opacity; + cursor : -webkit-grab; + cursor : grab +} + +.q-scrollarea__bar--v, +.q-scrollarea__thumb--v { + right: 0; + width: 10px +} + +.q-scrollarea__bar--h, +.q-scrollarea__thumb--h { + bottom: 0; + height: 10px +} + +.q-scrollarea__bar--invisible, +.q-scrollarea__thumb--invisible { + opacity : 0 !important; + pointer-events: none +} + +.q-scrollarea__thumb { + background: #000 +} + +.q-scrollarea__thumb:hover { + opacity: 0.3 +} + +.q-scrollarea__thumb:active { + opacity: 0.5 +} + +.q-scrollarea__content { + min-height: 100%; + min-width : 100% +} + +.q-scrollarea--dark .q-scrollarea__thumb { + background: #fff +} + +.q-select--without-input .q-field__control { + cursor: pointer +} + +.q-select--with-input .q-field__control { + cursor: text +} + +.q-select .q-field__input { + min-width: 50px !important; + cursor : text +} + +.q-select .q-field__input--padding { + padding-left: 4px +} + +.q-select__autocomplete-input, +.q-select__focus-target { + position: absolute; + outline : 0 !important; + width : 0; + height : 0; + padding : 0; + border : 0; + opacity : 0 +} + +.q-select__dropdown-icon { + cursor : pointer; + transition: transform 0.28s +} + +.q-select.q-field--readonly .q-field__control, +.q-select.q-field--readonly .q-select__dropdown-icon { + cursor: default +} + +.q-select__dialog { + width : 90vw !important; + max-width : 90vw !important; + max-height : calc(100vh - 70px) !important; + background : #fff; + display : flex; + flex-direction: column +} + +.q-select__dialog>.scroll { + position : relative; + background: inherit +} + +body.mobile:not(.native-mobile) .q-select__dialog { + max-height: calc(100vh - 108px) !important +} + +body.platform-android.native-mobile .q-dialog__inner--top .q-select__dialog { + max-height: calc(100vh - 24px) !important +} + +body.platform-android:not(.native-mobile) .q-dialog__inner--top .q-select__dialog { + max-height: calc(100vh - 80px) !important +} + +body.platform-ios.native-mobile .q-dialog__inner--top>div { + border-radius: 4px +} + +body.platform-ios.native-mobile .q-dialog__inner--top .q-select__dialog--focused { + max-height: 47vh !important +} + +body.platform-ios:not(.native-mobile) .q-dialog__inner--top .q-select__dialog--focused { + max-height: 50vh !important +} + +.q-separator { + border : 0; + background : rgba(0, 0, 0, 0.12); + margin : 0; + transition : background 0.3s, opacity 0.3s; + flex-shrink: 0 +} + +.q-separator--dark { + background: hsla(0, 0%, 100%, 0.28) +} + +.q-separator--horizontal { + display: block; + height : 1px +} + +.q-separator--horizontal-inset { + margin-left : 16px; + margin-right: 16px +} + +.q-separator--horizontal-item-inset { + margin-left : 72px; + margin-right: 0 +} + +.q-separator--horizontal-item-thumbnail-inset { + margin-left : 116px; + margin-right: 0 +} + +.q-separator--vertical { + width : 1px; + height : auto; + align-self: stretch +} + +.q-separator--vertical-inset { + margin-top : 8px; + margin-bottom: 8px +} + +.q-skeleton { + background : rgba(0, 0, 0, 0.12); + border-radius: 4px; + box-sizing : border-box +} + +.q-skeleton--anim { + cursor: wait +} + +.q-skeleton:before { + content: "\00a0" +} + +.q-skeleton--type-text { + transform: scale(1, 0.5) +} + +.q-skeleton--type-circle, +.q-skeleton--type-QAvatar { + height : 48px; + width : 48px; + border-radius: 50% +} + +.q-skeleton--type-QBtn { + width : 90px; + height: 36px +} + +.q-skeleton--type-QBadge { + width : 70px; + height: 16px +} + +.q-skeleton--type-QChip { + width : 90px; + height : 28px; + border-radius: 16px +} + +.q-skeleton--type-QToolbar { + height: 50px +} + +.q-skeleton--type-QCheckbox, +.q-skeleton--type-QRadio { + width : 40px; + height : 40px; + border-radius: 50% +} + +.q-skeleton--type-QToggle { + width : 56px; + height : 40px; + border-radius: 7px +} + +.q-skeleton--type-QRange, +.q-skeleton--type-QSlider { + height: 40px +} + +.q-skeleton--type-QInput { + height: 56px +} + +.q-skeleton--bordered { + border: 1px solid rgba(0, 0, 0, 0.05) +} + +.q-skeleton--square { + border-radius: 0 +} + +.q-skeleton--anim-fade { + -webkit-animation: q-skeleton--fade 1.5s linear 0.5s infinite; + animation : q-skeleton--fade 1.5s linear 0.5s infinite +} + +.q-skeleton--anim-pulse { + -webkit-animation: q-skeleton--pulse 1.5s ease-in-out 0.5s infinite; + animation : q-skeleton--pulse 1.5s ease-in-out 0.5s infinite +} + +.q-skeleton--anim-pulse-x { + -webkit-animation: q-skeleton--pulse-x 1.5s ease-in-out 0.5s infinite; + animation : q-skeleton--pulse-x 1.5s ease-in-out 0.5s infinite +} + +.q-skeleton--anim-pulse-y { + -webkit-animation: q-skeleton--pulse-y 1.5s ease-in-out 0.5s infinite; + animation : q-skeleton--pulse-y 1.5s ease-in-out 0.5s infinite +} + +.q-skeleton--anim-blink, +.q-skeleton--anim-pop, +.q-skeleton--anim-wave { + position: relative; + overflow: hidden; + z-index : 1 +} + +.q-skeleton--anim-blink:after, +.q-skeleton--anim-pop:after, +.q-skeleton--anim-wave:after { + content : ""; + position: absolute; + top : 0; + right : 0; + bottom : 0; + left : 0; + z-index : 0 +} + +.q-skeleton--anim-blink:after { + background : hsla(0, 0%, 100%, 0.7); + -webkit-animation: q-skeleton--fade 1.5s linear 0.5s infinite; + animation : q-skeleton--fade 1.5s linear 0.5s infinite +} + +.q-skeleton--anim-wave:after { + background : linear-gradient(90deg, hsla(0, 0%, 100%, 0), hsla(0, 0%, 100%, 0.5), hsla(0, 0%, 100%, 0)); + -webkit-animation: q-skeleton--wave 1.5s linear 0.5s infinite; + animation : q-skeleton--wave 1.5s linear 0.5s infinite +} + +.q-skeleton--dark { + background: hsla(0, 0%, 100%, 0.05) +} + +.q-skeleton--dark.q-skeleton--bordered { + border: 1px solid hsla(0, 0%, 100%, 0.25) +} + +.q-skeleton--dark.q-skeleton--anim-wave:after { + background: linear-gradient(90deg, hsla(0, 0%, 100%, 0), hsla(0, 0%, 100%, 0.1), hsla(0, 0%, 100%, 0)) +} + +.q-skeleton--dark.q-skeleton--anim-blink:after { + background: hsla(0, 0%, 100%, 0.2) +} + +.q-slide-item { + position : relative; + background: #fff +} + +.q-slide-item__bottom, +.q-slide-item__left, +.q-slide-item__right, +.q-slide-item__top { + visibility: hidden; + font-size : 14px; + color : #fff +} + +.q-slide-item__bottom .q-icon, +.q-slide-item__left .q-icon, +.q-slide-item__right .q-icon, +.q-slide-item__top .q-icon { + font-size: 1.714em +} + +.q-slide-item__left { + background: #4caf50; + padding : 8px 16px +} + +.q-slide-item__left>div { + transform-origin: left center +} + +.q-slide-item__right { + background: #ff9800; + padding : 8px 16px +} + +.q-slide-item__right>div { + transform-origin: right center +} + +.q-slide-item__top { + background: #2196f3; + padding : 16px 8px +} + +.q-slide-item__top>div { + transform-origin: top center +} + +.q-slide-item__bottom { + background: #9c27b0; + padding : 16px 8px +} + +.q-slide-item__bottom>div { + transform-origin: bottom center +} + +.q-slide-item__content { + background : inherit; + transition : transform 0.2s ease-in; + -webkit-user-select: none; + -moz-user-select : none; + -ms-user-select : none; + user-select : none; + cursor : pointer +} + +.q-slider { + position: relative +} + +.q-slider--h { + width: 100% +} + +.q-slider--v { + height: 200px +} + +.q-slider--editable .q-slider__track-container { + cursor: -webkit-grab; + cursor: grab +} + +.q-slider__track-container { + outline: 0 +} + +.q-slider__track-container--h { + width : 100%; + padding: 12px 0 +} + +.q-slider__track-container--h .q-slider__selection { + will-change: width, left +} + +.q-slider__track-container--v { + height : 100%; + padding: 0 12px +} + +.q-slider__track-container--v .q-slider__selection { + will-change: height, top +} + +.q-slider__track { + color : #1976d2; + color : var(--q-color-primary); + background : rgba(0, 0, 0, 0.1); + border-radius: 4px; + width : inherit; + height : inherit +} + +.q-slider__inner { + background: rgba(0, 0, 0, 0.1) +} + +.q-slider__inner, +.q-slider__selection { + border-radius: inherit; + width : 100%; + height : 100% +} + +.q-slider__selection { + background: currentColor +} + +.q-slider__markers { + color : rgba(0, 0, 0, 0.3); + border-radius: inherit; + width : 100%; + height : 100% +} + +.q-slider__markers:after { + content : ""; + position : absolute; + background: currentColor +} + +.q-slider__markers--h { + background-image: repeating-linear-gradient(90deg, currentColor, currentColor 2px, hsla(0, 0%, 100%, 0) 0, hsla(0, 0%, 100%, 0)) +} + +.q-slider__markers--h:after { + height: 100%; + width : 2px; + top : 0; + right : 0 +} + +.q-slider__markers--v { + background-image: repeating-linear-gradient(180deg, currentColor, currentColor 2px, hsla(0, 0%, 100%, 0) 0, hsla(0, 0%, 100%, 0)) +} + +.q-slider__markers--v:after { + width : 100%; + height: 2px; + left : 0; + bottom: 0 +} + +.q-slider__marker-labels-container { + position : relative; + width : 100%; + height : 100%; + min-height: 24px; + min-width : 24px +} + +.q-slider__marker-labels { + position: absolute +} + +.q-slider__marker-labels--h-standard { + top: 0 +} + +.q-slider__marker-labels--h-switched { + bottom: 0 +} + +.q-slider__marker-labels--h-ltr { + transform: translateX(-50%) +} + +.q-slider__marker-labels--h-rtl { + transform: translateX(50%) +} + +.q-slider__marker-labels--v-standard { + left: 4px +} + +.q-slider__marker-labels--v-switched { + right: 4px +} + +.q-slider__marker-labels--v-ltr { + transform: translateY(-50%) +} + +.q-slider__marker-labels--v-rtl { + transform: translateY(50%) +} + +.q-slider__thumb { + z-index : 1; + outline : 0; + color : #1976d2; + color : var(--q-color-primary); + transition: transform 0.18s ease-out, fill 0.18s ease-out, stroke 0.18s ease-out +} + +.q-slider__thumb.q-slider--focus { + opacity: 1 !important +} + +.q-slider__thumb--h { + top : 50%; + will-change: left +} + +.q-slider__thumb--h-ltr { + transform: scale(1) translate(-50%, -50%) +} + +.q-slider__thumb--h-rtl { + transform: scale(1) translate(50%, -50%) +} + +.q-slider__thumb--v { + left : 50%; + will-change: top +} + +.q-slider__thumb--v-ltr { + transform: scale(1) translate(-50%, -50%) +} + +.q-slider__thumb--v-rtl { + transform: scale(1) translate(-50%, 50%) +} + +.q-slider__thumb-shape { + top : 0; + left : 0; + stroke-width: 3.5; + stroke : currentColor; + transition : transform 0.28s +} + +.q-slider__thumb-shape path { + stroke: currentColor; + fill : currentColor +} + +.q-slider__focus-ring { + border-radius : 50%; + opacity : 0; + transition : transform 266.67ms ease-out, opacity 266.67ms ease-out, background-color 266.67ms ease-out; + transition-delay: 0.14s +} + +.q-slider__pin { + opacity : 0; + white-space : nowrap; + transition : opacity 0.28s ease-out; + transition-delay: 0.14s +} + +.q-slider__pin:before { + content : ""; + width : 0; + height : 0; + position: absolute +} + +.q-slider__pin--h:before { + border-left : 6px solid transparent; + border-right: 6px solid transparent; + left : 50%; + transform : translateX(-50%) +} + +.q-slider__pin--h-standard { + bottom: 100% +} + +.q-slider__pin--h-standard:before { + bottom : 2px; + border-top: 6px solid currentColor +} + +.q-slider__pin--h-switched { + top: 100% +} + +.q-slider__pin--h-switched:before { + top : 2px; + border-bottom: 6px solid currentColor +} + +.q-slider__pin--v { + top: 0 +} + +.q-slider__pin--v:before { + top : 50%; + transform : translateY(-50%); + border-top : 6px solid transparent; + border-bottom: 6px solid transparent +} + +.q-slider__pin--v-standard { + left: 100% +} + +.q-slider__pin--v-standard:before { + left : 2px; + border-right: 6px solid currentColor +} + +.q-slider__pin--v-switched { + right: 100% +} + +.q-slider__pin--v-switched:before { + right : 2px; + border-left: 6px solid currentColor +} + +.q-slider__label { + z-index : 1; + white-space: nowrap; + position : absolute +} + +.q-slider__label--h { + left : 50%; + transform: translateX(-50%) +} + +.q-slider__label--h-standard { + bottom: 7px +} + +.q-slider__label--h-switched { + top: 7px +} + +.q-slider__label--v { + top : 50%; + transform: translateY(-50%) +} + +.q-slider__label--v-standard { + left: 7px +} + +.q-slider__label--v-switched { + right: 7px +} + +.q-slider__text-container { + min-height : 25px; + padding : 2px 8px; + border-radius: 4px; + background : currentColor; + position : relative; + text-align : center +} + +.q-slider__text { + color : #fff; + font-size: 12px +} + +.q-slider--no-value .q-slider__inner, +.q-slider--no-value .q-slider__selection, +.q-slider--no-value .q-slider__thumb { + opacity: 0 +} + +.q-slider--focus .q-slider__focus-ring, +body.desktop .q-slider.q-slider--editable .q-slider__track-container:hover .q-slider__focus-ring { + background: currentColor; + transform : scale3d(1.55, 1.55, 1); + opacity : 0.25 +} + +.q-slider--focus .q-slider__inner, +.q-slider--focus .q-slider__selection, +.q-slider--focus .q-slider__thumb, +body.desktop .q-slider.q-slider--editable .q-slider__track-container:hover .q-slider__inner, +body.desktop .q-slider.q-slider--editable .q-slider__track-container:hover .q-slider__selection, +body.desktop .q-slider.q-slider--editable .q-slider__track-container:hover .q-slider__thumb { + opacity: 1 +} + +.q-slider--inactive .q-slider__thumb--h { + transition: left 0.28s, right 0.28s +} + +.q-slider--inactive .q-slider__thumb--v { + transition: top 0.28s, bottom 0.28s +} + +.q-slider--inactive .q-slider__selection { + transition: width 0.28s, left 0.28s, right 0.28s, height 0.28s, top 0.28s, bottom 0.28s +} + +.q-slider--inactive .q-slider__text-container { + transition: transform 0.28s +} + +.q-slider--active { + cursor: -webkit-grabbing; + cursor: grabbing +} + +.q-slider--active .q-slider__thumb-shape { + transform: scale(1.5) +} + +.q-slider--active.q-slider--label .q-slider__thumb-shape, +.q-slider--active .q-slider__focus-ring { + transform: scale(0) !important +} + +.q-slider--label.q-slider--active .q-slider__pin, +.q-slider--label .q-slider--focus .q-slider__pin, +.q-slider--label.q-slider--label-always .q-slider__pin, +body.desktop .q-slider.q-slider--enabled .q-slider__track-container:hover .q-slider__pin { + opacity: 1 +} + +.q-slider--dark .q-slider__inner, +.q-slider--dark .q-slider__track { + background: hsla(0, 0%, 100%, 0.1) +} + +.q-slider--dark .q-slider__markers { + color: hsla(0, 0%, 100%, 0.3) +} + +.q-slider--dense .q-slider__track-container--h { + padding: 6px 0 +} + +.q-slider--dense .q-slider__track-container--v { + padding: 0 6px +} + +.q-space { + flex-grow: 1 !important +} + +.q-spinner { + vertical-align: middle +} + +.q-spinner-mat { + -webkit-animation: q-spin 2s linear infinite; + animation : q-spin 2s linear infinite; + transform-origin : center center +} + +.q-spinner-mat .path { + stroke-dasharray : 1, 200; + stroke-dashoffset: 0; + -webkit-animation: q-mat-dash 1.5s ease-in-out infinite; + animation : q-mat-dash 1.5s ease-in-out infinite +} + +.q-splitter__panel { + position: relative; + z-index : 0 +} + +.q-splitter__panel>.q-splitter { + width : 100%; + height: 100% +} + +.q-splitter__separator { + background-color : rgba(0, 0, 0, 0.12); + -webkit-user-select: none; + -moz-user-select : none; + -ms-user-select : none; + user-select : none; + position : relative; + z-index : 1 +} + +.q-splitter__separator-area>* { + position : absolute; + top : 50%; + left : 50%; + transform: translate(-50%, -50%) +} + +.q-splitter--dark .q-splitter__separator { + background-color: hsla(0, 0%, 100%, 0.28) +} + +.q-splitter--vertical>.q-splitter__panel { + height: 100% +} + +.q-splitter--vertical.q-splitter--active { + cursor: col-resize +} + +.q-splitter--vertical>.q-splitter__separator { + width: 1px +} + +.q-splitter--vertical>.q-splitter__separator>div { + left : -6px; + right: -6px +} + +.q-splitter--vertical.q-splitter--workable>.q-splitter__separator { + cursor: col-resize +} + +.q-splitter--horizontal>.q-splitter__panel { + width: 100% +} + +.q-splitter--horizontal.q-splitter--active { + cursor: row-resize +} + +.q-splitter--horizontal>.q-splitter__separator { + height: 1px +} + +.q-splitter--horizontal>.q-splitter__separator>div { + top : -6px; + bottom: -6px +} + +.q-splitter--horizontal.q-splitter--workable>.q-splitter__separator { + cursor: row-resize +} + +.q-splitter__after, +.q-splitter__before { + overflow: auto +} + +.q-stepper { + box-shadow : 0 1px 5px rgba(0, 0, 0, 0.2), 0 2px 2px rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12); + border-radius: 4px; + background : #fff +} + +.q-stepper__title { + font-size : 14px; + line-height : 18px; + letter-spacing: 0.1px +} + +.q-stepper__caption { + font-size : 12px; + line-height: 14px +} + +.q-stepper__dot { + contain : layout; + margin-right : 8px; + font-size : 14px; + width : 24px; + min-width : 24px; + height : 24px; + border-radius: 50%; + background : currentColor +} + +.q-stepper__dot span { + color: #fff +} + +.q-stepper__tab { + padding : 8px 24px; + font-size : 14px; + color : #9e9e9e; + flex-direction: row +} + +.q-stepper--dark .q-stepper__dot span { + color: #000 +} + +.q-stepper__tab--navigation { + -webkit-user-select: none; + -moz-user-select : none; + -ms-user-select : none; + user-select : none; + cursor : pointer +} + +.q-stepper__tab--active, +.q-stepper__tab--done { + color: #1976d2; + color: var(--q-color-primary) +} + +.q-stepper__tab--active .q-stepper__dot, +.q-stepper__tab--active .q-stepper__label, +.q-stepper__tab--done .q-stepper__dot, +.q-stepper__tab--done .q-stepper__label { + text-shadow: 0 0 0 currentColor +} + +.q-stepper__tab--disabled .q-stepper__dot { + background: rgba(0, 0, 0, 0.22) +} + +.q-stepper__tab--disabled .q-stepper__label { + color: rgba(0, 0, 0, 0.32) +} + +.q-stepper__tab--error { + color: #c10015; + color: var(--q-color-negative) +} + +.q-stepper__tab--error-with-icon .q-stepper__dot { + background: transparent !important +} + +.q-stepper__tab--error-with-icon .q-stepper__dot span { + color: currentColor +} + +.q-stepper__tab--error-with-icon .q-stepper__dot .q-icon { + font-size: 24px +} + +.q-stepper__header { + border-top-left-radius : inherit; + border-top-right-radius: inherit +} + +.q-stepper__header--border { + border-bottom: 1px solid rgba(0, 0, 0, 0.12) +} + +.q-stepper__header--standard-labels .q-stepper__tab { + min-height : 72px; + justify-content: center +} + +.q-stepper__header--standard-labels .q-stepper__tab:first-child { + justify-content: flex-start +} + +.q-stepper__header--standard-labels .q-stepper__tab:last-child { + justify-content: flex-end +} + +.q-stepper__header--standard-labels .q-stepper__tab:only-child { + justify-content: center +} + +.q-stepper__header--standard-labels .q-stepper__dot:after { + display: none +} + +.q-stepper__header--alternative-labels .q-stepper__tab { + min-height : 104px; + padding : 24px 32px; + flex-direction : column; + justify-content: flex-start +} + +.q-stepper__header--alternative-labels .q-stepper__dot { + margin-right: 0 +} + +.q-stepper__header--alternative-labels .q-stepper__label { + margin-top: 8px; + text-align: center +} + +.q-stepper__header--alternative-labels .q-stepper__label:after, +.q-stepper__header--alternative-labels .q-stepper__label:before { + display: none +} + +.q-stepper__header--contracted, +.q-stepper__header--contracted.q-stepper__header--alternative-labels .q-stepper__tab { + min-height: 72px +} + +.q-stepper__header--contracted.q-stepper__header--alternative-labels .q-stepper__tab:first-child { + align-items: flex-start +} + +.q-stepper__header--contracted.q-stepper__header--alternative-labels .q-stepper__tab:last-child { + align-items: flex-end +} + +.q-stepper__header--contracted .q-stepper__tab { + padding: 24px 0 +} + +.q-stepper__header--contracted .q-stepper__tab:first-child .q-stepper__dot { + transform: translateX(24px) +} + +.q-stepper__header--contracted .q-stepper__tab:last-child .q-stepper__dot { + transform: translateX(-24px) +} + +.q-stepper__header--contracted .q-stepper__tab:not(:last-child) .q-stepper__dot:after { + display: block !important +} + +.q-stepper__header--contracted .q-stepper__dot { + margin: 0 +} + +.q-stepper__header--contracted .q-stepper__label { + display: none +} + +.q-stepper__nav { + padding-top: 24px +} + +.q-stepper--bordered { + border: 1px solid rgba(0, 0, 0, 0.12) +} + +.q-stepper--horizontal .q-stepper__step-inner { + padding: 24px +} + +.q-stepper--horizontal .q-stepper__tab:first-child { + border-top-left-radius: inherit +} + +.q-stepper--horizontal .q-stepper__tab:last-child { + border-top-right-radius: inherit +} + +.q-stepper--horizontal .q-stepper__tab:first-child .q-stepper__dot:before, +.q-stepper--horizontal .q-stepper__tab:last-child .q-stepper__dot:after, +.q-stepper--horizontal .q-stepper__tab:last-child .q-stepper__label:after { + display: none +} + +.q-stepper--horizontal .q-stepper__tab { + overflow: hidden +} + +.q-stepper--horizontal .q-stepper__line { + contain: layout +} + +.q-stepper--horizontal .q-stepper__line:after, +.q-stepper--horizontal .q-stepper__line:before { + position : absolute; + top : 50%; + height : 1px; + width : 100vw; + background: rgba(0, 0, 0, 0.12) +} + +.q-stepper--horizontal .q-stepper__dot:after, +.q-stepper--horizontal .q-stepper__label:after { + content : ""; + left : 100%; + margin-left: 8px +} + +.q-stepper--horizontal .q-stepper__dot:before { + content : ""; + right : 100%; + margin-right: 8px +} + +.q-stepper--horizontal>.q-stepper__nav { + padding: 0 24px 24px +} + +.q-stepper--vertical { + padding: 16px 0 +} + +.q-stepper--vertical .q-stepper__tab { + padding: 12px 24px +} + +.q-stepper--vertical .q-stepper__title { + line-height: 18px +} + +.q-stepper--vertical .q-stepper__step-inner { + padding: 0 24px 32px 60px +} + +.q-stepper--vertical>.q-stepper__nav { + padding: 24px 24px 0 +} + +.q-stepper--vertical .q-stepper__step { + overflow: hidden +} + +.q-stepper--vertical .q-stepper__dot { + margin-right: 12px +} + +.q-stepper--vertical .q-stepper__dot:after, +.q-stepper--vertical .q-stepper__dot:before { + content : ""; + position : absolute; + left : 50%; + width : 1px; + height : 99999px; + background: rgba(0, 0, 0, 0.12) +} + +.q-stepper--vertical .q-stepper__dot:before { + bottom : 100%; + margin-bottom: 8px +} + +.q-stepper--vertical .q-stepper__dot:after { + top : 100%; + margin-top: 8px +} + +.q-stepper--vertical .q-stepper__step:first-child .q-stepper__dot:before, +.q-stepper--vertical .q-stepper__step:last-child .q-stepper__dot:after { + display: none +} + +.q-stepper--vertical .q-stepper__step:last-child .q-stepper__step-inner { + padding-bottom: 8px +} + +.q-stepper--dark.q-stepper--bordered, +.q-stepper--dark .q-stepper__header--border { + border-color: hsla(0, 0%, 100%, 0.28) +} + +.q-stepper--dark.q-stepper--horizontal .q-stepper__line:after, +.q-stepper--dark.q-stepper--horizontal .q-stepper__line:before, +.q-stepper--dark.q-stepper--vertical .q-stepper__dot:after, +.q-stepper--dark.q-stepper--vertical .q-stepper__dot:before { + background: hsla(0, 0%, 100%, 0.28) +} + +.q-stepper--dark .q-stepper__tab--disabled { + color: hsla(0, 0%, 100%, 0.28) +} + +.q-stepper--dark .q-stepper__tab--disabled .q-stepper__dot { + background: hsla(0, 0%, 100%, 0.28) +} + +.q-stepper--dark .q-stepper__tab--disabled .q-stepper__label { + color: hsla(0, 0%, 100%, 0.54) +} + +.q-tab-panels { + background: #fff +} + +.q-tab-panel { + padding: 16px +} + +.q-markup-table { + overflow : auto; + background: #fff +} + +.q-table { + width : 100%; + max-width : 100%; + border-collapse: separate; + border-spacing : 0 +} + +.q-table tbody td, +.q-table thead tr { + height: 48px +} + +.q-table th { + font-weight : 500; + font-size : 12px; + -webkit-user-select: none; + -moz-user-select : none; + -ms-user-select : none; + user-select : none +} + +.q-table th.sortable { + cursor: pointer +} + +.q-table th.sortable:hover .q-table__sort-icon { + opacity: 0.64 +} + +.q-table th.sorted .q-table__sort-icon { + opacity: 0.86 !important +} + +.q-table th.sort-desc .q-table__sort-icon { + transform: rotate(180deg) +} + +.q-table td, +.q-table th { + padding : 7px 16px; + background-color: inherit +} + +.q-table td, +.q-table th, +.q-table thead { + border-style: solid; + border-width: 0 +} + +.q-table tbody td { + font-size: 13px +} + +.q-table__card { + color : #000; + background-color: #fff; + border-radius : 4px; + box-shadow : 0 1px 5px rgba(0, 0, 0, 0.2), 0 2px 2px rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12) +} + +.q-table__card .q-table__middle { + flex: 1 1 auto +} + +.q-table__card .q-table__bottom, +.q-table__card .q-table__top { + flex: 0 0 auto +} + +.q-table__container { + position: relative +} + +.q-table__container.fullscreen { + max-height: 100% +} + +.q-table__container>div:first-child { + border-top-left-radius : inherit; + border-top-right-radius: inherit +} + +.q-table__container>div:last-child { + border-bottom-left-radius : inherit; + border-bottom-right-radius: inherit +} + +.q-table__container>.q-inner-loading { + border-radius: inherit !important +} + +.q-table__top { + padding: 12px 16px +} + +.q-table__top .q-table__control { + flex-wrap: wrap +} + +.q-table__title { + font-size : 20px; + letter-spacing: 0.005em; + font-weight : 400 +} + +.q-table__separator { + min-width: 8px !important +} + +.q-table__progress { + height: 0 !important +} + +.q-table__progress th { + padding: 0 !important; + border : 0 !important +} + +.q-table__progress .q-linear-progress { + position: absolute; + bottom : 0 +} + +.q-table__middle { + max-width: 100% +} + +.q-table__bottom { + min-height: 50px; + padding : 4px 14px 4px 16px; + font-size : 12px +} + +.q-table__bottom .q-table__control { + min-height: 24px +} + +.q-table__bottom-nodata-icon { + font-size : 200%; + margin-right: 8px +} + +.q-table__bottom-item { + margin-right: 16px +} + +.q-table__control { + display : flex; + align-items: center +} + +.q-table__sort-icon { + transition: transform 0.3s cubic-bezier(0.25, 0.8, 0.5, 1); + opacity : 0; + font-size : 120% +} + +.q-table__sort-icon--center, +.q-table__sort-icon--left { + margin-left: 4px +} + +.q-table__sort-icon--right { + margin-right: 4px +} + +.q-table--col-auto-width { + width: 1px +} + +.q-table--flat { + box-shadow: none +} + +.q-table--bordered { + border: 1px solid rgba(0, 0, 0, 0.12) +} + +.q-table--square { + border-radius: 0 +} + +.q-table__linear-progress { + height: 2px +} + +.q-table--no-wrap td, +.q-table--no-wrap th { + white-space: nowrap +} + +.q-table--grid { + box-shadow : none; + border-radius: 4px +} + +.q-table--grid .q-table__top { + padding-bottom: 4px +} + +.q-table--grid .q-table__middle { + min-height : 2px; + margin-bottom: 4px +} + +.q-table--grid .q-table__middle thead, +.q-table--grid .q-table__middle thead th { + border: 0 !important +} + +.q-table--grid .q-table__linear-progress { + bottom: 0 +} + +.q-table--grid .q-table__bottom { + border-top: 0 +} + +.q-table--grid .q-table__grid-content { + flex: 1 1 auto +} + +.q-table--grid.fullscreen { + background: inherit +} + +.q-table__grid-item-card { + vertical-align: top; + padding : 12px +} + +.q-table__grid-item-card .q-separator { + margin: 12px 0 +} + +.q-table__grid-item-row+.q-table__grid-item-row { + margin-top: 8px +} + +.q-table__grid-item-title { + opacity : 0.54; + font-weight: 500; + font-size : 12px +} + +.q-table__grid-item-value { + font-size: 13px +} + +.q-table__grid-item { + padding : 4px; + transition: transform 0.3s cubic-bezier(0.25, 0.8, 0.5, 1) +} + +.q-table__grid-item--selected { + transform: scale(0.95) +} + +.q-table--cell-separator tbody tr:not(:last-child)>td, +.q-table--cell-separator thead th, +.q-table--horizontal-separator tbody tr:not(:last-child)>td, +.q-table--horizontal-separator thead th { + border-bottom-width: 1px +} + +.q-table--cell-separator td, +.q-table--cell-separator th, +.q-table--vertical-separator td, +.q-table--vertical-separator th { + border-left-width: 1px +} + +.q-table--cell-separator.q-table--loading tr:nth-last-child(2) th, +.q-table--cell-separator thead tr:last-child th, +.q-table--vertical-separator.q-table--loading tr:nth-last-child(2) th, +.q-table--vertical-separator thead tr:last-child th { + border-bottom-width: 1px +} + +.q-table--cell-separator td:first-child, +.q-table--cell-separator th:first-child, +.q-table--vertical-separator td:first-child, +.q-table--vertical-separator th:first-child { + border-left: 0 +} + +.q-table--cell-separator .q-table__top, +.q-table--vertical-separator .q-table__top { + border-bottom: 1px solid rgba(0, 0, 0, 0.12) +} + +.q-table--dense .q-table__top { + padding: 6px 16px +} + +.q-table--dense .q-table__bottom { + min-height: 33px +} + +.q-table--dense .q-table__sort-icon { + font-size: 110% +} + +.q-table--dense .q-table td, +.q-table--dense .q-table th { + padding: 4px 8px +} + +.q-table--dense .q-table tbody td, +.q-table--dense .q-table tbody tr, +.q-table--dense .q-table thead tr { + height: 28px +} + +.q-table--dense .q-table td:first-child, +.q-table--dense .q-table th:first-child { + padding-left: 16px +} + +.q-table--dense .q-table td:last-child, +.q-table--dense .q-table th:last-child { + padding-right: 16px +} + +.q-table--dense .q-table__bottom-item { + margin-right: 8px +} + +.q-table--dense .q-table__select .q-field__control, +.q-table--dense .q-table__select .q-field__native { + min-height: 24px; + padding : 0 +} + +.q-table--dense .q-table__select .q-field__marginal { + height: 24px +} + +.q-table__bottom { + border-top: 1px solid rgba(0, 0, 0, 0.12) +} + +.q-table td, +.q-table th, +.q-table thead, +.q-table tr { + border-color: rgba(0, 0, 0, 0.12) +} + +.q-table tbody td { + position: relative +} + +.q-table tbody td:after, +.q-table tbody td:before { + position : absolute; + top : 0; + left : 0; + right : 0; + bottom : 0; + pointer-events: none +} + +.q-table tbody td:before { + background: rgba(0, 0, 0, 0.03) +} + +.q-table tbody td:after { + background: rgba(0, 0, 0, 0.06) +} + +.q-table tbody tr.selected td:after, +body.desktop .q-table>tbody>tr:not(.q-tr--no-hover):hover>td:not(.q-td--no-hover):before { + content: "" +} + +.q-table--dark, +.q-table--dark .q-table__bottom, +.q-table--dark td, +.q-table--dark th, +.q-table--dark thead, +.q-table--dark tr, +.q-table__card--dark { + border-color: hsla(0, 0%, 100%, 0.28) +} + +.q-table--dark tbody td:before { + background: hsla(0, 0%, 100%, 0.07) +} + +.q-table--dark tbody td:after { + background: hsla(0, 0%, 100%, 0.1) +} + +.q-table--dark.q-table--cell-separator .q-table__top, +.q-table--dark.q-table--vertical-separator .q-table__top { + border-color: hsla(0, 0%, 100%, 0.28) +} + +.q-tab { + padding : 0 16px; + min-height : 48px; + transition : color 0.3s, background-color 0.3s; + text-transform : uppercase; + white-space : nowrap; + color : inherit; + text-decoration: none +} + +.q-tab--full { + min-height: 72px +} + +.q-tab--no-caps { + text-transform: none +} + +.q-tab__content { + height : inherit; + padding : 4px 0; + min-width: 40px +} + +.q-tab__content--inline .q-tab__icon+.q-tab__label { + padding-left: 8px +} + +.q-tab__content .q-chip--floating { + top : 0; + right: -16px +} + +.q-tab__icon { + width : 24px; + height : 24px; + font-size: 24px +} + +.q-tab__label { + font-size : 14px; + line-height: 1.715em; + font-weight: 500 +} + +.q-tab .q-badge { + top : 3px; + right: -12px +} + +.q-tab__alert, +.q-tab__alert-icon { + position: absolute +} + +.q-tab__alert { + top : 7px; + right : -9px; + height : 10px; + width : 10px; + border-radius: 50%; + background : currentColor +} + +.q-tab__alert-icon { + top : 2px; + right : -12px; + font-size: 18px +} + +.q-tab__indicator { + opacity : 0; + height : 2px; + background: currentColor +} + +.q-tab--active .q-tab__indicator { + opacity : 1; + transform-origin: left +} + +.q-tab--inactive { + opacity: 0.85 +} + +.q-tabs { + position : relative; + transition: color 0.3s, background-color 0.3s +} + +.q-tabs--scrollable.q-tabs__arrows--outside.q-tabs--horizontal { + padding-left : 36px; + padding-right: 36px +} + +.q-tabs--scrollable.q-tabs__arrows--outside.q-tabs--vertical { + padding-top : 36px; + padding-bottom: 36px +} + +.q-tabs--scrollable.q-tabs__arrows--outside .q-tabs__arrow--faded { + opacity : 0.3; + pointer-events: none +} + +.q-tabs--not-scrollable .q-tabs__arrow, +.q-tabs--scrollable.q-tabs__arrows--inside .q-tabs__arrow--faded { + display: none +} + +.q-tabs--not-scrollable .q-tabs__content { + border-radius: inherit +} + +.q-tabs__arrow { + cursor : pointer; + font-size : 32px; + min-width : 36px; + text-shadow: 0 0 3px #fff, 0 0 1px #fff, 0 0 1px #000; + transition : opacity 0.3s +} + +.q-tabs__content { + overflow: hidden; + flex : 1 1 auto +} + +.q-tabs__content--align-center { + justify-content: center +} + +.q-tabs__content--align-right { + justify-content: flex-end +} + +.q-tabs__content--align-justify .q-tab { + flex: 1 1 auto +} + +.q-tabs__offset { + display: none +} + +.q-tabs--horizontal .q-tabs__arrow { + height: 100% +} + +.q-tabs--horizontal .q-tabs__arrow--start { + top : 0; + left : 0; + bottom: 0 +} + +.q-tabs--horizontal .q-tabs__arrow--end { + top : 0; + right : 0; + bottom: 0 +} + +.q-tabs--vertical, +.q-tabs--vertical .q-tabs__content { + display: block !important; + height : 100% +} + +.q-tabs--vertical .q-tabs__arrow { + width : 100%; + height : 36px; + text-align: center +} + +.q-tabs--vertical .q-tabs__arrow--start { + top : 0; + left : 0; + right: 0 +} + +.q-tabs--vertical .q-tabs__arrow--end { + left : 0; + right : 0; + bottom: 0 +} + +.q-tabs--vertical .q-tab { + padding: 0 8px +} + +.q-tabs--vertical .q-tab__indicator { + height: unset; + width : 2px +} + +.q-tabs--vertical.q-tabs--not-scrollable .q-tabs__content { + height: 100% +} + +.q-tabs--vertical.q-tabs--dense .q-tab__content { + min-width: 24px +} + +.q-tabs--dense .q-tab { + min-height: 36px +} + +.q-tabs--dense .q-tab--full { + min-height: 52px +} + +@media (min-width:1440px) { + + .q-footer .q-tab__content, + .q-header .q-tab__content { + min-width: 128px + } +} + +.q-time { + box-shadow : 0 1px 5px rgba(0, 0, 0, 0.2), 0 2px 2px rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12); + border-radius: 4px; + background : #fff; + outline : 0; + width : 290px; + min-width : 290px; + max-width : 100% +} + +.q-time--bordered { + border: 1px solid rgba(0, 0, 0, 0.12) +} + +.q-time__header { + border-top-left-radius: inherit; + color : #fff; + background-color : #1976d2; + background-color : var(--q-color-primary); + padding : 16px; + font-weight : 300 +} + +.q-time__actions { + padding: 0 16px 16px +} + +.q-time__header-label { + font-size : 28px; + line-height : 1; + letter-spacing: -0.00833em +} + +.q-time__header-label>div+div { + margin-left: 4px +} + +.q-time__link { + opacity : 0.56; + outline : 0; + transition: opacity 0.3s ease-out +} + +.q-time__link--active, +.q-time__link:focus, +.q-time__link:hover { + opacity: 1 +} + +.q-time__header-ampm { + font-size : 16px; + letter-spacing: 0.1em +} + +.q-time__content { + padding: 16px +} + +.q-time__content:before { + content : ""; + display : block; + padding-bottom: 100% +} + +.q-time__container-parent { + padding: 16px +} + +.q-time__container-child { + border-radius: 50%; + background : rgba(0, 0, 0, 0.12) +} + +.q-time__clock { + padding : 24px; + width : 100%; + height : 100%; + max-width : 100%; + max-height: 100%; + font-size : 14px +} + +.q-time__clock-circle { + position: relative +} + +.q-time__clock-center { + height : 6px; + width : 6px; + margin : auto; + border-radius: 50%; + min-height : 0; + background : currentColor +} + +.q-time__clock-pointer { + width : 2px; + height : 50%; + transform-origin: 0 0; + min-height : 0; + position : absolute; + left : 50%; + right : 0; + bottom : 0; + color : #1976d2; + color : var(--q-color-primary); + background : currentColor; + transform : translateX(-50%) +} + +.q-time__clock-pointer:after, +.q-time__clock-pointer:before { + content : ""; + position : absolute; + left : 50%; + border-radius: 50%; + background : currentColor; + transform : translateX(-50%) +} + +.q-time__clock-pointer:before { + bottom: -4px; + width : 8px; + height: 8px +} + +.q-time__clock-pointer:after { + top : -3px; + height: 6px; + width : 6px +} + +.q-time__clock-position { + position : absolute; + min-height : 32px; + width : 32px; + height : 32px; + font-size : 12px; + line-height : 32px; + margin : 0; + padding : 0; + transform : translate(-50%, -50%); + border-radius: 50% +} + +.q-time__clock-position--disable { + opacity: 0.4 +} + +.q-time__clock-position--active { + background-color: #1976d2; + background-color: var(--q-color-primary); + color : #fff +} + +.q-time__clock-pos-0 { + top : 0%; + left: 50% +} + +.q-time__clock-pos-1 { + top : 6.7%; + left: 75% +} + +.q-time__clock-pos-2 { + top : 25%; + left: 93.3% +} + +.q-time__clock-pos-3 { + top : 50%; + left: 100% +} + +.q-time__clock-pos-4 { + top : 75%; + left: 93.3% +} + +.q-time__clock-pos-5 { + top : 93.3%; + left: 75% +} + +.q-time__clock-pos-6 { + top : 100%; + left: 50% +} + +.q-time__clock-pos-7 { + top : 93.3%; + left: 25% +} + +.q-time__clock-pos-8 { + top : 75%; + left: 6.7% +} + +.q-time__clock-pos-9 { + top : 50%; + left: 0% +} + +.q-time__clock-pos-10 { + top : 25%; + left: 6.7% +} + +.q-time__clock-pos-11 { + top : 6.7%; + left: 25% +} + +.q-time__clock-pos-12 { + top : 15%; + left: 50% +} + +.q-time__clock-pos-13 { + top : 19.69%; + left: 67.5% +} + +.q-time__clock-pos-14 { + top : 32.5%; + left: 80.31% +} + +.q-time__clock-pos-15 { + top : 50%; + left: 85% +} + +.q-time__clock-pos-16 { + top : 67.5%; + left: 80.31% +} + +.q-time__clock-pos-17 { + top : 80.31%; + left: 67.5% +} + +.q-time__clock-pos-18 { + top : 85%; + left: 50% +} + +.q-time__clock-pos-19 { + top : 80.31%; + left: 32.5% +} + +.q-time__clock-pos-20 { + top : 67.5%; + left: 19.69% +} + +.q-time__clock-pos-21 { + top : 50%; + left: 15% +} + +.q-time__clock-pos-22 { + top : 32.5%; + left: 19.69% +} + +.q-time__clock-pos-23 { + top : 19.69%; + left: 32.5% +} + +.q-time__now-button { + background-color: #1976d2; + background-color: var(--q-color-primary); + color : #fff; + top : 12px; + right : 12px +} + +.q-time--readonly .q-time__content, +.q-time--readonly .q-time__header-ampm, +.q-time.disabled .q-time__content, +.q-time.disabled .q-time__header-ampm { + pointer-events: none +} + +.q-time--portrait { + display : inline-flex; + flex-direction: column +} + +.q-time--portrait .q-time__header { + border-top-right-radius: inherit; + min-height : 86px +} + +.q-time--portrait .q-time__header-ampm { + margin-left: 12px +} + +.q-time--portrait.q-time--bordered .q-time__content { + margin: 1px 0 +} + +.q-time--landscape { + display : inline-flex; + align-items: stretch; + min-width : 420px +} + +.q-time--landscape>div { + display : flex; + flex-direction : column; + justify-content: center +} + +.q-time--landscape .q-time__header { + border-bottom-left-radius: inherit; + min-width : 156px +} + +.q-time--landscape .q-time__header-ampm { + margin-top: 12px +} + +.q-time--dark { + border-color: hsla(0, 0%, 100%, 0.28) +} + +.q-timeline { + padding : 0; + width : 100%; + list-style: none +} + +.q-timeline h6 { + line-height: inherit +} + +.q-timeline--dark { + color: #fff +} + +.q-timeline--dark .q-timeline__subtitle { + opacity: 0.7 +} + +.q-timeline__content { + padding-bottom: 24px +} + +.q-timeline__title { + margin-top : 0; + margin-bottom: 16px +} + +.q-timeline__subtitle { + font-size : 12px; + margin-bottom : 8px; + opacity : 0.6; + text-transform: uppercase; + letter-spacing: 1px; + font-weight : 700 +} + +.q-timeline__dot { + position: absolute; + top : 0; + bottom : 0; + width : 15px +} + +.q-timeline__dot:after, +.q-timeline__dot:before { + content : ""; + background: currentColor; + display : block; + position : absolute +} + +.q-timeline__dot:before { + border : 3px solid transparent; + border-radius: 100%; + height : 15px; + width : 15px; + top : 4px; + left : 0; + transition : background 0.3s ease-in-out, border 0.3s ease-in-out +} + +.q-timeline__dot:after { + width : 3px; + opacity: 0.4; + top : 24px; + bottom : 0; + left : 6px +} + +.q-timeline__dot .q-icon { + position : absolute; + top : 0; + left : 0; + right : 0; + font-size : 16px; + height : 38px; + line-height: 38px; + width : 100%; + color : #fff +} + +.q-timeline__dot .q-icon>img, +.q-timeline__dot .q-icon>svg { + width : 1em; + height: 1em +} + +.q-timeline__dot-img { + position : absolute; + top : 4px; + left : 0; + right : 0; + height : 31px; + width : 31px; + background : currentColor; + border-radius: 50% +} + +.q-timeline__heading { + position: relative +} + +.q-timeline__heading:first-child .q-timeline__heading-title { + padding-top: 0 +} + +.q-timeline__heading:last-child .q-timeline__heading-title { + padding-bottom: 0 +} + +.q-timeline__heading-title { + padding: 32px 0; + margin : 0 +} + +.q-timeline__entry { + position : relative; + line-height: 22px +} + +.q-timeline__entry:last-child { + padding-bottom: 0 !important +} + +.q-timeline__entry:last-child .q-timeline__dot:after { + content: none +} + +.q-timeline__entry--icon .q-timeline__dot { + width: 31px +} + +.q-timeline__entry--icon .q-timeline__dot:before { + height: 31px; + width : 31px +} + +.q-timeline__entry--icon .q-timeline__dot:after { + top : 41px; + left: 14px +} + +.q-timeline__entry--icon .q-timeline__subtitle { + padding-top: 8px +} + +.q-timeline--dense--right .q-timeline__entry { + padding-left: 40px +} + +.q-timeline--dense--right .q-timeline__entry--icon .q-timeline__dot { + left: -8px +} + +.q-timeline--dense--right .q-timeline__dot { + left: 0 +} + +.q-timeline--dense--left .q-timeline__heading { + text-align: right +} + +.q-timeline--dense--left .q-timeline__entry { + padding-right: 40px +} + +.q-timeline--dense--left .q-timeline__entry--icon .q-timeline__dot { + right: -8px +} + +.q-timeline--dense--left .q-timeline__content, +.q-timeline--dense--left .q-timeline__subtitle, +.q-timeline--dense--left .q-timeline__title { + text-align: right +} + +.q-timeline--dense--left .q-timeline__dot { + right: 0 +} + +.q-timeline--comfortable { + display: table +} + +.q-timeline--comfortable .q-timeline__heading { + display : table-row; + font-size: 200% +} + +.q-timeline--comfortable .q-timeline__heading>div { + display: table-cell +} + +.q-timeline--comfortable .q-timeline__entry { + display: table-row; + padding: 0 +} + +.q-timeline--comfortable .q-timeline__entry--icon .q-timeline__content { + padding-top: 8px +} + +.q-timeline--comfortable .q-timeline__content, +.q-timeline--comfortable .q-timeline__dot, +.q-timeline--comfortable .q-timeline__subtitle { + display : table-cell; + vertical-align: top +} + +.q-timeline--comfortable .q-timeline__subtitle { + width: 35% +} + +.q-timeline--comfortable .q-timeline__dot { + position : relative; + min-width: 31px +} + +.q-timeline--comfortable--right .q-timeline__heading .q-timeline__heading-title { + margin-left: -50px +} + +.q-timeline--comfortable--right .q-timeline__subtitle { + text-align : right; + padding-right: 30px +} + +.q-timeline--comfortable--right .q-timeline__content { + padding-left: 30px +} + +.q-timeline--comfortable--right .q-timeline__entry--icon .q-timeline__dot { + left: -8px +} + +.q-timeline--comfortable--left .q-timeline__heading { + text-align: right +} + +.q-timeline--comfortable--left .q-timeline__heading .q-timeline__heading-title { + margin-right: -50px +} + +.q-timeline--comfortable--left .q-timeline__subtitle { + padding-left: 30px +} + +.q-timeline--comfortable--left .q-timeline__content { + padding-right: 30px +} + +.q-timeline--comfortable--left .q-timeline__content, +.q-timeline--comfortable--left .q-timeline__title { + text-align: right +} + +.q-timeline--comfortable--left .q-timeline__entry--icon .q-timeline__dot { + right: 0 +} + +.q-timeline--comfortable--left .q-timeline__dot { + right: -8px +} + +.q-timeline--loose .q-timeline__heading-title { + text-align : center; + margin-left: 0 +} + +.q-timeline--loose .q-timeline__content, +.q-timeline--loose .q-timeline__dot, +.q-timeline--loose .q-timeline__entry, +.q-timeline--loose .q-timeline__subtitle { + display: block; + margin : 0; + padding: 0 +} + +.q-timeline--loose .q-timeline__dot { + position : absolute; + left : 50%; + margin-left: -7.15px +} + +.q-timeline--loose .q-timeline__entry { + padding-bottom: 24px; + overflow : hidden +} + +.q-timeline--loose .q-timeline__entry--icon .q-timeline__dot { + margin-left: -15px +} + +.q-timeline--loose .q-timeline__entry--icon .q-timeline__subtitle { + line-height: 38px +} + +.q-timeline--loose .q-timeline__entry--icon .q-timeline__content { + padding-top: 8px +} + +.q-timeline--loose .q-timeline__entry--left .q-timeline__content, +.q-timeline--loose .q-timeline__entry--right .q-timeline__subtitle { + float : left; + padding-right: 30px; + text-align : right +} + +.q-timeline--loose .q-timeline__entry--left .q-timeline__subtitle, +.q-timeline--loose .q-timeline__entry--right .q-timeline__content { + float : right; + text-align : left; + padding-left: 30px +} + +.q-timeline--loose .q-timeline__content, +.q-timeline--loose .q-timeline__subtitle { + width: 50% +} + +.q-toggle { + vertical-align: middle +} + +.q-toggle__native { + width : 1px; + height: 1px +} + +.q-toggle__track { + height : 0.35em; + border-radius: 0.175em; + opacity : 0.38; + background : currentColor +} + +.q-toggle__thumb { + top : 0.25em; + left : 0.25em; + width : 0.5em; + height : 0.5em; + transition : left 0.22s cubic-bezier(0.4, 0, 0.2, 1); + -webkit-user-select: none; + -moz-user-select : none; + -ms-user-select : none; + user-select : none; + z-index : 0 +} + +.q-toggle__thumb:after { + content : ""; + position : absolute; + top : 0; + right : 0; + bottom : 0; + left : 0; + border-radius: 50%; + background : #fff; + box-shadow : 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12) +} + +.q-toggle__thumb .q-icon { + font-size: 0.3em; + min-width: 1em; + color : #000; + opacity : 0.54; + z-index : 1 +} + +.q-toggle__inner { + font-size : 40px; + width : 1.4em; + min-width : 1.4em; + height : 1em; + padding : 0.325em 0.3em; + -webkit-print-color-adjust: exact +} + +.q-toggle__inner--indet .q-toggle__thumb { + left: 0.45em +} + +.q-toggle__inner--truthy { + color: #1976d2; + color: var(--q-color-primary) +} + +.q-toggle__inner--truthy .q-toggle__track { + opacity: 0.54 +} + +.q-toggle__inner--truthy .q-toggle__thumb { + left: 0.65em +} + +.q-toggle__inner--truthy .q-toggle__thumb:after { + background-color: currentColor +} + +.q-toggle__inner--truthy .q-toggle__thumb .q-icon { + color : #fff; + opacity: 1 +} + +.q-toggle.disabled { + opacity: 0.75 !important +} + +.q-toggle--dark .q-toggle__inner { + color: #fff +} + +.q-toggle--dark .q-toggle__inner--truthy { + color: #1976d2; + color: var(--q-color-primary) +} + +.q-toggle--dark .q-toggle__thumb:before { + opacity: 0.32 !important +} + +.q-toggle--dense .q-toggle__inner { + width : 0.8em; + min-width: 0.8em; + height : 0.5em; + padding : 0.07625em 0 +} + +.q-toggle--dense .q-toggle__thumb { + top : 0; + left: 0 +} + +.q-toggle--dense .q-toggle__inner--indet .q-toggle__thumb { + left: 0.15em +} + +.q-toggle--dense .q-toggle__inner--truthy .q-toggle__thumb { + left: 0.3em +} + +.q-toggle--dense .q-toggle__label { + padding-left: 0.5em +} + +.q-toggle--dense.reverse .q-toggle__label { + padding-left : 0; + padding-right: 0.5em +} + +body.desktop .q-toggle:not(.disabled) .q-toggle__thumb:before { + content : ""; + position : absolute; + top : 0; + right : 0; + bottom : 0; + left : 0; + border-radius: 50%; + background : currentColor; + opacity : 0.12; + transform : scale3d(0, 0, 1); + transition : transform 0.22s cubic-bezier(0, 0, 0.2, 1) +} + +body.desktop .q-toggle:not(.disabled):focus .q-toggle__thumb:before, +body.desktop .q-toggle:not(.disabled):hover .q-toggle__thumb:before { + transform: scale3d(2, 2, 1) +} + +body.desktop .q-toggle--dense:not(.disabled):focus .q-toggle__thumb:before, +body.desktop .q-toggle--dense:not(.disabled):hover .q-toggle__thumb:before { + transform: scale3d(1.5, 1.5, 1) +} + +.q-toolbar { + position : relative; + padding : 0 12px; + min-height: 50px; + width : 100% +} + +.q-toolbar--inset { + padding-left: 58px +} + +.q-toolbar .q-avatar { + font-size: 38px +} + +.q-toolbar__title { + flex : 1 1 0%; + min-width : 1px; + max-width : 100%; + font-size : 21px; + font-weight : 400; + letter-spacing: 0.01em; + padding : 0 12px +} + +.q-toolbar__title:first-child { + padding-left: 0 +} + +.q-toolbar__title:last-child { + padding-right: 0 +} + +.q-tooltip--style { + font-size : 10px; + color : #fafafa; + background : #757575; + border-radius : 4px; + text-transform: none; + font-weight : 400 +} + +.q-tooltip { + z-index : 9000; + position : fixed !important; + overflow-y: auto; + overflow-x: hidden; + padding : 6px 10px +} + +@media (max-width:599.98px) { + .q-tooltip { + font-size: 14px; + padding : 8px 16px + } +} + +.q-tree { + position: relative; + color : #9e9e9e +} + +.q-tree__node { + padding: 0 0 3px 22px +} + +.q-tree__node:after { + content : ""; + position : absolute; + top : -3px; + bottom : 0; + width : 2px; + right : auto; + left : -13px; + border-left: 1px solid currentColor +} + +.q-tree__node:last-child:after { + display: none +} + +.q-tree__node--disabled { + pointer-events: none +} + +.q-tree__node--disabled .disabled { + opacity: 1 !important +} + +.q-tree__node--disabled>.disabled, +.q-tree__node--disabled>div, +.q-tree__node--disabled>i { + opacity: 0.6 !important +} + +.q-tree__node--disabled>.disabled .q-tree__node--disabled>.disabled, +.q-tree__node--disabled>.disabled .q-tree__node--disabled>div, +.q-tree__node--disabled>.disabled .q-tree__node--disabled>i, +.q-tree__node--disabled>div .q-tree__node--disabled>.disabled, +.q-tree__node--disabled>div .q-tree__node--disabled>div, +.q-tree__node--disabled>div .q-tree__node--disabled>i, +.q-tree__node--disabled>i .q-tree__node--disabled>.disabled, +.q-tree__node--disabled>i .q-tree__node--disabled>div, +.q-tree__node--disabled>i .q-tree__node--disabled>i { + opacity: 1 !important +} + +.q-tree__node-header:before { + content : ""; + position : absolute; + top : -3px; + bottom : 50%; + width : 31px; + left : -35px; + border-left : 1px solid currentColor; + border-bottom: 1px solid currentColor +} + +.q-tree__children { + padding-left: 25px +} + +.q-tree__node-body { + padding: 5px 0 8px 5px +} + +.q-tree__node--parent { + padding-left: 2px +} + +.q-tree__node--parent>.q-tree__node-header:before { + width: 15px; + left : -15px +} + +.q-tree__node--parent>.q-tree__node-collapsible>.q-tree__node-body { + padding: 5px 0 8px 27px +} + +.q-tree__node--parent>.q-tree__node-collapsible>.q-tree__node-body:after { + content : ""; + position : absolute; + top : 0; + width : 2px; + height : 100%; + right : auto; + left : 12px; + border-left: 1px solid currentColor; + bottom : 50px +} + +.q-tree__node--link { + cursor: pointer +} + +.q-tree__node-header { + padding : 4px; + margin-top : 3px; + border-radius: 4px; + outline : 0 +} + +.q-tree__node-header-content { + color : #000; + transition: color 0.3s +} + +.q-tree__node--selected .q-tree__node-header-content { + color: #9e9e9e +} + +.q-tree__icon, +.q-tree__node-header-content .q-icon { + font-size: 21px +} + +.q-tree__img { + height : 42px; + border-radius: 2px +} + +.q-tree__avatar, +.q-tree__node-header-content .q-avatar { + font-size : 28px; + border-radius: 50%; + width : 28px; + height : 28px +} + +.q-tree__arrow, +.q-tree__spinner { + font-size : 16px; + margin-right: 4px +} + +.q-tree__arrow { + transition: transform 0.3s +} + +.q-tree__arrow--rotate { + transform: rotate3d(0, 0, 1, 90deg) +} + +.q-tree__tickbox { + margin-right: 4px +} + +.q-tree>.q-tree__node { + padding: 0 +} + +.q-tree>.q-tree__node:after, +.q-tree>.q-tree__node>.q-tree__node-header:before { + display: none +} + +.q-tree>.q-tree__node--child>.q-tree__node-header { + padding-left: 24px +} + +.q-tree--dark .q-tree__node-header-content { + color: #fff +} + +.q-tree--no-connectors .q-tree__node-body:after, +.q-tree--no-connectors .q-tree__node-header:before, +.q-tree--no-connectors .q-tree__node:after { + display: none !important +} + +.q-tree--dense>.q-tree__node--child>.q-tree__node-header { + padding-left: 1px +} + +.q-tree--dense .q-tree__arrow, +.q-tree--dense .q-tree__spinner { + margin-right: 1px +} + +.q-tree--dense .q-tree__img { + height: 32px +} + +.q-tree--dense .q-tree__tickbox { + margin-right: 3px +} + +.q-tree--dense .q-tree__node { + padding: 0 +} + +.q-tree--dense .q-tree__node:after { + top : 0; + left: -8px +} + +.q-tree--dense .q-tree__node-header { + margin-top: 0; + padding : 1px +} + +.q-tree--dense .q-tree__node-header:before { + top : 0; + left : -8px; + width: 8px +} + +.q-tree--dense .q-tree__node--child { + padding-left: 17px +} + +.q-tree--dense .q-tree__node--child>.q-tree__node-header:before { + left : -25px; + width: 21px +} + +.q-tree--dense .q-tree__node-body { + padding: 0 0 2px +} + +.q-tree--dense .q-tree__node--parent>.q-tree__node-collapsible>.q-tree__node-body { + padding: 0 0 2px 20px +} + +.q-tree--dense .q-tree__node--parent>.q-tree__node-collapsible>.q-tree__node-body:after { + left: 8px +} + +.q-tree--dense .q-tree__children { + padding-left: 16px +} + +[dir=rtl] .q-tree__arrow { + transform: rotate3d(0, 0, 1, 180deg) +} + +[dir=rtl] .q-tree__arrow--rotate { + transform: rotate3d(0, 0, 1, 90deg) +} + +.q-uploader { + box-shadow : 0 1px 5px rgba(0, 0, 0, 0.2), 0 2px 2px rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12); + border-radius : 4px; + vertical-align: top; + background : #fff; + position : relative; + width : 320px; + max-height : 320px +} + +.q-uploader--bordered { + border: 1px solid rgba(0, 0, 0, 0.12) +} + +.q-uploader__input { + opacity: 0; + width : 100%; + height : 100%; + cursor : pointer !important; + z-index: 1 +} + +.q-uploader__input::-webkit-file-upload-button { + cursor: pointer +} + +.q-uploader__file:before { + content : ""; + position : absolute; + top : 0; + right : 0; + bottom : 0; + left : 0; + pointer-events: none; + background : currentColor; + opacity : 0.04 +} + +.q-uploader__file:before, +.q-uploader__header { + border-top-left-radius : inherit; + border-top-right-radius: inherit +} + +.q-uploader__header { + position : relative; + background-color: #1976d2; + background-color: var(--q-color-primary); + color : #fff; + width : 100% +} + +.q-uploader__spinner { + font-size : 24px; + margin-right: 4px +} + +.q-uploader__header-content { + padding: 8px +} + +.q-uploader__dnd { + outline : 1px dashed currentColor; + outline-offset: -4px; + background : hsla(0, 0%, 100%, 0.6) +} + +.q-uploader__overlay { + font-size : 36px; + color : #000; + background-color: hsla(0, 0%, 100%, 0.6) +} + +.q-uploader__list { + position : relative; + border-bottom-left-radius : inherit; + border-bottom-right-radius: inherit; + padding : 8px; + min-height : 60px; + flex : 1 1 auto +} + +.q-uploader__file { + border-radius: 4px 4px 0 0; + border : 1px solid rgba(0, 0, 0, 0.12) +} + +.q-uploader__file .q-circular-progress { + font-size: 24px +} + +.q-uploader__file--img { + color : #fff; + height : 200px; + min-width : 200px; + background-position: 50% 50%; + background-size : cover; + background-repeat : no-repeat +} + +.q-uploader__file--img:before { + content: none +} + +.q-uploader__file--img .q-circular-progress { + color: #fff +} + +.q-uploader__file--img .q-uploader__file-header { + padding-bottom: 24px; + background : linear-gradient(180deg, rgba(0, 0, 0, 0.7) 20%, hsla(0, 0%, 100%, 0)) +} + +.q-uploader__file+.q-uploader__file { + margin-top: 8px +} + +.q-uploader__file-header { + position : relative; + padding : 4px 8px; + border-top-left-radius : inherit; + border-top-right-radius: inherit +} + +.q-uploader__file-header-content { + padding-right: 8px +} + +.q-uploader__file-status { + font-size : 24px; + margin-right: 4px +} + +.q-uploader__title { + font-size : 14px; + font-weight: 700; + line-height: 18px; + word-break : break-word +} + +.q-uploader__subtitle { + font-size : 12px; + line-height: 18px +} + +.q-uploader--disable .q-uploader__header, +.q-uploader--disable .q-uploader__list { + pointer-events: none +} + +.q-uploader--dark, +.q-uploader--dark .q-uploader__file { + border-color: hsla(0, 0%, 100%, 0.28) +} + +.q-uploader--dark .q-uploader__dnd, +.q-uploader--dark .q-uploader__overlay { + background: hsla(0, 0%, 100%, 0.3) +} + +.q-uploader--dark .q-uploader__overlay { + color: #fff +} + +.q-video { + position : relative; + overflow : hidden; + border-radius: inherit +} + +.q-video embed, +.q-video iframe, +.q-video object { + width : 100%; + height: 100% +} + +.q-video--responsive { + height: 0 +} + +.q-video--responsive embed, +.q-video--responsive iframe, +.q-video--responsive object { + position: absolute; + top : 0; + left : 0 +} + +.q-virtual-scroll:focus { + outline: 0 +} + +.q-virtual-scroll__content { + outline: none; + contain: content +} + +.q-virtual-scroll__content>* { + overflow-anchor: none +} + +.q-virtual-scroll__content>[data-q-vs-anchor] { + overflow-anchor: auto +} + +.q-virtual-scroll__padding { + background : linear-gradient(hsla(0, 0%, 100%, 0), hsla(0, 0%, 100%, 0) 20%, hsla(0, 0%, 50.2%, 0.03) 0, hsla(0, 0%, 50.2%, 0.08) 50%, hsla(0, 0%, 50.2%, 0.03) 80%, hsla(0, 0%, 100%, 0) 0, hsla(0, 0%, 100%, 0)); + background-size: 100% 50px; + background-size: var(--q-virtual-scroll-item-width, 100%) var(--q-virtual-scroll-item-height, 50px) +} + +.q-table .q-virtual-scroll__padding tr { + height: 0 !important +} + +.q-table .q-virtual-scroll__padding td { + padding: 0 !important +} + +.q-virtual-scroll--horizontal { + align-items: stretch +} + +.q-virtual-scroll--horizontal, +.q-virtual-scroll--horizontal .q-virtual-scroll__content { + display : flex; + flex-direction: row; + flex-wrap : nowrap +} + +.q-virtual-scroll--horizontal .q-virtual-scroll__content, +.q-virtual-scroll--horizontal .q-virtual-scroll__content>*, +.q-virtual-scroll--horizontal .q-virtual-scroll__padding { + flex: 0 0 auto +} + +.q-virtual-scroll--horizontal .q-virtual-scroll__padding { + background : linear-gradient(270deg, hsla(0, 0%, 100%, 0), hsla(0, 0%, 100%, 0) 20%, hsla(0, 0%, 50.2%, 0.03) 0, hsla(0, 0%, 50.2%, 0.08) 50%, hsla(0, 0%, 50.2%, 0.03) 80%, hsla(0, 0%, 100%, 0) 0, hsla(0, 0%, 100%, 0)); + background-size: 50px 100%; + background-size: var(--q-virtual-scroll-item-width, 50px) var(--q-virtual-scroll-item-height, 100%) +} + +.q-ripple { + width : 100%; + height : 100%; + border-radius: inherit; + z-index : 0; + overflow : hidden; + contain : strict +} + +.q-ripple, +.q-ripple__inner { + position : absolute; + top : 0; + left : 0; + color : inherit; + pointer-events: none +} + +.q-ripple__inner { + opacity : 0; + border-radius: 50%; + background : currentColor; + will-change : transform, opacity +} + +.q-ripple__inner--enter { + transition: transform 0.225s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.1s cubic-bezier(0.4, 0, 0.2, 1) +} + +.q-ripple__inner--leave { + transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1) +} + +.q-morph--internal, +.q-morph--invisible { + opacity : 0 !important; + pointer-events: none !important; + position : fixed !important; + right : 200vw !important; + bottom : 200vh !important +} + +.q-loading { + color : #000; + position: fixed !important +} + +.q-loading:before { + content : ""; + position : fixed; + top : 0; + right : 0; + bottom : 0; + left : 0; + background: currentColor; + opacity : 0.5; + z-index : -1 +} + +.q-loading>div { + margin : 40px 20px 0; + max-width : 450px; + text-align: center +} + +.q-notifications__list { + z-index : 9500; + pointer-events: none; + left : 0; + right : 0; + margin-bottom : 10px; + position : relative +} + +.q-notifications__list--center { + top : 0; + bottom: 0 +} + +.q-notifications__list--top { + top: 0 +} + +.q-notifications__list--bottom { + bottom: 0 +} + +body.q-ios-padding .q-notifications__list--center, +body.q-ios-padding .q-notifications__list--top { + top: 20px; + top: env(safe-area-inset-top) +} + +body.q-ios-padding .q-notifications__list--bottom, +body.q-ios-padding .q-notifications__list--center { + bottom: env(safe-area-inset-bottom) +} + +.q-notification { + box-shadow : 0 1px 5px rgba(0, 0, 0, 0.2), 0 2px 2px rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12); + border-radius : 4px; + pointer-events: all; + display : inline-flex; + margin : 10px 10px 0; + transition : transform 1s, opacity 1s; + z-index : 9500; + flex-shrink : 0; + max-width : 95vw; + background : #323232; + color : #fff; + font-size : 14px +} + +.q-notification__icon { + font-size: 24px; + flex : 0 0 1em +} + +.q-notification__icon--additional { + margin-right: 16px +} + +.q-notification__avatar { + font-size: 32px +} + +.q-notification__avatar--additional { + margin-right: 8px +} + +.q-notification__spinner { + font-size: 32px +} + +.q-notification__spinner--additional { + margin-right: 8px +} + +.q-notification__message { + padding: 8px 0 +} + +.q-notification__caption { + font-size: 0.9em; + opacity : 0.7 +} + +.q-notification__actions { + color: #1976d2; + color: var(--q-color-primary) +} + +.q-notification__badge { + -webkit-animation: q-notif-badge 0.42s; + animation : q-notif-badge 0.42s; + padding : 4px 8px; + position : absolute; + background : #c10015; + box-shadow : 0 1px 3px rgba(0, 0, 0, 0.2), 0 1px 1px rgba(0, 0, 0, 0.14), 0 2px 1px -1px rgba(0, 0, 0, 0.12); + background-color : #c10015; + background-color : var(--q-color-negative); + color : #fff; + border-radius : 4px; + font-size : 12px; + line-height : 12px +} + +.q-notification__badge--top-left, +.q-notification__badge--top-right { + top: -6px +} + +.q-notification__badge--bottom-left, +.q-notification__badge--bottom-right { + bottom: -6px +} + +.q-notification__badge--bottom-left, +.q-notification__badge--top-left { + left: -22px +} + +.q-notification__badge--bottom-right, +.q-notification__badge--top-right { + right: -22px +} + +.q-notification__progress { + z-index : -1; + position : absolute; + height : 3px; + bottom : 0; + left : -10px; + right : -10px; + -webkit-animation: q-notif-progress linear; + animation : q-notif-progress linear; + background : currentColor; + opacity : 0.3; + border-radius : 4px 4px 0 0; + transform-origin : 0 50%; + transform : scaleX(0) +} + +.q-notification--standard { + padding : 0 16px; + min-height: 48px +} + +.q-notification--standard .q-notification__actions { + padding : 6px 0 6px 8px; + margin-right: -8px +} + +.q-notification--multi-line { + min-height: 68px; + padding : 8px 16px +} + +.q-notification--multi-line .q-notification__badge--top-left, +.q-notification--multi-line .q-notification__badge--top-right { + top: -15px +} + +.q-notification--multi-line .q-notification__badge--bottom-left, +.q-notification--multi-line .q-notification__badge--bottom-right { + bottom: -15px +} + +.q-notification--multi-line .q-notification__progress { + bottom: -8px +} + +.q-notification--multi-line .q-notification__actions { + padding: 0 +} + +.q-notification--multi-line .q-notification__actions--with-media { + padding-left: 25px +} + +.q-notification--top-enter, +.q-notification--top-leave-to, +.q-notification--top-left-enter, +.q-notification--top-left-leave-to, +.q-notification--top-right-enter, +.q-notification--top-right-leave-to { + opacity : 0; + transform: translateY(-50px); + z-index : 9499 +} + +.q-notification--center-enter, +.q-notification--center-leave-to, +.q-notification--left-enter, +.q-notification--left-leave-to, +.q-notification--right-enter, +.q-notification--right-leave-to { + opacity : 0; + transform: rotateX(90deg); + z-index : 9499 +} + +.q-notification--bottom-enter, +.q-notification--bottom-leave-to, +.q-notification--bottom-left-enter, +.q-notification--bottom-left-leave-to, +.q-notification--bottom-right-enter, +.q-notification--bottom-right-leave-to { + opacity : 0; + transform: translateY(50px); + z-index : 9499 +} + +.q-notification--bottom-leave-active, +.q-notification--bottom-left-leave-active, +.q-notification--bottom-right-leave-active, +.q-notification--center-leave-active, +.q-notification--left-leave-active, +.q-notification--right-leave-active, +.q-notification--top-leave-active, +.q-notification--top-left-leave-active, +.q-notification--top-right-leave-active { + position : absolute; + z-index : 9499; + margin-left : 0; + margin-right: 0 +} + +.q-notification--center-leave-active, +.q-notification--top-leave-active { + top: 0 +} + +.q-notification--bottom-leave-active, +.q-notification--bottom-left-leave-active, +.q-notification--bottom-right-leave-active { + bottom: 0 +} + +@media (min-width:600px) { + .q-notification { + max-width: 65vw + } +} + +:root { + --animate-duration: 0.3s; + --animate-delay : 0.3s; + --animate-repeat : 1 +} + +.animated { + -webkit-animation-duration : var(--animate-duration); + animation-duration : var(--animate-duration); + -webkit-animation-fill-mode: both; + animation-fill-mode : both +} + +.animated.infinite { + -webkit-animation-iteration-count: infinite; + animation-iteration-count : infinite +} + +.animated.hinge { + -webkit-animation-duration: 2s; + animation-duration : 2s +} + +.animated.repeat-1 { + -webkit-animation-iteration-count: var(--animate-repeat); + animation-iteration-count : var(--animate-repeat) +} + +.animated.repeat-2 { + -webkit-animation-iteration-count: calc(var(--animate-repeat)*2); + animation-iteration-count : calc(var(--animate-repeat)*2) +} + +.animated.repeat-3 { + -webkit-animation-iteration-count: calc(var(--animate-repeat)*3); + animation-iteration-count : calc(var(--animate-repeat)*3) +} + +.animated.delay-1s { + -webkit-animation-delay: var(--animate-delay); + animation-delay : var(--animate-delay) +} + +.animated.delay-2s { + -webkit-animation-delay: calc(var(--animate-delay)*2); + animation-delay : calc(var(--animate-delay)*2) +} + +.animated.delay-3s { + -webkit-animation-delay: calc(var(--animate-delay)*3); + animation-delay : calc(var(--animate-delay)*3) +} + +.animated.delay-4s { + -webkit-animation-delay: calc(var(--animate-delay)*4); + animation-delay : calc(var(--animate-delay)*4) +} + +.animated.delay-5s { + -webkit-animation-delay: calc(var(--animate-delay)*5); + animation-delay : calc(var(--animate-delay)*5) +} + +.animated.faster { + -webkit-animation-duration: calc(var(--animate-duration)/2); + animation-duration : calc(var(--animate-duration)/2) +} + +.animated.fast { + -webkit-animation-duration: calc(var(--animate-duration)*0.8); + animation-duration : calc(var(--animate-duration)*0.8) +} + +.animated.slow { + -webkit-animation-duration: calc(var(--animate-duration)*2); + animation-duration : calc(var(--animate-duration)*2) +} + +.animated.slower { + -webkit-animation-duration: calc(var(--animate-duration)*3); + animation-duration : calc(var(--animate-duration)*3) +} + +@media (prefers-reduced-motion:reduce), +print { + .animated { + -webkit-animation-duration : 1ms !important; + animation-duration : 1ms !important; + transition-duration : 1ms !important; + -webkit-animation-iteration-count: 1 !important; + animation-iteration-count : 1 !important + } + + .animated[class*=Out] { + opacity: 0 + } +} + +.q-animate--scale { + -webkit-animation : q-scale 0.15s; + animation : q-scale 0.15s; + -webkit-animation-timing-function: cubic-bezier(0.25, 0.8, 0.25, 1); + animation-timing-function : cubic-bezier(0.25, 0.8, 0.25, 1) +} + +.q-animate--fade { + -webkit-animation: q-fade 0.2s; + animation : q-fade 0.2s +} + +:root { + --q-color-primary : #1976d2; + --q-color-secondary: #26a69a; + --q-color-accent : #9c27b0; + --q-color-positive : #21ba45; + --q-color-negative : #c10015; + --q-color-info : #31ccec; + --q-color-warning : #f2c037; + --q-color-dark : #1d1d1d; + --q-color-dark-page: #121212 +} + +.text-dark { + color: #1d1d1d !important; + color: var(--q-color-dark) !important +} + +.bg-dark { + background: #1d1d1d !important; + background: var(--q-color-dark) !important +} + +.text-primary { + color: #1976d2 !important; + color: var(--q-color-primary) !important +} + +.bg-primary { + background: #1976d2 !important; + background: var(--q-color-primary) !important +} + +.text-secondary { + color: #26a69a !important; + color: var(--q-color-secondary) !important +} + +.bg-secondary { + background: #26a69a !important; + background: var(--q-color-secondary) !important +} + +.text-accent { + color: #9c27b0 !important; + color: var(--q-color-accent) !important +} + +.bg-accent { + background: #9c27b0 !important; + background: var(--q-color-accent) !important +} + +.text-positive { + color: #21ba45 !important; + color: var(--q-color-positive) !important +} + +.bg-positive { + background: #21ba45 !important; + background: var(--q-color-positive) !important +} + +.text-negative { + color: #c10015 !important; + color: var(--q-color-negative) !important +} + +.bg-negative { + background: #c10015 !important; + background: var(--q-color-negative) !important +} + +.text-info { + color: #31ccec !important; + color: var(--q-color-info) !important +} + +.bg-info { + background: #31ccec !important; + background: var(--q-color-info) !important +} + +.text-warning { + color: #f2c037 !important; + color: var(--q-color-warning) !important +} + +.bg-warning { + background: #f2c037 !important; + background: var(--q-color-warning) !important +} + +.text-white { + color: #fff !important +} + +.bg-white { + background: #fff !important +} + +.text-black { + color: #000 !important +} + +.bg-black { + background: #000 !important +} + +.text-transparent { + color: transparent !important +} + +.bg-transparent { + background: transparent !important +} + +.text-separator { + color: rgba(0, 0, 0, 0.12) !important +} + +.bg-separator { + background: rgba(0, 0, 0, 0.12) !important +} + +.text-dark-separator { + color: hsla(0, 0%, 100%, 0.28) !important +} + +.bg-dark-separator { + background: hsla(0, 0%, 100%, 0.28) !important +} + +.text-red { + color: #f44336 !important +} + +.text-red-1 { + color: #ffebee !important +} + +.text-red-2 { + color: #ffcdd2 !important +} + +.text-red-3 { + color: #ef9a9a !important +} + +.text-red-4 { + color: #e57373 !important +} + +.text-red-5 { + color: #ef5350 !important +} + +.text-red-6 { + color: #f44336 !important +} + +.text-red-7 { + color: #e53935 !important +} + +.text-red-8 { + color: #d32f2f !important +} + +.text-red-9 { + color: #c62828 !important +} + +.text-red-10 { + color: #b71c1c !important +} + +.text-red-11 { + color: #ff8a80 !important +} + +.text-red-12 { + color: #ff5252 !important +} + +.text-red-13 { + color: #ff1744 !important +} + +.text-red-14 { + color: #d50000 !important +} + +.text-pink { + color: #e91e63 !important +} + +.text-pink-1 { + color: #fce4ec !important +} + +.text-pink-2 { + color: #f8bbd0 !important +} + +.text-pink-3 { + color: #f48fb1 !important +} + +.text-pink-4 { + color: #f06292 !important +} + +.text-pink-5 { + color: #ec407a !important +} + +.text-pink-6 { + color: #e91e63 !important +} + +.text-pink-7 { + color: #d81b60 !important +} + +.text-pink-8 { + color: #c2185b !important +} + +.text-pink-9 { + color: #ad1457 !important +} + +.text-pink-10 { + color: #880e4f !important +} + +.text-pink-11 { + color: #ff80ab !important +} + +.text-pink-12 { + color: #ff4081 !important +} + +.text-pink-13 { + color: #f50057 !important +} + +.text-pink-14 { + color: #c51162 !important +} + +.text-purple { + color: #9c27b0 !important +} + +.text-purple-1 { + color: #f3e5f5 !important +} + +.text-purple-2 { + color: #e1bee7 !important +} + +.text-purple-3 { + color: #ce93d8 !important +} + +.text-purple-4 { + color: #ba68c8 !important +} + +.text-purple-5 { + color: #ab47bc !important +} + +.text-purple-6 { + color: #9c27b0 !important +} + +.text-purple-7 { + color: #8e24aa !important +} + +.text-purple-8 { + color: #7b1fa2 !important +} + +.text-purple-9 { + color: #6a1b9a !important +} + +.text-purple-10 { + color: #4a148c !important +} + +.text-purple-11 { + color: #ea80fc !important +} + +.text-purple-12 { + color: #e040fb !important +} + +.text-purple-13 { + color: #d500f9 !important +} + +.text-purple-14 { + color: #a0f !important +} + +.text-deep-purple { + color: #673ab7 !important +} + +.text-deep-purple-1 { + color: #ede7f6 !important +} + +.text-deep-purple-2 { + color: #d1c4e9 !important +} + +.text-deep-purple-3 { + color: #b39ddb !important +} + +.text-deep-purple-4 { + color: #9575cd !important +} + +.text-deep-purple-5 { + color: #7e57c2 !important +} + +.text-deep-purple-6 { + color: #673ab7 !important +} + +.text-deep-purple-7 { + color: #5e35b1 !important +} + +.text-deep-purple-8 { + color: #512da8 !important +} + +.text-deep-purple-9 { + color: #4527a0 !important +} + +.text-deep-purple-10 { + color: #311b92 !important +} + +.text-deep-purple-11 { + color: #b388ff !important +} + +.text-deep-purple-12 { + color: #7c4dff !important +} + +.text-deep-purple-13 { + color: #651fff !important +} + +.text-deep-purple-14 { + color: #6200ea !important +} + +.text-indigo { + color: #3f51b5 !important +} + +.text-indigo-1 { + color: #e8eaf6 !important +} + +.text-indigo-2 { + color: #c5cae9 !important +} + +.text-indigo-3 { + color: #9fa8da !important +} + +.text-indigo-4 { + color: #7986cb !important +} + +.text-indigo-5 { + color: #5c6bc0 !important +} + +.text-indigo-6 { + color: #3f51b5 !important +} + +.text-indigo-7 { + color: #3949ab !important +} + +.text-indigo-8 { + color: #303f9f !important +} + +.text-indigo-9 { + color: #283593 !important +} + +.text-indigo-10 { + color: #1a237e !important +} + +.text-indigo-11 { + color: #8c9eff !important +} + +.text-indigo-12 { + color: #536dfe !important +} + +.text-indigo-13 { + color: #3d5afe !important +} + +.text-indigo-14 { + color: #304ffe !important +} + +.text-blue { + color: #2196f3 !important +} + +.text-blue-1 { + color: #e3f2fd !important +} + +.text-blue-2 { + color: #bbdefb !important +} + +.text-blue-3 { + color: #90caf9 !important +} + +.text-blue-4 { + color: #64b5f6 !important +} + +.text-blue-5 { + color: #42a5f5 !important +} + +.text-blue-6 { + color: #2196f3 !important +} + +.text-blue-7 { + color: #1e88e5 !important +} + +.text-blue-8 { + color: #1976d2 !important +} + +.text-blue-9 { + color: #1565c0 !important +} + +.text-blue-10 { + color: #0d47a1 !important +} + +.text-blue-11 { + color: #82b1ff !important +} + +.text-blue-12 { + color: #448aff !important +} + +.text-blue-13 { + color: #2979ff !important +} + +.text-blue-14 { + color: #2962ff !important +} + +.text-light-blue { + color: #03a9f4 !important +} + +.text-light-blue-1 { + color: #e1f5fe !important +} + +.text-light-blue-2 { + color: #b3e5fc !important +} + +.text-light-blue-3 { + color: #81d4fa !important +} + +.text-light-blue-4 { + color: #4fc3f7 !important +} + +.text-light-blue-5 { + color: #29b6f6 !important +} + +.text-light-blue-6 { + color: #03a9f4 !important +} + +.text-light-blue-7 { + color: #039be5 !important +} + +.text-light-blue-8 { + color: #0288d1 !important +} + +.text-light-blue-9 { + color: #0277bd !important +} + +.text-light-blue-10 { + color: #01579b !important +} + +.text-light-blue-11 { + color: #80d8ff !important +} + +.text-light-blue-12 { + color: #40c4ff !important +} + +.text-light-blue-13 { + color: #00b0ff !important +} + +.text-light-blue-14 { + color: #0091ea !important +} + +.text-cyan { + color: #00bcd4 !important +} + +.text-cyan-1 { + color: #e0f7fa !important +} + +.text-cyan-2 { + color: #b2ebf2 !important +} + +.text-cyan-3 { + color: #80deea !important +} + +.text-cyan-4 { + color: #4dd0e1 !important +} + +.text-cyan-5 { + color: #26c6da !important +} + +.text-cyan-6 { + color: #00bcd4 !important +} + +.text-cyan-7 { + color: #00acc1 !important +} + +.text-cyan-8 { + color: #0097a7 !important +} + +.text-cyan-9 { + color: #00838f !important +} + +.text-cyan-10 { + color: #006064 !important +} + +.text-cyan-11 { + color: #84ffff !important +} + +.text-cyan-12 { + color: #18ffff !important +} + +.text-cyan-13 { + color: #00e5ff !important +} + +.text-cyan-14 { + color: #00b8d4 !important +} + +.text-teal { + color: #009688 !important +} + +.text-teal-1 { + color: #e0f2f1 !important +} + +.text-teal-2 { + color: #b2dfdb !important +} + +.text-teal-3 { + color: #80cbc4 !important +} + +.text-teal-4 { + color: #4db6ac !important +} + +.text-teal-5 { + color: #26a69a !important +} + +.text-teal-6 { + color: #009688 !important +} + +.text-teal-7 { + color: #00897b !important +} + +.text-teal-8 { + color: #00796b !important +} + +.text-teal-9 { + color: #00695c !important +} + +.text-teal-10 { + color: #004d40 !important +} + +.text-teal-11 { + color: #a7ffeb !important +} + +.text-teal-12 { + color: #64ffda !important +} + +.text-teal-13 { + color: #1de9b6 !important +} + +.text-teal-14 { + color: #00bfa5 !important +} + +.text-green { + color: #4caf50 !important +} + +.text-green-1 { + color: #e8f5e9 !important +} + +.text-green-2 { + color: #c8e6c9 !important +} + +.text-green-3 { + color: #a5d6a7 !important +} + +.text-green-4 { + color: #81c784 !important +} + +.text-green-5 { + color: #66bb6a !important +} + +.text-green-6 { + color: #4caf50 !important +} + +.text-green-7 { + color: #43a047 !important +} + +.text-green-8 { + color: #388e3c !important +} + +.text-green-9 { + color: #2e7d32 !important +} + +.text-green-10 { + color: #1b5e20 !important +} + +.text-green-11 { + color: #b9f6ca !important +} + +.text-green-12 { + color: #69f0ae !important +} + +.text-green-13 { + color: #00e676 !important +} + +.text-green-14 { + color: #00c853 !important +} + +.text-light-green { + color: #8bc34a !important +} + +.text-light-green-1 { + color: #f1f8e9 !important +} + +.text-light-green-2 { + color: #dcedc8 !important +} + +.text-light-green-3 { + color: #c5e1a5 !important +} + +.text-light-green-4 { + color: #aed581 !important +} + +.text-light-green-5 { + color: #9ccc65 !important +} + +.text-light-green-6 { + color: #8bc34a !important +} + +.text-light-green-7 { + color: #7cb342 !important +} + +.text-light-green-8 { + color: #689f38 !important +} + +.text-light-green-9 { + color: #558b2f !important +} + +.text-light-green-10 { + color: #33691e !important +} + +.text-light-green-11 { + color: #ccff90 !important +} + +.text-light-green-12 { + color: #b2ff59 !important +} + +.text-light-green-13 { + color: #76ff03 !important +} + +.text-light-green-14 { + color: #64dd17 !important +} + +.text-lime { + color: #cddc39 !important +} + +.text-lime-1 { + color: #f9fbe7 !important +} + +.text-lime-2 { + color: #f0f4c3 !important +} + +.text-lime-3 { + color: #e6ee9c !important +} + +.text-lime-4 { + color: #dce775 !important +} + +.text-lime-5 { + color: #d4e157 !important +} + +.text-lime-6 { + color: #cddc39 !important +} + +.text-lime-7 { + color: #c0ca33 !important +} + +.text-lime-8 { + color: #afb42b !important +} + +.text-lime-9 { + color: #9e9d24 !important +} + +.text-lime-10 { + color: #827717 !important +} + +.text-lime-11 { + color: #f4ff81 !important +} + +.text-lime-12 { + color: #eeff41 !important +} + +.text-lime-13 { + color: #c6ff00 !important +} + +.text-lime-14 { + color: #aeea00 !important +} + +.text-yellow { + color: #ffeb3b !important +} + +.text-yellow-1 { + color: #fffde7 !important +} + +.text-yellow-2 { + color: #fff9c4 !important +} + +.text-yellow-3 { + color: #fff59d !important +} + +.text-yellow-4 { + color: #fff176 !important +} + +.text-yellow-5 { + color: #ffee58 !important +} + +.text-yellow-6 { + color: #ffeb3b !important +} + +.text-yellow-7 { + color: #fdd835 !important +} + +.text-yellow-8 { + color: #fbc02d !important +} + +.text-yellow-9 { + color: #f9a825 !important +} + +.text-yellow-10 { + color: #f57f17 !important +} + +.text-yellow-11 { + color: #ffff8d !important +} + +.text-yellow-12 { + color: #ff0 !important +} + +.text-yellow-13 { + color: #ffea00 !important +} + +.text-yellow-14 { + color: #ffd600 !important +} + +.text-amber { + color: #ffc107 !important +} + +.text-amber-1 { + color: #fff8e1 !important +} + +.text-amber-2 { + color: #ffecb3 !important +} + +.text-amber-3 { + color: #ffe082 !important +} + +.text-amber-4 { + color: #ffd54f !important +} + +.text-amber-5 { + color: #ffca28 !important +} + +.text-amber-6 { + color: #ffc107 !important +} + +.text-amber-7 { + color: #ffb300 !important +} + +.text-amber-8 { + color: #ffa000 !important +} + +.text-amber-9 { + color: #ff8f00 !important +} + +.text-amber-10 { + color: #ff6f00 !important +} + +.text-amber-11 { + color: #ffe57f !important +} + +.text-amber-12 { + color: #ffd740 !important +} + +.text-amber-13 { + color: #ffc400 !important +} + +.text-amber-14 { + color: #ffab00 !important +} + +.text-orange { + color: #ff9800 !important +} + +.text-orange-1 { + color: #fff3e0 !important +} + +.text-orange-2 { + color: #ffe0b2 !important +} + +.text-orange-3 { + color: #ffcc80 !important +} + +.text-orange-4 { + color: #ffb74d !important +} + +.text-orange-5 { + color: #ffa726 !important +} + +.text-orange-6 { + color: #ff9800 !important +} + +.text-orange-7 { + color: #fb8c00 !important +} + +.text-orange-8 { + color: #f57c00 !important +} + +.text-orange-9 { + color: #ef6c00 !important +} + +.text-orange-10 { + color: #e65100 !important +} + +.text-orange-11 { + color: #ffd180 !important +} + +.text-orange-12 { + color: #ffab40 !important +} + +.text-orange-13 { + color: #ff9100 !important +} + +.text-orange-14 { + color: #ff6d00 !important +} + +.text-deep-orange { + color: #ff5722 !important +} + +.text-deep-orange-1 { + color: #fbe9e7 !important +} + +.text-deep-orange-2 { + color: #ffccbc !important +} + +.text-deep-orange-3 { + color: #ffab91 !important +} + +.text-deep-orange-4 { + color: #ff8a65 !important +} + +.text-deep-orange-5 { + color: #ff7043 !important +} + +.text-deep-orange-6 { + color: #ff5722 !important +} + +.text-deep-orange-7 { + color: #f4511e !important +} + +.text-deep-orange-8 { + color: #e64a19 !important +} + +.text-deep-orange-9 { + color: #d84315 !important +} + +.text-deep-orange-10 { + color: #bf360c !important +} + +.text-deep-orange-11 { + color: #ff9e80 !important +} + +.text-deep-orange-12 { + color: #ff6e40 !important +} + +.text-deep-orange-13 { + color: #ff3d00 !important +} + +.text-deep-orange-14 { + color: #dd2c00 !important +} + +.text-brown { + color: #795548 !important +} + +.text-brown-1 { + color: #efebe9 !important +} + +.text-brown-2 { + color: #d7ccc8 !important +} + +.text-brown-3 { + color: #bcaaa4 !important +} + +.text-brown-4 { + color: #a1887f !important +} + +.text-brown-5 { + color: #8d6e63 !important +} + +.text-brown-6 { + color: #795548 !important +} + +.text-brown-7 { + color: #6d4c41 !important +} + +.text-brown-8 { + color: #5d4037 !important +} + +.text-brown-9 { + color: #4e342e !important +} + +.text-brown-10 { + color: #3e2723 !important +} + +.text-brown-11 { + color: #d7ccc8 !important +} + +.text-brown-12 { + color: #bcaaa4 !important +} + +.text-brown-13 { + color: #8d6e63 !important +} + +.text-brown-14 { + color: #5d4037 !important +} + +.text-grey { + color: #9e9e9e !important +} + +.text-grey-1 { + color: #fafafa !important +} + +.text-grey-2 { + color: #f5f5f5 !important +} + +.text-grey-3 { + color: #eee !important +} + +.text-grey-4 { + color: #e0e0e0 !important +} + +.text-grey-5 { + color: #bdbdbd !important +} + +.text-grey-6 { + color: #9e9e9e !important +} + +.text-grey-7 { + color: #757575 !important +} + +.text-grey-8 { + color: #616161 !important +} + +.text-grey-9 { + color: #424242 !important +} + +.text-grey-10 { + color: #212121 !important +} + +.text-grey-11 { + color: #f5f5f5 !important +} + +.text-grey-12 { + color: #eee !important +} + +.text-grey-13 { + color: #bdbdbd !important +} + +.text-grey-14 { + color: #616161 !important +} + +.text-blue-grey { + color: #607d8b !important +} + +.text-blue-grey-1 { + color: #eceff1 !important +} + +.text-blue-grey-2 { + color: #cfd8dc !important +} + +.text-blue-grey-3 { + color: #b0bec5 !important +} + +.text-blue-grey-4 { + color: #90a4ae !important +} + +.text-blue-grey-5 { + color: #78909c !important +} + +.text-blue-grey-6 { + color: #607d8b !important +} + +.text-blue-grey-7 { + color: #546e7a !important +} + +.text-blue-grey-8 { + color: #455a64 !important +} + +.text-blue-grey-9 { + color: #37474f !important +} + +.text-blue-grey-10 { + color: #263238 !important +} + +.text-blue-grey-11 { + color: #cfd8dc !important +} + +.text-blue-grey-12 { + color: #b0bec5 !important +} + +.text-blue-grey-13 { + color: #78909c !important +} + +.text-blue-grey-14 { + color: #455a64 !important +} + +.bg-red { + background: #f44336 !important +} + +.bg-red-1 { + background: #ffebee !important +} + +.bg-red-2 { + background: #ffcdd2 !important +} + +.bg-red-3 { + background: #ef9a9a !important +} + +.bg-red-4 { + background: #e57373 !important +} + +.bg-red-5 { + background: #ef5350 !important +} + +.bg-red-6 { + background: #f44336 !important +} + +.bg-red-7 { + background: #e53935 !important +} + +.bg-red-8 { + background: #d32f2f !important +} + +.bg-red-9 { + background: #c62828 !important +} + +.bg-red-10 { + background: #b71c1c !important +} + +.bg-red-11 { + background: #ff8a80 !important +} + +.bg-red-12 { + background: #ff5252 !important +} + +.bg-red-13 { + background: #ff1744 !important +} + +.bg-red-14 { + background: #d50000 !important +} + +.bg-pink { + background: #e91e63 !important +} + +.bg-pink-1 { + background: #fce4ec !important +} + +.bg-pink-2 { + background: #f8bbd0 !important +} + +.bg-pink-3 { + background: #f48fb1 !important +} + +.bg-pink-4 { + background: #f06292 !important +} + +.bg-pink-5 { + background: #ec407a !important +} + +.bg-pink-6 { + background: #e91e63 !important +} + +.bg-pink-7 { + background: #d81b60 !important +} + +.bg-pink-8 { + background: #c2185b !important +} + +.bg-pink-9 { + background: #ad1457 !important +} + +.bg-pink-10 { + background: #880e4f !important +} + +.bg-pink-11 { + background: #ff80ab !important +} + +.bg-pink-12 { + background: #ff4081 !important +} + +.bg-pink-13 { + background: #f50057 !important +} + +.bg-pink-14 { + background: #c51162 !important +} + +.bg-purple { + background: #9c27b0 !important +} + +.bg-purple-1 { + background: #f3e5f5 !important +} + +.bg-purple-2 { + background: #e1bee7 !important +} + +.bg-purple-3 { + background: #ce93d8 !important +} + +.bg-purple-4 { + background: #ba68c8 !important +} + +.bg-purple-5 { + background: #ab47bc !important +} + +.bg-purple-6 { + background: #9c27b0 !important +} + +.bg-purple-7 { + background: #8e24aa !important +} + +.bg-purple-8 { + background: #7b1fa2 !important +} + +.bg-purple-9 { + background: #6a1b9a !important +} + +.bg-purple-10 { + background: #4a148c !important +} + +.bg-purple-11 { + background: #ea80fc !important +} + +.bg-purple-12 { + background: #e040fb !important +} + +.bg-purple-13 { + background: #d500f9 !important +} + +.bg-purple-14 { + background: #a0f !important +} + +.bg-deep-purple { + background: #673ab7 !important +} + +.bg-deep-purple-1 { + background: #ede7f6 !important +} + +.bg-deep-purple-2 { + background: #d1c4e9 !important +} + +.bg-deep-purple-3 { + background: #b39ddb !important +} + +.bg-deep-purple-4 { + background: #9575cd !important +} + +.bg-deep-purple-5 { + background: #7e57c2 !important +} + +.bg-deep-purple-6 { + background: #673ab7 !important +} + +.bg-deep-purple-7 { + background: #5e35b1 !important +} + +.bg-deep-purple-8 { + background: #512da8 !important +} + +.bg-deep-purple-9 { + background: #4527a0 !important +} + +.bg-deep-purple-10 { + background: #311b92 !important +} + +.bg-deep-purple-11 { + background: #b388ff !important +} + +.bg-deep-purple-12 { + background: #7c4dff !important +} + +.bg-deep-purple-13 { + background: #651fff !important +} + +.bg-deep-purple-14 { + background: #6200ea !important +} + +.bg-indigo { + background: #3f51b5 !important +} + +.bg-indigo-1 { + background: #e8eaf6 !important +} + +.bg-indigo-2 { + background: #c5cae9 !important +} + +.bg-indigo-3 { + background: #9fa8da !important +} + +.bg-indigo-4 { + background: #7986cb !important +} + +.bg-indigo-5 { + background: #5c6bc0 !important +} + +.bg-indigo-6 { + background: #3f51b5 !important +} + +.bg-indigo-7 { + background: #3949ab !important +} + +.bg-indigo-8 { + background: #303f9f !important +} + +.bg-indigo-9 { + background: #283593 !important +} + +.bg-indigo-10 { + background: #1a237e !important +} + +.bg-indigo-11 { + background: #8c9eff !important +} + +.bg-indigo-12 { + background: #536dfe !important +} + +.bg-indigo-13 { + background: #3d5afe !important +} + +.bg-indigo-14 { + background: #304ffe !important +} + +.bg-blue { + background: #2196f3 !important +} + +.bg-blue-1 { + background: #e3f2fd !important +} + +.bg-blue-2 { + background: #bbdefb !important +} + +.bg-blue-3 { + background: #90caf9 !important +} + +.bg-blue-4 { + background: #64b5f6 !important +} + +.bg-blue-5 { + background: #42a5f5 !important +} + +.bg-blue-6 { + background: #2196f3 !important +} + +.bg-blue-7 { + background: #1e88e5 !important +} + +.bg-blue-8 { + background: #1976d2 !important +} + +.bg-blue-9 { + background: #1565c0 !important +} + +.bg-blue-10 { + background: #0d47a1 !important +} + +.bg-blue-11 { + background: #82b1ff !important +} + +.bg-blue-12 { + background: #448aff !important +} + +.bg-blue-13 { + background: #2979ff !important +} + +.bg-blue-14 { + background: #2962ff !important +} + +.bg-light-blue { + background: #03a9f4 !important +} + +.bg-light-blue-1 { + background: #e1f5fe !important +} + +.bg-light-blue-2 { + background: #b3e5fc !important +} + +.bg-light-blue-3 { + background: #81d4fa !important +} + +.bg-light-blue-4 { + background: #4fc3f7 !important +} + +.bg-light-blue-5 { + background: #29b6f6 !important +} + +.bg-light-blue-6 { + background: #03a9f4 !important +} + +.bg-light-blue-7 { + background: #039be5 !important +} + +.bg-light-blue-8 { + background: #0288d1 !important +} + +.bg-light-blue-9 { + background: #0277bd !important +} + +.bg-light-blue-10 { + background: #01579b !important +} + +.bg-light-blue-11 { + background: #80d8ff !important +} + +.bg-light-blue-12 { + background: #40c4ff !important +} + +.bg-light-blue-13 { + background: #00b0ff !important +} + +.bg-light-blue-14 { + background: #0091ea !important +} + +.bg-cyan { + background: #00bcd4 !important +} + +.bg-cyan-1 { + background: #e0f7fa !important +} + +.bg-cyan-2 { + background: #b2ebf2 !important +} + +.bg-cyan-3 { + background: #80deea !important +} + +.bg-cyan-4 { + background: #4dd0e1 !important +} + +.bg-cyan-5 { + background: #26c6da !important +} + +.bg-cyan-6 { + background: #00bcd4 !important +} + +.bg-cyan-7 { + background: #00acc1 !important +} + +.bg-cyan-8 { + background: #0097a7 !important +} + +.bg-cyan-9 { + background: #00838f !important +} + +.bg-cyan-10 { + background: #006064 !important +} + +.bg-cyan-11 { + background: #84ffff !important +} + +.bg-cyan-12 { + background: #18ffff !important +} + +.bg-cyan-13 { + background: #00e5ff !important +} + +.bg-cyan-14 { + background: #00b8d4 !important +} + +.bg-teal { + background: #009688 !important +} + +.bg-teal-1 { + background: #e0f2f1 !important +} + +.bg-teal-2 { + background: #b2dfdb !important +} + +.bg-teal-3 { + background: #80cbc4 !important +} + +.bg-teal-4 { + background: #4db6ac !important +} + +.bg-teal-5 { + background: #26a69a !important +} + +.bg-teal-6 { + background: #009688 !important +} + +.bg-teal-7 { + background: #00897b !important +} + +.bg-teal-8 { + background: #00796b !important +} + +.bg-teal-9 { + background: #00695c !important +} + +.bg-teal-10 { + background: #004d40 !important +} + +.bg-teal-11 { + background: #a7ffeb !important +} + +.bg-teal-12 { + background: #64ffda !important +} + +.bg-teal-13 { + background: #1de9b6 !important +} + +.bg-teal-14 { + background: #00bfa5 !important +} + +.bg-green { + background: #4caf50 !important +} + +.bg-green-1 { + background: #e8f5e9 !important +} + +.bg-green-2 { + background: #c8e6c9 !important +} + +.bg-green-3 { + background: #a5d6a7 !important +} + +.bg-green-4 { + background: #81c784 !important +} + +.bg-green-5 { + background: #66bb6a !important +} + +.bg-green-6 { + background: #4caf50 !important +} + +.bg-green-7 { + background: #43a047 !important +} + +.bg-green-8 { + background: #388e3c !important +} + +.bg-green-9 { + background: #2e7d32 !important +} + +.bg-green-10 { + background: #1b5e20 !important +} + +.bg-green-11 { + background: #b9f6ca !important +} + +.bg-green-12 { + background: #69f0ae !important +} + +.bg-green-13 { + background: #00e676 !important +} + +.bg-green-14 { + background: #00c853 !important +} + +.bg-light-green { + background: #8bc34a !important +} + +.bg-light-green-1 { + background: #f1f8e9 !important +} + +.bg-light-green-2 { + background: #dcedc8 !important +} + +.bg-light-green-3 { + background: #c5e1a5 !important +} + +.bg-light-green-4 { + background: #aed581 !important +} + +.bg-light-green-5 { + background: #9ccc65 !important +} + +.bg-light-green-6 { + background: #8bc34a !important +} + +.bg-light-green-7 { + background: #7cb342 !important +} + +.bg-light-green-8 { + background: #689f38 !important +} + +.bg-light-green-9 { + background: #558b2f !important +} + +.bg-light-green-10 { + background: #33691e !important +} + +.bg-light-green-11 { + background: #ccff90 !important +} + +.bg-light-green-12 { + background: #b2ff59 !important +} + +.bg-light-green-13 { + background: #76ff03 !important +} + +.bg-light-green-14 { + background: #64dd17 !important +} + +.bg-lime { + background: #cddc39 !important +} + +.bg-lime-1 { + background: #f9fbe7 !important +} + +.bg-lime-2 { + background: #f0f4c3 !important +} + +.bg-lime-3 { + background: #e6ee9c !important +} + +.bg-lime-4 { + background: #dce775 !important +} + +.bg-lime-5 { + background: #d4e157 !important +} + +.bg-lime-6 { + background: #cddc39 !important +} + +.bg-lime-7 { + background: #c0ca33 !important +} + +.bg-lime-8 { + background: #afb42b !important +} + +.bg-lime-9 { + background: #9e9d24 !important +} + +.bg-lime-10 { + background: #827717 !important +} + +.bg-lime-11 { + background: #f4ff81 !important +} + +.bg-lime-12 { + background: #eeff41 !important +} + +.bg-lime-13 { + background: #c6ff00 !important +} + +.bg-lime-14 { + background: #aeea00 !important +} + +.bg-yellow { + background: #ffeb3b !important +} + +.bg-yellow-1 { + background: #fffde7 !important +} + +.bg-yellow-2 { + background: #fff9c4 !important +} + +.bg-yellow-3 { + background: #fff59d !important +} + +.bg-yellow-4 { + background: #fff176 !important +} + +.bg-yellow-5 { + background: #ffee58 !important +} + +.bg-yellow-6 { + background: #ffeb3b !important +} + +.bg-yellow-7 { + background: #fdd835 !important +} + +.bg-yellow-8 { + background: #fbc02d !important +} + +.bg-yellow-9 { + background: #f9a825 !important +} + +.bg-yellow-10 { + background: #f57f17 !important +} + +.bg-yellow-11 { + background: #ffff8d !important +} + +.bg-yellow-12 { + background: #ff0 !important +} + +.bg-yellow-13 { + background: #ffea00 !important +} + +.bg-yellow-14 { + background: #ffd600 !important +} + +.bg-amber { + background: #ffc107 !important +} + +.bg-amber-1 { + background: #fff8e1 !important +} + +.bg-amber-2 { + background: #ffecb3 !important +} + +.bg-amber-3 { + background: #ffe082 !important +} + +.bg-amber-4 { + background: #ffd54f !important +} + +.bg-amber-5 { + background: #ffca28 !important +} + +.bg-amber-6 { + background: #ffc107 !important +} + +.bg-amber-7 { + background: #ffb300 !important +} + +.bg-amber-8 { + background: #ffa000 !important +} + +.bg-amber-9 { + background: #ff8f00 !important +} + +.bg-amber-10 { + background: #ff6f00 !important +} + +.bg-amber-11 { + background: #ffe57f !important +} + +.bg-amber-12 { + background: #ffd740 !important +} + +.bg-amber-13 { + background: #ffc400 !important +} + +.bg-amber-14 { + background: #ffab00 !important +} + +.bg-orange { + background: #ff9800 !important +} + +.bg-orange-1 { + background: #fff3e0 !important +} + +.bg-orange-2 { + background: #ffe0b2 !important +} + +.bg-orange-3 { + background: #ffcc80 !important +} + +.bg-orange-4 { + background: #ffb74d !important +} + +.bg-orange-5 { + background: #ffa726 !important +} + +.bg-orange-6 { + background: #ff9800 !important +} + +.bg-orange-7 { + background: #fb8c00 !important +} + +.bg-orange-8 { + background: #f57c00 !important +} + +.bg-orange-9 { + background: #ef6c00 !important +} + +.bg-orange-10 { + background: #e65100 !important +} + +.bg-orange-11 { + background: #ffd180 !important +} + +.bg-orange-12 { + background: #ffab40 !important +} + +.bg-orange-13 { + background: #ff9100 !important +} + +.bg-orange-14 { + background: #ff6d00 !important +} + +.bg-deep-orange { + background: #ff5722 !important +} + +.bg-deep-orange-1 { + background: #fbe9e7 !important +} + +.bg-deep-orange-2 { + background: #ffccbc !important +} + +.bg-deep-orange-3 { + background: #ffab91 !important +} + +.bg-deep-orange-4 { + background: #ff8a65 !important +} + +.bg-deep-orange-5 { + background: #ff7043 !important +} + +.bg-deep-orange-6 { + background: #ff5722 !important +} + +.bg-deep-orange-7 { + background: #f4511e !important +} + +.bg-deep-orange-8 { + background: #e64a19 !important +} + +.bg-deep-orange-9 { + background: #d84315 !important +} + +.bg-deep-orange-10 { + background: #bf360c !important +} + +.bg-deep-orange-11 { + background: #ff9e80 !important +} + +.bg-deep-orange-12 { + background: #ff6e40 !important +} + +.bg-deep-orange-13 { + background: #ff3d00 !important +} + +.bg-deep-orange-14 { + background: #dd2c00 !important +} + +.bg-brown { + background: #795548 !important +} + +.bg-brown-1 { + background: #efebe9 !important +} + +.bg-brown-2 { + background: #d7ccc8 !important +} + +.bg-brown-3 { + background: #bcaaa4 !important +} + +.bg-brown-4 { + background: #a1887f !important +} + +.bg-brown-5 { + background: #8d6e63 !important +} + +.bg-brown-6 { + background: #795548 !important +} + +.bg-brown-7 { + background: #6d4c41 !important +} + +.bg-brown-8 { + background: #5d4037 !important +} + +.bg-brown-9 { + background: #4e342e !important +} + +.bg-brown-10 { + background: #3e2723 !important +} + +.bg-brown-11 { + background: #d7ccc8 !important +} + +.bg-brown-12 { + background: #bcaaa4 !important +} + +.bg-brown-13 { + background: #8d6e63 !important +} + +.bg-brown-14 { + background: #5d4037 !important +} + +.bg-grey { + background: #9e9e9e !important +} + +.bg-grey-1 { + background: #fafafa !important +} + +.bg-grey-2 { + background: #f5f5f5 !important +} + +.bg-grey-3 { + background: #eee !important +} + +.bg-grey-4 { + background: #e0e0e0 !important +} + +.bg-grey-5 { + background: #bdbdbd !important +} + +.bg-grey-6 { + background: #9e9e9e !important +} + +.bg-grey-7 { + background: #757575 !important +} + +.bg-grey-8 { + background: #616161 !important +} + +.bg-grey-9 { + background: #424242 !important +} + +.bg-grey-10 { + background: #212121 !important +} + +.bg-grey-11 { + background: #f5f5f5 !important +} + +.bg-grey-12 { + background: #eee !important +} + +.bg-grey-13 { + background: #bdbdbd !important +} + +.bg-grey-14 { + background: #616161 !important +} + +.bg-blue-grey { + background: #607d8b !important +} + +.bg-blue-grey-1 { + background: #eceff1 !important +} + +.bg-blue-grey-2 { + background: #cfd8dc !important +} + +.bg-blue-grey-3 { + background: #b0bec5 !important +} + +.bg-blue-grey-4 { + background: #90a4ae !important +} + +.bg-blue-grey-5 { + background: #78909c !important +} + +.bg-blue-grey-6 { + background: #607d8b !important +} + +.bg-blue-grey-7 { + background: #546e7a !important +} + +.bg-blue-grey-8 { + background: #455a64 !important +} + +.bg-blue-grey-9 { + background: #37474f !important +} + +.bg-blue-grey-10 { + background: #263238 !important +} + +.bg-blue-grey-11 { + background: #cfd8dc !important +} + +.bg-blue-grey-12 { + background: #b0bec5 !important +} + +.bg-blue-grey-13 { + background: #78909c !important +} + +.bg-blue-grey-14 { + background: #455a64 !important +} + +.shadow-transition { + transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1) !important +} + +.shadow-1 { + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2), 0 1px 1px rgba(0, 0, 0, 0.14), 0 2px 1px -1px rgba(0, 0, 0, 0.12) +} + +.shadow-up-1 { + box-shadow: 0 -1px 3px rgba(0, 0, 0, 0.2), 0 -1px 1px rgba(0, 0, 0, 0.14), 0 -2px 1px -1px rgba(0, 0, 0, 0.12) +} + +.shadow-2 { + box-shadow: 0 1px 5px rgba(0, 0, 0, 0.2), 0 2px 2px rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12) +} + +.shadow-up-2 { + box-shadow: 0 -1px 5px rgba(0, 0, 0, 0.2), 0 -2px 2px rgba(0, 0, 0, 0.14), 0 -3px 1px -2px rgba(0, 0, 0, 0.12) +} + +.shadow-3 { + box-shadow: 0 1px 8px rgba(0, 0, 0, 0.2), 0 3px 4px rgba(0, 0, 0, 0.14), 0 3px 3px -2px rgba(0, 0, 0, 0.12) +} + +.shadow-up-3 { + box-shadow: 0 -1px 8px rgba(0, 0, 0, 0.2), 0 -3px 4px rgba(0, 0, 0, 0.14), 0 -3px 3px -2px rgba(0, 0, 0, 0.12) +} + +.shadow-4 { + box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px rgba(0, 0, 0, 0.14), 0 1px 10px rgba(0, 0, 0, 0.12) +} + +.shadow-up-4 { + box-shadow: 0 -2px 4px -1px rgba(0, 0, 0, 0.2), 0 -4px 5px rgba(0, 0, 0, 0.14), 0 -1px 10px rgba(0, 0, 0, 0.12) +} + +.shadow-5 { + box-shadow: 0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 5px 8px rgba(0, 0, 0, 0.14), 0 1px 14px rgba(0, 0, 0, 0.12) +} + +.shadow-up-5 { + box-shadow: 0 -3px 5px -1px rgba(0, 0, 0, 0.2), 0 -5px 8px rgba(0, 0, 0, 0.14), 0 -1px 14px rgba(0, 0, 0, 0.12) +} + +.shadow-6 { + box-shadow: 0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 6px 10px rgba(0, 0, 0, 0.14), 0 1px 18px rgba(0, 0, 0, 0.12) +} + +.shadow-up-6 { + box-shadow: 0 -3px 5px -1px rgba(0, 0, 0, 0.2), 0 -6px 10px rgba(0, 0, 0, 0.14), 0 -1px 18px rgba(0, 0, 0, 0.12) +} + +.shadow-7 { + box-shadow: 0 4px 5px -2px rgba(0, 0, 0, 0.2), 0 7px 10px 1px rgba(0, 0, 0, 0.14), 0 2px 16px 1px rgba(0, 0, 0, 0.12) +} + +.shadow-up-7 { + box-shadow: 0 -4px 5px -2px rgba(0, 0, 0, 0.2), 0 -7px 10px 1px rgba(0, 0, 0, 0.14), 0 -2px 16px 1px rgba(0, 0, 0, 0.12) +} + +.shadow-8 { + box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12) +} + +.shadow-up-8 { + box-shadow: 0 -5px 5px -3px rgba(0, 0, 0, 0.2), 0 -8px 10px 1px rgba(0, 0, 0, 0.14), 0 -3px 14px 2px rgba(0, 0, 0, 0.12) +} + +.shadow-9 { + box-shadow: 0 5px 6px -3px rgba(0, 0, 0, 0.2), 0 9px 12px 1px rgba(0, 0, 0, 0.14), 0 3px 16px 2px rgba(0, 0, 0, 0.12) +} + +.shadow-up-9 { + box-shadow: 0 -5px 6px -3px rgba(0, 0, 0, 0.2), 0 -9px 12px 1px rgba(0, 0, 0, 0.14), 0 -3px 16px 2px rgba(0, 0, 0, 0.12) +} + +.shadow-10 { + box-shadow: 0 6px 6px -3px rgba(0, 0, 0, 0.2), 0 10px 14px 1px rgba(0, 0, 0, 0.14), 0 4px 18px 3px rgba(0, 0, 0, 0.12) +} + +.shadow-up-10 { + box-shadow: 0 -6px 6px -3px rgba(0, 0, 0, 0.2), 0 -10px 14px 1px rgba(0, 0, 0, 0.14), 0 -4px 18px 3px rgba(0, 0, 0, 0.12) +} + +.shadow-11 { + box-shadow: 0 6px 7px -4px rgba(0, 0, 0, 0.2), 0 11px 15px 1px rgba(0, 0, 0, 0.14), 0 4px 20px 3px rgba(0, 0, 0, 0.12) +} + +.shadow-up-11 { + box-shadow: 0 -6px 7px -4px rgba(0, 0, 0, 0.2), 0 -11px 15px 1px rgba(0, 0, 0, 0.14), 0 -4px 20px 3px rgba(0, 0, 0, 0.12) +} + +.shadow-12 { + box-shadow: 0 7px 8px -4px rgba(0, 0, 0, 0.2), 0 12px 17px 2px rgba(0, 0, 0, 0.14), 0 5px 22px 4px rgba(0, 0, 0, 0.12) +} + +.shadow-up-12 { + box-shadow: 0 -7px 8px -4px rgba(0, 0, 0, 0.2), 0 -12px 17px 2px rgba(0, 0, 0, 0.14), 0 -5px 22px 4px rgba(0, 0, 0, 0.12) +} + +.shadow-13 { + box-shadow: 0 7px 8px -4px rgba(0, 0, 0, 0.2), 0 13px 19px 2px rgba(0, 0, 0, 0.14), 0 5px 24px 4px rgba(0, 0, 0, 0.12) +} + +.shadow-up-13 { + box-shadow: 0 -7px 8px -4px rgba(0, 0, 0, 0.2), 0 -13px 19px 2px rgba(0, 0, 0, 0.14), 0 -5px 24px 4px rgba(0, 0, 0, 0.12) +} + +.shadow-14 { + box-shadow: 0 7px 9px -4px rgba(0, 0, 0, 0.2), 0 14px 21px 2px rgba(0, 0, 0, 0.14), 0 5px 26px 4px rgba(0, 0, 0, 0.12) +} + +.shadow-up-14 { + box-shadow: 0 -7px 9px -4px rgba(0, 0, 0, 0.2), 0 -14px 21px 2px rgba(0, 0, 0, 0.14), 0 -5px 26px 4px rgba(0, 0, 0, 0.12) +} + +.shadow-15 { + box-shadow: 0 8px 9px -5px rgba(0, 0, 0, 0.2), 0 15px 22px 2px rgba(0, 0, 0, 0.14), 0 6px 28px 5px rgba(0, 0, 0, 0.12) +} + +.shadow-up-15 { + box-shadow: 0 -8px 9px -5px rgba(0, 0, 0, 0.2), 0 -15px 22px 2px rgba(0, 0, 0, 0.14), 0 -6px 28px 5px rgba(0, 0, 0, 0.12) +} + +.shadow-16 { + box-shadow: 0 8px 10px -5px rgba(0, 0, 0, 0.2), 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12) +} + +.shadow-up-16 { + box-shadow: 0 -8px 10px -5px rgba(0, 0, 0, 0.2), 0 -16px 24px 2px rgba(0, 0, 0, 0.14), 0 -6px 30px 5px rgba(0, 0, 0, 0.12) +} + +.shadow-17 { + box-shadow: 0 8px 11px -5px rgba(0, 0, 0, 0.2), 0 17px 26px 2px rgba(0, 0, 0, 0.14), 0 6px 32px 5px rgba(0, 0, 0, 0.12) +} + +.shadow-up-17 { + box-shadow: 0 -8px 11px -5px rgba(0, 0, 0, 0.2), 0 -17px 26px 2px rgba(0, 0, 0, 0.14), 0 -6px 32px 5px rgba(0, 0, 0, 0.12) +} + +.shadow-18 { + box-shadow: 0 9px 11px -5px rgba(0, 0, 0, 0.2), 0 18px 28px 2px rgba(0, 0, 0, 0.14), 0 7px 34px 6px rgba(0, 0, 0, 0.12) +} + +.shadow-up-18 { + box-shadow: 0 -9px 11px -5px rgba(0, 0, 0, 0.2), 0 -18px 28px 2px rgba(0, 0, 0, 0.14), 0 -7px 34px 6px rgba(0, 0, 0, 0.12) +} + +.shadow-19 { + box-shadow: 0 9px 12px -6px rgba(0, 0, 0, 0.2), 0 19px 29px 2px rgba(0, 0, 0, 0.14), 0 7px 36px 6px rgba(0, 0, 0, 0.12) +} + +.shadow-up-19 { + box-shadow: 0 -9px 12px -6px rgba(0, 0, 0, 0.2), 0 -19px 29px 2px rgba(0, 0, 0, 0.14), 0 -7px 36px 6px rgba(0, 0, 0, 0.12) +} + +.shadow-20 { + box-shadow: 0 10px 13px -6px rgba(0, 0, 0, 0.2), 0 20px 31px 3px rgba(0, 0, 0, 0.14), 0 8px 38px 7px rgba(0, 0, 0, 0.12) +} + +.shadow-up-20 { + box-shadow: 0 -10px 13px -6px rgba(0, 0, 0, 0.2), 0 -20px 31px 3px rgba(0, 0, 0, 0.14), 0 -8px 38px 7px rgba(0, 0, 0, 0.12) +} + +.shadow-21 { + box-shadow: 0 10px 13px -6px rgba(0, 0, 0, 0.2), 0 21px 33px 3px rgba(0, 0, 0, 0.14), 0 8px 40px 7px rgba(0, 0, 0, 0.12) +} + +.shadow-up-21 { + box-shadow: 0 -10px 13px -6px rgba(0, 0, 0, 0.2), 0 -21px 33px 3px rgba(0, 0, 0, 0.14), 0 -8px 40px 7px rgba(0, 0, 0, 0.12) +} + +.shadow-22 { + box-shadow: 0 10px 14px -6px rgba(0, 0, 0, 0.2), 0 22px 35px 3px rgba(0, 0, 0, 0.14), 0 8px 42px 7px rgba(0, 0, 0, 0.12) +} + +.shadow-up-22 { + box-shadow: 0 -10px 14px -6px rgba(0, 0, 0, 0.2), 0 -22px 35px 3px rgba(0, 0, 0, 0.14), 0 -8px 42px 7px rgba(0, 0, 0, 0.12) +} + +.shadow-23 { + box-shadow: 0 11px 14px -7px rgba(0, 0, 0, 0.2), 0 23px 36px 3px rgba(0, 0, 0, 0.14), 0 9px 44px 8px rgba(0, 0, 0, 0.12) +} + +.shadow-up-23 { + box-shadow: 0 -11px 14px -7px rgba(0, 0, 0, 0.2), 0 -23px 36px 3px rgba(0, 0, 0, 0.14), 0 -9px 44px 8px rgba(0, 0, 0, 0.12) +} + +.shadow-24 { + box-shadow: 0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12) +} + +.shadow-up-24 { + box-shadow: 0 -11px 15px -7px rgba(0, 0, 0, 0.2), 0 -24px 38px 3px rgba(0, 0, 0, 0.14), 0 -9px 46px 8px rgba(0, 0, 0, 0.12) +} + +.no-shadow, +.shadow-0 { + box-shadow: none !important +} + +.inset-shadow { + box-shadow: inset 0 7px 9px -7px rgba(0, 0, 0, 0.7) !important +} + +.inset-shadow-down { + box-shadow: inset 0 -7px 9px -7px rgba(0, 0, 0, 0.7) !important +} + +.z-marginals { + z-index: 2000 +} + +.z-notify { + z-index: 9500 +} + +.z-fullscreen { + z-index: 6000 +} + +.z-inherit { + z-index: inherit !important +} + +.column, +.flex, +.row { + display : flex; + flex-wrap: wrap +} + +.column.inline, +.flex.inline, +.row.inline { + display: inline-flex +} + +.row.reverse { + flex-direction: row-reverse +} + +.column { + flex-direction: column +} + +.column.reverse { + flex-direction: column-reverse +} + +.wrap { + flex-wrap: wrap +} + +.no-wrap { + flex-wrap: nowrap +} + +.reverse-wrap { + flex-wrap: wrap-reverse +} + +.order-first { + order: -10000 +} + +.order-last { + order: 10000 +} + +.order-none { + order: 0 +} + +.justify-start { + justify-content: flex-start +} + +.justify-end { + justify-content: flex-end +} + +.flex-center, +.justify-center { + justify-content: center +} + +.justify-between { + justify-content: space-between +} + +.justify-around { + justify-content: space-around +} + +.justify-evenly { + justify-content: space-evenly +} + +.items-start { + align-items: flex-start +} + +.items-end { + align-items: flex-end +} + +.flex-center, +.items-center { + align-items: center +} + +.items-baseline { + align-items: baseline +} + +.items-stretch { + align-items: stretch +} + +.content-start { + align-content: flex-start +} + +.content-end { + align-content: flex-end +} + +.content-center { + align-content: center +} + +.content-stretch { + align-content: stretch +} + +.content-between { + align-content: space-between +} + +.content-around { + align-content: space-around +} + +.self-start { + align-self: flex-start +} + +.self-end { + align-self: flex-end +} + +.self-center { + align-self: center +} + +.self-baseline { + align-self: baseline +} + +.self-stretch { + align-self: stretch +} + +.q-gutter-none, +.q-gutter-none>*, +.q-gutter-x-none, +.q-gutter-x-none>* { + margin-left: 0 +} + +.q-gutter-none, +.q-gutter-none>*, +.q-gutter-y-none, +.q-gutter-y-none>* { + margin-top: 0 +} + +.q-col-gutter-none, +.q-col-gutter-x-none { + margin-left: 0 +} + +.q-col-gutter-none>*, +.q-col-gutter-x-none>* { + padding-left: 0 +} + +.q-col-gutter-none, +.q-col-gutter-y-none { + margin-top: 0 +} + +.q-col-gutter-none>*, +.q-col-gutter-y-none>* { + padding-top: 0 +} + +.q-gutter-x-xs, +.q-gutter-xs { + margin-left: -4px +} + +.q-gutter-x-xs>*, +.q-gutter-xs>* { + margin-left: 4px +} + +.q-gutter-xs, +.q-gutter-y-xs { + margin-top: -4px +} + +.q-gutter-xs>*, +.q-gutter-y-xs>* { + margin-top: 4px +} + +.q-col-gutter-x-xs, +.q-col-gutter-xs { + margin-left: -4px +} + +.q-col-gutter-x-xs>*, +.q-col-gutter-xs>* { + padding-left: 4px +} + +.q-col-gutter-xs, +.q-col-gutter-y-xs { + margin-top: -4px +} + +.q-col-gutter-xs>*, +.q-col-gutter-y-xs>* { + padding-top: 4px +} + +.q-gutter-sm, +.q-gutter-x-sm { + margin-left: -8px +} + +.q-gutter-sm>*, +.q-gutter-x-sm>* { + margin-left: 8px +} + +.q-gutter-sm, +.q-gutter-y-sm { + margin-top: -8px +} + +.q-gutter-sm>*, +.q-gutter-y-sm>* { + margin-top: 8px +} + +.q-col-gutter-sm, +.q-col-gutter-x-sm { + margin-left: -8px +} + +.q-col-gutter-sm>*, +.q-col-gutter-x-sm>* { + padding-left: 8px +} + +.q-col-gutter-sm, +.q-col-gutter-y-sm { + margin-top: -8px +} + +.q-col-gutter-sm>*, +.q-col-gutter-y-sm>* { + padding-top: 8px +} + +.q-gutter-md, +.q-gutter-x-md { + margin-left: -16px +} + +.q-gutter-md>*, +.q-gutter-x-md>* { + margin-left: 16px +} + +.q-gutter-md, +.q-gutter-y-md { + margin-top: -16px +} + +.q-gutter-md>*, +.q-gutter-y-md>* { + margin-top: 16px +} + +.q-col-gutter-md, +.q-col-gutter-x-md { + margin-left: -16px +} + +.q-col-gutter-md>*, +.q-col-gutter-x-md>* { + padding-left: 16px +} + +.q-col-gutter-md, +.q-col-gutter-y-md { + margin-top: -16px +} + +.q-col-gutter-md>*, +.q-col-gutter-y-md>* { + padding-top: 16px +} + +.q-gutter-lg, +.q-gutter-x-lg { + margin-left: -24px +} + +.q-gutter-lg>*, +.q-gutter-x-lg>* { + margin-left: 24px +} + +.q-gutter-lg, +.q-gutter-y-lg { + margin-top: -24px +} + +.q-gutter-lg>*, +.q-gutter-y-lg>* { + margin-top: 24px +} + +.q-col-gutter-lg, +.q-col-gutter-x-lg { + margin-left: -24px +} + +.q-col-gutter-lg>*, +.q-col-gutter-x-lg>* { + padding-left: 24px +} + +.q-col-gutter-lg, +.q-col-gutter-y-lg { + margin-top: -24px +} + +.q-col-gutter-lg>*, +.q-col-gutter-y-lg>* { + padding-top: 24px +} + +.q-gutter-x-xl, +.q-gutter-xl { + margin-left: -48px +} + +.q-gutter-x-xl>*, +.q-gutter-xl>* { + margin-left: 48px +} + +.q-gutter-xl, +.q-gutter-y-xl { + margin-top: -48px +} + +.q-gutter-xl>*, +.q-gutter-y-xl>* { + margin-top: 48px +} + +.q-col-gutter-x-xl, +.q-col-gutter-xl { + margin-left: -48px +} + +.q-col-gutter-x-xl>*, +.q-col-gutter-xl>* { + padding-left: 48px +} + +.q-col-gutter-xl, +.q-col-gutter-y-xl { + margin-top: -48px +} + +.q-col-gutter-xl>*, +.q-col-gutter-y-xl>* { + padding-top: 48px +} + +@media (min-width:0) { + + .flex>.col, + .flex>.col-0, + .flex>.col-1, + .flex>.col-2, + .flex>.col-3, + .flex>.col-4, + .flex>.col-5, + .flex>.col-6, + .flex>.col-7, + .flex>.col-8, + .flex>.col-9, + .flex>.col-10, + .flex>.col-11, + .flex>.col-12, + .flex>.col-auto, + .flex>.col-grow, + .flex>.col-shrink, + .flex>.col-xs, + .flex>.col-xs-0, + .flex>.col-xs-1, + .flex>.col-xs-2, + .flex>.col-xs-3, + .flex>.col-xs-4, + .flex>.col-xs-5, + .flex>.col-xs-6, + .flex>.col-xs-7, + .flex>.col-xs-8, + .flex>.col-xs-9, + .flex>.col-xs-10, + .flex>.col-xs-11, + .flex>.col-xs-12, + .flex>.col-xs-auto, + .flex>.col-xs-grow, + .flex>.col-xs-shrink, + .row>.col, + .row>.col-0, + .row>.col-1, + .row>.col-2, + .row>.col-3, + .row>.col-4, + .row>.col-5, + .row>.col-6, + .row>.col-7, + .row>.col-8, + .row>.col-9, + .row>.col-10, + .row>.col-11, + .row>.col-12, + .row>.col-auto, + .row>.col-grow, + .row>.col-shrink, + .row>.col-xs, + .row>.col-xs-0, + .row>.col-xs-1, + .row>.col-xs-2, + .row>.col-xs-3, + .row>.col-xs-4, + .row>.col-xs-5, + .row>.col-xs-6, + .row>.col-xs-7, + .row>.col-xs-8, + .row>.col-xs-9, + .row>.col-xs-10, + .row>.col-xs-11, + .row>.col-xs-12, + .row>.col-xs-auto, + .row>.col-xs-grow, + .row>.col-xs-shrink { + width : auto; + min-width: 0; + max-width: 100% + } + + .column>.col, + .column>.col-0, + .column>.col-1, + .column>.col-2, + .column>.col-3, + .column>.col-4, + .column>.col-5, + .column>.col-6, + .column>.col-7, + .column>.col-8, + .column>.col-9, + .column>.col-10, + .column>.col-11, + .column>.col-12, + .column>.col-auto, + .column>.col-grow, + .column>.col-shrink, + .column>.col-xs, + .column>.col-xs-0, + .column>.col-xs-1, + .column>.col-xs-2, + .column>.col-xs-3, + .column>.col-xs-4, + .column>.col-xs-5, + .column>.col-xs-6, + .column>.col-xs-7, + .column>.col-xs-8, + .column>.col-xs-9, + .column>.col-xs-10, + .column>.col-xs-11, + .column>.col-xs-12, + .column>.col-xs-auto, + .column>.col-xs-grow, + .column>.col-xs-shrink, + .flex>.col, + .flex>.col-0, + .flex>.col-1, + .flex>.col-2, + .flex>.col-3, + .flex>.col-4, + .flex>.col-5, + .flex>.col-6, + .flex>.col-7, + .flex>.col-8, + .flex>.col-9, + .flex>.col-10, + .flex>.col-11, + .flex>.col-12, + .flex>.col-auto, + .flex>.col-grow, + .flex>.col-shrink, + .flex>.col-xs, + .flex>.col-xs-0, + .flex>.col-xs-1, + .flex>.col-xs-2, + .flex>.col-xs-3, + .flex>.col-xs-4, + .flex>.col-xs-5, + .flex>.col-xs-6, + .flex>.col-xs-7, + .flex>.col-xs-8, + .flex>.col-xs-9, + .flex>.col-xs-10, + .flex>.col-xs-11, + .flex>.col-xs-12, + .flex>.col-xs-auto, + .flex>.col-xs-grow, + .flex>.col-xs-shrink { + height : auto; + min-height: 0; + max-height: 100% + } + + .col, + .col-xs { + flex: 10000 1 0% + } + + .col-0, + .col-1, + .col-2, + .col-3, + .col-4, + .col-5, + .col-6, + .col-7, + .col-8, + .col-9, + .col-10, + .col-11, + .col-12, + .col-auto, + .col-xs-0, + .col-xs-1, + .col-xs-2, + .col-xs-3, + .col-xs-4, + .col-xs-5, + .col-xs-6, + .col-xs-7, + .col-xs-8, + .col-xs-9, + .col-xs-10, + .col-xs-11, + .col-xs-12, + .col-xs-auto { + flex: 0 0 auto + } + + .col-grow, + .col-xs-grow { + flex: 1 0 auto + } + + .col-shrink, + .col-xs-shrink { + flex: 0 1 auto + } + + .row>.col-0, + .row>.col-xs-0 { + height: auto; + width : 0% + } + + .row>.offset-0, + .row>.offset-xs-0 { + margin-left: 0% + } + + .column>.col-0, + .column>.col-xs-0 { + height: 0%; + width : auto + } + + .row>.col-1, + .row>.col-xs-1 { + height: auto; + width : 8.3333% + } + + .row>.offset-1, + .row>.offset-xs-1 { + margin-left: 8.3333% + } + + .column>.col-1, + .column>.col-xs-1 { + height: 8.3333%; + width : auto + } + + .row>.col-2, + .row>.col-xs-2 { + height: auto; + width : 16.6667% + } + + .row>.offset-2, + .row>.offset-xs-2 { + margin-left: 16.6667% + } + + .column>.col-2, + .column>.col-xs-2 { + height: 16.6667%; + width : auto + } + + .row>.col-3, + .row>.col-xs-3 { + height: auto; + width : 25% + } + + .row>.offset-3, + .row>.offset-xs-3 { + margin-left: 25% + } + + .column>.col-3, + .column>.col-xs-3 { + height: 25%; + width : auto + } + + .row>.col-4, + .row>.col-xs-4 { + height: auto; + width : 33.3333% + } + + .row>.offset-4, + .row>.offset-xs-4 { + margin-left: 33.3333% + } + + .column>.col-4, + .column>.col-xs-4 { + height: 33.3333%; + width : auto + } + + .row>.col-5, + .row>.col-xs-5 { + height: auto; + width : 41.6667% + } + + .row>.offset-5, + .row>.offset-xs-5 { + margin-left: 41.6667% + } + + .column>.col-5, + .column>.col-xs-5 { + height: 41.6667%; + width : auto + } + + .row>.col-6, + .row>.col-xs-6 { + height: auto; + width : 50% + } + + .row>.offset-6, + .row>.offset-xs-6 { + margin-left: 50% + } + + .column>.col-6, + .column>.col-xs-6 { + height: 50%; + width : auto + } + + .row>.col-7, + .row>.col-xs-7 { + height: auto; + width : 58.3333% + } + + .row>.offset-7, + .row>.offset-xs-7 { + margin-left: 58.3333% + } + + .column>.col-7, + .column>.col-xs-7 { + height: 58.3333%; + width : auto + } + + .row>.col-8, + .row>.col-xs-8 { + height: auto; + width : 66.6667% + } + + .row>.offset-8, + .row>.offset-xs-8 { + margin-left: 66.6667% + } + + .column>.col-8, + .column>.col-xs-8 { + height: 66.6667%; + width : auto + } + + .row>.col-9, + .row>.col-xs-9 { + height: auto; + width : 75% + } + + .row>.offset-9, + .row>.offset-xs-9 { + margin-left: 75% + } + + .column>.col-9, + .column>.col-xs-9 { + height: 75%; + width : auto + } + + .row>.col-10, + .row>.col-xs-10 { + height: auto; + width : 83.3333% + } + + .row>.offset-10, + .row>.offset-xs-10 { + margin-left: 83.3333% + } + + .column>.col-10, + .column>.col-xs-10 { + height: 83.3333%; + width : auto + } + + .row>.col-11, + .row>.col-xs-11 { + height: auto; + width : 91.6667% + } + + .row>.offset-11, + .row>.offset-xs-11 { + margin-left: 91.6667% + } + + .column>.col-11, + .column>.col-xs-11 { + height: 91.6667%; + width : auto + } + + .row>.col-12, + .row>.col-xs-12 { + height: auto; + width : 100% + } + + .row>.offset-12, + .row>.offset-xs-12 { + margin-left: 100% + } + + .column>.col-12, + .column>.col-xs-12 { + height: 100%; + width : auto + } + + .row>.col-all { + height: auto; + flex : 0 0 100% + } +} + +@media (min-width:600px) { + + .flex>.col-sm, + .flex>.col-sm-0, + .flex>.col-sm-1, + .flex>.col-sm-2, + .flex>.col-sm-3, + .flex>.col-sm-4, + .flex>.col-sm-5, + .flex>.col-sm-6, + .flex>.col-sm-7, + .flex>.col-sm-8, + .flex>.col-sm-9, + .flex>.col-sm-10, + .flex>.col-sm-11, + .flex>.col-sm-12, + .flex>.col-sm-auto, + .flex>.col-sm-grow, + .flex>.col-sm-shrink, + .row>.col-sm, + .row>.col-sm-0, + .row>.col-sm-1, + .row>.col-sm-2, + .row>.col-sm-3, + .row>.col-sm-4, + .row>.col-sm-5, + .row>.col-sm-6, + .row>.col-sm-7, + .row>.col-sm-8, + .row>.col-sm-9, + .row>.col-sm-10, + .row>.col-sm-11, + .row>.col-sm-12, + .row>.col-sm-auto, + .row>.col-sm-grow, + .row>.col-sm-shrink { + width : auto; + min-width: 0; + max-width: 100% + } + + .column>.col-sm, + .column>.col-sm-0, + .column>.col-sm-1, + .column>.col-sm-2, + .column>.col-sm-3, + .column>.col-sm-4, + .column>.col-sm-5, + .column>.col-sm-6, + .column>.col-sm-7, + .column>.col-sm-8, + .column>.col-sm-9, + .column>.col-sm-10, + .column>.col-sm-11, + .column>.col-sm-12, + .column>.col-sm-auto, + .column>.col-sm-grow, + .column>.col-sm-shrink, + .flex>.col-sm, + .flex>.col-sm-0, + .flex>.col-sm-1, + .flex>.col-sm-2, + .flex>.col-sm-3, + .flex>.col-sm-4, + .flex>.col-sm-5, + .flex>.col-sm-6, + .flex>.col-sm-7, + .flex>.col-sm-8, + .flex>.col-sm-9, + .flex>.col-sm-10, + .flex>.col-sm-11, + .flex>.col-sm-12, + .flex>.col-sm-auto, + .flex>.col-sm-grow, + .flex>.col-sm-shrink { + height : auto; + min-height: 0; + max-height: 100% + } + + .col-sm { + flex: 10000 1 0% + } + + .col-sm-0, + .col-sm-1, + .col-sm-2, + .col-sm-3, + .col-sm-4, + .col-sm-5, + .col-sm-6, + .col-sm-7, + .col-sm-8, + .col-sm-9, + .col-sm-10, + .col-sm-11, + .col-sm-12, + .col-sm-auto { + flex: 0 0 auto + } + + .col-sm-grow { + flex: 1 0 auto + } + + .col-sm-shrink { + flex: 0 1 auto + } + + .row>.col-sm-0 { + height: auto; + width : 0% + } + + .row>.offset-sm-0 { + margin-left: 0% + } + + .column>.col-sm-0 { + height: 0%; + width : auto + } + + .row>.col-sm-1 { + height: auto; + width : 8.3333% + } + + .row>.offset-sm-1 { + margin-left: 8.3333% + } + + .column>.col-sm-1 { + height: 8.3333%; + width : auto + } + + .row>.col-sm-2 { + height: auto; + width : 16.6667% + } + + .row>.offset-sm-2 { + margin-left: 16.6667% + } + + .column>.col-sm-2 { + height: 16.6667%; + width : auto + } + + .row>.col-sm-3 { + height: auto; + width : 25% + } + + .row>.offset-sm-3 { + margin-left: 25% + } + + .column>.col-sm-3 { + height: 25%; + width : auto + } + + .row>.col-sm-4 { + height: auto; + width : 33.3333% + } + + .row>.offset-sm-4 { + margin-left: 33.3333% + } + + .column>.col-sm-4 { + height: 33.3333%; + width : auto + } + + .row>.col-sm-5 { + height: auto; + width : 41.6667% + } + + .row>.offset-sm-5 { + margin-left: 41.6667% + } + + .column>.col-sm-5 { + height: 41.6667%; + width : auto + } + + .row>.col-sm-6 { + height: auto; + width : 50% + } + + .row>.offset-sm-6 { + margin-left: 50% + } + + .column>.col-sm-6 { + height: 50%; + width : auto + } + + .row>.col-sm-7 { + height: auto; + width : 58.3333% + } + + .row>.offset-sm-7 { + margin-left: 58.3333% + } + + .column>.col-sm-7 { + height: 58.3333%; + width : auto + } + + .row>.col-sm-8 { + height: auto; + width : 66.6667% + } + + .row>.offset-sm-8 { + margin-left: 66.6667% + } + + .column>.col-sm-8 { + height: 66.6667%; + width : auto + } + + .row>.col-sm-9 { + height: auto; + width : 75% + } + + .row>.offset-sm-9 { + margin-left: 75% + } + + .column>.col-sm-9 { + height: 75%; + width : auto + } + + .row>.col-sm-10 { + height: auto; + width : 83.3333% + } + + .row>.offset-sm-10 { + margin-left: 83.3333% + } + + .column>.col-sm-10 { + height: 83.3333%; + width : auto + } + + .row>.col-sm-11 { + height: auto; + width : 91.6667% + } + + .row>.offset-sm-11 { + margin-left: 91.6667% + } + + .column>.col-sm-11 { + height: 91.6667%; + width : auto + } + + .row>.col-sm-12 { + height: auto; + width : 100% + } + + .row>.offset-sm-12 { + margin-left: 100% + } + + .column>.col-sm-12 { + height: 100%; + width : auto + } +} + +@media (min-width:1024px) { + + .flex>.col-md, + .flex>.col-md-0, + .flex>.col-md-1, + .flex>.col-md-2, + .flex>.col-md-3, + .flex>.col-md-4, + .flex>.col-md-5, + .flex>.col-md-6, + .flex>.col-md-7, + .flex>.col-md-8, + .flex>.col-md-9, + .flex>.col-md-10, + .flex>.col-md-11, + .flex>.col-md-12, + .flex>.col-md-auto, + .flex>.col-md-grow, + .flex>.col-md-shrink, + .row>.col-md, + .row>.col-md-0, + .row>.col-md-1, + .row>.col-md-2, + .row>.col-md-3, + .row>.col-md-4, + .row>.col-md-5, + .row>.col-md-6, + .row>.col-md-7, + .row>.col-md-8, + .row>.col-md-9, + .row>.col-md-10, + .row>.col-md-11, + .row>.col-md-12, + .row>.col-md-auto, + .row>.col-md-grow, + .row>.col-md-shrink { + width : auto; + min-width: 0; + max-width: 100% + } + + .column>.col-md, + .column>.col-md-0, + .column>.col-md-1, + .column>.col-md-2, + .column>.col-md-3, + .column>.col-md-4, + .column>.col-md-5, + .column>.col-md-6, + .column>.col-md-7, + .column>.col-md-8, + .column>.col-md-9, + .column>.col-md-10, + .column>.col-md-11, + .column>.col-md-12, + .column>.col-md-auto, + .column>.col-md-grow, + .column>.col-md-shrink, + .flex>.col-md, + .flex>.col-md-0, + .flex>.col-md-1, + .flex>.col-md-2, + .flex>.col-md-3, + .flex>.col-md-4, + .flex>.col-md-5, + .flex>.col-md-6, + .flex>.col-md-7, + .flex>.col-md-8, + .flex>.col-md-9, + .flex>.col-md-10, + .flex>.col-md-11, + .flex>.col-md-12, + .flex>.col-md-auto, + .flex>.col-md-grow, + .flex>.col-md-shrink { + height : auto; + min-height: 0; + max-height: 100% + } + + .col-md { + flex: 10000 1 0% + } + + .col-md-0, + .col-md-1, + .col-md-2, + .col-md-3, + .col-md-4, + .col-md-5, + .col-md-6, + .col-md-7, + .col-md-8, + .col-md-9, + .col-md-10, + .col-md-11, + .col-md-12, + .col-md-auto { + flex: 0 0 auto + } + + .col-md-grow { + flex: 1 0 auto + } + + .col-md-shrink { + flex: 0 1 auto + } + + .row>.col-md-0 { + height: auto; + width : 0% + } + + .row>.offset-md-0 { + margin-left: 0% + } + + .column>.col-md-0 { + height: 0%; + width : auto + } + + .row>.col-md-1 { + height: auto; + width : 8.3333% + } + + .row>.offset-md-1 { + margin-left: 8.3333% + } + + .column>.col-md-1 { + height: 8.3333%; + width : auto + } + + .row>.col-md-2 { + height: auto; + width : 16.6667% + } + + .row>.offset-md-2 { + margin-left: 16.6667% + } + + .column>.col-md-2 { + height: 16.6667%; + width : auto + } + + .row>.col-md-3 { + height: auto; + width : 25% + } + + .row>.offset-md-3 { + margin-left: 25% + } + + .column>.col-md-3 { + height: 25%; + width : auto + } + + .row>.col-md-4 { + height: auto; + width : 33.3333% + } + + .row>.offset-md-4 { + margin-left: 33.3333% + } + + .column>.col-md-4 { + height: 33.3333%; + width : auto + } + + .row>.col-md-5 { + height: auto; + width : 41.6667% + } + + .row>.offset-md-5 { + margin-left: 41.6667% + } + + .column>.col-md-5 { + height: 41.6667%; + width : auto + } + + .row>.col-md-6 { + height: auto; + width : 50% + } + + .row>.offset-md-6 { + margin-left: 50% + } + + .column>.col-md-6 { + height: 50%; + width : auto + } + + .row>.col-md-7 { + height: auto; + width : 58.3333% + } + + .row>.offset-md-7 { + margin-left: 58.3333% + } + + .column>.col-md-7 { + height: 58.3333%; + width : auto + } + + .row>.col-md-8 { + height: auto; + width : 66.6667% + } + + .row>.offset-md-8 { + margin-left: 66.6667% + } + + .column>.col-md-8 { + height: 66.6667%; + width : auto + } + + .row>.col-md-9 { + height: auto; + width : 75% + } + + .row>.offset-md-9 { + margin-left: 75% + } + + .column>.col-md-9 { + height: 75%; + width : auto + } + + .row>.col-md-10 { + height: auto; + width : 83.3333% + } + + .row>.offset-md-10 { + margin-left: 83.3333% + } + + .column>.col-md-10 { + height: 83.3333%; + width : auto + } + + .row>.col-md-11 { + height: auto; + width : 91.6667% + } + + .row>.offset-md-11 { + margin-left: 91.6667% + } + + .column>.col-md-11 { + height: 91.6667%; + width : auto + } + + .row>.col-md-12 { + height: auto; + width : 100% + } + + .row>.offset-md-12 { + margin-left: 100% + } + + .column>.col-md-12 { + height: 100%; + width : auto + } +} + +@media (min-width:1440px) { + + .flex>.col-lg, + .flex>.col-lg-0, + .flex>.col-lg-1, + .flex>.col-lg-2, + .flex>.col-lg-3, + .flex>.col-lg-4, + .flex>.col-lg-5, + .flex>.col-lg-6, + .flex>.col-lg-7, + .flex>.col-lg-8, + .flex>.col-lg-9, + .flex>.col-lg-10, + .flex>.col-lg-11, + .flex>.col-lg-12, + .flex>.col-lg-auto, + .flex>.col-lg-grow, + .flex>.col-lg-shrink, + .row>.col-lg, + .row>.col-lg-0, + .row>.col-lg-1, + .row>.col-lg-2, + .row>.col-lg-3, + .row>.col-lg-4, + .row>.col-lg-5, + .row>.col-lg-6, + .row>.col-lg-7, + .row>.col-lg-8, + .row>.col-lg-9, + .row>.col-lg-10, + .row>.col-lg-11, + .row>.col-lg-12, + .row>.col-lg-auto, + .row>.col-lg-grow, + .row>.col-lg-shrink { + width : auto; + min-width: 0; + max-width: 100% + } + + .column>.col-lg, + .column>.col-lg-0, + .column>.col-lg-1, + .column>.col-lg-2, + .column>.col-lg-3, + .column>.col-lg-4, + .column>.col-lg-5, + .column>.col-lg-6, + .column>.col-lg-7, + .column>.col-lg-8, + .column>.col-lg-9, + .column>.col-lg-10, + .column>.col-lg-11, + .column>.col-lg-12, + .column>.col-lg-auto, + .column>.col-lg-grow, + .column>.col-lg-shrink, + .flex>.col-lg, + .flex>.col-lg-0, + .flex>.col-lg-1, + .flex>.col-lg-2, + .flex>.col-lg-3, + .flex>.col-lg-4, + .flex>.col-lg-5, + .flex>.col-lg-6, + .flex>.col-lg-7, + .flex>.col-lg-8, + .flex>.col-lg-9, + .flex>.col-lg-10, + .flex>.col-lg-11, + .flex>.col-lg-12, + .flex>.col-lg-auto, + .flex>.col-lg-grow, + .flex>.col-lg-shrink { + height : auto; + min-height: 0; + max-height: 100% + } + + .col-lg { + flex: 10000 1 0% + } + + .col-lg-0, + .col-lg-1, + .col-lg-2, + .col-lg-3, + .col-lg-4, + .col-lg-5, + .col-lg-6, + .col-lg-7, + .col-lg-8, + .col-lg-9, + .col-lg-10, + .col-lg-11, + .col-lg-12, + .col-lg-auto { + flex: 0 0 auto + } + + .col-lg-grow { + flex: 1 0 auto + } + + .col-lg-shrink { + flex: 0 1 auto + } + + .row>.col-lg-0 { + height: auto; + width : 0% + } + + .row>.offset-lg-0 { + margin-left: 0% + } + + .column>.col-lg-0 { + height: 0%; + width : auto + } + + .row>.col-lg-1 { + height: auto; + width : 8.3333% + } + + .row>.offset-lg-1 { + margin-left: 8.3333% + } + + .column>.col-lg-1 { + height: 8.3333%; + width : auto + } + + .row>.col-lg-2 { + height: auto; + width : 16.6667% + } + + .row>.offset-lg-2 { + margin-left: 16.6667% + } + + .column>.col-lg-2 { + height: 16.6667%; + width : auto + } + + .row>.col-lg-3 { + height: auto; + width : 25% + } + + .row>.offset-lg-3 { + margin-left: 25% + } + + .column>.col-lg-3 { + height: 25%; + width : auto + } + + .row>.col-lg-4 { + height: auto; + width : 33.3333% + } + + .row>.offset-lg-4 { + margin-left: 33.3333% + } + + .column>.col-lg-4 { + height: 33.3333%; + width : auto + } + + .row>.col-lg-5 { + height: auto; + width : 41.6667% + } + + .row>.offset-lg-5 { + margin-left: 41.6667% + } + + .column>.col-lg-5 { + height: 41.6667%; + width : auto + } + + .row>.col-lg-6 { + height: auto; + width : 50% + } + + .row>.offset-lg-6 { + margin-left: 50% + } + + .column>.col-lg-6 { + height: 50%; + width : auto + } + + .row>.col-lg-7 { + height: auto; + width : 58.3333% + } + + .row>.offset-lg-7 { + margin-left: 58.3333% + } + + .column>.col-lg-7 { + height: 58.3333%; + width : auto + } + + .row>.col-lg-8 { + height: auto; + width : 66.6667% + } + + .row>.offset-lg-8 { + margin-left: 66.6667% + } + + .column>.col-lg-8 { + height: 66.6667%; + width : auto + } + + .row>.col-lg-9 { + height: auto; + width : 75% + } + + .row>.offset-lg-9 { + margin-left: 75% + } + + .column>.col-lg-9 { + height: 75%; + width : auto + } + + .row>.col-lg-10 { + height: auto; + width : 83.3333% + } + + .row>.offset-lg-10 { + margin-left: 83.3333% + } + + .column>.col-lg-10 { + height: 83.3333%; + width : auto + } + + .row>.col-lg-11 { + height: auto; + width : 91.6667% + } + + .row>.offset-lg-11 { + margin-left: 91.6667% + } + + .column>.col-lg-11 { + height: 91.6667%; + width : auto + } + + .row>.col-lg-12 { + height: auto; + width : 100% + } + + .row>.offset-lg-12 { + margin-left: 100% + } + + .column>.col-lg-12 { + height: 100%; + width : auto + } +} + +@media (min-width:1920px) { + + .flex>.col-xl, + .flex>.col-xl-0, + .flex>.col-xl-1, + .flex>.col-xl-2, + .flex>.col-xl-3, + .flex>.col-xl-4, + .flex>.col-xl-5, + .flex>.col-xl-6, + .flex>.col-xl-7, + .flex>.col-xl-8, + .flex>.col-xl-9, + .flex>.col-xl-10, + .flex>.col-xl-11, + .flex>.col-xl-12, + .flex>.col-xl-auto, + .flex>.col-xl-grow, + .flex>.col-xl-shrink, + .row>.col-xl, + .row>.col-xl-0, + .row>.col-xl-1, + .row>.col-xl-2, + .row>.col-xl-3, + .row>.col-xl-4, + .row>.col-xl-5, + .row>.col-xl-6, + .row>.col-xl-7, + .row>.col-xl-8, + .row>.col-xl-9, + .row>.col-xl-10, + .row>.col-xl-11, + .row>.col-xl-12, + .row>.col-xl-auto, + .row>.col-xl-grow, + .row>.col-xl-shrink { + width : auto; + min-width: 0; + max-width: 100% + } + + .column>.col-xl, + .column>.col-xl-0, + .column>.col-xl-1, + .column>.col-xl-2, + .column>.col-xl-3, + .column>.col-xl-4, + .column>.col-xl-5, + .column>.col-xl-6, + .column>.col-xl-7, + .column>.col-xl-8, + .column>.col-xl-9, + .column>.col-xl-10, + .column>.col-xl-11, + .column>.col-xl-12, + .column>.col-xl-auto, + .column>.col-xl-grow, + .column>.col-xl-shrink, + .flex>.col-xl, + .flex>.col-xl-0, + .flex>.col-xl-1, + .flex>.col-xl-2, + .flex>.col-xl-3, + .flex>.col-xl-4, + .flex>.col-xl-5, + .flex>.col-xl-6, + .flex>.col-xl-7, + .flex>.col-xl-8, + .flex>.col-xl-9, + .flex>.col-xl-10, + .flex>.col-xl-11, + .flex>.col-xl-12, + .flex>.col-xl-auto, + .flex>.col-xl-grow, + .flex>.col-xl-shrink { + height : auto; + min-height: 0; + max-height: 100% + } + + .col-xl { + flex: 10000 1 0% + } + + .col-xl-0, + .col-xl-1, + .col-xl-2, + .col-xl-3, + .col-xl-4, + .col-xl-5, + .col-xl-6, + .col-xl-7, + .col-xl-8, + .col-xl-9, + .col-xl-10, + .col-xl-11, + .col-xl-12, + .col-xl-auto { + flex: 0 0 auto + } + + .col-xl-grow { + flex: 1 0 auto + } + + .col-xl-shrink { + flex: 0 1 auto + } + + .row>.col-xl-0 { + height: auto; + width : 0% + } + + .row>.offset-xl-0 { + margin-left: 0% + } + + .column>.col-xl-0 { + height: 0%; + width : auto + } + + .row>.col-xl-1 { + height: auto; + width : 8.3333% + } + + .row>.offset-xl-1 { + margin-left: 8.3333% + } + + .column>.col-xl-1 { + height: 8.3333%; + width : auto + } + + .row>.col-xl-2 { + height: auto; + width : 16.6667% + } + + .row>.offset-xl-2 { + margin-left: 16.6667% + } + + .column>.col-xl-2 { + height: 16.6667%; + width : auto + } + + .row>.col-xl-3 { + height: auto; + width : 25% + } + + .row>.offset-xl-3 { + margin-left: 25% + } + + .column>.col-xl-3 { + height: 25%; + width : auto + } + + .row>.col-xl-4 { + height: auto; + width : 33.3333% + } + + .row>.offset-xl-4 { + margin-left: 33.3333% + } + + .column>.col-xl-4 { + height: 33.3333%; + width : auto + } + + .row>.col-xl-5 { + height: auto; + width : 41.6667% + } + + .row>.offset-xl-5 { + margin-left: 41.6667% + } + + .column>.col-xl-5 { + height: 41.6667%; + width : auto + } + + .row>.col-xl-6 { + height: auto; + width : 50% + } + + .row>.offset-xl-6 { + margin-left: 50% + } + + .column>.col-xl-6 { + height: 50%; + width : auto + } + + .row>.col-xl-7 { + height: auto; + width : 58.3333% + } + + .row>.offset-xl-7 { + margin-left: 58.3333% + } + + .column>.col-xl-7 { + height: 58.3333%; + width : auto + } + + .row>.col-xl-8 { + height: auto; + width : 66.6667% + } + + .row>.offset-xl-8 { + margin-left: 66.6667% + } + + .column>.col-xl-8 { + height: 66.6667%; + width : auto + } + + .row>.col-xl-9 { + height: auto; + width : 75% + } + + .row>.offset-xl-9 { + margin-left: 75% + } + + .column>.col-xl-9 { + height: 75%; + width : auto + } + + .row>.col-xl-10 { + height: auto; + width : 83.3333% + } + + .row>.offset-xl-10 { + margin-left: 83.3333% + } + + .column>.col-xl-10 { + height: 83.3333%; + width : auto + } + + .row>.col-xl-11 { + height: auto; + width : 91.6667% + } + + .row>.offset-xl-11 { + margin-left: 91.6667% + } + + .column>.col-xl-11 { + height: 91.6667%; + width : auto + } + + .row>.col-xl-12 { + height: auto; + width : 100% + } + + .row>.offset-xl-12 { + margin-left: 100% + } + + .column>.col-xl-12 { + height: 100%; + width : auto + } +} + +.rounded-borders { + border-radius: 4px +} + +.border-radius-inherit { + border-radius: inherit +} + +.no-transition { + transition: none !important +} + +.transition-0 { + transition: 0s !important +} + +.glossy { + background-image: linear-gradient(180deg, hsla(0, 0%, 100%, 0.3), hsla(0, 0%, 100%, 0) 50%, rgba(0, 0, 0, 0.12) 51%, rgba(0, 0, 0, 0.04)) !important +} + +.q-placeholder::-moz-placeholder { + color : inherit; + opacity: 0.7 +} + +.q-placeholder:-ms-input-placeholder { + color : inherit !important; + opacity: 0.7 !important +} + +.q-placeholder::placeholder { + color : inherit; + opacity: 0.7 +} + +.q-body--fullscreen-mixin, +.q-body--prevent-scroll { + position: fixed !important +} + +.q-body--force-scrollbar { + overflow-y: scroll +} + +.q-no-input-spinner { + -moz-appearance: textfield !important +} + +.q-no-input-spinner::-webkit-inner-spin-button, +.q-no-input-spinner::-webkit-outer-spin-button { + -webkit-appearance: none; + margin : 0 +} + +.q-link { + outline : 0; + text-decoration: none +} + +.q-link--focusable:focus-visible { + -webkit-text-decoration: underline dashed currentColor 1px; + text-decoration : underline dashed currentColor 1px +} + +body.electron .q-electron-drag { + -webkit-user-select: none; + -webkit-app-region : drag +} + +body.electron .q-electron-drag--exception, +body.electron .q-electron-drag .q-btn-item { + -webkit-app-region: no-drag +} + +img.responsive { + max-width: 100%; + height : auto +} + +.non-selectable { + -webkit-user-select: none !important; + -moz-user-select : none !important; + -ms-user-select : none !important; + user-select : none !important +} + +.scroll { + overflow: auto +} + +.scroll, +.scroll-x, +.scroll-y { + -webkit-overflow-scrolling: touch; + will-change : scroll-position +} + +.scroll-x { + overflow-x: auto +} + +.scroll-y { + overflow-y: auto +} + +.no-scroll { + overflow: hidden !important +} + +.no-pointer-events, +.no-pointer-events--children, +.no-pointer-events--children * { + pointer-events: none !important +} + +.all-pointer-events { + pointer-events: all !important +} + +.cursor-pointer { + cursor: pointer !important +} + +.cursor-not-allowed { + cursor: not-allowed !important +} + +.cursor-inherit { + cursor: inherit !important +} + +.cursor-none { + cursor: none !important +} + +[aria-busy=true] { + cursor: progress +} + +[aria-controls], +[role=button] { + cursor: pointer +} + +[aria-disabled] { + cursor: default +} + +.rotate-45 { + transform: rotate(45deg) +} + +.rotate-90 { + transform: rotate(90deg) +} + +.rotate-135 { + transform: rotate(135deg) +} + +.rotate-180 { + transform: rotate(180deg) +} + +.rotate-205 { + transform: rotate(205deg) +} + +.rotate-225 { + transform: rotate(225deg) +} + +.rotate-270 { + transform: rotate(270deg) +} + +.rotate-315 { + transform: rotate(315deg) +} + +.flip-horizontal { + transform: scaleX(-1) +} + +.flip-vertical { + transform: scaleY(-1) +} + +.float-left { + float: left +} + +.float-right { + float: right +} + +.relative-position { + position: relative +} + +.fixed, +.fixed-bottom, +.fixed-bottom-left, +.fixed-bottom-right, +.fixed-center, +.fixed-full, +.fixed-left, +.fixed-right, +.fixed-top, +.fixed-top-left, +.fixed-top-right, +.fullscreen { + position: fixed +} + +.absolute, +.absolute-bottom, +.absolute-bottom-left, +.absolute-bottom-right, +.absolute-center, +.absolute-full, +.absolute-left, +.absolute-right, +.absolute-top, +.absolute-top-left, +.absolute-top-right { + position: absolute +} + +.absolute-top, +.fixed-top { + top : 0; + left : 0; + right: 0 +} + +.absolute-right, +.fixed-right { + top : 0; + right : 0; + bottom: 0 +} + +.absolute-bottom, +.fixed-bottom { + right : 0; + bottom: 0; + left : 0 +} + +.absolute-left, +.fixed-left { + top : 0; + bottom: 0; + left : 0 +} + +.absolute-top-left, +.fixed-top-left { + top : 0; + left: 0 +} + +.absolute-top-right, +.fixed-top-right { + top : 0; + right: 0 +} + +.absolute-bottom-left, +.fixed-bottom-left { + bottom: 0; + left : 0 +} + +.absolute-bottom-right, +.fixed-bottom-right { + bottom: 0; + right : 0 +} + +.fullscreen { + z-index : 6000; + border-radius: 0 !important; + max-width : 100vw; + max-height : 100vh +} + +body.q-ios-padding .fullscreen { + padding-top : 20px !important; + padding-top : env(safe-area-inset-top) !important; + padding-bottom: env(safe-area-inset-bottom) !important +} + +.absolute-full, +.fixed-full, +.fullscreen { + top : 0; + right : 0; + bottom: 0; + left : 0 +} + +.absolute-center, +.fixed-center { + top : 50%; + left : 50%; + transform: translate(-50%, -50%) +} + +.vertical-top { + vertical-align: top !important +} + +.vertical-middle { + vertical-align: middle !important +} + +.vertical-bottom { + vertical-align: bottom !important +} + +.on-left { + margin-right: 12px +} + +.on-right { + margin-left: 12px +} + +.q-position-engine { + margin-top : var(--q-pe-top, 0) !important; + margin-left: var(--q-pe-left, 0) !important; + will-change: auto; + visibility : collapse +} + +:root { + --q-size-xs: 0; + --q-size-sm: 600px; + --q-size-md: 1024px; + --q-size-lg: 1440px; + --q-size-xl: 1920px +} + +.fit { + width: 100% !important +} + +.fit, +.full-height { + height: 100% !important +} + +.full-width { + width : 100% !important; + margin-left : 0 !important; + margin-right: 0 !important +} + +.window-height { + margin-top : 0 !important; + margin-bottom: 0 !important; + height : 100vh !important +} + +.window-width { + margin-left : 0 !important; + margin-right: 0 !important; + width : 100vw !important +} + +.block { + display: block !important +} + +.inline-block { + display: inline-block !important +} + +.q-pa-none { + padding: 0 0 +} + +.q-pl-none { + padding-left: 0 +} + +.q-pr-none { + padding-right: 0 +} + +.q-pt-none, +.q-py-none { + padding-top: 0 +} + +.q-pb-none, +.q-py-none { + padding-bottom: 0 +} + +.q-px-none { + padding-left : 0; + padding-right: 0 +} + +.q-ma-none { + margin: 0 0 +} + +.q-ml-none { + margin-left: 0 +} + +.q-mr-none { + margin-right: 0 +} + +.q-mt-none, +.q-my-none { + margin-top: 0 +} + +.q-mb-none, +.q-my-none { + margin-bottom: 0 +} + +.q-mx-none { + margin-left : 0; + margin-right: 0 +} + +.q-pa-xs { + padding: 4px 4px +} + +.q-pl-xs { + padding-left: 4px +} + +.q-pr-xs { + padding-right: 4px +} + +.q-pt-xs, +.q-py-xs { + padding-top: 4px +} + +.q-pb-xs, +.q-py-xs { + padding-bottom: 4px +} + +.q-px-xs { + padding-left : 4px; + padding-right: 4px +} + +.q-ma-xs { + margin: 4px 4px +} + +.q-ml-xs { + margin-left: 4px +} + +.q-mr-xs { + margin-right: 4px +} + +.q-mt-xs, +.q-my-xs { + margin-top: 4px +} + +.q-mb-xs, +.q-my-xs { + margin-bottom: 4px +} + +.q-mx-xs { + margin-left : 4px; + margin-right: 4px +} + +.q-pa-sm { + padding: 8px 8px +} + +.q-pl-sm { + padding-left: 8px +} + +.q-pr-sm { + padding-right: 8px +} + +.q-pt-sm, +.q-py-sm { + padding-top: 8px +} + +.q-pb-sm, +.q-py-sm { + padding-bottom: 8px +} + +.q-px-sm { + padding-left : 8px; + padding-right: 8px +} + +.q-ma-sm { + margin: 8px 8px +} + +.q-ml-sm { + margin-left: 8px +} + +.q-mr-sm { + margin-right: 8px +} + +.q-mt-sm, +.q-my-sm { + margin-top: 8px +} + +.q-mb-sm, +.q-my-sm { + margin-bottom: 8px +} + +.q-mx-sm { + margin-left : 8px; + margin-right: 8px +} + +.q-pa-md { + padding: 16px 16px +} + +.q-pl-md { + padding-left: 16px +} + +.q-pr-md { + padding-right: 16px +} + +.q-pt-md, +.q-py-md { + padding-top: 16px +} + +.q-pb-md, +.q-py-md { + padding-bottom: 16px +} + +.q-px-md { + padding-left : 16px; + padding-right: 16px +} + +.q-ma-md { + margin: 16px 16px +} + +.q-ml-md { + margin-left: 16px +} + +.q-mr-md { + margin-right: 16px +} + +.q-mt-md, +.q-my-md { + margin-top: 16px +} + +.q-mb-md, +.q-my-md { + margin-bottom: 16px +} + +.q-mx-md { + margin-left : 16px; + margin-right: 16px +} + +.q-pa-lg { + padding: 24px 24px +} + +.q-pl-lg { + padding-left: 24px +} + +.q-pr-lg { + padding-right: 24px +} + +.q-pt-lg, +.q-py-lg { + padding-top: 24px +} + +.q-pb-lg, +.q-py-lg { + padding-bottom: 24px +} + +.q-px-lg { + padding-left : 24px; + padding-right: 24px +} + +.q-ma-lg { + margin: 24px 24px +} + +.q-ml-lg { + margin-left: 24px +} + +.q-mr-lg { + margin-right: 24px +} + +.q-mt-lg, +.q-my-lg { + margin-top: 24px +} + +.q-mb-lg, +.q-my-lg { + margin-bottom: 24px +} + +.q-mx-lg { + margin-left : 24px; + margin-right: 24px +} + +.q-pa-xl { + padding: 48px 48px +} + +.q-pl-xl { + padding-left: 48px +} + +.q-pr-xl { + padding-right: 48px +} + +.q-pt-xl, +.q-py-xl { + padding-top: 48px +} + +.q-pb-xl, +.q-py-xl { + padding-bottom: 48px +} + +.q-px-xl { + padding-left : 48px; + padding-right: 48px +} + +.q-ma-xl { + margin: 48px 48px +} + +.q-ml-xl { + margin-left: 48px +} + +.q-mr-xl { + margin-right: 48px +} + +.q-mt-xl, +.q-my-xl { + margin-top: 48px +} + +.q-mb-xl, +.q-my-xl { + margin-bottom: 48px +} + +.q-mx-xl { + margin-left : 48px; + margin-right: 48px +} + +.q-mt-auto, +.q-my-auto { + margin-top: auto +} + +.q-ml-auto { + margin-left: auto +} + +.q-mb-auto, +.q-my-auto { + margin-bottom: auto +} + +.q-mr-auto, +.q-mx-auto { + margin-right: auto +} + +.q-mx-auto { + margin-left: auto +} + +.q-touch { + -webkit-user-select: none; + -moz-user-select : none; + -ms-user-select : none; + user-select : none; + user-drag : none; + -khtml-user-drag : none; + -webkit-user-drag : none +} + +.q-touch-x { + touch-action: pan-x +} + +.q-touch-y { + touch-action: pan-y +} + +.q-transition--fade-leave-active, +.q-transition--flip-leave-active, +.q-transition--jump-down-leave-active, +.q-transition--jump-left-leave-active, +.q-transition--jump-right-leave-active, +.q-transition--jump-up-leave-active, +.q-transition--rotate-leave-active, +.q-transition--scale-leave-active, +.q-transition--slide-down-leave-active, +.q-transition--slide-left-leave-active, +.q-transition--slide-right-leave-active, +.q-transition--slide-up-leave-active { + position: absolute +} + +.q-transition--slide-down-enter-active, +.q-transition--slide-down-leave-active, +.q-transition--slide-left-enter-active, +.q-transition--slide-left-leave-active, +.q-transition--slide-right-enter-active, +.q-transition--slide-right-leave-active, +.q-transition--slide-up-enter-active, +.q-transition--slide-up-leave-active { + transition: transform 0.3s cubic-bezier(0.215, 0.61, 0.355, 1) +} + +.q-transition--slide-right-enter { + transform: translate3d(-100%, 0, 0) +} + +.q-transition--slide-left-enter, +.q-transition--slide-right-leave-to { + transform: translate3d(100%, 0, 0) +} + +.q-transition--slide-left-leave-to { + transform: translate3d(-100%, 0, 0) +} + +.q-transition--slide-up-enter { + transform: translate3d(0, 100%, 0) +} + +.q-transition--slide-down-enter, +.q-transition--slide-up-leave-to { + transform: translate3d(0, -100%, 0) +} + +.q-transition--slide-down-leave-to { + transform: translate3d(0, 100%, 0) +} + +.q-transition--jump-down-enter-active, +.q-transition--jump-down-leave-active, +.q-transition--jump-left-enter-active, +.q-transition--jump-left-leave-active, +.q-transition--jump-right-enter-active, +.q-transition--jump-right-leave-active, +.q-transition--jump-up-enter-active, +.q-transition--jump-up-leave-active { + transition: opacity 0.3s, transform 0.3s +} + +.q-transition--jump-down-enter, +.q-transition--jump-down-leave-to, +.q-transition--jump-left-enter, +.q-transition--jump-left-leave-to, +.q-transition--jump-right-enter, +.q-transition--jump-right-leave-to, +.q-transition--jump-up-enter, +.q-transition--jump-up-leave-to { + opacity: 0 +} + +.q-transition--jump-right-enter { + transform: translate3d(-15px, 0, 0) +} + +.q-transition--jump-left-enter, +.q-transition--jump-right-leave-to { + transform: translate3d(15px, 0, 0) +} + +.q-transition--jump-left-leave-to { + transform: translateX(-15px) +} + +.q-transition--jump-up-enter { + transform: translate3d(0, 15px, 0) +} + +.q-transition--jump-down-enter, +.q-transition--jump-up-leave-to { + transform: translate3d(0, -15px, 0) +} + +.q-transition--jump-down-leave-to { + transform: translate3d(0, 15px, 0) +} + +.q-transition--fade-enter-active, +.q-transition--fade-leave-active { + transition: opacity 0.3s ease-out +} + +.q-transition--fade-enter, +.q-transition--fade-leave, +.q-transition--fade-leave-to { + opacity: 0 +} + +.q-transition--scale-enter-active, +.q-transition--scale-leave-active { + transition: opacity 0.3s, transform 0.3s cubic-bezier(0.215, 0.61, 0.355, 1) +} + +.q-transition--scale-enter, +.q-transition--scale-leave, +.q-transition--scale-leave-to { + opacity : 0; + transform: scale3d(0, 0, 1) +} + +.q-transition--rotate-enter-active, +.q-transition--rotate-leave-active { + transition : opacity 0.3s, transform 0.3s cubic-bezier(0.215, 0.61, 0.355, 1); + transform-style: preserve-3d +} + +.q-transition--rotate-enter, +.q-transition--rotate-leave, +.q-transition--rotate-leave-to { + opacity : 0; + transform: scale3d(0, 0, 1) rotate3d(0, 0, 1, 90deg) +} + +.q-transition--flip-down-enter-active, +.q-transition--flip-down-leave-active, +.q-transition--flip-left-enter-active, +.q-transition--flip-left-leave-active, +.q-transition--flip-right-enter-active, +.q-transition--flip-right-leave-active, +.q-transition--flip-up-enter-active, +.q-transition--flip-up-leave-active { + transition : transform 0.3s; + -webkit-backface-visibility: hidden; + backface-visibility : hidden +} + +.q-transition--flip-down-enter-to, +.q-transition--flip-down-leave, +.q-transition--flip-left-enter-to, +.q-transition--flip-left-leave, +.q-transition--flip-right-enter-to, +.q-transition--flip-right-leave, +.q-transition--flip-up-enter-to, +.q-transition--flip-up-leave { + transform: perspective(400px) rotate3d(1, 1, 0, 0deg) +} + +.q-transition--flip-right-enter { + transform: perspective(400px) rotate3d(0, 1, 0, -180deg) +} + +.q-transition--flip-left-enter, +.q-transition--flip-right-leave-to { + transform: perspective(400px) rotate3d(0, 1, 0, 180deg) +} + +.q-transition--flip-left-leave-to { + transform: perspective(400px) rotate3d(0, 1, 0, -180deg) +} + +.q-transition--flip-up-enter { + transform: perspective(400px) rotate3d(1, 0, 0, -180deg) +} + +.q-transition--flip-down-enter, +.q-transition--flip-up-leave-to { + transform: perspective(400px) rotate3d(1, 0, 0, 180deg) +} + +.q-transition--flip-down-leave-to { + transform: perspective(400px) rotate3d(1, 0, 0, -180deg) +} +.text-h1 { + font-size : 6rem; + font-weight : 300; + line-height : 6rem; + letter-spacing: -0.01562em +} + +.text-h2 { + font-size : 3.75rem; + font-weight : 300; + line-height : 3.75rem; + letter-spacing: -0.00833em +} + +.text-h3 { + font-size : 3rem; + font-weight : 400; + line-height : 3.125rem; + letter-spacing: normal +} + +.text-h4 { + font-size : 2.125rem; + font-weight : 400; + line-height : 2.5rem; + letter-spacing: 0.00735em +} + +.text-h5 { + font-size : 1.5rem; + font-weight : 400; + line-height : 2rem; + letter-spacing: normal +} + +.text-h6 { + font-size : 1.25rem; + font-weight : 500; + line-height : 2rem; + letter-spacing: 0.0125em +} + +.text-subtitle1 { + font-size : 1rem; + font-weight : 400; + line-height : 1.75rem; + letter-spacing: 0.00937em +} + +.text-subtitle2 { + font-size : 0.875rem; + font-weight : 500; + line-height : 1.375rem; + letter-spacing: 0.00714em +} + +.text-body1 { + font-size : 1rem; + font-weight : 400; + line-height : 1.5rem; + letter-spacing: 0.03125em +} + +.text-body2 { + font-size : 0.875rem; + font-weight : 400; + line-height : 1.25rem; + letter-spacing: 0.01786em +} + +.text-overline { + font-size : 0.75rem; + font-weight : 500; + line-height : 2rem; + letter-spacing: 0.16667em +} + +.text-caption { + font-size : 0.75rem; + font-weight : 400; + line-height : 1.25rem; + letter-spacing: 0.03333em +} + +.text-uppercase { + text-transform: uppercase +} + +.text-lowercase { + text-transform: lowercase +} + +.text-capitalize { + text-transform: capitalize +} + +.text-center { + text-align: center +} + +.text-left { + text-align: left +} + +.text-right { + text-align: right +} + +.text-justify { + text-align : justify; + -webkit-hyphens: auto; + -ms-hyphens : auto; + hyphens : auto +} + +.text-italic { + font-style: italic +} + +.text-bold { + font-weight: 700 +} + +.text-no-wrap { + white-space: nowrap +} + +.text-strike { + text-decoration: line-through +} + +.text-weight-thin { + font-weight: 100 +} + +.text-weight-light { + font-weight: 300 +} + +.text-weight-regular { + font-weight: 400 +} + +.text-weight-medium { + font-weight: 500 +} + +.text-weight-bold { + font-weight: 700 +} + +.text-weight-bolder { + font-weight: 900 +} + +small { + font-size: 80% +} + +big { + font-size: 170% +} + +sub { + bottom: -0.25em +} + +sup { + top: -0.5em +} + +.no-margin { + margin: 0 !important +} + +.no-padding { + padding: 0 !important +} + +.no-border { + border: 0 !important +} + +.no-border-radius { + border-radius: 0 !important +} + +.no-box-shadow { + box-shadow: none !important +} + +.no-outline { + outline: 0 !important +} + +.ellipsis { + text-overflow: ellipsis; + white-space : nowrap; + overflow : hidden +} + +.ellipsis-2-lines, +.ellipsis-3-lines { + overflow : hidden; + display : -webkit-box; + -webkit-box-orient: vertical +} + +.ellipsis-2-lines { + -webkit-line-clamp: 2 +} + +.ellipsis-3-lines { + -webkit-line-clamp: 3 +} + +.readonly { + cursor: default !important +} + +.disabled, +.disabled *, +[disabled], +[disabled] * { + outline: 0 !important; + cursor : not-allowed !important +} + +.disabled, +[disabled] { + opacity: 0.6 !important +} + +.hidden { + display: none !important +} + +.invisible { + visibility: hidden !important +} + +.transparent { + background: transparent !important +} + +.overflow-auto { + overflow: auto !important +} + +.overflow-hidden { + overflow: hidden !important +} + +.overflow-hidden-y { + overflow-y: hidden !important +} + +.hide-scrollbar { + scrollbar-width : none; + -ms-overflow-style: none +} + +.hide-scrollbar::-webkit-scrollbar { + width : 0; + height : 0; + display: none +} + +.dimmed:after, +.light-dimmed:after { + content : ""; + position: absolute; + top : 0; + right : 0; + bottom : 0; + left : 0 +} + +.dimmed:after { + background: rgba(0, 0, 0, 0.4) !important +} + +.light-dimmed:after { + background: hsla(0, 0%, 100%, 0.6) !important +} + +.z-top { + z-index: 7000 !important +} + +.z-max { + z-index: 9998 !important +} + +body.capacitor .capacitor-hide, +body.cordova .cordova-hide, +body.desktop .desktop-hide, +body.electron .electron-hide, +body.mobile .mobile-hide, +body.native-mobile .native-mobile-hide, +body.platform-android .platform-android-hide, +body.platform-ios .platform-ios-hide, +body.touch .touch-hide, +body.within-iframe .within-iframe-hide, +body:not(.capacitor) .capacitor-only, +body:not(.cordova) .cordova-only, +body:not(.desktop) .desktop-only, +body:not(.electron) .electron-only, +body:not(.mobile) .mobile-only, +body:not(.native-mobile) .native-mobile-only, +body:not(.platform-android) .platform-android-only, +body:not(.platform-ios) .platform-ios-only, +body:not(.touch) .touch-only, +body:not(.within-iframe) .within-iframe-only { + display: none !important +} + +@media (orientation:portrait) { + .orientation-landscape { + display: none !important + } +} + +@media (orientation:landscape) { + .orientation-portrait { + display: none !important + } +} + +@media screen { + .print-only { + display: none !important + } +} + +@media print { + .print-hide { + display: none !important + } +} + +@media (max-width:599.98px) { + + .gt-lg, + .gt-md, + .gt-sm, + .gt-xs, + .lg, + .md, + .sm, + .xl, + .xs-hide { + display: none !important + } +} + +@media (min-width:600px) and (max-width:1023.98px) { + + .gt-lg, + .gt-md, + .gt-sm, + .lg, + .lt-sm, + .md, + .sm-hide, + .xl, + .xs { + display: none !important + } +} + +@media (min-width:1024px) and (max-width:1439.98px) { + + .gt-lg, + .gt-md, + .lg, + .lt-md, + .lt-sm, + .md-hide, + .sm, + .xl, + .xs { + display: none !important + } +} + +@media (min-width:1440px) and (max-width:1919.98px) { + + .gt-lg, + .lg-hide, + .lt-lg, + .lt-md, + .lt-sm, + .md, + .sm, + .xl, + .xs { + display: none !important + } +} + +@media (min-width:1920px) { + + .lg, + .lt-lg, + .lt-md, + .lt-sm, + .lt-xl, + .md, + .sm, + .xl-hide, + .xs { + display: none !important + } +} + +.q-focus-helper, +.q-focusable, +.q-hoverable, +.q-manual-focusable { + outline: 0 +} + +body.desktop .q-focus-helper { + position : absolute; + top : 0; + left : 0; + width : 100%; + height : 100%; + pointer-events: none; + border-radius : inherit; + opacity : 0; + transition : background-color 0.3s cubic-bezier(0.25, 0.8, 0.5, 1), opacity 0.4s cubic-bezier(0.25, 0.8, 0.5, 1) +} + +body.desktop .q-focus-helper:after, +body.desktop .q-focus-helper:before { + content : ""; + position : absolute; + top : 0; + left : 0; + width : 100%; + height : 100%; + opacity : 0; + border-radius: inherit; + transition : background-color 0.3s cubic-bezier(0.25, 0.8, 0.5, 1), opacity 0.6s cubic-bezier(0.25, 0.8, 0.5, 1) +} + +body.desktop .q-focus-helper:before { + background: #000 +} + +body.desktop .q-focus-helper:after { + background: #fff +} + +body.desktop .q-focus-helper--rounded { + border-radius: 4px +} + +body.desktop .q-focus-helper--round { + border-radius: 50% +} + +body.desktop .q-focusable:focus>.q-focus-helper, +body.desktop .q-hoverable:hover>.q-focus-helper, +body.desktop .q-manual-focusable--focused>.q-focus-helper { + background: currentColor; + opacity : 0.15 +} + +body.desktop .q-focusable:focus>.q-focus-helper:before, +body.desktop .q-hoverable:hover>.q-focus-helper:before, +body.desktop .q-manual-focusable--focused>.q-focus-helper:before { + opacity: 0.1 +} + +body.desktop .q-focusable:focus>.q-focus-helper:after, +body.desktop .q-hoverable:hover>.q-focus-helper:after, +body.desktop .q-manual-focusable--focused>.q-focus-helper:after { + opacity: 0.4 +} + +body.desktop .q-focusable:focus>.q-focus-helper, +body.desktop .q-manual-focusable--focused>.q-focus-helper { + opacity: 0.22 +} + +body.body--dark { + color : #fff; + background: #121212; + background: var(--q-color-dark-page) +} + +.q-dark { + color : #fff; + background: #424242; + background: var(--q-color-dark) +} + +@media (-ms-high-contrast:none), +screen and (-ms-high-contrast:active) { + + .q-item:after, + .q-notification:after, + .q-toolbar:after { + content : ""; + font-size : 0; + visibility: collapse; + display : inline; + width : 0 + } + + .q-banner>.q-banner__avatar { + min-height: 38px + } + + .q-banner--dense>.q-banner__avatar { + min-height: 20px + } + + .q-item:after { + min-height: 32px + } + + .q-item--denseafter, + .q-list--dense>.q-itemafter { + min-height: 24px + } + + .q-toolbar:after { + min-height: 50px + } + + .q-notification--standard:after { + min-height: 48px + } + + .q-notification--multi-line { + min-height: 68px + } + + .q-btn__wrapper, + .q-menu .q-item__section--main, + .q-table__middle, + .q-time__content, + .q-toolbar__title { + flex-basis: auto + } + + .q-banner__content { + flex-basis: 0 !important + } + + .q-dialog__inner>.q-banner>.q-banner__content, + .q-menu>.q-banner>.q-banner__content { + flex-basis: auto !important + } + + .q-tab__content { + flex-basis: auto; + min-width : 100% + } + + .q-card__actions--vert { + flex: 0 0 auto + } + + .column { + min-width: 0% + } + + .q-item__section--avatar { + min-width: 56px + } + + button.q-btn--actionable:active:hover .q-btn__wrapper { + margin: -1px 1px 1px -1px + } + + .q-btn-group--push>button.q-btn--push.q-btn--actionable:active:hover .q-btn__wrapper { + margin: 1px 1px -1px -1px + } + + .q-btn { + overflow: visible + } + + .q-btn--wrap { + flex-direction: row + } + + .q-carousel__slide>* { + max-width: 100% + } + + .q-tabs--vertical .q-tab__indicator { + height: auto + } + + .q-spinner { + -webkit-animation: q-ie-spinner 2s linear infinite; + animation : q-ie-spinner 2s linear infinite; + transform-origin : center center; + opacity : 0.5 + } + + .q-spinner.q-spinner-mat .path { + stroke-dasharray: 89, 200 + } + + .q-checkbox__indet { + opacity: 0 + } + + .q-checkbox__inner--indet .q-checkbox__indet { + opacity: 1 + } + + .q-radio__check { + opacity: 0 + } + + .q-radio__inner--truthy .q-radio__check { + opacity: 1 + } + + .q-date__main { + min-height: 290px !important + } + + .q-date__months { + align-items: stretch + } + + .q-time--portrait .q-time__main { + display : flex; + flex-direction: column; + flex-wrap : nowrap; + flex : 1 0 auto + } + + .q-field__prefix, + .q-field__suffix { + flex: 1 0 auto + } + + .q-field__bottom--stale .q-field__messages { + left: 12px + } + + .q-field--borderless .q-field__bottom--stale .q-field__messages, + .q-field--standard .q-field__bottom--stale .q-field__messages { + left: 0 + } + + .q-field--float .q-field__label { + max-width: 100% + } + + .q-focus-helper { + z-index: 1 + } +} + +@media (-ms-high-contrast:none) and (min-width:0), +screen and (-ms-high-contrast:active) and (min-width:0) { + + .flex>.col, + .flex>.col-xs, + .row>.col, + .row>.col-xs { + flex-basis: auto; + min-width : 0% + } +} + +@media (-ms-high-contrast:none) and (min-width:600px), +screen and (-ms-high-contrast:active) and (min-width:600px) { + + .flex>.col-sm, + .row>.col-sm { + flex-basis: auto; + min-width : 0% + } +} + +@media (-ms-high-contrast:none) and (min-width:1024px), +screen and (-ms-high-contrast:active) and (min-width:1024px) { + + .flex>.col-md, + .row>.col-md { + flex-basis: auto; + min-width : 0% + } +} + +@media (-ms-high-contrast:none) and (min-width:1440px), +screen and (-ms-high-contrast:active) and (min-width:1440px) { + + .flex>.col-lg, + .row>.col-lg { + flex-basis: auto; + min-width : 0% + } +} + +@media (-ms-high-contrast:none) and (min-width:1920px), +screen and (-ms-high-contrast:active) and (min-width:1920px) { + + .flex>.col-xl, + .row>.col-xl { + flex-basis: auto; + min-width : 0% + } +} + +@supports (-ms-ime-align:auto) { + + .q-item:after, + .q-notification:after, + .q-toolbar:after { + content : ""; + font-size : 0; + visibility: collapse; + display : inline; + width : 0 + } + + .q-banner>.q-banner__avatar { + min-height: 38px + } + + .q-banner--dense>.q-banner__avatar { + min-height: 20px + } + + .q-item:after { + min-height: 32px + } + + .q-item--denseafter, + .q-list--dense>.q-itemafter { + min-height: 24px + } + + .q-toolbar:after { + min-height: 50px + } + + .q-notification--standard:after { + min-height: 48px + } + + .q-notification--multi-line { + min-height: 68px + } + + .q-btn__wrapper, + .q-menu .q-item__section--main, + .q-table__middle, + .q-time__content, + .q-toolbar__title { + flex-basis: auto + } + + .q-banner__content { + flex-basis: 0 !important + } + + .q-dialog__inner>.q-banner>.q-banner__content, + .q-menu>.q-banner>.q-banner__content { + flex-basis: auto !important + } + + .q-tab__content { + flex-basis: auto; + min-width : 100% + } + + .q-card__actions--vert { + flex: 0 0 auto + } + + .column { + min-width: 0% + } + + @media (-ms-high-contrast:none) and (min-width:0), + screen and (-ms-high-contrast:active) and (min-width:0) { + + .flex>.col, + .flex>.col-xs, + .row>.col, + .row>.col-xs { + flex-basis: auto; + min-width : 0% + } + } + + @media (-ms-high-contrast:none) and (min-width:600px), + screen and (-ms-high-contrast:active) and (min-width:600px) { + + .flex>.col-sm, + .row>.col-sm { + flex-basis: auto; + min-width : 0% + } + } + + @media (-ms-high-contrast:none) and (min-width:1024px), + screen and (-ms-high-contrast:active) and (min-width:1024px) { + + .flex>.col-md, + .row>.col-md { + flex-basis: auto; + min-width : 0% + } + } + + @media (-ms-high-contrast:none) and (min-width:1440px), + screen and (-ms-high-contrast:active) and (min-width:1440px) { + + .flex>.col-lg, + .row>.col-lg { + flex-basis: auto; + min-width : 0% + } + } + + @media (-ms-high-contrast:none) and (min-width:1920px), + screen and (-ms-high-contrast:active) and (min-width:1920px) { + + .flex>.col-xl, + .row>.col-xl { + flex-basis: auto; + min-width : 0% + } + } + + .q-item__section--avatar { + min-width: 56px + } + + button.q-btn--actionable:active:hover .q-btn__wrapper { + margin: -1px 1px 1px -1px + } + + .q-btn-group--push>button.q-btn--push.q-btn--actionable:active:hover .q-btn__wrapper { + margin: 1px 1px -1px -1px + } + + .q-btn { + overflow: visible + } + + .q-btn--wrap { + flex-direction: row + } + + .q-carousel__slide>* { + max-width: 100% + } + + .q-tabs--vertical .q-tab__indicator { + height: auto + } + + .q-spinner { + -webkit-animation: q-ie-spinner 2s linear infinite; + animation : q-ie-spinner 2s linear infinite; + transform-origin : center center; + opacity : 0.5 + } + + .q-spinner.q-spinner-mat .path { + stroke-dasharray: 89, 200 + } + + .q-checkbox__indet { + opacity: 0 + } + + .q-checkbox__inner--indet .q-checkbox__indet { + opacity: 1 + } + + .q-radio__check { + opacity: 0 + } + + .q-radio__inner--truthy .q-radio__check { + opacity: 1 + } + + .q-date__main { + min-height: 290px !important + } + + .q-date__months { + align-items: stretch + } + + .q-time--portrait .q-time__main { + display : flex; + flex-direction: column; + flex-wrap : nowrap; + flex : 1 0 auto + } + + .q-field__prefix, + .q-field__suffix { + flex: 1 0 auto + } + + .q-field__bottom--stale .q-field__messages { + left: 12px + } + + .q-field--borderless .q-field__bottom--stale .q-field__messages, + .q-field--standard .q-field__bottom--stale .q-field__messages { + left: 0 + } + + .q-field--float .q-field__label { + max-width: 100% + } + + .q-focus-helper { + z-index: 1 + } +} + +@-webkit-keyframes q-circular-progress-circle { + 0% { + stroke-dasharray : 1, 400; + stroke-dashoffset: 0 + } + + 50% { + stroke-dasharray : 400, 400; + stroke-dashoffset: -100 + } + + to { + stroke-dasharray : 400, 400; + stroke-dashoffset: -300 + } +} + +@keyframes q-circular-progress-circle { + 0% { + stroke-dasharray : 1, 400; + stroke-dashoffset: 0 + } + + 50% { + stroke-dasharray : 400, 400; + stroke-dashoffset: -100 + } + + to { + stroke-dasharray : 400, 400; + stroke-dashoffset: -300 + } +} + +@-webkit-keyframes q-expansion-done { + 0% { + --q-exp-done: 1 + } +} + +@keyframes q-expansion-done { + 0% { + --q-exp-done: 1 + } +} + +@-webkit-keyframes q-field-label { + 40% { + margin-left: 2px + } + + 60%, + 80% { + margin-left: -2px + } + + 70%, + 90% { + margin-left: 2px + } +} + +@keyframes q-field-label { + 40% { + margin-left: 2px + } + + 60%, + 80% { + margin-left: -2px + } + + 70%, + 90% { + margin-left: 2px + } +} + +@-webkit-keyframes q-autofill { + to { + background: transparent; + color : inherit + } +} + +@keyframes q-autofill { + to { + background: transparent; + color : inherit + } +} + +@-webkit-keyframes q-linear-progress--indeterminate { + 0% { + transform: translate3d(-35%, 0, 0) scale3d(0.35, 1, 1) + } + + 60% { + transform: translate3d(100%, 0, 0) scale3d(0.9, 1, 1) + } + + to { + transform: translate3d(100%, 0, 0) scale3d(0.9, 1, 1) + } +} + +@keyframes q-linear-progress--indeterminate { + 0% { + transform: translate3d(-35%, 0, 0) scale3d(0.35, 1, 1) + } + + 60% { + transform: translate3d(100%, 0, 0) scale3d(0.9, 1, 1) + } + + to { + transform: translate3d(100%, 0, 0) scale3d(0.9, 1, 1) + } +} + +@-webkit-keyframes q-linear-progress--indeterminate-short { + 0% { + transform: translate3d(-101%, 0, 0) scale3d(1, 1, 1) + } + + 60% { + transform: translate3d(107%, 0, 0) scale3d(0.01, 1, 1) + } + + to { + transform: translate3d(107%, 0, 0) scale3d(0.01, 1, 1) + } +} + +@keyframes q-linear-progress--indeterminate-short { + 0% { + transform: translate3d(-101%, 0, 0) scale3d(1, 1, 1) + } + + 60% { + transform: translate3d(107%, 0, 0) scale3d(0.01, 1, 1) + } + + to { + transform: translate3d(107%, 0, 0) scale3d(0.01, 1, 1) + } +} + +@-webkit-keyframes q-skeleton--fade { + 0% { + opacity: 1 + } + + 50% { + opacity: 0.4 + } + + to { + opacity: 1 + } +} + +@keyframes q-skeleton--fade { + 0% { + opacity: 1 + } + + 50% { + opacity: 0.4 + } + + to { + opacity: 1 + } +} + +@-webkit-keyframes q-skeleton--pulse { + 0% { + transform: scale(1) + } + + 50% { + transform: scale(0.85) + } + + to { + transform: scale(1) + } +} + +@keyframes q-skeleton--pulse { + 0% { + transform: scale(1) + } + + 50% { + transform: scale(0.85) + } + + to { + transform: scale(1) + } +} + +@-webkit-keyframes q-skeleton--pulse-x { + 0% { + transform: scaleX(1) + } + + 50% { + transform: scaleX(0.75) + } + + to { + transform: scaleX(1) + } +} + +@keyframes q-skeleton--pulse-x { + 0% { + transform: scaleX(1) + } + + 50% { + transform: scaleX(0.75) + } + + to { + transform: scaleX(1) + } +} + +@-webkit-keyframes q-skeleton--pulse-y { + 0% { + transform: scaleY(1) + } + + 50% { + transform: scaleY(0.75) + } + + to { + transform: scaleY(1) + } +} + +@keyframes q-skeleton--pulse-y { + 0% { + transform: scaleY(1) + } + + 50% { + transform: scaleY(0.75) + } + + to { + transform: scaleY(1) + } +} + +@-webkit-keyframes q-skeleton--wave { + 0% { + transform: translateX(-100%) + } + + to { + transform: translateX(100%) + } +} + +@keyframes q-skeleton--wave { + 0% { + transform: translateX(-100%) + } + + to { + transform: translateX(100%) + } +} + +@-webkit-keyframes q-spin { + 0% { + transform: rotate3d(0, 0, 1, 0deg) + } + + 25% { + transform: rotate3d(0, 0, 1, 90deg) + } + + 50% { + transform: rotate3d(0, 0, 1, 180deg) + } + + 75% { + transform: rotate3d(0, 0, 1, 270deg) + } + + to { + transform: rotate3d(0, 0, 1, 359deg) + } +} + +@keyframes q-spin { + 0% { + transform: rotate3d(0, 0, 1, 0deg) + } + + 25% { + transform: rotate3d(0, 0, 1, 90deg) + } + + 50% { + transform: rotate3d(0, 0, 1, 180deg) + } + + 75% { + transform: rotate3d(0, 0, 1, 270deg) + } + + to { + transform: rotate3d(0, 0, 1, 359deg) + } +} + +@-webkit-keyframes q-mat-dash { + 0% { + stroke-dasharray : 1, 200; + stroke-dashoffset: 0 + } + + 50% { + stroke-dasharray : 89, 200; + stroke-dashoffset: -35px + } + + to { + stroke-dasharray : 89, 200; + stroke-dashoffset: -124px + } +} + +@keyframes q-mat-dash { + 0% { + stroke-dasharray : 1, 200; + stroke-dashoffset: 0 + } + + 50% { + stroke-dasharray : 89, 200; + stroke-dashoffset: -35px + } + + to { + stroke-dasharray : 89, 200; + stroke-dashoffset: -124px + } +} + +@-webkit-keyframes q-notif-badge { + 15% { + transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg) + } + + 30% { + transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg) + } + + 45% { + transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg) + } + + 60% { + transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg) + } + + 75% { + transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg) + } +} + +@keyframes q-notif-badge { + 15% { + transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg) + } + + 30% { + transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg) + } + + 45% { + transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg) + } + + 60% { + transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg) + } + + 75% { + transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg) + } +} + +@-webkit-keyframes q-notif-progress { + 0% { + transform: scaleX(1) + } + + to { + transform: scaleX(0) + } +} + +@keyframes q-notif-progress { + 0% { + transform: scaleX(1) + } + + to { + transform: scaleX(0) + } +} + +@-webkit-keyframes q-scale { + 0% { + transform: scale(1) + } + + 50% { + transform: scale(1.04) + } + + to { + transform: scale(1) + } +} + +@keyframes q-scale { + 0% { + transform: scale(1) + } + + 50% { + transform: scale(1.04) + } + + to { + transform: scale(1) + } +} + +@-webkit-keyframes q-fade { + 0% { + opacity: 0 + } + + to { + opacity: 1 + } +} + +@keyframes q-fade { + 0% { + opacity: 0 + } + + to { + opacity: 1 + } +} + +@-webkit-keyframes q-ie-spinner { + 0% { + opacity: 0.5 + } + + 50% { + opacity: 1 + } + + to { + opacity: 0.5 + } +} + +@keyframes q-ie-spinner { + 0% { + opacity: 0.5 + } + + 50% { + opacity: 1 + } + + to { + opacity: 0.5 + } +} \ No newline at end of file diff --git a/src/renderer/lib/quasar/quasar.umd.min.js b/src/renderer/lib/quasar/quasar.umd.min.js new file mode 100644 index 00000000..339a125b --- /dev/null +++ b/src/renderer/lib/quasar/quasar.umd.min.js @@ -0,0 +1,6 @@ +/*! + * Quasar Framework v1.19.4 + * (c) 2015-present Razvan Stoenescu + * Released under the MIT License. + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("vue")):"function"==typeof define&&define.amd?define(["vue"],e):(t=t||self).Quasar=e(t.Vue)}(this,function(t){"use strict";t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t;var e,i="undefined"==typeof window,n=!1,s=i;var o=!1===i&&("ontouchstart"in window||window.navigator.maxTouchPoints>0);function r(t){var r=t.toLowerCase(),a=function(t,e){var i=/(edge|edga|edgios)\/([\w.]+)/.exec(t)||/(opr)[\/]([\w.]+)/.exec(t)||/(vivaldi)[\/]([\w.]+)/.exec(t)||/(chrome|crios)[\/]([\w.]+)/.exec(t)||/(iemobile)[\/]([\w.]+)/.exec(t)||/(version)(applewebkit)[\/]([\w.]+).*(safari)[\/]([\w.]+)/.exec(t)||/(webkit)[\/]([\w.]+).*(version)[\/]([\w.]+).*(safari)[\/]([\w.]+)/.exec(t)||/(firefox|fxios)[\/]([\w.]+)/.exec(t)||/(webkit)[\/]([\w.]+)/.exec(t)||/(opera)(?:.*version|)[\/]([\w.]+)/.exec(t)||/(msie) ([\w.]+)/.exec(t)||t.indexOf("trident")>=0&&/(rv)(?::| )([\w.]+)/.exec(t)||t.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(t)||[];return{browser:i[5]||i[3]||i[1]||"",version:i[2]||i[4]||"0",versionNumber:i[4]||i[2]||"0",platform:e[0]||""}}(r,function(t){return/(ipad)/.exec(t)||/(ipod)/.exec(t)||/(windows phone)/.exec(t)||/(iphone)/.exec(t)||/(kindle)/.exec(t)||/(silk)/.exec(t)||/(android)/.exec(t)||/(win)/.exec(t)||/(mac)/.exec(t)||/(linux)/.exec(t)||/(cros)/.exec(t)||/(playbook)/.exec(t)||/(bb)/.exec(t)||/(blackberry)/.exec(t)||[]}(r)),l={};a.browser&&(l[a.browser]=!0,l.version=a.version,l.versionNumber=parseInt(a.versionNumber,10)),a.platform&&(l[a.platform]=!0);var c=l.android||l.ios||l.bb||l.blackberry||l.ipad||l.iphone||l.ipod||l.kindle||l.playbook||l.silk||l["windows phone"];return!0===c||r.indexOf("mobile")>-1?(l.mobile=!0,l.edga||l.edgios?(l.edge=!0,a.browser="edge"):l.crios?(l.chrome=!0,a.browser="chrome"):l.fxios&&(l.firefox=!0,a.browser="firefox")):l.desktop=!0,(l.ipod||l.ipad||l.iphone)&&(l.ios=!0),l["windows phone"]&&(l.winphone=!0,delete l["windows phone"]),(l.chrome||l.opr||l.safari||l.vivaldi||!0===l.mobile&&!0!==l.ios&&!0!==c)&&(l.webkit=!0),(l.rv||l.iemobile)&&(a.browser="ie",l.ie=!0),(l.safari&&l.blackberry||l.bb)&&(a.browser="blackberry",l.blackberry=!0),l.safari&&l.playbook&&(a.browser="playbook",l.playbook=!0),l.opr&&(a.browser="opera",l.opera=!0),l.safari&&l.android&&(a.browser="android",l.android=!0),l.safari&&l.kindle&&(a.browser="kindle",l.kindle=!0),l.safari&&l.silk&&(a.browser="silk",l.silk=!0),l.vivaldi&&(a.browser="vivaldi",l.vivaldi=!0),l.name=a.browser,l.platform=a.platform,!1===i&&(r.indexOf("electron")>-1?l.electron=!0:document.location.href.indexOf("-extension://")>-1?l.bex=!0:(void 0!==window.Capacitor?(l.capacitor=!0,l.nativeMobile=!0,l.nativeMobileWrapper="capacitor"):void 0===window._cordovaNative&&void 0===window.cordova||(l.cordova=!0,l.nativeMobile=!0,l.nativeMobileWrapper="cordova"),!0===o&&!0===l.mac&&(!0===l.desktop&&!0===l.safari||!0===l.nativeMobile&&!0!==l.android&&!0!==l.ios&&!0!==l.ipad)&&function(t){var i;e={is:Object.assign({},t)},delete t.mac,delete t.desktop;var n=Math.min(window.innerHeight,window.innerWidth)>414?"ipad":"iphone";Object.assign(t,((i={mobile:!0,ios:!0,platform:n})[n]=!0,i))}(l)),!0===(n=void 0===l.nativeMobile&&void 0===l.electron&&null!==document.querySelector("[data-server-rendered]"))&&(s=!0)),l}var a=!0!==i?navigator.userAgent||navigator.vendor||window.opera:"",l={has:{touch:!1,webStorage:!1},within:{iframe:!1}},c=!1===i?{userAgent:a,is:r(a),has:{touch:o,webStorage:function(){try{if(window.localStorage)return!0}catch(t){}return!1}()},within:{iframe:window.self!==window.top}}:l,u={install:function(o,r){var a=this;!0===i?r.server.push(function(t,e){t.platform=a.parseSSR(e.ssr)}):!0===n?(Object.assign(this,c,e,l),r.takeover.push(function(t){s=n=!1,Object.assign(t.platform,c),e=void 0}),t.util.defineReactive(o,"platform",this)):(Object.assign(this,c),o.platform=this)}};!0===i?u.parseSSR=function(t){var e=t.req.headers["user-agent"]||t.req.headers["User-Agent"]||"";return Object.assign({},c,{userAgent:e,is:r(e)})}:!0===c.is.ios&&window.navigator.vendor.toLowerCase().indexOf("apple");var h={hasPassive:!1,passiveCapture:!0,notPassiveCapture:!0};try{var d=Object.defineProperty({},"passive",{get:function(){Object.assign(h,{hasPassive:!0,passive:{passive:!0},notPassive:{passive:!1},passiveCapture:{passive:!0,capture:!0},notPassiveCapture:{passive:!1,capture:!0}})}});window.addEventListener("qtest",null,d),window.removeEventListener("qtest",null,d)}catch(t){}function p(){}function f(t){return 0===t.button}function m(t){return t.touches&&t.touches[0]?t=t.touches[0]:t.changedTouches&&t.changedTouches[0]?t=t.changedTouches[0]:t.targetTouches&&t.targetTouches[0]&&(t=t.targetTouches[0]),{top:t.clientY,left:t.clientX}}function v(t){if(t.path)return t.path;if(t.composedPath)return t.composedPath();for(var e=[],i=t.target;i;){if(e.push(i),"HTML"===i.tagName)return e.push(document),e.push(window),e;i=i.parentElement}}var g=40,_=800;function b(t){t.stopPropagation()}function y(t){!1!==t.cancelable&&t.preventDefault()}function S(t){!1!==t.cancelable&&t.preventDefault(),t.stopPropagation()}function w(t,e){if(void 0!==t&&(!0!==e||!0!==t.__dragPrevented)){var i=!0===e?function(t){t.__dragPrevented=!0,t.addEventListener("dragstart",y,h.notPassiveCapture)}:function(t){delete t.__dragPrevented,t.removeEventListener("dragstart",y,h.notPassiveCapture)};t.querySelectorAll("a, img").forEach(i)}}function C(t,e){void 0===e&&(e={});var i=e.bubbles;void 0===i&&(i=!1);var n=e.cancelable;void 0===n&&(n=!1);try{return new CustomEvent(t,{bubbles:i,cancelable:n})}catch(e){var s=document.createEvent("Event");return s.initEvent(t,i,n),s}}function x(t,e,i){var n="__q_"+e+"_evt";t[n]=void 0!==t[n]?t[n].concat(i):i,i.forEach(function(e){e[0].addEventListener(e[1],t[e[2]],h[e[3]])})}function k(t,e){var i="__q_"+e+"_evt";void 0!==t[i]&&(t[i].forEach(function(e){e[0].removeEventListener(e[1],t[e[2]],h[e[3]])}),t[i]=void 0)}var q={listenOpts:h,leftClick:f,middleClick:function(t){return 1===t.button},rightClick:function(t){return 2===t.button},position:m,getEventPath:v,getMouseWheelDistance:function(t){var e,i=t.deltaX,n=t.deltaY;if((i||n)&&t.deltaMode){var s=1===t.deltaMode?g:_;i*=s,n*=s}return t.shiftKey&&!i&&(n=(e=[i,n])[0],i=e[1]),{x:i,y:n}},stop:b,prevent:y,stopAndPrevent:S,preventDraggable:w,create:C};function T(t,e,i){var n;function s(){var s=this,o=arguments;clearTimeout(n),!0===i&&void 0===n&&t.apply(this,o),n=setTimeout(function(){n=void 0,!0!==i&&t.apply(s,o)},e)}return void 0===e&&(e=250),s.cancel=function(){clearTimeout(n)},s}var M=["sm","md","lg","xl"],$=h.passive,L={width:0,height:0,name:"xs",sizes:{sm:600,md:1024,lg:1440,xl:1920},lt:{sm:!0,md:!0,lg:!0,xl:!0},gt:{xs:!1,sm:!1,md:!1,lg:!1},xs:!0,sm:!1,md:!1,lg:!1,xl:!1,setSizes:p,setDebounce:p,install:function(e,s,o){var r=this;if(!0!==i){var a,l=window.visualViewport,u=l||window,h=document.scrollingElement||document.documentElement,d=void 0===l||!0===c.is.mobile?function(){return[Math.max(window.innerWidth,h.clientWidth),Math.max(window.innerHeight,h.clientHeight)]}:function(){return[l.width*l.scale+window.innerWidth-h.clientWidth,l.height*l.scale+window.innerHeight-h.clientHeight]},p=void 0!==o.screen&&!0===o.screen.bodyClasses,f=function(t){var e=d(),i=e[0],n=e[1];if(n!==r.height&&(r.height=n),i!==r.width)r.width=i;else if(!0!==t)return;var s=r.sizes;r.gt.xs=i>=s.sm,r.gt.sm=i>=s.md,r.gt.md=i>=s.lg,r.gt.lg=i>=s.xl,r.lt.sm=i0?T(f,t):f,u.addEventListener("resize",a,$)},r.setDebounce(v),Object.keys(m).length>0?(r.setSizes(m),m=void 0):f(),!0===p&&"xs"===r.name&&document.body.classList.add("screen--xs")};!0===n?s.takeover.push(g):g(),t.util.defineReactive(e,"screen",this)}else e.screen=this}},O={isActive:!1,mode:!1,install:function(e,s,o){var r=this,a=o.dark;if(this.isActive=!0===a,!0===i)return s.server.push(function(t,e){t.dark={isActive:!1,mode:!1,set:function(i){e.ssr.Q_BODY_CLASSES=e.ssr.Q_BODY_CLASSES.replace(" body--light","").replace(" body--dark","")+" body--"+(!0===i?"dark":"light"),t.dark.isActive=!0===i,t.dark.mode=i},toggle:function(){t.dark.set(!1===t.dark.isActive)}},t.dark.set(a)}),void(this.set=p);var l=void 0!==a&&a;if(!0===n){var c=function(t){r.__fromSSR=t},u=this.set;this.set=c,c(l),s.takeover.push(function(){r.set=u,r.set(r.__fromSSR)})}else this.set(l);t.util.defineReactive(this,"isActive",this.isActive),t.util.defineReactive(e,"dark",this)},set:function(t){var e=this;this.mode=t,"auto"===t?(void 0===this.__media&&(this.__media=window.matchMedia("(prefers-color-scheme: dark)"),this.__updateMedia=function(){e.set("auto")},this.__media.addListener(this.__updateMedia)),t=this.__media.matches):void 0!==this.__media&&(this.__media.removeListener(this.__updateMedia),this.__media=void 0),this.isActive=!0===t,document.body.classList.remove("body--"+(!0===t?"light":"dark")),document.body.classList.add("body--"+(!0===t?"dark":"light"))},toggle:function(){O.set(!1===O.isActive)},__media:void 0},B=function(){return!0};function E(t){return"string"==typeof t&&""!==t&&"/"!==t&&"#/"!==t}function z(t){return!0===t.startsWith("#")&&(t=t.substr(1)),!1===t.startsWith("/")&&(t="/"+t),!0===t.endsWith("/")&&(t=t.substr(0,t.length-1)),"#"+t}var P={__history:[],add:p,remove:p,install:function(t){var e=this;if(!0!==i){var n=c.is,s=n.cordova,o=n.capacitor;if(!0===s||!0===o){var r=t[!0===s?"cordova":"capacitor"];if((void 0===r||!1!==r.backButton)&&(!0!==o||void 0!==window.Capacitor&&void 0!==window.Capacitor.Plugins.App)){this.add=function(t){void 0===t.condition&&(t.condition=B),e.__history.push(t)},this.remove=function(t){var i=e.__history.indexOf(t);i>=0&&e.__history.splice(i,1)};var a=function(t){if(!1===t.backButtonExit)return function(){return!1};if("*"===t.backButtonExit)return B;var e=["#/"];return!0===Array.isArray(t.backButtonExit)&&e.push.apply(e,t.backButtonExit.filter(E).map(z)),function(){return e.includes(window.location.hash)}}(Object.assign({backButtonExit:!0},r)),l=function(){if(e.__history.length){var t=e.__history[e.__history.length-1];!0===t.condition()&&(e.__history.pop(),t.handler())}else!0===a()?navigator.app.exitApp():window.history.back()};!0===s?document.addEventListener("deviceready",function(){document.addEventListener("backbutton",l,!1)}):window.Capacitor.Plugins.App.addListener("backButton",l)}}}}},A={isoName:"en-us",nativeName:"English (US)",label:{clear:"Clear",ok:"OK",cancel:"Cancel",close:"Close",set:"Set",select:"Select",reset:"Reset",remove:"Remove",update:"Update",create:"Create",search:"Search",filter:"Filter",refresh:"Refresh"},date:{days:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),daysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),firstDayOfWeek:0,format24h:!1,pluralDay:"days"},table:{noData:"No data available",noResults:"No matching records found",loading:"Loading...",selectedRecords:function(t){return 1===t?"1 record selected.":(0===t?"No":t)+" records selected."},recordsPerPage:"Records per page:",allRows:"All",pagination:function(t,e,i){return t+"-"+e+" of "+i},columns:"Columns"},editor:{url:"URL",bold:"Bold",italic:"Italic",strikethrough:"Strikethrough",underline:"Underline",unorderedList:"Unordered List",orderedList:"Ordered List",subscript:"Subscript",superscript:"Superscript",hyperlink:"Hyperlink",toggleFullscreen:"Toggle Fullscreen",quote:"Quote",left:"Left align",center:"Center align",right:"Right align",justify:"Justify align",print:"Print",outdent:"Decrease indentation",indent:"Increase indentation",removeFormat:"Remove formatting",formatting:"Formatting",fontSize:"Font Size",align:"Align",hr:"Insert Horizontal Rule",undo:"Undo",redo:"Redo",heading1:"Heading 1",heading2:"Heading 2",heading3:"Heading 3",heading4:"Heading 4",heading5:"Heading 5",heading6:"Heading 6",paragraph:"Paragraph",code:"Code",size1:"Very small",size2:"A bit small",size3:"Normal",size4:"Medium-large",size5:"Big",size6:"Very big",size7:"Maximum",defaultFont:"Default Font",viewSource:"View Source"},tree:{noNodes:"No nodes available",noResults:"No matching nodes found"}};function I(){if(!0!==i){var t=navigator.language||navigator.languages[0]||navigator.browserLanguage||navigator.userLanguage||navigator.systemLanguage;return t?t.toLowerCase():void 0}}var D={getLocale:I,install:function(e,s,o){var r=this,a=o||A;this.set=function(t,s){void 0===t&&(t=A);var o=Object.assign({},t,{rtl:!0===t.rtl,getLocale:I});if(!0===i){if(void 0===s)return void console.error("SSR ERROR: second param required: Quasar.lang.set(lang, ssrContext)");var a=!0===o.rtl?"rtl":"ltr",l="lang="+o.isoName+" dir="+a;o.set=s.$q.lang.set,s.Q_HTML_ATTRS=void 0!==s.Q_PREV_LANG?s.Q_HTML_ATTRS.replace(s.Q_PREV_LANG,l):l,s.Q_PREV_LANG=l,s.$q.lang=o}else{if(!1===n){var c=document.documentElement;c.setAttribute("dir",!0===o.rtl?"rtl":"ltr"),c.setAttribute("lang",o.isoName)}o.set=r.set,e.lang=r.props=o,r.isoName=o.isoName,r.nativeName=o.nativeName}},!0===i?(s.server.push(function(t,e){t.lang={},t.lang.set=function(t){r.set(t,e.ssr)},t.lang.set(a)}),this.isoName=a.isoName,this.nativeName=a.nativeName,this.props=a):(t.util.defineReactive(e,"lang",{}),this.set(a))}},R=/^rgb(a)?\((\d{1,3}),(\d{1,3}),(\d{1,3}),?([01]?\.?\d*?)?\)$/;function F(t){var e=t.r,i=t.g,n=t.b,s=t.a,o=void 0!==s;if(e=Math.round(e),i=Math.round(i),n=Math.round(n),e>255||i>255||n>255||o&&s>100)throw new TypeError("Expected 3 numbers below 256 (and optionally one below 100)");return s=o?(256|Math.round(255*s/100)).toString(16).slice(1):"","#"+(n|i<<8|e<<16|1<<24).toString(16).slice(1)+s}function j(t){var e=t.r,i=t.g,n=t.b,s=t.a;return"rgb"+(void 0!==s?"a":"")+"("+e+","+i+","+n+(void 0!==s?","+s/100:"")+")"}function V(t){if("string"!=typeof t)throw new TypeError("Expected a string");3===(t=t.replace(/^#/,"")).length?t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]:4===t.length&&(t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]+t[3]+t[3]);var e=parseInt(t,16);return t.length>6?{r:e>>24&255,g:e>>16&255,b:e>>8&255,a:Math.round((255&e)/2.55)}:{r:e>>16,g:e>>8&255,b:255&e}}function N(t){var e,i,n,s=t.h,o=t.s,r=t.v,a=t.a;o/=100,r/=100,s/=360;var l=Math.floor(6*s),c=6*s-l,u=r*(1-o),h=r*(1-c*o),d=r*(1-(1-c)*o);switch(l%6){case 0:e=r,i=d,n=u;break;case 1:e=h,i=r,n=u;break;case 2:e=u,i=r,n=d;break;case 3:e=u,i=h,n=r;break;case 4:e=d,i=u,n=r;break;case 5:e=r,i=u,n=h}return{r:Math.round(255*e),g:Math.round(255*i),b:Math.round(255*n),a:a}}function H(t){var e,i=t.r,n=t.g,s=t.b,o=t.a,r=Math.max(i,n,s),a=Math.min(i,n,s),l=r-a,c=0===r?0:l/r,u=r/255;switch(r){case a:e=0;break;case i:e=n-s+l*(n1)throw new TypeError("Expected offset to be between -1 and 1");var i=Q(t),n=i.r,s=i.g,o=i.b,r=i.a,a=void 0!==r?r/100:0;return F({r:n,g:s,b:o,a:Math.round(100*Math.min(1,Math.max(0,a+e)))})},setBrand:Y,getBrand:U,getPaletteColor:function(t){if("string"!=typeof t)throw new TypeError("Expected a string as color");var e=document.createElement("div");e.className="text-"+t+" invisible fixed no-pointer-events",document.body.appendChild(e);var i=getComputedStyle(e).getPropertyValue("color");return e.remove(),F(Q(i))}},X=!1;function G(t){X=!0===t.isComposing}function Z(t){return!0===X||t!==Object(t)||!0===t.isComposing||!0===t.qKeyEvent}function J(t,e){return!0!==Z(t)&&[].concat(e).includes(t.keyCode)}function tt(t,e){var i=t.is,n=t.has,s=t.within,o=[!0===i.desktop?"desktop":"mobile",(!1===n.touch?"no-":"")+"touch"];if(!0===i.mobile){var r=function(t){return!0===t.ios?"ios":!0===t.android?"android":void 0}(i);void 0!==r&&o.push("platform-"+r)}if(!0===i.nativeMobile){var a=i.nativeMobileWrapper;o.push(a),o.push("native-mobile"),!0!==i.ios||void 0!==e[a]&&!1===e[a].iosStatusBarPadding||o.push("q-ios-padding")}else!0===i.electron?o.push("electron"):!0===i.bex&&o.push("bex");return!0===s.iframe&&o.push("within-iframe"),o}var et={install:function(t,s){if(!0!==i){if(!0===n)r=document.body.className,a=r,void 0!==e&&(a=a.replace("desktop","platform-ios mobile")),!0===c.has.touch&&(a=a.replace("no-touch","touch")),!0===c.within.iframe&&(a+=" within-iframe"),r!==a&&(document.body.className=a);else{var o=tt(c,s);!0===c.is.ie&&11===c.is.versionNumber?o.forEach(function(t){return document.body.classList.add(t)}):document.body.classList.add.apply(document.body.classList,o)}var r,a;void 0!==s.brand&&function(t){for(var e in t)Y(e,t[e])}(s.brand),!0===c.is.ios&&document.body.addEventListener("touchstart",p),window.addEventListener("keydown",G,!0)}else t.server.push(function(t,e){var i=tt(t.platform,s),n=e.ssr.setBodyClasses;void 0!==s.screen&&!0===s.screen.bodyClass&&i.push("screen--xs"),"function"==typeof n?n(i):e.ssr.Q_BODY_CLASSES=i.join(" ")})}},it={name:"material-icons",type:{positive:"check_circle",negative:"warning",info:"info",warning:"priority_high"},arrow:{up:"arrow_upward",right:"arrow_forward",down:"arrow_downward",left:"arrow_back",dropdown:"arrow_drop_down"},chevron:{left:"chevron_left",right:"chevron_right"},colorPicker:{spectrum:"gradient",tune:"tune",palette:"style"},pullToRefresh:{icon:"refresh"},carousel:{left:"chevron_left",right:"chevron_right",up:"keyboard_arrow_up",down:"keyboard_arrow_down",navigationIcon:"lens"},chip:{remove:"cancel",selected:"check"},datetime:{arrowLeft:"chevron_left",arrowRight:"chevron_right",now:"access_time",today:"today"},editor:{bold:"format_bold",italic:"format_italic",strikethrough:"strikethrough_s",underline:"format_underlined",unorderedList:"format_list_bulleted",orderedList:"format_list_numbered",subscript:"vertical_align_bottom",superscript:"vertical_align_top",hyperlink:"link",toggleFullscreen:"fullscreen",quote:"format_quote",left:"format_align_left",center:"format_align_center",right:"format_align_right",justify:"format_align_justify",print:"print",outdent:"format_indent_decrease",indent:"format_indent_increase",removeFormat:"format_clear",formatting:"text_format",fontSize:"format_size",align:"format_align_left",hr:"remove",undo:"undo",redo:"redo",heading:"format_size",code:"code",size:"format_size",font:"font_download",viewSource:"code"},expansionItem:{icon:"keyboard_arrow_down",denseIcon:"arrow_drop_down"},fab:{icon:"add",activeIcon:"close"},field:{clear:"cancel",error:"error"},pagination:{first:"first_page",prev:"keyboard_arrow_left",next:"keyboard_arrow_right",last:"last_page"},rating:{icon:"grade"},stepper:{done:"check",active:"edit",error:"warning"},tabs:{left:"chevron_left",right:"chevron_right",up:"keyboard_arrow_up",down:"keyboard_arrow_down"},table:{arrowUp:"arrow_upward",warning:"warning",firstPage:"first_page",prevPage:"chevron_left",nextPage:"chevron_right",lastPage:"last_page"},tree:{icon:"play_arrow"},uploader:{done:"done",clear:"clear",add:"add_box",upload:"cloud_upload",removeQueue:"clear_all",removeUploaded:"done_all"}},nt={install:function(e,n,s){var o=this,r=s||it;this.set=function(t,n){var s=Object.assign({},t);if(!0===i){if(void 0===n)return void console.error("SSR ERROR: second param required: Quasar.iconSet.set(iconSet, ssrContext)");s.set=n.$q.iconSet.set,n.$q.iconSet=s}else s.set=o.set,e.iconSet=s},!0===i?n.server.push(function(t,e){t.iconSet={},t.iconSet.set=function(t){o.set(t,e.ssr)},t.iconSet.set(r)}):(t.util.defineReactive(e,"iconMapFn",void 0),t.util.defineReactive(e,"iconSet",{}),this.set(r))}},st=[u,L,O],ot={server:[],takeover:[]},rt={version:"1.19.4",config:{}};var at=["B","KB","MB","GB","TB","PB"];function lt(t){for(var e=0;parseInt(t,10)>=1024&&e=e?n:new Array(e-n.length+1).join(i)+n}var pt={humanStorageSize:lt,capitalize:ct,between:ut,normalizeToInterval:ht,pad:dt};function ft(t,e,n){if(!0===i)return n;var s="__qcache_"+e;return void 0===t[s]?t[s]=n:t[s]}function mt(t,e,n){if(!0===i)return n();var s="__qcache_"+e;return void 0===t[s]?t[s]=n():t[s]}function vt(t,e){var i;return{data:function(){var i,n={},s=this[t];for(var o in s)n[o]=s[o];return(i={})[e]=n,i},watch:(i={},i[t]=function(t,i){var n=this[e];if(void 0!==i)for(var s in i)void 0===t[s]&&this.$delete(n,s);for(var o in t)n[o]!==t[o]&&this.$set(n,o,t[o])},i)}}var gt={"aria-hidden":"true"},_t={tabindex:0,type:"button","aria-hidden":!1,role:null},bt=vt("$attrs","qAttrs"),yt=i?null:XMLHttpRequest,St=i?null:yt.prototype.open,wt=["top","right","bottom","left"],Ct=[],xt=0;var kt=t.extend({name:"QAjaxBar",props:{position:{type:String,default:"top",validator:function(t){return wt.includes(t)}},size:{type:String,default:"2px"},color:String,reverse:Boolean,skipHijack:Boolean,hijackFilter:Function},data:function(){return{calls:0,progress:0,onScreen:!1,animate:!0}},computed:{classes:function(){return"q-loading-bar q-loading-bar--"+this.position+(void 0!==this.color?" bg-"+this.color:"")+(!0===this.animate?"":" no-transition")},style:function(){var t=this.onScreen,e=function(t){var e=t.p,i=t.pos,n=t.active,s=t.horiz,o=t.reverse,r=t.dir,a=1,l=1;return!0===s?(!0===o&&(a=-1),"bottom"===i&&(l=-1),{transform:"translate3d("+a*(e-100)+"%,"+(n?0:-200*l)+"%,0)"}):(!0===o&&(l=-1),"right"===i&&(a=-1),{transform:"translate3d("+(n?0:r*a*-200)+"%,"+l*(e-100)+"%,0)"})}({p:this.progress,pos:this.position,active:t,horiz:this.horizontal,reverse:!0===this.$q.lang.rtl&&["top","bottom"].includes(this.position)?!1===this.reverse:this.reverse,dir:!0===this.$q.lang.rtl?-1:1});return e[this.sizeProp]=this.size,e.opacity=t?1:0,e},horizontal:function(){return"top"===this.position||"bottom"===this.position},sizeProp:function(){return this.horizontal?"height":"width"},attrs:function(){return!0===this.onScreen?{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.progress}:gt}},methods:{start:function(t){var e=this;void 0===t&&(t=300);var i=this.speed,n=this.speed=Math.max(0,t)||0;return this.calls++,this.calls>1?(0===i&&n>0?this.__work():i>0&&n<=0&&clearTimeout(this.timer),this.calls):(clearTimeout(this.timer),this.$emit("start"),this.progress=0,this.timer=setTimeout(function(){e.animate=!0,n>0&&e.__work()},!0===this.onScreen?500:1),!0!==this.onScreen&&(this.onScreen=!0,this.animate=!1),this.calls)},increment:function(t){return this.calls>0&&(this.progress=function(t,e){return"number"!=typeof e&&(e=t<25?3*Math.random()+3:t<65?3*Math.random():t<85?2*Math.random():t<99?.6:0),ut(t+e,0,100)}(this.progress,t)),this.calls},stop:function(){var t=this;if(this.calls=Math.max(0,this.calls-1),this.calls>0)return this.calls;clearTimeout(this.timer),this.$emit("stop");var e=function(){t.animate=!0,t.progress=100,t.timer=setTimeout(function(){t.onScreen=!1},1e3)};return 0===this.progress?this.timer=setTimeout(e,1):e(),this.calls},__work:function(){var t=this;this.progress<100&&(this.timer=setTimeout(function(){t.increment(),t.__work()},this.speed))}},mounted:function(){var t,e=this;!0!==this.skipHijack&&(this.hijacked=!0,t={start:this.start,stop:this.stop,getHijackFilter:function(){return e.hijackFilter||null}},xt++,Ct.push(t),xt>1||(yt.prototype.open=function(t,e){var i=[];this.addEventListener("loadstart",function(){Ct.forEach(function(t){var n=t.getHijackFilter();null!==n&&!0!==n(e)||(t.start(),i.push(t.stop))})},{once:!0}),this.addEventListener("loadend",function(){i.forEach(function(t){t()})},{once:!0}),St.apply(this,arguments)}))},beforeDestroy:function(){var t;clearTimeout(this.timer),!0===this.hijacked&&(t=this.start,Ct=Ct.filter(function(e){return e.start!==t}),(xt=Math.max(0,xt-1))||(yt.prototype.open=St))},render:function(t){return t("div",{class:this.classes,style:this.style,attrs:this.attrs})}}),qt={xs:18,sm:24,md:32,lg:38,xl:46};function Tt(t){return{props:{size:String},computed:{sizeStyle:function(){if(void 0!==this.size)return{fontSize:this.size in t?t[this.size]+"px":this.size}}}}}var Mt=Tt(qt),$t={props:{tag:{type:String,default:"div"}}},Lt=vt("$listeners","qListeners");function Ot(t,e,i){return void 0!==t.$scopedSlots[e]?t.$scopedSlots[e]():i}function Bt(t,e,i){return void 0!==t.$scopedSlots[e]?[].concat(t.$scopedSlots[e]()):i}function Et(t,e,i){return void 0!==e.$scopedSlots[i]?t.concat(e.$scopedSlots[i]()):t}function zt(t,e,i){if(void 0===e.$scopedSlots[i])return t;var n=e.$scopedSlots[i]();return void 0!==t?t.concat(n):n}var Pt=function(t){return t},At=function(t){return"ionicons "+t},It={"mdi-":function(t){return"mdi "+t},"icon-":Pt,"bt-":function(t){return"bt "+t},"eva-":function(t){return"eva "+t},"ion-md":At,"ion-ios":At,"ion-logo":At,"iconfont ":Pt,"ti-":function(t){return"themify-icon "+t},"bi-":function(t){return"bootstrap-icons "+t}},Dt={o_:"-outlined",r_:"-round",s_:"-sharp"},Rt={sym_o_:"-outlined",sym_r_:"-rounded",sym_s_:"-sharp"},Ft=new RegExp("^("+Object.keys(It).join("|")+")"),jt=new RegExp("^("+Object.keys(Dt).join("|")+")"),Vt=new RegExp("^("+Object.keys(Rt).join("|")+")"),Nt=/^[Mm]\s?[-+]?\.?\d/,Ht=/^img:/,Qt=/^svguse:/,Wt=/^ion-/,Yt=/^(fa-(solid|regular|light|brands|duotone|thin)|[lf]a[srlbdk]?) /,Ut=t.extend({name:"QIcon",mixins:[Lt,Mt,$t],props:{tag:{type:String,default:"i"},name:String,color:String,left:Boolean,right:Boolean},computed:{classes:function(){return"q-icon"+(!0===this.left?" on-left":"")+(!0===this.right?" on-right":"")+(void 0!==this.color?" text-"+this.color:"")},type:function(){var t,e=this,i=this.name;if("none"===i||!i)return{none:!0};if(void 0!==this.$q.iconMapFn){var n=this.$q.iconMapFn(i);if(void 0!==n){if(void 0===n.icon)return{cls:n.cls,content:void 0!==n.content?n.content:" "};if("none"===(i=n.icon)||!i)return{none:!0}}}if(!0===Nt.test(i)){var s=i.split("|"),o=s[0],r=s[1];return void 0===r&&(r="0 0 24 24"),{svg:!0,viewBox:r,nodes:o.split("&&").map(function(t){var i=t.split("@@"),n=i[0],s=i[1],o=i[2];return e.$createElement("path",{attrs:{d:n,transform:o},style:s})})}}if(!0===Ht.test(i))return{img:!0,src:i.substring(4)};if(!0===Qt.test(i)){var a=i.split("|"),l=a[0],c=a[1];return void 0===c&&(c="0 0 24 24"),{svguse:!0,src:l.substring(7),viewBox:c}}var u=" ",h=i.match(Ft);if(null!==h)t=It[h[1]](i);else if(!0===Yt.test(i))t=i;else if(!0===Wt.test(i))t="ionicons ion-"+(!0===this.$q.platform.is.ios?"ios":"md")+i.substr(3);else if(!0===Vt.test(i)){t="notranslate material-symbols";var d=i.match(Vt);null!==d&&(i=i.substring(6),t+=Rt[d[1]]),u=i}else{t="notranslate material-icons";var p=i.match(jt);null!==p&&(i=i.substring(2),t+=Dt[p[1]]),u=i}return{cls:t,content:u}}},render:function(t){var e={class:this.classes,style:this.sizeStyle,on:Object.assign({},this.qListeners),attrs:{"aria-hidden":"true",role:"presentation"}};return!0===this.type.none?t(this.tag,e,Ot(this,"default")):!0===this.type.img?t("span",e,Et([t("img",{attrs:{src:this.type.src}})],this,"default")):!0===this.type.svg?t("span",e,Et([t("svg",{attrs:{viewBox:this.type.viewBox||"0 0 24 24",focusable:"false"}},this.type.nodes)],this,"default")):!0===this.type.svguse?t("span",e,Et([t("svg",{attrs:{viewBox:this.type.viewBox,focusable:"false"}},[t("use",{attrs:{"xlink:href":this.type.src}})])],this,"default")):(void 0!==this.type.cls&&(e.class+=" "+this.type.cls),t(this.tag,e,Et([this.type.content],this,"default")))}}),Kt=t.extend({name:"QAvatar",mixins:[Lt,Mt],props:{fontSize:String,color:String,textColor:String,icon:String,square:Boolean,rounded:Boolean},computed:{classes:function(){var t;return(t={})["bg-"+this.color]=this.color,t["text-"+this.textColor+" q-chip--colored"]=this.textColor,t["q-avatar--square"]=this.square,t["rounded-borders"]=this.rounded,t},contentStyle:function(){if(this.fontSize)return{fontSize:this.fontSize}}},render:function(t){var e=void 0!==this.icon?[t(Ut,{props:{name:this.icon}})]:void 0;return t("div",{staticClass:"q-avatar",style:this.sizeStyle,class:this.classes,on:Object.assign({},this.qListeners)},[t("div",{staticClass:"q-avatar__content row flex-center overflow-hidden",style:this.contentStyle},zt(e,this,"default"))])}}),Xt=t.extend({name:"QBadge",mixins:[Lt],props:{color:String,textColor:String,floating:Boolean,transparent:Boolean,multiLine:Boolean,outline:Boolean,rounded:Boolean,label:[Number,String],align:{type:String,validator:function(t){return["top","middle","bottom"].includes(t)}}},computed:{style:function(){if(void 0!==this.align)return{verticalAlign:this.align}},classes:function(){var t=!0===this.outline&&this.color||this.textColor;return"q-badge flex inline items-center no-wrap q-badge--"+(!0===this.multiLine?"multi":"single")+"-line"+(!0===this.outline?" q-badge--outline":void 0!==this.color?" bg-"+this.color:"")+(void 0!==t?" text-"+t:"")+(!0===this.floating?" q-badge--floating":"")+(!0===this.rounded?" q-badge--rounded":"")+(!0===this.transparent?" q-badge--transparent":"")},attrs:function(){return{role:"alert","aria-label":this.label}}},render:function(t){return t("div",{style:this.style,class:this.classes,attrs:this.attrs,on:Object.assign({},this.qListeners)},void 0!==this.label?[this.label]:Ot(this,"default"))}}),Gt={props:{dark:{type:Boolean,default:null}},computed:{isDark:function(){return null===this.dark?this.$q.dark.isActive:this.dark}}},Zt={role:"alert"},Jt=t.extend({name:"QBanner",mixins:[Lt,Gt],props:{inlineActions:Boolean,dense:Boolean,rounded:Boolean},render:function(t){var e=Ot(this,"action"),i=[t("div",{staticClass:"q-banner__avatar col-auto row items-center self-start"},Ot(this,"avatar")),t("div",{staticClass:"q-banner__content col text-body2"},Ot(this,"default"))];return void 0!==e&&i.push(t("div",{staticClass:"q-banner__actions row items-center justify-end",class:"col-"+(!0===this.inlineActions?"auto":"all")},e)),t("div",{staticClass:"q-banner row items-center",class:{"q-banner--top-padding":void 0!==e&&!this.inlineActions,"q-banner--dense":this.dense,"q-banner--dark q-dark":this.isDark,"rounded-borders":this.rounded},attrs:Zt,on:Object.assign({},this.qListeners)},i)}}),te={role:"toolbar"},ee=t.extend({name:"QBar",mixins:[Lt,Gt],props:{dense:Boolean},computed:{classes:function(){return"q-bar--"+(!0===this.dense?"dense":"standard")+" q-bar--"+(!0===this.isDark?"dark":"light")}},render:function(t){return t("div",{staticClass:"q-bar row no-wrap items-center",class:this.classes,attrs:te,on:Object.assign({},this.qListeners)},Ot(this,"default"))}}),ie={left:"start",center:"center",right:"end",between:"between",around:"around",evenly:"evenly",stretch:"stretch"},ne=Object.keys(ie),se={props:{align:{type:String,validator:function(t){return ne.includes(t)}}},computed:{alignClass:function(){var t=void 0===this.align?!0===this.vertical?"stretch":"left":this.align;return(!0===this.vertical?"items":"justify")+"-"+ie[t]}}},oe=[!0,""],re=t.extend({name:"QBreadcrumbs",mixins:[Lt,se],props:{separator:{type:String,default:"/"},separatorColor:String,activeColor:{type:String,default:"primary"},gutter:{type:String,validator:function(t){return["none","xs","sm","md","lg","xl"].includes(t)},default:"sm"}},computed:{classes:function(){return this.alignClass+("none"===this.gutter?"":" q-gutter-"+this.gutter)},sepClass:function(){return this.separatorColor?" text-"+this.separatorColor:""},activeClass:function(){return" text-"+this.activeColor}},render:function(t){var e=this,i=Ot(this,"default");if(void 0!==i){var n=1,s=[],o=i.filter(function(t){return void 0!==t.tag&&t.tag.endsWith("-QBreadcrumbsEl")}).length,r=void 0!==this.$scopedSlots.separator?this.$scopedSlots.separator:function(){return e.separator};return i.forEach(function(i){if(void 0!==i.tag&&i.tag.endsWith("-QBreadcrumbsEl")){var a=n=0)&&e.type===(!0===i.modifiers.early?"pointerdown":"click")&&_e(e,t,i,!0===e.qKeyEvent)},keystart:ge(function(e){!0===i.enabled&&!0!==e.qSkipRipple&&!0===J(e,i.modifiers.keyCodes)&&e.type==="key"+(!0===i.modifiers.early?"down":"up")&&_e(e,t,i,!0)},300)};be(i,e),t.__qripple=i,x(i,"main",[[t,"pointerdown","start","passive"],[t,"click","start","passive"],[t,"keydown","keystart","passive"],[t,"keyup","keystart","passive"]])},update:function(t,e){var i=t.__qripple;void 0!==i&&e.oldValue!==e.value&&(i.enabled=!1!==e.value,!0===i.enabled&&Object(e.value)===e.value&&be(i,e))},unbind:function(t){void 0===t.__qripple_destroyed?ye(t):delete t.__qripple_destroyed}},we={directives:{Ripple:Se},props:{ripple:{type:[Boolean,Object],default:!0}}},Ce={none:0,xs:4,sm:8,md:16,lg:24,xl:32},xe=["button","submit","reset"],ke=/[^\s]\/[^\s]/,qe={mixins:[Lt,we,ae,se,Tt({xs:8,sm:10,md:14,lg:20,xl:24})],props:{type:{type:String,default:"button"},to:[Object,String],replace:Boolean,append:Boolean,label:[Number,String],icon:String,iconRight:String,round:Boolean,outline:Boolean,flat:Boolean,unelevated:Boolean,rounded:Boolean,push:Boolean,glossy:Boolean,size:String,fab:Boolean,fabMini:Boolean,padding:String,color:String,textColor:String,noCaps:Boolean,noWrap:Boolean,dense:Boolean,tabindex:[Number,String],align:{default:"center"},stack:Boolean,stretch:Boolean,loading:{type:Boolean,default:null},disable:Boolean},computed:{style:function(){if(!1===this.fab&&!1===this.fabMini)return this.sizeStyle},isRounded:function(){return!0===this.rounded||!0===this.fab||!0===this.fabMini},isActionable:function(){return!0!==this.disable&&!0!==this.loading},computedTabIndex:function(){return!0===this.isActionable?this.tabindex||0:-1},design:function(){return!0===this.flat?"flat":!0===this.outline?"outline":!0===this.push?"push":!0===this.unelevated?"unelevated":"standard"},attrs:function(){var t={tabindex:this.computedTabIndex};return!0===this.hasLink?Object.assign(t,this.linkProps.attrs):!0===xe.includes(this.type)&&(t.type=this.type),!0===this.hasLink||"a"===this.type?(!0===this.disable?t["aria-disabled"]="true":void 0===t.href&&(t.role="button"),!0===ke.test(this.type)&&(t.type=this.type)):!0===this.disable&&(t.disabled="",t["aria-disabled"]="true"),!0===this.loading&&void 0!==this.percentage&&(t.role="progressbar",t["aria-valuemin"]=0,t["aria-valuemax"]=100,t["aria-valuenow"]=this.percentage),t},classes:function(){var t;return void 0!==this.color?t=!0===this.flat||!0===this.outline?"text-"+(this.textColor||this.color):"bg-"+this.color+" text-"+(this.textColor||"white"):this.textColor&&(t="text-"+this.textColor),"q-btn--"+this.design+" q-btn--"+(!0===this.round?"round":"rectangle"+(!0===this.isRounded?" q-btn--rounded":""))+(void 0!==t?" "+t:"")+(!0===this.isActionable?" q-btn--actionable q-focusable q-hoverable":!0===this.disable?" disabled":"")+(!0===this.fab?" q-btn--fab":!0===this.fabMini?" q-btn--fab-mini":"")+(!0===this.noCaps?" q-btn--no-uppercase":"")+(!0===this.noWrap?"":" q-btn--wrap")+(!0===this.dense?" q-btn--dense":"")+(!0===this.stretch?" no-border-radius self-stretch":"")+(!0===this.glossy?" glossy":"")},innerClasses:function(){return this.alignClass+(!0===this.stack?" column":" row")+(!0===this.noWrap?" no-wrap text-no-wrap":"")+(!0===this.loading?" q-btn__content--hidden":"")},wrapperStyle:function(){if(void 0!==this.padding)return{padding:this.padding.split(/\s+/).map(function(t){return t in Ce?Ce[t]+"px":t}).join(" "),minWidth:"0",minHeight:"0"}}}},Te=h.passiveCapture,Me=void 0,$e=void 0,Le=void 0,Oe={role:"img","aria-hidden":"true"},Be=t.extend({name:"QBtn",mixins:[qe],props:{percentage:Number,darkPercentage:Boolean},computed:{hasLabel:function(){return void 0!==this.label&&null!==this.label&&""!==this.label},computedRipple:function(){return!1!==this.ripple&&Object.assign({},{keyCodes:!0===this.hasLink?[13,32]:[13]},!0===this.ripple?{}:this.ripple)},percentageStyle:function(){var t=Math.max(0,Math.min(100,this.percentage));if(t>0)return{transition:"transform 0.6s",transform:"translateX("+(t-100)+"%)"}},onEvents:function(){if(!0===this.loading)return{mousedown:this.__onLoadingEvt,touchstart:this.__onLoadingEvt,click:this.__onLoadingEvt,keydown:this.__onLoadingEvt,keyup:this.__onLoadingEvt};if(!0===this.isActionable){var t=Object.assign({},this.qListeners,{click:this.click,keydown:this.__onKeydown,mousedown:this.__onMousedown});return!0===this.$q.platform.has.touch&&(t.touchstart=this.__onTouchstart),t}return{click:S}},directives:function(){if(!0!==this.disable&&!1!==this.ripple)return[{name:"ripple",value:this.computedRipple,modifiers:{center:this.round}}]}},methods:{click:function(t){var e=this;if(void 0!==t){if(!0===t.defaultPrevented)return;var i=document.activeElement;if("submit"===this.type&&(!0===this.$q.platform.is.ie&&(t.clientX<0||t.clientY<0)||i!==document.body&&!1===this.$el.contains(i)&&!1===i.contains(this.$el))){this.$el.focus();var n=function(){document.removeEventListener("keydown",S,!0),document.removeEventListener("keyup",n,Te),void 0!==e.$el&&e.$el.removeEventListener("blur",n,Te)};document.addEventListener("keydown",S,!0),document.addEventListener("keyup",n,Te),this.$el.addEventListener("blur",n,Te)}if(!0===this.hasRouterLink){if(!0===t.ctrlKey||!0===t.shiftKey||!0===t.altKey||!0===t.metaKey)return;S(t)}}var s=function(){e.$router[!0===e.replace?"replace":"push"](e.linkRoute.route,void 0,p)};this.$emit("click",t,s),!0===this.hasRouterLink&&!1!==t.navigate&&s()},__onKeydown:function(t){this.$emit("keydown",t),!0===J(t,[13,32])&&($e!==this.$el&&(void 0!==$e&&this.__cleanup(),!0!==t.defaultPrevented&&(this.$el.focus(),$e=this.$el,this.$el.classList.add("q-btn--active"),document.addEventListener("keyup",this.__onPressEnd,!0),this.$el.addEventListener("blur",this.__onPressEnd,Te))),S(t))},__onTouchstart:function(t){var e=this;if(this.$emit("touchstart",t),Me!==this.$el&&(void 0!==Me&&this.__cleanup(),!0!==t.defaultPrevented)){Me=this.$el;var i=this.touchTargetEl=t.target;i.addEventListener("touchcancel",this.__onPressEnd,Te),i.addEventListener("touchend",this.__onPressEnd,Te)}this.avoidMouseRipple=!0,clearTimeout(this.mouseTimer),this.mouseTimer=setTimeout(function(){e.avoidMouseRipple=!1},200)},__onMousedown:function(t){t.qSkipRipple=!0===this.avoidMouseRipple,this.$emit("mousedown",t),Le!==this.$el&&(void 0!==Le&&this.__cleanup(),!0!==t.defaultPrevented&&(Le=this.$el,this.$el.classList.add("q-btn--active"),document.addEventListener("mouseup",this.__onPressEnd,Te)))},__onPressEnd:function(t){if(void 0===t||"blur"!==t.type||document.activeElement!==this.$el){if(void 0!==t&&"keyup"===t.type){if($e===this.$el&&!0===J(t,[13,32])){var e=new MouseEvent("click",t);e.qKeyEvent=!0,!0===t.defaultPrevented&&y(e),!0===t.cancelBubble&&b(e),this.$el.dispatchEvent(e),S(t),t.qKeyEvent=!0}this.$emit("keyup",t)}this.__cleanup()}},__cleanup:function(t){var e=this.$refs.blurTarget;if(!0===t||Me!==this.$el&&Le!==this.$el||void 0===e||e===document.activeElement||(e.setAttribute("tabindex",-1),e.focus()),Me===this.$el){var i=this.touchTargetEl;i.removeEventListener("touchcancel",this.__onPressEnd,Te),i.removeEventListener("touchend",this.__onPressEnd,Te),Me=this.touchTargetEl=void 0}Le===this.$el&&(document.removeEventListener("mouseup",this.__onPressEnd,Te),Le=void 0),$e===this.$el&&(document.removeEventListener("keyup",this.__onPressEnd,!0),void 0!==this.$el&&this.$el.removeEventListener("blur",this.__onPressEnd,Te),$e=void 0),void 0!==this.$el&&this.$el.classList.remove("q-btn--active")},__onLoadingEvt:function(t){S(t),t.qSkipRipple=!0}},beforeDestroy:function(){this.__cleanup(!0)},render:function(t){var e=[];void 0!==this.icon&&e.push(t(Ut,{attrs:Oe,props:{name:this.icon,left:!1===this.stack&&!0===this.hasLabel}})),!0===this.hasLabel&&e.push(t("span",{staticClass:"block"},[this.label])),e=Et(e,this,"default"),void 0!==this.iconRight&&!1===this.round&&e.push(t(Ut,{attrs:Oe,props:{name:this.iconRight,right:!1===this.stack&&!0===this.hasLabel}}));var i=[t("span",{staticClass:"q-focus-helper",ref:"blurTarget"})];return!0===this.loading&&void 0!==this.percentage&&i.push(t("span",{staticClass:"q-btn__progress absolute-full overflow-hidden",class:!0===this.darkPercentage?"q-btn__progress--dark":""},[t("span",{staticClass:"q-btn__progress-indicator fit block",style:this.percentageStyle})])),i.push(t("span",{staticClass:"q-btn__wrapper col row q-anchor--skip",style:this.wrapperStyle},[t("span",{staticClass:"q-btn__content text-center col items-center q-anchor--skip",class:this.innerClasses},e)])),null!==this.loading&&i.push(t("transition",{props:{name:"q-transition--fade"}},!0===this.loading?[t("span",{key:"loading",staticClass:"absolute-full flex flex-center"},void 0!==this.$scopedSlots.loading?this.$scopedSlots.loading():[t(ue)])]:void 0)),t(!0===this.hasLink||"a"===this.type?"a":"button",{staticClass:"q-btn q-btn-item non-selectable no-outline",class:this.classes,style:this.style,attrs:this.attrs,on:this.onEvents,directives:this.directives},i)}}),Ee=t.extend({name:"QBtnGroup",mixin:[Lt],props:{unelevated:Boolean,outline:Boolean,flat:Boolean,rounded:Boolean,push:Boolean,stretch:Boolean,glossy:Boolean,spread:Boolean},computed:{classes:function(){var t=this;return["unelevated","outline","flat","rounded","push","stretch","glossy"].filter(function(e){return!0===t[e]}).map(function(t){return"q-btn-group--"+t}).join(" ")}},render:function(t){return t("div",{staticClass:"q-btn-group row no-wrap "+(!0===this.spread?"q-btn-group--spread":"inline"),class:this.classes,on:Object.assign({},this.qListeners)},Ot(this,"default"))}});function ze(){if(void 0!==window.getSelection){var t=window.getSelection();void 0!==t.empty?t.empty():void 0!==t.removeAllRanges&&(t.removeAllRanges(),!0!==u.is.mobile&&t.addRange(document.createRange()))}else void 0!==document.selection&&document.selection.empty()}var Pe={props:{target:{default:!0},noParentEvent:Boolean,contextMenu:Boolean},watch:{contextMenu:function(t){void 0!==this.anchorEl&&(this.__unconfigureAnchorEl(),this.__configureAnchorEl(t))},target:function(){void 0!==this.anchorEl&&this.__unconfigureAnchorEl(),this.__pickAnchorEl()},noParentEvent:function(t){void 0!==this.anchorEl&&(!0===t?this.__unconfigureAnchorEl():this.__configureAnchorEl())}},methods:{__showCondition:function(t){return void 0!==this.anchorEl&&(void 0===t||(void 0===t.touches||t.touches.length<=1))},__contextClick:function(t){var e=this;this.hide(t),this.$nextTick(function(){e.show(t)}),y(t)},__toggleKey:function(t){!0===J(t,13)&&this.toggle(t)},__mobileCleanup:function(t){this.anchorEl.classList.remove("non-selectable"),clearTimeout(this.touchTimer),!0===this.showing&&void 0!==t&&ze()},__mobilePrevent:y,__mobileTouch:function(t){var e=this;if(this.__mobileCleanup(t),!0===this.__showCondition(t)){this.hide(t),this.anchorEl.classList.add("non-selectable");var i=t.target;x(this,"anchor",[[i,"touchmove","__mobileCleanup","passive"],[i,"touchend","__mobileCleanup","passive"],[i,"touchcancel","__mobileCleanup","passive"],[this.anchorEl,"contextmenu","__mobilePrevent","notPassive"]]),this.touchTimer=setTimeout(function(){e.show(t)},300)}},__unconfigureAnchorEl:function(){k(this,"anchor")},__configureAnchorEl:function(t){(void 0===t&&(t=this.contextMenu),!0!==this.noParentEvent&&void 0!==this.anchorEl)&&x(this,"anchor",!0===t?!0===this.$q.platform.is.mobile?[[this.anchorEl,"touchstart","__mobileTouch","passive"]]:[[this.anchorEl,"click","hide","passive"],[this.anchorEl,"contextmenu","__contextClick","notPassive"]]:[[this.anchorEl,"click","toggle","passive"],[this.anchorEl,"keyup","__toggleKey","passive"]])},__setAnchorEl:function(t){for(this.anchorEl=t;this.anchorEl.classList.contains("q-anchor--skip");)this.anchorEl=this.anchorEl.parentNode;this.__configureAnchorEl()},__pickAnchorEl:function(){!1===this.target||""===this.target||null===this.parentEl?this.anchorEl=void 0:!0===this.target?this.__setAnchorEl(this.parentEl):(this.anchorEl=fe(this.target)||void 0,void 0!==this.anchorEl?this.__configureAnchorEl():console.error('Anchor: target "'+this.target+'" not found',this))},__changeScrollEvent:function(t,e){var i=(void 0!==e?"add":"remove")+"EventListener",n=void 0!==e?e:this.__scrollFn;t!==window&&t[i]("scroll",n,h.passive),window[i]("scroll",n,h.passive),this.__scrollFn=e}},created:function(){var t=this;"function"==typeof this.__configureScrollTarget&&"function"==typeof this.__unconfigureScrollTarget&&(this.noParentEventWatcher=this.$watch("noParentEvent",function(){void 0!==t.__scrollTarget&&(t.__unconfigureScrollTarget(),t.__configureScrollTarget())}))},mounted:function(){this.parentEl=this.$el.parentNode,this.__pickAnchorEl(),!0===this.value&&void 0===this.anchorEl&&this.$emit("input",!1)},beforeDestroy:function(){clearTimeout(this.touchTimer),void 0!==this.noParentEventWatcher&&this.noParentEventWatcher(),void 0!==this.__anchorCleanup&&this.__anchorCleanup(),this.__unconfigureAnchorEl()}},Ae={methods:{__nextTick:function(t){this.__tickFn=t},__prepareTick:function(){var t=this;if(void 0!==this.__tickFn){var e=this.__tickFn;this.$nextTick(function(){t.__tickFn===e&&(t.__tickFn(),t.__tickFn=void 0)})}},__clearTick:function(){this.__tickFn=void 0},__setTimeout:function(t,e){clearTimeout(this.__timer),this.__timer=setTimeout(t,e)},__clearTimeout:function(){clearTimeout(this.__timer)}},beforeDestroy:function(){this.__tickFn=void 0,clearTimeout(this.__timer)}},Ie={mixins:[Ae,Lt],props:{value:{type:Boolean,default:void 0}},data:function(){return{showing:!1}},watch:{value:function(t){this.__processModelChange(t)},$route:function(){!0===this.hideOnRouteChange&&!0===this.showing&&this.hide()}},methods:{toggle:function(t){this[!0===this.showing?"hide":"show"](t)},show:function(t){var e=this;!0===this.disable||void 0!==this.__showCondition&&!0!==this.__showCondition(t)||(void 0!==this.qListeners.input&&!1===i&&(this.$emit("input",!0),this.payload=t,this.$nextTick(function(){e.payload===t&&(e.payload=void 0)})),void 0!==this.value&&void 0!==this.qListeners.input&&!0!==i||this.__processShow(t))},__processShow:function(t){!0!==this.showing&&(void 0!==this.__preparePortal&&this.__preparePortal(),this.showing=!0,this.$emit("before-show",t),void 0!==this.__show?(this.__clearTick(),this.__show(t),this.__prepareTick()):this.$emit("show",t))},hide:function(t){var e=this;!0!==this.disable&&(void 0!==this.qListeners.input&&!1===i&&(this.$emit("input",!1),this.payload=t,this.$nextTick(function(){e.payload===t&&(e.payload=void 0)})),void 0!==this.value&&void 0!==this.qListeners.input&&!0!==i||this.__processHide(t))},__processHide:function(t){!1!==this.showing&&(this.showing=!1,this.$emit("before-hide",t),void 0!==this.__hide?(this.__clearTick(),this.__hide(t),this.__prepareTick()):this.$emit("hide",t))},__processModelChange:function(t){!0===this.disable&&!0===t?void 0!==this.qListeners.input&&this.$emit("input",!1):!0===t!==this.showing&&this["__process"+(!0===t?"Show":"Hide")](this.payload)}}},De=[],Re=[];function Fe(t){Re=Re.filter(function(e){return e!==t})}function je(t){Fe(t),0===Re.length&&De.length>0&&(De[De.length-1](),De=[])}function Ve(t){0===Re.length?t():De.push(t)}function Ne(t,e){do{if("QMenu"===t.$options.name){if(t.hide(e),!0===t.separateClosePopup)return t.$parent}else if(void 0!==t.__renderPortal)return void 0!==t.$parent&&"QPopupProxy"===t.$parent.$options.name?(t.hide(e),t.$parent):t;t=t.$parent}while(void 0!==t&&(void 0===t.$el.contains||!0!==t.$el.contains(e.target)))}var He={inheritAttrs:!1,props:{contentClass:[Array,String,Object],contentStyle:[Array,String,Object]},methods:{__showPortal:function(t){var e,i=this;if(!0===t)return je(this.focusObj),void(this.__portalIsAccessible=!0);if(this.__portalIsAccessible=!1,!0!==this.__portalIsActive)if(this.__portalIsActive=!0,void 0===this.focusObj&&(this.focusObj={}),Fe(e=this.focusObj),Re.push(e),void 0!==this.$q.fullscreen&&!0===this.$q.fullscreen.isCapable){var n=function(){if(void 0!==i.__portal){var t=me(i.$q.fullscreen.activeEl);i.__portal.$el.parentElement!==t&&t.contains(i.$el)===(!1===i.__onGlobalDialog)&&t.appendChild(i.__portal.$el)}};this.unwatchFullscreen=this.$watch("$q.fullscreen.activeEl",T(n,50)),!1!==this.__onGlobalDialog&&!0!==this.$q.fullscreen.isActive||n()}else void 0!==this.__portal&&!1===this.__onGlobalDialog&&document.body.appendChild(this.__portal.$el)},__hidePortal:function(t){this.__portalIsAccessible=!1,!0===t&&(this.__portalIsActive=!1,je(this.focusObj),void 0!==this.__portal&&(void 0!==this.unwatchFullscreen&&(this.unwatchFullscreen(),this.unwatchFullscreen=void 0),!1===this.__onGlobalDialog&&(this.__portal.$destroy(),this.__portal.$el.remove()),this.__portal=void 0))},__preparePortal:function(){var e=this;void 0===this.__portal&&(this.__portal=!0===this.__onGlobalDialog?{$el:this.$el,$refs:this.$refs}:new t({name:"QPortal",parent:this,inheritAttrs:!1,render:function(t){return e.__renderPortal(t)},components:this.$options.components,directives:this.$options.directives}).$mount())}},render:function(t){if(!0===this.__onGlobalDialog)return this.__renderPortal(t);void 0!==this.__portal&&this.__portal.$forceUpdate()},beforeDestroy:function(){this.__hidePortal(!0)}};!1===i&&(He.created=function(){this.__onGlobalDialog=function(t){for(;void 0!==t;){if("QGlobalDialog"===t.$options.name)return!0;if("QDialog"===t.$options.name)return!1;t=t.$parent}return!1}(this.$parent)});var Qe,We={props:{transitionShow:{type:String,default:"fade"},transitionHide:{type:String,default:"fade"}},data:function(){return{transitionState:this.showing}},watch:{showing:function(t){var e=this;this.transitionShow!==this.transitionHide&&this.$nextTick(function(){e.transitionState=t})}},computed:{transition:function(){return"q-transition--"+(!0===this.transitionState?this.transitionHide:this.transitionShow)}}};var Ye=h.notPassiveCapture,Ue=h.passiveCapture,Ke={click:[],focus:[]};function Xe(t,e){for(var i=t.length-1;i>=0;i--)if(void 0===t[i](e))return}function Ge(t){clearTimeout(Qe),"focusin"===t.type&&(!0===c.is.ie&&t.target===document.body||!0===t.target.hasAttribute("tabindex"))?Qe=setTimeout(function(){Xe(Ke.focus,t)},!0===c.is.ie?500:200):Xe(Ke.click,t)}var Ze,Je={name:"click-outside",bind:function(t,e,i){var n=e.value,s=e.arg,o=i.componentInstance||i.context,r={trigger:n,toggleEl:s,handler:function(e){var i=e.target;if(!(!0===e.qClickOutside||!0!==document.body.contains(i)||8===i.nodeType||i===document.documentElement||!1!==i.classList.contains("no-pointer-events")||!0===function(t){for(;null!==(t=t.nextElementSibling);)if(t.classList.contains("q-dialog--modal"))return!0;return!1}(t)||void 0!==r.toggleEl&&!1!==r.toggleEl.contains(i)||i!==document.body&&!1!==function(t,e){if(null===t||null===e)return null;for(var i=t;void 0!==i;i=i.$parent)if(i===e)return!0;return!1}(function(t){for(var e=t;null!==e;e=e.parentNode)if(void 0!==e.__vue__)return e.__vue__}(i),o)))return e.qClickOutside=!0,r.trigger(e)}};t.__qclickoutside&&(t.__qclickoutside_old=t.__qclickoutside),t.__qclickoutside=r,0===Ke.click.length&&(document.addEventListener("mousedown",Ge,Ye),document.addEventListener("touchstart",Ge,Ye),document.addEventListener("focusin",Ge,Ue)),Ke.click.push(r.handler),r.timerFocusin=setTimeout(function(){Ke.focus.push(r.handler)},500)},update:function(t,e){var i=e.value,n=e.oldValue,s=e.arg,o=t.__qclickoutside;i!==n&&(o.trigger=i),s!==o.arg&&(o.toggleEl=s)},unbind:function(t){var e=t.__qclickoutside_old||t.__qclickoutside;if(void 0!==e){clearTimeout(e.timerFocusin);var i=Ke.click.findIndex(function(t){return t===e.handler}),n=Ke.focus.findIndex(function(t){return t===e.handler});i>-1&&Ke.click.splice(i,1),n>-1&&Ke.focus.splice(n,1),0===Ke.click.length&&(clearTimeout(Qe),document.removeEventListener("mousedown",Ge,Ye),document.removeEventListener("touchstart",Ge,Ye),document.removeEventListener("focusin",Ge,Ue)),delete t[t.__qclickoutside_old?"__qclickoutside_old":"__qclickoutside"]}}},ti=!0===i?[]:[null,document,document.body,document.scrollingElement,document.documentElement];function ei(){if(!0===i)return!1;if(void 0===Ze){var t=document.createElement("div"),e=document.createElement("div");Object.assign(t.style,{direction:"rtl",width:"1px",height:"1px",overflow:"auto"}),Object.assign(e.style,{width:"1000px",height:"1px"}),t.appendChild(e),document.body.appendChild(t),t.scrollLeft=-1e3,Ze=t.scrollLeft>=0,t.remove()}return Ze}function ii(t,e){var i=fe(e);if(null===i){if(t!==Object(t)||"function"!=typeof t.closest)return window;i=t.closest(".scroll,.scroll-y,.overflow-auto")}return ti.includes(i)?window:i}function ni(t){return(t===window?document.body:t).scrollHeight}function si(t){return t===window?window.pageYOffset||window.scrollY||document.body.scrollTop||0:t.scrollTop}var oi=si;function ri(t){return t===window?window.pageXOffset||window.scrollX||document.body.scrollLeft||0:t.scrollLeft}function ai(t,e,i){void 0===i&&(i=0);var n=void 0===arguments[3]?performance.now():arguments[3],s=si(t);i<=0?s!==e&&ci(t,e):requestAnimationFrame(function(o){var r=o-n,a=s+(e-s)/Math.max(r,i)*r;ci(t,a),a!==e&&ai(t,e,i-r,o)})}function li(t,e,i){void 0===i&&(i=0);var n=void 0===arguments[3]?performance.now():arguments[3],s=ri(t);i<=0?s!==e&&ui(t,e):requestAnimationFrame(function(o){var r=o-n,a=s+(e-s)/Math.max(r,i)*r;ui(t,a),a!==e&&li(t,e,i-r,o)})}function ci(t,e){t!==window?t.scrollTop=e:window.scrollTo(window.pageXOffset||window.scrollX||document.body.scrollLeft||0,e)}function ui(t,e){t!==window?t.scrollLeft=e:window.scrollTo(e,window.pageYOffset||window.scrollY||document.body.scrollTop||0)}function hi(t,e,i){i?ai(t,e,i):ci(t,e)}var di,pi=hi;function fi(t,e,i){i?li(t,e,i):ui(t,e)}function mi(){if(void 0!==di)return di;var t=document.createElement("p"),e=document.createElement("div");pe(t,{width:"100%",height:"200px"}),pe(e,{position:"absolute",top:"0px",left:"0px",visibility:"hidden",width:"200px",height:"150px",overflow:"hidden"}),e.appendChild(t),document.body.appendChild(e);var i=t.offsetWidth;e.style.overflow="scroll";var n=t.offsetWidth;return i===n&&(n=e.clientWidth),e.remove(),di=i-n}function vi(t,e){return void 0===e&&(e=!0),!(!t||t.nodeType!==Node.ELEMENT_NODE)&&(e?t.scrollHeight>t.clientHeight&&(t.classList.contains("scroll")||t.classList.contains("overflow-auto")||["auto","scroll"].includes(window.getComputedStyle(t)["overflow-y"])):t.scrollWidth>t.clientWidth&&(t.classList.contains("scroll")||t.classList.contains("overflow-auto")||["auto","scroll"].includes(window.getComputedStyle(t)["overflow-x"])))}var gi,_i,bi={getScrollTarget:ii,getScrollHeight:ni,getScrollWidth:function(t){return(t===window?document.body:t).scrollWidth},getScrollPosition:oi,getVerticalScrollPosition:si,getHorizontalScrollPosition:ri,rtlHasScrollBug:ei,animScrollTo:ai,animVerticalScrollTo:ai,animHorizontalScrollTo:li,setScrollPosition:pi,setVerticalScrollPosition:hi,setHorizontalScrollPosition:fi,getScrollbarWidth:mi,hasScrollbar:vi},yi=[],Si=!1,wi={__install:function(){this.__installed=!0,window.addEventListener("keydown",function(t){Si=27===t.keyCode}),window.addEventListener("blur",function(){!0===Si&&(Si=!1)}),window.addEventListener("keyup",function(t){!0===Si&&(Si=!1,0!==yi.length&&!0===J(t,27)&&yi[yi.length-1].fn(t))})},register:function(t,e){!0===t.$q.platform.is.desktop&&(!0!==this.__installed&&this.__install(),yi.push({comp:t,fn:e}))},pop:function(t){if(!0===t.$q.platform.is.desktop){var e=yi.findIndex(function(e){return e.comp===t});e>-1&&yi.splice(e,1)}}};function Ci(t){var e=t.split(" ");return 2===e.length&&(!0!==["top","center","bottom"].includes(e[0])?(console.error("Anchor/Self position must start with one of top/center/bottom"),!1):!0===["left","middle","right","start","end"].includes(e[1])||(console.error("Anchor/Self position must end with one of left/middle/right/start/end"),!1))}function xi(t){return!t||2===t.length&&("number"==typeof t[0]&&"number"==typeof t[1])}var ki={"start#ltr":"left","start#rtl":"right","end#ltr":"right","end#rtl":"left"};function qi(t,e){var i=t.split(" ");return{vertical:i[0],horizontal:ki[i[1]+"#"+(!0===e?"rtl":"ltr")]}}function Ti(t){if(!0===c.is.ios&&void 0!==window.visualViewport){var e=document.body.style,i=window.visualViewport,n=i.offsetLeft,s=i.offsetTop;n!==gi&&(e.setProperty("--q-pe-left",n+"px"),gi=n),s!==_i&&(e.setProperty("--q-pe-top",s+"px"),_i=s)}var o,r=t.el,a=r.scrollLeft,l=r.scrollTop;if(void 0===t.absoluteOffset)o=function(t,e){var i=t.getBoundingClientRect(),n=i.top,s=i.left,o=i.right,r=i.bottom,a=i.width,l=i.height;return void 0!==e&&(n-=e[1],s-=e[0],r+=e[1],o+=e[0],a+=e[0],l+=e[1]),{top:n,left:s,right:o,bottom:r,width:a,height:l,middle:s+(o-s)/2,center:n+(r-n)/2}}(t.anchorEl,!0===t.cover?[0,0]:t.offset);else{var u=t.anchorEl.getBoundingClientRect(),h=u.top,d=u.left,p=h+t.absoluteOffset.top,f=d+t.absoluteOffset.left;o={top:p,left:f,width:1,height:1,right:f+1,center:p,middle:f,bottom:p+1}}var m={maxHeight:t.maxHeight,maxWidth:t.maxWidth,visibility:"visible"};!0!==t.fit&&!0!==t.cover||(m.minWidth=o.width+"px",!0===t.cover&&(m.minHeight=o.height+"px")),Object.assign(t.el.style,m);var v=function(t){return{top:0,center:t.offsetHeight/2,bottom:t.offsetHeight,left:0,middle:t.offsetWidth/2,right:t.offsetWidth}}(t.el),g={top:o[t.anchorOrigin.vertical]-v[t.selfOrigin.vertical],left:o[t.anchorOrigin.horizontal]-v[t.selfOrigin.horizontal]};!function(t,e,i,n,s){var o=i.bottom,r=i.right,a=mi(),l=window.innerHeight-a,c=document.body.clientWidth;if(t.top<0||t.top+o>l)if("center"===s.vertical)t.top=e[n.vertical]>l/2?Math.max(0,l-o):0,t.maxHeight=Math.min(o,l);else if(e[n.vertical]>l/2){var u=Math.min(l,"center"===n.vertical?e.center:n.vertical===s.vertical?e.bottom:e.top);t.maxHeight=Math.min(o,u),t.top=Math.max(0,u-o)}else t.top=Math.max(0,"center"===n.vertical?e.center:n.vertical===s.vertical?e.top:e.bottom),t.maxHeight=Math.min(o,l-t.top);if(t.left<0||t.left+r>c)if(t.maxWidth=Math.min(r,c),"middle"===s.horizontal)t.left=e[n.horizontal]>c/2?Math.max(0,c-r):0;else if(e[n.horizontal]>c/2){var h=Math.min(c,"middle"===n.horizontal?e.middle:n.horizontal===s.horizontal?e.right:e.left);t.maxWidth=Math.min(r,h),t.left=Math.max(0,h-t.maxWidth)}else t.left=Math.max(0,"middle"===n.horizontal?e.middle:n.horizontal===s.horizontal?e.left:e.right),t.maxWidth=Math.min(r,c-t.left)}(g,o,v,t.anchorOrigin,t.selfOrigin),m={top:g.top+"px",left:g.left+"px"},void 0!==g.maxHeight&&(m.maxHeight=g.maxHeight+"px",o.height>g.maxHeight&&(m.minHeight=m.maxHeight)),void 0!==g.maxWidth&&(m.maxWidth=g.maxWidth+"px",o.width>g.maxWidth&&(m.minWidth=m.maxWidth)),Object.assign(t.el.style,m),t.el.scrollTop!==l&&(t.el.scrollTop=l),t.el.scrollLeft!==a&&(t.el.scrollLeft=a)}["left","middle","right"].forEach(function(t){ki[t+"#ltr"]=t,ki[t+"#rtl"]=t});var Mi=t.extend({name:"QMenu",mixins:[bt,Gt,Pe,Ie,He,We],directives:{ClickOutside:Je},props:{persistent:Boolean,autoClose:Boolean,separateClosePopup:Boolean,noRouteDismiss:Boolean,noRefocus:Boolean,noFocus:Boolean,fit:Boolean,cover:Boolean,square:Boolean,anchor:{type:String,validator:Ci},self:{type:String,validator:Ci},offset:{type:Array,validator:xi},scrollTarget:{default:void 0},touchPosition:Boolean,maxHeight:{type:String,default:null},maxWidth:{type:String,default:null}},computed:{anchorOrigin:function(){return qi(this.anchor||(!0===this.cover?"center middle":"bottom start"),this.$q.lang.rtl)},selfOrigin:function(){return!0===this.cover?this.anchorOrigin:qi(this.self||"top start",this.$q.lang.rtl)},menuClass:function(){return(!0===this.square?" q-menu--square":"")+(!0===this.isDark?" q-menu--dark q-dark":"")},hideOnRouteChange:function(){return!0!==this.persistent&&!0!==this.noRouteDismiss},onEvents:function(){var t=Object.assign({},this.qListeners,{input:b,"popup-show":b,"popup-hide":b});return!0===this.autoClose&&(t.click=this.__onAutoClose),t},attrs:function(){return Object.assign({},{tabindex:-1},this.qAttrs)}},methods:{focus:function(){var t=this;Ve(function(){var e=void 0!==t.__portal&&void 0!==t.__portal.$refs?t.__portal.$refs.inner:void 0;void 0!==e&&!0!==e.contains(document.activeElement)&&(e=e.querySelector("[autofocus], [data-autofocus]")||e).focus({preventScroll:!0})})},__show:function(t){var e=this;if(this.__refocusTarget=!0!==c.is.mobile&&!1===this.noRefocus&&null!==document.activeElement?document.activeElement:void 0,wi.register(this,function(){!0!==e.persistent&&(e.$emit("escape-key"),e.hide())}),this.__showPortal(),this.__configureScrollTarget(),this.absoluteOffset=void 0,void 0!==t&&(this.touchPosition||this.contextMenu)){var i=m(t);if(void 0!==i.left){var n=this.anchorEl.getBoundingClientRect(),s=n.top,o=n.left;this.absoluteOffset={left:i.left-o,top:i.top-s}}}void 0===this.unwatch&&(this.unwatch=this.$watch(function(){return e.$q.screen.width+"|"+e.$q.screen.height+"|"+e.self+"|"+e.anchor+"|"+e.$q.lang.rtl},this.updatePosition)),this.$el.dispatchEvent(C("popup-show",{bubbles:!0})),!0!==this.noFocus&&null!==document.activeElement&&document.activeElement.blur(),this.__nextTick(function(){e.updatePosition(),!0!==e.noFocus&&e.focus()}),this.__setTimeout(function(){!0===e.$q.platform.is.ios&&(e.__avoidAutoClose=e.autoClose,e.__portal.$el.click()),e.updatePosition(),e.__showPortal(!0),e.$emit("show",t)},300)},__hide:function(t){var e=this;this.__anchorCleanup(!0),this.__hidePortal(),void 0===this.__refocusTarget||null===this.__refocusTarget||void 0!==t&&!0===t.qClickOutside||(this.__refocusTarget.focus(),this.__refocusTarget=void 0),this.$el.dispatchEvent(C("popup-hide",{bubbles:!0})),this.__setTimeout(function(){e.__hidePortal(!0),e.$emit("hide",t)},300)},__anchorCleanup:function(t){this.absoluteOffset=void 0,void 0!==this.unwatch&&(this.unwatch(),this.unwatch=void 0),!0!==t&&!0!==this.showing||(wi.pop(this),this.__unconfigureScrollTarget())},__unconfigureScrollTarget:function(){void 0!==this.__scrollTarget&&(this.__changeScrollEvent(this.__scrollTarget),this.__scrollTarget=void 0)},__configureScrollTarget:function(){void 0===this.anchorEl&&void 0===this.scrollTarget||(this.__scrollTarget=ii(this.anchorEl,this.scrollTarget),this.__changeScrollEvent(this.__scrollTarget,this.updatePosition))},__onAutoClose:function(t){!0!==this.__avoidAutoClose?(Ne(this,t),void 0!==this.qListeners.click&&this.$emit("click",t)):this.__avoidAutoClose=!1},updatePosition:function(){if(void 0!==this.anchorEl&&void 0!==this.__portal){var t=this.__portal.$el;8!==t.nodeType?Ti({el:t,offset:this.offset,anchorEl:this.anchorEl,anchorOrigin:this.anchorOrigin,selfOrigin:this.selfOrigin,absoluteOffset:this.absoluteOffset,fit:this.fit,cover:this.cover,maxHeight:this.maxHeight,maxWidth:this.maxWidth}):setTimeout(this.updatePosition,25)}},__onClickOutside:function(t){if(!0!==this.persistent&&!0===this.showing){var e=t.target.classList;return Ne(this,t),("touchstart"===t.type||e.contains("q-dialog__backdrop"))&&function(t){if(S(t),"mousedown"===t.type){var e=function(i){i.target===t.target&&S(i),document.removeEventListener("click",e,h.notPassiveCapture)};document.addEventListener("click",e,h.notPassiveCapture)}}(t),!0}},__renderPortal:function(t){return t("transition",{props:{name:this.transition}},[!0===this.showing?t("div",{ref:"inner",staticClass:"q-menu q-position-engine scroll"+this.menuClass,class:this.contentClass,style:this.contentStyle,attrs:this.attrs,on:this.onEvents,directives:[{name:"click-outside",value:this.__onClickOutside,arg:this.anchorEl}]},Ot(this,"default")):null])}},mounted:function(){this.__processModelChange(this.value)},beforeDestroy:function(){this.__refocusTarget=void 0,!0===this.showing&&void 0!==this.anchorEl&&this.anchorEl.dispatchEvent(C("popup-hide",{bubbles:!0}))}}),$i=t.extend({name:"QBtnDropdown",mixins:[qe,bt],inheritAttrs:!1,props:{value:Boolean,split:Boolean,dropdownIcon:String,contentClass:[Array,String,Object],contentStyle:[Array,String,Object],cover:Boolean,persistent:Boolean,noRouteDismiss:Boolean,autoClose:Boolean,menuAnchor:{type:String,default:"bottom end"},menuSelf:{type:String,default:"top end"},menuOffset:Array,disableMainBtn:Boolean,disableDropdown:Boolean,noIconAnimation:Boolean},data:function(){return{showing:this.value}},watch:{value:function(t){void 0!==this.$refs.menu&&this.$refs.menu[t?"show":"hide"]()},split:function(){this.hide()}},render:function(t){var e=this,i=Ot(this,"label",[]),n={"aria-expanded":!0===this.showing?"true":"false","aria-haspopup":"true"};(!0===this.disable||!1===this.split&&!0===this.disableMainBtn||!0===this.disableDropdown)&&(n["aria-disabled"]="true");var s=[t(Ut,{props:{name:this.dropdownIcon||this.$q.iconSet.arrow.dropdown},class:"q-btn-dropdown__arrow"+(!0===this.showing&&!1===this.noIconAnimation?" rotate-180":"")+(!1===this.split?" q-btn-dropdown__arrow-container":"")})];if(!0!==this.disableDropdown&&s.push(t(Mi,{ref:"menu",props:{cover:this.cover,fit:!0,persistent:this.persistent,noRouteDismiss:this.noRouteDismiss,autoClose:this.autoClose,anchor:this.menuAnchor,self:this.menuSelf,offset:this.menuOffset,contentClass:this.contentClass,contentStyle:this.contentStyle,separateClosePopup:!0},on:ft(this,"menu",{"before-show":function(t){e.showing=!0,e.$emit("before-show",t)},show:function(t){e.$emit("show",t),e.$emit("input",!0)},"before-hide":function(t){e.showing=!1,e.$emit("before-hide",t)},hide:function(t){e.$emit("hide",t),e.$emit("input",!1)}})},Ot(this,"default"))),!1===this.split)return t(Be,{class:"q-btn-dropdown q-btn-dropdown--simple",props:Object.assign({},this.$props,{disable:!0===this.disable||!0===this.disableMainBtn,noWrap:!0,round:!1}),attrs:Object.assign({},this.qAttrs,n),on:ft(this,"nonSpl",{click:function(t){e.$emit("click",t)}})},i.concat(s));var o=t(Be,{class:"q-btn-dropdown--current",props:Object.assign({},this.$props,{disable:!0===this.disable||!0===this.disableMainBtn,noWrap:!0,iconRight:this.iconRight,round:!1}),attrs:this.qAttrs,on:ft(this,"spl",{click:function(t){b(t),e.hide(),e.$emit("click",t)}})},i);return t(Ee,{props:{outline:this.outline,flat:this.flat,rounded:this.rounded,push:this.push,unelevated:this.unelevated,glossy:this.glossy,stretch:this.stretch},staticClass:"q-btn-dropdown q-btn-dropdown--split no-wrap q-btn-item"},[o,t(Be,{staticClass:"q-btn-dropdown__arrow-container q-anchor--skip",attrs:n,props:{disable:!0===this.disable||!0===this.disableDropdown,outline:this.outline,flat:this.flat,rounded:this.rounded,push:this.push,size:this.size,color:this.color,textColor:this.textColor,dense:this.dense,ripple:this.ripple}},s)])},methods:{toggle:function(t){this.$refs.menu&&this.$refs.menu.toggle(t)},show:function(t){this.$refs.menu&&this.$refs.menu.show(t)},hide:function(t){this.$refs.menu&&this.$refs.menu.hide(t)}},mounted:function(){!0===this.value&&this.show()}}),Li={props:{name:String},computed:{formAttrs:function(){return{type:"hidden",name:this.name,value:this.value}}},methods:{__injectFormInput:function(t,e,i){t[e](this.$createElement("input",{staticClass:"hidden",class:i,attrs:this.formAttrs,domProps:this.formDomProps}))}}},Oi={props:{name:String},computed:{nameProp:function(){return this.name||this.for}}},Bi=t.extend({name:"QBtnToggle",mixins:[Lt,we,Li],props:{value:{required:!0},options:{type:Array,required:!0,validator:function(t){return t.every(function(t){return("label"in t||"icon"in t||"slot"in t)&&"value"in t})}},color:String,textColor:String,toggleColor:{type:String,default:"primary"},toggleTextColor:String,outline:Boolean,flat:Boolean,unelevated:Boolean,rounded:Boolean,push:Boolean,glossy:Boolean,size:String,padding:String,noCaps:Boolean,noWrap:Boolean,dense:Boolean,readonly:Boolean,disable:Boolean,stack:Boolean,stretch:Boolean,spread:Boolean,clearable:Boolean},computed:{hasActiveValue:function(){var t=this;return void 0!==this.options.find(function(e){return e.value===t.value})},formAttrs:function(){return{type:"hidden",name:this.name,value:this.value}},btnOptions:function(){var t=this,e=function(e,i){return void 0===e[i]?t[i]:e[i]};return this.options.map(function(i,n){return{slot:i.slot,options:{key:n,class:i.class,style:i.style,on:Object.assign({},t.qListeners,{click:function(e){return t.__set(i.value,i,e)}}),attrs:Object.assign({},{"aria-pressed":i.value===t.value?"true":"false"},i.attrs),props:Object.assign({},i,{slot:void 0,class:void 0,style:void 0,value:void 0,attrs:void 0,outline:t.outline,flat:t.flat,rounded:t.rounded,push:t.push,unelevated:t.unelevated,dense:t.dense,disable:!0===t.disable||!0===i.disable,color:i.value===t.value?e(i,"toggleColor"):e(i,"color"),textColor:i.value===t.value?e(i,"toggleTextColor"):e(i,"textColor"),noCaps:!0===e(i,"noCaps"),noWrap:!0===e(i,"noWrap"),size:e(i,"size"),padding:e(i,"padding"),ripple:e(i,"ripple"),stack:!0===e(i,"stack"),stretch:!0===e(i,"stretch")})}}})}},methods:{__set:function(t,e,i){!0!==this.readonly&&(this.value===t?!0===this.clearable&&(this.$emit("input",null,null),this.$emit("clear")):this.$emit("input",t,e),this.$emit("click",i))}},render:function(t){var e=this,i=this.btnOptions.map(function(i){return t(Be,Object.assign({},i.options),void 0!==i.slot?Ot(e,i.slot):void 0)});return void 0!==this.name&&!0!==this.disable&&!0===this.hasActiveValue&&this.__injectFormInput(i,"push"),t(Ee,{staticClass:"q-btn-toggle",props:{outline:this.outline,flat:this.flat,rounded:this.rounded,push:this.push,stretch:this.stretch,unelevated:this.unelevated,glossy:this.glossy,spread:this.spread}},Et(i,this,"default"))}}),Ei=t.extend({name:"QCard",mixins:[Lt,Gt,$t],props:{square:Boolean,flat:Boolean,bordered:Boolean},computed:{classes:function(){return"q-card"+(!0===this.isDark?" q-card--dark q-dark":"")+(!0===this.bordered?" q-card--bordered":"")+(!0===this.square?" q-card--square no-border-radius":"")+(!0===this.flat?" q-card--flat no-shadow":"")}},render:function(t){return t(this.tag,{class:this.classes,on:Object.assign({},this.qListeners)},Ot(this,"default"))}}),zi=t.extend({name:"QCardSection",mixins:[Lt,$t],props:{horizontal:Boolean},computed:{classes:function(){return"q-card__section q-card__section--"+(!0===this.horizontal?"horiz row no-wrap":"vert")}},render:function(t){return t(this.tag,{class:this.classes,on:Object.assign({},this.qListeners)},Ot(this,"default"))}}),Pi=t.extend({name:"QCardActions",mixins:[Lt,se],props:{vertical:Boolean},computed:{classes:function(){return"q-card__actions--"+(!0===this.vertical?"vert column":"horiz row")+" "+this.alignClass}},render:function(t){return t("div",{staticClass:"q-card__actions",class:this.classes,on:Object.assign({},this.qListeners)},Ot(this,"default"))}}),Ai=["left","right","up","down","horizontal","vertical"],Ii={left:!0,right:!0,up:!0,down:!0,horizontal:!0,vertical:!0,all:!0};function Di(t){var e={};return Ai.forEach(function(i){t[i]&&(e[i]=!0)}),0===Object.keys(e).length?Ii:(!0===e.horizontal&&(e.left=e.right=!0),!0===e.vertical&&(e.up=e.down=!0),!0===e.left&&!0===e.right&&(e.horizontal=!0),!0===e.up&&!0===e.down&&(e.vertical=!0),!0===e.horizontal&&!0===e.vertical&&(e.all=!0),e)}function Ri(t,e){return void 0===e.event&&void 0!==t.target&&!0!==t.target.draggable&&"function"==typeof e.handler&&"INPUT"!==t.target.nodeName.toUpperCase()&&(void 0===t.qClonedBy||-1===t.qClonedBy.indexOf(e.uid))}function Fi(t){var e=t.__qtouchswipe;void 0!==e&&(k(e,"main"),k(e,"temp"),!0===c.is.firefox&&w(t,!1),void 0!==e.styleCleanup&&e.styleCleanup(),delete t.__qtouchswipe)}var ji={name:"touch-swipe",bind:function(t,e){var i=e.value,n=e.arg,s=e.modifiers;if(void 0!==t.__qtouchswipe&&(Fi(t),t.__qtouchswipe_destroyed=!0),!0===s.mouse||!0===c.has.touch){var o=!0===s.mouseCapture?"Capture":"",r={handler:i,sensitivity:function(t){var e=[.06,6,50];return"string"==typeof t&&t.length&&t.split(":").forEach(function(t,i){var n=parseFloat(t);n&&(e[i]=n)}),e}(n),modifiers:s,direction:Di(s),noop:p,mouseStart:function(t){Ri(t,r)&&f(t)&&(x(r,"temp",[[document,"mousemove","move","notPassive"+o],[document,"mouseup","end","notPassiveCapture"]]),r.start(t,!0))},touchStart:function(t){if(Ri(t,r)){var e=t.target;x(r,"temp",[[e,"touchmove","move","notPassiveCapture"],[e,"touchcancel","end","notPassiveCapture"],[e,"touchend","end","notPassiveCapture"]]),r.start(t)}},start:function(e,i){!0===c.is.firefox&&w(t,!0);var n=m(e);r.event={x:n.left,y:n.top,time:Date.now(),mouse:!0===i,dir:!1}},move:function(t){if(void 0!==r.event)if(!1===r.event.dir){var e=Date.now()-r.event.time;if(0!==e){var i=m(t),n=i.left-r.event.x,s=Math.abs(n),o=i.top-r.event.y,a=Math.abs(o);if(!0!==r.event.mouse){if(sr.sensitivity[0]&&(r.event.dir=o<0?"up":"down"),!0===r.direction.horizontal&&s>a&&a<100&&l>r.sensitivity[0]&&(r.event.dir=n<0?"left":"right"),!0===r.direction.up&&sr.sensitivity[0]&&(r.event.dir="up"),!0===r.direction.down&&s0&&s<100&&c>r.sensitivity[0]&&(r.event.dir="down"),!0===r.direction.left&&s>a&&n<0&&a<100&&l>r.sensitivity[0]&&(r.event.dir="left"),!0===r.direction.right&&s>a&&n>0&&a<100&&l>r.sensitivity[0]&&(r.event.dir="right"),!1!==r.event.dir?(S(t),!0===r.event.mouse&&(document.body.classList.add("no-pointer-events--children"),document.body.classList.add("non-selectable"),ze(),r.styleCleanup=function(t){r.styleCleanup=void 0,document.body.classList.remove("non-selectable");var e=function(){document.body.classList.remove("no-pointer-events--children")};!0===t?setTimeout(e,50):e()}),r.handler({evt:t,touch:!0!==r.event.mouse,mouse:r.event.mouse,direction:r.event.dir,duration:e,distance:{x:s,y:a}})):r.end(t)}}else S(t)},end:function(e){void 0!==r.event&&(k(r,"temp"),!0===c.is.firefox&&w(t,!1),void 0!==r.styleCleanup&&r.styleCleanup(!0),void 0!==e&&!1!==r.event.dir&&S(e),r.event=void 0)}};t.__qtouchswipe=r,!0===s.mouse&&x(r,"main",[[t,"mousedown","mouseStart","passive"+o]]),!0===c.has.touch&&x(r,"main",[[t,"touchstart","touchStart","passive"+(!0===s.capture?"Capture":"")],[t,"touchmove","noop","notPassiveCapture"]])}},update:function(t,e){var i=e.oldValue,n=e.value,s=t.__qtouchswipe;void 0!==s&&i!==n&&("function"!=typeof n&&s.end(),s.handler=n)},unbind:function(t){void 0===t.__qtouchswipe_destroyed?Fi(t):delete t.__qtouchswipe_destroyed}};function Vi(t){return t("div",{staticClass:"q-panel scroll",attrs:{role:"tabpanel"},on:ft(this,"stop",{input:b})},Ot(this,"default"))}var Ni=t.extend({render:Vi}),Hi={mixins:[Lt],directives:{TouchSwipe:ji},props:{value:{required:!0},animated:Boolean,infinite:Boolean,swipeable:Boolean,vertical:Boolean,transitionPrev:String,transitionNext:String,keepAlive:Boolean,keepAliveInclude:[String,Array,RegExp],keepAliveExclude:[String,Array,RegExp],keepAliveMax:Number},data:function(){return{panelIndex:null,panelTransition:null}},computed:{panelDirectives:function(){if(!0===this.swipeable)return[{name:"touch-swipe",value:this.__swipe,modifiers:{horizontal:!0!==this.vertical,vertical:this.vertical,mouse:!0}}]},contentKey:function(){return"string"==typeof this.value||"number"==typeof this.value?this.value:String(this.value)},transitionPrevComputed:function(){return this.transitionPrev||"slide-"+(!0===this.vertical?"down":"right")},transitionNextComputed:function(){return this.transitionNext||"slide-"+(!0===this.vertical?"up":"left")},keepAliveProps:function(){return{include:this.keepAliveInclude,exclude:this.keepAliveExclude,max:this.keepAliveMax}},needsUniqueWrapper:function(){return void 0!==this.keepAliveInclude||void 0!==this.keepAliveExclude}},watch:{value:function(t,e){var i=this,n=!0===this.__isValidPanelName(t)?this.__getPanelIndex(t):-1;!0!==this.__forcedPanelTransition&&this.__updatePanelTransition(-1===n?0:n-1&&n0&&-1!==e&&e!==s.length&&this.__go(t,-1===t?s.length:-1)},__swipe:function(t){var e=!0===this.vertical?"up":"left";this.__go((!0===this.$q.lang.rtl?-1:1)*(t.direction===e?1:-1))},__updatePanelIndex:function(){var t=this.__getPanelIndex(this.value);return this.panelIndex!==t&&(this.panelIndex=t),!0},__getPanelContent:function(e){var i=this;if(0!==this.panels.length){var n=this.__isValidPanelName(this.value)&&this.__updatePanelIndex()&&this.panels[this.panelIndex],s=!0===this.keepAlive?[e("keep-alive",{props:this.keepAliveProps},[e(!0===this.needsUniqueWrapper?mt(this,this.contentKey,function(){return t.extend({name:i.contentKey,render:Vi})}):Ni,{key:this.contentKey},[n])])]:[e("div",{staticClass:"q-panel scroll",key:this.contentKey,attrs:{role:"tabpanel"},on:ft(this,"stop",{input:b})},[n])];return!0===this.animated?[e("transition",{props:{name:this.panelTransition}},s)]:s}}},render:function(t){var e=this;return this.panels=Ot(this,"default",[]).filter(function(t){return void 0!==t&&void 0!==t.componentOptions&&void 0!==t.componentOptions.propsData&&e.__isValidPanelName(t.componentOptions.propsData.name)}),this.__renderPanels(t)}},Qi={mixins:[Lt],props:{name:{required:!0},disable:Boolean}},Wi=0,Yi={props:{fullscreen:Boolean,noRouteFullscreenExit:Boolean},data:function(){return{inFullscreen:!1}},watch:{$route:function(){!0!==this.noRouteFullscreenExit&&this.exitFullscreen()},fullscreen:function(t){this.inFullscreen!==t&&this.toggleFullscreen()},inFullscreen:function(t){this.$emit("update:fullscreen",t),this.$emit("fullscreen",t)}},methods:{toggleFullscreen:function(){!0===this.inFullscreen?this.exitFullscreen():this.setFullscreen()},setFullscreen:function(){!0!==this.inFullscreen&&(this.inFullscreen=!0,this.container=this.$el.parentNode,this.container.replaceChild(this.fullscreenFillerNode,this.$el),document.body.appendChild(this.$el),1===++Wi&&document.body.classList.add("q-body--fullscreen-mixin"),this.__historyFullscreen={handler:this.exitFullscreen},P.add(this.__historyFullscreen))},exitFullscreen:function(){var t=this;!0===this.inFullscreen&&(void 0!==this.__historyFullscreen&&(P.remove(this.__historyFullscreen),this.__historyFullscreen=void 0),this.container.replaceChild(this.$el,this.fullscreenFillerNode),this.inFullscreen=!1,0===(Wi=Math.max(0,Wi-1))&&(document.body.classList.remove("q-body--fullscreen-mixin"),void 0!==this.$el.scrollIntoView&&setTimeout(function(){t.$el.scrollIntoView()})))}},beforeMount:function(){this.fullscreenFillerNode=document.createElement("span")},mounted:function(){!0===this.fullscreen&&this.setFullscreen()},beforeDestroy:function(){this.exitFullscreen()}},Ui="function"==typeof Map,Ki="function"==typeof Set,Xi="function"==typeof ArrayBuffer;function Gi(t,e){if(t===e)return!0;if(null!==t&&null!==e&&"object"==typeof t&&"object"==typeof e){if(t.constructor!==e.constructor)return!1;var i,n;if(t.constructor===Array){if((i=t.length)!==e.length)return!1;for(n=i;0!=n--;)if(!0!==Gi(t[n],e[n]))return!1;return!0}if(!0===Ui&&t.constructor===Map){if(t.size!==e.size)return!1;for(n=t.entries().next();!0!==n.done;){if(!0!==e.has(n.value[0]))return!1;n=n.next()}for(n=t.entries().next();!0!==n.done;){if(!0!==Gi(n.value[1],e.get(n.value[0])))return!1;n=n.next()}return!0}if(!0===Ki&&t.constructor===Set){if(t.size!==e.size)return!1;for(n=t.entries().next();!0!==n.done;){if(!0!==e.has(n.value[0]))return!1;n=n.next()}return!0}if(!0===Xi&&null!=t.buffer&&t.buffer.constructor===ArrayBuffer){if((i=t.length)!==e.length)return!1;for(n=i;0!=n--;)if(t[n]!==e[n])return!1;return!0}if(t.constructor===RegExp)return t.source===e.source&&t.flags===e.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===e.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===e.toString();var s=Object.keys(t).filter(function(e){return void 0!==t[e]});if((i=s.length)!==Object.keys(e).filter(function(t){return void 0!==e[t]}).length)return!1;for(n=i;0!=n--;){var o=s[n];if(!0!==Gi(t[o],e[o]))return!1}return!0}return t!=t&&e!=e}function Zi(t){return null!==t&&"object"==typeof t&&!0!==Array.isArray(t)}function Ji(t){return"[object Date]"===Object.prototype.toString.call(t)}function tn(t){return"number"==typeof t&&isFinite(t)}var en=t.extend({name:"QCarousel",mixins:[Gt,Hi,Yi],props:{height:String,padding:Boolean,controlType:{type:String,validator:function(t){return["regular","flat","outline","push","unelevated"].includes(t)},default:"flat"},controlColor:String,controlTextColor:String,autoplay:[Number,Boolean],arrows:Boolean,prevIcon:String,nextIcon:String,navigation:Boolean,navigationPosition:{type:String,validator:function(t){return["top","right","bottom","left"].includes(t)}},navigationIcon:String,navigationActiveIcon:String,thumbnails:Boolean},computed:{style:function(){if(!0!==this.inFullscreen&&void 0!==this.height)return{height:this.height}},direction:function(){return!0===this.vertical?"vertical":"horizontal"},classes:function(){return"q-carousel q-panel-parent q-carousel--with"+(!0===this.padding?"":"out")+"-padding"+(!0===this.inFullscreen?" fullscreen":"")+(!0===this.isDark?" q-carousel--dark q-dark":"")+(!0===this.arrows?" q-carousel--arrows-"+this.direction:"")+(!0===this.navigation?" q-carousel--navigation-"+this.navigationPositionComputed:"")},arrowIcons:function(){var t=[this.prevIcon||this.$q.iconSet.carousel[!0===this.vertical?"up":"left"],this.nextIcon||this.$q.iconSet.carousel[!0===this.vertical?"down":"right"]];return!1===this.vertical&&!0===this.$q.lang.rtl?t.reverse():t},navIcon:function(){return this.navigationIcon||this.$q.iconSet.carousel.navigationIcon},navActiveIcon:function(){return this.navigationActiveIcon||this.navIcon},navigationPositionComputed:function(){return this.navigationPosition||(!0===this.vertical?"right":"bottom")},controlProps:function(){var t;return(t={color:this.controlColor,textColor:this.controlTextColor,round:!0})[this.controlType]=!0,t.dense=!0,t},transitionPrevComputed:function(){return this.transitionPrev||"fade"},transitionNextComputed:function(){return this.transitionNext||"fade"}},watch:{value:function(){this.autoplay&&(clearInterval(this.timer),this.__startTimer())},autoplay:function(t){t?this.__startTimer():clearInterval(this.timer)}},methods:{__startTimer:function(){var t=!0===tn(this.autoplay)?this.autoplay:5e3;this.timer=setTimeout(t>=0?this.next:this.previous,Math.abs(t))},__getNavigationContainer:function(t,e,i){return t("div",{class:"q-carousel__control q-carousel__navigation no-wrap absolute flex q-carousel__navigation--"+e+" q-carousel__navigation--"+this.navigationPositionComputed+(void 0!==this.controlColor?" text-"+this.controlColor:"")},[t("div",{staticClass:"q-carousel__navigation-inner flex flex-center no-wrap"},this.__getEnabledPanels().map(i))])},__getContent:function(t){var e=this,i=[];if(!0===this.navigation){var n=void 0!==this.$scopedSlots["navigation-icon"]?this.$scopedSlots["navigation-icon"]:function(i){return t(Be,{key:"nav"+i.name,class:"q-carousel__navigation-icon q-carousel__navigation-icon--"+(!0===i.active?"":"in")+"active",props:i.btnProps,on:ft(e,"nav#"+i.name,{click:i.onClick})})},s=this.panels.length-1;i.push(this.__getNavigationContainer(t,"buttons",function(t,i){var o=t.componentOptions.propsData.name,r=e.panelIndex===i;return n({index:i,maxIndex:s,name:o,active:r,btnProps:Object.assign({},{icon:!0===r?e.navActiveIcon:e.navIcon,size:"sm"},e.controlProps),onClick:function(){e.goTo(o)}})}))}else if(!0===this.thumbnails){var o=void 0!==this.controlColor?" text-"+this.controlColor:"";i.push(this.__getNavigationContainer(t,"thumbnails",function(i){var n=i.componentOptions.propsData;return t("img",{class:"q-carousel__thumbnail q-carousel__thumbnail--"+(n.name===e.value?"":"in")+"active"+o,attrs:{src:n.imgSrc},key:"tmb#"+n.name,on:ft(e,"tmb#"+n.name,{click:function(){e.goTo(n.name)}})})}))}return!0===this.arrows&&this.panelIndex>=0&&((!0===this.infinite||this.panelIndex>0)&&i.push(t("div",{key:"prev",staticClass:"q-carousel__control q-carousel__arrow q-carousel__prev-arrow q-carousel__prev-arrow--"+this.direction+" absolute flex flex-center"},[t(Be,{props:Object.assign({},{icon:this.arrowIcons[0]},this.controlProps),on:ft(this,"prev",{click:this.previous})})])),(!0===this.infinite||this.panelIndex1?function(t){return t}:function(e){return t("div",[e])};return e.map(function(e,i){return t("div",{key:i,class:n.messageClass},[t("div",{class:n.textClass},n.__wrapStamp(t,o(e)))])})}},render:function(t){var e,i,n=[];void 0!==this.$scopedSlots.avatar?n.push(this.$scopedSlots.avatar()):void 0!==this.avatar&&n.push(t("img",{class:"q-message-avatar q-message-avatar--"+this.op,attrs:{src:this.avatar,"aria-hidden":"true"}}));var s=[];void 0!==this.$scopedSlots.name?s.push(t("div",{class:"q-message-name q-message-name--"+this.op},this.$scopedSlots.name())):void 0!==this.name&&s.push(t("div",{class:"q-message-name q-message-name--"+this.op,domProps:(e={},e[!0===this.nameSanitize?"textContent":"innerHTML"]=this.name,e)})),void 0!==this.text&&s.push(this.__getText(t,this.text)),void 0!==this.$scopedSlots.default&&s.push(this.__getText(t,this.$scopedSlots.default(),!0)),n.push(t("div",{class:this.sizeClass},s));var o=[];return void 0!==this.$scopedSlots.label?o.push(t("div",{staticClass:"q-message-label"},this.$scopedSlots.label())):void 0!==this.label&&o.push(t("div",{staticClass:"q-message-label",domProps:(i={},i[!0===this.labelSanitize?"textContent":"innerHTML"]=this.label,i)})),o.push(t("div",{class:this.containerClass},n)),t("div",{class:"q-message q-message-"+this.op,on:Object.assign({},this.qListeners)},o)}}),rn=Tt({xs:30,sm:35,md:40,lg:50,xl:60}),an={computed:{__refocusTargetEl:function(){if(!0!==this.disable)return this.$createElement("span",{ref:"refocusTarget",staticClass:"no-outline",attrs:{tabindex:-1}})}},methods:{__refocusTarget:function(t){void 0!==t&&0===t.type.indexOf("key")?document.activeElement!==this.$el&&!0===this.$el.contains(document.activeElement)&&this.$el.focus():void 0!==t&&!0!==this.$el.contains(t.target)||void 0===this.$refs.refocusTarget||this.$refs.refocusTarget.focus()}}},ln={mixins:[Gt,rn,Li,an],props:{value:{required:!0,default:null},val:{},trueValue:{default:!0},falseValue:{default:!1},indeterminateValue:{default:null},checkedIcon:String,uncheckedIcon:String,indeterminateIcon:String,toggleOrder:{type:String,validator:function(t){return"tf"===t||"ft"===t}},toggleIndeterminate:Boolean,label:String,leftLabel:Boolean,color:String,keepColor:Boolean,dense:Boolean,disable:Boolean,tabindex:[String,Number]},computed:{isTrue:function(){return!0===this.modelIsArray?this.index>-1:this.value===this.trueValue},isFalse:function(){return!0===this.modelIsArray?-1===this.index:this.value===this.falseValue},isIndeterminate:function(){return!1===this.isTrue&&!1===this.isFalse},index:function(){if(!0===this.modelIsArray)return this.value.indexOf(this.val)},modelIsArray:function(){return void 0!==this.val&&Array.isArray(this.value)},computedTabindex:function(){return!0===this.disable?-1:this.tabindex||0},classes:function(){return"q-"+this.type+" cursor-pointer no-outline row inline no-wrap items-center"+(!0===this.disable?" disabled":"")+(!0===this.isDark?" q-"+this.type+"--dark":"")+(!0===this.dense?" q-"+this.type+"--dense":"")+(!0===this.leftLabel?" reverse":"")},innerClass:function(){var t=!0===this.isTrue?"truthy":!0===this.isFalse?"falsy":"indet",e=void 0===this.color||!0!==this.keepColor&&("toggle"===this.type?!0!==this.isTrue:!0===this.isFalse)?"":" text-"+this.color;return"q-"+this.type+"__inner--"+t+e},formAttrs:function(){var t={type:"checkbox"};return void 0!==this.name&&Object.assign(t,{checked:this.isTrue,name:this.name,value:!0===this.modelIsArray?this.val:this.trueValue}),t},attrs:function(){var t={tabindex:this.computedTabindex,role:"checkbox","aria-label":this.label,"aria-checked":!0===this.isIndeterminate?"mixed":!0===this.isTrue?"true":"false"};return!0===this.disable&&(t["aria-disabled"]="true"),t}},methods:{toggle:function(t){void 0!==t&&(S(t),this.__refocusTarget(t)),!0!==this.disable&&this.$emit("input",this.__getNextValue(),t)},__getNextValue:function(){if(!0===this.modelIsArray){if(!0===this.isTrue){var t=this.value.slice();return t.splice(this.index,1),t}return this.value.concat([this.val])}if(!0===this.isTrue){if("ft"!==this.toggleOrder||!1===this.toggleIndeterminate)return this.falseValue}else{if(!0!==this.isFalse)return"ft"!==this.toggleOrder?this.trueValue:this.falseValue;if("ft"===this.toggleOrder||!1===this.toggleIndeterminate)return this.trueValue}return this.indeterminateValue},__onKeydown:function(t){13!==t.keyCode&&32!==t.keyCode||S(t)},__onKeyup:function(t){13!==t.keyCode&&32!==t.keyCode||this.toggle(t)}},render:function(t){var e=this.__getInner(t);!0!==this.disable&&this.__injectFormInput(e,"unshift","q-"+this.type+"__native absolute q-ma-none q-pa-none");var i=[t("div",{staticClass:"q-"+this.type+"__inner relative-position non-selectable",class:this.innerClass,style:this.sizeStyle},e)];void 0!==this.__refocusTargetEl&&i.push(this.__refocusTargetEl);var n=void 0!==this.label?Et([this.label],this,"default"):Ot(this,"default");return void 0!==n&&i.push(t("div",{staticClass:"q-"+this.type+"__label q-anchor--skip"},n)),t("div",{class:this.classes,attrs:this.attrs,on:ft(this,"inpExt",{click:this.toggle,keydown:this.__onKeydown,keyup:this.__onKeyup})},i)}},cn=t.extend({name:"QCheckbox",mixins:[ln],computed:{computedIcon:function(){return!0===this.isTrue?this.checkedIcon:!0===this.isIndeterminate?this.indeterminateIcon:this.uncheckedIcon}},methods:{__getInner:function(t){return void 0!==this.computedIcon?[t("div",{key:"icon",staticClass:"q-checkbox__icon-container absolute-full flex flex-center no-wrap"},[t(Ut,{staticClass:"q-checkbox__icon",props:{name:this.computedIcon}})])]:[t("div",{key:"svg",staticClass:"q-checkbox__bg absolute"},[t("svg",{staticClass:"q-checkbox__svg fit absolute-full",attrs:{focusable:"false",viewBox:"0 0 24 24","aria-hidden":"true"}},[t("path",{staticClass:"q-checkbox__truthy",attrs:{fill:"none",d:"M1.73,12.91 8.1,19.28 22.79,4.59"}}),t("path",{staticClass:"q-checkbox__indet",attrs:{d:"M4,14H20V10H4"}})])])]}},created:function(){this.type="checkbox"}}),un=t.extend({name:"QChip",mixins:[we,Gt,Tt({xs:8,sm:10,md:14,lg:20,xl:24})],model:{event:"remove"},props:{dense:Boolean,icon:String,iconRight:String,iconRemove:String,iconSelected:String,label:[String,Number],color:String,textColor:String,value:{type:Boolean,default:!0},selected:{type:Boolean,default:null},square:Boolean,outline:Boolean,clickable:Boolean,removable:Boolean,tabindex:[String,Number],disable:Boolean},computed:{classes:function(){var t,e=!0===this.outline&&this.color||this.textColor;return(t={})["bg-"+this.color]=!1===this.outline&&void 0!==this.color,t["text-"+e+" q-chip--colored"]=e,t.disabled=this.disable,t["q-chip--dense"]=this.dense,t["q-chip--outline"]=this.outline,t["q-chip--selected"]=this.selected,t["q-chip--clickable cursor-pointer non-selectable q-hoverable"]=this.isClickable,t["q-chip--square"]=this.square,t["q-chip--dark q-dark"]=this.isDark,t},hasLeftIcon:function(){return!0===this.selected||void 0!==this.icon},leftIcon:function(){return!0===this.selected?this.iconSelected||this.$q.iconSet.chip.selected:this.icon},removeIcon:function(){return this.iconRemove||this.$q.iconSet.chip.remove},isClickable:function(){return!1===this.disable&&(!0===this.clickable||null!==this.selected)},attrs:function(){return!0===this.disable?{tabindex:-1,"aria-disabled":"true"}:{tabindex:this.tabindex||0}}},methods:{__onKeyup:function(t){13===t.keyCode&&this.__onClick(t)},__onClick:function(t){this.disable||(this.$emit("update:selected",!this.selected),this.$emit("click",t))},__onRemove:function(t){void 0!==t.keyCode&&13!==t.keyCode||(S(t),!this.disable&&this.$emit("remove",!1))},__getContent:function(t){var e=[];!0===this.isClickable&&e.push(t("div",{staticClass:"q-focus-helper"})),!0===this.hasLeftIcon&&e.push(t(Ut,{staticClass:"q-chip__icon q-chip__icon--left",props:{name:this.leftIcon}}));var i=void 0!==this.label?[t("div",{staticClass:"ellipsis"},[this.label])]:void 0;return e.push(t("div",{staticClass:"q-chip__content col row no-wrap items-center q-anchor--skip"},zt(i,this,"default"))),this.iconRight&&e.push(t(Ut,{staticClass:"q-chip__icon q-chip__icon--right",props:{name:this.iconRight}})),!0===this.removable&&e.push(t(Ut,{staticClass:"q-chip__icon q-chip__icon--remove cursor-pointer",props:{name:this.removeIcon},attrs:this.attrs,on:ft(this,"non",{click:this.__onRemove,keyup:this.__onRemove})})),e}},render:function(t){if(!1!==this.value){var e={staticClass:"q-chip row inline no-wrap items-center",class:this.classes,style:this.sizeStyle};return!0===this.isClickable&&Object.assign(e,{attrs:this.attrs,on:ft(this,"click",{click:this.__onClick,keyup:this.__onKeyup}),directives:ft(this,"dir#"+this.ripple,[{name:"ripple",value:this.ripple}])}),t("div",e,this.__getContent(t))}}}),hn=100*Math.PI,dn=Math.round(1e3*hn)/1e3,pn=t.extend({name:"QCircularProgress",mixins:[Lt,Mt],props:{value:{type:Number,default:0},min:{type:Number,default:0},max:{type:Number,default:100},color:String,centerColor:String,trackColor:String,fontSize:String,thickness:{type:Number,default:.2,validator:function(t){return t>=0&&t<=1}},angle:{type:Number,default:0},indeterminate:Boolean,showValue:Boolean,reverse:Boolean,instantFeedback:Boolean},computed:{normalizedValue:function(){return ut(this.value,this.min,this.max)},svgStyle:function(){var t=!0===this.$q.lang.rtl?-this.angle:this.angle;return{transform:this.reverse!==(!0===this.$q.lang.rtl)?"scale3d(-1, 1, 1) rotate3d(0, 0, 1, "+(-90-t)+"deg)":"rotate3d(0, 0, 1, "+(t-90)+"deg)"}},circleStyle:function(){if(!0!==this.instantFeedback&&!0!==this.indeterminate)return{transition:"stroke-dashoffset 0.6s ease 0s, stroke 0.6s ease"}},viewBox:function(){return 100/(1-this.thickness/2)},viewBoxAttr:function(){return this.viewBox/2+" "+this.viewBox/2+" "+this.viewBox+" "+this.viewBox},strokeDashOffset:function(){return(1-(this.normalizedValue-this.min)/(this.max-this.min))*hn},strokeWidth:function(){return this.thickness/2*this.viewBox},attrs:function(){return{role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.max,"aria-valuenow":!0===this.indeterminate?void 0:this.normalizedValue}}},methods:{__getCircle:function(t,e){var i=e.thickness,n=e.offset,s=e.color;return t("circle",{staticClass:"q-circular-progress__"+e.cls,class:void 0!==s?"text-"+s:null,style:this.circleStyle,attrs:{fill:"transparent",stroke:"currentColor","stroke-width":i,"stroke-dasharray":dn,"stroke-dashoffset":n,cx:this.viewBox,cy:this.viewBox,r:50}})}},render:function(t){var e=[];void 0!==this.centerColor&&"transparent"!==this.centerColor&&e.push(t("circle",{staticClass:"q-circular-progress__center",class:"text-"+this.centerColor,attrs:{fill:"currentColor",r:50-this.strokeWidth/2,cx:this.viewBox,cy:this.viewBox}})),void 0!==this.trackColor&&"transparent"!==this.trackColor&&e.push(this.__getCircle(t,{cls:"track",thickness:this.strokeWidth,offset:0,color:this.trackColor})),e.push(this.__getCircle(t,{cls:"circle",thickness:this.strokeWidth,offset:this.strokeDashOffset,color:this.color}));var i=[t("svg",{staticClass:"q-circular-progress__svg",style:this.svgStyle,attrs:{focusable:"false",viewBox:this.viewBoxAttr,"aria-hidden":"true"}},e)];return!0===this.showValue&&i.push(t("div",{staticClass:"q-circular-progress__text absolute-full row flex-center content-center",style:{fontSize:this.fontSize}},void 0!==this.$scopedSlots.default?this.$scopedSlots.default():[t("div",[this.normalizedValue])])),t("div",{staticClass:"q-circular-progress",class:"q-circular-progress--"+(!0===this.indeterminate?"in":"")+"determinate",style:this.sizeStyle,on:Object.assign({},this.qListeners),attrs:this.attrs},zt(i,this,"internal"))}}),fn=/^#[0-9a-fA-F]{3}([0-9a-fA-F]{3})?$/,mn=/^#[0-9a-fA-F]{4}([0-9a-fA-F]{4})?$/,vn=/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/,gn=/^rgb\(((0|[1-9][\d]?|1[\d]{0,2}|2[\d]?|2[0-4][\d]|25[0-5]),){2}(0|[1-9][\d]?|1[\d]{0,2}|2[\d]?|2[0-4][\d]|25[0-5])\)$/,_n=/^rgba\(((0|[1-9][\d]?|1[\d]{0,2}|2[\d]?|2[0-4][\d]|25[0-5]),){2}(0|[1-9][\d]?|1[\d]{0,2}|2[\d]?|2[0-4][\d]|25[0-5]),(0|0\.[0-9]+[1-9]|0\.[1-9]+|1)\)$/,bn={date:function(t){return/^-?[\d]+\/[0-1]\d\/[0-3]\d$/.test(t)},time:function(t){return/^([0-1]?\d|2[0-3]):[0-5]\d$/.test(t)},fulltime:function(t){return/^([0-1]?\d|2[0-3]):[0-5]\d:[0-5]\d$/.test(t)},timeOrFulltime:function(t){return/^([0-1]?\d|2[0-3]):[0-5]\d(:[0-5]\d)?$/.test(t)},email:function(t){return/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(t)},hexColor:function(t){return fn.test(t)},hexaColor:function(t){return mn.test(t)},hexOrHexaColor:function(t){return vn.test(t)},rgbColor:function(t){return gn.test(t)},rgbaColor:function(t){return _n.test(t)},rgbOrRgbaColor:function(t){return gn.test(t)||_n.test(t)},hexOrRgbColor:function(t){return fn.test(t)||gn.test(t)},hexaOrRgbaColor:function(t){return mn.test(t)||_n.test(t)},anyColor:function(t){return vn.test(t)||gn.test(t)||_n.test(t)}},yn={testPattern:bn};function Sn(t,e,i){var n,s=m(t),o=s.left-e.event.x,r=s.top-e.event.y,a=Math.abs(o),l=Math.abs(r),c=e.direction;!0===c.horizontal&&!0!==c.vertical?n=o<0?"left":"right":!0!==c.horizontal&&!0===c.vertical?n=r<0?"up":"down":!0===c.up&&r<0?(n="up",a>l&&(!0===c.left&&o<0?n="left":!0===c.right&&o>0&&(n="right"))):!0===c.down&&r>0?(n="down",a>l&&(!0===c.left&&o<0?n="left":!0===c.right&&o>0&&(n="right"))):!0===c.left&&o<0?(n="left",a0&&(n="down"))):!0===c.right&&o>0&&(n="right",a0&&(n="down")));var u=!1;if(void 0===n&&!1===i){if(!0===e.event.isFirst||void 0===e.event.lastDir)return{};u=!0,"left"===(n=e.event.lastDir)||"right"===n?(s.left-=o,a=0,o=0):(s.top-=r,l=0,r=0)}return{synthetic:u,payload:{evt:t,touch:!0!==e.event.mouse,mouse:!0===e.event.mouse,position:s,direction:n,isFirst:e.event.isFirst,isFinal:!0===i,duration:Date.now()-e.event.time,distance:{x:a,y:l},offset:{x:o,y:r},delta:{x:s.left-e.event.lastX,y:s.top-e.event.lastY}}}}function wn(t){var e=t.__qtouchpan;void 0!==e&&(void 0!==e.event&&e.end(),k(e,"main"),k(e,"temp"),!0===c.is.firefox&&w(t,!1),void 0!==e.styleCleanup&&e.styleCleanup(),delete t.__qtouchpan)}var Cn=0,xn={name:"touch-pan",bind:function(t,e){var i=e.value,n=e.modifiers;if(void 0!==t.__qtouchpan&&(wn(t),t.__qtouchpan_destroyed=!0),!0===n.mouse||!0===c.has.touch){var s={uid:"qvtp_"+Cn++,handler:i,modifiers:n,direction:Di(n),noop:p,mouseStart:function(t){Ri(t,s)&&f(t)&&(x(s,"temp",[[document,"mousemove","move","notPassiveCapture"],[document,"mouseup","end","passiveCapture"]]),s.start(t,!0))},touchStart:function(t){if(Ri(t,s)){var e=t.target;x(s,"temp",[[e,"touchmove","move","notPassiveCapture"],[e,"touchcancel","end","passiveCapture"],[e,"touchend","end","passiveCapture"]]),s.start(t)}},start:function(e,i){!0===c.is.firefox&&w(t,!0),s.lastEvt=e;var o=m(e);if(!0===i||!0===n.stop){if(!0!==s.direction.all&&(!0!==i||!0!==s.direction.mouseAllDir)){var r=e.type.indexOf("mouse")>-1?new MouseEvent(e.type,e):new TouchEvent(e.type,e);!0===e.defaultPrevented&&y(r),!0===e.cancelBubble&&b(r),r.qClonedBy=void 0===e.qClonedBy?[s.uid]:e.qClonedBy.concat(s.uid),r.qKeyEvent=e.qKeyEvent,r.qClickOutside=e.qClickOutside,s.initialEvent={target:e.target,event:r}}b(e)}s.event={x:o.left,y:o.top,time:Date.now(),mouse:!0===i,detected:!1,isFirst:!0,isFinal:!1,lastX:o.left,lastY:o.top}},move:function(t){if(void 0!==s.event){s.lastEvt=t;var e=!0===s.event.mouse,i=function(){o(t,e),!0!==n.preserveCursor&&(document.documentElement.style.cursor="grabbing"),!0===e&&document.body.classList.add("no-pointer-events--children"),document.body.classList.add("non-selectable"),ze(),s.styleCleanup=function(t){if(s.styleCleanup=void 0,!0!==n.preserveCursor&&(document.documentElement.style.cursor=""),document.body.classList.remove("non-selectable"),!0===e){var i=function(){document.body.classList.remove("no-pointer-events--children")};void 0!==t?setTimeout(function(){i(),t()},50):i()}else void 0!==t&&t()}};if(!0!==s.event.detected){if(!0===s.direction.all||!0===e&&!0===s.modifiers.mouseAllDir)return i(),s.event.detected=!0,void s.move(t);var r=m(t),a=r.left-s.event.x,l=r.top-s.event.y,c=Math.abs(a),u=Math.abs(l);c!==u&&(!0===s.direction.horizontal&&c>u||!0===s.direction.vertical&&c0||!0===s.direction.left&&c>u&&a<0||!0===s.direction.right&&c>u&&a>0?(s.event.detected=!0,s.move(t)):s.end(t,!0))}else{!0!==s.event.isFirst&&o(t,s.event.mouse);var h=Sn(t,s,!1),d=h.payload,p=h.synthetic;void 0!==d&&(!1===s.handler(d)?s.end(t):(void 0===s.styleCleanup&&!0===s.event.isFirst&&i(),s.event.lastX=d.position.left,s.event.lastY=d.position.top,s.event.lastDir=!0===p?void 0:d.direction,s.event.isFirst=!1))}}},end:function(e,i){if(void 0!==s.event){if(k(s,"temp"),!0===c.is.firefox&&w(t,!1),!0===i)void 0!==s.styleCleanup&&s.styleCleanup(),!0!==s.event.detected&&void 0!==s.initialEvent&&s.initialEvent.target.dispatchEvent(s.initialEvent.event);else if(!0===s.event.detected){!0===s.event.isFirst&&s.handler(Sn(void 0===e?s.lastEvt:e,s).payload);var n=Sn(void 0===e?s.lastEvt:e,s,!0).payload,o=function(){s.handler(n)};void 0!==s.styleCleanup?s.styleCleanup(o):o()}s.event=void 0,s.initialEvent=void 0,s.lastEvt=void 0}}};t.__qtouchpan=s,!0===n.mouse&&x(s,"main",[[t,"mousedown","mouseStart","passive"+(!0===n.mouseCapture?"Capture":"")]]),!0===c.has.touch&&x(s,"main",[[t,"touchstart","touchStart","passive"+(!0===n.capture?"Capture":"")],[t,"touchmove","noop","notPassiveCapture"]])}function o(t,e){!0===n.mouse&&!0===e?S(t):(!0===n.stop&&b(t),!0===n.prevent&&y(t))}},update:function(t,e){var i=e.oldValue,n=e.value,s=t.__qtouchpan;void 0!==s&&i!==n&&("function"!=typeof n&&s.end(),s.handler=n)},unbind:function(t){void 0===t.__qtouchpan_destroyed?wn(t):delete t.__qtouchpan_destroyed}},kn=function(t){return{value:t}},qn=[34,37,40,33,39,38],Tn={mixins:[Gt,Li],directives:{TouchPan:xn},props:{min:{type:Number,default:0},max:{type:Number,default:100},innerMin:Number,innerMax:Number,step:{type:Number,default:1,validator:function(t){return t>=0}},snap:Boolean,vertical:Boolean,reverse:Boolean,hideSelection:Boolean,color:String,markerLabelsClass:String,label:Boolean,labelColor:String,labelTextColor:String,labelAlways:Boolean,switchLabelSide:Boolean,markers:[Boolean,Number],markerLabels:[Boolean,Array,Object,Function],switchMarkerLabelsSide:Boolean,trackImg:String,trackColor:String,innerTrackImg:String,innerTrackColor:String,selectionColor:String,selectionImg:String,thumbSize:{type:String,default:"20px"},trackSize:{type:String,default:"4px"},disable:Boolean,readonly:Boolean,dense:Boolean,tabindex:[String,Number],thumbColor:String,thumbPath:{type:String,default:"M 4, 10 a 6,6 0 1,0 12,0 a 6,6 0 1,0 -12,0"}},data:function(){return{active:!1,preventFocus:!1,focus:!1,dragging:!1}},computed:{axis:function(){return!0===this.vertical?"--v":"--h"},labelSide:function(){return"-"+(!0===this.switchLabelSide?"switched":"standard")},isReversed:function(){return!0===this.vertical?!0===this.reverse:this.reverse!==(!0===this.$q.lang.rtl)},computedInnerMin:function(){return this.__getInnerMin(this.innerMin)},computedInnerMax:function(){return this.__getInnerMax(this.innerMax)},editable:function(){return!0!==this.disable&&!0!==this.readonly&&this.computedInnerMinthis.max?this.max:this.innerMax},__getPositionClass:function(t){var e="q-slider__"+t;return e+" "+e+this.axis+" "+e+this.axis+this.labelSide},__getAxisClass:function(t){var e="q-slider__"+t;return e+" "+e+this.axis},__convertRatioToModel:function(t){var e=this.min+t*(this.max-this.min);if(this.step>0){var i=(e-this.min)%this.step;e+=(Math.abs(i)>=this.step/2?(i<0?-1:1)*this.step:0)-i}return this.computedDecimals>0&&(e=parseFloat(e.toFixed(this.computedDecimals))),ut(e,this.computedInnerMin,this.computedInnerMax)},__convertModelToRatio:function(t){return 0===this.trackLen?0:(t-this.min)/this.trackLen},__getDraggingRatio:function(t,e){var i=m(t),n=!0===this.vertical?ut((i.top-e.top)/e.height,0,1):ut((i.left-e.left)/e.width,0,1);return ut(!0===this.isReversed?1-n:n,this.innerMinRatio,this.innerMaxRatio)},__getMarkerList:function(t){var e=this;if(!1===t)return null;if(!0===t)return this.markerTicks.map(kn);if("function"==typeof t)return this.markerTicks.map(function(e){var i=t(e);return!0===Zi(i)?Object.assign({},i,{value:e}):{value:e,label:i}});var i=function(t){var i=t.value;return i>=e.min&&i<=e.max};return!0===Array.isArray(t)?t.map(function(t){return!0===Zi(t)?t:{value:t}}).filter(i):Object.keys(t).map(function(e){var i=t[e],n=Number(e);return!0===Zi(i)?Object.assign({},i,{value:n}):{value:n,label:i}}).filter(i)},__getMarkerLabelStyle:function(t){var e;return(e={})[this.positionProp]=100*(t-this.min)/this.trackLen+"%",e},__getMarkerLabelsContent:function(t){var e=this;if(void 0!==this.$scopedSlots["marker-label-group"])return this.$scopedSlots["marker-label-group"](this.markerScope);var i=this.$scopedSlots["marker-label"];return void 0!==i?this.markerLabelsList.map(function(t){return i(Object.assign({},{marker:t},e.markerScope))}):this.markerLabelsList.map(function(e){return t("div",{key:e.value,style:e.style,class:e.classes},e.label)})},__onPan:function(t){!0===t.isFinal?(void 0!==this.dragging&&(this.__updatePosition(t.evt),!0===t.touch&&this.__updateValue(!0),this.dragging=void 0,this.$emit("pan","end")),this.active=!1,this.focus=!1):!0===t.isFirst?(this.dragging=this.__getDragging(t.evt),this.__updatePosition(t.evt),this.__updateValue(),this.active=!0,this.$emit("pan","start")):(this.__updatePosition(t.evt),this.__updateValue())},__onBlur:function(){this.focus=!1},__onActivate:function(t){this.__updatePosition(t,this.__getDragging(t)),this.__updateValue(),this.preventFocus=!0,this.active=!0,document.addEventListener("mouseup",this.__onDeactivate,!0)},__onDeactivate:function(){this.preventFocus=!1,this.active=!1,this.__updateValue(!0),this.__onBlur(),document.removeEventListener("mouseup",this.__onDeactivate,!0)},__onMobileClick:function(t){this.__updatePosition(t,this.__getDragging(t)),this.__updateValue(!0)},__onKeyup:function(t){qn.includes(t.keyCode)&&this.__updateValue(!0)},__getTextContainerStyle:function(t){if(!0===this.vertical)return null;var e=this.$q.lang.rtl!==this.reverse?1-t:t;return{transform:"translateX(calc("+(2*e-1)+" * "+this.thumbSize+" / 2 + "+(50-100*e)+"%))"}},__getThumb:function(t,e){var i=[t("svg",{class:"q-slider__thumb-shape absolute-full",attrs:{viewBox:"0 0 20 20","aria-hidden":"true"}},[t("path",{attrs:{d:this.thumbPath}})]),t("div",{class:"q-slider__focus-ring fit"})];return!0!==this.label&&!0!==this.labelAlways||(i.push(t("div",{class:this.pinClass+" absolute fit no-pointer-events"+e.pinColor},[t("div",{class:this.labelClass,style:{minWidth:this.thumbSize}},[t("div",{class:this.textContainerClass,style:e.textContainerStyle},[t("span",{class:e.textClass},e.label)])])])),void 0!==this.name&&!0!==this.disable&&this.__injectFormInput(i,"push")),t("div",Object.assign({},{class:e.classes,style:e.style},e.nodeData),i)},__getContent:function(t,e){var i=[];"transparent"!==this.innerTrackColor&&i.push(t("div",{key:"inner",class:this.innerBarClass,style:this.innerBarStyle})),"transparent"!==this.selectionColor&&i.push(t("div",{key:"selection",class:this.selectionBarClass,style:this.selectionBarStyle})),!1!==this.markers&&i.push(t("div",{key:"marker",class:this.markerClass,style:this.markerStyle})),e(i);var n=[t("div",{key:"trackC",class:this.trackContainerClass,attrs:this.trackContainerAttrs,on:this.trackContainerEvents,directives:this.panDirectives},[t("div",{class:this.trackClass,style:this.trackStyle},i)])];!1!==this.markerLabels&&n[!0===this.switchMarkerLabelsSide?"unshift":"push"](t("div",{key:"markerL",class:this.markerLabelsContainerClass},this.__getMarkerLabelsContent(t)));return n}},beforeDestroy:function(){document.removeEventListener("mouseup",this.__onDeactivate,!0)}},Mn=t.extend({name:"QSlider",mixins:[Tn],props:{value:{required:!0,default:null,validator:function(t){return"number"==typeof t||null===t}},labelValue:[String,Number]},data:function(){var t=this.__getInnerMin(this.innerMin),e=this.__getInnerMax(this.innerMax);return{model:null===this.value?t:ut(this.value,t,e),curRatio:0}},computed:{modelRatio:function(){return this.__convertModelToRatio(this.model)},ratio:function(){return!0===this.active?this.curRatio:this.modelRatio},selectionBarStyle:function(){var t={};return t[this.positionProp]=100*this.innerMinRatio+"%",t[this.sizeProp]=100*(this.ratio-this.innerMinRatio)+"%",void 0!==this.selectionImg&&(t.backgroundImage="url("+this.selectionImg+") !important"),t},thumbLabel:function(){return void 0!==this.labelValue?this.labelValue:this.model},thumbClasses:function(){var t=this.thumbColor||this.color;return"q-slider__thumb q-slider__thumb"+this.axis+" q-slider__thumb"+this.axis+"-"+(!0===this.isReversed?"rtl":"ltr")+" absolute non-selectable"+(!1===this.preventFocus&&!0===this.focus?" q-slider--focus":"")+(void 0!==t?" text-"+t:"")},thumbStyle:function(){var t;return(t={width:this.thumbSize,height:this.thumbSize})[this.positionProp]=100*this.ratio+"%",t},thumbPinColor:function(){return void 0!==this.labelColor?" text-"+this.labelColor:""},thumbTextContainerStyle:function(){return this.__getTextContainerStyle(this.ratio)},thumbTextClass:function(){return"q-slider__text"+(void 0!==this.labelTextColor?" text-"+this.labelTextColor:"")},trackContainerEvents:function(){return!0!==this.editable?{}:!0===this.$q.platform.is.mobile?{click:this.__onMobileClick}:{mousedown:this.__onActivate,focus:this.__onFocus,blur:this.__onBlur,keydown:this.__onKeydown,keyup:this.__onKeyup}},trackContainerAttrs:function(){return{tabindex:!0!==this.$q.platform.is.mobile?this.computedTabindex:null}},modelUpdate:function(){return this.value+"|"+this.computedInnerMin+"|"+this.computedInnerMax}},watch:{modelUpdate:function(){this.model=null===this.value?this.computedInnerMin:ut(this.value,this.computedInnerMin,this.computedInnerMax)}},methods:{__updateValue:function(t){this.model!==this.value&&this.$emit("input",this.model),!0===t&&this.$emit("change",this.model)},__getDragging:function(){return this.$el.getBoundingClientRect()},__updatePosition:function(t,e){void 0===e&&(e=this.dragging);var i=this.__getDraggingRatio(t,e);this.model=this.__convertRatioToModel(i),this.curRatio=!0!==this.snap||0===this.computedStep?i:this.__convertModelToRatio(this.model)},__onFocus:function(){this.focus=!0},__onKeydown:function(t){if(qn.includes(t.keyCode)){S(t);var e=([34,33].includes(t.keyCode)?10:1)*this.computedStep,i=([34,37,40].includes(t.keyCode)?-1:1)*(!0===this.isReversed?-1:1)*e;this.model=ut(parseFloat((this.model+i).toFixed(this.computedDecimals)),this.computedInnerMin,this.computedInnerMax),this.__updateValue()}}},render:function(t){var e=this,i=this.__getContent(t,function(i){i.push(e.__getThumb(t,{pinColor:e.thumbPinColor,textContainerStyle:e.thumbTextContainerStyle,textClass:e.thumbTextClass,label:e.thumbLabel,classes:e.thumbClasses,style:e.thumbStyle,nodeData:{}}))});return t("div",{class:this.classes+(null===this.value?" q-slider--no-value":""),attrs:Object.assign({},this.attributes,{"aria-valuenow":this.value})},i)}}),$n={data:function(){return{canRender:!s}},mounted:function(){!1===this.canRender&&(this.canRender=!0)}},Ln=t.extend({name:"QResizeObserver",mixins:[$n],props:{debounce:{type:[String,Number],default:100}},data:function(){return!0===this.hasObserver?{}:{url:!0===this.$q.platform.is.ie?null:"about:blank"}},methods:{trigger:function(t){!0===t||0===this.debounce||"0"===this.debounce?this.__emit():null===this.timer&&(this.timer=setTimeout(this.__emit,this.debounce))},__emit:function(){if(null!==this.timer&&(clearTimeout(this.timer),this.timer=null),this.$el&&this.$el.parentNode){var t=this.$el.parentNode,e={width:t.offsetWidth,height:t.offsetHeight};e.width===this.size.width&&e.height===this.size.height||(this.size=e,this.$emit("resize",this.size))}},__cleanup:function(){void 0!==this.curDocView&&(void 0!==this.curDocView.removeEventListener&&this.curDocView.removeEventListener("resize",this.trigger,h.passive),this.curDocView=void 0)},__onObjLoad:function(){this.__cleanup(),this.$el.contentDocument&&(this.curDocView=this.$el.contentDocument.defaultView,this.curDocView.addEventListener("resize",this.trigger,h.passive)),this.__emit()}},render:function(t){if(!1!==this.canRender&&!0!==this.hasObserver)return t("object",{style:this.style,attrs:{tabindex:-1,type:"text/html",data:this.url,"aria-hidden":"true"},on:ft(this,"load",{load:this.__onObjLoad})})},beforeCreate:function(){this.size={width:-1,height:-1},!0!==i&&(this.hasObserver="undefined"!=typeof ResizeObserver,!0!==this.hasObserver&&(this.style=(this.$q.platform.is.ie?"visibility:hidden;":"")+"display:block;position:absolute;top:0;left:0;right:0;bottom:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1;"))},mounted:function(){if(this.timer=null,!0===this.hasObserver)return this.observer=new ResizeObserver(this.trigger),this.observer.observe(this.$el.parentNode),void this.__emit();!0===this.$q.platform.is.ie?(this.url="about:blank",this.__emit()):this.__onObjLoad()},beforeDestroy:function(){clearTimeout(this.timer),!0!==this.hasObserver?this.__cleanup():void 0!==this.observer&&this.$el.parentNode&&this.observer.unobserve(this.$el.parentNode)}});function On(t,e,i){var n=!0===i?["left","right"]:["top","bottom"];return"absolute-"+(!0===e?n[0]:n[1])+(t?" text-"+t:"")}function Bn(t,e){return t.priorityMatched===e.priorityMatched?e.priorityHref-t.priorityHref:e.priorityMatched-t.priorityMatched}function En(t){return t.selected=!1,t}var zn=[function(t){return!0===t.selected&&!0===t.exact&&!0!==t.redirected},function(t){return!0===t.selected&&!0===t.exact},function(t){return!0===t.selected&&!0!==t.redirected},function(t){return!0===t.selected},function(t){return!0===t.exact&&!0!==t.redirected},function(t){return!0!==t.redirected},function(t){return!0===t.exact},function(t){return!0}],Pn=zn.length,An=t.extend({name:"QTabs",mixins:[Ae,Lt],provide:function(){return{tabs:this.tabs,__recalculateScroll:this.__recalculateScroll,__activateTab:this.__activateTab,__activateRoute:this.__activateRoute,__onKbdNavigate:this.__onKbdNavigate}},props:{value:[Number,String],align:{type:String,default:"center",validator:function(t){return["left","center","right","justify"].includes(t)}},breakpoint:{type:[String,Number],default:600},vertical:Boolean,shrink:Boolean,stretch:Boolean,activeClass:String,activeColor:String,activeBgColor:String,indicatorColor:String,leftIcon:String,rightIcon:String,outsideArrows:Boolean,mobileArrows:Boolean,switchIndicator:Boolean,narrowIndicator:Boolean,inlineLabel:Boolean,noCaps:Boolean,dense:Boolean,contentClass:String},data:function(){return{tabs:{current:this.value,hasFocus:!1,activeClass:this.activeClass,activeColor:this.activeColor,activeBgColor:this.activeBgColor,indicatorClass:On(this.indicatorColor,this.switchIndicator,this.vertical),narrowIndicator:this.narrowIndicator,inlineLabel:this.inlineLabel,noCaps:this.noCaps},scrollable:!1,startArrow:!0,endArrow:!1,justify:!1}},watch:{value:function(t){this.__activateTab(t,!0,!0)},activeClass:function(t){this.tabs.activeClass=t},activeColor:function(t){this.tabs.activeColor=t},activeBgColor:function(t){this.tabs.activeBgColor=t},vertical:function(t){this.tabs.indicatorClass=On(this.indicatorColor,this.switchIndicator,t)},indicatorColor:function(t){this.tabs.indicatorClass=On(t,this.switchIndicator,this.vertical)},switchIndicator:function(t){this.tabs.indicatorClass=On(this.indicatorColor,t,this.vertical)},narrowIndicator:function(t){this.tabs.narrowIndicator=t},inlineLabel:function(t){this.tabs.inlineLabel=t},noCaps:function(t){this.tabs.noCaps=t},outsideArrows:function(){this.__recalculateScroll()},arrowsEnabled:function(t){this.__updateArrows=!0===t?this.__updateArrowsFn:p,this.__recalculateScroll()},isRTL:function(){this.__updateArrows()}},computed:{arrowsEnabled:function(){return!0===this.$q.platform.is.desktop||!0===this.mobileArrows},arrowIcons:function(){var t,e=!0===this.isRTL?["end","start"]:["start","end"];return(t={})[e[0]]=this.leftIcon||(!0===this.vertical?this.$q.iconSet.tabs.up:this.$q.iconSet.tabs.left),t[e[1]]=this.rightIcon||(!0===this.vertical?this.$q.iconSet.tabs.down:this.$q.iconSet.tabs.right),t},alignClass:function(){return"q-tabs__content--align-"+(!0===this.scrollable?"left":!0===this.justify?"justify":this.align)},classes:function(){return"q-tabs--"+(!0===this.scrollable?"":"not-")+"scrollable q-tabs--"+(!0===this.vertical?"vertical":"horizontal")+" q-tabs__arrows--"+(!0===this.arrowsEnabled&&!0===this.outsideArrows?"outside":"inside")+(!0===this.dense?" q-tabs--dense":"")+(!0===this.shrink?" col-shrink":"")+(!0===this.stretch?" self-stretch":"")},innerClass:function(){return this.alignClass+(void 0!==this.contentClass?" "+this.contentClass:"")+(!0===this.$q.platform.is.mobile?" scroll":"")},domProps:function(){return!0===this.vertical?{container:"height",content:"offsetHeight",scroll:"scrollHeight"}:{container:"width",content:"offsetWidth",scroll:"scrollWidth"}},isRTL:function(){return!0!==this.vertical&&!0===this.$q.lang.rtl},__getScrollPosition:function(){return!0===this.vertical?function(t){return t.scrollTop}:!0!==this.$q.lang.rtl?function(t){return t.scrollLeft}:!0===this.rtlHasScrollBug?function(t){return t.scrollWidth-t.clientWidth-t.scrollLeft}:function(t){return 1-t.scrollLeft}},__setScrollPosition:function(){return!0===this.vertical?function(t,e){t.scrollTop=e}:!0!==this.$q.lang.rtl?function(t,e){t.scrollLeft=e}:!0===this.rtlHasScrollBug?function(t,e){t.scrollLeft=t.scrollWidth-t.clientWidth-e}:function(t,e){t.scrollLeft=1-e}},__getScrollOffset:function(){return!0===this.vertical?function(t){return t.offsetTop}:!0!==this.$q.lang.rtl||!0===this.rtlHasScrollBug?function(t){return t.offsetLeft}:function(t){return t.offsetParent.offsetWidth-t.offsetLeft-t.clientWidth}},onEvents:function(){return Object.assign({},{input:b},this.qListeners,{focusin:this.__onFocusin,focusout:this.__onFocusout})}},methods:{__onFocusin:function(t){this.tabs.hasFocus=!0,void 0!==this.qListeners.focusin&&this.$emit("focusin",t)},__onFocusout:function(t){this.tabs.hasFocus=!1,void 0!==this.qListeners.focusout&&this.$emit("focusout",t)},__activateTab:function(t,e,i){this.tabs.current!==t&&(!0!==i&&this.$emit("input",t),!0!==e&&void 0!==this.qListeners.input||(this.__animate(this.tabs.current,t),this.tabs.current=t))},__activateRoute:function(t){var e=this;this.bufferRoute!==this.$route&&this.buffer.length>0&&(clearTimeout(this.bufferTimer),this.bufferTimer=void 0,this.buffer.length=0),this.bufferRoute=this.$route,void 0!==t&&(!0===t.remove?this.buffer=this.buffer.filter(function(e){return e.name!==t.name}):this.buffer.push(t)),void 0===this.bufferTimer&&(this.bufferTimer=setTimeout(function(){for(var t=[],i=0;i0&&n>i;this.scrollable!==s&&(this.scrollable=s),!0===s&&this.$nextTick(function(){return e.__updateArrows()});var o=i(!0===this.isRTL?1:0),this.endArrow=!0===this.vertical?Math.ceil(i+e.height)=t)&&(s=!0,n=t),this.__setScrollPosition(e,n),this.__updateArrows(),s},__scrollToTab:function(t,e,i){if(void 0!==this.$refs.content){var n=this.$refs.content,s=this.__getScrollPosition(n),o=!0===this.vertical?n.offsetHeight:n.offsetWidth,r=!0===this.vertical?n.scrollHeight:n.scrollWidth,a=this.__getScrollOffset(t),l=a+(!0===this.vertical?t.offsetHeight:t.offsetWidth),c=as+o;!0!==c&&!0!==u?e=void 0:void 0===e&&(l>=r-1?e=!0:!0===c||!0===u&&a=r-1?r:l-o:a<=1?0:a,!0!==i?function(){setTimeout(function(){t&&t.focus()})}:void 0):!0!==i&&t.focus()}},__onKbdNavigate:function(t,e){var i=Array.prototype.filter.call(this.$refs.content.children,function(t){return t===e||t.matches&&!0===t.matches(".q-tab.q-focusable")}),n=i.length;if(0!==n){if(36===t)return!0!==i[0].contains(document.activeElement)&&(this.__scrollToTab(i[0],!1),this.__recalculateScroll(),!0);if(35===t)return!0!==i[n-1].contains(document.activeElement)&&(this.__scrollToTab(i[n-1],!0),this.__recalculateScroll(),!0);var s=!0===this.vertical&&38===t||!0!==this.vertical&&37===t,o=!0===this.vertical&&40===t||!0!==this.vertical&&39===t,r=!0===s?-1:!0===o?1:void 0;if(void 0!==r){var a=!0===this.isRTL?-1:1,l=i.indexOf(e)+r*a;return!(l<0||l>=n||!0===i[l].contains(document.activeElement))&&(this.__scrollToTab(i[l],r===a),this.__recalculateScroll(),!0)}}}},created:function(){this.buffer=[],this.__updateArrows=!0===this.arrowsEnabled?this.__updateArrowsFn:p},mounted:function(){this.rtlHasScrollBug=ei()},activated:function(){!0===this.shouldActivate&&this.__recalculateScroll()},deactivated:function(){this.shouldActivate=!0},beforeDestroy:function(){clearTimeout(this.bufferTimer),clearTimeout(this.animateTimer)},render:function(t){var e=[t(Ln,{on:ft(this,"resize",{resize:this.__updateContainer})}),t("div",{ref:"content",staticClass:"q-tabs__content row no-wrap items-center self-stretch hide-scrollbar relative-position",class:this.innerClass,on:!0===this.arrowsEnabled?ft(this,"scroll",{scroll:this.__updateArrowsFn}):void 0},Ot(this,"default"))];return!0===this.arrowsEnabled&&e.push(t(Ut,{staticClass:"q-tabs__arrow q-tabs__arrow--start absolute q-tab__icon",class:!0===this.startArrow?"":"q-tabs__arrow--faded",props:{name:this.arrowIcons.start},on:ft(this,"onS",{mousedown:this.__scrollToStart,touchstart:this.__scrollToStart,mouseup:this.__stopAnimScroll,mouseleave:this.__stopAnimScroll,touchend:this.__stopAnimScroll})}),t(Ut,{staticClass:"q-tabs__arrow q-tabs__arrow--end absolute q-tab__icon",class:!0===this.endArrow?"":"q-tabs__arrow--faded",props:{name:this.arrowIcons.end},on:ft(this,"onE",{mousedown:this.__scrollToEnd,touchstart:this.__scrollToEnd,mouseup:this.__stopAnimScroll,mouseleave:this.__stopAnimScroll,touchend:this.__stopAnimScroll})})),t("div",{staticClass:"q-tabs row no-wrap items-center",class:this.classes,on:this.onEvents,attrs:{role:"tablist"}},e)}}),In=0,Dn=t.extend({name:"QTab",mixins:[we,Lt],inject:{tabs:{default:function(){console.error("QTab/QRouteTab components need to be child of QTabs")}},__activateTab:{},__recalculateScroll:{},__onKbdNavigate:{}},props:{icon:String,label:[Number,String],alert:[Boolean,String],alertIcon:String,name:{type:[Number,String],default:function(){return"t_"+In++}},noCaps:Boolean,tabindex:[String,Number],disable:Boolean,contentClass:String},computed:{isActive:function(){return this.tabs.current===this.name},classes:function(){var t;return Object.assign({},!0===this.isActive?((t={"q-tab--active":!0})[this.tabs.activeClass]=this.tabs.activeClass,t["text-"+this.tabs.activeColor]=this.tabs.activeColor,t["bg-"+this.tabs.activeBgColor]=this.tabs.activeBgColor,t):{"q-tab--inactive":!0},{"q-tab--full":this.icon&&this.label&&!this.tabs.inlineLabel,"q-tab--no-caps":!0===this.noCaps||!0===this.tabs.noCaps,"q-focusable q-hoverable cursor-pointer":!this.disable,disabled:this.disable})},innerClass:function(){return(!0===this.tabs.inlineLabel?"row no-wrap q-tab__content--inline":"column")+(void 0!==this.contentClass?" "+this.contentClass:"")},computedTabIndex:function(){return!0===this.disable||!0===this.tabs.hasFocus?-1:this.tabindex||0},computedRipple:function(){return!1!==this.ripple&&Object.assign({keyCodes:[13,32],early:!0},!0===this.ripple?{}:this.ripple)},onEvents:function(){return Object.assign({},{input:b},this.qListeners,{click:this.__activate,keydown:this.__onKeydown})},attrs:function(){var t={tabindex:this.computedTabIndex,role:"tab","aria-selected":!0===this.isActive?"true":"false"};return!0===this.disable&&(t["aria-disabled"]="true"),t}},methods:{__activate:function(t,e){!0!==e&&void 0!==this.$refs.blurTarget&&this.$refs.blurTarget.focus({preventScroll:!0}),!0!==this.disable&&(void 0!==this.qListeners.click&&this.$emit("click",t),this.__activateTab(this.name))},__onKeydown:function(t){Z(t)||(-1!==[13,32].indexOf(t.keyCode)?(this.__activate(t,!0),y(t)):t.keyCode>=35&&t.keyCode<=40&&!0===this.__onKbdNavigate(t.keyCode,this.$el)&&S(t))},__getContent:function(t){var e=this.tabs.narrowIndicator,i=[],n=t("div",{staticClass:"q-tab__indicator",class:this.tabs.indicatorClass});void 0!==this.icon&&i.push(t(Ut,{staticClass:"q-tab__icon",props:{name:this.icon}})),void 0!==this.label&&i.push(t("div",{staticClass:"q-tab__label"},[this.label])),!1!==this.alert&&i.push(void 0!==this.alertIcon?t(Ut,{staticClass:"q-tab__alert-icon",props:{color:!0!==this.alert?this.alert:void 0,name:this.alertIcon}}):t("div",{staticClass:"q-tab__alert",class:!0!==this.alert?"text-"+this.alert:null})),!0===e&&i.push(n);var s=[t("div",{staticClass:"q-focus-helper",attrs:{tabindex:-1},ref:"blurTarget"}),t("div",{staticClass:"q-tab__content self-stretch flex-center relative-position q-anchor--skip non-selectable",class:this.innerClass},Et(i,this,"default"))];return!1===e&&s.push(n),s},__renderTab:function(t,e){var i=this,n={staticClass:"q-tab relative-position self-stretch flex flex-center text-center no-outline",class:this.classes,attrs:this.attrs,directives:!1===this.ripple||!0===this.disable?null:[{name:"ripple",value:this.computedRipple}]};return!0===this.hasRouterLink?t(e,Object.assign({},n,{nativeOn:this.onEvents,props:this.routerTabLinkProps,scopedSlots:{default:function(e){var n,s=e.href,o=e.isActive,r=e.isExactActive;return t("a",{class:(n={},n[i.activeClass]=o,n[i.exactActiveClass]=r,n),attrs:Object.assign({},i.linkProps.attrs,{href:s})},i.__getContent(t))}}})):(!0===this.hasLink&&(Object.assign(n.attrs,this.linkProps.attrs),n.props=this.linkProps.props),n.on=this.onEvents,t(e,n,this.__getContent(t)))}},mounted:function(){this.__recalculateScroll()},beforeDestroy:function(){this.__recalculateScroll()},render:function(t){return this.__renderTab(t,"div")}}),Rn=t.extend({name:"QTabPanels",mixins:[Gt,Hi],computed:{classes:function(){return"q-tab-panels q-panel-parent"+(!0===this.isDark?" q-tab-panels--dark q-dark":"")}},methods:{__renderPanels:function(t){return t("div",{class:this.classes,directives:this.panelDirectives,on:Object.assign({},this.qListeners)},this.__getPanelContent(t))}}}),Fn=t.extend({name:"QTabPanel",mixins:[Qi],render:function(t){return t("div",{staticClass:"q-tab-panel",on:Object.assign({},this.qListeners)},Ot(this,"default"))}}),jn=["rgb(255,204,204)","rgb(255,230,204)","rgb(255,255,204)","rgb(204,255,204)","rgb(204,255,230)","rgb(204,255,255)","rgb(204,230,255)","rgb(204,204,255)","rgb(230,204,255)","rgb(255,204,255)","rgb(255,153,153)","rgb(255,204,153)","rgb(255,255,153)","rgb(153,255,153)","rgb(153,255,204)","rgb(153,255,255)","rgb(153,204,255)","rgb(153,153,255)","rgb(204,153,255)","rgb(255,153,255)","rgb(255,102,102)","rgb(255,179,102)","rgb(255,255,102)","rgb(102,255,102)","rgb(102,255,179)","rgb(102,255,255)","rgb(102,179,255)","rgb(102,102,255)","rgb(179,102,255)","rgb(255,102,255)","rgb(255,51,51)","rgb(255,153,51)","rgb(255,255,51)","rgb(51,255,51)","rgb(51,255,153)","rgb(51,255,255)","rgb(51,153,255)","rgb(51,51,255)","rgb(153,51,255)","rgb(255,51,255)","rgb(255,0,0)","rgb(255,128,0)","rgb(255,255,0)","rgb(0,255,0)","rgb(0,255,128)","rgb(0,255,255)","rgb(0,128,255)","rgb(0,0,255)","rgb(128,0,255)","rgb(255,0,255)","rgb(245,0,0)","rgb(245,123,0)","rgb(245,245,0)","rgb(0,245,0)","rgb(0,245,123)","rgb(0,245,245)","rgb(0,123,245)","rgb(0,0,245)","rgb(123,0,245)","rgb(245,0,245)","rgb(214,0,0)","rgb(214,108,0)","rgb(214,214,0)","rgb(0,214,0)","rgb(0,214,108)","rgb(0,214,214)","rgb(0,108,214)","rgb(0,0,214)","rgb(108,0,214)","rgb(214,0,214)","rgb(163,0,0)","rgb(163,82,0)","rgb(163,163,0)","rgb(0,163,0)","rgb(0,163,82)","rgb(0,163,163)","rgb(0,82,163)","rgb(0,0,163)","rgb(82,0,163)","rgb(163,0,163)","rgb(92,0,0)","rgb(92,46,0)","rgb(92,92,0)","rgb(0,92,0)","rgb(0,92,46)","rgb(0,92,92)","rgb(0,46,92)","rgb(0,0,92)","rgb(46,0,92)","rgb(92,0,92)","rgb(255,255,255)","rgb(205,205,205)","rgb(178,178,178)","rgb(153,153,153)","rgb(127,127,127)","rgb(102,102,102)","rgb(76,76,76)","rgb(51,51,51)","rgb(25,25,25)","rgb(0,0,0)"],Vn=t.extend({name:"QColor",mixins:[Lt,Gt,Li],directives:{TouchPan:xn},props:{value:String,defaultValue:String,defaultView:{type:String,default:"spectrum",validator:function(t){return["spectrum","tune","palette"].includes(t)}},formatModel:{type:String,default:"auto",validator:function(t){return["auto","hex","rgb","hexa","rgba"].includes(t)}},palette:Array,noHeader:Boolean,noHeaderTabs:Boolean,noFooter:Boolean,square:Boolean,flat:Boolean,bordered:Boolean,disable:Boolean,readonly:Boolean},data:function(){return{topView:"auto"===this.formatModel?void 0===this.value||null===this.value||""===this.value||this.value.startsWith("#")?"hex":"rgb":this.formatModel.startsWith("hex")?"hex":"rgb",view:this.defaultView,model:this.__parseModel(this.value||this.defaultValue)}},watch:{value:function(t){var e=this.__parseModel(t||this.defaultValue);e.hex!==this.model.hex&&(this.model=e)},defaultValue:function(t){if(!this.value&&t){var e=this.__parseModel(t);e.hex!==this.model.hex&&(this.model=e)}}},computed:{editable:function(){return!0!==this.disable&&!0!==this.readonly},forceHex:function(){return"auto"===this.formatModel?null:this.formatModel.indexOf("hex")>-1},forceAlpha:function(){return"auto"===this.formatModel?null:this.formatModel.indexOf("a")>-1},isHex:function(){return void 0===this.value||null===this.value||""===this.value||this.value.startsWith("#")},isOutputHex:function(){return null!==this.forceHex?this.forceHex:this.isHex},formAttrs:function(){return{type:"hidden",name:this.name,value:this.model[!0===this.isOutputHex?"hex":"rgb"]}},hasAlpha:function(){return null!==this.forceAlpha?this.forceAlpha:void 0!==this.model.a},currentBgColor:function(){return{backgroundColor:this.model.rgb||"#000"}},headerClass:function(){return"q-color-picker__header-content--"+(void 0!==this.model.a&&this.model.a<65||W(this.model)>.4?"light":"dark")},spectrumStyle:function(){return{background:"hsl("+this.model.h+",100%,50%)"}},spectrumPointerStyle:function(){var t;return(t={top:100-this.model.v+"%"})[!0===this.$q.lang.rtl?"right":"left"]=this.model.s+"%",t},computedPalette:function(){return void 0!==this.palette&&this.palette.length>0?this.palette:jn},classes:function(){return"q-color-picker"+(!0===this.bordered?" q-color-picker--bordered":"")+(!0===this.square?" q-color-picker--square no-border-radius":"")+(!0===this.flat?" q-color-picker--flat no-shadow":"")+(!0===this.disable?" disabled":"")+(!0===this.isDark?" q-color-picker--dark q-dark":"")},attrs:function(){return!0===this.disable?{"aria-disabled":"true"}:!0===this.readonly?{"aria-readonly":"true"}:void 0}},created:function(){this.__spectrumChange=ge(this.__spectrumChange,20)},render:function(t){var e=[this.__getContent(t)];return void 0!==this.name&&!0!==this.disable&&this.__injectFormInput(e,"push"),!0!==this.noHeader&&e.unshift(this.__getHeader(t)),!0!==this.noFooter&&e.push(this.__getFooter(t)),t("div",{class:this.classes,attrs:this.attrs,on:Object.assign({},this.qListeners)},e)},methods:{__getHeader:function(t){var e=this,i=[];return!0!==this.noHeaderTabs&&i.push(t(An,{class:"q-color-picker__header-tabs",props:{value:this.topView,dense:!0,align:"justify"},on:ft(this,"topVTab",{input:function(t){e.topView=t}})},[t(Dn,{props:{label:"HEX"+(!0===this.hasAlpha?"A":""),name:"hex",ripple:!1}}),t(Dn,{props:{label:"RGB"+(!0===this.hasAlpha?"A":""),name:"rgb",ripple:!1}})])),i.push(t("div",{staticClass:"q-color-picker__header-banner row flex-center no-wrap"},[t("input",{staticClass:"fit",domProps:{value:this.model[this.topView]},attrs:!0!==this.editable?{readonly:!0}:null,on:ft(this,"topIn",{input:function(t){e.__updateErrorIcon(!0===e.__onEditorChange(t))},change:b,blur:function(t){!0===e.__onEditorChange(t,!0)&&e.$forceUpdate(),e.__updateErrorIcon(!1)}})}),t(Ut,{ref:"errorIcon",staticClass:"q-color-picker__error-icon absolute no-pointer-events",props:{name:this.$q.iconSet.type.negative}})])),t("div",{staticClass:"q-color-picker__header relative-position overflow-hidden"},[t("div",{staticClass:"q-color-picker__header-bg absolute-full"}),t("div",{staticClass:"q-color-picker__header-content",class:this.headerClass,style:this.currentBgColor},i)])},__getContent:function(t){return t(Rn,{props:{value:this.view,animated:!0}},[t(Fn,{staticClass:"q-color-picker__spectrum-tab overflow-hidden",props:{name:"spectrum"}},this.__getSpectrumTab(t)),t(Fn,{staticClass:"q-pa-md q-color-picker__tune-tab",props:{name:"tune"}},this.__getTuneTab(t)),t(Fn,{staticClass:"q-color-picker__palette-tab",props:{name:"palette"}},this.__getPaletteTab(t))])},__getFooter:function(t){var e=this;return t("div",{staticClass:"q-color-picker__footer relative-position overflow-hidden"},[t(An,{staticClass:"absolute-full",props:{value:this.view,dense:!0,align:"justify"},on:ft(this,"ftIn",{input:function(t){e.view=t}})},[t(Dn,{props:{icon:this.$q.iconSet.colorPicker.spectrum,name:"spectrum",ripple:!1}}),t(Dn,{props:{icon:this.$q.iconSet.colorPicker.tune,name:"tune",ripple:!1}}),t(Dn,{props:{icon:this.$q.iconSet.colorPicker.palette,name:"palette",ripple:!1}})])])},__getSpectrumTab:function(t){var e=this;return[t("div",{ref:"spectrum",staticClass:"q-color-picker__spectrum non-selectable relative-position cursor-pointer",style:this.spectrumStyle,class:{readonly:!0!==this.editable},on:!0===this.editable?ft(this,"spectrT",{click:this.__spectrumClick,mousedown:this.__activate}):null,directives:!0===this.editable?ft(this,"spectrDir",[{name:"touch-pan",modifiers:{prevent:!0,stop:!0,mouse:!0},value:this.__spectrumPan}]):null},[t("div",{style:{paddingBottom:"100%"}}),t("div",{staticClass:"q-color-picker__spectrum-white absolute-full"}),t("div",{staticClass:"q-color-picker__spectrum-black absolute-full"}),t("div",{staticClass:"absolute",style:this.spectrumPointerStyle},[void 0!==this.model.hex?t("div",{staticClass:"q-color-picker__spectrum-circle"}):null])]),t("div",{staticClass:"q-color-picker__sliders"},[t(Mn,{staticClass:"q-color-picker__hue non-selectable",props:{value:this.model.h,min:0,max:360,trackSize:"8px",innerTrackColor:"transparent",selectionColor:"transparent",readonly:!0!==this.editable,thumbPath:"M5 5 h10 v10 h-10 v-10 z"},on:ft(this,"hueSlide",{input:this.__onHueChange,change:function(t){return e.__onHueChange(t,!0)}})}),!0===this.hasAlpha?t(Mn,{staticClass:"q-color-picker__alpha non-selectable",props:{value:this.model.a,min:0,max:100,trackSize:"8px",trackColor:"white",innerTrackColor:"transparent",selectionColor:"transparent",trackImg:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAH0lEQVQoU2NkYGAwZkAFZ5G5jPRRgOYEVDeB3EBjBQBOZwTVugIGyAAAAABJRU5ErkJggg==",readonly:!0!==this.editable,hideSelection:!0,thumbPath:"M5 5 h10 v10 h-10 v-10 z"},on:ft(this,"alphaSlide",{input:function(t){return e.__onNumericChange(t,"a",100)},change:function(t){return e.__onNumericChange(t,"a",100,void 0,!0)}})}):null])]},__getTuneTab:function(t){var e=this,i={inputmode:"numeric",maxlength:3,readonly:!0!==this.editable};return[t("div",{staticClass:"row items-center no-wrap"},[t("div",["R"]),t(Mn,{props:{value:this.model.r,min:0,max:255,color:"red",dark:this.isDark,readonly:!0!==this.editable},on:ft(this,"rSlide",{input:function(t){return e.__onNumericChange(t,"r",255)},change:function(t){return e.__onNumericChange(t,"r",255,void 0,!0)}})}),t("input",{domProps:{value:this.model.r},attrs:i,on:ft(this,"rIn",{input:function(t){return e.__onNumericChange(t.target.value,"r",255,t)},change:b,blur:function(t){return e.__onNumericChange(t.target.value,"r",255,t,!0)}})})]),t("div",{staticClass:"row items-center no-wrap"},[t("div",["G"]),t(Mn,{props:{value:this.model.g,min:0,max:255,color:"green",dark:this.isDark,readonly:!0!==this.editable},on:ft(this,"gSlide",{input:function(t){return e.__onNumericChange(t,"g",255)},change:function(t){return e.__onNumericChange(t,"g",255,void 0,!0)}})}),t("input",{domProps:{value:this.model.g},attrs:i,on:ft(this,"gIn",{input:function(t){return e.__onNumericChange(t.target.value,"g",255,t)},change:b,blur:function(t){return e.__onNumericChange(t.target.value,"g",255,t,!0)}})})]),t("div",{staticClass:"row items-center no-wrap"},[t("div",["B"]),t(Mn,{props:{value:this.model.b,min:0,max:255,color:"blue",readonly:!0!==this.editable,dark:this.isDark},on:ft(this,"bSlide",{input:function(t){return e.__onNumericChange(t,"b",255)},change:function(t){return e.__onNumericChange(t,"b",255,void 0,!0)}})}),t("input",{domProps:{value:this.model.b},attrs:i,on:ft(this,"bIn",{input:function(t){return e.__onNumericChange(t.target.value,"b",255,t)},change:b,blur:function(t){return e.__onNumericChange(t.target.value,"b",255,t,!0)}})})]),!0===this.hasAlpha?t("div",{staticClass:"row items-center no-wrap"},[t("div",["A"]),t(Mn,{props:{value:this.model.a,color:"grey",readonly:!0!==this.editable,dark:this.isDark},on:ft(this,"aSlide",{input:function(t){return e.__onNumericChange(t,"a",100)},change:function(t){return e.__onNumericChange(t,"a",100,void 0,!0)}})}),t("input",{domProps:{value:this.model.a},attrs:i,on:ft(this,"aIn",{input:function(t){return e.__onNumericChange(t.target.value,"a",100,t)},change:b,blur:function(t){return e.__onNumericChange(t.target.value,"a",100,t,!0)}})})]):null]},__getPaletteTab:function(t){var e=this;return[t("div",{staticClass:"row items-center q-color-picker__palette-rows",class:!0===this.editable?"q-color-picker__palette-rows--editable":""},this.computedPalette.map(function(i){return t("div",{staticClass:"q-color-picker__cube col-auto",style:{backgroundColor:i},on:!0===e.editable?ft(e,"palette#"+i,{click:function(){e.__onPalettePick(i)}}):null})}))]},__onSpectrumChange:function(t,e,i){var n=this.$refs.spectrum;if(void 0!==n){var s=n.clientWidth,o=n.clientHeight,r=n.getBoundingClientRect(),a=Math.min(s,Math.max(0,t-r.left));!0===this.$q.lang.rtl&&(a=s-a);var l=Math.min(o,Math.max(0,e-r.top)),c=Math.round(100*a/s),u=Math.round(100*Math.max(0,Math.min(1,-l/o+1))),h=N({h:this.model.h,s:c,v:u,a:!0===this.hasAlpha?this.model.a:void 0});this.model.s=c,this.model.v=u,this.__update(h,i)}},__onHueChange:function(t,e){var i=N({h:t=Math.round(t),s:this.model.s,v:this.model.v,a:!0===this.hasAlpha?this.model.a:void 0});this.model.h=t,this.__update(i,e)},__onNumericChange:function(t,e,i,n,s){if(void 0!==n&&b(n),/^[0-9]+$/.test(t)){var o=Math.floor(Number(t));if(o<0||o>i)!0===s&&this.$forceUpdate();else{var r={r:"r"===e?o:this.model.r,g:"g"===e?o:this.model.g,b:"b"===e?o:this.model.b,a:!0===this.hasAlpha?"a"===e?o:this.model.a:void 0};if("a"!==e){var a=H(r);this.model.h=a.h,this.model.s=a.s,this.model.v=a.v}if(this.__update(r,s),void 0!==n&&!0!==s&&void 0!==n.target.selectionEnd){var l=n.target.selectionEnd;this.$nextTick(function(){n.target.setSelectionRange(l,l)})}}}else!0===s&&this.$forceUpdate()},__onEditorChange:function(t,e){var i,n=t.target.value;if(b(t),"hex"===this.topView){if(n.length!==(!0===this.hasAlpha?9:7)||!/^#[0-9A-Fa-f]+$/.test(n))return!0;i=V(n)}else{var s;if(!n.endsWith(")"))return!0;if(!0!==this.hasAlpha&&n.startsWith("rgb(")){if(3!==(s=n.substring(4,n.length-1).split(",").map(function(t){return parseInt(t,10)})).length||!/^rgb\([0-9]{1,3},[0-9]{1,3},[0-9]{1,3}\)$/.test(n))return!0}else{if(!0!==this.hasAlpha||!n.startsWith("rgba("))return!0;if(4!==(s=n.substring(5,n.length-1).split(",")).length||!/^rgba\([0-9]{1,3},[0-9]{1,3},[0-9]{1,3},(0|0\.[0-9]+[1-9]|0\.[1-9]+|1)\)$/.test(n))return!0;for(var o=0;o<3;o++){var r=parseInt(s[o],10);if(r<0||r>255)return!0;s[o]=r}var a=parseFloat(s[3]);if(a<0||a>1)return!0;s[3]=a}if(s[0]<0||s[0]>255||s[1]<0||s[1]>255||s[2]<0||s[2]>255||!0===this.hasAlpha&&(s[3]<0||s[3]>1))return!0;i={r:s[0],g:s[1],b:s[2],a:!0===this.hasAlpha?100*s[3]:void 0}}var l=H(i);if(this.model.h=l.h,this.model.s=l.s,this.model.v=l.v,this.__update(i,e),!0!==e){var c=t.target.selectionEnd;this.$nextTick(function(){t.target.setSelectionRange(c,c)})}},__onPalettePick:function(t){var e=this.__parseModel(t),i={r:e.r,g:e.g,b:e.b,a:e.a};void 0===i.a&&(i.a=this.model.a),this.model.h=e.h,this.model.s=e.s,this.model.v=e.v,this.__update(i,!0)},__update:function(t,e){this.model.hex=F(t),this.model.rgb=j(t),this.model.r=t.r,this.model.g=t.g,this.model.b=t.b,this.model.a=t.a;var i=this.model[!0===this.isOutputHex?"hex":"rgb"];this.$emit("input",i),!0===e&&this.$emit("change",i)},__updateErrorIcon:function(t){void 0!==this.$refs.errorIcon&&(this.$refs.errorIcon.$el.style.opacity=t?1:0)},__parseModel:function(t){var e=void 0!==this.forceAlpha?this.forceAlpha:"auto"===this.formatModel?null:this.formatModel.indexOf("a")>-1;if("string"!=typeof t||0===t.length||!0!==bn.anyColor(t.replace(/ /g,"")))return{h:0,s:0,v:0,r:0,g:0,b:0,a:!0===e?100:void 0,hex:void 0,rgb:void 0};var i=Q(t);return!0===e&&void 0===i.a&&(i.a=100),i.hex=F(i),i.rgb=j(i),Object.assign(i,H(i))},__spectrumPan:function(t){t.isFinal?this.__onSpectrumChange(t.position.left,t.position.top,!0):this.__spectrumChange(t)},__spectrumChange:function(t){this.__onSpectrumChange(t.position.left,t.position.top)},__spectrumClick:function(t){this.__onSpectrumChange(t.pageX-window.pageXOffset,t.pageY-window.pageYOffset,!0)},__activate:function(t){this.__onSpectrumChange(t.pageX-window.pageXOffset,t.pageY-window.pageYOffset)}}}),Nn=[-61,9,38,199,426,686,756,818,1111,1181,1210,1635,2060,2097,2192,2262,2324,2394,2456,3178];function Hn(t,e,i){return"[object Date]"===Object.prototype.toString.call(t)&&(i=t.getDate(),e=t.getMonth()+1,t=t.getFullYear()),function(t){var e,i,n,s=Xn(t).gy,o=s-621,r=Un(o,!1),a=Kn(s,3,r.march);if((n=t-a)>=0){if(n<=185)return i=1+Gn(n,31),e=Zn(n,31)+1,{jy:o,jm:i,jd:e};n-=186}else o-=1,n+=179,1===r.leap&&(n+=1);return i=7+Gn(n,30),e=Zn(n,30)+1,{jy:o,jm:i,jd:e}}(Kn(t,e,i))}function Qn(t,e,i){return Xn(function(t,e,i){var n=Un(t,!0);return Kn(n.gy,3,n.march)+31*(e-1)-Gn(e,7)*(e-7)+i-1}(t,e,i))}function Wn(t){return 0===function(t){var e,i,n,s,o,r=Nn.length,a=Nn[0];if(t=Nn[r-1])throw new Error("Invalid Jalaali year "+t);for(o=1;o=Nn[a-1])throw new Error("Invalid Jalaali year "+t);for(r=1;r0?"-":"+",n=Math.abs(t),s=n%60;return i+dt(Math.floor(n/60))+e+dt(s)}function us(t,e,i){var n=hs(e),s=new Date(t),o=void 0!==n.year||void 0!==n.month||void 0!==n.date?function(t,e,i){var n=t.getFullYear(),s=t.getMonth(),o=t.getDate();return void 0!==e.year&&(n+=i*e.year,delete e.year),void 0!==e.month&&(s+=i*e.month,delete e.month),t.setDate(1),t.setMonth(2),t.setFullYear(n),t.setMonth(s),t.setDate(Math.min(o,ys(t))),void 0!==e.date&&(t.setDate(t.getDate()+i*e.date),delete e.date),t}(s,n,i):s;for(var r in n){var a=ct(r);o["set"+a](o["get"+a]()+i*n[r])}return o}function hs(t){var e=Object.assign({},t);return void 0!==t.years&&(e.year=t.years,delete e.years),void 0!==t.months&&(e.month=t.months,delete e.months),void 0!==t.days&&(e.date=t.days,delete e.days),void 0!==t.day&&(e.date=t.day,delete e.day),void 0!==t.hour&&(e.hours=t.hour,delete e.hour),void 0!==t.minute&&(e.minutes=t.minute,delete e.minute),void 0!==t.second&&(e.seconds=t.second,delete e.second),void 0!==t.millisecond&&(e.milliseconds=t.millisecond,delete e.millisecond),e}function ds(t,e,i){var n=hs(e),s=!0===i?"UTC":"",o=new Date(t),r=void 0!==n.year||void 0!==n.month||void 0!==n.date?function(t,e,i){var n=void 0!==e.year?e.year:t["get"+i+"FullYear"](),s=void 0!==e.month?e.month-1:t["get"+i+"Month"](),o=new Date(n,s+1,0).getDate(),r=Math.min(o,void 0!==e.date?e.date:t["get"+i+"Date"]());return t["set"+i+"Date"](1),t["set"+i+"Month"](2),t["set"+i+"FullYear"](n),t["set"+i+"Month"](s),t["set"+i+"Date"](r),delete e.year,delete e.month,delete e.date,t}(o,n,s):o;for(var a in n){r["set"+s+(a.charAt(0).toUpperCase()+a.slice(1))](n[a])}return r}function ps(t,e,i,n,s){var o={year:null,month:null,day:null,hour:null,minute:null,second:null,millisecond:null,timezoneOffset:null,dateHash:null,timeHash:null};if(void 0!==s&&Object.assign(o,s),void 0===t||null===t||""===t||"string"!=typeof t)return o;void 0===e&&(e=ss);var r=ls(i,D.props),a=r.months,l=r.monthsShort,c=function(t,e){var i="("+e.days.join("|")+")",n=t+i;if(void 0!==as[n])return as[n];var s="("+e.daysShort.join("|")+")",o="("+e.months.join("|")+")",r="("+e.monthsShort.join("|")+")",a={},l=0,c=t.replace(rs,function(t){switch(l++,t){case"YY":return a.YY=l,"(-?\\d{1,2})";case"YYYY":return a.YYYY=l,"(-?\\d{1,4})";case"M":return a.M=l,"(\\d{1,2})";case"MM":return a.M=l,"(\\d{2})";case"MMM":return a.MMM=l,r;case"MMMM":return a.MMMM=l,o;case"D":return a.D=l,"(\\d{1,2})";case"Do":return a.D=l++,"(\\d{1,2}(st|nd|rd|th))";case"DD":return a.D=l,"(\\d{2})";case"H":return a.H=l,"(\\d{1,2})";case"HH":return a.H=l,"(\\d{2})";case"h":return a.h=l,"(\\d{1,2})";case"hh":return a.h=l,"(\\d{2})";case"m":return a.m=l,"(\\d{1,2})";case"mm":return a.m=l,"(\\d{2})";case"s":return a.s=l,"(\\d{1,2})";case"ss":return a.s=l,"(\\d{2})";case"S":return a.S=l,"(\\d{1})";case"SS":return a.S=l,"(\\d{2})";case"SSS":return a.S=l,"(\\d{3})";case"A":return a.A=l,"(AM|PM)";case"a":return a.a=l,"(am|pm)";case"aa":return a.aa=l,"(a\\.m\\.|p\\.m\\.)";case"ddd":return s;case"dddd":return i;case"Q":case"d":case"E":return"(\\d{1})";case"Qo":return"(1st|2nd|3rd|4th)";case"DDD":case"DDDD":return"(\\d{1,3})";case"w":return"(\\d{1,2})";case"ww":return"(\\d{2})";case"Z":return a.Z=l,"(Z|[+-]\\d{2}:\\d{2})";case"ZZ":return a.ZZ=l,"(Z|[+-]\\d{2}\\d{2})";case"X":return a.X=l,"(-?\\d+)";case"x":return a.x=l,"(-?\\d{4,})";default:return l--,"["===t[0]&&(t=t.substring(1,t.length-1)),t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}}),u={map:a,regex:new RegExp("^"+c)};return as[n]=u,u}(e,r),u=c.regex,h=c.map,d=t.match(u);if(null===d)return o;var p="";if(void 0!==h.X||void 0!==h.x){var f=parseInt(d[void 0!==h.X?h.X:h.x],10);if(!0===isNaN(f)||f<0)return o;var m=new Date(f*(void 0!==h.X?1e3:1));o.year=m.getFullYear(),o.month=m.getMonth()+1,o.day=m.getDate(),o.hour=m.getHours(),o.minute=m.getMinutes(),o.second=m.getSeconds(),o.millisecond=m.getMilliseconds()}else{if(void 0!==h.YYYY)o.year=parseInt(d[h.YYYY],10);else if(void 0!==h.YY){var v=parseInt(d[h.YY],10);o.year=v<0?v:2e3+v}if(void 0!==h.M){if(o.month=parseInt(d[h.M],10),o.month<1||o.month>12)return o}else void 0!==h.MMM?o.month=l.indexOf(d[h.MMM])+1:void 0!==h.MMMM&&(o.month=a.indexOf(d[h.MMMM])+1);if(void 0!==h.D){if(o.day=parseInt(d[h.D],10),null===o.year||null===o.month||o.day<1)return o;var g="persian"!==n?new Date(o.year,o.month,0).getDate():Yn(o.year,o.month);if(o.day>g)return o}void 0!==h.H?o.hour=parseInt(d[h.H],10)%24:void 0!==h.h&&(o.hour=parseInt(d[h.h],10)%12,(h.A&&"PM"===d[h.A]||h.a&&"pm"===d[h.a]||h.aa&&"p.m."===d[h.aa])&&(o.hour+=12),o.hour=o.hour%24),void 0!==h.m&&(o.minute=parseInt(d[h.m],10)%60),void 0!==h.s&&(o.second=parseInt(d[h.s],10)%60),void 0!==h.S&&(o.millisecond=parseInt(d[h.S],10)*Math.pow(10,3-d[h.S].length)),void 0===h.Z&&void 0===h.ZZ||(p=void 0!==h.Z?d[h.Z].replace(":",""):d[h.ZZ],o.timezoneOffset=("+"===p[0]?-1:1)*(60*p.slice(1,3)+1*p.slice(3,5)))}return o.dateHash=dt(o.year,6)+"/"+dt(o.month)+"/"+dt(o.day),o.timeHash=dt(o.hour)+":"+dt(o.minute)+":"+dt(o.second)+p,o}function fs(t){var e=new Date(t.getFullYear(),t.getMonth(),t.getDate());e.setDate(e.getDate()-(e.getDay()+6)%7+3);var i=new Date(e.getFullYear(),0,4);i.setDate(i.getDate()-(i.getDay()+6)%7+3);var n=e.getTimezoneOffset()-i.getTimezoneOffset();e.setHours(e.getHours()-n);var s=(e-i)/(7*es);return 1+Math.floor(s)}function ms(t,e){var i=new Date(t);return!0===e?function(t){return 1e4*t.getFullYear()+100*t.getMonth()+t.getDate()}(i):i.getTime()}function vs(t,e,i){var n=new Date(t),s="set"+(!0===i?"UTC":"");switch(e){case"year":case"years":n[s+"Month"](0);case"month":case"months":n[s+"Date"](1);case"day":case"days":case"date":n[s+"Hours"](0);case"hour":case"hours":n[s+"Minutes"](0);case"minute":case"minutes":n[s+"Seconds"](0);case"second":case"seconds":n[s+"Milliseconds"](0)}return n}function gs(t,e,i){return(t.getTime()-t.getTimezoneOffset()*ns-(e.getTime()-e.getTimezoneOffset()*ns))/i}function _s(t,e,i){void 0===i&&(i="days");var n=new Date(t),s=new Date(e);switch(i){case"years":case"year":return n.getFullYear()-s.getFullYear();case"months":case"month":return 12*(n.getFullYear()-s.getFullYear())+n.getMonth()-s.getMonth();case"days":case"day":case"date":return gs(vs(n,"day"),vs(s,"day"),es);case"hours":case"hour":return gs(vs(n,"hour"),vs(s,"hour"),is);case"minutes":case"minute":return gs(vs(n,"minute"),vs(s,"minute"),ns);case"seconds":case"second":return gs(vs(n,"second"),vs(s,"second"),1e3)}}function bs(t){return _s(t,vs(t,"year"),"days")+1}function ys(t){return new Date(t.getFullYear(),t.getMonth()+1,0).getDate()}function Ss(t){if(t>=11&&t<=13)return t+"th";switch(t%10){case 1:return t+"st";case 2:return t+"nd";case 3:return t+"rd"}return t+"th"}var ws={YY:function(t,e,i){var n=this.YYYY(t,e,i)%100;return n>=0?dt(n):"-"+dt(Math.abs(n))},YYYY:function(t,e,i){return void 0!==i&&null!==i?i:t.getFullYear()},M:function(t){return t.getMonth()+1},MM:function(t){return dt(t.getMonth()+1)},MMM:function(t,e){return e.monthsShort[t.getMonth()]},MMMM:function(t,e){return e.months[t.getMonth()]},Q:function(t){return Math.ceil((t.getMonth()+1)/3)},Qo:function(t){return Ss(this.Q(t))},D:function(t){return t.getDate()},Do:function(t){return Ss(t.getDate())},DD:function(t){return dt(t.getDate())},DDD:function(t){return bs(t)},DDDD:function(t){return dt(bs(t),3)},d:function(t){return t.getDay()},dd:function(t,e){return this.dddd(t,e).slice(0,2)},ddd:function(t,e){return e.daysShort[t.getDay()]},dddd:function(t,e){return e.days[t.getDay()]},E:function(t){return t.getDay()||7},w:function(t){return fs(t)},ww:function(t){return dt(fs(t))},H:function(t){return t.getHours()},HH:function(t){return dt(t.getHours())},h:function(t){var e=t.getHours();return 0===e?12:e>12?e%12:e},hh:function(t){return dt(this.h(t))},m:function(t){return t.getMinutes()},mm:function(t){return dt(t.getMinutes())},s:function(t){return t.getSeconds()},ss:function(t){return dt(t.getSeconds())},S:function(t){return Math.floor(t.getMilliseconds()/100)},SS:function(t){return dt(Math.floor(t.getMilliseconds()/10))},SSS:function(t){return dt(t.getMilliseconds(),3)},A:function(t){return this.H(t)<12?"AM":"PM"},a:function(t){return this.H(t)<12?"am":"pm"},aa:function(t){return this.H(t)<12?"a.m.":"p.m."},Z:function(t,e,i,n){return cs(void 0===n||null===n?t.getTimezoneOffset():n,":")},ZZ:function(t,e,i,n){return cs(void 0===n||null===n?t.getTimezoneOffset():n)},X:function(t){return Math.floor(t.getTime()/1e3)},x:function(t){return t.getTime()}};function Cs(t,e,i,n,s){if((0===t||t)&&t!==1/0&&t!==-1/0){var o=new Date(t);if(!isNaN(o)){void 0===e&&(e=ss);var r=ls(i,D.props);return e.replace(os,function(t,e){return t in ws?ws[t](o,r,n,s):void 0===e?t:e.split("\\]").join("]")})}}}var xs,ks,qs,Ts,Ms,$s,Ls={isValid:function(t){return"number"==typeof t||!1===isNaN(Date.parse(t))},extractDate:function(t,e,i){var n=ps(t,e,i),s=new Date(n.year,null===n.month?null:n.month-1,null===n.day?1:n.day,n.hour,n.minute,n.second,n.millisecond),o=s.getTimezoneOffset();return null===n.timezoneOffset||n.timezoneOffset===o?s:us(s,{minutes:n.timezoneOffset-o},1)},buildDate:function(t,e){return ds(new Date,t,e)},getDayOfWeek:function(t){var e=new Date(t).getDay();return 0===e?7:e},getWeekOfYear:fs,isBetweenDates:function(t,e,i,n){void 0===n&&(n={});var s=ms(e,n.onlyDate),o=ms(i,n.onlyDate),r=ms(t,n.onlyDate);return(r>s||!0===n.inclusiveFrom&&r===s)&&(ro)return o}return n},isSameDate:function(t,e,i){var n=new Date(t),s=new Date(e);if(void 0===i)return n.getTime()===s.getTime();switch(i){case"second":case"seconds":if(n.getSeconds()!==s.getSeconds())return!1;case"minute":case"minutes":if(n.getMinutes()!==s.getMinutes())return!1;case"hour":case"hours":if(n.getHours()!==s.getHours())return!1;case"day":case"days":case"date":if(n.getDate()!==s.getDate())return!1;case"month":case"months":if(n.getMonth()!==s.getMonth())return!1;case"year":case"years":if(n.getFullYear()!==s.getFullYear())return!1;break;default:throw new Error("date isSameDate unknown unit "+i)}return!0},daysInMonth:ys,formatDate:Cs,clone:function(t){return!0===Ji(t)?new Date(t.getTime()):t}},Os=["Calendar","Years","Months"],Bs=function(t){return Os.includes(t)},Es=function(t){return/^-?[\d]+\/[0-1]\d$/.test(t)},zs=t.extend({name:"QDate",mixins:[ts],props:{multiple:Boolean,range:Boolean,title:String,subtitle:String,mask:{default:"YYYY/MM/DD"},defaultYearMonth:{type:String,validator:Es},yearsInMonthView:Boolean,events:[Array,Function],eventColor:[String,Function],emitImmediately:Boolean,options:[Array,Function],navigationMinYearMonth:{type:String,validator:Es},navigationMaxYearMonth:{type:String,validator:Es},noUnset:Boolean,firstDayOfWeek:[String,Number],todayBtn:Boolean,minimal:Boolean,defaultView:{type:String,default:"Calendar",validator:Bs}},data:function(){var t=this.__getMask(),e=this.__getLocale(),i=this.__getViewModel(t,e),n=i.year,s=!0===this.$q.lang.rtl?"right":"left";return{view:this.defaultView,monthDirection:s,yearDirection:s,startYear:n-n%20-(n<0?20:0),editRange:void 0,innerMask:t,innerLocale:e,viewModel:i}},watch:{value:function(t){if(this.lastEmitValue===t)this.lastEmitValue=0;else{var e=this.__getViewModel(this.innerMask,this.innerLocale),i=e.year,n=e.month;this.__updateViewModel(i,n)}},view:function(){void 0!==this.$refs.blurTarget&&this.$refs.blurTarget.focus()},"viewModel.year":function(t){this.$emit("navigation",{year:t,month:this.viewModel.month})},"viewModel.month":function(t){this.$emit("navigation",{year:this.viewModel.year,month:t})},computedMask:function(t){this.__updateValue(t,this.innerLocale,"mask"),this.innerMask=t},computedLocale:function(t){this.__updateValue(this.innerMask,t,"locale"),this.innerLocale=t}},computed:{classes:function(){var t=!0===this.landscape?"landscape":"portrait";return"q-date q-date--"+t+" q-date--"+t+"-"+(!0===this.minimal?"minimal":"standard")+(!0===this.isDark?" q-date--dark q-dark":"")+(!0===this.bordered?" q-date--bordered":"")+(!0===this.square?" q-date--square no-border-radius":"")+(!0===this.flat?" q-date--flat no-shadow":"")+(!0===this.disable?" disabled":!0===this.readonly?" q-date--readonly":"")},isImmediate:function(){return!0===this.emitImmediately&&!0!==this.multiple&&!0!==this.range},normalizedModel:function(){return!0===Array.isArray(this.value)?this.value:null!==this.value&&void 0!==this.value?[this.value]:[]},daysModel:function(){var t=this;return this.normalizedModel.filter(function(t){return"string"==typeof t}).map(function(e){return t.__decodeString(e,t.innerMask,t.innerLocale)}).filter(function(t){return null!==t.dateHash&&null!==t.day&&null!==t.month&&null!==t.year})},rangeModel:function(){var t=this,e=function(e){return t.__decodeString(e,t.innerMask,t.innerLocale)};return this.normalizedModel.filter(function(t){return!0===Zi(t)&&void 0!==t.from&&void 0!==t.to}).map(function(t){return{from:e(t.from),to:e(t.to)}}).filter(function(t){return null!==t.from.dateHash&&null!==t.to.dateHash&&t.from.dateHash0)return this.title;if(void 0!==this.editRange){var t=this.editRange.init,e=this.getNativeDateFn(t);return this.innerLocale.daysShort[e.getDay()]+", "+this.innerLocale.monthsShort[t.month-1]+" "+t.day+" — ?"}if(0===this.daysInModel)return" — ";if(this.daysInModel>1)return this.daysInModel+" "+this.innerLocale.pluralDay;var i=this.daysModel[0],n=this.getNativeDateFn(i);return!0===isNaN(n.valueOf())?" — ":void 0!==this.innerLocale.headerTitle?this.innerLocale.headerTitle(n,i):this.innerLocale.daysShort[n.getDay()]+", "+this.innerLocale.monthsShort[i.month-1]+" "+i.day},headerSubtitle:function(){if(void 0!==this.subtitle&&null!==this.subtitle&&this.subtitle.length>0)return this.subtitle;if(0===this.daysInModel)return" — ";if(this.daysInModel>1){var t=this.minSelectedModel,e=this.maxSelectedModel,i=this.innerLocale.monthsShort;return i[t.month-1]+(t.year!==e.year?" "+t.year+" — "+i[e.month-1]+" ":t.month!==e.month?" — "+i[e.month-1]:"")+" "+e.year}return this.daysModel[0].year},minSelectedModel:function(){return this.daysModel.concat(this.rangeModel.map(function(t){return t.from})).sort(function(t,e){return t.year-e.year||t.month-e.month})[0]},maxSelectedModel:function(){return this.daysModel.concat(this.rangeModel.map(function(t){return t.to})).sort(function(t,e){return e.year-t.year||e.month-t.month})[0]},dateArrow:function(){var t=[this.$q.iconSet.datetime.arrowLeft,this.$q.iconSet.datetime.arrowRight];return!0===this.$q.lang.rtl?t.reverse():t},computedFirstDayOfWeek:function(){return void 0!==this.firstDayOfWeek?Number(this.firstDayOfWeek):this.innerLocale.firstDayOfWeek},daysOfWeek:function(){var t=this.innerLocale.daysShort,e=this.computedFirstDayOfWeek;return e>0?t.slice(e,7).concat(t.slice(0,e)):t},daysInMonth:function(){var t=this.viewModel;return"persian"!==this.calendar?new Date(t.year,t.month,0).getDate():Yn(t.year,t.month)},today:function(){return this.__getCurrentDate()},evtColor:function(){var t=this;return"function"==typeof this.eventColor?this.eventColor:function(){return t.eventColor}},minNav:function(){if(void 0!==this.navigationMinYearMonth){var t=this.navigationMinYearMonth.split("/");return{year:parseInt(t[0],10),month:parseInt(t[1],10)}}},maxNav:function(){if(void 0!==this.navigationMaxYearMonth){var t=this.navigationMaxYearMonth.split("/");return{year:parseInt(t[0],10),month:parseInt(t[1],10)}}},navBoundaries:function(){var t={month:{prev:!0,next:!0},year:{prev:!0,next:!0}};return void 0!==this.minNav&&this.minNav.year>=this.viewModel.year&&(t.year.prev=!1,this.minNav.year===this.viewModel.year&&this.minNav.month>=this.viewModel.month&&(t.month.prev=!1)),void 0!==this.maxNav&&this.maxNav.year<=this.viewModel.year&&(t.year.next=!1,this.maxNav.year===this.viewModel.year&&this.maxNav.month<=this.viewModel.month&&(t.month.next=!1)),t},daysMap:function(){var t=this,e={};return this.daysModel.forEach(function(i){var n=t.__getMonthHash(i);void 0===e[n]&&(e[n]=[]),e[n].push(i.day)}),e},rangeMap:function(){var t=this,e={};return this.rangeModel.forEach(function(i){var n=t.__getMonthHash(i.from),s=t.__getMonthHash(i.to);if(void 0===e[n]&&(e[n]=[]),e[n].push({from:i.from.day,to:n===s?i.to.day:void 0,range:i}),n12&&(c.year++,c.month=1)}),e},rangeView:function(){if(void 0!==this.editRange){var t=this.editRange,e=t.init,i=t.initHash,n=t.final,s=i<=t.finalHash?[e,n]:[n,e],o=s[0],r=s[1],a=this.__getMonthHash(o),l=this.__getMonthHash(r);if(a===this.viewMonthHash||l===this.viewMonthHash){var c={};return a===this.viewMonthHash?(c.from=o.day,c.includeFrom=!0):c.from=1,l===this.viewMonthHash?(c.to=r.day,c.includeTo=!0):c.to=this.daysInMonth,c}}},viewMonthHash:function(){return this.__getMonthHash(this.viewModel)},selectionDaysMap:function(){var t=this,e={};if(void 0===this.options){for(var i=1;i<=this.daysInMonth;i++)e[i]=!0;return e}for(var n="function"==typeof this.options?this.options:function(e){return t.options.includes(e)},s=1;s<=this.daysInMonth;s++){var o=this.viewMonthHash+"/"+dt(s);e[s]=n(o)}return e},eventDaysMap:function(){var t=this,e={};if(void 0===this.events)for(var i=1;i<=this.daysInMonth;i++)e[i]=!1;else for(var n="function"==typeof this.events?this.events:function(e){return t.events.includes(e)},s=1;s<=this.daysInMonth;s++){var o=this.viewMonthHash+"/"+dt(s);e[s]=!0===n(o)&&this.evtColor(o)}return e},viewDays:function(){var t,e,i=this.viewModel,n=i.year,s=i.month;if("persian"!==this.calendar)t=new Date(n,s-1,1),e=new Date(n,s-1,0).getDate();else{var o=Qn(n,s,1);t=new Date(o.gy,o.gm-1,o.gd);var r=s-1,a=n;0===r&&(r=12,a--),e=Yn(a,r)}return{days:t.getDay()-this.computedFirstDayOfWeek-1,endDay:e}},days:function(){var t=this,e=[],i=this.viewDays,n=i.days,s=i.endDay,o=n<0?n+7:n;if(o<6)for(var r=s-o;r<=s;r++)e.push({i:r,fill:!0});for(var a=e.length,l=1;l<=this.daysInMonth;l++){var c={i:l,event:this.eventDaysMap[l],classes:[]};!0===this.selectionDaysMap[l]&&(c.in=!0,c.flat=!0),e.push(c)}if(void 0!==this.daysMap[this.viewMonthHash]&&this.daysMap[this.viewMonthHash].forEach(function(i){var n=a+i-1;Object.assign(e[n],{selected:!0,unelevated:!0,flat:!1,color:t.computedColor,textColor:t.computedTextColor})}),void 0!==this.rangeMap[this.viewMonthHash]&&this.rangeMap[this.viewMonthHash].forEach(function(i){if(void 0!==i.from){for(var n=a+i.from-1,s=a+(i.to||t.daysInMonth)-1,o=n;o<=s;o++)Object.assign(e[o],{range:i.range,unelevated:!0,color:t.computedColor,textColor:t.computedTextColor});Object.assign(e[n],{rangeFrom:!0,flat:!1}),void 0!==i.to&&Object.assign(e[s],{rangeTo:!0,flat:!1})}else if(void 0!==i.to){for(var r=a+i.to-1,l=a;l<=r;l++)Object.assign(e[l],{range:i.range,unelevated:!0,color:t.computedColor,textColor:t.computedTextColor});Object.assign(e[r],{flat:!1,rangeTo:!0})}else for(var c=a+t.daysInMonth-1,u=a;u<=c;u++)Object.assign(e[u],{range:i.range,unelevated:!0,color:t.computedColor,textColor:t.computedTextColor})}),void 0!==this.rangeView){for(var u=a+this.rangeView.from-1,h=a+this.rangeView.to-1,d=u;d<=h;d++)e[d].color=this.computedColor,e[d].editRange=!0;!0===this.rangeView.includeFrom&&(e[u].editRangeFrom=!0),!0===this.rangeView.includeTo&&(e[h].editRangeTo=!0)}this.viewModel.year===this.today.year&&this.viewModel.month===this.today.month&&(e[a+this.today.day-1].today=!0);var p=e.length%7;if(p>0)for(var f=7-p,m=1;m<=f;m++)e.push({i:m,fill:!0});return e.forEach(function(t){var e="q-date__calendar-item ";!0===t.fill?e+="q-date__calendar-item--fill":(e+="q-date__calendar-item--"+(!0===t.in?"in":"out"),void 0!==t.range&&(e+=" q-date__range"+(!0===t.rangeTo?"-to":!0===t.rangeFrom?"-from":"")),!0===t.editRange&&(e+=" q-date__edit-range"+(!0===t.editRangeFrom?"-from":"")+(!0===t.editRangeTo?"-to":"")),void 0===t.range&&!0!==t.editRange||(e+=" text-"+t.color)),t.classes=e}),e},attrs:function(){return!0===this.disable?{"aria-disabled":"true"}:!0===this.readonly?{"aria-readonly":"true"}:void 0}},methods:{setToday:function(){var t=this.today,e=this.daysMap[this.__getMonthHash(t)];void 0!==e&&!1!==e.includes(t.day)||this.__addToModel(t),this.setCalendarTo(this.today.year,this.today.month)},setView:function(t){!0===Bs(t)&&(this.view=t)},offsetCalendar:function(t,e){["month","year"].includes(t)&&this["__goTo"+("month"===t?"Month":"Year")](!0===e?-1:1)},setCalendarTo:function(t,e){this.view="Calendar",this.__updateViewModel(t,e)},setEditingRange:function(t,e){if(!1!==this.range&&t){var i=Object.assign(Object.assign({},this.viewModel),t),n=void 0!==e?Object.assign(Object.assign({},this.viewModel),e):i;this.editRange={init:i,initHash:this.__getDayHash(i),final:n,finalHash:this.__getDayHash(n)},this.setCalendarTo(i.year,i.month)}else this.editRange=void 0},__getMask:function(){return"persian"===this.calendar?"YYYY/MM/DD":this.mask},__decodeString:function(t,e,i){return ps(t,e,i,this.calendar,{hour:0,minute:0,second:0,millisecond:0})},__getViewModel:function(t,e){var i=!0===Array.isArray(this.value)?this.value:this.value?[this.value]:[];if(0===i.length)return this.__getDefaultViewModel();var n=this.__decodeString(void 0!==i[0].from?i[0].from:i[0],t,e);return null===n.dateHash?this.__getDefaultViewModel():n},__getDefaultViewModel:function(){var t,e;if(void 0!==this.defaultYearMonth){var i=this.defaultYearMonth.split("/");t=parseInt(i[0],10),e=parseInt(i[1],10)}else{var n=void 0!==this.today?this.today:this.__getCurrentDate();t=n.year,e=n.month}return{year:t,month:e,day:1,hour:0,minute:0,second:0,millisecond:0,dateHash:t+"/"+dt(e)+"/01"}},__getHeader:function(t){var e=this;if(!0!==this.minimal)return t("div",{staticClass:"q-date__header",class:this.headerClass},[t("div",{staticClass:"relative-position"},[t("transition",{props:{name:"q-transition--fade"}},[t("div",{key:"h-yr-"+this.headerSubtitle,staticClass:"q-date__header-subtitle q-date__header-link",class:"Years"===this.view?"q-date__header-link--active":"cursor-pointer",attrs:{tabindex:this.computedTabindex},on:ft(this,"vY",{click:function(){e.view="Years"},keyup:function(t){13===t.keyCode&&(e.view="Years")}})},[this.headerSubtitle])])]),t("div",{staticClass:"q-date__header-title relative-position flex no-wrap"},[t("div",{staticClass:"relative-position col"},[t("transition",{props:{name:"q-transition--fade"}},[t("div",{key:"h-sub"+this.headerTitle,staticClass:"q-date__header-title-label q-date__header-link",class:"Calendar"===this.view?"q-date__header-link--active":"cursor-pointer",attrs:{tabindex:this.computedTabindex},on:ft(this,"vC",{click:function(){e.view="Calendar"},keyup:function(t){13===t.keyCode&&(e.view="Calendar")}})},[this.headerTitle])])]),!0===this.todayBtn?t(Be,{staticClass:"q-date__header-today self-start",props:{icon:this.$q.iconSet.datetime.today,flat:!0,size:"sm",round:!0,tabindex:this.computedTabindex},on:ft(this,"today",{click:this.setToday})}):null])])},__getNavigation:function(t,e){var i=this,n=e.label,s=e.view,o=e.key,r=e.dir,a=e.goTo,l=e.boundaries,c=e.cls;return[t("div",{staticClass:"row items-center q-date__arrow"},[t(Be,{props:{round:!0,dense:!0,size:"sm",flat:!0,icon:this.dateArrow[0],tabindex:this.computedTabindex,disable:!1===l.prev},on:ft(this,"go-#"+s,{click:function(){a(-1)}})})]),t("div",{staticClass:"relative-position overflow-hidden flex flex-center"+c},[t("transition",{props:{name:"q-transition--jump-"+r}},[t("div",{key:o},[t(Be,{props:{flat:!0,dense:!0,noCaps:!0,label:n,tabindex:this.computedTabindex},on:ft(this,"view#"+s,{click:function(){i.view=s}})})])])]),t("div",{staticClass:"row items-center q-date__arrow"},[t(Be,{props:{round:!0,dense:!0,size:"sm",flat:!0,icon:this.dateArrow[1],tabindex:this.computedTabindex,disable:!1===l.next},on:ft(this,"go+#"+s,{click:function(){a(1)}})})])]},__getCalendarView:function(t){var e=this;return[t("div",{key:"calendar-view",staticClass:"q-date__view q-date__calendar"},[t("div",{staticClass:"q-date__navigation row items-center no-wrap"},this.__getNavigation(t,{label:this.innerLocale.months[this.viewModel.month-1],view:"Months",key:this.viewModel.month,dir:this.monthDirection,goTo:this.__goToMonth,boundaries:this.navBoundaries.month,cls:" col"}).concat(this.__getNavigation(t,{label:this.viewModel.year,view:"Years",key:this.viewModel.year,dir:this.yearDirection,goTo:this.__goToYear,boundaries:this.navBoundaries.year,cls:""}))),t("div",{staticClass:"q-date__calendar-weekdays row items-center no-wrap"},this.daysOfWeek.map(function(e){return t("div",{staticClass:"q-date__calendar-item"},[t("div",[e])])})),t("div",{staticClass:"q-date__calendar-days-container relative-position overflow-hidden"},[t("transition",{props:{name:"q-transition--slide-"+this.monthDirection}},[t("div",{key:this.viewMonthHash,staticClass:"q-date__calendar-days fit"},this.days.map(function(i){return t("div",{staticClass:i.classes},[!0===i.in?t(Be,{staticClass:!0===i.today?"q-date__today":null,props:{dense:!0,flat:i.flat,unelevated:i.unelevated,color:i.color,textColor:i.textColor,label:i.i,tabindex:e.computedTabindex},on:ft(e,"day#"+i.i,{click:function(){e.__onDayClick(i.i)},mouseover:function(){e.__onDayMouseover(i.i)}})},!1!==i.event?[t("div",{staticClass:"q-date__event bg-"+i.event})]:null):t("div",[i.i])])}))])])])]},__getMonthsView:function(t){var e=this,i=this.viewModel.year===this.today.year,n=this.innerLocale.monthsShort.map(function(n,s){var o=e.viewModel.month===s+1;return t("div",{staticClass:"q-date__months-item flex flex-center"},[t(Be,{staticClass:!0===i&&e.today.month===s+1?"q-date__today":null,props:{flat:!0!==o,label:n,unelevated:o,color:!0===o?e.computedColor:null,textColor:!0===o?e.computedTextColor:null,tabindex:e.computedTabindex,disable:function(t){return void 0!==e.minNav&&e.viewModel.year===e.minNav.year&&e.minNav.month>t||void 0!==e.maxNav&&e.viewModel.year===e.maxNav.year&&e.maxNav.montht||void 0!==e.maxNav&&e.maxNav.year=this.maxNav.year&&(t=this.maxNav.year,e>this.maxNav.month&&(e=this.maxNav.month));var n=t+"/"+dt(e)+"/01";n!==this.viewModel.dateHash&&(this.monthDirection=this.viewModel.dateHashs}),r=this.rangeModel.filter(function(t){var e=t.from;return t.to.dateHashs});e=o.concat(r).concat(t).map(function(t){return i.__encodeEntry(t)})}else{var a=this.normalizedModel.slice();a.push(this.__encodeEntry(t)),e=a}else e=this.__encodeEntry(t);this.__emitValue(e,"add",t)},__removeFromModel:function(t){if(!0!==this.noUnset){var e=null;if(!0===this.multiple&&!0===Array.isArray(this.value)){var i=this.__encodeEntry(t);0===(e=void 0!==t.from?this.value.filter(function(t){return void 0===t.from||t.from!==i.from&&t.to!==i.to}):this.value.filter(function(t){return t!==i})).length&&(e=null)}this.__emitValue(e,"remove",t)}},__updateValue:function(t,e,i){var n=this,s=this.daysModel.concat(this.rangeModel).map(function(i){return n.__encodeEntry(i,t,e)}).filter(function(t){return void 0!==t.from?null!==t.from.dateHash&&null!==t.to.dateHash:null!==t.dateHash});this.$emit("input",(!0===this.multiple?s:s[0])||null,i)}},render:function(t){var e=[t("div",{staticClass:"q-date__content col relative-position"},[t("transition",{props:{name:"q-transition--fade"}},[this["__get"+this.view+"View"](t)])])],i=Ot(this,"default");return void 0!==i&&e.push(t("div",{staticClass:"q-date__actions"},i)),void 0!==this.name&&!0!==this.disable&&this.__injectFormInput(e,"push"),t("div",{class:this.classes,attrs:this.attrs,on:Object.assign({},this.qListeners)},[this.__getHeader(t),t("div",{staticClass:"q-date__main col column",attrs:{tabindex:-1},ref:"blurTarget"},e)])}}),Ps={methods:{__addHistory:function(){var t=this;this.__historyEntry={condition:function(){return!0===t.hideOnRouteChange},handler:this.hide},P.add(this.__historyEntry)},__removeHistory:function(){void 0!==this.__historyEntry&&(P.remove(this.__historyEntry),this.__historyEntry=void 0)}},beforeDestroy:function(){!0===this.showing&&this.__removeHistory()}},As=0,Is=!1;function Ds(t){(function(t){if(t.target===document.body||t.target.classList.contains("q-layout__backdrop"))return!0;for(var e=v(t),i=t.shiftKey&&!t.deltaX,n=!i&&Math.abs(t.deltaX)<=Math.abs(t.deltaY),s=i||n?t.deltaY:t.deltaX,o=0;o0&&r.scrollTop+r.clientHeight===r.scrollHeight:s<0&&0===r.scrollLeft||s>0&&r.scrollLeft+r.clientWidth===r.scrollWidth}return!0})(t)&&S(t)}function Rs(t){t.target===document&&(document.scrollingElement.scrollTop=document.scrollingElement.scrollTop)}function Fs(t){!0!==Is&&(Is=!0,requestAnimationFrame(function(){Is=!1;var e=t.target.height,i=document.scrollingElement,n=i.clientHeight,s=i.scrollTop;void 0!==qs&&e===window.innerHeight||(qs=n-e,document.scrollingElement.scrollTop=s),s>qs&&(document.scrollingElement.scrollTop-=Math.ceil((s-qs)/8))}))}function js(t){var e=document.body,i=void 0!==window.visualViewport;if("add"===t){var n=window.getComputedStyle(e).overflowY;xs=ri(window),ks=oi(window),Ts=e.style.left,Ms=e.style.top,e.style.left="-"+xs+"px",e.style.top="-"+ks+"px","hidden"!==n&&("scroll"===n||e.scrollHeight>window.innerHeight)&&e.classList.add("q-body--force-scrollbar"),e.classList.add("q-body--prevent-scroll"),document.qScrollPrevented=!0,!0===c.is.ios&&(!0===i?(window.scrollTo(0,0),window.visualViewport.addEventListener("resize",Fs,h.passiveCapture),window.visualViewport.addEventListener("scroll",Fs,h.passiveCapture),window.scrollTo(0,0)):window.addEventListener("scroll",Rs,h.passiveCapture))}!0===c.is.desktop&&!0===c.is.mac&&window[t+"EventListener"]("wheel",Ds,h.notPassive),"remove"===t&&(!0===c.is.ios&&(!0===i?(window.visualViewport.removeEventListener("resize",Fs,h.passiveCapture),window.visualViewport.removeEventListener("scroll",Fs,h.passiveCapture)):window.removeEventListener("scroll",Rs,h.passiveCapture)),e.classList.remove("q-body--prevent-scroll"),e.classList.remove("q-body--force-scrollbar"),document.qScrollPrevented=!1,e.style.left=Ts,e.style.top=Ms,window.scrollTo(xs,ks),qs=void 0)}function Vs(t){var e="add";if(!0===t){if(As++,void 0!==$s)return clearTimeout($s),void($s=void 0);if(As>1)return}else{if(0===As)return;if(--As>0)return;if(e="remove",!0===c.is.ios&&!0===c.is.nativeMobile)return clearTimeout($s),void($s=setTimeout(function(){js(e),$s=void 0},100))}js(e)}var Ns={methods:{__preventScroll:function(t){t===this.preventedScroll||void 0===this.preventedScroll&&!0!==t||(this.preventedScroll=t,Vs(t))}}},Hs=0,Qs={standard:"fixed-full flex-center",top:"fixed-top justify-center",bottom:"fixed-bottom justify-center",right:"fixed-right items-center",left:"fixed-left items-center"},Ws={standard:["scale","scale"],top:["slide-down","slide-up"],bottom:["slide-up","slide-down"],right:["slide-left","slide-right"],left:["slide-right","slide-left"]},Ys=t.extend({name:"QDialog",mixins:[bt,Ps,Ie,He,Ns],props:{persistent:Boolean,autoClose:Boolean,noEscDismiss:Boolean,noBackdropDismiss:Boolean,noRouteDismiss:Boolean,noRefocus:Boolean,noFocus:Boolean,noShake:Boolean,seamless:Boolean,maximized:Boolean,fullWidth:Boolean,fullHeight:Boolean,square:Boolean,position:{type:String,default:"standard",validator:function(t){return"standard"===t||["top","bottom","left","right"].includes(t)}},transitionShow:String,transitionHide:String},data:function(){return{transitionState:this.showing,animating:!1}},watch:{showing:function(t){var e=this;this.transitionShowComputed!==this.transitionHideComputed&&this.$nextTick(function(){e.transitionState=t})},maximized:function(t){!0===this.showing&&this.__updateMaximized(t)},useBackdrop:function(t){this.__preventScroll(t),this.__preventFocusout(t)}},computed:{classes:function(){return"q-dialog__inner--"+(!0===this.maximized?"maximized":"minimized")+" q-dialog__inner--"+this.position+" "+Qs[this.position]+(!0===this.animating?" q-dialog__inner--animating":"")+(!0===this.fullWidth?" q-dialog__inner--fullwidth":"")+(!0===this.fullHeight?" q-dialog__inner--fullheight":"")+(!0===this.square?" q-dialog__inner--square":"")},transitionShowComputed:function(){return"q-transition--"+(void 0===this.transitionShow?Ws[this.position][0]:this.transitionShow)},transitionHideComputed:function(){return"q-transition--"+(void 0===this.transitionHide?Ws[this.position][1]:this.transitionHide)},transition:function(){return!0===this.transitionState?this.transitionHideComputed:this.transitionShowComputed},useBackdrop:function(){return!0===this.showing&&!0!==this.seamless},hideOnRouteChange:function(){return!0!==this.persistent&&!0!==this.noRouteDismiss&&!0!==this.seamless},onEvents:function(){var t=Object.assign({},this.qListeners,{input:b,"popup-show":b,"popup-hide":b});return!0===this.autoClose&&(t.click=this.__onAutoClose),t}},methods:{focus:function(t){var e=this;Ve(function(){var i=e.__getInnerNode();void 0!==i&&!0!==i.contains(document.activeElement)&&(i=i.querySelector(t||"[autofocus], [data-autofocus]")||i).focus({preventScroll:!0})})},shake:function(){this.focus(),this.$emit("shake");var t=this.__getInnerNode();void 0!==t&&(t.classList.remove("q-animate--scale"),t.classList.add("q-animate--scale"),clearTimeout(this.shakeTimeout),this.shakeTimeout=setTimeout(function(){t.classList.remove("q-animate--scale")},170))},__getInnerNode:function(){return void 0!==this.__portal&&void 0!==this.__portal.$refs?this.__portal.$refs.inner:void 0},__show:function(t){var e=this;this.__addHistory(),this.__refocusTarget=!0!==c.is.mobile&&!1===this.noRefocus&&null!==document.activeElement?document.activeElement:void 0,this.$el.dispatchEvent(C("popup-show",{bubbles:!0})),this.__updateMaximized(this.maximized),wi.register(this,function(){!0!==e.seamless&&(!0===e.persistent||!0===e.noEscDismiss?!0!==e.maximized&&!0!==e.noShake&&e.shake():(e.$emit("escape-key"),e.hide()))}),this.__showPortal(),this.animating=!0,!0!==this.noFocus&&(null!==document.activeElement&&document.activeElement.blur(),this.__nextTick(this.focus)),this.__setTimeout(function(){if(!0===e.$q.platform.is.ios){if(!0!==e.seamless&&document.activeElement){var i=document.activeElement.getBoundingClientRect(),n=i.top,s=i.bottom,o=window.innerHeight,r=void 0!==window.visualViewport?window.visualViewport.height:o;n>0&&s>r/2&&(document.scrollingElement.scrollTop=Math.min(document.scrollingElement.scrollHeight-r,s>=o?1/0:Math.ceil(document.scrollingElement.scrollTop+s-r/2))),document.activeElement.scrollIntoView()}e.__portal.$el.click()}e.animating=!1,e.__showPortal(!0),e.$emit("show",t)},300)},__hide:function(t){var e=this;this.__removeHistory(),this.__cleanup(!0),this.__hidePortal(),this.animating=!0,void 0!==this.__refocusTarget&&null!==this.__refocusTarget&&(this.__refocusTarget.focus(t),this.__refocusTarget=void 0),this.$el.dispatchEvent(C("popup-hide",{bubbles:!0})),this.__setTimeout(function(){e.__hidePortal(!0),e.animating=!1,e.$emit("hide",t)},300)},__cleanup:function(t){clearTimeout(this.shakeTimeout),!0!==t&&!0!==this.showing||(wi.pop(this),this.__updateMaximized(!1),!0!==this.seamless&&(this.__preventScroll(!1),this.__preventFocusout(!1)))},__updateMaximized:function(t){!0===t?!0!==this.isMaximized&&(Hs<1&&document.body.classList.add("q-body--dialog"),Hs++,this.isMaximized=!0):!0===this.isMaximized&&(Hs<2&&document.body.classList.remove("q-body--dialog"),Hs--,this.isMaximized=!1)},__preventFocusout:function(t){if(!0===this.$q.platform.is.desktop){var e=(!0===t?"add":"remove")+"EventListener";document.body[e]("focusin",this.__onFocusChange)}},__onAutoClose:function(t){this.hide(t),void 0!==this.qListeners.click&&this.$emit("click",t)},__onBackdropClick:function(t){!0!==this.persistent&&!0!==this.noBackdropDismiss?this.hide(t):!0!==this.noShake&&this.shake()},__onFocusChange:function(t){!0===this.__portalIsAccessible&&!0!==function(t,e){if(void 0===t||!0===t.contains(e))return!0;for(var i=t.nextElementSibling;null!==i;i=i.nextElementSibling)if(i.contains(e))return!0;return!1}(this.__portal.$el,t.target)&&this.focus('[tabindex]:not([tabindex="-1"])')},__renderPortal:function(t){return t("div",{staticClass:"q-dialog fullscreen no-pointer-events q-dialog--"+(!0===this.useBackdrop?"modal":"seamless"),class:this.contentClass,style:this.contentStyle,attrs:this.qAttrs},[t("transition",{props:{name:"q-transition--fade"}},!0===this.useBackdrop?[t("div",{staticClass:"q-dialog__backdrop fixed-full",attrs:gt,on:ft(this,"bkdrop",{click:this.__onBackdropClick})})]:null),t("transition",{props:{name:this.transition}},[!0===this.showing?t("div",{ref:"inner",staticClass:"q-dialog__inner flex no-pointer-events",class:this.classes,attrs:{tabindex:-1},on:this.onEvents},Ot(this,"default")):null])])}},mounted:function(){this.__processModelChange(this.value)},beforeDestroy:function(){this.__cleanup(),this.__refocusTarget=void 0}}),Us=["mouseover","mouseout","mouseenter","mouseleave"],Ks=t.extend({name:"QDrawer",inject:{layout:{default:function(){console.error("QDrawer needs to be child of QLayout")}}},mixins:[Gt,Ps,Ie,Ns],directives:{TouchPan:xn},props:{side:{type:String,default:"left",validator:function(t){return["left","right"].includes(t)}},width:{type:Number,default:300},mini:Boolean,miniToOverlay:Boolean,miniWidth:{type:Number,default:57},breakpoint:{type:Number,default:1023},showIfAbove:Boolean,behavior:{type:String,validator:function(t){return["default","desktop","mobile"].includes(t)},default:"default"},bordered:Boolean,elevated:Boolean,contentStyle:[String,Object,Array],contentClass:[String,Object,Array],overlay:Boolean,persistent:Boolean,noSwipeOpen:Boolean,noSwipeClose:Boolean,noSwipeBackdrop:Boolean},data:function(){var t="mobile"===this.behavior||"desktop"!==this.behavior&&this.layout.totalWidth<=this.breakpoint;return{belowBreakpoint:t,showing:!0===this.showIfAbove&&!1===t||!0===this.value}},watch:{belowBreakpoint:function(t){!0===t?(this.lastDesktopState=this.showing,!0===this.showing&&this.hide(!1)):!1===this.overlay&&"mobile"!==this.behavior&&!1!==this.lastDesktopState&&(!0===this.showing?(this.__applyPosition(0),this.__applyBackdrop(0),this.__cleanup()):this.show(!1))},"layout.totalWidth":function(){!0!==this.layout.container&&!0===document.qScrollPrevented||this.__updateBelowBreakpoint()},side:function(t,e){this.layout.instances[e]===this&&(this.layout.instances[e]=void 0,this.layout[e].space=!1,this.layout[e].offset=0),this.layout.instances[t]=this,this.layout[t].size=this.size,this.layout[t].space=this.onLayout,this.layout[t].offset=this.offset},behavior:function(){this.__updateBelowBreakpoint()},breakpoint:function(){this.__updateBelowBreakpoint()},"layout.container":function(t){!0===this.showing&&this.__preventScroll(!0!==t),!0===t&&this.__updateBelowBreakpoint()},"layout.scrollbarWidth":function(){this.__applyPosition(!0===this.showing?0:void 0)},offset:function(t){this.__update("offset",t)},onLayout:function(t){this.$emit("on-layout",t),this.__update("space",t)},rightSide:function(){this.__applyPosition()},size:function(t){this.__applyPosition(),this.__updateSizeOnLayout(this.miniToOverlay,t)},miniToOverlay:function(t){this.__updateSizeOnLayout(t,this.size)},"$q.lang.rtl":function(){this.__applyPosition()},mini:function(){!0===this.value&&(this.__animateMini(),this.layout.__animate())},isMini:function(t){this.$emit("mini-state",t)}},computed:{rightSide:function(){return"right"===this.side},otherSide:function(){return!0===this.rightSide?"left":"right"},offset:function(){return!0===this.showing&&!1===this.belowBreakpoint&&!1===this.overlay?!0===this.miniToOverlay?this.miniWidth:this.size:0},size:function(){return!0===this.isMini?this.miniWidth:this.width},fixed:function(){return!0===this.overlay||!0===this.miniToOverlay||this.layout.view.indexOf(this.rightSide?"R":"L")>-1||this.$q.platform.is.ios&&!0===this.layout.container},onLayout:function(){return!0===this.showing&&!1===this.belowBreakpoint&&!1===this.overlay},onScreenOverlay:function(){return!0===this.showing&&!1===this.belowBreakpoint&&!0===this.overlay},backdropClass:function(){return!1===this.showing?"hidden":null},headerSlot:function(){return!0===this.rightSide?"r"===this.layout.rows.top[2]:"l"===this.layout.rows.top[0]},footerSlot:function(){return!0===this.rightSide?"r"===this.layout.rows.bottom[2]:"l"===this.layout.rows.bottom[0]},aboveStyle:function(){var t={};return!0===this.layout.header.space&&!1===this.headerSlot&&(!0===this.fixed?t.top=this.layout.header.offset+"px":!0===this.layout.header.space&&(t.top=this.layout.header.size+"px")),!0===this.layout.footer.space&&!1===this.footerSlot&&(!0===this.fixed?t.bottom=this.layout.footer.offset+"px":!0===this.layout.footer.space&&(t.bottom=this.layout.footer.size+"px")),t},style:function(){var t={width:this.size+"px"};return!0===this.belowBreakpoint?t:Object.assign(t,this.aboveStyle)},classes:function(){return"q-drawer--"+this.side+(!0===this.bordered?" q-drawer--bordered":"")+(!0===this.isDark?" q-drawer--dark q-dark":"")+(!0!==this.showing?" q-layout--prevent-focus":"")+(!0===this.belowBreakpoint?" fixed q-drawer--on-top q-drawer--mobile q-drawer--top-padding":" q-drawer--"+(!0===this.isMini?"mini":"standard")+(!0===this.fixed||!0!==this.onLayout?" fixed":"")+(!0===this.overlay||!0===this.miniToOverlay?" q-drawer--on-top":"")+(!0===this.headerSlot?" q-drawer--top-padding":""))},stateDirection:function(){return(!0===this.$q.lang.rtl?-1:1)*(!0===this.rightSide?1:-1)},isMini:function(){return!0===this.mini&&!0!==this.belowBreakpoint},onNativeEvents:function(){var t=this;if(!0!==this.belowBreakpoint){var e={"!click":function(e){t.$emit("click",e)}};return Us.forEach(function(i){e[i]=function(e){void 0!==t.qListeners[i]&&t.$emit(i,e)}}),e}},hideOnRouteChange:function(){return!0!==this.persistent&&(!0===this.belowBreakpoint||!0===this.onScreenOverlay)},openDirective:function(){var t,e=!0===this.$q.lang.rtl?this.side:this.otherSide;return[{name:"touch-pan",value:this.__openByTouch,modifiers:(t={},t[e]=!0,t.mouse=!0,t)}]},contentCloseDirective:function(){var t;if(!0!==this.noSwipeClose){var e=!0===this.$q.lang.rtl?this.otherSide:this.side;return[{name:"touch-pan",value:this.__closeByTouch,modifiers:(t={},t[e]=!0,t.mouse=!0,t)}]}},backdropCloseDirective:function(){var t;if(!0!==this.noSwipeBackdrop){var e=!0===this.$q.lang.rtl?this.otherSide:this.side;return[{name:"touch-pan",value:this.__closeByTouch,modifiers:(t={},t[e]=!0,t.mouse=!0,t.mouseAllDir=!0,t)}]}}},methods:{__applyPosition:function(t){var e=this;void 0===t?this.$nextTick(function(){t=!0===e.showing?0:e.size,e.__applyPosition(e.stateDirection*t)}):void 0!==this.$refs.content&&(!0!==this.layout.container||!0!==this.rightSide||!0!==this.belowBreakpoint&&Math.abs(t)!==this.size||(t+=this.stateDirection*this.layout.scrollbarWidth),this.__lastPosition!==t&&(this.$refs.content.style.transform="translateX("+t+"px)",this.__lastPosition=t))},__applyBackdrop:function(t,e){var i=this;void 0!==this.$refs.backdrop?this.$refs.backdrop.style.backgroundColor=this.lastBackdropBg="rgba(0,0,0,"+.4*t+")":!0!==e&&this.$nextTick(function(){i.__applyBackdrop(t,!0)})},__setBackdropVisible:function(t){void 0!==this.$refs.backdrop&&this.$refs.backdrop.classList[!0===t?"remove":"add"]("hidden")},__setScrollable:function(t){var e=!0===t?"remove":!0!==this.layout.container?"add":"";""!==e&&document.body.classList[e]("q-body--drawer-toggle")},__animateMini:function(){var t=this;void 0!==this.timerMini?clearTimeout(this.timerMini):void 0!==this.$el&&this.$el.classList.add("q-drawer--mini-animate"),this.timerMini=setTimeout(function(){void 0!==t.$el&&t.$el.classList.remove("q-drawer--mini-animate"),t.timerMini=void 0},150)},__openByTouch:function(t){if(!1===this.showing){var e=this.size,i=ut(t.distance.x,0,e);if(!0===t.isFinal){var n=this.$refs.content,s=i>=Math.min(75,e);return n.classList.remove("no-transition"),void(!0===s?this.show():(this.layout.__animate(),this.__applyBackdrop(0),this.__applyPosition(this.stateDirection*e),n.classList.remove("q-drawer--delimiter"),n.classList.add("q-layout--prevent-focus"),this.__setBackdropVisible(!1)))}if(this.__applyPosition((!0===this.$q.lang.rtl?!0!==this.rightSide:this.rightSide)?Math.max(e-i,0):Math.min(0,i-e)),this.__applyBackdrop(ut(i/e,0,1)),!0===t.isFirst){var o=this.$refs.content;o.classList.add("no-transition"),o.classList.add("q-drawer--delimiter"),o.classList.remove("q-layout--prevent-focus"),this.__setBackdropVisible(!0)}}},__closeByTouch:function(t){if(!0===this.showing){var e=this.size,i=t.direction===this.side,n=(!0===this.$q.lang.rtl?!0!==i:i)?ut(t.distance.x,0,e):0;if(!0===t.isFinal){var s=Math.abs(n)0},ao.range.get=function(){var t=this.selection;return null!==t&&t.rangeCount?t.getRangeAt(0):this._range},ao.parent.get=function(){var t=this.range;if(null!==t){var e=t.startContainer;return e.nodeType===document.ELEMENT_NODE?e:e.parentNode}return null},ao.blockParent.get=function(){var t=this.parent;return null!==t?function t(e,i){if(i&&e===i)return null;var n=e.nodeName.toLowerCase();if(!0===["div","li","ul","ol","blockquote"].includes(n))return e;var s=(window.getComputedStyle?window.getComputedStyle(e):e.currentStyle).display;return"block"===s||"table"===s?e:t(e.parentNode)}(t,this.el):null},ro.prototype.save=function(t){void 0===t&&(t=this.range),null!==t&&(this._range=t)},ro.prototype.restore=function(t){void 0===t&&(t=this._range);var e=document.createRange(),i=document.getSelection();null!==t?(e.setStart(t.startContainer,t.startOffset),e.setEnd(t.endContainer,t.endOffset),i.removeAllRanges(),i.addRange(e)):(i.selectAllChildren(this.el),i.collapseToEnd())},ro.prototype.savePosition=function(){var t,e=-1,i=document.getSelection(),n=this.el.parentNode;if(i.focusNode&&so(i.focusNode,n))for(t=i.focusNode,e=i.focusOffset;t&&t!==n;)t!==this.el&&t.previousSibling?e+=(t=t.previousSibling).textContent.length:t=t.parentNode;this.savedPos=e},ro.prototype.restorePosition=function(t){if(void 0===t&&(t=0),this.savedPos>0&&this.savedPos0)if(e.nodeType===Node.TEXT_NODE)e.textContent.length\n \n \n Print - "+document.title+"\n \n \n
"+this.el.innerHTML+"
\n \n \n "),n.print(),void n.close()}if("link"===t){var s=this.getParentAttribute("href");if(null===s){var o=this.selectWord(this.selection),r=o?o.toString():"";if(!(r.length||this.range&&this.range.cloneContents().querySelector("img")))return;this.vm.editLinkUrl=oo.test(r)?r:"https://",document.execCommand("createLink",!1,this.vm.editLinkUrl),this.save(o.getRangeAt(0))}else this.vm.editLinkUrl=s,this.range.selectNodeContents(this.parent),this.save();return}if("fullscreen"===t)return this.vm.toggleFullscreen(),void i();if("viewsource"===t)return this.vm.isViewingSource=!1===this.vm.isViewingSource,this.vm.__setContent(this.vm.value),void i()}document.execCommand(t,!1,e),i()},ro.prototype.selectWord=function(t){if(null===t||!0!==t.isCollapsed||void 0===t.modify)return t;var e=document.createRange();e.setStart(t.anchorNode,t.anchorOffset),e.setEnd(t.focusNode,t.focusOffset);var i=e.collapsed?["backward","forward"]:["forward","backward"];e.detach();var n=t.focusNode,s=t.focusOffset;return t.collapse(t.anchorNode,t.anchorOffset),t.modify("move",i[0],"character"),t.modify("move",i[1],"word"),t.extend(n,s),t.modify("extend",i[1],"character"),t.modify("extend",i[0],"word"),t},Object.defineProperties(ro.prototype,ao);var lo=Object.prototype.toString,co=Object.prototype.hasOwnProperty,uo={};function ho(t){return null===t?String(t):uo[lo.call(t)]||"object"}function po(t){if(!t||"object"!==ho(t))return!1;if(t.constructor&&!co.call(t,"constructor")&&!co.call(t.constructor.prototype,"isPrototypeOf"))return!1;var e;for(e in t);return void 0===e||co.call(t,e)}function fo(){var t,e,i,n,s,o,r=arguments,a=arguments[0]||{},l=1,c=!1,u=arguments.length;for("boolean"==typeof a&&(c=a,a=arguments[1]||{},l=2),Object(a)!==a&&"function"!==ho(a)&&(a={}),u===l&&(a=this,l--);l0},toolbarBackgroundClass:function(){if(this.toolbarBg)return"bg-"+this.toolbarBg},buttonProps:function(){return{type:"a",flat:!0!==this.toolbarOutline&&!0!==this.toolbarPush,noWrap:!0,outline:this.toolbarOutline,push:this.toolbarPush,rounded:this.toolbarRounded,dense:!0,color:this.toolbarColor,disable:!this.editable,size:"sm"}},buttonDef:function(){var t=this.$q.lang.editor,e=this.$q.iconSet.editor;return{bold:{cmd:"bold",icon:e.bold,tip:t.bold,key:66},italic:{cmd:"italic",icon:e.italic,tip:t.italic,key:73},strike:{cmd:"strikeThrough",icon:e.strikethrough,tip:t.strikethrough,key:83},underline:{cmd:"underline",icon:e.underline,tip:t.underline,key:85},unordered:{cmd:"insertUnorderedList",icon:e.unorderedList,tip:t.unorderedList},ordered:{cmd:"insertOrderedList",icon:e.orderedList,tip:t.orderedList},subscript:{cmd:"subscript",icon:e.subscript,tip:t.subscript,htmlTip:"x2"},superscript:{cmd:"superscript",icon:e.superscript,tip:t.superscript,htmlTip:"x2"},link:{cmd:"link",disable:function(t){return t.caret&&!t.caret.can("link")},icon:e.hyperlink,tip:t.hyperlink,key:76},fullscreen:{cmd:"fullscreen",icon:e.toggleFullscreen,tip:t.toggleFullscreen,key:70},viewsource:{cmd:"viewsource",icon:e.viewSource,tip:t.viewSource},quote:{cmd:"formatBlock",param:"BLOCKQUOTE",icon:e.quote,tip:t.quote,key:81},left:{cmd:"justifyLeft",icon:e.left,tip:t.left},center:{cmd:"justifyCenter",icon:e.center,tip:t.center},right:{cmd:"justifyRight",icon:e.right,tip:t.right},justify:{cmd:"justifyFull",icon:e.justify,tip:t.justify},print:{type:"no-state",cmd:"print",icon:e.print,tip:t.print,key:80},outdent:{type:"no-state",disable:function(t){return t.caret&&!t.caret.can("outdent")},cmd:"outdent",icon:e.outdent,tip:t.outdent},indent:{type:"no-state",disable:function(t){return t.caret&&!t.caret.can("indent")},cmd:"indent",icon:e.indent,tip:t.indent},removeFormat:{type:"no-state",cmd:"removeFormat",icon:e.removeFormat,tip:t.removeFormat},hr:{type:"no-state",cmd:"insertHorizontalRule",icon:e.hr,tip:t.hr},undo:{type:"no-state",cmd:"undo",icon:e.undo,tip:t.undo,key:90},redo:{type:"no-state",cmd:"redo",icon:e.redo,tip:t.redo,key:89},h1:{cmd:"formatBlock",param:"H1",icon:e.heading1||e.heading,tip:t.heading1,htmlTip:'

'+t.heading1+"

"},h2:{cmd:"formatBlock",param:"H2",icon:e.heading2||e.heading,tip:t.heading2,htmlTip:'

'+t.heading2+"

"},h3:{cmd:"formatBlock",param:"H3",icon:e.heading3||e.heading,tip:t.heading3,htmlTip:'

'+t.heading3+"

"},h4:{cmd:"formatBlock",param:"H4",icon:e.heading4||e.heading,tip:t.heading4,htmlTip:'

'+t.heading4+"

"},h5:{cmd:"formatBlock",param:"H5",icon:e.heading5||e.heading,tip:t.heading5,htmlTip:'
'+t.heading5+"
"},h6:{cmd:"formatBlock",param:"H6",icon:e.heading6||e.heading,tip:t.heading6,htmlTip:'
'+t.heading6+"
"},p:{cmd:"formatBlock",param:this.paragraphTag.toUpperCase(),icon:e.heading,tip:t.paragraph},code:{cmd:"formatBlock",param:"PRE",icon:e.code,htmlTip:""+t.code+""},"size-1":{cmd:"fontSize",param:"1",icon:e.size1||e.size,tip:t.size1,htmlTip:''+t.size1+""},"size-2":{cmd:"fontSize",param:"2",icon:e.size2||e.size,tip:t.size2,htmlTip:''+t.size2+""},"size-3":{cmd:"fontSize",param:"3",icon:e.size3||e.size,tip:t.size3,htmlTip:''+t.size3+""},"size-4":{cmd:"fontSize",param:"4",icon:e.size4||e.size,tip:t.size4,htmlTip:''+t.size4+""},"size-5":{cmd:"fontSize",param:"5",icon:e.size5||e.size,tip:t.size5,htmlTip:''+t.size5+""},"size-6":{cmd:"fontSize",param:"6",icon:e.size6||e.size,tip:t.size6,htmlTip:''+t.size6+""},"size-7":{cmd:"fontSize",param:"7",icon:e.size7||e.size,tip:t.size7,htmlTip:''+t.size7+""}}},buttons:function(){var t=this,e=this.definitions||{},i=this.definitions||this.fonts?fo(!0,{},this.buttonDef,e,function(t,e,i,n){void 0===n&&(n={});var s=Object.keys(n);if(0===s.length)return{};var o={default_font:{cmd:"fontName",param:t,icon:i,tip:e}};return s.forEach(function(t){var e=n[t];o[t]={cmd:"fontName",param:e,icon:i,tip:e,htmlTip:''+e+""}}),o}(this.defaultFont,this.$q.lang.editor.defaultFont,this.$q.iconSet.editor.font,this.fonts)):this.buttonDef;return this.toolbar.map(function(n){return n.map(function(n){if(n.options)return{type:"dropdown",icon:n.icon,label:n.label,size:"sm",dense:!0,fixedLabel:n.fixedLabel,fixedIcon:n.fixedIcon,highlight:n.highlight,list:n.list,options:n.options.map(function(t){return i[t]})};var s=i[n];return s?"no-state"===s.type||e[n]&&(void 0===s.cmd||t.buttonDef[s.cmd]&&"no-state"===t.buttonDef[s.cmd].type)?s:Object.assign({type:"toggle"},s):{type:"slot",slot:n}})})},keys:function(){var t={},e=function(e){e.key&&(t[e.key]={cmd:e.cmd,param:e.param})};return this.buttons.forEach(function(t){t.forEach(function(t){t.options?t.options.forEach(e):e(t)})}),t},innerStyle:function(){return this.inFullscreen?this.contentStyle:[{minHeight:this.minHeight,height:this.height,maxHeight:this.maxHeight},this.contentStyle]},classes:function(){return"q-editor q-editor--"+(!0===this.isViewingSource?"source":"default")+(!0===this.disable?" disabled":"")+(!0===this.inFullscreen?" fullscreen column":"")+(!0===this.square?" q-editor--square no-border-radius":"")+(!0===this.flat?" q-editor--flat":"")+(!0===this.dense?" q-editor--dense":"")+(!0===this.isDark?" q-editor--dark q-dark":"")},innerClass:function(){return[this.contentClass,{col:this.inFullscreen,"overflow-auto":this.inFullscreen||this.maxHeight}]},attrs:function(){return!0===this.disable?{"aria-disabled":"true"}:!0===this.readonly?{"aria-readonly":"true"}:void 0},onEditor:function(){return{focusin:this.__onFocusin,focusout:this.__onFocusout}}},data:function(){return{lastEmit:this.value,editLinkUrl:null,isViewingSource:!1}},watch:{value:function(t){this.lastEmit!==t&&(this.lastEmit=t,this.__setContent(t,!0))}},methods:{__onInput:function(){if(void 0!==this.$refs.content){var t=!0===this.isViewingSource?this.$refs.content.innerText:this.$refs.content.innerHTML;t!==this.value&&(this.lastEmit=t,this.$emit("input",t))}},__onKeydown:function(t){if(this.$emit("keydown",t),!0!==t.ctrlKey||!0===Z(t))return this.refreshToolbar(),void(this.$q.platform.is.ie&&this.$nextTick(this.__onInput));var e=t.keyCode,i=this.keys[e];if(void 0!==i){var n=i.cmd,s=i.param;S(t),this.runCmd(n,s,!1)}},__onClick:function(t){this.refreshToolbar(),this.$emit("click",t)},__onBlur:function(t){if(void 0!==this.$refs.content){var e=this.$refs.content,i=e.scrollTop,n=e.scrollHeight;this.__offsetBottom=n-i}!0!==this.$q.platform.is.ie&&this.caret.save(),this.$emit("blur",t)},__onFocus:function(t){var e=this;this.$nextTick(function(){void 0!==e.$refs.content&&void 0!==e.__offsetBottom&&(e.$refs.content.scrollTop=e.$refs.content.scrollHeight-e.__offsetBottom)}),this.$emit("focus",t)},__onFocusin:function(t){if(!0===this.$el.contains(t.target)&&(null===t.relatedTarget||!0!==this.$el.contains(t.relatedTarget))){var e="inner"+(!0===this.isViewingSource?"Text":"HTML");this.caret.restorePosition(this.$refs.content[e].length),this.refreshToolbar()}},__onFocusout:function(t){!0!==this.$el.contains(t.target)||null!==t.relatedTarget&&!0===this.$el.contains(t.relatedTarget)||(this.caret.savePosition(),this.refreshToolbar())},__onPointerStart:function(t){this.__offsetBottom=void 0,void 0!==this.qListeners[t.type]&&this.$emit(t.type,t)},__onSelectionchange:function(){this.caret.save()},runCmd:function(t,e,i){var n=this;void 0===i&&(i=!0),this.focus(),this.caret.restore(),this.caret.apply(t,e,function(){n.focus(),n.caret.save(),!0!==n.$q.platform.is.ie&&!0!==n.$q.platform.is.edge||n.$nextTick(n.__onInput),i&&n.refreshToolbar()})},refreshToolbar:function(){var t=this;setTimeout(function(){t.editLinkUrl=null,t.$forceUpdate()},1)},focus:function(){var t=this;Ve(function(){void 0!==t.$refs.content&&t.$refs.content.focus({preventScroll:!0})})},getContentEl:function(){return this.$refs.content},__setContent:function(t,e){if(void 0!==this.$refs.content){!0===e&&this.caret.savePosition();var i="inner"+(!0===this.isViewingSource?"Text":"HTML");this.$refs.content[i]=t,!0===e&&(this.caret.restorePosition(this.$refs.content[i].length),this.refreshToolbar())}}},created:function(){!1===i&&(document.execCommand("defaultParagraphSeparator",!1,this.paragraphTag),this.defaultFont=window.getComputedStyle(document.body).fontFamily)},mounted:function(){this.caret=new ro(this.$refs.content,this),this.__setContent(this.value),this.refreshToolbar(),document.addEventListener("selectionchange",this.__onSelectionchange)},beforeDestroy:function(){document.removeEventListener("selectionchange",this.__onSelectionchange)},render:function(t){var e;if(this.hasToolbar){var n=[t("div",{key:"qedt_top",staticClass:"q-editor__toolbar row no-wrap scroll-x",class:this.toolbarBackgroundClass},no(t,this))];null!==this.editLinkUrl&&n.push(t("div",{key:"qedt_btm",staticClass:"q-editor__toolbar row no-wrap items-center scroll-x",class:this.toolbarBackgroundClass},function(t,e,i){if(e.caret){var n=e.toolbarColor||e.toolbarTextColor,s=e.editLinkUrl,o=function(){e.caret.restore(),s!==e.editLinkUrl&&document.execCommand("createLink",!1,""===s?" ":s),e.editLinkUrl=null,!0===i&&e.$nextTick(e.__onInput)};return[t("div",{staticClass:"q-mx-xs",class:"text-"+n},[e.$q.lang.editor.url+": "]),t("input",{key:"qedt_btm_input",staticClass:"col q-editor__link-input",domProps:{value:s},on:{input:function(t){b(t),s=t.target.value},keydown:function(t){if(!0!==Z(t))switch(t.keyCode){case 13:return y(t),o();case 27:y(t),e.caret.restore(),e.editLinkUrl&&"https://"!==e.editLinkUrl||document.execCommand("unlink"),e.editLinkUrl=null}}}}),eo(t,[t(Be,{key:"qedt_btm_rem",attrs:{tabindex:-1},props:Object.assign({},e.buttonProps,{label:e.$q.lang.label.remove,noCaps:!0}),on:{click:function(){e.caret.restore(),document.execCommand("unlink"),e.editLinkUrl=null,!0===i&&e.$nextTick(e.__onInput)}}}),t(Be,{key:"qedt_btm_upd",props:Object.assign({},e.buttonProps,{label:e.$q.lang.label.update,noCaps:!0}),on:{click:o}})])]}}(t,this,this.$q.platform.is.ie))),e=t("div",{key:"toolbar_ctainer",staticClass:"q-editor__toolbars-container"},n)}var s=Object.assign({},this.qListeners,{input:this.__onInput,keydown:this.__onKeydown,click:this.__onClick,blur:this.__onBlur,focus:this.__onFocus,mousedown:this.__onPointerStart,touchstart:this.__onPointerStart});return t("div",{style:{height:!0===this.inFullscreen?"100%":null},class:this.classes,attrs:this.attrs,on:this.onEditor},[e,t("div",{ref:"content",staticClass:"q-editor__content",style:this.innerStyle,class:this.innerClass,attrs:{contenteditable:this.editable,placeholder:this.placeholder},domProps:i?{innerHTML:this.value}:void 0,on:s})])}}),go=t.extend({name:"QItemLabel",mixins:[Lt],props:{overline:Boolean,caption:Boolean,header:Boolean,lines:[Number,String]},computed:{classes:function(){return{"q-item__label--overline text-overline":this.overline,"q-item__label--caption text-caption":this.caption,"q-item__label--header":this.header,ellipsis:1===parseInt(this.lines,10)}},style:function(){if(void 0!==this.lines&&parseInt(this.lines,10)>1)return{overflow:"hidden",display:"-webkit-box","-webkit-box-orient":"vertical","-webkit-line-clamp":this.lines}}},render:function(t){return t("div",{staticClass:"q-item__label",style:this.style,class:this.classes,on:Object.assign({},this.qListeners)},Ot(this,"default"))}}),_o=t.extend({name:"QSlideTransition",props:{appear:Boolean,duration:{type:Number,default:300}},methods:{__begin:function(t,e,i){t.style.overflowY="hidden",void 0!==e&&(t.style.height=e+"px"),t.style.transition="height "+this.duration+"ms cubic-bezier(.25, .8, .50, 1)",this.animating=!0,this.done=i},__end:function(t,e){t.style.overflowY=null,t.style.height=null,t.style.transition=null,this.__cleanup(),e!==this.lastEvent&&this.$emit(e)},__cleanup:function(){this.done&&this.done(),this.done=null,this.animating=!1,clearTimeout(this.timer),clearTimeout(this.timerFallback),void 0!==this.el&&this.el.removeEventListener("transitionend",this.animListener),this.animListener=null}},beforeDestroy:function(){this.animating&&this.__cleanup()},render:function(t){var e=this;return t("transition",{props:{css:!1,appear:this.appear},on:ft(this,"tr",{enter:function(t,i){var n=0;e.el=t,!0===e.animating?(e.__cleanup(),n=t.offsetHeight===t.scrollHeight?0:void 0):e.lastEvent="hide",e.__begin(t,n,i),e.timer=setTimeout(function(){t.style.height=t.scrollHeight+"px",e.animListener=function(i){Object(i)===i&&i.target!==t||e.__end(t,"show")},t.addEventListener("transitionend",e.animListener),e.timerFallback=setTimeout(e.animListener,1.1*e.duration)},100)},leave:function(t,i){var n;e.el=t,!0===e.animating?e.__cleanup():(e.lastEvent="show",n=t.scrollHeight),e.__begin(t,n,i),e.timer=setTimeout(function(){t.style.height=0,e.animListener=function(i){Object(i)===i&&i.target!==t||e.__end(t,"hide")},t.addEventListener("transitionend",e.animListener),e.timerFallback=setTimeout(e.animListener,1.1*e.duration)},100)}})},Ot(this,"default"))}}),bo={true:"inset",item:"item-inset","item-thumbnail":"item-thumbnail-inset"},yo={xs:2,sm:4,md:8,lg:16,xl:24},So=t.extend({name:"QSeparator",mixins:[Gt,Lt],props:{spaced:[Boolean,String],inset:[Boolean,String],vertical:Boolean,color:String,size:String},computed:{orientation:function(){return!0===this.vertical?"vertical":"horizontal"},classPrefix:function(){return" q-separator--"+this.orientation},insetClass:function(){return!1!==this.inset?this.classPrefix+"-"+bo[this.inset]:""},classes:function(){return"q-separator"+this.classPrefix+this.insetClass+(void 0!==this.color?" bg-"+this.color:"")+(!0===this.isDark?" q-separator--dark":"")},style:function(){var t={};if(void 0!==this.size&&(t[!0===this.vertical?"width":"height"]=this.size),!1!==this.spaced){var e=!0===this.spaced?yo.md+"px":this.spaced in yo?yo[this.spaced]+"px":this.spaced,i=!0===this.vertical?["Left","Right"]:["Top","Bottom"];t["margin"+i[0]]=t["margin"+i[1]]=e}return t},attrs:function(){return{"aria-orientation":this.orientation}}},render:function(t){return t("hr",{staticClass:"q-separator",class:this.classes,style:this.style,attrs:this.attrs,on:Object.assign({},this.qListeners)})}}),wo="q:expansion-item:close",Co=t.extend({name:"QExpansionItem",mixins:[Gt,ae,Ie],props:{icon:String,label:String,labelLines:[Number,String],caption:String,captionLines:[Number,String],dense:Boolean,expandIcon:String,expandedIcon:String,expandIconClass:[Array,String,Object],duration:Number,headerInsetLevel:Number,contentInsetLevel:Number,expandSeparator:Boolean,defaultOpened:Boolean,expandIconToggle:Boolean,switchToggleSide:Boolean,denseToggle:Boolean,group:String,popup:Boolean,headerStyle:[Array,String,Object],headerClass:[Array,String,Object]},data:function(){return{showing:void 0!==this.value?this.value:this.defaultOpened}},watch:{showing:function(t){!0===t&&void 0!==this.group&&this.$root.$emit(wo,this)},group:function(t,e){void 0!==t&&void 0===e?this.$root.$on(wo,this.__eventHandler):void 0===t&&void 0!==e&&this.$root.$off(wo,this.__eventHandler)}},computed:{classes:function(){return"q-expansion-item--"+(!0===this.showing?"expanded":"collapsed")+" q-expansion-item--"+(!0===this.popup?"popup":"standard")},contentStyle:function(){var t;if(void 0!==this.contentInsetLevel)return(t={})["padding"+(!0===this.$q.lang.rtl?"Right":"Left")]=56*this.contentInsetLevel+"px",t},isClickable:function(){return!0===this.hasLink||!0!==this.expandIconToggle},expansionIcon:function(){return void 0!==this.expandedIcon&&!0===this.showing?this.expandedIcon:this.expandIcon||this.$q.iconSet.expansionItem[!0===this.denseToggle?"denseIcon":"icon"]},activeToggleIcon:function(){return!0!==this.disable&&(!0===this.hasLink||!0===this.expandIconToggle)}},methods:{__onHeaderClick:function(t){!0!==this.hasLink&&this.toggle(t),this.$emit("click",t)},__toggleIconKeyboard:function(t){13===t.keyCode&&this.__toggleIcon(t,!0)},__toggleIcon:function(t,e){!0!==e&&void 0!==this.$refs.blurTarget&&this.$refs.blurTarget.focus(),this.toggle(t),S(t)},__eventHandler:function(t){this!==t&&this.group===t.group&&this.hide()},__getToggleIcon:function(t){var e={staticClass:"q-focusable relative-position cursor-pointer"+(!0===this.denseToggle&&!0===this.switchToggleSide?" items-end":""),class:this.expandIconClass,props:{side:!0!==this.switchToggleSide,avatar:this.switchToggleSide}},i=[t(Ut,{staticClass:"q-expansion-item__toggle-icon",class:void 0===this.expandedIcon&&!0===this.showing?"q-expansion-item__toggle-icon--rotated":void 0,props:{name:this.expansionIcon}})];return!0===this.activeToggleIcon&&(Object.assign(e,{attrs:{tabindex:0},on:ft(this,"inpExt",{click:this.__toggleIcon,keyup:this.__toggleIconKeyboard})}),i.unshift(t("div",{ref:"blurTarget",staticClass:"q-expansion-item__toggle-focus q-icon q-focus-helper q-focus-helper--rounded",attrs:{tabindex:-1}}))),t(Js,e,i)},__getHeader:function(t){var e;void 0!==this.$scopedSlots.header?e=[].concat(this.$scopedSlots.header()):(e=[t(Js,[t(go,{props:{lines:this.labelLines}},[this.label||""]),this.caption?t(go,{props:{lines:this.captionLines,caption:!0}},[this.caption]):null])],this.icon&&e[!0===this.switchToggleSide?"push":"unshift"](t(Js,{props:{side:!0===this.switchToggleSide,avatar:!0!==this.switchToggleSide}},[t(Ut,{props:{name:this.icon}})]))),!0!==this.disable&&e[!0===this.switchToggleSide?"unshift":"push"](this.__getToggleIcon(t));var i={ref:"item",style:this.headerStyle,class:this.headerClass,props:{dark:this.isDark,disable:this.disable,dense:this.dense,insetLevel:this.headerInsetLevel}};return!0===this.isClickable&&(i.props.clickable=!0,i[!0===this.hasRouterLink?"nativeOn":"on"]=Object.assign({},this.qListeners,{click:this.__onHeaderClick}),!0===this.hasLink&&(Object.assign(i.props,this.linkProps.props),i.attrs=this.linkProps.attrs)),t(Zs,i,e)},__getContent:function(t){var e=this,i=[this.__getHeader(t),t(_o,{props:{duration:this.duration},on:ft(this,"slide",{show:function(){e.$emit("after-show")},hide:function(){e.$emit("after-hide")}})},[t("div",{staticClass:"q-expansion-item__content relative-position",style:this.contentStyle,directives:[{name:"show",value:this.showing}]},Ot(this,"default"))])];return this.expandSeparator&&i.push(t(So,{staticClass:"q-expansion-item__border q-expansion-item__border--top absolute-top",props:{dark:this.isDark}}),t(So,{staticClass:"q-expansion-item__border q-expansion-item__border--bottom absolute-bottom",props:{dark:this.isDark}})),i}},render:function(t){return t("div",{staticClass:"q-expansion-item q-item-type",class:this.classes},[t("div",{staticClass:"q-expansion-item__container relative-position"},this.__getContent(t))])},created:function(){void 0!==this.group&&this.$root.$on(wo,this.__eventHandler)},beforeDestroy:function(){void 0!==this.group&&this.$root.$off(wo,this.__eventHandler)}}),xo=["top","right","bottom","left"],ko={mixins:[Lt],props:{type:{type:String,default:"a"},outline:Boolean,push:Boolean,flat:Boolean,unelevated:Boolean,color:String,textColor:String,glossy:Boolean,square:Boolean,padding:String,label:{type:[String,Number],default:""},labelPosition:{type:String,default:"right",validator:function(t){return xo.includes(t)}},externalLabel:Boolean,hideLabel:{type:Boolean},labelClass:[Array,String,Object],labelStyle:[Array,String,Object],disable:Boolean,tabindex:[Number,String]},computed:{formClass:function(){return"q-fab--form-"+(!0===this.square?"square":"rounded")},stacked:function(){return!1===this.externalLabel&&["top","bottom"].includes(this.labelPosition)},labelProps:function(){if(!0===this.externalLabel){var t=null===this.hideLabel?!1===this.showing:this.hideLabel;return{action:"push",data:{staticClass:"q-fab__label q-tooltip--style q-fab__label--external q-fab__label--external-"+this.labelPosition+(!0===t?" q-fab__label--external-hidden":""),style:this.labelStyle,class:this.labelClass}}}return{action:["left","top"].includes(this.labelPosition)?"unshift":"push",data:{staticClass:"q-fab__label q-fab__label--internal q-fab__label--internal-"+this.labelPosition+(!0===this.hideLabel?" q-fab__label--internal-hidden":""),style:this.labelStyle,class:this.labelClass}}}}},qo=["up","right","down","left"],To=["left","center","right"],Mo=t.extend({name:"QFab",inheritAttrs:!1,mixins:[ko,bt,Ie],provide:function(){return{__qFab:this}},props:{icon:String,activeIcon:String,hideIcon:Boolean,hideLabel:{default:null},direction:{type:String,default:"right",validator:function(t){return qo.includes(t)}},persistent:Boolean,verticalActionsAlign:{type:String,default:"center",validator:function(t){return To.includes(t)}}},data:function(){return{showing:!0===this.value}},computed:{hideOnRouteChange:function(){return!0!==this.persistent},classes:function(){return"q-fab--align-"+this.verticalActionsAlign+" "+this.formClass+(!0===this.showing?" q-fab--opened":"")},actionsClasses:function(){return"q-fab__actions--"+this.direction+(!0===this.showing?" q-fab__actions--opened":"")},iconHolderClasses:function(){return!0===this.showing?"q-fab__icon-holder--opened":""},attrs:function(){return Object.assign({},{"aria-expanded":!0===this.showing?"true":"false","aria-haspopup":"true"},this.qAttrs)},slotScope:function(){return{opened:this.showing}}},methods:{__onChildClick:function(t){this.hide(t),this.$refs.trigger&&this.$refs.trigger.$el&&this.$refs.trigger.$el.focus()},__getIcon:function(t,e,i){var n=this.$scopedSlots[e],s="q-fab__"+e+" absolute-full";return void 0===n?t(Ut,{staticClass:s,props:{name:this[i]||this.$q.iconSet.fab[i]}}):t("div",{staticClass:s},n(this.slotScope))}},render:function(t){var e=[];return!0!==this.hideIcon&&e.push(t("div",{staticClass:"q-fab__icon-holder",class:this.iconHolderClasses},[this.__getIcon(t,"icon","icon"),this.__getIcon(t,"active-icon","activeIcon")])),""===this.label&&void 0===this.$scopedSlots.label||e[this.labelProps.action](t("div",this.labelProps.data,void 0!==this.$scopedSlots.label?this.$scopedSlots.label(this.slotScope):[this.label])),t("div",{staticClass:"q-fab z-fab row inline justify-center",class:this.classes,on:Object.assign({},this.qListeners)},[t(Be,{ref:"trigger",class:this.formClass,props:Object.assign({},this.$props,{noWrap:!0,stack:this.stacked,align:void 0,icon:void 0,label:void 0,noCaps:!0,fab:!0}),attrs:this.attrs,on:ft(this,"tog",{click:this.toggle})},Et(e,this,"tooltip")),t("div",{staticClass:"q-fab__actions flex no-wrap inline",class:this.actionsClasses},Ot(this,"default"))])}}),$o={start:"self-end",center:"self-center",end:"self-start"},Lo=Object.keys($o),Oo=t.extend({name:"QFabAction",mixins:[ko],props:{icon:{type:String,default:""},anchor:{type:String,validator:function(t){return Lo.includes(t)}},to:[String,Object],replace:Boolean},inject:{__qFab:{default:function(){return{showing:!0,__onChildClick:p}}}},computed:{classes:function(){var t=$o[this.anchor];return this.formClass+(void 0!==t?" "+t:"")},onEvents:function(){return Object.assign({},this.qListeners,{click:this.click})},isDisabled:function(){return!0!==this.__qFab.showing||!0===this.disable}},methods:{click:function(t){this.__qFab.__onChildClick(t),this.$emit("click",t)}},render:function(t){var e=[];return void 0!==this.$scopedSlots.icon?e.push(this.$scopedSlots.icon()):""!==this.icon&&e.push(t(Ut,{props:{name:this.icon}})),""===this.label&&void 0===this.$scopedSlots.label||e[this.labelProps.action](t("div",this.labelProps.data,void 0!==this.$scopedSlots.label?this.$scopedSlots.label():[this.label])),t(Be,{class:this.classes,props:Object.assign({},this.$props,{noWrap:!0,stack:this.stacked,icon:void 0,label:void 0,noCaps:!0,fabMini:!0,disable:this.isDisabled}),on:this.onEvents},Et(e,this,"default"))}}),Bo=[!0,!1,"ondemand"],Eo={props:{value:{},error:{type:Boolean,default:null},errorMessage:String,noErrorIcon:Boolean,rules:Array,reactiveRules:Boolean,lazyRules:{type:[Boolean,String],validator:function(t){return Bo.includes(t)}}},data:function(){return{isDirty:null,innerError:!1,innerErrorMessage:void 0}},watch:{value:function(){this.__validateIfNeeded()},disable:function(t){!0===t?this.__resetValidation():this.__validateIfNeeded(!0)},reactiveRules:{handler:function(t){var e=this;!0===t?void 0===this.unwatchRules&&(this.unwatchRules=this.$watch("rules",function(){e.__validateIfNeeded(!0)})):void 0!==this.unwatchRules&&(this.unwatchRules(),this.unwatchRules=void 0)},immediate:!0},focused:function(t){!0===t?null===this.isDirty&&(this.isDirty=!1):!1===this.isDirty&&(this.isDirty=!0,!0===this.hasActiveRules&&"ondemand"!==this.lazyRules&&!1===this.innerLoading&&this.debouncedValidate())},hasError:function(t){var e=document.getElementById(this.targetUid);null!==e&&e.setAttribute("aria-invalid",!0===t)}},computed:{hasRules:function(){return void 0!==this.rules&&null!==this.rules&&this.rules.length>0},hasActiveRules:function(){return!0!==this.disable&&!0===this.hasRules},hasError:function(){return!0===this.error||!0===this.innerError},computedErrorMessage:function(){return"string"==typeof this.errorMessage&&this.errorMessage.length>0?this.errorMessage:this.innerErrorMessage}},created:function(){this.debouncedValidate=T(this.validate,0)},mounted:function(){this.validateIndex=0},beforeDestroy:function(){void 0!==this.unwatchRules&&this.unwatchRules(),this.debouncedValidate.cancel()},methods:{resetValidation:function(){this.isDirty=null,this.__resetValidation()},validate:function(t){var e=this;if(void 0===t&&(t=this.value),!0!==this.hasActiveRules)return!0;var i=++this.validateIndex;!0!==this.innerLoading&&!0!==this.lazyRules&&(this.isDirty=!0);for(var n=function(t,i){e.innerError!==t&&(e.innerError=t);var n=i||void 0;e.innerErrorMessage!==n&&(e.innerErrorMessage=n),!1!==e.innerLoading&&(e.innerLoading=!1)},s=[],o=0;o0;i--)e.push(Math.floor(256*Math.random()));return e}}(),Do=4096;function Ro(){(void 0===mo||zo+16>Do)&&(zo=0,mo=Io(Do));var t=Array.prototype.slice.call(mo,zo,zo+=16);return t[6]=15&t[6]|64,t[8]=63&t[8]|128,Po[t[0]]+Po[t[1]]+Po[t[2]]+Po[t[3]]+"-"+Po[t[4]]+Po[t[5]]+"-"+Po[t[6]]+Po[t[7]]+"-"+Po[t[8]]+Po[t[9]]+"-"+Po[t[10]]+Po[t[11]]+Po[t[12]]+Po[t[13]]+Po[t[14]]+Po[t[15]]}function Fo(t){return void 0===t?"f_"+Ro():t}var jo=t.extend({name:"QField",mixins:[Gt,Eo,bt],inheritAttrs:!1,props:{label:String,stackLabel:Boolean,hint:String,hideHint:Boolean,prefix:String,suffix:String,labelColor:String,color:String,bgColor:String,filled:Boolean,outlined:Boolean,borderless:Boolean,standout:[Boolean,String],square:Boolean,loading:Boolean,labelSlot:Boolean,bottomSlots:Boolean,hideBottomSpace:Boolean,rounded:Boolean,dense:Boolean,itemAligned:Boolean,counter:Boolean,clearable:Boolean,clearIcon:String,disable:Boolean,readonly:Boolean,autofocus:Boolean,for:String,maxlength:[Number,String],maxValues:[Number,String]},data:function(){return{focused:!1,targetUid:Fo(this.for),innerLoading:!1}},watch:{for:function(t){this.targetUid=Fo(t)}},computed:{editable:function(){return!0!==this.disable&&!0!==this.readonly},hasValue:function(){var t=void 0===this.__getControl?this.value:this.innerValue;return void 0!==t&&null!==t&&(""+t).length>0},computedCounter:function(){if(!1!==this.counter){var t="string"==typeof this.value||"number"==typeof this.value?(""+this.value).length:!0===Array.isArray(this.value)?this.value.length:0,e=void 0!==this.maxlength?this.maxlength:this.maxValues;return t+(void 0!==e?" / "+e:"")}},floatingLabel:function(){return!0===this.stackLabel||!0===this.focused||"string"==typeof this.inputValue&&this.inputValue.length>0||!0!==this.hideSelected&&!0===this.hasValue||void 0!==this.displayValue&&null!==this.displayValue&&(""+this.displayValue).length>0},shouldRenderBottom:function(){return!0===this.bottomSlots||void 0!==this.hint||!0===this.hasRules||!0===this.counter||null!==this.error},classes:function(){var t;return(t={})[this.fieldClass]=void 0!==this.fieldClass,t["q-field--"+this.styleType]=!0,t["q-field--rounded"]=this.rounded,t["q-field--square"]=this.square,t["q-field--focused"]=!0===this.focused,t["q-field--highlighted"]=!0===this.focused||!0===this.hasError,t["q-field--float"]=this.floatingLabel,t["q-field--labeled"]=this.hasLabel,t["q-field--dense"]=this.dense,t["q-field--item-aligned q-item-type"]=this.itemAligned,t["q-field--dark"]=this.isDark,t["q-field--auto-height"]=void 0===this.__getControl,t["q-field--with-bottom"]=!0!==this.hideBottomSpace&&!0===this.shouldRenderBottom,t["q-field--error"]=this.hasError,t["q-field--readonly"]=!0===this.readonly&&!0!==this.disable,t["q-field--disabled"]=!0===this.disable,t},styleType:function(){return!0===this.filled?"filled":!0===this.outlined?"outlined":!0===this.borderless?"borderless":this.standout?"standout":"standard"},contentClass:function(){var t=[];if(!0===this.hasError)t.push("text-negative");else{if("string"==typeof this.standout&&this.standout.length>0&&!0===this.focused)return this.standout;void 0!==this.color&&t.push("text-"+this.color)}return void 0!==this.bgColor&&t.push("bg-"+this.bgColor),t},hasLabel:function(){return!0===this.labelSlot||void 0!==this.label},labelClass:function(){if(void 0!==this.labelColor&&!0!==this.hasError)return"text-"+this.labelColor},controlSlotScope:function(){return{id:this.targetUid,field:this.$el,editable:this.editable,focused:this.focused,floatingLabel:this.floatingLabel,value:this.value,emitValue:this.__emitValue}},bottomSlotScope:function(){return{id:this.targetUid,field:this.$el,editable:this.editable,focused:this.focused,value:this.value,errorMessage:this.computedErrorMessage}},attrs:function(){var t={for:this.targetUid};return!0===this.disable?t["aria-disabled"]="true":!0===this.readonly&&(t["aria-readonly"]="true"),t}},methods:{focus:function(){Ve(this.__focus)},blur:function(){var t;t=this.__focus,De=De.filter(function(e){return e!==t});var e=document.activeElement;null!==e&&this.$el.contains(e)&&e.blur()},__focus:function(){var t=document.activeElement,e=this.$refs.target;void 0===e||null!==t&&t.id===this.targetUid||(!0===e.hasAttribute("tabindex")||(e=e.querySelector("[tabindex]")),null!==e&&e!==t&&e.focus({preventScroll:!0}))},__getContent:function(t){var e=[];return void 0!==this.$scopedSlots.prepend&&e.push(t("div",{staticClass:"q-field__prepend q-field__marginal row no-wrap items-center",key:"prepend",on:this.slotsEvents},this.$scopedSlots.prepend())),e.push(t("div",{staticClass:"q-field__control-container col relative-position row no-wrap q-anchor--skip"},this.__getControlContainer(t))),!0===this.hasError&&!1===this.noErrorIcon&&e.push(this.__getInnerAppendNode(t,"error",[t(Ut,{props:{name:this.$q.iconSet.field.error,color:"negative"}})])),!0===this.loading||!0===this.innerLoading?e.push(this.__getInnerAppendNode(t,"inner-loading-append",void 0!==this.$scopedSlots.loading?this.$scopedSlots.loading():[t(ue,{props:{color:this.color}})])):!0===this.clearable&&!0===this.hasValue&&!0===this.editable&&e.push(this.__getInnerAppendNode(t,"inner-clearable-append",[t(Ut,{staticClass:"q-field__focusable-action",props:{tag:"button",name:this.clearIcon||this.$q.iconSet.field.clear},attrs:_t,on:this.clearableEvents})])),void 0!==this.$scopedSlots.append&&e.push(t("div",{staticClass:"q-field__append q-field__marginal row no-wrap items-center",key:"append",on:this.slotsEvents},this.$scopedSlots.append())),void 0!==this.__getInnerAppend&&e.push(this.__getInnerAppendNode(t,"inner-append",this.__getInnerAppend(t))),void 0!==this.__getControlChild&&e.push(this.__getControlChild(t)),e},__getControlContainer:function(t){var e=[];return void 0!==this.prefix&&null!==this.prefix&&e.push(t("div",{staticClass:"q-field__prefix no-pointer-events row items-center"},[this.prefix])),!0===this.hasShadow&&void 0!==this.__getShadowControl&&e.push(this.__getShadowControl(t)),void 0!==this.__getControl?e.push(this.__getControl(t)):void 0!==this.$scopedSlots.rawControl?e.push(this.$scopedSlots.rawControl()):void 0!==this.$scopedSlots.control&&e.push(t("div",{ref:"target",staticClass:"q-field__native row",attrs:Object.assign({},{tabindex:-1},this.qAttrs,{"data-autofocus":this.autofocus||void 0})},this.$scopedSlots.control(this.controlSlotScope))),!0===this.hasLabel&&e.push(t("div",{staticClass:"q-field__label no-pointer-events absolute ellipsis",class:this.labelClass},[Ot(this,"label",this.label)])),void 0!==this.suffix&&null!==this.suffix&&e.push(t("div",{staticClass:"q-field__suffix no-pointer-events row items-center"},[this.suffix])),e.concat(void 0!==this.__getDefaultSlot?this.__getDefaultSlot(t):Ot(this,"default"))},__getBottom:function(t){var e,i;!0===this.hasError?(i="q--slot-error",void 0!==this.$scopedSlots.error?e=this.$scopedSlots.error(this.bottomSlotScope):void 0!==this.computedErrorMessage&&(e=[t("div",{attrs:{role:"alert"}},[this.computedErrorMessage])],i=this.computedErrorMessage)):!0===this.hideHint&&!0!==this.focused||(i="q--slot-hint",void 0!==this.$scopedSlots.hint?e=this.$scopedSlots.hint(this.bottomSlotScope):void 0!==this.hint&&(e=[t("div",[this.hint])],i=this.hint));var n=!0===this.counter||void 0!==this.$scopedSlots.counter;if(!0!==this.hideBottomSpace||!1!==n||void 0!==e){var s=t("div",{key:i,staticClass:"q-field__messages col"},e);return t("div",{staticClass:"q-field__bottom row items-start q-field__bottom--"+(!0!==this.hideBottomSpace?"animated":"stale")},[!0===this.hideBottomSpace?s:t("transition",{props:{name:"q-transition--field-message"}},[s]),!0===n?t("div",{staticClass:"q-field__counter"},void 0!==this.$scopedSlots.counter?this.$scopedSlots.counter():[this.computedCounter]):null])}},__getInnerAppendNode:function(t,e,i){return null===i?null:t("div",{staticClass:"q-field__append q-field__marginal row no-wrap items-center q-anchor--skip",key:e},i)},__onControlPopupShow:function(t){void 0!==t&&b(t),this.$emit("popup-show",t),this.hasPopupOpen=!0,this.__onControlFocusin(t)},__onControlPopupHide:function(t){void 0!==t&&b(t),this.$emit("popup-hide",t),this.hasPopupOpen=!1,this.__onControlFocusout(t)},__onControlFocusin:function(t){clearTimeout(this.focusoutTimer),!0===this.editable&&!1===this.focused&&(this.focused=!0,this.$emit("focus",t))},__onControlFocusout:function(t,e){var i=this;clearTimeout(this.focusoutTimer),this.focusoutTimer=setTimeout(function(){(!0!==document.hasFocus()||!0!==i.hasPopupOpen&&void 0!==i.$refs&&void 0!==i.$refs.control&&!1===i.$refs.control.contains(document.activeElement))&&(!0===i.focused&&(i.focused=!1,i.$emit("blur",t)),void 0!==e&&e())})},__clearValue:function(t){var e=this;(S(t),!0!==this.$q.platform.is.mobile)?(this.$refs.target||this.$el).focus():!0===this.$el.contains(document.activeElement)&&document.activeElement.blur();"file"===this.type&&(this.$refs.input.value=null),this.$emit("input",null),this.$emit("clear",this.value),this.$nextTick(function(){e.resetValidation(),!0!==e.$q.platform.is.mobile&&(e.isDirty=!1)})},__emitValue:function(t){this.$emit("input",t)}},render:function(t){void 0!==this.__onPreRender&&this.__onPreRender(),void 0!==this.__onPostRender&&this.$nextTick(this.__onPostRender);var e=void 0===this.__getControl&&void 0===this.$scopedSlots.control?Object.assign({},this.qAttrs,{"data-autofocus":this.autofocus||void 0},this.attrs):this.attrs;return t("label",{staticClass:"q-field q-validation-component row no-wrap items-start",class:this.classes,attrs:e},[void 0!==this.$scopedSlots.before?t("div",{staticClass:"q-field__before q-field__marginal row no-wrap items-center",on:this.slotsEvents},this.$scopedSlots.before()):null,t("div",{staticClass:"q-field__inner relative-position col self-stretch"},[t("div",{ref:"control",staticClass:"q-field__control relative-position row no-wrap",class:this.contentClass,attrs:{tabindex:-1},on:this.controlEvents},this.__getContent(t)),!0===this.shouldRenderBottom?this.__getBottom(t):null]),void 0!==this.$scopedSlots.after?t("div",{staticClass:"q-field__after q-field__marginal row no-wrap items-center",on:this.slotsEvents},this.$scopedSlots.after()):null])},created:function(){void 0!==this.__onPreRender&&this.__onPreRender(),this.slotsEvents={click:y},this.clearableEvents={click:this.__clearValue},this.controlEvents=void 0!==this.__getControlEvents?this.__getControlEvents():{focusin:this.__onControlFocusin,focusout:this.__onControlFocusout,"popup-show":this.__onControlPopupShow,"popup-hide":this.__onControlPopupHide}},mounted:function(){!0===n&&void 0===this.for&&(this.targetUid=Fo()),!0===this.autofocus&&this.focus()},activated:function(){!0===this.shouldActivate&&!0===this.autofocus&&this.focus()},deactivated:function(){this.shouldActivate=!0},beforeDestroy:function(){clearTimeout(this.focusoutTimer)}});function Vo(t,e,i,n){var s=[];return t.forEach(function(t){!0===n(t)?s.push(t):e.push({failedPropValidation:i,file:t})}),s}function No(t){t&&t.dataTransfer&&(t.dataTransfer.dropEffect="copy"),S(t)}var Ho={props:{multiple:Boolean,accept:String,capture:String,maxFileSize:[Number,String],maxTotalSize:[Number,String],maxFiles:[Number,String],filter:Function},computed:{extensions:function(){if(void 0!==this.accept)return this.accept.split(",").map(function(t){return"*"===(t=t.trim())?"*/":(t.endsWith("/*")&&(t=t.slice(0,t.length-1)),t.toUpperCase())})},maxFilesNumber:function(){return parseInt(this.maxFiles,10)},maxTotalSizeNumber:function(){return parseInt(this.maxTotalSize,10)}},methods:{pickFiles:function(t){if(!0===this.editable)if(t!==Object(t)&&(t={target:null}),null!==t.target&&!0===t.target.matches('input[type="file"]'))0===t.clientX&&0===t.clientY&&b(t);else{var e=this.__getFileInput();e&&e!==t.target&&e.click(t)}},addFiles:function(t){this.editable&&t&&this.__addFiles(null,t)},__processFiles:function(t,e,i,n){var s=this,o=Array.from(e||t.target.files),r=[],a=function(){r.length>0&&s.$emit("rejected",r)};if(void 0!==this.accept&&-1===this.extensions.indexOf("*/")&&0===(o=Vo(o,r,"accept",function(t){return s.extensions.some(function(e){return t.type.toUpperCase().startsWith(e)||t.name.toUpperCase().endsWith(e)})})).length)return a();if(void 0!==this.maxFileSize){var l=parseInt(this.maxFileSize,10);if(0===(o=Vo(o,r,"max-file-size",function(t){return t.size<=l})).length)return a()}!0!==this.multiple&&o.length>0&&(o=[o[0]]),o.forEach(function(t){t.__key=t.webkitRelativePath+t.lastModified+t.name+t.size});var c=i.map(function(t){return t.__key});if(0===(o=Vo(o,r,"duplicate",function(t){return!1===c.includes(t.__key)})).length)return a();if(void 0!==this.maxTotalSize){var u=!0===n?i.reduce(function(t,e){return t+e.size},0):0;if(0===(o=Vo(o,r,"max-total-size",function(t){return(u+=t.size)<=s.maxTotalSizeNumber})).length)return a()}if("function"==typeof this.filter){var h=this.filter(o);o=Vo(o,r,"filter",function(t){return h.includes(t)})}if(void 0!==this.maxFiles){var d=!0===n?i.length:0;if(0===(o=Vo(o,r,"max-files",function(){return++d<=s.maxFilesNumber})).length)return a()}return a(),o.length>0?o:void 0},__onDragOver:function(t){No(t),!0!==this.dnd&&(this.dnd=!0)},__onDragLeave:function(t){S(t),t.relatedTarget!==this.$refs.dnd&&(this.dnd=!1)},__onDrop:function(t){No(t);var e=t.dataTransfer.files;e.length>0&&this.__addFiles(null,e),this.dnd=!1},__getDnd:function(t,e){if(!0===this.dnd)return t("div",{staticClass:"q-"+e+"__dnd absolute-full",ref:"dnd",on:ft(this,"dnd",{dragenter:No,dragover:No,dragleave:this.__onDragLeave,drop:this.__onDrop})})}}},Qo={computed:{formDomProps:function(){if("file"===this.type)try{var t="DataTransfer"in window?new DataTransfer:"ClipboardEvent"in window?new ClipboardEvent("").clipboardData:void 0;return Object(this.value)===this.value&&("length"in this.value?Array.from(this.value):[this.value]).forEach(function(e){t.items.add(e)}),{files:t.files}}catch(t){return{files:void 0}}}}},Wo=t.extend({name:"QFile",mixins:[jo,Ho,Oi,Qo],props:{value:!0===i?{}:[File,FileList,Array],append:Boolean,useChips:Boolean,displayValue:[String,Number],tabindex:{type:[String,Number],default:0},counterLabel:Function,inputClass:[Array,String,Object],inputStyle:[Array,String,Object]},data:function(){return{dnd:!1}},computed:{innerValue:function(){return Object(this.value)===this.value?"length"in this.value?Array.from(this.value):[this.value]:[]},selectedString:function(){return this.innerValue.map(function(t){return t.name}).join(", ")},totalSize:function(){return lt(this.innerValue.reduce(function(t,e){return t+e.size},0))},counterProps:function(){return{totalSize:this.totalSize,filesNumber:this.innerValue.length,maxFiles:this.maxFiles}},computedCounter:function(){if(void 0!==this.counterLabel)return this.counterLabel(this.counterProps);var t=this.maxFiles;return this.innerValue.length+(void 0!==t?" / "+t:"")+" ("+this.totalSize+")"},inputAttrs:function(){return Object.assign({},{tabindex:-1,type:"file",title:"",accept:this.accept,capture:this.capture,name:this.nameProp},this.qAttrs,{id:this.targetUid,disabled:!0!==this.editable})},isAppending:function(){return!0===this.multiple&&!0===this.append},fieldClass:function(){return"q-file q-field--auto-height"+(!0===this.dnd?" q-file--dnd":"")}},methods:{removeAtIndex:function(t){var e=this.innerValue.slice();e.splice(t,1),this.__emitValue(e)},removeFile:function(t){var e=this.innerValue.findIndex(t);e>-1&&this.removeAtIndex(e)},__emitValue:function(t){this.$emit("input",!0===this.multiple?t:t[0])},__onKeydown:function(t){13===t.keyCode&&y(t)},__onKeyup:function(t){13!==t.keyCode&&32!==t.keyCode||this.pickFiles(t)},__getFileInput:function(){return this.$refs.input},__addFiles:function(t,e){var i=this,n=this.__processFiles(t,e,this.innerValue,this.isAppending);void 0!==n&&((!0===this.multiple?this.value&&n.every(function(t){return i.innerValue.includes(t)}):this.value===n[0])||this.__emitValue(!0===this.isAppending?this.innerValue.concat(n):n))},__getControl:function(t){var e={ref:"target",staticClass:"q-field__native row items-center cursor-pointer",attrs:{tabindex:this.tabindex}};return!0===this.editable&&(e.on=ft(this,"native",{dragover:this.__onDragOver,dragleave:this.__onDragLeave,keydown:this.__onKeydown,keyup:this.__onKeyup})),t("div",e,[this.__getInput(t)].concat(this.__getSelection(t)))},__getControlChild:function(t){return this.__getDnd(t,"file")},__getFiller:function(t){return[t("input",{class:[this.inputClass,"q-file__filler"],style:this.inputStyle})]},__getSelection:function(t){var e=this;if(void 0!==this.$scopedSlots.file)return 0===this.innerValue.length?this.__getFiller(t):this.innerValue.map(function(t,i){return e.$scopedSlots.file({index:i,file:t,ref:e})});if(void 0!==this.$scopedSlots.selected)return 0===this.innerValue.length?this.__getFiller(t):this.$scopedSlots.selected({files:this.innerValue,ref:this});if(!0===this.useChips)return 0===this.innerValue.length?this.__getFiller(t):this.innerValue.map(function(i,n){return t(un,{key:"file-"+n,props:{removable:e.editable,dense:!0,textColor:e.color,tabindex:e.tabindex},on:ft(e,"rem#"+n,{remove:function(){e.removeAtIndex(n)}})},[t("span",{staticClass:"ellipsis",domProps:{textContent:i.name}})])});var i=void 0!==this.displayValue?this.displayValue:this.selectedString;return i.length>0?[t("div",{style:this.inputStyle,class:this.inputClass,domProps:{textContent:i}})]:this.__getFiller(t)},__getInput:function(t){var e={ref:"input",staticClass:"q-field__input fit absolute-full cursor-pointer",attrs:this.inputAttrs,domProps:this.formDomProps,on:ft(this,"input",{change:this.__addFiles})};return!0===this.multiple&&(e.attrs.multiple=!0),t("input",e)}},created:function(){this.type="file"}}),Yo=t.extend({name:"QFooter",mixins:[Lt],inject:{layout:{default:function(){console.error("QFooter needs to be child of QLayout")}}},props:{value:{type:Boolean,default:!0},reveal:Boolean,bordered:Boolean,elevated:Boolean,heightHint:{type:[String,Number],default:50}},data:function(){return{size:parseInt(this.heightHint,10),revealed:!0,windowHeight:s||this.layout.container?0:window.innerHeight}},watch:{value:function(t){this.__update("space",t),this.__updateLocal("revealed",!0),this.layout.__animate()},offset:function(t){this.__update("offset",t)},reveal:function(t){!1===t&&this.__updateLocal("revealed",this.value)},revealed:function(t){this.layout.__animate(),this.$emit("reveal",t)},"layout.scroll":function(){this.__updateRevealed()},"layout.height":function(){this.__updateRevealed()},size:function(){this.__updateRevealed()},"$q.screen.height":function(t){!0!==this.layout.container&&this.__updateLocal("windowHeight",t)}},computed:{fixed:function(){return!0===this.reveal||this.layout.view.indexOf("F")>-1||this.$q.platform.is.ios&&!0===this.layout.container},containerHeight:function(){return!0===this.layout.container?this.layout.containerHeight:this.windowHeight},offset:function(){if(!0!==this.value)return 0;if(!0===this.fixed)return!0===this.revealed?this.size:0;var t=this.layout.scroll.position+this.containerHeight+this.size-this.layout.height;return t>0?t:0},hidden:function(){return!0!==this.value||!0===this.fixed&&!0!==this.revealed},revealOnFocus:function(){return!0===this.value&&!0===this.hidden&&!0===this.reveal},classes:function(){return(!0===this.fixed?"fixed":"absolute")+"-bottom"+(!0===this.bordered?" q-footer--bordered":"")+(!0===this.hidden?" q-footer--hidden":"")+(!0!==this.value?" q-layout--prevent-focus":"")+(!0!==this.value&&!0!==this.fixed?" hidden":"")},style:function(){var t=this.layout.rows.bottom,e={};return"l"===t[0]&&!0===this.layout.left.space&&(e[!0===this.$q.lang.rtl?"right":"left"]=this.layout.left.size+"px"),"r"===t[2]&&!0===this.layout.right.space&&(e[!0===this.$q.lang.rtl?"left":"right"]=this.layout.right.size+"px"),e},onEvents:function(){return Object.assign({},this.qListeners,{focusin:this.__onFocusin,input:b})}},render:function(t){var e=Et([t(Ln,{props:{debounce:0},on:ft(this,"resize",{resize:this.__onResize})})],this,"default");return!0===this.elevated&&e.push(t("div",{staticClass:"q-layout__shadow absolute-full overflow-hidden no-pointer-events"})),t("footer",{staticClass:"q-footer q-layout__section--marginal",class:this.classes,style:this.style,on:this.onEvents},e)},created:function(){this.layout.instances.footer=this,!0===this.value&&this.__update("size",this.size),this.__update("space",this.value),this.__update("offset",this.offset)},beforeDestroy:function(){this.layout.instances.footer===this&&(this.layout.instances.footer=void 0,this.__update("size",0),this.__update("offset",0),this.__update("space",!1))},methods:{__onResize:function(t){var e=t.height;this.__updateLocal("size",e),this.__update("size",e)},__update:function(t,e){this.layout.footer[t]!==e&&(this.layout.footer[t]=e)},__updateLocal:function(t,e){this[t]!==e&&(this[t]=e)},__updateRevealed:function(){if(!0===this.reveal){var t=this.layout.scroll,e=t.direction,i=t.position,n=t.inflexionPosition;this.__updateLocal("revealed","up"===e||i-n<100||this.layout.height-this.containerHeight-i-this.size<300)}},__onFocusin:function(t){!0===this.revealOnFocus&&this.__updateLocal("revealed",!0),this.$emit("focusin",t)}}}),Uo=t.extend({name:"QForm",mixins:[Lt],props:{autofocus:Boolean,noErrorFocus:Boolean,noResetFocus:Boolean,greedy:Boolean},computed:{onEvents:function(){return Object.assign({},this.qListeners,{submit:this.submit,reset:this.reset})}},mounted:function(){this.validateIndex=0,!0===this.autofocus&&this.focus()},activated:function(){!0===this.shouldActivate&&!0===this.autofocus&&this.focus()},deactivated:function(){this.shouldActivate=!0},methods:{validate:function(t){for(var e=this,i=[],n="boolean"==typeof t?t:!0!==this.noErrorFocus,s=++this.validateIndex,o=this.getValidationComponents().filter(function(t){return!0!==t.disable}),r=function(t,i){e.$emit("validation-"+(!0===t?"success":"error"),i)},a=function(t){var s=o[t],a=s.validate();if("function"==typeof a.then)i.push(a.then(function(t){return{valid:t,comp:s}},function(t){return{valid:!1,comp:s,err:t}}));else if(!0!==a){if(!1===e.greedy)return r(!1,s),!0===n&&"function"==typeof s.focus&&s.focus(),{v:Promise.resolve(!1)};i.push({valid:!1,comp:s})}},l=0;l-1});null!==e&&void 0!==e&&e.focus({preventScroll:!0})}})},getValidationComponents:function(){return Array.prototype.map.call(this.$el.getElementsByClassName("q-validation-component"),function(t){return t.__vue__}).filter(function(t){return void 0!==t&&"function"==typeof t.validate})}},render:function(t){return t("form",{staticClass:"q-form",on:this.onEvents},Ot(this,"default"))}}),Ko=t.extend({name:"QHeader",mixins:[Lt],inject:{layout:{default:function(){console.error("QHeader needs to be child of QLayout")}}},props:{value:{type:Boolean,default:!0},reveal:Boolean,revealOffset:{type:Number,default:250},bordered:Boolean,elevated:Boolean,heightHint:{type:[String,Number],default:50}},data:function(){return{size:parseInt(this.heightHint,10),revealed:!0}},watch:{value:function(t){this.__update("space",t),this.__updateLocal("revealed",!0),this.layout.__animate()},offset:function(t){this.__update("offset",t)},reveal:function(t){!1===t&&this.__updateLocal("revealed",this.value)},revealed:function(t){this.layout.__animate(),this.$emit("reveal",t)},"layout.scroll":function(t){!0===this.reveal&&this.__updateLocal("revealed","up"===t.direction||t.position<=this.revealOffset||t.position-t.inflexionPosition<100)}},computed:{fixed:function(){return!0===this.reveal||this.layout.view.indexOf("H")>-1||this.$q.platform.is.ios&&!0===this.layout.container},offset:function(){if(!0!==this.value)return 0;if(!0===this.fixed)return!0===this.revealed?this.size:0;var t=this.size-this.layout.scroll.position;return t>0?t:0},hidden:function(){return!0!==this.value||!0===this.fixed&&!0!==this.revealed},revealOnFocus:function(){return!0===this.value&&!0===this.hidden&&!0===this.reveal},classes:function(){return(!0===this.fixed?"fixed":"absolute")+"-top"+(!0===this.bordered?" q-header--bordered":"")+(!0===this.hidden?" q-header--hidden":"")+(!0!==this.value?" q-layout--prevent-focus":"")},style:function(){var t=this.layout.rows.top,e={};return"l"===t[0]&&!0===this.layout.left.space&&(e[!0===this.$q.lang.rtl?"right":"left"]=this.layout.left.size+"px"),"r"===t[2]&&!0===this.layout.right.space&&(e[!0===this.$q.lang.rtl?"left":"right"]=this.layout.right.size+"px"),e},onEvents:function(){return Object.assign({},this.qListeners,{focusin:this.__onFocusin,input:b})}},render:function(t){var e=Bt(this,"default",[]);return!0===this.elevated&&e.push(t("div",{staticClass:"q-layout__shadow absolute-full overflow-hidden no-pointer-events"})),e.push(t(Ln,{props:{debounce:0},on:ft(this,"resize",{resize:this.__onResize})})),t("header",{staticClass:"q-header q-layout__section--marginal",class:this.classes,style:this.style,on:this.onEvents},e)},created:function(){this.layout.instances.header=this,!0===this.value&&this.__update("size",this.size),this.__update("space",this.value),this.__update("offset",this.offset)},beforeDestroy:function(){this.layout.instances.header===this&&(this.layout.instances.header=void 0,this.__update("size",0),this.__update("offset",0),this.__update("space",!1))},methods:{__onResize:function(t){var e=t.height;this.__updateLocal("size",e),this.__update("size",e)},__update:function(t,e){this.layout.header[t]!==e&&(this.layout.header[t]=e)},__updateLocal:function(t,e){this[t]!==e&&(this[t]=e)},__onFocusin:function(t){!0===this.revealOnFocus&&this.__updateLocal("revealed",!0),this.$emit("focusin",t)}}}),Xo={props:{ratio:[String,Number]},computed:{ratioStyle:function(){var t=this.ratio||this.naturalRatio;if(void 0!==t)return{paddingBottom:100/t+"%"}}}},Go=t.extend({name:"QImg",mixins:[Lt,Xo],props:{src:String,srcset:String,sizes:String,alt:String,width:String,height:String,placeholderSrc:String,basic:Boolean,contain:Boolean,position:{type:String,default:"50% 50%"},transition:{type:String,default:"fade"},imgClass:[Array,String,Object],imgStyle:Object,nativeContextMenu:Boolean,noDefaultSpinner:Boolean,spinnerColor:String,spinnerSize:String},data:function(){return{currentSrc:"",image:null,isLoading:!!this.src,hasError:!1,naturalRatio:void 0}},watch:{src:function(){this.__load()},srcset:function(t){this.__updateWatcher(t)}},computed:{url:function(){return this.currentSrc||this.placeholderSrc||void 0},attrs:function(){var t={role:"img"};return void 0!==this.alt&&(t["aria-label"]=this.alt),t},imgContainerStyle:function(){return Object.assign({backgroundSize:!0===this.contain?"contain":"cover",backgroundPosition:this.position},this.imgStyle,{backgroundImage:'url("'+this.url+'")'})},style:function(){return{width:this.width,height:this.height}},classes:function(){return"q-img overflow-hidden"+(!0===this.nativeContextMenu?" q-img--menu":"")}},methods:{__onLoad:function(t){this.isLoading=!1,this.hasError=!1,this.__computeRatio(t),this.__updateSrc(),this.__updateWatcher(this.srcset),this.$emit("load",this.currentSrc)},__onError:function(t){clearTimeout(this.ratioTimer),this.isLoading=!1,this.hasError=!0,this.currentSrc="",this.$emit("error",t)},__updateSrc:function(){if(void 0!==this.image&&!1===this.isLoading){var t=this.image.currentSrc||this.image.src;this.currentSrc!==t&&(this.currentSrc=t)}},__updateWatcher:function(t){t?void 0===this.unwatch&&(this.unwatch=this.$watch("$q.screen.width",this.__updateSrc)):void 0!==this.unwatch&&(this.unwatch(),this.unwatch=void 0)},__load:function(){var t=this;if(clearTimeout(this.ratioTimer),this.hasError=!1,!this.src)return this.isLoading=!1,this.image=void 0,void(this.currentSrc="");this.isLoading=!0;var e=new Image;this.image=e,e.onerror=function(i){t.image===e&&!0!==t.destroyed&&t.__onError(i)},e.onload=function(){!0!==t.destroyed&&t.image===e&&(void 0!==e.decode?e.decode().catch(function(i){t.image===e&&!0!==t.destroyed&&t.__onError(i)}).then(function(){t.image===e&&!0!==t.destroyed&&t.__onLoad(e)}):t.__onLoad(e))},e.src=this.src,this.srcset&&(e.srcset=this.srcset),void 0!==this.sizes?e.sizes=this.sizes:Object.assign(e,{height:this.height,width:this.width})},__computeRatio:function(t){var e=this,i=t.naturalHeight,n=t.naturalWidth;i||n?this.naturalRatio=0===i?1:n/i:this.ratioTimer=setTimeout(function(){e.image===t&&!0!==e.destroyed&&e.__computeRatio(t)},100)},__getImage:function(t){var e=!0===this.nativeContextMenu?[t("img",{staticClass:"absolute-full fit",attrs:{src:this.url,"aria-hidden":"true"}})]:void 0,i=void 0!==this.url?t("div",{key:this.url,staticClass:"q-img__image absolute-full",class:this.imgClass,style:this.imgContainerStyle},e):null;return!0===this.basic?i:t("transition",{props:{name:"q-transition--"+this.transition}},[i])},__getContent:function(t){var e=Ot(this,!0===this.hasError?"error":"default");return!0===this.basic?t("div",{key:"content",staticClass:"q-img__content absolute-full"},e):t("transition",{props:{name:"q-transition--fade"}},[!0===this.isLoading?t("div",{key:"placeholder",staticClass:"q-img__loading absolute-full flex flex-center"},void 0!==this.$scopedSlots.loading?this.$scopedSlots.loading():!1===this.noDefaultSpinner?[t(ue,{props:{color:this.spinnerColor,size:this.spinnerSize}})]:void 0):t("div",{key:"content",staticClass:"q-img__content absolute-full"},e)])}},render:function(t){return t("div",{class:this.classes,style:this.style,attrs:this.attrs,on:Object.assign({},this.qListeners)},[t("div",{style:this.ratioStyle}),this.__getImage(t),this.__getContent(t)])},beforeMount:function(){if(void 0!==this.placeholderSrc&&void 0===this.ratio){var t=new Image;t.src=this.placeholderSrc,this.__computeRatio(t)}!0===this.isLoading&&this.__load()},beforeDestroy:function(){this.destroyed=!0,clearTimeout(this.ratioTimer),void 0!==this.unwatch&&this.unwatch()}}),Zo=h.passive,Jo=t.extend({name:"QInfiniteScroll",mixins:[Lt],props:{offset:{type:Number,default:500},debounce:{type:[String,Number],default:100},scrollTarget:{default:void 0},initialIndex:Number,disable:Boolean,reverse:Boolean},data:function(){return{index:this.initialIndex||0,isFetching:!1,isWorking:!0}},watch:{disable:function(t){!0===t?this.stop():this.resume()},reverse:function(){!1===this.isFetching&&!0===this.isWorking&&this.immediatePoll()},scrollTarget:function(){this.updateScrollTarget()},debounce:function(t){this.__setDebounce(t)}},methods:{poll:function(){if(!0!==this.disable&&!0!==this.isFetching&&!1!==this.isWorking){var t=ni(this.__scrollTarget),e=oi(this.__scrollTarget),i=de(this.__scrollTarget);!1===this.reverse?Math.round(e+i+this.offset)>=Math.round(t)&&this.trigger():Math.round(e)-1){for(var s=t-e.length;s>0;s--)i+=rr;e=e.slice(0,n)+i+e.slice(n)}return e},__updateMaskInternals:function(){var t=this;if(this.hasMask=void 0!==this.mask&&this.mask.length>0&&(!0===this.autogrow||["textarea","text","search","url","tel","password"].includes(this.type)),!1===this.hasMask)return this.computedUnmask=void 0,this.maskMarked="",void(this.maskReplaced="");var e=void 0===er[this.mask]?this.mask:er[this.mask],i="string"==typeof this.fillMask&&this.fillMask.length>0?this.fillMask.slice(0,1):"_",n=i.replace(or,"\\$&"),s=[],o=[],r=[],a=!0===this.reverseFillMask,l="",c="";e.replace(sr,function(t,e,i,n,u){if(void 0!==n){var h=ir[n];r.push(h),c=h.negate,!0===a&&(o.push("(?:"+c+"+)?("+h.pattern+"+)?(?:"+c+"+)?("+h.pattern+"+)?"),a=!1),o.push("(?:"+c+"+)?("+h.pattern+")?")}else if(void 0!==i)l="\\"+("\\"===i?"":i),r.push(i),s.push("([^"+l+"]+)?"+l+"?");else{var d=void 0!==e?e:u;l="\\"===d?"\\\\\\\\":d.replace(or,"\\\\$&"),r.push(d),s.push("([^"+l+"]+)?"+l+"?")}});var u=new RegExp("^"+s.join("")+"("+(""===l?".":"[^"+l+"]")+"+)?$"),h=o.length-1,d=o.map(function(e,i){return 0===i&&!0===t.reverseFillMask?new RegExp("^"+n+"*"+e):i===h?new RegExp("^"+e+"("+(""===c?".":c)+"+)?"+(!0===t.reverseFillMask?"$":n+"*")):new RegExp("^"+e)});this.computedMask=r,this.computedUnmask=function(t){var e=u.exec(t);null!==e&&(t=e.slice(1).join(""));for(var i=[],n=d.length,s=0,o=t;s0?i.join(""):t},this.maskMarked=r.map(function(t){return"string"==typeof t?t:rr}).join(""),this.maskReplaced=this.maskMarked.split(rr).join(i)},__updateMaskValue:function(t,e,i){var n=this,s=this.$refs.input,o=s.selectionEnd,r=s.value.length-o,a=this.__unmask(t);!0===e&&this.__updateMaskInternals();var l=this.__mask(a),c=!1!==this.fillMask?this.__fillWithMask(l):l,u=this.innerValue!==c;s.value!==c&&(s.value=c),!0===u&&(this.innerValue=c),document.activeElement===s&&this.$nextTick(function(){if(c!==n.maskReplaced)if("insertFromPaste"!==i||!0===n.reverseFillMask)if(["deleteContentBackward","deleteContentForward"].indexOf(i)>-1){var t=!0===n.reverseFillMask?0===o?c.length>l.length?1:0:Math.max(0,c.length-(c===n.maskReplaced?0:Math.min(l.length,r)+1))+1:o;s.setSelectionRange(t,t,"forward")}else if(!0===n.reverseFillMask)if(!0===u){var e=Math.max(0,c.length-(c===n.maskReplaced?0:Math.min(l.length,r+1)));1===e&&1===o?s.setSelectionRange(e,e,"forward"):n.__moveCursorRightReverse(s,e,e)}else{var a=c.length-r;s.setSelectionRange(a,a,"backward")}else if(!0===u){var h=Math.max(0,n.maskMarked.indexOf(rr),Math.min(l.length,o)-1);n.__moveCursorRight(s,h,h)}else{var d=o-1;n.__moveCursorRight(s,d,d)}else{var p=o-1;n.__moveCursorRight(s,p,p)}else{var f=!0===n.reverseFillMask?n.maskReplaced.length:0;s.setSelectionRange(f,f,"forward")}});var h=!0===this.unmaskedValue?this.__unmask(c):c;String(this.value)!==h&&this.__emitValue(h,!0)},__moveCursorForPaste:function(t,e,i){var n=this.__mask(this.__unmask(t.value));e=Math.max(0,this.maskMarked.indexOf(rr),Math.min(n.length,e)),t.setSelectionRange(e,i,"forward")},__moveCursorLeft:function(t,e,i,n){for(var s=-1===this.maskMarked.slice(e-1).indexOf(rr),o=Math.max(0,e-1);o>=0;o--)if(this.maskMarked[o]===rr){e=o,!0===s&&e++;break}if(o<0&&void 0!==this.maskMarked[e]&&this.maskMarked[e]!==rr)return this.__moveCursorRight(t,0,0);e>=0&&t.setSelectionRange(e,!0===n?i:e,"backward")},__moveCursorRight:function(t,e,i,n){for(var s=t.value.length,o=Math.min(s,i+1);o<=s;o++){if(this.maskMarked[o]===rr){i=o;break}this.maskMarked[o-1]===rr&&(i=o)}if(o>s&&void 0!==this.maskMarked[i-1]&&this.maskMarked[i-1]!==rr)return this.__moveCursorLeft(t,s,s);t.setSelectionRange(n?e:i,i,"forward")},__moveCursorLeftReverse:function(t,e,i,n){for(var s=this.__getPaddedMaskMarked(t.value.length),o=Math.max(0,e-1);o>=0;o--){if(s[o-1]===rr){e=o;break}if(s[o]===rr&&(e=o,0===o))break}if(o<0&&void 0!==s[e]&&s[e]!==rr)return this.__moveCursorRightReverse(t,0,0);e>=0&&t.setSelectionRange(e,!0===n?i:e,"backward")},__moveCursorRightReverse:function(t,e,i,n){for(var s=t.value.length,o=this.__getPaddedMaskMarked(s),r=-1===o.slice(0,i+1).indexOf(rr),a=Math.min(s,i+1);a<=s;a++)if(o[a-1]===rr){(i=a)>0&&!0===r&&i--;break}if(a>s&&void 0!==o[i-1]&&o[i-1]!==rr)return this.__moveCursorLeftReverse(t,s,s);t.setSelectionRange(!0===n?e:i,i,"forward")},__onMaskedKeydown:function(t){if(!0!==Z(t)){var e=this.$refs.input,i=e.selectionStart,n=e.selectionEnd;if(37===t.keyCode||39===t.keyCode){var s=this["__moveCursor"+(39===t.keyCode?"Right":"Left")+(!0===this.reverseFillMask?"Reverse":"")];t.preventDefault(),s(e,i,n,t.shiftKey)}else 8===t.keyCode&&!0!==this.reverseFillMask&&i===n?this.__moveCursorLeft(e,i,n,!0):46===t.keyCode&&!0===this.reverseFillMask&&i===n&&this.__moveCursorRightReverse(e,i,n,!0);this.$emit("keydown",t)}},__mask:function(t){if(void 0===t||null===t||""===t)return"";if(!0===this.reverseFillMask)return this.__maskReverse(t);for(var e=this.computedMask,i=0,n="",s=0;s=0&&n>-1;o--){var r=e[o],a=t[n];if("string"==typeof r)s=r+s,a===r&&n--;else{if(void 0===a||!r.regex.test(a))return s;do{s=(void 0!==r.transform?r.transform(a):a)+s,a=t[--n]}while(i===o&&void 0!==a&&r.regex.test(a))}}return s},__unmask:function(t){return"string"!=typeof t||void 0===this.computedUnmask?"number"==typeof t?this.computedUnmask(""+t):t:this.computedUnmask(t)},__fillWithMask:function(t){return this.maskReplaced.length-t.length<=0?t:!0===this.reverseFillMask&&t.length>0?this.maskReplaced.slice(0,-t.length)+t:t+this.maskReplaced.slice(t.length)}}},lr=/[\u3000-\u303f\u3040-\u309f\u30a0-\u30ff\uff00-\uff9f\u4e00-\u9faf\u3400-\u4dbf]/,cr=/(?:[\u3300-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF\uFE30-\uFE4F]|[\uD840-\uD868\uD86A-\uD872][\uDC00-\uDFFF]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD873[\uDC00-\uDEAF]|\uD87E[\uDC00-\uDE1F])/,ur=/[\u3131-\u314e\u314f-\u3163\uac00-\ud7a3]/,hr=/[a-z0-9_ -]$/i,dr={methods:{__onComposition:function(t){if("compositionend"===t.type||"change"===t.type){if(!0!==t.target.qComposing)return;t.target.qComposing=!1,this.__onInput(t)}else if("compositionupdate"===t.type&&!0!==t.target.qComposing&&"string"==typeof t.data){!0===(!0===c.is.firefox?!1===hr.test(t.data):!0===lr.test(t.data)||!0===cr.test(t.data)||!0===ur.test(t.data))&&(t.target.qComposing=!0)}}}},pr=t.extend({name:"QInput",mixins:[jo,ar,dr,Oi,Qo,Lt],props:{value:{required:!1},shadowText:String,type:{type:String,default:"text"},debounce:[String,Number],autogrow:Boolean,inputClass:[Array,String,Object],inputStyle:[Array,String,Object]},watch:{value:function(t){if(!0===this.hasMask){if(!0===this.stopValueWatcher&&(this.stopValueWatcher=!1,String(t)===this.emitCachedValue))return;this.__updateMaskValue(t)}else this.innerValue!==t&&(this.innerValue=t,"number"===this.type&&!0===this.hasOwnProperty("tempValue")&&(!0===this.typedNumber?this.typedNumber=!1:delete this.tempValue));!0===this.autogrow&&this.$nextTick(this.__adjustHeight)},type:function(){this.$refs.input&&(this.$refs.input.value=this.value)},autogrow:function(t){if(!0===t)this.$nextTick(this.__adjustHeight);else if(this.qAttrs.rows>0&&void 0!==this.$refs.input){this.$refs.input.style.height="auto"}},dense:function(){!0===this.autogrow&&this.$nextTick(this.__adjustHeight)}},data:function(){return{innerValue:this.__getInitialMaskedValue()}},computed:{isTextarea:function(){return"textarea"===this.type||!0===this.autogrow},isTypeText:function(){return!0===this.isTextarea||["text","search","url","tel","password"].includes(this.type)},fieldClass:function(){return"q-"+(!0===this.isTextarea?"textarea":"input")+(!0===this.autogrow?" q-textarea--autogrow":"")},hasShadow:function(){return"file"!==this.type&&"string"==typeof this.shadowText&&this.shadowText.length>0},onEvents:function(){var t=Object.assign({},this.qListeners,{input:this.__onInput,paste:this.__onPaste,change:this.__onChange,blur:this.__onFinishEditing,focus:b});return t.compositionstart=t.compositionupdate=t.compositionend=this.__onComposition,!0===this.hasMask&&(t.keydown=this.__onMaskedKeydown),!0===this.autogrow&&(t.animationend=this.__adjustHeight),t},inputAttrs:function(){var t=Object.assign({},{tabindex:0,"data-autofocus":this.autofocus||void 0,rows:"textarea"===this.type?6:void 0,"aria-label":this.label,name:this.nameProp},this.qAttrs,{id:this.targetUid,type:this.type,maxlength:this.maxlength,disabled:!0===this.disable,readonly:!0===this.readonly});return!0===this.autogrow&&(t.rows=1),t}},methods:{focus:function(){var t=this;Ve(function(){var e=document.activeElement;void 0===t.$refs.input||t.$refs.input===e||null!==e&&e.id===t.targetUid||t.$refs.input.focus({preventScroll:!0})})},select:function(){void 0!==this.$refs.input&&this.$refs.input.select()},getNativeElement:function(){return this.$refs.input},__onPaste:function(t){if(!0===this.hasMask&&!0!==this.reverseFillMask){var e=t.target;this.__moveCursorForPaste(e,e.selectionStart,e.selectionEnd)}this.$emit("paste",t)},__onInput:function(t){if(t&&t.target&&!0!==t.target.qComposing)if("file"!==this.type){var e=t.target.value;if(!0===this.hasMask)this.__updateMaskValue(e,!1,t.inputType);else if(this.__emitValue(e),!0===this.isTypeText&&t.target===document.activeElement){var i=t.target,n=i.selectionStart,s=i.selectionEnd;void 0!==n&&void 0!==s&&this.$nextTick(function(){t.target===document.activeElement&&0===e.indexOf(t.target.value)&&t.target.setSelectionRange(n,s)})}!0===this.autogrow&&this.__adjustHeight()}else this.$emit("input",t.target.files)},__emitValue:function(t,e){var i=this;this.emitValueFn=function(){"number"!==i.type&&!0===i.hasOwnProperty("tempValue")&&delete i.tempValue,i.value!==t&&i.emitCachedValue!==t&&(i.emitCachedValue=t,!0===e&&(i.stopValueWatcher=!0),i.$emit("input",t),i.$nextTick(function(){i.emitCachedValue===t&&(i.emitCachedValue=NaN)})),i.emitValueFn=void 0},"number"===this.type&&(this.typedNumber=!0,this.tempValue=t),void 0!==this.debounce?(clearTimeout(this.emitTimer),this.tempValue=t,this.emitTimer=setTimeout(this.emitValueFn,this.debounce)):this.emitValueFn()},__adjustHeight:function(){var t=this.$refs.input;if(void 0!==t){var e=t.parentNode.style,i=t.style.overflow;e.marginBottom=t.scrollHeight-1+"px",t.style.height="1px",t.style.overflow="hidden",t.style.height=t.scrollHeight+"px",t.style.overflow=i,e.marginBottom=""}},__onChange:function(t){this.__onComposition(t),clearTimeout(this.emitTimer),void 0!==this.emitValueFn&&this.emitValueFn(),this.$emit("change",t)},__onFinishEditing:function(t){var e=this;void 0!==t&&b(t),clearTimeout(this.emitTimer),void 0!==this.emitValueFn&&this.emitValueFn(),this.typedNumber=!1,this.stopValueWatcher=!1,delete this.tempValue,"file"!==this.type&&setTimeout(function(){void 0!==e.$refs.input&&(e.$refs.input.value=void 0!==e.innerValue?e.innerValue:"")})},__getCurValue:function(){return!0===this.hasOwnProperty("tempValue")?this.tempValue:void 0!==this.innerValue?this.innerValue:""},__getShadowControl:function(t){return t("div",{staticClass:"q-field__native q-field__shadow absolute-bottom no-pointer-events"+(!0===this.isTextarea?"":" text-no-wrap")},[t("span",{staticClass:"invisible"},this.__getCurValue()),t("span",this.shadowText)])},__getControl:function(t){return t(!0===this.isTextarea?"textarea":"input",{ref:"input",staticClass:"q-field__native q-placeholder",style:this.inputStyle,class:this.inputClass,attrs:this.inputAttrs,on:this.onEvents,domProps:"file"!==this.type?{value:this.__getCurValue()}:this.formDomProps})}},created:function(){this.emitCachedValue=NaN},mounted:function(){!0===this.autogrow&&this.__adjustHeight()},beforeDestroy:function(){this.__onFinishEditing()}}),fr={threshold:0,root:null,rootMargin:"0px"};function mr(t,e,i){var n,s,o;"function"==typeof i?(n=i,s=fr,o=void 0===e.cfg):(n=i.handler,s=Object.assign({},fr,i.cfg),o=void 0===e.cfg||!1===Gi(e.cfg,s)),e.handler!==n&&(e.handler=n),!0===o&&(e.cfg=s,void 0!==e.observer&&e.observer.unobserve(t),e.observer=new IntersectionObserver(function(i){var n=i[0];if("function"==typeof e.handler){if(null===n.rootBounds&&(void 0!==t.__vue__?!0!==t.__vue__._inactive:!0===document.body.contains(t)))return e.observer.unobserve(t),void e.observer.observe(t);(!1===e.handler(n,e.observer)||!0===e.once&&!0===n.isIntersecting)&&vr(t)}},s),e.observer.observe(t))}function vr(t){var e=t.__qvisible;void 0!==e&&(void 0!==e.observer&&e.observer.unobserve(t),delete t.__qvisible)}var gr={name:"intersection",inserted:function(t,e){var i=e.modifiers,n=e.value;void 0!==t.__qvisible&&(vr(t),t.__qvisible_destroyed=!0);var s={once:!0===i.once};mr(t,s,n),t.__qvisible=s},update:function(t,e){var i=t.__qvisible;void 0!==i&&mr(t,i,e.value)},unbind:function(t){void 0===t.__qvisible_destroyed?vr(t):delete t.__qvisible_destroyed}},_r=t.extend({name:"QIntersection",mixins:[$t,Lt],directives:{Intersection:gr},props:{once:Boolean,transition:String,ssrPrerender:Boolean,margin:String,threshold:[Number,Array],root:{default:null},disable:Boolean},data:function(){return{showing:!0===s&&this.ssrPrerender}},computed:{value:function(){return void 0!==this.root||void 0!==this.margin||void 0!==this.threshold?{handler:this.__trigger,cfg:{root:this.root,rootMargin:this.margin,threshold:this.threshold}}:this.__trigger},directives:function(){if(!0!==this.disable&&(!0!==s||!0!==this.once||!0!==this.ssrPrerender))return[{name:"intersection",value:this.value,modifiers:{once:this.once}}]}},methods:{__trigger:function(t){this.showing!==t.isIntersecting&&(this.showing=t.isIntersecting,void 0!==this.qListeners.visibility&&this.$emit("visibility",this.showing))}},render:function(t){var e=!0===this.showing?[t("div",{key:"content"},Ot(this,"default"))]:void 0;return t(this.tag,{staticClass:"q-intersection",on:Object.assign({},this.qListeners),directives:this.directives},this.transition?[t("transition",{props:{name:"q-transition--"+this.transition}},e)]:e)}}),br=[34,37,40,33,39,38],yr=t.extend({name:"QKnob",mixins:[{props:pn.options.props},Li],directives:{TouchPan:xn},props:{innerMin:Number,innerMax:Number,step:{type:Number,default:1,validator:function(t){return t>=0}},tabindex:{type:[Number,String],default:0},disable:Boolean,readonly:Boolean},data:function(){var t=this.__getInnerMin(this.innerMin),e=this.__getInnerMax(this.innerMax);return{model:null===this.value?t:ut(this.value,t,e),dragging:!1}},watch:{modelUpdate:function(){this.model=null===this.value?this.computedInnerMin:ut(this.value,this.computedInnerMin,this.computedInnerMax),this.__updateValue(!0)}},computed:{classes:function(){return"q-knob non-selectable"+(!0===this.editable?" q-knob--editable":!0===this.disable?" disabled":"")},computedInnerMin:function(){return this.__getInnerMin(this.innerMin)},computedInnerMax:function(){return this.__getInnerMax(this.innerMax)},modelUpdate:function(){return this.value+"|"+this.computedInnerMin+"|"+this.computedInnerMax},editable:function(){return!1===this.disable&&!1===this.readonly},decimals:function(){return(String(this.step).trim("0").split(".")[1]||"").length},computedStep:function(){return 0===this.step?1:this.step},computedInstantFeedback:function(){return!0===this.instantFeedback||!0===this.dragging},onEvents:function(){return!0===this.$q.platform.is.mobile?{click:this.__click}:{mousedown:this.__activate,click:this.__click,keydown:this.__keydown,keyup:this.__keyup}},attrs:function(){var t={role:"slider","aria-valuemin":this.computedInnerMin,"aria-valuemax":this.computedInnerMax,"aria-valuenow":this.value};return!0===this.editable?t.tabindex=this.tabindex:t["aria-"+(!0===this.disable?"disabled":"readonly")]="",t}},methods:{__getInnerMin:function(t){return!0===isNaN(t)||this.innerMinthis.max?this.max:this.innerMax},__updateCenterPosition:function(){var t=this.$el.getBoundingClientRect(),e=t.top,i=t.left,n=t.width,s=t.height;this.centerPosition={top:e+s/2,left:i+n/2}},__pan:function(t){t.isFinal?(this.__updatePosition(t.evt,!0),this.dragging=!1):t.isFirst?(this.__updateCenterPosition(),this.dragging=!0,this.__updatePosition(t.evt)):this.__updatePosition(t.evt)},__click:function(t){this.__updateCenterPosition(),this.__updatePosition(t,!0)},__keydown:function(t){if(br.includes(t.keyCode)){S(t);var e=([34,33].includes(t.keyCode)?10:1)*this.computedStep,i=[34,37,40].includes(t.keyCode)?-e:e;this.model=ut(parseFloat((this.model+i).toFixed(this.decimals)),this.computedInnerMin,this.computedInnerMax),this.__updateValue()}},__keyup:function(t){br.includes(t.keyCode)&&this.__updateValue(!0)},__activate:function(t){this.__updateCenterPosition(),this.__updatePosition(t)},__updatePosition:function(t,e){var i=this.centerPosition,n=m(t),s=Math.abs(n.top-i.top),o=Math.sqrt(Math.pow(s,2)+Math.pow(Math.abs(n.left-i.left),2)),r=Math.asin(s/o)*(180/Math.PI);r=n.top=l/2?(c<0?-1:1)*l:0),a=parseFloat(a.toFixed(this.decimals))}a=ut(a,this.computedInnerMin,this.computedInnerMax),this.$emit("drag-value",a),this.model!==a&&(this.model=a),this.__updateValue(e)},__updateValue:function(t){this.value!==this.model&&this.$emit("input",this.model),!0===t&&this.$emit("change",this.model)},__getNameInput:function(){return this.$createElement("input",{attrs:this.formAttrs})}},render:function(t){var e={class:this.classes,attrs:this.attrs,props:Object.assign({},this.$props,{value:this.model,instantFeedback:this.computedInstantFeedback})};return!0===this.editable&&(e.on=this.onEvents,e.directives=ft(this,"dir",[{name:"touch-pan",value:this.__pan,modifiers:{prevent:!0,stop:!0,mouse:!0}}]),void 0!==this.name&&(e.scopedSlots={internal:this.__getNameInput})),t(pn,e,Ot(this,"default"))}}),Sr=h.passive,wr=t.extend({name:"QScrollObserver",props:{debounce:[String,Number],horizontal:Boolean,scrollTarget:{default:void 0}},render:p,data:function(){return{pos:0,dir:!0===this.horizontal?"right":"down",dirChanged:!1,dirChangePos:0}},watch:{scrollTarget:function(){this.__unconfigureScrollTarget(),this.__configureScrollTarget()}},methods:{getPosition:function(){return{position:this.pos,direction:this.dir,directionChanged:this.dirChanged,inflexionPosition:this.dirChangePos}},trigger:function(t){var e=this;if(!0===t||0===this.debounce||"0"===this.debounce)this.__emit();else if(void 0===this.clearTimer){var i=this.debounce?[setTimeout(this.__emit,this.debounce),clearTimeout]:[requestAnimationFrame(this.__emit),cancelAnimationFrame],n=i[0],s=i[1];this.clearTimer=function(){s(n),e.clearTimer=void 0}}},__emit:function(){void 0!==this.clearTimer&&this.clearTimer();var t=!0===this.horizontal?ri:oi,e=Math.max(0,t(this.__scrollTarget)),i=e-this.pos,n=!0===this.horizontal?i<0?"left":"right":i<0?"up":"down";this.dirChanged=this.dir!==n,this.dirChanged&&(this.dir=n,this.dirChangePos=this.pos),this.pos=e,this.$emit("scroll",this.getPosition())},__configureScrollTarget:function(){this.__scrollTarget=ii(this.$el.parentNode,this.scrollTarget),this.__scrollTarget.addEventListener("scroll",this.trigger,Sr),this.trigger(!0)},__unconfigureScrollTarget:function(){void 0!==this.__scrollTarget&&(this.__scrollTarget.removeEventListener("scroll",this.trigger,Sr),this.__scrollTarget=void 0)}},mounted:function(){this.__configureScrollTarget()},beforeDestroy:function(){void 0!==this.clearTimer&&this.clearTimer(),this.__unconfigureScrollTarget()}}),Cr=t.extend({name:"QLayout",mixins:[Lt],provide:function(){return{layout:this}},props:{container:Boolean,view:{type:String,default:"hhh lpr fff",validator:function(t){return/^(h|l)h(h|r) lpr (f|l)f(f|r)$/.test(t.toLowerCase())}}},data:function(){return{height:this.$q.screen.height,width:!0===this.container?0:this.$q.screen.width,containerHeight:0,scrollbarWidth:!0===s?0:mi(),header:{size:0,offset:0,space:!1},right:{size:300,offset:0,space:!1},footer:{size:0,offset:0,space:!1},left:{size:300,offset:0,space:!1},scroll:{position:0,direction:"down"}}},computed:{rows:function(){var t=this.view.toLowerCase().split(" ");return{top:t[0].split(""),middle:t[1].split(""),bottom:t[2].split("")}},style:function(){return!0===this.container?null:{minHeight:this.$q.screen.height+"px"}},targetStyle:function(){var t;if(0!==this.scrollbarWidth)return(t={})[!0===this.$q.lang.rtl?"left":"right"]=this.scrollbarWidth+"px",t},targetChildStyle:function(){var t;if(0!==this.scrollbarWidth)return(t={})[!0===this.$q.lang.rtl?"right":"left"]=0,t[!0===this.$q.lang.rtl?"left":"right"]="-"+this.scrollbarWidth+"px",t.width="calc(100% + "+this.scrollbarWidth+"px)",t},totalWidth:function(){return this.width+this.scrollbarWidth},classes:function(){return"q-layout q-layout--"+(!0===this.container?"containerized":"standard")},scrollbarEvtAction:function(){return!0!==this.container&&this.scrollbarWidth>0?"add":"remove"}},watch:{scrollbarEvtAction:"__updateScrollEvent"},created:function(){this.instances={}},mounted:function(){"add"===this.scrollbarEvtAction&&this.__updateScrollEvent("add")},beforeDestroy:function(){"add"===this.scrollbarEvtAction&&this.__updateScrollEvent("remove")},render:function(t){var e=t("div",{class:this.classes,style:this.style,attrs:{tabindex:-1},on:Object.assign({},this.qListeners)},Et([t(wr,{on:ft(this,"scroll",{scroll:this.__onPageScroll})}),t(Ln,{on:ft(this,"resizeOut",{resize:this.__onPageResize})})],this,"default"));return!0===this.container?t("div",{staticClass:"q-layout-container overflow-hidden"},[t(Ln,{on:ft(this,"resizeIn",{resize:this.__onContainerResize})}),t("div",{staticClass:"absolute-full",style:this.targetStyle},[t("div",{staticClass:"scroll",style:this.targetChildStyle},[e])])]):e},methods:{__animate:function(){var t=this;void 0!==this.timer?clearTimeout(this.timer):document.body.classList.add("q-body--layout-animate"),this.timer=setTimeout(function(){document.body.classList.remove("q-body--layout-animate"),t.timer=void 0},150)},__onPageScroll:function(t){!0!==this.container&&!0===document.qScrollPrevented||(this.scroll=t),void 0!==this.qListeners.scroll&&this.$emit("scroll",t)},__onPageResize:function(t){var e=t.height,i=t.width,n=!1;this.height!==e&&(n=!0,this.height=e,void 0!==this.qListeners["scroll-height"]&&this.$emit("scroll-height",e),this.__updateScrollbarWidth()),this.width!==i&&(n=!0,this.width=i),!0===n&&void 0!==this.qListeners.resize&&this.$emit("resize",{height:e,width:i})},__onContainerResize:function(t){var e=t.height;this.containerHeight!==e&&(this.containerHeight=e,this.__updateScrollbarWidth())},__updateScrollbarWidth:function(){if(!0===this.container){var t=this.height>this.containerHeight?mi():0;this.scrollbarWidth!==t&&(this.scrollbarWidth=t)}},__updateScrollEvent:function(t){void 0!==this.timerScrollbar&&"remove"===t&&(clearTimeout(this.timerScrollbar),this.__restoreScrollbar()),window[t+"EventListener"]("resize",this.__hideScrollbar)},__hideScrollbar:function(){if(void 0===this.timerScrollbar){var t=document.body;if(t.scrollHeight>this.$q.screen.height)return;t.classList.add("hide-scrollbar")}else clearTimeout(this.timerScrollbar);this.timerScrollbar=setTimeout(this.__restoreScrollbar,200)},__restoreScrollbar:function(){this.timerScrollbar=void 0,document.body.classList.remove("hide-scrollbar")}}}),xr=t.extend({name:"QMarkupTable",mixins:[Gt,Lt],props:{dense:Boolean,flat:Boolean,bordered:Boolean,square:Boolean,separator:{type:String,default:"horizontal",validator:function(t){return["horizontal","vertical","cell","none"].includes(t)}},wrapCells:Boolean},computed:{classes:function(){return"q-table--"+this.separator+"-separator"+(!0===this.isDark?" q-table--dark q-table__card--dark q-dark":"")+(!0===this.dense?" q-table--dense":"")+(!0===this.flat?" q-table--flat":"")+(!0===this.bordered?" q-table--bordered":"")+(!0===this.square?" q-table--square":"")+(!1===this.wrapCells?" q-table--no-wrap":"")}},render:function(t){return t("div",{staticClass:"q-markup-table q-table__container q-table__card",class:this.classes,on:Object.assign({},this.qListeners)},[t("table",{staticClass:"q-table"},Ot(this,"default"))])}}),kr=t.extend({name:"QNoSsr",mixins:[$n,$t,Lt],props:{placeholder:String},render:function(t){var e={on:Object.assign({},this.qListeners)};if(!0===this.canRender){var i=Ot(this,"default");return void 0===i?i:i.length>1?t(this.tag,e,i):i[0]}e.staticClass="q-no-ssr-placeholder";var n=Ot(this,"placeholder");return void 0!==n?n.length>1?t(this.tag,e,n):n[0]:void 0!==this.placeholder?t(this.tag,e,[this.placeholder]):void 0}}),qr=t.extend({name:"QRadio",mixins:[Gt,rn,Li,an],props:{value:{required:!0},val:{required:!0},label:String,leftLabel:Boolean,checkedIcon:String,uncheckedIcon:String,color:String,keepColor:Boolean,dense:Boolean,disable:Boolean,tabindex:[String,Number]},computed:{isTrue:function(){return this.value===this.val},classes:function(){return"q-radio cursor-pointer no-outline row inline no-wrap items-center"+(!0===this.disable?" disabled":"")+(!0===this.isDark?" q-radio--dark":"")+(!0===this.dense?" q-radio--dense":"")+(!0===this.leftLabel?" reverse":"")},innerClass:function(){var t=void 0===this.color||!0!==this.keepColor&&!0!==this.isTrue?"":" text-"+this.color;return"q-radio__inner--"+(!0===this.isTrue?"truthy":"falsy")+t},computedIcon:function(){return!0===this.isTrue?this.checkedIcon:this.uncheckedIcon},computedTabindex:function(){return!0===this.disable?-1:this.tabindex||0},formAttrs:function(){var t={type:"radio"};return void 0!==this.name&&Object.assign(t,{name:this.name,value:this.val}),t},formDomProps:function(){if(void 0!==this.name&&!0===this.isTrue)return{checked:!0}},attrs:function(){var t={tabindex:this.computedTabindex,role:"radio","aria-label":this.label,"aria-checked":!0===this.isTrue?"true":"false"};return!0===this.disable&&(t["aria-disabled"]="true"),t}},methods:{set:function(t){void 0!==t&&(S(t),this.__refocusTarget(t)),!0!==this.disable&&!0!==this.isTrue&&this.$emit("input",this.val,t)}},render:function(t){var e=this,i=void 0!==this.computedIcon?[t("div",{key:"icon",staticClass:"q-radio__icon-container absolute-full flex flex-center no-wrap"},[t(Ut,{staticClass:"q-radio__icon",props:{name:this.computedIcon}})])]:[t("svg",{key:"svg",staticClass:"q-radio__bg absolute non-selectable",attrs:{focusable:"false",viewBox:"0 0 24 24","aria-hidden":"true"}},[t("path",{attrs:{d:"M12,22a10,10 0 0 1 -10,-10a10,10 0 0 1 10,-10a10,10 0 0 1 10,10a10,10 0 0 1 -10,10m0,-22a12,12 0 0 0 -12,12a12,12 0 0 0 12,12a12,12 0 0 0 12,-12a12,12 0 0 0 -12,-12"}}),t("path",{staticClass:"q-radio__check",attrs:{d:"M12,6a6,6 0 0 0 -6,6a6,6 0 0 0 6,6a6,6 0 0 0 6,-6a6,6 0 0 0 -6,-6"}})])];!0!==this.disable&&this.__injectFormInput(i,"unshift","q-radio__native q-ma-none q-pa-none");var n=[t("div",{staticClass:"q-radio__inner relative-position",class:this.innerClass,style:this.sizeStyle},i)];void 0!==this.__refocusTargetEl&&n.push(this.__refocusTargetEl);var s=void 0!==this.label?Et([this.label],this,"default"):Ot(this,"default");return void 0!==s&&n.push(t("div",{staticClass:"q-radio__label q-anchor--skip"},s)),t("div",{class:this.classes,attrs:this.attrs,on:ft(this,"inpExt",{click:this.set,keydown:function(t){13!==t.keyCode&&32!==t.keyCode||S(t)},keyup:function(t){13!==t.keyCode&&32!==t.keyCode||e.set(t)}})},n)}}),Tr=t.extend({name:"QToggle",mixins:[ln],props:{icon:String,iconColor:String},computed:{computedIcon:function(){return(!0===this.isTrue?this.checkedIcon:!0===this.isIndeterminate?this.indeterminateIcon:this.uncheckedIcon)||this.icon},computedIconColor:function(){if(!0===this.isTrue)return this.iconColor}},methods:{__getInner:function(t){return[t("div",{staticClass:"q-toggle__track"}),t("div",{staticClass:"q-toggle__thumb absolute flex flex-center no-wrap"},void 0!==this.computedIcon?[t(Ut,{props:{name:this.computedIcon,color:this.computedIconColor}})]:void 0)]}},created:function(){this.type="toggle"}}),Mr={radio:qr,checkbox:cn,toggle:Tr},$r=Object.keys(Mr),Lr=t.extend({name:"QOptionGroup",mixins:[Gt,Lt],props:{value:{required:!0},options:{type:Array,validator:function(t){return t.every(function(t){return"value"in t&&"label"in t})}},name:String,type:{default:"radio",validator:function(t){return $r.includes(t)}},color:String,keepColor:Boolean,dense:Boolean,size:String,leftLabel:Boolean,inline:Boolean,disable:Boolean},computed:{component:function(){return Mr[this.type]},model:function(){return Array.isArray(this.value)?this.value.slice():this.value},classes:function(){return"q-option-group q-gutter-x-sm"+(!0===this.inline?" q-option-group--inline":"")},attrs:function(){if("radio"===this.type){var t={role:"radiogroup"};return!0===this.disable&&(t["aria-disabled"]="true"),t}}},methods:{__update:function(t){this.$emit("input",t)}},created:function(){var t=Array.isArray(this.value);"radio"===this.type?t&&console.error("q-option-group: model should not be array"):!1===t&&console.error("q-option-group: model should be array in your case")},render:function(t){var e=this;return t("div",{class:this.classes,attrs:this.attrs,on:Object.assign({},this.qListeners)},this.options.map(function(i,n){var s=void 0!==e.$scopedSlots["label-"+n]?e.$scopedSlots["label-"+n](i):void 0!==e.$scopedSlots.label?e.$scopedSlots.label(i):void 0;return t("div",[t(e.component,{props:{value:e.value,val:i.value,name:void 0===i.name?e.name:i.name,disable:e.disable||i.disable,label:void 0===s?i.label:void 0,leftLabel:void 0===i.leftLabel?e.leftLabel:i.leftLabel,color:void 0===i.color?e.color:i.color,checkedIcon:i.checkedIcon,uncheckedIcon:i.uncheckedIcon,dark:i.dark||e.isDark,size:void 0===i.size?e.size:i.size,dense:e.dense,keepColor:void 0===i.keepColor?e.keepColor:i.keepColor},on:ft(e,"inp",{input:e.__update})},s)])}))}}),Or=t.extend({name:"QPage",mixins:[Lt],inject:{pageContainer:{default:function(){console.error("QPage needs to be child of QPageContainer")}},layout:{}},props:{padding:Boolean,styleFn:Function},computed:{style:function(){var t=(!0===this.layout.header.space?this.layout.header.size:0)+(!0===this.layout.footer.space?this.layout.footer.size:0);if("function"==typeof this.styleFn){var e=!0===this.layout.container?this.layout.containerHeight:this.$q.screen.height;return this.styleFn(t,e)}return{minHeight:!0===this.layout.container?this.layout.containerHeight-t+"px":0===this.$q.screen.height?"calc(100vh - "+t+"px)":this.$q.screen.height-t+"px"}},classes:function(){if(!0===this.padding)return"q-layout-padding"}},render:function(t){return t("main",{staticClass:"q-page",style:this.style,class:this.classes,on:Object.assign({},this.qListeners)},Ot(this,"default"))}}),Br=t.extend({name:"QPageContainer",mixins:[Lt],inject:{layout:{default:function(){console.error("QPageContainer needs to be child of QLayout")}}},provide:{pageContainer:!0},computed:{style:function(){var t={};return!0===this.layout.header.space&&(t.paddingTop=this.layout.header.size+"px"),!0===this.layout.right.space&&(t["padding"+(!0===this.$q.lang.rtl?"Left":"Right")]=this.layout.right.size+"px"),!0===this.layout.footer.space&&(t.paddingBottom=this.layout.footer.size+"px"),!0===this.layout.left.space&&(t["padding"+(!0===this.$q.lang.rtl?"Right":"Left")]=this.layout.left.size+"px"),t}},render:function(t){return t("div",{staticClass:"q-page-container",style:this.style,on:Object.assign({},this.qListeners)},Ot(this,"default"))}}),Er=t.extend({name:"QPageSticky",mixins:[Lt],inject:{layout:{default:function(){console.error("QPageSticky needs to be child of QLayout")}}},props:{position:{type:String,default:"bottom-right",validator:function(t){return["top-right","top-left","bottom-right","bottom-left","top","right","bottom","left"].includes(t)}},offset:{type:Array,validator:function(t){return 2===t.length}},expand:Boolean},computed:{attach:function(){var t=this.position;return{top:t.indexOf("top")>-1,right:t.indexOf("right")>-1,bottom:t.indexOf("bottom")>-1,left:t.indexOf("left")>-1,vertical:"top"===t||"bottom"===t,horizontal:"left"===t||"right"===t}},top:function(){return this.layout.header.offset},right:function(){return this.layout.right.offset},bottom:function(){return this.layout.footer.offset},left:function(){return this.layout.left.offset},style:function(){var t=0,e=0,i=this.attach,n=!0===this.$q.lang.rtl?-1:1;!0===i.top&&0!==this.top?e=this.top+"px":!0===i.bottom&&0!==this.bottom&&(e=-this.bottom+"px"),!0===i.left&&0!==this.left?t=n*this.left+"px":!0===i.right&&0!==this.right&&(t=-n*this.right+"px");var s={transform:"translate("+t+", "+e+")"};return this.offset&&(s.margin=this.offset[1]+"px "+this.offset[0]+"px"),!0===i.vertical?(0!==this.left&&(s[!0===this.$q.lang.rtl?"right":"left"]=this.left+"px"),0!==this.right&&(s[!0===this.$q.lang.rtl?"left":"right"]=this.right+"px")):!0===i.horizontal&&(0!==this.top&&(s.top=this.top+"px"),0!==this.bottom&&(s.bottom=this.bottom+"px")),s},classes:function(){return"fixed-"+this.position+" q-page-sticky--"+(!0===this.expand?"expand":"shrink")}},render:function(t){var e=Ot(this,"default");return t("div",{staticClass:"q-page-sticky row flex-center",class:this.classes,style:this.style,on:Object.assign({},this.qListeners)},!0===this.expand?e:[t("div",e)])}}),zr=t.extend({name:"QPageScroller",mixins:[Er],props:{scrollOffset:{type:Number,default:1e3},reverse:Boolean,duration:{type:Number,default:300},offset:{default:function(){return[18,18]}}},inject:{layout:{default:function(){console.error("QPageScroller needs to be used within a QLayout")}}},data:function(){return{showing:this.__isVisible()}},computed:{scrollHeight:function(){return this.layout.height-(!0===this.layout.container?this.layout.containerHeight:this.$q.screen.height)},onEvents:function(){return Object.assign({},this.qListeners,{click:this.__onClick})}},watch:{"layout.scroll.position":function(){this.__updateVisibility()},reverse:{handler:function(t){!0===t?void 0===this.heightWatcher&&(this.heightWatcher=this.$watch("scrollHeight",this.__updateVisibility)):void 0!==this.heightWatcher&&this.__cleanup()},immediate:!0}},methods:{__isVisible:function(){return!0===this.reverse?this.scrollHeight-this.layout.scroll.position>this.scrollOffset:this.layout.scroll.position>this.scrollOffset},__onClick:function(t){var e=ii(!0===this.layout.container?this.$el:this.layout.$el);pi(e,!0===this.reverse?this.layout.height:0,this.duration),this.$emit("click",t)},__updateVisibility:function(){var t=this.__isVisible();this.showing!==t&&(this.showing=t)},__cleanup:function(){this.heightWatcher(),this.heightWatcher=void 0}},render:function(t){return t("transition",{props:{name:"q-transition--fade"}},!0===this.showing?[t("div",{staticClass:"q-page-scroller",on:this.onEvents},[Er.options.render.call(this,t)])]:null)},beforeDestroy:function(){void 0!==this.heightWatcher&&this.__cleanup()}}),Pr=t.extend({name:"QPagination",mixins:[Gt,Lt],props:{value:{type:Number,required:!0},min:{type:Number,default:1},max:{type:Number,required:!0},color:{type:String,default:"primary"},textColor:String,activeColor:String,activeTextColor:String,inputStyle:[Array,String,Object],inputClass:[Array,String,Object],size:String,disable:Boolean,input:Boolean,iconPrev:String,iconNext:String,iconFirst:String,iconLast:String,toFn:Function,boundaryLinks:{type:Boolean,default:null},boundaryNumbers:{type:Boolean,default:null},directionLinks:{type:Boolean,default:null},ellipses:{type:Boolean,default:null},maxPages:{type:Number,default:0,validator:function(t){return t>=0}},ripple:{type:[Boolean,Object],default:null},round:Boolean,rounded:Boolean,flat:Boolean,outline:Boolean,unelevated:Boolean,push:Boolean,glossy:Boolean,dense:Boolean,padding:{type:String,default:"3px 2px"}},data:function(){return{newPage:null}},watch:{min:function(){this.model=this.value},max:function(){this.model=this.value}},computed:{model:{get:function(){return this.value},set:function(t){if(t=parseInt(t,10),!this.disable&&!isNaN(t)){var e=ut(t,this.min,this.max);this.$emit("input",e)}}},inputPlaceholder:function(){return this.model+" / "+this.max},__boundaryLinks:function(){return this.__getBool(this.boundaryLinks,this.input)},__boundaryNumbers:function(){return this.__getBool(this.boundaryNumbers,!this.input)},__directionLinks:function(){return this.__getBool(this.directionLinks,this.input)},__ellipses:function(){return this.__getBool(this.ellipses,!this.input)},icons:function(){var t=[this.iconFirst||this.$q.iconSet.pagination.first,this.iconPrev||this.$q.iconSet.pagination.prev,this.iconNext||this.$q.iconSet.pagination.next,this.iconLast||this.$q.iconSet.pagination.last];return!0===this.$q.lang.rtl?t.reverse():t},attrs:function(){if(!0===this.disable)return{"aria-disabled":"true"}},btnProps:function(){return{round:this.round,rounded:this.rounded,outline:this.outline,unelevated:this.unelevated,push:this.push,glossy:this.glossy,dense:this.dense,padding:this.padding,color:this.color,flat:!0,size:this.size,ripple:null===this.ripple||this.ripple}},activeBtnProps:function(){return{flat:this.flat,color:this.activeColor||this.color,textColor:this.activeTextColor||this.textColor}}},methods:{set:function(t){this.model=t},setByOffset:function(t){this.model=this.model+t},__update:function(){this.model=this.newPage,this.newPage=null},__getBool:function(t,e){return[!0,!1].includes(t)?t:e},__getBtn:function(t,e,i,n){var s=this;return e.props=Object.assign({},this.btnProps,i),void 0!==n&&(void 0!==this.toFn?e.props.to=this.toFn(n):e.on={click:function(){return s.set(n)}}),t(Be,e)}},render:function(t){var e=this,i=[],n=[],s=[];if(this.__boundaryLinks&&(i.push(this.__getBtn(t,{key:"bls"},{disable:this.disable||this.value<=this.min,icon:this.icons[0]},this.min)),n.unshift(this.__getBtn(t,{key:"ble"},{disable:this.disable||this.value>=this.max,icon:this.icons[3]},this.max))),this.__directionLinks&&(i.push(this.__getBtn(t,{key:"bdp"},{disable:this.disable||this.value<=this.min,icon:this.icons[1]},this.value-1)),n.unshift(this.__getBtn(t,{key:"bdn"},{disable:this.disable||this.value>=this.max,icon:this.icons[2]},this.value+1))),!0===this.input)s.push(t(pr,{staticClass:"inline",style:{width:this.inputPlaceholder.length/1.5+"em"},props:{type:"number",dense:!0,value:this.newPage,disable:this.disable,dark:this.isDark,borderless:!0,inputClass:this.inputClass,inputStyle:this.inputStyle},attrs:{placeholder:this.inputPlaceholder,min:this.min,max:this.max},on:ft(this,"inp",{input:function(t){e.newPage=t},keyup:function(t){!0===J(t,13)&&e.__update()},blur:this.__update})}));else{var o=Math.max(this.maxPages,1+(this.__ellipses?2:0)+(this.__boundaryNumbers?2:0)),r=this.min,a=this.max,l=!1,c=!1,u=!1,h=!1;this.maxPages&&othis.min+(this.__boundaryNumbers?1:0)&&(l=!0,r+=1),this.__boundaryNumbers&&(h=!0,a-=1),this.__ellipses&&a=0&&t<=1}},scrollTarget:{default:void 0}},data:function(){return{scrolling:!1,percentScrolled:0}},watch:{height:function(){!0===this.working&&this.__updatePos()},scrollTarget:function(){!0===this.working&&(this.__stop(),this.__start())}},methods:{__update:function(t){this.percentScrolled=t,void 0!==this.qListeners.scroll&&this.$emit("scroll",t)},__updatePos:function(){var t,e,i;this.__scrollTarget===window?(t=0,i=e=window.innerHeight):i=(t=he(this.__scrollTarget).top)+(e=de(this.__scrollTarget));var n=he(this.$el).top,s=n+this.height;if(void 0!==this.observer||s>t&&n20?"pulled":"pull";this.state!==o&&(this.state=o)}else!0===this.pulling&&(this.pulling=!1,"pulled"===this.state?(this.state="refreshing",this.__animateTo({pos:20}),this.trigger()):"pull"===this.state&&this.__animateTo({pos:-40,ratio:0}))},__animateTo:function(t,e){var i=this,n=t.pos,s=t.ratio;this.animating=!0,this.pullPosition=n,void 0!==s&&(this.pullRatio=s),clearTimeout(this.timer),this.timer=setTimeout(function(){i.animating=!1,e&&e()},300)}},mounted:function(){this.updateScrollTarget()},beforeDestroy:function(){clearTimeout(this.timer)},render:function(t){return t("div",{staticClass:"q-pull-to-refresh",on:Object.assign({},this.qListeners),directives:this.directives},[t("div",{class:this.contentClass},Ot(this,"default")),t("div",{staticClass:"q-pull-to-refresh__puller-container fixed row flex-center no-pointer-events z-top",style:this.positionCSS},[t("div",{style:this.style,class:this.classes},["refreshing"!==this.state?t(Ut,{props:{name:this.icon||this.$q.iconSet.pullToRefresh.icon,color:this.color,size:"32px"}}):t(ue,{props:{size:"24px",color:this.color}})])])])}}),Qr=0,Wr=1,Yr=2,Ur=t.extend({name:"QRange",mixins:[Tn],props:{value:{type:Object,default:function(){return{min:null,max:null}},validator:function(t){return"min"in t&&"max"in t}},dragRange:Boolean,dragOnlyRange:Boolean,leftLabelColor:String,leftLabelTextColor:String,rightLabelColor:String,rightLabelTextColor:String,leftLabelValue:[String,Number],rightLabelValue:[String,Number],leftThumbColor:String,rightThumbColor:String},data:function(){var t=this.__getInnerMin(this.innerMin),e=this.__getInnerMax(this.innerMax);return{model:{min:null===this.value.min?t:ut(this.value.min,t,e),max:null===this.value.max?e:ut(this.value.max,t,e)},curMinRatio:0,curMaxRatio:0}},computed:{modelMinRatio:function(){return this.__convertModelToRatio(this.model.min)},modelMaxRatio:function(){return this.__convertModelToRatio(this.model.max)},ratioMin:function(){return!0===this.active?this.curMinRatio:this.modelMinRatio},ratioMax:function(){return!0===this.active?this.curMaxRatio:this.modelMaxRatio},selectionBarStyle:function(){var t={};return t[this.positionProp]=100*this.ratioMin+"%",t[this.sizeProp]=100*(this.ratioMax-this.ratioMin)+"%",void 0!==this.selectionImg&&(t.backgroundImage="url("+this.selectionImg+") !important"),t},trackContainerEvents:function(){var t=this;if(!0!==this.editable)return{};if(!0===this.$q.platform.is.mobile)return{click:this.__onMobileClick};var e={mousedown:this.__onActivate};return!0!==this.dragRange&&!0!==this.dragOnlyRange||Object.assign(e,{focus:function(){t.focus="both"},blur:this.__onBlur,keydown:this.__onKeydown,keyup:this.__onKeyup}),e},trackContainerAttrs:function(){return{tabindex:!0===this.$q.platform.is.mobile||!this.dragRange&&!0!==this.dragOnlyRange?null:this.computedTabindex}},thumbAttrs:function(){return{tabindex:!0!==this.dragOnlyRange?this.computedTabindex:null}},thumbMinEvents:function(){return this.__getEvents("min")},thumbMaxEvents:function(){return this.__getEvents("max")},thumbMinLabel:function(){return void 0!==this.leftLabelValue?this.leftLabelValue:this.model.min},thumbMaxLabel:function(){return void 0!==this.rightLabelValue?this.rightLabelValue:this.model.max},thumbMinClasses:function(){var t=this.leftThumbColor||this.thumbColor||this.color;return"q-slider__thumb q-slider__thumb"+this.axis+" q-slider__thumb"+this.axis+"-"+(!0===this.isReversed?"rtl":"ltr")+" absolute non-selectable"+(!1!==this.preventFocus||"min"!==this.focus&&"both"!==this.focus?"":" q-slider--focus")+(void 0!==t?" text-"+t:"")},thumbMaxClasses:function(){var t=this.rightThumbColor||this.thumbColor||this.color;return"q-slider__thumb q-slider__thumb"+this.axis+" q-slider__thumb"+this.axis+"-"+(!0===this.isReversed?"rtl":"ltr")+" absolute non-selectable"+(!1!==this.preventFocus||"max"!==this.focus&&"both"!==this.focus?"":" q-slider--focus")+(void 0!==t?" text-"+t:"")},thumbMinStyle:function(){var t;return(t={width:this.thumbSize,height:this.thumbSize})[this.positionProp]=100*this.ratioMin+"%",t.zIndex="min"===this.focus?2:void 0,t},thumbMaxStyle:function(){var t;return(t={width:this.thumbSize,height:this.thumbSize})[this.positionProp]=100*this.ratioMax+"%",t.zIndex="max"===this.focus?2:void 0,t},thumbMinPinColor:function(){var t=this.leftLabelColor||this.labelColor;return void 0!==t?" text-"+t:""},thumbMaxPinColor:function(){var t=this.rightLabelColor||this.labelColor;return void 0!==t?" text-"+t:""},thumbMinTextContainerStyle:function(){return this.__getTextContainerStyle(this.ratioMin)},thumbMaxTextContainerStyle:function(){return this.__getTextContainerStyle(this.ratioMax)},thumbMinTextClass:function(){var t=this.leftLabelTextColor||this.labelTextColor;return"q-slider__text"+(void 0!==t?" text-"+t:"")},thumbMaxTextClass:function(){var t=this.rightLabelTextColor||this.labelTextColor;return"q-slider__text"+(void 0!==t?" text-"+t:"")},formAttrs:function(){return{type:"hidden",name:this.name,value:this.value.min+"|"+this.value.max}},modelUpdate:function(){return this.value.min+"|"+this.value.max+"|"+this.computedInnerMin+"|"+this.computedInnerMax}},watch:{modelUpdate:function(){this.model.min=null===this.value.min?this.computedInnerMin:ut(this.value.min,this.computedInnerMin,this.computedInnerMax),this.model.max=null===this.value.max?this.computedInnerMax:ut(this.value.max,this.computedInnerMin,this.computedInnerMax)}},methods:{__updateValue:function(t){this.model.min===this.value.min&&this.model.max===this.value.max||this.$emit("input",Object.assign({},this.model)),!0===t&&this.$emit("change",Object.assign({},this.model))},__getDragging:function(t){var e=this.$el.getBoundingClientRect(),i=e.left,n=e.top,s=e.width,o=e.height,r=!0===this.dragOnlyRange?0:!0===this.vertical?this.$refs.minThumb.offsetHeight/(2*o):this.$refs.minThumb.offsetWidth/(2*s),a={left:i,top:n,width:s,height:o,valueMin:this.model.min,valueMax:this.model.max,ratioMin:this.modelMinRatio,ratioMax:this.modelMaxRatio},l=this.__getDraggingRatio(t,a);return!0!==this.dragOnlyRange&&l=e.ratioMin?(i={minR:e.ratioMin,maxR:n,min:e.valueMin,max:s},this.focus="max"):(i={minR:n,maxR:e.ratioMin,min:s,max:e.valueMin},this.focus="min");break;case Wr:var o=n-e.offsetRatio,r=ut(e.ratioMin+o,0,1-e.rangeRatio),a=s-e.offsetModel,l=ut(e.valueMin+a,this.min,this.max-e.rangeValue);i={minR:r,maxR:r+e.rangeRatio,min:parseFloat(l.toFixed(this.computedDecimals)),max:parseFloat((l+e.rangeValue).toFixed(this.computedDecimals))},this.focus="both"}this.model=null===this.model.min||null===this.model.max?{min:i.min||this.min,max:i.max||this.max}:{min:i.min,max:i.max},!0!==this.snap||0===this.step?(this.curMinRatio=i.minR,this.curMaxRatio=i.maxR):(this.curMinRatio=this.__convertModelToRatio(this.model.min),this.curMaxRatio=this.__convertModelToRatio(this.model.max))},__getEvents:function(t){var e=this;return!0!==this.$q.platform.is.mobile&&!0===this.editable&&!0!==this.dragOnlyRange?{focus:function(){e.focus=t},blur:this.__onBlur,keydown:this.__onKeydown,keyup:this.__onKeyup}:{}},__onKeydown:function(t){var e;if(qn.includes(t.keyCode)){S(t);var i=([34,33].includes(t.keyCode)?10:1)*this.computedStep,n=([34,37,40].includes(t.keyCode)?-1:1)*(!0===this.isReversed?-1:1)*i;if("both"===this.focus){var s=this.model.max-this.model.min,o=ut(parseFloat((this.model.min+n).toFixed(this.computedDecimals)),this.computedInnerMin,this.computedInnerMax-s);this.model={min:o,max:parseFloat((o+s).toFixed(this.computedDecimals))}}else{if(!1===this.focus)return;var r=this.focus;this.model=Object.assign({},this.model,((e={})[r]=ut(parseFloat((this.model[r]+n).toFixed(this.computedDecimals)),"min"===r?this.computedInnerMin:this.model.min,"max"===r?this.computedInnerMax:this.model.max),e))}this.__updateValue()}}},render:function(t){var e=this,i=this.__getContent(t,function(i){i.push(e.__getThumb(t,{pinColor:e.thumbMinPinColor,textContainerStyle:e.thumbMinTextContainerStyle,textClass:e.thumbMinTextClass,label:e.thumbMinLabel,classes:e.thumbMinClasses,style:e.thumbMinStyle,nodeData:{ref:"minThumb",key:"tmin",on:e.thumbMinEvents,attrs:e.thumbAttrs}}),e.__getThumb(t,{pinColor:e.thumbMaxPinColor,textContainerStyle:e.thumbMaxTextContainerStyle,textClass:e.thumbMaxTextClass,label:e.thumbMaxLabel,classes:e.thumbMaxClasses,style:e.thumbMaxStyle,nodeData:{key:"tmax",on:e.thumbMaxEvents,attrs:e.thumbAttrs}}))});return t("div",{class:"q-range "+this.classes+(null===this.value.min||null===this.value.max?" q-slider--no-value":""),attrs:Object.assign({},this.attributes,{"aria-valuenow":this.value.min+"|"+this.value.max})},i)}}),Kr=t.extend({name:"QRating",mixins:[Mt,Li,Lt],props:{value:{type:Number,required:!0},max:{type:[String,Number],default:5},icon:[String,Array],iconHalf:[String,Array],iconSelected:[String,Array],color:[String,Array],colorHalf:[String,Array],colorSelected:[String,Array],noReset:Boolean,noDimming:Boolean,readonly:Boolean,disable:Boolean},data:function(){return{mouseModel:0}},computed:{editable:function(){return!0!==this.readonly&&!0!==this.disable},classes:function(){return"q-rating--"+(!0===this.editable?"":"non-")+"editable"+(!0===this.noDimming?" q-rating--no-dimming":"")+(!0===this.disable?" disabled":"")+(void 0!==this.color&&!1===Array.isArray(this.color)?" text-"+this.color:"")},iconData:function(){var t=!0===Array.isArray(this.icon)?this.icon.length:0,e=!0===Array.isArray(this.iconSelected)?this.iconSelected.length:0,i=!0===Array.isArray(this.iconHalf)?this.iconHalf.length:0,n=!0===Array.isArray(this.color)?this.color.length:0,s=!0===Array.isArray(this.colorSelected)?this.colorSelected.length:0,o=!0===Array.isArray(this.colorHalf)?this.colorHalf.length:0;return{iconLen:t,icon:t>0?this.icon[t-1]:this.icon,selIconLen:e,selIcon:e>0?this.iconSelected[e-1]:this.iconSelected,halfIconLen:i,halfIcon:i>0?this.iconHalf[e-1]:this.iconHalf,colorLen:n,color:n>0?this.color[n-1]:this.color,selColorLen:s,selColor:s>0?this.colorSelected[s-1]:this.colorSelected,halfColorLen:o,halfColor:o>0?this.colorHalf[o-1]:this.colorHalf}},stars:function(){for(var t=[],e=this.iconData,i=Math.ceil(this.value),n=void 0===this.iconHalf||i===this.value?-1:i,s=1;s<=this.max;s++){var o=0===this.mouseModel&&this.value>=s||this.mouseModel>0&&this.mouseModel>=s,r=n===s&&this.mouseModel0&&(!0===r?i:this.value)>=s&&this.mouseModel=250?50:Math.ceil(t/5)},Zr=["vertical","horizontal"],Jr={vertical:{offset:"offsetY",scroll:"scrollTop",dir:"down",dist:"y"},horizontal:{offset:"offsetX",scroll:"scrollLeft",dir:"right",dist:"x"}},ta=t.extend({name:"QScrollArea",mixins:[Gt],directives:{TouchPan:xn},props:{thumbStyle:Object,verticalThumbStyle:Object,horizontalThumbStyle:Object,barStyle:[Array,String,Object],verticalBarStyle:[Array,String,Object],horizontalBarStyle:[Array,String,Object],contentStyle:[Array,String,Object],contentActiveStyle:[Array,String,Object],delay:{type:[String,Number],default:1e3},visible:{type:Boolean,default:null},horizontal:Boolean,tabindex:[String,Number]},data:function(){return{tempShowing:!1,panning:!1,hover:!1,container:{vertical:0,horizontal:0},scroll:{vertical:{position:0,size:0},horizontal:{position:0,size:0}}}},computed:{classes:function(){return"q-scrollarea"+(!0===this.isDark?" q-scrollarea--dark":"")},verticalScrollPercentage:function(){var t=this.scroll.vertical.size-this.container.vertical;if(t<=0)return 0;var e=ut(this.scroll.vertical.position/t,0,1);return Math.round(1e4*e)/1e4},horizontalScrollPercentage:function(){var t=this.scroll.horizontal.size-this.container.horizontal;if(t<=0)return 0;var e=ut(this.scroll.horizontal.position/t,0,1);return Math.round(1e4*e)/1e4},verticalThumbHidden:function(){return!0!==(null===this.visible?this.hover:this.visible)&&!1===this.tempShowing&&!1===this.panning||this.scroll.vertical.size<=this.container.vertical+1},horizontalThumbHidden:function(){return!0!==(null===this.visible?this.hover:this.visible)&&!1===this.tempShowing&&!1===this.panning||this.scroll.horizontal.size<=this.container.horizontal+1},verticalThumbStart:function(){return this.verticalScrollPercentage*(this.container.vertical-this.verticalThumbSize)},horizontalThumbStart:function(){return this.horizontalScrollPercentage*(this.container.horizontal-this.horizontalThumbSize)},verticalThumbSize:function(){return Math.round(ut(this.container.vertical*this.container.vertical/this.scroll.vertical.size,Gr(this.container.vertical),this.container.vertical))},horizontalThumbSize:function(){return Math.round(ut(this.container.horizontal*this.container.horizontal/this.scroll.horizontal.size,Gr(this.container.horizontal),this.container.horizontal))},verticalStyle:function(){return Object.assign({},this.thumbStyle,this.verticalThumbStyle,{top:this.verticalThumbStart+"px",height:this.verticalThumbSize+"px"})},horizontalStyle:function(){return Object.assign({},this.thumbStyle,this.horizontalThumbStyle,{left:this.horizontalThumbStart+"px",width:this.horizontalThumbSize+"px"})},verticalThumbClass:function(){return"q-scrollarea__thumb q-scrollarea__thumb--v absolute-right"+(!0===this.verticalThumbHidden?" q-scrollarea__thumb--invisible":"")},horizontalThumbClass:function(){return"q-scrollarea__thumb q-scrollarea__thumb--h absolute-bottom"+(!0===this.horizontalThumbHidden?" q-scrollarea__thumb--invisible":"")},verticalBarClass:function(){return"q-scrollarea__bar q-scrollarea__bar--v absolute-right"+(!0===this.verticalThumbHidden?" q-scrollarea__bar--invisible":"")},horizontalBarClass:function(){return"q-scrollarea__bar q-scrollarea__bar--h absolute-bottom"+(!0===this.horizontalThumbHidden?" q-scrollarea__bar--invisible":"")},scrollComputed:function(){return{vertical:Object.assign({},this.scroll.vertical,{percentage:this.verticalScrollPercentage,thumbHidden:this.verticalThumbHidden,thumbStart:this.verticalThumbStart,thumbSize:this.verticalThumbSize,style:this.verticalStyle,thumbClass:this.verticalThumbClass,barClass:this.verticalBarClass}),horizontal:Object.assign({},this.scroll.horizontal,{percentage:this.horizontalScrollPercentage,thumbHidden:this.horizontalThumbHidden,thumbStart:this.horizontalThumbStart,thumbSize:this.horizontalThumbSize,style:this.horizontalStyle,thumbClass:this.horizontalThumbClass,barClass:this.horizontalBarClass})}},mainStyle:function(){return!0===this.verticalThumbHidden&&!0===this.horizontalThumbHidden?this.contentStyle:this.contentActiveStyle},verticalThumbDirectives:function(){var t=this;return[{name:"touch-pan",modifiers:{vertical:!0,prevent:!0,mouse:!0,mouseAllDir:!0},value:function(e){t.__panThumb(e,"vertical")}}]},horizontalThumbDirectives:function(){var t=this;return[{name:"touch-pan",modifiers:{horizontal:!0,prevent:!0,mouse:!0,mouseAllDir:!0},value:function(e){t.__panThumb(e,"horizontal")}}]},scrollAttrs:function(){if(void 0!==this.tabindex)return{tabindex:this.tabindex}}},methods:{getScrollTarget:function(){return this.$refs.target},getScroll:function(){var t=this,e={};return Zr.forEach(function(i){var n=t.scrollComputed[i];e[i+"Position"]=n.position,e[i+"Percentage"]=n.percentage,e[i+"Size"]=n.size,e[i+"ContainerSize"]=t.container[i]}),e},getScrollPosition:function(t){return"both"===t?{top:this.scroll.vertical.position,left:this.scroll.horizontal.position}:(!0!==Zr.includes(t)&&(t=!0===this.horizontal?"horizontal":"vertical"),this.scroll[t].position)},getScrollPercentage:function(t){return"both"===t?{top:this.verticalScrollPercentage,left:this.horizontalScrollPercentage}:(!0!==Zr.includes(t)&&(t=!0===this.horizontal?"horizontal":"vertical"),this[t+"ScrollPercentage"])},setScrollPosition:function(t,e,i){var n;if(!1===Zr.includes(t)){if(!0===isNaN(t))return void console.error("[QScrollArea]: wrong first param of setScrollPosition (vertical/horizontal)");t=(n=[!0===this.horizontal?"horizontal":"vertical",t,e])[0],e=n[1],i=n[2]}("vertical"===t?hi:fi)(this.$refs.target,e,i)},setScrollPercentage:function(t,e,i){var n;if(!1===Zr.includes(t)){if(!0===isNaN(t))return void console.error("[QScrollArea]: wrong first param of setScrollPercentage (vertical/horizontal)");t=(n=[!0===this.horizontal?"horizontal":"vertical",t,e])[0],e=n[1],i=n[2]}this.setScrollPosition(t,e*(this.scroll[t].size-this.container[t]),i)},__updateContainer:function(t){var e=t.height,i=t.width,n=!1;this.container.vertical!==e&&(this.container.vertical=e,n=!0),this.container.horizontal!==i&&(this.container.horizontal=i,n=!0),!0===n&&this.__startTimer()},__updateVerticalScroll:function(t){var e=t.position;this.scroll.vertical.position!==e&&(this.scroll.vertical.position=e,this.__startTimer())},__updateHorizontalScroll:function(t){var e=t.position;this.scroll.horizontal.position!==e&&(this.scroll.horizontal.position=e,this.__startTimer())},__updateScrollSize:function(t){var e=t.height,i=t.width,n=!1;this.scroll.horizontal.size!==i&&(this.scroll.horizontal.size=i,n=!0),this.scroll.vertical.size!==e&&(this.scroll.vertical.size=e,n=!0),!0===n&&this.__startTimer()},__panThumb:function(t,e){var i=this.scrollComputed[e];if(!0===t.isFinal){if(!0!==this.panning)return;this.panning=!1}else if(!0===t.isFirst){if(!0===i.thumbHidden)return;this.refPos=i.position,this.panning=!0}else if(!0!==this.panning)return;var n=Jr[e],s=this.container[e],o=(i.size-s)/(s-i.thumbSize),r=t.distance[n.dist],a=this.refPos+(t.direction===n.dir?1:-1)*r*o;this.__setScroll(a,e)},__mouseDown:function(t,e){var i=this.scrollComputed[e];if(!0!==i.thumbHidden){var n=t[Jr[e].offset];if(ni.thumbStart+i.thumbSize){var s=n-i.thumbSize/2;this.__setScroll(s/this.container[e]*i.size,e)}var o="vertical"===e?this.$refs.verticalThumb:this.$refs.horizontalThumb;void 0!==o&&o.dispatchEvent(new MouseEvent(t.type,t))}},__verticalMouseDown:function(t){this.__mouseDown(t,"vertical")},__horizontalMouseDown:function(t){this.__mouseDown(t,"horizontal")},__startTimer:function(){var t=this;!0===this.tempShowing?clearTimeout(this.timer):this.tempShowing=!0,this.timer=setTimeout(function(){t.tempShowing=!1},this.delay),void 0!==this.$listeners.scroll&&this.__emitScroll()},__setScroll:function(t,e){this.$refs.target[Jr[e].scroll]=t},__mouseEnter:function(){this.hover=!0},__mouseLeave:function(){this.hover=!1}},render:function(t){return t("div",{class:this.classes,on:ft(this,"desk",{mouseenter:this.__mouseEnter,mouseleave:this.__mouseLeave})},[t("div",{ref:"target",staticClass:"q-scrollarea__container scroll relative-position fit hide-scrollbar",attrs:this.scrollAttrs},[t("div",{staticClass:"q-scrollarea__content absolute",style:this.mainStyle},Et([t(Ln,{props:{debounce:0},on:ft(this,"resizeIn",{resize:this.__updateScrollSize})})],this,"default")),t(wr,{on:ft(this,"scrollV",{scroll:this.__updateVerticalScroll})}),t(wr,{props:{horizontal:!0},on:ft(this,"scrollH",{scroll:this.__updateHorizontalScroll})})]),t(Ln,{props:{debounce:0},on:ft(this,"resizeOut",{resize:this.__updateContainer})}),t("div",{class:this.verticalBarClass,style:[this.barStyle,this.verticalBarStyle],attrs:gt,on:ft(this,"barV",{mousedown:this.__verticalMouseDown})}),t("div",{class:this.horizontalBarClass,style:[this.barStyle,this.horizontalBarStyle],attrs:gt,on:ft(this,"barH",{mousedown:this.__horizontalMouseDown})}),t("div",{ref:"verticalThumb",class:this.verticalThumbClass,style:this.verticalStyle,attrs:gt,directives:this.verticalThumbDirectives}),t("div",{ref:"horizontalThumb",class:this.horizontalThumbClass,style:this.horizontalStyle,attrs:gt,directives:this.horizontalThumbDirectives})])},created:function(){var t=this;this.__emitScroll=T(function(){var e=t.getScroll();e.ref=t,t.$emit("scroll",e)},0)},activated:function(){if(void 0!==this.__scrollPosition){var t=this.getScrollTarget();void 0!==t&&(fi(t,this.__scrollPosition.left),hi(t,this.__scrollPosition.top))}},deactivated:function(){this.__scrollPosition=this.getScrollPosition("both")},beforeDestroy:function(){this.__emitScroll.cancel(),clearTimeout(this.timer)}}),ea=1e3,ia=["start","center","end","start-force","center-force","end-force"],na=Array.prototype.filter;function sa(t,e){return t+e}function oa(t,e,i,n,s,o,r,a){var l=t===window?document.scrollingElement||document.documentElement:t,c=!0===s?"offsetWidth":"offsetHeight",u={scrollStart:0,scrollViewSize:-r-a,scrollMaxSize:0,offsetStart:-r,offsetEnd:-a};if(!0===s?(t===window?(u.scrollStart=window.pageXOffset||window.scrollX||document.body.scrollLeft||0,u.scrollViewSize+=document.documentElement.clientWidth):(u.scrollStart=l.scrollLeft,u.scrollViewSize+=l.clientWidth),u.scrollMaxSize=l.scrollWidth,!0===o&&(u.scrollStart=(!0===ei()?u.scrollMaxSize-u.scrollViewSize:0)-u.scrollStart)):(t===window?(u.scrollStart=window.pageYOffset||window.scrollY||document.body.scrollTop||0,u.scrollViewSize+=document.documentElement.clientHeight):(u.scrollStart=l.scrollTop,u.scrollViewSize+=l.clientHeight),u.scrollMaxSize=l.scrollHeight),void 0!==i)for(var h=i.previousElementSibling;null!==h;h=h.previousElementSibling)!1===h.classList.contains("q-virtual-scroll--skip")&&(u.offsetStart+=h[c]);if(void 0!==n)for(var d=n.nextElementSibling;null!==d;d=d.nextElementSibling)!1===d.classList.contains("q-virtual-scroll--skip")&&(u.offsetEnd+=d[c]);if(e!==t){var p=l.getBoundingClientRect(),f=e.getBoundingClientRect();!0===s?(u.offsetStart+=f.left-p.left,u.offsetEnd-=f.width):(u.offsetStart+=f.top-p.top,u.offsetEnd-=f.height),t!==window&&(u.offsetStart+=u.scrollStart),u.offsetEnd+=u.scrollMaxSize-u.offsetStart}return u}function ra(t,e,i,n){"end"===e&&(e=(t===window?document.body:t)[!0===i?"scrollWidth":"scrollHeight"]),t===window?!0===i?(!0===n&&(e=(!0===ei()?document.body.scrollWidth-document.documentElement.clientWidth:0)-e),window.scrollTo(e,window.pageYOffset||window.scrollY||document.body.scrollTop||0)):window.scrollTo(window.pageXOffset||window.scrollX||document.body.scrollLeft||0,e):!0===i?(!0===n&&(e=(!0===ei()?t.scrollWidth-t.offsetWidth:0)-e),t.scrollLeft=e):t.scrollTop=e}function aa(t,e,i,n){if(i>=n)return 0;var s=e.length,o=Math.floor(i/ea),r=Math.floor((n-1)/ea)+1,a=t.slice(o,r).reduce(sa,0);return i%ea!=0&&(a-=e.slice(o*ea,i).reduce(sa,0)),n%ea!=0&&n!==s&&(a-=e.slice(n,r*ea).reduce(sa,0)),a}var la={virtualScrollSliceSize:{type:[Number,String],default:null},virtualScrollSliceRatioBefore:{type:[Number,String],default:1},virtualScrollSliceRatioAfter:{type:[Number,String],default:1},virtualScrollItemSize:{type:[Number,String],default:24},virtualScrollStickySizeStart:{type:[Number,String],default:0},virtualScrollStickySizeEnd:{type:[Number,String],default:0},tableColspan:[Number,String]};var ca=Object.keys(la),ua={props:Object.assign({},{virtualScrollHorizontal:Boolean},la),data:function(){return{virtualScrollSliceRange:{from:0,to:0}}},watch:{needsSliceRecalc:function(){this.__setVirtualScrollSize()},needsReset:function(){this.reset()}},computed:{needsReset:function(){var t=this;return["virtualScrollItemSizeComputed","virtualScrollHorizontal"].map(function(e){return t[e]}).join(";")},needsSliceRecalc:function(){var t=this;return this.needsReset+";"+["virtualScrollSliceRatioBefore","virtualScrollSliceRatioAfter"].map(function(e){return t[e]}).join(";")},colspanAttr:function(){return void 0!==this.tableColspan?{colspan:this.tableColspan}:{colspan:100}},virtualScrollItemSizeComputed:function(){return this.virtualScrollItemSize}},methods:{reset:function(){this.__resetVirtualScroll(this.prevToIndex,!0)},refresh:function(t){this.__resetVirtualScroll(void 0===t?this.prevToIndex:t)},scrollTo:function(t,e){var i=this.__getVirtualScrollTarget();if(void 0!==i&&null!==i&&8!==i.nodeType){var n=oa(i,this.__getVirtualScrollEl(),this.$refs.before,this.$refs.after,this.virtualScrollHorizontal,this.$q.lang.rtl,this.virtualScrollStickySizeStart,this.virtualScrollStickySizeEnd);this.__scrollViewSize!==n.scrollViewSize&&this.__setVirtualScrollSize(n.scrollViewSize),this.__setVirtualScrollSliceRange(i,n,Math.min(this.virtualScrollLength-1,Math.max(0,parseInt(t,10)||0)),0,ia.indexOf(e)>-1?e:this.prevToIndex>-1&&t>this.prevToIndex?"end":"start")}},__onVirtualScrollEvt:function(){var t=this.__getVirtualScrollTarget();if(void 0!==t&&null!==t&&8!==t.nodeType){var e=oa(t,this.__getVirtualScrollEl(),this.$refs.before,this.$refs.after,this.virtualScrollHorizontal,this.$q.lang.rtl,this.virtualScrollStickySizeStart,this.virtualScrollStickySizeEnd),i=this.virtualScrollLength-1,n=e.scrollMaxSize-e.offsetStart-e.offsetEnd-this.virtualScrollPaddingAfter;if(this.prevScrollStart!==e.scrollStart)if(e.scrollMaxSize<=0)this.__setVirtualScrollSliceRange(t,e,0,0);else{this.__scrollViewSize!==e.scrollViewSize&&this.__setVirtualScrollSize(e.scrollViewSize),this.__updateVirtualScrollSizes(this.virtualScrollSliceRange.from);var s=Math.floor(e.scrollMaxSize-Math.max(e.scrollViewSize,e.offsetEnd)-Math.min(this.virtualScrollSizes[i],e.scrollViewSize/2));if(s>0&&Math.ceil(e.scrollStart)>=s)this.__setVirtualScrollSliceRange(t,e,i,e.scrollMaxSize-e.offsetEnd-this.virtualScrollSizesAgg.reduce(sa,0));else{var o=0,r=e.scrollStart-e.offsetStart,a=r;if(r<=n&&r+e.scrollViewSize>=this.virtualScrollPaddingBefore)r-=this.virtualScrollPaddingBefore,o=this.virtualScrollSliceRange.from,a=r;else for(var l=0;r>=this.virtualScrollSizesAgg[l]&&o0&&o-e.scrollViewSize?(o++,a=r):a=this.virtualScrollSizes[o]+r;this.__setVirtualScrollSliceRange(t,e,o,a)}}}},__setVirtualScrollSliceRange:function(t,e,i,n,s){var o=this,r="string"==typeof s&&s.indexOf("-force")>-1,a=!0===r?s.replace("-force",""):s,l=void 0!==a?a:"start",c=Math.max(0,i-this.virtualScrollSliceSizeComputed[l]),u=c+this.virtualScrollSliceSizeComputed.total;u>this.virtualScrollLength&&(u=this.virtualScrollLength,c=Math.max(0,u-this.virtualScrollSliceSizeComputed.total)),this.prevScrollStart=e.scrollStart;var h=c!==this.virtualScrollSliceRange.from||u!==this.virtualScrollSliceRange.to;if(!1!==h||void 0!==a){var d=document.activeElement,p=this.$refs.content;!0===h&&void 0!==p&&p!==d&&!0===p.contains(d)&&(p.addEventListener("focusout",this.__onBlurRefocusFn),setTimeout(function(){void 0!==p&&p.removeEventListener("focusout",o.__onBlurRefocusFn)})),function t(e,i){void 0===t.isSupported&&(t.isSupported=void 0!==window.getComputedStyle(document.body).overflowAnchor),!1!==t.isSupported&&void 0!==e&&(cancelAnimationFrame(e._qOverflowAnimationFrame),e._qOverflowAnimationFrame=requestAnimationFrame(function(){if(void 0!==e){var t=e.children||[];na.call(t,function(t){return t.dataset&&void 0!==t.dataset.qVsAnchor}).forEach(function(t){delete t.dataset.qVsAnchor});var n=t[i];n&&n.dataset&&(n.dataset.qVsAnchor="")}}))}(p,i-c);var f=void 0!==a?this.virtualScrollSizes.slice(c,i).reduce(sa,0):0;if(!0===h){var m=u>=this.virtualScrollSliceRange.from&&c<=this.virtualScrollSliceRange.to?this.virtualScrollSliceRange.to:u;this.virtualScrollSliceRange={from:c,to:m},this.virtualScrollPaddingBefore=aa(this.virtualScrollSizesAgg,this.virtualScrollSizes,0,c),this.virtualScrollPaddingAfter=aa(this.virtualScrollSizesAgg,this.virtualScrollSizes,this.virtualScrollSliceRange.to,this.virtualScrollLength),requestAnimationFrame(function(){o.virtualScrollSliceRange.to!==u&&o.prevScrollStart===e.scrollStart&&(o.virtualScrollSliceRange={from:o.virtualScrollSliceRange.from,to:u},o.virtualScrollPaddingAfter=aa(o.virtualScrollSizesAgg,o.virtualScrollSizes,u,o.virtualScrollLength))})}requestAnimationFrame(function(){if(o.prevScrollStart===e.scrollStart){!0===h&&o.__updateVirtualScrollSizes(c);var s=o.virtualScrollSizes.slice(c,i).reduce(sa,0),l=s+e.offsetStart+o.virtualScrollPaddingBefore,u=l+o.virtualScrollSizes[i],d=l+n;if(void 0!==a){var p=s-f,m=e.scrollStart+p;d=!0!==r&&m=s;o--)this.virtualScrollSizes[o]=n;var r=Math.floor((this.virtualScrollLength-1)/ea);this.virtualScrollSizesAgg=[];for(var a=0;a<=r;a++){for(var l=0,c=Math.min((a+1)*ea,this.virtualScrollLength),u=a*ea;u=0?(this.__updateVirtualScrollSizes(this.virtualScrollSliceRange.from),this.$nextTick(function(){i.scrollTo(t)})):this.__onVirtualScrollEvt()},__setVirtualScrollSize:function(t){if(void 0===t&&"undefined"!=typeof window){var e=this.__getVirtualScrollTarget();void 0!==e&&null!==e&&8!==e.nodeType&&(t=oa(e,this.__getVirtualScrollEl(),this.$refs.before,this.$refs.after,this.virtualScrollHorizontal,this.$q.lang.rtl,this.virtualScrollStickySizeStart,this.virtualScrollStickySizeEnd).scrollViewSize)}this.__scrollViewSize=t;var i=parseFloat(this.virtualScrollSliceRatioBefore)||0,n=1+i+(parseFloat(this.virtualScrollSliceRatioAfter)||0),s=void 0===t||t<=0?1:Math.ceil(t/this.virtualScrollItemSizeComputed),o=Math.max(1,s,Math.ceil((this.virtualScrollSliceSize>0?this.virtualScrollSliceSize:10)/n));this.virtualScrollSliceSizeComputed={total:Math.ceil(o*n),start:Math.ceil(o*i),center:Math.ceil(o*(.5+i)),end:Math.ceil(o*(1+i)),view:s}},__padVirtualScroll:function(t,e,i){var n,s,o,r,a=!0===this.virtualScrollHorizontal?"width":"height",l={};return l["--q-virtual-scroll-item-"+a]=this.virtualScrollItemSizeComputed+"px",["tbody"===e?t(e,{staticClass:"q-virtual-scroll__padding",key:"before",ref:"before"},[t("tr",[t("td",{style:Object.assign((n={},n[a]=this.virtualScrollPaddingBefore+"px",n),l),attrs:this.colspanAttr})])]):t(e,{staticClass:"q-virtual-scroll__padding",key:"before",ref:"before",style:Object.assign((s={},s[a]=this.virtualScrollPaddingBefore+"px",s),l)}),t(e,{staticClass:"q-virtual-scroll__content",key:"content",ref:"content",attrs:{tabindex:-1}},i),"tbody"===e?t(e,{staticClass:"q-virtual-scroll__padding",key:"after",ref:"after"},[t("tr",[t("td",{style:Object.assign((o={},o[a]=this.virtualScrollPaddingAfter+"px",o),l),attrs:this.colspanAttr})])]):t(e,{staticClass:"q-virtual-scroll__padding",key:"after",ref:"after",style:Object.assign((r={},r[a]=this.virtualScrollPaddingAfter+"px",r),l)})]},__emitScroll:function(t){this.prevToIndex!==t&&(void 0!==this.qListeners["virtual-scroll"]&&this.$emit("virtual-scroll",{index:t,from:this.virtualScrollSliceRange.from,to:this.virtualScrollSliceRange.to-1,direction:te?i.__resetVirtualScroll():i.__updateMenu(!0))}))}},computed:{isOptionsDark:function(){return null===this.optionsDark?this.isDark:this.optionsDark},virtualScrollLength:function(){return Array.isArray(this.options)?this.options.length:0},fieldClass:function(){return"q-select q-field--auto-height q-select--with"+(!0!==this.useInput?"out":"")+"-input q-select--with"+(!0!==this.useChips?"out":"")+"-chips q-select--"+(!0===this.multiple?"multiple":"single")},computedInputClass:function(){return!0===this.hideSelected||0===this.innerValue.length?this.inputClass:void 0===this.inputClass?"q-field__input--padding":[this.inputClass,"q-field__input--padding"]},menuContentClass:function(){return(!0===this.virtualScrollHorizontal?"q-virtual-scroll--horizontal":"")+(this.popupContentClass?" "+this.popupContentClass:"")},innerValue:function(){var t=this,e=!0===this.mapOptions&&!0!==this.multiple,i=void 0===this.value||null===this.value&&!0!==e?[]:!0===this.multiple&&Array.isArray(this.value)?this.value:[this.value];if(!0===this.mapOptions&&!0===Array.isArray(this.options)){var n=!0===this.mapOptions&&void 0!==this.innerValueCache?this.innerValueCache:[],s=i.map(function(e){return t.__getOption(e,n)});return null===this.value&&!0===e?s.filter(function(t){return null!==t}):s}return i},noOptions:function(){return 0===this.virtualScrollLength},selectedString:function(){var t=this;return this.innerValue.map(function(e){return t.getOptionLabel(e)}).join(", ")},sanitizeFn:function(){return!0===this.optionsSanitize?function(){return!0}:function(t){return void 0!==t&&null!==t&&!0===t.sanitize}},displayAsText:function(){return!0===this.displayValueSanitize||void 0===this.displayValue&&(!0===this.optionsSanitize||this.innerValue.some(this.sanitizeFn))},computedTabindex:function(){return!0===this.focused?this.tabindex:-1},selectedScope:function(){var t=this;return this.innerValue.map(function(e,i){return{index:i,opt:e,sanitize:t.sanitizeFn(e),selected:!0,removeAtIndex:t.__removeAtIndexAndFocus,toggleOption:t.toggleOption,tabindex:t.computedTabindex}})},optionScope:function(){var t=this;if(0===this.virtualScrollLength)return[];var e=this.virtualScrollSliceRange,i=e.from,n=e.to,s=this.__optionScopeCache,o=s.options,r=s.optionEls;return this.options.slice(i,n).map(function(e,n){var s=t.isOptionDisabled(e),a=i+n,l={clickable:!0,active:!1,activeClass:t.computedOptionsSelectedClass,manualFocus:!0,focused:!1,disable:s,tabindex:-1,dense:t.optionsDense,dark:t.isOptionsDark},c={role:"option",id:t.targetUid+"_"+a};!0!==s&&(!0===t.isOptionSelected(e)&&(l.active=!0),c["aria-selected"]=!0===l.active?"true":"false",t.optionIndex===a&&(l.focused=!0));var u={click:function(){t.toggleOption(e)}};!0===t.$q.platform.is.desktop&&(u.mousemove=function(){!0===t.menu&&t.setOptionIndex(a)});var h={index:a,opt:e,sanitize:t.sanitizeFn(e),selected:l.active,focused:l.focused,toggleOption:t.toggleOption,setOptionIndex:t.setOptionIndex,itemProps:l,itemAttrs:c};return void 0!==o[n]&&!0===Gi(h,o[n])||(o[n]=h,r[n]=void 0),Object.assign({},h,{itemEvents:u})})},dropdownArrowIcon:function(){return void 0!==this.dropdownIcon?this.dropdownIcon:this.$q.iconSet.arrow.dropdown},squaredMenu:function(){return!1===this.optionsCover&&!0!==this.outlined&&!0!==this.standout&&!0!==this.borderless&&!0!==this.rounded},computedOptionsSelectedClass:function(){return void 0!==this.optionsSelectedClass?this.optionsSelectedClass:void 0!==this.color?"text-"+this.color:""},innerOptionsValue:function(){var t=this;return this.innerValue.map(function(e){return t.getOptionValue(e)})},getOptionValue:function(){return this.__getPropValueFn("optionValue","value")},getOptionLabel:function(){return this.__getPropValueFn("optionLabel","label")},isOptionDisabled:function(){var t=this.__getPropValueFn("optionDisable","disable");return function(){for(var e=[],i=arguments.length;i--;)e[i]=arguments[i];return!0===t.apply(null,e)}},inputControlEvents:function(){var t=this,e={input:this.__onInput,change:this.__onChange,keydown:this.__onTargetKeydown,keyup:this.__onTargetAutocomplete,keypress:this.__onTargetKeypress,focus:this.__selectInputText,click:function(e){!0===t.hasDialog&&b(e)}};return e.compositionstart=e.compositionupdate=e.compositionend=this.__onComposition,e},virtualScrollItemSizeComputed:function(){return void 0===this.virtualScrollItemSize?!0===this.optionsDense?24:48:this.virtualScrollItemSize},comboboxAttrs:function(){return{role:"combobox","aria-multiselectable":!0===this.multiple?"true":"false","aria-expanded":!0===this.menu?"true":"false","aria-owns":this.targetUid+"_lb","aria-activedescendant":this.targetUid+"_"+this.optionIndex}},listboxAttrs:function(){return{role:"listbox",id:this.targetUid+"_lb"}}},methods:{getEmittingOptionValue:function(t){return!0===this.emitValue?this.getOptionValue(t):t},removeAtIndex:function(t){if(t>-1&&t=this.maxValues)){var n=this.value.slice();this.$emit("add",{index:n.length,value:i}),n.push(i),this.$emit("input",n)}},toggleOption:function(t,e){if(!0===this.editable&&void 0!==t&&!0!==this.isOptionDisabled(t)){var i=this.getOptionValue(t);if(!0!==this.multiple)return!0!==e&&(this.updateInputValue(!0===this.fillInput?this.getOptionLabel(t):"",!0,!0),this.hidePopup()),void 0!==this.$refs.target&&this.$refs.target.focus(),void(0!==this.innerValue.length&&!0===Gi(this.getOptionValue(this.innerValue[0]),i)||this.$emit("input",!0===this.emitValue?i:t));if((!0!==this.hasDialog||!0===this.dialogFieldFocused)&&this.__focus(),this.__selectInputText(),0===this.innerValue.length){var n=!0===this.emitValue?i:t;return this.$emit("add",{index:0,value:n}),void this.$emit("input",!0===this.multiple?[n]:n)}var s=this.value.slice(),o=this.innerOptionsValue.findIndex(function(t){return Gi(t,i)});if(o>-1)this.$emit("remove",{index:o,value:s.splice(o,1)[0]});else{if(void 0!==this.maxValues&&s.length>=this.maxValues)return;var r=!0===this.emitValue?i:t;this.$emit("add",{index:s.length,value:r}),s.push(r)}this.$emit("input",s)}},setOptionIndex:function(t){if(!0===this.$q.platform.is.desktop){var e=t>-1&&t=0?this.getOptionLabel(this.options[i]):this.defaultInputValue))}},__getOption:function(t,e){var i=this,n=function(e){return Gi(i.getOptionValue(e),t)};return this.options.find(n)||e.find(n)||t},__getPropValueFn:function(t,e){var i=void 0!==this[t]?this[t]:e;return"function"==typeof i?i:function(t){return null!==t&&"object"==typeof t&&i in t?t[i]:t}},isOptionSelected:function(t){var e=this.getOptionValue(t);return void 0!==this.innerOptionsValue.find(function(t){return Gi(t,e)})},__selectInputText:function(t){!0===this.useInput&&void 0!==this.$refs.target&&(void 0===t||this.$refs.target===t.target&&t.target.value===this.selectedString)&&this.$refs.target.select()},__onTargetKeyup:function(t){!0===J(t,27)&&!0===this.menu&&(b(t),this.hidePopup(),this.__resetInputValue()),this.$emit("keyup",t)},__onTargetAutocomplete:function(t){var e=this,i=t.target.value;if(void 0===t.keyCode)if(t.target.value="",clearTimeout(this.inputTimer),this.__resetInputValue(),"string"==typeof i&&i.length>0){var n=i.toLocaleLowerCase(),s=function(t){var i=e.options.find(function(e){return t(e).toLocaleLowerCase()===n});return void 0!==i&&(-1===e.innerValue.indexOf(i)?e.toggleOption(i):e.hidePopup(),!0)},o=function(t){!0!==s(e.getOptionValue)&&!0!==s(e.getOptionLabel)&&!0!==t&&e.filter(i,!0,function(){return o(!0)})};o()}else this.__clearValue(t);else this.__onTargetKeyup(t)},__onTargetKeypress:function(t){this.$emit("keypress",t)},__onTargetKeydown:function(t){var e=this;if(this.$emit("keydown",t),!0!==Z(t)){var i=this.inputValue.length>0&&(void 0!==this.newValueMode||void 0!==this.qListeners["new-value"]),n=!0!==t.shiftKey&&!0!==this.multiple&&(this.optionIndex>-1||!0===i);if(27!==t.keyCode)if(9!==t.keyCode||!1!==n){if(void 0!==t.target&&t.target.id===this.targetUid){if(40===t.keyCode&&!0!==this.innerLoading&&!1===this.menu)return S(t),void this.showPopup();if(8!==t.keyCode||!0===this.hideSelected||0!==this.inputValue.length){35!==t.keyCode&&36!==t.keyCode||"string"==typeof this.inputValue&&0!==this.inputValue.length||(S(t),this.optionIndex=-1,this.moveOptionSelection(36===t.keyCode?1:-1,this.multiple)),33!==t.keyCode&&34!==t.keyCode||void 0===this.virtualScrollSliceSizeComputed||(S(t),this.optionIndex=Math.max(-1,Math.min(this.virtualScrollLength,this.optionIndex+(33===t.keyCode?-1:1)*this.virtualScrollSliceSizeComputed.view)),this.moveOptionSelection(33===t.keyCode?1:-1,this.multiple)),38!==t.keyCode&&40!==t.keyCode||(S(t),this.moveOptionSelection(38===t.keyCode?-1:1,this.multiple));var s=this.virtualScrollLength;if((void 0===this.searchBuffer||this.searchBufferExp0&&!0!==this.useInput&&void 0!==t.key&&1===t.key.length&&t.altKey===t.ctrlKey&&(32!==t.keyCode||this.searchBuffer.length>0)){!0!==this.menu&&this.showPopup(t);var o=t.key.toLocaleLowerCase(),r=1===this.searchBuffer.length&&this.searchBuffer[0]===o;this.searchBufferExp=Date.now()+1500,!1===r&&(S(t),this.searchBuffer+=o);var a=new RegExp("^"+this.searchBuffer.split("").map(function(t){return".*+?^${}()|[]\\".indexOf(t)>-1?"\\"+t:t}).join(".*"),"i"),l=this.optionIndex;if(!0===r||l<0||!0!==a.test(this.getOptionLabel(this.options[l])))do{l=ht(l+1,-1,s-1)}while(l!==this.optionIndex&&(!0===this.isOptionDisabled(this.options[l])||!0!==a.test(this.getOptionLabel(this.options[l]))));this.optionIndex!==l&&this.$nextTick(function(){e.setOptionIndex(l),e.scrollTo(l),l>=0&&!0===e.useInput&&!0===e.fillInput&&e.__setInputValue(e.getOptionLabel(e.options[l]))})}else if(13===t.keyCode||32===t.keyCode&&!0!==this.useInput&&""===this.searchBuffer||9===t.keyCode&&!1!==n)if(9!==t.keyCode&&S(t),this.optionIndex>-1&&this.optionIndex0&&i.push(t("input",{staticClass:"q-select__autocomplete-input",attrs:{autocomplete:this.autocomplete},on:ft(this,"autoinp",{keyup:this.__onTargetAutocomplete})}))}if(void 0!==this.nameProp&&!0!==this.disable&&this.innerOptionsValue.length>0){var o=this.innerOptionsValue.map(function(e){return t("option",{attrs:{value:e,selected:!0}})});i.push(t("select",{staticClass:"hidden",attrs:{name:this.nameProp,multiple:this.multiple}},o))}var r=!0===this.useInput||!0!==n?void 0:this.qAttrs;return t("div",{staticClass:"q-field__native row items-center",attrs:r},i)},__getOptions:function(t){var e=this;if(!0===this.menu){void 0!==this.$scopedSlots.option&&this.__optionScopeCache.optionSlot!==this.$scopedSlots.option&&(this.__optionScopeCache.optionSlot=this.$scopedSlots.option,this.__optionScopeCache.optionEls=[]);var i=void 0!==this.$scopedSlots.option?this.$scopedSlots.option:function(i){var n;return t(Zs,{key:i.index,props:i.itemProps,attrs:i.itemAttrs,on:i.itemEvents},[t(Js,[t(go,{domProps:(n={},n[!0===i.sanitize?"textContent":"innerHTML"]=e.getOptionLabel(i.opt),n)})])])},n=this.__optionScopeCache.optionEls,s=this.__padVirtualScroll(t,"div",this.optionScope.map(function(t,e){return void 0===n[e]&&(n[e]=i(t)),n[e]}));return void 0!==this.$scopedSlots["before-options"]&&(s=this.$scopedSlots["before-options"]().concat(s)),Et(s,this,"after-options")}},__getInnerAppend:function(t){return!0!==this.loading&&!0!==this.innerLoadingIndicator&&!0!==this.hideDropdownIcon?[t(Ut,{staticClass:"q-select__dropdown-icon"+(!0===this.menu?" rotate-180":""),props:{name:this.dropdownArrowIcon}})]:null},__getInput:function(t,e,i){var n=!0===i?Object.assign({},this.comboboxAttrs,this.qAttrs):void 0,s={ref:!0===i?"target":void 0,key:"i_t",staticClass:"q-field__input q-placeholder col",style:this.inputStyle,class:this.computedInputClass,domProps:{value:void 0!==this.inputValue?this.inputValue:""},attrs:Object.assign({},{type:"search"},n,{id:!0===i?this.targetUid:void 0,maxlength:this.maxlength,tabindex:this.tabindex,autocomplete:this.autocomplete,"data-autofocus":!0!==e&&this.autofocus||void 0,disabled:!0===this.disable,readonly:!0===this.readonly}),on:this.inputControlEvents};return!0!==e&&!0===this.hasDialog&&(s.staticClass+=" no-pointer-events"),t("input",s)},__onChange:function(t){this.__onComposition(t)},__onInput:function(t){var e=this;clearTimeout(this.inputTimer),t&&t.target&&!0===t.target.qComposing||(this.__setInputValue(t.target.value||""),this.userInputValue=!0,this.defaultInputValue=this.inputValue,!0===this.focused||!0===this.hasDialog&&!0!==this.dialogFieldFocused||this.__focus(),void 0!==this.qListeners.filter&&(this.inputTimer=setTimeout(function(){e.filter(e.inputValue)},this.inputDebounce)))},__setInputValue:function(t){this.inputValue!==t&&(this.inputValue=t,this.$emit("input-value",t))},updateInputValue:function(t,e,i){this.userInputValue=!0!==i,!0===this.useInput&&(this.__setInputValue(t),!0!==e&&!0===i||(this.defaultInputValue=t),!0!==e&&this.filter(t))},filter:function(t,e,i){var n=this;if(void 0!==this.qListeners.filter&&(!0===e||!0===this.focused)){!0===this.innerLoading?this.$emit("filter-abort"):(this.innerLoading=!0,this.innerLoadingIndicator=!0),""!==t&&!0!==this.multiple&&this.innerValue.length>0&&!0!==this.userInputValue&&t===this.getOptionLabel(this.innerValue[0])&&(t="");var s=setTimeout(function(){!0===n.menu&&(n.menu=!1)},10);clearTimeout(this.filterId),this.filterId=s,this.$emit("filter",t,function(t,o){!0!==e&&!0!==n.focused||n.filterId!==s||(clearTimeout(n.filterId),"function"==typeof t&&t(),n.innerLoadingIndicator=!1,n.$nextTick(function(){n.innerLoading=!1,!0===n.editable&&(!0===e?!0===n.menu&&n.hidePopup():!0===n.menu?n.__updateMenu(!0):n.menu=!0),"function"==typeof o&&n.$nextTick(function(){o(n)}),"function"==typeof i&&n.$nextTick(function(){i(n)})}))},function(){!0===n.focused&&n.filterId===s&&(clearTimeout(n.filterId),n.innerLoading=!1,n.innerLoadingIndicator=!1),!0===n.menu&&(n.menu=!1)})}},__getControlEvents:function(){var t=this,e=function(e){t.__onControlFocusout(e,function(){t.__resetInputValue(),t.__closeMenu()})};return{focusin:this.__onControlFocusin,focusout:e,"popup-show":this.__onControlPopupShow,"popup-hide":function(i){void 0!==i&&b(i),t.$emit("popup-hide",i),t.hasPopupOpen=!1,e(i)},click:function(e){if(!0!==t.hasDialog&&(y(e),!0===t.menu))return t.__closeMenu(),void(void 0!==t.$refs.target&&t.$refs.target.focus());t.showPopup(e)}}},__getControlChild:function(t){if(!1!==this.editable&&(!0===this.dialog||!0!==this.noOptions||void 0!==this.$scopedSlots["no-option"]))return this["__get"+(!0===this.hasDialog?"Dialog":"Menu")](t)},__getMenu:function(t){var e=!0===this.noOptions?void 0!==this.$scopedSlots["no-option"]?this.$scopedSlots["no-option"]({inputValue:this.inputValue}):null:this.__getOptions(t);return t(Mi,{ref:"menu",props:{value:this.menu,fit:!0!==this.menuShrink,cover:!0===this.optionsCover&&!0!==this.noOptions&&!0!==this.useInput,anchor:this.menuAnchor,self:this.menuSelf,offset:this.menuOffset,contentClass:this.menuContentClass,contentStyle:this.popupContentStyle,dark:this.isOptionsDark,noParentEvent:!0,noRefocus:!0,noFocus:!0,square:this.squaredMenu,transitionShow:this.transitionShow,transitionHide:this.transitionHide,separateClosePopup:!0},attrs:this.listboxAttrs,on:ft(this,"menu",{"&scroll":this.__onVirtualScrollEvt,"before-hide":this.__closeMenu,show:this.__onMenuShow})},e)},__onMenuShow:function(){this.__setVirtualScrollSize()},__onDialogFieldFocus:function(t){b(t),void 0!==this.$refs.target&&this.$refs.target.focus(),this.dialogFieldFocused=!0,window.scrollTo(window.pageXOffset||window.scrollX||document.body.scrollLeft||0,0)},__onDialogFieldBlur:function(t){var e=this;b(t),this.$nextTick(function(){e.dialogFieldFocused=!1})},__getDialog:function(t){var e=this,i=[t(jo,{staticClass:"col-auto "+this.fieldClass,props:Object.assign({},this.$props,{for:this.targetUid,dark:this.isOptionsDark,square:!0,filled:!0,itemAligned:!1,loading:this.innerLoadingIndicator,stackLabel:this.inputValue.length>0}),on:Object.assign({},this.qListeners,{focus:this.__onDialogFieldFocus,blur:this.__onDialogFieldBlur}),scopedSlots:Object.assign({},this.$scopedSlots,{rawControl:function(){return e.__getControl(t,!0)},before:void 0,after:void 0})})];return!0===this.menu&&i.push(t("div",{ref:"menuContent",staticClass:"scroll",class:this.menuContentClass,style:this.popupContentStyle,attrs:this.listboxAttrs,on:ft(this,"virtMenu",{click:y,"&scroll":this.__onVirtualScrollEvt})},!0===this.noOptions?void 0!==this.$scopedSlots["no-option"]?this.$scopedSlots["no-option"]({inputValue:this.inputValue}):null:this.__getOptions(t))),t(Ys,{ref:"dialog",props:{value:this.dialog,dark:this.isOptionsDark,position:!0===this.useInput?"top":void 0,transitionShow:this.transitionShowComputed,transitionHide:this.transitionHide},on:ft(this,"dialog",{"before-hide":this.__onDialogBeforeHide,hide:this.__onDialogHide,show:this.__onDialogShow})},[t("div",{staticClass:"q-select__dialog"+(!0===this.isOptionsDark?" q-select__dialog--dark q-dark":"")+(!0===this.dialogFieldFocused?" q-select__dialog--focused":"")},i)])},__onDialogBeforeHide:function(){!0!==c.is.mobile&&(this.$refs.dialog.__refocusTarget=this.$el.querySelector(".q-field__native > [tabindex]:last-child")),this.focused=!1},__onDialogHide:function(t){this.hidePopup(),!1===this.focused&&this.$emit("blur",t),this.__resetInputValue()},__onDialogShow:function(){var t=document.activeElement;null!==t&&t.id===this.targetUid||this.$refs.target===t||void 0===this.$refs.target||this.$refs.target.focus(),this.__setVirtualScrollSize()},__closeMenu:function(){void 0!==this.__optionScopeCache&&(this.__optionScopeCache.optionEls=[]),!0!==this.dialog&&(this.optionIndex=-1,!0===this.menu&&(this.menu=!1),!1===this.focused&&(clearTimeout(this.filterId),this.filterId=void 0,!0===this.innerLoading&&(this.$emit("filter-abort"),this.innerLoading=!1,this.innerLoadingIndicator=!1)))},showPopup:function(t){var e=this;!0===this.editable&&(!0===this.hasDialog?(this.__onControlFocusin(t),this.dialog=!0,this.$nextTick(function(){e.__focus()})):this.__focus(),void 0!==this.qListeners.filter?this.filter(this.inputValue):!0===this.noOptions&&void 0===this.$scopedSlots["no-option"]||(this.menu=!0))},hidePopup:function(){this.dialog=!1,this.__closeMenu()},__resetInputValue:function(){!0===this.useInput&&this.updateInputValue(!0!==this.multiple&&!0===this.fillInput&&this.innerValue.length>0&&this.getOptionLabel(this.innerValue[0])||"",!0,!0)},__updateMenu:function(t){var e=this,i=-1;if(!0===t){if(this.innerValue.length>0){var n=this.getOptionValue(this.innerValue[0]);i=this.options.findIndex(function(t){return Gi(e.getOptionValue(t),n)})}this.__resetVirtualScroll(i)}this.setOptionIndex(i)},__onPreRender:function(){this.hasDialog=(!0===this.$q.platform.is.mobile||"dialog"===this.behavior)&&("menu"!==this.behavior&&(!0!==this.useInput||(void 0!==this.$scopedSlots["no-option"]||void 0!==this.qListeners.filter||!1===this.noOptions))),this.transitionShowComputed=!0===this.hasDialog&&!0===this.useInput&&!0===this.$q.platform.is.ios?"fade":this.transitionShow},__onPostRender:function(){!1===this.dialog&&void 0!==this.$refs.menu&&this.$refs.menu.updatePosition()},updateMenuPosition:function(){this.__onPostRender()}},beforeMount:function(){this.__optionScopeCache={optionSlot:this.$scopedSlots.option,options:[],optionEls:[]}},beforeDestroy:function(){this.__optionScopeCache=void 0,clearTimeout(this.inputTimer)}}),pa=["text","rect","circle","QBtn","QBadge","QChip","QToolbar","QCheckbox","QRadio","QToggle","QSlider","QRange","QInput","QAvatar"],fa=["wave","pulse","pulse-x","pulse-y","fade","blink","none"],ma=t.extend({name:"QSkeleton",mixins:[Gt,$t,Lt],props:{type:{type:String,validator:function(t){return pa.includes(t)},default:"rect"},animation:{type:String,validator:function(t){return fa.includes(t)},default:"wave"},square:Boolean,bordered:Boolean,size:String,width:String,height:String},computed:{style:function(){return void 0!==this.size?{width:this.size,height:this.size}:{width:this.width,height:this.height}},classes:function(){return"q-skeleton--"+(!0===this.isDark?"dark":"light")+" q-skeleton--type-"+this.type+("none"!==this.animation?" q-skeleton--anim q-skeleton--anim-"+this.animation:"")+(!0===this.square?" q-skeleton--square":"")+(!0===this.bordered?" q-skeleton--bordered":"")}},render:function(t){return t(this.tag,{staticClass:"q-skeleton",class:this.classes,style:this.style,on:Object.assign({},this.qListeners)},Ot(this,"default"))}}),va=[["left","center","start","width"],["right","center","end","width"],["top","start","center","height"],["bottom","end","center","height"]],ga=t.extend({name:"QSlideItem",mixins:[Gt,Lt],props:{leftColor:String,rightColor:String,topColor:String,bottomColor:String},directives:{TouchPan:xn},computed:{langDir:function(){return!0===this.$q.lang.rtl?{left:"right",right:"left"}:{left:"left",right:"right"}}},methods:{reset:function(){this.$refs.content.style.transform="translate(0,0)",this.__emitSlide(this.__showing,0,!0)},__emitSlide:function(t,e,i){void 0!==this.qListeners.slide&&this.$emit("slide",{side:t,ratio:e,isReset:i})},__pan:function(t){var e,i,n,s=this,o=this.$refs.content;if(t.isFirst)this.__dir=null,this.__size={left:0,right:0,top:0,bottom:0},this.__scale=0,o.classList.add("no-transition"),va.forEach(function(t){if(void 0!==s.$scopedSlots[t[0]]){var e=s.$refs[t[0]+"Content"];e.style.transform="scale(1)",s.__size[t[0]]=e.getBoundingClientRect()[t[3]]}}),this.__axis="up"===t.direction||"down"===t.direction?"Y":"X";else{if(t.isFinal)return o.classList.remove("no-transition"),void(1===this.__scale?(o.style.transform="translate"+this.__axis+"("+100*this.__dir+"%)",this.timer=setTimeout(function(){s.$emit(s.__showing,{reset:s.reset}),s.$emit("action",{side:s.__showing,reset:s.reset})},230)):(o.style.transform="translate(0,0)",this.__emitSlide(this.__showing,0,!0)));t.direction="X"===this.__axis?t.offset.x<0?"left":"right":t.offset.y<0?"up":"down"}void 0===this.$scopedSlots.left&&t.direction===this.langDir.right||void 0===this.$scopedSlots.right&&t.direction===this.langDir.left||void 0===this.$scopedSlots.top&&"down"===t.direction||void 0===this.$scopedSlots.bottom&&"up"===t.direction?o.style.transform="translate(0,0)":("X"===this.__axis?(i="left"===t.direction?-1:1,e=1===i?this.langDir.left:this.langDir.right,n=t.distance.x):(i="up"===t.direction?-2:2,e=2===i?"top":"bottom",n=t.distance.y),null!==this.__dir&&Math.abs(i)!==Math.abs(this.__dir)||(this.__dir!==i&&(["left","right","top","bottom"].forEach(function(t){void 0!==s.$refs[t]&&(s.$refs[t].style.visibility=e===t?"visible":"hidden")}),this.__showing=e,this.__dir=i),this.__scale=Math.max(0,Math.min(1,(n-40)/this.__size[e])),o.style.transform="translate"+this.__axis+"("+n*i/Math.abs(i)+"px)",this.$refs[e+"Content"].style.transform="scale("+this.__scale+")",this.__emitSlide(e,this.__scale,!1)))}},render:function(t){var e=this,i=[],n={left:void 0!==this.$scopedSlots[this.langDir.right],right:void 0!==this.$scopedSlots[this.langDir.left],up:void 0!==this.$scopedSlots.bottom,down:void 0!==this.$scopedSlots.top},s=Object.keys(n).filter(function(t){return!0===n[t]});return va.forEach(function(n){var s=n[0];void 0!==e.$scopedSlots[s]&&i.push(t("div",{ref:s,class:"q-slide-item__"+s+" absolute-full row no-wrap items-"+n[1]+" justify-"+n[2]+(void 0!==e[s+"Color"]?" bg-"+e[s+"Color"]:"")},[t("div",{ref:s+"Content"},e.$scopedSlots[s]())]))}),i.push(t("div",{ref:"content",key:"content",staticClass:"q-slide-item__content",directives:s.length>0?mt(this,"dir#"+s.join(""),function(){var t={prevent:!0,stop:!0,mouse:!0};return s.forEach(function(e){t[e]=!0}),[{name:"touch-pan",value:e.__pan,modifiers:t}]}):null},Ot(this,"default"))),t("div",{staticClass:"q-slide-item q-item-type overflow-hidden",class:!0===this.isDark?"q-slide-item--dark q-dark":"",on:Object.assign({},this.qListeners)},i)},beforeDestroy:function(){clearTimeout(this.timer)}}),_a=t.extend({name:"QSpace",mixins:[Lt],render:function(t){return t("div",{staticClass:"q-space",on:Object.assign({},this.qListeners)})}}),ba=t.extend({name:"QSpinnerAudio",mixins:[ce],render:function(t){return t("svg",{staticClass:"q-spinner",class:this.classes,on:Object.assign({},this.qListeners),attrs:{focusable:"false",fill:"currentColor",width:this.cSize,height:this.cSize,viewBox:"0 0 55 80",xmlns:"http://www.w3.org/2000/svg"}},[t("g",{attrs:{transform:"matrix(1 0 0 -1 0 80)"}},[t("rect",{attrs:{width:"10",height:"20",rx:"3"}},[t("animate",{attrs:{attributeName:"height",begin:"0s",dur:"4.3s",values:"20;45;57;80;64;32;66;45;64;23;66;13;64;56;34;34;2;23;76;79;20",calcMode:"linear",repeatCount:"indefinite"}})]),t("rect",{attrs:{x:"15",width:"10",height:"80",rx:"3"}},[t("animate",{attrs:{attributeName:"height",begin:"0s",dur:"2s",values:"80;55;33;5;75;23;73;33;12;14;60;80",calcMode:"linear",repeatCount:"indefinite"}})]),t("rect",{attrs:{x:"30",width:"10",height:"50",rx:"3"}},[t("animate",{attrs:{attributeName:"height",begin:"0s",dur:"1.4s",values:"50;34;78;23;56;23;34;76;80;54;21;50",calcMode:"linear",repeatCount:"indefinite"}})]),t("rect",{attrs:{x:"45",width:"10",height:"30",rx:"3"}},[t("animate",{attrs:{attributeName:"height",begin:"0s",dur:"2s",values:"30;45;13;80;56;72;45;76;34;23;67;30",calcMode:"linear",repeatCount:"indefinite"}})])])])}}),ya=t.extend({name:"QSpinnerBall",mixins:[ce],render:function(t){return t("svg",{staticClass:"q-spinner",class:this.classes,on:Object.assign({},this.qListeners),attrs:{focusable:"false",stroke:"currentColor",width:this.cSize,height:this.cSize,viewBox:"0 0 57 57",xmlns:"http://www.w3.org/2000/svg"}},[t("g",{attrs:{transform:"translate(1 1)","stroke-width":"2",fill:"none","fill-rule":"evenodd"}},[t("circle",{attrs:{cx:"5",cy:"50",r:"5"}},[t("animate",{attrs:{attributeName:"cy",begin:"0s",dur:"2.2s",values:"50;5;50;50",calcMode:"linear",repeatCount:"indefinite"}}),t("animate",{attrs:{attributeName:"cx",begin:"0s",dur:"2.2s",values:"5;27;49;5",calcMode:"linear",repeatCount:"indefinite"}})]),t("circle",{attrs:{cx:"27",cy:"5",r:"5"}},[t("animate",{attrs:{attributeName:"cy",begin:"0s",dur:"2.2s",from:"5",to:"5",values:"5;50;50;5",calcMode:"linear",repeatCount:"indefinite"}}),t("animate",{attrs:{attributeName:"cx",begin:"0s",dur:"2.2s",from:"27",to:"27",values:"27;49;5;27",calcMode:"linear",repeatCount:"indefinite"}})]),t("circle",{attrs:{cx:"49",cy:"50",r:"5"}},[t("animate",{attrs:{attributeName:"cy",begin:"0s",dur:"2.2s",values:"50;50;5;50",calcMode:"linear",repeatCount:"indefinite"}}),t("animate",{attrs:{attributeName:"cx",from:"49",to:"49",begin:"0s",dur:"2.2s",values:"49;5;27;49",calcMode:"linear",repeatCount:"indefinite"}})])])])}}),Sa=t.extend({name:"QSpinnerBars",mixins:[ce],render:function(t){return t("svg",{staticClass:"q-spinner",class:this.classes,on:Object.assign({},this.qListeners),attrs:{focusable:"false",fill:"currentColor",width:this.cSize,height:this.cSize,viewBox:"0 0 135 140",xmlns:"http://www.w3.org/2000/svg"}},[t("rect",{attrs:{y:"10",width:"15",height:"120",rx:"6"}},[t("animate",{attrs:{attributeName:"height",begin:"0.5s",dur:"1s",values:"120;110;100;90;80;70;60;50;40;140;120",calcMode:"linear",repeatCount:"indefinite"}}),t("animate",{attrs:{attributeName:"y",begin:"0.5s",dur:"1s",values:"10;15;20;25;30;35;40;45;50;0;10",calcMode:"linear",repeatCount:"indefinite"}})]),t("rect",{attrs:{x:"30",y:"10",width:"15",height:"120",rx:"6"}},[t("animate",{attrs:{attributeName:"height",begin:"0.25s",dur:"1s",values:"120;110;100;90;80;70;60;50;40;140;120",calcMode:"linear",repeatCount:"indefinite"}}),t("animate",{attrs:{attributeName:"y",begin:"0.25s",dur:"1s",values:"10;15;20;25;30;35;40;45;50;0;10",calcMode:"linear",repeatCount:"indefinite"}})]),t("rect",{attrs:{x:"60",width:"15",height:"140",rx:"6"}},[t("animate",{attrs:{attributeName:"height",begin:"0s",dur:"1s",values:"120;110;100;90;80;70;60;50;40;140;120",calcMode:"linear",repeatCount:"indefinite"}}),t("animate",{attrs:{attributeName:"y",begin:"0s",dur:"1s",values:"10;15;20;25;30;35;40;45;50;0;10",calcMode:"linear",repeatCount:"indefinite"}})]),t("rect",{attrs:{x:"90",y:"10",width:"15",height:"120",rx:"6"}},[t("animate",{attrs:{attributeName:"height",begin:"0.25s",dur:"1s",values:"120;110;100;90;80;70;60;50;40;140;120",calcMode:"linear",repeatCount:"indefinite"}}),t("animate",{attrs:{attributeName:"y",begin:"0.25s",dur:"1s",values:"10;15;20;25;30;35;40;45;50;0;10",calcMode:"linear",repeatCount:"indefinite"}})]),t("rect",{attrs:{x:"120",y:"10",width:"15",height:"120",rx:"6"}},[t("animate",{attrs:{attributeName:"height",begin:"0.5s",dur:"1s",values:"120;110;100;90;80;70;60;50;40;140;120",calcMode:"linear",repeatCount:"indefinite"}}),t("animate",{attrs:{attributeName:"y",begin:"0.5s",dur:"1s",values:"10;15;20;25;30;35;40;45;50;0;10",calcMode:"linear",repeatCount:"indefinite"}})])])}}),wa=t.extend({name:"QSpinnerBox",mixins:[ce],render:function(t){return t("svg",{staticClass:"q-spinner",class:this.classes,on:Object.assign({},this.qListeners),attrs:{focusable:"false",width:this.cSize,height:this.cSize,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 100",preserveAspectRatio:"xMidYMid"}},[t("rect",{attrs:{x:"25",y:"25",width:"50",height:"50",fill:"none","stroke-width":"4",stroke:"currentColor"}},[t("animateTransform",{attrs:{id:"spinnerBox",attributeName:"transform",type:"rotate",from:"0 50 50",to:"180 50 50",dur:"0.5s",begin:"rectBox.end"}})]),t("rect",{attrs:{x:"27",y:"27",width:"46",height:"50",fill:"currentColor"}},[t("animate",{attrs:{id:"rectBox",attributeName:"height",begin:"0s;spinnerBox.end",dur:"1.3s",from:"50",to:"0",fill:"freeze"}})])])}}),Ca=t.extend({name:"QSpinnerClock",mixins:[ce],render:function(t){return t("svg",{staticClass:"q-spinner",class:this.classes,on:Object.assign({},this.qListeners),attrs:{focusable:"false",width:this.cSize,height:this.cSize,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 100",preserveAspectRatio:"xMidYMid"}},[t("circle",{attrs:{cx:"50",cy:"50",r:"48",fill:"none","stroke-width":"4","stroke-miterlimit":"10",stroke:"currentColor"}}),t("line",{attrs:{"stroke-linecap":"round","stroke-width":"4","stroke-miterlimit":"10",stroke:"currentColor",x1:"50",y1:"50",x2:"85",y2:"50.5"}},[t("animateTransform",{attrs:{attributeName:"transform",type:"rotate",from:"0 50 50",to:"360 50 50",dur:"2s",repeatCount:"indefinite"}})]),t("line",{attrs:{"stroke-linecap":"round","stroke-width":"4","stroke-miterlimit":"10",stroke:"currentColor",x1:"50",y1:"50",x2:"49.5",y2:"74"}},[t("animateTransform",{attrs:{attributeName:"transform",type:"rotate",from:"0 50 50",to:"360 50 50",dur:"15s",repeatCount:"indefinite"}})])])}}),xa=t.extend({name:"QSpinnerComment",mixins:[ce],render:function(t){return t("svg",{staticClass:"q-spinner",class:this.classes,on:Object.assign({},this.qListeners),attrs:{focusable:"false",width:this.cSize,height:this.cSize,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 100",preserveAspectRatio:"xMidYMid"}},[t("rect",{attrs:{x:"0",y:"0",width:"100",height:"100",fill:"none"}}),t("path",{attrs:{d:"M78,19H22c-6.6,0-12,5.4-12,12v31c0,6.6,5.4,12,12,12h37.2c0.4,3,1.8,5.6,3.7,7.6c2.4,2.5,5.1,4.1,9.1,4 c-1.4-2.1-2-7.2-2-10.3c0-0.4,0-0.8,0-1.3h8c6.6,0,12-5.4,12-12V31C90,24.4,84.6,19,78,19z",fill:"currentColor"}}),t("circle",{attrs:{cx:"30",cy:"47",r:"5",fill:"#fff"}},[t("animate",{attrs:{attributeName:"opacity",from:"0",to:"1",values:"0;1;1",keyTimes:"0;0.2;1",dur:"1s",repeatCount:"indefinite"}})]),t("circle",{attrs:{cx:"50",cy:"47",r:"5",fill:"#fff"}},[t("animate",{attrs:{attributeName:"opacity",from:"0",to:"1",values:"0;0;1;1",keyTimes:"0;0.2;0.4;1",dur:"1s",repeatCount:"indefinite"}})]),t("circle",{attrs:{cx:"70",cy:"47",r:"5",fill:"#fff"}},[t("animate",{attrs:{attributeName:"opacity",from:"0",to:"1",values:"0;0;1;1",keyTimes:"0;0.4;0.6;1",dur:"1s",repeatCount:"indefinite"}})])])}}),ka=t.extend({name:"QSpinnerCube",mixins:[ce],render:function(t){return t("svg",{staticClass:"q-spinner",class:this.classes,on:Object.assign({},this.qListeners),attrs:{focusable:"false",width:this.cSize,height:this.cSize,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 100",preserveAspectRatio:"xMidYMid"}},[t("rect",{attrs:{x:"0",y:"0",width:"100",height:"100",fill:"none"}}),t("g",{attrs:{transform:"translate(25 25)"}},[t("rect",{attrs:{x:"-20",y:"-20",width:"40",height:"40",fill:"currentColor",opacity:"0.9"}},[t("animateTransform",{attrs:{attributeName:"transform",type:"scale",from:"1.5",to:"1",repeatCount:"indefinite",begin:"0s",dur:"1s",calcMode:"spline",keySplines:"0.2 0.8 0.2 0.8",keyTimes:"0;1"}})])]),t("g",{attrs:{transform:"translate(75 25)"}},[t("rect",{attrs:{x:"-20",y:"-20",width:"40",height:"40",fill:"currentColor",opacity:"0.8"}},[t("animateTransform",{attrs:{attributeName:"transform",type:"scale",from:"1.5",to:"1",repeatCount:"indefinite",begin:"0.1s",dur:"1s",calcMode:"spline",keySplines:"0.2 0.8 0.2 0.8",keyTimes:"0;1"}})])]),t("g",{attrs:{transform:"translate(25 75)"}},[t("rect",{staticClass:"cube",attrs:{x:"-20",y:"-20",width:"40",height:"40",fill:"currentColor",opacity:"0.7"}},[t("animateTransform",{attrs:{attributeName:"transform",type:"scale",from:"1.5",to:"1",repeatCount:"indefinite",begin:"0.3s",dur:"1s",calcMode:"spline",keySplines:"0.2 0.8 0.2 0.8",keyTimes:"0;1"}})])]),t("g",{attrs:{transform:"translate(75 75)"}},[t("rect",{staticClass:"cube",attrs:{x:"-20",y:"-20",width:"40",height:"40",fill:"currentColor",opacity:"0.6"}},[t("animateTransform",{attrs:{attributeName:"transform",type:"scale",from:"1.5",to:"1",repeatCount:"indefinite",begin:"0.2s",dur:"1s",calcMode:"spline",keySplines:"0.2 0.8 0.2 0.8",keyTimes:"0;1"}})])])])}}),qa=t.extend({name:"QSpinnerDots",mixins:[ce],render:function(t){return t("svg",{staticClass:"q-spinner",class:this.classes,on:Object.assign({},this.qListeners),attrs:{focusable:"false",fill:"currentColor",width:this.cSize,height:this.cSize,viewBox:"0 0 120 30",xmlns:"http://www.w3.org/2000/svg"}},[t("circle",{attrs:{cx:"15",cy:"15",r:"15"}},[t("animate",{attrs:{attributeName:"r",from:"15",to:"15",begin:"0s",dur:"0.8s",values:"15;9;15",calcMode:"linear",repeatCount:"indefinite"}}),t("animate",{attrs:{attributeName:"fill-opacity",from:"1",to:"1",begin:"0s",dur:"0.8s",values:"1;.5;1",calcMode:"linear",repeatCount:"indefinite"}})]),t("circle",{attrs:{cx:"60",cy:"15",r:"9","fill-opacity":".3"}},[t("animate",{attrs:{attributeName:"r",from:"9",to:"9",begin:"0s",dur:"0.8s",values:"9;15;9",calcMode:"linear",repeatCount:"indefinite"}}),t("animate",{attrs:{attributeName:"fill-opacity",from:".5",to:".5",begin:"0s",dur:"0.8s",values:".5;1;.5",calcMode:"linear",repeatCount:"indefinite"}})]),t("circle",{attrs:{cx:"105",cy:"15",r:"15"}},[t("animate",{attrs:{attributeName:"r",from:"15",to:"15",begin:"0s",dur:"0.8s",values:"15;9;15",calcMode:"linear",repeatCount:"indefinite"}}),t("animate",{attrs:{attributeName:"fill-opacity",from:"1",to:"1",begin:"0s",dur:"0.8s",values:"1;.5;1",calcMode:"linear",repeatCount:"indefinite"}})])])}}),Ta=t.extend({name:"QSpinnerFacebook",mixins:[ce],render:function(t){return t("svg",{staticClass:"q-spinner",class:this.classes,on:Object.assign({},this.qListeners),attrs:{focusable:"false",width:this.cSize,height:this.cSize,viewBox:"0 0 100 100",xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid"}},[t("g",{attrs:{transform:"translate(20 50)"}},[t("rect",{attrs:{x:"-10",y:"-30",width:"20",height:"60",fill:"currentColor",opacity:"0.6"}},[t("animateTransform",{attrs:{attributeName:"transform",type:"scale",from:"2",to:"1",begin:"0s",repeatCount:"indefinite",dur:"1s",calcMode:"spline",keySplines:"0.1 0.9 0.4 1",keyTimes:"0;1",values:"2;1"}})])]),t("g",{attrs:{transform:"translate(50 50)"}},[t("rect",{attrs:{x:"-10",y:"-30",width:"20",height:"60",fill:"currentColor",opacity:"0.8"}},[t("animateTransform",{attrs:{attributeName:"transform",type:"scale",from:"2",to:"1",begin:"0.1s",repeatCount:"indefinite",dur:"1s",calcMode:"spline",keySplines:"0.1 0.9 0.4 1",keyTimes:"0;1",values:"2;1"}})])]),t("g",{attrs:{transform:"translate(80 50)"}},[t("rect",{attrs:{x:"-10",y:"-30",width:"20",height:"60",fill:"currentColor",opacity:"0.9"}},[t("animateTransform",{attrs:{attributeName:"transform",type:"scale",from:"2",to:"1",begin:"0.2s",repeatCount:"indefinite",dur:"1s",calcMode:"spline",keySplines:"0.1 0.9 0.4 1",keyTimes:"0;1",values:"2;1"}})])])])}}),Ma=t.extend({name:"QSpinnerGears",mixins:[ce],render:function(t){return t("svg",{staticClass:"q-spinner",class:this.classes,on:Object.assign({},this.qListeners),attrs:{focusable:"false",width:this.cSize,height:this.cSize,viewBox:"0 0 100 100",preserveAspectRatio:"xMidYMid",xmlns:"http://www.w3.org/2000/svg"}},[t("g",{attrs:{transform:"translate(-20,-20)"}},[t("path",{attrs:{d:"M79.9,52.6C80,51.8,80,50.9,80,50s0-1.8-0.1-2.6l-5.1-0.4c-0.3-2.4-0.9-4.6-1.8-6.7l4.2-2.9c-0.7-1.6-1.6-3.1-2.6-4.5 L70,35c-1.4-1.9-3.1-3.5-4.9-4.9l2.2-4.6c-1.4-1-2.9-1.9-4.5-2.6L59.8,27c-2.1-0.9-4.4-1.5-6.7-1.8l-0.4-5.1C51.8,20,50.9,20,50,20 s-1.8,0-2.6,0.1l-0.4,5.1c-2.4,0.3-4.6,0.9-6.7,1.8l-2.9-4.1c-1.6,0.7-3.1,1.6-4.5,2.6l2.1,4.6c-1.9,1.4-3.5,3.1-5,4.9l-4.5-2.1 c-1,1.4-1.9,2.9-2.6,4.5l4.1,2.9c-0.9,2.1-1.5,4.4-1.8,6.8l-5,0.4C20,48.2,20,49.1,20,50s0,1.8,0.1,2.6l5,0.4 c0.3,2.4,0.9,4.7,1.8,6.8l-4.1,2.9c0.7,1.6,1.6,3.1,2.6,4.5l4.5-2.1c1.4,1.9,3.1,3.5,5,4.9l-2.1,4.6c1.4,1,2.9,1.9,4.5,2.6l2.9-4.1 c2.1,0.9,4.4,1.5,6.7,1.8l0.4,5.1C48.2,80,49.1,80,50,80s1.8,0,2.6-0.1l0.4-5.1c2.3-0.3,4.6-0.9,6.7-1.8l2.9,4.2 c1.6-0.7,3.1-1.6,4.5-2.6L65,69.9c1.9-1.4,3.5-3,4.9-4.9l4.6,2.2c1-1.4,1.9-2.9,2.6-4.5L73,59.8c0.9-2.1,1.5-4.4,1.8-6.7L79.9,52.6 z M50,65c-8.3,0-15-6.7-15-15c0-8.3,6.7-15,15-15s15,6.7,15,15C65,58.3,58.3,65,50,65z",fill:"currentColor"}},[t("animateTransform",{attrs:{attributeName:"transform",type:"rotate",from:"90 50 50",to:"0 50 50",dur:"1s",repeatCount:"indefinite"}})])]),t("g",{attrs:{transform:"translate(20,20) rotate(15 50 50)"}},[t("path",{attrs:{d:"M79.9,52.6C80,51.8,80,50.9,80,50s0-1.8-0.1-2.6l-5.1-0.4c-0.3-2.4-0.9-4.6-1.8-6.7l4.2-2.9c-0.7-1.6-1.6-3.1-2.6-4.5 L70,35c-1.4-1.9-3.1-3.5-4.9-4.9l2.2-4.6c-1.4-1-2.9-1.9-4.5-2.6L59.8,27c-2.1-0.9-4.4-1.5-6.7-1.8l-0.4-5.1C51.8,20,50.9,20,50,20 s-1.8,0-2.6,0.1l-0.4,5.1c-2.4,0.3-4.6,0.9-6.7,1.8l-2.9-4.1c-1.6,0.7-3.1,1.6-4.5,2.6l2.1,4.6c-1.9,1.4-3.5,3.1-5,4.9l-4.5-2.1 c-1,1.4-1.9,2.9-2.6,4.5l4.1,2.9c-0.9,2.1-1.5,4.4-1.8,6.8l-5,0.4C20,48.2,20,49.1,20,50s0,1.8,0.1,2.6l5,0.4 c0.3,2.4,0.9,4.7,1.8,6.8l-4.1,2.9c0.7,1.6,1.6,3.1,2.6,4.5l4.5-2.1c1.4,1.9,3.1,3.5,5,4.9l-2.1,4.6c1.4,1,2.9,1.9,4.5,2.6l2.9-4.1 c2.1,0.9,4.4,1.5,6.7,1.8l0.4,5.1C48.2,80,49.1,80,50,80s1.8,0,2.6-0.1l0.4-5.1c2.3-0.3,4.6-0.9,6.7-1.8l2.9,4.2 c1.6-0.7,3.1-1.6,4.5-2.6L65,69.9c1.9-1.4,3.5-3,4.9-4.9l4.6,2.2c1-1.4,1.9-2.9,2.6-4.5L73,59.8c0.9-2.1,1.5-4.4,1.8-6.7L79.9,52.6 z M50,65c-8.3,0-15-6.7-15-15c0-8.3,6.7-15,15-15s15,6.7,15,15C65,58.3,58.3,65,50,65z",fill:"currentColor"}},[t("animateTransform",{attrs:{attributeName:"transform",type:"rotate",from:"0 50 50",to:"90 50 50",dur:"1s",repeatCount:"indefinite"}})])])])}}),$a=t.extend({name:"QSpinnerGrid",mixins:[ce],render:function(t){return t("svg",{staticClass:"q-spinner",class:this.classes,on:Object.assign({},this.qListeners),attrs:{focusable:"false",fill:"currentColor",width:this.cSize,height:this.cSize,viewBox:"0 0 105 105",xmlns:"http://www.w3.org/2000/svg"}},[t("circle",{attrs:{cx:"12.5",cy:"12.5",r:"12.5"}},[t("animate",{attrs:{attributeName:"fill-opacity",begin:"0s",dur:"1s",values:"1;.2;1",calcMode:"linear",repeatCount:"indefinite"}})]),t("circle",{attrs:{cx:"12.5",cy:"52.5",r:"12.5","fill-opacity":".5"}},[t("animate",{attrs:{attributeName:"fill-opacity",begin:"100ms",dur:"1s",values:"1;.2;1",calcMode:"linear",repeatCount:"indefinite"}})]),t("circle",{attrs:{cx:"52.5",cy:"12.5",r:"12.5"}},[t("animate",{attrs:{attributeName:"fill-opacity",begin:"300ms",dur:"1s",values:"1;.2;1",calcMode:"linear",repeatCount:"indefinite"}})]),t("circle",{attrs:{cx:"52.5",cy:"52.5",r:"12.5"}},[t("animate",{attrs:{attributeName:"fill-opacity",begin:"600ms",dur:"1s",values:"1;.2;1",calcMode:"linear",repeatCount:"indefinite"}})]),t("circle",{attrs:{cx:"92.5",cy:"12.5",r:"12.5"}},[t("animate",{attrs:{attributeName:"fill-opacity",begin:"800ms",dur:"1s",values:"1;.2;1",calcMode:"linear",repeatCount:"indefinite"}})]),t("circle",{attrs:{cx:"92.5",cy:"52.5",r:"12.5"}},[t("animate",{attrs:{attributeName:"fill-opacity",begin:"400ms",dur:"1s",values:"1;.2;1",calcMode:"linear",repeatCount:"indefinite"}})]),t("circle",{attrs:{cx:"12.5",cy:"92.5",r:"12.5"}},[t("animate",{attrs:{attributeName:"fill-opacity",begin:"700ms",dur:"1s",values:"1;.2;1",calcMode:"linear",repeatCount:"indefinite"}})]),t("circle",{attrs:{cx:"52.5",cy:"92.5",r:"12.5"}},[t("animate",{attrs:{attributeName:"fill-opacity",begin:"500ms",dur:"1s",values:"1;.2;1",calcMode:"linear",repeatCount:"indefinite"}})]),t("circle",{attrs:{cx:"92.5",cy:"92.5",r:"12.5"}},[t("animate",{attrs:{attributeName:"fill-opacity",begin:"200ms",dur:"1s",values:"1;.2;1",calcMode:"linear",repeatCount:"indefinite"}})])])}}),La=t.extend({name:"QSpinnerHearts",mixins:[ce],render:function(t){return t("svg",{staticClass:"q-spinner",class:this.classes,on:Object.assign({},this.qListeners),attrs:{focusable:"false",fill:"currentColor",width:this.cSize,height:this.cSize,viewBox:"0 0 140 64",xmlns:"http://www.w3.org/2000/svg"}},[t("path",{attrs:{d:"M30.262 57.02L7.195 40.723c-5.84-3.976-7.56-12.06-3.842-18.063 3.715-6 11.467-7.65 17.306-3.68l4.52 3.76 2.6-5.274c3.716-6.002 11.47-7.65 17.304-3.68 5.84 3.97 7.56 12.054 3.842 18.062L34.49 56.118c-.897 1.512-2.793 1.915-4.228.9z","fill-opacity":".5"}},[t("animate",{attrs:{attributeName:"fill-opacity",begin:"0s",dur:"1.4s",values:"0.5;1;0.5",calcMode:"linear",repeatCount:"indefinite"}})]),t("path",{attrs:{d:"M105.512 56.12l-14.44-24.272c-3.716-6.008-1.996-14.093 3.843-18.062 5.835-3.97 13.588-2.322 17.306 3.68l2.6 5.274 4.52-3.76c5.84-3.97 13.593-2.32 17.308 3.68 3.718 6.003 1.998 14.088-3.842 18.064L109.74 57.02c-1.434 1.014-3.33.61-4.228-.9z","fill-opacity":".5"}},[t("animate",{attrs:{attributeName:"fill-opacity",begin:"0.7s",dur:"1.4s",values:"0.5;1;0.5",calcMode:"linear",repeatCount:"indefinite"}})]),t("path",{attrs:{d:"M67.408 57.834l-23.01-24.98c-5.864-6.15-5.864-16.108 0-22.248 5.86-6.14 15.37-6.14 21.234 0L70 16.168l4.368-5.562c5.863-6.14 15.375-6.14 21.235 0 5.863 6.14 5.863 16.098 0 22.247l-23.007 24.98c-1.43 1.556-3.757 1.556-5.188 0z"}})])}}),Oa=t.extend({name:"QSpinnerHourglass",mixins:[ce],render:function(t){return t("svg",{staticClass:"q-spinner",class:this.classes,on:Object.assign({},this.qListeners),attrs:{focusable:"false",width:this.cSize,height:this.cSize,viewBox:"0 0 100 100",preserveAspectRatio:"xMidYMid",xmlns:"http://www.w3.org/2000/svg"}},[t("g",[t("path",{staticClass:"glass",attrs:{fill:"none",stroke:"currentColor","stroke-width":"5","stroke-miterlimit":"10",d:"M58.4,51.7c-0.9-0.9-1.4-2-1.4-2.3s0.5-0.4,1.4-1.4 C70.8,43.8,79.8,30.5,80,15.5H70H30H20c0.2,15,9.2,28.1,21.6,32.3c0.9,0.9,1.4,1.2,1.4,1.5s-0.5,1.6-1.4,2.5 C29.2,56.1,20.2,69.5,20,85.5h10h40h10C79.8,69.5,70.8,55.9,58.4,51.7z"}}),t("clipPath",{attrs:{id:"uil-hourglass-clip1"}},[t("rect",{staticClass:"clip",attrs:{x:"15",y:"20",width:"70",height:"25"}},[t("animate",{attrs:{attributeName:"height",from:"25",to:"0",dur:"1s",repeatCount:"indefinite",values:"25;0;0",keyTimes:"0;0.5;1"}}),t("animate",{attrs:{attributeName:"y",from:"20",to:"45",dur:"1s",repeatCount:"indefinite",values:"20;45;45",keyTimes:"0;0.5;1"}})])]),t("clipPath",{attrs:{id:"uil-hourglass-clip2"}},[t("rect",{staticClass:"clip",attrs:{x:"15",y:"55",width:"70",height:"25"}},[t("animate",{attrs:{attributeName:"height",from:"0",to:"25",dur:"1s",repeatCount:"indefinite",values:"0;25;25",keyTimes:"0;0.5;1"}}),t("animate",{attrs:{attributeName:"y",from:"80",to:"55",dur:"1s",repeatCount:"indefinite",values:"80;55;55",keyTimes:"0;0.5;1"}})])]),t("path",{staticClass:"sand",attrs:{d:"M29,23c3.1,11.4,11.3,19.5,21,19.5S67.9,34.4,71,23H29z","clip-path":"url(#uil-hourglass-clip1)",fill:"currentColor"}}),t("path",{staticClass:"sand",attrs:{d:"M71.6,78c-3-11.6-11.5-20-21.5-20s-18.5,8.4-21.5,20H71.6z","clip-path":"url(#uil-hourglass-clip2)",fill:"currentColor"}}),t("animateTransform",{attrs:{attributeName:"transform",type:"rotate",from:"0 50 50",to:"180 50 50",repeatCount:"indefinite",dur:"1s",values:"0 50 50;0 50 50;180 50 50",keyTimes:"0;0.7;1"}})])])}}),Ba=t.extend({name:"QSpinnerInfinity",mixins:[ce],render:function(t){return t("svg",{staticClass:"q-spinner",class:this.classes,on:Object.assign({},this.qListeners),attrs:{focusable:"false",width:this.cSize,height:this.cSize,viewBox:"0 0 100 100",preserveAspectRatio:"xMidYMid"}},[t("path",{attrs:{d:"M24.3,30C11.4,30,5,43.3,5,50s6.4,20,19.3,20c19.3,0,32.1-40,51.4-40C88.6,30,95,43.3,95,50s-6.4,20-19.3,20C56.4,70,43.6,30,24.3,30z",fill:"none",stroke:"currentColor","stroke-width":"8","stroke-dasharray":"10.691205342610678 10.691205342610678","stroke-dashoffset":"0"}},[t("animate",{attrs:{attributeName:"stroke-dashoffset",from:"0",to:"21.382410685221355",begin:"0",dur:"2s",repeatCount:"indefinite",fill:"freeze"}})])])}}),Ea=t.extend({name:"QSpinnerIos",mixins:[ce],render:function(t){return t("svg",{staticClass:"q-spinner",class:this.classes,on:Object.assign({},this.qListeners),attrs:{focusable:"false",width:this.cSize,height:this.cSize,stroke:"currentColor",fill:"currentColor",viewBox:"0 0 64 64"}},[t("g",{attrs:{"stroke-width":"4","stroke-linecap":"round"}},[t("line",{attrs:{y1:"17",y2:"29",transform:"translate(32,32) rotate(180)"}},[t("animate",{attrs:{attributeName:"stroke-opacity",dur:"750ms",values:"1;.85;.7;.65;.55;.45;.35;.25;.15;.1;0;1",repeatCount:"indefinite"}})]),t("line",{attrs:{y1:"17",y2:"29",transform:"translate(32,32) rotate(210)"}},[t("animate",{attrs:{attributeName:"stroke-opacity",dur:"750ms",values:"0;1;.85;.7;.65;.55;.45;.35;.25;.15;.1;0",repeatCount:"indefinite"}})]),t("line",{attrs:{y1:"17",y2:"29",transform:"translate(32,32) rotate(240)"}},[t("animate",{attrs:{attributeName:"stroke-opacity",dur:"750ms",values:".1;0;1;.85;.7;.65;.55;.45;.35;.25;.15;.1",repeatCount:"indefinite"}})]),t("line",{attrs:{y1:"17",y2:"29",transform:"translate(32,32) rotate(270)"}},[t("animate",{attrs:{attributeName:"stroke-opacity",dur:"750ms",values:".15;.1;0;1;.85;.7;.65;.55;.45;.35;.25;.15",repeatCount:"indefinite"}})]),t("line",{attrs:{y1:"17",y2:"29",transform:"translate(32,32) rotate(300)"}},[t("animate",{attrs:{attributeName:"stroke-opacity",dur:"750ms",values:".25;.15;.1;0;1;.85;.7;.65;.55;.45;.35;.25",repeatCount:"indefinite"}})]),t("line",{attrs:{y1:"17",y2:"29",transform:"translate(32,32) rotate(330)"}},[t("animate",{attrs:{attributeName:"stroke-opacity",dur:"750ms",values:".35;.25;.15;.1;0;1;.85;.7;.65;.55;.45;.35",repeatCount:"indefinite"}})]),t("line",{attrs:{y1:"17",y2:"29",transform:"translate(32,32) rotate(0)"}},[t("animate",{attrs:{attributeName:"stroke-opacity",dur:"750ms",values:".45;.35;.25;.15;.1;0;1;.85;.7;.65;.55;.45",repeatCount:"indefinite"}})]),t("line",{attrs:{y1:"17",y2:"29",transform:"translate(32,32) rotate(30)"}},[t("animate",{attrs:{attributeName:"stroke-opacity",dur:"750ms",values:".55;.45;.35;.25;.15;.1;0;1;.85;.7;.65;.55",repeatCount:"indefinite"}})]),t("line",{attrs:{y1:"17",y2:"29",transform:"translate(32,32) rotate(60)"}},[t("animate",{attrs:{attributeName:"stroke-opacity",dur:"750ms",values:".65;.55;.45;.35;.25;.15;.1;0;1;.85;.7;.65",repeatCount:"indefinite"}})]),t("line",{attrs:{y1:"17",y2:"29",transform:"translate(32,32) rotate(90)"}},[t("animate",{attrs:{attributeName:"stroke-opacity",dur:"750ms",values:".7;.65;.55;.45;.35;.25;.15;.1;0;1;.85;.7",repeatCount:"indefinite"}})]),t("line",{attrs:{y1:"17",y2:"29",transform:"translate(32,32) rotate(120)"}},[t("animate",{attrs:{attributeName:"stroke-opacity",dur:"750ms",values:".85;.7;.65;.55;.45;.35;.25;.15;.1;0;1;.85",repeatCount:"indefinite"}})]),t("line",{attrs:{y1:"17",y2:"29",transform:"translate(32,32) rotate(150)"}},[t("animate",{attrs:{attributeName:"stroke-opacity",dur:"750ms",values:"1;.85;.7;.65;.55;.45;.35;.25;.15;.1;0;1",repeatCount:"indefinite"}})])])])}}),za=t.extend({name:"QSpinnerOrbit",mixins:[ce],render:function(t){return t("svg",{staticClass:"q-spinner",class:this.classes,on:Object.assign({},this.qListeners),attrs:{focusable:"false",width:this.cSize,height:this.cSize,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 100",preserveAspectRatio:"xMidYMid"}},[t("circle",{attrs:{cx:"50",cy:"50",r:"44",fill:"none","stroke-width":"4","stroke-opacity":".5",stroke:"currentColor"}}),t("circle",{attrs:{cx:"8",cy:"54",r:"6",fill:"currentColor","stroke-width":"3",stroke:"currentColor"}},[t("animateTransform",{attrs:{attributeName:"transform",type:"rotate",from:"0 50 48",to:"360 50 52",dur:"2s",repeatCount:"indefinite"}})])])}}),Pa=t.extend({name:"QSpinnerOval",mixins:[ce],render:function(t){return t("svg",{staticClass:"q-spinner",class:this.classes,on:Object.assign({},this.qListeners),attrs:{focusable:"false",stroke:"currentColor",width:this.cSize,height:this.cSize,viewBox:"0 0 38 38",xmlns:"http://www.w3.org/2000/svg"}},[t("g",{attrs:{transform:"translate(1 1)","stroke-width":"2",fill:"none","fill-rule":"evenodd"}},[t("circle",{attrs:{"stroke-opacity":".5",cx:"18",cy:"18",r:"18"}}),t("path",{attrs:{d:"M36 18c0-9.94-8.06-18-18-18"}},[t("animateTransform",{attrs:{attributeName:"transform",type:"rotate",from:"0 18 18",to:"360 18 18",dur:"1s",repeatCount:"indefinite"}})])])])}}),Aa=t.extend({name:"QSpinnerPie",mixins:[ce],render:function(t){return t("svg",{staticClass:"q-spinner",class:this.classes,on:Object.assign({},this.qListeners),attrs:{focusable:"false",width:this.cSize,height:this.cSize,viewBox:"0 0 100 100",preserveAspectRatio:"xMidYMid",xmlns:"http://www.w3.org/2000/svg"}},[t("path",{attrs:{d:"M0 50A50 50 0 0 1 50 0L50 50L0 50",fill:"currentColor",opacity:"0.5"}},[t("animateTransform",{attrs:{attributeName:"transform",type:"rotate",from:"0 50 50",to:"360 50 50",dur:"0.8s",repeatCount:"indefinite"}})]),t("path",{attrs:{d:"M50 0A50 50 0 0 1 100 50L50 50L50 0",fill:"currentColor",opacity:"0.5"}},[t("animateTransform",{attrs:{attributeName:"transform",type:"rotate",from:"0 50 50",to:"360 50 50",dur:"1.6s",repeatCount:"indefinite"}})]),t("path",{attrs:{d:"M100 50A50 50 0 0 1 50 100L50 50L100 50",fill:"currentColor",opacity:"0.5"}},[t("animateTransform",{attrs:{attributeName:"transform",type:"rotate",from:"0 50 50",to:"360 50 50",dur:"2.4s",repeatCount:"indefinite"}})]),t("path",{attrs:{d:"M50 100A50 50 0 0 1 0 50L50 50L50 100",fill:"currentColor",opacity:"0.5"}},[t("animateTransform",{attrs:{attributeName:"transform",type:"rotate",from:"0 50 50",to:"360 50 50",dur:"3.2s",repeatCount:"indefinite"}})])])}}),Ia=t.extend({name:"QSpinnerPuff",mixins:[ce],render:function(t){return t("svg",{staticClass:"q-spinner",class:this.classes,on:Object.assign({},this.qListeners),attrs:{focusable:"false",stroke:"currentColor",width:this.cSize,height:this.cSize,viewBox:"0 0 44 44",xmlns:"http://www.w3.org/2000/svg"}},[t("g",{attrs:{fill:"none","fill-rule":"evenodd","stroke-width":"2"}},[t("circle",{attrs:{cx:"22",cy:"22",r:"1"}},[t("animate",{attrs:{attributeName:"r",begin:"0s",dur:"1.8s",values:"1; 20",calcMode:"spline",keyTimes:"0; 1",keySplines:"0.165, 0.84, 0.44, 1",repeatCount:"indefinite"}}),t("animate",{attrs:{attributeName:"stroke-opacity",begin:"0s",dur:"1.8s",values:"1; 0",calcMode:"spline",keyTimes:"0; 1",keySplines:"0.3, 0.61, 0.355, 1",repeatCount:"indefinite"}})]),t("circle",{attrs:{cx:"22",cy:"22",r:"1"}},[t("animate",{attrs:{attributeName:"r",begin:"-0.9s",dur:"1.8s",values:"1; 20",calcMode:"spline",keyTimes:"0; 1",keySplines:"0.165, 0.84, 0.44, 1",repeatCount:"indefinite"}}),t("animate",{attrs:{attributeName:"stroke-opacity",begin:"-0.9s",dur:"1.8s",values:"1; 0",calcMode:"spline",keyTimes:"0; 1",keySplines:"0.3, 0.61, 0.355, 1",repeatCount:"indefinite"}})])])])}}),Da=t.extend({name:"QSpinnerRadio",mixins:[ce],render:function(t){return t("svg",{staticClass:"q-spinner",class:this.classes,on:Object.assign({},this.qListeners),attrs:{focusable:"false",width:this.cSize,height:this.cSize,viewBox:"0 0 100 100",preserveAspectRatio:"xMidYMid",xmlns:"http://www.w3.org/2000/svg"}},[t("g",{attrs:{transform:"scale(0.55)"}},[t("circle",{attrs:{cx:"30",cy:"150",r:"30",fill:"currentColor"}},[t("animate",{attrs:{attributeName:"opacity",from:"0",to:"1",dur:"1s",begin:"0",repeatCount:"indefinite",keyTimes:"0;0.5;1",values:"0;1;1"}})]),t("path",{attrs:{d:"M90,150h30c0-49.7-40.3-90-90-90v30C63.1,90,90,116.9,90,150z",fill:"currentColor"}},[t("animate",{attrs:{attributeName:"opacity",from:"0",to:"1",dur:"1s",begin:"0.1",repeatCount:"indefinite",keyTimes:"0;0.5;1",values:"0;1;1"}})]),t("path",{attrs:{d:"M150,150h30C180,67.2,112.8,0,30,0v30C96.3,30,150,83.7,150,150z",fill:"currentColor"}},[t("animate",{attrs:{attributeName:"opacity",from:"0",to:"1",dur:"1s",begin:"0.2",repeatCount:"indefinite",keyTimes:"0;0.5;1",values:"0;1;1"}})])])])}}),Ra=t.extend({name:"QSpinnerRings",mixins:[ce],render:function(t){return t("svg",{staticClass:"q-spinner",class:this.classes,on:Object.assign({},this.qListeners),attrs:{focusable:"false",stroke:"currentColor",width:this.cSize,height:this.cSize,viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg"}},[t("g",{attrs:{fill:"none","fill-rule":"evenodd",transform:"translate(1 1)","stroke-width":"2"}},[t("circle",{attrs:{cx:"22",cy:"22",r:"6"}},[t("animate",{attrs:{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}}),t("animate",{attrs:{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}}),t("animate",{attrs:{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"}})]),t("circle",{attrs:{cx:"22",cy:"22",r:"6"}},[t("animate",{attrs:{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}}),t("animate",{attrs:{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}}),t("animate",{attrs:{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"}})]),t("circle",{attrs:{cx:"22",cy:"22",r:"8"}},[t("animate",{attrs:{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}})])])])}}),Fa=t.extend({name:"QSpinnerTail",mixins:[ce],render:function(t){return t("svg",{staticClass:"q-spinner",class:this.classes,on:Object.assign({},this.qListeners),attrs:{focusable:"false",width:this.cSize,height:this.cSize,viewBox:"0 0 38 38",xmlns:"http://www.w3.org/2000/svg"}},[t("defs",[t("linearGradient",{attrs:{x1:"8.042%",y1:"0%",x2:"65.682%",y2:"23.865%",id:"a"}},[t("stop",{attrs:{"stop-color":"currentColor","stop-opacity":"0",offset:"0%"}}),t("stop",{attrs:{"stop-color":"currentColor","stop-opacity":".631",offset:"63.146%"}}),t("stop",{attrs:{"stop-color":"currentColor",offset:"100%"}})])]),t("g",{attrs:{transform:"translate(1 1)",fill:"none","fill-rule":"evenodd"}},[t("path",{attrs:{d:"M36 18c0-9.94-8.06-18-18-18",stroke:"url(#a)","stroke-width":"2"}},[t("animateTransform",{attrs:{attributeName:"transform",type:"rotate",from:"0 18 18",to:"360 18 18",dur:"0.9s",repeatCount:"indefinite"}})]),t("circle",{attrs:{fill:"currentColor",cx:"36",cy:"18",r:"1"}},[t("animateTransform",{attrs:{attributeName:"transform",type:"rotate",from:"0 18 18",to:"360 18 18",dur:"0.9s",repeatCount:"indefinite"}})])])])}}),ja=t.extend({name:"QSplitter",mixins:[Gt,Lt],directives:{TouchPan:xn},props:{value:{type:Number,required:!0},reverse:Boolean,unit:{type:String,default:"%",validator:function(t){return["%","px"].includes(t)}},limits:{type:Array,validator:function(t){return 2===t.length&&("number"==typeof t[0]&&"number"==typeof t[1]&&(t[0]>=0&&t[0]<=t[1]))}},emitImmediately:Boolean,horizontal:Boolean,disable:Boolean,beforeClass:[Array,String,Object],afterClass:[Array,String,Object],separatorClass:[Array,String,Object],separatorStyle:[Array,String,Object]},watch:{value:{immediate:!0,handler:function(t){this.__normalize(t,this.computedLimits)}},limits:{deep:!0,handler:function(){var t=this;this.$nextTick(function(){t.__normalize(t.value,t.computedLimits)})}}},computed:{classes:function(){return(!0===this.horizontal?"column":"row")+" q-splitter--"+(!0===this.horizontal?"horizontal":"vertical")+" q-splitter--"+(!0===this.disable?"disabled":"workable")+(!0===this.isDark?" q-splitter--dark":"")},prop:function(){return!0===this.horizontal?"height":"width"},side:function(){return!0!==this.reverse?"before":"after"},computedLimits:function(){return void 0!==this.limits?this.limits:"%"===this.unit?[10,90]:[50,1/0]},styles:function(){var t,e;return(e={})[this.side]=((t={})[this.prop]=this.__getCSSValue(this.value),t),e},separatorDirectives:function(){var t;if(!0!==this.disable)return[{name:"touch-pan",value:this.__pan,modifiers:(t={},t[!0===this.horizontal?"vertical":"horizontal"]=!0,t.prevent=!0,t.stop=!0,t.mouse=!0,t.mouseAllDir=!0,t)}]}},methods:{__pan:function(t){if(!0===t.isFirst){var e=this.$el.getBoundingClientRect()[this.prop];return this.__dir=!0===this.horizontal?"up":"left",this.__maxValue="%"===this.unit?100:e,this.__value=Math.min(this.__maxValue,this.computedLimits[1],Math.max(this.computedLimits[0],this.value)),this.__multiplier=(!0!==this.reverse?1:-1)*(!0===this.horizontal?1:!0===this.$q.lang.rtl?-1:1)*("%"===this.unit?0===e?0:100/e:1),void this.$el.classList.add("q-splitter--active")}if(!0===t.isFinal)return this.__normalized!==this.value&&this.$emit("input",this.__normalized),void this.$el.classList.remove("q-splitter--active");var i=this.__value+this.__multiplier*(t.direction===this.__dir?-1:1)*t.distance[!0===this.horizontal?"y":"x"];this.__normalized=Math.min(this.__maxValue,this.computedLimits[1],Math.max(this.computedLimits[0],i)),this.$refs[this.side].style[this.prop]=this.__getCSSValue(this.__normalized),!0===this.emitImmediately&&this.value!==this.__normalized&&this.$emit("input",this.__normalized)},__normalize:function(t,e){te[1]&&this.$emit("input",e[1])},__getCSSValue:function(t){return("%"===this.unit?t:Math.round(t))+this.unit}},render:function(t){var e=!0===this.disable?{"aria-disabled":"true"}:void 0,i=[t("div",{ref:"before",staticClass:"q-splitter__panel q-splitter__before"+(!0===this.reverse?" col":""),style:this.styles.before,class:this.beforeClass,on:ft(this,"stop",{input:b})},Ot(this,"before")),t("div",{staticClass:"q-splitter__separator",style:this.separatorStyle,class:this.separatorClass,attrs:e},[t("div",{staticClass:"absolute-full q-splitter__separator-area",directives:this.separatorDirectives},Ot(this,"separator"))]),t("div",{ref:"after",staticClass:"q-splitter__panel q-splitter__after"+(!0===this.reverse?"":" col"),style:this.styles.after,class:this.afterClass,on:ft(this,"stop",{input:b})},Ot(this,"after"))];return t("div",{staticClass:"q-splitter no-wrap",class:this.classes,on:Object.assign({},this.qListeners)},Et(i,this,"default"))}}),Va=t.extend({name:"StepHeader",mixins:[bt],directives:{Ripple:Se},props:{stepper:{},step:{}},computed:{isActive:function(){return this.stepper.value===this.step.name},isDisable:function(){var t=this.step.disable;return!0===t||""===t},isError:function(){var t=this.step.error;return!0===t||""===t},isDone:function(){var t=this.step.done;return!1===this.isDisable&&(!0===t||""===t)},headerNav:function(){var t=this.step.headerNav,e=!0===t||""===t||void 0===t;return!1===this.isDisable&&this.stepper.headerNav&&e},hasPrefix:function(){return this.step.prefix&&(!1===this.isActive||"none"===this.stepper.activeIcon)&&(!1===this.isError||"none"===this.stepper.errorIcon)&&(!1===this.isDone||"none"===this.stepper.doneIcon)},icon:function(){var t=this.step.icon||this.stepper.inactiveIcon;if(!0===this.isActive){var e=this.step.activeIcon||this.stepper.activeIcon;return"none"===e?t:e||this.$q.iconSet.stepper.active}if(!0===this.isError){var i=this.step.errorIcon||this.stepper.errorIcon;return"none"===i?t:i||this.$q.iconSet.stepper.error}if(!1===this.isDisable&&!0===this.isDone){var n=this.step.doneIcon||this.stepper.doneIcon;return"none"===n?t:n||this.$q.iconSet.stepper.done}return t},color:function(){var t=!0===this.isError?this.step.errorColor||this.stepper.errorColor:void 0;if(!0===this.isActive){var e=this.step.activeColor||this.stepper.activeColor||this.step.color;return void 0!==e?e:t}return void 0!==t?t:!1===this.isDisable&&!0===this.isDone?this.step.doneColor||this.stepper.doneColor||this.step.color||this.stepper.inactiveColor:this.step.color||this.stepper.inactiveColor},classes:function(){return"q-stepper__tab col-grow flex items-center no-wrap relative-position"+(void 0!==this.color?" text-"+this.color:"")+(!0===this.isError?" q-stepper__tab--error q-stepper__tab--error-with-"+(!0===this.hasPrefix?"prefix":"icon"):"")+(!0===this.isActive?" q-stepper__tab--active":"")+(!0===this.isDone?" q-stepper__tab--done":"")+(!0===this.headerNav?" q-stepper__tab--navigation q-focusable q-hoverable":"")+(!0===this.isDisable?" q-stepper__tab--disabled":"")}},methods:{activate:function(){void 0!==this.$refs.blurTarget&&this.$refs.blurTarget.focus(),!1===this.isActive&&this.stepper.goTo(this.step.name)},keyup:function(t){13===t.keyCode&&!1===this.isActive&&this.stepper.goTo(this.step.name)}},render:function(t){var e={class:this.classes};!0===this.stepper.headerNav&&(e.directives=[{name:"ripple",value:this.headerNav}]),!0===this.headerNav&&Object.assign(e,{on:ft(this,"headnavon",{click:this.activate,keyup:this.keyup}),attrs:!0===this.isDisable?{tabindex:-1,"aria-disabled":"true"}:{tabindex:this.qAttrs.tabindex||0}});var i=[t("div",{staticClass:"q-focus-helper",attrs:{tabindex:-1},ref:"blurTarget"}),t("div",{staticClass:"q-stepper__dot row flex-center q-stepper__line relative-position"},[t("span",{staticClass:"row flex-center"},[!0===this.hasPrefix?this.step.prefix:t(Ut,{props:{name:this.icon}})])])];if(void 0!==this.step.title&&null!==this.step.title){var n=[t("div",{staticClass:"q-stepper__title"},[this.step.title])];void 0!==this.step.caption&&null!==this.step.caption&&n.push(t("div",{staticClass:"q-stepper__caption"},[this.step.caption])),i.push(t("div",{staticClass:"q-stepper__label q-stepper__line relative-position"},n))}return t("div",e,i)}}),Na=t.extend({name:"QStepWrapper",render:function(t){return t("div",{staticClass:"q-stepper__step-content"},[t("div",{staticClass:"q-stepper__step-inner"},Ot(this,"default"))])}}),Ha=t.extend({name:"QStep",inject:{stepper:{default:function(){console.error("QStep needs to be child of QStepper")}}},mixins:[Qi],props:{icon:String,color:String,title:{type:String,required:!0},caption:String,prefix:[String,Number],doneIcon:String,doneColor:String,activeIcon:String,activeColor:String,errorIcon:String,errorColor:String,headerNav:{type:Boolean,default:!0},done:Boolean,error:Boolean},computed:{isActive:function(){return this.stepper.value===this.name},onEvents:function(){return!0!==this.isActive||!0!==this.stepper.vertical||!0!==this.$q.platform.is.ios&&!0===this.$q.platform.is.chrome?Object.assign({},this.qListeners):Object.assign({},this.qListeners,{scroll:this.__keepScroll})}},methods:{__keepScroll:function(t){var e=t.target;e.scrollTop>0&&(e.scrollTop=0),void 0!==this.qListeners.scroll&&this.qListeners.scroll(t)}},render:function(t){var e=this.stepper.vertical,i=!0===e&&!0===this.stepper.keepAlive?t("keep-alive",!0===this.isActive?[t(Na,{key:this.name},Ot(this,"default"))]:void 0):!0!==e||!0===this.isActive?Na.options.render.call(this,t):void 0;return t("div",{staticClass:"q-stepper__step",on:this.onEvents},!0===e?[t(Va,{props:{stepper:this.stepper,step:this}}),!0===this.stepper.animated?t(_o,[i]):i]:[i])}}),Qa=t.extend({name:"QStepper",provide:function(){return{stepper:this}},mixins:[Gt,Hi],props:{flat:Boolean,bordered:Boolean,alternativeLabels:Boolean,headerNav:Boolean,contracted:Boolean,headerClass:String,inactiveColor:String,inactiveIcon:String,doneIcon:String,doneColor:String,activeIcon:String,activeColor:String,errorIcon:String,errorColor:String},computed:{classes:function(){return"q-stepper q-stepper--"+(!0===this.vertical?"vertical":"horizontal")+(!0===this.flat||!0===this.isDark?" q-stepper--flat no-shadow":"")+(!0===this.bordered||!0===this.isDark&&!1===this.flat?" q-stepper--bordered":"")+(!0===this.isDark?" q-stepper--dark q-dark":"")},headerClasses:function(){return"q-stepper__header row items-stretch justify-between q-stepper__header--"+(!0===this.alternativeLabels?"alternative":"standard")+"-labels"+(!1===this.flat||!0===this.bordered?" q-stepper__header--border":"")+(!0===this.contracted?" q-stepper__header--contracted":"")+(void 0!==this.headerClass?" "+this.headerClass:"")}},methods:{__getContent:function(t){var e=this,i=Ot(this,"message",[]);if(!0===this.vertical){this.__isValidPanelName(this.value)&&this.__updatePanelIndex();var n=t("div",{staticClass:"q-stepper__content",on:ft(this,"stop",{input:b})},Ot(this,"default"));return void 0===i?[n]:i.concat(n)}return[t("div",{class:this.headerClasses},this.panels.map(function(i){var n=i.componentOptions.propsData;return t(Va,{key:n.name,props:{stepper:e,step:n}})}))].concat(i,t("div",{staticClass:"q-stepper__content q-panel-parent",directives:this.panelDirectives},this.__getPanelContent(t)))},__renderPanels:function(t){return t("div",{class:this.classes,on:Object.assign({},this.qListeners)},Et(this.__getContent(t),this,"navigation"))}}}),Wa=t.extend({name:"QStepperNavigation",mixins:[Lt],render:function(t){return t("div",{staticClass:"q-stepper__nav",on:Object.assign({},this.qListeners)},Ot(this,"default"))}}),Ya=t.extend({name:"QTh",mixins:[Lt],props:{props:Object,autoWidth:Boolean},render:function(t){var e,i,n=this,s=Object.assign({},this.qListeners);if(void 0===this.props)return t("th",{on:s,class:!0===this.autoWidth?"q-table--col-auto-width":null},Ot(this,"default"));var o=this.$vnode.key;if(o){if(void 0===(e=this.props.colsMap[o]))return}else e=this.props.col;if(!0===e.sortable){var r="right"===e.align?"unshift":"push";(i=Bt(this,"default",[]))[r](t(Ut,{props:{name:this.$q.iconSet.table.arrowUp},staticClass:e.__iconClass}))}else i=Ot(this,"default");var a=!0===e.sortable?{click:function(t){n.props.sort(e),n.$emit("click",t)}}:{};return t("th",{on:Object.assign({},s,a),style:e.headerStyle,class:e.__thClass+(!0===this.autoWidth?" q-table--col-auto-width":"")},i)}}),Ua={computed:{headerSelectedValue:function(){return!0===this.someRowsSelected?null:this.allRowsSelected}},methods:{__getTHead:function(t){var e=this.__getTHeadTR(t);return!0===this.loading&&void 0===this.$scopedSlots.loading&&e.push(t("tr",{staticClass:"q-table__progress"},[t("th",{staticClass:"relative-position",attrs:{colspan:this.computedColspan}},this.__getProgress(t))])),t("thead",e)},__getTHeadTR:function(t){var e=this,i=this.$scopedSlots.header,n=this.$scopedSlots["header-cell"];if(void 0!==i)return i(this.__getHeaderScope({header:!0})).slice();var s=this.computedCols.map(function(i){var s=e.$scopedSlots["header-cell-"+i.name],o=void 0!==s?s:n,r=e.__getHeaderScope({col:i});return void 0!==o?o(r):t(Ya,{key:i.name,props:{props:r}},i.label)});if(!0===this.singleSelection&&!0!==this.grid)s.unshift(t("th",{staticClass:"q-table--col-auto-width"},[" "]));else if(!0===this.multipleSelection){var o=this.$scopedSlots["header-selection"],r=void 0!==o?o(this.__getHeaderScope({})):[t(cn,{props:{color:this.color,value:this.headerSelectedValue,dark:this.isDark,dense:this.dense},on:ft(this,"inp",{input:this.__onMultipleSelectionSet})})];s.unshift(t("th",{staticClass:"q-table--col-auto-width"},r))}return[t("tr",{style:this.tableHeaderStyle,class:this.tableHeaderClass},s)]},__getHeaderScope:function(t){var e=this;return Object.assign(t,{cols:this.computedCols,sort:this.sort,colsMap:this.computedColsMap,color:this.color,dark:this.isDark,dense:this.dense}),!0===this.multipleSelection&&(Object.defineProperty(t,"selected",{get:function(){return e.headerSelectedValue},set:this.__onMultipleSelectionSet,configurable:!0,enumerable:!0}),t.partialSelected=this.someRowsSelected,t.multipleSelect=!0),t},__onMultipleSelectionSet:function(t){!0===this.someRowsSelected&&(t=!1),this.__updateSelection(this.computedRows.map(this.getRowKey),this.computedRows,t)}}},Ka={methods:{__getTBodyTR:function(t,e,i,n){var s=this,o=this.getRowKey(e),r=this.isRowSelected(o);if(void 0!==i)return i(this.__getBodyScope({key:o,row:e,pageIndex:n,__trClass:r?"selected":""}));var a=this.$scopedSlots["body-cell"],l=this.computedCols.map(function(i){var r=s.$scopedSlots["body-cell-"+i.name],l=void 0!==r?r:a;return void 0!==l?l(s.__getBodyCellScope({key:o,row:e,pageIndex:n,col:i})):t("td",{class:i.__tdClass(e),style:i.__tdStyle(e)},s.getCellValue(i,e))});if(!0===this.hasSelectionMode){var c=this.$scopedSlots["body-selection"],u=void 0!==c?c(this.__getBodySelectionScope({key:o,row:e,pageIndex:n})):[t(cn,{props:{value:r,color:this.color,dark:this.isDark,dense:this.dense},on:{input:function(t,i){s.__updateSelection([o],[e],t,i)}}})];l.unshift(t("td",{staticClass:"q-table--col-auto-width"},u))}var h={key:o,class:{selected:r},on:{}};return void 0!==this.qListeners["row-click"]&&(h.class["cursor-pointer"]=!0,h.on.click=function(t){s.$emit("row-click",t,e,n)}),void 0!==this.qListeners["row-dblclick"]&&(h.class["cursor-pointer"]=!0,h.on.dblclick=function(t){s.$emit("row-dblclick",t,e,n)}),void 0!==this.qListeners["row-contextmenu"]&&(h.class["cursor-pointer"]=!0,h.on.contextmenu=function(t){s.$emit("row-contextmenu",t,e,n)}),t("tr",h,l)},__getTBody:function(t){var e=this,i=this.$scopedSlots.body,n=this.$scopedSlots["top-row"],s=this.$scopedSlots["bottom-row"],o=this.computedRows.map(function(n,s){return e.__getTBodyTR(t,n,i,s)});return void 0!==n&&(o=n({cols:this.computedCols}).concat(o)),void 0!==s&&(o=o.concat(s({cols:this.computedCols}))),t("tbody",o)},__getVirtualTBodyTR:function(t){var e=this,i=this.$scopedSlots.body;return function(n){return e.__getTBodyTR(t,n.item,i,n.index)}},__getBodyScope:function(t){var e=this;return this.__injectBodyCommonScope(t),t.cols=t.cols.map(function(i){var n=Object.assign({},i);return Object.defineProperty(n,"value",{get:function(){return e.getCellValue(i,t.row)},configurable:!0,enumerable:!0}),n}),t},__getBodyCellScope:function(t){var e=this;return this.__injectBodyCommonScope(t),Object.defineProperty(t,"value",{get:function(){return e.getCellValue(t.col,t.row)},configurable:!0,enumerable:!0}),t},__getBodySelectionScope:function(t){return this.__injectBodyCommonScope(t),t},__injectBodyCommonScope:function(t){var e=this;Object.assign(t,{cols:this.computedCols,colsMap:this.computedColsMap,sort:this.sort,rowIndex:this.firstRowIndex+t.pageIndex,color:this.color,dark:this.isDark,dense:this.dense}),!0===this.hasSelectionMode&&Object.defineProperty(t,"selected",{get:function(){return e.isRowSelected(t.key)},set:function(i,n){e.__updateSelection([t.key],[t.row],i,n)},configurable:!0,enumerable:!0}),Object.defineProperty(t,"expand",{get:function(){return e.isRowExpanded(t.key)},set:function(i){e.__updateExpanded(t.key,i)},configurable:!0,enumerable:!0})},getCellValue:function(t,e){var i="function"==typeof t.field?t.field(e):e[t.field];return void 0!==t.format?t.format(i,e):i}}},Xa="q-table__bottom row items-center",Ga={props:{hideBottom:Boolean,hideSelectedBanner:Boolean,hideNoData:Boolean,hidePagination:Boolean},computed:{navIcon:function(){var t=[this.iconFirstPage||this.$q.iconSet.table.firstPage,this.iconPrevPage||this.$q.iconSet.table.prevPage,this.iconNextPage||this.$q.iconSet.table.nextPage,this.iconLastPage||this.$q.iconSet.table.lastPage];return!0===this.$q.lang.rtl?t.reverse():t}},methods:{__getBottomDiv:function(t){if(!0!==this.hideBottom){if(!0===this.nothingToDisplay){if(!0===this.hideNoData)return;var e=!0===this.loading?this.loadingLabel||this.$q.lang.table.loading:this.filter?this.noResultsLabel||this.$q.lang.table.noResults:this.noDataLabel||this.$q.lang.table.noData,i=this.$scopedSlots["no-data"],n=void 0!==i?[i({message:e,icon:this.$q.iconSet.table.warning,filter:this.filter})]:[t(Ut,{staticClass:"q-table__bottom-nodata-icon",props:{name:this.$q.iconSet.table.warning}}),e];return t("div",{staticClass:Xa+" q-table__bottom--nodata"},n)}var s=this.$scopedSlots.bottom;if(void 0!==s)return t("div",{staticClass:Xa},[s(this.marginalsScope)]);var o=!0!==this.hideSelectedBanner&&!0===this.hasSelectionMode&&this.rowsSelectedNumber>0?[t("div",{staticClass:"q-table__control"},[t("div",[(this.selectedRowsLabel||this.$q.lang.table.selectedRecords)(this.rowsSelectedNumber)])])]:[];return!0!==this.hidePagination?t("div",{staticClass:Xa+" justify-end"},this.__getPaginationDiv(t,o)):o.length>0?t("div",{staticClass:Xa},o):void 0}},__getPaginationDiv:function(t,e){var i,n=this,s=this.computedPagination.rowsPerPage,o=this.paginationLabel||this.$q.lang.table.pagination,r=this.$scopedSlots.pagination,a=this.rowsPerPageOptions.length>1;if(e.push(t("div",{staticClass:"q-table__separator col"})),!0===a&&e.push(t("div",{staticClass:"q-table__control"},[t("span",{staticClass:"q-table__bottom-item"},[this.rowsPerPageLabel||this.$q.lang.table.recordsPerPage]),t(da,{staticClass:"q-table__select inline q-table__bottom-item",props:{color:this.color,value:s,options:this.computedRowsPerPageOptions,displayValue:0===s?this.$q.lang.table.allRows:s,dark:this.isDark,borderless:!0,dense:!0,optionsDense:!0,optionsCover:!0},on:ft(this,"pgSize",{input:function(t){n.setPagination({page:1,rowsPerPage:t.value})}})})])),void 0!==r)i=r(this.marginalsScope);else if(i=[t("span",0!==s?{staticClass:"q-table__bottom-item"}:{},[s?o(this.firstRowIndex+1,Math.min(this.lastRowIndex,this.computedRowsNumber),this.computedRowsNumber):o(1,this.filteredSortedRowsNumber,this.computedRowsNumber)])],0!==s&&this.pagesNumber>1){var l={color:this.color,round:!0,dense:!0,flat:!0};!0===this.dense&&(l.size="sm"),this.pagesNumber>2&&i.push(t(Be,{key:"pgFirst",props:Object.assign({},l,{icon:this.navIcon[0],disable:this.isFirstPage}),on:ft(this,"pgFirst",{click:this.firstPage})})),i.push(t(Be,{key:"pgPrev",props:Object.assign({},l,{icon:this.navIcon[1],disable:this.isFirstPage}),on:ft(this,"pgPrev",{click:this.prevPage})}),t(Be,{key:"pgNext",props:Object.assign({},l,{icon:this.navIcon[2],disable:this.isLastPage}),on:ft(this,"pgNext",{click:this.nextPage})})),this.pagesNumber>2&&i.push(t(Be,{key:"pgLast",props:Object.assign({},l,{icon:this.navIcon[3],disable:this.isLastPage}),on:ft(this,"pgLast",{click:this.lastPage})}))}return e.push(t("div",{staticClass:"q-table__control"},i)),e}}},Za={methods:{__getGridHeader:function(t){return t("div",{staticClass:"q-table__middle"},!0===this.gridHeader?[t("table",{staticClass:"q-table"},[this.__getTHead(t)])]:!0===this.loading&&void 0===this.$scopedSlots.loading?this.__getProgress(t):void 0)},__getGridBody:function(t){var e=this,i=void 0!==this.$scopedSlots.item?this.$scopedSlots.item:function(i){var n=i.cols.map(function(e){return t("div",{staticClass:"q-table__grid-item-row"},[t("div",{staticClass:"q-table__grid-item-title"},[e.label]),t("div",{staticClass:"q-table__grid-item-value"},[e.value])])});if(!0===e.hasSelectionMode){var s=e.$scopedSlots["body-selection"],o=void 0!==s?s(i):[t(cn,{props:{value:i.selected,color:e.color,dark:e.isDark,dense:e.dense},on:{input:function(t,n){e.__updateSelection([i.key],[i.row],t,n)}}})];n.unshift(t("div",{staticClass:"q-table__grid-item-row"},o),t(So,{props:{dark:e.isDark}}))}var r={staticClass:"q-table__grid-item-card"+e.cardDefaultClass,class:e.cardClass,style:e.cardStyle,on:{}};return void 0===e.qListeners["row-click"]&&void 0===e.qListeners["row-dblclick"]||(r.staticClass+=" cursor-pointer"),void 0!==e.qListeners["row-click"]&&(r.on.click=function(t){e.$emit("row-click",t,i.row,i.pageIndex)}),void 0!==e.qListeners["row-dblclick"]&&(r.on.dblclick=function(t){e.$emit("row-dblclick",t,i.row,i.pageIndex)}),t("div",{staticClass:"q-table__grid-item col-xs-12 col-sm-6 col-md-4 col-lg-3",class:!0===i.selected?"q-table__grid-item--selected":""},[t("div",r,n)])};return t("div",{staticClass:"q-table__grid-content row",class:this.cardContainerClass,style:this.cardContainerStyle},this.computedRows.map(function(t,n){return i(e.__getBodyScope({key:e.getRowKey(t),row:t,pageIndex:n}))}))}}};function Ja(t,e,i){return t("div",Object.assign({},e,{staticClass:"q-table__middle"+(void 0!==e.staticClass?" "+e.staticClass:"")}),[t("table",{staticClass:"q-table"},i)])}var tl={list:Gs,table:xr},el=t.extend({name:"QVirtualScroll",mixins:[bt,Lt,ua],props:{type:{type:String,default:"list",validator:function(t){return["list","table","__qtable"].includes(t)}},items:{type:Array,default:function(){return[]}},itemsFn:Function,itemsSize:Number,scrollTarget:{default:void 0}},computed:{virtualScrollLength:function(){return this.itemsSize>=0&&void 0!==this.itemsFn?parseInt(this.itemsSize,10):Array.isArray(this.items)?this.items.length:0},virtualScrollScope:function(){var t=this;if(0===this.virtualScrollLength)return[];var e=function(e,i){return{index:t.virtualScrollSliceRange.from+i,item:e}};return void 0===this.itemsFn?this.items.slice(this.virtualScrollSliceRange.from,this.virtualScrollSliceRange.to).map(e):this.itemsFn(this.virtualScrollSliceRange.from,this.virtualScrollSliceRange.to-this.virtualScrollSliceRange.from).map(e)},classes:function(){return"q-virtual-scroll q-virtual-scroll"+(!0===this.virtualScrollHorizontal?"--horizontal":"--vertical")+(void 0!==this.scrollTarget?"":" scroll")},attrs:function(){return void 0!==this.scrollTarget?void 0:{tabindex:0}}},watch:{virtualScrollLength:function(){this.__resetVirtualScroll()},scrollTarget:function(){this.__unconfigureScrollTarget(),this.__configureScrollTarget()}},methods:{__getVirtualScrollEl:function(){return this.$el},__getVirtualScrollTarget:function(){return this.__scrollTarget},__configureScrollTarget:function(){this.__scrollTarget=ii(this.$el,this.scrollTarget),this.__scrollTarget.addEventListener("scroll",this.__onVirtualScrollEvt,h.passive)},__unconfigureScrollTarget:function(){void 0!==this.__scrollTarget&&(this.__scrollTarget.removeEventListener("scroll",this.__onVirtualScrollEvt,h.passive),this.__scrollTarget=void 0)}},beforeMount:function(){this.__resetVirtualScroll()},mounted:function(){this.__configureScrollTarget()},activated:function(){this.__configureScrollTarget()},deactivated:function(){this.__unconfigureScrollTarget()},beforeDestroy:function(){this.__unconfigureScrollTarget()},render:function(t){if(void 0!==this.$scopedSlots.default){var e=this.__padVirtualScroll(t,"list"===this.type?"div":"tbody",this.virtualScrollScope.map(this.$scopedSlots.default));return void 0!==this.$scopedSlots.before&&(e=this.$scopedSlots.before().concat(e)),e=Et(e,this,"after"),"__qtable"===this.type?Ja(t,{staticClass:this.classes},e):t(tl[this.type],{class:this.classes,attrs:this.attrs,props:this.qAttrs,on:Object.assign({},this.qListeners)},e)}console.error("QVirtualScroll: default scoped slot is required for rendering",this)}});var il={props:{sortMethod:{type:Function,default:function(t,e,i){var n=this.colList.find(function(t){return t.name===e});if(void 0===n||void 0===n.field)return t;var s=!0===i?-1:1,o="function"==typeof n.field?function(t){return n.field(t)}:function(t){return t[n.field]};return t.sort(function(t,e){var i,r=o(t),a=o(e);return null===r||void 0===r?-1*s:null===a||void 0===a?1*s:void 0!==n.sort?n.sort(r,a,t,e)*s:!0===tn(r)&&!0===tn(a)?(r-a)*s:!0===Ji(r)&&!0===Ji(a)?function(t,e){return new Date(t)-new Date(e)}(r,a)*s:"boolean"==typeof r&&"boolean"==typeof a?(r-a)*s:(r=(i=[r,a].map(function(t){return(t+"").toLocaleString().toLowerCase()}))[0])<(a=i[1])?-1*s:r===a?0:s})}},columnSortOrder:{type:String,validator:function(t){return"ad"===t||"da"===t},default:"ad"}},computed:{columnToSort:function(){var t=this.computedPagination.sortBy;if(t)return this.colList.find(function(e){return e.name===t})||null}},methods:{sort:function(t){var e=this.columnSortOrder;if(!0===Zi(t))t.sortOrder&&(e=t.sortOrder),t=t.name;else{var i=this.colList.find(function(e){return e.name===t});void 0!==i&&i.sortOrder&&(e=i.sortOrder)}var n=this.computedPagination,s=n.sortBy,o=n.descending;s!==t?(s=t,o="da"===e):!0===this.binaryStateSort?o=!o:!0===o?"ad"===e?s=null:o=!1:"ad"===e?o=!0:s=null,this.setPagination({sortBy:s,descending:o,page:1})}}},nl={props:{filter:[String,Object],filterMethod:{type:Function,default:function(t,e,i,n){void 0===i&&(i=this.computedCols),void 0===n&&(n=this.getCellValue);var s=e?e.toLowerCase():"";return t.filter(function(t){return i.some(function(e){var i=n(e,t)+"";return-1!==("undefined"===i||"null"===i?"":i.toLowerCase()).indexOf(s)})})}}},watch:{filter:{handler:function(){var t=this;this.$nextTick(function(){t.setPagination({page:1},!0)})},deep:!0}}};function sl(t){return t.page<1&&(t.page=1),void 0!==t.rowsPerPage&&t.rowsPerPage<1&&(t.rowsPerPage=0),t}var ol={props:{pagination:Object,rowsPerPageOptions:{type:Array,default:function(){return[5,7,10,15,20,25,50,0]}}},computed:{computedPagination:function(){return sl(void 0!==this.qListeners["update:pagination"]?Object.assign({},this.innerPagination,this.pagination):this.innerPagination)},firstRowIndex:function(){var t=this.computedPagination;return(t.page-1)*t.rowsPerPage},lastRowIndex:function(){var t=this.computedPagination;return t.page*t.rowsPerPage},isFirstPage:function(){return 1===this.computedPagination.page},pagesNumber:function(){return 0===this.computedPagination.rowsPerPage?1:Math.max(1,Math.ceil(this.computedRowsNumber/this.computedPagination.rowsPerPage))},isLastPage:function(){return 0===this.lastRowIndex||this.computedPagination.page>=this.pagesNumber},computedRowsPerPageOptions:function(){var t=this;return(this.rowsPerPageOptions.includes(this.innerPagination.rowsPerPage)?this.rowsPerPageOptions:[this.innerPagination.rowsPerPage].concat(this.rowsPerPageOptions)).map(function(e){return{label:0===e?t.$q.lang.table.allRows:""+e,value:e}})}},watch:{pagesNumber:function(t,e){if(t!==e){var i=this.computedPagination.page;t&&!i?this.setPagination({page:1}):t1&&this.setPagination({page:t-1})},nextPage:function(){var t=this.computedPagination,e=t.page,i=t.rowsPerPage;this.lastRowIndex>0&&e*i0&&this.computedRows.every(function(e){return!0===t.selectedKeys[t.getRowKey(e)]})},someRowsSelected:function(){var t=this;return!0!==this.allRowsSelected&&this.computedRows.some(function(e){return!0===t.selectedKeys[t.getRowKey(e)]})},rowsSelectedNumber:function(){return this.selected.length}},methods:{isRowSelected:function(t){return!0===this.selectedKeys[t]},clearSelection:function(){this.$emit("update:selected",[])},__updateSelection:function(t,e,i,n){var s=this;this.$emit("selection",{rows:e,added:i,keys:t,evt:n});var o=!0===this.singleSelection?!0===i?e:[]:!0===i?this.selected.concat(e):this.selected.filter(function(e){return!1===t.includes(s.getRowKey(e))});this.$emit("update:selected",o)}}};function al(t){return Array.isArray(t)?t.slice():[]}var ll={props:{expanded:Array},data:function(){return{innerExpanded:al(this.expanded)}},watch:{expanded:function(t){this.innerExpanded=al(t)}},methods:{isRowExpanded:function(t){return this.innerExpanded.includes(t)},setExpanded:function(t){void 0!==this.expanded?this.$emit("update:expanded",t):this.innerExpanded=t},__updateExpanded:function(t,e){var i=this.innerExpanded.slice(),n=i.indexOf(t);!0===e?-1===n&&(i.push(t),this.setExpanded(i)):-1!==n&&(i.splice(n,1),this.setExpanded(i))}}},cl={props:{visibleColumns:Array},computed:{colList:function(){if(void 0!==this.columns)return this.columns;var t=this.data[0];return void 0!==t?Object.keys(t).map(function(e){return{name:e,label:e.toUpperCase(),field:e,align:tn(t[e])?"right":"left",sortable:!0}}):[]},computedCols:function(){var t=this,e=this.computedPagination,i=e.sortBy,n=e.descending;return(void 0!==this.visibleColumns?this.colList.filter(function(e){return!0===e.required||!0===t.visibleColumns.includes(e.name)}):this.colList).map(function(t){var e=t.align||"right",s="text-"+e;return Object.assign({},t,{align:e,__iconClass:"q-table__sort-icon q-table__sort-icon--"+e,__thClass:s+(void 0!==t.headerClasses?" "+t.headerClasses:"")+(!0===t.sortable?" sortable":"")+(t.name===i?" sorted "+(!0===n?"sort-desc":""):""),__tdStyle:void 0!==t.style?"function"!=typeof t.style?function(){return t.style}:t.style:function(){return null},__tdClass:void 0!==t.classes?"function"!=typeof t.classes?function(){return s+" "+t.classes}:function(e){return s+" "+t.classes(e)}:function(){return s}})})},computedColsMap:function(){var t={};return this.computedCols.forEach(function(e){t[e.name]=e}),t},computedColspan:function(){return void 0!==this.tableColspan?this.tableColspan:this.computedCols.length+(!0===this.hasSelectionMode?1:0)}}},ul={};ca.forEach(function(t){ul[t]={}});var hl=t.extend({name:"QTable",mixins:[Gt,Lt,Yi,{computed:{marginalsScope:function(){return{pagination:this.computedPagination,pagesNumber:this.pagesNumber,isFirstPage:this.isFirstPage,isLastPage:this.isLastPage,firstPage:this.firstPage,prevPage:this.prevPage,nextPage:this.nextPage,lastPage:this.lastPage,inFullscreen:this.inFullscreen,toggleFullscreen:this.toggleFullscreen}}},methods:{__getTopDiv:function(t){var e,i=this.$scopedSlots.top,n=this.$scopedSlots["top-left"],s=this.$scopedSlots["top-right"],o=this.$scopedSlots["top-selection"],r=!0===this.hasSelectionMode&&void 0!==o&&this.rowsSelectedNumber>0,a="q-table__top relative-position row items-center";return void 0!==i?t("div",{staticClass:a},[i(this.marginalsScope)]):(!0===r?e=o(this.marginalsScope).slice():(e=[],void 0!==n?e.push(t("div",{staticClass:"q-table-control"},[n(this.marginalsScope)])):this.title&&e.push(t("div",{staticClass:"q-table__control"},[t("div",{staticClass:"q-table__title",class:this.titleClass},this.title)]))),void 0!==s&&(e.push(t("div",{staticClass:"q-table__separator col"})),e.push(t("div",{staticClass:"q-table__control"},[s(this.marginalsScope)]))),0!==e.length?t("div",{staticClass:a},e):void 0)}}},Ua,Ka,Ga,Za,il,nl,ol,rl,ll,cl],props:Object.assign({},{data:{type:Array,default:function(){return[]}},rowKey:{type:[String,Function],default:"id"},columns:Array,loading:Boolean,binaryStateSort:Boolean,iconFirstPage:String,iconPrevPage:String,iconNextPage:String,iconLastPage:String,title:String,hideHeader:Boolean,grid:Boolean,gridHeader:Boolean,dense:Boolean,flat:Boolean,bordered:Boolean,square:Boolean,separator:{type:String,default:"horizontal",validator:function(t){return["horizontal","vertical","cell","none"].includes(t)}},wrapCells:Boolean,virtualScroll:Boolean},ul,{noDataLabel:String,noResultsLabel:String,loadingLabel:String,selectedRowsLabel:Function,rowsPerPageLabel:String,paginationLabel:Function,color:{type:String,default:"grey-8"},titleClass:[String,Array,Object],tableStyle:[String,Array,Object],tableClass:[String,Array,Object],tableHeaderStyle:[String,Array,Object],tableHeaderClass:[String,Array,Object],cardContainerClass:[String,Array,Object],cardContainerStyle:[String,Array,Object],cardStyle:[String,Array,Object],cardClass:[String,Array,Object]}),data:function(){return{innerPagination:Object.assign({sortBy:null,descending:!1,page:1,rowsPerPage:this.rowsPerPageOptions.length>0?this.rowsPerPageOptions[0]:5},this.pagination)}},watch:{needsReset:function(){!0===this.hasVirtScroll&&void 0!==this.$refs.virtScroll&&this.$refs.virtScroll.reset()}},computed:{getRowKey:function(){var t=this;return"function"==typeof this.rowKey?this.rowKey:function(e){return e[t.rowKey]}},hasVirtScroll:function(){return!0!==this.grid&&!0===this.virtualScroll},needsReset:function(){var t=this;return["tableStyle","tableClass","tableHeaderStyle","tableHeaderClass","__containerClass"].map(function(e){return t[e]}).join(";")},filteredSortedRows:function(){var t=this.data;if(!0===this.isServerSide||0===t.length)return t;var e=this.computedPagination,i=e.sortBy,n=e.descending;return this.filter&&(t=this.filterMethod(t,this.filter,this.computedCols,this.getCellValue)),void 0!==this.columnToSort&&(t=this.sortMethod(this.data===t?t.slice():t,i,n)),t},filteredSortedRowsNumber:function(){return this.filteredSortedRows.length},computedRows:function(){var t=this.filteredSortedRows;return!0===this.isServerSide?t:(0!==this.computedPagination.rowsPerPage&&(0===this.firstRowIndex&&this.data!==t?t.length>this.lastRowIndex&&(t=t.slice(0,this.lastRowIndex)):t=t.slice(this.firstRowIndex,this.lastRowIndex)),t)},computedRowsNumber:function(){return!0===this.isServerSide?this.computedPagination.rowsNumber||0:this.filteredSortedRowsNumber},nothingToDisplay:function(){return 0===this.computedRows.length},isServerSide:function(){return void 0!==this.computedPagination.rowsNumber},cardDefaultClass:function(){return" q-table__card"+(!0===this.isDark?" q-table__card--dark q-dark":"")+(!0===this.square?" q-table--square":"")+(!0===this.flat?" q-table--flat":"")+(!0===this.bordered?" q-table--bordered":"")},__containerClass:function(){return"q-table__container q-table--"+this.separator+"-separator column no-wrap"+(!0===this.grid?" q-table--grid":this.cardDefaultClass)+(!0===this.isDark?" q-table--dark":"")+(!0===this.dense?" q-table--dense":"")+(!1===this.wrapCells?" q-table--no-wrap":"")+(!0===this.inFullscreen?" fullscreen scroll":"")},containerClass:function(){return this.__containerClass+(!0===this.loading?" q-table--loading":"")},virtProps:function(){var t=this,e={};return ca.forEach(function(i){e[i]=t[i]}),void 0===e.virtualScrollItemSize&&(e.virtualScrollItemSize=!0===this.dense?28:48),e}},render:function(t){var e=[this.__getTopDiv(t)],i={staticClass:this.containerClass};return!0===this.grid?e.push(this.__getGridHeader(t)):Object.assign(i,{class:this.cardClass,style:this.cardStyle}),e.push(this.__getBody(t),this.__getBottomDiv(t)),!0===this.loading&&void 0!==this.$scopedSlots.loading&&e.push(this.$scopedSlots.loading()),t("div",i,e)},methods:{requestServerInteraction:function(t){var e=this;void 0===t&&(t={}),this.$nextTick(function(){e.$emit("request",{pagination:t.pagination||e.computedPagination,filter:t.filter||e.filter,getCellValue:e.getCellValue})})},resetVirtualScroll:function(){!0===this.hasVirtScroll&&this.$refs.virtScroll.reset()},__getBody:function(t){var e=this;if(!0===this.grid)return this.__getGridBody(t);var i=!0!==this.hideHeader?this.__getTHead(t):null;if(!0===this.hasVirtScroll){var n=this.$scopedSlots["top-row"],s=this.$scopedSlots["bottom-row"],o={default:this.__getVirtualTBodyTR(t)};if(void 0!==n){var r=t("tbody",n({cols:this.computedCols}));o.before=null===i?function(){return[r]}:function(){return[i].concat(r)}}else null!==i&&(o.before=function(){return i});return void 0!==s&&(o.after=function(){return t("tbody",s({cols:e.computedCols}))}),t(el,{ref:"virtScroll",props:Object.assign({},this.virtProps,{items:this.computedRows,type:"__qtable",tableColspan:this.computedColspan}),on:ft(this,"vs",{"virtual-scroll":this.__onVScroll}),class:this.tableClass,style:this.tableStyle,scopedSlots:o})}return Ja(t,{staticClass:"scroll",class:this.tableClass,style:this.tableStyle},[i,this.__getTBody(t)])},scrollTo:function(t,e){if(void 0===this.$refs.virtScroll){t=parseInt(t,10);var i=this.$el.querySelector("tbody tr:nth-of-type("+(t+1)+")");if(null!==i){var n=this.$el.querySelector(".q-table__middle.scroll"),s=i.offsetTop,o=s12?t.hour-12:t.hour),minute:null===t.minute?"--":dt(t.minute),second:null===t.second?"--":dt(t.second)}},defaultDateModel:function(){return this.__getDefaultDateModel()},computedFormat24h:function(){return null!==this.format24h?this.format24h:this.$q.lang.date.format24h},pointerStyle:function(){var t="Hour"===this.view,e=!0===t?12:60,i=this.innerModel[this.view.toLowerCase()],n="rotate("+(Math.round(i*(360/e))-180)+"deg) translateX(-50%)";return!0===t&&!0===this.computedFormat24h&&this.innerModel.hour>=12&&(n+=" scale(.7)"),{transform:n}},minLink:function(){return null!==this.innerModel.hour},secLink:function(){return!0===this.minLink&&null!==this.innerModel.minute},hourInSelection:function(){var t=this;return void 0!==this.hourOptions?function(e){return t.hourOptions.includes(e)}:void 0!==this.options?function(e){return t.options(e,null,null)}:void 0},minuteInSelection:function(){var t=this;return void 0!==this.minuteOptions?function(e){return t.minuteOptions.includes(e)}:void 0!==this.options?function(e){return t.options(t.innerModel.hour,e,null)}:void 0},secondInSelection:function(){var t=this;return void 0!==this.secondOptions?function(e){return t.secondOptions.includes(e)}:void 0!==this.options?function(e){return t.options(t.innerModel.hour,t.innerModel.minute,e)}:void 0},validHours:function(){if(void 0!==this.hourInSelection){var t=this.__getValidValues(0,11,this.hourInSelection),e=this.__getValidValues(12,11,this.hourInSelection);return{am:t,pm:e,values:t.values.concat(e.values)}}},validMinutes:function(){if(void 0!==this.minuteInSelection)return this.__getValidValues(0,59,this.minuteInSelection)},validSeconds:function(){if(void 0!==this.secondInSelection)return this.__getValidValues(0,59,this.secondInSelection)},viewValidOptions:function(){switch(this.view){case"Hour":return this.validHours;case"Minute":return this.validMinutes;case"Second":return this.validSeconds}},positions:function(){var t,e,i=0,n=1,s=void 0!==this.viewValidOptions?this.viewValidOptions.values:void 0;"Hour"===this.view?!0===this.computedFormat24h?(t=0,e=23):(t=0,e=11,!1===this.isAM&&(i=12)):(t=0,e=55,n=5);for(var o=[],r=t,a=t;r<=e;r+=n,a++){var l=r+i,c=void 0!==s&&!1===s.includes(l),u="Hour"===this.view&&0===r?!0===this.computedFormat24h?"00":"12":r;o.push({val:l,index:a,disable:c,label:u})}return o}},methods:{setNow:function(){var t=Object.assign({},this.__getCurrentDate(),this.__getCurrentTime());this.__updateValue(t),Object.assign(this.innerModel,t),this.view="Hour"},__getValidValues:function(t,e,i){var n=Array.apply(null,{length:e+1}).map(function(e,n){var s=n+t;return{index:s,val:!0===i(s)}}).filter(function(t){return!0===t.val}).map(function(t){return t.index});return{min:n[0],max:n[n.length-1],values:n,threshold:e+1}},__getWheelDist:function(t,e,i){var n=Math.abs(t-e);return Math.min(n,i-n)},__getNormalizedClockValue:function(t,e){var i=e.min,n=e.max,s=e.values,o=e.threshold;if(t===i)return i;if(tn)return this.__getWheelDist(t,i,o)<=this.__getWheelDist(t,n,o)?i:n;var r=s.findIndex(function(e){return t<=e}),a=s[r-1],l=s[r];return t-a<=l-t?a:l},__getMask:function(){return"persian"!==this.calendar&&null!==this.mask?this.mask:"HH:mm"+(!0===this.withSeconds?":ss":"")},__getDefaultDateModel:function(){if("string"!=typeof this.defaultDate){var t=this.__getCurrentDate(!0);return t.dateHash=this.__getDayHash(t),t}return ps(this.defaultDate,"YYYY/MM/DD",void 0,this.calendar)},__click:function(t){!0!==this.__shouldAbortInteraction()&&(!0!==this.$q.platform.is.desktop&&this.__updateClock(t,this.__getClockRect()),this.__goToNextView())},__activate:function(t){!0!==this.__shouldAbortInteraction()&&this.__updateClock(t,this.__getClockRect())},__shouldAbortInteraction:function(){return!0===this._isBeingDestroyed||!0===this._isDestroyed||void 0!==this.viewValidOptions&&(0===this.viewValidOptions.values.length||"Hour"===this.view&&!0!==this.computedFormat24h&&0===this.validHours[!0===this.isAM?"am":"pm"].values.length)},__getClockRect:function(){var t=this.$refs.clock.getBoundingClientRect(),e=t.top,i=t.left,n=t.width/2;return{top:e+n,left:i+n,dist:.7*n}},__goToNextView:function(){"Hour"===this.view?this.view="Minute":this.withSeconds&&"Minute"===this.view&&(this.view="Second")},__drag:function(t){if(!0!==this.__shouldAbortInteraction()){if(!0===t.isFirst)return this.draggingClockRect=this.__getClockRect(),void(this.dragCache=this.__updateClock(t.evt,this.draggingClockRect));this.dragCache=this.__updateClock(t.evt,this.draggingClockRect,this.dragCache),!0===t.isFinal&&(this.draggingClockRect=!1,this.dragCache=null,this.__goToNextView())}},__updateClock:function(t,e,i){var n,s=m(t),o=Math.abs(s.top-e.top),r=Math.sqrt(Math.pow(Math.abs(s.top-e.top),2)+Math.pow(Math.abs(s.left-e.left),2)),a=Math.asin(o/r)*(180/Math.PI);if(a=s.top0&&this.validHours.pm.values.length>0?r>=e.dist:this.validHours.am.values.length>0;n=this.__getNormalizedClockValue(n+(!0===l?0:12),this.validHours[!0===l?"am":"pm"])}else n=Math.round(n),!0===this.computedFormat24h?r-1}},duration:Number,noConnectors:Boolean,noNodesLabel:String,noResultsLabel:String},computed:{classes:function(){return"q-tree q-tree--"+(!0===this.dense?"dense":"standard")+(!0===this.noConnectors?" q-tree--no-connectors":"")+(!0===this.isDark?" q-tree--dark":"")+(void 0!==this.color?" text-"+this.color:"")},hasSelection:function(){return void 0!==this.selected},computedIcon:function(){return this.icon||this.$q.iconSet.tree.icon},computedControlColor:function(){return this.controlColor||this.color},textColorClass:function(){if(void 0!==this.textColor)return"text-"+this.textColor},selectedColorClass:function(){var t=this.selectedColor||this.color;if(t)return"text-"+t},meta:function(){var t=this,e={},i=function(n,s){var o=n.tickStrategy||(s?s.tickStrategy:t.tickStrategy),r=n[t.nodeKey],a=n[t.childrenKey]&&n[t.childrenKey].length>0,l=!0!==a,c=!0!==n.disabled&&!0===t.hasSelection&&!1!==n.selectable,u=!0!==n.disabled&&!1!==n.expandable,h="none"!==o,d="strict"===o,p="leaf-filtered"===o,f="leaf"===o||"leaf-filtered"===o,m=!0!==n.disabled&&!1!==n.tickable;!0===f&&!0===m&&s&&!0!==s.tickable&&(m=!1);var v=n.lazy;!0===v&&void 0!==t.lazy[r]&&!0===Array.isArray(n[t.childrenKey])&&(v=t.lazy[r]);var g={key:r,parent:s,isParent:a,isLeaf:l,lazy:v,disabled:n.disabled,link:!0!==n.disabled&&(!0===c||!0===u&&(!0===a||!0===v)),children:[],matchesFilter:!t.filter||t.filterMethod(n,t.filter),selected:r===t.selected&&!0===c,selectable:c,expanded:!0===a&&t.innerExpanded.includes(r),expandable:u,noTick:!0===n.noTick||!0!==d&&v&&"loaded"!==v,tickable:m,tickStrategy:o,hasTicking:h,strictTicking:d,leafFilteredTicking:p,leafTicking:f,ticked:!0===d?t.innerTicked.includes(r):!0===l&&t.innerTicked.includes(r)};if(e[r]=g,!0===a&&(g.children=n[t.childrenKey].map(function(t){return i(t,g)}),t.filter&&(!0!==g.matchesFilter?g.matchesFilter=g.children.some(function(t){return t.matchesFilter}):!0!==g.noTick&&!0!==g.disabled&&!0===g.tickable&&!0===p&&!0===g.children.every(function(t){return!0!==t.matchesFilter||!0===t.noTick||!0!==t.tickable})&&(g.tickable=!1)),!0===g.matchesFilter&&(!0!==g.noTick&&!0!==d&&!0===g.children.every(function(t){return t.noTick})&&(g.noTick=!0),f))){if(g.ticked=!1,g.indeterminate=g.children.some(function(t){return!0===t.indeterminate}),g.tickable=!0===g.tickable&&g.children.some(function(t){return t.tickable}),!0!==g.indeterminate){var _=g.children.reduce(function(t,e){return!0===e.ticked?t+1:t},0);_===g.children.length?g.ticked=!0:_>0&&(g.indeterminate=!0)}!0===g.indeterminate&&(g.indeterminateNextState=g.children.every(function(t){return!0!==t.tickable||!0!==t.ticked}))}return g};return this.nodes.forEach(function(t){return i(t,null)}),e}},data:function(){return{lazy:{},innerTicked:this.ticked||[],innerExpanded:this.expanded||[]}},watch:{ticked:function(t){this.innerTicked=t},expanded:function(t){this.innerExpanded=t}},methods:{getNodeByKey:function(t){var e=this,i=[].reduce,n=function(s,o){return s||!o?s:!0===Array.isArray(o)?i.call(Object(o),n,s):o[e.nodeKey]===t?o:o[e.childrenKey]?n(null,o[e.childrenKey]):void 0};return n(null,this.nodes)},getTickedNodes:function(){var t=this;return this.innerTicked.map(function(e){return t.getNodeByKey(e)})},getExpandedNodes:function(){var t=this;return this.innerExpanded.map(function(e){return t.getNodeByKey(e)})},isExpanded:function(t){return!(!t||!this.meta[t])&&this.meta[t].expanded},collapseAll:function(){void 0!==this.expanded?this.$emit("update:expanded",[]):this.innerExpanded=[]},expandAll:function(){var t=this,e=this.innerExpanded,i=function(n){n[t.childrenKey]&&n[t.childrenKey].length>0&&!1!==n.expandable&&!0!==n.disabled&&(e.push(n[t.nodeKey]),n[t.childrenKey].forEach(i))};this.nodes.forEach(i),void 0!==this.expanded?this.$emit("update:expanded",e):this.innerExpanded=e},setExpanded:function(t,e,i,n){var s=this;if(void 0===i&&(i=this.getNodeByKey(t)),void 0===n&&(n=this.meta[t]),n.lazy&&"loaded"!==n.lazy){if("loading"===n.lazy)return;this.$set(this.lazy,t,"loading"),!0!==Array.isArray(i[this.childrenKey])&&this.$set(i,this.childrenKey,[]),this.$emit("lazy-load",{node:i,key:t,done:function(e){s.lazy[t]="loaded",s.$set(i,s.childrenKey,!0===Array.isArray(e)?e:[]),s.$nextTick(function(){var e=s.meta[t];e&&!0===e.isParent&&s.__setExpanded(t,!0)})},fail:function(){s.$delete(s.lazy,t),0===i[s.childrenKey].length&&s.$delete(i,s.childrenKey)}})}else!0===n.isParent&&!0===n.expandable&&this.__setExpanded(t,e)},__setExpanded:function(t,e){var i=this,n=this.innerExpanded,s=void 0!==this.expanded;if(!0===s&&(n=n.slice()),e){if(this.accordion&&this.meta[t]){var o=[];this.meta[t].parent?this.meta[t].parent.children.forEach(function(e){e.key!==t&&!0===e.expandable&&o.push(e.key)}):this.nodes.forEach(function(e){var n=e[i.nodeKey];n!==t&&o.push(n)}),o.length>0&&(n=n.filter(function(t){return!1===o.includes(t)}))}n=n.concat([t]).filter(function(t,e,i){return i.indexOf(t)===e})}else n=n.filter(function(e){return e!==t});!0===s?this.$emit("update:expanded",n):this.innerExpanded=n},isTicked:function(t){return!(!t||!this.meta[t])&&this.meta[t].ticked},setTicked:function(t,e){var i=this.innerTicked,n=void 0!==this.ticked;!0===n&&(i=i.slice()),i=e?i.concat(t).filter(function(t,e,i){return i.indexOf(t)===e}):i.filter(function(e){return!1===t.includes(e)}),!0===n&&this.$emit("update:ticked",i)},__getSlotScope:function(t,e,i){var n=this,s={tree:this,node:t,key:i,color:this.color,dark:this.isDark};return Object.defineProperty(s,"expanded",{get:function(){return e.expanded},set:function(t){t!==e.expanded&&n.setExpanded(i,t)},configurable:!0,enumerable:!0}),Object.defineProperty(s,"ticked",{get:function(){return e.ticked},set:function(t){t!==e.ticked&&n.setTicked([i],t)},configurable:!0,enumerable:!0}),s},__getChildren:function(t,e){var i=this;return(this.filter?e.filter(function(t){return i.meta[t[i.nodeKey]].matchesFilter}):e).map(function(e){return i.__getNode(t,e)})},__getNodeMedia:function(t,e){if(void 0!==e.icon)return t(Ut,{staticClass:"q-tree__icon q-mr-sm",props:{name:e.icon,color:e.iconColor}});var i=e.img||e.avatar;return i?t("img",{staticClass:"q-tree__"+(e.img?"img":"avatar")+" q-mr-sm",attrs:{src:i}}):void 0},__getNode:function(t,e){var i=this,n=e[this.nodeKey],s=this.meta[n],o=e.header&&this.$scopedSlots["header-"+e.header]||this.$scopedSlots["default-header"],r=!0===s.isParent?this.__getChildren(t,e[this.childrenKey]):[],a=r.length>0||s.lazy&&"loaded"!==s.lazy,l=e.body&&this.$scopedSlots["body-"+e.body]||this.$scopedSlots["default-body"],c=void 0!==o||void 0!==l?this.__getSlotScope(e,s,n):null;return void 0!==l&&(l=t("div",{staticClass:"q-tree__node-body relative-position"},[t("div",{class:this.textColorClass},[l(c)])])),t("div",{key:n,staticClass:"q-tree__node relative-position",class:{"q-tree__node--parent":a,"q-tree__node--child":!a}},[t("div",{staticClass:"q-tree__node-header relative-position row no-wrap items-center",class:{"q-tree__node--link q-hoverable q-focusable":s.link,"q-tree__node--selected":s.selected,"q-tree__node--disabled":s.disabled},attrs:{tabindex:s.link?0:-1},on:{click:function(t){i.__onClick(e,s,t)},keypress:function(t){!0!==Z(t)&&(13===t.keyCode?i.__onClick(e,s,t,!0):32===t.keyCode&&i.__onExpandClick(e,s,t,!0))}}},[t("div",{staticClass:"q-focus-helper",attrs:{tabindex:-1},ref:"blurTarget_"+s.key}),"loading"===s.lazy?t(ue,{staticClass:"q-tree__spinner",props:{color:this.computedControlColor}}):!0===a?t(Ut,{staticClass:"q-tree__arrow",class:{"q-tree__arrow--rotate":s.expanded},props:{name:this.computedIcon},on:{click:function(t){i.__onExpandClick(e,s,t)}}}):null,!0===s.hasTicking&&!0!==s.noTick?t(cn,{staticClass:"q-tree__tickbox",props:{value:!0===s.indeterminate?null:s.ticked,color:this.computedControlColor,dark:this.isDark,dense:!0,keepColor:!0,disable:!0!==s.tickable},on:{keydown:S,input:function(t){i.__onTickedClick(s,t)}}}):null,t("div",{staticClass:"q-tree__node-header-content col row no-wrap items-center",class:s.selected?this.selectedColorClass:this.textColorClass},[o?o(c):[this.__getNodeMedia(t,e),t("div",e[this.labelKey])]])]),!0===a?t(_o,{props:{duration:this.duration},on:ft(this,"slide",{show:function(){i.$emit("after-show")},hide:function(){i.$emit("after-hide")}})},[t("div",{staticClass:"q-tree__node-collapsible",class:this.textColorClass,directives:[{name:"show",value:s.expanded}]},[l,t("div",{staticClass:"q-tree__children",class:{"q-tree__node--disabled":s.disabled}},r)])]):l])},__blur:function(t){var e=this.$refs["blurTarget_"+t];void 0!==e&&e.focus()},__onClick:function(t,e,i,n){!0!==n&&this.__blur(e.key),this.hasSelection&&e.selectable?!1===this.noSelectionUnset?this.$emit("update:selected",e.key!==this.selected?e.key:null):e.key!==this.selected&&this.$emit("update:selected",e.key||null):this.__onExpandClick(t,e,i,n),"function"==typeof t.handler&&t.handler(t)},__onExpandClick:function(t,e,i,n){void 0!==i&&S(i),!0!==n&&this.__blur(e.key),this.setExpanded(e.key,!e.expanded,t,e)},__onTickedClick:function(t,e){if(!0===t.indeterminate&&(e=t.indeterminateNextState),t.strictTicking)this.setTicked([t.key],e);else if(t.leafTicking){var i=[],n=function(t){t.isParent?(!0!==e&&!0!==t.noTick&&!0===t.tickable&&i.push(t.key),!0===t.leafTicking&&t.children.forEach(n)):!0===t.noTick||!0!==t.tickable||!0===t.leafFilteredTicking&&!0!==t.matchesFilter||i.push(t.key)};n(t),this.setTicked(i,e)}}},render:function(t){var e=this.__getChildren(t,this.nodes);return t("div",{class:this.classes},0===e.length?this.filter?this.noResultsLabel||this.$q.lang.tree.noResults:this.noNodesLabel||this.$q.lang.tree.noNodes:e)},created:function(){!0===this.defaultExpandAll&&this.expandAll()}}),ql=t.extend({name:"QUploaderBase",mixins:[Gt,Ho],props:{label:String,color:String,textColor:String,square:Boolean,flat:Boolean,bordered:Boolean,noThumbnails:Boolean,autoUpload:Boolean,hideUploadBtn:Boolean,disable:Boolean,readonly:Boolean},provide:function(){return{__qUploaderGetInput:this.__getInputControl}},data:function(){return{files:[],queuedFiles:[],uploadedFiles:[],dnd:!1,expanded:!1,uploadSize:0,uploadedSize:0}},watch:{isUploading:function(t,e){!1===e&&!0===t?this.$emit("start"):!0===e&&!1===t&&this.$emit("finish")}},computed:{canUpload:function(){return!0===this.editable&&!0!==this.isBusy&&!0!==this.isUploading&&this.queuedFiles.length>0},canAddFiles:function(){return!0===this.editable&&!0!==this.isUploading&&(!0===this.multiple||0===this.queuedFiles.length)&&(void 0===this.maxFiles||this.files.length0&&(this.files=n,void 0!==e&&e(i),this.$emit("removed",i.files))}},removeFile:function(t){this.disable||("uploaded"===t.__status?this.uploadedFiles=this.uploadedFiles.filter(function(e){return e.__key!==t.__key}):"uploading"===t.__status?t.__abort():this.uploadSize-=t.size,this.files=this.files.filter(function(e){return e.__key!==t.__key||(void 0!==e.__img&&window.URL.revokeObjectURL(e.__img.src),!1)}),this.queuedFiles=this.queuedFiles.filter(function(e){return e.__key!==t.__key}),this.$emit("removed",[t]))},__revokeImgURLs:function(){this.files.forEach(function(t){void 0!==t.__img&&window.URL.revokeObjectURL(t.__img.src)})},__getFileInput:function(){return this.$refs.input||this.$el.getElementsByClassName("q-uploader__input")[0]},__getProgressLabel:function(t){return(100*t).toFixed(2)+"%"},__updateFile:function(t,e,i){if(t.__status=e,"idle"===e)return t.__uploaded=0,t.__progress=0,t.__sizeLabel=lt(t.size),void(t.__progressLabel="0.00%");"failed"!==e?(t.__uploaded="uploaded"===e?t.size:i,t.__progress="uploaded"===e?1:Math.min(.9999,t.__uploaded/t.size),t.__progressLabel=this.__getProgressLabel(t.__progress),this.$forceUpdate()):this.$forceUpdate()},__addFiles:function(t,e){var i=this,n=this.__processFiles(t,e,this.files,!0);if(void 0!==n){var s=this.__getFileInput();void 0!==s&&(s.value=""),n.forEach(function(t){if(i.__updateFile(t,"idle"),i.uploadSize+=t.size,!0!==i.noThumbnails&&t.type.toUpperCase().startsWith("IMAGE")){var e=new Image;e.src=window.URL.createObjectURL(t),t.__img=e}}),this.files=this.files.concat(n),this.queuedFiles=this.queuedFiles.concat(n),this.$emit("added",n),!0===this.autoUpload&&this.upload()}},__getBtn:function(t,e,i,n){if(!0===e)return t(Be,{props:{type:"a",icon:this.$q.iconSet.uploader[i],flat:!0,dense:!0},on:{click:"add"===i?this.pickFiles:n}},"add"===i?this.__getInputControl(t):null)},__getInputControl:function(t){return[t("input",{ref:"input",staticClass:"q-uploader__input overflow-hidden absolute-full",attrs:Object.assign({},{tabindex:-1,type:"file",title:"",accept:this.accept,capture:this.capture},!0===this.multiple?{multiple:!0}:{}),on:ft(this,"input",{mousedown:b,click:this.pickFiles,change:this.__addFiles})})]},__getHeader:function(t){return void 0!==this.$scopedSlots.header?this.$scopedSlots.header(this):[t("div",{staticClass:"q-uploader__header-content column"},[t("div",{staticClass:"flex flex-center no-wrap q-gutter-xs"},[this.__getBtn(t,this.queuedFiles.length>0,"removeQueue",this.removeQueuedFiles),this.__getBtn(t,this.uploadedFiles.length>0,"removeUploaded",this.removeUploadedFiles),!0===this.isUploading?t(ue,{staticClass:"q-uploader__spinner"}):null,t("div",{staticClass:"col column justify-center"},[void 0!==this.label?t("div",{staticClass:"q-uploader__title"},[this.label]):null,t("div",{staticClass:"q-uploader__subtitle"},[this.uploadSizeLabel+" / "+this.uploadProgressLabel])]),this.__getBtn(t,this.canAddFiles,"add",this.pickFiles),this.__getBtn(t,!1===this.hideUploadBtn&&!0===this.canUpload,"upload",this.upload),this.__getBtn(t,this.isUploading,"clear",this.abort)])])]},__getList:function(t){var e=this;return void 0!==this.$scopedSlots.list?this.$scopedSlots.list(this):this.files.map(function(i){return t("div",{key:i.__key,staticClass:"q-uploader__file relative-position",class:{"q-uploader__file--img":!0!==e.noThumbnails&&void 0!==i.__img,"q-uploader__file--failed":"failed"===i.__status,"q-uploader__file--uploaded":"uploaded"===i.__status},style:!0!==e.noThumbnails&&void 0!==i.__img?{backgroundImage:'url("'+i.__img.src+'")'}:null},[t("div",{staticClass:"q-uploader__file-header row flex-center no-wrap"},["failed"===i.__status?t(Ut,{staticClass:"q-uploader__file-status",props:{name:e.$q.iconSet.type.negative,color:"negative"}}):null,t("div",{staticClass:"q-uploader__file-header-content col"},[t("div",{staticClass:"q-uploader__title"},[i.name]),t("div",{staticClass:"q-uploader__subtitle row items-center no-wrap"},[i.__sizeLabel+" / "+i.__progressLabel])]),"uploading"===i.__status?t(pn,{props:{value:i.__progress,min:0,max:1,indeterminate:0===i.__progress}}):t(Be,{props:{round:!0,dense:!0,flat:!0,icon:e.$q.iconSet.uploader["uploaded"===i.__status?"done":"clear"]},on:{click:function(){e.removeFile(i)}}})])])})}},beforeDestroy:function(){!0===this.isUploading&&this.abort(),this.files.length>0&&this.__revokeImgURLs()},render:function(t){var e=[t("div",{staticClass:"q-uploader__header",class:this.colorClass},this.__getHeader(t)),t("div",{staticClass:"q-uploader__list scroll"},this.__getList(t)),this.__getDnd(t,"uploader")];return!0===this.isBusy&&e.push(t("div",{staticClass:"q-uploader__overlay absolute-full flex flex-center"},[t(ue)])),t("div",{staticClass:"q-uploader column no-wrap",class:{"q-uploader--dark q-dark":this.isDark,"q-uploader--bordered":this.bordered,"q-uploader--square no-border-radius":this.square,"q-uploader--flat no-shadow":this.flat,"disabled q-uploader--disable":this.disable,"q-uploader--dnd":this.dnd},on:!0===this.canAddFiles?ft(this,"drag",{dragover:this.__onDragOver,dragleave:this.__onDragLeave}):null},e)}});function Tl(t){return"function"==typeof t?t:function(){return t}}var Ml={props:{url:[Function,String],method:{type:[Function,String],default:"POST"},fieldName:{type:[Function,String],default:function(t){return t.name}},headers:[Function,Array],formFields:[Function,Array],withCredentials:[Function,Boolean],sendRaw:[Function,Boolean],batch:[Function,Boolean],factory:Function},data:function(){return{xhrs:[],promises:[],workingThreads:0}},computed:{xhrProps:function(){return{url:Tl(this.url),method:Tl(this.method),headers:Tl(this.headers),formFields:Tl(this.formFields),fieldName:Tl(this.fieldName),withCredentials:Tl(this.withCredentials),sendRaw:Tl(this.sendRaw),batch:Tl(this.batch)}},isUploading:function(){return this.workingThreads>0},isBusy:function(){return this.promises.length>0}},methods:{abort:function(){this.xhrs.forEach(function(t){t.abort()}),this.promises.length>0&&(this.abortPromises=!0)},upload:function(){var t=this;if(!1!==this.canUpload){var e=this.queuedFiles.slice(0);this.queuedFiles=[],this.xhrProps.batch(e)?this.__runFactory(e):e.forEach(function(e){t.__runFactory([e])})}},__runFactory:function(t){var e=this;if(this.workingThreads++,"function"==typeof this.factory){var i=this.factory(t);if(i)if("function"==typeof i.catch&&"function"==typeof i.then){this.promises.push(i);var n=function(n){!0!==e._isBeingDestroyed&&!0!==e._isDestroyed&&(e.promises=e.promises.filter(function(t){return t!==i}),0===e.promises.length&&(e.abortPromises=!1),e.queuedFiles=e.queuedFiles.concat(t),t.forEach(function(t){e.__updateFile(t,"failed")}),e.$emit("factory-failed",n,t),e.workingThreads--)};i.then(function(s){!0===e.abortPromises?n(new Error("Aborted")):!0!==e._isBeingDestroyed&&!0!==e._isDestroyed&&(e.promises=e.promises.filter(function(t){return t!==i}),e.__uploadFiles(t,s))}).catch(n)}else this.__uploadFiles(t,i||{});else this.$emit("factory-failed",new Error("QUploader: factory() does not return properly"),t),this.workingThreads--}else this.__uploadFiles(t,{})},__uploadFiles:function(t,e){var i=this,n=new FormData,s=new XMLHttpRequest,o=function(t,n){return void 0!==e[t]?Tl(e[t])(n):i.xhrProps[t](n)},r=o("url",t);if(!r)return console.error("q-uploader: invalid or no URL specified"),void this.workingThreads--;var a=o("formFields",t);void 0!==a&&a.forEach(function(t){n.append(t.name,t.value)});var l,c=0,u=0,h=0,d=0;s.upload.addEventListener("progress",function(e){if(!0!==l){var n=Math.min(d,e.loaded);i.uploadedSize+=n-h;for(var s=(h=n)-u,o=c;s>0&&or.size))return void i.__updateFile(r,"uploading",s);s-=r.size,c++,u+=r.size,i.__updateFile(r,"uploading",r.size)}}},!1),s.onreadystatechange=function(){s.readyState<4||(s.status&&s.status<400?(i.uploadedFiles=i.uploadedFiles.concat(t),t.forEach(function(t){i.__updateFile(t,"uploaded")}),i.$emit("uploaded",{files:t,xhr:s})):(l=!0,i.uploadedSize-=h,i.queuedFiles=i.queuedFiles.concat(t),t.forEach(function(t){i.__updateFile(t,"failed")}),i.$emit("failed",{files:t,xhr:s})),i.workingThreads--,i.xhrs=i.xhrs.filter(function(t){return t!==s}))},s.open(o("method",t),r),!0===o("withCredentials",t)&&(s.withCredentials=!0);var p=o("headers",t);void 0!==p&&p.forEach(function(t){s.setRequestHeader(t.name,t.value)});var f=o("sendRaw",t);t.forEach(function(t){i.__updateFile(t,"uploading",0),!0!==f&&n.append(o("fieldName",t),t,t.name),t.xhr=s,t.__abort=function(){s.abort()},d+=t.size}),this.$emit("uploading",{files:t,xhr:s}),this.xhrs.push(s),!0===f?s.send(new Blob(t)):s.send(n)}}},$l=t.extend({name:"QUploader",mixins:[ql,Ml]}),Ll=t.extend({name:"QUploaderAddTrigger",inject:{__qUploaderGetInput:{default:function(){console.error("QUploaderAddTrigger needs to be child of QUploader")}}},render:function(t){return this.__qUploaderGetInput(t)}}),Ol=t.extend({name:"QVideo",mixins:[Xo,Lt],props:{src:{type:String,required:!0},title:String,fetchpriority:{type:String,default:"auto"},loading:{type:String,default:"eager"},referrerpolicy:{type:String,default:"strict-origin-when-cross-origin"}},computed:{iframeData:function(){return{attrs:{src:this.src,frameborder:"0",title:this.title,allowfullscreen:!0,fetchpriority:this.fetchpriority,loading:this.loading,referrerpolicy:this.referrerpolicy}}},classes:function(){return"q-video"+(void 0!==this.ratio?" q-video--responsive":"")}},render:function(t){return t("div",{class:this.classes,style:this.ratioStyle,on:Object.assign({},this.qListeners)},[t("iframe",this.iframeData)])}}),Bl=Object.freeze({__proto__:null,QAjaxBar:kt,QAvatar:Kt,QBadge:Xt,QBanner:Jt,QBar:ee,QBreadcrumbs:re,QBreadcrumbsEl:le,QBtn:Be,QBtnDropdown:$i,QBtnGroup:Ee,QBtnToggle:Bi,QCard:Ei,QCardSection:zi,QCardActions:Pi,QCarousel:en,QCarouselSlide:nn,QCarouselControl:sn,QChatMessage:on,QCheckbox:cn,QChip:un,QCircularProgress:pn,QColor:Vn,QDate:zs,QDialog:Ys,QDrawer:Ks,QEditor:vo,QExpansionItem:Co,QFab:Mo,QFabAction:Oo,QField:jo,QFile:Wo,QFooter:Yo,QForm:Uo,QHeader:Ko,QIcon:Ut,QImg:Go,QInfiniteScroll:Jo,QInnerLoading:tr,QInput:pr,QIntersection:_r,QList:Gs,QItem:Zs,QItemSection:Js,QItemLabel:go,QKnob:yr,QLayout:Cr,QMarkupTable:xr,QMenu:Mi,QNoSsr:kr,QOptionGroup:Lr,QPage:Or,QPageContainer:Br,QPageScroller:zr,QPageSticky:Er,QPagination:Pr,QParallax:Dr,QPopupEdit:Fr,QPopupProxy:jr,QLinearProgress:Nr,QPullToRefresh:Hr,QRadio:qr,QRange:Ur,QRating:Kr,QResizeObserver:Ln,QResponsive:Xr,QScrollArea:ta,QScrollObserver:wr,QSelect:da,QSeparator:So,QSkeleton:ma,QSlideItem:ga,QSlideTransition:_o,QSlider:Mn,QSpace:_a,QSpinner:ue,QSpinnerAudio:ba,QSpinnerBall:ya,QSpinnerBars:Sa,QSpinnerBox:wa,QSpinnerClock:Ca,QSpinnerComment:xa,QSpinnerCube:ka,QSpinnerDots:qa,QSpinnerFacebook:Ta,QSpinnerGears:Ma,QSpinnerGrid:$a,QSpinnerHearts:La,QSpinnerHourglass:Oa,QSpinnerInfinity:Ba,QSpinnerIos:Ea,QSpinnerOrbit:za,QSpinnerOval:Pa,QSpinnerPie:Aa,QSpinnerPuff:Ia,QSpinnerRadio:Da,QSpinnerRings:Ra,QSpinnerTail:Fa,QSplitter:ja,QStep:Ha,QStepper:Qa,QStepperNavigation:Wa,QTabPanels:Rn,QTabPanel:Fn,QTable:hl,QTh:Ya,QTr:dl,QTd:pl,QTabs:An,QTab:Dn,QRouteTab:_l,QTime:bl,QTimeline:yl,QTimelineEntry:Sl,QToggle:Tr,QToolbar:wl,QToolbarTitle:Cl,QTooltip:Xs,QTree:kl,QUploader:$l,QUploaderBase:ql,QUploaderAddTrigger:Ll,QVideo:Ol,QVirtualScroll:el});function El(t){if(!1===t)return 0;if(!0===t||void 0===t)return 1;var e=parseInt(t,10);return isNaN(e)?0:e}function zl(t){var e=t.__qclosepopup;void 0!==e&&(t.removeEventListener("click",e.handler),t.removeEventListener("keyup",e.handlerKey),delete t.__qclosepopup)}var Pl={name:"close-popup",bind:function(t,e,i){var n=e.value;void 0!==t.__qclosepopup&&(zl(t),t.__qclosepopup_destroyed=!0);var s={depth:El(n),handler:function(t){0!==s.depth&&setTimeout(function(){!function(t,e,i){for(;0!==i&&void 0!==t;){if(void 0!==t.__renderPortal){if(i--,"QMenu"===t.$options.name){t=Ne(t,e);continue}t.hide(e)}t=t.$parent}}(i.componentInstance||i.context,t,s.depth)})},handlerKey:function(t){!0===J(t,13)&&s.handler(t)}};t.__qclosepopup=s,t.addEventListener("click",s.handler),t.addEventListener("keyup",s.handlerKey)},update:function(t,e){var i=e.value,n=e.oldValue;void 0!==t.__qclosepopup&&i!==n&&(t.__qclosepopup.depth=El(i))},unbind:function(t){void 0===t.__qclosepopup_destroyed?zl(t):delete t.__qclosepopup_destroyed}};function Al(t){var e=t.__qgoback;void 0!==e&&(t.removeEventListener("click",e.goBack),t.removeEventListener("keyup",e.goBackKey),delete t.__qgoback)}var Il={name:"go-back",bind:function(t,e,i){var n=e.value,s=e.modifiers;void 0!==t.__qgoback&&(Al(t),t.__qgoback_destroyed=!0);var o={value:n,position:window.history.length-1,single:s.single,goBack:function(){var t=i.context.$router;!0===o.single?t.go(-1):!0===c.is.nativeMobile?t.go(o.position-window.history.length):t.replace(o.value)},goBackKey:function(t){!0===J(t,13)&&o.goBack()}};t.__qgoback=o,t.addEventListener("click",o.goBack),t.addEventListener("keyup",o.goBackKey)},update:function(t,e){var i=e.value,n=e.oldValue,s=t.__qgoback;void 0!==s&&i!==n&&(s.value=i)},unbind:function(t){void 0===t.__qgoback_destroyed?Al(t):delete t.__qgoback_destroyed}},Dl=0,Rl=void 0;function Fl(t,e){void 0===Rl&&((Rl=document.createElement("div")).style.cssText="position: absolute; left: 0; top: 0",document.body.appendChild(Rl));var i=t.getBoundingClientRect(),n=Rl.getBoundingClientRect(),s=window.getComputedStyle(t),o=s.marginLeft,r=s.marginRight,a=s.marginTop,l=s.marginBottom,c=parseInt(o,10)+parseInt(r,10),u=parseInt(a,10)+parseInt(l,10);return{left:i.left-n.left,top:i.top-n.top,width:i.right-i.left,height:i.bottom-i.top,widthM:i.right-i.left+(!0===e?0:c),heightM:i.bottom-i.top+(!0===e?0:u),marginH:!0===e?c:0,marginV:!0===e?u:0}}function jl(t){return{width:t.scrollWidth,height:t.scrollHeight}}var Vl=["Top","Right","Bottom","Left"],Nl=["borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius"],Hl=/-block|-inline|block-|inline-/,Ql=/(-block|-inline|block-|inline-).*:/;function Wl(t,e){for(var i=window.getComputedStyle(t),n={},s=0;s-1){for(var c=o.replace("border",""),u="",h=0;hi&&(e===t||!0===Yl.includes(s))&&(i=r),e=e.parentNode}return i}function Kl(t){return t&&t.ownerDocument===document&&null!==t.parentNode}function Xl(t){var e,i=function(){return!1},n=!1,s=!0,o={from:(e=t).from,to:void 0!==e.to?e.to:e.from},r=function(t){return"number"==typeof t?t={duration:t}:"function"==typeof t&&(t={onEnd:t}),Object.assign({},t,{waitFor:void 0===t.waitFor?0:t.waitFor,duration:!0===isNaN(t.duration)?300:parseInt(t.duration,10),easing:"string"==typeof t.easing&&t.easing.length>0?t.easing:"ease-in-out",delay:!0===isNaN(t.delay)?0:parseInt(t.delay,10),fill:"string"==typeof t.fill&&t.fill.length>0?t.fill:"none",resize:!0===t.resize,useCSS:!0===t.useCSS,hideFromClone:!0===t.hideFromClone,keepToClone:!0===t.keepToClone,tween:!0===t.tween,tweenFromOpacity:!0===isNaN(t.tweenFromOpacity)?.6:parseFloat(t.tweenFromOpacity),tweenToOpacity:!0===isNaN(t.tweenToOpacity)?.5:parseFloat(t.tweenToOpacity)})}(t),a=fe(o.from);if(!0!==Kl(a))return i;"function"==typeof a.qMorphCancel&&a.qMorphCancel();var l=void 0,c=void 0,u=void 0,h=void 0,d=a.parentNode,p=a.nextElementSibling,f=Fl(a,r.resize),m=jl(d),v=m.width,g=m.height,_=Wl(a,["borderWidth","borderStyle","borderColor","borderRadius","backgroundColor","transform","position","cssText"]),b=_.borderWidth,y=_.borderStyle,S=_.borderColor,w=_.borderRadius,C=_.backgroundColor,x=_.transform,k=_.position,q=_.cssText,T=a.classList.toString(),M=a.style.cssText,$=a.cloneNode(!0),L=!0===r.tween?a.cloneNode(!0):void 0;void 0!==L&&(L.className=L.classList.toString().split(" ").filter(function(t){return!1===/^bg-/.test(t)}).join(" ")),!0===r.hideFromClone&&$.classList.add("q-morph--internal"),$.setAttribute("aria-hidden","true"),$.style.transition="none",$.style.animation="none",$.style.pointerEvents="none",d.insertBefore($,p),a.qMorphCancel=function(){n=!0,$.remove(),void 0!==L&&L.remove(),!0===r.hideFromClone&&$.classList.remove("q-morph--internal"),a.qMorphCancel=void 0};return"function"==typeof t.onToggle&&t.onToggle(),requestAnimationFrame(function(){var t=fe(o.to);if(!0!==n&&!0===Kl(t)){a!==t&&"function"==typeof t.qMorphCancel&&t.qMorphCancel(),!0!==r.keepToClone&&t.classList.add("q-morph--internal"),$.classList.add("q-morph--internal");var e=jl(d),p=e.width,m=e.height,_=jl(t.parentNode),O=_.width,B=_.height;!0!==r.hideFromClone&&$.classList.remove("q-morph--internal"),t.qMorphCancel=function(){n=!0,$.remove(),void 0!==L&&L.remove(),!0===r.hideFromClone&&$.classList.remove("q-morph--internal"),!0!==r.keepToClone&&t.classList.remove("q-morph--internal"),a.qMorphCancel=void 0,t.qMorphCancel=void 0};var E=function(){if(!0!==n){!0!==r.hideFromClone&&($.classList.add("q-morph--internal"),$.innerHTML="",$.style.left=0,$.style.right="unset",$.style.top=0,$.style.bottom="unset",$.style.transform="none"),!0!==r.keepToClone&&t.classList.remove("q-morph--internal");var e=t.parentNode,o=jl(e),_=o.width,E=o.height,z=t.cloneNode(r.keepToClone);z.setAttribute("aria-hidden","true"),!0!==r.keepToClone&&(z.style.left=0,z.style.right="unset",z.style.top=0,z.style.bottom="unset",z.style.transform="none",z.style.pointerEvents="none"),z.classList.add("q-morph--internal");var P=t===a&&d===e?$:t.nextElementSibling;e.insertBefore(z,P);var A=Wl(t,["borderWidth","borderStyle","borderColor","borderRadius","backgroundColor","transform","position","cssText"]),I=A.borderWidth,D=A.borderStyle,R=A.borderColor,F=A.borderRadius,j=A.backgroundColor,V=A.transform,N=A.position,H=A.cssText,Q=t.classList.toString(),W=t.style.cssText;t.style.cssText=H,t.style.transform="none",t.style.animation="none",t.style.transition="none",t.className=Q.split(" ").filter(function(t){return!1===/^bg-/.test(t)}).join(" ");for(var Y=Fl(t,r.resize),U=f.left-Y.left,K=f.top-Y.top,X=f.width/(Y.width>0?Y.width:10),G=f.height/(Y.height>0?Y.height:100),Z=v-p,J=g-m,tt=_-O,et=E-B,it=Math.max(f.widthM,Z),nt=Math.max(f.heightM,J),st=Math.max(Y.widthM,tt),ot=Math.max(Y.heightM,et),rt=a===t&&!1===["absolute","fixed"].includes(N)&&!1===["absolute","fixed"].includes(k),at="fixed"===N,lt=e;!0!==at&<!==document;)at="fixed"===window.getComputedStyle(lt).position,lt=lt.parentNode;if(!0!==r.hideFromClone&&($.style.display="block",$.style.flex="0 0 auto",$.style.opacity=0,$.style.minWidth="unset",$.style.maxWidth="unset",$.style.minHeight="unset",$.style.maxHeight="unset",$.classList.remove("q-morph--internal")),!0!==r.keepToClone&&(z.style.display="block",z.style.flex="0 0 auto",z.style.opacity=0,z.style.minWidth="unset",z.style.maxWidth="unset",z.style.minHeight="unset",z.style.maxHeight="unset"),z.classList.remove("q-morph--internal"),"string"==typeof r.classes&&(t.className+=" "+r.classes),"string"==typeof r.style)t.style.cssText+=" "+r.style;else if(!0===Zi(r.style))for(var ct in r.style)t.style[ct]=r.style[ct];var ut=Ul($),ht=Ul(t),dt=!0===at?document.documentElement:{scrollLeft:0,scrollTop:0};t.style.position=!0===at?"fixed":"absolute",t.style.left=Y.left-dt.scrollLeft+"px",t.style.right="unset",t.style.top=Y.top-dt.scrollTop+"px",t.style.margin=0,!0===r.resize&&(t.style.minWidth="unset",t.style.maxWidth="unset",t.style.minHeight="unset",t.style.maxHeight="unset",t.style.overflow="hidden",t.style.overflowX="hidden",t.style.overflowY="hidden"),document.body.appendChild(t),void 0!==L&&(L.style.cssText=q,L.style.transform="none",L.style.animation="none",L.style.transition="none",L.style.position=t.style.position,L.style.left=f.left-dt.scrollLeft+"px",L.style.right="unset",L.style.top=f.top-dt.scrollTop+"px",L.style.margin=0,L.style.pointerEvents="none",!0===r.resize&&(L.style.minWidth="unset",L.style.maxWidth="unset",L.style.minHeight="unset",L.style.maxHeight="unset",L.style.overflow="hidden",L.style.overflowX="hidden",L.style.overflowY="hidden"),document.body.appendChild(L));var pt=function(n){a===t&&!0!==s?(t.style.cssText=M,t.className=T):(t.style.cssText=W,t.className=Q),z.parentNode===e&&e.insertBefore(t,z),$.remove(),z.remove(),void 0!==L&&L.remove(),i=function(){return!1},a.qMorphCancel=void 0,t.qMorphCancel=void 0,"function"==typeof r.onEnd&&r.onEnd(!0===s?"to":"from",!0===n)};if(!0!==r.useCSS&&"function"==typeof t.animate){var ft=!0===r.resize?{transform:"translate("+U+"px, "+K+"px)",width:it+"px",height:nt+"px"}:{transform:"translate("+U+"px, "+K+"px) scale("+X+", "+G+")"},mt=!0===r.resize?{width:st+"px",height:ot+"px"}:{},vt=!0===r.resize?{width:it+"px",height:nt+"px"}:{},gt=!0===r.resize?{transform:"translate("+-1*U+"px, "+-1*K+"px)",width:st+"px",height:ot+"px"}:{transform:"translate("+-1*U+"px, "+-1*K+"px) scale("+1/X+", "+1/G+")"},_t=void 0!==L?{opacity:r.tweenToOpacity}:{backgroundColor:C},bt=void 0!==L?{opacity:1}:{backgroundColor:j};h=t.animate([Object.assign({},{margin:0,borderWidth:b,borderStyle:y,borderColor:S,borderRadius:w,zIndex:ut,transformOrigin:"0 0"},ft,_t),Object.assign({},{margin:0,borderWidth:I,borderStyle:D,borderColor:R,borderRadius:F,zIndex:ht,transformOrigin:"0 0",transform:V},mt,bt)],{duration:r.duration,easing:r.easing,fill:r.fill,delay:r.delay}),c=void 0===L?void 0:L.animate([Object.assign({},{opacity:r.tweenFromOpacity,margin:0,borderWidth:b,borderStyle:y,borderColor:S,borderRadius:w,zIndex:ut,transformOrigin:"0 0",transform:x},vt),Object.assign({},{opacity:0,margin:0,borderWidth:I,borderStyle:D,borderColor:R,borderRadius:F,zIndex:ht,transformOrigin:"0 0"},gt)],{duration:r.duration,easing:r.easing,fill:r.fill,delay:r.delay}),l=!0===r.hideFromClone||!0===rt?void 0:$.animate([{margin:(J<0?J/2:0)+"px "+(Z<0?Z/2:0)+"px",width:it+f.marginH+"px",height:nt+f.marginV+"px"},{margin:0,width:0,height:0}],{duration:r.duration,easing:r.easing,fill:r.fill,delay:r.delay}),u=!0===r.keepToClone?void 0:z.animate([!0===rt?{margin:(J<0?J/2:0)+"px "+(Z<0?Z/2:0)+"px",width:it+f.marginH+"px",height:nt+f.marginV+"px"}:{margin:0,width:0,height:0},{margin:(et<0?et/2:0)+"px "+(tt<0?tt/2:0)+"px",width:st+Y.marginH+"px",height:ot+Y.marginV+"px"}],{duration:r.duration,easing:r.easing,fill:r.fill,delay:r.delay});var yt=function(t){void 0!==l&&l.cancel(),void 0!==c&&c.cancel(),void 0!==u&&u.cancel(),h.cancel(),h.removeEventListener("finish",yt),h.removeEventListener("cancel",yt),pt(t),l=void 0,c=void 0,u=void 0,h=void 0};a.qMorphCancel=function(){a.qMorphCancel=void 0,n=!0,yt()},t.qMorphCancel=function(){t.qMorphCancel=void 0,n=!0,yt()},h.addEventListener("finish",yt),h.addEventListener("cancel",yt),i=function(t){return!0!==n&&void 0!==h&&(!0===t?(yt(!0),!0):(s=!0!==s,void 0!==l&&l.reverse(),void 0!==c&&c.reverse(),void 0!==u&&u.reverse(),h.reverse(),!0))}}else{var St="q-morph-anim-"+ ++Dl,wt=document.createElement("style"),Ct=!0===r.resize?"\n transform: translate("+U+"px, "+K+"px);\n width: "+it+"px;\n height: "+nt+"px;\n ":"transform: translate("+U+"px, "+K+"px) scale("+X+", "+G+");",xt=!0===r.resize?"\n width: "+st+"px;\n height: "+ot+"px;\n ":"",kt=!0===r.resize?"\n width: "+it+"px;\n height: "+nt+"px;\n ":"",qt=!0===r.resize?"\n transform: translate("+-1*U+"px, "+-1*K+"px);\n width: "+st+"px;\n height: "+ot+"px;\n ":"transform: translate("+-1*U+"px, "+-1*K+"px) scale("+1/X+", "+1/G+");",Tt=void 0!==L?"opacity: "+r.tweenToOpacity+";":"background-color: "+C+";",Mt=void 0!==L?"opacity: 1;":"background-color: "+j+";",$t=void 0===L?"":"\n @keyframes "+St+"-from-tween {\n 0% {\n opacity: "+r.tweenFromOpacity+";\n margin: 0;\n border-width: "+b+";\n border-style: "+y+";\n border-color: "+S+";\n border-radius: "+w+";\n z-index: "+ut+";\n transform-origin: 0 0;\n transform: "+x+";\n "+kt+"\n }\n\n 100% {\n opacity: 0;\n margin: 0;\n border-width: "+I+";\n border-style: "+D+";\n border-color: "+R+";\n border-radius: "+F+";\n z-index: "+ht+";\n transform-origin: 0 0;\n "+qt+"\n }\n }\n ",Lt=!0===r.hideFromClone||!0===rt?"":"\n @keyframes "+St+"-from {\n 0% {\n margin: "+(J<0?J/2:0)+"px "+(Z<0?Z/2:0)+"px;\n width: "+(it+f.marginH)+"px;\n height: "+(nt+f.marginV)+"px;\n }\n\n 100% {\n margin: 0;\n width: 0;\n height: 0;\n }\n }\n ",Ot=!0===rt?"\n margin: "+(J<0?J/2:0)+"px "+(Z<0?Z/2:0)+"px;\n width: "+(it+f.marginH)+"px;\n height: "+(nt+f.marginV)+"px;\n ":"\n margin: 0;\n width: 0;\n height: 0;\n ",Bt=!0===r.keepToClone?"":"\n @keyframes "+St+"-to {\n 0% {\n "+Ot+"\n }\n\n 100% {\n margin: "+(et<0?et/2:0)+"px "+(tt<0?tt/2:0)+"px;\n width: "+(st+Y.marginH)+"px;\n height: "+(ot+Y.marginV)+"px;\n }\n }\n ";wt.innerHTML="\n @keyframes "+St+" {\n 0% {\n margin: 0;\n border-width: "+b+";\n border-style: "+y+";\n border-color: "+S+";\n border-radius: "+w+";\n background-color: "+C+";\n z-index: "+ut+";\n transform-origin: 0 0;\n "+Ct+"\n "+Tt+"\n }\n\n 100% {\n margin: 0;\n border-width: "+I+";\n border-style: "+D+";\n border-color: "+R+";\n border-radius: "+F+";\n background-color: "+j+";\n z-index: "+ht+";\n transform-origin: 0 0;\n transform: "+V+";\n "+xt+"\n "+Mt+"\n }\n }\n\n "+Lt+"\n\n "+$t+"\n\n "+Bt+"\n ",document.head.appendChild(wt);var Et="normal";$.style.animation=r.duration+"ms "+r.easing+" "+r.delay+"ms "+Et+" "+r.fill+" "+St+"-from",void 0!==L&&(L.style.animation=r.duration+"ms "+r.easing+" "+r.delay+"ms "+Et+" "+r.fill+" "+St+"-from-tween"),z.style.animation=r.duration+"ms "+r.easing+" "+r.delay+"ms "+Et+" "+r.fill+" "+St+"-to",t.style.animation=r.duration+"ms "+r.easing+" "+r.delay+"ms "+Et+" "+r.fill+" "+St;var zt=function(e){e===Object(e)&&e.animationName!==St||(t.removeEventListener("animationend",zt),t.removeEventListener("animationcancel",zt),pt(),wt.remove())};a.qMorphCancel=function(){a.qMorphCancel=void 0,n=!0,zt()},t.qMorphCancel=function(){t.qMorphCancel=void 0,n=!0,zt()},t.addEventListener("animationend",zt),t.addEventListener("animationcancel",zt),i=function(e){return!!(!0!==n&&t&&$&&z)&&(!0===e?(zt(),!0):(s=!0!==s,Et="normal"===Et?"reverse":"normal",$.style.animationDirection=Et,L.style.animationDirection=Et,z.style.animationDirection=Et,t.style.animationDirection=Et,!0))}}}else"function"==typeof t.qMorphCancel&&t.qMorphCancel()};r.waitFor>0||"transitionend"===r.waitFor||r.waitFor===Object(r.waitFor)&&"function"==typeof r.waitFor.then?(r.waitFor>0?new Promise(function(t){return setTimeout(t,r.waitFor)}):"transitionend"===r.waitFor?new Promise(function(e){var i=setTimeout(function(){n()},400),n=function(s){clearTimeout(i),t&&(t.removeEventListener("transitionend",n),t.removeEventListener("transitioncancel",n)),e()};t.addEventListener("transitionend",n),t.addEventListener("transitioncancel",n)}):r.waitFor).then(E).catch(function(){"function"==typeof t.qMorphCancel&&t.qMorphCancel()}):E()}else"function"==typeof a.qMorphCancel&&a.qMorphCancel()}),function(t){return i(t)}}var Gl={},Zl=["duration","delay","easing","fill","classes","style","duration","resize","useCSS","hideFromClone","keepToClone","tween","tweenFromOpacity","tweenToOpacity","waitFor","onEnd"],Jl=["resize","useCSS","hideFromClone","keepToClone","tween"];function tc(t,e){t.clsAction!==e&&(t.clsAction=e,t.el.classList[e]("q-morph--invisible"))}function ec(t,e){var i=e.opts;Jl.forEach(function(e){i[e]=!0===t[e]})}function ic(t,e){if(e.name!==t)!1===e.animating&&tc(e,"add");else{var i=Gl[e.group];void 0===i?(Gl[e.group]={name:e.group,model:t,queue:[e],animating:!1},tc(e,"remove")):i.model!==t&&(i.model=t,i.queue.push(e),!1===i.animating&&2===i.queue.length&&function t(e){if(!(!0===e.animating||e.queue.length<2)){var i=e.queue,n=i[0],s=i[1];e.animating=!0,n.animating=!0,s.animating=!0,tc(n,"remove"),tc(s,"remove");var o=Xl(Object.assign({},{from:n.el,to:s.el,onToggle:function(){tc(n,"add"),tc(s,"remove")}},s.opts,{onEnd:function(i,o){void 0!==s.opts.onEnd&&s.opts.onEnd(i,o),!0!==o&&(n.animating=!1,s.animating=!1,e.animating=!1,e.cancel=void 0,e.queue.shift(),t(e))}}));e.cancel=function(){o(!0),e.cancel=void 0}}}(i))}}function nc(t,e){var i;Object(e)===e?(i=""+e.model,function(t,e){void 0!==t.group&&(e.group=t.group),void 0!==t.name&&(e.name=t.name);var i=e.opts;Zl.forEach(function(e){void 0!==t[e]&&(i[e]=t[e])})}(e,t),ec(e,t)):i=""+e,i!==t.model?(t.model=i,ic(i,t)):!1===t.animating&&void 0!==t.clsAction&&t.el.classList[t.clsAction]("q-morph--invisible")}function sc(t){var e=t.__qmorph;if(void 0!==e){var i=Gl[e.group];if(void 0!==i)-1!==i.queue.indexOf(e)&&(i.queue=i.queue.filter(function(t){return t!==e}),0===i.queue.length&&(void 0!==i.cancel&&i.cancel(),delete Gl[e.group]));"add"===e.clsAction&&t.classList.remove("q-morph--invisible"),delete t.__qmorph}}var oc={name:"morph",inserted:function(t,e){void 0!==t.__qmorph&&(sc(t),t.__qmorph_destroyed=!0);var i={el:t,animating:!1,opts:{}};ec(e.modifiers,i),function(t,e){var i="string"==typeof t&&t.length>0?t.split(":"):[];e.name=i[0],e.group=i[1],Object.assign(e.opts,{duration:!0===isNaN(i[2])?300:parseFloat(i[2]),waitFor:i[3]})}(e.arg,i),nc(i,e.value),t.__qmorph=i},update:function(t,e){var i=t.__qmorph;void 0!==i&&nc(i,e.value)},unbind:function(t){void 0===t.__qmorph_destroyed?sc(t):delete t.__qmorph_destroyed}};var rc={childList:!0,subtree:!0,attributes:!0,characterData:!0,attributeOldValue:!0,characterDataOldValue:!0};function ac(t,e,i){e.handler=i,void 0!==e.observer&&e.observer.disconnect(),e.observer=new MutationObserver(function(i){"function"==typeof e.handler&&(!1!==e.handler(i)&&!0!==e.once||lc(t))}),e.observer.observe(t,e.opts)}function lc(t){var e=t.__qmutation;void 0!==e&&(void 0!==e.observer&&e.observer.disconnect(),delete t.__qmutation)}var cc={name:"mutation",inserted:function(t,e){var i=e.modifiers,n=i.once,s=function(t,e){var i={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&-1===e.indexOf(n)&&(i[n]=t[n]);return i}(i,["once"]),o=e.value;void 0!==t.__qmutation&&(lc(t),t.__qmutation_destroyed=!0);var r={once:n,opts:0===Object.keys(s).length?rc:s};ac(t,r,o),t.__qmutation=r},update:function(t,e){var i=e.oldValue,n=e.value,s=t.__qmutation;void 0!==s&&i!==n&&ac(t,s,n)},unbind:function(t){void 0===t.__qmutation_destroyed?lc(t):delete t.__qmutation_destroyed}};function uc(t,e){var i=e.value,n=e.oldValue;"function"==typeof i?(t.handler=i,"function"!=typeof n&&(t.scrollTarget.addEventListener("scroll",t.scroll,h.passive),t.scroll())):t.scrollTarget.removeEventListener("scroll",t.scroll,h.passive)}function hc(t){var e=t.__qscrollfire;void 0!==e&&(e.scrollTarget.removeEventListener("scroll",e.scroll,h.passive),e.scroll.cancel(),delete t.__qscrollfire)}var dc={name:"scroll-fire",inserted:function(t,e){void 0!==t.__qscrollfire&&(hc(t),t.__qscrollfire_destroyed=!0);var i={scrollTarget:ii(t),scroll:T(function(){var e,n;i.scrollTarget===window?(n=t.getBoundingClientRect().bottom,e=window.innerHeight):(n=he(t).top+de(t),e=he(i.scrollTarget).top+de(i.scrollTarget)),n>0&&n=s.sensitivity||Math.abs(i-s.origin.top)>=s.sensitivity)&&clearTimeout(s.timer)},end:function(t){k(s,"temp"),void 0!==s.styleCleanup&&s.styleCleanup(s.triggered),!0===s.triggered?void 0!==t&&S(t):clearTimeout(s.timer)}},o=[600,5,7];"string"==typeof e.arg&&e.arg.length>0&&e.arg.split(":").forEach(function(t,e){var i=parseInt(t,10);i&&(o[e]=i)}),i=o,s.duration=i[0],s.touchSensitivity=i[1],s.mouseSensitivity=i[2],t.__qtouchhold=s,!0===n.mouse&&x(s,"main",[[t,"mousedown","mouseStart","passive"+(!0===n.mouseCapture?"Capture":"")]]),!0===c.has.touch&&x(s,"main",[[t,"touchstart","touchStart","passive"+(!0===n.capture?"Capture":"")],[t,"touchend","noop","notPassiveCapture"]])}},update:function(t,e){var i=t.__qtouchhold;void 0!==i&&e.oldValue!==e.value&&("function"!=typeof e.value&&i.end(),i.handler=e.value)},unbind:function(t){void 0===t.__qtouchhold_destroyed?vc(t):delete t.__qtouchhold_destroyed}},_c={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},bc=new RegExp("^([\\d+]+|"+Object.keys(_c).join("|")+")$","i");function yc(t){var e=t.__qtouchrepeat;void 0!==e&&(clearTimeout(e.timer),k(e,"main"),k(e,"temp"),void 0!==e.styleCleanup&&e.styleCleanup(),delete t.__qtouchrepeat)}var Sc,wc={name:"touch-repeat",bind:function(t,e){var i=e.modifiers,n=e.value,s=e.arg;void 0!==t.__qtouchrepeat&&(yc(t),t.__qtouchrepeat_destroyed=!0);var o=Object.keys(i).reduce(function(t,e){if(!0===bc.test(e)){var i=isNaN(parseInt(e,10))?_c[e.toLowerCase()]:parseInt(e,10);i>=0&&t.push(i)}return t},[]);if(!0===i.mouse||!0===c.has.touch||0!==o.length){var r="string"==typeof s&&s.length>0?s.split(":").map(function(t){return parseInt(t,10)}):[0,600,300],a=r.length-1,l={keyboard:o,handler:n,noop:p,mouseStart:function(t){void 0===l.event&&"function"==typeof l.handler&&!0===f(t)&&(x(l,"temp",[[document,"mousemove","move","passiveCapture"],[document,"click","end","notPassiveCapture"]]),l.start(t,!0))},keyboardStart:function(e){if("function"==typeof l.handler&&!0===J(e,o)){if((0===r[0]||void 0!==l.event)&&(S(e),t.focus(),void 0!==l.event))return;x(l,"temp",[[document,"keyup","end","notPassiveCapture"],[document,"click","end","notPassiveCapture"]]),l.start(e,!1,!0)}},touchStart:function(t){if(void 0!==t.target&&"function"==typeof l.handler){var e=t.target;x(l,"temp",[[e,"touchmove","move","passiveCapture"],[e,"touchcancel","end","notPassiveCapture"],[e,"touchend","end","notPassiveCapture"]]),l.start(t)}},start:function(t,e,i){function n(t){l.styleCleanup=void 0,document.documentElement.style.cursor="";var e=function(){document.body.classList.remove("non-selectable")};!0===t?(ze(),setTimeout(e,10)):e()}!0!==i&&(l.origin=m(t)),!0===c.is.mobile&&(document.body.classList.add("non-selectable"),ze(),l.styleCleanup=n),l.event={touch:!0!==e&&!0!==i,mouse:!0===e,keyboard:!0===i,startTime:Date.now(),repeatCount:0};var s=function(){if(void 0!==l.event){0===l.event.repeatCount&&(l.event.evt=t,!0===i?l.event.keyCode=t.keyCode:l.event.position=m(t),!0!==c.is.mobile&&(document.documentElement.style.cursor="pointer",document.body.classList.add("non-selectable"),ze(),l.styleCleanup=n)),l.event.duration=Date.now()-l.event.startTime,l.event.repeatCount+=1,l.handler(l.event);var e=a=7||Math.abs(n-e.top)>=7}(t,l.origin)&&clearTimeout(l.timer)},end:function(t){void 0!==l.event&&(void 0!==l.styleCleanup&&l.styleCleanup(!0),void 0!==t&&l.event.repeatCount>0&&S(t),k(l,"temp"),clearTimeout(l.timer),l.event=void 0)}};t.__qtouchrepeat=l,!0===i.mouse&&x(l,"main",[[t,"mousedown","mouseStart","passive"+(!0===i.mouseCapture?"Capture":"")]]),!0===c.has.touch&&x(l,"main",[[t,"touchstart","touchStart","passive"+(!0===i.capture?"Capture":"")],[t,"touchend","noop","notPassiveCapture"]]),o.length>0&&x(l,"main",[[t,"keydown","keyboardStart","notPassive"+(!0===i.keyCapture?"Capture":"")]])}},update:function(t,e){var i=e.oldValue,n=e.value,s=t.__qtouchrepeat;void 0!==s&&i!==n&&("function"!=typeof n&&s.end(),s.handler=n)},unbind:function(t){void 0===t.__qtouchrepeat_destroyed?yc(t):delete t.__qtouchrepeat_destroyed}},Cc=Object.freeze({__proto__:null,ClosePopup:Pl,GoBack:Il,Intersection:gr,Morph:oc,Mutation:cc,Ripple:Se,ScrollFire:dc,Scroll:mc,TouchHold:gc,TouchPan:xn,TouchRepeat:wc,TouchSwipe:ji});function xc(t){void 0===Sc&&(Sc=u.is.winphone?"msapplication-navbutton-color":u.is.safari?"apple-mobile-web-app-status-bar-style":"theme-color");var e=function(t){var e=document.getElementsByTagName("META");for(var i in e)if(e[i].name===t)return e[i]}(Sc),i=void 0===e;i&&(e=document.createElement("meta")).setAttribute("name",Sc),e.setAttribute("content",t),i&&document.head.appendChild(e)}var kc={install:function(t){var e=t.$q,n=t.cfg;this.set=!1!==i||!0!==u.is.mobile||!0!==u.is.nativeMobile&&!0!==u.is.winphone&&!0!==u.is.safari&&!0!==u.is.webkit&&!0!==u.is.vivaldi?p:function(t){var e=t||U("primary");!0===u.is.nativeMobile&&window.StatusBar?window.StatusBar.backgroundColorByHexString(e):xc(e)},e.addressbarColor=this,n.addressbarColor&&this.set(n.addressbarColor)}},qc={};function Tc(t,e){try{var i=t[e]();return void 0===i?Promise.resolve():i}catch(t){return Promise.reject(t)}}function Mc(t){t.activeEl=document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement||null,t.isActive=null!==t.activeEl}var $c={isCapable:!1,isActive:!1,activeEl:null,request:function(t){var e=this;if(!0===this.isCapable){var i=t||document.documentElement;if(i!==this.activeEl)return(!0===c.is.ie&&null!==this.activeEl&&i.contains(this.activeEl)?this.exit():Promise.resolve()).then(function(){return Tc(i,qc.request)}).catch(function(t){return null!==e.activeEl?e.exit().then(function(){return Tc(i,qc.request)}):Promise.reject(t)}).then(function(t){return Mc(e),t})}return this.__getErr()},exit:function(){var t=this;return!0===this.isCapable&&!0===this.isActive?Tc(document,qc.exit).then(function(e){return Mc(t),t.isActive?t.exit():e}):this.__getErr()},toggle:function(t){var e=t||document.documentElement;return this.activeEl===e?this.exit():this.request(e)},install:function(e){var n=this;e.$q.fullscreen=this,this.__getErr=function(){return Promise.resolve()},!0!==i&&(qc.request=["requestFullscreen","msRequestFullscreen","mozRequestFullScreen","webkitRequestFullscreen"].find(function(t){return void 0!==document.documentElement[t]}),this.isCapable=void 0!==qc.request,!1!==this.isCapable?(qc.exit=["exitFullscreen","msExitFullscreen","mozCancelFullScreen","webkitExitFullscreen"].find(function(t){return document[t]}),Mc(this),["onfullscreenchange","onmsfullscreenchange","onwebkitfullscreenchange"].forEach(function(t){document[t]=function(){Mc(n)}}),t.util.defineReactive(this,"isActive",this.isActive),t.util.defineReactive(this,"activeEl",this.activeEl)):this.__getErr=function(){return Promise.reject("Not capable")})}},Lc={appVisible:!1,install:function(e){var n=this,s=e.$q;if(!0!==i){var o,r;void 0!==document.hidden?(o="hidden",r="visibilitychange"):void 0!==document.msHidden?(o="msHidden",r="msvisibilitychange"):void 0!==document.webkitHidden&&(o="webkitHidden",r="webkitvisibilitychange");var a=function(){n.appVisible=s.appVisible=!document[o]};a(),r&&void 0!==document[o]&&(t.util.defineReactive(s,"appVisible",this.appVisible),document.addEventListener(r,a,!1))}else this.appVisible=s.appVisible=!0}},Oc=t.extend({name:"BottomSheetPlugin",mixins:[Gt,bt],inheritAttrs:!1,props:{title:String,message:String,actions:Array,grid:Boolean,cardClass:[String,Array,Object],cardStyle:[String,Array,Object]},computed:{dialogProps:function(){return Object.assign({},this.qAttrs,{position:"bottom"})}},methods:{show:function(){this.$refs.dialog.show()},hide:function(){this.$refs.dialog.hide()},onOk:function(t){this.$emit("ok",t),this.hide()},__getGrid:function(t){var e=this;return this.actions.map(function(i){var n=i.avatar||i.img;return void 0===i.label?t(So,{staticClass:"col-all",props:{dark:e.isDark}}):t("div",{staticClass:"q-bottom-sheet__item q-hoverable q-focusable cursor-pointer relative-position",class:i.classes,attrs:{tabindex:0},on:{click:function(){return e.onOk(i)},keyup:function(t){13===t.keyCode&&e.onOk(i)}}},[t("div",{staticClass:"q-focus-helper"}),i.icon?t(Ut,{props:{name:i.icon,color:i.color}}):n?t("img",{attrs:{src:n},staticClass:i.avatar?"q-bottom-sheet__avatar":null}):t("div",{staticClass:"q-bottom-sheet__empty-icon"}),t("div",[i.label])])})},__getList:function(t){var e=this;return this.actions.map(function(i){var n=i.avatar||i.img;return void 0===i.label?t(So,{props:{spaced:!0,dark:e.isDark}}):t(Zs,{staticClass:"q-bottom-sheet__item",class:i.classes,props:{tabindex:0,clickable:!0,dark:e.isDark},on:{click:function(){return e.onOk(i)},keyup:function(t){13===t.keyCode&&e.onOk(i)}}},[t(Js,{props:{avatar:!0}},[i.icon?t(Ut,{props:{name:i.icon,color:i.color}}):n?t("img",{attrs:{src:n},staticClass:i.avatar?"q-bottom-sheet__avatar":null}):null]),t(Js,[i.label])])})}},render:function(t){var e=this,i=[];return this.title&&i.push(t(zi,{staticClass:"q-dialog__title"},[this.title])),this.message&&i.push(t(zi,{staticClass:"q-dialog__message"},[this.message])),i.push(!0===this.grid?t("div",{staticClass:"row items-stretch justify-start"},this.__getGrid(t)):t("div",this.__getList(t))),t(Ys,{ref:"dialog",props:this.dialogProps,on:ft(this,"hide",{hide:function(){e.$emit("hide")}})},[t(Ei,{staticClass:"q-bottom-sheet q-bottom-sheet--"+(!0===this.grid?"grid":"list")+(!0===this.isDark?" q-bottom-sheet--dark q-dark":""),style:this.cardStyle,class:this.cardClass},i)])}});function Bc(t,e){var i={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&-1===e.indexOf(n)&&(i[n]=t[n]);return i}var Ec,zc={onOk:function(){return zc},okCancel:function(){return zc},hide:function(){return zc},update:function(){return zc}};function Pc(e){return function(n){n.className;var s=n.class,o=n.style,r=n.component,a=n.root,l=n.parent,c=Bc(n,["className","class","style","component","root","parent"]);if(!0===i)return zc;void 0!==s&&(c.cardClass=s),void 0!==o&&(c.cardStyle=o);var u,h,d=void 0!==r;!0===d?u=r:(u=e,h=c);var p=[],f=[],m={onOk:function(t){return p.push(t),m},onCancel:function(t){return f.push(t),m},onDismiss:function(t){return p.push(t),f.push(t),m},hide:function(){return b.$refs.dialog.hide(),m},update:function(t){t.className;var e=t.class,i=t.style,n=(t.component,t.root,t.parent,Bc(t,["className","class","style","component","root","parent"]));return null!==b&&(void 0!==e&&(n.cardClass=e),void 0!==i&&(n.cardStyle=i),!0===d?Object.assign(c,n):(!function t(e,i){for(var n in i)"spinner"!==n&&Object(i[n])===i[n]?(e[n]=Object(e[n])!==e[n]?{}:Object.assign({},e[n]),t(e[n],i[n])):e[n]=i[n]}(c,n),h=Object.assign({},c)),b.$forceUpdate()),m}},v=document.createElement("div");document.body.appendChild(v);var g=!1,_={ok:function(t){g=!0,p.forEach(function(e){e(t)})},hide:function(){b.$destroy(),b.$el.remove(),b=null,!0!==g&&f.forEach(function(t){t()})}},b=new t({name:"QGlobalDialog",el:v,parent:function(t,e){if(void 0!==t)return t;if(void 0!==e)return e;if(void 0===Ec){var i=document.getElementById("q-app");i&&i.__vue__&&(Ec=i.__vue__.$root)}return Ec}(l,a),render:function(t){return t(u,{ref:"dialog",props:c,attrs:h,on:_})},mounted:function(){var t=this;void 0!==this.$refs.dialog?this.$refs.dialog.show():_["hook:mounted"]=function(){void 0!==t.$refs.dialog&&t.$refs.dialog.show()}}});return m}}var Ac={install:function(t){var e=t.$q;this.create=e.bottomSheet=Pc(Oc)}};function Ic(t){return encodeURIComponent(t)}function Dc(t){return decodeURIComponent(t)}function Rc(t){if(""===t)return t;0===t.indexOf('"')&&(t=t.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\")),t=Dc(t.replace(/\+/g," "));try{t=JSON.parse(t)}catch(t){}return t}function Fc(t){var e=new Date;return e.setMilliseconds(e.getMilliseconds()+t),e.toUTCString()}function jc(t,e,i,n){var s,o,r,a,l,c,u,h;void 0===i&&(i={}),void 0!==i.expires&&("[object Date]"===Object.prototype.toString.call(i.expires)?s=i.expires.toUTCString():"string"==typeof i.expires?(r=i.expires,a=0,l=r.match(/(\d+)d/),c=r.match(/(\d+)h/),u=r.match(/(\d+)m/),h=r.match(/(\d+)s/),l&&(a+=864e5*l[1]),c&&(a+=36e5*c[1]),u&&(a+=6e4*u[1]),h&&(a+=1e3*h[1]),s=0===a?r:Fc(a)):(o=parseFloat(i.expires),s=!1===isNaN(o)?Fc(864e5*o):i.expires));var d,p=Ic(t)+"="+Ic((d=e)===Object(d)?JSON.stringify(d):""+d),f=[p,void 0!==s?"; Expires="+s:"",i.path?"; Path="+i.path:"",i.domain?"; Domain="+i.domain:"",i.sameSite?"; SameSite="+i.sameSite:"",i.httpOnly?"; HttpOnly":"",i.secure?"; Secure":"",i.other?"; "+i.other:""].join("");if(n){n.req.qCookies?n.req.qCookies.push(f):n.req.qCookies=[f],n.res.setHeader("Set-Cookie",n.req.qCookies);var m=n.req.headers.cookie||"";if(void 0!==s&&o<0){var v=Vc(t,n);void 0!==v&&(m=m.replace(t+"="+v+"; ","").replace("; "+t+"="+v,"").replace(t+"="+v,""))}else m=m?p+"; "+m:f;n.req.headers.cookie=m}else document.cookie=f}function Vc(t,e){for(var i,n,s,o=e?e.req.headers:document,r=o.cookie?o.cookie.split("; "):[],a=r.length,l=t?null:{},c=0;c0)return t(Pi,{staticClass:!0===this.stackButtons?"items-end":null,props:{vertical:this.stackButtons,align:"right"}},e)},onOk:function(){this.$emit("ok",Rr(this.getData())),this.hide()},onCancel:function(){this.hide()},getData:function(){return void 0!==this.prompt?this.prompt.model:void 0!==this.options?this.options.model:void 0},getSection:function(t,e,i){return!0===this.html?t(zi,{staticClass:e,domProps:{innerHTML:i}}):t(zi,{staticClass:e},[i])}},render:function(t){var e=this,i=[];return this.title&&i.push(this.getSection(t,"q-dialog__title",this.title)),!1!==this.progress&&i.push(t(zi,{staticClass:"q-dialog__progress"},[t(this.spinner.component,{props:this.spinner.props})])),this.message&&i.push(this.getSection(t,"q-dialog__message",this.message)),void 0!==this.prompt?i.push(t(zi,{staticClass:"scroll q-dialog-plugin__form"},this.getPrompt(t))):void 0!==this.options&&i.push(t(So,{props:{dark:this.isDark}}),t(zi,{staticClass:"scroll q-dialog-plugin__form"},this.getOptions(t)),t(So,{props:{dark:this.isDark}})),(this.ok||this.cancel)&&i.push(this.getButtons(t)),t(Ys,{ref:"dialog",props:Object.assign({},this.qAttrs,{value:this.value}),on:ft(this,"hide",{hide:function(){e.$emit("hide")}})},[t(Ei,{staticClass:this.classes,style:this.cardStyle,class:this.cardClass,props:{dark:this.isDark}},i)])}}),Xc={install:function(t){var e=t.$q;this.create=e.dialog=Pc(Kc)}},Gc={isActive:!1,start:p,stop:p,increment:p,setDefaults:p,install:function(e){var n=this,s=e.$q,o=e.cfg;if(s.loadingBar=this,!0!==i){var r=void 0!==o.loadingBar?Object.assign({},o.loadingBar):{},a={start:function(){n.isActive=!0},stop:function(){n.isActive=!1}},l=new t({name:"LoadingBar",devtools:{hide:!0},beforeCreate:function(){void 0===this._routerRoot&&(this._routerRoot={})},render:function(t){return t(kt,{ref:"bar",props:r,on:a})}}).$mount().$refs.bar;Object.assign(this,{start:l.start,stop:l.stop,increment:l.increment,setDefaults:function(t){!0===Zi(t)&&Object.assign(r,t),l.$parent.$forceUpdate()}}),t.util.defineReactive(this,"isActive",this.isActive),t.util.defineReactive(l,"isActive",this.isActive),l.setDefaults=this.setDefaults,document.body.appendChild(l.$parent.$el)}}},Zc=0,Jc={},tu={delay:0,message:!1,spinnerSize:80,spinnerColor:"white",messageColor:"white",backgroundColor:"black",spinner:ue,customClass:""},eu=Object.assign({},tu),iu={isActive:!1,show:function(e){var n=this;if(!0!==i){if((Jc=!0===Zi(e)&&!0===e.ignoreDefaults?Object.assign({},tu,e):Object.assign({},eu,e)).customClass+=" text-"+Jc.backgroundColor,this.isActive=!0,void 0!==Hc)return Jc.uid=Zc,void Hc.$forceUpdate();Jc.uid=++Zc,clearTimeout(Qc),Qc=setTimeout(function(){Qc=void 0;var e=document.createElement("div");document.body.appendChild(e),Hc=new t({name:"QLoading",devtools:{hide:!0},beforeCreate:function(){void 0===this._routerRoot&&(this._routerRoot={})},el:e,mounted:function(){Vs(!0)},render:function(t){var e;return t("transition",{props:{name:"q-transition--fade",appear:!0},on:ft(n,"tr",{"after-leave":function(){!0!==n.isActive&&void 0!==Hc&&(Vs(!1),Hc.$destroy(),Hc.$el.remove(),Hc=void 0)}})},[!0===n.isActive?t("div",{staticClass:"q-loading fullscreen column flex-center z-max",key:Jc.uid,class:Jc.customClass.trim()},[t(Jc.spinner,{props:{color:Jc.spinnerColor,size:Jc.spinnerSize}}),Jc.message&&t("div",{class:"text-"+Jc.messageColor,domProps:(e={},e[!0===Jc.sanitize?"textContent":"innerHTML"]=Jc.message,e)})||void 0]):null])}})},Jc.delay)}},hide:function(){!0===this.isActive&&(void 0!==Qc&&(clearTimeout(Qc),Qc=void 0),this.isActive=!1)},setDefaults:function(t){!0===Zi(t)&&Object.assign(eu,t)},install:function(t){var e=t.$q,i=t.cfg.loading;this.setDefaults(i),e.loading=this}};function nu(t){t.title&&(t.title=t.titleTemplate?t.titleTemplate(t.title):t.title,delete t.titleTemplate),[["meta","content"],["link","href"]].forEach(function(e){var i=t[e[0]],n=e[1];for(var s in i){var o=i[s];o.template&&(1===Object.keys(o).length?delete i[s]:(o[n]=o.template(o[n]||""),delete o.template))}})}function su(t,e){if(Object.keys(t).length!==Object.keys(e).length)return!0;for(var i in t)if(t[i]!==e[i])return!0}function ou(t){return!1===["class","style"].includes(t)}function ru(t){return!1===["lang","dir"].includes(t)}function au(t,e){!0!==t._inactive&&(!0===du(t)&&(fo(!0,e,t.__qMeta),!0===t.$options.meta.stopPropagation)||t.$children.forEach(function(t){au(t,e)}))}function lu(){!0===Yc&&(Yc=!1,this.$root.__currentMeta=window.__Q_META__);var t,e,i,n={title:"",titleTemplate:null,meta:{},link:{},script:{},htmlAttr:{},bodyAttr:{}};au(this.$root,n),nu(n),t=function(t,e){var i={},n={};return void 0===t?{add:e,remove:n}:(t.title!==e.title&&(i.title=e.title),["meta","link","script","htmlAttr","bodyAttr"].forEach(function(s){var o=t[s],r=e[s];if(n[s]=[],void 0!==o&&null!==o){for(var a in i[s]={},o)!1===r.hasOwnProperty(a)&&n[s].push(a);for(var l in r)!1===o.hasOwnProperty(l)?i[s][l]=r[l]:!0===su(o[l],r[l])&&(n[s].push(l),i[s][l]=r[l])}else i[s]=r}),{add:i,remove:n})}(this.$root.__currentMeta,n),e=t.add,i=t.remove,e.title&&(document.title=e.title),Object.keys(i).length>0&&(["meta","link","script"].forEach(function(t){i[t].forEach(function(e){document.head.querySelector(t+'[data-qmeta="'+e+'"]').remove()})}),i.htmlAttr.filter(ru).forEach(function(t){document.documentElement.removeAttribute(t)}),i.bodyAttr.filter(ou).forEach(function(t){document.body.removeAttribute(t)})),["meta","link","script"].forEach(function(t){var i=e[t];for(var n in i){var s=document.createElement(t);for(var o in i[n])"innerHTML"!==o&&s.setAttribute(o,i[n][o]);s.setAttribute("data-qmeta",n),"script"===t&&(s.innerHTML=i[n].innerHTML||""),document.head.appendChild(s)}}),Object.keys(e.htmlAttr).filter(ru).forEach(function(t){document.documentElement.setAttribute(t,e.htmlAttr[t]||"")}),Object.keys(e.bodyAttr).filter(ou).forEach(function(t){document.body.setAttribute(t,e.bodyAttr[t]||"")}),this.$root.__currentMeta=n}function cu(t){return function(e){var i=t[e];return e+(!0!==i&&void 0!==i?'="'+i+'"':"")}}function uu(t,e,i){var n={title:"",titleTemplate:null,meta:{},link:{},htmlAttr:{},bodyAttr:{},noscript:{}};au(t,n),nu(n);var s=void 0!==i&&void 0!==i.nonce?' nonce="'+i.nonce+'"':"",o={"%%Q_HTML_ATTRS%%":Object.keys(n.htmlAttr).filter(ru).map(cu(n.htmlAttr)).join(" "),"%%Q_HEAD_TAGS%%":function(t){var e="";return t.title&&(e+=""+t.title+""),["meta","link","script"].forEach(function(i){var n=t[i];for(var s in n){var o=Object.keys(n[s]).filter(function(t){return"innerHTML"!==t}).map(cu(n[s]));e+="<"+i+" "+o.join(" ")+' data-qmeta="'+s+'">',"script"===i&&(e+=(n[s].innerHTML||"")+"<\/script>")}}),e}(n),"%%Q_BODY_ATTRS%%":Object.keys(n.bodyAttr).filter(ou).map(cu(n.bodyAttr)).join(" "),"%%Q_BODY_TAGS%%":Object.keys(n.noscript).map(function(t){return'"}).join("")+"window.__Q_META__="+(delete n.noscript&&JSON.stringify(n))+"<\/script>"};return Object.keys(o).forEach(function(t){e=e.replace(t,o[t])}),e}function hu(){"function"==typeof this.$options.meta?(void 0===this.$options.computed&&(this.$options.computed={}),this.$options.computed.__qMeta=this.$options.meta):!0===du(this)&&(this.__qMeta=this.$options.meta)}function du(t){return void 0!==t.$options.meta&&null!==t.$options.meta}function pu(){!0===du(this)&&this.__qMetaUpdate()}!1===i&&t.util.defineReactive(iu,"isActive",iu.isActive);var fu={install:function(e){var s=e.queues;!0===i?(t.prototype.$getMetaHTML=function(t){return function(e,i){return uu(t,e,i)}},t.mixin({beforeCreate:hu}),s.server.push(function(t,e){e.ssr.Q_HTML_ATTRS+=" %%Q_HTML_ATTRS%%",Object.assign(e.ssr,{Q_HEAD_TAGS:"%%Q_HEAD_TAGS%%",Q_BODY_ATTRS:"%%Q_BODY_ATTRS%%",Q_BODY_TAGS:"%%Q_BODY_TAGS%%"})})):(Yc=n,t.mixin({beforeCreate:hu,created:function(){!0===du(this)&&(this.__qMetaUnwatch=this.$watch("__qMeta",this.__qMetaUpdate))},activated:pu,deactivated:pu,beforeMount:pu,destroyed:function(){!0===du(this)&&(this.__qMetaUnwatch(),this.__qMetaUpdate())},methods:{__qMetaUpdate:function(){clearTimeout(Wc),Wc=setTimeout(lu.bind(this),50)}}}))}};var mu,vu=0,gu={},_u={},bu={},yu={},Su=/^\s*$/,wu=["top-left","top-right","bottom-left","bottom-right","top","bottom","left","right","center"],Cu=["top-left","top-right","bottom-left","bottom-right"],xu={positive:{icon:function(t){return t.iconSet.type.positive},color:"positive"},negative:{icon:function(t){return t.iconSet.type.negative},color:"negative"},warning:{icon:function(t){return t.iconSet.type.warning},color:"warning",textColor:"dark"},info:{icon:function(t){return t.iconSet.type.info},color:"info"},ongoing:{group:!1,timeout:0,spinner:!0,color:"grey-8"}};function ku(t,e,i){if(!t)return Tu("parameter required");var n,s={textColor:"white"};if(!0!==t.ignoreDefaults&&Object.assign(s,gu),!1===Zi(t)&&(s.type&&Object.assign(s,xu[s.type]),t={message:t}),Object.assign(s,xu[t.type||s.type],t),"function"==typeof s.icon&&(s.icon=s.icon(e.$q)),s.spinner?!0===s.spinner&&(s.spinner=ue):s.spinner=!1,s.meta={hasMedia:Boolean(!1!==s.spinner||s.icon||s.avatar),hasText:qu(s.message)||qu(s.caption)},s.position){if(!1===wu.includes(s.position))return Tu("wrong position",t)}else s.position="bottom";if(void 0===s.timeout)s.timeout=5e3;else{var o=parseInt(s.timeout,10);if(isNaN(o)||o<0)return Tu("wrong timeout",t);s.timeout=o}0===s.timeout?s.progress=!1:!0===s.progress&&(s.meta.progressClass="q-notification__progress"+(s.progressClass?" "+s.progressClass:""),s.meta.progressStyle={animationDuration:s.timeout+1e3+"ms"});var r=(!0===Array.isArray(t.actions)?t.actions:[]).concat(!0!==t.ignoreDefaults&&!0===Array.isArray(gu.actions)?gu.actions:[]).concat(void 0!==xu[t.type]&&!0===Array.isArray(xu[t.type].actions)?xu[t.type].actions:[]),a=s.closeBtn;if(a&&r.push({label:"string"==typeof a?a:e.$q.lang.label.close}),s.actions=r.map(function(t){var e=t.handler,i=t.noDismiss,n=t.style,s=t.class,o=t.attrs,r=function(t,e){var i={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&-1===e.indexOf(n)&&(i[n]=t[n]);return i}(t,["handler","noDismiss","style","class","attrs"]);return{staticClass:s,style:n,props:Object.assign({},{flat:!0},r),attrs:o,on:{click:"function"==typeof e?function(){e(),!0!==i&&d()}:function(){d()}}}}),void 0===s.multiLine&&(s.multiLine=s.actions.length>1),Object.assign(s.meta,{staticClass:"q-notification row items-stretch q-notification--"+(!0===s.multiLine?"multi-line":"standard")+(void 0!==s.color?" bg-"+s.color:"")+(void 0!==s.textColor?" text-"+s.textColor:"")+(void 0!==s.classes?" "+s.classes:""),wrapperClass:"q-notification__wrapper col relative-position border-radius-inherit "+(!0===s.multiLine?"column no-wrap justify-center":"row items-center"),contentClass:"q-notification__content row items-center"+(!0===s.multiLine?"":" col"),leftClass:!0===s.meta.hasText?"additional":"single",attrs:Object.assign({},{role:"alert"},s.attrs)}),!1===s.group?(s.group=void 0,s.meta.group=void 0):(void 0!==s.group&&!0!==s.group||(s.group=[s.message,s.caption,s.multiline].concat(s.actions.map(function(t){var e=t.props;return e.label+"*"+e.icon})).join("|")),s.meta.group=s.group+"|"+s.position),0===s.actions.length?s.actions=void 0:s.meta.actionsClass="q-notification__actions row items-center "+(!0===s.multiLine?"justify-end":"col-auto")+(!0===s.meta.hasMedia?" q-notification__actions--with-media":""),void 0!==i){clearTimeout(i.notif.meta.timer),s.meta.uid=i.notif.meta.uid;var l=bu[s.position].indexOf(i.notif);bu[s.position][l]=s}else{var c=_u[s.meta.group];if(void 0===c){if(s.meta.uid=vu++,s.meta.badge=1,-1!==["left","right","center"].indexOf(s.position))bu[s.position].splice(Math.floor(bu[s.position].length/2),0,s);else{var u=s.position.indexOf("top")>-1?"unshift":"push";bu[s.position][u](s)}void 0!==s.group&&(_u[s.meta.group]=s)}else{if(clearTimeout(c.meta.timer),void 0!==s.badgePosition){if(!1===Cu.includes(s.badgePosition))return Tu("wrong badgePosition",t)}else s.badgePosition="top-"+(s.position.indexOf("left")>-1?"right":"left");s.meta.uid=c.meta.uid,s.meta.badge=c.meta.badge+1,s.meta.badgeClass="q-notification__badge q-notification__badge--"+s.badgePosition+(void 0!==s.badgeColor?" bg-"+s.badgeColor:"")+(void 0!==s.badgeTextColor?" text-"+s.badgeTextColor:"")+(s.badgeClass?" "+s.badgeClass:"");var h=bu[s.position].indexOf(c);bu[s.position][h]=_u[s.meta.group]=s}}var d=function(){!function(t,e){clearTimeout(t.meta.timer);var i=bu[t.position].indexOf(t);if(-1!==i){void 0!==t.group&&delete _u[t.meta.group];var n=e.$refs[""+t.meta.uid];if(n){var s=getComputedStyle(n),o=s.width,r=s.height;n.style.left=n.offsetLeft+"px",n.style.width=o,n.style.height=r}bu[t.position].splice(i,1),e.$forceUpdate(),"function"==typeof t.onDismiss&&t.onDismiss()}}(s,e),n=void 0};return e.$forceUpdate(),s.timeout>0&&(s.meta.timer=setTimeout(function(){d()},s.timeout+1e3)),void 0!==s.group?function(e){void 0!==e?Tu("trying to update a grouped one which is forbidden",t):d()}:(n={dismiss:d,config:t,notif:s},void 0===i?function(t){void 0!==n&&(void 0===t?n.dismiss():ku(Object.assign({},n.config,t,{group:!1,position:s.position}),e,n))}:void Object.assign(i,n))}function qu(t){return void 0!==t&&null!==t&&!0!==Su.test(t)}function Tu(t,e){return console.error("Notify: "+t,e),!1}var Mu={name:"QNotifications",devtools:{hide:!0},beforeCreate:function(){void 0===this._routerRoot&&(this._routerRoot={})},render:function(t){return t("div",{staticClass:"q-notifications"},wu.map(function(e){return t("transition-group",{key:e,staticClass:yu[e],tag:"div",props:{name:"q-notification--"+e,mode:"out-in"}},bu[e].map(function(e){var i=e.meta,n=[];if(!0===i.hasMedia&&(!1!==e.spinner?n.push(t(e.spinner,{staticClass:"q-notification__spinner q-notification__spinner--"+i.leftClass,props:{color:e.spinnerColor,size:e.spinnerSize}})):e.icon?n.push(t(Ut,{staticClass:"q-notification__icon q-notification__icon--"+i.leftClass,attrs:{role:"img"},props:{name:e.icon,color:e.iconColor,size:e.iconSize}})):e.avatar&&n.push(t(Kt,{staticClass:"q-notification__avatar q-notification__avatar--"+i.leftClass},[t("img",{attrs:{src:e.avatar,"aria-hidden":"true"}})]))),!0===i.hasText){var s,o={staticClass:"q-notification__message col"};if(!0===e.html)o.domProps={innerHTML:e.caption?"
"+e.message+'
'+e.caption+"
":e.message};else{var r=[e.message];s=e.caption?[t("div",r),t("div",{staticClass:"q-notification__caption"},[e.caption])]:r}n.push(t("div",o,s))}var a=[t("div",{staticClass:i.contentClass},n)];return!0===e.progress&&a.push(t("div",{key:i.uid+"|p|"+i.badge,staticClass:i.progressClass,style:i.progressStyle})),void 0!==e.actions&&a.push(t("div",{staticClass:i.actionsClass},e.actions.map(function(e){return t(Be,Object.assign({},e))}))),i.badge>1&&a.push(t("div",{key:i.uid+"|"+i.badge,staticClass:i.badgeClass,style:e.badgeStyle},[i.badge])),t("div",{ref:""+i.uid,key:i.uid,staticClass:i.staticClass,attrs:i.attrs},[t("div",{staticClass:i.wrapperClass},a)])}))}))},mounted:function(){var t=this;if(void 0!==this.$q.fullscreen&&!0===this.$q.fullscreen.isCapable){var e=function(){var e=me(t.$q.fullscreen.activeEl);t.$el.parentElement!==e&&e.appendChild(t.$el)};this.unwatchFullscreen=this.$watch("$q.fullscreen.activeEl",T(e,50)),!0===this.$q.fullscreen.isActive&&e()}},beforeDestroy:function(){void 0!==this.unwatchFullscreen&&this.unwatchFullscreen()}},$u={setDefaults:function(t){!0!==i&&!0===Zi(t)&&Object.assign(gu,t)},registerType:function(t,e){!0!==i&&!0===Zi(e)&&(xu[t]=e)},install:function(e){var n=e.$q;if(n.notify=this.create=!0===i?p:function(t){return ku(t,mu)},n.notify.setDefaults=this.setDefaults,n.notify.registerType=this.registerType,void 0!==n.config.notify&&this.setDefaults(n.config.notify),!0!==i){wu.forEach(function(t){bu[t]=[];var e=!0===["left","center","right"].includes(t)?"center":t.indexOf("top")>-1?"top":"bottom",i=t.indexOf("left")>-1?"start":t.indexOf("right")>-1?"end":"center",n=["left","right"].includes(t)?"items-"+("left"===t?"start":"end")+" justify-center":"center"===t?"flex-center":"items-"+i;yu[t]="q-notifications__list q-notifications__list--"+e+" fixed column no-wrap "+n});var s=document.createElement("div");document.body.appendChild(s),(mu=new t(Mu)).$mount(s)}}};function Lu(t){return!0===Ji(t)?"__q_date|"+t.toUTCString():!0==(e=t,"[object RegExp]"===Object.prototype.toString.call(e))?"__q_expr|"+t.source:"number"==typeof t?"__q_numb|"+t:"boolean"==typeof t?"__q_bool|"+(t?"1":"0"):"string"==typeof t?"__q_strn|"+t:"function"==typeof t?"__q_strn|"+t.toString():t===Object(t)?"__q_objt|"+JSON.stringify(t):t;var e}function Ou(){var t=function(){return null};return{has:function(){return!1},getLength:function(){return 0},getItem:t,getIndex:t,getKey:t,getAll:function(){},getAllKeys:function(){return[]},set:p,remove:p,clear:p,isEmpty:function(){return!0}}}function Bu(t){var e=window[t+"Storage"],i=function(t){var i=e.getItem(t);return i?function(t){if(t.length<9)return t;var e=t.substr(0,8),i=t.substring(9);switch(e){case"__q_date":return new Date(i);case"__q_expr":return new RegExp(i);case"__q_numb":return Number(i);case"__q_bool":return Boolean("1"===i);case"__q_strn":return""+i;case"__q_objt":return JSON.parse(i);default:return t}}(i):null};return{has:function(t){return null!==e.getItem(t)},getLength:function(){return e.length},getItem:i,getIndex:function(t){return t + + {{ name }} + + `, + props: { + name: { + type: String, + required: true, + }, + page: { + type: String, + required: true, + }, + svgIcon: { + type: String, + required: false, + default: "", + }, + svgIconName: { + type: String, + required: false + }, + cdClick: { + type: Function, + required: false, + }, + }, + data: function () { + return { + app: app, + svgIconData: "", + }; + }, + async mounted() { + if (this.svgIcon) { + this.svgIconData = this.svgIcon; + } + }, + methods: {}, +}) \ No newline at end of file diff --git a/src/renderer/main/components/svg-icon.js b/src/renderer/main/components/svg-icon.js new file mode 100644 index 00000000..71ddd29c --- /dev/null +++ b/src/renderer/main/components/svg-icon.js @@ -0,0 +1,22 @@ +import {html} from "../html.js" + +export const svgIcon = Vue.component("svg-icon", { + template: html` +
+ `, + props: { + name: { + type: String, + required: false + }, + classes: { + type: String, + required: false + }, + url: { + type: String, + required: true, + default: "./assets/repeat.svg" + } + } +}) \ No newline at end of file diff --git a/src/renderer/main/events.js b/src/renderer/main/events.js index 24fe826b..e0a3c45c 100644 --- a/src/renderer/main/events.js +++ b/src/renderer/main/events.js @@ -24,7 +24,7 @@ const Events = { // CTRL + R if (event.keyCode === 82 && event.ctrlKey) { event.preventDefault() - bootbox.confirm("Reload Cider?", (res)=>{ + app.confirm(app.getLz('term.reload'), (res)=>{ if (res) { window.location.reload() } @@ -69,8 +69,8 @@ const Events = { // Prevent Scrolling on spacebar if (event.keyCode === 32 && event.target === document.body) { event.preventDefault() - app.SpacePause() - + app.SpacePause() + } }); @@ -91,8 +91,6 @@ const Events = { setTimeout(refreshFocus, 200); } - app.getHTMLStyle() - refreshFocus(); } } diff --git a/src/renderer/main/html.js b/src/renderer/main/html.js new file mode 100644 index 00000000..2b4d140c --- /dev/null +++ b/src/renderer/main/html.js @@ -0,0 +1,3 @@ +export function html (str) { + return str[0] +} \ No newline at end of file diff --git a/src/renderer/main/mica.js b/src/renderer/main/mica.js index cbd346bc..052a1c24 100644 --- a/src/renderer/main/mica.js +++ b/src/renderer/main/mica.js @@ -21,22 +21,22 @@ async function spawnMica() { let lastScreenWidth; let lastScreenHeight; - let regen = true; - let imgSrc = await ipcRenderer.sendSync("get-wallpaper", { + let imgSrc = ""; + let micaCache = await CiderCache.getCache("mica-cache"); + if (!micaCache) { + micaCache = { + path: "", + data: "", + }; + } + if (micaCache.path == imgSrc.path) { + imgSrc = micaCache; + }else{ + imgSrc = await ipcRenderer.sendSync("get-wallpaper", { blurAmount: 256 - }); - -// let micaCache = await CiderCache.getCache("mica-cache"); -// if (!micaCache) { -// micaCache = { -// path: "", -// data: "", -// }; -// } -// if (micaCache.path == imgSrc.path) { -// regen = false; -// imgSrc = micaCache; -// } + }); + CiderCache.putCache("mica-cache", imgSrc); + } let canvas = document.createElement("canvas"); let ctx = canvas.getContext("2d"); let img = new Image(); diff --git a/src/renderer/main/vueapp.js b/src/renderer/main/vueapp.js index ad3e5d1f..bc5b03ff 100644 --- a/src/renderer/main/vueapp.js +++ b/src/renderer/main/vueapp.js @@ -1,4 +1,4 @@ -import {store} from './vuex-store.js'; +import { store } from './vuex-store.js'; Vue.use(VueHorizontal); Vue.use(VueObserveVisibility); @@ -12,10 +12,10 @@ const app = new Vue({ ipcRenderer: ipcRenderer, cfg: ipcRenderer.sendSync("getStore"), isDev: ipcRenderer.sendSync("is-dev"), + clientPort: ipcRenderer.sendSync("get-port"), drawertest: false, platform: "", mk: {}, - quickPlayQuery: "", pluginInstalled: false, pluginMenuEntries: [], lz: ipcRenderer.sendSync("get-i18n", "en_US"), @@ -80,7 +80,7 @@ const app = new Vue({ sorting: "name", sortOrder: "asc", listing: [], - meta: {total: 0, progress: 0}, + meta: { total: 0, progress: 0 }, search: "", displayListing: [], downloadState: 0 // 0 = not started, 1 = in progress, 2 = complete, 3 = empty library @@ -96,7 +96,7 @@ const app = new Vue({ sorting: ["dateAdded", "name"], // [0] = recentlyadded page, [1] = albums page sortOrder: ["desc", "asc"], // [0] = recentlyadded page, [1] = albums page listing: [], - meta: {total: 0, progress: 0}, + meta: { total: 0, progress: 0 }, search: "", displayListing: [], downloadState: 0 // 0 = not started, 1 = in progress, 2 = complete, 3 = empty library @@ -112,12 +112,12 @@ const app = new Vue({ sorting: ["dateAdded", "name"], // [0] = recentlyadded page, [1] = albums page sortOrder: ["desc", "asc"], // [0] = recentlyadded page, [1] = albums page listing: [], - meta: {total: 0, progress: 0}, + meta: { total: 0, progress: 0 }, search: "", displayListing: [], downloadState: 0 // 0 = not started, 1 = in progress, 2 = complete, 3 = empty library }, - localsongs : [] + localsongs: [] }, playlists: { listing: [], @@ -130,16 +130,13 @@ const app = new Vue({ webremoteqr: "", mxmtoken: "", mkIsReady: false, - playerReady: false, animateBackground: false, currentArtUrl: '', currentArtUrlRaw: '', lyricon: false, currentTrackID: '', - currentTrackIDBG: '', lyrics: [], currentLyricsLine: 0, - lyriccurrenttime: 0, richlyrics: [], lyricsMediaItem: {}, lyricsDebug: { @@ -147,6 +144,7 @@ const app = new Vue({ start: 0, end: 0 }, + lyricOffset: 0, v3: { requestBody: { platform: "web" @@ -168,6 +166,7 @@ const app = new Vue({ location: "", info: {} }, + windowState: "normal", desiredPageTransition: "wpfade_transform", hideUserInfo: ipcRenderer.sendSync("is-dev") || false, artworkReady: false, @@ -176,7 +175,7 @@ const app = new Vue({ "attributes": { "name": "Cider User", "handle": "CiderUser", - "artwork": {"url": "./assets/logocut.png"} + "artwork": { "url": "./assets/logocut.png" } } }, forceDirectives: {}, @@ -215,8 +214,10 @@ const app = new Vue({ audioPlaybackRate: false, showPlaylist: false, castMenu: false, + pathMenu: false, moreInfo: false, airplayPW: false, + settings: false }, socialBadges: { badgeMap: {}, @@ -243,6 +244,7 @@ const app = new Vue({ notyf: notyf, idleTimer: null, idleState: false, + appVisible: true }, watch: { cfg: { @@ -274,6 +276,9 @@ const app = new Vue({ }, false) }, methods: { + setWindowHash(route = "") { + window.location.hash = `#${route}`; + }, async oobeInit() { this.appMode = "oobe" this.setLz(this.cfg.general.language) @@ -285,12 +290,14 @@ const app = new Vue({ }, getAppStyle() { let finalStyle = {} - if(this.cfg.visual.window_background_style === "color") { + if (this.cfg.visual.window_background_style === "color") { finalStyle["background-color"] = this.cfg.visual.windowColor } - if(this.cfg.visual.customAccentColor) { + if (this.cfg.visual.customAccentColor) { finalStyle["--keyColor"] = this.cfg.visual.accentColor finalStyle["--songProgressColor"] = this.cfg.visual.accentColor + } else if (this.cfg.visual.purplePodcastPlaybackBar && MusicKit.getInstance().nowPlayingItem?.type == "podcast-episodes") { + finalStyle["--songProgressColor"] = '#6929D0' } return finalStyle }, @@ -298,7 +305,7 @@ const app = new Vue({ return setTimeout(func, time); }, songLinkShare(amUrl) { - notyf.open({type: "info", className: "notyf-info", message: app.getLz('term.song.link.generate')}) + 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); @@ -320,11 +327,7 @@ const app = new Vue({ let advancedTooltip = this.cfg.audio.dBSPL ? (Number(this.cfg.audio.dBSPLcalibration) + (Math.log10(this.mk.volume) * 20)).toFixed(2) + ' dB SPL' : (Math.log10(this.mk.volume) * 20).toFixed(2) + ' dBFS' return this.cfg.audio.advanced ? advancedTooltip : (this.mk.volume * 100).toFixed(0) + '%' }, - mainMenuVisibility(val, isContextMenu) { - if (this.chrome.sidebarCollapsed && !isContextMenu) { - this.chrome.sidebarCollapsed = false - return - } + mainMenuVisibility(val) { if (val) { (this.mk.isAuthorized) ? this.chrome.menuOpened = !this.chrome.menuOpened : false; if (!this.mk.isAuthorized) { @@ -387,6 +390,46 @@ const app = new Vue({ return message } }, + getProfileLz(type, name) { // For Spatial and CAR. + let result = ""; + + // Hard-coded shiz + switch (name) { + case "Maikiwi": + return "Maikiwi"; + break; + + case "Maikiwi+": + return "Maikiwi+"; + break; + + case "Minimal+": + return this.getLz('settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.minimal') + "+"; + break; + + case "live": + return "LIVE"; + break; + } + switch (type) { + case "CAR": + result = this.getLz('settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.' + name); + if (result === "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode." + name) { + return name; + } + else {return result;} + break; + case "CTS": + result = this.getLz('settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.' + name.toLowerCase()); + if (result === "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile." + name.toLowerCase()) { + return name; + } + else {return result;} + break; + default: + return name; + } + }, setLzManual() { app.$data.library.songs.sortingOptions = { "albumName": app.getLz('term.sortBy.album'), @@ -414,7 +457,7 @@ const app = new Vue({ }, async showSocialListeningTo() { let contentIds = Object.keys(app.socialBadges.badgeMap) - app.showCollection({data: this.socialBadges.mediaItems}, "Friends Listening To", "albums") + app.showCollection({ data: this.socialBadges.mediaItems }, "Friends Listening To", "albums") if (this.socialBadges.mediaItemDLState == 1 || this.socialBadges.mediaItemDLState == 2) { return } @@ -435,6 +478,9 @@ const app = new Vue({ } }) }, + quit() { + ipcRenderer.invoke("quit-app") + }, async openAppleMusicURL(url) { let properties = MusicKit.formattedMediaURL(url) let item = { @@ -512,20 +558,16 @@ const app = new Vue({ }) }, goToGrouping(url = "https://music.apple.com/WebObjects/MZStore.woa/wa/viewGrouping?cc=us&id=34") { - if (url.includes('viewTop')){ - window.location.hash = `#charts/top` + if (url.includes('viewTop')) { + window.location.hash = `#charts/top` } else { - const id = url.split("id=")[1]; - window.location.hash = `#groupings/${id}`} + const id = url.split("id=")[1]; + window.location.hash = `#groupings/${id}` + } }, navigateForward() { history.forward() }, - getHTMLStyle() { - - ipcRenderer.send("setScreenScale", app.cfg.visual.uiScale); - - }, resetState() { this.menuPanel.visible = false; app.selectedMediaItems = []; @@ -558,7 +600,7 @@ const app = new Vue({ 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} + 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") { @@ -571,7 +613,7 @@ const app = new Vue({ 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} + return { id: i.id, type: i.type } }) pl_items = pl_items.concat(ids) } else { @@ -598,7 +640,7 @@ const app = new Vue({ 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} + 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") { @@ -611,7 +653,7 @@ const app = new Vue({ 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} + return { id: i.id, type: i.type } }) pl_items = pl_items.concat(ids) } else { @@ -625,13 +667,13 @@ const app = new Vue({ 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 - }) - } + fetchOptions: { + method: "POST", + body: JSON.stringify({ + data: pl_items + }) } + } ).then(() => { if (this.page == 'playlist_' + this.showingPlaylist.id) { this.getPlaylistFromID(this.showingPlaylist.id, true) @@ -640,7 +682,7 @@ const app = new Vue({ }, async init() { let self = this - if(!localStorage.getItem("seenOOBE")) { + if (!localStorage.getItem("seenOOBE")) { localStorage.setItem("seenOOBE", 1) } if (this.cfg.visual.styles.length != 0) { @@ -682,7 +724,7 @@ const app = new Vue({ this.platform = this.cfg.main.PLATFORM this.mklang = await this.MKJSLang() - + this.mk._playbackController._storekit.overrideRestrictEnabled(false) try { // Set profile name this.chrome.userinfo = (await app.mk.api.v3.music(`/v1/me/social-profile`)).data.data[0] @@ -694,6 +736,9 @@ const app = new Vue({ } catch (err) { } + // Used to get a scale factor for the window for CSS scaling + window.addEventListener("resize", e => this.setWindowScaleFactor()) + this.setWindowScaleFactor() this.mk._bag.features['seamless-audio-transitions'] = this.cfg.audio.seamless_audio this.mk._bag.features["broadcast-radio"] = true this.mk._services.apiManager.store.storekit._restrictedEnabled = false @@ -704,7 +749,7 @@ const app = new Vue({ "attributes": { "name": "Cider User", "handle": "CiderUser", - "artwork": {"url": "./assets/logocut.png"} + "artwork": { "url": "./assets/logocut.png" } } } } @@ -755,7 +800,7 @@ const app = new Vue({ let truekind = (!kind.endsWith("s")) ? (kind + "s") : kind; app.mk.setQueue({ [truekind]: [lastItem.attributes.playParams.id], - parameters: {l: app.mklang} + parameters: { l: app.mklang } }) app.mk.mute() setTimeout(() => { @@ -774,7 +819,7 @@ const app = new Vue({ for (let id of ids) { if (!(i == 0 && ids[0] == lastItem.attributes.playParams.id)) { try { - app.mk.playLater({songs: [id]}) + app.mk.playLater({ songs: [id] }) } catch (err) { } } @@ -796,14 +841,14 @@ const app = new Vue({ } break; case "history": - let history = await app.mk.api.v3.music(`/v1/me/recent/played/tracks`, {l: app.mklang}) + 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} + parameters: { l: app.mklang } }) app.mk.mute() setTimeout(() => { @@ -823,6 +868,10 @@ const app = new Vue({ MusicKit.getInstance().videoContainerElement = document.getElementById("apple-music-video-player") + ipcRenderer.on('setStoreValue', (e, key, value) => { + app.cfg[key] = value + }) + ipcRenderer.on('theme-update', async (event, arg) => { await less.refresh(true, true, true) self.setTheme(self.cfg.visual.theme, true) @@ -841,13 +890,18 @@ const app = new Vue({ user: `${user.username}#${user.discriminator}`, userid: user.id })); - }}) + } + }) - ipcRenderer.on('getUpdatedLocalList', (event,data) => { - console.log("cider-local",data); + ipcRenderer.on('getUpdatedLocalList', (event, data) => { + // console.log("cider-local", data); this.library.localsongs = data; }) + ipcRenderer.on('window-state-changed', (event, data) => { + this.chrome.windowState = data + }) + ipcRenderer.on('SoundCheckTag', (event, tag) => { // let replaygain = self.parseSCTagToRG(tag) try { @@ -867,6 +921,7 @@ const app = new Vue({ try { //CiderAudio.audioNodes.gainNode.gain.value = (Math.min(Math.pow(10, (replaygain.gain / 20)), (1 / replaygain.peak))) CiderAudio.audioNodes.gainNode.gain.value = gain + CiderAudio.hierarchical_loading(); } catch (e) { } } @@ -885,7 +940,7 @@ const app = new Vue({ ipcRenderer.on('play', function (_event, mode, id) { if (mode !== 'url') { - self.mk.setQueue({[mode]: id, parameters: {l: self.mklang}}).then(() => { + self.mk.setQueue({ [mode]: id, parameters: { l: self.mklang } }).then(() => { app.mk.play() }) @@ -894,13 +949,19 @@ const app = new Vue({ } }); + this.mk.addEventListener(MusicKit.Events.playbackProgressDidChange, () => { + if (self.mk.currentPlaybackProgress === (app.cfg.connectivity.lastfm.scrobble_after / 100)) { + ipcRenderer.send('lastfm:scrobbleTrack', MusicKitInterop.getAttributes()); + } + }) + this.mk.addEventListener(MusicKit.Events.playbackStateDidChange, (event) => { ipcRenderer.send('wsapi-updatePlaybackState', wsapi.getAttributes()); document.body.setAttribute("playback-state", event.state == 2 ? "playing" : "paused") }) this.mk.addEventListener(MusicKit.Events.playbackTimeDidChange, (a) => { - self.lyriccurrenttime = self.mk.currentPlaybackTime + // self.lyriccurrenttime = self.mk.currentPlaybackTime - app.lyricOffset this.currentSongInfo = a self.playerLCD.playbackDuration = (self.mk.currentPlaybackTime) // wsapi @@ -915,54 +976,83 @@ const app = new Vue({ } }) + // Used for Live Radio stations to set Metadata + this.mk.addEventListener(MusicKit.Events.timedMetadataDidChange, (e) => { + app.mk.nowPlayingItem.attributes.name = e.title + app.mk.nowPlayingItem.attributes.artistName = e.performer + app.mk.nowPlayingItem.attributes.albumName = e.album + if (e.links[1]) { + app.currentArtUrl = e.links[1].url + app.currentArtUrlRaw = e.links[1].url + } else { + app.currentArtUrl = e.links[0].url + app.currentArtUrlRaw = e.links[0].url + } + app.mk.nowPlayingItem._songId = e._adamId ? e._adamId : -1 + app.mk.nowPlayingItem.id = e._adamId ? e._adamId : -1 + }) + this.mk.addEventListener(MusicKit.Events.nowPlayingItemDidChange, (a) => { if (self.$refs.queue) { self.$refs.queue.updateQueue(); } - this.currentSongInfo = a - - if (app.cfg.advanced.AudioContext) { - try { - if (app.mk.nowPlayingItem.flavor.includes("64")) { - if (localStorage.getItem("playingBitrate") !== "64") { - localStorage.setItem("playingBitrate", "64") - CiderAudio.hierarchical_loading(); - } - } else if (app.mk.nowPlayingItem.flavor.includes("256")) { - if (localStorage.getItem("playingBitrate") !== "256") { - localStorage.setItem("playingBitrate", "256") - CiderAudio.hierarchical_loading(); - } - } else { - localStorage.setItem("playingBitrate", "256") - CiderAudio.hierarchical_loading(); - } - } catch (e) { + this.currentSongInfo = a; + if (this.currentSongInfo === null || this.currentSongInfo === undefined) { return; } // EVIL EMPTY OBJECTS BE GONE + let localFiles = false; + try { + if (app.mk.nowPlayingItem.flavor.includes("64") && app.mk.nowPlayingItem.flavor.includes(":")) { + localStorage.setItem("playingBitrate", "64") + } else if (app.mk.nowPlayingItem.flavor.includes("256") && app.mk.nowPlayingItem.flavor.includes(":")) { localStorage.setItem("playingBitrate", "256") - CiderAudio.hierarchical_loading(); + } else { + localFiles = true; + localStorage.setItem("playingBitrate", app.mk.nowPlayingItem.flavor) } + } catch (e) { + localFiles = true; + try {localStorage.setItem("playingBitrate", app.mk.nowPlayingItem.flavor)} + catch(e) {} } - - if (app.cfg.audio.normalization) { + if (!app.cfg.audio.normalization && app.cfg.advanced.AudioContext === false) { CiderAudio.hierarchical_loading(); } + + else { // get unencrypted audio previews to get SoundCheck's normalization tag try { let previewURL = null try { previewURL = app.mk.nowPlayingItem.previewURL } catch (e) { + if (e instanceof TypeError === false) { console.debug("[Cider][MaikiwiSoundCheck] normalizer function err: " + e) } + else { + if (localFiles === true) {CiderAudio.audioNodes.gainNode.gain.value = 0.8222426499470} + } } 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) + try {previewURL = response.data.data[0].attributes.previews[0].url;} catch(e) { + if (e instanceof TypeError === false) { console.debug("[Cider][MaikiwiSoundCheck] normalizer function err: " + e) } + else { + if (localFiles === true) {CiderAudio.audioNodes.gainNode.gain.value = 0.8222426499470}} + } + if (previewURL) { + console.debug("[Cider][MaikiwiSoundCheck] previewURL response.data.data[0].attributes.previews[0].url: " + previewURL) ipcRenderer.send('getPreviewURL', previewURL) + } + else { + if (localFiles === true) {CiderAudio.audioNodes.gainNode.gain.value = 0.8222426499470} + } }) } else { - if (previewURL) - ipcRenderer.send('getPreviewURL', previewURL) - } + if (previewURL) { + console.debug("[Cider][MaikiwiSoundCheck] previewURL in app.mk.nowPlayingItem.previewURL: " + previewURL) + ipcRenderer.send('getPreviewURL', previewURL)} + } } catch (e) { + if (e instanceof TypeError === false) { console.debug("[Cider][MaikiwiSoundCheck] normalizer function err: " + e) } + else { + if (localFiles === true) {CiderAudio.audioNodes.gainNode.gain.value = 0.8222426499470} + } } } @@ -1038,6 +1128,20 @@ const app = new Vue({ if (this.cfg.general.themeUpdateNotification && !this.isDev) { this.checkForThemeUpdates() } + + ipcRenderer.invoke("scanLibrary") + }, + setWindowScaleFactor() { + let scale = window.devicePixelRatio * window.innerWidth / 1280 * window.innerHeight / 720 + let desiredScale = clamp(parseFloat(app.cfg.visual.maxElementScale == -1 ? 1.5 : app.cfg.visual.maxElementScale), 1, 1.5) + app.$store.state.windowRelativeScale = scale + if(scale <= 1) { + scale = 1 + }else if(scale >= desiredScale) { + scale = desiredScale + } + document.documentElement.style + .setProperty('--windowRelativeScale', scale); }, showFoo(querySelector, time) { clearTimeout(this.idleTimer); @@ -1068,7 +1172,7 @@ const app = new Vue({ message: `[Themes] ${theme.name} has an update available.` }) notify.on("click", () => { - app.appRoute("themes-github") + app.openSettingsPage("github-themes") notyf.dismiss(notify) }) } @@ -1152,11 +1256,11 @@ const app = new Vue({ } else if (this.cfg.visual.directives[directive]) { return this.cfg.visual.directives[directive] } else { - return "" + return false } }, unauthorize() { - bootbox.confirm(app.getLz('term.confirmLogout'), function (result) { + this.confirm(app.getLz('term.confirmLogout'), function (result) { if (result) { app.mk.unauthorize() document.location.reload() @@ -1165,9 +1269,20 @@ const app = new Vue({ }, getAppClasses() { let classes = {} - if (this.cfg.advanced.experiments.includes('compactui')) { - classes.compact = true + switch (this.getThemeDirective('forceUI') ?? "none") { + case "compact": + classes.compact = true; + break; + case "standard": + classes.compact = false; + break; + default: + if (this.cfg.advanced.experiments.includes('compactui')) { + classes.compact = true; + } + break; } + if (this.cfg.visual.window_background_style == "none") { classes.simplebg = true } @@ -1249,6 +1364,66 @@ const app = new Vue({ } }) }, + async syncFavorites() { + const notify = notyf.open({ + className: "notyf-info", + type: "info", + message: `[${app.getLz('home.syncFavorites')}] ${app.getLz('home.syncFavorites.gettingArtists')}` + }) + const results = await MusicKitTools.v3Continuous({ + href: "/v1/me/library/artists", options: { + "include": ["catalog"], + "fields[artists]": ["inFavorites"] + } + }) + let favs = [] + // for each result + results.forEach(result => { + try { + if (result.relationships?.catalog?.data[0]?.attributes?.inFavorites) { + if (!favs.includes(result.relationships?.catalog?.data[0].id)) { + favs.push(result.relationships?.catalog?.data[0].id) + } + } + } catch (e) { + e = null + } + }) + notyf.success(`[${app.getLz('home.syncFavorites')}] ${app.getLz('action.done')}`) + app.cfg.home.followedArtists = favs + return favs + }, + async setArtistFavorite(id, val = true) { + if (val) { + if (!app.cfg.home.followedArtists.includes(id)) { + app.cfg.home.followedArtists.push(id) + } + await app.mk.api.v3.music(`/v1/me/favorites`, { + "art[url]": "f", + "ids[artists]": app.artistPage.data.id, + "l": app.mklang, + "platform": "web" + }, { + fetchOptions: { + method: "POST" + } + }) + } else { + if (app.cfg.home.followedArtists.includes(id)) { + app.cfg.home.followedArtists.splice(app.cfg.home.followedArtists.indexOf(id), 1) + } + await app.mk.api.v3.music(`/v1/me/favorites`, { + "art[url]": "f", + "ids[artists]": app.artistPage.data.id, + "l": app.mklang, + "platform": "web" + }, { + fetchOptions: { + method: "DELETE" + } + }) + } + }, async refreshPlaylists(localOnly = false, useCachedPlaylists = true) { let self = this let trackMap = this.cfg.advanced.playlistTrackMapping @@ -1282,7 +1457,7 @@ const app = new Vue({ async function deepScan(parent = "p.playlistsroot") { console.debug(`scanning ${parent}`) // const playlistData = await app.mk.api.v3.music(`/v1/me/library/playlist-folders/${parent}/children/`) - const playlistData = await MusicKitTools.v3Continuous({href: `/v1/me/library/playlist-folders/${parent}/children/`}) + const playlistData = await MusicKitTools.v3Continuous({ href: `/v1/me/library/playlist-folders/${parent}/children/` }) console.log(playlistData) await asyncForEach(playlistData, async (playlist) => { playlist.parent = parent @@ -1358,12 +1533,18 @@ const app = new Vue({ this.newPlaylist() } }, - { - name: app.getLz('term.createNewPlaylistFolder'), - action: () => { - this.newPlaylistFolder() - } + { + name: app.getLz('term.createNewPlaylistFolder'), + action: () => { + this.newPlaylistFolder() } + }, + { + name: app.getLz("action.refresh"), + action: () => { + this.refreshPlaylists() + } + } ] } this.showMenuPanel(menu, event) @@ -1372,13 +1553,13 @@ const app = new Vue({ let self = this this.mk.api.v3.music( `/v1/me/library/playlist-folders/${id}`, {}, { - fetchOptions: { - method: "PATCH", - body: JSON.stringify({ - attributes: {name: name} - }) - } + fetchOptions: { + method: "PATCH", + body: JSON.stringify({ + attributes: { name: name } + }) } + } ).then(res => { self.refreshPlaylists(false, false) }) @@ -1387,13 +1568,13 @@ const app = new Vue({ let self = this this.mk.api.v3.music( `/v1/me/library/playlists/${id}`, {}, { - fetchOptions: { - method: "PATCH", - body: JSON.stringify({ - attributes: {name: name} - }) - } + fetchOptions: { + method: "PATCH", + body: JSON.stringify({ + attributes: { name: name } + }) } + } ).then(res => { self.refreshPlaylists(false, false) }) @@ -1402,13 +1583,13 @@ const app = new Vue({ let self = this this.mk.api.v3.music( `/v1/me/library/playlists/${id}`, {}, { - fetchOptions: { - method: "PATCH", - body: JSON.stringify({ - attributes: {description: name} - }) - } + fetchOptions: { + method: "PATCH", + body: JSON.stringify({ + attributes: { description: name } + }) } + } ).then(res => { self.refreshPlaylists(false, false) }) @@ -1433,9 +1614,9 @@ const app = new Vue({ fetchOptions: { method: "POST", body: JSON.stringify({ - "attributes": {"name": name}, + "attributes": { "name": name }, "relationships": { - "tracks": {"data": tracks}, + "tracks": { "data": tracks }, } }) } @@ -1460,22 +1641,24 @@ const app = new Vue({ }, 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) - } - setTimeout(() => { - app.refreshPlaylists(false, false); - }, 8000); - }) - } + this.confirm(app.getLz('term.deletePlaylist'), (ok) => { + if (ok) { + 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) + } + setTimeout(() => { + app.refreshPlaylists(false, false); + }, 8000); + }) + } + }); }, /** * @param {string} url, href for the initial request @@ -1498,7 +1681,7 @@ const app = new Vue({ 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 + let response = (await app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/artists/${artist}/view/${view}?l=${this.mklang}`, {}, { includeResponseMeta: !0 })).data console.debug(response) await this.showCollection(response, title, "artists") }, @@ -1608,14 +1791,14 @@ const app = new Vue({ 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": "centeredFullscreenBackground,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}) + }, { includeResponseMeta: !0 }) console.debug(artistData.data.data[0]) this.artistPage.data = artistData.data.data[0] this.page = "artist-page" @@ -1698,9 +1881,9 @@ const app = new Vue({ 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 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 })}` : ""; return dDisplay + (dDisplay && hDisplay ? ", " : "") + hDisplay + (hDisplay && mDisplay ? ", " : "") + mDisplay; } else { @@ -1772,7 +1955,7 @@ const app = new Vue({ kind: page, id: id, attributes: { - playParams: {kind: page, id: id, isLibrary: isLibrary} + playParams: { kind: page, id: id, isLibrary: isLibrary } } }) }, @@ -1799,7 +1982,7 @@ const app = new Vue({ this.routeView(item.relationships.contents.data[0]) } else if (item.attributes?.link?.url != null) { if (item.attributes.link.url.includes("viewMultiRoom")) { - const params = new Proxy(new URLSearchParams(item.attributes.link.url), { + const params = new Proxy(new URLSearchParams(new URL(item.attributes.link.url).search), { get: (searchParams, prop) => searchParams.get(prop), }); id = params.fcId @@ -1813,12 +1996,30 @@ const app = new Vue({ }) return; + } else if (item.attributes.link.url.includes("viewFeature")) { + const params = new Proxy(new URLSearchParams(new URL(item.attributes.link.url).search), { + get: (searchParams, prop) => searchParams.get(prop), + }); + id = params.id + app.mk.api.v3.music(`/v1/editorial/vn/multiplex/${id}?art%5Burl%5D=f&format%5Bresources%5D=map&platform=web`).then( + (data) => { + let item = data.data.results?.target ?? [] + app.routeView(item) + } + ) } else { window.open(item.attributes.link.url) } } - } else if (kind == "multirooms") { + } else if (kind == "multiplex") { + app.mk.api.v3.music(`/v1/editorial/vn/multiplex/${id}?art%5Burl%5D=f&format%5Bresources%5D=map&platform=web`).then( + (data) => { + let item = data.data.results?.target ?? [] + app.routeView(item) + } + ) + }if (kind == "multirooms") { app.getTypeFromID("multiroom", id, false, { platform: "web", extend: "editorialArtwork,uber,lockupStyle" @@ -1846,7 +2047,26 @@ const app = new Vue({ }); 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")) { + } else if (kind.toString().includes("social-profiles")) { + app.page = (kind) + "_" + (id); + app.mk.api.v3.music( + `/v1/social/${app.mk.storefrontId}/social-profiles/${id}`, + {include:"shared-playlists"}).then( + (data) => { + console.log(data) + app.showingPlaylist = data.data?.data[0] + window.location.hash = `${kind}/${id}` + document.querySelector("#app-content").scrollTop = 0 + } + ) + // app.getTypeFromID((kind), (id), (isLibrary), { + // extend: "editorialVideo", + // include: 'grouping,playlists', + // views: 'top-releases,latest-releases,top-artists' + // }); + + } + 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", @@ -1859,7 +2079,7 @@ const app = new Vue({ params["fields[artists]"] = "name,url" params["omit[resource]"] = "autos" params["meta[albums:tracks]"] = 'popularity' - params["fields[albums]"] = "artistName,artistUrl,artwork,contentRating,editorialArtwork,editorialNotes,editorialVideo,name,playParams,releaseDate,url,copyright" + params["fields[albums]"] = "artistName,artistUrl,artwork,contentRating,editorialArtwork,editorialNotes,editorialVideo,name,playParams,releaseDate,url,copyright,genreNames" } if (kind.includes("playlist") || kind.includes("album")) { app.page = (kind) + "_" + (id); @@ -1915,14 +2135,21 @@ const app = new Vue({ }, async getNowPlayingItemDetailed(target) { + let nowPlayingItem = JSON.parse(JSON.stringify(this.mk.nowPlayingItem)) + if (nowPlayingItem.type === "radioStation" && app.mk.nowPlayingItem.id !== -1) { + nowPlayingItem.playParams = { kind: "songs" } + nowPlayingItem.attributes.playParams.catalogId = app.mk.nowPlayingItem.id + nowPlayingItem.attributes.playParams.id = app.mk.nowPlayingItem.id + nowPlayingItem.id = app.mk.nowPlayingItem.id + } 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}); + let u = await app.mkapi(nowPlayingItem.playParams.kind, + (nowPlayingItem.songId == -1), + (nowPlayingItem.songId != -1) ? nowPlayingItem.songId : nowPlayingItem["id"], + { "include[songs]": "albums,artists", l: app.mklang }); app.searchAndNavigate(u.data.data[0], target) } catch (e) { - app.searchAndNavigate(app.mk.nowPlayingItem, target) + app.searchAndNavigate(nowPlayingItem, target) } }, async searchAndNavigate(item, target) { @@ -2023,7 +2250,7 @@ const app = new Vue({ } if (labelId != "") { app.showingPlaylist = [] - await app.getTypeFromID("recordLabel", labelId, false, {views: 'top-releases,latest-releases,top-artists'}); + await app.getTypeFromID("recordLabel", labelId, false, { views: 'top-releases,latest-releases,top-artists' }); app.page = "recordLabel_" + labelId; } @@ -2038,16 +2265,6 @@ const app = new Vue({ 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.debug(`check for ${id}`) return this.cfg.home.followedArtists.includes(id) @@ -2061,7 +2278,7 @@ const app = new Vue({ // console.log(kind, id, isLibrary) app.mk.stop().then(() => { if (kind.includes("artist")) { - app.mk.setStationQueue({artist: 'a-' + id}).then(() => { + app.mk.setStationQueue({ artist: 'a-' + id }).then(() => { app.mk.play() }) } else { @@ -2107,9 +2324,13 @@ const app = new Vue({ 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} - }) + + const albumAdded = {} + + for (const listing of self.library?.albums?.listing ?? []) { + albumAdded[listing.id] = listing.attributes?.dateAdded + } + let startTime = new Date().getTime() function sortSongs() { @@ -2121,12 +2342,11 @@ const app = new Vue({ 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() + } else if (prefs.sort == "dateAdded") { + let albumida = a.relationships?.albums?.data[0]?.id + let albumidb = b.relationships?.albums?.data[0]?.id + aa = startTime - new Date(albumAdded[albumida] ?? '1970-01-01T00:01:01Z').getTime() + bb = startTime - new Date(albumAdded[albumidb] ?? '1970-01-01T00:01:01Z').getTime() } if (aa == null) { aa = "" @@ -2367,6 +2587,7 @@ const app = new Vue({ let library = [] let cacheId = "library-songs" let downloaded = null; + this.$store.commit("resetRecentlyAdded") if ((this.library.songs.downloadState == 2) && !force) { return } @@ -2515,7 +2736,7 @@ const app = new Vue({ } if (downloaded.meta.total > library.length || typeof downloaded.meta.next != "undefined") { console.debug(`downloading next chunk - ${library.length - } albums so far`) + } albums so far`) downloadChunk() } else { self.library.albums.listing = library @@ -2624,7 +2845,7 @@ const app = new Vue({ } if (downloaded.meta.total > library.length || typeof downloaded.meta.next != "undefined") { console.log(`downloading next chunk - ${library.length - } artists so far`) + } artists so far`) downloadChunk() } else { self.library.artists.listing = library @@ -2647,19 +2868,19 @@ const app = new Vue({ 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')}` + 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}) + 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}) + 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 }, @@ -2688,6 +2909,7 @@ const app = new Vue({ "include[albums]": "artists", "include[songs]": "artists", "include[music-videos]": "artists", + "include[personal-recommendation]": "primary-content", "fields[albums]": ["artistName", "artistUrl", "artwork", "contentRating", "editorialArtwork", "editorialVideo", "name", "playParams", "releaseDate", "url"], "fields[artists]": ["name", "url", "artwork"], "extend[stations]": ["airDate", "supportsAirTimeUpdates"], @@ -2750,13 +2972,13 @@ const app = new Vue({ let self = this this.mk.api.v3.music( "/v1/me/library/playlist-folders/", {}, { - fetchOptions: { - method: "POST", - body: JSON.stringify({ - attributes: {name: name} - }) - } + fetchOptions: { + method: "POST", + body: JSON.stringify({ + attributes: { name: name } + }) } + } ).then((res) => { let playlist = (res.data.data[0]) self.playlists.listing.push({ @@ -2887,75 +3109,20 @@ const app = new Vue({ 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 id = null; let vanity_id = null; + if (this.mk.nowPlayingItem != null && app.mk.nowPlayingItem.localFilesMetadata != null) {const id = encodeURIComponent('')} + else {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.loadNeteaseLyrics(); - // 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.debug('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.debug('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.loadQQLyrics(); - //app.loadAMLyrics(); - } - }; - req.onerror = function () { - console.log('error'); - app.loadQQLyrics(); - // 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(); + function getMXMSubs(track, artist, lang, time, id) { + let richsyncQuery = app.cfg.lyrics.mxm_karaoke + let itunesid = (id && id != "") ? id : ''; // Mode 1 -> Subs + let url = "https://api.cider.sh/v1/lyrics?" + "mode=1" + "&richsyncQuery=" + richsyncQuery + "&track=" + track + "&artist=" + artist + "&songID=" + itunesid + "&source=mxm" + "&lang=" + lang + "&time=" + time; 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); @@ -2963,11 +3130,13 @@ const app = new Vue({ let status1 = jsonResponse["message"]["header"]["status_code"]; if (status1 == 200) { - let id = ''; + let id, songLang = ''; 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"]; + vanity_id = jsonResponse["message"]["body"]["macro_calls"]["matcher.track.get"]["message"]["body"]["track"]["commontrack_vanity_id"]; + songLang = jsonResponse["message"]["body"]["macro_calls"]["track.lyrics.get"]["message"]["body"]["lyrics"]["lyrics_language_description"]; try { let lrcrich = jsonResponse["message"]["body"]["macro_calls"]["track.richsync.get"]["message"]["body"]["richsync"]["richsync_body"]; @@ -2977,12 +3146,12 @@ const app = new Vue({ } } - if (lrcfile == "") { + if (lrcfile === "") { app.loadQQLyrics(); // app.loadAMLyrics() } else { if (richsync == [] || richsync.length == 0) { - console.log("ok"); + console.log("musixmatch worki"); // process lrcfile to json here app.lyricsMediaItem = lrcfile let u = app.lyricsMediaItem.split(/[\r\n]/); @@ -3023,24 +3192,21 @@ const app = new Vue({ }); app.lyrics = preLrc; } - if (lrcfile != null && lrcfile != '') { - // load translation - getMXMTrans(id, lang, token); - } else { - // app.loadAMLyrics() - app.loadQQLyrics(); + + // Load translation + if (songLang.toLowerCase() !== lang){ + getMXMTrans(lang, vanity_id); } + } } catch (e) { console.log(e); app.loadQQLyrics(); // app.loadAMLyrics() } - } else { //4xx rejected - getToken(1, track, artist, '', lang, time); - } + } } catch (e) { - console.log(e); + console.error(e); app.loadQQLyrics(); //app.loadAMLyrics() } @@ -3050,59 +3216,57 @@ const app = new Vue({ console.log('error'); // app.loadAMLyrics(); }; + req.open('POST', url, true); 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; + function getMXMTrans(lang, vanity_id) { + try { + if (lang !== "disabled" && vanity_id !== '') { // Mode 2 -> Trans + let url = "https://api.cider.sh/v1/lyrics?mode=2&vanityID=" + vanity_id +'&source=mxm&lang=' + lang; + let req = new XMLHttpRequest(); + req.overrideMimeType("application/json"); + req.onload = function () { + if (req.status == 200) { // If it's not 200, 237890127389012 things could go wrong and I don't really care what those things are. + let jsonResponse = JSON.parse(this.responseText); + let applied = 0; + for (let i = 0; applied < app.lyrics.length; i++) { + if (app.lyrics[applied].line.trim() === "") {applied+=1;} + if (app.lyrics[applied].line.trim() === jsonResponse[i]) { + // Do Nothing + applied +=1; } - } catch (e) { - /// not found trans -> ignore + else { + if (app.lyrics[applied].line === "lrcInstrumental") { + if (app.lyrics[applied+1].line.trim() === jsonResponse[i]) { + // Do Nothing + applied +=2; + } + else { + app.lyrics[applied+1].translation = jsonResponse[i]; + applied +=2; + } + } + else { + app.lyrics[applied].translation = jsonResponse[i]; + applied +=1; + } + } } - } else { //4xx rejected - getToken(2, '', '', id, lang, ''); } - } catch (e) { } + req.onerror = function () { + console.log("MXM Translation somehow died. Don't need to know why.") + }; + req.open('POST', url, true); + req.send(); } - req2.send(); - } + } catch (e) {console.debug("Error while parsing MXM Trans: " + e)} } 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); - } + getMXMSubs(track, artist, lang, time, id); } }, loadNeteaseLyrics() { @@ -3221,6 +3385,7 @@ const app = new Vue({ translation: '' }); app.lyrics = preLrc.reverse(); + if (app.lyrics[5].line == "") {app.loadNeteaseLyrics();} // Detect incomplete QQ lyrics. } catch (e) { console.log(e) app.loadNeteaseLyrics(); @@ -3272,15 +3437,15 @@ const app = new Vue({ line: "lrcInstrumental" }); } - preLrc.push({startTime: start, endTime: end, line: element.textContent}); + 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"}); + 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}); + preLrc.push({ startTime: 9999999, endTime: 9999999, line: element.textContent }); } } this.lyrics = preLrc; @@ -3348,17 +3513,17 @@ const app = new Vue({ console.debug(id, truekind, isLibrary) try { if (truekind.includes("artist")) { - app.mk.setStationQueue({artist: 'a-' + id}).then(() => { + app.mk.setStationQueue({ artist: 'a-' + id }).then(() => { app.mk.play() }) } else if (truekind == "radioStations") { - this.mk.setStationQueue({url: raurl}).then(function (queue) { + this.mk.setStationQueue({ url: raurl }).then(function (queue) { MusicKit.getInstance().play() }); } else { this.mk.setQueue({ [truekind]: [id], - parameters: {l: this.mklang} + parameters: { l: this.mklang } }).then(function (queue) { MusicKit.getInstance().play() }) @@ -3386,7 +3551,15 @@ const app = new Vue({ console.log(truekind, id) try { - if (app.library.songs.displayListing.length > childIndex && parent == "librarysongs") { + if (parent == 'playlist:ciderlocal'){ + let u = app.library.localsongs.map(i => {return i.id}) + app.mk.setQueue({"episodes" : u}).then(()=>{ + let id = app.mk.queue._itemIDs.findIndex(element => element == item.id); + app.mk.changeToMediaAtIndex(id) + }) + + } + else 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) @@ -3399,7 +3572,7 @@ const app = new Vue({ if (item) { app.mk.setQueue({ [item.attributes.playParams.kind ?? item.type]: item.attributes.playParams.id ?? item.id, - parameters: {l: app.mklang} + parameters: { l: app.mklang } }).then(function () { app.mk.play().then(() => { if (app.mk.shuffleMode == 1) { @@ -3456,7 +3629,7 @@ const app = new Vue({ for (let kind in itemsToPlay) { let ids = itemsToPlay[kind] if (ids.length > 0) { - app.mk.playLater({[kind + "s"]: itemsToPlay[kind]}) + app.mk.playLater({ [kind + "s"]: itemsToPlay[kind] }) } } }) @@ -3477,22 +3650,22 @@ const app = new Vue({ 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)) - } + 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)) - } + 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)) } + } ) } } @@ -3505,7 +3678,7 @@ const app = new Vue({ 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} + 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)) { @@ -3545,7 +3718,7 @@ const app = new Vue({ } else { this.mk.setQueue({ [truekind]: [id], - parameters: {l: this.mklang} + parameters: { l: this.mklang } }).then(function (queue) { if (item && ((queue._itemIDs[childIndex] != item.id))) { childIndex = queue._itemIDs.indexOf(item.id) @@ -3669,7 +3842,7 @@ const app = new Vue({ with: ["serverBubbles", "lyricSnippet"], "art[url]": "f", "art[social-profiles:url]": "c" - }, {includeResponseMeta: !0}).then(function (results) { + }, { includeResponseMeta: !0 }).then(function (results) { results.data.results["meta"] = results.data.meta self.search.resultsSocial = results.data.results }) @@ -3690,13 +3863,13 @@ const app = new Vue({ type += "s" } type = type.replace("library-", "") - let id = item.attributes.playParams.catalogId ?? item.attributes.playParams.id ?? item.id + 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]}) + types.push({ type: type, id: [id] }) } else { types[index].id.push(id) } @@ -3762,7 +3935,7 @@ const app = new Vue({ if (width) { width = parseInt(width * window.devicePixelRatio) } - let newurl = `${url.replace('{w}', width ?? height).replace('{h}', height).replace('{f}', "webp").replace('{c}', ((width === 900) ? "sr" : "cc"))}`; + let newurl = `${url.replace('{w}', width ?? height).replace('{h}', height).replace('{f}', "webp").replace('{c}', ((width === 900 || width === 380 || width === 600 ) ? "sr" : "cc"))}`; if (newurl.includes("900x516")) { newurl = newurl.replace("900x516cc", "900x516sr").replace("900x516bb", "900x516sr"); @@ -3836,9 +4009,8 @@ const app = new Vue({ this.currentArtUrl = this.mk.nowPlayingItem._assets[0].artworkURL } try { - document.querySelector('.app-playback-controls .artwork').style.setProperty('--artwork', `url("${this.currentArtUrl}")`); - } catch (e) { - } + // 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]; @@ -3850,14 +4022,14 @@ const app = new Vue({ } ipcRenderer.send('updateRPCImage', this.currentArtUrl ?? ''); try { - document.querySelector('.app-playback-controls .artwork').style.setProperty('--artwork', `url("${this.currentArtUrl}")`); + // 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}")`); + // document.querySelector('.app-playback-controls .artwork').style.setProperty('--artwork', `url("${this.currentArtUrl}")`); } catch (e) { } } @@ -3900,10 +4072,10 @@ const app = new Vue({ }, quickPlay(query) { let self = this - MusicKit.getInstance().api.search(query, {limit: 2, types: 'songs'}).then(function (data) { + 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} + parameters: { l: app.mklang } }).then(function (queue) { MusicKit.getInstance().play() setTimeout(() => { @@ -4088,7 +4260,7 @@ const app = new Vue({ 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"} + 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" @@ -4107,36 +4279,36 @@ const app = new Vue({ 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) - } - }, + { + "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: [ { @@ -4168,7 +4340,7 @@ const app = new Vue({ "icon": "./assets/feather/radio.svg", "name": app.getLz('action.startRadio'), "action": function () { - app.mk.setStationQueue({song: app.mk.nowPlayingItem.id}).then(() => { + app.mk.setStationQueue({ song: app.mk.nowPlayingItem.id }).then(() => { app.mk.play() app.selectedMediaItems = [] }) @@ -4231,7 +4403,7 @@ const app = new Vue({ "name": app.getLz('settings.option.audio.audioLab'), "hidden": true, "action": function () { - app.appRoute('audiolabs') + app.openSettingsPage('audiolabs') } }, ] @@ -4255,7 +4427,15 @@ const app = new Vue({ this.showMenuPanel(menus[useMenu], event) try { - let result = await this.inLibrary([this.mk.nowPlayingItem]) + // if its a radio station, then change the attributes to match a song + const nowPlayingItem = JSON.parse(JSON.stringify(this.mk.nowPlayingItem)) + if (nowPlayingItem.type == "radioStation" && app.mk.nowPlayingItem.id != -1) { + nowPlayingItem.type = "song" + nowPlayingItem.attributes.playParams.catalogId = app.mk.nowPlayingItem.id + nowPlayingItem.attributes.playParams.id = app.mk.nowPlayingItem.id + nowPlayingItem.id = app.mk.nowPlayingItem.id + } + let result = await this.inLibrary([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 @@ -4282,36 +4462,43 @@ const app = new Vue({ } }, - 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; - }); + openSettingsPage(page) { + switch (page) { + case "general": + this.$store.state.pageState.settings.currentTabIndex = 0 + break; + case "audio": + this.$store.state.pageState.settings.currentTabIndex = 1 + break; + case "audiolabs": + this.$store.state.pageState.settings.currentTabIndex = 2 + break; + case "styles": + this.$store.state.pageState.settings.currentTabIndex = 3 + break; + case "visual": + this.$store.state.pageState.settings.currentTabIndex = 4 + break; + case "github-plugins": + this.$store.state.pageState.settings.currentTabIndex = 5 + break; + case "lyrics": + this.$store.state.pageState.settings.currentTabIndex = 6 + break; + case "connectivity": + this.$store.state.pageState.settings.currentTabIndex = 7 + break; + case "advanced": + this.$store.state.pageState.settings.currentTabIndex = 8 + break; + case "keybindings": + this.$store.state.pageState.settings.currentTabIndex = 9 + break; + case "github-themes": + this.$store.state.pageState.settings.currentTabIndex = 10 + break; + } + app.modals.settings = true }, fullscreen(flag) { this.fullscreenState = flag; @@ -4524,9 +4711,32 @@ const app = new Vue({ app.mk._services.mediaItemPlayback._currentPlayer._playAssetURL(src, false) } } + }, + confirm(message, callback) { + bootbox.confirm(this.getBootboxParams(null, message, callback)); + }, + prompt(title, callback) { + bootbox.prompt(this.getBootboxParams(title, null, callback)); + }, + getBootboxParams(title, message, callback) { + return { + title: title, + message: message, + buttons: { + confirm: { + label: app.getLz('dialog.ok'), + }, + cancel: { + label: app.getLz('dialog.cancel'), + }, + }, + callback: function (result) { + if (callback) callback(result); + }, + } } } }) -export {app} +export { app } diff --git a/src/renderer/main/vuex-store.js b/src/renderer/main/vuex-store.js index bb608759..8263f065 100644 --- a/src/renderer/main/vuex-store.js +++ b/src/renderer/main/vuex-store.js @@ -1,5 +1,6 @@ const store = new Vuex.Store({ state: { + windowRelativeScale: 1, library: { // songs: ipcRenderer.sendSync("get-library-songs"), // albums: ipcRenderer.sendSync("get-library-albums"), @@ -12,6 +13,10 @@ const store = new Vuex.Store({ nextUrl: null, items: [], size: "normal" + }, + settings: { + currentTabIndex: 0, + fullscreen: false } }, artwork: { @@ -19,6 +24,11 @@ const store = new Vuex.Store({ } }, mutations: { + resetRecentlyAdded(state) { + state.pageState.recentlyAdded.loaded = false; + state.pageState.recentlyAdded.nextUrl = null; + state.pageState.recentlyAdded.items = []; + }, setLCDArtwork(state, artwork) { state.artwork.playerLCD = artwork } diff --git a/src/renderer/main/wsapi_interop.js b/src/renderer/main/wsapi_interop.js index 4439d956..c0bd0954 100644 --- a/src/renderer/main/wsapi_interop.js +++ b/src/renderer/main/wsapi_interop.js @@ -118,6 +118,76 @@ const wsapi = { }, getmaxVolume() { ipcRenderer.send('wsapi-returnvolumeMax',JSON.stringify(app.cfg.audio.maxVolume)); + }, + getLibraryStatus(kind, id) { + if (kind === undefined || id === "no-id-found") return; + + let truekind = (!kind.endsWith("s")) ? (kind + "s") : kind; + app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/?ids[${truekind}]=${id}`, { + relate: "library", + fields: "inLibrary" + }).then(data => { + const res = data.data.data[0]; + const inLibrary = res && res.attributes && res.attributes.inLibrary; + + app.getRating({ type: truekind, id: id }).then(rating => { + ipcRenderer.send('wsapi-libraryStatus', inLibrary, rating); + }) + }) + }, + rate(kind, id, rating) { + if (kind === undefined || id === "no-id-found") return; + + let truekind = (!kind.endsWith("s")) ? (kind + "s") : kind; + + if (rating === 0) { + app.mk.api.v3.music(`/v1/me/ratings/${truekind}/${id}`, {}, { + fetchOptions: { + method: "DELETE", + } + }).then(function () { + ipcRenderer.send('wsapi-rate', kind, id, rating); + }) + } else { + app.mk.api.v3.music(`/v1/me/ratings/${truekind}/${id}`, {}, { + fetchOptions: { + method: "PUT", + body: JSON.stringify({ + "type": "rating", + "attributes": { + "value": rating + } + }) + } + }).then(function () { + ipcRenderer.send('wsapi-rate', kind, id, rating); + }) + } + }, + changeLibrary(kind, id, shouldAdd) { + if (shouldAdd) { + app.addToLibrary(id); + ipcRenderer.send('wsapi-change-library', kind, id, shouldAdd); + } else { + let truekind = (!kind.endsWith("s")) ? (kind + "s") : kind; + + app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/?ids[${truekind}]=${id}`, { + relate: "library", + fields: "inLibrary" + }) + .then(res => { + res = res.data.data[0] + if (res && res.relationships && res.relationships.library && res.relationships.library.data) { + const item = res.relationships.library.data[0]; + + if (item) { + app.removeFromLibrary(kind, item.id) + } + + ipcRenderer.send('wsapi-change-library', kind, id, shouldAdd); + } + }); + } } } diff --git a/src/renderer/style.less b/src/renderer/style.less index 4f2fc85e..b974dca2 100644 --- a/src/renderer/style.less +++ b/src/renderer/style.less @@ -1,9 +1,9 @@ @import url("assets/fonts/Pretendard/pretendardvariable.css"); -@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100;300;400;500;700;900&display=swap'); -@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@100;300;400;500;700;900&display=swap"); -@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+JP: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("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+SC:wght@100;300;400;500;700;900&display=swap"); +// @import url("lib/quasar/quasar.min.css"); @import url("less/appvars.less"); @import url("less/bootstrap-vue.min.less"); @import url("less/ameframework.less"); @@ -15,62 +15,65 @@ @import url("less/pages.less"); :root { - --appleEase: cubic-bezier(0.42, 0, 0.58, 1); - --mediaItemShadow: inset 0px 0px 0px 1px rgb(200 200 200 / 16%); - --mediaItemShadow-Shadow: 0 8px 40px rgb(0 0 0 / 0.55); + --windowRelativeScale : 1; + --appleEase : cubic-bezier(0.42, 0, 0.58, 1); + --borderColor : rgb(200 200 200 / 16%); + --mediaItemShadow : inset 0px 0px 0px 1px rgb(200 200 200 / 16%); + --mediaItemShadow-Shadow : 0 8px 40px rgb(0 0 0 / 0.55); --mediaItemShadow-ShadowSubtle: 0 4px 14px rgb(0 0 0 / 10%); - --ciderShadow-Generic: var(--mediaItemShadow), 0 8px 40px rgb(0 0 0 / 0.55); - --mediaItemRadius: 8px; - --mediaItemRadiusSmall: 6px; - --mediaItemRadiusMedium: 8px; - --mediaItemRadiusRound: 100%; - --panelRadius: 10px; - --contentInnerPadding: 16px; - --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%); + --ciderShadow-Generic : var(--mediaItemShadow), 0 8px 40px rgb(0 0 0 / 0.55); + --mediaItemRadius : 8px; + --mediaItemRadiusSmall : 6px; + --mediaItemRadiusMedium : 8px; + --mediaItemRadiusRound : 100%; + --panelRadius : 10px; + --contentInnerPadding : 16px; + --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%); // --keyColor: #fa586a; - --keyColorDefault: @keyColor; - --keyColor: @keyColor; - --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); - --keyColor-primary: #ff2b52a6; - --navigationBarHeight: 0px; - --modalBackground: #262626; - --songProgressColor: var(--keyColor); - --songProgressBackground: #333; - --textColor: #eee; - --replayGradient: linear-gradient(45deg, hsl(248deg 58% 29%), hsl(13deg 41% 42%)); - --glassFilter: blur(16px) saturate(180%); - --sidebarWidth: 260px; + --keyColorDefault : @keyColor; + --keyColor : @keyColor; + --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); + --keyColor-primary : #ff2b52a6; + --navigationBarHeight : 0px; + --modalBackground : #262626; + --songProgressColor : var(--keyColor); + --songProgressBackground : #333; + --textColor : #eee; + --replayGradient : linear-gradient(45deg, hsl(248deg 58% 29%), hsl(13deg 41% 42%)); + --glassFilter : blur(16px) saturate(180%); + --glassFilterHeavy : blur(64px) saturate(280%); + --sidebarWidth : 260px; } *:focus-visible { - outline:2px solid var(--keyColor); + outline: 2px solid var(--keyColor); } html, body { - margin: 0; - padding: 0; - overflow: hidden; - width: 100%; - height: 100%; - box-sizing: border-box; - background-size: cover; + margin : 0; + padding : 0; + overflow : hidden; + width : 100%; + height : 100%; + box-sizing : border-box; + background-size : cover; background-position: center; - background: #0000; - font-family: "Pretendard Variable", -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; - transition: opacity .10s var(--appleEase); + background : #0000; + font-family : "Pretendard Variable", "Noto Sans JP", "Noto Sans KR", "Noto Sans TC", "Noto Sans SC", -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; + transition : opacity .10s var(--appleEase); } @@ -79,9 +82,9 @@ a:-webkit-any-link { } hr { - appearance: none; - border: none; - height: 1px; + appearance : none; + border : none; + height : 1px; background-color: rgb(255 255 255 / 20%); } @@ -100,14 +103,14 @@ body.stopanimation * { } body.notransparency::before { - content: ""; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - opacity: 0.5; - display: none; + content : ""; + position : absolute; + top : 0; + left : 0; + right : 0; + bottom : 0; + opacity : 0.5; + display : none; 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==); } @@ -120,7 +123,7 @@ body.notransparency::before { /* Modern style overlay scrollbars */ ::-webkit-scrollbar { - width: 16px; + width : 16px; height: 24px; } @@ -133,54 +136,54 @@ body.notransparency::before { } ::-webkit-scrollbar-thumb { - background: transparent; - border: 6px solid transparent; - box-shadow: inset 0px 0px 10px 10px rgb(200 200 200 / 50%); + background : transparent; + border : 6px solid transparent; + box-shadow : inset 0px 0px 10px 10px rgb(200 200 200 / 50%); border-radius: 16px; - min-height: 64px; - transition: border 1s; + min-height : 64px; + transition : border 1s; } ::-webkit-scrollbar-thumb:hover { - border: 5px solid transparent; + border : 5px solid transparent; box-shadow: inset 0px 0px 10px 10px rgb(200 200 200 / 80%); } [disabled] { pointer-events: none; - opacity: 0.5; + opacity : 0.5; } #app { @panelBrightness : 0%; @panelTransparency: 50%; - @msColor1 : #202020; - @msColor2 : #272727; - @msColor3 : #2b2b2b; + @msColor1 : #202020; + @msColor2 : #272727; + @msColor3 : #2b2b2b; --panelColor1 : darken(mix(@msColor1, transparent, @panelTransparency), @panelBrightness); --panelColor2 : darken(mix(@msColor2, transparent, @panelTransparency), @panelBrightness); - --color1 : var(--panelColor2); - --color2 : var(--panelColor1); - --color3 : rgb(0 0 0 / 20%); - --bgColor: transparent; - --bgWidth: 0px; - --bgHeight: 0px; - --chromeHeight1: 55px; - --chromeHeight2: 0px; - --chromeHeight: calc(var(--chromeHeight1) + var(--chromeHeight2)); - width: 100%; - height: 100%; - background: transparent; - color: var(--textColor); - user-select: none; - margin: 0 auto; - position: relative; - overflow: hidden; - background-size: 400% 400%; + --color1 : var(--panelColor2); + --color2 : var(--panelColor1); + --color3 : rgb(0 0 0 / 20%); + --bgColor : transparent; + --bgWidth : 0px; + --bgHeight : 0px; + --chromeHeight1 : 55px; + --chromeHeight2 : 0px; + --chromeHeight : calc(var(--chromeHeight1) + var(--chromeHeight2)); + width : 100%; + height : 100%; + background : transparent; + color : var(--textColor); + user-select : none; + margin : 0 auto; + position : relative; + overflow : hidden; + background-size : 400% 400%; &.simplebg { background: #0e0e0e; - } + } } .bgGradientMaterial-base { @@ -188,24 +191,25 @@ body.notransparency::before { } .bgGradientMaterial-base::before { - position: absolute; - top: -50%; - left: -50%; - width: 200%; - height: 250%; + position : absolute; + top : -50%; + left : -50%; + width : 200%; + height : 250%; background-image: var(--bgColor); - content: ""; - z-index: -1; - transform: rotateZ(0deg); + content : ""; + z-index : -1; + transform : rotateZ(0deg); transform-origin: center; - animation: bgRotate 10s linear infinite; - filter: brightness(100%) saturate(200%) contrast(1.5); + animation : bgRotate 10s linear infinite; + filter : brightness(100%) saturate(200%) contrast(1.5); } @keyframes bgRotate { 0% { transform: rotateZ(0deg); } + 100% { transform: rotateZ(360deg); } @@ -215,28 +219,29 @@ body.notransparency::before { display: none !important; } -input[type="text"], input[type="number"] { - background: #1c1c1c; +input[type="text"], +input[type="number"] { + background : #1c1c1c; border-radius: 3px; - border: 1px solid rgb(200 200 200 / 25%); - color: #eee; - padding: 6px; - font-size: 1em; - font-family: inherit; + border : 1px solid rgb(200 200 200 / 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; + position : absolute; + top : 0; + left : 0; + width : 100%; + height : 100%; + background : #222; + z-index : -1; + background-size : cover; background-position: center; - opacity: 0.70; + opacity : 0.70; } a.dropdown-item { @@ -244,23 +249,24 @@ a.dropdown-item { &:hover { background-color: var(--selected); - color: var(--textColor); + color : var(--textColor); } + &:active { background-color: var(--selected-click); } } .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; + 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; } @@ -268,6 +274,7 @@ a.dropdown-item { 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } @@ -275,26 +282,26 @@ a.dropdown-item { .bg-artwork-container { - position: absolute; - top: 0; - left: 0; - bottom: 0; - right: 0; + position : absolute; + top : 0; + left : 0; + bottom : 0; + right : 0; pointer-events: none; - transform: translateZ(0px); - z-index: -1; + transform : translateZ(0px); + z-index : -1; .bg-artwork.a { - top: 0; - left: 0; + top : 0; + left : 0; //mix-blend-mode: luminosity; } .bg-artwork.b { - bottom: 0; - right: 0; + bottom : 0; + right : 0; animation-direction: reverse; - animation-delay: 10s; + animation-delay : 10s; } &.noanimation { @@ -305,27 +312,27 @@ a.dropdown-item { } .artworkMaterial { - position: relative; - height: 100%; - width: 100%; - overflow: hidden; + position : relative; + height : 100%; + width : 100%; + overflow : hidden; pointer-events: none; - > img { + img { position: absolute; - width: 200%; - opacity: 0.5; - filter: brightness(200%) blur(180px) saturate(280%) contrast(2); + width : 200%; + opacity : 0.5; + filter : brightness(200%) blur(180px) saturate(280%) contrast(2); } - > img:first-child { - top: 0; + img:first-child { + top : 0; left: 0; } - > img:last-child { - bottom: 0; - right: 0; + img:last-child { + bottom : 0; + right : 0; transform: rotate(180deg); } } @@ -333,33 +340,33 @@ a.dropdown-item { [artwork-hidden] { transition: opacity .25s var(--appleEase); - opacity: 0; + 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; + 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: rgb(255 255 255); - cursor: ew-resize; - box-shadow: 0 0 2px 0 #555; + height : 20px; + width : 20px; + border-radius : 50%; + background : rgb(255 255 255); + 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; + box-shadow : none; + border : none; + background : transparent; } .nopadding { @@ -367,50 +374,50 @@ input[type=range].web-slider::-webkit-slider-runnable-track { } #app-main { - display: flex; - width: 100%; - height: 100%; - flex-direction: column; - opacity: 1; - overflow: hidden; + display : flex; + width : 100%; + height : 100%; + flex-direction : column; + opacity : 1; + overflow : hidden; background-color: rgba(20 20 20 / .7); } #app-sidebar { - height: 100%; - width: var(--sidebarWidth); - display: flex; + height : 100%; + width : var(--sidebarWidth); + display : flex; flex-direction: column; - flex: 0 0 auto; - position: relative; - background: linear-gradient(180deg, var(--baseColorMix) calc(var(--chromeHeight1) + 1px), var(--sidebarColorMix) calc(var(--chromeHeight1) + 1px)); - max-width: var(--sidebarWidth); - padding-top: var(--chromeHeight1); + flex : 0 0 auto; + position : relative; + background : linear-gradient(180deg, var(--baseColorMix) calc(var(--chromeHeight1) + 1px), var(--sidebarColorMix) calc(var(--chromeHeight1) + 1px)); + max-width : var(--sidebarWidth); + padding-top : var(--chromeHeight1); } #app-navbar { - height: 40px; - width: 100%; - background: rgb(30 30 30 / 85%); - position: sticky; - top: 0px; - left: 0; - z-index: 2; + height : 40px; + width : 100%; + background : rgb(30 30 30 / 85%); + position : sticky; + top : 0px; + left : 0; + z-index : 2; backdrop-filter: blur(16px) saturate(180%); } #app-content { --navigationBarHeight: var(--chromeHeight1); - background-color: var(--baseColorMix); - height: 100%; - width: 100%; - overflow-y: scroll; - overflow-y: overlay; - overflow-x: hidden; - border-radius: 0; - border-left: 1px solid var(--baseColorMix); + background-color : var(--baseColorMix); + height : 100%; + width : 100%; + overflow-y : scroll; + overflow-y : overlay; + overflow-x : hidden; + border-radius : 0; + border-left : 1px solid var(--baseColorMix); // border-top: 1px solid rgb(0 0 0 / 25%); - position: relative; + position : relative; &::-webkit-scrollbar-track-piece { margin-top: var(--chromeHeight1); @@ -418,29 +425,31 @@ input[type=range].web-slider::-webkit-slider-runnable-track { } .app-drawer { - width: 300px; - flex: 0 0 auto; - position: absolute; - right: 16px; - background: var(--color2); - border-radius: 12px; - z-index: 10; + width : 300px; + flex : 0 0 auto; + position : absolute; + right : 16px; + background : var(--color2); + border-radius : 12px; + z-index : 10; backdrop-filter: blur(40px) saturate(180%); - box-shadow: var(--ciderShadow-Generic); - overflow: hidden; - height: calc(calc(100% - 6%) - var(--chromeHeight1)); - top: calc(var(--chromeHeight1) + 3%); + box-shadow : var(--ciderShadow-Generic); + overflow : hidden; + height : calc(calc(100% - 6%) - var(--chromeHeight1)); + top : calc(var(--chromeHeight1) + 3%); .bgArtworkMaterial { - display: none; + display : none; position: absolute; - width: 100%; - height: 100%; + width : 100%; + height : 100%; .bg-artwork-container .bg-artwork { filter: brightness(80%) blur(180px) saturate(180%) contrast(1); } } + + transition: .3s var(--appleEase); } .search-input-container { @@ -448,58 +457,58 @@ input[type=range].web-slider::-webkit-slider-runnable-track { } .search-input { - width: 100%; - padding: 6px; + width : 100%; + padding : 6px; border-radius: 6px; - border: 1px solid rgba(100, 100, 100, 0.35); - border-top: 1px solid rgba(100, 100, 100, 0.5); + border : 1px solid rgba(100, 100, 100, 0.35); + border-top : 1px solid rgba(100, 100, 100, 0.5); border-bottom: 1px solid rgb(60 60 60 / 62%); - font-family: inherit; - font-size: 14px; - background: #1e1e1e99; - color: #c8c8c8; - font-weight: 500; - padding-left: 32px; - position: relative; + font-family : inherit; + font-size : 14px; + background : #1e1e1e99; + color : #c8c8c8; + font-weight : 500; + padding-left : 32px; + position : relative; } .search-input:focus { - outline: none; + 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'); + 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; + background-repeat : no-repeat; + background-size : 12px; + pointer-events : none; + opacity : 0.55; } .app-sidebar-header { - font-size: 14px; - padding: 11px; + font-size : 14px; + padding : 11px; font-weight: 600; } .app-sidebar-header-text { - font-size: 11px; - padding: 6px 6px; - font-weight: 600; - opacity: 0.5; - background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDYiIGhlaWdodD0iNDYiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZmZmZiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aCBkPSJtNiA5IDYgNiA2LTYiPjwvcGF0aD4KPC9zdmc+"); - background-size: 16px; - background-repeat: no-repeat; + font-size : 11px; + padding : 6px 6px; + font-weight : 600; + opacity : 0.5; + background-image : url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDYiIGhlaWdodD0iNDYiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZmZmZiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aCBkPSJtNiA5IDYgNiA2LTYiPjwvcGF0aD4KPC9zdmc+"); + background-size : 16px; + background-repeat : no-repeat; background-position: 98%; - border-radius: 3px; + border-radius : 3px; &.collapsed { background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDYiIGhlaWdodD0iNDYiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZmZmZiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aCBkPSJtOSAxOCA2LTYtNi02Ij48L3BhdGg+Cjwvc3ZnPg=="); @@ -516,14 +525,15 @@ input[type=range].web-slider::-webkit-slider-runnable-track { .app-sidebar-footer { border-top: 1px solid rgba(200, 200, 200, 0.15); - padding: 11px; + padding : 11px; .app-playback-controls { margin: 0 auto; + .control-buttons { - display: flex; + display : flex; justify-content: center; - align-content: center; + align-content : center; } .volume { @@ -532,55 +542,59 @@ input[type=range].web-slider::-webkit-slider-runnable-track { } &.collapseTab { - display:flex; - padding:6px; - border:0; + display: flex; + padding: 6px; + border : 0; + >button { - appearance: none; - width: 100%; - position: relative; + appearance : none; + width : 100%; + position : relative; padding-left: 40px; - text-align: left; - font-family: inherit; + text-align : left; + font-family : inherit; + &:hover { background-color: var(--selected); } + &:active { background-color: var(--selected-click); } + &:after { - content: ''; - display: flex; + content : ''; + display : flex; justify-content: center; - align-items: center; - width: 46px; - height: 100%; - position: absolute; - top: 0; - left: 0; - font-weight: bold; - font-size: 1em; - font-family: "codicon"; + align-items : center; + width : 46px; + height : 100%; + position : absolute; + top : 0; + left : 0; + font-weight : bold; + font-size : 1em; + font-family : "codicon"; } } } } .app-sidebar-button { - width: 100%; - padding: 0px; - font-family: inherit; - display: flex; + width : 100%; + padding : 0px; + font-family : inherit; + display : flex; border-radius: 6px; - border: 1px solid rgb(200 200 200 / 5%); - background: rgb(100 100 100 / 25%); - color: #eee; - font-weight: 500; - align-items: center; + border : 1px solid rgb(200 200 200 / 5%); + background : rgb(100 100 100 / 25%); + color : #eee; + font-weight : 500; + align-items : center; &.active { background: rgb(200 200 200 / 15%); - animation: usermenuBtnClick .30s cubic-bezier(0.36, 0, 0.66, -0.56); + animation : usermenuBtnClick .30s cubic-bezier(0.36, 0, 0.66, -0.56); } } @@ -598,93 +612,95 @@ input[type=range].web-slider::-webkit-slider-runnable-track { } } -.app-sidebar-button > .sidebar-user-icon { - width: 32px; - height: 32px; - border-radius: 100%; +.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; + 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; +.app-sidebar-button>.sidebar-user-text { + width : 100%; + display : flex; + font-size : 14px; flex-direction: column; - text-align: center; - margin-right: 35px; + text-align : center; + margin-right : 35px; } -.app-sidebar-button > .sidebar-user-text .fullname { +.app-sidebar-button>.sidebar-user-text .fullname { text-align: left; } -.app-sidebar-button > .sidebar-user-text .handle-text { - font-size: 12px; - opacity: 0.7; +.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; + text-align : center; + font-size : 12px; + 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: 10px 0px; + align-items : center; + border-top : 1px solid rgb(200 200 200 / 15%); + background : rgb(0 0 0 / 15%); + flex-direction : column; + padding : 10px 0px; &.libraryNotification { flex-direction: row; - padding: 0px; + padding : 0px; .message { flex-grow: 1; } .spinner { - width: 46px; - height: 30px; + width : 46px; + height : 30px; margin-left: 1em; } } } .app-sidebar-content { - padding: 8px; + padding : 8px; overflow-y: scroll; overflow-y: overlay; - height: 100%; + height : 100%; } #cmenu() { .container { - position: absolute; - left: 0px; - width: var(--sidebarWidth); + position : absolute; + left : 0px; + width : var(--sidebarWidth); max-width: var(--sidebarWidth); - padding: 10px; - z-index: 1; + padding : 10px; + z-index : 1; } .body { - background: rgb(30 30 30 / 45%); - padding: 6px; - border-radius: var(--panelRadius); - width: 100%; - box-shadow: var(--ciderShadow-Generic); + background : rgb(30 30 30 / 45%); + padding : 6px; + border-radius : var(--panelRadius); + width : 100%; + box-shadow : var(--ciderShadow-Generic); backdrop-filter: var(--glassFilter); - animation: cmenuBodyIn .5s var(--appleEase); + animation : cmenuBodyIn .5s var(--appleEase); + @keyframes cmenuBodyIn { 0% { background: rgb(30 30 30); } + 100% { background: rgb(30 30 30 / 45%); } @@ -692,18 +708,18 @@ input[type=range].web-slider::-webkit-slider-runnable-track { } .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; + 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; + margin : 2px 0px; &:hover { background: var(--selected); @@ -725,7 +741,7 @@ input[type=range].web-slider::-webkit-slider-runnable-track { } .usermenu-container { - top: var(--chromeHeight1); + top : var(--chromeHeight1); z-index: 200001 !important; #cmenu.container(); @@ -737,47 +753,47 @@ input[type=range].web-slider::-webkit-slider-runnable-track { .usermenu-item-icon { position: relative; - top: 1.5px; - right: 3px; - display: table-cell; + top : 1.5px; + right : 3px; + display : table-cell; } .usermenu-item-name { - position: relative; - bottom: 2px; + position : relative; + bottom : 2px; padding-left: 5px; - display: table-cell; + display : table-cell; } } } } .context-menu { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; + position : absolute; + top : 0; + left : 0; + width : 100%; + height : 100%; background: rgba(0, 0, 0, 0.0); - z-index: 100; + z-index : 100; .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; + 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; + margin : 2px 0px; &:hover { background: var(--selected); - cursor: pointer; + cursor : pointer; } &:active { @@ -786,23 +802,23 @@ input[type=range].web-slider::-webkit-slider-runnable-track { } .context-menu-body { - background: #242424; - padding: 6px; + background : #242424; + padding : 6px; border-radius: 6px; - box-shadow: var(--ciderShadow-Generic); + box-shadow : var(--ciderShadow-Generic); &.context-menu-open { - animation-duration: .10s; - animation-name: contextMenuIn; + animation-duration : .10s; + animation-name : contextMenuIn; animation-iteration-count: 1; - animation-easings: var(--appleEase); + animation-easings : var(--appleEase); } &.context-menu-close { - animation-duration: .10s; - animation-name: contextMenuOut; + animation-duration : .10s; + animation-name : contextMenuOut; animation-iteration-count: 1; - animation-easings: var(--appleEase); + animation-easings : var(--appleEase); } } } @@ -810,42 +826,42 @@ input[type=range].web-slider::-webkit-slider-runnable-track { @keyframes contextMenuIn { 0% { transform: scale(0.9); - opacity: 0; + opacity : 0; } 100% { transform: scale(1); - opacity: 1; + opacity : 1; } } @keyframes contextMenuOut { 0% { transform: scale(1); - opacity: 1; + opacity : 1; } 100% { transform: scale(0.9); - opacity: 0; + opacity : 0; } } .hidden-opacity { opacity: 0; - height: 0px; - width: 0px; - margin: 0px; + height : 0px; + width : 0px; + margin : 0px; } .spinner { - background-image: url("assets/spinner.svg"); + background-image : url("assets/spinner.svg"); background-position: center; - background-repeat: no-repeat; - background-size: contain; - width: 50px; - height: 50px; - display: inline-block; + background-repeat : no-repeat; + background-size : contain; + width : 50px; + height : 50px; + display : inline-block; } .app-sidebar-content::-webkit-scrollbar { @@ -857,149 +873,157 @@ input[type=range].web-slider::-webkit-slider-runnable-track { } .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; + --iconSize : 18px; + 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; - align-items: center; + background : transparent; + color : #eee; + transition : transform 0.1s; + text-align : left; + align-items : center; + gap : 12px; + position: relative; &.app-sidebar-item-playlist { -webkit-user-drag: element; - overflow: hidden; - text-overflow: ellipsis; + overflow : hidden; + text-overflow : ellipsis; .presentNotice { - align-self: center; - margin-left: 8px; + align-self : center; + margin-left : 8px; text-transform: uppercase; - font-size: 0.7em; - opacity: 0.6; + font-size : 0.7em; + opacity : 0.6; } } + >._svg-icon { + --size: var(--iconSize); + } + } .app-sidebar-item:hover { - border: 1px solid rgb(200 200 200 / 0%); + 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 / 0%); - background: rgb(150 150 150 / 15%); + border : 1px solid rgb(200 200 200 / 0%); + background : rgb(150 150 150 / 15%); // transform: scale(0.98); - transition: transform 0s; + transition : transform 0s; } .app-sidebar-item.active { - border: 1px solid rgb(200 200 200 / 0%); + border : 1px solid rgb(200 200 200 / 0%); background: rgb(200 200 200 / 15%); - transform: scale(1); + transform : scale(1); transition: transform 0s; - cursor: default; + cursor : default; } .app-chrome { background-color: var(--baseColorMix); - box-shadow: 0px 3px 6px rgb(20 20 20 / 12%), + box-shadow : 0px 3px 6px rgb(20 20 20 / 12%), 0px 1px 0px 0px rgb(200 200 200 / 12%); - width: 100%; - height: var(--chromeHeight1); - display: flex; - flex-direction: row; + width : 100%; + height : var(--chromeHeight1); + display : flex; + flex-direction : row; -webkit-app-region: drag; - z-index: 4; + z-index : 4; &:not(.chrome-bottom) { // box-shadow: 0px 0px - z-index: 16; - position: fixed; + z-index : 16; + position : fixed; backdrop-filter: var(--glassFilter); .app-chrome--center { - flex:1; + flex: 1; } -} + } -.top-nav-group { - background: var(--baseColor); - border: 1px solid lighten(@baseColor, 8); + .top-nav-group { + background : var(--baseColor); + border : 1px solid lighten(@baseColor, 8); border-radius: 10px; - display: flex; - height: 32px; + display : flex; + height : 32px; .app-sidebar-item { - background-color: var(--baseColor); - border-radius: 10px!important; - border:0px; - min-width: 120px; - padding:6px; - justify-content: center; - align-items: center; - margin: 0px; - height: 100%; + background-color: var(--baseColor); + border-radius : 10px !important; + border : 0px; + min-width : 120px; + padding : 6px; + justify-content : center; + align-items : center; + margin : 0px; + height : 100%; - &:hover { - background-color: lighten(@baseColor, @colorMixRate * 5); - } + &:hover { + background-color: lighten(@baseColor, @colorMixRate * 5); + } - &.active { - background-color: lighten(@baseColor, @colorMixRate * 5); - } + &.active { + background-color: lighten(@baseColor, @colorMixRate * 5); + } - &.md-btn-primary { - box-shadow: 0px 0px 0px 1px lighten(@baseColor, @colorMixRate * 8); - background-color: lighten(@baseColor, @colorMixRate * 5); - z-index: 1; - } + &.md-btn-primary { + box-shadow : 0px 0px 0px 1px lighten(@baseColor, @colorMixRate * 8); + background-color: lighten(@baseColor, @colorMixRate * 5); + z-index : 1; + } } -} + } .vdiv { - width: 1px; + width : 1px; background: white; - opacity: 0.25; - height: 50%; - margin: 6px; + opacity : 0.25; + height : 50%; + margin : 6px; } } .mv-chrome { - position: absolute; - top: 0; - right: 0; - width: 90%; - height: 55px; + 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; + height : 100%; + width : 100%; + display : flex; justify-content: center; - align-items: center; + align-items : center; } .app-chrome .app-chrome--left { - width: 30%; - justify-content: left; + width : 30%; + justify-content : left; -webkit-app-region: drag; } .app-chrome .app-chrome--center { + //width: 40%; .app-title-text { font-size: 0.8em; @@ -1007,27 +1031,27 @@ input[type=range].web-slider::-webkit-slider-runnable-track { } .app-chrome .app-chrome--right { - width: 30%; + width : 30%; justify-content: right; } .app-chrome .app-chrome-item { - height: 100%; - width: auto; - display: flex; - justify-content: center; - align-items: center; + height : 100%; + width : auto; + display : flex; + justify-content : center; + align-items : center; -webkit-app-region: no-drag; - height: auto; + height : auto; &.generic { - width: 50px; + width : 50px; opacity: 0.70; } &.volume { - width: 100px; + width : 100px; margin-right: 6px; } @@ -1037,96 +1061,98 @@ input[type=range].web-slider::-webkit-slider-runnable-track { } .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-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.70; - border-radius: 6px; + background-repeat : no-repeat; + opacity : 0.70; + border-radius : 6px; } -.volume-button:active, .volume-button--small:active { +.volume-button:active, +.volume-button--small:active { transform: scale(0.9); } -.volume-button.active, .volume-button--small.active { +.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; + 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.70; - background-image: url("./assets/feather/volume-2.svg"); + background-color : transparent; + height : 15px; + width : 30px; + border : 0px; + box-shadow : unset; + opacity : 0.70; + background-image : url("./assets/feather/volume-2.svg"); } -.app-chrome .app-chrome-item.volume > input[type=range]::-webkit-slider-thumb { +.app-chrome .app-chrome-item.volume>input[type=range]::-webkit-slider-thumb { -webkit-appearance: none; - height: 14px; - width: 14px; - border-radius: 50%; - background: #A5A8BA; - box-shadow: 0px 0px 0px 1px rgba(0 0 0 / 10%); - cursor: default; - transition: all var(--appleTransition); + height : 14px; + width : 14px; + border-radius : 50%; + background : #A5A8BA; + box-shadow : 0px 0px 0px 1px rgba(0 0 0 / 10%); + cursor : default; + transition : all var(--appleTransition); } -.app-chrome .app-chrome-item.volume > input[type=range] { +.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%, + 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 { +.app-chrome .app-chrome-item.volume>input[type=range]::-webkit-slider-runnable-track { -webkit-appearance: none; - box-shadow: none; - border: none; - background: transparent; + box-shadow : none; + border : none; + background : transparent; } .app-chrome .back-button { height: 100%; - width: 60px; + width : 60px; } .app-chrome .app-chrome-item.full-height { height: 100%; } -.app-chrome .app-chrome-item > .app-mainmenu { - width: 34px; - font-size: 13px; - background: url("./assets/CiderMenu.svg"); - background-size: auto; - background-repeat: no-repeat; +.app-chrome .app-chrome-item>.app-mainmenu { + width : 34px; + font-size : 13px; + background : url("./assets/CiderMenu.svg"); + background-size : auto; + background-repeat : no-repeat; background-position: center; - height: 34px; - margin-right: 16px; - margin-left: 16px; - margin-top: 1.5px; - border: 0px; - border-radius: 6px; - transition: transform .1s var(--appleEase); - position: relative; + height : 34px; + margin-right : 16px; + margin-left : 16px; + margin-top : 1.5px; + border : 0px; + border-radius : 6px; + transition : transform .1s var(--appleEase); + position : relative; // &:after { // content: ""; @@ -1147,69 +1173,70 @@ input[type=range].web-slider::-webkit-slider-runnable-track { transform: scale(1.1); } - &:active, &.active { + &:active, + &.active { border-radius: 100%; - transform: scale(1.1); - outline: 2px solid var(--keyColor); + transform : scale(1.1); + outline : 2px solid var(--keyColor); } } -.app-chrome .app-chrome-item > .window-controls { - width: 138px; +.app-chrome .app-chrome-item>.window-controls { + width : 138px; font-size: 13px; - height: 100%; - display: flex; + height : 100%; + display : flex; &-macos { width: 100px; } -} -.app-chrome .app-chrome-item > .window-controls > div { - height: 100%; - width: 32px; -} + >div { + height: 100%; + width : 32px; -.app-chrome .app-chrome-item > .window-controls > div:hover { - background: rgb(200 200 200 / 10%); -} + &:hover { + background: rgb(200 200 200 / 10%); + } -.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; + &.close { + width : 100%; + height : 100%; + background-image : var(--gfx-closeBtn); + background-position: center; + background-repeat : no-repeat; + -webkit-app-region : no-drag; - &:hover { - background-color: rgb(196, 43, 28) + &:hover { + background-color: rgb(196, 43, 28) + } + } + + &.minmax { + background-image : var(--gfx-maxBtn); + background-position: center; + background-repeat : no-repeat; + -webkit-app-region : no-drag; + width : 100%; + height : 100%; + } + + &.minmax.restore { + background-image: var(--gfx-restoreBtn); + } + + &.minimize { + background-image : var(--gfx-minBtn); + 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 { - 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 { +body[platform="darwin"] .app-chrome .app-chrome-item>.window-controls>div.minimize { display: none; } @@ -1217,130 +1244,140 @@ body[platform="darwin"] .app-chrome .app-chrome-item > .window-controls > div.mi // display: none; //} -body[platform="darwin"] .app-chrome .app-chrome-item > .window-controls > div.minmax { +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 { +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 rgb(200 200 200 / 8%); - border-right: 1px solid rgb(200 200 200 / 8%); + width : 80%; + height : 90%; + display : flex; + 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 { - display: flex; - justify-content: center; - align-content: center; - width: 100%; +.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 { - .info-rect{ - mask-image: linear-gradient(-90deg, transparent 0%, black 10%, black 90%, transparent 100%); +.app-chrome .app-chrome-item>.app-playback-controls { + .info-rect { + mask-image : linear-gradient(-90deg, transparent 0%, black 10%, black 90%, transparent 100%); -webkit-mask-image: linear-gradient(-90deg, transparent 3%, black 10%, black 90%, transparent 100%); - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - width:100%; + display : flex; + flex-direction : column; + justify-content : center; + align-items : center; + width : 100%; } + .song-name { font-weight: 600; - text-align: center; - font-size: 13px; - height: 1.3em; + text-align : center; + font-size : 13px; + height : 1.3em; line-height: 1.3em; white-space: nowrap; - max-width: 360px; + max-width : 360px; .song-name-normal { height: inherit; } &.song-artist-marquee { - > marquee { + >marquee { //margin-bottom: -3px; } } .explicit-icon { - background-image: url("./assets/explicit.svg"); - height: 9px; - width: 13px; - filter: contrast(0); + background-image : url("./assets/explicit.svg"); + height : 9px; + width : 13px; + filter : contrast(0); background-repeat: no-repeat; - margin-left: 3px; + margin-left : 3px; } .heart-icon { - height: 9px; - width: 13px; - filter: contrast(0); + height : 9px; + width : 13px; + filter : contrast(0); background-repeat: no-repeat; - margin-left: 3px; + margin-left : 3px; } } .lossless-icon { background-image: url("./assets/lossless.svg") !important; + margin-left : 0.5em !important; + flex : 1; } .ppe-icon { background-image: url("./assets/ppe.svg") !important; - margin-left: 0.5em !important; - flex: 1; + margin-left : 0.5em !important; + flex : 1; + } + .spatial-icon { + background-image: url("./assets/spatialization.svg") !important; + margin-left : 0.5em !important; + flex : 1; } .private-icon { background-image: url("./assets/private.svg") !important; - margin-left: 0.5em !important; - flex: 1; + margin-left : 0.5em !important; + flex : 1; } .chrome-icon-container { - display: flex; + display : flex; position: absolute; - right: 0px; + right : 0px; } .audio-type { - filter: contrast(0); + filter : contrast(0); background-repeat: no-repeat; - background-size: contain; - height: 15px; - width: 15px; - margin-bottom: 15px; + background-size : contain; + height : 15px; + width : 15px; + margin-bottom : 15px; + z-index : 1; } } + // Add Music Video Icons to Songs that are Music Videos div[data-type="library-music-videos"] .info-rect .title::before, div[data-type="musicVideo"] .info-rect .title::before { - content: ""; - background-image: url(./assets/feather/video.svg); - background-size: contain; - filter:invert(0.6); - display: inline-block; - width: 20px; - height: 20px; - margin-bottom: -4px; + content : ""; + background-image: url(./assets/feather/video.svg); + background-size : contain; + filter : invert(0.6); + display : inline-block; + width : 20px; + height : 20px; + margin-bottom : -4px; } -.app-chrome .app-chrome-item > .app-playback-controls .song-duration p { +.app-chrome .app-chrome-item>.app-playback-controls .song-duration p { font-weight: 400; - font-size: 10px; - height: 1.2em; + font-size : 10px; + height : 1.2em; line-height: 1.3em; - overflow: hidden; - margin: 0 0 0 0.25em; + overflow : hidden; + margin : 0 0 0 0.25em; } .app-playback-controls:hover .marquee { @@ -1366,7 +1403,7 @@ div[data-type="musicVideo"] .info-rect .title::before { .marquee { - animation: marquee 15s linear 2s infinite; + animation: marquee 15s linear 2s infinite; &.song-artist { overflow: unset; @@ -1386,51 +1423,51 @@ div[data-type="musicVideo"] .info-rect .title::before { } -.app-chrome .app-chrome-item > .app-playback-controls .song-progress { - @bgColor: transparent; +.app-chrome .app-chrome-item>.app-playback-controls .song-progress { + @bgColor : transparent; //height: 16px; - position: absolute; - bottom: 0px; - left: 0px; + position : absolute; + bottom : 0px; + left : 0px; background: @bgColor; &:hover { - > input[type=range] { + >input[type=range] { &::-webkit-slider-thumb { - opacity: 1; + opacity : 1; transform: scale(1); - z-index: 1; + z-index : 1; } } } - > input[type=range] { - appearance: none; - width: 100%; - height: 4px; + >input[type=range] { + appearance : none; + width : 100%; + height : 4px; background-color: rgb(200 200 200 / 10%); - border-radius: 2px; - margin: 0; + border-radius : 2px; + margin : 0; &::-webkit-slider-thumb { - opacity: 0; - transform: scale(0.5); + 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); + appearance : none; + width : 12px; + height : 12px; + border-radius : 100%; + background : var(--songProgressColor); + cursor : default; + transition : opacity .10s var(--appleEase), transform .10s var(--appleEase); } &::-moz-range-thumb { - width: 8px; - height: 8px; + width : 8px; + height : 8px; border-radius: 100%; - background: var(--keyColor); - cursor: default; + background : var(--songProgressColor); + cursor : default; } } } @@ -1445,42 +1482,46 @@ div[data-type="musicVideo"] .info-rect .title::before { } } -.app-chrome .app-chrome-item > .app-playback-controls .artwork { - width: 42px; - height: 42px; - background-image: var(--artwork); +.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; + background-size : contain; + background-repeat : no-repeat; + border-radius : var(--mediaItemRadiusSmall); + flex : 0 0 auto; + margin : 6px; + image-rendering : -webkit-optimize-contrast; + + .mediaitem-artwork { + border-radius: var(--mediaItemRadiusSmall); + } } -.app-chrome .app-chrome-item > .app-playback-controls .actions { - width: 42px; - height: 42px; - border-radius: 2px; - flex: 0 0 auto; - margin: 6px; - display: flex; +.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); + align-items : center; + filter : contrast(0.8); .lcdMenu { - height: 100%; - width: 100%; - padding: 0px; - margin: 0px; - background: transparent; - border: 0px; - appearance: none; - display: flex; + 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; + align-items : center; + border-radius : 6px; &:focus { outline: none; @@ -1492,7 +1533,7 @@ div[data-type="musicVideo"] .info-rect .title::before { &:active { background: var(--selected-click); - transform: scale(0.95); + transform : scale(0.95); } .svg-icon { @@ -1501,17 +1542,17 @@ div[data-type="musicVideo"] .info-rect .title::before { } } -.app-chrome .app-chrome-item > .app-playback-controls .playback-info { - width: 100%; - display: flex; +.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; + align-items : center; + flex-direction : column; + position : relative; + overflow : hidden; } -.app-chrome .app-chrome-item > .app-playback-controls .playback-info > .song-progress { +.app-chrome .app-chrome-item>.app-playback-controls .playback-info>.song-progress { width: 100%; } @@ -1519,31 +1560,31 @@ div[data-type="musicVideo"] .info-rect .title::before { background : transparent; align-items : center; justify-content: center; - background: var(--color1); - height: calc(100% - var(--chromeHeight2)); - width: 100%; - display: flex; - position: relative; + background : var(--color1); + height : calc(100% - var(--chromeHeight2)); + width : 100%; + display : flex; + position : relative; } -.app-chrome .app-chrome-item > .app-playback-controls .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; +.app-chrome .app-chrome-item>.app-playback-controls .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; + width : 80%; + max-width : 340px; + overflow : hidden; .song-artist-album-content { font-weight: 400; - font-size: 12px; - text-align: center; - width: 100%; + font-size : 12px; + text-align : center; + width : 100%; &.song-artist-normal { height: inherit; @@ -1552,7 +1593,7 @@ div[data-type="musicVideo"] .info-rect .title::before { &.song-artist-marquee { - > marquee { + >marquee { margin-bottom: -3px; } } @@ -1568,66 +1609,67 @@ div[data-type="musicVideo"] .info-rect .title::before { input[type="range"].web-slider.display--small::-webkit-slider-thumb { -webkit-appearance: none; - height: 14px; - width: 14px; - border-radius: 50%; - background: rgb(50 50 50); - cursor: default; - box-shadow: inset 0px 0px 0px 1px rgba(255, 255, 255, 0.4); + height : 14px; + width : 14px; + border-radius : 50%; + background : rgb(50 50 50); + 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: inherit !important; + ; .slider { - width: 100%; + width : 100%; z-index: 1; } .input-container { - display: flex; + display : flex; justify-content: center; - align-items: center; - width: 100%; - padding-bottom: 10px; + align-items : center; + width : 100%; + padding-bottom : 10px; } 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; + height : 4px; + background : rgba(255, 255, 255, 0.4); + border-radius : 5px; + background-size : 70% 100%; + background-repeat : no-repeat; &::-webkit-slider-thumb { -webkit-appearance: none; - height: 14px; - width: 14px; - border-radius: 50%; - background: rgb(50 50 50); - cursor: default; - box-shadow: inset 0px 0px 0px 1px rgba(255, 255, 255, 0.4); - transition: all var(--appleTransition); + height : 14px; + width : 14px; + border-radius : 50%; + background : rgb(50 50 50); + cursor : default; + box-shadow : inset 0px 0px 0px 1px rgba(255, 255, 255, 0.4); + transition : all var(--appleTransition); } &::-webkit-slider-thumb:hover { - background-image: radial-gradient(var(--keyColor) 2px, transparent 3px, transparent 10px); - transform: scale(1.2); + background-image: radial-gradient(var(--songProgressColor) 2px, transparent 3px, transparent 10px); + transform : scale(1.2); } &::-webkit-slider-thumb:active { - background-image: radial-gradient(var(--keyColor) 3px, transparent 4px, transparent 10px); - transform: scale(1); + background-image: radial-gradient(var(--songProgressColor) 3px, transparent 4px, transparent 10px); + transform : scale(1); } &::-webkit-slider-runnable-track { -webkit-appearance: none; - box-shadow: none; - border: none; - background: transparent; + box-shadow : none; + border : none; + background : transparent; } } } @@ -1638,50 +1680,50 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { } } -.flex-center { - display: flex; +.cider-flex-center { + display : flex; align-items: center; - flex-wrap: wrap; + flex-wrap : wrap; } .md-container { - width: 100%; + width : 100%; position: relative; } .lyric-body { -webkit-mask-image: -webkit-gradient(linear, left 95%, left bottom, from(rgba(0, 0, 0, 1)), to(rgba(0, 0, 0, 0))); - overflow-y: scroll; - overflow-x: hidden; - display: flex; - flex-flow: column; - font-family: "Pretendard Variable", -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; + overflow-y : scroll; + overflow-x : hidden; + display : flex; + flex-flow : column; + font-family : "Pretendard Variable", "Noto Sans JP", "Noto Sans KR", "Noto Sans TC", "Noto Sans SC", -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; } .lyric-body .no-lyrics { - width: 100%; + width : 100%; justify-content: center; - align-items: center; - font-weight: bold; - font-size: 26px; + align-items : center; + font-weight : bold; + font-size : 26px; } .lyric-line { - --bgSpeed: 1s; - appearance: none; - color: white; - font-size: 26px; - transform: scale(0.8); + --bgSpeed : 1s; + appearance : none; + color : white; + font-size : 26px; + transform : scale(0.8); transform-origin: left center; - transition: transform 0.5s var(--appleEase); - opacity: 0.75; - width: auto; - display: inline-block; - margin: 10px; - margin-left: 5%; - margin-right: 0px; - overflow-wrap: break-word; + transition : transform 0.5s var(--appleEase); + opacity : 0.75; + width : auto; + display : inline-block; + margin : 10px; + margin-left : 5%; + margin-right : 0px; + overflow-wrap : break-word; } .lyric-line.active .verse { @@ -1689,7 +1731,7 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { } .lyric-line.active .verse.verse-active { - opacity: 1; + opacity : 1; transition: opacity 0.35s var(--appleEase); } @@ -1698,25 +1740,25 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { } .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; + 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); + --bgSpeed : 1s; + opacity : 1; + transform : scale(1); /*background: var(--keyColor);*/ - transition: transform 0.2s var(--appleEase), opacity 0.35s var(--appleEase); + transition : transform 0.2s var(--appleEase), opacity 0.35s var(--appleEase); } .lyric-line:not(.active) { @@ -1732,61 +1774,63 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { } -.lyric-body:hover > .lyric-line:not(.active) { +.lyric-body:hover>.lyric-line:not(.active) { filter: none !important; } -.lyric-body > .lyric-line:not(.active) { + +.lyric-body>.lyric-line:not(.active) { // transition: filter var(--appleEase) 0.5s ease; } .lyricWaiting { - margin-bottom:10px; - display: none; + margin-bottom: 10px; + display : none; } .lyric-line.active .lyricWaiting { - display: inline-flex; + 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; +.lyric-line.active .lyricWaiting>div { + width : 10px; + height : 10px; + background : white; border-radius: 50%; - margin: 3px; + margin : 3px; } .lyrics-translation { - font-size: 1.6rem; + font-size : 1.6rem; font-weight: 450; - font-family: "Pretendard Variable", -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; - filter: contrast(0.5); + font-family: "Pretendard Variable", "Noto Sans JP", "Noto Sans KR", "Noto Sans TC", "Noto Sans SC", -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', 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); + bottom : 0; + height : 50px; + width : 100%; + position : absolute; + z-index : 1000; + opacity : 1; + background-image: linear-gradient(180deg, transparent, rgba(30, 30, 30, 0.8)); justify-content: center; - align-items: center; - display: none; - transition: opacity 0.1s var(--appleEase); + align-items : center; + display : none; + transition : opacity 0.1s var(--appleEase); } -.lyric-body:hover + .lyric-footer, .lyric-footer:hover { +.lyric-body:hover+.lyric-footer, +.lyric-footer:hover { display: flex; } .modular-fs .app-drawer .lyric-footer { background: unset; - display: flex; - opacity: 0.3; + display : flex; + opacity : 0.3; } .modular-fs .app-drawer .lyric-footer:hover { @@ -1794,23 +1838,23 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { } .modular-fs .app-drawer .lyric-body .no-lyrics { - height: 100%; + height : 100%; display: flex; } @keyframes lyricWaitingLine { 0% { - opacity: 0.25; + opacity : 0.25; transform: scale(0.85); } 50% { - opacity: 1; + opacity : 1; transform: scale(1); } 100% { - opacity: 0.25; + opacity : 0.25; transform: scale(0.85); } } @@ -1827,20 +1871,20 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { .lyric-line2:before { - background: var(--keyColor); - content: ''; - width: 0%; - height: 6px; - position: absolute; - bottom: -8px; - left: 0; + background : var(--keyColor); + content : ''; + width : 0%; + height : 6px; + position : absolute; + bottom : -8px; + left : 0; border-radius: 10px; - z-index: -1; - transition: width var(--bgSpeed); + z-index : -1; + transition : width var(--bgSpeed); } .lyric-line2.active:before { - width: 100%; + width : 100%; transition: width var(--bgSpeed); } @@ -1851,64 +1895,105 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { /* 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; + 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; + align-items : center; &:hover { filter: brightness(125%); } &:active { - filter: brightness(75%); - transform: scale(0.98); + filter : brightness(75%); + transform : scale(0.98); transition: transform 0s var(--appleEase), box-shadow 0.2s var(--appleEase); } .svg-icon { - width: 100%; + width : 100%; background: #eee; - --url: url("./views/svg/more.svg"); + --url : url("./views/svg/more.svg"); + } +} + +.social-btn { + border-radius : 100%; + background : transparent; + height : 17px; + border : 0px; + cursor : pointer; + z-index : 69; + display : flex; + justify-content: center; + align-items : center; + float : right; +} + +@media only screen and (min-width: 1133px) and (max-width: 1277px) { + .about-page { + .social-btn { + display: none !important; + } } } .about-page { .teamBtn { - display: flex; + display : flex; align-items: center; - width: 100%; - font-size: 14px; - padding: 6px 16px; - margin: 4px; + width : 100%; + font-size : 14px; + padding : 6px 16px; + margin : 4px; - > img { - width: 30px; - margin: 0px 16px 0px 0px; - pointer-events: none; - border-radius: 100%; - box-shadow: var(--mediaItemShadow); + >img { + width : 30px; + margin : 0px 16px 0px 0px; + pointer-events : none; + border-radius : 100%; + box-shadow : var(--mediaItemShadow); image-rendering: -webkit-optimize-contrast; } } .sponsorBtn { - display: inline-flex; + display : inline-flex; justify-content: center; - align-items: center; + align-items : center; - > img { - width: 26px; - margin: 0px 16px 0px 0px; + >img { + width : 26px; + margin : 0px 16px 0px 0px; pointer-events: none; } + + &.githubBtn { + background-color: #211F1F; + } + + &.kofiBtn { + background-color: #FBAA19; + } + + &.opencollectiveBtn { + background-color: #7fadf2; + } + + &.discordBtn { + background-color: #5865F2; + } + + &.twitterBtn { + background-color: #1D9BF0; + } } } @@ -1919,64 +2004,64 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { } .folder-body { - background: #ffffff0a; + background : #ffffff0a; border-radius: 10px; - padding: 1px 6px; + padding : 1px 6px; .spinner { - display: block; - width: 100%; - height: 32px; + 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; + 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); //box-shadow: 0px 1px 0px rgba(185, 185, 185, 0.08); - mix-blend-mode: hard-light; + mix-blend-mode : hard-light; .nav-item { - appearance: none; - border: 0px; - height: 32px; - width: 40px; - background: transparent; - padding: 6px; - display: flex; + 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 .10s var(--appleEase); + align-items : center; + color : rgba(200, 200, 200, 0.8); + margin : 2px; + border-radius : 6px; + transition : transform .10s var(--appleEase); &:active { background: var(--selected-click); - transform: scale(0.96); + transform : scale(0.96); transition: transform 0s var(--appleEase); } - > svg { - width: 8px; + >svg { + width : 8px; pointer-events: none; } &:hover { background: var(--selected); - > svg { + >svg { color: rgba(200, 200, 200, 1.0); } } @@ -1984,41 +2069,44 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { } .well { - background: rgba(200, 200, 200, 0.05); + background : rgba(200, 200, 200, 0.05); border-radius: 10px; - padding: var(--contentInnerPadding); - margin-top: 16px; + padding : var(--contentInnerPadding); + margin-top : 16px; &.itemContainer { - display: flex; - flex-flow: wrap; + display : flex; + flex-flow : wrap; justify-content: center; - .cd-mediaitem-square-container{ + + .cd-mediaitem-square-container { align-items: center; } + .cd-mediaitem-square { - width: 220px; - height: 260px; - display: inline-flex; - flex: 0 0 auto; - flex-direction: column; - font-size: 14px; + 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; + align-items : center; + border-radius : 6px; + max-width : 240px; + flex-grow : 1; } &.collection-list-square { - display: grid; + display : grid; grid-template-columns: repeat(4, minmax(200px, 1fr)); // screen size > 1200px @media screen and (min-width: 1500px) { - grid-template-columns: repeat(6, minmax(200px, 1fr)); + grid-template-columns: repeat(5, minmax(200px, 1fr)); } + // less than 1100px @media screen and (max-width: 1150px) { grid-template-columns: repeat(3, minmax(200px, 1fr)); @@ -2027,24 +2115,24 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { } } -.cd-mediaitem-square-container{ - display: inline-flex; - flex-direction: column; +.cd-mediaitem-square-container { + display : inline-flex; + flex-direction : column; justify-content: center; } -.reasonSP{ +.reasonSP { // margin-left: 15px; - color: rgb(167 163 163); + color : rgb(167 163 163); font-weight: 500; margin-left: 15px; } .text-overflow-elipsis { - display: -webkit-box; - min-width: 0px; - overflow: hidden; - text-overflow: ellipsis; + display : -webkit-box; + min-width : 0px; + overflow : hidden; + text-overflow : ellipsis; -webkit-line-clamp: 1; -webkit-box-orient: vertical; } @@ -2053,811 +2141,24 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { 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; - - .fs-row { - flex-grow: 1; - } - - .playback-button--small.active { - background-color: rgb(200 200 200 / 25%); - } - - .playback-button--small { - opacity: 0.7; - } - - .right-col { - height: 50vh; - } - - .bg-artwork-container { - display: block !important; - } - - @media only screen and (max-width: 1121px) { - .display--large { - display: flex !important; - } - } - - .display--large { - display: flex; - - .slider { - width: 100%; - z-index: 1; - } - - .input-container { - display: flex; - justify-content: center; - align-items: center; - width: 100% - } - - .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.70; - background-image: url("./assets/feather/volume-2.svg"); - } - - .volume-button--small:active { - transform: scale(0.9); - } - - .volume-button--small.active { - background-image: url("./assets/feather/volume.svg"); - } - - 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; - - &::-webkit-slider-thumb { - -webkit-appearance: none; - height: 14px; - width: 14px; - border-radius: 50%; - background: rgb(50 50 50); - cursor: default; - box-shadow: inset 0px 0px 0px 1px rgba(255, 255, 255, 0.4); - transition: all var(--appleTransition); - } - - &::-webkit-slider-thumb:hover { - background-image: radial-gradient(var(--keyColor) 2px, transparent 3px, transparent 10px); - transform: scale(1.2); - } - - &::-webkit-slider-thumb:active { - background-image: radial-gradient(var(--keyColor) 3px, transparent 4px, transparent 10px); - transform: scale(1); - } - - &::-webkit-slider-runnable-track { - -webkit-appearance: none; - box-shadow: none; - border: none; - background: transparent; - } - } - } - - - .background { - position: absolute; - background-size: cover; - width: 100%; - height: 100%; - - .bgArtworkMaterial { - position: absolute; - width: 100%; - height: 100%; - - .bg-artwork-container { - z-index: unset; - } - - .bg-artwork-container .bg-artwork { - filter: brightness(85%) saturate(95%) blur(180px) contrast(0.9) opacity(0.9); - } - - - } - } - - .lyrics-col { - - height: 62vh; - display: flex; - justify-content: center; - align-content: center; - width: 80%; - - ::-webkit-scrollbar-thumb { - box-shadow: unset; - } - - &:hover ::-webkit-scrollbar-thumb { - box-shadow: inset 0px 0px 10px 10px rgb(200 200 200 / 50%); - } - - .no-lyrics { - width: 100%; - height: 100%; - display: flex; - justify-content: center; - } - - .lyric-line { - font-size: 35px; - } - - } - - .queue-col { - - width: 60vh; - height: 62vh; - - .queue-title { - opacity: 0.6; - } - - .queue-panel > * { - z-index: 3; - } - - ::-webkit-scrollbar-thumb { - box-shadow: unset; - } - - &:hover ::-webkit-scrollbar-thumb { - box-shadow: inset 0px 0px 10px 10px rgb(200 200 200 / 50%); - } - } - - .tab-toggles { - display: flex; - position: absolute; - bottom: 0; - right: 0; - width: 15vh; - height: 5vh; - justify-content: space-evenly; - - .volume { - background-image: url("./assets/feathers/volume.svg"); - padding: 0.5vh; - width: 2vh; - height: 2vh; - background-origin: content-box; - background-repeat: no-repeat; - } - - .queue { - background-image: url("./assets/list.svg"); - padding: 0.5vh; - width: 2.5vh; - height: 2.5vh; - background-origin: content-box; - background-repeat: no-repeat; - } - - .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; - } - - .active { - background-color: rgba(200, 200, 200, 0.7); - border-radius: 3px; - } - } - - .artwork-col { - justify-content: center; - align-items: center; - display: flex; - flex-direction: column; - - .artwork { - width: 50vh; - height: 50vh; - } - - .controls-parents { - width: 50vh; - } - - .app-playback-controls { - .song-artist, .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; - - .song-name-normal { - height: inherit; - } - - &.song-artist-marquee { - > marquee { - //margin-bottom: -3px; - } - } - } - - .song-artist { - font-size: 0.875em; - font-weight: 400; - } - - .song-name { - width: unset !important; - margin-top: 0.15vh; - display: -webkit-box; - line-height: 1.2; - text-overflow: ellipsis; - text-align: center; - } - } - - .app-playback-controls .playback-info { - margin-top: 0.5vh; - width: 100%; - display: flex; - justify-content: center; - align-items: center; - flex-direction: column; - position: relative; - - input[type="range"] { - width: 100%; - } - - > div { - width: 100%; - text-align: center; - } - - - } - - .app-playback-controls .song-progress { - @bgColor: transparent; - //height: 16px; - position: absolute; - bottom: -1.5vh; - left: 0px; - background: @bgColor; - - .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); - } - - &::-moz-range-thumb { - width: 8px; - height: 8px; - border-radius: 100%; - background: var(--keyColor); - cursor: default; - } - } - } - - .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; - - .fs-row { - flex-grow: 1; - } - - .playback-button--small.active { - background-color: rgb(200 200 200 / 25%); - } - - .player-exit { - z-index: 3; - position: absolute; - top: 5px; - right: 5px; - -webkit-app-region: no-drag; - } - - .player-pin { - z-index: 3; - position: absolute; - min-width: 20px; - min-height: 20px; - top: 5px; - right: 30px; - -webkit-app-region: no-drag; - } - - #mini-pin { - display: none; - } - - .player-pin:hover #mini-pin { - display: block; - } - - .playback-button--small { - opacity: 0.7; - } - - .right-col { - height: 50vh; - } - - @media only screen and (max-width: 1121px) { - .display--large { - display: flex !important; - } - } - - .display--large { - display: flex; - - .slider { - width: 100%; - z-index: 1; - } - - .input-container { - display: flex; - justify-content: center; - align-items: center; - width: 100% - } - - .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.70; - background-image: url("./assets/feather/volume-2.svg"); - } - - .volume-button--small:active { - transform: scale(0.9); - } - - .volume-button--small.active { - background-image: url("./assets/feather/volume.svg"); - } - - 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; - - &::-webkit-slider-thumb { - -webkit-appearance: none; - height: 14px; - width: 14px; - border-radius: 50%; - background: rgb(50 50 50); - cursor: default; - box-shadow: inset 0px 0px 0px 1px rgba(255, 255, 255, 0.4); - transition: all var(--appleTransition); - } - - &::-webkit-slider-thumb:hover { - background-image: radial-gradient(var(--keyColor) 2px, transparent 3px, transparent 10px); - transform: scale(1.2); - } - - &::-webkit-slider-thumb:active { - background-image: radial-gradient(var(--keyColor) 3px, transparent 4px, transparent 10px); - transform: scale(1); - } - - &::-webkit-slider-runnable-track { - -webkit-appearance: none; - box-shadow: none; - border: none; - background: transparent; - } - } - } - - - .background { - position: absolute; - background-size: cover; - width: 100%; - height: 100%; - -webkit-user-select: none; - -webkit-app-region: drag; - - .bgArtworkMaterial { - position: absolute; - width: 100%; - height: 100%; - - .bg-artwork-container { - z-index: unset; - } - - .bg-artwork-container .bg-artwork { - filter: brightness(85%) saturate(95%) blur(180px) contrast(0.9) opacity(0.9); - } - - .no-animation { - animation: unset; - } - } - } - - - .lyrics-col { - - height: 62vh; - display: flex; - justify-content: center; - align-content: center; - width: 80%; - - ::-webkit-scrollbar-thumb { - box-shadow: unset; - } - - &:hover ::-webkit-scrollbar-thumb { - box-shadow: inset 0px 0px 10px 10px rgb(200 200 200 / 50%); - } - - .no-lyrics { - width: 100%; - height: 100%; - display: flex; - justify-content: center; - } - - .lyric-line { - font-size: 35px; - } - - } - - .queue-col { - - width: 60vh; - height: 50vh; - - .queue-title { - opacity: 0.6; - } - - .queue-panel > * { - z-index: 3; - } - - ::-webkit-scrollbar-thumb { - box-shadow: unset; - } - - &:hover ::-webkit-scrollbar-thumb { - box-shadow: inset 0px 0px 10px 10px rgb(200 200 200 / 50%); - } - } - - .tab-toggles { - display: flex; - position: absolute; - bottom: 0; - right: 0; - width: 15vh; - height: 5vh; - justify-content: space-evenly; - - .volume { - background-image: url("./assets/feathers/volume.svg"); - padding: 0.5vh; - width: 2vh; - height: 2vh; - background-origin: content-box; - background-repeat: no-repeat; - } - - .queue { - background-image: url("./assets/list.svg"); - padding: 0.5vh; - width: 2.5vh; - height: 2.5vh; - background-origin: content-box; - background-repeat: no-repeat; - } - - .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; - } - - .active { - background-color: rgba(200, 200, 200, 0.7); - border-radius: 3px; - } - } - - .artwork-col { - justify-content: center; - align-items: center; - display: flex; - flex-direction: column; - - .artwork { - width: 100%; - height: 100%; - - .mediaitem-artwork { - border-radius: unset; - } - } - - .controls-parents { - width: 100%; - position: absolute; - background: #0000009e; - backdrop-filter: blur(10px); - bottom: 0px; - z-index: 3; - opacity: 0; - padding: 3%; - - &:hover { - opacity: 1; - } - } - - - .app-playback-controls { - -webkit-app-region: no-drag; - - .song-artist, .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; - - .song-name-normal { - height: inherit; - } - - &.song-artist-marquee { - > marquee { - //margin-bottom: -3px; - } - } - } - - .song-artist { - font-size: 0.875em; - font-weight: 400; - } - - .song-name { - width: unset !important; - margin-top: 0.15vh; - display: -webkit-box; - line-height: 1.2; - text-overflow: ellipsis; - text-align: center; - } - } - - .app-playback-controls .playback-info { - margin-top: 0.5vh; - width: 100%; - display: flex; - justify-content: center; - align-items: center; - flex-direction: column; - position: relative; - - input[type="range"] { - width: 100%; - } - - > div { - width: 100%; - text-align: center; - } - - - } - - .app-playback-controls .song-progress { - @bgColor: transparent; - //height: 16px; - position: absolute; - bottom: -3.5vh; - left: 0px; - background: @bgColor; - - .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); - } - - &::-moz-range-thumb { - width: 8px; - height: 8px; - border-radius: 100%; - background: var(--keyColor); - cursor: default; - } - } - } - - .control-buttons { - margin-top: 3.5vh; - display: inline-flex; - width: 100%; - justify-content: center; - } - - } -} +@import url("less/fullscreen.less"); +@import url("less/miniplayer.less"); // Cider App #micaEffect { - opacity:1; + opacity : 1; // animation: micaEnter 1s ease-in-out forwards; - filter: brightness(1) saturate(320%); + filter : brightness(1) saturate(320%); + @keyframes micaEnter { 0% { - opacity: 0; + opacity : 0; transform: translateY(10px); } + 100% { - opacity: 1; + opacity : 1; transform: translateY(0px); } } @@ -2877,63 +2178,65 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { // Modular .modular-fs { .app-chrome.chrome-bottom { - position: fixed; - bottom: 0; - left: 0; - z-index: 14!important; + position : fixed; + bottom : 0; + left : 0; + z-index : 14 !important; backdrop-filter: var(--glassFilter); } + .app-navigation { height: 100%; } + .app-drawer { - width: 100%; - right: 0px; - top: 0px; - height: 100%; + width : 100%; + right : 0px; + top : 0px; + height : 100%; border-radius: 0px; - box-shadow: unset; - background: black; + box-shadow : unset; + background : black; .bgArtworkMaterial { display: block; &::before { - top: -50%; - left: -20%; - width: 200VH; + top : -50%; + left : -20%; + width : 200VH; height: 200VH; } - .bg-artwork-container{ + .bg-artwork-container { display: block !important; } } .lyric-body { justify-content: center; - align-items: center; - padding: 0px; - margin: 0px; - overflow: hidden; - filter: drop-shadow(0px 4px 6px rgb(0 0 0 / 70%)); + align-items : center; + padding : 0px; + margin : 0px; + overflow : hidden; + filter : drop-shadow(0px 4px 6px rgb(0 0 0 / 70%)); .lyric-line { - pointer-events: none; - font-weight: 600; - font-size: 2em; + pointer-events : none; + font-weight : 600; + font-size : 2em; transform-origin: center; - animation: fsLyricIn var(--appleEase) .2s; - opacity: 0.9; + animation : fsLyricIn var(--appleEase) .2s; + opacity : 0.9; &:not(.active) { - display: none; - margin: 0; + display : none; + margin : 0; transform: scale(1); } &.active { - margin: 0; + margin : 0; transform: scale(1); } } @@ -2943,11 +2246,12 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { @keyframes fsLyricIn { 0% { - opacity: 0; + opacity : 0; transform: scale(0.98) } + 100% { - opacity: 1; + opacity : 1; transform: scale(1); } } @@ -2963,7 +2267,7 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { .replaycard-enter, .replaycard-leave-to { - opacity: 0; + opacity : 0; transform: translateY(20px); } @@ -2984,7 +2288,7 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { .modal-enter, .modal-leave-to { - opacity: 0; + opacity : 0; transform: scale(1.10); } @@ -3000,40 +2304,40 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { .wpfade_transform-enter-active, .wpfade_transform-leave-active { - --transitionTime: 0.2s; - transition : opacity var(--transitionTime) var(--appleEase); - will-change : opacity, transform; + --transitionTime: 0.2s; + transition : opacity var(--transitionTime) var(--appleEase); + will-change : opacity, transform; } .wpfade_transform-enter { - opacity : 0; - transform : unset; - will-change: opacity; + opacity : 0; + transform : unset; + will-change: opacity; } .wpfade_transform-leave-to { - opacity : 0; - transform : unset; - will-change: opacity; + opacity : 0; + transform : unset; + will-change: opacity; } .wpfade_transform_backwards-enter-active, .wpfade_transform_backwards-leave-active { - --transitionTime: 0.2s; - transition : opacity var(--transitionTime) var(--appleEase); + --transitionTime: 0.2s; + transition : opacity var(--transitionTime) var(--appleEase); } .wpfade_transform_backwards-enter { - opacity : 0; - transform : unset; - will-change: opacity; + opacity : 0; + transform : unset; + will-change: opacity; } .wpfade_transform_backwards-leave-to { - opacity : 0; - transform : unset; - will-change: opacity; + opacity : 0; + transform : unset; + will-change: opacity; } .fabfade-enter-active, @@ -3043,7 +2347,7 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { .fabfade-enter, .fabfade-leave-to { - opacity: 0; + opacity : 0; transform: scale(0.5); } @@ -3055,7 +2359,7 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { .fsModeSwitch-enter, .fsModeSwitch-leave-to { transform: scale(1.10); - opacity: 0; + opacity : 0; } .sidebartransition-enter-active, @@ -3078,215 +2382,227 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { transform: translateX(400px); } -@media (prefers-color-scheme: dark) { - -} +@media (prefers-color-scheme: dark) {} :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-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'); + --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: 100%; - bottom: 0; - z-index: 100000; + position : absolute; + float : left; + display : none; + width : 100%; + height : 100%; + bottom : 0; + z-index : 100000; } #apple-music-video-container { // AM Web Style Fullscreen Button #player-fullscreen { - background-size : 50%; - background-position: center; - background-repeat : no-repeat; - filter : opacity(0.6); - // filter: drop-shadow(0px 0px 4px rgb(0 0 0 / 80%)); - background-color : transparent; - border-radius : 10px; - transition : 0.2s ease-in-out filter; - bottom : 0; + background-size : 50%; + background-position: center; + background-repeat : no-repeat; + filter : opacity(0.6); + // filter: drop-shadow(0px 0px 4px rgb(0 0 0 / 80%)); + background-color : transparent; + border-radius : 10px; + transition : 0.2s ease-in-out filter; + bottom : 0; - &:hover { - filter : opacity(1); - transition: 0.2s ease-in-out filter; - } + &:hover { + filter : opacity(1); + transition: 0.2s ease-in-out filter; + } } // AM Web Style PiP Button #player-pip { - background-color: transparent; - border-radius : 10px; - bottom : 0; - filter : opacity(0.6); - transition : 0.2s ease-in-out filter; + background-color: transparent; + border-radius : 10px; + bottom : 0; + filter : opacity(0.6); + transition : 0.2s ease-in-out filter; - &:hover { - filter : opacity(1); - transition: 0.2s ease-in-out filter; - } + &:hover { + filter : opacity(1); + transition: 0.2s ease-in-out filter; + } } - .playback-info{ - position: absolute; - width:100%; - bottom: 0; - padding: 20px 40px; - background-image: linear-gradient(to bottom, rgba(0,0,0,0) 0%,rgba(0,0,0,0.5) 50%); - .song-artist{ - font-size: 1.7rem; - font-weight: bold; - } - .song-name{ - font-size: 1.2rem; - font-weight: bold; - color:rgb(255,255,255,0.8); - } + + .playback-info { + position : absolute; + width : 100%; + bottom : 0; + padding : 20px 40px; + background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.5) 50%); + + .song-artist { + font-size : 1.7rem; + font-weight: bold; + } + + .song-name { + font-size : 1.2rem; + font-weight: bold; + color : rgb(255, 255, 255, 0.8); + } } - input[type="range"]{ - align-self: center; - height: 4px; - border-radius: .5rem; - margin-inline: 10px; + + input[type="range"] { + align-self : center; + height : 4px; + border-radius: .5rem; + margin-inline: 10px; } - - .song-progress input[type="range"]{ - appearance: initial; - &::-webkit-slider-thumb { - box-shadow: 0px 0px 0px #000000; - border: 1px solid #39404D; - background: #fff; - height:0.7rem; - width:0.7rem; - border-radius: 50%; - cursor: pointer; - -webkit-appearance: none; - } + + .song-progress input[type="range"] { + appearance: initial; + + &::-webkit-slider-thumb { + box-shadow : 0px 0px 0px #000000; + border : 1px solid #39404D; + background : #fff; + height : 0.7rem; + width : 0.7rem; + border-radius : 50%; + cursor : pointer; + -webkit-appearance: none; + } } } #apple-music-video-player { - position: absolute; - top: 50%; - width: 100%; + position : absolute; + top : 50%; + width : 100%; transform: translate(0, -50%); - height: 100%; + height : 100%; } #app.twopanel #apple-music-video-container { - top:0; + top : 0; bottom: unset; } + .inactive { opacity: 0; } + #apple-music-video-player-controls { position: absolute; - z-index: 100001; - float: left; - width: 100%; - height: 100%; - .playback-info{ + z-index : 100001; + float : left; + width : 100%; + height : 100%; + + .playback-info { .song-progress { display: flex; } - .app-chrome-item.display--large{ - position: relative; - display: flex; + + .app-chrome-item.display--large { + position : relative; + display : flex; flex-direction: row; - flex-wrap: nowrap; - align-items: center; + flex-wrap : nowrap; + align-items : center; + .playback-button { - position: absolute; - top: 50%; - left: 50%; + position : absolute; + top : 50%; + left : 50%; transform: translate(-50%, -50%); - padding: 3px; + padding : 3px; } } + .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; + 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; - + width : 80%; + max-width : 340px; + overflow : hidden; + .song-artist-album-content { font-weight: 400; - font-size: 12px; - text-align: center; - width: 100%; - + font-size : 12px; + text-align : center; + width : 100%; + &.song-artist-normal { height: inherit; } } - - + + &.song-artist-marquee { - > marquee { + >marquee { margin-bottom: -3px; } } } - + } } #apple-music-video-player-controls #player-exit { - position: absolute; - z-index: 100001; - float: left; - width: 100%; - margin: 10px; - cursor: pointer; + position : absolute; + z-index : 100001; + float : left; + width : 100%; + margin-left : 10px; + margin-right : 10px; + margin-top : 10px; + margin-bottom: 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%; - display: flex; + position : absolute; + z-index : 100001; + width : 32px; + height : 32px; + margin : 10px; + right : 50px; + border-radius : 100%; + display : flex; justify-content: center; - align-items: center; - cursor: pointer; + align-items : center; + cursor : pointer; } -#apple-music-video-player-controls #player-pip > svg { +#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%; - display: flex; + position : absolute; + z-index : 100001; + width : 32px; + height : 32px; + margin : 10px; + right : 0px; + border-radius : 100%; + display : flex; justify-content: center; - align-items: center; - cursor: pointer; + align-items : center; + cursor : pointer; } -#apple-music-video-player-controls #player-fullscreen > svg { +#apple-music-video-player-controls #player-fullscreen>svg { width: 70%; } @@ -3299,16 +2615,16 @@ img[src=""] { } 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; + 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; } @@ -3319,12 +2635,12 @@ div#captions { .item-navigate:hover { text-decoration: underline; - cursor: pointer; + cursor : pointer; } .title-browse-sp { - width: 100%; - text-align: left; + width : 100%; + text-align : left; margin-bottom: 2px; } @@ -3345,26 +2661,27 @@ div#captions { } body.no-gpu { - --ciderShadow-Generic: var(--mediaItemShadow); - --mediaItemShadow-Shadow: var(--mediaItemShadow); + --ciderShadow-Generic : var(--mediaItemShadow); + --mediaItemShadow-Shadow : var(--mediaItemShadow); --mediaItemShadow-ShadowSubtle: var(--mediaItemShadow); .bg-artwork-container { - display: none; + display : none; animation: none !important; - .bg-artwork{ + + .bg-artwork { animation: none !important; } } .floating-header { - background: black; + background : black; backdrop-filter: unset; } .artworkContainer { - animation: unset!important; - opacity: 0.7; + animation: unset !important; + opacity : 0.7; } .info-rect-card { @@ -3374,27 +2691,28 @@ body.no-gpu { } .menu-panel .menu-panel-body { - background: rgb(30 30 30); + background : rgb(30 30 30); backdrop-filter: unset; } #navigation-bar { backdrop-filter: unset; - mix-blend-mode: unset; - background: rgb(0 0 0); + mix-blend-mode : unset; + background : rgb(0 0 0); } .addtoplaylist-panel { .modal-window { - background: rgb(18 18 18); + background : rgb(18 18 18); backdrop-filter: unset; } } .app-drawer { backdrop-filter: unset; - mix-blend-mode: unset; - background: #1c1c1c; + mix-blend-mode : unset; + background : #1c1c1c; + transition: unset; } .wpfade-enter-active, @@ -3422,51 +2740,50 @@ body.no-gpu { } } -.keybindings-border { - padding-left: 15px; - padding-right: 15px; - border-style: solid; - border-radius: 5px; - border-color: #CBCBCB; -} -.keybinding-text { - width: 95px; - display: flex; - justify-content: center; - align-items: center; -} .qrimg { - width: -webkit-fill-available; + width : -webkit-fill-available; max-block-size: -webkit-fill-available; - object-fit: contain; - overflow-x: hidden; - overflow-y: hidden; + object-fit : contain; + overflow-x : hidden; + overflow-y : hidden; +} + +.moreinfo-modal { + .modal-window { + height: max-content !important; + + .modal-content { + height : max-content !important; + padding-block: 25px; + } + } + } .equalizer-panel { .modal-window { - height: 330px; + height : 330px; max-height: 330px; - width: 740px; - max-width: 800px; - overflow: hidden; + width : 740px; + max-width : 800px; + overflow : hidden; .info-header { padding-left: 12px; } .visual-container { - display: flex; + display : flex; justify-content: center; - align-items: center; - overflow: hidden; + align-items : center; + overflow : hidden; } .modal-header { - padding: 16px; + padding : 16px; position: relative; overflow: hidden; @@ -3475,22 +2792,7 @@ body.no-gpu { } .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) - } + .menu-panel.menu-header-text.close-btn } } @@ -3502,17 +2804,17 @@ body.no-gpu { } .input-container { - display: inline-grid; - width: 54px; + display : inline-grid; + width : 54px; justify-items: center; - font-size: 0.7em; + font-size : 0.7em; } .input-container.mini { - display: inline-grid; - width: 43px; + display : inline-grid; + width : 43px; justify-items: center; - font-size: 0.7em; + font-size : 0.7em; } .freq-header { @@ -3520,30 +2822,30 @@ body.no-gpu { } .reset-button { - width: 50%; + width : 50%; margin-left: 25%; - text-align: center; + text-align : center; } input.eq-slider { -webkit-appearance: slider-vertical; - width: 5%; + width : 5%; } input[type="number"] { padding: unset; - width: 55px; + width : 55px; } .header input.eq-slider { -webkit-appearance: slider-vertical; - width: 5%; - opacity: 0; + width : 5%; + opacity : 0; } } .modal-lowercontent { - padding: 16px; + padding : 16px; background-color: var(--modalBackground); } } @@ -3554,22 +2856,22 @@ body[platform='darwin'] { display: none; } - .app-chrome .app-chrome-item > .app-mainmenu { - opacity: 0; - width: 52px; - pointer-events: none; + .app-chrome .app-chrome-item>.app-mainmenu { + opacity : 0; + width : 52px; + pointer-events : none; -webkit-app-region: drag; } } .percent { - display: inline-block; + display : inline-block; position: relative; } .percent::after { - position: relative; - right: 2em; + position : relative; + right : 2em; transition: all .05s ease-in-out; } @@ -3583,7 +2885,7 @@ body[platform='darwin'] { } .playbackrate-text { - align-items: end; + align-items : end; margin-right: 5px; } @@ -3591,35 +2893,52 @@ body[platform='darwin'] { color: transparent; } -.spatialproperties-panel.modal-fullscreen{ +.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; } -.keybinds-page .md-option-header { - padding: 0px 0px; - border-bottom: unset; - border-top: unset; - font-weight: 600; - background: rgba(255, 255, 255, 0); - font-size: 2em; +.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; +} + +.keybinds-page { + + .md-option-header { + padding : 10px 0px; + border-bottom: unset; + border-top : unset; + font-weight : 600; + background : rgba(255, 255, 255, 0); + font-size : 2em; } + .md-option-header-sub { + padding : 15px 10px; + border-bottom: unset; + border-top : unset; + background : rgba(255, 255, 255, 0); + font-weight : 600; + font-size : 1.7em; + } + + .md-option-line { + padding : 15px 20px; + font-size: 0.90em; + } +} + .content-inner.keybinds-page { - top: var(--navigationBarHeight); + top : var(--navigationBarHeight); padding: 15px; } @@ -3627,4 +2946,4 @@ body[platform='darwin'] { @import url("less/linux.less"); @import url("less/compact.less"); @import url("less/directives.less"); -@import url("less/macosemu.less"); +@import url("less/macosemu.less"); \ No newline at end of file diff --git a/src/renderer/themes/sweetener.less b/src/renderer/themes/sweetener.less index 18e029f4..1d40e315 100644 --- a/src/renderer/themes/sweetener.less +++ b/src/renderer/themes/sweetener.less @@ -57,10 +57,6 @@ .cd-mediaitem-square:not(.mediaitem-card) { transition : transform .2s var(--appleEase); transition-delay: .1s; - padding : 12px; - - // background-color: red; - height: 220px; .artwork-container {} @@ -73,9 +69,16 @@ transition-delay: .05s; } + .artwork-container { + transform : scale(0.962) translateZ(0); + transition : transform .1s var(--appleEase); + transition-delay: 0s; + transform-origin: center; + } + &:hover { .artwork-container { - transform : scale(1.1); + transform : scale(1.0); transition : transform .1s var(--appleEase); transition-delay: 0s; transform-origin: center; diff --git a/src/renderer/views/app/app-content.ejs b/src/renderer/views/app/app-content.ejs deleted file mode 100644 index ed10c736..00000000 --- a/src/renderer/views/app/app-content.ejs +++ /dev/null @@ -1,42 +0,0 @@ -
- - - - <% for(var i=0; i < Object.keys(env.appRoutes).length ; i++) {%> - - v-on:enter="<%- env.appRoutes[i].onEnter %>" - <% - } - %> - :name="chrome.desiredPageTransition"> - - - <% } %> - - - - - - - - - - -
\ 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 9ebaa5ed..2f072641 100644 --- a/src/renderer/views/app/app-navigation.ejs +++ b/src/renderer/views/app/app-navigation.ejs @@ -65,7 +65,7 @@ - + - <%- include("sidebar") %> + - <%- include("app-content") %> +
@@ -138,7 +146,7 @@
-
- - {{ convertTime(getSongProgress()) }} + + {{ convertTime(getSongProgress()) }} + --:-- - {{ convertTime(mk.currentPlaybackDuration) }} + {{ convertTime(mk.currentPlaybackDuration) }} + {{ getLz("term.live") }}
@@ -126,27 +149,27 @@ v-b-tooltip.hover :title="formatVolumeTooltip()">
- + @click="cfg.advanced.AudioContext ? modals.castMenu = true : (cfg.advanced.AudioContext = true, modals.castMenu = true)">
-
diff --git a/src/renderer/views/app/chrome-top.ejs b/src/renderer/views/app/chrome-top.ejs index b1f461a8..1ea16cad 100644 --- a/src/renderer/views/app/chrome-top.ejs +++ b/src/renderer/views/app/chrome-top.ejs @@ -9,26 +9,26 @@
-
@@ -89,10 +91,10 @@
- +
- +
{{ mk.nowPlayingItem["attributes"]["name"] }} @@ -121,7 +123,15 @@
-
+
+
+
+
- + - - + - +
@@ -208,21 +230,21 @@ :title="formatVolumeTooltip()" />
-
-
@@ -230,9 +252,9 @@
- +
\ No newline at end of file diff --git a/src/renderer/views/app/panels.ejs b/src/renderer/views/app/panels.ejs index 972d0546..cd5783a1 100644 --- a/src/renderer/views/app/panels.ejs +++ b/src/renderer/views/app/panels.ejs @@ -25,12 +25,18 @@ + + + + + + diff --git a/src/renderer/views/app/sidebar.ejs b/src/renderer/views/app/sidebar.ejs deleted file mode 100644 index dacff2c8..00000000 --- a/src/renderer/views/app/sidebar.ejs +++ /dev/null @@ -1,303 +0,0 @@ -
- -
diff --git a/src/renderer/views/components/animatedartwork-view.ejs b/src/renderer/views/components/animatedartwork-view.ejs index ef091ee3..6ffc923f 100644 --- a/src/renderer/views/components/animatedartwork-view.ejs +++ b/src/renderer/views/components/animatedartwork-view.ejs @@ -59,7 +59,7 @@ } this.hls.attachMedia(this.$refs.video); - this.hls.loadSource(this.video); + this.hls.loadSource(this.video, p); let u = this.hls; var quality = app.cfg.visual.animated_artwork_qualityLevel; setTimeout(() => { diff --git a/src/renderer/views/components/app-content.ejs b/src/renderer/views/components/app-content.ejs new file mode 100644 index 00000000..481904bf --- /dev/null +++ b/src/renderer/views/components/app-content.ejs @@ -0,0 +1,51 @@ + + + \ No newline at end of file diff --git a/src/renderer/views/components/artist-chip.ejs b/src/renderer/views/components/artist-chip.ejs index 9c2d884b..eed505fc 100644 --- a/src/renderer/views/components/artist-chip.ejs +++ b/src/renderer/views/components/artist-chip.ejs @@ -1,13 +1,15 @@ @@ -21,6 +23,7 @@ }, data: function() { return { + image: false, artist: { id: null } @@ -34,6 +37,7 @@ } app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/artists/${artistId}`).then(response => { this.artist = response.data.data[0]; + this.image = true; }); }, methods: { diff --git a/src/renderer/views/components/artwork-material.ejs b/src/renderer/views/components/artwork-material.ejs index 3cfe9891..9eae3e7c 100644 --- a/src/renderer/views/components/artwork-material.ejs +++ b/src/renderer/views/components/artwork-material.ejs @@ -1,6 +1,6 @@ diff --git a/src/renderer/views/components/audio-controls.ejs b/src/renderer/views/components/audio-controls.ejs index e82ec798..1903f7a5 100644 --- a/src/renderer/views/components/audio-controls.ejs +++ b/src/renderer/views/components/audio-controls.ejs @@ -1,10 +1,10 @@ diff --git a/src/renderer/views/components/listennow-child.ejs b/src/renderer/views/components/listennow-child.ejs index 0a7095d0..629da095 100644 --- a/src/renderer/views/components/listennow-child.ejs +++ b/src/renderer/views/components/listennow-child.ejs @@ -2,10 +2,21 @@
diff --git a/src/renderer/views/components/pagination.ejs b/src/renderer/views/components/pagination.ejs new file mode 100644 index 00000000..4696d50f --- /dev/null +++ b/src/renderer/views/components/pagination.ejs @@ -0,0 +1,175 @@ + + + \ No newline at end of file diff --git a/src/renderer/views/components/pathmenu.ejs b/src/renderer/views/components/pathmenu.ejs new file mode 100644 index 00000000..05e6db0a --- /dev/null +++ b/src/renderer/views/components/pathmenu.ejs @@ -0,0 +1,65 @@ + + \ No newline at end of file diff --git a/src/renderer/views/components/queue.ejs b/src/renderer/views/components/queue.ejs index 1b7274f9..bdd90b62 100644 --- a/src/renderer/views/components/queue.ejs +++ b/src/renderer/views/components/queue.ejs @@ -5,7 +5,7 @@

{{app.getLz('term.queue')}}

{{app.getLz('term.history')}}

-
+
- - + + +

{{$root.getLz('term.socials')}}

- - - + + +

{{$root.getLz('term.ciderTeam')}}

- +
{{ member.role }}
- +
@@ -64,25 +69,29 @@ name: 'cryptofyre', link: 'https://github.com/cryptofyre', role: app.getLz('term.developer'), - avatar: 'https://avatars.githubusercontent.com/u/33162551?v=4' + avatar: 'https://avatars.githubusercontent.com/u/33162551?v=4', + twitter: 'https://twitter.com/cryptofyre' }, { name: 'Core', link: 'https://github.com/coredev-uk', role: app.getLz('term.developer'), - avatar: 'https://avatars.githubusercontent.com/u/64542347?v=4' + avatar: 'https://avatars.githubusercontent.com/u/64542347?v=4', + twitter: 'https://twitter.com/core_hdd' }, { name: 'Quacksire', link: 'https://github.com/quacksire', role: app.getLz('term.developer'), - avatar: 'https://avatars.githubusercontent.com/u/19170969?v=4' + avatar: 'https://avatars.githubusercontent.com/u/19170969?v=4', + twitter: 'https://twitter.com/duckdoquack' }, { name: 'booploops', link: 'https://github.com/booploops', role: app.getLz('term.developer'), - avatar: 'https://avatars.githubusercontent.com/u/49113086?v=4' + avatar: 'https://avatars.githubusercontent.com/u/49113086?v=4', + twitter: 'https://twitter.com/boopl00ps' }, { name: 'vapormusic', @@ -94,25 +103,29 @@ name: 'crypticplank', link: 'https://github.com/crypticplank', role: app.getLz('term.developer'), - avatar: 'https://avatars.githubusercontent.com/u/52553007?v=4' + avatar: 'https://avatars.githubusercontent.com/u/52553007?v=4', + twitter: 'https://twitter.com/crypticplank' }, { name: 'Maikiwi', link: 'https://github.com/maikirakiwi', role: app.getLz('term.developer'), - avatar: 'https://avatars.githubusercontent.com/u/74925636?v=4' + avatar: 'https://avatars.githubusercontent.com/u/74925636?v=4', + twitter: 'https://twitter.com/notmaikiwi' }, { name: 'yazninja', link: 'https://github.com/yazninja', role: app.getLz('term.developer'), - avatar: 'https://avatars.githubusercontent.com/u/71800112?v=4' + avatar: 'https://avatars.githubusercontent.com/u/71800112?v=4', + twitter: 'https://twitter.com/YazNinjaa' }, { name: 'GamingLiamStudios', link: 'https://github.com/GamingLiamStudios', role: app.getLz('term.developer'), - avatar: 'https://avatars.githubusercontent.com/u/58615717?v=4' + avatar: 'https://avatars.githubusercontent.com/u/58615717?v=4', + twitter: 'https://twitter.com/GLStudios_' }, { name: 'Amaru', diff --git a/src/renderer/views/pages/apple-curator.ejs b/src/renderer/views/pages/apple-curator.ejs index 2e13a7de..8223d9e6 100644 --- a/src/renderer/views/pages/apple-curator.ejs +++ b/src/renderer/views/pages/apple-curator.ejs @@ -7,7 +7,7 @@

{{ recom.attributes.name ?? ""}}

-
+
diff --git a/src/renderer/views/pages/artist-feed.ejs b/src/renderer/views/pages/artist-feed.ejs index e2af0b51..d8623f68 100644 --- a/src/renderer/views/pages/artist-feed.ejs +++ b/src/renderer/views/pages/artist-feed.ejs @@ -7,6 +7,10 @@

{{app.getLz('home.followedArtists')}}

+
+ +
+
@@ -14,7 +18,7 @@
{{app.getLz('action.removeFavorite')}}
@@ -53,7 +57,8 @@ app: this.$root, followedArtists: this.$root.cfg.home.followedArtists, artistFeed: [], - artists: [] + artists: [], + syncingFavs: false } }, async mounted() { @@ -61,7 +66,13 @@ await this.getArtistFeed() }, methods: { - unfollow(id) { + async syncFavorites() { + this.syncingFavs = true + await app.syncFavorites() + await this.getArtistFeed() + this.syncingFavs = false + }, + async unfollow(id) { let index = this.followedArtists.indexOf(id) if (index > -1) { this.followedArtists.splice(index, 1) @@ -71,6 +82,16 @@ if (index2 > -1) { this.artists.splice(index2, 1) } + await app.mk.api.v3.music(`/v1/me/favorites`, { + "art[url]": "f", + "ids[artists]": id, + "l": app.mklang, + "platform": "web" + }, { + fetchOptions: { + method: "DELETE" + } + }) this.getArtistFeed() }, async getArtistFeed() { @@ -78,7 +99,7 @@ let self = this this.artists = [] this.artistFeed = [] - + // Apple limits the number of IDs we can provide in a single API call to 50. // Divide it into groups of 50 and send parallel requests let chunks = [] diff --git a/src/renderer/views/pages/artist.ejs b/src/renderer/views/pages/artist.ejs index 8c4757aa..5c273361 100644 --- a/src/renderer/views/pages/artist.ejs +++ b/src/renderer/views/pages/artist.ejs @@ -1,17 +1,17 @@ \ No newline at end of file diff --git a/src/renderer/views/pages/browse.ejs b/src/renderer/views/pages/browse.ejs index 9fd4a450..e5b8f040 100644 --- a/src/renderer/views/pages/browse.ejs +++ b/src/renderer/views/pages/browse.ejs @@ -7,7 +7,7 @@

{{ recom.attributes.name ?? ""}}

-
+
diff --git a/src/renderer/views/pages/charts.ejs b/src/renderer/views/pages/charts.ejs index 0df6f93c..86e4df5f 100644 --- a/src/renderer/views/pages/charts.ejs +++ b/src/renderer/views/pages/charts.ejs @@ -6,7 +6,7 @@

{{ songs.name ?? ""}}

-
+
@@ -20,7 +20,7 @@

{{ albums.name ?? ""}}

-
+
@@ -32,7 +32,7 @@

{{ playlists.name ?? ""}}

-
+
@@ -44,7 +44,7 @@

{{ musicvideos.name ?? ""}}

-
+
@@ -56,7 +56,7 @@

{{ globalcharts.name ?? ""}}

-
+
@@ -68,7 +68,7 @@

{{ citycharts.name ?? ""}}

-
+
diff --git a/src/renderer/views/pages/cider-multiroom.ejs b/src/renderer/views/pages/cider-multiroom.ejs index 4c8b306b..0fd16e33 100644 --- a/src/renderer/views/pages/cider-multiroom.ejs +++ b/src/renderer/views/pages/cider-multiroom.ejs @@ -1,18 +1,19 @@ + \ No newline at end of file diff --git a/src/renderer/views/pages/groupings.ejs b/src/renderer/views/pages/groupings.ejs index 3c05eefb..9c243a4f 100644 --- a/src/renderer/views/pages/groupings.ejs +++ b/src/renderer/views/pages/groupings.ejs @@ -9,7 +9,7 @@

{{ recom.attributes.name ?? ""}}

-
+
@@ -17,7 +17,7 @@