diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index bfe42ac75..a07e5fe40 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -44,7 +44,7 @@ jobs:
- name: Get trader bin
run: |
- trader_version=$(poetry run python -c "import yaml; config = yaml.safe_load(open('templates/trader.yaml')); print(config['trader_version'])")
+ trader_version=$(poetry run python -c "import yaml; config = yaml.safe_load(open('templates/trader.yaml')); print(config['service_version'])")
echo $trader_version
mkdir dist && curl -L -o dist/aea_bin "https://github.com/valory-xyz/trader/releases/download/${trader_version}/trader_bin_${{ env.OS_ARCH }}"
@@ -93,7 +93,7 @@ jobs:
- run: yarn install-deps
- name: "Build frontend with env vars"
run: yarn build:frontend
- env:
+ env:
NODE_ENV: production
DEV_RPC: https://rpc-gate.autonolas.tech/gnosis-rpc/
IS_STAGING: ${{ github.ref != 'refs/heads/main' && 'true' || 'false' }}
@@ -110,4 +110,26 @@ jobs:
NODE_ENV: production
DEV_RPC: https://rpc-gate.autonolas.tech/gnosis-rpc/
FORK_URL: https://rpc-gate.autonolas.tech/gnosis-rpc/
- run: node build.js
\ No newline at end of file
+ run: node build.js
+ - name: "Build frontend with dev env vars"
+ run: yarn build:frontend
+ env:
+ NODE_ENV: development
+ DEV_RPC: https://virtual.gnosis.rpc.tenderly.co/78ca845d-2b24-44a6-9ce2-869a979e8b5b
+ IS_STAGING: ${{ github.ref != 'refs/heads/main' && 'true' || 'false' }}
+ FORK_URL: https://virtual.gnosis.rpc.tenderly.co/78ca845d-2b24-44a6-9ce2-869a979e8b5b
+ - name: "Build, notarize, publish dev build"
+ env:
+ APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLEIDPASS }}
+ APPLE_ID: ${{ secrets.APPLEID }}
+ APPLETEAMID: ${{ secrets.APPLETEAMID }}
+ CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }}
+ CSC_LINK: ${{ secrets.CSC_LINK }}
+ GH_TOKEN: ${{ secrets.github_token}}
+ NODE_ENV: development
+ DEV_RPC: https://virtual.gnosis.rpc.tenderly.co/78ca845d-2b24-44a6-9ce2-869a979e8b5b
+ FORK_URL: https://virtual.gnosis.rpc.tenderly.co/78ca845d-2b24-44a6-9ce2-869a979e8b5b
+ run: |
+ echo "DEV_RPC=https://virtual.gnosis.rpc.tenderly.co/78ca845d-2b24-44a6-9ce2-869a979e8b5b" >> .env
+ echo -e "FORK_URL=https://virtual.gnosis.rpc.tenderly.co/78ca845d-2b24-44a6-9ce2-869a979e8b5b" >> .env
+ node build.js
\ No newline at end of file
diff --git a/.gitleaksignore b/.gitleaksignore
index 446eb5a4b..33c8c27cf 100644
--- a/.gitleaksignore
+++ b/.gitleaksignore
@@ -27,4 +27,6 @@ d8149e9b5b7bd6a7ed7bc1039900702f1d4f287b:operate/services/manage.py:generic-api-
99c0f139b037da2587708212fcf6d0e20786d0ba:operate/services/manage.py:generic-api-key:406
99c0f139b037da2587708212fcf6d0e20786d0ba:operate/services/manage.py:generic-api-key:454
99c0f139b037da2587708212fcf6d0e20786d0ba:operate/services/manage.py:generic-api-key:455
-91ec07457f69e9a29f63693ac8ef887e4b5f49f0:operate/services/manage.py:generic-api-key:454
\ No newline at end of file
+91ec07457f69e9a29f63693ac8ef887e4b5f49f0:operate/services/manage.py:generic-api-key:454
+410bea2bd02ff54da69387fe8f3b58793e09f7b0:operate/services/manage.py:generic-api-key:421
+410bea2bd02ff54da69387fe8f3b58793e09f7b0:operate/services/manage.py:generic-api-key:422
\ No newline at end of file
diff --git a/build.js b/build.js
deleted file mode 100644
index a7e15a32b..000000000
--- a/build.js
+++ /dev/null
@@ -1,54 +0,0 @@
-/**
- * This script is used to build the electron app **with notarization**. It is used for the final build and release process.
- */
-require('dotenv').config();
-const build = require('electron-builder').build;
-
-const { publishOptions } = require('./electron/constants');
-
-const main = async () => {
- console.log('Building...');
-
- /** @type import {CliOptions} from "electron-builder" */
- await build({
- publish: 'onTag',
- config: {
- appId: 'xyz.valory.olas-operate-app',
- artifactName: '${productName}-${version}-${platform}-${arch}.${ext}',
- productName: 'Pearl',
- files: ['electron/**/*', 'package.json'],
- directories: {
- output: 'dist',
- },
- extraResources: [
- {
- from: 'electron/bins',
- to: 'bins',
- filter: ['**/*'],
- },
- ],
- cscKeyPassword: process.env.CSC_KEY_PASSWORD,
- cscLink: process.env.CSC_LINK,
- mac: {
- target: [
- {
- target: 'default',
- arch: ['x64', 'arm64'],
- },
- ],
- publish: publishOptions,
- category: 'public.app-category.utilities',
- icon: 'electron/assets/icons/splash-robot-head-dock.png',
- hardenedRuntime: true,
- gatekeeperAssess: false,
- entitlements: 'electron/entitlements.mac.plist',
- entitlementsInherit: 'electron/entitlements.mac.plist',
- notarize: {
- teamId: process.env.APPLETEAMID,
- },
- },
- },
- });
-};
-
-main().then((response) => { console.log('Build & Notarize complete'); }).catch((e) => console.error(e));
diff --git a/build.tester.js b/build.tester.js
deleted file mode 100644
index c4a9439e0..000000000
--- a/build.tester.js
+++ /dev/null
@@ -1,52 +0,0 @@
-/**
- * This script is used to build the electron app **without** notarization.
- *
- * This is useful for testing the build process.
- * It will not notarize the app, so it will not be able to be run on someone else's Mac without disabling Gatekeeper on their machine.
- */
-require('dotenv').config();
-const build = require('electron-builder').build;
-
-const { publishOptions } = require('./electron/constants');
-
-const main = async () => {
- console.log('Building...');
-
- /** @type import {CliOptions} from "electron-builder" */
- await build({
- publish: 'onTag',
- config: {
- appId: 'xyz.valory.olas-operate-app',
- artifactName: '${productName}-${version}-${platform}-${arch}.${ext}',
- productName: 'Pearl',
- files: ['electron/**/*', 'package.json'],
- directories: {
- output: 'dist',
- },
- extraResources: [
- {
- from: 'electron/bins',
- to: 'bins',
- filter: ['**/*'],
- },
- ],
- mac: {
- publish: null,
- target: [
- {
- target: 'default',
- arch: ['arm64'],
- },
- ],
- category: 'public.app-category.utilities',
- icon: 'electron/assets/icons/splash-robot-head-dock.png',
- hardenedRuntime: true,
- gatekeeperAssess: false,
- entitlements: 'electron/entitlements.mac.plist',
- entitlementsInherit: 'electron/entitlements.mac.plist',
- },
- },
- });
-};
-
-main().then((response) => { console.log('Build & Notarize complete'); }).catch((e) => console.error(e));
diff --git a/electron/.eslintrc.json b/electron/.eslintrc.json
deleted file mode 100644
index 1aca62fc4..000000000
--- a/electron/.eslintrc.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- "extends": ["eslint:recommended", "plugin:prettier/recommended"],
- "plugins": ["prettier"],
- "ignorePatterns": [".next/"],
- "rules": {
- "prettier/prettier": [
- "error",
- {
- "endOfLine": "auto",
- "semi": true,
- "singleQuote": true
- }
- ],
- "no-unused-vars": ["warn", { "argsIgnorePattern": "^_" }]
- },
- "parserOptions": {
- "ecmaVersion": "latest",
- "commonjs": true
- },
- "env": {
- "node": true,
- "es6": true
- }
-}
diff --git a/electron/afterPack.js b/electron/afterPack.js
deleted file mode 100644
index 2c196e49a..000000000
--- a/electron/afterPack.js
+++ /dev/null
@@ -1,25 +0,0 @@
-const { promises: fs } = require('fs');
-const log = (...messages) => console.log(...messages);
-
-exports.default = async function (context) {
- if (context.electronPlatformName !== 'darwin') {
- return context;
- }
- const troublesome_files = [
- `dist/mac-arm64/Olas Operate.app/Contents/Resources/app.asar.unpacked/node_modules/electron-sudo/dist/bin/applet.app/Contents/MacOS/applet/LICENSE`,
- ];
-
- try {
- log('\n\n🪝 afterPack hook triggered: ');
- await Promise.all(
- troublesome_files.map((file) => {
- log(`Deleting ${file}`);
- return fs.rm(file);
- }),
- );
- log('Cleaned up LICENSE files\n\n');
- return context;
- } catch (e) {
- log(`afterPack issue: `, e);
- }
-};
diff --git a/electron/assets/css/antd.css b/electron/assets/css/antd.css
deleted file mode 100644
index 76932195c..000000000
--- a/electron/assets/css/antd.css
+++ /dev/null
@@ -1,27541 +0,0 @@
-/*!
- *
- * antd v4.4.3
- *
- * Copyright 2015-present, Alipay, Inc.
- * All rights reserved.
- *
- */
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-[class^=ant-]::-ms-clear,
-[class*= ant-]::-ms-clear,
-[class^=ant-] input::-ms-clear,
-[class*= ant-] input::-ms-clear,
-[class^=ant-] input::-ms-reveal,
-[class*= ant-] input::-ms-reveal {
- display: none;
-}
-[class^=ant-],
-[class*= ant-],
-[class^=ant-] *,
-[class*= ant-] *,
-[class^=ant-] *::before,
-[class*= ant-] *::before,
-[class^=ant-] *::after,
-[class*= ant-] *::after {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
-}
-/* stylelint-disable at-rule-no-unknown */
-html,
-body {
- width: 100%;
- height: 100%;
-}
-input::-ms-clear,
-input::-ms-reveal {
- display: none;
-}
-*,
-*::before,
-*::after {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
-}
-html {
- font-family: sans-serif;
- line-height: 1.15;
- -webkit-text-size-adjust: 100%;
- -ms-text-size-adjust: 100%;
- -ms-overflow-style: scrollbar;
- -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
-}
-@-ms-viewport {
- width: device-width;
-}
-body {
- margin: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
- font-variant: tabular-nums;
- line-height: 1.5715;
- background-color: #fff;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
-}
-[tabindex='-1']:focus {
- outline: none !important;
-}
-hr {
- -webkit-box-sizing: content-box;
- box-sizing: content-box;
- height: 0;
- overflow: visible;
-}
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
- margin-top: 0;
- margin-bottom: 0.5em;
- color: rgba(0, 0, 0, 0.85);
- font-weight: 500;
-}
-p {
- margin-top: 0;
- margin-bottom: 1em;
-}
-abbr[title],
-abbr[data-original-title] {
- text-decoration: underline;
- -webkit-text-decoration: underline dotted;
- text-decoration: underline dotted;
- border-bottom: 0;
- cursor: help;
-}
-address {
- margin-bottom: 1em;
- font-style: normal;
- line-height: inherit;
-}
-input[type='text'],
-input[type='password'],
-input[type='number'],
-textarea {
- -webkit-appearance: none;
-}
-ol,
-ul,
-dl {
- margin-top: 0;
- margin-bottom: 1em;
-}
-ol ol,
-ul ul,
-ol ul,
-ul ol {
- margin-bottom: 0;
-}
-dt {
- font-weight: 500;
-}
-dd {
- margin-bottom: 0.5em;
- margin-left: 0;
-}
-blockquote {
- margin: 0 0 1em;
-}
-dfn {
- font-style: italic;
-}
-b,
-strong {
- font-weight: bolder;
-}
-small {
- font-size: 80%;
-}
-sub,
-sup {
- position: relative;
- font-size: 75%;
- line-height: 0;
- vertical-align: baseline;
-}
-sub {
- bottom: -0.25em;
-}
-sup {
- top: -0.5em;
-}
-a {
- color: #1890ff;
- text-decoration: none;
- background-color: transparent;
- outline: none;
- cursor: pointer;
- -webkit-transition: color 0.3s;
- transition: color 0.3s;
- -webkit-text-decoration-skip: objects;
-}
-a:hover {
- color: #40a9ff;
-}
-a:active {
- color: #096dd9;
-}
-a:active,
-a:hover {
- text-decoration: none;
- outline: 0;
-}
-a:focus {
- text-decoration: none;
- outline: 0;
-}
-a[disabled] {
- color: rgba(0, 0, 0, 0.25);
- cursor: not-allowed;
- pointer-events: none;
-}
-pre,
-code,
-kbd,
-samp {
- font-size: 1em;
- font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace;
-}
-pre {
- margin-top: 0;
- margin-bottom: 1em;
- overflow: auto;
-}
-figure {
- margin: 0 0 1em;
-}
-img {
- vertical-align: middle;
- border-style: none;
-}
-svg:not(:root) {
- overflow: hidden;
-}
-a,
-area,
-button,
-[role='button'],
-input:not([type='range']),
-label,
-select,
-summary,
-textarea {
- -ms-touch-action: manipulation;
- touch-action: manipulation;
-}
-table {
- border-collapse: collapse;
-}
-caption {
- padding-top: 0.75em;
- padding-bottom: 0.3em;
- color: rgba(0, 0, 0, 0.45);
- text-align: left;
- caption-side: bottom;
-}
-th {
- text-align: inherit;
-}
-input,
-button,
-select,
-optgroup,
-textarea {
- margin: 0;
- color: inherit;
- font-size: inherit;
- font-family: inherit;
- line-height: inherit;
-}
-button,
-input {
- overflow: visible;
-}
-button,
-select {
- text-transform: none;
-}
-button,
-html [type="button"],
-[type="reset"],
-[type="submit"] {
- -webkit-appearance: button;
-}
-button::-moz-focus-inner,
-[type='button']::-moz-focus-inner,
-[type='reset']::-moz-focus-inner,
-[type='submit']::-moz-focus-inner {
- padding: 0;
- border-style: none;
-}
-input[type='radio'],
-input[type='checkbox'] {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- padding: 0;
-}
-input[type='date'],
-input[type='time'],
-input[type='datetime-local'],
-input[type='month'] {
- -webkit-appearance: listbox;
-}
-textarea {
- overflow: auto;
- resize: vertical;
-}
-fieldset {
- min-width: 0;
- margin: 0;
- padding: 0;
- border: 0;
-}
-legend {
- display: block;
- width: 100%;
- max-width: 100%;
- margin-bottom: 0.5em;
- padding: 0;
- color: inherit;
- font-size: 1.5em;
- line-height: inherit;
- white-space: normal;
-}
-progress {
- vertical-align: baseline;
-}
-[type='number']::-webkit-inner-spin-button,
-[type='number']::-webkit-outer-spin-button {
- height: auto;
-}
-[type='search'] {
- outline-offset: -2px;
- -webkit-appearance: none;
-}
-[type='search']::-webkit-search-cancel-button,
-[type='search']::-webkit-search-decoration {
- -webkit-appearance: none;
-}
-::-webkit-file-upload-button {
- font: inherit;
- -webkit-appearance: button;
-}
-output {
- display: inline-block;
-}
-summary {
- display: list-item;
-}
-template {
- display: none;
-}
-[hidden] {
- display: none !important;
-}
-mark {
- padding: 0.2em;
- background-color: #feffe6;
-}
-::-moz-selection {
- color: #fff;
- background: #1890ff;
-}
-::selection {
- color: #fff;
- background: #1890ff;
-}
-.clearfix::before {
- display: table;
- content: '';
-}
-.clearfix::after {
- display: table;
- clear: both;
- content: '';
-}
-.anticon {
- display: inline-block;
- color: inherit;
- font-style: normal;
- line-height: 0;
- text-align: center;
- text-transform: none;
- vertical-align: -0.125em;
- text-rendering: optimizeLegibility;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
-}
-.anticon > * {
- line-height: 1;
-}
-.anticon svg {
- display: inline-block;
-}
-.anticon::before {
- display: none;
-}
-.anticon .anticon-icon {
- display: block;
-}
-.anticon[tabindex] {
- cursor: pointer;
-}
-.anticon-spin::before {
- display: inline-block;
- -webkit-animation: loadingCircle 1s infinite linear;
- animation: loadingCircle 1s infinite linear;
-}
-.anticon-spin {
- display: inline-block;
- -webkit-animation: loadingCircle 1s infinite linear;
- animation: loadingCircle 1s infinite linear;
-}
-.fade-enter,
-.fade-appear {
- -webkit-animation-duration: 0.2s;
- animation-duration: 0.2s;
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
- -webkit-animation-play-state: paused;
- animation-play-state: paused;
-}
-.fade-leave {
- -webkit-animation-duration: 0.2s;
- animation-duration: 0.2s;
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
- -webkit-animation-play-state: paused;
- animation-play-state: paused;
-}
-.fade-enter.fade-enter-active,
-.fade-appear.fade-appear-active {
- -webkit-animation-name: antFadeIn;
- animation-name: antFadeIn;
- -webkit-animation-play-state: running;
- animation-play-state: running;
-}
-.fade-leave.fade-leave-active {
- -webkit-animation-name: antFadeOut;
- animation-name: antFadeOut;
- -webkit-animation-play-state: running;
- animation-play-state: running;
- pointer-events: none;
-}
-.fade-enter,
-.fade-appear {
- opacity: 0;
- -webkit-animation-timing-function: linear;
- animation-timing-function: linear;
-}
-.fade-leave {
- -webkit-animation-timing-function: linear;
- animation-timing-function: linear;
-}
-@-webkit-keyframes antFadeIn {
- 0% {
- opacity: 0;
- }
- 100% {
- opacity: 1;
- }
-}
-@keyframes antFadeIn {
- 0% {
- opacity: 0;
- }
- 100% {
- opacity: 1;
- }
-}
-@-webkit-keyframes antFadeOut {
- 0% {
- opacity: 1;
- }
- 100% {
- opacity: 0;
- }
-}
-@keyframes antFadeOut {
- 0% {
- opacity: 1;
- }
- 100% {
- opacity: 0;
- }
-}
-.move-up-enter,
-.move-up-appear {
- -webkit-animation-duration: 0.2s;
- animation-duration: 0.2s;
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
- -webkit-animation-play-state: paused;
- animation-play-state: paused;
-}
-.move-up-leave {
- -webkit-animation-duration: 0.2s;
- animation-duration: 0.2s;
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
- -webkit-animation-play-state: paused;
- animation-play-state: paused;
-}
-.move-up-enter.move-up-enter-active,
-.move-up-appear.move-up-appear-active {
- -webkit-animation-name: antMoveUpIn;
- animation-name: antMoveUpIn;
- -webkit-animation-play-state: running;
- animation-play-state: running;
-}
-.move-up-leave.move-up-leave-active {
- -webkit-animation-name: antMoveUpOut;
- animation-name: antMoveUpOut;
- -webkit-animation-play-state: running;
- animation-play-state: running;
- pointer-events: none;
-}
-.move-up-enter,
-.move-up-appear {
- opacity: 0;
- -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
- animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
-}
-.move-up-leave {
- -webkit-animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);
- animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);
-}
-.move-down-enter,
-.move-down-appear {
- -webkit-animation-duration: 0.2s;
- animation-duration: 0.2s;
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
- -webkit-animation-play-state: paused;
- animation-play-state: paused;
-}
-.move-down-leave {
- -webkit-animation-duration: 0.2s;
- animation-duration: 0.2s;
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
- -webkit-animation-play-state: paused;
- animation-play-state: paused;
-}
-.move-down-enter.move-down-enter-active,
-.move-down-appear.move-down-appear-active {
- -webkit-animation-name: antMoveDownIn;
- animation-name: antMoveDownIn;
- -webkit-animation-play-state: running;
- animation-play-state: running;
-}
-.move-down-leave.move-down-leave-active {
- -webkit-animation-name: antMoveDownOut;
- animation-name: antMoveDownOut;
- -webkit-animation-play-state: running;
- animation-play-state: running;
- pointer-events: none;
-}
-.move-down-enter,
-.move-down-appear {
- opacity: 0;
- -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
- animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
-}
-.move-down-leave {
- -webkit-animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);
- animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);
-}
-.move-left-enter,
-.move-left-appear {
- -webkit-animation-duration: 0.2s;
- animation-duration: 0.2s;
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
- -webkit-animation-play-state: paused;
- animation-play-state: paused;
-}
-.move-left-leave {
- -webkit-animation-duration: 0.2s;
- animation-duration: 0.2s;
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
- -webkit-animation-play-state: paused;
- animation-play-state: paused;
-}
-.move-left-enter.move-left-enter-active,
-.move-left-appear.move-left-appear-active {
- -webkit-animation-name: antMoveLeftIn;
- animation-name: antMoveLeftIn;
- -webkit-animation-play-state: running;
- animation-play-state: running;
-}
-.move-left-leave.move-left-leave-active {
- -webkit-animation-name: antMoveLeftOut;
- animation-name: antMoveLeftOut;
- -webkit-animation-play-state: running;
- animation-play-state: running;
- pointer-events: none;
-}
-.move-left-enter,
-.move-left-appear {
- opacity: 0;
- -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
- animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
-}
-.move-left-leave {
- -webkit-animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);
- animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);
-}
-.move-right-enter,
-.move-right-appear {
- -webkit-animation-duration: 0.2s;
- animation-duration: 0.2s;
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
- -webkit-animation-play-state: paused;
- animation-play-state: paused;
-}
-.move-right-leave {
- -webkit-animation-duration: 0.2s;
- animation-duration: 0.2s;
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
- -webkit-animation-play-state: paused;
- animation-play-state: paused;
-}
-.move-right-enter.move-right-enter-active,
-.move-right-appear.move-right-appear-active {
- -webkit-animation-name: antMoveRightIn;
- animation-name: antMoveRightIn;
- -webkit-animation-play-state: running;
- animation-play-state: running;
-}
-.move-right-leave.move-right-leave-active {
- -webkit-animation-name: antMoveRightOut;
- animation-name: antMoveRightOut;
- -webkit-animation-play-state: running;
- animation-play-state: running;
- pointer-events: none;
-}
-.move-right-enter,
-.move-right-appear {
- opacity: 0;
- -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
- animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
-}
-.move-right-leave {
- -webkit-animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);
- animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);
-}
-@-webkit-keyframes antMoveDownIn {
- 0% {
- -webkit-transform: translateY(100%);
- transform: translateY(100%);
- -webkit-transform-origin: 0 0;
- transform-origin: 0 0;
- opacity: 0;
- }
- 100% {
- -webkit-transform: translateY(0%);
- transform: translateY(0%);
- -webkit-transform-origin: 0 0;
- transform-origin: 0 0;
- opacity: 1;
- }
-}
-@keyframes antMoveDownIn {
- 0% {
- -webkit-transform: translateY(100%);
- transform: translateY(100%);
- -webkit-transform-origin: 0 0;
- transform-origin: 0 0;
- opacity: 0;
- }
- 100% {
- -webkit-transform: translateY(0%);
- transform: translateY(0%);
- -webkit-transform-origin: 0 0;
- transform-origin: 0 0;
- opacity: 1;
- }
-}
-@-webkit-keyframes antMoveDownOut {
- 0% {
- -webkit-transform: translateY(0%);
- transform: translateY(0%);
- -webkit-transform-origin: 0 0;
- transform-origin: 0 0;
- opacity: 1;
- }
- 100% {
- -webkit-transform: translateY(100%);
- transform: translateY(100%);
- -webkit-transform-origin: 0 0;
- transform-origin: 0 0;
- opacity: 0;
- }
-}
-@keyframes antMoveDownOut {
- 0% {
- -webkit-transform: translateY(0%);
- transform: translateY(0%);
- -webkit-transform-origin: 0 0;
- transform-origin: 0 0;
- opacity: 1;
- }
- 100% {
- -webkit-transform: translateY(100%);
- transform: translateY(100%);
- -webkit-transform-origin: 0 0;
- transform-origin: 0 0;
- opacity: 0;
- }
-}
-@-webkit-keyframes antMoveLeftIn {
- 0% {
- -webkit-transform: translateX(-100%);
- transform: translateX(-100%);
- -webkit-transform-origin: 0 0;
- transform-origin: 0 0;
- opacity: 0;
- }
- 100% {
- -webkit-transform: translateX(0%);
- transform: translateX(0%);
- -webkit-transform-origin: 0 0;
- transform-origin: 0 0;
- opacity: 1;
- }
-}
-@keyframes antMoveLeftIn {
- 0% {
- -webkit-transform: translateX(-100%);
- transform: translateX(-100%);
- -webkit-transform-origin: 0 0;
- transform-origin: 0 0;
- opacity: 0;
- }
- 100% {
- -webkit-transform: translateX(0%);
- transform: translateX(0%);
- -webkit-transform-origin: 0 0;
- transform-origin: 0 0;
- opacity: 1;
- }
-}
-@-webkit-keyframes antMoveLeftOut {
- 0% {
- -webkit-transform: translateX(0%);
- transform: translateX(0%);
- -webkit-transform-origin: 0 0;
- transform-origin: 0 0;
- opacity: 1;
- }
- 100% {
- -webkit-transform: translateX(-100%);
- transform: translateX(-100%);
- -webkit-transform-origin: 0 0;
- transform-origin: 0 0;
- opacity: 0;
- }
-}
-@keyframes antMoveLeftOut {
- 0% {
- -webkit-transform: translateX(0%);
- transform: translateX(0%);
- -webkit-transform-origin: 0 0;
- transform-origin: 0 0;
- opacity: 1;
- }
- 100% {
- -webkit-transform: translateX(-100%);
- transform: translateX(-100%);
- -webkit-transform-origin: 0 0;
- transform-origin: 0 0;
- opacity: 0;
- }
-}
-@-webkit-keyframes antMoveRightIn {
- 0% {
- -webkit-transform: translateX(100%);
- transform: translateX(100%);
- -webkit-transform-origin: 0 0;
- transform-origin: 0 0;
- opacity: 0;
- }
- 100% {
- -webkit-transform: translateX(0%);
- transform: translateX(0%);
- -webkit-transform-origin: 0 0;
- transform-origin: 0 0;
- opacity: 1;
- }
-}
-@keyframes antMoveRightIn {
- 0% {
- -webkit-transform: translateX(100%);
- transform: translateX(100%);
- -webkit-transform-origin: 0 0;
- transform-origin: 0 0;
- opacity: 0;
- }
- 100% {
- -webkit-transform: translateX(0%);
- transform: translateX(0%);
- -webkit-transform-origin: 0 0;
- transform-origin: 0 0;
- opacity: 1;
- }
-}
-@-webkit-keyframes antMoveRightOut {
- 0% {
- -webkit-transform: translateX(0%);
- transform: translateX(0%);
- -webkit-transform-origin: 0 0;
- transform-origin: 0 0;
- opacity: 1;
- }
- 100% {
- -webkit-transform: translateX(100%);
- transform: translateX(100%);
- -webkit-transform-origin: 0 0;
- transform-origin: 0 0;
- opacity: 0;
- }
-}
-@keyframes antMoveRightOut {
- 0% {
- -webkit-transform: translateX(0%);
- transform: translateX(0%);
- -webkit-transform-origin: 0 0;
- transform-origin: 0 0;
- opacity: 1;
- }
- 100% {
- -webkit-transform: translateX(100%);
- transform: translateX(100%);
- -webkit-transform-origin: 0 0;
- transform-origin: 0 0;
- opacity: 0;
- }
-}
-@-webkit-keyframes antMoveUpIn {
- 0% {
- -webkit-transform: translateY(-100%);
- transform: translateY(-100%);
- -webkit-transform-origin: 0 0;
- transform-origin: 0 0;
- opacity: 0;
- }
- 100% {
- -webkit-transform: translateY(0%);
- transform: translateY(0%);
- -webkit-transform-origin: 0 0;
- transform-origin: 0 0;
- opacity: 1;
- }
-}
-@keyframes antMoveUpIn {
- 0% {
- -webkit-transform: translateY(-100%);
- transform: translateY(-100%);
- -webkit-transform-origin: 0 0;
- transform-origin: 0 0;
- opacity: 0;
- }
- 100% {
- -webkit-transform: translateY(0%);
- transform: translateY(0%);
- -webkit-transform-origin: 0 0;
- transform-origin: 0 0;
- opacity: 1;
- }
-}
-@-webkit-keyframes antMoveUpOut {
- 0% {
- -webkit-transform: translateY(0%);
- transform: translateY(0%);
- -webkit-transform-origin: 0 0;
- transform-origin: 0 0;
- opacity: 1;
- }
- 100% {
- -webkit-transform: translateY(-100%);
- transform: translateY(-100%);
- -webkit-transform-origin: 0 0;
- transform-origin: 0 0;
- opacity: 0;
- }
-}
-@keyframes antMoveUpOut {
- 0% {
- -webkit-transform: translateY(0%);
- transform: translateY(0%);
- -webkit-transform-origin: 0 0;
- transform-origin: 0 0;
- opacity: 1;
- }
- 100% {
- -webkit-transform: translateY(-100%);
- transform: translateY(-100%);
- -webkit-transform-origin: 0 0;
- transform-origin: 0 0;
- opacity: 0;
- }
-}
-@-webkit-keyframes loadingCircle {
- 100% {
- -webkit-transform: rotate(360deg);
- transform: rotate(360deg);
- }
-}
-@keyframes loadingCircle {
- 100% {
- -webkit-transform: rotate(360deg);
- transform: rotate(360deg);
- }
-}
-[ant-click-animating='true'],
-[ant-click-animating-without-extra-node='true'] {
- position: relative;
-}
-html {
- --antd-wave-shadow-color: #1890ff;
- --scroll-bar: 0;
-}
-[ant-click-animating-without-extra-node='true']::after,
-.ant-click-animating-node {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- display: block;
- border-radius: inherit;
- -webkit-box-shadow: 0 0 0 0 #1890ff;
- box-shadow: 0 0 0 0 #1890ff;
- -webkit-box-shadow: 0 0 0 0 var(--antd-wave-shadow-color);
- box-shadow: 0 0 0 0 var(--antd-wave-shadow-color);
- opacity: 0.2;
- -webkit-animation: fadeEffect 2s cubic-bezier(0.08, 0.82, 0.17, 1), waveEffect 0.4s cubic-bezier(0.08, 0.82, 0.17, 1);
- animation: fadeEffect 2s cubic-bezier(0.08, 0.82, 0.17, 1), waveEffect 0.4s cubic-bezier(0.08, 0.82, 0.17, 1);
- -webkit-animation-fill-mode: forwards;
- animation-fill-mode: forwards;
- content: '';
- pointer-events: none;
-}
-@-webkit-keyframes waveEffect {
- 100% {
- -webkit-box-shadow: 0 0 0 #1890ff;
- box-shadow: 0 0 0 #1890ff;
- -webkit-box-shadow: 0 0 0 6px var(--antd-wave-shadow-color);
- box-shadow: 0 0 0 6px var(--antd-wave-shadow-color);
- }
-}
-@keyframes waveEffect {
- 100% {
- -webkit-box-shadow: 0 0 0 #1890ff;
- box-shadow: 0 0 0 #1890ff;
- -webkit-box-shadow: 0 0 0 6px var(--antd-wave-shadow-color);
- box-shadow: 0 0 0 6px var(--antd-wave-shadow-color);
- }
-}
-@-webkit-keyframes fadeEffect {
- 100% {
- opacity: 0;
- }
-}
-@keyframes fadeEffect {
- 100% {
- opacity: 0;
- }
-}
-.slide-up-enter,
-.slide-up-appear {
- -webkit-animation-duration: 0.2s;
- animation-duration: 0.2s;
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
- -webkit-animation-play-state: paused;
- animation-play-state: paused;
-}
-.slide-up-leave {
- -webkit-animation-duration: 0.2s;
- animation-duration: 0.2s;
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
- -webkit-animation-play-state: paused;
- animation-play-state: paused;
-}
-.slide-up-enter.slide-up-enter-active,
-.slide-up-appear.slide-up-appear-active {
- -webkit-animation-name: antSlideUpIn;
- animation-name: antSlideUpIn;
- -webkit-animation-play-state: running;
- animation-play-state: running;
-}
-.slide-up-leave.slide-up-leave-active {
- -webkit-animation-name: antSlideUpOut;
- animation-name: antSlideUpOut;
- -webkit-animation-play-state: running;
- animation-play-state: running;
- pointer-events: none;
-}
-.slide-up-enter,
-.slide-up-appear {
- opacity: 0;
- -webkit-animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);
- animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);
-}
-.slide-up-leave {
- -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
- animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
-}
-.slide-down-enter,
-.slide-down-appear {
- -webkit-animation-duration: 0.2s;
- animation-duration: 0.2s;
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
- -webkit-animation-play-state: paused;
- animation-play-state: paused;
-}
-.slide-down-leave {
- -webkit-animation-duration: 0.2s;
- animation-duration: 0.2s;
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
- -webkit-animation-play-state: paused;
- animation-play-state: paused;
-}
-.slide-down-enter.slide-down-enter-active,
-.slide-down-appear.slide-down-appear-active {
- -webkit-animation-name: antSlideDownIn;
- animation-name: antSlideDownIn;
- -webkit-animation-play-state: running;
- animation-play-state: running;
-}
-.slide-down-leave.slide-down-leave-active {
- -webkit-animation-name: antSlideDownOut;
- animation-name: antSlideDownOut;
- -webkit-animation-play-state: running;
- animation-play-state: running;
- pointer-events: none;
-}
-.slide-down-enter,
-.slide-down-appear {
- opacity: 0;
- -webkit-animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);
- animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);
-}
-.slide-down-leave {
- -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
- animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
-}
-.slide-left-enter,
-.slide-left-appear {
- -webkit-animation-duration: 0.2s;
- animation-duration: 0.2s;
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
- -webkit-animation-play-state: paused;
- animation-play-state: paused;
-}
-.slide-left-leave {
- -webkit-animation-duration: 0.2s;
- animation-duration: 0.2s;
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
- -webkit-animation-play-state: paused;
- animation-play-state: paused;
-}
-.slide-left-enter.slide-left-enter-active,
-.slide-left-appear.slide-left-appear-active {
- -webkit-animation-name: antSlideLeftIn;
- animation-name: antSlideLeftIn;
- -webkit-animation-play-state: running;
- animation-play-state: running;
-}
-.slide-left-leave.slide-left-leave-active {
- -webkit-animation-name: antSlideLeftOut;
- animation-name: antSlideLeftOut;
- -webkit-animation-play-state: running;
- animation-play-state: running;
- pointer-events: none;
-}
-.slide-left-enter,
-.slide-left-appear {
- opacity: 0;
- -webkit-animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);
- animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);
-}
-.slide-left-leave {
- -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
- animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
-}
-.slide-right-enter,
-.slide-right-appear {
- -webkit-animation-duration: 0.2s;
- animation-duration: 0.2s;
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
- -webkit-animation-play-state: paused;
- animation-play-state: paused;
-}
-.slide-right-leave {
- -webkit-animation-duration: 0.2s;
- animation-duration: 0.2s;
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
- -webkit-animation-play-state: paused;
- animation-play-state: paused;
-}
-.slide-right-enter.slide-right-enter-active,
-.slide-right-appear.slide-right-appear-active {
- -webkit-animation-name: antSlideRightIn;
- animation-name: antSlideRightIn;
- -webkit-animation-play-state: running;
- animation-play-state: running;
-}
-.slide-right-leave.slide-right-leave-active {
- -webkit-animation-name: antSlideRightOut;
- animation-name: antSlideRightOut;
- -webkit-animation-play-state: running;
- animation-play-state: running;
- pointer-events: none;
-}
-.slide-right-enter,
-.slide-right-appear {
- opacity: 0;
- -webkit-animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);
- animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);
-}
-.slide-right-leave {
- -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
- animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
-}
-@-webkit-keyframes antSlideUpIn {
- 0% {
- -webkit-transform: scaleY(0.8);
- transform: scaleY(0.8);
- -webkit-transform-origin: 0% 0%;
- transform-origin: 0% 0%;
- opacity: 0;
- }
- 100% {
- -webkit-transform: scaleY(1);
- transform: scaleY(1);
- -webkit-transform-origin: 0% 0%;
- transform-origin: 0% 0%;
- opacity: 1;
- }
-}
-@keyframes antSlideUpIn {
- 0% {
- -webkit-transform: scaleY(0.8);
- transform: scaleY(0.8);
- -webkit-transform-origin: 0% 0%;
- transform-origin: 0% 0%;
- opacity: 0;
- }
- 100% {
- -webkit-transform: scaleY(1);
- transform: scaleY(1);
- -webkit-transform-origin: 0% 0%;
- transform-origin: 0% 0%;
- opacity: 1;
- }
-}
-@-webkit-keyframes antSlideUpOut {
- 0% {
- -webkit-transform: scaleY(1);
- transform: scaleY(1);
- -webkit-transform-origin: 0% 0%;
- transform-origin: 0% 0%;
- opacity: 1;
- }
- 100% {
- -webkit-transform: scaleY(0.8);
- transform: scaleY(0.8);
- -webkit-transform-origin: 0% 0%;
- transform-origin: 0% 0%;
- opacity: 0;
- }
-}
-@keyframes antSlideUpOut {
- 0% {
- -webkit-transform: scaleY(1);
- transform: scaleY(1);
- -webkit-transform-origin: 0% 0%;
- transform-origin: 0% 0%;
- opacity: 1;
- }
- 100% {
- -webkit-transform: scaleY(0.8);
- transform: scaleY(0.8);
- -webkit-transform-origin: 0% 0%;
- transform-origin: 0% 0%;
- opacity: 0;
- }
-}
-@-webkit-keyframes antSlideDownIn {
- 0% {
- -webkit-transform: scaleY(0.8);
- transform: scaleY(0.8);
- -webkit-transform-origin: 100% 100%;
- transform-origin: 100% 100%;
- opacity: 0;
- }
- 100% {
- -webkit-transform: scaleY(1);
- transform: scaleY(1);
- -webkit-transform-origin: 100% 100%;
- transform-origin: 100% 100%;
- opacity: 1;
- }
-}
-@keyframes antSlideDownIn {
- 0% {
- -webkit-transform: scaleY(0.8);
- transform: scaleY(0.8);
- -webkit-transform-origin: 100% 100%;
- transform-origin: 100% 100%;
- opacity: 0;
- }
- 100% {
- -webkit-transform: scaleY(1);
- transform: scaleY(1);
- -webkit-transform-origin: 100% 100%;
- transform-origin: 100% 100%;
- opacity: 1;
- }
-}
-@-webkit-keyframes antSlideDownOut {
- 0% {
- -webkit-transform: scaleY(1);
- transform: scaleY(1);
- -webkit-transform-origin: 100% 100%;
- transform-origin: 100% 100%;
- opacity: 1;
- }
- 100% {
- -webkit-transform: scaleY(0.8);
- transform: scaleY(0.8);
- -webkit-transform-origin: 100% 100%;
- transform-origin: 100% 100%;
- opacity: 0;
- }
-}
-@keyframes antSlideDownOut {
- 0% {
- -webkit-transform: scaleY(1);
- transform: scaleY(1);
- -webkit-transform-origin: 100% 100%;
- transform-origin: 100% 100%;
- opacity: 1;
- }
- 100% {
- -webkit-transform: scaleY(0.8);
- transform: scaleY(0.8);
- -webkit-transform-origin: 100% 100%;
- transform-origin: 100% 100%;
- opacity: 0;
- }
-}
-@-webkit-keyframes antSlideLeftIn {
- 0% {
- -webkit-transform: scaleX(0.8);
- transform: scaleX(0.8);
- -webkit-transform-origin: 0% 0%;
- transform-origin: 0% 0%;
- opacity: 0;
- }
- 100% {
- -webkit-transform: scaleX(1);
- transform: scaleX(1);
- -webkit-transform-origin: 0% 0%;
- transform-origin: 0% 0%;
- opacity: 1;
- }
-}
-@keyframes antSlideLeftIn {
- 0% {
- -webkit-transform: scaleX(0.8);
- transform: scaleX(0.8);
- -webkit-transform-origin: 0% 0%;
- transform-origin: 0% 0%;
- opacity: 0;
- }
- 100% {
- -webkit-transform: scaleX(1);
- transform: scaleX(1);
- -webkit-transform-origin: 0% 0%;
- transform-origin: 0% 0%;
- opacity: 1;
- }
-}
-@-webkit-keyframes antSlideLeftOut {
- 0% {
- -webkit-transform: scaleX(1);
- transform: scaleX(1);
- -webkit-transform-origin: 0% 0%;
- transform-origin: 0% 0%;
- opacity: 1;
- }
- 100% {
- -webkit-transform: scaleX(0.8);
- transform: scaleX(0.8);
- -webkit-transform-origin: 0% 0%;
- transform-origin: 0% 0%;
- opacity: 0;
- }
-}
-@keyframes antSlideLeftOut {
- 0% {
- -webkit-transform: scaleX(1);
- transform: scaleX(1);
- -webkit-transform-origin: 0% 0%;
- transform-origin: 0% 0%;
- opacity: 1;
- }
- 100% {
- -webkit-transform: scaleX(0.8);
- transform: scaleX(0.8);
- -webkit-transform-origin: 0% 0%;
- transform-origin: 0% 0%;
- opacity: 0;
- }
-}
-@-webkit-keyframes antSlideRightIn {
- 0% {
- -webkit-transform: scaleX(0.8);
- transform: scaleX(0.8);
- -webkit-transform-origin: 100% 0%;
- transform-origin: 100% 0%;
- opacity: 0;
- }
- 100% {
- -webkit-transform: scaleX(1);
- transform: scaleX(1);
- -webkit-transform-origin: 100% 0%;
- transform-origin: 100% 0%;
- opacity: 1;
- }
-}
-@keyframes antSlideRightIn {
- 0% {
- -webkit-transform: scaleX(0.8);
- transform: scaleX(0.8);
- -webkit-transform-origin: 100% 0%;
- transform-origin: 100% 0%;
- opacity: 0;
- }
- 100% {
- -webkit-transform: scaleX(1);
- transform: scaleX(1);
- -webkit-transform-origin: 100% 0%;
- transform-origin: 100% 0%;
- opacity: 1;
- }
-}
-@-webkit-keyframes antSlideRightOut {
- 0% {
- -webkit-transform: scaleX(1);
- transform: scaleX(1);
- -webkit-transform-origin: 100% 0%;
- transform-origin: 100% 0%;
- opacity: 1;
- }
- 100% {
- -webkit-transform: scaleX(0.8);
- transform: scaleX(0.8);
- -webkit-transform-origin: 100% 0%;
- transform-origin: 100% 0%;
- opacity: 0;
- }
-}
-@keyframes antSlideRightOut {
- 0% {
- -webkit-transform: scaleX(1);
- transform: scaleX(1);
- -webkit-transform-origin: 100% 0%;
- transform-origin: 100% 0%;
- opacity: 1;
- }
- 100% {
- -webkit-transform: scaleX(0.8);
- transform: scaleX(0.8);
- -webkit-transform-origin: 100% 0%;
- transform-origin: 100% 0%;
- opacity: 0;
- }
-}
-.zoom-enter,
-.zoom-appear {
- -webkit-animation-duration: 0.2s;
- animation-duration: 0.2s;
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
- -webkit-animation-play-state: paused;
- animation-play-state: paused;
-}
-.zoom-leave {
- -webkit-animation-duration: 0.2s;
- animation-duration: 0.2s;
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
- -webkit-animation-play-state: paused;
- animation-play-state: paused;
-}
-.zoom-enter.zoom-enter-active,
-.zoom-appear.zoom-appear-active {
- -webkit-animation-name: antZoomIn;
- animation-name: antZoomIn;
- -webkit-animation-play-state: running;
- animation-play-state: running;
-}
-.zoom-leave.zoom-leave-active {
- -webkit-animation-name: antZoomOut;
- animation-name: antZoomOut;
- -webkit-animation-play-state: running;
- animation-play-state: running;
- pointer-events: none;
-}
-.zoom-enter,
-.zoom-appear {
- -webkit-transform: scale(0);
- transform: scale(0);
- opacity: 0;
- -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
- animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
-}
-.zoom-leave {
- -webkit-animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);
- animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);
-}
-.zoom-big-enter,
-.zoom-big-appear {
- -webkit-animation-duration: 0.2s;
- animation-duration: 0.2s;
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
- -webkit-animation-play-state: paused;
- animation-play-state: paused;
-}
-.zoom-big-leave {
- -webkit-animation-duration: 0.2s;
- animation-duration: 0.2s;
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
- -webkit-animation-play-state: paused;
- animation-play-state: paused;
-}
-.zoom-big-enter.zoom-big-enter-active,
-.zoom-big-appear.zoom-big-appear-active {
- -webkit-animation-name: antZoomBigIn;
- animation-name: antZoomBigIn;
- -webkit-animation-play-state: running;
- animation-play-state: running;
-}
-.zoom-big-leave.zoom-big-leave-active {
- -webkit-animation-name: antZoomBigOut;
- animation-name: antZoomBigOut;
- -webkit-animation-play-state: running;
- animation-play-state: running;
- pointer-events: none;
-}
-.zoom-big-enter,
-.zoom-big-appear {
- -webkit-transform: scale(0);
- transform: scale(0);
- opacity: 0;
- -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
- animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
-}
-.zoom-big-leave {
- -webkit-animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);
- animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);
-}
-.zoom-big-fast-enter,
-.zoom-big-fast-appear {
- -webkit-animation-duration: 0.1s;
- animation-duration: 0.1s;
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
- -webkit-animation-play-state: paused;
- animation-play-state: paused;
-}
-.zoom-big-fast-leave {
- -webkit-animation-duration: 0.1s;
- animation-duration: 0.1s;
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
- -webkit-animation-play-state: paused;
- animation-play-state: paused;
-}
-.zoom-big-fast-enter.zoom-big-fast-enter-active,
-.zoom-big-fast-appear.zoom-big-fast-appear-active {
- -webkit-animation-name: antZoomBigIn;
- animation-name: antZoomBigIn;
- -webkit-animation-play-state: running;
- animation-play-state: running;
-}
-.zoom-big-fast-leave.zoom-big-fast-leave-active {
- -webkit-animation-name: antZoomBigOut;
- animation-name: antZoomBigOut;
- -webkit-animation-play-state: running;
- animation-play-state: running;
- pointer-events: none;
-}
-.zoom-big-fast-enter,
-.zoom-big-fast-appear {
- -webkit-transform: scale(0);
- transform: scale(0);
- opacity: 0;
- -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
- animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
-}
-.zoom-big-fast-leave {
- -webkit-animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);
- animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);
-}
-.zoom-up-enter,
-.zoom-up-appear {
- -webkit-animation-duration: 0.2s;
- animation-duration: 0.2s;
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
- -webkit-animation-play-state: paused;
- animation-play-state: paused;
-}
-.zoom-up-leave {
- -webkit-animation-duration: 0.2s;
- animation-duration: 0.2s;
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
- -webkit-animation-play-state: paused;
- animation-play-state: paused;
-}
-.zoom-up-enter.zoom-up-enter-active,
-.zoom-up-appear.zoom-up-appear-active {
- -webkit-animation-name: antZoomUpIn;
- animation-name: antZoomUpIn;
- -webkit-animation-play-state: running;
- animation-play-state: running;
-}
-.zoom-up-leave.zoom-up-leave-active {
- -webkit-animation-name: antZoomUpOut;
- animation-name: antZoomUpOut;
- -webkit-animation-play-state: running;
- animation-play-state: running;
- pointer-events: none;
-}
-.zoom-up-enter,
-.zoom-up-appear {
- -webkit-transform: scale(0);
- transform: scale(0);
- opacity: 0;
- -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
- animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
-}
-.zoom-up-leave {
- -webkit-animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);
- animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);
-}
-.zoom-down-enter,
-.zoom-down-appear {
- -webkit-animation-duration: 0.2s;
- animation-duration: 0.2s;
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
- -webkit-animation-play-state: paused;
- animation-play-state: paused;
-}
-.zoom-down-leave {
- -webkit-animation-duration: 0.2s;
- animation-duration: 0.2s;
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
- -webkit-animation-play-state: paused;
- animation-play-state: paused;
-}
-.zoom-down-enter.zoom-down-enter-active,
-.zoom-down-appear.zoom-down-appear-active {
- -webkit-animation-name: antZoomDownIn;
- animation-name: antZoomDownIn;
- -webkit-animation-play-state: running;
- animation-play-state: running;
-}
-.zoom-down-leave.zoom-down-leave-active {
- -webkit-animation-name: antZoomDownOut;
- animation-name: antZoomDownOut;
- -webkit-animation-play-state: running;
- animation-play-state: running;
- pointer-events: none;
-}
-.zoom-down-enter,
-.zoom-down-appear {
- -webkit-transform: scale(0);
- transform: scale(0);
- opacity: 0;
- -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
- animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
-}
-.zoom-down-leave {
- -webkit-animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);
- animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);
-}
-.zoom-left-enter,
-.zoom-left-appear {
- -webkit-animation-duration: 0.2s;
- animation-duration: 0.2s;
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
- -webkit-animation-play-state: paused;
- animation-play-state: paused;
-}
-.zoom-left-leave {
- -webkit-animation-duration: 0.2s;
- animation-duration: 0.2s;
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
- -webkit-animation-play-state: paused;
- animation-play-state: paused;
-}
-.zoom-left-enter.zoom-left-enter-active,
-.zoom-left-appear.zoom-left-appear-active {
- -webkit-animation-name: antZoomLeftIn;
- animation-name: antZoomLeftIn;
- -webkit-animation-play-state: running;
- animation-play-state: running;
-}
-.zoom-left-leave.zoom-left-leave-active {
- -webkit-animation-name: antZoomLeftOut;
- animation-name: antZoomLeftOut;
- -webkit-animation-play-state: running;
- animation-play-state: running;
- pointer-events: none;
-}
-.zoom-left-enter,
-.zoom-left-appear {
- -webkit-transform: scale(0);
- transform: scale(0);
- opacity: 0;
- -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
- animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
-}
-.zoom-left-leave {
- -webkit-animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);
- animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);
-}
-.zoom-right-enter,
-.zoom-right-appear {
- -webkit-animation-duration: 0.2s;
- animation-duration: 0.2s;
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
- -webkit-animation-play-state: paused;
- animation-play-state: paused;
-}
-.zoom-right-leave {
- -webkit-animation-duration: 0.2s;
- animation-duration: 0.2s;
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
- -webkit-animation-play-state: paused;
- animation-play-state: paused;
-}
-.zoom-right-enter.zoom-right-enter-active,
-.zoom-right-appear.zoom-right-appear-active {
- -webkit-animation-name: antZoomRightIn;
- animation-name: antZoomRightIn;
- -webkit-animation-play-state: running;
- animation-play-state: running;
-}
-.zoom-right-leave.zoom-right-leave-active {
- -webkit-animation-name: antZoomRightOut;
- animation-name: antZoomRightOut;
- -webkit-animation-play-state: running;
- animation-play-state: running;
- pointer-events: none;
-}
-.zoom-right-enter,
-.zoom-right-appear {
- -webkit-transform: scale(0);
- transform: scale(0);
- opacity: 0;
- -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
- animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
-}
-.zoom-right-leave {
- -webkit-animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);
- animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);
-}
-@-webkit-keyframes antZoomIn {
- 0% {
- -webkit-transform: scale(0.2);
- transform: scale(0.2);
- opacity: 0;
- }
- 100% {
- -webkit-transform: scale(1);
- transform: scale(1);
- opacity: 1;
- }
-}
-@keyframes antZoomIn {
- 0% {
- -webkit-transform: scale(0.2);
- transform: scale(0.2);
- opacity: 0;
- }
- 100% {
- -webkit-transform: scale(1);
- transform: scale(1);
- opacity: 1;
- }
-}
-@-webkit-keyframes antZoomOut {
- 0% {
- -webkit-transform: scale(1);
- transform: scale(1);
- }
- 100% {
- -webkit-transform: scale(0.2);
- transform: scale(0.2);
- opacity: 0;
- }
-}
-@keyframes antZoomOut {
- 0% {
- -webkit-transform: scale(1);
- transform: scale(1);
- }
- 100% {
- -webkit-transform: scale(0.2);
- transform: scale(0.2);
- opacity: 0;
- }
-}
-@-webkit-keyframes antZoomBigIn {
- 0% {
- -webkit-transform: scale(0.8);
- transform: scale(0.8);
- opacity: 0;
- }
- 100% {
- -webkit-transform: scale(1);
- transform: scale(1);
- opacity: 1;
- }
-}
-@keyframes antZoomBigIn {
- 0% {
- -webkit-transform: scale(0.8);
- transform: scale(0.8);
- opacity: 0;
- }
- 100% {
- -webkit-transform: scale(1);
- transform: scale(1);
- opacity: 1;
- }
-}
-@-webkit-keyframes antZoomBigOut {
- 0% {
- -webkit-transform: scale(1);
- transform: scale(1);
- }
- 100% {
- -webkit-transform: scale(0.8);
- transform: scale(0.8);
- opacity: 0;
- }
-}
-@keyframes antZoomBigOut {
- 0% {
- -webkit-transform: scale(1);
- transform: scale(1);
- }
- 100% {
- -webkit-transform: scale(0.8);
- transform: scale(0.8);
- opacity: 0;
- }
-}
-@-webkit-keyframes antZoomUpIn {
- 0% {
- -webkit-transform: scale(0.8);
- transform: scale(0.8);
- -webkit-transform-origin: 50% 0%;
- transform-origin: 50% 0%;
- opacity: 0;
- }
- 100% {
- -webkit-transform: scale(1);
- transform: scale(1);
- -webkit-transform-origin: 50% 0%;
- transform-origin: 50% 0%;
- }
-}
-@keyframes antZoomUpIn {
- 0% {
- -webkit-transform: scale(0.8);
- transform: scale(0.8);
- -webkit-transform-origin: 50% 0%;
- transform-origin: 50% 0%;
- opacity: 0;
- }
- 100% {
- -webkit-transform: scale(1);
- transform: scale(1);
- -webkit-transform-origin: 50% 0%;
- transform-origin: 50% 0%;
- }
-}
-@-webkit-keyframes antZoomUpOut {
- 0% {
- -webkit-transform: scale(1);
- transform: scale(1);
- -webkit-transform-origin: 50% 0%;
- transform-origin: 50% 0%;
- }
- 100% {
- -webkit-transform: scale(0.8);
- transform: scale(0.8);
- -webkit-transform-origin: 50% 0%;
- transform-origin: 50% 0%;
- opacity: 0;
- }
-}
-@keyframes antZoomUpOut {
- 0% {
- -webkit-transform: scale(1);
- transform: scale(1);
- -webkit-transform-origin: 50% 0%;
- transform-origin: 50% 0%;
- }
- 100% {
- -webkit-transform: scale(0.8);
- transform: scale(0.8);
- -webkit-transform-origin: 50% 0%;
- transform-origin: 50% 0%;
- opacity: 0;
- }
-}
-@-webkit-keyframes antZoomLeftIn {
- 0% {
- -webkit-transform: scale(0.8);
- transform: scale(0.8);
- -webkit-transform-origin: 0% 50%;
- transform-origin: 0% 50%;
- opacity: 0;
- }
- 100% {
- -webkit-transform: scale(1);
- transform: scale(1);
- -webkit-transform-origin: 0% 50%;
- transform-origin: 0% 50%;
- }
-}
-@keyframes antZoomLeftIn {
- 0% {
- -webkit-transform: scale(0.8);
- transform: scale(0.8);
- -webkit-transform-origin: 0% 50%;
- transform-origin: 0% 50%;
- opacity: 0;
- }
- 100% {
- -webkit-transform: scale(1);
- transform: scale(1);
- -webkit-transform-origin: 0% 50%;
- transform-origin: 0% 50%;
- }
-}
-@-webkit-keyframes antZoomLeftOut {
- 0% {
- -webkit-transform: scale(1);
- transform: scale(1);
- -webkit-transform-origin: 0% 50%;
- transform-origin: 0% 50%;
- }
- 100% {
- -webkit-transform: scale(0.8);
- transform: scale(0.8);
- -webkit-transform-origin: 0% 50%;
- transform-origin: 0% 50%;
- opacity: 0;
- }
-}
-@keyframes antZoomLeftOut {
- 0% {
- -webkit-transform: scale(1);
- transform: scale(1);
- -webkit-transform-origin: 0% 50%;
- transform-origin: 0% 50%;
- }
- 100% {
- -webkit-transform: scale(0.8);
- transform: scale(0.8);
- -webkit-transform-origin: 0% 50%;
- transform-origin: 0% 50%;
- opacity: 0;
- }
-}
-@-webkit-keyframes antZoomRightIn {
- 0% {
- -webkit-transform: scale(0.8);
- transform: scale(0.8);
- -webkit-transform-origin: 100% 50%;
- transform-origin: 100% 50%;
- opacity: 0;
- }
- 100% {
- -webkit-transform: scale(1);
- transform: scale(1);
- -webkit-transform-origin: 100% 50%;
- transform-origin: 100% 50%;
- }
-}
-@keyframes antZoomRightIn {
- 0% {
- -webkit-transform: scale(0.8);
- transform: scale(0.8);
- -webkit-transform-origin: 100% 50%;
- transform-origin: 100% 50%;
- opacity: 0;
- }
- 100% {
- -webkit-transform: scale(1);
- transform: scale(1);
- -webkit-transform-origin: 100% 50%;
- transform-origin: 100% 50%;
- }
-}
-@-webkit-keyframes antZoomRightOut {
- 0% {
- -webkit-transform: scale(1);
- transform: scale(1);
- -webkit-transform-origin: 100% 50%;
- transform-origin: 100% 50%;
- }
- 100% {
- -webkit-transform: scale(0.8);
- transform: scale(0.8);
- -webkit-transform-origin: 100% 50%;
- transform-origin: 100% 50%;
- opacity: 0;
- }
-}
-@keyframes antZoomRightOut {
- 0% {
- -webkit-transform: scale(1);
- transform: scale(1);
- -webkit-transform-origin: 100% 50%;
- transform-origin: 100% 50%;
- }
- 100% {
- -webkit-transform: scale(0.8);
- transform: scale(0.8);
- -webkit-transform-origin: 100% 50%;
- transform-origin: 100% 50%;
- opacity: 0;
- }
-}
-@-webkit-keyframes antZoomDownIn {
- 0% {
- -webkit-transform: scale(0.8);
- transform: scale(0.8);
- -webkit-transform-origin: 50% 100%;
- transform-origin: 50% 100%;
- opacity: 0;
- }
- 100% {
- -webkit-transform: scale(1);
- transform: scale(1);
- -webkit-transform-origin: 50% 100%;
- transform-origin: 50% 100%;
- }
-}
-@keyframes antZoomDownIn {
- 0% {
- -webkit-transform: scale(0.8);
- transform: scale(0.8);
- -webkit-transform-origin: 50% 100%;
- transform-origin: 50% 100%;
- opacity: 0;
- }
- 100% {
- -webkit-transform: scale(1);
- transform: scale(1);
- -webkit-transform-origin: 50% 100%;
- transform-origin: 50% 100%;
- }
-}
-@-webkit-keyframes antZoomDownOut {
- 0% {
- -webkit-transform: scale(1);
- transform: scale(1);
- -webkit-transform-origin: 50% 100%;
- transform-origin: 50% 100%;
- }
- 100% {
- -webkit-transform: scale(0.8);
- transform: scale(0.8);
- -webkit-transform-origin: 50% 100%;
- transform-origin: 50% 100%;
- opacity: 0;
- }
-}
-@keyframes antZoomDownOut {
- 0% {
- -webkit-transform: scale(1);
- transform: scale(1);
- -webkit-transform-origin: 50% 100%;
- transform-origin: 50% 100%;
- }
- 100% {
- -webkit-transform: scale(0.8);
- transform: scale(0.8);
- -webkit-transform-origin: 50% 100%;
- transform-origin: 50% 100%;
- opacity: 0;
- }
-}
-.ant-motion-collapse-legacy {
- overflow: hidden;
-}
-.ant-motion-collapse-legacy-active {
- -webkit-transition: height 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.15s cubic-bezier(0.645, 0.045, 0.355, 1) !important;
- transition: height 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.15s cubic-bezier(0.645, 0.045, 0.355, 1) !important;
-}
-.ant-motion-collapse {
- overflow: hidden;
- -webkit-transition: height 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.15s cubic-bezier(0.645, 0.045, 0.355, 1) !important;
- transition: height 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.15s cubic-bezier(0.645, 0.045, 0.355, 1) !important;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-affix {
- position: fixed;
- z-index: 10;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-alert {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- position: relative;
- max-height: 1000vh;
- padding: 8px 15px 8px 37px;
- word-wrap: break-word;
- border-radius: 2px;
-}
-.ant-alert.ant-alert-no-icon {
- padding: 8px 15px;
-}
-.ant-alert.ant-alert-no-icon .ant-alert-close-icon {
- top: 12.0005px;
-}
-.ant-alert.ant-alert-closable {
- padding-right: 30px;
-}
-.ant-alert-icon {
- position: absolute;
- top: 12.0005px;
- left: 16px;
-}
-.ant-alert-description {
- display: none;
- font-size: 14px;
- line-height: 22px;
-}
-.ant-alert-success {
- background-color: #f6ffed;
- border: 1px solid #b7eb8f;
-}
-.ant-alert-success .ant-alert-icon {
- color: #52c41a;
-}
-.ant-alert-info {
- background-color: #e6f7ff;
- border: 1px solid #91d5ff;
-}
-.ant-alert-info .ant-alert-icon {
- color: #1890ff;
-}
-.ant-alert-warning {
- background-color: #fffbe6;
- border: 1px solid #ffe58f;
-}
-.ant-alert-warning .ant-alert-icon {
- color: #faad14;
-}
-.ant-alert-error {
- background-color: #fff2f0;
- border: 1px solid #ffccc7;
-}
-.ant-alert-error .ant-alert-icon {
- color: #ff4d4f;
-}
-.ant-alert-error .ant-alert-description > pre {
- margin: 0;
- padding: 0;
-}
-.ant-alert-close-icon {
- position: absolute;
- top: 12.0005px;
- right: 16px;
- padding: 0;
- overflow: hidden;
- font-size: 12px;
- line-height: 12px;
- background-color: transparent;
- border: none;
- outline: none;
- cursor: pointer;
-}
-.ant-alert-close-icon .anticon-close {
- color: rgba(0, 0, 0, 0.45);
- -webkit-transition: color 0.3s;
- transition: color 0.3s;
-}
-.ant-alert-close-icon .anticon-close:hover {
- color: rgba(0, 0, 0, 0.75);
-}
-.ant-alert-close-text {
- color: rgba(0, 0, 0, 0.45);
- -webkit-transition: color 0.3s;
- transition: color 0.3s;
-}
-.ant-alert-close-text:hover {
- color: rgba(0, 0, 0, 0.75);
-}
-.ant-alert-with-description {
- position: relative;
- padding: 15px 15px 15px 63px;
- color: rgba(0, 0, 0, 0.65);
- line-height: 1.5715;
- border-radius: 2px;
-}
-.ant-alert-with-description.ant-alert-no-icon {
- padding: 15px 15px;
-}
-.ant-alert-with-description .ant-alert-icon {
- position: absolute;
- top: 15px;
- left: 24px;
- font-size: 24px;
-}
-.ant-alert-with-description .ant-alert-close-icon {
- position: absolute;
- top: 16px;
- right: 16px;
- font-size: 14px;
- cursor: pointer;
-}
-.ant-alert-with-description .ant-alert-message {
- display: block;
- margin-bottom: 4px;
- color: rgba(0, 0, 0, 0.85);
- font-size: 16px;
-}
-.ant-alert-message {
- color: rgba(0, 0, 0, 0.85);
-}
-.ant-alert-with-description .ant-alert-description {
- display: block;
-}
-.ant-alert.ant-alert-closing {
- max-height: 0;
- margin: 0;
- padding-top: 0;
- padding-bottom: 0;
- -webkit-transform-origin: 50% 0;
- transform-origin: 50% 0;
- -webkit-transition: all 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);
- transition: all 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);
-}
-.ant-alert-slide-up-leave {
- -webkit-animation: antAlertSlideUpOut 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);
- animation: antAlertSlideUpOut 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
-}
-.ant-alert-banner {
- margin-bottom: 0;
- border: 0;
- border-radius: 0;
-}
-@-webkit-keyframes antAlertSlideUpIn {
- 0% {
- -webkit-transform: scaleY(0);
- transform: scaleY(0);
- -webkit-transform-origin: 0% 0%;
- transform-origin: 0% 0%;
- opacity: 0;
- }
- 100% {
- -webkit-transform: scaleY(1);
- transform: scaleY(1);
- -webkit-transform-origin: 0% 0%;
- transform-origin: 0% 0%;
- opacity: 1;
- }
-}
-@keyframes antAlertSlideUpIn {
- 0% {
- -webkit-transform: scaleY(0);
- transform: scaleY(0);
- -webkit-transform-origin: 0% 0%;
- transform-origin: 0% 0%;
- opacity: 0;
- }
- 100% {
- -webkit-transform: scaleY(1);
- transform: scaleY(1);
- -webkit-transform-origin: 0% 0%;
- transform-origin: 0% 0%;
- opacity: 1;
- }
-}
-@-webkit-keyframes antAlertSlideUpOut {
- 0% {
- -webkit-transform: scaleY(1);
- transform: scaleY(1);
- -webkit-transform-origin: 0% 0%;
- transform-origin: 0% 0%;
- opacity: 1;
- }
- 100% {
- -webkit-transform: scaleY(0);
- transform: scaleY(0);
- -webkit-transform-origin: 0% 0%;
- transform-origin: 0% 0%;
- opacity: 0;
- }
-}
-@keyframes antAlertSlideUpOut {
- 0% {
- -webkit-transform: scaleY(1);
- transform: scaleY(1);
- -webkit-transform-origin: 0% 0%;
- transform-origin: 0% 0%;
- opacity: 1;
- }
- 100% {
- -webkit-transform: scaleY(0);
- transform: scaleY(0);
- -webkit-transform-origin: 0% 0%;
- transform-origin: 0% 0%;
- opacity: 0;
- }
-}
-.ant-alert.ant-alert-rtl {
- padding: 8px 37px 8px 15px;
- direction: rtl;
-}
-.ant-alert-rtl.ant-alert.ant-alert-no-icon {
- padding: 8px 15px;
-}
-.ant-alert.ant-alert-rtl.ant-alert.ant-alert-closable {
- padding-right: 37px;
- padding-left: 30px;
-}
-.ant-alert.ant-alert-rtl.ant-alert.ant-alert-no-icon.ant-alert-closable {
- padding-right: 15px;
- padding-left: 30px;
-}
-.ant-alert-rtl .ant-alert-icon {
- right: 16px;
- left: auto;
-}
-.ant-alert-rtl .ant-alert-close-icon {
- right: auto;
- left: 16px;
-}
-.ant-alert.ant-alert-rtl.ant-alert-with-description,
-.ant-alert.ant-alert-rtl.ant-alert-with-description.ant-alert-closable {
- padding: 15px 63px 15px 15px;
-}
-.ant-alert.ant-alert-rtl.ant-alert-with-description.ant-alert-no-icon {
- padding: 15px;
-}
-.ant-alert-rtl.ant-alert-with-description .ant-alert-icon {
- right: 24px;
- left: auto;
-}
-.ant-alert-rtl.ant-alert-with-description .ant-alert-close-icon {
- right: auto;
- left: 16px;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-anchor {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- position: relative;
- padding-left: 2px;
-}
-.ant-anchor-wrapper {
- margin-left: -4px;
- padding-left: 4px;
- overflow: auto;
- background-color: #fff;
-}
-.ant-anchor-ink {
- position: absolute;
- top: 0;
- left: 0;
- height: 100%;
-}
-.ant-anchor-ink::before {
- position: relative;
- display: block;
- width: 2px;
- height: 100%;
- margin: 0 auto;
- background-color: #f0f0f0;
- content: ' ';
-}
-.ant-anchor-ink-ball {
- position: absolute;
- left: 50%;
- display: none;
- width: 8px;
- height: 8px;
- background-color: #fff;
- border: 2px solid #1890ff;
- border-radius: 8px;
- -webkit-transform: translateX(-50%);
- transform: translateX(-50%);
- -webkit-transition: top 0.3s ease-in-out;
- transition: top 0.3s ease-in-out;
-}
-.ant-anchor-ink-ball.visible {
- display: inline-block;
-}
-.ant-anchor.fixed .ant-anchor-ink .ant-anchor-ink-ball {
- display: none;
-}
-.ant-anchor-link {
- padding: 7px 0 7px 16px;
- line-height: 1.143;
-}
-.ant-anchor-link-title {
- position: relative;
- display: block;
- margin-bottom: 6px;
- overflow: hidden;
- color: rgba(0, 0, 0, 0.65);
- white-space: nowrap;
- text-overflow: ellipsis;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
-}
-.ant-anchor-link-title:only-child {
- margin-bottom: 0;
-}
-.ant-anchor-link-active > .ant-anchor-link-title {
- color: #1890ff;
-}
-.ant-anchor-link .ant-anchor-link {
- padding-top: 5px;
- padding-bottom: 5px;
-}
-.ant-anchor-rtl {
- direction: rtl;
-}
-.ant-anchor-rtl.ant-anchor-wrapper {
- margin-right: -4px;
- margin-left: 0;
- padding-right: 4px;
- padding-left: 0;
-}
-.ant-anchor-rtl .ant-anchor-ink {
- right: 0;
- left: auto;
-}
-.ant-anchor-rtl .ant-anchor-ink-ball {
- right: 50%;
- left: 0;
- -webkit-transform: translateX(50%);
- transform: translateX(50%);
-}
-.ant-anchor-rtl .ant-anchor-link {
- padding: 7px 16px 7px 0;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-select-auto-complete {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
-}
-.ant-select-auto-complete .ant-select-clear {
- right: 13px;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-select-single .ant-select-selector {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
-}
-.ant-select-single .ant-select-selector .ant-select-selection-search {
- position: absolute;
- top: 0;
- right: 11px;
- bottom: 0;
- left: 11px;
-}
-.ant-select-single .ant-select-selector .ant-select-selection-search-input {
- width: 100%;
-}
-.ant-select-single .ant-select-selector .ant-select-selection-item,
-.ant-select-single .ant-select-selector .ant-select-selection-placeholder {
- padding: 0;
- line-height: 30px;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
-}
-@supports (-moz-appearance: meterbar) {
- .ant-select-single .ant-select-selector .ant-select-selection-item,
- .ant-select-single .ant-select-selector .ant-select-selection-placeholder {
- line-height: 30px;
- }
-}
-.ant-select-single .ant-select-selector .ant-select-selection-item {
- position: relative;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-.ant-select-single .ant-select-selector .ant-select-selection-placeholder {
- pointer-events: none;
-}
-.ant-select-single .ant-select-selector::after,
-.ant-select-single .ant-select-selector .ant-select-selection-item::after,
-.ant-select-single .ant-select-selector .ant-select-selection-placeholder::after {
- display: inline-block;
- width: 0;
- visibility: hidden;
- content: '\a0';
-}
-.ant-select-single.ant-select-show-arrow .ant-select-selection-search {
- right: 25px;
-}
-.ant-select-single.ant-select-show-arrow .ant-select-selection-item,
-.ant-select-single.ant-select-show-arrow .ant-select-selection-placeholder {
- padding-right: 18px;
-}
-.ant-select-single.ant-select-open .ant-select-selection-item {
- opacity: 0.4;
-}
-.ant-select-single:not(.ant-select-customize-input) .ant-select-selector {
- position: relative;
- background-color: #fff;
- border: 1px solid #d9d9d9;
- border-radius: 2px;
- -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
- transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
- width: 100%;
- height: 32px;
- padding: 0 11px;
-}
-.ant-select-single:not(.ant-select-customize-input) .ant-select-selector input {
- cursor: pointer;
-}
-.ant-select-show-search.ant-select-single:not(.ant-select-customize-input) .ant-select-selector {
- cursor: text;
-}
-.ant-select-show-search.ant-select-single:not(.ant-select-customize-input) .ant-select-selector input {
- cursor: auto;
-}
-.ant-select-focused.ant-select-single:not(.ant-select-customize-input) .ant-select-selector {
- border-color: #40a9ff;
- border-right-width: 1px !important;
- outline: 0;
- -webkit-box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
- box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
-}
-.ant-select-disabled.ant-select-single:not(.ant-select-customize-input) .ant-select-selector {
- color: rgba(0, 0, 0, 0.25);
- background: #f5f5f5;
- cursor: not-allowed;
-}
-.ant-select-disabled.ant-select-single:not(.ant-select-customize-input) .ant-select-selector input {
- cursor: not-allowed;
-}
-.ant-select-single:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input {
- margin: 0;
- padding: 0;
- background: transparent;
- border: none;
- outline: none;
-}
-.ant-select-single:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input {
- height: 30px;
-}
-.ant-select-single:not(.ant-select-customize-input) .ant-select-selector::after {
- line-height: 30px;
-}
-.ant-select-single.ant-select-customize-input .ant-select-selector::after {
- display: none;
-}
-.ant-select-single.ant-select-customize-input .ant-select-selector .ant-select-selection-search {
- position: static;
- width: 100%;
-}
-.ant-select-single.ant-select-customize-input .ant-select-selector .ant-select-selection-placeholder {
- position: absolute;
- right: 0;
- left: 0;
- padding: 0 11px;
-}
-.ant-select-single.ant-select-customize-input .ant-select-selector .ant-select-selection-placeholder::after {
- display: none;
-}
-.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector {
- height: 40px;
-}
-.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector::after,
-.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-item,
-.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-placeholder {
- line-height: 38px;
-}
-.ant-select-single.ant-select-lg:not(.ant-select-customize-input):not(.ant-select-customize-input) .ant-select-selection-search-input {
- height: 38px;
-}
-.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector {
- height: 24px;
-}
-.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector::after,
-.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-item,
-.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-placeholder {
- line-height: 22px;
-}
-.ant-select-single.ant-select-sm:not(.ant-select-customize-input):not(.ant-select-customize-input) .ant-select-selection-search-input {
- height: 22px;
-}
-.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selection-search {
- right: 7px;
- left: 7px;
-}
-.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector {
- padding: 0 7px;
-}
-.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-search {
- right: 28px;
-}
-.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-item,
-.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-placeholder {
- padding-right: 21px;
-}
-.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector {
- padding: 0 11px;
-}
-/**
- * Do not merge `height` & `line-height` under style with `selection` & `search`,
- * since chrome may update to redesign with its align logic.
- */
-.ant-select-multiple .ant-select-selector {
- position: relative;
- background-color: #fff;
- border: 1px solid #d9d9d9;
- border-radius: 2px;
- -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
- transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -ms-flex-wrap: wrap;
- flex-wrap: wrap;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- padding: 1px 4px;
-}
-.ant-select-multiple .ant-select-selector input {
- cursor: pointer;
-}
-.ant-select-show-search.ant-select-multiple .ant-select-selector {
- cursor: text;
-}
-.ant-select-show-search.ant-select-multiple .ant-select-selector input {
- cursor: auto;
-}
-.ant-select-focused.ant-select-multiple .ant-select-selector {
- border-color: #40a9ff;
- border-right-width: 1px !important;
- outline: 0;
- -webkit-box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
- box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
-}
-.ant-select-disabled.ant-select-multiple .ant-select-selector {
- color: rgba(0, 0, 0, 0.25);
- background: #f5f5f5;
- cursor: not-allowed;
-}
-.ant-select-disabled.ant-select-multiple .ant-select-selector input {
- cursor: not-allowed;
-}
-.ant-select-multiple .ant-select-selector .ant-select-selection-search-input {
- margin: 0;
- padding: 0;
- background: transparent;
- border: none;
- outline: none;
-}
-.ant-select-show-search.ant-select-multiple .ant-select-selector {
- cursor: text;
-}
-.ant-select-multiple .ant-select-selector::after {
- display: inline-block;
- width: 0;
- margin: 2px 0;
- line-height: 24px;
- content: '\a0';
-}
-.ant-select-multiple.ant-select-allow-clear .ant-select-selector {
- padding-right: 24px;
-}
-.ant-select-multiple .ant-select-selection-item {
- position: relative;
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-flex: 0;
- -ms-flex: none;
- flex: none;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- max-width: 100%;
- height: 24px;
- margin-top: 2px;
- margin-right: 4px;
- margin-bottom: 2px;
- padding: 0 4px 0 8px;
- line-height: 22px;
- background: #f5f5f5;
- border: 1px solid #f0f0f0;
- border-radius: 2px;
- cursor: default;
- -webkit-transition: font-size 0.3s, line-height 0.3s, height 0.3s;
- transition: font-size 0.3s, line-height 0.3s, height 0.3s;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-.ant-select-multiple .ant-select-selection-item-content {
- display: inline-block;
- margin-right: 4px;
- overflow: hidden;
- white-space: nowrap;
- text-overflow: ellipsis;
-}
-.ant-select-multiple .ant-select-selection-item-remove {
- color: inherit;
- font-style: normal;
- line-height: 0;
- text-align: center;
- text-transform: none;
- vertical-align: -0.125em;
- text-rendering: optimizeLegibility;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
- color: rgba(0, 0, 0, 0.45);
- font-weight: bold;
- font-size: 12px;
- line-height: inherit;
- cursor: pointer;
- display: inline-block;
- font-size: 10px;
-}
-.ant-select-multiple .ant-select-selection-item-remove > * {
- line-height: 1;
-}
-.ant-select-multiple .ant-select-selection-item-remove svg {
- display: inline-block;
-}
-.ant-select-multiple .ant-select-selection-item-remove::before {
- display: none;
-}
-.ant-select-multiple .ant-select-selection-item-remove .ant-select-multiple .ant-select-selection-item-remove-icon {
- display: block;
-}
-.ant-select-multiple .ant-select-selection-item-remove > .anticon {
- vertical-align: -0.2em;
-}
-.ant-select-multiple .ant-select-selection-item-remove:hover {
- color: rgba(0, 0, 0, 0.75);
-}
-.ant-select-multiple .ant-select-selection-search {
- position: relative;
- margin-left: 0.5px;
-}
-.ant-select-multiple .ant-select-selection-search-input,
-.ant-select-multiple .ant-select-selection-search-mirror {
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
- line-height: 1.5715;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
-}
-.ant-select-multiple .ant-select-selection-search-input {
- width: 100%;
- min-width: 3px;
-}
-.ant-select-multiple .ant-select-selection-search-mirror {
- position: absolute;
- top: 0;
- left: 0;
- z-index: 999;
- white-space: nowrap;
- visibility: hidden;
-}
-.ant-select-multiple .ant-select-selection-search:first-child .ant-select-selection-search-input {
- margin-left: 6.5px;
-}
-.ant-select-multiple .ant-select-selection-placeholder {
- position: absolute;
- top: 50%;
- right: 11px;
- left: 11px;
- -webkit-transform: translateY(-50%);
- transform: translateY(-50%);
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
-}
-.ant-select-multiple.ant-select-lg .ant-select-selector::after {
- line-height: 32px;
-}
-.ant-select-multiple.ant-select-lg .ant-select-selection-item {
- height: 32px;
- line-height: 30px;
-}
-.ant-select-multiple.ant-select-lg .ant-select-selection-search {
- height: 33px;
- line-height: 33px;
-}
-.ant-select-multiple.ant-select-lg .ant-select-selection-search-input,
-.ant-select-multiple.ant-select-lg .ant-select-selection-search-mirror {
- height: 32px;
- line-height: 30px;
-}
-.ant-select-multiple.ant-select-sm .ant-select-selector::after {
- line-height: 16px;
-}
-.ant-select-multiple.ant-select-sm .ant-select-selection-item {
- height: 16px;
- line-height: 14px;
-}
-.ant-select-multiple.ant-select-sm .ant-select-selection-search {
- height: 17px;
- line-height: 17px;
-}
-.ant-select-multiple.ant-select-sm .ant-select-selection-search-input,
-.ant-select-multiple.ant-select-sm .ant-select-selection-search-mirror {
- height: 16px;
- line-height: 14px;
-}
-.ant-select-multiple.ant-select-sm .ant-select-selection-placeholder {
- left: 7px;
-}
-.ant-select-multiple.ant-select-sm .ant-select-selection-search:first-child .ant-select-selection-search-input {
- margin-left: 3px;
-}
-.ant-select-multiple.ant-select-lg .ant-select-selection-item {
- height: 32px;
- line-height: 32px;
-}
-.ant-select-disabled .ant-select-selection-item-remove {
- display: none;
-}
-/* Reset search input style */
-.ant-select {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- position: relative;
- display: inline-block;
- cursor: pointer;
-}
-.ant-select:not(.ant-select-disabled):hover .ant-select-selector {
- border-color: #40a9ff;
- border-right-width: 1px !important;
-}
-.ant-select-selection-item {
- -webkit-box-flex: 1;
- -ms-flex: 1;
- flex: 1;
- overflow: hidden;
- white-space: nowrap;
- text-overflow: ellipsis;
-}
-@media all and (-ms-high-contrast: none) {
- .ant-select-selection-item *::-ms-backdrop,
- .ant-select-selection-item {
- -ms-flex: auto;
- flex: auto;
- }
-}
-.ant-select-selection-placeholder {
- -webkit-box-flex: 1;
- -ms-flex: 1;
- flex: 1;
- overflow: hidden;
- white-space: nowrap;
- text-overflow: ellipsis;
- opacity: 0.4;
-}
-@media all and (-ms-high-contrast: none) {
- .ant-select-selection-placeholder *::-ms-backdrop,
- .ant-select-selection-placeholder {
- -ms-flex: auto;
- flex: auto;
- }
-}
-.ant-select-arrow {
- display: inline-block;
- color: inherit;
- font-style: normal;
- line-height: 0;
- text-transform: none;
- vertical-align: -0.125em;
- text-rendering: optimizeLegibility;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
- position: absolute;
- top: 53%;
- right: 11px;
- width: 12px;
- height: 12px;
- margin-top: -6px;
- color: rgba(0, 0, 0, 0.25);
- font-size: 12px;
- line-height: 1;
- text-align: center;
- pointer-events: none;
-}
-.ant-select-arrow > * {
- line-height: 1;
-}
-.ant-select-arrow svg {
- display: inline-block;
-}
-.ant-select-arrow::before {
- display: none;
-}
-.ant-select-arrow .ant-select-arrow-icon {
- display: block;
-}
-.ant-select-arrow .anticon {
- vertical-align: top;
- -webkit-transition: -webkit-transform 0.3s;
- transition: -webkit-transform 0.3s;
- transition: transform 0.3s;
- transition: transform 0.3s, -webkit-transform 0.3s;
-}
-.ant-select-arrow .anticon > svg {
- vertical-align: top;
-}
-.ant-select-arrow .anticon:not(.ant-select-suffix) {
- pointer-events: auto;
-}
-.ant-select-clear {
- position: absolute;
- top: 50%;
- right: 11px;
- z-index: 1;
- display: inline-block;
- width: 12px;
- height: 12px;
- margin-top: -6px;
- color: rgba(0, 0, 0, 0.25);
- font-size: 12px;
- font-style: normal;
- line-height: 1;
- text-align: center;
- text-transform: none;
- background: #fff;
- cursor: pointer;
- opacity: 0;
- -webkit-transition: color 0.3s ease, opacity 0.15s ease;
- transition: color 0.3s ease, opacity 0.15s ease;
- text-rendering: auto;
-}
-.ant-select-clear::before {
- display: block;
-}
-.ant-select-clear:hover {
- color: rgba(0, 0, 0, 0.45);
-}
-.ant-select:hover .ant-select-clear {
- opacity: 1;
-}
-.ant-select-dropdown {
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- position: absolute;
- top: -9999px;
- left: -9999px;
- z-index: 1050;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- padding: 4px 0;
- overflow: hidden;
- font-size: 14px;
- font-variant: initial;
- background-color: #fff;
- border-radius: 2px;
- outline: none;
- -webkit-box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
- box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
-}
-.ant-select-dropdown.slide-up-enter.slide-up-enter-active.ant-select-dropdown-placement-bottomLeft,
-.ant-select-dropdown.slide-up-appear.slide-up-appear-active.ant-select-dropdown-placement-bottomLeft {
- -webkit-animation-name: antSlideUpIn;
- animation-name: antSlideUpIn;
-}
-.ant-select-dropdown.slide-up-enter.slide-up-enter-active.ant-select-dropdown-placement-topLeft,
-.ant-select-dropdown.slide-up-appear.slide-up-appear-active.ant-select-dropdown-placement-topLeft {
- -webkit-animation-name: antSlideDownIn;
- animation-name: antSlideDownIn;
-}
-.ant-select-dropdown.slide-up-leave.slide-up-leave-active.ant-select-dropdown-placement-bottomLeft {
- -webkit-animation-name: antSlideUpOut;
- animation-name: antSlideUpOut;
-}
-.ant-select-dropdown.slide-up-leave.slide-up-leave-active.ant-select-dropdown-placement-topLeft {
- -webkit-animation-name: antSlideDownOut;
- animation-name: antSlideDownOut;
-}
-.ant-select-dropdown-hidden {
- display: none;
-}
-.ant-select-dropdown-empty {
- color: rgba(0, 0, 0, 0.25);
-}
-.ant-select-item-empty {
- position: relative;
- display: block;
- min-height: 32px;
- padding: 5px 12px;
- color: rgba(0, 0, 0, 0.65);
- font-weight: normal;
- font-size: 14px;
- line-height: 22px;
- color: rgba(0, 0, 0, 0.25);
-}
-.ant-select-item {
- position: relative;
- display: block;
- min-height: 32px;
- padding: 5px 12px;
- color: rgba(0, 0, 0, 0.65);
- font-weight: normal;
- font-size: 14px;
- line-height: 22px;
- cursor: pointer;
- -webkit-transition: background 0.3s ease;
- transition: background 0.3s ease;
-}
-.ant-select-item-group {
- color: rgba(0, 0, 0, 0.45);
- font-size: 12px;
- cursor: default;
-}
-.ant-select-item-option {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
-}
-.ant-select-item-option-content {
- -webkit-box-flex: 1;
- -ms-flex: auto;
- flex: auto;
- overflow: hidden;
- white-space: nowrap;
- text-overflow: ellipsis;
-}
-.ant-select-item-option-state {
- -webkit-box-flex: 0;
- -ms-flex: none;
- flex: none;
-}
-.ant-select-item-option-active:not(.ant-select-item-option-disabled) {
- background-color: #f5f5f5;
-}
-.ant-select-item-option-selected:not(.ant-select-item-option-disabled) {
- color: rgba(0, 0, 0, 0.65);
- font-weight: 600;
- background-color: #e6f7ff;
-}
-.ant-select-item-option-selected:not(.ant-select-item-option-disabled) .ant-select-item-option-state {
- color: #1890ff;
-}
-.ant-select-item-option-disabled {
- color: rgba(0, 0, 0, 0.25);
- cursor: not-allowed;
-}
-.ant-select-item-option-grouped {
- padding-left: 24px;
-}
-.ant-select-lg {
- font-size: 16px;
-}
-.ant-select-borderless .ant-select-selector {
- background-color: transparent !important;
- border-color: transparent !important;
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
-}
-.ant-select-rtl {
- direction: rtl;
-}
-.ant-select-rtl .ant-select-arrow {
- right: initial;
- left: 11px;
-}
-.ant-select-rtl .ant-select-clear {
- right: initial;
- left: 11px;
-}
-.ant-select-dropdown-rtl {
- direction: rtl;
-}
-.ant-select-dropdown-rtl .ant-select-item-option-grouped {
- padding-right: 24px;
- padding-left: 12px;
-}
-.ant-select-rtl.ant-select-multiple.ant-select-allow-clear .ant-select-selector {
- padding-right: 4px;
- padding-left: 24px;
-}
-.ant-select-rtl.ant-select-multiple .ant-select-selection-item {
- margin-right: 0;
- margin-left: 4px;
- padding: 0 8px 0 4px;
- text-align: right;
-}
-.ant-select-rtl.ant-select-multiple .ant-select-selection-item-content {
- margin-right: 0;
- margin-left: 4px;
- text-align: right;
-}
-.ant-select-rtl.ant-select-multiple .ant-select-selection-search {
- margin-right: 0.5px;
- margin-left: 4px;
-}
-.ant-select-rtl.ant-select-multiple .ant-select-selection-search-mirror {
- right: 0;
- left: auto;
-}
-.ant-select-rtl.ant-select-multiple .ant-select-selection-placeholder {
- right: 11px;
- left: auto;
-}
-.ant-select-rtl.ant-select-multiple.ant-select-sm .ant-select-selection-placeholder {
- right: 7px;
-}
-.ant-select-rtl.ant-select-single .ant-select-selector .ant-select-selection-item,
-.ant-select-rtl.ant-select-single .ant-select-selector .ant-select-selection-placeholder {
- right: 0;
- left: 9px;
- text-align: right;
-}
-.ant-select-rtl.ant-select-single.ant-select-show-arrow .ant-select-selection-search {
- right: 11px;
- left: 25px;
-}
-.ant-select-rtl.ant-select-single.ant-select-show-arrow .ant-select-selection-item,
-.ant-select-rtl.ant-select-single.ant-select-show-arrow .ant-select-selection-placeholder {
- padding-right: 0;
- padding-left: 18px;
-}
-.ant-select-rtl.ant-select-single:not(.ant-select-customize-input) .ant-select-selector {
- padding: 0 11px;
-}
-.ant-select-rtl.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-search {
- right: 0;
-}
-.ant-select-rtl.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-item,
-.ant-select-rtl.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-placeholder {
- padding-right: 0;
- padding-left: 21px;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-empty {
- margin: 0 8px;
- font-size: 14px;
- line-height: 1.5715;
- text-align: center;
-}
-.ant-empty-image {
- height: 100px;
- margin-bottom: 8px;
-}
-.ant-empty-image img {
- height: 100%;
-}
-.ant-empty-image svg {
- height: 100%;
- margin: auto;
-}
-.ant-empty-description {
- margin: 0;
-}
-.ant-empty-footer {
- margin-top: 16px;
-}
-.ant-empty-normal {
- margin: 32px 0;
- color: rgba(0, 0, 0, 0.25);
-}
-.ant-empty-normal .ant-empty-image {
- height: 40px;
-}
-.ant-empty-small {
- margin: 8px 0;
- color: rgba(0, 0, 0, 0.25);
-}
-.ant-empty-small .ant-empty-image {
- height: 35px;
-}
-.ant-empty-img-default-ellipse {
- fill-opacity: 0.8;
- fill: #f5f5f5;
-}
-.ant-empty-img-default-path-1 {
- fill: #aeb8c2;
-}
-.ant-empty-img-default-path-2 {
- fill: url(#linearGradient-1);
-}
-.ant-empty-img-default-path-3 {
- fill: #f5f5f7;
-}
-.ant-empty-img-default-path-4 {
- fill: #dce0e6;
-}
-.ant-empty-img-default-path-5 {
- fill: #dce0e6;
-}
-.ant-empty-img-default-g {
- fill: #fff;
-}
-.ant-empty-img-simple-ellipse {
- fill: #f5f5f5;
-}
-.ant-empty-img-simple-g {
- stroke: #d9d9d9;
-}
-.ant-empty-img-simple-path {
- fill: #fafafa;
-}
-.ant-empty-rtl {
- direction: rtl;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-avatar {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- position: relative;
- display: inline-block;
- overflow: hidden;
- color: #fff;
- white-space: nowrap;
- text-align: center;
- vertical-align: middle;
- background: #ccc;
- width: 32px;
- height: 32px;
- line-height: 32px;
- border-radius: 50%;
-}
-.ant-avatar-image {
- background: transparent;
-}
-.ant-avatar-string {
- position: absolute;
- left: 50%;
- -webkit-transform-origin: 0 center;
- transform-origin: 0 center;
-}
-.ant-avatar.ant-avatar-icon {
- font-size: 18px;
-}
-.ant-avatar.ant-avatar-icon > .anticon {
- margin: 0;
-}
-.ant-avatar-lg {
- width: 40px;
- height: 40px;
- line-height: 40px;
- border-radius: 50%;
-}
-.ant-avatar-lg-string {
- position: absolute;
- left: 50%;
- -webkit-transform-origin: 0 center;
- transform-origin: 0 center;
-}
-.ant-avatar-lg.ant-avatar-icon {
- font-size: 24px;
-}
-.ant-avatar-lg.ant-avatar-icon > .anticon {
- margin: 0;
-}
-.ant-avatar-sm {
- width: 24px;
- height: 24px;
- line-height: 24px;
- border-radius: 50%;
-}
-.ant-avatar-sm-string {
- position: absolute;
- left: 50%;
- -webkit-transform-origin: 0 center;
- transform-origin: 0 center;
-}
-.ant-avatar-sm.ant-avatar-icon {
- font-size: 14px;
-}
-.ant-avatar-sm.ant-avatar-icon > .anticon {
- margin: 0;
-}
-.ant-avatar-square {
- border-radius: 2px;
-}
-.ant-avatar > img {
- display: block;
- width: 100%;
- height: 100%;
- -o-object-fit: cover;
- object-fit: cover;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-back-top {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- position: fixed;
- right: 100px;
- bottom: 50px;
- z-index: 10;
- width: 40px;
- height: 40px;
- cursor: pointer;
-}
-.ant-back-top:empty {
- display: none;
-}
-.ant-back-top-rtl {
- right: auto;
- left: 100px;
- direction: rtl;
-}
-.ant-back-top-content {
- width: 40px;
- height: 40px;
- overflow: hidden;
- color: #fff;
- text-align: center;
- background-color: rgba(0, 0, 0, 0.45);
- border-radius: 20px;
- -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
- transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
-}
-.ant-back-top-content:hover {
- background-color: rgba(0, 0, 0, 0.65);
- -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
- transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
-}
-.ant-back-top-icon {
- font-size: 24px;
- line-height: 40px;
-}
-@media screen and (max-width: 768px) {
- .ant-back-top {
- right: 60px;
- }
-}
-@media screen and (max-width: 480px) {
- .ant-back-top {
- right: 20px;
- }
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-badge {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- position: relative;
- display: inline-block;
- color: unset;
- line-height: 1;
-}
-.ant-badge-count {
- z-index: auto;
- min-width: 20px;
- height: 20px;
- padding: 0 6px;
- color: #fff;
- font-weight: normal;
- font-size: 12px;
- line-height: 20px;
- white-space: nowrap;
- text-align: center;
- background: #ff4d4f;
- border-radius: 10px;
- -webkit-box-shadow: 0 0 0 1px #fff;
- box-shadow: 0 0 0 1px #fff;
-}
-.ant-badge-count a,
-.ant-badge-count a:hover {
- color: #fff;
-}
-.ant-badge-multiple-words {
- padding: 0 8px;
-}
-.ant-badge-dot {
- z-index: auto;
- width: 6px;
- height: 6px;
- background: #ff4d4f;
- border-radius: 100%;
- -webkit-box-shadow: 0 0 0 1px #fff;
- box-shadow: 0 0 0 1px #fff;
-}
-.ant-badge-count,
-.ant-badge-dot,
-.ant-badge .ant-scroll-number-custom-component {
- position: absolute;
- top: 0;
- right: 0;
- -webkit-transform: translate(50%, -50%);
- transform: translate(50%, -50%);
- -webkit-transform-origin: 100% 0%;
- transform-origin: 100% 0%;
-}
-.ant-badge-status {
- line-height: inherit;
- vertical-align: baseline;
-}
-.ant-badge-status-dot {
- position: relative;
- top: -1px;
- display: inline-block;
- width: 6px;
- height: 6px;
- vertical-align: middle;
- border-radius: 50%;
-}
-.ant-badge-status-success {
- background-color: #52c41a;
-}
-.ant-badge-status-processing {
- position: relative;
- background-color: #1890ff;
-}
-.ant-badge-status-processing::after {
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- border: 1px solid #1890ff;
- border-radius: 50%;
- -webkit-animation: antStatusProcessing 1.2s infinite ease-in-out;
- animation: antStatusProcessing 1.2s infinite ease-in-out;
- content: '';
-}
-.ant-badge-status-default {
- background-color: #d9d9d9;
-}
-.ant-badge-status-error {
- background-color: #ff4d4f;
-}
-.ant-badge-status-warning {
- background-color: #faad14;
-}
-.ant-badge-status-pink {
- background: #eb2f96;
-}
-.ant-badge-status-magenta {
- background: #eb2f96;
-}
-.ant-badge-status-red {
- background: #f5222d;
-}
-.ant-badge-status-volcano {
- background: #fa541c;
-}
-.ant-badge-status-orange {
- background: #fa8c16;
-}
-.ant-badge-status-yellow {
- background: #fadb14;
-}
-.ant-badge-status-gold {
- background: #faad14;
-}
-.ant-badge-status-cyan {
- background: #13c2c2;
-}
-.ant-badge-status-lime {
- background: #a0d911;
-}
-.ant-badge-status-green {
- background: #52c41a;
-}
-.ant-badge-status-blue {
- background: #1890ff;
-}
-.ant-badge-status-geekblue {
- background: #2f54eb;
-}
-.ant-badge-status-purple {
- background: #722ed1;
-}
-.ant-badge-status-text {
- margin-left: 8px;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
-}
-.ant-badge-zoom-appear,
-.ant-badge-zoom-enter {
- -webkit-animation: antZoomBadgeIn 0.3s cubic-bezier(0.12, 0.4, 0.29, 1.46);
- animation: antZoomBadgeIn 0.3s cubic-bezier(0.12, 0.4, 0.29, 1.46);
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
-}
-.ant-badge-zoom-leave {
- -webkit-animation: antZoomBadgeOut 0.3s cubic-bezier(0.71, -0.46, 0.88, 0.6);
- animation: antZoomBadgeOut 0.3s cubic-bezier(0.71, -0.46, 0.88, 0.6);
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
-}
-.ant-badge-not-a-wrapper:not(.ant-badge-status) {
- vertical-align: middle;
-}
-.ant-badge-not-a-wrapper .ant-scroll-number {
- position: relative;
- top: auto;
- display: block;
-}
-.ant-badge-not-a-wrapper .ant-badge-count {
- -webkit-transform: none;
- transform: none;
-}
-@-webkit-keyframes antStatusProcessing {
- 0% {
- -webkit-transform: scale(0.8);
- transform: scale(0.8);
- opacity: 0.5;
- }
- 100% {
- -webkit-transform: scale(2.4);
- transform: scale(2.4);
- opacity: 0;
- }
-}
-@keyframes antStatusProcessing {
- 0% {
- -webkit-transform: scale(0.8);
- transform: scale(0.8);
- opacity: 0.5;
- }
- 100% {
- -webkit-transform: scale(2.4);
- transform: scale(2.4);
- opacity: 0;
- }
-}
-.ant-scroll-number {
- overflow: hidden;
-}
-.ant-scroll-number-only {
- display: inline-block;
- height: 20px;
- -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
- transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
-}
-.ant-scroll-number-only > p.ant-scroll-number-only-unit {
- height: 20px;
- margin: 0;
-}
-.ant-scroll-number-symbol {
- vertical-align: top;
-}
-@-webkit-keyframes antZoomBadgeIn {
- 0% {
- -webkit-transform: scale(0) translate(50%, -50%);
- transform: scale(0) translate(50%, -50%);
- opacity: 0;
- }
- 100% {
- -webkit-transform: scale(1) translate(50%, -50%);
- transform: scale(1) translate(50%, -50%);
- }
-}
-@keyframes antZoomBadgeIn {
- 0% {
- -webkit-transform: scale(0) translate(50%, -50%);
- transform: scale(0) translate(50%, -50%);
- opacity: 0;
- }
- 100% {
- -webkit-transform: scale(1) translate(50%, -50%);
- transform: scale(1) translate(50%, -50%);
- }
-}
-@-webkit-keyframes antZoomBadgeOut {
- 0% {
- -webkit-transform: scale(1) translate(50%, -50%);
- transform: scale(1) translate(50%, -50%);
- }
- 100% {
- -webkit-transform: scale(0) translate(50%, -50%);
- transform: scale(0) translate(50%, -50%);
- opacity: 0;
- }
-}
-@keyframes antZoomBadgeOut {
- 0% {
- -webkit-transform: scale(1) translate(50%, -50%);
- transform: scale(1) translate(50%, -50%);
- }
- 100% {
- -webkit-transform: scale(0) translate(50%, -50%);
- transform: scale(0) translate(50%, -50%);
- opacity: 0;
- }
-}
-.ant-badge-rtl {
- direction: rtl;
-}
-.ant-badge-rtl .ant-badge-count,
-.ant-badge-rtl .ant-badge-dot,
-.ant-badge-rtl .ant-badge .ant-scroll-number-custom-component {
- right: auto;
- left: 0;
- direction: ltr;
- -webkit-transform: translate(-50%, -50%);
- transform: translate(-50%, -50%);
- -webkit-transform-origin: 0% 0%;
- transform-origin: 0% 0%;
-}
-.ant-badge-rtl.ant-badge .ant-scroll-number-custom-component {
- right: auto;
- left: 0;
- -webkit-transform: translate(-50%, -50%);
- transform: translate(-50%, -50%);
- -webkit-transform-origin: 0% 0%;
- transform-origin: 0% 0%;
-}
-.ant-badge-rtl .ant-badge-status-text {
- margin-right: 8px;
- margin-left: 0;
-}
-.ant-badge-rtl .ant-badge-zoom-appear,
-.ant-badge-rtl .ant-badge-zoom-enter {
- -webkit-animation-name: antZoomBadgeInRtl;
- animation-name: antZoomBadgeInRtl;
-}
-.ant-badge-rtl .ant-badge-zoom-leave {
- -webkit-animation-name: antZoomBadgeOutRtl;
- animation-name: antZoomBadgeOutRtl;
-}
-.ant-badge-not-a-wrapper .ant-badge-count {
- -webkit-transform: none;
- transform: none;
-}
-@-webkit-keyframes antZoomBadgeInRtl {
- 0% {
- -webkit-transform: scale(0) translate(-50%, -50%);
- transform: scale(0) translate(-50%, -50%);
- opacity: 0;
- }
- 100% {
- -webkit-transform: scale(1) translate(-50%, -50%);
- transform: scale(1) translate(-50%, -50%);
- }
-}
-@keyframes antZoomBadgeInRtl {
- 0% {
- -webkit-transform: scale(0) translate(-50%, -50%);
- transform: scale(0) translate(-50%, -50%);
- opacity: 0;
- }
- 100% {
- -webkit-transform: scale(1) translate(-50%, -50%);
- transform: scale(1) translate(-50%, -50%);
- }
-}
-@-webkit-keyframes antZoomBadgeOutRtl {
- 0% {
- -webkit-transform: scale(1) translate(-50%, -50%);
- transform: scale(1) translate(-50%, -50%);
- }
- 100% {
- -webkit-transform: scale(0) translate(-50%, -50%);
- transform: scale(0) translate(-50%, -50%);
- opacity: 0;
- }
-}
-@keyframes antZoomBadgeOutRtl {
- 0% {
- -webkit-transform: scale(1) translate(-50%, -50%);
- transform: scale(1) translate(-50%, -50%);
- }
- 100% {
- -webkit-transform: scale(0) translate(-50%, -50%);
- transform: scale(0) translate(-50%, -50%);
- opacity: 0;
- }
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-breadcrumb {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- color: rgba(0, 0, 0, 0.45);
- font-size: 14px;
-}
-.ant-breadcrumb .anticon {
- font-size: 14px;
-}
-.ant-breadcrumb a {
- color: rgba(0, 0, 0, 0.45);
- -webkit-transition: color 0.3s;
- transition: color 0.3s;
-}
-.ant-breadcrumb a:hover {
- color: #40a9ff;
-}
-.ant-breadcrumb > span:last-child {
- color: rgba(0, 0, 0, 0.65);
-}
-.ant-breadcrumb > span:last-child a {
- color: rgba(0, 0, 0, 0.65);
-}
-.ant-breadcrumb > span:last-child .ant-breadcrumb-separator {
- display: none;
-}
-.ant-breadcrumb-separator {
- margin: 0 8px;
- color: rgba(0, 0, 0, 0.45);
-}
-.ant-breadcrumb-link > .anticon + span,
-.ant-breadcrumb-link > .anticon + a {
- margin-left: 4px;
-}
-.ant-breadcrumb-overlay-link > .anticon {
- margin-left: 4px;
-}
-.ant-breadcrumb-rtl {
- direction: rtl;
-}
-.ant-breadcrumb-rtl::before {
- display: table;
- content: '';
-}
-.ant-breadcrumb-rtl::after {
- display: table;
- clear: both;
- content: '';
-}
-.ant-breadcrumb-rtl > span {
- float: right;
-}
-.ant-breadcrumb-rtl .ant-breadcrumb-link > .anticon + span,
-.ant-breadcrumb-rtl .ant-breadcrumb-link > .anticon + a {
- margin-right: 4px;
- margin-left: 0;
-}
-.ant-breadcrumb-rtl .ant-breadcrumb-overlay-link > .anticon {
- margin-right: 4px;
- margin-left: 0;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-menu-item-danger.ant-menu-item {
- color: #ff4d4f;
-}
-.ant-menu-item-danger.ant-menu-item:hover,
-.ant-menu-item-danger.ant-menu-item-active {
- color: #ff4d4f;
-}
-.ant-menu-item-danger.ant-menu-item:active {
- background: #fff1f0;
-}
-.ant-menu-item-danger.ant-menu-item-selected {
- color: #ff4d4f;
-}
-.ant-menu-item-danger.ant-menu-item-selected > a,
-.ant-menu-item-danger.ant-menu-item-selected > a:hover {
- color: #ff4d4f;
-}
-.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected {
- background-color: #fff1f0;
-}
-.ant-menu-inline .ant-menu-item-danger.ant-menu-item::after {
- border-right-color: #ff4d4f;
-}
-.ant-menu-dark .ant-menu-item-danger.ant-menu-item,
-.ant-menu-dark .ant-menu-item-danger.ant-menu-item:hover,
-.ant-menu-dark .ant-menu-item-danger.ant-menu-item > a {
- color: #ff4d4f;
-}
-.ant-menu-dark.ant-menu-dark:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected {
- color: #fff;
- background-color: #ff4d4f;
-}
-.ant-menu {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- font-variant: tabular-nums;
- line-height: 1.5715;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- margin-bottom: 0;
- padding-left: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- line-height: 0;
- text-align: left;
- list-style: none;
- background: #fff;
- outline: none;
- -webkit-box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
- box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
- -webkit-transition: background 0.3s, width 0.3s cubic-bezier(0.2, 0, 0, 1) 0s;
- transition: background 0.3s, width 0.3s cubic-bezier(0.2, 0, 0, 1) 0s;
-}
-.ant-menu::before {
- display: table;
- content: '';
-}
-.ant-menu::after {
- display: table;
- clear: both;
- content: '';
-}
-.ant-menu ul,
-.ant-menu ol {
- margin: 0;
- padding: 0;
- list-style: none;
-}
-.ant-menu-hidden {
- display: none;
-}
-.ant-menu-item-group-title {
- height: 1.5715;
- padding: 8px 16px;
- color: rgba(0, 0, 0, 0.45);
- font-size: 14px;
- line-height: 1.5715;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
-}
-.ant-menu-submenu,
-.ant-menu-submenu-inline {
- -webkit-transition: border-color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), background 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), padding 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
- transition: border-color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), background 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), padding 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
-}
-.ant-menu-submenu-selected {
- color: #1890ff;
-}
-.ant-menu-item:active,
-.ant-menu-submenu-title:active {
- background: #e6f7ff;
-}
-.ant-menu-submenu .ant-menu-sub {
- cursor: initial;
- -webkit-transition: background 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), padding 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
- transition: background 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), padding 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
-}
-.ant-menu-item a {
- color: rgba(0, 0, 0, 0.65);
-}
-.ant-menu-item a:hover {
- color: #1890ff;
-}
-.ant-menu-item a::before {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background-color: transparent;
- content: '';
-}
-.ant-menu-item > .ant-badge a {
- color: rgba(0, 0, 0, 0.65);
-}
-.ant-menu-item > .ant-badge a:hover {
- color: #1890ff;
-}
-.ant-menu-item-divider {
- height: 1px;
- overflow: hidden;
- line-height: 0;
- background-color: #f0f0f0;
-}
-.ant-menu-item:hover,
-.ant-menu-item-active,
-.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open,
-.ant-menu-submenu-active,
-.ant-menu-submenu-title:hover {
- color: #1890ff;
-}
-.ant-menu-horizontal .ant-menu-item,
-.ant-menu-horizontal .ant-menu-submenu {
- margin-top: -1px;
-}
-.ant-menu-horizontal > .ant-menu-item:hover,
-.ant-menu-horizontal > .ant-menu-item-active,
-.ant-menu-horizontal > .ant-menu-submenu .ant-menu-submenu-title:hover {
- background-color: transparent;
-}
-.ant-menu-item-selected {
- color: #1890ff;
-}
-.ant-menu-item-selected a,
-.ant-menu-item-selected a:hover {
- color: #1890ff;
-}
-.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected {
- background-color: #e6f7ff;
-}
-.ant-menu-inline,
-.ant-menu-vertical,
-.ant-menu-vertical-left {
- border-right: 1px solid #f0f0f0;
-}
-.ant-menu-vertical-right {
- border-left: 1px solid #f0f0f0;
-}
-.ant-menu-vertical.ant-menu-sub,
-.ant-menu-vertical-left.ant-menu-sub,
-.ant-menu-vertical-right.ant-menu-sub {
- min-width: 160px;
- max-height: calc(100vh - 100px);
- padding: 0;
- overflow: hidden;
- border-right: 0;
- -webkit-transform-origin: 0 0;
- transform-origin: 0 0;
-}
-.ant-menu-vertical.ant-menu-sub:not(.zoom-big-enter-active):not(.zoom-big-leave-active),
-.ant-menu-vertical-left.ant-menu-sub:not(.zoom-big-enter-active):not(.zoom-big-leave-active),
-.ant-menu-vertical-right.ant-menu-sub:not(.zoom-big-enter-active):not(.zoom-big-leave-active) {
- overflow-x: hidden;
- overflow-y: auto;
-}
-.ant-menu-vertical.ant-menu-sub .ant-menu-item,
-.ant-menu-vertical-left.ant-menu-sub .ant-menu-item,
-.ant-menu-vertical-right.ant-menu-sub .ant-menu-item {
- left: 0;
- margin-left: 0;
- border-right: 0;
-}
-.ant-menu-vertical.ant-menu-sub .ant-menu-item::after,
-.ant-menu-vertical-left.ant-menu-sub .ant-menu-item::after,
-.ant-menu-vertical-right.ant-menu-sub .ant-menu-item::after {
- border-right: 0;
-}
-.ant-menu-vertical.ant-menu-sub > .ant-menu-item,
-.ant-menu-vertical-left.ant-menu-sub > .ant-menu-item,
-.ant-menu-vertical-right.ant-menu-sub > .ant-menu-item,
-.ant-menu-vertical.ant-menu-sub > .ant-menu-submenu,
-.ant-menu-vertical-left.ant-menu-sub > .ant-menu-submenu,
-.ant-menu-vertical-right.ant-menu-sub > .ant-menu-submenu {
- -webkit-transform-origin: 0 0;
- transform-origin: 0 0;
-}
-.ant-menu-horizontal.ant-menu-sub {
- min-width: 114px;
-}
-.ant-menu-item,
-.ant-menu-submenu-title {
- position: relative;
- display: block;
- margin: 0;
- padding: 0 20px;
- white-space: nowrap;
- cursor: pointer;
- -webkit-transition: color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), border-color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), background 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), padding 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
- transition: color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), border-color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), background 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), padding 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
-}
-.ant-menu-item .anticon,
-.ant-menu-submenu-title .anticon {
- min-width: 14px;
- margin-right: 10px;
- font-size: 14px;
- -webkit-transition: font-size 0.15s cubic-bezier(0.215, 0.61, 0.355, 1), margin 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
- transition: font-size 0.15s cubic-bezier(0.215, 0.61, 0.355, 1), margin 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
-}
-.ant-menu-item .anticon + span,
-.ant-menu-submenu-title .anticon + span {
- opacity: 1;
- -webkit-transition: opacity 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), width 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
- transition: opacity 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), width 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
-}
-.ant-menu-item.ant-menu-item-only-child > .anticon,
-.ant-menu-submenu-title.ant-menu-item-only-child > .anticon {
- margin-right: 0;
-}
-.ant-menu > .ant-menu-item-divider {
- height: 1px;
- margin: 1px 0;
- padding: 0;
- overflow: hidden;
- line-height: 0;
- background-color: #f0f0f0;
-}
-.ant-menu-submenu-popup {
- position: absolute;
- z-index: 1050;
- border-radius: 2px;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-.ant-menu-submenu-popup::before {
- position: absolute;
- top: -7px;
- right: 0;
- bottom: 0;
- left: 0;
- z-index: -1;
- width: 100%;
- height: 100%;
- opacity: 0.0001;
- content: ' ';
-}
-.ant-menu-submenu-placement-rightTop::before {
- top: 0;
- left: -7px;
-}
-.ant-menu-submenu > .ant-menu {
- background-color: #fff;
- border-radius: 2px;
-}
-.ant-menu-submenu > .ant-menu-submenu-title::after {
- -webkit-transition: -webkit-transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
- transition: -webkit-transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
- transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
- transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
-}
-.ant-menu-submenu-popup > .ant-menu {
- background-color: #fff;
-}
-.ant-menu-submenu-vertical > .ant-menu-submenu-title .ant-menu-submenu-arrow,
-.ant-menu-submenu-vertical-left > .ant-menu-submenu-title .ant-menu-submenu-arrow,
-.ant-menu-submenu-vertical-right > .ant-menu-submenu-title .ant-menu-submenu-arrow,
-.ant-menu-submenu-inline > .ant-menu-submenu-title .ant-menu-submenu-arrow {
- position: absolute;
- top: 50%;
- right: 16px;
- width: 10px;
- -webkit-transition: -webkit-transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
- transition: -webkit-transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
- transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
- transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
-}
-.ant-menu-submenu-vertical > .ant-menu-submenu-title .ant-menu-submenu-arrow::before,
-.ant-menu-submenu-vertical-left > .ant-menu-submenu-title .ant-menu-submenu-arrow::before,
-.ant-menu-submenu-vertical-right > .ant-menu-submenu-title .ant-menu-submenu-arrow::before,
-.ant-menu-submenu-inline > .ant-menu-submenu-title .ant-menu-submenu-arrow::before,
-.ant-menu-submenu-vertical > .ant-menu-submenu-title .ant-menu-submenu-arrow::after,
-.ant-menu-submenu-vertical-left > .ant-menu-submenu-title .ant-menu-submenu-arrow::after,
-.ant-menu-submenu-vertical-right > .ant-menu-submenu-title .ant-menu-submenu-arrow::after,
-.ant-menu-submenu-inline > .ant-menu-submenu-title .ant-menu-submenu-arrow::after {
- position: absolute;
- width: 6px;
- height: 1.5px;
- background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.65)), to(rgba(0, 0, 0, 0.65)));
- background-image: linear-gradient(to right, rgba(0, 0, 0, 0.65), rgba(0, 0, 0, 0.65));
- border-radius: 2px;
- -webkit-transition: background 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), top 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
- transition: background 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), top 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
- transition: background 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), top 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
- transition: background 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), top 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
- content: '';
-}
-.ant-menu-submenu-vertical > .ant-menu-submenu-title .ant-menu-submenu-arrow::before,
-.ant-menu-submenu-vertical-left > .ant-menu-submenu-title .ant-menu-submenu-arrow::before,
-.ant-menu-submenu-vertical-right > .ant-menu-submenu-title .ant-menu-submenu-arrow::before,
-.ant-menu-submenu-inline > .ant-menu-submenu-title .ant-menu-submenu-arrow::before {
- -webkit-transform: rotate(45deg) translateY(-2px);
- transform: rotate(45deg) translateY(-2px);
-}
-.ant-menu-submenu-vertical > .ant-menu-submenu-title .ant-menu-submenu-arrow::after,
-.ant-menu-submenu-vertical-left > .ant-menu-submenu-title .ant-menu-submenu-arrow::after,
-.ant-menu-submenu-vertical-right > .ant-menu-submenu-title .ant-menu-submenu-arrow::after,
-.ant-menu-submenu-inline > .ant-menu-submenu-title .ant-menu-submenu-arrow::after {
- -webkit-transform: rotate(-45deg) translateY(2px);
- transform: rotate(-45deg) translateY(2px);
-}
-.ant-menu-submenu-vertical > .ant-menu-submenu-title:hover .ant-menu-submenu-arrow::after,
-.ant-menu-submenu-vertical-left > .ant-menu-submenu-title:hover .ant-menu-submenu-arrow::after,
-.ant-menu-submenu-vertical-right > .ant-menu-submenu-title:hover .ant-menu-submenu-arrow::after,
-.ant-menu-submenu-inline > .ant-menu-submenu-title:hover .ant-menu-submenu-arrow::after,
-.ant-menu-submenu-vertical > .ant-menu-submenu-title:hover .ant-menu-submenu-arrow::before,
-.ant-menu-submenu-vertical-left > .ant-menu-submenu-title:hover .ant-menu-submenu-arrow::before,
-.ant-menu-submenu-vertical-right > .ant-menu-submenu-title:hover .ant-menu-submenu-arrow::before,
-.ant-menu-submenu-inline > .ant-menu-submenu-title:hover .ant-menu-submenu-arrow::before {
- background: -webkit-gradient(linear, left top, right top, from(#1890ff), to(#1890ff));
- background: linear-gradient(to right, #1890ff, #1890ff);
-}
-.ant-menu-submenu-vertical > .ant-menu-submenu-title .ant-menu-submenu-arrow::before,
-.ant-menu-submenu-vertical-left > .ant-menu-submenu-title .ant-menu-submenu-arrow::before,
-.ant-menu-submenu-vertical-right > .ant-menu-submenu-title .ant-menu-submenu-arrow::before {
- -webkit-transform: rotate(45deg) translateY(-2px);
- transform: rotate(45deg) translateY(-2px);
-}
-.ant-menu-submenu-vertical > .ant-menu-submenu-title .ant-menu-submenu-arrow::after,
-.ant-menu-submenu-vertical-left > .ant-menu-submenu-title .ant-menu-submenu-arrow::after,
-.ant-menu-submenu-vertical-right > .ant-menu-submenu-title .ant-menu-submenu-arrow::after {
- -webkit-transform: rotate(-45deg) translateY(2px);
- transform: rotate(-45deg) translateY(2px);
-}
-.ant-menu-submenu-inline > .ant-menu-submenu-title .ant-menu-submenu-arrow::before {
- -webkit-transform: rotate(-45deg) translateX(2px);
- transform: rotate(-45deg) translateX(2px);
-}
-.ant-menu-submenu-inline > .ant-menu-submenu-title .ant-menu-submenu-arrow::after {
- -webkit-transform: rotate(45deg) translateX(-2px);
- transform: rotate(45deg) translateX(-2px);
-}
-.ant-menu-submenu-open.ant-menu-submenu-inline > .ant-menu-submenu-title .ant-menu-submenu-arrow {
- -webkit-transform: translateY(-2px);
- transform: translateY(-2px);
-}
-.ant-menu-submenu-open.ant-menu-submenu-inline > .ant-menu-submenu-title .ant-menu-submenu-arrow::after {
- -webkit-transform: rotate(-45deg) translateX(-2px);
- transform: rotate(-45deg) translateX(-2px);
-}
-.ant-menu-submenu-open.ant-menu-submenu-inline > .ant-menu-submenu-title .ant-menu-submenu-arrow::before {
- -webkit-transform: rotate(45deg) translateX(2px);
- transform: rotate(45deg) translateX(2px);
-}
-.ant-menu-vertical .ant-menu-submenu-selected,
-.ant-menu-vertical-left .ant-menu-submenu-selected,
-.ant-menu-vertical-right .ant-menu-submenu-selected {
- color: #1890ff;
-}
-.ant-menu-horizontal {
- line-height: 46px;
- white-space: nowrap;
- border: 0;
- border-bottom: 1px solid #f0f0f0;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-.ant-menu-horizontal > .ant-menu-item,
-.ant-menu-horizontal > .ant-menu-submenu {
- position: relative;
- top: 1px;
- display: inline-block;
- vertical-align: bottom;
- border-bottom: 2px solid transparent;
-}
-.ant-menu-horizontal > .ant-menu-item:hover,
-.ant-menu-horizontal > .ant-menu-submenu:hover,
-.ant-menu-horizontal > .ant-menu-item-active,
-.ant-menu-horizontal > .ant-menu-submenu-active,
-.ant-menu-horizontal > .ant-menu-item-open,
-.ant-menu-horizontal > .ant-menu-submenu-open,
-.ant-menu-horizontal > .ant-menu-item-selected,
-.ant-menu-horizontal > .ant-menu-submenu-selected {
- color: #1890ff;
- border-bottom: 2px solid #1890ff;
-}
-.ant-menu-horizontal > .ant-menu-item a {
- color: rgba(0, 0, 0, 0.65);
-}
-.ant-menu-horizontal > .ant-menu-item a:hover {
- color: #1890ff;
-}
-.ant-menu-horizontal > .ant-menu-item a::before {
- bottom: -2px;
-}
-.ant-menu-horizontal > .ant-menu-item-selected a {
- color: #1890ff;
-}
-.ant-menu-horizontal::after {
- display: block;
- clear: both;
- height: 0;
- content: '\20';
-}
-.ant-menu-vertical .ant-menu-item,
-.ant-menu-vertical-left .ant-menu-item,
-.ant-menu-vertical-right .ant-menu-item,
-.ant-menu-inline .ant-menu-item {
- position: relative;
-}
-.ant-menu-vertical .ant-menu-item::after,
-.ant-menu-vertical-left .ant-menu-item::after,
-.ant-menu-vertical-right .ant-menu-item::after,
-.ant-menu-inline .ant-menu-item::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- border-right: 3px solid #1890ff;
- -webkit-transform: scaleY(0.0001);
- transform: scaleY(0.0001);
- opacity: 0;
- -webkit-transition: opacity 0.15s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
- transition: opacity 0.15s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
- transition: transform 0.15s cubic-bezier(0.215, 0.61, 0.355, 1), opacity 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
- transition: transform 0.15s cubic-bezier(0.215, 0.61, 0.355, 1), opacity 0.15s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
- content: '';
-}
-.ant-menu-vertical .ant-menu-item,
-.ant-menu-vertical-left .ant-menu-item,
-.ant-menu-vertical-right .ant-menu-item,
-.ant-menu-inline .ant-menu-item,
-.ant-menu-vertical .ant-menu-submenu-title,
-.ant-menu-vertical-left .ant-menu-submenu-title,
-.ant-menu-vertical-right .ant-menu-submenu-title,
-.ant-menu-inline .ant-menu-submenu-title {
- height: 40px;
- margin-top: 4px;
- margin-bottom: 4px;
- padding: 0 16px;
- overflow: hidden;
- line-height: 40px;
- text-overflow: ellipsis;
-}
-.ant-menu-vertical .ant-menu-submenu,
-.ant-menu-vertical-left .ant-menu-submenu,
-.ant-menu-vertical-right .ant-menu-submenu,
-.ant-menu-inline .ant-menu-submenu {
- padding-bottom: 0.02px;
-}
-.ant-menu-vertical .ant-menu-item:not(:last-child),
-.ant-menu-vertical-left .ant-menu-item:not(:last-child),
-.ant-menu-vertical-right .ant-menu-item:not(:last-child),
-.ant-menu-inline .ant-menu-item:not(:last-child) {
- margin-bottom: 8px;
-}
-.ant-menu-vertical > .ant-menu-item,
-.ant-menu-vertical-left > .ant-menu-item,
-.ant-menu-vertical-right > .ant-menu-item,
-.ant-menu-inline > .ant-menu-item,
-.ant-menu-vertical > .ant-menu-submenu > .ant-menu-submenu-title,
-.ant-menu-vertical-left > .ant-menu-submenu > .ant-menu-submenu-title,
-.ant-menu-vertical-right > .ant-menu-submenu > .ant-menu-submenu-title,
-.ant-menu-inline > .ant-menu-submenu > .ant-menu-submenu-title {
- height: 40px;
- line-height: 40px;
-}
-.ant-menu-vertical .ant-menu-submenu-title {
- padding-right: 34px;
-}
-.ant-menu-inline {
- width: 100%;
-}
-.ant-menu-inline .ant-menu-selected::after,
-.ant-menu-inline .ant-menu-item-selected::after {
- -webkit-transform: scaleY(1);
- transform: scaleY(1);
- opacity: 1;
- -webkit-transition: opacity 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
- transition: opacity 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
- transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
- transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
-}
-.ant-menu-inline .ant-menu-item,
-.ant-menu-inline .ant-menu-submenu-title {
- width: calc(100% + 1px);
-}
-.ant-menu-inline .ant-menu-submenu-title {
- padding-right: 34px;
-}
-.ant-menu-inline-collapsed {
- width: 80px;
-}
-.ant-menu-inline-collapsed > .ant-menu-item,
-.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-item,
-.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-submenu > .ant-menu-submenu-title,
-.ant-menu-inline-collapsed > .ant-menu-submenu > .ant-menu-submenu-title {
- left: 0;
- padding: 0 32px;
- text-overflow: clip;
-}
-.ant-menu-inline-collapsed > .ant-menu-item .ant-menu-submenu-arrow,
-.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-item .ant-menu-submenu-arrow,
-.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-submenu > .ant-menu-submenu-title .ant-menu-submenu-arrow,
-.ant-menu-inline-collapsed > .ant-menu-submenu > .ant-menu-submenu-title .ant-menu-submenu-arrow {
- display: none;
-}
-.ant-menu-inline-collapsed > .ant-menu-item .anticon,
-.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-item .anticon,
-.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-submenu > .ant-menu-submenu-title .anticon,
-.ant-menu-inline-collapsed > .ant-menu-submenu > .ant-menu-submenu-title .anticon {
- margin: 0;
- font-size: 16px;
- line-height: 40px;
-}
-.ant-menu-inline-collapsed > .ant-menu-item .anticon + span,
-.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-item .anticon + span,
-.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-submenu > .ant-menu-submenu-title .anticon + span,
-.ant-menu-inline-collapsed > .ant-menu-submenu > .ant-menu-submenu-title .anticon + span {
- display: inline-block;
- max-width: 0;
- opacity: 0;
-}
-.ant-menu-inline-collapsed .anticon {
- display: inline-block;
-}
-.ant-menu-inline-collapsed-tooltip {
- pointer-events: none;
-}
-.ant-menu-inline-collapsed-tooltip .anticon {
- display: none;
-}
-.ant-menu-inline-collapsed-tooltip a {
- color: rgba(255, 255, 255, 0.85);
-}
-.ant-menu-inline-collapsed .ant-menu-item-group-title {
- padding-right: 4px;
- padding-left: 4px;
- overflow: hidden;
- white-space: nowrap;
- text-overflow: ellipsis;
-}
-.ant-menu-item-group-list {
- margin: 0;
- padding: 0;
-}
-.ant-menu-item-group-list .ant-menu-item,
-.ant-menu-item-group-list .ant-menu-submenu-title {
- padding: 0 16px 0 28px;
-}
-.ant-menu-root.ant-menu-vertical,
-.ant-menu-root.ant-menu-vertical-left,
-.ant-menu-root.ant-menu-vertical-right,
-.ant-menu-root.ant-menu-inline {
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-.ant-menu-root.ant-menu-inline-collapsed .ant-menu-item > .ant-menu-inline-collapsed-noicon,
-.ant-menu-root.ant-menu-inline-collapsed .ant-menu-submenu .ant-menu-submenu-title > .ant-menu-inline-collapsed-noicon {
- font-size: 16px;
- text-align: center;
-}
-.ant-menu-sub.ant-menu-inline {
- padding: 0;
- border: 0;
- border-radius: 0;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-.ant-menu-sub.ant-menu-inline > .ant-menu-item,
-.ant-menu-sub.ant-menu-inline > .ant-menu-submenu > .ant-menu-submenu-title {
- height: 40px;
- line-height: 40px;
- list-style-position: inside;
- list-style-type: disc;
-}
-.ant-menu-sub.ant-menu-inline .ant-menu-item-group-title {
- padding-left: 32px;
-}
-.ant-menu-item-disabled,
-.ant-menu-submenu-disabled {
- color: rgba(0, 0, 0, 0.25) !important;
- background: none;
- border-color: transparent !important;
- cursor: not-allowed;
-}
-.ant-menu-item-disabled a,
-.ant-menu-submenu-disabled a {
- color: rgba(0, 0, 0, 0.25) !important;
- pointer-events: none;
-}
-.ant-menu-item-disabled > .ant-menu-submenu-title,
-.ant-menu-submenu-disabled > .ant-menu-submenu-title {
- color: rgba(0, 0, 0, 0.25) !important;
- cursor: not-allowed;
-}
-.ant-menu-item-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,
-.ant-menu-submenu-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,
-.ant-menu-item-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after,
-.ant-menu-submenu-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after {
- background: rgba(0, 0, 0, 0.25) !important;
-}
-.ant-layout-header .ant-menu {
- line-height: inherit;
-}
-.ant-menu.ant-menu-dark,
-.ant-menu-dark .ant-menu-sub,
-.ant-menu.ant-menu-dark .ant-menu-sub {
- color: rgba(255, 255, 255, 0.65);
- background: #001529;
-}
-.ant-menu.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow,
-.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow,
-.ant-menu.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow {
- opacity: 0.45;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
-}
-.ant-menu.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow::after,
-.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow::after,
-.ant-menu.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow::after,
-.ant-menu.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow::before,
-.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow::before,
-.ant-menu.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow::before {
- background: #fff;
-}
-.ant-menu-dark.ant-menu-submenu-popup {
- background: transparent;
-}
-.ant-menu-dark .ant-menu-inline.ant-menu-sub {
- background: #000c17;
-}
-.ant-menu-dark.ant-menu-horizontal {
- border-bottom: 0;
-}
-.ant-menu-dark.ant-menu-horizontal > .ant-menu-item,
-.ant-menu-dark.ant-menu-horizontal > .ant-menu-submenu {
- top: 0;
- margin-top: 0;
- border-color: #001529;
- border-bottom: 0;
-}
-.ant-menu-dark.ant-menu-horizontal > .ant-menu-item > a::before {
- bottom: 0;
-}
-.ant-menu-dark .ant-menu-item,
-.ant-menu-dark .ant-menu-item-group-title,
-.ant-menu-dark .ant-menu-item > a,
-.ant-menu-dark .ant-menu-item > span > a {
- color: rgba(255, 255, 255, 0.65);
-}
-.ant-menu-dark.ant-menu-inline,
-.ant-menu-dark.ant-menu-vertical,
-.ant-menu-dark.ant-menu-vertical-left,
-.ant-menu-dark.ant-menu-vertical-right {
- border-right: 0;
-}
-.ant-menu-dark.ant-menu-inline .ant-menu-item,
-.ant-menu-dark.ant-menu-vertical .ant-menu-item,
-.ant-menu-dark.ant-menu-vertical-left .ant-menu-item,
-.ant-menu-dark.ant-menu-vertical-right .ant-menu-item {
- left: 0;
- margin-left: 0;
- border-right: 0;
-}
-.ant-menu-dark.ant-menu-inline .ant-menu-item::after,
-.ant-menu-dark.ant-menu-vertical .ant-menu-item::after,
-.ant-menu-dark.ant-menu-vertical-left .ant-menu-item::after,
-.ant-menu-dark.ant-menu-vertical-right .ant-menu-item::after {
- border-right: 0;
-}
-.ant-menu-dark.ant-menu-inline .ant-menu-item,
-.ant-menu-dark.ant-menu-inline .ant-menu-submenu-title {
- width: 100%;
-}
-.ant-menu-dark .ant-menu-item:hover,
-.ant-menu-dark .ant-menu-item-active,
-.ant-menu-dark .ant-menu-submenu-active,
-.ant-menu-dark .ant-menu-submenu-open,
-.ant-menu-dark .ant-menu-submenu-selected,
-.ant-menu-dark .ant-menu-submenu-title:hover {
- color: #fff;
- background-color: transparent;
-}
-.ant-menu-dark .ant-menu-item:hover > a,
-.ant-menu-dark .ant-menu-item-active > a,
-.ant-menu-dark .ant-menu-submenu-active > a,
-.ant-menu-dark .ant-menu-submenu-open > a,
-.ant-menu-dark .ant-menu-submenu-selected > a,
-.ant-menu-dark .ant-menu-submenu-title:hover > a,
-.ant-menu-dark .ant-menu-item:hover > span > a,
-.ant-menu-dark .ant-menu-item-active > span > a,
-.ant-menu-dark .ant-menu-submenu-active > span > a,
-.ant-menu-dark .ant-menu-submenu-open > span > a,
-.ant-menu-dark .ant-menu-submenu-selected > span > a,
-.ant-menu-dark .ant-menu-submenu-title:hover > span > a {
- color: #fff;
-}
-.ant-menu-dark .ant-menu-item:hover > .ant-menu-submenu-title > .ant-menu-submenu-arrow,
-.ant-menu-dark .ant-menu-item-active > .ant-menu-submenu-title > .ant-menu-submenu-arrow,
-.ant-menu-dark .ant-menu-submenu-active > .ant-menu-submenu-title > .ant-menu-submenu-arrow,
-.ant-menu-dark .ant-menu-submenu-open > .ant-menu-submenu-title > .ant-menu-submenu-arrow,
-.ant-menu-dark .ant-menu-submenu-selected > .ant-menu-submenu-title > .ant-menu-submenu-arrow,
-.ant-menu-dark .ant-menu-submenu-title:hover > .ant-menu-submenu-title > .ant-menu-submenu-arrow,
-.ant-menu-dark .ant-menu-item:hover > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow,
-.ant-menu-dark .ant-menu-item-active > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow,
-.ant-menu-dark .ant-menu-submenu-active > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow,
-.ant-menu-dark .ant-menu-submenu-open > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow,
-.ant-menu-dark .ant-menu-submenu-selected > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow,
-.ant-menu-dark .ant-menu-submenu-title:hover > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow {
- opacity: 1;
-}
-.ant-menu-dark .ant-menu-item:hover > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after,
-.ant-menu-dark .ant-menu-item-active > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after,
-.ant-menu-dark .ant-menu-submenu-active > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after,
-.ant-menu-dark .ant-menu-submenu-open > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after,
-.ant-menu-dark .ant-menu-submenu-selected > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after,
-.ant-menu-dark .ant-menu-submenu-title:hover > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after,
-.ant-menu-dark .ant-menu-item:hover > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow::after,
-.ant-menu-dark .ant-menu-item-active > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow::after,
-.ant-menu-dark .ant-menu-submenu-active > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow::after,
-.ant-menu-dark .ant-menu-submenu-open > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow::after,
-.ant-menu-dark .ant-menu-submenu-selected > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow::after,
-.ant-menu-dark .ant-menu-submenu-title:hover > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow::after,
-.ant-menu-dark .ant-menu-item:hover > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,
-.ant-menu-dark .ant-menu-item-active > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,
-.ant-menu-dark .ant-menu-submenu-active > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,
-.ant-menu-dark .ant-menu-submenu-open > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,
-.ant-menu-dark .ant-menu-submenu-selected > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,
-.ant-menu-dark .ant-menu-submenu-title:hover > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,
-.ant-menu-dark .ant-menu-item:hover > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow::before,
-.ant-menu-dark .ant-menu-item-active > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow::before,
-.ant-menu-dark .ant-menu-submenu-active > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow::before,
-.ant-menu-dark .ant-menu-submenu-open > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow::before,
-.ant-menu-dark .ant-menu-submenu-selected > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow::before,
-.ant-menu-dark .ant-menu-submenu-title:hover > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow::before {
- background: #fff;
-}
-.ant-menu-dark .ant-menu-item:hover {
- background-color: transparent;
-}
-.ant-menu-dark.ant-menu-dark:not(.ant-menu-horizontal) .ant-menu-item-selected {
- background-color: #1890ff;
-}
-.ant-menu-dark .ant-menu-item-selected {
- color: #fff;
- border-right: 0;
-}
-.ant-menu-dark .ant-menu-item-selected::after {
- border-right: 0;
-}
-.ant-menu-dark .ant-menu-item-selected > a,
-.ant-menu-dark .ant-menu-item-selected > span > a,
-.ant-menu-dark .ant-menu-item-selected > a:hover,
-.ant-menu-dark .ant-menu-item-selected > span > a:hover {
- color: #fff;
-}
-.ant-menu-dark .ant-menu-item-selected .anticon {
- color: #fff;
-}
-.ant-menu-dark .ant-menu-item-selected .anticon + span {
- color: #fff;
-}
-.ant-menu.ant-menu-dark .ant-menu-item-selected,
-.ant-menu-submenu-popup.ant-menu-dark .ant-menu-item-selected {
- background-color: #1890ff;
-}
-.ant-menu-dark .ant-menu-item-disabled,
-.ant-menu-dark .ant-menu-submenu-disabled,
-.ant-menu-dark .ant-menu-item-disabled > a,
-.ant-menu-dark .ant-menu-submenu-disabled > a,
-.ant-menu-dark .ant-menu-item-disabled > span > a,
-.ant-menu-dark .ant-menu-submenu-disabled > span > a {
- color: rgba(255, 255, 255, 0.35) !important;
- opacity: 0.8;
-}
-.ant-menu-dark .ant-menu-item-disabled > .ant-menu-submenu-title,
-.ant-menu-dark .ant-menu-submenu-disabled > .ant-menu-submenu-title {
- color: rgba(255, 255, 255, 0.35) !important;
-}
-.ant-menu-dark .ant-menu-item-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,
-.ant-menu-dark .ant-menu-submenu-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,
-.ant-menu-dark .ant-menu-item-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after,
-.ant-menu-dark .ant-menu-submenu-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after {
- background: rgba(255, 255, 255, 0.35) !important;
-}
-.ant-menu-rtl {
- direction: rtl;
- text-align: right;
-}
-.ant-menu-rtl .ant-menu-item-group-title {
- text-align: right;
-}
-.ant-menu-rtl.ant-menu-inline,
-.ant-menu-rtl.ant-menu-vertical {
- border-right: none;
- border-left: 1px solid #f0f0f0;
-}
-.ant-menu-rtl.ant-menu-dark.ant-menu-inline,
-.ant-menu-rtl.ant-menu-dark.ant-menu-vertical {
- border-left: none;
-}
-.ant-menu-rtl.ant-menu-vertical.ant-menu-sub,
-.ant-menu-rtl.ant-menu-vertical-left.ant-menu-sub,
-.ant-menu-rtl.ant-menu-vertical-right.ant-menu-sub {
- -webkit-transform-origin: top right;
- transform-origin: top right;
-}
-.ant-menu-rtl.ant-menu-vertical.ant-menu-sub > .ant-menu-item,
-.ant-menu-rtl.ant-menu-vertical-left.ant-menu-sub > .ant-menu-item,
-.ant-menu-rtl.ant-menu-vertical-right.ant-menu-sub > .ant-menu-item,
-.ant-menu-rtl.ant-menu-vertical.ant-menu-sub > .ant-menu-submenu,
-.ant-menu-rtl.ant-menu-vertical-left.ant-menu-sub > .ant-menu-submenu,
-.ant-menu-rtl.ant-menu-vertical-right.ant-menu-sub > .ant-menu-submenu {
- -webkit-transform-origin: top right;
- transform-origin: top right;
-}
-.ant-menu-rtl .ant-menu-item .anticon,
-.ant-menu-rtl .ant-menu-submenu-title .anticon {
- margin-right: auto;
- margin-left: 10px;
-}
-.ant-menu-rtl .ant-menu-item.ant-menu-item-only-child > .anticon,
-.ant-menu-rtl .ant-menu-submenu-title.ant-menu-item-only-child > .anticon {
- margin-left: 0;
-}
-.ant-menu-rtl .ant-menu-submenu-vertical > .ant-menu-submenu-title .ant-menu-submenu-arrow,
-.ant-menu-rtl .ant-menu-submenu-vertical-left > .ant-menu-submenu-title .ant-menu-submenu-arrow,
-.ant-menu-rtl .ant-menu-submenu-vertical-right > .ant-menu-submenu-title .ant-menu-submenu-arrow,
-.ant-menu-rtl .ant-menu-submenu-inline > .ant-menu-submenu-title .ant-menu-submenu-arrow {
- right: auto;
- left: 16px;
-}
-.ant-menu-rtl .ant-menu-submenu-vertical > .ant-menu-submenu-title .ant-menu-submenu-arrow::before,
-.ant-menu-rtl .ant-menu-submenu-vertical-left > .ant-menu-submenu-title .ant-menu-submenu-arrow::before,
-.ant-menu-rtl .ant-menu-submenu-vertical-right > .ant-menu-submenu-title .ant-menu-submenu-arrow::before {
- -webkit-transform: rotate(-45deg) translateY(-2px);
- transform: rotate(-45deg) translateY(-2px);
-}
-.ant-menu-rtl .ant-menu-submenu-vertical > .ant-menu-submenu-title .ant-menu-submenu-arrow::after,
-.ant-menu-rtl .ant-menu-submenu-vertical-left > .ant-menu-submenu-title .ant-menu-submenu-arrow::after,
-.ant-menu-rtl .ant-menu-submenu-vertical-right > .ant-menu-submenu-title .ant-menu-submenu-arrow::after {
- -webkit-transform: rotate(45deg) translateY(2px);
- transform: rotate(45deg) translateY(2px);
-}
-.ant-menu-rtl.ant-menu-vertical .ant-menu-item::after,
-.ant-menu-rtl.ant-menu-vertical-left .ant-menu-item::after,
-.ant-menu-rtl.ant-menu-vertical-right .ant-menu-item::after,
-.ant-menu-rtl.ant-menu-inline .ant-menu-item::after {
- right: auto;
- left: 0;
-}
-.ant-menu-rtl.ant-menu-vertical .ant-menu-item,
-.ant-menu-rtl.ant-menu-vertical-left .ant-menu-item,
-.ant-menu-rtl.ant-menu-vertical-right .ant-menu-item,
-.ant-menu-rtl.ant-menu-inline .ant-menu-item,
-.ant-menu-rtl.ant-menu-vertical .ant-menu-submenu-title,
-.ant-menu-rtl.ant-menu-vertical-left .ant-menu-submenu-title,
-.ant-menu-rtl.ant-menu-vertical-right .ant-menu-submenu-title,
-.ant-menu-rtl.ant-menu-inline .ant-menu-submenu-title {
- text-align: right;
-}
-.ant-menu-rtl.ant-menu-inline .ant-menu-submenu-title {
- padding-right: 0;
- padding-left: 34px;
-}
-.ant-menu-rtl.ant-menu-vertical .ant-menu-submenu-title {
- padding-right: 16px;
- padding-left: 34px;
-}
-.ant-menu-rtl.ant-menu-inline-collapsed.ant-menu-vertical .ant-menu-submenu-title {
- padding: 0 32px;
-}
-.ant-menu-rtl .ant-menu-item-group-list .ant-menu-item,
-.ant-menu-rtl .ant-menu-item-group-list .ant-menu-submenu-title {
- padding: 0 28px 0 16px;
-}
-.ant-menu-sub.ant-menu-inline {
- border: 0;
-}
-.ant-menu-rtl.ant-menu-sub.ant-menu-inline .ant-menu-item-group-title {
- padding-right: 32px;
- padding-left: 0;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-tooltip {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- position: absolute;
- z-index: 1070;
- display: block;
- max-width: 250px;
- visibility: visible;
-}
-.ant-tooltip-hidden {
- display: none;
-}
-.ant-tooltip-placement-top,
-.ant-tooltip-placement-topLeft,
-.ant-tooltip-placement-topRight {
- padding-bottom: 8px;
-}
-.ant-tooltip-placement-right,
-.ant-tooltip-placement-rightTop,
-.ant-tooltip-placement-rightBottom {
- padding-left: 8px;
-}
-.ant-tooltip-placement-bottom,
-.ant-tooltip-placement-bottomLeft,
-.ant-tooltip-placement-bottomRight {
- padding-top: 8px;
-}
-.ant-tooltip-placement-left,
-.ant-tooltip-placement-leftTop,
-.ant-tooltip-placement-leftBottom {
- padding-right: 8px;
-}
-.ant-tooltip-inner {
- min-width: 30px;
- min-height: 32px;
- padding: 6px 8px;
- color: #fff;
- text-align: left;
- text-decoration: none;
- word-wrap: break-word;
- background-color: rgba(0, 0, 0, 0.75);
- border-radius: 2px;
- -webkit-box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
- box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
-}
-.ant-tooltip-arrow {
- position: absolute;
- display: block;
- width: 13.07106781px;
- height: 13.07106781px;
- overflow: hidden;
- background: transparent;
- pointer-events: none;
-}
-.ant-tooltip-arrow-content {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- display: block;
- width: 5px;
- height: 5px;
- margin: auto;
- background-color: rgba(0, 0, 0, 0.75);
- content: '';
- pointer-events: auto;
-}
-.ant-tooltip-placement-top .ant-tooltip-arrow,
-.ant-tooltip-placement-topLeft .ant-tooltip-arrow,
-.ant-tooltip-placement-topRight .ant-tooltip-arrow {
- bottom: -5.07106781px;
-}
-.ant-tooltip-placement-top .ant-tooltip-arrow-content,
-.ant-tooltip-placement-topLeft .ant-tooltip-arrow-content,
-.ant-tooltip-placement-topRight .ant-tooltip-arrow-content {
- -webkit-box-shadow: 3px 3px 7px rgba(0, 0, 0, 0.07);
- box-shadow: 3px 3px 7px rgba(0, 0, 0, 0.07);
- -webkit-transform: translateY(-6.53553391px) rotate(45deg);
- transform: translateY(-6.53553391px) rotate(45deg);
-}
-.ant-tooltip-placement-top .ant-tooltip-arrow {
- left: 50%;
- -webkit-transform: translateX(-50%);
- transform: translateX(-50%);
-}
-.ant-tooltip-placement-topLeft .ant-tooltip-arrow {
- left: 13px;
-}
-.ant-tooltip-placement-topRight .ant-tooltip-arrow {
- right: 13px;
-}
-.ant-tooltip-placement-right .ant-tooltip-arrow,
-.ant-tooltip-placement-rightTop .ant-tooltip-arrow,
-.ant-tooltip-placement-rightBottom .ant-tooltip-arrow {
- left: -5.07106781px;
-}
-.ant-tooltip-placement-right .ant-tooltip-arrow-content,
-.ant-tooltip-placement-rightTop .ant-tooltip-arrow-content,
-.ant-tooltip-placement-rightBottom .ant-tooltip-arrow-content {
- -webkit-box-shadow: -3px 3px 7px rgba(0, 0, 0, 0.07);
- box-shadow: -3px 3px 7px rgba(0, 0, 0, 0.07);
- -webkit-transform: translateX(6.53553391px) rotate(45deg);
- transform: translateX(6.53553391px) rotate(45deg);
-}
-.ant-tooltip-placement-right .ant-tooltip-arrow {
- top: 50%;
- -webkit-transform: translateY(-50%);
- transform: translateY(-50%);
-}
-.ant-tooltip-placement-rightTop .ant-tooltip-arrow {
- top: 5px;
-}
-.ant-tooltip-placement-rightBottom .ant-tooltip-arrow {
- bottom: 5px;
-}
-.ant-tooltip-placement-left .ant-tooltip-arrow,
-.ant-tooltip-placement-leftTop .ant-tooltip-arrow,
-.ant-tooltip-placement-leftBottom .ant-tooltip-arrow {
- right: -5.07106781px;
-}
-.ant-tooltip-placement-left .ant-tooltip-arrow-content,
-.ant-tooltip-placement-leftTop .ant-tooltip-arrow-content,
-.ant-tooltip-placement-leftBottom .ant-tooltip-arrow-content {
- -webkit-box-shadow: 3px -3px 7px rgba(0, 0, 0, 0.07);
- box-shadow: 3px -3px 7px rgba(0, 0, 0, 0.07);
- -webkit-transform: translateX(-6.53553391px) rotate(45deg);
- transform: translateX(-6.53553391px) rotate(45deg);
-}
-.ant-tooltip-placement-left .ant-tooltip-arrow {
- top: 50%;
- -webkit-transform: translateY(-50%);
- transform: translateY(-50%);
-}
-.ant-tooltip-placement-leftTop .ant-tooltip-arrow {
- top: 5px;
-}
-.ant-tooltip-placement-leftBottom .ant-tooltip-arrow {
- bottom: 5px;
-}
-.ant-tooltip-placement-bottom .ant-tooltip-arrow,
-.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow,
-.ant-tooltip-placement-bottomRight .ant-tooltip-arrow {
- top: -5.07106781px;
-}
-.ant-tooltip-placement-bottom .ant-tooltip-arrow-content,
-.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow-content,
-.ant-tooltip-placement-bottomRight .ant-tooltip-arrow-content {
- -webkit-box-shadow: -3px -3px 7px rgba(0, 0, 0, 0.07);
- box-shadow: -3px -3px 7px rgba(0, 0, 0, 0.07);
- -webkit-transform: translateY(6.53553391px) rotate(45deg);
- transform: translateY(6.53553391px) rotate(45deg);
-}
-.ant-tooltip-placement-bottom .ant-tooltip-arrow {
- left: 50%;
- -webkit-transform: translateX(-50%);
- transform: translateX(-50%);
-}
-.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow {
- left: 13px;
-}
-.ant-tooltip-placement-bottomRight .ant-tooltip-arrow {
- right: 13px;
-}
-.ant-tooltip-pink .ant-tooltip-inner {
- background-color: #eb2f96;
-}
-.ant-tooltip-pink .ant-tooltip-arrow-content {
- background-color: #eb2f96;
-}
-.ant-tooltip-magenta .ant-tooltip-inner {
- background-color: #eb2f96;
-}
-.ant-tooltip-magenta .ant-tooltip-arrow-content {
- background-color: #eb2f96;
-}
-.ant-tooltip-red .ant-tooltip-inner {
- background-color: #f5222d;
-}
-.ant-tooltip-red .ant-tooltip-arrow-content {
- background-color: #f5222d;
-}
-.ant-tooltip-volcano .ant-tooltip-inner {
- background-color: #fa541c;
-}
-.ant-tooltip-volcano .ant-tooltip-arrow-content {
- background-color: #fa541c;
-}
-.ant-tooltip-orange .ant-tooltip-inner {
- background-color: #fa8c16;
-}
-.ant-tooltip-orange .ant-tooltip-arrow-content {
- background-color: #fa8c16;
-}
-.ant-tooltip-yellow .ant-tooltip-inner {
- background-color: #fadb14;
-}
-.ant-tooltip-yellow .ant-tooltip-arrow-content {
- background-color: #fadb14;
-}
-.ant-tooltip-gold .ant-tooltip-inner {
- background-color: #faad14;
-}
-.ant-tooltip-gold .ant-tooltip-arrow-content {
- background-color: #faad14;
-}
-.ant-tooltip-cyan .ant-tooltip-inner {
- background-color: #13c2c2;
-}
-.ant-tooltip-cyan .ant-tooltip-arrow-content {
- background-color: #13c2c2;
-}
-.ant-tooltip-lime .ant-tooltip-inner {
- background-color: #a0d911;
-}
-.ant-tooltip-lime .ant-tooltip-arrow-content {
- background-color: #a0d911;
-}
-.ant-tooltip-green .ant-tooltip-inner {
- background-color: #52c41a;
-}
-.ant-tooltip-green .ant-tooltip-arrow-content {
- background-color: #52c41a;
-}
-.ant-tooltip-blue .ant-tooltip-inner {
- background-color: #1890ff;
-}
-.ant-tooltip-blue .ant-tooltip-arrow-content {
- background-color: #1890ff;
-}
-.ant-tooltip-geekblue .ant-tooltip-inner {
- background-color: #2f54eb;
-}
-.ant-tooltip-geekblue .ant-tooltip-arrow-content {
- background-color: #2f54eb;
-}
-.ant-tooltip-purple .ant-tooltip-inner {
- background-color: #722ed1;
-}
-.ant-tooltip-purple .ant-tooltip-arrow-content {
- background-color: #722ed1;
-}
-.ant-tooltip-rtl {
- direction: rtl;
-}
-.ant-tooltip-rtl .ant-tooltip-inner {
- text-align: right;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-dropdown-menu-item.ant-dropdown-menu-item-danger {
- color: #ff4d4f;
-}
-.ant-dropdown-menu-item.ant-dropdown-menu-item-danger:hover {
- color: #fff;
- background-color: #ff4d4f;
-}
-.ant-dropdown {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- position: absolute;
- top: -9999px;
- left: -9999px;
- z-index: 1050;
- display: block;
-}
-.ant-dropdown::before {
- position: absolute;
- top: -7px;
- right: 0;
- bottom: -7px;
- left: -7px;
- z-index: -9999;
- opacity: 0.0001;
- content: ' ';
-}
-.ant-dropdown-wrap {
- position: relative;
-}
-.ant-dropdown-wrap .ant-btn > .anticon-down {
- display: inline-block;
- font-size: 10px;
-}
-.ant-dropdown-wrap .anticon-down::before {
- -webkit-transition: -webkit-transform 0.2s;
- transition: -webkit-transform 0.2s;
- transition: transform 0.2s;
- transition: transform 0.2s, -webkit-transform 0.2s;
-}
-.ant-dropdown-wrap-open .anticon-down::before {
- -webkit-transform: rotate(180deg);
- transform: rotate(180deg);
-}
-.ant-dropdown-hidden,
-.ant-dropdown-menu-hidden {
- display: none;
-}
-.ant-dropdown-show-arrow.ant-dropdown-placement-topCenter,
-.ant-dropdown-show-arrow.ant-dropdown-placement-topLeft,
-.ant-dropdown-show-arrow.ant-dropdown-placement-topRight {
- padding-bottom: 10px;
-}
-.ant-dropdown-show-arrow.ant-dropdown-placement-bottomCenter,
-.ant-dropdown-show-arrow.ant-dropdown-placement-bottomLeft,
-.ant-dropdown-show-arrow.ant-dropdown-placement-bottomRight {
- padding-top: 10px;
-}
-.ant-dropdown-arrow {
- position: absolute;
- z-index: 1;
- display: block;
- width: 8.48528137px;
- height: 8.48528137px;
- background: transparent;
- border-style: solid;
- border-width: 4.24264069px;
- -webkit-transform: rotate(45deg);
- transform: rotate(45deg);
-}
-.ant-dropdown-placement-topCenter > .ant-dropdown-arrow,
-.ant-dropdown-placement-topLeft > .ant-dropdown-arrow,
-.ant-dropdown-placement-topRight > .ant-dropdown-arrow {
- bottom: 6.2px;
- border-top-color: transparent;
- border-right-color: #fff;
- border-bottom-color: #fff;
- border-left-color: transparent;
- -webkit-box-shadow: 3px 3px 7px rgba(0, 0, 0, 0.07);
- box-shadow: 3px 3px 7px rgba(0, 0, 0, 0.07);
-}
-.ant-dropdown-placement-topCenter > .ant-dropdown-arrow {
- left: 50%;
- -webkit-transform: translateX(-50%) rotate(45deg);
- transform: translateX(-50%) rotate(45deg);
-}
-.ant-dropdown-placement-topLeft > .ant-dropdown-arrow {
- left: 16px;
-}
-.ant-dropdown-placement-topRight > .ant-dropdown-arrow {
- right: 16px;
-}
-.ant-dropdown-placement-bottomCenter > .ant-dropdown-arrow,
-.ant-dropdown-placement-bottomLeft > .ant-dropdown-arrow,
-.ant-dropdown-placement-bottomRight > .ant-dropdown-arrow {
- top: 6px;
- border-top-color: #fff;
- border-right-color: transparent;
- border-bottom-color: transparent;
- border-left-color: #fff;
- -webkit-box-shadow: -2px -2px 5px rgba(0, 0, 0, 0.06);
- box-shadow: -2px -2px 5px rgba(0, 0, 0, 0.06);
-}
-.ant-dropdown-placement-bottomCenter > .ant-dropdown-arrow {
- left: 50%;
- -webkit-transform: translateX(-50%) rotate(45deg);
- transform: translateX(-50%) rotate(45deg);
-}
-.ant-dropdown-placement-bottomLeft > .ant-dropdown-arrow {
- left: 16px;
-}
-.ant-dropdown-placement-bottomRight > .ant-dropdown-arrow {
- right: 16px;
-}
-.ant-dropdown-menu {
- position: relative;
- margin: 0;
- padding: 4px 0;
- text-align: left;
- list-style-type: none;
- background-color: #fff;
- background-clip: padding-box;
- border-radius: 2px;
- outline: none;
- -webkit-box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
- box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
-}
-.ant-dropdown-menu-item-group-title {
- padding: 5px 12px;
- color: rgba(0, 0, 0, 0.45);
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
-}
-.ant-dropdown-menu-submenu-popup {
- position: absolute;
- z-index: 1050;
- background: transparent;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-.ant-dropdown-menu-submenu-popup > .ant-dropdown-menu {
- -webkit-transform-origin: 0 0;
- transform-origin: 0 0;
-}
-.ant-dropdown-menu-submenu-popup ul,
-.ant-dropdown-menu-submenu-popup li {
- list-style: none;
-}
-.ant-dropdown-menu-submenu-popup ul {
- margin-right: 0.3em;
- margin-left: 0.3em;
-}
-.ant-dropdown-menu-item,
-.ant-dropdown-menu-submenu-title {
- clear: both;
- margin: 0;
- padding: 5px 12px;
- color: rgba(0, 0, 0, 0.65);
- font-weight: normal;
- font-size: 14px;
- line-height: 22px;
- white-space: nowrap;
- cursor: pointer;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
-}
-.ant-dropdown-menu-item > .anticon:first-child,
-.ant-dropdown-menu-submenu-title > .anticon:first-child,
-.ant-dropdown-menu-item > span > .anticon:first-child,
-.ant-dropdown-menu-submenu-title > span > .anticon:first-child {
- min-width: 12px;
- margin-right: 8px;
- font-size: 12px;
-}
-.ant-dropdown-menu-item > a,
-.ant-dropdown-menu-submenu-title > a {
- display: block;
- margin: -5px -12px;
- padding: 5px 12px;
- color: rgba(0, 0, 0, 0.65);
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
-}
-.ant-dropdown-menu-item > a:hover,
-.ant-dropdown-menu-submenu-title > a:hover {
- color: rgba(0, 0, 0, 0.65);
-}
-.ant-dropdown-menu-item > .anticon + span > a,
-.ant-dropdown-menu-submenu-title > .anticon + span > a {
- color: rgba(0, 0, 0, 0.65);
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
-}
-.ant-dropdown-menu-item > .anticon + span > a:hover,
-.ant-dropdown-menu-submenu-title > .anticon + span > a:hover {
- color: rgba(0, 0, 0, 0.65);
-}
-.ant-dropdown-menu-item-selected,
-.ant-dropdown-menu-submenu-title-selected,
-.ant-dropdown-menu-item-selected > a,
-.ant-dropdown-menu-submenu-title-selected > a {
- color: #1890ff;
- background-color: #e6f7ff;
-}
-.ant-dropdown-menu-item:hover,
-.ant-dropdown-menu-submenu-title:hover {
- background-color: #f5f5f5;
-}
-.ant-dropdown-menu-item-disabled,
-.ant-dropdown-menu-submenu-title-disabled {
- color: rgba(0, 0, 0, 0.25);
- cursor: not-allowed;
-}
-.ant-dropdown-menu-item-disabled:hover,
-.ant-dropdown-menu-submenu-title-disabled:hover {
- color: rgba(0, 0, 0, 0.25);
- background-color: #fff;
- cursor: not-allowed;
-}
-.ant-dropdown-menu-item-divider,
-.ant-dropdown-menu-submenu-title-divider {
- height: 1px;
- margin: 4px 0;
- overflow: hidden;
- line-height: 0;
- background-color: #f0f0f0;
-}
-.ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow,
-.ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow {
- position: absolute;
- right: 8px;
-}
-.ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow-icon,
-.ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow-icon {
- margin-right: 0 !important;
- color: rgba(0, 0, 0, 0.45);
- font-style: normal;
- display: inline-block;
- font-size: 10px;
-}
-.ant-dropdown-menu-item-group-list {
- margin: 0 8px;
- padding: 0;
- list-style: none;
-}
-.ant-dropdown-menu-submenu-title {
- padding-right: 24px;
-}
-.ant-dropdown-menu-submenu-vertical {
- position: relative;
-}
-.ant-dropdown-menu-submenu-vertical > .ant-dropdown-menu {
- position: absolute;
- top: 0;
- left: 100%;
- min-width: 100%;
- margin-left: 4px;
- -webkit-transform-origin: 0 0;
- transform-origin: 0 0;
-}
-.ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title,
-.ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow-icon {
- color: rgba(0, 0, 0, 0.25);
- background-color: #fff;
- cursor: not-allowed;
-}
-.ant-dropdown-menu-submenu-selected .ant-dropdown-menu-submenu-title {
- color: #1890ff;
-}
-.ant-dropdown.slide-down-enter.slide-down-enter-active.ant-dropdown-placement-bottomLeft,
-.ant-dropdown.slide-down-appear.slide-down-appear-active.ant-dropdown-placement-bottomLeft,
-.ant-dropdown.slide-down-enter.slide-down-enter-active.ant-dropdown-placement-bottomCenter,
-.ant-dropdown.slide-down-appear.slide-down-appear-active.ant-dropdown-placement-bottomCenter,
-.ant-dropdown.slide-down-enter.slide-down-enter-active.ant-dropdown-placement-bottomRight,
-.ant-dropdown.slide-down-appear.slide-down-appear-active.ant-dropdown-placement-bottomRight {
- -webkit-animation-name: antSlideUpIn;
- animation-name: antSlideUpIn;
-}
-.ant-dropdown.slide-up-enter.slide-up-enter-active.ant-dropdown-placement-topLeft,
-.ant-dropdown.slide-up-appear.slide-up-appear-active.ant-dropdown-placement-topLeft,
-.ant-dropdown.slide-up-enter.slide-up-enter-active.ant-dropdown-placement-topCenter,
-.ant-dropdown.slide-up-appear.slide-up-appear-active.ant-dropdown-placement-topCenter,
-.ant-dropdown.slide-up-enter.slide-up-enter-active.ant-dropdown-placement-topRight,
-.ant-dropdown.slide-up-appear.slide-up-appear-active.ant-dropdown-placement-topRight {
- -webkit-animation-name: antSlideDownIn;
- animation-name: antSlideDownIn;
-}
-.ant-dropdown.slide-down-leave.slide-down-leave-active.ant-dropdown-placement-bottomLeft,
-.ant-dropdown.slide-down-leave.slide-down-leave-active.ant-dropdown-placement-bottomCenter,
-.ant-dropdown.slide-down-leave.slide-down-leave-active.ant-dropdown-placement-bottomRight {
- -webkit-animation-name: antSlideUpOut;
- animation-name: antSlideUpOut;
-}
-.ant-dropdown.slide-up-leave.slide-up-leave-active.ant-dropdown-placement-topLeft,
-.ant-dropdown.slide-up-leave.slide-up-leave-active.ant-dropdown-placement-topCenter,
-.ant-dropdown.slide-up-leave.slide-up-leave-active.ant-dropdown-placement-topRight {
- -webkit-animation-name: antSlideDownOut;
- animation-name: antSlideDownOut;
-}
-.ant-dropdown-trigger > .anticon.anticon-down,
-.ant-dropdown-link > .anticon.anticon-down,
-.ant-dropdown-button > .anticon.anticon-down {
- vertical-align: baseline;
- display: inline-block;
- font-size: 10px;
-}
-.ant-dropdown-button {
- white-space: nowrap;
-}
-.ant-dropdown-button.ant-btn-group > .ant-btn:last-child:not(:first-child):not(.ant-btn-icon-only) {
- padding-right: 8px;
- padding-left: 8px;
-}
-.ant-dropdown-menu-dark,
-.ant-dropdown-menu-dark .ant-dropdown-menu {
- background: #001529;
-}
-.ant-dropdown-menu-dark .ant-dropdown-menu-item,
-.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title,
-.ant-dropdown-menu-dark .ant-dropdown-menu-item > a,
-.ant-dropdown-menu-dark .ant-dropdown-menu-item > .anticon + span > a {
- color: rgba(255, 255, 255, 0.65);
-}
-.ant-dropdown-menu-dark .ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow::after,
-.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow::after,
-.ant-dropdown-menu-dark .ant-dropdown-menu-item > a .ant-dropdown-menu-submenu-arrow::after,
-.ant-dropdown-menu-dark .ant-dropdown-menu-item > .anticon + span > a .ant-dropdown-menu-submenu-arrow::after {
- color: rgba(255, 255, 255, 0.65);
-}
-.ant-dropdown-menu-dark .ant-dropdown-menu-item:hover,
-.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title:hover,
-.ant-dropdown-menu-dark .ant-dropdown-menu-item > a:hover,
-.ant-dropdown-menu-dark .ant-dropdown-menu-item > .anticon + span > a:hover {
- color: #fff;
- background: transparent;
-}
-.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected,
-.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected:hover,
-.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected > a {
- color: #fff;
- background: #1890ff;
-}
-.ant-dropdown-rtl {
- direction: rtl;
-}
-.ant-dropdown-rtl.ant-dropdown::before {
- right: -7px;
- left: 0;
-}
-.ant-dropdown-menu-rtl {
- direction: rtl;
- text-align: right;
-}
-.ant-dropdown-rtl .ant-dropdown-menu-item-group-title {
- direction: rtl;
- text-align: right;
-}
-.ant-dropdown-rtl .ant-dropdown-menu-submenu-popup ul,
-.ant-dropdown-rtl .ant-dropdown-menu-submenu-popup li {
- text-align: right;
-}
-.ant-dropdown-rtl .ant-dropdown-menu-item,
-.ant-dropdown-rtl .ant-dropdown-menu-submenu-title {
- text-align: right;
-}
-.ant-dropdown-rtl .ant-dropdown-menu-item > .anticon:first-child,
-.ant-dropdown-rtl .ant-dropdown-menu-submenu-title > .anticon:first-child,
-.ant-dropdown-rtl .ant-dropdown-menu-item > span > .anticon:first-child,
-.ant-dropdown-rtl .ant-dropdown-menu-submenu-title > span > .anticon:first-child {
- margin-right: 0;
- margin-left: 8px;
-}
-.ant-dropdown-rtl .ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow,
-.ant-dropdown-rtl .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow {
- right: auto;
- left: 8px;
-}
-.ant-dropdown-rtl .ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow-icon,
-.ant-dropdown-rtl .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow-icon {
- margin-left: 0 !important;
- -webkit-transform: scaleX(-1);
- transform: scaleX(-1);
-}
-.ant-dropdown-rtl .ant-dropdown-menu-submenu-title {
- padding-right: 12px;
- padding-left: 24px;
-}
-.ant-dropdown-rtl .ant-dropdown-menu-submenu-vertical > .ant-dropdown-menu {
- right: 100%;
- left: 0;
- margin-right: 4px;
- margin-left: 0;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-btn {
- line-height: 1.5715;
- position: relative;
- display: inline-block;
- font-weight: 400;
- white-space: nowrap;
- text-align: center;
- background-image: none;
- border: 1px solid transparent;
- -webkit-box-shadow: 0 2px 0 rgba(0, 0, 0, 0.015);
- box-shadow: 0 2px 0 rgba(0, 0, 0, 0.015);
- cursor: pointer;
- -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
- transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- -ms-touch-action: manipulation;
- touch-action: manipulation;
- height: 32px;
- padding: 4px 15px;
- font-size: 14px;
- border-radius: 2px;
- color: rgba(0, 0, 0, 0.65);
- background: #fff;
- border-color: #d9d9d9;
-}
-.ant-btn > .anticon {
- line-height: 1;
-}
-.ant-btn,
-.ant-btn:active,
-.ant-btn:focus {
- outline: 0;
-}
-.ant-btn:not([disabled]):hover {
- text-decoration: none;
-}
-.ant-btn:not([disabled]):active {
- outline: 0;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-.ant-btn[disabled] {
- cursor: not-allowed;
-}
-.ant-btn[disabled] > * {
- pointer-events: none;
-}
-.ant-btn-lg {
- height: 40px;
- padding: 6.4px 15px;
- font-size: 16px;
- border-radius: 2px;
-}
-.ant-btn-sm {
- height: 24px;
- padding: 0px 7px;
- font-size: 14px;
- border-radius: 2px;
-}
-.ant-btn > a:only-child {
- color: currentColor;
-}
-.ant-btn > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn:hover,
-.ant-btn:focus {
- color: #40a9ff;
- background: #fff;
- border-color: #40a9ff;
-}
-.ant-btn:hover > a:only-child,
-.ant-btn:focus > a:only-child {
- color: currentColor;
-}
-.ant-btn:hover > a:only-child::after,
-.ant-btn:focus > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn:active {
- color: #096dd9;
- background: #fff;
- border-color: #096dd9;
-}
-.ant-btn:active > a:only-child {
- color: currentColor;
-}
-.ant-btn:active > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn[disabled],
-.ant-btn[disabled]:hover,
-.ant-btn[disabled]:focus,
-.ant-btn[disabled]:active {
- color: rgba(0, 0, 0, 0.25);
- background: #f5f5f5;
- border-color: #d9d9d9;
- text-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-.ant-btn[disabled] > a:only-child,
-.ant-btn[disabled]:hover > a:only-child,
-.ant-btn[disabled]:focus > a:only-child,
-.ant-btn[disabled]:active > a:only-child {
- color: currentColor;
-}
-.ant-btn[disabled] > a:only-child::after,
-.ant-btn[disabled]:hover > a:only-child::after,
-.ant-btn[disabled]:focus > a:only-child::after,
-.ant-btn[disabled]:active > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn:hover,
-.ant-btn:focus,
-.ant-btn:active {
- text-decoration: none;
- background: #fff;
-}
-.ant-btn > span {
- display: inline-block;
-}
-.ant-btn-primary {
- color: #fff;
- background: #1890ff;
- border-color: #1890ff;
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.12);
- -webkit-box-shadow: 0 2px 0 rgba(0, 0, 0, 0.045);
- box-shadow: 0 2px 0 rgba(0, 0, 0, 0.045);
-}
-.ant-btn-primary > a:only-child {
- color: currentColor;
-}
-.ant-btn-primary > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-primary:hover,
-.ant-btn-primary:focus {
- color: #fff;
- background: #40a9ff;
- border-color: #40a9ff;
-}
-.ant-btn-primary:hover > a:only-child,
-.ant-btn-primary:focus > a:only-child {
- color: currentColor;
-}
-.ant-btn-primary:hover > a:only-child::after,
-.ant-btn-primary:focus > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-primary:active {
- color: #fff;
- background: #096dd9;
- border-color: #096dd9;
-}
-.ant-btn-primary:active > a:only-child {
- color: currentColor;
-}
-.ant-btn-primary:active > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-primary[disabled],
-.ant-btn-primary[disabled]:hover,
-.ant-btn-primary[disabled]:focus,
-.ant-btn-primary[disabled]:active {
- color: rgba(0, 0, 0, 0.25);
- background: #f5f5f5;
- border-color: #d9d9d9;
- text-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-.ant-btn-primary[disabled] > a:only-child,
-.ant-btn-primary[disabled]:hover > a:only-child,
-.ant-btn-primary[disabled]:focus > a:only-child,
-.ant-btn-primary[disabled]:active > a:only-child {
- color: currentColor;
-}
-.ant-btn-primary[disabled] > a:only-child::after,
-.ant-btn-primary[disabled]:hover > a:only-child::after,
-.ant-btn-primary[disabled]:focus > a:only-child::after,
-.ant-btn-primary[disabled]:active > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child) {
- border-right-color: #40a9ff;
- border-left-color: #40a9ff;
-}
-.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child):disabled {
- border-color: #d9d9d9;
-}
-.ant-btn-group .ant-btn-primary:first-child:not(:last-child) {
- border-right-color: #40a9ff;
-}
-.ant-btn-group .ant-btn-primary:first-child:not(:last-child)[disabled] {
- border-right-color: #d9d9d9;
-}
-.ant-btn-group .ant-btn-primary:last-child:not(:first-child),
-.ant-btn-group .ant-btn-primary + .ant-btn-primary {
- border-left-color: #40a9ff;
-}
-.ant-btn-group .ant-btn-primary:last-child:not(:first-child)[disabled],
-.ant-btn-group .ant-btn-primary + .ant-btn-primary[disabled] {
- border-left-color: #d9d9d9;
-}
-.ant-btn-ghost {
- color: rgba(0, 0, 0, 0.65);
- background: transparent;
- border-color: #d9d9d9;
-}
-.ant-btn-ghost > a:only-child {
- color: currentColor;
-}
-.ant-btn-ghost > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-ghost:hover,
-.ant-btn-ghost:focus {
- color: #40a9ff;
- background: transparent;
- border-color: #40a9ff;
-}
-.ant-btn-ghost:hover > a:only-child,
-.ant-btn-ghost:focus > a:only-child {
- color: currentColor;
-}
-.ant-btn-ghost:hover > a:only-child::after,
-.ant-btn-ghost:focus > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-ghost:active {
- color: #096dd9;
- background: transparent;
- border-color: #096dd9;
-}
-.ant-btn-ghost:active > a:only-child {
- color: currentColor;
-}
-.ant-btn-ghost:active > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-ghost[disabled],
-.ant-btn-ghost[disabled]:hover,
-.ant-btn-ghost[disabled]:focus,
-.ant-btn-ghost[disabled]:active {
- color: rgba(0, 0, 0, 0.25);
- background: #f5f5f5;
- border-color: #d9d9d9;
- text-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-.ant-btn-ghost[disabled] > a:only-child,
-.ant-btn-ghost[disabled]:hover > a:only-child,
-.ant-btn-ghost[disabled]:focus > a:only-child,
-.ant-btn-ghost[disabled]:active > a:only-child {
- color: currentColor;
-}
-.ant-btn-ghost[disabled] > a:only-child::after,
-.ant-btn-ghost[disabled]:hover > a:only-child::after,
-.ant-btn-ghost[disabled]:focus > a:only-child::after,
-.ant-btn-ghost[disabled]:active > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-dashed {
- color: rgba(0, 0, 0, 0.65);
- background: #fff;
- border-color: #d9d9d9;
- border-style: dashed;
-}
-.ant-btn-dashed > a:only-child {
- color: currentColor;
-}
-.ant-btn-dashed > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-dashed:hover,
-.ant-btn-dashed:focus {
- color: #40a9ff;
- background: #fff;
- border-color: #40a9ff;
-}
-.ant-btn-dashed:hover > a:only-child,
-.ant-btn-dashed:focus > a:only-child {
- color: currentColor;
-}
-.ant-btn-dashed:hover > a:only-child::after,
-.ant-btn-dashed:focus > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-dashed:active {
- color: #096dd9;
- background: #fff;
- border-color: #096dd9;
-}
-.ant-btn-dashed:active > a:only-child {
- color: currentColor;
-}
-.ant-btn-dashed:active > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-dashed[disabled],
-.ant-btn-dashed[disabled]:hover,
-.ant-btn-dashed[disabled]:focus,
-.ant-btn-dashed[disabled]:active {
- color: rgba(0, 0, 0, 0.25);
- background: #f5f5f5;
- border-color: #d9d9d9;
- text-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-.ant-btn-dashed[disabled] > a:only-child,
-.ant-btn-dashed[disabled]:hover > a:only-child,
-.ant-btn-dashed[disabled]:focus > a:only-child,
-.ant-btn-dashed[disabled]:active > a:only-child {
- color: currentColor;
-}
-.ant-btn-dashed[disabled] > a:only-child::after,
-.ant-btn-dashed[disabled]:hover > a:only-child::after,
-.ant-btn-dashed[disabled]:focus > a:only-child::after,
-.ant-btn-dashed[disabled]:active > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-danger {
- color: #fff;
- background: #ff4d4f;
- border-color: #ff4d4f;
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.12);
- -webkit-box-shadow: 0 2px 0 rgba(0, 0, 0, 0.045);
- box-shadow: 0 2px 0 rgba(0, 0, 0, 0.045);
-}
-.ant-btn-danger > a:only-child {
- color: currentColor;
-}
-.ant-btn-danger > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-danger:hover,
-.ant-btn-danger:focus {
- color: #fff;
- background: #ff7875;
- border-color: #ff7875;
-}
-.ant-btn-danger:hover > a:only-child,
-.ant-btn-danger:focus > a:only-child {
- color: currentColor;
-}
-.ant-btn-danger:hover > a:only-child::after,
-.ant-btn-danger:focus > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-danger:active {
- color: #fff;
- background: #d9363e;
- border-color: #d9363e;
-}
-.ant-btn-danger:active > a:only-child {
- color: currentColor;
-}
-.ant-btn-danger:active > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-danger[disabled],
-.ant-btn-danger[disabled]:hover,
-.ant-btn-danger[disabled]:focus,
-.ant-btn-danger[disabled]:active {
- color: rgba(0, 0, 0, 0.25);
- background: #f5f5f5;
- border-color: #d9d9d9;
- text-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-.ant-btn-danger[disabled] > a:only-child,
-.ant-btn-danger[disabled]:hover > a:only-child,
-.ant-btn-danger[disabled]:focus > a:only-child,
-.ant-btn-danger[disabled]:active > a:only-child {
- color: currentColor;
-}
-.ant-btn-danger[disabled] > a:only-child::after,
-.ant-btn-danger[disabled]:hover > a:only-child::after,
-.ant-btn-danger[disabled]:focus > a:only-child::after,
-.ant-btn-danger[disabled]:active > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-link {
- color: #1890ff;
- background: transparent;
- border-color: transparent;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-.ant-btn-link > a:only-child {
- color: currentColor;
-}
-.ant-btn-link > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-link:hover,
-.ant-btn-link:focus {
- color: #40a9ff;
- background: transparent;
- border-color: #40a9ff;
-}
-.ant-btn-link:hover > a:only-child,
-.ant-btn-link:focus > a:only-child {
- color: currentColor;
-}
-.ant-btn-link:hover > a:only-child::after,
-.ant-btn-link:focus > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-link:active {
- color: #096dd9;
- background: transparent;
- border-color: #096dd9;
-}
-.ant-btn-link:active > a:only-child {
- color: currentColor;
-}
-.ant-btn-link:active > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-link[disabled],
-.ant-btn-link[disabled]:hover,
-.ant-btn-link[disabled]:focus,
-.ant-btn-link[disabled]:active {
- color: rgba(0, 0, 0, 0.25);
- background: #f5f5f5;
- border-color: #d9d9d9;
- text-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-.ant-btn-link[disabled] > a:only-child,
-.ant-btn-link[disabled]:hover > a:only-child,
-.ant-btn-link[disabled]:focus > a:only-child,
-.ant-btn-link[disabled]:active > a:only-child {
- color: currentColor;
-}
-.ant-btn-link[disabled] > a:only-child::after,
-.ant-btn-link[disabled]:hover > a:only-child::after,
-.ant-btn-link[disabled]:focus > a:only-child::after,
-.ant-btn-link[disabled]:active > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-link:hover {
- background: transparent;
-}
-.ant-btn-link:hover,
-.ant-btn-link:focus,
-.ant-btn-link:active {
- border-color: transparent;
-}
-.ant-btn-link[disabled],
-.ant-btn-link[disabled]:hover,
-.ant-btn-link[disabled]:focus,
-.ant-btn-link[disabled]:active {
- color: rgba(0, 0, 0, 0.25);
- background: transparent;
- border-color: transparent;
- text-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-.ant-btn-link[disabled] > a:only-child,
-.ant-btn-link[disabled]:hover > a:only-child,
-.ant-btn-link[disabled]:focus > a:only-child,
-.ant-btn-link[disabled]:active > a:only-child {
- color: currentColor;
-}
-.ant-btn-link[disabled] > a:only-child::after,
-.ant-btn-link[disabled]:hover > a:only-child::after,
-.ant-btn-link[disabled]:focus > a:only-child::after,
-.ant-btn-link[disabled]:active > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-text {
- color: rgba(0, 0, 0, 0.65);
- background: transparent;
- border-color: transparent;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-.ant-btn-text > a:only-child {
- color: currentColor;
-}
-.ant-btn-text > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-text:hover,
-.ant-btn-text:focus {
- color: #40a9ff;
- background: transparent;
- border-color: #40a9ff;
-}
-.ant-btn-text:hover > a:only-child,
-.ant-btn-text:focus > a:only-child {
- color: currentColor;
-}
-.ant-btn-text:hover > a:only-child::after,
-.ant-btn-text:focus > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-text:active {
- color: #096dd9;
- background: transparent;
- border-color: #096dd9;
-}
-.ant-btn-text:active > a:only-child {
- color: currentColor;
-}
-.ant-btn-text:active > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-text[disabled],
-.ant-btn-text[disabled]:hover,
-.ant-btn-text[disabled]:focus,
-.ant-btn-text[disabled]:active {
- color: rgba(0, 0, 0, 0.25);
- background: #f5f5f5;
- border-color: #d9d9d9;
- text-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-.ant-btn-text[disabled] > a:only-child,
-.ant-btn-text[disabled]:hover > a:only-child,
-.ant-btn-text[disabled]:focus > a:only-child,
-.ant-btn-text[disabled]:active > a:only-child {
- color: currentColor;
-}
-.ant-btn-text[disabled] > a:only-child::after,
-.ant-btn-text[disabled]:hover > a:only-child::after,
-.ant-btn-text[disabled]:focus > a:only-child::after,
-.ant-btn-text[disabled]:active > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-text:hover,
-.ant-btn-text:focus {
- color: rgba(0, 0, 0, 0.65);
- background: rgba(0, 0, 0, 0.018);
- border-color: transparent;
-}
-.ant-btn-text:active {
- color: rgba(0, 0, 0, 0.65);
- background: rgba(0, 0, 0, 0.028);
- border-color: transparent;
-}
-.ant-btn-text[disabled],
-.ant-btn-text[disabled]:hover,
-.ant-btn-text[disabled]:focus,
-.ant-btn-text[disabled]:active {
- color: rgba(0, 0, 0, 0.25);
- background: transparent;
- border-color: transparent;
- text-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-.ant-btn-text[disabled] > a:only-child,
-.ant-btn-text[disabled]:hover > a:only-child,
-.ant-btn-text[disabled]:focus > a:only-child,
-.ant-btn-text[disabled]:active > a:only-child {
- color: currentColor;
-}
-.ant-btn-text[disabled] > a:only-child::after,
-.ant-btn-text[disabled]:hover > a:only-child::after,
-.ant-btn-text[disabled]:focus > a:only-child::after,
-.ant-btn-text[disabled]:active > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-dangerous {
- color: #ff4d4f;
- background: #fff;
- border-color: #ff4d4f;
-}
-.ant-btn-dangerous > a:only-child {
- color: currentColor;
-}
-.ant-btn-dangerous > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-dangerous:hover,
-.ant-btn-dangerous:focus {
- color: #ff7875;
- background: #fff;
- border-color: #ff7875;
-}
-.ant-btn-dangerous:hover > a:only-child,
-.ant-btn-dangerous:focus > a:only-child {
- color: currentColor;
-}
-.ant-btn-dangerous:hover > a:only-child::after,
-.ant-btn-dangerous:focus > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-dangerous:active {
- color: #d9363e;
- background: #fff;
- border-color: #d9363e;
-}
-.ant-btn-dangerous:active > a:only-child {
- color: currentColor;
-}
-.ant-btn-dangerous:active > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-dangerous[disabled],
-.ant-btn-dangerous[disabled]:hover,
-.ant-btn-dangerous[disabled]:focus,
-.ant-btn-dangerous[disabled]:active {
- color: rgba(0, 0, 0, 0.25);
- background: #f5f5f5;
- border-color: #d9d9d9;
- text-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-.ant-btn-dangerous[disabled] > a:only-child,
-.ant-btn-dangerous[disabled]:hover > a:only-child,
-.ant-btn-dangerous[disabled]:focus > a:only-child,
-.ant-btn-dangerous[disabled]:active > a:only-child {
- color: currentColor;
-}
-.ant-btn-dangerous[disabled] > a:only-child::after,
-.ant-btn-dangerous[disabled]:hover > a:only-child::after,
-.ant-btn-dangerous[disabled]:focus > a:only-child::after,
-.ant-btn-dangerous[disabled]:active > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-dangerous.ant-btn-primary {
- color: #fff;
- background: #ff4d4f;
- border-color: #ff4d4f;
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.12);
- -webkit-box-shadow: 0 2px 0 rgba(0, 0, 0, 0.045);
- box-shadow: 0 2px 0 rgba(0, 0, 0, 0.045);
-}
-.ant-btn-dangerous.ant-btn-primary > a:only-child {
- color: currentColor;
-}
-.ant-btn-dangerous.ant-btn-primary > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-dangerous.ant-btn-primary:hover,
-.ant-btn-dangerous.ant-btn-primary:focus {
- color: #fff;
- background: #ff7875;
- border-color: #ff7875;
-}
-.ant-btn-dangerous.ant-btn-primary:hover > a:only-child,
-.ant-btn-dangerous.ant-btn-primary:focus > a:only-child {
- color: currentColor;
-}
-.ant-btn-dangerous.ant-btn-primary:hover > a:only-child::after,
-.ant-btn-dangerous.ant-btn-primary:focus > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-dangerous.ant-btn-primary:active {
- color: #fff;
- background: #d9363e;
- border-color: #d9363e;
-}
-.ant-btn-dangerous.ant-btn-primary:active > a:only-child {
- color: currentColor;
-}
-.ant-btn-dangerous.ant-btn-primary:active > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-dangerous.ant-btn-primary[disabled],
-.ant-btn-dangerous.ant-btn-primary[disabled]:hover,
-.ant-btn-dangerous.ant-btn-primary[disabled]:focus,
-.ant-btn-dangerous.ant-btn-primary[disabled]:active {
- color: rgba(0, 0, 0, 0.25);
- background: #f5f5f5;
- border-color: #d9d9d9;
- text-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-.ant-btn-dangerous.ant-btn-primary[disabled] > a:only-child,
-.ant-btn-dangerous.ant-btn-primary[disabled]:hover > a:only-child,
-.ant-btn-dangerous.ant-btn-primary[disabled]:focus > a:only-child,
-.ant-btn-dangerous.ant-btn-primary[disabled]:active > a:only-child {
- color: currentColor;
-}
-.ant-btn-dangerous.ant-btn-primary[disabled] > a:only-child::after,
-.ant-btn-dangerous.ant-btn-primary[disabled]:hover > a:only-child::after,
-.ant-btn-dangerous.ant-btn-primary[disabled]:focus > a:only-child::after,
-.ant-btn-dangerous.ant-btn-primary[disabled]:active > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-dangerous.ant-btn-link {
- color: #ff4d4f;
- background: transparent;
- border-color: transparent;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-.ant-btn-dangerous.ant-btn-link > a:only-child {
- color: currentColor;
-}
-.ant-btn-dangerous.ant-btn-link > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-dangerous.ant-btn-link:hover,
-.ant-btn-dangerous.ant-btn-link:focus {
- color: #40a9ff;
- background: transparent;
- border-color: #40a9ff;
-}
-.ant-btn-dangerous.ant-btn-link:hover > a:only-child,
-.ant-btn-dangerous.ant-btn-link:focus > a:only-child {
- color: currentColor;
-}
-.ant-btn-dangerous.ant-btn-link:hover > a:only-child::after,
-.ant-btn-dangerous.ant-btn-link:focus > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-dangerous.ant-btn-link:active {
- color: #096dd9;
- background: transparent;
- border-color: #096dd9;
-}
-.ant-btn-dangerous.ant-btn-link:active > a:only-child {
- color: currentColor;
-}
-.ant-btn-dangerous.ant-btn-link:active > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-dangerous.ant-btn-link[disabled],
-.ant-btn-dangerous.ant-btn-link[disabled]:hover,
-.ant-btn-dangerous.ant-btn-link[disabled]:focus,
-.ant-btn-dangerous.ant-btn-link[disabled]:active {
- color: rgba(0, 0, 0, 0.25);
- background: #f5f5f5;
- border-color: #d9d9d9;
- text-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-.ant-btn-dangerous.ant-btn-link[disabled] > a:only-child,
-.ant-btn-dangerous.ant-btn-link[disabled]:hover > a:only-child,
-.ant-btn-dangerous.ant-btn-link[disabled]:focus > a:only-child,
-.ant-btn-dangerous.ant-btn-link[disabled]:active > a:only-child {
- color: currentColor;
-}
-.ant-btn-dangerous.ant-btn-link[disabled] > a:only-child::after,
-.ant-btn-dangerous.ant-btn-link[disabled]:hover > a:only-child::after,
-.ant-btn-dangerous.ant-btn-link[disabled]:focus > a:only-child::after,
-.ant-btn-dangerous.ant-btn-link[disabled]:active > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-dangerous.ant-btn-link:hover,
-.ant-btn-dangerous.ant-btn-link:focus {
- color: #ff7875;
- background: transparent;
- border-color: transparent;
-}
-.ant-btn-dangerous.ant-btn-link:hover > a:only-child,
-.ant-btn-dangerous.ant-btn-link:focus > a:only-child {
- color: currentColor;
-}
-.ant-btn-dangerous.ant-btn-link:hover > a:only-child::after,
-.ant-btn-dangerous.ant-btn-link:focus > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-dangerous.ant-btn-link:active {
- color: #d9363e;
- background: transparent;
- border-color: transparent;
-}
-.ant-btn-dangerous.ant-btn-link:active > a:only-child {
- color: currentColor;
-}
-.ant-btn-dangerous.ant-btn-link:active > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-dangerous.ant-btn-link[disabled],
-.ant-btn-dangerous.ant-btn-link[disabled]:hover,
-.ant-btn-dangerous.ant-btn-link[disabled]:focus,
-.ant-btn-dangerous.ant-btn-link[disabled]:active {
- color: rgba(0, 0, 0, 0.25);
- background: transparent;
- border-color: transparent;
- text-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-.ant-btn-dangerous.ant-btn-link[disabled] > a:only-child,
-.ant-btn-dangerous.ant-btn-link[disabled]:hover > a:only-child,
-.ant-btn-dangerous.ant-btn-link[disabled]:focus > a:only-child,
-.ant-btn-dangerous.ant-btn-link[disabled]:active > a:only-child {
- color: currentColor;
-}
-.ant-btn-dangerous.ant-btn-link[disabled] > a:only-child::after,
-.ant-btn-dangerous.ant-btn-link[disabled]:hover > a:only-child::after,
-.ant-btn-dangerous.ant-btn-link[disabled]:focus > a:only-child::after,
-.ant-btn-dangerous.ant-btn-link[disabled]:active > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-dangerous.ant-btn-text {
- color: #ff4d4f;
- background: transparent;
- border-color: transparent;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-.ant-btn-dangerous.ant-btn-text > a:only-child {
- color: currentColor;
-}
-.ant-btn-dangerous.ant-btn-text > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-dangerous.ant-btn-text:hover,
-.ant-btn-dangerous.ant-btn-text:focus {
- color: #40a9ff;
- background: transparent;
- border-color: #40a9ff;
-}
-.ant-btn-dangerous.ant-btn-text:hover > a:only-child,
-.ant-btn-dangerous.ant-btn-text:focus > a:only-child {
- color: currentColor;
-}
-.ant-btn-dangerous.ant-btn-text:hover > a:only-child::after,
-.ant-btn-dangerous.ant-btn-text:focus > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-dangerous.ant-btn-text:active {
- color: #096dd9;
- background: transparent;
- border-color: #096dd9;
-}
-.ant-btn-dangerous.ant-btn-text:active > a:only-child {
- color: currentColor;
-}
-.ant-btn-dangerous.ant-btn-text:active > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-dangerous.ant-btn-text[disabled],
-.ant-btn-dangerous.ant-btn-text[disabled]:hover,
-.ant-btn-dangerous.ant-btn-text[disabled]:focus,
-.ant-btn-dangerous.ant-btn-text[disabled]:active {
- color: rgba(0, 0, 0, 0.25);
- background: #f5f5f5;
- border-color: #d9d9d9;
- text-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-.ant-btn-dangerous.ant-btn-text[disabled] > a:only-child,
-.ant-btn-dangerous.ant-btn-text[disabled]:hover > a:only-child,
-.ant-btn-dangerous.ant-btn-text[disabled]:focus > a:only-child,
-.ant-btn-dangerous.ant-btn-text[disabled]:active > a:only-child {
- color: currentColor;
-}
-.ant-btn-dangerous.ant-btn-text[disabled] > a:only-child::after,
-.ant-btn-dangerous.ant-btn-text[disabled]:hover > a:only-child::after,
-.ant-btn-dangerous.ant-btn-text[disabled]:focus > a:only-child::after,
-.ant-btn-dangerous.ant-btn-text[disabled]:active > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-dangerous.ant-btn-text:hover,
-.ant-btn-dangerous.ant-btn-text:focus {
- color: #ff7875;
- background: rgba(0, 0, 0, 0.018);
- border-color: transparent;
-}
-.ant-btn-dangerous.ant-btn-text:hover > a:only-child,
-.ant-btn-dangerous.ant-btn-text:focus > a:only-child {
- color: currentColor;
-}
-.ant-btn-dangerous.ant-btn-text:hover > a:only-child::after,
-.ant-btn-dangerous.ant-btn-text:focus > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-dangerous.ant-btn-text:active {
- color: #d9363e;
- background: rgba(0, 0, 0, 0.028);
- border-color: transparent;
-}
-.ant-btn-dangerous.ant-btn-text:active > a:only-child {
- color: currentColor;
-}
-.ant-btn-dangerous.ant-btn-text:active > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-dangerous.ant-btn-text[disabled],
-.ant-btn-dangerous.ant-btn-text[disabled]:hover,
-.ant-btn-dangerous.ant-btn-text[disabled]:focus,
-.ant-btn-dangerous.ant-btn-text[disabled]:active {
- color: rgba(0, 0, 0, 0.25);
- background: transparent;
- border-color: transparent;
- text-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-.ant-btn-dangerous.ant-btn-text[disabled] > a:only-child,
-.ant-btn-dangerous.ant-btn-text[disabled]:hover > a:only-child,
-.ant-btn-dangerous.ant-btn-text[disabled]:focus > a:only-child,
-.ant-btn-dangerous.ant-btn-text[disabled]:active > a:only-child {
- color: currentColor;
-}
-.ant-btn-dangerous.ant-btn-text[disabled] > a:only-child::after,
-.ant-btn-dangerous.ant-btn-text[disabled]:hover > a:only-child::after,
-.ant-btn-dangerous.ant-btn-text[disabled]:focus > a:only-child::after,
-.ant-btn-dangerous.ant-btn-text[disabled]:active > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-icon-only {
- width: 32px;
- height: 32px;
- padding: 2.4px 0;
- font-size: 16px;
- border-radius: 2px;
- vertical-align: -0.5px;
-}
-.ant-btn-icon-only > * {
- font-size: 16px;
-}
-.ant-btn-icon-only.ant-btn-lg {
- width: 40px;
- height: 40px;
- padding: 4.9px 0;
- font-size: 18px;
- border-radius: 2px;
-}
-.ant-btn-icon-only.ant-btn-lg > * {
- font-size: 18px;
-}
-.ant-btn-icon-only.ant-btn-sm {
- width: 24px;
- height: 24px;
- padding: 0px 0;
- font-size: 14px;
- border-radius: 2px;
-}
-.ant-btn-icon-only.ant-btn-sm > * {
- font-size: 14px;
-}
-.ant-btn-round {
- height: 32px;
- padding: 4px 16px;
- font-size: 14px;
- border-radius: 32px;
-}
-.ant-btn-round.ant-btn-lg {
- height: 40px;
- padding: 6.4px 20px;
- font-size: 16px;
- border-radius: 40px;
-}
-.ant-btn-round.ant-btn-sm {
- height: 24px;
- padding: 0px 12px;
- font-size: 14px;
- border-radius: 24px;
-}
-.ant-btn-round.ant-btn-icon-only {
- width: auto;
-}
-.ant-btn-circle,
-.ant-btn-circle-outline {
- min-width: 32px;
- padding-right: 0;
- padding-left: 0;
- text-align: center;
- border-radius: 50%;
-}
-.ant-btn-circle.ant-btn-lg,
-.ant-btn-circle-outline.ant-btn-lg {
- min-width: 40px;
- border-radius: 50%;
-}
-.ant-btn-circle.ant-btn-sm,
-.ant-btn-circle-outline.ant-btn-sm {
- min-width: 24px;
- border-radius: 50%;
-}
-.ant-btn::before {
- position: absolute;
- top: -1px;
- right: -1px;
- bottom: -1px;
- left: -1px;
- z-index: 1;
- display: none;
- background: #fff;
- border-radius: inherit;
- opacity: 0.35;
- -webkit-transition: opacity 0.2s;
- transition: opacity 0.2s;
- content: '';
- pointer-events: none;
-}
-.ant-btn .anticon {
- -webkit-transition: margin-left 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
- transition: margin-left 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
-}
-.ant-btn .anticon.anticon-plus > svg,
-.ant-btn .anticon.anticon-minus > svg {
- shape-rendering: optimizeSpeed;
-}
-.ant-btn.ant-btn-loading {
- position: relative;
-}
-.ant-btn.ant-btn-loading:not([disabled]) {
- pointer-events: none;
-}
-.ant-btn.ant-btn-loading::before {
- display: block;
-}
-.ant-btn > .ant-btn-loading-icon {
- -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
- transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
-}
-.ant-btn > .ant-btn-loading-icon .anticon {
- padding-right: 8px;
-}
-.ant-btn > .ant-btn-loading-icon:only-child .anticon {
- padding-right: 0;
-}
-.ant-btn-group {
- position: relative;
- display: -webkit-inline-box;
- display: -ms-inline-flexbox;
- display: inline-flex;
-}
-.ant-btn-group > .ant-btn,
-.ant-btn-group > span > .ant-btn {
- position: relative;
-}
-.ant-btn-group > .ant-btn:hover,
-.ant-btn-group > span > .ant-btn:hover,
-.ant-btn-group > .ant-btn:focus,
-.ant-btn-group > span > .ant-btn:focus,
-.ant-btn-group > .ant-btn:active,
-.ant-btn-group > span > .ant-btn:active {
- z-index: 2;
-}
-.ant-btn-group > .ant-btn[disabled],
-.ant-btn-group > span > .ant-btn[disabled] {
- z-index: 0;
-}
-.ant-btn-group .ant-btn-icon-only {
- font-size: 14px;
-}
-.ant-btn-group-lg > .ant-btn,
-.ant-btn-group-lg > span > .ant-btn {
- height: 40px;
- padding: 6.4px 15px;
- font-size: 16px;
- border-radius: 0;
-}
-.ant-btn-group-lg .ant-btn.ant-btn-icon-only {
- width: 40px;
- height: 40px;
- padding-right: 0;
- padding-left: 0;
-}
-.ant-btn-group-sm > .ant-btn,
-.ant-btn-group-sm > span > .ant-btn {
- height: 24px;
- padding: 0px 7px;
- font-size: 14px;
- border-radius: 0;
-}
-.ant-btn-group-sm > .ant-btn > .anticon,
-.ant-btn-group-sm > span > .ant-btn > .anticon {
- font-size: 14px;
-}
-.ant-btn-group-sm .ant-btn.ant-btn-icon-only {
- width: 24px;
- height: 24px;
- padding-right: 0;
- padding-left: 0;
-}
-.ant-btn-group .ant-btn + .ant-btn,
-.ant-btn + .ant-btn-group,
-.ant-btn-group span + .ant-btn,
-.ant-btn-group .ant-btn + span,
-.ant-btn-group > span + span,
-.ant-btn-group + .ant-btn,
-.ant-btn-group + .ant-btn-group {
- margin-left: -1px;
-}
-.ant-btn-group .ant-btn-primary + .ant-btn:not(.ant-btn-primary):not([disabled]) {
- border-left-color: transparent;
-}
-.ant-btn-group .ant-btn {
- border-radius: 0;
-}
-.ant-btn-group > .ant-btn:first-child,
-.ant-btn-group > span:first-child > .ant-btn {
- margin-left: 0;
-}
-.ant-btn-group > .ant-btn:only-child {
- border-radius: 2px;
-}
-.ant-btn-group > span:only-child > .ant-btn {
- border-radius: 2px;
-}
-.ant-btn-group > .ant-btn:first-child:not(:last-child),
-.ant-btn-group > span:first-child:not(:last-child) > .ant-btn {
- border-top-left-radius: 2px;
- border-bottom-left-radius: 2px;
-}
-.ant-btn-group > .ant-btn:last-child:not(:first-child),
-.ant-btn-group > span:last-child:not(:first-child) > .ant-btn {
- border-top-right-radius: 2px;
- border-bottom-right-radius: 2px;
-}
-.ant-btn-group-sm > .ant-btn:only-child {
- border-radius: 2px;
-}
-.ant-btn-group-sm > span:only-child > .ant-btn {
- border-radius: 2px;
-}
-.ant-btn-group-sm > .ant-btn:first-child:not(:last-child),
-.ant-btn-group-sm > span:first-child:not(:last-child) > .ant-btn {
- border-top-left-radius: 2px;
- border-bottom-left-radius: 2px;
-}
-.ant-btn-group-sm > .ant-btn:last-child:not(:first-child),
-.ant-btn-group-sm > span:last-child:not(:first-child) > .ant-btn {
- border-top-right-radius: 2px;
- border-bottom-right-radius: 2px;
-}
-.ant-btn-group > .ant-btn-group {
- float: left;
-}
-.ant-btn-group > .ant-btn-group:not(:first-child):not(:last-child) > .ant-btn {
- border-radius: 0;
-}
-.ant-btn-group > .ant-btn-group:first-child:not(:last-child) > .ant-btn:last-child {
- padding-right: 8px;
- border-top-right-radius: 0;
- border-bottom-right-radius: 0;
-}
-.ant-btn-group > .ant-btn-group:last-child:not(:first-child) > .ant-btn:first-child {
- padding-left: 8px;
- border-top-left-radius: 0;
- border-bottom-left-radius: 0;
-}
-.ant-btn-rtl.ant-btn-group .ant-btn + .ant-btn,
-.ant-btn-rtl.ant-btn + .ant-btn-group,
-.ant-btn-rtl.ant-btn-group span + .ant-btn,
-.ant-btn-rtl.ant-btn-group .ant-btn + span,
-.ant-btn-rtl.ant-btn-group > span + span,
-.ant-btn-rtl.ant-btn-group + .ant-btn,
-.ant-btn-rtl.ant-btn-group + .ant-btn-group,
-.ant-btn-group-rtl.ant-btn-group .ant-btn + .ant-btn,
-.ant-btn-group-rtl.ant-btn + .ant-btn-group,
-.ant-btn-group-rtl.ant-btn-group span + .ant-btn,
-.ant-btn-group-rtl.ant-btn-group .ant-btn + span,
-.ant-btn-group-rtl.ant-btn-group > span + span,
-.ant-btn-group-rtl.ant-btn-group + .ant-btn,
-.ant-btn-group-rtl.ant-btn-group + .ant-btn-group {
- margin-right: -1px;
- margin-left: auto;
-}
-.ant-btn-group.ant-btn-group-rtl {
- direction: rtl;
-}
-.ant-btn-group-rtl.ant-btn-group > .ant-btn:first-child:not(:last-child),
-.ant-btn-group-rtl.ant-btn-group > span:first-child:not(:last-child) > .ant-btn {
- border-top-left-radius: 0;
- border-top-right-radius: 2px;
- border-bottom-right-radius: 2px;
- border-bottom-left-radius: 0;
-}
-.ant-btn-group-rtl.ant-btn-group > .ant-btn:last-child:not(:first-child),
-.ant-btn-group-rtl.ant-btn-group > span:last-child:not(:first-child) > .ant-btn {
- border-top-left-radius: 2px;
- border-top-right-radius: 0;
- border-bottom-right-radius: 0;
- border-bottom-left-radius: 2px;
-}
-.ant-btn-group-rtl.ant-btn-group-sm > .ant-btn:first-child:not(:last-child),
-.ant-btn-group-rtl.ant-btn-group-sm > span:first-child:not(:last-child) > .ant-btn {
- border-top-left-radius: 0;
- border-top-right-radius: 2px;
- border-bottom-right-radius: 2px;
- border-bottom-left-radius: 0;
-}
-.ant-btn-group-rtl.ant-btn-group-sm > .ant-btn:last-child:not(:first-child),
-.ant-btn-group-rtl.ant-btn-group-sm > span:last-child:not(:first-child) > .ant-btn {
- border-top-left-radius: 2px;
- border-top-right-radius: 0;
- border-bottom-right-radius: 0;
- border-bottom-left-radius: 2px;
-}
-.ant-btn:focus > span,
-.ant-btn:active > span {
- position: relative;
-}
-.ant-btn > .anticon + span,
-.ant-btn > span + .anticon {
- margin-left: 8px;
-}
-.ant-btn-background-ghost {
- color: #fff;
- background: transparent !important;
- border-color: #fff;
-}
-.ant-btn-background-ghost.ant-btn-primary {
- color: #1890ff;
- background: transparent;
- border-color: #1890ff;
- text-shadow: none;
-}
-.ant-btn-background-ghost.ant-btn-primary > a:only-child {
- color: currentColor;
-}
-.ant-btn-background-ghost.ant-btn-primary > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-background-ghost.ant-btn-primary:hover,
-.ant-btn-background-ghost.ant-btn-primary:focus {
- color: #40a9ff;
- background: transparent;
- border-color: #40a9ff;
-}
-.ant-btn-background-ghost.ant-btn-primary:hover > a:only-child,
-.ant-btn-background-ghost.ant-btn-primary:focus > a:only-child {
- color: currentColor;
-}
-.ant-btn-background-ghost.ant-btn-primary:hover > a:only-child::after,
-.ant-btn-background-ghost.ant-btn-primary:focus > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-background-ghost.ant-btn-primary:active {
- color: #096dd9;
- background: transparent;
- border-color: #096dd9;
-}
-.ant-btn-background-ghost.ant-btn-primary:active > a:only-child {
- color: currentColor;
-}
-.ant-btn-background-ghost.ant-btn-primary:active > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-background-ghost.ant-btn-primary[disabled],
-.ant-btn-background-ghost.ant-btn-primary[disabled]:hover,
-.ant-btn-background-ghost.ant-btn-primary[disabled]:focus,
-.ant-btn-background-ghost.ant-btn-primary[disabled]:active {
- color: rgba(0, 0, 0, 0.25);
- background: #f5f5f5;
- border-color: #d9d9d9;
- text-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-.ant-btn-background-ghost.ant-btn-primary[disabled] > a:only-child,
-.ant-btn-background-ghost.ant-btn-primary[disabled]:hover > a:only-child,
-.ant-btn-background-ghost.ant-btn-primary[disabled]:focus > a:only-child,
-.ant-btn-background-ghost.ant-btn-primary[disabled]:active > a:only-child {
- color: currentColor;
-}
-.ant-btn-background-ghost.ant-btn-primary[disabled] > a:only-child::after,
-.ant-btn-background-ghost.ant-btn-primary[disabled]:hover > a:only-child::after,
-.ant-btn-background-ghost.ant-btn-primary[disabled]:focus > a:only-child::after,
-.ant-btn-background-ghost.ant-btn-primary[disabled]:active > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-background-ghost.ant-btn-danger {
- color: #ff4d4f;
- background: transparent;
- border-color: #ff4d4f;
- text-shadow: none;
-}
-.ant-btn-background-ghost.ant-btn-danger > a:only-child {
- color: currentColor;
-}
-.ant-btn-background-ghost.ant-btn-danger > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-background-ghost.ant-btn-danger:hover,
-.ant-btn-background-ghost.ant-btn-danger:focus {
- color: #ff7875;
- background: transparent;
- border-color: #ff7875;
-}
-.ant-btn-background-ghost.ant-btn-danger:hover > a:only-child,
-.ant-btn-background-ghost.ant-btn-danger:focus > a:only-child {
- color: currentColor;
-}
-.ant-btn-background-ghost.ant-btn-danger:hover > a:only-child::after,
-.ant-btn-background-ghost.ant-btn-danger:focus > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-background-ghost.ant-btn-danger:active {
- color: #d9363e;
- background: transparent;
- border-color: #d9363e;
-}
-.ant-btn-background-ghost.ant-btn-danger:active > a:only-child {
- color: currentColor;
-}
-.ant-btn-background-ghost.ant-btn-danger:active > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-background-ghost.ant-btn-danger[disabled],
-.ant-btn-background-ghost.ant-btn-danger[disabled]:hover,
-.ant-btn-background-ghost.ant-btn-danger[disabled]:focus,
-.ant-btn-background-ghost.ant-btn-danger[disabled]:active {
- color: rgba(0, 0, 0, 0.25);
- background: #f5f5f5;
- border-color: #d9d9d9;
- text-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-.ant-btn-background-ghost.ant-btn-danger[disabled] > a:only-child,
-.ant-btn-background-ghost.ant-btn-danger[disabled]:hover > a:only-child,
-.ant-btn-background-ghost.ant-btn-danger[disabled]:focus > a:only-child,
-.ant-btn-background-ghost.ant-btn-danger[disabled]:active > a:only-child {
- color: currentColor;
-}
-.ant-btn-background-ghost.ant-btn-danger[disabled] > a:only-child::after,
-.ant-btn-background-ghost.ant-btn-danger[disabled]:hover > a:only-child::after,
-.ant-btn-background-ghost.ant-btn-danger[disabled]:focus > a:only-child::after,
-.ant-btn-background-ghost.ant-btn-danger[disabled]:active > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-background-ghost.ant-btn-dangerous {
- color: #ff4d4f;
- background: transparent;
- border-color: #ff4d4f;
- text-shadow: none;
-}
-.ant-btn-background-ghost.ant-btn-dangerous > a:only-child {
- color: currentColor;
-}
-.ant-btn-background-ghost.ant-btn-dangerous > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-background-ghost.ant-btn-dangerous:hover,
-.ant-btn-background-ghost.ant-btn-dangerous:focus {
- color: #ff7875;
- background: transparent;
- border-color: #ff7875;
-}
-.ant-btn-background-ghost.ant-btn-dangerous:hover > a:only-child,
-.ant-btn-background-ghost.ant-btn-dangerous:focus > a:only-child {
- color: currentColor;
-}
-.ant-btn-background-ghost.ant-btn-dangerous:hover > a:only-child::after,
-.ant-btn-background-ghost.ant-btn-dangerous:focus > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-background-ghost.ant-btn-dangerous:active {
- color: #d9363e;
- background: transparent;
- border-color: #d9363e;
-}
-.ant-btn-background-ghost.ant-btn-dangerous:active > a:only-child {
- color: currentColor;
-}
-.ant-btn-background-ghost.ant-btn-dangerous:active > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-background-ghost.ant-btn-dangerous[disabled],
-.ant-btn-background-ghost.ant-btn-dangerous[disabled]:hover,
-.ant-btn-background-ghost.ant-btn-dangerous[disabled]:focus,
-.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active {
- color: rgba(0, 0, 0, 0.25);
- background: #f5f5f5;
- border-color: #d9d9d9;
- text-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-.ant-btn-background-ghost.ant-btn-dangerous[disabled] > a:only-child,
-.ant-btn-background-ghost.ant-btn-dangerous[disabled]:hover > a:only-child,
-.ant-btn-background-ghost.ant-btn-dangerous[disabled]:focus > a:only-child,
-.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active > a:only-child {
- color: currentColor;
-}
-.ant-btn-background-ghost.ant-btn-dangerous[disabled] > a:only-child::after,
-.ant-btn-background-ghost.ant-btn-dangerous[disabled]:hover > a:only-child::after,
-.ant-btn-background-ghost.ant-btn-dangerous[disabled]:focus > a:only-child::after,
-.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link {
- color: #ff4d4f;
- background: transparent;
- border-color: transparent;
- text-shadow: none;
-}
-.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link > a:only-child {
- color: currentColor;
-}
-.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover,
-.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus {
- color: #ff7875;
- background: transparent;
- border-color: transparent;
-}
-.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover > a:only-child,
-.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus > a:only-child {
- color: currentColor;
-}
-.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover > a:only-child::after,
-.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:active {
- color: #d9363e;
- background: transparent;
- border-color: transparent;
-}
-.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:active > a:only-child {
- color: currentColor;
-}
-.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:active > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled],
-.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover,
-.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus,
-.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active {
- color: rgba(0, 0, 0, 0.25);
- background: #f5f5f5;
- border-color: #d9d9d9;
- text-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled] > a:only-child,
-.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover > a:only-child,
-.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus > a:only-child,
-.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active > a:only-child {
- color: currentColor;
-}
-.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled] > a:only-child::after,
-.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover > a:only-child::after,
-.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus > a:only-child::after,
-.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active > a:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: transparent;
- content: '';
-}
-.ant-btn-two-chinese-chars::first-letter {
- letter-spacing: 0.34em;
-}
-.ant-btn-two-chinese-chars > *:not(.anticon) {
- margin-right: -0.34em;
- letter-spacing: 0.34em;
-}
-.ant-btn-block {
- width: 100%;
-}
-.ant-btn:empty {
- display: inline-block;
- width: 0;
- visibility: hidden;
- content: '\a0';
-}
-a.ant-btn {
- padding-top: 0.1px;
- line-height: 30px;
-}
-a.ant-btn-lg {
- line-height: 38px;
-}
-a.ant-btn-sm {
- line-height: 22px;
-}
-.ant-btn-rtl {
- direction: rtl;
-}
-.ant-btn-group-rtl.ant-btn-group .ant-btn-primary:last-child:not(:first-child),
-.ant-btn-group-rtl.ant-btn-group .ant-btn-primary + .ant-btn-primary {
- border-right-color: #40a9ff;
- border-left-color: #d9d9d9;
-}
-.ant-btn-group-rtl.ant-btn-group .ant-btn-primary:last-child:not(:first-child)[disabled],
-.ant-btn-group-rtl.ant-btn-group .ant-btn-primary + .ant-btn-primary[disabled] {
- border-right-color: #d9d9d9;
- border-left-color: #40a9ff;
-}
-.ant-btn-rtl.ant-btn > .ant-btn-loading-icon .anticon {
- padding-right: 0;
- padding-left: 8px;
-}
-.ant-btn > .ant-btn-loading-icon:only-child .anticon {
- padding-right: 0;
- padding-left: 0;
-}
-.ant-btn-rtl.ant-btn > .anticon + span,
-.ant-btn-rtl.ant-btn > span + .anticon {
- margin-right: 8px;
- margin-left: 0;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-picker-calendar {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- background: #fff;
-}
-.ant-picker-calendar-header {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-pack: end;
- -ms-flex-pack: end;
- justify-content: flex-end;
- padding: 12px 0;
-}
-.ant-picker-calendar-header .ant-picker-calendar-year-select {
- min-width: 80px;
-}
-.ant-picker-calendar-header .ant-picker-calendar-month-select {
- min-width: 70px;
- margin-left: 8px;
-}
-.ant-picker-calendar-header .ant-picker-calendar-mode-switch {
- margin-left: 8px;
-}
-.ant-picker-calendar .ant-picker-panel {
- background: #fff;
- border: 0;
- border-top: 1px solid #f0f0f0;
- border-radius: 0;
-}
-.ant-picker-calendar .ant-picker-panel .ant-picker-month-panel,
-.ant-picker-calendar .ant-picker-panel .ant-picker-date-panel {
- width: auto;
-}
-.ant-picker-calendar .ant-picker-panel .ant-picker-body {
- padding: 8px 0;
-}
-.ant-picker-calendar .ant-picker-panel .ant-picker-content {
- width: 100%;
-}
-.ant-picker-calendar-mini {
- border-radius: 2px;
-}
-.ant-picker-calendar-mini .ant-picker-calendar-header {
- padding-right: 8px;
- padding-left: 8px;
-}
-.ant-picker-calendar-mini .ant-picker-panel {
- border-radius: 0 0 2px 2px;
-}
-.ant-picker-calendar-mini .ant-picker-content {
- height: 256px;
-}
-.ant-picker-calendar-mini .ant-picker-content th {
- height: auto;
- padding: 0;
- line-height: 18px;
-}
-.ant-picker-calendar-full .ant-picker-panel {
- display: block;
- width: 100%;
- text-align: right;
- background: #fff;
- border: 0;
-}
-.ant-picker-calendar-full .ant-picker-panel .ant-picker-body th,
-.ant-picker-calendar-full .ant-picker-panel .ant-picker-body td {
- padding: 0;
-}
-.ant-picker-calendar-full .ant-picker-panel .ant-picker-body th {
- height: auto;
- padding: 0 12px 5px 0;
- line-height: 18px;
-}
-.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell::before {
- display: none;
-}
-.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell:hover .ant-picker-calendar-date {
- background: #f5f5f5;
-}
-.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell .ant-picker-calendar-date-today::before {
- display: none;
-}
-.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected .ant-picker-calendar-date,
-.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected:hover .ant-picker-calendar-date,
-.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected .ant-picker-calendar-date-today,
-.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected:hover .ant-picker-calendar-date-today {
- background: #e6f7ff;
-}
-.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected .ant-picker-calendar-date .ant-picker-calendar-date-value,
-.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected:hover .ant-picker-calendar-date .ant-picker-calendar-date-value,
-.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected .ant-picker-calendar-date-today .ant-picker-calendar-date-value,
-.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected:hover .ant-picker-calendar-date-today .ant-picker-calendar-date-value {
- color: #1890ff;
-}
-.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date {
- display: block;
- width: auto;
- height: auto;
- margin: 0 4px;
- padding: 4px 8px 0;
- border: 0;
- border-top: 2px solid #f0f0f0;
- border-radius: 0;
- -webkit-transition: background 0.3s;
- transition: background 0.3s;
-}
-.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-value {
- line-height: 24px;
- -webkit-transition: color 0.3s;
- transition: color 0.3s;
-}
-.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-content {
- position: static;
- width: auto;
- height: 86px;
- overflow-y: auto;
- color: rgba(0, 0, 0, 0.65);
- line-height: 1.5715;
- text-align: left;
-}
-.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-today {
- border-color: #1890ff;
-}
-.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-today .ant-picker-calendar-date-value {
- color: rgba(0, 0, 0, 0.65);
-}
-@media only screen and (max-width: 480px) {
- .ant-picker-calendar-header {
- display: block;
- }
- .ant-picker-calendar-header .ant-picker-calendar-year-select {
- width: 50%;
- }
- .ant-picker-calendar-header .ant-picker-calendar-month-select {
- width: calc(50% - 8px);
- }
- .ant-picker-calendar-header .ant-picker-calendar-mode-switch {
- width: 100%;
- margin-top: 8px;
- margin-left: 0;
- }
- .ant-picker-calendar-header .ant-picker-calendar-mode-switch > label {
- width: 50%;
- text-align: center;
- }
-}
-.ant-picker-calendar-rtl {
- direction: rtl;
-}
-.ant-picker-calendar-rtl .ant-picker-calendar-header .ant-picker-calendar-month-select {
- margin-right: 8px;
- margin-left: 0;
-}
-.ant-picker-calendar-rtl .ant-picker-calendar-header .ant-picker-calendar-mode-switch {
- margin-right: 8px;
- margin-left: 0;
-}
-.ant-picker-calendar-rtl.ant-picker-calendar-full .ant-picker-panel {
- text-align: left;
-}
-.ant-picker-calendar-rtl.ant-picker-calendar-full .ant-picker-panel .ant-picker-body th {
- padding: 0 0 5px 12px;
-}
-.ant-picker-calendar-rtl.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-content {
- text-align: right;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-radio-group {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- display: inline-block;
- font-size: 0;
- line-height: unset;
-}
-.ant-radio-group .ant-badge-count {
- z-index: 1;
-}
-.ant-radio-group > .ant-badge:not(:first-child) > .ant-radio-button-wrapper {
- border-left: none;
-}
-.ant-radio-wrapper {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- position: relative;
- display: inline-block;
- margin-right: 8px;
- white-space: nowrap;
- cursor: pointer;
-}
-.ant-radio {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- position: relative;
- top: 0px;
- display: inline-block;
- line-height: 1;
- white-space: nowrap;
- vertical-align: sub;
- outline: none;
- cursor: pointer;
-}
-.ant-radio-wrapper:hover .ant-radio,
-.ant-radio:hover .ant-radio-inner,
-.ant-radio-input:focus + .ant-radio-inner {
- border-color: #1890ff;
-}
-.ant-radio-input:focus + .ant-radio-inner {
- -webkit-box-shadow: 0 0 0 3px rgba(24, 144, 255, 0.08);
- box-shadow: 0 0 0 3px rgba(24, 144, 255, 0.08);
-}
-.ant-radio-checked::after {
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- border: 1px solid #1890ff;
- border-radius: 50%;
- visibility: hidden;
- -webkit-animation: antRadioEffect 0.36s ease-in-out;
- animation: antRadioEffect 0.36s ease-in-out;
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
- content: '';
-}
-.ant-radio:hover::after,
-.ant-radio-wrapper:hover .ant-radio::after {
- visibility: visible;
-}
-.ant-radio-inner {
- position: relative;
- top: 0;
- left: 0;
- display: block;
- width: 16px;
- height: 16px;
- background-color: #fff;
- border-color: #d9d9d9;
- border-style: solid;
- border-width: 1px;
- border-radius: 100px;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
-}
-.ant-radio-inner::after {
- position: absolute;
- top: 3px;
- left: 3px;
- display: table;
- width: 8px;
- height: 8px;
- background-color: #1890ff;
- border-top: 0;
- border-left: 0;
- border-radius: 8px;
- -webkit-transform: scale(0);
- transform: scale(0);
- opacity: 0;
- -webkit-transition: all 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);
- transition: all 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);
- content: ' ';
-}
-.ant-radio-input {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- z-index: 1;
- cursor: pointer;
- opacity: 0;
-}
-.ant-radio-checked .ant-radio-inner {
- border-color: #1890ff;
-}
-.ant-radio-checked .ant-radio-inner::after {
- -webkit-transform: scale(1);
- transform: scale(1);
- opacity: 1;
- -webkit-transition: all 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);
- transition: all 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);
-}
-.ant-radio-disabled .ant-radio-inner {
- background-color: #f5f5f5;
- border-color: #d9d9d9 !important;
- cursor: not-allowed;
-}
-.ant-radio-disabled .ant-radio-inner::after {
- background-color: rgba(0, 0, 0, 0.2);
-}
-.ant-radio-disabled .ant-radio-input {
- cursor: not-allowed;
-}
-.ant-radio-disabled + span {
- color: rgba(0, 0, 0, 0.25);
- cursor: not-allowed;
-}
-span.ant-radio + * {
- padding-right: 8px;
- padding-left: 8px;
-}
-.ant-radio-button-wrapper {
- position: relative;
- display: inline-block;
- height: 32px;
- margin: 0;
- padding: 0 15px;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- line-height: 30px;
- background: #fff;
- border: 1px solid #d9d9d9;
- border-top-width: 1.02px;
- border-left-width: 0;
- cursor: pointer;
- -webkit-transition: color 0.3s, background 0.3s, border-color 0.3s, -webkit-box-shadow 0.3s;
- transition: color 0.3s, background 0.3s, border-color 0.3s, -webkit-box-shadow 0.3s;
- transition: color 0.3s, background 0.3s, border-color 0.3s, box-shadow 0.3s;
- transition: color 0.3s, background 0.3s, border-color 0.3s, box-shadow 0.3s, -webkit-box-shadow 0.3s;
-}
-.ant-radio-button-wrapper a {
- color: rgba(0, 0, 0, 0.65);
-}
-.ant-radio-button-wrapper > .ant-radio-button {
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
-}
-.ant-radio-group-large .ant-radio-button-wrapper {
- height: 40px;
- font-size: 16px;
- line-height: 38px;
-}
-.ant-radio-group-small .ant-radio-button-wrapper {
- height: 24px;
- padding: 0 7px;
- line-height: 22px;
-}
-.ant-radio-button-wrapper:not(:first-child)::before {
- position: absolute;
- top: -1px;
- left: -1px;
- display: block;
- -webkit-box-sizing: content-box;
- box-sizing: content-box;
- width: 1px;
- height: 100%;
- padding: 1px 0;
- background-color: #d9d9d9;
- -webkit-transition: background-color 0.3s;
- transition: background-color 0.3s;
- content: '';
-}
-.ant-radio-button-wrapper:first-child {
- border-left: 1px solid #d9d9d9;
- border-radius: 2px 0 0 2px;
-}
-.ant-radio-button-wrapper:last-child {
- border-radius: 0 2px 2px 0;
-}
-.ant-radio-button-wrapper:first-child:last-child {
- border-radius: 2px;
-}
-.ant-radio-button-wrapper:hover {
- position: relative;
- color: #1890ff;
-}
-.ant-radio-button-wrapper:focus-within {
- -webkit-box-shadow: 0 0 0 3px rgba(24, 144, 255, 0.08);
- box-shadow: 0 0 0 3px rgba(24, 144, 255, 0.08);
-}
-.ant-radio-button-wrapper .ant-radio-inner,
-.ant-radio-button-wrapper input[type='checkbox'],
-.ant-radio-button-wrapper input[type='radio'] {
- width: 0;
- height: 0;
- opacity: 0;
- pointer-events: none;
-}
-.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled) {
- z-index: 1;
- color: #1890ff;
- background: #fff;
- border-color: #1890ff;
-}
-.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled)::before {
- background-color: #1890ff;
-}
-.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):first-child {
- border-color: #1890ff;
-}
-.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover {
- color: #40a9ff;
- border-color: #40a9ff;
-}
-.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover::before {
- background-color: #40a9ff;
-}
-.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active {
- color: #096dd9;
- border-color: #096dd9;
-}
-.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active::before {
- background-color: #096dd9;
-}
-.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within {
- -webkit-box-shadow: 0 0 0 3px rgba(24, 144, 255, 0.08);
- box-shadow: 0 0 0 3px rgba(24, 144, 255, 0.08);
-}
-.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled) {
- color: #fff;
- background: #1890ff;
- border-color: #1890ff;
-}
-.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover {
- color: #fff;
- background: #40a9ff;
- border-color: #40a9ff;
-}
-.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active {
- color: #fff;
- background: #096dd9;
- border-color: #096dd9;
-}
-.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within {
- -webkit-box-shadow: 0 0 0 3px rgba(24, 144, 255, 0.08);
- box-shadow: 0 0 0 3px rgba(24, 144, 255, 0.08);
-}
-.ant-radio-button-wrapper-disabled {
- color: rgba(0, 0, 0, 0.25);
- background-color: #f5f5f5;
- border-color: #d9d9d9;
- cursor: not-allowed;
-}
-.ant-radio-button-wrapper-disabled:first-child,
-.ant-radio-button-wrapper-disabled:hover {
- color: rgba(0, 0, 0, 0.25);
- background-color: #f5f5f5;
- border-color: #d9d9d9;
-}
-.ant-radio-button-wrapper-disabled:first-child {
- border-left-color: #d9d9d9;
-}
-.ant-radio-button-wrapper-disabled.ant-radio-button-wrapper-checked {
- color: #fff;
- background-color: #e6e6e6;
- border-color: #d9d9d9;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-@-webkit-keyframes antRadioEffect {
- 0% {
- -webkit-transform: scale(1);
- transform: scale(1);
- opacity: 0.5;
- }
- 100% {
- -webkit-transform: scale(1.6);
- transform: scale(1.6);
- opacity: 0;
- }
-}
-@keyframes antRadioEffect {
- 0% {
- -webkit-transform: scale(1);
- transform: scale(1);
- opacity: 0.5;
- }
- 100% {
- -webkit-transform: scale(1.6);
- transform: scale(1.6);
- opacity: 0;
- }
-}
-@supports (-moz-appearance: meterbar) and (background-blend-mode: difference, normal) {
- .ant-radio {
- vertical-align: text-bottom;
- }
-}
-.ant-radio-group.ant-radio-group-rtl {
- direction: rtl;
-}
-.ant-radio-wrapper.ant-radio-wrapper-rtl {
- margin-right: 0;
- margin-left: 8px;
- direction: rtl;
-}
-.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl {
- border-right-width: 0;
- border-left-width: 1px;
-}
-.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl.ant-radio-button-wrapper:not(:first-child)::before {
- right: -1px;
- left: 0;
-}
-.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl.ant-radio-button-wrapper:first-child {
- border-right: 1px solid #d9d9d9;
- border-radius: 0 2px 2px 0;
-}
-.ant-radio-button-wrapper-checked:not([class*=' ant-radio-button-wrapper-disabled']).ant-radio-button-wrapper:first-child {
- border-right-color: #40a9ff;
-}
-.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl.ant-radio-button-wrapper:last-child {
- border-radius: 2px 0 0 2px;
-}
-.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl.ant-radio-button-wrapper-disabled:first-child {
- border-right-color: #d9d9d9;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-picker-panel {
- display: -webkit-inline-box;
- display: -ms-inline-flexbox;
- display: inline-flex;
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
- text-align: center;
- background: #fff;
- border: 1px solid #f0f0f0;
- border-radius: 2px;
- outline: none;
-}
-.ant-picker-panel-focused {
- border-color: #1890ff;
-}
-.ant-picker-decade-panel,
-.ant-picker-year-panel,
-.ant-picker-quarter-panel,
-.ant-picker-month-panel,
-.ant-picker-week-panel,
-.ant-picker-date-panel,
-.ant-picker-time-panel {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
- width: 280px;
-}
-.ant-picker-header {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- padding: 0 8px;
- color: rgba(0, 0, 0, 0.85);
- border-bottom: 1px solid #f0f0f0;
-}
-.ant-picker-header > * {
- -webkit-box-flex: 0;
- -ms-flex: none;
- flex: none;
-}
-.ant-picker-header button {
- padding: 0;
- color: rgba(0, 0, 0, 0.25);
- line-height: 40px;
- background: transparent;
- border: 0;
- cursor: pointer;
- -webkit-transition: color 0.3s;
- transition: color 0.3s;
-}
-.ant-picker-header > button {
- min-width: 1.6em;
- font-size: 14px;
-}
-.ant-picker-header > button:hover {
- color: rgba(0, 0, 0, 0.65);
-}
-.ant-picker-header-view {
- -webkit-box-flex: 1;
- -ms-flex: auto;
- flex: auto;
- font-weight: 500;
- line-height: 40px;
-}
-.ant-picker-header-view button {
- color: inherit;
- font-weight: inherit;
-}
-.ant-picker-header-view button:not(:first-child) {
- margin-left: 8px;
-}
-.ant-picker-header-view button:hover {
- color: #1890ff;
-}
-.ant-picker-prev-icon,
-.ant-picker-next-icon,
-.ant-picker-super-prev-icon,
-.ant-picker-super-next-icon {
- position: relative;
- display: inline-block;
- width: 7px;
- height: 7px;
-}
-.ant-picker-prev-icon::before,
-.ant-picker-next-icon::before,
-.ant-picker-super-prev-icon::before,
-.ant-picker-super-next-icon::before {
- position: absolute;
- top: 0;
- left: 0;
- display: inline-block;
- width: 7px;
- height: 7px;
- border: 0 solid currentColor;
- border-width: 1.5px 0 0 1.5px;
- content: '';
-}
-.ant-picker-super-prev-icon::after,
-.ant-picker-super-next-icon::after {
- position: absolute;
- top: 4px;
- left: 4px;
- display: inline-block;
- width: 7px;
- height: 7px;
- border: 0 solid currentColor;
- border-width: 1.5px 0 0 1.5px;
- content: '';
-}
-.ant-picker-prev-icon,
-.ant-picker-super-prev-icon {
- -webkit-transform: rotate(-45deg);
- transform: rotate(-45deg);
-}
-.ant-picker-next-icon,
-.ant-picker-super-next-icon {
- -webkit-transform: rotate(135deg);
- transform: rotate(135deg);
-}
-.ant-picker-content {
- width: 100%;
- table-layout: fixed;
- border-collapse: collapse;
-}
-.ant-picker-content th,
-.ant-picker-content td {
- position: relative;
- min-width: 24px;
- font-weight: 400;
-}
-.ant-picker-content th {
- height: 30px;
- color: rgba(0, 0, 0, 0.65);
- line-height: 30px;
-}
-.ant-picker-cell {
- padding: 3px 0;
- color: rgba(0, 0, 0, 0.25);
- cursor: pointer;
-}
-.ant-picker-cell-in-view {
- color: rgba(0, 0, 0, 0.65);
-}
-.ant-picker-cell-disabled {
- cursor: not-allowed;
-}
-.ant-picker-cell::before {
- position: absolute;
- top: 50%;
- right: 0;
- left: 0;
- z-index: 1;
- height: 24px;
- -webkit-transform: translateY(-50%);
- transform: translateY(-50%);
- content: '';
-}
-.ant-picker-cell .ant-picker-cell-inner {
- position: relative;
- z-index: 2;
- display: inline-block;
- min-width: 24px;
- height: 24px;
- line-height: 24px;
- border-radius: 2px;
- -webkit-transition: background 0.3s, border 0.3s;
- transition: background 0.3s, border 0.3s;
-}
-.ant-picker-cell:hover:not(.ant-picker-cell-in-view) .ant-picker-cell-inner,
-.ant-picker-cell:hover:not(.ant-picker-cell-selected):not(.ant-picker-cell-range-start):not(.ant-picker-cell-range-end):not(.ant-picker-cell-range-hover-start):not(.ant-picker-cell-range-hover-end) .ant-picker-cell-inner {
- background: #f5f5f5;
-}
-.ant-picker-cell-in-view.ant-picker-cell-today .ant-picker-cell-inner::before {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- z-index: 1;
- border: 1px solid #1890ff;
- border-radius: 2px;
- content: '';
-}
-.ant-picker-cell-in-view.ant-picker-cell-in-range {
- position: relative;
-}
-.ant-picker-cell-in-view.ant-picker-cell-in-range::before {
- background: #e6f7ff;
-}
-.ant-picker-cell-in-view.ant-picker-cell-selected .ant-picker-cell-inner,
-.ant-picker-cell-in-view.ant-picker-cell-range-start .ant-picker-cell-inner,
-.ant-picker-cell-in-view.ant-picker-cell-range-end .ant-picker-cell-inner {
- color: #fff;
- background: #1890ff;
-}
-.ant-picker-cell-in-view.ant-picker-cell-range-start:not(.ant-picker-cell-range-start-single)::before,
-.ant-picker-cell-in-view.ant-picker-cell-range-end:not(.ant-picker-cell-range-end-single)::before {
- background: #e6f7ff;
-}
-.ant-picker-cell-in-view.ant-picker-cell-range-start::before {
- left: 50%;
-}
-.ant-picker-cell-in-view.ant-picker-cell-range-end::before {
- right: 50%;
-}
-.ant-picker-cell-in-view.ant-picker-cell-range-hover-start:not(.ant-picker-cell-in-range):not(.ant-picker-cell-range-start):not(.ant-picker-cell-range-end)::after,
-.ant-picker-cell-in-view.ant-picker-cell-range-hover-end:not(.ant-picker-cell-in-range):not(.ant-picker-cell-range-start):not(.ant-picker-cell-range-end)::after,
-.ant-picker-cell-in-view.ant-picker-cell-range-hover-start.ant-picker-cell-range-start-single::after,
-.ant-picker-cell-in-view.ant-picker-cell-range-hover-end.ant-picker-cell-range-end-single::after,
-.ant-picker-cell-in-view.ant-picker-cell-range-hover:not(.ant-picker-cell-in-range)::after {
- position: absolute;
- top: 50%;
- z-index: 0;
- height: 24px;
- border-top: 1px dashed #7ec1ff;
- border-bottom: 1px dashed #7ec1ff;
- -webkit-transform: translateY(-50%);
- transform: translateY(-50%);
- content: '';
-}
-.ant-picker-cell-range-hover-start::after,
-.ant-picker-cell-range-hover-end::after,
-.ant-picker-cell-range-hover::after {
- right: 0;
- left: 2px;
-}
-.ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover::before,
-.ant-picker-cell-in-view.ant-picker-cell-range-start.ant-picker-cell-range-hover::before,
-.ant-picker-cell-in-view.ant-picker-cell-range-end.ant-picker-cell-range-hover::before,
-.ant-picker-cell-in-view.ant-picker-cell-range-start:not(.ant-picker-cell-range-start-single).ant-picker-cell-range-hover-start::before,
-.ant-picker-cell-in-view.ant-picker-cell-range-end:not(.ant-picker-cell-range-end-single).ant-picker-cell-range-hover-end::before,
-.ant-picker-panel > :not(.ant-picker-date-panel) .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-start::before,
-.ant-picker-panel > :not(.ant-picker-date-panel) .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-end::before {
- background: #cbe6ff;
-}
-.ant-picker-cell-in-view.ant-picker-cell-range-start:not(.ant-picker-cell-range-start-single):not(.ant-picker-cell-range-end) .ant-picker-cell-inner {
- border-radius: 2px 0 0 2px;
-}
-.ant-picker-cell-in-view.ant-picker-cell-range-end:not(.ant-picker-cell-range-end-single):not(.ant-picker-cell-range-start) .ant-picker-cell-inner {
- border-radius: 0 2px 2px 0;
-}
-.ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-start .ant-picker-cell-inner::after,
-.ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-end .ant-picker-cell-inner::after {
- position: absolute;
- top: 0;
- bottom: 0;
- z-index: -1;
- background: #cbe6ff;
- content: '';
-}
-.ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-start .ant-picker-cell-inner::after {
- right: -7px;
- left: 0;
-}
-.ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-end .ant-picker-cell-inner::after {
- right: 0;
- left: -7px;
-}
-.ant-picker-cell-range-hover.ant-picker-cell-range-start::after {
- right: 50%;
-}
-.ant-picker-cell-range-hover.ant-picker-cell-range-end::after {
- left: 50%;
-}
-tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover:first-child::after,
-tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-end:first-child::after,
-.ant-picker-cell-in-view.ant-picker-cell-range-hover-edge-start:not(.ant-picker-cell-range-hover-edge-start-near-range)::after,
-.ant-picker-cell-in-view.ant-picker-cell-range-hover-start::after {
- left: 6px;
- border-left: 1px dashed #7ec1ff;
- border-top-left-radius: 2px;
- border-bottom-left-radius: 2px;
-}
-tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover:last-child::after,
-tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::after,
-.ant-picker-cell-in-view.ant-picker-cell-range-hover-edge-end:not(.ant-picker-cell-range-hover-edge-end-near-range)::after,
-.ant-picker-cell-in-view.ant-picker-cell-range-hover-end::after {
- right: 6px;
- border-right: 1px dashed #7ec1ff;
- border-top-right-radius: 2px;
- border-bottom-right-radius: 2px;
-}
-.ant-picker-cell-disabled {
- pointer-events: none;
-}
-.ant-picker-cell-disabled .ant-picker-cell-inner {
- color: rgba(0, 0, 0, 0.25);
- background: transparent;
-}
-.ant-picker-cell-disabled::before {
- background: #f5f5f5;
-}
-.ant-picker-cell-disabled.ant-picker-cell-today .ant-picker-cell-inner::before {
- border-color: rgba(0, 0, 0, 0.25);
-}
-.ant-picker-decade-panel .ant-picker-content,
-.ant-picker-year-panel .ant-picker-content,
-.ant-picker-quarter-panel .ant-picker-content,
-.ant-picker-month-panel .ant-picker-content {
- height: 264px;
-}
-.ant-picker-decade-panel .ant-picker-cell-inner,
-.ant-picker-year-panel .ant-picker-cell-inner,
-.ant-picker-quarter-panel .ant-picker-cell-inner,
-.ant-picker-month-panel .ant-picker-cell-inner {
- padding: 0 8px;
-}
-.ant-picker-decade-panel .ant-picker-cell-disabled .ant-picker-cell-inner,
-.ant-picker-year-panel .ant-picker-cell-disabled .ant-picker-cell-inner,
-.ant-picker-quarter-panel .ant-picker-cell-disabled .ant-picker-cell-inner,
-.ant-picker-month-panel .ant-picker-cell-disabled .ant-picker-cell-inner {
- background: #f5f5f5;
-}
-.ant-picker-quarter-panel .ant-picker-content {
- height: 56px;
-}
-.ant-picker-footer {
- width: -webkit-min-content;
- width: -moz-min-content;
- width: min-content;
- min-width: 100%;
- line-height: 38px;
- text-align: center;
- border-bottom: 1px solid transparent;
-}
-.ant-picker-panel .ant-picker-footer {
- border-top: 1px solid #f0f0f0;
-}
-.ant-picker-footer-extra {
- padding: 0 12px;
- line-height: 38px;
- text-align: left;
-}
-.ant-picker-footer-extra:not(:last-child) {
- border-bottom: 1px solid #f0f0f0;
-}
-.ant-picker-now {
- text-align: left;
-}
-.ant-picker-today-btn {
- color: #1890ff;
-}
-.ant-picker-today-btn:hover {
- color: #40a9ff;
-}
-.ant-picker-today-btn:active {
- color: #096dd9;
-}
-.ant-picker-today-btn.ant-picker-today-btn-disabled {
- color: rgba(0, 0, 0, 0.25);
- cursor: not-allowed;
-}
-.ant-picker-decade-panel .ant-picker-cell-inner {
- padding: 0 4px;
-}
-.ant-picker-decade-panel .ant-picker-cell::before {
- display: none;
-}
-.ant-picker-year-panel .ant-picker-body,
-.ant-picker-quarter-panel .ant-picker-body,
-.ant-picker-month-panel .ant-picker-body {
- padding: 0 8px;
-}
-.ant-picker-year-panel .ant-picker-cell-inner,
-.ant-picker-quarter-panel .ant-picker-cell-inner,
-.ant-picker-month-panel .ant-picker-cell-inner {
- width: 60px;
-}
-.ant-picker-year-panel .ant-picker-cell-range-hover-start::after,
-.ant-picker-quarter-panel .ant-picker-cell-range-hover-start::after,
-.ant-picker-month-panel .ant-picker-cell-range-hover-start::after {
- left: 14px;
- border-left: 1px dashed #7ec1ff;
- border-radius: 2px 0 0 2px;
-}
-.ant-picker-panel-rtl .ant-picker-year-panel .ant-picker-cell-range-hover-start::after,
-.ant-picker-panel-rtl .ant-picker-quarter-panel .ant-picker-cell-range-hover-start::after,
-.ant-picker-panel-rtl .ant-picker-month-panel .ant-picker-cell-range-hover-start::after {
- right: 14px;
- border-right: 1px dashed #7ec1ff;
- border-radius: 0 2px 2px 0;
-}
-.ant-picker-year-panel .ant-picker-cell-range-hover-end::after,
-.ant-picker-quarter-panel .ant-picker-cell-range-hover-end::after,
-.ant-picker-month-panel .ant-picker-cell-range-hover-end::after {
- right: 14px;
- border-right: 1px dashed #7ec1ff;
- border-radius: 0 2px 2px 0;
-}
-.ant-picker-panel-rtl .ant-picker-year-panel .ant-picker-cell-range-hover-end::after,
-.ant-picker-panel-rtl .ant-picker-quarter-panel .ant-picker-cell-range-hover-end::after,
-.ant-picker-panel-rtl .ant-picker-month-panel .ant-picker-cell-range-hover-end::after {
- left: 14px;
- border-left: 1px dashed #7ec1ff;
- border-radius: 2px 0 0 2px;
-}
-.ant-picker-week-panel .ant-picker-body {
- padding: 8px 12px;
-}
-.ant-picker-week-panel .ant-picker-cell:hover .ant-picker-cell-inner,
-.ant-picker-week-panel .ant-picker-cell-selected .ant-picker-cell-inner,
-.ant-picker-week-panel .ant-picker-cell .ant-picker-cell-inner {
- background: transparent !important;
-}
-.ant-picker-week-panel-row td {
- -webkit-transition: background 0.3s;
- transition: background 0.3s;
-}
-.ant-picker-week-panel-row:hover td {
- background: #f5f5f5;
-}
-.ant-picker-week-panel-row-selected td,
-.ant-picker-week-panel-row-selected:hover td {
- background: #1890ff;
-}
-.ant-picker-week-panel-row-selected td.ant-picker-cell-week,
-.ant-picker-week-panel-row-selected:hover td.ant-picker-cell-week {
- color: rgba(255, 255, 255, 0.5);
-}
-.ant-picker-week-panel-row-selected td.ant-picker-cell-today .ant-picker-cell-inner::before,
-.ant-picker-week-panel-row-selected:hover td.ant-picker-cell-today .ant-picker-cell-inner::before {
- border-color: #fff;
-}
-.ant-picker-week-panel-row-selected td .ant-picker-cell-inner,
-.ant-picker-week-panel-row-selected:hover td .ant-picker-cell-inner {
- color: #fff;
-}
-.ant-picker-date-panel .ant-picker-body {
- padding: 8px 12px;
-}
-.ant-picker-date-panel .ant-picker-content {
- width: 252px;
-}
-.ant-picker-date-panel .ant-picker-content th {
- width: 36px;
-}
-.ant-picker-datetime-panel {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
-}
-.ant-picker-datetime-panel .ant-picker-time-panel {
- border-left: 1px solid #f0f0f0;
-}
-.ant-picker-datetime-panel .ant-picker-date-panel,
-.ant-picker-datetime-panel .ant-picker-time-panel {
- -webkit-transition: opacity 0.3s;
- transition: opacity 0.3s;
-}
-.ant-picker-datetime-panel-active .ant-picker-date-panel,
-.ant-picker-datetime-panel-active .ant-picker-time-panel {
- opacity: 0.3;
-}
-.ant-picker-datetime-panel-active .ant-picker-date-panel-active,
-.ant-picker-datetime-panel-active .ant-picker-time-panel-active {
- opacity: 1;
-}
-.ant-picker-time-panel {
- width: auto;
- min-width: auto;
-}
-.ant-picker-time-panel .ant-picker-content {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-flex: 1;
- -ms-flex: auto;
- flex: auto;
- height: 224px;
-}
-.ant-picker-time-panel-column {
- -webkit-box-flex: 1;
- -ms-flex: 1 0 auto;
- flex: 1 0 auto;
- width: 56px;
- margin: 0;
- padding: 0;
- overflow-y: hidden;
- text-align: left;
- list-style: none;
- -webkit-transition: background 0.3s;
- transition: background 0.3s;
-}
-.ant-picker-time-panel-column::after {
- display: block;
- height: 196px;
- content: '';
-}
-.ant-picker-datetime-panel .ant-picker-time-panel-column::after {
- height: 198px;
-}
-.ant-picker-time-panel-column:not(:first-child) {
- border-left: 1px solid #f0f0f0;
-}
-.ant-picker-time-panel-column-active {
- background: rgba(230, 247, 255, 0.2);
-}
-.ant-picker-time-panel-column:hover {
- overflow-y: auto;
-}
-.ant-picker-time-panel-column > li {
- margin: 0;
- padding: 0;
-}
-.ant-picker-time-panel-column > li.ant-picker-time-panel-cell .ant-picker-time-panel-cell-inner {
- display: block;
- width: 100%;
- height: 28px;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- line-height: 28px;
- text-align: center;
- border-radius: 0;
- cursor: pointer;
- -webkit-transition: background 0.3s;
- transition: background 0.3s;
-}
-.ant-picker-time-panel-column > li.ant-picker-time-panel-cell .ant-picker-time-panel-cell-inner:hover {
- background: #f5f5f5;
-}
-.ant-picker-time-panel-column > li.ant-picker-time-panel-cell-selected .ant-picker-time-panel-cell-inner {
- background: #e6f7ff;
-}
-.ant-picker-time-panel-column > li.ant-picker-time-panel-cell-disabled .ant-picker-time-panel-cell-inner {
- color: rgba(0, 0, 0, 0.25);
- background: transparent;
- cursor: not-allowed;
-}
-/* stylelint-disable-next-line */
-_:-ms-fullscreen .ant-picker-range-wrapper .ant-picker-month-panel .ant-picker-cell,
-:root .ant-picker-range-wrapper .ant-picker-month-panel .ant-picker-cell,
-_:-ms-fullscreen .ant-picker-range-wrapper .ant-picker-year-panel .ant-picker-cell,
-:root .ant-picker-range-wrapper .ant-picker-year-panel .ant-picker-cell {
- padding: 21px 0;
-}
-.ant-picker {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- padding: 4px 11px 4px;
- position: relative;
- display: -webkit-inline-box;
- display: -ms-inline-flexbox;
- display: inline-flex;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- background: #fff;
- border: 1px solid #d9d9d9;
- border-radius: 2px;
- -webkit-transition: border 0.3s, -webkit-box-shadow 0.3s;
- transition: border 0.3s, -webkit-box-shadow 0.3s;
- transition: border 0.3s, box-shadow 0.3s;
- transition: border 0.3s, box-shadow 0.3s, -webkit-box-shadow 0.3s;
-}
-.ant-picker:hover,
-.ant-picker-focused {
- border-color: #40a9ff;
- border-right-width: 1px !important;
-}
-.ant-picker-focused {
- border-color: #40a9ff;
- border-right-width: 1px !important;
- outline: 0;
- -webkit-box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
- box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
-}
-.ant-picker.ant-picker-disabled {
- background: #f5f5f5;
- border-color: #d9d9d9;
- cursor: not-allowed;
-}
-.ant-picker.ant-picker-disabled .ant-picker-suffix {
- color: rgba(0, 0, 0, 0.25);
-}
-.ant-picker.ant-picker-borderless {
- background-color: transparent !important;
- border-color: transparent !important;
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
-}
-.ant-picker-input {
- position: relative;
- display: -webkit-inline-box;
- display: -ms-inline-flexbox;
- display: inline-flex;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- width: 100%;
-}
-.ant-picker-input > input {
- position: relative;
- display: inline-block;
- width: 100%;
- min-width: 0;
- padding: 4px 11px;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- line-height: 1.5715;
- background-color: #fff;
- background-image: none;
- border: 1px solid #d9d9d9;
- border-radius: 2px;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
- -webkit-box-flex: 1;
- -ms-flex: auto;
- flex: auto;
- min-width: 1px;
- height: auto;
- padding: 0;
- background: transparent;
- border: 0;
-}
-.ant-picker-input > input::-moz-placeholder {
- opacity: 1;
-}
-.ant-picker-input > input::-webkit-input-placeholder {
- color: #bfbfbf;
-}
-.ant-picker-input > input:-ms-input-placeholder {
- color: #bfbfbf;
-}
-.ant-picker-input > input::-ms-input-placeholder {
- color: #bfbfbf;
-}
-.ant-picker-input > input::placeholder {
- color: #bfbfbf;
-}
-.ant-picker-input > input:-moz-placeholder-shown {
- text-overflow: ellipsis;
-}
-.ant-picker-input > input:-ms-input-placeholder {
- text-overflow: ellipsis;
-}
-.ant-picker-input > input:placeholder-shown {
- text-overflow: ellipsis;
-}
-.ant-picker-input > input:hover {
- border-color: #40a9ff;
- border-right-width: 1px !important;
-}
-.ant-picker-input > input:focus,
-.ant-picker-input > input-focused {
- border-color: #40a9ff;
- border-right-width: 1px !important;
- outline: 0;
- -webkit-box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
- box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
-}
-.ant-picker-input > input-disabled {
- color: rgba(0, 0, 0, 0.25);
- background-color: #f5f5f5;
- cursor: not-allowed;
- opacity: 1;
-}
-.ant-picker-input > input-disabled:hover {
- border-color: #d9d9d9;
- border-right-width: 1px !important;
-}
-.ant-picker-input > input[disabled] {
- color: rgba(0, 0, 0, 0.25);
- background-color: #f5f5f5;
- cursor: not-allowed;
- opacity: 1;
-}
-.ant-picker-input > input[disabled]:hover {
- border-color: #d9d9d9;
- border-right-width: 1px !important;
-}
-textarea.ant-picker-input > input {
- max-width: 100%;
- height: auto;
- min-height: 32px;
- line-height: 1.5715;
- vertical-align: bottom;
- -webkit-transition: all 0.3s, height 0s;
- transition: all 0.3s, height 0s;
-}
-.ant-picker-input > input-lg {
- padding: 6.5px 11px;
- font-size: 16px;
-}
-.ant-picker-input > input-sm {
- padding: 0px 7px;
-}
-.ant-picker-input > input:focus {
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-.ant-picker-input > input[disabled] {
- background: transparent;
-}
-.ant-picker-input:hover .ant-picker-clear {
- opacity: 1;
-}
-.ant-picker-large {
- padding: 6.5px 11px 6.5px;
-}
-.ant-picker-large .ant-picker-input > input {
- font-size: 16px;
-}
-.ant-picker-small {
- padding: 0px 7px 0px;
-}
-.ant-picker-suffix {
- -ms-flex-item-align: center;
- align-self: center;
- margin-left: 4px;
- color: rgba(0, 0, 0, 0.25);
- line-height: 1;
- pointer-events: none;
-}
-.ant-picker-suffix > * {
- vertical-align: top;
-}
-.ant-picker-clear {
- position: absolute;
- top: 50%;
- right: 0;
- color: rgba(0, 0, 0, 0.25);
- line-height: 1;
- background: #fff;
- -webkit-transform: translateY(-50%);
- transform: translateY(-50%);
- cursor: pointer;
- opacity: 0;
- -webkit-transition: opacity 0.3s, color 0.3s;
- transition: opacity 0.3s, color 0.3s;
-}
-.ant-picker-clear > * {
- vertical-align: top;
-}
-.ant-picker-clear:hover {
- color: rgba(0, 0, 0, 0.45);
-}
-.ant-picker-separator {
- position: relative;
- display: inline-block;
- width: 1em;
- height: 16px;
- color: rgba(0, 0, 0, 0.25);
- font-size: 16px;
- vertical-align: top;
- cursor: default;
-}
-.ant-picker-focused .ant-picker-separator {
- color: rgba(0, 0, 0, 0.45);
-}
-.ant-picker-disabled .ant-picker-range-separator .ant-picker-separator {
- cursor: not-allowed;
-}
-.ant-picker-range {
- position: relative;
- display: -webkit-inline-box;
- display: -ms-inline-flexbox;
- display: inline-flex;
-}
-.ant-picker-range .ant-picker-clear {
- right: 11px;
-}
-.ant-picker-range:hover .ant-picker-clear {
- opacity: 1;
-}
-.ant-picker-range .ant-picker-active-bar {
- bottom: -1px;
- height: 2px;
- margin-left: 11px;
- background: #1890ff;
- opacity: 0;
- -webkit-transition: all 0.3s ease-out;
- transition: all 0.3s ease-out;
- pointer-events: none;
-}
-.ant-picker-range.ant-picker-focused .ant-picker-active-bar {
- opacity: 1;
-}
-.ant-picker-range-separator {
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- padding: 0 8px;
- line-height: 1;
-}
-.ant-picker-range.ant-picker-small .ant-picker-clear {
- right: 7px;
-}
-.ant-picker-dropdown {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- position: absolute;
- z-index: 1050;
-}
-.ant-picker-dropdown-hidden {
- display: none;
-}
-.ant-picker-dropdown-placement-bottomLeft .ant-picker-range-arrow {
- top: 1.66666667px;
- display: block;
- -webkit-transform: rotate(-45deg);
- transform: rotate(-45deg);
-}
-.ant-picker-dropdown-placement-topLeft .ant-picker-range-arrow {
- bottom: 1.66666667px;
- display: block;
- -webkit-transform: rotate(135deg);
- transform: rotate(135deg);
-}
-.ant-picker-dropdown-range {
- padding: 6.66666667px 0;
-}
-.ant-picker-dropdown-range-hidden {
- display: none;
-}
-.ant-picker-dropdown .ant-picker-panel > .ant-picker-time-panel {
- padding-top: 4px;
-}
-.ant-picker-ranges {
- margin-bottom: 0;
- padding: 4px 12px;
- overflow: hidden;
- line-height: 34px;
- text-align: left;
- list-style: none;
-}
-.ant-picker-ranges > li {
- display: inline-block;
-}
-.ant-picker-ranges .ant-picker-preset > .ant-tag-blue {
- color: #1890ff;
- background: #e6f7ff;
- border-color: #91d5ff;
- cursor: pointer;
-}
-.ant-picker-ranges .ant-picker-ok {
- float: right;
- margin-left: 8px;
-}
-.ant-picker-range-wrapper {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
-}
-.ant-picker-range-arrow {
- position: absolute;
- z-index: 1;
- display: none;
- width: 10px;
- height: 10px;
- margin-left: 16.5px;
- -webkit-box-shadow: 2px -2px 6px rgba(0, 0, 0, 0.06);
- box-shadow: 2px -2px 6px rgba(0, 0, 0, 0.06);
- -webkit-transition: left 0.3s ease-out;
- transition: left 0.3s ease-out;
-}
-.ant-picker-range-arrow::after {
- position: absolute;
- top: 1px;
- right: 1px;
- width: 10px;
- height: 10px;
- border: 5px solid #f0f0f0;
- border-color: #fff #fff transparent transparent;
- content: '';
-}
-.ant-picker-panel-container {
- overflow: hidden;
- vertical-align: top;
- background: #fff;
- border-radius: 2px;
- -webkit-box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
- box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
- -webkit-transition: margin 0.3s;
- transition: margin 0.3s;
-}
-.ant-picker-panel-container .ant-picker-panels {
- display: -webkit-inline-box;
- display: -ms-inline-flexbox;
- display: inline-flex;
- -ms-flex-wrap: nowrap;
- flex-wrap: nowrap;
- direction: ltr;
-}
-.ant-picker-panel-container .ant-picker-panel {
- vertical-align: top;
- background: transparent;
- border-width: 0 0 1px 0;
- border-radius: 0;
-}
-.ant-picker-panel-container .ant-picker-panel-focused {
- border-color: #f0f0f0;
-}
-.ant-picker-rtl {
- direction: rtl;
-}
-.ant-picker-rtl .ant-picker-suffix {
- margin-right: 4px;
- margin-left: 0;
-}
-.ant-picker-rtl .ant-picker-clear {
- right: auto;
- left: 0;
-}
-.ant-picker-rtl .ant-picker-separator {
- -webkit-transform: rotate(180deg);
- transform: rotate(180deg);
-}
-.ant-picker-panel-rtl .ant-picker-header-view button:not(:first-child) {
- margin-right: 8px;
- margin-left: 0;
-}
-.ant-picker-rtl.ant-picker-range .ant-picker-clear {
- right: auto;
- left: 11px;
-}
-.ant-picker-rtl.ant-picker-range .ant-picker-active-bar {
- margin-right: 11px;
- margin-left: 0;
-}
-.ant-picker-dropdown-rtl .ant-picker-ranges {
- text-align: right;
-}
-.ant-picker-dropdown-rtl .ant-picker-ranges .ant-picker-ok {
- float: left;
- margin-right: 8px;
- margin-left: 0;
-}
-.ant-picker-panel-rtl {
- direction: rtl;
-}
-.ant-picker-panel-rtl .ant-picker-prev-icon,
-.ant-picker-panel-rtl .ant-picker-super-prev-icon {
- -webkit-transform: rotate(135deg);
- transform: rotate(135deg);
-}
-.ant-picker-panel-rtl .ant-picker-next-icon,
-.ant-picker-panel-rtl .ant-picker-super-next-icon {
- -webkit-transform: rotate(-45deg);
- transform: rotate(-45deg);
-}
-.ant-picker-cell .ant-picker-cell-inner {
- position: relative;
- z-index: 2;
- display: inline-block;
- min-width: 24px;
- height: 24px;
- line-height: 24px;
- border-radius: 2px;
- -webkit-transition: background 0.3s, border 0.3s;
- transition: background 0.3s, border 0.3s;
-}
-.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-start::before {
- right: 50%;
- left: 0;
-}
-.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-end::before {
- right: 0;
- left: 50%;
-}
-.ant-picker-panel-rtl .ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-start .ant-picker-cell-inner::after {
- right: 0;
- left: -7px;
-}
-.ant-picker-panel-rtl .ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-end .ant-picker-cell-inner::after {
- right: -7px;
- left: 0;
-}
-.ant-picker-panel-rtl .ant-picker-cell-range-hover.ant-picker-cell-range-start::after {
- right: 0;
- left: 50%;
-}
-.ant-picker-panel-rtl .ant-picker-cell-range-hover.ant-picker-cell-range-end::after {
- right: 50%;
- left: 0;
-}
-.ant-picker-panel-rtl tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover:first-child::after,
-.ant-picker-panel-rtl tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-end:first-child::after,
-.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-hover-edge-start:not(.ant-picker-cell-range-hover-edge-start-near-range)::after,
-.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-hover-start::after {
- right: 6px;
- left: 0;
- border-right: 1px dashed #7ec1ff;
- border-left: none;
- border-top-left-radius: 0;
- border-top-right-radius: 2px;
- border-bottom-right-radius: 2px;
- border-bottom-left-radius: 0;
-}
-.ant-picker-panel-rtl tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover:last-child::after,
-.ant-picker-panel-rtl tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::after,
-.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-hover-edge-end:not(.ant-picker-cell-range-hover-edge-end-near-range)::after,
-.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-hover-end::after {
- right: 0;
- left: 6px;
- border-right: none;
- border-left: 1px dashed #7ec1ff;
- border-top-left-radius: 2px;
- border-top-right-radius: 0;
- border-bottom-right-radius: 0;
- border-bottom-left-radius: 2px;
-}
-.ant-picker-panel-rtl tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::after,
-.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-hover-start.ant-picker-cell-in-view.ant-picker-cell-range-hover-end::after {
- right: 6px;
- border-right: 1px dashed #7ec1ff;
- border-top-right-radius: 2px;
- border-bottom-right-radius: 2px;
-}
-.ant-picker-panel-rtl tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-end:first-child::after {
- left: 6px;
- border-left: 1px dashed #7ec1ff;
- border-top-left-radius: 2px;
- border-bottom-left-radius: 2px;
-}
-.ant-picker-panel-rtl .ant-picker-time-panel {
- direction: ltr;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-tag {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- display: inline-block;
- height: auto;
- margin-right: 8px;
- padding: 0 7px;
- font-size: 12px;
- line-height: 20px;
- white-space: nowrap;
- background: #fafafa;
- border: 1px solid #d9d9d9;
- border-radius: 2px;
- cursor: default;
- opacity: 1;
- -webkit-transition: all 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);
- transition: all 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);
-}
-.ant-tag:hover {
- opacity: 0.85;
-}
-.ant-tag,
-.ant-tag a,
-.ant-tag a:hover {
- color: rgba(0, 0, 0, 0.65);
-}
-.ant-tag > a:first-child:last-child {
- display: inline-block;
- margin: 0 -8px;
- padding: 0 8px;
-}
-.ant-tag-close-icon {
- display: inline-block;
- font-size: 10px;
- margin-left: 3px;
- color: rgba(0, 0, 0, 0.45);
- cursor: pointer;
- -webkit-transition: all 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);
- transition: all 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);
-}
-.ant-tag-close-icon:hover {
- color: rgba(0, 0, 0, 0.85);
-}
-.ant-tag-has-color {
- border-color: transparent;
-}
-.ant-tag-has-color,
-.ant-tag-has-color a,
-.ant-tag-has-color a:hover,
-.ant-tag-has-color .anticon-close,
-.ant-tag-has-color .anticon-close:hover {
- color: #fff;
-}
-.ant-tag-checkable {
- background-color: transparent;
- border-color: transparent;
- cursor: pointer;
-}
-.ant-tag-checkable:not(.ant-tag-checkable-checked):hover {
- color: #1890ff;
-}
-.ant-tag-checkable:active,
-.ant-tag-checkable-checked {
- color: #fff;
-}
-.ant-tag-checkable-checked {
- background-color: #1890ff;
-}
-.ant-tag-checkable:active {
- background-color: #096dd9;
-}
-.ant-tag-hidden {
- display: none;
-}
-.ant-tag-pink {
- color: #eb2f96;
- background: #fff0f6;
- border-color: #ffadd2;
-}
-.ant-tag-pink-inverse {
- color: #fff;
- background: #eb2f96;
- border-color: #eb2f96;
-}
-.ant-tag-magenta {
- color: #eb2f96;
- background: #fff0f6;
- border-color: #ffadd2;
-}
-.ant-tag-magenta-inverse {
- color: #fff;
- background: #eb2f96;
- border-color: #eb2f96;
-}
-.ant-tag-red {
- color: #f5222d;
- background: #fff1f0;
- border-color: #ffa39e;
-}
-.ant-tag-red-inverse {
- color: #fff;
- background: #f5222d;
- border-color: #f5222d;
-}
-.ant-tag-volcano {
- color: #fa541c;
- background: #fff2e8;
- border-color: #ffbb96;
-}
-.ant-tag-volcano-inverse {
- color: #fff;
- background: #fa541c;
- border-color: #fa541c;
-}
-.ant-tag-orange {
- color: #fa8c16;
- background: #fff7e6;
- border-color: #ffd591;
-}
-.ant-tag-orange-inverse {
- color: #fff;
- background: #fa8c16;
- border-color: #fa8c16;
-}
-.ant-tag-yellow {
- color: #fadb14;
- background: #feffe6;
- border-color: #fffb8f;
-}
-.ant-tag-yellow-inverse {
- color: #fff;
- background: #fadb14;
- border-color: #fadb14;
-}
-.ant-tag-gold {
- color: #faad14;
- background: #fffbe6;
- border-color: #ffe58f;
-}
-.ant-tag-gold-inverse {
- color: #fff;
- background: #faad14;
- border-color: #faad14;
-}
-.ant-tag-cyan {
- color: #13c2c2;
- background: #e6fffb;
- border-color: #87e8de;
-}
-.ant-tag-cyan-inverse {
- color: #fff;
- background: #13c2c2;
- border-color: #13c2c2;
-}
-.ant-tag-lime {
- color: #a0d911;
- background: #fcffe6;
- border-color: #eaff8f;
-}
-.ant-tag-lime-inverse {
- color: #fff;
- background: #a0d911;
- border-color: #a0d911;
-}
-.ant-tag-green {
- color: #52c41a;
- background: #f6ffed;
- border-color: #b7eb8f;
-}
-.ant-tag-green-inverse {
- color: #fff;
- background: #52c41a;
- border-color: #52c41a;
-}
-.ant-tag-blue {
- color: #1890ff;
- background: #e6f7ff;
- border-color: #91d5ff;
-}
-.ant-tag-blue-inverse {
- color: #fff;
- background: #1890ff;
- border-color: #1890ff;
-}
-.ant-tag-geekblue {
- color: #2f54eb;
- background: #f0f5ff;
- border-color: #adc6ff;
-}
-.ant-tag-geekblue-inverse {
- color: #fff;
- background: #2f54eb;
- border-color: #2f54eb;
-}
-.ant-tag-purple {
- color: #722ed1;
- background: #f9f0ff;
- border-color: #d3adf7;
-}
-.ant-tag-purple-inverse {
- color: #fff;
- background: #722ed1;
- border-color: #722ed1;
-}
-.ant-tag-success {
- color: #52c41a;
- background: #f6ffed;
- border-color: #b7eb8f;
-}
-.ant-tag-processing {
- color: #1890ff;
- background: #e6f7ff;
- border-color: #91d5ff;
-}
-.ant-tag-error {
- color: #f5222d;
- background: #fff1f0;
- border-color: #ffa39e;
-}
-.ant-tag-warning {
- color: #fa8c16;
- background: #fff7e6;
- border-color: #ffd591;
-}
-.ant-tag > .anticon + span,
-.ant-tag > span + .anticon {
- margin-left: 7px;
-}
-.ant-tag-rtl {
- margin-right: 0;
- margin-left: 8px;
- direction: rtl;
- text-align: right;
-}
-.ant-tag-rtl .ant-tag-close-icon {
- margin-right: 3px;
- margin-left: 0;
-}
-.ant-tag-rtl.ant-tag > .anticon + span,
-.ant-tag-rtl.ant-tag > span + .anticon {
- margin-right: 7px;
- margin-left: 0;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-card {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- position: relative;
- background: #fff;
- border-radius: 2px;
-}
-.ant-card-rtl {
- direction: rtl;
-}
-.ant-card-hoverable {
- cursor: pointer;
- -webkit-transition: border-color 0.3s, -webkit-box-shadow 0.3s;
- transition: border-color 0.3s, -webkit-box-shadow 0.3s;
- transition: box-shadow 0.3s, border-color 0.3s;
- transition: box-shadow 0.3s, border-color 0.3s, -webkit-box-shadow 0.3s;
-}
-.ant-card-hoverable:hover {
- border-color: transparent;
- -webkit-box-shadow: 0 1px 2px -2px rgba(0, 0, 0, 0.16), 0 3px 6px 0 rgba(0, 0, 0, 0.12), 0 5px 12px 4px rgba(0, 0, 0, 0.09);
- box-shadow: 0 1px 2px -2px rgba(0, 0, 0, 0.16), 0 3px 6px 0 rgba(0, 0, 0, 0.12), 0 5px 12px 4px rgba(0, 0, 0, 0.09);
-}
-.ant-card-bordered {
- border: 1px solid #f0f0f0;
-}
-.ant-card-head {
- min-height: 48px;
- margin-bottom: -1px;
- padding: 0 24px;
- color: rgba(0, 0, 0, 0.85);
- font-weight: 500;
- font-size: 16px;
- background: transparent;
- border-bottom: 1px solid #f0f0f0;
- border-radius: 2px 2px 0 0;
-}
-.ant-card-head::before {
- display: table;
- content: '';
-}
-.ant-card-head::after {
- display: table;
- clear: both;
- content: '';
-}
-.ant-card-head-wrapper {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
-}
-.ant-card-head-title {
- display: inline-block;
- -webkit-box-flex: 1;
- -ms-flex: 1;
- flex: 1;
- padding: 16px 0;
- overflow: hidden;
- white-space: nowrap;
- text-overflow: ellipsis;
-}
-.ant-card-head .ant-tabs {
- clear: both;
- margin-bottom: -17px;
- color: rgba(0, 0, 0, 0.65);
- font-weight: normal;
- font-size: 14px;
-}
-.ant-card-head .ant-tabs-bar {
- border-bottom: 1px solid #f0f0f0;
-}
-.ant-card-extra {
- float: right;
- margin-left: auto;
- padding: 16px 0;
- color: rgba(0, 0, 0, 0.65);
- font-weight: normal;
- font-size: 14px;
-}
-.ant-card-rtl .ant-card-extra {
- margin-right: auto;
- margin-left: 0;
-}
-.ant-card-body {
- padding: 24px;
-}
-.ant-card-body::before {
- display: table;
- content: '';
-}
-.ant-card-body::after {
- display: table;
- clear: both;
- content: '';
-}
-.ant-card-contain-grid:not(.ant-card-loading) .ant-card-body {
- margin: -1px 0 0 -1px;
- padding: 0;
-}
-.ant-card-grid {
- float: left;
- width: 33.33%;
- padding: 24px;
- border: 0;
- border-radius: 0;
- -webkit-box-shadow: 1px 0 0 0 #f0f0f0, 0 1px 0 0 #f0f0f0, 1px 1px 0 0 #f0f0f0, 1px 0 0 0 #f0f0f0 inset, 0 1px 0 0 #f0f0f0 inset;
- box-shadow: 1px 0 0 0 #f0f0f0, 0 1px 0 0 #f0f0f0, 1px 1px 0 0 #f0f0f0, 1px 0 0 0 #f0f0f0 inset, 0 1px 0 0 #f0f0f0 inset;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
-}
-.ant-card-rtl .ant-card-grid {
- float: right;
-}
-.ant-card-grid-hoverable:hover {
- position: relative;
- z-index: 1;
- -webkit-box-shadow: 0 1px 2px -2px rgba(0, 0, 0, 0.16), 0 3px 6px 0 rgba(0, 0, 0, 0.12), 0 5px 12px 4px rgba(0, 0, 0, 0.09);
- box-shadow: 0 1px 2px -2px rgba(0, 0, 0, 0.16), 0 3px 6px 0 rgba(0, 0, 0, 0.12), 0 5px 12px 4px rgba(0, 0, 0, 0.09);
-}
-.ant-card-contain-tabs > .ant-card-head .ant-card-head-title {
- min-height: 32px;
- padding-bottom: 0;
-}
-.ant-card-contain-tabs > .ant-card-head .ant-card-extra {
- padding-bottom: 0;
-}
-.ant-card-bordered .ant-card-cover {
- margin-right: -1px;
- margin-left: -1px;
-}
-.ant-card-cover > * {
- display: block;
- width: 100%;
-}
-.ant-card-cover img {
- border-radius: 2px 2px 0 0;
-}
-.ant-card-actions {
- margin: 0;
- padding: 0;
- list-style: none;
- background: #fafafa;
- border-top: 1px solid #f0f0f0;
-}
-.ant-card-actions::before {
- display: table;
- content: '';
-}
-.ant-card-actions::after {
- display: table;
- clear: both;
- content: '';
-}
-.ant-card-actions > li {
- float: left;
- margin: 12px 0;
- color: rgba(0, 0, 0, 0.45);
- text-align: center;
-}
-.ant-card-rtl .ant-card-actions > li {
- float: right;
-}
-.ant-card-actions > li > span {
- position: relative;
- display: block;
- min-width: 32px;
- font-size: 14px;
- line-height: 1.5715;
- cursor: pointer;
-}
-.ant-card-actions > li > span:hover {
- color: #1890ff;
- -webkit-transition: color 0.3s;
- transition: color 0.3s;
-}
-.ant-card-actions > li > span a:not(.ant-btn),
-.ant-card-actions > li > span > .anticon {
- display: inline-block;
- width: 100%;
- color: rgba(0, 0, 0, 0.45);
- line-height: 22px;
- -webkit-transition: color 0.3s;
- transition: color 0.3s;
-}
-.ant-card-actions > li > span a:not(.ant-btn):hover,
-.ant-card-actions > li > span > .anticon:hover {
- color: #1890ff;
-}
-.ant-card-actions > li > span > .anticon {
- font-size: 16px;
- line-height: 22px;
-}
-.ant-card-actions > li:not(:last-child) {
- border-right: 1px solid #f0f0f0;
-}
-.ant-card-type-inner .ant-card-head {
- padding: 0 24px;
- background: #fafafa;
-}
-.ant-card-type-inner .ant-card-head-title {
- padding: 12px 0;
- font-size: 14px;
-}
-.ant-card-type-inner .ant-card-body {
- padding: 16px 24px;
-}
-.ant-card-type-inner .ant-card-extra {
- padding: 13.5px 0;
-}
-.ant-card-meta {
- margin: -4px 0;
-}
-.ant-card-meta::before {
- display: table;
- content: '';
-}
-.ant-card-meta::after {
- display: table;
- clear: both;
- content: '';
-}
-.ant-card-meta-avatar {
- float: left;
- padding-right: 16px;
-}
-.ant-card-rtl .ant-card-meta-avatar {
- float: right;
- padding-right: 0;
- padding-left: 16px;
-}
-.ant-card-meta-detail {
- overflow: hidden;
-}
-.ant-card-meta-detail > div:not(:last-child) {
- margin-bottom: 8px;
-}
-.ant-card-meta-title {
- overflow: hidden;
- color: rgba(0, 0, 0, 0.85);
- font-weight: 500;
- font-size: 16px;
- white-space: nowrap;
- text-overflow: ellipsis;
-}
-.ant-card-meta-description {
- color: rgba(0, 0, 0, 0.45);
-}
-.ant-card-loading {
- overflow: hidden;
-}
-.ant-card-loading .ant-card-body {
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-.ant-card-loading-content p {
- margin: 0;
-}
-.ant-card-loading-block {
- height: 14px;
- margin: 4px 0;
- background: -webkit-gradient(linear, left top, right top, from(rgba(207, 216, 220, 0.2)), color-stop(rgba(207, 216, 220, 0.4)), to(rgba(207, 216, 220, 0.2)));
- background: linear-gradient(90deg, rgba(207, 216, 220, 0.2), rgba(207, 216, 220, 0.4), rgba(207, 216, 220, 0.2));
- background-size: 600% 600%;
- border-radius: 2px;
- -webkit-animation: card-loading 1.4s ease infinite;
- animation: card-loading 1.4s ease infinite;
-}
-@-webkit-keyframes card-loading {
- 0%,
- 100% {
- background-position: 0 50%;
- }
- 50% {
- background-position: 100% 50%;
- }
-}
-@keyframes card-loading {
- 0%,
- 100% {
- background-position: 0 50%;
- }
- 50% {
- background-position: 100% 50%;
- }
-}
-.ant-card-small > .ant-card-head {
- min-height: 36px;
- padding: 0 12px;
- font-size: 14px;
-}
-.ant-card-small > .ant-card-head > .ant-card-head-wrapper > .ant-card-head-title {
- padding: 8px 0;
-}
-.ant-card-small > .ant-card-head > .ant-card-head-wrapper > .ant-card-extra {
- padding: 8px 0;
- font-size: 14px;
-}
-.ant-card-small > .ant-card-body {
- padding: 12px;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-tabs-small > .ant-tabs-nav .ant-tabs-tab {
- padding: 8px 0;
- font-size: 14px;
-}
-.ant-tabs-large > .ant-tabs-nav .ant-tabs-tab {
- padding: 16px 0;
- font-size: 16px;
-}
-.ant-tabs-card.ant-tabs-small > .ant-tabs-nav .ant-tabs-tab {
- padding: 6px 16px;
-}
-.ant-tabs-card.ant-tabs-large > .ant-tabs-nav .ant-tabs-tab {
- padding: 7px 16px 6px;
-}
-.ant-tabs-rtl {
- direction: rtl;
-}
-.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab {
- margin: 0 0 0 32px;
-}
-.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab:last-of-type {
- margin-left: 0;
-}
-.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab .anticon {
- margin-right: 0;
- margin-left: 12px;
-}
-.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab .ant-tabs-tab-remove {
- margin-right: 8px;
- margin-left: -4px;
-}
-.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab .ant-tabs-tab-remove .anticon {
- margin: 0;
-}
-.ant-tabs-rtl.ant-tabs-left > .ant-tabs-nav {
- -webkit-box-ordinal-group: 2;
- -ms-flex-order: 1;
- order: 1;
-}
-.ant-tabs-rtl.ant-tabs-left > .ant-tabs-content-holder {
- -webkit-box-ordinal-group: 1;
- -ms-flex-order: 0;
- order: 0;
-}
-.ant-tabs-rtl.ant-tabs-right > .ant-tabs-nav {
- -webkit-box-ordinal-group: 1;
- -ms-flex-order: 0;
- order: 0;
-}
-.ant-tabs-rtl.ant-tabs-right > .ant-tabs-content-holder {
- -webkit-box-ordinal-group: 2;
- -ms-flex-order: 1;
- order: 1;
-}
-.ant-tabs-rtl.ant-tabs-card.ant-tabs-top > .ant-tabs-nav button.ant-tabs-tab:not(:last-of-type),
-.ant-tabs-rtl.ant-tabs-card.ant-tabs-bottom > .ant-tabs-nav button.ant-tabs-tab:not(:last-of-type) {
- margin: 0 0 0 2px;
-}
-.ant-tabs-dropdown-rtl {
- direction: rtl;
-}
-.ant-tabs-dropdown-rtl .ant-tabs-dropdown-menu-item {
- text-align: right;
-}
-.ant-tabs-top,
-.ant-tabs-bottom {
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
-}
-.ant-tabs-top > .ant-tabs-nav,
-.ant-tabs-bottom > .ant-tabs-nav,
-.ant-tabs-top > div > .ant-tabs-nav,
-.ant-tabs-bottom > div > .ant-tabs-nav {
- margin: 0 0 16px 0;
-}
-.ant-tabs-top > .ant-tabs-nav::before,
-.ant-tabs-bottom > .ant-tabs-nav::before,
-.ant-tabs-top > div > .ant-tabs-nav::before,
-.ant-tabs-bottom > div > .ant-tabs-nav::before {
- position: absolute;
- right: 0;
- left: 0;
- border-bottom: 1px solid #f0f0f0;
- content: '';
-}
-.ant-tabs-top > .ant-tabs-nav .ant-tabs-ink-bar,
-.ant-tabs-bottom > .ant-tabs-nav .ant-tabs-ink-bar,
-.ant-tabs-top > div > .ant-tabs-nav .ant-tabs-ink-bar,
-.ant-tabs-bottom > div > .ant-tabs-nav .ant-tabs-ink-bar {
- height: 2px;
-}
-.ant-tabs-top > .ant-tabs-nav .ant-tabs-ink-bar-animated,
-.ant-tabs-bottom > .ant-tabs-nav .ant-tabs-ink-bar-animated,
-.ant-tabs-top > div > .ant-tabs-nav .ant-tabs-ink-bar-animated,
-.ant-tabs-bottom > div > .ant-tabs-nav .ant-tabs-ink-bar-animated {
- -webkit-transition: width 0.3s, left 0.3s, right 0.3s;
- transition: width 0.3s, left 0.3s, right 0.3s;
-}
-.ant-tabs-top > .ant-tabs-nav .ant-tabs-nav-wrap::before,
-.ant-tabs-bottom > .ant-tabs-nav .ant-tabs-nav-wrap::before,
-.ant-tabs-top > div > .ant-tabs-nav .ant-tabs-nav-wrap::before,
-.ant-tabs-bottom > div > .ant-tabs-nav .ant-tabs-nav-wrap::before,
-.ant-tabs-top > .ant-tabs-nav .ant-tabs-nav-wrap::after,
-.ant-tabs-bottom > .ant-tabs-nav .ant-tabs-nav-wrap::after,
-.ant-tabs-top > div > .ant-tabs-nav .ant-tabs-nav-wrap::after,
-.ant-tabs-bottom > div > .ant-tabs-nav .ant-tabs-nav-wrap::after {
- top: 0;
- bottom: 0;
- width: 30px;
-}
-.ant-tabs-top > .ant-tabs-nav .ant-tabs-nav-wrap::before,
-.ant-tabs-bottom > .ant-tabs-nav .ant-tabs-nav-wrap::before,
-.ant-tabs-top > div > .ant-tabs-nav .ant-tabs-nav-wrap::before,
-.ant-tabs-bottom > div > .ant-tabs-nav .ant-tabs-nav-wrap::before {
- left: 0;
- -webkit-box-shadow: inset 10px 0 8px -8px rgba(0, 0, 0, 0.08);
- box-shadow: inset 10px 0 8px -8px rgba(0, 0, 0, 0.08);
-}
-.ant-tabs-top > .ant-tabs-nav .ant-tabs-nav-wrap::after,
-.ant-tabs-bottom > .ant-tabs-nav .ant-tabs-nav-wrap::after,
-.ant-tabs-top > div > .ant-tabs-nav .ant-tabs-nav-wrap::after,
-.ant-tabs-bottom > div > .ant-tabs-nav .ant-tabs-nav-wrap::after {
- right: 0;
- -webkit-box-shadow: inset -10px 0 8px -8px rgba(0, 0, 0, 0.08);
- box-shadow: inset -10px 0 8px -8px rgba(0, 0, 0, 0.08);
-}
-.ant-tabs-top > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-left::before,
-.ant-tabs-bottom > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-left::before,
-.ant-tabs-top > div > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-left::before,
-.ant-tabs-bottom > div > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-left::before {
- opacity: 1;
-}
-.ant-tabs-top > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-right::after,
-.ant-tabs-bottom > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-right::after,
-.ant-tabs-top > div > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-right::after,
-.ant-tabs-bottom > div > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-right::after {
- opacity: 1;
-}
-.ant-tabs-top > .ant-tabs-nav::before,
-.ant-tabs-top > div > .ant-tabs-nav::before {
- bottom: 0;
-}
-.ant-tabs-top > .ant-tabs-nav .ant-tabs-ink-bar,
-.ant-tabs-top > div > .ant-tabs-nav .ant-tabs-ink-bar {
- bottom: 0;
-}
-.ant-tabs-bottom > .ant-tabs-nav,
-.ant-tabs-bottom > div > .ant-tabs-nav {
- -webkit-box-ordinal-group: 2;
- -ms-flex-order: 1;
- order: 1;
- margin-top: 16px;
- margin-bottom: 0;
-}
-.ant-tabs-bottom > .ant-tabs-nav::before,
-.ant-tabs-bottom > div > .ant-tabs-nav::before {
- top: 0;
-}
-.ant-tabs-bottom > .ant-tabs-nav .ant-tabs-ink-bar,
-.ant-tabs-bottom > div > .ant-tabs-nav .ant-tabs-ink-bar {
- top: 0;
-}
-.ant-tabs-bottom > .ant-tabs-content-holder,
-.ant-tabs-bottom > div > .ant-tabs-content-holder {
- -webkit-box-ordinal-group: 1;
- -ms-flex-order: 0;
- order: 0;
-}
-.ant-tabs-left > .ant-tabs-nav,
-.ant-tabs-right > .ant-tabs-nav,
-.ant-tabs-left > div > .ant-tabs-nav,
-.ant-tabs-right > div > .ant-tabs-nav {
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
- min-width: 50px;
-}
-.ant-tabs-left > .ant-tabs-nav .ant-tabs-tab,
-.ant-tabs-right > .ant-tabs-nav .ant-tabs-tab,
-.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-tab,
-.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-tab {
- margin: 0 0 16px 0;
- padding: 8px 24px;
- text-align: center;
-}
-.ant-tabs-left > .ant-tabs-nav .ant-tabs-tab:last-of-type,
-.ant-tabs-right > .ant-tabs-nav .ant-tabs-tab:last-of-type,
-.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-tab:last-of-type,
-.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-tab:last-of-type {
- margin-bottom: 0;
-}
-.ant-tabs-left > .ant-tabs-nav .ant-tabs-nav-wrap,
-.ant-tabs-right > .ant-tabs-nav .ant-tabs-nav-wrap,
-.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-nav-wrap,
-.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-nav-wrap {
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
-}
-.ant-tabs-left > .ant-tabs-nav .ant-tabs-nav-wrap::before,
-.ant-tabs-right > .ant-tabs-nav .ant-tabs-nav-wrap::before,
-.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-nav-wrap::before,
-.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-nav-wrap::before,
-.ant-tabs-left > .ant-tabs-nav .ant-tabs-nav-wrap::after,
-.ant-tabs-right > .ant-tabs-nav .ant-tabs-nav-wrap::after,
-.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-nav-wrap::after,
-.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-nav-wrap::after {
- right: 0;
- left: 0;
- height: 30px;
-}
-.ant-tabs-left > .ant-tabs-nav .ant-tabs-nav-wrap::before,
-.ant-tabs-right > .ant-tabs-nav .ant-tabs-nav-wrap::before,
-.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-nav-wrap::before,
-.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-nav-wrap::before {
- top: 0;
- -webkit-box-shadow: inset 0 10px 8px -8px rgba(0, 0, 0, 0.08);
- box-shadow: inset 0 10px 8px -8px rgba(0, 0, 0, 0.08);
-}
-.ant-tabs-left > .ant-tabs-nav .ant-tabs-nav-wrap::after,
-.ant-tabs-right > .ant-tabs-nav .ant-tabs-nav-wrap::after,
-.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-nav-wrap::after,
-.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-nav-wrap::after {
- bottom: 0;
- -webkit-box-shadow: inset 0 -10px 8px -8px rgba(0, 0, 0, 0.08);
- box-shadow: inset 0 -10px 8px -8px rgba(0, 0, 0, 0.08);
-}
-.ant-tabs-left > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-top::before,
-.ant-tabs-right > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-top::before,
-.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-top::before,
-.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-top::before {
- opacity: 1;
-}
-.ant-tabs-left > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-bottom::after,
-.ant-tabs-right > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-bottom::after,
-.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-bottom::after,
-.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-bottom::after {
- opacity: 1;
-}
-.ant-tabs-left > .ant-tabs-nav .ant-tabs-ink-bar,
-.ant-tabs-right > .ant-tabs-nav .ant-tabs-ink-bar,
-.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-ink-bar,
-.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-ink-bar {
- width: 2px;
-}
-.ant-tabs-left > .ant-tabs-nav .ant-tabs-ink-bar-animated,
-.ant-tabs-right > .ant-tabs-nav .ant-tabs-ink-bar-animated,
-.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-ink-bar-animated,
-.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-ink-bar-animated {
- -webkit-transition: height 0.3s, top 0.3s;
- transition: height 0.3s, top 0.3s;
-}
-.ant-tabs-left > .ant-tabs-nav .ant-tabs-nav-list,
-.ant-tabs-right > .ant-tabs-nav .ant-tabs-nav-list,
-.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-nav-list,
-.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-nav-list,
-.ant-tabs-left > .ant-tabs-nav .ant-tabs-nav-operations,
-.ant-tabs-right > .ant-tabs-nav .ant-tabs-nav-operations,
-.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-nav-operations,
-.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-nav-operations {
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
-}
-.ant-tabs-left > .ant-tabs-nav .ant-tabs-ink-bar,
-.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-ink-bar {
- right: 0;
-}
-.ant-tabs-left > .ant-tabs-content-holder,
-.ant-tabs-left > div > .ant-tabs-content-holder {
- margin-left: -1px;
- border-left: 1px solid #f0f0f0;
-}
-.ant-tabs-left > .ant-tabs-content-holder > .ant-tabs-content > .ant-tabs-tabpane,
-.ant-tabs-left > div > .ant-tabs-content-holder > .ant-tabs-content > .ant-tabs-tabpane {
- padding-left: 24px;
-}
-.ant-tabs-right > .ant-tabs-nav,
-.ant-tabs-right > div > .ant-tabs-nav {
- -webkit-box-ordinal-group: 2;
- -ms-flex-order: 1;
- order: 1;
-}
-.ant-tabs-right > .ant-tabs-nav .ant-tabs-ink-bar,
-.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-ink-bar {
- left: 0;
-}
-.ant-tabs-right > .ant-tabs-content-holder,
-.ant-tabs-right > div > .ant-tabs-content-holder {
- -webkit-box-ordinal-group: 1;
- -ms-flex-order: 0;
- order: 0;
- margin-right: -1px;
- border-right: 1px solid #f0f0f0;
-}
-.ant-tabs-right > .ant-tabs-content-holder > .ant-tabs-content > .ant-tabs-tabpane,
-.ant-tabs-right > div > .ant-tabs-content-holder > .ant-tabs-content > .ant-tabs-tabpane {
- padding-right: 24px;
-}
-.ant-tabs-dropdown {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- position: absolute;
- top: -9999px;
- left: -9999px;
- z-index: 1050;
- display: block;
-}
-.ant-tabs-dropdown-hidden {
- display: none;
-}
-.ant-tabs-dropdown-menu {
- max-height: 200px;
- margin: 0;
- padding: 4px 0;
- overflow-x: hidden;
- overflow-y: auto;
- text-align: left;
- list-style-type: none;
- background-color: #fff;
- background-clip: padding-box;
- border-radius: 2px;
- outline: none;
- -webkit-box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
- box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
-}
-.ant-tabs-dropdown-menu-item {
- min-width: 120px;
- margin: 0;
- padding: 5px 12px;
- overflow: hidden;
- color: rgba(0, 0, 0, 0.65);
- font-weight: normal;
- font-size: 14px;
- line-height: 22px;
- white-space: nowrap;
- text-overflow: ellipsis;
- cursor: pointer;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
-}
-.ant-tabs-dropdown-menu-item:hover {
- background: #f5f5f5;
-}
-.ant-tabs-dropdown-menu-item-disabled,
-.ant-tabs-dropdown-menu-item-disabled:hover {
- color: rgba(0, 0, 0, 0.25);
- background: transparent;
- cursor: not-allowed;
-}
-.ant-tabs-card > .ant-tabs-nav .ant-tabs-tab,
-.ant-tabs-card > div > .ant-tabs-nav .ant-tabs-tab {
- margin: 0;
- padding: 8px 16px;
- background: #fafafa;
- border: 1px solid #f0f0f0;
- -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
- transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
-}
-.ant-tabs-card > .ant-tabs-nav .ant-tabs-tab-active,
-.ant-tabs-card > div > .ant-tabs-nav .ant-tabs-tab-active {
- color: #1890ff;
- background: #fff;
-}
-.ant-tabs-card > .ant-tabs-nav .ant-tabs-ink-bar,
-.ant-tabs-card > div > .ant-tabs-nav .ant-tabs-ink-bar {
- visibility: hidden;
-}
-.ant-tabs-card.ant-tabs-top > .ant-tabs-nav .ant-tabs-tab:not(:last-of-type),
-.ant-tabs-card.ant-tabs-bottom > .ant-tabs-nav .ant-tabs-tab:not(:last-of-type),
-.ant-tabs-card.ant-tabs-top > div > .ant-tabs-nav .ant-tabs-tab:not(:last-of-type),
-.ant-tabs-card.ant-tabs-bottom > div > .ant-tabs-nav .ant-tabs-tab:not(:last-of-type) {
- margin-right: 2px;
-}
-.ant-tabs-card.ant-tabs-top > .ant-tabs-nav .ant-tabs-tab,
-.ant-tabs-card.ant-tabs-top > div > .ant-tabs-nav .ant-tabs-tab {
- border-radius: 2px 2px 0 0;
-}
-.ant-tabs-card.ant-tabs-top > .ant-tabs-nav .ant-tabs-tab-active,
-.ant-tabs-card.ant-tabs-top > div > .ant-tabs-nav .ant-tabs-tab-active {
- border-bottom-color: #fff;
-}
-.ant-tabs-card.ant-tabs-bottom > .ant-tabs-nav .ant-tabs-tab,
-.ant-tabs-card.ant-tabs-bottom > div > .ant-tabs-nav .ant-tabs-tab {
- border-radius: 0 0 2px 2px;
-}
-.ant-tabs-card.ant-tabs-bottom > .ant-tabs-nav .ant-tabs-tab-active,
-.ant-tabs-card.ant-tabs-bottom > div > .ant-tabs-nav .ant-tabs-tab-active {
- border-top-color: #fff;
-}
-.ant-tabs-card.ant-tabs-left > .ant-tabs-nav .ant-tabs-tab:not(:last-of-type),
-.ant-tabs-card.ant-tabs-right > .ant-tabs-nav .ant-tabs-tab:not(:last-of-type),
-.ant-tabs-card.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-tab:not(:last-of-type),
-.ant-tabs-card.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-tab:not(:last-of-type) {
- margin-bottom: 2px;
-}
-.ant-tabs-card.ant-tabs-left > .ant-tabs-nav .ant-tabs-tab,
-.ant-tabs-card.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-tab {
- border-radius: 2px 0 0 2px;
-}
-.ant-tabs-card.ant-tabs-left > .ant-tabs-nav .ant-tabs-tab-active,
-.ant-tabs-card.ant-tabs-left > div > .ant-tabs-nav .ant-tabs-tab-active {
- border-right-color: #fff;
-}
-.ant-tabs-card.ant-tabs-right > .ant-tabs-nav .ant-tabs-tab,
-.ant-tabs-card.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-tab {
- border-radius: 0 2px 2px 0;
-}
-.ant-tabs-card.ant-tabs-right > .ant-tabs-nav .ant-tabs-tab-active,
-.ant-tabs-card.ant-tabs-right > div > .ant-tabs-nav .ant-tabs-tab-active {
- border-left-color: #fff;
-}
-.ant-tabs {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- overflow: hidden;
-}
-.ant-tabs > .ant-tabs-nav,
-.ant-tabs > div > .ant-tabs-nav {
- position: relative;
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-flex: 0;
- -ms-flex: none;
- flex: none;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
-}
-.ant-tabs > .ant-tabs-nav .ant-tabs-nav-wrap,
-.ant-tabs > div > .ant-tabs-nav .ant-tabs-nav-wrap {
- position: relative;
- display: inline-block;
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-flex: 1;
- -ms-flex: auto;
- flex: auto;
- -ms-flex-item-align: stretch;
- align-self: stretch;
- overflow: hidden;
- white-space: nowrap;
- -webkit-transform: translate(0);
- transform: translate(0);
-}
-.ant-tabs > .ant-tabs-nav .ant-tabs-nav-wrap::before,
-.ant-tabs > div > .ant-tabs-nav .ant-tabs-nav-wrap::before,
-.ant-tabs > .ant-tabs-nav .ant-tabs-nav-wrap::after,
-.ant-tabs > div > .ant-tabs-nav .ant-tabs-nav-wrap::after {
- position: absolute;
- z-index: 1;
- opacity: 0;
- -webkit-transition: opacity 0.3s;
- transition: opacity 0.3s;
- content: '';
- pointer-events: none;
-}
-.ant-tabs > .ant-tabs-nav .ant-tabs-nav-list,
-.ant-tabs > div > .ant-tabs-nav .ant-tabs-nav-list {
- position: relative;
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-transition: -webkit-transform 0.3s;
- transition: -webkit-transform 0.3s;
- transition: transform 0.3s;
- transition: transform 0.3s, -webkit-transform 0.3s;
-}
-.ant-tabs > .ant-tabs-nav .ant-tabs-nav-operations,
-.ant-tabs > div > .ant-tabs-nav .ant-tabs-nav-operations {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -ms-flex-item-align: stretch;
- align-self: stretch;
-}
-.ant-tabs > .ant-tabs-nav .ant-tabs-nav-operations-hidden,
-.ant-tabs > div > .ant-tabs-nav .ant-tabs-nav-operations-hidden {
- position: absolute;
- visibility: hidden;
- pointer-events: none;
-}
-.ant-tabs > .ant-tabs-nav .ant-tabs-nav-more,
-.ant-tabs > div > .ant-tabs-nav .ant-tabs-nav-more {
- position: relative;
- padding: 8px 16px;
- background: transparent;
- border: 0;
-}
-.ant-tabs > .ant-tabs-nav .ant-tabs-nav-more::after,
-.ant-tabs > div > .ant-tabs-nav .ant-tabs-nav-more::after {
- position: absolute;
- right: 0;
- bottom: 0;
- left: 0;
- height: 5px;
- -webkit-transform: translateY(100%);
- transform: translateY(100%);
- content: '';
-}
-.ant-tabs > .ant-tabs-nav .ant-tabs-nav-add,
-.ant-tabs > div > .ant-tabs-nav .ant-tabs-nav-add {
- min-width: 40px;
- padding: 0 8px;
- background: #fafafa;
- border: 1px solid #f0f0f0;
- border-radius: 2px 2px 0 0;
- outline: none;
- cursor: pointer;
- -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
- transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
-}
-.ant-tabs > .ant-tabs-nav .ant-tabs-nav-add:hover,
-.ant-tabs > div > .ant-tabs-nav .ant-tabs-nav-add:hover {
- color: #40a9ff;
-}
-.ant-tabs > .ant-tabs-nav .ant-tabs-nav-add:active,
-.ant-tabs > div > .ant-tabs-nav .ant-tabs-nav-add:active,
-.ant-tabs > .ant-tabs-nav .ant-tabs-nav-add:focus,
-.ant-tabs > div > .ant-tabs-nav .ant-tabs-nav-add:focus {
- color: #096dd9;
-}
-.ant-tabs-extra-content {
- -webkit-box-flex: 0;
- -ms-flex: none;
- flex: none;
-}
-.ant-tabs-centered > .ant-tabs-nav .ant-tabs-nav-wrap:not([class*='ant-tabs-nav-wrap-ping']),
-.ant-tabs-centered > div > .ant-tabs-nav .ant-tabs-nav-wrap:not([class*='ant-tabs-nav-wrap-ping']) {
- -webkit-box-pack: center;
- -ms-flex-pack: center;
- justify-content: center;
-}
-.ant-tabs-ink-bar {
- position: absolute;
- background: #1890ff;
- pointer-events: none;
-}
-.ant-tabs-tab {
- position: relative;
- display: -webkit-inline-box;
- display: -ms-inline-flexbox;
- display: inline-flex;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- margin: 0 32px 0 0;
- padding: 12px 0;
- font-size: 14px;
- background: transparent;
- border: 0;
- outline: none;
- cursor: pointer;
-}
-.ant-tabs-tab:last-of-type {
- margin-right: 0;
- margin-left: 0;
-}
-.ant-tabs-tab-btn:focus,
-.ant-tabs-tab-remove:focus,
-.ant-tabs-tab-btn:active,
-.ant-tabs-tab-remove:active {
- color: #096dd9;
-}
-.ant-tabs-tab-btn {
- outline: none;
-}
-.ant-tabs-tab-remove {
- -webkit-box-flex: 0;
- -ms-flex: none;
- flex: none;
- margin-right: -4px;
- margin-left: 8px;
- color: rgba(0, 0, 0, 0.45);
- font-size: 12px;
- background: transparent;
- border: none;
- outline: none;
- cursor: pointer;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
-}
-.ant-tabs-tab-remove:hover {
- color: rgba(0, 0, 0, 0.85);
-}
-.ant-tabs-tab:hover {
- color: #40a9ff;
-}
-.ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn {
- color: #1890ff;
- font-weight: 500;
-}
-.ant-tabs-tab.ant-tabs-tab-disabled {
- color: rgba(0, 0, 0, 0.25);
- cursor: not-allowed;
-}
-.ant-tabs-tab .ant-tabs-tab-remove .anticon {
- margin: 0;
-}
-.ant-tabs-tab .anticon {
- margin-right: 12px;
-}
-.ant-tabs-content {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- width: 100%;
-}
-.ant-tabs-content-holder {
- -webkit-box-flex: 1;
- -ms-flex: auto;
- flex: auto;
- min-width: 0;
- min-height: 0;
-}
-.ant-tabs-content-animated {
- -webkit-transition: margin 0.3s;
- transition: margin 0.3s;
-}
-.ant-tabs-tabpane {
- -webkit-box-flex: 0;
- -ms-flex: none;
- flex: none;
- width: 100%;
- outline: none;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-row {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-orient: horizontal;
- -webkit-box-direction: normal;
- -ms-flex-flow: row wrap;
- flex-flow: row wrap;
-}
-.ant-row::before,
-.ant-row::after {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
-}
-.ant-row-start {
- -webkit-box-pack: start;
- -ms-flex-pack: start;
- justify-content: flex-start;
-}
-.ant-row-center {
- -webkit-box-pack: center;
- -ms-flex-pack: center;
- justify-content: center;
-}
-.ant-row-end {
- -webkit-box-pack: end;
- -ms-flex-pack: end;
- justify-content: flex-end;
-}
-.ant-row-space-between {
- -webkit-box-pack: justify;
- -ms-flex-pack: justify;
- justify-content: space-between;
-}
-.ant-row-space-around {
- -ms-flex-pack: distribute;
- justify-content: space-around;
-}
-.ant-row-top {
- -webkit-box-align: start;
- -ms-flex-align: start;
- align-items: flex-start;
-}
-.ant-row-middle {
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
-}
-.ant-row-bottom {
- -webkit-box-align: end;
- -ms-flex-align: end;
- align-items: flex-end;
-}
-.ant-col {
- position: relative;
- max-width: 100%;
- min-height: 1px;
-}
-.ant-col-24 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 100%;
- flex: 0 0 100%;
- max-width: 100%;
-}
-.ant-col-push-24 {
- left: 100%;
-}
-.ant-col-pull-24 {
- right: 100%;
-}
-.ant-col-offset-24 {
- margin-left: 100%;
-}
-.ant-col-order-24 {
- -webkit-box-ordinal-group: 25;
- -ms-flex-order: 24;
- order: 24;
-}
-.ant-col-23 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 95.83333333%;
- flex: 0 0 95.83333333%;
- max-width: 95.83333333%;
-}
-.ant-col-push-23 {
- left: 95.83333333%;
-}
-.ant-col-pull-23 {
- right: 95.83333333%;
-}
-.ant-col-offset-23 {
- margin-left: 95.83333333%;
-}
-.ant-col-order-23 {
- -webkit-box-ordinal-group: 24;
- -ms-flex-order: 23;
- order: 23;
-}
-.ant-col-22 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 91.66666667%;
- flex: 0 0 91.66666667%;
- max-width: 91.66666667%;
-}
-.ant-col-push-22 {
- left: 91.66666667%;
-}
-.ant-col-pull-22 {
- right: 91.66666667%;
-}
-.ant-col-offset-22 {
- margin-left: 91.66666667%;
-}
-.ant-col-order-22 {
- -webkit-box-ordinal-group: 23;
- -ms-flex-order: 22;
- order: 22;
-}
-.ant-col-21 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 87.5%;
- flex: 0 0 87.5%;
- max-width: 87.5%;
-}
-.ant-col-push-21 {
- left: 87.5%;
-}
-.ant-col-pull-21 {
- right: 87.5%;
-}
-.ant-col-offset-21 {
- margin-left: 87.5%;
-}
-.ant-col-order-21 {
- -webkit-box-ordinal-group: 22;
- -ms-flex-order: 21;
- order: 21;
-}
-.ant-col-20 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 83.33333333%;
- flex: 0 0 83.33333333%;
- max-width: 83.33333333%;
-}
-.ant-col-push-20 {
- left: 83.33333333%;
-}
-.ant-col-pull-20 {
- right: 83.33333333%;
-}
-.ant-col-offset-20 {
- margin-left: 83.33333333%;
-}
-.ant-col-order-20 {
- -webkit-box-ordinal-group: 21;
- -ms-flex-order: 20;
- order: 20;
-}
-.ant-col-19 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 79.16666667%;
- flex: 0 0 79.16666667%;
- max-width: 79.16666667%;
-}
-.ant-col-push-19 {
- left: 79.16666667%;
-}
-.ant-col-pull-19 {
- right: 79.16666667%;
-}
-.ant-col-offset-19 {
- margin-left: 79.16666667%;
-}
-.ant-col-order-19 {
- -webkit-box-ordinal-group: 20;
- -ms-flex-order: 19;
- order: 19;
-}
-.ant-col-18 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 75%;
- flex: 0 0 75%;
- max-width: 75%;
-}
-.ant-col-push-18 {
- left: 75%;
-}
-.ant-col-pull-18 {
- right: 75%;
-}
-.ant-col-offset-18 {
- margin-left: 75%;
-}
-.ant-col-order-18 {
- -webkit-box-ordinal-group: 19;
- -ms-flex-order: 18;
- order: 18;
-}
-.ant-col-17 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 70.83333333%;
- flex: 0 0 70.83333333%;
- max-width: 70.83333333%;
-}
-.ant-col-push-17 {
- left: 70.83333333%;
-}
-.ant-col-pull-17 {
- right: 70.83333333%;
-}
-.ant-col-offset-17 {
- margin-left: 70.83333333%;
-}
-.ant-col-order-17 {
- -webkit-box-ordinal-group: 18;
- -ms-flex-order: 17;
- order: 17;
-}
-.ant-col-16 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 66.66666667%;
- flex: 0 0 66.66666667%;
- max-width: 66.66666667%;
-}
-.ant-col-push-16 {
- left: 66.66666667%;
-}
-.ant-col-pull-16 {
- right: 66.66666667%;
-}
-.ant-col-offset-16 {
- margin-left: 66.66666667%;
-}
-.ant-col-order-16 {
- -webkit-box-ordinal-group: 17;
- -ms-flex-order: 16;
- order: 16;
-}
-.ant-col-15 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 62.5%;
- flex: 0 0 62.5%;
- max-width: 62.5%;
-}
-.ant-col-push-15 {
- left: 62.5%;
-}
-.ant-col-pull-15 {
- right: 62.5%;
-}
-.ant-col-offset-15 {
- margin-left: 62.5%;
-}
-.ant-col-order-15 {
- -webkit-box-ordinal-group: 16;
- -ms-flex-order: 15;
- order: 15;
-}
-.ant-col-14 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 58.33333333%;
- flex: 0 0 58.33333333%;
- max-width: 58.33333333%;
-}
-.ant-col-push-14 {
- left: 58.33333333%;
-}
-.ant-col-pull-14 {
- right: 58.33333333%;
-}
-.ant-col-offset-14 {
- margin-left: 58.33333333%;
-}
-.ant-col-order-14 {
- -webkit-box-ordinal-group: 15;
- -ms-flex-order: 14;
- order: 14;
-}
-.ant-col-13 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 54.16666667%;
- flex: 0 0 54.16666667%;
- max-width: 54.16666667%;
-}
-.ant-col-push-13 {
- left: 54.16666667%;
-}
-.ant-col-pull-13 {
- right: 54.16666667%;
-}
-.ant-col-offset-13 {
- margin-left: 54.16666667%;
-}
-.ant-col-order-13 {
- -webkit-box-ordinal-group: 14;
- -ms-flex-order: 13;
- order: 13;
-}
-.ant-col-12 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 50%;
- flex: 0 0 50%;
- max-width: 50%;
-}
-.ant-col-push-12 {
- left: 50%;
-}
-.ant-col-pull-12 {
- right: 50%;
-}
-.ant-col-offset-12 {
- margin-left: 50%;
-}
-.ant-col-order-12 {
- -webkit-box-ordinal-group: 13;
- -ms-flex-order: 12;
- order: 12;
-}
-.ant-col-11 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 45.83333333%;
- flex: 0 0 45.83333333%;
- max-width: 45.83333333%;
-}
-.ant-col-push-11 {
- left: 45.83333333%;
-}
-.ant-col-pull-11 {
- right: 45.83333333%;
-}
-.ant-col-offset-11 {
- margin-left: 45.83333333%;
-}
-.ant-col-order-11 {
- -webkit-box-ordinal-group: 12;
- -ms-flex-order: 11;
- order: 11;
-}
-.ant-col-10 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 41.66666667%;
- flex: 0 0 41.66666667%;
- max-width: 41.66666667%;
-}
-.ant-col-push-10 {
- left: 41.66666667%;
-}
-.ant-col-pull-10 {
- right: 41.66666667%;
-}
-.ant-col-offset-10 {
- margin-left: 41.66666667%;
-}
-.ant-col-order-10 {
- -webkit-box-ordinal-group: 11;
- -ms-flex-order: 10;
- order: 10;
-}
-.ant-col-9 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 37.5%;
- flex: 0 0 37.5%;
- max-width: 37.5%;
-}
-.ant-col-push-9 {
- left: 37.5%;
-}
-.ant-col-pull-9 {
- right: 37.5%;
-}
-.ant-col-offset-9 {
- margin-left: 37.5%;
-}
-.ant-col-order-9 {
- -webkit-box-ordinal-group: 10;
- -ms-flex-order: 9;
- order: 9;
-}
-.ant-col-8 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 33.33333333%;
- flex: 0 0 33.33333333%;
- max-width: 33.33333333%;
-}
-.ant-col-push-8 {
- left: 33.33333333%;
-}
-.ant-col-pull-8 {
- right: 33.33333333%;
-}
-.ant-col-offset-8 {
- margin-left: 33.33333333%;
-}
-.ant-col-order-8 {
- -webkit-box-ordinal-group: 9;
- -ms-flex-order: 8;
- order: 8;
-}
-.ant-col-7 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 29.16666667%;
- flex: 0 0 29.16666667%;
- max-width: 29.16666667%;
-}
-.ant-col-push-7 {
- left: 29.16666667%;
-}
-.ant-col-pull-7 {
- right: 29.16666667%;
-}
-.ant-col-offset-7 {
- margin-left: 29.16666667%;
-}
-.ant-col-order-7 {
- -webkit-box-ordinal-group: 8;
- -ms-flex-order: 7;
- order: 7;
-}
-.ant-col-6 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 25%;
- flex: 0 0 25%;
- max-width: 25%;
-}
-.ant-col-push-6 {
- left: 25%;
-}
-.ant-col-pull-6 {
- right: 25%;
-}
-.ant-col-offset-6 {
- margin-left: 25%;
-}
-.ant-col-order-6 {
- -webkit-box-ordinal-group: 7;
- -ms-flex-order: 6;
- order: 6;
-}
-.ant-col-5 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 20.83333333%;
- flex: 0 0 20.83333333%;
- max-width: 20.83333333%;
-}
-.ant-col-push-5 {
- left: 20.83333333%;
-}
-.ant-col-pull-5 {
- right: 20.83333333%;
-}
-.ant-col-offset-5 {
- margin-left: 20.83333333%;
-}
-.ant-col-order-5 {
- -webkit-box-ordinal-group: 6;
- -ms-flex-order: 5;
- order: 5;
-}
-.ant-col-4 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 16.66666667%;
- flex: 0 0 16.66666667%;
- max-width: 16.66666667%;
-}
-.ant-col-push-4 {
- left: 16.66666667%;
-}
-.ant-col-pull-4 {
- right: 16.66666667%;
-}
-.ant-col-offset-4 {
- margin-left: 16.66666667%;
-}
-.ant-col-order-4 {
- -webkit-box-ordinal-group: 5;
- -ms-flex-order: 4;
- order: 4;
-}
-.ant-col-3 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 12.5%;
- flex: 0 0 12.5%;
- max-width: 12.5%;
-}
-.ant-col-push-3 {
- left: 12.5%;
-}
-.ant-col-pull-3 {
- right: 12.5%;
-}
-.ant-col-offset-3 {
- margin-left: 12.5%;
-}
-.ant-col-order-3 {
- -webkit-box-ordinal-group: 4;
- -ms-flex-order: 3;
- order: 3;
-}
-.ant-col-2 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 8.33333333%;
- flex: 0 0 8.33333333%;
- max-width: 8.33333333%;
-}
-.ant-col-push-2 {
- left: 8.33333333%;
-}
-.ant-col-pull-2 {
- right: 8.33333333%;
-}
-.ant-col-offset-2 {
- margin-left: 8.33333333%;
-}
-.ant-col-order-2 {
- -webkit-box-ordinal-group: 3;
- -ms-flex-order: 2;
- order: 2;
-}
-.ant-col-1 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 4.16666667%;
- flex: 0 0 4.16666667%;
- max-width: 4.16666667%;
-}
-.ant-col-push-1 {
- left: 4.16666667%;
-}
-.ant-col-pull-1 {
- right: 4.16666667%;
-}
-.ant-col-offset-1 {
- margin-left: 4.16666667%;
-}
-.ant-col-order-1 {
- -webkit-box-ordinal-group: 2;
- -ms-flex-order: 1;
- order: 1;
-}
-.ant-col-0 {
- display: none;
-}
-.ant-col-push-0 {
- left: auto;
-}
-.ant-col-pull-0 {
- right: auto;
-}
-.ant-col-push-0 {
- left: auto;
-}
-.ant-col-pull-0 {
- right: auto;
-}
-.ant-col-offset-0 {
- margin-left: 0;
-}
-.ant-col-order-0 {
- -webkit-box-ordinal-group: 1;
- -ms-flex-order: 0;
- order: 0;
-}
-.ant-col-push-0.ant-col-rtl {
- right: auto;
-}
-.ant-col-pull-0.ant-col-rtl {
- left: auto;
-}
-.ant-col-push-0.ant-col-rtl {
- right: auto;
-}
-.ant-col-pull-0.ant-col-rtl {
- left: auto;
-}
-.ant-col-offset-0.ant-col-rtl {
- margin-right: 0;
-}
-.ant-col-push-1.ant-col-rtl {
- right: 4.16666667%;
- left: auto;
-}
-.ant-col-pull-1.ant-col-rtl {
- right: auto;
- left: 4.16666667%;
-}
-.ant-col-offset-1.ant-col-rtl {
- margin-right: 4.16666667%;
- margin-left: 0;
-}
-.ant-col-push-2.ant-col-rtl {
- right: 8.33333333%;
- left: auto;
-}
-.ant-col-pull-2.ant-col-rtl {
- right: auto;
- left: 8.33333333%;
-}
-.ant-col-offset-2.ant-col-rtl {
- margin-right: 8.33333333%;
- margin-left: 0;
-}
-.ant-col-push-3.ant-col-rtl {
- right: 12.5%;
- left: auto;
-}
-.ant-col-pull-3.ant-col-rtl {
- right: auto;
- left: 12.5%;
-}
-.ant-col-offset-3.ant-col-rtl {
- margin-right: 12.5%;
- margin-left: 0;
-}
-.ant-col-push-4.ant-col-rtl {
- right: 16.66666667%;
- left: auto;
-}
-.ant-col-pull-4.ant-col-rtl {
- right: auto;
- left: 16.66666667%;
-}
-.ant-col-offset-4.ant-col-rtl {
- margin-right: 16.66666667%;
- margin-left: 0;
-}
-.ant-col-push-5.ant-col-rtl {
- right: 20.83333333%;
- left: auto;
-}
-.ant-col-pull-5.ant-col-rtl {
- right: auto;
- left: 20.83333333%;
-}
-.ant-col-offset-5.ant-col-rtl {
- margin-right: 20.83333333%;
- margin-left: 0;
-}
-.ant-col-push-6.ant-col-rtl {
- right: 25%;
- left: auto;
-}
-.ant-col-pull-6.ant-col-rtl {
- right: auto;
- left: 25%;
-}
-.ant-col-offset-6.ant-col-rtl {
- margin-right: 25%;
- margin-left: 0;
-}
-.ant-col-push-7.ant-col-rtl {
- right: 29.16666667%;
- left: auto;
-}
-.ant-col-pull-7.ant-col-rtl {
- right: auto;
- left: 29.16666667%;
-}
-.ant-col-offset-7.ant-col-rtl {
- margin-right: 29.16666667%;
- margin-left: 0;
-}
-.ant-col-push-8.ant-col-rtl {
- right: 33.33333333%;
- left: auto;
-}
-.ant-col-pull-8.ant-col-rtl {
- right: auto;
- left: 33.33333333%;
-}
-.ant-col-offset-8.ant-col-rtl {
- margin-right: 33.33333333%;
- margin-left: 0;
-}
-.ant-col-push-9.ant-col-rtl {
- right: 37.5%;
- left: auto;
-}
-.ant-col-pull-9.ant-col-rtl {
- right: auto;
- left: 37.5%;
-}
-.ant-col-offset-9.ant-col-rtl {
- margin-right: 37.5%;
- margin-left: 0;
-}
-.ant-col-push-10.ant-col-rtl {
- right: 41.66666667%;
- left: auto;
-}
-.ant-col-pull-10.ant-col-rtl {
- right: auto;
- left: 41.66666667%;
-}
-.ant-col-offset-10.ant-col-rtl {
- margin-right: 41.66666667%;
- margin-left: 0;
-}
-.ant-col-push-11.ant-col-rtl {
- right: 45.83333333%;
- left: auto;
-}
-.ant-col-pull-11.ant-col-rtl {
- right: auto;
- left: 45.83333333%;
-}
-.ant-col-offset-11.ant-col-rtl {
- margin-right: 45.83333333%;
- margin-left: 0;
-}
-.ant-col-push-12.ant-col-rtl {
- right: 50%;
- left: auto;
-}
-.ant-col-pull-12.ant-col-rtl {
- right: auto;
- left: 50%;
-}
-.ant-col-offset-12.ant-col-rtl {
- margin-right: 50%;
- margin-left: 0;
-}
-.ant-col-push-13.ant-col-rtl {
- right: 54.16666667%;
- left: auto;
-}
-.ant-col-pull-13.ant-col-rtl {
- right: auto;
- left: 54.16666667%;
-}
-.ant-col-offset-13.ant-col-rtl {
- margin-right: 54.16666667%;
- margin-left: 0;
-}
-.ant-col-push-14.ant-col-rtl {
- right: 58.33333333%;
- left: auto;
-}
-.ant-col-pull-14.ant-col-rtl {
- right: auto;
- left: 58.33333333%;
-}
-.ant-col-offset-14.ant-col-rtl {
- margin-right: 58.33333333%;
- margin-left: 0;
-}
-.ant-col-push-15.ant-col-rtl {
- right: 62.5%;
- left: auto;
-}
-.ant-col-pull-15.ant-col-rtl {
- right: auto;
- left: 62.5%;
-}
-.ant-col-offset-15.ant-col-rtl {
- margin-right: 62.5%;
- margin-left: 0;
-}
-.ant-col-push-16.ant-col-rtl {
- right: 66.66666667%;
- left: auto;
-}
-.ant-col-pull-16.ant-col-rtl {
- right: auto;
- left: 66.66666667%;
-}
-.ant-col-offset-16.ant-col-rtl {
- margin-right: 66.66666667%;
- margin-left: 0;
-}
-.ant-col-push-17.ant-col-rtl {
- right: 70.83333333%;
- left: auto;
-}
-.ant-col-pull-17.ant-col-rtl {
- right: auto;
- left: 70.83333333%;
-}
-.ant-col-offset-17.ant-col-rtl {
- margin-right: 70.83333333%;
- margin-left: 0;
-}
-.ant-col-push-18.ant-col-rtl {
- right: 75%;
- left: auto;
-}
-.ant-col-pull-18.ant-col-rtl {
- right: auto;
- left: 75%;
-}
-.ant-col-offset-18.ant-col-rtl {
- margin-right: 75%;
- margin-left: 0;
-}
-.ant-col-push-19.ant-col-rtl {
- right: 79.16666667%;
- left: auto;
-}
-.ant-col-pull-19.ant-col-rtl {
- right: auto;
- left: 79.16666667%;
-}
-.ant-col-offset-19.ant-col-rtl {
- margin-right: 79.16666667%;
- margin-left: 0;
-}
-.ant-col-push-20.ant-col-rtl {
- right: 83.33333333%;
- left: auto;
-}
-.ant-col-pull-20.ant-col-rtl {
- right: auto;
- left: 83.33333333%;
-}
-.ant-col-offset-20.ant-col-rtl {
- margin-right: 83.33333333%;
- margin-left: 0;
-}
-.ant-col-push-21.ant-col-rtl {
- right: 87.5%;
- left: auto;
-}
-.ant-col-pull-21.ant-col-rtl {
- right: auto;
- left: 87.5%;
-}
-.ant-col-offset-21.ant-col-rtl {
- margin-right: 87.5%;
- margin-left: 0;
-}
-.ant-col-push-22.ant-col-rtl {
- right: 91.66666667%;
- left: auto;
-}
-.ant-col-pull-22.ant-col-rtl {
- right: auto;
- left: 91.66666667%;
-}
-.ant-col-offset-22.ant-col-rtl {
- margin-right: 91.66666667%;
- margin-left: 0;
-}
-.ant-col-push-23.ant-col-rtl {
- right: 95.83333333%;
- left: auto;
-}
-.ant-col-pull-23.ant-col-rtl {
- right: auto;
- left: 95.83333333%;
-}
-.ant-col-offset-23.ant-col-rtl {
- margin-right: 95.83333333%;
- margin-left: 0;
-}
-.ant-col-push-24.ant-col-rtl {
- right: 100%;
- left: auto;
-}
-.ant-col-pull-24.ant-col-rtl {
- right: auto;
- left: 100%;
-}
-.ant-col-offset-24.ant-col-rtl {
- margin-right: 100%;
- margin-left: 0;
-}
-.ant-col-xs-24 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 100%;
- flex: 0 0 100%;
- max-width: 100%;
-}
-.ant-col-xs-push-24 {
- left: 100%;
-}
-.ant-col-xs-pull-24 {
- right: 100%;
-}
-.ant-col-xs-offset-24 {
- margin-left: 100%;
-}
-.ant-col-xs-order-24 {
- -webkit-box-ordinal-group: 25;
- -ms-flex-order: 24;
- order: 24;
-}
-.ant-col-xs-23 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 95.83333333%;
- flex: 0 0 95.83333333%;
- max-width: 95.83333333%;
-}
-.ant-col-xs-push-23 {
- left: 95.83333333%;
-}
-.ant-col-xs-pull-23 {
- right: 95.83333333%;
-}
-.ant-col-xs-offset-23 {
- margin-left: 95.83333333%;
-}
-.ant-col-xs-order-23 {
- -webkit-box-ordinal-group: 24;
- -ms-flex-order: 23;
- order: 23;
-}
-.ant-col-xs-22 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 91.66666667%;
- flex: 0 0 91.66666667%;
- max-width: 91.66666667%;
-}
-.ant-col-xs-push-22 {
- left: 91.66666667%;
-}
-.ant-col-xs-pull-22 {
- right: 91.66666667%;
-}
-.ant-col-xs-offset-22 {
- margin-left: 91.66666667%;
-}
-.ant-col-xs-order-22 {
- -webkit-box-ordinal-group: 23;
- -ms-flex-order: 22;
- order: 22;
-}
-.ant-col-xs-21 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 87.5%;
- flex: 0 0 87.5%;
- max-width: 87.5%;
-}
-.ant-col-xs-push-21 {
- left: 87.5%;
-}
-.ant-col-xs-pull-21 {
- right: 87.5%;
-}
-.ant-col-xs-offset-21 {
- margin-left: 87.5%;
-}
-.ant-col-xs-order-21 {
- -webkit-box-ordinal-group: 22;
- -ms-flex-order: 21;
- order: 21;
-}
-.ant-col-xs-20 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 83.33333333%;
- flex: 0 0 83.33333333%;
- max-width: 83.33333333%;
-}
-.ant-col-xs-push-20 {
- left: 83.33333333%;
-}
-.ant-col-xs-pull-20 {
- right: 83.33333333%;
-}
-.ant-col-xs-offset-20 {
- margin-left: 83.33333333%;
-}
-.ant-col-xs-order-20 {
- -webkit-box-ordinal-group: 21;
- -ms-flex-order: 20;
- order: 20;
-}
-.ant-col-xs-19 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 79.16666667%;
- flex: 0 0 79.16666667%;
- max-width: 79.16666667%;
-}
-.ant-col-xs-push-19 {
- left: 79.16666667%;
-}
-.ant-col-xs-pull-19 {
- right: 79.16666667%;
-}
-.ant-col-xs-offset-19 {
- margin-left: 79.16666667%;
-}
-.ant-col-xs-order-19 {
- -webkit-box-ordinal-group: 20;
- -ms-flex-order: 19;
- order: 19;
-}
-.ant-col-xs-18 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 75%;
- flex: 0 0 75%;
- max-width: 75%;
-}
-.ant-col-xs-push-18 {
- left: 75%;
-}
-.ant-col-xs-pull-18 {
- right: 75%;
-}
-.ant-col-xs-offset-18 {
- margin-left: 75%;
-}
-.ant-col-xs-order-18 {
- -webkit-box-ordinal-group: 19;
- -ms-flex-order: 18;
- order: 18;
-}
-.ant-col-xs-17 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 70.83333333%;
- flex: 0 0 70.83333333%;
- max-width: 70.83333333%;
-}
-.ant-col-xs-push-17 {
- left: 70.83333333%;
-}
-.ant-col-xs-pull-17 {
- right: 70.83333333%;
-}
-.ant-col-xs-offset-17 {
- margin-left: 70.83333333%;
-}
-.ant-col-xs-order-17 {
- -webkit-box-ordinal-group: 18;
- -ms-flex-order: 17;
- order: 17;
-}
-.ant-col-xs-16 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 66.66666667%;
- flex: 0 0 66.66666667%;
- max-width: 66.66666667%;
-}
-.ant-col-xs-push-16 {
- left: 66.66666667%;
-}
-.ant-col-xs-pull-16 {
- right: 66.66666667%;
-}
-.ant-col-xs-offset-16 {
- margin-left: 66.66666667%;
-}
-.ant-col-xs-order-16 {
- -webkit-box-ordinal-group: 17;
- -ms-flex-order: 16;
- order: 16;
-}
-.ant-col-xs-15 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 62.5%;
- flex: 0 0 62.5%;
- max-width: 62.5%;
-}
-.ant-col-xs-push-15 {
- left: 62.5%;
-}
-.ant-col-xs-pull-15 {
- right: 62.5%;
-}
-.ant-col-xs-offset-15 {
- margin-left: 62.5%;
-}
-.ant-col-xs-order-15 {
- -webkit-box-ordinal-group: 16;
- -ms-flex-order: 15;
- order: 15;
-}
-.ant-col-xs-14 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 58.33333333%;
- flex: 0 0 58.33333333%;
- max-width: 58.33333333%;
-}
-.ant-col-xs-push-14 {
- left: 58.33333333%;
-}
-.ant-col-xs-pull-14 {
- right: 58.33333333%;
-}
-.ant-col-xs-offset-14 {
- margin-left: 58.33333333%;
-}
-.ant-col-xs-order-14 {
- -webkit-box-ordinal-group: 15;
- -ms-flex-order: 14;
- order: 14;
-}
-.ant-col-xs-13 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 54.16666667%;
- flex: 0 0 54.16666667%;
- max-width: 54.16666667%;
-}
-.ant-col-xs-push-13 {
- left: 54.16666667%;
-}
-.ant-col-xs-pull-13 {
- right: 54.16666667%;
-}
-.ant-col-xs-offset-13 {
- margin-left: 54.16666667%;
-}
-.ant-col-xs-order-13 {
- -webkit-box-ordinal-group: 14;
- -ms-flex-order: 13;
- order: 13;
-}
-.ant-col-xs-12 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 50%;
- flex: 0 0 50%;
- max-width: 50%;
-}
-.ant-col-xs-push-12 {
- left: 50%;
-}
-.ant-col-xs-pull-12 {
- right: 50%;
-}
-.ant-col-xs-offset-12 {
- margin-left: 50%;
-}
-.ant-col-xs-order-12 {
- -webkit-box-ordinal-group: 13;
- -ms-flex-order: 12;
- order: 12;
-}
-.ant-col-xs-11 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 45.83333333%;
- flex: 0 0 45.83333333%;
- max-width: 45.83333333%;
-}
-.ant-col-xs-push-11 {
- left: 45.83333333%;
-}
-.ant-col-xs-pull-11 {
- right: 45.83333333%;
-}
-.ant-col-xs-offset-11 {
- margin-left: 45.83333333%;
-}
-.ant-col-xs-order-11 {
- -webkit-box-ordinal-group: 12;
- -ms-flex-order: 11;
- order: 11;
-}
-.ant-col-xs-10 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 41.66666667%;
- flex: 0 0 41.66666667%;
- max-width: 41.66666667%;
-}
-.ant-col-xs-push-10 {
- left: 41.66666667%;
-}
-.ant-col-xs-pull-10 {
- right: 41.66666667%;
-}
-.ant-col-xs-offset-10 {
- margin-left: 41.66666667%;
-}
-.ant-col-xs-order-10 {
- -webkit-box-ordinal-group: 11;
- -ms-flex-order: 10;
- order: 10;
-}
-.ant-col-xs-9 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 37.5%;
- flex: 0 0 37.5%;
- max-width: 37.5%;
-}
-.ant-col-xs-push-9 {
- left: 37.5%;
-}
-.ant-col-xs-pull-9 {
- right: 37.5%;
-}
-.ant-col-xs-offset-9 {
- margin-left: 37.5%;
-}
-.ant-col-xs-order-9 {
- -webkit-box-ordinal-group: 10;
- -ms-flex-order: 9;
- order: 9;
-}
-.ant-col-xs-8 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 33.33333333%;
- flex: 0 0 33.33333333%;
- max-width: 33.33333333%;
-}
-.ant-col-xs-push-8 {
- left: 33.33333333%;
-}
-.ant-col-xs-pull-8 {
- right: 33.33333333%;
-}
-.ant-col-xs-offset-8 {
- margin-left: 33.33333333%;
-}
-.ant-col-xs-order-8 {
- -webkit-box-ordinal-group: 9;
- -ms-flex-order: 8;
- order: 8;
-}
-.ant-col-xs-7 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 29.16666667%;
- flex: 0 0 29.16666667%;
- max-width: 29.16666667%;
-}
-.ant-col-xs-push-7 {
- left: 29.16666667%;
-}
-.ant-col-xs-pull-7 {
- right: 29.16666667%;
-}
-.ant-col-xs-offset-7 {
- margin-left: 29.16666667%;
-}
-.ant-col-xs-order-7 {
- -webkit-box-ordinal-group: 8;
- -ms-flex-order: 7;
- order: 7;
-}
-.ant-col-xs-6 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 25%;
- flex: 0 0 25%;
- max-width: 25%;
-}
-.ant-col-xs-push-6 {
- left: 25%;
-}
-.ant-col-xs-pull-6 {
- right: 25%;
-}
-.ant-col-xs-offset-6 {
- margin-left: 25%;
-}
-.ant-col-xs-order-6 {
- -webkit-box-ordinal-group: 7;
- -ms-flex-order: 6;
- order: 6;
-}
-.ant-col-xs-5 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 20.83333333%;
- flex: 0 0 20.83333333%;
- max-width: 20.83333333%;
-}
-.ant-col-xs-push-5 {
- left: 20.83333333%;
-}
-.ant-col-xs-pull-5 {
- right: 20.83333333%;
-}
-.ant-col-xs-offset-5 {
- margin-left: 20.83333333%;
-}
-.ant-col-xs-order-5 {
- -webkit-box-ordinal-group: 6;
- -ms-flex-order: 5;
- order: 5;
-}
-.ant-col-xs-4 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 16.66666667%;
- flex: 0 0 16.66666667%;
- max-width: 16.66666667%;
-}
-.ant-col-xs-push-4 {
- left: 16.66666667%;
-}
-.ant-col-xs-pull-4 {
- right: 16.66666667%;
-}
-.ant-col-xs-offset-4 {
- margin-left: 16.66666667%;
-}
-.ant-col-xs-order-4 {
- -webkit-box-ordinal-group: 5;
- -ms-flex-order: 4;
- order: 4;
-}
-.ant-col-xs-3 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 12.5%;
- flex: 0 0 12.5%;
- max-width: 12.5%;
-}
-.ant-col-xs-push-3 {
- left: 12.5%;
-}
-.ant-col-xs-pull-3 {
- right: 12.5%;
-}
-.ant-col-xs-offset-3 {
- margin-left: 12.5%;
-}
-.ant-col-xs-order-3 {
- -webkit-box-ordinal-group: 4;
- -ms-flex-order: 3;
- order: 3;
-}
-.ant-col-xs-2 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 8.33333333%;
- flex: 0 0 8.33333333%;
- max-width: 8.33333333%;
-}
-.ant-col-xs-push-2 {
- left: 8.33333333%;
-}
-.ant-col-xs-pull-2 {
- right: 8.33333333%;
-}
-.ant-col-xs-offset-2 {
- margin-left: 8.33333333%;
-}
-.ant-col-xs-order-2 {
- -webkit-box-ordinal-group: 3;
- -ms-flex-order: 2;
- order: 2;
-}
-.ant-col-xs-1 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 4.16666667%;
- flex: 0 0 4.16666667%;
- max-width: 4.16666667%;
-}
-.ant-col-xs-push-1 {
- left: 4.16666667%;
-}
-.ant-col-xs-pull-1 {
- right: 4.16666667%;
-}
-.ant-col-xs-offset-1 {
- margin-left: 4.16666667%;
-}
-.ant-col-xs-order-1 {
- -webkit-box-ordinal-group: 2;
- -ms-flex-order: 1;
- order: 1;
-}
-.ant-col-xs-0 {
- display: none;
-}
-.ant-col-push-0 {
- left: auto;
-}
-.ant-col-pull-0 {
- right: auto;
-}
-.ant-col-xs-push-0 {
- left: auto;
-}
-.ant-col-xs-pull-0 {
- right: auto;
-}
-.ant-col-xs-offset-0 {
- margin-left: 0;
-}
-.ant-col-xs-order-0 {
- -webkit-box-ordinal-group: 1;
- -ms-flex-order: 0;
- order: 0;
-}
-.ant-col-push-0.ant-col-rtl {
- right: auto;
-}
-.ant-col-pull-0.ant-col-rtl {
- left: auto;
-}
-.ant-col-xs-push-0.ant-col-rtl {
- right: auto;
-}
-.ant-col-xs-pull-0.ant-col-rtl {
- left: auto;
-}
-.ant-col-xs-offset-0.ant-col-rtl {
- margin-right: 0;
-}
-.ant-col-xs-push-1.ant-col-rtl {
- right: 4.16666667%;
- left: auto;
-}
-.ant-col-xs-pull-1.ant-col-rtl {
- right: auto;
- left: 4.16666667%;
-}
-.ant-col-xs-offset-1.ant-col-rtl {
- margin-right: 4.16666667%;
- margin-left: 0;
-}
-.ant-col-xs-push-2.ant-col-rtl {
- right: 8.33333333%;
- left: auto;
-}
-.ant-col-xs-pull-2.ant-col-rtl {
- right: auto;
- left: 8.33333333%;
-}
-.ant-col-xs-offset-2.ant-col-rtl {
- margin-right: 8.33333333%;
- margin-left: 0;
-}
-.ant-col-xs-push-3.ant-col-rtl {
- right: 12.5%;
- left: auto;
-}
-.ant-col-xs-pull-3.ant-col-rtl {
- right: auto;
- left: 12.5%;
-}
-.ant-col-xs-offset-3.ant-col-rtl {
- margin-right: 12.5%;
- margin-left: 0;
-}
-.ant-col-xs-push-4.ant-col-rtl {
- right: 16.66666667%;
- left: auto;
-}
-.ant-col-xs-pull-4.ant-col-rtl {
- right: auto;
- left: 16.66666667%;
-}
-.ant-col-xs-offset-4.ant-col-rtl {
- margin-right: 16.66666667%;
- margin-left: 0;
-}
-.ant-col-xs-push-5.ant-col-rtl {
- right: 20.83333333%;
- left: auto;
-}
-.ant-col-xs-pull-5.ant-col-rtl {
- right: auto;
- left: 20.83333333%;
-}
-.ant-col-xs-offset-5.ant-col-rtl {
- margin-right: 20.83333333%;
- margin-left: 0;
-}
-.ant-col-xs-push-6.ant-col-rtl {
- right: 25%;
- left: auto;
-}
-.ant-col-xs-pull-6.ant-col-rtl {
- right: auto;
- left: 25%;
-}
-.ant-col-xs-offset-6.ant-col-rtl {
- margin-right: 25%;
- margin-left: 0;
-}
-.ant-col-xs-push-7.ant-col-rtl {
- right: 29.16666667%;
- left: auto;
-}
-.ant-col-xs-pull-7.ant-col-rtl {
- right: auto;
- left: 29.16666667%;
-}
-.ant-col-xs-offset-7.ant-col-rtl {
- margin-right: 29.16666667%;
- margin-left: 0;
-}
-.ant-col-xs-push-8.ant-col-rtl {
- right: 33.33333333%;
- left: auto;
-}
-.ant-col-xs-pull-8.ant-col-rtl {
- right: auto;
- left: 33.33333333%;
-}
-.ant-col-xs-offset-8.ant-col-rtl {
- margin-right: 33.33333333%;
- margin-left: 0;
-}
-.ant-col-xs-push-9.ant-col-rtl {
- right: 37.5%;
- left: auto;
-}
-.ant-col-xs-pull-9.ant-col-rtl {
- right: auto;
- left: 37.5%;
-}
-.ant-col-xs-offset-9.ant-col-rtl {
- margin-right: 37.5%;
- margin-left: 0;
-}
-.ant-col-xs-push-10.ant-col-rtl {
- right: 41.66666667%;
- left: auto;
-}
-.ant-col-xs-pull-10.ant-col-rtl {
- right: auto;
- left: 41.66666667%;
-}
-.ant-col-xs-offset-10.ant-col-rtl {
- margin-right: 41.66666667%;
- margin-left: 0;
-}
-.ant-col-xs-push-11.ant-col-rtl {
- right: 45.83333333%;
- left: auto;
-}
-.ant-col-xs-pull-11.ant-col-rtl {
- right: auto;
- left: 45.83333333%;
-}
-.ant-col-xs-offset-11.ant-col-rtl {
- margin-right: 45.83333333%;
- margin-left: 0;
-}
-.ant-col-xs-push-12.ant-col-rtl {
- right: 50%;
- left: auto;
-}
-.ant-col-xs-pull-12.ant-col-rtl {
- right: auto;
- left: 50%;
-}
-.ant-col-xs-offset-12.ant-col-rtl {
- margin-right: 50%;
- margin-left: 0;
-}
-.ant-col-xs-push-13.ant-col-rtl {
- right: 54.16666667%;
- left: auto;
-}
-.ant-col-xs-pull-13.ant-col-rtl {
- right: auto;
- left: 54.16666667%;
-}
-.ant-col-xs-offset-13.ant-col-rtl {
- margin-right: 54.16666667%;
- margin-left: 0;
-}
-.ant-col-xs-push-14.ant-col-rtl {
- right: 58.33333333%;
- left: auto;
-}
-.ant-col-xs-pull-14.ant-col-rtl {
- right: auto;
- left: 58.33333333%;
-}
-.ant-col-xs-offset-14.ant-col-rtl {
- margin-right: 58.33333333%;
- margin-left: 0;
-}
-.ant-col-xs-push-15.ant-col-rtl {
- right: 62.5%;
- left: auto;
-}
-.ant-col-xs-pull-15.ant-col-rtl {
- right: auto;
- left: 62.5%;
-}
-.ant-col-xs-offset-15.ant-col-rtl {
- margin-right: 62.5%;
- margin-left: 0;
-}
-.ant-col-xs-push-16.ant-col-rtl {
- right: 66.66666667%;
- left: auto;
-}
-.ant-col-xs-pull-16.ant-col-rtl {
- right: auto;
- left: 66.66666667%;
-}
-.ant-col-xs-offset-16.ant-col-rtl {
- margin-right: 66.66666667%;
- margin-left: 0;
-}
-.ant-col-xs-push-17.ant-col-rtl {
- right: 70.83333333%;
- left: auto;
-}
-.ant-col-xs-pull-17.ant-col-rtl {
- right: auto;
- left: 70.83333333%;
-}
-.ant-col-xs-offset-17.ant-col-rtl {
- margin-right: 70.83333333%;
- margin-left: 0;
-}
-.ant-col-xs-push-18.ant-col-rtl {
- right: 75%;
- left: auto;
-}
-.ant-col-xs-pull-18.ant-col-rtl {
- right: auto;
- left: 75%;
-}
-.ant-col-xs-offset-18.ant-col-rtl {
- margin-right: 75%;
- margin-left: 0;
-}
-.ant-col-xs-push-19.ant-col-rtl {
- right: 79.16666667%;
- left: auto;
-}
-.ant-col-xs-pull-19.ant-col-rtl {
- right: auto;
- left: 79.16666667%;
-}
-.ant-col-xs-offset-19.ant-col-rtl {
- margin-right: 79.16666667%;
- margin-left: 0;
-}
-.ant-col-xs-push-20.ant-col-rtl {
- right: 83.33333333%;
- left: auto;
-}
-.ant-col-xs-pull-20.ant-col-rtl {
- right: auto;
- left: 83.33333333%;
-}
-.ant-col-xs-offset-20.ant-col-rtl {
- margin-right: 83.33333333%;
- margin-left: 0;
-}
-.ant-col-xs-push-21.ant-col-rtl {
- right: 87.5%;
- left: auto;
-}
-.ant-col-xs-pull-21.ant-col-rtl {
- right: auto;
- left: 87.5%;
-}
-.ant-col-xs-offset-21.ant-col-rtl {
- margin-right: 87.5%;
- margin-left: 0;
-}
-.ant-col-xs-push-22.ant-col-rtl {
- right: 91.66666667%;
- left: auto;
-}
-.ant-col-xs-pull-22.ant-col-rtl {
- right: auto;
- left: 91.66666667%;
-}
-.ant-col-xs-offset-22.ant-col-rtl {
- margin-right: 91.66666667%;
- margin-left: 0;
-}
-.ant-col-xs-push-23.ant-col-rtl {
- right: 95.83333333%;
- left: auto;
-}
-.ant-col-xs-pull-23.ant-col-rtl {
- right: auto;
- left: 95.83333333%;
-}
-.ant-col-xs-offset-23.ant-col-rtl {
- margin-right: 95.83333333%;
- margin-left: 0;
-}
-.ant-col-xs-push-24.ant-col-rtl {
- right: 100%;
- left: auto;
-}
-.ant-col-xs-pull-24.ant-col-rtl {
- right: auto;
- left: 100%;
-}
-.ant-col-xs-offset-24.ant-col-rtl {
- margin-right: 100%;
- margin-left: 0;
-}
-@media (min-width: 576px) {
- .ant-col-sm-24 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 100%;
- flex: 0 0 100%;
- max-width: 100%;
- }
- .ant-col-sm-push-24 {
- left: 100%;
- }
- .ant-col-sm-pull-24 {
- right: 100%;
- }
- .ant-col-sm-offset-24 {
- margin-left: 100%;
- }
- .ant-col-sm-order-24 {
- -webkit-box-ordinal-group: 25;
- -ms-flex-order: 24;
- order: 24;
- }
- .ant-col-sm-23 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 95.83333333%;
- flex: 0 0 95.83333333%;
- max-width: 95.83333333%;
- }
- .ant-col-sm-push-23 {
- left: 95.83333333%;
- }
- .ant-col-sm-pull-23 {
- right: 95.83333333%;
- }
- .ant-col-sm-offset-23 {
- margin-left: 95.83333333%;
- }
- .ant-col-sm-order-23 {
- -webkit-box-ordinal-group: 24;
- -ms-flex-order: 23;
- order: 23;
- }
- .ant-col-sm-22 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 91.66666667%;
- flex: 0 0 91.66666667%;
- max-width: 91.66666667%;
- }
- .ant-col-sm-push-22 {
- left: 91.66666667%;
- }
- .ant-col-sm-pull-22 {
- right: 91.66666667%;
- }
- .ant-col-sm-offset-22 {
- margin-left: 91.66666667%;
- }
- .ant-col-sm-order-22 {
- -webkit-box-ordinal-group: 23;
- -ms-flex-order: 22;
- order: 22;
- }
- .ant-col-sm-21 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 87.5%;
- flex: 0 0 87.5%;
- max-width: 87.5%;
- }
- .ant-col-sm-push-21 {
- left: 87.5%;
- }
- .ant-col-sm-pull-21 {
- right: 87.5%;
- }
- .ant-col-sm-offset-21 {
- margin-left: 87.5%;
- }
- .ant-col-sm-order-21 {
- -webkit-box-ordinal-group: 22;
- -ms-flex-order: 21;
- order: 21;
- }
- .ant-col-sm-20 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 83.33333333%;
- flex: 0 0 83.33333333%;
- max-width: 83.33333333%;
- }
- .ant-col-sm-push-20 {
- left: 83.33333333%;
- }
- .ant-col-sm-pull-20 {
- right: 83.33333333%;
- }
- .ant-col-sm-offset-20 {
- margin-left: 83.33333333%;
- }
- .ant-col-sm-order-20 {
- -webkit-box-ordinal-group: 21;
- -ms-flex-order: 20;
- order: 20;
- }
- .ant-col-sm-19 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 79.16666667%;
- flex: 0 0 79.16666667%;
- max-width: 79.16666667%;
- }
- .ant-col-sm-push-19 {
- left: 79.16666667%;
- }
- .ant-col-sm-pull-19 {
- right: 79.16666667%;
- }
- .ant-col-sm-offset-19 {
- margin-left: 79.16666667%;
- }
- .ant-col-sm-order-19 {
- -webkit-box-ordinal-group: 20;
- -ms-flex-order: 19;
- order: 19;
- }
- .ant-col-sm-18 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 75%;
- flex: 0 0 75%;
- max-width: 75%;
- }
- .ant-col-sm-push-18 {
- left: 75%;
- }
- .ant-col-sm-pull-18 {
- right: 75%;
- }
- .ant-col-sm-offset-18 {
- margin-left: 75%;
- }
- .ant-col-sm-order-18 {
- -webkit-box-ordinal-group: 19;
- -ms-flex-order: 18;
- order: 18;
- }
- .ant-col-sm-17 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 70.83333333%;
- flex: 0 0 70.83333333%;
- max-width: 70.83333333%;
- }
- .ant-col-sm-push-17 {
- left: 70.83333333%;
- }
- .ant-col-sm-pull-17 {
- right: 70.83333333%;
- }
- .ant-col-sm-offset-17 {
- margin-left: 70.83333333%;
- }
- .ant-col-sm-order-17 {
- -webkit-box-ordinal-group: 18;
- -ms-flex-order: 17;
- order: 17;
- }
- .ant-col-sm-16 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 66.66666667%;
- flex: 0 0 66.66666667%;
- max-width: 66.66666667%;
- }
- .ant-col-sm-push-16 {
- left: 66.66666667%;
- }
- .ant-col-sm-pull-16 {
- right: 66.66666667%;
- }
- .ant-col-sm-offset-16 {
- margin-left: 66.66666667%;
- }
- .ant-col-sm-order-16 {
- -webkit-box-ordinal-group: 17;
- -ms-flex-order: 16;
- order: 16;
- }
- .ant-col-sm-15 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 62.5%;
- flex: 0 0 62.5%;
- max-width: 62.5%;
- }
- .ant-col-sm-push-15 {
- left: 62.5%;
- }
- .ant-col-sm-pull-15 {
- right: 62.5%;
- }
- .ant-col-sm-offset-15 {
- margin-left: 62.5%;
- }
- .ant-col-sm-order-15 {
- -webkit-box-ordinal-group: 16;
- -ms-flex-order: 15;
- order: 15;
- }
- .ant-col-sm-14 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 58.33333333%;
- flex: 0 0 58.33333333%;
- max-width: 58.33333333%;
- }
- .ant-col-sm-push-14 {
- left: 58.33333333%;
- }
- .ant-col-sm-pull-14 {
- right: 58.33333333%;
- }
- .ant-col-sm-offset-14 {
- margin-left: 58.33333333%;
- }
- .ant-col-sm-order-14 {
- -webkit-box-ordinal-group: 15;
- -ms-flex-order: 14;
- order: 14;
- }
- .ant-col-sm-13 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 54.16666667%;
- flex: 0 0 54.16666667%;
- max-width: 54.16666667%;
- }
- .ant-col-sm-push-13 {
- left: 54.16666667%;
- }
- .ant-col-sm-pull-13 {
- right: 54.16666667%;
- }
- .ant-col-sm-offset-13 {
- margin-left: 54.16666667%;
- }
- .ant-col-sm-order-13 {
- -webkit-box-ordinal-group: 14;
- -ms-flex-order: 13;
- order: 13;
- }
- .ant-col-sm-12 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 50%;
- flex: 0 0 50%;
- max-width: 50%;
- }
- .ant-col-sm-push-12 {
- left: 50%;
- }
- .ant-col-sm-pull-12 {
- right: 50%;
- }
- .ant-col-sm-offset-12 {
- margin-left: 50%;
- }
- .ant-col-sm-order-12 {
- -webkit-box-ordinal-group: 13;
- -ms-flex-order: 12;
- order: 12;
- }
- .ant-col-sm-11 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 45.83333333%;
- flex: 0 0 45.83333333%;
- max-width: 45.83333333%;
- }
- .ant-col-sm-push-11 {
- left: 45.83333333%;
- }
- .ant-col-sm-pull-11 {
- right: 45.83333333%;
- }
- .ant-col-sm-offset-11 {
- margin-left: 45.83333333%;
- }
- .ant-col-sm-order-11 {
- -webkit-box-ordinal-group: 12;
- -ms-flex-order: 11;
- order: 11;
- }
- .ant-col-sm-10 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 41.66666667%;
- flex: 0 0 41.66666667%;
- max-width: 41.66666667%;
- }
- .ant-col-sm-push-10 {
- left: 41.66666667%;
- }
- .ant-col-sm-pull-10 {
- right: 41.66666667%;
- }
- .ant-col-sm-offset-10 {
- margin-left: 41.66666667%;
- }
- .ant-col-sm-order-10 {
- -webkit-box-ordinal-group: 11;
- -ms-flex-order: 10;
- order: 10;
- }
- .ant-col-sm-9 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 37.5%;
- flex: 0 0 37.5%;
- max-width: 37.5%;
- }
- .ant-col-sm-push-9 {
- left: 37.5%;
- }
- .ant-col-sm-pull-9 {
- right: 37.5%;
- }
- .ant-col-sm-offset-9 {
- margin-left: 37.5%;
- }
- .ant-col-sm-order-9 {
- -webkit-box-ordinal-group: 10;
- -ms-flex-order: 9;
- order: 9;
- }
- .ant-col-sm-8 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 33.33333333%;
- flex: 0 0 33.33333333%;
- max-width: 33.33333333%;
- }
- .ant-col-sm-push-8 {
- left: 33.33333333%;
- }
- .ant-col-sm-pull-8 {
- right: 33.33333333%;
- }
- .ant-col-sm-offset-8 {
- margin-left: 33.33333333%;
- }
- .ant-col-sm-order-8 {
- -webkit-box-ordinal-group: 9;
- -ms-flex-order: 8;
- order: 8;
- }
- .ant-col-sm-7 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 29.16666667%;
- flex: 0 0 29.16666667%;
- max-width: 29.16666667%;
- }
- .ant-col-sm-push-7 {
- left: 29.16666667%;
- }
- .ant-col-sm-pull-7 {
- right: 29.16666667%;
- }
- .ant-col-sm-offset-7 {
- margin-left: 29.16666667%;
- }
- .ant-col-sm-order-7 {
- -webkit-box-ordinal-group: 8;
- -ms-flex-order: 7;
- order: 7;
- }
- .ant-col-sm-6 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 25%;
- flex: 0 0 25%;
- max-width: 25%;
- }
- .ant-col-sm-push-6 {
- left: 25%;
- }
- .ant-col-sm-pull-6 {
- right: 25%;
- }
- .ant-col-sm-offset-6 {
- margin-left: 25%;
- }
- .ant-col-sm-order-6 {
- -webkit-box-ordinal-group: 7;
- -ms-flex-order: 6;
- order: 6;
- }
- .ant-col-sm-5 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 20.83333333%;
- flex: 0 0 20.83333333%;
- max-width: 20.83333333%;
- }
- .ant-col-sm-push-5 {
- left: 20.83333333%;
- }
- .ant-col-sm-pull-5 {
- right: 20.83333333%;
- }
- .ant-col-sm-offset-5 {
- margin-left: 20.83333333%;
- }
- .ant-col-sm-order-5 {
- -webkit-box-ordinal-group: 6;
- -ms-flex-order: 5;
- order: 5;
- }
- .ant-col-sm-4 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 16.66666667%;
- flex: 0 0 16.66666667%;
- max-width: 16.66666667%;
- }
- .ant-col-sm-push-4 {
- left: 16.66666667%;
- }
- .ant-col-sm-pull-4 {
- right: 16.66666667%;
- }
- .ant-col-sm-offset-4 {
- margin-left: 16.66666667%;
- }
- .ant-col-sm-order-4 {
- -webkit-box-ordinal-group: 5;
- -ms-flex-order: 4;
- order: 4;
- }
- .ant-col-sm-3 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 12.5%;
- flex: 0 0 12.5%;
- max-width: 12.5%;
- }
- .ant-col-sm-push-3 {
- left: 12.5%;
- }
- .ant-col-sm-pull-3 {
- right: 12.5%;
- }
- .ant-col-sm-offset-3 {
- margin-left: 12.5%;
- }
- .ant-col-sm-order-3 {
- -webkit-box-ordinal-group: 4;
- -ms-flex-order: 3;
- order: 3;
- }
- .ant-col-sm-2 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 8.33333333%;
- flex: 0 0 8.33333333%;
- max-width: 8.33333333%;
- }
- .ant-col-sm-push-2 {
- left: 8.33333333%;
- }
- .ant-col-sm-pull-2 {
- right: 8.33333333%;
- }
- .ant-col-sm-offset-2 {
- margin-left: 8.33333333%;
- }
- .ant-col-sm-order-2 {
- -webkit-box-ordinal-group: 3;
- -ms-flex-order: 2;
- order: 2;
- }
- .ant-col-sm-1 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 4.16666667%;
- flex: 0 0 4.16666667%;
- max-width: 4.16666667%;
- }
- .ant-col-sm-push-1 {
- left: 4.16666667%;
- }
- .ant-col-sm-pull-1 {
- right: 4.16666667%;
- }
- .ant-col-sm-offset-1 {
- margin-left: 4.16666667%;
- }
- .ant-col-sm-order-1 {
- -webkit-box-ordinal-group: 2;
- -ms-flex-order: 1;
- order: 1;
- }
- .ant-col-sm-0 {
- display: none;
- }
- .ant-col-push-0 {
- left: auto;
- }
- .ant-col-pull-0 {
- right: auto;
- }
- .ant-col-sm-push-0 {
- left: auto;
- }
- .ant-col-sm-pull-0 {
- right: auto;
- }
- .ant-col-sm-offset-0 {
- margin-left: 0;
- }
- .ant-col-sm-order-0 {
- -webkit-box-ordinal-group: 1;
- -ms-flex-order: 0;
- order: 0;
- }
- .ant-col-push-0.ant-col-rtl {
- right: auto;
- }
- .ant-col-pull-0.ant-col-rtl {
- left: auto;
- }
- .ant-col-sm-push-0.ant-col-rtl {
- right: auto;
- }
- .ant-col-sm-pull-0.ant-col-rtl {
- left: auto;
- }
- .ant-col-sm-offset-0.ant-col-rtl {
- margin-right: 0;
- }
- .ant-col-sm-push-1.ant-col-rtl {
- right: 4.16666667%;
- left: auto;
- }
- .ant-col-sm-pull-1.ant-col-rtl {
- right: auto;
- left: 4.16666667%;
- }
- .ant-col-sm-offset-1.ant-col-rtl {
- margin-right: 4.16666667%;
- margin-left: 0;
- }
- .ant-col-sm-push-2.ant-col-rtl {
- right: 8.33333333%;
- left: auto;
- }
- .ant-col-sm-pull-2.ant-col-rtl {
- right: auto;
- left: 8.33333333%;
- }
- .ant-col-sm-offset-2.ant-col-rtl {
- margin-right: 8.33333333%;
- margin-left: 0;
- }
- .ant-col-sm-push-3.ant-col-rtl {
- right: 12.5%;
- left: auto;
- }
- .ant-col-sm-pull-3.ant-col-rtl {
- right: auto;
- left: 12.5%;
- }
- .ant-col-sm-offset-3.ant-col-rtl {
- margin-right: 12.5%;
- margin-left: 0;
- }
- .ant-col-sm-push-4.ant-col-rtl {
- right: 16.66666667%;
- left: auto;
- }
- .ant-col-sm-pull-4.ant-col-rtl {
- right: auto;
- left: 16.66666667%;
- }
- .ant-col-sm-offset-4.ant-col-rtl {
- margin-right: 16.66666667%;
- margin-left: 0;
- }
- .ant-col-sm-push-5.ant-col-rtl {
- right: 20.83333333%;
- left: auto;
- }
- .ant-col-sm-pull-5.ant-col-rtl {
- right: auto;
- left: 20.83333333%;
- }
- .ant-col-sm-offset-5.ant-col-rtl {
- margin-right: 20.83333333%;
- margin-left: 0;
- }
- .ant-col-sm-push-6.ant-col-rtl {
- right: 25%;
- left: auto;
- }
- .ant-col-sm-pull-6.ant-col-rtl {
- right: auto;
- left: 25%;
- }
- .ant-col-sm-offset-6.ant-col-rtl {
- margin-right: 25%;
- margin-left: 0;
- }
- .ant-col-sm-push-7.ant-col-rtl {
- right: 29.16666667%;
- left: auto;
- }
- .ant-col-sm-pull-7.ant-col-rtl {
- right: auto;
- left: 29.16666667%;
- }
- .ant-col-sm-offset-7.ant-col-rtl {
- margin-right: 29.16666667%;
- margin-left: 0;
- }
- .ant-col-sm-push-8.ant-col-rtl {
- right: 33.33333333%;
- left: auto;
- }
- .ant-col-sm-pull-8.ant-col-rtl {
- right: auto;
- left: 33.33333333%;
- }
- .ant-col-sm-offset-8.ant-col-rtl {
- margin-right: 33.33333333%;
- margin-left: 0;
- }
- .ant-col-sm-push-9.ant-col-rtl {
- right: 37.5%;
- left: auto;
- }
- .ant-col-sm-pull-9.ant-col-rtl {
- right: auto;
- left: 37.5%;
- }
- .ant-col-sm-offset-9.ant-col-rtl {
- margin-right: 37.5%;
- margin-left: 0;
- }
- .ant-col-sm-push-10.ant-col-rtl {
- right: 41.66666667%;
- left: auto;
- }
- .ant-col-sm-pull-10.ant-col-rtl {
- right: auto;
- left: 41.66666667%;
- }
- .ant-col-sm-offset-10.ant-col-rtl {
- margin-right: 41.66666667%;
- margin-left: 0;
- }
- .ant-col-sm-push-11.ant-col-rtl {
- right: 45.83333333%;
- left: auto;
- }
- .ant-col-sm-pull-11.ant-col-rtl {
- right: auto;
- left: 45.83333333%;
- }
- .ant-col-sm-offset-11.ant-col-rtl {
- margin-right: 45.83333333%;
- margin-left: 0;
- }
- .ant-col-sm-push-12.ant-col-rtl {
- right: 50%;
- left: auto;
- }
- .ant-col-sm-pull-12.ant-col-rtl {
- right: auto;
- left: 50%;
- }
- .ant-col-sm-offset-12.ant-col-rtl {
- margin-right: 50%;
- margin-left: 0;
- }
- .ant-col-sm-push-13.ant-col-rtl {
- right: 54.16666667%;
- left: auto;
- }
- .ant-col-sm-pull-13.ant-col-rtl {
- right: auto;
- left: 54.16666667%;
- }
- .ant-col-sm-offset-13.ant-col-rtl {
- margin-right: 54.16666667%;
- margin-left: 0;
- }
- .ant-col-sm-push-14.ant-col-rtl {
- right: 58.33333333%;
- left: auto;
- }
- .ant-col-sm-pull-14.ant-col-rtl {
- right: auto;
- left: 58.33333333%;
- }
- .ant-col-sm-offset-14.ant-col-rtl {
- margin-right: 58.33333333%;
- margin-left: 0;
- }
- .ant-col-sm-push-15.ant-col-rtl {
- right: 62.5%;
- left: auto;
- }
- .ant-col-sm-pull-15.ant-col-rtl {
- right: auto;
- left: 62.5%;
- }
- .ant-col-sm-offset-15.ant-col-rtl {
- margin-right: 62.5%;
- margin-left: 0;
- }
- .ant-col-sm-push-16.ant-col-rtl {
- right: 66.66666667%;
- left: auto;
- }
- .ant-col-sm-pull-16.ant-col-rtl {
- right: auto;
- left: 66.66666667%;
- }
- .ant-col-sm-offset-16.ant-col-rtl {
- margin-right: 66.66666667%;
- margin-left: 0;
- }
- .ant-col-sm-push-17.ant-col-rtl {
- right: 70.83333333%;
- left: auto;
- }
- .ant-col-sm-pull-17.ant-col-rtl {
- right: auto;
- left: 70.83333333%;
- }
- .ant-col-sm-offset-17.ant-col-rtl {
- margin-right: 70.83333333%;
- margin-left: 0;
- }
- .ant-col-sm-push-18.ant-col-rtl {
- right: 75%;
- left: auto;
- }
- .ant-col-sm-pull-18.ant-col-rtl {
- right: auto;
- left: 75%;
- }
- .ant-col-sm-offset-18.ant-col-rtl {
- margin-right: 75%;
- margin-left: 0;
- }
- .ant-col-sm-push-19.ant-col-rtl {
- right: 79.16666667%;
- left: auto;
- }
- .ant-col-sm-pull-19.ant-col-rtl {
- right: auto;
- left: 79.16666667%;
- }
- .ant-col-sm-offset-19.ant-col-rtl {
- margin-right: 79.16666667%;
- margin-left: 0;
- }
- .ant-col-sm-push-20.ant-col-rtl {
- right: 83.33333333%;
- left: auto;
- }
- .ant-col-sm-pull-20.ant-col-rtl {
- right: auto;
- left: 83.33333333%;
- }
- .ant-col-sm-offset-20.ant-col-rtl {
- margin-right: 83.33333333%;
- margin-left: 0;
- }
- .ant-col-sm-push-21.ant-col-rtl {
- right: 87.5%;
- left: auto;
- }
- .ant-col-sm-pull-21.ant-col-rtl {
- right: auto;
- left: 87.5%;
- }
- .ant-col-sm-offset-21.ant-col-rtl {
- margin-right: 87.5%;
- margin-left: 0;
- }
- .ant-col-sm-push-22.ant-col-rtl {
- right: 91.66666667%;
- left: auto;
- }
- .ant-col-sm-pull-22.ant-col-rtl {
- right: auto;
- left: 91.66666667%;
- }
- .ant-col-sm-offset-22.ant-col-rtl {
- margin-right: 91.66666667%;
- margin-left: 0;
- }
- .ant-col-sm-push-23.ant-col-rtl {
- right: 95.83333333%;
- left: auto;
- }
- .ant-col-sm-pull-23.ant-col-rtl {
- right: auto;
- left: 95.83333333%;
- }
- .ant-col-sm-offset-23.ant-col-rtl {
- margin-right: 95.83333333%;
- margin-left: 0;
- }
- .ant-col-sm-push-24.ant-col-rtl {
- right: 100%;
- left: auto;
- }
- .ant-col-sm-pull-24.ant-col-rtl {
- right: auto;
- left: 100%;
- }
- .ant-col-sm-offset-24.ant-col-rtl {
- margin-right: 100%;
- margin-left: 0;
- }
-}
-@media (min-width: 768px) {
- .ant-col-md-24 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 100%;
- flex: 0 0 100%;
- max-width: 100%;
- }
- .ant-col-md-push-24 {
- left: 100%;
- }
- .ant-col-md-pull-24 {
- right: 100%;
- }
- .ant-col-md-offset-24 {
- margin-left: 100%;
- }
- .ant-col-md-order-24 {
- -webkit-box-ordinal-group: 25;
- -ms-flex-order: 24;
- order: 24;
- }
- .ant-col-md-23 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 95.83333333%;
- flex: 0 0 95.83333333%;
- max-width: 95.83333333%;
- }
- .ant-col-md-push-23 {
- left: 95.83333333%;
- }
- .ant-col-md-pull-23 {
- right: 95.83333333%;
- }
- .ant-col-md-offset-23 {
- margin-left: 95.83333333%;
- }
- .ant-col-md-order-23 {
- -webkit-box-ordinal-group: 24;
- -ms-flex-order: 23;
- order: 23;
- }
- .ant-col-md-22 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 91.66666667%;
- flex: 0 0 91.66666667%;
- max-width: 91.66666667%;
- }
- .ant-col-md-push-22 {
- left: 91.66666667%;
- }
- .ant-col-md-pull-22 {
- right: 91.66666667%;
- }
- .ant-col-md-offset-22 {
- margin-left: 91.66666667%;
- }
- .ant-col-md-order-22 {
- -webkit-box-ordinal-group: 23;
- -ms-flex-order: 22;
- order: 22;
- }
- .ant-col-md-21 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 87.5%;
- flex: 0 0 87.5%;
- max-width: 87.5%;
- }
- .ant-col-md-push-21 {
- left: 87.5%;
- }
- .ant-col-md-pull-21 {
- right: 87.5%;
- }
- .ant-col-md-offset-21 {
- margin-left: 87.5%;
- }
- .ant-col-md-order-21 {
- -webkit-box-ordinal-group: 22;
- -ms-flex-order: 21;
- order: 21;
- }
- .ant-col-md-20 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 83.33333333%;
- flex: 0 0 83.33333333%;
- max-width: 83.33333333%;
- }
- .ant-col-md-push-20 {
- left: 83.33333333%;
- }
- .ant-col-md-pull-20 {
- right: 83.33333333%;
- }
- .ant-col-md-offset-20 {
- margin-left: 83.33333333%;
- }
- .ant-col-md-order-20 {
- -webkit-box-ordinal-group: 21;
- -ms-flex-order: 20;
- order: 20;
- }
- .ant-col-md-19 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 79.16666667%;
- flex: 0 0 79.16666667%;
- max-width: 79.16666667%;
- }
- .ant-col-md-push-19 {
- left: 79.16666667%;
- }
- .ant-col-md-pull-19 {
- right: 79.16666667%;
- }
- .ant-col-md-offset-19 {
- margin-left: 79.16666667%;
- }
- .ant-col-md-order-19 {
- -webkit-box-ordinal-group: 20;
- -ms-flex-order: 19;
- order: 19;
- }
- .ant-col-md-18 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 75%;
- flex: 0 0 75%;
- max-width: 75%;
- }
- .ant-col-md-push-18 {
- left: 75%;
- }
- .ant-col-md-pull-18 {
- right: 75%;
- }
- .ant-col-md-offset-18 {
- margin-left: 75%;
- }
- .ant-col-md-order-18 {
- -webkit-box-ordinal-group: 19;
- -ms-flex-order: 18;
- order: 18;
- }
- .ant-col-md-17 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 70.83333333%;
- flex: 0 0 70.83333333%;
- max-width: 70.83333333%;
- }
- .ant-col-md-push-17 {
- left: 70.83333333%;
- }
- .ant-col-md-pull-17 {
- right: 70.83333333%;
- }
- .ant-col-md-offset-17 {
- margin-left: 70.83333333%;
- }
- .ant-col-md-order-17 {
- -webkit-box-ordinal-group: 18;
- -ms-flex-order: 17;
- order: 17;
- }
- .ant-col-md-16 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 66.66666667%;
- flex: 0 0 66.66666667%;
- max-width: 66.66666667%;
- }
- .ant-col-md-push-16 {
- left: 66.66666667%;
- }
- .ant-col-md-pull-16 {
- right: 66.66666667%;
- }
- .ant-col-md-offset-16 {
- margin-left: 66.66666667%;
- }
- .ant-col-md-order-16 {
- -webkit-box-ordinal-group: 17;
- -ms-flex-order: 16;
- order: 16;
- }
- .ant-col-md-15 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 62.5%;
- flex: 0 0 62.5%;
- max-width: 62.5%;
- }
- .ant-col-md-push-15 {
- left: 62.5%;
- }
- .ant-col-md-pull-15 {
- right: 62.5%;
- }
- .ant-col-md-offset-15 {
- margin-left: 62.5%;
- }
- .ant-col-md-order-15 {
- -webkit-box-ordinal-group: 16;
- -ms-flex-order: 15;
- order: 15;
- }
- .ant-col-md-14 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 58.33333333%;
- flex: 0 0 58.33333333%;
- max-width: 58.33333333%;
- }
- .ant-col-md-push-14 {
- left: 58.33333333%;
- }
- .ant-col-md-pull-14 {
- right: 58.33333333%;
- }
- .ant-col-md-offset-14 {
- margin-left: 58.33333333%;
- }
- .ant-col-md-order-14 {
- -webkit-box-ordinal-group: 15;
- -ms-flex-order: 14;
- order: 14;
- }
- .ant-col-md-13 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 54.16666667%;
- flex: 0 0 54.16666667%;
- max-width: 54.16666667%;
- }
- .ant-col-md-push-13 {
- left: 54.16666667%;
- }
- .ant-col-md-pull-13 {
- right: 54.16666667%;
- }
- .ant-col-md-offset-13 {
- margin-left: 54.16666667%;
- }
- .ant-col-md-order-13 {
- -webkit-box-ordinal-group: 14;
- -ms-flex-order: 13;
- order: 13;
- }
- .ant-col-md-12 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 50%;
- flex: 0 0 50%;
- max-width: 50%;
- }
- .ant-col-md-push-12 {
- left: 50%;
- }
- .ant-col-md-pull-12 {
- right: 50%;
- }
- .ant-col-md-offset-12 {
- margin-left: 50%;
- }
- .ant-col-md-order-12 {
- -webkit-box-ordinal-group: 13;
- -ms-flex-order: 12;
- order: 12;
- }
- .ant-col-md-11 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 45.83333333%;
- flex: 0 0 45.83333333%;
- max-width: 45.83333333%;
- }
- .ant-col-md-push-11 {
- left: 45.83333333%;
- }
- .ant-col-md-pull-11 {
- right: 45.83333333%;
- }
- .ant-col-md-offset-11 {
- margin-left: 45.83333333%;
- }
- .ant-col-md-order-11 {
- -webkit-box-ordinal-group: 12;
- -ms-flex-order: 11;
- order: 11;
- }
- .ant-col-md-10 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 41.66666667%;
- flex: 0 0 41.66666667%;
- max-width: 41.66666667%;
- }
- .ant-col-md-push-10 {
- left: 41.66666667%;
- }
- .ant-col-md-pull-10 {
- right: 41.66666667%;
- }
- .ant-col-md-offset-10 {
- margin-left: 41.66666667%;
- }
- .ant-col-md-order-10 {
- -webkit-box-ordinal-group: 11;
- -ms-flex-order: 10;
- order: 10;
- }
- .ant-col-md-9 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 37.5%;
- flex: 0 0 37.5%;
- max-width: 37.5%;
- }
- .ant-col-md-push-9 {
- left: 37.5%;
- }
- .ant-col-md-pull-9 {
- right: 37.5%;
- }
- .ant-col-md-offset-9 {
- margin-left: 37.5%;
- }
- .ant-col-md-order-9 {
- -webkit-box-ordinal-group: 10;
- -ms-flex-order: 9;
- order: 9;
- }
- .ant-col-md-8 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 33.33333333%;
- flex: 0 0 33.33333333%;
- max-width: 33.33333333%;
- }
- .ant-col-md-push-8 {
- left: 33.33333333%;
- }
- .ant-col-md-pull-8 {
- right: 33.33333333%;
- }
- .ant-col-md-offset-8 {
- margin-left: 33.33333333%;
- }
- .ant-col-md-order-8 {
- -webkit-box-ordinal-group: 9;
- -ms-flex-order: 8;
- order: 8;
- }
- .ant-col-md-7 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 29.16666667%;
- flex: 0 0 29.16666667%;
- max-width: 29.16666667%;
- }
- .ant-col-md-push-7 {
- left: 29.16666667%;
- }
- .ant-col-md-pull-7 {
- right: 29.16666667%;
- }
- .ant-col-md-offset-7 {
- margin-left: 29.16666667%;
- }
- .ant-col-md-order-7 {
- -webkit-box-ordinal-group: 8;
- -ms-flex-order: 7;
- order: 7;
- }
- .ant-col-md-6 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 25%;
- flex: 0 0 25%;
- max-width: 25%;
- }
- .ant-col-md-push-6 {
- left: 25%;
- }
- .ant-col-md-pull-6 {
- right: 25%;
- }
- .ant-col-md-offset-6 {
- margin-left: 25%;
- }
- .ant-col-md-order-6 {
- -webkit-box-ordinal-group: 7;
- -ms-flex-order: 6;
- order: 6;
- }
- .ant-col-md-5 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 20.83333333%;
- flex: 0 0 20.83333333%;
- max-width: 20.83333333%;
- }
- .ant-col-md-push-5 {
- left: 20.83333333%;
- }
- .ant-col-md-pull-5 {
- right: 20.83333333%;
- }
- .ant-col-md-offset-5 {
- margin-left: 20.83333333%;
- }
- .ant-col-md-order-5 {
- -webkit-box-ordinal-group: 6;
- -ms-flex-order: 5;
- order: 5;
- }
- .ant-col-md-4 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 16.66666667%;
- flex: 0 0 16.66666667%;
- max-width: 16.66666667%;
- }
- .ant-col-md-push-4 {
- left: 16.66666667%;
- }
- .ant-col-md-pull-4 {
- right: 16.66666667%;
- }
- .ant-col-md-offset-4 {
- margin-left: 16.66666667%;
- }
- .ant-col-md-order-4 {
- -webkit-box-ordinal-group: 5;
- -ms-flex-order: 4;
- order: 4;
- }
- .ant-col-md-3 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 12.5%;
- flex: 0 0 12.5%;
- max-width: 12.5%;
- }
- .ant-col-md-push-3 {
- left: 12.5%;
- }
- .ant-col-md-pull-3 {
- right: 12.5%;
- }
- .ant-col-md-offset-3 {
- margin-left: 12.5%;
- }
- .ant-col-md-order-3 {
- -webkit-box-ordinal-group: 4;
- -ms-flex-order: 3;
- order: 3;
- }
- .ant-col-md-2 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 8.33333333%;
- flex: 0 0 8.33333333%;
- max-width: 8.33333333%;
- }
- .ant-col-md-push-2 {
- left: 8.33333333%;
- }
- .ant-col-md-pull-2 {
- right: 8.33333333%;
- }
- .ant-col-md-offset-2 {
- margin-left: 8.33333333%;
- }
- .ant-col-md-order-2 {
- -webkit-box-ordinal-group: 3;
- -ms-flex-order: 2;
- order: 2;
- }
- .ant-col-md-1 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 4.16666667%;
- flex: 0 0 4.16666667%;
- max-width: 4.16666667%;
- }
- .ant-col-md-push-1 {
- left: 4.16666667%;
- }
- .ant-col-md-pull-1 {
- right: 4.16666667%;
- }
- .ant-col-md-offset-1 {
- margin-left: 4.16666667%;
- }
- .ant-col-md-order-1 {
- -webkit-box-ordinal-group: 2;
- -ms-flex-order: 1;
- order: 1;
- }
- .ant-col-md-0 {
- display: none;
- }
- .ant-col-push-0 {
- left: auto;
- }
- .ant-col-pull-0 {
- right: auto;
- }
- .ant-col-md-push-0 {
- left: auto;
- }
- .ant-col-md-pull-0 {
- right: auto;
- }
- .ant-col-md-offset-0 {
- margin-left: 0;
- }
- .ant-col-md-order-0 {
- -webkit-box-ordinal-group: 1;
- -ms-flex-order: 0;
- order: 0;
- }
- .ant-col-push-0.ant-col-rtl {
- right: auto;
- }
- .ant-col-pull-0.ant-col-rtl {
- left: auto;
- }
- .ant-col-md-push-0.ant-col-rtl {
- right: auto;
- }
- .ant-col-md-pull-0.ant-col-rtl {
- left: auto;
- }
- .ant-col-md-offset-0.ant-col-rtl {
- margin-right: 0;
- }
- .ant-col-md-push-1.ant-col-rtl {
- right: 4.16666667%;
- left: auto;
- }
- .ant-col-md-pull-1.ant-col-rtl {
- right: auto;
- left: 4.16666667%;
- }
- .ant-col-md-offset-1.ant-col-rtl {
- margin-right: 4.16666667%;
- margin-left: 0;
- }
- .ant-col-md-push-2.ant-col-rtl {
- right: 8.33333333%;
- left: auto;
- }
- .ant-col-md-pull-2.ant-col-rtl {
- right: auto;
- left: 8.33333333%;
- }
- .ant-col-md-offset-2.ant-col-rtl {
- margin-right: 8.33333333%;
- margin-left: 0;
- }
- .ant-col-md-push-3.ant-col-rtl {
- right: 12.5%;
- left: auto;
- }
- .ant-col-md-pull-3.ant-col-rtl {
- right: auto;
- left: 12.5%;
- }
- .ant-col-md-offset-3.ant-col-rtl {
- margin-right: 12.5%;
- margin-left: 0;
- }
- .ant-col-md-push-4.ant-col-rtl {
- right: 16.66666667%;
- left: auto;
- }
- .ant-col-md-pull-4.ant-col-rtl {
- right: auto;
- left: 16.66666667%;
- }
- .ant-col-md-offset-4.ant-col-rtl {
- margin-right: 16.66666667%;
- margin-left: 0;
- }
- .ant-col-md-push-5.ant-col-rtl {
- right: 20.83333333%;
- left: auto;
- }
- .ant-col-md-pull-5.ant-col-rtl {
- right: auto;
- left: 20.83333333%;
- }
- .ant-col-md-offset-5.ant-col-rtl {
- margin-right: 20.83333333%;
- margin-left: 0;
- }
- .ant-col-md-push-6.ant-col-rtl {
- right: 25%;
- left: auto;
- }
- .ant-col-md-pull-6.ant-col-rtl {
- right: auto;
- left: 25%;
- }
- .ant-col-md-offset-6.ant-col-rtl {
- margin-right: 25%;
- margin-left: 0;
- }
- .ant-col-md-push-7.ant-col-rtl {
- right: 29.16666667%;
- left: auto;
- }
- .ant-col-md-pull-7.ant-col-rtl {
- right: auto;
- left: 29.16666667%;
- }
- .ant-col-md-offset-7.ant-col-rtl {
- margin-right: 29.16666667%;
- margin-left: 0;
- }
- .ant-col-md-push-8.ant-col-rtl {
- right: 33.33333333%;
- left: auto;
- }
- .ant-col-md-pull-8.ant-col-rtl {
- right: auto;
- left: 33.33333333%;
- }
- .ant-col-md-offset-8.ant-col-rtl {
- margin-right: 33.33333333%;
- margin-left: 0;
- }
- .ant-col-md-push-9.ant-col-rtl {
- right: 37.5%;
- left: auto;
- }
- .ant-col-md-pull-9.ant-col-rtl {
- right: auto;
- left: 37.5%;
- }
- .ant-col-md-offset-9.ant-col-rtl {
- margin-right: 37.5%;
- margin-left: 0;
- }
- .ant-col-md-push-10.ant-col-rtl {
- right: 41.66666667%;
- left: auto;
- }
- .ant-col-md-pull-10.ant-col-rtl {
- right: auto;
- left: 41.66666667%;
- }
- .ant-col-md-offset-10.ant-col-rtl {
- margin-right: 41.66666667%;
- margin-left: 0;
- }
- .ant-col-md-push-11.ant-col-rtl {
- right: 45.83333333%;
- left: auto;
- }
- .ant-col-md-pull-11.ant-col-rtl {
- right: auto;
- left: 45.83333333%;
- }
- .ant-col-md-offset-11.ant-col-rtl {
- margin-right: 45.83333333%;
- margin-left: 0;
- }
- .ant-col-md-push-12.ant-col-rtl {
- right: 50%;
- left: auto;
- }
- .ant-col-md-pull-12.ant-col-rtl {
- right: auto;
- left: 50%;
- }
- .ant-col-md-offset-12.ant-col-rtl {
- margin-right: 50%;
- margin-left: 0;
- }
- .ant-col-md-push-13.ant-col-rtl {
- right: 54.16666667%;
- left: auto;
- }
- .ant-col-md-pull-13.ant-col-rtl {
- right: auto;
- left: 54.16666667%;
- }
- .ant-col-md-offset-13.ant-col-rtl {
- margin-right: 54.16666667%;
- margin-left: 0;
- }
- .ant-col-md-push-14.ant-col-rtl {
- right: 58.33333333%;
- left: auto;
- }
- .ant-col-md-pull-14.ant-col-rtl {
- right: auto;
- left: 58.33333333%;
- }
- .ant-col-md-offset-14.ant-col-rtl {
- margin-right: 58.33333333%;
- margin-left: 0;
- }
- .ant-col-md-push-15.ant-col-rtl {
- right: 62.5%;
- left: auto;
- }
- .ant-col-md-pull-15.ant-col-rtl {
- right: auto;
- left: 62.5%;
- }
- .ant-col-md-offset-15.ant-col-rtl {
- margin-right: 62.5%;
- margin-left: 0;
- }
- .ant-col-md-push-16.ant-col-rtl {
- right: 66.66666667%;
- left: auto;
- }
- .ant-col-md-pull-16.ant-col-rtl {
- right: auto;
- left: 66.66666667%;
- }
- .ant-col-md-offset-16.ant-col-rtl {
- margin-right: 66.66666667%;
- margin-left: 0;
- }
- .ant-col-md-push-17.ant-col-rtl {
- right: 70.83333333%;
- left: auto;
- }
- .ant-col-md-pull-17.ant-col-rtl {
- right: auto;
- left: 70.83333333%;
- }
- .ant-col-md-offset-17.ant-col-rtl {
- margin-right: 70.83333333%;
- margin-left: 0;
- }
- .ant-col-md-push-18.ant-col-rtl {
- right: 75%;
- left: auto;
- }
- .ant-col-md-pull-18.ant-col-rtl {
- right: auto;
- left: 75%;
- }
- .ant-col-md-offset-18.ant-col-rtl {
- margin-right: 75%;
- margin-left: 0;
- }
- .ant-col-md-push-19.ant-col-rtl {
- right: 79.16666667%;
- left: auto;
- }
- .ant-col-md-pull-19.ant-col-rtl {
- right: auto;
- left: 79.16666667%;
- }
- .ant-col-md-offset-19.ant-col-rtl {
- margin-right: 79.16666667%;
- margin-left: 0;
- }
- .ant-col-md-push-20.ant-col-rtl {
- right: 83.33333333%;
- left: auto;
- }
- .ant-col-md-pull-20.ant-col-rtl {
- right: auto;
- left: 83.33333333%;
- }
- .ant-col-md-offset-20.ant-col-rtl {
- margin-right: 83.33333333%;
- margin-left: 0;
- }
- .ant-col-md-push-21.ant-col-rtl {
- right: 87.5%;
- left: auto;
- }
- .ant-col-md-pull-21.ant-col-rtl {
- right: auto;
- left: 87.5%;
- }
- .ant-col-md-offset-21.ant-col-rtl {
- margin-right: 87.5%;
- margin-left: 0;
- }
- .ant-col-md-push-22.ant-col-rtl {
- right: 91.66666667%;
- left: auto;
- }
- .ant-col-md-pull-22.ant-col-rtl {
- right: auto;
- left: 91.66666667%;
- }
- .ant-col-md-offset-22.ant-col-rtl {
- margin-right: 91.66666667%;
- margin-left: 0;
- }
- .ant-col-md-push-23.ant-col-rtl {
- right: 95.83333333%;
- left: auto;
- }
- .ant-col-md-pull-23.ant-col-rtl {
- right: auto;
- left: 95.83333333%;
- }
- .ant-col-md-offset-23.ant-col-rtl {
- margin-right: 95.83333333%;
- margin-left: 0;
- }
- .ant-col-md-push-24.ant-col-rtl {
- right: 100%;
- left: auto;
- }
- .ant-col-md-pull-24.ant-col-rtl {
- right: auto;
- left: 100%;
- }
- .ant-col-md-offset-24.ant-col-rtl {
- margin-right: 100%;
- margin-left: 0;
- }
-}
-@media (min-width: 992px) {
- .ant-col-lg-24 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 100%;
- flex: 0 0 100%;
- max-width: 100%;
- }
- .ant-col-lg-push-24 {
- left: 100%;
- }
- .ant-col-lg-pull-24 {
- right: 100%;
- }
- .ant-col-lg-offset-24 {
- margin-left: 100%;
- }
- .ant-col-lg-order-24 {
- -webkit-box-ordinal-group: 25;
- -ms-flex-order: 24;
- order: 24;
- }
- .ant-col-lg-23 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 95.83333333%;
- flex: 0 0 95.83333333%;
- max-width: 95.83333333%;
- }
- .ant-col-lg-push-23 {
- left: 95.83333333%;
- }
- .ant-col-lg-pull-23 {
- right: 95.83333333%;
- }
- .ant-col-lg-offset-23 {
- margin-left: 95.83333333%;
- }
- .ant-col-lg-order-23 {
- -webkit-box-ordinal-group: 24;
- -ms-flex-order: 23;
- order: 23;
- }
- .ant-col-lg-22 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 91.66666667%;
- flex: 0 0 91.66666667%;
- max-width: 91.66666667%;
- }
- .ant-col-lg-push-22 {
- left: 91.66666667%;
- }
- .ant-col-lg-pull-22 {
- right: 91.66666667%;
- }
- .ant-col-lg-offset-22 {
- margin-left: 91.66666667%;
- }
- .ant-col-lg-order-22 {
- -webkit-box-ordinal-group: 23;
- -ms-flex-order: 22;
- order: 22;
- }
- .ant-col-lg-21 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 87.5%;
- flex: 0 0 87.5%;
- max-width: 87.5%;
- }
- .ant-col-lg-push-21 {
- left: 87.5%;
- }
- .ant-col-lg-pull-21 {
- right: 87.5%;
- }
- .ant-col-lg-offset-21 {
- margin-left: 87.5%;
- }
- .ant-col-lg-order-21 {
- -webkit-box-ordinal-group: 22;
- -ms-flex-order: 21;
- order: 21;
- }
- .ant-col-lg-20 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 83.33333333%;
- flex: 0 0 83.33333333%;
- max-width: 83.33333333%;
- }
- .ant-col-lg-push-20 {
- left: 83.33333333%;
- }
- .ant-col-lg-pull-20 {
- right: 83.33333333%;
- }
- .ant-col-lg-offset-20 {
- margin-left: 83.33333333%;
- }
- .ant-col-lg-order-20 {
- -webkit-box-ordinal-group: 21;
- -ms-flex-order: 20;
- order: 20;
- }
- .ant-col-lg-19 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 79.16666667%;
- flex: 0 0 79.16666667%;
- max-width: 79.16666667%;
- }
- .ant-col-lg-push-19 {
- left: 79.16666667%;
- }
- .ant-col-lg-pull-19 {
- right: 79.16666667%;
- }
- .ant-col-lg-offset-19 {
- margin-left: 79.16666667%;
- }
- .ant-col-lg-order-19 {
- -webkit-box-ordinal-group: 20;
- -ms-flex-order: 19;
- order: 19;
- }
- .ant-col-lg-18 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 75%;
- flex: 0 0 75%;
- max-width: 75%;
- }
- .ant-col-lg-push-18 {
- left: 75%;
- }
- .ant-col-lg-pull-18 {
- right: 75%;
- }
- .ant-col-lg-offset-18 {
- margin-left: 75%;
- }
- .ant-col-lg-order-18 {
- -webkit-box-ordinal-group: 19;
- -ms-flex-order: 18;
- order: 18;
- }
- .ant-col-lg-17 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 70.83333333%;
- flex: 0 0 70.83333333%;
- max-width: 70.83333333%;
- }
- .ant-col-lg-push-17 {
- left: 70.83333333%;
- }
- .ant-col-lg-pull-17 {
- right: 70.83333333%;
- }
- .ant-col-lg-offset-17 {
- margin-left: 70.83333333%;
- }
- .ant-col-lg-order-17 {
- -webkit-box-ordinal-group: 18;
- -ms-flex-order: 17;
- order: 17;
- }
- .ant-col-lg-16 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 66.66666667%;
- flex: 0 0 66.66666667%;
- max-width: 66.66666667%;
- }
- .ant-col-lg-push-16 {
- left: 66.66666667%;
- }
- .ant-col-lg-pull-16 {
- right: 66.66666667%;
- }
- .ant-col-lg-offset-16 {
- margin-left: 66.66666667%;
- }
- .ant-col-lg-order-16 {
- -webkit-box-ordinal-group: 17;
- -ms-flex-order: 16;
- order: 16;
- }
- .ant-col-lg-15 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 62.5%;
- flex: 0 0 62.5%;
- max-width: 62.5%;
- }
- .ant-col-lg-push-15 {
- left: 62.5%;
- }
- .ant-col-lg-pull-15 {
- right: 62.5%;
- }
- .ant-col-lg-offset-15 {
- margin-left: 62.5%;
- }
- .ant-col-lg-order-15 {
- -webkit-box-ordinal-group: 16;
- -ms-flex-order: 15;
- order: 15;
- }
- .ant-col-lg-14 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 58.33333333%;
- flex: 0 0 58.33333333%;
- max-width: 58.33333333%;
- }
- .ant-col-lg-push-14 {
- left: 58.33333333%;
- }
- .ant-col-lg-pull-14 {
- right: 58.33333333%;
- }
- .ant-col-lg-offset-14 {
- margin-left: 58.33333333%;
- }
- .ant-col-lg-order-14 {
- -webkit-box-ordinal-group: 15;
- -ms-flex-order: 14;
- order: 14;
- }
- .ant-col-lg-13 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 54.16666667%;
- flex: 0 0 54.16666667%;
- max-width: 54.16666667%;
- }
- .ant-col-lg-push-13 {
- left: 54.16666667%;
- }
- .ant-col-lg-pull-13 {
- right: 54.16666667%;
- }
- .ant-col-lg-offset-13 {
- margin-left: 54.16666667%;
- }
- .ant-col-lg-order-13 {
- -webkit-box-ordinal-group: 14;
- -ms-flex-order: 13;
- order: 13;
- }
- .ant-col-lg-12 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 50%;
- flex: 0 0 50%;
- max-width: 50%;
- }
- .ant-col-lg-push-12 {
- left: 50%;
- }
- .ant-col-lg-pull-12 {
- right: 50%;
- }
- .ant-col-lg-offset-12 {
- margin-left: 50%;
- }
- .ant-col-lg-order-12 {
- -webkit-box-ordinal-group: 13;
- -ms-flex-order: 12;
- order: 12;
- }
- .ant-col-lg-11 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 45.83333333%;
- flex: 0 0 45.83333333%;
- max-width: 45.83333333%;
- }
- .ant-col-lg-push-11 {
- left: 45.83333333%;
- }
- .ant-col-lg-pull-11 {
- right: 45.83333333%;
- }
- .ant-col-lg-offset-11 {
- margin-left: 45.83333333%;
- }
- .ant-col-lg-order-11 {
- -webkit-box-ordinal-group: 12;
- -ms-flex-order: 11;
- order: 11;
- }
- .ant-col-lg-10 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 41.66666667%;
- flex: 0 0 41.66666667%;
- max-width: 41.66666667%;
- }
- .ant-col-lg-push-10 {
- left: 41.66666667%;
- }
- .ant-col-lg-pull-10 {
- right: 41.66666667%;
- }
- .ant-col-lg-offset-10 {
- margin-left: 41.66666667%;
- }
- .ant-col-lg-order-10 {
- -webkit-box-ordinal-group: 11;
- -ms-flex-order: 10;
- order: 10;
- }
- .ant-col-lg-9 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 37.5%;
- flex: 0 0 37.5%;
- max-width: 37.5%;
- }
- .ant-col-lg-push-9 {
- left: 37.5%;
- }
- .ant-col-lg-pull-9 {
- right: 37.5%;
- }
- .ant-col-lg-offset-9 {
- margin-left: 37.5%;
- }
- .ant-col-lg-order-9 {
- -webkit-box-ordinal-group: 10;
- -ms-flex-order: 9;
- order: 9;
- }
- .ant-col-lg-8 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 33.33333333%;
- flex: 0 0 33.33333333%;
- max-width: 33.33333333%;
- }
- .ant-col-lg-push-8 {
- left: 33.33333333%;
- }
- .ant-col-lg-pull-8 {
- right: 33.33333333%;
- }
- .ant-col-lg-offset-8 {
- margin-left: 33.33333333%;
- }
- .ant-col-lg-order-8 {
- -webkit-box-ordinal-group: 9;
- -ms-flex-order: 8;
- order: 8;
- }
- .ant-col-lg-7 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 29.16666667%;
- flex: 0 0 29.16666667%;
- max-width: 29.16666667%;
- }
- .ant-col-lg-push-7 {
- left: 29.16666667%;
- }
- .ant-col-lg-pull-7 {
- right: 29.16666667%;
- }
- .ant-col-lg-offset-7 {
- margin-left: 29.16666667%;
- }
- .ant-col-lg-order-7 {
- -webkit-box-ordinal-group: 8;
- -ms-flex-order: 7;
- order: 7;
- }
- .ant-col-lg-6 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 25%;
- flex: 0 0 25%;
- max-width: 25%;
- }
- .ant-col-lg-push-6 {
- left: 25%;
- }
- .ant-col-lg-pull-6 {
- right: 25%;
- }
- .ant-col-lg-offset-6 {
- margin-left: 25%;
- }
- .ant-col-lg-order-6 {
- -webkit-box-ordinal-group: 7;
- -ms-flex-order: 6;
- order: 6;
- }
- .ant-col-lg-5 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 20.83333333%;
- flex: 0 0 20.83333333%;
- max-width: 20.83333333%;
- }
- .ant-col-lg-push-5 {
- left: 20.83333333%;
- }
- .ant-col-lg-pull-5 {
- right: 20.83333333%;
- }
- .ant-col-lg-offset-5 {
- margin-left: 20.83333333%;
- }
- .ant-col-lg-order-5 {
- -webkit-box-ordinal-group: 6;
- -ms-flex-order: 5;
- order: 5;
- }
- .ant-col-lg-4 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 16.66666667%;
- flex: 0 0 16.66666667%;
- max-width: 16.66666667%;
- }
- .ant-col-lg-push-4 {
- left: 16.66666667%;
- }
- .ant-col-lg-pull-4 {
- right: 16.66666667%;
- }
- .ant-col-lg-offset-4 {
- margin-left: 16.66666667%;
- }
- .ant-col-lg-order-4 {
- -webkit-box-ordinal-group: 5;
- -ms-flex-order: 4;
- order: 4;
- }
- .ant-col-lg-3 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 12.5%;
- flex: 0 0 12.5%;
- max-width: 12.5%;
- }
- .ant-col-lg-push-3 {
- left: 12.5%;
- }
- .ant-col-lg-pull-3 {
- right: 12.5%;
- }
- .ant-col-lg-offset-3 {
- margin-left: 12.5%;
- }
- .ant-col-lg-order-3 {
- -webkit-box-ordinal-group: 4;
- -ms-flex-order: 3;
- order: 3;
- }
- .ant-col-lg-2 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 8.33333333%;
- flex: 0 0 8.33333333%;
- max-width: 8.33333333%;
- }
- .ant-col-lg-push-2 {
- left: 8.33333333%;
- }
- .ant-col-lg-pull-2 {
- right: 8.33333333%;
- }
- .ant-col-lg-offset-2 {
- margin-left: 8.33333333%;
- }
- .ant-col-lg-order-2 {
- -webkit-box-ordinal-group: 3;
- -ms-flex-order: 2;
- order: 2;
- }
- .ant-col-lg-1 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 4.16666667%;
- flex: 0 0 4.16666667%;
- max-width: 4.16666667%;
- }
- .ant-col-lg-push-1 {
- left: 4.16666667%;
- }
- .ant-col-lg-pull-1 {
- right: 4.16666667%;
- }
- .ant-col-lg-offset-1 {
- margin-left: 4.16666667%;
- }
- .ant-col-lg-order-1 {
- -webkit-box-ordinal-group: 2;
- -ms-flex-order: 1;
- order: 1;
- }
- .ant-col-lg-0 {
- display: none;
- }
- .ant-col-push-0 {
- left: auto;
- }
- .ant-col-pull-0 {
- right: auto;
- }
- .ant-col-lg-push-0 {
- left: auto;
- }
- .ant-col-lg-pull-0 {
- right: auto;
- }
- .ant-col-lg-offset-0 {
- margin-left: 0;
- }
- .ant-col-lg-order-0 {
- -webkit-box-ordinal-group: 1;
- -ms-flex-order: 0;
- order: 0;
- }
- .ant-col-push-0.ant-col-rtl {
- right: auto;
- }
- .ant-col-pull-0.ant-col-rtl {
- left: auto;
- }
- .ant-col-lg-push-0.ant-col-rtl {
- right: auto;
- }
- .ant-col-lg-pull-0.ant-col-rtl {
- left: auto;
- }
- .ant-col-lg-offset-0.ant-col-rtl {
- margin-right: 0;
- }
- .ant-col-lg-push-1.ant-col-rtl {
- right: 4.16666667%;
- left: auto;
- }
- .ant-col-lg-pull-1.ant-col-rtl {
- right: auto;
- left: 4.16666667%;
- }
- .ant-col-lg-offset-1.ant-col-rtl {
- margin-right: 4.16666667%;
- margin-left: 0;
- }
- .ant-col-lg-push-2.ant-col-rtl {
- right: 8.33333333%;
- left: auto;
- }
- .ant-col-lg-pull-2.ant-col-rtl {
- right: auto;
- left: 8.33333333%;
- }
- .ant-col-lg-offset-2.ant-col-rtl {
- margin-right: 8.33333333%;
- margin-left: 0;
- }
- .ant-col-lg-push-3.ant-col-rtl {
- right: 12.5%;
- left: auto;
- }
- .ant-col-lg-pull-3.ant-col-rtl {
- right: auto;
- left: 12.5%;
- }
- .ant-col-lg-offset-3.ant-col-rtl {
- margin-right: 12.5%;
- margin-left: 0;
- }
- .ant-col-lg-push-4.ant-col-rtl {
- right: 16.66666667%;
- left: auto;
- }
- .ant-col-lg-pull-4.ant-col-rtl {
- right: auto;
- left: 16.66666667%;
- }
- .ant-col-lg-offset-4.ant-col-rtl {
- margin-right: 16.66666667%;
- margin-left: 0;
- }
- .ant-col-lg-push-5.ant-col-rtl {
- right: 20.83333333%;
- left: auto;
- }
- .ant-col-lg-pull-5.ant-col-rtl {
- right: auto;
- left: 20.83333333%;
- }
- .ant-col-lg-offset-5.ant-col-rtl {
- margin-right: 20.83333333%;
- margin-left: 0;
- }
- .ant-col-lg-push-6.ant-col-rtl {
- right: 25%;
- left: auto;
- }
- .ant-col-lg-pull-6.ant-col-rtl {
- right: auto;
- left: 25%;
- }
- .ant-col-lg-offset-6.ant-col-rtl {
- margin-right: 25%;
- margin-left: 0;
- }
- .ant-col-lg-push-7.ant-col-rtl {
- right: 29.16666667%;
- left: auto;
- }
- .ant-col-lg-pull-7.ant-col-rtl {
- right: auto;
- left: 29.16666667%;
- }
- .ant-col-lg-offset-7.ant-col-rtl {
- margin-right: 29.16666667%;
- margin-left: 0;
- }
- .ant-col-lg-push-8.ant-col-rtl {
- right: 33.33333333%;
- left: auto;
- }
- .ant-col-lg-pull-8.ant-col-rtl {
- right: auto;
- left: 33.33333333%;
- }
- .ant-col-lg-offset-8.ant-col-rtl {
- margin-right: 33.33333333%;
- margin-left: 0;
- }
- .ant-col-lg-push-9.ant-col-rtl {
- right: 37.5%;
- left: auto;
- }
- .ant-col-lg-pull-9.ant-col-rtl {
- right: auto;
- left: 37.5%;
- }
- .ant-col-lg-offset-9.ant-col-rtl {
- margin-right: 37.5%;
- margin-left: 0;
- }
- .ant-col-lg-push-10.ant-col-rtl {
- right: 41.66666667%;
- left: auto;
- }
- .ant-col-lg-pull-10.ant-col-rtl {
- right: auto;
- left: 41.66666667%;
- }
- .ant-col-lg-offset-10.ant-col-rtl {
- margin-right: 41.66666667%;
- margin-left: 0;
- }
- .ant-col-lg-push-11.ant-col-rtl {
- right: 45.83333333%;
- left: auto;
- }
- .ant-col-lg-pull-11.ant-col-rtl {
- right: auto;
- left: 45.83333333%;
- }
- .ant-col-lg-offset-11.ant-col-rtl {
- margin-right: 45.83333333%;
- margin-left: 0;
- }
- .ant-col-lg-push-12.ant-col-rtl {
- right: 50%;
- left: auto;
- }
- .ant-col-lg-pull-12.ant-col-rtl {
- right: auto;
- left: 50%;
- }
- .ant-col-lg-offset-12.ant-col-rtl {
- margin-right: 50%;
- margin-left: 0;
- }
- .ant-col-lg-push-13.ant-col-rtl {
- right: 54.16666667%;
- left: auto;
- }
- .ant-col-lg-pull-13.ant-col-rtl {
- right: auto;
- left: 54.16666667%;
- }
- .ant-col-lg-offset-13.ant-col-rtl {
- margin-right: 54.16666667%;
- margin-left: 0;
- }
- .ant-col-lg-push-14.ant-col-rtl {
- right: 58.33333333%;
- left: auto;
- }
- .ant-col-lg-pull-14.ant-col-rtl {
- right: auto;
- left: 58.33333333%;
- }
- .ant-col-lg-offset-14.ant-col-rtl {
- margin-right: 58.33333333%;
- margin-left: 0;
- }
- .ant-col-lg-push-15.ant-col-rtl {
- right: 62.5%;
- left: auto;
- }
- .ant-col-lg-pull-15.ant-col-rtl {
- right: auto;
- left: 62.5%;
- }
- .ant-col-lg-offset-15.ant-col-rtl {
- margin-right: 62.5%;
- margin-left: 0;
- }
- .ant-col-lg-push-16.ant-col-rtl {
- right: 66.66666667%;
- left: auto;
- }
- .ant-col-lg-pull-16.ant-col-rtl {
- right: auto;
- left: 66.66666667%;
- }
- .ant-col-lg-offset-16.ant-col-rtl {
- margin-right: 66.66666667%;
- margin-left: 0;
- }
- .ant-col-lg-push-17.ant-col-rtl {
- right: 70.83333333%;
- left: auto;
- }
- .ant-col-lg-pull-17.ant-col-rtl {
- right: auto;
- left: 70.83333333%;
- }
- .ant-col-lg-offset-17.ant-col-rtl {
- margin-right: 70.83333333%;
- margin-left: 0;
- }
- .ant-col-lg-push-18.ant-col-rtl {
- right: 75%;
- left: auto;
- }
- .ant-col-lg-pull-18.ant-col-rtl {
- right: auto;
- left: 75%;
- }
- .ant-col-lg-offset-18.ant-col-rtl {
- margin-right: 75%;
- margin-left: 0;
- }
- .ant-col-lg-push-19.ant-col-rtl {
- right: 79.16666667%;
- left: auto;
- }
- .ant-col-lg-pull-19.ant-col-rtl {
- right: auto;
- left: 79.16666667%;
- }
- .ant-col-lg-offset-19.ant-col-rtl {
- margin-right: 79.16666667%;
- margin-left: 0;
- }
- .ant-col-lg-push-20.ant-col-rtl {
- right: 83.33333333%;
- left: auto;
- }
- .ant-col-lg-pull-20.ant-col-rtl {
- right: auto;
- left: 83.33333333%;
- }
- .ant-col-lg-offset-20.ant-col-rtl {
- margin-right: 83.33333333%;
- margin-left: 0;
- }
- .ant-col-lg-push-21.ant-col-rtl {
- right: 87.5%;
- left: auto;
- }
- .ant-col-lg-pull-21.ant-col-rtl {
- right: auto;
- left: 87.5%;
- }
- .ant-col-lg-offset-21.ant-col-rtl {
- margin-right: 87.5%;
- margin-left: 0;
- }
- .ant-col-lg-push-22.ant-col-rtl {
- right: 91.66666667%;
- left: auto;
- }
- .ant-col-lg-pull-22.ant-col-rtl {
- right: auto;
- left: 91.66666667%;
- }
- .ant-col-lg-offset-22.ant-col-rtl {
- margin-right: 91.66666667%;
- margin-left: 0;
- }
- .ant-col-lg-push-23.ant-col-rtl {
- right: 95.83333333%;
- left: auto;
- }
- .ant-col-lg-pull-23.ant-col-rtl {
- right: auto;
- left: 95.83333333%;
- }
- .ant-col-lg-offset-23.ant-col-rtl {
- margin-right: 95.83333333%;
- margin-left: 0;
- }
- .ant-col-lg-push-24.ant-col-rtl {
- right: 100%;
- left: auto;
- }
- .ant-col-lg-pull-24.ant-col-rtl {
- right: auto;
- left: 100%;
- }
- .ant-col-lg-offset-24.ant-col-rtl {
- margin-right: 100%;
- margin-left: 0;
- }
-}
-@media (min-width: 1200px) {
- .ant-col-xl-24 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 100%;
- flex: 0 0 100%;
- max-width: 100%;
- }
- .ant-col-xl-push-24 {
- left: 100%;
- }
- .ant-col-xl-pull-24 {
- right: 100%;
- }
- .ant-col-xl-offset-24 {
- margin-left: 100%;
- }
- .ant-col-xl-order-24 {
- -webkit-box-ordinal-group: 25;
- -ms-flex-order: 24;
- order: 24;
- }
- .ant-col-xl-23 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 95.83333333%;
- flex: 0 0 95.83333333%;
- max-width: 95.83333333%;
- }
- .ant-col-xl-push-23 {
- left: 95.83333333%;
- }
- .ant-col-xl-pull-23 {
- right: 95.83333333%;
- }
- .ant-col-xl-offset-23 {
- margin-left: 95.83333333%;
- }
- .ant-col-xl-order-23 {
- -webkit-box-ordinal-group: 24;
- -ms-flex-order: 23;
- order: 23;
- }
- .ant-col-xl-22 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 91.66666667%;
- flex: 0 0 91.66666667%;
- max-width: 91.66666667%;
- }
- .ant-col-xl-push-22 {
- left: 91.66666667%;
- }
- .ant-col-xl-pull-22 {
- right: 91.66666667%;
- }
- .ant-col-xl-offset-22 {
- margin-left: 91.66666667%;
- }
- .ant-col-xl-order-22 {
- -webkit-box-ordinal-group: 23;
- -ms-flex-order: 22;
- order: 22;
- }
- .ant-col-xl-21 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 87.5%;
- flex: 0 0 87.5%;
- max-width: 87.5%;
- }
- .ant-col-xl-push-21 {
- left: 87.5%;
- }
- .ant-col-xl-pull-21 {
- right: 87.5%;
- }
- .ant-col-xl-offset-21 {
- margin-left: 87.5%;
- }
- .ant-col-xl-order-21 {
- -webkit-box-ordinal-group: 22;
- -ms-flex-order: 21;
- order: 21;
- }
- .ant-col-xl-20 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 83.33333333%;
- flex: 0 0 83.33333333%;
- max-width: 83.33333333%;
- }
- .ant-col-xl-push-20 {
- left: 83.33333333%;
- }
- .ant-col-xl-pull-20 {
- right: 83.33333333%;
- }
- .ant-col-xl-offset-20 {
- margin-left: 83.33333333%;
- }
- .ant-col-xl-order-20 {
- -webkit-box-ordinal-group: 21;
- -ms-flex-order: 20;
- order: 20;
- }
- .ant-col-xl-19 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 79.16666667%;
- flex: 0 0 79.16666667%;
- max-width: 79.16666667%;
- }
- .ant-col-xl-push-19 {
- left: 79.16666667%;
- }
- .ant-col-xl-pull-19 {
- right: 79.16666667%;
- }
- .ant-col-xl-offset-19 {
- margin-left: 79.16666667%;
- }
- .ant-col-xl-order-19 {
- -webkit-box-ordinal-group: 20;
- -ms-flex-order: 19;
- order: 19;
- }
- .ant-col-xl-18 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 75%;
- flex: 0 0 75%;
- max-width: 75%;
- }
- .ant-col-xl-push-18 {
- left: 75%;
- }
- .ant-col-xl-pull-18 {
- right: 75%;
- }
- .ant-col-xl-offset-18 {
- margin-left: 75%;
- }
- .ant-col-xl-order-18 {
- -webkit-box-ordinal-group: 19;
- -ms-flex-order: 18;
- order: 18;
- }
- .ant-col-xl-17 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 70.83333333%;
- flex: 0 0 70.83333333%;
- max-width: 70.83333333%;
- }
- .ant-col-xl-push-17 {
- left: 70.83333333%;
- }
- .ant-col-xl-pull-17 {
- right: 70.83333333%;
- }
- .ant-col-xl-offset-17 {
- margin-left: 70.83333333%;
- }
- .ant-col-xl-order-17 {
- -webkit-box-ordinal-group: 18;
- -ms-flex-order: 17;
- order: 17;
- }
- .ant-col-xl-16 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 66.66666667%;
- flex: 0 0 66.66666667%;
- max-width: 66.66666667%;
- }
- .ant-col-xl-push-16 {
- left: 66.66666667%;
- }
- .ant-col-xl-pull-16 {
- right: 66.66666667%;
- }
- .ant-col-xl-offset-16 {
- margin-left: 66.66666667%;
- }
- .ant-col-xl-order-16 {
- -webkit-box-ordinal-group: 17;
- -ms-flex-order: 16;
- order: 16;
- }
- .ant-col-xl-15 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 62.5%;
- flex: 0 0 62.5%;
- max-width: 62.5%;
- }
- .ant-col-xl-push-15 {
- left: 62.5%;
- }
- .ant-col-xl-pull-15 {
- right: 62.5%;
- }
- .ant-col-xl-offset-15 {
- margin-left: 62.5%;
- }
- .ant-col-xl-order-15 {
- -webkit-box-ordinal-group: 16;
- -ms-flex-order: 15;
- order: 15;
- }
- .ant-col-xl-14 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 58.33333333%;
- flex: 0 0 58.33333333%;
- max-width: 58.33333333%;
- }
- .ant-col-xl-push-14 {
- left: 58.33333333%;
- }
- .ant-col-xl-pull-14 {
- right: 58.33333333%;
- }
- .ant-col-xl-offset-14 {
- margin-left: 58.33333333%;
- }
- .ant-col-xl-order-14 {
- -webkit-box-ordinal-group: 15;
- -ms-flex-order: 14;
- order: 14;
- }
- .ant-col-xl-13 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 54.16666667%;
- flex: 0 0 54.16666667%;
- max-width: 54.16666667%;
- }
- .ant-col-xl-push-13 {
- left: 54.16666667%;
- }
- .ant-col-xl-pull-13 {
- right: 54.16666667%;
- }
- .ant-col-xl-offset-13 {
- margin-left: 54.16666667%;
- }
- .ant-col-xl-order-13 {
- -webkit-box-ordinal-group: 14;
- -ms-flex-order: 13;
- order: 13;
- }
- .ant-col-xl-12 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 50%;
- flex: 0 0 50%;
- max-width: 50%;
- }
- .ant-col-xl-push-12 {
- left: 50%;
- }
- .ant-col-xl-pull-12 {
- right: 50%;
- }
- .ant-col-xl-offset-12 {
- margin-left: 50%;
- }
- .ant-col-xl-order-12 {
- -webkit-box-ordinal-group: 13;
- -ms-flex-order: 12;
- order: 12;
- }
- .ant-col-xl-11 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 45.83333333%;
- flex: 0 0 45.83333333%;
- max-width: 45.83333333%;
- }
- .ant-col-xl-push-11 {
- left: 45.83333333%;
- }
- .ant-col-xl-pull-11 {
- right: 45.83333333%;
- }
- .ant-col-xl-offset-11 {
- margin-left: 45.83333333%;
- }
- .ant-col-xl-order-11 {
- -webkit-box-ordinal-group: 12;
- -ms-flex-order: 11;
- order: 11;
- }
- .ant-col-xl-10 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 41.66666667%;
- flex: 0 0 41.66666667%;
- max-width: 41.66666667%;
- }
- .ant-col-xl-push-10 {
- left: 41.66666667%;
- }
- .ant-col-xl-pull-10 {
- right: 41.66666667%;
- }
- .ant-col-xl-offset-10 {
- margin-left: 41.66666667%;
- }
- .ant-col-xl-order-10 {
- -webkit-box-ordinal-group: 11;
- -ms-flex-order: 10;
- order: 10;
- }
- .ant-col-xl-9 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 37.5%;
- flex: 0 0 37.5%;
- max-width: 37.5%;
- }
- .ant-col-xl-push-9 {
- left: 37.5%;
- }
- .ant-col-xl-pull-9 {
- right: 37.5%;
- }
- .ant-col-xl-offset-9 {
- margin-left: 37.5%;
- }
- .ant-col-xl-order-9 {
- -webkit-box-ordinal-group: 10;
- -ms-flex-order: 9;
- order: 9;
- }
- .ant-col-xl-8 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 33.33333333%;
- flex: 0 0 33.33333333%;
- max-width: 33.33333333%;
- }
- .ant-col-xl-push-8 {
- left: 33.33333333%;
- }
- .ant-col-xl-pull-8 {
- right: 33.33333333%;
- }
- .ant-col-xl-offset-8 {
- margin-left: 33.33333333%;
- }
- .ant-col-xl-order-8 {
- -webkit-box-ordinal-group: 9;
- -ms-flex-order: 8;
- order: 8;
- }
- .ant-col-xl-7 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 29.16666667%;
- flex: 0 0 29.16666667%;
- max-width: 29.16666667%;
- }
- .ant-col-xl-push-7 {
- left: 29.16666667%;
- }
- .ant-col-xl-pull-7 {
- right: 29.16666667%;
- }
- .ant-col-xl-offset-7 {
- margin-left: 29.16666667%;
- }
- .ant-col-xl-order-7 {
- -webkit-box-ordinal-group: 8;
- -ms-flex-order: 7;
- order: 7;
- }
- .ant-col-xl-6 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 25%;
- flex: 0 0 25%;
- max-width: 25%;
- }
- .ant-col-xl-push-6 {
- left: 25%;
- }
- .ant-col-xl-pull-6 {
- right: 25%;
- }
- .ant-col-xl-offset-6 {
- margin-left: 25%;
- }
- .ant-col-xl-order-6 {
- -webkit-box-ordinal-group: 7;
- -ms-flex-order: 6;
- order: 6;
- }
- .ant-col-xl-5 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 20.83333333%;
- flex: 0 0 20.83333333%;
- max-width: 20.83333333%;
- }
- .ant-col-xl-push-5 {
- left: 20.83333333%;
- }
- .ant-col-xl-pull-5 {
- right: 20.83333333%;
- }
- .ant-col-xl-offset-5 {
- margin-left: 20.83333333%;
- }
- .ant-col-xl-order-5 {
- -webkit-box-ordinal-group: 6;
- -ms-flex-order: 5;
- order: 5;
- }
- .ant-col-xl-4 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 16.66666667%;
- flex: 0 0 16.66666667%;
- max-width: 16.66666667%;
- }
- .ant-col-xl-push-4 {
- left: 16.66666667%;
- }
- .ant-col-xl-pull-4 {
- right: 16.66666667%;
- }
- .ant-col-xl-offset-4 {
- margin-left: 16.66666667%;
- }
- .ant-col-xl-order-4 {
- -webkit-box-ordinal-group: 5;
- -ms-flex-order: 4;
- order: 4;
- }
- .ant-col-xl-3 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 12.5%;
- flex: 0 0 12.5%;
- max-width: 12.5%;
- }
- .ant-col-xl-push-3 {
- left: 12.5%;
- }
- .ant-col-xl-pull-3 {
- right: 12.5%;
- }
- .ant-col-xl-offset-3 {
- margin-left: 12.5%;
- }
- .ant-col-xl-order-3 {
- -webkit-box-ordinal-group: 4;
- -ms-flex-order: 3;
- order: 3;
- }
- .ant-col-xl-2 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 8.33333333%;
- flex: 0 0 8.33333333%;
- max-width: 8.33333333%;
- }
- .ant-col-xl-push-2 {
- left: 8.33333333%;
- }
- .ant-col-xl-pull-2 {
- right: 8.33333333%;
- }
- .ant-col-xl-offset-2 {
- margin-left: 8.33333333%;
- }
- .ant-col-xl-order-2 {
- -webkit-box-ordinal-group: 3;
- -ms-flex-order: 2;
- order: 2;
- }
- .ant-col-xl-1 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 4.16666667%;
- flex: 0 0 4.16666667%;
- max-width: 4.16666667%;
- }
- .ant-col-xl-push-1 {
- left: 4.16666667%;
- }
- .ant-col-xl-pull-1 {
- right: 4.16666667%;
- }
- .ant-col-xl-offset-1 {
- margin-left: 4.16666667%;
- }
- .ant-col-xl-order-1 {
- -webkit-box-ordinal-group: 2;
- -ms-flex-order: 1;
- order: 1;
- }
- .ant-col-xl-0 {
- display: none;
- }
- .ant-col-push-0 {
- left: auto;
- }
- .ant-col-pull-0 {
- right: auto;
- }
- .ant-col-xl-push-0 {
- left: auto;
- }
- .ant-col-xl-pull-0 {
- right: auto;
- }
- .ant-col-xl-offset-0 {
- margin-left: 0;
- }
- .ant-col-xl-order-0 {
- -webkit-box-ordinal-group: 1;
- -ms-flex-order: 0;
- order: 0;
- }
- .ant-col-push-0.ant-col-rtl {
- right: auto;
- }
- .ant-col-pull-0.ant-col-rtl {
- left: auto;
- }
- .ant-col-xl-push-0.ant-col-rtl {
- right: auto;
- }
- .ant-col-xl-pull-0.ant-col-rtl {
- left: auto;
- }
- .ant-col-xl-offset-0.ant-col-rtl {
- margin-right: 0;
- }
- .ant-col-xl-push-1.ant-col-rtl {
- right: 4.16666667%;
- left: auto;
- }
- .ant-col-xl-pull-1.ant-col-rtl {
- right: auto;
- left: 4.16666667%;
- }
- .ant-col-xl-offset-1.ant-col-rtl {
- margin-right: 4.16666667%;
- margin-left: 0;
- }
- .ant-col-xl-push-2.ant-col-rtl {
- right: 8.33333333%;
- left: auto;
- }
- .ant-col-xl-pull-2.ant-col-rtl {
- right: auto;
- left: 8.33333333%;
- }
- .ant-col-xl-offset-2.ant-col-rtl {
- margin-right: 8.33333333%;
- margin-left: 0;
- }
- .ant-col-xl-push-3.ant-col-rtl {
- right: 12.5%;
- left: auto;
- }
- .ant-col-xl-pull-3.ant-col-rtl {
- right: auto;
- left: 12.5%;
- }
- .ant-col-xl-offset-3.ant-col-rtl {
- margin-right: 12.5%;
- margin-left: 0;
- }
- .ant-col-xl-push-4.ant-col-rtl {
- right: 16.66666667%;
- left: auto;
- }
- .ant-col-xl-pull-4.ant-col-rtl {
- right: auto;
- left: 16.66666667%;
- }
- .ant-col-xl-offset-4.ant-col-rtl {
- margin-right: 16.66666667%;
- margin-left: 0;
- }
- .ant-col-xl-push-5.ant-col-rtl {
- right: 20.83333333%;
- left: auto;
- }
- .ant-col-xl-pull-5.ant-col-rtl {
- right: auto;
- left: 20.83333333%;
- }
- .ant-col-xl-offset-5.ant-col-rtl {
- margin-right: 20.83333333%;
- margin-left: 0;
- }
- .ant-col-xl-push-6.ant-col-rtl {
- right: 25%;
- left: auto;
- }
- .ant-col-xl-pull-6.ant-col-rtl {
- right: auto;
- left: 25%;
- }
- .ant-col-xl-offset-6.ant-col-rtl {
- margin-right: 25%;
- margin-left: 0;
- }
- .ant-col-xl-push-7.ant-col-rtl {
- right: 29.16666667%;
- left: auto;
- }
- .ant-col-xl-pull-7.ant-col-rtl {
- right: auto;
- left: 29.16666667%;
- }
- .ant-col-xl-offset-7.ant-col-rtl {
- margin-right: 29.16666667%;
- margin-left: 0;
- }
- .ant-col-xl-push-8.ant-col-rtl {
- right: 33.33333333%;
- left: auto;
- }
- .ant-col-xl-pull-8.ant-col-rtl {
- right: auto;
- left: 33.33333333%;
- }
- .ant-col-xl-offset-8.ant-col-rtl {
- margin-right: 33.33333333%;
- margin-left: 0;
- }
- .ant-col-xl-push-9.ant-col-rtl {
- right: 37.5%;
- left: auto;
- }
- .ant-col-xl-pull-9.ant-col-rtl {
- right: auto;
- left: 37.5%;
- }
- .ant-col-xl-offset-9.ant-col-rtl {
- margin-right: 37.5%;
- margin-left: 0;
- }
- .ant-col-xl-push-10.ant-col-rtl {
- right: 41.66666667%;
- left: auto;
- }
- .ant-col-xl-pull-10.ant-col-rtl {
- right: auto;
- left: 41.66666667%;
- }
- .ant-col-xl-offset-10.ant-col-rtl {
- margin-right: 41.66666667%;
- margin-left: 0;
- }
- .ant-col-xl-push-11.ant-col-rtl {
- right: 45.83333333%;
- left: auto;
- }
- .ant-col-xl-pull-11.ant-col-rtl {
- right: auto;
- left: 45.83333333%;
- }
- .ant-col-xl-offset-11.ant-col-rtl {
- margin-right: 45.83333333%;
- margin-left: 0;
- }
- .ant-col-xl-push-12.ant-col-rtl {
- right: 50%;
- left: auto;
- }
- .ant-col-xl-pull-12.ant-col-rtl {
- right: auto;
- left: 50%;
- }
- .ant-col-xl-offset-12.ant-col-rtl {
- margin-right: 50%;
- margin-left: 0;
- }
- .ant-col-xl-push-13.ant-col-rtl {
- right: 54.16666667%;
- left: auto;
- }
- .ant-col-xl-pull-13.ant-col-rtl {
- right: auto;
- left: 54.16666667%;
- }
- .ant-col-xl-offset-13.ant-col-rtl {
- margin-right: 54.16666667%;
- margin-left: 0;
- }
- .ant-col-xl-push-14.ant-col-rtl {
- right: 58.33333333%;
- left: auto;
- }
- .ant-col-xl-pull-14.ant-col-rtl {
- right: auto;
- left: 58.33333333%;
- }
- .ant-col-xl-offset-14.ant-col-rtl {
- margin-right: 58.33333333%;
- margin-left: 0;
- }
- .ant-col-xl-push-15.ant-col-rtl {
- right: 62.5%;
- left: auto;
- }
- .ant-col-xl-pull-15.ant-col-rtl {
- right: auto;
- left: 62.5%;
- }
- .ant-col-xl-offset-15.ant-col-rtl {
- margin-right: 62.5%;
- margin-left: 0;
- }
- .ant-col-xl-push-16.ant-col-rtl {
- right: 66.66666667%;
- left: auto;
- }
- .ant-col-xl-pull-16.ant-col-rtl {
- right: auto;
- left: 66.66666667%;
- }
- .ant-col-xl-offset-16.ant-col-rtl {
- margin-right: 66.66666667%;
- margin-left: 0;
- }
- .ant-col-xl-push-17.ant-col-rtl {
- right: 70.83333333%;
- left: auto;
- }
- .ant-col-xl-pull-17.ant-col-rtl {
- right: auto;
- left: 70.83333333%;
- }
- .ant-col-xl-offset-17.ant-col-rtl {
- margin-right: 70.83333333%;
- margin-left: 0;
- }
- .ant-col-xl-push-18.ant-col-rtl {
- right: 75%;
- left: auto;
- }
- .ant-col-xl-pull-18.ant-col-rtl {
- right: auto;
- left: 75%;
- }
- .ant-col-xl-offset-18.ant-col-rtl {
- margin-right: 75%;
- margin-left: 0;
- }
- .ant-col-xl-push-19.ant-col-rtl {
- right: 79.16666667%;
- left: auto;
- }
- .ant-col-xl-pull-19.ant-col-rtl {
- right: auto;
- left: 79.16666667%;
- }
- .ant-col-xl-offset-19.ant-col-rtl {
- margin-right: 79.16666667%;
- margin-left: 0;
- }
- .ant-col-xl-push-20.ant-col-rtl {
- right: 83.33333333%;
- left: auto;
- }
- .ant-col-xl-pull-20.ant-col-rtl {
- right: auto;
- left: 83.33333333%;
- }
- .ant-col-xl-offset-20.ant-col-rtl {
- margin-right: 83.33333333%;
- margin-left: 0;
- }
- .ant-col-xl-push-21.ant-col-rtl {
- right: 87.5%;
- left: auto;
- }
- .ant-col-xl-pull-21.ant-col-rtl {
- right: auto;
- left: 87.5%;
- }
- .ant-col-xl-offset-21.ant-col-rtl {
- margin-right: 87.5%;
- margin-left: 0;
- }
- .ant-col-xl-push-22.ant-col-rtl {
- right: 91.66666667%;
- left: auto;
- }
- .ant-col-xl-pull-22.ant-col-rtl {
- right: auto;
- left: 91.66666667%;
- }
- .ant-col-xl-offset-22.ant-col-rtl {
- margin-right: 91.66666667%;
- margin-left: 0;
- }
- .ant-col-xl-push-23.ant-col-rtl {
- right: 95.83333333%;
- left: auto;
- }
- .ant-col-xl-pull-23.ant-col-rtl {
- right: auto;
- left: 95.83333333%;
- }
- .ant-col-xl-offset-23.ant-col-rtl {
- margin-right: 95.83333333%;
- margin-left: 0;
- }
- .ant-col-xl-push-24.ant-col-rtl {
- right: 100%;
- left: auto;
- }
- .ant-col-xl-pull-24.ant-col-rtl {
- right: auto;
- left: 100%;
- }
- .ant-col-xl-offset-24.ant-col-rtl {
- margin-right: 100%;
- margin-left: 0;
- }
-}
-@media (min-width: 1600px) {
- .ant-col-xxl-24 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 100%;
- flex: 0 0 100%;
- max-width: 100%;
- }
- .ant-col-xxl-push-24 {
- left: 100%;
- }
- .ant-col-xxl-pull-24 {
- right: 100%;
- }
- .ant-col-xxl-offset-24 {
- margin-left: 100%;
- }
- .ant-col-xxl-order-24 {
- -webkit-box-ordinal-group: 25;
- -ms-flex-order: 24;
- order: 24;
- }
- .ant-col-xxl-23 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 95.83333333%;
- flex: 0 0 95.83333333%;
- max-width: 95.83333333%;
- }
- .ant-col-xxl-push-23 {
- left: 95.83333333%;
- }
- .ant-col-xxl-pull-23 {
- right: 95.83333333%;
- }
- .ant-col-xxl-offset-23 {
- margin-left: 95.83333333%;
- }
- .ant-col-xxl-order-23 {
- -webkit-box-ordinal-group: 24;
- -ms-flex-order: 23;
- order: 23;
- }
- .ant-col-xxl-22 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 91.66666667%;
- flex: 0 0 91.66666667%;
- max-width: 91.66666667%;
- }
- .ant-col-xxl-push-22 {
- left: 91.66666667%;
- }
- .ant-col-xxl-pull-22 {
- right: 91.66666667%;
- }
- .ant-col-xxl-offset-22 {
- margin-left: 91.66666667%;
- }
- .ant-col-xxl-order-22 {
- -webkit-box-ordinal-group: 23;
- -ms-flex-order: 22;
- order: 22;
- }
- .ant-col-xxl-21 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 87.5%;
- flex: 0 0 87.5%;
- max-width: 87.5%;
- }
- .ant-col-xxl-push-21 {
- left: 87.5%;
- }
- .ant-col-xxl-pull-21 {
- right: 87.5%;
- }
- .ant-col-xxl-offset-21 {
- margin-left: 87.5%;
- }
- .ant-col-xxl-order-21 {
- -webkit-box-ordinal-group: 22;
- -ms-flex-order: 21;
- order: 21;
- }
- .ant-col-xxl-20 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 83.33333333%;
- flex: 0 0 83.33333333%;
- max-width: 83.33333333%;
- }
- .ant-col-xxl-push-20 {
- left: 83.33333333%;
- }
- .ant-col-xxl-pull-20 {
- right: 83.33333333%;
- }
- .ant-col-xxl-offset-20 {
- margin-left: 83.33333333%;
- }
- .ant-col-xxl-order-20 {
- -webkit-box-ordinal-group: 21;
- -ms-flex-order: 20;
- order: 20;
- }
- .ant-col-xxl-19 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 79.16666667%;
- flex: 0 0 79.16666667%;
- max-width: 79.16666667%;
- }
- .ant-col-xxl-push-19 {
- left: 79.16666667%;
- }
- .ant-col-xxl-pull-19 {
- right: 79.16666667%;
- }
- .ant-col-xxl-offset-19 {
- margin-left: 79.16666667%;
- }
- .ant-col-xxl-order-19 {
- -webkit-box-ordinal-group: 20;
- -ms-flex-order: 19;
- order: 19;
- }
- .ant-col-xxl-18 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 75%;
- flex: 0 0 75%;
- max-width: 75%;
- }
- .ant-col-xxl-push-18 {
- left: 75%;
- }
- .ant-col-xxl-pull-18 {
- right: 75%;
- }
- .ant-col-xxl-offset-18 {
- margin-left: 75%;
- }
- .ant-col-xxl-order-18 {
- -webkit-box-ordinal-group: 19;
- -ms-flex-order: 18;
- order: 18;
- }
- .ant-col-xxl-17 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 70.83333333%;
- flex: 0 0 70.83333333%;
- max-width: 70.83333333%;
- }
- .ant-col-xxl-push-17 {
- left: 70.83333333%;
- }
- .ant-col-xxl-pull-17 {
- right: 70.83333333%;
- }
- .ant-col-xxl-offset-17 {
- margin-left: 70.83333333%;
- }
- .ant-col-xxl-order-17 {
- -webkit-box-ordinal-group: 18;
- -ms-flex-order: 17;
- order: 17;
- }
- .ant-col-xxl-16 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 66.66666667%;
- flex: 0 0 66.66666667%;
- max-width: 66.66666667%;
- }
- .ant-col-xxl-push-16 {
- left: 66.66666667%;
- }
- .ant-col-xxl-pull-16 {
- right: 66.66666667%;
- }
- .ant-col-xxl-offset-16 {
- margin-left: 66.66666667%;
- }
- .ant-col-xxl-order-16 {
- -webkit-box-ordinal-group: 17;
- -ms-flex-order: 16;
- order: 16;
- }
- .ant-col-xxl-15 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 62.5%;
- flex: 0 0 62.5%;
- max-width: 62.5%;
- }
- .ant-col-xxl-push-15 {
- left: 62.5%;
- }
- .ant-col-xxl-pull-15 {
- right: 62.5%;
- }
- .ant-col-xxl-offset-15 {
- margin-left: 62.5%;
- }
- .ant-col-xxl-order-15 {
- -webkit-box-ordinal-group: 16;
- -ms-flex-order: 15;
- order: 15;
- }
- .ant-col-xxl-14 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 58.33333333%;
- flex: 0 0 58.33333333%;
- max-width: 58.33333333%;
- }
- .ant-col-xxl-push-14 {
- left: 58.33333333%;
- }
- .ant-col-xxl-pull-14 {
- right: 58.33333333%;
- }
- .ant-col-xxl-offset-14 {
- margin-left: 58.33333333%;
- }
- .ant-col-xxl-order-14 {
- -webkit-box-ordinal-group: 15;
- -ms-flex-order: 14;
- order: 14;
- }
- .ant-col-xxl-13 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 54.16666667%;
- flex: 0 0 54.16666667%;
- max-width: 54.16666667%;
- }
- .ant-col-xxl-push-13 {
- left: 54.16666667%;
- }
- .ant-col-xxl-pull-13 {
- right: 54.16666667%;
- }
- .ant-col-xxl-offset-13 {
- margin-left: 54.16666667%;
- }
- .ant-col-xxl-order-13 {
- -webkit-box-ordinal-group: 14;
- -ms-flex-order: 13;
- order: 13;
- }
- .ant-col-xxl-12 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 50%;
- flex: 0 0 50%;
- max-width: 50%;
- }
- .ant-col-xxl-push-12 {
- left: 50%;
- }
- .ant-col-xxl-pull-12 {
- right: 50%;
- }
- .ant-col-xxl-offset-12 {
- margin-left: 50%;
- }
- .ant-col-xxl-order-12 {
- -webkit-box-ordinal-group: 13;
- -ms-flex-order: 12;
- order: 12;
- }
- .ant-col-xxl-11 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 45.83333333%;
- flex: 0 0 45.83333333%;
- max-width: 45.83333333%;
- }
- .ant-col-xxl-push-11 {
- left: 45.83333333%;
- }
- .ant-col-xxl-pull-11 {
- right: 45.83333333%;
- }
- .ant-col-xxl-offset-11 {
- margin-left: 45.83333333%;
- }
- .ant-col-xxl-order-11 {
- -webkit-box-ordinal-group: 12;
- -ms-flex-order: 11;
- order: 11;
- }
- .ant-col-xxl-10 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 41.66666667%;
- flex: 0 0 41.66666667%;
- max-width: 41.66666667%;
- }
- .ant-col-xxl-push-10 {
- left: 41.66666667%;
- }
- .ant-col-xxl-pull-10 {
- right: 41.66666667%;
- }
- .ant-col-xxl-offset-10 {
- margin-left: 41.66666667%;
- }
- .ant-col-xxl-order-10 {
- -webkit-box-ordinal-group: 11;
- -ms-flex-order: 10;
- order: 10;
- }
- .ant-col-xxl-9 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 37.5%;
- flex: 0 0 37.5%;
- max-width: 37.5%;
- }
- .ant-col-xxl-push-9 {
- left: 37.5%;
- }
- .ant-col-xxl-pull-9 {
- right: 37.5%;
- }
- .ant-col-xxl-offset-9 {
- margin-left: 37.5%;
- }
- .ant-col-xxl-order-9 {
- -webkit-box-ordinal-group: 10;
- -ms-flex-order: 9;
- order: 9;
- }
- .ant-col-xxl-8 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 33.33333333%;
- flex: 0 0 33.33333333%;
- max-width: 33.33333333%;
- }
- .ant-col-xxl-push-8 {
- left: 33.33333333%;
- }
- .ant-col-xxl-pull-8 {
- right: 33.33333333%;
- }
- .ant-col-xxl-offset-8 {
- margin-left: 33.33333333%;
- }
- .ant-col-xxl-order-8 {
- -webkit-box-ordinal-group: 9;
- -ms-flex-order: 8;
- order: 8;
- }
- .ant-col-xxl-7 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 29.16666667%;
- flex: 0 0 29.16666667%;
- max-width: 29.16666667%;
- }
- .ant-col-xxl-push-7 {
- left: 29.16666667%;
- }
- .ant-col-xxl-pull-7 {
- right: 29.16666667%;
- }
- .ant-col-xxl-offset-7 {
- margin-left: 29.16666667%;
- }
- .ant-col-xxl-order-7 {
- -webkit-box-ordinal-group: 8;
- -ms-flex-order: 7;
- order: 7;
- }
- .ant-col-xxl-6 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 25%;
- flex: 0 0 25%;
- max-width: 25%;
- }
- .ant-col-xxl-push-6 {
- left: 25%;
- }
- .ant-col-xxl-pull-6 {
- right: 25%;
- }
- .ant-col-xxl-offset-6 {
- margin-left: 25%;
- }
- .ant-col-xxl-order-6 {
- -webkit-box-ordinal-group: 7;
- -ms-flex-order: 6;
- order: 6;
- }
- .ant-col-xxl-5 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 20.83333333%;
- flex: 0 0 20.83333333%;
- max-width: 20.83333333%;
- }
- .ant-col-xxl-push-5 {
- left: 20.83333333%;
- }
- .ant-col-xxl-pull-5 {
- right: 20.83333333%;
- }
- .ant-col-xxl-offset-5 {
- margin-left: 20.83333333%;
- }
- .ant-col-xxl-order-5 {
- -webkit-box-ordinal-group: 6;
- -ms-flex-order: 5;
- order: 5;
- }
- .ant-col-xxl-4 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 16.66666667%;
- flex: 0 0 16.66666667%;
- max-width: 16.66666667%;
- }
- .ant-col-xxl-push-4 {
- left: 16.66666667%;
- }
- .ant-col-xxl-pull-4 {
- right: 16.66666667%;
- }
- .ant-col-xxl-offset-4 {
- margin-left: 16.66666667%;
- }
- .ant-col-xxl-order-4 {
- -webkit-box-ordinal-group: 5;
- -ms-flex-order: 4;
- order: 4;
- }
- .ant-col-xxl-3 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 12.5%;
- flex: 0 0 12.5%;
- max-width: 12.5%;
- }
- .ant-col-xxl-push-3 {
- left: 12.5%;
- }
- .ant-col-xxl-pull-3 {
- right: 12.5%;
- }
- .ant-col-xxl-offset-3 {
- margin-left: 12.5%;
- }
- .ant-col-xxl-order-3 {
- -webkit-box-ordinal-group: 4;
- -ms-flex-order: 3;
- order: 3;
- }
- .ant-col-xxl-2 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 8.33333333%;
- flex: 0 0 8.33333333%;
- max-width: 8.33333333%;
- }
- .ant-col-xxl-push-2 {
- left: 8.33333333%;
- }
- .ant-col-xxl-pull-2 {
- right: 8.33333333%;
- }
- .ant-col-xxl-offset-2 {
- margin-left: 8.33333333%;
- }
- .ant-col-xxl-order-2 {
- -webkit-box-ordinal-group: 3;
- -ms-flex-order: 2;
- order: 2;
- }
- .ant-col-xxl-1 {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 4.16666667%;
- flex: 0 0 4.16666667%;
- max-width: 4.16666667%;
- }
- .ant-col-xxl-push-1 {
- left: 4.16666667%;
- }
- .ant-col-xxl-pull-1 {
- right: 4.16666667%;
- }
- .ant-col-xxl-offset-1 {
- margin-left: 4.16666667%;
- }
- .ant-col-xxl-order-1 {
- -webkit-box-ordinal-group: 2;
- -ms-flex-order: 1;
- order: 1;
- }
- .ant-col-xxl-0 {
- display: none;
- }
- .ant-col-push-0 {
- left: auto;
- }
- .ant-col-pull-0 {
- right: auto;
- }
- .ant-col-xxl-push-0 {
- left: auto;
- }
- .ant-col-xxl-pull-0 {
- right: auto;
- }
- .ant-col-xxl-offset-0 {
- margin-left: 0;
- }
- .ant-col-xxl-order-0 {
- -webkit-box-ordinal-group: 1;
- -ms-flex-order: 0;
- order: 0;
- }
- .ant-col-push-0.ant-col-rtl {
- right: auto;
- }
- .ant-col-pull-0.ant-col-rtl {
- left: auto;
- }
- .ant-col-xxl-push-0.ant-col-rtl {
- right: auto;
- }
- .ant-col-xxl-pull-0.ant-col-rtl {
- left: auto;
- }
- .ant-col-xxl-offset-0.ant-col-rtl {
- margin-right: 0;
- }
- .ant-col-xxl-push-1.ant-col-rtl {
- right: 4.16666667%;
- left: auto;
- }
- .ant-col-xxl-pull-1.ant-col-rtl {
- right: auto;
- left: 4.16666667%;
- }
- .ant-col-xxl-offset-1.ant-col-rtl {
- margin-right: 4.16666667%;
- margin-left: 0;
- }
- .ant-col-xxl-push-2.ant-col-rtl {
- right: 8.33333333%;
- left: auto;
- }
- .ant-col-xxl-pull-2.ant-col-rtl {
- right: auto;
- left: 8.33333333%;
- }
- .ant-col-xxl-offset-2.ant-col-rtl {
- margin-right: 8.33333333%;
- margin-left: 0;
- }
- .ant-col-xxl-push-3.ant-col-rtl {
- right: 12.5%;
- left: auto;
- }
- .ant-col-xxl-pull-3.ant-col-rtl {
- right: auto;
- left: 12.5%;
- }
- .ant-col-xxl-offset-3.ant-col-rtl {
- margin-right: 12.5%;
- margin-left: 0;
- }
- .ant-col-xxl-push-4.ant-col-rtl {
- right: 16.66666667%;
- left: auto;
- }
- .ant-col-xxl-pull-4.ant-col-rtl {
- right: auto;
- left: 16.66666667%;
- }
- .ant-col-xxl-offset-4.ant-col-rtl {
- margin-right: 16.66666667%;
- margin-left: 0;
- }
- .ant-col-xxl-push-5.ant-col-rtl {
- right: 20.83333333%;
- left: auto;
- }
- .ant-col-xxl-pull-5.ant-col-rtl {
- right: auto;
- left: 20.83333333%;
- }
- .ant-col-xxl-offset-5.ant-col-rtl {
- margin-right: 20.83333333%;
- margin-left: 0;
- }
- .ant-col-xxl-push-6.ant-col-rtl {
- right: 25%;
- left: auto;
- }
- .ant-col-xxl-pull-6.ant-col-rtl {
- right: auto;
- left: 25%;
- }
- .ant-col-xxl-offset-6.ant-col-rtl {
- margin-right: 25%;
- margin-left: 0;
- }
- .ant-col-xxl-push-7.ant-col-rtl {
- right: 29.16666667%;
- left: auto;
- }
- .ant-col-xxl-pull-7.ant-col-rtl {
- right: auto;
- left: 29.16666667%;
- }
- .ant-col-xxl-offset-7.ant-col-rtl {
- margin-right: 29.16666667%;
- margin-left: 0;
- }
- .ant-col-xxl-push-8.ant-col-rtl {
- right: 33.33333333%;
- left: auto;
- }
- .ant-col-xxl-pull-8.ant-col-rtl {
- right: auto;
- left: 33.33333333%;
- }
- .ant-col-xxl-offset-8.ant-col-rtl {
- margin-right: 33.33333333%;
- margin-left: 0;
- }
- .ant-col-xxl-push-9.ant-col-rtl {
- right: 37.5%;
- left: auto;
- }
- .ant-col-xxl-pull-9.ant-col-rtl {
- right: auto;
- left: 37.5%;
- }
- .ant-col-xxl-offset-9.ant-col-rtl {
- margin-right: 37.5%;
- margin-left: 0;
- }
- .ant-col-xxl-push-10.ant-col-rtl {
- right: 41.66666667%;
- left: auto;
- }
- .ant-col-xxl-pull-10.ant-col-rtl {
- right: auto;
- left: 41.66666667%;
- }
- .ant-col-xxl-offset-10.ant-col-rtl {
- margin-right: 41.66666667%;
- margin-left: 0;
- }
- .ant-col-xxl-push-11.ant-col-rtl {
- right: 45.83333333%;
- left: auto;
- }
- .ant-col-xxl-pull-11.ant-col-rtl {
- right: auto;
- left: 45.83333333%;
- }
- .ant-col-xxl-offset-11.ant-col-rtl {
- margin-right: 45.83333333%;
- margin-left: 0;
- }
- .ant-col-xxl-push-12.ant-col-rtl {
- right: 50%;
- left: auto;
- }
- .ant-col-xxl-pull-12.ant-col-rtl {
- right: auto;
- left: 50%;
- }
- .ant-col-xxl-offset-12.ant-col-rtl {
- margin-right: 50%;
- margin-left: 0;
- }
- .ant-col-xxl-push-13.ant-col-rtl {
- right: 54.16666667%;
- left: auto;
- }
- .ant-col-xxl-pull-13.ant-col-rtl {
- right: auto;
- left: 54.16666667%;
- }
- .ant-col-xxl-offset-13.ant-col-rtl {
- margin-right: 54.16666667%;
- margin-left: 0;
- }
- .ant-col-xxl-push-14.ant-col-rtl {
- right: 58.33333333%;
- left: auto;
- }
- .ant-col-xxl-pull-14.ant-col-rtl {
- right: auto;
- left: 58.33333333%;
- }
- .ant-col-xxl-offset-14.ant-col-rtl {
- margin-right: 58.33333333%;
- margin-left: 0;
- }
- .ant-col-xxl-push-15.ant-col-rtl {
- right: 62.5%;
- left: auto;
- }
- .ant-col-xxl-pull-15.ant-col-rtl {
- right: auto;
- left: 62.5%;
- }
- .ant-col-xxl-offset-15.ant-col-rtl {
- margin-right: 62.5%;
- margin-left: 0;
- }
- .ant-col-xxl-push-16.ant-col-rtl {
- right: 66.66666667%;
- left: auto;
- }
- .ant-col-xxl-pull-16.ant-col-rtl {
- right: auto;
- left: 66.66666667%;
- }
- .ant-col-xxl-offset-16.ant-col-rtl {
- margin-right: 66.66666667%;
- margin-left: 0;
- }
- .ant-col-xxl-push-17.ant-col-rtl {
- right: 70.83333333%;
- left: auto;
- }
- .ant-col-xxl-pull-17.ant-col-rtl {
- right: auto;
- left: 70.83333333%;
- }
- .ant-col-xxl-offset-17.ant-col-rtl {
- margin-right: 70.83333333%;
- margin-left: 0;
- }
- .ant-col-xxl-push-18.ant-col-rtl {
- right: 75%;
- left: auto;
- }
- .ant-col-xxl-pull-18.ant-col-rtl {
- right: auto;
- left: 75%;
- }
- .ant-col-xxl-offset-18.ant-col-rtl {
- margin-right: 75%;
- margin-left: 0;
- }
- .ant-col-xxl-push-19.ant-col-rtl {
- right: 79.16666667%;
- left: auto;
- }
- .ant-col-xxl-pull-19.ant-col-rtl {
- right: auto;
- left: 79.16666667%;
- }
- .ant-col-xxl-offset-19.ant-col-rtl {
- margin-right: 79.16666667%;
- margin-left: 0;
- }
- .ant-col-xxl-push-20.ant-col-rtl {
- right: 83.33333333%;
- left: auto;
- }
- .ant-col-xxl-pull-20.ant-col-rtl {
- right: auto;
- left: 83.33333333%;
- }
- .ant-col-xxl-offset-20.ant-col-rtl {
- margin-right: 83.33333333%;
- margin-left: 0;
- }
- .ant-col-xxl-push-21.ant-col-rtl {
- right: 87.5%;
- left: auto;
- }
- .ant-col-xxl-pull-21.ant-col-rtl {
- right: auto;
- left: 87.5%;
- }
- .ant-col-xxl-offset-21.ant-col-rtl {
- margin-right: 87.5%;
- margin-left: 0;
- }
- .ant-col-xxl-push-22.ant-col-rtl {
- right: 91.66666667%;
- left: auto;
- }
- .ant-col-xxl-pull-22.ant-col-rtl {
- right: auto;
- left: 91.66666667%;
- }
- .ant-col-xxl-offset-22.ant-col-rtl {
- margin-right: 91.66666667%;
- margin-left: 0;
- }
- .ant-col-xxl-push-23.ant-col-rtl {
- right: 95.83333333%;
- left: auto;
- }
- .ant-col-xxl-pull-23.ant-col-rtl {
- right: auto;
- left: 95.83333333%;
- }
- .ant-col-xxl-offset-23.ant-col-rtl {
- margin-right: 95.83333333%;
- margin-left: 0;
- }
- .ant-col-xxl-push-24.ant-col-rtl {
- right: 100%;
- left: auto;
- }
- .ant-col-xxl-pull-24.ant-col-rtl {
- right: auto;
- left: 100%;
- }
- .ant-col-xxl-offset-24.ant-col-rtl {
- margin-right: 100%;
- margin-left: 0;
- }
-}
-.ant-row-rtl {
- direction: rtl;
-}
-.ant-col.ant-col-rtl {
- float: right;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-carousel {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
-}
-.ant-carousel .slick-slider {
- position: relative;
- display: block;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- -webkit-touch-callout: none;
- -ms-touch-action: pan-y;
- touch-action: pan-y;
- -webkit-tap-highlight-color: transparent;
-}
-.ant-carousel .slick-list {
- position: relative;
- display: block;
- margin: 0;
- padding: 0;
- overflow: hidden;
-}
-.ant-carousel .slick-list:focus {
- outline: none;
-}
-.ant-carousel .slick-list.dragging {
- cursor: pointer;
-}
-.ant-carousel .slick-list .slick-slide {
- pointer-events: none;
-}
-.ant-carousel .slick-list .slick-slide input.ant-radio-input,
-.ant-carousel .slick-list .slick-slide input.ant-checkbox-input {
- visibility: hidden;
-}
-.ant-carousel .slick-list .slick-slide.slick-active {
- pointer-events: auto;
-}
-.ant-carousel .slick-list .slick-slide.slick-active input.ant-radio-input,
-.ant-carousel .slick-list .slick-slide.slick-active input.ant-checkbox-input {
- visibility: visible;
-}
-.ant-carousel .slick-slider .slick-track,
-.ant-carousel .slick-slider .slick-list {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
-}
-.ant-carousel .slick-track {
- position: relative;
- top: 0;
- left: 0;
- display: block;
-}
-.ant-carousel .slick-track::before,
-.ant-carousel .slick-track::after {
- display: table;
- content: '';
-}
-.ant-carousel .slick-track::after {
- clear: both;
-}
-.slick-loading .ant-carousel .slick-track {
- visibility: hidden;
-}
-.ant-carousel .slick-slide {
- display: none;
- float: left;
- height: 100%;
- min-height: 1px;
-}
-.ant-carousel .slick-slide img {
- display: block;
-}
-.ant-carousel .slick-slide.slick-loading img {
- display: none;
-}
-.ant-carousel .slick-slide.dragging img {
- pointer-events: none;
-}
-.ant-carousel .slick-initialized .slick-slide {
- display: block;
-}
-.ant-carousel .slick-loading .slick-slide {
- visibility: hidden;
-}
-.ant-carousel .slick-vertical .slick-slide {
- display: block;
- height: auto;
- border: 1px solid transparent;
-}
-.ant-carousel .slick-arrow.slick-hidden {
- display: none;
-}
-.ant-carousel .slick-prev,
-.ant-carousel .slick-next {
- position: absolute;
- top: 50%;
- display: block;
- width: 20px;
- height: 20px;
- margin-top: -10px;
- padding: 0;
- color: transparent;
- font-size: 0;
- line-height: 0;
- background: transparent;
- border: 0;
- outline: none;
- cursor: pointer;
-}
-.ant-carousel .slick-prev:hover,
-.ant-carousel .slick-next:hover,
-.ant-carousel .slick-prev:focus,
-.ant-carousel .slick-next:focus {
- color: transparent;
- background: transparent;
- outline: none;
-}
-.ant-carousel .slick-prev:hover::before,
-.ant-carousel .slick-next:hover::before,
-.ant-carousel .slick-prev:focus::before,
-.ant-carousel .slick-next:focus::before {
- opacity: 1;
-}
-.ant-carousel .slick-prev.slick-disabled::before,
-.ant-carousel .slick-next.slick-disabled::before {
- opacity: 0.25;
-}
-.ant-carousel .slick-prev {
- left: -25px;
-}
-.ant-carousel .slick-prev::before {
- content: '←';
-}
-.ant-carousel .slick-next {
- right: -25px;
-}
-.ant-carousel .slick-next::before {
- content: '→';
-}
-.ant-carousel .slick-dots {
- position: absolute;
- right: 0;
- bottom: 0;
- left: 0;
- z-index: 15;
- display: -webkit-box !important;
- display: -ms-flexbox !important;
- display: flex !important;
- -webkit-box-pack: center;
- -ms-flex-pack: center;
- justify-content: center;
- margin-right: 15%;
- margin-left: 15%;
- padding-left: 0;
- list-style: none;
-}
-.ant-carousel .slick-dots-bottom {
- bottom: 12px;
-}
-.ant-carousel .slick-dots-top {
- top: 12px;
-}
-.ant-carousel .slick-dots li {
- position: relative;
- display: inline-block;
- -webkit-box-flex: 0;
- -ms-flex: 0 1 auto;
- flex: 0 1 auto;
- -webkit-box-sizing: content-box;
- box-sizing: content-box;
- width: 16px;
- height: 3px;
- margin: 0 2px;
- margin-right: 3px;
- margin-left: 3px;
- padding: 0;
- text-align: center;
- text-indent: -999px;
- vertical-align: top;
- -webkit-transition: all 0.5s;
- transition: all 0.5s;
-}
-.ant-carousel .slick-dots li button {
- display: block;
- width: 100%;
- height: 3px;
- padding: 0;
- color: transparent;
- font-size: 0;
- background: #fff;
- border: 0;
- border-radius: 1px;
- outline: none;
- cursor: pointer;
- opacity: 0.3;
- -webkit-transition: all 0.5s;
- transition: all 0.5s;
-}
-.ant-carousel .slick-dots li button:hover,
-.ant-carousel .slick-dots li button:focus {
- opacity: 0.75;
-}
-.ant-carousel .slick-dots li.slick-active {
- width: 24px;
-}
-.ant-carousel .slick-dots li.slick-active button {
- background: #fff;
- opacity: 1;
-}
-.ant-carousel .slick-dots li.slick-active:hover,
-.ant-carousel .slick-dots li.slick-active:focus {
- opacity: 1;
-}
-.ant-carousel-vertical .slick-dots {
- top: 50%;
- bottom: auto;
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
- width: 3px;
- height: auto;
- margin: 0;
- -webkit-transform: translateY(-50%);
- transform: translateY(-50%);
-}
-.ant-carousel-vertical .slick-dots-left {
- right: auto;
- left: 12px;
-}
-.ant-carousel-vertical .slick-dots-right {
- right: 12px;
- left: auto;
-}
-.ant-carousel-vertical .slick-dots li {
- width: 3px;
- height: 16px;
- margin: 4px 2px;
- vertical-align: baseline;
-}
-.ant-carousel-vertical .slick-dots li button {
- width: 3px;
- height: 16px;
-}
-.ant-carousel-vertical .slick-dots li.slick-active {
- width: 3px;
- height: 24px;
-}
-.ant-carousel-vertical .slick-dots li.slick-active button {
- width: 3px;
- height: 24px;
-}
-.ant-carousel-rtl {
- direction: rtl;
-}
-.ant-carousel-rtl .ant-carousel .slick-track {
- right: 0;
- left: auto;
-}
-.ant-carousel-rtl .ant-carousel .slick-prev {
- right: -25px;
- left: auto;
-}
-.ant-carousel-rtl .ant-carousel .slick-prev::before {
- content: '→';
-}
-.ant-carousel-rtl .ant-carousel .slick-next {
- right: auto;
- left: -25px;
-}
-.ant-carousel-rtl .ant-carousel .slick-next::before {
- content: '←';
-}
-.ant-carousel-rtl.ant-carousel .slick-dots {
- -webkit-box-orient: horizontal;
- -webkit-box-direction: reverse;
- -ms-flex-direction: row-reverse;
- flex-direction: row-reverse;
-}
-.ant-carousel-rtl.ant-carousel-vertical .slick-dots {
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-cascader {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
-}
-.ant-cascader-input.ant-input {
- position: static;
- width: 100%;
- padding-right: 24px;
- background-color: transparent !important;
- cursor: pointer;
-}
-.ant-cascader-picker-show-search .ant-cascader-input.ant-input {
- position: relative;
-}
-.ant-cascader-picker {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- position: relative;
- display: inline-block;
- background-color: #fff;
- border-radius: 2px;
- outline: 0;
- cursor: pointer;
- -webkit-transition: color 0.3s;
- transition: color 0.3s;
-}
-.ant-cascader-picker-with-value .ant-cascader-picker-label {
- color: transparent;
-}
-.ant-cascader-picker-disabled {
- color: rgba(0, 0, 0, 0.25);
- background: #f5f5f5;
- cursor: not-allowed;
-}
-.ant-cascader-picker-disabled .ant-cascader-input {
- cursor: not-allowed;
-}
-.ant-cascader-picker:focus .ant-cascader-input {
- border-color: #40a9ff;
- border-right-width: 1px !important;
- outline: 0;
- -webkit-box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
- box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
-}
-.ant-cascader-picker-borderless .ant-cascader-input {
- border-color: transparent !important;
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
-}
-.ant-cascader-picker-show-search.ant-cascader-picker-focused {
- color: rgba(0, 0, 0, 0.25);
-}
-.ant-cascader-picker-label {
- position: absolute;
- top: 50%;
- left: 0;
- width: 100%;
- height: 20px;
- margin-top: -10px;
- padding: 0 20px 0 12px;
- overflow: hidden;
- line-height: 20px;
- white-space: nowrap;
- text-overflow: ellipsis;
-}
-.ant-cascader-picker-clear {
- position: absolute;
- top: 50%;
- right: 12px;
- z-index: 2;
- width: 12px;
- height: 12px;
- margin-top: -6px;
- color: rgba(0, 0, 0, 0.25);
- font-size: 12px;
- line-height: 12px;
- background: #fff;
- cursor: pointer;
- opacity: 0;
- -webkit-transition: color 0.3s ease, opacity 0.15s ease;
- transition: color 0.3s ease, opacity 0.15s ease;
-}
-.ant-cascader-picker-clear:hover {
- color: rgba(0, 0, 0, 0.45);
-}
-.ant-cascader-picker:hover .ant-cascader-picker-clear {
- opacity: 1;
-}
-.ant-cascader-picker-arrow {
- position: absolute;
- top: 50%;
- right: 12px;
- z-index: 1;
- width: 12px;
- height: 12px;
- margin-top: -6px;
- color: rgba(0, 0, 0, 0.25);
- font-size: 12px;
- line-height: 12px;
- -webkit-transition: -webkit-transform 0.2s;
- transition: -webkit-transform 0.2s;
- transition: transform 0.2s;
- transition: transform 0.2s, -webkit-transform 0.2s;
-}
-.ant-cascader-picker-arrow.ant-cascader-picker-arrow-expand {
- -webkit-transform: rotate(180deg);
- transform: rotate(180deg);
-}
-.ant-cascader-picker-label:hover + .ant-cascader-input {
- border-color: #40a9ff;
- border-right-width: 1px !important;
-}
-.ant-cascader-picker-small .ant-cascader-picker-clear,
-.ant-cascader-picker-small .ant-cascader-picker-arrow {
- right: 8px;
-}
-.ant-cascader-menus {
- position: absolute;
- z-index: 1050;
- font-size: 14px;
- white-space: nowrap;
- background: #fff;
- border-radius: 2px;
- -webkit-box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
- box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
-}
-.ant-cascader-menus ul,
-.ant-cascader-menus ol {
- margin: 0;
- list-style: none;
-}
-.ant-cascader-menus-empty,
-.ant-cascader-menus-hidden {
- display: none;
-}
-.ant-cascader-menus.slide-up-enter.slide-up-enter-active.ant-cascader-menus-placement-bottomLeft,
-.ant-cascader-menus.slide-up-appear.slide-up-appear-active.ant-cascader-menus-placement-bottomLeft {
- -webkit-animation-name: antSlideUpIn;
- animation-name: antSlideUpIn;
-}
-.ant-cascader-menus.slide-up-enter.slide-up-enter-active.ant-cascader-menus-placement-topLeft,
-.ant-cascader-menus.slide-up-appear.slide-up-appear-active.ant-cascader-menus-placement-topLeft {
- -webkit-animation-name: antSlideDownIn;
- animation-name: antSlideDownIn;
-}
-.ant-cascader-menus.slide-up-leave.slide-up-leave-active.ant-cascader-menus-placement-bottomLeft {
- -webkit-animation-name: antSlideUpOut;
- animation-name: antSlideUpOut;
-}
-.ant-cascader-menus.slide-up-leave.slide-up-leave-active.ant-cascader-menus-placement-topLeft {
- -webkit-animation-name: antSlideDownOut;
- animation-name: antSlideDownOut;
-}
-.ant-cascader-menu {
- display: inline-block;
- min-width: 111px;
- height: 180px;
- margin: 0;
- padding: 4px 0;
- overflow: auto;
- vertical-align: top;
- list-style: none;
- border-right: 1px solid #f0f0f0;
- -ms-overflow-style: -ms-autohiding-scrollbar;
-}
-.ant-cascader-menu:first-child {
- border-radius: 2px 0 0 2px;
-}
-.ant-cascader-menu:last-child {
- margin-right: -1px;
- border-right-color: transparent;
- border-radius: 0 2px 2px 0;
-}
-.ant-cascader-menu:only-child {
- border-radius: 2px;
-}
-.ant-cascader-menu-item {
- padding: 5px 12px;
- line-height: 22px;
- white-space: nowrap;
- cursor: pointer;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
-}
-.ant-cascader-menu-item:hover {
- background: #f5f5f5;
-}
-.ant-cascader-menu-item-disabled {
- color: rgba(0, 0, 0, 0.25);
- cursor: not-allowed;
-}
-.ant-cascader-menu-item-disabled:hover {
- background: transparent;
-}
-.ant-cascader-menu-empty .ant-cascader-menu-item {
- color: rgba(0, 0, 0, 0.25);
- cursor: default;
- pointer-events: none;
-}
-.ant-cascader-menu-item-active:not(.ant-cascader-menu-item-disabled),
-.ant-cascader-menu-item-active:not(.ant-cascader-menu-item-disabled):hover {
- font-weight: 600;
- background-color: #e6f7ff;
-}
-.ant-cascader-menu-item-expand {
- position: relative;
- padding-right: 24px;
-}
-.ant-cascader-menu-item-expand .ant-cascader-menu-item-expand-icon,
-.ant-cascader-menu-item-loading-icon {
- display: inline-block;
- font-size: 10px;
- position: absolute;
- right: 12px;
- color: rgba(0, 0, 0, 0.45);
-}
-.ant-cascader-menu-item-disabled.ant-cascader-menu-item-expand .ant-cascader-menu-item-expand-icon,
-.ant-cascader-menu-item-disabled.ant-cascader-menu-item-loading-icon {
- color: rgba(0, 0, 0, 0.25);
-}
-.ant-cascader-menu-item .ant-cascader-menu-item-keyword {
- color: #ff4d4f;
-}
-.ant-cascader-picker-rtl .ant-cascader-input.ant-input {
- padding-right: 11px;
- padding-left: 24px;
- text-align: right;
-}
-.ant-cascader-picker-rtl {
- direction: rtl;
-}
-.ant-cascader-picker-rtl .ant-cascader-picker-label {
- padding: 0 12px 0 20px;
- text-align: right;
-}
-.ant-cascader-picker-rtl .ant-cascader-picker-clear {
- right: auto;
- left: 12px;
-}
-.ant-cascader-picker-rtl .ant-cascader-picker-arrow {
- right: auto;
- left: 12px;
-}
-.ant-cascader-picker-rtl.ant-cascader-picker-small .ant-cascader-picker-clear,
-.ant-cascader-picker-rtl.ant-cascader-picker-small .ant-cascader-picker-arrow {
- right: auto;
- left: 8px;
-}
-.ant-cascader-menu-rtl .ant-cascader-menu {
- direction: rtl;
- border-right: none;
- border-left: 1px solid #f0f0f0;
-}
-.ant-cascader-menu-rtl .ant-cascader-menu:first-child {
- border-radius: 0 2px 2px 0;
-}
-.ant-cascader-menu-rtl .ant-cascader-menu:last-child {
- margin-right: 0;
- margin-left: -1px;
- border-left-color: transparent;
- border-radius: 2px 0 0 2px;
-}
-.ant-cascader-menu-rtl .ant-cascader-menu:only-child {
- border-radius: 2px;
-}
-.ant-cascader-menu-rtl .ant-cascader-menu-item-expand {
- padding-right: 12px;
- padding-left: 24px;
-}
-.ant-cascader-menu-rtl .ant-cascader-menu-item-expand .ant-cascader-menu-item-expand-icon,
-.ant-cascader-menu-rtl .ant-cascader-menu-item-loading-icon {
- right: auto;
- left: 12px;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-input-affix-wrapper {
- position: relative;
- display: inline-block;
- width: 100%;
- min-width: 0;
- padding: 4px 11px;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- line-height: 1.5715;
- background-color: #fff;
- background-image: none;
- border: 1px solid #d9d9d9;
- border-radius: 2px;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
- display: -webkit-inline-box;
- display: -ms-inline-flexbox;
- display: inline-flex;
-}
-.ant-input-affix-wrapper::-moz-placeholder {
- opacity: 1;
-}
-.ant-input-affix-wrapper::-webkit-input-placeholder {
- color: #bfbfbf;
-}
-.ant-input-affix-wrapper:-ms-input-placeholder {
- color: #bfbfbf;
-}
-.ant-input-affix-wrapper::-ms-input-placeholder {
- color: #bfbfbf;
-}
-.ant-input-affix-wrapper::placeholder {
- color: #bfbfbf;
-}
-.ant-input-affix-wrapper:-moz-placeholder-shown {
- text-overflow: ellipsis;
-}
-.ant-input-affix-wrapper:-ms-input-placeholder {
- text-overflow: ellipsis;
-}
-.ant-input-affix-wrapper:placeholder-shown {
- text-overflow: ellipsis;
-}
-.ant-input-affix-wrapper:hover {
- border-color: #40a9ff;
- border-right-width: 1px !important;
-}
-.ant-input-rtl .ant-input-affix-wrapper:hover {
- border-right-width: 0;
- border-left-width: 1px !important;
-}
-.ant-input-affix-wrapper:focus,
-.ant-input-affix-wrapper-focused {
- border-color: #40a9ff;
- border-right-width: 1px !important;
- outline: 0;
- -webkit-box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
- box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
-}
-.ant-input-rtl .ant-input-affix-wrapper:focus,
-.ant-input-rtl .ant-input-affix-wrapper-focused {
- border-right-width: 0;
- border-left-width: 1px !important;
-}
-.ant-input-affix-wrapper-disabled {
- color: rgba(0, 0, 0, 0.25);
- background-color: #f5f5f5;
- cursor: not-allowed;
- opacity: 1;
-}
-.ant-input-affix-wrapper-disabled:hover {
- border-color: #d9d9d9;
- border-right-width: 1px !important;
-}
-.ant-input-affix-wrapper[disabled] {
- color: rgba(0, 0, 0, 0.25);
- background-color: #f5f5f5;
- cursor: not-allowed;
- opacity: 1;
-}
-.ant-input-affix-wrapper[disabled]:hover {
- border-color: #d9d9d9;
- border-right-width: 1px !important;
-}
-textarea.ant-input-affix-wrapper {
- max-width: 100%;
- height: auto;
- min-height: 32px;
- line-height: 1.5715;
- vertical-align: bottom;
- -webkit-transition: all 0.3s, height 0s;
- transition: all 0.3s, height 0s;
-}
-.ant-input-affix-wrapper-lg {
- padding: 6.5px 11px;
- font-size: 16px;
-}
-.ant-input-affix-wrapper-sm {
- padding: 0px 7px;
-}
-.ant-input-affix-wrapper-rtl {
- direction: rtl;
-}
-.ant-input-affix-wrapper-disabled .ant-input[disabled] {
- background: transparent;
-}
-.ant-input-affix-wrapper > input.ant-input {
- padding: 0;
- border: none;
- outline: none;
-}
-.ant-input-affix-wrapper > input.ant-input:focus {
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-.ant-input-affix-wrapper::before {
- width: 0;
- visibility: hidden;
- content: '\a0';
-}
-.ant-input-prefix,
-.ant-input-suffix {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-flex: 0;
- -ms-flex: none;
- flex: none;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
-}
-.ant-input-prefix {
- margin-right: 4px;
-}
-.ant-input-suffix {
- margin-left: 4px;
-}
-.ant-input-clear-icon {
- color: rgba(0, 0, 0, 0.25);
- font-size: 12px;
- cursor: pointer;
- -webkit-transition: color 0.3s;
- transition: color 0.3s;
- margin: 0 4px;
- vertical-align: -1px;
-}
-.ant-input-clear-icon:hover {
- color: rgba(0, 0, 0, 0.45);
-}
-.ant-input-clear-icon:active {
- color: rgba(0, 0, 0, 0.65);
-}
-.ant-input-clear-icon + i {
- margin-left: 6px;
-}
-.ant-input-clear-icon-hidden {
- visibility: hidden;
-}
-.ant-input-clear-icon:last-child {
- margin-right: 0;
-}
-.ant-input-affix-wrapper-textarea-with-clear-btn {
- padding: 0 !important;
- border: 0 !important;
-}
-.ant-input-textarea-clear-icon {
- color: rgba(0, 0, 0, 0.25);
- font-size: 12px;
- cursor: pointer;
- -webkit-transition: color 0.3s;
- transition: color 0.3s;
- position: absolute;
- top: 0;
- right: 0;
- z-index: 1;
- margin: 8px 8px 0 0;
-}
-.ant-input-textarea-clear-icon:hover {
- color: rgba(0, 0, 0, 0.45);
-}
-.ant-input-textarea-clear-icon:active {
- color: rgba(0, 0, 0, 0.65);
-}
-.ant-input-textarea-clear-icon + i {
- margin-left: 6px;
-}
-.ant-input-textarea-clear-icon-hidden {
- visibility: hidden;
-}
-.ant-input {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- font-variant: tabular-nums;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- position: relative;
- display: inline-block;
- width: 100%;
- min-width: 0;
- padding: 4px 11px;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- line-height: 1.5715;
- background-color: #fff;
- background-image: none;
- border: 1px solid #d9d9d9;
- border-radius: 2px;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
-}
-.ant-input::-moz-placeholder {
- opacity: 1;
-}
-.ant-input::-webkit-input-placeholder {
- color: #bfbfbf;
-}
-.ant-input:-ms-input-placeholder {
- color: #bfbfbf;
-}
-.ant-input::-ms-input-placeholder {
- color: #bfbfbf;
-}
-.ant-input::placeholder {
- color: #bfbfbf;
-}
-.ant-input:-moz-placeholder-shown {
- text-overflow: ellipsis;
-}
-.ant-input:-ms-input-placeholder {
- text-overflow: ellipsis;
-}
-.ant-input:placeholder-shown {
- text-overflow: ellipsis;
-}
-.ant-input:hover {
- border-color: #40a9ff;
- border-right-width: 1px !important;
-}
-.ant-input-rtl .ant-input:hover {
- border-right-width: 0;
- border-left-width: 1px !important;
-}
-.ant-input:focus,
-.ant-input-focused {
- border-color: #40a9ff;
- border-right-width: 1px !important;
- outline: 0;
- -webkit-box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
- box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
-}
-.ant-input-rtl .ant-input:focus,
-.ant-input-rtl .ant-input-focused {
- border-right-width: 0;
- border-left-width: 1px !important;
-}
-.ant-input-disabled {
- color: rgba(0, 0, 0, 0.25);
- background-color: #f5f5f5;
- cursor: not-allowed;
- opacity: 1;
-}
-.ant-input-disabled:hover {
- border-color: #d9d9d9;
- border-right-width: 1px !important;
-}
-.ant-input[disabled] {
- color: rgba(0, 0, 0, 0.25);
- background-color: #f5f5f5;
- cursor: not-allowed;
- opacity: 1;
-}
-.ant-input[disabled]:hover {
- border-color: #d9d9d9;
- border-right-width: 1px !important;
-}
-textarea.ant-input {
- max-width: 100%;
- height: auto;
- min-height: 32px;
- line-height: 1.5715;
- vertical-align: bottom;
- -webkit-transition: all 0.3s, height 0s;
- transition: all 0.3s, height 0s;
-}
-.ant-input-lg {
- padding: 6.5px 11px;
- font-size: 16px;
-}
-.ant-input-sm {
- padding: 0px 7px;
-}
-.ant-input-rtl {
- direction: rtl;
-}
-.ant-input-group {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- position: relative;
- display: table;
- width: 100%;
- border-collapse: separate;
- border-spacing: 0;
-}
-.ant-input-group[class*='col-'] {
- float: none;
- padding-right: 0;
- padding-left: 0;
-}
-.ant-input-group > [class*='col-'] {
- padding-right: 8px;
-}
-.ant-input-group > [class*='col-']:last-child {
- padding-right: 0;
-}
-.ant-input-group-addon,
-.ant-input-group-wrap,
-.ant-input-group > .ant-input {
- display: table-cell;
-}
-.ant-input-group-addon:not(:first-child):not(:last-child),
-.ant-input-group-wrap:not(:first-child):not(:last-child),
-.ant-input-group > .ant-input:not(:first-child):not(:last-child) {
- border-radius: 0;
-}
-.ant-input-group-addon,
-.ant-input-group-wrap {
- width: 1px;
- white-space: nowrap;
- vertical-align: middle;
-}
-.ant-input-group-wrap > * {
- display: block !important;
-}
-.ant-input-group .ant-input {
- float: left;
- width: 100%;
- margin-bottom: 0;
- text-align: inherit;
-}
-.ant-input-group .ant-input:focus {
- z-index: 1;
- border-right-width: 1px;
-}
-.ant-input-group .ant-input:hover {
- z-index: 1;
- border-right-width: 1px;
-}
-.ant-input-group-addon {
- position: relative;
- padding: 0 11px;
- color: rgba(0, 0, 0, 0.65);
- font-weight: normal;
- font-size: 14px;
- text-align: center;
- background-color: #fafafa;
- border: 1px solid #d9d9d9;
- border-radius: 2px;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
-}
-.ant-input-group-addon .ant-select {
- margin: -5px -11px;
-}
-.ant-input-group-addon .ant-select.ant-select-single:not(.ant-select-customize-input) .ant-select-selector {
- background-color: inherit;
- border: 1px solid transparent;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-.ant-input-group-addon .ant-select-open .ant-select-selector,
-.ant-input-group-addon .ant-select-focused .ant-select-selector {
- color: #1890ff;
-}
-.ant-input-group-addon > i:only-child::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- content: '';
-}
-.ant-input-group > .ant-input:first-child,
-.ant-input-group-addon:first-child {
- border-top-right-radius: 0;
- border-bottom-right-radius: 0;
-}
-.ant-input-group > .ant-input:first-child .ant-select .ant-select-selector,
-.ant-input-group-addon:first-child .ant-select .ant-select-selector {
- border-top-right-radius: 0;
- border-bottom-right-radius: 0;
-}
-.ant-input-group > .ant-input-affix-wrapper:not(:first-child) .ant-input {
- border-top-left-radius: 0;
- border-bottom-left-radius: 0;
-}
-.ant-input-group > .ant-input-affix-wrapper:not(:last-child) .ant-input {
- border-top-right-radius: 0;
- border-bottom-right-radius: 0;
-}
-.ant-input-group-addon:first-child {
- border-right: 0;
-}
-.ant-input-group-addon:last-child {
- border-left: 0;
-}
-.ant-input-group > .ant-input:last-child,
-.ant-input-group-addon:last-child {
- border-top-left-radius: 0;
- border-bottom-left-radius: 0;
-}
-.ant-input-group > .ant-input:last-child .ant-select .ant-select-selector,
-.ant-input-group-addon:last-child .ant-select .ant-select-selector {
- border-top-left-radius: 0;
- border-bottom-left-radius: 0;
-}
-.ant-input-group-lg .ant-input,
-.ant-input-group-lg > .ant-input-group-addon {
- padding: 6.5px 11px;
- font-size: 16px;
-}
-.ant-input-group-sm .ant-input,
-.ant-input-group-sm > .ant-input-group-addon {
- padding: 0px 7px;
-}
-.ant-input-group-lg .ant-select-single .ant-select-selector {
- height: 40px;
-}
-.ant-input-group-sm .ant-select-single .ant-select-selector {
- height: 24px;
-}
-.ant-input-group .ant-input-affix-wrapper:not(:first-child) {
- border-top-left-radius: 0;
- border-bottom-left-radius: 0;
-}
-.ant-input-group .ant-input-affix-wrapper:not(:last-child) {
- border-top-right-radius: 0;
- border-bottom-right-radius: 0;
-}
-.ant-input-group.ant-input-group-compact {
- display: block;
-}
-.ant-input-group.ant-input-group-compact::before {
- display: table;
- content: '';
-}
-.ant-input-group.ant-input-group-compact::after {
- display: table;
- clear: both;
- content: '';
-}
-.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child),
-.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child),
-.ant-input-group.ant-input-group-compact > .ant-input:not(:first-child):not(:last-child) {
- border-right-width: 1px;
-}
-.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child):hover,
-.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child):hover,
-.ant-input-group.ant-input-group-compact > .ant-input:not(:first-child):not(:last-child):hover {
- z-index: 1;
-}
-.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child):focus,
-.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child):focus,
-.ant-input-group.ant-input-group-compact > .ant-input:not(:first-child):not(:last-child):focus {
- z-index: 1;
-}
-.ant-input-group.ant-input-group-compact > * {
- display: inline-block;
- float: none;
- vertical-align: top;
- border-radius: 0;
-}
-.ant-input-group.ant-input-group-compact > .ant-input-affix-wrapper {
- display: -webkit-inline-box;
- display: -ms-inline-flexbox;
- display: inline-flex;
-}
-.ant-input-group.ant-input-group-compact > .ant-picker-range {
- display: -webkit-inline-box;
- display: -ms-inline-flexbox;
- display: inline-flex;
-}
-.ant-input-group.ant-input-group-compact > *:not(:last-child) {
- margin-right: -1px;
- border-right-width: 1px;
-}
-.ant-input-group.ant-input-group-compact .ant-input {
- float: none;
-}
-.ant-input-group.ant-input-group-compact > .ant-select > .ant-select-selector,
-.ant-input-group.ant-input-group-compact > .ant-calendar-picker .ant-input,
-.ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input,
-.ant-input-group.ant-input-group-compact > .ant-cascader-picker .ant-input,
-.ant-input-group.ant-input-group-compact > .ant-mention-wrapper .ant-mention-editor,
-.ant-input-group.ant-input-group-compact > .ant-time-picker .ant-time-picker-input,
-.ant-input-group.ant-input-group-compact > .ant-input-group-wrapper .ant-input {
- border-right-width: 1px;
- border-radius: 0;
-}
-.ant-input-group.ant-input-group-compact > .ant-select > .ant-select-selector:hover,
-.ant-input-group.ant-input-group-compact > .ant-calendar-picker .ant-input:hover,
-.ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input:hover,
-.ant-input-group.ant-input-group-compact > .ant-cascader-picker .ant-input:hover,
-.ant-input-group.ant-input-group-compact > .ant-mention-wrapper .ant-mention-editor:hover,
-.ant-input-group.ant-input-group-compact > .ant-time-picker .ant-time-picker-input:hover,
-.ant-input-group.ant-input-group-compact > .ant-input-group-wrapper .ant-input:hover {
- z-index: 1;
-}
-.ant-input-group.ant-input-group-compact > .ant-select > .ant-select-selector:focus,
-.ant-input-group.ant-input-group-compact > .ant-calendar-picker .ant-input:focus,
-.ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input:focus,
-.ant-input-group.ant-input-group-compact > .ant-cascader-picker .ant-input:focus,
-.ant-input-group.ant-input-group-compact > .ant-mention-wrapper .ant-mention-editor:focus,
-.ant-input-group.ant-input-group-compact > .ant-time-picker .ant-time-picker-input:focus,
-.ant-input-group.ant-input-group-compact > .ant-input-group-wrapper .ant-input:focus {
- z-index: 1;
-}
-.ant-input-group.ant-input-group-compact > .ant-select-focused {
- z-index: 1;
-}
-.ant-input-group.ant-input-group-compact > .ant-select > .ant-select-arrow {
- z-index: 1;
-}
-.ant-input-group.ant-input-group-compact > *:first-child,
-.ant-input-group.ant-input-group-compact > .ant-select:first-child > .ant-select-selector,
-.ant-input-group.ant-input-group-compact > .ant-calendar-picker:first-child .ant-input,
-.ant-input-group.ant-input-group-compact > .ant-select-auto-complete:first-child .ant-input,
-.ant-input-group.ant-input-group-compact > .ant-cascader-picker:first-child .ant-input,
-.ant-input-group.ant-input-group-compact > .ant-mention-wrapper:first-child .ant-mention-editor,
-.ant-input-group.ant-input-group-compact > .ant-time-picker:first-child .ant-time-picker-input {
- border-top-left-radius: 2px;
- border-bottom-left-radius: 2px;
-}
-.ant-input-group.ant-input-group-compact > *:last-child,
-.ant-input-group.ant-input-group-compact > .ant-select:last-child > .ant-select-selector,
-.ant-input-group.ant-input-group-compact > .ant-calendar-picker:last-child .ant-input,
-.ant-input-group.ant-input-group-compact > .ant-select-auto-complete:last-child .ant-input,
-.ant-input-group.ant-input-group-compact > .ant-cascader-picker:last-child .ant-input,
-.ant-input-group.ant-input-group-compact > .ant-cascader-picker-focused:last-child .ant-input,
-.ant-input-group.ant-input-group-compact > .ant-mention-wrapper:last-child .ant-mention-editor,
-.ant-input-group.ant-input-group-compact > .ant-time-picker:last-child .ant-time-picker-input {
- border-right-width: 1px;
- border-top-right-radius: 2px;
- border-bottom-right-radius: 2px;
-}
-.ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input {
- vertical-align: top;
-}
-.ant-input-group > .ant-input-rtl:first-child,
-.ant-input-group-rtl .ant-input-group-addon:first-child {
- border-radius: 0 2px 2px 0;
-}
-.ant-input-group-rtl .ant-input-group-addon:first-child {
- border-right: 1px solid #d9d9d9;
- border-left: 0;
-}
-.ant-input-group-rtl .ant-input-group-addon:last-child {
- border-right: 0;
- border-left: 1px solid #d9d9d9;
-}
-.ant-input-group-rtl .ant-input-group > .ant-input:last-child,
-.ant-input-group-rtl .ant-input-group-addon:last-child {
- border-radius: 2px 0 0 2px;
-}
-.ant-input-group-rtl.ant-input-group .ant-input-affix-wrapper:not(:first-child) {
- border-radius: 2px 0 0 2px;
-}
-.ant-input-group-rtl.ant-input-group .ant-input-affix-wrapper:not(:last-child) {
- border-radius: 0 2px 2px 0;
-}
-.ant-input-group-rtl.ant-input-group.ant-input-group-compact > *:not(:last-child) {
- margin-right: 0;
- margin-left: -1px;
- border-left-width: 1px;
-}
-.ant-input-group-rtl.ant-input-group.ant-input-group-compact > *:first-child,
-.ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-select:first-child > .ant-select-selector,
-.ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-calendar-picker:first-child .ant-input,
-.ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-select-auto-complete:first-child .ant-input,
-.ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-cascader-picker:first-child .ant-input,
-.ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-mention-wrapper:first-child .ant-mention-editor,
-.ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-time-picker:first-child .ant-time-picker-input {
- border-radius: 0 2px 2px 0;
-}
-.ant-input-group-rtl.ant-input-group.ant-input-group-compact > *:last-child,
-.ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-select:last-child > .ant-select-selector,
-.ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-calendar-picker:last-child .ant-input,
-.ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-select-auto-complete:last-child .ant-input,
-.ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-cascader-picker:last-child .ant-input,
-.ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-cascader-picker-focused:last-child .ant-input,
-.ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-mention-wrapper:last-child .ant-mention-editor,
-.ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-time-picker:last-child .ant-time-picker-input {
- border-left-width: 1px;
- border-radius: 2px 0 0 2px;
-}
-.ant-input-group-wrapper {
- display: inline-block;
- width: 100%;
- text-align: start;
- vertical-align: top;
-}
-.ant-input-password-icon {
- color: rgba(0, 0, 0, 0.45);
- cursor: pointer;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
-}
-.ant-input-password-icon:hover {
- color: rgba(0, 0, 0, 0.85);
-}
-.ant-input[type='color'] {
- height: 32px;
-}
-.ant-input[type='color'].ant-input-lg {
- height: 40px;
-}
-.ant-input[type='color'].ant-input-sm {
- height: 24px;
- padding-top: 3px;
- padding-bottom: 3px;
-}
-.ant-input-search-icon {
- padding: 0 9px;
-}
-.ant-input-search-icon::before {
- -webkit-transform: translateX(-10px);
- transform: translateX(-10px);
-}
-.ant-input-search-icon::after {
- width: 32px;
-}
-.ant-input-affix-wrapper-lg .ant-input-search-icon {
- padding: 0 12px;
-}
-.ant-input-affix-wrapper-lg .ant-input-search-icon::before {
- -webkit-transform: translateX(-13px);
- transform: translateX(-13px);
-}
-.ant-input-affix-wrapper-lg .ant-input-search-icon::after {
- width: 40px;
-}
-.ant-input-affix-wrapper-sm .ant-input-search-icon {
- padding: 0 6px;
-}
-.ant-input-affix-wrapper-sm .ant-input-search-icon::before {
- -webkit-transform: translateX(-7px);
- transform: translateX(-7px);
-}
-.ant-input-affix-wrapper-sm .ant-input-search-icon::after {
- width: 24px;
-}
-.ant-input-search-icon {
- margin-left: 0.5em;
- color: rgba(0, 0, 0, 0.45);
- cursor: pointer;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
-}
-.ant-input-search-icon:hover {
- color: rgba(0, 0, 0, 0.85);
-}
-.ant-input-search-icon::before {
- position: absolute;
- top: 0;
- bottom: 0;
- display: block;
- border-left: 1px solid #d9d9d9;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
- content: '';
-}
-.ant-input-search-icon::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- content: '';
-}
-.ant-input-search:not(.ant-input-search-enter-button) {
- padding-right: 0;
-}
-.ant-input-search-enter-button input {
- border-right: 0;
-}
-.ant-input-search-enter-button input:hover,
-.ant-input-search-enter-button input:focus {
- border-color: #40a9ff;
-}
-.ant-input-search-enter-button.ant-input-affix-wrapper {
- border-right: 0;
-}
-.ant-input-search-enter-button + .ant-input-group-addon,
-.ant-input-search-enter-button input + .ant-input-group-addon {
- padding: 0;
- border: 0;
-}
-.ant-input-search-enter-button + .ant-input-group-addon .ant-input-search-button,
-.ant-input-search-enter-button input + .ant-input-group-addon .ant-input-search-button {
- border-top-left-radius: 0;
- border-bottom-left-radius: 0;
-}
-.ant-input-group-wrapper-rtl {
- direction: rtl;
-}
-.ant-input-group-rtl {
- direction: rtl;
-}
-.ant-input-affix-wrapper.ant-input-affix-wrapper-rtl > input.ant-input {
- border: none;
- outline: none;
-}
-.ant-input-affix-wrapper-rtl .ant-input-prefix {
- margin: 0 0 0 4px;
-}
-.ant-input-affix-wrapper-rtl .ant-input-suffix {
- margin: 0 4px 0 0;
-}
-.ant-input-affix-wrapper-rtl .ant-input-clear-icon:last-child {
- margin-right: 4px;
- margin-left: 0;
-}
-.ant-input-affix-wrapper-rtl .ant-input-textarea-clear-icon {
- right: auto;
- left: 0;
- margin: 8px 0 0 8px;
-}
-.ant-input-search-rtl {
- direction: rtl;
-}
-.ant-input-search-rtl .ant-input-search-icon {
- margin-right: 0.5em;
- margin-left: 0;
-}
-.ant-input-search-rtl .ant-input-search-icon::before {
- border-left: none;
-}
-.ant-input-search-rtl .ant-input-search-icon::after {
- right: auto;
- left: 0;
- border-right: 1px solid #d9d9d9;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
-}
-.ant-input-search-rtl.ant-input-search:not(.ant-input-search-enter-button) {
- padding-right: 11px;
- padding-left: 0;
-}
-.ant-input-search-rtl.ant-input-search-enter-button input {
- border-right: 1px solid #d9d9d9;
- border-left: 0;
-}
-.ant-input-search-rtl.ant-input-search-enter-button input:hover,
-.ant-input-search-rtl.ant-input-search-enter-button input:focus {
- border-color: #40a9ff;
-}
-.ant-input-search-rtl.ant-input-search-enter-button.ant-input-affix-wrapper {
- border-right: 1px solid #d9d9d9;
- border-left: 0;
-}
-.ant-input-search-rtl.ant-input-search-enter-button.ant-input-affix-wrapper:hover,
-.ant-input-search-rtl.ant-input-search-enter-button.ant-input-affix-wrapper:focus {
- border-color: #40a9ff;
-}
-.ant-input-search-rtl.ant-input-search-enter-button + .ant-input-group-addon .ant-input-search-button,
-.ant-input-search-rtl.ant-input-search-enter-button input + .ant-input-group-addon .ant-input-search-button {
- width: 100%;
- border-radius: 2px 0 0 2px;
-}
-@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
- .ant-input {
- height: 32px;
- }
- .ant-input-lg {
- height: 40px;
- }
- .ant-input-sm {
- height: 24px;
- }
- .ant-input-affix-wrapper > input.ant-input {
- height: auto;
- }
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-@-webkit-keyframes antCheckboxEffect {
- 0% {
- -webkit-transform: scale(1);
- transform: scale(1);
- opacity: 0.5;
- }
- 100% {
- -webkit-transform: scale(1.6);
- transform: scale(1.6);
- opacity: 0;
- }
-}
-@keyframes antCheckboxEffect {
- 0% {
- -webkit-transform: scale(1);
- transform: scale(1);
- opacity: 0.5;
- }
- 100% {
- -webkit-transform: scale(1.6);
- transform: scale(1.6);
- opacity: 0;
- }
-}
-.ant-checkbox {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- position: relative;
- top: -0.09em;
- display: inline-block;
- line-height: 1;
- white-space: nowrap;
- vertical-align: middle;
- outline: none;
- cursor: pointer;
-}
-.ant-checkbox-wrapper:hover .ant-checkbox-inner,
-.ant-checkbox:hover .ant-checkbox-inner,
-.ant-checkbox-input:focus + .ant-checkbox-inner {
- border-color: #1890ff;
-}
-.ant-checkbox-checked::after {
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- border: 1px solid #1890ff;
- border-radius: 2px;
- visibility: hidden;
- -webkit-animation: antCheckboxEffect 0.36s ease-in-out;
- animation: antCheckboxEffect 0.36s ease-in-out;
- -webkit-animation-fill-mode: backwards;
- animation-fill-mode: backwards;
- content: '';
-}
-.ant-checkbox:hover::after,
-.ant-checkbox-wrapper:hover .ant-checkbox::after {
- visibility: visible;
-}
-.ant-checkbox-inner {
- position: relative;
- top: 0;
- left: 0;
- display: block;
- width: 16px;
- height: 16px;
- direction: ltr;
- background-color: #fff;
- border: 1px solid #d9d9d9;
- border-radius: 2px;
- border-collapse: separate;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
-}
-.ant-checkbox-inner::after {
- position: absolute;
- top: 50%;
- left: 22%;
- display: table;
- width: 5.71428571px;
- height: 9.14285714px;
- border: 2px solid #fff;
- border-top: 0;
- border-left: 0;
- -webkit-transform: rotate(45deg) scale(0) translate(-50%, -50%);
- transform: rotate(45deg) scale(0) translate(-50%, -50%);
- opacity: 0;
- -webkit-transition: all 0.1s cubic-bezier(0.71, -0.46, 0.88, 0.6), opacity 0.1s;
- transition: all 0.1s cubic-bezier(0.71, -0.46, 0.88, 0.6), opacity 0.1s;
- content: ' ';
-}
-.ant-checkbox-input {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- z-index: 1;
- width: 100%;
- height: 100%;
- cursor: pointer;
- opacity: 0;
-}
-.ant-checkbox-checked .ant-checkbox-inner::after {
- position: absolute;
- display: table;
- border: 2px solid #fff;
- border-top: 0;
- border-left: 0;
- -webkit-transform: rotate(45deg) scale(1) translate(-50%, -50%);
- transform: rotate(45deg) scale(1) translate(-50%, -50%);
- opacity: 1;
- -webkit-transition: all 0.2s cubic-bezier(0.12, 0.4, 0.29, 1.46) 0.1s;
- transition: all 0.2s cubic-bezier(0.12, 0.4, 0.29, 1.46) 0.1s;
- content: ' ';
-}
-.ant-checkbox-checked .ant-checkbox-inner {
- background-color: #1890ff;
- border-color: #1890ff;
-}
-.ant-checkbox-disabled {
- cursor: not-allowed;
-}
-.ant-checkbox-disabled.ant-checkbox-checked .ant-checkbox-inner::after {
- border-color: rgba(0, 0, 0, 0.25);
- -webkit-animation-name: none;
- animation-name: none;
-}
-.ant-checkbox-disabled .ant-checkbox-input {
- cursor: not-allowed;
-}
-.ant-checkbox-disabled .ant-checkbox-inner {
- background-color: #f5f5f5;
- border-color: #d9d9d9 !important;
-}
-.ant-checkbox-disabled .ant-checkbox-inner::after {
- border-color: #f5f5f5;
- border-collapse: separate;
- -webkit-animation-name: none;
- animation-name: none;
-}
-.ant-checkbox-disabled + span {
- color: rgba(0, 0, 0, 0.25);
- cursor: not-allowed;
-}
-.ant-checkbox-disabled:hover::after,
-.ant-checkbox-wrapper:hover .ant-checkbox-disabled::after {
- visibility: hidden;
-}
-.ant-checkbox-wrapper {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- display: inline-block;
- line-height: unset;
- cursor: pointer;
-}
-.ant-checkbox-wrapper.ant-checkbox-wrapper-disabled {
- cursor: not-allowed;
-}
-.ant-checkbox-wrapper + .ant-checkbox-wrapper {
- margin-left: 8px;
-}
-.ant-checkbox + span {
- padding-right: 8px;
- padding-left: 8px;
-}
-.ant-checkbox-group {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- display: inline-block;
-}
-.ant-checkbox-group-item {
- display: inline-block;
- margin-right: 8px;
-}
-.ant-checkbox-group-item:last-child {
- margin-right: 0;
-}
-.ant-checkbox-group-item + .ant-checkbox-group-item {
- margin-left: 0;
-}
-.ant-checkbox-indeterminate .ant-checkbox-inner {
- background-color: #fff;
- border-color: #d9d9d9;
-}
-.ant-checkbox-indeterminate .ant-checkbox-inner::after {
- top: 50%;
- left: 50%;
- width: 8px;
- height: 8px;
- background-color: #1890ff;
- border: 0;
- -webkit-transform: translate(-50%, -50%) scale(1);
- transform: translate(-50%, -50%) scale(1);
- opacity: 1;
- content: ' ';
-}
-.ant-checkbox-indeterminate.ant-checkbox-disabled .ant-checkbox-inner::after {
- background-color: rgba(0, 0, 0, 0.25);
- border-color: rgba(0, 0, 0, 0.25);
-}
-.ant-checkbox-rtl {
- direction: rtl;
-}
-.ant-checkbox-group-rtl .ant-checkbox-group-item {
- margin-right: 0;
- margin-left: 8px;
-}
-.ant-checkbox-group-rtl .ant-checkbox-group-item:last-child {
- margin-left: 0 !important;
-}
-.ant-checkbox-group-rtl .ant-checkbox-group-item + .ant-checkbox-group-item {
- margin-left: 8px;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-collapse {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- background-color: #fafafa;
- border: 1px solid #d9d9d9;
- border-bottom: 0;
- border-radius: 2px;
-}
-.ant-collapse > .ant-collapse-item {
- border-bottom: 1px solid #d9d9d9;
-}
-.ant-collapse > .ant-collapse-item:last-child,
-.ant-collapse > .ant-collapse-item:last-child > .ant-collapse-header {
- border-radius: 0 0 2px 2px;
-}
-.ant-collapse > .ant-collapse-item > .ant-collapse-header {
- position: relative;
- padding: 12px 16px;
- padding-left: 40px;
- color: rgba(0, 0, 0, 0.85);
- line-height: 1.5715;
- cursor: pointer;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
-}
-.ant-collapse > .ant-collapse-item > .ant-collapse-header::before {
- display: table;
- content: '';
-}
-.ant-collapse > .ant-collapse-item > .ant-collapse-header::after {
- display: table;
- clear: both;
- content: '';
-}
-.ant-collapse > .ant-collapse-item > .ant-collapse-header .ant-collapse-arrow {
- color: inherit;
- font-style: normal;
- line-height: 0;
- text-align: center;
- text-transform: none;
- vertical-align: -0.125em;
- text-rendering: optimizeLegibility;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
- position: absolute;
- top: 50%;
- left: 16px;
- display: inline-block;
- font-size: 12px;
- -webkit-transform: translateY(-50%);
- transform: translateY(-50%);
-}
-.ant-collapse > .ant-collapse-item > .ant-collapse-header .ant-collapse-arrow > * {
- line-height: 1;
-}
-.ant-collapse > .ant-collapse-item > .ant-collapse-header .ant-collapse-arrow svg {
- display: inline-block;
-}
-.ant-collapse > .ant-collapse-item > .ant-collapse-header .ant-collapse-arrow::before {
- display: none;
-}
-.ant-collapse > .ant-collapse-item > .ant-collapse-header .ant-collapse-arrow .ant-collapse > .ant-collapse-item > .ant-collapse-header .ant-collapse-arrow-icon {
- display: block;
-}
-.ant-collapse > .ant-collapse-item > .ant-collapse-header .ant-collapse-arrow svg {
- -webkit-transition: -webkit-transform 0.24s;
- transition: -webkit-transform 0.24s;
- transition: transform 0.24s;
- transition: transform 0.24s, -webkit-transform 0.24s;
-}
-.ant-collapse > .ant-collapse-item > .ant-collapse-header .ant-collapse-extra {
- float: right;
-}
-.ant-collapse > .ant-collapse-item > .ant-collapse-header:focus {
- outline: none;
-}
-.ant-collapse > .ant-collapse-item.ant-collapse-no-arrow > .ant-collapse-header {
- padding-left: 12px;
-}
-.ant-collapse-icon-position-right > .ant-collapse-item > .ant-collapse-header {
- padding: 12px 16px;
- padding-right: 40px;
-}
-.ant-collapse-icon-position-right > .ant-collapse-item > .ant-collapse-header .ant-collapse-arrow {
- right: 16px;
- left: auto;
-}
-.ant-collapse-anim-active {
- -webkit-transition: height 0.2s cubic-bezier(0.215, 0.61, 0.355, 1);
- transition: height 0.2s cubic-bezier(0.215, 0.61, 0.355, 1);
-}
-.ant-collapse-content {
- overflow: hidden;
- color: rgba(0, 0, 0, 0.65);
- background-color: #fff;
- border-top: 1px solid #d9d9d9;
-}
-.ant-collapse-content > .ant-collapse-content-box {
- padding: 16px;
-}
-.ant-collapse-content-inactive {
- display: none;
-}
-.ant-collapse-item:last-child > .ant-collapse-content {
- border-radius: 0 0 2px 2px;
-}
-.ant-collapse-borderless {
- background-color: #fafafa;
- border: 0;
-}
-.ant-collapse-borderless > .ant-collapse-item {
- border-bottom: 1px solid #d9d9d9;
-}
-.ant-collapse-borderless > .ant-collapse-item:last-child,
-.ant-collapse-borderless > .ant-collapse-item:last-child .ant-collapse-header {
- border-radius: 0;
-}
-.ant-collapse-borderless > .ant-collapse-item > .ant-collapse-content {
- background-color: transparent;
- border-top: 0;
-}
-.ant-collapse-borderless > .ant-collapse-item > .ant-collapse-content > .ant-collapse-content-box {
- padding-top: 4px;
-}
-.ant-collapse-ghost {
- background-color: transparent;
- border: 0;
-}
-.ant-collapse-ghost > .ant-collapse-item {
- border-bottom: 0;
-}
-.ant-collapse-ghost > .ant-collapse-item > .ant-collapse-content {
- background-color: transparent;
- border-top: 0;
-}
-.ant-collapse-ghost > .ant-collapse-item > .ant-collapse-content > .ant-collapse-content-box {
- padding-top: 12px;
- padding-bottom: 12px;
-}
-.ant-collapse .ant-collapse-item-disabled > .ant-collapse-header,
-.ant-collapse .ant-collapse-item-disabled > .ant-collapse-header > .arrow {
- color: rgba(0, 0, 0, 0.25);
- cursor: not-allowed;
-}
-.ant-collapse-rtl {
- direction: rtl;
-}
-.ant-collapse-rtl .ant-collapse > .ant-collapse-item > .ant-collapse-header {
- padding: 12px 16px;
- padding-right: 40px;
-}
-.ant-collapse-rtl.ant-collapse > .ant-collapse-item > .ant-collapse-header .ant-collapse-arrow svg {
- -webkit-transform: rotate(180deg);
- transform: rotate(180deg);
-}
-.ant-collapse-rtl.ant-collapse > .ant-collapse-item > .ant-collapse-header .ant-collapse-extra {
- float: left;
-}
-.ant-collapse-rtl.ant-collapse > .ant-collapse-item.ant-collapse-no-arrow > .ant-collapse-header {
- padding-right: 12px;
- padding-left: 0;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-comment {
- position: relative;
- background-color: inherit;
-}
-.ant-comment-inner {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- padding: 16px 0;
-}
-.ant-comment-avatar {
- position: relative;
- -ms-flex-negative: 0;
- flex-shrink: 0;
- margin-right: 12px;
- cursor: pointer;
-}
-.ant-comment-avatar img {
- width: 32px;
- height: 32px;
- border-radius: 50%;
-}
-.ant-comment-content {
- position: relative;
- -webkit-box-flex: 1;
- -ms-flex: 1 1 auto;
- flex: 1 1 auto;
- min-width: 1px;
- font-size: 14px;
- word-wrap: break-word;
-}
-.ant-comment-content-author {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -ms-flex-wrap: wrap;
- flex-wrap: wrap;
- -webkit-box-pack: start;
- -ms-flex-pack: start;
- justify-content: flex-start;
- margin-bottom: 4px;
- font-size: 14px;
-}
-.ant-comment-content-author > a,
-.ant-comment-content-author > span {
- padding-right: 8px;
- font-size: 12px;
- line-height: 18px;
-}
-.ant-comment-content-author-name {
- color: rgba(0, 0, 0, 0.45);
- font-size: 14px;
- -webkit-transition: color 0.3s;
- transition: color 0.3s;
-}
-.ant-comment-content-author-name > * {
- color: rgba(0, 0, 0, 0.45);
-}
-.ant-comment-content-author-name > *:hover {
- color: rgba(0, 0, 0, 0.45);
-}
-.ant-comment-content-author-time {
- color: #ccc;
- white-space: nowrap;
- cursor: auto;
-}
-.ant-comment-content-detail p {
- margin-bottom: inherit;
- white-space: pre-wrap;
-}
-.ant-comment-actions {
- margin-top: 12px;
- margin-bottom: inherit;
- padding-left: 0;
-}
-.ant-comment-actions > li {
- display: inline-block;
- color: rgba(0, 0, 0, 0.45);
-}
-.ant-comment-actions > li > span {
- margin-right: 10px;
- color: rgba(0, 0, 0, 0.45);
- font-size: 12px;
- cursor: pointer;
- -webkit-transition: color 0.3s;
- transition: color 0.3s;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-.ant-comment-actions > li > span:hover {
- color: #595959;
-}
-.ant-comment-nested {
- margin-left: 44px;
-}
-.ant-comment-rtl {
- direction: rtl;
-}
-.ant-comment-rtl .ant-comment-avatar {
- margin-right: 0;
- margin-left: 12px;
-}
-.ant-comment-rtl .ant-comment-content-author > a,
-.ant-comment-rtl .ant-comment-content-author > span {
- padding-right: 0;
- padding-left: 8px;
-}
-.ant-comment-rtl .ant-comment-actions {
- padding-right: 0;
-}
-.ant-comment-rtl .ant-comment-actions > li > span {
- margin-right: 0;
- margin-left: 10px;
-}
-.ant-comment-rtl .ant-comment-nested {
- margin-right: 44px;
- margin-left: 0;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-descriptions-title {
- margin-bottom: 20px;
- color: rgba(0, 0, 0, 0.85);
- font-weight: bold;
- font-size: 16px;
- line-height: 1.5715;
-}
-.ant-descriptions-view {
- width: 100%;
- overflow: hidden;
- border-radius: 2px;
-}
-.ant-descriptions-view table {
- width: 100%;
- table-layout: fixed;
-}
-.ant-descriptions-row > th,
-.ant-descriptions-row > td {
- padding-bottom: 16px;
-}
-.ant-descriptions-row:last-child {
- border-bottom: none;
-}
-.ant-descriptions-item-label {
- color: rgba(0, 0, 0, 0.85);
- font-weight: normal;
- font-size: 14px;
- line-height: 1.5715;
- text-align: start;
-}
-.ant-descriptions-item-label::after {
- content: ':';
- position: relative;
- top: -0.5px;
- margin: 0 8px 0 2px;
-}
-.ant-descriptions-item-label.ant-descriptions-item-no-colon::after {
- content: ' ';
-}
-.ant-descriptions-item-no-label::after {
- margin: 0;
- content: '';
-}
-.ant-descriptions-item-content {
- display: table-cell;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- line-height: 1.5715;
-}
-.ant-descriptions-item {
- padding-bottom: 0;
-}
-.ant-descriptions-item > span {
- display: -webkit-inline-box;
- display: -ms-inline-flexbox;
- display: inline-flex;
- -webkit-box-align: baseline;
- -ms-flex-align: baseline;
- align-items: baseline;
-}
-.ant-descriptions-middle .ant-descriptions-row > th,
-.ant-descriptions-middle .ant-descriptions-row > td {
- padding-bottom: 12px;
-}
-.ant-descriptions-small .ant-descriptions-row > th,
-.ant-descriptions-small .ant-descriptions-row > td {
- padding-bottom: 8px;
-}
-.ant-descriptions-bordered .ant-descriptions-view {
- border: 1px solid #f0f0f0;
-}
-.ant-descriptions-bordered .ant-descriptions-view > table {
- table-layout: auto;
-}
-.ant-descriptions-bordered .ant-descriptions-item-label,
-.ant-descriptions-bordered .ant-descriptions-item-content {
- padding: 16px 24px;
- border-right: 1px solid #f0f0f0;
-}
-.ant-descriptions-bordered .ant-descriptions-item-label:last-child,
-.ant-descriptions-bordered .ant-descriptions-item-content:last-child {
- border-right: none;
-}
-.ant-descriptions-bordered .ant-descriptions-item-label {
- background-color: #fafafa;
-}
-.ant-descriptions-bordered .ant-descriptions-item-label::after {
- display: none;
-}
-.ant-descriptions-bordered .ant-descriptions-row {
- border-bottom: 1px solid #f0f0f0;
-}
-.ant-descriptions-bordered .ant-descriptions-row:last-child {
- border-bottom: none;
-}
-.ant-descriptions-bordered.ant-descriptions-middle .ant-descriptions-item-label,
-.ant-descriptions-bordered.ant-descriptions-middle .ant-descriptions-item-content {
- padding: 12px 24px;
-}
-.ant-descriptions-bordered.ant-descriptions-small .ant-descriptions-item-label,
-.ant-descriptions-bordered.ant-descriptions-small .ant-descriptions-item-content {
- padding: 8px 16px;
-}
-.ant-descriptions-rtl {
- direction: rtl;
-}
-.ant-descriptions-rtl .ant-descriptions-item-label::after {
- margin: 0 2px 0 8px;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-divider {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- border-top: 1px solid #f0f0f0;
-}
-.ant-divider-vertical {
- position: relative;
- top: -0.06em;
- display: inline-block;
- height: 0.9em;
- margin: 0 8px;
- vertical-align: middle;
- border-top: 0;
- border-left: 1px solid #f0f0f0;
-}
-.ant-divider-horizontal {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- clear: both;
- width: 100%;
- min-width: 100%;
- margin: 24px 0;
-}
-.ant-divider-horizontal.ant-divider-with-text {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- margin: 16px 0;
- color: rgba(0, 0, 0, 0.85);
- font-weight: 500;
- font-size: 16px;
- white-space: nowrap;
- text-align: center;
- border-top: 0;
-}
-.ant-divider-horizontal.ant-divider-with-text::before,
-.ant-divider-horizontal.ant-divider-with-text::after {
- position: relative;
- top: 50%;
- width: 50%;
- border-top: 1px solid #f0f0f0;
- -webkit-transform: translateY(50%);
- transform: translateY(50%);
- content: '';
-}
-.ant-divider-horizontal.ant-divider-with-text-left::before {
- top: 50%;
- width: 5%;
-}
-.ant-divider-horizontal.ant-divider-with-text-left::after {
- top: 50%;
- width: 95%;
-}
-.ant-divider-horizontal.ant-divider-with-text-right::before {
- top: 50%;
- width: 95%;
-}
-.ant-divider-horizontal.ant-divider-with-text-right::after {
- top: 50%;
- width: 5%;
-}
-.ant-divider-inner-text {
- display: inline-block;
- padding: 0 1em;
-}
-.ant-divider-dashed {
- background: none;
- border-color: #f0f0f0;
- border-style: dashed;
- border-width: 1px 0 0;
-}
-.ant-divider-horizontal.ant-divider-with-text.ant-divider-dashed {
- border-top: 0;
-}
-.ant-divider-horizontal.ant-divider-with-text.ant-divider-dashed::before,
-.ant-divider-horizontal.ant-divider-with-text.ant-divider-dashed::after {
- border-style: dashed none none;
-}
-.ant-divider-vertical.ant-divider-dashed {
- border-width: 0 0 0 1px;
-}
-.ant-divider-plain.ant-divider-with-text {
- color: rgba(0, 0, 0, 0.65);
- font-weight: normal;
- font-size: 14px;
-}
-.ant-divider-rtl {
- direction: rtl;
-}
-.ant-divider-rtl.ant-divider-horizontal.ant-divider-with-text-left::before {
- width: 95%;
-}
-.ant-divider-rtl.ant-divider-horizontal.ant-divider-with-text-left::after {
- width: 5%;
-}
-.ant-divider-rtl.ant-divider-horizontal.ant-divider-with-text-right::before {
- width: 5%;
-}
-.ant-divider-rtl.ant-divider-horizontal.ant-divider-with-text-right::after {
- width: 95%;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-drawer {
- position: fixed;
- z-index: 1000;
- width: 0%;
- height: 100%;
- -webkit-transition: height 0s ease 0.3s, width 0s ease 0.3s, -webkit-transform 0.3s cubic-bezier(0.7, 0.3, 0.1, 1);
- transition: height 0s ease 0.3s, width 0s ease 0.3s, -webkit-transform 0.3s cubic-bezier(0.7, 0.3, 0.1, 1);
- transition: transform 0.3s cubic-bezier(0.7, 0.3, 0.1, 1), height 0s ease 0.3s, width 0s ease 0.3s;
- transition: transform 0.3s cubic-bezier(0.7, 0.3, 0.1, 1), height 0s ease 0.3s, width 0s ease 0.3s, -webkit-transform 0.3s cubic-bezier(0.7, 0.3, 0.1, 1);
-}
-.ant-drawer > * {
- -webkit-transition: -webkit-transform 0.3s cubic-bezier(0.7, 0.3, 0.1, 1), -webkit-box-shadow 0.3s cubic-bezier(0.7, 0.3, 0.1, 1);
- transition: -webkit-transform 0.3s cubic-bezier(0.7, 0.3, 0.1, 1), -webkit-box-shadow 0.3s cubic-bezier(0.7, 0.3, 0.1, 1);
- transition: transform 0.3s cubic-bezier(0.7, 0.3, 0.1, 1), box-shadow 0.3s cubic-bezier(0.7, 0.3, 0.1, 1);
- transition: transform 0.3s cubic-bezier(0.7, 0.3, 0.1, 1), box-shadow 0.3s cubic-bezier(0.7, 0.3, 0.1, 1), -webkit-transform 0.3s cubic-bezier(0.7, 0.3, 0.1, 1), -webkit-box-shadow 0.3s cubic-bezier(0.7, 0.3, 0.1, 1);
-}
-.ant-drawer-content-wrapper {
- position: absolute;
- width: 100%;
- height: 100%;
-}
-.ant-drawer .ant-drawer-content {
- width: 100%;
- height: 100%;
-}
-.ant-drawer-left,
-.ant-drawer-right {
- top: 0;
- width: 0%;
- height: 100%;
-}
-.ant-drawer-left .ant-drawer-content-wrapper,
-.ant-drawer-right .ant-drawer-content-wrapper {
- height: 100%;
-}
-.ant-drawer-left.ant-drawer-open,
-.ant-drawer-right.ant-drawer-open {
- width: 100%;
- -webkit-transition: -webkit-transform 0.3s cubic-bezier(0.7, 0.3, 0.1, 1);
- transition: -webkit-transform 0.3s cubic-bezier(0.7, 0.3, 0.1, 1);
- transition: transform 0.3s cubic-bezier(0.7, 0.3, 0.1, 1);
- transition: transform 0.3s cubic-bezier(0.7, 0.3, 0.1, 1), -webkit-transform 0.3s cubic-bezier(0.7, 0.3, 0.1, 1);
-}
-.ant-drawer-left {
- left: 0;
-}
-.ant-drawer-left .ant-drawer-content-wrapper {
- left: 0;
-}
-.ant-drawer-left.ant-drawer-open .ant-drawer-content-wrapper {
- -webkit-box-shadow: 6px 0 16px -8px rgba(0, 0, 0, 0.08), 9px 0 28px 0 rgba(0, 0, 0, 0.05), 12px 0 48px 16px rgba(0, 0, 0, 0.03);
- box-shadow: 6px 0 16px -8px rgba(0, 0, 0, 0.08), 9px 0 28px 0 rgba(0, 0, 0, 0.05), 12px 0 48px 16px rgba(0, 0, 0, 0.03);
-}
-.ant-drawer-right {
- right: 0;
-}
-.ant-drawer-right .ant-drawer-content-wrapper {
- right: 0;
-}
-.ant-drawer-right.ant-drawer-open .ant-drawer-content-wrapper {
- -webkit-box-shadow: -6px 0 16px -8px rgba(0, 0, 0, 0.08), -9px 0 28px 0 rgba(0, 0, 0, 0.05), -12px 0 48px 16px rgba(0, 0, 0, 0.03);
- box-shadow: -6px 0 16px -8px rgba(0, 0, 0, 0.08), -9px 0 28px 0 rgba(0, 0, 0, 0.05), -12px 0 48px 16px rgba(0, 0, 0, 0.03);
-}
-.ant-drawer-right.ant-drawer-open.no-mask {
- right: 1px;
- -webkit-transform: translateX(1px);
- transform: translateX(1px);
-}
-.ant-drawer-top,
-.ant-drawer-bottom {
- left: 0;
- width: 100%;
- height: 0%;
-}
-.ant-drawer-top .ant-drawer-content-wrapper,
-.ant-drawer-bottom .ant-drawer-content-wrapper {
- width: 100%;
-}
-.ant-drawer-top.ant-drawer-open,
-.ant-drawer-bottom.ant-drawer-open {
- height: 100%;
- -webkit-transition: -webkit-transform 0.3s cubic-bezier(0.7, 0.3, 0.1, 1);
- transition: -webkit-transform 0.3s cubic-bezier(0.7, 0.3, 0.1, 1);
- transition: transform 0.3s cubic-bezier(0.7, 0.3, 0.1, 1);
- transition: transform 0.3s cubic-bezier(0.7, 0.3, 0.1, 1), -webkit-transform 0.3s cubic-bezier(0.7, 0.3, 0.1, 1);
-}
-.ant-drawer-top {
- top: 0;
-}
-.ant-drawer-top.ant-drawer-open .ant-drawer-content-wrapper {
- -webkit-box-shadow: 0 6px 16px -8px rgba(0, 0, 0, 0.08), 0 9px 28px 0 rgba(0, 0, 0, 0.05), 0 12px 48px 16px rgba(0, 0, 0, 0.03);
- box-shadow: 0 6px 16px -8px rgba(0, 0, 0, 0.08), 0 9px 28px 0 rgba(0, 0, 0, 0.05), 0 12px 48px 16px rgba(0, 0, 0, 0.03);
-}
-.ant-drawer-bottom {
- bottom: 0;
-}
-.ant-drawer-bottom .ant-drawer-content-wrapper {
- bottom: 0;
-}
-.ant-drawer-bottom.ant-drawer-open .ant-drawer-content-wrapper {
- -webkit-box-shadow: 0 -6px 16px -8px rgba(0, 0, 0, 0.08), 0 -9px 28px 0 rgba(0, 0, 0, 0.05), 0 -12px 48px 16px rgba(0, 0, 0, 0.03);
- box-shadow: 0 -6px 16px -8px rgba(0, 0, 0, 0.08), 0 -9px 28px 0 rgba(0, 0, 0, 0.05), 0 -12px 48px 16px rgba(0, 0, 0, 0.03);
-}
-.ant-drawer-bottom.ant-drawer-open.no-mask {
- bottom: 1px;
- -webkit-transform: translateY(1px);
- transform: translateY(1px);
-}
-.ant-drawer.ant-drawer-open .ant-drawer-mask {
- height: 100%;
- opacity: 1;
- -webkit-transition: none;
- transition: none;
- -webkit-animation: antdDrawerFadeIn 0.3s cubic-bezier(0.7, 0.3, 0.1, 1);
- animation: antdDrawerFadeIn 0.3s cubic-bezier(0.7, 0.3, 0.1, 1);
- pointer-events: auto;
-}
-.ant-drawer-title {
- margin: 0;
- color: rgba(0, 0, 0, 0.85);
- font-weight: 500;
- font-size: 16px;
- line-height: 22px;
-}
-.ant-drawer-content {
- position: relative;
- z-index: 1;
- overflow: auto;
- background-color: #fff;
- background-clip: padding-box;
- border: 0;
-}
-.ant-drawer-close {
- position: absolute;
- top: 0;
- right: 0;
- z-index: 10;
- display: block;
- padding: 20px;
- color: rgba(0, 0, 0, 0.45);
- font-weight: 700;
- font-size: 16px;
- font-style: normal;
- line-height: 1;
- text-align: center;
- text-transform: none;
- text-decoration: none;
- background: transparent;
- border: 0;
- outline: 0;
- cursor: pointer;
- -webkit-transition: color 0.3s;
- transition: color 0.3s;
- text-rendering: auto;
-}
-.ant-drawer-close:focus,
-.ant-drawer-close:hover {
- color: rgba(0, 0, 0, 0.75);
- text-decoration: none;
-}
-.ant-drawer-header-no-title .ant-drawer-close {
- margin-right: var(--scroll-bar);
- /* stylelint-disable-next-line function-calc-no-invalid */
- padding-right: calc(20px - var(--scroll-bar));
-}
-.ant-drawer-header {
- position: relative;
- padding: 16px 24px;
- color: rgba(0, 0, 0, 0.65);
- background: #fff;
- border-bottom: 1px solid #f0f0f0;
- border-radius: 2px 2px 0 0;
-}
-.ant-drawer-header-no-title {
- color: rgba(0, 0, 0, 0.65);
- background: #fff;
-}
-.ant-drawer-wrapper-body {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
- -ms-flex-wrap: nowrap;
- flex-wrap: nowrap;
- width: 100%;
- height: 100%;
-}
-.ant-drawer-body {
- -webkit-box-flex: 1;
- -ms-flex-positive: 1;
- flex-grow: 1;
- padding: 24px;
- overflow: auto;
- font-size: 14px;
- line-height: 1.5715;
- word-wrap: break-word;
-}
-.ant-drawer-footer {
- -ms-flex-negative: 0;
- flex-shrink: 0;
- padding: 10px 10px;
- border-top: 1px solid #f0f0f0;
-}
-.ant-drawer-mask {
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- height: 0;
- background-color: rgba(0, 0, 0, 0.45);
- opacity: 0;
- filter: alpha(opacity=45);
- -webkit-transition: opacity 0.3s linear, height 0s ease 0.3s;
- transition: opacity 0.3s linear, height 0s ease 0.3s;
- pointer-events: none;
-}
-.ant-drawer-open-content {
- -webkit-box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
- box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
-}
-.ant-drawer .ant-picker-clear {
- background: #fff;
-}
-@-webkit-keyframes antdDrawerFadeIn {
- 0% {
- opacity: 0;
- }
- 100% {
- opacity: 1;
- }
-}
-@keyframes antdDrawerFadeIn {
- 0% {
- opacity: 0;
- }
- 100% {
- opacity: 1;
- }
-}
-.ant-drawer-rtl {
- direction: rtl;
-}
-.ant-drawer-rtl .ant-drawer-close {
- right: auto;
- left: 0;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-form-item .ant-mentions,
-.ant-form-item textarea.ant-input {
- height: auto;
-}
-.ant-form-item .ant-upload {
- background: transparent;
-}
-.ant-form-item .ant-upload.ant-upload-drag {
- background: #fafafa;
-}
-.ant-form-item input[type='radio'],
-.ant-form-item input[type='checkbox'] {
- width: 14px;
- height: 14px;
-}
-.ant-form-item .ant-radio-inline,
-.ant-form-item .ant-checkbox-inline {
- display: inline-block;
- margin-left: 8px;
- font-weight: normal;
- vertical-align: middle;
- cursor: pointer;
-}
-.ant-form-item .ant-radio-inline:first-child,
-.ant-form-item .ant-checkbox-inline:first-child {
- margin-left: 0;
-}
-.ant-form-item .ant-checkbox-vertical,
-.ant-form-item .ant-radio-vertical {
- display: block;
-}
-.ant-form-item .ant-checkbox-vertical + .ant-checkbox-vertical,
-.ant-form-item .ant-radio-vertical + .ant-radio-vertical {
- margin-left: 0;
-}
-.ant-form-item .ant-input-number + .ant-form-text {
- margin-left: 8px;
-}
-.ant-form-item .ant-input-number-handler-wrap {
- z-index: 2;
-}
-.ant-form-item .ant-select,
-.ant-form-item .ant-cascader-picker {
- width: 100%;
-}
-.ant-form-item .ant-input-group .ant-select,
-.ant-form-item .ant-input-group .ant-cascader-picker {
- width: auto;
-}
-.ant-form-inline {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -ms-flex-wrap: wrap;
- flex-wrap: wrap;
-}
-.ant-form-inline .ant-form-item {
- -webkit-box-flex: 0;
- -ms-flex: none;
- flex: none;
- -ms-flex-wrap: nowrap;
- flex-wrap: nowrap;
- margin-right: 16px;
- margin-bottom: 0;
-}
-.ant-form-inline .ant-form-item-with-help {
- margin-bottom: 24px;
-}
-.ant-form-inline .ant-form-item > .ant-form-item-label,
-.ant-form-inline .ant-form-item > .ant-form-item-control {
- display: inline-block;
- vertical-align: top;
-}
-.ant-form-inline .ant-form-item > .ant-form-item-label {
- -webkit-box-flex: 0;
- -ms-flex: none;
- flex: none;
-}
-.ant-form-inline .ant-form-item .ant-form-text {
- display: inline-block;
-}
-.ant-form-inline .ant-form-item .ant-form-item-has-feedback {
- display: inline-block;
-}
-.ant-form-horizontal .ant-form-item-label {
- -webkit-box-flex: 0;
- -ms-flex-positive: 0;
- flex-grow: 0;
-}
-.ant-form-horizontal .ant-form-item-control {
- -webkit-box-flex: 1;
- -ms-flex: 1 1 0px;
- flex: 1 1 0;
-}
-.ant-form-vertical .ant-form-item {
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
-}
-.ant-form-vertical .ant-form-item-label > label {
- height: auto;
-}
-.ant-form-vertical .ant-form-item-label,
-.ant-col-24.ant-form-item-label,
-.ant-col-xl-24.ant-form-item-label {
- margin: 0;
- padding: 0 0 8px;
- line-height: 1.5715;
- white-space: initial;
- text-align: left;
-}
-.ant-form-vertical .ant-form-item-label > label,
-.ant-col-24.ant-form-item-label > label,
-.ant-col-xl-24.ant-form-item-label > label {
- margin: 0;
-}
-.ant-form-vertical .ant-form-item-label > label::after,
-.ant-col-24.ant-form-item-label > label::after,
-.ant-col-xl-24.ant-form-item-label > label::after {
- display: none;
-}
-.ant-form-rtl.ant-form-vertical .ant-form-item-label,
-.ant-form-rtl.ant-col-24.ant-form-item-label,
-.ant-form-rtl.ant-col-xl-24.ant-form-item-label {
- text-align: right;
-}
-@media (max-width: 575px) {
- .ant-form-item .ant-form-item-label {
- margin: 0;
- padding: 0 0 8px;
- line-height: 1.5715;
- white-space: initial;
- text-align: left;
- }
- .ant-form-item .ant-form-item-label > label {
- margin: 0;
- }
- .ant-form-item .ant-form-item-label > label::after {
- display: none;
- }
- .ant-form-rtl.ant-form-item .ant-form-item-label {
- text-align: right;
- }
- .ant-form .ant-form-item {
- -ms-flex-wrap: wrap;
- flex-wrap: wrap;
- }
- .ant-form .ant-form-item .ant-form-item-label,
- .ant-form .ant-form-item .ant-form-item-control {
- -webkit-box-flex: 0;
- -ms-flex: 0 0 100%;
- flex: 0 0 100%;
- max-width: 100%;
- }
- .ant-col-xs-24.ant-form-item-label {
- margin: 0;
- padding: 0 0 8px;
- line-height: 1.5715;
- white-space: initial;
- text-align: left;
- }
- .ant-col-xs-24.ant-form-item-label > label {
- margin: 0;
- }
- .ant-col-xs-24.ant-form-item-label > label::after {
- display: none;
- }
- .ant-form-rtl.ant-col-xs-24.ant-form-item-label {
- text-align: right;
- }
-}
-@media (max-width: 767px) {
- .ant-col-sm-24.ant-form-item-label {
- margin: 0;
- padding: 0 0 8px;
- line-height: 1.5715;
- white-space: initial;
- text-align: left;
- }
- .ant-col-sm-24.ant-form-item-label > label {
- margin: 0;
- }
- .ant-col-sm-24.ant-form-item-label > label::after {
- display: none;
- }
- .ant-form-rtl.ant-col-sm-24.ant-form-item-label {
- text-align: right;
- }
-}
-@media (max-width: 991px) {
- .ant-col-md-24.ant-form-item-label {
- margin: 0;
- padding: 0 0 8px;
- line-height: 1.5715;
- white-space: initial;
- text-align: left;
- }
- .ant-col-md-24.ant-form-item-label > label {
- margin: 0;
- }
- .ant-col-md-24.ant-form-item-label > label::after {
- display: none;
- }
- .ant-form-rtl.ant-col-md-24.ant-form-item-label {
- text-align: right;
- }
-}
-@media (max-width: 1199px) {
- .ant-col-lg-24.ant-form-item-label {
- margin: 0;
- padding: 0 0 8px;
- line-height: 1.5715;
- white-space: initial;
- text-align: left;
- }
- .ant-col-lg-24.ant-form-item-label > label {
- margin: 0;
- }
- .ant-col-lg-24.ant-form-item-label > label::after {
- display: none;
- }
- .ant-form-rtl.ant-col-lg-24.ant-form-item-label {
- text-align: right;
- }
-}
-@media (max-width: 1599px) {
- .ant-col-xl-24.ant-form-item-label {
- margin: 0;
- padding: 0 0 8px;
- line-height: 1.5715;
- white-space: initial;
- text-align: left;
- }
- .ant-col-xl-24.ant-form-item-label > label {
- margin: 0;
- }
- .ant-col-xl-24.ant-form-item-label > label::after {
- display: none;
- }
- .ant-form-rtl.ant-col-xl-24.ant-form-item-label {
- text-align: right;
- }
-}
-.ant-form-item {
- /* Some non-status related component style is in `components.less` */
-}
-.ant-form-item-has-feedback .ant-input {
- padding-right: 24px;
-}
-.ant-form-item-has-feedback .ant-input-affix-wrapper .ant-input-suffix {
- padding-right: 18px;
-}
-.ant-form-item-has-feedback .ant-input-search:not(.ant-input-search-enter-button) .ant-input-suffix {
- right: 28px;
-}
-.ant-form-item-has-feedback .ant-switch {
- margin: 2px 0 4px;
-}
-.ant-form-item-has-feedback > .ant-select .ant-select-arrow,
-.ant-form-item-has-feedback > .ant-select .ant-select-selection__clear,
-.ant-form-item-has-feedback :not(.ant-input-group-addon) > .ant-select .ant-select-arrow,
-.ant-form-item-has-feedback :not(.ant-input-group-addon) > .ant-select .ant-select-selection__clear {
- right: 28px;
-}
-.ant-form-item-has-feedback > .ant-select .ant-select-selection-selected-value,
-.ant-form-item-has-feedback :not(.ant-input-group-addon) > .ant-select .ant-select-selection-selected-value {
- padding-right: 42px;
-}
-.ant-form-item-has-feedback .ant-cascader-picker-arrow {
- margin-right: 17px;
-}
-.ant-form-item-has-feedback .ant-cascader-picker-clear {
- right: 28px;
-}
-.ant-form-item-has-feedback .ant-picker {
- padding-right: 29.2px;
-}
-.ant-form-item-has-feedback .ant-picker-large {
- padding-right: 29.2px;
-}
-.ant-form-item-has-feedback .ant-picker-small {
- padding-right: 25.2px;
-}
-.ant-form-item-has-feedback.ant-form-item-has-success .ant-form-item-children-icon,
-.ant-form-item-has-feedback.ant-form-item-has-warning .ant-form-item-children-icon,
-.ant-form-item-has-feedback.ant-form-item-has-error .ant-form-item-children-icon,
-.ant-form-item-has-feedback.ant-form-item-is-validating .ant-form-item-children-icon {
- position: absolute;
- top: 50%;
- right: 0;
- z-index: 1;
- width: 32px;
- height: 20px;
- margin-top: -10px;
- font-size: 14px;
- line-height: 20px;
- text-align: center;
- visibility: visible;
- -webkit-animation: zoomIn 0.3s cubic-bezier(0.12, 0.4, 0.29, 1.46);
- animation: zoomIn 0.3s cubic-bezier(0.12, 0.4, 0.29, 1.46);
- pointer-events: none;
-}
-.ant-form-item-has-feedback.ant-form-item-has-success .ant-form-item-children-icon svg,
-.ant-form-item-has-feedback.ant-form-item-has-warning .ant-form-item-children-icon svg,
-.ant-form-item-has-feedback.ant-form-item-has-error .ant-form-item-children-icon svg,
-.ant-form-item-has-feedback.ant-form-item-is-validating .ant-form-item-children-icon svg {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- margin: auto;
-}
-.ant-form-item-has-success.ant-form-item-has-feedback .ant-form-item-children-icon {
- color: #52c41a;
- -webkit-animation-name: diffZoomIn1 !important;
- animation-name: diffZoomIn1 !important;
-}
-.ant-form-item-has-warning .ant-form-item-explain,
-.ant-form-item-has-warning .ant-form-item-split {
- color: #faad14;
-}
-.ant-form-item-has-warning .ant-input,
-.ant-form-item-has-warning .ant-input-affix-wrapper,
-.ant-form-item-has-warning .ant-input:hover,
-.ant-form-item-has-warning .ant-input-affix-wrapper:hover {
- border-color: #faad14;
-}
-.ant-form-item-has-warning .ant-input:focus,
-.ant-form-item-has-warning .ant-input-affix-wrapper:focus,
-.ant-form-item-has-warning .ant-input-focused,
-.ant-form-item-has-warning .ant-input-affix-wrapper-focused {
- border-color: #ffc53d;
- border-right-width: 1px !important;
- outline: 0;
- -webkit-box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);
- box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);
-}
-.ant-form-item-has-warning .ant-input:not(.ant-form-item-has-warning .ant-input-disabled) {
- background-color: #fff;
-}
-.ant-form-item-has-warning .ant-input-affix-wrapper:not(.ant-form-item-has-warning .ant-input-affix-wrapper-disabled) {
- background-color: #fff;
-}
-.ant-form-item-has-warning .ant-input-affix-wrapper input:focus {
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
-}
-.ant-form-item-has-warning .ant-calendar-picker-open .ant-calendar-picker-input {
- border-color: #ffc53d;
- border-right-width: 1px !important;
- outline: 0;
- -webkit-box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);
- box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);
-}
-.ant-form-item-has-warning .ant-input-prefix {
- color: #faad14;
-}
-.ant-form-item-has-warning .ant-input-group-addon {
- color: #faad14;
- border-color: #faad14;
-}
-.ant-form-item-has-warning .has-feedback {
- color: #faad14;
-}
-.ant-form-item-has-warning.ant-form-item-has-feedback .ant-form-item-children-icon {
- color: #faad14;
- -webkit-animation-name: diffZoomIn3 !important;
- animation-name: diffZoomIn3 !important;
-}
-.ant-form-item-has-warning .ant-select:not(.ant-select-borderless) .ant-select-selector {
- border-color: #faad14 !important;
-}
-.ant-form-item-has-warning .ant-select:not(.ant-select-borderless).ant-select-open .ant-select-selector,
-.ant-form-item-has-warning .ant-select:not(.ant-select-borderless).ant-select-focused .ant-select-selector {
- border-color: #ffc53d;
- border-right-width: 1px !important;
- outline: 0;
- -webkit-box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);
- box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);
-}
-.ant-form-item-has-warning .ant-input-number,
-.ant-form-item-has-warning .ant-picker {
- border-color: #faad14;
-}
-.ant-form-item-has-warning .ant-input-number-focused,
-.ant-form-item-has-warning .ant-picker-focused,
-.ant-form-item-has-warning .ant-input-number:focus,
-.ant-form-item-has-warning .ant-picker:focus {
- border-color: #ffc53d;
- border-right-width: 1px !important;
- outline: 0;
- -webkit-box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);
- box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);
-}
-.ant-form-item-has-warning .ant-input-number:not([disabled]):hover,
-.ant-form-item-has-warning .ant-picker:not([disabled]):hover {
- border-color: #faad14;
-}
-.ant-form-item-has-warning .ant-cascader-picker:focus .ant-cascader-input {
- border-color: #ffc53d;
- border-right-width: 1px !important;
- outline: 0;
- -webkit-box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);
- box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);
-}
-.ant-form-item-has-error .ant-form-item-explain,
-.ant-form-item-has-error .ant-form-item-split {
- color: #ff4d4f;
-}
-.ant-form-item-has-error .ant-input,
-.ant-form-item-has-error .ant-input-affix-wrapper,
-.ant-form-item-has-error .ant-input:hover,
-.ant-form-item-has-error .ant-input-affix-wrapper:hover {
- border-color: #ff4d4f;
-}
-.ant-form-item-has-error .ant-input:focus,
-.ant-form-item-has-error .ant-input-affix-wrapper:focus,
-.ant-form-item-has-error .ant-input-focused,
-.ant-form-item-has-error .ant-input-affix-wrapper-focused {
- border-color: #ff7875;
- border-right-width: 1px !important;
- outline: 0;
- -webkit-box-shadow: 0 0 0 2px rgba(255, 77, 79, 0.2);
- box-shadow: 0 0 0 2px rgba(255, 77, 79, 0.2);
-}
-.ant-form-item-has-error .ant-input:not(.ant-form-item-has-error .ant-input-disabled) {
- background-color: #fff;
-}
-.ant-form-item-has-error .ant-input-affix-wrapper:not(.ant-form-item-has-error .ant-input-affix-wrapper-disabled) {
- background-color: #fff;
-}
-.ant-form-item-has-error .ant-input-affix-wrapper input:focus {
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
-}
-.ant-form-item-has-error .ant-calendar-picker-open .ant-calendar-picker-input {
- border-color: #ff7875;
- border-right-width: 1px !important;
- outline: 0;
- -webkit-box-shadow: 0 0 0 2px rgba(255, 77, 79, 0.2);
- box-shadow: 0 0 0 2px rgba(255, 77, 79, 0.2);
-}
-.ant-form-item-has-error .ant-input-prefix {
- color: #ff4d4f;
-}
-.ant-form-item-has-error .ant-input-group-addon {
- color: #ff4d4f;
- border-color: #ff4d4f;
-}
-.ant-form-item-has-error .has-feedback {
- color: #ff4d4f;
-}
-.ant-form-item-has-error.ant-form-item-has-feedback .ant-form-item-children-icon {
- color: #ff4d4f;
- -webkit-animation-name: diffZoomIn2 !important;
- animation-name: diffZoomIn2 !important;
-}
-.ant-form-item-has-error .ant-select:not(.ant-select-borderless) .ant-select-selector {
- border-color: #ff4d4f !important;
-}
-.ant-form-item-has-error .ant-select:not(.ant-select-borderless).ant-select-open .ant-select-selector,
-.ant-form-item-has-error .ant-select:not(.ant-select-borderless).ant-select-focused .ant-select-selector {
- border-color: #ff7875;
- border-right-width: 1px !important;
- outline: 0;
- -webkit-box-shadow: 0 0 0 2px rgba(255, 77, 79, 0.2);
- box-shadow: 0 0 0 2px rgba(255, 77, 79, 0.2);
-}
-.ant-form-item-has-error .ant-input-group-addon .ant-select.ant-select-single:not(.ant-select-customize-input) .ant-select-selector {
- border: 0;
-}
-.ant-form-item-has-error .ant-select.ant-select-auto-complete .ant-input:focus {
- border-color: #ff4d4f;
-}
-.ant-form-item-has-error .ant-input-number,
-.ant-form-item-has-error .ant-picker {
- border-color: #ff4d4f;
-}
-.ant-form-item-has-error .ant-input-number-focused,
-.ant-form-item-has-error .ant-picker-focused,
-.ant-form-item-has-error .ant-input-number:focus,
-.ant-form-item-has-error .ant-picker:focus {
- border-color: #ff7875;
- border-right-width: 1px !important;
- outline: 0;
- -webkit-box-shadow: 0 0 0 2px rgba(255, 77, 79, 0.2);
- box-shadow: 0 0 0 2px rgba(255, 77, 79, 0.2);
-}
-.ant-form-item-has-error .ant-input-number:not([disabled]):hover,
-.ant-form-item-has-error .ant-picker:not([disabled]):hover {
- border-color: #ff4d4f;
-}
-.ant-form-item-has-error .ant-mention-wrapper .ant-mention-editor,
-.ant-form-item-has-error .ant-mention-wrapper .ant-mention-editor:not([disabled]):hover {
- border-color: #ff4d4f;
-}
-.ant-form-item-has-error .ant-mention-wrapper.ant-mention-active:not([disabled]) .ant-mention-editor,
-.ant-form-item-has-error .ant-mention-wrapper .ant-mention-editor:not([disabled]):focus {
- border-color: #ff7875;
- border-right-width: 1px !important;
- outline: 0;
- -webkit-box-shadow: 0 0 0 2px rgba(255, 77, 79, 0.2);
- box-shadow: 0 0 0 2px rgba(255, 77, 79, 0.2);
-}
-.ant-form-item-has-error .ant-cascader-picker:focus .ant-cascader-input {
- border-color: #ff7875;
- border-right-width: 1px !important;
- outline: 0;
- -webkit-box-shadow: 0 0 0 2px rgba(255, 77, 79, 0.2);
- box-shadow: 0 0 0 2px rgba(255, 77, 79, 0.2);
-}
-.ant-form-item-has-error .ant-transfer-list {
- border-color: #ff4d4f;
-}
-.ant-form-item-has-error .ant-transfer-list-search:not([disabled]) {
- border-color: #d9d9d9;
-}
-.ant-form-item-has-error .ant-transfer-list-search:not([disabled]):hover {
- border-color: #40a9ff;
- border-right-width: 1px !important;
-}
-.ant-form-item-has-error .ant-transfer-list-search:not([disabled]):focus {
- border-color: #40a9ff;
- border-right-width: 1px !important;
- outline: 0;
- -webkit-box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
- box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
-}
-.ant-form-item-has-error-leave .ant-form-item-explain {
- color: #ff4d4f;
-}
-.ant-form-item-is-validating.ant-form-item-has-feedback .ant-form-item-children-icon {
- display: inline-block;
- color: #1890ff;
-}
-.ant-form {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
-}
-.ant-form legend {
- display: block;
- width: 100%;
- margin-bottom: 20px;
- padding: 0;
- color: rgba(0, 0, 0, 0.45);
- font-size: 16px;
- line-height: inherit;
- border: 0;
- border-bottom: 1px solid #d9d9d9;
-}
-.ant-form label {
- font-size: 14px;
-}
-.ant-form input[type='search'] {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
-}
-.ant-form input[type='radio'],
-.ant-form input[type='checkbox'] {
- line-height: normal;
-}
-.ant-form input[type='file'] {
- display: block;
-}
-.ant-form input[type='range'] {
- display: block;
- width: 100%;
-}
-.ant-form select[multiple],
-.ant-form select[size] {
- height: auto;
-}
-.ant-form input[type='file']:focus,
-.ant-form input[type='radio']:focus,
-.ant-form input[type='checkbox']:focus {
- outline: thin dotted;
- outline: 5px auto -webkit-focus-ring-color;
- outline-offset: -2px;
-}
-.ant-form output {
- display: block;
- padding-top: 15px;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- line-height: 1.5715;
-}
-.ant-form .ant-form-text {
- display: inline-block;
- padding-right: 8px;
-}
-.ant-form-small .ant-form-item-label > label {
- height: 24px;
-}
-.ant-form-small .ant-form-item-control-input {
- min-height: 24px;
-}
-.ant-form-large .ant-form-item-label > label {
- height: 40px;
-}
-.ant-form-large .ant-form-item-control-input {
- min-height: 40px;
-}
-.ant-form-item {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- margin-bottom: 24px;
- vertical-align: top;
-}
-.ant-form-item-with-help {
- margin-bottom: 0;
-}
-.ant-form-item-hidden {
- display: none;
-}
-.ant-form-item-label {
- display: inline-block;
- -webkit-box-flex: 0;
- -ms-flex-positive: 0;
- flex-grow: 0;
- overflow: hidden;
- white-space: nowrap;
- text-align: right;
- vertical-align: middle;
-}
-.ant-form-item-label-left {
- text-align: left;
-}
-.ant-form-item-label > label {
- position: relative;
- display: -webkit-inline-box;
- display: -ms-inline-flexbox;
- display: inline-flex;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- height: 32px;
- color: rgba(0, 0, 0, 0.85);
- font-size: 14px;
-}
-.ant-form-item-label > label > .anticon {
- font-size: 14px;
- vertical-align: top;
-}
-.ant-form-item-label > label.ant-form-item-required::before {
- display: inline-block;
- margin-right: 4px;
- color: #ff4d4f;
- font-size: 14px;
- font-family: SimSun, sans-serif;
- line-height: 1;
- content: '*';
-}
-.ant-form-hide-required-mark .ant-form-item-label > label.ant-form-item-required::before {
- display: none;
-}
-.ant-form-item-label > label::after {
- content: ':';
- position: relative;
- top: -0.5px;
- margin: 0 8px 0 2px;
-}
-.ant-form-item-label > label.ant-form-item-no-colon::after {
- content: ' ';
-}
-.ant-form-item-control {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
- -webkit-box-flex: 1;
- -ms-flex-positive: 1;
- flex-grow: 1;
-}
-.ant-form-item-control:first-child:not([class^='ant-col-']):not([class*=' ant-col-']) {
- width: 100%;
-}
-.ant-form-item-control-input {
- position: relative;
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- min-height: 32px;
-}
-.ant-form-item-control-input-content {
- -webkit-box-flex: 1;
- -ms-flex: auto;
- flex: auto;
- max-width: 100%;
-}
-.ant-form-item-explain,
-.ant-form-item-extra {
- clear: both;
- min-height: 24px;
- padding-top: 0px;
- color: rgba(0, 0, 0, 0.45);
- font-size: 14px;
- line-height: 1.5715;
- -webkit-transition: color 0.3s cubic-bezier(0.215, 0.61, 0.355, 1);
- transition: color 0.3s cubic-bezier(0.215, 0.61, 0.355, 1);
-}
-.show-help-enter,
-.show-help-appear {
- -webkit-animation-duration: 0.3s;
- animation-duration: 0.3s;
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
- -webkit-animation-play-state: paused;
- animation-play-state: paused;
-}
-.show-help-leave {
- -webkit-animation-duration: 0.3s;
- animation-duration: 0.3s;
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
- -webkit-animation-play-state: paused;
- animation-play-state: paused;
-}
-.show-help-enter.show-help-enter-active,
-.show-help-appear.show-help-appear-active {
- -webkit-animation-name: antShowHelpIn;
- animation-name: antShowHelpIn;
- -webkit-animation-play-state: running;
- animation-play-state: running;
-}
-.show-help-leave.show-help-leave-active {
- -webkit-animation-name: antShowHelpOut;
- animation-name: antShowHelpOut;
- -webkit-animation-play-state: running;
- animation-play-state: running;
- pointer-events: none;
-}
-.show-help-enter,
-.show-help-appear {
- opacity: 0;
- -webkit-animation-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);
- animation-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);
-}
-.show-help-leave {
- -webkit-animation-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);
- animation-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);
-}
-@-webkit-keyframes antShowHelpIn {
- 0% {
- -webkit-transform: translateY(-5px);
- transform: translateY(-5px);
- opacity: 0;
- }
- 100% {
- -webkit-transform: translateY(0);
- transform: translateY(0);
- opacity: 1;
- }
-}
-@keyframes antShowHelpIn {
- 0% {
- -webkit-transform: translateY(-5px);
- transform: translateY(-5px);
- opacity: 0;
- }
- 100% {
- -webkit-transform: translateY(0);
- transform: translateY(0);
- opacity: 1;
- }
-}
-@-webkit-keyframes antShowHelpOut {
- to {
- -webkit-transform: translateY(-5px);
- transform: translateY(-5px);
- opacity: 0;
- }
-}
-@keyframes antShowHelpOut {
- to {
- -webkit-transform: translateY(-5px);
- transform: translateY(-5px);
- opacity: 0;
- }
-}
-@-webkit-keyframes diffZoomIn1 {
- 0% {
- -webkit-transform: scale(0);
- transform: scale(0);
- }
- 100% {
- -webkit-transform: scale(1);
- transform: scale(1);
- }
-}
-@keyframes diffZoomIn1 {
- 0% {
- -webkit-transform: scale(0);
- transform: scale(0);
- }
- 100% {
- -webkit-transform: scale(1);
- transform: scale(1);
- }
-}
-@-webkit-keyframes diffZoomIn2 {
- 0% {
- -webkit-transform: scale(0);
- transform: scale(0);
- }
- 100% {
- -webkit-transform: scale(1);
- transform: scale(1);
- }
-}
-@keyframes diffZoomIn2 {
- 0% {
- -webkit-transform: scale(0);
- transform: scale(0);
- }
- 100% {
- -webkit-transform: scale(1);
- transform: scale(1);
- }
-}
-@-webkit-keyframes diffZoomIn3 {
- 0% {
- -webkit-transform: scale(0);
- transform: scale(0);
- }
- 100% {
- -webkit-transform: scale(1);
- transform: scale(1);
- }
-}
-@keyframes diffZoomIn3 {
- 0% {
- -webkit-transform: scale(0);
- transform: scale(0);
- }
- 100% {
- -webkit-transform: scale(1);
- transform: scale(1);
- }
-}
-.ant-form-rtl {
- direction: rtl;
-}
-.ant-form-rtl .ant-form-item-label {
- text-align: left;
-}
-.ant-form-rtl .ant-form-item-label > label.ant-form-item-required::before {
- margin-right: 0;
- margin-left: 4px;
-}
-.ant-form-rtl .ant-form-item-label > label::after {
- margin: 0 2px 0 8px;
-}
-.ant-col-rtl .ant-form-item-control:first-child {
- width: 100%;
-}
-.ant-form-rtl .ant-form-item-has-feedback .ant-input {
- padding-right: 11px;
- padding-left: 24px;
-}
-.ant-form-rtl .ant-form-item-has-feedback .ant-input-affix-wrapper .ant-input-suffix {
- padding-right: 11px;
- padding-left: 18px;
-}
-.ant-form-rtl .ant-form-item-has-feedback .ant-input-affix-wrapper .ant-input {
- padding: 0;
-}
-.ant-form-rtl .ant-form-item-has-feedback .ant-input-search:not(.ant-input-search-enter-button) .ant-input-suffix {
- right: auto;
- left: 28px;
-}
-.ant-form-rtl .ant-form-item-has-feedback .ant-input-number {
- padding-left: 18px;
-}
-.ant-form-rtl .ant-form-item-has-feedback > .ant-select .ant-select-arrow,
-.ant-form-rtl .ant-form-item-has-feedback > .ant-select .ant-select-selection__clear,
-.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-group-addon) > .ant-select .ant-select-arrow,
-.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-group-addon) > .ant-select .ant-select-selection__clear {
- right: auto;
- left: 28px;
-}
-.ant-form-rtl .ant-form-item-has-feedback > .ant-select .ant-select-selection-selected-value,
-.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-group-addon) > .ant-select .ant-select-selection-selected-value {
- padding-right: 0;
- padding-left: 42px;
-}
-.ant-form-rtl .ant-form-item-has-feedback .ant-cascader-picker-arrow {
- margin-right: 0;
- margin-left: 17px;
-}
-.ant-form-rtl .ant-form-item-has-feedback .ant-cascader-picker-clear {
- right: auto;
- left: 28px;
-}
-.ant-form-rtl .ant-form-item-has-feedback .ant-picker {
- padding-right: 11px;
- padding-left: 29.2px;
-}
-.ant-form-rtl .ant-form-item-has-feedback .ant-picker-large {
- padding-right: 11px;
- padding-left: 29.2px;
-}
-.ant-form-rtl .ant-form-item-has-feedback .ant-picker-small {
- padding-right: 7px;
- padding-left: 25.2px;
-}
-.ant-form-rtl .ant-form-item-has-feedback.ant-form-item-has-success .ant-form-item-children-icon,
-.ant-form-rtl .ant-form-item-has-feedback.ant-form-item-has-warning .ant-form-item-children-icon,
-.ant-form-rtl .ant-form-item-has-feedback.ant-form-item-has-error .ant-form-item-children-icon,
-.ant-form-rtl .ant-form-item-has-feedback.ant-form-item-is-validating .ant-form-item-children-icon {
- right: auto;
- left: 0;
-}
-.ant-form-rtl.ant-form-inline .ant-form-item {
- margin-right: 0;
- margin-left: 16px;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-input-number {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- font-variant: tabular-nums;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- position: relative;
- width: 100%;
- min-width: 0;
- padding: 4px 11px;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- line-height: 1.5715;
- background-color: #fff;
- background-image: none;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
- display: inline-block;
- width: 90px;
- margin: 0;
- padding: 0;
- border: 1px solid #d9d9d9;
- border-radius: 2px;
-}
-.ant-input-number::-moz-placeholder {
- opacity: 1;
-}
-.ant-input-number::-webkit-input-placeholder {
- color: #bfbfbf;
-}
-.ant-input-number:-ms-input-placeholder {
- color: #bfbfbf;
-}
-.ant-input-number::-ms-input-placeholder {
- color: #bfbfbf;
-}
-.ant-input-number::placeholder {
- color: #bfbfbf;
-}
-.ant-input-number:-moz-placeholder-shown {
- text-overflow: ellipsis;
-}
-.ant-input-number:-ms-input-placeholder {
- text-overflow: ellipsis;
-}
-.ant-input-number:placeholder-shown {
- text-overflow: ellipsis;
-}
-.ant-input-number:hover {
- border-color: #40a9ff;
- border-right-width: 1px !important;
-}
-.ant-input-number:focus,
-.ant-input-number-focused {
- border-color: #40a9ff;
- border-right-width: 1px !important;
- outline: 0;
- -webkit-box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
- box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
-}
-.ant-input-number-disabled {
- color: rgba(0, 0, 0, 0.25);
- background-color: #f5f5f5;
- cursor: not-allowed;
- opacity: 1;
-}
-.ant-input-number-disabled:hover {
- border-color: #d9d9d9;
- border-right-width: 1px !important;
-}
-.ant-input-number[disabled] {
- color: rgba(0, 0, 0, 0.25);
- background-color: #f5f5f5;
- cursor: not-allowed;
- opacity: 1;
-}
-.ant-input-number[disabled]:hover {
- border-color: #d9d9d9;
- border-right-width: 1px !important;
-}
-textarea.ant-input-number {
- max-width: 100%;
- height: auto;
- min-height: 32px;
- line-height: 1.5715;
- vertical-align: bottom;
- -webkit-transition: all 0.3s, height 0s;
- transition: all 0.3s, height 0s;
-}
-.ant-input-number-lg {
- padding: 6.5px 11px;
- font-size: 16px;
-}
-.ant-input-number-sm {
- padding: 0px 7px;
-}
-.ant-input-number-handler {
- position: relative;
- display: block;
- width: 100%;
- height: 50%;
- overflow: hidden;
- color: rgba(0, 0, 0, 0.45);
- font-weight: bold;
- line-height: 0;
- text-align: center;
- -webkit-transition: all 0.1s linear;
- transition: all 0.1s linear;
-}
-.ant-input-number-handler:active {
- background: #f4f4f4;
-}
-.ant-input-number-handler:hover .ant-input-number-handler-up-inner,
-.ant-input-number-handler:hover .ant-input-number-handler-down-inner {
- color: #40a9ff;
-}
-.ant-input-number-handler-up-inner,
-.ant-input-number-handler-down-inner {
- display: inline-block;
- color: inherit;
- font-style: normal;
- line-height: 0;
- text-align: center;
- text-transform: none;
- vertical-align: -0.125em;
- text-rendering: optimizeLegibility;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
- position: absolute;
- right: 4px;
- width: 12px;
- height: 12px;
- color: rgba(0, 0, 0, 0.45);
- line-height: 12px;
- -webkit-transition: all 0.1s linear;
- transition: all 0.1s linear;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-.ant-input-number-handler-up-inner > *,
-.ant-input-number-handler-down-inner > * {
- line-height: 1;
-}
-.ant-input-number-handler-up-inner svg,
-.ant-input-number-handler-down-inner svg {
- display: inline-block;
-}
-.ant-input-number-handler-up-inner::before,
-.ant-input-number-handler-down-inner::before {
- display: none;
-}
-.ant-input-number-handler-up-inner .ant-input-number-handler-up-inner-icon,
-.ant-input-number-handler-up-inner .ant-input-number-handler-down-inner-icon,
-.ant-input-number-handler-down-inner .ant-input-number-handler-up-inner-icon,
-.ant-input-number-handler-down-inner .ant-input-number-handler-down-inner-icon {
- display: block;
-}
-.ant-input-number:hover {
- border-color: #40a9ff;
- border-right-width: 1px !important;
-}
-.ant-input-number:hover + .ant-form-item-children-icon {
- opacity: 0;
- -webkit-transition: opacity 0.24s linear 0.24s;
- transition: opacity 0.24s linear 0.24s;
-}
-.ant-input-number-focused {
- border-color: #40a9ff;
- border-right-width: 1px !important;
- outline: 0;
- -webkit-box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
- box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
-}
-.ant-input-number-disabled {
- color: rgba(0, 0, 0, 0.25);
- background-color: #f5f5f5;
- cursor: not-allowed;
- opacity: 1;
-}
-.ant-input-number-disabled:hover {
- border-color: #d9d9d9;
- border-right-width: 1px !important;
-}
-.ant-input-number-disabled .ant-input-number-input {
- cursor: not-allowed;
-}
-.ant-input-number-disabled .ant-input-number-handler-wrap {
- display: none;
-}
-.ant-input-number-input {
- width: 100%;
- height: 30px;
- padding: 0 11px;
- text-align: left;
- background-color: transparent;
- border: 0;
- border-radius: 2px;
- outline: 0;
- -webkit-transition: all 0.3s linear;
- transition: all 0.3s linear;
- -moz-appearance: textfield !important;
-}
-.ant-input-number-input::-moz-placeholder {
- opacity: 1;
-}
-.ant-input-number-input::-webkit-input-placeholder {
- color: #bfbfbf;
-}
-.ant-input-number-input:-ms-input-placeholder {
- color: #bfbfbf;
-}
-.ant-input-number-input::-ms-input-placeholder {
- color: #bfbfbf;
-}
-.ant-input-number-input::placeholder {
- color: #bfbfbf;
-}
-.ant-input-number-input:-moz-placeholder-shown {
- text-overflow: ellipsis;
-}
-.ant-input-number-input:-ms-input-placeholder {
- text-overflow: ellipsis;
-}
-.ant-input-number-input:placeholder-shown {
- text-overflow: ellipsis;
-}
-.ant-input-number-input[type='number']::-webkit-inner-spin-button,
-.ant-input-number-input[type='number']::-webkit-outer-spin-button {
- margin: 0;
- -webkit-appearance: none;
-}
-.ant-input-number-lg {
- padding: 0;
- font-size: 16px;
-}
-.ant-input-number-lg input {
- height: 38px;
-}
-.ant-input-number-sm {
- padding: 0;
-}
-.ant-input-number-sm input {
- height: 22px;
- padding: 0 7px;
-}
-.ant-input-number-handler-wrap {
- position: absolute;
- top: 0;
- right: 0;
- width: 22px;
- height: 100%;
- background: #fff;
- border-left: 1px solid #d9d9d9;
- border-radius: 0 2px 2px 0;
- opacity: 0;
- -webkit-transition: opacity 0.24s linear 0.1s;
- transition: opacity 0.24s linear 0.1s;
-}
-.ant-input-number-handler-wrap .ant-input-number-handler .ant-input-number-handler-up-inner,
-.ant-input-number-handler-wrap .ant-input-number-handler .ant-input-number-handler-down-inner {
- display: inline-block;
- font-size: 7px;
- min-width: auto;
- margin-right: 0;
-}
-.ant-input-number-handler-wrap:hover .ant-input-number-handler {
- height: 40%;
-}
-.ant-input-number:hover .ant-input-number-handler-wrap {
- opacity: 1;
-}
-.ant-input-number-handler-up {
- border-top-right-radius: 2px;
- cursor: pointer;
-}
-.ant-input-number-handler-up-inner {
- top: 50%;
- margin-top: -5px;
- text-align: center;
-}
-.ant-input-number-handler-up:hover {
- height: 60% !important;
-}
-.ant-input-number-handler-down {
- top: 0;
- border-top: 1px solid #d9d9d9;
- border-bottom-right-radius: 2px;
- cursor: pointer;
-}
-.ant-input-number-handler-down-inner {
- top: 50%;
- text-align: center;
- -webkit-transform: translateY(-50%);
- transform: translateY(-50%);
-}
-.ant-input-number-handler-down:hover {
- height: 60% !important;
-}
-.ant-input-number-handler-up-disabled,
-.ant-input-number-handler-down-disabled {
- cursor: not-allowed;
-}
-.ant-input-number-handler-up-disabled:hover .ant-input-number-handler-up-inner,
-.ant-input-number-handler-down-disabled:hover .ant-input-number-handler-down-inner {
- color: rgba(0, 0, 0, 0.25);
-}
-.ant-input-number-rtl {
- direction: rtl;
-}
-.ant-input-number-rtl .ant-input-number-handler-wrap {
- right: auto;
- left: 0;
- border-right: 1px solid #d9d9d9;
- border-left: 0;
- border-radius: 2px 0 0 2px;
-}
-.ant-input-number-rtl .ant-input-number-input {
- direction: ltr;
- text-align: right;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-layout {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-flex: 1;
- -ms-flex: auto;
- flex: auto;
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
- /* fix firefox can't set height smaller than content on flex item */
- min-height: 0;
- background: #f0f2f5;
-}
-.ant-layout,
-.ant-layout * {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
-}
-.ant-layout.ant-layout-has-sider {
- -webkit-box-orient: horizontal;
- -webkit-box-direction: normal;
- -ms-flex-direction: row;
- flex-direction: row;
-}
-.ant-layout.ant-layout-has-sider > .ant-layout,
-.ant-layout.ant-layout-has-sider > .ant-layout-content {
- overflow-x: hidden;
-}
-.ant-layout-header,
-.ant-layout-footer {
- -webkit-box-flex: 0;
- -ms-flex: 0 0 auto;
- flex: 0 0 auto;
-}
-.ant-layout-header {
- height: 64px;
- padding: 0 50px;
- color: rgba(0, 0, 0, 0.65);
- line-height: 64px;
- background: #001529;
-}
-.ant-layout-footer {
- padding: 24px 50px;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- background: #f0f2f5;
-}
-.ant-layout-content {
- -webkit-box-flex: 1;
- -ms-flex: auto;
- flex: auto;
- /* fix firefox can't set height smaller than content on flex item */
- min-height: 0;
-}
-.ant-layout-sider {
- position: relative;
- /* fix firefox can't set width smaller than content on flex item */
- min-width: 0;
- background: #001529;
- -webkit-transition: all 0.2s;
- transition: all 0.2s;
-}
-.ant-layout-sider-children {
- height: 100%;
- margin-top: -0.1px;
- padding-top: 0.1px;
-}
-.ant-layout-sider-has-trigger {
- padding-bottom: 48px;
-}
-.ant-layout-sider-right {
- -webkit-box-ordinal-group: 2;
- -ms-flex-order: 1;
- order: 1;
-}
-.ant-layout-sider-trigger {
- position: fixed;
- bottom: 0;
- z-index: 1;
- height: 48px;
- color: #fff;
- line-height: 48px;
- text-align: center;
- background: #002140;
- cursor: pointer;
- -webkit-transition: all 0.2s;
- transition: all 0.2s;
-}
-.ant-layout-sider-zero-width > * {
- overflow: hidden;
-}
-.ant-layout-sider-zero-width-trigger {
- position: absolute;
- top: 64px;
- right: -36px;
- z-index: 1;
- width: 36px;
- height: 42px;
- color: #fff;
- font-size: 18px;
- line-height: 42px;
- text-align: center;
- background: #001529;
- border-radius: 0 2px 2px 0;
- cursor: pointer;
- -webkit-transition: background 0.3s ease;
- transition: background 0.3s ease;
-}
-.ant-layout-sider-zero-width-trigger:hover {
- background: #192c3e;
-}
-.ant-layout-sider-zero-width-trigger-right {
- left: -36px;
- border-radius: 2px 0 0 2px;
-}
-.ant-layout-sider-light {
- background: #fff;
-}
-.ant-layout-sider-light .ant-layout-sider-trigger {
- color: rgba(0, 0, 0, 0.65);
- background: #fff;
-}
-.ant-layout-sider-light .ant-layout-sider-zero-width-trigger {
- color: rgba(0, 0, 0, 0.65);
- background: #fff;
-}
-.ant-layout-rtl {
- direction: rtl;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-list {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- position: relative;
-}
-.ant-list * {
- outline: none;
-}
-.ant-list-pagination {
- margin-top: 24px;
- text-align: right;
-}
-.ant-list-pagination .ant-pagination-options {
- text-align: left;
-}
-.ant-list-more {
- margin-top: 12px;
- text-align: center;
-}
-.ant-list-more button {
- padding-right: 32px;
- padding-left: 32px;
-}
-.ant-list-spin {
- min-height: 40px;
- text-align: center;
-}
-.ant-list-empty-text {
- padding: 16px;
- color: rgba(0, 0, 0, 0.25);
- font-size: 14px;
- text-align: center;
-}
-.ant-list-items {
- margin: 0;
- padding: 0;
- list-style: none;
-}
-.ant-list-item {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- -webkit-box-pack: justify;
- -ms-flex-pack: justify;
- justify-content: space-between;
- padding: 12px 0;
- color: rgba(0, 0, 0, 0.65);
-}
-.ant-list-item-meta {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-flex: 1;
- -ms-flex: 1;
- flex: 1;
- -webkit-box-align: start;
- -ms-flex-align: start;
- align-items: flex-start;
- max-width: 100%;
-}
-.ant-list-item-meta-avatar {
- margin-right: 16px;
-}
-.ant-list-item-meta-content {
- -webkit-box-flex: 1;
- -ms-flex: 1 0;
- flex: 1 0;
- width: 0;
- color: rgba(0, 0, 0, 0.65);
-}
-.ant-list-item-meta-title {
- margin-bottom: 4px;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- line-height: 1.5715;
-}
-.ant-list-item-meta-title > a {
- color: rgba(0, 0, 0, 0.65);
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
-}
-.ant-list-item-meta-title > a:hover {
- color: #1890ff;
-}
-.ant-list-item-meta-description {
- color: rgba(0, 0, 0, 0.45);
- font-size: 14px;
- line-height: 1.5715;
-}
-.ant-list-item-action {
- -webkit-box-flex: 0;
- -ms-flex: 0 0 auto;
- flex: 0 0 auto;
- margin-left: 48px;
- padding: 0;
- font-size: 0;
- list-style: none;
-}
-.ant-list-item-action > li {
- position: relative;
- display: inline-block;
- padding: 0 8px;
- color: rgba(0, 0, 0, 0.45);
- font-size: 14px;
- line-height: 1.5715;
- text-align: center;
- cursor: pointer;
-}
-.ant-list-item-action > li:first-child {
- padding-left: 0;
-}
-.ant-list-item-action-split {
- position: absolute;
- top: 50%;
- right: 0;
- width: 1px;
- height: 14px;
- margin-top: -7px;
- background-color: #f0f0f0;
-}
-.ant-list-header {
- background: transparent;
-}
-.ant-list-footer {
- background: transparent;
-}
-.ant-list-header,
-.ant-list-footer {
- padding-top: 12px;
- padding-bottom: 12px;
-}
-.ant-list-empty {
- padding: 16px 0;
- color: rgba(0, 0, 0, 0.45);
- font-size: 12px;
- text-align: center;
-}
-.ant-list-split .ant-list-item {
- border-bottom: 1px solid #f0f0f0;
-}
-.ant-list-split .ant-list-item:last-child {
- border-bottom: none;
-}
-.ant-list-split .ant-list-header {
- border-bottom: 1px solid #f0f0f0;
-}
-.ant-list-split.ant-list-empty .ant-list-footer {
- border-top: 1px solid #f0f0f0;
-}
-.ant-list-loading .ant-list-spin-nested-loading {
- min-height: 32px;
-}
-.ant-list-split.ant-list-something-after-last-item .ant-spin-container > .ant-list-items > .ant-list-item:last-child {
- border-bottom: 1px solid #f0f0f0;
-}
-.ant-list-lg .ant-list-item {
- padding: 16px 24px;
-}
-.ant-list-sm .ant-list-item {
- padding: 8px 16px;
-}
-.ant-list-vertical .ant-list-item {
- -webkit-box-align: initial;
- -ms-flex-align: initial;
- align-items: initial;
-}
-.ant-list-vertical .ant-list-item-main {
- display: block;
- -webkit-box-flex: 1;
- -ms-flex: 1;
- flex: 1;
-}
-.ant-list-vertical .ant-list-item-extra {
- margin-left: 40px;
-}
-.ant-list-vertical .ant-list-item-meta {
- margin-bottom: 16px;
-}
-.ant-list-vertical .ant-list-item-meta-title {
- margin-bottom: 12px;
- color: rgba(0, 0, 0, 0.85);
- font-size: 16px;
- line-height: 24px;
-}
-.ant-list-vertical .ant-list-item-action {
- margin-top: 16px;
- margin-left: auto;
-}
-.ant-list-vertical .ant-list-item-action > li {
- padding: 0 16px;
-}
-.ant-list-vertical .ant-list-item-action > li:first-child {
- padding-left: 0;
-}
-.ant-list-grid .ant-col > .ant-list-item {
- display: block;
- max-width: 100%;
- margin-bottom: 16px;
- padding-top: 0;
- padding-bottom: 0;
- border-bottom: none;
-}
-.ant-list-item-no-flex {
- display: block;
-}
-.ant-list:not(.ant-list-vertical) .ant-list-item-no-flex .ant-list-item-action {
- float: right;
-}
-.ant-list-bordered {
- border: 1px solid #d9d9d9;
- border-radius: 2px;
-}
-.ant-list-bordered .ant-list-header {
- padding-right: 24px;
- padding-left: 24px;
-}
-.ant-list-bordered .ant-list-footer {
- padding-right: 24px;
- padding-left: 24px;
-}
-.ant-list-bordered .ant-list-item {
- padding-right: 24px;
- padding-left: 24px;
-}
-.ant-list-bordered .ant-list-pagination {
- margin: 16px 24px;
-}
-.ant-list-bordered.ant-list-sm .ant-list-item {
- padding: 8px 16px;
-}
-.ant-list-bordered.ant-list-sm .ant-list-header,
-.ant-list-bordered.ant-list-sm .ant-list-footer {
- padding: 8px 16px;
-}
-.ant-list-bordered.ant-list-lg .ant-list-item {
- padding: 16px 24px;
-}
-.ant-list-bordered.ant-list-lg .ant-list-header,
-.ant-list-bordered.ant-list-lg .ant-list-footer {
- padding: 16px 24px;
-}
-@media screen and (max-width: 768px) {
- .ant-list-item-action {
- margin-left: 24px;
- }
- .ant-list-vertical .ant-list-item-extra {
- margin-left: 24px;
- }
-}
-@media screen and (max-width: 576px) {
- .ant-list-item {
- -ms-flex-wrap: wrap;
- flex-wrap: wrap;
- }
- .ant-list-item-action {
- margin-left: 12px;
- }
- .ant-list-vertical .ant-list-item {
- -ms-flex-wrap: wrap-reverse;
- flex-wrap: wrap-reverse;
- }
- .ant-list-vertical .ant-list-item-main {
- min-width: 220px;
- }
- .ant-list-vertical .ant-list-item-extra {
- margin: auto auto 16px;
- }
-}
-.ant-list-rtl {
- direction: rtl;
- text-align: right;
-}
-.ant-list-rtl .ReactVirtualized__List .ant-list-item {
- direction: rtl;
-}
-.ant-list-rtl .ant-list-pagination {
- text-align: left;
-}
-.ant-list-rtl .ant-list-item-meta-avatar {
- margin-right: 0;
- margin-left: 16px;
-}
-.ant-list-rtl .ant-list-item-action {
- margin-right: 48px;
- margin-left: 0;
-}
-.ant-list-rtl .ant-list-item-action > li:first-child {
- padding-right: 0;
- padding-left: 8px;
-}
-.ant-list-rtl .ant-list-item-action-split {
- right: auto;
- left: 0;
-}
-.ant-list-rtl.ant-list-vertical .ant-list-item-extra {
- margin-right: 40px;
- margin-left: 0;
-}
-.ant-list-rtl.ant-list-vertical .ant-list-item-action {
- margin-right: auto;
-}
-.ant-list-rtl .ant-list-vertical .ant-list-item-action > li:first-child {
- padding-right: 0;
- padding-left: 16px;
-}
-.ant-list-rtl .ant-list:not(.ant-list-vertical) .ant-list-item-no-flex .ant-list-item-action {
- float: left;
-}
-@media screen and (max-width: 768px) {
- .ant-list-rtl .ant-list-item-action {
- margin-right: 24px;
- margin-left: 0;
- }
- .ant-list-rtl .ant-list-vertical .ant-list-item-extra {
- margin-right: 24px;
- margin-left: 0;
- }
-}
-@media screen and (max-width: 576px) {
- .ant-list-rtl .ant-list-item-action {
- margin-right: 22px;
- margin-left: 0;
- }
- .ant-list-rtl.ant-list-vertical .ant-list-item-extra {
- margin: auto auto 16px;
- }
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-spin {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- position: absolute;
- display: none;
- color: #1890ff;
- text-align: center;
- vertical-align: middle;
- opacity: 0;
- -webkit-transition: -webkit-transform 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);
- transition: -webkit-transform 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);
- transition: transform 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);
- transition: transform 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86), -webkit-transform 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);
-}
-.ant-spin-spinning {
- position: static;
- display: inline-block;
- opacity: 1;
-}
-.ant-spin-nested-loading {
- position: relative;
-}
-.ant-spin-nested-loading > div > .ant-spin {
- position: absolute;
- top: 0;
- left: 0;
- z-index: 4;
- display: block;
- width: 100%;
- height: 100%;
- max-height: 400px;
-}
-.ant-spin-nested-loading > div > .ant-spin .ant-spin-dot {
- position: absolute;
- top: 50%;
- left: 50%;
- margin: -10px;
-}
-.ant-spin-nested-loading > div > .ant-spin .ant-spin-text {
- position: absolute;
- top: 50%;
- width: 100%;
- padding-top: 5px;
- text-shadow: 0 1px 2px #fff;
-}
-.ant-spin-nested-loading > div > .ant-spin.ant-spin-show-text .ant-spin-dot {
- margin-top: -20px;
-}
-.ant-spin-nested-loading > div > .ant-spin-sm .ant-spin-dot {
- margin: -7px;
-}
-.ant-spin-nested-loading > div > .ant-spin-sm .ant-spin-text {
- padding-top: 2px;
-}
-.ant-spin-nested-loading > div > .ant-spin-sm.ant-spin-show-text .ant-spin-dot {
- margin-top: -17px;
-}
-.ant-spin-nested-loading > div > .ant-spin-lg .ant-spin-dot {
- margin: -16px;
-}
-.ant-spin-nested-loading > div > .ant-spin-lg .ant-spin-text {
- padding-top: 11px;
-}
-.ant-spin-nested-loading > div > .ant-spin-lg.ant-spin-show-text .ant-spin-dot {
- margin-top: -26px;
-}
-.ant-spin-container {
- position: relative;
- -webkit-transition: opacity 0.3s;
- transition: opacity 0.3s;
-}
-.ant-spin-container::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- z-index: 10;
- display: none \9;
- width: 100%;
- height: 100%;
- background: #fff;
- opacity: 0;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
- content: '';
- pointer-events: none;
-}
-.ant-spin-blur {
- clear: both;
- overflow: hidden;
- opacity: 0.5;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- pointer-events: none;
-}
-.ant-spin-blur::after {
- opacity: 0.4;
- pointer-events: auto;
-}
-.ant-spin-tip {
- color: rgba(0, 0, 0, 0.45);
-}
-.ant-spin-dot {
- position: relative;
- display: inline-block;
- font-size: 20px;
- width: 1em;
- height: 1em;
-}
-.ant-spin-dot-item {
- position: absolute;
- display: block;
- width: 9px;
- height: 9px;
- background-color: #1890ff;
- border-radius: 100%;
- -webkit-transform: scale(0.75);
- transform: scale(0.75);
- -webkit-transform-origin: 50% 50%;
- transform-origin: 50% 50%;
- opacity: 0.3;
- -webkit-animation: antSpinMove 1s infinite linear alternate;
- animation: antSpinMove 1s infinite linear alternate;
-}
-.ant-spin-dot-item:nth-child(1) {
- top: 0;
- left: 0;
-}
-.ant-spin-dot-item:nth-child(2) {
- top: 0;
- right: 0;
- -webkit-animation-delay: 0.4s;
- animation-delay: 0.4s;
-}
-.ant-spin-dot-item:nth-child(3) {
- right: 0;
- bottom: 0;
- -webkit-animation-delay: 0.8s;
- animation-delay: 0.8s;
-}
-.ant-spin-dot-item:nth-child(4) {
- bottom: 0;
- left: 0;
- -webkit-animation-delay: 1.2s;
- animation-delay: 1.2s;
-}
-.ant-spin-dot-spin {
- -webkit-transform: rotate(45deg);
- transform: rotate(45deg);
- -webkit-animation: antRotate 1.2s infinite linear;
- animation: antRotate 1.2s infinite linear;
-}
-.ant-spin-sm .ant-spin-dot {
- font-size: 14px;
-}
-.ant-spin-sm .ant-spin-dot i {
- width: 6px;
- height: 6px;
-}
-.ant-spin-lg .ant-spin-dot {
- font-size: 32px;
-}
-.ant-spin-lg .ant-spin-dot i {
- width: 14px;
- height: 14px;
-}
-.ant-spin.ant-spin-show-text .ant-spin-text {
- display: block;
-}
-@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
- /* IE10+ */
- .ant-spin-blur {
- background: #fff;
- opacity: 0.5;
- }
-}
-@-webkit-keyframes antSpinMove {
- to {
- opacity: 1;
- }
-}
-@keyframes antSpinMove {
- to {
- opacity: 1;
- }
-}
-@-webkit-keyframes antRotate {
- to {
- -webkit-transform: rotate(405deg);
- transform: rotate(405deg);
- }
-}
-@keyframes antRotate {
- to {
- -webkit-transform: rotate(405deg);
- transform: rotate(405deg);
- }
-}
-.ant-spin-rtl {
- direction: rtl;
-}
-.ant-spin-rtl .ant-spin-dot-spin {
- -webkit-transform: rotate(-45deg);
- transform: rotate(-45deg);
- -webkit-animation-name: antRotateRtl;
- animation-name: antRotateRtl;
-}
-@-webkit-keyframes antRotateRtl {
- to {
- -webkit-transform: rotate(-405deg);
- transform: rotate(-405deg);
- }
-}
-@keyframes antRotateRtl {
- to {
- -webkit-transform: rotate(-405deg);
- transform: rotate(-405deg);
- }
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-pagination {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
-}
-.ant-pagination ul,
-.ant-pagination ol {
- margin: 0;
- padding: 0;
- list-style: none;
-}
-.ant-pagination::after {
- display: block;
- clear: both;
- height: 0;
- overflow: hidden;
- visibility: hidden;
- content: ' ';
-}
-.ant-pagination-total-text {
- display: inline-block;
- height: 32px;
- margin-right: 8px;
- line-height: 30px;
- vertical-align: middle;
-}
-.ant-pagination-item {
- display: inline-block;
- min-width: 32px;
- height: 32px;
- margin-right: 8px;
- font-family: Arial;
- line-height: 30px;
- text-align: center;
- vertical-align: middle;
- list-style: none;
- background-color: #fff;
- border: 1px solid #d9d9d9;
- border-radius: 2px;
- outline: 0;
- cursor: pointer;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-.ant-pagination-item a {
- display: block;
- padding: 0 6px;
- color: rgba(0, 0, 0, 0.65);
- -webkit-transition: none;
- transition: none;
-}
-.ant-pagination-item a:hover {
- text-decoration: none;
-}
-.ant-pagination-item:focus,
-.ant-pagination-item:hover {
- border-color: #1890ff;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
-}
-.ant-pagination-item:focus a,
-.ant-pagination-item:hover a {
- color: #1890ff;
-}
-.ant-pagination-item-active {
- font-weight: 500;
- background: #fff;
- border-color: #1890ff;
-}
-.ant-pagination-item-active a {
- color: #1890ff;
-}
-.ant-pagination-item-active:focus,
-.ant-pagination-item-active:hover {
- border-color: #40a9ff;
-}
-.ant-pagination-item-active:focus a,
-.ant-pagination-item-active:hover a {
- color: #40a9ff;
-}
-.ant-pagination-jump-prev,
-.ant-pagination-jump-next {
- outline: 0;
-}
-.ant-pagination-jump-prev .ant-pagination-item-container,
-.ant-pagination-jump-next .ant-pagination-item-container {
- position: relative;
-}
-.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon,
-.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon {
- color: #1890ff;
- font-size: 12px;
- letter-spacing: -1px;
- opacity: 0;
- -webkit-transition: all 0.2s;
- transition: all 0.2s;
-}
-.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon-svg,
-.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon-svg {
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- margin: auto;
-}
-.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-ellipsis,
-.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-ellipsis {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- display: block;
- margin: auto;
- color: rgba(0, 0, 0, 0.25);
- letter-spacing: 2px;
- text-align: center;
- text-indent: 0.13em;
- opacity: 1;
- -webkit-transition: all 0.2s;
- transition: all 0.2s;
-}
-.ant-pagination-jump-prev:focus .ant-pagination-item-link-icon,
-.ant-pagination-jump-next:focus .ant-pagination-item-link-icon,
-.ant-pagination-jump-prev:hover .ant-pagination-item-link-icon,
-.ant-pagination-jump-next:hover .ant-pagination-item-link-icon {
- opacity: 1;
-}
-.ant-pagination-jump-prev:focus .ant-pagination-item-ellipsis,
-.ant-pagination-jump-next:focus .ant-pagination-item-ellipsis,
-.ant-pagination-jump-prev:hover .ant-pagination-item-ellipsis,
-.ant-pagination-jump-next:hover .ant-pagination-item-ellipsis {
- opacity: 0;
-}
-.ant-pagination-prev,
-.ant-pagination-jump-prev,
-.ant-pagination-jump-next {
- margin-right: 8px;
-}
-.ant-pagination-prev,
-.ant-pagination-next,
-.ant-pagination-jump-prev,
-.ant-pagination-jump-next {
- display: inline-block;
- min-width: 32px;
- height: 32px;
- color: rgba(0, 0, 0, 0.65);
- font-family: Arial;
- line-height: 32px;
- text-align: center;
- vertical-align: middle;
- list-style: none;
- border-radius: 2px;
- cursor: pointer;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
-}
-.ant-pagination-prev,
-.ant-pagination-next {
- outline: 0;
-}
-.ant-pagination-prev button,
-.ant-pagination-next button {
- color: rgba(0, 0, 0, 0.65);
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-.ant-pagination-prev:hover button,
-.ant-pagination-next:hover button {
- border-color: #40a9ff;
-}
-.ant-pagination-prev .ant-pagination-item-link,
-.ant-pagination-next .ant-pagination-item-link {
- display: block;
- width: 100%;
- height: 100%;
- font-size: 12px;
- text-align: center;
- background-color: #fff;
- border: 1px solid #d9d9d9;
- border-radius: 2px;
- outline: none;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
-}
-.ant-pagination-prev:focus .ant-pagination-item-link,
-.ant-pagination-next:focus .ant-pagination-item-link,
-.ant-pagination-prev:hover .ant-pagination-item-link,
-.ant-pagination-next:hover .ant-pagination-item-link {
- color: #1890ff;
- border-color: #1890ff;
-}
-.ant-pagination-disabled,
-.ant-pagination-disabled:hover,
-.ant-pagination-disabled:focus {
- cursor: not-allowed;
-}
-.ant-pagination-disabled .ant-pagination-item-link,
-.ant-pagination-disabled:hover .ant-pagination-item-link,
-.ant-pagination-disabled:focus .ant-pagination-item-link {
- color: rgba(0, 0, 0, 0.25);
- border-color: #d9d9d9;
- cursor: not-allowed;
-}
-.ant-pagination-slash {
- margin: 0 10px 0 5px;
-}
-.ant-pagination-options {
- display: inline-block;
- margin-left: 16px;
- vertical-align: middle;
-}
-@media all and (-ms-high-contrast: none) {
- .ant-pagination-options *::-ms-backdrop,
- .ant-pagination-options {
- vertical-align: top;
- }
-}
-.ant-pagination-options-size-changer.ant-select {
- display: inline-block;
- width: auto;
- margin-right: 8px;
-}
-.ant-pagination-options-quick-jumper {
- display: inline-block;
- height: 32px;
- line-height: 32px;
- vertical-align: top;
-}
-.ant-pagination-options-quick-jumper input {
- position: relative;
- display: inline-block;
- width: 100%;
- min-width: 0;
- padding: 4px 11px;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- line-height: 1.5715;
- background-color: #fff;
- background-image: none;
- border: 1px solid #d9d9d9;
- border-radius: 2px;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
- width: 50px;
- margin: 0 8px;
-}
-.ant-pagination-options-quick-jumper input::-moz-placeholder {
- opacity: 1;
-}
-.ant-pagination-options-quick-jumper input::-webkit-input-placeholder {
- color: #bfbfbf;
-}
-.ant-pagination-options-quick-jumper input:-ms-input-placeholder {
- color: #bfbfbf;
-}
-.ant-pagination-options-quick-jumper input::-ms-input-placeholder {
- color: #bfbfbf;
-}
-.ant-pagination-options-quick-jumper input::placeholder {
- color: #bfbfbf;
-}
-.ant-pagination-options-quick-jumper input:-moz-placeholder-shown {
- text-overflow: ellipsis;
-}
-.ant-pagination-options-quick-jumper input:-ms-input-placeholder {
- text-overflow: ellipsis;
-}
-.ant-pagination-options-quick-jumper input:placeholder-shown {
- text-overflow: ellipsis;
-}
-.ant-pagination-options-quick-jumper input:hover {
- border-color: #40a9ff;
- border-right-width: 1px !important;
-}
-.ant-pagination-options-quick-jumper input:focus,
-.ant-pagination-options-quick-jumper input-focused {
- border-color: #40a9ff;
- border-right-width: 1px !important;
- outline: 0;
- -webkit-box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
- box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
-}
-.ant-pagination-options-quick-jumper input-disabled {
- color: rgba(0, 0, 0, 0.25);
- background-color: #f5f5f5;
- cursor: not-allowed;
- opacity: 1;
-}
-.ant-pagination-options-quick-jumper input-disabled:hover {
- border-color: #d9d9d9;
- border-right-width: 1px !important;
-}
-.ant-pagination-options-quick-jumper input[disabled] {
- color: rgba(0, 0, 0, 0.25);
- background-color: #f5f5f5;
- cursor: not-allowed;
- opacity: 1;
-}
-.ant-pagination-options-quick-jumper input[disabled]:hover {
- border-color: #d9d9d9;
- border-right-width: 1px !important;
-}
-textarea.ant-pagination-options-quick-jumper input {
- max-width: 100%;
- height: auto;
- min-height: 32px;
- line-height: 1.5715;
- vertical-align: bottom;
- -webkit-transition: all 0.3s, height 0s;
- transition: all 0.3s, height 0s;
-}
-.ant-pagination-options-quick-jumper input-lg {
- padding: 6.5px 11px;
- font-size: 16px;
-}
-.ant-pagination-options-quick-jumper input-sm {
- padding: 0px 7px;
-}
-.ant-pagination-simple .ant-pagination-prev,
-.ant-pagination-simple .ant-pagination-next {
- height: 24px;
- line-height: 24px;
- vertical-align: top;
-}
-.ant-pagination-simple .ant-pagination-prev .ant-pagination-item-link,
-.ant-pagination-simple .ant-pagination-next .ant-pagination-item-link {
- height: 24px;
- background-color: transparent;
- border: 0;
-}
-.ant-pagination-simple .ant-pagination-prev .ant-pagination-item-link::after,
-.ant-pagination-simple .ant-pagination-next .ant-pagination-item-link::after {
- height: 24px;
- line-height: 24px;
-}
-.ant-pagination-simple .ant-pagination-simple-pager {
- display: inline-block;
- height: 24px;
- margin-right: 8px;
-}
-.ant-pagination-simple .ant-pagination-simple-pager input {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- height: 100%;
- margin-right: 8px;
- padding: 0 6px;
- text-align: center;
- background-color: #fff;
- border: 1px solid #d9d9d9;
- border-radius: 2px;
- outline: none;
- -webkit-transition: border-color 0.3s;
- transition: border-color 0.3s;
-}
-.ant-pagination-simple .ant-pagination-simple-pager input:hover {
- border-color: #1890ff;
-}
-.ant-pagination.mini .ant-pagination-total-text,
-.ant-pagination.mini .ant-pagination-simple-pager {
- height: 24px;
- line-height: 24px;
-}
-.ant-pagination.mini .ant-pagination-item {
- min-width: 24px;
- height: 24px;
- margin: 0;
- line-height: 22px;
-}
-.ant-pagination.mini .ant-pagination-item:not(.ant-pagination-item-active) {
- background: transparent;
- border-color: transparent;
-}
-.ant-pagination.mini .ant-pagination-prev,
-.ant-pagination.mini .ant-pagination-next {
- min-width: 24px;
- height: 24px;
- margin: 0;
- line-height: 24px;
-}
-.ant-pagination.mini .ant-pagination-prev .ant-pagination-item-link,
-.ant-pagination.mini .ant-pagination-next .ant-pagination-item-link {
- background: transparent;
- border-color: transparent;
-}
-.ant-pagination.mini .ant-pagination-prev .ant-pagination-item-link::after,
-.ant-pagination.mini .ant-pagination-next .ant-pagination-item-link::after {
- height: 24px;
- line-height: 24px;
-}
-.ant-pagination.mini .ant-pagination-jump-prev,
-.ant-pagination.mini .ant-pagination-jump-next {
- height: 24px;
- margin-right: 0;
- line-height: 24px;
-}
-.ant-pagination.mini .ant-pagination-options {
- margin-left: 2px;
-}
-.ant-pagination.mini .ant-pagination-options-size-changer {
- top: 0px;
-}
-.ant-pagination.mini .ant-pagination-options-quick-jumper {
- height: 24px;
- line-height: 24px;
-}
-.ant-pagination.mini .ant-pagination-options-quick-jumper input {
- padding: 0px 7px;
- width: 44px;
-}
-.ant-pagination.ant-pagination-disabled {
- cursor: not-allowed;
-}
-.ant-pagination.ant-pagination-disabled .ant-pagination-item {
- background: #f5f5f5;
- border-color: #d9d9d9;
- cursor: not-allowed;
-}
-.ant-pagination.ant-pagination-disabled .ant-pagination-item a {
- color: rgba(0, 0, 0, 0.25);
- background: transparent;
- border: none;
- cursor: not-allowed;
-}
-.ant-pagination.ant-pagination-disabled .ant-pagination-item-active {
- background: #dbdbdb;
- border-color: transparent;
-}
-.ant-pagination.ant-pagination-disabled .ant-pagination-item-active a {
- color: #fff;
-}
-.ant-pagination.ant-pagination-disabled .ant-pagination-item-link {
- color: rgba(0, 0, 0, 0.25);
- background: #f5f5f5;
- border-color: #d9d9d9;
- cursor: not-allowed;
-}
-.ant-pagination.ant-pagination-disabled .ant-pagination-item-link-icon {
- opacity: 0;
-}
-.ant-pagination.ant-pagination-disabled .ant-pagination-item-ellipsis {
- opacity: 1;
-}
-@media only screen and (max-width: 992px) {
- .ant-pagination-item-after-jump-prev,
- .ant-pagination-item-before-jump-next {
- display: none;
- }
-}
-@media only screen and (max-width: 576px) {
- .ant-pagination-options {
- display: none;
- }
-}
-.ant-pagination-rtl {
- direction: rtl;
-}
-.ant-pagination-rtl .ant-pagination-total-text {
- margin-right: 0;
- margin-left: 8px;
-}
-.ant-pagination-rtl .ant-pagination-item {
- margin-right: 0;
- margin-left: 8px;
-}
-.ant-pagination-rtl .ant-pagination-prev,
-.ant-pagination-rtl .ant-pagination-jump-prev,
-.ant-pagination-rtl .ant-pagination-jump-next {
- margin-right: 0;
- margin-left: 8px;
-}
-.ant-pagination-rtl .ant-pagination-slash {
- margin: 0 5px 0 10px;
-}
-.ant-pagination-rtl .ant-pagination-options {
- margin-right: 16px;
- margin-left: 0;
-}
-.ant-pagination-rtl .ant-pagination-options-size-changer.ant-select {
- margin-right: 0;
- margin-left: 8px;
-}
-.ant-pagination-rtl.ant-pagination-simple .ant-pagination-simple-pager {
- margin-right: 0;
- margin-left: 8px;
-}
-.ant-pagination-rtl.ant-pagination-simple .ant-pagination-simple-pager input {
- margin-right: 0;
- margin-left: 8px;
-}
-.ant-pagination-rtl.ant-pagination.mini .ant-pagination-options {
- margin-right: 2px;
- margin-left: 0;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-mentions {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- font-variant: tabular-nums;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- width: 100%;
- min-width: 0;
- padding: 4px 11px;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- background-color: #fff;
- background-image: none;
- border: 1px solid #d9d9d9;
- border-radius: 2px;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
- position: relative;
- display: inline-block;
- height: auto;
- padding: 0;
- overflow: hidden;
- line-height: 1.5715;
- white-space: pre-wrap;
- vertical-align: bottom;
-}
-.ant-mentions::-moz-placeholder {
- opacity: 1;
-}
-.ant-mentions::-webkit-input-placeholder {
- color: #bfbfbf;
-}
-.ant-mentions:-ms-input-placeholder {
- color: #bfbfbf;
-}
-.ant-mentions::-ms-input-placeholder {
- color: #bfbfbf;
-}
-.ant-mentions::placeholder {
- color: #bfbfbf;
-}
-.ant-mentions:-moz-placeholder-shown {
- text-overflow: ellipsis;
-}
-.ant-mentions:-ms-input-placeholder {
- text-overflow: ellipsis;
-}
-.ant-mentions:placeholder-shown {
- text-overflow: ellipsis;
-}
-.ant-mentions:hover {
- border-color: #40a9ff;
- border-right-width: 1px !important;
-}
-.ant-mentions:focus,
-.ant-mentions-focused {
- border-color: #40a9ff;
- border-right-width: 1px !important;
- outline: 0;
- -webkit-box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
- box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
-}
-.ant-mentions-disabled {
- color: rgba(0, 0, 0, 0.25);
- background-color: #f5f5f5;
- cursor: not-allowed;
- opacity: 1;
-}
-.ant-mentions-disabled:hover {
- border-color: #d9d9d9;
- border-right-width: 1px !important;
-}
-.ant-mentions[disabled] {
- color: rgba(0, 0, 0, 0.25);
- background-color: #f5f5f5;
- cursor: not-allowed;
- opacity: 1;
-}
-.ant-mentions[disabled]:hover {
- border-color: #d9d9d9;
- border-right-width: 1px !important;
-}
-textarea.ant-mentions {
- max-width: 100%;
- height: auto;
- min-height: 32px;
- line-height: 1.5715;
- vertical-align: bottom;
- -webkit-transition: all 0.3s, height 0s;
- transition: all 0.3s, height 0s;
-}
-.ant-mentions-lg {
- padding: 6.5px 11px;
- font-size: 16px;
-}
-.ant-mentions-sm {
- padding: 0px 7px;
-}
-.ant-mentions-disabled > textarea {
- color: rgba(0, 0, 0, 0.25);
- background-color: #f5f5f5;
- cursor: not-allowed;
- opacity: 1;
-}
-.ant-mentions-disabled > textarea:hover {
- border-color: #d9d9d9;
- border-right-width: 1px !important;
-}
-.ant-mentions-focused {
- border-color: #40a9ff;
- border-right-width: 1px !important;
- outline: 0;
- -webkit-box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
- box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
-}
-.ant-mentions > textarea,
-.ant-mentions-measure {
- min-height: 30px;
- margin: 0;
- padding: 4px 11px;
- overflow: inherit;
- overflow-x: hidden;
- overflow-y: auto;
- font-weight: inherit;
- font-size: inherit;
- font-family: inherit;
- font-style: inherit;
- font-variant: inherit;
- font-size-adjust: inherit;
- font-stretch: inherit;
- line-height: inherit;
- direction: inherit;
- letter-spacing: inherit;
- white-space: inherit;
- text-align: inherit;
- vertical-align: top;
- word-wrap: break-word;
- word-break: inherit;
- -moz-tab-size: inherit;
- -o-tab-size: inherit;
- tab-size: inherit;
-}
-.ant-mentions > textarea {
- width: 100%;
- border: none;
- outline: none;
- resize: none;
-}
-.ant-mentions > textarea::-moz-placeholder {
- opacity: 1;
-}
-.ant-mentions > textarea::-webkit-input-placeholder {
- color: #bfbfbf;
-}
-.ant-mentions > textarea:-ms-input-placeholder {
- color: #bfbfbf;
-}
-.ant-mentions > textarea::-ms-input-placeholder {
- color: #bfbfbf;
-}
-.ant-mentions > textarea::placeholder {
- color: #bfbfbf;
-}
-.ant-mentions > textarea:-moz-placeholder-shown {
- text-overflow: ellipsis;
-}
-.ant-mentions > textarea:-ms-input-placeholder {
- text-overflow: ellipsis;
-}
-.ant-mentions > textarea:placeholder-shown {
- text-overflow: ellipsis;
-}
-.ant-mentions > textarea:-moz-read-only {
- cursor: default;
-}
-.ant-mentions > textarea:read-only {
- cursor: default;
-}
-.ant-mentions-measure {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- z-index: -1;
- color: transparent;
- pointer-events: none;
-}
-.ant-mentions-measure > span {
- display: inline-block;
- min-height: 1em;
-}
-.ant-mentions-dropdown {
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- position: absolute;
- top: -9999px;
- left: -9999px;
- z-index: 1050;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- font-size: 14px;
- font-variant: initial;
- background-color: #fff;
- border-radius: 2px;
- outline: none;
- -webkit-box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
- box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
-}
-.ant-mentions-dropdown-hidden {
- display: none;
-}
-.ant-mentions-dropdown-menu {
- max-height: 250px;
- margin-bottom: 0;
- padding-left: 0;
- overflow: auto;
- list-style: none;
- outline: none;
-}
-.ant-mentions-dropdown-menu-item {
- position: relative;
- display: block;
- min-width: 100px;
- padding: 5px 12px;
- overflow: hidden;
- color: rgba(0, 0, 0, 0.65);
- font-weight: normal;
- line-height: 1.5715;
- white-space: nowrap;
- text-overflow: ellipsis;
- cursor: pointer;
- -webkit-transition: background 0.3s ease;
- transition: background 0.3s ease;
-}
-.ant-mentions-dropdown-menu-item:hover {
- background-color: #f5f5f5;
-}
-.ant-mentions-dropdown-menu-item:first-child {
- border-radius: 2px 2px 0 0;
-}
-.ant-mentions-dropdown-menu-item:last-child {
- border-radius: 0 0 2px 2px;
-}
-.ant-mentions-dropdown-menu-item-disabled {
- color: rgba(0, 0, 0, 0.25);
- cursor: not-allowed;
-}
-.ant-mentions-dropdown-menu-item-disabled:hover {
- color: rgba(0, 0, 0, 0.25);
- background-color: #fff;
- cursor: not-allowed;
-}
-.ant-mentions-dropdown-menu-item-selected {
- color: rgba(0, 0, 0, 0.65);
- font-weight: 600;
- background-color: #fafafa;
-}
-.ant-mentions-dropdown-menu-item-active {
- background-color: #f5f5f5;
-}
-.ant-mentions-rtl {
- direction: rtl;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-message {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- position: fixed;
- top: 16px;
- left: 0;
- z-index: 1010;
- width: 100%;
- pointer-events: none;
-}
-.ant-message-notice {
- padding: 8px;
- text-align: center;
-}
-.ant-message-notice:first-child {
- margin-top: -8px;
-}
-.ant-message-notice-content {
- display: inline-block;
- padding: 10px 16px;
- background: #fff;
- border-radius: 2px;
- -webkit-box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
- box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
- pointer-events: all;
-}
-.ant-message-success .anticon {
- color: #52c41a;
-}
-.ant-message-error .anticon {
- color: #ff4d4f;
-}
-.ant-message-warning .anticon {
- color: #faad14;
-}
-.ant-message-info .anticon,
-.ant-message-loading .anticon {
- color: #1890ff;
-}
-.ant-message .anticon {
- position: relative;
- top: 1px;
- margin-right: 8px;
- font-size: 16px;
-}
-.ant-message-notice.move-up-leave.move-up-leave-active {
- -webkit-animation-name: MessageMoveOut;
- animation-name: MessageMoveOut;
- -webkit-animation-duration: 0.3s;
- animation-duration: 0.3s;
-}
-@-webkit-keyframes MessageMoveOut {
- 0% {
- max-height: 150px;
- padding: 8px;
- opacity: 1;
- }
- 100% {
- max-height: 0;
- padding: 0;
- opacity: 0;
- }
-}
-@keyframes MessageMoveOut {
- 0% {
- max-height: 150px;
- padding: 8px;
- opacity: 1;
- }
- 100% {
- max-height: 0;
- padding: 0;
- opacity: 0;
- }
-}
-.ant-message-rtl {
- direction: rtl;
-}
-.ant-message-rtl span {
- direction: rtl;
-}
-.ant-message-rtl .anticon {
- margin-right: 0;
- margin-left: 8px;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-modal {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- position: relative;
- top: 100px;
- width: auto;
- margin: 0 auto;
- padding-bottom: 24px;
- pointer-events: none;
-}
-.ant-modal-wrap {
- position: fixed;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- z-index: 1000;
- overflow: auto;
- outline: 0;
- -webkit-overflow-scrolling: touch;
-}
-.ant-modal-title {
- margin: 0;
- color: rgba(0, 0, 0, 0.85);
- font-weight: 500;
- font-size: 16px;
- line-height: 22px;
- word-wrap: break-word;
-}
-.ant-modal-content {
- position: relative;
- background-color: #fff;
- background-clip: padding-box;
- border: 0;
- border-radius: 2px;
- -webkit-box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
- box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
- pointer-events: auto;
-}
-.ant-modal-close {
- position: absolute;
- top: 0;
- right: 0;
- z-index: 10;
- padding: 0;
- color: rgba(0, 0, 0, 0.45);
- font-weight: 700;
- line-height: 1;
- text-decoration: none;
- background: transparent;
- border: 0;
- outline: 0;
- cursor: pointer;
- -webkit-transition: color 0.3s;
- transition: color 0.3s;
-}
-.ant-modal-close-x {
- display: block;
- width: 56px;
- height: 56px;
- font-size: 16px;
- font-style: normal;
- line-height: 56px;
- text-align: center;
- text-transform: none;
- text-rendering: auto;
-}
-.ant-modal-close:focus,
-.ant-modal-close:hover {
- color: rgba(0, 0, 0, 0.75);
- text-decoration: none;
-}
-.ant-modal-header {
- padding: 16px 24px;
- color: rgba(0, 0, 0, 0.65);
- background: #fff;
- border-bottom: 1px solid #f0f0f0;
- border-radius: 2px 2px 0 0;
-}
-.ant-modal-body {
- padding: 24px;
- font-size: 14px;
- line-height: 1.5715;
- word-wrap: break-word;
-}
-.ant-modal-footer {
- padding: 10px 16px;
- text-align: right;
- background: transparent;
- border-top: 1px solid #f0f0f0;
- border-radius: 0 0 2px 2px;
-}
-.ant-modal-footer button + button {
- margin-bottom: 0;
- margin-left: 8px;
-}
-.ant-modal.zoom-enter,
-.ant-modal.zoom-appear {
- -webkit-transform: none;
- transform: none;
- opacity: 0;
- -webkit-animation-duration: 0.3s;
- animation-duration: 0.3s;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-.ant-modal-mask {
- position: fixed;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- z-index: 1000;
- height: 100%;
- background-color: rgba(0, 0, 0, 0.45);
- filter: alpha(opacity=50);
-}
-.ant-modal-mask-hidden {
- display: none;
-}
-.ant-modal-open {
- overflow: hidden;
-}
-.ant-modal-centered {
- text-align: center;
-}
-.ant-modal-centered::before {
- display: inline-block;
- width: 0;
- height: 100%;
- vertical-align: middle;
- content: '';
-}
-.ant-modal-centered .ant-modal {
- top: 0;
- display: inline-block;
- text-align: left;
- vertical-align: middle;
-}
-@media (max-width: 767px) {
- .ant-modal {
- max-width: calc(100vw - 16px);
- margin: 8px auto;
- }
- .ant-modal-centered .ant-modal {
- -webkit-box-flex: 1;
- -ms-flex: 1;
- flex: 1;
- }
-}
-.ant-modal-confirm .ant-modal-header {
- display: none;
-}
-.ant-modal-confirm .ant-modal-close {
- display: none;
-}
-.ant-modal-confirm .ant-modal-body {
- padding: 32px 32px 24px;
-}
-.ant-modal-confirm-body-wrapper::before {
- display: table;
- content: '';
-}
-.ant-modal-confirm-body-wrapper::after {
- display: table;
- clear: both;
- content: '';
-}
-.ant-modal-confirm-body .ant-modal-confirm-title {
- display: block;
- overflow: hidden;
- color: rgba(0, 0, 0, 0.85);
- font-weight: 500;
- font-size: 16px;
- line-height: 1.4;
-}
-.ant-modal-confirm-body .ant-modal-confirm-content {
- margin-top: 8px;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
-}
-.ant-modal-confirm-body > .anticon {
- float: left;
- margin-right: 16px;
- font-size: 22px;
-}
-.ant-modal-confirm-body > .anticon + .ant-modal-confirm-title + .ant-modal-confirm-content {
- margin-left: 38px;
-}
-.ant-modal-confirm .ant-modal-confirm-btns {
- float: right;
- margin-top: 24px;
-}
-.ant-modal-confirm .ant-modal-confirm-btns button + button {
- margin-bottom: 0;
- margin-left: 8px;
-}
-.ant-modal-confirm-error .ant-modal-confirm-body > .anticon {
- color: #ff4d4f;
-}
-.ant-modal-confirm-warning .ant-modal-confirm-body > .anticon,
-.ant-modal-confirm-confirm .ant-modal-confirm-body > .anticon {
- color: #faad14;
-}
-.ant-modal-confirm-info .ant-modal-confirm-body > .anticon {
- color: #1890ff;
-}
-.ant-modal-confirm-success .ant-modal-confirm-body > .anticon {
- color: #52c41a;
-}
-.ant-modal-wrap-rtl {
- direction: rtl;
-}
-.ant-modal-wrap-rtl .ant-modal-close {
- right: initial;
- left: 0;
-}
-.ant-modal-wrap-rtl .ant-modal-footer {
- text-align: left;
-}
-.ant-modal-wrap-rtl .ant-modal-footer button + button {
- margin-right: 8px;
- margin-left: 0;
-}
-.ant-modal-wrap-rtl .ant-modal-confirm-body {
- direction: rtl;
-}
-.ant-modal-wrap-rtl .ant-modal-confirm-body > .anticon {
- float: right;
- margin-right: 0;
- margin-left: 16px;
-}
-.ant-modal-wrap-rtl .ant-modal-confirm-body > .anticon + .ant-modal-confirm-title + .ant-modal-confirm-content {
- margin-right: 38px;
- margin-left: 0;
-}
-.ant-modal-wrap-rtl .ant-modal-confirm-btns {
- float: left;
-}
-.ant-modal-wrap-rtl .ant-modal-confirm-btns button + button {
- margin-right: 8px;
- margin-left: 0;
-}
-.ant-modal-wrap-rtl.ant-modal-centered .ant-modal {
- text-align: right;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-notification {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- position: fixed;
- z-index: 1010;
- max-width: calc(100vw - 32px);
- margin-right: 24px;
-}
-.ant-notification-topLeft,
-.ant-notification-bottomLeft {
- margin-right: 0;
- margin-left: 24px;
-}
-.ant-notification-topLeft .ant-notification-fade-enter.ant-notification-fade-enter-active,
-.ant-notification-bottomLeft .ant-notification-fade-enter.ant-notification-fade-enter-active,
-.ant-notification-topLeft .ant-notification-fade-appear.ant-notification-fade-appear-active,
-.ant-notification-bottomLeft .ant-notification-fade-appear.ant-notification-fade-appear-active {
- -webkit-animation-name: NotificationLeftFadeIn;
- animation-name: NotificationLeftFadeIn;
-}
-.ant-notification-close-icon {
- font-size: 14px;
- cursor: pointer;
-}
-.ant-notification-hook-holder,
-.ant-notification-notice {
- position: relative;
- width: 384px;
- margin-bottom: 16px;
- margin-left: auto;
- overflow: hidden;
- background: #fff;
- border-radius: 2px;
- -webkit-box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
- box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
-}
-.ant-notification-topLeft .ant-notification-hook-holder,
-.ant-notification-topLeft .ant-notification-notice,
-.ant-notification-bottomLeft .ant-notification-hook-holder,
-.ant-notification-bottomLeft .ant-notification-notice {
- margin-right: auto;
- margin-left: 0;
-}
-.ant-notification-hook-holder > .ant-notification-notice {
- margin-bottom: 0;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-.ant-notification-notice {
- padding: 16px 24px;
- line-height: 1.5715;
-}
-.ant-notification-notice-message {
- display: inline-block;
- margin-bottom: 8px;
- color: rgba(0, 0, 0, 0.85);
- font-size: 16px;
- line-height: 24px;
-}
-.ant-notification-notice-message-single-line-auto-margin {
- display: block;
- width: calc(384px - 24px * 2 - 24px - 48px - 100%);
- max-width: 4px;
- background-color: transparent;
- pointer-events: none;
-}
-.ant-notification-notice-message-single-line-auto-margin::before {
- display: block;
- content: '';
-}
-.ant-notification-notice-description {
- font-size: 14px;
-}
-.ant-notification-notice-closable .ant-notification-notice-message {
- padding-right: 24px;
-}
-.ant-notification-notice-with-icon .ant-notification-notice-message {
- margin-bottom: 4px;
- margin-left: 48px;
- font-size: 16px;
-}
-.ant-notification-notice-with-icon .ant-notification-notice-description {
- margin-left: 48px;
- font-size: 14px;
-}
-.ant-notification-notice-icon {
- position: absolute;
- margin-left: 4px;
- font-size: 24px;
- line-height: 24px;
-}
-.anticon.ant-notification-notice-icon-success {
- color: #52c41a;
-}
-.anticon.ant-notification-notice-icon-info {
- color: #1890ff;
-}
-.anticon.ant-notification-notice-icon-warning {
- color: #faad14;
-}
-.anticon.ant-notification-notice-icon-error {
- color: #ff4d4f;
-}
-.ant-notification-notice-close {
- position: absolute;
- top: 16px;
- right: 22px;
- color: rgba(0, 0, 0, 0.45);
- outline: none;
-}
-.ant-notification-notice-close:hover {
- color: rgba(0, 0, 0, 0.67);
-}
-.ant-notification-notice-btn {
- float: right;
- margin-top: 16px;
-}
-.ant-notification .notification-fade-effect {
- -webkit-animation-duration: 0.24s;
- animation-duration: 0.24s;
- -webkit-animation-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);
- animation-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
-}
-.ant-notification-fade-enter,
-.ant-notification-fade-appear {
- opacity: 0;
- -webkit-animation-duration: 0.24s;
- animation-duration: 0.24s;
- -webkit-animation-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);
- animation-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
- -webkit-animation-play-state: paused;
- animation-play-state: paused;
-}
-.ant-notification-fade-leave {
- -webkit-animation-duration: 0.24s;
- animation-duration: 0.24s;
- -webkit-animation-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);
- animation-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
- -webkit-animation-duration: 0.2s;
- animation-duration: 0.2s;
- -webkit-animation-play-state: paused;
- animation-play-state: paused;
-}
-.ant-notification-fade-enter.ant-notification-fade-enter-active,
-.ant-notification-fade-appear.ant-notification-fade-appear-active {
- -webkit-animation-name: NotificationFadeIn;
- animation-name: NotificationFadeIn;
- -webkit-animation-play-state: running;
- animation-play-state: running;
-}
-.ant-notification-fade-leave.ant-notification-fade-leave-active {
- -webkit-animation-name: NotificationFadeOut;
- animation-name: NotificationFadeOut;
- -webkit-animation-play-state: running;
- animation-play-state: running;
-}
-@-webkit-keyframes NotificationFadeIn {
- 0% {
- left: 384px;
- opacity: 0;
- }
- 100% {
- left: 0;
- opacity: 1;
- }
-}
-@keyframes NotificationFadeIn {
- 0% {
- left: 384px;
- opacity: 0;
- }
- 100% {
- left: 0;
- opacity: 1;
- }
-}
-@-webkit-keyframes NotificationLeftFadeIn {
- 0% {
- right: 384px;
- opacity: 0;
- }
- 100% {
- right: 0;
- opacity: 1;
- }
-}
-@keyframes NotificationLeftFadeIn {
- 0% {
- right: 384px;
- opacity: 0;
- }
- 100% {
- right: 0;
- opacity: 1;
- }
-}
-@-webkit-keyframes NotificationFadeOut {
- 0% {
- max-height: 150px;
- margin-bottom: 16px;
- padding-top: 16px;
- padding-bottom: 16px;
- opacity: 1;
- }
- 100% {
- max-height: 0;
- margin-bottom: 0;
- padding-top: 0;
- padding-bottom: 0;
- opacity: 0;
- }
-}
-@keyframes NotificationFadeOut {
- 0% {
- max-height: 150px;
- margin-bottom: 16px;
- padding-top: 16px;
- padding-bottom: 16px;
- opacity: 1;
- }
- 100% {
- max-height: 0;
- margin-bottom: 0;
- padding-top: 0;
- padding-bottom: 0;
- opacity: 0;
- }
-}
-.ant-notification-rtl {
- direction: rtl;
-}
-.ant-notification-rtl .ant-notification-notice-closable .ant-notification-notice-message {
- padding-right: 0;
- padding-left: 24px;
-}
-.ant-notification-rtl .ant-notification-notice-with-icon .ant-notification-notice-message {
- margin-right: 48px;
- margin-left: 0;
-}
-.ant-notification-rtl .ant-notification-notice-with-icon .ant-notification-notice-description {
- margin-right: 48px;
- margin-left: 0;
-}
-.ant-notification-rtl .ant-notification-notice-icon {
- margin-right: 4px;
- margin-left: 0;
-}
-.ant-notification-rtl .ant-notification-notice-close {
- right: auto;
- left: 22px;
-}
-.ant-notification-rtl .ant-notification-notice-btn {
- float: left;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-page-header {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- position: relative;
- padding: 16px 24px;
- background-color: #fff;
-}
-.ant-page-header-ghost {
- background-color: inherit;
-}
-.ant-page-header.has-breadcrumb {
- padding-top: 12px;
-}
-.ant-page-header.has-footer {
- padding-bottom: 0;
-}
-.ant-page-header-back {
- margin-right: 16px;
- font-size: 16px;
- line-height: 1;
-}
-.ant-page-header-back-button {
- color: #1890ff;
- text-decoration: none;
- outline: none;
- -webkit-transition: color 0.3s;
- transition: color 0.3s;
- color: #000;
- cursor: pointer;
-}
-.ant-page-header-back-button:focus,
-.ant-page-header-back-button:hover {
- color: #40a9ff;
-}
-.ant-page-header-back-button:active {
- color: #096dd9;
-}
-.ant-page-header .ant-divider-vertical {
- height: 14px;
- margin: 0 12px;
- vertical-align: middle;
-}
-.ant-breadcrumb + .ant-page-header-heading {
- margin-top: 8px;
-}
-.ant-page-header-heading {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-pack: justify;
- -ms-flex-pack: justify;
- justify-content: space-between;
-}
-.ant-page-header-heading-left {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- margin: 4px 0;
- overflow: hidden;
-}
-.ant-page-header-heading-title {
- margin-right: 12px;
- margin-bottom: 0;
- color: rgba(0, 0, 0, 0.85);
- font-weight: 600;
- font-size: 20px;
- line-height: 32px;
- overflow: hidden;
- white-space: nowrap;
- text-overflow: ellipsis;
-}
-.ant-page-header-heading .ant-avatar {
- margin-right: 12px;
-}
-.ant-page-header-heading-sub-title {
- margin-right: 12px;
- color: rgba(0, 0, 0, 0.45);
- font-size: 14px;
- line-height: 1.5715;
- overflow: hidden;
- white-space: nowrap;
- text-overflow: ellipsis;
-}
-.ant-page-header-heading-extra {
- margin: 4px 0;
- white-space: nowrap;
-}
-.ant-page-header-heading-extra > * {
- margin-left: 12px;
- white-space: unset;
-}
-.ant-page-header-heading-extra > *:first-child {
- margin-left: 0;
-}
-.ant-page-header-content {
- padding-top: 12px;
-}
-.ant-page-header-footer {
- margin-top: 16px;
-}
-.ant-page-header-footer .ant-tabs > .ant-tabs-nav {
- margin: 0;
-}
-.ant-page-header-footer .ant-tabs > .ant-tabs-nav::before {
- border: none;
-}
-.ant-page-header-footer .ant-tabs .ant-tabs-tab {
- padding: 8px 0;
- font-size: 16px;
-}
-.ant-page-header-compact .ant-page-header-heading {
- -ms-flex-wrap: wrap;
- flex-wrap: wrap;
-}
-.ant-page-header-rtl {
- direction: rtl;
-}
-.ant-page-header-rtl .ant-page-header-back {
- float: right;
- margin-right: 0;
- margin-left: 16px;
-}
-.ant-page-header-rtl .ant-page-header-heading-title {
- margin-right: 0;
- margin-left: 12px;
-}
-.ant-page-header-rtl .ant-page-header-heading .ant-avatar {
- margin-right: 0;
- margin-left: 12px;
-}
-.ant-page-header-rtl .ant-page-header-heading-sub-title {
- float: right;
- margin-right: 0;
- margin-left: 12px;
-}
-.ant-page-header-rtl .ant-page-header-heading-tags {
- float: right;
-}
-.ant-page-header-rtl .ant-page-header-heading-extra {
- float: left;
-}
-.ant-page-header-rtl .ant-page-header-heading-extra > * {
- margin-right: 12px;
- margin-left: 0;
-}
-.ant-page-header-rtl .ant-page-header-heading-extra > *:first-child {
- margin-right: 0;
-}
-.ant-page-header-rtl .ant-page-header-footer .ant-tabs-bar .ant-tabs-nav {
- float: right;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-popover {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- position: absolute;
- top: 0;
- left: 0;
- z-index: 1030;
- font-weight: normal;
- white-space: normal;
- text-align: left;
- cursor: auto;
- -webkit-user-select: text;
- -moz-user-select: text;
- -ms-user-select: text;
- user-select: text;
-}
-.ant-popover::after {
- position: absolute;
- background: rgba(255, 255, 255, 0.01);
- content: '';
-}
-.ant-popover-hidden {
- display: none;
-}
-.ant-popover-placement-top,
-.ant-popover-placement-topLeft,
-.ant-popover-placement-topRight {
- padding-bottom: 10px;
-}
-.ant-popover-placement-right,
-.ant-popover-placement-rightTop,
-.ant-popover-placement-rightBottom {
- padding-left: 10px;
-}
-.ant-popover-placement-bottom,
-.ant-popover-placement-bottomLeft,
-.ant-popover-placement-bottomRight {
- padding-top: 10px;
-}
-.ant-popover-placement-left,
-.ant-popover-placement-leftTop,
-.ant-popover-placement-leftBottom {
- padding-right: 10px;
-}
-.ant-popover-inner {
- background-color: #fff;
- background-clip: padding-box;
- border-radius: 2px;
- -webkit-box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
- box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
- -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.15) \9;
- box-shadow: 0 0 8px rgba(0, 0, 0, 0.15) \9;
-}
-@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
- .ant-popover {
- /* IE10+ */
- }
- .ant-popover-inner {
- -webkit-box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
- box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
- }
-}
-.ant-popover-title {
- min-width: 177px;
- min-height: 32px;
- margin: 0;
- padding: 5px 16px 4px;
- color: rgba(0, 0, 0, 0.85);
- font-weight: 500;
- border-bottom: 1px solid #f0f0f0;
-}
-.ant-popover-inner-content {
- padding: 12px 16px;
- color: rgba(0, 0, 0, 0.65);
-}
-.ant-popover-message {
- position: relative;
- padding: 4px 0 12px;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
-}
-.ant-popover-message > .anticon {
- position: absolute;
- top: 8.0005px;
- color: #faad14;
- font-size: 14px;
-}
-.ant-popover-message-title {
- padding-left: 22px;
-}
-.ant-popover-buttons {
- margin-bottom: 4px;
- text-align: right;
-}
-.ant-popover-buttons button {
- margin-left: 8px;
-}
-.ant-popover-arrow {
- position: absolute;
- display: block;
- width: 8.48528137px;
- height: 8.48528137px;
- background: transparent;
- border-style: solid;
- border-width: 4.24264069px;
- -webkit-transform: rotate(45deg);
- transform: rotate(45deg);
-}
-.ant-popover-placement-top > .ant-popover-content > .ant-popover-arrow,
-.ant-popover-placement-topLeft > .ant-popover-content > .ant-popover-arrow,
-.ant-popover-placement-topRight > .ant-popover-content > .ant-popover-arrow {
- bottom: 6.2px;
- border-top-color: transparent;
- border-right-color: #fff;
- border-bottom-color: #fff;
- border-left-color: transparent;
- -webkit-box-shadow: 3px 3px 7px rgba(0, 0, 0, 0.07);
- box-shadow: 3px 3px 7px rgba(0, 0, 0, 0.07);
-}
-.ant-popover-placement-top > .ant-popover-content > .ant-popover-arrow {
- left: 50%;
- -webkit-transform: translateX(-50%) rotate(45deg);
- transform: translateX(-50%) rotate(45deg);
-}
-.ant-popover-placement-topLeft > .ant-popover-content > .ant-popover-arrow {
- left: 16px;
-}
-.ant-popover-placement-topRight > .ant-popover-content > .ant-popover-arrow {
- right: 16px;
-}
-.ant-popover-placement-right > .ant-popover-content > .ant-popover-arrow,
-.ant-popover-placement-rightTop > .ant-popover-content > .ant-popover-arrow,
-.ant-popover-placement-rightBottom > .ant-popover-content > .ant-popover-arrow {
- left: 6px;
- border-top-color: transparent;
- border-right-color: transparent;
- border-bottom-color: #fff;
- border-left-color: #fff;
- -webkit-box-shadow: -3px 3px 7px rgba(0, 0, 0, 0.07);
- box-shadow: -3px 3px 7px rgba(0, 0, 0, 0.07);
-}
-.ant-popover-placement-right > .ant-popover-content > .ant-popover-arrow {
- top: 50%;
- -webkit-transform: translateY(-50%) rotate(45deg);
- transform: translateY(-50%) rotate(45deg);
-}
-.ant-popover-placement-rightTop > .ant-popover-content > .ant-popover-arrow {
- top: 12px;
-}
-.ant-popover-placement-rightBottom > .ant-popover-content > .ant-popover-arrow {
- bottom: 12px;
-}
-.ant-popover-placement-bottom > .ant-popover-content > .ant-popover-arrow,
-.ant-popover-placement-bottomLeft > .ant-popover-content > .ant-popover-arrow,
-.ant-popover-placement-bottomRight > .ant-popover-content > .ant-popover-arrow {
- top: 6px;
- border-top-color: #fff;
- border-right-color: transparent;
- border-bottom-color: transparent;
- border-left-color: #fff;
- -webkit-box-shadow: -2px -2px 5px rgba(0, 0, 0, 0.06);
- box-shadow: -2px -2px 5px rgba(0, 0, 0, 0.06);
-}
-.ant-popover-placement-bottom > .ant-popover-content > .ant-popover-arrow {
- left: 50%;
- -webkit-transform: translateX(-50%) rotate(45deg);
- transform: translateX(-50%) rotate(45deg);
-}
-.ant-popover-placement-bottomLeft > .ant-popover-content > .ant-popover-arrow {
- left: 16px;
-}
-.ant-popover-placement-bottomRight > .ant-popover-content > .ant-popover-arrow {
- right: 16px;
-}
-.ant-popover-placement-left > .ant-popover-content > .ant-popover-arrow,
-.ant-popover-placement-leftTop > .ant-popover-content > .ant-popover-arrow,
-.ant-popover-placement-leftBottom > .ant-popover-content > .ant-popover-arrow {
- right: 6px;
- border-top-color: #fff;
- border-right-color: #fff;
- border-bottom-color: transparent;
- border-left-color: transparent;
- -webkit-box-shadow: 3px -3px 7px rgba(0, 0, 0, 0.07);
- box-shadow: 3px -3px 7px rgba(0, 0, 0, 0.07);
-}
-.ant-popover-placement-left > .ant-popover-content > .ant-popover-arrow {
- top: 50%;
- -webkit-transform: translateY(-50%) rotate(45deg);
- transform: translateY(-50%) rotate(45deg);
-}
-.ant-popover-placement-leftTop > .ant-popover-content > .ant-popover-arrow {
- top: 12px;
-}
-.ant-popover-placement-leftBottom > .ant-popover-content > .ant-popover-arrow {
- bottom: 12px;
-}
-.ant-popover-rtl {
- direction: rtl;
- text-align: right;
-}
-.ant-popover-rtl .ant-popover-message-title {
- padding-right: 22px;
- padding-left: 16px;
-}
-.ant-popover-rtl .ant-popover-buttons {
- text-align: left;
-}
-.ant-popover-rtl .ant-popover-buttons button {
- margin-right: 8px;
- margin-left: 0;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-popconfirm {
- z-index: 1060;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-progress {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- display: inline-block;
-}
-.ant-progress-line {
- position: relative;
- width: 100%;
- font-size: 14px;
-}
-.ant-progress-steps {
- display: inline-block;
-}
-.ant-progress-steps-outer {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-orient: horizontal;
- -webkit-box-direction: normal;
- -ms-flex-direction: row;
- flex-direction: row;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
-}
-.ant-progress-steps-item {
- -ms-flex-negative: 0;
- flex-shrink: 0;
- min-width: 2px;
- margin-right: 2px;
- background: #f3f3f3;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
-}
-.ant-progress-steps-item-active {
- background: #1890ff;
-}
-.ant-progress-small.ant-progress-line,
-.ant-progress-small.ant-progress-line .ant-progress-text .anticon {
- font-size: 12px;
-}
-.ant-progress-outer {
- display: inline-block;
- width: 100%;
- margin-right: 0;
- padding-right: 0;
-}
-.ant-progress-show-info .ant-progress-outer {
- margin-right: calc(-2em - 8px);
- padding-right: calc(2em + 8px);
-}
-.ant-progress-inner {
- position: relative;
- display: inline-block;
- width: 100%;
- overflow: hidden;
- vertical-align: middle;
- background-color: #f5f5f5;
- border-radius: 100px;
-}
-.ant-progress-circle-trail {
- stroke: #f5f5f5;
-}
-.ant-progress-circle-path {
- -webkit-animation: ant-progress-appear 0.3s;
- animation: ant-progress-appear 0.3s;
-}
-.ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path {
- stroke: #1890ff;
-}
-.ant-progress-success-bg,
-.ant-progress-bg {
- position: relative;
- background-color: #1890ff;
- border-radius: 100px;
- -webkit-transition: all 0.4s cubic-bezier(0.08, 0.82, 0.17, 1) 0s;
- transition: all 0.4s cubic-bezier(0.08, 0.82, 0.17, 1) 0s;
-}
-.ant-progress-success-bg {
- position: absolute;
- top: 0;
- left: 0;
- background-color: #52c41a;
-}
-.ant-progress-text {
- display: inline-block;
- width: 2em;
- margin-left: 8px;
- color: rgba(0, 0, 0, 0.45);
- font-size: 1em;
- line-height: 1;
- white-space: nowrap;
- text-align: left;
- vertical-align: middle;
- word-break: normal;
-}
-.ant-progress-text .anticon {
- font-size: 14px;
-}
-.ant-progress-status-active .ant-progress-bg::before {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: #fff;
- border-radius: 10px;
- opacity: 0;
- -webkit-animation: ant-progress-active 2.4s cubic-bezier(0.23, 1, 0.32, 1) infinite;
- animation: ant-progress-active 2.4s cubic-bezier(0.23, 1, 0.32, 1) infinite;
- content: '';
-}
-.ant-progress-status-exception .ant-progress-bg {
- background-color: #ff4d4f;
-}
-.ant-progress-status-exception .ant-progress-text {
- color: #ff4d4f;
-}
-.ant-progress-status-exception .ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path {
- stroke: #ff4d4f;
-}
-.ant-progress-status-success .ant-progress-bg {
- background-color: #52c41a;
-}
-.ant-progress-status-success .ant-progress-text {
- color: #52c41a;
-}
-.ant-progress-status-success .ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path {
- stroke: #52c41a;
-}
-.ant-progress-circle .ant-progress-inner {
- position: relative;
- line-height: 1;
- background-color: transparent;
-}
-.ant-progress-circle .ant-progress-text {
- position: absolute;
- top: 50%;
- left: 50%;
- width: 100%;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 1em;
- line-height: 1;
- white-space: normal;
- text-align: center;
- -webkit-transform: translate(-50%, -50%);
- transform: translate(-50%, -50%);
-}
-.ant-progress-circle .ant-progress-text .anticon {
- font-size: 1.16666667em;
-}
-.ant-progress-circle.ant-progress-status-exception .ant-progress-text {
- color: #ff4d4f;
-}
-.ant-progress-circle.ant-progress-status-success .ant-progress-text {
- color: #52c41a;
-}
-@-webkit-keyframes ant-progress-active {
- 0% {
- width: 0;
- opacity: 0.1;
- }
- 20% {
- width: 0;
- opacity: 0.5;
- }
- 100% {
- width: 100%;
- opacity: 0;
- }
-}
-@keyframes ant-progress-active {
- 0% {
- width: 0;
- opacity: 0.1;
- }
- 20% {
- width: 0;
- opacity: 0.5;
- }
- 100% {
- width: 100%;
- opacity: 0;
- }
-}
-.ant-progress-rtl {
- direction: rtl;
-}
-.ant-progress-rtl.ant-progress-show-info .ant-progress-outer {
- margin-right: 0;
- margin-left: calc(-2em - 8px);
- padding-right: 0;
- padding-left: calc(2em + 8px);
-}
-.ant-progress-rtl .ant-progress-success-bg {
- right: 0;
- left: auto;
-}
-.ant-progress-rtl.ant-progress-line .ant-progress-text,
-.ant-progress-rtl.ant-progress-steps .ant-progress-text {
- margin-right: 8px;
- margin-left: 0;
- text-align: right;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-rate {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- display: inline-block;
- margin: 0;
- padding: 0;
- color: #fadb14;
- font-size: 20px;
- line-height: unset;
- list-style: none;
- outline: none;
-}
-.ant-rate-disabled .ant-rate-star {
- cursor: default;
-}
-.ant-rate-disabled .ant-rate-star:hover {
- -webkit-transform: scale(1);
- transform: scale(1);
-}
-.ant-rate-star {
- position: relative;
- display: inline-block;
- margin: 0;
- padding: 0;
- color: inherit;
- cursor: pointer;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
-}
-.ant-rate-star:not(:last-child) {
- margin-right: 8px;
-}
-.ant-rate-star > div:focus {
- outline: 0;
-}
-.ant-rate-star > div:hover,
-.ant-rate-star > div:focus {
- -webkit-transform: scale(1.1);
- transform: scale(1.1);
-}
-.ant-rate-star-first,
-.ant-rate-star-second {
- color: #f0f0f0;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-.ant-rate-star-first .anticon,
-.ant-rate-star-second .anticon {
- vertical-align: middle;
-}
-.ant-rate-star-first {
- position: absolute;
- top: 0;
- left: 0;
- width: 50%;
- height: 100%;
- overflow: hidden;
- opacity: 0;
-}
-.ant-rate-star-half .ant-rate-star-first,
-.ant-rate-star-half .ant-rate-star-second {
- opacity: 1;
-}
-.ant-rate-star-half .ant-rate-star-first,
-.ant-rate-star-full .ant-rate-star-second {
- color: inherit;
-}
-.ant-rate-text {
- display: inline-block;
- margin: 0 8px;
- font-size: 14px;
-}
-.ant-rate-rtl {
- direction: rtl;
-}
-.ant-rate-rtl .ant-rate-star:not(:last-child) {
- margin-right: 0;
- margin-left: 8px;
-}
-.ant-rate-rtl .ant-rate-star-first {
- right: 0;
- left: auto;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-result {
- padding: 48px 32px;
-}
-.ant-result-success .ant-result-icon > .anticon {
- color: #52c41a;
-}
-.ant-result-error .ant-result-icon > .anticon {
- color: #ff4d4f;
-}
-.ant-result-info .ant-result-icon > .anticon {
- color: #1890ff;
-}
-.ant-result-warning .ant-result-icon > .anticon {
- color: #faad14;
-}
-.ant-result-image {
- width: 250px;
- height: 295px;
- margin: auto;
-}
-.ant-result-icon {
- margin-bottom: 24px;
- text-align: center;
-}
-.ant-result-icon > .anticon {
- font-size: 72px;
-}
-.ant-result-title {
- color: rgba(0, 0, 0, 0.85);
- font-size: 24px;
- line-height: 1.8;
- text-align: center;
-}
-.ant-result-subtitle {
- color: rgba(0, 0, 0, 0.45);
- font-size: 14px;
- line-height: 1.6;
- text-align: center;
-}
-.ant-result-extra {
- margin: 24px 0 0 0;
- text-align: center;
-}
-.ant-result-extra > * {
- margin-right: 8px;
-}
-.ant-result-extra > *:last-child {
- margin-right: 0;
-}
-.ant-result-content {
- margin-top: 24px;
- padding: 24px 40px;
- background-color: #fafafa;
-}
-.ant-result-rtl {
- direction: rtl;
-}
-.ant-result-rtl .ant-result-extra > * {
- margin-right: 0;
- margin-left: 8px;
-}
-.ant-result-rtl .ant-result-extra > *:last-child {
- margin-left: 0;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-skeleton {
- display: table;
- width: 100%;
-}
-.ant-skeleton-header {
- display: table-cell;
- padding-right: 16px;
- vertical-align: top;
-}
-.ant-skeleton-header .ant-skeleton-avatar {
- display: inline-block;
- vertical-align: top;
- background: #f2f2f2;
- width: 32px;
- height: 32px;
- line-height: 32px;
-}
-.ant-skeleton-header .ant-skeleton-avatar.ant-skeleton-avatar-circle {
- border-radius: 50%;
-}
-.ant-skeleton-header .ant-skeleton-avatar-lg {
- width: 40px;
- height: 40px;
- line-height: 40px;
-}
-.ant-skeleton-header .ant-skeleton-avatar-lg.ant-skeleton-avatar-circle {
- border-radius: 50%;
-}
-.ant-skeleton-header .ant-skeleton-avatar-sm {
- width: 24px;
- height: 24px;
- line-height: 24px;
-}
-.ant-skeleton-header .ant-skeleton-avatar-sm.ant-skeleton-avatar-circle {
- border-radius: 50%;
-}
-.ant-skeleton-content {
- display: table-cell;
- width: 100%;
- vertical-align: top;
-}
-.ant-skeleton-content .ant-skeleton-title {
- width: 100%;
- height: 16px;
- margin-top: 16px;
- background: #f2f2f2;
-}
-.ant-skeleton-content .ant-skeleton-title + .ant-skeleton-paragraph {
- margin-top: 24px;
-}
-.ant-skeleton-content .ant-skeleton-paragraph {
- padding: 0;
-}
-.ant-skeleton-content .ant-skeleton-paragraph > li {
- width: 100%;
- height: 16px;
- list-style: none;
- background: #f2f2f2;
-}
-.ant-skeleton-content .ant-skeleton-paragraph > li:last-child:not(:first-child):not(:nth-child(2)) {
- width: 61%;
-}
-.ant-skeleton-content .ant-skeleton-paragraph > li + li {
- margin-top: 16px;
-}
-.ant-skeleton-with-avatar .ant-skeleton-content .ant-skeleton-title {
- margin-top: 12px;
-}
-.ant-skeleton-with-avatar .ant-skeleton-content .ant-skeleton-title + .ant-skeleton-paragraph {
- margin-top: 28px;
-}
-.ant-skeleton-round .ant-skeleton-content .ant-skeleton-title,
-.ant-skeleton-round .ant-skeleton-content .ant-skeleton-paragraph > li {
- border-radius: 100px;
-}
-.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-title,
-.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-paragraph > li {
- background: -webkit-gradient(linear, left top, right top, color-stop(25%, #f2f2f2), color-stop(37%, #e6e6e6), color-stop(63%, #f2f2f2));
- background: linear-gradient(90deg, #f2f2f2 25%, #e6e6e6 37%, #f2f2f2 63%);
- background-size: 400% 100%;
- -webkit-animation: ant-skeleton-loading 1.4s ease infinite;
- animation: ant-skeleton-loading 1.4s ease infinite;
-}
-.ant-skeleton.ant-skeleton-active .ant-skeleton-avatar {
- background: -webkit-gradient(linear, left top, right top, color-stop(25%, #f2f2f2), color-stop(37%, #e6e6e6), color-stop(63%, #f2f2f2));
- background: linear-gradient(90deg, #f2f2f2 25%, #e6e6e6 37%, #f2f2f2 63%);
- background-size: 400% 100%;
- -webkit-animation: ant-skeleton-loading 1.4s ease infinite;
- animation: ant-skeleton-loading 1.4s ease infinite;
-}
-.ant-skeleton.ant-skeleton-active .ant-skeleton-button {
- background: -webkit-gradient(linear, left top, right top, color-stop(25%, #f2f2f2), color-stop(37%, #e6e6e6), color-stop(63%, #f2f2f2));
- background: linear-gradient(90deg, #f2f2f2 25%, #e6e6e6 37%, #f2f2f2 63%);
- background-size: 400% 100%;
- -webkit-animation: ant-skeleton-loading 1.4s ease infinite;
- animation: ant-skeleton-loading 1.4s ease infinite;
-}
-.ant-skeleton.ant-skeleton-active .ant-skeleton-input {
- background: -webkit-gradient(linear, left top, right top, color-stop(25%, #f2f2f2), color-stop(37%, #e6e6e6), color-stop(63%, #f2f2f2));
- background: linear-gradient(90deg, #f2f2f2 25%, #e6e6e6 37%, #f2f2f2 63%);
- background-size: 400% 100%;
- -webkit-animation: ant-skeleton-loading 1.4s ease infinite;
- animation: ant-skeleton-loading 1.4s ease infinite;
-}
-.ant-skeleton.ant-skeleton-active .ant-skeleton-image {
- background: -webkit-gradient(linear, left top, right top, color-stop(25%, #f2f2f2), color-stop(37%, #e6e6e6), color-stop(63%, #f2f2f2));
- background: linear-gradient(90deg, #f2f2f2 25%, #e6e6e6 37%, #f2f2f2 63%);
- background-size: 400% 100%;
- -webkit-animation: ant-skeleton-loading 1.4s ease infinite;
- animation: ant-skeleton-loading 1.4s ease infinite;
-}
-.ant-skeleton-element {
- display: inline-block;
- width: auto;
-}
-.ant-skeleton-element .ant-skeleton-button {
- display: inline-block;
- vertical-align: top;
- background: #f2f2f2;
- border-radius: 2px;
- width: 64px;
- height: 32px;
- line-height: 32px;
-}
-.ant-skeleton-element .ant-skeleton-button.ant-skeleton-button-circle {
- width: 32px;
- border-radius: 50%;
-}
-.ant-skeleton-element .ant-skeleton-button.ant-skeleton-button-round {
- border-radius: 32px;
-}
-.ant-skeleton-element .ant-skeleton-button-lg {
- width: 80px;
- height: 40px;
- line-height: 40px;
-}
-.ant-skeleton-element .ant-skeleton-button-lg.ant-skeleton-button-circle {
- width: 40px;
- border-radius: 50%;
-}
-.ant-skeleton-element .ant-skeleton-button-lg.ant-skeleton-button-round {
- border-radius: 40px;
-}
-.ant-skeleton-element .ant-skeleton-button-sm {
- width: 48px;
- height: 24px;
- line-height: 24px;
-}
-.ant-skeleton-element .ant-skeleton-button-sm.ant-skeleton-button-circle {
- width: 24px;
- border-radius: 50%;
-}
-.ant-skeleton-element .ant-skeleton-button-sm.ant-skeleton-button-round {
- border-radius: 24px;
-}
-.ant-skeleton-element .ant-skeleton-avatar {
- display: inline-block;
- vertical-align: top;
- background: #f2f2f2;
- width: 32px;
- height: 32px;
- line-height: 32px;
-}
-.ant-skeleton-element .ant-skeleton-avatar.ant-skeleton-avatar-circle {
- border-radius: 50%;
-}
-.ant-skeleton-element .ant-skeleton-avatar-lg {
- width: 40px;
- height: 40px;
- line-height: 40px;
-}
-.ant-skeleton-element .ant-skeleton-avatar-lg.ant-skeleton-avatar-circle {
- border-radius: 50%;
-}
-.ant-skeleton-element .ant-skeleton-avatar-sm {
- width: 24px;
- height: 24px;
- line-height: 24px;
-}
-.ant-skeleton-element .ant-skeleton-avatar-sm.ant-skeleton-avatar-circle {
- border-radius: 50%;
-}
-.ant-skeleton-element .ant-skeleton-input {
- display: inline-block;
- vertical-align: top;
- background: #f2f2f2;
- width: 100%;
- height: 32px;
- line-height: 32px;
-}
-.ant-skeleton-element .ant-skeleton-input-lg {
- width: 100%;
- height: 40px;
- line-height: 40px;
-}
-.ant-skeleton-element .ant-skeleton-input-sm {
- width: 100%;
- height: 24px;
- line-height: 24px;
-}
-.ant-skeleton-element .ant-skeleton-image {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- -webkit-box-pack: center;
- -ms-flex-pack: center;
- justify-content: center;
- vertical-align: top;
- background: #f2f2f2;
- width: 96px;
- height: 96px;
- line-height: 96px;
-}
-.ant-skeleton-element .ant-skeleton-image.ant-skeleton-image-circle {
- border-radius: 50%;
-}
-.ant-skeleton-element .ant-skeleton-image-path {
- fill: #bfbfbf;
-}
-.ant-skeleton-element .ant-skeleton-image-svg {
- width: 48px;
- height: 48px;
- line-height: 48px;
- max-width: 192px;
- max-height: 192px;
-}
-.ant-skeleton-element .ant-skeleton-image-svg.ant-skeleton-image-circle {
- border-radius: 50%;
-}
-@-webkit-keyframes ant-skeleton-loading {
- 0% {
- background-position: 100% 50%;
- }
- 100% {
- background-position: 0 50%;
- }
-}
-@keyframes ant-skeleton-loading {
- 0% {
- background-position: 100% 50%;
- }
- 100% {
- background-position: 0 50%;
- }
-}
-.ant-skeleton-rtl {
- direction: rtl;
-}
-.ant-skeleton-rtl .ant-skeleton-header {
- padding-right: 0;
- padding-left: 16px;
-}
-.ant-skeleton-rtl.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-title,
-.ant-skeleton-rtl.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-paragraph > li {
- -webkit-animation-name: ant-skeleton-loading-rtl;
- animation-name: ant-skeleton-loading-rtl;
-}
-.ant-skeleton-rtl.ant-skeleton.ant-skeleton-active .ant-skeleton-avatar {
- -webkit-animation-name: ant-skeleton-loading-rtl;
- animation-name: ant-skeleton-loading-rtl;
-}
-@-webkit-keyframes ant-skeleton-loading-rtl {
- 0% {
- background-position: 0% 50%;
- }
- 100% {
- background-position: 100% 50%;
- }
-}
-@keyframes ant-skeleton-loading-rtl {
- 0% {
- background-position: 0% 50%;
- }
- 100% {
- background-position: 100% 50%;
- }
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-slider {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- position: relative;
- height: 12px;
- margin: 10px 6px 10px;
- padding: 4px 0;
- cursor: pointer;
- -ms-touch-action: none;
- touch-action: none;
-}
-.ant-slider-vertical {
- width: 12px;
- height: 100%;
- margin: 6px 10px;
- padding: 0 4px;
-}
-.ant-slider-vertical .ant-slider-rail {
- width: 4px;
- height: 100%;
-}
-.ant-slider-vertical .ant-slider-track {
- width: 4px;
-}
-.ant-slider-vertical .ant-slider-handle {
- margin-top: -6px;
- margin-left: -5px;
-}
-.ant-slider-vertical .ant-slider-mark {
- top: 0;
- left: 12px;
- width: 18px;
- height: 100%;
-}
-.ant-slider-vertical .ant-slider-mark-text {
- left: 4px;
- white-space: nowrap;
-}
-.ant-slider-vertical .ant-slider-step {
- width: 4px;
- height: 100%;
-}
-.ant-slider-vertical .ant-slider-dot {
- top: auto;
- left: 2px;
- margin-bottom: -4px;
-}
-.ant-slider-tooltip .ant-tooltip-inner {
- min-width: unset;
-}
-.ant-slider-rtl.ant-slider-vertical .ant-slider-handle {
- margin-right: -5px;
- margin-left: 0;
-}
-.ant-slider-rtl.ant-slider-vertical .ant-slider-mark {
- right: 12px;
- left: auto;
-}
-.ant-slider-rtl.ant-slider-vertical .ant-slider-mark-text {
- right: 4px;
- left: auto;
-}
-.ant-slider-rtl.ant-slider-vertical .ant-slider-dot {
- right: 2px;
- left: auto;
-}
-.ant-slider-with-marks {
- margin-bottom: 28px;
-}
-.ant-slider-rail {
- position: absolute;
- width: 100%;
- height: 4px;
- background-color: #f5f5f5;
- border-radius: 2px;
- -webkit-transition: background-color 0.3s;
- transition: background-color 0.3s;
-}
-.ant-slider-track {
- position: absolute;
- height: 4px;
- background-color: #91d5ff;
- border-radius: 2px;
- -webkit-transition: background-color 0.3s;
- transition: background-color 0.3s;
-}
-.ant-slider-handle {
- position: absolute;
- width: 14px;
- height: 14px;
- margin-top: -5px;
- background-color: #fff;
- border: solid 2px #91d5ff;
- border-radius: 50%;
- -webkit-box-shadow: 0;
- box-shadow: 0;
- cursor: pointer;
- -webkit-transition: border-color 0.3s, -webkit-box-shadow 0.6s, -webkit-transform 0.3s cubic-bezier(0.18, 0.89, 0.32, 1.28);
- transition: border-color 0.3s, -webkit-box-shadow 0.6s, -webkit-transform 0.3s cubic-bezier(0.18, 0.89, 0.32, 1.28);
- transition: border-color 0.3s, box-shadow 0.6s, transform 0.3s cubic-bezier(0.18, 0.89, 0.32, 1.28);
- transition: border-color 0.3s, box-shadow 0.6s, transform 0.3s cubic-bezier(0.18, 0.89, 0.32, 1.28), -webkit-box-shadow 0.6s, -webkit-transform 0.3s cubic-bezier(0.18, 0.89, 0.32, 1.28);
-}
-.ant-slider-handle-dragging.ant-slider-handle-dragging.ant-slider-handle-dragging {
- border-color: #46a6ff;
- -webkit-box-shadow: 0 0 0 5px rgba(24, 144, 255, 0.12);
- box-shadow: 0 0 0 5px rgba(24, 144, 255, 0.12);
-}
-.ant-slider-handle:focus {
- border-color: #46a6ff;
- outline: none;
- -webkit-box-shadow: 0 0 0 5px rgba(24, 144, 255, 0.12);
- box-shadow: 0 0 0 5px rgba(24, 144, 255, 0.12);
-}
-.ant-slider-handle.ant-tooltip-open {
- border-color: #1890ff;
-}
-.ant-slider:hover .ant-slider-rail {
- background-color: #e1e1e1;
-}
-.ant-slider:hover .ant-slider-track {
- background-color: #69c0ff;
-}
-.ant-slider:hover .ant-slider-handle:not(.ant-tooltip-open) {
- border-color: #69c0ff;
-}
-.ant-slider-mark {
- position: absolute;
- top: 14px;
- left: 0;
- width: 100%;
- font-size: 14px;
-}
-.ant-slider-mark-text {
- position: absolute;
- display: inline-block;
- color: rgba(0, 0, 0, 0.45);
- text-align: center;
- word-break: keep-all;
- cursor: pointer;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-.ant-slider-mark-text-active {
- color: rgba(0, 0, 0, 0.65);
-}
-.ant-slider-step {
- position: absolute;
- width: 100%;
- height: 4px;
- background: transparent;
-}
-.ant-slider-dot {
- position: absolute;
- top: -2px;
- width: 8px;
- height: 8px;
- margin-left: -4px;
- background-color: #fff;
- border: 2px solid #f0f0f0;
- border-radius: 50%;
- cursor: pointer;
-}
-.ant-slider-dot:first-child {
- margin-left: -4px;
-}
-.ant-slider-dot:last-child {
- margin-left: -4px;
-}
-.ant-slider-dot-active {
- border-color: #8cc8ff;
-}
-.ant-slider-disabled {
- cursor: not-allowed;
-}
-.ant-slider-disabled .ant-slider-track {
- background-color: rgba(0, 0, 0, 0.25) !important;
-}
-.ant-slider-disabled .ant-slider-handle,
-.ant-slider-disabled .ant-slider-dot {
- background-color: #fff;
- border-color: rgba(0, 0, 0, 0.25) !important;
- -webkit-box-shadow: none;
- box-shadow: none;
- cursor: not-allowed;
-}
-.ant-slider-disabled .ant-slider-mark-text,
-.ant-slider-disabled .ant-slider-dot {
- cursor: not-allowed !important;
-}
-.ant-slider-rtl {
- direction: rtl;
-}
-.ant-slider-rtl .ant-slider-mark {
- right: 0;
- left: auto;
-}
-.ant-slider-rtl .ant-slider-dot {
- margin-right: -4px;
- margin-left: 0;
-}
-.ant-slider-rtl .ant-slider-dot:first-child {
- margin-right: -4px;
- margin-left: 0;
-}
-.ant-slider-rtl .ant-slider-dot:last-child {
- margin-right: -4px;
- margin-left: 0;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-space {
- display: -webkit-inline-box;
- display: -ms-inline-flexbox;
- display: inline-flex;
-}
-.ant-space-vertical {
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
-}
-.ant-space-align-center {
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
-}
-.ant-space-align-start {
- -webkit-box-align: start;
- -ms-flex-align: start;
- align-items: flex-start;
-}
-.ant-space-align-end {
- -webkit-box-align: end;
- -ms-flex-align: end;
- align-items: flex-end;
-}
-.ant-space-align-baseline {
- -webkit-box-align: baseline;
- -ms-flex-align: baseline;
- align-items: baseline;
-}
-.ant-space-rtl {
- direction: rtl;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-statistic {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
-}
-.ant-statistic-title {
- margin-bottom: 4px;
- color: rgba(0, 0, 0, 0.45);
- font-size: 14px;
-}
-.ant-statistic-content {
- color: rgba(0, 0, 0, 0.85);
- font-size: 24px;
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
-}
-.ant-statistic-content-value {
- display: inline-block;
- direction: ltr;
-}
-.ant-statistic-content-value-decimal {
- font-size: 16px;
-}
-.ant-statistic-content-prefix,
-.ant-statistic-content-suffix {
- display: inline-block;
-}
-.ant-statistic-content-prefix {
- margin-right: 4px;
-}
-.ant-statistic-content-suffix {
- margin-left: 4px;
- font-size: 16px;
-}
-.ant-statistic-rtl {
- direction: rtl;
-}
-.ant-statistic-rtl .ant-statistic-content-prefix {
- margin-right: 0;
- margin-left: 4px;
-}
-.ant-statistic-rtl .ant-statistic-content-suffix {
- margin-right: 4px;
- margin-left: 0;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-steps {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- width: 100%;
- font-size: 0;
- text-align: initial;
-}
-.ant-steps-item {
- position: relative;
- display: inline-block;
- -webkit-box-flex: 1;
- -ms-flex: 1;
- flex: 1;
- overflow: hidden;
- vertical-align: top;
-}
-.ant-steps-item-container {
- outline: none;
-}
-.ant-steps-item:last-child {
- -webkit-box-flex: 0;
- -ms-flex: none;
- flex: none;
-}
-.ant-steps-item:last-child > .ant-steps-item-container > .ant-steps-item-tail,
-.ant-steps-item:last-child > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-title::after {
- display: none;
-}
-.ant-steps-item-icon,
-.ant-steps-item-content {
- display: inline-block;
- vertical-align: top;
-}
-.ant-steps-item-icon {
- width: 32px;
- height: 32px;
- margin: 0 8px 0 0;
- font-size: 16px;
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
- line-height: 32px;
- text-align: center;
- border: 1px solid rgba(0, 0, 0, 0.25);
- border-radius: 32px;
- -webkit-transition: background-color 0.3s, border-color 0.3s;
- transition: background-color 0.3s, border-color 0.3s;
-}
-.ant-steps-item-icon > .ant-steps-icon {
- position: relative;
- top: -1px;
- color: #1890ff;
- line-height: 1;
-}
-.ant-steps-item-tail {
- position: absolute;
- top: 12px;
- left: 0;
- width: 100%;
- padding: 0 10px;
-}
-.ant-steps-item-tail::after {
- display: inline-block;
- width: 100%;
- height: 1px;
- background: #f0f0f0;
- border-radius: 1px;
- -webkit-transition: background 0.3s;
- transition: background 0.3s;
- content: '';
-}
-.ant-steps-item-title {
- position: relative;
- display: inline-block;
- padding-right: 16px;
- color: rgba(0, 0, 0, 0.65);
- font-size: 16px;
- line-height: 32px;
-}
-.ant-steps-item-title::after {
- position: absolute;
- top: 16px;
- left: 100%;
- display: block;
- width: 9999px;
- height: 1px;
- background: #f0f0f0;
- content: '';
-}
-.ant-steps-item-subtitle {
- display: inline;
- margin-left: 8px;
- color: rgba(0, 0, 0, 0.45);
- font-weight: normal;
- font-size: 14px;
-}
-.ant-steps-item-description {
- color: rgba(0, 0, 0, 0.45);
- font-size: 14px;
-}
-.ant-steps-item-wait .ant-steps-item-icon {
- background-color: #fff;
- border-color: rgba(0, 0, 0, 0.25);
-}
-.ant-steps-item-wait .ant-steps-item-icon > .ant-steps-icon {
- color: rgba(0, 0, 0, 0.25);
-}
-.ant-steps-item-wait .ant-steps-item-icon > .ant-steps-icon .ant-steps-icon-dot {
- background: rgba(0, 0, 0, 0.25);
-}
-.ant-steps-item-wait > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-title {
- color: rgba(0, 0, 0, 0.45);
-}
-.ant-steps-item-wait > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-title::after {
- background-color: #f0f0f0;
-}
-.ant-steps-item-wait > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-description {
- color: rgba(0, 0, 0, 0.45);
-}
-.ant-steps-item-wait > .ant-steps-item-container > .ant-steps-item-tail::after {
- background-color: #f0f0f0;
-}
-.ant-steps-item-process .ant-steps-item-icon {
- background-color: #fff;
- border-color: #1890ff;
-}
-.ant-steps-item-process .ant-steps-item-icon > .ant-steps-icon {
- color: #1890ff;
-}
-.ant-steps-item-process .ant-steps-item-icon > .ant-steps-icon .ant-steps-icon-dot {
- background: #1890ff;
-}
-.ant-steps-item-process > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-title {
- color: rgba(0, 0, 0, 0.85);
-}
-.ant-steps-item-process > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-title::after {
- background-color: #f0f0f0;
-}
-.ant-steps-item-process > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-description {
- color: rgba(0, 0, 0, 0.65);
-}
-.ant-steps-item-process > .ant-steps-item-container > .ant-steps-item-tail::after {
- background-color: #f0f0f0;
-}
-.ant-steps-item-process .ant-steps-item-icon {
- background: #1890ff;
-}
-.ant-steps-item-process .ant-steps-item-icon > .ant-steps-icon {
- color: #fff;
-}
-.ant-steps-item-process .ant-steps-item-title {
- font-weight: 500;
-}
-.ant-steps-item-finish .ant-steps-item-icon {
- background-color: #fff;
- border-color: #1890ff;
-}
-.ant-steps-item-finish .ant-steps-item-icon > .ant-steps-icon {
- color: #1890ff;
-}
-.ant-steps-item-finish .ant-steps-item-icon > .ant-steps-icon .ant-steps-icon-dot {
- background: #1890ff;
-}
-.ant-steps-item-finish > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-title {
- color: rgba(0, 0, 0, 0.65);
-}
-.ant-steps-item-finish > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-title::after {
- background-color: #1890ff;
-}
-.ant-steps-item-finish > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-description {
- color: rgba(0, 0, 0, 0.45);
-}
-.ant-steps-item-finish > .ant-steps-item-container > .ant-steps-item-tail::after {
- background-color: #1890ff;
-}
-.ant-steps-item-error .ant-steps-item-icon {
- background-color: #fff;
- border-color: #ff4d4f;
-}
-.ant-steps-item-error .ant-steps-item-icon > .ant-steps-icon {
- color: #ff4d4f;
-}
-.ant-steps-item-error .ant-steps-item-icon > .ant-steps-icon .ant-steps-icon-dot {
- background: #ff4d4f;
-}
-.ant-steps-item-error > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-title {
- color: #ff4d4f;
-}
-.ant-steps-item-error > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-title::after {
- background-color: #f0f0f0;
-}
-.ant-steps-item-error > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-description {
- color: #ff4d4f;
-}
-.ant-steps-item-error > .ant-steps-item-container > .ant-steps-item-tail::after {
- background-color: #f0f0f0;
-}
-.ant-steps-item.ant-steps-next-error .ant-steps-item-title::after {
- background: #ff4d4f;
-}
-.ant-steps-item-disabled {
- cursor: not-allowed;
-}
-.ant-steps .ant-steps-item:not(.ant-steps-item-active) > .ant-steps-item-container[role='button'] {
- cursor: pointer;
-}
-.ant-steps .ant-steps-item:not(.ant-steps-item-active) > .ant-steps-item-container[role='button'] .ant-steps-item-title,
-.ant-steps .ant-steps-item:not(.ant-steps-item-active) > .ant-steps-item-container[role='button'] .ant-steps-item-subtitle,
-.ant-steps .ant-steps-item:not(.ant-steps-item-active) > .ant-steps-item-container[role='button'] .ant-steps-item-description,
-.ant-steps .ant-steps-item:not(.ant-steps-item-active) > .ant-steps-item-container[role='button'] .ant-steps-item-icon .ant-steps-icon {
- -webkit-transition: color 0.3s;
- transition: color 0.3s;
-}
-.ant-steps .ant-steps-item:not(.ant-steps-item-active) > .ant-steps-item-container[role='button']:hover .ant-steps-item-title,
-.ant-steps .ant-steps-item:not(.ant-steps-item-active) > .ant-steps-item-container[role='button']:hover .ant-steps-item-subtitle,
-.ant-steps .ant-steps-item:not(.ant-steps-item-active) > .ant-steps-item-container[role='button']:hover .ant-steps-item-description {
- color: #1890ff;
-}
-.ant-steps .ant-steps-item:not(.ant-steps-item-active):not(.ant-steps-item-process) > .ant-steps-item-container[role='button']:hover .ant-steps-item-icon {
- border-color: #1890ff;
-}
-.ant-steps .ant-steps-item:not(.ant-steps-item-active):not(.ant-steps-item-process) > .ant-steps-item-container[role='button']:hover .ant-steps-item-icon .ant-steps-icon {
- color: #1890ff;
-}
-.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item {
- margin-right: 16px;
- white-space: nowrap;
-}
-.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:last-child {
- margin-right: 0;
-}
-.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:last-child .ant-steps-item-title {
- padding-right: 0;
-}
-.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item-tail {
- display: none;
-}
-.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item-description {
- max-width: 140px;
- white-space: normal;
-}
-.ant-steps-item-custom .ant-steps-item-icon {
- height: auto;
- background: none;
- border: 0;
-}
-.ant-steps-item-custom .ant-steps-item-icon > .ant-steps-icon {
- top: 0px;
- left: 0.5px;
- width: 32px;
- height: 32px;
- font-size: 24px;
- line-height: 32px;
-}
-.ant-steps-item-custom.ant-steps-item-process .ant-steps-item-icon > .ant-steps-icon {
- color: #1890ff;
-}
-.ant-steps:not(.ant-steps-vertical) .ant-steps-item-custom .ant-steps-item-icon {
- width: auto;
- background: none;
-}
-.ant-steps-small.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item {
- margin-right: 12px;
-}
-.ant-steps-small.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:last-child {
- margin-right: 0;
-}
-.ant-steps-small .ant-steps-item-icon {
- width: 24px;
- height: 24px;
- margin: 0 8px 0 0;
- font-size: 12px;
- line-height: 24px;
- text-align: center;
- border-radius: 24px;
-}
-.ant-steps-small .ant-steps-item-title {
- padding-right: 12px;
- font-size: 14px;
- line-height: 24px;
-}
-.ant-steps-small .ant-steps-item-title::after {
- top: 12px;
-}
-.ant-steps-small .ant-steps-item-description {
- color: rgba(0, 0, 0, 0.45);
- font-size: 14px;
-}
-.ant-steps-small .ant-steps-item-tail {
- top: 8px;
-}
-.ant-steps-small .ant-steps-item-custom .ant-steps-item-icon {
- width: inherit;
- height: inherit;
- line-height: inherit;
- background: none;
- border: 0;
- border-radius: 0;
-}
-.ant-steps-small .ant-steps-item-custom .ant-steps-item-icon > .ant-steps-icon {
- font-size: 24px;
- line-height: 24px;
- -webkit-transform: none;
- transform: none;
-}
-.ant-steps-vertical {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
-}
-.ant-steps-vertical .ant-steps-item {
- display: block;
- -webkit-box-flex: 1;
- -ms-flex: 1 0 auto;
- flex: 1 0 auto;
- overflow: visible;
-}
-.ant-steps-vertical .ant-steps-item-icon {
- float: left;
- margin-right: 16px;
-}
-.ant-steps-vertical .ant-steps-item-content {
- display: block;
- min-height: 48px;
- overflow: hidden;
-}
-.ant-steps-vertical .ant-steps-item-title {
- line-height: 32px;
-}
-.ant-steps-vertical .ant-steps-item-description {
- padding-bottom: 12px;
-}
-.ant-steps-vertical > .ant-steps-item > .ant-steps-item-container > .ant-steps-item-tail {
- position: absolute;
- top: 0;
- left: 16px;
- width: 1px;
- height: 100%;
- padding: 38px 0 6px;
-}
-.ant-steps-vertical > .ant-steps-item > .ant-steps-item-container > .ant-steps-item-tail::after {
- width: 1px;
- height: 100%;
-}
-.ant-steps-vertical > .ant-steps-item:not(:last-child) > .ant-steps-item-container > .ant-steps-item-tail {
- display: block;
-}
-.ant-steps-vertical > .ant-steps-item > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-title::after {
- display: none;
-}
-.ant-steps-vertical.ant-steps-small .ant-steps-item-container .ant-steps-item-tail {
- position: absolute;
- top: 0;
- left: 12px;
- padding: 30px 0 6px;
-}
-.ant-steps-vertical.ant-steps-small .ant-steps-item-container .ant-steps-item-title {
- line-height: 24px;
-}
-.ant-steps-rtl.ant-steps-vertical .ant-steps-item-icon {
- float: right;
- margin-right: 0;
- margin-left: 16px;
-}
-.ant-steps-rtl.ant-steps-vertical > .ant-steps-item > .ant-steps-item-container > .ant-steps-item-tail {
- right: 16px;
- left: auto;
-}
-.ant-steps-rtl.ant-steps-vertical.ant-steps-small .ant-steps-item-container .ant-steps-item-tail {
- right: 12px;
- left: auto;
-}
-@media (max-width: 480px) {
- .ant-steps-horizontal.ant-steps-label-horizontal {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
- }
- .ant-steps-horizontal.ant-steps-label-horizontal .ant-steps-item {
- display: block;
- -webkit-box-flex: 1;
- -ms-flex: 1 0 auto;
- flex: 1 0 auto;
- overflow: visible;
- }
- .ant-steps-horizontal.ant-steps-label-horizontal .ant-steps-item-icon {
- float: left;
- margin-right: 16px;
- }
- .ant-steps-horizontal.ant-steps-label-horizontal .ant-steps-item-content {
- display: block;
- min-height: 48px;
- overflow: hidden;
- }
- .ant-steps-horizontal.ant-steps-label-horizontal .ant-steps-item-title {
- line-height: 32px;
- }
- .ant-steps-horizontal.ant-steps-label-horizontal .ant-steps-item-description {
- padding-bottom: 12px;
- }
- .ant-steps-horizontal.ant-steps-label-horizontal > .ant-steps-item > .ant-steps-item-container > .ant-steps-item-tail {
- position: absolute;
- top: 0;
- left: 16px;
- width: 1px;
- height: 100%;
- padding: 38px 0 6px;
- }
- .ant-steps-horizontal.ant-steps-label-horizontal > .ant-steps-item > .ant-steps-item-container > .ant-steps-item-tail::after {
- width: 1px;
- height: 100%;
- }
- .ant-steps-horizontal.ant-steps-label-horizontal > .ant-steps-item:not(:last-child) > .ant-steps-item-container > .ant-steps-item-tail {
- display: block;
- }
- .ant-steps-horizontal.ant-steps-label-horizontal > .ant-steps-item > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-title::after {
- display: none;
- }
- .ant-steps-horizontal.ant-steps-label-horizontal.ant-steps-small .ant-steps-item-container .ant-steps-item-tail {
- position: absolute;
- top: 0;
- left: 12px;
- padding: 30px 0 6px;
- }
- .ant-steps-horizontal.ant-steps-label-horizontal.ant-steps-small .ant-steps-item-container .ant-steps-item-title {
- line-height: 24px;
- }
- .ant-steps-rtl.ant-steps-horizontal.ant-steps-label-horizontal .ant-steps-item-icon {
- float: right;
- margin-right: 0;
- margin-left: 16px;
- }
- .ant-steps-rtl.ant-steps-horizontal.ant-steps-label-horizontal > .ant-steps-item > .ant-steps-item-container > .ant-steps-item-tail {
- right: 16px;
- left: auto;
- }
- .ant-steps-rtl.ant-steps-horizontal.ant-steps-label-horizontal.ant-steps-small .ant-steps-item-container .ant-steps-item-tail {
- right: 12px;
- left: auto;
- }
-}
-.ant-steps-label-vertical .ant-steps-item {
- overflow: visible;
-}
-.ant-steps-label-vertical .ant-steps-item-tail {
- margin-left: 58px;
- padding: 3.5px 24px;
-}
-.ant-steps-label-vertical .ant-steps-item-content {
- display: block;
- width: 116px;
- margin-top: 8px;
- text-align: center;
-}
-.ant-steps-label-vertical .ant-steps-item-icon {
- display: inline-block;
- margin-left: 42px;
-}
-.ant-steps-label-vertical .ant-steps-item-title {
- padding-right: 0;
- padding-left: 0;
-}
-.ant-steps-label-vertical .ant-steps-item-title::after {
- display: none;
-}
-.ant-steps-label-vertical .ant-steps-item-subtitle {
- display: block;
- margin-bottom: 4px;
- margin-left: 0;
- line-height: 1.5715;
-}
-.ant-steps-label-vertical.ant-steps-small:not(.ant-steps-dot) .ant-steps-item-icon {
- margin-left: 46px;
-}
-.ant-steps-dot .ant-steps-item-title,
-.ant-steps-dot.ant-steps-small .ant-steps-item-title {
- line-height: 1.5715;
-}
-.ant-steps-dot .ant-steps-item-tail,
-.ant-steps-dot.ant-steps-small .ant-steps-item-tail {
- top: 2px;
- width: 100%;
- margin: 0 0 0 70px;
- padding: 0;
-}
-.ant-steps-dot .ant-steps-item-tail::after,
-.ant-steps-dot.ant-steps-small .ant-steps-item-tail::after {
- width: calc(100% - 20px);
- height: 3px;
- margin-left: 12px;
-}
-.ant-steps-dot .ant-steps-item:first-child .ant-steps-icon-dot,
-.ant-steps-dot.ant-steps-small .ant-steps-item:first-child .ant-steps-icon-dot {
- left: 2px;
-}
-.ant-steps-dot .ant-steps-item-icon,
-.ant-steps-dot.ant-steps-small .ant-steps-item-icon {
- width: 8px;
- height: 8px;
- margin-left: 67px;
- padding-right: 0;
- line-height: 8px;
- background: transparent;
- border: 0;
-}
-.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot,
-.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot {
- position: relative;
- float: left;
- width: 100%;
- height: 100%;
- border-radius: 100px;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
- /* expand hover area */
-}
-.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot::after,
-.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot::after {
- position: absolute;
- top: -12px;
- left: -26px;
- width: 60px;
- height: 32px;
- background: rgba(0, 0, 0, 0.001);
- content: '';
-}
-.ant-steps-dot .ant-steps-item-process .ant-steps-item-icon,
-.ant-steps-dot.ant-steps-small .ant-steps-item-process .ant-steps-item-icon {
- position: relative;
- top: -1px;
- width: 10px;
- height: 10px;
- line-height: 10px;
-}
-.ant-steps-vertical.ant-steps-dot .ant-steps-item-icon {
- margin-top: 8px;
- margin-left: 0;
- background: none;
-}
-.ant-steps-vertical.ant-steps-dot .ant-steps-item > .ant-steps-item-container > .ant-steps-item-tail {
- top: 2px;
- left: -9px;
- margin: 0;
- padding: 22px 0 4px;
-}
-.ant-steps-vertical.ant-steps-dot .ant-steps-item:first-child .ant-steps-icon-dot {
- left: 0;
-}
-.ant-steps-vertical.ant-steps-dot .ant-steps-item-process .ant-steps-icon-dot {
- left: -2px;
-}
-.ant-steps-navigation {
- padding-top: 12px;
-}
-.ant-steps-navigation.ant-steps-small .ant-steps-item-container {
- margin-left: -12px;
-}
-.ant-steps-navigation .ant-steps-item {
- overflow: visible;
- text-align: center;
-}
-.ant-steps-navigation .ant-steps-item-container {
- display: inline-block;
- height: 100%;
- margin-left: -16px;
- padding-bottom: 12px;
- text-align: left;
- -webkit-transition: opacity 0.3s;
- transition: opacity 0.3s;
-}
-.ant-steps-navigation .ant-steps-item-container .ant-steps-item-content {
- max-width: auto;
-}
-.ant-steps-navigation .ant-steps-item-container .ant-steps-item-title {
- max-width: 100%;
- padding-right: 0;
- overflow: hidden;
- white-space: nowrap;
- text-overflow: ellipsis;
-}
-.ant-steps-navigation .ant-steps-item-container .ant-steps-item-title::after {
- display: none;
-}
-.ant-steps-navigation .ant-steps-item:not(.ant-steps-item-active) .ant-steps-item-container[role='button'] {
- cursor: pointer;
-}
-.ant-steps-navigation .ant-steps-item:not(.ant-steps-item-active) .ant-steps-item-container[role='button']:hover {
- opacity: 0.85;
-}
-.ant-steps-navigation .ant-steps-item:last-child {
- -webkit-box-flex: 1;
- -ms-flex: 1;
- flex: 1;
-}
-.ant-steps-navigation .ant-steps-item:last-child::after {
- display: none;
-}
-.ant-steps-navigation .ant-steps-item::after {
- position: absolute;
- top: 50%;
- left: 100%;
- display: inline-block;
- width: 12px;
- height: 12px;
- margin-top: -14px;
- margin-left: -2px;
- border: 1px solid rgba(0, 0, 0, 0.25);
- border-bottom: none;
- border-left: none;
- -webkit-transform: rotate(45deg);
- transform: rotate(45deg);
- content: '';
-}
-.ant-steps-navigation .ant-steps-item::before {
- position: absolute;
- bottom: 0;
- left: 50%;
- display: inline-block;
- width: 0;
- height: 2px;
- background-color: #1890ff;
- -webkit-transition: width 0.3s, left 0.3s;
- transition: width 0.3s, left 0.3s;
- -webkit-transition-timing-function: ease-out;
- transition-timing-function: ease-out;
- content: '';
-}
-.ant-steps-navigation .ant-steps-item.ant-steps-item-active::before {
- left: 0;
- width: 100%;
-}
-@media (max-width: 480px) {
- .ant-steps-navigation > .ant-steps-item {
- margin-right: 0 !important;
- }
- .ant-steps-navigation > .ant-steps-item::before {
- display: none;
- }
- .ant-steps-navigation > .ant-steps-item.ant-steps-item-active::before {
- top: 0;
- right: 0;
- left: unset;
- display: block;
- width: 3px;
- height: calc(100% - 24px);
- }
- .ant-steps-navigation > .ant-steps-item::after {
- position: relative;
- top: -2px;
- left: 50%;
- display: block;
- width: 8px;
- height: 8px;
- margin-bottom: 8px;
- text-align: center;
- -webkit-transform: rotate(135deg);
- transform: rotate(135deg);
- }
- .ant-steps-navigation > .ant-steps-item > .ant-steps-item-container > .ant-steps-item-tail {
- visibility: hidden;
- }
-}
-.ant-steps-rtl {
- direction: rtl;
-}
-.ant-steps.ant-steps-rtl .ant-steps-item-icon {
- margin-right: 0;
- margin-left: 8px;
-}
-.ant-steps-rtl .ant-steps-item-tail {
- right: 0;
- left: auto;
-}
-.ant-steps-rtl .ant-steps-item-title {
- padding-right: 0;
- padding-left: 16px;
-}
-.ant-steps-rtl .ant-steps-item-title::after {
- right: 100%;
- left: auto;
-}
-.ant-steps-rtl.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item {
- margin-right: 0;
- margin-left: 16px;
-}
-.ant-steps-rtl.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:last-child {
- margin-left: 0;
-}
-.ant-steps-rtl.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:last-child .ant-steps-item-title {
- padding-left: 0;
-}
-.ant-steps-rtl .ant-steps-item-custom .ant-steps-item-icon > .ant-steps-icon {
- right: 0.5px;
- left: auto;
-}
-.ant-steps-rtl.ant-steps-navigation.ant-steps-small .ant-steps-item-container {
- margin-right: -12px;
- margin-left: 0;
-}
-.ant-steps-rtl.ant-steps-navigation .ant-steps-item-container {
- margin-right: -16px;
- margin-left: 0;
- text-align: right;
-}
-.ant-steps-rtl.ant-steps-navigation .ant-steps-item-container .ant-steps-item-title {
- padding-left: 0;
-}
-.ant-steps-rtl.ant-steps-navigation .ant-steps-item::after {
- right: 100%;
- left: auto;
- margin-right: -2px;
- margin-left: 0;
- -webkit-transform: rotate(225deg);
- transform: rotate(225deg);
-}
-.ant-steps-rtl.ant-steps-small.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item {
- margin-right: 0;
- margin-left: 12px;
-}
-.ant-steps-rtl.ant-steps-small.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:last-child {
- margin-left: 0;
-}
-.ant-steps-rtl.ant-steps-small .ant-steps-item-title {
- padding-right: 0;
- padding-left: 12px;
-}
-.ant-steps-rtl.ant-steps-label-vertical .ant-steps-item-title {
- padding-left: 0;
-}
-.ant-steps-rtl.ant-steps-dot .ant-steps-item-tail,
-.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item-tail {
- margin: 0 70px 0 0;
-}
-.ant-steps-rtl.ant-steps-dot .ant-steps-item-tail::after,
-.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item-tail::after {
- margin-right: 12px;
- margin-left: 0;
-}
-.ant-steps-rtl.ant-steps-dot .ant-steps-item:first-child .ant-steps-icon-dot,
-.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item:first-child .ant-steps-icon-dot {
- right: 2px;
- left: auto;
-}
-.ant-steps-rtl.ant-steps-dot .ant-steps-item-icon,
-.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item-icon {
- margin-right: 67px;
- margin-left: 0;
-}
-.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot,
-.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot {
- /* expand hover area */
-}
-.ant-steps-rtl.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot,
-.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot {
- float: right;
-}
-.ant-steps-rtl.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot::after,
-.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot::after {
- right: -26px;
- left: auto;
-}
-.ant-steps-rtl.ant-steps-vertical.ant-steps-dot .ant-steps-item-icon {
- margin-right: 0;
- margin-left: 16px;
-}
-.ant-steps-rtl.ant-steps-vertical.ant-steps-dot .ant-steps-item > .ant-steps-item-container > .ant-steps-item-tail {
- right: -9px;
- left: auto;
-}
-.ant-steps-rtl.ant-steps-vertical.ant-steps-dot .ant-steps-item:first-child .ant-steps-icon-dot {
- right: 0;
- left: auto;
-}
-.ant-steps-rtl.ant-steps-vertical.ant-steps-dot .ant-steps-item-process .ant-steps-icon-dot {
- right: -2px;
- left: auto;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-switch {
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- position: relative;
- display: inline-block;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- min-width: 44px;
- height: 22px;
- line-height: 22px;
- vertical-align: middle;
- background-color: rgba(0, 0, 0, 0.25);
- border: 0;
- border-radius: 100px;
- cursor: pointer;
- -webkit-transition: all 0.2s;
- transition: all 0.2s;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-.ant-switch:focus {
- outline: 0;
- -webkit-box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);
- box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);
-}
-.ant-switch-checked:focus {
- -webkit-box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
- box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
-}
-.ant-switch:focus:hover {
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-.ant-switch-checked {
- background-color: #1890ff;
-}
-.ant-switch-loading,
-.ant-switch-disabled {
- cursor: not-allowed;
- opacity: 0.4;
-}
-.ant-switch-loading *,
-.ant-switch-disabled * {
- -webkit-box-shadow: none;
- box-shadow: none;
- cursor: not-allowed;
-}
-.ant-switch-inner {
- display: block;
- margin: 0 7px 0 25px;
- color: #fff;
- font-size: 12px;
- -webkit-transition: margin 0.2s;
- transition: margin 0.2s;
-}
-.ant-switch-checked .ant-switch-inner {
- margin: 0 25px 0 7px;
-}
-.ant-switch-handle {
- position: absolute;
- top: 2px;
- left: 2px;
- width: 18px;
- height: 18px;
- -webkit-transition: all 0.2s ease-in-out;
- transition: all 0.2s ease-in-out;
-}
-.ant-switch-handle::before {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background-color: #fff;
- border-radius: 9px;
- -webkit-box-shadow: 0 2px 4px 0 rgba(0, 35, 11, 0.2);
- box-shadow: 0 2px 4px 0 rgba(0, 35, 11, 0.2);
- -webkit-transition: all 0.2s ease-in-out;
- transition: all 0.2s ease-in-out;
- content: '';
-}
-.ant-switch-checked .ant-switch-handle {
- left: calc(100% - 18px - 2px);
-}
-.ant-switch:not(.ant-switch-disabled):active .ant-switch-handle::before {
- right: -30%;
- left: 0;
-}
-.ant-switch:not(.ant-switch-disabled):active.ant-switch-checked .ant-switch-handle::before {
- right: 0;
- left: -30%;
-}
-.ant-switch-loading-icon {
- position: absolute;
- top: 50%;
- left: 50%;
- color: rgba(0, 0, 0, 0.65);
- -webkit-transform: translate(-50%, -50%);
- transform: translate(-50%, -50%);
-}
-.ant-switch-checked .ant-switch-loading-icon {
- color: #1890ff;
-}
-.ant-switch-small {
- min-width: 28px;
- height: 16px;
- line-height: 16px;
-}
-.ant-switch-small .ant-switch-inner {
- margin: 0 5px 0 18px;
- font-size: 12px;
-}
-.ant-switch-small .ant-switch-handle {
- width: 12px;
- height: 12px;
-}
-.ant-switch-small .ant-switch-loading-icon {
- -webkit-transform: translate(-50%, -50%) scale(0.66667);
- transform: translate(-50%, -50%) scale(0.66667);
-}
-.ant-switch-small.ant-switch-checked .ant-switch-inner {
- margin: 0 18px 0 5px;
-}
-.ant-switch-small.ant-switch-checked .ant-switch-handle {
- left: calc(100% - 12px - 2px);
-}
-.ant-switch-rtl {
- direction: rtl;
-}
-.ant-switch-rtl .ant-switch-inner {
- margin: 0 25px 0 7px;
-}
-.ant-switch-rtl .ant-switch-handle {
- right: 2px;
- left: auto;
-}
-.ant-switch-rtl:not(.ant-switch-rtl-disabled):active .ant-switch-handle::before {
- right: 0;
- left: -30%;
-}
-.ant-switch-rtl:not(.ant-switch-rtl-disabled):active.ant-switch-checked .ant-switch-handle::before {
- right: -30%;
- left: 0;
-}
-.ant-switch-rtl.ant-switch-checked .ant-switch-inner {
- margin: 0 7px 0 25px;
-}
-.ant-switch-rtl.ant-switch-checked .ant-switch-handle {
- right: calc(100% - 18px - 2px);
-}
-.ant-switch-rtl.ant-switch-small.ant-switch-checked .ant-switch-handle {
- right: calc(100% - 12px - 2px);
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-table.ant-table-middle {
- font-size: 14px;
-}
-.ant-table.ant-table-middle .ant-table-title,
-.ant-table.ant-table-middle .ant-table-footer,
-.ant-table.ant-table-middle .ant-table-thead > tr > th,
-.ant-table.ant-table-middle .ant-table-tbody > tr > td,
-.ant-table.ant-table-middle tfoot > tr > th,
-.ant-table.ant-table-middle tfoot > tr > td {
- padding: 12px 8px;
-}
-.ant-table.ant-table-middle .ant-table-thead th.ant-table-column-has-sorters {
- padding: 0;
-}
-.ant-table.ant-table-middle .ant-table-thead .ant-table-filter-column {
- margin: -12px -8px;
-}
-.ant-table.ant-table-middle .ant-table-thead .ant-table-filter-column-title {
- padding: 12px 2.3em 12px 8px;
-}
-.ant-table.ant-table-middle .ant-table-thead .ant-table-column-sorters {
- padding: 12px 8px;
-}
-.ant-table.ant-table-middle .ant-table-expanded-row-fixed {
- margin: -12px -8px;
-}
-.ant-table.ant-table-middle .ant-table-tbody .ant-table-wrapper:only-child .ant-table {
- margin: -12px -8px -12px 25px;
-}
-.ant-table.ant-table-small {
- font-size: 14px;
-}
-.ant-table.ant-table-small .ant-table-title,
-.ant-table.ant-table-small .ant-table-footer,
-.ant-table.ant-table-small .ant-table-thead > tr > th,
-.ant-table.ant-table-small .ant-table-tbody > tr > td,
-.ant-table.ant-table-small tfoot > tr > th,
-.ant-table.ant-table-small tfoot > tr > td {
- padding: 8px 8px;
-}
-.ant-table.ant-table-small .ant-table-thead th.ant-table-column-has-sorters {
- padding: 0;
-}
-.ant-table.ant-table-small .ant-table-thead .ant-table-filter-column {
- margin: -8px -8px;
-}
-.ant-table.ant-table-small .ant-table-thead .ant-table-filter-column-title {
- padding: 8px 2.3em 8px 8px;
-}
-.ant-table.ant-table-small .ant-table-thead .ant-table-column-sorters {
- padding: 8px 8px;
-}
-.ant-table.ant-table-small .ant-table-expanded-row-fixed {
- margin: -8px -8px;
-}
-.ant-table.ant-table-small .ant-table-tbody .ant-table-wrapper:only-child .ant-table {
- margin: -8px -8px -8px 25px;
-}
-.ant-table-small .ant-table-thead > tr > th {
- background-color: #fafafa;
-}
-.ant-table-small .ant-table-selection-column {
- width: 46px;
- min-width: 46px;
-}
-.ant-table.ant-table-bordered > .ant-table-title {
- border: 1px solid #f0f0f0;
- border-bottom: 0;
-}
-.ant-table.ant-table-bordered > .ant-table-container {
- border: 1px solid #f0f0f0;
- border-right: 0;
- border-bottom: 0;
-}
-.ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > thead > tr > th,
-.ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table > thead > tr > th,
-.ant-table.ant-table-bordered > .ant-table-container > .ant-table-body > table > thead > tr > th,
-.ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > tbody > tr > td,
-.ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table > tbody > tr > td,
-.ant-table.ant-table-bordered > .ant-table-container > .ant-table-body > table > tbody > tr > td,
-.ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > tfoot > tr > th,
-.ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table > tfoot > tr > th,
-.ant-table.ant-table-bordered > .ant-table-container > .ant-table-body > table > tfoot > tr > th,
-.ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > tfoot > tr > td,
-.ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table > tfoot > tr > td,
-.ant-table.ant-table-bordered > .ant-table-container > .ant-table-body > table > tfoot > tr > td {
- border-right: 1px solid #f0f0f0;
-}
-.ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > thead > tr:not(:last-child) > th,
-.ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table > thead > tr:not(:last-child) > th,
-.ant-table.ant-table-bordered > .ant-table-container > .ant-table-body > table > thead > tr:not(:last-child) > th {
- border-bottom: 1px solid #f0f0f0;
-}
-.ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > thead > tr > .ant-table-cell-fix-right-first::after,
-.ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table > thead > tr > .ant-table-cell-fix-right-first::after,
-.ant-table.ant-table-bordered > .ant-table-container > .ant-table-body > table > thead > tr > .ant-table-cell-fix-right-first::after,
-.ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > tbody > tr > .ant-table-cell-fix-right-first::after,
-.ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table > tbody > tr > .ant-table-cell-fix-right-first::after,
-.ant-table.ant-table-bordered > .ant-table-container > .ant-table-body > table > tbody > tr > .ant-table-cell-fix-right-first::after,
-.ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > tfoot > tr > .ant-table-cell-fix-right-first::after,
-.ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table > tfoot > tr > .ant-table-cell-fix-right-first::after,
-.ant-table.ant-table-bordered > .ant-table-container > .ant-table-body > table > tfoot > tr > .ant-table-cell-fix-right-first::after {
- border-right: 1px solid #f0f0f0;
-}
-.ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > tbody > tr > td > .ant-table-expanded-row-fixed,
-.ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table > tbody > tr > td > .ant-table-expanded-row-fixed,
-.ant-table.ant-table-bordered > .ant-table-container > .ant-table-body > table > tbody > tr > td > .ant-table-expanded-row-fixed {
- margin: -16px -17px;
-}
-.ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > tbody > tr > td > .ant-table-expanded-row-fixed::after,
-.ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table > tbody > tr > td > .ant-table-expanded-row-fixed::after,
-.ant-table.ant-table-bordered > .ant-table-container > .ant-table-body > table > tbody > tr > td > .ant-table-expanded-row-fixed::after {
- position: absolute;
- top: 0;
- right: 1px;
- bottom: 0;
- border-right: 1px solid #f0f0f0;
- content: '';
-}
-.ant-table.ant-table-bordered.ant-table-scroll-horizontal > .ant-table-container > .ant-table-body > table > tbody > tr.ant-table-expanded-row > td,
-.ant-table.ant-table-bordered.ant-table-scroll-horizontal > .ant-table-container > .ant-table-body > table > tbody > tr.ant-table-placeholder > td {
- border-right: 0;
-}
-.ant-table.ant-table-bordered.ant-table-middle > .ant-table-container > .ant-table-content > table > tbody > tr > td > .ant-table-expanded-row-fixed,
-.ant-table.ant-table-bordered.ant-table-middle > .ant-table-container > .ant-table-body > table > tbody > tr > td > .ant-table-expanded-row-fixed {
- margin: -12px -9px;
-}
-.ant-table.ant-table-bordered.ant-table-small > .ant-table-container > .ant-table-content > table > tbody > tr > td > .ant-table-expanded-row-fixed,
-.ant-table.ant-table-bordered.ant-table-small > .ant-table-container > .ant-table-body > table > tbody > tr > td > .ant-table-expanded-row-fixed {
- margin: -8px -9px;
-}
-.ant-table.ant-table-bordered > .ant-table-footer {
- border: 1px solid #f0f0f0;
- border-top: 0;
-}
-.ant-table-cell .ant-table-container:first-child {
- border-top: 0;
-}
-.ant-table-cell-scrollbar {
- -webkit-box-shadow: 0 1px 0 1px #fafafa;
- box-shadow: 0 1px 0 1px #fafafa;
-}
-.ant-table-wrapper {
- max-width: 100%;
-}
-.ant-table-wrapper::before {
- display: table;
- content: '';
-}
-.ant-table-wrapper::after {
- display: table;
- clear: both;
- content: '';
-}
-.ant-table {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- position: relative;
- z-index: 0;
- clear: both;
- font-size: 14px;
- background: #fff;
- border-radius: 2px;
-}
-.ant-table table {
- width: 100%;
- text-align: left;
- border-radius: 2px 2px 0 0;
- border-collapse: separate;
- border-spacing: 0;
-}
-.ant-table-thead > tr > th,
-.ant-table-tbody > tr > td,
-.ant-table tfoot > tr > th,
-.ant-table tfoot > tr > td {
- position: relative;
- padding: 16px 16px;
- overflow-wrap: break-word;
-}
-.ant-table-cell-ellipsis {
- overflow: hidden;
- white-space: nowrap;
- text-overflow: ellipsis;
- word-break: keep-all;
-}
-.ant-table-cell-ellipsis.ant-table-cell-fix-left-last,
-.ant-table-cell-ellipsis.ant-table-cell-fix-right-first {
- overflow: visible;
-}
-.ant-table-cell-ellipsis.ant-table-cell-fix-left-last .ant-table-cell-content,
-.ant-table-cell-ellipsis.ant-table-cell-fix-right-first .ant-table-cell-content {
- display: block;
- overflow: hidden;
- text-overflow: ellipsis;
-}
-.ant-table-title {
- padding: 16px 16px;
-}
-.ant-table-footer {
- padding: 16px 16px;
- color: rgba(0, 0, 0, 0.85);
- background: #fafafa;
-}
-.ant-table-thead > tr > th {
- color: rgba(0, 0, 0, 0.85);
- font-weight: 500;
- text-align: left;
- background: #fafafa;
- border-bottom: 1px solid #f0f0f0;
- -webkit-transition: background 0.3s ease;
- transition: background 0.3s ease;
-}
-.ant-table-thead > tr > th[colspan]:not([colspan='1']) {
- text-align: center;
-}
-.ant-table-thead > tr:not(:last-child) > th[colspan] {
- border-bottom: 0;
-}
-.ant-table-tbody > tr > td {
- border-bottom: 1px solid #f0f0f0;
- -webkit-transition: background 0.3s;
- transition: background 0.3s;
-}
-.ant-table-tbody > tr.ant-table-row:hover > td {
- background: #fafafa;
-}
-.ant-table-tbody > tr.ant-table-row-selected > td {
- background: #e6f7ff;
- border-color: rgba(0, 0, 0, 0.03);
-}
-.ant-table-tbody > tr.ant-table-row-selected:hover > td {
- background: #dcf4ff;
-}
-.ant-table-tbody > tr .ant-table-wrapper:only-child .ant-table {
- margin: -16px -16px -16px 33px;
-}
-.ant-table-tbody > tr .ant-table-wrapper:only-child .ant-table-tbody > tr:last-child > td {
- border-bottom: 0;
-}
-.ant-table-tbody > tr .ant-table-wrapper:only-child .ant-table-tbody > tr:last-child > td:first-child,
-.ant-table-tbody > tr .ant-table-wrapper:only-child .ant-table-tbody > tr:last-child > td:last-child {
- border-radius: 0;
-}
-.ant-table tfoot > tr > th,
-.ant-table tfoot > tr > td {
- border-bottom: 1px solid #f0f0f0;
-}
-.ant-table-pagination.ant-pagination {
- margin: 16px 0;
-}
-.ant-table-pagination-left {
- float: left;
-}
-.ant-table-pagination-center {
- text-align: center;
-}
-.ant-table-pagination-right {
- float: right;
-}
-.ant-table-thead th.ant-table-column-has-sorters {
- padding: 0;
- cursor: pointer;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
-}
-.ant-table-thead th.ant-table-column-has-sorters:hover {
- background: #f2f2f2;
-}
-.ant-table-thead th.ant-table-column-has-sorters:hover .ant-table-filter-trigger-container {
- background: #f7f7f7;
-}
-.ant-table-thead th.ant-table-column-sort {
- background: #f5f5f5;
-}
-td.ant-table-column-sort {
- background: #fafafa;
-}
-.ant-table-column-sorters-with-tooltip {
- display: inline-block;
- width: 100%;
-}
-.ant-table-column-sorters {
- display: -webkit-inline-box;
- display: -ms-inline-flexbox;
- display: inline-flex;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- padding: 16px 16px;
-}
-.ant-table-column-sorter {
- margin-top: 0.15em;
- margin-bottom: -0.15em;
- margin-left: 8px;
- color: #bfbfbf;
-}
-.ant-table-column-sorter-full {
- margin-top: -0.2em;
- margin-bottom: 0;
-}
-.ant-table-column-sorter-inner {
- display: -webkit-inline-box;
- display: -ms-inline-flexbox;
- display: inline-flex;
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
-}
-.ant-table-column-sorter-up,
-.ant-table-column-sorter-down {
- display: inline-block;
- font-size: 11px;
-}
-.ant-table-column-sorter-up.active,
-.ant-table-column-sorter-down.active {
- color: #1890ff;
-}
-.ant-table-column-sorter-up + .ant-table-column-sorter-down {
- margin-top: -0.3em;
-}
-.ant-table-filter-column {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- margin: -16px -16px;
-}
-.ant-table-filter-column-title {
- -webkit-box-flex: 1;
- -ms-flex: auto;
- flex: auto;
- padding: 16px 2.3em 16px 16px;
-}
-.ant-table-thead tr th.ant-table-column-has-sorters .ant-table-filter-column {
- margin: 0;
-}
-.ant-table-thead tr th.ant-table-column-has-sorters .ant-table-filter-column-title {
- padding: 0 2.3em 0 0;
-}
-.ant-table-filter-trigger-container {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-flex: 0;
- -ms-flex: none;
- flex: none;
- -webkit-box-align: stretch;
- -ms-flex-align: stretch;
- align-items: stretch;
- -ms-flex-item-align: stretch;
- align-self: stretch;
- cursor: pointer;
- -webkit-transition: background-color 0.3s;
- transition: background-color 0.3s;
-}
-.ant-table-filter-trigger-container-open,
-.ant-table-filter-trigger-container:hover,
-.ant-table-thead th.ant-table-column-has-sorters:hover .ant-table-filter-trigger-container:hover {
- background: #e5e5e5;
-}
-.ant-table-filter-trigger {
- display: block;
- width: 2.3em;
- color: #bfbfbf;
- font-size: 12px;
- -webkit-transition: color 0.3s;
- transition: color 0.3s;
-}
-.ant-table-filter-trigger .anticon {
- position: absolute;
- top: 50%;
- left: 50%;
- -webkit-transform: translate(-50%, -50%);
- transform: translate(-50%, -50%);
-}
-.ant-table-filter-trigger-container-open .ant-table-filter-trigger,
-.ant-table-filter-trigger:hover {
- color: rgba(0, 0, 0, 0.45);
-}
-.ant-table-filter-trigger.active {
- color: #1890ff;
-}
-.ant-table-filter-dropdown {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- min-width: 120px;
- background-color: #fff;
- border-radius: 2px;
- -webkit-box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
- box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
-}
-.ant-table-filter-dropdown .ant-dropdown-menu {
- max-height: 264px;
- overflow-x: hidden;
- border: 0;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-.ant-table-filter-dropdown-submenu > ul {
- max-height: calc(100vh - 130px);
- overflow-x: hidden;
- overflow-y: auto;
-}
-.ant-table-filter-dropdown .ant-checkbox-wrapper + span,
-.ant-table-filter-dropdown-submenu .ant-checkbox-wrapper + span {
- padding-left: 8px;
-}
-.ant-table-filter-dropdown-btns {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-pack: justify;
- -ms-flex-pack: justify;
- justify-content: space-between;
- padding: 7px 8px 7px 3px;
- overflow: hidden;
- background-color: inherit;
- border-top: 1px solid #f0f0f0;
-}
-.ant-table .ant-table-selection-col {
- width: 60px;
-}
-table tr th.ant-table-selection-column,
-table tr td.ant-table-selection-column {
- padding-right: 8px;
- padding-left: 8px;
- text-align: center;
-}
-table tr th.ant-table-selection-column .ant-radio-wrapper,
-table tr td.ant-table-selection-column .ant-radio-wrapper {
- margin-right: 0;
-}
-.ant-table-selection {
- position: relative;
-}
-.ant-table-selection-extra {
- position: absolute;
- top: 0;
- right: 0;
- cursor: pointer;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
-}
-.ant-table-selection-extra .anticon {
- display: inline-block;
- font-size: 10px;
- color: #bfbfbf;
-}
-.ant-table-selection-extra .anticon:hover {
- color: #a6a6a6;
-}
-.ant-table-expand-icon-col {
- width: 48px;
-}
-.ant-table-row-expand-icon-cell {
- text-align: center;
-}
-.ant-table-row-indent {
- float: left;
- height: 1px;
-}
-.ant-table-row-expand-icon {
- color: #1890ff;
- text-decoration: none;
- cursor: pointer;
- -webkit-transition: color 0.3s;
- transition: color 0.3s;
- position: relative;
- display: -webkit-inline-box;
- display: -ms-inline-flexbox;
- display: inline-flex;
- float: left;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- width: 17px;
- height: 17px;
- padding: 0;
- color: inherit;
- line-height: 12px;
- vertical-align: -2px;
- background: #fff;
- border: 1px solid #f0f0f0;
- border-radius: 2px;
- outline: none;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-.ant-table-row-expand-icon:focus,
-.ant-table-row-expand-icon:hover {
- color: #40a9ff;
-}
-.ant-table-row-expand-icon:active {
- color: #096dd9;
-}
-.ant-table-row-expand-icon:focus,
-.ant-table-row-expand-icon:hover,
-.ant-table-row-expand-icon:active {
- border-color: currentColor;
-}
-.ant-table-row-expand-icon::before,
-.ant-table-row-expand-icon::after {
- position: absolute;
- background: currentColor;
- -webkit-transition: -webkit-transform 0.3s ease-out;
- transition: -webkit-transform 0.3s ease-out;
- transition: transform 0.3s ease-out;
- transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;
- content: '';
-}
-.ant-table-row-expand-icon::before {
- top: 7px;
- right: 3px;
- left: 3px;
- height: 1px;
-}
-.ant-table-row-expand-icon::after {
- top: 3px;
- bottom: 3px;
- left: 7px;
- width: 1px;
- -webkit-transform: rotate(90deg);
- transform: rotate(90deg);
-}
-.ant-table-row-expand-icon-collapsed::before {
- -webkit-transform: rotate(-180deg);
- transform: rotate(-180deg);
-}
-.ant-table-row-expand-icon-collapsed::after {
- -webkit-transform: rotate(0deg);
- transform: rotate(0deg);
-}
-.ant-table-row-expand-icon-spaced {
- background: transparent;
- border: 0;
- visibility: hidden;
-}
-.ant-table-row-expand-icon-spaced::before,
-.ant-table-row-expand-icon-spaced::after {
- display: none;
- content: none;
-}
-.ant-table-row-indent + .ant-table-row-expand-icon {
- margin-top: 2.5005px;
- margin-right: 8px;
-}
-tr.ant-table-expanded-row > td,
-tr.ant-table-expanded-row:hover > td {
- background: #fbfbfb;
-}
-tr.ant-table-expanded-row .ant-descriptions-view table {
- width: auto;
-}
-.ant-table .ant-table-expanded-row-fixed {
- position: relative;
- margin: -16px -16px;
- padding: 16px 16px;
-}
-.ant-table-tbody > tr.ant-table-placeholder {
- text-align: center;
-}
-.ant-table-empty .ant-table-tbody > tr.ant-table-placeholder {
- color: rgba(0, 0, 0, 0.25);
-}
-.ant-table-tbody > tr.ant-table-placeholder:hover > td {
- background: #fff;
-}
-.ant-table-cell-fix-left,
-.ant-table-cell-fix-right {
- position: -webkit-sticky !important;
- position: sticky !important;
- z-index: 2;
- background: #fff;
-}
-.ant-table-cell-fix-left-first::after,
-.ant-table-cell-fix-left-last::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: -1px;
- width: 30px;
- -webkit-transform: translateX(100%);
- transform: translateX(100%);
- -webkit-transition: -webkit-box-shadow 0.3s;
- transition: -webkit-box-shadow 0.3s;
- transition: box-shadow 0.3s;
- transition: box-shadow 0.3s, -webkit-box-shadow 0.3s;
- content: '';
- pointer-events: none;
-}
-.ant-table-cell-fix-right-first::after,
-.ant-table-cell-fix-right-last::after {
- position: absolute;
- top: 0;
- bottom: -1px;
- left: 0;
- width: 30px;
- -webkit-transform: translateX(-100%);
- transform: translateX(-100%);
- -webkit-transition: -webkit-box-shadow 0.3s;
- transition: -webkit-box-shadow 0.3s;
- transition: box-shadow 0.3s;
- transition: box-shadow 0.3s, -webkit-box-shadow 0.3s;
- content: '';
- pointer-events: none;
-}
-.ant-table .ant-table-container::before,
-.ant-table .ant-table-container::after {
- position: absolute;
- top: 0;
- bottom: 0;
- z-index: 1;
- width: 30px;
- -webkit-transition: -webkit-box-shadow 0.3s;
- transition: -webkit-box-shadow 0.3s;
- transition: box-shadow 0.3s;
- transition: box-shadow 0.3s, -webkit-box-shadow 0.3s;
- content: '';
- pointer-events: none;
-}
-.ant-table .ant-table-container::before {
- left: 0;
-}
-.ant-table .ant-table-container::after {
- right: 0;
-}
-.ant-table-ping-left:not(.ant-table-has-fix-left) .ant-table-container {
- position: relative;
-}
-.ant-table-ping-left:not(.ant-table-has-fix-left) .ant-table-container::before {
- -webkit-box-shadow: inset 10px 0 8px -8px rgba(0, 0, 0, 0.15);
- box-shadow: inset 10px 0 8px -8px rgba(0, 0, 0, 0.15);
-}
-.ant-table-ping-left .ant-table-cell-fix-left-first::after,
-.ant-table-ping-left .ant-table-cell-fix-left-last::after {
- -webkit-box-shadow: inset 10px 0 8px -8px rgba(0, 0, 0, 0.15);
- box-shadow: inset 10px 0 8px -8px rgba(0, 0, 0, 0.15);
-}
-.ant-table-ping-right:not(.ant-table-has-fix-right) .ant-table-container {
- position: relative;
-}
-.ant-table-ping-right:not(.ant-table-has-fix-right) .ant-table-container::after {
- -webkit-box-shadow: inset -10px 0 8px -8px rgba(0, 0, 0, 0.15);
- box-shadow: inset -10px 0 8px -8px rgba(0, 0, 0, 0.15);
-}
-.ant-table-ping-right .ant-table-cell-fix-right-first::after,
-.ant-table-ping-right .ant-table-cell-fix-right-last::after {
- -webkit-box-shadow: inset -10px 0 8px -8px rgba(0, 0, 0, 0.15);
- box-shadow: inset -10px 0 8px -8px rgba(0, 0, 0, 0.15);
-}
-@media all and (-ms-high-contrast: none) {
- .ant-table-ping-left .ant-table-cell-fix-left-last::after {
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
- }
- .ant-table-ping-right .ant-table-cell-fix-right-first::after {
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
- }
-}
-.ant-table {
- /* title + table */
- /* table */
- /* table + footer */
-}
-.ant-table-title {
- border-radius: 2px 2px 0 0;
-}
-.ant-table-title + .ant-table-container {
- border-top-left-radius: 0;
- border-top-right-radius: 0;
-}
-.ant-table-title + .ant-table-container table > thead > tr:first-child th:first-child {
- border-radius: 0;
-}
-.ant-table-title + .ant-table-container table > thead > tr:first-child th:last-child {
- border-radius: 0;
-}
-.ant-table-container {
- border-top-left-radius: 2px;
- border-top-right-radius: 2px;
-}
-.ant-table-container table > thead > tr:first-child th:first-child {
- border-top-left-radius: 2px;
-}
-.ant-table-container table > thead > tr:first-child th:last-child {
- border-top-right-radius: 2px;
-}
-.ant-table-footer {
- border-radius: 0 0 2px 2px;
-}
-.ant-table-wrapper-rtl {
- direction: rtl;
-}
-.ant-table-rtl {
- direction: rtl;
-}
-.ant-table-wrapper-rtl .ant-table table {
- text-align: right;
-}
-.ant-table-wrapper-rtl .ant-table-thead > tr > th[colspan]:not([colspan='1']) {
- text-align: center;
-}
-.ant-table-wrapper-rtl .ant-table-thead > tr > th {
- text-align: right;
-}
-.ant-table-tbody > tr .ant-table-wrapper:only-child .ant-table-rtl {
- margin: -16px 33px -16px -16px;
-}
-.ant-table-wrapper.ant-table-wrapper-rtl .ant-table-pagination {
- float: left;
-}
-.ant-table-wrapper.ant-table-wrapper-rtl .ant-table-pagination-left {
- float: left;
-}
-.ant-table-wrapper.ant-table-wrapper-rtl .ant-table-pagination-right {
- float: right;
-}
-.ant-table-wrapper.ant-table-wrapper-rtl .ant-table-pagination-center {
- float: initial;
- text-align: center;
-}
-.ant-table-wrapper-rtl .ant-table-column-sorter {
- margin-right: 8px;
- margin-left: 0;
-}
-.ant-table-wrapper-rtl .ant-table-filter-column-title {
- padding: 16px 16px 16px 2.3em;
-}
-.ant-table-rtl .ant-table-thead tr th.ant-table-column-has-sorters .ant-table-filter-column-title {
- padding: 0 0 0 2.3em;
-}
-.ant-table-wrapper-rtl .ant-table-filter-trigger-container {
- right: auto;
- left: 0;
-}
-.ant-dropdown-rtl .ant-table-filter-dropdown .ant-checkbox-wrapper + span,
-.ant-dropdown-rtl .ant-table-filter-dropdown-submenu .ant-checkbox-wrapper + span,
-.ant-dropdown-menu-submenu-rtl.ant-table-filter-dropdown .ant-checkbox-wrapper + span,
-.ant-dropdown-menu-submenu-rtl.ant-table-filter-dropdown-submenu .ant-checkbox-wrapper + span {
- padding-right: 8px;
- padding-left: 0;
-}
-.ant-table-wrapper-rtl .ant-table-selection {
- text-align: center;
-}
-.ant-table-wrapper-rtl .ant-table-selection-extra {
- right: auto;
- left: 0;
-}
-.ant-table-wrapper-rtl .ant-table-row-indent {
- float: right;
-}
-.ant-table-wrapper-rtl .ant-table-row-expand-icon {
- float: right;
-}
-.ant-table-wrapper-rtl .ant-table-row-indent + .ant-table-row-expand-icon {
- margin-right: 0;
- margin-left: 8px;
-}
-.ant-table-wrapper-rtl .ant-table-row-expand-icon::after {
- -webkit-transform: rotate(-90deg);
- transform: rotate(-90deg);
-}
-.ant-table-wrapper-rtl .ant-table-row-expand-icon-collapsed::before {
- -webkit-transform: rotate(180deg);
- transform: rotate(180deg);
-}
-.ant-table-wrapper-rtl .ant-table-row-expand-icon-collapsed::after {
- -webkit-transform: rotate(0deg);
- transform: rotate(0deg);
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-timeline {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- margin: 0;
- padding: 0;
- list-style: none;
-}
-.ant-timeline-item {
- position: relative;
- margin: 0;
- padding-bottom: 20px;
- font-size: 14px;
- list-style: none;
-}
-.ant-timeline-item-tail {
- position: absolute;
- top: 10px;
- left: 4px;
- height: calc(100% - 10px);
- border-left: 2px solid #f0f0f0;
-}
-.ant-timeline-item-pending .ant-timeline-item-head {
- font-size: 12px;
- background-color: transparent;
-}
-.ant-timeline-item-pending .ant-timeline-item-tail {
- display: none;
-}
-.ant-timeline-item-head {
- position: absolute;
- width: 10px;
- height: 10px;
- background-color: #fff;
- border: 2px solid transparent;
- border-radius: 100px;
-}
-.ant-timeline-item-head-blue {
- color: #1890ff;
- border-color: #1890ff;
-}
-.ant-timeline-item-head-red {
- color: #ff4d4f;
- border-color: #ff4d4f;
-}
-.ant-timeline-item-head-green {
- color: #52c41a;
- border-color: #52c41a;
-}
-.ant-timeline-item-head-gray {
- color: rgba(0, 0, 0, 0.25);
- border-color: rgba(0, 0, 0, 0.25);
-}
-.ant-timeline-item-head-custom {
- position: absolute;
- top: 5.5px;
- left: 5px;
- width: auto;
- height: auto;
- margin-top: 0;
- padding: 3px 1px;
- line-height: 1;
- text-align: center;
- border: 0;
- border-radius: 0;
- -webkit-transform: translate(-50%, -50%);
- transform: translate(-50%, -50%);
-}
-.ant-timeline-item-content {
- position: relative;
- top: -7.001px;
- margin: 0 0 0 26px;
- word-break: break-word;
-}
-.ant-timeline-item-last > .ant-timeline-item-tail {
- display: none;
-}
-.ant-timeline-item-last > .ant-timeline-item-content {
- min-height: 48px;
-}
-.ant-timeline.ant-timeline-alternate .ant-timeline-item-tail,
-.ant-timeline.ant-timeline-right .ant-timeline-item-tail,
-.ant-timeline.ant-timeline-label .ant-timeline-item-tail,
-.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,
-.ant-timeline.ant-timeline-right .ant-timeline-item-head,
-.ant-timeline.ant-timeline-label .ant-timeline-item-head,
-.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,
-.ant-timeline.ant-timeline-right .ant-timeline-item-head-custom,
-.ant-timeline.ant-timeline-label .ant-timeline-item-head-custom {
- left: 50%;
-}
-.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,
-.ant-timeline.ant-timeline-right .ant-timeline-item-head,
-.ant-timeline.ant-timeline-label .ant-timeline-item-head {
- margin-left: -4px;
-}
-.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,
-.ant-timeline.ant-timeline-right .ant-timeline-item-head-custom,
-.ant-timeline.ant-timeline-label .ant-timeline-item-head-custom {
- margin-left: 1px;
-}
-.ant-timeline.ant-timeline-alternate .ant-timeline-item-left .ant-timeline-item-content,
-.ant-timeline.ant-timeline-right .ant-timeline-item-left .ant-timeline-item-content,
-.ant-timeline.ant-timeline-label .ant-timeline-item-left .ant-timeline-item-content {
- left: calc(50% - 4px);
- width: calc(50% - 14px);
- text-align: left;
-}
-.ant-timeline.ant-timeline-alternate .ant-timeline-item-right .ant-timeline-item-content,
-.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-content,
-.ant-timeline.ant-timeline-label .ant-timeline-item-right .ant-timeline-item-content {
- width: calc(50% - 12px);
- margin: 0;
- text-align: right;
-}
-.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-tail,
-.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head,
-.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head-custom {
- left: calc(100% - 4px - 2px);
-}
-.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-content {
- width: calc(100% - 18px);
-}
-.ant-timeline.ant-timeline-pending .ant-timeline-item-last .ant-timeline-item-tail {
- display: block;
- height: calc(100% - 14px);
- border-left: 2px dotted #f0f0f0;
-}
-.ant-timeline.ant-timeline-reverse .ant-timeline-item-last .ant-timeline-item-tail {
- display: none;
-}
-.ant-timeline.ant-timeline-reverse .ant-timeline-item-pending .ant-timeline-item-tail {
- top: 15px;
- display: block;
- height: calc(100% - 15px);
- border-left: 2px dotted #f0f0f0;
-}
-.ant-timeline.ant-timeline-reverse .ant-timeline-item-pending .ant-timeline-item-content {
- min-height: 48px;
-}
-.ant-timeline.ant-timeline-label .ant-timeline-item-label {
- position: absolute;
- top: -7.001px;
- width: calc(50% - 12px);
- text-align: right;
-}
-.ant-timeline.ant-timeline-label .ant-timeline-item-right .ant-timeline-item-label {
- left: calc(50% + 14px);
- width: calc(50% - 14px);
- text-align: left;
-}
-.ant-timeline-rtl {
- direction: rtl;
-}
-.ant-timeline-rtl .ant-timeline-item-tail {
- right: 4px;
- left: auto;
- border-right: 2px solid #f0f0f0;
- border-left: none;
-}
-.ant-timeline-rtl .ant-timeline-item-head-custom {
- right: 5px;
- left: auto;
- -webkit-transform: translate(50%, -50%);
- transform: translate(50%, -50%);
-}
-.ant-timeline-rtl .ant-timeline-item-content {
- margin: 0 18px 0 0;
-}
-.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-tail,
-.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-tail,
-.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-tail,
-.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,
-.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-head,
-.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-head,
-.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,
-.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-head-custom,
-.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-head-custom {
- right: 50%;
- left: auto;
-}
-.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,
-.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-head,
-.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-head {
- margin-right: -4px;
- margin-left: 0;
-}
-.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,
-.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-head-custom,
-.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-head-custom {
- margin-right: 1px;
- margin-left: 0;
-}
-.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-left .ant-timeline-item-content,
-.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-left .ant-timeline-item-content,
-.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-left .ant-timeline-item-content {
- right: calc(50% - 4px);
- left: auto;
- text-align: right;
-}
-.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-right .ant-timeline-item-content,
-.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-content,
-.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-right .ant-timeline-item-content {
- text-align: left;
-}
-.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-tail,
-.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head,
-.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head-custom {
- right: 0;
- left: auto;
-}
-.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-content {
- width: 100%;
- margin-right: 18px;
- text-align: right;
-}
-.ant-timeline-rtl.ant-timeline.ant-timeline-pending .ant-timeline-item-last .ant-timeline-item-tail {
- border-right: 2px dotted #f0f0f0;
- border-left: none;
-}
-.ant-timeline-rtl.ant-timeline.ant-timeline-reverse .ant-timeline-item-pending .ant-timeline-item-tail {
- border-right: 2px dotted #f0f0f0;
- border-left: none;
-}
-.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-label {
- text-align: left;
-}
-.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-right .ant-timeline-item-label {
- right: calc(50% + 14px);
- text-align: right;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-@-webkit-keyframes antCheckboxEffect {
- 0% {
- -webkit-transform: scale(1);
- transform: scale(1);
- opacity: 0.5;
- }
- 100% {
- -webkit-transform: scale(1.6);
- transform: scale(1.6);
- opacity: 0;
- }
-}
-@keyframes antCheckboxEffect {
- 0% {
- -webkit-transform: scale(1);
- transform: scale(1);
- opacity: 0.5;
- }
- 100% {
- -webkit-transform: scale(1.6);
- transform: scale(1.6);
- opacity: 0;
- }
-}
-.ant-transfer-customize-list .ant-transfer-list {
- -webkit-box-flex: 1;
- -ms-flex: 1 1 50%;
- flex: 1 1 50%;
- width: auto;
- height: auto;
- min-height: 200px;
-}
-.ant-transfer-customize-list .ant-table-wrapper .ant-table-small {
- border: 0;
- border-radius: 0;
-}
-.ant-transfer-customize-list .ant-table-wrapper .ant-table-small > .ant-table-content > .ant-table-body > table > .ant-table-thead > tr > th {
- background: #fafafa;
-}
-.ant-transfer-customize-list .ant-table-wrapper .ant-table-small > .ant-table-content .ant-table-row:last-child td {
- border-bottom: 1px solid #f0f0f0;
-}
-.ant-transfer-customize-list .ant-table-wrapper .ant-table-small .ant-table-body {
- margin: 0;
-}
-.ant-transfer-customize-list .ant-table-wrapper .ant-table-pagination.ant-pagination {
- margin: 16px 0 4px;
-}
-.ant-transfer-customize-list .ant-input[disabled] {
- background-color: transparent;
-}
-.ant-transfer {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- position: relative;
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: stretch;
- -ms-flex-align: stretch;
- align-items: stretch;
-}
-.ant-transfer-disabled .ant-transfer-list {
- background: #f5f5f5;
-}
-.ant-transfer-list {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
- width: 180px;
- height: 200px;
- border: 1px solid #d9d9d9;
- border-radius: 2px;
-}
-.ant-transfer-list-with-pagination {
- width: 250px;
- height: auto;
-}
-.ant-transfer-list-search {
- padding-right: 24px;
- padding-left: 8px;
-}
-.ant-transfer-list-search-action {
- position: absolute;
- top: 12px;
- right: 12px;
- bottom: 12px;
- width: 28px;
- color: rgba(0, 0, 0, 0.25);
- line-height: 32px;
- text-align: center;
-}
-.ant-transfer-list-search-action .anticon {
- color: rgba(0, 0, 0, 0.25);
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
-}
-.ant-transfer-list-search-action .anticon:hover {
- color: rgba(0, 0, 0, 0.45);
-}
-span.ant-transfer-list-search-action {
- pointer-events: none;
-}
-.ant-transfer-list-header {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-flex: 0;
- -ms-flex: none;
- flex: none;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- height: 40px;
- padding: 8px 12px 9px;
- color: rgba(0, 0, 0, 0.65);
- background: #fff;
- border-bottom: 1px solid #f0f0f0;
- border-radius: 2px 2px 0 0;
-}
-.ant-transfer-list-header > *:not(:last-child) {
- margin-right: 4px;
-}
-.ant-transfer-list-header > * {
- -webkit-box-flex: 0;
- -ms-flex: none;
- flex: none;
-}
-.ant-transfer-list-header-title {
- -webkit-box-flex: 1;
- -ms-flex: auto;
- flex: auto;
- overflow: hidden;
- white-space: nowrap;
- text-align: right;
- text-overflow: ellipsis;
-}
-.ant-transfer-list-header-dropdown {
- -webkit-transform: translateY(10%);
- transform: translateY(10%);
- cursor: pointer;
- display: inline-block;
- font-size: 10px;
-}
-.ant-transfer-list-body {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-flex: 1;
- -ms-flex: auto;
- flex: auto;
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
- overflow: hidden;
- font-size: 14px;
-}
-.ant-transfer-list-body-search-wrapper {
- position: relative;
- -webkit-box-flex: 0;
- -ms-flex: none;
- flex: none;
- padding: 12px;
-}
-.ant-transfer-list-content {
- -webkit-box-flex: 1;
- -ms-flex: auto;
- flex: auto;
- margin: 0;
- padding: 0;
- overflow: auto;
- list-style: none;
-}
-.ant-transfer-list-content-item {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- min-height: 32px;
- padding: 6px 12px;
- overflow: hidden;
- line-height: 20px;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
-}
-.ant-transfer-list-content-item > *:not(:last-child) {
- margin-right: 8px;
-}
-.ant-transfer-list-content-item > * {
- -webkit-box-flex: 0;
- -ms-flex: none;
- flex: none;
-}
-.ant-transfer-list-content-item-text {
- -webkit-box-flex: 1;
- -ms-flex: auto;
- flex: auto;
- overflow: hidden;
- white-space: nowrap;
- text-overflow: ellipsis;
-}
-.ant-transfer-list-content-item-remove {
- color: #1890ff;
- text-decoration: none;
- outline: none;
- cursor: pointer;
- -webkit-transition: color 0.3s;
- transition: color 0.3s;
- position: relative;
- color: #d9d9d9;
-}
-.ant-transfer-list-content-item-remove:focus,
-.ant-transfer-list-content-item-remove:hover {
- color: #40a9ff;
-}
-.ant-transfer-list-content-item-remove:active {
- color: #096dd9;
-}
-.ant-transfer-list-content-item-remove::after {
- position: absolute;
- top: -6px;
- right: -50%;
- bottom: -6px;
- left: -50%;
- content: '';
-}
-.ant-transfer-list-content-item-remove:hover {
- color: #40a9ff;
-}
-.ant-transfer-list-content-item:not(.ant-transfer-list-content-item-disabled):hover {
- background-color: #f5f5f5;
- cursor: pointer;
-}
-.ant-transfer-list-content-item:not(.ant-transfer-list-content-item-disabled).ant-transfer-list-content-item-checked:hover {
- background-color: #dcf4ff;
-}
-.ant-transfer-list-content-show-remove .ant-transfer-list-content-item:not(.ant-transfer-list-content-item-disabled):hover {
- background: transparent;
- cursor: default;
-}
-.ant-transfer-list-content-item-checked {
- background-color: #e6f7ff;
-}
-.ant-transfer-list-content-item-disabled {
- color: rgba(0, 0, 0, 0.25);
- cursor: not-allowed;
-}
-.ant-transfer-list-pagination {
- -webkit-box-flex: 0;
- -ms-flex: none;
- flex: none;
- -ms-flex-item-align: end;
- align-self: flex-end;
- padding: 8px 0;
-}
-.ant-transfer-list-body-not-found {
- -webkit-box-flex: 0;
- -ms-flex: none;
- flex: none;
- width: 100%;
- margin: auto 0;
- color: rgba(0, 0, 0, 0.25);
- text-align: center;
-}
-.ant-transfer-list-footer {
- border-top: 1px solid #f0f0f0;
-}
-.ant-transfer-operation {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-flex: 0;
- -ms-flex: none;
- flex: none;
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
- -ms-flex-item-align: center;
- align-self: center;
- margin: 0 8px;
- overflow: hidden;
- vertical-align: middle;
-}
-.ant-transfer-operation .ant-btn {
- display: block;
-}
-.ant-transfer-operation .ant-btn:first-child {
- margin-bottom: 4px;
-}
-.ant-transfer-operation .ant-btn .anticon {
- font-size: 12px;
-}
-.ant-transfer .ant-empty-image {
- max-height: -2px;
-}
-.ant-transfer-rtl {
- direction: rtl;
-}
-.ant-transfer-rtl .ant-transfer-list-search {
- padding-right: 8px;
- padding-left: 24px;
-}
-.ant-transfer-rtl .ant-transfer-list-search-action {
- right: auto;
- left: 12px;
-}
-.ant-transfer-rtl .ant-transfer-list-header > *:not(:last-child) {
- margin-right: 0;
- margin-left: 4px;
-}
-.ant-transfer-rtl .ant-transfer-list-header {
- right: 0;
- left: auto;
-}
-.ant-transfer-rtl .ant-transfer-list-header-title {
- text-align: left;
-}
-.ant-transfer-rtl .ant-transfer-list-content-item > *:not(:last-child) {
- margin-right: 0;
- margin-left: 8px;
-}
-.ant-transfer-rtl .ant-transfer-list-footer {
- right: 0;
- left: auto;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-tree-treenode-leaf-last .ant-tree-switcher-leaf-line::before {
- height: 14px !important;
-}
-@-webkit-keyframes antCheckboxEffect {
- 0% {
- -webkit-transform: scale(1);
- transform: scale(1);
- opacity: 0.5;
- }
- 100% {
- -webkit-transform: scale(1.6);
- transform: scale(1.6);
- opacity: 0;
- }
-}
-@keyframes antCheckboxEffect {
- 0% {
- -webkit-transform: scale(1);
- transform: scale(1);
- opacity: 0.5;
- }
- 100% {
- -webkit-transform: scale(1.6);
- transform: scale(1.6);
- opacity: 0;
- }
-}
-.ant-select-tree-checkbox {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- position: relative;
- top: -0.09em;
- display: inline-block;
- line-height: 1;
- white-space: nowrap;
- vertical-align: middle;
- outline: none;
- cursor: pointer;
-}
-.ant-select-tree-checkbox-wrapper:hover .ant-select-tree-checkbox-inner,
-.ant-select-tree-checkbox:hover .ant-select-tree-checkbox-inner,
-.ant-select-tree-checkbox-input:focus + .ant-select-tree-checkbox-inner {
- border-color: #1890ff;
-}
-.ant-select-tree-checkbox-checked::after {
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- border: 1px solid #1890ff;
- border-radius: 2px;
- visibility: hidden;
- -webkit-animation: antCheckboxEffect 0.36s ease-in-out;
- animation: antCheckboxEffect 0.36s ease-in-out;
- -webkit-animation-fill-mode: backwards;
- animation-fill-mode: backwards;
- content: '';
-}
-.ant-select-tree-checkbox:hover::after,
-.ant-select-tree-checkbox-wrapper:hover .ant-select-tree-checkbox::after {
- visibility: visible;
-}
-.ant-select-tree-checkbox-inner {
- position: relative;
- top: 0;
- left: 0;
- display: block;
- width: 16px;
- height: 16px;
- direction: ltr;
- background-color: #fff;
- border: 1px solid #d9d9d9;
- border-radius: 2px;
- border-collapse: separate;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
-}
-.ant-select-tree-checkbox-inner::after {
- position: absolute;
- top: 50%;
- left: 22%;
- display: table;
- width: 5.71428571px;
- height: 9.14285714px;
- border: 2px solid #fff;
- border-top: 0;
- border-left: 0;
- -webkit-transform: rotate(45deg) scale(0) translate(-50%, -50%);
- transform: rotate(45deg) scale(0) translate(-50%, -50%);
- opacity: 0;
- -webkit-transition: all 0.1s cubic-bezier(0.71, -0.46, 0.88, 0.6), opacity 0.1s;
- transition: all 0.1s cubic-bezier(0.71, -0.46, 0.88, 0.6), opacity 0.1s;
- content: ' ';
-}
-.ant-select-tree-checkbox-input {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- z-index: 1;
- width: 100%;
- height: 100%;
- cursor: pointer;
- opacity: 0;
-}
-.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner::after {
- position: absolute;
- display: table;
- border: 2px solid #fff;
- border-top: 0;
- border-left: 0;
- -webkit-transform: rotate(45deg) scale(1) translate(-50%, -50%);
- transform: rotate(45deg) scale(1) translate(-50%, -50%);
- opacity: 1;
- -webkit-transition: all 0.2s cubic-bezier(0.12, 0.4, 0.29, 1.46) 0.1s;
- transition: all 0.2s cubic-bezier(0.12, 0.4, 0.29, 1.46) 0.1s;
- content: ' ';
-}
-.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner {
- background-color: #1890ff;
- border-color: #1890ff;
-}
-.ant-select-tree-checkbox-disabled {
- cursor: not-allowed;
-}
-.ant-select-tree-checkbox-disabled.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner::after {
- border-color: rgba(0, 0, 0, 0.25);
- -webkit-animation-name: none;
- animation-name: none;
-}
-.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-input {
- cursor: not-allowed;
-}
-.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner {
- background-color: #f5f5f5;
- border-color: #d9d9d9 !important;
-}
-.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner::after {
- border-color: #f5f5f5;
- border-collapse: separate;
- -webkit-animation-name: none;
- animation-name: none;
-}
-.ant-select-tree-checkbox-disabled + span {
- color: rgba(0, 0, 0, 0.25);
- cursor: not-allowed;
-}
-.ant-select-tree-checkbox-disabled:hover::after,
-.ant-select-tree-checkbox-wrapper:hover .ant-select-tree-checkbox-disabled::after {
- visibility: hidden;
-}
-.ant-select-tree-checkbox-wrapper {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- display: inline-block;
- line-height: unset;
- cursor: pointer;
-}
-.ant-select-tree-checkbox-wrapper.ant-select-tree-checkbox-wrapper-disabled {
- cursor: not-allowed;
-}
-.ant-select-tree-checkbox-wrapper + .ant-select-tree-checkbox-wrapper {
- margin-left: 8px;
-}
-.ant-select-tree-checkbox + span {
- padding-right: 8px;
- padding-left: 8px;
-}
-.ant-select-tree-checkbox-group {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- display: inline-block;
-}
-.ant-select-tree-checkbox-group-item {
- display: inline-block;
- margin-right: 8px;
-}
-.ant-select-tree-checkbox-group-item:last-child {
- margin-right: 0;
-}
-.ant-select-tree-checkbox-group-item + .ant-select-tree-checkbox-group-item {
- margin-left: 0;
-}
-.ant-select-tree-checkbox-indeterminate .ant-select-tree-checkbox-inner {
- background-color: #fff;
- border-color: #d9d9d9;
-}
-.ant-select-tree-checkbox-indeterminate .ant-select-tree-checkbox-inner::after {
- top: 50%;
- left: 50%;
- width: 8px;
- height: 8px;
- background-color: #1890ff;
- border: 0;
- -webkit-transform: translate(-50%, -50%) scale(1);
- transform: translate(-50%, -50%) scale(1);
- opacity: 1;
- content: ' ';
-}
-.ant-select-tree-checkbox-indeterminate.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner::after {
- background-color: rgba(0, 0, 0, 0.25);
- border-color: rgba(0, 0, 0, 0.25);
-}
-.ant-tree-select-dropdown {
- padding: 8px 4px 0;
-}
-.ant-tree-select-dropdown-rtl {
- direction: rtl;
-}
-.ant-tree-select-dropdown .ant-select-tree {
- border-radius: 0;
-}
-.ant-tree-select-dropdown .ant-select-tree-list-holder-inner {
- -webkit-box-align: stretch;
- -ms-flex-align: stretch;
- align-items: stretch;
-}
-.ant-tree-select-dropdown .ant-select-tree-list-holder-inner .ant-select-tree-treenode {
- padding-bottom: 8px;
-}
-.ant-tree-select-dropdown .ant-select-tree-list-holder-inner .ant-select-tree-treenode .ant-select-tree-node-content-wrapper {
- -webkit-box-flex: 1;
- -ms-flex: auto;
- flex: auto;
-}
-.ant-select-tree {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- background: #fff;
- border-radius: 2px;
- -webkit-transition: background-color 0.3s;
- transition: background-color 0.3s;
-}
-.ant-select-tree-focused:not(:hover):not(.ant-select-tree-active-focused) {
- background: #e6f7ff;
-}
-.ant-select-tree-list-holder-inner {
- -webkit-box-align: start;
- -ms-flex-align: start;
- align-items: flex-start;
-}
-.ant-select-tree.ant-select-tree-block-node .ant-select-tree-list-holder-inner {
- -webkit-box-align: stretch;
- -ms-flex-align: stretch;
- align-items: stretch;
-}
-.ant-select-tree.ant-select-tree-block-node .ant-select-tree-list-holder-inner .ant-select-tree-node-content-wrapper {
- -webkit-box-flex: 1;
- -ms-flex: auto;
- flex: auto;
-}
-.ant-select-tree .ant-select-tree-treenode {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: start;
- -ms-flex-align: start;
- align-items: flex-start;
- padding: 0 0 4px 0;
- outline: none;
-}
-.ant-select-tree .ant-select-tree-treenode-disabled .ant-select-tree-node-content-wrapper {
- color: rgba(0, 0, 0, 0.25);
- cursor: not-allowed;
-}
-.ant-select-tree .ant-select-tree-treenode-disabled .ant-select-tree-node-content-wrapper:hover {
- background: transparent;
-}
-.ant-select-tree .ant-select-tree-treenode-active .ant-select-tree-node-content-wrapper {
- background: #f5f5f5;
-}
-.ant-select-tree-indent {
- -ms-flex-item-align: stretch;
- align-self: stretch;
- white-space: nowrap;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-.ant-select-tree-indent-unit {
- display: inline-block;
- width: 24px;
-}
-.ant-select-tree .ant-select-tree-switcher {
- -webkit-box-flex: 0;
- -ms-flex: none;
- flex: none;
- width: 24px;
- height: 24px;
- margin: 0;
- line-height: 24px;
- text-align: center;
- cursor: pointer;
-}
-.ant-select-tree .ant-select-tree-switcher .ant-tree-switcher-icon,
-.ant-select-tree .ant-select-tree-switcher .ant-select-tree-switcher-icon {
- font-size: 10px;
- display: inline-block;
- vertical-align: baseline;
-}
-.ant-select-tree .ant-select-tree-switcher .ant-tree-switcher-icon svg,
-.ant-select-tree .ant-select-tree-switcher .ant-select-tree-switcher-icon svg {
- -webkit-transition: -webkit-transform 0.3s;
- transition: -webkit-transform 0.3s;
- transition: transform 0.3s;
- transition: transform 0.3s, -webkit-transform 0.3s;
-}
-.ant-select-tree .ant-select-tree-switcher-noop {
- cursor: default;
-}
-.ant-select-tree .ant-select-tree-switcher_close .ant-select-tree-switcher-icon svg {
- -webkit-transform: rotate(-90deg);
- transform: rotate(-90deg);
-}
-.ant-select-tree .ant-select-tree-switcher-loading-icon {
- color: #1890ff;
-}
-.ant-select-tree .ant-select-tree-switcher-leaf-line {
- z-index: 1;
- display: inline-block;
- width: 100%;
- height: 100%;
-}
-.ant-select-tree .ant-select-tree-switcher-leaf-line::before {
- position: absolute;
- height: 24px;
- margin-left: -1px;
- border-left: 1px solid #d9d9d9;
- content: ' ';
-}
-.ant-select-tree .ant-select-tree-switcher-leaf-line::after {
- position: absolute;
- width: 10px;
- height: 14px;
- margin-left: -1px;
- border-bottom: 1px solid #d9d9d9;
- content: ' ';
-}
-.ant-select-tree .ant-select-tree-checkbox {
- top: initial;
- margin: 4px 8px 0 0;
-}
-.ant-select-tree .ant-select-tree-node-content-wrapper {
- min-height: 24px;
- margin: 0;
- padding: 0 4px;
- color: inherit;
- line-height: 24px;
- background: transparent;
- border-radius: 2px;
- cursor: pointer;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
-}
-.ant-select-tree .ant-select-tree-node-content-wrapper:hover {
- background-color: #f5f5f5;
-}
-.ant-select-tree .ant-select-tree-node-content-wrapper.ant-select-tree-node-selected {
- background-color: #bae7ff;
-}
-.ant-select-tree .ant-select-tree-node-content-wrapper .ant-select-tree-iconEle {
- display: inline-block;
- width: 24px;
- height: 24px;
- line-height: 24px;
- text-align: center;
- vertical-align: top;
-}
-.ant-select-tree .ant-select-tree-node-content-wrapper .ant-select-tree-iconEle:empty {
- display: none;
-}
-.ant-select-tree-node-content-wrapper[draggable='true'] {
- line-height: 20px;
- border-top: 2px transparent solid;
- border-bottom: 2px transparent solid;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-.ant-select-tree .ant-select-tree-treenode.drag-over > [draggable] {
- color: white;
- background-color: #1890ff;
- opacity: 0.8;
-}
-.ant-select-tree .ant-select-tree-treenode.drag-over-gap-top > [draggable] {
- border-top-color: #1890ff;
-}
-.ant-select-tree .ant-select-tree-treenode.drag-over-gap-bottom > [draggable] {
- border-bottom-color: #1890ff;
-}
-.ant-select-tree-show-line {
- /* Motion should hide line of measure */
-}
-.ant-select-tree-show-line .ant-select-tree-indent-unit {
- position: relative;
- height: 100%;
-}
-.ant-select-tree-show-line .ant-select-tree-indent-unit::before {
- position: absolute;
- top: calc(100% - 4px);
- right: -12px;
- bottom: -28px;
- border-right: 1px solid #d9d9d9;
- content: '';
-}
-.ant-select-tree-show-line .ant-select-tree-indent-unit-end::before {
- display: none;
-}
-.ant-select-tree-show-line .ant-select-tree-treenode-motion:not(.ant-motion-collapse-leave):not(.ant-motion-collapse-appear-active) .ant-select-tree-indent-unit::before {
- display: none;
-}
-.ant-select-tree-show-line .ant-select-tree-switcher {
- z-index: 1;
- background: #fff;
-}
-.ant-tree-select-dropdown-rtl .ant-select-tree .ant-select-tree-switcher_close .ant-select-tree-switcher-icon svg {
- -webkit-transform: rotate(90deg);
- transform: rotate(90deg);
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-@-webkit-keyframes antCheckboxEffect {
- 0% {
- -webkit-transform: scale(1);
- transform: scale(1);
- opacity: 0.5;
- }
- 100% {
- -webkit-transform: scale(1.6);
- transform: scale(1.6);
- opacity: 0;
- }
-}
-@keyframes antCheckboxEffect {
- 0% {
- -webkit-transform: scale(1);
- transform: scale(1);
- opacity: 0.5;
- }
- 100% {
- -webkit-transform: scale(1.6);
- transform: scale(1.6);
- opacity: 0;
- }
-}
-.ant-tree-treenode-leaf-last .ant-tree-switcher-leaf-line::before {
- height: 14px !important;
-}
-.ant-tree.ant-tree-directory .ant-tree-treenode {
- position: relative;
-}
-.ant-tree.ant-tree-directory .ant-tree-treenode::before {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 4px;
- left: 0;
- -webkit-transition: background-color 0.3s;
- transition: background-color 0.3s;
- content: '';
- pointer-events: none;
-}
-.ant-tree.ant-tree-directory .ant-tree-treenode:hover::before {
- background: #f5f5f5;
-}
-.ant-tree.ant-tree-directory .ant-tree-treenode > * {
- z-index: 1;
-}
-.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-switcher {
- -webkit-transition: color 0.3s;
- transition: color 0.3s;
-}
-.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-node-content-wrapper {
- border-radius: 0;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-node-content-wrapper:hover {
- background: transparent;
-}
-.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-node-content-wrapper.ant-tree-node-selected {
- color: #fff;
- background: transparent;
-}
-.ant-tree.ant-tree-directory .ant-tree-treenode-selected:hover::before,
-.ant-tree.ant-tree-directory .ant-tree-treenode-selected::before {
- background: #1890ff;
-}
-.ant-tree.ant-tree-directory .ant-tree-treenode-selected .ant-tree-switcher {
- color: #fff;
-}
-.ant-tree.ant-tree-directory .ant-tree-treenode-selected .ant-tree-node-content-wrapper {
- color: #fff;
- background: transparent;
-}
-.ant-tree-checkbox {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- position: relative;
- top: -0.09em;
- display: inline-block;
- line-height: 1;
- white-space: nowrap;
- vertical-align: middle;
- outline: none;
- cursor: pointer;
-}
-.ant-tree-checkbox-wrapper:hover .ant-tree-checkbox-inner,
-.ant-tree-checkbox:hover .ant-tree-checkbox-inner,
-.ant-tree-checkbox-input:focus + .ant-tree-checkbox-inner {
- border-color: #1890ff;
-}
-.ant-tree-checkbox-checked::after {
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- border: 1px solid #1890ff;
- border-radius: 2px;
- visibility: hidden;
- -webkit-animation: antCheckboxEffect 0.36s ease-in-out;
- animation: antCheckboxEffect 0.36s ease-in-out;
- -webkit-animation-fill-mode: backwards;
- animation-fill-mode: backwards;
- content: '';
-}
-.ant-tree-checkbox:hover::after,
-.ant-tree-checkbox-wrapper:hover .ant-tree-checkbox::after {
- visibility: visible;
-}
-.ant-tree-checkbox-inner {
- position: relative;
- top: 0;
- left: 0;
- display: block;
- width: 16px;
- height: 16px;
- direction: ltr;
- background-color: #fff;
- border: 1px solid #d9d9d9;
- border-radius: 2px;
- border-collapse: separate;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
-}
-.ant-tree-checkbox-inner::after {
- position: absolute;
- top: 50%;
- left: 22%;
- display: table;
- width: 5.71428571px;
- height: 9.14285714px;
- border: 2px solid #fff;
- border-top: 0;
- border-left: 0;
- -webkit-transform: rotate(45deg) scale(0) translate(-50%, -50%);
- transform: rotate(45deg) scale(0) translate(-50%, -50%);
- opacity: 0;
- -webkit-transition: all 0.1s cubic-bezier(0.71, -0.46, 0.88, 0.6), opacity 0.1s;
- transition: all 0.1s cubic-bezier(0.71, -0.46, 0.88, 0.6), opacity 0.1s;
- content: ' ';
-}
-.ant-tree-checkbox-input {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- z-index: 1;
- width: 100%;
- height: 100%;
- cursor: pointer;
- opacity: 0;
-}
-.ant-tree-checkbox-checked .ant-tree-checkbox-inner::after {
- position: absolute;
- display: table;
- border: 2px solid #fff;
- border-top: 0;
- border-left: 0;
- -webkit-transform: rotate(45deg) scale(1) translate(-50%, -50%);
- transform: rotate(45deg) scale(1) translate(-50%, -50%);
- opacity: 1;
- -webkit-transition: all 0.2s cubic-bezier(0.12, 0.4, 0.29, 1.46) 0.1s;
- transition: all 0.2s cubic-bezier(0.12, 0.4, 0.29, 1.46) 0.1s;
- content: ' ';
-}
-.ant-tree-checkbox-checked .ant-tree-checkbox-inner {
- background-color: #1890ff;
- border-color: #1890ff;
-}
-.ant-tree-checkbox-disabled {
- cursor: not-allowed;
-}
-.ant-tree-checkbox-disabled.ant-tree-checkbox-checked .ant-tree-checkbox-inner::after {
- border-color: rgba(0, 0, 0, 0.25);
- -webkit-animation-name: none;
- animation-name: none;
-}
-.ant-tree-checkbox-disabled .ant-tree-checkbox-input {
- cursor: not-allowed;
-}
-.ant-tree-checkbox-disabled .ant-tree-checkbox-inner {
- background-color: #f5f5f5;
- border-color: #d9d9d9 !important;
-}
-.ant-tree-checkbox-disabled .ant-tree-checkbox-inner::after {
- border-color: #f5f5f5;
- border-collapse: separate;
- -webkit-animation-name: none;
- animation-name: none;
-}
-.ant-tree-checkbox-disabled + span {
- color: rgba(0, 0, 0, 0.25);
- cursor: not-allowed;
-}
-.ant-tree-checkbox-disabled:hover::after,
-.ant-tree-checkbox-wrapper:hover .ant-tree-checkbox-disabled::after {
- visibility: hidden;
-}
-.ant-tree-checkbox-wrapper {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- display: inline-block;
- line-height: unset;
- cursor: pointer;
-}
-.ant-tree-checkbox-wrapper.ant-tree-checkbox-wrapper-disabled {
- cursor: not-allowed;
-}
-.ant-tree-checkbox-wrapper + .ant-tree-checkbox-wrapper {
- margin-left: 8px;
-}
-.ant-tree-checkbox + span {
- padding-right: 8px;
- padding-left: 8px;
-}
-.ant-tree-checkbox-group {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- display: inline-block;
-}
-.ant-tree-checkbox-group-item {
- display: inline-block;
- margin-right: 8px;
-}
-.ant-tree-checkbox-group-item:last-child {
- margin-right: 0;
-}
-.ant-tree-checkbox-group-item + .ant-tree-checkbox-group-item {
- margin-left: 0;
-}
-.ant-tree-checkbox-indeterminate .ant-tree-checkbox-inner {
- background-color: #fff;
- border-color: #d9d9d9;
-}
-.ant-tree-checkbox-indeterminate .ant-tree-checkbox-inner::after {
- top: 50%;
- left: 50%;
- width: 8px;
- height: 8px;
- background-color: #1890ff;
- border: 0;
- -webkit-transform: translate(-50%, -50%) scale(1);
- transform: translate(-50%, -50%) scale(1);
- opacity: 1;
- content: ' ';
-}
-.ant-tree-checkbox-indeterminate.ant-tree-checkbox-disabled .ant-tree-checkbox-inner::after {
- background-color: rgba(0, 0, 0, 0.25);
- border-color: rgba(0, 0, 0, 0.25);
-}
-.ant-tree {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- background: #fff;
- border-radius: 2px;
- -webkit-transition: background-color 0.3s;
- transition: background-color 0.3s;
-}
-.ant-tree-focused:not(:hover):not(.ant-tree-active-focused) {
- background: #e6f7ff;
-}
-.ant-tree-list-holder-inner {
- -webkit-box-align: start;
- -ms-flex-align: start;
- align-items: flex-start;
-}
-.ant-tree.ant-tree-block-node .ant-tree-list-holder-inner {
- -webkit-box-align: stretch;
- -ms-flex-align: stretch;
- align-items: stretch;
-}
-.ant-tree.ant-tree-block-node .ant-tree-list-holder-inner .ant-tree-node-content-wrapper {
- -webkit-box-flex: 1;
- -ms-flex: auto;
- flex: auto;
-}
-.ant-tree .ant-tree-treenode {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: start;
- -ms-flex-align: start;
- align-items: flex-start;
- padding: 0 0 4px 0;
- outline: none;
-}
-.ant-tree .ant-tree-treenode-disabled .ant-tree-node-content-wrapper {
- color: rgba(0, 0, 0, 0.25);
- cursor: not-allowed;
-}
-.ant-tree .ant-tree-treenode-disabled .ant-tree-node-content-wrapper:hover {
- background: transparent;
-}
-.ant-tree .ant-tree-treenode-active .ant-tree-node-content-wrapper {
- background: #f5f5f5;
-}
-.ant-tree-indent {
- -ms-flex-item-align: stretch;
- align-self: stretch;
- white-space: nowrap;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-.ant-tree-indent-unit {
- display: inline-block;
- width: 24px;
-}
-.ant-tree .ant-tree-switcher {
- -webkit-box-flex: 0;
- -ms-flex: none;
- flex: none;
- width: 24px;
- height: 24px;
- margin: 0;
- line-height: 24px;
- text-align: center;
- cursor: pointer;
-}
-.ant-tree .ant-tree-switcher .ant-tree-switcher-icon,
-.ant-tree .ant-tree-switcher .ant-select-tree-switcher-icon {
- font-size: 10px;
- display: inline-block;
- vertical-align: baseline;
-}
-.ant-tree .ant-tree-switcher .ant-tree-switcher-icon svg,
-.ant-tree .ant-tree-switcher .ant-select-tree-switcher-icon svg {
- -webkit-transition: -webkit-transform 0.3s;
- transition: -webkit-transform 0.3s;
- transition: transform 0.3s;
- transition: transform 0.3s, -webkit-transform 0.3s;
-}
-.ant-tree .ant-tree-switcher-noop {
- cursor: default;
-}
-.ant-tree .ant-tree-switcher_close .ant-tree-switcher-icon svg {
- -webkit-transform: rotate(-90deg);
- transform: rotate(-90deg);
-}
-.ant-tree .ant-tree-switcher-loading-icon {
- color: #1890ff;
-}
-.ant-tree .ant-tree-switcher-leaf-line {
- z-index: 1;
- display: inline-block;
- width: 100%;
- height: 100%;
-}
-.ant-tree .ant-tree-switcher-leaf-line::before {
- position: absolute;
- height: 24px;
- margin-left: -1px;
- border-left: 1px solid #d9d9d9;
- content: ' ';
-}
-.ant-tree .ant-tree-switcher-leaf-line::after {
- position: absolute;
- width: 10px;
- height: 14px;
- margin-left: -1px;
- border-bottom: 1px solid #d9d9d9;
- content: ' ';
-}
-.ant-tree .ant-tree-checkbox {
- top: initial;
- margin: 4px 8px 0 0;
-}
-.ant-tree .ant-tree-node-content-wrapper {
- min-height: 24px;
- margin: 0;
- padding: 0 4px;
- color: inherit;
- line-height: 24px;
- background: transparent;
- border-radius: 2px;
- cursor: pointer;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
-}
-.ant-tree .ant-tree-node-content-wrapper:hover {
- background-color: #f5f5f5;
-}
-.ant-tree .ant-tree-node-content-wrapper.ant-tree-node-selected {
- background-color: #bae7ff;
-}
-.ant-tree .ant-tree-node-content-wrapper .ant-tree-iconEle {
- display: inline-block;
- width: 24px;
- height: 24px;
- line-height: 24px;
- text-align: center;
- vertical-align: top;
-}
-.ant-tree .ant-tree-node-content-wrapper .ant-tree-iconEle:empty {
- display: none;
-}
-.ant-tree-node-content-wrapper[draggable='true'] {
- line-height: 20px;
- border-top: 2px transparent solid;
- border-bottom: 2px transparent solid;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-.ant-tree .ant-tree-treenode.drag-over > [draggable] {
- color: white;
- background-color: #1890ff;
- opacity: 0.8;
-}
-.ant-tree .ant-tree-treenode.drag-over-gap-top > [draggable] {
- border-top-color: #1890ff;
-}
-.ant-tree .ant-tree-treenode.drag-over-gap-bottom > [draggable] {
- border-bottom-color: #1890ff;
-}
-.ant-tree-show-line {
- /* Motion should hide line of measure */
-}
-.ant-tree-show-line .ant-tree-indent-unit {
- position: relative;
- height: 100%;
-}
-.ant-tree-show-line .ant-tree-indent-unit::before {
- position: absolute;
- top: calc(100% - 4px);
- right: -12px;
- bottom: -28px;
- border-right: 1px solid #d9d9d9;
- content: '';
-}
-.ant-tree-show-line .ant-tree-indent-unit-end::before {
- display: none;
-}
-.ant-tree-show-line .ant-tree-treenode-motion:not(.ant-motion-collapse-leave):not(.ant-motion-collapse-appear-active) .ant-tree-indent-unit::before {
- display: none;
-}
-.ant-tree-show-line .ant-tree-switcher {
- z-index: 1;
- background: #fff;
-}
-.ant-tree-rtl {
- direction: rtl;
-}
-.ant-tree .ant-tree-treenode-rtl {
- direction: rtl;
-}
-.ant-tree-rtl.ant-tree .ant-tree-switcher_close .ant-tree-switcher-icon svg {
- -webkit-transform: rotate(90deg);
- transform: rotate(90deg);
-}
-.ant-tree-rtl.ant-tree-show-line .ant-tree-indent-unit::before {
- right: auto;
- left: -12px;
- border-right: none;
- border-left: 1px solid #d9d9d9;
-}
-.ant-tree-rtl.ant-tree .ant-tree-checkbox {
- margin: 4px 0 0 8px;
-}
-.ant-tree-select-dropdown-rtl .ant-select-tree .ant-select-tree-checkbox {
- margin: 4px 0 0 8px;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-typography {
- color: rgba(0, 0, 0, 0.65);
- overflow-wrap: break-word;
-}
-.ant-typography.ant-typography-secondary {
- color: rgba(0, 0, 0, 0.45);
-}
-.ant-typography.ant-typography-warning {
- color: #faad14;
-}
-.ant-typography.ant-typography-danger {
- color: #ff4d4f;
-}
-.ant-typography.ant-typography-disabled {
- color: rgba(0, 0, 0, 0.25);
- cursor: not-allowed;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-div.ant-typography,
-.ant-typography p {
- margin-bottom: 1em;
-}
-h1.ant-typography,
-.ant-typography h1 {
- margin-bottom: 0.5em;
- color: rgba(0, 0, 0, 0.85);
- font-weight: 600;
- font-size: 38px;
- line-height: 1.23;
-}
-h2.ant-typography,
-.ant-typography h2 {
- margin-bottom: 0.5em;
- color: rgba(0, 0, 0, 0.85);
- font-weight: 600;
- font-size: 30px;
- line-height: 1.35;
-}
-h3.ant-typography,
-.ant-typography h3 {
- margin-bottom: 0.5em;
- color: rgba(0, 0, 0, 0.85);
- font-weight: 600;
- font-size: 24px;
- line-height: 1.35;
-}
-h4.ant-typography,
-.ant-typography h4 {
- margin-bottom: 0.5em;
- color: rgba(0, 0, 0, 0.85);
- font-weight: 600;
- font-size: 20px;
- line-height: 1.4;
-}
-.ant-typography + h1.ant-typography,
-.ant-typography + h2.ant-typography,
-.ant-typography + h3.ant-typography,
-.ant-typography + h4.ant-typography {
- margin-top: 1.2em;
-}
-.ant-typography div + h1,
-.ant-typography ul + h1,
-.ant-typography li + h1,
-.ant-typography p + h1,
-.ant-typography h1 + h1,
-.ant-typography h2 + h1,
-.ant-typography h3 + h1,
-.ant-typography h4 + h1,
-.ant-typography div + h2,
-.ant-typography ul + h2,
-.ant-typography li + h2,
-.ant-typography p + h2,
-.ant-typography h1 + h2,
-.ant-typography h2 + h2,
-.ant-typography h3 + h2,
-.ant-typography h4 + h2,
-.ant-typography div + h3,
-.ant-typography ul + h3,
-.ant-typography li + h3,
-.ant-typography p + h3,
-.ant-typography h1 + h3,
-.ant-typography h2 + h3,
-.ant-typography h3 + h3,
-.ant-typography h4 + h3,
-.ant-typography div + h4,
-.ant-typography ul + h4,
-.ant-typography li + h4,
-.ant-typography p + h4,
-.ant-typography h1 + h4,
-.ant-typography h2 + h4,
-.ant-typography h3 + h4,
-.ant-typography h4 + h4 {
- margin-top: 1.2em;
-}
-a.ant-typography-ellipsis,
-span.ant-typography-ellipsis {
- display: inline-block;
-}
-a.ant-typography,
-.ant-typography a {
- color: #1890ff;
- text-decoration: none;
- outline: none;
- cursor: pointer;
- -webkit-transition: color 0.3s;
- transition: color 0.3s;
-}
-a.ant-typography:focus,
-.ant-typography a:focus,
-a.ant-typography:hover,
-.ant-typography a:hover {
- color: #40a9ff;
-}
-a.ant-typography:active,
-.ant-typography a:active {
- color: #096dd9;
-}
-a.ant-typography:active,
-.ant-typography a:active,
-a.ant-typography:hover,
-.ant-typography a:hover {
- text-decoration: none;
-}
-a.ant-typography[disabled],
-.ant-typography a[disabled] {
- color: rgba(0, 0, 0, 0.25);
- cursor: not-allowed;
- pointer-events: none;
-}
-.ant-typography code {
- margin: 0 0.2em;
- padding: 0.2em 0.4em 0.1em;
- font-size: 85%;
- background: rgba(150, 150, 150, 0.1);
- border: 1px solid rgba(100, 100, 100, 0.2);
- border-radius: 3px;
-}
-.ant-typography kbd {
- margin: 0 0.2em;
- padding: 0.15em 0.4em 0.1em;
- font-size: 90%;
- background: rgba(150, 150, 150, 0.06);
- border: 1px solid rgba(100, 100, 100, 0.2);
- border-bottom-width: 2px;
- border-radius: 3px;
-}
-.ant-typography mark {
- padding: 0;
- background-color: #ffe58f;
-}
-.ant-typography u,
-.ant-typography ins {
- text-decoration: underline;
- -webkit-text-decoration-skip: ink;
- text-decoration-skip-ink: auto;
-}
-.ant-typography s,
-.ant-typography del {
- text-decoration: line-through;
-}
-.ant-typography strong {
- font-weight: 600;
-}
-.ant-typography-expand,
-.ant-typography-edit,
-.ant-typography-copy {
- color: #1890ff;
- text-decoration: none;
- outline: none;
- cursor: pointer;
- -webkit-transition: color 0.3s;
- transition: color 0.3s;
- margin-left: 4px;
-}
-.ant-typography-expand:focus,
-.ant-typography-edit:focus,
-.ant-typography-copy:focus,
-.ant-typography-expand:hover,
-.ant-typography-edit:hover,
-.ant-typography-copy:hover {
- color: #40a9ff;
-}
-.ant-typography-expand:active,
-.ant-typography-edit:active,
-.ant-typography-copy:active {
- color: #096dd9;
-}
-.ant-typography-copy-success,
-.ant-typography-copy-success:hover,
-.ant-typography-copy-success:focus {
- color: #52c41a;
-}
-.ant-typography-edit-content {
- position: relative;
-}
-div.ant-typography-edit-content {
- left: -12px;
- margin-top: -5px;
- margin-bottom: calc(1em - 4px - 2px);
-}
-.ant-typography-edit-content-confirm {
- position: absolute;
- right: 10px;
- bottom: 8px;
- color: rgba(0, 0, 0, 0.45);
- pointer-events: none;
-}
-.ant-typography-edit-content textarea {
- -moz-transition: none;
-}
-.ant-typography ul,
-.ant-typography ol {
- margin: 0 0 1em 0;
- padding: 0;
-}
-.ant-typography ul li,
-.ant-typography ol li {
- margin: 0 0 0 20px;
- padding: 0 0 0 4px;
-}
-.ant-typography ul {
- list-style-type: circle;
-}
-.ant-typography ul ul {
- list-style-type: disc;
-}
-.ant-typography ol {
- list-style-type: decimal;
-}
-.ant-typography-ellipsis-single-line {
- overflow: hidden;
- white-space: nowrap;
- text-overflow: ellipsis;
-}
-a.ant-typography-ellipsis-single-line,
-span.ant-typography-ellipsis-single-line {
- vertical-align: bottom;
-}
-.ant-typography-ellipsis-multiple-line {
- display: -webkit-box;
- -webkit-line-clamp: 3;
- /*! autoprefixer: ignore next */
- -webkit-box-orient: vertical;
- overflow: hidden;
-}
-.ant-typography-rtl {
- direction: rtl;
-}
-.ant-typography-rtl .ant-typography-expand,
-.ant-typography-rtl .ant-typography-edit,
-.ant-typography-rtl .ant-typography-copy {
- margin-right: 4px;
- margin-left: 0;
-}
-.ant-typography-rtl .ant-typography-expand {
- float: left;
-}
-div.ant-typography-edit-content.ant-typography-rtl {
- right: -12px;
- left: auto;
-}
-.ant-typography-rtl .ant-typography-edit-content-confirm {
- right: auto;
- left: 10px;
-}
-.ant-typography-rtl.ant-typography ul li,
-.ant-typography-rtl.ant-typography ol li {
- margin: 0 20px 0 0;
- padding: 0 4px 0 0;
-}
-
-/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
-/* stylelint-disable no-duplicate-selectors */
-/* stylelint-disable */
-/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
-.ant-upload {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- line-height: 1.5715;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- outline: 0;
-}
-.ant-upload p {
- margin: 0;
-}
-.ant-upload-btn {
- display: block;
- width: 100%;
- outline: none;
-}
-.ant-upload input[type='file'] {
- cursor: pointer;
-}
-.ant-upload.ant-upload-select {
- display: inline-block;
-}
-.ant-upload.ant-upload-disabled {
- cursor: not-allowed;
-}
-.ant-upload.ant-upload-select-picture-card {
- display: table;
- float: left;
- width: 104px;
- height: 104px;
- margin-right: 8px;
- margin-bottom: 8px;
- text-align: center;
- vertical-align: top;
- background-color: #fafafa;
- border: 1px dashed #d9d9d9;
- border-radius: 2px;
- cursor: pointer;
- -webkit-transition: border-color 0.3s ease;
- transition: border-color 0.3s ease;
-}
-.ant-upload.ant-upload-select-picture-card > .ant-upload {
- display: table-cell;
- width: 100%;
- height: 100%;
- padding: 8px;
- text-align: center;
- vertical-align: middle;
-}
-.ant-upload.ant-upload-select-picture-card:hover {
- border-color: #1890ff;
-}
-.ant-upload-disabled.ant-upload.ant-upload-select-picture-card:hover {
- border-color: #d9d9d9;
-}
-.ant-upload.ant-upload-drag {
- position: relative;
- width: 100%;
- height: 100%;
- text-align: center;
- background: #fafafa;
- border: 1px dashed #d9d9d9;
- border-radius: 2px;
- cursor: pointer;
- -webkit-transition: border-color 0.3s;
- transition: border-color 0.3s;
-}
-.ant-upload.ant-upload-drag .ant-upload {
- padding: 16px 0;
-}
-.ant-upload.ant-upload-drag.ant-upload-drag-hover:not(.ant-upload-disabled) {
- border-color: #096dd9;
-}
-.ant-upload.ant-upload-drag.ant-upload-disabled {
- cursor: not-allowed;
-}
-.ant-upload.ant-upload-drag .ant-upload-btn {
- display: table;
- height: 100%;
-}
-.ant-upload.ant-upload-drag .ant-upload-drag-container {
- display: table-cell;
- vertical-align: middle;
-}
-.ant-upload.ant-upload-drag:not(.ant-upload-disabled):hover {
- border-color: #40a9ff;
-}
-.ant-upload.ant-upload-drag p.ant-upload-drag-icon {
- margin-bottom: 20px;
-}
-.ant-upload.ant-upload-drag p.ant-upload-drag-icon .anticon {
- color: #40a9ff;
- font-size: 48px;
-}
-.ant-upload.ant-upload-drag p.ant-upload-text {
- margin: 0 0 4px;
- color: rgba(0, 0, 0, 0.85);
- font-size: 16px;
-}
-.ant-upload.ant-upload-drag p.ant-upload-hint {
- color: rgba(0, 0, 0, 0.45);
- font-size: 14px;
-}
-.ant-upload.ant-upload-drag .anticon-plus {
- color: rgba(0, 0, 0, 0.25);
- font-size: 30px;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
-}
-.ant-upload.ant-upload-drag .anticon-plus:hover {
- color: rgba(0, 0, 0, 0.45);
-}
-.ant-upload.ant-upload-drag:hover .anticon-plus {
- color: rgba(0, 0, 0, 0.45);
-}
-.ant-upload-picture-card-wrapper {
- display: inline-block;
- width: 100%;
-}
-.ant-upload-picture-card-wrapper::before {
- display: table;
- content: '';
-}
-.ant-upload-picture-card-wrapper::after {
- display: table;
- clear: both;
- content: '';
-}
-.ant-upload-list {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- color: rgba(0, 0, 0, 0.65);
- font-size: 14px;
- font-variant: tabular-nums;
- list-style: none;
- -webkit-font-feature-settings: 'tnum';
- font-feature-settings: 'tnum';
- line-height: 1.5715;
-}
-.ant-upload-list::before {
- display: table;
- content: '';
-}
-.ant-upload-list::after {
- display: table;
- clear: both;
- content: '';
-}
-.ant-upload-list-item-list-type-text:hover .ant-upload-list-item-name-icon-count-1 {
- padding-right: 14px;
-}
-.ant-upload-list-item-list-type-text:hover .ant-upload-list-item-name-icon-count-2 {
- padding-right: 28px;
-}
-.ant-upload-list-item {
- position: relative;
- height: 22.001px;
- margin-top: 8px;
- font-size: 14px;
-}
-.ant-upload-list-item-name {
- display: inline-block;
- width: 100%;
- padding-left: 22px;
- overflow: hidden;
- line-height: 1.5715;
- white-space: nowrap;
- text-overflow: ellipsis;
-}
-.ant-upload-list-item-name-icon-count-1 {
- padding-right: 14px;
-}
-.ant-upload-list-item-card-actions {
- position: absolute;
- right: 0;
-}
-.ant-upload-list-item-card-actions-btn {
- opacity: 0;
-}
-.ant-upload-list-item-card-actions-btn.ant-btn-sm {
- height: 20px;
- line-height: 1;
-}
-.ant-upload-list-item-card-actions.picture {
- top: 22px;
- line-height: 0;
-}
-.ant-upload-list-item-card-actions-btn:focus,
-.ant-upload-list-item-card-actions.picture .ant-upload-list-item-card-actions-btn {
- opacity: 1;
-}
-.ant-upload-list-item-card-actions .anticon {
- color: rgba(0, 0, 0, 0.45);
-}
-.ant-upload-list-item-info {
- height: 100%;
- padding: 0 12px 0 4px;
- -webkit-transition: background-color 0.3s;
- transition: background-color 0.3s;
-}
-.ant-upload-list-item-info > span {
- display: block;
- width: 100%;
- height: 100%;
-}
-.ant-upload-list-item-info .anticon-loading .anticon,
-.ant-upload-list-item-info .ant-upload-text-icon .anticon {
- position: absolute;
- top: 5px;
- color: rgba(0, 0, 0, 0.45);
- font-size: 14px;
-}
-.ant-upload-list-item .anticon-close {
- display: inline-block;
- font-size: 10px;
- position: absolute;
- top: 6px;
- right: 4px;
- color: rgba(0, 0, 0, 0.45);
- line-height: 0;
- cursor: pointer;
- opacity: 0;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
-}
-.ant-upload-list-item .anticon-close:hover {
- color: rgba(0, 0, 0, 0.65);
-}
-.ant-upload-list-item:hover .ant-upload-list-item-info {
- background-color: #f5f5f5;
-}
-.ant-upload-list-item:hover .anticon-close {
- opacity: 1;
-}
-.ant-upload-list-item:hover .ant-upload-list-item-card-actions-btn {
- opacity: 1;
-}
-.ant-upload-list-item-error,
-.ant-upload-list-item-error .ant-upload-text-icon > .anticon,
-.ant-upload-list-item-error .ant-upload-list-item-name {
- color: #ff4d4f;
-}
-.ant-upload-list-item-error .ant-upload-list-item-card-actions .anticon {
- color: #ff4d4f;
-}
-.ant-upload-list-item-error .ant-upload-list-item-card-actions-btn {
- opacity: 1;
-}
-.ant-upload-list-item-progress {
- position: absolute;
- bottom: -12px;
- width: 100%;
- padding-left: 26px;
- font-size: 14px;
- line-height: 0;
-}
-.ant-upload-list-picture .ant-upload-list-item,
-.ant-upload-list-picture-card .ant-upload-list-item {
- position: relative;
- height: 66px;
- padding: 8px;
- border: 1px solid #d9d9d9;
- border-radius: 2px;
-}
-.ant-upload-list-picture .ant-upload-list-item:hover,
-.ant-upload-list-picture-card .ant-upload-list-item:hover {
- background: transparent;
-}
-.ant-upload-list-picture .ant-upload-list-item-error,
-.ant-upload-list-picture-card .ant-upload-list-item-error {
- border-color: #ff4d4f;
-}
-.ant-upload-list-picture .ant-upload-list-item-info,
-.ant-upload-list-picture-card .ant-upload-list-item-info {
- padding: 0;
-}
-.ant-upload-list-picture .ant-upload-list-item:hover .ant-upload-list-item-info,
-.ant-upload-list-picture-card .ant-upload-list-item:hover .ant-upload-list-item-info {
- background: transparent;
-}
-.ant-upload-list-picture .ant-upload-list-item-uploading,
-.ant-upload-list-picture-card .ant-upload-list-item-uploading {
- border-style: dashed;
-}
-.ant-upload-list-picture .ant-upload-list-item-thumbnail,
-.ant-upload-list-picture-card .ant-upload-list-item-thumbnail {
- position: absolute;
- top: 8px;
- left: 8px;
- width: 48px;
- height: 48px;
- line-height: 54px;
- text-align: center;
- opacity: 0.8;
-}
-.ant-upload-list-picture .ant-upload-list-item-thumbnail .anticon,
-.ant-upload-list-picture-card .ant-upload-list-item-thumbnail .anticon {
- font-size: 26px;
-}
-.ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#e6f7ff'],
-.ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#e6f7ff'] {
- fill: #fff2f0;
-}
-.ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#1890ff'],
-.ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#1890ff'] {
- fill: #ff4d4f;
-}
-.ant-upload-list-picture .ant-upload-list-item-icon,
-.ant-upload-list-picture-card .ant-upload-list-item-icon {
- position: absolute;
- top: 50%;
- left: 50%;
- font-size: 26px;
- -webkit-transform: translate(-50%, -50%);
- transform: translate(-50%, -50%);
-}
-.ant-upload-list-picture .ant-upload-list-item-icon .anticon,
-.ant-upload-list-picture-card .ant-upload-list-item-icon .anticon {
- font-size: 26px;
-}
-.ant-upload-list-picture .ant-upload-list-item-image,
-.ant-upload-list-picture-card .ant-upload-list-item-image {
- max-width: 100%;
-}
-.ant-upload-list-picture .ant-upload-list-item-thumbnail img,
-.ant-upload-list-picture-card .ant-upload-list-item-thumbnail img {
- display: block;
- width: 48px;
- height: 48px;
- overflow: hidden;
-}
-.ant-upload-list-picture .ant-upload-list-item-name,
-.ant-upload-list-picture-card .ant-upload-list-item-name {
- display: inline-block;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- max-width: 100%;
- margin: 0 0 0 8px;
- padding-right: 8px;
- padding-left: 48px;
- overflow: hidden;
- line-height: 44px;
- white-space: nowrap;
- text-overflow: ellipsis;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
-}
-.ant-upload-list-picture .ant-upload-list-item-name-icon-count-1,
-.ant-upload-list-picture-card .ant-upload-list-item-name-icon-count-1 {
- padding-right: 18px;
-}
-.ant-upload-list-picture .ant-upload-list-item-name-icon-count-2,
-.ant-upload-list-picture-card .ant-upload-list-item-name-icon-count-2 {
- padding-right: 36px;
-}
-.ant-upload-list-picture .ant-upload-list-item-uploading .ant-upload-list-item-name,
-.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-name {
- line-height: 28px;
-}
-.ant-upload-list-picture .ant-upload-list-item-progress,
-.ant-upload-list-picture-card .ant-upload-list-item-progress {
- bottom: 14px;
- width: calc(100% - 24px);
- margin-top: 0;
- padding-left: 56px;
-}
-.ant-upload-list-picture .anticon-close,
-.ant-upload-list-picture-card .anticon-close {
- position: absolute;
- top: 8px;
- right: 8px;
- line-height: 1;
- opacity: 1;
-}
-.ant-upload-list-picture-card.ant-upload-list::after {
- display: none;
-}
-.ant-upload-list-picture-card-container {
- float: left;
- width: 104px;
- height: 104px;
- margin: 0 8px 8px 0;
-}
-.ant-upload-list-picture-card .ant-upload-list-item {
- float: left;
- width: 104px;
- height: 104px;
- margin: 0 8px 8px 0;
-}
-.ant-upload-list-picture-card .ant-upload-list-item-info {
- position: relative;
- height: 100%;
- overflow: hidden;
-}
-.ant-upload-list-picture-card .ant-upload-list-item-info::before {
- position: absolute;
- z-index: 1;
- width: 100%;
- height: 100%;
- background-color: rgba(0, 0, 0, 0.5);
- opacity: 0;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
- content: ' ';
-}
-.ant-upload-list-picture-card .ant-upload-list-item:hover .ant-upload-list-item-info::before {
- opacity: 1;
-}
-.ant-upload-list-picture-card .ant-upload-list-item-actions {
- position: absolute;
- top: 50%;
- left: 50%;
- z-index: 10;
- white-space: nowrap;
- -webkit-transform: translate(-50%, -50%);
- transform: translate(-50%, -50%);
- opacity: 0;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
-}
-.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye,
-.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-download,
-.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete {
- z-index: 10;
- width: 16px;
- margin: 0 4px;
- color: rgba(255, 255, 255, 0.85);
- font-size: 16px;
- cursor: pointer;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
-}
-.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye:hover,
-.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-download:hover,
-.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete:hover {
- color: #fff;
-}
-.ant-upload-list-picture-card .ant-upload-list-item-info:hover + .ant-upload-list-item-actions,
-.ant-upload-list-picture-card .ant-upload-list-item-actions:hover {
- opacity: 1;
-}
-.ant-upload-list-picture-card .ant-upload-list-item-thumbnail,
-.ant-upload-list-picture-card .ant-upload-list-item-thumbnail img {
- position: static;
- display: block;
- width: 100%;
- height: 100%;
- -o-object-fit: cover;
- object-fit: cover;
-}
-.ant-upload-list-picture-card .ant-upload-list-item-name {
- display: none;
- margin: 8px 0 0;
- padding: 0;
- line-height: 1.5715;
- text-align: center;
-}
-.ant-upload-list-picture-card .ant-upload-list-item-file + .ant-upload-list-item-name {
- position: absolute;
- bottom: 10px;
- display: block;
-}
-.ant-upload-list-picture-card .ant-upload-list-item-uploading.ant-upload-list-item {
- background-color: #fafafa;
-}
-.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info {
- height: auto;
-}
-.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info::before,
-.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info .anticon-eye,
-.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info .anticon-delete {
- display: none;
-}
-.ant-upload-list-picture-card .ant-upload-list-item-progress {
- bottom: 32px;
- padding-left: 0;
-}
-.ant-upload-list .ant-upload-success-icon {
- color: #52c41a;
- font-weight: bold;
-}
-.ant-upload-list .ant-upload-animate-enter,
-.ant-upload-list .ant-upload-animate-leave,
-.ant-upload-list .ant-upload-animate-inline-enter,
-.ant-upload-list .ant-upload-animate-inline-leave {
- -webkit-animation-duration: 0.3s;
- animation-duration: 0.3s;
- -webkit-animation-fill-mode: cubic-bezier(0.78, 0.14, 0.15, 0.86);
- animation-fill-mode: cubic-bezier(0.78, 0.14, 0.15, 0.86);
-}
-.ant-upload-list .ant-upload-animate-enter {
- -webkit-animation-name: uploadAnimateIn;
- animation-name: uploadAnimateIn;
-}
-.ant-upload-list .ant-upload-animate-leave {
- -webkit-animation-name: uploadAnimateOut;
- animation-name: uploadAnimateOut;
-}
-.ant-upload-list .ant-upload-animate-inline-enter {
- -webkit-animation-name: uploadAnimateInlineIn;
- animation-name: uploadAnimateInlineIn;
-}
-.ant-upload-list .ant-upload-animate-inline-leave {
- -webkit-animation-name: uploadAnimateInlineOut;
- animation-name: uploadAnimateInlineOut;
-}
-@-webkit-keyframes uploadAnimateIn {
- from {
- height: 0;
- margin: 0;
- padding: 0;
- opacity: 0;
- }
-}
-@keyframes uploadAnimateIn {
- from {
- height: 0;
- margin: 0;
- padding: 0;
- opacity: 0;
- }
-}
-@-webkit-keyframes uploadAnimateOut {
- to {
- height: 0;
- margin: 0;
- padding: 0;
- opacity: 0;
- }
-}
-@keyframes uploadAnimateOut {
- to {
- height: 0;
- margin: 0;
- padding: 0;
- opacity: 0;
- }
-}
-@-webkit-keyframes uploadAnimateInlineIn {
- from {
- width: 0;
- height: 0;
- margin: 0;
- padding: 0;
- opacity: 0;
- }
-}
-@keyframes uploadAnimateInlineIn {
- from {
- width: 0;
- height: 0;
- margin: 0;
- padding: 0;
- opacity: 0;
- }
-}
-@-webkit-keyframes uploadAnimateInlineOut {
- to {
- width: 0;
- height: 0;
- margin: 0;
- padding: 0;
- opacity: 0;
- }
-}
-@keyframes uploadAnimateInlineOut {
- to {
- width: 0;
- height: 0;
- margin: 0;
- padding: 0;
- opacity: 0;
- }
-}
-.ant-upload-rtl {
- direction: rtl;
-}
-.ant-upload-rtl.ant-upload.ant-upload-select-picture-card {
- float: right;
- margin-right: 0;
- margin-left: 8px;
-}
-.ant-upload-list-rtl {
- direction: rtl;
-}
-.ant-upload-list-rtl .ant-upload-list-item-list-type-text:hover .ant-upload-list-item-name-icon-count-1 {
- padding-right: 22px;
- padding-left: 14px;
-}
-.ant-upload-list-rtl .ant-upload-list-item-list-type-text:hover .ant-upload-list-item-name-icon-count-2 {
- padding-right: 22px;
- padding-left: 28px;
-}
-.ant-upload-list-rtl .ant-upload-list-item-name {
- padding-right: 22px;
- padding-left: 0;
-}
-.ant-upload-list-rtl .ant-upload-list-item-name-icon-count-1 {
- padding-left: 14px;
-}
-.ant-upload-list-rtl .ant-upload-list-item-card-actions {
- right: auto;
- left: 0;
-}
-.ant-upload-list-rtl .ant-upload-list-item-card-actions .anticon {
- padding-right: 0;
- padding-left: 5px;
-}
-.ant-upload-list-rtl .ant-upload-list-item-info {
- padding: 0 4px 0 12px;
-}
-.ant-upload-list-rtl .ant-upload-list-item .anticon-close {
- right: auto;
- left: 4px;
-}
-.ant-upload-list-rtl .ant-upload-list-item-error .ant-upload-list-item-card-actions .anticon {
- padding-right: 0;
- padding-left: 5px;
-}
-.ant-upload-list-rtl .ant-upload-list-item-progress {
- padding-right: 26px;
- padding-left: 0;
-}
-.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-thumbnail,
-.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-thumbnail {
- right: 8px;
- left: auto;
-}
-.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-icon,
-.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-icon {
- right: 50%;
- left: auto;
- -webkit-transform: translate(50%, -50%);
- transform: translate(50%, -50%);
-}
-.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-name,
-.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-name {
- margin: 0 8px 0 0;
- padding-right: 48px;
- padding-left: 8px;
-}
-.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-name-icon-count-1,
-.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-name-icon-count-1 {
- padding-right: 48px;
- padding-left: 18px;
-}
-.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-name-icon-count-2,
-.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-name-icon-count-2 {
- padding-right: 48px;
- padding-left: 36px;
-}
-.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-progress,
-.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-progress {
- padding-right: 56px;
- padding-left: 0;
-}
-.ant-upload-list-rtl.ant-upload-list-picture .anticon-close,
-.ant-upload-list-rtl.ant-upload-list-picture-card .anticon-close {
- right: auto;
- left: 8px;
-}
-.ant-upload-list-rtl .ant-upload-list-picture-card-container {
- float: right;
- margin: 0 0 8px 8px;
-}
-.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item {
- float: right;
- margin: 0 0 8px 8px;
-}
-.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-actions {
- right: 50%;
- left: auto;
- -webkit-transform: translate(50%, -50%);
- transform: translate(50%, -50%);
-}
-.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-file + .ant-upload-list-item-name {
- margin: 8px 0 0;
- padding: 0;
-}
-.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-info {
- padding: 0;
-}
-
-
-/*# sourceMappingURL=antd.css.map*/
\ No newline at end of file
diff --git a/electron/assets/icons/splash-robot-head-dock.png b/electron/assets/icons/splash-robot-head-dock.png
deleted file mode 100644
index fc2eadb05..000000000
Binary files a/electron/assets/icons/splash-robot-head-dock.png and /dev/null differ
diff --git a/electron/assets/icons/splash-robot-head.png b/electron/assets/icons/splash-robot-head.png
deleted file mode 100644
index d43fb2873..000000000
Binary files a/electron/assets/icons/splash-robot-head.png and /dev/null differ
diff --git a/electron/assets/icons/tray-logged-out.png b/electron/assets/icons/tray-logged-out.png
deleted file mode 100644
index 16311b50e..000000000
Binary files a/electron/assets/icons/tray-logged-out.png and /dev/null differ
diff --git a/electron/assets/icons/tray-low-gas.png b/electron/assets/icons/tray-low-gas.png
deleted file mode 100644
index 189b5db8b..000000000
Binary files a/electron/assets/icons/tray-low-gas.png and /dev/null differ
diff --git a/electron/assets/icons/tray-paused.png b/electron/assets/icons/tray-paused.png
deleted file mode 100644
index 86a3b1501..000000000
Binary files a/electron/assets/icons/tray-paused.png and /dev/null differ
diff --git a/electron/assets/icons/tray-running.png b/electron/assets/icons/tray-running.png
deleted file mode 100644
index ba2387c7a..000000000
Binary files a/electron/assets/icons/tray-running.png and /dev/null differ
diff --git a/electron/constants/index.js b/electron/constants/index.js
deleted file mode 100644
index 0d3c16db7..000000000
--- a/electron/constants/index.js
+++ /dev/null
@@ -1,55 +0,0 @@
-const os = require('os');
-const path = require('path');
-require('dotenv').config();
-
-const PORT_RANGE = { startPort: 39152, endPort: 65535 };
-const ERROR_ADDRESS_IN_USE = 'EADDRINUSE';
-
-// OS specific constants
-const isWindows = process.platform === 'win32';
-const isMac = process.platform === 'darwin';
-const isLinux = process.platform === 'linux';
-
-// Environment specific constants
-const isDev = process.env.NODE_ENV === 'development';
-const isProd = !isDev;
-
-// Paths
-const dotOperateDirectory = isProd
- ? path.join(os.homedir(), '.operate')
- : path.join(process.cwd(), '.operate');
-
-const paths = {
- dotOperateDirectory,
- servicesDir: path.join(dotOperateDirectory, 'services'),
- venvDir: path.join(dotOperateDirectory, 'venv'),
- tempDir: path.join(dotOperateDirectory, 'temp'),
- versionFile: path.join(dotOperateDirectory, 'version.txt'),
- cliLogFile: path.join(dotOperateDirectory, 'cli.log'),
- electronLogFile: path.join(dotOperateDirectory, 'electron.log'),
- nextLogFile: path.join(dotOperateDirectory, 'next.log'),
- osPearlTempDir: path.join(os.tmpdir(), 'pearl'),
-};
-
-// Publish options
-const publishOptions = {
- provider: 'github',
- owner: 'valory-xyz',
- repo: 'olas-operate-app',
- releaseType: 'draft',
- token: process.env.GH_TOKEN,
- private: false,
- publishAutoUpdate: false,
-};
-
-module.exports = {
- PORT_RANGE,
- ERROR_ADDRESS_IN_USE,
- isWindows,
- isMac,
- isLinux,
- isProd,
- isDev,
- publishOptions,
- paths,
-};
diff --git a/electron/entitlements.mac.plist b/electron/entitlements.mac.plist
deleted file mode 100644
index 33951f8be..000000000
--- a/electron/entitlements.mac.plist
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
- com.apple.security.cs.allow-dyld-environment-variables
-
- com.apple.security.cs.disable-library-validation
-
- com.apple.security.cs.allow-jit
-
- com.apple.security.cs.allow-unsigned-executable-memory
-
- com.apple.security.cs.debugger
-
- com.apple.security.network.client
-
- com.apple.security.network.server
-
- com.apple.security.files.user-selected.read-only
-
- com.apple.security.inherit
-
- com.apple.security.automation.apple-events
-
-
-
\ No newline at end of file
diff --git a/electron/icons.js b/electron/icons.js
deleted file mode 100644
index 7c6c72e66..000000000
--- a/electron/icons.js
+++ /dev/null
@@ -1,30 +0,0 @@
-const { nativeImage } = require('electron');
-
-const TRAY_ICONS_PATHS = {
- LOGGED_OUT: `${__dirname}/assets/icons/tray-logged-out.png`,
- LOW_GAS: `${__dirname}/assets/icons/tray-low-gas.png`,
- PAUSED: `${__dirname}/assets/icons/tray-paused.png`,
- RUNNING: `${__dirname}/assets/icons/tray-running.png`,
-};
-
-const TRAY_ICONS = {
- LOGGED_OUT: nativeImage.createFromPath(TRAY_ICONS_PATHS.LOGGED_OUT),
- LOW_GAS: nativeImage.createFromPath(TRAY_ICONS_PATHS.LOW_GAS),
- PAUSED: nativeImage.createFromPath(TRAY_ICONS_PATHS.PAUSED),
- RUNNING: nativeImage.createFromPath(TRAY_ICONS_PATHS.RUNNING),
-};
-
-try {
- if (process.platform === 'darwin') {
- // resize icons for macOS
- const size = { width: 16, height: 16 };
- TRAY_ICONS.LOGGED_OUT = TRAY_ICONS.LOGGED_OUT.resize(size);
- TRAY_ICONS.LOW_GAS = TRAY_ICONS.LOW_GAS.resize({ width: 16, height: 16 });
- TRAY_ICONS.PAUSED = TRAY_ICONS.PAUSED.resize({ width: 16, height: 16 });
- TRAY_ICONS.RUNNING = TRAY_ICONS.RUNNING.resize({ width: 16, height: 16 });
- }
-} catch (e) {
- console.log('Error resizing tray icons', e);
-}
-
-module.exports = { TRAY_ICONS_PATHS, TRAY_ICONS };
diff --git a/electron/install.js b/electron/install.js
deleted file mode 100644
index ac60b76b3..000000000
--- a/electron/install.js
+++ /dev/null
@@ -1,199 +0,0 @@
-// Installation helpers.
-const fs = require('fs');
-const os = require('os');
-const sudo = require('sudo-prompt');
-const process = require('process');
-const axios = require('axios');
-const { spawnSync } = require('child_process');
-const { logger } = require('./logger');
-
-const { paths } = require('./constants');
-
-/**
- * current version of the pearl release
- * - use "" (nothing as a suffix) for latest release candidate, for example "0.1.0rc26"
- * - use "alpha" for alpha release, for example "0.1.0rc26-alpha"
- */
-const OlasMiddlewareVersion = '0.1.0rc110';
-
-const Env = {
- ...process.env,
- PATH: `${process.env.PATH}:/opt/homebrew/bin:/usr/local/bin`,
- HOMEBREW_NO_AUTO_UPDATE: '1',
-};
-
-const SudoOptions = {
- name: 'Pearl',
- env: Env,
-};
-
-const TendermintUrls = {
- darwin: {
- x64: 'https://github.com/tendermint/tendermint/releases/download/v0.34.19/tendermint_0.34.19_darwin_amd64.tar.gz',
- arm64:
- 'https://github.com/tendermint/tendermint/releases/download/v0.34.19/tendermint_0.34.19_darwin_arm64.tar.gz',
- },
- linux: {
- x64: 'https://github.com/tendermint/tendermint/releases/download/v0.34.19/tendermint_0.34.19_linux_amd64.tar.gz',
- arm64:
- 'https://github.com/tendermint/tendermint/releases/download/v0.34.19/tendermint_0.34.19_linux_arm64.tar.gz',
- },
- win32: {
- x64: 'https://github.com/tendermint/tendermint/releases/download/v0.34.19/tendermint_0.34.19_windows_amd64.tar.gz',
- arm64:
- 'https://github.com/tendermint/tendermint/releases/download/v0.34.19/tendermint_0.34.19_windows_arm64.tar.gz',
- },
-};
-
-function getBinPath(command) {
- return spawnSync('/usr/bin/which', [command], { env: Env })
- .stdout?.toString()
- .trim();
-}
-
-function runCmdUnix(command, options) {
- logger.electron(`Running ${command} with options ${JSON.stringify(options)}`);
- let bin = getBinPath(command);
- if (!bin) {
- throw new Error(`Command ${command} not found; Path : ${Env.PATH}`);
- }
- let output = spawnSync(bin, options);
- if (output.error) {
- throw new Error(
- `Error running ${command} with options ${options};
- Error: ${output.error}; Stdout: ${output.stdout}; Stderr: ${output.stderr}`,
- );
- }
- logger.electron(`Executed ${command} ${options} with`);
- logger.electron(`===== stdout ===== \n${output.stdout}`);
- logger.electron(`===== stderr ===== \n${output.stderr}`);
-}
-
-function runSudoUnix(command, options) {
- let bin = getBinPath(command);
- if (!bin) {
- throw new Error(`Command ${command} not found`);
- }
- return new Promise(function (resolve, _reject) {
- sudo.exec(
- `${bin} ${options}`,
- SudoOptions,
- function (error, stdout, stderr) {
- let output = {
- error: error,
- stdout: stdout,
- stderr: stderr,
- };
- if (output.error) {
- throw new Error(
- `Error running ${command} with options ${options};
- Error: ${output.error}; Stdout: ${output.stdout}; Stderr: ${output.stderr}`,
- );
- }
- logger.electron(`Executed ${command} ${options} with`);
- logger.electron(`===== stdout ===== \n${output.stdout}`);
- logger.electron(`===== stderr ===== \n${output.stderr}`);
- resolve();
- },
- );
- });
-}
-
-function isTendermintInstalledUnix() {
- return Boolean(getBinPath('tendermint'));
-}
-
-async function downloadFile(url, dest) {
- const writer = fs.createWriteStream(dest);
- try {
- const response = await axios({
- url,
- method: 'GET',
- responseType: 'stream',
- });
- response.data.pipe(writer);
- return new Promise((resolve, reject) => {
- writer.on('finish', resolve);
- writer.on('error', reject);
- });
- } catch (err) {
- fs.unlink(dest, () => {}); // Delete the file if there is an error
- console.error('Error downloading the file:', err.message);
- }
-}
-
-async function installTendermintUnix() {
- logger.electron(`Installing tendermint for ${os.platform()}-${process.arch}`);
- const cwd = process.cwd();
- process.chdir(paths.tempDir);
-
- const url = TendermintUrls[os.platform()][process.arch];
-
- logger.electron(
- `Downloading ${url} to ${paths.tempDir}. This might take a while...`,
- );
- await downloadFile(url, `${paths.tempDir}/tendermint.tar.gz`);
-
- logger.electron(`Installing tendermint binary`);
- runCmdUnix('tar', ['-xvf', 'tendermint.tar.gz']);
-
- // TOFIX: Install tendermint in .operate instead of globally
- if (!Env.CI) {
- if (!fs.existsSync('/usr/local/bin')) {
- await runSudoUnix('mkdir', '/usr/local/bin');
- }
- await runSudoUnix(
- 'install',
- `${paths.tempDir}/tendermint /usr/local/bin/tendermint`,
- );
- }
- process.chdir(cwd);
-}
-
-function createDirectory(path) {
- if (fs.existsSync(path)) {
- return;
- }
- return new Promise((resolve, _reject) => {
- fs.mkdir(path, { recursive: true }, (error) => {
- resolve(!error);
- });
- });
-}
-
-/*******************************/
-// NOTE: "Installing" is string matched in loading.html to detect installation
-/*******************************/
-
-async function setupDarwin(ipcChannel) {
- logger.electron('Creating required directories');
- await createDirectory(`${paths.dotOperateDirectory}`);
- await createDirectory(`${paths.tempDir}`);
-
- logger.electron('Checking tendermint installation');
- if (!isTendermintInstalledUnix()) {
- ipcChannel.send('response', 'Installing Pearl Daemon');
- logger.electron('Installing tendermint');
- await installTendermintUnix();
- }
-}
-
-// TODO: Add Tendermint installation
-async function setupUbuntu(ipcChannel) {
- logger.electron('Creating required directories');
- await createDirectory(`${paths.dotOperateDirectory}`);
- await createDirectory(`${paths.tempDir}`);
-
- logger.electron('Checking tendermint installation');
- if (!isTendermintInstalledUnix()) {
- ipcChannel.send('response', 'Installing Pearl Daemon');
- logger.electron('Installing tendermint');
- await installTendermintUnix();
- }
-}
-
-module.exports = {
- setupDarwin,
- setupUbuntu,
- Env,
-};
diff --git a/electron/loading/index.html b/electron/loading/index.html
deleted file mode 100644
index 12e942969..000000000
--- a/electron/loading/index.html
+++ /dev/null
@@ -1,46 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/electron/loading/styles.css b/electron/loading/styles.css
deleted file mode 100644
index 641342b6c..000000000
--- a/electron/loading/styles.css
+++ /dev/null
@@ -1,26 +0,0 @@
-body {
- position: relative;
- display: flex;
- align-items: center;
- justify-content: center;
- width: 100%;
- height: 100%;
-}
-
-main {
- display: flex;
- flex-direction: column;
- gap: 10px;
- text-align: center;
- align-content: center;
-}
-
-.text {
- font-size: 18px;
-}
-
-img {
- margin: 0 auto;
- width: 150px !important;
- height: 150px !important;
-}
\ No newline at end of file
diff --git a/electron/logger.js b/electron/logger.js
deleted file mode 100644
index 4127f4f23..000000000
--- a/electron/logger.js
+++ /dev/null
@@ -1,73 +0,0 @@
-const winston = require('winston');
-const { format } = require('logform');
-const { paths } = require('./constants');
-
-const { combine, timestamp, printf } = format;
-
-const logFormat = printf(({ level, message, timestamp }) => {
- return `${timestamp} ${level}: ${message}`;
-});
-
-const customLevels = {
- levels: {
- error: 0,
- warn: 1,
- info: 2,
- next: 3,
- cli: 4,
- electron: 5,
- },
- colors: {
- error: 'red',
- warn: 'yellow',
- info: 'blue',
- cli: 'green bold underline',
- electron: 'magenta bold underline',
- next: 'cyan bold underline',
- },
-};
-
-// Custom filter for specific levels, otherwise higher levels will include lower levels
-const levelFilter = (level) =>
- format((info, _opts) => {
- return info.level === level ? info : false;
- })();
-
-const logger = winston.createLogger({
- levels: customLevels.levels,
- transports: [
- new winston.transports.Console({
- level: 'electron', // Set to the highest level so it captures everything.
- format: combine(winston.format.colorize(), timestamp(), logFormat),
- }),
- new winston.transports.File({
- filename: 'cli.log',
- dirname: paths.dotOperateDirectory,
- level: 'cli',
- format: combine(levelFilter('cli'), timestamp(), logFormat),
- maxFiles: 1,
- maxsize: 1024 * 1024 * 10,
- }),
- new winston.transports.File({
- filename: 'electron.log',
- dirname: paths.dotOperateDirectory,
- level: 'electron',
- format: combine(levelFilter('electron'), timestamp(), logFormat),
- maxFiles: 1,
- maxsize: 1024 * 1024 * 10,
- }),
- new winston.transports.File({
- filename: 'next.log',
- dirname: paths.dotOperateDirectory,
- level: 'next',
- format: combine(levelFilter('next'), timestamp(), logFormat),
- maxFiles: 1,
- maxsize: 1024 * 1024 * 10,
- }),
- ],
- format: combine(timestamp(), logFormat),
-});
-
-winston.addColors(customLevels.colors);
-
-module.exports = { logger };
diff --git a/electron/main.js b/electron/main.js
deleted file mode 100644
index e2c66a668..000000000
--- a/electron/main.js
+++ /dev/null
@@ -1,687 +0,0 @@
-const {
- app,
- BrowserWindow,
- Tray,
- Menu,
- Notification,
- ipcMain,
- dialog,
- shell,
-} = require('electron');
-const { spawn } = require('child_process');
-const path = require('path');
-const fs = require('fs');
-const os = require('os');
-const next = require('next');
-const http = require('http');
-const AdmZip = require('adm-zip');
-const { TRAY_ICONS, TRAY_ICONS_PATHS } = require('./icons');
-
-const { setupDarwin, setupUbuntu, Env } = require('./install');
-
-const { paths } = require('./constants');
-const { killProcesses } = require('./processes');
-const { isPortAvailable, findAvailablePort } = require('./ports');
-const { PORT_RANGE, isWindows, isMac } = require('./constants');
-const { macUpdater } = require('./update');
-const { setupStoreIpc } = require('./store');
-const { logger } = require('./logger');
-const { isDev } = require('./constants');
-
-// Attempt to acquire the single instance lock
-const singleInstanceLock = app.requestSingleInstanceLock();
-if (!singleInstanceLock) app.quit();
-
-const platform = os.platform();
-
-const binaryPaths = {
- darwin: {
- arm64: 'bins/pearl_arm64',
- x64: 'bins/pearl_x64',
- },
-};
-
-let appConfig = {
- ports: {
- dev: {
- operate: 8000,
- next: 3000,
- },
- prod: {
- operate: 8765,
- next: 3000,
- },
- },
-};
-
-let tray,
- mainWindow,
- splashWindow,
- operateDaemon,
- operateDaemonPid,
- nextAppProcess,
- nextAppProcessPid;
-
-function showNotification(title, body) {
- new Notification({ title, body }).show();
-}
-
-async function beforeQuit() {
- if (operateDaemonPid) {
- try {
- await killProcesses(operateDaemonPid);
- } catch (e) {
- logger.electron(e);
- }
- }
-
- if (nextAppProcessPid) {
- try {
- await killProcesses(nextAppProcessPid);
- } catch (e) {
- logger.electron(e);
- }
- }
-
- tray && tray.destroy();
- mainWindow && mainWindow.destroy();
-}
-
-const getUpdatedTrayIcon = (iconPath) => {
- const icon = iconPath;
- if (icon.resize) {
- icon.resize({ width: 16 });
- icon.setTemplateImage(true);
- }
-
- return icon;
-};
-
-/**
- * Creates the tray
- */
-const createTray = () => {
- const trayPath = getUpdatedTrayIcon(
- isWindows || isMac ? TRAY_ICONS.LOGGED_OUT : TRAY_ICONS_PATHS.LOGGED_OUT,
- );
- const tray = new Tray(trayPath);
-
- const contextMenu = Menu.buildFromTemplate([
- {
- label: 'Show app',
- click: function () {
- mainWindow.show();
- },
- },
- {
- label: 'Hide app',
- click: function () {
- mainWindow.hide();
- },
- },
- {
- label: 'Quit',
- click: async function () {
- await beforeQuit();
- app.quit();
- },
- },
- ]);
- tray.setToolTip('Pearl');
- tray.setContextMenu(contextMenu);
-
- ipcMain.on('tray', (_event, status) => {
- switch (status) {
- case 'low-gas': {
- const icon = getUpdatedTrayIcon(
- isWindows || isMac ? TRAY_ICONS.LOW_GAS : TRAY_ICONS_PATHS.LOW_GAS,
- );
- tray.setImage(icon);
- break;
- }
- case 'running': {
- const icon = getUpdatedTrayIcon(
- isWindows || isMac ? TRAY_ICONS.RUNNING : TRAY_ICONS_PATHS.RUNNING,
- );
- tray.setImage(icon);
-
- break;
- }
- case 'paused': {
- const icon = getUpdatedTrayIcon(
- isWindows || isMac ? TRAY_ICONS.PAUSED : TRAY_ICONS_PATHS.PAUSED,
- );
- tray.setImage(icon);
- break;
- }
- }
- });
-};
-
-const APP_WIDTH = 460;
-
-/**
- * Creates the splash window
- */
-const createSplashWindow = () => {
- splashWindow = new BrowserWindow({
- width: APP_WIDTH,
- height: APP_WIDTH,
- resizable: false,
- show: true,
- title: 'Pearl',
- frame: false,
- webPreferences: {
- nodeIntegration: true,
- contextIsolation: false,
- },
- });
- splashWindow.loadURL('file://' + __dirname + '/loading/index.html');
-
- if (isDev) {
- splashWindow.webContents.openDevTools();
- }
-};
-
-const HEIGHT = 700;
-/**
- * Creates the main window
- */
-const createMainWindow = () => {
- const width = isDev ? 840 : APP_WIDTH;
- mainWindow = new BrowserWindow({
- title: 'Pearl',
- resizable: false,
- draggable: true,
- frame: false,
- transparent: true,
- fullscreenable: false,
- maximizable: false,
- width,
- maxHeight: HEIGHT,
- webPreferences: {
- nodeIntegration: false,
- contextIsolation: true,
- preload: path.join(__dirname, 'preload.js'),
- },
- });
-
- mainWindow.setMenuBarVisibility(true);
-
- if (isDev) {
- mainWindow.loadURL(`http://localhost:${appConfig.ports.dev.next}`);
- } else {
- mainWindow.loadURL(`http://localhost:${appConfig.ports.prod.next}`);
- }
-
- ipcMain.on('close-app', () => {
- mainWindow.close();
- });
-
- ipcMain.on('minimize-app', () => {
- mainWindow.minimize();
- });
-
- app.on('activate', () => {
- if (mainWindow.isMinimized()) {
- mainWindow.restore();
- } else {
- mainWindow.show();
- }
- });
-
- ipcMain.on('set-height', (_event, height) => {
- mainWindow.setSize(width, height);
- });
-
- ipcMain.on('show-notification', (_event, title, description) => {
- showNotification(title, description || undefined);
- });
-
- mainWindow.webContents.on('did-fail-load', () => {
- mainWindow.webContents.reloadIgnoringCache();
- });
-
- mainWindow.webContents.on('ready-to-show', () => {
- mainWindow.show();
- });
-
- mainWindow.webContents.setWindowOpenHandler(({ url }) => {
- // open url in a browser and prevent default
- require('electron').shell.openExternal(url);
- return { action: 'deny' };
- });
-
- mainWindow.on('close', function (event) {
- event.preventDefault();
- mainWindow.hide();
- });
-
- const storeInitialValues = {
- environmentName: process.env.IS_STAGING ? 'staging' : '',
- };
- setupStoreIpc(ipcMain, mainWindow, storeInitialValues);
-
- if (isDev) {
- mainWindow.webContents.openDevTools();
- }
-};
-
-async function launchDaemon() {
- // Free up backend port if already occupied
- try {
- await fetch(`http://localhost:${appConfig.ports.prod.operate}/api`);
- logger.electron('Killing backend server!');
- let endpoint = fs
- .readFileSync(`${paths.dotOperateDirectory}/operate.kill`)
- .toString()
- .trim();
-
- await fetch(`http://localhost:${appConfig.ports.prod.operate}/${endpoint}`);
- } catch (err) {
- logger.electron('Backend not running!');
- }
-
- const check = new Promise(function (resolve, _reject) {
- operateDaemon = spawn(
- path.join(
- process.resourcesPath,
- binaryPaths[platform][process.arch.toString()],
- ),
- [
- 'daemon',
- `--port=${appConfig.ports.prod.operate}`,
- `--home=${paths.dotOperateDirectory}`,
- ],
- { env: Env },
- );
- operateDaemonPid = operateDaemon.pid;
- // fs.appendFileSync(
- // `${paths.OperateDirectory}/operate.pip`,
- // `${operateDaemon.pid}`,
- // {
- // encoding: 'utf-8',
- // },
- // );
-
- operateDaemon.stderr.on('data', (data) => {
- if (data.toString().includes('Uvicorn running on')) {
- resolve({ running: true, error: null });
- }
- if (
- data.toString().includes('error while attempting to bind on address')
- ) {
- resolve({ running: false, error: 'Port already in use' });
- }
- logger.cli(data.toString().trim());
- });
- operateDaemon.stdout.on('data', (data) => {
- logger.cli(data.toString().trim());
- });
- });
-
- return await check;
-}
-
-async function launchDaemonDev() {
- const check = new Promise(function (resolve, _reject) {
- operateDaemon = spawn('poetry', [
- 'run',
- 'operate',
- 'daemon',
- `--port=${appConfig.ports.dev.operate}`,
- '--home=.operate',
- ]);
- operateDaemonPid = operateDaemon.pid;
- operateDaemon.stderr.on('data', (data) => {
- if (data.toString().includes('Uvicorn running on')) {
- resolve({ running: true, error: null });
- }
- if (
- data.toString().includes('error while attempting to bind on address')
- ) {
- resolve({ running: false, error: 'Port already in use' });
- }
- logger.cli(data.toString().trim());
- });
- operateDaemon.stdout.on('data', (data) => {
- logger.cli(data.toString().trim());
- });
- });
- return await check;
-}
-
-async function launchNextApp() {
- const nextApp = next({
- dev: false,
- dir: path.join(__dirname),
- port: appConfig.ports.prod.next,
- env: {
- GNOSIS_RPC:
- process.env.NODE_ENV === 'production'
- ? process.env.FORK_URL
- : process.env.DEV_RPC,
- NEXT_PUBLIC_BACKEND_PORT:
- process.env.NODE_ENV === 'production'
- ? appConfig.ports.prod.operate
- : appConfig.ports.dev.operate,
- },
- });
- await nextApp.prepare();
-
- const handle = nextApp.getRequestHandler();
- const server = http.createServer((req, res) => {
- handle(req, res); // Handle requests using the Next.js request handler
- });
- server.listen(appConfig.ports.prod.next, (err) => {
- if (err) throw err;
- logger.next(
- `> Next server running on http://localhost:${appConfig.ports.prod.next}`,
- );
- });
-}
-
-async function launchNextAppDev() {
- await new Promise(function (resolve, _reject) {
- process.env.NEXT_PUBLIC_BACKEND_PORT = appConfig.ports.dev.operate; // must set next env var to connect to backend
- nextAppProcess = spawn(
- 'yarn',
- ['dev:frontend', '--port', appConfig.ports.dev.next],
- {
- env: {
- ...process.env,
- NEXT_PUBLIC_BACKEND_PORT: appConfig.ports.dev.operate,
- },
- },
- );
- nextAppProcessPid = nextAppProcess.pid;
- nextAppProcess.stdout.on('data', (data) => {
- logger.next(data.toString().trim());
- resolve();
- });
- });
-}
-
-ipcMain.on('check', async function (event, _argument) {
- // Update
- try {
- // macUpdater.checkForUpdates().then((res) => {
- // if (!res) return;
- // if (!res.downloadPromise) return;
- // new Notification({
- // title: 'Update Available',
- // body: 'Downloading update...',
- // }).show();
- // res.downloadPromise.then(() => {
- // new Notification({
- // title: 'Update Downloaded',
- // body: 'Restarting application...',
- // }).show();
- // macUpdater.quitAndInstall();
- // });
- // });
- } catch (e) {
- logger.electron(e);
- }
-
- // Setup
- try {
- event.sender.send('response', 'Checking installation');
-
- if (platform === 'darwin') {
- await setupDarwin(event.sender);
- } else if (platform === 'win32') {
- // TODO
- } else {
- await setupUbuntu(event.sender);
- }
-
- if (isDev) {
- event.sender.send(
- 'response',
- 'Starting Pearl Daemon In Development Mode',
- );
-
- const daemonDevPortAvailable = await isPortAvailable(
- appConfig.ports.dev.operate,
- );
-
- if (!daemonDevPortAvailable) {
- appConfig.ports.dev.operate = await findAvailablePort({
- ...PORT_RANGE,
- });
- }
- await launchDaemonDev();
- event.sender.send(
- 'response',
- 'Starting Frontend Server In Development Mode',
- );
-
- const frontendDevPortAvailable = await isPortAvailable(
- appConfig.ports.dev.next,
- );
-
- if (!frontendDevPortAvailable) {
- appConfig.ports.dev.next = await findAvailablePort({
- ...PORT_RANGE,
- excludePorts: [appConfig.ports.dev.operate],
- });
- }
- await launchNextAppDev();
- } else {
- event.sender.send('response', 'Starting Pearl Daemon');
- await launchDaemon();
-
- event.sender.send('response', 'Starting Frontend Server');
- const frontendPortAvailable = await isPortAvailable(
- appConfig.ports.prod.next,
- );
- if (!frontendPortAvailable) {
- appConfig.ports.prod.next = await findAvailablePort({
- ...PORT_RANGE,
- excludePorts: [appConfig.ports.prod.operate],
- });
- }
- await launchNextApp();
- }
-
- event.sender.send('response', 'Launching App');
- createMainWindow();
- createTray();
- splashWindow.destroy();
- } catch (e) {
- logger.electron(e);
- new Notification({
- title: 'Error',
- body: e,
- }).show();
- event.sender.send('response', e);
- // app.quit();
- }
-});
-
-// APP-SPECIFIC EVENTS
-app.on('ready', async () => {
- if (platform === 'darwin') {
- app.dock?.setIcon(
- path.join(__dirname, 'assets/icons/splash-robot-head-dock.png'),
- );
- }
- createSplashWindow();
-});
-
-app.on('window-all-closed', () => {
- app.quit();
-});
-
-app.on('before-quit', async () => {
- await beforeQuit();
-});
-
-// UPDATER EVENTS
-macUpdater.on('update-downloaded', () => {
- macUpdater.quitAndInstall();
-});
-
-// PROCESS SPECIFIC EVENTS (HANDLES NON-GRACEFUL TERMINATION)
-process.on('uncaughtException', (error) => {
- logger.electron('Uncaught Exception:', error);
- // Clean up your child processes here
- beforeQuit().then(() => {
- process.exit(1); // Exit with a failure code
- });
-});
-
-['SIGINT', 'SIGTERM'].forEach((signal) => {
- process.on(signal, () => {
- logger.electron(`Received ${signal}. Cleaning up...`);
- beforeQuit().then(() => {
- process.exit(0);
- });
- });
-});
-
-// OPEN PATH
-ipcMain.on('open-path', (_, filePath) => {
- shell.openPath(filePath);
-});
-
-/**
- * Sanitizes logs by replacing usernames in the log data with asterisks.
- * If a file path is provided, it reads the log data from the file and sanitizes it.
- * If the file path does not exist, it returns null.
- * If no file path is provided, it sanitizes the provided data directly.
- * The sanitized log data is then written to the destination path.
- * @param {Object} options - The options for sanitizing logs.
- * @param {string} options.name - The name of the log file.
- * @param {string} options.filePath - The file path to read the log data from.
- * @param {string} options.data - The log data to sanitize if no file path is provided.
- * @param {string} options.destPath - The destination path where the logs should be stored after sanitization.
- * @returns {string|null} - The file path of the sanitized log data, or null if the file path does not exist.
- */
-function sanitizeLogs({
- name,
- filePath,
- data = '',
- destPath = paths.osPearlTempDir,
-}) {
- if (filePath && !fs.existsSync(filePath)) return null;
-
- const logs = filePath ? fs.readFileSync(filePath, 'utf-8') : data;
-
- const usernameRegex = /\/(Users|home)\/([^/]+)/g;
- const sanitizedData = logs.replace(usernameRegex, '/$1/*****');
- const sanitizedLogsFilePath = path.join(destPath, name);
-
- if (!fs.existsSync(destPath)) fs.mkdirSync(destPath);
-
- fs.writeFileSync(sanitizedLogsFilePath, sanitizedData);
-
- return sanitizedLogsFilePath;
-}
-
-// EXPORT LOGS
-ipcMain.handle('save-logs', async (_, data) => {
- sanitizeLogs({
- name: 'cli.log',
- filePath: paths.cliLogFile,
- });
-
- sanitizeLogs({
- name: 'next.log',
- filePath: paths.nextLogFile,
- });
-
- sanitizeLogs({
- name: 'electron.log',
- filePath: paths.electronLogFile,
- });
-
- // OS info
- const osInfo = `
- OS Type: ${os.type()}
- OS Platform: ${os.platform()}
- OS Arch: ${os.arch()}
- OS Release: ${os.release()}
- Total Memory: ${os.totalmem()}
- Free Memory: ${os.freemem()}
- `;
- const osInfoFilePath = path.join(paths.osPearlTempDir, 'os_info.txt');
- fs.writeFileSync(osInfoFilePath, osInfo);
-
- // Persistent store
- if (data.store)
- sanitizeLogs({
- name: 'store.txt',
- data: JSON.stringify(data.store, null, 2),
- });
-
- // Other debug data: balances, addresses, etc.
- if (data.debugData)
- sanitizeLogs({
- name: 'debug_data.txt',
- data: JSON.stringify(data.debugData, null, 2),
- });
-
- // Agent logs
- try {
- fs.readdirSync(paths.servicesDir).map((serviceDirName) => {
- const servicePath = path.join(paths.servicesDir, serviceDirName);
- if (!fs.existsSync(servicePath)) return;
- if (!fs.statSync(servicePath).isDirectory()) return;
-
- const agentLogFilePath = path.join(
- servicePath,
- 'deployment',
- 'agent',
- 'log.txt',
- );
- if (!fs.existsSync(agentLogFilePath)) return;
-
- return sanitizeLogs({
- name: `${serviceDirName}_agent.log`,
- filePath: agentLogFilePath,
- });
- });
- } catch (e) {
- logger.electron(e);
- }
-
- // Create a zip archive
- const zip = new AdmZip();
- fs.readdirSync(paths.osPearlTempDir).forEach((file) => {
- const filePath = path.join(paths.osPearlTempDir, file);
- if (!fs.existsSync(filePath)) return;
- if (fs.statSync(filePath).isDirectory()) return;
-
- zip.addLocalFile(filePath);
- });
-
- // Show save dialog
- const { filePath } = await dialog.showSaveDialog({
- title: 'Save Logs',
- defaultPath: path.join(
- os.homedir(),
- `pearl_logs_${new Date(Date.now()).toISOString()}-${app.getVersion()}.zip`,
- ),
- filters: [{ name: 'Zip Files', extensions: ['zip'] }],
- });
-
- let result;
- if (filePath) {
- // Write the zip file to the selected path
- zip.writeZip(filePath);
- result = { success: true, dirPath: path.dirname(filePath) };
- } else {
- result = { success: false };
- }
-
- // Remove temporary files
- fs.existsSync(paths.osPearlTempDir) &&
- fs.rmSync(paths.osPearlTempDir, {
- recursive: true,
- force: true,
- });
-
- return result;
-});
diff --git a/electron/ports.js b/electron/ports.js
deleted file mode 100644
index d01697ca0..000000000
--- a/electron/ports.js
+++ /dev/null
@@ -1,79 +0,0 @@
-const net = require('net');
-const { ERROR_ADDRESS_IN_USE } = require('./constants');
-
-/**
- * Finds an available port within the specified range, excluding specified ports.
- * @param {number} startPort - The start of the port range.
- * @param {number} endPort - The end of the port range.
- * @param {Array} excludePorts - An array of ports to be skipped.
- * @returns {Promise} The first available port found within the range that's not excluded.
- */
-function findAvailablePort({ startPort, endPort, excludePorts = [] }) {
- return new Promise((resolve, reject) => {
- let currentPort = startPort;
-
- const tryPort = (port) => {
- if (excludePorts.includes(port)) {
- if (currentPort < endPort) {
- tryPort(++currentPort);
- } else {
- reject(
- new Error(
- `Unable to find an available port between ${startPort} and ${endPort} excluding specified ports.`,
- ),
- );
- }
- return;
- }
-
- const server = net.createServer();
-
- server.listen(port, () => {
- server.close(() => {
- resolve(port);
- });
- });
-
- server.on('error', (err) => {
- if (err.code === ERROR_ADDRESS_IN_USE && currentPort < endPort) {
- // Try the next port if the current one is in use or excluded
- tryPort(++currentPort);
- } else {
- reject(
- new Error(
- `Unable to find an available port between ${startPort} and ${endPort} excluding specified ports.`,
- ),
- );
- }
- });
- };
-
- tryPort(currentPort);
- });
-}
-
-/**
- * Checks if a port is available.
- * @param {number} port - The port to check.
- * @returns {Promise} Whether the port is available.
- */
-function isPortAvailable(port) {
- return new Promise((resolve) => {
- const server = net.createServer();
-
- server.listen(port, () => {
- server.close(() => {
- resolve(true);
- });
- });
-
- server.on('error', () => {
- resolve(false);
- });
- });
-}
-
-module.exports = {
- findAvailablePort,
- isPortAvailable,
-};
diff --git a/electron/preload.js b/electron/preload.js
deleted file mode 100644
index 2878e232e..000000000
--- a/electron/preload.js
+++ /dev/null
@@ -1,25 +0,0 @@
-const { contextBridge, ipcRenderer } = require('electron/renderer');
-
-contextBridge.exposeInMainWorld('electronAPI', {
- closeApp: () => ipcRenderer.send('close-app'),
- minimizeApp: () => ipcRenderer.send('minimize-app'),
- setTrayIcon: (status) => ipcRenderer.send('tray', status),
- ipcRenderer: {
- send: (channel, data) => ipcRenderer.send(channel, data),
- on: (channel, func) =>
- ipcRenderer.on(channel, (event, ...args) => func(...args)),
- invoke: (channel, data) => ipcRenderer.invoke(channel, data),
- },
- store: {
- store: () => ipcRenderer.invoke('store'),
- get: (key) => ipcRenderer.invoke('store-get', key),
- set: (key, value) => ipcRenderer.invoke('store-set', key, value),
- delete: (key) => ipcRenderer.invoke('store-delete', key),
- clear: () => ipcRenderer.invoke('store-clear'),
- },
- setAppHeight: (height) => ipcRenderer.send('set-height', height),
- showNotification: (title, description) =>
- ipcRenderer.send('show-notification', title, description),
- saveLogs: (data) => ipcRenderer.invoke('save-logs', data),
- openPath: (filePath) => ipcRenderer.send('open-path', filePath),
-});
diff --git a/electron/processes.js b/electron/processes.js
deleted file mode 100644
index e67dcaac5..000000000
--- a/electron/processes.js
+++ /dev/null
@@ -1,40 +0,0 @@
-const psTree = require('ps-tree');
-const { exec } = require('child_process');
-
-const unixKillCommand = 'kill -9';
-const windowsKillCommand = 'taskkill /F /PID';
-
-const isWindows = process.platform === 'win32';
-
-function killProcesses(pid) {
- return new Promise((resolve, reject) => {
- psTree(pid, (err, children) => {
- if (err) {
- reject(err);
- return;
- }
-
- // Array of PIDs to kill, starting with the children
- const pidsToKill = children.map((p) => p.PID);
- pidsToKill.push(pid); // Also kill the main process
-
- const killCommand = isWindows ? windowsKillCommand : unixKillCommand;
- const joinedCommand = pidsToKill
- .map((pid) => `${killCommand} ${pid}`)
- .join('; '); // Separate commands with a semicolon, so they run in sequence even if one fails. Also works on Windows.
-
- exec(joinedCommand, (err) => {
- if (
- err?.message?.includes(isWindows ? 'not found' : 'No such process')
- ) {
- return; // Ignore errors for processes that are already dead
- }
- reject(err);
- });
-
- resolve();
- });
- });
-}
-
-module.exports = { killProcesses };
diff --git a/electron/public/broken-robot.svg b/electron/public/broken-robot.svg
deleted file mode 100644
index 5f99a0375..000000000
--- a/electron/public/broken-robot.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
diff --git a/electron/public/happy-robot.svg b/electron/public/happy-robot.svg
deleted file mode 100644
index 4ca51d1d2..000000000
--- a/electron/public/happy-robot.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
diff --git a/electron/public/onboarding-robot.svg b/electron/public/onboarding-robot.svg
deleted file mode 100644
index c7cca155c..000000000
--- a/electron/public/onboarding-robot.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
\ No newline at end of file
diff --git a/electron/public/sad-robot.svg b/electron/public/sad-robot.svg
deleted file mode 100644
index 1cc45bdc7..000000000
--- a/electron/public/sad-robot.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-
diff --git a/electron/public/splash-robot-head.png b/electron/public/splash-robot-head.png
deleted file mode 100644
index d43fb2873..000000000
Binary files a/electron/public/splash-robot-head.png and /dev/null differ
diff --git a/electron/public/twitter.svg b/electron/public/twitter.svg
deleted file mode 100644
index f2ddba13f..000000000
--- a/electron/public/twitter.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/electron/scripts/install_brew.sh b/electron/scripts/install_brew.sh
deleted file mode 100644
index 46c41f315..000000000
--- a/electron/scripts/install_brew.sh
+++ /dev/null
@@ -1,1097 +0,0 @@
-# We don't need return codes for "$(command)", only stdout is needed.
-# Allow `[[ -n "$(command)" ]]`, `func "$(command)"`, pipes, etc.
-# shellcheck disable=SC2312
-
-set -u
-
-abort() {
- printf "%s\n" "$@" >&2
- exit 1
-}
-
-# Fail fast with a concise message when not using bash
-# Single brackets are needed here for POSIX compatibility
-# shellcheck disable=SC2292
-if [ -z "${BASH_VERSION:-}" ]
-then
- abort "Bash is required to interpret this script."
-fi
-
-# Check if script is run with force-interactive mode in CI
-if [[ -n "${CI-}" && -n "${INTERACTIVE-}" ]]
-then
- abort "Cannot run force-interactive mode in CI."
-fi
-
-# Check if both `INTERACTIVE` and `NONINTERACTIVE` are set
-# Always use single-quoted strings with `exp` expressions
-# shellcheck disable=SC2016
-if [[ -n "${INTERACTIVE-}" && -n "${NONINTERACTIVE-}" ]]
-then
- abort 'Both `$INTERACTIVE` and `$NONINTERACTIVE` are set. Please unset at least one variable and try again.'
-fi
-
-# Check if script is run in POSIX mode
-if [[ -n "${POSIXLY_CORRECT+1}" ]]
-then
- abort 'Bash must not run in POSIX mode. Please unset POSIXLY_CORRECT and try again.'
-fi
-
-usage() {
- cat <${tty_bold} %s${tty_reset}\n" "$(shell_join "$@")"
-}
-
-warn() {
- printf "${tty_red}Warning${tty_reset}: %s\n" "$(chomp "$1")" >&2
-}
-
-# Check if script is run non-interactively (e.g. CI)
-# If it is run non-interactively we should not prompt for passwords.
-# Always use single-quoted strings with `exp` expressions
-# shellcheck disable=SC2016
-if [[ -z "${NONINTERACTIVE-}" ]]
-then
- if [[ -n "${CI-}" ]]
- then
- warn 'Running in non-interactive mode because `$CI` is set.'
- NONINTERACTIVE=1
- elif [[ ! -t 0 ]]
- then
- if [[ -z "${INTERACTIVE-}" ]]
- then
- warn 'Running in non-interactive mode because `stdin` is not a TTY.'
- NONINTERACTIVE=1
- else
- warn 'Running in interactive mode despite `stdin` not being a TTY because `$INTERACTIVE` is set.'
- fi
- fi
-else
- ohai 'Running in non-interactive mode because `$NONINTERACTIVE` is set.'
-fi
-
-# USER isn't always set so provide a fall back for the installer and subprocesses.
-if [[ -z "${USER-}" ]]
-then
- USER="$(chomp "$(id -un)")"
- export USER
-fi
-
-# First check OS.
-OS="$(uname)"
-if [[ "${OS}" == "Linux" ]]
-then
- HOMEBREW_ON_LINUX=1
-elif [[ "${OS}" == "Darwin" ]]
-then
- HOMEBREW_ON_MACOS=1
-else
- abort "Homebrew is only supported on macOS and Linux."
-fi
-
-# Required installation paths. To install elsewhere (which is unsupported)
-# you can untar https://github.com/Homebrew/brew/tarball/master
-# anywhere you like.
-if [[ -n "${HOMEBREW_ON_MACOS-}" ]]
-then
- UNAME_MACHINE="$(/usr/bin/uname -m)"
-
- if [[ "${UNAME_MACHINE}" == "arm64" ]]
- then
- # On ARM macOS, this script installs to /opt/homebrew only
- HOMEBREW_PREFIX="/opt/homebrew"
- HOMEBREW_REPOSITORY="${HOMEBREW_PREFIX}"
- else
- # On Intel macOS, this script installs to /usr/local only
- HOMEBREW_PREFIX="/usr/local"
- HOMEBREW_REPOSITORY="${HOMEBREW_PREFIX}/Homebrew"
- fi
- HOMEBREW_CACHE="${HOME}/Library/Caches/Homebrew"
-
- STAT_PRINTF=("/usr/bin/stat" "-f")
- PERMISSION_FORMAT="%A"
- CHOWN=("/usr/sbin/chown")
- CHGRP=("/usr/bin/chgrp")
- GROUP="admin"
- TOUCH=("/usr/bin/touch")
- INSTALL=("/usr/bin/install" -d -o "root" -g "wheel" -m "0755")
-else
- UNAME_MACHINE="$(uname -m)"
-
- # On Linux, this script installs to /home/linuxbrew/.linuxbrew only
- HOMEBREW_PREFIX="/home/linuxbrew/.linuxbrew"
- HOMEBREW_REPOSITORY="${HOMEBREW_PREFIX}/Homebrew"
- HOMEBREW_CACHE="${HOME}/.cache/Homebrew"
-
- STAT_PRINTF=("/usr/bin/stat" "--printf")
- PERMISSION_FORMAT="%a"
- CHOWN=("/bin/chown")
- CHGRP=("/bin/chgrp")
- GROUP="$(id -gn)"
- TOUCH=("/bin/touch")
- INSTALL=("/usr/bin/install" -d -o "${USER}" -g "${GROUP}" -m "0755")
-fi
-CHMOD=("/bin/chmod")
-MKDIR=("/bin/mkdir" "-p")
-HOMEBREW_BREW_DEFAULT_GIT_REMOTE="https://github.com/Homebrew/brew"
-HOMEBREW_CORE_DEFAULT_GIT_REMOTE="https://github.com/Homebrew/homebrew-core"
-
-# Use remote URLs of Homebrew repositories from environment if set.
-HOMEBREW_BREW_GIT_REMOTE="${HOMEBREW_BREW_GIT_REMOTE:-"${HOMEBREW_BREW_DEFAULT_GIT_REMOTE}"}"
-HOMEBREW_CORE_GIT_REMOTE="${HOMEBREW_CORE_GIT_REMOTE:-"${HOMEBREW_CORE_DEFAULT_GIT_REMOTE}"}"
-# The URLs with and without the '.git' suffix are the same Git remote. Do not prompt.
-if [[ "${HOMEBREW_BREW_GIT_REMOTE}" == "${HOMEBREW_BREW_DEFAULT_GIT_REMOTE}.git" ]]
-then
- HOMEBREW_BREW_GIT_REMOTE="${HOMEBREW_BREW_DEFAULT_GIT_REMOTE}"
-fi
-if [[ "${HOMEBREW_CORE_GIT_REMOTE}" == "${HOMEBREW_CORE_DEFAULT_GIT_REMOTE}.git" ]]
-then
- HOMEBREW_CORE_GIT_REMOTE="${HOMEBREW_CORE_DEFAULT_GIT_REMOTE}"
-fi
-export HOMEBREW_{BREW,CORE}_GIT_REMOTE
-
-# TODO: bump version when new macOS is released or announced
-MACOS_NEWEST_UNSUPPORTED="15.0"
-# TODO: bump version when new macOS is released
-MACOS_OLDEST_SUPPORTED="12.0"
-
-# For Homebrew on Linux
-REQUIRED_RUBY_VERSION=2.6 # https://github.com/Homebrew/brew/pull/6556
-REQUIRED_GLIBC_VERSION=2.13 # https://docs.brew.sh/Homebrew-on-Linux#requirements
-REQUIRED_CURL_VERSION=7.41.0 # HOMEBREW_MINIMUM_CURL_VERSION in brew.sh in Homebrew/brew
-REQUIRED_GIT_VERSION=2.7.0 # HOMEBREW_MINIMUM_GIT_VERSION in brew.sh in Homebrew/brew
-
-# no analytics during installation
-export HOMEBREW_NO_ANALYTICS_THIS_RUN=1
-export HOMEBREW_NO_ANALYTICS_MESSAGE_OUTPUT=1
-
-unset HAVE_SUDO_ACCESS # unset this from the environment
-
-have_sudo_access() {
- if [[ ! -x "/usr/bin/sudo" ]]
- then
- return 1
- fi
-
- local -a SUDO=("/usr/bin/sudo")
- if [[ -n "${SUDO_ASKPASS-}" ]]
- then
- SUDO+=("-A")
- elif [[ -n "${NONINTERACTIVE-}" ]]
- then
- SUDO+=("-n")
- fi
-
- if [[ -z "${HAVE_SUDO_ACCESS-}" ]]
- then
- if [[ -n "${NONINTERACTIVE-}" ]]
- then
- "${SUDO[@]}" -l mkdir &>/dev/null
- else
- "${SUDO[@]}" -v && "${SUDO[@]}" -l mkdir &>/dev/null
- fi
- HAVE_SUDO_ACCESS="$?"
- fi
-
- if [[ -n "${HOMEBREW_ON_MACOS-}" ]] && [[ "${HAVE_SUDO_ACCESS}" -ne 0 ]]
- then
- abort "Need sudo access on macOS (e.g. the user ${USER} needs to be an Administrator)!"
- fi
-
- return "${HAVE_SUDO_ACCESS}"
-}
-
-execute() {
- if ! "$@"
- then
- abort "$(printf "Failed during: %s" "$(shell_join "$@")")"
- fi
-}
-
-execute_sudo() {
- local -a args=("$@")
- if [[ "${EUID:-${UID}}" != "0" ]] && have_sudo_access
- then
- if [[ -n "${SUDO_ASKPASS-}" ]]
- then
- args=("-A" "${args[@]}")
- fi
- ohai "/usr/bin/sudo" "${args[@]}"
- execute "/usr/bin/sudo" "${args[@]}"
- else
- ohai "${args[@]}"
- execute "${args[@]}"
- fi
-}
-
-getc() {
- local save_state
- save_state="$(/bin/stty -g)"
- /bin/stty raw -echo
- IFS='' read -r -n 1 -d '' "$@"
- /bin/stty "${save_state}"
-}
-
-ring_bell() {
- # Use the shell's audible bell.
- if [[ -t 1 ]]
- then
- printf "\a"
- fi
-}
-
-wait_for_user() {
- local c
- echo
- echo "Press ${tty_bold}RETURN${tty_reset}/${tty_bold}ENTER${tty_reset} to continue or any other key to abort:"
- getc c
- if ! [[ "${c}" == $'\r' || "${c}" == $'\n' ]]
- then
- exit 1
- fi
-}
-
-major_minor() {
- echo "${1%%.*}.$(
- x="${1#*.}"
- echo "${x%%.*}"
- )"
-}
-
-version_gt() {
- [[ "${1%.*}" -gt "${2%.*}" ]] || [[ "${1%.*}" -eq "${2%.*}" && "${1#*.}" -gt "${2#*.}" ]]
-}
-version_ge() {
- [[ "${1%.*}" -gt "${2%.*}" ]] || [[ "${1%.*}" -eq "${2%.*}" && "${1#*.}" -ge "${2#*.}" ]]
-}
-version_lt() {
- [[ "${1%.*}" -lt "${2%.*}" ]] || [[ "${1%.*}" -eq "${2%.*}" && "${1#*.}" -lt "${2#*.}" ]]
-}
-
-check_run_command_as_root() {
- [[ "${EUID:-${UID}}" == "0" ]] || return
-
- # Allow Azure Pipelines/GitHub Actions/Docker/Concourse/Kubernetes to do everything as root (as it's normal there)
- [[ -f /.dockerenv ]] && return
- [[ -f /run/.containerenv ]] && return
- [[ -f /proc/1/cgroup ]] && grep -E "azpl_job|actions_job|docker|garden|kubepods" -q /proc/1/cgroup && return
-
- abort "Don't run this as root!"
-}
-
-should_install_command_line_tools() {
- if [[ -n "${HOMEBREW_ON_LINUX-}" ]]
- then
- return 1
- fi
-
- if version_gt "${macos_version}" "10.13"
- then
- ! [[ -e "/Library/Developer/CommandLineTools/usr/bin/git" ]]
- else
- ! [[ -e "/Library/Developer/CommandLineTools/usr/bin/git" ]] ||
- ! [[ -e "/usr/include/iconv.h" ]]
- fi
-}
-
-get_permission() {
- "${STAT_PRINTF[@]}" "${PERMISSION_FORMAT}" "$1"
-}
-
-user_only_chmod() {
- [[ -d "$1" ]] && [[ "$(get_permission "$1")" != 75[0145] ]]
-}
-
-exists_but_not_writable() {
- [[ -e "$1" ]] && ! [[ -r "$1" && -w "$1" && -x "$1" ]]
-}
-
-get_owner() {
- "${STAT_PRINTF[@]}" "%u" "$1"
-}
-
-file_not_owned() {
- [[ "$(get_owner "$1")" != "$(id -u)" ]]
-}
-
-get_group() {
- "${STAT_PRINTF[@]}" "%g" "$1"
-}
-
-file_not_grpowned() {
- [[ " $(id -G "${USER}") " != *" $(get_group "$1") "* ]]
-}
-
-# Please sync with 'test_ruby()' in 'Library/Homebrew/utils/ruby.sh' from the Homebrew/brew repository.
-test_ruby() {
- if [[ ! -x "$1" ]]
- then
- return 1
- fi
-
- "$1" --enable-frozen-string-literal --disable=gems,did_you_mean,rubyopt -rrubygems -e \
- "abort if Gem::Version.new(RUBY_VERSION.to_s.dup).to_s.split('.').first(2) != \
- Gem::Version.new('${REQUIRED_RUBY_VERSION}').to_s.split('.').first(2)" 2>/dev/null
-}
-
-test_curl() {
- if [[ ! -x "$1" ]]
- then
- return 1
- fi
-
- local curl_version_output curl_name_and_version
- curl_version_output="$("$1" --version 2>/dev/null)"
- curl_name_and_version="${curl_version_output%% (*}"
- version_ge "$(major_minor "${curl_name_and_version##* }")" "$(major_minor "${REQUIRED_CURL_VERSION}")"
-}
-
-test_git() {
- if [[ ! -x "$1" ]]
- then
- return 1
- fi
-
- local git_version_output
- git_version_output="$("$1" --version 2>/dev/null)"
- if [[ "${git_version_output}" =~ "git version "([^ ]*).* ]]
- then
- version_ge "$(major_minor "${BASH_REMATCH[1]}")" "$(major_minor "${REQUIRED_GIT_VERSION}")"
- else
- abort "Unexpected Git version: '${git_version_output}'!"
- fi
-}
-
-# Search for the given executable in PATH (avoids a dependency on the `which` command)
-which() {
- # Alias to Bash built-in command `type -P`
- type -P "$@"
-}
-
-# Search PATH for the specified program that satisfies Homebrew requirements
-# function which is set above
-# shellcheck disable=SC2230
-find_tool() {
- if [[ $# -ne 1 ]]
- then
- return 1
- fi
-
- local executable
- while read -r executable
- do
- if [[ "${executable}" != /* ]]
- then
- warn "Ignoring ${executable} (relative paths don't work)"
- elif "test_$1" "${executable}"
- then
- echo "${executable}"
- break
- fi
- done < <(which -a "$1")
-}
-
-no_usable_ruby() {
- [[ -z "$(find_tool ruby)" ]]
-}
-
-outdated_glibc() {
- local glibc_version
- glibc_version="$(ldd --version | head -n1 | grep -o '[0-9.]*$' | grep -o '^[0-9]\+\.[0-9]\+')"
- version_lt "${glibc_version}" "${REQUIRED_GLIBC_VERSION}"
-}
-
-if [[ -n "${HOMEBREW_ON_LINUX-}" ]] && no_usable_ruby && outdated_glibc
-then
- abort "$(
- cat </dev/null
-then
- trap '/usr/bin/sudo -k' EXIT
-fi
-
-# Things can fail later if `pwd` doesn't exist.
-# Also sudo prints a warning message for no good reason
-cd "/usr" || exit 1
-
-####################################################################### script
-
-# shellcheck disable=SC2016
-ohai 'Checking for `sudo` access (which may request your password)...'
-
-if [[ -n "${HOMEBREW_ON_MACOS-}" ]]
-then
- [[ "${EUID:-${UID}}" == "0" ]] || have_sudo_access
-elif ! [[ -w "${HOMEBREW_PREFIX}" ]] &&
- ! [[ -w "/home/linuxbrew" ]] &&
- ! [[ -w "/home" ]] &&
- ! have_sudo_access
-then
- abort "$(
- cat </dev/null
-then
- abort "$(
- cat </dev/null || return
-
- # we do it in four steps to avoid merge errors when reinstalling
- execute "${USABLE_GIT}" "-c" "init.defaultBranch=master" "init" "--quiet"
-
- # "git remote add" will fail if the remote is defined in the global config
- execute "${USABLE_GIT}" "config" "remote.origin.url" "${HOMEBREW_BREW_GIT_REMOTE}"
- execute "${USABLE_GIT}" "config" "remote.origin.fetch" "+refs/heads/*:refs/remotes/origin/*"
-
- # ensure we don't munge line endings on checkout
- execute "${USABLE_GIT}" "config" "--bool" "core.autocrlf" "false"
-
- # make sure symlinks are saved as-is
- execute "${USABLE_GIT}" "config" "--bool" "core.symlinks" "true"
-
- execute "${USABLE_GIT}" "fetch" "--force" "origin"
- execute "${USABLE_GIT}" "fetch" "--force" "--tags" "origin"
- execute "${USABLE_GIT}" "remote" "set-head" "origin" "--auto" >/dev/null
-
- LATEST_GIT_TAG="$("${USABLE_GIT}" tag --list --sort="-version:refname" | head -n1)"
- if [[ -z "${LATEST_GIT_TAG}" ]]
- then
- abort "Failed to query latest Homebrew/brew Git tag."
- fi
- execute "${USABLE_GIT}" "checkout" "--force" "-B" "stable" "${LATEST_GIT_TAG}"
-
- if [[ "${HOMEBREW_REPOSITORY}" != "${HOMEBREW_PREFIX}" ]]
- then
- if [[ "${HOMEBREW_REPOSITORY}" == "${HOMEBREW_PREFIX}/Homebrew" ]]
- then
- execute "ln" "-sf" "../Homebrew/bin/brew" "${HOMEBREW_PREFIX}/bin/brew"
- else
- abort "The Homebrew/brew repository should be placed in the Homebrew prefix directory."
- fi
- fi
-
- if [[ -n "${HOMEBREW_NO_INSTALL_FROM_API-}" && ! -d "${HOMEBREW_CORE}" ]]
- then
- # Always use single-quoted strings with `exp` expressions
- # shellcheck disable=SC2016
- ohai 'Tapping homebrew/core because `$HOMEBREW_NO_INSTALL_FROM_API` is set.'
- (
- execute "${MKDIR[@]}" "${HOMEBREW_CORE}"
- cd "${HOMEBREW_CORE}" >/dev/null || return
-
- execute "${USABLE_GIT}" "-c" "init.defaultBranch=master" "init" "--quiet"
- execute "${USABLE_GIT}" "config" "remote.origin.url" "${HOMEBREW_CORE_GIT_REMOTE}"
- execute "${USABLE_GIT}" "config" "remote.origin.fetch" "+refs/heads/*:refs/remotes/origin/*"
- execute "${USABLE_GIT}" "config" "--bool" "core.autocrlf" "false"
- execute "${USABLE_GIT}" "config" "--bool" "core.symlinks" "true"
- execute "${USABLE_GIT}" "fetch" "--force" "origin" "refs/heads/master:refs/remotes/origin/master"
- execute "${USABLE_GIT}" "remote" "set-head" "origin" "--auto" >/dev/null
- execute "${USABLE_GIT}" "reset" "--hard" "origin/master"
-
- cd "${HOMEBREW_REPOSITORY}" >/dev/null || return
- ) || exit 1
- fi
-
- execute "${HOMEBREW_PREFIX}/bin/brew" "update" "--force" "--quiet"
-) || exit 1
-
-if [[ ":${PATH}:" != *":${HOMEBREW_PREFIX}/bin:"* ]]
-then
- warn "${HOMEBREW_PREFIX}/bin is not in your PATH.
- Instructions on how to configure your shell for Homebrew
- can be found in the 'Next steps' section below."
-fi
-
-ohai "Installation successful!"
-echo
-
-ring_bell
-
-# Use an extra newline and bold to avoid this being missed.
-ohai "Homebrew has enabled anonymous aggregate formulae and cask analytics."
-echo "$(
- cat </dev/null || return
- execute "${USABLE_GIT}" "config" "--replace-all" "homebrew.analyticsmessage" "true"
- execute "${USABLE_GIT}" "config" "--replace-all" "homebrew.caskanalyticsmessage" "true"
-) || exit 1
-
-ohai "Next steps:"
-case "${SHELL}" in
- */bash*)
- if [[ -n "${HOMEBREW_ON_LINUX-}" ]]
- then
- shell_rcfile="${HOME}/.bashrc"
- else
- shell_rcfile="${HOME}/.bash_profile"
- fi
- ;;
- */zsh*)
- if [[ -n "${HOMEBREW_ON_LINUX-}" ]]
- then
- shell_rcfile="${ZDOTDIR:-"${HOME}"}/.zshrc"
- else
- shell_rcfile="${ZDOTDIR:-"${HOME}"}/.zprofile"
- fi
- ;;
- */fish*)
- shell_rcfile="${HOME}/.config/fish/config.fish"
- ;;
- *)
- shell_rcfile="${ENV:-"${HOME}/.profile"}"
- ;;
-esac
-
-if grep -qs "eval \"\$(${HOMEBREW_PREFIX}/bin/brew shellenv)\"" "${shell_rcfile}"
-then
- if ! [[ -x "$(command -v brew)" ]]
- then
- cat <> ${shell_rcfile}
- eval "\$(${HOMEBREW_PREFIX}/bin/brew shellenv)"
-EOS
-fi
-
-if [[ -n "${non_default_repos}" ]]
-then
- plural=""
- if [[ "${#additional_shellenv_commands[@]}" -gt 1 ]]
- then
- plural="s"
- fi
- printf -- "- Run these commands in your terminal to add the non-default Git remote%s for %s:\n" "${plural}" "${non_default_repos}"
- printf " echo '# Set PATH, MANPATH, etc., for Homebrew.' >> %s\n" "${shell_rcfile}"
- printf " echo '%s' >> ${shell_rcfile}\n" "${additional_shellenv_commands[@]}"
- printf " %s\n" "${additional_shellenv_commands[@]}"
-fi
-
-if [[ -n "${HOMEBREW_ON_LINUX-}" ]]
-then
- echo "- Install Homebrew's dependencies if you have sudo access:"
-
- if [[ -x "$(command -v apt-get)" ]]
- then
- echo " sudo apt-get install build-essential"
- elif [[ -x "$(command -v yum)" ]]
- then
- echo " sudo yum groupinstall 'Development Tools'"
- elif [[ -x "$(command -v pacman)" ]]
- then
- echo " sudo pacman -S base-devel"
- elif [[ -x "$(command -v apk)" ]]
- then
- echo " sudo apk add build-base"
- fi
-
- cat < /dev/null
-apt-get update
-apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
\ No newline at end of file
diff --git a/electron/store.js b/electron/store.js
deleted file mode 100644
index 5577decff..000000000
--- a/electron/store.js
+++ /dev/null
@@ -1,36 +0,0 @@
-// set schema to validate store data
-const defaultSchema = {
- environmentName: { type: 'string', default: '' },
- isInitialFunded: { type: 'boolean', default: false },
- firstStakingRewardAchieved: { type: 'boolean', default: false },
- firstRewardNotificationShown: { type: 'boolean', default: false },
-};
-
-const setupStoreIpc = async (ipcChannel, mainWindow, storeInitialValues) => {
- const Store = (await import('electron-store')).default;
-
- // set default values for store
- const schema = Object.assign({}, defaultSchema);
- Object.keys(schema).forEach((key) => {
- if (storeInitialValues[key] !== undefined) {
- schema[key].default = storeInitialValues[key];
- }
- });
-
- /** @type import Store from 'electron-store' */
- const store = new Store({ schema });
-
- store.onDidAnyChange((data) => {
- if (mainWindow?.webContents)
- mainWindow.webContents.send('store-changed', data);
- });
-
- // exposed to electron browser window
- ipcChannel.handle('store', () => store.store);
- ipcChannel.handle('store-get', (_, key) => store.get(key));
- ipcChannel.handle('store-set', (_, key, value) => store.set(key, value));
- ipcChannel.handle('store-delete', (_, key) => store.delete(key));
- ipcChannel.handle('store-clear', (_) => store.clear());
-};
-
-module.exports = { setupStoreIpc };
diff --git a/electron/update.js b/electron/update.js
deleted file mode 100644
index 3946655a3..000000000
--- a/electron/update.js
+++ /dev/null
@@ -1,16 +0,0 @@
-const { publishOptions } = require('./constants');
-const electronUpdater = require('electron-updater');
-const logger = require('./logger');
-
-const macUpdater = new electronUpdater.MacUpdater({
- ...publishOptions,
- channels: ['latest', 'beta', 'alpha'], // automatically update to all channels
-});
-
-macUpdater.setFeedURL({ ...publishOptions });
-
-macUpdater.autoDownload = true;
-macUpdater.autoInstallOnAppQuit = true;
-macUpdater.logger = logger;
-
-module.exports = { macUpdater };
diff --git a/frontend/.eslintrc.json b/frontend/.eslintrc.json
deleted file mode 100644
index 46cd97cea..000000000
--- a/frontend/.eslintrc.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
- "extends": [
- "eslint:recommended",
- "plugin:@typescript-eslint/recommended",
- "plugin:jest/recommended",
- "next/core-web-vitals",
- "plugin:prettier/recommended"
- ],
- "globals": {
- "JSX": true,
- "React": true
- },
- "plugins": [
- "jest",
- "prettier",
- "unused-imports",
- "simple-import-sort",
- "import"
- ],
- "rules": {
- "import/first": "error",
- "import/newline-after-import": "error",
- "import/no-duplicates": "error",
- "simple-import-sort/imports": "error",
- "simple-import-sort/exports": "error",
- "unused-imports/no-unused-imports": "error",
- "no-unused-vars": ["warn", { "argsIgnorePattern": "^_" }],
- "no-console": ["error", { "allow": ["error"] }],
- "prettier/prettier": ["error", {
- "endOfLine": "auto",
- "semi": true,
- "singleQuote": true
- }],
- "react/jsx-props-no-spreading": "off",
- "react/no-array-index-key": "off",
- "react/react-in-jsx-scope": "off",
- "react-hooks/rules-of-hooks": "error",
- "react-hooks/exhaustive-deps": "warn"
- }
-}
\ No newline at end of file
diff --git a/frontend/abis/agentMech.ts b/frontend/abis/agentMech.ts
deleted file mode 100644
index 9f4e71e2f..000000000
--- a/frontend/abis/agentMech.ts
+++ /dev/null
@@ -1,339 +0,0 @@
-export const AGENT_MECH_ABI = [
- {
- inputs: [
- { internalType: 'address', name: '_token', type: 'address' },
- { internalType: 'uint256', name: '_tokenId', type: 'uint256' },
- { internalType: 'uint256', name: '_price', type: 'uint256' },
- ],
- stateMutability: 'nonpayable',
- type: 'constructor',
- },
- {
- inputs: [{ internalType: 'uint256', name: 'agentId', type: 'uint256' }],
- name: 'AgentNotFound',
- type: 'error',
- },
- {
- inputs: [
- { internalType: 'uint256', name: 'provided', type: 'uint256' },
- { internalType: 'uint256', name: 'expected', type: 'uint256' },
- ],
- name: 'NotEnoughPaid',
- type: 'error',
- },
- {
- inputs: [
- { internalType: 'uint256', name: 'provided', type: 'uint256' },
- { internalType: 'uint256', name: 'max', type: 'uint256' },
- ],
- name: 'Overflow',
- type: 'error',
- },
- {
- inputs: [{ internalType: 'uint256', name: 'requestId', type: 'uint256' }],
- name: 'RequestIdNotFound',
- type: 'error',
- },
- { inputs: [], name: 'ZeroAddress', type: 'error' },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: 'address',
- name: 'sender',
- type: 'address',
- },
- {
- indexed: false,
- internalType: 'uint256',
- name: 'requestId',
- type: 'uint256',
- },
- { indexed: false, internalType: 'bytes', name: 'data', type: 'bytes' },
- ],
- name: 'Deliver',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: false,
- internalType: 'uint256',
- name: 'price',
- type: 'uint256',
- },
- ],
- name: 'PriceUpdated',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: 'address',
- name: 'sender',
- type: 'address',
- },
- {
- indexed: false,
- internalType: 'uint256',
- name: 'requestId',
- type: 'uint256',
- },
- { indexed: false, internalType: 'bytes', name: 'data', type: 'bytes' },
- ],
- name: 'Request',
- type: 'event',
- },
- {
- inputs: [
- { internalType: 'uint256', name: 'requestId', type: 'uint256' },
- { internalType: 'bytes', name: 'data', type: 'bytes' },
- ],
- name: 'deliver',
- outputs: [],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [],
- name: 'entryPoint',
- outputs: [
- { internalType: 'contract IEntryPoint', name: '', type: 'address' },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'to', type: 'address' },
- { internalType: 'uint256', name: 'value', type: 'uint256' },
- { internalType: 'bytes', name: 'data', type: 'bytes' },
- { internalType: 'enum Enum.Operation', name: 'operation', type: 'uint8' },
- { internalType: 'uint256', name: 'txGas', type: 'uint256' },
- ],
- name: 'exec',
- outputs: [{ internalType: 'bytes', name: 'returnData', type: 'bytes' }],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'account', type: 'address' },
- { internalType: 'bytes', name: 'data', type: 'bytes' },
- ],
- name: 'getRequestId',
- outputs: [{ internalType: 'uint256', name: 'requestId', type: 'uint256' }],
- stateMutability: 'pure',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'address', name: 'account', type: 'address' }],
- name: 'getRequestsCount',
- outputs: [
- { internalType: 'uint256', name: 'requestsCount', type: 'uint256' },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'uint256', name: 'size', type: 'uint256' },
- { internalType: 'uint256', name: 'offset', type: 'uint256' },
- ],
- name: 'getUndeliveredRequestIds',
- outputs: [
- { internalType: 'uint256[]', name: 'requestIds', type: 'uint256[]' },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'address', name: 'signer', type: 'address' }],
- name: 'isOperator',
- outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'bytes32', name: 'hash', type: 'bytes32' },
- { internalType: 'bytes', name: 'signature', type: 'bytes' },
- ],
- name: 'isValidSignature',
- outputs: [{ internalType: 'bytes4', name: 'magicValue', type: 'bytes4' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'uint256', name: '', type: 'uint256' },
- { internalType: 'uint256', name: '', type: 'uint256' },
- ],
- name: 'mapRequestIds',
- outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'address', name: '', type: 'address' }],
- name: 'mapRequestsCounts',
- outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'nonce',
- outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'numUndeliveredRequests',
- outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: '', type: 'address' },
- { internalType: 'address', name: '', type: 'address' },
- { internalType: 'uint256[]', name: '', type: 'uint256[]' },
- { internalType: 'uint256[]', name: '', type: 'uint256[]' },
- { internalType: 'bytes', name: '', type: 'bytes' },
- ],
- name: 'onERC1155BatchReceived',
- outputs: [{ internalType: 'bytes4', name: '', type: 'bytes4' }],
- stateMutability: 'pure',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: '', type: 'address' },
- { internalType: 'address', name: '', type: 'address' },
- { internalType: 'uint256', name: '', type: 'uint256' },
- { internalType: 'uint256', name: '', type: 'uint256' },
- { internalType: 'bytes', name: '', type: 'bytes' },
- ],
- name: 'onERC1155Received',
- outputs: [{ internalType: 'bytes4', name: '', type: 'bytes4' }],
- stateMutability: 'pure',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: '', type: 'address' },
- { internalType: 'address', name: '', type: 'address' },
- { internalType: 'uint256', name: '', type: 'uint256' },
- { internalType: 'bytes', name: '', type: 'bytes' },
- ],
- name: 'onERC721Received',
- outputs: [{ internalType: 'bytes4', name: '', type: 'bytes4' }],
- stateMutability: 'pure',
- type: 'function',
- },
- {
- inputs: [],
- name: 'price',
- outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'bytes', name: 'data', type: 'bytes' }],
- name: 'request',
- outputs: [{ internalType: 'uint256', name: 'requestId', type: 'uint256' }],
- stateMutability: 'payable',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'uint256', name: 'newPrice', type: 'uint256' }],
- name: 'setPrice',
- outputs: [],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'bytes', name: 'initParams', type: 'bytes' }],
- name: 'setUp',
- outputs: [],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [],
- name: 'token',
- outputs: [{ internalType: 'contract IERC721', name: '', type: 'address' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'tokenId',
- outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: '', type: 'address' },
- { internalType: 'address', name: '', type: 'address' },
- { internalType: 'address', name: '', type: 'address' },
- { internalType: 'uint256', name: '', type: 'uint256' },
- { internalType: 'bytes', name: '', type: 'bytes' },
- { internalType: 'bytes', name: '', type: 'bytes' },
- ],
- name: 'tokensReceived',
- outputs: [],
- stateMutability: 'pure',
- type: 'function',
- },
- {
- inputs: [
- {
- components: [
- { internalType: 'address', name: 'sender', type: 'address' },
- { internalType: 'uint256', name: 'nonce', type: 'uint256' },
- { internalType: 'bytes', name: 'initCode', type: 'bytes' },
- { internalType: 'bytes', name: 'callData', type: 'bytes' },
- { internalType: 'uint256', name: 'callGasLimit', type: 'uint256' },
- {
- internalType: 'uint256',
- name: 'verificationGasLimit',
- type: 'uint256',
- },
- {
- internalType: 'uint256',
- name: 'preVerificationGas',
- type: 'uint256',
- },
- { internalType: 'uint256', name: 'maxFeePerGas', type: 'uint256' },
- {
- internalType: 'uint256',
- name: 'maxPriorityFeePerGas',
- type: 'uint256',
- },
- { internalType: 'bytes', name: 'paymasterAndData', type: 'bytes' },
- { internalType: 'bytes', name: 'signature', type: 'bytes' },
- ],
- internalType: 'struct UserOperation',
- name: 'userOp',
- type: 'tuple',
- },
- { internalType: 'bytes32', name: 'userOpHash', type: 'bytes32' },
- { internalType: 'uint256', name: 'missingAccountFunds', type: 'uint256' },
- ],
- name: 'validateUserOp',
- outputs: [
- { internalType: 'uint256', name: 'validationData', type: 'uint256' },
- ],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- { stateMutability: 'payable', type: 'receive' },
-];
diff --git a/frontend/abis/erc20.ts b/frontend/abis/erc20.ts
deleted file mode 100644
index e581ffc4f..000000000
--- a/frontend/abis/erc20.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-export const ERC20_BALANCEOF_FRAGMENT = [
- 'function balanceOf(address owner) view returns (uint256)',
-];
diff --git a/frontend/abis/gnosisSafe.ts b/frontend/abis/gnosisSafe.ts
deleted file mode 100644
index cd4d7a454..000000000
--- a/frontend/abis/gnosisSafe.ts
+++ /dev/null
@@ -1,573 +0,0 @@
-export const GNOSIS_SAFE_ABI = [
- { inputs: [], stateMutability: 'nonpayable', type: 'constructor' },
- {
- anonymous: false,
- inputs: [
- {
- indexed: false,
- internalType: 'address',
- name: 'owner',
- type: 'address',
- },
- ],
- name: 'AddedOwner',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: 'bytes32',
- name: 'approvedHash',
- type: 'bytes32',
- },
- {
- indexed: true,
- internalType: 'address',
- name: 'owner',
- type: 'address',
- },
- ],
- name: 'ApproveHash',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: false,
- internalType: 'address',
- name: 'handler',
- type: 'address',
- },
- ],
- name: 'ChangedFallbackHandler',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: false,
- internalType: 'address',
- name: 'guard',
- type: 'address',
- },
- ],
- name: 'ChangedGuard',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: false,
- internalType: 'uint256',
- name: 'threshold',
- type: 'uint256',
- },
- ],
- name: 'ChangedThreshold',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: false,
- internalType: 'address',
- name: 'module',
- type: 'address',
- },
- ],
- name: 'DisabledModule',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: false,
- internalType: 'address',
- name: 'module',
- type: 'address',
- },
- ],
- name: 'EnabledModule',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: false,
- internalType: 'bytes32',
- name: 'txHash',
- type: 'bytes32',
- },
- {
- indexed: false,
- internalType: 'uint256',
- name: 'payment',
- type: 'uint256',
- },
- ],
- name: 'ExecutionFailure',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: 'address',
- name: 'module',
- type: 'address',
- },
- ],
- name: 'ExecutionFromModuleFailure',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: 'address',
- name: 'module',
- type: 'address',
- },
- ],
- name: 'ExecutionFromModuleSuccess',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: false,
- internalType: 'bytes32',
- name: 'txHash',
- type: 'bytes32',
- },
- {
- indexed: false,
- internalType: 'uint256',
- name: 'payment',
- type: 'uint256',
- },
- ],
- name: 'ExecutionSuccess',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: false,
- internalType: 'address',
- name: 'owner',
- type: 'address',
- },
- ],
- name: 'RemovedOwner',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: 'address',
- name: 'sender',
- type: 'address',
- },
- {
- indexed: false,
- internalType: 'uint256',
- name: 'value',
- type: 'uint256',
- },
- ],
- name: 'SafeReceived',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: 'address',
- name: 'initiator',
- type: 'address',
- },
- {
- indexed: false,
- internalType: 'address[]',
- name: 'owners',
- type: 'address[]',
- },
- {
- indexed: false,
- internalType: 'uint256',
- name: 'threshold',
- type: 'uint256',
- },
- {
- indexed: false,
- internalType: 'address',
- name: 'initializer',
- type: 'address',
- },
- {
- indexed: false,
- internalType: 'address',
- name: 'fallbackHandler',
- type: 'address',
- },
- ],
- name: 'SafeSetup',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: 'bytes32',
- name: 'msgHash',
- type: 'bytes32',
- },
- ],
- name: 'SignMsg',
- type: 'event',
- },
- { stateMutability: 'nonpayable', type: 'fallback' },
- {
- inputs: [],
- name: 'VERSION',
- outputs: [{ internalType: 'string', name: '', type: 'string' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'owner', type: 'address' },
- { internalType: 'uint256', name: '_threshold', type: 'uint256' },
- ],
- name: 'addOwnerWithThreshold',
- outputs: [],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'bytes32', name: 'hashToApprove', type: 'bytes32' },
- ],
- name: 'approveHash',
- outputs: [],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: '', type: 'address' },
- { internalType: 'bytes32', name: '', type: 'bytes32' },
- ],
- name: 'approvedHashes',
- outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'uint256', name: '_threshold', type: 'uint256' }],
- name: 'changeThreshold',
- outputs: [],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'bytes32', name: 'dataHash', type: 'bytes32' },
- { internalType: 'bytes', name: 'data', type: 'bytes' },
- { internalType: 'bytes', name: 'signatures', type: 'bytes' },
- { internalType: 'uint256', name: 'requiredSignatures', type: 'uint256' },
- ],
- name: 'checkNSignatures',
- outputs: [],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'bytes32', name: 'dataHash', type: 'bytes32' },
- { internalType: 'bytes', name: 'data', type: 'bytes' },
- { internalType: 'bytes', name: 'signatures', type: 'bytes' },
- ],
- name: 'checkSignatures',
- outputs: [],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'prevModule', type: 'address' },
- { internalType: 'address', name: 'module', type: 'address' },
- ],
- name: 'disableModule',
- outputs: [],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [],
- name: 'domainSeparator',
- outputs: [{ internalType: 'bytes32', name: '', type: 'bytes32' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'address', name: 'module', type: 'address' }],
- name: 'enableModule',
- outputs: [],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'to', type: 'address' },
- { internalType: 'uint256', name: 'value', type: 'uint256' },
- { internalType: 'bytes', name: 'data', type: 'bytes' },
- { internalType: 'enum Enum.Operation', name: 'operation', type: 'uint8' },
- { internalType: 'uint256', name: 'safeTxGas', type: 'uint256' },
- { internalType: 'uint256', name: 'baseGas', type: 'uint256' },
- { internalType: 'uint256', name: 'gasPrice', type: 'uint256' },
- { internalType: 'address', name: 'gasToken', type: 'address' },
- { internalType: 'address', name: 'refundReceiver', type: 'address' },
- { internalType: 'uint256', name: '_nonce', type: 'uint256' },
- ],
- name: 'encodeTransactionData',
- outputs: [{ internalType: 'bytes', name: '', type: 'bytes' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'to', type: 'address' },
- { internalType: 'uint256', name: 'value', type: 'uint256' },
- { internalType: 'bytes', name: 'data', type: 'bytes' },
- { internalType: 'enum Enum.Operation', name: 'operation', type: 'uint8' },
- { internalType: 'uint256', name: 'safeTxGas', type: 'uint256' },
- { internalType: 'uint256', name: 'baseGas', type: 'uint256' },
- { internalType: 'uint256', name: 'gasPrice', type: 'uint256' },
- { internalType: 'address', name: 'gasToken', type: 'address' },
- {
- internalType: 'address payable',
- name: 'refundReceiver',
- type: 'address',
- },
- { internalType: 'bytes', name: 'signatures', type: 'bytes' },
- ],
- name: 'execTransaction',
- outputs: [{ internalType: 'bool', name: 'success', type: 'bool' }],
- stateMutability: 'payable',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'to', type: 'address' },
- { internalType: 'uint256', name: 'value', type: 'uint256' },
- { internalType: 'bytes', name: 'data', type: 'bytes' },
- { internalType: 'enum Enum.Operation', name: 'operation', type: 'uint8' },
- ],
- name: 'execTransactionFromModule',
- outputs: [{ internalType: 'bool', name: 'success', type: 'bool' }],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'to', type: 'address' },
- { internalType: 'uint256', name: 'value', type: 'uint256' },
- { internalType: 'bytes', name: 'data', type: 'bytes' },
- { internalType: 'enum Enum.Operation', name: 'operation', type: 'uint8' },
- ],
- name: 'execTransactionFromModuleReturnData',
- outputs: [
- { internalType: 'bool', name: 'success', type: 'bool' },
- { internalType: 'bytes', name: 'returnData', type: 'bytes' },
- ],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [],
- name: 'getChainId',
- outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'start', type: 'address' },
- { internalType: 'uint256', name: 'pageSize', type: 'uint256' },
- ],
- name: 'getModulesPaginated',
- outputs: [
- { internalType: 'address[]', name: 'array', type: 'address[]' },
- { internalType: 'address', name: 'next', type: 'address' },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'getOwners',
- outputs: [{ internalType: 'address[]', name: '', type: 'address[]' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'uint256', name: 'offset', type: 'uint256' },
- { internalType: 'uint256', name: 'length', type: 'uint256' },
- ],
- name: 'getStorageAt',
- outputs: [{ internalType: 'bytes', name: '', type: 'bytes' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'getThreshold',
- outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'to', type: 'address' },
- { internalType: 'uint256', name: 'value', type: 'uint256' },
- { internalType: 'bytes', name: 'data', type: 'bytes' },
- { internalType: 'enum Enum.Operation', name: 'operation', type: 'uint8' },
- { internalType: 'uint256', name: 'safeTxGas', type: 'uint256' },
- { internalType: 'uint256', name: 'baseGas', type: 'uint256' },
- { internalType: 'uint256', name: 'gasPrice', type: 'uint256' },
- { internalType: 'address', name: 'gasToken', type: 'address' },
- { internalType: 'address', name: 'refundReceiver', type: 'address' },
- { internalType: 'uint256', name: '_nonce', type: 'uint256' },
- ],
- name: 'getTransactionHash',
- outputs: [{ internalType: 'bytes32', name: '', type: 'bytes32' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'address', name: 'module', type: 'address' }],
- name: 'isModuleEnabled',
- outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'address', name: 'owner', type: 'address' }],
- name: 'isOwner',
- outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'nonce',
- outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'prevOwner', type: 'address' },
- { internalType: 'address', name: 'owner', type: 'address' },
- { internalType: 'uint256', name: '_threshold', type: 'uint256' },
- ],
- name: 'removeOwner',
- outputs: [],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'to', type: 'address' },
- { internalType: 'uint256', name: 'value', type: 'uint256' },
- { internalType: 'bytes', name: 'data', type: 'bytes' },
- { internalType: 'enum Enum.Operation', name: 'operation', type: 'uint8' },
- ],
- name: 'requiredTxGas',
- outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'address', name: 'handler', type: 'address' }],
- name: 'setFallbackHandler',
- outputs: [],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'address', name: 'guard', type: 'address' }],
- name: 'setGuard',
- outputs: [],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address[]', name: '_owners', type: 'address[]' },
- { internalType: 'uint256', name: '_threshold', type: 'uint256' },
- { internalType: 'address', name: 'to', type: 'address' },
- { internalType: 'bytes', name: 'data', type: 'bytes' },
- { internalType: 'address', name: 'fallbackHandler', type: 'address' },
- { internalType: 'address', name: 'paymentToken', type: 'address' },
- { internalType: 'uint256', name: 'payment', type: 'uint256' },
- {
- internalType: 'address payable',
- name: 'paymentReceiver',
- type: 'address',
- },
- ],
- name: 'setup',
- outputs: [],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'bytes32', name: '', type: 'bytes32' }],
- name: 'signedMessages',
- outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'targetContract', type: 'address' },
- { internalType: 'bytes', name: 'calldataPayload', type: 'bytes' },
- ],
- name: 'simulateAndRevert',
- outputs: [],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'prevOwner', type: 'address' },
- { internalType: 'address', name: 'oldOwner', type: 'address' },
- { internalType: 'address', name: 'newOwner', type: 'address' },
- ],
- name: 'swapOwner',
- outputs: [],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- { stateMutability: 'payable', type: 'receive' },
-];
diff --git a/frontend/abis/mechActivityChecker.ts b/frontend/abis/mechActivityChecker.ts
deleted file mode 100644
index 125ee5ed6..000000000
--- a/frontend/abis/mechActivityChecker.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-export const MECH_ACTIVITY_CHECKER_ABI = [
- {
- inputs: [
- { internalType: 'address', name: '_agentMech', type: 'address' },
- { internalType: 'uint256', name: '_livenessRatio', type: 'uint256' },
- ],
- stateMutability: 'nonpayable',
- type: 'constructor',
- },
- { inputs: [], name: 'ZeroMechAgentAddress', type: 'error' },
- { inputs: [], name: 'ZeroValue', type: 'error' },
- {
- inputs: [],
- name: 'agentMech',
- outputs: [{ internalType: 'address', name: '', type: 'address' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'address', name: 'multisig', type: 'address' }],
- name: 'getMultisigNonces',
- outputs: [{ internalType: 'uint256[]', name: 'nonces', type: 'uint256[]' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'uint256[]', name: 'curNonces', type: 'uint256[]' },
- { internalType: 'uint256[]', name: 'lastNonces', type: 'uint256[]' },
- { internalType: 'uint256', name: 'ts', type: 'uint256' },
- ],
- name: 'isRatioPass',
- outputs: [{ internalType: 'bool', name: 'ratioPass', type: 'bool' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'livenessRatio',
- outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
- stateMutability: 'view',
- type: 'function',
- },
-];
diff --git a/frontend/abis/multicall3.ts b/frontend/abis/multicall3.ts
deleted file mode 100644
index 36a756aae..000000000
--- a/frontend/abis/multicall3.ts
+++ /dev/null
@@ -1,440 +0,0 @@
-export const MULTICALL3_ABI = [
- {
- inputs: [
- {
- components: [
- {
- internalType: 'address',
- name: 'target',
- type: 'address',
- },
- {
- internalType: 'bytes',
- name: 'callData',
- type: 'bytes',
- },
- ],
- internalType: 'struct Multicall3.Call[]',
- name: 'calls',
- type: 'tuple[]',
- },
- ],
- name: 'aggregate',
- outputs: [
- {
- internalType: 'uint256',
- name: 'blockNumber',
- type: 'uint256',
- },
- {
- internalType: 'bytes[]',
- name: 'returnData',
- type: 'bytes[]',
- },
- ],
- stateMutability: 'payable',
- type: 'function',
- },
- {
- inputs: [
- {
- components: [
- {
- internalType: 'address',
- name: 'target',
- type: 'address',
- },
- {
- internalType: 'bool',
- name: 'allowFailure',
- type: 'bool',
- },
- {
- internalType: 'bytes',
- name: 'callData',
- type: 'bytes',
- },
- ],
- internalType: 'struct Multicall3.Call3[]',
- name: 'calls',
- type: 'tuple[]',
- },
- ],
- name: 'aggregate3',
- outputs: [
- {
- components: [
- {
- internalType: 'bool',
- name: 'success',
- type: 'bool',
- },
- {
- internalType: 'bytes',
- name: 'returnData',
- type: 'bytes',
- },
- ],
- internalType: 'struct Multicall3.Result[]',
- name: 'returnData',
- type: 'tuple[]',
- },
- ],
- stateMutability: 'payable',
- type: 'function',
- },
- {
- inputs: [
- {
- components: [
- {
- internalType: 'address',
- name: 'target',
- type: 'address',
- },
- {
- internalType: 'bool',
- name: 'allowFailure',
- type: 'bool',
- },
- {
- internalType: 'uint256',
- name: 'value',
- type: 'uint256',
- },
- {
- internalType: 'bytes',
- name: 'callData',
- type: 'bytes',
- },
- ],
- internalType: 'struct Multicall3.Call3Value[]',
- name: 'calls',
- type: 'tuple[]',
- },
- ],
- name: 'aggregate3Value',
- outputs: [
- {
- components: [
- {
- internalType: 'bool',
- name: 'success',
- type: 'bool',
- },
- {
- internalType: 'bytes',
- name: 'returnData',
- type: 'bytes',
- },
- ],
- internalType: 'struct Multicall3.Result[]',
- name: 'returnData',
- type: 'tuple[]',
- },
- ],
- stateMutability: 'payable',
- type: 'function',
- },
- {
- inputs: [
- {
- components: [
- {
- internalType: 'address',
- name: 'target',
- type: 'address',
- },
- {
- internalType: 'bytes',
- name: 'callData',
- type: 'bytes',
- },
- ],
- internalType: 'struct Multicall3.Call[]',
- name: 'calls',
- type: 'tuple[]',
- },
- ],
- name: 'blockAndAggregate',
- outputs: [
- {
- internalType: 'uint256',
- name: 'blockNumber',
- type: 'uint256',
- },
- {
- internalType: 'bytes32',
- name: 'blockHash',
- type: 'bytes32',
- },
- {
- components: [
- {
- internalType: 'bool',
- name: 'success',
- type: 'bool',
- },
- {
- internalType: 'bytes',
- name: 'returnData',
- type: 'bytes',
- },
- ],
- internalType: 'struct Multicall3.Result[]',
- name: 'returnData',
- type: 'tuple[]',
- },
- ],
- stateMutability: 'payable',
- type: 'function',
- },
- {
- inputs: [],
- name: 'getBasefee',
- outputs: [
- {
- internalType: 'uint256',
- name: 'basefee',
- type: 'uint256',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- {
- internalType: 'uint256',
- name: 'blockNumber',
- type: 'uint256',
- },
- ],
- name: 'getBlockHash',
- outputs: [
- {
- internalType: 'bytes32',
- name: 'blockHash',
- type: 'bytes32',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'getBlockNumber',
- outputs: [
- {
- internalType: 'uint256',
- name: 'blockNumber',
- type: 'uint256',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'getChainId',
- outputs: [
- {
- internalType: 'uint256',
- name: 'chainid',
- type: 'uint256',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'getCurrentBlockCoinbase',
- outputs: [
- {
- internalType: 'address',
- name: 'coinbase',
- type: 'address',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'getCurrentBlockDifficulty',
- outputs: [
- {
- internalType: 'uint256',
- name: 'difficulty',
- type: 'uint256',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'getCurrentBlockGasLimit',
- outputs: [
- {
- internalType: 'uint256',
- name: 'gaslimit',
- type: 'uint256',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'getCurrentBlockTimestamp',
- outputs: [
- {
- internalType: 'uint256',
- name: 'timestamp',
- type: 'uint256',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- {
- internalType: 'address',
- name: 'addr',
- type: 'address',
- },
- ],
- name: 'getEthBalance',
- outputs: [
- {
- internalType: 'uint256',
- name: 'balance',
- type: 'uint256',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'getLastBlockHash',
- outputs: [
- {
- internalType: 'bytes32',
- name: 'blockHash',
- type: 'bytes32',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- {
- internalType: 'bool',
- name: 'requireSuccess',
- type: 'bool',
- },
- {
- components: [
- {
- internalType: 'address',
- name: 'target',
- type: 'address',
- },
- {
- internalType: 'bytes',
- name: 'callData',
- type: 'bytes',
- },
- ],
- internalType: 'struct Multicall3.Call[]',
- name: 'calls',
- type: 'tuple[]',
- },
- ],
- name: 'tryAggregate',
- outputs: [
- {
- components: [
- {
- internalType: 'bool',
- name: 'success',
- type: 'bool',
- },
- {
- internalType: 'bytes',
- name: 'returnData',
- type: 'bytes',
- },
- ],
- internalType: 'struct Multicall3.Result[]',
- name: 'returnData',
- type: 'tuple[]',
- },
- ],
- stateMutability: 'payable',
- type: 'function',
- },
- {
- inputs: [
- {
- internalType: 'bool',
- name: 'requireSuccess',
- type: 'bool',
- },
- {
- components: [
- {
- internalType: 'address',
- name: 'target',
- type: 'address',
- },
- {
- internalType: 'bytes',
- name: 'callData',
- type: 'bytes',
- },
- ],
- internalType: 'struct Multicall3.Call[]',
- name: 'calls',
- type: 'tuple[]',
- },
- ],
- name: 'tryBlockAndAggregate',
- outputs: [
- {
- internalType: 'uint256',
- name: 'blockNumber',
- type: 'uint256',
- },
- {
- internalType: 'bytes32',
- name: 'blockHash',
- type: 'bytes32',
- },
- {
- components: [
- {
- internalType: 'bool',
- name: 'success',
- type: 'bool',
- },
- {
- internalType: 'bytes',
- name: 'returnData',
- type: 'bytes',
- },
- ],
- internalType: 'struct Multicall3.Result[]',
- name: 'returnData',
- type: 'tuple[]',
- },
- ],
- stateMutability: 'payable',
- type: 'function',
- },
-];
diff --git a/frontend/abis/serviceRegistryL2.ts b/frontend/abis/serviceRegistryL2.ts
deleted file mode 100644
index b9465e7fe..000000000
--- a/frontend/abis/serviceRegistryL2.ts
+++ /dev/null
@@ -1,1009 +0,0 @@
-export const SERVICE_REGISTRY_L2_ABI = [
- {
- inputs: [
- { internalType: 'string', name: '_name', type: 'string' },
- { internalType: 'string', name: '_symbol', type: 'string' },
- { internalType: 'string', name: '_baseURI', type: 'string' },
- ],
- stateMutability: 'nonpayable',
- type: 'constructor',
- },
- {
- inputs: [{ internalType: 'address', name: 'operator', type: 'address' }],
- name: 'AgentInstanceRegistered',
- type: 'error',
- },
- {
- inputs: [{ internalType: 'uint256', name: 'serviceId', type: 'uint256' }],
- name: 'AgentInstancesSlotsFilled',
- type: 'error',
- },
- {
- inputs: [{ internalType: 'uint256', name: 'agentId', type: 'uint256' }],
- name: 'AgentNotFound',
- type: 'error',
- },
- {
- inputs: [
- { internalType: 'uint256', name: 'agentId', type: 'uint256' },
- { internalType: 'uint256', name: 'serviceId', type: 'uint256' },
- ],
- name: 'AgentNotInService',
- type: 'error',
- },
- {
- inputs: [{ internalType: 'uint256', name: 'componentId', type: 'uint256' }],
- name: 'ComponentNotFound',
- type: 'error',
- },
- { inputs: [], name: 'HashExists', type: 'error' },
- {
- inputs: [
- { internalType: 'uint256', name: 'sent', type: 'uint256' },
- { internalType: 'uint256', name: 'expected', type: 'uint256' },
- { internalType: 'uint256', name: 'serviceId', type: 'uint256' },
- ],
- name: 'IncorrectAgentBondingValue',
- type: 'error',
- },
- {
- inputs: [
- { internalType: 'uint256', name: 'sent', type: 'uint256' },
- { internalType: 'uint256', name: 'expected', type: 'uint256' },
- { internalType: 'uint256', name: 'serviceId', type: 'uint256' },
- ],
- name: 'IncorrectRegistrationDepositValue',
- type: 'error',
- },
- {
- inputs: [
- { internalType: 'address', name: 'sender', type: 'address' },
- { internalType: 'address', name: 'manager', type: 'address' },
- ],
- name: 'ManagerOnly',
- type: 'error',
- },
- {
- inputs: [
- { internalType: 'address', name: 'provided', type: 'address' },
- { internalType: 'address', name: 'expected', type: 'address' },
- { internalType: 'uint256', name: 'serviceId', type: 'uint256' },
- ],
- name: 'OnlyOwnServiceMultisig',
- type: 'error',
- },
- {
- inputs: [
- { internalType: 'address', name: 'operator', type: 'address' },
- { internalType: 'uint256', name: 'serviceId', type: 'uint256' },
- ],
- name: 'OperatorHasNoInstances',
- type: 'error',
- },
- {
- inputs: [
- { internalType: 'uint256', name: 'provided', type: 'uint256' },
- { internalType: 'uint256', name: 'max', type: 'uint256' },
- ],
- name: 'Overflow',
- type: 'error',
- },
- {
- inputs: [
- { internalType: 'address', name: 'sender', type: 'address' },
- { internalType: 'address', name: 'owner', type: 'address' },
- ],
- name: 'OwnerOnly',
- type: 'error',
- },
- { inputs: [], name: 'Paused', type: 'error' },
- { inputs: [], name: 'ReentrancyGuard', type: 'error' },
- {
- inputs: [{ internalType: 'uint256', name: 'serviceId', type: 'uint256' }],
- name: 'ServiceMustBeInactive',
- type: 'error',
- },
- {
- inputs: [
- { internalType: 'address', name: 'token', type: 'address' },
- { internalType: 'address', name: 'from', type: 'address' },
- { internalType: 'address', name: 'to', type: 'address' },
- { internalType: 'uint256', name: 'value', type: 'uint256' },
- ],
- name: 'TransferFailed',
- type: 'error',
- },
- {
- inputs: [{ internalType: 'address', name: 'multisig', type: 'address' }],
- name: 'UnauthorizedMultisig',
- type: 'error',
- },
- {
- inputs: [{ internalType: 'uint256', name: 'agentId', type: 'uint256' }],
- name: 'WrongAgentId',
- type: 'error',
- },
- {
- inputs: [
- { internalType: 'uint256', name: 'numValues1', type: 'uint256' },
- { internalType: 'uint256', name: 'numValues2', type: 'uint256' },
- ],
- name: 'WrongArrayLength',
- type: 'error',
- },
- {
- inputs: [{ internalType: 'uint256', name: 'serviceId', type: 'uint256' }],
- name: 'WrongOperator',
- type: 'error',
- },
- {
- inputs: [
- { internalType: 'uint256', name: 'state', type: 'uint256' },
- { internalType: 'uint256', name: 'serviceId', type: 'uint256' },
- ],
- name: 'WrongServiceState',
- type: 'error',
- },
- {
- inputs: [
- { internalType: 'uint256', name: 'currentThreshold', type: 'uint256' },
- { internalType: 'uint256', name: 'minThreshold', type: 'uint256' },
- { internalType: 'uint256', name: 'maxThreshold', type: 'uint256' },
- ],
- name: 'WrongThreshold',
- type: 'error',
- },
- { inputs: [], name: 'ZeroAddress', type: 'error' },
- { inputs: [], name: 'ZeroValue', type: 'error' },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: 'uint256',
- name: 'serviceId',
- type: 'uint256',
- },
- ],
- name: 'ActivateRegistration',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: 'address',
- name: 'owner',
- type: 'address',
- },
- {
- indexed: true,
- internalType: 'address',
- name: 'spender',
- type: 'address',
- },
- { indexed: true, internalType: 'uint256', name: 'id', type: 'uint256' },
- ],
- name: 'Approval',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: 'address',
- name: 'owner',
- type: 'address',
- },
- {
- indexed: true,
- internalType: 'address',
- name: 'operator',
- type: 'address',
- },
- { indexed: false, internalType: 'bool', name: 'approved', type: 'bool' },
- ],
- name: 'ApprovalForAll',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: false,
- internalType: 'string',
- name: 'baseURI',
- type: 'string',
- },
- ],
- name: 'BaseURIChanged',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: 'uint256',
- name: 'serviceId',
- type: 'uint256',
- },
- {
- indexed: true,
- internalType: 'address',
- name: 'multisig',
- type: 'address',
- },
- ],
- name: 'CreateMultisigWithAgents',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: 'uint256',
- name: 'serviceId',
- type: 'uint256',
- },
- {
- indexed: false,
- internalType: 'bytes32',
- name: 'configHash',
- type: 'bytes32',
- },
- ],
- name: 'CreateService',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: 'uint256',
- name: 'serviceId',
- type: 'uint256',
- },
- ],
- name: 'DeployService',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: 'address',
- name: 'sender',
- type: 'address',
- },
- {
- indexed: false,
- internalType: 'uint256',
- name: 'amount',
- type: 'uint256',
- },
- ],
- name: 'Deposit',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: 'address',
- name: 'drainer',
- type: 'address',
- },
- {
- indexed: false,
- internalType: 'uint256',
- name: 'amount',
- type: 'uint256',
- },
- ],
- name: 'Drain',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: 'address',
- name: 'drainer',
- type: 'address',
- },
- ],
- name: 'DrainerUpdated',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: 'address',
- name: 'manager',
- type: 'address',
- },
- ],
- name: 'ManagerUpdated',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: false,
- internalType: 'uint256',
- name: 'amount',
- type: 'uint256',
- },
- {
- indexed: true,
- internalType: 'address',
- name: 'operator',
- type: 'address',
- },
- {
- indexed: true,
- internalType: 'uint256',
- name: 'serviceId',
- type: 'uint256',
- },
- ],
- name: 'OperatorSlashed',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: 'address',
- name: 'operator',
- type: 'address',
- },
- {
- indexed: true,
- internalType: 'uint256',
- name: 'serviceId',
- type: 'uint256',
- },
- ],
- name: 'OperatorUnbond',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: 'address',
- name: 'owner',
- type: 'address',
- },
- ],
- name: 'OwnerUpdated',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: 'address',
- name: 'receiver',
- type: 'address',
- },
- {
- indexed: false,
- internalType: 'uint256',
- name: 'amount',
- type: 'uint256',
- },
- ],
- name: 'Refund',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: 'address',
- name: 'operator',
- type: 'address',
- },
- {
- indexed: true,
- internalType: 'uint256',
- name: 'serviceId',
- type: 'uint256',
- },
- {
- indexed: true,
- internalType: 'address',
- name: 'agentInstance',
- type: 'address',
- },
- {
- indexed: false,
- internalType: 'uint256',
- name: 'agentId',
- type: 'uint256',
- },
- ],
- name: 'RegisterInstance',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: 'uint256',
- name: 'serviceId',
- type: 'uint256',
- },
- ],
- name: 'TerminateService',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- { indexed: true, internalType: 'address', name: 'from', type: 'address' },
- { indexed: true, internalType: 'address', name: 'to', type: 'address' },
- { indexed: true, internalType: 'uint256', name: 'id', type: 'uint256' },
- ],
- name: 'Transfer',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: 'uint256',
- name: 'serviceId',
- type: 'uint256',
- },
- {
- indexed: false,
- internalType: 'bytes32',
- name: 'configHash',
- type: 'bytes32',
- },
- ],
- name: 'UpdateService',
- type: 'event',
- },
- {
- inputs: [],
- name: 'CID_PREFIX',
- outputs: [{ internalType: 'string', name: '', type: 'string' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'VERSION',
- outputs: [{ internalType: 'string', name: '', type: 'string' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'serviceOwner', type: 'address' },
- { internalType: 'uint256', name: 'serviceId', type: 'uint256' },
- ],
- name: 'activateRegistration',
- outputs: [{ internalType: 'bool', name: 'success', type: 'bool' }],
- stateMutability: 'payable',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'spender', type: 'address' },
- { internalType: 'uint256', name: 'id', type: 'uint256' },
- ],
- name: 'approve',
- outputs: [],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'address', name: 'owner', type: 'address' }],
- name: 'balanceOf',
- outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'baseURI',
- outputs: [{ internalType: 'string', name: '', type: 'string' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'address', name: 'newDrainer', type: 'address' }],
- name: 'changeDrainer',
- outputs: [],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'address', name: 'newManager', type: 'address' }],
- name: 'changeManager',
- outputs: [],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'multisig', type: 'address' },
- { internalType: 'bool', name: 'permission', type: 'bool' },
- ],
- name: 'changeMultisigPermission',
- outputs: [{ internalType: 'bool', name: 'success', type: 'bool' }],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'address', name: 'newOwner', type: 'address' }],
- name: 'changeOwner',
- outputs: [],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'serviceOwner', type: 'address' },
- { internalType: 'bytes32', name: 'configHash', type: 'bytes32' },
- { internalType: 'uint32[]', name: 'agentIds', type: 'uint32[]' },
- {
- components: [
- { internalType: 'uint32', name: 'slots', type: 'uint32' },
- { internalType: 'uint96', name: 'bond', type: 'uint96' },
- ],
- internalType: 'struct AgentParams[]',
- name: 'agentParams',
- type: 'tuple[]',
- },
- { internalType: 'uint32', name: 'threshold', type: 'uint32' },
- ],
- name: 'create',
- outputs: [{ internalType: 'uint256', name: 'serviceId', type: 'uint256' }],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'serviceOwner', type: 'address' },
- { internalType: 'uint256', name: 'serviceId', type: 'uint256' },
- {
- internalType: 'address',
- name: 'multisigImplementation',
- type: 'address',
- },
- { internalType: 'bytes', name: 'data', type: 'bytes' },
- ],
- name: 'deploy',
- outputs: [{ internalType: 'address', name: 'multisig', type: 'address' }],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [],
- name: 'drain',
- outputs: [{ internalType: 'uint256', name: 'amount', type: 'uint256' }],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [],
- name: 'drainer',
- outputs: [{ internalType: 'address', name: '', type: 'address' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'uint256', name: 'unitId', type: 'uint256' }],
- name: 'exists',
- outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'uint256', name: 'serviceId', type: 'uint256' }],
- name: 'getAgentInstances',
- outputs: [
- { internalType: 'uint256', name: 'numAgentInstances', type: 'uint256' },
- { internalType: 'address[]', name: 'agentInstances', type: 'address[]' },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'uint256', name: 'serviceId', type: 'uint256' }],
- name: 'getAgentParams',
- outputs: [
- { internalType: 'uint256', name: 'numAgentIds', type: 'uint256' },
- {
- components: [
- { internalType: 'uint32', name: 'slots', type: 'uint32' },
- { internalType: 'uint96', name: 'bond', type: 'uint96' },
- ],
- internalType: 'struct AgentParams[]',
- name: 'agentParams',
- type: 'tuple[]',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
- name: 'getApproved',
- outputs: [{ internalType: 'address', name: '', type: 'address' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'uint256', name: 'serviceId', type: 'uint256' },
- { internalType: 'uint256', name: 'agentId', type: 'uint256' },
- ],
- name: 'getInstancesForAgentId',
- outputs: [
- { internalType: 'uint256', name: 'numAgentInstances', type: 'uint256' },
- { internalType: 'address[]', name: 'agentInstances', type: 'address[]' },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'operator', type: 'address' },
- { internalType: 'uint256', name: 'serviceId', type: 'uint256' },
- ],
- name: 'getOperatorBalance',
- outputs: [{ internalType: 'uint256', name: 'balance', type: 'uint256' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'uint256', name: 'serviceId', type: 'uint256' }],
- name: 'getPreviousHashes',
- outputs: [
- { internalType: 'uint256', name: 'numHashes', type: 'uint256' },
- { internalType: 'bytes32[]', name: 'configHashes', type: 'bytes32[]' },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'uint256', name: 'serviceId', type: 'uint256' }],
- name: 'getService',
- outputs: [
- {
- components: [
- { internalType: 'uint96', name: 'securityDeposit', type: 'uint96' },
- { internalType: 'address', name: 'multisig', type: 'address' },
- { internalType: 'bytes32', name: 'configHash', type: 'bytes32' },
- { internalType: 'uint32', name: 'threshold', type: 'uint32' },
- {
- internalType: 'uint32',
- name: 'maxNumAgentInstances',
- type: 'uint32',
- },
- { internalType: 'uint32', name: 'numAgentInstances', type: 'uint32' },
- {
- internalType: 'enum ServiceRegistryL2.ServiceState',
- name: 'state',
- type: 'uint8',
- },
- { internalType: 'uint32[]', name: 'agentIds', type: 'uint32[]' },
- ],
- internalType: 'struct ServiceRegistryL2.Service',
- name: 'service',
- type: 'tuple',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: '', type: 'address' },
- { internalType: 'address', name: '', type: 'address' },
- ],
- name: 'isApprovedForAll',
- outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'manager',
- outputs: [{ internalType: 'address', name: '', type: 'address' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'address', name: '', type: 'address' }],
- name: 'mapAgentInstanceOperators',
- outputs: [{ internalType: 'address', name: '', type: 'address' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'uint256', name: '', type: 'uint256' },
- { internalType: 'uint256', name: '', type: 'uint256' },
- ],
- name: 'mapConfigHashes',
- outputs: [{ internalType: 'bytes32', name: '', type: 'bytes32' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'address', name: '', type: 'address' }],
- name: 'mapMultisigs',
- outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'uint256', name: '', type: 'uint256' },
- { internalType: 'uint256', name: '', type: 'uint256' },
- ],
- name: 'mapOperatorAndServiceIdAgentInstances',
- outputs: [
- { internalType: 'address', name: 'instance', type: 'address' },
- { internalType: 'uint32', name: 'agentId', type: 'uint32' },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
- name: 'mapOperatorAndServiceIdOperatorBalances',
- outputs: [{ internalType: 'uint96', name: '', type: 'uint96' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'uint256', name: '', type: 'uint256' },
- { internalType: 'uint256', name: '', type: 'uint256' },
- ],
- name: 'mapServiceAndAgentIdAgentInstances',
- outputs: [{ internalType: 'address', name: '', type: 'address' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
- name: 'mapServiceAndAgentIdAgentParams',
- outputs: [
- { internalType: 'uint32', name: 'slots', type: 'uint32' },
- { internalType: 'uint96', name: 'bond', type: 'uint96' },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
- name: 'mapServices',
- outputs: [
- { internalType: 'uint96', name: 'securityDeposit', type: 'uint96' },
- { internalType: 'address', name: 'multisig', type: 'address' },
- { internalType: 'bytes32', name: 'configHash', type: 'bytes32' },
- { internalType: 'uint32', name: 'threshold', type: 'uint32' },
- { internalType: 'uint32', name: 'maxNumAgentInstances', type: 'uint32' },
- { internalType: 'uint32', name: 'numAgentInstances', type: 'uint32' },
- {
- internalType: 'enum ServiceRegistryL2.ServiceState',
- name: 'state',
- type: 'uint8',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'name',
- outputs: [{ internalType: 'string', name: '', type: 'string' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'owner',
- outputs: [{ internalType: 'address', name: '', type: 'address' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'uint256', name: 'id', type: 'uint256' }],
- name: 'ownerOf',
- outputs: [{ internalType: 'address', name: 'owner', type: 'address' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'operator', type: 'address' },
- { internalType: 'uint256', name: 'serviceId', type: 'uint256' },
- { internalType: 'address[]', name: 'agentInstances', type: 'address[]' },
- { internalType: 'uint32[]', name: 'agentIds', type: 'uint32[]' },
- ],
- name: 'registerAgents',
- outputs: [{ internalType: 'bool', name: 'success', type: 'bool' }],
- stateMutability: 'payable',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'from', type: 'address' },
- { internalType: 'address', name: 'to', type: 'address' },
- { internalType: 'uint256', name: 'id', type: 'uint256' },
- ],
- name: 'safeTransferFrom',
- outputs: [],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'from', type: 'address' },
- { internalType: 'address', name: 'to', type: 'address' },
- { internalType: 'uint256', name: 'id', type: 'uint256' },
- { internalType: 'bytes', name: 'data', type: 'bytes' },
- ],
- name: 'safeTransferFrom',
- outputs: [],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'operator', type: 'address' },
- { internalType: 'bool', name: 'approved', type: 'bool' },
- ],
- name: 'setApprovalForAll',
- outputs: [],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'string', name: 'bURI', type: 'string' }],
- name: 'setBaseURI',
- outputs: [],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address[]', name: 'agentInstances', type: 'address[]' },
- { internalType: 'uint96[]', name: 'amounts', type: 'uint96[]' },
- { internalType: 'uint256', name: 'serviceId', type: 'uint256' },
- ],
- name: 'slash',
- outputs: [{ internalType: 'bool', name: 'success', type: 'bool' }],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [],
- name: 'slashedFunds',
- outputs: [{ internalType: 'uint96', name: '', type: 'uint96' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'bytes4', name: 'interfaceId', type: 'bytes4' }],
- name: 'supportsInterface',
- outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'symbol',
- outputs: [{ internalType: 'string', name: '', type: 'string' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'serviceOwner', type: 'address' },
- { internalType: 'uint256', name: 'serviceId', type: 'uint256' },
- ],
- name: 'terminate',
- outputs: [
- { internalType: 'bool', name: 'success', type: 'bool' },
- { internalType: 'uint256', name: 'refund', type: 'uint256' },
- ],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'uint256', name: 'id', type: 'uint256' }],
- name: 'tokenByIndex',
- outputs: [{ internalType: 'uint256', name: 'unitId', type: 'uint256' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'uint256', name: 'unitId', type: 'uint256' }],
- name: 'tokenURI',
- outputs: [{ internalType: 'string', name: '', type: 'string' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'totalSupply',
- outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'from', type: 'address' },
- { internalType: 'address', name: 'to', type: 'address' },
- { internalType: 'uint256', name: 'id', type: 'uint256' },
- ],
- name: 'transferFrom',
- outputs: [],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'operator', type: 'address' },
- { internalType: 'uint256', name: 'serviceId', type: 'uint256' },
- ],
- name: 'unbond',
- outputs: [
- { internalType: 'bool', name: 'success', type: 'bool' },
- { internalType: 'uint256', name: 'refund', type: 'uint256' },
- ],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'serviceOwner', type: 'address' },
- { internalType: 'bytes32', name: 'configHash', type: 'bytes32' },
- { internalType: 'uint32[]', name: 'agentIds', type: 'uint32[]' },
- {
- components: [
- { internalType: 'uint32', name: 'slots', type: 'uint32' },
- { internalType: 'uint96', name: 'bond', type: 'uint96' },
- ],
- internalType: 'struct AgentParams[]',
- name: 'agentParams',
- type: 'tuple[]',
- },
- { internalType: 'uint32', name: 'threshold', type: 'uint32' },
- { internalType: 'uint256', name: 'serviceId', type: 'uint256' },
- ],
- name: 'update',
- outputs: [{ internalType: 'bool', name: 'success', type: 'bool' }],
- stateMutability: 'nonpayable',
- type: 'function',
- },
-];
diff --git a/frontend/abis/serviceRegistryTokenUtility.ts b/frontend/abis/serviceRegistryTokenUtility.ts
deleted file mode 100644
index be730e53c..000000000
--- a/frontend/abis/serviceRegistryTokenUtility.ts
+++ /dev/null
@@ -1,481 +0,0 @@
-export const SERVICE_REGISTRY_TOKEN_UTILITY_ABI = [
- {
- inputs: [
- { internalType: 'address', name: '_serviceRegistry', type: 'address' },
- ],
- stateMutability: 'nonpayable',
- type: 'constructor',
- },
- {
- inputs: [{ internalType: 'address', name: 'operator', type: 'address' }],
- name: 'AgentInstanceRegistered',
- type: 'error',
- },
- {
- inputs: [{ internalType: 'uint256', name: 'serviceId', type: 'uint256' }],
- name: 'AgentInstancesSlotsFilled',
- type: 'error',
- },
- {
- inputs: [{ internalType: 'uint256', name: 'agentId', type: 'uint256' }],
- name: 'AgentNotFound',
- type: 'error',
- },
- {
- inputs: [
- { internalType: 'uint256', name: 'agentId', type: 'uint256' },
- { internalType: 'uint256', name: 'serviceId', type: 'uint256' },
- ],
- name: 'AgentNotInService',
- type: 'error',
- },
- {
- inputs: [{ internalType: 'uint256', name: 'componentId', type: 'uint256' }],
- name: 'ComponentNotFound',
- type: 'error',
- },
- { inputs: [], name: 'HashExists', type: 'error' },
- {
- inputs: [
- { internalType: 'uint256', name: 'sent', type: 'uint256' },
- { internalType: 'uint256', name: 'expected', type: 'uint256' },
- { internalType: 'uint256', name: 'serviceId', type: 'uint256' },
- ],
- name: 'IncorrectAgentBondingValue',
- type: 'error',
- },
- {
- inputs: [
- { internalType: 'uint256', name: 'sent', type: 'uint256' },
- { internalType: 'uint256', name: 'expected', type: 'uint256' },
- { internalType: 'uint256', name: 'serviceId', type: 'uint256' },
- ],
- name: 'IncorrectRegistrationDepositValue',
- type: 'error',
- },
- {
- inputs: [
- { internalType: 'address', name: 'sender', type: 'address' },
- { internalType: 'address', name: 'manager', type: 'address' },
- ],
- name: 'ManagerOnly',
- type: 'error',
- },
- {
- inputs: [
- { internalType: 'address', name: 'provided', type: 'address' },
- { internalType: 'address', name: 'expected', type: 'address' },
- { internalType: 'uint256', name: 'serviceId', type: 'uint256' },
- ],
- name: 'OnlyOwnServiceMultisig',
- type: 'error',
- },
- {
- inputs: [
- { internalType: 'address', name: 'operator', type: 'address' },
- { internalType: 'uint256', name: 'serviceId', type: 'uint256' },
- ],
- name: 'OperatorHasNoInstances',
- type: 'error',
- },
- {
- inputs: [
- { internalType: 'uint256', name: 'provided', type: 'uint256' },
- { internalType: 'uint256', name: 'max', type: 'uint256' },
- ],
- name: 'Overflow',
- type: 'error',
- },
- {
- inputs: [
- { internalType: 'address', name: 'sender', type: 'address' },
- { internalType: 'address', name: 'owner', type: 'address' },
- ],
- name: 'OwnerOnly',
- type: 'error',
- },
- { inputs: [], name: 'Paused', type: 'error' },
- { inputs: [], name: 'ReentrancyGuard', type: 'error' },
- {
- inputs: [{ internalType: 'uint256', name: 'serviceId', type: 'uint256' }],
- name: 'ServiceMustBeInactive',
- type: 'error',
- },
- {
- inputs: [{ internalType: 'address', name: 'token', type: 'address' }],
- name: 'TokenRejected',
- type: 'error',
- },
- {
- inputs: [
- { internalType: 'address', name: 'token', type: 'address' },
- { internalType: 'address', name: 'from', type: 'address' },
- { internalType: 'address', name: 'to', type: 'address' },
- { internalType: 'uint256', name: 'value', type: 'uint256' },
- ],
- name: 'TransferFailed',
- type: 'error',
- },
- {
- inputs: [{ internalType: 'address', name: 'multisig', type: 'address' }],
- name: 'UnauthorizedMultisig',
- type: 'error',
- },
- {
- inputs: [{ internalType: 'uint256', name: 'agentId', type: 'uint256' }],
- name: 'WrongAgentId',
- type: 'error',
- },
- {
- inputs: [
- { internalType: 'uint256', name: 'numValues1', type: 'uint256' },
- { internalType: 'uint256', name: 'numValues2', type: 'uint256' },
- ],
- name: 'WrongArrayLength',
- type: 'error',
- },
- {
- inputs: [{ internalType: 'uint256', name: 'serviceId', type: 'uint256' }],
- name: 'WrongOperator',
- type: 'error',
- },
- {
- inputs: [
- { internalType: 'uint256', name: 'state', type: 'uint256' },
- { internalType: 'uint256', name: 'serviceId', type: 'uint256' },
- ],
- name: 'WrongServiceState',
- type: 'error',
- },
- {
- inputs: [
- { internalType: 'uint256', name: 'currentThreshold', type: 'uint256' },
- { internalType: 'uint256', name: 'minThreshold', type: 'uint256' },
- { internalType: 'uint256', name: 'maxThreshold', type: 'uint256' },
- ],
- name: 'WrongThreshold',
- type: 'error',
- },
- { inputs: [], name: 'ZeroAddress', type: 'error' },
- { inputs: [], name: 'ZeroValue', type: 'error' },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: 'address',
- name: 'drainer',
- type: 'address',
- },
- ],
- name: 'DrainerUpdated',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: 'address',
- name: 'manager',
- type: 'address',
- },
- ],
- name: 'ManagerUpdated',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: false,
- internalType: 'uint256',
- name: 'amount',
- type: 'uint256',
- },
- {
- indexed: true,
- internalType: 'address',
- name: 'operator',
- type: 'address',
- },
- {
- indexed: true,
- internalType: 'uint256',
- name: 'serviceId',
- type: 'uint256',
- },
- ],
- name: 'OperatorTokenSlashed',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: 'address',
- name: 'owner',
- type: 'address',
- },
- ],
- name: 'OwnerUpdated',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: 'address',
- name: 'account',
- type: 'address',
- },
- {
- indexed: true,
- internalType: 'address',
- name: 'token',
- type: 'address',
- },
- {
- indexed: false,
- internalType: 'uint256',
- name: 'amount',
- type: 'uint256',
- },
- ],
- name: 'TokenDeposit',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: 'address',
- name: 'drainer',
- type: 'address',
- },
- {
- indexed: true,
- internalType: 'address',
- name: 'token',
- type: 'address',
- },
- {
- indexed: false,
- internalType: 'uint256',
- name: 'amount',
- type: 'uint256',
- },
- ],
- name: 'TokenDrain',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: 'address',
- name: 'account',
- type: 'address',
- },
- {
- indexed: true,
- internalType: 'address',
- name: 'token',
- type: 'address',
- },
- {
- indexed: false,
- internalType: 'uint256',
- name: 'amount',
- type: 'uint256',
- },
- ],
- name: 'TokenRefund',
- type: 'event',
- },
- {
- inputs: [{ internalType: 'uint256', name: 'serviceId', type: 'uint256' }],
- name: 'activateRegistrationTokenDeposit',
- outputs: [{ internalType: 'bool', name: 'isTokenSecured', type: 'bool' }],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'address', name: 'newDrainer', type: 'address' }],
- name: 'changeDrainer',
- outputs: [],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'address', name: 'newManager', type: 'address' }],
- name: 'changeManager',
- outputs: [],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'address', name: 'newOwner', type: 'address' }],
- name: 'changeOwner',
- outputs: [],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'uint256', name: 'serviceId', type: 'uint256' },
- { internalType: 'address', name: 'token', type: 'address' },
- { internalType: 'uint32[]', name: 'agentIds', type: 'uint32[]' },
- { internalType: 'uint256[]', name: 'bonds', type: 'uint256[]' },
- ],
- name: 'createWithToken',
- outputs: [],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'address', name: 'token', type: 'address' }],
- name: 'drain',
- outputs: [{ internalType: 'uint256', name: 'amount', type: 'uint256' }],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [],
- name: 'drainer',
- outputs: [{ internalType: 'address', name: '', type: 'address' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'uint256', name: 'serviceId', type: 'uint256' },
- { internalType: 'uint256', name: 'agentId', type: 'uint256' },
- ],
- name: 'getAgentBond',
- outputs: [{ internalType: 'uint256', name: 'bond', type: 'uint256' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'operator', type: 'address' },
- { internalType: 'uint256', name: 'serviceId', type: 'uint256' },
- ],
- name: 'getOperatorBalance',
- outputs: [{ internalType: 'uint256', name: 'balance', type: 'uint256' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'uint256', name: 'serviceId', type: 'uint256' }],
- name: 'isTokenSecuredService',
- outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'manager',
- outputs: [{ internalType: 'address', name: '', type: 'address' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
- name: 'mapOperatorAndServiceIdOperatorBalances',
- outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
- name: 'mapServiceAndAgentIdAgentBond',
- outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
- name: 'mapServiceIdTokenDeposit',
- outputs: [
- { internalType: 'address', name: 'token', type: 'address' },
- { internalType: 'uint96', name: 'securityDeposit', type: 'uint96' },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'address', name: '', type: 'address' }],
- name: 'mapSlashedFunds',
- outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'owner',
- outputs: [{ internalType: 'address', name: '', type: 'address' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'operator', type: 'address' },
- { internalType: 'uint256', name: 'serviceId', type: 'uint256' },
- { internalType: 'uint32[]', name: 'agentIds', type: 'uint32[]' },
- ],
- name: 'registerAgentsTokenDeposit',
- outputs: [{ internalType: 'bool', name: 'isTokenSecured', type: 'bool' }],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'uint256', name: 'serviceId', type: 'uint256' }],
- name: 'resetServiceToken',
- outputs: [],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [],
- name: 'serviceRegistry',
- outputs: [{ internalType: 'address', name: '', type: 'address' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address[]', name: 'agentInstances', type: 'address[]' },
- { internalType: 'uint256[]', name: 'amounts', type: 'uint256[]' },
- { internalType: 'uint256', name: 'serviceId', type: 'uint256' },
- ],
- name: 'slash',
- outputs: [{ internalType: 'bool', name: 'success', type: 'bool' }],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'uint256', name: 'serviceId', type: 'uint256' }],
- name: 'terminateTokenRefund',
- outputs: [
- { internalType: 'uint256', name: 'securityRefund', type: 'uint256' },
- ],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'operator', type: 'address' },
- { internalType: 'uint256', name: 'serviceId', type: 'uint256' },
- ],
- name: 'unbondTokenRefund',
- outputs: [{ internalType: 'uint256', name: 'refund', type: 'uint256' }],
- stateMutability: 'nonpayable',
- type: 'function',
- },
-];
diff --git a/frontend/abis/serviceStakingTokenMechUsage.ts b/frontend/abis/serviceStakingTokenMechUsage.ts
deleted file mode 100644
index 0f1a270da..000000000
--- a/frontend/abis/serviceStakingTokenMechUsage.ts
+++ /dev/null
@@ -1,1265 +0,0 @@
-export const SERVICE_STAKING_TOKEN_MECH_USAGE_ABI = [
- {
- inputs: [],
- name: 'AlreadyInitialized',
- type: 'error',
- },
- {
- inputs: [
- {
- internalType: 'address',
- name: 'activityChecker',
- type: 'address',
- },
- ],
- name: 'ContractOnly',
- type: 'error',
- },
- {
- inputs: [
- {
- internalType: 'uint256',
- name: 'provided',
- type: 'uint256',
- },
- {
- internalType: 'uint256',
- name: 'expected',
- type: 'uint256',
- },
- ],
- name: 'LowerThan',
- type: 'error',
- },
- {
- inputs: [
- {
- internalType: 'uint256',
- name: 'maxNumServices',
- type: 'uint256',
- },
- ],
- name: 'MaxNumServicesReached',
- type: 'error',
- },
- {
- inputs: [],
- name: 'NoRewardsAvailable',
- type: 'error',
- },
- {
- inputs: [
- {
- internalType: 'uint256',
- name: 'serviceId',
- type: 'uint256',
- },
- {
- internalType: 'uint256',
- name: 'tsProvided',
- type: 'uint256',
- },
- {
- internalType: 'uint256',
- name: 'tsExpected',
- type: 'uint256',
- },
- ],
- name: 'NotEnoughTimeStaked',
- type: 'error',
- },
- {
- inputs: [
- {
- internalType: 'address',
- name: 'sender',
- type: 'address',
- },
- {
- internalType: 'address',
- name: 'owner',
- type: 'address',
- },
- ],
- name: 'OwnerOnly',
- type: 'error',
- },
- {
- inputs: [
- {
- internalType: 'uint256',
- name: 'serviceId',
- type: 'uint256',
- },
- ],
- name: 'ServiceNotUnstaked',
- type: 'error',
- },
- {
- inputs: [
- {
- internalType: 'address',
- name: 'token',
- type: 'address',
- },
- {
- internalType: 'address',
- name: 'from',
- type: 'address',
- },
- {
- internalType: 'address',
- name: 'to',
- type: 'address',
- },
- {
- internalType: 'uint256',
- name: 'value',
- type: 'uint256',
- },
- ],
- name: 'TokenTransferFailed',
- type: 'error',
- },
- {
- inputs: [
- {
- internalType: 'address',
- name: 'multisig',
- type: 'address',
- },
- ],
- name: 'UnauthorizedMultisig',
- type: 'error',
- },
- {
- inputs: [
- {
- internalType: 'uint256',
- name: 'provided',
- type: 'uint256',
- },
- {
- internalType: 'uint256',
- name: 'expected',
- type: 'uint256',
- },
- ],
- name: 'ValueLowerThan',
- type: 'error',
- },
- {
- inputs: [
- {
- internalType: 'uint256',
- name: 'agentId',
- type: 'uint256',
- },
- ],
- name: 'WrongAgentId',
- type: 'error',
- },
- {
- inputs: [
- {
- internalType: 'uint256',
- name: 'serviceId',
- type: 'uint256',
- },
- ],
- name: 'WrongServiceConfiguration',
- type: 'error',
- },
- {
- inputs: [
- {
- internalType: 'uint256',
- name: 'state',
- type: 'uint256',
- },
- {
- internalType: 'uint256',
- name: 'serviceId',
- type: 'uint256',
- },
- ],
- name: 'WrongServiceState',
- type: 'error',
- },
- {
- inputs: [
- {
- internalType: 'address',
- name: 'expected',
- type: 'address',
- },
- {
- internalType: 'address',
- name: 'provided',
- type: 'address',
- },
- ],
- name: 'WrongStakingToken',
- type: 'error',
- },
- {
- inputs: [],
- name: 'ZeroAddress',
- type: 'error',
- },
- {
- inputs: [],
- name: 'ZeroTokenAddress',
- type: 'error',
- },
- {
- inputs: [],
- name: 'ZeroValue',
- type: 'error',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: 'uint256',
- name: 'epoch',
- type: 'uint256',
- },
- {
- indexed: false,
- internalType: 'uint256',
- name: 'availableRewards',
- type: 'uint256',
- },
- {
- indexed: false,
- internalType: 'uint256[]',
- name: 'serviceIds',
- type: 'uint256[]',
- },
- {
- indexed: false,
- internalType: 'uint256[]',
- name: 'rewards',
- type: 'uint256[]',
- },
- {
- indexed: false,
- internalType: 'uint256',
- name: 'epochLength',
- type: 'uint256',
- },
- ],
- name: 'Checkpoint',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: 'address',
- name: 'sender',
- type: 'address',
- },
- {
- indexed: false,
- internalType: 'uint256',
- name: 'amount',
- type: 'uint256',
- },
- {
- indexed: false,
- internalType: 'uint256',
- name: 'balance',
- type: 'uint256',
- },
- {
- indexed: false,
- internalType: 'uint256',
- name: 'availableRewards',
- type: 'uint256',
- },
- ],
- name: 'Deposit',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: false,
- internalType: 'uint256',
- name: 'epoch',
- type: 'uint256',
- },
- {
- indexed: true,
- internalType: 'uint256',
- name: 'serviceId',
- type: 'uint256',
- },
- {
- indexed: true,
- internalType: 'address',
- name: 'owner',
- type: 'address',
- },
- {
- indexed: true,
- internalType: 'address',
- name: 'multisig',
- type: 'address',
- },
- {
- indexed: false,
- internalType: 'uint256[]',
- name: 'nonces',
- type: 'uint256[]',
- },
- {
- indexed: false,
- internalType: 'uint256',
- name: 'reward',
- type: 'uint256',
- },
- ],
- name: 'RewardClaimed',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: false,
- internalType: 'uint256',
- name: 'epoch',
- type: 'uint256',
- },
- {
- indexed: true,
- internalType: 'uint256',
- name: 'serviceId',
- type: 'uint256',
- },
- {
- indexed: false,
- internalType: 'uint256',
- name: 'serviceInactivity',
- type: 'uint256',
- },
- ],
- name: 'ServiceInactivityWarning',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: false,
- internalType: 'uint256',
- name: 'epoch',
- type: 'uint256',
- },
- {
- indexed: true,
- internalType: 'uint256',
- name: 'serviceId',
- type: 'uint256',
- },
- {
- indexed: true,
- internalType: 'address',
- name: 'owner',
- type: 'address',
- },
- {
- indexed: true,
- internalType: 'address',
- name: 'multisig',
- type: 'address',
- },
- {
- indexed: false,
- internalType: 'uint256[]',
- name: 'nonces',
- type: 'uint256[]',
- },
- ],
- name: 'ServiceStaked',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: false,
- internalType: 'uint256',
- name: 'epoch',
- type: 'uint256',
- },
- {
- indexed: true,
- internalType: 'uint256',
- name: 'serviceId',
- type: 'uint256',
- },
- {
- indexed: true,
- internalType: 'address',
- name: 'owner',
- type: 'address',
- },
- {
- indexed: true,
- internalType: 'address',
- name: 'multisig',
- type: 'address',
- },
- {
- indexed: false,
- internalType: 'uint256[]',
- name: 'nonces',
- type: 'uint256[]',
- },
- {
- indexed: false,
- internalType: 'uint256',
- name: 'reward',
- type: 'uint256',
- },
- ],
- name: 'ServiceUnstaked',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: 'uint256',
- name: 'epoch',
- type: 'uint256',
- },
- {
- indexed: false,
- internalType: 'uint256[]',
- name: 'serviceIds',
- type: 'uint256[]',
- },
- {
- indexed: false,
- internalType: 'address[]',
- name: 'owners',
- type: 'address[]',
- },
- {
- indexed: false,
- internalType: 'address[]',
- name: 'multisigs',
- type: 'address[]',
- },
- {
- indexed: false,
- internalType: 'uint256[]',
- name: 'serviceInactivity',
- type: 'uint256[]',
- },
- ],
- name: 'ServicesEvicted',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: 'address',
- name: 'to',
- type: 'address',
- },
- {
- indexed: false,
- internalType: 'uint256',
- name: 'amount',
- type: 'uint256',
- },
- ],
- name: 'Withdraw',
- type: 'event',
- },
- {
- inputs: [],
- name: 'VERSION',
- outputs: [
- {
- internalType: 'string',
- name: '',
- type: 'string',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'activityChecker',
- outputs: [
- {
- internalType: 'address',
- name: '',
- type: 'address',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- {
- internalType: 'uint256',
- name: '',
- type: 'uint256',
- },
- ],
- name: 'agentIds',
- outputs: [
- {
- internalType: 'uint256',
- name: '',
- type: 'uint256',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'availableRewards',
- outputs: [
- {
- internalType: 'uint256',
- name: '',
- type: 'uint256',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'balance',
- outputs: [
- {
- internalType: 'uint256',
- name: '',
- type: 'uint256',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- {
- internalType: 'uint256',
- name: 'serviceId',
- type: 'uint256',
- },
- ],
- name: 'calculateStakingLastReward',
- outputs: [
- {
- internalType: 'uint256',
- name: 'reward',
- type: 'uint256',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- {
- internalType: 'uint256',
- name: 'serviceId',
- type: 'uint256',
- },
- ],
- name: 'calculateStakingReward',
- outputs: [
- {
- internalType: 'uint256',
- name: 'reward',
- type: 'uint256',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'checkpoint',
- outputs: [
- {
- internalType: 'uint256[]',
- name: '',
- type: 'uint256[]',
- },
- {
- internalType: 'uint256[][]',
- name: '',
- type: 'uint256[][]',
- },
- {
- internalType: 'uint256[]',
- name: '',
- type: 'uint256[]',
- },
- {
- internalType: 'uint256[]',
- name: '',
- type: 'uint256[]',
- },
- {
- internalType: 'uint256[]',
- name: 'evictServiceIds',
- type: 'uint256[]',
- },
- ],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [
- {
- internalType: 'uint256',
- name: 'serviceId',
- type: 'uint256',
- },
- ],
- name: 'checkpointAndClaim',
- outputs: [
- {
- internalType: 'uint256',
- name: '',
- type: 'uint256',
- },
- ],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [
- {
- internalType: 'uint256',
- name: 'serviceId',
- type: 'uint256',
- },
- ],
- name: 'claim',
- outputs: [
- {
- internalType: 'uint256',
- name: '',
- type: 'uint256',
- },
- ],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [],
- name: 'configHash',
- outputs: [
- {
- internalType: 'bytes32',
- name: '',
- type: 'bytes32',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- {
- internalType: 'uint256',
- name: 'amount',
- type: 'uint256',
- },
- ],
- name: 'deposit',
- outputs: [],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [],
- name: 'emissionsAmount',
- outputs: [
- {
- internalType: 'uint256',
- name: '',
- type: 'uint256',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'epochCounter',
- outputs: [
- {
- internalType: 'uint256',
- name: '',
- type: 'uint256',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'getAgentIds',
- outputs: [
- {
- internalType: 'uint256[]',
- name: '',
- type: 'uint256[]',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'getNextRewardCheckpointTimestamp',
- outputs: [
- {
- internalType: 'uint256',
- name: 'tsNext',
- type: 'uint256',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'getServiceIds',
- outputs: [
- {
- internalType: 'uint256[]',
- name: '',
- type: 'uint256[]',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- {
- internalType: 'uint256',
- name: 'serviceId',
- type: 'uint256',
- },
- ],
- name: 'getServiceInfo',
- outputs: [
- {
- components: [
- {
- internalType: 'address',
- name: 'multisig',
- type: 'address',
- },
- {
- internalType: 'address',
- name: 'owner',
- type: 'address',
- },
- {
- internalType: 'uint256[]',
- name: 'nonces',
- type: 'uint256[]',
- },
- {
- internalType: 'uint256',
- name: 'tsStart',
- type: 'uint256',
- },
- {
- internalType: 'uint256',
- name: 'reward',
- type: 'uint256',
- },
- {
- internalType: 'uint256',
- name: 'inactivity',
- type: 'uint256',
- },
- ],
- internalType: 'struct ServiceInfo',
- name: 'sInfo',
- type: 'tuple',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- {
- internalType: 'uint256',
- name: 'serviceId',
- type: 'uint256',
- },
- ],
- name: 'getStakingState',
- outputs: [
- {
- internalType: 'enum StakingBase.StakingState',
- name: 'stakingState',
- type: 'uint8',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- {
- components: [
- {
- internalType: 'bytes32',
- name: 'metadataHash',
- type: 'bytes32',
- },
- {
- internalType: 'uint256',
- name: 'maxNumServices',
- type: 'uint256',
- },
- {
- internalType: 'uint256',
- name: 'rewardsPerSecond',
- type: 'uint256',
- },
- {
- internalType: 'uint256',
- name: 'minStakingDeposit',
- type: 'uint256',
- },
- {
- internalType: 'uint256',
- name: 'minNumStakingPeriods',
- type: 'uint256',
- },
- {
- internalType: 'uint256',
- name: 'maxNumInactivityPeriods',
- type: 'uint256',
- },
- {
- internalType: 'uint256',
- name: 'livenessPeriod',
- type: 'uint256',
- },
- {
- internalType: 'uint256',
- name: 'timeForEmissions',
- type: 'uint256',
- },
- {
- internalType: 'uint256',
- name: 'numAgentInstances',
- type: 'uint256',
- },
- {
- internalType: 'uint256[]',
- name: 'agentIds',
- type: 'uint256[]',
- },
- {
- internalType: 'uint256',
- name: 'threshold',
- type: 'uint256',
- },
- {
- internalType: 'bytes32',
- name: 'configHash',
- type: 'bytes32',
- },
- {
- internalType: 'bytes32',
- name: 'proxyHash',
- type: 'bytes32',
- },
- {
- internalType: 'address',
- name: 'serviceRegistry',
- type: 'address',
- },
- {
- internalType: 'address',
- name: 'activityChecker',
- type: 'address',
- },
- ],
- internalType: 'struct StakingBase.StakingParams',
- name: '_stakingParams',
- type: 'tuple',
- },
- {
- internalType: 'address',
- name: '_serviceRegistryTokenUtility',
- type: 'address',
- },
- {
- internalType: 'address',
- name: '_stakingToken',
- type: 'address',
- },
- ],
- name: 'initialize',
- outputs: [],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [],
- name: 'livenessPeriod',
- outputs: [
- {
- internalType: 'uint256',
- name: '',
- type: 'uint256',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- {
- internalType: 'uint256',
- name: '',
- type: 'uint256',
- },
- ],
- name: 'mapServiceInfo',
- outputs: [
- {
- internalType: 'address',
- name: 'multisig',
- type: 'address',
- },
- {
- internalType: 'address',
- name: 'owner',
- type: 'address',
- },
- {
- internalType: 'uint256',
- name: 'tsStart',
- type: 'uint256',
- },
- {
- internalType: 'uint256',
- name: 'reward',
- type: 'uint256',
- },
- {
- internalType: 'uint256',
- name: 'inactivity',
- type: 'uint256',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'maxInactivityDuration',
- outputs: [
- {
- internalType: 'uint256',
- name: '',
- type: 'uint256',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'maxNumInactivityPeriods',
- outputs: [
- {
- internalType: 'uint256',
- name: '',
- type: 'uint256',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'maxNumServices',
- outputs: [
- {
- internalType: 'uint256',
- name: '',
- type: 'uint256',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'metadataHash',
- outputs: [
- {
- internalType: 'bytes32',
- name: '',
- type: 'bytes32',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'minStakingDeposit',
- outputs: [
- {
- internalType: 'uint256',
- name: '',
- type: 'uint256',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'minStakingDuration',
- outputs: [
- {
- internalType: 'uint256',
- name: '',
- type: 'uint256',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'numAgentInstances',
- outputs: [
- {
- internalType: 'uint256',
- name: '',
- type: 'uint256',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- {
- internalType: 'address',
- name: '',
- type: 'address',
- },
- {
- internalType: 'address',
- name: '',
- type: 'address',
- },
- {
- internalType: 'uint256',
- name: '',
- type: 'uint256',
- },
- {
- internalType: 'bytes',
- name: '',
- type: 'bytes',
- },
- ],
- name: 'onERC721Received',
- outputs: [
- {
- internalType: 'bytes4',
- name: '',
- type: 'bytes4',
- },
- ],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [],
- name: 'proxyHash',
- outputs: [
- {
- internalType: 'bytes32',
- name: '',
- type: 'bytes32',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'rewardsPerSecond',
- outputs: [
- {
- internalType: 'uint256',
- name: '',
- type: 'uint256',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'serviceRegistry',
- outputs: [
- {
- internalType: 'address',
- name: '',
- type: 'address',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'serviceRegistryTokenUtility',
- outputs: [
- {
- internalType: 'address',
- name: '',
- type: 'address',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- {
- internalType: 'uint256',
- name: '',
- type: 'uint256',
- },
- ],
- name: 'setServiceIds',
- outputs: [
- {
- internalType: 'uint256',
- name: '',
- type: 'uint256',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- {
- internalType: 'uint256',
- name: 'serviceId',
- type: 'uint256',
- },
- ],
- name: 'stake',
- outputs: [],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [],
- name: 'stakingToken',
- outputs: [
- {
- internalType: 'address',
- name: '',
- type: 'address',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'threshold',
- outputs: [
- {
- internalType: 'uint256',
- name: '',
- type: 'uint256',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'timeForEmissions',
- outputs: [
- {
- internalType: 'uint256',
- name: '',
- type: 'uint256',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'tsCheckpoint',
- outputs: [
- {
- internalType: 'uint256',
- name: '',
- type: 'uint256',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- {
- internalType: 'uint256',
- name: 'serviceId',
- type: 'uint256',
- },
- ],
- name: 'unstake',
- outputs: [
- {
- internalType: 'uint256',
- name: 'reward',
- type: 'uint256',
- },
- ],
- stateMutability: 'nonpayable',
- type: 'function',
- },
-];
diff --git a/frontend/client/enums.ts b/frontend/client/enums.ts
deleted file mode 100644
index 1a9b492f0..000000000
--- a/frontend/client/enums.ts
+++ /dev/null
@@ -1,35 +0,0 @@
-export enum Action {
- STATUS = 0,
- BUILD = 1,
- DEPLOY = 2,
- STOP = 3,
-}
-
-export enum Chain {
- ETHEREUM = 0,
- GOERLI = 1,
- GNOSIS = 2,
- SOLANA = 3,
-}
-
-export enum Ledger {
- ETHEREUM = 0,
- SOLANA = 1,
-}
-
-export enum DeploymentStatus {
- CREATED = 0,
- BUILT = 1,
- DEPLOYING = 2,
- DEPLOYED = 3,
- STOPPING = 4,
- STOPPED = 5,
- DELETED = 6,
-}
-
-export enum AccountIsSetup {
- True,
- False,
- Loading,
- Error,
-}
diff --git a/frontend/client/index.ts b/frontend/client/index.ts
deleted file mode 100644
index 968a28671..000000000
--- a/frontend/client/index.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export * from './enums';
-export * from './types';
diff --git a/frontend/client/types.ts b/frontend/client/types.ts
deleted file mode 100644
index e7eeb2d82..000000000
--- a/frontend/client/types.ts
+++ /dev/null
@@ -1,120 +0,0 @@
-import { Address } from '@/types/Address';
-
-import { Chain, DeploymentStatus, Ledger } from './enums';
-
-export type ServiceHash = string;
-
-export type LedgerConfig = {
- rpc: string;
- type: Ledger;
- chain: Chain;
-};
-
-export type ServiceKeys = {
- address: Address;
- private_key: string;
- ledger: Chain;
-};
-
-export type ChainData = {
- instances?: Address[];
- token?: number;
- multisig?: Address;
-};
-
-export type Service = {
- name: string;
- hash: string;
- keys: ServiceKeys[];
- readme?: string;
- ledger: LedgerConfig;
- chain_data: ChainData;
-};
-
-export type ServiceTemplate = {
- name: string;
- hash: string;
- image: string;
- description: string;
- configuration: ConfigurationTemplate;
- deploy?: boolean;
-};
-
-export type ConfigurationTemplate = {
- nft: string;
- trader_version: string;
- rpc?: string; // added by user
- agent_id: number;
- threshold: number;
- use_staking: boolean;
- cost_of_bond: number;
- olas_cost_of_bond: number;
- olas_required_to_stake: number;
- monthly_gas_estimate: number;
- fund_requirements: FundRequirementsTemplate;
-};
-
-export type FundRequirementsTemplate = {
- agent: number;
- safe: number;
-};
-
-export type DeployedNodes = {
- agent: string[];
- tendermint: string[];
-};
-
-export type Deployment = {
- status: DeploymentStatus;
- nodes: DeployedNodes;
-};
-
-export type EmptyPayload = Record;
-
-export type EmptyResponse = Record;
-
-export type HttpResponse = {
- error?: string;
- data?: string;
-};
-
-export type ClientResponse = {
- error?: string;
- data?: ResponseType;
-};
-
-export type StopDeployment = {
- delete: boolean /* Delete deployment*/;
-};
-
-export type UpdateServicePayload = {
- old: ServiceHash;
- new: ServiceTemplate;
-};
-
-export type DeleteServicesPayload = {
- hashes: ServiceHash[];
-};
-
-export type DeleteServicesResponse = {
- hashes: ServiceHash[];
-};
-
-export type AppInfo = {
- account?: {
- key: Address;
- };
-};
-
-export type WalletResponse = {
- address: Address;
- safe_chains: Chain[];
- ledger_type: Ledger;
- safe: Address;
- safe_nonce: number;
-};
-
-export type Wallet = WalletResponse & {
- ethBalance?: number;
- olasBalance?: number;
-};
diff --git a/frontend/components/Alert/index.tsx b/frontend/components/Alert/index.tsx
deleted file mode 100644
index 3cadd98b7..000000000
--- a/frontend/components/Alert/index.tsx
+++ /dev/null
@@ -1,28 +0,0 @@
-import {
- ExclamationCircleOutlined,
- InfoCircleOutlined,
- WarningOutlined,
-} from '@ant-design/icons';
-import { Alert as AlertAntd, AlertProps } from 'antd';
-
-type AlertType = 'primary' | 'info' | 'warning' | 'error';
-
-const icons = {
- primary: ,
- info: ,
- warning: ,
- error: ,
-};
-
-export const Alert = ({
- type,
- fullWidth,
- ...rest
-}: { type: AlertType; fullWidth?: boolean } & Omit) => (
-
-);
diff --git a/frontend/components/Card/CardTitle.tsx b/frontend/components/Card/CardTitle.tsx
deleted file mode 100644
index 41b35c231..000000000
--- a/frontend/components/Card/CardTitle.tsx
+++ /dev/null
@@ -1,10 +0,0 @@
-import { Flex, Typography } from 'antd';
-import { ReactNode } from 'react';
-
-export const CardTitle = ({ title }: { title: string | ReactNode }) => (
-
-
- {title}
-
-
-);
diff --git a/frontend/components/Confetti/ConfettiAnimation.jsx b/frontend/components/Confetti/ConfettiAnimation.jsx
deleted file mode 100644
index 9e02463ff..000000000
--- a/frontend/components/Confetti/ConfettiAnimation.jsx
+++ /dev/null
@@ -1,43 +0,0 @@
-import { useCallback, useRef } from 'react';
-import ReactCanvasConfetti from 'react-canvas-confetti';
-import { useInterval } from 'usehooks-ts';
-
-const canvasStyles = {
- position: 'fixed',
- pointerEvents: 'none',
- width: '100%',
- height: '100%',
- top: 0,
- left: 0,
-};
-
-export const ConfettiAnimation = () => {
- const animationInstance = useRef(null);
-
- const makeShot = useCallback((particleRatio, opts) => {
- if (!animationInstance.current) return;
-
- animationInstance.current({
- ...opts,
- origin: { y: 0.45 },
- particleCount: Math.floor(200 * particleRatio),
- });
- }, []);
-
- const fire = useCallback(() => {
- makeShot(0.25, { spread: 26, startVelocity: 55 });
- makeShot(0.2, { spread: 60 });
- makeShot(0.35, { spread: 80, decay: 0.91, scalar: 0.8 });
- makeShot(0.1, { spread: 100, startVelocity: 25, decay: 0.92, scalar: 1.2 });
- makeShot(0.1, { spread: 100, startVelocity: 45 });
- }, [makeShot]);
-
- const getInstance = useCallback((instance) => {
- animationInstance.current = instance;
- }, []);
-
- // Fire confetti every 2.5 seconds
- useInterval(() => fire(), 2500);
-
- return ;
-};
diff --git a/frontend/components/HelpAndSupport/index.tsx b/frontend/components/HelpAndSupport/index.tsx
deleted file mode 100644
index 278246e9e..000000000
--- a/frontend/components/HelpAndSupport/index.tsx
+++ /dev/null
@@ -1,122 +0,0 @@
-import { CloseOutlined, QuestionCircleOutlined } from '@ant-design/icons';
-import { Button, Card, Flex, message, Typography } from 'antd';
-import { useCallback, useEffect, useState } from 'react';
-
-import { UNICODE_SYMBOLS } from '@/constants/symbols';
-import { FAQ_URL, SUPPORT_URL } from '@/constants/urls';
-import { PageState } from '@/enums/PageState';
-import { useElectronApi } from '@/hooks/useElectronApi';
-import { useLogs } from '@/hooks/useLogs';
-import { usePageState } from '@/hooks/usePageState';
-
-import { CardTitle } from '../Card/CardTitle';
-import { CardSection } from '../styled/CardSection';
-
-const { Title, Paragraph } = Typography;
-
-const SettingsTitle = () => (
-
-
- Help & support
-
- }
- />
-);
-
-const LogsSavedMessage = ({ onClick }: { onClick: () => void }) => {
- return (
-
- Logs saved
-
-
- );
-};
-
-export const HelpAndSupport = () => {
- const { goto } = usePageState();
- const { openPath, saveLogs } = useElectronApi();
-
- const logs = useLogs();
-
- const [isLoading, setIsLoading] = useState(false);
- const [canSaveLogs, setCanSaveLogs] = useState(false);
-
- const onSaveLogs = useCallback(() => setCanSaveLogs(true), []);
-
- useEffect(() => {
- if (canSaveLogs && logs && !isLoading) {
- setIsLoading(true);
- saveLogs?.(logs)
- .then((result) => {
- if (result.success) {
- message.success({
- content: (
- openPath?.(result.dirPath)} />
- ),
- duration: 10,
- });
- } else {
- message.error('Save logs failed or cancelled');
- }
- })
- .finally(() => {
- setIsLoading(false);
- setCanSaveLogs(false);
- });
- }
- }, [canSaveLogs, isLoading, logs, openPath, saveLogs]);
-
- return (
- }
- bordered={false}
- extra={
- }
- onClick={() => goto(PageState.Main)}
- />
- }
- >
-
-
- Frequently asked questions
-
-
- Read FAQ {UNICODE_SYMBOLS.EXTERNAL_LINK}
-
-
-
-
-
- Ask for help
-
-
- Get your questions answered by the community.
-
-
- Olas community Discord server {UNICODE_SYMBOLS.EXTERNAL_LINK}
-
-
-
-
-
- Export logs for troubleshooting
-
-
-
-
- );
-};
diff --git a/frontend/components/Layout/TopBar.tsx b/frontend/components/Layout/TopBar.tsx
deleted file mode 100644
index ddaf17016..000000000
--- a/frontend/components/Layout/TopBar.tsx
+++ /dev/null
@@ -1,66 +0,0 @@
-import { Typography } from 'antd';
-import styled from 'styled-components';
-
-import { COLOR } from '@/constants/colors';
-import { useElectronApi } from '@/hooks/useElectronApi';
-import { useStore } from '@/hooks/useStore';
-
-const { Text } = Typography;
-
-const TrafficLightIcon = styled.div`
- width: 12px;
- height: 12px;
- border-radius: 50%;
- margin-left: 8px;
- -webkit-app-region: no-drag;
-`;
-
-const RedLight = styled(TrafficLightIcon)`
- background-color: #fe5f57;
-`;
-
-const YellowLight = styled(TrafficLightIcon)`
- background-color: #febc2e;
-`;
-
-const DisabledLight = styled(TrafficLightIcon)`
- background-color: #ddd;
-`;
-
-const TrafficLights = styled.div`
- display: flex;
- align-items: center;
- margin-right: 24px;
- -webkit-app-region: no-drag;
-`;
-
-const TopBarContainer = styled.div`
- position: sticky;
- top: 0;
- z-index: 1;
- display: flex;
- align-items: center;
- padding: 10px 8px;
- border-radius: 8px 8px 0 0px;
- border-bottom: 1px solid ${COLOR.BORDER_GRAY};
- background: ${COLOR.WHITE};
- -webkit-app-region: drag;
-`;
-
-export const TopBar = () => {
- const electronApi = useElectronApi();
- const store = useStore();
- const envName = store?.storeState?.environmentName;
-
- return (
-
-
- electronApi?.closeApp?.()} />
- electronApi?.minimizeApp?.()} />
-
-
-
- {`Pearl (alpha) ${envName ? `(${envName})` : ''}`.trim()}
-
- );
-};
diff --git a/frontend/components/Layout/index.tsx b/frontend/components/Layout/index.tsx
deleted file mode 100644
index 42d6f1fdf..000000000
--- a/frontend/components/Layout/index.tsx
+++ /dev/null
@@ -1,59 +0,0 @@
-import { WifiOutlined } from '@ant-design/icons';
-import { message } from 'antd';
-import { PropsWithChildren, useContext, useEffect } from 'react';
-import styled, { css } from 'styled-components';
-
-import { COLOR } from '@/constants/colors';
-import { OnlineStatusContext } from '@/context/OnlineStatusProvider';
-
-import { TopBar } from './TopBar';
-
-const Container = styled.div<{ blur: 'true' | 'false' }>`
- background-color: ${COLOR.WHITE};
- border-radius: 8px;
-
- ${(props) =>
- props.blur === 'true' &&
- css`
- filter: blur(2px);
- position: relative;
- overflow: hidden;
-
- &::before {
- content: '';
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- background-color: rgba(27, 38, 50, 0.1);
- z-index: 1;
- }
- `}
-`;
-
-export const Layout = ({
- children,
-}: PropsWithChildren & { vertical?: boolean }) => {
- const { isOnline } = useContext(OnlineStatusContext);
-
- useEffect(() => {
- let messageKey;
- if (!isOnline) {
- messageKey = message.error({
- content: 'Network connection is unstable',
- duration: 0,
- icon: ,
- });
- } else {
- message.destroy(messageKey);
- }
- }, [isOnline]);
-
- return (
-
-
- {children}
-
- );
-};
diff --git a/frontend/components/Main/KeepAgentRunning.tsx b/frontend/components/Main/KeepAgentRunning.tsx
deleted file mode 100644
index 1cc98b333..000000000
--- a/frontend/components/Main/KeepAgentRunning.tsx
+++ /dev/null
@@ -1,36 +0,0 @@
-import { Flex, Typography } from 'antd';
-
-import { DeploymentStatus } from '@/client';
-import { useServices } from '@/hooks/useServices';
-import { useStore } from '@/hooks/useStore';
-
-import { Alert } from '../Alert';
-import { CardSection } from '../styled/CardSection';
-
-const { Text } = Typography;
-
-const COVER_BLOCK_BORDERS_STYLE = { marginBottom: '-1px' };
-
-export const KeepAgentRunning = () => {
- const { storeState } = useStore();
- const { serviceStatus } = useServices();
-
- if (storeState?.firstStakingRewardAchieved) return null;
- if (serviceStatus !== DeploymentStatus.DEPLOYED) return null;
-
- return (
-
-
- Your agent has not hit its target yet.
- Keep the agent running to earn today’s rewards.
-
- }
- />
-
- );
-};
diff --git a/frontend/components/Main/MainAddFunds.tsx b/frontend/components/Main/MainAddFunds.tsx
deleted file mode 100644
index 06fd3d4dc..000000000
--- a/frontend/components/Main/MainAddFunds.tsx
+++ /dev/null
@@ -1,155 +0,0 @@
-import {
- CopyOutlined,
- // QrcodeOutlined,
-} from '@ant-design/icons';
-import {
- Button,
- Flex,
- message,
- Popover,
- // QRCode,
- Tooltip,
- Typography,
-} from 'antd';
-import Link from 'next/link';
-import { useCallback, useMemo, useState } from 'react';
-import styled from 'styled-components';
-
-import { UNICODE_SYMBOLS } from '@/constants/symbols';
-import { COW_SWAP_GNOSIS_XDAI_OLAS_URL } from '@/constants/urls';
-import { useWallet } from '@/hooks/useWallet';
-import { Address } from '@/types/Address';
-import { copyToClipboard } from '@/utils/copyToClipboard';
-import { truncateAddress } from '@/utils/truncate';
-
-import { Alert } from '../Alert';
-import { CardSection } from '../styled/CardSection';
-
-const { Text } = Typography;
-
-const CustomizedCardSection = styled(CardSection)<{ border?: boolean }>`
- > .ant-btn {
- width: 50%;
- }
-`;
-
-export const MainAddFunds = () => {
- const [isAddFundsVisible, setIsAddFundsVisible] = useState(false);
- const { masterSafeAddress } = useWallet();
-
- const fundingAddress: Address | undefined = masterSafeAddress;
-
- const truncatedFundingAddress: string | undefined = useMemo(
- () => fundingAddress && truncateAddress(fundingAddress),
- [fundingAddress],
- );
-
- const handleCopyAddress = useCallback(
- () =>
- fundingAddress &&
- copyToClipboard(fundingAddress).then(() =>
- message.success('Copied successfully!'),
- ),
- [fundingAddress],
- );
-
- return (
- <>
-
-
-
- Ability to withdraw is coming soon}
- >
-
-
-
-
- {isAddFundsVisible && (
- <>
-
-
-
- >
- )}
- >
- );
-};
-
-const AddFundsWarningAlertSection = () => (
-
-
-
- Only send funds on Gnosis Chain!
-
-
- You will lose any assets you send on other chains.
-
-
- }
- />
-
-);
-
-const AddFundsAddressSection = ({
- fundingAddress,
- truncatedFundingAddress,
- handleCopy,
-}: {
- fundingAddress?: string;
- truncatedFundingAddress?: string;
- handleCopy: () => void;
-}) => (
-
-
- {fundingAddress ?? 'Error loading address'}
-
- }
- >
- GNO: {truncatedFundingAddress ?? '--'}
-
-
- } size="large" />
-
- {/*
- }
- >
- } size="large" />
- */}
-
-);
-
-const AddFundsGetTokensSection = () => (
-
-
- Get OLAS + XDAI on Gnosis Chain {UNICODE_SYMBOLS.EXTERNAL_LINK}
-
-
-);
diff --git a/frontend/components/Main/MainGasBalance.tsx b/frontend/components/Main/MainGasBalance.tsx
deleted file mode 100644
index 3f8e77487..000000000
--- a/frontend/components/Main/MainGasBalance.tsx
+++ /dev/null
@@ -1,112 +0,0 @@
-import { ArrowUpOutlined, InfoCircleOutlined } from '@ant-design/icons';
-import { Skeleton, Tooltip, Typography } from 'antd';
-import { useMemo } from 'react';
-import styled from 'styled-components';
-
-import { COLOR } from '@/constants/colors';
-import { LOW_BALANCE } from '@/constants/thresholds';
-import { useBalance } from '@/hooks/useBalance';
-import { useWallet } from '@/hooks/useWallet';
-
-import { CardSection } from '../styled/CardSection';
-
-const { Text } = Typography;
-
-const Dot = styled.span`
- position: relative;
- display: inline-block;
- width: 8px;
- height: 8px;
- border-radius: 50%;
- margin-right: 8px;
- border: 2px solid #ffffff;
- box-shadow:
- rgb(0 0 0 / 7%) 0px 2px 4px 0px,
- rgb(0 0 0 / 3%) 0px 0px 4px 2px;
-`;
-const EmptyDot = styled(Dot)`
- background-color: ${COLOR.RED};
-`;
-const FineDot = styled(Dot)`
- background-color: ${COLOR.GREEN_2};
-`;
-const LowDot = styled(Dot)`
- background-color: ${COLOR.ORANGE};
-`;
-
-const BalanceStatus = () => {
- const { safeBalance } = useBalance();
-
- const status = useMemo(() => {
- if (!safeBalance || safeBalance.ETH === 0) {
- return { statusName: 'Empty', StatusComponent: EmptyDot };
- }
-
- if (safeBalance.ETH < LOW_BALANCE) {
- return { statusName: 'Low', StatusComponent: LowDot };
- }
-
- return { statusName: 'Fine', StatusComponent: FineDot };
- }, [safeBalance]);
-
- const { statusName, StatusComponent } = status;
- return (
- <>
-
- {statusName}
- >
- );
-};
-
-const TooltipContent = styled.div`
- font-size: 77.5%;
- a {
- margin-top: 6px;
- display: inline-block;
- }
-`;
-
-export const MainGasBalance = () => {
- const { masterSafeAddress } = useWallet();
- const { isBalanceLoaded } = useBalance();
-
- return (
-
-
- Trading balance
- {masterSafeAddress && (
-
- Your agent uses this balance to fund trading activity on-chain.
-
-
- Track activity on blockchain explorer{' '}
-
-
-
- }
- >
-
-
- )}
-
-
- {isBalanceLoaded ? (
-
-
-
- ) : (
-
- )}
-
- );
-};
diff --git a/frontend/components/Main/MainHeader/AgentButton/index.tsx b/frontend/components/Main/MainHeader/AgentButton/index.tsx
deleted file mode 100644
index cd6f72c59..000000000
--- a/frontend/components/Main/MainHeader/AgentButton/index.tsx
+++ /dev/null
@@ -1,273 +0,0 @@
-import { InfoCircleOutlined } from '@ant-design/icons';
-import { Button, ButtonProps, Flex, Popover, Typography } from 'antd';
-import { useCallback, useMemo } from 'react';
-
-import { Chain, DeploymentStatus } from '@/client';
-import { COLOR } from '@/constants/colors';
-import { useBalance } from '@/hooks/useBalance';
-import { useElectronApi } from '@/hooks/useElectronApi';
-import { useServices } from '@/hooks/useServices';
-import { useServiceTemplates } from '@/hooks/useServiceTemplates';
-import { useStakingContractInfo } from '@/hooks/useStakingContractInfo';
-import { useStore } from '@/hooks/useStore';
-import { useWallet } from '@/hooks/useWallet';
-import { ServicesService } from '@/service/Services';
-import { WalletService } from '@/service/Wallet';
-import { getMinimumStakedAmountRequired } from '@/utils/service';
-
-import { CannotStartAgent } from '../CannotStartAgent';
-import { requiredGas, requiredOlas } from '../constants';
-
-const { Text } = Typography;
-
-const LOADING_MESSAGE =
- "Starting the agent may take a while, so feel free to minimize the app. We'll notify you once it's running. Please, don't quit the app.";
-
-const AgentStartingButton = () => (
-
-
-
-
- {LOADING_MESSAGE}
-
- }
- >
-
-
-);
-
-const AgentStoppingButton = () => (
-
-);
-
-const AgentRunningButton = () => {
- const { showNotification } = useElectronApi();
- const { service, setIsServicePollingPaused, setServiceStatus } =
- useServices();
-
- const handlePause = useCallback(async () => {
- if (!service) return;
- // Paused to stop overlapping service poll while waiting for response
- setIsServicePollingPaused(true);
-
- // Optimistically update service status
- setServiceStatus(DeploymentStatus.STOPPING);
- try {
- await ServicesService.stopDeployment(service.hash);
- } catch (error) {
- console.error(error);
- showNotification?.('Error while stopping agent');
- } finally {
- // Resume polling, will update to correct status regardless of success
- setIsServicePollingPaused(false);
- }
- }, [service, setIsServicePollingPaused, setServiceStatus, showNotification]);
-
- return (
-
-
-
- Agent is working
-
-
- );
-};
-
-const AgentNotRunningButton = () => {
- const { wallets, masterSafeAddress } = useWallet();
- const {
- service,
- serviceStatus,
- setServiceStatus,
- setIsServicePollingPaused,
- } = useServices();
- const { serviceTemplate } = useServiceTemplates();
- const { showNotification } = useElectronApi();
- const {
- setIsPaused: setIsBalancePollingPaused,
- safeBalance,
- totalOlasStakedBalance,
- totalEthBalance,
- } = useBalance();
- const { storeState } = useStore();
- const { isEligibleForStaking, isAgentEvicted } = useStakingContractInfo();
-
- const safeOlasBalance = safeBalance?.OLAS;
- const safeOlasBalanceWithStaked =
- safeOlasBalance === undefined || totalOlasStakedBalance === undefined
- ? undefined
- : safeOlasBalance + totalOlasStakedBalance;
-
- const handleStart = useCallback(async () => {
- // Must have a wallet to start the agent
- if (!wallets?.[0]) return;
-
- // Paused to stop overlapping service poll while wallet is created or service is built
- setIsServicePollingPaused(true);
-
- // Paused to stop confusing balance transitions while starting the agent
- setIsBalancePollingPaused(true);
-
- // Mock "DEPLOYING" status (service polling will update this once resumed)
- setServiceStatus(DeploymentStatus.DEPLOYING);
-
- // Create master safe if it doesn't exist
- try {
- if (!masterSafeAddress) {
- await WalletService.createSafe(Chain.GNOSIS);
- }
- } catch (error) {
- console.error(error);
- setServiceStatus(undefined);
- showNotification?.('Error while creating safe');
- setIsServicePollingPaused(false);
- setIsBalancePollingPaused(false);
- return;
- }
-
- // Then create / deploy the service
- try {
- await ServicesService.createService({
- serviceTemplate,
- deploy: true,
- });
- } catch (error) {
- console.error(error);
- setServiceStatus(undefined);
- showNotification?.('Error while deploying service');
- setIsServicePollingPaused(false);
- setIsBalancePollingPaused(false);
- return;
- }
-
- // Show success notification based on whether there was a service prior to starting
- try {
- if (!service) {
- showNotification?.('Your agent is now running!');
- } else {
- const minimumStakedAmountRequired =
- getMinimumStakedAmountRequired(serviceTemplate);
-
- showNotification?.(
- `Your agent is running and you've staked ${minimumStakedAmountRequired} OLAS!`,
- );
- }
- } catch (error) {
- console.error(error);
- showNotification?.('Error while showing "running" notification');
- }
-
- // Can assume successful deployment
- // resume polling, optimistically update service status (poll will update, if needed)
- setIsServicePollingPaused(false);
- setIsBalancePollingPaused(false);
- setServiceStatus(DeploymentStatus.DEPLOYED);
- }, [
- wallets,
- setIsServicePollingPaused,
- setIsBalancePollingPaused,
- setServiceStatus,
- masterSafeAddress,
- showNotification,
- serviceTemplate,
- service,
- ]);
-
- const isDeployable = useMemo(() => {
- if (serviceStatus === DeploymentStatus.DEPLOYED) return false;
- if (serviceStatus === DeploymentStatus.DEPLOYING) return false;
- if (serviceStatus === DeploymentStatus.STOPPING) return false;
-
- // case where service exists & user has initial funded
- if (service && storeState?.isInitialFunded) {
- if (!safeOlasBalanceWithStaked) return false;
- // at present agent will always require staked/bonded OLAS (or the ability to stake/bond)
- return safeOlasBalanceWithStaked >= requiredOlas;
- }
-
- // case if agent is evicted and user has met the staking criteria
- if (isEligibleForStaking && isAgentEvicted) return true;
-
- const hasEnoughOlas = (safeOlasBalanceWithStaked ?? 0) >= requiredOlas;
- const hasEnoughEth = (totalEthBalance ?? 0) > requiredGas;
-
- return hasEnoughOlas && hasEnoughEth;
- }, [
- isAgentEvicted,
- isEligibleForStaking,
- safeOlasBalanceWithStaked,
- service,
- serviceStatus,
- storeState?.isInitialFunded,
- totalEthBalance,
- ]);
-
- const buttonProps: ButtonProps = {
- type: 'primary',
- size: 'large',
- disabled: !isDeployable,
- onClick: isDeployable ? handleStart : undefined,
- };
-
- const buttonText = `Start agent ${service ? '' : '& stake'}`;
-
- return ;
-};
-
-export const AgentButton = () => {
- const { service, serviceStatus, hasInitialLoaded } = useServices();
- const { isEligibleForStaking, isAgentEvicted } = useStakingContractInfo();
-
- return useMemo(() => {
- if (!hasInitialLoaded) {
- return ;
- }
-
- if (serviceStatus === DeploymentStatus.STOPPING) {
- return ;
- }
-
- if (serviceStatus === DeploymentStatus.DEPLOYING) {
- return ;
- }
-
- if (serviceStatus === DeploymentStatus.DEPLOYED) {
- return ;
- }
-
- if (!isEligibleForStaking && isAgentEvicted) return ;
-
- if (
- !service ||
- serviceStatus === DeploymentStatus.STOPPED ||
- serviceStatus === DeploymentStatus.CREATED ||
- serviceStatus === DeploymentStatus.BUILT ||
- serviceStatus === DeploymentStatus.DELETED
- ) {
- return ;
- }
-
- return (
-
- );
- }, [
- hasInitialLoaded,
- serviceStatus,
- isEligibleForStaking,
- isAgentEvicted,
- service,
- ]);
-};
diff --git a/frontend/components/Main/MainHeader/AgentHead/index.tsx b/frontend/components/Main/MainHeader/AgentHead/index.tsx
deleted file mode 100644
index a291ef4f3..000000000
--- a/frontend/components/Main/MainHeader/AgentHead/index.tsx
+++ /dev/null
@@ -1,36 +0,0 @@
-import { Badge } from 'antd';
-import Image from 'next/image';
-
-import { DeploymentStatus } from '@/client';
-import { useServices } from '@/hooks/useServices';
-
-const badgeOffset: [number, number] = [-5, 32.5];
-
-const TransitionalAgentHead = () => (
-
-
-
-);
-
-const DeployedAgentHead = () => (
-
-
-
-);
-
-const StoppedAgentHead = () => (
-
-
-
-);
-
-export const AgentHead = () => {
- const { serviceStatus } = useServices();
- if (
- serviceStatus === DeploymentStatus.DEPLOYING ||
- serviceStatus === DeploymentStatus.STOPPING
- )
- return ;
- if (serviceStatus === DeploymentStatus.DEPLOYED) return ;
- return ;
-};
diff --git a/frontend/components/Main/MainHeader/CannotStartAgent.tsx b/frontend/components/Main/MainHeader/CannotStartAgent.tsx
deleted file mode 100644
index 9206d6fa0..000000000
--- a/frontend/components/Main/MainHeader/CannotStartAgent.tsx
+++ /dev/null
@@ -1,81 +0,0 @@
-import { InfoCircleOutlined } from '@ant-design/icons';
-import { Popover, PopoverProps, Typography } from 'antd';
-
-import { COLOR } from '@/constants/colors';
-import { UNICODE_SYMBOLS } from '@/constants/symbols';
-import { SUPPORT_URL } from '@/constants/urls';
-import { useStakingContractInfo } from '@/hooks/useStakingContractInfo';
-
-const { Paragraph, Text } = Typography;
-
-const cannotStartAgentText = (
-
- Cannot start agent
-
-
-);
-
-const evictedDescription =
- "You didn't run your agent enough and it missed its targets multiple times. Please wait a few days and try to run your agent again.";
-const AgentEvictedPopover = () => (
- {evictedDescription}}
- >
- {cannotStartAgentText}
-
-);
-
-const otherPopoverProps: PopoverProps = {
- arrow: false,
- placement: 'bottomRight',
-};
-
-const JoinOlasCommunity = () => (
-
-);
-
-const NoRewardsAvailablePopover = () => (
- }
- >
- {cannotStartAgentText}
-
-);
-
-const NoJobsAvailablePopover = () => (
- }
- >
- {cannotStartAgentText}
-
-);
-
-export const CannotStartAgent = () => {
- const {
- isEligibleForStaking,
- hasEnoughServiceSlots,
- isRewardsAvailable,
- isAgentEvicted,
- } = useStakingContractInfo();
-
- if (isEligibleForStaking) return null;
- if (!hasEnoughServiceSlots) return ;
- if (!isRewardsAvailable) return ;
- if (isAgentEvicted) return ;
- throw new Error('Cannot start agent, please contact support');
-};
diff --git a/frontend/components/Main/MainHeader/FirstRunModal.tsx b/frontend/components/Main/MainHeader/FirstRunModal.tsx
deleted file mode 100644
index 78de3d558..000000000
--- a/frontend/components/Main/MainHeader/FirstRunModal.tsx
+++ /dev/null
@@ -1,58 +0,0 @@
-import { Button, Flex, Modal, Typography } from 'antd';
-import Image from 'next/image';
-import { FC } from 'react';
-
-import { useServiceTemplates } from '@/hooks/useServiceTemplates';
-import { getMinimumStakedAmountRequired } from '@/utils/service';
-
-const { Title, Paragraph } = Typography;
-
-type FirstRunModalProps = { open: boolean; onClose: () => void };
-
-export const FirstRunModal: FC = ({ open, onClose }) => {
- const { getServiceTemplates } = useServiceTemplates();
-
- if (!open) return null;
-
- const minimumStakedAmountRequired = getMinimumStakedAmountRequired(
- getServiceTemplates()[0],
- );
-
- return (
-
- Got it
- ,
- ]}
- >
-
-
-
-
- {`Your agent is running and you've staked ${minimumStakedAmountRequired} OLAS!`}
-
- Your agent is working towards earning rewards.
-
- Pearl is designed to make it easy for you to earn staking rewards every
- day. Simply leave the app and agent running in the background for ~1hr a
- day.
-
-
- );
-};
diff --git a/frontend/components/Main/MainHeader/constants.ts b/frontend/components/Main/MainHeader/constants.ts
deleted file mode 100644
index 87083563d..000000000
--- a/frontend/components/Main/MainHeader/constants.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { formatUnits } from 'ethers/lib/utils';
-
-import { SERVICE_TEMPLATES } from '@/constants/serviceTemplates';
-
-// TODO: Move this to more appropriate location (root /constants)
-
-const olasCostOfBond = Number(
- formatUnits(`${SERVICE_TEMPLATES[0].configuration.olas_cost_of_bond}`, 18),
-);
-const olasRequiredToStake = Number(
- formatUnits(
- `${SERVICE_TEMPLATES[0].configuration.olas_required_to_stake}`,
- 18,
- ),
-);
-
-export const requiredOlas = olasCostOfBond + olasRequiredToStake;
-export const requiredGas = Number(
- formatUnits(`${SERVICE_TEMPLATES[0].configuration.monthly_gas_estimate}`, 18),
-);
diff --git a/frontend/components/Main/MainHeader/index.tsx b/frontend/components/Main/MainHeader/index.tsx
deleted file mode 100644
index c24b0d430..000000000
--- a/frontend/components/Main/MainHeader/index.tsx
+++ /dev/null
@@ -1,45 +0,0 @@
-import { Flex } from 'antd';
-import { useCallback, useEffect, useState } from 'react';
-
-import { DeploymentStatus } from '@/client';
-import { LOW_BALANCE } from '@/constants/thresholds';
-import { useBalance } from '@/hooks/useBalance';
-import { useElectronApi } from '@/hooks/useElectronApi';
-import { useServices } from '@/hooks/useServices';
-
-import { AgentButton } from './AgentButton';
-import { AgentHead } from './AgentHead';
-import { FirstRunModal } from './FirstRunModal';
-
-const useSetupTrayIcon = () => {
- const { safeBalance } = useBalance();
- const { serviceStatus } = useServices();
- const { setTrayIcon } = useElectronApi();
-
- useEffect(() => {
- if (safeBalance && safeBalance.ETH < LOW_BALANCE) {
- setTrayIcon?.('low-gas');
- } else if (serviceStatus === DeploymentStatus.DEPLOYED) {
- setTrayIcon?.('running');
- } else if (serviceStatus === DeploymentStatus.STOPPED) {
- setTrayIcon?.('paused');
- }
- }, [safeBalance, serviceStatus, setTrayIcon]);
-
- return null;
-};
-
-export const MainHeader = () => {
- const [isFirstRunModalOpen, setIsFirstRunModalOpen] = useState(false);
- const handleModalClose = useCallback(() => setIsFirstRunModalOpen(false), []);
-
- useSetupTrayIcon();
-
- return (
-
-
-
-
-
- );
-};
diff --git a/frontend/components/Main/MainNeedsFunds.tsx b/frontend/components/Main/MainNeedsFunds.tsx
deleted file mode 100644
index f275136bf..000000000
--- a/frontend/components/Main/MainNeedsFunds.tsx
+++ /dev/null
@@ -1,151 +0,0 @@
-import { Flex, Typography } from 'antd';
-import { formatUnits } from 'ethers/lib/utils';
-import { ReactNode, useEffect, useMemo } from 'react';
-
-import { UNICODE_SYMBOLS } from '@/constants/symbols';
-import { useBalance } from '@/hooks/useBalance';
-import { useElectronApi } from '@/hooks/useElectronApi';
-import { useServiceTemplates } from '@/hooks/useServiceTemplates';
-import { useStore } from '@/hooks/useStore';
-import { getMinimumStakedAmountRequired } from '@/utils/service';
-
-import { Alert } from '../Alert';
-import { CardSection } from '../styled/CardSection';
-
-const { Text, Paragraph } = Typography;
-const COVER_PREV_BLOCK_BORDER_STYLE = { marginTop: '-1px' };
-
-const useNeedsFunds = () => {
- const { getServiceTemplates } = useServiceTemplates();
-
- const serviceTemplate = useMemo(
- () => getServiceTemplates()[0],
- [getServiceTemplates],
- );
-
- const { storeState } = useStore();
- const { safeBalance, totalOlasStakedBalance } = useBalance();
-
- const isInitialFunded = storeState?.isInitialFunded;
-
- const serviceFundRequirements = useMemo(() => {
- const monthlyGasEstimate = Number(
- formatUnits(`${serviceTemplate.configuration.monthly_gas_estimate}`, 18),
- );
-
- const minimumStakedAmountRequired =
- getMinimumStakedAmountRequired(serviceTemplate);
-
- return {
- eth: monthlyGasEstimate,
- olas: minimumStakedAmountRequired,
- };
- }, [serviceTemplate]);
-
- const hasEnoughEthForInitialFunding = useMemo(
- () => (safeBalance?.ETH || 0) >= (serviceFundRequirements?.eth || 0),
- [serviceFundRequirements?.eth, safeBalance],
- );
-
- const hasEnoughOlasForInitialFunding = useMemo(() => {
- const olasInSafe = safeBalance?.OLAS || 0;
- const olasStakedBySafe = totalOlasStakedBalance || 0;
-
- const olasInSafeAndStaked = olasInSafe + olasStakedBySafe;
-
- return olasInSafeAndStaked >= serviceFundRequirements.olas;
- }, [
- safeBalance?.OLAS,
- totalOlasStakedBalance,
- serviceFundRequirements?.olas,
- ]);
-
- return {
- hasEnoughEthForInitialFunding,
- hasEnoughOlasForInitialFunding,
- serviceFundRequirements,
- isInitialFunded,
- };
-};
-
-export const MainNeedsFunds = () => {
- const { isBalanceLoaded } = useBalance();
- const {
- hasEnoughEthForInitialFunding,
- hasEnoughOlasForInitialFunding,
- serviceFundRequirements,
- isInitialFunded,
- } = useNeedsFunds();
-
- const electronApi = useElectronApi();
-
- const isVisible: boolean = useMemo(() => {
- if (isInitialFunded) return false;
- if (!isBalanceLoaded) return false;
- if (hasEnoughEthForInitialFunding && hasEnoughOlasForInitialFunding)
- return false;
- return true;
- }, [
- hasEnoughEthForInitialFunding,
- hasEnoughOlasForInitialFunding,
- isBalanceLoaded,
- isInitialFunded,
- ]);
-
- const message: ReactNode = useMemo(
- () => (
-
- Your agent needs funds
-
- USE THE ACCOUNT CREDENTIALS PROVIDED IN THE “ADD FUNDS” INSTRUCTIONS
- BELOW.
-
-
- To run your agent, you must add these amounts to your account:
-
- {!hasEnoughOlasForInitialFunding && (
-
- {`${UNICODE_SYMBOLS.OLAS}${serviceFundRequirements.olas} OLAS `}
- - for staking.
-
- )}
- {!hasEnoughEthForInitialFunding && (
-
-
- {`${serviceFundRequirements.eth} XDAI `}
-
- - for trading balance.
-
- )}
-
- ),
- [
- serviceFundRequirements,
- hasEnoughEthForInitialFunding,
- hasEnoughOlasForInitialFunding,
- ],
- );
-
- useEffect(() => {
- if (
- hasEnoughEthForInitialFunding &&
- hasEnoughOlasForInitialFunding &&
- !isInitialFunded
- ) {
- electronApi.store?.set?.('isInitialFunded', true);
- }
- }, [
- electronApi.store,
- hasEnoughEthForInitialFunding,
- hasEnoughOlasForInitialFunding,
- isInitialFunded,
- ]);
-
- if (!isVisible) return null;
-
- return (
-
-
-
- );
-};
diff --git a/frontend/components/Main/MainOlasBalance.tsx b/frontend/components/Main/MainOlasBalance.tsx
deleted file mode 100644
index f51cf2ef9..000000000
--- a/frontend/components/Main/MainOlasBalance.tsx
+++ /dev/null
@@ -1,130 +0,0 @@
-import { InfoCircleOutlined } from '@ant-design/icons';
-import { Flex, Skeleton, Tooltip, Typography } from 'antd';
-import { useMemo } from 'react';
-import styled from 'styled-components';
-
-import { COLOR } from '@/constants/colors';
-import { UNICODE_SYMBOLS } from '@/constants/symbols';
-import { useBalance } from '@/hooks/useBalance';
-import { useReward } from '@/hooks/useReward';
-import { balanceFormat } from '@/utils/numberFormatters';
-
-import { CardSection } from '../styled/CardSection';
-
-const { Text } = Typography;
-const Balance = styled.span`
- letter-spacing: -2px;
- margin-right: 4px;
-`;
-const BalanceBreakdown = styled.div`
- padding: 4px;
-`;
-const BalanceBreakdownLine = styled.div`
- position: relative;
- display: flex;
- align-items: center;
- justify-content: space-between;
- font-size: 14px;
- color: ${COLOR.TEXT};
-
- > span {
- background: ${COLOR.WHITE};
- z-index: 1;
- &:first-child {
- padding-right: 6px;
- }
- &:last-child {
- padding-left: 6px;
- }
- }
-
- &:before {
- content: '';
- position: absolute;
- bottom: 6px;
- width: 100%;
- border-bottom: 2px dotted ${COLOR.BORDER_GRAY};
- }
-
- &:not(:last-child) {
- margin-bottom: 8px;
- }
-`;
-const OVERLAY_STYLE = { maxWidth: '300px', width: '300px' };
-
-const CurrentBalance = () => {
- const { totalOlasBalance, totalOlasStakedBalance } = useBalance();
- const { accruedServiceStakingRewards } = useReward();
-
- const balances = useMemo(() => {
- return [
- {
- title: 'Staked amount',
- value: balanceFormat(totalOlasStakedBalance ?? 0, 2),
- },
- {
- title: 'Unclaimed rewards',
- value: balanceFormat(accruedServiceStakingRewards ?? 0, 2),
- },
- {
- // Unused funds should only be ‘free-floating’ OLAS that is neither unclaimed nor staked.
- title: 'Unused funds',
- value: balanceFormat(
- (totalOlasBalance ?? 0) -
- (totalOlasStakedBalance ?? 0) -
- (accruedServiceStakingRewards ?? 0),
- 2,
- ),
- },
- ];
- }, [accruedServiceStakingRewards, totalOlasBalance, totalOlasStakedBalance]);
-
- return (
-
- Current balance
-
- {balances.map((item, index) => (
-
- {item.title}
- {item.value} OLAS
-
- ))}
-
- }
- >
-
-
-
- );
-};
-
-export const MainOlasBalance = () => {
- const { isBalanceLoaded, totalOlasBalance } = useBalance();
-
- const balance = useMemo(() => {
- if (totalOlasBalance === undefined) return '--';
- return balanceFormat(totalOlasBalance, 2);
- }, [totalOlasBalance]);
-
- return (
-
- {isBalanceLoaded ? (
- <>
-
-
- {UNICODE_SYMBOLS.OLAS}
- {balance}
- OLAS
-
- >
- ) : (
-
- )}
-
- );
-};
diff --git a/frontend/components/Main/MainRewards.tsx b/frontend/components/Main/MainRewards.tsx
deleted file mode 100644
index 8f775b163..000000000
--- a/frontend/components/Main/MainRewards.tsx
+++ /dev/null
@@ -1,184 +0,0 @@
-import { InfoCircleOutlined } from '@ant-design/icons';
-import { Button, Flex, Modal, Skeleton, Tag, Tooltip, Typography } from 'antd';
-import Image from 'next/image';
-import { useCallback, useEffect, useRef, useState } from 'react';
-
-import { useBalance } from '@/hooks/useBalance';
-import { useElectronApi } from '@/hooks/useElectronApi';
-import { useReward } from '@/hooks/useReward';
-import { useStore } from '@/hooks/useStore';
-import { balanceFormat } from '@/utils/numberFormatters';
-
-import { ConfettiAnimation } from '../Confetti/ConfettiAnimation';
-import { CardSection } from '../styled/CardSection';
-
-const { Text, Title, Paragraph } = Typography;
-
-const Loader = () => (
-
-
-
-
-);
-
-const DisplayRewards = () => {
- const { availableRewardsForEpochEth, isEligibleForRewards } = useReward();
- const { isBalanceLoaded } = useBalance();
-
- const reward =
- availableRewardsForEpochEth === undefined
- ? '--'
- : `~${balanceFormat(availableRewardsForEpochEth, 2)}`;
-
- return (
-
-
- Staking rewards this work period
-
- The agent's working period lasts at least 24 hours, but its
- start and end point may not be at the same time every day.
-
- }
- >
-
-
-
- {isBalanceLoaded ? (
-
- {reward} OLAS
- {isEligibleForRewards ? (
- Earned
- ) : (
- Not yet earned
- )}
-
- ) : (
-
- )}
-
- );
-};
-
-const SHARE_TEXT = `I just earned my first reward through the Operate app powered by #olas!\n\nDownload the Pearl app:`;
-const OPERATE_URL = 'https://olas.network/operate?pearl=first-reward';
-
-const NotifyRewards = () => {
- const { isEligibleForRewards, availableRewardsForEpochEth } = useReward();
- const { totalOlasBalance } = useBalance();
- const { showNotification, store } = useElectronApi();
- const { storeState } = useStore();
-
- const [canShowNotification, setCanShowNotification] = useState(false);
-
- const firstRewardRef = useRef();
-
- // hook to set the flag to show the notification
- useEffect(() => {
- if (!isEligibleForRewards) return;
- if (!storeState) return;
- if (storeState?.firstRewardNotificationShown) return;
- if (!availableRewardsForEpochEth) return;
-
- firstRewardRef.current = availableRewardsForEpochEth;
- setCanShowNotification(true);
- }, [isEligibleForRewards, availableRewardsForEpochEth, storeState]);
-
- // hook to show desktop app notification
- useEffect(() => {
- if (!canShowNotification) return;
-
- showNotification?.(
- 'Your agent earned its first staking rewards!',
- `Congratulations! Your agent just got the first reward for you! Your current balance: ${firstRewardRef.current} OLAS`,
- );
- }, [canShowNotification, showNotification]);
-
- const closeNotificationModal = useCallback(() => {
- setCanShowNotification(false);
-
- // once the notification is closed, set the flag to true
- store?.set?.('firstRewardNotificationShown', true);
- }, [store]);
-
- const onTwitterShare = useCallback(() => {
- const encodedText = encodeURIComponent(SHARE_TEXT);
- const encodedURL = encodeURIComponent(OPERATE_URL);
-
- window.open(
- `https://twitter.com/intent/tweet?text=${encodedText}&url=${encodedURL}`,
- '_blank',
- );
- }, []);
-
- if (!canShowNotification) return null;
-
- return (
-
-
- Share on
-
-
- ,
- ]}
- >
-
-
-
-
-
-
-
- Your agent just earned the first reward!
-
-
-
-
- Congratulations! Your agent just earned the first
-
- {` ${balanceFormat(availableRewardsForEpochEth, 2)} OLAS `}
-
- for you!
-
-
-
- Your current balance:
- {` ${balanceFormat(totalOlasBalance, 2)} OLAS `}
-
-
- Keep it running to get even more!
-
-
- );
-};
-
-export const MainRewards = () => (
- <>
-
-
- >
-);
diff --git a/frontend/components/Main/index.tsx b/frontend/components/Main/index.tsx
deleted file mode 100644
index 1d2c4a5d3..000000000
--- a/frontend/components/Main/index.tsx
+++ /dev/null
@@ -1,61 +0,0 @@
-import { QuestionCircleOutlined, SettingOutlined } from '@ant-design/icons';
-import { Button, Card, Flex } from 'antd';
-import { useEffect } from 'react';
-
-import { PageState } from '@/enums/PageState';
-import { useBalance } from '@/hooks/useBalance';
-import { usePageState } from '@/hooks/usePageState';
-import { useServices } from '@/hooks/useServices';
-
-import { KeepAgentRunning } from './KeepAgentRunning';
-import { MainAddFunds } from './MainAddFunds';
-import { MainGasBalance } from './MainGasBalance';
-import { MainHeader } from './MainHeader';
-import { MainNeedsFunds } from './MainNeedsFunds';
-import { MainOlasBalance } from './MainOlasBalance';
-import { MainRewards } from './MainRewards';
-
-export const Main = () => {
- const { goto } = usePageState();
- const { updateServicesState } = useServices();
- const { updateBalances, isLoaded, setIsLoaded } = useBalance();
-
- useEffect(() => {
- if (!isLoaded) {
- setIsLoaded(true);
- updateServicesState().then(() => updateBalances());
- }
- }, [isLoaded, setIsLoaded, updateBalances, updateServicesState]);
-
- return (
- }
- extra={
-
- }
- onClick={() => goto(PageState.HelpAndSupport)}
- />
- }
- onClick={() => goto(PageState.Settings)}
- />
-
- }
- style={{ borderTopColor: 'transparent' }}
- >
-
-
-
-
-
-
-
-
-
- );
-};
diff --git a/frontend/components/Settings/DebugInfoCard.tsx b/frontend/components/Settings/DebugInfoCard.tsx
deleted file mode 100644
index 07d60943f..000000000
--- a/frontend/components/Settings/DebugInfoCard.tsx
+++ /dev/null
@@ -1,224 +0,0 @@
-import { CopyOutlined } from '@ant-design/icons';
-import {
- Button,
- Col,
- Flex,
- message,
- Modal,
- Row,
- Spin,
- Tooltip,
- Typography,
-} from 'antd';
-import { useCallback, useMemo, useState } from 'react';
-import styled from 'styled-components';
-
-import { COLOR } from '@/constants/colors';
-import { UNICODE_SYMBOLS } from '@/constants/symbols';
-import { Token } from '@/enums/Token';
-import { useBalance } from '@/hooks/useBalance';
-import { useServices } from '@/hooks/useServices';
-import { useWallet } from '@/hooks/useWallet';
-import { WalletAddressNumberRecord } from '@/types/Records';
-import { copyToClipboard } from '@/utils/copyToClipboard';
-import { balanceFormat } from '@/utils/numberFormatters';
-import { truncateAddress } from '@/utils/truncate';
-
-import { CardSection } from '../styled/CardSection';
-
-const { Text, Title } = Typography;
-
-const DebugModal = styled(Modal)`
- top: 24px;
- height: calc(100vh - 48px);
- display: flex;
- flex-direction: column;
-
- .ant-modal-content {
- height: calc(100vh - 48px);
- display: flex;
- flex-direction: column;
- padding: 0;
- }
-
- .ant-modal-header {
- padding: 16px 24px;
- margin: 0;
- border-bottom: 1px solid ${COLOR.BORDER_GRAY};
- }
-
- .ant-modal-body {
- display: flex;
- flex-direction: column;
- flex: 1;
- overflow-y: auto;
- border-radius: 12px;
- }
-`;
-
-const Card = styled.div`
- padding: 16px 24px;
- border-bottom: 1px solid ${COLOR.BORDER_GRAY};
-`;
-
-const ICON_STYLE = { color: '#606F85' };
-
-const getItemData = (
- walletBalances: WalletAddressNumberRecord,
- address: `0x${string}`,
-) => ({
- balance: {
- OLAS: balanceFormat(walletBalances[address]?.OLAS, 2),
- ETH: balanceFormat(walletBalances[address]?.ETH, 2),
- },
- address: address,
- truncatedAddress: address ? truncateAddress(address) : '',
-});
-
-const DebugItem = ({
- item,
-}: {
- item: {
- title: string;
- balance: Record;
- address: `0x${string}`;
- truncatedAddress: string;
- link?: { title: string; href: string };
- };
-}) => {
- const onCopyToClipboard = useCallback(
- () =>
- copyToClipboard(item.address).then(() =>
- message.success('Address copied!'),
- ),
- [item.address],
- );
-
- return (
-
-
- {item.title}
-
-
-
-
-
- Balance
-
- {item.balance.OLAS} OLAS
- {item.balance.ETH} XDAI
-
-
-
-
-
-
- Address
-
-
-
- {item.truncatedAddress}
-
-
-
-
-
-
-
-
- {item.link ? (
-
-
- {item.link.title} {UNICODE_SYMBOLS.EXTERNAL_LINK}
-
-
- ) : null}
-
- );
-};
-
-export const DebugInfoCard = () => {
- const { wallets, masterEoaAddress, masterSafeAddress } = useWallet();
- const { services } = useServices();
- const { walletBalances } = useBalance();
-
- const [isModalOpen, setIsModalOpen] = useState(false);
- const showModal = useCallback(() => setIsModalOpen(true), []);
- const handleCancel = useCallback(() => setIsModalOpen(false), []);
-
- const data = useMemo(() => {
- if (!services) return null;
- if (!wallets?.length) return null;
-
- const result = [];
-
- if (masterEoaAddress) {
- result.push({
- title: 'Master EOA',
- ...getItemData(walletBalances, masterEoaAddress),
- });
- }
-
- if (masterSafeAddress) {
- result.push({
- title: 'Master Safe',
- ...getItemData(walletBalances, masterSafeAddress),
- });
- }
-
- if (services[0]?.chain_data?.instances?.[0]) {
- const instanceAddress = services[0].chain_data.instances[0];
- result.push({
- title: 'Agent instance',
- ...getItemData(walletBalances, instanceAddress),
- });
- }
-
- if (services[0]?.chain_data?.multisig) {
- const multisigAddress = services[0].chain_data.multisig;
- result.push({
- title: 'Agent Safe',
- ...getItemData(walletBalances, multisigAddress),
- link: {
- title: 'See agent activity on Pandora',
- href: `https://pandora.computer/predict/${multisigAddress}`,
- },
- });
- }
-
- return result;
- }, [
- masterEoaAddress,
- masterSafeAddress,
- services,
- walletBalances,
- wallets?.length,
- ]);
-
- return (
-
- Debug data (for devs)
-
-
- {data ? (
- data.map((item) => )
- ) : (
-
-
-
- )}
-
-
- );
-};
diff --git a/frontend/components/Settings/SettingsAddBackupWallet.tsx b/frontend/components/Settings/SettingsAddBackupWallet.tsx
deleted file mode 100644
index ac67149ff..000000000
--- a/frontend/components/Settings/SettingsAddBackupWallet.tsx
+++ /dev/null
@@ -1,68 +0,0 @@
-import { CloseOutlined } from '@ant-design/icons';
-import { Button, Form, Input, Typography } from 'antd';
-import { useMemo } from 'react';
-
-import { Chain } from '@/client';
-import { MIN_ETH_BALANCE_THRESHOLDS } from '@/constants/thresholds';
-import { SettingsScreen } from '@/enums/SettingsScreen';
-import { useBalance } from '@/hooks/useBalance';
-import { useSettings } from '@/hooks/useSettings';
-
-import { CardTitle } from '../Card/CardTitle';
-import { CardFlex } from '../styled/CardFlex';
-
-export const SettingsAddBackupWallet = () => {
- const { eoaBalance } = useBalance();
- const { goto } = useSettings();
-
- const [form] = Form.useForm();
-
- const isFunded = useMemo(() => {
- if (!eoaBalance) return false;
- return (
- eoaBalance.ETH >= MIN_ETH_BALANCE_THRESHOLDS[Chain.GNOSIS].safeAddSigner
- );
- }, [eoaBalance]);
-
- return (
- }
- extra={
-
- }
- >
-
- To keep your funds safe, we encourage you to add one of your existing
- crypto wallets as a backup. This enables you to recover your funds if
- you lose both your password and seed phrase.
-
-
-
-
-
-
-
-
- * This action requires a small amount of funds.
-
-
-
- );
-};
diff --git a/frontend/components/Settings/index.tsx b/frontend/components/Settings/index.tsx
deleted file mode 100644
index 81a0a0160..000000000
--- a/frontend/components/Settings/index.tsx
+++ /dev/null
@@ -1,130 +0,0 @@
-import { CloseOutlined, SettingOutlined } from '@ant-design/icons';
-import { Button, Card, Flex, Typography } from 'antd';
-import Link from 'next/link';
-import { useMemo } from 'react';
-
-import { UNICODE_SYMBOLS } from '@/constants/symbols';
-import { PageState } from '@/enums/PageState';
-import { SettingsScreen } from '@/enums/SettingsScreen';
-import { useMasterSafe } from '@/hooks/useMasterSafe';
-import { usePageState } from '@/hooks/usePageState';
-import { useSettings } from '@/hooks/useSettings';
-import { truncateAddress } from '@/utils/truncate';
-
-import { Alert } from '../Alert';
-import { CardTitle } from '../Card/CardTitle';
-import { CardSection } from '../styled/CardSection';
-import { DebugInfoCard } from './DebugInfoCard';
-import { SettingsAddBackupWallet } from './SettingsAddBackupWallet';
-
-const { Text, Paragraph } = Typography;
-
-const SettingsTitle = () => (
-
-
- Settings
-
- }
- />
-);
-
-export const Settings = () => {
- const { screen } = useSettings();
- const settingsScreen = useMemo(() => {
- switch (screen) {
- case SettingsScreen.Main:
- return ;
- case SettingsScreen.AddBackupWallet:
- return ;
- default:
- return null;
- }
- }, [screen]);
-
- return settingsScreen;
-};
-
-const SettingsMain = () => {
- const { backupSafeAddress } = useMasterSafe();
- const { goto } = usePageState();
-
- const truncatedBackupSafeAddress: string | undefined = useMemo(() => {
- if (backupSafeAddress) {
- return truncateAddress(backupSafeAddress);
- }
- }, [backupSafeAddress]);
-
- return (
- }
- bordered={false}
- extra={
- }
- onClick={() => goto(PageState.Main)}
- />
- }
- >
-
-
- Password
- ********
-
-
-
-
- Backup wallet
- {backupSafeAddress ? (
-
- {truncatedBackupSafeAddress} {UNICODE_SYMBOLS.EXTERNAL_LINK}
-
- ) : (
-
- )}
-
-
-
-
- );
-};
-
-const NoBackupWallet = () => {
- const { goto: gotoSettings } = useSettings();
- return (
- <>
- No backup wallet added.
-
-
-
-
- Your funds are at risk!
- You will lose any assets you send on other chains.
-
- >
- }
- />
-
-
-
- >
- );
-};
diff --git a/frontend/components/Setup/Create/SetupBackupSigner.tsx b/frontend/components/Setup/Create/SetupBackupSigner.tsx
deleted file mode 100644
index 4862a9b45..000000000
--- a/frontend/components/Setup/Create/SetupBackupSigner.tsx
+++ /dev/null
@@ -1,68 +0,0 @@
-import { Button, Flex, Form, Input, Typography } from 'antd';
-
-import { CardFlex } from '@/components/styled/CardFlex';
-import { FormFlex } from '@/components/styled/FormFlex';
-import { SetupScreen } from '@/enums/SetupScreen';
-import { useSetup } from '@/hooks/useSetup';
-import { Address } from '@/types/Address';
-
-import { SetupCreateHeader } from './SetupCreateHeader';
-
-export const SetupBackupSigner = () => {
- const { goto } = useSetup();
- const { setBackupSigner } = useSetup();
- const [form] = Form.useForm();
-
- const handleFinish = (values: { 'backup-signer': Address }) => {
- setBackupSigner(values['backup-signer']);
- goto(SetupScreen.SetupEoaFunding);
- };
-
- return (
-
-
- Set backup wallet
-
-
- To keep your funds safe, we encourage you to add one of your existing
- crypto wallets as a backup. This enables you to recover your funds if
- you lose both your password and seed phrase.
-
-
-
-
-
-
-
- {/* Commented to protect users from skipping backup wallet setup during Alpha testing
-
-
- Note that in the current version of the app, you will not be able to
- set up a backup wallet afterward. This functionality is coming soon.
-
- */}
-
-
-
- );
-};
diff --git a/frontend/components/Setup/Create/SetupCreateHeader.tsx b/frontend/components/Setup/Create/SetupCreateHeader.tsx
deleted file mode 100644
index d4f7bc670..000000000
--- a/frontend/components/Setup/Create/SetupCreateHeader.tsx
+++ /dev/null
@@ -1,42 +0,0 @@
-import { ArrowLeftOutlined } from '@ant-design/icons';
-import { Button, Col, Flex, Row } from 'antd';
-import Image from 'next/image';
-import { memo } from 'react';
-
-import { SetupScreen } from '@/enums/SetupScreen';
-import { useSetup } from '@/hooks/useSetup';
-
-export const SetupCreateHeader = memo(function SetupCreateHeader({
- prev,
- disabled = false,
-}: {
- prev: SetupScreen;
- disabled?: boolean;
-}) {
- const { goto } = useSetup();
- const handleBack = () => goto(prev);
- return (
-
-
- }
- size="large"
- />
-
-
-
-
-
-
-
-
-
- );
-});
diff --git a/frontend/components/Setup/Create/SetupCreateSafe.tsx b/frontend/components/Setup/Create/SetupCreateSafe.tsx
deleted file mode 100644
index 05a0fbebf..000000000
--- a/frontend/components/Setup/Create/SetupCreateSafe.tsx
+++ /dev/null
@@ -1,79 +0,0 @@
-import { message, Typography } from 'antd';
-import Image from 'next/image';
-import { useEffect, useState } from 'react';
-
-import { Chain } from '@/client';
-import { CardSection } from '@/components/styled/CardSection';
-import { UNICODE_SYMBOLS } from '@/constants/symbols';
-import { SUPPORT_URL } from '@/constants/urls';
-import { PageState } from '@/enums/PageState';
-import { usePageState } from '@/hooks/usePageState';
-import { useSetup } from '@/hooks/useSetup';
-import { useWallet } from '@/hooks/useWallet';
-import { WalletService } from '@/service/Wallet';
-
-export const SetupCreateSafe = () => {
- const { masterSafeAddress } = useWallet();
- const { backupSigner } = useSetup();
- const { goto } = usePageState();
-
- const [isCreatingSafe, setIsCreatingSafe] = useState(false);
- const [isError, setIsError] = useState(false);
-
- useEffect(() => {
- if (isCreatingSafe) return;
- setIsCreatingSafe(true);
- // TODO: add backup signer
- WalletService.createSafe(Chain.GNOSIS, backupSigner).catch((e) => {
- console.error(e);
- setIsError(true);
- message.error('Failed to create an account. Please try again later.');
- });
- }, [backupSigner, isCreatingSafe]);
-
- useEffect(() => {
- // Only progress is the safe is created and accessible via context (updates on interval)
- if (masterSafeAddress) goto(PageState.Main);
- }, [goto, masterSafeAddress]);
-
- return (
-
- {isError ? (
- <>
-
-
- Error, please contact{' '}
-
- Olas community {UNICODE_SYMBOLS.EXTERNAL_LINK}
-
-
- >
- ) : (
- <>
-
-
- Creating account
-
-
- You will be redirected once the account is created
-
- >
- )}
-
- );
-};
diff --git a/frontend/components/Setup/Create/SetupEoaFunding.tsx b/frontend/components/Setup/Create/SetupEoaFunding.tsx
deleted file mode 100644
index c5486e66b..000000000
--- a/frontend/components/Setup/Create/SetupEoaFunding.tsx
+++ /dev/null
@@ -1,173 +0,0 @@
-import {
- CopyOutlined,
- // QrcodeOutlined
-} from '@ant-design/icons';
-import {
- Button,
- Flex,
- message,
- // Popover,
- // QRCode,
- Tooltip,
- Typography,
-} from 'antd';
-import { useEffect, useMemo } from 'react';
-import styled from 'styled-components';
-
-import { Chain } from '@/client';
-import { Alert } from '@/components/Alert';
-import { CardFlex } from '@/components/styled/CardFlex';
-import { CardSection } from '@/components/styled/CardSection';
-import { UNICODE_SYMBOLS } from '@/constants/symbols';
-import { MIN_ETH_BALANCE_THRESHOLDS } from '@/constants/thresholds';
-import { COW_SWAP_GNOSIS_XDAI_OLAS_URL } from '@/constants/urls';
-import { SetupScreen } from '@/enums/SetupScreen';
-import { useBalance } from '@/hooks/useBalance';
-import { useSetup } from '@/hooks/useSetup';
-import { useWallet } from '@/hooks/useWallet';
-import { copyToClipboard } from '@/utils/copyToClipboard';
-
-import { SetupCreateHeader } from './SetupCreateHeader';
-
-export const SetupEoaFunding = ({
- isIncomplete,
-}: {
- isIncomplete?: boolean;
-}) => {
- const { eoaBalance } = useBalance();
- const { goto } = useSetup();
-
- const isFundedMasterEoa =
- eoaBalance?.ETH &&
- eoaBalance.ETH >= MIN_ETH_BALANCE_THRESHOLDS[Chain.GNOSIS].safeCreation;
-
- const statusMessage = useMemo(() => {
- if (isFundedMasterEoa) {
- return 'Funds have been received!';
- } else {
- return 'Waiting for transaction';
- }
- }, [isFundedMasterEoa]);
-
- useEffect(() => {
- // Move to create the safe stage once the master EOA is funded
- if (!isFundedMasterEoa) return;
- message.success('Funds have been received!');
- goto(SetupScreen.SetupCreateSafe);
- }, [goto, isFundedMasterEoa]);
-
- return (
-
-
-
- Deposit {MIN_ETH_BALANCE_THRESHOLDS[Chain.GNOSIS].safeCreation} XDAI on
- Gnosis
-
-
- The app needs these funds to create your account on-chain.
-
-
-
-
- Status: {statusMessage}
-
-
- {!isFundedMasterEoa && }
-
- );
-};
-
-const SetupEoaFundingWaiting = () => {
- const { masterEoaAddress } = useWallet();
-
- return (
- <>
-
-
-
- Only send funds on Gnosis Chain!
-
-
- You will lose any assets you send on other chains.
-
-
- }
- />
-
-
-
-
- Account creation address
-
-
-
-
- masterEoaAddress &&
- copyToClipboard(masterEoaAddress).then(() =>
- message.success('Address copied!'),
- )
- }
- />
-
-
- {/* {masterEoaAddress && (
-
- }
- >
-
-
- )} */}
-
-
-
-
- {`GNO: ${masterEoaAddress}`}
-
-
-
-
- >
- );
-};
-
-const AccountCreationCard = styled.div`
- display: flex;
- flex-direction: column;
- gap: 8px;
- margin-top: 24px;
- margin-bottom: 24px;
- padding: 16px;
- background-image: url("data:image/svg+xml,%3csvg width='100%25' height='100%25' xmlns='http://www.w3.org/2000/svg'%3e%3crect width='100%25' height='100%25' fill='none' rx='12' ry='12' stroke='%23A3AEBB' stroke-width='2' stroke-dasharray='6' stroke-dashoffset='15' stroke-linecap='square'/%3e%3c/svg%3e");
- border-radius: 12px;
-`;
-
-const ICON_STYLE = { color: '#606F85' };
diff --git a/frontend/components/Setup/Create/SetupPassword.tsx b/frontend/components/Setup/Create/SetupPassword.tsx
deleted file mode 100644
index 4907724af..000000000
--- a/frontend/components/Setup/Create/SetupPassword.tsx
+++ /dev/null
@@ -1,88 +0,0 @@
-import { Button, Checkbox, Form, Input, message, Typography } from 'antd';
-import { useState } from 'react';
-
-import { Chain } from '@/client';
-import { SetupScreen } from '@/enums/SetupScreen';
-import { useSetup } from '@/hooks/useSetup';
-import { AccountService } from '@/service/Account';
-import { WalletService } from '@/service/Wallet';
-
-import { CardFlex } from '../../styled/CardFlex';
-import { SetupCreateHeader } from './SetupCreateHeader';
-
-const { Title, Text } = Typography;
-
-export const SetupPassword = () => {
- const { goto, setMnemonic } = useSetup();
- const [form] = Form.useForm<{ password: string; terms: boolean }>();
-
- const [isLoading, setIsLoading] = useState(false);
-
- const isTermsAccepted = Form.useWatch('terms', form);
-
- const handleCreateEoa = async ({ password }: { password: string }) => {
- if (!isTermsAccepted) return;
-
- setIsLoading(true);
- AccountService.createAccount(password)
- .then(() => AccountService.loginAccount(password))
- .then(() => WalletService.createEoa(Chain.GNOSIS))
- .then(({ mnemonic }: { mnemonic: string[] }) => {
- setMnemonic(mnemonic);
- goto(SetupScreen.SetupSeedPhrase);
- })
- .catch((e) => {
- console.error(e);
- message.error('Unable to create account, please try again.');
- })
- .finally(() => setIsLoading(false));
- };
-
- return (
-
-
- Create password
- Come up with a strong password.
-
-
-
-
-
-
-
- I agree to the Pearl’s{' '}
-
- Terms & Conditions
-
-
-
-
-
-
-
-
-
- );
-};
diff --git a/frontend/components/Setup/Create/SetupSeedPhrase.tsx b/frontend/components/Setup/Create/SetupSeedPhrase.tsx
deleted file mode 100644
index 5b32a4cdb..000000000
--- a/frontend/components/Setup/Create/SetupSeedPhrase.tsx
+++ /dev/null
@@ -1,46 +0,0 @@
-import { CopyOutlined } from '@ant-design/icons';
-import { Button, Flex, message, Tag, Typography } from 'antd';
-
-import { SetupScreen } from '@/enums/SetupScreen';
-import { useSetup } from '@/hooks/useSetup';
-import { copyToClipboard } from '@/utils/copyToClipboard';
-
-import { CardFlex } from '../../styled/CardFlex';
-import { SetupCreateHeader } from './SetupCreateHeader';
-
-export const SetupSeedPhrase = () => {
- const { mnemonic, goto } = useSetup();
-
- const handleNext = () => {
- goto(SetupScreen.SetupBackupSigner);
- };
-
- return (
-
-
- Back up seed phrase
-
- Seed phrase is needed to regain access to your account if you forget the
- password.
-
-
- {mnemonic.map((word: string) => (
- {word}
- ))}
-
-
-
-
- );
-};
diff --git a/frontend/components/Setup/SetupRestore.tsx b/frontend/components/Setup/SetupRestore.tsx
deleted file mode 100644
index 99f57d61d..000000000
--- a/frontend/components/Setup/SetupRestore.tsx
+++ /dev/null
@@ -1,197 +0,0 @@
-import { CloseOutlined } from '@ant-design/icons';
-import { Button, Col, Flex, Form, Input, Row, Tooltip, Typography } from 'antd';
-import isEmpty from 'lodash/isEmpty';
-import { memo, useMemo, useState } from 'react';
-
-import { CardFlex } from '@/components/styled/CardFlex';
-import { CardSection } from '@/components/styled/CardSection';
-import { SetupScreen } from '@/enums/SetupScreen';
-import { useSetup } from '@/hooks/useSetup';
-
-const ExitButton = memo(function ExitButton() {
- const { goto } = useSetup();
- return (
-
- );
-});
-
-export const SetupRestoreMain = () => {
- const { goto } = useSetup();
- return (
-
-
- Restore access
-
-
-
- }
- >
-
-
- You can recover the Pearl account access by providing the seed phrase
- you received when setting up your account.
-
-
-
-
-
-
-
- If you don’t have the seed phrase but added a backup wallet to your
- account, you can still restore your funds, but you won’t be able to
- recover access to your Pearl account.
-
-
-
-
- );
-};
-
-const SEED_PHRASE_WORDS = 12;
-export const SetupRestoreViaSeed = () => {
- const { goto } = useSetup();
-
- const [form] = Form.useForm();
- const [formValues, setFormValues] = useState<{ [name: string]: string }>({});
-
- const onValuesChange = (
- changedValues: { [name: string]: string },
- allValues: { [name: string]: string },
- ) => setFormValues(allValues);
-
- const isComplete = useMemo(
- () =>
- !isEmpty(formValues) &&
- Object.values(formValues).every((v: string) => v && v.trim()),
- [formValues],
- );
-
- return (
-
-
- Restore via seed phrase
-
-
-
- }
- >
-
-
- To restore access to your Pearl account, enter the seed phrase you
- received when setting up your account.
-
-
-
-
- );
-};
-
-export const SetupRestoreSetPassword = () => {
- const { goto } = useSetup();
- const [password, setPassword] = useState('');
- return (
-
-
- Set password
-
-
-
- }
- >
-
-
- Come up with a strong password to get access to the Pearl account in
- the future.
-
-
- setPassword(e.target.value)}
- placeholder="Password"
- size="large"
- value={password}
- />
-
-
-
-
- );
-};
-
-export const SetupRestoreViaBackup = () => {
- return (
-
-
- Set password
-
-
-
- }
- >
-
-
- To restore access to the funds in your Pearl account, please follow
- the instructions below.
-
-
- Note that the backup wallet won’t give you access to your Pearl
- account but only to the funds stored on it.
-
-
-
- );
-};
diff --git a/frontend/components/Setup/SetupWelcome.tsx b/frontend/components/Setup/SetupWelcome.tsx
deleted file mode 100644
index 943ae59b8..000000000
--- a/frontend/components/Setup/SetupWelcome.tsx
+++ /dev/null
@@ -1,197 +0,0 @@
-import {
- Button,
- Card,
- Flex,
- Form,
- Input,
- message,
- Spin,
- Typography,
-} from 'antd';
-import Image from 'next/image';
-import { useCallback, useEffect, useMemo, useState } from 'react';
-
-import { AccountIsSetup } from '@/client';
-import { PageState } from '@/enums/PageState';
-import { SetupScreen } from '@/enums/SetupScreen';
-import { useBalance } from '@/hooks/useBalance';
-import { useElectronApi } from '@/hooks/useElectronApi';
-import { usePageState } from '@/hooks/usePageState';
-import { useSetup } from '@/hooks/useSetup';
-import { useWallet } from '@/hooks/useWallet';
-import { AccountService } from '@/service/Account';
-
-import { FormFlex } from '../styled/FormFlex';
-
-const { Title } = Typography;
-
-export const SetupWelcome = () => {
- const electronApi = useElectronApi();
- const [isSetup, setIsSetup] = useState(null);
-
- useEffect(() => {
- if (isSetup !== null) return;
- setIsSetup(AccountIsSetup.Loading);
-
- AccountService.getAccount()
- .then((res) => {
- switch (res.is_setup) {
- case true:
- setIsSetup(AccountIsSetup.True);
- break;
- case false:
- // Reset persistent state
- // if creating new account
- electronApi.store?.clear?.();
- setIsSetup(AccountIsSetup.False);
- break;
- default:
- setIsSetup(AccountIsSetup.Error);
- break;
- }
- })
- .catch((e) => {
- console.error(e);
- setIsSetup(AccountIsSetup.Error);
- });
- }, [electronApi.store, isSetup]);
-
- const welcomeScreen = useMemo(() => {
- switch (isSetup) {
- case AccountIsSetup.True:
- return ;
- case AccountIsSetup.False:
- return ;
- case AccountIsSetup.Loading:
- return (
-
-
-
- );
- default:
- return (
-
-
- Error determining account setup state.
-
-
- );
- }
- }, [isSetup]);
-
- return (
-
-
-
- Pearl
-
- {welcomeScreen}
-
- );
-};
-
-export const SetupWelcomeCreate = () => {
- const { goto } = useSetup();
-
- return (
-
-
-
-
- );
-};
-
-export const SetupWelcomeLogin = () => {
- const { goto } = useSetup();
- const { goto: gotoPage } = usePageState();
-
- const { masterSafeAddress, wallets } = useWallet();
- const { isBalanceLoaded, eoaBalance } = useBalance();
-
- const [isLoggingIn, setIsLoggingIn] = useState(false);
- const [canNavigate, setCanNavigate] = useState(false);
-
- const [form] = Form.useForm();
-
- const handleLogin = useCallback(
- async ({ password }: { password: string }) => {
- setIsLoggingIn(true);
- AccountService.loginAccount(password)
- .then(() => {
- setCanNavigate(true);
- })
- .catch((e) => {
- console.error(e);
- setIsLoggingIn(false);
- message.error('Invalid password');
- });
- },
- [],
- );
-
- useEffect(() => {
- // Navigate only when wallets and balances are loaded
- // To check if some setup steps were missed
- if (canNavigate && wallets?.length && isBalanceLoaded) {
- setIsLoggingIn(false);
- if (!eoaBalance?.ETH) {
- goto(SetupScreen.SetupEoaFundingIncomplete);
- } else if (!masterSafeAddress) {
- goto(SetupScreen.SetupCreateSafe);
- } else {
- gotoPage(PageState.Main);
- }
- }
- }, [
- canNavigate,
- eoaBalance?.ETH,
- goto,
- gotoPage,
- isBalanceLoaded,
- masterSafeAddress,
- wallets?.length,
- ]);
-
- return (
-
-
-
-
-
-
-
-
-
- );
-};
diff --git a/frontend/components/Setup/index.tsx b/frontend/components/Setup/index.tsx
deleted file mode 100644
index 598ff10ac..000000000
--- a/frontend/components/Setup/index.tsx
+++ /dev/null
@@ -1,53 +0,0 @@
-import { useContext, useMemo } from 'react';
-
-import { SetupContext } from '@/context/SetupProvider';
-import { SetupScreen } from '@/enums/SetupScreen';
-
-import { SetupBackupSigner } from './Create/SetupBackupSigner';
-import { SetupCreateSafe } from './Create/SetupCreateSafe';
-import { SetupEoaFunding } from './Create/SetupEoaFunding';
-import { SetupPassword } from './Create/SetupPassword';
-import { SetupSeedPhrase } from './Create/SetupSeedPhrase';
-import {
- SetupRestoreMain,
- SetupRestoreSetPassword,
- SetupRestoreViaBackup,
- SetupRestoreViaSeed,
-} from './SetupRestore';
-import { SetupWelcome } from './SetupWelcome';
-
-export const Setup = () => {
- const { setupObject } = useContext(SetupContext);
- const setupScreen = useMemo(() => {
- switch (setupObject.state) {
- case SetupScreen.Welcome:
- return ;
- // Create account
- case SetupScreen.SetupPassword:
- return ;
- case SetupScreen.SetupSeedPhrase:
- return ;
- case SetupScreen.SetupBackupSigner:
- return ;
- case SetupScreen.SetupEoaFunding:
- return ;
- case SetupScreen.SetupEoaFundingIncomplete:
- return ;
- case SetupScreen.SetupCreateSafe:
- return ;
- // Restore account
- case SetupScreen.Restore:
- return ;
- case SetupScreen.RestoreViaSeed:
- return ;
- case SetupScreen.RestoreSetPassword:
- return ;
- case SetupScreen.RestoreViaBackup:
- return ;
- default:
- return <>Error>;
- }
- }, [setupObject.state]);
-
- return setupScreen;
-};
diff --git a/frontend/components/styled/CardFlex.tsx b/frontend/components/styled/CardFlex.tsx
deleted file mode 100644
index 38a20412d..000000000
--- a/frontend/components/styled/CardFlex.tsx
+++ /dev/null
@@ -1,19 +0,0 @@
-import { Card } from 'antd';
-import styled from 'styled-components';
-
-type CardFlexProps = {
- gap?: number;
-};
-export const CardFlex = styled(Card)`
- .ant-card-body {
- ${(props) => {
- const { gap } = props;
-
- const gapStyle = gap ? `gap: ${gap}px;` : '';
-
- return `${gapStyle}`;
- }}
- display: flex;
- flex-direction: column;
- }
-`;
diff --git a/frontend/components/styled/CardSection.tsx b/frontend/components/styled/CardSection.tsx
deleted file mode 100644
index 0a1b653a0..000000000
--- a/frontend/components/styled/CardSection.tsx
+++ /dev/null
@@ -1,45 +0,0 @@
-import { Flex, FlexProps } from 'antd';
-import styled from 'styled-components';
-
-import { COLOR } from '@/constants/colors';
-
-type CardSectionProps = FlexProps & {
- bordertop?: 'true' | 'false';
- borderbottom?: 'true' | 'false';
- padding?: string;
-};
-
-/**
- * A styled `Flex` component that represents a section of a card.
- * @param {CardSectionProps} props
- */
-export const CardSection = styled(Flex)`
- ${(props) => {
- const { padding, borderbottom, bordertop } = props;
-
- const paddingStyle = `padding: ${padding ?? '24px'};`;
- const borderTopStyle =
- bordertop === 'true' ? `border-top: 1px solid ${COLOR.BORDER_GRAY};` : '';
- const borderBottomStyle =
- borderbottom === 'true'
- ? `border-bottom: 1px solid ${COLOR.BORDER_GRAY};`
- : '';
-
- return `
- ${paddingStyle}
- ${borderTopStyle}
- ${borderBottomStyle}
- `;
- }}
- border-collapse: collapse;
- margin-left: -24px;
- margin-right: -24px;
-
- &:nth-child(1) {
- margin-top: -24px;
- }
-
- &:nth-last-child(1) {
- margin-bottom: -24px;
- }
-`;
diff --git a/frontend/components/styled/FormFlex.tsx b/frontend/components/styled/FormFlex.tsx
deleted file mode 100644
index 0799be636..000000000
--- a/frontend/components/styled/FormFlex.tsx
+++ /dev/null
@@ -1,7 +0,0 @@
-import { Form, FormProps } from 'antd';
-import styled from 'styled-components';
-
-export const FormFlex = styled(Form)`
- display: flex;
- flex-direction: column;
-`;
diff --git a/frontend/constants/chains.ts b/frontend/constants/chains.ts
deleted file mode 100644
index 5c944b011..000000000
--- a/frontend/constants/chains.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-export const CHAINS: {
- [chain: string]: {
- currency: string;
- chainId: number;
- minimumFunding: number;
- };
-} = {
- gnosis: { currency: 'XDAI', chainId: 100, minimumFunding: 1 },
-};
diff --git a/frontend/constants/colors.ts b/frontend/constants/colors.ts
deleted file mode 100644
index 7625d03ee..000000000
--- a/frontend/constants/colors.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-export const COLOR = {
- RED: '#EA3324',
- GREEN_2: '#00F422',
- PURPLE: '#722ed1',
- PURPLE_DARK: '#36075F',
- BLUE: '#1677FF',
- ORANGE: '#FAAD14',
- WHITE: '#ffffff',
- BORDER_GRAY: '#DFE5EE',
- BROWN: '#873800',
- TEXT: '#1f2229',
-};
diff --git a/frontend/constants/contractAddresses.ts b/frontend/constants/contractAddresses.ts
deleted file mode 100644
index 823e9710b..000000000
--- a/frontend/constants/contractAddresses.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-import { Chain } from '@/client';
-import { Address } from '@/types/Address';
-
-export const MULTICALL_CONTRACT_ADDRESS: Address =
- '0xcA11bde05977b3631167028862bE2a173976CA11'; // https://github.com/mds1/multicall, https://www.multicall3.com/
-
-export const SERVICE_REGISTRY_L2_CONTRACT_ADDRESS: Record = {
- [Chain.GNOSIS]: '0x9338b5153AE39BB89f50468E608eD9d764B755fD',
-};
-
-export const SERVICE_REGISTRY_TOKEN_UTILITY_CONTRACT_ADDRESS: Record<
- number,
- Address
-> = {
- [Chain.GNOSIS]: '0xa45E64d13A30a51b91ae0eb182e88a40e9b18eD8',
-};
-
-export const SERVICE_STAKING_TOKEN_MECH_USAGE_CONTRACT_ADDRESS: Record<
- number,
- Address
-> = {
- [Chain.GNOSIS]: '0xEE9F19b5DF06c7E8Bfc7B28745dcf944C504198A',
-};
-
-export const AGENT_MECH_CONTRACT_ADDRESS: Record = {
- [Chain.GNOSIS]: '0x77af31De935740567Cf4fF1986D04B2c964A786a',
-};
-
-export const MECH_ACTIVITY_CHECKER_CONTRACT_ADDRESS: Record = {
- [Chain.GNOSIS]: '0x155547857680A6D51bebC5603397488988DEb1c8',
-};
diff --git a/frontend/constants/env.ts b/frontend/constants/env.ts
deleted file mode 100644
index 0bd4ecf30..000000000
--- a/frontend/constants/env.ts
+++ /dev/null
@@ -1 +0,0 @@
-export const isDev = process.env.NODE_ENV === 'development';
diff --git a/frontend/constants/intervals.ts b/frontend/constants/intervals.ts
deleted file mode 100644
index 50afd39d0..000000000
--- a/frontend/constants/intervals.ts
+++ /dev/null
@@ -1 +0,0 @@
-export const FIVE_SECONDS_INTERVAL = 5000;
diff --git a/frontend/constants/providers.ts b/frontend/constants/providers.ts
deleted file mode 100644
index 760924018..000000000
--- a/frontend/constants/providers.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { ethers } from 'ethers';
-import { Provider } from 'ethers-multicall';
-
-export const gnosisProvider = new ethers.providers.StaticJsonRpcProvider(
- process.env.GNOSIS_RPC,
-);
-
-export const gnosisMulticallProvider = new Provider(gnosisProvider, 100);
diff --git a/frontend/constants/serviceTemplates.ts b/frontend/constants/serviceTemplates.ts
deleted file mode 100644
index 5547bf63c..000000000
--- a/frontend/constants/serviceTemplates.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { ServiceTemplate } from '@/client';
-
-export const SERVICE_TEMPLATES: ServiceTemplate[] = [
- {
- name: 'Trader Agent',
- hash: 'bafybeidgjgjj5ul6xkubicbemppufgsbx5sr5rwhtrwttk2oivp5bkdnce',
- description: 'Trader agent for omen prediction markets',
- image:
- 'https://operate.olas.network/_next/image?url=%2Fimages%2Fprediction-agent.png&w=3840&q=75',
- configuration: {
- trader_version: 'v0.16.4',
- nft: 'bafybeig64atqaladigoc3ds4arltdu63wkdrk3gesjfvnfdmz35amv7faq',
- agent_id: 14,
- threshold: 1,
- use_staking: true,
- cost_of_bond: 10000000000000000,
- olas_cost_of_bond: 10000000000000000000,
- olas_required_to_stake: 10000000000000000000,
- monthly_gas_estimate: 10000000000000000000,
- fund_requirements: {
- agent: 100000000000000000,
- safe: 5000000000000000000,
- },
- },
- },
-];
diff --git a/frontend/constants/symbols.ts b/frontend/constants/symbols.ts
deleted file mode 100644
index 14c16e9f2..000000000
--- a/frontend/constants/symbols.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-export const UNICODE_SYMBOLS = {
- OLAS: '☴',
- EXTERNAL_LINK: '↗',
-};
diff --git a/frontend/constants/thresholds.ts b/frontend/constants/thresholds.ts
deleted file mode 100644
index ced09c8c5..000000000
--- a/frontend/constants/thresholds.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { Chain } from '@/client';
-
-export const MIN_ETH_BALANCE_THRESHOLDS = {
- [Chain.GNOSIS]: {
- safeCreation: 1.5,
- safeAddSigner: 0.1,
- },
-};
-
-export const LOW_BALANCE = 0.5;
diff --git a/frontend/constants/tokens.ts b/frontend/constants/tokens.ts
deleted file mode 100644
index 89940ab80..000000000
--- a/frontend/constants/tokens.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { Address } from '@/types/Address';
-
-export const TOKENS: { [chain: string]: { [token: string]: Address } } = {
- gnosis: {
- OLAS: '0xcE11e14225575945b8E6Dc0D4F2dD4C570f79d9f',
- },
-};
diff --git a/frontend/constants/urls.ts b/frontend/constants/urls.ts
deleted file mode 100644
index 9336660f6..000000000
--- a/frontend/constants/urls.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-export const BACKEND_URL: string = `http://localhost:${process.env.NODE_ENV === 'production' ? 8765 : 8000}/api`;
-export const COW_SWAP_GNOSIS_XDAI_OLAS_URL: string =
- 'https://swap.cow.fi/#/100/swap/WXDAI/OLAS';
-
-export const SUPPORT_URL =
- 'https://discord.com/channels/899649805582737479/1244588374736502847';
-export const FAQ_URL = 'https://olas.network/operate#faq';
diff --git a/frontend/context/BalanceProvider.tsx b/frontend/context/BalanceProvider.tsx
deleted file mode 100644
index 12c5400ec..000000000
--- a/frontend/context/BalanceProvider.tsx
+++ /dev/null
@@ -1,300 +0,0 @@
-import { message } from 'antd';
-import { isAddress } from 'ethers/lib/utils';
-import { isNumber } from 'lodash';
-import { ValueOf } from 'next/dist/shared/lib/constants';
-import {
- createContext,
- Dispatch,
- PropsWithChildren,
- SetStateAction,
- useCallback,
- useContext,
- useMemo,
- useState,
-} from 'react';
-import { useInterval } from 'usehooks-ts';
-
-import { Wallet } from '@/client';
-import { FIVE_SECONDS_INTERVAL } from '@/constants/intervals';
-import { TOKENS } from '@/constants/tokens';
-import { ServiceRegistryL2ServiceState } from '@/enums/ServiceRegistryL2ServiceState';
-import { Token } from '@/enums/Token';
-import { AutonolasService } from '@/service/Autonolas';
-import { EthersService } from '@/service/Ethers';
-import MulticallService from '@/service/Multicall';
-import { Address } from '@/types/Address';
-import {
- AddressNumberRecord,
- WalletAddressNumberRecord,
-} from '@/types/Records';
-
-import { OnlineStatusContext } from './OnlineStatusProvider';
-import { RewardContext } from './RewardProvider';
-import { ServicesContext } from './ServicesProvider';
-import { WalletContext } from './WalletProvider';
-
-export const BalanceContext = createContext<{
- isLoaded: boolean;
- setIsLoaded: Dispatch>;
- isBalanceLoaded: boolean;
- olasBondBalance?: number;
- olasDepositBalance?: number;
- eoaBalance?: ValueOf;
- safeBalance?: ValueOf;
- totalEthBalance?: number;
- totalOlasBalance?: number;
- wallets?: Wallet[];
- walletBalances: WalletAddressNumberRecord;
- updateBalances: () => Promise;
- setIsPaused: Dispatch>;
- totalOlasStakedBalance?: number;
-}>({
- isLoaded: false,
- setIsLoaded: () => {},
- isBalanceLoaded: false,
- olasBondBalance: undefined,
- olasDepositBalance: undefined,
- eoaBalance: undefined,
- safeBalance: undefined,
- totalEthBalance: undefined,
- totalOlasBalance: undefined,
- wallets: undefined,
- walletBalances: {},
- updateBalances: async () => {},
- setIsPaused: () => {},
- totalOlasStakedBalance: undefined,
-});
-
-export const BalanceProvider = ({ children }: PropsWithChildren) => {
- const { isOnline } = useContext(OnlineStatusContext);
- const { wallets, masterEoaAddress, masterSafeAddress } =
- useContext(WalletContext);
- const { services, serviceAddresses } = useContext(ServicesContext);
- const { optimisticRewardsEarnedForEpoch, accruedServiceStakingRewards } =
- useContext(RewardContext);
-
- const [isLoaded, setIsLoaded] = useState(false);
- const [isPaused, setIsPaused] = useState(false);
- const [olasDepositBalance, setOlasDepositBalance] = useState();
- const [olasBondBalance, setOlasBondBalance] = useState();
- const [isBalanceLoaded, setIsBalanceLoaded] = useState(false);
- const [walletBalances, setWalletBalances] =
- useState({});
-
- const totalEthBalance: number | undefined = useMemo(() => {
- if (!isLoaded) return;
- return Object.values(walletBalances).reduce(
- (acc: number, walletBalance) => acc + walletBalance.ETH,
- 0,
- );
- }, [isLoaded, walletBalances]);
-
- const totalOlasBalance: number | undefined = useMemo(() => {
- if (!isLoaded) return;
-
- const sumWalletBalances = Object.values(walletBalances).reduce(
- (acc: number, walletBalance) => acc + walletBalance.OLAS,
- 0,
- );
-
- const total =
- sumWalletBalances +
- (olasDepositBalance ?? 0) +
- (olasBondBalance ?? 0) +
- (optimisticRewardsEarnedForEpoch ?? 0) +
- (accruedServiceStakingRewards ?? 0);
-
- return total;
- }, [
- accruedServiceStakingRewards,
- isLoaded,
- olasBondBalance,
- olasDepositBalance,
- optimisticRewardsEarnedForEpoch,
- walletBalances,
- ]);
-
- const totalOlasStakedBalance: number | undefined = useMemo(() => {
- if (!isLoaded) return;
- return (olasBondBalance ?? 0) + (olasDepositBalance ?? 0);
- }, [isLoaded, olasBondBalance, olasDepositBalance]);
-
- const updateBalances = useCallback(async (): Promise => {
- if (!masterEoaAddress) return;
- if (!serviceAddresses) return;
-
- try {
- const walletAddresses: Address[] = [];
- if (masterEoaAddress) walletAddresses.push(masterEoaAddress);
- if (masterSafeAddress) walletAddresses.push(masterSafeAddress);
- if (serviceAddresses) walletAddresses.push(...serviceAddresses);
-
- const walletBalances = await getWalletBalances(walletAddresses);
- if (!walletBalances) return;
-
- setWalletBalances(walletBalances);
-
- const serviceId = services?.[0]?.chain_data.token;
-
- if (!isNumber(serviceId)) {
- setIsLoaded(true);
- setIsBalanceLoaded(true);
- return;
- }
-
- if (masterSafeAddress && serviceId) {
- const { depositValue, bondValue, serviceState } =
- await AutonolasService.getServiceRegistryInfo(
- masterSafeAddress,
- serviceId,
- );
-
- switch (serviceState) {
- case ServiceRegistryL2ServiceState.NonExistent:
- setOlasBondBalance(0);
- setOlasDepositBalance(0);
- break;
- case ServiceRegistryL2ServiceState.PreRegistration:
- setOlasBondBalance(0);
- setOlasDepositBalance(0);
- break;
- case ServiceRegistryL2ServiceState.ActiveRegistration:
- setOlasBondBalance(0);
- setOlasDepositBalance(depositValue);
- break;
- case ServiceRegistryL2ServiceState.FinishedRegistration:
- setOlasBondBalance(bondValue);
- setOlasDepositBalance(depositValue);
- break;
- case ServiceRegistryL2ServiceState.Deployed:
- setOlasBondBalance(bondValue);
- setOlasDepositBalance(depositValue);
- break;
- case ServiceRegistryL2ServiceState.TerminatedBonded:
- setOlasBondBalance(bondValue);
- setOlasDepositBalance(0);
- break;
- }
- }
-
- // update balance loaded state
- setIsLoaded(true);
- setIsBalanceLoaded(true);
- } catch (error) {
- console.error(error);
- message.error('Unable to retrieve wallet balances');
- setIsBalanceLoaded(true);
- }
- }, [masterEoaAddress, masterSafeAddress, serviceAddresses, services]);
-
- const eoaBalance = useMemo(
- () => masterEoaAddress && walletBalances[masterEoaAddress],
- [masterEoaAddress, walletBalances],
- );
- const safeBalance = useMemo(
- () => masterSafeAddress && walletBalances[masterSafeAddress],
- [masterSafeAddress, walletBalances],
- );
-
- useInterval(
- () => {
- updateBalances();
- },
- isPaused || !isOnline ? null : FIVE_SECONDS_INTERVAL,
- );
-
- return (
-
- {children}
-
- );
-};
-
-export const getEthBalances = async (
- walletAddresses: Address[],
-): Promise => {
- const rpcIsValid = await EthersService.checkRpc(`${process.env.GNOSIS_RPC}`);
- if (!rpcIsValid) return;
-
- const ethBalances = await MulticallService.getEthBalances(walletAddresses);
-
- return ethBalances;
-};
-
-export const getOlasBalances = async (
- walletAddresses: Address[],
-): Promise => {
- const rpcIsValid = await EthersService.checkRpc(`${process.env.GNOSIS_RPC}`);
- if (!rpcIsValid) return;
-
- const olasBalances = await MulticallService.getErc20Balances(
- walletAddresses,
- TOKENS.gnosis.OLAS,
- );
-
- return olasBalances;
-};
-
-export const getWalletAddresses = (
- wallets: Wallet[],
- serviceAddresses: Address[],
-): Address[] => {
- const walletsToCheck: Address[] = [];
-
- for (const wallet of wallets) {
- const { address, safe } = wallet;
- if (address && isAddress(address)) {
- walletsToCheck.push(address);
- }
- if (safe && isAddress(safe)) {
- walletsToCheck.push(safe);
- }
- }
-
- for (const serviceAddress of serviceAddresses) {
- if (serviceAddress && isAddress(`${serviceAddress}`)) {
- walletsToCheck.push(serviceAddress);
- }
- }
-
- return walletsToCheck;
-};
-
-export const getWalletBalances = async (
- walletAddresses: Address[],
-): Promise => {
- const [ethBalances, olasBalances] = await Promise.all([
- getEthBalances(walletAddresses),
- getOlasBalances(walletAddresses),
- ]);
-
- if (!ethBalances) return;
- if (!olasBalances) return;
-
- const tempWalletBalances: WalletAddressNumberRecord = {};
- for (const [address, balance] of Object.entries(ethBalances)) {
- tempWalletBalances[address as Address] = {
- [Token.ETH]: balance,
- [Token.OLAS]: olasBalances[address as Address],
- };
- }
-
- return tempWalletBalances;
-};
diff --git a/frontend/context/ElectronApiProvider.tsx b/frontend/context/ElectronApiProvider.tsx
deleted file mode 100644
index 01f85bdf9..000000000
--- a/frontend/context/ElectronApiProvider.tsx
+++ /dev/null
@@ -1,97 +0,0 @@
-import { get } from 'lodash';
-import { createContext, PropsWithChildren } from 'react';
-
-import { ElectronStore, ElectronTrayIconStatus } from '@/types/ElectronApi';
-
-type ElectronApiContextProps = {
- closeApp?: () => void;
- minimizeApp?: () => void;
- setTrayIcon?: (status: ElectronTrayIconStatus) => void;
- ipcRenderer?: {
- send?: (channel: string, data: unknown) => void; // send messages to main process
- on?: (
- channel: string,
- func: (event: unknown, data: unknown) => void,
- ) => void; // listen to messages from main process
- invoke?: (channel: string, data: unknown) => Promise; // send message to main process and get Promise response
- };
- store?: {
- store?: () => Promise;
- get?: (key: string) => Promise;
- set?: (key: string, value: unknown) => Promise;
- delete?: (key: string) => Promise;
- clear?: () => Promise;
- };
- setAppHeight?: (height: unknown) => void;
- notifyAgentRunning?: () => void;
- showNotification?: (title: string, body?: string) => void;
- saveLogs?: (data: {
- store?: ElectronStore;
- debugData?: Record;
- }) => Promise<{ success: true; dirPath: string } | { success?: false }>;
- openPath?: (filePath: string) => void;
-};
-
-export const ElectronApiContext = createContext({
- closeApp: () => {},
- minimizeApp: () => {},
- setTrayIcon: () => {},
- ipcRenderer: {
- send: () => {},
- on: () => {},
- invoke: async () => {},
- },
- store: {
- store: async () => ({}),
- get: async () => {},
- set: async () => {},
- delete: async () => {},
- clear: async () => {},
- },
- setAppHeight: () => {},
- saveLogs: async () => ({ success: false }),
- openPath: () => {},
-});
-
-export const ElectronApiProvider = ({ children }: PropsWithChildren) => {
- const getElectronApiFunction = (functionNameInWindow: string) => {
- if (typeof window === 'undefined') return;
-
- const fn = get(window, `electronAPI.${functionNameInWindow}`);
- if (!fn || typeof fn !== 'function') {
- throw new Error(
- `Function ${functionNameInWindow} not found in window.electronAPI`,
- );
- }
-
- return fn;
- };
-
- return (
-
- {children}
-
- );
-};
diff --git a/frontend/context/MasterSafeProvider.tsx b/frontend/context/MasterSafeProvider.tsx
deleted file mode 100644
index 46daeaba1..000000000
--- a/frontend/context/MasterSafeProvider.tsx
+++ /dev/null
@@ -1,86 +0,0 @@
-import {
- createContext,
- PropsWithChildren,
- useContext,
- useMemo,
- useState,
-} from 'react';
-import { useInterval } from 'usehooks-ts';
-
-import { FIVE_SECONDS_INTERVAL } from '@/constants/intervals';
-import { GnosisSafeService } from '@/service/GnosisSafe';
-import { Address } from '@/types/Address';
-
-import { OnlineStatusContext } from './OnlineStatusProvider';
-import { WalletContext } from './WalletProvider';
-
-export const MasterSafeContext = createContext<{
- backupSafeAddress?: Address;
- masterSafeAddress?: Address;
- masterEoaAddress?: Address;
- masterSafeOwners?: Address[];
- updateMasterSafeOwners?: () => Promise;
-}>({
- backupSafeAddress: undefined,
- masterSafeAddress: undefined,
- masterEoaAddress: undefined,
- masterSafeOwners: undefined,
- updateMasterSafeOwners: async () => {},
-});
-
-export const MasterSafeProvider = ({ children }: PropsWithChildren) => {
- const { isOnline } = useContext(OnlineStatusContext);
- const { masterSafeAddress, masterEoaAddress } = useContext(WalletContext);
-
- const [masterSafeOwners, setMasterSafeOwners] = useState();
-
- const backupSafeAddress = useMemo(() => {
- if (!masterEoaAddress) return;
- if (!masterSafeOwners) return;
- if (!masterSafeOwners.length) return;
- if (!masterSafeOwners.includes(masterEoaAddress)) {
- console.error('Safe not owned by master EOA');
- return;
- }
-
- const currentBackupAddress = masterSafeOwners.find(
- (address) => address !== masterEoaAddress,
- );
-
- return currentBackupAddress;
- }, [masterEoaAddress, masterSafeOwners]);
-
- const updateMasterSafeOwners = async () => {
- if (!masterSafeAddress) return;
- try {
- const safeSigners = await GnosisSafeService.getOwners({
- address: masterSafeAddress,
- });
- if (!safeSigners) return;
- setMasterSafeOwners(safeSigners);
- } catch (error) {
- console.error('Error fetching safe owners', error);
- }
- };
-
- useInterval(
- updateMasterSafeOwners,
- (masterSafeOwners && masterSafeOwners.length >= 2) || !isOnline
- ? null
- : FIVE_SECONDS_INTERVAL,
- );
-
- return (
-
- {children}
-
- );
-};
diff --git a/frontend/context/OnlineStatusProvider.tsx b/frontend/context/OnlineStatusProvider.tsx
deleted file mode 100644
index c1bcfc2f2..000000000
--- a/frontend/context/OnlineStatusProvider.tsx
+++ /dev/null
@@ -1,43 +0,0 @@
-import React, {
- createContext,
- PropsWithChildren,
- useEffect,
- useState,
-} from 'react';
-
-type OnlineStatusContextProps = {
- isOnline: boolean;
-};
-
-const initialState = {
- isOnline: true,
-};
-
-const OnlineStatusContext =
- createContext(initialState);
-
-const OnlineStatusProvider = ({ children }: PropsWithChildren) => {
- const [isOnline, setIsOnline] = useState(initialState.isOnline);
-
- useEffect(() => {
- const updateOnlineStatus = () => {
- setIsOnline(navigator.onLine);
- };
-
- window.addEventListener('online', updateOnlineStatus);
- window.addEventListener('offline', updateOnlineStatus);
-
- return () => {
- window.removeEventListener('online', updateOnlineStatus);
- window.removeEventListener('offline', updateOnlineStatus);
- };
- }, []);
-
- return (
-
- {children}
-
- );
-};
-
-export { OnlineStatusContext, OnlineStatusProvider };
diff --git a/frontend/context/PageStateProvider.tsx b/frontend/context/PageStateProvider.tsx
deleted file mode 100644
index e176a246f..000000000
--- a/frontend/context/PageStateProvider.tsx
+++ /dev/null
@@ -1,29 +0,0 @@
-import {
- createContext,
- Dispatch,
- PropsWithChildren,
- SetStateAction,
- useState,
-} from 'react';
-
-import { PageState } from '@/enums/PageState';
-
-type PageStateContextType = {
- pageState: PageState;
- setPageState: Dispatch>;
-};
-
-export const PageStateContext = createContext({
- pageState: PageState.Setup,
- setPageState: () => {},
-});
-
-export const PageStateProvider = ({ children }: PropsWithChildren) => {
- const [pageState, setPageState] = useState(PageState.Setup);
-
- return (
-
- {children}
-
- );
-};
diff --git a/frontend/context/RewardProvider.tsx b/frontend/context/RewardProvider.tsx
deleted file mode 100644
index 0e67a002a..000000000
--- a/frontend/context/RewardProvider.tsx
+++ /dev/null
@@ -1,120 +0,0 @@
-import { ethers } from 'ethers';
-import {
- createContext,
- PropsWithChildren,
- useCallback,
- useContext,
- useEffect,
- useMemo,
- useState,
-} from 'react';
-import { useInterval } from 'usehooks-ts';
-
-import { FIVE_SECONDS_INTERVAL } from '@/constants/intervals';
-import { useElectronApi } from '@/hooks/useElectronApi';
-import { useStore } from '@/hooks/useStore';
-import { AutonolasService } from '@/service/Autonolas';
-
-import { OnlineStatusContext } from './OnlineStatusProvider';
-import { ServicesContext } from './ServicesProvider';
-
-export const RewardContext = createContext<{
- accruedServiceStakingRewards?: number;
- availableRewardsForEpoch?: number;
- availableRewardsForEpochEth?: number;
- isEligibleForRewards?: boolean;
- optimisticRewardsEarnedForEpoch?: number;
- minimumStakedAmountRequired?: number;
- updateRewards: () => Promise;
-}>({
- accruedServiceStakingRewards: undefined,
- availableRewardsForEpoch: undefined,
- availableRewardsForEpochEth: undefined,
- isEligibleForRewards: undefined,
- optimisticRewardsEarnedForEpoch: undefined,
- minimumStakedAmountRequired: undefined,
- updateRewards: async () => {},
-});
-
-export const RewardProvider = ({ children }: PropsWithChildren) => {
- const { isOnline } = useContext(OnlineStatusContext);
- const { services } = useContext(ServicesContext);
- const service = useMemo(() => services?.[0], [services]);
- const { storeState } = useStore();
- const electronApi = useElectronApi();
-
- const [accruedServiceStakingRewards, setAccruedServiceStakingRewards] =
- useState();
- const [availableRewardsForEpoch, setAvailableRewardsForEpoch] =
- useState();
- const [isEligibleForRewards, setIsEligibleForRewards] = useState();
-
- const availableRewardsForEpochEth = useMemo(() => {
- if (!availableRewardsForEpoch) return;
-
- const formatRewardsEth = parseFloat(
- ethers.utils.formatUnits(`${availableRewardsForEpoch}`, 18),
- );
-
- return formatRewardsEth;
- }, [availableRewardsForEpoch]);
-
- const optimisticRewardsEarnedForEpoch = useMemo(() => {
- if (isEligibleForRewards && availableRewardsForEpochEth) {
- return availableRewardsForEpochEth;
- }
- return;
- }, [availableRewardsForEpochEth, isEligibleForRewards]);
-
- const updateRewards = useCallback(async (): Promise => {
- let stakingRewardsInfoPromise;
- if (service?.chain_data?.multisig && service?.chain_data?.token) {
- stakingRewardsInfoPromise = AutonolasService.getAgentStakingRewardsInfo({
- agentMultisigAddress: service?.chain_data?.multisig,
- serviceId: service?.chain_data?.token,
- });
- }
-
- const epochRewardsPromise = AutonolasService.getAvailableRewardsForEpoch();
- const [stakingRewardsInfo, rewards] = await Promise.all([
- stakingRewardsInfoPromise,
- epochRewardsPromise,
- ]);
-
- setIsEligibleForRewards(stakingRewardsInfo?.isEligibleForRewards);
- setAccruedServiceStakingRewards(
- stakingRewardsInfo?.accruedServiceStakingRewards,
- );
- setAvailableRewardsForEpoch(rewards);
- }, [service]);
-
- useEffect(() => {
- if (isEligibleForRewards && !storeState?.firstStakingRewardAchieved) {
- electronApi.store?.set?.('firstStakingRewardAchieved', true);
- }
- }, [
- electronApi.store,
- isEligibleForRewards,
- storeState?.firstStakingRewardAchieved,
- ]);
-
- useInterval(
- async () => updateRewards(),
- isOnline ? FIVE_SECONDS_INTERVAL : null,
- );
-
- return (
-
- {children}
-
- );
-};
diff --git a/frontend/context/ServicesProvider.tsx b/frontend/context/ServicesProvider.tsx
deleted file mode 100644
index 8b44e2612..000000000
--- a/frontend/context/ServicesProvider.tsx
+++ /dev/null
@@ -1,119 +0,0 @@
-import { message } from 'antd';
-import {
- createContext,
- Dispatch,
- PropsWithChildren,
- SetStateAction,
- useCallback,
- useContext,
- useMemo,
- useState,
-} from 'react';
-import { useInterval } from 'usehooks-ts';
-
-import { DeploymentStatus, Service } from '@/client';
-import { FIVE_SECONDS_INTERVAL } from '@/constants/intervals';
-import { ServicesService } from '@/service/Services';
-import { Address } from '@/types/Address';
-
-import { OnlineStatusContext } from './OnlineStatusProvider';
-
-type ServicesContextProps = {
- services?: Service[];
- serviceAddresses?: Address[];
- setServices: Dispatch>;
- serviceStatus: DeploymentStatus | undefined;
- setServiceStatus: Dispatch>;
- updateServicesState: () => Promise;
- updateServiceStatus: () => Promise;
- hasInitialLoaded: boolean;
- setHasInitialLoaded: Dispatch>;
- setIsPaused: Dispatch>;
-};
-
-export const ServicesContext = createContext({
- services: undefined,
- serviceAddresses: undefined,
- setServices: () => {},
- serviceStatus: undefined,
- setServiceStatus: () => {},
- updateServicesState: async () => {},
- updateServiceStatus: async () => {},
- hasInitialLoaded: false,
- setHasInitialLoaded: () => {},
- setIsPaused: () => {},
-});
-
-export const ServicesProvider = ({ children }: PropsWithChildren) => {
- const { isOnline } = useContext(OnlineStatusContext);
-
- const [services, setServices] = useState();
-
- const [serviceStatus, setServiceStatus] = useState<
- DeploymentStatus | undefined
- >();
- const [hasInitialLoaded, setHasInitialLoaded] = useState(false);
- const [isPaused, setIsPaused] = useState(false);
-
- const serviceAddresses = useMemo(
- () =>
- services?.reduce((acc, service: Service) => {
- if (service.chain_data.instances) {
- acc.push(...service.chain_data.instances);
- }
- if (service.chain_data.multisig) {
- acc.push(service.chain_data.multisig);
- }
- return acc;
- }, []),
- [services],
- );
-
- const updateServicesState = useCallback(
- async (): Promise =>
- ServicesService.getServices()
- .then((data: Service[]) => {
- if (!Array.isArray(data)) return;
- setServices(data);
- setHasInitialLoaded(true);
- })
- .catch((e) => {
- message.error(e.message);
- }),
- [],
- );
-
- const updateServiceStatus = useCallback(async () => {
- if (!services?.[0]) return;
- const serviceStatus = await ServicesService.getDeployment(services[0].hash);
- setServiceStatus(serviceStatus.status);
- }, [services]);
-
- // Update service state
- useInterval(
- () =>
- updateServicesState()
- .then(() => updateServiceStatus())
- .catch((e) => message.error(e.message)),
- isOnline && !isPaused ? FIVE_SECONDS_INTERVAL : null,
- );
-
- return (
-
- {children}
-
- );
-};
diff --git a/frontend/context/SettingsProvider.tsx b/frontend/context/SettingsProvider.tsx
deleted file mode 100644
index 6bdb43a15..000000000
--- a/frontend/context/SettingsProvider.tsx
+++ /dev/null
@@ -1,23 +0,0 @@
-import { createContext, PropsWithChildren, useState } from 'react';
-
-import { SettingsScreen } from '@/enums/SettingsScreen';
-
-export const SettingsContext = createContext<{
- screen: SettingsScreen;
- goto: (screen: SettingsScreen) => void;
-}>({
- screen: SettingsScreen.Main,
- goto: () => {},
-});
-
-export const SettingsProvider = ({ children }: PropsWithChildren) => {
- const [screen, setScreen] = useState(SettingsScreen.Main);
-
- const goto = (screen: SettingsScreen) => setScreen(screen);
-
- return (
-
- {children}
-
- );
-};
diff --git a/frontend/context/SetupProvider.tsx b/frontend/context/SetupProvider.tsx
deleted file mode 100644
index d833bf2ee..000000000
--- a/frontend/context/SetupProvider.tsx
+++ /dev/null
@@ -1,44 +0,0 @@
-import {
- createContext,
- Dispatch,
- PropsWithChildren,
- SetStateAction,
- useState,
-} from 'react';
-
-import { SetupScreen } from '@/enums/SetupScreen';
-import { Address } from '@/types/Address';
-
-type SetupObjectType = {
- state: SetupScreen;
- mnemonic: string[];
- backupSigner?: Address;
-};
-
-type SetupContextType = {
- setupObject: SetupObjectType;
- setSetupObject: Dispatch>;
-};
-
-export const SetupContext = createContext({
- setupObject: {
- state: SetupScreen.Welcome,
- mnemonic: [],
- backupSigner: undefined,
- },
- setSetupObject: () => {},
-});
-
-export const SetupProvider = ({ children }: PropsWithChildren) => {
- const [setupObject, setSetupObject] = useState({
- state: SetupScreen.Welcome,
- mnemonic: [],
- backupSigner: undefined,
- });
-
- return (
-
- {children}
-
- );
-};
diff --git a/frontend/context/StakingContractInfoProvider.tsx b/frontend/context/StakingContractInfoProvider.tsx
deleted file mode 100644
index 20d56ac2f..000000000
--- a/frontend/context/StakingContractInfoProvider.tsx
+++ /dev/null
@@ -1,58 +0,0 @@
-import {
- createContext,
- PropsWithChildren,
- useCallback,
- useContext,
- useMemo,
- useState,
-} from 'react';
-import { useInterval } from 'usehooks-ts';
-
-import { FIVE_SECONDS_INTERVAL } from '@/constants/intervals';
-import { AutonolasService } from '@/service/Autonolas';
-import { StakingContractInfo } from '@/types/Autonolas';
-
-import { ServicesContext } from './ServicesProvider';
-
-type StakingContractInfoContextProps = {
- updateStakingContractInfo: () => Promise;
- stakingContractInfo?: StakingContractInfo;
-};
-
-export const StakingContractInfoContext =
- createContext({
- updateStakingContractInfo: async () => {},
- stakingContractInfo: undefined,
- });
-
-export const StakingContractInfoProvider = ({
- children,
-}: PropsWithChildren) => {
- const { services } = useContext(ServicesContext);
- const serviceId = useMemo(() => services?.[0]?.chain_data?.token, [services]);
-
- const [stakingContractInfo, setStakingContractInfo] =
- useState();
-
- const updateStakingContractInfo = useCallback(async () => {
- if (!serviceId) return;
-
- const info = await AutonolasService.getStakingContractInfo(serviceId);
- if (!info) return;
-
- setStakingContractInfo(info);
- }, [serviceId]);
-
- useInterval(updateStakingContractInfo, FIVE_SECONDS_INTERVAL);
-
- return (
-
- {children}
-
- );
-};
diff --git a/frontend/context/StoreProvider.tsx b/frontend/context/StoreProvider.tsx
deleted file mode 100644
index 63ce0ed88..000000000
--- a/frontend/context/StoreProvider.tsx
+++ /dev/null
@@ -1,39 +0,0 @@
-import {
- createContext,
- PropsWithChildren,
- useCallback,
- useContext,
- useEffect,
- useState,
-} from 'react';
-
-import type { ElectronStore } from '@/types/ElectronApi';
-
-import { ElectronApiContext } from './ElectronApiProvider';
-
-export const StoreContext = createContext<{ storeState?: ElectronStore }>({
- storeState: undefined,
-});
-
-export const StoreProvider = ({ children }: PropsWithChildren) => {
- const { store, ipcRenderer } = useContext(ElectronApiContext);
- const [storeState, setStoreState] = useState();
-
- const setupStore = useCallback(async () => {
- const tempStore = await store?.store?.();
- setStoreState(tempStore);
- ipcRenderer?.on?.('store-changed', (_event: unknown, data: unknown) => {
- setStoreState(data as ElectronStore);
- });
- }, [ipcRenderer, store]);
-
- useEffect(() => {
- if (!storeState) setupStore().catch(console.error);
- }, [setupStore, storeState]);
-
- return (
-
- {children}
-
- );
-};
diff --git a/frontend/context/WalletProvider.tsx b/frontend/context/WalletProvider.tsx
deleted file mode 100644
index 21c02606a..000000000
--- a/frontend/context/WalletProvider.tsx
+++ /dev/null
@@ -1,51 +0,0 @@
-import { createContext, PropsWithChildren, useContext, useState } from 'react';
-import { useInterval } from 'usehooks-ts';
-
-import { Wallet } from '@/client';
-import { FIVE_SECONDS_INTERVAL } from '@/constants/intervals';
-import { WalletService } from '@/service/Wallet';
-import { Address } from '@/types/Address';
-
-import { OnlineStatusContext } from './OnlineStatusProvider';
-
-export const WalletContext = createContext<{
- masterEoaAddress?: Address;
- masterSafeAddress?: Address;
- wallets?: Wallet[];
- updateWallets: () => Promise;
-}>({
- masterEoaAddress: undefined,
- masterSafeAddress: undefined,
- wallets: undefined,
- updateWallets: async () => {},
-});
-
-export const WalletProvider = ({ children }: PropsWithChildren) => {
- const { isOnline } = useContext(OnlineStatusContext);
-
- const [wallets, setWallets] = useState();
-
- const masterEoaAddress: Address | undefined = wallets?.[0]?.address;
- const masterSafeAddress: Address | undefined = wallets?.[0]?.safe;
-
- const updateWallets = async () => {
- const wallets = await WalletService.getWallets();
- if (!wallets) return;
- setWallets(wallets);
- };
-
- useInterval(updateWallets, isOnline ? FIVE_SECONDS_INTERVAL : null);
-
- return (
-
- {children}
-
- );
-};
diff --git a/frontend/enums/PageState.ts b/frontend/enums/PageState.ts
deleted file mode 100644
index 7a670f683..000000000
--- a/frontend/enums/PageState.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-export enum PageState {
- Setup,
- Main,
- Settings,
- HelpAndSupport,
- Receive,
- Send,
-}
diff --git a/frontend/enums/ServiceRegistryL2ServiceState.ts b/frontend/enums/ServiceRegistryL2ServiceState.ts
deleted file mode 100644
index 52174fe7e..000000000
--- a/frontend/enums/ServiceRegistryL2ServiceState.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-// Reflects the state of a service in the ServiceRegistryL2 contract (i.e. https://gnosisscan.io/address/0xa45E64d13A30a51b91ae0eb182e88a40e9b18eD8)
-export enum ServiceRegistryL2ServiceState {
- NonExistent,
- PreRegistration,
- ActiveRegistration,
- FinishedRegistration,
- Deployed,
- TerminatedBonded,
-}
diff --git a/frontend/enums/SettingsScreen.ts b/frontend/enums/SettingsScreen.ts
deleted file mode 100644
index 0743775b0..000000000
--- a/frontend/enums/SettingsScreen.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-export enum SettingsScreen {
- Main,
- AddBackupWallet,
-}
diff --git a/frontend/enums/SetupScreen.ts b/frontend/enums/SetupScreen.ts
deleted file mode 100644
index 9003425c8..000000000
--- a/frontend/enums/SetupScreen.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-export enum SetupScreen {
- Loading,
- Welcome,
- SetupPassword,
- SetupSeedPhrase,
- SetupBackupSigner,
- SetupEoaFunding,
- SetupEoaFundingIncomplete,
- SetupCreateSafe,
- Restore,
- RestoreViaSeed,
- RestoreSetPassword,
- RestoreViaBackup,
-}
diff --git a/frontend/enums/Token.ts b/frontend/enums/Token.ts
deleted file mode 100644
index 3316710ff..000000000
--- a/frontend/enums/Token.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-export enum Token {
- ETH = 'ETH',
- OLAS = 'OLAS',
-}
diff --git a/frontend/hooks/useBalance.ts b/frontend/hooks/useBalance.ts
deleted file mode 100644
index c8d21df91..000000000
--- a/frontend/hooks/useBalance.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { useContext } from 'react';
-
-import { BalanceContext } from '@/context/BalanceProvider';
-
-export const useBalance = () => useContext(BalanceContext);
diff --git a/frontend/hooks/useElectronApi.ts b/frontend/hooks/useElectronApi.ts
deleted file mode 100644
index a4cf2aa46..000000000
--- a/frontend/hooks/useElectronApi.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { useContext } from 'react';
-
-import { ElectronApiContext } from '@/context/ElectronApiProvider';
-
-export const useElectronApi = () => useContext(ElectronApiContext);
diff --git a/frontend/hooks/useLogs.ts b/frontend/hooks/useLogs.ts
deleted file mode 100644
index b72e59c3b..000000000
--- a/frontend/hooks/useLogs.ts
+++ /dev/null
@@ -1,96 +0,0 @@
-import { useMemo } from 'react';
-
-import { DeploymentStatus } from '@/client';
-
-import { useBalance } from './useBalance';
-import { useMasterSafe } from './useMasterSafe';
-import { useServices } from './useServices';
-import { useStore } from './useStore';
-import { useWallet } from './useWallet';
-
-const useAddressesLogs = () => {
- const { wallets, masterEoaAddress, masterSafeAddress } = useWallet();
-
- const { backupSafeAddress, masterSafeOwners } = useMasterSafe();
-
- return {
- isLoaded: wallets?.length !== 0 && !!masterSafeOwners,
- data: [
- { backupSafeAddress: backupSafeAddress ?? 'undefined' },
- { masterSafeAddress: masterSafeAddress ?? 'undefined' },
- { masterEoaAddress: masterEoaAddress ?? 'undefined' },
- { masterSafeOwners: masterSafeOwners ?? 'undefined' },
- ],
- };
-};
-
-const useBalancesLogs = () => {
- const {
- isBalanceLoaded,
- totalEthBalance,
- totalOlasBalance,
- wallets,
- walletBalances,
- totalOlasStakedBalance,
- } = useBalance();
-
- return {
- isLoaded: isBalanceLoaded,
- data: [
- { wallets: wallets ?? 'undefined' },
- { walletBalances: walletBalances ?? 'undefined' },
- { totalOlasStakedBalance: totalOlasStakedBalance ?? 'undefined' },
- { totalEthBalance: totalEthBalance ?? 'undefined' },
- { totalOlasBalance: totalOlasBalance ?? 'undefined' },
- ],
- };
-};
-
-const useServicesLogs = () => {
- const { serviceStatus, services, hasInitialLoaded } = useServices();
-
- return {
- isLoaded: hasInitialLoaded,
- data: {
- serviceStatus: serviceStatus
- ? DeploymentStatus[serviceStatus]
- : 'undefined',
- services:
- services?.map((item) => ({
- ...item,
- keys: item.keys.map((key) => key.address),
- })) ?? 'undefined',
- },
- };
-};
-
-export const useLogs = () => {
- const { storeState } = useStore();
-
- const { isLoaded: isServicesLoaded, data: services } = useServicesLogs();
- const { isLoaded: isBalancesLoaded, data: balances } = useBalancesLogs();
- const { isLoaded: isAddressesLoaded, data: addresses } = useAddressesLogs();
-
- const logs = useMemo(() => {
- if (isServicesLoaded && isBalancesLoaded && isAddressesLoaded) {
- return {
- store: storeState,
- debugData: {
- services,
- addresses,
- balances,
- },
- };
- }
- }, [
- addresses,
- balances,
- isAddressesLoaded,
- isBalancesLoaded,
- isServicesLoaded,
- services,
- storeState,
- ]);
-
- return logs;
-};
diff --git a/frontend/hooks/useMasterSafe.ts b/frontend/hooks/useMasterSafe.ts
deleted file mode 100644
index ec5d52059..000000000
--- a/frontend/hooks/useMasterSafe.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { useContext } from 'react';
-
-import { MasterSafeContext } from '@/context/MasterSafeProvider';
-
-export const useMasterSafe = () => {
- return useContext(MasterSafeContext);
-};
diff --git a/frontend/hooks/usePageState.ts b/frontend/hooks/usePageState.ts
deleted file mode 100644
index 45dd74d62..000000000
--- a/frontend/hooks/usePageState.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import { useContext } from 'react';
-
-import { PageStateContext } from '@/context/PageStateProvider';
-import { PageState } from '@/enums/PageState';
-
-export const usePageState = () => {
- const { pageState, setPageState } = useContext(PageStateContext);
-
- const goto = (state: PageState) => {
- setPageState(state);
- };
-
- return { pageState, setPageState, goto };
-};
diff --git a/frontend/hooks/useReward.ts b/frontend/hooks/useReward.ts
deleted file mode 100644
index c269a4430..000000000
--- a/frontend/hooks/useReward.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import { useContext } from 'react';
-
-import { RewardContext } from '@/context/RewardProvider';
-
-export const useReward = () => {
- const {
- availableRewardsForEpoch,
- availableRewardsForEpochEth,
- isEligibleForRewards,
- accruedServiceStakingRewards,
- } = useContext(RewardContext);
-
- return {
- availableRewardsForEpoch,
- availableRewardsForEpochEth,
- isEligibleForRewards,
- accruedServiceStakingRewards,
- };
-};
diff --git a/frontend/hooks/useServiceTemplates.ts b/frontend/hooks/useServiceTemplates.ts
deleted file mode 100644
index 7e4e733b3..000000000
--- a/frontend/hooks/useServiceTemplates.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import { ServiceTemplate } from '@/client/types';
-import { SERVICE_TEMPLATES } from '@/constants/serviceTemplates';
-
-export const useServiceTemplates = () => {
- const getServiceTemplates = (): ServiceTemplate[] => SERVICE_TEMPLATES;
- const getServiceTemplate = (hash: string): ServiceTemplate | undefined =>
- SERVICE_TEMPLATES.find((template) => template.hash === hash);
-
- return {
- getServiceTemplate,
- getServiceTemplates,
- serviceTemplate: SERVICE_TEMPLATES[0], // Default to the first template
- };
-};
diff --git a/frontend/hooks/useServices.ts b/frontend/hooks/useServices.ts
deleted file mode 100644
index 2de306fcb..000000000
--- a/frontend/hooks/useServices.ts
+++ /dev/null
@@ -1,98 +0,0 @@
-import { useContext } from 'react';
-
-import { Service, ServiceHash, ServiceTemplate } from '@/client';
-import { ServicesContext } from '@/context/ServicesProvider';
-import MulticallService from '@/service/Multicall';
-import { ServicesService } from '@/service/Services';
-import { Address } from '@/types/Address';
-import { AddressBooleanRecord } from '@/types/Records';
-
-const checkServiceIsFunded = async (
- service: Service,
- serviceTemplate: ServiceTemplate,
-): Promise => {
- const {
- chain_data: { instances, multisig },
- } = service;
-
- if (!instances || !multisig) return false;
-
- const addresses = [...instances, multisig];
-
- const balances = await MulticallService.getEthBalances(addresses);
-
- if (!balances) return false;
-
- const fundRequirements: AddressBooleanRecord = addresses.reduce(
- (acc: AddressBooleanRecord, address: Address) =>
- Object.assign(acc, {
- [address]: instances.includes(address)
- ? balances[address] >
- serviceTemplate.configuration.fund_requirements.agent
- : balances[address] >
- serviceTemplate.configuration.fund_requirements.safe,
- }),
- {},
- );
-
- return Object.values(fundRequirements).every((f) => f);
-};
-
-export const useServices = () => {
- const {
- services,
- updateServicesState,
- hasInitialLoaded,
- setServices,
- serviceStatus,
- setServiceStatus,
- updateServiceStatus,
- setIsPaused,
- } = useContext(ServicesContext);
-
- // STATE METHODS
- const getServiceFromState = (
- serviceHash: ServiceHash,
- ): Service | undefined => {
- if (!hasInitialLoaded) return;
- if (!services) return;
- return services.find((service) => service.hash === serviceHash);
- };
-
- const getServicesFromState = (): Service[] | undefined =>
- hasInitialLoaded ? services : [];
-
- const updateServiceState = (serviceHash: ServiceHash) => {
- ServicesService.getService(serviceHash).then((service: Service) => {
- setServices((prev) => {
- if (!prev) return [service];
-
- const index = prev.findIndex((s) => s.hash === serviceHash); // findIndex returns -1 if not found
- if (index === -1) return [...prev, service];
-
- const newServices = [...prev];
- newServices[index] = service;
- return newServices;
- });
- });
- };
-
- const deleteServiceState = (serviceHash: ServiceHash) =>
- setServices((prev) => prev?.filter((s) => s.hash !== serviceHash));
-
- return {
- service: services?.[0],
- services,
- serviceStatus,
- setServiceStatus,
- getServiceFromState,
- getServicesFromState,
- checkServiceIsFunded,
- updateServicesState,
- updateServiceState,
- updateServiceStatus,
- deleteServiceState,
- hasInitialLoaded,
- setIsServicePollingPaused: setIsPaused,
- };
-};
diff --git a/frontend/hooks/useSettings.ts b/frontend/hooks/useSettings.ts
deleted file mode 100644
index 9b5ba28fe..000000000
--- a/frontend/hooks/useSettings.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { useContext } from 'react';
-
-import { SettingsContext } from '@/context/SettingsProvider';
-
-export const useSettings = () => useContext(SettingsContext);
diff --git a/frontend/hooks/useSetup.ts b/frontend/hooks/useSetup.ts
deleted file mode 100644
index cbde83cc3..000000000
--- a/frontend/hooks/useSetup.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { useContext } from 'react';
-
-import { SetupContext } from '@/context/SetupProvider';
-import { SetupScreen } from '@/enums/SetupScreen';
-import { Address } from '@/types/Address';
-
-export const useSetup = () => {
- const { setupObject, setSetupObject } = useContext(SetupContext);
-
- const goto = (state: SetupScreen) => {
- setSetupObject((prev) => ({ ...prev, state }));
- };
-
- const setMnemonic = (mnemonic: string[]) =>
- setSetupObject((prev) => Object.assign(prev, { mnemonic }));
-
- const setBackupSigner = (backupSigner: Address) =>
- setSetupObject((prev) => Object.assign(prev, { backupSigner }));
-
- return {
- ...setupObject,
- setMnemonic,
- setBackupSigner,
- goto,
- };
-};
diff --git a/frontend/hooks/useStakingContractInfo.ts b/frontend/hooks/useStakingContractInfo.ts
deleted file mode 100644
index 5392b7199..000000000
--- a/frontend/hooks/useStakingContractInfo.ts
+++ /dev/null
@@ -1,59 +0,0 @@
-import { useContext } from 'react';
-
-import { StakingContractInfoContext } from '@/context/StakingContractInfoProvider';
-
-import { useServices } from './useServices';
-
-export const useStakingContractInfo = () => {
- const { stakingContractInfo } = useContext(StakingContractInfoContext);
- const { services } = useServices();
-
- if (!services?.[0] || !stakingContractInfo) return {};
-
- const {
- serviceStakingState,
- serviceStakingStartTime,
- availableRewards,
- serviceIds,
- maxNumServices,
- minimumStakingDuration,
- } = stakingContractInfo;
-
- const isRewardsAvailable = availableRewards > 0;
- const hasEnoughServiceSlots = serviceIds.length < maxNumServices;
- const hasEnoughRewardsAndSlots = isRewardsAvailable && hasEnoughServiceSlots;
-
- const isAgentEvicted = serviceStakingState === 2;
-
- /**
- * For example: minStakingDuration = 3 days
- *
- * - Service starts staking 1st June 00:01
- * - Service stops being active on 1st June 02:01 (after 2 hours)
- * - Contract will evict the service at 3rd June 02:02
- * - Now, cannot unstake the service until 4th June 00:01, because it hasn’t met the minStakingDuration of 3 days.
- * - IMPORTANT: Between 3rd June 02:02 and 4th June 00:01 the service is EVICTED and without the possibility of unstake and re-stake
- * - That is, user should not be able to run/start your agent if this condition is met.
- *
- */
- const isServiceStakedForMinimumDuration =
- Math.round(Date.now() / 1000) - serviceStakingStartTime >=
- minimumStakingDuration;
-
- /**
- * user can start the agent iff,
- * - rewards are available
- * - service has enough slots
- * - if agent is evicted, then service should be staked for minimum duration
- */
- const isEligibleForStaking =
- hasEnoughRewardsAndSlots &&
- (isAgentEvicted ? isServiceStakedForMinimumDuration : true);
-
- return {
- hasEnoughServiceSlots,
- isEligibleForStaking,
- isRewardsAvailable,
- isAgentEvicted,
- };
-};
diff --git a/frontend/hooks/useStore.ts b/frontend/hooks/useStore.ts
deleted file mode 100644
index ddc4a66b8..000000000
--- a/frontend/hooks/useStore.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { useContext } from 'react';
-
-import { StoreContext } from '@/context/StoreProvider';
-
-export const useStore = () => useContext(StoreContext);
diff --git a/frontend/hooks/useWallet.ts b/frontend/hooks/useWallet.ts
deleted file mode 100644
index 3ac343b60..000000000
--- a/frontend/hooks/useWallet.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { useContext } from 'react';
-
-import { WalletContext } from '@/context/WalletProvider';
-
-export const useWallet = () => useContext(WalletContext);
diff --git a/frontend/jest.config.ts b/frontend/jest.config.ts
deleted file mode 100644
index 849f963f0..000000000
--- a/frontend/jest.config.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import type { Config } from 'jest';
-import nextJest from 'next/jest.js';
-
-const createJestConfig = nextJest({
- // Provide the path to your Next.js app to load next.config.js and .env files in your test environment
- dir: './',
-});
-
-// Add any custom config to be passed to Jest
-const config: Config = {
- coverageProvider: 'v8',
- testEnvironment: 'jsdom',
- globals: { fetch },
- // Add more setup options before each test is run
- setupFilesAfterEnv: ['/jest.setup.ts'],
-};
-
-// createJestConfig is exported this way to ensure that next/jest can load the Next.js config which is async
-export default createJestConfig(config);
diff --git a/frontend/jest.setup.ts b/frontend/jest.setup.ts
deleted file mode 100644
index 7b0828bfa..000000000
--- a/frontend/jest.setup.ts
+++ /dev/null
@@ -1 +0,0 @@
-import '@testing-library/jest-dom';
diff --git a/frontend/next-env.d.ts b/frontend/next-env.d.ts
deleted file mode 100644
index 4f11a03dc..000000000
--- a/frontend/next-env.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-///
-///
-
-// NOTE: This file should not be edited
-// see https://nextjs.org/docs/basic-features/typescript for more information.
diff --git a/frontend/next.config.mjs b/frontend/next.config.mjs
deleted file mode 100644
index 33b7fe23f..000000000
--- a/frontend/next.config.mjs
+++ /dev/null
@@ -1,42 +0,0 @@
-/** @type {import('next').NextConfig} */
-const nextConfig = {
- images: {
- remotePatterns: [
- {
- protocol: 'http',
- hostname: '**',
- },
- {
- protocol: 'https',
- hostname: '**',
- },
- ],
- },
- transpilePackages: [
- 'rc-util',
- '@babel/runtime',
- '@ant-design',
- 'rc-pagination',
- 'rc-picker',
- ],
- webpack: (config) => {
- if (config.snapshot) {
- config.snapshot = {
- ...(config.snapshot ?? {}),
- // Add all node_modules but @next module to managedPaths
- // Allows for hot refresh of changes to @next module
- managedPaths: [/^(.+?[\\/]node_modules[\\/])(?!@next)/],
- };
- }
-
- return config;
- },
- env: {
- GNOSIS_RPC:
- process.env.NODE_ENV === 'production'
- ? process.env.FORK_URL
- : process.env.DEV_RPC,
- },
-};
-
-export default nextConfig;
diff --git a/frontend/package.json b/frontend/package.json
deleted file mode 100644
index ec20ee33a..000000000
--- a/frontend/package.json
+++ /dev/null
@@ -1,54 +0,0 @@
-{
- "author": "Valory AG",
- "dependencies": {
- "@ant-design/cssinjs": "^1.18.4",
- "@ant-design/icons": "^5.3.0",
- "@fontsource/inter": "^5.0.17",
- "antd": "^5.14.0",
- "ethers": "5.7.2",
- "ethers-multicall": "^0.2.3",
- "lodash": "^4.17.21",
- "next": "^14.2.3",
- "react": "^18.3.1",
- "react-canvas-confetti": "1.2.1",
- "react-dom": "^18.3.1",
- "sass": "^1.72.0",
- "styled-components": "^6.1.8",
- "usehooks-ts": "^2.14.0"
- },
- "devDependencies": {
- "@testing-library/jest-dom": "^6.4.2",
- "@testing-library/react": "^14.2.1",
- "@types/jest": "^29.5.12",
- "@types/lodash": "^4.14.202",
- "@types/node": "20.14.10",
- "@types/react": "18.3.3",
- "@types/react-dom": "^18",
- "@typescript-eslint/eslint-plugin": "^7.0.1",
- "@typescript-eslint/parser": "^7.0.1",
- "eslint": "^8.56.0",
- "eslint-config-next": "14.1.0",
- "eslint-config-prettier": "^9.1.0",
- "eslint-plugin-import": "^2.29.1",
- "eslint-plugin-jest": "^27.6.3",
- "eslint-plugin-next": "^0.0.0",
- "eslint-plugin-prettier": "^5.1.3",
- "eslint-plugin-simple-import-sort": "^12.0.0",
- "eslint-plugin-unused-imports": "^3.0.0",
- "jest": "^29.7.0",
- "jest-environment-jsdom": "^29.7.0",
- "prettier": "^3.2.5",
- "ts-node": "^10.9.2",
- "typescript": "5.5.3"
- },
- "name": "olas-operate-app",
- "private": true,
- "scripts": {
- "dev": "next dev",
- "build": "NODE_ENV=production next build",
- "lint": "next lint",
- "test": "jest",
- "start": "next start"
- },
- "version": "0.1.0"
-}
diff --git a/frontend/pages/_app.tsx b/frontend/pages/_app.tsx
deleted file mode 100644
index 7a6c2efe8..000000000
--- a/frontend/pages/_app.tsx
+++ /dev/null
@@ -1,65 +0,0 @@
-import '../styles/globals.scss';
-
-import { ConfigProvider } from 'antd';
-import type { AppProps } from 'next/app';
-import { useEffect, useRef } from 'react';
-
-import { Layout } from '@/components/Layout';
-import { BalanceProvider } from '@/context/BalanceProvider';
-import { ElectronApiProvider } from '@/context/ElectronApiProvider';
-import { MasterSafeProvider } from '@/context/MasterSafeProvider';
-import { OnlineStatusProvider } from '@/context/OnlineStatusProvider';
-import { PageStateProvider } from '@/context/PageStateProvider';
-import { RewardProvider } from '@/context/RewardProvider';
-import { ServicesProvider } from '@/context/ServicesProvider';
-import { SettingsProvider } from '@/context/SettingsProvider';
-import { SetupProvider } from '@/context/SetupProvider';
-import { StakingContractInfoProvider } from '@/context/StakingContractInfoProvider';
-import { StoreProvider } from '@/context/StoreProvider';
-import { WalletProvider } from '@/context/WalletProvider';
-import { mainTheme } from '@/theme';
-
-export default function App({ Component, pageProps }: AppProps) {
- const isMounted = useRef(false);
-
- useEffect(() => {
- isMounted.current = true;
- return () => {
- isMounted.current = false;
- };
- }, []);
-
- return (
-
-
-
-
-
-
-
-
-
-
-
-
- {isMounted ? (
-
-
-
-
-
- ) : null}
-
-
-
-
-
-
-
-
-
-
-
-
- );
-}
diff --git a/frontend/pages/index.tsx b/frontend/pages/index.tsx
deleted file mode 100644
index e4976d2eb..000000000
--- a/frontend/pages/index.tsx
+++ /dev/null
@@ -1,51 +0,0 @@
-import { useEffect, useMemo } from 'react';
-
-import { HelpAndSupport } from '@/components/HelpAndSupport';
-import { Main } from '@/components/Main';
-import { Settings } from '@/components/Settings';
-import { Setup } from '@/components/Setup';
-import { PageState } from '@/enums/PageState';
-import { useElectronApi } from '@/hooks/useElectronApi';
-import { usePageState } from '@/hooks/usePageState';
-
-const DEFAULT_APP_HEIGHT = 700;
-
-export default function Home() {
- const { pageState } = usePageState();
- const electronApi = useElectronApi();
-
- useEffect(() => {
- function updateAppHeight() {
- const bodyElement = document.querySelector('body');
- if (bodyElement) {
- const scrollHeight = bodyElement.scrollHeight;
- electronApi?.setAppHeight?.(Math.min(DEFAULT_APP_HEIGHT, scrollHeight));
- }
- }
-
- const resizeObserver = new ResizeObserver(updateAppHeight);
- resizeObserver.observe(document.body);
- updateAppHeight();
-
- return () => {
- resizeObserver.unobserve(document.body);
- };
- }, [electronApi]);
-
- const page = useMemo(() => {
- switch (pageState) {
- case PageState.Setup:
- return ;
- case PageState.Main:
- return ;
- case PageState.Settings:
- return ;
- case PageState.HelpAndSupport:
- return ;
- default:
- return ;
- }
- }, [pageState]);
-
- return page;
-}
diff --git a/frontend/public/broken-robot.svg b/frontend/public/broken-robot.svg
deleted file mode 100644
index 5f99a0375..000000000
--- a/frontend/public/broken-robot.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
diff --git a/frontend/public/happy-robot.svg b/frontend/public/happy-robot.svg
deleted file mode 100644
index 4ca51d1d2..000000000
--- a/frontend/public/happy-robot.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
diff --git a/frontend/public/onboarding-robot.svg b/frontend/public/onboarding-robot.svg
deleted file mode 100644
index c7cca155c..000000000
--- a/frontend/public/onboarding-robot.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
\ No newline at end of file
diff --git a/frontend/public/sad-robot.svg b/frontend/public/sad-robot.svg
deleted file mode 100644
index 1cc45bdc7..000000000
--- a/frontend/public/sad-robot.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-
diff --git a/frontend/public/splash-robot-head.png b/frontend/public/splash-robot-head.png
deleted file mode 100644
index d43fb2873..000000000
Binary files a/frontend/public/splash-robot-head.png and /dev/null differ
diff --git a/frontend/public/twitter.svg b/frontend/public/twitter.svg
deleted file mode 100644
index f2ddba13f..000000000
--- a/frontend/public/twitter.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/service/Account.ts b/frontend/service/Account.ts
deleted file mode 100644
index 49a61c29a..000000000
--- a/frontend/service/Account.ts
+++ /dev/null
@@ -1,58 +0,0 @@
-import { BACKEND_URL } from '@/constants/urls';
-
-/**
- * Gets account status "is_setup"
- */
-const getAccount = () =>
- fetch(`${BACKEND_URL}/account`).then((res) => res.json());
-
-/**
- * Creates a local user account
- */
-const createAccount = (password: string) =>
- fetch(`${BACKEND_URL}/account`, {
- method: 'POST',
- headers: {
- 'Content-Type': 'application/json',
- },
- body: JSON.stringify({ password }),
- }).then((res) => res.json());
-
-/**
- * Updates user's password
- */
-const updateAccount = (oldPassword: string, newPassword: string) =>
- fetch(`${BACKEND_URL}/account`, {
- method: 'PUT',
- headers: {
- 'Content-Type': 'application/json',
- },
- body: JSON.stringify({
- old_password: oldPassword,
- new_password: newPassword,
- }),
- }).then((res) => res.json());
-
-/**
- * Logs in a user
- */
-const loginAccount = (password: string) =>
- fetch(`${BACKEND_URL}/account/login`, {
- method: 'POST',
- headers: {
- 'Content-Type': 'application/json',
- },
- body: JSON.stringify({
- password,
- }),
- }).then((res) => {
- if (![200, 201].includes(res.status)) throw new Error('Login failed');
- res.json();
- });
-
-export const AccountService = {
- getAccount,
- createAccount,
- updateAccount,
- loginAccount,
-};
diff --git a/frontend/service/Autonolas.ts b/frontend/service/Autonolas.ts
deleted file mode 100644
index 0598210e4..000000000
--- a/frontend/service/Autonolas.ts
+++ /dev/null
@@ -1,248 +0,0 @@
-import { BigNumber, ethers } from 'ethers';
-import { Contract as MulticallContract } from 'ethers-multicall';
-
-import { AGENT_MECH_ABI } from '@/abis/agentMech';
-import { MECH_ACTIVITY_CHECKER_ABI } from '@/abis/mechActivityChecker';
-import { SERVICE_REGISTRY_L2_ABI } from '@/abis/serviceRegistryL2';
-import { SERVICE_REGISTRY_TOKEN_UTILITY_ABI } from '@/abis/serviceRegistryTokenUtility';
-import { SERVICE_STAKING_TOKEN_MECH_USAGE_ABI } from '@/abis/serviceStakingTokenMechUsage';
-import { Chain } from '@/client';
-import {
- AGENT_MECH_CONTRACT_ADDRESS,
- MECH_ACTIVITY_CHECKER_CONTRACT_ADDRESS,
- SERVICE_REGISTRY_L2_CONTRACT_ADDRESS,
- SERVICE_REGISTRY_TOKEN_UTILITY_CONTRACT_ADDRESS,
- SERVICE_STAKING_TOKEN_MECH_USAGE_CONTRACT_ADDRESS,
-} from '@/constants/contractAddresses';
-import { gnosisMulticallProvider } from '@/constants/providers';
-import { ServiceRegistryL2ServiceState } from '@/enums/ServiceRegistryL2ServiceState';
-import { Address } from '@/types/Address';
-import { StakingContractInfo, StakingRewardsInfo } from '@/types/Autonolas';
-
-const REQUIRED_MECH_REQUESTS_SAFETY_MARGIN = 1;
-
-const agentMechContract = new MulticallContract(
- AGENT_MECH_CONTRACT_ADDRESS[Chain.GNOSIS],
- AGENT_MECH_ABI.filter((abi) => abi.type === 'function'), // weird bug in the package where their filter doesn't work..
-);
-
-const serviceStakingTokenMechUsageContract = new MulticallContract(
- SERVICE_STAKING_TOKEN_MECH_USAGE_CONTRACT_ADDRESS[Chain.GNOSIS],
- SERVICE_STAKING_TOKEN_MECH_USAGE_ABI.filter((abi) => abi.type === 'function'), // same as above
-);
-
-const serviceRegistryTokenUtilityContract = new MulticallContract(
- SERVICE_REGISTRY_TOKEN_UTILITY_CONTRACT_ADDRESS[Chain.GNOSIS],
- SERVICE_REGISTRY_TOKEN_UTILITY_ABI.filter((abi) => abi.type === 'function'), // same as above
-);
-
-const serviceRegistryL2Contract = new MulticallContract(
- SERVICE_REGISTRY_L2_CONTRACT_ADDRESS[Chain.GNOSIS],
- SERVICE_REGISTRY_L2_ABI.filter((abi) => abi.type === 'function'), // same as above
-);
-
-const mechActivityCheckerContract = new MulticallContract(
- MECH_ACTIVITY_CHECKER_CONTRACT_ADDRESS[Chain.GNOSIS],
- MECH_ACTIVITY_CHECKER_ABI.filter((abi) => abi.type === 'function'), // same as above
-);
-
-const getAgentStakingRewardsInfo = async ({
- agentMultisigAddress,
- serviceId,
-}: {
- agentMultisigAddress: Address;
- serviceId: number;
-}): Promise => {
- if (!agentMultisigAddress) return;
- if (!serviceId) return;
-
- const contractCalls = [
- agentMechContract.getRequestsCount(agentMultisigAddress),
- serviceStakingTokenMechUsageContract.getServiceInfo(serviceId),
- serviceStakingTokenMechUsageContract.livenessPeriod(),
- mechActivityCheckerContract.livenessRatio(),
- serviceStakingTokenMechUsageContract.rewardsPerSecond(),
- serviceStakingTokenMechUsageContract.calculateStakingReward(serviceId),
- serviceStakingTokenMechUsageContract.minStakingDeposit(),
- serviceStakingTokenMechUsageContract.tsCheckpoint(),
- ];
-
- await gnosisMulticallProvider.init();
-
- const multicallResponse = await gnosisMulticallProvider.all(contractCalls);
-
- const [
- mechRequestCount,
- serviceInfo,
- livenessPeriod,
- livenessRatio,
- rewardsPerSecond,
- accruedStakingReward,
- minStakingDeposit,
- tsCheckpoint,
- ] = multicallResponse;
-
- /**
- * struct ServiceInfo {
- // Service multisig address
- address multisig;
- // Service owner
- address owner;
- // Service multisig nonces
- uint256[] nonces; <-- (we use this in the rewards eligibility check)
- // Staking start time
- uint256 tsStart;
- // Accumulated service staking reward
- uint256 reward;
- // Accumulated inactivity that might lead to the service eviction
- uint256 inactivity;}
- */
-
- const nowInSeconds = Math.floor(Date.now() / 1000);
-
- const requiredMechRequests =
- (Math.ceil(Math.max(livenessPeriod, nowInSeconds - tsCheckpoint)) *
- livenessRatio) /
- 1e18 +
- REQUIRED_MECH_REQUESTS_SAFETY_MARGIN;
-
- const mechRequestCountOnLastCheckpoint = serviceInfo[2][1];
- const eligibleRequests = mechRequestCount - mechRequestCountOnLastCheckpoint;
-
- const isEligibleForRewards = eligibleRequests >= requiredMechRequests;
-
- const availableRewardsForEpoch = Math.max(
- rewardsPerSecond * livenessPeriod, // expected rewards for the epoch
- rewardsPerSecond * (nowInSeconds - tsCheckpoint), // incase of late checkpoint
- );
-
- // Minimum staked amount is double the minimum staking deposit
- // (all the bonds must be the same as deposit)
- const minimumStakedAmount =
- parseFloat(ethers.utils.formatEther(`${minStakingDeposit}`)) * 2;
-
- return {
- mechRequestCount,
- serviceInfo,
- livenessPeriod,
- livenessRatio,
- rewardsPerSecond,
- isEligibleForRewards,
- availableRewardsForEpoch,
- accruedServiceStakingRewards: parseFloat(
- ethers.utils.formatEther(`${accruedStakingReward}`),
- ),
- minimumStakedAmount,
- } as StakingRewardsInfo;
-};
-
-const getAvailableRewardsForEpoch = async (): Promise => {
- const contractCalls = [
- serviceStakingTokenMechUsageContract.rewardsPerSecond(),
- serviceStakingTokenMechUsageContract.livenessPeriod(), // epoch length
- serviceStakingTokenMechUsageContract.tsCheckpoint(), // last checkpoint timestamp
- ];
-
- await gnosisMulticallProvider.init();
-
- const multicallResponse = await gnosisMulticallProvider.all(contractCalls);
-
- const [rewardsPerSecond, livenessPeriod, tsCheckpoint] = multicallResponse;
-
- const nowInSeconds = Math.floor(Date.now() / 1000);
-
- return Math.max(
- rewardsPerSecond * livenessPeriod, // expected rewards
- rewardsPerSecond * (nowInSeconds - tsCheckpoint), // incase of late checkpoint
- );
-};
-
-/**
- * function to get the staking contract info
- */
-const getStakingContractInfo = async (
- serviceId: number,
-): Promise => {
- if (!serviceId) return;
-
- const contractCalls = [
- serviceStakingTokenMechUsageContract.availableRewards(),
- serviceStakingTokenMechUsageContract.maxNumServices(),
- serviceStakingTokenMechUsageContract.getServiceIds(),
- serviceStakingTokenMechUsageContract.minStakingDuration(),
- serviceStakingTokenMechUsageContract.getServiceInfo(serviceId),
- serviceStakingTokenMechUsageContract.getStakingState(serviceId),
- ];
-
- await gnosisMulticallProvider.init();
-
- const multicallResponse = await gnosisMulticallProvider.all(contractCalls);
- const [
- availableRewardsInBN,
- maxNumServicesInBN,
- getServiceIdsInBN,
- minStakingDurationInBN,
- serviceInfo,
- serviceStakingState,
- ] = multicallResponse;
-
- const availableRewards = parseFloat(
- ethers.utils.formatUnits(availableRewardsInBN, 18),
- );
- const serviceIds = getServiceIdsInBN.map((id: BigNumber) => id.toNumber());
- const maxNumServices = maxNumServicesInBN.toNumber();
-
- return {
- availableRewards,
- maxNumServices,
- serviceIds,
- minimumStakingDuration: minStakingDurationInBN.toNumber(),
- serviceStakingStartTime: serviceInfo.tsStart.toNumber(),
- serviceStakingState,
- };
-};
-
-const getServiceRegistryInfo = async (
- operatorAddress: Address, // generally masterSafeAddress
- serviceId: number,
-): Promise<{
- bondValue: number;
- depositValue: number;
- serviceState: ServiceRegistryL2ServiceState;
-}> => {
- const contractCalls = [
- serviceRegistryTokenUtilityContract.getOperatorBalance(
- operatorAddress,
- serviceId,
- ),
- serviceRegistryTokenUtilityContract.mapServiceIdTokenDeposit(serviceId),
- serviceRegistryL2Contract.mapServices(serviceId),
- ];
-
- await gnosisMulticallProvider.init();
-
- const [
- operatorBalanceResponse,
- serviceIdTokenDepositResponse,
- mapServicesResponse,
- ] = await gnosisMulticallProvider.all(contractCalls);
-
- const [bondValue, depositValue, serviceState] = [
- parseFloat(ethers.utils.formatUnits(operatorBalanceResponse, 18)),
- parseFloat(ethers.utils.formatUnits(serviceIdTokenDepositResponse[1], 18)),
- mapServicesResponse.state as ServiceRegistryL2ServiceState,
- ];
-
- return {
- bondValue,
- depositValue,
- serviceState,
- };
-};
-
-export const AutonolasService = {
- getAgentStakingRewardsInfo,
- getAvailableRewardsForEpoch,
- getServiceRegistryInfo,
- getStakingContractInfo,
-};
diff --git a/frontend/service/Ethers.ts b/frontend/service/Ethers.ts
deleted file mode 100644
index 20ad4cc70..000000000
--- a/frontend/service/Ethers.ts
+++ /dev/null
@@ -1,108 +0,0 @@
-import { ContractInterface, ethers, providers, utils } from 'ethers';
-
-import { gnosisProvider } from '@/constants/providers';
-import { Address } from '@/types/Address';
-
-/**
- * Returns native balance of the given address
- * @param address
- * @param rpc
- * @returns Promise
- */
-const getEthBalance = async (
- address: Address,
- rpc: string,
-): Promise => {
- try {
- const provider = new providers.StaticJsonRpcProvider(rpc, {
- name: 'Gnosis',
- chainId: 100, // we currently only support Gnosis Trader agent
- });
- return provider.getBalance(address).then((balance) => {
- const formattedBalance = utils.formatEther(balance);
- return Number(formattedBalance);
- });
- } catch (e) {
- return Promise.reject('Failed to get ETH balance');
- }
-};
-
-/**
- * Returns the ERC20 balance of the given address
- * @param address Address
- * @param rpc string
- * @param contractAddress Address
- * @returns Promise
- */
-const getErc20Balance = async (
- address: Address,
- rpc: string,
- contractAddress?: Address,
-): Promise => {
- try {
- if (!contractAddress)
- throw new Error('Contract address is required for ERC20 balance');
- const provider = new providers.StaticJsonRpcProvider(rpc, {
- name: 'Gnosis',
- chainId: 100, // we currently only support Gnosis Trader agent
- });
- const contract = new ethers.Contract(
- contractAddress,
- [
- 'function balanceOf(address) view returns (uint256)',
- 'function decimals() view returns (uint8)',
- ],
- provider,
- );
- const [balance, decimals] = await Promise.all([
- contract.balanceOf(address),
- contract.decimals(),
- ]);
- if (!balance || !decimals)
- throw new Error('Failed to resolve balance or decimals');
- return Number(utils.formatUnits(balance, decimals));
- } catch (e) {
- return Promise.reject(e);
- }
-};
-
-/**
- * Checks if the given RPC is valid
- * @param rpc string
- * @returns Promise
- */
-const checkRpc = async (rpc: string): Promise => {
- try {
- if (!rpc) throw new Error('RPC is required');
-
- const provider = new providers.StaticJsonRpcProvider(rpc, {
- name: 'Gnosis',
- chainId: 100, // we currently only support Gnosis Trader agent
- });
-
- const networkId = (await provider.getNetwork()).chainId;
- if (!networkId) throw new Error('Failed to get network ID');
-
- return Promise.resolve(true);
- } catch (e) {
- return Promise.resolve(false);
- }
-};
-
-const readContract = ({
- address,
- abi,
-}: {
- address: string;
- abi: ContractInterface;
-}) => {
- const contract = new ethers.Contract(address, abi, gnosisProvider);
- return contract;
-};
-
-export const EthersService = {
- getEthBalance,
- getErc20Balance,
- checkRpc,
- readContract,
-};
diff --git a/frontend/service/GnosisSafe.ts b/frontend/service/GnosisSafe.ts
deleted file mode 100644
index 5c2879499..000000000
--- a/frontend/service/GnosisSafe.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-import { ethers } from 'ethers';
-
-import { GNOSIS_SAFE_ABI } from '@/abis/gnosisSafe';
-import { gnosisProvider } from '@/constants/providers';
-import { Address } from '@/types/Address';
-
-const getOwners = async ({
- address,
-}: {
- address: Address;
-}): Promise => {
- const gnosisSafeContract = new ethers.Contract(
- address,
- GNOSIS_SAFE_ABI,
- gnosisProvider,
- );
-
- return gnosisSafeContract.getOwners();
-};
-
-export const GnosisSafeService = {
- getOwners,
-};
diff --git a/frontend/service/Multicall.ts b/frontend/service/Multicall.ts
deleted file mode 100644
index 390274f14..000000000
--- a/frontend/service/Multicall.ts
+++ /dev/null
@@ -1,83 +0,0 @@
-import { BigNumber, ethers } from 'ethers';
-import { Contract as MulticallContract, ContractCall } from 'ethers-multicall';
-
-import { ERC20_BALANCEOF_FRAGMENT } from '@/abis/erc20';
-import { MULTICALL3_ABI } from '@/abis/multicall3';
-import { MULTICALL_CONTRACT_ADDRESS } from '@/constants/contractAddresses';
-import { gnosisMulticallProvider } from '@/constants/providers';
-import { Address } from '@/types/Address';
-import { AddressNumberRecord } from '@/types/Records';
-
-const multicallContract = new MulticallContract(
- MULTICALL_CONTRACT_ADDRESS,
- MULTICALL3_ABI,
-);
-
-/**
- * Gets ETH balances for a list of addresses
- * @param addresses
- * @param rpc
- * @returns Promise
- */
-const getEthBalances = async (
- addresses: Address[],
-): Promise => {
- if (!addresses.length) return {};
-
- const callData: ContractCall[] = addresses.map((address: Address) =>
- multicallContract.getEthBalance(address),
- );
-
- if (!callData.length) return {};
-
- await gnosisMulticallProvider.init();
- const multicallResponse = await gnosisMulticallProvider.all(callData);
-
- return multicallResponse.reduce(
- (acc: AddressNumberRecord, balance: BigNumber, index: number) => ({
- ...acc,
- [addresses[index]]: parseFloat(ethers.utils.formatUnits(balance, 18)),
- }),
- {},
- );
-};
-
-/**
- * Gets ERC20 balances for a list of addresses
- * @param addresses
- * @param rpc
- * @param contractAddress
- * @returns Promise
- */
-const getErc20Balances = async (
- addresses: Address[],
- contractAddress: Address,
-): Promise => {
- if (!contractAddress) return {};
- if (!addresses.length) return {};
-
- const callData: ContractCall[] = addresses.map((address: Address) =>
- new MulticallContract(contractAddress, ERC20_BALANCEOF_FRAGMENT).balanceOf(
- address,
- ),
- );
-
- await gnosisMulticallProvider.init();
-
- const multicallResponse = await gnosisMulticallProvider.all(callData);
-
- return multicallResponse.reduce(
- (acc: AddressNumberRecord, balance: BigNumber, index: number) => ({
- ...acc,
- [addresses[index]]: parseFloat(ethers.utils.formatUnits(balance, 18)),
- }),
- {},
- );
-};
-
-const MulticallService = {
- getEthBalances,
- getErc20Balances,
-};
-
-export default MulticallService;
diff --git a/frontend/service/Services.ts b/frontend/service/Services.ts
deleted file mode 100644
index a12591909..000000000
--- a/frontend/service/Services.ts
+++ /dev/null
@@ -1,108 +0,0 @@
-import { Deployment, Service, ServiceHash, ServiceTemplate } from '@/client';
-import { BACKEND_URL } from '@/constants/urls';
-
-/**
- * Get a single service from the backend
- * @param serviceHash
- * @returns
- */
-const getService = async (serviceHash: ServiceHash): Promise =>
- fetch(`${BACKEND_URL}/services/${serviceHash}`).then((response) =>
- response.json(),
- );
-
-/**
- * Gets an array of services from the backend
- * @returns An array of services
- */
-const getServices = async (): Promise =>
- fetch(`${BACKEND_URL}/services`, {
- method: 'GET',
- headers: {
- 'Content-Type': 'application/json',
- },
- }).then((response) => response.json());
-
-/**
- * Creates a service
- * @param serviceTemplate
- * @returns Promise
- */
-const createService = async ({
- serviceTemplate,
- deploy,
-}: {
- serviceTemplate: ServiceTemplate;
- deploy: boolean;
-}): Promise =>
- new Promise((resolve, reject) =>
- fetch(`${BACKEND_URL}/services`, {
- method: 'POST',
- body: JSON.stringify({
- ...serviceTemplate,
- deploy,
- configuration: {
- ...serviceTemplate.configuration,
- rpc: `${process.env.GNOSIS_RPC}`,
- },
- }),
- headers: {
- 'Content-Type': 'application/json',
- },
- }).then((response) => {
- if (response.ok) {
- resolve(response.json());
- }
- reject('Failed to create service');
- }),
- );
-
-const deployOnChain = async (serviceHash: ServiceHash): Promise =>
- fetch(`${BACKEND_URL}/services/${serviceHash}/onchain/deploy`, {
- method: 'POST',
- }).then((response) => response.json());
-
-const stopOnChain = async (serviceHash: ServiceHash): Promise =>
- fetch(`${BACKEND_URL}/services/${serviceHash}/onchain/stop`, {
- method: 'POST',
- }).then((response) => response.json());
-
-const buildDeployment = async (serviceHash: ServiceHash): Promise =>
- fetch(`${BACKEND_URL}/services/${serviceHash}/deployment/build`, {
- method: 'POST',
- }).then((response) => response.json());
-
-const startDeployment = async (serviceHash: ServiceHash): Promise =>
- fetch(`${BACKEND_URL}/services/${serviceHash}/deployment/start`, {
- method: 'POST',
- }).then((response) => response.json());
-
-const stopDeployment = async (serviceHash: ServiceHash): Promise =>
- fetch(`${BACKEND_URL}/services/${serviceHash}/deployment/stop`, {
- method: 'POST',
- }).then((response) => response.json());
-
-const deleteDeployment = async (
- serviceHash: ServiceHash,
-): Promise =>
- fetch(`${BACKEND_URL}/services/${serviceHash}/deployment/delete`, {
- method: 'POST',
- }).then((response) => response.json());
-
-const getDeployment = async (serviceHash: ServiceHash): Promise =>
- fetch(`${BACKEND_URL}/services/${serviceHash}/deployment`).then((response) =>
- response.json(),
- );
-
-export const ServicesService = {
- getService,
- getServices,
- getDeployment,
- createService,
- deployOnChain,
- stopOnChain,
- buildDeployment,
- startDeployment,
- stopDeployment,
- deleteDeployment,
-};
diff --git a/frontend/service/Wallet.ts b/frontend/service/Wallet.ts
deleted file mode 100644
index b09a8e95c..000000000
--- a/frontend/service/Wallet.ts
+++ /dev/null
@@ -1,42 +0,0 @@
-import { Chain } from '@/client';
-import { BACKEND_URL } from '@/constants/urls';
-
-/**
- * Returns a list of available wallets
- */
-const getWallets = async () =>
- fetch(`${BACKEND_URL}/wallet`).then((res) => res.json());
-
-const createEoa = async (chain: Chain) =>
- fetch(`${BACKEND_URL}/wallet`, {
- method: 'POST',
- headers: {
- 'Content-Type': 'application/json',
- },
- body: JSON.stringify({ chain_type: chain }),
- }).then((res) => res.json());
-
-const createSafe = async (chain: Chain, owner?: string) =>
- fetch(`${BACKEND_URL}/wallet/safe`, {
- method: 'POST',
- headers: {
- 'Content-Type': 'application/json',
- },
- body: JSON.stringify({ chain_type: chain, owner: owner }),
- }).then((res) => res.json());
-
-const addBackupOwner = async (chain: Chain, owner: string) =>
- fetch(`${BACKEND_URL}/wallet/safe`, {
- method: 'PUT',
- headers: {
- 'Content-Type': 'application/json',
- },
- body: JSON.stringify({ chain_type: chain, owner: owner }),
- }).then((res) => res.json());
-
-export const WalletService = {
- getWallets,
- createEoa,
- createSafe,
- addBackupOwner,
-};
diff --git a/frontend/styles/globals.scss b/frontend/styles/globals.scss
deleted file mode 100644
index 13afcf16c..000000000
--- a/frontend/styles/globals.scss
+++ /dev/null
@@ -1,199 +0,0 @@
-@import '@fontsource/inter';
-@import '@fontsource/inter/600.css';
-@import '@fontsource/inter/700.css';
-@import '@fontsource/inter/900.css';
-
-html, body {
- margin: 0;
- padding: 0;
- height: auto;
-}
-
- /* Hide scrollbar for Chrome, Safari and Opera */
-*::-webkit-scrollbar {
- display: none;
-}
-
-body {
- max-width: 460px;
- border-radius: 8px;
- user-select: none;
-}
-
-button, input, select, textarea, .ant-input-suffix {
- -webkit-app-region: no-drag;
-}
-
-// antd overrides
-.ant-card {
- -webkit-app-region: no-drag;
-}
-
-.ant-alert {
- .anticon {
- margin-top: 3px;
- }
-}
-
-.antd-card {
- background-color: white;
- overflow-y: scroll;
-}
-
-.balance {
- font-family: 'Inter';
- font-weight: 900;
- font-size: 56px;
- line-height: 48px;
-}
-
-.balance-symbol {
- @extend .balance;
- font-size: 32px;
- line-height: 32px;
-}
-
-.balance-currency {
- @extend .balance;
- font-weight: 600;
- font-size: 24px;
- line-height: 24px;
-}
-
-.custom-alert {
- align-items: flex-start;
-
- &--primary {
- border-color: #ECD7FE;
- background-color: #F8F0FF;
- color: #36075F;
-
- .ant-alert-icon {
- color: #7E22CE;
- }
- }
-
- &--info {
- color: #002C8C;
- }
-
- &--warning {
- color: #873800;
- }
-
- &--error {
- color: #A8071A;
- }
-
- .ant-typography {
- color: inherit;
- }
-
- &--full-width {
- flex: auto;
- margin: 0;
- border-radius: 0;
- border-left: 0;
- border-right: 0;
- padding: 12px 24px;
- margin: -24px;
- }
-}
-
-.can-select-text {
- user-select: text !important;
-}
-
-.justify-start {
- justify-content: flex-start;
-}
-
-.m-0 {
- margin: 0 !important;
-}
-
-.mb-4 {
- margin-bottom: 4px !important;
-}
-
-.mb-8 {
- margin-bottom: 8px !important;
-}
-
-.mb-16 {
- margin-bottom: 16px !important;
-}
-
-.mb-auto {
- margin-bottom: auto !important;
-}
-
-.mt-8 {
- margin-top: 8px !important;
-}
-
-.mt-12 {
- margin-top: 12px !important;
-}
-
-.mx-auto {
- margin-left: auto !important;
- margin-right: auto !important;
-}
-
-.text-xl {
- font-size: 20px;
-}
-
-.text-base {
- font-size: 16px !important;
-}
-
-.text-sm {
- font-size: 14px !important;
-}
-
-.text-center {
- text-align: center !important;
-}
-
-.font-weight-600 {
- font-weight: 600 !important;
-}
-
-.break-word {
- white-space: normal !important;
- word-wrap: break-word !important;
-}
-
-ul.alert-list {
- margin: 0 0.5em;
- padding-left: 1.25em;
-}
-
-.w-3\/4 {
- width: 75% !important;
-}
-
-.loading-ellipses:after {
- overflow: hidden;
- display: inline-block;
- vertical-align: bottom;
- -webkit-animation: ellipsis steps(4, end) 900ms infinite;
- animation: ellipsis steps(4, end) 900ms infinite;
- content: "\2026";
- /* ascii code for the ellipsis character */
- width: 0px;
-}
-
-@keyframes ellipsis {
- to {
- width: 40px;
- }
-}
-
-@-webkit-keyframes ellipsis {
- to {
- width: 40px;
- }
-}
\ No newline at end of file
diff --git a/frontend/theme/index.ts b/frontend/theme/index.ts
deleted file mode 100644
index e42767da3..000000000
--- a/frontend/theme/index.ts
+++ /dev/null
@@ -1,43 +0,0 @@
-import { ThemeConfig } from 'antd';
-
-export const mainTheme: ThemeConfig = {
- token: {
- colorLink: '#7E22CE',
- colorPrimary: '#7E22CE',
- colorWarning: '#FF9C27',
- colorInfoText: '#36075F',
- colorText: '#0F172A',
- colorTextSecondary: '#4D596A',
- colorFillSecondary: '#E4E4E4',
- fontSize: 16,
- fontFamily: 'Inter',
- colorBgContainer: '#FFFFFF',
- },
- components: {
- Alert: {
- fontSize: 16,
- },
- Button: {
- fontSize: 16,
- fontSizeLG: 16,
- },
- Card: {
- colorBgContainer: '#FFFFFF',
- padding: 20,
- fontWeightStrong: 400,
- },
- Input: {
- fontSize: 20,
- colorTextDisabled: '#334155',
- },
- Tooltip: {
- fontSize: 16,
- colorText: 'black',
- colorTextLightSolid: 'black',
- colorBgSpotlight: 'white',
- },
- Typography: {
- colorTextDescription: '#4D596A',
- },
- },
-};
diff --git a/frontend/tsconfig.json b/frontend/tsconfig.json
deleted file mode 100644
index ca51cb094..000000000
--- a/frontend/tsconfig.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "compilerOptions": {
- "target": "ES2015",
- "allowJs": true,
- "esModuleInterop": true,
- "incremental": true,
- "isolatedModules": true,
- "jsx": "preserve",
- "lib": [
- "dom",
- "dom.iterable",
- "esnext"
- ],
- "module": "esnext",
- "moduleResolution": "bundler",
- "noEmit": true,
- "paths": {
- "@/*": [
- "./*"
- ]
- },
- "resolveJsonModule": true,
- "skipLibCheck": true,
- "strict": true,
- "types": [
- "@testing-library/jest-dom"
- ]
- },
- "exclude": [
- "node_modules"
- ],
- "include": [
- "**/*.ts",
- "**/*.tsx",
- "next-env.d.ts",
- "**/*.d.ts"
- ]
-}
\ No newline at end of file
diff --git a/frontend/types/Address.ts b/frontend/types/Address.ts
deleted file mode 100644
index f64ddbb97..000000000
--- a/frontend/types/Address.ts
+++ /dev/null
@@ -1 +0,0 @@
-export type Address = `0x${string}`;
diff --git a/frontend/types/Autonolas.ts b/frontend/types/Autonolas.ts
deleted file mode 100644
index f971ace82..000000000
--- a/frontend/types/Autonolas.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-export type StakingRewardsInfo = {
- mechRequestCount: number;
- serviceInfo: unknown[];
- livenessPeriod: number;
- livenessRatio: number;
- rewardsPerSecond: number;
- isEligibleForRewards: boolean;
- availableRewardsForEpoch: number;
- accruedServiceStakingRewards: number;
- minimumStakedAmount: number;
-};
-
-export type StakingContractInfo = {
- availableRewards: number;
- maxNumServices: number;
- serviceIds: number[];
- /** minimum staking duration (in seconds) */
- minimumStakingDuration: number;
- /** time when service was staked (in seconds) */
- serviceStakingStartTime: number;
- /** 0: not staked, 1: staked, 2: unstaked - current state of the service */
- serviceStakingState: number;
-};
diff --git a/frontend/types/ElectronApi.ts b/frontend/types/ElectronApi.ts
deleted file mode 100644
index 2f586a0d9..000000000
--- a/frontend/types/ElectronApi.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-export type ElectronStore = {
- environmentName?: string;
- isInitialFunded?: boolean;
- firstStakingRewardAchieved?: boolean;
- firstRewardNotificationShown?: boolean;
-};
-
-export type ElectronTrayIconStatus = 'low-gas' | 'running' | 'paused';
diff --git a/frontend/types/Records.ts b/frontend/types/Records.ts
deleted file mode 100644
index 20a8611a9..000000000
--- a/frontend/types/Records.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { Token } from '@/enums/Token';
-
-import { Address } from './Address';
-
-export type AddressNumberRecord = Record;
-export type AddressBooleanRecord = Record;
-
-// defines token balances in a wallet by token name
-export type WalletAddressNumberRecord = Record<
- Address,
- Record
->;
diff --git a/frontend/utils/copyToClipboard.ts b/frontend/utils/copyToClipboard.ts
deleted file mode 100644
index 12b85dddb..000000000
--- a/frontend/utils/copyToClipboard.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export const copyToClipboard = async (text: string): Promise =>
- navigator.clipboard.writeText(text);
diff --git a/frontend/utils/isDev.ts b/frontend/utils/isDev.ts
deleted file mode 100644
index 0bd4ecf30..000000000
--- a/frontend/utils/isDev.ts
+++ /dev/null
@@ -1 +0,0 @@
-export const isDev = process.env.NODE_ENV === 'development';
diff --git a/frontend/utils/numberFormatters.ts b/frontend/utils/numberFormatters.ts
deleted file mode 100644
index 7613469fa..000000000
--- a/frontend/utils/numberFormatters.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-export const balanceFormat = (
- balance: number | undefined,
- decimals: 2,
-): string => {
- if (balance === undefined) return '--';
- return Intl.NumberFormat('en-US', {
- notation: 'compact',
- maximumFractionDigits: decimals,
- minimumFractionDigits: decimals,
- }).format(balance);
-};
diff --git a/frontend/utils/service.ts b/frontend/utils/service.ts
deleted file mode 100644
index 160a9fee5..000000000
--- a/frontend/utils/service.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import { formatUnits } from 'ethers/lib/utils';
-
-import { ServiceTemplate } from '@/client';
-
-export const getMinimumStakedAmountRequired = (
- serviceTemplate: ServiceTemplate,
-) => {
- const olasCostOfBond = Number(
- formatUnits(`${serviceTemplate.configuration.olas_cost_of_bond}`, 18),
- );
- const olasRequiredToStake = Number(
- formatUnits(`${serviceTemplate.configuration.olas_required_to_stake}`, 18),
- );
-
- return olasCostOfBond + olasRequiredToStake;
-};
diff --git a/frontend/utils/truncate.ts b/frontend/utils/truncate.ts
deleted file mode 100644
index ff8781d30..000000000
--- a/frontend/utils/truncate.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { Address } from '@/types/Address';
-
-export const truncateAddress = (address: Address) =>
- `${address?.substring(0, 6)}...${address?.substring(address.length - 4, address.length)}`;
diff --git a/frontend/yarn.lock b/frontend/yarn.lock
deleted file mode 100644
index dee5388e7..000000000
--- a/frontend/yarn.lock
+++ /dev/null
@@ -1,6263 +0,0 @@
-# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
-# yarn lockfile v1
-
-
-"@adobe/css-tools@^4.3.2":
- version "4.3.3"
- resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.3.3.tgz#90749bde8b89cd41764224f5aac29cd4138f75ff"
- integrity sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==
-
-"@ampproject/remapping@^2.2.0":
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4"
- integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==
- dependencies:
- "@jridgewell/gen-mapping" "^0.3.5"
- "@jridgewell/trace-mapping" "^0.3.24"
-
-"@ant-design/colors@^7.0.0", "@ant-design/colors@^7.0.2":
- version "7.0.2"
- resolved "https://registry.yarnpkg.com/@ant-design/colors/-/colors-7.0.2.tgz#c5c753a467ce8d86ba7ca4736d2c01f599bb5492"
- integrity sha512-7KJkhTiPiLHSu+LmMJnehfJ6242OCxSlR3xHVBecYxnMW8MS/878NXct1GqYARyL59fyeFdKRxXTfvR9SnDgJg==
- dependencies:
- "@ctrl/tinycolor" "^3.6.1"
-
-"@ant-design/cssinjs@^1.18.4", "@ant-design/cssinjs@^1.19.1":
- version "1.20.0"
- resolved "https://registry.yarnpkg.com/@ant-design/cssinjs/-/cssinjs-1.20.0.tgz#878bc6c5b08f73db76da54c347a7ebb3fa4858bb"
- integrity sha512-uG3iWzJxgNkADdZmc6W0Ci3iQAUOvLMcM8SnnmWq3r6JeocACft4ChnY/YWvI2Y+rG/68QBla/O+udke1yH3vg==
- dependencies:
- "@babel/runtime" "^7.11.1"
- "@emotion/hash" "^0.8.0"
- "@emotion/unitless" "^0.7.5"
- classnames "^2.3.1"
- csstype "^3.1.3"
- rc-util "^5.35.0"
- stylis "^4.0.13"
-
-"@ant-design/icons-svg@^4.4.0":
- version "4.4.2"
- resolved "https://registry.yarnpkg.com/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz#ed2be7fb4d82ac7e1d45a54a5b06d6cecf8be6f6"
- integrity sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==
-
-"@ant-design/icons@^5.3.0", "@ant-design/icons@^5.3.7":
- version "5.3.7"
- resolved "https://registry.yarnpkg.com/@ant-design/icons/-/icons-5.3.7.tgz#d9f3654bf7934ee5faba43f91b5a187f5309ec68"
- integrity sha512-bCPXTAg66f5bdccM4TT21SQBDO1Ek2gho9h3nO9DAKXJP4sq+5VBjrQMSxMVXSB3HyEz+cUbHQ5+6ogxCOpaew==
- dependencies:
- "@ant-design/colors" "^7.0.0"
- "@ant-design/icons-svg" "^4.4.0"
- "@babel/runtime" "^7.11.2"
- classnames "^2.2.6"
- rc-util "^5.31.1"
-
-"@ant-design/react-slick@~1.1.2":
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/@ant-design/react-slick/-/react-slick-1.1.2.tgz#f84ce3e4d0dc941f02b16f1d1d6d7a371ffbb4f1"
- integrity sha512-EzlvzE6xQUBrZuuhSAFTdsr4P2bBBHGZwKFemEfq8gIGyIQCxalYfZW/T2ORbtQx5rU69o+WycP3exY/7T1hGA==
- dependencies:
- "@babel/runtime" "^7.10.4"
- classnames "^2.2.5"
- json2mq "^0.2.0"
- resize-observer-polyfill "^1.5.1"
- throttle-debounce "^5.0.0"
-
-"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.23.5", "@babel/code-frame@^7.24.2":
- version "7.24.2"
- resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.2.tgz#718b4b19841809a58b29b68cde80bc5e1aa6d9ae"
- integrity sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==
- dependencies:
- "@babel/highlight" "^7.24.2"
- picocolors "^1.0.0"
-
-"@babel/compat-data@^7.23.5":
- version "7.24.4"
- resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.24.4.tgz#6f102372e9094f25d908ca0d34fc74c74606059a"
- integrity sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==
-
-"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.23.9":
- version "7.24.5"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.5.tgz#15ab5b98e101972d171aeef92ac70d8d6718f06a"
- integrity sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==
- dependencies:
- "@ampproject/remapping" "^2.2.0"
- "@babel/code-frame" "^7.24.2"
- "@babel/generator" "^7.24.5"
- "@babel/helper-compilation-targets" "^7.23.6"
- "@babel/helper-module-transforms" "^7.24.5"
- "@babel/helpers" "^7.24.5"
- "@babel/parser" "^7.24.5"
- "@babel/template" "^7.24.0"
- "@babel/traverse" "^7.24.5"
- "@babel/types" "^7.24.5"
- convert-source-map "^2.0.0"
- debug "^4.1.0"
- gensync "^1.0.0-beta.2"
- json5 "^2.2.3"
- semver "^6.3.1"
-
-"@babel/generator@^7.24.5", "@babel/generator@^7.7.2":
- version "7.24.5"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.5.tgz#e5afc068f932f05616b66713e28d0f04e99daeb3"
- integrity sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==
- dependencies:
- "@babel/types" "^7.24.5"
- "@jridgewell/gen-mapping" "^0.3.5"
- "@jridgewell/trace-mapping" "^0.3.25"
- jsesc "^2.5.1"
-
-"@babel/helper-compilation-targets@^7.23.6":
- version "7.23.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991"
- integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==
- dependencies:
- "@babel/compat-data" "^7.23.5"
- "@babel/helper-validator-option" "^7.23.5"
- browserslist "^4.22.2"
- lru-cache "^5.1.1"
- semver "^6.3.1"
-
-"@babel/helper-environment-visitor@^7.22.20":
- version "7.22.20"
- resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167"
- integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==
-
-"@babel/helper-function-name@^7.23.0":
- version "7.23.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759"
- integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==
- dependencies:
- "@babel/template" "^7.22.15"
- "@babel/types" "^7.23.0"
-
-"@babel/helper-hoist-variables@^7.22.5":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb"
- integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==
- dependencies:
- "@babel/types" "^7.22.5"
-
-"@babel/helper-module-imports@^7.24.3":
- version "7.24.3"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz#6ac476e6d168c7c23ff3ba3cf4f7841d46ac8128"
- integrity sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==
- dependencies:
- "@babel/types" "^7.24.0"
-
-"@babel/helper-module-transforms@^7.24.5":
- version "7.24.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz#ea6c5e33f7b262a0ae762fd5986355c45f54a545"
- integrity sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==
- dependencies:
- "@babel/helper-environment-visitor" "^7.22.20"
- "@babel/helper-module-imports" "^7.24.3"
- "@babel/helper-simple-access" "^7.24.5"
- "@babel/helper-split-export-declaration" "^7.24.5"
- "@babel/helper-validator-identifier" "^7.24.5"
-
-"@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.14.5", "@babel/helper-plugin-utils@^7.24.0", "@babel/helper-plugin-utils@^7.8.0":
- version "7.24.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz#a924607dd254a65695e5bd209b98b902b3b2f11a"
- integrity sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==
-
-"@babel/helper-simple-access@^7.24.5":
- version "7.24.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz#50da5b72f58c16b07fbd992810be6049478e85ba"
- integrity sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==
- dependencies:
- "@babel/types" "^7.24.5"
-
-"@babel/helper-split-export-declaration@^7.24.5":
- version "7.24.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz#b9a67f06a46b0b339323617c8c6213b9055a78b6"
- integrity sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==
- dependencies:
- "@babel/types" "^7.24.5"
-
-"@babel/helper-string-parser@^7.24.1":
- version "7.24.1"
- resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz#f99c36d3593db9540705d0739a1f10b5e20c696e"
- integrity sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==
-
-"@babel/helper-validator-identifier@^7.24.5":
- version "7.24.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz#918b1a7fa23056603506370089bd990d8720db62"
- integrity sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==
-
-"@babel/helper-validator-option@^7.23.5":
- version "7.23.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307"
- integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==
-
-"@babel/helpers@^7.24.5":
- version "7.24.5"
- resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.5.tgz#fedeb87eeafa62b621160402181ad8585a22a40a"
- integrity sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==
- dependencies:
- "@babel/template" "^7.24.0"
- "@babel/traverse" "^7.24.5"
- "@babel/types" "^7.24.5"
-
-"@babel/highlight@^7.24.2":
- version "7.24.5"
- resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.5.tgz#bc0613f98e1dd0720e99b2a9ee3760194a704b6e"
- integrity sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==
- dependencies:
- "@babel/helper-validator-identifier" "^7.24.5"
- chalk "^2.4.2"
- js-tokens "^4.0.0"
- picocolors "^1.0.0"
-
-"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.24.0", "@babel/parser@^7.24.5":
- version "7.24.5"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.5.tgz#4a4d5ab4315579e5398a82dcf636ca80c3392790"
- integrity sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==
-
-"@babel/plugin-syntax-async-generators@^7.8.4":
- version "7.8.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d"
- integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-bigint@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea"
- integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-class-properties@^7.8.3":
- version "7.12.13"
- 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-import-meta@^7.8.3":
- version "7.10.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51"
- integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==
- dependencies:
- "@babel/helper-plugin-utils" "^7.10.4"
-
-"@babel/plugin-syntax-json-strings@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a"
- integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-jsx@^7.7.2":
- version "7.24.1"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz#3f6ca04b8c841811dbc3c5c5f837934e0d626c10"
- integrity sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.24.0"
-
-"@babel/plugin-syntax-logical-assignment-operators@^7.8.3":
- version "7.10.4"
- 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.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.8.3":
- version "7.10.4"
- 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.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.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.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-top-level-await@^7.8.3":
- version "7.14.5"
- 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-syntax-typescript@^7.7.2":
- version "7.24.1"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.1.tgz#b3bcc51f396d15f3591683f90239de143c076844"
- integrity sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.24.0"
-
-"@babel/runtime@^7.10.1", "@babel/runtime@^7.10.4", "@babel/runtime@^7.11.1", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.7", "@babel/runtime@^7.18.0", "@babel/runtime@^7.18.3", "@babel/runtime@^7.20.0", "@babel/runtime@^7.20.7", "@babel/runtime@^7.21.0", "@babel/runtime@^7.22.5", "@babel/runtime@^7.23.2", "@babel/runtime@^7.23.6", "@babel/runtime@^7.23.9", "@babel/runtime@^7.24.4", "@babel/runtime@^7.24.5", "@babel/runtime@^7.9.2":
- version "7.24.5"
- resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.5.tgz#230946857c053a36ccc66e1dd03b17dd0c4ed02c"
- integrity sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==
- dependencies:
- regenerator-runtime "^0.14.0"
-
-"@babel/template@^7.22.15", "@babel/template@^7.24.0", "@babel/template@^7.3.3":
- version "7.24.0"
- resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.24.0.tgz#c6a524aa93a4a05d66aaf31654258fae69d87d50"
- integrity sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==
- dependencies:
- "@babel/code-frame" "^7.23.5"
- "@babel/parser" "^7.24.0"
- "@babel/types" "^7.24.0"
-
-"@babel/traverse@^7.24.5":
- version "7.24.5"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.5.tgz#972aa0bc45f16983bf64aa1f877b2dd0eea7e6f8"
- integrity sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==
- dependencies:
- "@babel/code-frame" "^7.24.2"
- "@babel/generator" "^7.24.5"
- "@babel/helper-environment-visitor" "^7.22.20"
- "@babel/helper-function-name" "^7.23.0"
- "@babel/helper-hoist-variables" "^7.22.5"
- "@babel/helper-split-export-declaration" "^7.24.5"
- "@babel/parser" "^7.24.5"
- "@babel/types" "^7.24.5"
- debug "^4.3.1"
- globals "^11.1.0"
-
-"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.24.0", "@babel/types@^7.24.5", "@babel/types@^7.3.3":
- version "7.24.5"
- resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.5.tgz#7661930afc638a5383eb0c4aee59b74f38db84d7"
- integrity sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==
- dependencies:
- "@babel/helper-string-parser" "^7.24.1"
- "@babel/helper-validator-identifier" "^7.24.5"
- to-fast-properties "^2.0.0"
-
-"@bcoe/v8-coverage@^0.2.3":
- version "0.2.3"
- resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
- integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
-
-"@cspotcode/source-map-support@^0.8.0":
- version "0.8.1"
- resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1"
- integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==
- dependencies:
- "@jridgewell/trace-mapping" "0.3.9"
-
-"@ctrl/tinycolor@^3.6.1":
- version "3.6.1"
- resolved "https://registry.yarnpkg.com/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz#b6c75a56a1947cc916ea058772d666a2c8932f31"
- integrity sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==
-
-"@emotion/hash@^0.8.0":
- version "0.8.0"
- resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413"
- integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==
-
-"@emotion/is-prop-valid@1.2.2":
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz#d4175076679c6a26faa92b03bb786f9e52612337"
- integrity sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==
- dependencies:
- "@emotion/memoize" "^0.8.1"
-
-"@emotion/memoize@^0.8.1":
- version "0.8.1"
- resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.1.tgz#c1ddb040429c6d21d38cc945fe75c818cfb68e17"
- integrity sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==
-
-"@emotion/unitless@0.8.1":
- version "0.8.1"
- resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.8.1.tgz#182b5a4704ef8ad91bde93f7a860a88fd92c79a3"
- integrity sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==
-
-"@emotion/unitless@^0.7.5":
- version "0.7.5"
- resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed"
- integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==
-
-"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0":
- version "4.4.0"
- resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59"
- integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==
- dependencies:
- eslint-visitor-keys "^3.3.0"
-
-"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.6.1":
- version "4.10.0"
- resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63"
- integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==
-
-"@eslint/eslintrc@^2.1.4":
- version "2.1.4"
- resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad"
- integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==
- dependencies:
- ajv "^6.12.4"
- debug "^4.3.2"
- espree "^9.6.0"
- globals "^13.19.0"
- ignore "^5.2.0"
- import-fresh "^3.2.1"
- js-yaml "^4.1.0"
- minimatch "^3.1.2"
- strip-json-comments "^3.1.1"
-
-"@eslint/js@8.57.0":
- version "8.57.0"
- resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f"
- integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==
-
-"@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.7.0":
- version "5.7.0"
- resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.7.0.tgz#b3f3e045bbbeed1af3947335c247ad625a44e449"
- integrity sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==
- dependencies:
- "@ethersproject/address" "^5.7.0"
- "@ethersproject/bignumber" "^5.7.0"
- "@ethersproject/bytes" "^5.7.0"
- "@ethersproject/constants" "^5.7.0"
- "@ethersproject/hash" "^5.7.0"
- "@ethersproject/keccak256" "^5.7.0"
- "@ethersproject/logger" "^5.7.0"
- "@ethersproject/properties" "^5.7.0"
- "@ethersproject/strings" "^5.7.0"
-
-"@ethersproject/abstract-provider@5.7.0", "@ethersproject/abstract-provider@^5.7.0":
- version "5.7.0"
- resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz#b0a8550f88b6bf9d51f90e4795d48294630cb9ef"
- integrity sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==
- dependencies:
- "@ethersproject/bignumber" "^5.7.0"
- "@ethersproject/bytes" "^5.7.0"
- "@ethersproject/logger" "^5.7.0"
- "@ethersproject/networks" "^5.7.0"
- "@ethersproject/properties" "^5.7.0"
- "@ethersproject/transactions" "^5.7.0"
- "@ethersproject/web" "^5.7.0"
-
-"@ethersproject/abstract-signer@5.7.0", "@ethersproject/abstract-signer@^5.7.0":
- version "5.7.0"
- resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz#13f4f32117868452191a4649723cb086d2b596b2"
- integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==
- dependencies:
- "@ethersproject/abstract-provider" "^5.7.0"
- "@ethersproject/bignumber" "^5.7.0"
- "@ethersproject/bytes" "^5.7.0"
- "@ethersproject/logger" "^5.7.0"
- "@ethersproject/properties" "^5.7.0"
-
-"@ethersproject/address@5.7.0", "@ethersproject/address@^5.7.0":
- version "5.7.0"
- resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.7.0.tgz#19b56c4d74a3b0a46bfdbb6cfcc0a153fc697f37"
- integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==
- dependencies:
- "@ethersproject/bignumber" "^5.7.0"
- "@ethersproject/bytes" "^5.7.0"
- "@ethersproject/keccak256" "^5.7.0"
- "@ethersproject/logger" "^5.7.0"
- "@ethersproject/rlp" "^5.7.0"
-
-"@ethersproject/base64@5.7.0", "@ethersproject/base64@^5.7.0":
- version "5.7.0"
- resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.7.0.tgz#ac4ee92aa36c1628173e221d0d01f53692059e1c"
- integrity sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==
- dependencies:
- "@ethersproject/bytes" "^5.7.0"
-
-"@ethersproject/basex@5.7.0", "@ethersproject/basex@^5.7.0":
- version "5.7.0"
- resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.7.0.tgz#97034dc7e8938a8ca943ab20f8a5e492ece4020b"
- integrity sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==
- dependencies:
- "@ethersproject/bytes" "^5.7.0"
- "@ethersproject/properties" "^5.7.0"
-
-"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.7.0":
- version "5.7.0"
- resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.7.0.tgz#e2f03837f268ba655ffba03a57853e18a18dc9c2"
- integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==
- dependencies:
- "@ethersproject/bytes" "^5.7.0"
- "@ethersproject/logger" "^5.7.0"
- bn.js "^5.2.1"
-
-"@ethersproject/bytes@5.7.0", "@ethersproject/bytes@^5.7.0":
- version "5.7.0"
- resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.7.0.tgz#a00f6ea8d7e7534d6d87f47188af1148d71f155d"
- integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==
- dependencies:
- "@ethersproject/logger" "^5.7.0"
-
-"@ethersproject/constants@5.7.0", "@ethersproject/constants@^5.7.0":
- version "5.7.0"
- resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.7.0.tgz#df80a9705a7e08984161f09014ea012d1c75295e"
- integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==
- dependencies:
- "@ethersproject/bignumber" "^5.7.0"
-
-"@ethersproject/contracts@5.7.0":
- version "5.7.0"
- resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.7.0.tgz#c305e775abd07e48aa590e1a877ed5c316f8bd1e"
- integrity sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==
- dependencies:
- "@ethersproject/abi" "^5.7.0"
- "@ethersproject/abstract-provider" "^5.7.0"
- "@ethersproject/abstract-signer" "^5.7.0"
- "@ethersproject/address" "^5.7.0"
- "@ethersproject/bignumber" "^5.7.0"
- "@ethersproject/bytes" "^5.7.0"
- "@ethersproject/constants" "^5.7.0"
- "@ethersproject/logger" "^5.7.0"
- "@ethersproject/properties" "^5.7.0"
- "@ethersproject/transactions" "^5.7.0"
-
-"@ethersproject/hash@5.7.0", "@ethersproject/hash@^5.7.0":
- version "5.7.0"
- resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.7.0.tgz#eb7aca84a588508369562e16e514b539ba5240a7"
- integrity sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==
- dependencies:
- "@ethersproject/abstract-signer" "^5.7.0"
- "@ethersproject/address" "^5.7.0"
- "@ethersproject/base64" "^5.7.0"
- "@ethersproject/bignumber" "^5.7.0"
- "@ethersproject/bytes" "^5.7.0"
- "@ethersproject/keccak256" "^5.7.0"
- "@ethersproject/logger" "^5.7.0"
- "@ethersproject/properties" "^5.7.0"
- "@ethersproject/strings" "^5.7.0"
-
-"@ethersproject/hdnode@5.7.0", "@ethersproject/hdnode@^5.7.0":
- version "5.7.0"
- resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.7.0.tgz#e627ddc6b466bc77aebf1a6b9e47405ca5aef9cf"
- integrity sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==
- dependencies:
- "@ethersproject/abstract-signer" "^5.7.0"
- "@ethersproject/basex" "^5.7.0"
- "@ethersproject/bignumber" "^5.7.0"
- "@ethersproject/bytes" "^5.7.0"
- "@ethersproject/logger" "^5.7.0"
- "@ethersproject/pbkdf2" "^5.7.0"
- "@ethersproject/properties" "^5.7.0"
- "@ethersproject/sha2" "^5.7.0"
- "@ethersproject/signing-key" "^5.7.0"
- "@ethersproject/strings" "^5.7.0"
- "@ethersproject/transactions" "^5.7.0"
- "@ethersproject/wordlists" "^5.7.0"
-
-"@ethersproject/json-wallets@5.7.0", "@ethersproject/json-wallets@^5.7.0":
- version "5.7.0"
- resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz#5e3355287b548c32b368d91014919ebebddd5360"
- integrity sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==
- dependencies:
- "@ethersproject/abstract-signer" "^5.7.0"
- "@ethersproject/address" "^5.7.0"
- "@ethersproject/bytes" "^5.7.0"
- "@ethersproject/hdnode" "^5.7.0"
- "@ethersproject/keccak256" "^5.7.0"
- "@ethersproject/logger" "^5.7.0"
- "@ethersproject/pbkdf2" "^5.7.0"
- "@ethersproject/properties" "^5.7.0"
- "@ethersproject/random" "^5.7.0"
- "@ethersproject/strings" "^5.7.0"
- "@ethersproject/transactions" "^5.7.0"
- aes-js "3.0.0"
- scrypt-js "3.0.1"
-
-"@ethersproject/keccak256@5.7.0", "@ethersproject/keccak256@^5.7.0":
- version "5.7.0"
- resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.7.0.tgz#3186350c6e1cd6aba7940384ec7d6d9db01f335a"
- integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==
- dependencies:
- "@ethersproject/bytes" "^5.7.0"
- js-sha3 "0.8.0"
-
-"@ethersproject/logger@5.7.0", "@ethersproject/logger@^5.7.0":
- version "5.7.0"
- resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.7.0.tgz#6ce9ae168e74fecf287be17062b590852c311892"
- integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==
-
-"@ethersproject/networks@5.7.1", "@ethersproject/networks@^5.7.0":
- version "5.7.1"
- resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.7.1.tgz#118e1a981d757d45ccea6bb58d9fd3d9db14ead6"
- integrity sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==
- dependencies:
- "@ethersproject/logger" "^5.7.0"
-
-"@ethersproject/pbkdf2@5.7.0", "@ethersproject/pbkdf2@^5.7.0":
- version "5.7.0"
- resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz#d2267d0a1f6e123f3771007338c47cccd83d3102"
- integrity sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==
- dependencies:
- "@ethersproject/bytes" "^5.7.0"
- "@ethersproject/sha2" "^5.7.0"
-
-"@ethersproject/properties@5.7.0", "@ethersproject/properties@^5.7.0":
- version "5.7.0"
- resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.7.0.tgz#a6e12cb0439b878aaf470f1902a176033067ed30"
- integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==
- dependencies:
- "@ethersproject/logger" "^5.7.0"
-
-"@ethersproject/providers@5.7.2":
- version "5.7.2"
- resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.7.2.tgz#f8b1a4f275d7ce58cf0a2eec222269a08beb18cb"
- integrity sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==
- dependencies:
- "@ethersproject/abstract-provider" "^5.7.0"
- "@ethersproject/abstract-signer" "^5.7.0"
- "@ethersproject/address" "^5.7.0"
- "@ethersproject/base64" "^5.7.0"
- "@ethersproject/basex" "^5.7.0"
- "@ethersproject/bignumber" "^5.7.0"
- "@ethersproject/bytes" "^5.7.0"
- "@ethersproject/constants" "^5.7.0"
- "@ethersproject/hash" "^5.7.0"
- "@ethersproject/logger" "^5.7.0"
- "@ethersproject/networks" "^5.7.0"
- "@ethersproject/properties" "^5.7.0"
- "@ethersproject/random" "^5.7.0"
- "@ethersproject/rlp" "^5.7.0"
- "@ethersproject/sha2" "^5.7.0"
- "@ethersproject/strings" "^5.7.0"
- "@ethersproject/transactions" "^5.7.0"
- "@ethersproject/web" "^5.7.0"
- bech32 "1.1.4"
- ws "7.4.6"
-
-"@ethersproject/random@5.7.0", "@ethersproject/random@^5.7.0":
- version "5.7.0"
- resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.7.0.tgz#af19dcbc2484aae078bb03656ec05df66253280c"
- integrity sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==
- dependencies:
- "@ethersproject/bytes" "^5.7.0"
- "@ethersproject/logger" "^5.7.0"
-
-"@ethersproject/rlp@5.7.0", "@ethersproject/rlp@^5.7.0":
- version "5.7.0"
- resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.7.0.tgz#de39e4d5918b9d74d46de93af80b7685a9c21304"
- integrity sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==
- dependencies:
- "@ethersproject/bytes" "^5.7.0"
- "@ethersproject/logger" "^5.7.0"
-
-"@ethersproject/sha2@5.7.0", "@ethersproject/sha2@^5.7.0":
- version "5.7.0"
- resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.7.0.tgz#9a5f7a7824ef784f7f7680984e593a800480c9fb"
- integrity sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==
- dependencies:
- "@ethersproject/bytes" "^5.7.0"
- "@ethersproject/logger" "^5.7.0"
- hash.js "1.1.7"
-
-"@ethersproject/signing-key@5.7.0", "@ethersproject/signing-key@^5.7.0":
- version "5.7.0"
- resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.7.0.tgz#06b2df39411b00bc57c7c09b01d1e41cf1b16ab3"
- integrity sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==
- dependencies:
- "@ethersproject/bytes" "^5.7.0"
- "@ethersproject/logger" "^5.7.0"
- "@ethersproject/properties" "^5.7.0"
- bn.js "^5.2.1"
- elliptic "6.5.4"
- hash.js "1.1.7"
-
-"@ethersproject/solidity@5.7.0":
- version "5.7.0"
- resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.7.0.tgz#5e9c911d8a2acce2a5ebb48a5e2e0af20b631cb8"
- integrity sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==
- dependencies:
- "@ethersproject/bignumber" "^5.7.0"
- "@ethersproject/bytes" "^5.7.0"
- "@ethersproject/keccak256" "^5.7.0"
- "@ethersproject/logger" "^5.7.0"
- "@ethersproject/sha2" "^5.7.0"
- "@ethersproject/strings" "^5.7.0"
-
-"@ethersproject/strings@5.7.0", "@ethersproject/strings@^5.7.0":
- version "5.7.0"
- resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.7.0.tgz#54c9d2a7c57ae8f1205c88a9d3a56471e14d5ed2"
- integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==
- dependencies:
- "@ethersproject/bytes" "^5.7.0"
- "@ethersproject/constants" "^5.7.0"
- "@ethersproject/logger" "^5.7.0"
-
-"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.7.0":
- version "5.7.0"
- resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.7.0.tgz#91318fc24063e057885a6af13fdb703e1f993d3b"
- integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==
- dependencies:
- "@ethersproject/address" "^5.7.0"
- "@ethersproject/bignumber" "^5.7.0"
- "@ethersproject/bytes" "^5.7.0"
- "@ethersproject/constants" "^5.7.0"
- "@ethersproject/keccak256" "^5.7.0"
- "@ethersproject/logger" "^5.7.0"
- "@ethersproject/properties" "^5.7.0"
- "@ethersproject/rlp" "^5.7.0"
- "@ethersproject/signing-key" "^5.7.0"
-
-"@ethersproject/units@5.7.0":
- version "5.7.0"
- resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.7.0.tgz#637b563d7e14f42deeee39245275d477aae1d8b1"
- integrity sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==
- dependencies:
- "@ethersproject/bignumber" "^5.7.0"
- "@ethersproject/constants" "^5.7.0"
- "@ethersproject/logger" "^5.7.0"
-
-"@ethersproject/wallet@5.7.0":
- version "5.7.0"
- resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.7.0.tgz#4e5d0790d96fe21d61d38fb40324e6c7ef350b2d"
- integrity sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==
- dependencies:
- "@ethersproject/abstract-provider" "^5.7.0"
- "@ethersproject/abstract-signer" "^5.7.0"
- "@ethersproject/address" "^5.7.0"
- "@ethersproject/bignumber" "^5.7.0"
- "@ethersproject/bytes" "^5.7.0"
- "@ethersproject/hash" "^5.7.0"
- "@ethersproject/hdnode" "^5.7.0"
- "@ethersproject/json-wallets" "^5.7.0"
- "@ethersproject/keccak256" "^5.7.0"
- "@ethersproject/logger" "^5.7.0"
- "@ethersproject/properties" "^5.7.0"
- "@ethersproject/random" "^5.7.0"
- "@ethersproject/signing-key" "^5.7.0"
- "@ethersproject/transactions" "^5.7.0"
- "@ethersproject/wordlists" "^5.7.0"
-
-"@ethersproject/web@5.7.1", "@ethersproject/web@^5.7.0":
- version "5.7.1"
- resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.7.1.tgz#de1f285b373149bee5928f4eb7bcb87ee5fbb4ae"
- integrity sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==
- dependencies:
- "@ethersproject/base64" "^5.7.0"
- "@ethersproject/bytes" "^5.7.0"
- "@ethersproject/logger" "^5.7.0"
- "@ethersproject/properties" "^5.7.0"
- "@ethersproject/strings" "^5.7.0"
-
-"@ethersproject/wordlists@5.7.0", "@ethersproject/wordlists@^5.7.0":
- version "5.7.0"
- resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.7.0.tgz#8fb2c07185d68c3e09eb3bfd6e779ba2774627f5"
- integrity sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==
- dependencies:
- "@ethersproject/bytes" "^5.7.0"
- "@ethersproject/hash" "^5.7.0"
- "@ethersproject/logger" "^5.7.0"
- "@ethersproject/properties" "^5.7.0"
- "@ethersproject/strings" "^5.7.0"
-
-"@fontsource/inter@^5.0.17":
- version "5.0.18"
- resolved "https://registry.yarnpkg.com/@fontsource/inter/-/inter-5.0.18.tgz#eaddac790ee74b70932030f37ebaa9fc76decbd8"
- integrity sha512-YCsoYPTcs713sI7tLtxaPrIhXAXvEetGg5Ry02ivA8qUOb3fQHojbK/X9HLD5OOKvFUNR2Ynkwb1kR1hVKQHpw==
-
-"@humanwhocodes/config-array@^0.11.14":
- version "0.11.14"
- resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b"
- integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==
- dependencies:
- "@humanwhocodes/object-schema" "^2.0.2"
- debug "^4.3.1"
- minimatch "^3.0.5"
-
-"@humanwhocodes/module-importer@^1.0.1":
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c"
- integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==
-
-"@humanwhocodes/object-schema@^2.0.2":
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3"
- integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==
-
-"@isaacs/cliui@^8.0.2":
- version "8.0.2"
- resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550"
- integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==
- dependencies:
- string-width "^5.1.2"
- string-width-cjs "npm:string-width@^4.2.0"
- strip-ansi "^7.0.1"
- strip-ansi-cjs "npm:strip-ansi@^6.0.1"
- wrap-ansi "^8.1.0"
- wrap-ansi-cjs "npm:wrap-ansi@^7.0.0"
-
-"@istanbuljs/load-nyc-config@^1.0.0":
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced"
- integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==
- dependencies:
- camelcase "^5.3.1"
- find-up "^4.1.0"
- get-package-type "^0.1.0"
- js-yaml "^3.13.1"
- resolve-from "^5.0.0"
-
-"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3":
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98"
- integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==
-
-"@jest/console@^29.7.0":
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.7.0.tgz#cd4822dbdb84529265c5a2bdb529a3c9cc950ffc"
- integrity sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==
- dependencies:
- "@jest/types" "^29.6.3"
- "@types/node" "*"
- chalk "^4.0.0"
- jest-message-util "^29.7.0"
- jest-util "^29.7.0"
- slash "^3.0.0"
-
-"@jest/core@^29.7.0":
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.7.0.tgz#b6cccc239f30ff36609658c5a5e2291757ce448f"
- integrity sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==
- dependencies:
- "@jest/console" "^29.7.0"
- "@jest/reporters" "^29.7.0"
- "@jest/test-result" "^29.7.0"
- "@jest/transform" "^29.7.0"
- "@jest/types" "^29.6.3"
- "@types/node" "*"
- ansi-escapes "^4.2.1"
- chalk "^4.0.0"
- ci-info "^3.2.0"
- exit "^0.1.2"
- graceful-fs "^4.2.9"
- jest-changed-files "^29.7.0"
- jest-config "^29.7.0"
- jest-haste-map "^29.7.0"
- jest-message-util "^29.7.0"
- jest-regex-util "^29.6.3"
- jest-resolve "^29.7.0"
- jest-resolve-dependencies "^29.7.0"
- jest-runner "^29.7.0"
- jest-runtime "^29.7.0"
- jest-snapshot "^29.7.0"
- jest-util "^29.7.0"
- jest-validate "^29.7.0"
- jest-watcher "^29.7.0"
- micromatch "^4.0.4"
- pretty-format "^29.7.0"
- slash "^3.0.0"
- strip-ansi "^6.0.0"
-
-"@jest/environment@^29.7.0":
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.7.0.tgz#24d61f54ff1f786f3cd4073b4b94416383baf2a7"
- integrity sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==
- dependencies:
- "@jest/fake-timers" "^29.7.0"
- "@jest/types" "^29.6.3"
- "@types/node" "*"
- jest-mock "^29.7.0"
-
-"@jest/expect-utils@^29.7.0":
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.7.0.tgz#023efe5d26a8a70f21677d0a1afc0f0a44e3a1c6"
- integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==
- dependencies:
- jest-get-type "^29.6.3"
-
-"@jest/expect@^29.7.0":
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.7.0.tgz#76a3edb0cb753b70dfbfe23283510d3d45432bf2"
- integrity sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==
- dependencies:
- expect "^29.7.0"
- jest-snapshot "^29.7.0"
-
-"@jest/fake-timers@^29.7.0":
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.7.0.tgz#fd91bf1fffb16d7d0d24a426ab1a47a49881a565"
- integrity sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==
- dependencies:
- "@jest/types" "^29.6.3"
- "@sinonjs/fake-timers" "^10.0.2"
- "@types/node" "*"
- jest-message-util "^29.7.0"
- jest-mock "^29.7.0"
- jest-util "^29.7.0"
-
-"@jest/globals@^29.7.0":
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.7.0.tgz#8d9290f9ec47ff772607fa864ca1d5a2efae1d4d"
- integrity sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==
- dependencies:
- "@jest/environment" "^29.7.0"
- "@jest/expect" "^29.7.0"
- "@jest/types" "^29.6.3"
- jest-mock "^29.7.0"
-
-"@jest/reporters@^29.7.0":
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.7.0.tgz#04b262ecb3b8faa83b0b3d321623972393e8f4c7"
- integrity sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==
- dependencies:
- "@bcoe/v8-coverage" "^0.2.3"
- "@jest/console" "^29.7.0"
- "@jest/test-result" "^29.7.0"
- "@jest/transform" "^29.7.0"
- "@jest/types" "^29.6.3"
- "@jridgewell/trace-mapping" "^0.3.18"
- "@types/node" "*"
- chalk "^4.0.0"
- collect-v8-coverage "^1.0.0"
- exit "^0.1.2"
- glob "^7.1.3"
- graceful-fs "^4.2.9"
- istanbul-lib-coverage "^3.0.0"
- istanbul-lib-instrument "^6.0.0"
- istanbul-lib-report "^3.0.0"
- istanbul-lib-source-maps "^4.0.0"
- istanbul-reports "^3.1.3"
- jest-message-util "^29.7.0"
- jest-util "^29.7.0"
- jest-worker "^29.7.0"
- slash "^3.0.0"
- string-length "^4.0.1"
- strip-ansi "^6.0.0"
- v8-to-istanbul "^9.0.1"
-
-"@jest/schemas@^29.6.3":
- version "29.6.3"
- resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03"
- integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==
- dependencies:
- "@sinclair/typebox" "^0.27.8"
-
-"@jest/source-map@^29.6.3":
- version "29.6.3"
- resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.6.3.tgz#d90ba772095cf37a34a5eb9413f1b562a08554c4"
- integrity sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==
- dependencies:
- "@jridgewell/trace-mapping" "^0.3.18"
- callsites "^3.0.0"
- graceful-fs "^4.2.9"
-
-"@jest/test-result@^29.7.0":
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.7.0.tgz#8db9a80aa1a097bb2262572686734baed9b1657c"
- integrity sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==
- dependencies:
- "@jest/console" "^29.7.0"
- "@jest/types" "^29.6.3"
- "@types/istanbul-lib-coverage" "^2.0.0"
- collect-v8-coverage "^1.0.0"
-
-"@jest/test-sequencer@^29.7.0":
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz#6cef977ce1d39834a3aea887a1726628a6f072ce"
- integrity sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==
- dependencies:
- "@jest/test-result" "^29.7.0"
- graceful-fs "^4.2.9"
- jest-haste-map "^29.7.0"
- slash "^3.0.0"
-
-"@jest/transform@^29.7.0":
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.7.0.tgz#df2dd9c346c7d7768b8a06639994640c642e284c"
- integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==
- dependencies:
- "@babel/core" "^7.11.6"
- "@jest/types" "^29.6.3"
- "@jridgewell/trace-mapping" "^0.3.18"
- babel-plugin-istanbul "^6.1.1"
- chalk "^4.0.0"
- convert-source-map "^2.0.0"
- fast-json-stable-stringify "^2.1.0"
- graceful-fs "^4.2.9"
- jest-haste-map "^29.7.0"
- jest-regex-util "^29.6.3"
- jest-util "^29.7.0"
- micromatch "^4.0.4"
- pirates "^4.0.4"
- slash "^3.0.0"
- write-file-atomic "^4.0.2"
-
-"@jest/types@^29.6.3":
- version "29.6.3"
- resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59"
- integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==
- dependencies:
- "@jest/schemas" "^29.6.3"
- "@types/istanbul-lib-coverage" "^2.0.0"
- "@types/istanbul-reports" "^3.0.0"
- "@types/node" "*"
- "@types/yargs" "^17.0.8"
- chalk "^4.0.0"
-
-"@jridgewell/gen-mapping@^0.3.5":
- version "0.3.5"
- resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36"
- integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==
- dependencies:
- "@jridgewell/set-array" "^1.2.1"
- "@jridgewell/sourcemap-codec" "^1.4.10"
- "@jridgewell/trace-mapping" "^0.3.24"
-
-"@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0":
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6"
- integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==
-
-"@jridgewell/set-array@^1.2.1":
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280"
- integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==
-
-"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14":
- version "1.4.15"
- resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
- integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
-
-"@jridgewell/trace-mapping@0.3.9":
- version "0.3.9"
- resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9"
- integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==
- dependencies:
- "@jridgewell/resolve-uri" "^3.0.3"
- "@jridgewell/sourcemap-codec" "^1.4.10"
-
-"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25":
- version "0.3.25"
- resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0"
- integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==
- dependencies:
- "@jridgewell/resolve-uri" "^3.1.0"
- "@jridgewell/sourcemap-codec" "^1.4.14"
-
-"@next/env@14.2.3":
- version "14.2.3"
- resolved "https://registry.yarnpkg.com/@next/env/-/env-14.2.3.tgz#d6def29d1c763c0afb397343a15a82e7d92353a0"
- integrity sha512-W7fd7IbkfmeeY2gXrzJYDx8D2lWKbVoTIj1o1ScPHNzvp30s1AuoEFSdr39bC5sjxJaxTtq3OTCZboNp0lNWHA==
-
-"@next/eslint-plugin-next@14.1.0":
- version "14.1.0"
- resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-14.1.0.tgz#29b041233fac7417e22eefa4146432d5cd910820"
- integrity sha512-x4FavbNEeXx/baD/zC/SdrvkjSby8nBn8KcCREqk6UuwvwoAPZmaV8TFCAuo/cpovBRTIY67mHhe86MQQm/68Q==
- dependencies:
- glob "10.3.10"
-
-"@next/swc-darwin-arm64@14.2.3":
- version "14.2.3"
- resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.3.tgz#db1a05eb88c0224089b815ad10ac128ec79c2cdb"
- integrity sha512-3pEYo/RaGqPP0YzwnlmPN2puaF2WMLM3apt5jLW2fFdXD9+pqcoTzRk+iZsf8ta7+quAe4Q6Ms0nR0SFGFdS1A==
-
-"@next/swc-darwin-x64@14.2.3":
- version "14.2.3"
- resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.3.tgz#a3f8af05b5f9a52ac3082e66ac29e125ab1d7b9c"
- integrity sha512-6adp7waE6P1TYFSXpY366xwsOnEXM+y1kgRpjSRVI2CBDOcbRjsJ67Z6EgKIqWIue52d2q/Mx8g9MszARj8IEA==
-
-"@next/swc-linux-arm64-gnu@14.2.3":
- version "14.2.3"
- resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.3.tgz#4e63f43879285b52554bfd39e6e0cc78a9b27bbf"
- integrity sha512-cuzCE/1G0ZSnTAHJPUT1rPgQx1w5tzSX7POXSLaS7w2nIUJUD+e25QoXD/hMfxbsT9rslEXugWypJMILBj/QsA==
-
-"@next/swc-linux-arm64-musl@14.2.3":
- version "14.2.3"
- resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.3.tgz#ebdaed26214448b1e6f2c3e8b3cd29bfba387990"
- integrity sha512-0D4/oMM2Y9Ta3nGuCcQN8jjJjmDPYpHX9OJzqk42NZGJocU2MqhBq5tWkJrUQOQY9N+In9xOdymzapM09GeiZw==
-
-"@next/swc-linux-x64-gnu@14.2.3":
- version "14.2.3"
- resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.3.tgz#19e3bcc137c3b582a1ab867106817e5c90a20593"
- integrity sha512-ENPiNnBNDInBLyUU5ii8PMQh+4XLr4pG51tOp6aJ9xqFQ2iRI6IH0Ds2yJkAzNV1CfyagcyzPfROMViS2wOZ9w==
-
-"@next/swc-linux-x64-musl@14.2.3":
- version "14.2.3"
- resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.3.tgz#794a539b98e064169cf0ff7741b2a4fb16adec7d"
- integrity sha512-BTAbq0LnCbF5MtoM7I/9UeUu/8ZBY0i8SFjUMCbPDOLv+un67e2JgyN4pmgfXBwy/I+RHu8q+k+MCkDN6P9ViQ==
-
-"@next/swc-win32-arm64-msvc@14.2.3":
- version "14.2.3"
- resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.3.tgz#eda9fa0fbf1ff9113e87ac2668ee67ce9e5add5a"
- integrity sha512-AEHIw/dhAMLNFJFJIJIyOFDzrzI5bAjI9J26gbO5xhAKHYTZ9Or04BesFPXiAYXDNdrwTP2dQceYA4dL1geu8A==
-
-"@next/swc-win32-ia32-msvc@14.2.3":
- version "14.2.3"
- resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.3.tgz#7c1190e3f640ab16580c6bdbd7d0e766b9920457"
- integrity sha512-vga40n1q6aYb0CLrM+eEmisfKCR45ixQYXuBXxOOmmoV8sYST9k7E3US32FsY+CkkF7NtzdcebiFT4CHuMSyZw==
-
-"@next/swc-win32-x64-msvc@14.2.3":
- version "14.2.3"
- resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.3.tgz#2be4e39ee25bfbd85be78eea17c0e7751dc4323c"
- integrity sha512-Q1/zm43RWynxrO7lW4ehciQVj+5ePBhOK+/K2P7pLFX3JaJ/IZVC69SHidrmZSOkqz7ECIOhhy7XhAFG4JYyHA==
-
-"@nodelib/fs.scandir@2.1.5":
- version "2.1.5"
- resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
- integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
- dependencies:
- "@nodelib/fs.stat" "2.0.5"
- run-parallel "^1.1.9"
-
-"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
- integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
-
-"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8":
- version "1.2.8"
- resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
- integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
- dependencies:
- "@nodelib/fs.scandir" "2.1.5"
- fastq "^1.6.0"
-
-"@pkgjs/parseargs@^0.11.0":
- version "0.11.0"
- resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33"
- integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==
-
-"@pkgr/core@^0.1.0":
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.1.1.tgz#1ec17e2edbec25c8306d424ecfbf13c7de1aaa31"
- integrity sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==
-
-"@rc-component/async-validator@^5.0.3":
- version "5.0.4"
- resolved "https://registry.yarnpkg.com/@rc-component/async-validator/-/async-validator-5.0.4.tgz#5291ad92f00a14b6766fc81735c234277f83e948"
- integrity sha512-qgGdcVIF604M9EqjNF0hbUTz42bz/RDtxWdWuU5EQe3hi7M8ob54B6B35rOsvX5eSvIHIzT9iH1R3n+hk3CGfg==
- dependencies:
- "@babel/runtime" "^7.24.4"
-
-"@rc-component/color-picker@~1.5.3":
- version "1.5.3"
- resolved "https://registry.yarnpkg.com/@rc-component/color-picker/-/color-picker-1.5.3.tgz#f3b0e14bb67ec5ee77d1fd5d261f63dd4fd00449"
- integrity sha512-+tGGH3nLmYXTalVe0L8hSZNs73VTP5ueSHwUlDC77KKRaN7G4DS4wcpG5DTDzdcV/Yas+rzA6UGgIyzd8fS4cw==
- dependencies:
- "@babel/runtime" "^7.23.6"
- "@ctrl/tinycolor" "^3.6.1"
- classnames "^2.2.6"
- rc-util "^5.38.1"
-
-"@rc-component/context@^1.4.0":
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/@rc-component/context/-/context-1.4.0.tgz#dc6fb021d6773546af8f016ae4ce9aea088395e8"
- integrity sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==
- dependencies:
- "@babel/runtime" "^7.10.1"
- rc-util "^5.27.0"
-
-"@rc-component/mini-decimal@^1.0.1":
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/@rc-component/mini-decimal/-/mini-decimal-1.1.0.tgz#7b7a362b14a0a54cb5bc6fd2b82731f29f11d9b0"
- integrity sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==
- dependencies:
- "@babel/runtime" "^7.18.0"
-
-"@rc-component/mutate-observer@^1.1.0":
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/@rc-component/mutate-observer/-/mutate-observer-1.1.0.tgz#ee53cc88b78aade3cd0653609215a44779386fd8"
- integrity sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw==
- dependencies:
- "@babel/runtime" "^7.18.0"
- classnames "^2.3.2"
- rc-util "^5.24.4"
-
-"@rc-component/portal@^1.0.0-8", "@rc-component/portal@^1.0.0-9", "@rc-component/portal@^1.0.2", "@rc-component/portal@^1.1.0", "@rc-component/portal@^1.1.1":
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/@rc-component/portal/-/portal-1.1.2.tgz#55db1e51d784e034442e9700536faaa6ab63fc71"
- integrity sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==
- dependencies:
- "@babel/runtime" "^7.18.0"
- classnames "^2.3.2"
- rc-util "^5.24.4"
-
-"@rc-component/tour@~1.15.0":
- version "1.15.0"
- resolved "https://registry.yarnpkg.com/@rc-component/tour/-/tour-1.15.0.tgz#37a66ae5af8eefaf0ab0e22ddd8e6fecdbdc14a7"
- integrity sha512-h6hyILDwL+In9GAgRobwRWihLqqsD7Uft3fZGrJ7L4EiyCoxbnNYwzPXDfz7vNDhWeVyvAWQJj9fJCzpI4+b4g==
- dependencies:
- "@babel/runtime" "^7.18.0"
- "@rc-component/portal" "^1.0.0-9"
- "@rc-component/trigger" "^2.0.0"
- classnames "^2.3.2"
- rc-util "^5.24.4"
-
-"@rc-component/trigger@^2.0.0", "@rc-component/trigger@^2.1.1":
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/@rc-component/trigger/-/trigger-2.1.1.tgz#47973f1156ba63810c913eb46cbaedeba913874b"
- integrity sha512-UjHkedkgtEcgQu87w1VuWug1idoDJV7VUt0swxHXRcmei2uu1AuUzGBPEUlmOmXGJ+YtTgZfVLi7kuAUKoZTMA==
- dependencies:
- "@babel/runtime" "^7.23.2"
- "@rc-component/portal" "^1.1.0"
- classnames "^2.3.2"
- rc-motion "^2.0.0"
- rc-resize-observer "^1.3.1"
- rc-util "^5.38.0"
-
-"@rushstack/eslint-patch@^1.3.3":
- version "1.10.3"
- resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.10.3.tgz#391d528054f758f81e53210f1a1eebcf1a8b1d20"
- integrity sha512-qC/xYId4NMebE6w/V33Fh9gWxLgURiNYgVNObbJl2LZv0GUUItCcCqC5axQSwRaAgaxl2mELq1rMzlswaQ0Zxg==
-
-"@sinclair/typebox@^0.27.8":
- version "0.27.8"
- resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e"
- integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==
-
-"@sinonjs/commons@^3.0.0":
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.1.tgz#1029357e44ca901a615585f6d27738dbc89084cd"
- integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==
- dependencies:
- type-detect "4.0.8"
-
-"@sinonjs/fake-timers@^10.0.2":
- version "10.3.0"
- resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz#55fdff1ecab9f354019129daf4df0dd4d923ea66"
- integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==
- dependencies:
- "@sinonjs/commons" "^3.0.0"
-
-"@swc/counter@^0.1.3":
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/@swc/counter/-/counter-0.1.3.tgz#cc7463bd02949611c6329596fccd2b0ec782b0e9"
- integrity sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==
-
-"@swc/helpers@0.5.5":
- version "0.5.5"
- resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.5.tgz#12689df71bfc9b21c4f4ca00ae55f2f16c8b77c0"
- integrity sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==
- dependencies:
- "@swc/counter" "^0.1.3"
- tslib "^2.4.0"
-
-"@testing-library/dom@^9.0.0":
- version "9.3.4"
- resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-9.3.4.tgz#50696ec28376926fec0a1bf87d9dbac5e27f60ce"
- integrity sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==
- dependencies:
- "@babel/code-frame" "^7.10.4"
- "@babel/runtime" "^7.12.5"
- "@types/aria-query" "^5.0.1"
- aria-query "5.1.3"
- chalk "^4.1.0"
- dom-accessibility-api "^0.5.9"
- lz-string "^1.5.0"
- pretty-format "^27.0.2"
-
-"@testing-library/jest-dom@^6.4.2":
- version "6.4.5"
- resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-6.4.5.tgz#badb40296477149136dabef32b572ddd3b56adf1"
- integrity sha512-AguB9yvTXmCnySBP1lWjfNNUwpbElsaQ567lt2VdGqAdHtpieLgjmcVyv1q7PMIvLbgpDdkWV5Ydv3FEejyp2A==
- dependencies:
- "@adobe/css-tools" "^4.3.2"
- "@babel/runtime" "^7.9.2"
- aria-query "^5.0.0"
- chalk "^3.0.0"
- css.escape "^1.5.1"
- dom-accessibility-api "^0.6.3"
- lodash "^4.17.21"
- redent "^3.0.0"
-
-"@testing-library/react@^14.2.1":
- version "14.3.1"
- resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-14.3.1.tgz#29513fc3770d6fb75245c4e1245c470e4ffdd830"
- integrity sha512-H99XjUhWQw0lTgyMN05W3xQG1Nh4lq574D8keFf1dDoNTJgp66VbJozRaczoF+wsiaPJNt/TcnfpLGufGxSrZQ==
- dependencies:
- "@babel/runtime" "^7.12.5"
- "@testing-library/dom" "^9.0.0"
- "@types/react-dom" "^18.0.0"
-
-"@tootallnate/once@2":
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf"
- integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==
-
-"@tsconfig/node10@^1.0.7":
- version "1.0.11"
- resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.11.tgz#6ee46400685f130e278128c7b38b7e031ff5b2f2"
- integrity sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==
-
-"@tsconfig/node12@^1.0.7":
- version "1.0.11"
- resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d"
- integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==
-
-"@tsconfig/node14@^1.0.0":
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1"
- integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==
-
-"@tsconfig/node16@^1.0.2":
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9"
- integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==
-
-"@types/aria-query@^5.0.1":
- version "5.0.4"
- resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.4.tgz#1a31c3d378850d2778dabb6374d036dcba4ba708"
- integrity sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==
-
-"@types/babel__core@^7.1.14":
- version "7.20.5"
- resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017"
- integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==
- dependencies:
- "@babel/parser" "^7.20.7"
- "@babel/types" "^7.20.7"
- "@types/babel__generator" "*"
- "@types/babel__template" "*"
- "@types/babel__traverse" "*"
-
-"@types/babel__generator@*":
- version "7.6.8"
- resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.8.tgz#f836c61f48b1346e7d2b0d93c6dacc5b9535d3ab"
- integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==
- dependencies:
- "@babel/types" "^7.0.0"
-
-"@types/babel__template@*":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f"
- integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==
- dependencies:
- "@babel/parser" "^7.1.0"
- "@babel/types" "^7.0.0"
-
-"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6":
- version "7.20.6"
- resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.6.tgz#8dc9f0ae0f202c08d8d4dab648912c8d6038e3f7"
- integrity sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==
- dependencies:
- "@babel/types" "^7.20.7"
-
-"@types/canvas-confetti@1.4.0":
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/@types/canvas-confetti/-/canvas-confetti-1.4.0.tgz#22127a1a9ed9d456e626d6e2b9a4d3b0a240e18b"
- integrity sha512-Neq4mvVecrHmTdyo98EY5bnKCjkZGQ6Ma7VyOrxIcMHEZPmt4kfquccqfBMrpNrdryMHgk3oGQi7XtpZacltnw==
-
-"@types/graceful-fs@^4.1.3":
- version "4.1.9"
- resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4"
- integrity sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==
- dependencies:
- "@types/node" "*"
-
-"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1":
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7"
- integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==
-
-"@types/istanbul-lib-report@*":
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf"
- integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==
- dependencies:
- "@types/istanbul-lib-coverage" "*"
-
-"@types/istanbul-reports@^3.0.0":
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54"
- integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==
- dependencies:
- "@types/istanbul-lib-report" "*"
-
-"@types/jest@^29.5.12":
- version "29.5.12"
- resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.12.tgz#7f7dc6eb4cf246d2474ed78744b05d06ce025544"
- integrity sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==
- dependencies:
- expect "^29.0.0"
- pretty-format "^29.0.0"
-
-"@types/jsdom@^20.0.0":
- version "20.0.1"
- resolved "https://registry.yarnpkg.com/@types/jsdom/-/jsdom-20.0.1.tgz#07c14bc19bd2f918c1929541cdaacae894744808"
- integrity sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==
- dependencies:
- "@types/node" "*"
- "@types/tough-cookie" "*"
- parse5 "^7.0.0"
-
-"@types/json-schema@^7.0.9":
- version "7.0.15"
- resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
- integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
-
-"@types/json5@^0.0.29":
- version "0.0.29"
- resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee"
- integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==
-
-"@types/lodash@^4.14.202":
- version "4.17.4"
- resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.4.tgz#0303b64958ee070059e3a7184048a55159fe20b7"
- integrity sha512-wYCP26ZLxaT3R39kiN2+HcJ4kTd3U1waI/cY7ivWYqFP6pW3ZNpvi6Wd6PHZx7T/t8z0vlkXMg3QYLa7DZ/IJQ==
-
-"@types/node@*":
- version "20.12.12"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-20.12.12.tgz#7cbecdf902085cec634fdb362172dfe12b8f2050"
- integrity sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==
- dependencies:
- undici-types "~5.26.4"
-
-"@types/node@20.14.10":
- version "20.14.10"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.10.tgz#a1a218290f1b6428682e3af044785e5874db469a"
- integrity sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==
- dependencies:
- undici-types "~5.26.4"
-
-"@types/prop-types@*":
- version "15.7.12"
- resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.12.tgz#12bb1e2be27293c1406acb6af1c3f3a1481d98c6"
- integrity sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==
-
-"@types/react-dom@^18", "@types/react-dom@^18.0.0":
- version "18.3.0"
- resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.3.0.tgz#0cbc818755d87066ab6ca74fbedb2547d74a82b0"
- integrity sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==
- dependencies:
- "@types/react" "*"
-
-"@types/react@*", "@types/react@18.3.3":
- version "18.3.3"
- resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.3.tgz#9679020895318b0915d7a3ab004d92d33375c45f"
- integrity sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==
- dependencies:
- "@types/prop-types" "*"
- csstype "^3.0.2"
-
-"@types/semver@^7.3.12":
- version "7.5.8"
- resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e"
- integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==
-
-"@types/stack-utils@^2.0.0":
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8"
- integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==
-
-"@types/stylis@4.2.5":
- version "4.2.5"
- resolved "https://registry.yarnpkg.com/@types/stylis/-/stylis-4.2.5.tgz#1daa6456f40959d06157698a653a9ab0a70281df"
- integrity sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==
-
-"@types/tough-cookie@*":
- version "4.0.5"
- resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.5.tgz#cb6e2a691b70cb177c6e3ae9c1d2e8b2ea8cd304"
- integrity sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==
-
-"@types/yargs-parser@*":
- version "21.0.3"
- resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15"
- integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==
-
-"@types/yargs@^17.0.8":
- version "17.0.32"
- resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.32.tgz#030774723a2f7faafebf645f4e5a48371dca6229"
- integrity sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==
- dependencies:
- "@types/yargs-parser" "*"
-
-"@typescript-eslint/eslint-plugin@^7.0.1":
- version "7.10.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.10.0.tgz#07854a236f107bb45cbf4f62b89474cbea617f50"
- integrity sha512-PzCr+a/KAef5ZawX7nbyNwBDtM1HdLIT53aSA2DDlxmxMngZ43O8SIePOeX8H5S+FHXeI6t97mTt/dDdzY4Fyw==
- dependencies:
- "@eslint-community/regexpp" "^4.10.0"
- "@typescript-eslint/scope-manager" "7.10.0"
- "@typescript-eslint/type-utils" "7.10.0"
- "@typescript-eslint/utils" "7.10.0"
- "@typescript-eslint/visitor-keys" "7.10.0"
- graphemer "^1.4.0"
- ignore "^5.3.1"
- natural-compare "^1.4.0"
- ts-api-utils "^1.3.0"
-
-"@typescript-eslint/parser@^5.4.2 || ^6.0.0":
- version "6.21.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.21.0.tgz#af8fcf66feee2edc86bc5d1cf45e33b0630bf35b"
- integrity sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==
- dependencies:
- "@typescript-eslint/scope-manager" "6.21.0"
- "@typescript-eslint/types" "6.21.0"
- "@typescript-eslint/typescript-estree" "6.21.0"
- "@typescript-eslint/visitor-keys" "6.21.0"
- debug "^4.3.4"
-
-"@typescript-eslint/parser@^7.0.1":
- version "7.10.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.10.0.tgz#e6ac1cba7bc0400a4459e7eb5b23115bd71accfb"
- integrity sha512-2EjZMA0LUW5V5tGQiaa2Gys+nKdfrn2xiTIBLR4fxmPmVSvgPcKNW+AE/ln9k0A4zDUti0J/GZXMDupQoI+e1w==
- dependencies:
- "@typescript-eslint/scope-manager" "7.10.0"
- "@typescript-eslint/types" "7.10.0"
- "@typescript-eslint/typescript-estree" "7.10.0"
- "@typescript-eslint/visitor-keys" "7.10.0"
- debug "^4.3.4"
-
-"@typescript-eslint/scope-manager@5.62.0":
- version "5.62.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz#d9457ccc6a0b8d6b37d0eb252a23022478c5460c"
- integrity sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==
- dependencies:
- "@typescript-eslint/types" "5.62.0"
- "@typescript-eslint/visitor-keys" "5.62.0"
-
-"@typescript-eslint/scope-manager@6.21.0":
- version "6.21.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz#ea8a9bfc8f1504a6ac5d59a6df308d3a0630a2b1"
- integrity sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==
- dependencies:
- "@typescript-eslint/types" "6.21.0"
- "@typescript-eslint/visitor-keys" "6.21.0"
-
-"@typescript-eslint/scope-manager@7.10.0":
- version "7.10.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.10.0.tgz#054a27b1090199337a39cf755f83d9f2ce26546b"
- integrity sha512-7L01/K8W/VGl7noe2mgH0K7BE29Sq6KAbVmxurj8GGaPDZXPr8EEQ2seOeAS+mEV9DnzxBQB6ax6qQQ5C6P4xg==
- dependencies:
- "@typescript-eslint/types" "7.10.0"
- "@typescript-eslint/visitor-keys" "7.10.0"
-
-"@typescript-eslint/type-utils@7.10.0":
- version "7.10.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-7.10.0.tgz#8a75accce851d0a331aa9331268ef64e9b300270"
- integrity sha512-D7tS4WDkJWrVkuzgm90qYw9RdgBcrWmbbRkrLA4d7Pg3w0ttVGDsvYGV19SH8gPR5L7OtcN5J1hTtyenO9xE9g==
- dependencies:
- "@typescript-eslint/typescript-estree" "7.10.0"
- "@typescript-eslint/utils" "7.10.0"
- debug "^4.3.4"
- ts-api-utils "^1.3.0"
-
-"@typescript-eslint/types@5.62.0":
- version "5.62.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f"
- integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==
-
-"@typescript-eslint/types@6.21.0":
- version "6.21.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.21.0.tgz#205724c5123a8fef7ecd195075fa6e85bac3436d"
- integrity sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==
-
-"@typescript-eslint/types@7.10.0":
- version "7.10.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.10.0.tgz#da92309c97932a3a033762fd5faa8b067de84e3b"
- integrity sha512-7fNj+Ya35aNyhuqrA1E/VayQX9Elwr8NKZ4WueClR3KwJ7Xx9jcCdOrLW04h51de/+gNbyFMs+IDxh5xIwfbNg==
-
-"@typescript-eslint/typescript-estree@5.62.0":
- version "5.62.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b"
- integrity sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==
- dependencies:
- "@typescript-eslint/types" "5.62.0"
- "@typescript-eslint/visitor-keys" "5.62.0"
- debug "^4.3.4"
- globby "^11.1.0"
- is-glob "^4.0.3"
- semver "^7.3.7"
- tsutils "^3.21.0"
-
-"@typescript-eslint/typescript-estree@6.21.0":
- version "6.21.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz#c47ae7901db3b8bddc3ecd73daff2d0895688c46"
- integrity sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==
- dependencies:
- "@typescript-eslint/types" "6.21.0"
- "@typescript-eslint/visitor-keys" "6.21.0"
- debug "^4.3.4"
- globby "^11.1.0"
- is-glob "^4.0.3"
- minimatch "9.0.3"
- semver "^7.5.4"
- ts-api-utils "^1.0.1"
-
-"@typescript-eslint/typescript-estree@7.10.0":
- version "7.10.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.10.0.tgz#6dcdc5de3149916a6a599fa89dde5c471b88b8bb"
- integrity sha512-LXFnQJjL9XIcxeVfqmNj60YhatpRLt6UhdlFwAkjNc6jSUlK8zQOl1oktAP8PlWFzPQC1jny/8Bai3/HPuvN5g==
- dependencies:
- "@typescript-eslint/types" "7.10.0"
- "@typescript-eslint/visitor-keys" "7.10.0"
- debug "^4.3.4"
- globby "^11.1.0"
- is-glob "^4.0.3"
- minimatch "^9.0.4"
- semver "^7.6.0"
- ts-api-utils "^1.3.0"
-
-"@typescript-eslint/utils@7.10.0":
- version "7.10.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-7.10.0.tgz#8ee43e5608c9f439524eaaea8de5b358b15c51b3"
- integrity sha512-olzif1Fuo8R8m/qKkzJqT7qwy16CzPRWBvERS0uvyc+DHd8AKbO4Jb7kpAvVzMmZm8TrHnI7hvjN4I05zow+tg==
- dependencies:
- "@eslint-community/eslint-utils" "^4.4.0"
- "@typescript-eslint/scope-manager" "7.10.0"
- "@typescript-eslint/types" "7.10.0"
- "@typescript-eslint/typescript-estree" "7.10.0"
-
-"@typescript-eslint/utils@^5.10.0":
- version "5.62.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86"
- integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==
- dependencies:
- "@eslint-community/eslint-utils" "^4.2.0"
- "@types/json-schema" "^7.0.9"
- "@types/semver" "^7.3.12"
- "@typescript-eslint/scope-manager" "5.62.0"
- "@typescript-eslint/types" "5.62.0"
- "@typescript-eslint/typescript-estree" "5.62.0"
- eslint-scope "^5.1.1"
- semver "^7.3.7"
-
-"@typescript-eslint/visitor-keys@5.62.0":
- version "5.62.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e"
- integrity sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==
- dependencies:
- "@typescript-eslint/types" "5.62.0"
- eslint-visitor-keys "^3.3.0"
-
-"@typescript-eslint/visitor-keys@6.21.0":
- version "6.21.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz#87a99d077aa507e20e238b11d56cc26ade45fe47"
- integrity sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==
- dependencies:
- "@typescript-eslint/types" "6.21.0"
- eslint-visitor-keys "^3.4.1"
-
-"@typescript-eslint/visitor-keys@7.10.0":
- version "7.10.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.10.0.tgz#2af2e91e73a75dd6b70b4486c48ae9d38a485a78"
- integrity sha512-9ntIVgsi6gg6FIq9xjEO4VQJvwOqA3jaBFQJ/6TK5AvEup2+cECI6Fh7QiBxmfMHXU0V0J4RyPeOU1VDNzl9cg==
- dependencies:
- "@typescript-eslint/types" "7.10.0"
- eslint-visitor-keys "^3.4.3"
-
-"@ungap/structured-clone@^1.2.0":
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406"
- integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==
-
-abab@^2.0.6:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291"
- integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==
-
-acorn-globals@^7.0.0:
- version "7.0.1"
- resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-7.0.1.tgz#0dbf05c44fa7c94332914c02066d5beff62c40c3"
- integrity sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==
- dependencies:
- acorn "^8.1.0"
- acorn-walk "^8.0.2"
-
-acorn-jsx@^5.3.2:
- version "5.3.2"
- resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
- integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
-
-acorn-walk@^8.0.2, acorn-walk@^8.1.1:
- version "8.3.2"
- resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.2.tgz#7703af9415f1b6db9315d6895503862e231d34aa"
- integrity sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==
-
-acorn@^8.1.0, acorn@^8.4.1, acorn@^8.8.1, acorn@^8.9.0:
- version "8.11.3"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a"
- integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==
-
-aes-js@3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d"
- integrity sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==
-
-agent-base@6:
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77"
- integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==
- dependencies:
- debug "4"
-
-ajv@^6.12.4:
- version "6.12.6"
- 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"
- fast-json-stable-stringify "^2.0.0"
- json-schema-traverse "^0.4.1"
- uri-js "^4.2.2"
-
-ansi-escapes@^4.2.1:
- version "4.3.2"
- resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e"
- integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==
- dependencies:
- type-fest "^0.21.3"
-
-ansi-regex@^5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
- integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
-
-ansi-regex@^6.0.1:
- version "6.0.1"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a"
- integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==
-
-ansi-styles@^3.2.1:
- version "3.2.1"
- 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.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
- integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
- dependencies:
- color-convert "^2.0.1"
-
-ansi-styles@^5.0.0:
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b"
- integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==
-
-ansi-styles@^6.1.0:
- version "6.2.1"
- resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5"
- integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==
-
-antd@^5.14.0:
- version "5.17.3"
- resolved "https://registry.yarnpkg.com/antd/-/antd-5.17.3.tgz#c969755335cdef6fa671152602b7100557bff80c"
- integrity sha512-U99hyy7t8dOQtNHzHifmwAXJLgmPMadavFBsd2mnfICD6m8l7u/NvCefRhd2jOf/SBNE2579YhwCEwTUiX2GnQ==
- dependencies:
- "@ant-design/colors" "^7.0.2"
- "@ant-design/cssinjs" "^1.19.1"
- "@ant-design/icons" "^5.3.7"
- "@ant-design/react-slick" "~1.1.2"
- "@babel/runtime" "^7.24.5"
- "@ctrl/tinycolor" "^3.6.1"
- "@rc-component/color-picker" "~1.5.3"
- "@rc-component/mutate-observer" "^1.1.0"
- "@rc-component/tour" "~1.15.0"
- "@rc-component/trigger" "^2.1.1"
- classnames "^2.5.1"
- copy-to-clipboard "^3.3.3"
- dayjs "^1.11.10"
- qrcode.react "^3.1.0"
- rc-cascader "~3.26.0"
- rc-checkbox "~3.3.0"
- rc-collapse "~3.7.3"
- rc-dialog "~9.4.0"
- rc-drawer "~7.1.0"
- rc-dropdown "~4.2.0"
- rc-field-form "~2.0.1"
- rc-image "~7.6.0"
- rc-input "~1.5.0"
- rc-input-number "~9.1.0"
- rc-mentions "~2.13.1"
- rc-menu "~9.14.0"
- rc-motion "^2.9.1"
- rc-notification "~5.4.0"
- rc-pagination "~4.0.4"
- rc-picker "~4.5.0"
- rc-progress "~4.0.0"
- rc-rate "~2.12.0"
- rc-resize-observer "^1.4.0"
- rc-segmented "~2.3.0"
- rc-select "~14.14.0"
- rc-slider "~10.6.2"
- rc-steps "~6.0.1"
- rc-switch "~4.1.0"
- rc-table "~7.45.6"
- rc-tabs "~15.1.0"
- rc-textarea "~1.7.0"
- rc-tooltip "~6.2.0"
- rc-tree "~5.8.7"
- rc-tree-select "~5.21.0"
- rc-upload "~4.5.2"
- rc-util "^5.40.1"
- scroll-into-view-if-needed "^3.1.0"
- throttle-debounce "^5.0.0"
-
-anymatch@^3.0.3, anymatch@~3.1.2:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e"
- integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==
- dependencies:
- normalize-path "^3.0.0"
- picomatch "^2.0.4"
-
-arg@^4.1.0:
- version "4.1.3"
- resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
- integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==
-
-argparse@^1.0.7:
- version "1.0.10"
- 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.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
- integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
-
-aria-query@5.1.3:
- version "5.1.3"
- resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e"
- integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==
- dependencies:
- deep-equal "^2.0.5"
-
-aria-query@^5.0.0, aria-query@^5.3.0:
- version "5.3.0"
- resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e"
- integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==
- dependencies:
- dequal "^2.0.3"
-
-array-buffer-byte-length@^1.0.0, array-buffer-byte-length@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f"
- integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==
- dependencies:
- call-bind "^1.0.5"
- is-array-buffer "^3.0.4"
-
-array-includes@^3.1.6, array-includes@^3.1.7:
- version "3.1.8"
- resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.8.tgz#5e370cbe172fdd5dd6530c1d4aadda25281ba97d"
- integrity sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==
- dependencies:
- call-bind "^1.0.7"
- define-properties "^1.2.1"
- es-abstract "^1.23.2"
- es-object-atoms "^1.0.0"
- get-intrinsic "^1.2.4"
- is-string "^1.0.7"
-
-array-tree-filter@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/array-tree-filter/-/array-tree-filter-2.1.0.tgz#873ac00fec83749f255ac8dd083814b4f6329190"
- integrity sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==
-
-array-union@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
- integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
-
-array.prototype.findlast@^1.2.4:
- version "1.2.5"
- resolved "https://registry.yarnpkg.com/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz#3e4fbcb30a15a7f5bf64cf2faae22d139c2e4904"
- integrity sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==
- dependencies:
- call-bind "^1.0.7"
- define-properties "^1.2.1"
- es-abstract "^1.23.2"
- es-errors "^1.3.0"
- es-object-atoms "^1.0.0"
- es-shim-unscopables "^1.0.2"
-
-array.prototype.findlastindex@^1.2.3:
- version "1.2.5"
- resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz#8c35a755c72908719453f87145ca011e39334d0d"
- integrity sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==
- dependencies:
- call-bind "^1.0.7"
- define-properties "^1.2.1"
- es-abstract "^1.23.2"
- es-errors "^1.3.0"
- es-object-atoms "^1.0.0"
- es-shim-unscopables "^1.0.2"
-
-array.prototype.flat@^1.3.1, array.prototype.flat@^1.3.2:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18"
- integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.2.0"
- es-abstract "^1.22.1"
- es-shim-unscopables "^1.0.0"
-
-array.prototype.flatmap@^1.3.2:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527"
- integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.2.0"
- es-abstract "^1.22.1"
- es-shim-unscopables "^1.0.0"
-
-array.prototype.toreversed@^1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz#b989a6bf35c4c5051e1dc0325151bf8088954eba"
- integrity sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.2.0"
- es-abstract "^1.22.1"
- es-shim-unscopables "^1.0.0"
-
-array.prototype.tosorted@^1.1.3:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.3.tgz#c8c89348337e51b8a3c48a9227f9ce93ceedcba8"
- integrity sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==
- dependencies:
- call-bind "^1.0.5"
- define-properties "^1.2.1"
- es-abstract "^1.22.3"
- es-errors "^1.1.0"
- es-shim-unscopables "^1.0.2"
-
-arraybuffer.prototype.slice@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6"
- integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==
- dependencies:
- array-buffer-byte-length "^1.0.1"
- call-bind "^1.0.5"
- define-properties "^1.2.1"
- es-abstract "^1.22.3"
- es-errors "^1.2.1"
- get-intrinsic "^1.2.3"
- is-array-buffer "^3.0.4"
- is-shared-array-buffer "^1.0.2"
-
-ast-types-flow@^0.0.8:
- version "0.0.8"
- resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.8.tgz#0a85e1c92695769ac13a428bb653e7538bea27d6"
- integrity sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==
-
-asynckit@^0.4.0:
- version "0.4.0"
- resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
- integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
-
-available-typed-arrays@^1.0.7:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846"
- integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==
- dependencies:
- possible-typed-array-names "^1.0.0"
-
-axe-core@=4.7.0:
- version "4.7.0"
- resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.7.0.tgz#34ba5a48a8b564f67e103f0aa5768d76e15bbbbf"
- integrity sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==
-
-axobject-query@^3.2.1:
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.2.1.tgz#39c378a6e3b06ca679f29138151e45b2b32da62a"
- integrity sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==
- dependencies:
- dequal "^2.0.3"
-
-babel-jest@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.7.0.tgz#f4369919225b684c56085998ac63dbd05be020d5"
- integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==
- dependencies:
- "@jest/transform" "^29.7.0"
- "@types/babel__core" "^7.1.14"
- babel-plugin-istanbul "^6.1.1"
- babel-preset-jest "^29.6.3"
- chalk "^4.0.0"
- graceful-fs "^4.2.9"
- slash "^3.0.0"
-
-babel-plugin-istanbul@^6.1.1:
- version "6.1.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73"
- integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
- "@istanbuljs/load-nyc-config" "^1.0.0"
- "@istanbuljs/schema" "^0.1.2"
- istanbul-lib-instrument "^5.0.4"
- test-exclude "^6.0.0"
-
-babel-plugin-jest-hoist@^29.6.3:
- version "29.6.3"
- resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz#aadbe943464182a8922c3c927c3067ff40d24626"
- integrity sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==
- dependencies:
- "@babel/template" "^7.3.3"
- "@babel/types" "^7.3.3"
- "@types/babel__core" "^7.1.14"
- "@types/babel__traverse" "^7.0.6"
-
-babel-preset-current-node-syntax@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b"
- integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==
- dependencies:
- "@babel/plugin-syntax-async-generators" "^7.8.4"
- "@babel/plugin-syntax-bigint" "^7.8.3"
- "@babel/plugin-syntax-class-properties" "^7.8.3"
- "@babel/plugin-syntax-import-meta" "^7.8.3"
- "@babel/plugin-syntax-json-strings" "^7.8.3"
- "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3"
- "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
- "@babel/plugin-syntax-numeric-separator" "^7.8.3"
- "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
- "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
- "@babel/plugin-syntax-optional-chaining" "^7.8.3"
- "@babel/plugin-syntax-top-level-await" "^7.8.3"
-
-babel-preset-jest@^29.6.3:
- version "29.6.3"
- resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz#fa05fa510e7d493896d7b0dd2033601c840f171c"
- integrity sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==
- dependencies:
- babel-plugin-jest-hoist "^29.6.3"
- babel-preset-current-node-syntax "^1.0.0"
-
-balanced-match@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
- integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
-
-bech32@1.1.4:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9"
- integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==
-
-binary-extensions@^2.0.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522"
- integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==
-
-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==
-
-bn.js@^5.2.1:
- version "5.2.1"
- resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70"
- integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==
-
-brace-expansion@^1.1.7:
- version "1.1.11"
- 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@^3.0.3, braces@~3.0.2:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789"
- integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
- dependencies:
- fill-range "^7.1.1"
-
-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.22.2:
- version "4.23.0"
- resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.0.tgz#8f3acc2bbe73af7213399430890f86c63a5674ab"
- integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==
- dependencies:
- caniuse-lite "^1.0.30001587"
- electron-to-chromium "^1.4.668"
- node-releases "^2.0.14"
- update-browserslist-db "^1.0.13"
-
-bser@2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05"
- integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==
- dependencies:
- node-int64 "^0.4.0"
-
-buffer-from@^1.0.0:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
- integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
-
-busboy@1.6.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893"
- integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==
- dependencies:
- streamsearch "^1.1.0"
-
-call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9"
- integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==
- dependencies:
- es-define-property "^1.0.0"
- es-errors "^1.3.0"
- function-bind "^1.1.2"
- get-intrinsic "^1.2.4"
- set-function-length "^1.2.1"
-
-callsites@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
- integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
-
-camelcase@^5.3.1:
- version "5.3.1"
- 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.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
- integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
-
-camelize@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.1.tgz#89b7e16884056331a35d6b5ad064332c91daa6c3"
- integrity sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==
-
-caniuse-lite@^1.0.30001579, caniuse-lite@^1.0.30001587:
- version "1.0.30001621"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001621.tgz#4adcb443c8b9c8303e04498318f987616b8fea2e"
- integrity sha512-+NLXZiviFFKX0fk8Piwv3PfLPGtRqJeq2TiNoUff/qB5KJgwecJTvCXDpmlyP/eCI/GUEmp/h/y5j0yckiiZrA==
-
-canvas-confetti@1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/canvas-confetti/-/canvas-confetti-1.4.0.tgz#840f6db4a566f8f32abe28c00dcd82acf39c92bd"
- integrity sha512-S18o4Y9PqI/uabdlT/jI3MY7XBJjNxnfapFIkjkMwpz6qNxLFZOm2b22OMf4ZYDL9lpNWI+Ih4fEMVPwO1KHFQ==
-
-chalk@^2.4.2:
- version "2.4.2"
- 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"
- escape-string-regexp "^1.0.5"
- supports-color "^5.3.0"
-
-chalk@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4"
- integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==
- dependencies:
- ansi-styles "^4.1.0"
- supports-color "^7.1.0"
-
-chalk@^4.0.0, chalk@^4.1.0:
- version "4.1.2"
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
- integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
- dependencies:
- ansi-styles "^4.1.0"
- supports-color "^7.1.0"
-
-char-regex@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf"
- integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==
-
-"chokidar@>=3.0.0 <4.0.0":
- version "3.6.0"
- resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b"
- integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==
- dependencies:
- anymatch "~3.1.2"
- braces "~3.0.2"
- glob-parent "~5.1.2"
- is-binary-path "~2.1.0"
- is-glob "~4.0.1"
- normalize-path "~3.0.0"
- readdirp "~3.6.0"
- optionalDependencies:
- fsevents "~2.3.2"
-
-ci-info@^3.2.0:
- version "3.9.0"
- resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4"
- integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==
-
-cjs-module-lexer@^1.0.0:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz#c485341ae8fd999ca4ee5af2d7a1c9ae01e0099c"
- integrity sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==
-
-classnames@2.x, classnames@^2.2.1, classnames@^2.2.3, classnames@^2.2.5, classnames@^2.2.6, classnames@^2.3.1, classnames@^2.3.2, classnames@^2.5.1:
- version "2.5.1"
- resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.5.1.tgz#ba774c614be0f016da105c858e7159eae8e7687b"
- integrity sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==
-
-client-only@0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/client-only/-/client-only-0.0.1.tgz#38bba5d403c41ab150bff64a95c85013cf73bca1"
- integrity sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==
-
-cliui@^8.0.1:
- version "8.0.1"
- resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa"
- integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==
- dependencies:
- string-width "^4.2.0"
- strip-ansi "^6.0.1"
- wrap-ansi "^7.0.0"
-
-co@^4.6.0:
- version "4.6.0"
- resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
- integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==
-
-collect-v8-coverage@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz#c0b29bcd33bcd0779a1344c2136051e6afd3d9e9"
- integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==
-
-color-convert@^1.9.0:
- version "1.9.3"
- 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.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.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.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
- integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
-
-combined-stream@^1.0.8:
- version "1.0.8"
- 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"
-
-compute-scroll-into-view@^3.0.2:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-3.1.0.tgz#753f11d972596558d8fe7c6bcbc8497690ab4c87"
- integrity sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg==
-
-concat-map@0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
- integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
-
-convert-source-map@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a"
- integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==
-
-copy-to-clipboard@^3.3.3:
- version "3.3.3"
- resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz#55ac43a1db8ae639a4bd99511c148cdd1b83a1b0"
- integrity sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==
- dependencies:
- toggle-selection "^1.0.6"
-
-create-jest@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/create-jest/-/create-jest-29.7.0.tgz#a355c5b3cb1e1af02ba177fe7afd7feee49a5320"
- integrity sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==
- dependencies:
- "@jest/types" "^29.6.3"
- chalk "^4.0.0"
- exit "^0.1.2"
- graceful-fs "^4.2.9"
- jest-config "^29.7.0"
- jest-util "^29.7.0"
- prompts "^2.0.1"
-
-create-require@^1.1.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"
- integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==
-
-cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3:
- version "7.0.3"
- resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
- integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
- dependencies:
- path-key "^3.1.0"
- shebang-command "^2.0.0"
- which "^2.0.1"
-
-css-color-keywords@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05"
- integrity sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==
-
-css-to-react-native@3.2.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-3.2.0.tgz#cdd8099f71024e149e4f6fe17a7d46ecd55f1e32"
- integrity sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==
- dependencies:
- camelize "^1.0.0"
- css-color-keywords "^1.0.0"
- postcss-value-parser "^4.0.2"
-
-css.escape@^1.5.1:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb"
- integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==
-
-cssom@^0.5.0:
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.5.0.tgz#d254fa92cd8b6fbd83811b9fbaed34663cc17c36"
- integrity sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==
-
-cssom@~0.3.6:
- version "0.3.8"
- resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a"
- integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==
-
-cssstyle@^2.3.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852"
- integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==
- dependencies:
- cssom "~0.3.6"
-
-csstype@3.1.3, csstype@^3.0.2, csstype@^3.1.3:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81"
- integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==
-
-damerau-levenshtein@^1.0.8:
- version "1.0.8"
- resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7"
- integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==
-
-data-urls@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-3.0.2.tgz#9cf24a477ae22bcef5cd5f6f0bfbc1d2d3be9143"
- integrity sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==
- dependencies:
- abab "^2.0.6"
- whatwg-mimetype "^3.0.0"
- whatwg-url "^11.0.0"
-
-data-view-buffer@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.1.tgz#8ea6326efec17a2e42620696e671d7d5a8bc66b2"
- integrity sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==
- dependencies:
- call-bind "^1.0.6"
- es-errors "^1.3.0"
- is-data-view "^1.0.1"
-
-data-view-byte-length@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz#90721ca95ff280677eb793749fce1011347669e2"
- integrity sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==
- dependencies:
- call-bind "^1.0.7"
- es-errors "^1.3.0"
- is-data-view "^1.0.1"
-
-data-view-byte-offset@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz#5e0bbfb4828ed2d1b9b400cd8a7d119bca0ff18a"
- integrity sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==
- dependencies:
- call-bind "^1.0.6"
- es-errors "^1.3.0"
- is-data-view "^1.0.1"
-
-dayjs@^1.11.10:
- version "1.11.11"
- resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.11.tgz#dfe0e9d54c5f8b68ccf8ca5f72ac603e7e5ed59e"
- integrity sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==
-
-debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4:
- version "4.3.4"
- resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
- integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
- dependencies:
- ms "2.1.2"
-
-debug@^3.2.7:
- version "3.2.7"
- resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
- integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
- dependencies:
- ms "^2.1.1"
-
-decimal.js@^10.4.2:
- version "10.4.3"
- resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23"
- integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==
-
-dedent@^1.0.0:
- version "1.5.3"
- resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.3.tgz#99aee19eb9bae55a67327717b6e848d0bf777e5a"
- integrity sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==
-
-deep-equal@^2.0.5:
- version "2.2.3"
- resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.3.tgz#af89dafb23a396c7da3e862abc0be27cf51d56e1"
- integrity sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==
- dependencies:
- array-buffer-byte-length "^1.0.0"
- call-bind "^1.0.5"
- es-get-iterator "^1.1.3"
- get-intrinsic "^1.2.2"
- is-arguments "^1.1.1"
- is-array-buffer "^3.0.2"
- is-date-object "^1.0.5"
- is-regex "^1.1.4"
- is-shared-array-buffer "^1.0.2"
- isarray "^2.0.5"
- object-is "^1.1.5"
- object-keys "^1.1.1"
- object.assign "^4.1.4"
- regexp.prototype.flags "^1.5.1"
- side-channel "^1.0.4"
- which-boxed-primitive "^1.0.2"
- which-collection "^1.0.1"
- which-typed-array "^1.1.13"
-
-deep-is@^0.1.3:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
- integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
-
-deepmerge@^4.2.2:
- version "4.3.1"
- resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a"
- integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==
-
-define-data-property@^1.0.1, define-data-property@^1.1.4:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e"
- integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==
- dependencies:
- es-define-property "^1.0.0"
- es-errors "^1.3.0"
- gopd "^1.0.1"
-
-define-properties@^1.2.0, define-properties@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c"
- integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==
- dependencies:
- define-data-property "^1.0.1"
- has-property-descriptors "^1.0.0"
- object-keys "^1.1.1"
-
-delayed-stream@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
- integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
-
-dequal@^2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be"
- integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==
-
-detect-newline@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651"
- integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==
-
-diff-sequences@^29.6.3:
- version "29.6.3"
- resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921"
- integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==
-
-diff@^4.0.1:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
- integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
-
-dir-glob@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
- integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
- dependencies:
- path-type "^4.0.0"
-
-doctrine@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d"
- integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==
- dependencies:
- esutils "^2.0.2"
-
-doctrine@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
- integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
- dependencies:
- esutils "^2.0.2"
-
-dom-accessibility-api@^0.5.9:
- version "0.5.16"
- resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz#5a7429e6066eb3664d911e33fb0e45de8eb08453"
- integrity sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==
-
-dom-accessibility-api@^0.6.3:
- version "0.6.3"
- resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz#993e925cc1d73f2c662e7d75dd5a5445259a8fd8"
- integrity sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==
-
-domexception@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/domexception/-/domexception-4.0.0.tgz#4ad1be56ccadc86fc76d033353999a8037d03673"
- integrity sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==
- dependencies:
- webidl-conversions "^7.0.0"
-
-eastasianwidth@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb"
- integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
-
-electron-to-chromium@^1.4.668:
- version "1.4.780"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.780.tgz#8c6d7ff82b56b4219f2ae7918ee271ae25654f07"
- integrity sha512-NPtACGFe7vunRYzvYqVRhQvsDrTevxpgDKxG/Vcbe0BTNOY+5+/2mOXSw2ls7ToNbE5Bf/+uQbjTxcmwMozpCw==
-
-elliptic@6.5.4:
- 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"
-
-emittery@^0.13.1:
- version "0.13.1"
- resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad"
- integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==
-
-emoji-regex@^8.0.0:
- version "8.0.0"
- resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
- integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
-
-emoji-regex@^9.2.2:
- version "9.2.2"
- resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72"
- integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==
-
-enhanced-resolve@^5.12.0:
- version "5.16.1"
- resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.16.1.tgz#e8bc63d51b826d6f1cbc0a150ecb5a8b0c62e567"
- integrity sha512-4U5pNsuDl0EhuZpq46M5xPslstkviJuhrdobaRDBk2Jy2KO37FDAJl4lb2KlNabxT0m4MTK2UHNrsAcphE8nyw==
- dependencies:
- graceful-fs "^4.2.4"
- tapable "^2.2.0"
-
-entities@^4.4.0:
- version "4.5.0"
- resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48"
- integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==
-
-error-ex@^1.3.1:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
- integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
- dependencies:
- is-arrayish "^0.2.1"
-
-es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.1, es-abstract@^1.23.2, es-abstract@^1.23.3:
- version "1.23.3"
- resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.3.tgz#8f0c5a35cd215312573c5a27c87dfd6c881a0aa0"
- integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==
- dependencies:
- array-buffer-byte-length "^1.0.1"
- arraybuffer.prototype.slice "^1.0.3"
- available-typed-arrays "^1.0.7"
- call-bind "^1.0.7"
- data-view-buffer "^1.0.1"
- data-view-byte-length "^1.0.1"
- data-view-byte-offset "^1.0.0"
- es-define-property "^1.0.0"
- es-errors "^1.3.0"
- es-object-atoms "^1.0.0"
- es-set-tostringtag "^2.0.3"
- es-to-primitive "^1.2.1"
- function.prototype.name "^1.1.6"
- get-intrinsic "^1.2.4"
- get-symbol-description "^1.0.2"
- globalthis "^1.0.3"
- gopd "^1.0.1"
- has-property-descriptors "^1.0.2"
- has-proto "^1.0.3"
- has-symbols "^1.0.3"
- hasown "^2.0.2"
- internal-slot "^1.0.7"
- is-array-buffer "^3.0.4"
- is-callable "^1.2.7"
- is-data-view "^1.0.1"
- is-negative-zero "^2.0.3"
- is-regex "^1.1.4"
- is-shared-array-buffer "^1.0.3"
- is-string "^1.0.7"
- is-typed-array "^1.1.13"
- is-weakref "^1.0.2"
- object-inspect "^1.13.1"
- object-keys "^1.1.1"
- object.assign "^4.1.5"
- regexp.prototype.flags "^1.5.2"
- safe-array-concat "^1.1.2"
- safe-regex-test "^1.0.3"
- string.prototype.trim "^1.2.9"
- string.prototype.trimend "^1.0.8"
- string.prototype.trimstart "^1.0.8"
- typed-array-buffer "^1.0.2"
- typed-array-byte-length "^1.0.1"
- typed-array-byte-offset "^1.0.2"
- typed-array-length "^1.0.6"
- unbox-primitive "^1.0.2"
- which-typed-array "^1.1.15"
-
-es-define-property@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845"
- integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==
- dependencies:
- get-intrinsic "^1.2.4"
-
-es-errors@^1.1.0, es-errors@^1.2.1, es-errors@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f"
- integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
-
-es-get-iterator@^1.1.3:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6"
- integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==
- dependencies:
- call-bind "^1.0.2"
- get-intrinsic "^1.1.3"
- has-symbols "^1.0.3"
- is-arguments "^1.1.1"
- is-map "^2.0.2"
- is-set "^2.0.2"
- is-string "^1.0.7"
- isarray "^2.0.5"
- stop-iteration-iterator "^1.0.0"
-
-es-iterator-helpers@^1.0.15, es-iterator-helpers@^1.0.17:
- version "1.0.19"
- resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz#117003d0e5fec237b4b5c08aded722e0c6d50ca8"
- integrity sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==
- dependencies:
- call-bind "^1.0.7"
- define-properties "^1.2.1"
- es-abstract "^1.23.3"
- es-errors "^1.3.0"
- es-set-tostringtag "^2.0.3"
- function-bind "^1.1.2"
- get-intrinsic "^1.2.4"
- globalthis "^1.0.3"
- has-property-descriptors "^1.0.2"
- has-proto "^1.0.3"
- has-symbols "^1.0.3"
- internal-slot "^1.0.7"
- iterator.prototype "^1.1.2"
- safe-array-concat "^1.1.2"
-
-es-object-atoms@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz#ddb55cd47ac2e240701260bc2a8e31ecb643d941"
- integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==
- dependencies:
- es-errors "^1.3.0"
-
-es-set-tostringtag@^2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz#8bb60f0a440c2e4281962428438d58545af39777"
- integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==
- dependencies:
- get-intrinsic "^1.2.4"
- has-tostringtag "^1.0.2"
- hasown "^2.0.1"
-
-es-shim-unscopables@^1.0.0, es-shim-unscopables@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763"
- integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==
- dependencies:
- hasown "^2.0.0"
-
-es-to-primitive@^1.2.1:
- version "1.2.1"
- 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"
- is-date-object "^1.0.1"
- is-symbol "^1.0.2"
-
-escalade@^3.1.1, escalade@^3.1.2:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27"
- integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==
-
-escape-string-regexp@^1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
- integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
-
-escape-string-regexp@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344"
- integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==
-
-escape-string-regexp@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
- integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
-
-escodegen@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17"
- integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==
- dependencies:
- esprima "^4.0.1"
- estraverse "^5.2.0"
- esutils "^2.0.2"
- optionalDependencies:
- source-map "~0.6.1"
-
-eslint-config-next@14.1.0:
- version "14.1.0"
- resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-14.1.0.tgz#7e309d426b8afacaba3b32fdbb02ba220b6d0a97"
- integrity sha512-SBX2ed7DoRFXC6CQSLc/SbLY9Ut6HxNB2wPTcoIWjUMd7aF7O/SIE7111L8FdZ9TXsNV4pulUDnfthpyPtbFUg==
- dependencies:
- "@next/eslint-plugin-next" "14.1.0"
- "@rushstack/eslint-patch" "^1.3.3"
- "@typescript-eslint/parser" "^5.4.2 || ^6.0.0"
- eslint-import-resolver-node "^0.3.6"
- eslint-import-resolver-typescript "^3.5.2"
- eslint-plugin-import "^2.28.1"
- eslint-plugin-jsx-a11y "^6.7.1"
- eslint-plugin-react "^7.33.2"
- eslint-plugin-react-hooks "^4.5.0 || 5.0.0-canary-7118f5dd7-20230705"
-
-eslint-config-prettier@^9.1.0:
- version "9.1.0"
- resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f"
- integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==
-
-eslint-import-resolver-node@^0.3.6, eslint-import-resolver-node@^0.3.9:
- version "0.3.9"
- resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac"
- integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==
- dependencies:
- debug "^3.2.7"
- is-core-module "^2.13.0"
- resolve "^1.22.4"
-
-eslint-import-resolver-typescript@^3.5.2:
- version "3.6.1"
- resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz#7b983680edd3f1c5bce1a5829ae0bc2d57fe9efa"
- integrity sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==
- dependencies:
- debug "^4.3.4"
- enhanced-resolve "^5.12.0"
- eslint-module-utils "^2.7.4"
- fast-glob "^3.3.1"
- get-tsconfig "^4.5.0"
- is-core-module "^2.11.0"
- is-glob "^4.0.3"
-
-eslint-module-utils@^2.7.4, eslint-module-utils@^2.8.0:
- version "2.8.1"
- resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz#52f2404300c3bd33deece9d7372fb337cc1d7c34"
- integrity sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==
- dependencies:
- debug "^3.2.7"
-
-eslint-plugin-import@^2.28.1, eslint-plugin-import@^2.29.1:
- version "2.29.1"
- resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz#d45b37b5ef5901d639c15270d74d46d161150643"
- integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==
- dependencies:
- array-includes "^3.1.7"
- array.prototype.findlastindex "^1.2.3"
- array.prototype.flat "^1.3.2"
- array.prototype.flatmap "^1.3.2"
- debug "^3.2.7"
- doctrine "^2.1.0"
- eslint-import-resolver-node "^0.3.9"
- eslint-module-utils "^2.8.0"
- hasown "^2.0.0"
- is-core-module "^2.13.1"
- is-glob "^4.0.3"
- minimatch "^3.1.2"
- object.fromentries "^2.0.7"
- object.groupby "^1.0.1"
- object.values "^1.1.7"
- semver "^6.3.1"
- tsconfig-paths "^3.15.0"
-
-eslint-plugin-jest@^27.6.3:
- version "27.9.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-27.9.0.tgz#7c98a33605e1d8b8442ace092b60e9919730000b"
- integrity sha512-QIT7FH7fNmd9n4se7FFKHbsLKGQiw885Ds6Y/sxKgCZ6natwCsXdgPOADnYVxN2QrRweF0FZWbJ6S7Rsn7llug==
- dependencies:
- "@typescript-eslint/utils" "^5.10.0"
-
-eslint-plugin-jsx-a11y@^6.7.1:
- version "6.8.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz#2fa9c701d44fcd722b7c771ec322432857fcbad2"
- integrity sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==
- dependencies:
- "@babel/runtime" "^7.23.2"
- aria-query "^5.3.0"
- array-includes "^3.1.7"
- array.prototype.flatmap "^1.3.2"
- ast-types-flow "^0.0.8"
- axe-core "=4.7.0"
- axobject-query "^3.2.1"
- damerau-levenshtein "^1.0.8"
- emoji-regex "^9.2.2"
- es-iterator-helpers "^1.0.15"
- hasown "^2.0.0"
- jsx-ast-utils "^3.3.5"
- language-tags "^1.0.9"
- minimatch "^3.1.2"
- object.entries "^1.1.7"
- object.fromentries "^2.0.7"
-
-eslint-plugin-next@^0.0.0:
- version "0.0.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-next/-/eslint-plugin-next-0.0.0.tgz#f9ef680e8f68763c716ab44697c4b3cc3e0b2069"
- integrity sha512-IldNDVb6WNduggwRbYzSGZhaskUwVecJ6fhmqwX01+S1aohwAWNzU4me6y47DDzpD/g0fdayNBGxEdt9vKkUtg==
-
-eslint-plugin-prettier@^5.1.3:
- version "5.1.3"
- resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz#17cfade9e732cef32b5f5be53bd4e07afd8e67e1"
- integrity sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==
- dependencies:
- prettier-linter-helpers "^1.0.0"
- synckit "^0.8.6"
-
-"eslint-plugin-react-hooks@^4.5.0 || 5.0.0-canary-7118f5dd7-20230705":
- version "4.6.2"
- resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz#c829eb06c0e6f484b3fbb85a97e57784f328c596"
- integrity sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==
-
-eslint-plugin-react@^7.33.2:
- version "7.34.1"
- resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.34.1.tgz#6806b70c97796f5bbfb235a5d3379ece5f4da997"
- integrity sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==
- dependencies:
- array-includes "^3.1.7"
- array.prototype.findlast "^1.2.4"
- array.prototype.flatmap "^1.3.2"
- array.prototype.toreversed "^1.1.2"
- array.prototype.tosorted "^1.1.3"
- doctrine "^2.1.0"
- es-iterator-helpers "^1.0.17"
- estraverse "^5.3.0"
- jsx-ast-utils "^2.4.1 || ^3.0.0"
- minimatch "^3.1.2"
- object.entries "^1.1.7"
- object.fromentries "^2.0.7"
- object.hasown "^1.1.3"
- object.values "^1.1.7"
- prop-types "^15.8.1"
- resolve "^2.0.0-next.5"
- semver "^6.3.1"
- string.prototype.matchall "^4.0.10"
-
-eslint-plugin-simple-import-sort@^12.0.0:
- version "12.1.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-12.1.0.tgz#8186ad55474d2f5c986a2f1bf70625a981e30d05"
- integrity sha512-Y2fqAfC11TcG/WP3TrI1Gi3p3nc8XJyEOJYHyEPEGI/UAgNx6akxxlX74p7SbAQdLcgASKhj8M0GKvH3vq/+ig==
-
-eslint-plugin-unused-imports@^3.0.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-3.2.0.tgz#63a98c9ad5f622cd9f830f70bc77739f25ccfe0d"
- integrity sha512-6uXyn6xdINEpxE1MtDjxQsyXB37lfyO2yKGVVgtD7WEWQGORSOZjgrD6hBhvGv4/SO+TOlS+UnC6JppRqbuwGQ==
- dependencies:
- eslint-rule-composer "^0.3.0"
-
-eslint-rule-composer@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz#79320c927b0c5c0d3d3d2b76c8b4a488f25bbaf9"
- integrity sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==
-
-eslint-scope@^5.1.1:
- version "5.1.1"
- 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"
- estraverse "^4.1.1"
-
-eslint-scope@^7.2.2:
- version "7.2.2"
- resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f"
- integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==
- dependencies:
- esrecurse "^4.3.0"
- estraverse "^5.2.0"
-
-eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3:
- version "3.4.3"
- resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800"
- integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
-
-eslint@^8.56.0:
- version "8.57.0"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.0.tgz#c786a6fd0e0b68941aaf624596fb987089195668"
- integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==
- dependencies:
- "@eslint-community/eslint-utils" "^4.2.0"
- "@eslint-community/regexpp" "^4.6.1"
- "@eslint/eslintrc" "^2.1.4"
- "@eslint/js" "8.57.0"
- "@humanwhocodes/config-array" "^0.11.14"
- "@humanwhocodes/module-importer" "^1.0.1"
- "@nodelib/fs.walk" "^1.2.8"
- "@ungap/structured-clone" "^1.2.0"
- ajv "^6.12.4"
- chalk "^4.0.0"
- cross-spawn "^7.0.2"
- debug "^4.3.2"
- doctrine "^3.0.0"
- escape-string-regexp "^4.0.0"
- eslint-scope "^7.2.2"
- eslint-visitor-keys "^3.4.3"
- espree "^9.6.1"
- esquery "^1.4.2"
- esutils "^2.0.2"
- fast-deep-equal "^3.1.3"
- file-entry-cache "^6.0.1"
- find-up "^5.0.0"
- glob-parent "^6.0.2"
- globals "^13.19.0"
- graphemer "^1.4.0"
- ignore "^5.2.0"
- imurmurhash "^0.1.4"
- is-glob "^4.0.0"
- is-path-inside "^3.0.3"
- js-yaml "^4.1.0"
- json-stable-stringify-without-jsonify "^1.0.1"
- levn "^0.4.1"
- lodash.merge "^4.6.2"
- minimatch "^3.1.2"
- natural-compare "^1.4.0"
- optionator "^0.9.3"
- strip-ansi "^6.0.1"
- text-table "^0.2.0"
-
-espree@^9.6.0, espree@^9.6.1:
- version "9.6.1"
- resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f"
- integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==
- dependencies:
- acorn "^8.9.0"
- acorn-jsx "^5.3.2"
- eslint-visitor-keys "^3.4.1"
-
-esprima@^4.0.0, esprima@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
- integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
-
-esquery@^1.4.2:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b"
- integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==
- dependencies:
- estraverse "^5.1.0"
-
-esrecurse@^4.3.0:
- version "4.3.0"
- 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.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
- integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
-
-estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0:
- version "5.3.0"
- 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.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
- integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
-
-ethers-multicall@^0.2.3:
- version "0.2.3"
- resolved "https://registry.yarnpkg.com/ethers-multicall/-/ethers-multicall-0.2.3.tgz#872b5ad7d6b5d4d7f2960c33bf36bd46d034ac41"
- integrity sha512-RaWQuLy+HzeKOibptlc9RZ6j7bT1H6VnkdAKTHiLx2t/lpyfS2ckXHdQhhRbCaXNc1iu6CgoisgMejxKHg84tg==
- dependencies:
- ethers "^5.0.0"
-
-ethers@5.7.2, ethers@^5.0.0:
- version "5.7.2"
- resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e"
- integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==
- dependencies:
- "@ethersproject/abi" "5.7.0"
- "@ethersproject/abstract-provider" "5.7.0"
- "@ethersproject/abstract-signer" "5.7.0"
- "@ethersproject/address" "5.7.0"
- "@ethersproject/base64" "5.7.0"
- "@ethersproject/basex" "5.7.0"
- "@ethersproject/bignumber" "5.7.0"
- "@ethersproject/bytes" "5.7.0"
- "@ethersproject/constants" "5.7.0"
- "@ethersproject/contracts" "5.7.0"
- "@ethersproject/hash" "5.7.0"
- "@ethersproject/hdnode" "5.7.0"
- "@ethersproject/json-wallets" "5.7.0"
- "@ethersproject/keccak256" "5.7.0"
- "@ethersproject/logger" "5.7.0"
- "@ethersproject/networks" "5.7.1"
- "@ethersproject/pbkdf2" "5.7.0"
- "@ethersproject/properties" "5.7.0"
- "@ethersproject/providers" "5.7.2"
- "@ethersproject/random" "5.7.0"
- "@ethersproject/rlp" "5.7.0"
- "@ethersproject/sha2" "5.7.0"
- "@ethersproject/signing-key" "5.7.0"
- "@ethersproject/solidity" "5.7.0"
- "@ethersproject/strings" "5.7.0"
- "@ethersproject/transactions" "5.7.0"
- "@ethersproject/units" "5.7.0"
- "@ethersproject/wallet" "5.7.0"
- "@ethersproject/web" "5.7.1"
- "@ethersproject/wordlists" "5.7.0"
-
-execa@^5.0.0:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
- integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
- dependencies:
- cross-spawn "^7.0.3"
- get-stream "^6.0.0"
- human-signals "^2.1.0"
- is-stream "^2.0.0"
- merge-stream "^2.0.0"
- npm-run-path "^4.0.1"
- onetime "^5.1.2"
- signal-exit "^3.0.3"
- strip-final-newline "^2.0.0"
-
-exit@^0.1.2:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
- integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==
-
-expect@^29.0.0, expect@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc"
- integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==
- dependencies:
- "@jest/expect-utils" "^29.7.0"
- jest-get-type "^29.6.3"
- jest-matcher-utils "^29.7.0"
- jest-message-util "^29.7.0"
- jest-util "^29.7.0"
-
-fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
- integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
-
-fast-diff@^1.1.2:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0"
- integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==
-
-fast-glob@^3.2.9, fast-glob@^3.3.1:
- version "3.3.2"
- resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129"
- integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==
- dependencies:
- "@nodelib/fs.stat" "^2.0.2"
- "@nodelib/fs.walk" "^1.2.3"
- glob-parent "^5.1.2"
- merge2 "^1.3.0"
- micromatch "^4.0.4"
-
-fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
- integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
-
-fast-levenshtein@^2.0.6:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
- integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
-
-fastq@^1.6.0:
- version "1.17.1"
- resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47"
- integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==
- dependencies:
- reusify "^1.0.4"
-
-fb-watchman@^2.0.0:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c"
- integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==
- dependencies:
- bser "2.1.1"
-
-file-entry-cache@^6.0.1:
- version "6.0.1"
- resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027"
- integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==
- dependencies:
- flat-cache "^3.0.4"
-
-fill-range@^7.1.1:
- version "7.1.1"
- resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292"
- integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==
- dependencies:
- to-regex-range "^5.0.1"
-
-find-up@^4.0.0, find-up@^4.1.0:
- version "4.1.0"
- 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"
- path-exists "^4.0.0"
-
-find-up@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
- integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
- dependencies:
- locate-path "^6.0.0"
- path-exists "^4.0.0"
-
-flat-cache@^3.0.4:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee"
- integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==
- dependencies:
- flatted "^3.2.9"
- keyv "^4.5.3"
- rimraf "^3.0.2"
-
-flatted@^3.2.9:
- version "3.3.1"
- resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a"
- integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==
-
-for-each@^0.3.3:
- version "0.3.3"
- resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e"
- integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==
- dependencies:
- is-callable "^1.1.3"
-
-foreground-child@^3.1.0:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d"
- integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==
- dependencies:
- cross-spawn "^7.0.0"
- signal-exit "^4.0.1"
-
-form-data@^4.0.0:
- version "4.0.0"
- 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"
- combined-stream "^1.0.8"
- mime-types "^2.1.12"
-
-fs.realpath@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
- integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
-
-fsevents@^2.3.2, fsevents@~2.3.2:
- version "2.3.3"
- resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
- integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
-
-function-bind@^1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
- integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
-
-function.prototype.name@^1.1.5, function.prototype.name@^1.1.6:
- version "1.1.6"
- resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd"
- integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.2.0"
- es-abstract "^1.22.1"
- functions-have-names "^1.2.3"
-
-functions-have-names@^1.2.3:
- 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==
-
-gensync@^1.0.0-beta.2:
- version "1.0.0-beta.2"
- resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
- integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
-
-get-caller-file@^2.0.5:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
- integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
-
-get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4:
- version "1.2.4"
- resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd"
- integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==
- dependencies:
- es-errors "^1.3.0"
- function-bind "^1.1.2"
- has-proto "^1.0.1"
- has-symbols "^1.0.3"
- hasown "^2.0.0"
-
-get-package-type@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a"
- integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==
-
-get-stream@^6.0.0:
- version "6.0.1"
- resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
- integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
-
-get-symbol-description@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz#533744d5aa20aca4e079c8e5daf7fd44202821f5"
- integrity sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==
- dependencies:
- call-bind "^1.0.5"
- es-errors "^1.3.0"
- get-intrinsic "^1.2.4"
-
-get-tsconfig@^4.5.0:
- version "4.7.5"
- resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.5.tgz#5e012498579e9a6947511ed0cd403272c7acbbaf"
- integrity sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==
- dependencies:
- resolve-pkg-maps "^1.0.0"
-
-glob-parent@^5.1.2, glob-parent@~5.1.2:
- version "5.1.2"
- resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
- integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
- dependencies:
- is-glob "^4.0.1"
-
-glob-parent@^6.0.2:
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
- integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
- dependencies:
- is-glob "^4.0.3"
-
-glob@10.3.10:
- version "10.3.10"
- resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b"
- integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==
- dependencies:
- foreground-child "^3.1.0"
- jackspeak "^2.3.5"
- minimatch "^9.0.1"
- minipass "^5.0.0 || ^6.0.2 || ^7.0.0"
- path-scurry "^1.10.1"
-
-glob@^7.1.3, glob@^7.1.4:
- 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.1.1"
- once "^1.3.0"
- path-is-absolute "^1.0.0"
-
-globals@^11.1.0:
- version "11.12.0"
- resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
- integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
-
-globals@^13.19.0:
- version "13.24.0"
- resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171"
- integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==
- dependencies:
- type-fest "^0.20.2"
-
-globalthis@^1.0.3:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236"
- integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==
- dependencies:
- define-properties "^1.2.1"
- gopd "^1.0.1"
-
-globby@^11.1.0:
- version "11.1.0"
- resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b"
- integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==
- dependencies:
- array-union "^2.1.0"
- dir-glob "^3.0.1"
- fast-glob "^3.2.9"
- ignore "^5.2.0"
- merge2 "^1.4.1"
- slash "^3.0.0"
-
-gopd@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c"
- integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==
- dependencies:
- get-intrinsic "^1.1.3"
-
-graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.9:
- version "4.2.11"
- resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
- integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
-
-graphemer@^1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6"
- integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==
-
-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.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.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
- integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
-
-has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854"
- integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==
- dependencies:
- es-define-property "^1.0.0"
-
-has-proto@^1.0.1, has-proto@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd"
- integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==
-
-has-symbols@^1.0.2, has-symbols@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
- integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
-
-has-tostringtag@^1.0.0, has-tostringtag@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc"
- integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==
- dependencies:
- has-symbols "^1.0.3"
-
-hash.js@1.1.7, 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"
-
-hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003"
- integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==
- dependencies:
- function-bind "^1.1.2"
-
-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"
-
-html-encoding-sniffer@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9"
- integrity sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==
- dependencies:
- whatwg-encoding "^2.0.0"
-
-html-escaper@^2.0.0:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
- integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==
-
-http-proxy-agent@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43"
- integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==
- dependencies:
- "@tootallnate/once" "2"
- agent-base "6"
- debug "4"
-
-https-proxy-agent@^5.0.1:
- version "5.0.1"
- 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"
- debug "4"
-
-human-signals@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
- integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
-
-iconv-lite@0.6.3:
- version "0.6.3"
- 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"
-
-ignore@^5.2.0, ignore@^5.3.1:
- version "5.3.1"
- resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef"
- integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==
-
-immutable@^4.0.0:
- version "4.3.6"
- resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.6.tgz#6a05f7858213238e587fb83586ffa3b4b27f0447"
- integrity sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==
-
-import-fresh@^3.2.1:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
- integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
- dependencies:
- parent-module "^1.0.0"
- resolve-from "^4.0.0"
-
-import-local@^3.0.2:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4"
- integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==
- dependencies:
- pkg-dir "^4.2.0"
- resolve-cwd "^3.0.0"
-
-imurmurhash@^0.1.4:
- version "0.1.4"
- 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.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251"
- integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==
-
-inflight@^1.0.4:
- version "1.0.6"
- 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.3, inherits@^2.0.4:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
- integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
-
-internal-slot@^1.0.4, internal-slot@^1.0.7:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802"
- integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==
- dependencies:
- es-errors "^1.3.0"
- hasown "^2.0.0"
- side-channel "^1.0.4"
-
-is-arguments@^1.1.1:
- version "1.1.1"
- 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"
- has-tostringtag "^1.0.0"
-
-is-array-buffer@^3.0.2, is-array-buffer@^3.0.4:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98"
- integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==
- dependencies:
- call-bind "^1.0.2"
- get-intrinsic "^1.2.1"
-
-is-arrayish@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
- integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==
-
-is-async-function@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.0.0.tgz#8e4418efd3e5d3a6ebb0164c05ef5afb69aa9646"
- integrity sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==
- dependencies:
- has-tostringtag "^1.0.0"
-
-is-bigint@^1.0.1:
- version "1.0.4"
- 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@~2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
- integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
- dependencies:
- binary-extensions "^2.0.0"
-
-is-boolean-object@^1.1.0:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719"
- integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==
- dependencies:
- call-bind "^1.0.2"
- has-tostringtag "^1.0.0"
-
-is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7:
- version "1.2.7"
- resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055"
- integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==
-
-is-core-module@^2.11.0, is-core-module@^2.13.0, is-core-module@^2.13.1:
- version "2.13.1"
- resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384"
- integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==
- dependencies:
- hasown "^2.0.0"
-
-is-data-view@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.1.tgz#4b4d3a511b70f3dc26d42c03ca9ca515d847759f"
- integrity sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==
- dependencies:
- is-typed-array "^1.1.13"
-
-is-date-object@^1.0.1, is-date-object@^1.0.5:
- version "1.0.5"
- 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-extglob@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
- integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
-
-is-finalizationregistry@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz#c8749b65f17c133313e661b1289b95ad3dbd62e6"
- integrity sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==
- dependencies:
- call-bind "^1.0.2"
-
-is-fullwidth-code-point@^3.0.0:
- version "3.0.0"
- 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-generator-fn@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118"
- integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==
-
-is-generator-function@^1.0.10:
- version "1.0.10"
- resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72"
- integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==
- dependencies:
- has-tostringtag "^1.0.0"
-
-is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
- integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
- dependencies:
- is-extglob "^2.1.1"
-
-is-map@^2.0.2, is-map@^2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.3.tgz#ede96b7fe1e270b3c4465e3a465658764926d62e"
- integrity sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==
-
-is-negative-zero@^2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747"
- integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==
-
-is-number-object@^1.0.4:
- version "1.0.7"
- 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@^7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
- integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
-
-is-path-inside@^3.0.3:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
- integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
-
-is-potential-custom-element-name@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5"
- integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==
-
-is-regex@^1.1.4:
- version "1.1.4"
- 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"
- has-tostringtag "^1.0.0"
-
-is-set@^2.0.2, is-set@^2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.3.tgz#8ab209ea424608141372ded6e0cb200ef1d9d01d"
- integrity sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==
-
-is-shared-array-buffer@^1.0.2, is-shared-array-buffer@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz#1237f1cba059cdb62431d378dcc37d9680181688"
- integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==
- dependencies:
- call-bind "^1.0.7"
-
-is-stream@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
- integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
-
-is-string@^1.0.5, is-string@^1.0.7:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd"
- 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.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c"
- integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==
- dependencies:
- has-symbols "^1.0.2"
-
-is-typed-array@^1.1.13:
- version "1.1.13"
- resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229"
- integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==
- dependencies:
- which-typed-array "^1.1.14"
-
-is-weakmap@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.2.tgz#bf72615d649dfe5f699079c54b83e47d1ae19cfd"
- integrity sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==
-
-is-weakref@^1.0.2:
- version "1.0.2"
- 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-weakset@^2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.3.tgz#e801519df8c0c43e12ff2834eead84ec9e624007"
- integrity sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==
- dependencies:
- call-bind "^1.0.7"
- get-intrinsic "^1.2.4"
-
-isarray@^2.0.5:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723"
- integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==
-
-isexe@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
- integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
-
-istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0:
- version "3.2.2"
- resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756"
- integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==
-
-istanbul-lib-instrument@^5.0.4:
- version "5.2.1"
- resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d"
- integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==
- dependencies:
- "@babel/core" "^7.12.3"
- "@babel/parser" "^7.14.7"
- "@istanbuljs/schema" "^0.1.2"
- istanbul-lib-coverage "^3.2.0"
- semver "^6.3.0"
-
-istanbul-lib-instrument@^6.0.0:
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz#91655936cf7380e4e473383081e38478b69993b1"
- integrity sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==
- dependencies:
- "@babel/core" "^7.23.9"
- "@babel/parser" "^7.23.9"
- "@istanbuljs/schema" "^0.1.3"
- istanbul-lib-coverage "^3.2.0"
- semver "^7.5.4"
-
-istanbul-lib-report@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d"
- integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==
- dependencies:
- istanbul-lib-coverage "^3.0.0"
- make-dir "^4.0.0"
- supports-color "^7.1.0"
-
-istanbul-lib-source-maps@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551"
- integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==
- dependencies:
- debug "^4.1.1"
- istanbul-lib-coverage "^3.0.0"
- source-map "^0.6.1"
-
-istanbul-reports@^3.1.3:
- version "3.1.7"
- resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.7.tgz#daed12b9e1dca518e15c056e1e537e741280fa0b"
- integrity sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==
- dependencies:
- html-escaper "^2.0.0"
- istanbul-lib-report "^3.0.0"
-
-iterator.prototype@^1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.2.tgz#5e29c8924f01916cb9335f1ff80619dcff22b0c0"
- integrity sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==
- dependencies:
- define-properties "^1.2.1"
- get-intrinsic "^1.2.1"
- has-symbols "^1.0.3"
- reflect.getprototypeof "^1.0.4"
- set-function-name "^2.0.1"
-
-jackspeak@^2.3.5:
- version "2.3.6"
- resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8"
- integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==
- dependencies:
- "@isaacs/cliui" "^8.0.2"
- optionalDependencies:
- "@pkgjs/parseargs" "^0.11.0"
-
-jest-changed-files@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.7.0.tgz#1c06d07e77c78e1585d020424dedc10d6e17ac3a"
- integrity sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==
- dependencies:
- execa "^5.0.0"
- jest-util "^29.7.0"
- p-limit "^3.1.0"
-
-jest-circus@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.7.0.tgz#b6817a45fcc835d8b16d5962d0c026473ee3668a"
- integrity sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==
- dependencies:
- "@jest/environment" "^29.7.0"
- "@jest/expect" "^29.7.0"
- "@jest/test-result" "^29.7.0"
- "@jest/types" "^29.6.3"
- "@types/node" "*"
- chalk "^4.0.0"
- co "^4.6.0"
- dedent "^1.0.0"
- is-generator-fn "^2.0.0"
- jest-each "^29.7.0"
- jest-matcher-utils "^29.7.0"
- jest-message-util "^29.7.0"
- jest-runtime "^29.7.0"
- jest-snapshot "^29.7.0"
- jest-util "^29.7.0"
- p-limit "^3.1.0"
- pretty-format "^29.7.0"
- pure-rand "^6.0.0"
- slash "^3.0.0"
- stack-utils "^2.0.3"
-
-jest-cli@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.7.0.tgz#5592c940798e0cae677eec169264f2d839a37995"
- integrity sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==
- dependencies:
- "@jest/core" "^29.7.0"
- "@jest/test-result" "^29.7.0"
- "@jest/types" "^29.6.3"
- chalk "^4.0.0"
- create-jest "^29.7.0"
- exit "^0.1.2"
- import-local "^3.0.2"
- jest-config "^29.7.0"
- jest-util "^29.7.0"
- jest-validate "^29.7.0"
- yargs "^17.3.1"
-
-jest-config@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.7.0.tgz#bcbda8806dbcc01b1e316a46bb74085a84b0245f"
- integrity sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==
- dependencies:
- "@babel/core" "^7.11.6"
- "@jest/test-sequencer" "^29.7.0"
- "@jest/types" "^29.6.3"
- babel-jest "^29.7.0"
- chalk "^4.0.0"
- ci-info "^3.2.0"
- deepmerge "^4.2.2"
- glob "^7.1.3"
- graceful-fs "^4.2.9"
- jest-circus "^29.7.0"
- jest-environment-node "^29.7.0"
- jest-get-type "^29.6.3"
- jest-regex-util "^29.6.3"
- jest-resolve "^29.7.0"
- jest-runner "^29.7.0"
- jest-util "^29.7.0"
- jest-validate "^29.7.0"
- micromatch "^4.0.4"
- parse-json "^5.2.0"
- pretty-format "^29.7.0"
- slash "^3.0.0"
- strip-json-comments "^3.1.1"
-
-jest-diff@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a"
- integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==
- dependencies:
- chalk "^4.0.0"
- diff-sequences "^29.6.3"
- jest-get-type "^29.6.3"
- pretty-format "^29.7.0"
-
-jest-docblock@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.7.0.tgz#8fddb6adc3cdc955c93e2a87f61cfd350d5d119a"
- integrity sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==
- dependencies:
- detect-newline "^3.0.0"
-
-jest-each@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.7.0.tgz#162a9b3f2328bdd991beaabffbb74745e56577d1"
- integrity sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==
- dependencies:
- "@jest/types" "^29.6.3"
- chalk "^4.0.0"
- jest-get-type "^29.6.3"
- jest-util "^29.7.0"
- pretty-format "^29.7.0"
-
-jest-environment-jsdom@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz#d206fa3551933c3fd519e5dfdb58a0f5139a837f"
- integrity sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==
- dependencies:
- "@jest/environment" "^29.7.0"
- "@jest/fake-timers" "^29.7.0"
- "@jest/types" "^29.6.3"
- "@types/jsdom" "^20.0.0"
- "@types/node" "*"
- jest-mock "^29.7.0"
- jest-util "^29.7.0"
- jsdom "^20.0.0"
-
-jest-environment-node@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.7.0.tgz#0b93e111dda8ec120bc8300e6d1fb9576e164376"
- integrity sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==
- dependencies:
- "@jest/environment" "^29.7.0"
- "@jest/fake-timers" "^29.7.0"
- "@jest/types" "^29.6.3"
- "@types/node" "*"
- jest-mock "^29.7.0"
- jest-util "^29.7.0"
-
-jest-get-type@^29.6.3:
- version "29.6.3"
- resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1"
- integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==
-
-jest-haste-map@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.7.0.tgz#3c2396524482f5a0506376e6c858c3bbcc17b104"
- integrity sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==
- dependencies:
- "@jest/types" "^29.6.3"
- "@types/graceful-fs" "^4.1.3"
- "@types/node" "*"
- anymatch "^3.0.3"
- fb-watchman "^2.0.0"
- graceful-fs "^4.2.9"
- jest-regex-util "^29.6.3"
- jest-util "^29.7.0"
- jest-worker "^29.7.0"
- micromatch "^4.0.4"
- walker "^1.0.8"
- optionalDependencies:
- fsevents "^2.3.2"
-
-jest-leak-detector@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz#5b7ec0dadfdfec0ca383dc9aa016d36b5ea4c728"
- integrity sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==
- dependencies:
- jest-get-type "^29.6.3"
- pretty-format "^29.7.0"
-
-jest-matcher-utils@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12"
- integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==
- dependencies:
- chalk "^4.0.0"
- jest-diff "^29.7.0"
- jest-get-type "^29.6.3"
- pretty-format "^29.7.0"
-
-jest-message-util@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.7.0.tgz#8bc392e204e95dfe7564abbe72a404e28e51f7f3"
- integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==
- dependencies:
- "@babel/code-frame" "^7.12.13"
- "@jest/types" "^29.6.3"
- "@types/stack-utils" "^2.0.0"
- chalk "^4.0.0"
- graceful-fs "^4.2.9"
- micromatch "^4.0.4"
- pretty-format "^29.7.0"
- slash "^3.0.0"
- stack-utils "^2.0.3"
-
-jest-mock@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.7.0.tgz#4e836cf60e99c6fcfabe9f99d017f3fdd50a6347"
- integrity sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==
- dependencies:
- "@jest/types" "^29.6.3"
- "@types/node" "*"
- jest-util "^29.7.0"
-
-jest-pnp-resolver@^1.2.2:
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e"
- integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==
-
-jest-regex-util@^29.6.3:
- version "29.6.3"
- resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.6.3.tgz#4a556d9c776af68e1c5f48194f4d0327d24e8a52"
- integrity sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==
-
-jest-resolve-dependencies@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz#1b04f2c095f37fc776ff40803dc92921b1e88428"
- integrity sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==
- dependencies:
- jest-regex-util "^29.6.3"
- jest-snapshot "^29.7.0"
-
-jest-resolve@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.7.0.tgz#64d6a8992dd26f635ab0c01e5eef4399c6bcbc30"
- integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==
- dependencies:
- chalk "^4.0.0"
- graceful-fs "^4.2.9"
- jest-haste-map "^29.7.0"
- jest-pnp-resolver "^1.2.2"
- jest-util "^29.7.0"
- jest-validate "^29.7.0"
- resolve "^1.20.0"
- resolve.exports "^2.0.0"
- slash "^3.0.0"
-
-jest-runner@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.7.0.tgz#809af072d408a53dcfd2e849a4c976d3132f718e"
- integrity sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==
- dependencies:
- "@jest/console" "^29.7.0"
- "@jest/environment" "^29.7.0"
- "@jest/test-result" "^29.7.0"
- "@jest/transform" "^29.7.0"
- "@jest/types" "^29.6.3"
- "@types/node" "*"
- chalk "^4.0.0"
- emittery "^0.13.1"
- graceful-fs "^4.2.9"
- jest-docblock "^29.7.0"
- jest-environment-node "^29.7.0"
- jest-haste-map "^29.7.0"
- jest-leak-detector "^29.7.0"
- jest-message-util "^29.7.0"
- jest-resolve "^29.7.0"
- jest-runtime "^29.7.0"
- jest-util "^29.7.0"
- jest-watcher "^29.7.0"
- jest-worker "^29.7.0"
- p-limit "^3.1.0"
- source-map-support "0.5.13"
-
-jest-runtime@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.7.0.tgz#efecb3141cf7d3767a3a0cc8f7c9990587d3d817"
- integrity sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==
- dependencies:
- "@jest/environment" "^29.7.0"
- "@jest/fake-timers" "^29.7.0"
- "@jest/globals" "^29.7.0"
- "@jest/source-map" "^29.6.3"
- "@jest/test-result" "^29.7.0"
- "@jest/transform" "^29.7.0"
- "@jest/types" "^29.6.3"
- "@types/node" "*"
- chalk "^4.0.0"
- cjs-module-lexer "^1.0.0"
- collect-v8-coverage "^1.0.0"
- glob "^7.1.3"
- graceful-fs "^4.2.9"
- jest-haste-map "^29.7.0"
- jest-message-util "^29.7.0"
- jest-mock "^29.7.0"
- jest-regex-util "^29.6.3"
- jest-resolve "^29.7.0"
- jest-snapshot "^29.7.0"
- jest-util "^29.7.0"
- slash "^3.0.0"
- strip-bom "^4.0.0"
-
-jest-snapshot@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.7.0.tgz#c2c574c3f51865da1bb329036778a69bf88a6be5"
- integrity sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==
- dependencies:
- "@babel/core" "^7.11.6"
- "@babel/generator" "^7.7.2"
- "@babel/plugin-syntax-jsx" "^7.7.2"
- "@babel/plugin-syntax-typescript" "^7.7.2"
- "@babel/types" "^7.3.3"
- "@jest/expect-utils" "^29.7.0"
- "@jest/transform" "^29.7.0"
- "@jest/types" "^29.6.3"
- babel-preset-current-node-syntax "^1.0.0"
- chalk "^4.0.0"
- expect "^29.7.0"
- graceful-fs "^4.2.9"
- jest-diff "^29.7.0"
- jest-get-type "^29.6.3"
- jest-matcher-utils "^29.7.0"
- jest-message-util "^29.7.0"
- jest-util "^29.7.0"
- natural-compare "^1.4.0"
- pretty-format "^29.7.0"
- semver "^7.5.3"
-
-jest-util@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc"
- integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==
- dependencies:
- "@jest/types" "^29.6.3"
- "@types/node" "*"
- chalk "^4.0.0"
- ci-info "^3.2.0"
- graceful-fs "^4.2.9"
- picomatch "^2.2.3"
-
-jest-validate@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.7.0.tgz#7bf705511c64da591d46b15fce41400d52147d9c"
- integrity sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==
- dependencies:
- "@jest/types" "^29.6.3"
- camelcase "^6.2.0"
- chalk "^4.0.0"
- jest-get-type "^29.6.3"
- leven "^3.1.0"
- pretty-format "^29.7.0"
-
-jest-watcher@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.7.0.tgz#7810d30d619c3a62093223ce6bb359ca1b28a2f2"
- integrity sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==
- dependencies:
- "@jest/test-result" "^29.7.0"
- "@jest/types" "^29.6.3"
- "@types/node" "*"
- ansi-escapes "^4.2.1"
- chalk "^4.0.0"
- emittery "^0.13.1"
- jest-util "^29.7.0"
- string-length "^4.0.1"
-
-jest-worker@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a"
- integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==
- dependencies:
- "@types/node" "*"
- jest-util "^29.7.0"
- merge-stream "^2.0.0"
- supports-color "^8.0.0"
-
-jest@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest/-/jest-29.7.0.tgz#994676fc24177f088f1c5e3737f5697204ff2613"
- integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==
- dependencies:
- "@jest/core" "^29.7.0"
- "@jest/types" "^29.6.3"
- import-local "^3.0.2"
- jest-cli "^29.7.0"
-
-js-sha3@0.8.0:
- version "0.8.0"
- resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840"
- integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==
-
-"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
- version "4.0.0"
- 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.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537"
- integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
- dependencies:
- argparse "^1.0.7"
- esprima "^4.0.0"
-
-js-yaml@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
- integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
- dependencies:
- argparse "^2.0.1"
-
-jsdom@^20.0.0:
- version "20.0.3"
- resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-20.0.3.tgz#886a41ba1d4726f67a8858028c99489fed6ad4db"
- integrity sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==
- dependencies:
- abab "^2.0.6"
- acorn "^8.8.1"
- acorn-globals "^7.0.0"
- cssom "^0.5.0"
- cssstyle "^2.3.0"
- data-urls "^3.0.2"
- decimal.js "^10.4.2"
- domexception "^4.0.0"
- escodegen "^2.0.0"
- form-data "^4.0.0"
- html-encoding-sniffer "^3.0.0"
- http-proxy-agent "^5.0.0"
- https-proxy-agent "^5.0.1"
- is-potential-custom-element-name "^1.0.1"
- nwsapi "^2.2.2"
- parse5 "^7.1.1"
- saxes "^6.0.0"
- symbol-tree "^3.2.4"
- tough-cookie "^4.1.2"
- w3c-xmlserializer "^4.0.0"
- webidl-conversions "^7.0.0"
- whatwg-encoding "^2.0.0"
- whatwg-mimetype "^3.0.0"
- whatwg-url "^11.0.0"
- ws "^8.11.0"
- xml-name-validator "^4.0.0"
-
-jsesc@^2.5.1:
- version "2.5.2"
- resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
- integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
-
-json-buffer@3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13"
- integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==
-
-json-parse-even-better-errors@^2.3.0:
- 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.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
- integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
-
-json-stable-stringify-without-jsonify@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
- integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
-
-json2mq@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/json2mq/-/json2mq-0.2.0.tgz#b637bd3ba9eabe122c83e9720483aeb10d2c904a"
- integrity sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==
- dependencies:
- string-convert "^0.2.0"
-
-json5@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593"
- integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==
- dependencies:
- minimist "^1.2.0"
-
-json5@^2.2.3:
- version "2.2.3"
- resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
- integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
-
-"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.5:
- version "3.3.5"
- resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz#4766bd05a8e2a11af222becd19e15575e52a853a"
- integrity sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==
- dependencies:
- array-includes "^3.1.6"
- array.prototype.flat "^1.3.1"
- object.assign "^4.1.4"
- object.values "^1.1.6"
-
-keyv@^4.5.3:
- version "4.5.4"
- resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93"
- integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==
- dependencies:
- json-buffer "3.0.1"
-
-kleur@^3.0.3:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e"
- integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==
-
-language-subtag-registry@^0.3.20:
- version "0.3.23"
- resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz#23529e04d9e3b74679d70142df3fd2eb6ec572e7"
- integrity sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==
-
-language-tags@^1.0.9:
- version "1.0.9"
- resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.9.tgz#1ffdcd0ec0fafb4b1be7f8b11f306ad0f9c08777"
- integrity sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==
- dependencies:
- language-subtag-registry "^0.3.20"
-
-leven@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2"
- integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==
-
-levn@^0.4.1:
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
- integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
- dependencies:
- prelude-ls "^1.2.1"
- type-check "~0.4.0"
-
-lines-and-columns@^1.1.6:
- version "1.2.4"
- resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
- integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
-
-locate-path@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
- integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
- dependencies:
- p-locate "^4.1.0"
-
-locate-path@^6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
- integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
- dependencies:
- p-locate "^5.0.0"
-
-lodash.debounce@^4.0.8:
- version "4.0.8"
- resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
- integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==
-
-lodash.merge@^4.6.2:
- version "4.6.2"
- resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
- integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
-
-lodash@^4.17.21:
- version "4.17.21"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
- integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
-
-loose-envify@^1.1.0, loose-envify@^1.4.0:
- version "1.4.0"
- 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"
-
-lru-cache@^10.2.0:
- version "10.2.2"
- resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.2.tgz#48206bc114c1252940c41b25b41af5b545aca878"
- integrity sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==
-
-lru-cache@^5.1.1:
- version "5.1.1"
- 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"
-
-lz-string@^1.5.0:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941"
- integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==
-
-make-dir@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e"
- integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==
- dependencies:
- semver "^7.5.3"
-
-make-error@^1.1.1:
- version "1.3.6"
- resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
- integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
-
-makeerror@1.0.12:
- version "1.0.12"
- resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a"
- integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==
- dependencies:
- tmpl "1.0.5"
-
-merge-stream@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
- integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
-
-merge2@^1.3.0, merge2@^1.4.1:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
- integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
-
-micromatch@^4.0.4:
- version "4.0.7"
- resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.7.tgz#33e8190d9fe474a9895525f5618eee136d46c2e5"
- integrity sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==
- dependencies:
- braces "^3.0.3"
- picomatch "^2.3.1"
-
-mime-db@1.52.0:
- version "1.52.0"
- resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
- integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
-
-mime-types@^2.1.12:
- version "2.1.35"
- 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"
-
-mimic-fn@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
- integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
-
-min-indent@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869"
- integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==
-
-minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
- version "1.0.1"
- 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@9.0.3:
- version "9.0.3"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825"
- integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==
- dependencies:
- brace-expansion "^2.0.1"
-
-minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
- integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
- dependencies:
- brace-expansion "^1.1.7"
-
-minimatch@^9.0.1, minimatch@^9.0.4:
- version "9.0.4"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.4.tgz#8e49c731d1749cbec05050ee5145147b32496a51"
- integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==
- dependencies:
- brace-expansion "^2.0.1"
-
-minimist@^1.2.0, minimist@^1.2.6:
- version "1.2.8"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
- integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
-
-"minipass@^5.0.0 || ^6.0.2 || ^7.0.0":
- version "7.1.1"
- resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.1.tgz#f7f85aff59aa22f110b20e27692465cf3bf89481"
- integrity sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==
-
-ms@2.1.2:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
- integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
-
-ms@^2.1.1:
- version "2.1.3"
- resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
- integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
-
-nanoid@^3.3.6, nanoid@^3.3.7:
- version "3.3.7"
- resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8"
- integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==
-
-natural-compare@^1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
- integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
-
-next@^14.2.3:
- version "14.2.3"
- resolved "https://registry.yarnpkg.com/next/-/next-14.2.3.tgz#f117dd5d5f20c307e7b8e4f9c1c97d961008925d"
- integrity sha512-dowFkFTR8v79NPJO4QsBUtxv0g9BrS/phluVpMAt2ku7H+cbcBJlopXjkWlwxrk/xGqMemr7JkGPGemPrLLX7A==
- dependencies:
- "@next/env" "14.2.3"
- "@swc/helpers" "0.5.5"
- busboy "1.6.0"
- caniuse-lite "^1.0.30001579"
- graceful-fs "^4.2.11"
- postcss "8.4.31"
- styled-jsx "5.1.1"
- optionalDependencies:
- "@next/swc-darwin-arm64" "14.2.3"
- "@next/swc-darwin-x64" "14.2.3"
- "@next/swc-linux-arm64-gnu" "14.2.3"
- "@next/swc-linux-arm64-musl" "14.2.3"
- "@next/swc-linux-x64-gnu" "14.2.3"
- "@next/swc-linux-x64-musl" "14.2.3"
- "@next/swc-win32-arm64-msvc" "14.2.3"
- "@next/swc-win32-ia32-msvc" "14.2.3"
- "@next/swc-win32-x64-msvc" "14.2.3"
-
-node-int64@^0.4.0:
- version "0.4.0"
- resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
- integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==
-
-node-releases@^2.0.14:
- version "2.0.14"
- resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b"
- integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==
-
-normalize-path@^3.0.0, normalize-path@~3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
- integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
-
-npm-run-path@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
- integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
- dependencies:
- path-key "^3.0.0"
-
-nwsapi@^2.2.2:
- version "2.2.10"
- resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.10.tgz#0b77a68e21a0b483db70b11fad055906e867cda8"
- integrity sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ==
-
-object-assign@^4.1.1:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
- integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
-
-object-inspect@^1.13.1:
- version "1.13.1"
- resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2"
- integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==
-
-object-is@^1.1.5:
- version "1.1.6"
- resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.6.tgz#1a6a53aed2dd8f7e6775ff870bea58545956ab07"
- integrity sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==
- dependencies:
- call-bind "^1.0.7"
- define-properties "^1.2.1"
-
-object-keys@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
- integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
-
-object.assign@^4.1.4, object.assign@^4.1.5:
- version "4.1.5"
- resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0"
- integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==
- dependencies:
- call-bind "^1.0.5"
- define-properties "^1.2.1"
- has-symbols "^1.0.3"
- object-keys "^1.1.1"
-
-object.entries@^1.1.7:
- version "1.1.8"
- resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.8.tgz#bffe6f282e01f4d17807204a24f8edd823599c41"
- integrity sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==
- dependencies:
- call-bind "^1.0.7"
- define-properties "^1.2.1"
- es-object-atoms "^1.0.0"
-
-object.fromentries@^2.0.7:
- version "2.0.8"
- resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.8.tgz#f7195d8a9b97bd95cbc1999ea939ecd1a2b00c65"
- integrity sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==
- dependencies:
- call-bind "^1.0.7"
- define-properties "^1.2.1"
- es-abstract "^1.23.2"
- es-object-atoms "^1.0.0"
-
-object.groupby@^1.0.1:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.3.tgz#9b125c36238129f6f7b61954a1e7176148d5002e"
- integrity sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==
- dependencies:
- call-bind "^1.0.7"
- define-properties "^1.2.1"
- es-abstract "^1.23.2"
-
-object.hasown@^1.1.3:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.4.tgz#e270ae377e4c120cdcb7656ce66884a6218283dc"
- integrity sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==
- dependencies:
- define-properties "^1.2.1"
- es-abstract "^1.23.2"
- es-object-atoms "^1.0.0"
-
-object.values@^1.1.6, object.values@^1.1.7:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.0.tgz#65405a9d92cee68ac2d303002e0b8470a4d9ab1b"
- integrity sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==
- dependencies:
- call-bind "^1.0.7"
- define-properties "^1.2.1"
- es-object-atoms "^1.0.0"
-
-once@^1.3.0:
- version "1.4.0"
- 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.2:
- version "5.1.2"
- resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
- integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
- dependencies:
- mimic-fn "^2.1.0"
-
-optionator@^0.9.3:
- version "0.9.4"
- resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734"
- integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==
- dependencies:
- deep-is "^0.1.3"
- fast-levenshtein "^2.0.6"
- levn "^0.4.1"
- prelude-ls "^1.2.1"
- type-check "^0.4.0"
- word-wrap "^1.2.5"
-
-p-limit@^2.2.0:
- version "2.3.0"
- 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-limit@^3.0.2, p-limit@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
- integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
- dependencies:
- yocto-queue "^0.1.0"
-
-p-locate@^4.1.0:
- version "4.1.0"
- 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-locate@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
- integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
- dependencies:
- p-limit "^3.0.2"
-
-p-try@^2.0.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
- integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
-
-parent-module@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
- integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
- dependencies:
- callsites "^3.0.0"
-
-parse-json@^5.2.0:
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
- integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
- dependencies:
- "@babel/code-frame" "^7.0.0"
- error-ex "^1.3.1"
- json-parse-even-better-errors "^2.3.0"
- lines-and-columns "^1.1.6"
-
-parse5@^7.0.0, parse5@^7.1.1:
- version "7.1.2"
- resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32"
- integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==
- dependencies:
- entities "^4.4.0"
-
-path-exists@^4.0.0:
- version "4.0.0"
- 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.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
- integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
-
-path-key@^3.0.0, path-key@^3.1.0:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
- integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
-
-path-parse@^1.0.7:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
- integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
-
-path-scurry@^1.10.1:
- version "1.11.1"
- resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2"
- integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==
- dependencies:
- lru-cache "^10.2.0"
- minipass "^5.0.0 || ^6.0.2 || ^7.0.0"
-
-path-type@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
- integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
-
-picocolors@^1.0.0, picocolors@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1"
- integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==
-
-picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
- integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
-
-pirates@^4.0.4:
- version "4.0.6"
- resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9"
- integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==
-
-pkg-dir@^4.2.0:
- version "4.2.0"
- 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"
-
-possible-typed-array-names@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f"
- integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==
-
-postcss-value-parser@^4.0.2:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
- integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
-
-postcss@8.4.31:
- version "8.4.31"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d"
- integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==
- dependencies:
- nanoid "^3.3.6"
- picocolors "^1.0.0"
- source-map-js "^1.0.2"
-
-postcss@8.4.38:
- version "8.4.38"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.38.tgz#b387d533baf2054288e337066d81c6bee9db9e0e"
- integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==
- dependencies:
- nanoid "^3.3.7"
- picocolors "^1.0.0"
- source-map-js "^1.2.0"
-
-prelude-ls@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
- integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
-
-prettier-linter-helpers@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b"
- integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==
- dependencies:
- fast-diff "^1.1.2"
-
-prettier@^3.2.5:
- version "3.2.5"
- resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.5.tgz#e52bc3090586e824964a8813b09aba6233b28368"
- integrity sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==
-
-pretty-format@^27.0.2:
- version "27.5.1"
- resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e"
- integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==
- dependencies:
- ansi-regex "^5.0.1"
- ansi-styles "^5.0.0"
- react-is "^17.0.1"
-
-pretty-format@^29.0.0, pretty-format@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812"
- integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==
- dependencies:
- "@jest/schemas" "^29.6.3"
- ansi-styles "^5.0.0"
- react-is "^18.0.0"
-
-prompts@^2.0.1:
- version "2.4.2"
- resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069"
- integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==
- dependencies:
- kleur "^3.0.3"
- sisteransi "^1.0.5"
-
-prop-types@^15.8.1:
- version "15.8.1"
- resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5"
- integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==
- dependencies:
- loose-envify "^1.4.0"
- object-assign "^4.1.1"
- react-is "^16.13.1"
-
-psl@^1.1.33:
- version "1.9.0"
- resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7"
- integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==
-
-punycode@^2.1.0, punycode@^2.1.1:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5"
- integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==
-
-pure-rand@^6.0.0:
- version "6.1.0"
- resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.1.0.tgz#d173cf23258231976ccbdb05247c9787957604f2"
- integrity sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==
-
-qrcode.react@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/qrcode.react/-/qrcode.react-3.1.0.tgz#5c91ddc0340f768316fbdb8fff2765134c2aecd8"
- integrity sha512-oyF+Urr3oAMUG/OiOuONL3HXM+53wvuH3mtIWQrYmsXoAq0DkvZp2RYUWFSMFtbdOpuS++9v+WAkzNVkMlNW6Q==
-
-querystringify@^2.1.1:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6"
- integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==
-
-queue-microtask@^1.2.2:
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
- integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
-
-rc-cascader@~3.26.0:
- version "3.26.0"
- resolved "https://registry.yarnpkg.com/rc-cascader/-/rc-cascader-3.26.0.tgz#1bcc9c29451047dc99e28fdd125c94828d7ddf76"
- integrity sha512-L1dml383TPSJD1I11YwxuVbmqaJY64psZqFp1ETlgl3LEOwDu76Cyl11fw5dmjJhMlUWwM5dECQfqJgfebhUjg==
- dependencies:
- "@babel/runtime" "^7.12.5"
- array-tree-filter "^2.1.0"
- classnames "^2.3.1"
- rc-select "~14.14.0"
- rc-tree "~5.8.1"
- rc-util "^5.37.0"
-
-rc-checkbox@~3.3.0:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/rc-checkbox/-/rc-checkbox-3.3.0.tgz#0ffcb65ab78c7d2fcd1a0d6554af36786516bd02"
- integrity sha512-Ih3ZaAcoAiFKJjifzwsGiT/f/quIkxJoklW4yKGho14Olulwn8gN7hOBve0/WGDg5o/l/5mL0w7ff7/YGvefVw==
- dependencies:
- "@babel/runtime" "^7.10.1"
- classnames "^2.3.2"
- rc-util "^5.25.2"
-
-rc-collapse@~3.7.3:
- version "3.7.3"
- resolved "https://registry.yarnpkg.com/rc-collapse/-/rc-collapse-3.7.3.tgz#68161683d8fd1004bef4eb281fc106f3c8dc16eb"
- integrity sha512-60FJcdTRn0X5sELF18TANwtVi7FtModq649H11mYF1jh83DniMoM4MqY627sEKRCTm4+WXfGDcB7hY5oW6xhyw==
- dependencies:
- "@babel/runtime" "^7.10.1"
- classnames "2.x"
- rc-motion "^2.3.4"
- rc-util "^5.27.0"
-
-rc-dialog@~9.4.0:
- version "9.4.0"
- resolved "https://registry.yarnpkg.com/rc-dialog/-/rc-dialog-9.4.0.tgz#194c107d34cb36a56f1db4a49dc73f6d59eeae85"
- integrity sha512-AScCexaLACvf8KZRqCPz12BJ8olszXOS4lKlkMyzDQHS1m0zj1KZMYgmMCh39ee0Dcv8kyrj8mTqxuLyhH+QuQ==
- dependencies:
- "@babel/runtime" "^7.10.1"
- "@rc-component/portal" "^1.0.0-8"
- classnames "^2.2.6"
- rc-motion "^2.3.0"
- rc-util "^5.21.0"
-
-rc-drawer@~7.1.0:
- version "7.1.0"
- resolved "https://registry.yarnpkg.com/rc-drawer/-/rc-drawer-7.1.0.tgz#2beabb8bab1784aea255d0d850bc206c3dc715da"
- integrity sha512-nBE1rF5iZvpavoyqhSSz2mk/yANltA7g3aF0U45xkx381n3we/RKs9cJfNKp9mSWCedOKWt9FLEwZDaAaOGn2w==
- dependencies:
- "@babel/runtime" "^7.23.9"
- "@rc-component/portal" "^1.1.1"
- classnames "^2.2.6"
- rc-motion "^2.6.1"
- rc-util "^5.38.1"
-
-rc-dropdown@~4.2.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/rc-dropdown/-/rc-dropdown-4.2.0.tgz#c6052fcfe9c701487b141e411cdc277dc7c6f061"
- integrity sha512-odM8Ove+gSh0zU27DUj5cG1gNKg7mLWBYzB5E4nNLrLwBmYEgYP43vHKDGOVZcJSVElQBI0+jTQgjnq0NfLjng==
- dependencies:
- "@babel/runtime" "^7.18.3"
- "@rc-component/trigger" "^2.0.0"
- classnames "^2.2.6"
- rc-util "^5.17.0"
-
-rc-field-form@~2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/rc-field-form/-/rc-field-form-2.0.1.tgz#97dc352f3899e9617f2abfd0c09bf0fcd17409e2"
- integrity sha512-3WK/POHBcfMFKrzScrkmgMIXqoVQ0KgVwcVnej/ukwuQG4ZHCJaTi2KhM+tWTK4WODBXbmjKg5pKHj2IVmSg4A==
- dependencies:
- "@babel/runtime" "^7.18.0"
- "@rc-component/async-validator" "^5.0.3"
- rc-util "^5.32.2"
-
-rc-image@~7.6.0:
- version "7.6.0"
- resolved "https://registry.yarnpkg.com/rc-image/-/rc-image-7.6.0.tgz#2867087b77c8595ea9eb37d18ca863e47904b191"
- integrity sha512-tL3Rvd1sS+frZQ01i+tkeUPaOeFz2iG9/scAt/Cfs0hyCRVA/w0Pu1J/JxIX8blalvmHE0bZQRYdOmRAzWu4Hg==
- dependencies:
- "@babel/runtime" "^7.11.2"
- "@rc-component/portal" "^1.0.2"
- classnames "^2.2.6"
- rc-dialog "~9.4.0"
- rc-motion "^2.6.2"
- rc-util "^5.34.1"
-
-rc-input-number@~9.1.0:
- version "9.1.0"
- resolved "https://registry.yarnpkg.com/rc-input-number/-/rc-input-number-9.1.0.tgz#fd577db284b65548c156500322a2feaa04321565"
- integrity sha512-NqJ6i25Xn/AgYfVxynlevIhX3FuKlMwIFpucGG1h98SlK32wQwDK0zhN9VY32McOmuaqzftduNYWWooWz8pXQA==
- dependencies:
- "@babel/runtime" "^7.10.1"
- "@rc-component/mini-decimal" "^1.0.1"
- classnames "^2.2.5"
- rc-input "~1.5.0"
- rc-util "^5.40.1"
-
-rc-input@~1.5.0:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/rc-input/-/rc-input-1.5.1.tgz#36d37eb045f1fa17de7da1a3fab94edfa331ab92"
- integrity sha512-+nOzQJDeIfIpNP/SgY45LXSKbuMlp4Yap2y8c+ZpU7XbLmNzUd6+d5/S75sA/52jsVE6S/AkhkkDEAOjIu7i6g==
- dependencies:
- "@babel/runtime" "^7.11.1"
- classnames "^2.2.1"
- rc-util "^5.18.1"
-
-rc-mentions@~2.13.1:
- version "2.13.1"
- resolved "https://registry.yarnpkg.com/rc-mentions/-/rc-mentions-2.13.1.tgz#14586ffa4a1ddd4079564f38abf2b4351671feca"
- integrity sha512-DSyUDq/PPCleUX1eghIn371lTSRQsIuCs1N7xR9nZcHP9R1NkE7JjpWUP8Gy4EGVPu0JN0qIcokxYJaoGPnofg==
- dependencies:
- "@babel/runtime" "^7.22.5"
- "@rc-component/trigger" "^2.0.0"
- classnames "^2.2.6"
- rc-input "~1.5.0"
- rc-menu "~9.14.0"
- rc-textarea "~1.7.0"
- rc-util "^5.34.1"
-
-rc-menu@~9.14.0:
- version "9.14.0"
- resolved "https://registry.yarnpkg.com/rc-menu/-/rc-menu-9.14.0.tgz#5e072cfc731a6dd95005d4247f02543679b0836b"
- integrity sha512-La3LBCDMLMs9Q/8mTGbnscb+ZeJ26ebkLz9xJFHd2SD8vfsCKl1Z/k3mwbxyKL01lB40fel1s9Nn9LAv/nmVJQ==
- dependencies:
- "@babel/runtime" "^7.10.1"
- "@rc-component/trigger" "^2.0.0"
- classnames "2.x"
- rc-motion "^2.4.3"
- rc-overflow "^1.3.1"
- rc-util "^5.27.0"
-
-rc-motion@^2.0.0, rc-motion@^2.0.1, rc-motion@^2.3.0, rc-motion@^2.3.4, rc-motion@^2.4.3, rc-motion@^2.4.4, rc-motion@^2.6.1, rc-motion@^2.6.2, rc-motion@^2.9.0, rc-motion@^2.9.1:
- version "2.9.1"
- resolved "https://registry.yarnpkg.com/rc-motion/-/rc-motion-2.9.1.tgz#5b405437f9f673ed1a59b6b797c2227c2d6b3d91"
- integrity sha512-QD4bUqByjVQs7PhUT1d4bNxvtTcK9ETwtg7psbDfo6TmYalH/1hhjj4r2hbhW7g5OOEqYHhfwfj4noIvuOVRtQ==
- dependencies:
- "@babel/runtime" "^7.11.1"
- classnames "^2.2.1"
- rc-util "^5.39.3"
-
-rc-notification@~5.4.0:
- version "5.4.0"
- resolved "https://registry.yarnpkg.com/rc-notification/-/rc-notification-5.4.0.tgz#c5ea20bfe4ed2dbacc7ef945777626c050945db8"
- integrity sha512-li19y9RoYJciF3WRFvD+DvWS70jdL8Fr+Gfb/OshK+iY6iTkwzoigmSIp76/kWh5tF5i/i9im12X3nsF85GYdA==
- dependencies:
- "@babel/runtime" "^7.10.1"
- classnames "2.x"
- rc-motion "^2.9.0"
- rc-util "^5.20.1"
-
-rc-overflow@^1.3.1, rc-overflow@^1.3.2:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/rc-overflow/-/rc-overflow-1.3.2.tgz#72ee49e85a1308d8d4e3bd53285dc1f3e0bcce2c"
- integrity sha512-nsUm78jkYAoPygDAcGZeC2VwIg/IBGSodtOY3pMof4W3M9qRJgqaDYm03ZayHlde3I6ipliAxbN0RUcGf5KOzw==
- dependencies:
- "@babel/runtime" "^7.11.1"
- classnames "^2.2.1"
- rc-resize-observer "^1.0.0"
- rc-util "^5.37.0"
-
-rc-pagination@~4.0.4:
- version "4.0.4"
- resolved "https://registry.yarnpkg.com/rc-pagination/-/rc-pagination-4.0.4.tgz#ea401388ae86eac17ed5b41212d487f12b65b773"
- integrity sha512-GGrLT4NgG6wgJpT/hHIpL9nELv27A1XbSZzECIuQBQTVSf4xGKxWr6I/jhpRPauYEWEbWVw22ObG6tJQqwJqWQ==
- dependencies:
- "@babel/runtime" "^7.10.1"
- classnames "^2.3.2"
- rc-util "^5.38.0"
-
-rc-picker@~4.5.0:
- version "4.5.0"
- resolved "https://registry.yarnpkg.com/rc-picker/-/rc-picker-4.5.0.tgz#ae7a028ed6184e0ef40a2c8aaeb9d5dbef89d4b8"
- integrity sha512-suqz9bzuhBQlf7u+bZd1bJLPzhXpk12w6AjQ9BTPTiFwexVZgUKViG1KNLyfFvW6tCUZZK0HmCCX7JAyM+JnCg==
- dependencies:
- "@babel/runtime" "^7.10.1"
- "@rc-component/trigger" "^2.0.0"
- classnames "^2.2.1"
- rc-overflow "^1.3.2"
- rc-resize-observer "^1.4.0"
- rc-util "^5.38.1"
-
-rc-progress@~4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/rc-progress/-/rc-progress-4.0.0.tgz#5382147d9add33d3a5fbd264001373df6440e126"
- integrity sha512-oofVMMafOCokIUIBnZLNcOZFsABaUw8PPrf1/y0ZBvKZNpOiu5h4AO9vv11Sw0p4Hb3D0yGWuEattcQGtNJ/aw==
- dependencies:
- "@babel/runtime" "^7.10.1"
- classnames "^2.2.6"
- rc-util "^5.16.1"
-
-rc-rate@~2.12.0:
- version "2.12.0"
- resolved "https://registry.yarnpkg.com/rc-rate/-/rc-rate-2.12.0.tgz#0182deffed3b009cdcc61660da8746c39ed91ed5"
- integrity sha512-g092v5iZCdVzbjdn28FzvWebK2IutoVoiTeqoLTj9WM7SjA/gOJIw5/JFZMRyJYYVe1jLAU2UhAfstIpCNRozg==
- dependencies:
- "@babel/runtime" "^7.10.1"
- classnames "^2.2.5"
- rc-util "^5.0.1"
-
-rc-resize-observer@^1.0.0, rc-resize-observer@^1.1.0, rc-resize-observer@^1.3.1, rc-resize-observer@^1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/rc-resize-observer/-/rc-resize-observer-1.4.0.tgz#7bba61e6b3c604834980647cce6451914750d0cc"
- integrity sha512-PnMVyRid9JLxFavTjeDXEXo65HCRqbmLBw9xX9gfC4BZiSzbLXKzW3jPz+J0P71pLbD5tBMTT+mkstV5gD0c9Q==
- dependencies:
- "@babel/runtime" "^7.20.7"
- classnames "^2.2.1"
- rc-util "^5.38.0"
- resize-observer-polyfill "^1.5.1"
-
-rc-segmented@~2.3.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/rc-segmented/-/rc-segmented-2.3.0.tgz#b3fe080fb434a266c02e30bb62a47d2c6e094341"
- integrity sha512-I3FtM5Smua/ESXutFfb8gJ8ZPcvFR+qUgeeGFQHBOvRiRKyAk4aBE5nfqrxXx+h8/vn60DQjOt6i4RNtrbOobg==
- dependencies:
- "@babel/runtime" "^7.11.1"
- classnames "^2.2.1"
- rc-motion "^2.4.4"
- rc-util "^5.17.0"
-
-rc-select@~14.14.0:
- version "14.14.0"
- resolved "https://registry.yarnpkg.com/rc-select/-/rc-select-14.14.0.tgz#110771fad72496843b245236bcb0007553b9fe0d"
- integrity sha512-Uo2wulrjoPPRLCPd7zlK4ZFVJxlTN//yp1xWP/U+TUOQCyXrT+Duvq/Si5OzVcmQyWAUSbsplc2OwNNhvbOeKQ==
- dependencies:
- "@babel/runtime" "^7.10.1"
- "@rc-component/trigger" "^2.1.1"
- classnames "2.x"
- rc-motion "^2.0.1"
- rc-overflow "^1.3.1"
- rc-util "^5.16.1"
- rc-virtual-list "^3.5.2"
-
-rc-slider@~10.6.2:
- version "10.6.2"
- resolved "https://registry.yarnpkg.com/rc-slider/-/rc-slider-10.6.2.tgz#8bd3b63b24f2f3682ea1bf86d021073189cf33eb"
- integrity sha512-FjkoFjyvUQWcBo1F3RgSglky3ar0+qHLM41PlFVYB4Bj3RD8E/Mv7kqMouLFBU+3aFglMzzctAIWRwajEuueSw==
- dependencies:
- "@babel/runtime" "^7.10.1"
- classnames "^2.2.5"
- rc-util "^5.36.0"
-
-rc-steps@~6.0.1:
- version "6.0.1"
- resolved "https://registry.yarnpkg.com/rc-steps/-/rc-steps-6.0.1.tgz#c2136cd0087733f6d509209a84a5c80dc29a274d"
- integrity sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g==
- dependencies:
- "@babel/runtime" "^7.16.7"
- classnames "^2.2.3"
- rc-util "^5.16.1"
-
-rc-switch@~4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/rc-switch/-/rc-switch-4.1.0.tgz#f37d81b4e0c5afd1274fd85367b17306bf25e7d7"
- integrity sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg==
- dependencies:
- "@babel/runtime" "^7.21.0"
- classnames "^2.2.1"
- rc-util "^5.30.0"
-
-rc-table@~7.45.6:
- version "7.45.6"
- resolved "https://registry.yarnpkg.com/rc-table/-/rc-table-7.45.6.tgz#53286fc08cd18f0be704de76fdbf19d1de7749da"
- integrity sha512-FYsTya3RQzLYct+o3fqHIZQIwrmsvrvhTg/I6hzlJZ1XoVAGoTmgkN1mMilVlYgksZTey9BCNYh94c6yhdjTXQ==
- dependencies:
- "@babel/runtime" "^7.10.1"
- "@rc-component/context" "^1.4.0"
- classnames "^2.2.5"
- rc-resize-observer "^1.1.0"
- rc-util "^5.37.0"
- rc-virtual-list "^3.11.1"
-
-rc-tabs@~15.1.0:
- version "15.1.0"
- resolved "https://registry.yarnpkg.com/rc-tabs/-/rc-tabs-15.1.0.tgz#6f6addf3ec4d0815f9f05d1317b47a579838e92f"
- integrity sha512-xTNz4Km1025emtkv1q7xKhjPwAtXr/wycuXVTAcFJg+DKhnPDDbnwbA9KRW0SawAVOGvVEj8ZrBlU0u0FGLrbg==
- dependencies:
- "@babel/runtime" "^7.11.2"
- classnames "2.x"
- rc-dropdown "~4.2.0"
- rc-menu "~9.14.0"
- rc-motion "^2.6.2"
- rc-resize-observer "^1.0.0"
- rc-util "^5.34.1"
-
-rc-textarea@~1.7.0:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/rc-textarea/-/rc-textarea-1.7.0.tgz#115c421359dddee58c601008ec2209b41cb8f8df"
- integrity sha512-UxizYJkWkmxP3zofXgc487QiGyDmhhheDLLjIWbFtDmiru1ls30KpO8odDaPyqNUIy9ugj5djxTEuezIn6t3Jg==
- dependencies:
- "@babel/runtime" "^7.10.1"
- classnames "^2.2.1"
- rc-input "~1.5.0"
- rc-resize-observer "^1.0.0"
- rc-util "^5.27.0"
-
-rc-tooltip@~6.2.0:
- version "6.2.0"
- resolved "https://registry.yarnpkg.com/rc-tooltip/-/rc-tooltip-6.2.0.tgz#4dd7575674137a5b14f118a5c16435d3f5e4a9c9"
- integrity sha512-iS/3iOAvtDh9GIx1ulY7EFUXUtktFccNLsARo3NPgLf0QW9oT0w3dA9cYWlhqAKmD+uriEwdWz1kH0Qs4zk2Aw==
- dependencies:
- "@babel/runtime" "^7.11.2"
- "@rc-component/trigger" "^2.0.0"
- classnames "^2.3.1"
-
-rc-tree-select@~5.21.0:
- version "5.21.0"
- resolved "https://registry.yarnpkg.com/rc-tree-select/-/rc-tree-select-5.21.0.tgz#4ff94d5c28cba9810c4970d1f12ab7248c3b6e55"
- integrity sha512-w+9qEu6zh0G3wt9N/hzWNSnqYH1i9mH1Nqxo0caxLRRFXF5yZWYmpCDoDTMdQM1Y4z3Q5yj08qyrPH/d4AtumA==
- dependencies:
- "@babel/runtime" "^7.10.1"
- classnames "2.x"
- rc-select "~14.14.0"
- rc-tree "~5.8.1"
- rc-util "^5.16.1"
-
-rc-tree@~5.8.1, rc-tree@~5.8.7:
- version "5.8.7"
- resolved "https://registry.yarnpkg.com/rc-tree/-/rc-tree-5.8.7.tgz#79fe560eca8a998a5cd866cdf374ffc3643754f1"
- integrity sha512-cpsIQZ4nNYwpj6cqPRt52e/69URuNdgQF9wZ10InmEf8W3+i0A41OVmZWwHuX9gegQSqj+DPmaDkZFKQZ+ZV1w==
- dependencies:
- "@babel/runtime" "^7.10.1"
- classnames "2.x"
- rc-motion "^2.0.1"
- rc-util "^5.16.1"
- rc-virtual-list "^3.5.1"
-
-rc-upload@~4.5.2:
- version "4.5.2"
- resolved "https://registry.yarnpkg.com/rc-upload/-/rc-upload-4.5.2.tgz#ea493fbaaf57d9369ee954b20e1d8bc35c818a1a"
- integrity sha512-QO3ne77DwnAPKFn0bA5qJM81QBjQi0e0NHdkvpFyY73Bea2NfITiotqJqVjHgeYPOJu5lLVR32TNGP084aSoXA==
- dependencies:
- "@babel/runtime" "^7.18.3"
- classnames "^2.2.5"
- rc-util "^5.2.0"
-
-rc-util@^5.0.1, rc-util@^5.16.1, rc-util@^5.17.0, rc-util@^5.18.1, rc-util@^5.2.0, rc-util@^5.20.1, rc-util@^5.21.0, rc-util@^5.24.4, rc-util@^5.25.2, rc-util@^5.27.0, rc-util@^5.30.0, rc-util@^5.31.1, rc-util@^5.32.2, rc-util@^5.34.1, rc-util@^5.35.0, rc-util@^5.36.0, rc-util@^5.37.0, rc-util@^5.38.0, rc-util@^5.38.1, rc-util@^5.39.3, rc-util@^5.40.1:
- version "5.41.0"
- resolved "https://registry.yarnpkg.com/rc-util/-/rc-util-5.41.0.tgz#b1ba000d4f3a9e72563370a3243b59f89b40e1bd"
- integrity sha512-xtlCim9RpmVv0Ar2Nnc3WfJCxjQkTf3xHPWoFdjp1fSs2NirQwqiQrfqdU9HUe0kdfb168M/T8Dq0IaX50xeKg==
- dependencies:
- "@babel/runtime" "^7.18.3"
- react-is "^18.2.0"
-
-rc-virtual-list@^3.11.1, rc-virtual-list@^3.5.1, rc-virtual-list@^3.5.2:
- version "3.14.2"
- resolved "https://registry.yarnpkg.com/rc-virtual-list/-/rc-virtual-list-3.14.2.tgz#8ffee57100eab1eeae8df6a67bf75d0b7fd176cc"
- integrity sha512-rA+W5xryhklJAcmswNyuKB3ZGeB855io+yOFQK5u/RXhjdshGblfKpNkQr4/9fBhZns0+uiL/0/s6IP2krtSmg==
- dependencies:
- "@babel/runtime" "^7.20.0"
- classnames "^2.2.6"
- rc-resize-observer "^1.0.0"
- rc-util "^5.36.0"
-
-react-canvas-confetti@1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/react-canvas-confetti/-/react-canvas-confetti-1.2.1.tgz#22ac64cbc478cf57cb5f61c130322e359b35389d"
- integrity sha512-onNjQNkhQjrB2JVCeRpJW7o8VlBNJvo3Eht9zlQlofNLVvvOd1+PzBLU5Ev8n5sFBkTbKJmIUVG0eZnkAl5cpg==
- dependencies:
- "@types/canvas-confetti" "1.4.0"
- canvas-confetti "1.4.0"
-
-react-dom@^18.3.1:
- version "18.3.1"
- resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.3.1.tgz#c2265d79511b57d479b3dd3fdfa51536494c5cb4"
- integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==
- dependencies:
- loose-envify "^1.1.0"
- scheduler "^0.23.2"
-
-react-is@^16.13.1:
- version "16.13.1"
- resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
- integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
-
-react-is@^17.0.1:
- version "17.0.2"
- resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0"
- integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==
-
-react-is@^18.0.0, react-is@^18.2.0:
- version "18.3.1"
- resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e"
- integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==
-
-react@^18.3.1:
- version "18.3.1"
- resolved "https://registry.yarnpkg.com/react/-/react-18.3.1.tgz#49ab892009c53933625bd16b2533fc754cab2891"
- integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==
- dependencies:
- loose-envify "^1.1.0"
-
-readdirp@~3.6.0:
- version "3.6.0"
- resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
- integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
- dependencies:
- picomatch "^2.2.1"
-
-redent@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f"
- integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==
- dependencies:
- indent-string "^4.0.0"
- strip-indent "^3.0.0"
-
-reflect.getprototypeof@^1.0.4:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz#3ab04c32a8390b770712b7a8633972702d278859"
- integrity sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==
- dependencies:
- call-bind "^1.0.7"
- define-properties "^1.2.1"
- es-abstract "^1.23.1"
- es-errors "^1.3.0"
- get-intrinsic "^1.2.4"
- globalthis "^1.0.3"
- which-builtin-type "^1.1.3"
-
-regenerator-runtime@^0.14.0:
- version "0.14.1"
- resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f"
- integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==
-
-regexp.prototype.flags@^1.5.1, regexp.prototype.flags@^1.5.2:
- version "1.5.2"
- resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz#138f644a3350f981a858c44f6bb1a61ff59be334"
- integrity sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==
- dependencies:
- call-bind "^1.0.6"
- define-properties "^1.2.1"
- es-errors "^1.3.0"
- set-function-name "^2.0.1"
-
-require-directory@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
- integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==
-
-requires-port@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
- integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==
-
-resize-observer-polyfill@^1.5.1:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464"
- integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==
-
-resolve-cwd@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d"
- integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==
- dependencies:
- resolve-from "^5.0.0"
-
-resolve-from@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
- integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
-
-resolve-from@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
- integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
-
-resolve-pkg-maps@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f"
- integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==
-
-resolve.exports@^2.0.0:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800"
- integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==
-
-resolve@^1.20.0, resolve@^1.22.4:
- version "1.22.8"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d"
- integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==
- dependencies:
- is-core-module "^2.13.0"
- path-parse "^1.0.7"
- supports-preserve-symlinks-flag "^1.0.0"
-
-resolve@^2.0.0-next.5:
- version "2.0.0-next.5"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.5.tgz#6b0ec3107e671e52b68cd068ef327173b90dc03c"
- integrity sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==
- dependencies:
- is-core-module "^2.13.0"
- path-parse "^1.0.7"
- supports-preserve-symlinks-flag "^1.0.0"
-
-reusify@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
- integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
-
-rimraf@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
- integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
- dependencies:
- glob "^7.1.3"
-
-run-parallel@^1.1.9:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
- integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
- dependencies:
- queue-microtask "^1.2.2"
-
-safe-array-concat@^1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.2.tgz#81d77ee0c4e8b863635227c721278dd524c20edb"
- integrity sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==
- dependencies:
- call-bind "^1.0.7"
- get-intrinsic "^1.2.4"
- has-symbols "^1.0.3"
- isarray "^2.0.5"
-
-safe-regex-test@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377"
- integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==
- dependencies:
- call-bind "^1.0.6"
- es-errors "^1.3.0"
- is-regex "^1.1.4"
-
-"safer-buffer@>= 2.1.2 < 3.0.0":
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
- integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
-
-sass@^1.72.0:
- version "1.77.2"
- resolved "https://registry.yarnpkg.com/sass/-/sass-1.77.2.tgz#18d4ed2eefc260cdc8099c5439ec1303fd5863aa"
- integrity sha512-eb4GZt1C3avsX3heBNlrc7I09nyT00IUuo4eFhAbeXWU2fvA7oXI53SxODVAA+zgZCk9aunAZgO+losjR3fAwA==
- dependencies:
- chokidar ">=3.0.0 <4.0.0"
- immutable "^4.0.0"
- source-map-js ">=0.6.2 <2.0.0"
-
-saxes@^6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/saxes/-/saxes-6.0.0.tgz#fe5b4a4768df4f14a201b1ba6a65c1f3d9988cc5"
- integrity sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==
- dependencies:
- xmlchars "^2.2.0"
-
-scheduler@^0.23.2:
- version "0.23.2"
- resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.2.tgz#414ba64a3b282892e944cf2108ecc078d115cdc3"
- integrity sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==
- dependencies:
- loose-envify "^1.1.0"
-
-scroll-into-view-if-needed@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz#fa9524518c799b45a2ef6bbffb92bcad0296d01f"
- integrity sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==
- dependencies:
- compute-scroll-into-view "^3.0.2"
-
-scrypt-js@3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312"
- integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==
-
-semver@^6.3.0, semver@^6.3.1:
- version "6.3.1"
- resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
- integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
-
-semver@^7.3.7, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0:
- version "7.6.2"
- resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13"
- integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==
-
-set-function-length@^1.2.1:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449"
- integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==
- dependencies:
- define-data-property "^1.1.4"
- es-errors "^1.3.0"
- function-bind "^1.1.2"
- get-intrinsic "^1.2.4"
- gopd "^1.0.1"
- has-property-descriptors "^1.0.2"
-
-set-function-name@^2.0.1, set-function-name@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985"
- integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==
- dependencies:
- define-data-property "^1.1.4"
- es-errors "^1.3.0"
- functions-have-names "^1.2.3"
- has-property-descriptors "^1.0.2"
-
-shallowequal@1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8"
- integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==
-
-shebang-command@^2.0.0:
- version "2.0.0"
- 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@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
- integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
-
-side-channel@^1.0.4, side-channel@^1.0.6:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2"
- integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==
- dependencies:
- call-bind "^1.0.7"
- es-errors "^1.3.0"
- get-intrinsic "^1.2.4"
- object-inspect "^1.13.1"
-
-signal-exit@^3.0.3, signal-exit@^3.0.7:
- version "3.0.7"
- resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
- integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
-
-signal-exit@^4.0.1:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04"
- integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
-
-sisteransi@^1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
- integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==
-
-slash@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
- integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
-
-"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2, source-map-js@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af"
- integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==
-
-source-map-support@0.5.13:
- version "0.5.13"
- resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932"
- integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==
- dependencies:
- buffer-from "^1.0.0"
- source-map "^0.6.0"
-
-source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
- integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
-
-sprintf-js@~1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
- integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==
-
-stack-utils@^2.0.3:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f"
- integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==
- dependencies:
- escape-string-regexp "^2.0.0"
-
-stop-iteration-iterator@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4"
- integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==
- dependencies:
- internal-slot "^1.0.4"
-
-streamsearch@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764"
- integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==
-
-string-convert@^0.2.0:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/string-convert/-/string-convert-0.2.1.tgz#6982cc3049fbb4cd85f8b24568b9d9bf39eeff97"
- integrity sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==
-
-string-length@^4.0.1:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a"
- integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==
- dependencies:
- char-regex "^1.0.2"
- strip-ansi "^6.0.0"
-
-"string-width-cjs@npm:string-width@^4.2.0":
- version "4.2.3"
- 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@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
- version "4.2.3"
- 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@^5.0.1, string-width@^5.1.2:
- version "5.1.2"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794"
- integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==
- dependencies:
- eastasianwidth "^0.2.0"
- emoji-regex "^9.2.2"
- strip-ansi "^7.0.1"
-
-string.prototype.matchall@^4.0.10:
- version "4.0.11"
- resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz#1092a72c59268d2abaad76582dccc687c0297e0a"
- integrity sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==
- dependencies:
- call-bind "^1.0.7"
- define-properties "^1.2.1"
- es-abstract "^1.23.2"
- es-errors "^1.3.0"
- es-object-atoms "^1.0.0"
- get-intrinsic "^1.2.4"
- gopd "^1.0.1"
- has-symbols "^1.0.3"
- internal-slot "^1.0.7"
- regexp.prototype.flags "^1.5.2"
- set-function-name "^2.0.2"
- side-channel "^1.0.6"
-
-string.prototype.trim@^1.2.9:
- version "1.2.9"
- resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz#b6fa326d72d2c78b6df02f7759c73f8f6274faa4"
- integrity sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==
- dependencies:
- call-bind "^1.0.7"
- define-properties "^1.2.1"
- es-abstract "^1.23.0"
- es-object-atoms "^1.0.0"
-
-string.prototype.trimend@^1.0.8:
- version "1.0.8"
- resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz#3651b8513719e8a9f48de7f2f77640b26652b229"
- integrity sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==
- dependencies:
- call-bind "^1.0.7"
- define-properties "^1.2.1"
- es-object-atoms "^1.0.0"
-
-string.prototype.trimstart@^1.0.8:
- version "1.0.8"
- resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde"
- integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==
- dependencies:
- call-bind "^1.0.7"
- define-properties "^1.2.1"
- es-object-atoms "^1.0.0"
-
-"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
- version "6.0.1"
- 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-ansi@^6.0.0, strip-ansi@^6.0.1:
- version "6.0.1"
- 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-ansi@^7.0.1:
- version "7.1.0"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45"
- integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==
- dependencies:
- ansi-regex "^6.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.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878"
- integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==
-
-strip-final-newline@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
- integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
-
-strip-indent@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001"
- integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==
- dependencies:
- min-indent "^1.0.0"
-
-strip-json-comments@^3.1.1:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
- integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
-
-styled-components@^6.1.8:
- version "6.1.11"
- resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-6.1.11.tgz#01948e5195bf1d39e57e0a85b41958c80e40cfb8"
- integrity sha512-Ui0jXPzbp1phYij90h12ksljKGqF8ncGx+pjrNPsSPhbUUjWT2tD1FwGo2LF6USCnbrsIhNngDfodhxbegfEOA==
- dependencies:
- "@emotion/is-prop-valid" "1.2.2"
- "@emotion/unitless" "0.8.1"
- "@types/stylis" "4.2.5"
- css-to-react-native "3.2.0"
- csstype "3.1.3"
- postcss "8.4.38"
- shallowequal "1.1.0"
- stylis "4.3.2"
- tslib "2.6.2"
-
-styled-jsx@5.1.1:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.1.1.tgz#839a1c3aaacc4e735fed0781b8619ea5d0009d1f"
- integrity sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==
- dependencies:
- client-only "0.0.1"
-
-stylis@4.3.2, stylis@^4.0.13:
- version "4.3.2"
- resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.3.2.tgz#8f76b70777dd53eb669c6f58c997bf0a9972e444"
- integrity sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==
-
-supports-color@^5.3.0:
- version "5.5.0"
- 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@^7.1.0:
- version "7.2.0"
- 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.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.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
- integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
-
-symbol-tree@^3.2.4:
- version "3.2.4"
- resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"
- integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==
-
-synckit@^0.8.6:
- version "0.8.8"
- resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.8.tgz#fe7fe446518e3d3d49f5e429f443cf08b6edfcd7"
- integrity sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==
- dependencies:
- "@pkgr/core" "^0.1.0"
- tslib "^2.6.2"
-
-tapable@^2.2.0:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0"
- integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==
-
-test-exclude@^6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e"
- integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==
- dependencies:
- "@istanbuljs/schema" "^0.1.2"
- glob "^7.1.4"
- minimatch "^3.0.4"
-
-text-table@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
- integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==
-
-throttle-debounce@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-5.0.0.tgz#a17a4039e82a2ed38a5e7268e4132d6960d41933"
- integrity sha512-2iQTSgkkc1Zyk0MeVrt/3BvuOXYPl/R8Z0U2xxo9rjwNciaHDG3R+Lm6dh4EeUci49DanvBnuqI6jshoQQRGEg==
-
-tmpl@1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc"
- integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==
-
-to-fast-properties@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
- integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==
-
-to-regex-range@^5.0.1:
- version "5.0.1"
- 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"
-
-toggle-selection@^1.0.6:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32"
- integrity sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==
-
-tough-cookie@^4.1.2:
- version "4.1.4"
- resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.4.tgz#945f1461b45b5a8c76821c33ea49c3ac192c1b36"
- integrity sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==
- dependencies:
- psl "^1.1.33"
- punycode "^2.1.1"
- universalify "^0.2.0"
- url-parse "^1.5.3"
-
-tr46@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9"
- integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==
- dependencies:
- punycode "^2.1.1"
-
-ts-api-utils@^1.0.1, ts-api-utils@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1"
- integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==
-
-ts-node@^10.9.2:
- version "10.9.2"
- resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f"
- integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==
- dependencies:
- "@cspotcode/source-map-support" "^0.8.0"
- "@tsconfig/node10" "^1.0.7"
- "@tsconfig/node12" "^1.0.7"
- "@tsconfig/node14" "^1.0.0"
- "@tsconfig/node16" "^1.0.2"
- acorn "^8.4.1"
- acorn-walk "^8.1.1"
- arg "^4.1.0"
- create-require "^1.1.0"
- diff "^4.0.1"
- make-error "^1.1.1"
- v8-compile-cache-lib "^3.0.1"
- yn "3.1.1"
-
-tsconfig-paths@^3.15.0:
- version "3.15.0"
- resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4"
- integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==
- dependencies:
- "@types/json5" "^0.0.29"
- json5 "^1.0.2"
- minimist "^1.2.6"
- strip-bom "^3.0.0"
-
-tslib@2.6.2, tslib@^2.4.0, tslib@^2.6.2:
- version "2.6.2"
- resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae"
- integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
-
-tslib@^1.8.1:
- version "1.14.1"
- resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
- integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
-
-tsutils@^3.21.0:
- version "3.21.0"
- resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623"
- integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==
- dependencies:
- tslib "^1.8.1"
-
-type-check@^0.4.0, type-check@~0.4.0:
- version "0.4.0"
- resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
- integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
- dependencies:
- prelude-ls "^1.2.1"
-
-type-detect@4.0.8:
- version "4.0.8"
- resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
- integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
-
-type-fest@^0.20.2:
- version "0.20.2"
- 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@^0.21.3:
- version "0.21.3"
- resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37"
- integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==
-
-typed-array-buffer@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz#1867c5d83b20fcb5ccf32649e5e2fc7424474ff3"
- integrity sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==
- dependencies:
- call-bind "^1.0.7"
- es-errors "^1.3.0"
- is-typed-array "^1.1.13"
-
-typed-array-byte-length@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz#d92972d3cff99a3fa2e765a28fcdc0f1d89dec67"
- integrity sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==
- dependencies:
- call-bind "^1.0.7"
- for-each "^0.3.3"
- gopd "^1.0.1"
- has-proto "^1.0.3"
- is-typed-array "^1.1.13"
-
-typed-array-byte-offset@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz#f9ec1acb9259f395093e4567eb3c28a580d02063"
- integrity sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==
- dependencies:
- available-typed-arrays "^1.0.7"
- call-bind "^1.0.7"
- for-each "^0.3.3"
- gopd "^1.0.1"
- has-proto "^1.0.3"
- is-typed-array "^1.1.13"
-
-typed-array-length@^1.0.6:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.6.tgz#57155207c76e64a3457482dfdc1c9d1d3c4c73a3"
- integrity sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==
- dependencies:
- call-bind "^1.0.7"
- for-each "^0.3.3"
- gopd "^1.0.1"
- has-proto "^1.0.3"
- is-typed-array "^1.1.13"
- possible-typed-array-names "^1.0.0"
-
-typescript@5.5.3:
- version "5.5.3"
- resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.3.tgz#e1b0a3c394190838a0b168e771b0ad56a0af0faa"
- integrity sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==
-
-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:
- call-bind "^1.0.2"
- has-bigints "^1.0.2"
- has-symbols "^1.0.3"
- which-boxed-primitive "^1.0.2"
-
-undici-types@~5.26.4:
- version "5.26.5"
- resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617"
- integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==
-
-universalify@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0"
- integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==
-
-update-browserslist-db@^1.0.13:
- version "1.0.16"
- resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz#f6d489ed90fb2f07d67784eb3f53d7891f736356"
- integrity sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==
- dependencies:
- escalade "^3.1.2"
- picocolors "^1.0.1"
-
-uri-js@^4.2.2:
- version "4.4.1"
- resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
- integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
- dependencies:
- punycode "^2.1.0"
-
-url-parse@^1.5.3:
- version "1.5.10"
- resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1"
- integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==
- dependencies:
- querystringify "^2.1.1"
- requires-port "^1.0.0"
-
-usehooks-ts@^2.14.0:
- version "2.16.0"
- resolved "https://registry.yarnpkg.com/usehooks-ts/-/usehooks-ts-2.16.0.tgz#31deaa2f1147f65666aae925bd890b54e63b0d3f"
- integrity sha512-bez95WqYujxp6hFdM/CpRDiVPirZPxlMzOH2QB8yopoKQMXpscyZoxOjpEdaxvV+CAWUDSM62cWnqHE0E/MZ7w==
- dependencies:
- lodash.debounce "^4.0.8"
-
-v8-compile-cache-lib@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf"
- integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==
-
-v8-to-istanbul@^9.0.1:
- version "9.2.0"
- resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz#2ed7644a245cddd83d4e087b9b33b3e62dfd10ad"
- integrity sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==
- dependencies:
- "@jridgewell/trace-mapping" "^0.3.12"
- "@types/istanbul-lib-coverage" "^2.0.1"
- convert-source-map "^2.0.0"
-
-w3c-xmlserializer@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz#aebdc84920d806222936e3cdce408e32488a3073"
- integrity sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==
- dependencies:
- xml-name-validator "^4.0.0"
-
-walker@^1.0.8:
- version "1.0.8"
- resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f"
- integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==
- dependencies:
- makeerror "1.0.12"
-
-webidl-conversions@^7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a"
- integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==
-
-whatwg-encoding@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz#e7635f597fd87020858626805a2729fa7698ac53"
- integrity sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==
- dependencies:
- iconv-lite "0.6.3"
-
-whatwg-mimetype@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7"
- integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==
-
-whatwg-url@^11.0.0:
- version "11.0.0"
- resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018"
- integrity sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==
- dependencies:
- tr46 "^3.0.0"
- webidl-conversions "^7.0.0"
-
-which-boxed-primitive@^1.0.2:
- version "1.0.2"
- 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"
- is-boolean-object "^1.1.0"
- is-number-object "^1.0.4"
- is-string "^1.0.5"
- is-symbol "^1.0.3"
-
-which-builtin-type@^1.1.3:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.1.3.tgz#b1b8443707cc58b6e9bf98d32110ff0c2cbd029b"
- integrity sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==
- dependencies:
- function.prototype.name "^1.1.5"
- has-tostringtag "^1.0.0"
- is-async-function "^2.0.0"
- is-date-object "^1.0.5"
- is-finalizationregistry "^1.0.2"
- is-generator-function "^1.0.10"
- is-regex "^1.1.4"
- is-weakref "^1.0.2"
- isarray "^2.0.5"
- which-boxed-primitive "^1.0.2"
- which-collection "^1.0.1"
- which-typed-array "^1.1.9"
-
-which-collection@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.2.tgz#627ef76243920a107e7ce8e96191debe4b16c2a0"
- integrity sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==
- dependencies:
- is-map "^2.0.3"
- is-set "^2.0.3"
- is-weakmap "^2.0.2"
- is-weakset "^2.0.3"
-
-which-typed-array@^1.1.13, which-typed-array@^1.1.14, which-typed-array@^1.1.15, which-typed-array@^1.1.9:
- version "1.1.15"
- resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d"
- integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==
- dependencies:
- available-typed-arrays "^1.0.7"
- call-bind "^1.0.7"
- for-each "^0.3.3"
- gopd "^1.0.1"
- has-tostringtag "^1.0.2"
-
-which@^2.0.1:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
- integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
- dependencies:
- isexe "^2.0.0"
-
-word-wrap@^1.2.5:
- version "1.2.5"
- resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34"
- integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==
-
-"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
- version "7.0.0"
- 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"
- string-width "^4.1.0"
- strip-ansi "^6.0.0"
-
-wrap-ansi@^7.0.0:
- version "7.0.0"
- 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"
- string-width "^4.1.0"
- strip-ansi "^6.0.0"
-
-wrap-ansi@^8.1.0:
- version "8.1.0"
- resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"
- integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==
- dependencies:
- ansi-styles "^6.1.0"
- string-width "^5.0.1"
- strip-ansi "^7.0.1"
-
-wrappy@1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
- integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
-
-write-file-atomic@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd"
- integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==
- dependencies:
- imurmurhash "^0.1.4"
- signal-exit "^3.0.7"
-
-ws@7.4.6:
- version "7.4.6"
- resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c"
- integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==
-
-ws@^8.11.0:
- version "8.17.0"
- resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.0.tgz#d145d18eca2ed25aaf791a183903f7be5e295fea"
- integrity sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==
-
-xml-name-validator@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835"
- integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==
-
-xmlchars@^2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb"
- integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==
-
-y18n@^5.0.5:
- version "5.0.8"
- resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"
- integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
-
-yallist@^3.0.2:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
- integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
-
-yargs-parser@^21.1.1:
- version "21.1.1"
- resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35"
- integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==
-
-yargs@^17.3.1:
- version "17.7.2"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269"
- integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==
- dependencies:
- cliui "^8.0.1"
- escalade "^3.1.1"
- get-caller-file "^2.0.5"
- require-directory "^2.1.1"
- string-width "^4.2.3"
- y18n "^5.0.5"
- yargs-parser "^21.1.1"
-
-yn@3.1.1:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
- integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==
-
-yocto-queue@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
- integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
diff --git a/hardhat.config.js b/hardhat.config.js
deleted file mode 100644
index 854bee0ff..000000000
--- a/hardhat.config.js
+++ /dev/null
@@ -1,16 +0,0 @@
-require('dotenv').config();
-
-/**@type import('hardhat/config').HardhatUserConfig */
-const config = {
- defaultNetwork: "hardhat",
- networks: {
- hardhat: {
- forking: {
- url: process.env.FORK_URL,
- },
- chainId: 100,
- },
- },
-};
-
-module.exports = config
\ No newline at end of file
diff --git a/operate/cli.py b/operate/cli.py
index 7d3292760..a08d312b9 100644
--- a/operate/cli.py
+++ b/operate/cli.py
@@ -395,27 +395,33 @@ async def _create_wallet(request: Request) -> t.List[t.Dict]:
@with_retries
async def _get_safes(request: Request) -> t.List[t.Dict]:
"""Create wallet safe"""
- safes = []
+ all_safes = []
for wallet in operate.wallet_manager:
- safes.append({wallet.ledger_type: wallet.safe})
- return JSONResponse(content=safes)
+ safes = []
+ if wallet.safes is not None:
+ safes = list(wallet.safes.values())
+ all_safes.append({wallet.ledger_type: safes})
+ return JSONResponse(content=all_safes)
@app.get("/api/wallet/safe/{chain}")
@with_retries
async def _get_safe(request: Request) -> t.List[t.Dict]:
"""Create wallet safe"""
- ledger_type = get_ledger_type_from_chain_type(
- chain=ChainType.from_string(request.path_params["chain"])
- )
+ chain_type = ChainType.from_string(request.path_params["chain"])
+ ledger_type = get_ledger_type_from_chain_type(chain=chain_type)
manager = operate.wallet_manager
if not manager.exists(ledger_type=ledger_type):
return JSONResponse(
content={"error": "Wallet does not exist"},
status_code=404,
)
+ safes = manager.load(ledger_type=ledger_type).safes
+ if safes is None or safes.get(chain_type) is None:
+ return JSONResponse(content={"error": "No safes found"})
+
return JSONResponse(
content={
- "safe": manager.load(ledger_type=ledger_type).safe,
+ "safe": safes[chain_type],
},
)
@@ -443,22 +449,73 @@ async def _create_safe(request: Request) -> t.List[t.Dict]:
return JSONResponse(content={"error": "Wallet does not exist"})
wallet = manager.load(ledger_type=ledger_type)
- if wallet.safe is not None:
+ if wallet.safes is not None and wallet.safes.get(chain_type) is not None:
return JSONResponse(
- content={"safe": wallet.safe, "message": "Safe already exists!"}
+ content={"safe": wallet.safes.get(chain_type), "message": "Safe already exists!"}
)
+ safes = t.cast(t.Dict[ChainType, str], wallet.safes)
wallet.create_safe( # pylint: disable=no-member
chain_type=chain_type,
owner=data.get("owner"),
)
wallet.transfer(
- to=t.cast(str, wallet.safe),
+ to=t.cast(str, safes.get(chain_type)),
amount=int(1e18),
chain_type=chain_type,
from_safe=False,
)
- return JSONResponse(content={"safe": wallet.safe, "message": "Safe created!"})
+ return JSONResponse(content={"safe": safes.get(chain_type), "message": "Safe created!"})
+
+
+ @app.post("/api/wallet/safes")
+ @with_retries
+ async def _create_safes(request: Request) -> t.List[t.Dict]:
+ """Create wallet safes"""
+ if operate.user_account is None:
+ return JSONResponse(
+ content={"error": "Cannot create safe; User account does not exist!"},
+ status_code=400,
+ )
+
+ if operate.password is None:
+ return JSONResponse(
+ content={"error": "You need to login before creating a safe"},
+ status_code=401,
+ )
+
+ data = await request.json()
+ chain_types = [ChainType(chain_type) for chain_type in data["chain_types"]]
+ # check that all chains are supported
+ for chain_type in chain_types:
+ ledger_type = get_ledger_type_from_chain_type(chain=chain_type)
+ manager = operate.wallet_manager
+ if not manager.exists(ledger_type=ledger_type):
+ return JSONResponse(content={"error": f"Wallet does not exist for chain_type {chain_type}"})
+
+ # mint the safes
+ for chain_type in chain_types:
+ ledger_type = get_ledger_type_from_chain_type(chain=chain_type)
+ manager = operate.wallet_manager
+
+ wallet = manager.load(ledger_type=ledger_type)
+ if wallet.safes is not None and wallet.safes.get(chain_type) is not None:
+ logger.info(f"Safe already exists for chain_type {chain_type}")
+ continue
+
+ safes = t.cast(t.Dict[ChainType, str], wallet.safes)
+ wallet.create_safe( # pylint: disable=no-member
+ chain_type=chain_type,
+ owner=data.get("owner"),
+ )
+ wallet.transfer(
+ to=t.cast(str, safes.get(chain_type)),
+ amount=int(1e18),
+ chain_type=chain_type,
+ from_safe=False,
+ )
+
+ return JSONResponse(content={"safes": safes, "message": "Safes created!"})
@app.put("/api/wallet/safe")
@with_retries
@@ -505,47 +562,33 @@ async def _create_services(request: Request) -> JSONResponse:
return USER_NOT_LOGGED_IN_ERROR
template = await request.json()
manager = operate.service_manager()
- update = False
if len(manager.json) > 0:
old_hash = manager.json[0]["hash"]
if old_hash == template["hash"]:
logger.info(f'Loading service {template["hash"]}')
service = manager.load_or_create(
hash=template["hash"],
- rpc=template["configuration"]["rpc"],
- on_chain_user_params=services.manage.OnChainUserParams.from_json(
- template["configuration"]
- ),
+ service_template=template,
)
else:
logger.info(f"Updating service from {old_hash} to " + template["hash"])
service = manager.update_service(
old_hash=old_hash,
new_hash=template["hash"],
- rpc=template["configuration"]["rpc"],
- on_chain_user_params=services.manage.OnChainUserParams.from_json(
- template["configuration"]
- ),
- from_safe=True,
+ service_template=template,
)
- update = True
else:
logger.info(f'Creating service {template["hash"]}')
service = manager.load_or_create(
hash=template["hash"],
- rpc=template["configuration"]["rpc"],
- on_chain_user_params=services.manage.OnChainUserParams.from_json(
- template["configuration"]
- ),
+ service_template=template,
)
if template.get("deploy", False):
def _fn() -> None:
- manager.deploy_service_onchain_from_safe(
- hash=service.hash, update=update
- )
- manager.stake_service_on_chain_from_safe(hash=service.hash)
+ manager.deploy_service_onchain_from_safe(hash=service.hash)
+ # manager.stake_service_on_chain_from_safe(hash=service.hash) # Done inside deploy_service_onchain
manager.fund_service(hash=service.hash)
manager.deploy_service_locally(hash=service.hash)
@@ -570,8 +613,8 @@ async def _update_services(request: Request) -> JSONResponse:
)
if template.get("deploy", False):
manager = operate.service_manager()
- manager.deploy_service_onchain_from_safe(hash=service.hash, update=True)
- manager.stake_service_on_chain_from_safe(hash=service.hash)
+ manager.deploy_service_onchain_from_safe(hash=service.hash)
+ # manager.stake_service_on_chain_from_safe(hash=service.hash) # Done in deploy_service_onchain_from_safe
manager.fund_service(hash=service.hash)
manager.deploy_service_locally(hash=service.hash)
schedule_funding_job(service=service.hash)
@@ -595,6 +638,7 @@ async def _get_service(request: Request) -> JSONResponse:
)
)
+ # TODO this endpoint is possibly not used
@app.post("/api/services/{service}/onchain/deploy")
@with_retries
async def _deploy_service_onchain(request: Request) -> JSONResponse:
@@ -660,6 +704,7 @@ async def _get_service_deployment(request: Request) -> JSONResponse:
@with_retries
async def _build_service_locally(request: Request) -> JSONResponse:
"""Create a service."""
+ # TODO: add support for chain id.
if not operate.service_manager().exists(service=request.path_params["service"]):
return service_not_found_error(service=request.path_params["service"])
deployment = (
@@ -687,7 +732,7 @@ async def _start_service_locally(request: Request) -> JSONResponse:
def _fn() -> None:
manager.deploy_service_onchain(hash=service)
- manager.stake_service_on_chain(hash=service)
+ # manager.stake_service_on_chain(hash=service)
manager.fund_service(hash=service)
manager.deploy_service_locally(hash=service, force=True)
diff --git a/operate/constants.py b/operate/constants.py
index 6136f15c2..8af868559 100644
--- a/operate/constants.py
+++ b/operate/constants.py
@@ -33,5 +33,5 @@
SERVICE_YAML = "service.yaml"
ON_CHAIN_INTERACT_TIMEOUT = 120.0
-ON_CHAIN_INTERACT_RETRIES = 40.0
+ON_CHAIN_INTERACT_RETRIES = 40
ON_CHAIN_INTERACT_SLEEP = 3.0
diff --git a/operate/ledger/__init__.py b/operate/ledger/__init__.py
index 078a93d1e..eaf88968d 100644
--- a/operate/ledger/__init__.py
+++ b/operate/ledger/__init__.py
@@ -22,6 +22,8 @@
import os
import typing as t
+from autonomy.chain.config import Chain
+
from operate.ledger.base import LedgerHelper
from operate.ledger.ethereum import Ethereum
from operate.ledger.solana import Solana
@@ -33,10 +35,12 @@
GOERLI_PUBLIC_RPC = os.environ.get("DEV_RPC", "https://ethereum-goerli.publicnode.com")
SOLANA_PUBLIC_RPC = os.environ.get("DEV_RPC", "https://api.mainnet-beta.solana.com")
-ETHEREUM_RPC = os.environ.get("DEV_RPC", "https://ethereum.publicnode.com")
+ETHEREUM_RPC = os.environ.get("ETHEREUM_RPC", "https://ethereum.publicnode.com")
GNOSIS_RPC = os.environ.get("DEV_RPC", "https://rpc-gate.autonolas.tech/gnosis-rpc/")
GOERLI_RPC = os.environ.get("DEV_RPC", "https://ethereum-goerli.publicnode.com")
SOLANA_RPC = os.environ.get("DEV_RPC", "https://api.mainnet-beta.solana.com")
+OPTIMISM_RPC = os.environ.get("OPTIMISM_RPC", "https://optimism-rpc.publicnode.com")
+BASE_RPC = os.environ.get("BASE_RPC", "https://base-rpc.publicnode.com")
PUBLIC_RPCS = {
ChainType.ETHEREUM: ETHEREUM_PUBLIC_RPC,
@@ -50,12 +54,16 @@
ChainType.GNOSIS: GNOSIS_RPC,
ChainType.GOERLI: GOERLI_RPC,
ChainType.SOLANA: SOLANA_RPC,
+ ChainType.OPTIMISM: OPTIMISM_RPC,
+ ChainType.BASE: BASE_RPC,
}
CHAIN_HELPERS: t.Dict[ChainType, t.Type[LedgerHelper]] = {
ChainType.ETHEREUM: Ethereum,
ChainType.GNOSIS: Ethereum,
ChainType.GOERLI: Ethereum,
+ ChainType.BASE: Ethereum,
+ ChainType.OPTIMISM: Ethereum,
ChainType.SOLANA: Solana,
}
diff --git a/operate/ledger/profiles.py b/operate/ledger/profiles.py
index 94a15512f..cb9fa85b1 100644
--- a/operate/ledger/profiles.py
+++ b/operate/ledger/profiles.py
@@ -32,13 +32,61 @@
"gnosis_safe_same_address_multisig": "0x6e7f594f680f7aBad18b7a63de50F0FeE47dfD06",
"multisend": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D",
}
+ ),
+ ChainType.OPTIMISM: ContractAddresses(
+ {
+ "service_manager": "0xFbBEc0C8b13B38a9aC0499694A69a10204c5E2aB",
+ "service_registry": "0x3d77596beb0f130a4415df3D2D8232B3d3D31e44",
+ "service_registry_token_utility": "0xBb7e1D6Cb6F243D6bdE81CE92a9f2aFF7Fbe7eac",
+ "gnosis_safe_proxy_factory": "0xE43d4F4103b623B61E095E8bEA34e1bc8979e168",
+ "gnosis_safe_same_address_multisig": "0xb09CcF0Dbf0C178806Aaee28956c74bd66d21f73",
+ "multisend": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D",
+ }
+ ),
+ ChainType.ETHEREUM: ContractAddresses(
+ {
+ "service_manager": "0x2EA682121f815FBcF86EA3F3CaFdd5d67F2dB143",
+ "service_registry": "0x48b6af7B12C71f09e2fC8aF4855De4Ff54e775cA",
+ "service_registry_token_utility": "0x3Fb926116D454b95c669B6Bf2E7c3bad8d19affA",
+ "gnosis_safe_proxy_factory": "0x46C0D07F55d4F9B5Eed2Fc9680B5953e5fd7b461",
+ "gnosis_safe_same_address_multisig": "0xfa517d01DaA100cB1932FA4345F68874f7E7eF46",
+ "multisend": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D",
+ }
+ ),
+ ChainType.BASE: ContractAddresses(
+ {
+ "service_manager": "0x63e66d7ad413C01A7b49C7FF4e3Bb765C4E4bd1b",
+ "service_registry": "0x3C1fF68f5aa342D296d4DEe4Bb1cACCA912D95fE",
+ "service_registry_token_utility": "0x34C895f302D0b5cf52ec0Edd3945321EB0f83dd5",
+ "gnosis_safe_proxy_factory": "0xBb7e1D6Cb6F243D6bdE81CE92a9f2aFF7Fbe7eac",
+ "gnosis_safe_same_address_multisig": "0xFbBEc0C8b13B38a9aC0499694A69a10204c5E2aB",
+ "multisend": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D",
+ }
)
}
STAKING = {
- ChainType.GNOSIS: "0xEE9F19b5DF06c7E8Bfc7B28745dcf944C504198A",
+ ChainType.GNOSIS: {
+ "pearl_alpha": "0xEE9F19b5DF06c7E8Bfc7B28745dcf944C504198A",
+ "pearl_beta": "0xeF44Fb0842DDeF59D37f85D61A1eF492bbA6135d",
+ },
+ ChainType.OPTIMISM: {
+ "pearl_alpha": "0xEE9F19b5DF06c7E8Bfc7B28745dcf944C504198A",
+ "pearl_beta": "0xeF44Fb0842DDeF59D37f85D61A1eF492bbA6135d",
+ },
+ ChainType.BASE: {
+ "pearl_alpha": "0xEE9F19b5DF06c7E8Bfc7B28745dcf944C504198A",
+ "pearl_beta": "0xeF44Fb0842DDeF59D37f85D61A1eF492bbA6135d",
+ },
+ ChainType.ETHEREUM: {
+ "pearl_alpha": "0xEE9F19b5DF06c7E8Bfc7B28745dcf944C504198A",
+ "pearl_beta": "0xeF44Fb0842DDeF59D37f85D61A1eF492bbA6135d",
+ },
}
OLAS = {
ChainType.GNOSIS: "0xcE11e14225575945b8E6Dc0D4F2dD4C570f79d9f",
+ ChainType.OPTIMISM: "0x01B8b6384298D4848E3BE63D4C9D17830EeE488A",
+ ChainType.BASE: "0x54330d28ca3357F294334BDC454a032e7f353416",
+ ChainType.ETHEREUM: "0x0001A500A6B18995B03f44bb040A5fFc28E45CB0",
}
diff --git a/operate/services/manage.py b/operate/services/manage.py
index f1cb481a0..75909e5a0 100644
--- a/operate/services/manage.py
+++ b/operate/services/manage.py
@@ -21,12 +21,15 @@
import asyncio
import logging
+import os
import shutil
import traceback
import typing as t
+from collections import Counter
from concurrent.futures import ThreadPoolExecutor
from pathlib import Path
+import requests
from aea.helpers.base import IPFSHash
from aea.helpers.logging import setup_logger
from autonomy.chain.base import registry_contracts
@@ -36,13 +39,17 @@
from operate.ledger.profiles import CONTRACTS, OLAS, STAKING
from operate.services.protocol import EthSafeTxBuilder, OnChainManager, StakingState
from operate.services.service import (
+ ChainConfig,
DELETE_PREFIX,
Deployment,
+ NON_EXISTENT_TOKEN,
OnChainData,
OnChainState,
OnChainUserParams,
Service,
)
+from operate.types import LedgerConfig, ServiceTemplate, ChainType
+from operate.utils.gnosis import NULL_ADDRESS
from operate.wallet.master import MasterWalletManager
@@ -59,6 +66,8 @@
DOCKER_COMPOSE_YAML = "docker-compose.yaml"
SERVICE_YAML = "service.yaml"
HTTP_OK = 200
+URI_HASH_POSITION = 7
+IPFS_GATEWAY = "https://gateway.autonolas.tech/ipfs/"
class ServiceManager:
@@ -99,8 +108,16 @@ def json(self) -> t.List[t.Dict]:
continue
if not path.name.startswith("bafybei"):
continue
- service = Service.load(path=path)
- data.append(service.json)
+ try:
+ service = Service.load(path=path)
+ data.append(service.json)
+ except Exception as e: # pylint: disable=broad-except
+ self.logger.warning(
+ f"Failed to load service: {path.name}. Exception: {e}"
+ )
+ # delete the invalid path
+ shutil.rmtree(path)
+ self.logger.info(f"Deleted invalid service: {path.name}")
return data
def exists(self, service: str) -> bool:
@@ -115,48 +132,47 @@ def get_on_chain_manager(self, service: Service) -> OnChainManager:
contracts=CONTRACTS[service.ledger_config.chain],
)
- def get_eth_safe_tx_builder(self, service: Service) -> EthSafeTxBuilder:
+ def get_eth_safe_tx_builder(self, ledger_config: LedgerConfig) -> EthSafeTxBuilder:
"""Get EthSafeTxBuilder instance."""
return EthSafeTxBuilder(
- rpc=service.ledger_config.rpc,
- wallet=self.wallet_manager.load(service.ledger_config.type),
- contracts=CONTRACTS[service.ledger_config.chain],
+ rpc=ledger_config.rpc,
+ wallet=self.wallet_manager.load(ledger_config.type),
+ contracts=CONTRACTS[ledger_config.chain],
)
def load_or_create(
self,
hash: str,
- rpc: t.Optional[str] = None,
- on_chain_user_params: t.Optional[OnChainUserParams] = None,
+ service_template: t.Optional[ServiceTemplate] = None,
keys: t.Optional[t.List[Key]] = None,
) -> Service:
"""
Create or load a service
:param hash: Service hash
- :param rpc: RPC string
- :param on_chain_user_params: On-chain user parameters
+ :param service_template: Service template
:param keys: Keys
:return: Service instance
"""
path = self.path / hash
if path.exists():
- return Service.load(path=path)
+ service = Service.load(path=path)
+
+ if service_template is not None:
+ service.update_user_params_from_template(service_template=service_template)
- if rpc is None:
- raise ValueError("RPC cannot be None when creating a new service")
+ return service
- if on_chain_user_params is None:
+ if service_template is None:
raise ValueError(
- "On-chain user parameters cannot be None when creating a new service"
+ "'service_template' cannot be None when creating a new service"
)
service = Service.new(
hash=hash,
keys=keys or [],
- rpc=rpc,
storage=self.path,
- on_chain_user_params=on_chain_user_params,
+ service_template=service_template,
)
if not service.keys:
@@ -168,6 +184,40 @@ def load_or_create(
return service
+ def _get_on_chain_state(self, chain_config: ChainConfig) -> OnChainState:
+ chain_data = chain_config.chain_data
+ ledger_config = chain_config.ledger_config
+ if chain_data.token == NON_EXISTENT_TOKEN:
+ service_state = OnChainState.NON_EXISTENT
+ chain_data.on_chain_state = service_state
+ # TODO save service state
+ # service.store()
+ return service_state
+
+ sftxb = self.get_eth_safe_tx_builder(ledger_config=ledger_config)
+ info = sftxb.info(token_id=chain_data.token)
+ service_state = OnChainState(info["service_state"])
+ chain_data.on_chain_state = service_state
+ # TODO save service state
+ # service.store()
+ return service_state
+
+ def _get_on_chain_hash(self, chain_config: ChainConfig) -> t.Optional[str]:
+ chain_data = chain_config.chain_data
+ ledger_config = chain_config.ledger_config
+ if chain_data.token == NON_EXISTENT_TOKEN:
+ return None
+
+ sftxb = self.get_eth_safe_tx_builder(ledger_config=ledger_config)
+ info = sftxb.info(token_id=chain_data.token)
+ config_hash = info["config_hash"]
+ res = requests.get(f"{IPFS_GATEWAY}f01701220{config_hash}", timeout=30)
+ if res.status_code == 200:
+ return res.json().get("code_uri", "")[URI_HASH_POSITION:]
+ raise ValueError(
+ f"Something went wrong while trying to get the code uri from IPFS: {res}"
+ )
+
def deploy_service_onchain( # pylint: disable=too-many-statements
self,
hash: str,
@@ -207,13 +257,13 @@ def deploy_service_onchain( # pylint: disable=too-many-statements
if user_params.use_staking:
self.logger.info("Checking staking compatibility")
if service.chain_data.on_chain_state in (
- OnChainState.NOTMINTED,
- OnChainState.MINTED,
+ OnChainState.NON_EXISTENT,
+ OnChainState.PRE_REGISTRATION,
):
required_olas = (
user_params.olas_cost_of_bond + user_params.olas_required_to_stake
)
- elif service.chain_data.on_chain_state == OnChainState.ACTIVATED:
+ elif service.chain_data.on_chain_state == OnChainState.ACTIVE_REGISTRATION:
required_olas = user_params.olas_required_to_stake
else:
required_olas = 0
@@ -232,7 +282,7 @@ def deploy_service_onchain( # pylint: disable=too-many-statements
f"required olas: {required_olas}; your balance {balance}"
)
- if service.chain_data.on_chain_state == OnChainState.NOTMINTED:
+ if service.chain_data.on_chain_state == OnChainState.NON_EXISTENT:
self.logger.info("Minting service")
service.chain_data.token = t.cast(
int,
@@ -255,13 +305,13 @@ def deploy_service_onchain( # pylint: disable=too-many-statements
),
).get("token"),
)
- service.chain_data.on_chain_state = OnChainState.MINTED
+ service.chain_data.on_chain_state = OnChainState.PRE_REGISTRATION
service.store()
info = ocm.info(token_id=service.chain_data.token)
service.chain_data.on_chain_state = OnChainState(info["service_state"])
- if service.chain_data.on_chain_state == OnChainState.MINTED:
+ if service.chain_data.on_chain_state == OnChainState.PRE_REGISTRATION:
self.logger.info("Activating service")
ocm.activate(
service_id=service.chain_data.token,
@@ -271,14 +321,14 @@ def deploy_service_onchain( # pylint: disable=too-many-statements
else None
),
)
- service.chain_data.on_chain_state = OnChainState.ACTIVATED
+ service.chain_data.on_chain_state = OnChainState.ACTIVE_REGISTRATION
service.store()
info = ocm.info(token_id=service.chain_data.token)
service.chain_data.on_chain_state = OnChainState(info["service_state"])
- if service.chain_data.on_chain_state == OnChainState.ACTIVATED:
- self.logger.info("Registering service")
+ if service.chain_data.on_chain_state == OnChainState.ACTIVE_REGISTRATION:
+ self.logger.info("Registering agent instances")
ocm.register(
service_id=service.chain_data.token,
instances=instances,
@@ -289,13 +339,13 @@ def deploy_service_onchain( # pylint: disable=too-many-statements
else None
),
)
- service.chain_data.on_chain_state = OnChainState.REGISTERED
+ service.chain_data.on_chain_state = OnChainState.FINISHED_REGISTRATION
service.store()
info = ocm.info(token_id=service.chain_data.token)
service.chain_data.on_chain_state = OnChainState(info["service_state"])
- if service.chain_data.on_chain_state == OnChainState.REGISTERED:
+ if service.chain_data.on_chain_state == OnChainState.FINISHED_REGISTRATION:
self.logger.info("Deploying service")
ocm.deploy(
service_id=service.chain_data.token,
@@ -323,82 +373,193 @@ def deploy_service_onchain( # pylint: disable=too-many-statements
def deploy_service_onchain_from_safe( # pylint: disable=too-many-statements,too-many-locals
self,
hash: str,
- update: bool = False,
) -> None:
"""
Deploy as service on-chain
:param hash: Service hash
- :param update: Update the existing deployment
"""
- self.logger.info("Loading service")
service = self.load_or_create(hash=hash)
- user_params = service.chain_data.user_params
+ for chain_id in service.chain_configs.keys():
+ self.deploy_service_onchain_from_safe_single_chain(
+ hash=hash,
+ chain_id=chain_id,
+ )
+
+ def deploy_service_onchain_from_safe_single_chain( # pylint: disable=too-many-statements,too-many-locals
+ self,
+ hash: str,
+ chain_id: str,
+ ) -> None:
+ """
+ Deploy as service on-chain
+
+ :param hash: Service hash
+ """
+
+ self.logger.info(f"_deploy_service_onchain_from_safe {chain_id=}")
+ service = self.load_or_create(hash=hash)
+ chain_config = service.chain_configs[chain_id]
+ ledger_config = chain_config.ledger_config
+ chain_data = chain_config.chain_data
+ user_params = chain_config.chain_data.user_params
keys = service.keys
instances = [key.address for key in keys]
- wallet = self.wallet_manager.load(service.ledger_config.type)
- sftxb = self.get_eth_safe_tx_builder(service=service)
- if user_params.use_staking and not sftxb.staking_slots_available(
- staking_contract=STAKING[service.ledger_config.chain]
- ):
- raise ValueError("No staking slots available")
-
- if service.chain_data.token > -1:
+ wallet = self.wallet_manager.load(ledger_config.type)
+ sftxb = self.get_eth_safe_tx_builder(ledger_config=ledger_config)
+ chain_type = ChainType.from_id(int(chain_id))
+ safe = wallet.safes[chain_type]
+ # TODO fix this
+ os.environ["CUSTOM_CHAIN_RPC"] = ledger_config.rpc
+ os.environ["OPEN_AUTONOMY_SUBGRAPH_URL"] = "https://subgraph.autonolas.tech/subgraphs/name/autonolas-staging"
+
+ current_agent_id = None
+ if chain_data.token > -1:
self.logger.info("Syncing service state")
- info = sftxb.info(token_id=service.chain_data.token)
- service.chain_data.on_chain_state = OnChainState(info["service_state"])
- service.chain_data.instances = info["instances"]
- service.chain_data.multisig = info["multisig"]
+ info = sftxb.info(token_id=chain_data.token)
+ chain_data.on_chain_state = OnChainState(info["service_state"])
+ chain_data.instances = info["instances"]
+ chain_data.multisig = info["multisig"]
+ current_agent_id = info["canonical_agents"][0] # TODO Allow multiple agents
service.store()
- self.logger.info(f"Service state: {service.chain_data.on_chain_state.name}")
+ self.logger.info(f"Service state: {chain_data.on_chain_state.name}")
+
+ if user_params.use_staking:
+ staking_params = sftxb.get_staking_params(
+ staking_contract=STAKING[ledger_config.chain][user_params.staking_program_id],
+ )
+ else: # TODO fix this - using pearl beta params
+ staking_params = dict(
+ agent_ids=[25],
+ service_registry="0x9338b5153AE39BB89f50468E608eD9d764B755fD", # nosec
+ staking_token="0xcE11e14225575945b8E6Dc0D4F2dD4C570f79d9f", # nosec
+ service_registry_token_utility="0xa45E64d13A30a51b91ae0eb182e88a40e9b18eD8", # nosec
+ min_staking_deposit=20000000000000000000,
+ activity_checker="0x155547857680A6D51bebC5603397488988DEb1c8" # nosec
+ )
if user_params.use_staking:
self.logger.info("Checking staking compatibility")
- if service.chain_data.on_chain_state in (
- OnChainState.NOTMINTED,
- OnChainState.MINTED,
+
+ # TODO: Missing check when the service is currently staked in a program, but needs to be staked
+ # in a different target program. The In this case, balance = currently staked balance + safe balance
+
+ if chain_data.on_chain_state in (
+ OnChainState.NON_EXISTENT,
+ OnChainState.PRE_REGISTRATION,
):
required_olas = (
- user_params.olas_cost_of_bond + user_params.olas_required_to_stake
+ staking_params["min_staking_deposit"] + staking_params["min_staking_deposit"] # bond = staking
)
- elif service.chain_data.on_chain_state == OnChainState.ACTIVATED:
- required_olas = user_params.olas_required_to_stake
+ elif chain_data.on_chain_state == OnChainState.ACTIVE_REGISTRATION:
+ required_olas = staking_params["min_staking_deposit"]
else:
required_olas = 0
balance = (
registry_contracts.erc20.get_instance(
ledger_api=sftxb.ledger_api,
- contract_address=OLAS[service.ledger_config.chain],
+ contract_address=OLAS[ledger_config.chain],
)
- .functions.balanceOf(wallet.safe)
+ .functions.balanceOf(safe)
.call()
)
if balance < required_olas:
raise ValueError(
"You don't have enough olas to stake, "
- f"address: {wallet.safe}; required olas: {required_olas}; your balance: {balance}"
+ f"address: {safe}; required olas: {required_olas}; your balance: {balance}"
+ )
+
+ on_chain_hash = self._get_on_chain_hash(chain_config=chain_config)
+ is_first_mint = self._get_on_chain_state(chain_config=chain_config) == OnChainState.NON_EXISTENT
+ is_update = (
+ (not is_first_mint)
+ and (on_chain_hash is not None)
+ and (on_chain_hash != service.hash or current_agent_id != staking_params["agent_ids"][0])
+ )
+ if user_params.use_staking:
+ current_staking_program = self._get_current_staking_program(chain_data, ledger_config, sftxb)
+ self.logger.info(f"{current_staking_program=}")
+
+ self.logger.info(f"{user_params.staking_program_id=}")
+ self.logger.info(f"{on_chain_hash=}")
+ self.logger.info(f"{service.hash=}")
+ self.logger.info(f"{current_agent_id=}")
+ self.logger.info(f"{staking_params['agent_ids'][0]=}")
+ self.logger.info(f"{is_first_mint=}")
+ self.logger.info(f"{is_update=}")
+
+ if is_update:
+ self._terminate_service_on_chain_from_safe(
+ hash=hash,
+ chain_id=chain_id
+ )
+
+ # Update service
+ if self._get_on_chain_state(chain_config=chain_config) == OnChainState.PRE_REGISTRATION:
+ self.logger.info("Updating service")
+ receipt = (
+ sftxb.new_tx()
+ .add(
+ sftxb.get_mint_tx_data(
+ package_path=service.service_path,
+ agent_id=staking_params["agent_ids"][0],
+ number_of_slots=service.helper.config.number_of_agents,
+ cost_of_bond=(
+ staking_params["min_staking_deposit"]
+ if user_params.use_staking
+ else user_params.cost_of_bond
+ ),
+ threshold=user_params.threshold,
+ nft=IPFSHash(user_params.nft),
+ update_token=chain_data.token,
+ token=(
+ staking_params["staking_token"]
+ if user_params.use_staking
+ else None
+ ),
+ )
+ )
+ .settle()
)
+ event_data, *_ = t.cast(
+ t.Tuple,
+ registry_contracts.service_registry.process_receipt(
+ ledger_api=sftxb.ledger_api,
+ contract_address=staking_params["service_registry"],
+ event="UpdateService",
+ receipt=receipt,
+ ).get("events"),
+ )
+ chain_data.on_chain_state = OnChainState.PRE_REGISTRATION
+ service.store()
+
+ # Mint service
+ if self._get_on_chain_state(chain_config=chain_config) == OnChainState.NON_EXISTENT:
+
+ if user_params.use_staking and not sftxb.staking_slots_available(
+ staking_contract=STAKING[ledger_config.chain][user_params.staking_program_id]
+ ):
+ raise ValueError("No staking slots available")
- if service.chain_data.on_chain_state == OnChainState.NOTMINTED:
self.logger.info("Minting service")
receipt = (
sftxb.new_tx()
.add(
sftxb.get_mint_tx_data(
package_path=service.service_path,
- agent_id=user_params.agent_id,
+ agent_id=staking_params["agent_ids"][0],
number_of_slots=service.helper.config.number_of_agents,
cost_of_bond=(
- user_params.olas_cost_of_bond
+ staking_params["min_staking_deposit"]
if user_params.use_staking
else user_params.cost_of_bond
),
threshold=user_params.threshold,
nft=IPFSHash(user_params.nft),
- update_token=service.chain_data.token if update else None,
+ update_token=None,
token=(
- OLAS[service.ledger_config.chain]
+ staking_params["staking_token"]
if user_params.use_staking
else None
),
@@ -410,32 +571,30 @@ def deploy_service_onchain_from_safe( # pylint: disable=too-many-statements,too
t.Tuple,
registry_contracts.service_registry.process_receipt(
ledger_api=sftxb.ledger_api,
- contract_address="0x9338b5153AE39BB89f50468E608eD9d764B755fD",
+ contract_address=staking_params["service_registry"],
event="CreateService",
receipt=receipt,
).get("events"),
)
- service.chain_data.token = event_data["args"]["serviceId"]
- service.chain_data.on_chain_state = OnChainState.MINTED
+ chain_data.token = event_data["args"]["serviceId"]
+ chain_data.on_chain_state = OnChainState.PRE_REGISTRATION
service.store()
- info = sftxb.info(token_id=service.chain_data.token)
- service.chain_data.on_chain_state = OnChainState(info["service_state"])
-
- if service.chain_data.on_chain_state == OnChainState.MINTED:
+ if self._get_on_chain_state(chain_config=chain_config) == OnChainState.PRE_REGISTRATION:
cost_of_bond = user_params.cost_of_bond
if user_params.use_staking:
- token_utility = "0xa45E64d13A30a51b91ae0eb182e88a40e9b18eD8" # nosec
- olas_token = "0xcE11e14225575945b8E6Dc0D4F2dD4C570f79d9f" # nosec
+ token_utility = staking_params["service_registry_token_utility"]
+ olas_token = staking_params["staking_token"]
+ agent_id = staking_params["agent_ids"][0]
self.logger.info(
- f"Approving OLAS as bonding token from {wallet.safe} to {token_utility}"
+ f"Approving OLAS as bonding token from {safe} to {token_utility}"
)
cost_of_bond = (
registry_contracts.service_registry_token_utility.get_agent_bond(
ledger_api=sftxb.ledger_api,
contract_address=token_utility,
- service_id=service.chain_data.token,
- agent_id=user_params.agent_id,
+ service_id=chain_data.token,
+ agent_id=agent_id,
).get("bond")
)
sftxb.new_tx().add(
@@ -451,43 +610,41 @@ def deploy_service_onchain_from_safe( # pylint: disable=too-many-statements,too
contract_address=olas_token,
)
.functions.allowance(
- wallet.safe,
+ safe,
token_utility,
)
.call()
)
self.logger.info(
- f"Approved {token_utility_allowance} OLAS from {wallet.safe} to {token_utility}"
+ f"Approved {token_utility_allowance} OLAS from {safe} to {token_utility}"
)
cost_of_bond = 1
self.logger.info("Activating service")
sftxb.new_tx().add(
sftxb.get_activate_data(
- service_id=service.chain_data.token,
+ service_id=chain_data.token,
cost_of_bond=cost_of_bond,
)
).settle()
- service.chain_data.on_chain_state = OnChainState.ACTIVATED
+ chain_data.on_chain_state = OnChainState.ACTIVE_REGISTRATION
service.store()
- info = sftxb.info(token_id=service.chain_data.token)
- service.chain_data.on_chain_state = OnChainState(info["service_state"])
-
- if service.chain_data.on_chain_state == OnChainState.ACTIVATED:
+ if self._get_on_chain_state(chain_config=chain_config) == OnChainState.ACTIVE_REGISTRATION:
cost_of_bond = user_params.cost_of_bond
+ agent_id = staking_params["agent_ids"][0]
if user_params.use_staking:
- token_utility = "0xa45E64d13A30a51b91ae0eb182e88a40e9b18eD8" # nosec
- olas_token = "0xcE11e14225575945b8E6Dc0D4F2dD4C570f79d9f" # nosec
+ token_utility = staking_params["service_registry_token_utility"]
+ olas_token = staking_params["staking_token"]
self.logger.info(
- f"Approving OLAS as bonding token from {wallet.safe} to {token_utility}"
+ f"Approving OLAS as bonding token from {safe} to {token_utility}"
)
cost_of_bond = (
registry_contracts.service_registry_token_utility.get_agent_bond(
ledger_api=sftxb.ledger_api,
contract_address=token_utility,
- service_id=service.chain_data.token,
- agent_id=user_params.agent_id,
+ service_id=chain_data.token,
+ agent_id=agent_id,
).get("bond")
)
sftxb.new_tx().add(
@@ -503,54 +660,62 @@ def deploy_service_onchain_from_safe( # pylint: disable=too-many-statements,too
contract_address=olas_token,
)
.functions.allowance(
- wallet.safe,
+ safe,
token_utility,
)
.call()
)
self.logger.info(
- f"Approved {token_utility_allowance} OLAS from {wallet.safe} to {token_utility}"
+ f"Approved {token_utility_allowance} OLAS from {safe} to {token_utility}"
)
cost_of_bond = 1
self.logger.info(
- f"Registering service: {service.chain_data.token} -> {instances}"
+ f"Registering agent instances: {chain_data.token} -> {instances}"
)
sftxb.new_tx().add(
sftxb.get_register_instances_data(
- service_id=service.chain_data.token,
+ service_id=chain_data.token,
instances=instances,
- agents=[user_params.agent_id for _ in instances],
+ agents=[agent_id for _ in instances],
cost_of_bond=cost_of_bond,
)
).settle()
- service.chain_data.on_chain_state = OnChainState.REGISTERED
+ chain_data.on_chain_state = OnChainState.FINISHED_REGISTRATION
service.store()
- info = sftxb.info(token_id=service.chain_data.token)
- service.chain_data.on_chain_state = OnChainState(info["service_state"])
-
- if service.chain_data.on_chain_state == OnChainState.REGISTERED:
+ if self._get_on_chain_state(chain_config=chain_config) == OnChainState.FINISHED_REGISTRATION:
self.logger.info("Deploying service")
- sftxb.new_tx().add(
- sftxb.get_deploy_data(
- service_id=service.chain_data.token,
- reuse_multisig=update,
- )
- ).settle()
- service.chain_data.on_chain_state = OnChainState.DEPLOYED
+
+ reuse_multisig = True
+ info = sftxb.info(token_id=chain_data.token)
+ if info["multisig"] == NULL_ADDRESS:
+ reuse_multisig = False
+
+ self.logger.info(f"{reuse_multisig=}")
+
+ messages = sftxb.get_deploy_data_from_safe(
+ service_id=chain_data.token,
+ reuse_multisig=reuse_multisig,
+ master_safe=safe,
+ )
+ tx = sftxb.new_tx()
+ for message in messages:
+ tx.add(message)
+ tx.settle()
+
+ chain_data.on_chain_state = OnChainState.DEPLOYED
service.store()
- info = sftxb.info(token_id=service.chain_data.token)
- service.chain_data = OnChainData(
- token=service.chain_data.token,
- instances=info["instances"],
- multisig=info["multisig"],
- staked=False,
- on_chain_state=service.chain_data.on_chain_state,
- user_params=service.chain_data.user_params,
- )
+ # Update local Service
+ info = sftxb.info(token_id=chain_data.token)
+ chain_data.instances = info["instances"]
+ chain_data.multisig = info["multisig"]
+ chain_data.on_chain_state = OnChainState(info["service_state"])
service.store()
+ if user_params.use_staking:
+ self.stake_service_on_chain_from_safe(hash=hash, chain_id=chain_id)
+
def terminate_service_on_chain(self, hash: str) -> None:
"""
@@ -576,32 +741,100 @@ def terminate_service_on_chain(self, hash: str) -> None:
else None
),
)
- service.chain_data.on_chain_state = OnChainState.TERMINATED
+ service.chain_data.on_chain_state = OnChainState.TERMINATED_BONDED
service.store()
- def terminate_service_on_chain_from_safe(self, hash: str) -> None:
+ def _terminate_service_on_chain_from_safe(self, hash: str, chain_id: str) -> None:
"""
Terminate service on-chain
:param hash: Service hash
"""
+ self.logger.info("terminate_service_on_chain_from_safe")
service = self.load_or_create(hash=hash)
- sftxb = self.get_eth_safe_tx_builder(service=service)
- info = sftxb.info(token_id=service.chain_data.token)
- service.chain_data.on_chain_state = OnChainState(info["service_state"])
+ chain_config = service.chain_configs[chain_id]
+ ledger_config = chain_config.ledger_config
+ chain_data = chain_config.chain_data
+ keys = service.keys
+ instances = [key.address for key in keys]
+ wallet = self.wallet_manager.load(ledger_config.type)
- if service.chain_data.on_chain_state != OnChainState.DEPLOYED:
- self.logger.info("Cannot terminate service")
+ # TODO fixme
+ os.environ["CUSTOM_CHAIN_RPC"] = ledger_config.rpc
+
+ sftxb = self.get_eth_safe_tx_builder(ledger_config=ledger_config)
+ info = sftxb.info(token_id=chain_data.token)
+ chain_data.on_chain_state = OnChainState(info["service_state"])
+
+ # Determine if the service is staked in a known staking program
+ current_staking_program = self._get_current_staking_program(chain_data, ledger_config, sftxb)
+ is_staked = current_staking_program is not None
+
+ can_unstake = False
+ if current_staking_program is not None:
+ can_unstake = sftxb.can_unstake(
+ service_id=chain_data.token,
+ staking_contract=STAKING[ledger_config.chain][current_staking_program],
+ )
+
+ # Cannot unstake, terminate flow.
+ if is_staked and not can_unstake:
+ self.logger.info("Service cannot be terminated on-chain: cannot unstake.")
return
- self.logger.info("Terminating service")
- sftxb.new_tx().add(
- sftxb.get_terminate_data(
- service_id=service.chain_data.token,
+ # Unstake the service if applies
+ if is_staked and can_unstake:
+ self.unstake_service_on_chain_from_safe(hash=hash, chain_id=chain_id, staking_program_id=current_staking_program)
+
+ if self._get_on_chain_state(chain_config) in (
+ OnChainState.ACTIVE_REGISTRATION,
+ OnChainState.FINISHED_REGISTRATION,
+ OnChainState.DEPLOYED,
+ ):
+ self.logger.info("Terminating service")
+ sftxb.new_tx().add(
+ sftxb.get_terminate_data(
+ service_id=chain_data.token,
+ )
+ ).settle()
+
+ if self._get_on_chain_state(chain_config) == OnChainState.TERMINATED_BONDED:
+ self.logger.info("Unbonding service")
+ sftxb.new_tx().add(
+ sftxb.get_unbond_data(
+ service_id=chain_data.token,
+ )
+ ).settle()
+
+ # Swap service safe
+ current_safe_owners = sftxb.get_service_safe_owners(service_id=chain_data.token)
+ counter_current_safe_owners = Counter(s.lower() for s in current_safe_owners)
+ counter_instances = Counter(s.lower() for s in instances)
+
+ if counter_current_safe_owners == counter_instances:
+ self.logger.info("Swapping Safe owners")
+ sftxb.swap( # noqa: E800
+ service_id=chain_data.token, # noqa: E800
+ multisig=chain_data.multisig, # TODO this can be read from the registry
+ owner_key=str(
+ self.keys_manager.get(key=current_safe_owners[0]).private_key # TODO allow multiple owners
+ ), # noqa: E800
+ new_owner_address=wallet.safe if wallet.safe else wallet.crypto.address # TODO it should always be safe address
+ ) # noqa: E800
+
+ def _get_current_staking_program(self, chain_data, ledger_config, sftxb) -> t.Optional[str]:
+ if chain_data.token == NON_EXISTENT_TOKEN:
+ return None
+
+ current_staking_program = None
+ for staking_program in STAKING[ledger_config.chain]:
+ state = sftxb.staking_status(
+ service_id=chain_data.token,
+ staking_contract=STAKING[ledger_config.chain][staking_program],
)
- ).settle()
- service.chain_data.on_chain_state = OnChainState.TERMINATED
- service.store()
+ if state in (StakingState.STAKED, StakingState.EVICTED):
+ current_staking_program = staking_program
+ return current_staking_program
def unbond_service_on_chain(self, hash: str) -> None:
"""
@@ -614,7 +847,7 @@ def unbond_service_on_chain(self, hash: str) -> None:
info = ocm.info(token_id=service.chain_data.token)
service.chain_data.on_chain_state = OnChainState(info["service_state"])
- if service.chain_data.on_chain_state != OnChainState.TERMINATED:
+ if service.chain_data.on_chain_state != OnChainState.TERMINATED_BONDED:
self.logger.info("Cannot unbond service")
return
@@ -630,131 +863,120 @@ def unbond_service_on_chain(self, hash: str) -> None:
service.chain_data.on_chain_state = OnChainState.UNBONDED
service.store()
- def unbond_service_on_chain_from_safe(self, hash: str) -> None:
- """
- Terminate service on-chain
-
- :param hash: Service hash
- """
- service = self.load_or_create(hash=hash)
- sftxb = self.get_eth_safe_tx_builder(service=service)
- info = sftxb.info(token_id=service.chain_data.token)
- service.chain_data.on_chain_state = OnChainState(info["service_state"])
-
- if service.chain_data.on_chain_state != OnChainState.TERMINATED:
- self.logger.info("Cannot unbond service")
- return
-
- self.logger.info("Unbonding service")
- sftxb.new_tx().add(
- sftxb.get_unbond_data(
- service_id=service.chain_data.token,
- )
- ).settle()
- service.chain_data.on_chain_state = OnChainState.TERMINATED
- service.store()
-
- def stake_service_on_chain(self, hash: str) -> None:
+ def stake_service_on_chain(self, hash: str, chain_id: int, staking_program_id: str) -> None:
"""
Stake service on-chain
:param hash: Service hash
"""
- service = self.load_or_create(hash=hash)
- if not service.chain_data.user_params.use_staking:
- self.logger.info("Cannot stake service, `use_staking` is set to false")
- return
-
- ocm = self.get_on_chain_manager(service=service)
- info = ocm.info(token_id=service.chain_data.token)
- service.chain_data.on_chain_state = OnChainState(info["service_state"])
-
- if service.chain_data.on_chain_state != OnChainState.DEPLOYED:
- self.logger.info("Cannot stake service, it's not in deployed state")
- return
-
- state = ocm.staking_status(
- service_id=service.chain_data.token,
- staking_contract=STAKING[service.ledger_config.chain],
- )
- self.logger.info(f"Checking staking status for: {service.chain_data.token}")
- if state == StakingState.STAKED:
- self.logger.info(f"{service.chain_data.token} is already staked")
- service.chain_data.staked = True
- service.store()
- return
-
- if state == StakingState.EVICTED:
- self.logger.info(f"{service.chain_data.token} has been evicted")
- service.chain_data.staked = True
- service.store()
- self.unstake_service_on_chain(hash=hash)
-
- self.logger.info(f"Staking service: {service.chain_data.token}")
- ocm.stake(
- service_id=service.chain_data.token,
- service_registry=CONTRACTS[service.ledger_config.chain]["service_registry"],
- staking_contract=STAKING[service.ledger_config.chain],
- )
- service.chain_data.staked = True
- service.store()
+ raise NotImplementedError
- def stake_service_on_chain_from_safe(self, hash: str) -> None:
+ def stake_service_on_chain_from_safe(self, hash: str, chain_id: str) -> None:
"""
Stake service on-chain
:param hash: Service hash
+ :param chain_id: The chain id to use.
+ :param target_staking_program_id: The staking program id the agent should be on.
"""
service = self.load_or_create(hash=hash)
- if not service.chain_data.user_params.use_staking:
- self.logger.info("Cannot stake service, `use_staking` is set to false")
- return
+ chain_config = service.chain_configs[chain_id]
+ ledger_config = chain_config.ledger_config
+ chain_data = chain_config.chain_data
+ user_params = chain_data.user_params
+ target_staking_program = user_params.staking_program_id
+ target_staking_contract = STAKING[ledger_config.chain][target_staking_program]
+ sftxb = self.get_eth_safe_tx_builder(ledger_config=ledger_config)
+
+ # TODO fixme
+ os.environ["CUSTOM_CHAIN_RPC"] = ledger_config.rpc
+
+ # Determine if the service is staked in a known staking program
+ current_staking_program = self._get_current_staking_program(chain_data, ledger_config, sftxb)
+ is_staked = current_staking_program is not None
+ current_staking_contract = STAKING[ledger_config.chain][current_staking_program] if is_staked else None
+
+ # perform the unstaking flow if necessary
+ if is_staked:
+ can_unstake = sftxb.can_unstake(chain_config.chain_data.token, current_staking_contract)
+ if not chain_config.chain_data.user_params.use_staking and can_unstake:
+ self.logger.info(f"Use staking is set to false, but service {chain_config.chain_data.token} is staked and can be unstaked. Unstaking...")
+ self.unstake_service_on_chain_from_safe(hash=hash, chain_id=chain_id, staking_program_id=current_staking_program)
+
+ info = sftxb.info(token_id=chain_config.chain_data.token)
+ chain_config.chain_data.on_chain_state = OnChainState(info["service_state"])
+ staking_state = sftxb.staking_status(
+ service_id=chain_data.token,
+ staking_contract=current_staking_contract,
+ )
- sftxb = self.get_eth_safe_tx_builder(service=service)
- info = sftxb.info(token_id=service.chain_data.token)
- service.chain_data.on_chain_state = OnChainState(info["service_state"])
+ if staking_state == StakingState.EVICTED and can_unstake:
+ self.logger.info(f"Service {chain_config.chain_data.token} has been evicted and can be unstaked. Unstaking...")
+ self.unstake_service_on_chain_from_safe(hash=hash, chain_id=chain_id, staking_program_id=current_staking_program)
- if service.chain_data.on_chain_state != OnChainState.DEPLOYED:
- self.logger.info("Cannot stake service, it's not in deployed state")
- return
+ if staking_state == StakingState.STAKED and can_unstake and not sftxb.staking_rewards_available(current_staking_contract):
+ self.logger.info(
+ f"There are no rewards available, service {chain_config.chain_data.token} "
+ f"is already staked and can be unstaked. Unstaking..."
+ )
+ self.unstake_service_on_chain_from_safe(hash=hash, chain_id=chain_id, staking_program_id=current_staking_program)
- state = sftxb.staking_status(
- service_id=service.chain_data.token,
- staking_contract=STAKING[service.ledger_config.chain],
+ if staking_state == StakingState.STAKED and current_staking_program != target_staking_contract and can_unstake:
+ self.logger.info(
+ f"{chain_config.chain_data.token} is staked in a different staking program. Unstaking..."
+ )
+ self.unstake_service_on_chain_from_safe(hash=hash, chain_id=chain_id, staking_program_id=current_staking_program)
+
+ staking_state = sftxb.staking_status(
+ service_id=chain_config.chain_data.token,
+ staking_contract=target_staking_contract,
)
- self.logger.info(f"Checking staking status for: {service.chain_data.token}")
- if state == StakingState.STAKED:
- self.logger.info(f"{service.chain_data.token} is already staked")
- service.chain_data.staked = True
- service.store()
- return
+ self.logger.info("Checking conditions to stake.")
+
+ staking_rewards_available = sftxb.staking_rewards_available(target_staking_contract)
+ staking_slots_available = sftxb.staking_slots_available(target_staking_contract)
+ on_chain_state = self._get_on_chain_state(chain_config=chain_config)
+ current_staking_program = self._get_current_staking_program(chain_data, ledger_config, sftxb)
+
+ self.logger.info(f"use_staking={chain_config.chain_data.user_params.use_staking}")
+ self.logger.info(f"{staking_state=}")
+ self.logger.info(f"{staking_rewards_available=}")
+ self.logger.info(f"{staking_slots_available=}")
+ self.logger.info(f"{on_chain_state=}")
+ self.logger.info(f"{current_staking_program=}")
+ self.logger.info(f"{target_staking_program=}")
+
+ if (
+ chain_config.chain_data.user_params.use_staking
+ and staking_state == StakingState.UNSTAKED
+ and staking_rewards_available
+ and staking_slots_available
+ and on_chain_state == OnChainState.DEPLOYED
+ ):
+ self.logger.info(f"Approving staking: {chain_config.chain_data.token}")
+ sftxb.new_tx().add(
+ sftxb.get_staking_approval_data(
+ service_id=chain_config.chain_data.token,
+ service_registry=CONTRACTS[ledger_config.chain][
+ "service_registry"
+ ],
+ staking_contract=target_staking_contract,
+ )
+ ).settle()
- if state == StakingState.EVICTED:
- self.logger.info(f"{service.chain_data.token} has been evicted")
- service.chain_data.staked = True
+ self.logger.info(f"Staking service: {chain_config.chain_data.token}")
+ sftxb.new_tx().add(
+ sftxb.get_staking_data(
+ service_id=chain_config.chain_data.token,
+ staking_contract=target_staking_contract,
+ )
+ ).settle()
+ chain_config.chain_data.staked = True
service.store()
- self.unstake_service_on_chain_from_safe(hash=hash)
-
- self.logger.info(f"Approving staking: {service.chain_data.token}")
- sftxb.new_tx().add(
- sftxb.get_staking_approval_data(
- service_id=service.chain_data.token,
- service_registry=CONTRACTS[service.ledger_config.chain][
- "service_registry"
- ],
- staking_contract=STAKING[service.ledger_config.chain],
- )
- ).settle()
- self.logger.info(f"Staking service: {service.chain_data.token}")
- sftxb.new_tx().add(
- sftxb.get_staking_data(
- service_id=service.chain_data.token,
- staking_contract=STAKING[service.ledger_config.chain],
- )
- ).settle()
- service.chain_data.staked = True
- service.store()
+ current_staking_program = self._get_current_staking_program(chain_data, ledger_config, sftxb)
+ self.logger.info(f"{target_staking_program=}")
+ self.logger.info(f"{current_staking_program=}")
def unstake_service_on_chain(self, hash: str) -> None:
"""
@@ -789,39 +1011,45 @@ def unstake_service_on_chain(self, hash: str) -> None:
service.chain_data.staked = False
service.store()
- def unstake_service_on_chain_from_safe(self, hash: str) -> None:
+ def unstake_service_on_chain_from_safe(self, hash: str, chain_id: str, staking_program_id: str) -> None:
"""
Unbond service on-chain
:param hash: Service hash
"""
+
+ self.logger.info("unstake_service_on_chain_from_safe")
service = self.load_or_create(hash=hash)
- if not service.chain_data.user_params.use_staking:
+ chain_config = service.chain_configs[chain_id]
+ ledger_config = chain_config.ledger_config
+ chain_data = chain_config.chain_data
+
+ if not chain_data.user_params.use_staking:
self.logger.info("Cannot unstake service, `use_staking` is set to false")
return
- sftxb = self.get_eth_safe_tx_builder(service=service)
+ sftxb = self.get_eth_safe_tx_builder(ledger_config=ledger_config)
state = sftxb.staking_status(
- service_id=service.chain_data.token,
- staking_contract=STAKING[service.ledger_config.chain],
+ service_id=chain_data.token,
+ staking_contract=STAKING[ledger_config.chain][staking_program_id],
)
self.logger.info(
- f"Staking status for service {service.chain_data.token}: {state}"
+ f"Staking status for service {chain_data.token}: {state}"
)
if state not in {StakingState.STAKED, StakingState.EVICTED}:
self.logger.info("Cannot unstake service, it's not staked")
- service.chain_data.staked = False
+ chain_data.staked = False
service.store()
return
- self.logger.info(f"Unstaking service: {service.chain_data.token}")
+ self.logger.info(f"Unstaking service: {chain_data.token}")
sftxb.new_tx().add(
sftxb.get_unstaking_data(
- service_id=service.chain_data.token,
- staking_contract=STAKING[service.ledger_config.chain],
+ service_id=chain_data.token,
+ staking_contract=STAKING[ledger_config.chain][staking_program_id],
)
).settle()
- service.chain_data.staked = False
+ chain_data.staked = False
service.store()
def fund_service( # pylint: disable=too-many-arguments
@@ -833,14 +1061,18 @@ def fund_service( # pylint: disable=too-many-arguments
agent_fund_threshold: t.Optional[float] = None,
safe_fund_treshold: t.Optional[float] = None,
from_safe: bool = True,
+ chain_id: str = "10",
) -> None:
"""Fund service if required."""
service = self.load_or_create(hash=hash)
- wallet = self.wallet_manager.load(ledger_type=service.ledger_config.type)
- ledger_api = wallet.ledger_api(chain_type=service.ledger_config.chain, rpc=rpc)
+ chain_config = service.chain_configs[chain_id]
+ ledger_config = chain_config.ledger_config
+ chain_data = chain_config.chain_data
+ wallet = self.wallet_manager.load(ledger_config.type)
+ ledger_api = wallet.ledger_api(chain_type=ledger_config.chain, rpc=rpc or ledger_config.rpc)
agent_fund_threshold = (
agent_fund_threshold
- or service.chain_data.user_params.fund_requirements.agent
+ or chain_data.user_params.fund_requirements.agent
)
for key in service.keys:
@@ -851,34 +1083,36 @@ def fund_service( # pylint: disable=too-many-arguments
self.logger.info("Funding agents")
to_transfer = (
agent_topup
- or service.chain_data.user_params.fund_requirements.agent
+ or chain_data.user_params.fund_requirements.agent
)
self.logger.info(f"Transferring {to_transfer} units to {key.address}")
wallet.transfer(
to=key.address,
amount=int(to_transfer),
- chain_type=service.ledger_config.chain,
+ chain_type=ledger_config.chain,
from_safe=from_safe,
+ rpc=rpc or ledger_config.rpc,
)
- safe_balanace = ledger_api.get_balance(service.chain_data.multisig)
+ safe_balance = ledger_api.get_balance(chain_data.multisig)
safe_fund_treshold = (
- safe_fund_treshold or service.chain_data.user_params.fund_requirements.safe
+ safe_fund_treshold or chain_data.user_params.fund_requirements.safe
)
- self.logger.info(f"Safe {service.chain_data.multisig} balance: {safe_balanace}")
+ self.logger.info(f"Safe {chain_data.multisig} balance: {safe_balance}")
self.logger.info(f"Required balance: {safe_fund_treshold}")
- if safe_balanace < safe_fund_treshold:
+ if safe_balance < safe_fund_treshold:
self.logger.info("Funding safe")
to_transfer = (
- safe_topup or service.chain_data.user_params.fund_requirements.safe
+ safe_topup or chain_data.user_params.fund_requirements.safe
)
self.logger.info(
- f"Transferring {to_transfer} units to {service.chain_data.multisig}"
+ f"Transferring {to_transfer} units to {chain_data.multisig}"
)
wallet.transfer(
- to=t.cast(str, service.chain_data.multisig),
+ to=t.cast(str, chain_data.multisig),
amount=int(to_transfer),
- chain_type=service.ledger_config.chain,
+ chain_type=ledger_config.chain,
+ rpc=rpc or ledger_config.rpc,
)
async def funding_job(
@@ -890,6 +1124,9 @@ async def funding_job(
"""Start a background funding job."""
loop = loop or asyncio.get_event_loop()
service = self.load_or_create(hash=hash)
+ chain_id = service.home_chain_id
+ chain_config = service.chain_configs[chain_id]
+ ledger_config = chain_config.ledger_config
with ThreadPoolExecutor() as executor:
while True:
try:
@@ -897,7 +1134,7 @@ async def funding_job(
executor,
self.fund_service,
hash, # Service hash
- PUBLIC_RPCS[service.ledger_config.chain], # RPC
+ PUBLIC_RPCS[ledger_config.chain], # RPC
100000000000000000, # agent_topup
2000000000000000000, # safe_topup
50000000000000000, # agent_fund_threshold
@@ -910,7 +1147,7 @@ async def funding_job(
)
await asyncio.sleep(60)
- def deploy_service_locally(self, hash: str, force: bool = True) -> Deployment:
+ def deploy_service_locally(self, hash: str, force: bool = True, chain_id: str = "100", use_docker: bool = False) -> Deployment:
"""
Deploy service locally
@@ -919,8 +1156,8 @@ def deploy_service_locally(self, hash: str, force: bool = True) -> Deployment:
:return: Deployment instance
"""
deployment = self.load_or_create(hash=hash).deployment
- deployment.build(force=force)
- deployment.start()
+ deployment.build(use_docker=use_docker, force=force, chain_id=chain_id)
+ deployment.start(use_docker=use_docker)
return deployment
def stop_service_locally(self, hash: str, delete: bool = False) -> Deployment:
@@ -941,68 +1178,31 @@ def update_service(
self,
old_hash: str,
new_hash: str,
- rpc: t.Optional[str] = None,
- on_chain_user_params: t.Optional[OnChainUserParams] = None,
- from_safe: bool = True, # pylint: disable=unused-argument
+ service_template: t.Optional[ServiceTemplate] = None,
) -> Service:
"""Update a service."""
+
+ self.logger.info("-----Entering update local service-----")
old_service = self.load_or_create(
- hash=old_hash,
+ hash=old_hash
)
- # TODO code for updating service commented until safe swap transaction is implemented
- # This is a temporary fix that will only work for services that have not started the
- # update flow. Services having started the update flow must need to manually change
- # the Safe owner to the Operator.
- # ( # noqa: E800
- # self.unstake_service_on_chain_from_safe # noqa: E800
- # if from_safe # noqa: E800
- # else self.unstake_service_on_chain # noqa: E800
- # )( # noqa: E800
- # hash=old_hash, # noqa: E800
- # ) # noqa: E800
- # ( # noqa: E800
- # self.terminate_service_on_chain_from_safe # noqa: E800
- # if from_safe # noqa: E800
- # else self.terminate_service_on_chain # noqa: E800
- # )( # noqa: E800
- # hash=old_hash, # noqa: E800
- # ) # noqa: E800
- # ( # noqa: E800
- # self.unbond_service_on_chain_from_safe # noqa: E800
- # if from_safe # noqa: E800
- # else self.unbond_service_on_chain # noqa: E800
- # )( # noqa: E800
- # hash=old_hash, # noqa: E800
- # ) # noqa: E800
-
- # owner, *_ = old_service.chain_data.instances # noqa: E800
- # if from_safe: # noqa: E800
- # sftx = self.get_eth_safe_tx_builder(service=old_service) # noqa: E800
- # sftx.new_tx().add( # noqa: E800
- # sftx.get_swap_data( # noqa: E800
- # service_id=old_service.chain_data.token, # noqa: E800
- # multisig=old_service.chain_data.multisig, # noqa: E800
- # owner_key=str(self.keys_manager.get(key=owner).private_key), # noqa: E800
- # ) # noqa: E800
- # ).settle() # noqa: E800
- # else: # noqa: E800
- # ocm = self.get_on_chain_manager(service=old_service) # noqa: E800
- # ocm.swap( # noqa: E800
- # service_id=old_service.chain_data.token, # noqa: E800
- # multisig=old_service.chain_data.multisig, # noqa: E800
- # owner_key=str(self.keys_manager.get(key=owner).private_key), # noqa: E800
- # ) # noqa: E800
-
new_service = self.load_or_create(
hash=new_hash,
- rpc=rpc or old_service.ledger_config.rpc,
- on_chain_user_params=on_chain_user_params
- or old_service.chain_data.user_params,
+ service_template=service_template
)
new_service.keys = old_service.keys
- new_service.chain_data = old_service.chain_data
- new_service.ledger_config = old_service.ledger_config
- new_service.chain_data.on_chain_state = OnChainState.NOTMINTED
+ # new_Service.home_chain_id = old_service.home_chain_id
+
+ # TODO - Ensure this works as expected - New service must copy all chain_data from old service,
+ # but if service_template is not None, it must copy the user_params
+ # passed in the service_template and copy the remaining attributes from old_service.
+
+ new_service.chain_configs = {}
+ for chain_id, config in old_service.chain_configs.items():
+ new_service.chain_configs[chain_id] = config
+ if service_template:
+ new_service.chain_configs[chain_id].chain_data.user_params = OnChainUserParams.from_json(service_template["configurations"][chain_id])
+
new_service.store()
# The following logging has been added to identify OS issues when
@@ -1023,3 +1223,4 @@ def update_service(
def _log_directories(self) -> None:
directories = [str(p) for p in self.path.iterdir() if p.is_dir()]
self.logger.info(f"Directories in {self.path}: {', '.join(directories)}")
+
diff --git a/operate/services/protocol.py b/operate/services/protocol.py
index f6d8acf46..b9fd314bb 100644
--- a/operate/services/protocol.py
+++ b/operate/services/protocol.py
@@ -41,6 +41,7 @@
from autonomy.chain.constants import (
GNOSIS_SAFE_PROXY_FACTORY_CONTRACT,
GNOSIS_SAFE_SAME_ADDRESS_MULTISIG_CONTRACT,
+ MULTISEND_CONTRACT,
)
from autonomy.chain.service import (
get_agent_instances,
@@ -52,7 +53,9 @@
from autonomy.cli.helpers.chain import MintHelper as MintManager
from autonomy.cli.helpers.chain import OnChainHelper
from autonomy.cli.helpers.chain import ServiceHelper as ServiceManager
+from eth_utils import to_bytes
from hexbytes import HexBytes
+from web3.contract import Contract
from operate.constants import (
ON_CHAIN_INTERACT_RETRIES,
@@ -66,11 +69,13 @@
from operate.types import ContractAddresses
from operate.utils.gnosis import (
MultiSendOperation,
+ NULL_ADDRESS,
SafeOperation,
hash_payload_to_hex,
skill_input_hex_to_payload,
)
from operate.wallet.master import MasterWallet
+from operate.types import ChainType as OperateChainType
ETHEREUM_ERC20 = "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"
@@ -240,6 +245,48 @@ def service_info(self, staking_contract: str, service_id: int) -> dict:
service_id,
).get("data")
+ def agent_ids(self, staking_contract: str) -> t.List[int]:
+ instance = self.staking_ctr.get_instance(
+ ledger_api=self.ledger_api,
+ contract_address=staking_contract,
+ )
+ return instance.functions.getAgentIds().call()
+
+ def service_registry(self, staking_contract: str) -> str:
+ instance = self.staking_ctr.get_instance(
+ ledger_api=self.ledger_api,
+ contract_address=staking_contract,
+ )
+ return instance.functions.serviceRegistry().call()
+
+ def staking_token(self, staking_contract: str) -> str:
+ instance = self.staking_ctr.get_instance(
+ ledger_api=self.ledger_api,
+ contract_address=staking_contract,
+ )
+ return instance.functions.stakingToken().call()
+
+ def service_registry_token_utility(self, staking_contract: str) -> str:
+ instance = self.staking_ctr.get_instance(
+ ledger_api=self.ledger_api,
+ contract_address=staking_contract,
+ )
+ return instance.functions.serviceRegistryTokenUtility().call()
+
+ def min_staking_deposit(self, staking_contract: str) -> str:
+ instance = self.staking_ctr.get_instance(
+ ledger_api=self.ledger_api,
+ contract_address=staking_contract,
+ )
+ return instance.functions.minStakingDeposit().call()
+
+ def activity_checker(self, staking_contract: str) -> str:
+ instance = self.staking_ctr.get_instance(
+ ledger_api=self.ledger_api,
+ contract_address=staking_contract,
+ )
+ return instance.functions.activityChecker().call()
+
def check_staking_compatibility(
self,
service_id: int,
@@ -462,6 +509,13 @@ def _patch(self) -> None:
for name, address in self.contracts.items():
ContractConfigs.get(name=name).contracts[self.chain_type] = address
+ @property
+ def safe(self) -> str:
+ """Get safe address."""
+ chain_id = self.ledger_api.api.eth.chain_id
+ chain_type = OperateChainType.from_id(chain_id)
+ return self.wallet.safes[chain_type]
+
@property
def crypto(self) -> Crypto:
"""Load crypto object."""
@@ -484,6 +538,25 @@ def ledger_api(self) -> LedgerApi:
)
return ledger_api
+ @property
+ def service_manager_instance(self) -> Contract:
+ """Load service manager contract instance."""
+ contract_interface = registry_contracts.service_manager.contract_interface.get(self.ledger_api.identifier, {})
+ instance = self.ledger_api.get_contract_instance(
+ contract_interface,
+ self.contracts["service_manager"],
+ )
+ return instance
+
+
+ def owner_of(self, token_id: int) -> str:
+ """Get owner of a service."""
+ self._patch()
+ ledger_api, _ = OnChainHelper.get_ledger_and_crypto_objects(
+ chain_type=self.chain_type
+ )
+
+
def info(self, token_id: int) -> t.Dict:
"""Get service info."""
self._patch()
@@ -498,7 +571,7 @@ def info(self, token_id: int) -> t.Dict:
max_agents,
number_of_agent_instances,
service_state,
- cannonical_agents,
+ canonical_agents,
) = get_service_info(
ledger_api=ledger_api,
chain_type=self.chain_type,
@@ -517,11 +590,156 @@ def info(self, token_id: int) -> t.Dict:
max_agents=max_agents,
number_of_agent_instances=number_of_agent_instances,
service_state=service_state,
- cannonical_agents=cannonical_agents,
+ canonical_agents=canonical_agents,
instances=instances,
)
+ def get_service_safe_owners(self, service_id: int) -> t.List[str]:
+ """Get list of owners."""
+ ledger_api, _ = OnChainHelper.get_ledger_and_crypto_objects(
+ chain_type=self.chain_type
+ )
+ (
+ _,
+ multisig_address,
+ _,
+ _,
+ _,
+ _,
+ _,
+ _,
+ ) = get_service_info(
+ ledger_api=ledger_api,
+ chain_type=self.chain_type,
+ token_id=service_id,
+ )
+ return registry_contracts.gnosis_safe.get_owners(
+ ledger_api=ledger_api,
+ contract_address=multisig_address,
+ ).get("owners", [])
+
+
+ def swap( # pylint: disable=too-many-arguments,too-many-locals
+ self,
+ service_id: int,
+ multisig: str,
+ owner_key: str,
+ new_owner_address: str
+ ) -> None:
+ """Swap safe owner."""
+ logging.info(f"Swapping safe for service {service_id} [{multisig}]...")
+ self._patch()
+ manager = ServiceManager(
+ service_id=service_id,
+ chain_type=self.chain_type,
+ key=self.wallet.key_path,
+ password=self.wallet.password,
+ timeout=ON_CHAIN_INTERACT_TIMEOUT,
+ retries=ON_CHAIN_INTERACT_RETRIES,
+ sleep=ON_CHAIN_INTERACT_SLEEP,
+ )
+ with tempfile.TemporaryDirectory() as temp_dir:
+ key_file = Path(temp_dir, "key.txt")
+ key_file.write_text(owner_key, encoding="utf-8")
+ owner_crypto = EthereumCrypto(private_key_path=str(key_file))
+ owner_cryptos: t.List[EthereumCrypto] = [owner_crypto]
+ owners = [
+ manager.ledger_api.api.to_checksum_address(owner_crypto.address)
+ for owner_crypto in owner_cryptos
+ ]
+ owner_to_swap = owners[0]
+ multisend_txs = []
+ txd = registry_contracts.gnosis_safe.get_swap_owner_data(
+ ledger_api=manager.ledger_api,
+ contract_address=multisig,
+ old_owner=manager.ledger_api.api.to_checksum_address(owner_to_swap),
+ new_owner=manager.ledger_api.api.to_checksum_address(
+ new_owner_address
+ ),
+ ).get("data")
+ multisend_txs.append(
+ {
+ "operation": MultiSendOperation.CALL,
+ "to": multisig,
+ "value": 0,
+ "data": HexBytes(txd[2:]),
+ }
+ )
+ multisend_txd = registry_contracts.multisend.get_tx_data( # type: ignore
+ ledger_api=manager.ledger_api,
+ contract_address=ContractConfigs.multisend.contracts[self.chain_type],
+ multi_send_txs=multisend_txs,
+ ).get("data")
+ multisend_data = bytes.fromhex(multisend_txd[2:])
+ safe_tx_hash = registry_contracts.gnosis_safe.get_raw_safe_transaction_hash(
+ ledger_api=manager.ledger_api,
+ contract_address=multisig,
+ to_address=ContractConfigs.multisend.contracts[self.chain_type],
+ value=0,
+ data=multisend_data,
+ safe_tx_gas=0,
+ operation=SafeOperation.DELEGATE_CALL.value,
+ ).get("tx_hash")[2:]
+ payload_data = hash_payload_to_hex(
+ safe_tx_hash=safe_tx_hash,
+ ether_value=0,
+ safe_tx_gas=0,
+ to_address=ContractConfigs.multisend.contracts[self.chain_type],
+ data=multisend_data,
+ )
+ tx_params = skill_input_hex_to_payload(payload=payload_data)
+ safe_tx_bytes = binascii.unhexlify(tx_params["safe_tx_hash"])
+ owner_to_signature = {}
+ for owner_crypto in owner_cryptos:
+ signature = owner_crypto.sign_message(
+ message=safe_tx_bytes,
+ is_deprecated_mode=True,
+ )
+ owner_to_signature[
+ manager.ledger_api.api.to_checksum_address(owner_crypto.address)
+ ] = signature[2:]
+ tx = registry_contracts.gnosis_safe.get_raw_safe_transaction(
+ ledger_api=manager.ledger_api,
+ contract_address=multisig,
+ sender_address=owner_crypto.address,
+ owners=tuple(owners), # type: ignore
+ to_address=tx_params["to_address"],
+ value=tx_params["ether_value"],
+ data=tx_params["data"],
+ safe_tx_gas=tx_params["safe_tx_gas"],
+ signatures_by_owner=owner_to_signature,
+ operation=SafeOperation.DELEGATE_CALL.value,
+ )
+ stx = owner_crypto.sign_transaction(tx)
+ tx_digest = manager.ledger_api.send_signed_transaction(stx)
+ receipt = manager.ledger_api.api.eth.wait_for_transaction_receipt(tx_digest)
+ if receipt["status"] != 1:
+ raise RuntimeError("Error swapping owners")
+
+ def staking_slots_available(self, staking_contract: str) -> bool:
+ """Check if there are available slots on the staking contract"""
+ self._patch()
+ return StakingManager(
+ key=self.wallet.key_path,
+ password=self.wallet.password,
+ chain_type=self.chain_type,
+ ).slots_available(
+ staking_contract=staking_contract,
+ )
+
+ def staking_rewards_available(self, staking_contract: str) -> bool:
+ """Check if there are available staking rewards on the staking contract"""
+ self._patch()
+ available_rewards = StakingManager(
+ key=self.wallet.key_path,
+ password=self.wallet.password,
+ chain_type=self.chain_type,
+ ).available_rewards(
+ staking_contract=staking_contract,
+ )
+ return available_rewards > 0
+
class OnChainManager(_ChainUtil):
"""On chain service management."""
@@ -657,102 +875,6 @@ def deploy(
reuse_multisig=reuse_multisig,
)
- def swap( # pylint: disable=too-many-arguments,too-many-locals
- self,
- service_id: int,
- multisig: str,
- owner_key: str,
- ) -> None:
- """Swap safe owner."""
- logging.info(f"Swapping safe for service {service_id} [{multisig}]...")
- self._patch()
- manager = ServiceManager(
- service_id=service_id,
- chain_type=self.chain_type,
- key=self.wallet.key_path,
- password=self.wallet.password,
- timeout=ON_CHAIN_INTERACT_TIMEOUT,
- retries=ON_CHAIN_INTERACT_RETRIES,
- sleep=ON_CHAIN_INTERACT_SLEEP,
- )
- with tempfile.TemporaryDirectory() as temp_dir:
- key_file = Path(temp_dir, "key.txt")
- key_file.write_text(owner_key, encoding="utf-8")
- owner_crypto = EthereumCrypto(private_key_path=str(key_file))
- owner_cryptos: t.List[EthereumCrypto] = [owner_crypto]
- owners = [
- manager.ledger_api.api.to_checksum_address(owner_crypto.address)
- for owner_crypto in owner_cryptos
- ]
- owner_to_swap = owners[0]
- multisend_txs = []
- txd = registry_contracts.gnosis_safe.get_swap_owner_data(
- ledger_api=manager.ledger_api,
- contract_address=multisig,
- old_owner=manager.ledger_api.api.to_checksum_address(owner_to_swap),
- new_owner=manager.ledger_api.api.to_checksum_address(
- manager.crypto.address
- ),
- ).get("data")
- multisend_txs.append(
- {
- "operation": MultiSendOperation.CALL,
- "to": multisig,
- "value": 0,
- "data": HexBytes(txd[2:]),
- }
- )
- multisend_txd = registry_contracts.multisend.get_tx_data( # type: ignore
- ledger_api=manager.ledger_api,
- contract_address=ContractConfigs.multisend.contracts[self.chain_type],
- multi_send_txs=multisend_txs,
- ).get("data")
- multisend_data = bytes.fromhex(multisend_txd[2:])
- safe_tx_hash = registry_contracts.gnosis_safe.get_raw_safe_transaction_hash(
- ledger_api=manager.ledger_api,
- contract_address=multisig,
- to_address=ContractConfigs.multisend.contracts[self.chain_type],
- value=0,
- data=multisend_data,
- safe_tx_gas=0,
- operation=SafeOperation.DELEGATE_CALL.value,
- ).get("tx_hash")[2:]
- payload_data = hash_payload_to_hex(
- safe_tx_hash=safe_tx_hash,
- ether_value=0,
- safe_tx_gas=0,
- to_address=ContractConfigs.multisend.contracts[self.chain_type],
- data=multisend_data,
- )
- tx_params = skill_input_hex_to_payload(payload=payload_data)
- safe_tx_bytes = binascii.unhexlify(tx_params["safe_tx_hash"])
- owner_to_signature = {}
- for owner_crypto in owner_cryptos:
- signature = owner_crypto.sign_message(
- message=safe_tx_bytes,
- is_deprecated_mode=True,
- )
- owner_to_signature[
- manager.ledger_api.api.to_checksum_address(owner_crypto.address)
- ] = signature[2:]
- tx = registry_contracts.gnosis_safe.get_raw_safe_transaction(
- ledger_api=manager.ledger_api,
- contract_address=multisig,
- sender_address=owner_crypto.address,
- owners=tuple(owners), # type: ignore
- to_address=tx_params["to_address"],
- value=tx_params["ether_value"],
- data=tx_params["data"],
- safe_tx_gas=tx_params["safe_tx_gas"],
- signatures_by_owner=owner_to_signature,
- operation=SafeOperation.DELEGATE_CALL.value,
- )
- stx = owner_crypto.sign_transaction(tx)
- tx_digest = manager.ledger_api.send_signed_transaction(stx)
- receipt = manager.ledger_api.api.eth.wait_for_transaction_receipt(tx_digest)
- if receipt["status"] != 1:
- raise RuntimeError("Error swapping owners")
-
def terminate(self, service_id: int, token: t.Optional[str] = None) -> None:
"""Terminate service."""
logging.info(f"Terminating service {service_id}...")
@@ -787,29 +909,6 @@ def unbond(self, service_id: int, token: t.Optional[str] = None) -> None:
token=token,
).unbond_service()
- def staking_slots_available(self, staking_contract: str) -> bool:
- """Check if there are available slots on the staking contract"""
- self._patch()
- return StakingManager(
- key=self.wallet.key_path,
- password=self.wallet.password,
- chain_type=self.chain_type,
- ).slots_available(
- staking_contract=staking_contract,
- )
-
- def staking_rewards_available(self, staking_contract: str) -> bool:
- """Check if there are available staking rewards on the staking contract"""
- self._patch()
- available_rewards = StakingManager(
- key=self.wallet.key_path,
- password=self.wallet.password,
- chain_type=self.chain_type,
- ).available_rewards(
- staking_contract=staking_contract,
- )
- return available_rewards > 0
-
def stake(
self,
service_id: int,
@@ -862,7 +961,7 @@ def new_tx(self) -> GnosisSafeTransaction:
ledger_api=self.ledger_api,
crypto=self.crypto,
chain_type=self.chain_type,
- safe=t.cast(str, self.wallet.safe),
+ safe=self.safe,
)
def get_mint_tx_data( # pylint: disable=too-many-arguments
@@ -895,25 +994,36 @@ def get_mint_tx_data( # pylint: disable=too-many-arguments
)
.load_metadata()
.verify_nft(nft=nft)
- .verify_service_dependencies(agent_id=agent_id)
+ #.verify_service_dependencies(agent_id=agent_id) # TODO add this check once subgraph production indexes agent 25
.publish_metadata()
)
- instance = registry_contracts.service_manager.get_instance(
- ledger_api=self.ledger_api,
- contract_address=self.contracts["service_manager"],
- )
- txd = instance.encodeABI(
- fn_name="create" if update_token is None else "update",
- args=[
- self.wallet.safe,
- token or ETHEREUM_ERC20,
- manager.metadata_hash,
- [agent_id],
- [[number_of_slots, cost_of_bond]],
- threshold,
- ],
- )
+ instance = self.service_manager_instance
+ if update_token is None:
+ safe = self.safe
+ txd = instance.encodeABI(
+ fn_name="create",
+ args=[
+ safe,
+ token or ETHEREUM_ERC20,
+ manager.metadata_hash,
+ [agent_id],
+ [[number_of_slots, cost_of_bond]],
+ threshold,
+ ],
+ )
+ else:
+ txd = instance.encodeABI(
+ fn_name="update",
+ args=[
+ token or ETHEREUM_ERC20,
+ manager.metadata_hash,
+ [agent_id],
+ [[number_of_slots, cost_of_bond]],
+ threshold,
+ update_token
+ ],
+ )
return {
"to": self.contracts["service_manager"],
@@ -946,16 +1056,13 @@ def get_olas_approval_data(
def get_activate_data(self, service_id: int, cost_of_bond: int) -> t.Dict:
"""Get activate tx data."""
- instance = registry_contracts.service_manager.get_instance(
- ledger_api=self.ledger_api,
- contract_address=self.contracts["service_manager"],
- )
+ instance = self.service_manager_instance
txd = instance.encodeABI(
fn_name="activateRegistration",
args=[service_id],
)
return {
- "from": self.wallet.safe,
+ "from": self.safe,
"to": self.contracts["service_manager"],
"data": txd[2:],
"operation": MultiSendOperation.CALL,
@@ -970,10 +1077,7 @@ def get_register_instances_data(
cost_of_bond: int,
) -> t.Dict:
"""Get register instances tx data."""
- instance = registry_contracts.service_manager.get_instance(
- ledger_api=self.ledger_api,
- contract_address=self.contracts["service_manager"],
- )
+ instance = self.service_manager_instance
txd = instance.encodeABI(
fn_name="registerAgents",
args=[
@@ -983,7 +1087,7 @@ def get_register_instances_data(
],
)
return {
- "from": self.wallet.safe,
+ "from": self.safe,
"to": self.contracts["service_manager"],
"data": txd[2:],
"operation": MultiSendOperation.CALL,
@@ -996,10 +1100,7 @@ def get_deploy_data(
reuse_multisig: bool = False,
) -> t.Dict:
"""Get deploy tx data."""
- instance = registry_contracts.service_manager.get_instance(
- ledger_api=self.ledger_api,
- contract_address=self.contracts["service_manager"],
- )
+ instance = self.service_manager_instance
if reuse_multisig:
_deployment_payload, error = get_reuse_multisig_payload(
ledger_api=self.ledger_api,
@@ -1034,12 +1135,55 @@ def get_deploy_data(
"value": 0,
}
+ def get_deploy_data_from_safe(
+ self,
+ service_id: int,
+ master_safe: str,
+ reuse_multisig: bool = False,
+ ) -> t.List[t.Dict[str, t.Any]]:
+ """Get the deploy data instructions for a safe"""
+ registry_instance = self.service_manager_instance
+ approve_hash_message = None
+ if reuse_multisig:
+ _deployment_payload, approve_hash_message, error = get_reuse_multisig_from_safe_payload(
+ ledger_api=self.ledger_api,
+ chain_type=self.chain_type,
+ service_id=service_id,
+ master_safe=master_safe,
+ )
+ if _deployment_payload is None:
+ raise ValueError(error)
+ deployment_payload = _deployment_payload
+ gnosis_safe_multisig = ContractConfigs.get(
+ GNOSIS_SAFE_SAME_ADDRESS_MULTISIG_CONTRACT.name
+ ).contracts[self.chain_type]
+ else:
+ deployment_payload = get_delployment_payload()
+ gnosis_safe_multisig = ContractConfigs.get(
+ GNOSIS_SAFE_PROXY_FACTORY_CONTRACT.name
+ ).contracts[self.chain_type]
+
+ deploy_data = registry_instance.encodeABI(
+ fn_name="deploy",
+ args=[
+ service_id,
+ gnosis_safe_multisig,
+ deployment_payload,
+ ],
+ )
+ deploy_message = {
+ "to": self.contracts["service_manager"],
+ "data": deploy_data[2:],
+ "operation": MultiSendOperation.CALL,
+ "value": 0,
+ }
+ if approve_hash_message is None:
+ return [deploy_message]
+ return [approve_hash_message, deploy_message]
+
def get_terminate_data(self, service_id: int) -> t.Dict:
"""Get terminate tx data."""
- instance = registry_contracts.service_manager.get_instance(
- ledger_api=self.ledger_api,
- contract_address=self.contracts["service_manager"],
- )
+ instance = self.service_manager_instance
txd = instance.encodeABI(
fn_name="terminate",
args=[service_id],
@@ -1053,10 +1197,7 @@ def get_terminate_data(self, service_id: int) -> t.Dict:
def get_unbond_data(self, service_id: int) -> t.Dict:
"""Get unbond tx data."""
- instance = registry_contracts.service_manager.get_instance(
- ledger_api=self.ledger_api,
- contract_address=self.contracts["service_manager"],
- )
+ instance = self.service_manager_instance
txd = instance.encodeABI(
fn_name="unbond",
args=[service_id],
@@ -1086,7 +1227,7 @@ def get_staking_approval_data(
staking_contract=staking_contract,
)
return {
- "from": self.wallet.safe,
+ "from": self.safe,
"to": self.contracts["service_registry"],
"data": txd[2:],
"operation": MultiSendOperation.CALL,
@@ -1160,7 +1301,220 @@ def staking_status(self, service_id: int, staking_contract: str) -> StakingState
staking_contract=staking_contract,
)
+ def get_staking_params(self, staking_contract: str) -> t.Dict:
+ """Get agent IDs for the staking contract"""
+ self._patch()
+ staking_manager = StakingManager(
+ key=self.wallet.key_path,
+ password=self.wallet.password,
+ chain_type=self.chain_type,
+ )
+ agent_ids = staking_manager.agent_ids(
+ staking_contract=staking_contract,
+ )
+ service_registry = staking_manager.service_registry(
+ staking_contract=staking_contract,
+ )
+ staking_token = staking_manager.staking_token(
+ staking_contract=staking_contract,
+ )
+ service_registry_token_utility = staking_manager.service_registry_token_utility(
+ staking_contract=staking_contract,
+ )
+ min_staking_deposit = staking_manager.min_staking_deposit(
+ staking_contract=staking_contract,
+ )
+ activity_checker = staking_manager.activity_checker(
+ staking_contract=staking_contract,
+ )
+
+ return dict(
+ agent_ids=agent_ids,
+ service_registry=service_registry,
+ staking_token=staking_token,
+ service_registry_token_utility=service_registry_token_utility,
+ min_staking_deposit=min_staking_deposit,
+ activity_checker=activity_checker
+ )
+
+ def can_unstake(self, service_id: int, staking_contract: str) -> bool:
+ """Can unstake the service?"""
+ try:
+ StakingManager(
+ key=self.wallet.key_path,
+ password=self.wallet.password,
+ chain_type=self.chain_type,
+ ).check_if_unstaking_possible(
+ service_id=service_id,
+ staking_contract=staking_contract,
+ )
+ return True
+ except ValueError:
+ return False
+
def get_swap_data(self, service_id: int, multisig: str, owner_key: str) -> t.Dict:
"""Swap safe owner."""
# TODO: Discuss implementation
raise NotImplementedError()
+
+
+
+def get_packed_signature_for_approved_hash(owners: t.Tuple[str]) -> bytes:
+ """Get the packed signatures."""
+ sorted_owners = sorted(owners, key=str.lower)
+ signatures = b''
+ for owner in sorted_owners:
+ # Convert address to bytes and ensure it is 32 bytes long (left-padded with zeros)
+ r_bytes = to_bytes(hexstr=owner[2:].rjust(64, '0'))
+
+ # `s` as 32 zero bytes
+ s_bytes = b'\x00' * 32
+
+ # `v` as a single byte
+ v_bytes = to_bytes(1)
+
+ # Concatenate r, s, and v to form the packed signature
+ packed_signature = r_bytes + s_bytes + v_bytes
+ signatures += packed_signature
+
+ return signatures
+
+
+def get_reuse_multisig_from_safe_payload( # pylint: disable=too-many-locals
+ ledger_api: LedgerApi,
+ chain_type: ChainType,
+ service_id: int,
+ master_safe: str,
+) -> t.Tuple[Optional[str], Optional[t.Dict[str, t.Any]], Optional[str]]:
+ """Reuse multisig."""
+ _, multisig_address, _, threshold, *_ = get_service_info(
+ ledger_api=ledger_api,
+ chain_type=chain_type,
+ token_id=service_id,
+ )
+ if multisig_address == NULL_ADDRESS:
+ return None, None, "Cannot reuse multisig, No previous deployment exist!"
+
+ multisend_address = ContractConfigs.get(MULTISEND_CONTRACT.name).contracts[
+ chain_type
+ ]
+ multisig_instance = registry_contracts.gnosis_safe.get_instance(
+ ledger_api=ledger_api,
+ contract_address=multisig_address,
+ )
+
+ # Verify if the service was terminated properly or not
+ old_owners = multisig_instance.functions.getOwners().call()
+ if len(old_owners) != 1 or master_safe not in old_owners:
+ return (
+ None,
+ None,
+ "Service was not terminated properly, the service owner should be the only owner of the safe",
+ )
+
+ # Build multisend tx to add new instances as owners
+ txs = []
+ new_owners = t.cast(
+ t.List[str],
+ get_agent_instances(
+ ledger_api=ledger_api,
+ chain_type=chain_type,
+ token_id=service_id,
+ ).get("agentInstances"),
+ )
+
+ for _owner in new_owners:
+ txs.append(
+ {
+ "to": multisig_address,
+ "data": HexBytes(
+ bytes.fromhex(
+ multisig_instance.encodeABI(
+ fn_name="addOwnerWithThreshold",
+ args=[_owner, 1],
+ )[2:]
+ )
+ ),
+ "operation": MultiSendOperation.CALL,
+ "value": 0,
+ }
+ )
+
+ txs.append(
+ {
+ "to": multisig_address,
+ "data": HexBytes(
+ bytes.fromhex(
+ multisig_instance.encodeABI(
+ fn_name="removeOwner",
+ args=[new_owners[0], master_safe, 1],
+ )[2:]
+ )
+ ),
+ "operation": MultiSendOperation.CALL,
+ "value": 0,
+ }
+ )
+
+ txs.append(
+ {
+ "to": multisig_address,
+ "data": HexBytes(
+ bytes.fromhex(
+ multisig_instance.encodeABI(
+ fn_name="changeThreshold",
+ args=[threshold],
+ )[2:]
+ )
+ ),
+ "operation": MultiSendOperation.CALL,
+ "value": 0,
+ }
+ )
+
+ multisend_tx = registry_contracts.multisend.get_multisend_tx(
+ ledger_api=ledger_api,
+ contract_address=multisend_address,
+ txs=txs,
+ )
+ signature_bytes = get_packed_signature_for_approved_hash(owners=(master_safe, ))
+
+ safe_tx_hash = registry_contracts.gnosis_safe.get_raw_safe_transaction_hash(
+ ledger_api=ledger_api,
+ contract_address=multisig_address,
+ to_address=multisend_address,
+ value=multisend_tx["value"],
+ data=multisend_tx["data"],
+ operation=1,
+ ).get("tx_hash")
+ approve_hash_data = multisig_instance.encodeABI(
+ fn_name="approveHash",
+ args=[
+ safe_tx_hash,
+ ],
+ )
+ approve_hash_message = {
+ "to": multisig_address,
+ "data": approve_hash_data[2:],
+ "operation": MultiSendOperation.CALL,
+ "value": 0,
+ }
+
+ safe_exec_data = multisig_instance.encodeABI(
+ fn_name="execTransaction",
+ args=[
+ multisend_address, # to address
+ multisend_tx["value"], # value
+ multisend_tx["data"], # data
+ 1, # operation
+ 0, # safe tx gas
+ 0, # bas gas
+ 0, # safe gas price
+ NULL_ADDRESS, # gas token
+ NULL_ADDRESS, # refund receiver
+ signature_bytes, # signatures
+ ],
+ )
+ payload = multisig_address + safe_exec_data[2:]
+ return payload, approve_hash_message, None
+
diff --git a/operate/services/service.py b/operate/services/service.py
index 193ba7561..f2549a1fd 100644
--- a/operate/services/service.py
+++ b/operate/services/service.py
@@ -66,17 +66,21 @@
from operate.services.deployment_runner import run_host_deployment, stop_host_deployment
from operate.services.utils import tendermint
from operate.types import (
+ ChainConfig,
+ ChainConfigs,
ChainType,
DeployedNodes,
DeploymentConfig,
DeploymentStatus,
LedgerConfig,
+ LedgerConfigs,
LedgerType,
OnChainData,
OnChainState,
OnChainUserParams,
+ ServiceTemplate,
)
-
+from aea.helpers.env_vars import apply_env_variables
SAFE_CONTRACT_ADDRESS = "safe_contract_address"
ALL_PARTICIPANTS = "all_participants"
@@ -86,6 +90,7 @@
# pylint: disable=no-member,redefined-builtin,too-many-instance-attributes
DUMMY_MULTISIG = "0xm"
+NON_EXISTENT_TOKEN = -1
def mkdirs(build_dir: Path) -> None:
@@ -225,6 +230,7 @@ def try_update_runtime_params(
self.service.overrides = overrides
+
class ServiceHelper:
"""Service config helper."""
@@ -233,21 +239,27 @@ def __init__(self, path: Path) -> None:
self.path = path
self.config = load_service_config(service_path=path)
- def ledger_config(self) -> "LedgerConfig":
- """Get ledger config."""
- # TODO: Multiledger/Multiagent support
+ def ledger_configs(self) -> "LedgerConfigs":
+ """Get ledger configs."""
+ ledger_configs = {}
for override in self.config.overrides:
+ override = apply_env_variables(
+ override,
+ env_variables=os.environ.copy()
+ )
if (
override["type"] == "connection"
and "valory/ledger" in override["public_id"]
):
- (_, config), *_ = override["config"]["ledger_apis"].items()
- return LedgerConfig(
- rpc=config["address"],
- chain=ChainType.from_id(cid=config["chain_id"]),
- type=LedgerType.ETHEREUM,
- )
- raise ValueError("No ledger config found.")
+ for chain_id, config in override["config"]["ledger_apis"].items():
+ chain = ChainType.from_id(cid=config["chain_id"])
+ ledger_configs[str(config["chain_id"])] = LedgerConfig(
+ rpc=config["address"],
+ chain=chain,
+ type=LedgerType.ETHEREUM,
+ )
+ print(f"Adding {chain} {config['address']}")
+ return ledger_configs
def deployment_config(self) -> DeploymentConfig:
"""Returns deployment config."""
@@ -368,6 +380,7 @@ def load(cls, path: Path) -> "Deployment":
def _build_docker(
self,
force: bool = True,
+ chain_id: str = "100",
) -> None:
"""Build docker deployment."""
service = Service.load(path=self.path)
@@ -408,16 +421,19 @@ def _build_docker(
)
builder.deplopyment_type = DockerComposeGenerator.deployment_type
builder.try_update_abci_connection_params()
+
+ home_chain_data = service.chain_configs[service.home_chain_id]
builder.try_update_runtime_params(
- multisig_address=service.chain_data.multisig,
- agent_instances=service.chain_data.instances,
- service_id=service.chain_data.token,
+ multisig_address=home_chain_data.chain_data.multisig,
+ agent_instances=home_chain_data.chain_data.instances,
+ service_id=home_chain_data.chain_data.token,
consensus_threshold=None,
)
# TODO: Support for multiledger
+ ledger_config = service.chain_configs[service.home_chain_id].ledger_config
builder.try_update_ledger_params(
- chain=LedgerType(service.ledger_config.type).name.lower(),
- address=service.ledger_config.rpc,
+ chain=LedgerType(ledger_config.type).name.lower(),
+ address=ledger_config.rpc,
)
# build deployment
@@ -475,7 +491,7 @@ def _build_docker(
self.status = DeploymentStatus.BUILT
self.store()
- def _build_host(self, force: bool = True) -> None:
+ def _build_host(self, force: bool = True, chain_id: str = "100") -> None:
"""Build host depployment."""
build = self.path / DEPLOYMENT
if build.exists() and not force:
@@ -491,6 +507,10 @@ def _build_host(self, force: bool = True) -> None:
"Host deployment currently only supports single agent deployments"
)
+ chain_config = service.chain_configs[chain_id]
+ ledger_config = chain_config.ledger_config
+ chain_data = chain_config.chain_data
+
keys_file = self.path / KEYS_JSON
keys_file.write_text(
json.dumps(
@@ -515,15 +535,15 @@ def _build_host(self, force: bool = True) -> None:
builder.deplopyment_type = HostDeploymentGenerator.deployment_type
builder.try_update_abci_connection_params()
builder.try_update_runtime_params(
- multisig_address=service.chain_data.multisig,
- agent_instances=service.chain_data.instances,
- service_id=service.chain_data.token,
+ multisig_address=chain_data.multisig,
+ agent_instances=chain_data.instances,
+ service_id=chain_data.token,
consensus_threshold=None,
)
# TODO: Support for multiledger
builder.try_update_ledger_params(
- chain=LedgerType(service.ledger_config.type).name.lower(),
- address=service.ledger_config.rpc,
+ chain=LedgerType(ledger_config.type).name.lower(),
+ address=ledger_config.rpc,
)
(
@@ -560,6 +580,7 @@ def build(
self,
use_docker: bool = False,
force: bool = True,
+ chain_id: str = "100",
) -> None:
"""
Build a deployment
@@ -569,8 +590,8 @@ def build(
:return: Deployment object
"""
if use_docker:
- return self._build_docker(force=force)
- return self._build_host(force=force)
+ return self._build_docker(force=force, chain_id=chain_id)
+ return self._build_host(force=force, chain_id=chain_id)
def start(self, use_docker: bool = False) -> None:
"""Start the service"""
@@ -622,10 +643,11 @@ def delete(self) -> None:
class Service(LocalResource):
"""Service class."""
+ version: int
hash: str
keys: Keys
- ledger_config: LedgerConfig
- chain_data: OnChainData
+ home_chain_id: str
+ chain_configs: ChainConfigs
path: Path
service_path: Path
@@ -637,9 +659,59 @@ class Service(LocalResource):
_file = "config.json"
+ @classmethod
+ def migrate_format(cls, path: Path) -> None:
+ """Migrate the JSON file format if needed."""
+ file_path = path / Service._file if Service._file is not None and path.name != Service._file else path
+
+ with open(file_path, 'r', encoding='utf-8') as file:
+ data = json.load(file)
+
+ if 'version' in data:
+ # Data is already in the new format
+ return
+
+ # Migrate from old format to new format
+ new_data = {
+ "version": 2,
+ "hash": data.get("hash"),
+ "keys": data.get("keys"),
+ "home_chain_id": "100", # Assuming a default value for home_chain_id
+ "chain_configs": {
+ '10': {
+ "ledger_config": {
+ "rpc": data.get("ledger_config", {}).get("rpc"),
+ "type": data.get("ledger_config", {}).get("type"),
+ "chain": data.get("ledger_config", {}).get("chain")
+ },
+ "chain_data": {
+ "instances": data.get("chain_data", {}).get("instances", []),
+ "token": data.get("chain_data", {}).get("token"),
+ "multisig": data.get("chain_data", {}).get("multisig"),
+ "staked": data.get("chain_data", {}).get("staked", False),
+ "on_chain_state": data.get("chain_data", {}).get("on_chain_state", 3),
+ "user_params": {
+ "staking_program_id": "pearl_alpha",
+ "nft": data.get("chain_data", {}).get("user_params", {}).get("nft"),
+ "threshold": data.get("chain_data", {}).get("user_params", {}).get("threshold"),
+ "use_staking": data.get("chain_data", {}).get("user_params", {}).get("use_staking"),
+ "cost_of_bond": data.get("chain_data", {}).get("user_params", {}).get("cost_of_bond"),
+ "fund_requirements": data.get("chain_data", {}).get("user_params", {}).get("fund_requirements", {})
+ }
+ }
+ }
+ },
+ "service_path": data.get("service_path", ""),
+ "name": data.get("name", "")
+ }
+
+ with open(file_path, 'w', encoding='utf-8') as file:
+ json.dump(new_data, file, indent=2)
+
@classmethod
def load(cls, path: Path) -> "Service":
"""Load a service"""
+ cls.migrate_format(path)
return super().load(path) # type: ignore
@property
@@ -662,8 +734,7 @@ def deployment(self) -> Deployment:
def new(
hash: str,
keys: Keys,
- rpc: str,
- on_chain_user_params: OnChainUserParams,
+ service_template: ServiceTemplate,
storage: Path,
) -> "Service":
"""Create a new service."""
@@ -676,32 +747,50 @@ def new(
)
)
with (service_path / "service.yaml").open("r", encoding="utf-8") as fp:
- config, *_ = yaml_load_all(fp)
+ service_yaml, *_ = yaml_load_all(fp)
- ledger_config = ServiceHelper(path=service_path).ledger_config()
- service = Service(
- name=config["author"] + "/" + config["name"],
- hash=hash,
- keys=keys,
- ledger_config=LedgerConfig(
- rpc=rpc,
- type=ledger_config.type,
- chain=ledger_config.chain,
- ),
- chain_data=OnChainData(
+ ledger_configs = ServiceHelper(path=service_path).ledger_configs()
+
+ chain_configs = {}
+ for chain, config in service_template["configurations"].items():
+ ledger_config = ledger_configs[chain]
+ ledger_config.rpc = config["rpc"]
+
+ chain_data = OnChainData(
instances=[],
- token=-1,
+ token=NON_EXISTENT_TOKEN,
multisig=DUMMY_MULTISIG,
staked=False,
- on_chain_state=OnChainState.NOTMINTED,
- user_params=on_chain_user_params,
- ),
+ on_chain_state=OnChainState.NON_EXISTENT,
+ user_params=OnChainUserParams.from_json(config),
+ )
+
+ chain_configs[chain] = ChainConfig(
+ ledger_config=ledger_config,
+ chain_data=chain_data,
+ )
+
+ service = Service(
+ version=2, # TODO implement in appropriate place
+ name=service_yaml["author"] + "/" + service_yaml["name"],
+ hash=service_template["hash"],
+ keys=keys,
+ home_chain_id=service_template["home_chain_id"],
+ chain_configs=chain_configs,
path=service_path.parent,
service_path=service_path,
)
service.store()
return service
+ def update_user_params_from_template(self, service_template: ServiceTemplate):
+ """Update user params from template."""
+ for chain, config in service_template["configurations"].items():
+ for chain, config in service_template["configurations"].items():
+ self.chain_configs[chain].chain_data.user_params = OnChainUserParams.from_json(config)
+
+ self.store()
+
def delete(self) -> None:
"""Delete a service."""
parent_directory = self.path.parent
diff --git a/operate/types.py b/operate/types.py
index 29f83ec71..e87669e87 100644
--- a/operate/types.py
+++ b/operate/types.py
@@ -41,6 +41,8 @@
"goerli": 1,
"gnosis": 2,
"solana": 3,
+ "optimism": 4,
+ "base": 5
}
_CHAIN_ID_TO_CHAIN_NAME = {
@@ -48,6 +50,8 @@
5: "goerli",
100: "gnosis",
1399811149: "solana",
+ 10: "optimism",
+ 8453: "base"
}
_CHAIN_NAME_TO_ID = {val: key for key, val in _CHAIN_ID_TO_CHAIN_NAME.items()}
@@ -87,6 +91,8 @@ class ChainType(enum.IntEnum):
GOERLI = 1
GNOSIS = 2
SOLANA = 3
+ OPTIMISM = 4
+ BASE = 5
@property
def id(self) -> int:
@@ -130,16 +136,17 @@ class DeploymentStatus(enum.IntEnum):
DELETED = 6
+# TODO defined in aea.chain.base.OnChainState
class OnChainState(enum.IntEnum):
"""On-chain state."""
- NOTMINTED = 0
- MINTED = 1
- ACTIVATED = 2
- REGISTERED = 3
+ NON_EXISTENT = 0
+ PRE_REGISTRATION = 1
+ ACTIVE_REGISTRATION = 2
+ FINISHED_REGISTRATION = 3
DEPLOYED = 4
- TERMINATED = 5
- UNBONDED = 6
+ TERMINATED_BONDED = 5
+ UNBONDED = 6 # TODO this is not an on-chain state https://github.com/valory-xyz/autonolas-registries/blob/main/contracts/ServiceRegistryL2.sol
class ContractAddresses(TypedDict):
@@ -162,18 +169,7 @@ class LedgerConfig(LocalResource):
chain: ChainType
-LedgerConfigs = t.List[LedgerConfig]
-
-
-class ServiceState(enum.IntEnum):
- """Service state"""
-
- NON_EXISTENT = 0
- PRE_REGISTRATION = 1
- ACTIVE_REGISTRATION = 2
- FINISHED_REGISTRATION = 3
- DEPLOYED = 4
- TERMINATED_BONDED = 5
+LedgerConfigs = t.Dict[str, LedgerConfig]
class DeploymentConfig(TypedDict):
@@ -192,17 +188,18 @@ class FundRequirementsTemplate(TypedDict):
class ConfigurationTemplate(TypedDict):
"""Configuration template."""
+ staking_program_id: str
nft: str
rpc: str
- agent_id: int
threshold: int
use_staking: bool
cost_of_bond: int
- olas_cost_of_bond: int
- olas_required_to_stake: int
fund_requirements: FundRequirementsTemplate
+ConfigurationTemplates = t.Dict[str, ConfigurationTemplate]
+
+
class ServiceTemplate(TypedDict):
"""Service template."""
@@ -210,7 +207,9 @@ class ServiceTemplate(TypedDict):
hash: str
image: str
description: str
- configuration: ConfigurationTemplate
+ service_version: str
+ home_chain_id: str
+ configurations: ConfigurationTemplates
@dataclass
@@ -233,13 +232,11 @@ class OnChainFundRequirements(LocalResource):
class OnChainUserParams(LocalResource):
"""On-chain user params."""
+ staking_program_id: str
nft: str
- agent_id: int
threshold: int
use_staking: bool
cost_of_bond: int
- olas_cost_of_bond: int
- olas_required_to_stake: int
fund_requirements: OnChainFundRequirements
@classmethod
@@ -258,3 +255,19 @@ class OnChainData(LocalResource):
staked: bool
on_chain_state: OnChainState
user_params: OnChainUserParams
+
+
+@dataclass
+class ChainConfig(LocalResource):
+ """Chain config."""
+
+ ledger_config: LedgerConfig
+ chain_data: OnChainData
+
+ @classmethod
+ def from_json(cls, obj: t.Dict) -> "ChainConfig":
+ """Load the chain config."""
+ return super().from_json(obj) # type: ignore
+
+
+ChainConfigs = t.Dict[str, ChainConfig]
diff --git a/operate/wallet/master.py b/operate/wallet/master.py
index ecbd60fc9..3b8be2af5 100644
--- a/operate/wallet/master.py
+++ b/operate/wallet/master.py
@@ -21,7 +21,7 @@
import json
import typing as t
-from dataclasses import dataclass
+from dataclasses import dataclass, field
from pathlib import Path
from aea.crypto.base import Crypto, LedgerApi
@@ -49,7 +49,7 @@ class MasterWallet(LocalResource):
"""Master wallet."""
path: Path
- safe: t.Optional[str] = None
+ safes: t.Optional[t.Dict[ChainType, str]] = {}
ledger_type: LedgerType
_key: str
@@ -99,6 +99,7 @@ def transfer(
amount: int,
chain_type: ChainType,
from_safe: bool = True,
+ rpc: t.Optional[str] = None,
) -> None:
"""Transfer funds to the given account."""
raise NotImplementedError()
@@ -155,16 +156,16 @@ class EthereumMasterWallet(MasterWallet):
safe_chains: t.List[ChainType] # For cross-chain support
ledger_type: LedgerType = LedgerType.ETHEREUM
- safe: t.Optional[str] = None
+ safes: t.Optional[t.Dict[ChainType, str]] = field(default_factory=dict)
safe_nonce: t.Optional[int] = None # For cross-chain reusability
_file = ledger_type.config_file
_key = ledger_type.key_file
_crypto_cls = EthereumCrypto
- def _transfer_from_eoa(self, to: str, amount: int, chain_type: ChainType) -> None:
+ def _transfer_from_eoa(self, to: str, amount: int, chain_type: ChainType, rpc: t.Optional[str] = None) -> None:
"""Transfer funds from EOA wallet."""
- ledger_api = t.cast(EthereumApi, self.ledger_api(chain_type=chain_type))
+ ledger_api = t.cast(EthereumApi, self.ledger_api(chain_type=chain_type, rpc=rpc))
tx_helper = TxSettler(
ledger_api=ledger_api,
crypto=self.crypto,
@@ -195,12 +196,12 @@ def _build_tx( # pylint: disable=unused-argument
setattr(tx_helper, "build", _build_tx) # noqa: B010
tx_helper.transact(lambda x: x, "", kwargs={})
- def _transfer_from_safe(self, to: str, amount: int, chain_type: ChainType) -> None:
+ def _transfer_from_safe(self, to: str, amount: int, chain_type: ChainType, rpc: t.Optional[str] = None) -> None:
"""Transfer funds from safe wallet."""
transfer_from_safe(
- ledger_api=self.ledger_api(chain_type=chain_type),
+ ledger_api=self.ledger_api(chain_type=chain_type, rpc=rpc),
crypto=self.crypto,
- safe=t.cast(str, self.safe),
+ safe=t.cast(str, self.safes[chain_type]),
to=to,
amount=amount,
)
@@ -211,6 +212,7 @@ def transfer(
amount: int,
chain_type: ChainType,
from_safe: bool = True,
+ rpc: t.Optional[str] = None,
) -> None:
"""Transfer funds to the given account."""
if from_safe:
@@ -218,11 +220,13 @@ def transfer(
to=to,
amount=amount,
chain_type=chain_type,
+ rpc=rpc,
)
return self._transfer_from_eoa(
to=to,
amount=amount,
chain_type=chain_type,
+ rpc=rpc,
)
@classmethod
@@ -260,13 +264,16 @@ def create_safe(
"""Create safe."""
if chain_type in self.safe_chains:
return
- self.safe, self.safe_nonce = create_gnosis_safe(
+ safe, self.safe_nonce = create_gnosis_safe(
ledger_api=self.ledger_api(chain_type=chain_type, rpc=rpc),
crypto=self.crypto,
owner=owner,
salt_nonce=self.safe_nonce,
)
self.safe_chains.append(chain_type)
+ if self.safes is None:
+ self.safes = {}
+ self.safes[chain_type] = safe
self.store()
def add_backup_owner(
@@ -277,11 +284,14 @@ def add_backup_owner(
) -> None:
"""Add a backup owner."""
ledger_api = self.ledger_api(chain_type=chain_type, rpc=rpc)
- if len(get_owners(ledger_api=ledger_api, safe=t.cast(str, self.safe))) == 2:
+ if chain_type not in self.safes:
+ raise ValueError(f"Safes not created for chain_type {chain_type}!")
+ safe = t.cast(str, self.safes[chain_type])
+ if len(get_owners(ledger_api=ledger_api, safe=safe)) == 2:
raise ValueError("Backup owner already exist!")
add_owner(
ledger_api=ledger_api,
- safe=t.cast(str, self.safe),
+ safe=safe,
owner=owner,
crypto=self.crypto,
)
@@ -295,11 +305,14 @@ def swap_backup_owner(
) -> None:
"""Swap backup owner."""
ledger_api = self.ledger_api(chain_type=chain_type, rpc=rpc)
- if len(get_owners(ledger_api=ledger_api, safe=t.cast(str, self.safe))) == 1:
+ if chain_type not in self.safes:
+ raise ValueError(f"Safes not created for chain_type {chain_type}!")
+ safe = t.cast(str, self.safes[chain_type])
+ if len(get_owners(ledger_api=ledger_api, safe=safe)) == 1:
raise ValueError("Backup owner does not exist, cannot swap!")
swap_owner(
ledger_api=ledger_api,
- safe=t.cast(str, self.safe),
+ safe=safe,
old_owner=old_owner,
new_owner=new_owner,
crypto=self.crypto,
@@ -313,7 +326,10 @@ def add_or_swap_owner(
) -> None:
"""Add or swap backup owner."""
ledger_api = self.ledger_api(chain_type=chain_type, rpc=rpc)
- owners = get_owners(ledger_api=ledger_api, safe=t.cast(str, self.safe))
+ if chain_type not in self.safes:
+ raise ValueError(f"Safes not created for chain_type {chain_type}!")
+ safe = t.cast(str, self.safes[chain_type])
+ owners = get_owners(ledger_api=ledger_api, safe=safe)
if len(owners) == 1:
return self.add_backup_owner(chain_type=chain_type, owner=owner, rpc=rpc)
@@ -332,7 +348,13 @@ def add_or_swap_owner(
@classmethod
def load(cls, path: Path) -> "EthereumMasterWallet":
"""Load master wallet."""
- return super().load(path) # type: ignore
+ raw_ethereum_wallet = super().load(path) # type: ignore
+ safes = {}
+ for id_, safe_address in raw_ethereum_wallet.safes.items():
+ safes[ChainType(int(id_))] = safe_address
+
+ raw_ethereum_wallet.safes = safes
+ return t.cast(EthereumMasterWallet, raw_ethereum_wallet)
LEDGER_TYPE_TO_WALLET_CLASS = {
diff --git a/package.json b/package.json
index 23a69d72b..c5afe288e 100644
--- a/package.json
+++ b/package.json
@@ -11,7 +11,7 @@
"cross-env": "^7.0.3",
"dotenv": "^16.4.5",
"electron-log": "^5.1.4",
- "electron-store": "^9.0.0",
+ "electron-store": "8.2.0",
"electron-updater": "^6.1.8",
"ethers": "5.7.2",
"ethers-multicall": "^0.2.3",
@@ -43,7 +43,6 @@
"productName": "Pearl",
"description": "An all-in-one application designed to streamline your entry into the world of autonomous agents and earning OLAS through staking.",
"scripts": {
- "build": "rm -rf dist/ && node build.tester.js",
"build:frontend": "cd frontend && yarn build && rm -rf ../electron/.next && cp -r .next ../electron/.next && rm -rf ../electron/public && cp -r public ../electron/public",
"dev:backend": "poetry run python operate/cli.py",
"dev:frontend": "cd frontend && yarn dev",
@@ -52,9 +51,12 @@
"install:backend": "poetry install --no-root",
"install:frontend": "cd frontend && yarn",
"lint:frontend": "cd frontend && yarn lint",
- "start": "electron .",
+ "start": "yarn electron .",
+ "dev": "dotenv -e .env -- yarn start",
"start:frontend": "cd frontend && yarn start",
- "test:frontend": "cd frontend && yarn test"
+ "test:frontend": "cd frontend && yarn test",
+ "download-binaries": "sh download_binaries.sh",
+ "build:pearl": "sh build_pearl.sh"
},
- "version": "0.1.0-rc110"
-}
+ "version": "0.1.0-rc115"
+}
\ No newline at end of file
diff --git a/poetry.lock b/poetry.lock
index f98e0f9a6..eef748974 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -1,10 +1,9 @@
-# This file is automatically @generated by Poetry and should not be changed by hand.
+# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand.
[[package]]
name = "aiohttp"
version = "3.9.5"
description = "Async http client/server framework (asyncio)"
-category = "main"
optional = false
python-versions = ">=3.8"
files = [
@@ -101,7 +100,6 @@ speedups = ["Brotli", "aiodns", "brotlicffi"]
name = "aiosignal"
version = "1.3.1"
description = "aiosignal: a list of registered asynchronous callbacks"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -116,7 +114,6 @@ frozenlist = ">=1.1.0"
name = "altgraph"
version = "0.17.4"
description = "Python graph (network) package"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -128,7 +125,6 @@ files = [
name = "annotated-types"
version = "0.7.0"
description = "Reusable constraint types to use with typing.Annotated"
-category = "main"
optional = false
python-versions = ">=3.8"
files = [
@@ -140,7 +136,6 @@ files = [
name = "anyio"
version = "4.4.0"
description = "High level compatibility layer for multiple asynchronous event loop implementations"
-category = "main"
optional = false
python-versions = ">=3.8"
files = [
@@ -163,7 +158,6 @@ trio = ["trio (>=0.23)"]
name = "asn1crypto"
version = "1.5.1"
description = "Fast ASN.1 parser and serializer with definitions for private keys, public keys, certificates, CRL, OCSP, CMS, PKCS#3, PKCS#7, PKCS#8, PKCS#12, PKCS#5, X.509 and TSP"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -171,11 +165,28 @@ files = [
{file = "asn1crypto-1.5.1.tar.gz", hash = "sha256:13ae38502be632115abf8a24cbe5f4da52e3b5231990aff31123c805306ccb9c"},
]
+[[package]]
+name = "asttokens"
+version = "2.4.1"
+description = "Annotate AST trees with source code positions"
+optional = false
+python-versions = "*"
+files = [
+ {file = "asttokens-2.4.1-py2.py3-none-any.whl", hash = "sha256:051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24"},
+ {file = "asttokens-2.4.1.tar.gz", hash = "sha256:b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0"},
+]
+
+[package.dependencies]
+six = ">=1.12.0"
+
+[package.extras]
+astroid = ["astroid (>=1,<2)", "astroid (>=2,<4)"]
+test = ["astroid (>=1,<2)", "astroid (>=2,<4)", "pytest"]
+
[[package]]
name = "async-timeout"
version = "4.0.3"
description = "Timeout context manager for asyncio programs"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -187,7 +198,6 @@ files = [
name = "attrs"
version = "23.2.0"
description = "Classes Without Boilerplate"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -207,7 +217,6 @@ tests-no-zope = ["attrs[tests-mypy]", "cloudpickle", "hypothesis", "pympler", "p
name = "backoff"
version = "2.2.1"
description = "Function decoration for backoff and retry"
-category = "main"
optional = false
python-versions = ">=3.7,<4.0"
files = [
@@ -219,7 +228,6 @@ files = [
name = "base58"
version = "2.1.1"
description = "Base58 and Base58Check implementation."
-category = "main"
optional = false
python-versions = ">=3.5"
files = [
@@ -232,39 +240,38 @@ tests = ["PyHamcrest (>=2.0.2)", "mypy", "pytest (>=4.6)", "pytest-benchmark", "
[[package]]
name = "bcrypt"
-version = "4.1.3"
+version = "4.2.0"
description = "Modern password hashing for your software and your servers"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
- {file = "bcrypt-4.1.3-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:48429c83292b57bf4af6ab75809f8f4daf52aa5d480632e53707805cc1ce9b74"},
- {file = "bcrypt-4.1.3-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a8bea4c152b91fd8319fef4c6a790da5c07840421c2b785084989bf8bbb7455"},
- {file = "bcrypt-4.1.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d3b317050a9a711a5c7214bf04e28333cf528e0ed0ec9a4e55ba628d0f07c1a"},
- {file = "bcrypt-4.1.3-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:094fd31e08c2b102a14880ee5b3d09913ecf334cd604af27e1013c76831f7b05"},
- {file = "bcrypt-4.1.3-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:4fb253d65da30d9269e0a6f4b0de32bd657a0208a6f4e43d3e645774fb5457f3"},
- {file = "bcrypt-4.1.3-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:193bb49eeeb9c1e2db9ba65d09dc6384edd5608d9d672b4125e9320af9153a15"},
- {file = "bcrypt-4.1.3-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:8cbb119267068c2581ae38790e0d1fbae65d0725247a930fc9900c285d95725d"},
- {file = "bcrypt-4.1.3-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:6cac78a8d42f9d120b3987f82252bdbeb7e6e900a5e1ba37f6be6fe4e3848286"},
- {file = "bcrypt-4.1.3-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:01746eb2c4299dd0ae1670234bf77704f581dd72cc180f444bfe74eb80495b64"},
- {file = "bcrypt-4.1.3-cp37-abi3-win32.whl", hash = "sha256:037c5bf7c196a63dcce75545c8874610c600809d5d82c305dd327cd4969995bf"},
- {file = "bcrypt-4.1.3-cp37-abi3-win_amd64.whl", hash = "sha256:8a893d192dfb7c8e883c4576813bf18bb9d59e2cfd88b68b725990f033f1b978"},
- {file = "bcrypt-4.1.3-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:0d4cf6ef1525f79255ef048b3489602868c47aea61f375377f0d00514fe4a78c"},
- {file = "bcrypt-4.1.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f5698ce5292a4e4b9e5861f7e53b1d89242ad39d54c3da451a93cac17b61921a"},
- {file = "bcrypt-4.1.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec3c2e1ca3e5c4b9edb94290b356d082b721f3f50758bce7cce11d8a7c89ce84"},
- {file = "bcrypt-4.1.3-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:3a5be252fef513363fe281bafc596c31b552cf81d04c5085bc5dac29670faa08"},
- {file = "bcrypt-4.1.3-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:5f7cd3399fbc4ec290378b541b0cf3d4398e4737a65d0f938c7c0f9d5e686611"},
- {file = "bcrypt-4.1.3-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:c4c8d9b3e97209dd7111bf726e79f638ad9224b4691d1c7cfefa571a09b1b2d6"},
- {file = "bcrypt-4.1.3-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:31adb9cbb8737a581a843e13df22ffb7c84638342de3708a98d5c986770f2834"},
- {file = "bcrypt-4.1.3-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:551b320396e1d05e49cc18dd77d970accd52b322441628aca04801bbd1d52a73"},
- {file = "bcrypt-4.1.3-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:6717543d2c110a155e6821ce5670c1f512f602eabb77dba95717ca76af79867d"},
- {file = "bcrypt-4.1.3-cp39-abi3-win32.whl", hash = "sha256:6004f5229b50f8493c49232b8e75726b568535fd300e5039e255d919fc3a07f2"},
- {file = "bcrypt-4.1.3-cp39-abi3-win_amd64.whl", hash = "sha256:2505b54afb074627111b5a8dc9b6ae69d0f01fea65c2fcaea403448c503d3991"},
- {file = "bcrypt-4.1.3-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:cb9c707c10bddaf9e5ba7cdb769f3e889e60b7d4fea22834b261f51ca2b89fed"},
- {file = "bcrypt-4.1.3-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:9f8ea645eb94fb6e7bea0cf4ba121c07a3a182ac52876493870033141aa687bc"},
- {file = "bcrypt-4.1.3-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:f44a97780677e7ac0ca393bd7982b19dbbd8d7228c1afe10b128fd9550eef5f1"},
- {file = "bcrypt-4.1.3-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:d84702adb8f2798d813b17d8187d27076cca3cd52fe3686bb07a9083930ce650"},
- {file = "bcrypt-4.1.3.tar.gz", hash = "sha256:2ee15dd749f5952fe3f0430d0ff6b74082e159c50332a1413d51b5689cf06623"},
+ {file = "bcrypt-4.2.0-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:096a15d26ed6ce37a14c1ac1e48119660f21b24cba457f160a4b830f3fe6b5cb"},
+ {file = "bcrypt-4.2.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c02d944ca89d9b1922ceb8a46460dd17df1ba37ab66feac4870f6862a1533c00"},
+ {file = "bcrypt-4.2.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d84cf6d877918620b687b8fd1bf7781d11e8a0998f576c7aa939776b512b98d"},
+ {file = "bcrypt-4.2.0-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:1bb429fedbe0249465cdd85a58e8376f31bb315e484f16e68ca4c786dcc04291"},
+ {file = "bcrypt-4.2.0-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:655ea221910bcac76ea08aaa76df427ef8625f92e55a8ee44fbf7753dbabb328"},
+ {file = "bcrypt-4.2.0-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:1ee38e858bf5d0287c39b7a1fc59eec64bbf880c7d504d3a06a96c16e14058e7"},
+ {file = "bcrypt-4.2.0-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:0da52759f7f30e83f1e30a888d9163a81353ef224d82dc58eb5bb52efcabc399"},
+ {file = "bcrypt-4.2.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:3698393a1b1f1fd5714524193849d0c6d524d33523acca37cd28f02899285060"},
+ {file = "bcrypt-4.2.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:762a2c5fb35f89606a9fde5e51392dad0cd1ab7ae64149a8b935fe8d79dd5ed7"},
+ {file = "bcrypt-4.2.0-cp37-abi3-win32.whl", hash = "sha256:5a1e8aa9b28ae28020a3ac4b053117fb51c57a010b9f969603ed885f23841458"},
+ {file = "bcrypt-4.2.0-cp37-abi3-win_amd64.whl", hash = "sha256:8f6ede91359e5df88d1f5c1ef47428a4420136f3ce97763e31b86dd8280fbdf5"},
+ {file = "bcrypt-4.2.0-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:c52aac18ea1f4a4f65963ea4f9530c306b56ccd0c6f8c8da0c06976e34a6e841"},
+ {file = "bcrypt-4.2.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3bbbfb2734f0e4f37c5136130405332640a1e46e6b23e000eeff2ba8d005da68"},
+ {file = "bcrypt-4.2.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3413bd60460f76097ee2e0a493ccebe4a7601918219c02f503984f0a7ee0aebe"},
+ {file = "bcrypt-4.2.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:8d7bb9c42801035e61c109c345a28ed7e84426ae4865511eb82e913df18f58c2"},
+ {file = "bcrypt-4.2.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:3d3a6d28cb2305b43feac298774b997e372e56c7c7afd90a12b3dc49b189151c"},
+ {file = "bcrypt-4.2.0-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:9c1c4ad86351339c5f320ca372dfba6cb6beb25e8efc659bedd918d921956bae"},
+ {file = "bcrypt-4.2.0-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:27fe0f57bb5573104b5a6de5e4153c60814c711b29364c10a75a54bb6d7ff48d"},
+ {file = "bcrypt-4.2.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:8ac68872c82f1add6a20bd489870c71b00ebacd2e9134a8aa3f98a0052ab4b0e"},
+ {file = "bcrypt-4.2.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:cb2a8ec2bc07d3553ccebf0746bbf3d19426d1c6d1adbd4fa48925f66af7b9e8"},
+ {file = "bcrypt-4.2.0-cp39-abi3-win32.whl", hash = "sha256:77800b7147c9dc905db1cba26abe31e504d8247ac73580b4aa179f98e6608f34"},
+ {file = "bcrypt-4.2.0-cp39-abi3-win_amd64.whl", hash = "sha256:61ed14326ee023917ecd093ee6ef422a72f3aec6f07e21ea5f10622b735538a9"},
+ {file = "bcrypt-4.2.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:39e1d30c7233cfc54f5c3f2c825156fe044efdd3e0b9d309512cc514a263ec2a"},
+ {file = "bcrypt-4.2.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f4f4acf526fcd1c34e7ce851147deedd4e26e6402369304220250598b26448db"},
+ {file = "bcrypt-4.2.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:1ff39b78a52cf03fdf902635e4c81e544714861ba3f0efc56558979dd4f09170"},
+ {file = "bcrypt-4.2.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:373db9abe198e8e2c70d12b479464e0d5092cc122b20ec504097b5f2297ed184"},
+ {file = "bcrypt-4.2.0.tar.gz", hash = "sha256:cf69eaf5185fd58f268f805b505ce31f9b9fc2d64b376642164e9244540c1221"},
]
[package.extras]
@@ -275,7 +282,6 @@ typecheck = ["mypy"]
name = "bech32"
version = "1.2.0"
description = "Reference implementation for Bech32 and segwit addresses."
-category = "main"
optional = false
python-versions = ">=3.5"
files = [
@@ -287,7 +293,6 @@ files = [
name = "bitarray"
version = "2.9.2"
description = "efficient arrays of booleans -- C extension"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -419,7 +424,6 @@ files = [
name = "certifi"
version = "2024.7.4"
description = "Python package for providing Mozilla's CA Bundle."
-category = "main"
optional = false
python-versions = ">=3.6"
files = [
@@ -431,7 +435,6 @@ files = [
name = "cffi"
version = "1.16.0"
description = "Foreign Function Interface for Python calling C code."
-category = "main"
optional = false
python-versions = ">=3.8"
files = [
@@ -494,24 +497,107 @@ pycparser = "*"
[[package]]
name = "charset-normalizer"
-version = "2.1.1"
+version = "3.3.2"
description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
-category = "main"
optional = false
-python-versions = ">=3.6.0"
-files = [
- {file = "charset-normalizer-2.1.1.tar.gz", hash = "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845"},
- {file = "charset_normalizer-2.1.1-py3-none-any.whl", hash = "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f"},
+python-versions = ">=3.7.0"
+files = [
+ {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"},
+ {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"},
]
-[package.extras]
-unicode-backport = ["unicodedata2"]
-
[[package]]
name = "clea"
version = "0.1.0rc4"
description = "Framework for writing CLI application quickly"
-category = "main"
optional = false
python-versions = ">=3.8,<4.0"
files = [
@@ -524,14 +610,13 @@ typing-extensions = ">=4.7.1,<5.0.0"
[[package]]
name = "click"
-version = "8.0.2"
+version = "8.1.7"
description = "Composable command line interface toolkit"
-category = "main"
optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.7"
files = [
- {file = "click-8.0.2-py3-none-any.whl", hash = "sha256:3fab8aeb8f15f5452ae7511ad448977b3417325bceddd53df87e0bb81f3a8cf8"},
- {file = "click-8.0.2.tar.gz", hash = "sha256:7027bc7bbafaab8b2c2816861d8eb372429ee3c02e193fc2f93d6c4ab9de49c5"},
+ {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"},
+ {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"},
]
[package.dependencies]
@@ -541,7 +626,6 @@ colorama = {version = "*", markers = "platform_system == \"Windows\""}
name = "coincurve"
version = "18.0.0"
description = "Cross-platform Python CFFI bindings for libsecp256k1"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -597,7 +681,6 @@ cffi = ">=1.3.0"
name = "colorama"
version = "0.4.6"
description = "Cross-platform colored terminal text."
-category = "main"
optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
files = [
@@ -609,7 +692,6 @@ files = [
name = "cosmpy"
version = "0.9.2"
description = "A library for interacting with the cosmos networks"
-category = "main"
optional = false
python-versions = ">=3.8,<4.0"
files = [
@@ -630,64 +712,63 @@ requests = "*"
[[package]]
name = "coverage"
-version = "7.5.4"
+version = "7.6.0"
description = "Code coverage measurement for Python"
-category = "main"
optional = false
python-versions = ">=3.8"
files = [
- {file = "coverage-7.5.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6cfb5a4f556bb51aba274588200a46e4dd6b505fb1a5f8c5ae408222eb416f99"},
- {file = "coverage-7.5.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2174e7c23e0a454ffe12267a10732c273243b4f2d50d07544a91198f05c48f47"},
- {file = "coverage-7.5.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2214ee920787d85db1b6a0bd9da5f8503ccc8fcd5814d90796c2f2493a2f4d2e"},
- {file = "coverage-7.5.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1137f46adb28e3813dec8c01fefadcb8c614f33576f672962e323b5128d9a68d"},
- {file = "coverage-7.5.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b385d49609f8e9efc885790a5a0e89f2e3ae042cdf12958b6034cc442de428d3"},
- {file = "coverage-7.5.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b4a474f799456e0eb46d78ab07303286a84a3140e9700b9e154cfebc8f527016"},
- {file = "coverage-7.5.4-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:5cd64adedf3be66f8ccee418473c2916492d53cbafbfcff851cbec5a8454b136"},
- {file = "coverage-7.5.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e564c2cf45d2f44a9da56f4e3a26b2236504a496eb4cb0ca7221cd4cc7a9aca9"},
- {file = "coverage-7.5.4-cp310-cp310-win32.whl", hash = "sha256:7076b4b3a5f6d2b5d7f1185fde25b1e54eb66e647a1dfef0e2c2bfaf9b4c88c8"},
- {file = "coverage-7.5.4-cp310-cp310-win_amd64.whl", hash = "sha256:018a12985185038a5b2bcafab04ab833a9a0f2c59995b3cec07e10074c78635f"},
- {file = "coverage-7.5.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:db14f552ac38f10758ad14dd7b983dbab424e731588d300c7db25b6f89e335b5"},
- {file = "coverage-7.5.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3257fdd8e574805f27bb5342b77bc65578e98cbc004a92232106344053f319ba"},
- {file = "coverage-7.5.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3a6612c99081d8d6134005b1354191e103ec9705d7ba2754e848211ac8cacc6b"},
- {file = "coverage-7.5.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d45d3cbd94159c468b9b8c5a556e3f6b81a8d1af2a92b77320e887c3e7a5d080"},
- {file = "coverage-7.5.4-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ed550e7442f278af76d9d65af48069f1fb84c9f745ae249c1a183c1e9d1b025c"},
- {file = "coverage-7.5.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7a892be37ca35eb5019ec85402c3371b0f7cda5ab5056023a7f13da0961e60da"},
- {file = "coverage-7.5.4-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8192794d120167e2a64721d88dbd688584675e86e15d0569599257566dec9bf0"},
- {file = "coverage-7.5.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:820bc841faa502e727a48311948e0461132a9c8baa42f6b2b84a29ced24cc078"},
- {file = "coverage-7.5.4-cp311-cp311-win32.whl", hash = "sha256:6aae5cce399a0f065da65c7bb1e8abd5c7a3043da9dceb429ebe1b289bc07806"},
- {file = "coverage-7.5.4-cp311-cp311-win_amd64.whl", hash = "sha256:d2e344d6adc8ef81c5a233d3a57b3c7d5181f40e79e05e1c143da143ccb6377d"},
- {file = "coverage-7.5.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:54317c2b806354cbb2dc7ac27e2b93f97096912cc16b18289c5d4e44fc663233"},
- {file = "coverage-7.5.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:042183de01f8b6d531e10c197f7f0315a61e8d805ab29c5f7b51a01d62782747"},
- {file = "coverage-7.5.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a6bb74ed465d5fb204b2ec41d79bcd28afccf817de721e8a807d5141c3426638"},
- {file = "coverage-7.5.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b3d45ff86efb129c599a3b287ae2e44c1e281ae0f9a9bad0edc202179bcc3a2e"},
- {file = "coverage-7.5.4-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5013ed890dc917cef2c9f765c4c6a8ae9df983cd60dbb635df8ed9f4ebc9f555"},
- {file = "coverage-7.5.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1014fbf665fef86cdfd6cb5b7371496ce35e4d2a00cda501cf9f5b9e6fced69f"},
- {file = "coverage-7.5.4-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3684bc2ff328f935981847082ba4fdc950d58906a40eafa93510d1b54c08a66c"},
- {file = "coverage-7.5.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:581ea96f92bf71a5ec0974001f900db495488434a6928a2ca7f01eee20c23805"},
- {file = "coverage-7.5.4-cp312-cp312-win32.whl", hash = "sha256:73ca8fbc5bc622e54627314c1a6f1dfdd8db69788f3443e752c215f29fa87a0b"},
- {file = "coverage-7.5.4-cp312-cp312-win_amd64.whl", hash = "sha256:cef4649ec906ea7ea5e9e796e68b987f83fa9a718514fe147f538cfeda76d7a7"},
- {file = "coverage-7.5.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cdd31315fc20868c194130de9ee6bfd99755cc9565edff98ecc12585b90be882"},
- {file = "coverage-7.5.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:02ff6e898197cc1e9fa375581382b72498eb2e6d5fc0b53f03e496cfee3fac6d"},
- {file = "coverage-7.5.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d05c16cf4b4c2fc880cb12ba4c9b526e9e5d5bb1d81313d4d732a5b9fe2b9d53"},
- {file = "coverage-7.5.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c5986ee7ea0795a4095ac4d113cbb3448601efca7f158ec7f7087a6c705304e4"},
- {file = "coverage-7.5.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5df54843b88901fdc2f598ac06737f03d71168fd1175728054c8f5a2739ac3e4"},
- {file = "coverage-7.5.4-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:ab73b35e8d109bffbda9a3e91c64e29fe26e03e49addf5b43d85fc426dde11f9"},
- {file = "coverage-7.5.4-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:aea072a941b033813f5e4814541fc265a5c12ed9720daef11ca516aeacd3bd7f"},
- {file = "coverage-7.5.4-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:16852febd96acd953b0d55fc842ce2dac1710f26729b31c80b940b9afcd9896f"},
- {file = "coverage-7.5.4-cp38-cp38-win32.whl", hash = "sha256:8f894208794b164e6bd4bba61fc98bf6b06be4d390cf2daacfa6eca0a6d2bb4f"},
- {file = "coverage-7.5.4-cp38-cp38-win_amd64.whl", hash = "sha256:e2afe743289273209c992075a5a4913e8d007d569a406ffed0bd080ea02b0633"},
- {file = "coverage-7.5.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b95c3a8cb0463ba9f77383d0fa8c9194cf91f64445a63fc26fb2327e1e1eb088"},
- {file = "coverage-7.5.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3d7564cc09dd91b5a6001754a5b3c6ecc4aba6323baf33a12bd751036c998be4"},
- {file = "coverage-7.5.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:44da56a2589b684813f86d07597fdf8a9c6ce77f58976727329272f5a01f99f7"},
- {file = "coverage-7.5.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e16f3d6b491c48c5ae726308e6ab1e18ee830b4cdd6913f2d7f77354b33f91c8"},
- {file = "coverage-7.5.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dbc5958cb471e5a5af41b0ddaea96a37e74ed289535e8deca404811f6cb0bc3d"},
- {file = "coverage-7.5.4-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:a04e990a2a41740b02d6182b498ee9796cf60eefe40cf859b016650147908029"},
- {file = "coverage-7.5.4-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:ddbd2f9713a79e8e7242d7c51f1929611e991d855f414ca9996c20e44a895f7c"},
- {file = "coverage-7.5.4-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:b1ccf5e728ccf83acd313c89f07c22d70d6c375a9c6f339233dcf792094bcbf7"},
- {file = "coverage-7.5.4-cp39-cp39-win32.whl", hash = "sha256:56b4eafa21c6c175b3ede004ca12c653a88b6f922494b023aeb1e836df953ace"},
- {file = "coverage-7.5.4-cp39-cp39-win_amd64.whl", hash = "sha256:65e528e2e921ba8fd67d9055e6b9f9e34b21ebd6768ae1c1723f4ea6ace1234d"},
- {file = "coverage-7.5.4-pp38.pp39.pp310-none-any.whl", hash = "sha256:79b356f3dd5b26f3ad23b35c75dbdaf1f9e2450b6bcefc6d0825ea0aa3f86ca5"},
- {file = "coverage-7.5.4.tar.gz", hash = "sha256:a44963520b069e12789d0faea4e9fdb1e410cdc4aab89d94f7f55cbb7fef0353"},
+ {file = "coverage-7.6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dff044f661f59dace805eedb4a7404c573b6ff0cdba4a524141bc63d7be5c7fd"},
+ {file = "coverage-7.6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a8659fd33ee9e6ca03950cfdcdf271d645cf681609153f218826dd9805ab585c"},
+ {file = "coverage-7.6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7792f0ab20df8071d669d929c75c97fecfa6bcab82c10ee4adb91c7a54055463"},
+ {file = "coverage-7.6.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d4b3cd1ca7cd73d229487fa5caca9e4bc1f0bca96526b922d61053ea751fe791"},
+ {file = "coverage-7.6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e7e128f85c0b419907d1f38e616c4f1e9f1d1b37a7949f44df9a73d5da5cd53c"},
+ {file = "coverage-7.6.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a94925102c89247530ae1dab7dc02c690942566f22e189cbd53579b0693c0783"},
+ {file = "coverage-7.6.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:dcd070b5b585b50e6617e8972f3fbbee786afca71b1936ac06257f7e178f00f6"},
+ {file = "coverage-7.6.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:d50a252b23b9b4dfeefc1f663c568a221092cbaded20a05a11665d0dbec9b8fb"},
+ {file = "coverage-7.6.0-cp310-cp310-win32.whl", hash = "sha256:0e7b27d04131c46e6894f23a4ae186a6a2207209a05df5b6ad4caee6d54a222c"},
+ {file = "coverage-7.6.0-cp310-cp310-win_amd64.whl", hash = "sha256:54dece71673b3187c86226c3ca793c5f891f9fc3d8aa183f2e3653da18566169"},
+ {file = "coverage-7.6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c7b525ab52ce18c57ae232ba6f7010297a87ced82a2383b1afd238849c1ff933"},
+ {file = "coverage-7.6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4bea27c4269234e06f621f3fac3925f56ff34bc14521484b8f66a580aacc2e7d"},
+ {file = "coverage-7.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed8d1d1821ba5fc88d4a4f45387b65de52382fa3ef1f0115a4f7a20cdfab0e94"},
+ {file = "coverage-7.6.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:01c322ef2bbe15057bc4bf132b525b7e3f7206f071799eb8aa6ad1940bcf5fb1"},
+ {file = "coverage-7.6.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:03cafe82c1b32b770a29fd6de923625ccac3185a54a5e66606da26d105f37dac"},
+ {file = "coverage-7.6.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0d1b923fc4a40c5832be4f35a5dab0e5ff89cddf83bb4174499e02ea089daf57"},
+ {file = "coverage-7.6.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4b03741e70fb811d1a9a1d75355cf391f274ed85847f4b78e35459899f57af4d"},
+ {file = "coverage-7.6.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a73d18625f6a8a1cbb11eadc1d03929f9510f4131879288e3f7922097a429f63"},
+ {file = "coverage-7.6.0-cp311-cp311-win32.whl", hash = "sha256:65fa405b837060db569a61ec368b74688f429b32fa47a8929a7a2f9b47183713"},
+ {file = "coverage-7.6.0-cp311-cp311-win_amd64.whl", hash = "sha256:6379688fb4cfa921ae349c76eb1a9ab26b65f32b03d46bb0eed841fd4cb6afb1"},
+ {file = "coverage-7.6.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f7db0b6ae1f96ae41afe626095149ecd1b212b424626175a6633c2999eaad45b"},
+ {file = "coverage-7.6.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:bbdf9a72403110a3bdae77948b8011f644571311c2fb35ee15f0f10a8fc082e8"},
+ {file = "coverage-7.6.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cc44bf0315268e253bf563f3560e6c004efe38f76db03a1558274a6e04bf5d5"},
+ {file = "coverage-7.6.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:da8549d17489cd52f85a9829d0e1d91059359b3c54a26f28bec2c5d369524807"},
+ {file = "coverage-7.6.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0086cd4fc71b7d485ac93ca4239c8f75732c2ae3ba83f6be1c9be59d9e2c6382"},
+ {file = "coverage-7.6.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1fad32ee9b27350687035cb5fdf9145bc9cf0a094a9577d43e909948ebcfa27b"},
+ {file = "coverage-7.6.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:044a0985a4f25b335882b0966625270a8d9db3d3409ddc49a4eb00b0ef5e8cee"},
+ {file = "coverage-7.6.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:76d5f82213aa78098b9b964ea89de4617e70e0d43e97900c2778a50856dac605"},
+ {file = "coverage-7.6.0-cp312-cp312-win32.whl", hash = "sha256:3c59105f8d58ce500f348c5b56163a4113a440dad6daa2294b5052a10db866da"},
+ {file = "coverage-7.6.0-cp312-cp312-win_amd64.whl", hash = "sha256:ca5d79cfdae420a1d52bf177de4bc2289c321d6c961ae321503b2ca59c17ae67"},
+ {file = "coverage-7.6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d39bd10f0ae453554798b125d2f39884290c480f56e8a02ba7a6ed552005243b"},
+ {file = "coverage-7.6.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:beb08e8508e53a568811016e59f3234d29c2583f6b6e28572f0954a6b4f7e03d"},
+ {file = "coverage-7.6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2e16f4cd2bc4d88ba30ca2d3bbf2f21f00f382cf4e1ce3b1ddc96c634bc48ca"},
+ {file = "coverage-7.6.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6616d1c9bf1e3faea78711ee42a8b972367d82ceae233ec0ac61cc7fec09fa6b"},
+ {file = "coverage-7.6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad4567d6c334c46046d1c4c20024de2a1c3abc626817ae21ae3da600f5779b44"},
+ {file = "coverage-7.6.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:d17c6a415d68cfe1091d3296ba5749d3d8696e42c37fca5d4860c5bf7b729f03"},
+ {file = "coverage-7.6.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:9146579352d7b5f6412735d0f203bbd8d00113a680b66565e205bc605ef81bc6"},
+ {file = "coverage-7.6.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:cdab02a0a941af190df8782aafc591ef3ad08824f97850b015c8c6a8b3877b0b"},
+ {file = "coverage-7.6.0-cp38-cp38-win32.whl", hash = "sha256:df423f351b162a702c053d5dddc0fc0ef9a9e27ea3f449781ace5f906b664428"},
+ {file = "coverage-7.6.0-cp38-cp38-win_amd64.whl", hash = "sha256:f2501d60d7497fd55e391f423f965bbe9e650e9ffc3c627d5f0ac516026000b8"},
+ {file = "coverage-7.6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7221f9ac9dad9492cecab6f676b3eaf9185141539d5c9689d13fd6b0d7de840c"},
+ {file = "coverage-7.6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ddaaa91bfc4477d2871442bbf30a125e8fe6b05da8a0015507bfbf4718228ab2"},
+ {file = "coverage-7.6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4cbe651f3904e28f3a55d6f371203049034b4ddbce65a54527a3f189ca3b390"},
+ {file = "coverage-7.6.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:831b476d79408ab6ccfadaaf199906c833f02fdb32c9ab907b1d4aa0713cfa3b"},
+ {file = "coverage-7.6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46c3d091059ad0b9c59d1034de74a7f36dcfa7f6d3bde782c49deb42438f2450"},
+ {file = "coverage-7.6.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:4d5fae0a22dc86259dee66f2cc6c1d3e490c4a1214d7daa2a93d07491c5c04b6"},
+ {file = "coverage-7.6.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:07ed352205574aad067482e53dd606926afebcb5590653121063fbf4e2175166"},
+ {file = "coverage-7.6.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:49c76cdfa13015c4560702574bad67f0e15ca5a2872c6a125f6327ead2b731dd"},
+ {file = "coverage-7.6.0-cp39-cp39-win32.whl", hash = "sha256:482855914928c8175735a2a59c8dc5806cf7d8f032e4820d52e845d1f731dca2"},
+ {file = "coverage-7.6.0-cp39-cp39-win_amd64.whl", hash = "sha256:543ef9179bc55edfd895154a51792b01c017c87af0ebaae092720152e19e42ca"},
+ {file = "coverage-7.6.0-pp38.pp39.pp310-none-any.whl", hash = "sha256:6fe885135c8a479d3e37a7aae61cbd3a0fb2deccb4dda3c25f92a49189f766d6"},
+ {file = "coverage-7.6.0.tar.gz", hash = "sha256:289cc803fa1dc901f84701ac10c9ee873619320f2f9aff38794db4a4a0268d51"},
]
[package.extras]
@@ -695,44 +776,38 @@ toml = ["tomli"]
[[package]]
name = "cryptography"
-version = "42.0.8"
+version = "43.0.0"
description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers."
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
- {file = "cryptography-42.0.8-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:81d8a521705787afe7a18d5bfb47ea9d9cc068206270aad0b96a725022e18d2e"},
- {file = "cryptography-42.0.8-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:961e61cefdcb06e0c6d7e3a1b22ebe8b996eb2bf50614e89384be54c48c6b63d"},
- {file = "cryptography-42.0.8-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e3ec3672626e1b9e55afd0df6d774ff0e953452886e06e0f1eb7eb0c832e8902"},
- {file = "cryptography-42.0.8-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e599b53fd95357d92304510fb7bda8523ed1f79ca98dce2f43c115950aa78801"},
- {file = "cryptography-42.0.8-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:5226d5d21ab681f432a9c1cf8b658c0cb02533eece706b155e5fbd8a0cdd3949"},
- {file = "cryptography-42.0.8-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:6b7c4f03ce01afd3b76cf69a5455caa9cfa3de8c8f493e0d3ab7d20611c8dae9"},
- {file = "cryptography-42.0.8-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:2346b911eb349ab547076f47f2e035fc8ff2c02380a7cbbf8d87114fa0f1c583"},
- {file = "cryptography-42.0.8-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:ad803773e9df0b92e0a817d22fd8a3675493f690b96130a5e24f1b8fabbea9c7"},
- {file = "cryptography-42.0.8-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:2f66d9cd9147ee495a8374a45ca445819f8929a3efcd2e3df6428e46c3cbb10b"},
- {file = "cryptography-42.0.8-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:d45b940883a03e19e944456a558b67a41160e367a719833c53de6911cabba2b7"},
- {file = "cryptography-42.0.8-cp37-abi3-win32.whl", hash = "sha256:a0c5b2b0585b6af82d7e385f55a8bc568abff8923af147ee3c07bd8b42cda8b2"},
- {file = "cryptography-42.0.8-cp37-abi3-win_amd64.whl", hash = "sha256:57080dee41209e556a9a4ce60d229244f7a66ef52750f813bfbe18959770cfba"},
- {file = "cryptography-42.0.8-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:dea567d1b0e8bc5764b9443858b673b734100c2871dc93163f58c46a97a83d28"},
- {file = "cryptography-42.0.8-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4783183f7cb757b73b2ae9aed6599b96338eb957233c58ca8f49a49cc32fd5e"},
- {file = "cryptography-42.0.8-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0608251135d0e03111152e41f0cc2392d1e74e35703960d4190b2e0f4ca9c70"},
- {file = "cryptography-42.0.8-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:dc0fdf6787f37b1c6b08e6dfc892d9d068b5bdb671198c72072828b80bd5fe4c"},
- {file = "cryptography-42.0.8-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:9c0c1716c8447ee7dbf08d6db2e5c41c688544c61074b54fc4564196f55c25a7"},
- {file = "cryptography-42.0.8-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:fff12c88a672ab9c9c1cf7b0c80e3ad9e2ebd9d828d955c126be4fd3e5578c9e"},
- {file = "cryptography-42.0.8-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:cafb92b2bc622cd1aa6a1dce4b93307792633f4c5fe1f46c6b97cf67073ec961"},
- {file = "cryptography-42.0.8-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:31f721658a29331f895a5a54e7e82075554ccfb8b163a18719d342f5ffe5ecb1"},
- {file = "cryptography-42.0.8-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b297f90c5723d04bcc8265fc2a0f86d4ea2e0f7ab4b6994459548d3a6b992a14"},
- {file = "cryptography-42.0.8-cp39-abi3-win32.whl", hash = "sha256:2f88d197e66c65be5e42cd72e5c18afbfae3f741742070e3019ac8f4ac57262c"},
- {file = "cryptography-42.0.8-cp39-abi3-win_amd64.whl", hash = "sha256:fa76fbb7596cc5839320000cdd5d0955313696d9511debab7ee7278fc8b5c84a"},
- {file = "cryptography-42.0.8-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:ba4f0a211697362e89ad822e667d8d340b4d8d55fae72cdd619389fb5912eefe"},
- {file = "cryptography-42.0.8-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:81884c4d096c272f00aeb1f11cf62ccd39763581645b0812e99a91505fa48e0c"},
- {file = "cryptography-42.0.8-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:c9bb2ae11bfbab395bdd072985abde58ea9860ed84e59dbc0463a5d0159f5b71"},
- {file = "cryptography-42.0.8-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:7016f837e15b0a1c119d27ecd89b3515f01f90a8615ed5e9427e30d9cdbfed3d"},
- {file = "cryptography-42.0.8-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5a94eccb2a81a309806027e1670a358b99b8fe8bfe9f8d329f27d72c094dde8c"},
- {file = "cryptography-42.0.8-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:dec9b018df185f08483f294cae6ccac29e7a6e0678996587363dc352dc65c842"},
- {file = "cryptography-42.0.8-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:343728aac38decfdeecf55ecab3264b015be68fc2816ca800db649607aeee648"},
- {file = "cryptography-42.0.8-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:013629ae70b40af70c9a7a5db40abe5d9054e6f4380e50ce769947b73bf3caad"},
- {file = "cryptography-42.0.8.tar.gz", hash = "sha256:8d09d05439ce7baa8e9e95b07ec5b6c886f548deb7e0f69ef25f64b3bce842f2"},
+ {file = "cryptography-43.0.0-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:64c3f16e2a4fc51c0d06af28441881f98c5d91009b8caaff40cf3548089e9c74"},
+ {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3dcdedae5c7710b9f97ac6bba7e1052b95c7083c9d0e9df96e02a1932e777895"},
+ {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d9a1eca329405219b605fac09ecfc09ac09e595d6def650a437523fcd08dd22"},
+ {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:ea9e57f8ea880eeea38ab5abf9fbe39f923544d7884228ec67d666abd60f5a47"},
+ {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:9a8d6802e0825767476f62aafed40532bd435e8a5f7d23bd8b4f5fd04cc80ecf"},
+ {file = "cryptography-43.0.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:cc70b4b581f28d0a254d006f26949245e3657d40d8857066c2ae22a61222ef55"},
+ {file = "cryptography-43.0.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:4a997df8c1c2aae1e1e5ac49c2e4f610ad037fc5a3aadc7b64e39dea42249431"},
+ {file = "cryptography-43.0.0-cp37-abi3-win32.whl", hash = "sha256:6e2b11c55d260d03a8cf29ac9b5e0608d35f08077d8c087be96287f43af3ccdc"},
+ {file = "cryptography-43.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:31e44a986ceccec3d0498e16f3d27b2ee5fdf69ce2ab89b52eaad1d2f33d8778"},
+ {file = "cryptography-43.0.0-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:7b3f5fe74a5ca32d4d0f302ffe6680fcc5c28f8ef0dc0ae8f40c0f3a1b4fca66"},
+ {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac1955ce000cb29ab40def14fd1bbfa7af2017cca696ee696925615cafd0dce5"},
+ {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:299d3da8e00b7e2b54bb02ef58d73cd5f55fb31f33ebbf33bd00d9aa6807df7e"},
+ {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:ee0c405832ade84d4de74b9029bedb7b31200600fa524d218fc29bfa371e97f5"},
+ {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:cb013933d4c127349b3948aa8aaf2f12c0353ad0eccd715ca789c8a0f671646f"},
+ {file = "cryptography-43.0.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:fdcb265de28585de5b859ae13e3846a8e805268a823a12a4da2597f1f5afc9f0"},
+ {file = "cryptography-43.0.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:2905ccf93a8a2a416f3ec01b1a7911c3fe4073ef35640e7ee5296754e30b762b"},
+ {file = "cryptography-43.0.0-cp39-abi3-win32.whl", hash = "sha256:47ca71115e545954e6c1d207dd13461ab81f4eccfcb1345eac874828b5e3eaaf"},
+ {file = "cryptography-43.0.0-cp39-abi3-win_amd64.whl", hash = "sha256:0663585d02f76929792470451a5ba64424acc3cd5227b03921dab0e2f27b1709"},
+ {file = "cryptography-43.0.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2c6d112bf61c5ef44042c253e4859b3cbbb50df2f78fa8fae6747a7814484a70"},
+ {file = "cryptography-43.0.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:844b6d608374e7d08f4f6e6f9f7b951f9256db41421917dfb2d003dde4cd6b66"},
+ {file = "cryptography-43.0.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:51956cf8730665e2bdf8ddb8da0056f699c1a5715648c1b0144670c1ba00b48f"},
+ {file = "cryptography-43.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:aae4d918f6b180a8ab8bf6511a419473d107df4dbb4225c7b48c5c9602c38c7f"},
+ {file = "cryptography-43.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:232ce02943a579095a339ac4b390fbbe97f5b5d5d107f8a08260ea2768be8cc2"},
+ {file = "cryptography-43.0.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:5bcb8a5620008a8034d39bce21dc3e23735dfdb6a33a06974739bfa04f853947"},
+ {file = "cryptography-43.0.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:08a24a7070b2b6804c1940ff0f910ff728932a9d0e80e7814234269f9d46d069"},
+ {file = "cryptography-43.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:e9c5266c432a1e23738d178e51c2c7a5e2ddf790f248be939448c0ba2021f9d1"},
+ {file = "cryptography-43.0.0.tar.gz", hash = "sha256:b88075ada2d51aa9f18283532c9f60e72170041bba88d7f37e49cbb10275299e"},
]
[package.dependencies]
@@ -745,14 +820,13 @@ nox = ["nox"]
pep8test = ["check-sdist", "click", "mypy", "ruff"]
sdist = ["build"]
ssh = ["bcrypt (>=3.1.5)"]
-test = ["certifi", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"]
+test = ["certifi", "cryptography-vectors (==43.0.0)", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"]
test-randomorder = ["pytest-randomly"]
[[package]]
name = "cytoolz"
version = "0.12.3"
description = "Cython implementation of Toolz: High performance functional utilities"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -872,7 +946,6 @@ cython = ["cython"]
name = "distlib"
version = "0.3.8"
description = "Distribution utilities"
-category = "dev"
optional = false
python-versions = "*"
files = [
@@ -884,7 +957,6 @@ files = [
name = "distro"
version = "1.9.0"
description = "Distro - an OS platform information API"
-category = "main"
optional = false
python-versions = ">=3.6"
files = [
@@ -896,7 +968,6 @@ files = [
name = "docker"
version = "6.1.2"
description = "A Python library for the Docker Engine API."
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -919,7 +990,6 @@ ssh = ["paramiko (>=2.4.3)"]
name = "dockerpty"
version = "0.4.1"
description = "Python library to use the pseudo-tty of a docker container"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -933,7 +1003,6 @@ six = ">=1.3.0"
name = "docopt"
version = "0.6.2"
description = "Pythonic argument parser, that will make you smile"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -944,7 +1013,6 @@ files = [
name = "ecdsa"
version = "0.16.1"
description = "ECDSA cryptographic signature library (pure python)"
-category = "main"
optional = false
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
files = [
@@ -963,7 +1031,6 @@ gmpy2 = ["gmpy2"]
name = "eth-abi"
version = "5.1.0"
description = "eth_abi: Python utilities for working with Ethereum ABI definitions, especially encoding and decoding"
-category = "main"
optional = false
python-versions = "<4,>=3.8"
files = [
@@ -986,7 +1053,6 @@ tools = ["hypothesis (>=4.18.2,<5.0.0)"]
name = "eth-account"
version = "0.8.0"
description = "eth-account: Sign Ethereum transactions and messages with local private keys"
-category = "main"
optional = false
python-versions = ">=3.6, <4"
files = [
@@ -1014,7 +1080,6 @@ test = ["coverage", "hypothesis (>=4.18.0,<5)", "pytest (>=6.2.5,<7)", "pytest-x
name = "eth-hash"
version = "0.7.0"
description = "eth-hash: The Ethereum hashing function, keccak256, sometimes (erroneously) called sha3"
-category = "main"
optional = false
python-versions = ">=3.8, <4"
files = [
@@ -1036,7 +1101,6 @@ test = ["pytest (>=7.0.0)", "pytest-xdist (>=2.4.0)"]
name = "eth-keyfile"
version = "0.6.1"
description = "A library for handling the encrypted keyfiles used to store ethereum private keys."
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -1059,7 +1123,6 @@ test = ["pytest (>=6.2.5,<7)"]
name = "eth-keys"
version = "0.4.0"
description = "Common API for Ethereum key operations."
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -1082,7 +1145,6 @@ test = ["asn1tools (>=0.146.2,<0.147)", "eth-hash[pycryptodome]", "eth-hash[pysh
name = "eth-rlp"
version = "0.3.0"
description = "eth-rlp: RLP definitions for common Ethereum objects in Python"
-category = "main"
optional = false
python-versions = ">=3.7, <4"
files = [
@@ -1105,7 +1167,6 @@ test = ["eth-hash[pycryptodome]", "pytest (>=6.2.5,<7)", "pytest-xdist", "tox (=
name = "eth-typing"
version = "3.5.2"
description = "eth-typing: Common type annotations for ethereum python packages"
-category = "main"
optional = false
python-versions = ">=3.7.2, <4"
files = [
@@ -1126,7 +1187,6 @@ test = ["pytest (>=7.0.0)", "pytest-xdist (>=2.4.0)"]
name = "eth-utils"
version = "2.3.1"
description = "eth-utils: Common utility functions for python code that interacts with Ethereum"
-category = "main"
optional = false
python-versions = ">=3.7,<4"
files = [
@@ -1148,24 +1208,36 @@ test = ["hypothesis (>=4.43.0)", "mypy (==0.971)", "pytest (>=7.0.0)", "pytest-x
[[package]]
name = "exceptiongroup"
-version = "1.2.1"
+version = "1.2.2"
description = "Backport of PEP 654 (exception groups)"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
- {file = "exceptiongroup-1.2.1-py3-none-any.whl", hash = "sha256:5258b9ed329c5bbdd31a309f53cbfb0b155341807f6ff7606a1e801a891b29ad"},
- {file = "exceptiongroup-1.2.1.tar.gz", hash = "sha256:a4785e48b045528f5bfe627b6ad554ff32def154f42372786903b7abcfe1aa16"},
+ {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"},
+ {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"},
]
[package.extras]
test = ["pytest (>=6)"]
+[[package]]
+name = "executing"
+version = "2.0.1"
+description = "Get the currently executing AST node of a frame, and other information"
+optional = false
+python-versions = ">=3.5"
+files = [
+ {file = "executing-2.0.1-py2.py3-none-any.whl", hash = "sha256:eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc"},
+ {file = "executing-2.0.1.tar.gz", hash = "sha256:35afe2ce3affba8ee97f2d69927fa823b08b472b7b994e36a52a964b93d16147"},
+]
+
+[package.extras]
+tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipython", "littleutils", "pytest", "rich"]
+
[[package]]
name = "fastapi"
version = "0.110.0"
description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production"
-category = "main"
optional = false
python-versions = ">=3.8"
files = [
@@ -1185,7 +1257,6 @@ all = ["email-validator (>=2.0.0)", "httpx (>=0.23.0)", "itsdangerous (>=1.1.0)"
name = "filelock"
version = "3.15.4"
description = "A platform independent file lock."
-category = "dev"
optional = false
python-versions = ">=3.8"
files = [
@@ -1202,7 +1273,6 @@ typing = ["typing-extensions (>=4.8)"]
name = "flask"
version = "2.1.3"
description = "A simple framework for building complex web applications."
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -1225,7 +1295,6 @@ dotenv = ["python-dotenv"]
name = "frozenlist"
version = "1.4.1"
description = "A list-like structure which implements collections.abc.MutableSequence"
-category = "main"
optional = false
python-versions = ">=3.8"
files = [
@@ -1312,7 +1381,6 @@ files = [
name = "googleapis-common-protos"
version = "1.63.2"
description = "Common protobufs used in Google APIs"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -1330,7 +1398,6 @@ grpc = ["grpcio (>=1.44.0,<2.0.0.dev0)"]
name = "gql"
version = "3.5.0"
description = "GraphQL client for Python"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -1359,7 +1426,6 @@ websockets = ["websockets (>=10,<12)"]
name = "graphql-core"
version = "3.2.3"
description = "GraphQL implementation for Python, a port of GraphQL.js, the JavaScript reference implementation for GraphQL."
-category = "main"
optional = false
python-versions = ">=3.6,<4"
files = [
@@ -1369,68 +1435,66 @@ files = [
[[package]]
name = "grpcio"
-version = "1.64.1"
+version = "1.65.1"
description = "HTTP/2-based RPC framework"
-category = "main"
optional = false
python-versions = ">=3.8"
files = [
- {file = "grpcio-1.64.1-cp310-cp310-linux_armv7l.whl", hash = "sha256:55697ecec192bc3f2f3cc13a295ab670f51de29884ca9ae6cd6247df55df2502"},
- {file = "grpcio-1.64.1-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:3b64ae304c175671efdaa7ec9ae2cc36996b681eb63ca39c464958396697daff"},
- {file = "grpcio-1.64.1-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:bac71b4b28bc9af61efcdc7630b166440bbfbaa80940c9a697271b5e1dabbc61"},
- {file = "grpcio-1.64.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6c024ffc22d6dc59000faf8ad781696d81e8e38f4078cb0f2630b4a3cf231a90"},
- {file = "grpcio-1.64.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e7cd5c1325f6808b8ae31657d281aadb2a51ac11ab081ae335f4f7fc44c1721d"},
- {file = "grpcio-1.64.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:0a2813093ddb27418a4c99f9b1c223fab0b053157176a64cc9db0f4557b69bd9"},
- {file = "grpcio-1.64.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2981c7365a9353f9b5c864595c510c983251b1ab403e05b1ccc70a3d9541a73b"},
- {file = "grpcio-1.64.1-cp310-cp310-win32.whl", hash = "sha256:1262402af5a511c245c3ae918167eca57342c72320dffae5d9b51840c4b2f86d"},
- {file = "grpcio-1.64.1-cp310-cp310-win_amd64.whl", hash = "sha256:19264fc964576ddb065368cae953f8d0514ecc6cb3da8903766d9fb9d4554c33"},
- {file = "grpcio-1.64.1-cp311-cp311-linux_armv7l.whl", hash = "sha256:58b1041e7c870bb30ee41d3090cbd6f0851f30ae4eb68228955d973d3efa2e61"},
- {file = "grpcio-1.64.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:bbc5b1d78a7822b0a84c6f8917faa986c1a744e65d762ef6d8be9d75677af2ca"},
- {file = "grpcio-1.64.1-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:5841dd1f284bd1b3d8a6eca3a7f062b06f1eec09b184397e1d1d43447e89a7ae"},
- {file = "grpcio-1.64.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8caee47e970b92b3dd948371230fcceb80d3f2277b3bf7fbd7c0564e7d39068e"},
- {file = "grpcio-1.64.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:73819689c169417a4f978e562d24f2def2be75739c4bed1992435d007819da1b"},
- {file = "grpcio-1.64.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:6503b64c8b2dfad299749cad1b595c650c91e5b2c8a1b775380fcf8d2cbba1e9"},
- {file = "grpcio-1.64.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1de403fc1305fd96cfa75e83be3dee8538f2413a6b1685b8452301c7ba33c294"},
- {file = "grpcio-1.64.1-cp311-cp311-win32.whl", hash = "sha256:d4d29cc612e1332237877dfa7fe687157973aab1d63bd0f84cf06692f04c0367"},
- {file = "grpcio-1.64.1-cp311-cp311-win_amd64.whl", hash = "sha256:5e56462b05a6f860b72f0fa50dca06d5b26543a4e88d0396259a07dc30f4e5aa"},
- {file = "grpcio-1.64.1-cp312-cp312-linux_armv7l.whl", hash = "sha256:4657d24c8063e6095f850b68f2d1ba3b39f2b287a38242dcabc166453e950c59"},
- {file = "grpcio-1.64.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:62b4e6eb7bf901719fce0ca83e3ed474ae5022bb3827b0a501e056458c51c0a1"},
- {file = "grpcio-1.64.1-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:ee73a2f5ca4ba44fa33b4d7d2c71e2c8a9e9f78d53f6507ad68e7d2ad5f64a22"},
- {file = "grpcio-1.64.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:198908f9b22e2672a998870355e226a725aeab327ac4e6ff3a1399792ece4762"},
- {file = "grpcio-1.64.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39b9d0acaa8d835a6566c640f48b50054f422d03e77e49716d4c4e8e279665a1"},
- {file = "grpcio-1.64.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:5e42634a989c3aa6049f132266faf6b949ec2a6f7d302dbb5c15395b77d757eb"},
- {file = "grpcio-1.64.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:b1a82e0b9b3022799c336e1fc0f6210adc019ae84efb7321d668129d28ee1efb"},
- {file = "grpcio-1.64.1-cp312-cp312-win32.whl", hash = "sha256:55260032b95c49bee69a423c2f5365baa9369d2f7d233e933564d8a47b893027"},
- {file = "grpcio-1.64.1-cp312-cp312-win_amd64.whl", hash = "sha256:c1a786ac592b47573a5bb7e35665c08064a5d77ab88a076eec11f8ae86b3e3f6"},
- {file = "grpcio-1.64.1-cp38-cp38-linux_armv7l.whl", hash = "sha256:a011ac6c03cfe162ff2b727bcb530567826cec85eb8d4ad2bfb4bd023287a52d"},
- {file = "grpcio-1.64.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:4d6dab6124225496010bd22690f2d9bd35c7cbb267b3f14e7a3eb05c911325d4"},
- {file = "grpcio-1.64.1-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:a5e771d0252e871ce194d0fdcafd13971f1aae0ddacc5f25615030d5df55c3a2"},
- {file = "grpcio-1.64.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2c3c1b90ab93fed424e454e93c0ed0b9d552bdf1b0929712b094f5ecfe7a23ad"},
- {file = "grpcio-1.64.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20405cb8b13fd779135df23fabadc53b86522d0f1cba8cca0e87968587f50650"},
- {file = "grpcio-1.64.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:0cc79c982ccb2feec8aad0e8fb0d168bcbca85bc77b080d0d3c5f2f15c24ea8f"},
- {file = "grpcio-1.64.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:a3a035c37ce7565b8f4f35ff683a4db34d24e53dc487e47438e434eb3f701b2a"},
- {file = "grpcio-1.64.1-cp38-cp38-win32.whl", hash = "sha256:1257b76748612aca0f89beec7fa0615727fd6f2a1ad580a9638816a4b2eb18fd"},
- {file = "grpcio-1.64.1-cp38-cp38-win_amd64.whl", hash = "sha256:0a12ddb1678ebc6a84ec6b0487feac020ee2b1659cbe69b80f06dbffdb249122"},
- {file = "grpcio-1.64.1-cp39-cp39-linux_armv7l.whl", hash = "sha256:75dbbf415026d2862192fe1b28d71f209e2fd87079d98470db90bebe57b33179"},
- {file = "grpcio-1.64.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e3d9f8d1221baa0ced7ec7322a981e28deb23749c76eeeb3d33e18b72935ab62"},
- {file = "grpcio-1.64.1-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:5f8b75f64d5d324c565b263c67dbe4f0af595635bbdd93bb1a88189fc62ed2e5"},
- {file = "grpcio-1.64.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c84ad903d0d94311a2b7eea608da163dace97c5fe9412ea311e72c3684925602"},
- {file = "grpcio-1.64.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:940e3ec884520155f68a3b712d045e077d61c520a195d1a5932c531f11883489"},
- {file = "grpcio-1.64.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f10193c69fc9d3d726e83bbf0f3d316f1847c3071c8c93d8090cf5f326b14309"},
- {file = "grpcio-1.64.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ac15b6c2c80a4d1338b04d42a02d376a53395ddf0ec9ab157cbaf44191f3ffdd"},
- {file = "grpcio-1.64.1-cp39-cp39-win32.whl", hash = "sha256:03b43d0ccf99c557ec671c7dede64f023c7da9bb632ac65dbc57f166e4970040"},
- {file = "grpcio-1.64.1-cp39-cp39-win_amd64.whl", hash = "sha256:ed6091fa0adcc7e4ff944090cf203a52da35c37a130efa564ded02b7aff63bcd"},
- {file = "grpcio-1.64.1.tar.gz", hash = "sha256:8d51dd1c59d5fa0f34266b80a3805ec29a1f26425c2a54736133f6d87fc4968a"},
+ {file = "grpcio-1.65.1-cp310-cp310-linux_armv7l.whl", hash = "sha256:3dc5f928815b8972fb83b78d8db5039559f39e004ec93ebac316403fe031a062"},
+ {file = "grpcio-1.65.1-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:8333ca46053c35484c9f2f7e8d8ec98c1383a8675a449163cea31a2076d93de8"},
+ {file = "grpcio-1.65.1-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:7af64838b6e615fff0ec711960ed9b6ee83086edfa8c32670eafb736f169d719"},
+ {file = "grpcio-1.65.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dbb64b4166362d9326f7efbf75b1c72106c1aa87f13a8c8b56a1224fac152f5c"},
+ {file = "grpcio-1.65.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8422dc13ad93ec8caa2612b5032a2b9cd6421c13ed87f54db4a3a2c93afaf77"},
+ {file = "grpcio-1.65.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:4effc0562b6c65d4add6a873ca132e46ba5e5a46f07c93502c37a9ae7f043857"},
+ {file = "grpcio-1.65.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a6c71575a2fedf259724981fd73a18906513d2f306169c46262a5bae956e6364"},
+ {file = "grpcio-1.65.1-cp310-cp310-win32.whl", hash = "sha256:34966cf526ef0ea616e008d40d989463e3db157abb213b2f20c6ce0ae7928875"},
+ {file = "grpcio-1.65.1-cp310-cp310-win_amd64.whl", hash = "sha256:ca931de5dd6d9eb94ff19a2c9434b23923bce6f767179fef04dfa991f282eaad"},
+ {file = "grpcio-1.65.1-cp311-cp311-linux_armv7l.whl", hash = "sha256:bbb46330cc643ecf10bd9bd4ca8e7419a14b6b9dedd05f671c90fb2c813c6037"},
+ {file = "grpcio-1.65.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d827a6fb9215b961eb73459ad7977edb9e748b23e3407d21c845d1d8ef6597e5"},
+ {file = "grpcio-1.65.1-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:6e71aed8835f8d9fbcb84babc93a9da95955d1685021cceb7089f4f1e717d719"},
+ {file = "grpcio-1.65.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9a1c84560b3b2d34695c9ba53ab0264e2802721c530678a8f0a227951f453462"},
+ {file = "grpcio-1.65.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:27adee2338d697e71143ed147fe286c05810965d5d30ec14dd09c22479bfe48a"},
+ {file = "grpcio-1.65.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:f62652ddcadc75d0e7aa629e96bb61658f85a993e748333715b4ab667192e4e8"},
+ {file = "grpcio-1.65.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:71a05fd814700dd9cb7d9a507f2f6a1ef85866733ccaf557eedacec32d65e4c2"},
+ {file = "grpcio-1.65.1-cp311-cp311-win32.whl", hash = "sha256:b590f1ad056294dfaeac0b7e1b71d3d5ace638d8dd1f1147ce4bd13458783ba8"},
+ {file = "grpcio-1.65.1-cp311-cp311-win_amd64.whl", hash = "sha256:12e9bdf3b5fd48e5fbe5b3da382ad8f97c08b47969f3cca81dd9b36b86ed39e2"},
+ {file = "grpcio-1.65.1-cp312-cp312-linux_armv7l.whl", hash = "sha256:54cb822e177374b318b233e54b6856c692c24cdbd5a3ba5335f18a47396bac8f"},
+ {file = "grpcio-1.65.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:aaf3c54419a28d45bd1681372029f40e5bfb58e5265e3882eaf21e4a5f81a119"},
+ {file = "grpcio-1.65.1-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:557de35bdfbe8bafea0a003dbd0f4da6d89223ac6c4c7549d78e20f92ead95d9"},
+ {file = "grpcio-1.65.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8bfd95ef3b097f0cc86ade54eafefa1c8ed623aa01a26fbbdcd1a3650494dd11"},
+ {file = "grpcio-1.65.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e6a8f3d6c41e6b642870afe6cafbaf7b61c57317f9ec66d0efdaf19db992b90"},
+ {file = "grpcio-1.65.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:1faaf7355ceed07ceaef0b9dcefa4c98daf1dd8840ed75c2de128c3f4a4d859d"},
+ {file = "grpcio-1.65.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:60f1f38eed830488ad2a1b11579ef0f345ff16fffdad1d24d9fbc97ba31804ff"},
+ {file = "grpcio-1.65.1-cp312-cp312-win32.whl", hash = "sha256:e75acfa52daf5ea0712e8aa82f0003bba964de7ae22c26d208cbd7bc08500177"},
+ {file = "grpcio-1.65.1-cp312-cp312-win_amd64.whl", hash = "sha256:ff5a84907e51924973aa05ed8759210d8cdae7ffcf9e44fd17646cf4a902df59"},
+ {file = "grpcio-1.65.1-cp38-cp38-linux_armv7l.whl", hash = "sha256:1fbd6331f18c3acd7e09d17fd840c096f56eaf0ef830fbd50af45ae9dc8dfd83"},
+ {file = "grpcio-1.65.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:de5b6be29116e094c5ef9d9e4252e7eb143e3d5f6bd6d50a78075553ab4930b0"},
+ {file = "grpcio-1.65.1-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:e4a3cdba62b2d6aeae6027ae65f350de6dc082b72e6215eccf82628e79efe9ba"},
+ {file = "grpcio-1.65.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:941c4869aa229d88706b78187d60d66aca77fe5c32518b79e3c3e03fc26109a2"},
+ {file = "grpcio-1.65.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f40cebe5edb518d78b8131e87cb83b3ee688984de38a232024b9b44e74ee53d3"},
+ {file = "grpcio-1.65.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:2ca684ba331fb249d8a1ce88db5394e70dbcd96e58d8c4b7e0d7b141a453dce9"},
+ {file = "grpcio-1.65.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8558f0083ddaf5de64a59c790bffd7568e353914c0c551eae2955f54ee4b857f"},
+ {file = "grpcio-1.65.1-cp38-cp38-win32.whl", hash = "sha256:8d8143a3e3966f85dce6c5cc45387ec36552174ba5712c5dc6fcc0898fb324c0"},
+ {file = "grpcio-1.65.1-cp38-cp38-win_amd64.whl", hash = "sha256:76e81a86424d6ca1ce7c16b15bdd6a964a42b40544bf796a48da241fdaf61153"},
+ {file = "grpcio-1.65.1-cp39-cp39-linux_armv7l.whl", hash = "sha256:cb5175f45c980ff418998723ea1b3869cce3766d2ab4e4916fbd3cedbc9d0ed3"},
+ {file = "grpcio-1.65.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b12c1aa7b95abe73b3e04e052c8b362655b41c7798da69f1eaf8d186c7d204df"},
+ {file = "grpcio-1.65.1-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:3019fb50128b21a5e018d89569ffaaaa361680e1346c2f261bb84a91082eb3d3"},
+ {file = "grpcio-1.65.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7ae15275ed98ea267f64ee9ddedf8ecd5306a5b5bb87972a48bfe24af24153e8"},
+ {file = "grpcio-1.65.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5f096ffb881f37e8d4f958b63c74bfc400c7cebd7a944b027357cd2fb8d91a57"},
+ {file = "grpcio-1.65.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:2f56b5a68fdcf17a0a1d524bf177218c3c69b3947cb239ea222c6f1867c3ab68"},
+ {file = "grpcio-1.65.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:941596d419b9736ab548aa0feb5bbba922f98872668847bf0720b42d1d227b9e"},
+ {file = "grpcio-1.65.1-cp39-cp39-win32.whl", hash = "sha256:5fd7337a823b890215f07d429f4f193d24b80d62a5485cf88ee06648591a0c57"},
+ {file = "grpcio-1.65.1-cp39-cp39-win_amd64.whl", hash = "sha256:1bceeec568372cbebf554eae1b436b06c2ff24cfaf04afade729fb9035408c6c"},
+ {file = "grpcio-1.65.1.tar.gz", hash = "sha256:3c492301988cd720cd145d84e17318d45af342e29ef93141228f9cd73222368b"},
]
[package.extras]
-protobuf = ["grpcio-tools (>=1.64.1)"]
+protobuf = ["grpcio-tools (>=1.65.1)"]
[[package]]
name = "h11"
version = "0.14.0"
description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -1438,11 +1502,31 @@ files = [
{file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"},
]
+[[package]]
+name = "halo"
+version = "0.0.31"
+description = "Beautiful terminal spinners in Python"
+optional = false
+python-versions = ">=3.4"
+files = [
+ {file = "halo-0.0.31-py2-none-any.whl", hash = "sha256:5350488fb7d2aa7c31a1344120cee67a872901ce8858f60da7946cef96c208ab"},
+ {file = "halo-0.0.31.tar.gz", hash = "sha256:7b67a3521ee91d53b7152d4ee3452811e1d2a6321975137762eb3d70063cc9d6"},
+]
+
+[package.dependencies]
+colorama = ">=0.3.9"
+log-symbols = ">=0.0.14"
+six = ">=1.12.0"
+spinners = ">=0.0.24"
+termcolor = ">=1.1.0"
+
+[package.extras]
+ipython = ["IPython (==5.7.0)", "ipywidgets (==7.1.0)"]
+
[[package]]
name = "hexbytes"
version = "0.3.1"
description = "hexbytes: Python `bytes` subclass that decodes hex, with a readable console output"
-category = "main"
optional = false
python-versions = ">=3.7, <4"
files = [
@@ -1456,11 +1540,27 @@ doc = ["sphinx (>=5.0.0)", "sphinx-rtd-theme (>=1.0.0)", "towncrier (>=21,<22)"]
lint = ["black (>=22)", "flake8 (==6.0.0)", "flake8-bugbear (==23.3.23)", "isort (>=5.10.1)", "mypy (==0.971)", "pydocstyle (>=5.0.0)"]
test = ["eth-utils (>=1.0.1,<3)", "hypothesis (>=3.44.24,<=6.31.6)", "pytest (>=7.0.0)", "pytest-xdist (>=2.4.0)"]
+[[package]]
+name = "icecream"
+version = "2.1.3"
+description = "Never use print() to debug again; inspect variables, expressions, and program execution with a single, simple function call."
+optional = false
+python-versions = "*"
+files = [
+ {file = "icecream-2.1.3-py2.py3-none-any.whl", hash = "sha256:757aec31ad4488b949bc4f499d18e6e5973c40cc4d4fc607229e78cfaec94c34"},
+ {file = "icecream-2.1.3.tar.gz", hash = "sha256:0aa4a7c3374ec36153a1d08f81e3080e83d8ac1eefd97d2f4fe9544e8f9b49de"},
+]
+
+[package.dependencies]
+asttokens = ">=2.0.1"
+colorama = ">=0.3.9"
+executing = ">=0.3.1"
+pygments = ">=2.2.0"
+
[[package]]
name = "idna"
version = "3.7"
description = "Internationalized Domain Names in Applications (IDNA)"
-category = "main"
optional = false
python-versions = ">=3.5"
files = [
@@ -1470,14 +1570,13 @@ files = [
[[package]]
name = "importlib-metadata"
-version = "8.0.0"
+version = "8.2.0"
description = "Read metadata from Python packages"
-category = "main"
optional = false
python-versions = ">=3.8"
files = [
- {file = "importlib_metadata-8.0.0-py3-none-any.whl", hash = "sha256:15584cf2b1bf449d98ff8a6ff1abef57bf20f3ac6454f431736cd3e660921b2f"},
- {file = "importlib_metadata-8.0.0.tar.gz", hash = "sha256:188bd24e4c346d3f0a933f275c2fec67050326a856b9a359881d7c2a697e8812"},
+ {file = "importlib_metadata-8.2.0-py3-none-any.whl", hash = "sha256:11901fa0c2f97919b288679932bb64febaeacf289d18ac84dd68cb2e74213369"},
+ {file = "importlib_metadata-8.2.0.tar.gz", hash = "sha256:72e8d4399996132204f9a16dcc751af254a48f8d1b20b9ff0f98d4a8f901e73d"},
]
[package.dependencies]
@@ -1492,7 +1591,6 @@ test = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "p
name = "iniconfig"
version = "2.0.0"
description = "brain-dead simple config-ini parsing"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -1504,7 +1602,6 @@ files = [
name = "ipfshttpclient"
version = "0.8.0a2"
description = "Python IPFS HTTP CLIENT library"
-category = "main"
optional = false
python-versions = ">=3.6.2,!=3.7.0,!=3.7.1"
files = [
@@ -1520,7 +1617,6 @@ requests = ">=2.11"
name = "itsdangerous"
version = "2.2.0"
description = "Safely pass data to untrusted environments and back."
-category = "main"
optional = false
python-versions = ">=3.8"
files = [
@@ -1532,7 +1628,6 @@ files = [
name = "jinja2"
version = "3.1.4"
description = "A very fast and expressive template engine."
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -1550,7 +1645,6 @@ i18n = ["Babel (>=2.7)"]
name = "jsonschema"
version = "4.3.3"
description = "An implementation of JSON Schema validation for Python"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -1566,11 +1660,24 @@ pyrsistent = ">=0.14.0,<0.17.0 || >0.17.0,<0.17.1 || >0.17.1,<0.17.2 || >0.17.2"
format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"]
format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=1.11)"]
+[[package]]
+name = "log-symbols"
+version = "0.0.14"
+description = "Colored symbols for various log levels for Python"
+optional = false
+python-versions = "*"
+files = [
+ {file = "log_symbols-0.0.14-py3-none-any.whl", hash = "sha256:4952106ff8b605ab7d5081dd2c7e6ca7374584eff7086f499c06edd1ce56dcca"},
+ {file = "log_symbols-0.0.14.tar.gz", hash = "sha256:cf0bbc6fe1a8e53f0d174a716bc625c4f87043cc21eb55dd8a740cfe22680556"},
+]
+
+[package.dependencies]
+colorama = ">=0.3.9"
+
[[package]]
name = "lru-dict"
version = "1.3.0"
description = "An Dict like LRU container."
-category = "main"
optional = false
python-versions = ">=3.8"
files = [
@@ -1664,7 +1771,6 @@ test = ["pytest"]
name = "macholib"
version = "1.16.3"
description = "Mach-O header analysis and editing"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -1679,7 +1785,6 @@ altgraph = ">=0.17"
name = "markupsafe"
version = "2.1.5"
description = "Safely add untrusted strings to HTML/XML markup."
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -1749,7 +1854,6 @@ files = [
name = "morphys"
version = "1.0"
description = "Smart conversions between unicode and bytes types for common cases"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -1760,7 +1864,6 @@ files = [
name = "multiaddr"
version = "0.0.9"
description = "Python implementation of jbenet's multiaddr"
-category = "main"
optional = false
python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*"
files = [
@@ -1778,7 +1881,6 @@ varint = "*"
name = "multidict"
version = "6.0.5"
description = "multidict implementation"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -1878,7 +1980,6 @@ files = [
name = "netaddr"
version = "1.3.0"
description = "A network address manipulation library for Python"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -1891,24 +1992,23 @@ nicer-shell = ["ipython"]
[[package]]
name = "open-aea"
-version = "1.51.0"
+version = "1.53.0"
description = "Open Autonomous Economic Agent framework (without vendor lock-in)"
-category = "main"
optional = false
python-versions = ">=3.8"
files = [
- {file = "open-aea-1.51.0.tar.gz", hash = "sha256:a1b6b6be9c08cfc8eb0befd436f0b821d4b0cd9cabec4154e36695fd8bc555ec"},
- {file = "open_aea-1.51.0-py3-none-any.whl", hash = "sha256:94a93fef676352fba8a7fa2a0a68b140e9ca9f8999f78bf24c66bb4557b8e6f7"},
- {file = "open_aea-1.51.0-py3-none-macosx_10_9_x86_64.whl", hash = "sha256:8887b1604163f5be1706fce5b9cbc5592b22d9ae621c200f77550ee76d487dc8"},
- {file = "open_aea-1.51.0-py3-none-manylinux1_x86_64.whl", hash = "sha256:c16001b336b61863eb8bb557161718e0110853064a6f1afb990fd02fa672e307"},
- {file = "open_aea-1.51.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:0c4abbf61de198f708a20b3cedd617b922727090781720687eb663288b015953"},
- {file = "open_aea-1.51.0-py3-none-win32.whl", hash = "sha256:75158aeaa4e395c92116581a0534d652979e3a0ce4986665207cde8050521467"},
- {file = "open_aea-1.51.0-py3-none-win_amd64.whl", hash = "sha256:b2eee2d1ee065d1cc48d73aa7db82256c80b792cf14ab4765c4a087af3087464"},
+ {file = "open_aea-1.53.0-py3-none-any.whl", hash = "sha256:1244855875effe09e2c965750ac401a973a1ae56cdc880045eea70f19ed90dcb"},
+ {file = "open_aea-1.53.0-py3-none-macosx_10_9_x86_64.whl", hash = "sha256:d0a848e33798599953dc764d37083fc37642140a91624e06a56b8d2f95ae6cb9"},
+ {file = "open_aea-1.53.0-py3-none-manylinux1_x86_64.whl", hash = "sha256:48f5715f13a0389799b9461bc776e9638e6ae38173d0f2bf6d28bad637232914"},
+ {file = "open_aea-1.53.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:87e4ae903ec9a7268eba0ead449f9693cb5bedb6dfc5846c90f94f2354bd35ab"},
+ {file = "open_aea-1.53.0-py3-none-win32.whl", hash = "sha256:182e9f8a77fe8efcc768360ac7308a0951ec16bcb12e2ad4f55886b12258d702"},
+ {file = "open_aea-1.53.0-py3-none-win_amd64.whl", hash = "sha256:cef9d4d177ea7d959ebacab962fbd1d03d7243c0b72d10a3ee7850df8d922e06"},
+ {file = "open_aea-1.53.0.tar.gz", hash = "sha256:6fcb82ceed0b6841c0f41d116b207308556e3d18807fe140e9ef1a898c7a8a0b"},
]
[package.dependencies]
base58 = ">=1.0.3,<3.0.0"
-click = {version = "8.0.2", optional = true, markers = "extra == \"all\""}
+click = {version = ">=8.1.0,<9", optional = true, markers = "extra == \"all\""}
coverage = {version = ">=6.4.4,<8.0.0", optional = true, markers = "extra == \"all\""}
ecdsa = ">=0.15,<0.17.0"
jsonschema = ">=4.3.0,<4.4.0"
@@ -1919,26 +2019,25 @@ py-multibase = ">=1.0.0"
py-multicodec = ">=0.2.0"
pymultihash = "0.8.2"
pytest = {version = ">=7.0.0,<7.3.0", optional = true, markers = "extra == \"all\""}
-python-dotenv = ">=0.14.0,<0.22.0"
-pyyaml = "6.0.1"
-requests = "2.28.1"
+python-dotenv = ">=0.14.0,<1.0.1"
+pyyaml = {version = ">=6.0.1,<7", optional = true, markers = "extra == \"all\""}
+requests = ">=2.28.1,<3"
semver = ">=2.9.1,<3.0.0"
[package.extras]
-all = ["click (==8.0.2)", "coverage (>=6.4.4,<8.0.0)", "jsonschema (>=4.3.0,<4.4.0)", "packaging (>=23.1,<24.0)", "pytest (>=7.0.0,<7.3.0)", "pyyaml (==6.0.1)", "semver (>=2.9.1,<3.0.0)"]
-cli = ["click (==8.0.2)", "coverage (>=6.4.4,<8.0.0)", "jsonschema (>=4.3.0,<4.4.0)", "packaging (>=23.1,<24.0)", "pytest (>=7.0.0,<7.3.0)", "pyyaml (==6.0.1)", "semver (>=2.9.1,<3.0.0)"]
-test-tools = ["click (==8.0.2)", "coverage (>=6.4.4,<8.0.0)", "jsonschema (>=4.3.0,<4.4.0)", "packaging (>=23.1,<24.0)", "pytest (>=7.0.0,<7.3.0)", "pyyaml (==6.0.1)", "semver (>=2.9.1,<3.0.0)"]
+all = ["click (>=8.1.0,<9)", "coverage (>=6.4.4,<8.0.0)", "jsonschema (>=4.3.0,<4.4.0)", "packaging (>=23.1,<24.0)", "pytest (>=7.0.0,<7.3.0)", "pyyaml (>=6.0.1,<9)", "semver (>=2.9.1,<3.0.0)"]
+cli = ["click (>=8.1.0,<9)", "coverage (>=6.4.4,<8.0.0)", "jsonschema (>=4.3.0,<4.4.0)", "packaging (>=23.1,<24.0)", "pytest (>=7.0.0,<7.3.0)", "pyyaml (>=6.0.1,<9)", "semver (>=2.9.1,<3.0.0)"]
+test-tools = ["click (>=8.1.0,<9)", "coverage (>=6.4.4,<8.0.0)", "jsonschema (>=4.3.0,<4.4.0)", "packaging (>=23.1,<24.0)", "pytest (>=7.0.0,<7.3.0)", "pyyaml (>=6.0.1,<9)", "semver (>=2.9.1,<3.0.0)"]
[[package]]
name = "open-aea-cli-ipfs"
-version = "1.51.0"
+version = "1.53.0"
description = "CLI extension for open AEA framework wrapping IPFS functionality."
-category = "main"
optional = false
python-versions = "*"
files = [
- {file = "open-aea-cli-ipfs-1.51.0.tar.gz", hash = "sha256:142174bb7516b8562a0114838c95d1466d4d4857a8d0aaaf076dd571b346f6c5"},
- {file = "open_aea_cli_ipfs-1.51.0-py3-none-any.whl", hash = "sha256:8c8e422bb63108fef65f5360374598275c737cb15df571f13af11f07961380e3"},
+ {file = "open_aea_cli_ipfs-1.53.0-py3-none-any.whl", hash = "sha256:335a02473d1c6820bb63a31e2931749ba644f586a7acbc650da9efc4c7168efa"},
+ {file = "open_aea_cli_ipfs-1.53.0.tar.gz", hash = "sha256:499a66a45925064e6946ec72f482182390263cc7726409832f1317fe831b6289"},
]
[package.dependencies]
@@ -1950,7 +2049,6 @@ pytest = ">=7.0.0,<7.3.0"
name = "open-aea-flashbots"
version = "1.4.0"
description = ""
-category = "main"
optional = false
python-versions = ">=3.9,<4.0"
files = [
@@ -1964,18 +2062,17 @@ web3 = ">=6.0.0,<7"
[[package]]
name = "open-aea-ledger-cosmos"
-version = "1.51.0"
+version = "1.53.0"
description = "Python package wrapping the public and private key cryptography and ledger api of Cosmos."
-category = "main"
optional = false
python-versions = "*"
files = [
- {file = "open-aea-ledger-cosmos-1.51.0.tar.gz", hash = "sha256:d2b15cd4b5e6ba3bda2d7206689000356c0197508eea8031dced67a0965c2648"},
- {file = "open_aea_ledger_cosmos-1.51.0-py3-none-any.whl", hash = "sha256:a9f46895a502397d2b95c2cec13f0f12777e7f4811f27b5314e5363d44471ca5"},
+ {file = "open_aea_ledger_cosmos-1.53.0-py3-none-any.whl", hash = "sha256:79b2eafc8723593634b72973da39e3e3c01bceae04b330b51a5059eb1200262b"},
+ {file = "open_aea_ledger_cosmos-1.53.0.tar.gz", hash = "sha256:14a032918d7f0659fedbe21a53fa668b24505bb9e97358340b20325943f9fa26"},
]
[package.dependencies]
-bech32 = "1.2.0"
+bech32 = ">=1.2.0,<2"
cosmpy = "0.9.2"
ecdsa = ">=0.15,<0.17.0"
open-aea = ">=1.0.0,<2.0.0"
@@ -1983,14 +2080,13 @@ pycryptodome = ">=3.10.1,<4.0.0"
[[package]]
name = "open-aea-ledger-ethereum"
-version = "1.51.0"
+version = "1.53.0"
description = "Python package wrapping the public and private key cryptography and ledger api of Ethereum."
-category = "main"
optional = false
python-versions = "*"
files = [
- {file = "open-aea-ledger-ethereum-1.51.0.tar.gz", hash = "sha256:3e47bcac5f0e062d8cf1837b120d259942a6194effe54c0febc876d528b8269b"},
- {file = "open_aea_ledger_ethereum-1.51.0-py3-none-any.whl", hash = "sha256:6c6d17c4170125af1bfcf0de80700c89d4cbec75fc4a39c43080476637847d33"},
+ {file = "open_aea_ledger_ethereum-1.53.0-py3-none-any.whl", hash = "sha256:501eb9e9e228552bf9f6f8811d780f33dbbf477ddb33b63d335caaeb24840274"},
+ {file = "open_aea_ledger_ethereum-1.53.0.tar.gz", hash = "sha256:734f335061c33a171b945ab1bcea5d47be9b9532457ed361b3aab727e85bca0d"},
]
[package.dependencies]
@@ -2001,46 +2097,45 @@ web3 = ">=6.0.0,<7"
[[package]]
name = "open-aea-ledger-ethereum-flashbots"
-version = "1.51.0"
+version = "1.53.0"
description = "Python package extending the default open-aea ethereum ledger plugin to add support for flashbots."
-category = "main"
optional = false
python-versions = "<4.0,>=3.9"
files = [
- {file = "open-aea-ledger-ethereum-flashbots-1.51.0.tar.gz", hash = "sha256:5e474c0d3cf7cbd8a8b55e3168877cd844daaacba1a2e8cf4eed6dddbad45504"},
- {file = "open_aea_ledger_ethereum_flashbots-1.51.0-py3-none-any.whl", hash = "sha256:6c30fa54f1f77f59adea01632f61c7cd162f8e2ab74ecba0201e21c206626da9"},
+ {file = "open_aea_ledger_ethereum_flashbots-1.53.0-py3-none-any.whl", hash = "sha256:04e1d04b68159f092dbe8c94d419221ad45bac17497c8feed9cbe92270a675b3"},
+ {file = "open_aea_ledger_ethereum_flashbots-1.53.0.tar.gz", hash = "sha256:683e0c73c04413a0098f4903e3afa8c1570f8c51591ad6cef66fd38cfad463d8"},
]
[package.dependencies]
open-aea-flashbots = "1.4.0"
-open-aea-ledger-ethereum = ">=1.51.0,<1.52.0"
+open-aea-ledger-ethereum = ">=1.53.0,<1.54.0"
[[package]]
name = "open-autonomy"
-version = "0.14.11.post1"
+version = "0.14.14.post2"
description = "A framework for the creation of autonomous agent services."
-category = "main"
optional = false
python-versions = ">=3.8"
files = [
- {file = "open-autonomy-0.14.11.post1.tar.gz", hash = "sha256:b44467cccffa3c72db21baca127d747fb62a60a22161613c4248e7cec78a0bb6"},
- {file = "open_autonomy-0.14.11.post1-py3-none-any.whl", hash = "sha256:1f2d8d22909c90f679fb6c24318abe8887f94668aa9decf018837853c828bc4a"},
+ {file = "open_autonomy-0.14.14.post2-py3-none-any.whl", hash = "sha256:76efc0ce814c748eb02176477eef5b5ca4c6a84d77230e01a40c3df5ad2254b8"},
+ {file = "open_autonomy-0.14.14.post2.tar.gz", hash = "sha256:0e1e7f3207fde38b8778a260c43153737a3b9fefe6d7abf373710a1aae9e267b"},
]
[package.dependencies]
aiohttp = ">=3.8.5,<4.0.0"
-click = "8.0.2"
+click = ">=8.1.0,<9"
coverage = ">=6.4.4,<8.0.0"
docker = "6.1.2"
Flask = ">=2.0.2,<3.0.0"
gql = "3.5.0"
hexbytes = "*"
jsonschema = ">=4.3.0,<4.4.0"
-open-aea = {version = "1.51.0", extras = ["all"]}
-open-aea-cli-ipfs = "1.51.0"
+open-aea = {version = "1.53.0", extras = ["all"]}
+open-aea-cli-ipfs = "1.53.0"
protobuf = ">=4.21.6,<4.25.0"
pytest = "7.2.1"
python-dotenv = ">=0.14.5,<0.22.0"
+requests = ">=2.28.1,<2.31.2"
requests-toolbelt = "1.0.0"
texttable = "1.6.7"
typing-extensions = ">=3.10.0.2"
@@ -2049,14 +2144,13 @@ watchdog = ">=2.1.6"
werkzeug = "2.0.3"
[package.extras]
-all = ["click (==8.0.2)", "coverage (>=6.4.4,<8.0.0)", "open-aea-cli-ipfs (==1.51.0)", "pytest (>=7.0.0,<7.3.0)", "python-dotenv (>=0.14.5,<0.22.0)", "texttable (==1.6.7)"]
-cli = ["click (==8.0.2)", "coverage (>=6.4.4,<8.0.0)", "open-aea-cli-ipfs (==1.51.0)", "pytest (>=7.0.0,<7.3.0)", "python-dotenv (>=0.14.5,<0.22.0)", "texttable (==1.6.7)"]
+all = ["click (>=8.1.0,<9)", "coverage (>=6.4.4,<8.0.0)", "open-aea-cli-ipfs (==1.53.0)", "pytest (>=7.0.0,<7.3.0)", "python-dotenv (>=0.14.5,<0.22.0)", "texttable (==1.6.7)"]
+cli = ["click (>=8.1.0,<9)", "coverage (>=6.4.4,<8.0.0)", "open-aea-cli-ipfs (==1.53.0)", "pytest (>=7.0.0,<7.3.0)", "python-dotenv (>=0.14.5,<0.22.0)", "texttable (==1.6.7)"]
[[package]]
name = "packaging"
version = "23.2"
description = "Core utilities for Python packages"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -2068,7 +2162,6 @@ files = [
name = "paramiko"
version = "3.4.0"
description = "SSH2 protocol library"
-category = "main"
optional = false
python-versions = ">=3.6"
files = [
@@ -2090,7 +2183,6 @@ invoke = ["invoke (>=2.0)"]
name = "parsimonious"
version = "0.10.0"
description = "(Soon to be) the fastest pure-Python PEG parser I could muster"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -2105,7 +2197,6 @@ regex = ">=2022.3.15"
name = "pefile"
version = "2023.2.7"
description = "Python PE parsing module"
-category = "main"
optional = false
python-versions = ">=3.6.0"
files = [
@@ -2117,7 +2208,6 @@ files = [
name = "platformdirs"
version = "4.2.2"
description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`."
-category = "dev"
optional = false
python-versions = ">=3.8"
files = [
@@ -2134,7 +2224,6 @@ type = ["mypy (>=1.8)"]
name = "pluggy"
version = "1.5.0"
description = "plugin and hook calling mechanisms for python"
-category = "main"
optional = false
python-versions = ">=3.8"
files = [
@@ -2150,7 +2239,6 @@ testing = ["pytest", "pytest-benchmark"]
name = "protobuf"
version = "4.24.4"
description = ""
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -2173,7 +2261,6 @@ files = [
name = "psutil"
version = "5.9.8"
description = "Cross-platform lib for process and system monitoring in Python."
-category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*"
files = [
@@ -2202,7 +2289,6 @@ test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"]
name = "py"
version = "1.11.0"
description = "library with cross-python path, ini-parsing, io, code, log facilities"
-category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
files = [
@@ -2214,7 +2300,6 @@ files = [
name = "py-multibase"
version = "1.0.3"
description = "Multibase implementation for Python"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -2231,7 +2316,6 @@ six = ">=1.10.0,<2.0"
name = "py-multicodec"
version = "0.2.1"
description = "Multicodec implementation in Python"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -2248,7 +2332,6 @@ varint = ">=1.0.2,<2.0.0"
name = "pycparser"
version = "2.22"
description = "C parser in Python"
-category = "main"
optional = false
python-versions = ">=3.8"
files = [
@@ -2260,7 +2343,6 @@ files = [
name = "pycryptodome"
version = "3.20.0"
description = "Cryptographic library for Python"
-category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
files = [
@@ -2302,7 +2384,6 @@ files = [
name = "pydantic"
version = "2.8.2"
description = "Data validation using Python type hints"
-category = "main"
optional = false
python-versions = ">=3.8"
files = [
@@ -2322,7 +2403,6 @@ email = ["email-validator (>=2.0.0)"]
name = "pydantic-core"
version = "2.20.1"
description = "Core functionality for Pydantic validation and serialization"
-category = "main"
optional = false
python-versions = ">=3.8"
files = [
@@ -2420,26 +2500,39 @@ files = [
[package.dependencies]
typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0"
+[[package]]
+name = "pygments"
+version = "2.18.0"
+description = "Pygments is a syntax highlighting package written in Python."
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a"},
+ {file = "pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199"},
+]
+
+[package.extras]
+windows-terminal = ["colorama (>=0.4.6)"]
+
[[package]]
name = "pyinstaller"
-version = "6.8.0"
+version = "6.9.0"
description = "PyInstaller bundles a Python application and all its dependencies into a single package."
-category = "main"
optional = false
python-versions = "<3.13,>=3.8"
files = [
- {file = "pyinstaller-6.8.0-py3-none-macosx_10_13_universal2.whl", hash = "sha256:5ff6bc2784c1026f8e2f04aa3760cbed41408e108a9d4cf1dd52ee8351a3f6e1"},
- {file = "pyinstaller-6.8.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:39ac424d2ee2457d2ab11a5091436e75a0cccae207d460d180aa1fcbbafdd528"},
- {file = "pyinstaller-6.8.0-py3-none-manylinux2014_i686.whl", hash = "sha256:355832a3acc7de90a255ecacd4b9f9e166a547a79c8905d49f14e3a75c1acdb9"},
- {file = "pyinstaller-6.8.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:6303c7a009f47e6a96ef65aed49f41e36ece8d079b9193ca92fe807403e5fe80"},
- {file = "pyinstaller-6.8.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:2b71509468c811968c0b5decb5bbe85b6292ea52d7b1f26313d2aabb673fa9a5"},
- {file = "pyinstaller-6.8.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:ff31c5b99e05a4384bbe2071df67ec8b2b347640a375eae9b40218be2f1754c6"},
- {file = "pyinstaller-6.8.0-py3-none-musllinux_1_1_aarch64.whl", hash = "sha256:000c36b13fe4cd8d0d8c2bc855b1ddcf39867b5adf389e6b5ca45b25fa3e619d"},
- {file = "pyinstaller-6.8.0-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:fe0af018d7d5077180e3144ada89a4da5df8d07716eb7e9482834a56dc57a4e8"},
- {file = "pyinstaller-6.8.0-py3-none-win32.whl", hash = "sha256:d257f6645c7334cbd66f38a4fac62c3ad614cc46302b2b5d9f8cc48c563bce0e"},
- {file = "pyinstaller-6.8.0-py3-none-win_amd64.whl", hash = "sha256:81cccfa9b16699b457f4788c5cc119b50f3cd4d0db924955f15c33f2ad27a50d"},
- {file = "pyinstaller-6.8.0-py3-none-win_arm64.whl", hash = "sha256:1c3060a263758cf7f0144ab4c016097b20451b2469d468763414665db1bb743d"},
- {file = "pyinstaller-6.8.0.tar.gz", hash = "sha256:3f4b6520f4423fe19bcc2fd63ab7238851ae2bdcbc98f25bc5d2f97cc62012e9"},
+ {file = "pyinstaller-6.9.0-py3-none-macosx_10_13_universal2.whl", hash = "sha256:5ced2e83acf222b936ea94abc5a5cc96588705654b39138af8fb321d9cf2b954"},
+ {file = "pyinstaller-6.9.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:f18a3d551834ef8fb7830d48d4cc1527004d0e6b51ded7181e78374ad6111846"},
+ {file = "pyinstaller-6.9.0-py3-none-manylinux2014_i686.whl", hash = "sha256:f2fc568de3d6d2a176716a3fc9f20da06d351e8bea5ddd10ecb5659fce3a05b0"},
+ {file = "pyinstaller-6.9.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:a0f378f64ad0655d11ade9fde7877e7573fd3d5066231608ce7dfa9040faecdd"},
+ {file = "pyinstaller-6.9.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:7bf0c13c5a8560c89540746ae742f4f4b82290e95a6b478374d9f34959fe25d6"},
+ {file = "pyinstaller-6.9.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:da994aba14c5686db88796684de265a8665733b4df09b939f7ebdf097d18df72"},
+ {file = "pyinstaller-6.9.0-py3-none-musllinux_1_1_aarch64.whl", hash = "sha256:4e3e50743c091a06e6d01c59bdd6d03967b453ee5384a9e790759be4129db4a4"},
+ {file = "pyinstaller-6.9.0-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:b041be2fe78da47a269604d62c940d68c62f9a3913bdf64af4123f7689d47099"},
+ {file = "pyinstaller-6.9.0-py3-none-win32.whl", hash = "sha256:2bf4de17a1c63c0b797b38e13bfb4d03b5ee7c0a68e28b915a7eaacf6b76087f"},
+ {file = "pyinstaller-6.9.0-py3-none-win_amd64.whl", hash = "sha256:43709c70b1da8441a730327a8ed362bfcfdc3d42c1bf89f3e2b0a163cc4e7d33"},
+ {file = "pyinstaller-6.9.0-py3-none-win_arm64.whl", hash = "sha256:f15c1ef11ed5ceb32447dfbdab687017d6adbef7fc32aa359d584369bfe56eda"},
+ {file = "pyinstaller-6.9.0.tar.gz", hash = "sha256:f4a75c552facc2e2a370f1e422b971b5e5cdb4058ff38cea0235aa21fc0b378f"},
]
[package.dependencies]
@@ -2448,7 +2541,7 @@ importlib-metadata = {version = ">=4.6", markers = "python_version < \"3.10\""}
macholib = {version = ">=1.8", markers = "sys_platform == \"darwin\""}
packaging = ">=22.0"
pefile = {version = ">=2022.5.30", markers = "sys_platform == \"win32\""}
-pyinstaller-hooks-contrib = ">=2024.6"
+pyinstaller-hooks-contrib = ">=2024.7"
pywin32-ctypes = {version = ">=0.2.1", markers = "sys_platform == \"win32\""}
setuptools = ">=42.0.0"
@@ -2460,7 +2553,6 @@ hook-testing = ["execnet (>=1.5.0)", "psutil", "pytest (>=2.7.3)"]
name = "pyinstaller-hooks-contrib"
version = "2024.7"
description = "Community maintained hooks for PyInstaller"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -2477,7 +2569,6 @@ setuptools = ">=42.0.0"
name = "pymultihash"
version = "0.8.2"
description = "Python implementation of the multihash specification"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -2493,7 +2584,6 @@ sha3 = ["pysha3"]
name = "pynacl"
version = "1.5.0"
description = "Python binding to the Networking and Cryptography (NaCl) library"
-category = "main"
optional = false
python-versions = ">=3.6"
files = [
@@ -2520,7 +2610,6 @@ tests = ["hypothesis (>=3.27.0)", "pytest (>=3.2.1,!=3.3.0)"]
name = "pyrsistent"
version = "0.20.0"
description = "Persistent/Functional/Immutable data structures"
-category = "main"
optional = false
python-versions = ">=3.8"
files = [
@@ -2562,7 +2651,6 @@ files = [
name = "pytest"
version = "7.2.1"
description = "pytest: simple powerful testing with Python"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -2586,7 +2674,6 @@ testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.
name = "python-baseconv"
version = "1.2.2"
description = "Convert numbers from base 10 integers to base X strings and back again."
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -2597,7 +2684,6 @@ files = [
name = "python-dateutil"
version = "2.9.0.post0"
description = "Extensions to the standard Python datetime module"
-category = "main"
optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
files = [
@@ -2612,7 +2698,6 @@ six = ">=1.5"
name = "python-dotenv"
version = "0.21.1"
description = "Read key-value pairs from a .env file and set them as environment variables"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -2627,7 +2712,6 @@ cli = ["click (>=5.0)"]
name = "pywin32"
version = "306"
description = "Python for Window Extensions"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -2651,7 +2735,6 @@ files = [
name = "pywin32-ctypes"
version = "0.2.2"
description = "A (partial) reimplementation of pywin32 using ctypes/cffi"
-category = "main"
optional = false
python-versions = ">=3.6"
files = [
@@ -2663,7 +2746,6 @@ files = [
name = "pyyaml"
version = "6.0.1"
description = "YAML parser and emitter for Python"
-category = "main"
optional = false
python-versions = ">=3.6"
files = [
@@ -2722,110 +2804,108 @@ files = [
[[package]]
name = "regex"
-version = "2024.5.15"
+version = "2024.7.24"
description = "Alternative regular expression module, to replace re."
-category = "main"
optional = false
python-versions = ">=3.8"
files = [
- {file = "regex-2024.5.15-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a81e3cfbae20378d75185171587cbf756015ccb14840702944f014e0d93ea09f"},
- {file = "regex-2024.5.15-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7b59138b219ffa8979013be7bc85bb60c6f7b7575df3d56dc1e403a438c7a3f6"},
- {file = "regex-2024.5.15-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a0bd000c6e266927cb7a1bc39d55be95c4b4f65c5be53e659537537e019232b1"},
- {file = "regex-2024.5.15-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5eaa7ddaf517aa095fa8da0b5015c44d03da83f5bd49c87961e3c997daed0de7"},
- {file = "regex-2024.5.15-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ba68168daedb2c0bab7fd7e00ced5ba90aebf91024dea3c88ad5063c2a562cca"},
- {file = "regex-2024.5.15-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6e8d717bca3a6e2064fc3a08df5cbe366369f4b052dcd21b7416e6d71620dca1"},
- {file = "regex-2024.5.15-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1337b7dbef9b2f71121cdbf1e97e40de33ff114801263b275aafd75303bd62b5"},
- {file = "regex-2024.5.15-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f9ebd0a36102fcad2f03696e8af4ae682793a5d30b46c647eaf280d6cfb32796"},
- {file = "regex-2024.5.15-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:9efa1a32ad3a3ea112224897cdaeb6aa00381627f567179c0314f7b65d354c62"},
- {file = "regex-2024.5.15-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:1595f2d10dff3d805e054ebdc41c124753631b6a471b976963c7b28543cf13b0"},
- {file = "regex-2024.5.15-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:b802512f3e1f480f41ab5f2cfc0e2f761f08a1f41092d6718868082fc0d27143"},
- {file = "regex-2024.5.15-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:a0981022dccabca811e8171f913de05720590c915b033b7e601f35ce4ea7019f"},
- {file = "regex-2024.5.15-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:19068a6a79cf99a19ccefa44610491e9ca02c2be3305c7760d3831d38a467a6f"},
- {file = "regex-2024.5.15-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:1b5269484f6126eee5e687785e83c6b60aad7663dafe842b34691157e5083e53"},
- {file = "regex-2024.5.15-cp310-cp310-win32.whl", hash = "sha256:ada150c5adfa8fbcbf321c30c751dc67d2f12f15bd183ffe4ec7cde351d945b3"},
- {file = "regex-2024.5.15-cp310-cp310-win_amd64.whl", hash = "sha256:ac394ff680fc46b97487941f5e6ae49a9f30ea41c6c6804832063f14b2a5a145"},
- {file = "regex-2024.5.15-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f5b1dff3ad008dccf18e652283f5e5339d70bf8ba7c98bf848ac33db10f7bc7a"},
- {file = "regex-2024.5.15-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c6a2b494a76983df8e3d3feea9b9ffdd558b247e60b92f877f93a1ff43d26656"},
- {file = "regex-2024.5.15-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a32b96f15c8ab2e7d27655969a23895eb799de3665fa94349f3b2fbfd547236f"},
- {file = "regex-2024.5.15-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:10002e86e6068d9e1c91eae8295ef690f02f913c57db120b58fdd35a6bb1af35"},
- {file = "regex-2024.5.15-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ec54d5afa89c19c6dd8541a133be51ee1017a38b412b1321ccb8d6ddbeb4cf7d"},
- {file = "regex-2024.5.15-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:10e4ce0dca9ae7a66e6089bb29355d4432caed736acae36fef0fdd7879f0b0cb"},
- {file = "regex-2024.5.15-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3e507ff1e74373c4d3038195fdd2af30d297b4f0950eeda6f515ae3d84a1770f"},
- {file = "regex-2024.5.15-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d1f059a4d795e646e1c37665b9d06062c62d0e8cc3c511fe01315973a6542e40"},
- {file = "regex-2024.5.15-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0721931ad5fe0dda45d07f9820b90b2148ccdd8e45bb9e9b42a146cb4f695649"},
- {file = "regex-2024.5.15-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:833616ddc75ad595dee848ad984d067f2f31be645d603e4d158bba656bbf516c"},
- {file = "regex-2024.5.15-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:287eb7f54fc81546346207c533ad3c2c51a8d61075127d7f6d79aaf96cdee890"},
- {file = "regex-2024.5.15-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:19dfb1c504781a136a80ecd1fff9f16dddf5bb43cec6871778c8a907a085bb3d"},
- {file = "regex-2024.5.15-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:119af6e56dce35e8dfb5222573b50c89e5508d94d55713c75126b753f834de68"},
- {file = "regex-2024.5.15-cp311-cp311-win32.whl", hash = "sha256:1c1c174d6ec38d6c8a7504087358ce9213d4332f6293a94fbf5249992ba54efa"},
- {file = "regex-2024.5.15-cp311-cp311-win_amd64.whl", hash = "sha256:9e717956dcfd656f5055cc70996ee2cc82ac5149517fc8e1b60261b907740201"},
- {file = "regex-2024.5.15-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:632b01153e5248c134007209b5c6348a544ce96c46005d8456de1d552455b014"},
- {file = "regex-2024.5.15-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e64198f6b856d48192bf921421fdd8ad8eb35e179086e99e99f711957ffedd6e"},
- {file = "regex-2024.5.15-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:68811ab14087b2f6e0fc0c2bae9ad689ea3584cad6917fc57be6a48bbd012c49"},
- {file = "regex-2024.5.15-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8ec0c2fea1e886a19c3bee0cd19d862b3aa75dcdfb42ebe8ed30708df64687a"},
- {file = "regex-2024.5.15-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d0c0c0003c10f54a591d220997dd27d953cd9ccc1a7294b40a4be5312be8797b"},
- {file = "regex-2024.5.15-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2431b9e263af1953c55abbd3e2efca67ca80a3de8a0437cb58e2421f8184717a"},
- {file = "regex-2024.5.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a605586358893b483976cffc1723fb0f83e526e8f14c6e6614e75919d9862cf"},
- {file = "regex-2024.5.15-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:391d7f7f1e409d192dba8bcd42d3e4cf9e598f3979cdaed6ab11288da88cb9f2"},
- {file = "regex-2024.5.15-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9ff11639a8d98969c863d4617595eb5425fd12f7c5ef6621a4b74b71ed8726d5"},
- {file = "regex-2024.5.15-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4eee78a04e6c67e8391edd4dad3279828dd66ac4b79570ec998e2155d2e59fd5"},
- {file = "regex-2024.5.15-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:8fe45aa3f4aa57faabbc9cb46a93363edd6197cbc43523daea044e9ff2fea83e"},
- {file = "regex-2024.5.15-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:d0a3d8d6acf0c78a1fff0e210d224b821081330b8524e3e2bc5a68ef6ab5803d"},
- {file = "regex-2024.5.15-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c486b4106066d502495b3025a0a7251bf37ea9540433940a23419461ab9f2a80"},
- {file = "regex-2024.5.15-cp312-cp312-win32.whl", hash = "sha256:c49e15eac7c149f3670b3e27f1f28a2c1ddeccd3a2812cba953e01be2ab9b5fe"},
- {file = "regex-2024.5.15-cp312-cp312-win_amd64.whl", hash = "sha256:673b5a6da4557b975c6c90198588181029c60793835ce02f497ea817ff647cb2"},
- {file = "regex-2024.5.15-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:87e2a9c29e672fc65523fb47a90d429b70ef72b901b4e4b1bd42387caf0d6835"},
- {file = "regex-2024.5.15-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c3bea0ba8b73b71b37ac833a7f3fd53825924165da6a924aec78c13032f20850"},
- {file = "regex-2024.5.15-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:bfc4f82cabe54f1e7f206fd3d30fda143f84a63fe7d64a81558d6e5f2e5aaba9"},
- {file = "regex-2024.5.15-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e5bb9425fe881d578aeca0b2b4b3d314ec88738706f66f219c194d67179337cb"},
- {file = "regex-2024.5.15-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:64c65783e96e563103d641760664125e91bd85d8e49566ee560ded4da0d3e704"},
- {file = "regex-2024.5.15-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cf2430df4148b08fb4324b848672514b1385ae3807651f3567871f130a728cc3"},
- {file = "regex-2024.5.15-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5397de3219a8b08ae9540c48f602996aa6b0b65d5a61683e233af8605c42b0f2"},
- {file = "regex-2024.5.15-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:455705d34b4154a80ead722f4f185b04c4237e8e8e33f265cd0798d0e44825fa"},
- {file = "regex-2024.5.15-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:b2b6f1b3bb6f640c1a92be3bbfbcb18657b125b99ecf141fb3310b5282c7d4ed"},
- {file = "regex-2024.5.15-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:3ad070b823ca5890cab606c940522d05d3d22395d432f4aaaf9d5b1653e47ced"},
- {file = "regex-2024.5.15-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:5b5467acbfc153847d5adb21e21e29847bcb5870e65c94c9206d20eb4e99a384"},
- {file = "regex-2024.5.15-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:e6662686aeb633ad65be2a42b4cb00178b3fbf7b91878f9446075c404ada552f"},
- {file = "regex-2024.5.15-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:2b4c884767504c0e2401babe8b5b7aea9148680d2e157fa28f01529d1f7fcf67"},
- {file = "regex-2024.5.15-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:3cd7874d57f13bf70078f1ff02b8b0aa48d5b9ed25fc48547516c6aba36f5741"},
- {file = "regex-2024.5.15-cp38-cp38-win32.whl", hash = "sha256:e4682f5ba31f475d58884045c1a97a860a007d44938c4c0895f41d64481edbc9"},
- {file = "regex-2024.5.15-cp38-cp38-win_amd64.whl", hash = "sha256:d99ceffa25ac45d150e30bd9ed14ec6039f2aad0ffa6bb87a5936f5782fc1569"},
- {file = "regex-2024.5.15-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:13cdaf31bed30a1e1c2453ef6015aa0983e1366fad2667657dbcac7b02f67133"},
- {file = "regex-2024.5.15-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:cac27dcaa821ca271855a32188aa61d12decb6fe45ffe3e722401fe61e323cd1"},
- {file = "regex-2024.5.15-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7dbe2467273b875ea2de38ded4eba86cbcbc9a1a6d0aa11dcf7bd2e67859c435"},
- {file = "regex-2024.5.15-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:64f18a9a3513a99c4bef0e3efd4c4a5b11228b48aa80743be822b71e132ae4f5"},
- {file = "regex-2024.5.15-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d347a741ea871c2e278fde6c48f85136c96b8659b632fb57a7d1ce1872547600"},
- {file = "regex-2024.5.15-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1878b8301ed011704aea4c806a3cadbd76f84dece1ec09cc9e4dc934cfa5d4da"},
- {file = "regex-2024.5.15-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4babf07ad476aaf7830d77000874d7611704a7fcf68c9c2ad151f5d94ae4bfc4"},
- {file = "regex-2024.5.15-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:35cb514e137cb3488bce23352af3e12fb0dbedd1ee6e60da053c69fb1b29cc6c"},
- {file = "regex-2024.5.15-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:cdd09d47c0b2efee9378679f8510ee6955d329424c659ab3c5e3a6edea696294"},
- {file = "regex-2024.5.15-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:72d7a99cd6b8f958e85fc6ca5b37c4303294954eac1376535b03c2a43eb72629"},
- {file = "regex-2024.5.15-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:a094801d379ab20c2135529948cb84d417a2169b9bdceda2a36f5f10977ebc16"},
- {file = "regex-2024.5.15-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:c0c18345010870e58238790a6779a1219b4d97bd2e77e1140e8ee5d14df071aa"},
- {file = "regex-2024.5.15-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:16093f563098448ff6b1fa68170e4acbef94e6b6a4e25e10eae8598bb1694b5d"},
- {file = "regex-2024.5.15-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:e38a7d4e8f633a33b4c7350fbd8bad3b70bf81439ac67ac38916c4a86b465456"},
- {file = "regex-2024.5.15-cp39-cp39-win32.whl", hash = "sha256:71a455a3c584a88f654b64feccc1e25876066c4f5ef26cd6dd711308aa538694"},
- {file = "regex-2024.5.15-cp39-cp39-win_amd64.whl", hash = "sha256:cab12877a9bdafde5500206d1020a584355a97884dfd388af3699e9137bf7388"},
- {file = "regex-2024.5.15.tar.gz", hash = "sha256:d3ee02d9e5f482cc8309134a91eeaacbdd2261ba111b0fef3748eeb4913e6a2c"},
+ {file = "regex-2024.7.24-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:228b0d3f567fafa0633aee87f08b9276c7062da9616931382993c03808bb68ce"},
+ {file = "regex-2024.7.24-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:3426de3b91d1bc73249042742f45c2148803c111d1175b283270177fdf669024"},
+ {file = "regex-2024.7.24-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f273674b445bcb6e4409bf8d1be67bc4b58e8b46fd0d560055d515b8830063cd"},
+ {file = "regex-2024.7.24-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23acc72f0f4e1a9e6e9843d6328177ae3074b4182167e34119ec7233dfeccf53"},
+ {file = "regex-2024.7.24-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:65fd3d2e228cae024c411c5ccdffae4c315271eee4a8b839291f84f796b34eca"},
+ {file = "regex-2024.7.24-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c414cbda77dbf13c3bc88b073a1a9f375c7b0cb5e115e15d4b73ec3a2fbc6f59"},
+ {file = "regex-2024.7.24-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf7a89eef64b5455835f5ed30254ec19bf41f7541cd94f266ab7cbd463f00c41"},
+ {file = "regex-2024.7.24-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:19c65b00d42804e3fbea9708f0937d157e53429a39b7c61253ff15670ff62cb5"},
+ {file = "regex-2024.7.24-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:7a5486ca56c8869070a966321d5ab416ff0f83f30e0e2da1ab48815c8d165d46"},
+ {file = "regex-2024.7.24-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:6f51f9556785e5a203713f5efd9c085b4a45aecd2a42573e2b5041881b588d1f"},
+ {file = "regex-2024.7.24-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:a4997716674d36a82eab3e86f8fa77080a5d8d96a389a61ea1d0e3a94a582cf7"},
+ {file = "regex-2024.7.24-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:c0abb5e4e8ce71a61d9446040c1e86d4e6d23f9097275c5bd49ed978755ff0fe"},
+ {file = "regex-2024.7.24-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:18300a1d78cf1290fa583cd8b7cde26ecb73e9f5916690cf9d42de569c89b1ce"},
+ {file = "regex-2024.7.24-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:416c0e4f56308f34cdb18c3f59849479dde5b19febdcd6e6fa4d04b6c31c9faa"},
+ {file = "regex-2024.7.24-cp310-cp310-win32.whl", hash = "sha256:fb168b5924bef397b5ba13aabd8cf5df7d3d93f10218d7b925e360d436863f66"},
+ {file = "regex-2024.7.24-cp310-cp310-win_amd64.whl", hash = "sha256:6b9fc7e9cc983e75e2518496ba1afc524227c163e43d706688a6bb9eca41617e"},
+ {file = "regex-2024.7.24-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:382281306e3adaaa7b8b9ebbb3ffb43358a7bbf585fa93821300a418bb975281"},
+ {file = "regex-2024.7.24-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4fdd1384619f406ad9037fe6b6eaa3de2749e2e12084abc80169e8e075377d3b"},
+ {file = "regex-2024.7.24-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3d974d24edb231446f708c455fd08f94c41c1ff4f04bcf06e5f36df5ef50b95a"},
+ {file = "regex-2024.7.24-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a2ec4419a3fe6cf8a4795752596dfe0adb4aea40d3683a132bae9c30b81e8d73"},
+ {file = "regex-2024.7.24-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eb563dd3aea54c797adf513eeec819c4213d7dbfc311874eb4fd28d10f2ff0f2"},
+ {file = "regex-2024.7.24-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:45104baae8b9f67569f0f1dca5e1f1ed77a54ae1cd8b0b07aba89272710db61e"},
+ {file = "regex-2024.7.24-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:994448ee01864501912abf2bad9203bffc34158e80fe8bfb5b031f4f8e16da51"},
+ {file = "regex-2024.7.24-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3fac296f99283ac232d8125be932c5cd7644084a30748fda013028c815ba3364"},
+ {file = "regex-2024.7.24-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7e37e809b9303ec3a179085415cb5f418ecf65ec98cdfe34f6a078b46ef823ee"},
+ {file = "regex-2024.7.24-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:01b689e887f612610c869421241e075c02f2e3d1ae93a037cb14f88ab6a8934c"},
+ {file = "regex-2024.7.24-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f6442f0f0ff81775eaa5b05af8a0ffa1dda36e9cf6ec1e0d3d245e8564b684ce"},
+ {file = "regex-2024.7.24-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:871e3ab2838fbcb4e0865a6e01233975df3a15e6fce93b6f99d75cacbd9862d1"},
+ {file = "regex-2024.7.24-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c918b7a1e26b4ab40409820ddccc5d49871a82329640f5005f73572d5eaa9b5e"},
+ {file = "regex-2024.7.24-cp311-cp311-win32.whl", hash = "sha256:2dfbb8baf8ba2c2b9aa2807f44ed272f0913eeeba002478c4577b8d29cde215c"},
+ {file = "regex-2024.7.24-cp311-cp311-win_amd64.whl", hash = "sha256:538d30cd96ed7d1416d3956f94d54e426a8daf7c14527f6e0d6d425fcb4cca52"},
+ {file = "regex-2024.7.24-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:fe4ebef608553aff8deb845c7f4f1d0740ff76fa672c011cc0bacb2a00fbde86"},
+ {file = "regex-2024.7.24-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:74007a5b25b7a678459f06559504f1eec2f0f17bca218c9d56f6a0a12bfffdad"},
+ {file = "regex-2024.7.24-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7df9ea48641da022c2a3c9c641650cd09f0cd15e8908bf931ad538f5ca7919c9"},
+ {file = "regex-2024.7.24-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6a1141a1dcc32904c47f6846b040275c6e5de0bf73f17d7a409035d55b76f289"},
+ {file = "regex-2024.7.24-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80c811cfcb5c331237d9bad3bea2c391114588cf4131707e84d9493064d267f9"},
+ {file = "regex-2024.7.24-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7214477bf9bd195894cf24005b1e7b496f46833337b5dedb7b2a6e33f66d962c"},
+ {file = "regex-2024.7.24-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d55588cba7553f0b6ec33130bc3e114b355570b45785cebdc9daed8c637dd440"},
+ {file = "regex-2024.7.24-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:558a57cfc32adcf19d3f791f62b5ff564922942e389e3cfdb538a23d65a6b610"},
+ {file = "regex-2024.7.24-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a512eed9dfd4117110b1881ba9a59b31433caed0c4101b361f768e7bcbaf93c5"},
+ {file = "regex-2024.7.24-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:86b17ba823ea76256b1885652e3a141a99a5c4422f4a869189db328321b73799"},
+ {file = "regex-2024.7.24-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5eefee9bfe23f6df09ffb6dfb23809f4d74a78acef004aa904dc7c88b9944b05"},
+ {file = "regex-2024.7.24-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:731fcd76bbdbf225e2eb85b7c38da9633ad3073822f5ab32379381e8c3c12e94"},
+ {file = "regex-2024.7.24-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:eaef80eac3b4cfbdd6de53c6e108b4c534c21ae055d1dbea2de6b3b8ff3def38"},
+ {file = "regex-2024.7.24-cp312-cp312-win32.whl", hash = "sha256:185e029368d6f89f36e526764cf12bf8d6f0e3a2a7737da625a76f594bdfcbfc"},
+ {file = "regex-2024.7.24-cp312-cp312-win_amd64.whl", hash = "sha256:2f1baff13cc2521bea83ab2528e7a80cbe0ebb2c6f0bfad15be7da3aed443908"},
+ {file = "regex-2024.7.24-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:66b4c0731a5c81921e938dcf1a88e978264e26e6ac4ec96a4d21ae0354581ae0"},
+ {file = "regex-2024.7.24-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:88ecc3afd7e776967fa16c80f974cb79399ee8dc6c96423321d6f7d4b881c92b"},
+ {file = "regex-2024.7.24-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:64bd50cf16bcc54b274e20235bf8edbb64184a30e1e53873ff8d444e7ac656b2"},
+ {file = "regex-2024.7.24-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eb462f0e346fcf41a901a126b50f8781e9a474d3927930f3490f38a6e73b6950"},
+ {file = "regex-2024.7.24-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a82465ebbc9b1c5c50738536fdfa7cab639a261a99b469c9d4c7dcbb2b3f1e57"},
+ {file = "regex-2024.7.24-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:68a8f8c046c6466ac61a36b65bb2395c74451df2ffb8458492ef49900efed293"},
+ {file = "regex-2024.7.24-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dac8e84fff5d27420f3c1e879ce9929108e873667ec87e0c8eeb413a5311adfe"},
+ {file = "regex-2024.7.24-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ba2537ef2163db9e6ccdbeb6f6424282ae4dea43177402152c67ef869cf3978b"},
+ {file = "regex-2024.7.24-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:43affe33137fcd679bdae93fb25924979517e011f9dea99163f80b82eadc7e53"},
+ {file = "regex-2024.7.24-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:c9bb87fdf2ab2370f21e4d5636e5317775e5d51ff32ebff2cf389f71b9b13750"},
+ {file = "regex-2024.7.24-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:945352286a541406f99b2655c973852da7911b3f4264e010218bbc1cc73168f2"},
+ {file = "regex-2024.7.24-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:8bc593dcce679206b60a538c302d03c29b18e3d862609317cb560e18b66d10cf"},
+ {file = "regex-2024.7.24-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:3f3b6ca8eae6d6c75a6cff525c8530c60e909a71a15e1b731723233331de4169"},
+ {file = "regex-2024.7.24-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:c51edc3541e11fbe83f0c4d9412ef6c79f664a3745fab261457e84465ec9d5a8"},
+ {file = "regex-2024.7.24-cp38-cp38-win32.whl", hash = "sha256:d0a07763776188b4db4c9c7fb1b8c494049f84659bb387b71c73bbc07f189e96"},
+ {file = "regex-2024.7.24-cp38-cp38-win_amd64.whl", hash = "sha256:8fd5afd101dcf86a270d254364e0e8dddedebe6bd1ab9d5f732f274fa00499a5"},
+ {file = "regex-2024.7.24-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:0ffe3f9d430cd37d8fa5632ff6fb36d5b24818c5c986893063b4e5bdb84cdf24"},
+ {file = "regex-2024.7.24-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:25419b70ba00a16abc90ee5fce061228206173231f004437730b67ac77323f0d"},
+ {file = "regex-2024.7.24-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:33e2614a7ce627f0cdf2ad104797d1f68342d967de3695678c0cb84f530709f8"},
+ {file = "regex-2024.7.24-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d33a0021893ede5969876052796165bab6006559ab845fd7b515a30abdd990dc"},
+ {file = "regex-2024.7.24-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:04ce29e2c5fedf296b1a1b0acc1724ba93a36fb14031f3abfb7abda2806c1535"},
+ {file = "regex-2024.7.24-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b16582783f44fbca6fcf46f61347340c787d7530d88b4d590a397a47583f31dd"},
+ {file = "regex-2024.7.24-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:836d3cc225b3e8a943d0b02633fb2f28a66e281290302a79df0e1eaa984ff7c1"},
+ {file = "regex-2024.7.24-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:438d9f0f4bc64e8dea78274caa5af971ceff0f8771e1a2333620969936ba10be"},
+ {file = "regex-2024.7.24-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:973335b1624859cb0e52f96062a28aa18f3a5fc77a96e4a3d6d76e29811a0e6e"},
+ {file = "regex-2024.7.24-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:c5e69fd3eb0b409432b537fe3c6f44ac089c458ab6b78dcec14478422879ec5f"},
+ {file = "regex-2024.7.24-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:fbf8c2f00904eaf63ff37718eb13acf8e178cb940520e47b2f05027f5bb34ce3"},
+ {file = "regex-2024.7.24-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ae2757ace61bc4061b69af19e4689fa4416e1a04840f33b441034202b5cd02d4"},
+ {file = "regex-2024.7.24-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:44fc61b99035fd9b3b9453f1713234e5a7c92a04f3577252b45feefe1b327759"},
+ {file = "regex-2024.7.24-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:84c312cdf839e8b579f504afcd7b65f35d60b6285d892b19adea16355e8343c9"},
+ {file = "regex-2024.7.24-cp39-cp39-win32.whl", hash = "sha256:ca5b2028c2f7af4e13fb9fc29b28d0ce767c38c7facdf64f6c2cd040413055f1"},
+ {file = "regex-2024.7.24-cp39-cp39-win_amd64.whl", hash = "sha256:7c479f5ae937ec9985ecaf42e2e10631551d909f203e31308c12d703922742f9"},
+ {file = "regex-2024.7.24.tar.gz", hash = "sha256:9cfd009eed1a46b27c14039ad5bbc5e71b6367c5b2e6d5f5da0ea91600817506"},
]
[[package]]
name = "requests"
-version = "2.28.1"
+version = "2.31.0"
description = "Python HTTP for Humans."
-category = "main"
optional = false
-python-versions = ">=3.7, <4"
+python-versions = ">=3.7"
files = [
- {file = "requests-2.28.1-py3-none-any.whl", hash = "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349"},
- {file = "requests-2.28.1.tar.gz", hash = "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983"},
+ {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"},
+ {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"},
]
[package.dependencies]
certifi = ">=2017.4.17"
-charset-normalizer = ">=2,<3"
+charset-normalizer = ">=2,<4"
idna = ">=2.5,<4"
-urllib3 = ">=1.21.1,<1.27"
+urllib3 = ">=1.21.1,<3"
[package.extras]
socks = ["PySocks (>=1.5.6,!=1.5.7)"]
@@ -2835,7 +2915,6 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"]
name = "requests-toolbelt"
version = "1.0.0"
description = "A utility belt for advanced users of python-requests"
-category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
files = [
@@ -2850,7 +2929,6 @@ requests = ">=2.0.1,<3.0.0"
name = "rlp"
version = "3.0.0"
description = "A package for Recursive Length Prefix encoding and decoding"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -2872,7 +2950,6 @@ test = ["hypothesis (==5.19.0)", "pytest (>=6.2.5,<7)", "tox (>=2.9.1,<3)"]
name = "semver"
version = "2.13.0"
description = "Python helper for Semantic Versioning (http://semver.org/)"
-category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
files = [
@@ -2882,25 +2959,24 @@ files = [
[[package]]
name = "setuptools"
-version = "70.2.0"
+version = "71.1.0"
description = "Easily download, build, install, upgrade, and uninstall Python packages"
-category = "main"
optional = false
python-versions = ">=3.8"
files = [
- {file = "setuptools-70.2.0-py3-none-any.whl", hash = "sha256:b8b8060bb426838fbe942479c90296ce976249451118ef566a5a0b7d8b78fb05"},
- {file = "setuptools-70.2.0.tar.gz", hash = "sha256:bd63e505105011b25c3c11f753f7e3b8465ea739efddaccef8f0efac2137bac1"},
+ {file = "setuptools-71.1.0-py3-none-any.whl", hash = "sha256:33874fdc59b3188304b2e7c80d9029097ea31627180896fb549c578ceb8a0855"},
+ {file = "setuptools-71.1.0.tar.gz", hash = "sha256:032d42ee9fb536e33087fb66cac5f840eb9391ed05637b3f2a76a7c8fb477936"},
]
[package.extras]
+core = ["importlib-metadata (>=6)", "importlib-resources (>=5.10.2)", "jaraco.text (>=3.7)", "more-itertools (>=8.8)", "ordered-set (>=3.1.1)", "packaging (>=24)", "platformdirs (>=2.6.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"]
doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"]
-test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test", "mypy (==1.10.0)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (>=0.3.2)", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"]
+test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test", "mypy (==1.11.*)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (<0.4)", "pytest-ruff (>=0.2.1)", "pytest-ruff (>=0.3.2)", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"]
[[package]]
name = "six"
version = "1.16.0"
description = "Python 2 and 3 compatibility utilities"
-category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
files = [
@@ -2912,7 +2988,6 @@ files = [
name = "sniffio"
version = "1.3.1"
description = "Sniff out which async library your code is running under"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -2920,11 +2995,21 @@ files = [
{file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"},
]
+[[package]]
+name = "spinners"
+version = "0.0.24"
+description = "Spinners for terminals"
+optional = false
+python-versions = "*"
+files = [
+ {file = "spinners-0.0.24-py3-none-any.whl", hash = "sha256:2fa30d0b72c9650ad12bbe031c9943b8d441e41b4f5602b0ec977a19f3290e98"},
+ {file = "spinners-0.0.24.tar.gz", hash = "sha256:1eb6aeb4781d72ab42ed8a01dcf20f3002bf50740d7154d12fb8c9769bf9e27f"},
+]
+
[[package]]
name = "starlette"
version = "0.36.3"
description = "The little ASGI library that shines."
-category = "main"
optional = false
python-versions = ">=3.8"
files = [
@@ -2939,11 +3024,24 @@ typing-extensions = {version = ">=3.10.0", markers = "python_version < \"3.10\""
[package.extras]
full = ["httpx (>=0.22.0)", "itsdangerous", "jinja2", "python-multipart (>=0.0.7)", "pyyaml"]
+[[package]]
+name = "termcolor"
+version = "2.4.0"
+description = "ANSI color formatting for output in terminal"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "termcolor-2.4.0-py3-none-any.whl", hash = "sha256:9297c0df9c99445c2412e832e882a7884038a25617c60cea2ad69488d4040d63"},
+ {file = "termcolor-2.4.0.tar.gz", hash = "sha256:aab9e56047c8ac41ed798fa36d892a37aca6b3e9159f3e0c24bc64a9b3ac7b7a"},
+]
+
+[package.extras]
+tests = ["pytest", "pytest-cov"]
+
[[package]]
name = "texttable"
version = "1.6.7"
description = "module to create simple ASCII tables"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -2955,7 +3053,6 @@ files = [
name = "tomli"
version = "2.0.1"
description = "A lil' TOML parser"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -2965,34 +3062,33 @@ files = [
[[package]]
name = "tomte"
-version = "0.2.15"
+version = "0.2.17"
description = "A library that wraps many useful tools (linters, analysers, etc) to keep Python code clean, secure, well-documented and optimised."
-category = "dev"
optional = false
-python-versions = ">=3.8,<4"
+python-versions = "<4,>=3.8"
files = [
- {file = "tomte-0.2.15-py3-none-any.whl", hash = "sha256:c1ec71bdb919290e42671d83098232bf7cf46cddf1a736c5d1c9f12ab1308c34"},
- {file = "tomte-0.2.15.tar.gz", hash = "sha256:662f3cdd616347969c3fea557c47545b555f5f82798b978e78ade3d23d43c92d"},
+ {file = "tomte-0.2.17-py3-none-any.whl", hash = "sha256:477e1e903610b5e2a8cf74a78cf229eacc21aa666e25e7bb872385ef2c013cfe"},
+ {file = "tomte-0.2.17.tar.gz", hash = "sha256:ad583dd39f2c398272f7f196471b2ecc8430eb89e07295ec1e682f64dd782831"},
]
[package.dependencies]
-click = {version = "8.0.2", optional = true, markers = "extra == \"black\" or extra == \"cli\" or extra == \"docs\""}
-requests = {version = "2.28.1", optional = true, markers = "extra == \"cli\""}
+click = {version = ">=8.1.0,<9", optional = true, markers = "extra == \"black\" or extra == \"cli\" or extra == \"docs\""}
+requests = {version = ">=2.28.1,<3", optional = true, markers = "extra == \"cli\""}
tox = {version = "3.28.0", optional = true, markers = "extra == \"cli\" or extra == \"tox\""}
[package.extras]
bandit = ["bandit (==1.7.4)"]
-black = ["black (==23.1.0)", "click (==8.0.2)"]
-cli = ["click (==8.0.2)", "requests (==2.28.1)", "tox (==3.28.0)"]
+black = ["black (==23.1.0)", "click (>=8.1.0,<9)"]
+cli = ["click (>=8.1.0,<9)", "requests (>=2.28.1,<3)", "tox (==3.28.0)"]
darglint = ["darglint (==1.8.1)"]
-docs = ["Markdown (==3.3.7)", "Pygments (>=2.16,<3.0)", "bs4 (==0.0.1)", "click (==8.0.2)", "markdown-include (==0.8.0)", "mkdocs (>=1.5.3,<2.0)", "mkdocs-macros-plugin (==0.7.0)", "mkdocs-material (==9.4.10)", "mkdocs-material-extensions (==1.3)", "mkdocs-redirects (==1.2.0)", "pydoc-markdown (==4.8.2)", "pydocstyle (==6.2.3)", "pymdown-extensions (>=10.2,<11.0)"]
+docs = ["Markdown (==3.3.7)", "Pygments (>=2.16,<3.0)", "bs4 (==0.0.1)", "click (>=8.1.0,<9)", "markdown-include (==0.8.0)", "mkdocs (>=1.5.3,<2.0)", "mkdocs-macros-plugin (==0.7.0)", "mkdocs-material (==9.4.10)", "mkdocs-material-extensions (==1.3)", "mkdocs-redirects (==1.2.0)", "pydoc-markdown (==4.8.2)", "pydocstyle (==6.2.3)", "pymdown-extensions (>=10.2,<11.0)"]
flake8 = ["flake8 (==3.9.2)", "flake8-bugbear (==23.1.14)", "flake8-docstrings (==1.6.0)", "flake8-eradicate (==1.4.0)", "flake8-isort (==6.0.0)", "pydocstyle (==6.2.3)"]
isort = ["isort (==5.11.4)"]
liccheck = ["liccheck (==0.8.3)"]
mypy = ["mypy (==0.991)"]
pylint = ["pylint (==2.13.9)"]
safety = ["safety (==2.4.0b1)"]
-tests = ["pytest (==7.2.1)", "pytest-asyncio (==0.20.3)", "pytest-cov (==4.0.0)", "pytest-randomly (==3.12.0)", "pytest-rerunfailures (==11.0)"]
+tests = ["pytest (==7.2.1)", "pytest-asyncio (>=0.21.0,<0.22.0)", "pytest-cov (==4.0.0)", "pytest-randomly (==3.12.0)", "pytest-rerunfailures (==11.0)"]
tox = ["tox (==3.28.0)"]
vulture = ["vulture (==2.7)"]
@@ -3000,7 +3096,6 @@ vulture = ["vulture (==2.7)"]
name = "toolz"
version = "0.12.1"
description = "List processing tools and functional utilities"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -3012,7 +3107,6 @@ files = [
name = "tox"
version = "3.28.0"
description = "tox is a generic virtualenv management and test command line tool"
-category = "dev"
optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"
files = [
@@ -3038,7 +3132,6 @@ testing = ["flaky (>=3.4.0)", "freezegun (>=0.3.11)", "pathlib2 (>=2.3.3)", "psu
name = "typing-extensions"
version = "4.12.2"
description = "Backported and Experimental Type Hints for Python 3.8+"
-category = "main"
optional = false
python-versions = ">=3.8"
files = [
@@ -3048,26 +3141,25 @@ files = [
[[package]]
name = "urllib3"
-version = "1.26.19"
+version = "2.2.2"
description = "HTTP library with thread-safe connection pooling, file post, and more."
-category = "main"
optional = false
-python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7"
+python-versions = ">=3.8"
files = [
- {file = "urllib3-1.26.19-py2.py3-none-any.whl", hash = "sha256:37a0344459b199fce0e80b0d3569837ec6b6937435c5244e7fd73fa6006830f3"},
- {file = "urllib3-1.26.19.tar.gz", hash = "sha256:3e3d753a8618b86d7de333b4223005f68720bcd6a7d2bcb9fbd2229ec7c1e429"},
+ {file = "urllib3-2.2.2-py3-none-any.whl", hash = "sha256:a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472"},
+ {file = "urllib3-2.2.2.tar.gz", hash = "sha256:dd505485549a7a552833da5e6063639d0d177c04f23bc3864e41e5dc5f612168"},
]
[package.extras]
-brotli = ["brotli (==1.0.9)", "brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotlipy (>=0.6.0)"]
-secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"]
-socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
+brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"]
+h2 = ["h2 (>=4,<5)"]
+socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"]
+zstd = ["zstandard (>=0.18.0)"]
[[package]]
name = "uvicorn"
version = "0.27.0"
description = "The lightning-fast ASGI server."
-category = "main"
optional = false
python-versions = ">=3.8"
files = [
@@ -3087,7 +3179,6 @@ standard = ["colorama (>=0.4)", "httptools (>=0.5.0)", "python-dotenv (>=0.13)",
name = "valory-docker-compose"
version = "1.29.3"
description = "Multi-container orchestration for Docker"
-category = "main"
optional = false
python-versions = ">=3.4"
files = [
@@ -3116,7 +3207,6 @@ tests = ["ddt (>=1.2.2,<2)", "pytest (<6)"]
name = "varint"
version = "1.0.2"
description = "Simple python varint implementation"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -3127,7 +3217,6 @@ files = [
name = "virtualenv"
version = "20.26.3"
description = "Virtual Python Environment builder"
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
@@ -3148,7 +3237,6 @@ test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess
name = "watchdog"
version = "4.0.1"
description = "Filesystem events monitoring"
-category = "main"
optional = false
python-versions = ">=3.8"
files = [
@@ -3193,7 +3281,6 @@ watchmedo = ["PyYAML (>=3.10)"]
name = "web3"
version = "6.1.0"
description = "web3.py"
-category = "main"
optional = false
python-versions = ">=3.7.2"
files = [
@@ -3227,7 +3314,6 @@ tester = ["eth-tester[py-evm] (==v0.8.0-b.3)", "py-geth (>=3.11.0)"]
name = "websocket-client"
version = "0.59.0"
description = "WebSocket client for Python with low level API options"
-category = "main"
optional = false
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
files = [
@@ -3242,7 +3328,6 @@ six = "*"
name = "websockets"
version = "12.0"
description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)"
-category = "main"
optional = false
python-versions = ">=3.8"
files = [
@@ -3324,7 +3409,6 @@ files = [
name = "werkzeug"
version = "2.0.3"
description = "The comprehensive WSGI web application library."
-category = "main"
optional = false
python-versions = ">=3.6"
files = [
@@ -3339,7 +3423,6 @@ watchdog = ["watchdog"]
name = "yarl"
version = "1.9.4"
description = "Yet another URL library"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -3443,7 +3526,6 @@ multidict = ">=4.0"
name = "zipp"
version = "3.19.2"
description = "Backport of pathlib-compatible object wrapper for zip files"
-category = "main"
optional = false
python-versions = ">=3.8"
files = [
@@ -3458,4 +3540,4 @@ test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools",
[metadata]
lock-version = "2.0"
python-versions = "<3.12,>=3.9"
-content-hash = "456a1a45f86bdda8fcc8c9e922c0eec5d129707d2354ac29985bec3fc7b94842"
+content-hash = "efabbc96c08f1cfc84fee39a52507329221bd3c6d6e436b887a369392294b155"
diff --git a/pyproject.toml b/pyproject.toml
index 985a8b4c8..36b98787f 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "olas-operate-middleware"
-version = "0.1.0-rc110"
+version = "0.1.0-rc115"
description = ""
authors = ["David Vilela ", "Viraj Patel "]
readme = "README.md"
@@ -19,11 +19,11 @@ operate = "operate.cli:main"
[tool.poetry.dependencies]
python = "<3.12,>=3.9"
-open-autonomy = "==0.14.11.post1"
-open-aea-ledger-cosmos = "==1.51.0"
-open-aea-ledger-ethereum = "==1.51.0"
-open-aea-ledger-ethereum-flashbots = "==1.51.0"
-open-aea-cli-ipfs = "==1.51.0"
+open-autonomy = "==0.14.14.post2"
+open-aea-ledger-cosmos = "==1.53.0"
+open-aea-ledger-ethereum = "==1.53.0"
+open-aea-ledger-ethereum-flashbots = "==1.53.0"
+open-aea-cli-ipfs = "==1.53.0"
clea = "==0.1.0rc4"
cytoolz = "==0.12.3"
docker = "6.1.2"
@@ -48,9 +48,11 @@ web3 = "==6.1.0"
psutil = "^5.9.8"
pyinstaller = "^6.8.0"
aiohttp = "3.9.5"
+halo = "^0.0.31"
+icecream = "^2.1.3"
[tool.poetry.group.development.dependencies]
-tomte = {version = "0.2.15", extras = ["cli"]}
+tomte = {version = "0.2.17", extras = ["cli"]}
[build-system]
requires = ["poetry-core"]
diff --git a/run_service.py b/run_service.py
new file mode 100644
index 000000000..2ad49dd17
--- /dev/null
+++ b/run_service.py
@@ -0,0 +1,367 @@
+# -*- coding: utf-8 -*-
+# ------------------------------------------------------------------------------
+#
+# Copyright 2024 Valory AG
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# ------------------------------------------------------------------------------
+"""Optimus Quickstart script."""
+
+import getpass
+import sys
+import time
+import typing as t
+from dataclasses import dataclass
+from pathlib import Path
+
+import requests
+from dotenv import load_dotenv
+from halo import Halo
+from termcolor import colored
+
+from operate.account.user import UserAccount
+from operate.cli import OperateApp
+from operate.resource import LocalResource
+from operate.types import (
+ LedgerType,
+ ServiceTemplate,
+ ConfigurationTemplate,
+ FundRequirementsTemplate,
+)
+
+load_dotenv()
+
+XDAI_BALANCE_REQUIRED_TO_BOND = 10_000_000_000_000_000
+SUGGESTED_TOP_UP_DEFAULT = 50_000_000_000_000_000
+SUGGESTED_SAFE_TOP_UP_DEFAULT = 500_000_000_000_000_000
+MASTER_WALLET_MIMIMUM_BALANCE = 1_000_000_000_000_000_000
+COST_OF_BOND = 20_000_000_000_000_000
+WARNING_ICON = colored('\u26A0', 'yellow')
+OPERATE_HOME = Path.cwd() / ".optimus"
+
+
+@dataclass
+class OptimusConfig(LocalResource):
+ """Local configuration."""
+
+ tenderly_api_key: t.Optional[str] = None
+ optimism_rpc: t.Optional[str] = None
+ ethereum_rpc: t.Optional[str] = None
+ base_rpc: t.Optional[str] = None
+
+
+def print_box(text: str, margin: int = 1, character: str = '=') -> None:
+ """Print text centered within a box."""
+
+ lines = text.split('\n')
+ text_length = max(len(line) for line in lines)
+ length = text_length + 2 * margin
+
+ border = character * length
+ margin_str = ' ' * margin
+
+ print(border)
+ print(f"{margin_str}{text}{margin_str}")
+ print(border)
+ print()
+
+
+def print_title(text: str) -> None:
+ """Print title."""
+ print()
+ print_box(text, 4, '=')
+
+
+def print_section(text: str) -> None:
+ """Print section."""
+ print_box(text, 1, '-')
+
+
+def wei_to_unit(wei: int) -> float:
+ """Convert Wei to unit."""
+ return wei / 1e18
+
+
+def wei_to_token(wei: int, token: str = "xDAI") -> str:
+ """Convert Wei to token."""
+ return f"{wei_to_unit(wei):.2f} {token}"
+
+
+def ask_confirm_password() -> str:
+ password = getpass.getpass("Please enter a password: ")
+ confirm_password = getpass.getpass("Please confirm your password: ")
+
+ if password == confirm_password:
+ return password
+ else:
+ print("Passwords do not match. Terminating.")
+ sys.exit(1)
+
+
+def check_rpc(rpc_url: str) -> None:
+ spinner = Halo(text=f"Checking RPC...", spinner="dots")
+ spinner.start()
+
+ rpc_data = {
+ "jsonrpc": "2.0",
+ "method": "eth_newFilter",
+ "params": ["invalid"],
+ "id": 1
+ }
+
+ try:
+ response = requests.post(
+ rpc_url,
+ json=rpc_data,
+ headers={"Content-Type": "application/json"}
+ )
+ response.raise_for_status()
+ rpc_response = response.json()
+ except Exception as e:
+ print("Error: Failed to send RPC request:", e)
+ sys.exit(1)
+
+ rcp_error_message = rpc_response.get("error", {}).get("message", "Exception processing RCP response")
+
+ if rcp_error_message == "Exception processing RCP response":
+ print("Error: The received RCP response is malformed. Please verify the RPC address and/or RCP behavior.")
+ print(" Received response:")
+ print(" ", rpc_response)
+ print("")
+ print("Terminating script.")
+ sys.exit(1)
+ elif rcp_error_message == "Out of requests":
+ print("Error: The provided RCP is out of requests.")
+ print("Terminating script.")
+ sys.exit(1)
+ elif rcp_error_message == "The method eth_newFilter does not exist/is not available":
+ print("Error: The provided RPC does not support 'eth_newFilter'.")
+ print("Terminating script.")
+ sys.exit(1)
+ elif rcp_error_message == "invalid params":
+ spinner.succeed("RPC checks passed.")
+ else:
+ print("Error: Unknown RCP error.")
+ print(" Received response:")
+ print(" ", rpc_response)
+ print("")
+ print("Terminating script.")
+ sys.exit(1)
+
+
+def get_local_config() -> OptimusConfig:
+ """Get local optimus configuration."""
+ path = OPERATE_HOME / "local_config.json"
+ if path.exists():
+ optimus_config = OptimusConfig.load(path)
+ else:
+ optimus_config = OptimusConfig()
+
+ print_section("API Key Configuration")
+
+ if optimus_config.ethereum_rpc is None:
+ optimus_config.ethereum_rpc = input("Please enter an Ethereum RPC URL: ")
+
+ if optimus_config.optimism_rpc is None:
+ optimus_config.optimism_rpc = input("Please enter an Optimism RPC URL: ")
+
+ if optimus_config.base_rpc is None:
+ optimus_config.base_rpc = input("Please enter a Base RPC URL: ")
+
+ if optimus_config.tenderly_api_key is None:
+ optimus_config.tenderly_api_key = input(
+ "Please enter your Tenderly API Key. Get one at https://dashboard.tenderly.co/: "
+ )
+
+ return optimus_config
+
+
+def get_service_template(config: OptimusConfig) -> ServiceTemplate:
+ """Get the service template"""
+ return ServiceTemplate({
+ "name": "Optimus",
+ "hash": "bafybeihjiabgn2wzlrnwdij7lbg6tqvhe62mdycefdmsy2udiyxqtc3rsy",
+ "description": "Optimus",
+ "image": "https://operate.olas.network/_next/image?url=%2Fimages%2Fprediction-agent.png&w=3840&q=75",
+ "service_version": 'v0.18.1',
+ "home_chain_id": "10",
+ "configurations": {
+ "1": ConfigurationTemplate(
+ {
+ "staking_program_id": "pearl_alpha",
+ "rpc": config.ethereum_rpc,
+ "nft": "bafybeig64atqaladigoc3ds4arltdu63wkdrk3gesjfvnfdmz35amv7faq",
+ "cost_of_bond": COST_OF_BOND,
+ "threshold": 1,
+ "use_staking": False,
+ "fund_requirements": FundRequirementsTemplate(
+ {
+ "agent": SUGGESTED_TOP_UP_DEFAULT,
+ "safe": SUGGESTED_SAFE_TOP_UP_DEFAULT,
+ }
+ ),
+ }
+ ),
+ "10": ConfigurationTemplate(
+ {
+ "staking_program_id": "pearl_alpha",
+ "rpc": config.optimism_rpc,
+ "nft": "bafybeig64atqaladigoc3ds4arltdu63wkdrk3gesjfvnfdmz35amv7faq",
+ "cost_of_bond": COST_OF_BOND,
+ "threshold": 1,
+ "use_staking": False,
+ "fund_requirements": FundRequirementsTemplate(
+ {
+ "agent": SUGGESTED_TOP_UP_DEFAULT,
+ "safe": SUGGESTED_SAFE_TOP_UP_DEFAULT,
+ }
+ ),
+ }
+ ),
+ "8453": ConfigurationTemplate(
+ {
+ "staking_program_id": "pearl_alpha",
+ "rpc": config.base_rpc,
+ "nft": "bafybeig64atqaladigoc3ds4arltdu63wkdrk3gesjfvnfdmz35amv7faq",
+ "cost_of_bond": COST_OF_BOND,
+ "threshold": 1,
+ "use_staking": False,
+ "fund_requirements": FundRequirementsTemplate(
+ {
+ "agent": SUGGESTED_TOP_UP_DEFAULT,
+ "safe": SUGGESTED_SAFE_TOP_UP_DEFAULT,
+ }
+ ),
+ }
+ ),
+ },
+})
+
+
+def main() -> None:
+ """Run service."""
+
+ print_title("Optimus Quickstart")
+ print("This script will assist you in setting up and running the Optimus service.")
+ print()
+
+ print_section("Set up local user account")
+ operate = OperateApp(
+ home=OPERATE_HOME,
+ )
+ operate.setup()
+
+ optimus_config = get_local_config()
+ template = get_service_template(optimus_config)
+
+ if operate.user_account is None:
+ print("Creating a new local user account...")
+ password = "12345"
+ UserAccount.new(
+ password=password,
+ path=operate._path / "user.json",
+ )
+ else:
+ password = "12345"
+ # password = getpass.getpass("Enter local user account password: ")
+ if not operate.user_account.is_valid(password=password):
+ print("Invalid password!")
+ sys.exit(1)
+
+ operate.password = password
+ if not operate.wallet_manager.exists(ledger_type=LedgerType.ETHEREUM):
+ print("Creating the main wallet...")
+ wallet, mnemonic = operate.wallet_manager.create(ledger_type=LedgerType.ETHEREUM)
+ wallet.password = password
+ print()
+ print_box(f"Please save the mnemonic phrase for the main wallet:\n{', '.join(mnemonic)}", 0, '-')
+ input("Press enter to continue...")
+ else:
+ wallet = operate.wallet_manager.load(ledger_type=LedgerType.ETHEREUM)
+
+ manager = operate.service_manager()
+ service = manager.load_or_create(
+ hash=template["hash"],
+ service_template=template,
+ )
+
+ for chain_id, configuration in service.chain_configs.items():
+ chain_config = service.chain_configs[chain_id]
+ chain_type = chain_config.ledger_config.chain
+ ledger_api = wallet.ledger_api(
+ chain_type=chain_type,
+ rpc=chain_config.ledger_config.rpc,
+ )
+
+ print(f"[Chain {chain_id}] Main wallet balance: {wei_to_token(ledger_api.get_balance(wallet.crypto.address))}")
+ spinner = Halo(
+ text=f"Please make sure main wallet {wallet.crypto.address} has at least {wei_to_token(MASTER_WALLET_MIMIMUM_BALANCE)}.",
+ spinner="dots"
+ )
+ spinner.start()
+
+ while ledger_api.get_balance(wallet.crypto.address) < MASTER_WALLET_MIMIMUM_BALANCE:
+ time.sleep(1)
+
+ spinner.succeed(f"Main wallet updated balance: {wei_to_token(ledger_api.get_balance(wallet.crypto.address))}.")
+ print()
+
+ if wallet.safes.get(chain_type) is not None:
+ print("Safe already exists")
+ else:
+ print("Creating Safe")
+ ledger_type = LedgerType.ETHEREUM
+ wallet_manager = operate.wallet_manager
+ wallet = wallet_manager.load(ledger_type=ledger_type)
+
+ wallet.create_safe( # pylint: disable=no-member
+ chain_type=chain_type,
+ rpc=chain_config.ledger_config.rpc,
+ )
+ print("Funding Safe")
+ wallet.transfer(
+ to=t.cast(str, wallet.safes[chain_type]),
+ amount=int(MASTER_WALLET_MIMIMUM_BALANCE),
+ chain_type=chain_type,
+ from_safe=False,
+ rpc=chain_config.ledger_config.rpc,
+ )
+
+ print_section("Set up the service in the Olas Protocol")
+
+ address = wallet.safes[chain_type]
+ print(f"Safe balance: {wei_to_token(ledger_api.get_balance(address))}")
+ spinner = Halo(
+ text=f"Please make sure address {address} has at least {wei_to_token(MASTER_WALLET_MIMIMUM_BALANCE)}.",
+ spinner="dots",
+ )
+ spinner.start()
+
+ while ledger_api.get_balance(address) < MASTER_WALLET_MIMIMUM_BALANCE:
+ time.sleep(1)
+
+ spinner.succeed(f"Safe updated balance: {wei_to_token(ledger_api.get_balance(address))}.")
+
+ manager.deploy_service_onchain_from_safe_single_chain(hash=service.hash, chain_id=chain_id)
+ manager.fund_service(hash=service.hash, chain_id=chain_id)
+
+ home_chain_id = service.home_chain_id
+ manager.deploy_service_locally(hash=service.hash, chain_id=chain_id, use_docker=True)
+
+ print()
+ print_section("Run the service")
+
+
+if __name__ == "__main__":
+ main()
diff --git a/run_service.sh b/run_service.sh
new file mode 100644
index 000000000..2c23a9c9f
--- /dev/null
+++ b/run_service.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+# ------------------------------------------------------------------------------
+#
+# Copyright 2024 Valory AG
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# ------------------------------------------------------------------------------
+
+if [ "$(git rev-parse --is-inside-work-tree)" = true ]
+then
+ poetry install
+ poetry run python quickstart/run_service.py
+else
+ echo "$directory is not a git repo!"
+ exit 1
+fi
diff --git a/templates/superfest.yaml b/templates/superfest.yaml
new file mode 100644
index 000000000..7425b0042
--- /dev/null
+++ b/templates/superfest.yaml
@@ -0,0 +1,18 @@
+name: "Superfest Agent"
+description: "A single-agent service (sovereign agent) placing bets on Omen"
+hash: bafybeiegxvr7uzl6srgq7x36escs4jrc35cnk73ky23egfgkarp7hz6x4u
+image: https://operate.olas.network/_next/image?url=%2Fimages%2Fprediction-agent.png&w=3840&q=75
+service_version: v0.18.1
+home_chain_id: 10
+configurations:
+ 100:
+ staking_program_id: pearl_beta
+ nft: bafybeig64atqaladigoc3ds4arltdu63wkdrk3gesjfvnfdmz35amv7faq
+ rpc: http://localhost:8545 # User provided
+ threshold: 1 # TODO: Move to service component
+ use_staking: false # User provided
+ cost_of_bond: 10000000000000000
+ monthly_gas_estimate: 10000000000000000000 # TODO: Where is this used
+ fund_requirements:
+ agent: 100000000000000000
+ safe: 5000000000000000000
diff --git a/templates/trader.yaml b/templates/trader.yaml
index 63a87f47c..ed0b8679d 100644
--- a/templates/trader.yaml
+++ b/templates/trader.yaml
@@ -1,18 +1,18 @@
name: "Trader Agent"
description: "A single-agent service (sovereign agent) placing bets on Omen"
-hash: bafybeidgjgjj5ul6xkubicbemppufgsbx5sr5rwhtrwttk2oivp5bkdnce
+hash: bafybeicrstlxew36hlxl7pzi73nmd44aibnhwxzkchzlec6t6yhvs7gvhy
image: https://operate.olas.network/_next/image?url=%2Fimages%2Fprediction-agent.png&w=3840&q=75
-trader_version: v0.18.1
-configuration:
- nft: bafybeig64atqaladigoc3ds4arltdu63wkdrk3gesjfvnfdmz35amv7faq
- rpc: http://localhost:8545 # User provided
- agent_id: 14
- threshold: 1 # TODO: Move to service component
- use_staking: false # User provided
- cost_of_bond: 10000000000000000
- olas_cost_of_bond: 10000000000000000000
- olas_required_to_stake: 10000000000000000000
- monthly_gas_estimate: 10000000000000000000
- fund_requirements:
- agent: 100000000000000000
- safe: 5000000000000000000
+service_version: v0.18.1
+home_chain_id: 100
+configurations:
+ 100:
+ staking_program_id: pearl_beta
+ nft: bafybeig64atqaladigoc3ds4arltdu63wkdrk3gesjfvnfdmz35amv7faq
+ rpc: http://localhost:8545 # User provided
+ threshold: 1 # TODO: Move to service component
+ use_staking: false # User provided
+ cost_of_bond: 10000000000000000
+ monthly_gas_estimate: 10000000000000000000 # TODO: Where is this used
+ fund_requirements:
+ agent: 100000000000000000
+ safe: 5000000000000000000
diff --git a/yarn.lock b/yarn.lock
index 0d084c194..146feb635 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1347,7 +1347,7 @@ ajv@^6.10.0, ajv@^6.12.0, ajv@^6.12.4:
json-schema-traverse "^0.4.1"
uri-js "^4.2.2"
-ajv@^8.0.0, ajv@^8.12.0:
+ajv@^8.0.0:
version "8.16.0"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.16.0.tgz#22e2a92b94f005f7e0f9c9d39652ef0b8f6f0cb4"
integrity sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==
@@ -1357,6 +1357,16 @@ ajv@^8.0.0, ajv@^8.12.0:
require-from-string "^2.0.2"
uri-js "^4.4.1"
+ajv@^8.6.3:
+ version "8.17.1"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6"
+ integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==
+ dependencies:
+ fast-deep-equal "^3.1.3"
+ fast-uri "^3.0.1"
+ json-schema-traverse "^1.0.0"
+ require-from-string "^2.0.2"
+
ansi-colors@^4.1.1, ansi-colors@^4.1.3:
version "4.1.3"
resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b"
@@ -1538,13 +1548,10 @@ at-least-node@^1.0.0:
resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"
integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
-atomically@^2.0.2:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/atomically/-/atomically-2.0.3.tgz#27e47bbe39994d324918491ba7c0edb7783e56cb"
- integrity sha512-kU6FmrwZ3Lx7/7y3hPS5QnbJfaohcIul5fGqf7ok+4KklIEk9tJ0C2IQPdacSbVUWv6zVHXEBWoWd6NrVMT7Cw==
- dependencies:
- stubborn-fs "^1.2.5"
- when-exit "^2.1.1"
+atomically@^1.7.0:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/atomically/-/atomically-1.7.0.tgz#c07a0458432ea6dbc9a3506fffa424b48bccaafe"
+ integrity sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==
axios@^1.7.2:
version "1.7.2"
@@ -2024,20 +2031,21 @@ concat-map@0.0.1:
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
-conf@^12.0.0:
- version "12.0.0"
- resolved "https://registry.yarnpkg.com/conf/-/conf-12.0.0.tgz#de7a5f091114a28bc52aa5eecc920f4710d60d7f"
- integrity sha512-fIWyWUXrJ45cHCIQX+Ck1hrZDIf/9DR0P0Zewn3uNht28hbt5OfGUq8rRWsxi96pZWPyBEd0eY9ama01JTaknA==
+conf@^10.2.0:
+ version "10.2.0"
+ resolved "https://registry.yarnpkg.com/conf/-/conf-10.2.0.tgz#838e757be963f1a2386dfe048a98f8f69f7b55d6"
+ integrity sha512-8fLl9F04EJqjSqH+QjITQfJF8BrOVaYr1jewVgSRAEWePfxT0sku4w2hrGQ60BC/TNLGQ2pgxNlTbWQmMPFvXg==
dependencies:
- ajv "^8.12.0"
+ ajv "^8.6.3"
ajv-formats "^2.1.1"
- atomically "^2.0.2"
- debounce-fn "^5.1.2"
- dot-prop "^8.0.2"
- env-paths "^3.0.0"
- json-schema-typed "^8.0.1"
- semver "^7.5.4"
- uint8array-extras "^0.3.0"
+ atomically "^1.7.0"
+ debounce-fn "^4.0.0"
+ dot-prop "^6.0.1"
+ env-paths "^2.2.1"
+ json-schema-typed "^7.0.3"
+ onetime "^5.1.2"
+ pkg-up "^3.1.0"
+ semver "^7.3.5"
config-file-ts@^0.2.4:
version "0.2.6"
@@ -2139,12 +2147,12 @@ dayjs@^1.11.11:
resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.11.tgz#dfe0e9d54c5f8b68ccf8ca5f72ac603e7e5ed59e"
integrity sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==
-debounce-fn@^5.1.2:
- version "5.1.2"
- resolved "https://registry.yarnpkg.com/debounce-fn/-/debounce-fn-5.1.2.tgz#c77bc447ef36828ecdd066df7de23f475e0a6281"
- integrity sha512-Sr4SdOZ4vw6eQDvPYNxHogvrxmCIld/VenC5JbNrFwMiwd7lY/Z18ZFfo+EWNG4DD9nFlAujWAo/wGuOPHmy5A==
+debounce-fn@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/debounce-fn/-/debounce-fn-4.0.0.tgz#ed76d206d8a50e60de0dd66d494d82835ffe61c7"
+ integrity sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==
dependencies:
- mimic-fn "^4.0.0"
+ mimic-fn "^3.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, debug@^4.3.5:
version "4.3.5"
@@ -2256,12 +2264,12 @@ doctrine@^3.0.0:
dependencies:
esutils "^2.0.2"
-dot-prop@^8.0.2:
- version "8.0.2"
- resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-8.0.2.tgz#afda6866610684dd155a96538f8efcdf78a27f18"
- integrity sha512-xaBe6ZT4DHPkg0k4Ytbvn5xoxgpG0jOS1dYxSOwAHPuNLjP3/OzN0gH55SrLqpx8cBfSaVt91lXYkApjb+nYdQ==
+dot-prop@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083"
+ integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==
dependencies:
- type-fest "^3.8.0"
+ is-obj "^2.0.0"
dotenv-cli@^7.4.2:
version "7.4.2"
@@ -2345,13 +2353,13 @@ electron-publish@24.13.1:
lazy-val "^1.0.5"
mime "^2.5.2"
-electron-store@^9.0.0:
- version "9.0.0"
- resolved "https://registry.yarnpkg.com/electron-store/-/electron-store-9.0.0.tgz#7ce8209c5ae31877ee5fbced6c6cb538c746ca8c"
- integrity sha512-7LZ2dR3N3bF93G2c4x+1NZ/8fpsKv6bKrMxeOQWLqdRbxvopxVqy9QXQy9axSV2O3P1kVGTj1q2wq5/W4isiOg==
+electron-store@8.2.0:
+ version "8.2.0"
+ resolved "https://registry.yarnpkg.com/electron-store/-/electron-store-8.2.0.tgz#114e6e453e8bb746ab4ccb542424d8c881ad2ca1"
+ integrity sha512-ukLL5Bevdil6oieAOXz3CMy+OgaItMiVBg701MNlG6W5RaC0AHN7rvlqTCmeb6O7jP0Qa1KKYTE0xV0xbhF4Hw==
dependencies:
- conf "^12.0.0"
- type-fest "^4.18.1"
+ conf "^10.2.0"
+ type-fest "^2.17.0"
electron-updater@^6.1.8:
version "6.2.1"
@@ -2432,16 +2440,11 @@ enquirer@^2.3.0:
ansi-colors "^4.1.1"
strip-ansi "^6.0.1"
-env-paths@^2.2.0:
+env-paths@^2.2.0, env-paths@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2"
integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==
-env-paths@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-3.0.0.tgz#2f1e89c2f6dbd3408e1b1711dd82d62e317f58da"
- integrity sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==
-
err-code@^2.0.2:
version "2.0.3"
resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9"
@@ -2742,6 +2745,11 @@ fast-levenshtein@^2.0.6:
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
+fast-uri@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.1.tgz#cddd2eecfc83a71c1be2cc2ef2061331be8a7134"
+ integrity sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==
+
fastq@^1.6.0:
version "1.17.1"
resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47"
@@ -2789,6 +2797,13 @@ find-up@^2.1.0:
dependencies:
locate-path "^2.0.0"
+find-up@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
+ integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==
+ dependencies:
+ locate-path "^3.0.0"
+
find-up@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
@@ -3371,6 +3386,11 @@ is-number@^7.0.0:
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.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982"
+ integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==
+
is-path-inside@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
@@ -3462,10 +3482,10 @@ json-schema-traverse@^1.0.0:
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2"
integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
-json-schema-typed@^8.0.1:
- version "8.0.1"
- resolved "https://registry.yarnpkg.com/json-schema-typed/-/json-schema-typed-8.0.1.tgz#826ee39e3b6cef536f85412ff048d3ff6f19dfa0"
- integrity sha512-XQmWYj2Sm4kn4WeTYvmpKEbyPsL7nBsb647c7pMe6l02/yx2+Jfc4dT6UZkEXnIUb5LhD55r2HPsJ1milQ4rDg==
+json-schema-typed@^7.0.3:
+ version "7.0.3"
+ resolved "https://registry.yarnpkg.com/json-schema-typed/-/json-schema-typed-7.0.3.tgz#23ff481b8b4eebcd2ca123b4fa0409e66469a2d9"
+ integrity sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A==
json-stable-stringify-without-jsonify@^1.0.1:
version "1.0.1"
@@ -3583,6 +3603,14 @@ locate-path@^2.0.0:
p-locate "^2.0.0"
path-exists "^3.0.0"
+locate-path@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e"
+ integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==
+ dependencies:
+ p-locate "^3.0.0"
+ path-exists "^3.0.0"
+
locate-path@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
@@ -3728,10 +3756,15 @@ mime@^2.5.2:
resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367"
integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==
-mimic-fn@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc"
- integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==
+mimic-fn@^2.1.0:
+ version "2.1.0"
+ 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.yarnpkg.com/mimic-fn/-/mimic-fn-3.1.0.tgz#65755145bbf3e36954b949c16450427451d5ca74"
+ integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==
mimic-response@^1.0.0:
version "1.0.1"
@@ -3949,6 +3982,13 @@ one-time@^1.0.0:
dependencies:
fn.name "1.x.x"
+onetime@^5.1.2:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
+ integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
+ dependencies:
+ mimic-fn "^2.1.0"
+
optionator@^0.9.3:
version "0.9.4"
resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734"
@@ -3978,6 +4018,13 @@ p-limit@^1.1.0:
dependencies:
p-try "^1.0.0"
+p-limit@^2.0.0:
+ version "2.3.0"
+ 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-limit@^3.0.2:
version "3.1.0"
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
@@ -3992,6 +4039,13 @@ p-locate@^2.0.0:
dependencies:
p-limit "^1.1.0"
+p-locate@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4"
+ integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==
+ dependencies:
+ p-limit "^2.0.0"
+
p-locate@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
@@ -4011,6 +4065,11 @@ p-try@^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.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
+ integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
+
package-json-from-dist@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz#e501cd3094b278495eb4258d4c9f6d5ac3019f00"
@@ -4089,6 +4148,13 @@ picomatch@^2.0.4, picomatch@^2.2.1:
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
+pkg-up@^3.1.0:
+ version "3.1.0"
+ 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.4, plist@^3.0.5:
version "3.1.0"
resolved "https://registry.yarnpkg.com/plist/-/plist-3.1.0.tgz#797a516a93e62f5bde55e0b9cc9c967f860893c9"
@@ -4800,11 +4866,16 @@ semver@^6.2.0, semver@^6.3.0:
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
-semver@^7.3.2, semver@^7.3.8, semver@^7.5.3, semver@^7.5.4:
+semver@^7.3.2, semver@^7.3.8, semver@^7.5.3:
version "7.6.2"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13"
integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==
+semver@^7.3.5:
+ version "7.6.3"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143"
+ integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==
+
serialize-error@^7.0.1:
version "7.0.1"
resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-7.0.1.tgz#f1360b0447f61ffb483ec4157c737fab7d778e18"
@@ -4971,7 +5042,16 @@ string-convert@^0.2.0:
resolved "https://registry.yarnpkg.com/string-convert/-/string-convert-0.2.1.tgz#6982cc3049fbb4cd85f8b24568b9d9bf39eeff97"
integrity sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==
-"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
+"string-width-cjs@npm:string-width@^4.2.0":
+ version "4.2.3"
+ 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@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
version "4.2.3"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
@@ -4996,7 +5076,14 @@ string_decoder@^1.1.1:
dependencies:
safe-buffer "~5.2.0"
-"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1:
+"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
+ version "6.0.1"
+ 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-ansi@^6.0.0, strip-ansi@^6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
@@ -5022,11 +5109,6 @@ strip-json-comments@^3.1.1:
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
-stubborn-fs@^1.2.5:
- version "1.2.5"
- resolved "https://registry.yarnpkg.com/stubborn-fs/-/stubborn-fs-1.2.5.tgz#e5e244223166921ddf66ed5e062b6b3bf285bfd2"
- integrity sha512-H2N9c26eXjzL/S/K+i/RHHcFanE74dptvvjM8iwzwbVcWY/zjBbgRqF3K0DY4+OD+uTTASTBvDoxPDaPN02D7g==
-
styled-components@^6.1.8:
version "6.1.11"
resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-6.1.11.tgz#01948e5195bf1d39e57e0a85b41958c80e40cfb8"
@@ -5245,26 +5327,16 @@ type-fest@^0.7.1:
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.7.1.tgz#8dda65feaf03ed78f0a3f9678f1869147f7c5c48"
integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==
-type-fest@^3.8.0:
- version "3.13.1"
- resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-3.13.1.tgz#bb744c1f0678bea7543a2d1ec24e83e68e8c8706"
- integrity sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==
-
-type-fest@^4.18.1:
- version "4.21.0"
- resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.21.0.tgz#2eec399d9bda4ac686286314d07c6675fef3fdd8"
- integrity sha512-ADn2w7hVPcK6w1I0uWnM//y1rLXZhzB9mr0a3OirzclKF1Wp6VzevUmzz/NRAWunOT6E8HrnpGY7xOfc6K57fA==
+type-fest@^2.17.0:
+ version "2.19.0"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b"
+ integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==
typescript@^5.3.3:
version "5.5.3"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.3.tgz#e1b0a3c394190838a0b168e771b0ad56a0af0faa"
integrity sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==
-uint8array-extras@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/uint8array-extras/-/uint8array-extras-0.3.0.tgz#4b5714e4bf15bb36ae7fd6faeef11aae34a0af59"
- integrity sha512-erJsJwQ0tKdwuqI0359U8ijkFmfiTcq25JvvzRVc1VP+2son1NJRXhxcAKJmAW3ajM8JSGAfsAXye8g4s+znxA==
-
undici-types@~5.26.4:
version "5.26.5"
resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617"
@@ -5330,11 +5402,6 @@ verror@^1.10.0:
core-util-is "1.0.2"
extsprintf "^1.2.0"
-when-exit@^2.1.1:
- version "2.1.3"
- resolved "https://registry.yarnpkg.com/when-exit/-/when-exit-2.1.3.tgz#5831cdbed8ad4984645da98c4a00d4ee3a3757e7"
- integrity sha512-uVieSTccFIr/SFQdFWN/fFaQYmV37OKtuaGphMAzi4DmmUlrvRBJW5WSLkHyjNQY/ePJMz3LoiX9R3yy1Su6Hw==
-
which@^2.0.1:
version "2.0.2"
resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
@@ -5378,7 +5445,16 @@ workerpool@^6.5.1:
resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.5.1.tgz#060f73b39d0caf97c6db64da004cd01b4c099544"
integrity sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==
-"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0:
+"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
+ version "7.0.0"
+ 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"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
+
+wrap-ansi@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==