diff --git a/.browserslistrc b/.browserslistrc
new file mode 100644
index 00000000..427441dc
--- /dev/null
+++ b/.browserslistrc
@@ -0,0 +1,17 @@
+# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.
+# For additional information regarding the format and rule options, please see:
+# https://github.com/browserslist/browserslist#queries
+
+# For the full list of supported browsers by the Angular framework, please see:
+# https://angular.io/guide/browser-support
+
+# You can see what browsers were selected by your queries by running:
+# npx browserslist
+
+last 1 Chrome version
+last 1 Firefox version
+last 2 Edge major versions
+last 2 Safari major versions
+last 2 iOS major versions
+Firefox ESR
+not IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line.
diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 00000000..59d9a3a3
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,16 @@
+# Editor configuration, see https://editorconfig.org
+root = true
+
+[*]
+charset = utf-8
+indent_style = space
+indent_size = 2
+insert_final_newline = true
+trim_trailing_whitespace = true
+
+[*.ts]
+quote_type = single
+
+[*.md]
+max_line_length = off
+trim_trailing_whitespace = false
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
index 00000000..42da9d3f
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1,34 @@
+_cli-tpl/
+dist/
+coverage/
+
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
+# Dependency directories
+node_modules/
+
+# TypeScript cache
+*.tsbuildinfo
+
+# Optional npm cache directory
+.npm
+
+# Optional eslint cache
+.eslintcache
+
+# Yarn Integrity file
+.yarn-integrity
+
+# dotenv environment variables file
+.env
+.env.test
+
+.cache/
+
+# yarn v2
+.yarn
diff --git a/.eslintrc.js b/.eslintrc.js
new file mode 100644
index 00000000..78aaeb78
--- /dev/null
+++ b/.eslintrc.js
@@ -0,0 +1,126 @@
+const prettierConfig = require('./.prettierrc.js');
+
+module.exports = {
+ root: true,
+ parserOptions: { ecmaVersion: 2021 },
+ overrides: [
+ {
+ files: ['*.ts'],
+ parser: '@typescript-eslint/parser',
+ parserOptions: {
+ tsconfigRootDir: __dirname,
+ project: ['tsconfig.json'],
+ createDefaultProgram: true
+ },
+ plugins: ['@typescript-eslint', 'jsdoc', 'import'],
+ extends: [
+ 'plugin:@angular-eslint/recommended',
+ 'plugin:@angular-eslint/template/process-inline-templates',
+ 'plugin:prettier/recommended'
+ ],
+ rules: {
+ 'prettier/prettier': ['error', prettierConfig],
+ 'jsdoc/newline-after-description': 1,
+ '@angular-eslint/component-class-suffix': [
+ 'error',
+ {
+ suffixes: ['Directive', 'Component', 'Base', 'Widget']
+ }
+ ],
+ '@angular-eslint/directive-class-suffix': [
+ 'error',
+ {
+ suffixes: ['Directive', 'Component', 'Base', 'Widget']
+ }
+ ],
+ '@angular-eslint/component-selector': [
+ 'off',
+ {
+ type: ['element', 'attribute'],
+ prefix: ['app', 'test'],
+ style: 'kebab-case'
+ }
+ ],
+ '@angular-eslint/directive-selector': [
+ 'off',
+ {
+ type: 'attribute',
+ prefix: ['app']
+ }
+ ],
+ '@angular-eslint/no-attribute-decorator': 'error',
+ '@angular-eslint/no-conflicting-lifecycle': 'off',
+ '@angular-eslint/no-forward-ref': 'off',
+ '@angular-eslint/no-host-metadata-property': 'off',
+ '@angular-eslint/no-lifecycle-call': 'off',
+ '@angular-eslint/no-pipe-impure': 'error',
+ '@angular-eslint/prefer-output-readonly': 'error',
+ '@angular-eslint/use-component-selector': 'off',
+ '@angular-eslint/use-component-view-encapsulation': 'off',
+ '@angular-eslint/no-input-rename': 'off',
+ '@angular-eslint/no-output-native': 'off',
+ '@typescript-eslint/array-type': [
+ 'error',
+ {
+ default: 'array-simple'
+ }
+ ],
+ '@typescript-eslint/ban-types': [
+ 'off',
+ {
+ types: {
+ String: {
+ message: 'Use string instead.'
+ },
+ Number: {
+ message: 'Use number instead.'
+ },
+ Boolean: {
+ message: 'Use boolean instead.'
+ },
+ Function: {
+ message: 'Use specific callable interface instead.'
+ }
+ }
+ }
+ ],
+ 'import/no-duplicates': 'error',
+ 'import/no-unused-modules': 'error',
+ 'import/no-unassigned-import': 'error',
+ 'import/order': [
+ 'error',
+ {
+ alphabetize: { order: 'asc', caseInsensitive: false },
+ 'newlines-between': 'always',
+ groups: ['external', 'internal', ['parent', 'sibling', 'index']],
+ pathGroups: [],
+ pathGroupsExcludedImportTypes: []
+ }
+ ],
+ '@typescript-eslint/no-this-alias': 'error',
+ '@typescript-eslint/member-ordering': 'off',
+ 'no-irregular-whitespace': 'error',
+ 'no-multiple-empty-lines': 'error',
+ 'no-sparse-arrays': 'error',
+ 'prefer-object-spread': 'error',
+ 'prefer-template': 'error',
+ 'prefer-const': 'off',
+ 'max-len': 'off'
+ }
+ },
+ {
+ files: ['*.html'],
+ extends: ['plugin:@angular-eslint/template/recommended'],
+ rules: {}
+ },
+ {
+ files: ['*.html'],
+ excludedFiles: ['*inline-template-*.component.html'],
+ extends: ['plugin:prettier/recommended'],
+ rules: {
+ 'prettier/prettier': ['error', { parser: 'angular' }],
+ '@angular-eslint/template/eqeqeq': 'off'
+ }
+ }
+ ]
+};
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 00000000..7b70918a
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,49 @@
+# See http://help.github.com/ignore-files/ for more about ignoring files.
+
+# compiled output
+/dist
+/tmp
+/out-tsc
+# /src/assets/color.less
+delon-builds
+scripts/var.less
+# src/assets/style.dark.css
+# src/assets/style.compact.css
+
+# dependencies
+/node_modules
+/yarn.lock
+
+# IDEs and editors
+/.idea
+.project
+.classpath
+.c9/
+*.launch
+.settings/
+*.sublime-workspace
+
+# IDE - VSCode
+.vscode/*
+!.vscode/settings.json
+!.vscode/tasks.json
+!.vscode/launch.json
+!.vscode/extensions.json
+
+# misc
+/.sass-cache
+/connect.lock
+/coverage
+/libpeerconnection.log
+npm-debug.log
+testem.log
+/typings
+yarn-error.log
+/_all.less
+
+# e2e
+/e2e/*.map
+
+# System Files
+.DS_Store
+Thumbs.db
diff --git a/.npmignore b/.npmignore
new file mode 100644
index 00000000..3e1f42ec
--- /dev/null
+++ b/.npmignore
@@ -0,0 +1,5 @@
+.github
+node_modules
+
+dist
+tmp
diff --git a/.nvmrc b/.nvmrc
new file mode 100644
index 00000000..5c088ddb
--- /dev/null
+++ b/.nvmrc
@@ -0,0 +1 @@
+12.14.1
diff --git a/.prettierignore b/.prettierignore
new file mode 100644
index 00000000..d250447c
--- /dev/null
+++ b/.prettierignore
@@ -0,0 +1,18 @@
+# add files you wish to ignore here
+**/*.md
+**/*.svg
+**/test.ts
+
+.stylelintrc
+.prettierrc
+
+src/assets/*
+src/index.html
+node_modules/
+.vscode/
+coverage/
+dist/
+package.json
+tslint.json
+
+_cli-tpl/**/*
diff --git a/.prettierrc.js b/.prettierrc.js
new file mode 100644
index 00000000..26ba9009
--- /dev/null
+++ b/.prettierrc.js
@@ -0,0 +1,13 @@
+module.exports = {
+ singleQuote: true,
+ useTabs: false,
+ printWidth: 140,
+ tabWidth: 2,
+ semi: true,
+ htmlWhitespaceSensitivity: 'strict',
+ arrowParens: 'avoid',
+ bracketSpacing: true,
+ proseWrap: 'preserve',
+ trailingComma: 'none',
+ endOfLine: 'lf'
+};
diff --git a/.stylelintrc b/.stylelintrc
new file mode 100644
index 00000000..86e9c6a3
--- /dev/null
+++ b/.stylelintrc
@@ -0,0 +1,28 @@
+{
+ "extends": [
+ "stylelint-config-standard",
+ "stylelint-config-rational-order",
+ "stylelint-config-prettier"
+ ],
+ "plugins": [
+ "stylelint-order",
+ "stylelint-declaration-block-no-ignored-properties"
+ ],
+ "rules": {
+ "no-descending-specificity": null,
+ "plugin/declaration-block-no-ignored-properties": true,
+ "selector-type-no-unknown": null,
+ "selector-pseudo-element-no-unknown": [
+ true,
+ {
+ "ignorePseudoElements": [
+ "ng-deep"
+ ]
+ }
+ ],
+ "at-rule-no-unknown": null
+ },
+ "ignoreFiles": [
+ "src/assets/**/*"
+ ]
+}
diff --git a/_cli-tpl/README.md b/_cli-tpl/README.md
new file mode 100644
index 00000000..409ebc52
--- /dev/null
+++ b/_cli-tpl/README.md
@@ -0,0 +1 @@
+[Document](https://ng-alain.com/cli/generate#Custom-template-page)
diff --git a/_cli-tpl/grid/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html b/_cli-tpl/grid/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html
new file mode 100644
index 00000000..8a7009bc
--- /dev/null
+++ b/_cli-tpl/grid/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/_cli-tpl/grid/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.spec.ts b/_cli-tpl/grid/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.spec.ts
new file mode 100644
index 00000000..5b408fb6
--- /dev/null
+++ b/_cli-tpl/grid/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.spec.ts
@@ -0,0 +1,24 @@
+import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing';
+import { <%= componentName %> } from './<%= dasherize(name) %>.component';
+
+describe('<%= componentName %>', () => {
+ let component: <%= componentName %>;
+ let fixture: ComponentFixture<<%= componentName %>>;
+
+ beforeEach(waitForAsync(() => {
+ TestBed.configureTestingModule({
+ declarations: [ <%= componentName %> ]
+ })
+ .compileComponents();
+ }));
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(<%= componentName %>);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/_cli-tpl/grid/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts b/_cli-tpl/grid/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts
new file mode 100644
index 00000000..b9cf8f2b
--- /dev/null
+++ b/_cli-tpl/grid/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts
@@ -0,0 +1,18 @@
+import { Component, OnInit<% if(!!viewEncapsulation) { %>, ViewEncapsulation<% }%><% if(changeDetection !== 'Default') { %>, ChangeDetectionStrategy<% }%> } from '@angular/core';
+import { _HttpClient } from '@delon/theme';
+import { NzMessageService } from 'ng-zorro-antd/message';
+
+@Component({
+ selector: '<%= selector %>',
+ templateUrl: './<%= dasherize(name) %>.component.html',<% if(!inlineStyle) { %><% } else { %>
+ styleUrls: ['./<%= dasherize(name) %>.component.<%= styleext %>']<% } %><% if(!!viewEncapsulation) { %>,
+ encapsulation: ViewEncapsulation.<%= viewEncapsulation %><% } if (changeDetection !== 'Default') { %>,
+ changeDetection: ChangeDetectionStrategy.<%= changeDetection %><% } %>
+})
+export class <%= componentName %> implements OnInit {
+
+ constructor(private http: _HttpClient, private msg: NzMessageService) { }
+
+ ngOnInit() { }
+
+}
diff --git a/_cli-tpl/list/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html b/_cli-tpl/list/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html
new file mode 100644
index 00000000..aef86ebd
--- /dev/null
+++ b/_cli-tpl/list/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html
@@ -0,0 +1,3 @@
+
+
+
diff --git a/_cli-tpl/list/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.spec.ts b/_cli-tpl/list/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.spec.ts
new file mode 100644
index 00000000..c7a520ca
--- /dev/null
+++ b/_cli-tpl/list/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.spec.ts
@@ -0,0 +1,24 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+import { <%= componentName %> } from './<%= dasherize(name) %>.component';
+
+describe('<%= componentName %>', () => {
+ let component: <%= componentName %>;
+ let fixture: ComponentFixture<<%= componentName %>>;
+
+ beforeEach(async(() => {
+ TestBed.configureTestingModule({
+ declarations: [ <%= componentName %> ]
+ })
+ .compileComponents();
+ }));
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(<%= componentName %>);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/_cli-tpl/list/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts b/_cli-tpl/list/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts
new file mode 100644
index 00000000..b9cf8f2b
--- /dev/null
+++ b/_cli-tpl/list/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts
@@ -0,0 +1,18 @@
+import { Component, OnInit<% if(!!viewEncapsulation) { %>, ViewEncapsulation<% }%><% if(changeDetection !== 'Default') { %>, ChangeDetectionStrategy<% }%> } from '@angular/core';
+import { _HttpClient } from '@delon/theme';
+import { NzMessageService } from 'ng-zorro-antd/message';
+
+@Component({
+ selector: '<%= selector %>',
+ templateUrl: './<%= dasherize(name) %>.component.html',<% if(!inlineStyle) { %><% } else { %>
+ styleUrls: ['./<%= dasherize(name) %>.component.<%= styleext %>']<% } %><% if(!!viewEncapsulation) { %>,
+ encapsulation: ViewEncapsulation.<%= viewEncapsulation %><% } if (changeDetection !== 'Default') { %>,
+ changeDetection: ChangeDetectionStrategy.<%= changeDetection %><% } %>
+})
+export class <%= componentName %> implements OnInit {
+
+ constructor(private http: _HttpClient, private msg: NzMessageService) { }
+
+ ngOnInit() { }
+
+}
diff --git a/_cli-tpl/test/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html.template b/_cli-tpl/test/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html.template
new file mode 100644
index 00000000..3f210156
--- /dev/null
+++ b/_cli-tpl/test/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html.template
@@ -0,0 +1 @@
+
diff --git a/_cli-tpl/test/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.spec.ts.template b/_cli-tpl/test/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.spec.ts.template
new file mode 100644
index 00000000..c7a520ca
--- /dev/null
+++ b/_cli-tpl/test/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.spec.ts.template
@@ -0,0 +1,24 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+import { <%= componentName %> } from './<%= dasherize(name) %>.component';
+
+describe('<%= componentName %>', () => {
+ let component: <%= componentName %>;
+ let fixture: ComponentFixture<<%= componentName %>>;
+
+ beforeEach(async(() => {
+ TestBed.configureTestingModule({
+ declarations: [ <%= componentName %> ]
+ })
+ .compileComponents();
+ }));
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(<%= componentName %>);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/_cli-tpl/test/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts.template b/_cli-tpl/test/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts.template
new file mode 100644
index 00000000..b9cf8f2b
--- /dev/null
+++ b/_cli-tpl/test/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts.template
@@ -0,0 +1,18 @@
+import { Component, OnInit<% if(!!viewEncapsulation) { %>, ViewEncapsulation<% }%><% if(changeDetection !== 'Default') { %>, ChangeDetectionStrategy<% }%> } from '@angular/core';
+import { _HttpClient } from '@delon/theme';
+import { NzMessageService } from 'ng-zorro-antd/message';
+
+@Component({
+ selector: '<%= selector %>',
+ templateUrl: './<%= dasherize(name) %>.component.html',<% if(!inlineStyle) { %><% } else { %>
+ styleUrls: ['./<%= dasherize(name) %>.component.<%= styleext %>']<% } %><% if(!!viewEncapsulation) { %>,
+ encapsulation: ViewEncapsulation.<%= viewEncapsulation %><% } if (changeDetection !== 'Default') { %>,
+ changeDetection: ChangeDetectionStrategy.<%= changeDetection %><% } %>
+})
+export class <%= componentName %> implements OnInit {
+
+ constructor(private http: _HttpClient, private msg: NzMessageService) { }
+
+ ngOnInit() { }
+
+}
diff --git a/_mock/README.md b/_mock/README.md
new file mode 100644
index 00000000..d30e74ab
--- /dev/null
+++ b/_mock/README.md
@@ -0,0 +1 @@
+[Document](https://ng-alain.com/mock)
diff --git a/_mock/_api.ts b/_mock/_api.ts
new file mode 100644
index 00000000..7448a9f1
--- /dev/null
+++ b/_mock/_api.ts
@@ -0,0 +1,265 @@
+import { MockRequest, MockStatusError } from '@delon/mock';
+
+// region: mock data
+
+const titles = ['Alipay', 'Angular', 'Ant Design', 'Ant Design Pro', 'Bootstrap', 'React', 'Vue', 'Webpack'];
+
+const avatars = [
+ 'https://gw.alipayobjects.com/zos/rmsportal/WdGqmHpayyMjiEhcKoVE.png', // Alipay
+ 'https://gw.alipayobjects.com/zos/rmsportal/zOsKZmFRdUtvpqCImOVY.png', // Angular
+ 'https://gw.alipayobjects.com/zos/rmsportal/dURIMkkrRFpPgTuzkwnB.png', // Ant Design
+ 'https://gw.alipayobjects.com/zos/rmsportal/sfjbOqnsXXJgNCjCzDBL.png', // Ant Design Pro
+ 'https://gw.alipayobjects.com/zos/rmsportal/siCrBXXhmvTQGWPNLBow.png', // Bootstrap
+ 'https://gw.alipayobjects.com/zos/rmsportal/kZzEzemZyKLKFsojXItE.png', // React
+ 'https://gw.alipayobjects.com/zos/rmsportal/ComBAopevLwENQdKWiIn.png', // Vue
+ 'https://gw.alipayobjects.com/zos/rmsportal/nxkuOJlFJuAUhzlMTCEe.png', // Webpack
+];
+const covers = [
+ 'https://gw.alipayobjects.com/zos/rmsportal/HrxcVbrKnCJOZvtzSqjN.png',
+ 'https://gw.alipayobjects.com/zos/rmsportal/alaPpKWajEbIYEUvvVNf.png',
+ 'https://gw.alipayobjects.com/zos/rmsportal/RLwlKSYGSXGHuWSojyvp.png',
+ 'https://gw.alipayobjects.com/zos/rmsportal/gLaIAoVWTtLbBWZNYEMg.png',
+];
+const desc = [
+ '那是一种内在的东西, 他们到达不了,也无法触及的',
+ '希望是一个好东西,也许是最好的,好东西是不会消亡的',
+ '生命就像一盒巧克力,结果往往出人意料',
+ '城镇中有那么多的酒馆,她却偏偏走进了我的酒馆',
+ '那时候我只会想自己想要什么,从不想自己拥有什么',
+];
+
+const user = ['卡色', 'cipchk', '付小小', '曲丽丽', '林东东', '周星星', '吴加好', '朱偏右', '鱼酱', '乐哥', '谭小仪', '仲尼'];
+
+// endregion
+
+function getFakeList(count: number = 20): any[] {
+ const list: any[] = [];
+ for (let i = 0; i < count; i += 1) {
+ list.push({
+ id: `fake-list-${i}`,
+ owner: user[i % 10],
+ title: titles[i % 8],
+ avatar: avatars[i % 8],
+ cover: parseInt((i / 4).toString(), 10) % 2 === 0 ? covers[i % 4] : covers[3 - (i % 4)],
+ status: ['active', 'exception', 'normal'][i % 3],
+ percent: Math.ceil(Math.random() * 50) + 50,
+ logo: avatars[i % 8],
+ href: 'https://ant.design',
+ updatedAt: new Date(new Date().getTime() - 1000 * 60 * 60 * 2 * i),
+ createdAt: new Date(new Date().getTime() - 1000 * 60 * 60 * 2 * i),
+ subDescription: desc[i % 5],
+ description:
+ '在中台产品的研发过程中,会出现不同的设计规范和实现方式,但其中往往存在很多类似的页面和组件,这些类似的组件会被抽离成一套标准规范。',
+ activeUser: Math.ceil(Math.random() * 100000) + 100000,
+ newUser: Math.ceil(Math.random() * 1000) + 1000,
+ star: Math.ceil(Math.random() * 100) + 100,
+ like: Math.ceil(Math.random() * 100) + 100,
+ message: Math.ceil(Math.random() * 10) + 10,
+ content:
+ '段落示意:蚂蚁金服设计平台 ant.design,用最小的工作量,无缝接入蚂蚁金服生态,提供跨越设计与开发的体验解决方案。蚂蚁金服设计平台 ant.design,用最小的工作量,无缝接入蚂蚁金服生态,提供跨越设计与开发的体验解决方案。',
+ members: [
+ {
+ avatar: 'https://gw.alipayobjects.com/zos/rmsportal/ZiESqWwCXBRQoaPONSJe.png',
+ name: '曲丽丽',
+ },
+ {
+ avatar: 'https://gw.alipayobjects.com/zos/rmsportal/tBOxZPlITHqwlGjsJWaF.png',
+ name: '王昭君',
+ },
+ {
+ avatar: 'https://gw.alipayobjects.com/zos/rmsportal/sBxjgqiuHMGRkIjqlQCd.png',
+ name: '董娜娜',
+ },
+ ],
+ });
+ }
+
+ return list;
+}
+
+function getNotice(): any[] {
+ return [
+ {
+ id: 'xxx1',
+ title: titles[0],
+ logo: avatars[0],
+ description: '那是一种内在的东西, 他们到达不了,也无法触及的',
+ updatedAt: new Date(),
+ member: '科学搬砖组',
+ href: '',
+ memberLink: '',
+ },
+ {
+ id: 'xxx2',
+ title: titles[1],
+ logo: avatars[1],
+ description: '希望是一个好东西,也许是最好的,好东西是不会消亡的',
+ updatedAt: new Date('2017-07-24'),
+ member: '全组都是吴彦祖',
+ href: '',
+ memberLink: '',
+ },
+ {
+ id: 'xxx3',
+ title: titles[2],
+ logo: avatars[2],
+ description: '城镇中有那么多的酒馆,她却偏偏走进了我的酒馆',
+ updatedAt: new Date(),
+ member: '中二少女团',
+ href: '',
+ memberLink: '',
+ },
+ {
+ id: 'xxx4',
+ title: titles[3],
+ logo: avatars[3],
+ description: '那时候我只会想自己想要什么,从不想自己拥有什么',
+ updatedAt: new Date('2017-07-23'),
+ member: '程序员日常',
+ href: '',
+ memberLink: '',
+ },
+ {
+ id: 'xxx5',
+ title: titles[4],
+ logo: avatars[4],
+ description: '凛冬将至',
+ updatedAt: new Date('2017-07-23'),
+ member: '高逼格设计天团',
+ href: '',
+ memberLink: '',
+ },
+ {
+ id: 'xxx6',
+ title: titles[5],
+ logo: avatars[5],
+ description: '生命就像一盒巧克力,结果往往出人意料',
+ updatedAt: new Date('2017-07-23'),
+ member: '骗你来学计算机',
+ href: '',
+ memberLink: '',
+ },
+ ];
+}
+
+function getActivities(): any[] {
+ return [
+ {
+ id: 'trend-1',
+ updatedAt: new Date(),
+ user: {
+ name: '林东东',
+ avatar: avatars[0],
+ },
+ group: {
+ name: '高逼格设计天团',
+ link: 'http://github.com/',
+ },
+ project: {
+ name: '六月迭代',
+ link: 'http://github.com/',
+ },
+ template: '在 @{group} 新建项目 @{project}',
+ },
+ {
+ id: 'trend-2',
+ updatedAt: new Date(),
+ user: {
+ name: '付小小',
+ avatar: avatars[1],
+ },
+ group: {
+ name: '高逼格设计天团',
+ link: 'http://github.com/',
+ },
+ project: {
+ name: '六月迭代',
+ link: 'http://github.com/',
+ },
+ template: '在 @{group} 新建项目 @{project}',
+ },
+ {
+ id: 'trend-3',
+ updatedAt: new Date(),
+ user: {
+ name: '曲丽丽',
+ avatar: avatars[2],
+ },
+ group: {
+ name: '中二少女团',
+ link: 'http://github.com/',
+ },
+ project: {
+ name: '六月迭代',
+ link: 'http://github.com/',
+ },
+ template: '在 @{group} 新建项目 @{project}',
+ },
+ {
+ id: 'trend-4',
+ updatedAt: new Date(),
+ user: {
+ name: '周星星',
+ avatar: avatars[3],
+ },
+ project: {
+ name: '5 月日常迭代',
+ link: 'http://github.com/',
+ },
+ template: '将 @{project} 更新至已发布状态',
+ },
+ {
+ id: 'trend-5',
+ updatedAt: new Date(),
+ user: {
+ name: '朱偏右',
+ avatar: avatars[4],
+ },
+ project: {
+ name: '工程效能',
+ link: 'http://github.com/',
+ },
+ comment: {
+ name: '留言',
+ link: 'http://github.com/',
+ },
+ template: '在 @{project} 发布了 @{comment}',
+ },
+ {
+ id: 'trend-6',
+ updatedAt: new Date(),
+ user: {
+ name: '乐哥',
+ avatar: avatars[5],
+ },
+ group: {
+ name: '程序员日常',
+ link: 'http://github.com/',
+ },
+ project: {
+ name: '品牌迭代',
+ link: 'http://github.com/',
+ },
+ template: '在 @{group} 新建项目 @{project}',
+ },
+ ];
+}
+
+export const APIS = {
+ '/api/list': (req: MockRequest) => getFakeList(req.queryString.count),
+ '/api/notice': () => getNotice(),
+ '/api/activities': () => getActivities(),
+ 'POST /api/auth/refresh': { msg: 'ok', token: 'new-token-by-refresh' },
+ '/api/401': () => {
+ throw new MockStatusError(401);
+ },
+ '/api/403': () => {
+ throw new MockStatusError(403);
+ },
+ '/api/404': () => {
+ throw new MockStatusError(404);
+ },
+ '/api/500': () => {
+ throw new MockStatusError(500);
+ },
+};
diff --git a/_mock/_chart.ts b/_mock/_chart.ts
new file mode 100644
index 00000000..dfb3602a
--- /dev/null
+++ b/_mock/_chart.ts
@@ -0,0 +1,205 @@
+import { format } from 'date-fns';
+import * as Mock from 'mockjs';
+
+// region: mock data
+
+const visitData: any[] = [];
+const beginDay = new Date().getTime();
+
+const fakeY = [7, 5, 4, 2, 4, 7, 5, 6, 5, 9, 6, 3, 1, 5, 3, 6, 5];
+for (let i = 0; i < fakeY.length; i += 1) {
+ visitData.push({
+ x: format(new Date(beginDay + 1000 * 60 * 60 * 24 * i), 'yyyy-MM-dd'),
+ y: fakeY[i],
+ });
+}
+
+const visitData2: any[] = [];
+const fakeY2 = [1, 6, 4, 8, 3, 7, 2];
+for (let i = 0; i < fakeY2.length; i += 1) {
+ visitData2.push({
+ x: format(new Date(beginDay + 1000 * 60 * 60 * 24 * i), 'yyyy-MM-dd'),
+ y: fakeY2[i],
+ });
+}
+
+const salesData: any[] = [];
+for (let i = 0; i < 12; i += 1) {
+ salesData.push({
+ x: `${i + 1}月`,
+ y: Math.floor(Math.random() * 1000) + 200,
+ });
+}
+const searchData: any[] = [];
+for (let i = 0; i < 50; i += 1) {
+ searchData.push({
+ index: i + 1,
+ keyword: `搜索关键词-${i}`,
+ count: Math.floor(Math.random() * 1000),
+ range: Math.floor(Math.random() * 100),
+ status: Math.floor((Math.random() * 10) % 2),
+ });
+}
+const salesTypeData = [
+ {
+ x: '家用电器',
+ y: 4544,
+ },
+ {
+ x: '食用酒水',
+ y: 3321,
+ },
+ {
+ x: '个护健康',
+ y: 3113,
+ },
+ {
+ x: '服饰箱包',
+ y: 2341,
+ },
+ {
+ x: '母婴产品',
+ y: 1231,
+ },
+ {
+ x: '其他',
+ y: 1231,
+ },
+];
+
+const salesTypeDataOnline = [
+ {
+ x: '家用电器',
+ y: 244,
+ },
+ {
+ x: '食用酒水',
+ y: 321,
+ },
+ {
+ x: '个护健康',
+ y: 311,
+ },
+ {
+ x: '服饰箱包',
+ y: 41,
+ },
+ {
+ x: '母婴产品',
+ y: 121,
+ },
+ {
+ x: '其他',
+ y: 111,
+ },
+];
+
+const salesTypeDataOffline = [
+ {
+ x: '家用电器',
+ y: 99,
+ },
+ {
+ x: '个护健康',
+ y: 188,
+ },
+ {
+ x: '服饰箱包',
+ y: 344,
+ },
+ {
+ x: '母婴产品',
+ y: 255,
+ },
+ {
+ x: '其他',
+ y: 65,
+ },
+];
+
+const offlineData: any[] = [];
+for (let i = 0; i < 10; i += 1) {
+ offlineData.push({
+ name: `门店${i}`,
+ cvr: Math.ceil(Math.random() * 9) / 10,
+ });
+}
+const offlineChartData: any[] = [];
+for (let i = 0; i < 20; i += 1) {
+ offlineChartData.push({
+ time: new Date().getTime() + 1000 * 60 * 30 * i,
+ y1: Math.floor(Math.random() * 100) + 10,
+ y2: Math.floor(Math.random() * 100) + 10,
+ });
+}
+
+const radarOriginData = [
+ {
+ name: '个人',
+ ref: 10,
+ koubei: 8,
+ output: 4,
+ contribute: 5,
+ hot: 7,
+ },
+ {
+ name: '团队',
+ ref: 3,
+ koubei: 9,
+ output: 6,
+ contribute: 3,
+ hot: 1,
+ },
+ {
+ name: '部门',
+ ref: 4,
+ koubei: 1,
+ output: 6,
+ contribute: 5,
+ hot: 7,
+ },
+];
+
+//
+const radarData: any[] = [];
+const radarTitleMap: any = {
+ ref: '引用',
+ koubei: '口碑',
+ output: '产量',
+ contribute: '贡献',
+ hot: '热度',
+};
+radarOriginData.forEach((item: any) => {
+ Object.keys(item).forEach((key) => {
+ if (key !== 'name') {
+ radarData.push({
+ name: item.name,
+ label: radarTitleMap[key],
+ value: item[key],
+ });
+ }
+ });
+});
+
+// endregion
+
+export const CHARTS = {
+ '/chart': JSON.parse(
+ JSON.stringify({
+ visitData,
+ visitData2,
+ salesData,
+ searchData,
+ offlineData,
+ offlineChartData,
+ salesTypeData,
+ salesTypeDataOnline,
+ salesTypeDataOffline,
+ radarData,
+ }),
+ ),
+ '/chart/visit': JSON.parse(JSON.stringify(visitData)),
+ '/chart/tags': Mock.mock({
+ 'list|100': [{ name: '@city', 'value|1-100': 150 }],
+ }),
+};
diff --git a/_mock/_file-manager.ts b/_mock/_file-manager.ts
new file mode 100644
index 00000000..a2a835d7
--- /dev/null
+++ b/_mock/_file-manager.ts
@@ -0,0 +1,126 @@
+import { MockRequest, MockStatusError } from '@delon/mock';
+import { deepCopy } from '@delon/util';
+import { Random } from 'mockjs';
+
+import { genMp } from './utils';
+
+interface FileItem {
+ id?: number;
+ parent_id?: number;
+ type?: 'folder' | 'file';
+ title?: string;
+ mp?: string;
+ ext?: string;
+ size?: number;
+ width?: number;
+ height?: number;
+ created?: Date;
+}
+
+let point = 1;
+let DATA: FileItem[] = [];
+DATA = DATA.concat(...genFolds(0, 3), ...genFiles(1, 6), ...genFiles(2, 3), ...genFiles(0, 1, 'zip'), ...genFiles(0, 10));
+
+function genFolds(parent_id: number, count: number): FileItem[] {
+ return new Array(count).fill({}).map(() => {
+ return {
+ id: point++,
+ parent_id,
+ type: 'folder',
+ ext: 'folder',
+ title: Random.ctitle(3, 5),
+ created: new Date()
+ } as FileItem;
+ });
+}
+
+function genFiles(parent_id: number, count: number, ext: string = 'png'): FileItem[] {
+ return new Array(count).fill({}).map(() => {
+ return {
+ id: point++,
+ parent_id,
+ type: 'file',
+ title: `${Random.ctitle(3, 5)}.${ext}`,
+ mp: genMp(),
+ is_img: ext === 'png',
+ ext,
+ size: Random.natural(10, 10000),
+ width: Random.natural(100, 1000),
+ height: Random.natural(100, 1000),
+ created: new Date()
+ } as FileItem;
+ });
+}
+
+function get(params: any): any {
+ let ret = deepCopy(DATA) as FileItem[];
+ const parent_id = +(params.parent_id || '0');
+ ret = ret.filter(data => data.parent_id === parent_id);
+ if (params.type) {
+ ret = ret.filter(data => data.type!.indexOf(params.type) > -1);
+ }
+ if (params.q) {
+ ret = ret.filter(data => data.title!.indexOf(params.q) > -1);
+ }
+ return ret;
+}
+
+function getIdx(id: number): number {
+ id = +id;
+ const idx = DATA.findIndex(w => w.id === id);
+ if (idx === -1) {
+ throw new MockStatusError(404);
+ }
+ return idx;
+}
+
+export const FILES = {
+ '/file/folder': () => deepCopy(DATA).filter((w: any) => w.type === 'folder'),
+ '/file': (req: MockRequest) => {
+ const pi = +(req.queryString.pi || 1);
+ const ps = +(req.queryString.ps || 10);
+ const data = get(req.queryString);
+ return {
+ total: data.length,
+ list: data.slice((pi - 1) * ps, pi * ps)
+ };
+ },
+ 'POST /file': (req: MockRequest) => {
+ const file = req.body.get('file') as File;
+ const parent_id = +req.body.get('parent_id');
+ const item = Object.assign(genFiles(req.body.parent_id, 1)[0], {
+ parent_id,
+ title: file.name,
+ size: file.size
+ });
+ DATA.push(item);
+ return { msg: 'ok', item };
+ },
+ '/file/:id': (req: MockRequest) => {
+ const idx = getIdx(req.params.id || 0);
+ const item = { ...DATA[idx], ...req.body };
+ return item;
+ },
+ 'POST /file/rename': (req: MockRequest) => {
+ const idx = getIdx(req.body.id || 0);
+ DATA[idx].title = req.body.title;
+ return { msg: 'ok', item: DATA[idx] };
+ },
+ 'POST /file/move': (req: MockRequest) => {
+ const idx = getIdx(req.body.id || 0);
+ DATA[idx].parent_id = req.body.moveId;
+ return { msg: 'ok', item: DATA[idx] };
+ },
+ 'POST /file/copy/:id': (req: MockRequest) => {
+ const idx = getIdx(req.params.id || 0);
+ const item = { ...DATA[idx], id: point++ };
+ item.title += ' - Copy';
+ DATA.push(item);
+ return { msg: 'ok', item };
+ },
+ 'DELETE /file/:id': (req: MockRequest) => {
+ const idx = getIdx(req.params.id || 0);
+ DATA.splice(idx, 1);
+ return { msg: 'ok' };
+ }
+};
diff --git a/_mock/_forum.ts b/_mock/_forum.ts
new file mode 100644
index 00000000..a44198f8
--- /dev/null
+++ b/_mock/_forum.ts
@@ -0,0 +1,258 @@
+import { MockRequest, MockStatusError } from '@delon/mock';
+import { deepCopy } from '@delon/util';
+import { Random } from 'mockjs';
+import { genLabel, genMp } from './utils';
+
+let id = 1;
+const CATEGORY = [
+ {
+ id: 1,
+ title: 'General',
+ list: [
+ {
+ id: 1,
+ title: 'Getting started',
+ threads: Random.natural(1, 20),
+ replies: Random.natural(6, 100),
+ last: {
+ id: id++,
+ mp: genMp(),
+ title: Random.title(5, 10),
+ user_name: Random.name(),
+ time: '1d ago',
+ },
+ },
+ {
+ id: 2,
+ title: 'Announcements',
+ threads: Random.natural(1, 20),
+ replies: Random.natural(6, 100),
+ last: {
+ id: id++,
+ mp: genMp(),
+ title: Random.title(5, 10),
+ user_name: Random.name(),
+ time: '1d ago',
+ },
+ },
+ {
+ id: 3,
+ title: 'Guides',
+ threads: Random.natural(1, 20),
+ replies: Random.natural(6, 100),
+ last: {
+ id: id++,
+ mp: genMp(),
+ title: Random.title(5, 10),
+ user_name: Random.name(),
+ time: '1d ago',
+ },
+ },
+ ],
+ },
+ {
+ id: 2,
+ title: 'Shopping',
+ list: [
+ {
+ id: 4,
+ title: 'Guides',
+ threads: Random.natural(1, 20),
+ replies: Random.natural(6, 100),
+ last: {
+ id: id++,
+ mp: genMp(),
+ title: Random.title(5, 10),
+ user_name: Random.name(),
+ time: '1d ago',
+ },
+ },
+ {
+ id: 5,
+ title: 'Payments',
+ threads: Random.natural(1, 20),
+ replies: Random.natural(6, 100),
+ last: {
+ id: id++,
+ mp: genMp(),
+ title: Random.title(5, 10),
+ user_name: Random.name(),
+ time: '1d ago',
+ },
+ },
+ {
+ id: 6,
+ title: 'Products',
+ threads: Random.natural(1, 20),
+ replies: Random.natural(6, 100),
+ last: {
+ id: id++,
+ mp: genMp(),
+ title: Random.title(5, 10),
+ user_name: Random.name(),
+ time: '1d ago',
+ },
+ },
+ {
+ id: 7,
+ title: 'Refund',
+ threads: Random.natural(1, 20),
+ replies: Random.natural(6, 100),
+ last: {
+ id: id++,
+ mp: genMp(),
+ title: Random.title(5, 10),
+ user_name: Random.name(),
+ time: '1d ago',
+ },
+ },
+ ],
+ },
+ {
+ id: 3,
+ title: 'Support',
+ list: [
+ {
+ id: 8,
+ title: 'Common questions',
+ threads: Random.natural(1, 20),
+ replies: Random.natural(6, 100),
+ },
+ {
+ id: 9,
+ title: 'Site issues',
+ threads: Random.natural(1, 20),
+ replies: Random.natural(6, 100),
+ last: {
+ id: id++,
+ mp: genMp(),
+ title: Random.title(5, 10),
+ user_name: Random.name(),
+ time: '1d ago',
+ },
+ },
+ ],
+ },
+];
+
+const THREAD: any[] = new Array(20).fill({}).map((v, idx) => ({
+ id: id++,
+ title: Random.title(5, 10),
+ replies: Random.natural(1, 1000),
+ label: idx % 2 === 0 && Random.boolean() ? genLabel() : null,
+ category_id: Random.natural(1, 9),
+ last: {
+ id: id++,
+ mp: genMp(),
+ title: Random.title(5, 10),
+ user_name: Random.name(),
+ time: '1d ago',
+ },
+}));
+
+const REPLIES: any[] = new Array(20).fill({}).map((v, idx) => ({
+ id: id++,
+ content: Random.paragraph(),
+ user: {
+ name: Random.name(),
+ mp: genMp(),
+ posts: Random.natural(0, 1000),
+ },
+ time: Random.time(),
+ like: Random.natural(0, 100),
+ dislike: Random.natural(0, 10),
+}));
+
+function get(params: any): any {
+ let ret = deepCopy(THREAD);
+ if (params.q) {
+ ret = ret.filter((data: any) => data.name.indexOf(params.q) > -1);
+ }
+ return ret;
+}
+
+function getIdx(itemId: number): number {
+ itemId = +itemId;
+ const idx = THREAD.findIndex((w) => w.id === itemId);
+ if (idx === -1) {
+ throw new MockStatusError(404);
+ }
+ return idx;
+}
+
+function getCate(itemId: number): any {
+ let item: any;
+ const category: any = deepCopy(CATEGORY).find((w: any) => {
+ item = w.list.find((l: any) => l.id === itemId);
+ if (item) {
+ return true;
+ }
+ return false;
+ });
+ delete category.list;
+ return item;
+}
+
+export const FORUMS = {
+ '/forum/category': CATEGORY,
+ '/forum/thread/:id': (req: MockRequest) => {
+ // list
+ const pi = +(req.queryString.pi || 1);
+ const ps = +(req.queryString.ps || 10);
+ const data = get(req.queryString);
+ return {
+ category: getCate(+req.params.id),
+ total: data.length,
+ list: data.slice((pi - 1) * ps, pi * ps),
+ };
+ },
+ '/forum/:id': (req: MockRequest) => {
+ const idx = getIdx(req.params.id || 0);
+ const item = {
+ ...THREAD[idx],
+ time: '3 days ago',
+ like: Random.natural(0, 100),
+ view: Random.natural(0, 10000),
+ user: {
+ name: Random.name(),
+ mp: genMp(),
+ posts: Random.natural(0, 1000),
+ },
+ desc:
+ '
' +
+ new Array(Random.natural(1, 3))
+ .fill('')
+ .map((v) => Random.paragraph())
+ .join('
') +
+ '
',
+ };
+ item.category = getCate(item.category_id);
+ return item;
+ },
+ '/forum/:id/replies': (req: MockRequest) => {
+ const pi = +(req.queryString.pi || 1);
+ const ps = +(req.queryString.ps || 10);
+ return {
+ total: REPLIES.length,
+ list: REPLIES.slice((pi - 1) * ps, pi * ps),
+ };
+ },
+
+ 'POST /forum': (req: MockRequest) => {
+ const itemId = req.body.id || 0;
+ if (itemId > 0) {
+ const idx = getIdx(itemId);
+ THREAD[idx] = { ...THREAD[idx], ...req.body };
+ return { msg: 'ok', item: THREAD[idx] };
+ }
+
+ const item = { ...req.body, id: THREAD.sort((a, b) => b.id - a.id)[0].id + 1 };
+ THREAD.push(item);
+ return { msg: 'ok', item };
+ },
+ 'DELETE /forum/:id': (req: MockRequest) => {
+ const idx = getIdx(req.params.id || 0);
+ THREAD.splice(idx, 1);
+ return { msg: 'ok' };
+ },
+};
diff --git a/_mock/_geo.ts b/_mock/_geo.ts
new file mode 100644
index 00000000..f52cf882
--- /dev/null
+++ b/_mock/_geo.ts
@@ -0,0 +1,76 @@
+import { MockRequest } from '@delon/mock';
+
+const DATA = [
+ {
+ name: '上海',
+ id: '310000',
+ },
+ {
+ name: '市辖区',
+ id: '310100',
+ },
+ {
+ name: '北京',
+ id: '110000',
+ },
+ {
+ name: '市辖区',
+ id: '110100',
+ },
+ {
+ name: '浙江省',
+ id: '330000',
+ },
+ {
+ name: '杭州市',
+ id: '330100',
+ },
+ {
+ name: '宁波市',
+ id: '330200',
+ },
+ {
+ name: '温州市',
+ id: '330300',
+ },
+ {
+ name: '嘉兴市',
+ id: '330400',
+ },
+ {
+ name: '湖州市',
+ id: '330500',
+ },
+ {
+ name: '绍兴市',
+ id: '330600',
+ },
+ {
+ name: '金华市',
+ id: '330700',
+ },
+ {
+ name: '衢州市',
+ id: '330800',
+ },
+ {
+ name: '舟山市',
+ id: '330900',
+ },
+ {
+ name: '台州市',
+ id: '331000',
+ },
+ {
+ name: '丽水市',
+ id: '331100',
+ },
+];
+
+export const GEOS = {
+ '/geo/province': () => DATA.filter(w => w.id.endsWith('0000')),
+ '/geo/:id': (req: MockRequest) => {
+ const pid = (req.params.id || '310000').slice(0, 2);
+ return DATA.filter(w => w.id.slice(0, 2) === pid && !w.id.endsWith('0000'));
+ },
+};
diff --git a/_mock/_img.ts b/_mock/_img.ts
new file mode 100644
index 00000000..2f8ff63a
--- /dev/null
+++ b/_mock/_img.ts
@@ -0,0 +1,103 @@
+import { MockRequest, MockStatusError } from '@delon/mock';
+import { deepCopy } from '@delon/util';
+import { genMp } from './utils';
+
+interface ImgCat {
+ id: number;
+ parent_id: number;
+ title: string;
+}
+interface Img {
+ cat_id: number;
+ id: number;
+ title: string;
+ mp: string;
+ size: number;
+ width: number;
+ height: number;
+ created: Date;
+}
+
+const CAT: ImgCat[] = [
+ { id: 1, parent_id: 0, title: '店铺' },
+ { id: 2, parent_id: 1, title: '产品图' },
+ { id: 3, parent_id: 1, title: '品牌图' },
+ { id: 4, parent_id: 0, title: '营销' },
+ { id: 5, parent_id: 4, title: '双11' },
+ { id: 6, parent_id: 4, title: '日常' },
+ { id: 7, parent_id: 0, title: '其他' },
+];
+const DATA: Img[] = [];
+
+for (let i = 1; i <= 50; i += 1) {
+ DATA.push(gen(i));
+}
+
+function gen(i: number): any {
+ return {
+ cat_id: [1, 2, 3, 4, 5, 6, 7][Math.floor(Math.random() * 10) % 7],
+ id: i * 10000,
+ title: `title ${i}`,
+ mp: genMp(),
+ size: Math.floor(Math.random() * 1000) % 1000,
+ width: Math.floor(Math.random() * 1000) % 1000,
+ height: Math.floor(Math.random() * 1000) % 1000,
+ created: new Date(),
+ };
+}
+
+function get(params: any): any {
+ let ret = deepCopy(DATA);
+ const cat_id = +(params.cat_id || '0');
+ if (cat_id > 0) {
+ ret = ret.filter((data: any) => data.cat_id === cat_id);
+ }
+ if (params.q) {
+ ret = ret.filter((data: any) => data.title.indexOf(params.q) > -1);
+ }
+ return ret;
+}
+
+function getIdx(id: number): number {
+ id = +id;
+ const idx = DATA.findIndex((w) => w.id === id);
+ if (idx === -1) {
+ throw new MockStatusError(404);
+ }
+ return idx;
+}
+
+export const IMGS = {
+ '/img/cat': () => deepCopy(CAT),
+ '/img': (req: MockRequest) => {
+ const pi = +(req.queryString.pi || 1);
+ const ps = +(req.queryString.ps || 10);
+ const data = get(req.queryString);
+ return {
+ total: data.length,
+ list: data.slice((pi - 1) * ps, pi * ps),
+ };
+ },
+ 'POST /img': (req: MockRequest) => {
+ const id = req.body.id || 0;
+ if (id > 0) {
+ const idx = getIdx(id);
+ DATA[idx] = { ...DATA[idx], ...req.body };
+ return { msg: 'ok', item: DATA[idx] };
+ }
+
+ const item = Object.assign(gen(DATA.sort((a, b) => b.id - a.id)[0].id + 1), req.body);
+ DATA.push(item);
+ return { msg: 'ok', item };
+ },
+ '/img/:id': (req: MockRequest) => {
+ const idx = getIdx(req.params.id || 0);
+ const item = { ...DATA[idx], ...req.body };
+ return item;
+ },
+ 'DELETE /img/:id': (req: MockRequest) => {
+ const idx = getIdx(req.params.id || 0);
+ DATA.splice(idx, 1);
+ return { msg: 'ok' };
+ },
+};
diff --git a/_mock/_log.ts b/_mock/_log.ts
new file mode 100644
index 00000000..b65269b3
--- /dev/null
+++ b/_mock/_log.ts
@@ -0,0 +1,62 @@
+import { MockRequest, MockStatusError } from '@delon/mock';
+import { deepCopy } from '@delon/util';
+
+const DATA: any[] = [];
+
+for (let i = 1; i <= 20; i += 1) {
+ DATA.push({
+ id: i,
+ name: 'cms',
+ level: ['error', 'warning', 'info'][Math.floor(Math.random() * 10) % 3],
+ path: `/home/${i}`,
+ title: `未知报告 ${i}`,
+ data: `Uncaught Error: test-${i}\nat :1:7\nat :1:7\nat :1:7`,
+ created: new Date(),
+ });
+}
+
+function getIdx(id: number): number {
+ const idx = DATA.findIndex((w) => w.id === id);
+ if (idx === -1) {
+ throw new MockStatusError(404);
+ }
+ return idx;
+}
+
+function get(params: any): any {
+ let ret = deepCopy(DATA);
+ if (params.q) {
+ ret = ret.filter((data: any) => data.title.indexOf(params.q) > -1);
+ }
+ if (params.level) {
+ ret = ret.filter((data: any) => data.level.indexOf(params.level) > -1);
+ }
+ return ret;
+}
+
+function del(params: any): any {
+ const id = params.id || 0;
+ if (id > 0) {
+ DATA.splice(getIdx(id), 1);
+ } else {
+ get(params).forEach((w: any) => {
+ del({ id: w.id });
+ });
+ }
+}
+
+export const LOGS = {
+ '/log': (req: MockRequest) => {
+ const pi = +(req.queryString.pi || 1);
+ const ps = +(req.queryString.ps || 10);
+ const data = get(req.queryString);
+ return {
+ total: data.length,
+ list: data.slice((pi - 1) * ps, pi * ps),
+ };
+ },
+ 'DELETE /log': (req: MockRequest) => {
+ del(req.queryString);
+ return { msg: 'ok' };
+ },
+};
diff --git a/_mock/_menu.ts b/_mock/_menu.ts
new file mode 100644
index 00000000..a3818413
--- /dev/null
+++ b/_mock/_menu.ts
@@ -0,0 +1,109 @@
+import { MockRequest, MockStatusError } from '@delon/mock';
+import { Menu } from '@delon/theme';
+import { deepCopy } from '@delon/util';
+
+const DATA: Menu[] = [
+ {
+ id: 1,
+ parent_id: 0,
+ text: '主导航',
+ i18n: 'menu.main',
+ group: true,
+ hideInBreadcrumb: true,
+ },
+ {
+ id: 2,
+ parent_id: 1,
+ text: '仪表盘',
+ i18n: 'menu.dashboard',
+ icon: 'dashboard',
+ },
+ {
+ id: 3,
+ parent_id: 2,
+ text: '分析页',
+ link: '/dashboard/analysis',
+ i18n: 'menu.dashboard.analysis',
+ },
+ {
+ id: 4,
+ parent_id: 2,
+ text: '监控页',
+ link: '/dashboard/monitor',
+ i18n: 'menu.dashboard.monitor',
+ },
+ {
+ id: 5,
+ parent_id: 2,
+ text: '工作台',
+ link: '/dashboard/workplace',
+ i18n: 'menu.dashboard.workplace',
+ },
+ {
+ id: 6,
+ parent_id: 0,
+ text: 'Pro',
+ i18n: 'menu.pro',
+ group: true,
+ hideInBreadcrumb: true,
+ },
+ {
+ id: 7,
+ parent_id: 6,
+ text: 'Form Page',
+ i18n: 'menu.form',
+ link: '/pro/form',
+ icon: 'anticon anticon-edit',
+ hideInBreadcrumb: true,
+ },
+ {
+ id: 8,
+ parent_id: 6,
+ text: 'Basic Form',
+ link: '/pro/form/basic-form',
+ i18n: 'menu.form.basicform',
+ shortcut: true,
+ },
+ {
+ id: 9,
+ parent_id: 6,
+ text: 'Step Form',
+ link: '/pro/form/step-form',
+ i18n: 'menu.form.stepform',
+ },
+];
+
+function getIdx(id: number): number {
+ id = +id;
+ const idx = DATA.findIndex((w) => w.id === id);
+ if (idx === -1) {
+ throw new MockStatusError(404);
+ }
+ return idx;
+}
+
+export const MENUS = {
+ '/menus': () => deepCopy(DATA),
+ 'POST /menus': (req: MockRequest) => {
+ const id = req.body.id || 0;
+ if (id > 0) {
+ const idx = getIdx(id);
+ DATA[idx] = { ...DATA[idx], ...req.body };
+ return { msg: 'ok', item: DATA[idx] };
+ }
+
+ const item = { ...req.body, id: DATA.sort((a, b) => b.id - a.id)[0].id + 1 };
+ DATA.push(item);
+ return { msg: 'ok', item };
+ },
+ 'DELETE /menus/:id': (req: MockRequest) => {
+ const idx = getIdx(req.params.id || 0);
+ DATA.splice(idx, 1);
+ return { msg: 'ok' };
+ },
+ 'POST /menus/move': (req: MockRequest) => {
+ const idx = getIdx(req.body.from || 0);
+ DATA[idx].parent_id = req.body.to || 0;
+ return { msg: 'ok', item: DATA[idx] };
+ },
+};
diff --git a/_mock/_other.ts b/_mock/_other.ts
new file mode 100644
index 00000000..bb99bc87
--- /dev/null
+++ b/_mock/_other.ts
@@ -0,0 +1,917 @@
+import { MockRequest, MockStatusError } from '@delon/mock';
+import { deepCopy } from '@delon/util';
+import format from 'date-fns/format';
+import getDaysInMonth from 'date-fns/getDaysInMonth';
+import startOfMonth from 'date-fns/startOfMonth';
+import { Random } from 'mockjs';
+
+import { genArr, genBigMp, genColorName, genData, genLabel, genMp, genName, genTag } from './utils';
+
+let ID = 1;
+const DATA: any = {
+ kanban: null,
+ task: null,
+ email: null,
+ project: null,
+ client: null,
+ contact: null,
+ pricing: null,
+ billing: null,
+ course: null,
+ chat: null,
+ gallery: null,
+ article: null,
+ voting: null,
+ invoice: null,
+ faq: null,
+ calendar: null,
+ quick: null,
+ dd: null
+};
+
+function getIdx(type: string, id: number): number {
+ id = +id;
+ const idx = DATA[type].findIndex((w: any) => w.id === id);
+ if (idx === -1) {
+ throw new MockStatusError(404);
+ }
+ return idx;
+}
+
+function save(type: string, body: any): any {
+ const id = body.id || 0;
+ if (id > 0) {
+ const idx = getIdx(type, id);
+ DATA[type][idx] = { ...DATA[type][idx], ...body };
+ return { msg: 'ok', item: DATA[type][idx], type: 'edit' };
+ }
+
+ const item = { ...body, id: DATA[type].sort((a: any, b: any) => b.id - a.id)[0].id + 1 };
+ (DATA[type] as any[]).splice(0, 0, item);
+ return { msg: 'ok', item, type: 'add' };
+}
+
+function del(type: string, p: any): any {
+ const cid = +(p.cid || '0');
+ let list: any[] = DATA[type];
+ if (cid > 0) {
+ list = DATA[type].find((w: any) => w.id === cid).list;
+ }
+
+ const idx = list.findIndex(w => w.id === p.id);
+ list.splice(idx, 1);
+ return { msg: 'ok' };
+}
+
+function genHtml(): string {
+ return `${new Array(Random.natural(1, 3))
+ .fill('')
+ .map(v => Random.sentence())
+ .join('
')}
`;
+}
+
+function attachements(): any {
+ return new Array(Random.natural(2, 6)).fill({}).map((v, idx) => {
+ const item = {
+ url: Random.url(),
+ type: genArr(['jpg', 'zip', 'pdf']),
+ filename: Random.name(false),
+ size: genArr(['100KB', '980KB', '1.56MB'])
+ };
+ if (item.type === 'jpg') {
+ item.url = genBigMp();
+ }
+ return item;
+ });
+}
+
+function genPage(type: string, queryString: any, qField: string = 'name'): any {
+ const pi = +(queryString.pi || 1);
+ const ps = +(queryString.ps || 10);
+ // data
+ let data = deepCopy(DATA[type]);
+ if (queryString.q) {
+ data = data.filter((data: any) => data[qField].indexOf(queryString.q) > -1);
+ }
+ return {
+ total: data.length,
+ list: data.slice((pi - 1) * ps, pi * ps)
+ };
+}
+
+// #region kanban
+
+function kanbanList(): any {
+ if (DATA.kanban) {
+ return DATA.kanban;
+ }
+ const res: any[] = [
+ {
+ id: 1,
+ title: 'To Do',
+ list: [],
+ color: '#fadb14',
+ icon: 'warning'
+ },
+ { id: 2, title: 'In progress', color: '#1890ff', icon: 'tool', list: [] },
+ { id: 3, title: 'Done', color: '#52c41a', icon: 'check-circle', list: [] },
+ { id: 4, title: 'Gone', color: '#f5222d', icon: 'delete', list: [] }
+ ];
+ for (const i of res) {
+ i.list = new Array(Random.natural(2, 6)).fill({}).map((v, idx) => ({
+ id: idx + 1,
+ title: Random.ctitle(3, 4),
+ content: Random.ctitle(0, 50),
+ attachement: Random.boolean() && Random.boolean() && Random.boolean()
+ }));
+ }
+ // new
+ if (res[0].list.length > 0) {
+ res[0].list[Random.natural(0, res[0].list.length - 1)].label = {
+ color: 'green',
+ text: 'Clients'
+ };
+ }
+ if (res[1].list.length > 0) {
+ res[1].list[Random.natural(0, res[1].list.length - 1)].label = {
+ color: 'red',
+ text: 'Important'
+ };
+ }
+ if (res[2].list.length > 0) {
+ res[2].list[Random.natural(0, res[2].list.length - 1)].label = {
+ color: 'blue',
+ text: 'Other'
+ };
+ }
+ // labels
+ DATA.kanban = res;
+ return res;
+}
+
+// #endregion
+
+// #region task
+
+function taskList(): any {
+ if (DATA.task) {
+ return DATA.task;
+ }
+ const res: any[] = [
+ { id: 1, title: 'Today', list: [] },
+ { id: 2, title: 'Tomorrow', list: [] },
+ { id: 3, title: 'Next week', list: [] }
+ ];
+ for (const i of res) {
+ i.list = new Array(Random.natural(2, 8)).fill({}).map((v, idx) => ({
+ id: idx + 1,
+ title: Random.ctitle(3, 16),
+ due: i.id === 1 && Random.boolean() ? `${Random.natural(1, 59)} ${Random.boolean() ? 'mins' : 'hours'} left` : null
+ }));
+ }
+ // new
+ if (res[0].list.length > 0) {
+ res[0].list[Random.natural(0, res[0].list.length - 1)].label = {
+ color: 'green',
+ text: 'Clients'
+ };
+ }
+ if (res[1].list.length > 0) {
+ res[1].list[Random.natural(0, res[1].list.length - 1)].label = {
+ color: 'red',
+ text: 'Important'
+ };
+ res[0].list[Random.natural(0, res[0].list.length - 1)].done = true;
+ }
+ if (res[2].list.length > 0) {
+ res[2].list[Random.natural(0, res[2].list.length - 1)].label = {
+ color: 'blue',
+ text: 'Other'
+ };
+ res[0].list[Random.natural(0, res[0].list.length - 1)].done = true;
+ }
+ // labels
+ DATA.task = res;
+ return res;
+}
+
+// #endregion
+
+// #region email
+
+function emailList(queryString: any): any {
+ if (DATA.email) {
+ return genPage('email', queryString, 'subject');
+ }
+ const res: any[] = new Array(20).fill({}).map((v, idx) => ({
+ id: ID++,
+ from: Random.email(),
+ from_name: genName(),
+ to: Random.email(),
+ to_name: Random.name(),
+ cc: [Random.email(), Random.email()],
+ subject: Random.title(1, 6),
+ body: Random.paragraph(),
+ read: idx % 2 === 0 && Random.boolean(),
+ star: Random.boolean(),
+ label: genLabel(),
+ attach: idx % 3 === 0 && Random.boolean(),
+ time: `1${Random.boolean() ? 'h' : 'd'} ago`
+ }));
+ // labels
+ DATA.email = res;
+ return genPage('email', queryString, 'subject');
+}
+
+function emailGet(id: number): any {
+ const idx = getIdx('email', id || 0);
+ const item = { ...DATA.email[idx], mp: genMp(), desc: genHtml(), attachements: attachements() };
+ return item;
+}
+// #endregion
+
+// #region project
+
+function projectList(): any {
+ if (DATA.project) {
+ return DATA.project;
+ }
+ const res: any[] = new Array(5).fill({}).map((v, idx) => ({
+ id: idx + 1,
+ title: genArr(['UI update', 'Web Design', 'Pro Design', 'Ng Alain', 'Delon', 'SEO']),
+ status: idx % 2 ? genArr(['active', 'pending', 'complete']) : 'active',
+ task: {
+ process: Random.natural(1, 100),
+ opened: Random.natural(1, 100),
+ completed: Random.natural(1, 100)
+ },
+ remark: Random.title(5, 10),
+ created: Random.date(),
+ deadline: Random.date(),
+ tean: new Array(Random.natural(1, 6)).fill({}).map(() => ({
+ name: genName(),
+ mp: genMp()
+ })),
+ leaders: new Array(Random.natural(1, 2)).fill({}).map(() => ({
+ name: genName(),
+ mp: genMp()
+ })),
+ participants: new Array(Random.natural(1, 6)).fill({}).map(() => ({
+ name: Random.name(),
+ mp: genMp()
+ }))
+ }));
+ // labels
+ DATA.project = res;
+ return res;
+}
+
+function projectGet(id: number): any {
+ const idx = getIdx('project', id || 0);
+ const item = {
+ ...DATA.project[idx],
+ user_name: genName(),
+ desc: genHtml(),
+ attachements: attachements(),
+ tasks: DATA.task,
+ discussions: new Array(Random.natural(3, 8)).fill({}).map((v, idx) => ({
+ id: idx + 1,
+ user_avatar: genMp(),
+ user_name: genName(),
+ time: Random.datetime(),
+ content: Random.paragraph(1, 1)
+ })),
+ activities: new Array(Random.natural(3, 12)).fill({}).map((v, idx) => ({
+ id: idx + 1,
+ user_avatar: genMp(),
+ user_name: genName(),
+ time: Random.datetime(),
+ type: idx % 2 === 0 ? genArr(['add', 'completed', 'assigned']) : 'push',
+ commit: Random.natural(10000, 99999),
+ assigne_name: Random.name(),
+ message: Random.title()
+ }))
+ };
+ return item;
+}
+
+// #endregion
+
+// #region billing
+
+function billingList(queryString: any): any {
+ if (DATA.billing) {
+ return genPage('billing', queryString, 'client');
+ }
+ const res: any[] = new Array(11).fill({}).map((v, idx) => ({
+ id: idx + 1,
+ order: `FR0${Random.natural(10, 99)}`,
+ client: genArr(['Google', 'Alibaba', 'Tencent']),
+ fee: Random.float(0, 9.0),
+ amount: Random.float(0.1, 99999.0),
+ date: Random.now('day'),
+ status: idx % 2 ? genArr(['Completed', 'Pending', 'Rejected']) : 'Completed',
+ auth_code: Random.natural(100000000),
+ address: (Random as any).county(true),
+ first_name: Random.first(),
+ last_name: Random.last(),
+ country: 'China'
+ }));
+ // labels
+ DATA.billing = res;
+ return genPage('billing', queryString, 'client');
+}
+
+function billingGet(id: number): any {
+ const idx = getIdx('billing', id || 0);
+ const item = {
+ ...DATA.billing[idx],
+ messages: new Array(Random.natural(0, 5)).fill({}).map((v, idx) => ({
+ id: idx + 1,
+ time: `${Random.natural(1, 6)} day ago`,
+ message: Random.paragraph(1, 1)
+ }))
+ };
+ return item;
+}
+
+// #endregion
+
+// #region contact
+
+function contactList(queryString: any): any {
+ if (DATA.contact) {
+ return genPage('contact', queryString, 'contact');
+ }
+ const res: any[] = new Array(11).fill({}).map((v, idx) => ({
+ id: idx + 1,
+ mp: genMp(),
+ name: genName(),
+ user_name: Random.name(false),
+ company: Random.title(1, 3),
+ email: Random.email(),
+ tel: Random.natural(10000000000, 16000000000)
+ }));
+ // labels
+ DATA.contact = res;
+ return genPage('contact', queryString, 'company');
+}
+
+// #endregion
+
+// #region pricing
+
+function pricingList(): any {
+ if (DATA.pricing) {
+ return DATA.pricing;
+ }
+ const res: any = {
+ prices: [
+ {
+ id: 1,
+ title: 'Basic',
+ icon: 'shop',
+ mo: 12,
+ yr: 12 * 12,
+ user: 5,
+ project: 5,
+ space: '100GB'
+ },
+ {
+ id: 2,
+ title: 'Company',
+ icon: 'bank',
+ mo: 25,
+ yr: 25 * 12,
+ user: 30,
+ project: 150,
+ space: '300GB'
+ },
+ {
+ id: 3,
+ title: 'Enterprise',
+ icon: 'crown',
+ mo: 50,
+ yr: 50 * 12,
+ user: -1,
+ project: -1,
+ space: '1000GB'
+ }
+ ],
+ faq: [
+ {
+ q: 'Can I cancel at anytime?',
+ a: 'Yes, you can cancel anytime no questions are asked while you cancel but we would highly appreciate if you will give us some feedback.'
+ },
+ {
+ q: 'My team has credits. How do we use them?',
+ a: 'Once your team signs up for a subscription plan. enim eiusmod high life accusamus eoset dignissimos.'
+ },
+ {
+ q: `How does Front's pricing work?`,
+ a: 'Our subscriptions are tiered. based on the number of people enim eiusmod high life accusamus terry richardson ad squid.'
+ },
+ {
+ q: 'How secure is Front?',
+ a: 'Protecting the data you trust to Front is our first priority. at vero eoset dignissimos ducimus qui blanditiis.'
+ },
+ {
+ q: 'Do you offer discounts?',
+ a: `We've built in discounts at each tier for teams. leggings occaecat craft beer farm-to-table. raw denim aesthetic synth nesciunt.`
+ },
+ {
+ q: 'What is your refund policy?',
+ a: 'We do not offer refunds apart leggings occaecat craft beer farm-to-table. raw leggings occaecat craft.'
+ }
+ ]
+ };
+ // labels
+ DATA.pricing = res;
+ return res;
+}
+
+// #endregion
+
+// #region client
+
+function clientList(queryString: any): any {
+ if (DATA.client) {
+ return genPage('client', queryString, 'company');
+ }
+ const res: any[] = new Array(11).fill({}).map((v, idx) => ({
+ id: idx + 1,
+ mp: genMp(),
+ name: genName(),
+ user_name: Random.name(false),
+ company: Random.title(1, 3),
+ email: Random.email(),
+ tel: Random.natural(10000000000, 16000000000),
+ status: idx % 2 ? genArr(['active', 'pending', 'progress']) : 'active'
+ }));
+ // labels
+ DATA.client = res;
+ return genPage('client', queryString, 'company');
+}
+
+function clientGet(id: number): any {
+ const idx = getIdx('client', id || 0);
+ const item = {
+ ...DATA.client[idx],
+ messages: new Array(Random.natural(0, 5)).fill({}).map((v, idx) => ({
+ id: idx + 1,
+ time: `${Random.natural(1, 6)} day ago`,
+ message: Random.paragraph(1, 1)
+ }))
+ };
+ return item;
+}
+
+// #endregion
+
+// #region course
+
+function courseList(queryString: any): any {
+ if (DATA.course) {
+ return genPage('course', queryString, 'title');
+ }
+ const res: any[] = new Array(10).fill({}).map((v, idx) => ({
+ id: idx + 1,
+ mp: genBigMp(),
+ tags: genTag(),
+ price: idx === 0 ? 0 : Random.natural(0, 100),
+ title: Random.title(2, 5),
+ remark: Random.paragraph(1, 1),
+ star: genArr([4, 4.5, 5]),
+ hour: Random.natural(10, 99)
+ }));
+ // labels
+ DATA.course = res;
+ return genPage('course', queryString, 'title');
+}
+
+// #endregion
+
+// #region chat
+
+function chatList(): any {
+ if (DATA.chat) {
+ return DATA.chat;
+ }
+ const res: any = {
+ users: new Array(10).fill({}).map((v, idx) => ({
+ id: idx + 1,
+ mp: genMp(),
+ name: genName(),
+ count: idx % 3 === 0 ? Random.natural(0, 5) : 0,
+ online: idx < 5 ? true : false,
+ unread: Random.boolean() && Random.boolean() ? Random.natural(0, 5) : 0
+ }))
+ };
+ // labels
+ DATA.chat = res;
+ return res;
+}
+
+// #endregion
+
+// #region gallery
+
+function galleryList(): any {
+ if (DATA.gallery) {
+ return DATA.gallery;
+ }
+ const res: any = new Array(16).fill({}).map((v, idx) => ({
+ id: idx + 1,
+ url: genBigMp(),
+ title: Random.title(),
+ type: genArr(['Nature', 'Beach', 'Animal', 'Other'])
+ }));
+ // labels
+ DATA.gallery = res;
+ return res;
+}
+
+// #endregion
+
+// #region article
+
+function articleList(queryString: any): any {
+ if (DATA.article) {
+ return genPage('article', queryString, 'title');
+ }
+ const res: any[] = new Array(11).fill({}).map((v, idx) => ({
+ id: idx + 1,
+ mp: genMp(),
+ name: genName(),
+ title: Random.ctitle(),
+ likes: Random.natural(0, 1000),
+ comments: Random.natural(0, 1000),
+ created: Random.now('day'),
+ status: idx % 2 ? genArr(['Published', 'Draft', 'Deleted']) : 'Published'
+ }));
+ // labels
+ DATA.article = res;
+ return genPage('article', queryString, 'title');
+}
+
+function articleGet(id: number): any {
+ const idx = getIdx('article', id || 0);
+ const item = { ...DATA.article[idx] };
+ return item;
+}
+
+// #endregion
+
+// #region voting
+
+function votingList(queryString: any): any {
+ if (DATA.voting) {
+ return genPage('voting', queryString, 'title');
+ }
+ const res: any[] = new Array(11).fill({}).map((v, idx) => ({
+ id: idx + 1,
+ voting: Random.integer(-10, 10000),
+ title: Random.title(5, 10),
+ content: Random.paragraph(),
+ likes: Random.natural(0, 1000),
+ created: Random.now('day')
+ }));
+ // labels
+ DATA.voting = res;
+ return genPage('voting', queryString, 'title');
+}
+
+function votingSave(req: any): any {
+ const idx = getIdx('voting', req.id || 0);
+ DATA.voting[idx].value += req.voting;
+ return { msg: 'ok', item: DATA.voting[idx] };
+}
+
+// #endregion
+
+// #region voting
+
+function invoice(): any {
+ if (DATA.invoice) {
+ return deepCopy(DATA.invoice);
+ }
+ const res: any = {
+ id: Random.integer(10000, 99999),
+ zone: 'Mountain View, CA 94043 United States',
+ address: '1600 Amphitheatre Parkway',
+ tel: '15900000000, +86 (021) 99999999',
+ date: genData(0),
+ to: {
+ company: 'XXX Company LTD',
+ zone: 'Mountain View, CA 94043 United States',
+ address: '1600 Amphitheatre Parkway',
+ tel: '15900000000, +86 (021) 99999999',
+ email: 'cipchk@qq.com'
+ },
+ payment: {
+ total: 0,
+ bank: 'XXXX Bank',
+ country: 'China',
+ city: 'Shang Hai',
+ address: 'xxx xxxx',
+ code: '012384'
+ },
+ wares: [
+ {
+ id: 1,
+ title: Random.title(),
+ remark: Random.title(),
+ price: +Random.float(0.1, 999).toFixed(2),
+ num: +Random.natural(1, 10)
+ },
+ {
+ id: 2,
+ title: Random.title(),
+ remark: Random.title(),
+ price: +Random.float(0.1, 999).toFixed(2),
+ num: +Random.natural(1, 10)
+ }
+ ],
+ note: Random.paragraph()
+ };
+ // total
+ res.wares.forEach((i: any) => {
+ i.total = +(i.price * i.num).toFixed(2);
+ });
+ res.tax_rate = 0.2;
+ res.total = +(res.wares as any[]).reduce((a, b) => (a += b.total), 0).toFixed(2);
+ res.tax = +(res.total * 0.2).toFixed(2);
+ res.payment_total = +(res.total + res.tax).toFixed(2);
+ DATA.invoice = res;
+
+ return deepCopy(DATA.invoice);
+}
+
+// #endregion
+
+// #region faq
+
+function faq(): any {
+ if (DATA.faq) {
+ return deepCopy(DATA.faq);
+ }
+ DATA.faq = new Array(6).fill({}).map((v, idx) => ({
+ title: `Knowledge ${idx + 1}`,
+ icon: 'question-circle',
+ primary: idx < 3,
+ remark: 'The list of FAQ',
+ children: new Array(Random.natural(3, 6)).fill({}).map((v, idx) => ({
+ active: idx === 0,
+ q: 'What is a product key?',
+ a: genHtml()
+ }))
+ }));
+
+ return deepCopy(DATA.faq);
+}
+
+// #endregion
+
+// #region calendar
+
+function calendar(req: any): any {
+ const cur = new Date(+req.time || new Date());
+ const startDate = startOfMonth(cur);
+ const max = getDaysInMonth(cur);
+ const start = format(startDate, 'yyyy-MM');
+ const now = format(new Date(), 'yyyy-MM-dd');
+ return [
+ {
+ id: 1,
+ title: 'All Day Event',
+ start: `${start}-1`,
+ className: 'fc-event-danger fc-event-fill-warning'
+ },
+ {
+ id: 2,
+ title: 'Reporting',
+ start: `${start}-7T13:30:00`,
+ end: `${start}-7`,
+ className: 'fc-event-success'
+ },
+ {
+ id: 3,
+ title: 'Company Trip',
+ start: `${start}-12`,
+ end: `${start}-14`,
+ className: 'fc-event-primary'
+ },
+ {
+ id: 4,
+ title: 'Product Release',
+ start: `${start}-3`,
+ end: `${start}-5`,
+ className: 'fc-event-light fc-event-fill-primary'
+ },
+ {
+ id: 5,
+ title: 'Repeating Event',
+ start: `${start}-09T16:00:00`,
+ className: 'fc-event-purple'
+ },
+ { id: 6, title: 'Repeating Event', start: `${start}-11T16:00:00` },
+ {
+ id: 7,
+ title: 'Meeting',
+ start: `${now}T10:00:00`,
+ end: `${now}T11:30:00`
+ },
+ { id: 8, title: 'Lunch', start: `${now}T12:00:00` },
+ {
+ id: 9,
+ title: 'Meeting',
+ start: `${now}T14:00:00`,
+ className: 'fc-event-warning'
+ },
+ {
+ id: 10,
+ title: 'Happy Hour',
+ start: `${now}T17:30:00`,
+ className: 'fc-event-success'
+ },
+ {
+ id: 11,
+ title: 'Dinner',
+ start: `${now}T18:30:00`,
+ className: 'fc-event-fill-danger fc-event-light'
+ },
+ {
+ id: 12,
+ title: 'Birthday Party',
+ start: `${now}T21:00:00`,
+ className: 'fc-event-primary'
+ },
+ {
+ id: 13,
+ title: 'Click for Ng Alain',
+ url: 'https://ng-alain.com',
+ start: `${start}-27`,
+ className: 'fc-event-fill-success fc-event-light'
+ },
+ {
+ id: 14,
+ title: 'Repeating Event',
+ start: `${start}-09T08:00:00`,
+ className: 'fc-event-magenta'
+ }
+ ];
+}
+
+// #endregion
+
+// #region quick
+
+function quick(): any {
+ if (DATA.quick) {
+ return deepCopy(DATA.quick);
+ }
+ DATA.quick = {
+ notifications: new Array(6).fill({}).map(() => ({
+ dot: genArr([
+ { icon: 'warning', bg: 'error' },
+ { icon: 'pie-chart', bg: 'primary' },
+ { icon: 'message', bg: 'success' },
+ { icon: 'bell', bg: 'cyan' }
+ ]),
+ content: Random.title(5, 15),
+ time: genArr(['01:01 PM', '09:00 AM', '18:56']),
+ tags: genTag().join(',')
+ })),
+ actions: new Array(6).fill({}).map(() => ({
+ bg: genColorName(),
+ title: Random.title(2, 3),
+ content: Random.title(5, 15)
+ })),
+ settings: {
+ notification: true,
+ audit_log: false,
+ new_order: false,
+ tracking_order: false,
+ reports_order: true,
+ new_customer: true,
+ reporting_customer: true
+ }
+ };
+
+ return deepCopy(DATA.quick);
+}
+
+// #endregion
+
+// #region dd
+
+function ddList(): any {
+ if (DATA.dd) {
+ return DATA.dd;
+ }
+ DATA.dd = [
+ {
+ name: 'total-sales',
+ title: '总数-总销售额',
+ enabled: true,
+ params: { title: '总销售额', total: 100, week: 10, day: 11, daySales: 1000 }
+ },
+ {
+ name: 'total-sales',
+ title: '总数-总订单量',
+ enabled: false,
+ params: { title: '总订单量', total: 5500, week: 320, day: 5, daySales: 5422 }
+ },
+ {
+ name: 'total-sales',
+ title: '总数-总用户量',
+ enabled: false,
+ params: { title: '总用户量', total: 500, week: 80, day: 23, daySales: 6666 }
+ },
+ {
+ name: 'total-sales',
+ title: '总数-其他',
+ enabled: false,
+ params: { title: '其他', total: 200, week: 80, day: 23, daySales: 77777 }
+ },
+ {
+ name: 'visits',
+ title: '访问量',
+ enabled: true,
+ params: { url: '/chart' }
+ },
+ {
+ name: 'effect',
+ title: '访问量',
+ enabled: true,
+ params: { percent: 66, week: 11, day: 23 }
+ },
+ {
+ name: 'gauge',
+ title: '核销率',
+ enabled: true
+ },
+ {
+ name: 'radar',
+ title: '指数',
+ enabled: true,
+ params: { title: '贡献指数', url: '/chart' }
+ },
+ {
+ name: 'activities',
+ title: '动态',
+ enabled: true,
+ params: { title: '动态', url: '/api/activities' }
+ }
+ ];
+ return DATA.dd;
+}
+
+function ddSave(req: any): any {
+ DATA.dd = req;
+ return { msg: 'ok' };
+}
+
+// #endregion
+
+export const OTHERS = {
+ '/kanban-board': kanbanList(),
+ 'DELETE /kanban-board': (req: MockRequest) => del('kanban', req.queryString),
+ '/task': taskList(),
+ 'DELETE /task': (req: MockRequest) => del('task', req.queryString),
+ '/email': (req: MockRequest) => emailList(req.queryString),
+ '/email/:id': (req: MockRequest) => emailGet(+req.params.id),
+ 'DELETE /email': (req: MockRequest) => del('email', req.queryString),
+ '/project': projectList(),
+ '/project/:id': (req: MockRequest) => projectGet(+req.params.id),
+ 'DELETE /project': (req: MockRequest) => del('project', req.queryString),
+ '/client': (req: MockRequest) => clientList(req.queryString),
+ '/client/:id': (req: MockRequest) => clientGet(+req.params.id),
+ '/contact': (req: MockRequest) => contactList(req.queryString),
+ 'DELETE /contact': (req: MockRequest) => del('contact', req.queryString),
+ '/pricing': () => pricingList(),
+ '/billing': (req: MockRequest) => billingList(req.queryString),
+ '/course': (req: MockRequest) => courseList(req.queryString),
+ '/chat': () => chatList(),
+ '/chat/message': () => {
+ const item: any = {
+ type: Random.boolean() && Random.boolean() ? 'image' : 'text',
+ dir: Random.boolean() ? 'left' : 'right'
+ };
+ item.msg = item.type === 'text' ? Random.paragraph(1, 1) : genBigMp();
+ return item;
+ },
+ '/gallery': () => galleryList(),
+ '/article': (req: MockRequest) => articleList(req.queryString),
+ '/article/:id': (req: MockRequest) => articleGet(+req.params.id),
+ 'DELETE /article': (req: MockRequest) => del('article', req.queryString),
+ 'POST /article': (req: MockRequest) => save('article', req.body),
+ '/voting': (req: MockRequest) => votingList(req.queryString),
+ 'POST /voting': (req: MockRequest) => votingSave(req.body),
+ '/invoice': () => invoice(),
+ '/faq': () => faq(),
+ '/calendar': (req: MockRequest) => calendar(req.queryString),
+ '/quick': () => quick(),
+ '/dd': () => ddList(),
+ 'POST /dd': (req: MockRequest) => ddSave(req.body)
+};
diff --git a/_mock/_permission.ts b/_mock/_permission.ts
new file mode 100644
index 00000000..be8b61cb
--- /dev/null
+++ b/_mock/_permission.ts
@@ -0,0 +1,58 @@
+import { MockRequest, MockStatusError } from '@delon/mock';
+import { deepCopy } from '@delon/util';
+
+interface Permission {
+ id: number;
+ parent_id: number;
+ text: string;
+}
+
+export const PermissionData: Permission[] = [
+ { id: 1, parent_id: 0, text: '超级权限' },
+ { id: 2, parent_id: 0, text: '系统' },
+ { id: 3, parent_id: 2, text: '员工' },
+ { id: 4, parent_id: 2, text: '菜单' },
+ { id: 5, parent_id: 2, text: '权限' },
+ { id: 6, parent_id: 0, text: '订单' },
+ { id: 7, parent_id: 6, text: '列表' },
+ { id: 8, parent_id: 6, text: '导入订单' },
+ { id: 9, parent_id: 6, text: '打印快递单' },
+ { id: 10, parent_id: 9, text: '批量打印' },
+ { id: 11, parent_id: 6, text: '发货' },
+ { id: 12, parent_id: 11, text: '批量发货' },
+];
+
+function getIdx(id: number): number {
+ id = +id;
+ const idx = PermissionData.findIndex((w) => w.id === id);
+ if (idx === -1) {
+ throw new MockStatusError(404);
+ }
+ return idx;
+}
+
+export const PERMISSION = {
+ '/permission': () => deepCopy(PermissionData),
+ 'POST /permission': (req: MockRequest) => {
+ const id = req.body.id || 0;
+ if (id > 0) {
+ const idx = getIdx(id);
+ PermissionData[idx] = { ...PermissionData[idx], ...req.body };
+ return { msg: 'ok', item: PermissionData[idx] };
+ }
+
+ const item = { ...req.body, id: PermissionData.sort((a, b) => b.id - a.id)[0].id + 1 };
+ PermissionData.push(item);
+ return { msg: 'ok', item };
+ },
+ 'DELETE /permission/:id': (req: MockRequest) => {
+ const idx = getIdx(req.params.id || 0);
+ PermissionData.splice(idx, 1);
+ return { msg: 'ok' };
+ },
+ 'POST /permission/move': (req: MockRequest) => {
+ const idx = getIdx(req.body.from || 0);
+ PermissionData[idx].parent_id = req.body.to || 0;
+ return { msg: 'ok', item: PermissionData[idx] };
+ },
+};
diff --git a/_mock/_pois.ts b/_mock/_pois.ts
new file mode 100644
index 00000000..ad4c9b01
--- /dev/null
+++ b/_mock/_pois.ts
@@ -0,0 +1,61 @@
+export const POIS = {
+ '/pois': {
+ total: 2,
+ list: [
+ {
+ id: 10000,
+ user_id: 1,
+ name: '测试品牌',
+ branch_name: '测试分店',
+ geo: 310105,
+ country: '中国',
+ province: '上海',
+ city: '上海市',
+ district: '长宁区',
+ address: '中山公园',
+ tel: '15900000000',
+ categories: '美食,粤菜,湛江菜',
+ lng: 121.41707989151003,
+ lat: 31.218656214644792,
+ recommend: '推荐品',
+ special: '特色服务',
+ introduction: '商户简介',
+ open_time: '营业时间',
+ avg_price: 260,
+ reason: null,
+ status: 1,
+ status_str: '待审核',
+ status_wx: 1,
+ modified: 1505826527288,
+ created: 1505826527288,
+ },
+ {
+ id: 10001,
+ user_id: 2,
+ name: '测试品牌2',
+ branch_name: '测试分店2',
+ geo: 310105,
+ country: '中国',
+ province: '上海',
+ city: '上海市',
+ district: '长宁区',
+ address: '中山公园',
+ tel: '15900000000',
+ categories: '美食,粤菜,湛江菜',
+ lng: 121.41707989151003,
+ lat: 31.218656214644792,
+ recommend: '推荐品',
+ special: '特色服务',
+ introduction: '商户简介',
+ open_time: '营业时间',
+ avg_price: 260,
+ reason: null,
+ status: 1,
+ status_str: '待审核',
+ status_wx: 1,
+ modified: 1505826527288,
+ created: 1505826527288,
+ },
+ ],
+ },
+};
diff --git a/_mock/_profile.ts b/_mock/_profile.ts
new file mode 100644
index 00000000..888f5573
--- /dev/null
+++ b/_mock/_profile.ts
@@ -0,0 +1,152 @@
+const basicGoods = [
+ {
+ id: '1234561',
+ name: '矿泉水 550ml',
+ barcode: '12421432143214321',
+ price: '2.00',
+ num: '1',
+ amount: '2.00',
+ },
+ {
+ id: '1234562',
+ name: '凉茶 300ml',
+ barcode: '12421432143214322',
+ price: '3.00',
+ num: '2',
+ amount: '6.00',
+ },
+ {
+ id: '1234563',
+ name: '好吃的薯片',
+ barcode: '12421432143214323',
+ price: '7.00',
+ num: '4',
+ amount: '28.00',
+ },
+ {
+ id: '1234564',
+ name: '特别好吃的蛋卷',
+ barcode: '12421432143214324',
+ price: '8.50',
+ num: '3',
+ amount: '25.50',
+ },
+];
+
+const basicProgress = [
+ {
+ key: '1',
+ time: '2017-10-01 14:10',
+ rate: '联系客户',
+ status: 'processing',
+ operator: '取货员 ID1234',
+ cost: '5mins',
+ },
+ {
+ key: '2',
+ time: '2017-10-01 14:05',
+ rate: '取货员出发',
+ status: 'success',
+ operator: '取货员 ID1234',
+ cost: '1h',
+ },
+ {
+ key: '3',
+ time: '2017-10-01 13:05',
+ rate: '取货员接单',
+ status: 'success',
+ operator: '取货员 ID1234',
+ cost: '5mins',
+ },
+ {
+ key: '4',
+ time: '2017-10-01 13:00',
+ rate: '申请审批通过',
+ status: 'success',
+ operator: '系统',
+ cost: '1h',
+ },
+ {
+ key: '5',
+ time: '2017-10-01 12:00',
+ rate: '发起退货申请',
+ status: 'success',
+ operator: '用户',
+ cost: '5mins',
+ },
+];
+
+const advancedOperation1 = [
+ {
+ key: 'op1',
+ type: '订购关系生效',
+ name: '曲丽丽',
+ status: 'agree',
+ updatedAt: '2017-10-03 19:23:12',
+ memo: '-',
+ },
+ {
+ key: 'op2',
+ type: '财务复审',
+ name: '付小小',
+ status: 'reject',
+ updatedAt: '2017-10-03 19:23:12',
+ memo: '不通过原因',
+ },
+ {
+ key: 'op3',
+ type: '部门初审',
+ name: '周毛毛',
+ status: 'agree',
+ updatedAt: '2017-10-03 19:23:12',
+ memo: '-',
+ },
+ {
+ key: 'op4',
+ type: '提交订单',
+ name: '林东东',
+ status: 'agree',
+ updatedAt: '2017-10-03 19:23:12',
+ memo: '很棒',
+ },
+ {
+ key: 'op5',
+ type: '创建订单',
+ name: '汗牙牙',
+ status: 'agree',
+ updatedAt: '2017-10-03 19:23:12',
+ memo: '-',
+ },
+];
+
+const advancedOperation2 = [
+ {
+ key: 'op1',
+ type: '订购关系生效',
+ name: '曲丽丽',
+ status: 'agree',
+ updatedAt: '2017-10-03 19:23:12',
+ memo: '-',
+ },
+];
+
+const advancedOperation3 = [
+ {
+ key: 'op1',
+ type: '创建订单',
+ name: '汗牙牙',
+ status: 'agree',
+ updatedAt: '2017-10-03 19:23:12',
+ memo: '-',
+ },
+];
+
+export const PROFILES = {
+ 'GET /profile/progress': basicProgress,
+ 'GET /profile/goods': basicGoods,
+ 'GET /profile/advanced': {
+ advancedOperation1,
+ advancedOperation2,
+ advancedOperation3,
+ },
+};
diff --git a/_mock/_role.ts b/_mock/_role.ts
new file mode 100644
index 00000000..84afc1e4
--- /dev/null
+++ b/_mock/_role.ts
@@ -0,0 +1,73 @@
+import { MockRequest, MockStatusError } from '@delon/mock';
+import { deepCopy } from '@delon/util';
+
+interface Permission {
+ id: number;
+ parent_id: number;
+ text: string;
+ permission: number[];
+}
+
+export const RuleData: Permission[] = [
+ { id: 1, parent_id: 0, text: '管理', permission: [1] },
+ { id: 2, parent_id: 0, text: '仓储', permission: [] },
+ { id: 3, parent_id: 0, text: '营销', permission: [] },
+ { id: 4, parent_id: 0, text: '第三方', permission: [7] },
+ {
+ id: 5,
+ parent_id: 2,
+ text: '仓储经理',
+ permission: [6, 7, 8, 9, 10, 11, 12],
+ },
+ { id: 6, parent_id: 2, text: '出库员', permission: [6, 7, 9, 10, 11, 12] },
+ { id: 7, parent_id: 2, text: '入库员', permission: [6, 7] },
+ { id: 8, parent_id: 3, text: '市场经理', permission: [6, 7] },
+ { id: 9, parent_id: 3, text: '销售人员', permission: [6, 7] },
+];
+
+function get(params: any): any {
+ let ret = deepCopy(RuleData);
+ if (params.q) {
+ ret = ret.filter((data: any) => data.text.indexOf(params.q) > -1);
+ }
+ const p = +(params.permission || '0');
+ if (p > 0) {
+ ret = ret.filter((data: any) => data.permission.includes(p));
+ }
+ return ret;
+}
+
+function getIdx(id: number): number {
+ id = +id;
+ const idx = RuleData.findIndex((w) => w.id === id);
+ if (idx === -1) {
+ throw new MockStatusError(404);
+ }
+ return idx;
+}
+
+export const ROLES_PRO = {
+ '/role': (req: MockRequest) => get(req.queryString),
+ 'POST /role': (req: MockRequest) => {
+ const id = req.body.id || 0;
+ if (id > 0) {
+ const idx = getIdx(id);
+ RuleData[idx] = { ...RuleData[idx], ...req.body };
+ return { msg: 'ok', item: RuleData[idx] };
+ }
+
+ const item = { ...req.body, id: RuleData.sort((a, b) => b.id - a.id)[0].id + 1 };
+ RuleData.push(item);
+ return { msg: 'ok', item };
+ },
+ 'DELETE /role/:id': (req: MockRequest) => {
+ const idx = getIdx(req.params.id || 0);
+ RuleData.splice(idx, 1);
+ return { msg: 'ok' };
+ },
+ 'POST /role/move': (req: MockRequest) => {
+ const idx = getIdx(req.body.from || 0);
+ RuleData[idx].parent_id = req.body.to || 0;
+ return { msg: 'ok', item: RuleData[idx] };
+ },
+};
diff --git a/_mock/_rule.ts b/_mock/_rule.ts
new file mode 100644
index 00000000..64f40087
--- /dev/null
+++ b/_mock/_rule.ts
@@ -0,0 +1,82 @@
+import { HttpRequest } from '@angular/common/http';
+import { MockRequest } from '@delon/mock';
+
+const list: any[] = [];
+
+for (let i = 0; i < 46; i += 1) {
+ list.push({
+ key: i,
+ disabled: i % 6 === 0,
+ href: 'https://ant.design',
+ avatar: [
+ 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
+ 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
+ ][i % 2],
+ no: `TradeCode ${i}`,
+ title: `一个任务名称 ${i}`,
+ owner: '曲丽丽',
+ description: '这是一段描述',
+ callNo: Math.floor(Math.random() * 1000),
+ status: Math.floor(Math.random() * 10) % 4,
+ updatedAt: new Date(`2017-07-${i < 18 ? '0' + (Math.floor(i / 2) + 1) : Math.floor(i / 2) + 1}`),
+ createdAt: new Date(`2017-07-${i < 18 ? '0' + (Math.floor(i / 2) + 1) : Math.floor(i / 2) + 1}`),
+ progress: Math.ceil(Math.random() * 100),
+ });
+}
+
+function getRule(params: any): any[] {
+ let ret = [...list];
+ if (params.sorter) {
+ const s = params.sorter.split('_');
+ ret = ret.sort((prev, next) => {
+ if (s[1] === 'descend') {
+ return next[s[0]] - prev[s[0]];
+ }
+ return prev[s[0]] - next[s[0]];
+ });
+ }
+ if (params.statusList && params.statusList.length > 0) {
+ ret = ret.filter((data) => params.statusList.indexOf(data.status) > -1);
+ }
+ if (params.no) {
+ ret = ret.filter((data) => data.no.indexOf(params.no) > -1);
+ }
+ return ret;
+}
+
+function removeRule(nos: string): boolean {
+ nos.split(',').forEach((no) => {
+ const idx = list.findIndex((w) => w.no === no);
+ if (idx !== -1) {
+ list.splice(idx, 1);
+ }
+ });
+ return true;
+}
+
+function saveRule(description: string): void {
+ const i = Math.ceil(Math.random() * 10000);
+ list.unshift({
+ key: i,
+ href: 'https://ant.design',
+ avatar: [
+ 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
+ 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
+ ][i % 2],
+ no: `TradeCode ${i}`,
+ title: `一个任务名称 ${i}`,
+ owner: '曲丽丽',
+ description,
+ callNo: Math.floor(Math.random() * 1000),
+ status: Math.floor(Math.random() * 10) % 2,
+ updatedAt: new Date(),
+ createdAt: new Date(),
+ progress: Math.ceil(Math.random() * 100),
+ });
+}
+
+export const RULES = {
+ '/rule': (req: MockRequest) => getRule(req.queryString),
+ 'DELETE /rule': (req: MockRequest) => removeRule(req.queryString.nos),
+ 'POST /rule': (req: MockRequest) => saveRule(req.body.description),
+};
diff --git a/_mock/_trade.ts b/_mock/_trade.ts
new file mode 100644
index 00000000..6290e476
--- /dev/null
+++ b/_mock/_trade.ts
@@ -0,0 +1,172 @@
+import { MockRequest, MockStatusError } from '@delon/mock';
+import { deepCopy } from '@delon/util';
+import { Random } from 'mockjs';
+
+import { genMp, genName } from './utils';
+
+interface Trade {
+ id: number;
+ buyer_id: number;
+ buyer_nick: string;
+ price: number;
+ discount_fee: number;
+ post_fee: number;
+ payment: number;
+ pay_time?: Date;
+ status: number;
+ status_str: string;
+ logistics_name?: string;
+ logistics_no?: string;
+ finished?: Date;
+ created: Date;
+ wares: TradeWare[];
+ memo?: string;
+ [key: string]: any;
+}
+
+interface TradeWare {
+ ware_id: number;
+ sku_id: number;
+ num: number;
+ price: number;
+ mp: string;
+ title: string;
+}
+
+const DATA: Trade[] = [];
+const STATUS: { [key: string]: string } = {
+ CANCELED: '取消',
+ WAIT_BUYER_PAY: '等待买家付款',
+ WAIT_PAY_CONFIRM: '支付确认中',
+ WAIT_SELLER_STOCK_OUT: '等待出库',
+ WAIT_GOODS_RECEIVE_CONFIRM: '等待确认收货',
+ FINISHED: '交易成功'
+};
+
+for (let i = 1; i <= 30; i += 1) {
+ const buyer_nick = genName();
+ const status: any = Object.keys(STATUS)[Random.natural(0, 5)];
+ let pay_time: Date | null = null;
+ let finished: Date | null = null;
+ if (status !== 'WAIT_BUYER_PAY' || status !== 'CANCELED') {
+ pay_time = new Date();
+ }
+ if (status !== 'FINISHED') {
+ finished = new Date();
+ }
+ const price = Random.natural(100, 10000);
+ const discount_fee = Random.natural(0, 100);
+ const post_fee = Random.natural(6, 20);
+
+ DATA.push({
+ id: 10000 * i,
+ buyer_id: Random.natural(10000, 100000),
+ buyer_nick,
+ buyer_tel: Random.natural(10000000000, 19999999999),
+ buyer_adr: Random.city(true),
+ buyer_message: Random.title(5, 20),
+ price,
+ discount_fee,
+ post_fee,
+ payment: price - discount_fee + post_fee,
+ pay_time,
+ finished,
+ status,
+ status_str: STATUS[status],
+ logistics_name: '',
+ logistics_no: '',
+ created: new Date(),
+ wares: genWare(Random.natural(1, 5))
+ } as any);
+}
+
+function genWare(count: number): TradeWare[] {
+ return new Array(count).fill({}).map((v, idx) => ({
+ ware_id: Random.natural(10000, 10020),
+ sku_id: (idx + 1) * 1000,
+ num: Random.natural(1, 10),
+ price: Random.natural(10, 500),
+ mp: genMp(),
+ title: Random.ctitle(5, 10)
+ }));
+}
+
+function get(params: any): any {
+ let ret = deepCopy(DATA);
+ if (params.sorter) {
+ const s = params.sorter.split('_');
+ ret = ret.sort((prev: any, next: any) => {
+ if (s[1] === 'descend') {
+ return next[s[0]] - prev[s[0]];
+ }
+ return prev[s[0]] - next[s[0]];
+ });
+ }
+ if (params.id) {
+ ret = ret.filter((data: any) => data.id == params.id);
+ }
+ if (params.statusList && params.statusList.length > 0) {
+ ret = ret.filter((data: any) => params.statusList.indexOf(data.status) > -1);
+ }
+ if (params.ware_id) {
+ ret = ret.filter((data: any) => data.wares.find((w: any) => w.ware_id == params.ware_id));
+ }
+ if (params.buyer_nick) {
+ ret = ret.filter((data: any) => data.buyer_nick.indexOf(params.buyer_nick) > -1);
+ }
+ return ret;
+}
+
+function getIdx(id: number): number {
+ id = +id;
+ const idx = DATA.findIndex(w => w.id === id);
+ if (idx === -1) {
+ throw new MockStatusError(404);
+ }
+ return idx;
+}
+
+export const TRADES = {
+ '/trade': (req: MockRequest) => {
+ const pi = +(req.queryString.pi || 1);
+ const ps = +(req.queryString.ps || 10);
+ const data = get(req.queryString);
+ return {
+ total: data.length,
+ list: data.slice((pi - 1) * ps, pi * ps)
+ };
+ },
+ 'POST /trade': (req: MockRequest) => {
+ const id = req.body.id || 0;
+ if (id > 0) {
+ const idx = getIdx(id);
+ DATA[idx] = { ...DATA[idx], ...req.body };
+ return { msg: 'ok', item: DATA[idx] };
+ }
+
+ const item = { ...req.body, id: DATA.sort((a, b) => b.id - a.id)[0].id + 1 };
+ DATA.push(item);
+ return { msg: 'ok', item };
+ },
+ '/trade/:id': (req: MockRequest) => {
+ const idx = getIdx(req.params.id || 0);
+ const item = { ...DATA[idx] };
+ return item;
+ },
+ 'DELETE /trade/:id': (req: MockRequest) => {
+ const idx = getIdx(req.params.id || 0);
+ DATA.splice(idx, 1);
+ return { msg: 'ok' };
+ },
+ 'POST /trade/status': (req: MockRequest) => {
+ const idx = getIdx(req.body.id || 0);
+ DATA[idx].status = req.body.status;
+ DATA[idx].status_str = STATUS[req.body.status];
+ return { msg: 'ok', item: DATA[idx] };
+ },
+ 'POST /trade/memo': (req: MockRequest) => {
+ const idx = getIdx(req.body.id || 0);
+ DATA[idx].memo = req.body.memo;
+ return { msg: 'ok', item: DATA[idx] };
+ }
+};
diff --git a/_mock/_user-pro.ts b/_mock/_user-pro.ts
new file mode 100644
index 00000000..3909efb4
--- /dev/null
+++ b/_mock/_user-pro.ts
@@ -0,0 +1,91 @@
+import { MockRequest, MockStatusError } from '@delon/mock';
+import { deepCopy } from '@delon/util';
+import { Random } from 'mockjs';
+import { genName } from './utils';
+import { RuleData } from './_role';
+
+interface UserPro {
+ id: number;
+ name: string;
+ userName: string;
+ email: string;
+ verified: boolean;
+ status: 'active' | 'banned' | 'deleted';
+ role?: any;
+ permission?: any[];
+ created: Date;
+}
+
+const DATA: UserPro[] = [];
+
+for (let i = 1; i <= 20; i += 1) {
+ const name = genName();
+ DATA.push({
+ id: i,
+ name,
+ userName: `user name ${i}`,
+ email: `${name}` + ['@qq.com', '@gmail.com', '@163.com'][Math.floor(Math.random() * 10) % 3],
+ verified: [true, false][Math.floor(Math.random() * 10) % 2],
+ status: ['active', 'banned', 'deleted'][Math.floor(Math.random() * 10) % 3] as any,
+ role: deepCopy(RuleData[Random.natural(0, RuleData.length - 1)]),
+ permission: [],
+ created: new Date(),
+ });
+}
+
+function get(params: any): any {
+ let ret = deepCopy(DATA);
+ if (params.q) {
+ ret = ret.filter((data: any) => data.name.indexOf(params.q) > -1);
+ }
+ if (params.email) {
+ ret = ret.filter((data: any) => data.email.indexOf(params.email) > -1);
+ }
+ return ret;
+}
+
+function getIdx(id: number): number {
+ id = +id;
+ const idx = DATA.findIndex((w) => w.id === id);
+ if (idx === -1) {
+ throw new MockStatusError(404);
+ }
+ return idx;
+}
+
+export const USERS_PRO = {
+ '/user-pro': (req: MockRequest) => {
+ const pi = +(req.queryString.pi || 1);
+ const ps = +(req.queryString.ps || 10);
+ const data = get(req.queryString);
+ return {
+ total: data.length,
+ list: data.slice((pi - 1) * ps, pi * ps),
+ };
+ },
+ 'POST /user-pro': (req: MockRequest) => {
+ const id = req.body.id || 0;
+ // fix role data
+ req.body.role = RuleData.find((w) => w.id === req.body.role.id);
+
+ if (id > 0) {
+ const idx = getIdx(id);
+ DATA[idx] = { ...DATA[idx], ...req.body };
+ return { msg: 'ok', item: DATA[idx] };
+ }
+
+ const item = { ...req.body, id: DATA.sort((a, b) => b.id - a.id)[0].id + 1 };
+ DATA.push(item);
+ return { msg: 'ok', item };
+ },
+ '/user-pro/:id': (req: MockRequest) => {
+ const idx = getIdx(req.params.id || 0);
+ const item = { ...DATA[idx], ...req.body };
+ return item;
+ },
+ 'DELETE /user-pro/:id': (req: MockRequest) => {
+ const idx = getIdx(req.params.id || 0);
+ DATA.splice(idx, 1);
+ return { msg: 'ok' };
+ },
+};
diff --git a/_mock/_user.ts b/_mock/_user.ts
new file mode 100644
index 00000000..386ffd1b
--- /dev/null
+++ b/_mock/_user.ts
@@ -0,0 +1,122 @@
+import { MockRequest } from '@delon/mock';
+
+const list: any[] = [];
+const total = 50;
+
+for (let i = 0; i < total; i += 1) {
+ list.push({
+ id: i + 1,
+ disabled: i % 6 === 0,
+ href: 'https://ant.design',
+ avatar: [
+ 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
+ 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
+ ][i % 2],
+ no: `TradeCode ${i}`,
+ title: `一个任务名称 ${i}`,
+ owner: '曲丽丽',
+ description: '这是一段描述',
+ callNo: Math.floor(Math.random() * 1000),
+ status: Math.floor(Math.random() * 10) % 4,
+ updatedAt: new Date(`2017-07-${Math.floor(i / 2) + 1}`),
+ createdAt: new Date(`2017-07-${Math.floor(i / 2) + 1}`),
+ progress: Math.ceil(Math.random() * 100),
+ });
+}
+
+function genData(params: any): { total: number; list: any[] } {
+ let ret = [...list];
+ const pi = +params.pi;
+ const ps = +params.ps;
+ const start = (pi - 1) * ps;
+
+ if (params.no) {
+ ret = ret.filter((data) => data.no.indexOf(params.no) > -1);
+ }
+
+ return { total: ret.length, list: ret.slice(start, ps * pi) };
+}
+
+function saveData(id: number, value: any): { msg: string } {
+ const item = list.find((w) => w.id === id);
+ if (!item) {
+ return { msg: '无效用户信息' };
+ }
+ Object.assign(item, value);
+ return { msg: 'ok' };
+}
+
+export const USERS = {
+ '/user': (req: MockRequest) => genData(req.queryString),
+ '/user/:id': (req: MockRequest) => list.find((w) => w.id === +req.params.id),
+ 'POST /user/:id': (req: MockRequest) => saveData(+req.params.id, req.body),
+ '/user/current': {
+ name: 'Cipchk',
+ avatar: 'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png',
+ userid: '00000001',
+ email: 'cipchk@qq.com',
+ signature: '海纳百川,有容乃大',
+ title: '交互专家',
+ group: '蚂蚁金服-某某某事业群-某某平台部-某某技术部-UED',
+ tags: [
+ {
+ key: '0',
+ label: '很有想法的',
+ },
+ {
+ key: '1',
+ label: '专注撩妹',
+ },
+ {
+ key: '2',
+ label: '帅~',
+ },
+ {
+ key: '3',
+ label: '通吃',
+ },
+ {
+ key: '4',
+ label: '专职后端',
+ },
+ {
+ key: '5',
+ label: '海纳百川',
+ },
+ ],
+ notifyCount: 12,
+ country: 'China',
+ geographic: {
+ province: {
+ label: '上海',
+ key: '330000',
+ },
+ city: {
+ label: '市辖区',
+ key: '330100',
+ },
+ },
+ address: 'XX区XXX路 XX 号',
+ phone: '你猜-你猜你猜猜猜',
+ },
+ 'POST /user/avatar': 'ok',
+ 'POST /login/account': (req: MockRequest) => {
+ const data = req.body;
+ if (!(data.userName === 'admin' || data.userName === 'user') || data.password !== 'ng-alain.com') {
+ return { msg: `Invalid username or password(admin/ng-alain.com)` };
+ }
+ return {
+ msg: 'ok',
+ user: {
+ token: '123456789',
+ name: data.userName,
+ email: `${data.userName}@qq.com`,
+ id: 10000,
+ time: +new Date(),
+ },
+ };
+ },
+ 'POST /register': {
+ msg: 'ok',
+ },
+};
diff --git a/_mock/_ware.ts b/_mock/_ware.ts
new file mode 100644
index 00000000..e52d4fdb
--- /dev/null
+++ b/_mock/_ware.ts
@@ -0,0 +1,163 @@
+import { MockRequest, MockStatusError } from '@delon/mock';
+import { deepCopy } from '@delon/util';
+import { genMp } from './utils';
+
+interface UserPro {
+ cid: number;
+ cname: string;
+ id: number;
+ name: string;
+ mp: string;
+ stock: number;
+ outer_id: string;
+ market_price: number;
+ price: number;
+ sale_num: number;
+ status: string;
+ modified: Date;
+ [key: string]: any;
+}
+
+const DATA: UserPro[] = [];
+
+for (let i = 1; i <= 20; i += 1) {
+ const name = ['HUAWEI Mate 20 Pro', '小米MAX3', 'IPhone X', 'Gree 8,000 BTU Portable Air Conditioner'][
+ Math.floor(Math.random() * 10) % 4
+ ];
+ DATA.push({
+ cid: i * 1000,
+ cname: '',
+ id: i + 10000,
+ name,
+ mp: genMp(),
+ stock: Math.floor(Math.random() * 1000) % 1000,
+ outer_id: `S50-${Math.floor(Math.random() * 100) % 100}`,
+ market_price: Math.floor(Math.random() * 1000) % 1000,
+ price: Math.floor(Math.random() * 1000) % 1000,
+ sale_num: Math.floor(Math.random() * 200) % 200,
+ modified: new Date(),
+ status: ['CUSTORMER_DOWN', 'ON_SALE', 'AUDIT_AWAIT', 'DELETED'][Math.floor(Math.random() * 10) % 4],
+ brand: 1,
+ place: 1,
+ });
+}
+
+function get(params: any): any {
+ let ret = deepCopy(DATA);
+ if (params.q) {
+ ret = ret.filter((data: any) => data.name.indexOf(params.q) > -1);
+ }
+ if (params.email) {
+ ret = ret.filter((data: any) => data.email.indexOf(params.email) > -1);
+ }
+ return ret;
+}
+
+function getIdx(id: number): number {
+ id = +id;
+ const idx = DATA.findIndex((w) => w.id === id);
+ if (idx === -1) {
+ throw new MockStatusError(404);
+ }
+ return idx;
+}
+
+export const WARES = {
+ '/ware': (req: MockRequest) => {
+ const pi = +(req.queryString.pi || 1);
+ const ps = +(req.queryString.ps || 10);
+ const data = get(req.queryString);
+ return {
+ total: data.length,
+ list: data.slice((pi - 1) * ps, pi * ps),
+ };
+ },
+ 'POST /ware': (req: MockRequest) => {
+ const id = req.body.id || 0;
+ if (id > 0) {
+ const idx = getIdx(id);
+ DATA[idx] = { ...DATA[idx], ...req.body };
+ return { msg: 'ok', item: DATA[idx] };
+ }
+
+ const item = { ...req.body, id: DATA.sort((a, b) => b.id - a.id)[0].id + 1 };
+ DATA.push(item);
+ return { msg: 'ok', item };
+ },
+ '/ware/:id': (req: MockRequest) => {
+ const idx = getIdx(req.params.id || 0);
+ const item = {
+ id: 0,
+ brand: 1,
+ is_7return: true,
+ prop: {
+ 1: '是',
+ 2: '24天',
+ 3: '0.5克',
+ },
+ place: 1,
+ weight: 10,
+ skus: [
+ {
+ id: 10001,
+ attributes: '1:10',
+ names: [`红色`, `S`],
+ price: 1000,
+ stock: 10,
+ },
+ {
+ id: 10002,
+ attributes: '1:11',
+ names: [`红色`, `M`],
+ price: 1000,
+ stock: 11,
+ },
+ {
+ id: 10003,
+ attributes: '3:10',
+ names: [`蓝色1`, `S`],
+ price: 1000,
+ stock: 12,
+ },
+ {
+ id: 10004,
+ attributes: '3:11',
+ names: [`蓝色1`, `M`],
+ price: 1000,
+ stock: 13,
+ },
+ ],
+ imgs: {
+ 0: ['https://randomuser.me/api/portraits/lego/0.jpg'],
+ 1: ['https://randomuser.me/api/portraits/lego/1.jpg'],
+ 3: ['https://randomuser.me/api/portraits/lego/3.jpg'],
+ },
+ desc: `Test
`,
+ ...(DATA[idx] as any),
+ };
+ return item;
+ },
+ 'DELETE /ware/:id': (req: MockRequest) => {
+ const idx = getIdx(req.params.id || 0);
+ DATA.splice(idx, 1);
+ return { msg: 'ok' };
+ },
+ 'POST /ware/status': (req: MockRequest) => {
+ const idx = getIdx(req.body.id || 0);
+ const item = DATA[idx];
+ item.status = req.body.status;
+ return { msg: 'ok', item };
+ },
+ '/ware/cat': [
+ { id: 1, name: '颜色', value: '红色', color: '#f5222d', type: 'color' },
+ { id: 2, name: '颜色', value: '绿色', color: '#a0d911', type: 'color' },
+ { id: 3, name: '颜色', value: '蓝色', color: '#1890ff', type: 'color' },
+ { id: 4, name: '颜色', value: '洋红', color: '#eb2f96', type: 'color' },
+ { id: 10, name: '尺寸', value: 'S', type: 'size' },
+ { id: 11, name: '尺寸', value: 'M', type: 'size' },
+ { id: 12, name: '尺寸', value: 'L', type: 'size' },
+ { id: 13, name: '尺寸', value: 'XL', type: 'size' },
+ { id: 14, name: '尺寸', value: 'XXL', type: 'size' },
+ { id: 15, name: '尺寸', value: 'XXXL', type: 'size' },
+ ],
+};
diff --git a/_mock/index.ts b/_mock/index.ts
new file mode 100644
index 00000000..69e1167a
--- /dev/null
+++ b/_mock/index.ts
@@ -0,0 +1,21 @@
+export * from './_profile';
+export * from './_rule';
+export * from './_api';
+export * from './_chart';
+export * from './_pois';
+export * from './_user';
+export * from './_geo';
+
+export * from './_file-manager';
+export * from './_img';
+export * from './_log';
+export * from './_menu';
+export * from './_permission';
+export * from './_role';
+export * from './_user-pro';
+export * from './utils';
+
+export * from './_forum';
+export * from './_other';
+export * from './_trade';
+export * from './_ware';
diff --git a/_mock/utils.ts b/_mock/utils.ts
new file mode 100644
index 00000000..71a98721
--- /dev/null
+++ b/_mock/utils.ts
@@ -0,0 +1,160 @@
+import addDays from 'date-fns/addDays';
+import format from 'date-fns/format';
+import { Random } from 'mockjs';
+
+export const COLOR_NAMES = ['red', 'volcano', 'orange', 'gold', 'yellow', 'lime', 'green', 'cyan', 'blue', 'geekblue', 'purple', 'magenta'];
+
+export function genName(): any {
+ return genArr(['asdf', 'cipchk', '卡色']);
+}
+
+export function genProvince(): any {
+ return genArr([
+ '台湾',
+ '河北',
+ '山西',
+ '内蒙古',
+ '辽宁',
+ '吉林',
+ '黑龙江',
+ '江苏',
+ '浙江',
+ '安徽',
+ '福建',
+ '江西',
+ '山东',
+ '河南',
+ '湖北',
+ '湖南',
+ '广东',
+ '广西',
+ '海南',
+ '四川',
+ '贵州',
+ '云南',
+ '西藏',
+ '陕西',
+ '甘肃',
+ '青海',
+ '宁夏',
+ '新疆',
+ '北京',
+ '天津',
+ '上海',
+ '重庆',
+ '香港',
+ '澳门',
+ ]);
+}
+
+export function genArr(arr: any[], count: number = 1): any {
+ if (count === 1) {
+ return arr[Random.natural(0, arr.length - 1)];
+ }
+ return new Array(count <= -1 ? Random.natural(0, -count) : count).fill({}).map(() => {
+ return arr[Random.natural(0, arr.length - 1)];
+ });
+}
+
+export function genColorName(): any {
+ return genArr(COLOR_NAMES);
+}
+
+export function genLabel(): any {
+ return genArr([
+ {
+ color: 'green',
+ text: 'Clients',
+ },
+ {
+ color: 'red',
+ text: 'Important',
+ },
+ {
+ color: 'blue',
+ text: 'Other',
+ },
+ ]);
+}
+
+/** 生成头像,`id` 只能0-8 */
+export function genMp(id?: number): string {
+ return `https://randomuser.me/api/portraits/lego/${typeof id === 'undefined' ? Random.natural(0, 8) : id}.jpg`;
+}
+
+export function genBigMp(): string {
+ return `./assets/tmp/img-big/${Random.natural(1, 8)}.jpg`;
+}
+
+export function genTag(num: number = -3): any {
+ return genArr(['Angular', 'Node', 'HTML5', 'Less', 'Db', 'Python', 'Go'], num);
+}
+
+export function addDate(days: number): Date {
+ return addDays(new Date(), days);
+}
+
+export function genData(days: number, dateFormat: string = 'yyyy-MM-dd'): string {
+ return format(addDate(days), dateFormat);
+}
+
+export function rudeCopy(obj: any): string {
+ return JSON.parse(JSON.stringify(obj));
+}
+
+export function genContent(): string {
+ return `
+ 主标题
+ 次标题
+ 段落,${Random.cparagraph(1, 1)}
+
段落,${Random.paragraph(1, 1)}
+
列表
+
+ -
+
段落,${Random.paragraph(1, 1)}
+
+
+ -
+
段落,${Random.paragraph(1, 1)}
+
+ -
+
段落,${Random.paragraph(1, 1)}
+
+
+ 图像
+ })
+ 表格
+
+
+
+ | 列 |
+ 列 |
+ 列 |
+
+
+
+
+ | 列 |
+ 列 |
+ 列 |
+
+
+ | 列 |
+ 列 |
+ 列 |
+
+
+ | 列 |
+ 列 |
+ 列 |
+
+
+
+ `;
+}
diff --git a/angular.json b/angular.json
new file mode 100644
index 00000000..b04d04a7
--- /dev/null
+++ b/angular.json
@@ -0,0 +1,141 @@
+{
+ "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
+ "cli": {
+ "analytics": "0398a482-260e-4ce3-b33e-91ecf55f0703"
+ },
+ "version": 1,
+ "newProjectRoot": "projects",
+ "projects": {
+ "ng-alain": {
+ "projectType": "application",
+ "root": "",
+ "sourceRoot": "src",
+ "prefix": "app",
+ "schematics": {
+ "@schematics/angular:component": {
+ "style": "less"
+ },
+ "@schematics/angular:application": {
+ "strict": true
+ }
+ },
+ "architect": {
+ "build": {
+ "builder": "@angular-devkit/build-angular:browser",
+ "options": {
+ "outputPath": "dist",
+ "index": "src/index.html",
+ "main": "src/main.ts",
+ "tsConfig": "tsconfig.app.json",
+ "polyfills": "src/polyfills.ts",
+ "assets": [
+ "src/assets",
+ "src/favicon.ico"
+ ],
+ "styles": [
+ "node_modules/perfect-scrollbar/css/perfect-scrollbar.css",
+ "node_modules/quill/dist/quill.snow.css",
+ "src/styles.less"
+ ],
+ "scripts": [
+ "node_modules/quill/dist/quill.min.js",
+ "node_modules/perfect-scrollbar/dist/perfect-scrollbar.js"
+ ],
+ "allowedCommonJsDependencies": [
+ "ajv",
+ "ajv-formats"
+ ]
+ },
+ "configurations": {
+ "production": {
+ "fileReplacements": [
+ {
+ "replace": "src/environments/environment.ts",
+ "with": "src/environments/environment.prod.ts"
+ }
+ ],
+ "outputHashing": "all",
+ "budgets": [
+ {
+ "type": "initial",
+ "maximumWarning": "2mb",
+ "maximumError": "5mb"
+ }
+ ]
+ },
+ "development": {
+ "buildOptimizer": false,
+ "optimization": false,
+ "vendorChunk": true,
+ "extractLicenses": false,
+ "sourceMap": true,
+ "namedChunks": true
+ }
+ },
+ "defaultConfiguration": "production"
+ },
+ "serve": {
+ "builder": "@angular-devkit/build-angular:dev-server",
+ "options": {
+ "browserTarget": "ng-alain:build",
+ "proxyConfig": "proxy.conf.js"
+ },
+ "configurations": {
+ "production": {
+ "browserTarget": "ng-alain:build:production"
+ },
+ "development": {
+ "browserTarget": "ng-alain:build:development"
+ }
+ },
+ "defaultConfiguration": "development"
+ },
+ "extract-i18n": {
+ "builder": "@angular-devkit/build-angular:extract-i18n",
+ "options": {
+ "browserTarget": "ng-alain:build"
+ }
+ },
+ "test": {
+ "builder": "@angular-devkit/build-angular:karma",
+ "options": {
+ "main": "src/test.ts",
+ "polyfills": "src/polyfills.ts",
+ "karmaConfig": "karma.conf.js",
+ "tsConfig": "tsconfig.spec.json",
+ "scripts": [
+ "node_modules/quill/dist/quill.min.js",
+ "node_modules/perfect-scrollbar/dist/perfect-scrollbar.js"
+ ],
+ "styles": [],
+ "assets": [
+ "src/assets"
+ ]
+ }
+ },
+ "lint": {
+ "builder": "@angular-eslint/builder:lint",
+ "options": {
+ "lintFilePatterns": [
+ "src/**/*.ts",
+ "src/**/*.html"
+ ]
+ }
+ },
+ "e2e": {
+ "builder": "@angular-devkit/build-angular:protractor",
+ "options": {
+ "protractorConfig": "e2e/protractor.conf.js",
+ "devServerTarget": "ng-alain:serve"
+ },
+ "configurations": {
+ "production": {
+ "devServerTarget": "ng-alain:serve:production"
+ }
+ }
+ }
+ }
+ }
+ },
+ "defaultProject": "ng-alain"
+}
diff --git a/e2e/protractor.conf.js b/e2e/protractor.conf.js
new file mode 100644
index 00000000..73e4e680
--- /dev/null
+++ b/e2e/protractor.conf.js
@@ -0,0 +1,32 @@
+// @ts-check
+// Protractor configuration file, see link for more information
+// https://github.com/angular/protractor/blob/master/lib/config.ts
+
+const { SpecReporter } = require('jasmine-spec-reporter');
+
+/**
+ * @type { import("protractor").Config }
+ */
+exports.config = {
+ allScriptsTimeout: 11000,
+ specs: [
+ './src/**/*.e2e-spec.ts'
+ ],
+ capabilities: {
+ 'browserName': 'chrome'
+ },
+ directConnect: true,
+ baseUrl: 'http://localhost:4200/',
+ framework: 'jasmine',
+ jasmineNodeOpts: {
+ showColors: true,
+ defaultTimeoutInterval: 30000,
+ print: function() {}
+ },
+ onPrepare() {
+ require('ts-node').register({
+ project: require('path').join(__dirname, './tsconfig.json')
+ });
+ jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
+ }
+};
\ No newline at end of file
diff --git a/e2e/src/app.e2e-spec.ts b/e2e/src/app.e2e-spec.ts
new file mode 100644
index 00000000..df95215f
--- /dev/null
+++ b/e2e/src/app.e2e-spec.ts
@@ -0,0 +1,28 @@
+import { browser, logging } from 'protractor';
+import { AppPage } from './app.po';
+
+describe('workspace-project App', () => {
+ let page: AppPage;
+
+ beforeEach(() => {
+ page = new AppPage();
+ });
+
+ it('should display welcome message', () => {
+ page.navigateTo();
+ expect(page.getTitleText()).toEqual('Welcome to ng8!');
+ });
+
+ afterEach(async () => {
+ // Assert that there are no errors emitted from the browser
+ const logs = await browser
+ .manage()
+ .logs()
+ .get(logging.Type.BROWSER);
+ expect(logs).not.toContain(
+ jasmine.objectContaining({
+ level: logging.Level.SEVERE,
+ } as logging.Entry),
+ );
+ });
+});
diff --git a/e2e/src/app.po.ts b/e2e/src/app.po.ts
new file mode 100644
index 00000000..08b20ffd
--- /dev/null
+++ b/e2e/src/app.po.ts
@@ -0,0 +1,11 @@
+import { browser, by, element } from 'protractor';
+
+export class AppPage {
+ navigateTo(): Promise {
+ return browser.get(browser.baseUrl) as Promise;
+ }
+
+ getTitleText(): Promise {
+ return element(by.css('app-root h1')).getText() as Promise;
+ }
+}
diff --git a/e2e/tsconfig.json b/e2e/tsconfig.json
new file mode 100644
index 00000000..eddd492c
--- /dev/null
+++ b/e2e/tsconfig.json
@@ -0,0 +1,10 @@
+/* To learn more about this file see: https://angular.io/config/tsconfig. */
+{
+ "extends": "../tsconfig.json",
+ "compilerOptions": {
+ "outDir": "../out-tsc/e2e",
+ "module": "commonjs",
+ "target": "es2018",
+ "types": ["jasmine", "jasminewd2", "node"]
+ }
+}
diff --git a/karma.conf.js b/karma.conf.js
new file mode 100644
index 00000000..224f06eb
--- /dev/null
+++ b/karma.conf.js
@@ -0,0 +1,38 @@
+// Karma configuration file, see link for more information
+// https://karma-runner.github.io/1.0/config/configuration-file.html
+
+module.exports = function (config) {
+ config.set({
+ basePath: '',
+ frameworks: ['jasmine', '@angular-devkit/build-angular'],
+ plugins: [
+ require('karma-jasmine'),
+ require('karma-chrome-launcher'),
+ require('karma-jasmine-html-reporter'),
+ require('karma-coverage-istanbul-reporter'),
+ require('@angular-devkit/build-angular/plugins/karma')
+ ],
+ client: {
+ clearContext: false // leave Jasmine Spec Runner output visible in browser
+ },
+ coverageIstanbulReporter: {
+ dir: require('path').join(__dirname, './coverage'),
+ reports: ['html', 'lcovonly', 'text-summary'],
+ fixWebpackSourcePaths: true
+ },
+ reporters: ['progress', 'kjhtml'],
+ port: 9876,
+ colors: true,
+ logLevel: config.LOG_INFO,
+ autoWatch: true,
+ browsers: ['Chrome'],
+ customLaunchers: {
+ ChromeHeadlessCI: {
+ base: 'ChromeHeadless',
+ flags: ['--no-sandbox']
+ }
+ },
+ singleRun: false,
+ restartOnFileChange: true
+ });
+};
diff --git a/ng-alain.json b/ng-alain.json
new file mode 100644
index 00000000..2aecd66e
--- /dev/null
+++ b/ng-alain.json
@@ -0,0 +1,17 @@
+{
+ "$schema": "./node_modules/ng-alain/schema.json",
+ "theme": {
+ "additionalThemeVars": [
+ "./src/app/layout/pro/styles/theme-#NAME#.less",
+ "./src/styles/fix/theme-#NAME#.less"
+ ],
+ "list": [
+ {
+ "theme": "dark"
+ },
+ {
+ "theme": "compact"
+ }
+ ]
+ }
+}
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 00000000..cf0055a0
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,24244 @@
+{
+ "name": "ng-alain-pro",
+ "version": "0.0.0",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "@agm/core": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/@agm/core/download/@agm/core-1.1.0.tgz",
+ "integrity": "sha1-b43LrAaPaB/k+psKDL9mBYgCWRE=",
+ "requires": {
+ "tslib": "^1.9.0"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.nlark.com/tslib/download/tslib-1.14.1.tgz?cache=0&sync_timestamp=1628722556410&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftslib%2Fdownload%2Ftslib-1.14.1.tgz",
+ "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA="
+ }
+ }
+ },
+ "@ampproject/remapping": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/@ampproject/remapping/download/@ampproject/remapping-1.0.1.tgz",
+ "integrity": "sha1-E5jnPlZ8KnmS32VUwVu5Som2i6I=",
+ "dev": true,
+ "requires": {
+ "@jridgewell/resolve-uri": "1.0.0",
+ "sourcemap-codec": "1.4.8"
+ }
+ },
+ "@angular-devkit/architect": {
+ "version": "0.1202.13",
+ "resolved": "https://registry.npmmirror.com/@angular-devkit/architect/download/@angular-devkit/architect-0.1202.13.tgz",
+ "integrity": "sha1-ubiD1i9iimsxzgcdqR4mj2HaAO8=",
+ "dev": true,
+ "requires": {
+ "@angular-devkit/core": "12.2.13",
+ "rxjs": "6.6.7"
+ }
+ },
+ "@angular-devkit/build-angular": {
+ "version": "12.2.13",
+ "resolved": "https://registry.npmmirror.com/@angular-devkit/build-angular/download/@angular-devkit/build-angular-12.2.13.tgz",
+ "integrity": "sha1-9VZNPsnbEylWRzu5BLs1kEgvWzY=",
+ "dev": true,
+ "requires": {
+ "@ampproject/remapping": "1.0.1",
+ "@angular-devkit/architect": "0.1202.13",
+ "@angular-devkit/build-optimizer": "0.1202.13",
+ "@angular-devkit/build-webpack": "0.1202.13",
+ "@angular-devkit/core": "12.2.13",
+ "@babel/core": "7.14.8",
+ "@babel/generator": "7.14.8",
+ "@babel/helper-annotate-as-pure": "7.14.5",
+ "@babel/plugin-proposal-async-generator-functions": "7.14.7",
+ "@babel/plugin-transform-async-to-generator": "7.14.5",
+ "@babel/plugin-transform-runtime": "7.14.5",
+ "@babel/preset-env": "7.14.8",
+ "@babel/runtime": "7.14.8",
+ "@babel/template": "7.14.5",
+ "@discoveryjs/json-ext": "0.5.3",
+ "@jsdevtools/coverage-istanbul-loader": "3.0.5",
+ "@ngtools/webpack": "12.2.13",
+ "ansi-colors": "4.1.1",
+ "babel-loader": "8.2.2",
+ "browserslist": "^4.9.1",
+ "cacache": "15.2.0",
+ "caniuse-lite": "^1.0.30001032",
+ "circular-dependency-plugin": "5.2.2",
+ "copy-webpack-plugin": "9.0.1",
+ "core-js": "3.16.0",
+ "critters": "0.0.12",
+ "css-loader": "6.2.0",
+ "css-minimizer-webpack-plugin": "3.0.2",
+ "esbuild": "0.13.8",
+ "esbuild-wasm": "0.13.8",
+ "find-cache-dir": "3.3.1",
+ "glob": "7.1.7",
+ "https-proxy-agent": "5.0.0",
+ "inquirer": "8.1.2",
+ "karma-source-map-support": "1.4.0",
+ "less": "4.1.1",
+ "less-loader": "10.0.1",
+ "license-webpack-plugin": "2.3.20",
+ "loader-utils": "2.0.0",
+ "mini-css-extract-plugin": "2.4.2",
+ "minimatch": "3.0.4",
+ "open": "8.2.1",
+ "ora": "5.4.1",
+ "parse5-html-rewriting-stream": "6.0.1",
+ "piscina": "3.1.0",
+ "postcss": "8.3.6",
+ "postcss-import": "14.0.2",
+ "postcss-loader": "6.1.1",
+ "postcss-preset-env": "6.7.0",
+ "regenerator-runtime": "0.13.9",
+ "resolve-url-loader": "4.0.0",
+ "rxjs": "6.6.7",
+ "sass": "1.36.0",
+ "sass-loader": "12.1.0",
+ "semver": "7.3.5",
+ "source-map-loader": "3.0.0",
+ "source-map-support": "0.5.19",
+ "style-loader": "3.2.1",
+ "stylus": "0.54.8",
+ "stylus-loader": "6.1.0",
+ "terser": "5.7.1",
+ "terser-webpack-plugin": "5.1.4",
+ "text-table": "0.2.0",
+ "tree-kill": "1.2.2",
+ "tslib": "2.3.0",
+ "webpack": "5.50.0",
+ "webpack-dev-middleware": "5.0.0",
+ "webpack-dev-server": "3.11.2",
+ "webpack-merge": "5.8.0",
+ "webpack-subresource-integrity": "1.5.2"
+ },
+ "dependencies": {
+ "esbuild": {
+ "version": "0.13.8",
+ "resolved": "https://registry.npmmirror.com/esbuild/download/esbuild-0.13.8.tgz",
+ "integrity": "sha1-vXzFG4gasGd4n4jhe6ynRyTB7E8=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "esbuild-android-arm64": "0.13.8",
+ "esbuild-darwin-64": "0.13.8",
+ "esbuild-darwin-arm64": "0.13.8",
+ "esbuild-freebsd-64": "0.13.8",
+ "esbuild-freebsd-arm64": "0.13.8",
+ "esbuild-linux-32": "0.13.8",
+ "esbuild-linux-64": "0.13.8",
+ "esbuild-linux-arm": "0.13.8",
+ "esbuild-linux-arm64": "0.13.8",
+ "esbuild-linux-mips64le": "0.13.8",
+ "esbuild-linux-ppc64le": "0.13.8",
+ "esbuild-netbsd-64": "0.13.8",
+ "esbuild-openbsd-64": "0.13.8",
+ "esbuild-sunos-64": "0.13.8",
+ "esbuild-windows-32": "0.13.8",
+ "esbuild-windows-64": "0.13.8",
+ "esbuild-windows-arm64": "0.13.8"
+ }
+ },
+ "tslib": {
+ "version": "2.3.0",
+ "resolved": "https://registry.nlark.com/tslib/download/tslib-2.3.0.tgz?cache=0&sync_timestamp=1628722556410&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftslib%2Fdownload%2Ftslib-2.3.0.tgz",
+ "integrity": "sha1-gDuM2rPhK6WBpMpByIObuw2ssJ4=",
+ "dev": true
+ }
+ }
+ },
+ "@angular-devkit/build-optimizer": {
+ "version": "0.1202.13",
+ "resolved": "https://registry.npmmirror.com/@angular-devkit/build-optimizer/download/@angular-devkit/build-optimizer-0.1202.13.tgz",
+ "integrity": "sha1-fwsTNozCoIsfR4mrEpahYJ9QSeo=",
+ "dev": true,
+ "requires": {
+ "source-map": "0.7.3",
+ "tslib": "2.3.0",
+ "typescript": "4.3.5"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.3.0",
+ "resolved": "https://registry.nlark.com/tslib/download/tslib-2.3.0.tgz?cache=0&sync_timestamp=1628722556410&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftslib%2Fdownload%2Ftslib-2.3.0.tgz",
+ "integrity": "sha1-gDuM2rPhK6WBpMpByIObuw2ssJ4=",
+ "dev": true
+ }
+ }
+ },
+ "@angular-devkit/build-webpack": {
+ "version": "0.1202.13",
+ "resolved": "https://registry.npmmirror.com/@angular-devkit/build-webpack/download/@angular-devkit/build-webpack-0.1202.13.tgz",
+ "integrity": "sha1-h1+flne7EAVrUiMJZdwvAL0wid0=",
+ "dev": true,
+ "requires": {
+ "@angular-devkit/architect": "0.1202.13",
+ "rxjs": "6.6.7"
+ }
+ },
+ "@angular-devkit/core": {
+ "version": "12.2.13",
+ "resolved": "https://registry.npmmirror.com/@angular-devkit/core/download/@angular-devkit/core-12.2.13.tgz",
+ "integrity": "sha1-2zkp0b/OcQELN/t8Tmwz74Ck818=",
+ "dev": true,
+ "requires": {
+ "ajv": "8.6.2",
+ "ajv-formats": "2.1.0",
+ "fast-json-stable-stringify": "2.1.0",
+ "magic-string": "0.25.7",
+ "rxjs": "6.6.7",
+ "source-map": "0.7.3"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "8.6.2",
+ "resolved": "https://registry.npmmirror.com/ajv/download/ajv-8.6.2.tgz?cache=0&sync_timestamp=1637522259668&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fajv%2Fdownload%2Fajv-8.6.2.tgz",
+ "integrity": "sha1-L7ReDl/LwIEzJsHD2lNdGIG7BXE=",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ajv-formats": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/ajv-formats/download/ajv-formats-2.1.0.tgz",
+ "integrity": "sha1-lur4PjjTIQi2bYKpywz6JIhs3+s=",
+ "dev": true,
+ "requires": {
+ "ajv": "^8.0.0"
+ }
+ }
+ }
+ },
+ "@angular-devkit/schematics": {
+ "version": "12.2.13",
+ "resolved": "https://registry.npmmirror.com/@angular-devkit/schematics/download/@angular-devkit/schematics-12.2.13.tgz",
+ "integrity": "sha1-ZGTYb6PM0O+16tRseTzvnsRcd1g=",
+ "dev": true,
+ "requires": {
+ "@angular-devkit/core": "12.2.13",
+ "ora": "5.4.1",
+ "rxjs": "6.6.7"
+ }
+ },
+ "@angular-eslint/builder": {
+ "version": "12.3.1",
+ "resolved": "https://registry.npmmirror.com/@angular-eslint/builder/download/@angular-eslint/builder-12.3.1.tgz",
+ "integrity": "sha1-4KZ2ipx+4jYjseNjoj5ZozO22r4=",
+ "dev": true,
+ "requires": {
+ "@nrwl/devkit": ">= 12.0.0 < 13.0.0"
+ }
+ },
+ "@angular-eslint/eslint-plugin": {
+ "version": "12.3.1",
+ "resolved": "https://registry.npmmirror.com/@angular-eslint/eslint-plugin/download/@angular-eslint/eslint-plugin-12.3.1.tgz",
+ "integrity": "sha1-AKxE1ZhthhE9ZaU3N0bh/CL9hwI=",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/experimental-utils": "4.28.2"
+ }
+ },
+ "@angular-eslint/eslint-plugin-template": {
+ "version": "12.3.1",
+ "resolved": "https://registry.npmmirror.com/@angular-eslint/eslint-plugin-template/download/@angular-eslint/eslint-plugin-template-12.3.1.tgz",
+ "integrity": "sha1-MyYM1TVt9dt+J3GUQ+q89sIU4y4=",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/experimental-utils": "4.28.2",
+ "aria-query": "^4.2.2",
+ "axobject-query": "^2.2.0"
+ }
+ },
+ "@angular-eslint/schematics": {
+ "version": "12.3.1",
+ "resolved": "https://registry.npmmirror.com/@angular-eslint/schematics/download/@angular-eslint/schematics-12.3.1.tgz",
+ "integrity": "sha1-mQYKZP1t02/7TF4lS4VWL00BUNk=",
+ "dev": true,
+ "requires": {
+ "@angular-eslint/eslint-plugin": "12.3.1",
+ "@angular-eslint/eslint-plugin-template": "12.3.1",
+ "ignore": "5.1.8",
+ "strip-json-comments": "3.1.1",
+ "tmp": "0.2.1"
+ },
+ "dependencies": {
+ "ignore": {
+ "version": "5.1.8",
+ "resolved": "https://registry.npmmirror.com/ignore/download/ignore-5.1.8.tgz?cache=0&sync_timestamp=1635926632542&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fignore%2Fdownload%2Fignore-5.1.8.tgz",
+ "integrity": "sha1-8VCotQo0KJsz4i9YiavU2AFvDlc=",
+ "dev": true
+ },
+ "tmp": {
+ "version": "0.2.1",
+ "resolved": "https://registry.nlark.com/tmp/download/tmp-0.2.1.tgz",
+ "integrity": "sha1-hFf8MDfc9HGcJRNnoa9lAO4czxQ=",
+ "dev": true,
+ "requires": {
+ "rimraf": "^3.0.0"
+ }
+ }
+ }
+ },
+ "@angular-eslint/template-parser": {
+ "version": "12.3.1",
+ "resolved": "https://registry.npmmirror.com/@angular-eslint/template-parser/download/@angular-eslint/template-parser-12.3.1.tgz",
+ "integrity": "sha1-Vh/hvT+0pNdcxVNm0ngYvKIiBMk=",
+ "dev": true,
+ "requires": {
+ "eslint-scope": "^5.1.0"
+ }
+ },
+ "@angular/animations": {
+ "version": "12.2.13",
+ "resolved": "https://registry.npmmirror.com/@angular/animations/download/@angular/animations-12.2.13.tgz",
+ "integrity": "sha1-kJt5xWqFuzHAYF7UGYUDQLVYC+k=",
+ "requires": {
+ "tslib": "^2.2.0"
+ }
+ },
+ "@angular/cdk": {
+ "version": "12.2.13",
+ "resolved": "https://registry.npmmirror.com/@angular/cdk/download/@angular/cdk-12.2.13.tgz",
+ "integrity": "sha512-zSKRhECyFqhingIeyRInIyTvYErt4gWo+x5DQr0b7YLUbU8DZSwWnG4w76Ke2s4U8T7ry1jpJBHoX/e8YBpGMg==",
+ "requires": {
+ "parse5": "^5.0.0",
+ "tslib": "^2.2.0"
+ }
+ },
+ "@angular/cli": {
+ "version": "12.2.13",
+ "resolved": "https://registry.npmmirror.com/@angular/cli/download/@angular/cli-12.2.13.tgz",
+ "integrity": "sha1-ylhsFKb4O7Q5CHW+Cg+nCbmirik=",
+ "dev": true,
+ "requires": {
+ "@angular-devkit/architect": "0.1202.13",
+ "@angular-devkit/core": "12.2.13",
+ "@angular-devkit/schematics": "12.2.13",
+ "@schematics/angular": "12.2.13",
+ "@yarnpkg/lockfile": "1.1.0",
+ "ansi-colors": "4.1.1",
+ "debug": "4.3.2",
+ "ini": "2.0.0",
+ "inquirer": "8.1.2",
+ "jsonc-parser": "3.0.0",
+ "npm-package-arg": "8.1.5",
+ "npm-pick-manifest": "6.1.1",
+ "open": "8.2.1",
+ "ora": "5.4.1",
+ "pacote": "11.3.5",
+ "resolve": "1.20.0",
+ "semver": "7.3.5",
+ "symbol-observable": "4.0.0",
+ "uuid": "8.3.2"
+ },
+ "dependencies": {
+ "uuid": {
+ "version": "8.3.2",
+ "resolved": "https://registry.npmmirror.com/uuid/download/uuid-8.3.2.tgz",
+ "integrity": "sha1-gNW1ztJxu5r2xEXyGhoExgbO++I=",
+ "dev": true
+ }
+ }
+ },
+ "@angular/common": {
+ "version": "12.2.13",
+ "resolved": "https://registry.npmmirror.com/@angular/common/download/@angular/common-12.2.13.tgz",
+ "integrity": "sha1-/lL/roZowd7EGybNw6dJEBOZ4f4=",
+ "requires": {
+ "tslib": "^2.2.0"
+ }
+ },
+ "@angular/compiler": {
+ "version": "12.2.13",
+ "resolved": "https://registry.npmmirror.com/@angular/compiler/download/@angular/compiler-12.2.13.tgz",
+ "integrity": "sha1-fu9v24G53m/Q4s3aKtighMHZU1s=",
+ "requires": {
+ "tslib": "^2.2.0"
+ }
+ },
+ "@angular/compiler-cli": {
+ "version": "12.2.13",
+ "resolved": "https://registry.npmmirror.com/@angular/compiler-cli/download/@angular/compiler-cli-12.2.13.tgz",
+ "integrity": "sha1-PORjJj6AqGHhSvLtO6gVmAYOPOA=",
+ "dev": true,
+ "requires": {
+ "@babel/core": "^7.8.6",
+ "@babel/types": "^7.8.6",
+ "canonical-path": "1.0.0",
+ "chokidar": "^3.0.0",
+ "convert-source-map": "^1.5.1",
+ "dependency-graph": "^0.11.0",
+ "magic-string": "^0.25.0",
+ "minimist": "^1.2.0",
+ "reflect-metadata": "^0.1.2",
+ "semver": "^7.0.0",
+ "source-map": "^0.6.1",
+ "sourcemap-codec": "^1.4.8",
+ "tslib": "^2.2.0",
+ "yargs": "^17.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz",
+ "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "cliui": {
+ "version": "7.0.4",
+ "resolved": "https://registry.nlark.com/cliui/download/cliui-7.0.4.tgz",
+ "integrity": "sha1-oCZe5lVHb8gHrqnfPfjfd4OAi08=",
+ "dev": true,
+ "requires": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
+ "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
+ "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ },
+ "wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.nlark.com/wrap-ansi/download/wrap-ansi-7.0.0.tgz?cache=0&sync_timestamp=1631557327268&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwrap-ansi%2Fdownload%2Fwrap-ansi-7.0.0.tgz",
+ "integrity": "sha1-Z+FFz/UQpqaYS98RUpEdadLrnkM=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npm.taobao.org/y18n/download/y18n-5.0.8.tgz?cache=0&sync_timestamp=1617822684820&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fy18n%2Fdownload%2Fy18n-5.0.8.tgz",
+ "integrity": "sha1-f0k00PfKjFb5UxSTndzS3ZHOHVU=",
+ "dev": true
+ },
+ "yargs": {
+ "version": "17.2.1",
+ "resolved": "https://registry.npmmirror.com/yargs/download/yargs-17.2.1.tgz",
+ "integrity": "sha1-4slbl5ag4ffzv0QnhjtC4EGBkeo=",
+ "dev": true,
+ "requires": {
+ "cliui": "^7.0.2",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.0",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^20.2.2"
+ }
+ },
+ "yargs-parser": {
+ "version": "20.2.9",
+ "resolved": "https://registry.npmmirror.com/yargs-parser/download/yargs-parser-20.2.9.tgz?cache=0&sync_timestamp=1637031053426&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fyargs-parser%2Fdownload%2Fyargs-parser-20.2.9.tgz",
+ "integrity": "sha1-LrfcOwKJcY/ClfNidThFxBoMlO4=",
+ "dev": true
+ }
+ }
+ },
+ "@angular/core": {
+ "version": "12.2.13",
+ "resolved": "https://registry.npmmirror.com/@angular/core/download/@angular/core-12.2.13.tgz?cache=0&sync_timestamp=1637205149537&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40angular%2Fcore%2Fdownload%2F%40angular%2Fcore-12.2.13.tgz",
+ "integrity": "sha1-/ECsvc7lxYeL0kndwNZDvnJAdsM=",
+ "requires": {
+ "tslib": "^2.2.0"
+ }
+ },
+ "@angular/forms": {
+ "version": "12.2.13",
+ "resolved": "https://registry.npmmirror.com/@angular/forms/download/@angular/forms-12.2.13.tgz",
+ "integrity": "sha1-TekOiJkcJ0tdXjqwMAJn4WG6ePI=",
+ "requires": {
+ "tslib": "^2.2.0"
+ }
+ },
+ "@angular/language-service": {
+ "version": "12.2.13",
+ "resolved": "https://registry.npmmirror.com/@angular/language-service/download/@angular/language-service-12.2.13.tgz",
+ "integrity": "sha1-MmBFoyj4qWIocDfXqFvoEgB0Qhw=",
+ "dev": true
+ },
+ "@angular/platform-browser": {
+ "version": "12.2.13",
+ "resolved": "https://registry.npmmirror.com/@angular/platform-browser/download/@angular/platform-browser-12.2.13.tgz",
+ "integrity": "sha1-dp+xSLIShmPWtAXSpBAj8s2qHJU=",
+ "requires": {
+ "tslib": "^2.2.0"
+ }
+ },
+ "@angular/platform-browser-dynamic": {
+ "version": "12.2.13",
+ "resolved": "https://registry.npmmirror.com/@angular/platform-browser-dynamic/download/@angular/platform-browser-dynamic-12.2.13.tgz",
+ "integrity": "sha1-nuYwn1EdpBnV2AoagnmtyAbpLwQ=",
+ "requires": {
+ "tslib": "^2.2.0"
+ }
+ },
+ "@angular/router": {
+ "version": "12.2.13",
+ "resolved": "https://registry.npmmirror.com/@angular/router/download/@angular/router-12.2.13.tgz",
+ "integrity": "sha1-5bk5qWdfnUg0/uPnXrjQQO9js7U=",
+ "requires": {
+ "tslib": "^2.2.0"
+ }
+ },
+ "@ant-design/colors": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npm.taobao.org/@ant-design/colors/download/@ant-design/colors-5.1.1.tgz",
+ "integrity": "sha1-gAshhrHifmZDLmfQPtlq8+IdiUA=",
+ "requires": {
+ "@ctrl/tinycolor": "^3.3.1"
+ }
+ },
+ "@ant-design/icons-angular": {
+ "version": "12.0.3",
+ "resolved": "https://registry.npmmirror.com/@ant-design/icons-angular/download/@ant-design/icons-angular-12.0.3.tgz",
+ "integrity": "sha1-Ppmqmc7ruXg4Sikm0G2hnAQ/xL0=",
+ "requires": {
+ "@ant-design/colors": "^5.0.0",
+ "tslib": "^2.0.0"
+ }
+ },
+ "@antv/adjust": {
+ "version": "0.2.3",
+ "resolved": "https://registry.nlark.com/@antv/adjust/download/@antv/adjust-0.2.3.tgz",
+ "integrity": "sha1-w4hKaAwyZMwSXX8qtTmOihwLlAE=",
+ "requires": {
+ "@antv/util": "~2.0.0",
+ "tslib": "^1.10.0"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.nlark.com/tslib/download/tslib-1.14.1.tgz?cache=0&sync_timestamp=1628722556410&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftslib%2Fdownload%2Ftslib-1.14.1.tgz",
+ "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA="
+ }
+ }
+ },
+ "@antv/attr": {
+ "version": "0.3.2",
+ "resolved": "https://registry.nlark.com/@antv/attr/download/@antv/attr-0.3.2.tgz",
+ "integrity": "sha1-5YZrZIcMYvOpwluKYfZUuiv9oFE=",
+ "requires": {
+ "@antv/color-util": "^2.0.1",
+ "@antv/util": "~2.0.0",
+ "tslib": "^1.10.0"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.nlark.com/tslib/download/tslib-1.14.1.tgz?cache=0&sync_timestamp=1628722556410&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftslib%2Fdownload%2Ftslib-1.14.1.tgz",
+ "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA="
+ }
+ }
+ },
+ "@antv/color-util": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmmirror.com/@antv/color-util/download/@antv/color-util-2.0.6.tgz",
+ "integrity": "sha1-XhKbuc4/K5MJtSECs9ySlDDMwBY=",
+ "requires": {
+ "@antv/util": "^2.0.9",
+ "tslib": "^2.0.3"
+ }
+ },
+ "@antv/component": {
+ "version": "0.8.20",
+ "resolved": "https://registry.npmmirror.com/@antv/component/download/@antv/component-0.8.20.tgz",
+ "integrity": "sha1-l/Daoi83aKNd4zzQ2cWP8yzspBc=",
+ "requires": {
+ "@antv/color-util": "^2.0.3",
+ "@antv/dom-util": "~2.0.1",
+ "@antv/g-base": "0.5.6",
+ "@antv/matrix-util": "^3.1.0-beta.1",
+ "@antv/path-util": "~2.0.7",
+ "@antv/scale": "~0.3.1",
+ "@antv/util": "~2.0.0",
+ "fecha": "~4.2.0",
+ "tslib": "^2.0.3"
+ },
+ "dependencies": {
+ "@antv/g-base": {
+ "version": "0.5.6",
+ "resolved": "https://registry.npmmirror.com/@antv/g-base/download/@antv/g-base-0.5.6.tgz",
+ "integrity": "sha1-2W2l+/bF+LBzBydR4V5e7HCzk/w=",
+ "requires": {
+ "@antv/event-emitter": "^0.1.1",
+ "@antv/g-math": "^0.1.6",
+ "@antv/matrix-util": "^3.1.0-beta.1",
+ "@antv/path-util": "~2.0.5",
+ "@antv/util": "~2.0.0",
+ "@types/d3-timer": "^2.0.0",
+ "d3-ease": "^1.0.5",
+ "d3-interpolate": "^1.3.2",
+ "d3-timer": "^1.0.9",
+ "detect-browser": "^5.1.0",
+ "tslib": "^2.0.3"
+ }
+ }
+ }
+ },
+ "@antv/coord": {
+ "version": "0.3.1",
+ "resolved": "https://registry.nlark.com/@antv/coord/download/@antv/coord-0.3.1.tgz",
+ "integrity": "sha1-mC4mHYoeBqGY61GOp6zCDth1oBk=",
+ "requires": {
+ "@antv/matrix-util": "^3.1.0-beta.2",
+ "@antv/util": "~2.0.12",
+ "tslib": "^2.1.0"
+ }
+ },
+ "@antv/data-set": {
+ "version": "0.11.8",
+ "resolved": "https://registry.npm.taobao.org/@antv/data-set/download/@antv/data-set-0.11.8.tgz",
+ "integrity": "sha1-dBPpAGJIY9Wl87RoQf0An8TypP8=",
+ "requires": {
+ "@antv/hierarchy": "^0.6.0",
+ "@antv/util": "^2.0.0",
+ "d3-composite-projections": "^1.2.0",
+ "d3-dsv": "^1.0.5",
+ "d3-geo": "~1.6.4",
+ "d3-geo-projection": "~2.1.2",
+ "d3-hexjson": "^1.0.1",
+ "d3-hierarchy": "^1.1.5",
+ "d3-sankey": "^0.9.1",
+ "d3-voronoi": "^1.1.2",
+ "dagre": "^0.8.2",
+ "point-at-length": "^1.0.2",
+ "regression": "^2.0.0",
+ "simple-statistics": "^6.1.0",
+ "topojson-client": "^3.0.0",
+ "wolfy87-eventemitter": "^5.1.0"
+ }
+ },
+ "@antv/dom-util": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmmirror.com/@antv/dom-util/download/@antv/dom-util-2.0.3.tgz",
+ "integrity": "sha1-y9FYsciODopNhlhxpZabEZBVT/U=",
+ "requires": {
+ "tslib": "^2.0.3"
+ }
+ },
+ "@antv/event-emitter": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npm.taobao.org/@antv/event-emitter/download/@antv/event-emitter-0.1.2.tgz",
+ "integrity": "sha1-oXt8uG5tBxiA3Gv7IydW+IYk7Lw="
+ },
+ "@antv/g-base": {
+ "version": "0.5.9",
+ "resolved": "https://registry.npmmirror.com/@antv/g-base/download/@antv/g-base-0.5.9.tgz",
+ "integrity": "sha1-WNDhHYUVetoUCPvfJPT0aPQOWc0=",
+ "requires": {
+ "@antv/event-emitter": "^0.1.1",
+ "@antv/g-math": "^0.1.6",
+ "@antv/matrix-util": "^3.1.0-beta.1",
+ "@antv/path-util": "~2.0.5",
+ "@antv/util": "~2.0.0",
+ "@types/d3-timer": "^2.0.0",
+ "d3-ease": "^1.0.5",
+ "d3-interpolate": "^1.3.2",
+ "d3-timer": "^1.0.9",
+ "detect-browser": "^5.1.0",
+ "tslib": "^2.0.3"
+ }
+ },
+ "@antv/g-canvas": {
+ "version": "0.5.12",
+ "resolved": "https://registry.npmmirror.com/@antv/g-canvas/download/@antv/g-canvas-0.5.12.tgz",
+ "integrity": "sha1-L8QNztaZTwdPIjQeZdVve71Sdfc=",
+ "requires": {
+ "@antv/g-base": "^0.5.3",
+ "@antv/g-math": "^0.1.6",
+ "@antv/matrix-util": "^3.1.0-beta.1",
+ "@antv/path-util": "~2.0.5",
+ "@antv/util": "~2.0.0",
+ "gl-matrix": "^3.0.0",
+ "tslib": "^2.0.3"
+ }
+ },
+ "@antv/g-math": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmmirror.com/@antv/g-math/download/@antv/g-math-0.1.7.tgz",
+ "integrity": "sha1-bsJ2kmn3zLZ+WBQNVznfdARswE4=",
+ "requires": {
+ "@antv/util": "~2.0.0",
+ "gl-matrix": "^3.0.0"
+ }
+ },
+ "@antv/g-svg": {
+ "version": "0.5.6",
+ "resolved": "https://registry.npmmirror.com/@antv/g-svg/download/@antv/g-svg-0.5.6.tgz",
+ "integrity": "sha1-cLL6mAxDGzmtPFtLU+NqHWCVfWU=",
+ "requires": {
+ "@antv/g-base": "^0.5.3",
+ "@antv/g-math": "^0.1.6",
+ "@antv/util": "~2.0.0",
+ "detect-browser": "^5.0.0",
+ "tslib": "^2.0.3"
+ }
+ },
+ "@antv/g2": {
+ "version": "4.1.34",
+ "resolved": "https://registry.npmmirror.com/@antv/g2/download/@antv/g2-4.1.34.tgz",
+ "integrity": "sha1-aqcaCcJAuSkUvGZvESMQqrwOPhY=",
+ "requires": {
+ "@antv/adjust": "^0.2.1",
+ "@antv/attr": "^0.3.1",
+ "@antv/color-util": "^2.0.2",
+ "@antv/component": "^0.8.19",
+ "@antv/coord": "^0.3.0",
+ "@antv/dom-util": "^2.0.2",
+ "@antv/event-emitter": "~0.1.0",
+ "@antv/g-base": "~0.5.6",
+ "@antv/g-canvas": "~0.5.10",
+ "@antv/g-svg": "~0.5.6",
+ "@antv/matrix-util": "^3.1.0-beta.3",
+ "@antv/path-util": "^2.0.15",
+ "@antv/scale": "^0.3.14",
+ "@antv/util": "~2.0.5",
+ "tslib": "^2.0.0"
+ }
+ },
+ "@antv/hierarchy": {
+ "version": "0.6.8",
+ "resolved": "https://registry.nlark.com/@antv/hierarchy/download/@antv/hierarchy-0.6.8.tgz",
+ "integrity": "sha1-t3xJCpwt1toYbLrO4OeIe4wbP6Q=",
+ "requires": {
+ "@antv/util": "^2.0.7"
+ }
+ },
+ "@antv/matrix-util": {
+ "version": "3.1.0-beta.3",
+ "resolved": "https://registry.npmmirror.com/@antv/matrix-util/download/@antv/matrix-util-3.1.0-beta.3.tgz",
+ "integrity": "sha1-4GHej6e+BGBaFVxpzFzpCC7t3e4=",
+ "requires": {
+ "@antv/util": "^2.0.9",
+ "gl-matrix": "^3.4.3",
+ "tslib": "^2.0.3"
+ }
+ },
+ "@antv/path-util": {
+ "version": "2.0.15",
+ "resolved": "https://registry.npmmirror.com/@antv/path-util/download/@antv/path-util-2.0.15.tgz",
+ "integrity": "sha1-pvaR38i3vOW+fwqrtb1hSWQyVjE=",
+ "requires": {
+ "@antv/matrix-util": "^3.0.4",
+ "@antv/util": "^2.0.9",
+ "tslib": "^2.0.3"
+ },
+ "dependencies": {
+ "@antv/matrix-util": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmmirror.com/@antv/matrix-util/download/@antv/matrix-util-3.0.4.tgz",
+ "integrity": "sha1-6hPxWKovtLovuNa2tWHsRn6jrCA=",
+ "requires": {
+ "@antv/util": "^2.0.9",
+ "gl-matrix": "^3.3.0",
+ "tslib": "^2.0.3"
+ }
+ }
+ }
+ },
+ "@antv/scale": {
+ "version": "0.3.14",
+ "resolved": "https://registry.npmmirror.com/@antv/scale/download/@antv/scale-0.3.14.tgz",
+ "integrity": "sha1-Bxj4ZRNo5cmNtWEgZRMqjIu83kg=",
+ "requires": {
+ "@antv/util": "~2.0.3",
+ "fecha": "~4.2.0",
+ "tslib": "^2.0.0"
+ }
+ },
+ "@antv/util": {
+ "version": "2.0.17",
+ "resolved": "https://registry.npmmirror.com/@antv/util/download/@antv/util-2.0.17.tgz",
+ "integrity": "sha1-6O9CrKeJKBWyKSafPdEMazx1l6k=",
+ "requires": {
+ "csstype": "^3.0.8",
+ "tslib": "^2.0.3"
+ }
+ },
+ "@assemblyscript/loader": {
+ "version": "0.10.1",
+ "resolved": "https://registry.npmmirror.com/@assemblyscript/loader/download/@assemblyscript/loader-0.10.1.tgz",
+ "integrity": "sha1-cORWePBscvouNQ6FU+xKTXK5LgY=",
+ "dev": true
+ },
+ "@babel/code-frame": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/code-frame/download/@babel/code-frame-7.16.0.tgz?cache=0&sync_timestamp=1635561808745&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.16.0.tgz",
+ "integrity": "sha1-DfyAMJvuyEEeZecGRhxAiwu5tDE=",
+ "dev": true,
+ "requires": {
+ "@babel/highlight": "^7.16.0"
+ }
+ },
+ "@babel/compat-data": {
+ "version": "7.16.4",
+ "resolved": "https://registry.npmmirror.com/@babel/compat-data/download/@babel/compat-data-7.16.4.tgz",
+ "integrity": "sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==",
+ "dev": true
+ },
+ "@babel/core": {
+ "version": "7.14.8",
+ "resolved": "https://registry.npmmirror.com/@babel/core/download/@babel/core-7.14.8.tgz?cache=0&sync_timestamp=1635561804981&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.14.8.tgz",
+ "integrity": "sha1-IM33yEtdhtg/rIcQqLxgWnuj8BA=",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.14.5",
+ "@babel/generator": "^7.14.8",
+ "@babel/helper-compilation-targets": "^7.14.5",
+ "@babel/helper-module-transforms": "^7.14.8",
+ "@babel/helpers": "^7.14.8",
+ "@babel/parser": "^7.14.8",
+ "@babel/template": "^7.14.5",
+ "@babel/traverse": "^7.14.8",
+ "@babel/types": "^7.14.8",
+ "convert-source-map": "^1.7.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.1.2",
+ "semver": "^6.3.0",
+ "source-map": "^0.5.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz",
+ "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ }
+ }
+ },
+ "@babel/generator": {
+ "version": "7.14.8",
+ "resolved": "https://registry.npmmirror.com/@babel/generator/download/@babel/generator-7.14.8.tgz?cache=0&sync_timestamp=1635561809489&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.14.8.tgz",
+ "integrity": "sha1-v4b9avls87dDlajKQJUV+JQj4HA=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.14.8",
+ "jsesc": "^2.5.1",
+ "source-map": "^0.5.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ }
+ }
+ },
+ "@babel/helper-annotate-as-pure": {
+ "version": "7.14.5",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.14.5.tgz?cache=0&sync_timestamp=1635561802239&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.14.5.tgz",
+ "integrity": "sha1-e/R47Dtxcm1WqMpXdbBG/CmHnmE=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.14.5"
+ }
+ },
+ "@babel/helper-builder-binary-assignment-operator-visitor": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-builder-binary-assignment-operator-visitor/download/@babel/helper-builder-binary-assignment-operator-visitor-7.16.0.tgz",
+ "integrity": "sha1-8aaGuS2nlAIMJlguuFLprM0NeII=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-explode-assignable-expression": "^7.16.0",
+ "@babel/types": "^7.16.0"
+ }
+ },
+ "@babel/helper-compilation-targets": {
+ "version": "7.16.3",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-compilation-targets/download/@babel/helper-compilation-targets-7.16.3.tgz?cache=0&sync_timestamp=1636495290322&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-compilation-targets%2Fdownload%2F%40babel%2Fhelper-compilation-targets-7.16.3.tgz",
+ "integrity": "sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==",
+ "dev": true,
+ "requires": {
+ "@babel/compat-data": "^7.16.0",
+ "@babel/helper-validator-option": "^7.14.5",
+ "browserslist": "^4.17.5",
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz",
+ "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=",
+ "dev": true
+ }
+ }
+ },
+ "@babel/helper-create-class-features-plugin": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/download/@babel/helper-create-class-features-plugin-7.16.0.tgz?cache=0&sync_timestamp=1635561800206&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-create-class-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-class-features-plugin-7.16.0.tgz",
+ "integrity": "sha1-CQ1NFms0KgOp/sN+9P1a65x8aks=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.16.0",
+ "@babel/helper-function-name": "^7.16.0",
+ "@babel/helper-member-expression-to-functions": "^7.16.0",
+ "@babel/helper-optimise-call-expression": "^7.16.0",
+ "@babel/helper-replace-supers": "^7.16.0",
+ "@babel/helper-split-export-declaration": "^7.16.0"
+ },
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.16.0.tgz?cache=0&sync_timestamp=1635561802239&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.16.0.tgz",
+ "integrity": "sha1-mh8OvNpT2aLQAQjEzqzmpdXx8I0=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.16.0"
+ }
+ }
+ }
+ },
+ "@babel/helper-create-regexp-features-plugin": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-create-regexp-features-plugin/download/@babel/helper-create-regexp-features-plugin-7.16.0.tgz",
+ "integrity": "sha1-BrI0jON/zMT14Y3NjXUFPyp8RP8=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.16.0",
+ "regexpu-core": "^4.7.1"
+ },
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.16.0.tgz?cache=0&sync_timestamp=1635561802239&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.16.0.tgz",
+ "integrity": "sha1-mh8OvNpT2aLQAQjEzqzmpdXx8I0=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.16.0"
+ }
+ }
+ }
+ },
+ "@babel/helper-define-polyfill-provider": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-define-polyfill-provider/download/@babel/helper-define-polyfill-provider-0.2.4.tgz",
+ "integrity": "sha1-iGeu150+psreQPgB77esXGaRaxA=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-compilation-targets": "^7.13.0",
+ "@babel/helper-module-imports": "^7.12.13",
+ "@babel/helper-plugin-utils": "^7.13.0",
+ "@babel/traverse": "^7.13.0",
+ "debug": "^4.1.1",
+ "lodash.debounce": "^4.0.8",
+ "resolve": "^1.14.2",
+ "semver": "^6.1.2"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz",
+ "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=",
+ "dev": true
+ }
+ }
+ },
+ "@babel/helper-explode-assignable-expression": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-explode-assignable-expression/download/@babel/helper-explode-assignable-expression-7.16.0.tgz?cache=0&sync_timestamp=1635567805771&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-explode-assignable-expression%2Fdownload%2F%40babel%2Fhelper-explode-assignable-expression-7.16.0.tgz",
+ "integrity": "sha1-dTAXM3oV9G+cCfZ0z/EM7pudd3g=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.16.0"
+ }
+ },
+ "@babel/helper-function-name": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-function-name/download/@babel/helper-function-name-7.16.0.tgz?cache=0&sync_timestamp=1635561947831&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.16.0.tgz",
+ "integrity": "sha1-t90Hl9ALv+5PB+nE6lsOMMi7FIE=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-get-function-arity": "^7.16.0",
+ "@babel/template": "^7.16.0",
+ "@babel/types": "^7.16.0"
+ },
+ "dependencies": {
+ "@babel/template": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/template/download/@babel/template-7.16.0.tgz?cache=0&sync_timestamp=1635561799475&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.16.0.tgz",
+ "integrity": "sha1-0Wo16/TNdOICCDNW+rId2JNj3dY=",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.16.0",
+ "@babel/parser": "^7.16.0",
+ "@babel/types": "^7.16.0"
+ }
+ }
+ }
+ },
+ "@babel/helper-get-function-arity": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.16.0.tgz?cache=0&sync_timestamp=1635561948623&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.16.0.tgz",
+ "integrity": "sha1-AIjHSGspqctdlIsaHeRttm4InPo=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.16.0"
+ }
+ },
+ "@babel/helper-hoist-variables": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.16.0.tgz?cache=0&sync_timestamp=1635561801635&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-hoist-variables%2Fdownload%2F%40babel%2Fhelper-hoist-variables-7.16.0.tgz",
+ "integrity": "sha1-TJAjwvHe9+KP9G/B2802o5vqqBo=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.16.0"
+ }
+ },
+ "@babel/helper-member-expression-to-functions": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.16.0.tgz?cache=0&sync_timestamp=1635561802435&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-member-expression-to-functions%2Fdownload%2F%40babel%2Fhelper-member-expression-to-functions-7.16.0.tgz",
+ "integrity": "sha1-KShwQO/Rl8d2Nu91GI6B2ovM1aQ=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.16.0"
+ }
+ },
+ "@babel/helper-module-imports": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/download/@babel/helper-module-imports-7.16.0.tgz?cache=0&sync_timestamp=1635561800759&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-module-imports%2Fdownload%2F%40babel%2Fhelper-module-imports-7.16.0.tgz",
+ "integrity": "sha1-kFOOYLZy7PG0SPX09UM9N+eaPsM=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.16.0"
+ }
+ },
+ "@babel/helper-module-transforms": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.16.0.tgz?cache=0&sync_timestamp=1635561798763&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-module-transforms%2Fdownload%2F%40babel%2Fhelper-module-transforms-7.16.0.tgz",
+ "integrity": "sha1-HIKo3UyzRXdQLr0pCWmbGUw+m7U=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-imports": "^7.16.0",
+ "@babel/helper-replace-supers": "^7.16.0",
+ "@babel/helper-simple-access": "^7.16.0",
+ "@babel/helper-split-export-declaration": "^7.16.0",
+ "@babel/helper-validator-identifier": "^7.15.7",
+ "@babel/template": "^7.16.0",
+ "@babel/traverse": "^7.16.0",
+ "@babel/types": "^7.16.0"
+ },
+ "dependencies": {
+ "@babel/template": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/template/download/@babel/template-7.16.0.tgz?cache=0&sync_timestamp=1635561799475&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.16.0.tgz",
+ "integrity": "sha1-0Wo16/TNdOICCDNW+rId2JNj3dY=",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.16.0",
+ "@babel/parser": "^7.16.0",
+ "@babel/types": "^7.16.0"
+ }
+ }
+ }
+ },
+ "@babel/helper-optimise-call-expression": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.16.0.tgz?cache=0&sync_timestamp=1635561802051&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-optimise-call-expression%2Fdownload%2F%40babel%2Fhelper-optimise-call-expression-7.16.0.tgz",
+ "integrity": "sha1-zs2xRdcMVAlrFWT46fEM19GTszg=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.16.0"
+ }
+ },
+ "@babel/helper-plugin-utils": {
+ "version": "7.14.5",
+ "resolved": "https://registry.nlark.com/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.14.5.tgz",
+ "integrity": "sha1-WsgizpfuxGdBq3ClF5ceRDpwxak=",
+ "dev": true
+ },
+ "@babel/helper-remap-async-to-generator": {
+ "version": "7.16.4",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-remap-async-to-generator/download/@babel/helper-remap-async-to-generator-7.16.4.tgz",
+ "integrity": "sha512-vGERmmhR+s7eH5Y/cp8PCVzj4XEjerq8jooMfxFdA5xVtAk9Sh4AQsrWgiErUEBjtGrBtOFKDUcWQFW4/dFwMA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.16.0",
+ "@babel/helper-wrap-function": "^7.16.0",
+ "@babel/types": "^7.16.0"
+ },
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.16.0.tgz?cache=0&sync_timestamp=1635561802239&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.16.0.tgz",
+ "integrity": "sha1-mh8OvNpT2aLQAQjEzqzmpdXx8I0=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.16.0"
+ }
+ }
+ }
+ },
+ "@babel/helper-replace-supers": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.16.0.tgz?cache=0&sync_timestamp=1635561801283&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-replace-supers%2Fdownload%2F%40babel%2Fhelper-replace-supers-7.16.0.tgz",
+ "integrity": "sha1-cwVejTz5vLqN21XK2T/tyGD2jxc=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-member-expression-to-functions": "^7.16.0",
+ "@babel/helper-optimise-call-expression": "^7.16.0",
+ "@babel/traverse": "^7.16.0",
+ "@babel/types": "^7.16.0"
+ }
+ },
+ "@babel/helper-simple-access": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-simple-access/download/@babel/helper-simple-access-7.16.0.tgz?cache=0&sync_timestamp=1635561801108&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-simple-access%2Fdownload%2F%40babel%2Fhelper-simple-access-7.16.0.tgz",
+ "integrity": "sha1-IdaidiDjg+N1NM9sELugGab5BRc=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.16.0"
+ }
+ },
+ "@babel/helper-skip-transparent-expression-wrappers": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/download/@babel/helper-skip-transparent-expression-wrappers-7.16.0.tgz",
+ "integrity": "sha1-DuM4gHAUfDrgUeSH7KPrsOLouwk=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.16.0"
+ }
+ },
+ "@babel/helper-split-export-declaration": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.16.0.tgz?cache=0&sync_timestamp=1635561801459&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.16.0.tgz",
+ "integrity": "sha1-KWcvQ2Y+k23zcKrrIr7ds7rsdDg=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.16.0"
+ }
+ },
+ "@babel/helper-validator-identifier": {
+ "version": "7.15.7",
+ "resolved": "https://registry.nlark.com/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.15.7.tgz",
+ "integrity": "sha1-Ig35k7/pBKSmsCq08zhaXr9uI4k=",
+ "dev": true
+ },
+ "@babel/helper-validator-option": {
+ "version": "7.14.5",
+ "resolved": "https://registry.nlark.com/@babel/helper-validator-option/download/@babel/helper-validator-option-7.14.5.tgz",
+ "integrity": "sha1-bnKh//GNXfy4eOHmLxoCHEty1aM=",
+ "dev": true
+ },
+ "@babel/helper-wrap-function": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.16.0.tgz",
+ "integrity": "sha1-s88xivzndN/nW4Z2fNbWjzSC5Xw=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-function-name": "^7.16.0",
+ "@babel/template": "^7.16.0",
+ "@babel/traverse": "^7.16.0",
+ "@babel/types": "^7.16.0"
+ },
+ "dependencies": {
+ "@babel/template": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/template/download/@babel/template-7.16.0.tgz?cache=0&sync_timestamp=1635561799475&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.16.0.tgz",
+ "integrity": "sha1-0Wo16/TNdOICCDNW+rId2JNj3dY=",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.16.0",
+ "@babel/parser": "^7.16.0",
+ "@babel/types": "^7.16.0"
+ }
+ }
+ }
+ },
+ "@babel/helpers": {
+ "version": "7.16.3",
+ "resolved": "https://registry.npmmirror.com/@babel/helpers/download/@babel/helpers-7.16.3.tgz?cache=0&sync_timestamp=1636495281937&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelpers%2Fdownload%2F%40babel%2Fhelpers-7.16.3.tgz",
+ "integrity": "sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w==",
+ "dev": true,
+ "requires": {
+ "@babel/template": "^7.16.0",
+ "@babel/traverse": "^7.16.3",
+ "@babel/types": "^7.16.0"
+ },
+ "dependencies": {
+ "@babel/template": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/template/download/@babel/template-7.16.0.tgz?cache=0&sync_timestamp=1635561799475&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.16.0.tgz",
+ "integrity": "sha1-0Wo16/TNdOICCDNW+rId2JNj3dY=",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.16.0",
+ "@babel/parser": "^7.16.0",
+ "@babel/types": "^7.16.0"
+ }
+ }
+ }
+ },
+ "@babel/highlight": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/highlight/download/@babel/highlight-7.16.0.tgz?cache=0&sync_timestamp=1635562526459&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.16.0.tgz",
+ "integrity": "sha1-bOsysspLj182H7f9gh4/3fShclo=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.15.7",
+ "chalk": "^2.0.0",
+ "js-tokens": "^4.0.0"
+ }
+ },
+ "@babel/parser": {
+ "version": "7.16.4",
+ "resolved": "https://registry.npmmirror.com/@babel/parser/download/@babel/parser-7.16.4.tgz",
+ "integrity": "sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==",
+ "dev": true
+ },
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/download/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.0.tgz",
+ "integrity": "sha1-NYly6qsAb16wgmGDsMk8vK8T4eI=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0",
+ "@babel/plugin-proposal-optional-chaining": "^7.16.0"
+ }
+ },
+ "@babel/plugin-proposal-async-generator-functions": {
+ "version": "7.14.7",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-async-generator-functions/download/@babel/plugin-proposal-async-generator-functions-7.14.7.tgz",
+ "integrity": "sha1-eEpIw9jtBz9lrc8wtXvL9sgRms4=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-remap-async-to-generator": "^7.14.5",
+ "@babel/plugin-syntax-async-generators": "^7.8.4"
+ }
+ },
+ "@babel/plugin-proposal-class-properties": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-class-properties/download/@babel/plugin-proposal-class-properties-7.16.0.tgz",
+ "integrity": "sha1-wClhgmfd68coD6KG4PjKKieKLRo=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-create-class-features-plugin": "^7.16.0",
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-proposal-class-static-block": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-class-static-block/download/@babel/plugin-proposal-class-static-block-7.16.0.tgz",
+ "integrity": "sha1-UpaULFZNgUTIPuo0fQqooLiRcOc=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-create-class-features-plugin": "^7.16.0",
+ "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/plugin-syntax-class-static-block": "^7.14.5"
+ }
+ },
+ "@babel/plugin-proposal-dynamic-import": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-dynamic-import/download/@babel/plugin-proposal-dynamic-import-7.16.0.tgz",
+ "integrity": "sha1-eD7KYdUFJiAvmylglUU5d+iGWfE=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/plugin-syntax-dynamic-import": "^7.8.3"
+ }
+ },
+ "@babel/plugin-proposal-export-namespace-from": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-export-namespace-from/download/@babel/plugin-proposal-export-namespace-from-7.16.0.tgz",
+ "integrity": "sha1-nAHe5Auda4R7ZWqvSjl2pxdA8iI=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/plugin-syntax-export-namespace-from": "^7.8.3"
+ }
+ },
+ "@babel/plugin-proposal-json-strings": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-json-strings/download/@babel/plugin-proposal-json-strings-7.16.0.tgz",
+ "integrity": "sha1-yuNale0dKn+inE3EFUC4SnLpqyU=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/plugin-syntax-json-strings": "^7.8.3"
+ }
+ },
+ "@babel/plugin-proposal-logical-assignment-operators": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-logical-assignment-operators/download/@babel/plugin-proposal-logical-assignment-operators-7.16.0.tgz",
+ "integrity": "sha1-pxG4zrP/3dPviNOknobb08x9s/0=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
+ }
+ },
+ "@babel/plugin-proposal-nullish-coalescing-operator": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-nullish-coalescing-operator/download/@babel/plugin-proposal-nullish-coalescing-operator-7.16.0.tgz",
+ "integrity": "sha1-ROHM4I/iQnSCz0RqkbtFFSjtBZY=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
+ }
+ },
+ "@babel/plugin-proposal-numeric-separator": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-numeric-separator/download/@babel/plugin-proposal-numeric-separator-7.16.0.tgz",
+ "integrity": "sha1-XUGOT7v4ubfQMSXTpScwQzo3NzQ=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/plugin-syntax-numeric-separator": "^7.10.4"
+ }
+ },
+ "@babel/plugin-proposal-object-rest-spread": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-object-rest-spread/download/@babel/plugin-proposal-object-rest-spread-7.16.0.tgz",
+ "integrity": "sha1-X7MvbZJNbmcSgQNipg4SomCYcuY=",
+ "dev": true,
+ "requires": {
+ "@babel/compat-data": "^7.16.0",
+ "@babel/helper-compilation-targets": "^7.16.0",
+ "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-transform-parameters": "^7.16.0"
+ }
+ },
+ "@babel/plugin-proposal-optional-catch-binding": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-optional-catch-binding/download/@babel/plugin-proposal-optional-catch-binding-7.16.0.tgz",
+ "integrity": "sha1-WRAIWBGrTCiwDW6/+kqwJ00eXxY=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
+ }
+ },
+ "@babel/plugin-proposal-optional-chaining": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-optional-chaining/download/@babel/plugin-proposal-optional-chaining-7.16.0.tgz",
+ "integrity": "sha1-VtvDlwglaDYI6e+1XqgsKi1sjcA=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3"
+ }
+ },
+ "@babel/plugin-proposal-private-methods": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-methods/download/@babel/plugin-proposal-private-methods-7.16.0.tgz",
+ "integrity": "sha1-tNr7nHF+QwHFd2sw0IDWODyJr/Y=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-create-class-features-plugin": "^7.16.0",
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-proposal-private-property-in-object": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/download/@babel/plugin-proposal-private-property-in-object-7.16.0.tgz",
+ "integrity": "sha1-aek1ssXHnSSIES2IbwxOJ5D+528=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.16.0",
+ "@babel/helper-create-class-features-plugin": "^7.16.0",
+ "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/plugin-syntax-private-property-in-object": "^7.14.5"
+ },
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.16.0.tgz?cache=0&sync_timestamp=1635561802239&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.16.0.tgz",
+ "integrity": "sha1-mh8OvNpT2aLQAQjEzqzmpdXx8I0=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.16.0"
+ }
+ }
+ }
+ },
+ "@babel/plugin-proposal-unicode-property-regex": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-unicode-property-regex/download/@babel/plugin-proposal-unicode-property-regex-7.16.0.tgz",
+ "integrity": "sha1-iQSC38XqN45C4Zpx5wlyjKvxhhI=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-create-regexp-features-plugin": "^7.16.0",
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-syntax-async-generators": {
+ "version": "7.8.4",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-async-generators/download/@babel/plugin-syntax-async-generators-7.8.4.tgz",
+ "integrity": "sha1-qYP7Gusuw/btBCohD2QOkOeG/g0=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-class-properties": {
+ "version": "7.12.13",
+ "resolved": "https://registry.nlark.com/@babel/plugin-syntax-class-properties/download/@babel/plugin-syntax-class-properties-7.12.13.tgz",
+ "integrity": "sha1-tcmHJ0xKOoK4lxR5aTGmtTVErhA=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.12.13"
+ }
+ },
+ "@babel/plugin-syntax-class-static-block": {
+ "version": "7.14.5",
+ "resolved": "https://registry.nlark.com/@babel/plugin-syntax-class-static-block/download/@babel/plugin-syntax-class-static-block-7.14.5.tgz",
+ "integrity": "sha1-GV34mxRrS3izv4l/16JXyEZZ1AY=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-syntax-dynamic-import": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-dynamic-import/download/@babel/plugin-syntax-dynamic-import-7.8.3.tgz",
+ "integrity": "sha1-Yr+Ysto80h1iYVT8lu5bPLaOrLM=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-export-namespace-from": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-export-namespace-from/download/@babel/plugin-syntax-export-namespace-from-7.8.3.tgz",
+ "integrity": "sha1-AolkqbqA28CUyRXEh618TnpmRlo=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.3"
+ }
+ },
+ "@babel/plugin-syntax-json-strings": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-json-strings/download/@babel/plugin-syntax-json-strings-7.8.3.tgz",
+ "integrity": "sha1-AcohtmjNghjJ5kDLbdiMVBKyyWo=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-logical-assignment-operators": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-logical-assignment-operators/download/@babel/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
+ "integrity": "sha1-ypHvRjA1MESLkGZSusLp/plB9pk=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-syntax-nullish-coalescing-operator": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-nullish-coalescing-operator/download/@babel/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
+ "integrity": "sha1-Fn7XA2iIYIH3S1w2xlqIwDtm0ak=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-numeric-separator": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-numeric-separator/download/@babel/plugin-syntax-numeric-separator-7.10.4.tgz",
+ "integrity": "sha1-ubBws+M1cM2f0Hun+pHA3Te5r5c=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-syntax-object-rest-spread": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-object-rest-spread/download/@babel/plugin-syntax-object-rest-spread-7.8.3.tgz",
+ "integrity": "sha1-YOIl7cvZimQDMqLnLdPmbxr1WHE=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-optional-catch-binding": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-optional-catch-binding/download/@babel/plugin-syntax-optional-catch-binding-7.8.3.tgz",
+ "integrity": "sha1-YRGiZbz7Ag6579D9/X0mQCue1sE=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-optional-chaining": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-optional-chaining/download/@babel/plugin-syntax-optional-chaining-7.8.3.tgz",
+ "integrity": "sha1-T2nCq5UWfgGAzVM2YT+MV4j31Io=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-private-property-in-object": {
+ "version": "7.14.5",
+ "resolved": "https://registry.nlark.com/@babel/plugin-syntax-private-property-in-object/download/@babel/plugin-syntax-private-property-in-object-7.14.5.tgz",
+ "integrity": "sha1-DcZnHsDqIrbpShEU+FeXDNOd4a0=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-syntax-top-level-await": {
+ "version": "7.14.5",
+ "resolved": "https://registry.nlark.com/@babel/plugin-syntax-top-level-await/download/@babel/plugin-syntax-top-level-await-7.14.5.tgz",
+ "integrity": "sha1-wc/a3DWmRiQAAfBhOCR7dBw02Uw=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-arrow-functions": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-arrow-functions/download/@babel/plugin-transform-arrow-functions-7.16.0.tgz",
+ "integrity": "sha1-lRcG+LRJyDTtB71HTAkkyUS5Wo4=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-async-to-generator": {
+ "version": "7.14.5",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-async-to-generator/download/@babel/plugin-transform-async-to-generator-7.14.5.tgz",
+ "integrity": "sha1-cseJCE2PIJSsuUVjOUPvhEPTnmc=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-imports": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-remap-async-to-generator": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-block-scoped-functions": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions/download/@babel/plugin-transform-block-scoped-functions-7.16.0.tgz",
+ "integrity": "sha1-xhh2MjOtAoR4BavKxMNFzp3nFF0=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-block-scoping": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoping/download/@babel/plugin-transform-block-scoping-7.16.0.tgz",
+ "integrity": "sha1-vPQz+0gv6MPTtOimaxxKjnfTfBY=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-classes": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-classes/download/@babel/plugin-transform-classes-7.16.0.tgz",
+ "integrity": "sha1-VM9f8LIkLGVz11PNS/xwd6iygvU=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.16.0",
+ "@babel/helper-function-name": "^7.16.0",
+ "@babel/helper-optimise-call-expression": "^7.16.0",
+ "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-replace-supers": "^7.16.0",
+ "@babel/helper-split-export-declaration": "^7.16.0",
+ "globals": "^11.1.0"
+ },
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.16.0.tgz?cache=0&sync_timestamp=1635561802239&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.16.0.tgz",
+ "integrity": "sha1-mh8OvNpT2aLQAQjEzqzmpdXx8I0=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.16.0"
+ }
+ }
+ }
+ },
+ "@babel/plugin-transform-computed-properties": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-computed-properties/download/@babel/plugin-transform-computed-properties-7.16.0.tgz",
+ "integrity": "sha1-4MOFUH0h4bCwdtZr7W1SMbhRELc=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-destructuring": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-destructuring/download/@babel/plugin-transform-destructuring-7.16.0.tgz",
+ "integrity": "sha1-rT1+dFhK1epOrbHmZCFGxZDe4zw=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-dotall-regex": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-dotall-regex/download/@babel/plugin-transform-dotall-regex-7.16.0.tgz",
+ "integrity": "sha1-ULqwDBCEthYtClioGAMc9XeY4G8=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-create-regexp-features-plugin": "^7.16.0",
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-duplicate-keys": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-duplicate-keys/download/@babel/plugin-transform-duplicate-keys-7.16.0.tgz",
+ "integrity": "sha1-i8LiGBPj6J5eW/O2CqX8RYV1oXY=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-exponentiation-operator": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-exponentiation-operator/download/@babel/plugin-transform-exponentiation-operator-7.16.0.tgz",
+ "integrity": "sha1-oYDNKIHjUzzvnTkB5I2tD77/S+Q=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.0",
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-for-of": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-for-of/download/@babel/plugin-transform-for-of-7.16.0.tgz",
+ "integrity": "sha1-96us7RVSYOJGE1m7x8ckispea9I=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-function-name": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-function-name/download/@babel/plugin-transform-function-name-7.16.0.tgz",
+ "integrity": "sha1-AuNpnChMYmIjZZn3UQZcXV8fQA4=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-function-name": "^7.16.0",
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-literals": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-literals/download/@babel/plugin-transform-literals-7.16.0.tgz",
+ "integrity": "sha1-eXEeZw/86zG9KYIp1Q82IfeYDKw=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-member-expression-literals": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-member-expression-literals/download/@babel/plugin-transform-member-expression-literals-7.16.0.tgz",
+ "integrity": "sha1-UlG0zOAer4MUQD0hrtsmnXn15ks=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-modules-amd": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-amd/download/@babel/plugin-transform-modules-amd-7.16.0.tgz",
+ "integrity": "sha1-CavUHhjc9P1HnFmMHO97056xM34=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-transforms": "^7.16.0",
+ "@babel/helper-plugin-utils": "^7.14.5",
+ "babel-plugin-dynamic-import-node": "^2.3.3"
+ }
+ },
+ "@babel/plugin-transform-modules-commonjs": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/download/@babel/plugin-transform-modules-commonjs-7.16.0.tgz",
+ "integrity": "sha1-rdWOY4yN3Eh1vZqey1xZRhP2ySI=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-transforms": "^7.16.0",
+ "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-simple-access": "^7.16.0",
+ "babel-plugin-dynamic-import-node": "^2.3.3"
+ }
+ },
+ "@babel/plugin-transform-modules-systemjs": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-systemjs/download/@babel/plugin-transform-modules-systemjs-7.16.0.tgz",
+ "integrity": "sha1-qSzyQK/rYF9MoWZwRTAkQl5CHqQ=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-hoist-variables": "^7.16.0",
+ "@babel/helper-module-transforms": "^7.16.0",
+ "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-validator-identifier": "^7.15.7",
+ "babel-plugin-dynamic-import-node": "^2.3.3"
+ }
+ },
+ "@babel/plugin-transform-modules-umd": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-umd/download/@babel/plugin-transform-modules-umd-7.16.0.tgz",
+ "integrity": "sha1-GV8mwq1tajkbcIgO/84YzmJeBqc=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-transforms": "^7.16.0",
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-named-capturing-groups-regex": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex/download/@babel/plugin-transform-named-capturing-groups-regex-7.16.0.tgz",
+ "integrity": "sha1-09thzF1bl5hlWZZ81eqD5cMglso=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-create-regexp-features-plugin": "^7.16.0"
+ }
+ },
+ "@babel/plugin-transform-new-target": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-new-target/download/@babel/plugin-transform-new-target-7.16.0.tgz",
+ "integrity": "sha1-r4I6tXb3UiFaSZN3eaQcplglqzU=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-object-super": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-object-super/download/@babel/plugin-transform-object-super-7.16.0.tgz",
+ "integrity": "sha1-+yDVgG3GSRoGKWrBTqjo1v7dpys=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-replace-supers": "^7.16.0"
+ }
+ },
+ "@babel/plugin-transform-parameters": {
+ "version": "7.16.3",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-parameters/download/@babel/plugin-transform-parameters-7.16.3.tgz?cache=0&sync_timestamp=1636495301748&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-transform-parameters%2Fdownload%2F%40babel%2Fplugin-transform-parameters-7.16.3.tgz",
+ "integrity": "sha512-3MaDpJrOXT1MZ/WCmkOFo7EtmVVC8H4EUZVrHvFOsmwkk4lOjQj8rzv8JKUZV4YoQKeoIgk07GO+acPU9IMu/w==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-property-literals": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-property-literals/download/@babel/plugin-transform-property-literals-7.16.0.tgz",
+ "integrity": "sha1-qVxVIYmpagAFn2d23E4A42kMeNE=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-regenerator": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-regenerator/download/@babel/plugin-transform-regenerator-7.16.0.tgz",
+ "integrity": "sha1-6u5CLISwIy0Drqfbmcl97q9hJaQ=",
+ "dev": true,
+ "requires": {
+ "regenerator-transform": "^0.14.2"
+ }
+ },
+ "@babel/plugin-transform-reserved-words": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-reserved-words/download/@babel/plugin-transform-reserved-words-7.16.0.tgz",
+ "integrity": "sha1-//S53LGeEmGTlL2hctFPLQTAN5w=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-runtime": {
+ "version": "7.14.5",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-runtime/download/@babel/plugin-transform-runtime-7.14.5.tgz",
+ "integrity": "sha1-MEkdrUnGBZ+Pj6XuiJagCJ6YdSM=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-imports": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.14.5",
+ "babel-plugin-polyfill-corejs2": "^0.2.2",
+ "babel-plugin-polyfill-corejs3": "^0.2.2",
+ "babel-plugin-polyfill-regenerator": "^0.2.2",
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz",
+ "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=",
+ "dev": true
+ }
+ }
+ },
+ "@babel/plugin-transform-shorthand-properties": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-shorthand-properties/download/@babel/plugin-transform-shorthand-properties-7.16.0.tgz",
+ "integrity": "sha1-CQNy4xQffMMk7XCz2vU3nfL6OE0=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-spread": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-spread/download/@babel/plugin-transform-spread-7.16.0.tgz",
+ "integrity": "sha1-0hygmbvVOrMHqGIeAZp70PQM3Ps=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0"
+ }
+ },
+ "@babel/plugin-transform-sticky-regex": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-sticky-regex/download/@babel/plugin-transform-sticky-regex-7.16.0.tgz",
+ "integrity": "sha1-w16jGgLYa+SF9qpRAYS2d6kXOP0=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-template-literals": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-template-literals/download/@babel/plugin-transform-template-literals-7.16.0.tgz",
+ "integrity": "sha1-qOztOo57ji1A7E7EVIpFkSYw0wI=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-typeof-symbol": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typeof-symbol/download/@babel/plugin-transform-typeof-symbol-7.16.0.tgz",
+ "integrity": "sha1-ixmiRMb4ydZo3Kam91Stbq0RKPI=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-unicode-escapes": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-escapes/download/@babel/plugin-transform-unicode-escapes-7.16.0.tgz",
+ "integrity": "sha1-GjVAZLTEVmOjIzT0b6DPYQC1sfM=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-unicode-regex": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-regex/download/@babel/plugin-transform-unicode-regex-7.16.0.tgz",
+ "integrity": "sha1-KTuAlQF3yMha7eh87ygCWfuZVAI=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-create-regexp-features-plugin": "^7.16.0",
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/preset-env": {
+ "version": "7.14.8",
+ "resolved": "https://registry.npmmirror.com/@babel/preset-env/download/@babel/preset-env-7.14.8.tgz",
+ "integrity": "sha1-JUlC9cqAzKvPuyqfUkx0vKV0AFs=",
+ "dev": true,
+ "requires": {
+ "@babel/compat-data": "^7.14.7",
+ "@babel/helper-compilation-targets": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-validator-option": "^7.14.5",
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.14.5",
+ "@babel/plugin-proposal-async-generator-functions": "^7.14.7",
+ "@babel/plugin-proposal-class-properties": "^7.14.5",
+ "@babel/plugin-proposal-class-static-block": "^7.14.5",
+ "@babel/plugin-proposal-dynamic-import": "^7.14.5",
+ "@babel/plugin-proposal-export-namespace-from": "^7.14.5",
+ "@babel/plugin-proposal-json-strings": "^7.14.5",
+ "@babel/plugin-proposal-logical-assignment-operators": "^7.14.5",
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5",
+ "@babel/plugin-proposal-numeric-separator": "^7.14.5",
+ "@babel/plugin-proposal-object-rest-spread": "^7.14.7",
+ "@babel/plugin-proposal-optional-catch-binding": "^7.14.5",
+ "@babel/plugin-proposal-optional-chaining": "^7.14.5",
+ "@babel/plugin-proposal-private-methods": "^7.14.5",
+ "@babel/plugin-proposal-private-property-in-object": "^7.14.5",
+ "@babel/plugin-proposal-unicode-property-regex": "^7.14.5",
+ "@babel/plugin-syntax-async-generators": "^7.8.4",
+ "@babel/plugin-syntax-class-properties": "^7.12.13",
+ "@babel/plugin-syntax-class-static-block": "^7.14.5",
+ "@babel/plugin-syntax-dynamic-import": "^7.8.3",
+ "@babel/plugin-syntax-export-namespace-from": "^7.8.3",
+ "@babel/plugin-syntax-json-strings": "^7.8.3",
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
+ "@babel/plugin-syntax-numeric-separator": "^7.10.4",
+ "@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-private-property-in-object": "^7.14.5",
+ "@babel/plugin-syntax-top-level-await": "^7.14.5",
+ "@babel/plugin-transform-arrow-functions": "^7.14.5",
+ "@babel/plugin-transform-async-to-generator": "^7.14.5",
+ "@babel/plugin-transform-block-scoped-functions": "^7.14.5",
+ "@babel/plugin-transform-block-scoping": "^7.14.5",
+ "@babel/plugin-transform-classes": "^7.14.5",
+ "@babel/plugin-transform-computed-properties": "^7.14.5",
+ "@babel/plugin-transform-destructuring": "^7.14.7",
+ "@babel/plugin-transform-dotall-regex": "^7.14.5",
+ "@babel/plugin-transform-duplicate-keys": "^7.14.5",
+ "@babel/plugin-transform-exponentiation-operator": "^7.14.5",
+ "@babel/plugin-transform-for-of": "^7.14.5",
+ "@babel/plugin-transform-function-name": "^7.14.5",
+ "@babel/plugin-transform-literals": "^7.14.5",
+ "@babel/plugin-transform-member-expression-literals": "^7.14.5",
+ "@babel/plugin-transform-modules-amd": "^7.14.5",
+ "@babel/plugin-transform-modules-commonjs": "^7.14.5",
+ "@babel/plugin-transform-modules-systemjs": "^7.14.5",
+ "@babel/plugin-transform-modules-umd": "^7.14.5",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.14.7",
+ "@babel/plugin-transform-new-target": "^7.14.5",
+ "@babel/plugin-transform-object-super": "^7.14.5",
+ "@babel/plugin-transform-parameters": "^7.14.5",
+ "@babel/plugin-transform-property-literals": "^7.14.5",
+ "@babel/plugin-transform-regenerator": "^7.14.5",
+ "@babel/plugin-transform-reserved-words": "^7.14.5",
+ "@babel/plugin-transform-shorthand-properties": "^7.14.5",
+ "@babel/plugin-transform-spread": "^7.14.6",
+ "@babel/plugin-transform-sticky-regex": "^7.14.5",
+ "@babel/plugin-transform-template-literals": "^7.14.5",
+ "@babel/plugin-transform-typeof-symbol": "^7.14.5",
+ "@babel/plugin-transform-unicode-escapes": "^7.14.5",
+ "@babel/plugin-transform-unicode-regex": "^7.14.5",
+ "@babel/preset-modules": "^0.1.4",
+ "@babel/types": "^7.14.8",
+ "babel-plugin-polyfill-corejs2": "^0.2.2",
+ "babel-plugin-polyfill-corejs3": "^0.2.2",
+ "babel-plugin-polyfill-regenerator": "^0.2.2",
+ "core-js-compat": "^3.15.0",
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz",
+ "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=",
+ "dev": true
+ }
+ }
+ },
+ "@babel/preset-modules": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmmirror.com/@babel/preset-modules/download/@babel/preset-modules-0.1.5.tgz",
+ "integrity": "sha1-75Odbn8miCfhhBY43G/5VRXhFdk=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
+ "@babel/plugin-transform-dotall-regex": "^7.4.4",
+ "@babel/types": "^7.4.4",
+ "esutils": "^2.0.2"
+ }
+ },
+ "@babel/runtime": {
+ "version": "7.14.8",
+ "resolved": "https://registry.npmmirror.com/@babel/runtime/download/@babel/runtime-7.14.8.tgz?cache=0&sync_timestamp=1636495277831&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.14.8.tgz",
+ "integrity": "sha1-cRmlb0IQGIUmlCkLn5FICXORtEY=",
+ "dev": true,
+ "requires": {
+ "regenerator-runtime": "^0.13.4"
+ }
+ },
+ "@babel/runtime-corejs3": {
+ "version": "7.16.3",
+ "resolved": "https://registry.npmmirror.com/@babel/runtime-corejs3/download/@babel/runtime-corejs3-7.16.3.tgz?cache=0&sync_timestamp=1636495298551&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fruntime-corejs3%2Fdownload%2F%40babel%2Fruntime-corejs3-7.16.3.tgz",
+ "integrity": "sha512-IAdDC7T0+wEB4y2gbIL0uOXEYpiZEeuFUTVbdGq+UwCcF35T/tS8KrmMomEwEc5wBbyfH3PJVpTSUqrhPDXFcQ==",
+ "dev": true,
+ "requires": {
+ "core-js-pure": "^3.19.0",
+ "regenerator-runtime": "^0.13.4"
+ }
+ },
+ "@babel/template": {
+ "version": "7.14.5",
+ "resolved": "https://registry.npmmirror.com/@babel/template/download/@babel/template-7.14.5.tgz?cache=0&sync_timestamp=1635561799475&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.14.5.tgz",
+ "integrity": "sha1-qbydizM1T/blWpxg0RCSAKaJdPQ=",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.14.5",
+ "@babel/parser": "^7.14.5",
+ "@babel/types": "^7.14.5"
+ }
+ },
+ "@babel/traverse": {
+ "version": "7.16.3",
+ "resolved": "https://registry.npmmirror.com/@babel/traverse/download/@babel/traverse-7.16.3.tgz?cache=0&sync_timestamp=1636495280926&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.16.3.tgz",
+ "integrity": "sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.16.0",
+ "@babel/generator": "^7.16.0",
+ "@babel/helper-function-name": "^7.16.0",
+ "@babel/helper-hoist-variables": "^7.16.0",
+ "@babel/helper-split-export-declaration": "^7.16.0",
+ "@babel/parser": "^7.16.3",
+ "@babel/types": "^7.16.0",
+ "debug": "^4.1.0",
+ "globals": "^11.1.0"
+ },
+ "dependencies": {
+ "@babel/generator": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/generator/download/@babel/generator-7.16.0.tgz?cache=0&sync_timestamp=1635561809489&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.16.0.tgz",
+ "integrity": "sha1-1A89HVB15i01ALzLZ/PaqKlSZbI=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.16.0",
+ "jsesc": "^2.5.1",
+ "source-map": "^0.5.0"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ }
+ }
+ },
+ "@babel/types": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmmirror.com/@babel/types/download/@babel/types-7.16.0.tgz?cache=0&sync_timestamp=1635561799958&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.16.0.tgz",
+ "integrity": "sha1-2zsxOAT5aq3Qt3bEgj4SetZyibo=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.15.7",
+ "to-fast-properties": "^2.0.0"
+ }
+ },
+ "@csstools/convert-colors": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npm.taobao.org/@csstools/convert-colors/download/@csstools/convert-colors-1.4.0.tgz",
+ "integrity": "sha1-rUldxBsS511YjG24uYNPCPoTHrc=",
+ "dev": true
+ },
+ "@ctrl/tinycolor": {
+ "version": "3.4.0",
+ "resolved": "https://registry.nlark.com/@ctrl/tinycolor/download/@ctrl/tinycolor-3.4.0.tgz",
+ "integrity": "sha1-w8WuVDyJfKqcKmhjC+01W+X5mQ8="
+ },
+ "@delon/abc": {
+ "version": "12.4.2",
+ "resolved": "https://registry.npmmirror.com/@delon/abc/download/@delon/abc-12.4.2.tgz",
+ "integrity": "sha512-K38WW6n7Kp5hYNrPoDfblJcPb5XF4apvbHlR76FLtkCjSpvNzRIKXi0DJJzmRchBOSHPvUYFk5EUGbgQSDe75w==",
+ "requires": {
+ "@delon/acl": "^12.4.2",
+ "@delon/theme": "^12.4.2",
+ "@delon/util": "^12.4.2",
+ "file-saver": "^2.0.5",
+ "isutf8": "^3.1.1",
+ "jszip": "^3.7.1",
+ "ngx-countdown": "^12.0.1",
+ "tslib": "^2.2.0",
+ "xlsx": "^0.17.1"
+ }
+ },
+ "@delon/acl": {
+ "version": "12.4.2",
+ "resolved": "https://registry.npmmirror.com/@delon/acl/download/@delon/acl-12.4.2.tgz",
+ "integrity": "sha512-EPGwYZjZV05xZR9tRg5i1G00Zyp/VH8nO3H+Kze8fCrQsfc5tAxYXAFzpV3s003rzYQrW1mWLEge73IDVjIs1Q==",
+ "requires": {
+ "@delon/util": "^12.4.2",
+ "tslib": "^2.2.0"
+ }
+ },
+ "@delon/auth": {
+ "version": "12.4.2",
+ "resolved": "https://registry.npmmirror.com/@delon/auth/download/@delon/auth-12.4.2.tgz",
+ "integrity": "sha512-2g+rQXrebAn5qDjM++GloPqRxVgxfy+kFcRKnpC8nOwoyIb9vDDf0sqcFUioLqugmJ7d7fGdROWCBuBWB5NMJQ==",
+ "requires": {
+ "@delon/util": "^12.4.2",
+ "tslib": "^2.2.0"
+ }
+ },
+ "@delon/cache": {
+ "version": "12.4.2",
+ "resolved": "https://registry.npmmirror.com/@delon/cache/download/@delon/cache-12.4.2.tgz",
+ "integrity": "sha512-n9iu6lg/jdaDqRN1J3CQNz9heigH/xrHQYsHkjOWbwASA6rssP12ThvIvcuEClhKpxQrdCx6rGdg26TP1JSOvA==",
+ "requires": {
+ "@delon/util": "^12.4.2",
+ "tslib": "^2.2.0"
+ }
+ },
+ "@delon/chart": {
+ "version": "12.4.2",
+ "resolved": "https://registry.npmmirror.com/@delon/chart/download/@delon/chart-12.4.2.tgz",
+ "integrity": "sha512-Z4lzKqEJfhePFWPSL0s2DUedOLtNj/2kcAvBqTtGW+VAzs7bYC+izIrHFNR03Qr0+DJtFeZk6kuuD2jhpfszzQ==",
+ "requires": {
+ "@antv/data-set": "^0.11.8",
+ "@antv/g2": "^4.1.24",
+ "@delon/theme": "^12.4.2",
+ "@delon/util": "^12.4.2",
+ "echarts": "^5.1.2",
+ "tslib": "^2.2.0"
+ }
+ },
+ "@delon/form": {
+ "version": "12.4.2",
+ "resolved": "https://registry.npmmirror.com/@delon/form/download/@delon/form-12.4.2.tgz",
+ "integrity": "sha512-8/YCWqBhAdI8jGpfMrwgLDvSLtmXar9Y6iRq7eHAgD1PhF12vB4x0tIZtwU2AVWp7VOCC5ySKX003N2LYQkHTw==",
+ "requires": {
+ "@delon/acl": "^12.4.2",
+ "@delon/theme": "^12.4.2",
+ "@delon/util": "^12.4.2",
+ "ajv": "^8.6.2",
+ "ajv-formats": "^2.1.1",
+ "tslib": "^2.2.0"
+ }
+ },
+ "@delon/mock": {
+ "version": "12.4.2",
+ "resolved": "https://registry.npmmirror.com/@delon/mock/download/@delon/mock-12.4.2.tgz",
+ "integrity": "sha512-DF1cPvajHgg09dlvzsbjWGrs3+9imMZgvytWky7K2UNhWc8Yr1240Qhq1vyDNiJMp0ZfMCqTPk9B9PBH+kxp3Q==",
+ "requires": {
+ "@delon/util": "^12.4.2",
+ "@types/mockjs": "^1.0.4",
+ "mockjs": "^1.1.0",
+ "tslib": "^2.2.0"
+ }
+ },
+ "@delon/testing": {
+ "version": "12.4.2",
+ "resolved": "https://registry.npmmirror.com/@delon/testing/download/@delon/testing-12.4.2.tgz",
+ "integrity": "sha512-3LiUmHZMZfH/EfiYC8D1OJrHhvyhqD5n1RWQ7Fhqn8RSk7lODRU9dehiVWzJXutHkPVjktdsiOGJvJSq7wfPaw==",
+ "dev": true,
+ "requires": {
+ "tslib": "^2.2.0"
+ }
+ },
+ "@delon/theme": {
+ "version": "12.4.2",
+ "resolved": "https://registry.npmmirror.com/@delon/theme/download/@delon/theme-12.4.2.tgz",
+ "integrity": "sha512-SV2TnUMv1rHWEJ2w9SnFCryv5HHt2Bh0nL/YpqkFw3XzB/FaOXFvKsL/iM6G/vwC5/ms6E/81STSN6sVkPEfyQ==",
+ "requires": {
+ "@delon/acl": "^12.4.2",
+ "@delon/util": "^12.4.2",
+ "ng-zorro-antd": "^12.0.1",
+ "tslib": "^2.2.0"
+ }
+ },
+ "@delon/util": {
+ "version": "12.4.2",
+ "resolved": "https://registry.npmmirror.com/@delon/util/download/@delon/util-12.4.2.tgz",
+ "integrity": "sha512-dIF2Gkgj/XkFaAe4MGzSM5M+fyVR3BGEDfragADb3/2DiMPqMiiUPgPVi3e/cqdRuBWdkj2yMtIbI3l5aM3AeQ==",
+ "requires": {
+ "extend": "^3.0.2",
+ "tslib": "^2.2.0"
+ }
+ },
+ "@discoveryjs/json-ext": {
+ "version": "0.5.3",
+ "resolved": "https://registry.nlark.com/@discoveryjs/json-ext/download/@discoveryjs/json-ext-0.5.3.tgz",
+ "integrity": "sha1-kEIPn5xtOYfxdqGafY52QnGi9V0=",
+ "dev": true
+ },
+ "@es-joy/jsdoccomment": {
+ "version": "0.10.8",
+ "resolved": "https://registry.npmmirror.com/@es-joy/jsdoccomment/download/@es-joy/jsdoccomment-0.10.8.tgz",
+ "integrity": "sha1-sxUoh+JSRkEO1OpWmlWSbsE7KwU=",
+ "dev": true,
+ "requires": {
+ "comment-parser": "1.2.4",
+ "esquery": "^1.4.0",
+ "jsdoc-type-pratt-parser": "1.1.1"
+ },
+ "dependencies": {
+ "jsdoc-type-pratt-parser": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/jsdoc-type-pratt-parser/download/jsdoc-type-pratt-parser-1.1.1.tgz",
+ "integrity": "sha1-EP5eQJujjeIqSLVVWYlVom/wFg8=",
+ "dev": true
+ }
+ }
+ },
+ "@eslint/eslintrc": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmmirror.com/@eslint/eslintrc/download/@eslint/eslintrc-0.4.3.tgz",
+ "integrity": "sha1-nkKYHvA1vrPdSa3ResuW6P9vOUw=",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.12.4",
+ "debug": "^4.1.1",
+ "espree": "^7.3.0",
+ "globals": "^13.9.0",
+ "ignore": "^4.0.6",
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^3.13.1",
+ "minimatch": "^3.0.4",
+ "strip-json-comments": "^3.1.1"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmmirror.com/ajv/download/ajv-6.12.6.tgz?cache=0&sync_timestamp=1637522259668&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fajv%2Fdownload%2Fajv-6.12.6.tgz",
+ "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "globals": {
+ "version": "13.12.0",
+ "resolved": "https://registry.npmmirror.com/globals/download/globals-13.12.0.tgz?cache=0&sync_timestamp=1635390798667&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fglobals%2Fdownload%2Fglobals-13.12.0.tgz",
+ "integrity": "sha1-TXM3YDBCMKAILtluIeXFZfiYCJ4=",
+ "dev": true,
+ "requires": {
+ "type-fest": "^0.20.2"
+ }
+ },
+ "ignore": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmmirror.com/ignore/download/ignore-4.0.6.tgz?cache=0&sync_timestamp=1635926632542&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fignore%2Fdownload%2Fignore-4.0.6.tgz",
+ "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=",
+ "dev": true
+ },
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=",
+ "dev": true
+ },
+ "type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmmirror.com/type-fest/download/type-fest-0.20.2.tgz?cache=0&sync_timestamp=1637149878210&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ftype-fest%2Fdownload%2Ftype-fest-0.20.2.tgz",
+ "integrity": "sha1-G/IH9LKPkVg2ZstfvTJ4hzAc1fQ=",
+ "dev": true
+ }
+ }
+ },
+ "@exodus/schemasafe": {
+ "version": "1.0.0-rc.6",
+ "resolved": "https://registry.npmmirror.com/@exodus/schemasafe/download/@exodus/schemasafe-1.0.0-rc.6.tgz",
+ "integrity": "sha1-eYX2gVZM/0/667WJbrS+IK86rno=",
+ "dev": true
+ },
+ "@fullcalendar/common": {
+ "version": "5.10.1",
+ "resolved": "https://registry.npmmirror.com/@fullcalendar/common/download/@fullcalendar/common-5.10.1.tgz",
+ "integrity": "sha1-oBmVF0OFInekCV5Tb9dxb2+Fuao=",
+ "requires": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "@fullcalendar/core": {
+ "version": "5.10.1",
+ "resolved": "https://registry.npmmirror.com/@fullcalendar/core/download/@fullcalendar/core-5.10.1.tgz",
+ "integrity": "sha1-BcdlPlAEFJpjvLA+nciwSRhspQs=",
+ "requires": {
+ "@fullcalendar/common": "~5.10.1",
+ "preact": "^10.0.5",
+ "tslib": "^2.1.0"
+ }
+ },
+ "@fullcalendar/daygrid": {
+ "version": "5.10.1",
+ "resolved": "https://registry.npmmirror.com/@fullcalendar/daygrid/download/@fullcalendar/daygrid-5.10.1.tgz",
+ "integrity": "sha1-ve5PWDZP2rYxsqv4tWCUq1d28gM=",
+ "requires": {
+ "@fullcalendar/common": "~5.10.1",
+ "tslib": "^2.1.0"
+ }
+ },
+ "@fullcalendar/interaction": {
+ "version": "5.10.1",
+ "resolved": "https://registry.npmmirror.com/@fullcalendar/interaction/download/@fullcalendar/interaction-5.10.1.tgz",
+ "integrity": "sha1-36dLXFC71WCOtQrqtuV5yNIMs2c=",
+ "requires": {
+ "@fullcalendar/common": "~5.10.1",
+ "tslib": "^2.1.0"
+ }
+ },
+ "@fullcalendar/list": {
+ "version": "5.10.1",
+ "resolved": "https://registry.npmmirror.com/@fullcalendar/list/download/@fullcalendar/list-5.10.1.tgz",
+ "integrity": "sha1-hQWq4JhFuC9b22JRvaD51jQu+dk=",
+ "requires": {
+ "@fullcalendar/common": "~5.10.1",
+ "tslib": "^2.1.0"
+ }
+ },
+ "@fullcalendar/timegrid": {
+ "version": "5.10.1",
+ "resolved": "https://registry.npmmirror.com/@fullcalendar/timegrid/download/@fullcalendar/timegrid-5.10.1.tgz",
+ "integrity": "sha1-+n/rkJv1merBRmuecMDVbODRrvw=",
+ "requires": {
+ "@fullcalendar/common": "~5.10.1",
+ "@fullcalendar/daygrid": "~5.10.1",
+ "tslib": "^2.1.0"
+ }
+ },
+ "@humanwhocodes/config-array": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmmirror.com/@humanwhocodes/config-array/download/@humanwhocodes/config-array-0.5.0.tgz",
+ "integrity": "sha1-FAeWfUxu7Nc4j4Os8er00Mbljvk=",
+ "dev": true,
+ "requires": {
+ "@humanwhocodes/object-schema": "^1.2.0",
+ "debug": "^4.1.1",
+ "minimatch": "^3.0.4"
+ }
+ },
+ "@humanwhocodes/object-schema": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmmirror.com/@humanwhocodes/object-schema/download/@humanwhocodes/object-schema-1.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40humanwhocodes%2Fobject-schema%2Fdownload%2F%40humanwhocodes%2Fobject-schema-1.2.1.tgz",
+ "integrity": "sha1-tSBSnsIdjllFoYUd/Rwy6U45/0U=",
+ "dev": true
+ },
+ "@istanbuljs/schema": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npm.taobao.org/@istanbuljs/schema/download/@istanbuljs/schema-0.1.3.tgz",
+ "integrity": "sha1-5F44TkuOwWvOL9kDr3hFD2v37Jg=",
+ "dev": true
+ },
+ "@jridgewell/resolve-uri": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/download/@jridgewell/resolve-uri-1.0.0.tgz",
+ "integrity": "sha1-P99XmPC0npAVWJb2KR3xhurAbIM=",
+ "dev": true
+ },
+ "@jsdevtools/coverage-istanbul-loader": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmmirror.com/@jsdevtools/coverage-istanbul-loader/download/@jsdevtools/coverage-istanbul-loader-3.0.5.tgz",
+ "integrity": "sha1-KkvGXQJx341ENZgttK812BdU7iY=",
+ "dev": true,
+ "requires": {
+ "convert-source-map": "^1.7.0",
+ "istanbul-lib-instrument": "^4.0.3",
+ "loader-utils": "^2.0.0",
+ "merge-source-map": "^1.1.0",
+ "schema-utils": "^2.7.0"
+ }
+ },
+ "@mrmlnc/readdir-enhanced": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npm.taobao.org/@mrmlnc/readdir-enhanced/download/@mrmlnc/readdir-enhanced-2.2.1.tgz",
+ "integrity": "sha1-UkryQNGjYFJ7cwR17PoTRKpUDd4=",
+ "dev": true,
+ "requires": {
+ "call-me-maybe": "^1.0.1",
+ "glob-to-regexp": "^0.3.0"
+ },
+ "dependencies": {
+ "glob-to-regexp": {
+ "version": "0.3.0",
+ "resolved": "https://registry.nlark.com/glob-to-regexp/download/glob-to-regexp-0.3.0.tgz",
+ "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=",
+ "dev": true
+ }
+ }
+ },
+ "@ng-util/lazy": {
+ "version": "11.2.0",
+ "resolved": "https://registry.npmmirror.com/@ng-util/lazy/download/@ng-util/lazy-11.2.0.tgz",
+ "integrity": "sha1-bASRAM2HQyIdK05rpo8OWaRORqo=",
+ "requires": {
+ "tslib": "^2.0.0"
+ }
+ },
+ "@ng-util/util": {
+ "version": "11.2.0",
+ "resolved": "https://registry.npmmirror.com/@ng-util/util/download/@ng-util/util-11.2.0.tgz",
+ "integrity": "sha1-cSnnS9aO51W82M1330b2MEKlY4g=",
+ "requires": {
+ "tslib": "^2.0.0"
+ }
+ },
+ "@ngtools/webpack": {
+ "version": "12.2.13",
+ "resolved": "https://registry.npmmirror.com/@ngtools/webpack/download/@ngtools/webpack-12.2.13.tgz",
+ "integrity": "sha1-RNcR7fo50XWi1lWqXG+ZaN/tzDU=",
+ "dev": true
+ },
+ "@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.nlark.com/@nodelib/fs.scandir/download/@nodelib/fs.scandir-2.1.5.tgz?cache=0&sync_timestamp=1622792655677&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40nodelib%2Ffs.scandir%2Fdownload%2F%40nodelib%2Ffs.scandir-2.1.5.tgz",
+ "integrity": "sha1-dhnC6yGyVIP20WdUi0z9WnSIw9U=",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ }
+ },
+ "@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.nlark.com/@nodelib/fs.stat/download/@nodelib/fs.stat-2.0.5.tgz",
+ "integrity": "sha1-W9Jir5Tp0lvR5xsF3u1Eh2oiLos=",
+ "dev": true
+ },
+ "@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://registry.nlark.com/@nodelib/fs.walk/download/@nodelib/fs.walk-1.2.8.tgz?cache=0&sync_timestamp=1625795692378&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40nodelib%2Ffs.walk%2Fdownload%2F%40nodelib%2Ffs.walk-1.2.8.tgz",
+ "integrity": "sha1-6Vc36LtnRt3t9pxVaVNJTxlv5po=",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ }
+ },
+ "@npmcli/git": {
+ "version": "2.1.0",
+ "resolved": "https://registry.nlark.com/@npmcli/git/download/@npmcli/git-2.1.0.tgz",
+ "integrity": "sha1-L7134UdTAkfTfzJZMNRXs+volPY=",
+ "dev": true,
+ "requires": {
+ "@npmcli/promise-spawn": "^1.3.2",
+ "lru-cache": "^6.0.0",
+ "mkdirp": "^1.0.4",
+ "npm-pick-manifest": "^6.1.1",
+ "promise-inflight": "^1.0.1",
+ "promise-retry": "^2.0.1",
+ "semver": "^7.3.5",
+ "which": "^2.0.2"
+ },
+ "dependencies": {
+ "which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npm.taobao.org/which/download/which-2.0.2.tgz",
+ "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ }
+ }
+ },
+ "@npmcli/installed-package-contents": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npm.taobao.org/@npmcli/installed-package-contents/download/@npmcli/installed-package-contents-1.0.7.tgz",
+ "integrity": "sha1-q3QIxhR5EblwqKviYc5RIjKj9Po=",
+ "dev": true,
+ "requires": {
+ "npm-bundled": "^1.1.1",
+ "npm-normalize-package-bin": "^1.0.1"
+ }
+ },
+ "@npmcli/move-file": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npm.taobao.org/@npmcli/move-file/download/@npmcli/move-file-1.1.2.tgz",
+ "integrity": "sha1-GoLD43L3yuklPrZtclQ9a4aFxnQ=",
+ "dev": true,
+ "requires": {
+ "mkdirp": "^1.0.4",
+ "rimraf": "^3.0.2"
+ }
+ },
+ "@npmcli/node-gyp": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/@npmcli/node-gyp/download/@npmcli/node-gyp-1.0.3.tgz",
+ "integrity": "sha1-qRLmN0GP/F8ts3XpO4WDdpGkOjM=",
+ "dev": true
+ },
+ "@npmcli/promise-spawn": {
+ "version": "1.3.2",
+ "resolved": "https://registry.nlark.com/@npmcli/promise-spawn/download/@npmcli/promise-spawn-1.3.2.tgz",
+ "integrity": "sha1-QtTlao6SdPuhgNq8CupuOPKSdPU=",
+ "dev": true,
+ "requires": {
+ "infer-owner": "^1.0.4"
+ }
+ },
+ "@npmcli/run-script": {
+ "version": "1.8.6",
+ "resolved": "https://registry.npmmirror.com/@npmcli/run-script/download/@npmcli/run-script-1.8.6.tgz",
+ "integrity": "sha1-GDFIAqZmCw1Lqkw6/n8a052MKLc=",
+ "dev": true,
+ "requires": {
+ "@npmcli/node-gyp": "^1.0.2",
+ "@npmcli/promise-spawn": "^1.3.2",
+ "node-gyp": "^7.1.0",
+ "read-package-json-fast": "^2.0.1"
+ }
+ },
+ "@nrwl/devkit": {
+ "version": "12.10.0",
+ "resolved": "https://registry.npmmirror.com/@nrwl/devkit/download/@nrwl/devkit-12.10.0.tgz",
+ "integrity": "sha1-z0od+xA2ISGFVI1oKWrCbkmKQcQ=",
+ "dev": true,
+ "requires": {
+ "@nrwl/tao": "12.10.0",
+ "ejs": "^3.1.5",
+ "ignore": "^5.0.4",
+ "rxjs": "^6.5.4",
+ "semver": "7.3.4",
+ "tslib": "^2.0.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.3.4",
+ "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.3.4.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.4.tgz",
+ "integrity": "sha1-J6qn0uTKdkUvmNOt0JOnLJQ+3Jc=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ }
+ }
+ },
+ "@nrwl/tao": {
+ "version": "12.10.0",
+ "resolved": "https://registry.npmmirror.com/@nrwl/tao/download/@nrwl/tao-12.10.0.tgz",
+ "integrity": "sha1-KM+72mb18QpJF98OcLlNBDNOFig=",
+ "dev": true,
+ "requires": {
+ "chalk": "4.1.0",
+ "enquirer": "~2.3.6",
+ "fs-extra": "^9.1.0",
+ "jsonc-parser": "3.0.0",
+ "nx": "12.10.0",
+ "rxjs": "^6.5.4",
+ "rxjs-for-await": "0.0.2",
+ "semver": "7.3.4",
+ "tmp": "~0.2.1",
+ "tslib": "^2.0.0",
+ "yargs-parser": "20.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz",
+ "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.0",
+ "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.0.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz",
+ "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
+ "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
+ "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz",
+ "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=",
+ "dev": true
+ },
+ "semver": {
+ "version": "7.3.4",
+ "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.3.4.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.4.tgz",
+ "integrity": "sha1-J6qn0uTKdkUvmNOt0JOnLJQ+3Jc=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmmirror.com/supports-color/download/supports-color-7.2.0.tgz",
+ "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "tmp": {
+ "version": "0.2.1",
+ "resolved": "https://registry.nlark.com/tmp/download/tmp-0.2.1.tgz",
+ "integrity": "sha1-hFf8MDfc9HGcJRNnoa9lAO4czxQ=",
+ "dev": true,
+ "requires": {
+ "rimraf": "^3.0.0"
+ }
+ },
+ "yargs-parser": {
+ "version": "20.0.0",
+ "resolved": "https://registry.npmmirror.com/yargs-parser/download/yargs-parser-20.0.0.tgz?cache=0&sync_timestamp=1637031053426&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fyargs-parser%2Fdownload%2Fyargs-parser-20.0.0.tgz",
+ "integrity": "sha1-xlodqql3rWPOvdUhWRR7eJpOGak=",
+ "dev": true
+ }
+ }
+ },
+ "@schematics/angular": {
+ "version": "12.2.13",
+ "resolved": "https://registry.npmmirror.com/@schematics/angular/download/@schematics/angular-12.2.13.tgz",
+ "integrity": "sha1-W/PntpmkLX/X96oSu+RTTmcecgE=",
+ "dev": true,
+ "requires": {
+ "@angular-devkit/core": "12.2.13",
+ "@angular-devkit/schematics": "12.2.13",
+ "jsonc-parser": "3.0.0"
+ }
+ },
+ "@stylelint/postcss-css-in-js": {
+ "version": "0.37.2",
+ "resolved": "https://registry.npm.taobao.org/@stylelint/postcss-css-in-js/download/@stylelint/postcss-css-in-js-0.37.2.tgz?cache=0&sync_timestamp=1599097529607&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40stylelint%2Fpostcss-css-in-js%2Fdownload%2F%40stylelint%2Fpostcss-css-in-js-0.37.2.tgz",
+ "integrity": "sha1-flqErRgfQjSiSAgDQipHuHSa89I=",
+ "dev": true,
+ "requires": {
+ "@babel/core": ">=7.9.0"
+ }
+ },
+ "@stylelint/postcss-markdown": {
+ "version": "0.36.2",
+ "resolved": "https://registry.npmmirror.com/@stylelint/postcss-markdown/download/@stylelint/postcss-markdown-0.36.2.tgz",
+ "integrity": "sha1-ClQMRpL43N/BPI41LBfnv+4rs5E=",
+ "dev": true,
+ "requires": {
+ "remark": "^13.0.0",
+ "unist-util-find-all-after": "^3.0.2"
+ }
+ },
+ "@swimlane/ngx-charts": {
+ "version": "18.0.1",
+ "resolved": "https://registry.npmmirror.com/@swimlane/ngx-charts/download/@swimlane/ngx-charts-18.0.1.tgz",
+ "integrity": "sha1-hMmZbVpmWQ2RHI4hj/snYYgMIs8=",
+ "requires": {
+ "@types/d3-shape": "^2.0.0",
+ "d3-array": "^2.9.1",
+ "d3-brush": "^2.1.0",
+ "d3-color": "^2.0.0",
+ "d3-format": "^2.0.0",
+ "d3-hierarchy": "^2.0.0",
+ "d3-interpolate": "^2.0.1",
+ "d3-scale": "^3.2.3",
+ "d3-selection": "^2.0.0",
+ "d3-shape": "^2.0.0",
+ "d3-time-format": "^3.0.0",
+ "d3-transition": "^2.0.0",
+ "tslib": "^2.0.0"
+ },
+ "dependencies": {
+ "d3-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/d3-color/download/d3-color-2.0.0.tgz?cache=0&sync_timestamp=1622917832534&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fd3-color%2Fdownload%2Fd3-color-2.0.0.tgz",
+ "integrity": "sha1-jWJcq0Ltm49gGhdgo4n36pGJ1i4="
+ },
+ "d3-hierarchy": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/d3-hierarchy/download/d3-hierarchy-2.0.0.tgz",
+ "integrity": "sha1-2riKWMo+ehvGyrOQ6JZn/MbSAhg="
+ },
+ "d3-interpolate": {
+ "version": "2.0.1",
+ "resolved": "https://registry.nlark.com/d3-interpolate/download/d3-interpolate-2.0.1.tgz",
+ "integrity": "sha1-mL5JnPuKO5TU/2FpAFAaZKvJEWM=",
+ "requires": {
+ "d3-color": "1 - 2"
+ }
+ },
+ "d3-shape": {
+ "version": "2.1.0",
+ "resolved": "https://registry.nlark.com/d3-shape/download/d3-shape-2.1.0.tgz?cache=0&sync_timestamp=1622917833478&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fd3-shape%2Fdownload%2Fd3-shape-2.1.0.tgz",
+ "integrity": "sha1-O2qCzK+8Rd5VtX/PlWxYTe07Zm8=",
+ "requires": {
+ "d3-path": "1 - 2"
+ }
+ }
+ }
+ },
+ "@tootallnate/once": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/@tootallnate/once/download/@tootallnate/once-1.1.2.tgz",
+ "integrity": "sha1-zLkURTYBeaBOf+av94wA/8Hur4I=",
+ "dev": true
+ },
+ "@trysound/sax": {
+ "version": "0.2.0",
+ "resolved": "https://registry.nlark.com/@trysound/sax/download/@trysound/sax-0.2.0.tgz",
+ "integrity": "sha1-zMqrdYr1Z2Hre/N69vA/Mm3XmK0=",
+ "dev": true
+ },
+ "@types/component-emitter": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmmirror.com/@types/component-emitter/download/@types/component-emitter-1.2.11.tgz",
+ "integrity": "sha1-UNR9QrNHJTgXo5cJ/vA85moQhQY=",
+ "dev": true
+ },
+ "@types/cookie": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmmirror.com/@types/cookie/download/@types/cookie-0.4.1.tgz",
+ "integrity": "sha1-v9AsHyIkVnZ2wVRRmfh8OoYdh40=",
+ "dev": true
+ },
+ "@types/cors": {
+ "version": "2.8.12",
+ "resolved": "https://registry.npmmirror.com/@types/cors/download/@types/cors-2.8.12.tgz",
+ "integrity": "sha1-ayxRCnrXA56Y57jT1lmPQ1nlwIA=",
+ "dev": true
+ },
+ "@types/d3-path": {
+ "version": "2.0.1",
+ "resolved": "https://registry.nlark.com/@types/d3-path/download/@types/d3-path-2.0.1.tgz",
+ "integrity": "sha1-ygPfqLlNit2XrQzZfpbiAGtHY8s="
+ },
+ "@types/d3-shape": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmmirror.com/@types/d3-shape/download/@types/d3-shape-2.1.3.tgz",
+ "integrity": "sha1-NdOXueaHq6oN6CNDslC5iXuMrPM=",
+ "requires": {
+ "@types/d3-path": "^2"
+ }
+ },
+ "@types/d3-timer": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/@types/d3-timer/download/@types/d3-timer-2.0.1.tgz",
+ "integrity": "sha1-/7ZiDSkGJPNyaqNiwMiktEyNcgA="
+ },
+ "@types/eslint": {
+ "version": "8.2.0",
+ "resolved": "https://registry.npmmirror.com/@types/eslint/download/@types/eslint-8.2.0.tgz",
+ "integrity": "sha512-74hbvsnc+7TEDa1z5YLSe4/q8hGYB3USNvCuzHUJrjPV6hXaq8IXcngCrHkuvFt0+8rFz7xYXrHgNayIX0UZvQ==",
+ "dev": true,
+ "requires": {
+ "@types/estree": "*",
+ "@types/json-schema": "*"
+ }
+ },
+ "@types/eslint-scope": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmmirror.com/@types/eslint-scope/download/@types/eslint-scope-3.7.1.tgz",
+ "integrity": "sha1-jcOQp7T53Z8ShGKe/OmC5BYSEW4=",
+ "dev": true,
+ "requires": {
+ "@types/eslint": "*",
+ "@types/estree": "*"
+ }
+ },
+ "@types/estree": {
+ "version": "0.0.50",
+ "resolved": "https://registry.npmmirror.com/@types/estree/download/@types/estree-0.0.50.tgz",
+ "integrity": "sha1-Hgyqk2TT/M0pMcPtlv2+ql1MyoM=",
+ "dev": true
+ },
+ "@types/file-saver": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmmirror.com/@types/file-saver/download/@types/file-saver-2.0.4.tgz",
+ "integrity": "sha512-sPZYQEIF/SOnLAvaz9lTuydniP+afBMtElRTdYkeV1QtEgvtJ7qolCPjly6O32QI8CbEmP5O/fztMXEDWfEcrg==",
+ "dev": true
+ },
+ "@types/glob": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmmirror.com/@types/glob/download/@types/glob-7.2.0.tgz?cache=0&sync_timestamp=1637267477186&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40types%2Fglob%2Fdownload%2F%40types%2Fglob-7.2.0.tgz",
+ "integrity": "sha1-vBtb86qS8lvV3TnzXFc2G9zlsus=",
+ "dev": true,
+ "requires": {
+ "@types/minimatch": "*",
+ "@types/node": "*"
+ }
+ },
+ "@types/jasmine": {
+ "version": "3.8.2",
+ "resolved": "https://registry.npmmirror.com/@types/jasmine/download/@types/jasmine-3.8.2.tgz",
+ "integrity": "sha1-J6sKqsKVgby95XdOGEP5Dfl3B44=",
+ "dev": true
+ },
+ "@types/jasminewd2": {
+ "version": "2.0.10",
+ "resolved": "https://registry.npmmirror.com/@types/jasminewd2/download/@types/jasminewd2-2.0.10.tgz",
+ "integrity": "sha1-rjHCN6pkIb3jDxBYsdIPRXflREM=",
+ "dev": true,
+ "requires": {
+ "@types/jasmine": "*"
+ }
+ },
+ "@types/js-base64": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmmirror.com/@types/js-base64/download/@types/js-base64-3.3.1.tgz",
+ "integrity": "sha1-NsLW3BJid+oopNBZnQyvv1R7UeY=",
+ "dev": true,
+ "requires": {
+ "js-base64": "*"
+ }
+ },
+ "@types/json-schema": {
+ "version": "7.0.9",
+ "resolved": "https://registry.npmmirror.com/@types/json-schema/download/@types/json-schema-7.0.9.tgz",
+ "integrity": "sha1-l+3JA36gw4WFMgsolk3eOznkZg0=",
+ "dev": true
+ },
+ "@types/json5": {
+ "version": "0.0.29",
+ "resolved": "https://registry.npm.taobao.org/@types/json5/download/@types/json5-0.0.29.tgz",
+ "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=",
+ "dev": true
+ },
+ "@types/mdast": {
+ "version": "3.0.10",
+ "resolved": "https://registry.npmmirror.com/@types/mdast/download/@types/mdast-3.0.10.tgz",
+ "integrity": "sha1-RyQkSoKkWYiEy76bz9c9/5J+6K8=",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/minimatch": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmmirror.com/@types/minimatch/download/@types/minimatch-3.0.5.tgz",
+ "integrity": "sha1-EAHMXmo3BLg8I2An538vWOoBD0A=",
+ "dev": true
+ },
+ "@types/minimist": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmmirror.com/@types/minimist/download/@types/minimist-1.2.2.tgz",
+ "integrity": "sha1-7nceK6Sz3Fs3KTXVSf2WF780W4w=",
+ "dev": true
+ },
+ "@types/mockjs": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmmirror.com/@types/mockjs/download/@types/mockjs-1.0.4.tgz",
+ "integrity": "sha1-5waVHV4ztPCku3Ox+LEk4m8IHeA="
+ },
+ "@types/node": {
+ "version": "12.20.37",
+ "resolved": "https://registry.npmmirror.com/@types/node/download/@types/node-12.20.37.tgz",
+ "integrity": "sha512-i1KGxqcvJaLQali+WuypQnXwcplhtNtjs66eNsZpp2P2FL/trJJxx/VWsM0YCL2iMoIJrbXje48lvIQAQ4p2ZA==",
+ "dev": true
+ },
+ "@types/normalize-package-data": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmmirror.com/@types/normalize-package-data/download/@types/normalize-package-data-2.4.1.tgz",
+ "integrity": "sha1-0zV0eaD9/dWQf+Z+F+CoXJBuEwE=",
+ "dev": true
+ },
+ "@types/parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/@types/parse-json/download/@types/parse-json-4.0.0.tgz?cache=0&sync_timestamp=1637284065529&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40types%2Fparse-json%2Fdownload%2F%40types%2Fparse-json-4.0.0.tgz",
+ "integrity": "sha1-L4u0QUNNFjs1+4/9zNcTiSf/uMA=",
+ "dev": true
+ },
+ "@types/q": {
+ "version": "0.0.32",
+ "resolved": "https://registry.npmmirror.com/@types/q/download/@types/q-0.0.32.tgz",
+ "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=",
+ "dev": true
+ },
+ "@types/selenium-webdriver": {
+ "version": "3.0.19",
+ "resolved": "https://registry.npmmirror.com/@types/selenium-webdriver/download/@types/selenium-webdriver-3.0.19.tgz",
+ "integrity": "sha1-KOzt528VsTVTtOhgdNTPmgu+ScQ=",
+ "dev": true
+ },
+ "@types/source-list-map": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmmirror.com/@types/source-list-map/download/@types/source-list-map-0.1.2.tgz?cache=0&sync_timestamp=1637284095686&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40types%2Fsource-list-map%2Fdownload%2F%40types%2Fsource-list-map-0.1.2.tgz",
+ "integrity": "sha1-AHiDYGP/rxdBI0m7o2QIfgrALsk=",
+ "dev": true
+ },
+ "@types/swagger-schema-official": {
+ "version": "2.0.21",
+ "resolved": "https://registry.nlark.com/@types/swagger-schema-official/download/@types/swagger-schema-official-2.0.21.tgz",
+ "integrity": "sha1-VoEqhtzVe6YOXFFwXulqKy3Js3Q=",
+ "dev": true
+ },
+ "@types/unist": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmmirror.com/@types/unist/download/@types/unist-2.0.6.tgz?cache=0&sync_timestamp=1637284126736&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40types%2Funist%2Fdownload%2F%40types%2Funist-2.0.6.tgz",
+ "integrity": "sha1-JQp7FsO5H2cqJFUuxkZ47rHToI0=",
+ "dev": true
+ },
+ "@types/vfile": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npm.taobao.org/@types/vfile/download/@types/vfile-3.0.2.tgz",
+ "integrity": "sha1-GcGM0jLfEc5vpq2AJZvIbDZrCbk=",
+ "dev": true,
+ "requires": {
+ "@types/node": "*",
+ "@types/unist": "*",
+ "@types/vfile-message": "*"
+ }
+ },
+ "@types/vfile-message": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/@types/vfile-message/download/@types/vfile-message-2.0.0.tgz",
+ "integrity": "sha1-aQ5Grw/fwfn6rgDNBJzIiJV5J9U=",
+ "dev": true,
+ "requires": {
+ "vfile-message": "*"
+ }
+ },
+ "@types/webpack-sources": {
+ "version": "0.1.9",
+ "resolved": "https://registry.nlark.com/@types/webpack-sources/download/@types/webpack-sources-0.1.9.tgz",
+ "integrity": "sha1-2mmwbrNPZDLmZYrLWmiTxV2YOSA=",
+ "dev": true,
+ "requires": {
+ "@types/node": "*",
+ "@types/source-list-map": "*",
+ "source-map": "^0.6.1"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "@typescript-eslint/eslint-plugin": {
+ "version": "4.29.3",
+ "resolved": "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/download/@typescript-eslint/eslint-plugin-4.29.3.tgz",
+ "integrity": "sha1-lcuAKai9i9nH9KuVB0p8shFa3vo=",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/experimental-utils": "4.29.3",
+ "@typescript-eslint/scope-manager": "4.29.3",
+ "debug": "^4.3.1",
+ "functional-red-black-tree": "^1.0.1",
+ "regexpp": "^3.1.0",
+ "semver": "^7.3.5",
+ "tsutils": "^3.21.0"
+ },
+ "dependencies": {
+ "@typescript-eslint/experimental-utils": {
+ "version": "4.29.3",
+ "resolved": "https://registry.npmmirror.com/@typescript-eslint/experimental-utils/download/@typescript-eslint/experimental-utils-4.29.3.tgz",
+ "integrity": "sha1-UuQ3ponM3vc+g8UQazQkCnBvFeE=",
+ "dev": true,
+ "requires": {
+ "@types/json-schema": "^7.0.7",
+ "@typescript-eslint/scope-manager": "4.29.3",
+ "@typescript-eslint/types": "4.29.3",
+ "@typescript-eslint/typescript-estree": "4.29.3",
+ "eslint-scope": "^5.1.1",
+ "eslint-utils": "^3.0.0"
+ }
+ },
+ "@typescript-eslint/scope-manager": {
+ "version": "4.29.3",
+ "resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/download/@typescript-eslint/scope-manager-4.29.3.tgz",
+ "integrity": "sha1-SX3sZvOiLkWfbjBs8UAh5A7Ibhk=",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "4.29.3",
+ "@typescript-eslint/visitor-keys": "4.29.3"
+ }
+ },
+ "@typescript-eslint/types": {
+ "version": "4.29.3",
+ "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/download/@typescript-eslint/types-4.29.3.tgz",
+ "integrity": "sha1-15gMSa72Q9CviVTJ8U9la3/RYBc=",
+ "dev": true
+ },
+ "@typescript-eslint/typescript-estree": {
+ "version": "4.29.3",
+ "resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/download/@typescript-eslint/typescript-estree-4.29.3.tgz",
+ "integrity": "sha1-G6+tYQAVxN7TXIWnC2Ii+q1Zi0A=",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "4.29.3",
+ "@typescript-eslint/visitor-keys": "4.29.3",
+ "debug": "^4.3.1",
+ "globby": "^11.0.3",
+ "is-glob": "^4.0.1",
+ "semver": "^7.3.5",
+ "tsutils": "^3.21.0"
+ }
+ },
+ "@typescript-eslint/visitor-keys": {
+ "version": "4.29.3",
+ "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/download/@typescript-eslint/visitor-keys-4.29.3.tgz",
+ "integrity": "sha1-xpF2CgC9hr+DINKpCpPYbTIvGr8=",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "4.29.3",
+ "eslint-visitor-keys": "^2.0.0"
+ }
+ }
+ }
+ },
+ "@typescript-eslint/experimental-utils": {
+ "version": "4.28.2",
+ "resolved": "https://registry.npmmirror.com/@typescript-eslint/experimental-utils/download/@typescript-eslint/experimental-utils-4.28.2.tgz",
+ "integrity": "sha1-Tr3sBqEIiOkybh1R2BrVKjYb0LA=",
+ "dev": true,
+ "requires": {
+ "@types/json-schema": "^7.0.7",
+ "@typescript-eslint/scope-manager": "4.28.2",
+ "@typescript-eslint/types": "4.28.2",
+ "@typescript-eslint/typescript-estree": "4.28.2",
+ "eslint-scope": "^5.1.1",
+ "eslint-utils": "^3.0.0"
+ }
+ },
+ "@typescript-eslint/parser": {
+ "version": "4.29.3",
+ "resolved": "https://registry.npmmirror.com/@typescript-eslint/parser/download/@typescript-eslint/parser-4.29.3.tgz",
+ "integrity": "sha1-KsJVNfNMDpj1DA5rKMZ5wjV9RfI=",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/scope-manager": "4.29.3",
+ "@typescript-eslint/types": "4.29.3",
+ "@typescript-eslint/typescript-estree": "4.29.3",
+ "debug": "^4.3.1"
+ },
+ "dependencies": {
+ "@typescript-eslint/scope-manager": {
+ "version": "4.29.3",
+ "resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/download/@typescript-eslint/scope-manager-4.29.3.tgz",
+ "integrity": "sha1-SX3sZvOiLkWfbjBs8UAh5A7Ibhk=",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "4.29.3",
+ "@typescript-eslint/visitor-keys": "4.29.3"
+ }
+ },
+ "@typescript-eslint/types": {
+ "version": "4.29.3",
+ "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/download/@typescript-eslint/types-4.29.3.tgz",
+ "integrity": "sha1-15gMSa72Q9CviVTJ8U9la3/RYBc=",
+ "dev": true
+ },
+ "@typescript-eslint/typescript-estree": {
+ "version": "4.29.3",
+ "resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/download/@typescript-eslint/typescript-estree-4.29.3.tgz",
+ "integrity": "sha1-G6+tYQAVxN7TXIWnC2Ii+q1Zi0A=",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "4.29.3",
+ "@typescript-eslint/visitor-keys": "4.29.3",
+ "debug": "^4.3.1",
+ "globby": "^11.0.3",
+ "is-glob": "^4.0.1",
+ "semver": "^7.3.5",
+ "tsutils": "^3.21.0"
+ }
+ },
+ "@typescript-eslint/visitor-keys": {
+ "version": "4.29.3",
+ "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/download/@typescript-eslint/visitor-keys-4.29.3.tgz",
+ "integrity": "sha1-xpF2CgC9hr+DINKpCpPYbTIvGr8=",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "4.29.3",
+ "eslint-visitor-keys": "^2.0.0"
+ }
+ }
+ }
+ },
+ "@typescript-eslint/scope-manager": {
+ "version": "4.28.2",
+ "resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/download/@typescript-eslint/scope-manager-4.28.2.tgz",
+ "integrity": "sha1-RR3OkDA6POKDdQERSV00ycIE5RA=",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "4.28.2",
+ "@typescript-eslint/visitor-keys": "4.28.2"
+ }
+ },
+ "@typescript-eslint/types": {
+ "version": "4.28.2",
+ "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/download/@typescript-eslint/types-4.28.2.tgz",
+ "integrity": "sha1-5rniNODppmxNJbq4gWYekUeCI7U=",
+ "dev": true
+ },
+ "@typescript-eslint/typescript-estree": {
+ "version": "4.28.2",
+ "resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/download/@typescript-eslint/typescript-estree-4.28.2.tgz",
+ "integrity": "sha1-aAEpsqKFKJoV58YQjIRzmt86eYw=",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "4.28.2",
+ "@typescript-eslint/visitor-keys": "4.28.2",
+ "debug": "^4.3.1",
+ "globby": "^11.0.3",
+ "is-glob": "^4.0.1",
+ "semver": "^7.3.5",
+ "tsutils": "^3.21.0"
+ }
+ },
+ "@typescript-eslint/visitor-keys": {
+ "version": "4.28.2",
+ "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/download/@typescript-eslint/visitor-keys-4.28.2.tgz",
+ "integrity": "sha1-v1akAIV7totZsxHm0KX771w7UTA=",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "4.28.2",
+ "eslint-visitor-keys": "^2.0.0"
+ }
+ },
+ "@webassemblyjs/ast": {
+ "version": "1.11.1",
+ "resolved": "https://registry.nlark.com/@webassemblyjs/ast/download/@webassemblyjs/ast-1.11.1.tgz",
+ "integrity": "sha1-K/12fq4aaZb0Mv9+jX/HVnnAtqc=",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/helper-numbers": "1.11.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.1"
+ }
+ },
+ "@webassemblyjs/floating-point-hex-parser": {
+ "version": "1.11.1",
+ "resolved": "https://registry.nlark.com/@webassemblyjs/floating-point-hex-parser/download/@webassemblyjs/floating-point-hex-parser-1.11.1.tgz?cache=0&sync_timestamp=1625473945010&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Ffloating-point-hex-parser%2Fdownload%2F%40webassemblyjs%2Ffloating-point-hex-parser-1.11.1.tgz",
+ "integrity": "sha1-9sYacF8P16auyqToGY8j2dwXnk8=",
+ "dev": true
+ },
+ "@webassemblyjs/helper-api-error": {
+ "version": "1.11.1",
+ "resolved": "https://registry.nlark.com/@webassemblyjs/helper-api-error/download/@webassemblyjs/helper-api-error-1.11.1.tgz?cache=0&sync_timestamp=1625473943740&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Fhelper-api-error%2Fdownload%2F%40webassemblyjs%2Fhelper-api-error-1.11.1.tgz",
+ "integrity": "sha1-GmMZLYeI5cASgAump6RscFKI/RY=",
+ "dev": true
+ },
+ "@webassemblyjs/helper-buffer": {
+ "version": "1.11.1",
+ "resolved": "https://registry.nlark.com/@webassemblyjs/helper-buffer/download/@webassemblyjs/helper-buffer-1.11.1.tgz",
+ "integrity": "sha1-gyqQDrREiEzemnytRn+BUA9eWrU=",
+ "dev": true
+ },
+ "@webassemblyjs/helper-numbers": {
+ "version": "1.11.1",
+ "resolved": "https://registry.nlark.com/@webassemblyjs/helper-numbers/download/@webassemblyjs/helper-numbers-1.11.1.tgz",
+ "integrity": "sha1-ZNgdohn7u6HjvRv8dPboxOEKYq4=",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/floating-point-hex-parser": "1.11.1",
+ "@webassemblyjs/helper-api-error": "1.11.1",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "@webassemblyjs/helper-wasm-bytecode": {
+ "version": "1.11.1",
+ "resolved": "https://registry.nlark.com/@webassemblyjs/helper-wasm-bytecode/download/@webassemblyjs/helper-wasm-bytecode-1.11.1.tgz",
+ "integrity": "sha1-8ygkHkHnsZnQsgwY6IQpxEMyleE=",
+ "dev": true
+ },
+ "@webassemblyjs/helper-wasm-section": {
+ "version": "1.11.1",
+ "resolved": "https://registry.nlark.com/@webassemblyjs/helper-wasm-section/download/@webassemblyjs/helper-wasm-section-1.11.1.tgz?cache=0&sync_timestamp=1625473968654&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Fhelper-wasm-section%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-section-1.11.1.tgz",
+ "integrity": "sha1-Ie4GWntjXzGec48N1zv72igcCXo=",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/helper-buffer": "1.11.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
+ "@webassemblyjs/wasm-gen": "1.11.1"
+ }
+ },
+ "@webassemblyjs/ieee754": {
+ "version": "1.11.1",
+ "resolved": "https://registry.nlark.com/@webassemblyjs/ieee754/download/@webassemblyjs/ieee754-1.11.1.tgz?cache=0&sync_timestamp=1625473943048&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Fieee754%2Fdownload%2F%40webassemblyjs%2Fieee754-1.11.1.tgz",
+ "integrity": "sha1-ljkp6bvQVwnn4SJDoJkYCBKZJhQ=",
+ "dev": true,
+ "requires": {
+ "@xtuc/ieee754": "^1.2.0"
+ }
+ },
+ "@webassemblyjs/leb128": {
+ "version": "1.11.1",
+ "resolved": "https://registry.nlark.com/@webassemblyjs/leb128/download/@webassemblyjs/leb128-1.11.1.tgz?cache=0&sync_timestamp=1625473945849&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Fleb128%2Fdownload%2F%40webassemblyjs%2Fleb128-1.11.1.tgz",
+ "integrity": "sha1-zoFLRVdOk9drrh+yZEq5zdlSeqU=",
+ "dev": true,
+ "requires": {
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "@webassemblyjs/utf8": {
+ "version": "1.11.1",
+ "resolved": "https://registry.nlark.com/@webassemblyjs/utf8/download/@webassemblyjs/utf8-1.11.1.tgz?cache=0&sync_timestamp=1625473943764&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Futf8%2Fdownload%2F%40webassemblyjs%2Futf8-1.11.1.tgz",
+ "integrity": "sha1-0fi3ZDaefG5rrjUOhU3smlnwo/8=",
+ "dev": true
+ },
+ "@webassemblyjs/wasm-edit": {
+ "version": "1.11.1",
+ "resolved": "https://registry.nlark.com/@webassemblyjs/wasm-edit/download/@webassemblyjs/wasm-edit-1.11.1.tgz",
+ "integrity": "sha1-rSBuv0v5WgWM6YgKjAksXeyBk9Y=",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/helper-buffer": "1.11.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
+ "@webassemblyjs/helper-wasm-section": "1.11.1",
+ "@webassemblyjs/wasm-gen": "1.11.1",
+ "@webassemblyjs/wasm-opt": "1.11.1",
+ "@webassemblyjs/wasm-parser": "1.11.1",
+ "@webassemblyjs/wast-printer": "1.11.1"
+ }
+ },
+ "@webassemblyjs/wasm-gen": {
+ "version": "1.11.1",
+ "resolved": "https://registry.nlark.com/@webassemblyjs/wasm-gen/download/@webassemblyjs/wasm-gen-1.11.1.tgz",
+ "integrity": "sha1-hsXqMEhJdZt9iMR6MvTwOa48j3Y=",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
+ "@webassemblyjs/ieee754": "1.11.1",
+ "@webassemblyjs/leb128": "1.11.1",
+ "@webassemblyjs/utf8": "1.11.1"
+ }
+ },
+ "@webassemblyjs/wasm-opt": {
+ "version": "1.11.1",
+ "resolved": "https://registry.nlark.com/@webassemblyjs/wasm-opt/download/@webassemblyjs/wasm-opt-1.11.1.tgz",
+ "integrity": "sha1-ZXtMIgL0zzs0X4pMZGHIwkGJhfI=",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/helper-buffer": "1.11.1",
+ "@webassemblyjs/wasm-gen": "1.11.1",
+ "@webassemblyjs/wasm-parser": "1.11.1"
+ }
+ },
+ "@webassemblyjs/wasm-parser": {
+ "version": "1.11.1",
+ "resolved": "https://registry.nlark.com/@webassemblyjs/wasm-parser/download/@webassemblyjs/wasm-parser-1.11.1.tgz",
+ "integrity": "sha1-hspzRTT0F+m9PGfHocddi+QfsZk=",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/helper-api-error": "1.11.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
+ "@webassemblyjs/ieee754": "1.11.1",
+ "@webassemblyjs/leb128": "1.11.1",
+ "@webassemblyjs/utf8": "1.11.1"
+ }
+ },
+ "@webassemblyjs/wast-printer": {
+ "version": "1.11.1",
+ "resolved": "https://registry.nlark.com/@webassemblyjs/wast-printer/download/@webassemblyjs/wast-printer-1.11.1.tgz",
+ "integrity": "sha1-0Mc77ajuxUJvEK6O9VzuXnCEwvA=",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "@xtuc/ieee754": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npm.taobao.org/@xtuc/ieee754/download/@xtuc/ieee754-1.2.0.tgz",
+ "integrity": "sha1-7vAUoxRa5Hehy8AM0eVSM23Ot5A=",
+ "dev": true
+ },
+ "@xtuc/long": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npm.taobao.org/@xtuc/long/download/@xtuc/long-4.2.2.tgz",
+ "integrity": "sha1-0pHGpOl5ibXGHZrPOWrk/hM6cY0=",
+ "dev": true
+ },
+ "@yarnpkg/lockfile": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npm.taobao.org/@yarnpkg/lockfile/download/@yarnpkg/lockfile-1.1.0.tgz",
+ "integrity": "sha1-53qX+9NFt22DJF7c0X05OxtB+zE=",
+ "dev": true
+ },
+ "abab": {
+ "version": "2.0.5",
+ "resolved": "https://registry.nlark.com/abab/download/abab-2.0.5.tgz",
+ "integrity": "sha1-wLZ4+zLWD8EhnHhNaoJv44Wut5o=",
+ "dev": true
+ },
+ "abbrev": {
+ "version": "1.1.1",
+ "resolved": "https://registry.nlark.com/abbrev/download/abbrev-1.1.1.tgz",
+ "integrity": "sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg=",
+ "dev": true
+ },
+ "abs-svg-path": {
+ "version": "0.1.1",
+ "resolved": "https://registry.nlark.com/abs-svg-path/download/abs-svg-path-0.1.1.tgz",
+ "integrity": "sha1-32Acjo0roQ1KdtYl4japo5wnI78="
+ },
+ "accepts": {
+ "version": "1.3.7",
+ "resolved": "https://registry.nlark.com/accepts/download/accepts-1.3.7.tgz",
+ "integrity": "sha1-UxvHJlF6OytB+FACHGzBXqq1B80=",
+ "dev": true,
+ "requires": {
+ "mime-types": "~2.1.24",
+ "negotiator": "0.6.2"
+ }
+ },
+ "acorn": {
+ "version": "8.6.0",
+ "resolved": "https://registry.npmmirror.com/acorn/download/acorn-8.6.0.tgz?cache=0&sync_timestamp=1637225522161&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Facorn%2Fdownload%2Facorn-8.6.0.tgz",
+ "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==",
+ "dev": true
+ },
+ "acorn-import-assertions": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmmirror.com/acorn-import-assertions/download/acorn-import-assertions-1.8.0.tgz?cache=0&sync_timestamp=1633349660084&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Facorn-import-assertions%2Fdownload%2Facorn-import-assertions-1.8.0.tgz",
+ "integrity": "sha1-uitZOc5iwjjbbZPYHJsRGym4Vek=",
+ "dev": true
+ },
+ "acorn-jsx": {
+ "version": "5.3.2",
+ "resolved": "https://registry.nlark.com/acorn-jsx/download/acorn-jsx-5.3.2.tgz?cache=0&sync_timestamp=1625793240297&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn-jsx%2Fdownload%2Facorn-jsx-5.3.2.tgz",
+ "integrity": "sha1-ftW7VZCLOy8bxVxq8WU7rafweTc=",
+ "dev": true
+ },
+ "adjust-sourcemap-loader": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/adjust-sourcemap-loader/download/adjust-sourcemap-loader-4.0.0.tgz?cache=0&sync_timestamp=1603701108010&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fadjust-sourcemap-loader%2Fdownload%2Fadjust-sourcemap-loader-4.0.0.tgz",
+ "integrity": "sha1-/EoP0ID30QRx8wpzIPJVYK3ijJk=",
+ "dev": true,
+ "requires": {
+ "loader-utils": "^2.0.0",
+ "regex-parser": "^2.2.11"
+ }
+ },
+ "adler-32": {
+ "version": "1.2.0",
+ "resolved": "https://registry.nlark.com/adler-32/download/adler-32-1.2.0.tgz",
+ "integrity": "sha1-aj5r8KY5ALoVZSgIyxXGgT0aXyU=",
+ "requires": {
+ "exit-on-epipe": "~1.0.1",
+ "printj": "~1.1.0"
+ }
+ },
+ "adm-zip": {
+ "version": "0.4.16",
+ "resolved": "https://registry.npmmirror.com/adm-zip/download/adm-zip-0.4.16.tgz",
+ "integrity": "sha1-z0xQj9/6sCwmnLx/RxqHXwVXA2U=",
+ "dev": true
+ },
+ "agent-base": {
+ "version": "6.0.2",
+ "resolved": "https://registry.nlark.com/agent-base/download/agent-base-6.0.2.tgz",
+ "integrity": "sha1-Sf/1hXfP7j83F2/qtMIuAPhtf3c=",
+ "dev": true,
+ "requires": {
+ "debug": "4"
+ }
+ },
+ "agentkeepalive": {
+ "version": "4.1.4",
+ "resolved": "https://registry.npm.taobao.org/agentkeepalive/download/agentkeepalive-4.1.4.tgz?cache=0&sync_timestamp=1612490497760&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fagentkeepalive%2Fdownload%2Fagentkeepalive-4.1.4.tgz",
+ "integrity": "sha1-2SgCikhiyxFxjlUieHLoQqRMlFs=",
+ "dev": true,
+ "requires": {
+ "debug": "^4.1.0",
+ "depd": "^1.1.2",
+ "humanize-ms": "^1.2.1"
+ }
+ },
+ "aggregate-error": {
+ "version": "3.1.0",
+ "resolved": "https://registry.nlark.com/aggregate-error/download/aggregate-error-3.1.0.tgz?cache=0&sync_timestamp=1622604530325&other_urls=https%3A%2F%2Fregistry.nlark.com%2Faggregate-error%2Fdownload%2Faggregate-error-3.1.0.tgz",
+ "integrity": "sha1-kmcP9Q9TWb23o+DUDQ7DDFc3aHo=",
+ "dev": true,
+ "requires": {
+ "clean-stack": "^2.0.0",
+ "indent-string": "^4.0.0"
+ }
+ },
+ "ajv": {
+ "version": "8.8.2",
+ "resolved": "https://registry.npmmirror.com/ajv/download/ajv-8.8.2.tgz?cache=0&sync_timestamp=1637522259668&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fajv%2Fdownload%2Fajv-8.8.2.tgz",
+ "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==",
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ajv-errors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.nlark.com/ajv-errors/download/ajv-errors-1.0.1.tgz",
+ "integrity": "sha1-81mGrOuRr63sQQL72FAUlQzvpk0=",
+ "dev": true
+ },
+ "ajv-formats": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/ajv-formats/download/ajv-formats-2.1.1.tgz",
+ "integrity": "sha1-bmaUAGWet0lzu/LjMycYCgmWtSA=",
+ "requires": {
+ "ajv": "^8.0.0"
+ }
+ },
+ "ajv-keywords": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmmirror.com/ajv-keywords/download/ajv-keywords-3.5.2.tgz",
+ "integrity": "sha1-MfKdpatuANHC0yms97WSlhTVAU0=",
+ "dev": true
+ },
+ "alphanum-sort": {
+ "version": "1.0.2",
+ "resolved": "https://registry.nlark.com/alphanum-sort/download/alphanum-sort-1.0.2.tgz",
+ "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=",
+ "dev": true
+ },
+ "amdefine": {
+ "version": "1.0.1",
+ "resolved": "https://registry.nlark.com/amdefine/download/amdefine-1.0.1.tgz",
+ "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
+ "dev": true
+ },
+ "angular-baidu-maps": {
+ "version": "12.0.0",
+ "resolved": "https://registry.nlark.com/angular-baidu-maps/download/angular-baidu-maps-12.0.0.tgz",
+ "integrity": "sha1-I/Sn52ggJcLJRnGdIR6eNmt6sXQ=",
+ "requires": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "ansi-colors": {
+ "version": "4.1.1",
+ "resolved": "https://registry.nlark.com/ansi-colors/download/ansi-colors-4.1.1.tgz",
+ "integrity": "sha1-y7muJWv3UK8eqzRPIpqif+lLo0g=",
+ "dev": true
+ },
+ "ansi-escapes": {
+ "version": "4.3.2",
+ "resolved": "https://registry.nlark.com/ansi-escapes/download/ansi-escapes-4.3.2.tgz?cache=0&sync_timestamp=1618847144938&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-escapes%2Fdownload%2Fansi-escapes-4.3.2.tgz",
+ "integrity": "sha1-ayKR0dt9mLZSHV8e+kLQ86n+tl4=",
+ "dev": true,
+ "requires": {
+ "type-fest": "^0.21.3"
+ }
+ },
+ "ansi-html": {
+ "version": "0.0.7",
+ "resolved": "https://registry.nlark.com/ansi-html/download/ansi-html-0.0.7.tgz",
+ "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=",
+ "dev": true
+ },
+ "ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-5.0.1.tgz?cache=0&sync_timestamp=1631634988487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-regex%2Fdownload%2Fansi-regex-5.0.1.tgz",
+ "integrity": "sha1-CCyyyJyf6GWaMRpTvWpNxTAdswQ=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz",
+ "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "anymatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-3.1.2.tgz?cache=0&sync_timestamp=1617747502795&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fanymatch%2Fdownload%2Fanymatch-3.1.2.tgz",
+ "integrity": "sha1-wFV8CWrzLxBhmPT04qODU343hxY=",
+ "dev": true,
+ "requires": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ }
+ },
+ "aproba": {
+ "version": "1.2.0",
+ "resolved": "https://registry.nlark.com/aproba/download/aproba-1.2.0.tgz",
+ "integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=",
+ "dev": true
+ },
+ "are-we-there-yet": {
+ "version": "1.1.7",
+ "resolved": "https://registry.nlark.com/are-we-there-yet/download/are-we-there-yet-1.1.7.tgz",
+ "integrity": "sha1-sVR0qTKtq0/4pQ2a36fk6SbyEUY=",
+ "dev": true,
+ "requires": {
+ "delegates": "^1.0.0",
+ "readable-stream": "^2.0.6"
+ }
+ },
+ "arg": {
+ "version": "4.1.3",
+ "resolved": "https://registry.nlark.com/arg/download/arg-4.1.3.tgz?cache=0&sync_timestamp=1629166537485&other_urls=https%3A%2F%2Fregistry.nlark.com%2Farg%2Fdownload%2Farg-4.1.3.tgz",
+ "integrity": "sha1-Jp/HrVuOQstjyJbVZmAXJhwUQIk=",
+ "dev": true
+ },
+ "argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.nlark.com/argparse/download/argparse-1.0.10.tgz",
+ "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "aria-query": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmmirror.com/aria-query/download/aria-query-4.2.2.tgz?cache=0&sync_timestamp=1633308188641&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Faria-query%2Fdownload%2Faria-query-4.2.2.tgz",
+ "integrity": "sha1-DSymyazrVriXfp/tau1+FbvS+Ds=",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.10.2",
+ "@babel/runtime-corejs3": "^7.10.2"
+ }
+ },
+ "arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/arr-diff/download/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
+ "dev": true
+ },
+ "arr-flatten": {
+ "version": "1.1.0",
+ "resolved": "https://registry.nlark.com/arr-flatten/download/arr-flatten-1.1.0.tgz?cache=0&sync_timestamp=1618846805394&other_urls=https%3A%2F%2Fregistry.nlark.com%2Farr-flatten%2Fdownload%2Farr-flatten-1.1.0.tgz",
+ "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=",
+ "dev": true
+ },
+ "arr-union": {
+ "version": "3.1.0",
+ "resolved": "https://registry.nlark.com/arr-union/download/arr-union-3.1.0.tgz",
+ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
+ "dev": true
+ },
+ "array-find-index": {
+ "version": "1.0.2",
+ "resolved": "https://registry.nlark.com/array-find-index/download/array-find-index-1.0.2.tgz",
+ "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
+ "dev": true
+ },
+ "array-flatten": {
+ "version": "2.1.2",
+ "resolved": "https://registry.nlark.com/array-flatten/download/array-flatten-2.1.2.tgz",
+ "integrity": "sha1-JO+AoowaiTYX4hSbDG0NeIKTsJk=",
+ "dev": true
+ },
+ "array-includes": {
+ "version": "3.1.4",
+ "resolved": "https://registry.npmmirror.com/array-includes/download/array-includes-3.1.4.tgz?cache=0&sync_timestamp=1633411556939&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Farray-includes%2Fdownload%2Farray-includes-3.1.4.tgz",
+ "integrity": "sha1-9bSTFix2DzU5Yx8AW6K7Rqy0W6k=",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.19.1",
+ "get-intrinsic": "^1.1.1",
+ "is-string": "^1.0.7"
+ }
+ },
+ "array-union": {
+ "version": "2.1.0",
+ "resolved": "https://registry.nlark.com/array-union/download/array-union-2.1.0.tgz",
+ "integrity": "sha1-t5hCCtvrHego2ErNii4j0+/oXo0=",
+ "dev": true
+ },
+ "array-uniq": {
+ "version": "1.0.3",
+ "resolved": "https://registry.nlark.com/array-uniq/download/array-uniq-1.0.3.tgz?cache=0&sync_timestamp=1622605321175&other_urls=https%3A%2F%2Fregistry.nlark.com%2Farray-uniq%2Fdownload%2Farray-uniq-1.0.3.tgz",
+ "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
+ "dev": true
+ },
+ "array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.nlark.com/array-unique/download/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
+ "dev": true
+ },
+ "array.prototype.flat": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmmirror.com/array.prototype.flat/download/array.prototype.flat-1.2.5.tgz",
+ "integrity": "sha1-B+CXXYS7x8SM0YedYJ5oJZjTPhM=",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.19.0"
+ }
+ },
+ "arrify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.nlark.com/arrify/download/arrify-1.0.1.tgz?cache=0&sync_timestamp=1619599497996&other_urls=https%3A%2F%2Fregistry.nlark.com%2Farrify%2Fdownload%2Farrify-1.0.1.tgz",
+ "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
+ "dev": true
+ },
+ "asap": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npm.taobao.org/asap/download/asap-2.0.6.tgz",
+ "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=",
+ "dev": true
+ },
+ "asn1": {
+ "version": "0.2.6",
+ "resolved": "https://registry.npmmirror.com/asn1/download/asn1-0.2.6.tgz?cache=0&sync_timestamp=1635986760581&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fasn1%2Fdownload%2Fasn1-0.2.6.tgz",
+ "integrity": "sha1-DTp7tuZOAqkMAwOzHykoaOoJoI0=",
+ "dev": true,
+ "requires": {
+ "safer-buffer": "~2.1.0"
+ }
+ },
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/assert-plus/download/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "dev": true
+ },
+ "assign-symbols": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/assign-symbols/download/assign-symbols-1.0.0.tgz",
+ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
+ "dev": true
+ },
+ "astral-regex": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/astral-regex/download/astral-regex-2.0.0.tgz",
+ "integrity": "sha1-SDFDxWeu7UeFdZwIZXhtx319LjE=",
+ "dev": true
+ },
+ "async": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmmirror.com/async/download/async-2.6.3.tgz",
+ "integrity": "sha1-1yYl4jRKNlbjo61Pp0n6gymdgv8=",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.14"
+ }
+ },
+ "async-each": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npm.taobao.org/async-each/download/async-each-1.0.3.tgz",
+ "integrity": "sha1-tyfb+H12UWAvBvTUrDh/R9kbDL8=",
+ "dev": true
+ },
+ "async-limiter": {
+ "version": "1.0.1",
+ "resolved": "https://registry.nlark.com/async-limiter/download/async-limiter-1.0.1.tgz",
+ "integrity": "sha1-3TeelPDbgxCwgpH51kwyCXZmF/0=",
+ "dev": true
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz",
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
+ "dev": true
+ },
+ "at-least-node": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/at-least-node/download/at-least-node-1.0.0.tgz",
+ "integrity": "sha1-YCzUtG6EStTv/JKoARo8RuAjjcI=",
+ "dev": true
+ },
+ "atob": {
+ "version": "2.1.2",
+ "resolved": "https://registry.nlark.com/atob/download/atob-2.1.2.tgz",
+ "integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k=",
+ "dev": true
+ },
+ "autoprefixer": {
+ "version": "9.8.8",
+ "resolved": "https://registry.npmmirror.com/autoprefixer/download/autoprefixer-9.8.8.tgz?cache=0&sync_timestamp=1635421245353&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fautoprefixer%2Fdownload%2Fautoprefixer-9.8.8.tgz",
+ "integrity": "sha1-/UvUWVOF+m8GWZ3nSaTV96R0lXo=",
+ "dev": true,
+ "requires": {
+ "browserslist": "^4.12.0",
+ "caniuse-lite": "^1.0.30001109",
+ "normalize-range": "^0.1.2",
+ "num2fraction": "^1.2.2",
+ "picocolors": "^0.2.1",
+ "postcss": "^7.0.32",
+ "postcss-value-parser": "^4.1.0"
+ },
+ "dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "aws-sign2": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.7.0.tgz",
+ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
+ "dev": true
+ },
+ "aws4": {
+ "version": "1.11.0",
+ "resolved": "https://registry.npm.taobao.org/aws4/download/aws4-1.11.0.tgz?cache=0&sync_timestamp=1604101244098&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faws4%2Fdownload%2Faws4-1.11.0.tgz",
+ "integrity": "sha1-1h9G2DslGSUOJ4Ta9bCUeai0HFk=",
+ "dev": true
+ },
+ "axios": {
+ "version": "0.21.4",
+ "resolved": "https://registry.npmmirror.com/axios/download/axios-0.21.4.tgz?cache=0&sync_timestamp=1635213960429&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Faxios%2Fdownload%2Faxios-0.21.4.tgz",
+ "integrity": "sha1-xnuQ3AVo5cHPKwuFjEO6KOLtpXU=",
+ "dev": true,
+ "requires": {
+ "follow-redirects": "^1.14.0"
+ }
+ },
+ "axobject-query": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/axobject-query/download/axobject-query-2.2.0.tgz?cache=0&sync_timestamp=1633307441530&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Faxobject-query%2Fdownload%2Faxobject-query-2.2.0.tgz",
+ "integrity": "sha1-lD1H4QwLcEqkInXiDt83ImSJib4=",
+ "dev": true
+ },
+ "babel-loader": {
+ "version": "8.2.2",
+ "resolved": "https://registry.npmmirror.com/babel-loader/download/babel-loader-8.2.2.tgz?cache=0&sync_timestamp=1634769717079&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fbabel-loader%2Fdownload%2Fbabel-loader-8.2.2.tgz",
+ "integrity": "sha1-k2POhMEMmkDmx1N0jhRBtgyKC4E=",
+ "dev": true,
+ "requires": {
+ "find-cache-dir": "^3.3.1",
+ "loader-utils": "^1.4.0",
+ "make-dir": "^3.1.0",
+ "schema-utils": "^2.6.5"
+ },
+ "dependencies": {
+ "json5": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz",
+ "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.0"
+ }
+ },
+ "loader-utils": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmmirror.com/loader-utils/download/loader-utils-1.4.0.tgz?cache=0&sync_timestamp=1636687869321&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Floader-utils%2Fdownload%2Floader-utils-1.4.0.tgz",
+ "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=",
+ "dev": true,
+ "requires": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^1.0.1"
+ }
+ }
+ }
+ },
+ "babel-plugin-dynamic-import-node": {
+ "version": "2.3.3",
+ "resolved": "https://registry.nlark.com/babel-plugin-dynamic-import-node/download/babel-plugin-dynamic-import-node-2.3.3.tgz?cache=0&sync_timestamp=1618847141951&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbabel-plugin-dynamic-import-node%2Fdownload%2Fbabel-plugin-dynamic-import-node-2.3.3.tgz",
+ "integrity": "sha1-hP2hnJduxcbe/vV/lCez3vZuF6M=",
+ "dev": true,
+ "requires": {
+ "object.assign": "^4.1.0"
+ }
+ },
+ "babel-plugin-polyfill-corejs2": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs2/download/babel-plugin-polyfill-corejs2-0.2.3.tgz?cache=0&sync_timestamp=1636799838015&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fbabel-plugin-polyfill-corejs2%2Fdownload%2Fbabel-plugin-polyfill-corejs2-0.2.3.tgz",
+ "integrity": "sha1-btjjCYGwYvj+asqIc6N+vMjMHA8=",
+ "dev": true,
+ "requires": {
+ "@babel/compat-data": "^7.13.11",
+ "@babel/helper-define-polyfill-provider": "^0.2.4",
+ "semver": "^6.1.1"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz",
+ "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=",
+ "dev": true
+ }
+ }
+ },
+ "babel-plugin-polyfill-corejs3": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs3/download/babel-plugin-polyfill-corejs3-0.2.5.tgz?cache=0&sync_timestamp=1636799836766&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fbabel-plugin-polyfill-corejs3%2Fdownload%2Fbabel-plugin-polyfill-corejs3-0.2.5.tgz",
+ "integrity": "sha1-J3mEahahZSJEriaLHpBq2hB/r5I=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-define-polyfill-provider": "^0.2.2",
+ "core-js-compat": "^3.16.2"
+ }
+ },
+ "babel-plugin-polyfill-regenerator": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-regenerator/download/babel-plugin-polyfill-regenerator-0.2.3.tgz?cache=0&sync_timestamp=1636799764770&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fbabel-plugin-polyfill-regenerator%2Fdownload%2Fbabel-plugin-polyfill-regenerator-0.2.3.tgz",
+ "integrity": "sha1-LpgI9QJ8QzbJlJkrSKQmJYDLjW0=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-define-polyfill-provider": "^0.2.4"
+ }
+ },
+ "bail": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmmirror.com/bail/download/bail-1.0.5.tgz?cache=0&sync_timestamp=1636274515578&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fbail%2Fdownload%2Fbail-1.0.5.tgz",
+ "integrity": "sha1-tvoTNASjksvB+MS/Y/WVM1Hnp3Y=",
+ "dev": true
+ },
+ "balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.2.tgz",
+ "integrity": "sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=",
+ "dev": true
+ },
+ "base": {
+ "version": "0.11.2",
+ "resolved": "https://registry.npm.taobao.org/base/download/base-0.11.2.tgz",
+ "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=",
+ "dev": true,
+ "requires": {
+ "cache-base": "^1.0.1",
+ "class-utils": "^0.3.5",
+ "component-emitter": "^1.2.1",
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.1",
+ "mixin-deep": "^1.2.0",
+ "pascalcase": "^0.1.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/define-property/download/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz",
+ "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ }
+ }
+ },
+ "base64-arraybuffer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.nlark.com/base64-arraybuffer/download/base64-arraybuffer-1.0.1.tgz?cache=0&sync_timestamp=1628588917496&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbase64-arraybuffer%2Fdownload%2Fbase64-arraybuffer-1.0.1.tgz",
+ "integrity": "sha1-h70TUlYm20qYOOAKUIwrc+/PNIw=",
+ "dev": true
+ },
+ "base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npm.taobao.org/base64-js/download/base64-js-1.5.1.tgz",
+ "integrity": "sha1-GxtEAWClv3rUC2UPCVljSBkDkwo=",
+ "dev": true
+ },
+ "base64id": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/base64id/download/base64id-2.0.0.tgz",
+ "integrity": "sha1-J3Csa8R9MSr5eov5pjQ0LgzSXLY=",
+ "dev": true
+ },
+ "batch": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/batch/download/batch-0.6.1.tgz",
+ "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=",
+ "dev": true
+ },
+ "bcrypt-pbkdf": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz",
+ "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
+ "dev": true,
+ "requires": {
+ "tweetnacl": "^0.14.3"
+ }
+ },
+ "big.js": {
+ "version": "5.2.2",
+ "resolved": "https://registry.nlark.com/big.js/download/big.js-5.2.2.tgz",
+ "integrity": "sha1-ZfCvOC9Xi83HQr2cKB6cstd2gyg=",
+ "dev": true
+ },
+ "binary-extensions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.nlark.com/binary-extensions/download/binary-extensions-2.2.0.tgz",
+ "integrity": "sha1-dfUC7q+f/eQvyYgpZFvk6na9ni0=",
+ "dev": true
+ },
+ "bl": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npm.taobao.org/bl/download/bl-4.1.0.tgz?cache=0&sync_timestamp=1617381897308&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbl%2Fdownload%2Fbl-4.1.0.tgz",
+ "integrity": "sha1-RRU1JkGCvsL7vIOmKrmM8R2fezo=",
+ "dev": true,
+ "requires": {
+ "buffer": "^5.5.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz",
+ "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "blocking-proxy": {
+ "version": "1.0.1",
+ "resolved": "https://registry.nlark.com/blocking-proxy/download/blocking-proxy-1.0.1.tgz",
+ "integrity": "sha1-gdb9H+E6TA1pV99/kbdemNrEDLI=",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.0"
+ }
+ },
+ "body-parser": {
+ "version": "1.19.0",
+ "resolved": "https://registry.nlark.com/body-parser/download/body-parser-1.19.0.tgz",
+ "integrity": "sha1-lrJwnlfJxOCab9Zqj9l5hE9p8Io=",
+ "dev": true,
+ "requires": {
+ "bytes": "3.1.0",
+ "content-type": "~1.0.4",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "http-errors": "1.7.2",
+ "iconv-lite": "0.4.24",
+ "on-finished": "~2.3.0",
+ "qs": "6.7.0",
+ "raw-body": "2.4.0",
+ "type-is": "~1.6.17"
+ },
+ "dependencies": {
+ "bytes": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/bytes/download/bytes-3.1.0.tgz?cache=0&sync_timestamp=1637015110760&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fbytes%2Fdownload%2Fbytes-3.1.0.tgz",
+ "integrity": "sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY=",
+ "dev": true
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmmirror.com/debug/download/debug-2.6.9.tgz",
+ "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "bonjour": {
+ "version": "3.5.0",
+ "resolved": "https://registry.nlark.com/bonjour/download/bonjour-3.5.0.tgz",
+ "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=",
+ "dev": true,
+ "requires": {
+ "array-flatten": "^2.1.0",
+ "deep-equal": "^1.0.1",
+ "dns-equal": "^1.0.0",
+ "dns-txt": "^2.0.2",
+ "multicast-dns": "^6.0.1",
+ "multicast-dns-service-types": "^1.1.0"
+ }
+ },
+ "boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/boolbase/download/boolbase-1.0.0.tgz",
+ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=",
+ "dev": true
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.nlark.com/brace-expansion/download/brace-expansion-1.1.11.tgz",
+ "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz",
+ "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "browserslist": {
+ "version": "4.18.1",
+ "resolved": "https://registry.npmmirror.com/browserslist/download/browserslist-4.18.1.tgz",
+ "integrity": "sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==",
+ "dev": true,
+ "requires": {
+ "caniuse-lite": "^1.0.30001280",
+ "electron-to-chromium": "^1.3.896",
+ "escalade": "^3.1.1",
+ "node-releases": "^2.0.1",
+ "picocolors": "^1.0.0"
+ }
+ },
+ "browserstack": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npm.taobao.org/browserstack/download/browserstack-1.6.1.tgz",
+ "integrity": "sha1-4FH5cz7DtQdlnzlcekdlobHjWLM=",
+ "dev": true,
+ "requires": {
+ "https-proxy-agent": "^2.2.1"
+ },
+ "dependencies": {
+ "agent-base": {
+ "version": "4.3.0",
+ "resolved": "https://registry.nlark.com/agent-base/download/agent-base-4.3.0.tgz",
+ "integrity": "sha1-gWXwHENgCbzK0LHRIvBe13Dvxu4=",
+ "dev": true,
+ "requires": {
+ "es6-promisify": "^5.0.0"
+ }
+ },
+ "debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmmirror.com/debug/download/debug-3.2.7.tgz",
+ "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "https-proxy-agent": {
+ "version": "2.2.4",
+ "resolved": "https://registry.nlark.com/https-proxy-agent/download/https-proxy-agent-2.2.4.tgz",
+ "integrity": "sha1-TuenN6vZJniik9mzShr00NCMeHs=",
+ "dev": true,
+ "requires": {
+ "agent-base": "^4.3.0",
+ "debug": "^3.1.0"
+ }
+ }
+ }
+ },
+ "btoa": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npm.taobao.org/btoa/download/btoa-1.2.1.tgz",
+ "integrity": "sha1-AamQn4ssk/a/aAuiYTHrMPf6PXM=",
+ "dev": true
+ },
+ "buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.nlark.com/buffer/download/buffer-5.7.1.tgz",
+ "integrity": "sha1-umLnwTEzBTWCGXFghRqPZI6Z7tA=",
+ "dev": true,
+ "requires": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
+ "buffer-from": {
+ "version": "1.1.2",
+ "resolved": "https://registry.nlark.com/buffer-from/download/buffer-from-1.1.2.tgz",
+ "integrity": "sha1-KxRqb9cugLT1XSVfNe1Zo6mkG9U=",
+ "dev": true
+ },
+ "buffer-indexof": {
+ "version": "1.1.1",
+ "resolved": "https://registry.nlark.com/buffer-indexof/download/buffer-indexof-1.1.1.tgz",
+ "integrity": "sha1-Uvq8xqYG0aADAoAmSO9o9jnaJow=",
+ "dev": true
+ },
+ "builtins": {
+ "version": "1.0.3",
+ "resolved": "https://registry.nlark.com/builtins/download/builtins-1.0.3.tgz",
+ "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=",
+ "dev": true
+ },
+ "bytes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/bytes/download/bytes-3.0.0.tgz?cache=0&sync_timestamp=1637015110760&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fbytes%2Fdownload%2Fbytes-3.0.0.tgz",
+ "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=",
+ "dev": true
+ },
+ "cacache": {
+ "version": "15.2.0",
+ "resolved": "https://registry.nlark.com/cacache/download/cacache-15.2.0.tgz",
+ "integrity": "sha1-c69193xY5y2MYwp6KFjLGO9SM4k=",
+ "dev": true,
+ "requires": {
+ "@npmcli/move-file": "^1.0.1",
+ "chownr": "^2.0.0",
+ "fs-minipass": "^2.0.0",
+ "glob": "^7.1.4",
+ "infer-owner": "^1.0.4",
+ "lru-cache": "^6.0.0",
+ "minipass": "^3.1.1",
+ "minipass-collect": "^1.0.2",
+ "minipass-flush": "^1.0.5",
+ "minipass-pipeline": "^1.2.2",
+ "mkdirp": "^1.0.3",
+ "p-map": "^4.0.0",
+ "promise-inflight": "^1.0.1",
+ "rimraf": "^3.0.2",
+ "ssri": "^8.0.1",
+ "tar": "^6.0.2",
+ "unique-filename": "^1.1.1"
+ }
+ },
+ "cache-base": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/cache-base/download/cache-base-1.0.1.tgz?cache=0&sync_timestamp=1636237266442&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcache-base%2Fdownload%2Fcache-base-1.0.1.tgz",
+ "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=",
+ "dev": true,
+ "requires": {
+ "collection-visit": "^1.0.0",
+ "component-emitter": "^1.2.1",
+ "get-value": "^2.0.6",
+ "has-value": "^1.0.0",
+ "isobject": "^3.0.1",
+ "set-value": "^2.0.0",
+ "to-object-path": "^0.3.0",
+ "union-value": "^1.0.0",
+ "unset-value": "^1.0.0"
+ }
+ },
+ "call-bind": {
+ "version": "1.0.2",
+ "resolved": "https://registry.nlark.com/call-bind/download/call-bind-1.0.2.tgz",
+ "integrity": "sha1-sdTonmiBGcPJqQOtMKuy9qkZvjw=",
+ "requires": {
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.2"
+ }
+ },
+ "call-me-maybe": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/call-me-maybe/download/call-me-maybe-1.0.1.tgz",
+ "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=",
+ "dev": true
+ },
+ "caller-callsite": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/caller-callsite/download/caller-callsite-2.0.0.tgz?cache=0&sync_timestamp=1633617041481&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcaller-callsite%2Fdownload%2Fcaller-callsite-2.0.0.tgz",
+ "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=",
+ "dev": true,
+ "requires": {
+ "callsites": "^2.0.0"
+ },
+ "dependencies": {
+ "callsites": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/callsites/download/callsites-2.0.0.tgz?cache=0&sync_timestamp=1628464722297&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcallsites%2Fdownload%2Fcallsites-2.0.0.tgz",
+ "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=",
+ "dev": true
+ }
+ }
+ },
+ "caller-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/caller-path/download/caller-path-2.0.0.tgz?cache=0&sync_timestamp=1633674209796&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcaller-path%2Fdownload%2Fcaller-path-2.0.0.tgz",
+ "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=",
+ "dev": true,
+ "requires": {
+ "caller-callsite": "^2.0.0"
+ }
+ },
+ "callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.nlark.com/callsites/download/callsites-3.1.0.tgz?cache=0&sync_timestamp=1628464722297&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcallsites%2Fdownload%2Fcallsites-3.1.0.tgz",
+ "integrity": "sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M=",
+ "dev": true
+ },
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmmirror.com/camelcase/download/camelcase-5.3.1.tgz?cache=0&sync_timestamp=1636945205805&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz",
+ "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=",
+ "dev": true
+ },
+ "camelcase-keys": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmmirror.com/camelcase-keys/download/camelcase-keys-6.2.2.tgz?cache=0&sync_timestamp=1633332959770&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcamelcase-keys%2Fdownload%2Fcamelcase-keys-6.2.2.tgz",
+ "integrity": "sha1-XnVda6UaoiPsfT1S8ld4IQ+dw8A=",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.3.1",
+ "map-obj": "^4.0.0",
+ "quick-lru": "^4.0.1"
+ }
+ },
+ "caniuse-api": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/caniuse-api/download/caniuse-api-3.0.0.tgz",
+ "integrity": "sha1-Xk2Q4idJYdRikZl99Znj7QCO5MA=",
+ "dev": true,
+ "requires": {
+ "browserslist": "^4.0.0",
+ "caniuse-lite": "^1.0.0",
+ "lodash.memoize": "^4.1.2",
+ "lodash.uniq": "^4.5.0"
+ }
+ },
+ "caniuse-lite": {
+ "version": "1.0.30001283",
+ "resolved": "https://registry.npmmirror.com/caniuse-lite/download/caniuse-lite-1.0.30001283.tgz",
+ "integrity": "sha512-9RoKo841j1GQFSJz/nCXOj0sD7tHBtlowjYlrqIUS812x9/emfBLBt6IyMz1zIaYc/eRL8Cs6HPUVi2Hzq4sIg==",
+ "dev": true
+ },
+ "canonical-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/canonical-path/download/canonical-path-1.0.0.tgz",
+ "integrity": "sha1-/LRwwjlY3vhQgYVr56hukE8YDR0=",
+ "dev": true
+ },
+ "caseless": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz",
+ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
+ "dev": true
+ },
+ "ccount": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npm.taobao.org/ccount/download/ccount-1.1.0.tgz",
+ "integrity": "sha1-JGaH3rtgFHNRMb6KurLZOJj40EM=",
+ "dev": true
+ },
+ "cfb": {
+ "version": "1.2.1",
+ "resolved": "https://registry.nlark.com/cfb/download/cfb-1.2.1.tgz",
+ "integrity": "sha1-IJQp5MaO/TBkH2/HSy1gKL0gJAI=",
+ "requires": {
+ "adler-32": "~1.3.0",
+ "crc-32": "~1.2.0",
+ "printj": "~1.3.0"
+ },
+ "dependencies": {
+ "adler-32": {
+ "version": "1.3.0",
+ "resolved": "https://registry.nlark.com/adler-32/download/adler-32-1.3.0.tgz",
+ "integrity": "sha1-PK0bcc36afbIqR8+NhXTGk/e3HI=",
+ "requires": {
+ "printj": "~1.2.2"
+ },
+ "dependencies": {
+ "printj": {
+ "version": "1.2.3",
+ "resolved": "https://registry.nlark.com/printj/download/printj-1.2.3.tgz",
+ "integrity": "sha1-LPsrGSoeU4XbvltGZYrDSqgoUIo="
+ }
+ }
+ },
+ "printj": {
+ "version": "1.3.0",
+ "resolved": "https://registry.nlark.com/printj/download/printj-1.3.0.tgz",
+ "integrity": "sha1-kBipGKeQ5DcH8QYl1uEBh6Nnz/Y="
+ }
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz",
+ "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "character-entities": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmmirror.com/character-entities/download/character-entities-1.2.4.tgz?cache=0&sync_timestamp=1635869177182&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcharacter-entities%2Fdownload%2Fcharacter-entities-1.2.4.tgz",
+ "integrity": "sha1-4Sw5Obfq9OWxXnrUxeKOHUjFsWs=",
+ "dev": true
+ },
+ "character-entities-html4": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmmirror.com/character-entities-html4/download/character-entities-html4-1.1.4.tgz",
+ "integrity": "sha1-DmSwo3U92/H9wETF/QHQGZoC4SU=",
+ "dev": true
+ },
+ "character-entities-legacy": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmmirror.com/character-entities-legacy/download/character-entities-legacy-1.1.4.tgz?cache=0&sync_timestamp=1635911795757&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcharacter-entities-legacy%2Fdownload%2Fcharacter-entities-legacy-1.1.4.tgz",
+ "integrity": "sha1-lLwYRdznClu50uzHSHJWYSk9j8E=",
+ "dev": true
+ },
+ "character-reference-invalid": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmmirror.com/character-reference-invalid/download/character-reference-invalid-1.1.4.tgz?cache=0&sync_timestamp=1636446246852&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcharacter-reference-invalid%2Fdownload%2Fcharacter-reference-invalid-1.1.4.tgz",
+ "integrity": "sha1-CDMpzaDq4nKrPbvzfpo4LBOvFWA=",
+ "dev": true
+ },
+ "chardet": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmmirror.com/chardet/download/chardet-0.7.0.tgz?cache=0&sync_timestamp=1634639141514&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fchardet%2Fdownload%2Fchardet-0.7.0.tgz",
+ "integrity": "sha1-kAlISfCTfy7twkJdDSip5fDLrZ4=",
+ "dev": true
+ },
+ "chokidar": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmmirror.com/chokidar/download/chokidar-3.5.2.tgz",
+ "integrity": "sha1-26OXb8rbAW9m/TZQIdkWANAcHnU=",
+ "dev": true,
+ "requires": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "fsevents": "~2.3.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"
+ },
+ "dependencies": {
+ "glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmmirror.com/glob-parent/download/glob-parent-5.1.2.tgz?cache=0&sync_timestamp=1632953810778&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fglob-parent%2Fdownload%2Fglob-parent-5.1.2.tgz",
+ "integrity": "sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ=",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ }
+ }
+ },
+ "chownr": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/chownr/download/chownr-2.0.0.tgz",
+ "integrity": "sha1-Fb++U9LqtM9w8YqM1o6+Wzyx3s4=",
+ "dev": true
+ },
+ "chrome-trace-event": {
+ "version": "1.0.3",
+ "resolved": "https://registry.nlark.com/chrome-trace-event/download/chrome-trace-event-1.0.3.tgz",
+ "integrity": "sha1-EBXs7UdB4V0GZkqVfbv1DQQeJqw=",
+ "dev": true
+ },
+ "circular-dependency-plugin": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npm.taobao.org/circular-dependency-plugin/download/circular-dependency-plugin-5.2.2.tgz",
+ "integrity": "sha1-Oeg2B52x088vmI3EjFGIpEBYtgA=",
+ "dev": true
+ },
+ "class-utils": {
+ "version": "0.3.6",
+ "resolved": "https://registry.nlark.com/class-utils/download/class-utils-0.3.6.tgz",
+ "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=",
+ "dev": true,
+ "requires": {
+ "arr-union": "^3.1.0",
+ "define-property": "^0.2.5",
+ "isobject": "^3.0.0",
+ "static-extend": "^0.1.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.nlark.com/define-property/download/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ }
+ }
+ },
+ "clean-css": {
+ "version": "3.4.28",
+ "resolved": "https://registry.npmmirror.com/clean-css/download/clean-css-3.4.28.tgz?cache=0&sync_timestamp=1634992314911&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fclean-css%2Fdownload%2Fclean-css-3.4.28.tgz",
+ "integrity": "sha1-vxlF6C/ICPVWlebd6uwBQA79A/8=",
+ "dev": true,
+ "requires": {
+ "commander": "2.8.x",
+ "source-map": "0.4.x"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmmirror.com/commander/download/commander-2.8.1.tgz",
+ "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=",
+ "dev": true,
+ "requires": {
+ "graceful-readlink": ">= 1.0.0"
+ }
+ },
+ "source-map": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.4.4.tgz",
+ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
+ "dev": true,
+ "requires": {
+ "amdefine": ">=0.0.4"
+ }
+ }
+ }
+ },
+ "clean-stack": {
+ "version": "2.2.0",
+ "resolved": "https://registry.nlark.com/clean-stack/download/clean-stack-2.2.0.tgz?cache=0&sync_timestamp=1622605328444&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fclean-stack%2Fdownload%2Fclean-stack-2.2.0.tgz",
+ "integrity": "sha1-7oRy27Ep5yezHooQpCfe6d/kAIs=",
+ "dev": true
+ },
+ "cli-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.nlark.com/cli-cursor/download/cli-cursor-3.1.0.tgz?cache=0&sync_timestamp=1629747506749&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcli-cursor%2Fdownload%2Fcli-cursor-3.1.0.tgz",
+ "integrity": "sha1-JkMFp65JDR0Dvwybp8kl0XU68wc=",
+ "dev": true,
+ "requires": {
+ "restore-cursor": "^3.1.0"
+ }
+ },
+ "cli-spinners": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmmirror.com/cli-spinners/download/cli-spinners-2.6.1.tgz?cache=0&sync_timestamp=1633109609172&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcli-spinners%2Fdownload%2Fcli-spinners-2.6.1.tgz",
+ "integrity": "sha1-rclU6+KBw3pjGb+kAebdJIj/tw0=",
+ "dev": true
+ },
+ "cli-truncate": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/cli-truncate/download/cli-truncate-2.1.0.tgz",
+ "integrity": "sha1-w54ovwXtzeW+O5iZKiLe7Vork8c=",
+ "dev": true,
+ "requires": {
+ "slice-ansi": "^3.0.0",
+ "string-width": "^4.2.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz",
+ "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
+ "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
+ "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
+ "dev": true
+ },
+ "slice-ansi": {
+ "version": "3.0.0",
+ "resolved": "https://registry.nlark.com/slice-ansi/download/slice-ansi-3.0.0.tgz",
+ "integrity": "sha1-Md3BCTCht+C2ewjJbC9Jt3p4l4c=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
+ }
+ }
+ }
+ },
+ "cli-width": {
+ "version": "3.0.0",
+ "resolved": "https://registry.nlark.com/cli-width/download/cli-width-3.0.0.tgz",
+ "integrity": "sha1-ovSEN6LKqaIkNueUvwceyeYc7fY=",
+ "dev": true
+ },
+ "cliui": {
+ "version": "5.0.0",
+ "resolved": "https://registry.nlark.com/cliui/download/cliui-5.0.0.tgz",
+ "integrity": "sha1-3u/P2y6AB4SqNPRvoI4GhRx7u8U=",
+ "dev": true,
+ "requires": {
+ "string-width": "^3.1.0",
+ "strip-ansi": "^5.2.0",
+ "wrap-ansi": "^5.1.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-4.1.0.tgz?cache=0&sync_timestamp=1631634988487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-regex%2Fdownload%2Fansi-regex-4.1.0.tgz",
+ "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=",
+ "dev": true
+ },
+ "emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmmirror.com/emoji-regex/download/emoji-regex-7.0.3.tgz?cache=0&sync_timestamp=1632751333727&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Femoji-regex%2Fdownload%2Femoji-regex-7.0.3.tgz",
+ "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/string-width/download/string-width-3.1.0.tgz?cache=0&sync_timestamp=1632421013520&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstring-width%2Fdownload%2Fstring-width-3.1.0.tgz",
+ "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1632420562057&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz",
+ "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ }
+ }
+ },
+ "clone": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npm.taobao.org/clone/download/clone-2.1.2.tgz",
+ "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18="
+ },
+ "clone-deep": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npm.taobao.org/clone-deep/download/clone-deep-4.0.1.tgz",
+ "integrity": "sha1-wZ/Zvbv4WUK0/ZechNz31fB8I4c=",
+ "dev": true,
+ "requires": {
+ "is-plain-object": "^2.0.4",
+ "kind-of": "^6.0.2",
+ "shallow-clone": "^3.0.0"
+ }
+ },
+ "clone-regexp": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npm.taobao.org/clone-regexp/download/clone-regexp-2.2.0.tgz?cache=0&sync_timestamp=1617892092032&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fclone-regexp%2Fdownload%2Fclone-regexp-2.2.0.tgz",
+ "integrity": "sha1-fWXgCIXNh5ZAXDWnN+eoa3Qp428=",
+ "dev": true,
+ "requires": {
+ "is-regexp": "^2.0.0"
+ },
+ "dependencies": {
+ "is-regexp": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/is-regexp/download/is-regexp-2.1.0.tgz",
+ "integrity": "sha1-zXNKVoZOI7lWv058ZsOWpMCyLC0=",
+ "dev": true
+ }
+ }
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/code-point-at/download/code-point-at-1.1.0.tgz",
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
+ "dev": true
+ },
+ "codepage": {
+ "version": "1.15.0",
+ "resolved": "https://registry.nlark.com/codepage/download/codepage-1.15.0.tgz?cache=0&sync_timestamp=1627596487574&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcodepage%2Fdownload%2Fcodepage-1.15.0.tgz",
+ "integrity": "sha1-LgBRkCSzlCTsZu6z7AcifmkmGKs="
+ },
+ "collapse-white-space": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npm.taobao.org/collapse-white-space/download/collapse-white-space-1.0.6.tgz?cache=0&sync_timestamp=1615197514795&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcollapse-white-space%2Fdownload%2Fcollapse-white-space-1.0.6.tgz",
+ "integrity": "sha1-5jYpwAFmZXkgYNu+t5xCI50sUoc=",
+ "dev": true
+ },
+ "collection-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/collection-visit/download/collection-visit-1.0.0.tgz",
+ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
+ "dev": true,
+ "requires": {
+ "map-visit": "^1.0.0",
+ "object-visit": "^1.0.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz",
+ "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
+ },
+ "colord": {
+ "version": "2.9.1",
+ "resolved": "https://registry.npmmirror.com/colord/download/colord-2.9.1.tgz?cache=0&sync_timestamp=1634659871445&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcolord%2Fdownload%2Fcolord-2.9.1.tgz",
+ "integrity": "sha1-yWHqDv61fJ8PSDRFjybLnMSj+Q4=",
+ "dev": true
+ },
+ "colorette": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmmirror.com/colorette/download/colorette-1.4.0.tgz",
+ "integrity": "sha1-UZD7uHJ2JZqGrXAL/yxtb6o/ykA=",
+ "dev": true
+ },
+ "colors": {
+ "version": "1.4.0",
+ "resolved": "https://registry.nlark.com/colors/download/colors-1.4.0.tgz",
+ "integrity": "sha1-xQSRR51MG9rtLJztMs98fcI2D3g=",
+ "dev": true
+ },
+ "combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.nlark.com/combined-stream/download/combined-stream-1.0.8.tgz",
+ "integrity": "sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=",
+ "dev": true,
+ "requires": {
+ "delayed-stream": "~1.0.0"
+ }
+ },
+ "commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmmirror.com/commander/download/commander-2.20.3.tgz",
+ "integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM="
+ },
+ "comment-parser": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmmirror.com/comment-parser/download/comment-parser-1.2.4.tgz?cache=0&sync_timestamp=1637132117502&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcomment-parser%2Fdownload%2Fcomment-parser-1.2.4.tgz",
+ "integrity": "sha1-SJ8+5V39GEpuS/+zG6uihEU8t2A=",
+ "dev": true
+ },
+ "commondir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/commondir/download/commondir-1.0.1.tgz",
+ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
+ "dev": true
+ },
+ "component-emitter": {
+ "version": "1.3.0",
+ "resolved": "https://registry.nlark.com/component-emitter/download/component-emitter-1.3.0.tgz",
+ "integrity": "sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A=",
+ "dev": true
+ },
+ "compressible": {
+ "version": "2.0.18",
+ "resolved": "https://registry.npm.taobao.org/compressible/download/compressible-2.0.18.tgz",
+ "integrity": "sha1-r1PMprBw1MPAdQ+9dyhqbXzEb7o=",
+ "dev": true,
+ "requires": {
+ "mime-db": ">= 1.43.0 < 2"
+ }
+ },
+ "compression": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npm.taobao.org/compression/download/compression-1.7.4.tgz",
+ "integrity": "sha1-lVI+/xcMpXwpoMpB5v4TH0Hlu48=",
+ "dev": true,
+ "requires": {
+ "accepts": "~1.3.5",
+ "bytes": "3.0.0",
+ "compressible": "~2.0.16",
+ "debug": "2.6.9",
+ "on-headers": "~1.0.2",
+ "safe-buffer": "5.1.2",
+ "vary": "~1.1.2"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmmirror.com/debug/download/debug-2.6.9.tgz",
+ "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.nlark.com/concat-map/download/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "dev": true
+ },
+ "connect": {
+ "version": "3.7.0",
+ "resolved": "https://registry.nlark.com/connect/download/connect-3.7.0.tgz?cache=0&sync_timestamp=1618847040246&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fconnect%2Fdownload%2Fconnect-3.7.0.tgz",
+ "integrity": "sha1-XUk0iRDKpeB6AYALAw0MNfIEhPg=",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "finalhandler": "1.1.2",
+ "parseurl": "~1.3.3",
+ "utils-merge": "1.0.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmmirror.com/debug/download/debug-2.6.9.tgz",
+ "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "connect-history-api-fallback": {
+ "version": "1.6.0",
+ "resolved": "https://registry.nlark.com/connect-history-api-fallback/download/connect-history-api-fallback-1.6.0.tgz?cache=0&sync_timestamp=1618847040596&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fconnect-history-api-fallback%2Fdownload%2Fconnect-history-api-fallback-1.6.0.tgz",
+ "integrity": "sha1-izIIk1kwjRERFdgcrT/Oq4iPl7w=",
+ "dev": true
+ },
+ "console-control-strings": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npm.taobao.org/console-control-strings/download/console-control-strings-1.1.0.tgz",
+ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
+ "dev": true
+ },
+ "content-disposition": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npm.taobao.org/content-disposition/download/content-disposition-0.5.3.tgz",
+ "integrity": "sha1-4TDK9+cnkIfFYWwgB9BIVpiYT70=",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "5.1.2"
+ }
+ },
+ "content-type": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npm.taobao.org/content-type/download/content-type-1.0.4.tgz",
+ "integrity": "sha1-4TjMdeBAxyexlm/l5fjJruJW/js=",
+ "dev": true
+ },
+ "convert-source-map": {
+ "version": "1.8.0",
+ "resolved": "https://registry.nlark.com/convert-source-map/download/convert-source-map-1.8.0.tgz?cache=0&sync_timestamp=1624045508580&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fconvert-source-map%2Fdownload%2Fconvert-source-map-1.8.0.tgz",
+ "integrity": "sha1-8zc8MtIbTXgN2ABFFGhPt5HKQ2k=",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.1"
+ }
+ },
+ "cookie": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npm.taobao.org/cookie/download/cookie-0.4.0.tgz",
+ "integrity": "sha1-vrQ35wIrO21JAZ0IhmUwPr6cFLo=",
+ "dev": true
+ },
+ "cookie-signature": {
+ "version": "1.0.6",
+ "resolved": "https://registry.nlark.com/cookie-signature/download/cookie-signature-1.0.6.tgz",
+ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=",
+ "dev": true
+ },
+ "copy-anything": {
+ "version": "2.0.3",
+ "resolved": "https://registry.nlark.com/copy-anything/download/copy-anything-2.0.3.tgz",
+ "integrity": "sha1-hCQHugJGaw34RIGbvjuuu+XUXYc=",
+ "dev": true,
+ "requires": {
+ "is-what": "^3.12.0"
+ }
+ },
+ "copy-descriptor": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npm.taobao.org/copy-descriptor/download/copy-descriptor-0.1.1.tgz",
+ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
+ "dev": true
+ },
+ "copy-webpack-plugin": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmmirror.com/copy-webpack-plugin/download/copy-webpack-plugin-9.0.1.tgz?cache=0&sync_timestamp=1637161330355&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcopy-webpack-plugin%2Fdownload%2Fcopy-webpack-plugin-9.0.1.tgz",
+ "integrity": "sha1-tx0hmRWZ9hpO4AunkIe4uiebu1k=",
+ "dev": true,
+ "requires": {
+ "fast-glob": "^3.2.5",
+ "glob-parent": "^6.0.0",
+ "globby": "^11.0.3",
+ "normalize-path": "^3.0.0",
+ "p-limit": "^3.1.0",
+ "schema-utils": "^3.0.0",
+ "serialize-javascript": "^6.0.0"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmmirror.com/ajv/download/ajv-6.12.6.tgz?cache=0&sync_timestamp=1637522259668&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fajv%2Fdownload%2Fajv-6.12.6.tgz",
+ "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=",
+ "dev": true
+ },
+ "p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.nlark.com/p-limit/download/p-limit-3.1.0.tgz?cache=0&sync_timestamp=1628812766275&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fp-limit%2Fdownload%2Fp-limit-3.1.0.tgz",
+ "integrity": "sha1-4drMvnjQ0TiMoYxk/qOOPlfjcGs=",
+ "dev": true,
+ "requires": {
+ "yocto-queue": "^0.1.0"
+ }
+ },
+ "schema-utils": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmmirror.com/schema-utils/download/schema-utils-3.1.1.tgz?cache=0&sync_timestamp=1637075888461&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fschema-utils%2Fdownload%2Fschema-utils-3.1.1.tgz",
+ "integrity": "sha1-vHTEtraZXB2I92qLd76nIZ4MgoE=",
+ "dev": true,
+ "requires": {
+ "@types/json-schema": "^7.0.8",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
+ }
+ }
+ }
+ },
+ "core-js": {
+ "version": "3.16.0",
+ "resolved": "https://registry.npmmirror.com/core-js/download/core-js-3.16.0.tgz",
+ "integrity": "sha1-HUb7M3ILwfp/kNIEMfNqVUCFiYY=",
+ "dev": true
+ },
+ "core-js-compat": {
+ "version": "3.19.1",
+ "resolved": "https://registry.npmmirror.com/core-js-compat/download/core-js-compat-3.19.1.tgz?cache=0&sync_timestamp=1635883123462&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcore-js-compat%2Fdownload%2Fcore-js-compat-3.19.1.tgz",
+ "integrity": "sha1-/lmPGpvzcxDXfDgTlo6ffHu5lHY=",
+ "dev": true,
+ "requires": {
+ "browserslist": "^4.17.6",
+ "semver": "7.0.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.0.0.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.0.0.tgz",
+ "integrity": "sha1-XzyjV2HkfgWyBsba/yz4FPAxa44=",
+ "dev": true
+ }
+ }
+ },
+ "core-js-pure": {
+ "version": "3.19.1",
+ "resolved": "https://registry.npmmirror.com/core-js-pure/download/core-js-pure-3.19.1.tgz?cache=0&sync_timestamp=1635883214117&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcore-js-pure%2Fdownload%2Fcore-js-pure-3.19.1.tgz",
+ "integrity": "sha1-7f/B/HY0AApVugXpWz8P6Vh6WqQ=",
+ "dev": true
+ },
+ "core-util-is": {
+ "version": "1.0.3",
+ "resolved": "https://registry.nlark.com/core-util-is/download/core-util-is-1.0.3.tgz",
+ "integrity": "sha1-pgQtNjTCsn6TKPg3uWX6yDgI24U="
+ },
+ "cors": {
+ "version": "2.8.5",
+ "resolved": "https://registry.npm.taobao.org/cors/download/cors-2.8.5.tgz",
+ "integrity": "sha1-6sEdpRWS3Ya58G9uesKTs9+HXSk=",
+ "dev": true,
+ "requires": {
+ "object-assign": "^4",
+ "vary": "^1"
+ }
+ },
+ "cosmiconfig": {
+ "version": "7.0.1",
+ "resolved": "https://registry.nlark.com/cosmiconfig/download/cosmiconfig-7.0.1.tgz",
+ "integrity": "sha1-cU11ZSLKzoZ4Z8y0R0xdAbuuXW0=",
+ "dev": true,
+ "requires": {
+ "@types/parse-json": "^4.0.0",
+ "import-fresh": "^3.2.1",
+ "parse-json": "^5.0.0",
+ "path-type": "^4.0.0",
+ "yaml": "^1.10.0"
+ }
+ },
+ "crc-32": {
+ "version": "1.2.0",
+ "resolved": "https://registry.nlark.com/crc-32/download/crc-32-1.2.0.tgz",
+ "integrity": "sha1-yy224puIUI4y2d0OwWk+e0Ghggg=",
+ "requires": {
+ "exit-on-epipe": "~1.0.1",
+ "printj": "~1.1.0"
+ }
+ },
+ "critters": {
+ "version": "0.0.12",
+ "resolved": "https://registry.npmmirror.com/critters/download/critters-0.0.12.tgz",
+ "integrity": "sha1-MrqodSbgU6QbZ+GZIWc+2SJk4qs=",
+ "dev": true,
+ "requires": {
+ "chalk": "^4.1.0",
+ "css-select": "^4.1.3",
+ "parse5": "^6.0.1",
+ "parse5-htmlparser2-tree-adapter": "^6.0.1",
+ "postcss": "^8.3.7",
+ "pretty-bytes": "^5.3.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz",
+ "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz",
+ "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
+ "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
+ "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz",
+ "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=",
+ "dev": true
+ },
+ "parse5": {
+ "version": "6.0.1",
+ "resolved": "https://registry.nlark.com/parse5/download/parse5-6.0.1.tgz",
+ "integrity": "sha1-4aHAhcVps9wIMhGE8Zo5zCf3wws=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "8.4.1",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-8.4.1.tgz",
+ "integrity": "sha512-WqLs/TTzXdG+/A4ZOOK9WDZiikrRaiA+eoEb/jz2DT9KUhMNHgP7yKPO8vwi62ZCsb703Gwb7BMZwDzI54Y2Ag==",
+ "dev": true,
+ "requires": {
+ "nanoid": "^3.1.30",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^1.0.1"
+ }
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmmirror.com/supports-color/download/supports-color-7.2.0.tgz",
+ "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz",
+ "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=",
+ "dev": true,
+ "requires": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz",
+ "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=",
+ "dev": true
+ }
+ }
+ },
+ "css": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npm.taobao.org/css/download/css-2.2.4.tgz",
+ "integrity": "sha1-xkZ1XHOXHyu6amAeLPL9cbEpiSk=",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "source-map": "^0.6.1",
+ "source-map-resolve": "^0.5.2",
+ "urix": "^0.1.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "css-blank-pseudo": {
+ "version": "0.1.4",
+ "resolved": "https://registry.nlark.com/css-blank-pseudo/download/css-blank-pseudo-0.1.4.tgz?cache=0&sync_timestamp=1631804332345&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcss-blank-pseudo%2Fdownload%2Fcss-blank-pseudo-0.1.4.tgz",
+ "integrity": "sha1-3979MlS/ioICeZNnTM81SDv8s8U=",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.5"
+ },
+ "dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "css-declaration-sorter": {
+ "version": "6.1.3",
+ "resolved": "https://registry.nlark.com/css-declaration-sorter/download/css-declaration-sorter-6.1.3.tgz",
+ "integrity": "sha1-6YUuTPlAunn1CdlCWxN9H5RDjcI=",
+ "dev": true,
+ "requires": {
+ "timsort": "^0.3.0"
+ }
+ },
+ "css-has-pseudo": {
+ "version": "0.10.0",
+ "resolved": "https://registry.nlark.com/css-has-pseudo/download/css-has-pseudo-0.10.0.tgz",
+ "integrity": "sha1-PGQqs0yiQsWcQaEl35EFhB9pZu4=",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.6",
+ "postcss-selector-parser": "^5.0.0-rc.4"
+ },
+ "dependencies": {
+ "cssesc": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/cssesc/download/cssesc-2.0.0.tgz",
+ "integrity": "sha1-OxO9G7HLNuG8taTc0n9UxdyzVwM=",
+ "dev": true
+ },
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "postcss-selector-parser": {
+ "version": "5.0.0",
+ "resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-5.0.0.tgz?cache=0&sync_timestamp=1620752939806&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-5.0.0.tgz",
+ "integrity": "sha1-JJBENWaXsztk8aj3yAki3d7nGVw=",
+ "dev": true,
+ "requires": {
+ "cssesc": "^2.0.0",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "css-loader": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmmirror.com/css-loader/download/css-loader-6.2.0.tgz?cache=0&sync_timestamp=1635967924209&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcss-loader%2Fdownload%2Fcss-loader-6.2.0.tgz",
+ "integrity": "sha1-lmPZRDhB3pV6PLm86i7aZbM3cHE=",
+ "dev": true,
+ "requires": {
+ "icss-utils": "^5.1.0",
+ "postcss": "^8.2.15",
+ "postcss-modules-extract-imports": "^3.0.0",
+ "postcss-modules-local-by-default": "^4.0.0",
+ "postcss-modules-scope": "^3.0.0",
+ "postcss-modules-values": "^4.0.0",
+ "postcss-value-parser": "^4.1.0",
+ "semver": "^7.3.5"
+ }
+ },
+ "css-minimizer-webpack-plugin": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmmirror.com/css-minimizer-webpack-plugin/download/css-minimizer-webpack-plugin-3.0.2.tgz",
+ "integrity": "sha1-j6298QEoy0Aie/8nWku0dBJTQkU=",
+ "dev": true,
+ "requires": {
+ "cssnano": "^5.0.6",
+ "jest-worker": "^27.0.2",
+ "p-limit": "^3.0.2",
+ "postcss": "^8.3.5",
+ "schema-utils": "^3.0.0",
+ "serialize-javascript": "^6.0.0",
+ "source-map": "^0.6.1"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmmirror.com/ajv/download/ajv-6.12.6.tgz?cache=0&sync_timestamp=1637522259668&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fajv%2Fdownload%2Fajv-6.12.6.tgz",
+ "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=",
+ "dev": true
+ },
+ "p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.nlark.com/p-limit/download/p-limit-3.1.0.tgz?cache=0&sync_timestamp=1628812766275&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fp-limit%2Fdownload%2Fp-limit-3.1.0.tgz",
+ "integrity": "sha1-4drMvnjQ0TiMoYxk/qOOPlfjcGs=",
+ "dev": true,
+ "requires": {
+ "yocto-queue": "^0.1.0"
+ }
+ },
+ "schema-utils": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmmirror.com/schema-utils/download/schema-utils-3.1.1.tgz?cache=0&sync_timestamp=1637075888461&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fschema-utils%2Fdownload%2Fschema-utils-3.1.1.tgz",
+ "integrity": "sha1-vHTEtraZXB2I92qLd76nIZ4MgoE=",
+ "dev": true,
+ "requires": {
+ "@types/json-schema": "^7.0.8",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "css-parse": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/css-parse/download/css-parse-2.0.0.tgz",
+ "integrity": "sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q=",
+ "dev": true,
+ "requires": {
+ "css": "^2.0.0"
+ }
+ },
+ "css-prefers-color-scheme": {
+ "version": "3.1.1",
+ "resolved": "https://registry.nlark.com/css-prefers-color-scheme/download/css-prefers-color-scheme-3.1.1.tgz?cache=0&sync_timestamp=1631886210994&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcss-prefers-color-scheme%2Fdownload%2Fcss-prefers-color-scheme-3.1.1.tgz",
+ "integrity": "sha1-b4MKJxQZnU8NDQu4onkW7WXP8fQ=",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.5"
+ },
+ "dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "css-select": {
+ "version": "4.1.3",
+ "resolved": "https://registry.nlark.com/css-select/download/css-select-4.1.3.tgz?cache=0&sync_timestamp=1622994276976&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcss-select%2Fdownload%2Fcss-select-4.1.3.tgz",
+ "integrity": "sha1-pwRA9wMX8maRGK10/xBeZYSccGc=",
+ "dev": true,
+ "requires": {
+ "boolbase": "^1.0.0",
+ "css-what": "^5.0.0",
+ "domhandler": "^4.2.0",
+ "domutils": "^2.6.0",
+ "nth-check": "^2.0.0"
+ }
+ },
+ "css-tree": {
+ "version": "1.1.3",
+ "resolved": "https://registry.nlark.com/css-tree/download/css-tree-1.1.3.tgz",
+ "integrity": "sha1-60hw+2/XcHMn7JXC/yqwm16NuR0=",
+ "dev": true,
+ "requires": {
+ "mdn-data": "2.0.14",
+ "source-map": "^0.6.1"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "css-what": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/css-what/download/css-what-5.1.0.tgz",
+ "integrity": "sha1-P3tweq32M7r2LCzrhXm1RbtA9/4=",
+ "dev": true
+ },
+ "cssdb": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npm.taobao.org/cssdb/download/cssdb-4.4.0.tgz",
+ "integrity": "sha1-O/LypowQ9cagir2SN4Mx7oA83bA=",
+ "dev": true
+ },
+ "cssesc": {
+ "version": "3.0.0",
+ "resolved": "https://registry.nlark.com/cssesc/download/cssesc-3.0.0.tgz",
+ "integrity": "sha1-N3QZGZA7hoVl4cCep0dEXNGJg+4=",
+ "dev": true
+ },
+ "cssnano": {
+ "version": "5.0.11",
+ "resolved": "https://registry.npmmirror.com/cssnano/download/cssnano-5.0.11.tgz?cache=0&sync_timestamp=1637085734194&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcssnano%2Fdownload%2Fcssnano-5.0.11.tgz",
+ "integrity": "sha512-5SHM31NAAe29jvy0MJqK40zZ/8dGlnlzcfHKw00bWMVFp8LWqtuyPSFwbaoIoxvt71KWJOfg8HMRGrBR3PExCg==",
+ "dev": true,
+ "requires": {
+ "cssnano-preset-default": "^5.1.7",
+ "is-resolvable": "^1.1.0",
+ "lilconfig": "^2.0.3",
+ "yaml": "^1.10.2"
+ }
+ },
+ "cssnano-preset-default": {
+ "version": "5.1.7",
+ "resolved": "https://registry.npmmirror.com/cssnano-preset-default/download/cssnano-preset-default-5.1.7.tgz?cache=0&sync_timestamp=1637084922741&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcssnano-preset-default%2Fdownload%2Fcssnano-preset-default-5.1.7.tgz",
+ "integrity": "sha512-bWDjtTY+BOqrqBtsSQIbN0RLGD2Yr2CnecpP0ydHNafh9ZUEre8c8VYTaH9FEbyOt0eIfEUAYYk5zj92ioO8LA==",
+ "dev": true,
+ "requires": {
+ "css-declaration-sorter": "^6.0.3",
+ "cssnano-utils": "^2.0.1",
+ "postcss-calc": "^8.0.0",
+ "postcss-colormin": "^5.2.1",
+ "postcss-convert-values": "^5.0.2",
+ "postcss-discard-comments": "^5.0.1",
+ "postcss-discard-duplicates": "^5.0.1",
+ "postcss-discard-empty": "^5.0.1",
+ "postcss-discard-overridden": "^5.0.1",
+ "postcss-merge-longhand": "^5.0.4",
+ "postcss-merge-rules": "^5.0.3",
+ "postcss-minify-font-values": "^5.0.1",
+ "postcss-minify-gradients": "^5.0.3",
+ "postcss-minify-params": "^5.0.2",
+ "postcss-minify-selectors": "^5.1.0",
+ "postcss-normalize-charset": "^5.0.1",
+ "postcss-normalize-display-values": "^5.0.1",
+ "postcss-normalize-positions": "^5.0.1",
+ "postcss-normalize-repeat-style": "^5.0.1",
+ "postcss-normalize-string": "^5.0.1",
+ "postcss-normalize-timing-functions": "^5.0.1",
+ "postcss-normalize-unicode": "^5.0.1",
+ "postcss-normalize-url": "^5.0.3",
+ "postcss-normalize-whitespace": "^5.0.1",
+ "postcss-ordered-values": "^5.0.2",
+ "postcss-reduce-initial": "^5.0.1",
+ "postcss-reduce-transforms": "^5.0.1",
+ "postcss-svgo": "^5.0.3",
+ "postcss-unique-selectors": "^5.0.2"
+ }
+ },
+ "cssnano-utils": {
+ "version": "2.0.1",
+ "resolved": "https://registry.nlark.com/cssnano-utils/download/cssnano-utils-2.0.1.tgz",
+ "integrity": "sha1-hmCqKzfthp0uLyKRgZapqLZJjOI=",
+ "dev": true
+ },
+ "csso": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npm.taobao.org/csso/download/csso-4.2.0.tgz?cache=0&sync_timestamp=1606408777341&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcsso%2Fdownload%2Fcsso-4.2.0.tgz",
+ "integrity": "sha1-6jpWE0bo3J9UbW/r7dUBh884lSk=",
+ "dev": true,
+ "requires": {
+ "css-tree": "^1.1.2"
+ }
+ },
+ "csstype": {
+ "version": "3.0.10",
+ "resolved": "https://registry.npmmirror.com/csstype/download/csstype-3.0.10.tgz?cache=0&sync_timestamp=1637224507298&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcsstype%2Fdownload%2Fcsstype-3.0.10.tgz",
+ "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA=="
+ },
+ "currently-unhandled": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npm.taobao.org/currently-unhandled/download/currently-unhandled-0.4.1.tgz",
+ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
+ "dev": true,
+ "requires": {
+ "array-find-index": "^1.0.1"
+ }
+ },
+ "custom-event": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/custom-event/download/custom-event-1.0.1.tgz",
+ "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=",
+ "dev": true
+ },
+ "d3-array": {
+ "version": "2.12.1",
+ "resolved": "https://registry.npmmirror.com/d3-array/download/d3-array-2.12.1.tgz",
+ "integrity": "sha1-4gtBqvzf/fXVCSgATs7PgVpGXoE=",
+ "requires": {
+ "internmap": "^1.0.0"
+ }
+ },
+ "d3-brush": {
+ "version": "2.1.0",
+ "resolved": "https://registry.nlark.com/d3-brush/download/d3-brush-2.1.0.tgz",
+ "integrity": "sha1-ra37sQTok3rxQumm4gKDJvBHEGU=",
+ "requires": {
+ "d3-dispatch": "1 - 2",
+ "d3-drag": "2",
+ "d3-interpolate": "1 - 2",
+ "d3-selection": "2",
+ "d3-transition": "2"
+ }
+ },
+ "d3-collection": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npm.taobao.org/d3-collection/download/d3-collection-1.0.7.tgz",
+ "integrity": "sha1-NJvSqpl32wcQkcExRNXk8WtbMQ4="
+ },
+ "d3-color": {
+ "version": "1.4.1",
+ "resolved": "https://registry.nlark.com/d3-color/download/d3-color-1.4.1.tgz?cache=0&sync_timestamp=1622917832534&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fd3-color%2Fdownload%2Fd3-color-1.4.1.tgz",
+ "integrity": "sha1-xSACv4hGraRCTVXZeYL+8m6zvIo="
+ },
+ "d3-composite-projections": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npm.taobao.org/d3-composite-projections/download/d3-composite-projections-1.4.0.tgz",
+ "integrity": "sha1-J7GC+mNaWGk0n+kRzgGAuXTRfxI=",
+ "requires": {
+ "d3-geo": "^2.0.1",
+ "d3-path": "^2.0.0"
+ },
+ "dependencies": {
+ "d3-geo": {
+ "version": "2.0.2",
+ "resolved": "https://registry.nlark.com/d3-geo/download/d3-geo-2.0.2.tgz",
+ "integrity": "sha1-wGXBtx/oxfG+ZX5fQ9m90BA4PEA=",
+ "requires": {
+ "d3-array": "^2.5.0"
+ }
+ }
+ }
+ },
+ "d3-dispatch": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/d3-dispatch/download/d3-dispatch-2.0.0.tgz?cache=0&sync_timestamp=1622918261265&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fd3-dispatch%2Fdownload%2Fd3-dispatch-2.0.0.tgz",
+ "integrity": "sha1-ihjhb3bdP8rvQhY8l7kmqptV588="
+ },
+ "d3-drag": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/d3-drag/download/d3-drag-2.0.0.tgz",
+ "integrity": "sha1-nq8EbOntHCXIhmGRHB1aTY636m0=",
+ "requires": {
+ "d3-dispatch": "1 - 2",
+ "d3-selection": "2"
+ }
+ },
+ "d3-dsv": {
+ "version": "1.2.0",
+ "resolved": "https://registry.nlark.com/d3-dsv/download/d3-dsv-1.2.0.tgz",
+ "integrity": "sha1-nV91w6X4q9YR900/WEew1DOLiFw=",
+ "requires": {
+ "commander": "2",
+ "iconv-lite": "0.4",
+ "rw": "1"
+ }
+ },
+ "d3-ease": {
+ "version": "1.0.7",
+ "resolved": "https://registry.nlark.com/d3-ease/download/d3-ease-1.0.7.tgz",
+ "integrity": "sha1-moNIkO+LiujFWLL+Vb1X9Zk7heI="
+ },
+ "d3-format": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/d3-format/download/d3-format-2.0.0.tgz",
+ "integrity": "sha1-oQvMD5hsNytym6RHOCQTqr9bB2c="
+ },
+ "d3-geo": {
+ "version": "1.6.4",
+ "resolved": "https://registry.nlark.com/d3-geo/download/d3-geo-1.6.4.tgz",
+ "integrity": "sha1-8g4eRhyxhF9ai+Vatvh2VCp+MZk=",
+ "requires": {
+ "d3-array": "1"
+ },
+ "dependencies": {
+ "d3-array": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmmirror.com/d3-array/download/d3-array-1.2.4.tgz",
+ "integrity": "sha1-Y1zk1e6nWfb2BYY9vPww7cc39x8="
+ }
+ }
+ },
+ "d3-geo-projection": {
+ "version": "2.1.2",
+ "resolved": "https://registry.nlark.com/d3-geo-projection/download/d3-geo-projection-2.1.2.tgz",
+ "integrity": "sha1-ffjh6dBG1jHGUJ9+UxNX1K3CSqM=",
+ "requires": {
+ "commander": "2",
+ "d3-array": "1",
+ "d3-geo": "^1.1.0"
+ },
+ "dependencies": {
+ "d3-array": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmmirror.com/d3-array/download/d3-array-1.2.4.tgz",
+ "integrity": "sha1-Y1zk1e6nWfb2BYY9vPww7cc39x8="
+ }
+ }
+ },
+ "d3-hexjson": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npm.taobao.org/d3-hexjson/download/d3-hexjson-1.1.1.tgz?cache=0&sync_timestamp=1605174916023&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fd3-hexjson%2Fdownload%2Fd3-hexjson-1.1.1.tgz",
+ "integrity": "sha1-oeJk/5A7sJuPj0vFnHJEepH0YP4=",
+ "requires": {
+ "d3-array": "1"
+ },
+ "dependencies": {
+ "d3-array": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmmirror.com/d3-array/download/d3-array-1.2.4.tgz",
+ "integrity": "sha1-Y1zk1e6nWfb2BYY9vPww7cc39x8="
+ }
+ }
+ },
+ "d3-hierarchy": {
+ "version": "1.1.9",
+ "resolved": "https://registry.nlark.com/d3-hierarchy/download/d3-hierarchy-1.1.9.tgz",
+ "integrity": "sha1-L2vuJMqupD+Nw3VF+gFihVlkeoM="
+ },
+ "d3-interpolate": {
+ "version": "1.4.0",
+ "resolved": "https://registry.nlark.com/d3-interpolate/download/d3-interpolate-1.4.0.tgz",
+ "integrity": "sha1-Um554tgNqjg/ngwcHH3MDwWD6Yc=",
+ "requires": {
+ "d3-color": "1"
+ }
+ },
+ "d3-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/d3-path/download/d3-path-2.0.0.tgz?cache=0&sync_timestamp=1622917833000&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fd3-path%2Fdownload%2Fd3-path-2.0.0.tgz",
+ "integrity": "sha1-VdhqwTGgVIra4kHuv7VrRYLdCdg="
+ },
+ "d3-sankey": {
+ "version": "0.9.1",
+ "resolved": "https://registry.nlark.com/d3-sankey/download/d3-sankey-0.9.1.tgz",
+ "integrity": "sha1-uFAUWjKEERY23eyQ39qMZJGb7k4=",
+ "requires": {
+ "d3-array": "1",
+ "d3-collection": "1",
+ "d3-shape": "^1.2.0"
+ },
+ "dependencies": {
+ "d3-array": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmmirror.com/d3-array/download/d3-array-1.2.4.tgz",
+ "integrity": "sha1-Y1zk1e6nWfb2BYY9vPww7cc39x8="
+ }
+ }
+ },
+ "d3-scale": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmmirror.com/d3-scale/download/d3-scale-3.3.0.tgz",
+ "integrity": "sha1-KMYAsp9H5bnNLfl0nCBnJ5ZiA/M=",
+ "requires": {
+ "d3-array": "^2.3.0",
+ "d3-format": "1 - 2",
+ "d3-interpolate": "1.2.0 - 2",
+ "d3-time": "^2.1.1",
+ "d3-time-format": "2 - 3"
+ }
+ },
+ "d3-selection": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/d3-selection/download/d3-selection-2.0.0.tgz",
+ "integrity": "sha1-lKEWOOohQbdWX4g3gNq8fvamEGY="
+ },
+ "d3-shape": {
+ "version": "1.3.7",
+ "resolved": "https://registry.nlark.com/d3-shape/download/d3-shape-1.3.7.tgz?cache=0&sync_timestamp=1622917833478&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fd3-shape%2Fdownload%2Fd3-shape-1.3.7.tgz",
+ "integrity": "sha1-32OAG+B7yYa8VPY3ibT+UCmStdc=",
+ "requires": {
+ "d3-path": "1"
+ },
+ "dependencies": {
+ "d3-path": {
+ "version": "1.0.9",
+ "resolved": "https://registry.nlark.com/d3-path/download/d3-path-1.0.9.tgz?cache=0&sync_timestamp=1622917833000&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fd3-path%2Fdownload%2Fd3-path-1.0.9.tgz",
+ "integrity": "sha1-SMBQux/owmJJOoyvVSTj6VkXAc8="
+ }
+ }
+ },
+ "d3-time": {
+ "version": "2.1.1",
+ "resolved": "https://registry.nlark.com/d3-time/download/d3-time-2.1.1.tgz?cache=0&sync_timestamp=1622916838153&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fd3-time%2Fdownload%2Fd3-time-2.1.1.tgz",
+ "integrity": "sha1-6dioqIaR9FSOaMoIXl/5VnJKZoI=",
+ "requires": {
+ "d3-array": "2"
+ }
+ },
+ "d3-time-format": {
+ "version": "3.0.0",
+ "resolved": "https://registry.nlark.com/d3-time-format/download/d3-time-format-3.0.0.tgz",
+ "integrity": "sha1-34BWyDZZ4B8grF2l/ernwI1fG7Y=",
+ "requires": {
+ "d3-time": "1 - 2"
+ }
+ },
+ "d3-timer": {
+ "version": "1.0.10",
+ "resolved": "https://registry.nlark.com/d3-timer/download/d3-timer-1.0.10.tgz",
+ "integrity": "sha1-3+dripF0iDGxO22ceT/71QjdneU="
+ },
+ "d3-transition": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/d3-transition/download/d3-transition-2.0.0.tgz",
+ "integrity": "sha1-Nm73DCLviNHjQQX1B1FpkaKRyUw=",
+ "requires": {
+ "d3-color": "1 - 2",
+ "d3-dispatch": "1 - 2",
+ "d3-ease": "1 - 2",
+ "d3-interpolate": "1 - 2",
+ "d3-timer": "1 - 2"
+ }
+ },
+ "d3-voronoi": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npm.taobao.org/d3-voronoi/download/d3-voronoi-1.1.4.tgz",
+ "integrity": "sha1-3Tx412U9K7NZKErkeGRdlZRMgpc="
+ },
+ "dagre": {
+ "version": "0.8.5",
+ "resolved": "https://registry.nlark.com/dagre/download/dagre-0.8.5.tgz",
+ "integrity": "sha1-ujCwBV2sErbB/MJHgXRCd30Gr+4=",
+ "requires": {
+ "graphlib": "^2.1.8",
+ "lodash": "^4.17.15"
+ }
+ },
+ "dashdash": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npm.taobao.org/dashdash/download/dashdash-1.14.1.tgz?cache=0&sync_timestamp=1601073454623&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdashdash%2Fdownload%2Fdashdash-1.14.1.tgz",
+ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "^1.0.0"
+ }
+ },
+ "date-fns": {
+ "version": "2.26.0",
+ "resolved": "https://registry.npmmirror.com/date-fns/download/date-fns-2.26.0.tgz?cache=0&sync_timestamp=1637308994584&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fdate-fns%2Fdownload%2Fdate-fns-2.26.0.tgz",
+ "integrity": "sha512-VQI812dRi3cusdY/fhoBKvc6l2W8BPWU1FNVnFH9Nttjx4AFBRzfSVb/Eyc7jBT6e9sg1XtAGsYpBQ6c/jygbg=="
+ },
+ "date-format": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/date-format/download/date-format-3.0.0.tgz",
+ "integrity": "sha1-64eANlx9KxURB4+0keZHl4DzrZU=",
+ "dev": true
+ },
+ "debug": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmmirror.com/debug/download/debug-4.3.2.tgz",
+ "integrity": "sha1-8KScGKyHeeMdSgxgKd+3aHPHQos=",
+ "dev": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/decamelize/download/decamelize-1.2.0.tgz?cache=0&sync_timestamp=1633055756574&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fdecamelize%2Fdownload%2Fdecamelize-1.2.0.tgz",
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+ "dev": true
+ },
+ "decamelize-keys": {
+ "version": "1.1.0",
+ "resolved": "https://registry.nlark.com/decamelize-keys/download/decamelize-keys-1.1.0.tgz",
+ "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=",
+ "dev": true,
+ "requires": {
+ "decamelize": "^1.1.0",
+ "map-obj": "^1.0.0"
+ },
+ "dependencies": {
+ "map-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/map-obj/download/map-obj-1.0.1.tgz?cache=0&sync_timestamp=1634552719803&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fmap-obj%2Fdownload%2Fmap-obj-1.0.1.tgz",
+ "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
+ "dev": true
+ }
+ }
+ },
+ "decode-uri-component": {
+ "version": "0.2.0",
+ "resolved": "https://registry.nlark.com/decode-uri-component/download/decode-uri-component-0.2.0.tgz",
+ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
+ "dev": true
+ },
+ "deep-equal": {
+ "version": "1.1.1",
+ "resolved": "https://registry.nlark.com/deep-equal/download/deep-equal-1.1.1.tgz",
+ "integrity": "sha1-tcmMlCzv+vfLBR4k4UNKJaLmB2o=",
+ "requires": {
+ "is-arguments": "^1.0.4",
+ "is-date-object": "^1.0.1",
+ "is-regex": "^1.0.4",
+ "object-is": "^1.0.1",
+ "object-keys": "^1.1.1",
+ "regexp.prototype.flags": "^1.2.0"
+ }
+ },
+ "deep-is": {
+ "version": "0.1.4",
+ "resolved": "https://registry.nlark.com/deep-is/download/deep-is-0.1.4.tgz",
+ "integrity": "sha1-pvLc5hL63S7x9Rm3NVHxfoUZmDE=",
+ "dev": true
+ },
+ "default-gateway": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmmirror.com/default-gateway/download/default-gateway-4.2.0.tgz",
+ "integrity": "sha1-FnEEx1AMIRX23WmwpTa7jtcgVSs=",
+ "dev": true,
+ "requires": {
+ "execa": "^1.0.0",
+ "ip-regex": "^2.1.0"
+ }
+ },
+ "defaults": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npm.taobao.org/defaults/download/defaults-1.0.3.tgz",
+ "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
+ "dev": true,
+ "requires": {
+ "clone": "^1.0.2"
+ },
+ "dependencies": {
+ "clone": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npm.taobao.org/clone/download/clone-1.0.4.tgz",
+ "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
+ "dev": true
+ }
+ }
+ },
+ "define-lazy-prop": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/define-lazy-prop/download/define-lazy-prop-2.0.0.tgz",
+ "integrity": "sha1-P3rkIRKbyqrJvHSQXJigAJ7J7n8=",
+ "dev": true
+ },
+ "define-properties": {
+ "version": "1.1.3",
+ "resolved": "https://registry.nlark.com/define-properties/download/define-properties-1.1.3.tgz",
+ "integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=",
+ "requires": {
+ "object-keys": "^1.0.12"
+ }
+ },
+ "define-property": {
+ "version": "2.0.2",
+ "resolved": "https://registry.nlark.com/define-property/download/define-property-2.0.2.tgz",
+ "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.2",
+ "isobject": "^3.0.1"
+ },
+ "dependencies": {
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz",
+ "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ }
+ }
+ },
+ "del": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npm.taobao.org/del/download/del-4.1.1.tgz",
+ "integrity": "sha1-no8RciLqRKMf86FWwEm5kFKp8LQ=",
+ "dev": true,
+ "requires": {
+ "@types/glob": "^7.1.1",
+ "globby": "^6.1.0",
+ "is-path-cwd": "^2.0.0",
+ "is-path-in-cwd": "^2.0.0",
+ "p-map": "^2.0.0",
+ "pify": "^4.0.1",
+ "rimraf": "^2.6.3"
+ },
+ "dependencies": {
+ "array-union": {
+ "version": "1.0.2",
+ "resolved": "https://registry.nlark.com/array-union/download/array-union-1.0.2.tgz",
+ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
+ "dev": true,
+ "requires": {
+ "array-uniq": "^1.0.1"
+ }
+ },
+ "globby": {
+ "version": "6.1.0",
+ "resolved": "https://registry.nlark.com/globby/download/globby-6.1.0.tgz",
+ "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=",
+ "dev": true,
+ "requires": {
+ "array-union": "^1.0.1",
+ "glob": "^7.0.3",
+ "object-assign": "^4.0.1",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ }
+ }
+ },
+ "p-map": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/p-map/download/p-map-2.1.0.tgz?cache=0&sync_timestamp=1635931861684&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fp-map%2Fdownload%2Fp-map-2.1.0.tgz",
+ "integrity": "sha1-MQko/u+cnsxltosXaTAYpmXOoXU=",
+ "dev": true
+ },
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz",
+ "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ }
+ }
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
+ "dev": true
+ },
+ "delegates": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/delegates/download/delegates-1.0.0.tgz",
+ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
+ "dev": true
+ },
+ "depd": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz",
+ "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
+ "dev": true
+ },
+ "dependency-graph": {
+ "version": "0.11.0",
+ "resolved": "https://registry.nlark.com/dependency-graph/download/dependency-graph-0.11.0.tgz",
+ "integrity": "sha1-rAzn7WilTaIhZahel6AdU/XrLic=",
+ "dev": true
+ },
+ "desandro-matches-selector": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npm.taobao.org/desandro-matches-selector/download/desandro-matches-selector-2.0.2.tgz",
+ "integrity": "sha1-cXvu1NwT59jzdi9wem1YpndCGOE="
+ },
+ "destroy": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz",
+ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
+ "dev": true
+ },
+ "detect-browser": {
+ "version": "5.2.1",
+ "resolved": "https://registry.nlark.com/detect-browser/download/detect-browser-5.2.1.tgz?cache=0&sync_timestamp=1631836807281&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdetect-browser%2Fdownload%2Fdetect-browser-5.2.1.tgz",
+ "integrity": "sha1-uIT42E6PM7uHT/7RC0vuomEz/NE="
+ },
+ "detect-node": {
+ "version": "2.1.0",
+ "resolved": "https://registry.nlark.com/detect-node/download/detect-node-2.1.0.tgz?cache=0&sync_timestamp=1621146954463&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdetect-node%2Fdownload%2Fdetect-node-2.1.0.tgz",
+ "integrity": "sha1-yccHdaScPQO8LAbZpzvlUPl4+LE=",
+ "dev": true
+ },
+ "di": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npm.taobao.org/di/download/di-0.0.1.tgz",
+ "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=",
+ "dev": true
+ },
+ "diff": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npm.taobao.org/diff/download/diff-4.0.2.tgz",
+ "integrity": "sha1-YPOuy4nV+uUgwRqhnvwruYKq3n0=",
+ "dev": true
+ },
+ "dir-glob": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npm.taobao.org/dir-glob/download/dir-glob-3.0.1.tgz",
+ "integrity": "sha1-Vtv3PZkqSpO6FYT0U0Bj/S5BcX8=",
+ "dev": true,
+ "requires": {
+ "path-type": "^4.0.0"
+ }
+ },
+ "dns-equal": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/dns-equal/download/dns-equal-1.0.0.tgz",
+ "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=",
+ "dev": true
+ },
+ "dns-packet": {
+ "version": "1.3.4",
+ "resolved": "https://registry.nlark.com/dns-packet/download/dns-packet-1.3.4.tgz",
+ "integrity": "sha1-40VQZYJKJQe6iGxVqJljuxB97G8=",
+ "dev": true,
+ "requires": {
+ "ip": "^1.1.0",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "dns-txt": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npm.taobao.org/dns-txt/download/dns-txt-2.0.2.tgz",
+ "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=",
+ "dev": true,
+ "requires": {
+ "buffer-indexof": "^1.0.0"
+ }
+ },
+ "doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/doctrine/download/doctrine-3.0.0.tgz",
+ "integrity": "sha1-rd6+rXKmV023g2OdyHoSF3OXOWE=",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ },
+ "dom-serialize": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npm.taobao.org/dom-serialize/download/dom-serialize-2.2.1.tgz",
+ "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=",
+ "dev": true,
+ "requires": {
+ "custom-event": "~1.0.0",
+ "ent": "~2.2.0",
+ "extend": "^3.0.0",
+ "void-elements": "^2.0.0"
+ }
+ },
+ "dom-serializer": {
+ "version": "1.3.2",
+ "resolved": "https://registry.nlark.com/dom-serializer/download/dom-serializer-1.3.2.tgz?cache=0&sync_timestamp=1621256830355&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdom-serializer%2Fdownload%2Fdom-serializer-1.3.2.tgz",
+ "integrity": "sha1-YgZDfTLO767HFhgDIwx6ILwbTZE=",
+ "dev": true,
+ "requires": {
+ "domelementtype": "^2.0.1",
+ "domhandler": "^4.2.0",
+ "entities": "^2.0.0"
+ }
+ },
+ "domelementtype": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-2.2.0.tgz?cache=0&sync_timestamp=1617298545989&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-2.2.0.tgz",
+ "integrity": "sha1-mgtsJ4LtahxzI9QiZxg9+b2LHVc=",
+ "dev": true
+ },
+ "domhandler": {
+ "version": "4.2.2",
+ "resolved": "https://registry.nlark.com/domhandler/download/domhandler-4.2.2.tgz?cache=0&sync_timestamp=1630246778110&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdomhandler%2Fdownload%2Fdomhandler-4.2.2.tgz",
+ "integrity": "sha1-6CXXIdGahrjCAaNSZOImxnjudV8=",
+ "dev": true,
+ "requires": {
+ "domelementtype": "^2.2.0"
+ }
+ },
+ "domutils": {
+ "version": "2.8.0",
+ "resolved": "https://registry.nlark.com/domutils/download/domutils-2.8.0.tgz?cache=0&sync_timestamp=1630106606599&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdomutils%2Fdownload%2Fdomutils-2.8.0.tgz",
+ "integrity": "sha1-RDfe9dtuLR9dbuhZvZXKfQIEgTU=",
+ "dev": true,
+ "requires": {
+ "dom-serializer": "^1.0.1",
+ "domelementtype": "^2.2.0",
+ "domhandler": "^4.2.0"
+ }
+ },
+ "dot-prop": {
+ "version": "5.3.0",
+ "resolved": "https://registry.nlark.com/dot-prop/download/dot-prop-5.3.0.tgz",
+ "integrity": "sha1-kMzOcIzZzYLMTcjD3dmr3VWyDog=",
+ "dev": true,
+ "requires": {
+ "is-obj": "^2.0.0"
+ },
+ "dependencies": {
+ "is-obj": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/is-obj/download/is-obj-2.0.0.tgz",
+ "integrity": "sha1-Rz+wXZc3BeP9liBUUBjKjiLvSYI=",
+ "dev": true
+ }
+ }
+ },
+ "duplexer": {
+ "version": "0.1.2",
+ "resolved": "https://registry.nlark.com/duplexer/download/duplexer-0.1.2.tgz",
+ "integrity": "sha1-Or5DrvODX4rgd9E23c4PJ2sEAOY=",
+ "dev": true
+ },
+ "ecc-jsbn": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.2.tgz",
+ "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
+ "dev": true,
+ "requires": {
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.1.0"
+ }
+ },
+ "echarts": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmmirror.com/echarts/download/echarts-5.2.2.tgz",
+ "integrity": "sha1-7DyLKhUcu6cbo8LHz5svIEfOQ3A=",
+ "requires": {
+ "tslib": "2.3.0",
+ "zrender": "5.2.1"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.3.0",
+ "resolved": "https://registry.nlark.com/tslib/download/tslib-2.3.0.tgz?cache=0&sync_timestamp=1628722556410&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftslib%2Fdownload%2Ftslib-2.3.0.tgz",
+ "integrity": "sha1-gDuM2rPhK6WBpMpByIObuw2ssJ4="
+ }
+ }
+ },
+ "ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz",
+ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
+ "dev": true
+ },
+ "ejs": {
+ "version": "3.1.6",
+ "resolved": "https://registry.npmmirror.com/ejs/download/ejs-3.1.6.tgz",
+ "integrity": "sha1-W/0KBol0O7UmizVQzO7rvBcCgio=",
+ "dev": true,
+ "requires": {
+ "jake": "^10.6.1"
+ }
+ },
+ "electron-to-chromium": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmmirror.com/electron-to-chromium/download/electron-to-chromium-1.4.3.tgz",
+ "integrity": "sha512-hfpppjYhqIZB8jrNb0rNceQRkSnBN7QJl3W26O1jUv3F3BkQknqy1YTqVXkFnIcFtBc3Qnv5M7r5Lez2iOLgZA==",
+ "dev": true
+ },
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmmirror.com/emoji-regex/download/emoji-regex-8.0.0.tgz?cache=0&sync_timestamp=1632751333727&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Femoji-regex%2Fdownload%2Femoji-regex-8.0.0.tgz",
+ "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=",
+ "dev": true
+ },
+ "emojis-list": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-3.0.0.tgz",
+ "integrity": "sha1-VXBmIEatKeLpFucariYKvf9Pang=",
+ "dev": true
+ },
+ "encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.2.tgz",
+ "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
+ "dev": true
+ },
+ "encoding": {
+ "version": "0.1.13",
+ "resolved": "https://registry.npmmirror.com/encoding/download/encoding-0.1.13.tgz",
+ "integrity": "sha1-VldK/deR9UqOmyeFwFgqLSYhD6k=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "iconv-lite": "^0.6.2"
+ },
+ "dependencies": {
+ "iconv-lite": {
+ "version": "0.6.3",
+ "resolved": "https://registry.nlark.com/iconv-lite/download/iconv-lite-0.6.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ficonv-lite%2Fdownload%2Ficonv-lite-0.6.3.tgz",
+ "integrity": "sha1-pS+AvzjaGVLrXGgXkHGYcaGnJQE=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
+ }
+ }
+ }
+ },
+ "end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npm.taobao.org/end-of-stream/download/end-of-stream-1.4.4.tgz",
+ "integrity": "sha1-WuZKX0UFe682JuwU2gyl5LJDHrA=",
+ "dev": true,
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "engine.io": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmmirror.com/engine.io/download/engine.io-6.1.0.tgz?cache=0&sync_timestamp=1636357215103&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fengine.io%2Fdownload%2Fengine.io-6.1.0.tgz",
+ "integrity": "sha512-ErhZOVu2xweCjEfYcTdkCnEYUiZgkAcBBAhW4jbIvNG8SLU3orAqoJCiytZjYF7eTpVmmCrLDjLIEaPlUAs1uw==",
+ "dev": true,
+ "requires": {
+ "@types/cookie": "^0.4.1",
+ "@types/cors": "^2.8.12",
+ "@types/node": ">=10.0.0",
+ "accepts": "~1.3.4",
+ "base64id": "2.0.0",
+ "cookie": "~0.4.1",
+ "cors": "~2.8.5",
+ "debug": "~4.3.1",
+ "engine.io-parser": "~5.0.0",
+ "ws": "~8.2.3"
+ },
+ "dependencies": {
+ "cookie": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npm.taobao.org/cookie/download/cookie-0.4.1.tgz",
+ "integrity": "sha1-r9cT/ibr0hupXOth+agRblClN9E=",
+ "dev": true
+ },
+ "ws": {
+ "version": "8.2.3",
+ "resolved": "https://registry.npmmirror.com/ws/download/ws-8.2.3.tgz",
+ "integrity": "sha1-Y6VkVtsbBDZ9C3IaC4DK5ti+y7o=",
+ "dev": true
+ }
+ }
+ },
+ "engine.io-parser": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmmirror.com/engine.io-parser/download/engine.io-parser-5.0.2.tgz?cache=0&sync_timestamp=1636871351259&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fengine.io-parser%2Fdownload%2Fengine.io-parser-5.0.2.tgz",
+ "integrity": "sha512-wuiO7qO/OEkPJSFueuATIXtrxF7/6GTbAO9QLv7nnbjwZ5tYhLm9zxvLwxstRs0dcT0KUlWTjtIOs1T86jt12g==",
+ "dev": true,
+ "requires": {
+ "base64-arraybuffer": "~1.0.1"
+ }
+ },
+ "enhanced-resolve": {
+ "version": "5.8.3",
+ "resolved": "https://registry.nlark.com/enhanced-resolve/download/enhanced-resolve-5.8.3.tgz",
+ "integrity": "sha1-bVUtRlzOBCP1s9cYUR6lOCansvA=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.2.4",
+ "tapable": "^2.2.0"
+ }
+ },
+ "enquirer": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npm.taobao.org/enquirer/download/enquirer-2.3.6.tgz",
+ "integrity": "sha1-Kn/l3WNKHkElqXXsmU/1RW3Dc00=",
+ "dev": true,
+ "requires": {
+ "ansi-colors": "^4.1.1"
+ }
+ },
+ "ent": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npm.taobao.org/ent/download/ent-2.2.0.tgz",
+ "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=",
+ "dev": true
+ },
+ "entities": {
+ "version": "2.2.0",
+ "resolved": "https://registry.nlark.com/entities/download/entities-2.2.0.tgz?cache=0&sync_timestamp=1628508189267&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fentities%2Fdownload%2Fentities-2.2.0.tgz",
+ "integrity": "sha1-CY3JDruD2N/6CJ1VJWs1HTTE2lU=",
+ "dev": true
+ },
+ "env-paths": {
+ "version": "2.2.1",
+ "resolved": "https://registry.nlark.com/env-paths/download/env-paths-2.2.1.tgz?cache=0&sync_timestamp=1630095479786&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fenv-paths%2Fdownload%2Fenv-paths-2.2.1.tgz",
+ "integrity": "sha1-QgOZ1BbOH76bwKB8Yvpo1n/Q+PI=",
+ "dev": true
+ },
+ "err-code": {
+ "version": "2.0.3",
+ "resolved": "https://registry.nlark.com/err-code/download/err-code-2.0.3.tgz",
+ "integrity": "sha1-I8Lzt1b/38YI0w4nyalBAkgH5/k=",
+ "dev": true
+ },
+ "errno": {
+ "version": "0.1.8",
+ "resolved": "https://registry.nlark.com/errno/download/errno-0.1.8.tgz",
+ "integrity": "sha1-i7Ppx9Rjvkl2/4iPdrSAnrwugR8=",
+ "dev": true,
+ "requires": {
+ "prr": "~1.0.1"
+ }
+ },
+ "error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.nlark.com/error-ex/download/error-ex-1.3.2.tgz",
+ "integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=",
+ "dev": true,
+ "requires": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "es-abstract": {
+ "version": "1.19.1",
+ "resolved": "https://registry.npmmirror.com/es-abstract/download/es-abstract-1.19.1.tgz?cache=0&sync_timestamp=1633234313248&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fes-abstract%2Fdownload%2Fes-abstract-1.19.1.tgz",
+ "integrity": "sha1-1IhXlodpFpWd547aoN9FZicRXsM=",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.1.1",
+ "get-symbol-description": "^1.0.0",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.2",
+ "internal-slot": "^1.0.3",
+ "is-callable": "^1.2.4",
+ "is-negative-zero": "^2.0.1",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.1",
+ "is-string": "^1.0.7",
+ "is-weakref": "^1.0.1",
+ "object-inspect": "^1.11.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.2",
+ "string.prototype.trimend": "^1.0.4",
+ "string.prototype.trimstart": "^1.0.4",
+ "unbox-primitive": "^1.0.1"
+ }
+ },
+ "es-module-lexer": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmmirror.com/es-module-lexer/download/es-module-lexer-0.7.1.tgz?cache=0&sync_timestamp=1633645560577&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fes-module-lexer%2Fdownload%2Fes-module-lexer-0.7.1.tgz",
+ "integrity": "sha1-wsjg9G8t8GJ0za8N0/OzPgoLJn0=",
+ "dev": true
+ },
+ "es-to-primitive": {
+ "version": "1.2.1",
+ "resolved": "https://registry.nlark.com/es-to-primitive/download/es-to-primitive-1.2.1.tgz",
+ "integrity": "sha1-5VzUyc3BiLzvsDs2bHNjI/xciYo=",
+ "dev": true,
+ "requires": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ }
+ },
+ "es6-promise": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npm.taobao.org/es6-promise/download/es6-promise-3.3.1.tgz",
+ "integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=",
+ "dev": true
+ },
+ "es6-promisify": {
+ "version": "5.0.0",
+ "resolved": "https://registry.nlark.com/es6-promisify/download/es6-promisify-5.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fes6-promisify%2Fdownload%2Fes6-promisify-5.0.0.tgz",
+ "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
+ "dev": true,
+ "requires": {
+ "es6-promise": "^4.0.3"
+ },
+ "dependencies": {
+ "es6-promise": {
+ "version": "4.2.8",
+ "resolved": "https://registry.npm.taobao.org/es6-promise/download/es6-promise-4.2.8.tgz",
+ "integrity": "sha1-TrIVlMlyvEBVPSduUQU5FD21Pgo=",
+ "dev": true
+ }
+ }
+ },
+ "esbuild-android-arm64": {
+ "version": "0.13.8",
+ "resolved": "https://registry.npmmirror.com/esbuild-android-arm64/download/esbuild-android-arm64-0.13.8.tgz?cache=0&sync_timestamp=1637462928775&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fesbuild-android-arm64%2Fdownload%2Fesbuild-android-arm64-0.13.8.tgz",
+ "integrity": "sha1-wg6HXDyYFksf+6myhje9+W9ennw=",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-darwin-64": {
+ "version": "0.13.8",
+ "resolved": "https://registry.npmmirror.com/esbuild-darwin-64/download/esbuild-darwin-64-0.13.8.tgz",
+ "integrity": "sha1-9G5rRx3b9iJlI0gIpqGqkd8YpBc=",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-darwin-arm64": {
+ "version": "0.13.8",
+ "resolved": "https://registry.npmmirror.com/esbuild-darwin-arm64/download/esbuild-darwin-arm64-0.13.8.tgz",
+ "integrity": "sha1-qZEVemAT+s1PLhQVm32lJibJAVQ=",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-freebsd-64": {
+ "version": "0.13.8",
+ "resolved": "https://registry.npmmirror.com/esbuild-freebsd-64/download/esbuild-freebsd-64-0.13.8.tgz",
+ "integrity": "sha1-MBYB0uRDrUWJYONZtAKhfZUAvp0=",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-freebsd-arm64": {
+ "version": "0.13.8",
+ "resolved": "https://registry.npmmirror.com/esbuild-freebsd-arm64/download/esbuild-freebsd-arm64-0.13.8.tgz",
+ "integrity": "sha1-A5pjrMEuwIkgBsFH6iIeVfkSWp8=",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-linux-32": {
+ "version": "0.13.8",
+ "resolved": "https://registry.npmmirror.com/esbuild-linux-32/download/esbuild-linux-32-0.13.8.tgz",
+ "integrity": "sha1-xTe2fX5pS2C/onhlgUEoOMa6AoQ=",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-linux-64": {
+ "version": "0.13.8",
+ "resolved": "https://registry.npmmirror.com/esbuild-linux-64/download/esbuild-linux-64-0.13.8.tgz",
+ "integrity": "sha1-AJL8igZAAad3v6DjtCW7i+j5bmo=",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-linux-arm": {
+ "version": "0.13.8",
+ "resolved": "https://registry.npmmirror.com/esbuild-linux-arm/download/esbuild-linux-arm-0.13.8.tgz",
+ "integrity": "sha1-rWNPlr8pdVNpB665/bdaMZT03c4=",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-linux-arm64": {
+ "version": "0.13.8",
+ "resolved": "https://registry.npmmirror.com/esbuild-linux-arm64/download/esbuild-linux-arm64-0.13.8.tgz?cache=0&sync_timestamp=1637498766925&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fesbuild-linux-arm64%2Fdownload%2Fesbuild-linux-arm64-0.13.8.tgz",
+ "integrity": "sha1-XNPyu5JCEpcUgujbwlxK/QmygRA=",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-linux-mips64le": {
+ "version": "0.13.8",
+ "resolved": "https://registry.npmmirror.com/esbuild-linux-mips64le/download/esbuild-linux-mips64le-0.13.8.tgz",
+ "integrity": "sha1-V4V+3+v5v2V2bci+FjfyF5yZBXI=",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-linux-ppc64le": {
+ "version": "0.13.8",
+ "resolved": "https://registry.npmmirror.com/esbuild-linux-ppc64le/download/esbuild-linux-ppc64le-0.13.8.tgz?cache=0&sync_timestamp=1637462927819&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fesbuild-linux-ppc64le%2Fdownload%2Fesbuild-linux-ppc64le-0.13.8.tgz",
+ "integrity": "sha1-/bgqBZpbhrsQ+0IJG0689Ii5zUY=",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-netbsd-64": {
+ "version": "0.13.8",
+ "resolved": "https://registry.npmmirror.com/esbuild-netbsd-64/download/esbuild-netbsd-64-0.13.8.tgz",
+ "integrity": "sha1-14eecSPTssBHVOzovQYapoZt7v8=",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-openbsd-64": {
+ "version": "0.13.8",
+ "resolved": "https://registry.npmmirror.com/esbuild-openbsd-64/download/esbuild-openbsd-64-0.13.8.tgz?cache=0&sync_timestamp=1637462928360&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fesbuild-openbsd-64%2Fdownload%2Fesbuild-openbsd-64-0.13.8.tgz",
+ "integrity": "sha1-iLKAtssKP2rbYKvyf8UGxQajXPA=",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-sunos-64": {
+ "version": "0.13.8",
+ "resolved": "https://registry.npmmirror.com/esbuild-sunos-64/download/esbuild-sunos-64-0.13.8.tgz?cache=0&sync_timestamp=1637498783394&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fesbuild-sunos-64%2Fdownload%2Fesbuild-sunos-64-0.13.8.tgz",
+ "integrity": "sha1-Iprnx3AxlqWKzQ8Cka2b69qBXWM=",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-wasm": {
+ "version": "0.13.8",
+ "resolved": "https://registry.npmmirror.com/esbuild-wasm/download/esbuild-wasm-0.13.8.tgz",
+ "integrity": "sha1-80E0wYf/z8ItR26SWRf3C6tA+LA=",
+ "dev": true
+ },
+ "esbuild-windows-32": {
+ "version": "0.13.8",
+ "resolved": "https://registry.npmmirror.com/esbuild-windows-32/download/esbuild-windows-32-0.13.8.tgz",
+ "integrity": "sha1-iS0JPjKiHAyRNeWg/9w4Cutw52M=",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-windows-64": {
+ "version": "0.13.8",
+ "resolved": "https://registry.npmmirror.com/esbuild-windows-64/download/esbuild-windows-64-0.13.8.tgz?cache=0&sync_timestamp=1637462927131&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fesbuild-windows-64%2Fdownload%2Fesbuild-windows-64-0.13.8.tgz",
+ "integrity": "sha1-fe/Y15rju35vU7ZacZC+fa+QFoY=",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-windows-arm64": {
+ "version": "0.13.8",
+ "resolved": "https://registry.npmmirror.com/esbuild-windows-arm64/download/esbuild-windows-arm64-0.13.8.tgz",
+ "integrity": "sha1-5ZrgBElv2KWrZ7/HlFouR0gNb7k=",
+ "dev": true,
+ "optional": true
+ },
+ "escalade": {
+ "version": "3.1.1",
+ "resolved": "https://registry.nlark.com/escalade/download/escalade-3.1.1.tgz",
+ "integrity": "sha1-2M/ccACWXFoBdLSoLqpcBVJ0LkA=",
+ "dev": true
+ },
+ "escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz",
+ "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz?cache=0&sync_timestamp=1618677243201&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true
+ },
+ "eslint": {
+ "version": "7.32.0",
+ "resolved": "https://registry.npmmirror.com/eslint/download/eslint-7.32.0.tgz?cache=0&sync_timestamp=1637475730061&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint%2Fdownload%2Feslint-7.32.0.tgz",
+ "integrity": "sha1-xtMooUvj+wjI0dIeEsAv23oqgS0=",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "7.12.11",
+ "@eslint/eslintrc": "^0.4.3",
+ "@humanwhocodes/config-array": "^0.5.0",
+ "ajv": "^6.10.0",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.2",
+ "debug": "^4.0.1",
+ "doctrine": "^3.0.0",
+ "enquirer": "^2.3.5",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^5.1.1",
+ "eslint-utils": "^2.1.0",
+ "eslint-visitor-keys": "^2.0.0",
+ "espree": "^7.3.1",
+ "esquery": "^1.4.0",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^6.0.1",
+ "functional-red-black-tree": "^1.0.1",
+ "glob-parent": "^5.1.2",
+ "globals": "^13.6.0",
+ "ignore": "^4.0.6",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "js-yaml": "^3.13.1",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.0.4",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.1",
+ "progress": "^2.0.0",
+ "regexpp": "^3.1.0",
+ "semver": "^7.2.1",
+ "strip-ansi": "^6.0.0",
+ "strip-json-comments": "^3.1.0",
+ "table": "^6.0.9",
+ "text-table": "^0.2.0",
+ "v8-compile-cache": "^2.0.3"
+ },
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.12.11",
+ "resolved": "https://registry.npmmirror.com/@babel/code-frame/download/@babel/code-frame-7.12.11.tgz?cache=0&sync_timestamp=1635561808745&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.12.11.tgz",
+ "integrity": "sha1-9K1DWqJj25NbjxDyxVLSP7cWpj8=",
+ "dev": true,
+ "requires": {
+ "@babel/highlight": "^7.10.4"
+ }
+ },
+ "ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmmirror.com/ajv/download/ajv-6.12.6.tgz?cache=0&sync_timestamp=1637522259668&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fajv%2Fdownload%2Fajv-6.12.6.tgz",
+ "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=",
+ "dev": true,
+ "requires": {
+ "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-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz",
+ "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz",
+ "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
+ "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
+ "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
+ "dev": true
+ },
+ "cross-spawn": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-7.0.3.tgz",
+ "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=",
+ "dev": true,
+ "requires": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ }
+ },
+ "escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-4.0.0.tgz?cache=0&sync_timestamp=1618677243201&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-4.0.0.tgz",
+ "integrity": "sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ=",
+ "dev": true
+ },
+ "eslint-utils": {
+ "version": "2.1.0",
+ "resolved": "https://registry.nlark.com/eslint-utils/download/eslint-utils-2.1.0.tgz?cache=0&sync_timestamp=1620975524854&other_urls=https%3A%2F%2Fregistry.nlark.com%2Feslint-utils%2Fdownload%2Feslint-utils-2.1.0.tgz",
+ "integrity": "sha1-0t5eA0JOcH3BDHQGjd7a5wh0Gyc=",
+ "dev": true,
+ "requires": {
+ "eslint-visitor-keys": "^1.1.0"
+ },
+ "dependencies": {
+ "eslint-visitor-keys": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/download/eslint-visitor-keys-1.3.0.tgz",
+ "integrity": "sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=",
+ "dev": true
+ }
+ }
+ },
+ "glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmmirror.com/glob-parent/download/glob-parent-5.1.2.tgz?cache=0&sync_timestamp=1632953810778&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fglob-parent%2Fdownload%2Fglob-parent-5.1.2.tgz",
+ "integrity": "sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ=",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ },
+ "globals": {
+ "version": "13.12.0",
+ "resolved": "https://registry.npmmirror.com/globals/download/globals-13.12.0.tgz?cache=0&sync_timestamp=1635390798667&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fglobals%2Fdownload%2Fglobals-13.12.0.tgz",
+ "integrity": "sha1-TXM3YDBCMKAILtluIeXFZfiYCJ4=",
+ "dev": true,
+ "requires": {
+ "type-fest": "^0.20.2"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz",
+ "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=",
+ "dev": true
+ },
+ "ignore": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmmirror.com/ignore/download/ignore-4.0.6.tgz?cache=0&sync_timestamp=1635926632542&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fignore%2Fdownload%2Fignore-4.0.6.tgz",
+ "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=",
+ "dev": true
+ },
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=",
+ "dev": true
+ },
+ "path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-3.1.1.tgz?cache=0&sync_timestamp=1617971632960&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-3.1.1.tgz",
+ "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=",
+ "dev": true
+ },
+ "shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-2.0.0.tgz",
+ "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "^3.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.nlark.com/shebang-regex/download/shebang-regex-3.0.0.tgz?cache=0&sync_timestamp=1628896299850&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fshebang-regex%2Fdownload%2Fshebang-regex-3.0.0.tgz",
+ "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmmirror.com/supports-color/download/supports-color-7.2.0.tgz",
+ "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmmirror.com/type-fest/download/type-fest-0.20.2.tgz?cache=0&sync_timestamp=1637149878210&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ftype-fest%2Fdownload%2Ftype-fest-0.20.2.tgz",
+ "integrity": "sha1-G/IH9LKPkVg2ZstfvTJ4hzAc1fQ=",
+ "dev": true
+ },
+ "which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npm.taobao.org/which/download/which-2.0.2.tgz",
+ "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ }
+ }
+ },
+ "eslint-config-prettier": {
+ "version": "8.3.0",
+ "resolved": "https://registry.nlark.com/eslint-config-prettier/download/eslint-config-prettier-8.3.0.tgz",
+ "integrity": "sha1-90cbILb+ipqSVMxoRFQgKIai3Xo=",
+ "dev": true
+ },
+ "eslint-import-resolver-node": {
+ "version": "0.3.6",
+ "resolved": "https://registry.nlark.com/eslint-import-resolver-node/download/eslint-import-resolver-node-0.3.6.tgz?cache=0&sync_timestamp=1629046642917&other_urls=https%3A%2F%2Fregistry.nlark.com%2Feslint-import-resolver-node%2Fdownload%2Feslint-import-resolver-node-0.3.6.tgz",
+ "integrity": "sha1-QEi5WDldqJZoJSAB29nsprg7rL0=",
+ "dev": true,
+ "requires": {
+ "debug": "^3.2.7",
+ "resolve": "^1.20.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmmirror.com/debug/download/debug-3.2.7.tgz",
+ "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ }
+ }
+ },
+ "eslint-module-utils": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmmirror.com/eslint-module-utils/download/eslint-module-utils-2.7.1.tgz?cache=0&sync_timestamp=1634151608499&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-module-utils%2Fdownload%2Feslint-module-utils-2.7.1.tgz",
+ "integrity": "sha1-tDUAHJ+N1Kt/bQ78rkuWltTCS3w=",
+ "dev": true,
+ "requires": {
+ "debug": "^3.2.7",
+ "find-up": "^2.1.0",
+ "pkg-dir": "^2.0.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmmirror.com/debug/download/debug-3.2.7.tgz",
+ "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/find-up/download/find-up-2.1.0.tgz?cache=0&sync_timestamp=1633618766404&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ffind-up%2Fdownload%2Ffind-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "dev": true,
+ "requires": {
+ "locate-path": "^2.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/locate-path/download/locate-path-2.0.0.tgz?cache=0&sync_timestamp=1629895724478&other_urls=https%3A%2F%2Fregistry.nlark.com%2Flocate-path%2Fdownload%2Flocate-path-2.0.0.tgz",
+ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+ "dev": true,
+ "requires": {
+ "p-locate": "^2.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "p-limit": {
+ "version": "1.3.0",
+ "resolved": "https://registry.nlark.com/p-limit/download/p-limit-1.3.0.tgz?cache=0&sync_timestamp=1628812766275&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fp-limit%2Fdownload%2Fp-limit-1.3.0.tgz",
+ "integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=",
+ "dev": true,
+ "requires": {
+ "p-try": "^1.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/p-locate/download/p-locate-2.0.0.tgz",
+ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+ "dev": true,
+ "requires": {
+ "p-limit": "^1.1.0"
+ }
+ },
+ "p-try": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/p-try/download/p-try-1.0.0.tgz?cache=0&sync_timestamp=1633364462890&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fp-try%2Fdownload%2Fp-try-1.0.0.tgz",
+ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
+ "dev": true
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.nlark.com/path-exists/download/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ },
+ "pkg-dir": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/pkg-dir/download/pkg-dir-2.0.0.tgz?cache=0&sync_timestamp=1633498116014&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpkg-dir%2Fdownload%2Fpkg-dir-2.0.0.tgz",
+ "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=",
+ "dev": true,
+ "requires": {
+ "find-up": "^2.1.0"
+ }
+ }
+ }
+ },
+ "eslint-plugin-import": {
+ "version": "2.24.2",
+ "resolved": "https://registry.npmmirror.com/eslint-plugin-import/download/eslint-plugin-import-2.24.2.tgz?cache=0&sync_timestamp=1636529205526&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-plugin-import%2Fdownload%2Feslint-plugin-import-2.24.2.tgz",
+ "integrity": "sha1-LIzS40HziFkY7ifRhHmRCt57tNo=",
+ "dev": true,
+ "requires": {
+ "array-includes": "^3.1.3",
+ "array.prototype.flat": "^1.2.4",
+ "debug": "^2.6.9",
+ "doctrine": "^2.1.0",
+ "eslint-import-resolver-node": "^0.3.6",
+ "eslint-module-utils": "^2.6.2",
+ "find-up": "^2.0.0",
+ "has": "^1.0.3",
+ "is-core-module": "^2.6.0",
+ "minimatch": "^3.0.4",
+ "object.values": "^1.1.4",
+ "pkg-up": "^2.0.0",
+ "read-pkg-up": "^3.0.0",
+ "resolve": "^1.20.0",
+ "tsconfig-paths": "^3.11.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmmirror.com/debug/download/debug-2.6.9.tgz",
+ "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "doctrine": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/doctrine/download/doctrine-2.1.0.tgz",
+ "integrity": "sha1-XNAfwQFiG0LEzX9dGmYkNxbT850=",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ },
+ "find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/find-up/download/find-up-2.1.0.tgz?cache=0&sync_timestamp=1633618766404&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ffind-up%2Fdownload%2Ffind-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "dev": true,
+ "requires": {
+ "locate-path": "^2.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/locate-path/download/locate-path-2.0.0.tgz?cache=0&sync_timestamp=1629895724478&other_urls=https%3A%2F%2Fregistry.nlark.com%2Flocate-path%2Fdownload%2Flocate-path-2.0.0.tgz",
+ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+ "dev": true,
+ "requires": {
+ "p-locate": "^2.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ },
+ "p-limit": {
+ "version": "1.3.0",
+ "resolved": "https://registry.nlark.com/p-limit/download/p-limit-1.3.0.tgz?cache=0&sync_timestamp=1628812766275&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fp-limit%2Fdownload%2Fp-limit-1.3.0.tgz",
+ "integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=",
+ "dev": true,
+ "requires": {
+ "p-try": "^1.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/p-locate/download/p-locate-2.0.0.tgz",
+ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+ "dev": true,
+ "requires": {
+ "p-limit": "^1.1.0"
+ }
+ },
+ "p-try": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/p-try/download/p-try-1.0.0.tgz?cache=0&sync_timestamp=1633364462890&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fp-try%2Fdownload%2Fp-try-1.0.0.tgz",
+ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
+ "dev": true
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.nlark.com/path-exists/download/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ }
+ }
+ },
+ "eslint-plugin-jsdoc": {
+ "version": "36.0.8",
+ "resolved": "https://registry.npmmirror.com/eslint-plugin-jsdoc/download/eslint-plugin-jsdoc-36.0.8.tgz",
+ "integrity": "sha1-zXL3ZZPI+zNiN0sAUtTUmycRQIo=",
+ "dev": true,
+ "requires": {
+ "@es-joy/jsdoccomment": "0.10.8",
+ "comment-parser": "1.2.4",
+ "debug": "^4.3.2",
+ "esquery": "^1.4.0",
+ "jsdoc-type-pratt-parser": "^1.1.1",
+ "lodash": "^4.17.21",
+ "regextras": "^0.8.0",
+ "semver": "^7.3.5",
+ "spdx-expression-parse": "^3.0.1"
+ }
+ },
+ "eslint-plugin-prefer-arrow": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npm.taobao.org/eslint-plugin-prefer-arrow/download/eslint-plugin-prefer-arrow-1.2.3.tgz?cache=0&sync_timestamp=1611628691162&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-plugin-prefer-arrow%2Fdownload%2Feslint-plugin-prefer-arrow-1.2.3.tgz",
+ "integrity": "sha1-5/uz+kzYT/EBW5xRrYZVDlUEEEE=",
+ "dev": true
+ },
+ "eslint-plugin-prettier": {
+ "version": "3.4.1",
+ "resolved": "https://registry.npmmirror.com/eslint-plugin-prettier/download/eslint-plugin-prettier-3.4.1.tgz",
+ "integrity": "sha1-6d2yAO+289Bf/oOxZlpxavSjh+U=",
+ "dev": true,
+ "requires": {
+ "prettier-linter-helpers": "^1.0.0"
+ }
+ },
+ "eslint-scope": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmmirror.com/eslint-scope/download/eslint-scope-5.1.1.tgz?cache=0&sync_timestamp=1637466929956&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-scope%2Fdownload%2Feslint-scope-5.1.1.tgz",
+ "integrity": "sha1-54blmmbLkrP2wfsNUIqrF0hI9Iw=",
+ "dev": true,
+ "requires": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ }
+ },
+ "eslint-utils": {
+ "version": "3.0.0",
+ "resolved": "https://registry.nlark.com/eslint-utils/download/eslint-utils-3.0.0.tgz?cache=0&sync_timestamp=1620975524854&other_urls=https%3A%2F%2Fregistry.nlark.com%2Feslint-utils%2Fdownload%2Feslint-utils-3.0.0.tgz",
+ "integrity": "sha1-iuuvrOc0W7M1WdsKHxOh0tSMNnI=",
+ "dev": true,
+ "requires": {
+ "eslint-visitor-keys": "^2.0.0"
+ }
+ },
+ "eslint-visitor-keys": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/download/eslint-visitor-keys-2.1.0.tgz",
+ "integrity": "sha1-9lMoJZMFknOSyTjtROsKXJsr0wM=",
+ "dev": true
+ },
+ "espree": {
+ "version": "7.3.1",
+ "resolved": "https://registry.npmmirror.com/espree/download/espree-7.3.1.tgz?cache=0&sync_timestamp=1637466456948&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fespree%2Fdownload%2Fespree-7.3.1.tgz",
+ "integrity": "sha1-8t8zC3Usb1UBn4vYm3ZgA5wbu7Y=",
+ "dev": true,
+ "requires": {
+ "acorn": "^7.4.0",
+ "acorn-jsx": "^5.3.1",
+ "eslint-visitor-keys": "^1.3.0"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "7.4.1",
+ "resolved": "https://registry.npmmirror.com/acorn/download/acorn-7.4.1.tgz?cache=0&sync_timestamp=1637225522161&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Facorn%2Fdownload%2Facorn-7.4.1.tgz",
+ "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=",
+ "dev": true
+ },
+ "eslint-visitor-keys": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/download/eslint-visitor-keys-1.3.0.tgz",
+ "integrity": "sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=",
+ "dev": true
+ }
+ }
+ },
+ "esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npm.taobao.org/esprima/download/esprima-4.0.1.tgz",
+ "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=",
+ "dev": true
+ },
+ "esquery": {
+ "version": "1.4.0",
+ "resolved": "https://registry.nlark.com/esquery/download/esquery-1.4.0.tgz",
+ "integrity": "sha1-IUj/w4uC6McFff7UhCWz5h8PJKU=",
+ "dev": true,
+ "requires": {
+ "estraverse": "^5.1.0"
+ },
+ "dependencies": {
+ "estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmmirror.com/estraverse/download/estraverse-5.3.0.tgz?cache=0&sync_timestamp=1635237716974&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Festraverse%2Fdownload%2Festraverse-5.3.0.tgz",
+ "integrity": "sha1-LupSkHAvJquP5TcDcP+GyWXSESM=",
+ "dev": true
+ }
+ }
+ },
+ "esrecurse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npm.taobao.org/esrecurse/download/esrecurse-4.3.0.tgz",
+ "integrity": "sha1-eteWTWeauyi+5yzsY3WLHF0smSE=",
+ "dev": true,
+ "requires": {
+ "estraverse": "^5.2.0"
+ },
+ "dependencies": {
+ "estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmmirror.com/estraverse/download/estraverse-5.3.0.tgz?cache=0&sync_timestamp=1635237716974&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Festraverse%2Fdownload%2Festraverse-5.3.0.tgz",
+ "integrity": "sha1-LupSkHAvJquP5TcDcP+GyWXSESM=",
+ "dev": true
+ }
+ }
+ },
+ "estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmmirror.com/estraverse/download/estraverse-4.3.0.tgz?cache=0&sync_timestamp=1635237716974&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Festraverse%2Fdownload%2Festraverse-4.3.0.tgz",
+ "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=",
+ "dev": true
+ },
+ "esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.nlark.com/esutils/download/esutils-2.0.3.tgz",
+ "integrity": "sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=",
+ "dev": true
+ },
+ "eta": {
+ "version": "1.12.3",
+ "resolved": "https://registry.nlark.com/eta/download/eta-1.12.3.tgz",
+ "integrity": "sha1-KYLQit++85+fpQ4vvULXM35zOLE=",
+ "dev": true
+ },
+ "etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.nlark.com/etag/download/etag-1.8.1.tgz?cache=0&sync_timestamp=1618847044821&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fetag%2Fdownload%2Fetag-1.8.1.tgz",
+ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
+ "dev": true
+ },
+ "ev-emitter": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npm.taobao.org/ev-emitter/download/ev-emitter-1.1.1.tgz",
+ "integrity": "sha1-jxiwzlx2pdGAF/ccCnlcZbkTjyo="
+ },
+ "eventemitter-asyncresource": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/eventemitter-asyncresource/download/eventemitter-asyncresource-1.0.0.tgz",
+ "integrity": "sha1-c0/y5Ev0SOYn93SPkF1r3Ve9tls=",
+ "dev": true
+ },
+ "eventemitter3": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npm.taobao.org/eventemitter3/download/eventemitter3-2.0.3.tgz",
+ "integrity": "sha1-teEHm1n7XhuidxwKmTvgYKWMmbo="
+ },
+ "events": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmmirror.com/events/download/events-3.3.0.tgz",
+ "integrity": "sha1-Mala0Kkk4tLEGagTrrLE6HjqdAA=",
+ "dev": true
+ },
+ "eventsource": {
+ "version": "1.1.0",
+ "resolved": "https://registry.nlark.com/eventsource/download/eventsource-1.1.0.tgz",
+ "integrity": "sha1-AOjKfJIQnpSw3fMtrGd9hBAoz68=",
+ "dev": true,
+ "requires": {
+ "original": "^1.0.0"
+ }
+ },
+ "execa": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/execa/download/execa-1.0.0.tgz?cache=0&sync_timestamp=1637147245057&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz",
+ "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^6.0.0",
+ "get-stream": "^4.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
+ }
+ },
+ "execall": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/execall/download/execall-2.0.0.tgz?cache=0&sync_timestamp=1617892843041&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexecall%2Fdownload%2Fexecall-2.0.0.tgz",
+ "integrity": "sha1-FqBrX+UJnffQC+XZwG7s3tFmO0U=",
+ "dev": true,
+ "requires": {
+ "clone-regexp": "^2.1.0"
+ }
+ },
+ "exit": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npm.taobao.org/exit/download/exit-0.1.2.tgz",
+ "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
+ "dev": true
+ },
+ "exit-on-epipe": {
+ "version": "1.0.1",
+ "resolved": "https://registry.nlark.com/exit-on-epipe/download/exit-on-epipe-1.0.1.tgz",
+ "integrity": "sha1-C92S6H1ShdJn2qgXHQ6wYVlolpI="
+ },
+ "expand-brackets": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-2.1.4.tgz",
+ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+ "dev": true,
+ "requires": {
+ "debug": "^2.3.3",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "posix-character-classes": "^0.1.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmmirror.com/debug/download/debug-2.6.9.tgz",
+ "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.nlark.com/define-property/download/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "express": {
+ "version": "4.17.1",
+ "resolved": "https://registry.npm.taobao.org/express/download/express-4.17.1.tgz",
+ "integrity": "sha1-RJH8OGBc9R+GKdOcK10Cb5ikwTQ=",
+ "dev": true,
+ "requires": {
+ "accepts": "~1.3.7",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.19.0",
+ "content-disposition": "0.5.3",
+ "content-type": "~1.0.4",
+ "cookie": "0.4.0",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "finalhandler": "~1.1.2",
+ "fresh": "0.5.2",
+ "merge-descriptors": "1.0.1",
+ "methods": "~1.1.2",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "path-to-regexp": "0.1.7",
+ "proxy-addr": "~2.0.5",
+ "qs": "6.7.0",
+ "range-parser": "~1.2.1",
+ "safe-buffer": "5.1.2",
+ "send": "0.17.1",
+ "serve-static": "1.14.1",
+ "setprototypeof": "1.1.1",
+ "statuses": "~1.5.0",
+ "type-is": "~1.6.18",
+ "utils-merge": "1.0.1",
+ "vary": "~1.1.2"
+ },
+ "dependencies": {
+ "array-flatten": {
+ "version": "1.1.1",
+ "resolved": "https://registry.nlark.com/array-flatten/download/array-flatten-1.1.1.tgz",
+ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
+ "dev": true
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmmirror.com/debug/download/debug-2.6.9.tgz",
+ "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.nlark.com/extend/download/extend-3.0.2.tgz",
+ "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo="
+ },
+ "extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-3.0.2.tgz",
+ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+ "dev": true,
+ "requires": {
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
+ },
+ "dependencies": {
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz",
+ "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=",
+ "dev": true,
+ "requires": {
+ "is-plain-object": "^2.0.4"
+ }
+ }
+ }
+ },
+ "external-editor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.nlark.com/external-editor/download/external-editor-3.1.0.tgz",
+ "integrity": "sha1-ywP3QL764D6k0oPK7SdBqD8zVJU=",
+ "dev": true,
+ "requires": {
+ "chardet": "^0.7.0",
+ "iconv-lite": "^0.4.24",
+ "tmp": "^0.0.33"
+ }
+ },
+ "extglob": {
+ "version": "2.0.4",
+ "resolved": "https://registry.nlark.com/extglob/download/extglob-2.0.4.tgz",
+ "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=",
+ "dev": true,
+ "requires": {
+ "array-unique": "^0.3.2",
+ "define-property": "^1.0.0",
+ "expand-brackets": "^2.1.4",
+ "extend-shallow": "^2.0.1",
+ "fragment-cache": "^0.2.1",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/define-property/download/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz",
+ "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ }
+ }
+ },
+ "extsprintf": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmmirror.com/extsprintf/download/extsprintf-1.3.0.tgz?cache=0&sync_timestamp=1635889740043&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fextsprintf%2Fdownload%2Fextsprintf-1.3.0.tgz",
+ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
+ "dev": true
+ },
+ "fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU="
+ },
+ "fast-diff": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npm.taobao.org/fast-diff/download/fast-diff-1.1.2.tgz",
+ "integrity": "sha1-S2LEK44D3j+EhGC2OQeZIGldAVQ="
+ },
+ "fast-glob": {
+ "version": "3.2.7",
+ "resolved": "https://registry.nlark.com/fast-glob/download/fast-glob-3.2.7.tgz?cache=0&sync_timestamp=1625773305786&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffast-glob%2Fdownload%2Ffast-glob-3.2.7.tgz",
+ "integrity": "sha1-/Wy3otfpqnp4RhEehaGW1rL3ZqE=",
+ "dev": true,
+ "requires": {
+ "@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"
+ },
+ "dependencies": {
+ "glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmmirror.com/glob-parent/download/glob-parent-5.1.2.tgz?cache=0&sync_timestamp=1632953810778&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fglob-parent%2Fdownload%2Fglob-parent-5.1.2.tgz",
+ "integrity": "sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ=",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ }
+ }
+ },
+ "fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=",
+ "dev": true
+ },
+ "fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npm.taobao.org/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
+ "dev": true
+ },
+ "fast-safe-stringify": {
+ "version": "2.1.1",
+ "resolved": "https://registry.nlark.com/fast-safe-stringify/download/fast-safe-stringify-2.1.1.tgz?cache=0&sync_timestamp=1631085668938&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffast-safe-stringify%2Fdownload%2Ffast-safe-stringify-2.1.1.tgz",
+ "integrity": "sha1-xAaoO25w2eNc47MKgRQd8wrrqIQ=",
+ "dev": true
+ },
+ "fastest-levenshtein": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npm.taobao.org/fastest-levenshtein/download/fastest-levenshtein-1.0.12.tgz",
+ "integrity": "sha1-mZD306iMxan/0fF0V0UlFwDUl+I=",
+ "dev": true
+ },
+ "fastq": {
+ "version": "1.13.0",
+ "resolved": "https://registry.nlark.com/fastq/download/fastq-1.13.0.tgz",
+ "integrity": "sha1-YWdg+Ip1Jr38WWt8q4wYk4w2uYw=",
+ "dev": true,
+ "requires": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "faye-websocket": {
+ "version": "0.11.4",
+ "resolved": "https://registry.nlark.com/faye-websocket/download/faye-websocket-0.11.4.tgz",
+ "integrity": "sha1-fw2Sdc/dhqHJY9yLZfzEUe3Lsdo=",
+ "dev": true,
+ "requires": {
+ "websocket-driver": ">=0.5.1"
+ }
+ },
+ "fecha": {
+ "version": "4.2.1",
+ "resolved": "https://registry.nlark.com/fecha/download/fecha-4.2.1.tgz",
+ "integrity": "sha1-CoOtj4bvYqCR4iu1oDnNA9I+7M4="
+ },
+ "figures": {
+ "version": "3.2.0",
+ "resolved": "https://registry.nlark.com/figures/download/figures-3.2.0.tgz?cache=0&sync_timestamp=1625254307578&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffigures%2Fdownload%2Ffigures-3.2.0.tgz",
+ "integrity": "sha1-YlwYvSk8YE3EqN2y/r8MiDQXRq8=",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "^1.0.5"
+ }
+ },
+ "file-entry-cache": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npm.taobao.org/file-entry-cache/download/file-entry-cache-6.0.1.tgz?cache=0&sync_timestamp=1613794272556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-entry-cache%2Fdownload%2Ffile-entry-cache-6.0.1.tgz",
+ "integrity": "sha1-IRst2WWcsDlLBz5zI6w8kz1SICc=",
+ "dev": true,
+ "requires": {
+ "flat-cache": "^3.0.4"
+ }
+ },
+ "file-saver": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npm.taobao.org/file-saver/download/file-saver-2.0.5.tgz",
+ "integrity": "sha1-1hz+LOBZ9BTYmendbUEH7iVnDDg="
+ },
+ "filelist": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npm.taobao.org/filelist/download/filelist-1.0.2.tgz",
+ "integrity": "sha1-gCAvIUYtTRwuIUEZsYB8G8A4Dls=",
+ "dev": true,
+ "requires": {
+ "minimatch": "^3.0.4"
+ }
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.nlark.com/fill-range/download/fill-range-7.0.1.tgz",
+ "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "finalhandler": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npm.taobao.org/finalhandler/download/finalhandler-1.1.2.tgz",
+ "integrity": "sha1-t+fQAP/RGTjQ/bBTUG9uur6fWH0=",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "statuses": "~1.5.0",
+ "unpipe": "~1.0.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmmirror.com/debug/download/debug-2.6.9.tgz",
+ "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "find-cache-dir": {
+ "version": "3.3.1",
+ "resolved": "https://registry.nlark.com/find-cache-dir/download/find-cache-dir-3.3.1.tgz?cache=0&sync_timestamp=1630260009898&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffind-cache-dir%2Fdownload%2Ffind-cache-dir-3.3.1.tgz",
+ "integrity": "sha1-ibM/rUpGcNqpT4Vff74x1thP6IA=",
+ "dev": true,
+ "requires": {
+ "commondir": "^1.0.1",
+ "make-dir": "^3.0.2",
+ "pkg-dir": "^4.1.0"
+ }
+ },
+ "find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmmirror.com/find-up/download/find-up-4.1.0.tgz?cache=0&sync_timestamp=1633618766404&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ffind-up%2Fdownload%2Ffind-up-4.1.0.tgz",
+ "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=",
+ "dev": true,
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "fizzy-ui-utils": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npm.taobao.org/fizzy-ui-utils/download/fizzy-ui-utils-2.0.7.tgz",
+ "integrity": "sha1-ffRdzE6zdKCLZdObuaS+7fczBQU=",
+ "requires": {
+ "desandro-matches-selector": "^2.0.0"
+ }
+ },
+ "flat-cache": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npm.taobao.org/flat-cache/download/flat-cache-3.0.4.tgz",
+ "integrity": "sha1-YbAzgwKy/p+Vfcwy/CqH8cMEixE=",
+ "dev": true,
+ "requires": {
+ "flatted": "^3.1.0",
+ "rimraf": "^3.0.2"
+ }
+ },
+ "flatted": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmmirror.com/flatted/download/flatted-3.2.4.tgz?cache=0&sync_timestamp=1636473847692&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fflatted%2Fdownload%2Fflatted-3.2.4.tgz",
+ "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==",
+ "dev": true
+ },
+ "flatten": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/flatten/download/flatten-1.0.3.tgz",
+ "integrity": "sha1-wSg6yfJ7Noq8HjbR/3sEUBowNWs=",
+ "dev": true
+ },
+ "follow-redirects": {
+ "version": "1.14.5",
+ "resolved": "https://registry.npmmirror.com/follow-redirects/download/follow-redirects-1.14.5.tgz?cache=0&sync_timestamp=1635857764332&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.14.5.tgz",
+ "integrity": "sha1-8JpYSJgdPHcrU5Iwl3hSP42Fw4E=",
+ "dev": true
+ },
+ "for-in": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npm.taobao.org/for-in/download/for-in-1.0.2.tgz",
+ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
+ "dev": true
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz",
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
+ "dev": true
+ },
+ "form-data": {
+ "version": "2.3.3",
+ "resolved": "https://registry.nlark.com/form-data/download/form-data-2.3.3.tgz",
+ "integrity": "sha1-3M5SwF9kTymManq5Nr1yTO/786Y=",
+ "dev": true,
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.6",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "forwarded": {
+ "version": "0.2.0",
+ "resolved": "https://registry.nlark.com/forwarded/download/forwarded-0.2.0.tgz?cache=0&sync_timestamp=1622503408398&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fforwarded%2Fdownload%2Fforwarded-0.2.0.tgz",
+ "integrity": "sha1-ImmTZCiq1MFcfr6XeahL8LKoGBE=",
+ "dev": true
+ },
+ "frac": {
+ "version": "1.1.2",
+ "resolved": "https://registry.nlark.com/frac/download/frac-1.1.2.tgz",
+ "integrity": "sha1-PXT39keMiKG1AgMG10fcYxPHTQs="
+ },
+ "fragment-cache": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npm.taobao.org/fragment-cache/download/fragment-cache-0.2.1.tgz",
+ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
+ "dev": true,
+ "requires": {
+ "map-cache": "^0.2.2"
+ }
+ },
+ "fresh": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npm.taobao.org/fresh/download/fresh-0.5.2.tgz",
+ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
+ "dev": true
+ },
+ "fs-extra": {
+ "version": "9.1.0",
+ "resolved": "https://registry.nlark.com/fs-extra/download/fs-extra-9.1.0.tgz",
+ "integrity": "sha1-WVRGDHZKjaIJS6NVS/g55rmnyG0=",
+ "dev": true,
+ "requires": {
+ "at-least-node": "^1.0.0",
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ }
+ },
+ "fs-minipass": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/fs-minipass/download/fs-minipass-2.1.0.tgz",
+ "integrity": "sha1-f1A2/b8SxjwWkZDL5BmchSJx+fs=",
+ "dev": true,
+ "requires": {
+ "minipass": "^3.0.0"
+ }
+ },
+ "fs-monkey": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npm.taobao.org/fs-monkey/download/fs-monkey-1.0.3.tgz?cache=0&sync_timestamp=1617593290175&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-monkey%2Fdownload%2Ffs-monkey-1.0.3.tgz",
+ "integrity": "sha1-rjrJLVO7Mo7+DpodlUH2rY1I4tM=",
+ "dev": true
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "dev": true
+ },
+ "fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmmirror.com/fsevents/download/fsevents-2.3.2.tgz",
+ "integrity": "sha1-ilJveLj99GI7cJ4Ll1xSwkwC/Ro=",
+ "dev": true,
+ "optional": true
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz",
+ "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0="
+ },
+ "functional-red-black-tree": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/functional-red-black-tree/download/functional-red-black-tree-1.0.1.tgz",
+ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
+ "dev": true
+ },
+ "gauge": {
+ "version": "2.7.4",
+ "resolved": "https://registry.npmmirror.com/gauge/download/gauge-2.7.4.tgz?cache=0&sync_timestamp=1636989373302&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fgauge%2Fdownload%2Fgauge-2.7.4.tgz",
+ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
+ "dev": true,
+ "requires": {
+ "aproba": "^1.0.3",
+ "console-control-strings": "^1.0.0",
+ "has-unicode": "^2.0.0",
+ "object-assign": "^4.1.0",
+ "signal-exit": "^3.0.0",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wide-align": "^1.1.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-2.1.1.tgz?cache=0&sync_timestamp=1631634988487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-regex%2Fdownload%2Fansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/string-width/download/string-width-1.0.2.tgz?cache=0&sync_timestamp=1632421013520&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstring-width%2Fdownload%2Fstring-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1632420562057&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ }
+ }
+ },
+ "gensync": {
+ "version": "1.0.0-beta.2",
+ "resolved": "https://registry.npm.taobao.org/gensync/download/gensync-1.0.0-beta.2.tgz",
+ "integrity": "sha1-MqbudsPX9S1GsrGuXZP+qFgKJeA=",
+ "dev": true
+ },
+ "get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.nlark.com/get-caller-file/download/get-caller-file-2.0.5.tgz",
+ "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=",
+ "dev": true
+ },
+ "get-intrinsic": {
+ "version": "1.1.1",
+ "resolved": "https://registry.nlark.com/get-intrinsic/download/get-intrinsic-1.1.1.tgz",
+ "integrity": "sha1-FfWfN2+FXERpY5SPDSTNNje0q8Y=",
+ "requires": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1"
+ }
+ },
+ "get-own-enumerable-property-symbols": {
+ "version": "3.0.2",
+ "resolved": "https://registry.nlark.com/get-own-enumerable-property-symbols/download/get-own-enumerable-property-symbols-3.0.2.tgz",
+ "integrity": "sha1-tf3nfyLL4185C04ImSLFC85u9mQ=",
+ "dev": true
+ },
+ "get-size": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npm.taobao.org/get-size/download/get-size-2.0.3.tgz",
+ "integrity": "sha1-VKHQJWsg6nrGRlFnViAnaZQa0u8="
+ },
+ "get-stdin": {
+ "version": "8.0.0",
+ "resolved": "https://registry.nlark.com/get-stdin/download/get-stdin-8.0.0.tgz",
+ "integrity": "sha1-y61qc/63X27rIrqeAfiaooqpelM=",
+ "dev": true
+ },
+ "get-stream": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz",
+ "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=",
+ "dev": true,
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "get-symbol-description": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/get-symbol-description/download/get-symbol-description-1.0.0.tgz",
+ "integrity": "sha1-f9uByQAQH71WTdXxowr1qtweWNY=",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.1"
+ }
+ },
+ "get-value": {
+ "version": "2.0.6",
+ "resolved": "https://registry.nlark.com/get-value/download/get-value-2.0.6.tgz",
+ "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
+ "dev": true
+ },
+ "getpass": {
+ "version": "0.1.7",
+ "resolved": "https://registry.nlark.com/getpass/download/getpass-0.1.7.tgz",
+ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "^1.0.0"
+ }
+ },
+ "gl-matrix": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmmirror.com/gl-matrix/download/gl-matrix-3.4.3.tgz",
+ "integrity": "sha1-/BGR6DIACf1NIOkzlZXGBB3cIsk="
+ },
+ "glob": {
+ "version": "7.1.7",
+ "resolved": "https://registry.npmmirror.com/glob/download/glob-7.1.7.tgz",
+ "integrity": "sha1-Oxk+kjPwHULQs/eClLvutBj5SpA=",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "glob-parent": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmmirror.com/glob-parent/download/glob-parent-6.0.2.tgz?cache=0&sync_timestamp=1632953810778&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fglob-parent%2Fdownload%2Fglob-parent-6.0.2.tgz",
+ "integrity": "sha1-bSN9mQg5UMeSkPJMdkKj3poo+eM=",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.3"
+ }
+ },
+ "glob-to-regexp": {
+ "version": "0.4.1",
+ "resolved": "https://registry.nlark.com/glob-to-regexp/download/glob-to-regexp-0.4.1.tgz",
+ "integrity": "sha1-x1KXCHyFG5pXi9IX3VmpL1n+VG4=",
+ "dev": true
+ },
+ "global-modules": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/global-modules/download/global-modules-2.0.0.tgz",
+ "integrity": "sha1-mXYFrSNF8n9RU5vqJldEISFcd4A=",
+ "dev": true,
+ "requires": {
+ "global-prefix": "^3.0.0"
+ }
+ },
+ "global-prefix": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/global-prefix/download/global-prefix-3.0.0.tgz",
+ "integrity": "sha1-/IX3MGTfafUEIfR/iD/luRO6m5c=",
+ "dev": true,
+ "requires": {
+ "ini": "^1.3.5",
+ "kind-of": "^6.0.2",
+ "which": "^1.3.1"
+ },
+ "dependencies": {
+ "ini": {
+ "version": "1.3.8",
+ "resolved": "https://registry.nlark.com/ini/download/ini-1.3.8.tgz",
+ "integrity": "sha1-op2kJbSIBvNHZ6Tvzjlyaa8oQyw=",
+ "dev": true
+ }
+ }
+ },
+ "globals": {
+ "version": "11.12.0",
+ "resolved": "https://registry.npmmirror.com/globals/download/globals-11.12.0.tgz?cache=0&sync_timestamp=1635390798667&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fglobals%2Fdownload%2Fglobals-11.12.0.tgz",
+ "integrity": "sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=",
+ "dev": true
+ },
+ "globby": {
+ "version": "11.0.4",
+ "resolved": "https://registry.nlark.com/globby/download/globby-11.0.4.tgz",
+ "integrity": "sha1-LLr/d8Lypi5x6bKBOme5ejowAaU=",
+ "dev": true,
+ "requires": {
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.1.1",
+ "ignore": "^5.1.4",
+ "merge2": "^1.3.0",
+ "slash": "^3.0.0"
+ }
+ },
+ "globjoin": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npm.taobao.org/globjoin/download/globjoin-0.1.4.tgz",
+ "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=",
+ "dev": true
+ },
+ "gonzales-pe": {
+ "version": "4.3.0",
+ "resolved": "https://registry.nlark.com/gonzales-pe/download/gonzales-pe-4.3.0.tgz",
+ "integrity": "sha1-/p3sXzxVfurQn/hoxlgmvlTQZ7M=",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.5"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.2.8",
+ "resolved": "https://registry.npmmirror.com/graceful-fs/download/graceful-fs-4.2.8.tgz",
+ "integrity": "sha1-5BK40z9eAGWTy9PO5t+fLOu+gCo=",
+ "dev": true
+ },
+ "graceful-readlink": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/graceful-readlink/download/graceful-readlink-1.0.1.tgz",
+ "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=",
+ "dev": true
+ },
+ "graphlib": {
+ "version": "2.1.8",
+ "resolved": "https://registry.npm.taobao.org/graphlib/download/graphlib-2.1.8.tgz",
+ "integrity": "sha1-V2HUFHN4cAhMkux7XbywWSydNdo=",
+ "requires": {
+ "lodash": "^4.17.15"
+ }
+ },
+ "gzip-size": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmmirror.com/gzip-size/download/gzip-size-6.0.0.tgz",
+ "integrity": "sha1-BlNn/VDCOcBnHLy61b4+LusQ5GI=",
+ "dev": true,
+ "requires": {
+ "duplexer": "^0.1.2"
+ }
+ },
+ "handle-thing": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/handle-thing/download/handle-thing-2.0.1.tgz",
+ "integrity": "sha1-hX95zjWVgMNA1DCBzGSJcNC7I04=",
+ "dev": true
+ },
+ "har-schema": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/har-schema/download/har-schema-2.0.0.tgz",
+ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
+ "dev": true
+ },
+ "har-validator": {
+ "version": "5.1.5",
+ "resolved": "https://registry.npmmirror.com/har-validator/download/har-validator-5.1.5.tgz",
+ "integrity": "sha1-HwgDufjLIMD6E4It8ezds2veHv0=",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.12.3",
+ "har-schema": "^2.0.0"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmmirror.com/ajv/download/ajv-6.12.6.tgz?cache=0&sync_timestamp=1637522259668&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fajv%2Fdownload%2Fajv-6.12.6.tgz",
+ "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=",
+ "dev": true
+ }
+ }
+ },
+ "hard-rejection": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/hard-rejection/download/hard-rejection-2.1.0.tgz",
+ "integrity": "sha1-HG7aXBaFxjlCdm15u0Cudzzs2IM=",
+ "dev": true
+ },
+ "has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npm.taobao.org/has/download/has-1.0.3.tgz",
+ "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=",
+ "requires": {
+ "function-bind": "^1.1.1"
+ }
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/has-ansi/download/has-ansi-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-ansi%2Fdownload%2Fhas-ansi-2.0.0.tgz",
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-2.1.1.tgz?cache=0&sync_timestamp=1631634988487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-regex%2Fdownload%2Fansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
+ }
+ }
+ },
+ "has-bigints": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/has-bigints/download/has-bigints-1.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-bigints%2Fdownload%2Fhas-bigints-1.0.1.tgz",
+ "integrity": "sha1-ZP5qywIGc+O3jbA1pa9pqp0HsRM=",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.nlark.com/has-flag/download/has-flag-3.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
+ "has-symbols": {
+ "version": "1.0.2",
+ "resolved": "https://registry.nlark.com/has-symbols/download/has-symbols-1.0.2.tgz",
+ "integrity": "sha1-Fl0wcMADCXUqEjakeTMeOsVvFCM="
+ },
+ "has-tostringtag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/has-tostringtag/download/has-tostringtag-1.0.0.tgz?cache=0&sync_timestamp=1628196402801&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-tostringtag%2Fdownload%2Fhas-tostringtag-1.0.0.tgz",
+ "integrity": "sha1-fhM4GKfTlHNPlB5zw9P5KR5liyU=",
+ "requires": {
+ "has-symbols": "^1.0.2"
+ }
+ },
+ "has-unicode": {
+ "version": "2.0.1",
+ "resolved": "https://registry.nlark.com/has-unicode/download/has-unicode-2.0.1.tgz",
+ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
+ "dev": true
+ },
+ "has-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/has-value/download/has-value-1.0.0.tgz",
+ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
+ "dev": true,
+ "requires": {
+ "get-value": "^2.0.6",
+ "has-values": "^1.0.0",
+ "isobject": "^3.0.0"
+ }
+ },
+ "has-values": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/has-values/download/has-values-1.0.0.tgz",
+ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
+ "dev": true,
+ "requires": {
+ "is-number": "^3.0.0",
+ "kind-of": "^4.0.0"
+ },
+ "dependencies": {
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "kind-of": {
+ "version": "4.0.0",
+ "resolved": "https://registry.nlark.com/kind-of/download/kind-of-4.0.0.tgz",
+ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "hash.js": {
+ "version": "1.1.7",
+ "resolved": "https://registry.nlark.com/hash.js/download/hash.js-1.1.7.tgz?cache=0&sync_timestamp=1622643346539&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhash.js%2Fdownload%2Fhash.js-1.1.7.tgz",
+ "integrity": "sha1-C6vKU46NTuSg+JiNaIZlN6ADz0I=",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "minimalistic-assert": "^1.0.1"
+ }
+ },
+ "hdr-histogram-js": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/hdr-histogram-js/download/hdr-histogram-js-2.0.1.tgz",
+ "integrity": "sha1-7LH/K8thgcPpP/SvlHLCjH6XKE4=",
+ "dev": true,
+ "requires": {
+ "@assemblyscript/loader": "^0.10.1",
+ "base64-js": "^1.2.0",
+ "pako": "^1.0.3"
+ }
+ },
+ "hdr-histogram-percentiles-obj": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/hdr-histogram-percentiles-obj/download/hdr-histogram-percentiles-obj-3.0.0.tgz",
+ "integrity": "sha1-lAn03gwt2njmHeLZ14senzy6KDw=",
+ "dev": true
+ },
+ "hosted-git-info": {
+ "version": "4.0.2",
+ "resolved": "https://registry.nlark.com/hosted-git-info/download/hosted-git-info-4.0.2.tgz",
+ "integrity": "sha1-XkJVB+7eT+qEa3Ji8IOEVsQgmWE=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "hpack.js": {
+ "version": "2.1.6",
+ "resolved": "https://registry.nlark.com/hpack.js/download/hpack.js-2.1.6.tgz",
+ "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "obuf": "^1.0.0",
+ "readable-stream": "^2.0.1",
+ "wbuf": "^1.1.0"
+ }
+ },
+ "html-entities": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npm.taobao.org/html-entities/download/html-entities-1.4.0.tgz?cache=0&sync_timestamp=1617031468383&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-entities%2Fdownload%2Fhtml-entities-1.4.0.tgz",
+ "integrity": "sha1-z70bAdKvr5rcobEK59/6uYxx0tw=",
+ "dev": true
+ },
+ "html-escaper": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npm.taobao.org/html-escaper/download/html-escaper-2.0.2.tgz?cache=0&sync_timestamp=1613643546928&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-escaper%2Fdownload%2Fhtml-escaper-2.0.2.tgz",
+ "integrity": "sha1-39YAJ9o2o238viNiYsAKWCJoFFM=",
+ "dev": true
+ },
+ "html-tags": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npm.taobao.org/html-tags/download/html-tags-3.1.0.tgz",
+ "integrity": "sha1-e15vfmZen7QfMAB+2eDUHpf7IUA=",
+ "dev": true
+ },
+ "htmlparser2": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npmmirror.com/htmlparser2/download/htmlparser2-3.10.1.tgz?cache=0&sync_timestamp=1636640940074&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fhtmlparser2%2Fdownload%2Fhtmlparser2-3.10.1.tgz",
+ "integrity": "sha1-vWedw/WYl7ajS7EHSchVu1OpOS8=",
+ "dev": true,
+ "requires": {
+ "domelementtype": "^1.3.1",
+ "domhandler": "^2.3.0",
+ "domutils": "^1.5.1",
+ "entities": "^1.1.1",
+ "inherits": "^2.0.1",
+ "readable-stream": "^3.1.1"
+ },
+ "dependencies": {
+ "dom-serializer": {
+ "version": "0.2.2",
+ "resolved": "https://registry.nlark.com/dom-serializer/download/dom-serializer-0.2.2.tgz?cache=0&sync_timestamp=1621256830355&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdom-serializer%2Fdownload%2Fdom-serializer-0.2.2.tgz",
+ "integrity": "sha1-GvuB9TNxcXXUeGVd68XjMtn5u1E=",
+ "dev": true,
+ "requires": {
+ "domelementtype": "^2.0.1",
+ "entities": "^2.0.0"
+ },
+ "dependencies": {
+ "domelementtype": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-2.2.0.tgz?cache=0&sync_timestamp=1617298545989&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-2.2.0.tgz",
+ "integrity": "sha1-mgtsJ4LtahxzI9QiZxg9+b2LHVc=",
+ "dev": true
+ },
+ "entities": {
+ "version": "2.2.0",
+ "resolved": "https://registry.nlark.com/entities/download/entities-2.2.0.tgz?cache=0&sync_timestamp=1628508189267&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fentities%2Fdownload%2Fentities-2.2.0.tgz",
+ "integrity": "sha1-CY3JDruD2N/6CJ1VJWs1HTTE2lU=",
+ "dev": true
+ }
+ }
+ },
+ "domelementtype": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-1.3.1.tgz?cache=0&sync_timestamp=1617298545989&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-1.3.1.tgz",
+ "integrity": "sha1-0EjESzew0Qp/Kj1f7j9DM9eQSB8=",
+ "dev": true
+ },
+ "domhandler": {
+ "version": "2.4.2",
+ "resolved": "https://registry.nlark.com/domhandler/download/domhandler-2.4.2.tgz?cache=0&sync_timestamp=1630246778110&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdomhandler%2Fdownload%2Fdomhandler-2.4.2.tgz",
+ "integrity": "sha1-iAUJfpM9ZehVRvcm1g9euItE+AM=",
+ "dev": true,
+ "requires": {
+ "domelementtype": "1"
+ }
+ },
+ "domutils": {
+ "version": "1.7.0",
+ "resolved": "https://registry.nlark.com/domutils/download/domutils-1.7.0.tgz?cache=0&sync_timestamp=1630106606599&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdomutils%2Fdownload%2Fdomutils-1.7.0.tgz",
+ "integrity": "sha1-Vuo0HoNOBuZ0ivehyyXaZ+qfjCo=",
+ "dev": true,
+ "requires": {
+ "dom-serializer": "0",
+ "domelementtype": "1"
+ }
+ },
+ "entities": {
+ "version": "1.1.2",
+ "resolved": "https://registry.nlark.com/entities/download/entities-1.1.2.tgz?cache=0&sync_timestamp=1628508189267&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fentities%2Fdownload%2Fentities-1.1.2.tgz",
+ "integrity": "sha1-vfpzUplmTfr9NFKe1PhSKidf6lY=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz",
+ "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "http-cache-semantics": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npm.taobao.org/http-cache-semantics/download/http-cache-semantics-4.1.0.tgz",
+ "integrity": "sha1-SekcXL82yblLz81xwj1SSex045A=",
+ "dev": true
+ },
+ "http-deceiver": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npm.taobao.org/http-deceiver/download/http-deceiver-1.2.7.tgz",
+ "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=",
+ "dev": true
+ },
+ "http-errors": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmmirror.com/http-errors/download/http-errors-1.7.2.tgz?cache=0&sync_timestamp=1636932182141&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.7.2.tgz",
+ "integrity": "sha1-T1ApzxMjnzEDblsuVSkrz7zIXI8=",
+ "dev": true,
+ "requires": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.3",
+ "setprototypeof": "1.1.1",
+ "statuses": ">= 1.5.0 < 2",
+ "toidentifier": "1.0.0"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.nlark.com/inherits/download/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "dev": true
+ }
+ }
+ },
+ "http-parser-js": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npm.taobao.org/http-parser-js/download/http-parser-js-0.5.3.tgz",
+ "integrity": "sha1-AdJwnHnUFpi7AdTezF6dpOSgM9k=",
+ "dev": true
+ },
+ "http-proxy": {
+ "version": "1.18.1",
+ "resolved": "https://registry.npm.taobao.org/http-proxy/download/http-proxy-1.18.1.tgz",
+ "integrity": "sha1-QBVB8FNIhLv5UmAzTnL4juOXZUk=",
+ "dev": true,
+ "requires": {
+ "eventemitter3": "^4.0.0",
+ "follow-redirects": "^1.0.0",
+ "requires-port": "^1.0.0"
+ },
+ "dependencies": {
+ "eventemitter3": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npm.taobao.org/eventemitter3/download/eventemitter3-4.0.7.tgz",
+ "integrity": "sha1-Lem2j2Uo1WRO9cWVJqG0oHMGFp8=",
+ "dev": true
+ }
+ }
+ },
+ "http-proxy-agent": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmmirror.com/http-proxy-agent/download/http-proxy-agent-4.0.1.tgz",
+ "integrity": "sha1-ioyO9/WTLM+VPClsqCkblap0qjo=",
+ "dev": true,
+ "requires": {
+ "@tootallnate/once": "1",
+ "agent-base": "6",
+ "debug": "4"
+ }
+ },
+ "http-proxy-middleware": {
+ "version": "0.19.1",
+ "resolved": "https://registry.nlark.com/http-proxy-middleware/download/http-proxy-middleware-0.19.1.tgz",
+ "integrity": "sha1-GDx9xKoUeRUDBkmMIQza+WCApDo=",
+ "dev": true,
+ "requires": {
+ "http-proxy": "^1.17.0",
+ "is-glob": "^4.0.0",
+ "lodash": "^4.17.11",
+ "micromatch": "^3.1.10"
+ },
+ "dependencies": {
+ "braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz",
+ "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=",
+ "dev": true,
+ "requires": {
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.nlark.com/fill-range/download/fill-range-4.0.0.tgz",
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.nlark.com/micromatch/download/micromatch-3.1.10.tgz",
+ "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=",
+ "dev": true,
+ "requires": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
+ }
+ },
+ "to-regex-range": {
+ "version": "2.1.1",
+ "resolved": "https://registry.nlark.com/to-regex-range/download/to-regex-range-2.1.1.tgz",
+ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+ "dev": true,
+ "requires": {
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1"
+ }
+ }
+ }
+ },
+ "http-signature": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/http-signature/download/http-signature-1.2.0.tgz?cache=0&sync_timestamp=1637178646601&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fhttp-signature%2Fdownload%2Fhttp-signature-1.2.0.tgz",
+ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
+ }
+ },
+ "http2-client": {
+ "version": "1.3.5",
+ "resolved": "https://registry.nlark.com/http2-client/download/http2-client-1.3.5.tgz",
+ "integrity": "sha1-IMnckJ48yYKE3SCvJDLFJAht8YE=",
+ "dev": true
+ },
+ "https-proxy-agent": {
+ "version": "5.0.0",
+ "resolved": "https://registry.nlark.com/https-proxy-agent/download/https-proxy-agent-5.0.0.tgz",
+ "integrity": "sha1-4qkFQqu2inYuCghQ9sntrf2FBrI=",
+ "dev": true,
+ "requires": {
+ "agent-base": "6",
+ "debug": "4"
+ }
+ },
+ "human-signals": {
+ "version": "2.1.0",
+ "resolved": "https://registry.nlark.com/human-signals/download/human-signals-2.1.0.tgz?cache=0&sync_timestamp=1624364695595&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhuman-signals%2Fdownload%2Fhuman-signals-2.1.0.tgz",
+ "integrity": "sha1-3JH8ukLk0G5Kuu0zs+ejwC9RTqA=",
+ "dev": true
+ },
+ "humanize-ms": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npm.taobao.org/humanize-ms/download/humanize-ms-1.2.1.tgz",
+ "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=",
+ "dev": true,
+ "requires": {
+ "ms": "^2.0.0"
+ }
+ },
+ "husky": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmmirror.com/husky/download/husky-6.0.0.tgz",
+ "integrity": "sha1-gQ8RhprfUWBMMupXftvDd9f5MZ4=",
+ "dev": true
+ },
+ "iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.nlark.com/iconv-lite/download/iconv-lite-0.4.24.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ficonv-lite%2Fdownload%2Ficonv-lite-0.4.24.tgz",
+ "integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=",
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ },
+ "icss-utils": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npm.taobao.org/icss-utils/download/icss-utils-5.1.0.tgz",
+ "integrity": "sha1-xr5oWKvQE9do6YNmrkfiXViHsa4=",
+ "dev": true
+ },
+ "ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.nlark.com/ieee754/download/ieee754-1.2.1.tgz",
+ "integrity": "sha1-jrehCmP/8l0VpXsAFYbRd9Gw01I=",
+ "dev": true
+ },
+ "ignore": {
+ "version": "5.1.9",
+ "resolved": "https://registry.npmmirror.com/ignore/download/ignore-5.1.9.tgz?cache=0&sync_timestamp=1635926632542&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fignore%2Fdownload%2Fignore-5.1.9.tgz",
+ "integrity": "sha1-nsGly+jhRG7GDUQgBg1Dqm5zgvs=",
+ "dev": true
+ },
+ "ignore-walk": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmmirror.com/ignore-walk/download/ignore-walk-3.0.4.tgz",
+ "integrity": "sha1-yaCfabfHtHml10rBo8DUI20qYzU=",
+ "dev": true,
+ "requires": {
+ "minimatch": "^3.0.4"
+ }
+ },
+ "image-size": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npm.taobao.org/image-size/download/image-size-0.5.5.tgz?cache=0&sync_timestamp=1618422657851&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimage-size%2Fdownload%2Fimage-size-0.5.5.tgz",
+ "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=",
+ "dev": true,
+ "optional": true
+ },
+ "immediate": {
+ "version": "3.0.6",
+ "resolved": "https://registry.nlark.com/immediate/download/immediate-3.0.6.tgz",
+ "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps="
+ },
+ "import-fresh": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npm.taobao.org/import-fresh/download/import-fresh-3.3.0.tgz?cache=0&sync_timestamp=1608469532269&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-3.3.0.tgz",
+ "integrity": "sha1-NxYsJfy566oublPVtNiM4X2eDCs=",
+ "dev": true,
+ "requires": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ }
+ },
+ "import-lazy": {
+ "version": "4.0.0",
+ "resolved": "https://registry.nlark.com/import-lazy/download/import-lazy-4.0.0.tgz",
+ "integrity": "sha1-6OtidIOgpD2jwD8+NVSL5csMwVM=",
+ "dev": true
+ },
+ "import-local": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/import-local/download/import-local-2.0.0.tgz",
+ "integrity": "sha1-VQcL44pZk88Y72236WH1vuXFoJ0=",
+ "dev": true,
+ "requires": {
+ "pkg-dir": "^3.0.0",
+ "resolve-cwd": "^2.0.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/find-up/download/find-up-3.0.0.tgz?cache=0&sync_timestamp=1633618766404&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz",
+ "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=",
+ "dev": true,
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.nlark.com/locate-path/download/locate-path-3.0.0.tgz?cache=0&sync_timestamp=1629895724478&other_urls=https%3A%2F%2Fregistry.nlark.com%2Flocate-path%2Fdownload%2Flocate-path-3.0.0.tgz",
+ "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=",
+ "dev": true,
+ "requires": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.nlark.com/p-locate/download/p-locate-3.0.0.tgz",
+ "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.nlark.com/path-exists/download/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ },
+ "pkg-dir": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/pkg-dir/download/pkg-dir-3.0.0.tgz?cache=0&sync_timestamp=1633498116014&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpkg-dir%2Fdownload%2Fpkg-dir-3.0.0.tgz",
+ "integrity": "sha1-J0kCDyOe2ZCIGx9xIQ1R62UjvqM=",
+ "dev": true,
+ "requires": {
+ "find-up": "^3.0.0"
+ }
+ }
+ }
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz",
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+ "dev": true
+ },
+ "indent-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.nlark.com/indent-string/download/indent-string-4.0.0.tgz?cache=0&sync_timestamp=1622604582006&other_urls=https%3A%2F%2Fregistry.nlark.com%2Findent-string%2Fdownload%2Findent-string-4.0.0.tgz",
+ "integrity": "sha1-Yk+PRJfWGbLZdoUx1Y9BIoVNclE=",
+ "dev": true
+ },
+ "indexes-of": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/indexes-of/download/indexes-of-1.0.1.tgz",
+ "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=",
+ "dev": true
+ },
+ "infer-owner": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npm.taobao.org/infer-owner/download/infer-owner-1.0.4.tgz",
+ "integrity": "sha1-xM78qo5RBRwqQLos6KPScpWvlGc=",
+ "dev": true
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dev": true,
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.nlark.com/inherits/download/inherits-2.0.4.tgz",
+ "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w="
+ },
+ "ini": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/ini/download/ini-2.0.0.tgz",
+ "integrity": "sha1-5f1Vbs3VcmvpePoQAYYurLCpS8U=",
+ "dev": true
+ },
+ "inquirer": {
+ "version": "8.1.2",
+ "resolved": "https://registry.npmmirror.com/inquirer/download/inquirer-8.1.2.tgz?cache=0&sync_timestamp=1633472964335&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Finquirer%2Fdownload%2Finquirer-8.1.2.tgz",
+ "integrity": "sha1-ZbIE0s1/tjQA7dkl3+Qouv1CLj0=",
+ "dev": true,
+ "requires": {
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.1.1",
+ "cli-cursor": "^3.1.0",
+ "cli-width": "^3.0.0",
+ "external-editor": "^3.0.3",
+ "figures": "^3.0.0",
+ "lodash": "^4.17.21",
+ "mute-stream": "0.0.8",
+ "ora": "^5.3.0",
+ "run-async": "^2.4.0",
+ "rxjs": "^7.2.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0",
+ "through": "^2.3.6"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz",
+ "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz",
+ "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
+ "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
+ "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz",
+ "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=",
+ "dev": true
+ },
+ "rxjs": {
+ "version": "7.4.0",
+ "resolved": "https://registry.npmmirror.com/rxjs/download/rxjs-7.4.0.tgz?cache=0&sync_timestamp=1633554235070&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Frxjs%2Fdownload%2Frxjs-7.4.0.tgz",
+ "integrity": "sha1-oSpE1+6/AW9f8kQbh/KMmlHOvGg=",
+ "dev": true,
+ "requires": {
+ "tslib": "~2.1.0"
+ }
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmmirror.com/supports-color/download/supports-color-7.2.0.tgz",
+ "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "tslib": {
+ "version": "2.1.0",
+ "resolved": "https://registry.nlark.com/tslib/download/tslib-2.1.0.tgz?cache=0&sync_timestamp=1628722556410&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftslib%2Fdownload%2Ftslib-2.1.0.tgz",
+ "integrity": "sha1-2mCGDxwuyqVwOrfTm8Bba/mIuXo=",
+ "dev": true
+ }
+ }
+ },
+ "internal-ip": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmmirror.com/internal-ip/download/internal-ip-4.3.0.tgz",
+ "integrity": "sha1-hFRSuq2dLKO2nGNaE3rLmg2tCQc=",
+ "dev": true,
+ "requires": {
+ "default-gateway": "^4.2.0",
+ "ipaddr.js": "^1.9.0"
+ }
+ },
+ "internal-slot": {
+ "version": "1.0.3",
+ "resolved": "https://registry.nlark.com/internal-slot/download/internal-slot-1.0.3.tgz",
+ "integrity": "sha1-c0fjB97uovqsKsYgXUvH00ln9Zw=",
+ "dev": true,
+ "requires": {
+ "get-intrinsic": "^1.1.0",
+ "has": "^1.0.3",
+ "side-channel": "^1.0.4"
+ }
+ },
+ "internmap": {
+ "version": "1.0.1",
+ "resolved": "https://registry.nlark.com/internmap/download/internmap-1.0.1.tgz?cache=0&sync_timestamp=1632108258638&other_urls=https%3A%2F%2Fregistry.nlark.com%2Finternmap%2Fdownload%2Finternmap-1.0.1.tgz",
+ "integrity": "sha1-ABfMijuZYF8DAvKxmNJy4BXl35U="
+ },
+ "ip": {
+ "version": "1.1.5",
+ "resolved": "https://registry.nlark.com/ip/download/ip-1.1.5.tgz",
+ "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=",
+ "dev": true
+ },
+ "ip-regex": {
+ "version": "2.1.0",
+ "resolved": "https://registry.nlark.com/ip-regex/download/ip-regex-2.1.0.tgz",
+ "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=",
+ "dev": true
+ },
+ "ipaddr.js": {
+ "version": "1.9.1",
+ "resolved": "https://registry.nlark.com/ipaddr.js/download/ipaddr.js-1.9.1.tgz",
+ "integrity": "sha1-v/OFQ+64mEglB5/zoqjmy9RngbM=",
+ "dev": true
+ },
+ "is-absolute-url": {
+ "version": "3.0.3",
+ "resolved": "https://registry.nlark.com/is-absolute-url/download/is-absolute-url-3.0.3.tgz",
+ "integrity": "sha1-lsaiK2ojkpsR6gr7GDbDatSl1pg=",
+ "dev": true
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.nlark.com/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-alphabetical": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmmirror.com/is-alphabetical/download/is-alphabetical-1.0.4.tgz",
+ "integrity": "sha1-nn1rlJFr4iFTdF0YTCmMv5hqaG0=",
+ "dev": true
+ },
+ "is-alphanumeric": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/is-alphanumeric/download/is-alphanumeric-1.0.0.tgz",
+ "integrity": "sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ=",
+ "dev": true
+ },
+ "is-alphanumerical": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmmirror.com/is-alphanumerical/download/is-alphanumerical-1.0.4.tgz?cache=0&sync_timestamp=1636009316820&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fis-alphanumerical%2Fdownload%2Fis-alphanumerical-1.0.4.tgz",
+ "integrity": "sha1-frmiQx+FX2se8aeOMm31FWlsTb8=",
+ "dev": true,
+ "requires": {
+ "is-alphabetical": "^1.0.0",
+ "is-decimal": "^1.0.0"
+ }
+ },
+ "is-arguments": {
+ "version": "1.1.1",
+ "resolved": "https://registry.nlark.com/is-arguments/download/is-arguments-1.1.1.tgz?cache=0&sync_timestamp=1628201919104&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-arguments%2Fdownload%2Fis-arguments-1.1.1.tgz",
+ "integrity": "sha1-FbP4j9oB8ql/7ITKdhpWDxI++ps=",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+ "dev": true
+ },
+ "is-bigint": {
+ "version": "1.0.4",
+ "resolved": "https://registry.nlark.com/is-bigint/download/is-bigint-1.0.4.tgz?cache=0&sync_timestamp=1628747504782&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-bigint%2Fdownload%2Fis-bigint-1.0.4.tgz",
+ "integrity": "sha1-CBR6GHW8KzIAXUHM2Ckd/8ZpHfM=",
+ "dev": true,
+ "requires": {
+ "has-bigints": "^1.0.1"
+ }
+ },
+ "is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-2.1.0.tgz",
+ "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=",
+ "dev": true,
+ "requires": {
+ "binary-extensions": "^2.0.0"
+ }
+ },
+ "is-boolean-object": {
+ "version": "1.1.2",
+ "resolved": "https://registry.nlark.com/is-boolean-object/download/is-boolean-object-1.1.2.tgz",
+ "integrity": "sha1-XG3CACRt2TIa5LiFoRS7H3X2Nxk=",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.nlark.com/is-buffer/download/is-buffer-1.1.6.tgz",
+ "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=",
+ "dev": true
+ },
+ "is-callable": {
+ "version": "1.2.4",
+ "resolved": "https://registry.nlark.com/is-callable/download/is-callable-1.2.4.tgz",
+ "integrity": "sha1-RzAdWN0CWUB4ZVR4U99tYf5HGUU=",
+ "dev": true
+ },
+ "is-core-module": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmmirror.com/is-core-module/download/is-core-module-2.8.0.tgz?cache=0&sync_timestamp=1634237061095&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fis-core-module%2Fdownload%2Fis-core-module-2.8.0.tgz",
+ "integrity": "sha1-AyEzbD0JJeSX/Zf12VyxFKXM1Ug=",
+ "dev": true,
+ "requires": {
+ "has": "^1.0.3"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.nlark.com/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-date-object": {
+ "version": "1.0.5",
+ "resolved": "https://registry.nlark.com/is-date-object/download/is-date-object-1.0.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-date-object%2Fdownload%2Fis-date-object-1.0.5.tgz",
+ "integrity": "sha1-CEHVU25yTCVZe/bqYuG9OCmN8x8=",
+ "requires": {
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-decimal": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmmirror.com/is-decimal/download/is-decimal-1.0.4.tgz?cache=0&sync_timestamp=1636008973005&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fis-decimal%2Fdownload%2Fis-decimal-1.0.4.tgz",
+ "integrity": "sha1-ZaOllYocW2OnBuGzM9fNn2MNP6U=",
+ "dev": true
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz",
+ "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.nlark.com/kind-of/download/kind-of-5.1.0.tgz",
+ "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=",
+ "dev": true
+ }
+ }
+ },
+ "is-directory": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npm.taobao.org/is-directory/download/is-directory-0.3.1.tgz",
+ "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=",
+ "dev": true
+ },
+ "is-docker": {
+ "version": "2.2.1",
+ "resolved": "https://registry.nlark.com/is-docker/download/is-docker-2.2.1.tgz?cache=0&sync_timestamp=1630451108035&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-docker%2Fdownload%2Fis-docker-2.2.1.tgz",
+ "integrity": "sha1-M+6r4jz+hvFL3kQIoCwM+4U6zao=",
+ "dev": true
+ },
+ "is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz",
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+ "dev": true
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.nlark.com/is-extglob/download/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=",
+ "dev": true
+ },
+ "is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmmirror.com/is-glob/download/is-glob-4.0.3.tgz",
+ "integrity": "sha1-ZPYeQsu7LuwgcanawLKLoeZdUIQ=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^2.1.1"
+ }
+ },
+ "is-hexadecimal": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmmirror.com/is-hexadecimal/download/is-hexadecimal-1.0.4.tgz?cache=0&sync_timestamp=1636011536406&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fis-hexadecimal%2Fdownload%2Fis-hexadecimal-1.0.4.tgz",
+ "integrity": "sha1-zDXJdYjaS9Saju3WvECC1E3LI6c=",
+ "dev": true
+ },
+ "is-interactive": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/is-interactive/download/is-interactive-1.0.0.tgz",
+ "integrity": "sha1-zqbmrlyHCnsKAAQHC3tYfgJSkS4=",
+ "dev": true
+ },
+ "is-lambda": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/is-lambda/download/is-lambda-1.0.1.tgz",
+ "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=",
+ "dev": true
+ },
+ "is-negative-zero": {
+ "version": "2.0.1",
+ "resolved": "https://registry.nlark.com/is-negative-zero/download/is-negative-zero-2.0.1.tgz",
+ "integrity": "sha1-PedGwY3aIxkkGlNnWQjY92bxHCQ=",
+ "dev": true
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz",
+ "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=",
+ "dev": true
+ },
+ "is-number-object": {
+ "version": "1.0.6",
+ "resolved": "https://registry.nlark.com/is-number-object/download/is-number-object-1.0.6.tgz",
+ "integrity": "sha1-anqvg4x/BoalC0VT9+VKlklOifA=",
+ "dev": true,
+ "requires": {
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/is-obj/download/is-obj-1.0.1.tgz",
+ "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
+ "dev": true
+ },
+ "is-path-cwd": {
+ "version": "2.2.0",
+ "resolved": "https://registry.nlark.com/is-path-cwd/download/is-path-cwd-2.2.0.tgz?cache=0&sync_timestamp=1628686555851&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-path-cwd%2Fdownload%2Fis-path-cwd-2.2.0.tgz",
+ "integrity": "sha1-Z9Q7gmZKe1GR/ZEZEn6zAASKn9s=",
+ "dev": true
+ },
+ "is-path-in-cwd": {
+ "version": "2.1.0",
+ "resolved": "https://registry.nlark.com/is-path-in-cwd/download/is-path-in-cwd-2.1.0.tgz?cache=0&sync_timestamp=1620047389319&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-path-in-cwd%2Fdownload%2Fis-path-in-cwd-2.1.0.tgz",
+ "integrity": "sha1-v+Lcomxp85cmWkAJljYCk1oFOss=",
+ "dev": true,
+ "requires": {
+ "is-path-inside": "^2.1.0"
+ }
+ },
+ "is-path-inside": {
+ "version": "2.1.0",
+ "resolved": "https://registry.nlark.com/is-path-inside/download/is-path-inside-2.1.0.tgz?cache=0&sync_timestamp=1620046845369&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-path-inside%2Fdownload%2Fis-path-inside-2.1.0.tgz",
+ "integrity": "sha1-fJgQWH1lmkDSe8201WFuqwWUlLI=",
+ "dev": true,
+ "requires": {
+ "path-is-inside": "^1.0.2"
+ }
+ },
+ "is-plain-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npm.taobao.org/is-plain-obj/download/is-plain-obj-1.1.0.tgz?cache=0&sync_timestamp=1618601044820&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-plain-obj%2Fdownload%2Fis-plain-obj-1.1.0.tgz",
+ "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
+ "dev": true
+ },
+ "is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.nlark.com/is-plain-object/download/is-plain-object-2.0.4.tgz?cache=0&sync_timestamp=1618846974259&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-plain-object%2Fdownload%2Fis-plain-object-2.0.4.tgz",
+ "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=",
+ "dev": true,
+ "requires": {
+ "isobject": "^3.0.1"
+ }
+ },
+ "is-regex": {
+ "version": "1.1.4",
+ "resolved": "https://registry.nlark.com/is-regex/download/is-regex-1.1.4.tgz?cache=0&sync_timestamp=1628221905423&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-regex%2Fdownload%2Fis-regex-1.1.4.tgz",
+ "integrity": "sha1-7vVmPNWfpMCuM5UFMj32hUuxWVg=",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-regexp": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/is-regexp/download/is-regexp-1.0.0.tgz",
+ "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=",
+ "dev": true
+ },
+ "is-resolvable": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npm.taobao.org/is-resolvable/download/is-resolvable-1.1.0.tgz",
+ "integrity": "sha1-+xj4fOH+uSUWnJpAfBkxijIG7Yg=",
+ "dev": true
+ },
+ "is-shared-array-buffer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/is-shared-array-buffer/download/is-shared-array-buffer-1.0.1.tgz",
+ "integrity": "sha1-l7DIX72stZycRG/mU7gs8rW3z+Y=",
+ "dev": true
+ },
+ "is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.nlark.com/is-stream/download/is-stream-1.1.0.tgz",
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
+ "dev": true
+ },
+ "is-string": {
+ "version": "1.0.7",
+ "resolved": "https://registry.nlark.com/is-string/download/is-string-1.0.7.tgz",
+ "integrity": "sha1-DdEr8gBvJVu1j2lREO/3SR7rwP0=",
+ "dev": true,
+ "requires": {
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-supported-regexp-flag": {
+ "version": "1.0.1",
+ "resolved": "https://registry.nlark.com/is-supported-regexp-flag/download/is-supported-regexp-flag-1.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-supported-regexp-flag%2Fdownload%2Fis-supported-regexp-flag-1.0.1.tgz",
+ "integrity": "sha1-Ie4WUY0sHdPt0+mg1X5QIHrDZMo=",
+ "dev": true
+ },
+ "is-symbol": {
+ "version": "1.0.4",
+ "resolved": "https://registry.nlark.com/is-symbol/download/is-symbol-1.0.4.tgz?cache=0&sync_timestamp=1620501174327&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-symbol%2Fdownload%2Fis-symbol-1.0.4.tgz",
+ "integrity": "sha1-ptrJO2NbBjymhyI23oiRClevE5w=",
+ "dev": true,
+ "requires": {
+ "has-symbols": "^1.0.2"
+ }
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz",
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
+ "dev": true
+ },
+ "is-unicode-supported": {
+ "version": "0.1.0",
+ "resolved": "https://registry.nlark.com/is-unicode-supported/download/is-unicode-supported-0.1.0.tgz?cache=0&sync_timestamp=1625294161966&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-unicode-supported%2Fdownload%2Fis-unicode-supported-0.1.0.tgz",
+ "integrity": "sha1-PybHaoCVk7Ur+i7LVxDtJ3m1Iqc=",
+ "dev": true
+ },
+ "is-weakref": {
+ "version": "1.0.1",
+ "resolved": "https://registry.nlark.com/is-weakref/download/is-weakref-1.0.1.tgz",
+ "integrity": "sha1-hC26TsF/qayYUN8tbvvBc3J08qI=",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.0"
+ }
+ },
+ "is-what": {
+ "version": "3.14.1",
+ "resolved": "https://registry.npmmirror.com/is-what/download/is-what-3.14.1.tgz?cache=0&sync_timestamp=1634283360064&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fis-what%2Fdownload%2Fis-what-3.14.1.tgz",
+ "integrity": "sha1-4SIvRt3ahd6tD9HJ3xMXYOd3VcE=",
+ "dev": true
+ },
+ "is-whitespace-character": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmmirror.com/is-whitespace-character/download/is-whitespace-character-1.0.4.tgz",
+ "integrity": "sha1-CFjt2UqVWUx8ndC1wXTsbkXuSqc=",
+ "dev": true
+ },
+ "is-windows": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npm.taobao.org/is-windows/download/is-windows-1.0.2.tgz",
+ "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=",
+ "dev": true
+ },
+ "is-word-character": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmmirror.com/is-word-character/download/is-word-character-1.0.4.tgz",
+ "integrity": "sha1-zg5zIW+YWZBgWS9i/zE1TdvrAjA=",
+ "dev": true
+ },
+ "is-wsl": {
+ "version": "2.2.0",
+ "resolved": "https://registry.nlark.com/is-wsl/download/is-wsl-2.2.0.tgz",
+ "integrity": "sha1-dKTHbnfKn9P5MvKQwX6jJs0VcnE=",
+ "dev": true,
+ "requires": {
+ "is-docker": "^2.0.0"
+ }
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ },
+ "isbinaryfile": {
+ "version": "4.0.8",
+ "resolved": "https://registry.nlark.com/isbinaryfile/download/isbinaryfile-4.0.8.tgz",
+ "integrity": "sha1-XTS5SGW9SUZjPsx4oCb8dsWxH88=",
+ "dev": true
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "dev": true
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ },
+ "isstream": {
+ "version": "0.1.2",
+ "resolved": "https://registry.nlark.com/isstream/download/isstream-0.1.2.tgz",
+ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
+ "dev": true
+ },
+ "istanbul-lib-coverage": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmmirror.com/istanbul-lib-coverage/download/istanbul-lib-coverage-3.2.0.tgz?cache=0&sync_timestamp=1634527189737&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fistanbul-lib-coverage%2Fdownload%2Fistanbul-lib-coverage-3.2.0.tgz",
+ "integrity": "sha1-GJ55CdCjn6Wj361bA/cZR3cBkdM=",
+ "dev": true
+ },
+ "istanbul-lib-instrument": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmmirror.com/istanbul-lib-instrument/download/istanbul-lib-instrument-4.0.3.tgz",
+ "integrity": "sha1-hzxv/4l0UBGCIndGlqPyiQLXfB0=",
+ "dev": true,
+ "requires": {
+ "@babel/core": "^7.7.5",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-coverage": "^3.0.0",
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz",
+ "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=",
+ "dev": true
+ }
+ }
+ },
+ "istanbul-lib-report": {
+ "version": "3.0.0",
+ "resolved": "https://registry.nlark.com/istanbul-lib-report/download/istanbul-lib-report-3.0.0.tgz",
+ "integrity": "sha1-dRj+UupE3jcvRgp2tezan/tz2KY=",
+ "dev": true,
+ "requires": {
+ "istanbul-lib-coverage": "^3.0.0",
+ "make-dir": "^3.0.0",
+ "supports-color": "^7.1.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz",
+ "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmmirror.com/supports-color/download/supports-color-7.2.0.tgz",
+ "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "istanbul-lib-source-maps": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmmirror.com/istanbul-lib-source-maps/download/istanbul-lib-source-maps-4.0.1.tgz",
+ "integrity": "sha1-iV86cJ/PujTG3lpCk5Ai8+Q1hVE=",
+ "dev": true,
+ "requires": {
+ "debug": "^4.1.1",
+ "istanbul-lib-coverage": "^3.0.0",
+ "source-map": "^0.6.1"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "istanbul-reports": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmmirror.com/istanbul-reports/download/istanbul-reports-3.0.5.tgz?cache=0&sync_timestamp=1634144713451&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fistanbul-reports%2Fdownload%2Fistanbul-reports-3.0.5.tgz",
+ "integrity": "sha1-olgBB+cSeeptZh3e3pKf/G1pM4Q=",
+ "dev": true,
+ "requires": {
+ "html-escaper": "^2.0.0",
+ "istanbul-lib-report": "^3.0.0"
+ }
+ },
+ "isutf8": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmmirror.com/isutf8/download/isutf8-3.1.1.tgz",
+ "integrity": "sha1-PyrHf0mv+yOuVIE9oaSrRKrfHXs="
+ },
+ "jake": {
+ "version": "10.8.2",
+ "resolved": "https://registry.nlark.com/jake/download/jake-10.8.2.tgz",
+ "integrity": "sha1-68nehVgWCmbYLQ6txqLlj7xQCns=",
+ "dev": true,
+ "requires": {
+ "async": "0.9.x",
+ "chalk": "^2.4.2",
+ "filelist": "^1.0.1",
+ "minimatch": "^3.0.4"
+ },
+ "dependencies": {
+ "async": {
+ "version": "0.9.2",
+ "resolved": "https://registry.npmmirror.com/async/download/async-0.9.2.tgz",
+ "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=",
+ "dev": true
+ }
+ }
+ },
+ "jasmine": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmmirror.com/jasmine/download/jasmine-2.8.0.tgz",
+ "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=",
+ "dev": true,
+ "requires": {
+ "exit": "^0.1.2",
+ "glob": "^7.0.6",
+ "jasmine-core": "~2.8.0"
+ },
+ "dependencies": {
+ "jasmine-core": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmmirror.com/jasmine-core/download/jasmine-core-2.8.0.tgz",
+ "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=",
+ "dev": true
+ }
+ }
+ },
+ "jasmine-core": {
+ "version": "3.8.0",
+ "resolved": "https://registry.npmmirror.com/jasmine-core/download/jasmine-core-3.8.0.tgz",
+ "integrity": "sha1-gVOZquWqXZvusSYoBfmBuZ/8m/A=",
+ "dev": true
+ },
+ "jasmine-spec-reporter": {
+ "version": "5.0.2",
+ "resolved": "https://registry.nlark.com/jasmine-spec-reporter/download/jasmine-spec-reporter-5.0.2.tgz",
+ "integrity": "sha1-thKIqwdK1EDcJHfE1ChAsOdKa5U=",
+ "dev": true,
+ "requires": {
+ "colors": "1.4.0"
+ }
+ },
+ "jasminewd2": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npm.taobao.org/jasminewd2/download/jasminewd2-2.2.0.tgz",
+ "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=",
+ "dev": true
+ },
+ "jest-worker": {
+ "version": "27.3.1",
+ "resolved": "https://registry.npmmirror.com/jest-worker/download/jest-worker-27.3.1.tgz?cache=0&sync_timestamp=1634626737887&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjest-worker%2Fdownload%2Fjest-worker-27.3.1.tgz",
+ "integrity": "sha1-De9/6uW4BCvjhHl5mut7X6ysJLI=",
+ "dev": true,
+ "requires": {
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz",
+ "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmmirror.com/supports-color/download/supports-color-8.1.1.tgz",
+ "integrity": "sha1-zW/BfihQDP9WwbhsCn/UpUpzAFw=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "js-base64": {
+ "version": "3.7.2",
+ "resolved": "https://registry.npmmirror.com/js-base64/download/js-base64-3.7.2.tgz",
+ "integrity": "sha1-gW0R2BqK/yQWA9Gc5XYeE+Qdd0U="
+ },
+ "js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.nlark.com/js-tokens/download/js-tokens-4.0.0.tgz?cache=0&sync_timestamp=1619345098261&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fjs-tokens%2Fdownload%2Fjs-tokens-4.0.0.tgz",
+ "integrity": "sha1-GSA/tZmR35jjoocFDUZHzerzJJk=",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "3.14.1",
+ "resolved": "https://registry.npm.taobao.org/js-yaml/download/js-yaml-3.14.1.tgz?cache=0&sync_timestamp=1618435004368&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-yaml%2Fdownload%2Fjs-yaml-3.14.1.tgz",
+ "integrity": "sha1-2ugS/bOCX6MGYJqHFzg8UMNqBTc=",
+ "dev": true,
+ "requires": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ }
+ },
+ "jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.nlark.com/jsbn/download/jsbn-0.1.1.tgz",
+ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
+ "dev": true
+ },
+ "jsdoc-type-pratt-parser": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/jsdoc-type-pratt-parser/download/jsdoc-type-pratt-parser-1.2.0.tgz",
+ "integrity": "sha1-NIKjgzt0qIyVprpyU/DA3jt3ufU=",
+ "dev": true
+ },
+ "jsesc": {
+ "version": "2.5.2",
+ "resolved": "https://registry.nlark.com/jsesc/download/jsesc-2.5.2.tgz",
+ "integrity": "sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q=",
+ "dev": true
+ },
+ "json-parse-better-errors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.nlark.com/json-parse-better-errors/download/json-parse-better-errors-1.0.2.tgz",
+ "integrity": "sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk=",
+ "dev": true
+ },
+ "json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.nlark.com/json-parse-even-better-errors/download/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha1-fEeAWpQxmSjgV3dAXcEuH3pO4C0=",
+ "dev": true
+ },
+ "json-schema": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmmirror.com/json-schema/download/json-schema-0.2.3.tgz?cache=0&sync_timestamp=1636423494254&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjson-schema%2Fdownload%2Fjson-schema-0.2.3.tgz",
+ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
+ "dev": true
+ },
+ "json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha1-rnvLNlard6c7pcSb9lTzjmtoYOI="
+ },
+ "json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.nlark.com/json-stable-stringify-without-jsonify/download/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
+ "dev": true
+ },
+ "json-stringify-safe": {
+ "version": "5.0.1",
+ "resolved": "https://registry.nlark.com/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
+ "dev": true
+ },
+ "json3": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmmirror.com/json3/download/json3-3.3.3.tgz",
+ "integrity": "sha1-f8EON1/FrkLEcFpcwKpvYr4wW4E=",
+ "dev": true
+ },
+ "json5": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npm.taobao.org/json5/download/json5-2.2.0.tgz",
+ "integrity": "sha1-Lf7+cgxrpSXZ69kJlQ8FFTFsiaM=",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.5"
+ }
+ },
+ "jsonc-parser": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/jsonc-parser/download/jsonc-parser-3.0.0.tgz?cache=0&sync_timestamp=1605281904422&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsonc-parser%2Fdownload%2Fjsonc-parser-3.0.0.tgz",
+ "integrity": "sha1-q914VwHH5+rKip7IzwcMpRp0WiI=",
+ "dev": true
+ },
+ "jsonfile": {
+ "version": "6.1.0",
+ "resolved": "https://registry.nlark.com/jsonfile/download/jsonfile-6.1.0.tgz",
+ "integrity": "sha1-vFWyY0eTxnnsZAMJTrE2mKbsCq4=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.6",
+ "universalify": "^2.0.0"
+ }
+ },
+ "jsonparse": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npm.taobao.org/jsonparse/download/jsonparse-1.3.1.tgz",
+ "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=",
+ "dev": true
+ },
+ "jsprim": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmmirror.com/jsprim/download/jsprim-1.4.1.tgz?cache=0&sync_timestamp=1637110674471&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjsprim%2Fdownload%2Fjsprim-1.4.1.tgz",
+ "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.3.0",
+ "json-schema": "0.2.3",
+ "verror": "1.10.0"
+ }
+ },
+ "jszip": {
+ "version": "3.7.1",
+ "resolved": "https://registry.nlark.com/jszip/download/jszip-3.7.1.tgz",
+ "integrity": "sha1-vWNAEiHBViWhIoxVbKimjab9o9k=",
+ "requires": {
+ "lie": "~3.3.0",
+ "pako": "~1.0.2",
+ "readable-stream": "~2.3.6",
+ "set-immediate-shim": "~1.0.1"
+ }
+ },
+ "karma": {
+ "version": "6.3.9",
+ "resolved": "https://registry.npmmirror.com/karma/download/karma-6.3.9.tgz?cache=0&sync_timestamp=1637099037935&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fkarma%2Fdownload%2Fkarma-6.3.9.tgz",
+ "integrity": "sha512-E/MqdLM9uVIhfuyVnrhlGBu4miafBdXEAEqCmwdEMh3n17C7UWC/8Kvm3AYKr91gc7scutekZ0xv6rxRaUCtnw==",
+ "dev": true,
+ "requires": {
+ "body-parser": "^1.19.0",
+ "braces": "^3.0.2",
+ "chokidar": "^3.5.1",
+ "colors": "^1.4.0",
+ "connect": "^3.7.0",
+ "di": "^0.0.1",
+ "dom-serialize": "^2.2.1",
+ "glob": "^7.1.7",
+ "graceful-fs": "^4.2.6",
+ "http-proxy": "^1.18.1",
+ "isbinaryfile": "^4.0.8",
+ "lodash": "^4.17.21",
+ "log4js": "^6.3.0",
+ "mime": "^2.5.2",
+ "minimatch": "^3.0.4",
+ "qjobs": "^1.2.0",
+ "range-parser": "^1.2.1",
+ "rimraf": "^3.0.2",
+ "socket.io": "^4.2.0",
+ "source-map": "^0.6.1",
+ "tmp": "^0.2.1",
+ "ua-parser-js": "^0.7.30",
+ "yargs": "^16.1.1"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz",
+ "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "cliui": {
+ "version": "7.0.4",
+ "resolved": "https://registry.nlark.com/cliui/download/cliui-7.0.4.tgz",
+ "integrity": "sha1-oCZe5lVHb8gHrqnfPfjfd4OAi08=",
+ "dev": true,
+ "requires": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
+ "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
+ "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
+ "dev": true
+ },
+ "mime": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmmirror.com/mime/download/mime-2.6.0.tgz",
+ "integrity": "sha1-oqaCqVzU0MsdYlfij4PafjWAA2c=",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ },
+ "tmp": {
+ "version": "0.2.1",
+ "resolved": "https://registry.nlark.com/tmp/download/tmp-0.2.1.tgz",
+ "integrity": "sha1-hFf8MDfc9HGcJRNnoa9lAO4czxQ=",
+ "dev": true,
+ "requires": {
+ "rimraf": "^3.0.0"
+ }
+ },
+ "wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.nlark.com/wrap-ansi/download/wrap-ansi-7.0.0.tgz?cache=0&sync_timestamp=1631557327268&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwrap-ansi%2Fdownload%2Fwrap-ansi-7.0.0.tgz",
+ "integrity": "sha1-Z+FFz/UQpqaYS98RUpEdadLrnkM=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npm.taobao.org/y18n/download/y18n-5.0.8.tgz?cache=0&sync_timestamp=1617822684820&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fy18n%2Fdownload%2Fy18n-5.0.8.tgz",
+ "integrity": "sha1-f0k00PfKjFb5UxSTndzS3ZHOHVU=",
+ "dev": true
+ },
+ "yargs": {
+ "version": "16.2.0",
+ "resolved": "https://registry.npmmirror.com/yargs/download/yargs-16.2.0.tgz",
+ "integrity": "sha1-HIK/D2tqZur85+8w43b0mhJHf2Y=",
+ "dev": true,
+ "requires": {
+ "cliui": "^7.0.2",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.0",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^20.2.2"
+ }
+ },
+ "yargs-parser": {
+ "version": "20.2.9",
+ "resolved": "https://registry.npmmirror.com/yargs-parser/download/yargs-parser-20.2.9.tgz?cache=0&sync_timestamp=1637031053426&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fyargs-parser%2Fdownload%2Fyargs-parser-20.2.9.tgz",
+ "integrity": "sha1-LrfcOwKJcY/ClfNidThFxBoMlO4=",
+ "dev": true
+ }
+ }
+ },
+ "karma-chrome-launcher": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npm.taobao.org/karma-chrome-launcher/download/karma-chrome-launcher-3.1.0.tgz",
+ "integrity": "sha1-gFpYZ5mk0F9OVPcqIEl58/MGZzg=",
+ "dev": true,
+ "requires": {
+ "which": "^1.2.1"
+ }
+ },
+ "karma-coverage": {
+ "version": "2.0.3",
+ "resolved": "https://registry.nlark.com/karma-coverage/download/karma-coverage-2.0.3.tgz",
+ "integrity": "sha1-wQ9HEfTPXKqqZosdb2QufaEi2XM=",
+ "dev": true,
+ "requires": {
+ "istanbul-lib-coverage": "^3.0.0",
+ "istanbul-lib-instrument": "^4.0.1",
+ "istanbul-lib-report": "^3.0.0",
+ "istanbul-lib-source-maps": "^4.0.0",
+ "istanbul-reports": "^3.0.0",
+ "minimatch": "^3.0.4"
+ }
+ },
+ "karma-coverage-istanbul-reporter": {
+ "version": "3.0.3",
+ "resolved": "https://registry.nlark.com/karma-coverage-istanbul-reporter/download/karma-coverage-istanbul-reporter-3.0.3.tgz?cache=0&sync_timestamp=1626199377702&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fkarma-coverage-istanbul-reporter%2Fdownload%2Fkarma-coverage-istanbul-reporter-3.0.3.tgz",
+ "integrity": "sha1-87UwNVOq3I5oHUDTYN/cGbx+n+k=",
+ "dev": true,
+ "requires": {
+ "istanbul-lib-coverage": "^3.0.0",
+ "istanbul-lib-report": "^3.0.0",
+ "istanbul-lib-source-maps": "^3.0.6",
+ "istanbul-reports": "^3.0.2",
+ "minimatch": "^3.0.4"
+ },
+ "dependencies": {
+ "istanbul-lib-source-maps": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmmirror.com/istanbul-lib-source-maps/download/istanbul-lib-source-maps-3.0.6.tgz",
+ "integrity": "sha1-KEmXxIIRdS7EhiU9qX44ed77qMg=",
+ "dev": true,
+ "requires": {
+ "debug": "^4.1.1",
+ "istanbul-lib-coverage": "^2.0.5",
+ "make-dir": "^2.1.0",
+ "rimraf": "^2.6.3",
+ "source-map": "^0.6.1"
+ },
+ "dependencies": {
+ "istanbul-lib-coverage": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmmirror.com/istanbul-lib-coverage/download/istanbul-lib-coverage-2.0.5.tgz?cache=0&sync_timestamp=1634527189737&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fistanbul-lib-coverage%2Fdownload%2Fistanbul-lib-coverage-2.0.5.tgz",
+ "integrity": "sha1-Z18KtpUD+tSx2En3NrqsqAM0T0k=",
+ "dev": true
+ }
+ }
+ },
+ "make-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-2.1.0.tgz",
+ "integrity": "sha1-XwMQ4YuL6JjMBwCSlaMK5B6R5vU=",
+ "dev": true,
+ "requires": {
+ "pify": "^4.0.1",
+ "semver": "^5.6.0"
+ }
+ },
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz",
+ "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz",
+ "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "karma-jasmine": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npm.taobao.org/karma-jasmine/download/karma-jasmine-4.0.1.tgz",
+ "integrity": "sha1-uZ4HO22ZpRlvxL/8EhuJMTsKvYI=",
+ "dev": true,
+ "requires": {
+ "jasmine-core": "^3.6.0"
+ }
+ },
+ "karma-jasmine-html-reporter": {
+ "version": "1.7.0",
+ "resolved": "https://registry.nlark.com/karma-jasmine-html-reporter/download/karma-jasmine-html-reporter-1.7.0.tgz",
+ "integrity": "sha1-UsSJp012CTShCJv6XqSo/LhMwos=",
+ "dev": true
+ },
+ "karma-source-map-support": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npm.taobao.org/karma-source-map-support/download/karma-source-map-support-1.4.0.tgz",
+ "integrity": "sha1-WFJs7M9+hzDlbv/Zek3o1xKsDWs=",
+ "dev": true,
+ "requires": {
+ "source-map-support": "^0.5.5"
+ }
+ },
+ "killable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.nlark.com/killable/download/killable-1.0.1.tgz",
+ "integrity": "sha1-TIzkQRh6Bhx0dPuHygjipjgZSJI=",
+ "dev": true
+ },
+ "kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.nlark.com/kind-of/download/kind-of-6.0.3.tgz",
+ "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=",
+ "dev": true
+ },
+ "klona": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmmirror.com/klona/download/klona-2.0.5.tgz?cache=0&sync_timestamp=1635385383825&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fklona%2Fdownload%2Fklona-2.0.5.tgz",
+ "integrity": "sha1-0WZXTZAHY5XZljqnqSj6u412r7w=",
+ "dev": true
+ },
+ "known-css-properties": {
+ "version": "0.21.0",
+ "resolved": "https://registry.nlark.com/known-css-properties/download/known-css-properties-0.21.0.tgz",
+ "integrity": "sha1-FfvQu7g0R/POCdivJH7UfGjt6A0=",
+ "dev": true
+ },
+ "less": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmmirror.com/less/download/less-4.1.1.tgz",
+ "integrity": "sha1-Fb8lOpk5eR3GkIiMP/Qk8+bH7bo=",
+ "dev": true,
+ "requires": {
+ "copy-anything": "^2.0.1",
+ "errno": "^0.1.1",
+ "graceful-fs": "^4.1.2",
+ "image-size": "~0.5.0",
+ "make-dir": "^2.1.0",
+ "mime": "^1.4.1",
+ "needle": "^2.5.2",
+ "parse-node-version": "^1.0.1",
+ "source-map": "~0.6.0",
+ "tslib": "^1.10.0"
+ },
+ "dependencies": {
+ "make-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-2.1.0.tgz",
+ "integrity": "sha1-XwMQ4YuL6JjMBwCSlaMK5B6R5vU=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "pify": "^4.0.1",
+ "semver": "^5.6.0"
+ }
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz",
+ "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=",
+ "dev": true,
+ "optional": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true,
+ "optional": true
+ },
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.nlark.com/tslib/download/tslib-1.14.1.tgz?cache=0&sync_timestamp=1628722556410&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftslib%2Fdownload%2Ftslib-1.14.1.tgz",
+ "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=",
+ "dev": true
+ }
+ }
+ },
+ "less-loader": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmmirror.com/less-loader/download/less-loader-10.0.1.tgz",
+ "integrity": "sha1-wFqrpo0AQAggJ18hwq2Hy5+pkj8=",
+ "dev": true,
+ "requires": {
+ "klona": "^2.0.4"
+ }
+ },
+ "less-plugin-clean-css": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npm.taobao.org/less-plugin-clean-css/download/less-plugin-clean-css-1.5.1.tgz",
+ "integrity": "sha1-zFeveqM5iVflbezr5jy2DCNClwM=",
+ "dev": true,
+ "requires": {
+ "clean-css": "^3.0.1"
+ }
+ },
+ "less-plugin-npm-import": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/less-plugin-npm-import/download/less-plugin-npm-import-2.1.0.tgz",
+ "integrity": "sha1-gj5phskzGKmBccqFiEi2vq1Vvz4=",
+ "dev": true,
+ "requires": {
+ "promise": "~7.0.1",
+ "resolve": "~1.1.6"
+ },
+ "dependencies": {
+ "resolve": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.1.7.tgz",
+ "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
+ "dev": true
+ }
+ }
+ },
+ "less-vars-to-js": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npm.taobao.org/less-vars-to-js/download/less-vars-to-js-1.3.0.tgz",
+ "integrity": "sha1-wyLPQ6PI/D+rZV2j5RoUwUmatXE=",
+ "dev": true,
+ "requires": {
+ "strip-json-comments": "^2.0.1"
+ },
+ "dependencies": {
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.nlark.com/strip-json-comments/download/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
+ "dev": true
+ }
+ }
+ },
+ "leven": {
+ "version": "2.1.0",
+ "resolved": "https://registry.nlark.com/leven/download/leven-2.1.0.tgz?cache=0&sync_timestamp=1628598084975&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fleven%2Fdownload%2Fleven-2.1.0.tgz",
+ "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=",
+ "dev": true
+ },
+ "levn": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npm.taobao.org/levn/download/levn-0.4.1.tgz",
+ "integrity": "sha1-rkViwAdHO5MqYgDUAyaN0v/8at4=",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ }
+ },
+ "license-webpack-plugin": {
+ "version": "2.3.20",
+ "resolved": "https://registry.npmmirror.com/license-webpack-plugin/download/license-webpack-plugin-2.3.20.tgz?cache=0&sync_timestamp=1636693292671&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Flicense-webpack-plugin%2Fdownload%2Flicense-webpack-plugin-2.3.20.tgz",
+ "integrity": "sha1-9R+2dMoxUZ2+2+HHqrwDblp/KFg=",
+ "dev": true,
+ "requires": {
+ "@types/webpack-sources": "^0.1.5",
+ "webpack-sources": "^1.2.0"
+ }
+ },
+ "lie": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npm.taobao.org/lie/download/lie-3.3.0.tgz",
+ "integrity": "sha1-3Pgt7lRfRgdNryAMfBxaCOD0D2o=",
+ "requires": {
+ "immediate": "~3.0.5"
+ }
+ },
+ "lilconfig": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmmirror.com/lilconfig/download/lilconfig-2.0.4.tgz?cache=0&sync_timestamp=1636150747257&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Flilconfig%2Fdownload%2Flilconfig-2.0.4.tgz",
+ "integrity": "sha1-9FB9BD1wWLOAtqj1y3vNSzTO4II=",
+ "dev": true
+ },
+ "lines-and-columns": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmmirror.com/lines-and-columns/download/lines-and-columns-1.2.4.tgz",
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
+ "dev": true
+ },
+ "lint-staged": {
+ "version": "11.2.6",
+ "resolved": "https://registry.npmmirror.com/lint-staged/download/lint-staged-11.2.6.tgz?cache=0&sync_timestamp=1637566864097&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Flint-staged%2Fdownload%2Flint-staged-11.2.6.tgz",
+ "integrity": "sha1-9HexrwKU2wVOWTfxcWed9juqTEM=",
+ "dev": true,
+ "requires": {
+ "cli-truncate": "2.1.0",
+ "colorette": "^1.4.0",
+ "commander": "^8.2.0",
+ "cosmiconfig": "^7.0.1",
+ "debug": "^4.3.2",
+ "enquirer": "^2.3.6",
+ "execa": "^5.1.1",
+ "listr2": "^3.12.2",
+ "micromatch": "^4.0.4",
+ "normalize-path": "^3.0.0",
+ "please-upgrade-node": "^3.2.0",
+ "string-argv": "0.3.1",
+ "stringify-object": "3.3.0",
+ "supports-color": "8.1.1"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmmirror.com/commander/download/commander-8.3.0.tgz",
+ "integrity": "sha1-SDfqGy2me5xhamevuw+v7lZ7ymY=",
+ "dev": true
+ },
+ "cross-spawn": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-7.0.3.tgz",
+ "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=",
+ "dev": true,
+ "requires": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ }
+ },
+ "execa": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmmirror.com/execa/download/execa-5.1.1.tgz?cache=0&sync_timestamp=1637147245057&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fexeca%2Fdownload%2Fexeca-5.1.1.tgz",
+ "integrity": "sha1-+ArZy/Qpj3vR1MlVXCHpN0HEEd0=",
+ "dev": true,
+ "requires": {
+ "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"
+ }
+ },
+ "get-stream": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-6.0.1.tgz",
+ "integrity": "sha1-omLY7vZ6ztV8KFKtYWdSakPL97c=",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz",
+ "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=",
+ "dev": true
+ },
+ "is-stream": {
+ "version": "2.0.1",
+ "resolved": "https://registry.nlark.com/is-stream/download/is-stream-2.0.1.tgz",
+ "integrity": "sha1-+sHj1TuXrVqdCunO8jifWBClwHc=",
+ "dev": true
+ },
+ "npm-run-path": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmmirror.com/npm-run-path/download/npm-run-path-4.0.1.tgz",
+ "integrity": "sha1-t+zR5e1T2o43pV4cImnguX7XSOo=",
+ "dev": true,
+ "requires": {
+ "path-key": "^3.0.0"
+ }
+ },
+ "path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-3.1.1.tgz?cache=0&sync_timestamp=1617971632960&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-3.1.1.tgz",
+ "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=",
+ "dev": true
+ },
+ "shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-2.0.0.tgz",
+ "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "^3.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.nlark.com/shebang-regex/download/shebang-regex-3.0.0.tgz?cache=0&sync_timestamp=1628896299850&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fshebang-regex%2Fdownload%2Fshebang-regex-3.0.0.tgz",
+ "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmmirror.com/supports-color/download/supports-color-8.1.1.tgz",
+ "integrity": "sha1-zW/BfihQDP9WwbhsCn/UpUpzAFw=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npm.taobao.org/which/download/which-2.0.2.tgz",
+ "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ }
+ }
+ },
+ "listr2": {
+ "version": "3.13.5",
+ "resolved": "https://registry.npmmirror.com/listr2/download/listr2-3.13.5.tgz",
+ "integrity": "sha512-3n8heFQDSk+NcwBn3CgxEibZGaRzx+pC64n3YjpMD1qguV4nWus3Al+Oo3KooqFKTQEJ1v7MmnbnyyNspgx3NA==",
+ "dev": true,
+ "requires": {
+ "cli-truncate": "^2.1.0",
+ "colorette": "^2.0.16",
+ "log-update": "^4.0.0",
+ "p-map": "^4.0.0",
+ "rfdc": "^1.3.0",
+ "rxjs": "^7.4.0",
+ "through": "^2.3.8",
+ "wrap-ansi": "^7.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz",
+ "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
+ "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
+ "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
+ "dev": true
+ },
+ "colorette": {
+ "version": "2.0.16",
+ "resolved": "https://registry.npmmirror.com/colorette/download/colorette-2.0.16.tgz",
+ "integrity": "sha1-cTua+E/bAAE58EVGvUqT9ipQhdo=",
+ "dev": true
+ },
+ "rxjs": {
+ "version": "7.4.0",
+ "resolved": "https://registry.npmmirror.com/rxjs/download/rxjs-7.4.0.tgz?cache=0&sync_timestamp=1633554235070&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Frxjs%2Fdownload%2Frxjs-7.4.0.tgz",
+ "integrity": "sha1-oSpE1+6/AW9f8kQbh/KMmlHOvGg=",
+ "dev": true,
+ "requires": {
+ "tslib": "~2.1.0"
+ }
+ },
+ "tslib": {
+ "version": "2.1.0",
+ "resolved": "https://registry.nlark.com/tslib/download/tslib-2.1.0.tgz?cache=0&sync_timestamp=1628722556410&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftslib%2Fdownload%2Ftslib-2.1.0.tgz",
+ "integrity": "sha1-2mCGDxwuyqVwOrfTm8Bba/mIuXo=",
+ "dev": true
+ },
+ "wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.nlark.com/wrap-ansi/download/wrap-ansi-7.0.0.tgz?cache=0&sync_timestamp=1631557327268&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwrap-ansi%2Fdownload%2Fwrap-ansi-7.0.0.tgz",
+ "integrity": "sha1-Z+FFz/UQpqaYS98RUpEdadLrnkM=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ }
+ }
+ }
+ },
+ "load-json-file": {
+ "version": "4.0.0",
+ "resolved": "https://registry.nlark.com/load-json-file/download/load-json-file-4.0.0.tgz",
+ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^4.0.0",
+ "pify": "^3.0.0",
+ "strip-bom": "^3.0.0"
+ },
+ "dependencies": {
+ "parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/parse-json/download/parse-json-4.0.0.tgz",
+ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+ "dev": true,
+ "requires": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ }
+ },
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true
+ }
+ }
+ },
+ "loader-runner": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npm.taobao.org/loader-runner/download/loader-runner-4.2.0.tgz?cache=0&sync_timestamp=1610027943366&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-runner%2Fdownload%2Floader-runner-4.2.0.tgz",
+ "integrity": "sha1-1wIjgNZtFMX7HUlriYZOvP1Hg4Q=",
+ "dev": true
+ },
+ "loader-utils": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/loader-utils/download/loader-utils-2.0.0.tgz?cache=0&sync_timestamp=1636687869321&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Floader-utils%2Fdownload%2Floader-utils-2.0.0.tgz",
+ "integrity": "sha1-5MrOW4FtQloWa18JfhDNErNgZLA=",
+ "dev": true,
+ "requires": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^2.1.2"
+ }
+ },
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.nlark.com/locate-path/download/locate-path-5.0.0.tgz?cache=0&sync_timestamp=1629895724478&other_urls=https%3A%2F%2Fregistry.nlark.com%2Flocate-path%2Fdownload%2Flocate-path-5.0.0.tgz",
+ "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=",
+ "dev": true,
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
+ "lodash": {
+ "version": "4.17.21",
+ "resolved": "https://registry.nlark.com/lodash/download/lodash-4.17.21.tgz",
+ "integrity": "sha1-Z5WRxWTDv/quhFTPCz3zcMPWkRw="
+ },
+ "lodash.debounce": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npm.taobao.org/lodash.debounce/download/lodash.debounce-4.0.8.tgz",
+ "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=",
+ "dev": true
+ },
+ "lodash.memoize": {
+ "version": "4.1.2",
+ "resolved": "https://registry.nlark.com/lodash.memoize/download/lodash.memoize-4.1.2.tgz",
+ "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=",
+ "dev": true
+ },
+ "lodash.merge": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npm.taobao.org/lodash.merge/download/lodash.merge-4.6.2.tgz",
+ "integrity": "sha1-VYqlO0O2YeGSWgr9+japoQhf5Xo=",
+ "dev": true
+ },
+ "lodash.truncate": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npm.taobao.org/lodash.truncate/download/lodash.truncate-4.4.2.tgz",
+ "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=",
+ "dev": true
+ },
+ "lodash.uniq": {
+ "version": "4.5.0",
+ "resolved": "https://registry.nlark.com/lodash.uniq/download/lodash.uniq-4.5.0.tgz",
+ "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=",
+ "dev": true
+ },
+ "log-symbols": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npm.taobao.org/log-symbols/download/log-symbols-4.1.0.tgz",
+ "integrity": "sha1-P727lbRoOsn8eFER55LlWNSr1QM=",
+ "dev": true,
+ "requires": {
+ "chalk": "^4.1.0",
+ "is-unicode-supported": "^0.1.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz",
+ "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz",
+ "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
+ "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
+ "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz",
+ "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmmirror.com/supports-color/download/supports-color-7.2.0.tgz",
+ "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "log-update": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/log-update/download/log-update-4.0.0.tgz?cache=0&sync_timestamp=1634542359448&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Flog-update%2Fdownload%2Flog-update-4.0.0.tgz",
+ "integrity": "sha1-WJ7NNSRx8qHAxXAodUOmTf0g4KE=",
+ "dev": true,
+ "requires": {
+ "ansi-escapes": "^4.3.0",
+ "cli-cursor": "^3.1.0",
+ "slice-ansi": "^4.0.0",
+ "wrap-ansi": "^6.2.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz",
+ "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
+ "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
+ "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
+ "dev": true
+ },
+ "wrap-ansi": {
+ "version": "6.2.0",
+ "resolved": "https://registry.nlark.com/wrap-ansi/download/wrap-ansi-6.2.0.tgz?cache=0&sync_timestamp=1631557327268&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwrap-ansi%2Fdownload%2Fwrap-ansi-6.2.0.tgz",
+ "integrity": "sha1-6Tk7oHEC5skaOyIUePAlfNKFblM=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ }
+ }
+ }
+ },
+ "log4js": {
+ "version": "6.3.0",
+ "resolved": "https://registry.nlark.com/log4js/download/log4js-6.3.0.tgz",
+ "integrity": "sha1-EN+vu0NDUaPjAnegC5h5RG9xW8s=",
+ "dev": true,
+ "requires": {
+ "date-format": "^3.0.0",
+ "debug": "^4.1.1",
+ "flatted": "^2.0.1",
+ "rfdc": "^1.1.4",
+ "streamroller": "^2.2.4"
+ },
+ "dependencies": {
+ "flatted": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/flatted/download/flatted-2.0.2.tgz?cache=0&sync_timestamp=1636473847692&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fflatted%2Fdownload%2Fflatted-2.0.2.tgz",
+ "integrity": "sha1-RXWyHivO50NKqb5mL0t7X5wrUTg=",
+ "dev": true
+ }
+ }
+ },
+ "loglevel": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmmirror.com/loglevel/download/loglevel-1.8.0.tgz?cache=0&sync_timestamp=1637240410022&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Floglevel%2Fdownload%2Floglevel-1.8.0.tgz",
+ "integrity": "sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA==",
+ "dev": true
+ },
+ "longest-streak": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmmirror.com/longest-streak/download/longest-streak-2.0.4.tgz?cache=0&sync_timestamp=1636446222992&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Flongest-streak%2Fdownload%2Flongest-streak-2.0.4.tgz",
+ "integrity": "sha1-uFmZV9pbXatk3uP+MW+ndFl9kOQ=",
+ "dev": true
+ },
+ "loud-rejection": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npm.taobao.org/loud-rejection/download/loud-rejection-1.6.0.tgz",
+ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
+ "dev": true,
+ "requires": {
+ "currently-unhandled": "^0.4.1",
+ "signal-exit": "^3.0.0"
+ }
+ },
+ "lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-6.0.0.tgz",
+ "integrity": "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=",
+ "dev": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "magic-string": {
+ "version": "0.25.7",
+ "resolved": "https://registry.nlark.com/magic-string/download/magic-string-0.25.7.tgz?cache=0&sync_timestamp=1618847046304&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmagic-string%2Fdownload%2Fmagic-string-0.25.7.tgz",
+ "integrity": "sha1-P0l9b9NMZpxnmNy4IfLvMfVEUFE=",
+ "dev": true,
+ "requires": {
+ "sourcemap-codec": "^1.4.4"
+ }
+ },
+ "make-dir": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-3.1.0.tgz",
+ "integrity": "sha1-QV6WcEazp/HRhSd9hKpYIDcmoT8=",
+ "dev": true,
+ "requires": {
+ "semver": "^6.0.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz",
+ "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=",
+ "dev": true
+ }
+ }
+ },
+ "make-error": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npm.taobao.org/make-error/download/make-error-1.3.6.tgz",
+ "integrity": "sha1-LrLjfqm2fEiR9oShOUeZr0hM96I=",
+ "dev": true
+ },
+ "make-fetch-happen": {
+ "version": "9.1.0",
+ "resolved": "https://registry.nlark.com/make-fetch-happen/download/make-fetch-happen-9.1.0.tgz?cache=0&sync_timestamp=1629820656927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmake-fetch-happen%2Fdownload%2Fmake-fetch-happen-9.1.0.tgz",
+ "integrity": "sha1-UwhaCeeXFDPmdl95cb9j9OBcuWg=",
+ "dev": true,
+ "requires": {
+ "agentkeepalive": "^4.1.3",
+ "cacache": "^15.2.0",
+ "http-cache-semantics": "^4.1.0",
+ "http-proxy-agent": "^4.0.1",
+ "https-proxy-agent": "^5.0.0",
+ "is-lambda": "^1.0.1",
+ "lru-cache": "^6.0.0",
+ "minipass": "^3.1.3",
+ "minipass-collect": "^1.0.2",
+ "minipass-fetch": "^1.3.2",
+ "minipass-flush": "^1.0.5",
+ "minipass-pipeline": "^1.2.4",
+ "negotiator": "^0.6.2",
+ "promise-retry": "^2.0.1",
+ "socks-proxy-agent": "^6.0.0",
+ "ssri": "^8.0.0"
+ }
+ },
+ "map-age-cleaner": {
+ "version": "0.1.3",
+ "resolved": "https://registry.nlark.com/map-age-cleaner/download/map-age-cleaner-0.1.3.tgz?cache=0&sync_timestamp=1629751304151&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmap-age-cleaner%2Fdownload%2Fmap-age-cleaner-0.1.3.tgz",
+ "integrity": "sha1-fVg6cwZDTAVf5HSw9FB45uG0uSo=",
+ "dev": true,
+ "requires": {
+ "p-defer": "^1.0.0"
+ }
+ },
+ "map-cache": {
+ "version": "0.2.2",
+ "resolved": "https://registry.nlark.com/map-cache/download/map-cache-0.2.2.tgz",
+ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
+ "dev": true
+ },
+ "map-obj": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmmirror.com/map-obj/download/map-obj-4.3.0.tgz?cache=0&sync_timestamp=1634552719803&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fmap-obj%2Fdownload%2Fmap-obj-4.3.0.tgz",
+ "integrity": "sha1-kwT5Buk/qucIgNoQKp8d8OqLsFo=",
+ "dev": true
+ },
+ "map-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/map-visit/download/map-visit-1.0.0.tgz",
+ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
+ "dev": true,
+ "requires": {
+ "object-visit": "^1.0.0"
+ }
+ },
+ "markdown-escapes": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmmirror.com/markdown-escapes/download/markdown-escapes-1.0.4.tgz?cache=0&sync_timestamp=1635887464232&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fmarkdown-escapes%2Fdownload%2Fmarkdown-escapes-1.0.4.tgz",
+ "integrity": "sha1-yVQV70UUmddgK5EJXzyOiXX3hTU=",
+ "dev": true
+ },
+ "markdown-table": {
+ "version": "1.1.3",
+ "resolved": "https://registry.nlark.com/markdown-table/download/markdown-table-1.1.3.tgz",
+ "integrity": "sha1-n8tpvP24cXv9A5jG7C2TA2743mA=",
+ "dev": true
+ },
+ "masonry-layout": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npm.taobao.org/masonry-layout/download/masonry-layout-4.2.2.tgz",
+ "integrity": "sha1-1XtErxPmAb/NxCPx3YNItVJN40g=",
+ "requires": {
+ "get-size": "^2.0.2",
+ "outlayer": "^2.1.0"
+ }
+ },
+ "mathml-tag-names": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmmirror.com/mathml-tag-names/download/mathml-tag-names-2.1.3.tgz",
+ "integrity": "sha1-TdrdZzCOeAzxakdoWHjuJ7c2oKM=",
+ "dev": true
+ },
+ "mdast-util-compact": {
+ "version": "1.0.4",
+ "resolved": "https://registry.nlark.com/mdast-util-compact/download/mdast-util-compact-1.0.4.tgz?cache=0&sync_timestamp=1627635894673&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmdast-util-compact%2Fdownload%2Fmdast-util-compact-1.0.4.tgz",
+ "integrity": "sha1-1TG7dme1Ejq/IIWb4IbE0GyJRZM=",
+ "dev": true,
+ "requires": {
+ "unist-util-visit": "^1.1.0"
+ }
+ },
+ "mdast-util-from-markdown": {
+ "version": "0.8.5",
+ "resolved": "https://registry.npmmirror.com/mdast-util-from-markdown/download/mdast-util-from-markdown-0.8.5.tgz",
+ "integrity": "sha1-0e8spCvDd+ywRjqYeRDa6JvZoow=",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^3.0.0",
+ "mdast-util-to-string": "^2.0.0",
+ "micromark": "~2.11.0",
+ "parse-entities": "^2.0.0",
+ "unist-util-stringify-position": "^2.0.0"
+ }
+ },
+ "mdast-util-to-markdown": {
+ "version": "0.6.5",
+ "resolved": "https://registry.npmmirror.com/mdast-util-to-markdown/download/mdast-util-to-markdown-0.6.5.tgz",
+ "integrity": "sha1-sz9nyoINaebMUnqT1AOSSbUEvr4=",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^2.0.0",
+ "longest-streak": "^2.0.0",
+ "mdast-util-to-string": "^2.0.0",
+ "parse-entities": "^2.0.0",
+ "repeat-string": "^1.0.0",
+ "zwitch": "^1.0.0"
+ }
+ },
+ "mdast-util-to-string": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/mdast-util-to-string/download/mdast-util-to-string-2.0.0.tgz?cache=0&sync_timestamp=1619426294961&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmdast-util-to-string%2Fdownload%2Fmdast-util-to-string-2.0.0.tgz",
+ "integrity": "sha1-uM/mpxPhCRy1tyj8SIhaR2f4uXs=",
+ "dev": true
+ },
+ "mdn-data": {
+ "version": "2.0.14",
+ "resolved": "https://registry.npmmirror.com/mdn-data/download/mdn-data-2.0.14.tgz",
+ "integrity": "sha1-cRP8QoGRfWPOKbQ0RvcB5owlulA=",
+ "dev": true
+ },
+ "media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.nlark.com/media-typer/download/media-typer-0.3.0.tgz",
+ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
+ "dev": true
+ },
+ "mem": {
+ "version": "8.1.1",
+ "resolved": "https://registry.nlark.com/mem/download/mem-8.1.1.tgz?cache=0&sync_timestamp=1626534352883&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmem%2Fdownload%2Fmem-8.1.1.tgz",
+ "integrity": "sha1-zxGLNXxlq3t+CBe98AyAYil8ASI=",
+ "dev": true,
+ "requires": {
+ "map-age-cleaner": "^0.1.3",
+ "mimic-fn": "^3.1.0"
+ },
+ "dependencies": {
+ "mimic-fn": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-3.1.0.tgz",
+ "integrity": "sha1-ZXVRRbvz42lUuUnBZFBCdFHVynQ=",
+ "dev": true
+ }
+ }
+ },
+ "memfs": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmmirror.com/memfs/download/memfs-3.4.0.tgz",
+ "integrity": "sha512-o/RfP0J1d03YwsAxyHxAYs2kyJp55AFkMazlFAZFR2I2IXkxiUTXRabJ6RmNNCQ83LAD2jy52Khj0m3OffpNdA==",
+ "dev": true,
+ "requires": {
+ "fs-monkey": "1.0.3"
+ }
+ },
+ "memory-fs": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.4.1.tgz",
+ "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
+ "dev": true,
+ "requires": {
+ "errno": "^0.1.3",
+ "readable-stream": "^2.0.1"
+ }
+ },
+ "meow": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmmirror.com/meow/download/meow-7.1.1.tgz?cache=0&sync_timestamp=1637477569022&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fmeow%2Fdownload%2Fmeow-7.1.1.tgz",
+ "integrity": "sha1-fAFZXj0zf8sOxOju0WZuqVkD0wY=",
+ "dev": true,
+ "requires": {
+ "@types/minimist": "^1.2.0",
+ "camelcase-keys": "^6.2.2",
+ "decamelize-keys": "^1.1.0",
+ "hard-rejection": "^2.1.0",
+ "minimist-options": "4.1.0",
+ "normalize-package-data": "^2.5.0",
+ "read-pkg-up": "^7.0.1",
+ "redent": "^3.0.0",
+ "trim-newlines": "^3.0.0",
+ "type-fest": "^0.13.1",
+ "yargs-parser": "^18.1.3"
+ },
+ "dependencies": {
+ "read-pkg": {
+ "version": "5.2.0",
+ "resolved": "https://registry.nlark.com/read-pkg/download/read-pkg-5.2.0.tgz",
+ "integrity": "sha1-e/KVQ4yloz5WzTDgU7NO5yUMk8w=",
+ "dev": true,
+ "requires": {
+ "@types/normalize-package-data": "^2.4.0",
+ "normalize-package-data": "^2.5.0",
+ "parse-json": "^5.0.0",
+ "type-fest": "^0.6.0"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmmirror.com/type-fest/download/type-fest-0.6.0.tgz?cache=0&sync_timestamp=1637149878210&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ftype-fest%2Fdownload%2Ftype-fest-0.6.0.tgz",
+ "integrity": "sha1-jSojcNPfiG61yQraHFv2GIrPg4s=",
+ "dev": true
+ }
+ }
+ },
+ "read-pkg-up": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmmirror.com/read-pkg-up/download/read-pkg-up-7.0.1.tgz",
+ "integrity": "sha1-86YTV1hFlzOuK5VjgFbhhU5+9Qc=",
+ "dev": true,
+ "requires": {
+ "find-up": "^4.1.0",
+ "read-pkg": "^5.2.0",
+ "type-fest": "^0.8.1"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmmirror.com/type-fest/download/type-fest-0.8.1.tgz?cache=0&sync_timestamp=1637149878210&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ftype-fest%2Fdownload%2Ftype-fest-0.8.1.tgz",
+ "integrity": "sha1-CeJJ696FHTseSNJ8EFREZn8XuD0=",
+ "dev": true
+ }
+ }
+ },
+ "type-fest": {
+ "version": "0.13.1",
+ "resolved": "https://registry.npmmirror.com/type-fest/download/type-fest-0.13.1.tgz?cache=0&sync_timestamp=1637149878210&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ftype-fest%2Fdownload%2Ftype-fest-0.13.1.tgz",
+ "integrity": "sha1-AXLLW86AsL1ULqNI21DH4hg02TQ=",
+ "dev": true
+ },
+ "yargs-parser": {
+ "version": "18.1.3",
+ "resolved": "https://registry.npmmirror.com/yargs-parser/download/yargs-parser-18.1.3.tgz?cache=0&sync_timestamp=1637031053426&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fyargs-parser%2Fdownload%2Fyargs-parser-18.1.3.tgz",
+ "integrity": "sha1-vmjEl1xrKr9GkjawyHA2L6sJp7A=",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
+ }
+ }
+ },
+ "merge-descriptors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.nlark.com/merge-descriptors/download/merge-descriptors-1.0.1.tgz",
+ "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=",
+ "dev": true
+ },
+ "merge-source-map": {
+ "version": "1.1.0",
+ "resolved": "https://registry.nlark.com/merge-source-map/download/merge-source-map-1.1.0.tgz",
+ "integrity": "sha1-L93n5gIJOfcJBqaPLXrmheTIxkY=",
+ "dev": true,
+ "requires": {
+ "source-map": "^0.6.1"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "merge-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/merge-stream/download/merge-stream-2.0.0.tgz",
+ "integrity": "sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A=",
+ "dev": true
+ },
+ "merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npm.taobao.org/merge2/download/merge2-1.4.1.tgz",
+ "integrity": "sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4=",
+ "dev": true
+ },
+ "methods": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npm.taobao.org/methods/download/methods-1.1.2.tgz",
+ "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
+ "dev": true
+ },
+ "micromark": {
+ "version": "2.11.4",
+ "resolved": "https://registry.npmmirror.com/micromark/download/micromark-2.11.4.tgz",
+ "integrity": "sha1-0TQ2E47qgmOD6CJEnJpcUO5EZlo=",
+ "dev": true,
+ "requires": {
+ "debug": "^4.0.0",
+ "parse-entities": "^2.0.0"
+ }
+ },
+ "micromatch": {
+ "version": "4.0.4",
+ "resolved": "https://registry.nlark.com/micromatch/download/micromatch-4.0.4.tgz",
+ "integrity": "sha1-iW1Rnf6dsl/OlM63pQCRm/iB6/k=",
+ "dev": true,
+ "requires": {
+ "braces": "^3.0.1",
+ "picomatch": "^2.2.3"
+ }
+ },
+ "mime": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmmirror.com/mime/download/mime-1.6.0.tgz",
+ "integrity": "sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=",
+ "dev": true
+ },
+ "mime-db": {
+ "version": "1.51.0",
+ "resolved": "https://registry.npmmirror.com/mime-db/download/mime-db-1.51.0.tgz?cache=0&sync_timestamp=1636425951030&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fmime-db%2Fdownload%2Fmime-db-1.51.0.tgz",
+ "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==",
+ "dev": true
+ },
+ "mime-types": {
+ "version": "2.1.34",
+ "resolved": "https://registry.npmmirror.com/mime-types/download/mime-types-2.1.34.tgz?cache=0&sync_timestamp=1636432302620&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fmime-types%2Fdownload%2Fmime-types-2.1.34.tgz",
+ "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==",
+ "dev": true,
+ "requires": {
+ "mime-db": "1.51.0"
+ }
+ },
+ "mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.1.0.tgz",
+ "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=",
+ "dev": true
+ },
+ "min-indent": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/min-indent/download/min-indent-1.0.1.tgz",
+ "integrity": "sha1-pj9oFnOzBXH76LwlaGrnRu76mGk=",
+ "dev": true
+ },
+ "mini-css-extract-plugin": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmmirror.com/mini-css-extract-plugin/download/mini-css-extract-plugin-2.4.2.tgz",
+ "integrity": "sha1-s1CBkepHk4ikcVAYyZ3T5t1A0tI=",
+ "dev": true,
+ "requires": {
+ "schema-utils": "^3.1.0"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmmirror.com/ajv/download/ajv-6.12.6.tgz?cache=0&sync_timestamp=1637522259668&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fajv%2Fdownload%2Fajv-6.12.6.tgz",
+ "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=",
+ "dev": true
+ },
+ "schema-utils": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmmirror.com/schema-utils/download/schema-utils-3.1.1.tgz?cache=0&sync_timestamp=1637075888461&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fschema-utils%2Fdownload%2Fschema-utils-3.1.1.tgz",
+ "integrity": "sha1-vHTEtraZXB2I92qLd76nIZ4MgoE=",
+ "dev": true,
+ "requires": {
+ "@types/json-schema": "^7.0.8",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
+ }
+ }
+ }
+ },
+ "minimalistic-assert": {
+ "version": "1.0.1",
+ "resolved": "https://registry.nlark.com/minimalistic-assert/download/minimalistic-assert-1.0.1.tgz",
+ "integrity": "sha1-LhlN4ERibUoQ5/f7wAznPoPk1cc=",
+ "dev": true
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz",
+ "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "1.2.5",
+ "resolved": "https://registry.nlark.com/minimist/download/minimist-1.2.5.tgz",
+ "integrity": "sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI=",
+ "dev": true
+ },
+ "minimist-options": {
+ "version": "4.1.0",
+ "resolved": "https://registry.nlark.com/minimist-options/download/minimist-options-4.1.0.tgz",
+ "integrity": "sha1-wGVXE8U6ii69d/+iR9NCxA8BBhk=",
+ "dev": true,
+ "requires": {
+ "arrify": "^1.0.1",
+ "is-plain-obj": "^1.1.0",
+ "kind-of": "^6.0.3"
+ }
+ },
+ "minipass": {
+ "version": "3.1.5",
+ "resolved": "https://registry.nlark.com/minipass/download/minipass-3.1.5.tgz?cache=0&sync_timestamp=1631656314228&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fminipass%2Fdownload%2Fminipass-3.1.5.tgz",
+ "integrity": "sha1-cfYlGwozpJwBs8+X/3ftoDDf9zI=",
+ "dev": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "minipass-collect": {
+ "version": "1.0.2",
+ "resolved": "https://registry.nlark.com/minipass-collect/download/minipass-collect-1.0.2.tgz",
+ "integrity": "sha1-IrgTv3Rdxu26JXa5QAIq1u3Ixhc=",
+ "dev": true,
+ "requires": {
+ "minipass": "^3.0.0"
+ }
+ },
+ "minipass-fetch": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmmirror.com/minipass-fetch/download/minipass-fetch-1.4.1.tgz",
+ "integrity": "sha1-114AkdqsGw/9fp1BYp+v99DB8bY=",
+ "dev": true,
+ "requires": {
+ "encoding": "^0.1.12",
+ "minipass": "^3.1.0",
+ "minipass-sized": "^1.0.3",
+ "minizlib": "^2.0.0"
+ }
+ },
+ "minipass-flush": {
+ "version": "1.0.5",
+ "resolved": "https://registry.nlark.com/minipass-flush/download/minipass-flush-1.0.5.tgz",
+ "integrity": "sha1-gucTXX6JpQ/+ZGEKeHlTxMTLs3M=",
+ "dev": true,
+ "requires": {
+ "minipass": "^3.0.0"
+ }
+ },
+ "minipass-json-stream": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/minipass-json-stream/download/minipass-json-stream-1.0.1.tgz",
+ "integrity": "sha1-ftu5JYj7/C/x2y/BA5est7a0Sqc=",
+ "dev": true,
+ "requires": {
+ "jsonparse": "^1.3.1",
+ "minipass": "^3.0.0"
+ }
+ },
+ "minipass-pipeline": {
+ "version": "1.2.4",
+ "resolved": "https://registry.nlark.com/minipass-pipeline/download/minipass-pipeline-1.2.4.tgz",
+ "integrity": "sha1-aEcveXEcCEZXwGfFxq2Tzd6oIUw=",
+ "dev": true,
+ "requires": {
+ "minipass": "^3.0.0"
+ }
+ },
+ "minipass-sized": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npm.taobao.org/minipass-sized/download/minipass-sized-1.0.3.tgz",
+ "integrity": "sha1-cO5afFBSBwr6z7wil36nne81O3A=",
+ "dev": true,
+ "requires": {
+ "minipass": "^3.0.0"
+ }
+ },
+ "minizlib": {
+ "version": "2.1.2",
+ "resolved": "https://registry.nlark.com/minizlib/download/minizlib-2.1.2.tgz",
+ "integrity": "sha1-6Q00Zrogm5MkUVCKEc49NjIUWTE=",
+ "dev": true,
+ "requires": {
+ "minipass": "^3.0.0",
+ "yallist": "^4.0.0"
+ }
+ },
+ "mixin-deep": {
+ "version": "1.3.2",
+ "resolved": "https://registry.nlark.com/mixin-deep/download/mixin-deep-1.3.2.tgz",
+ "integrity": "sha1-ESC0PcNZp4Xc5ltVuC4lfM9HlWY=",
+ "dev": true,
+ "requires": {
+ "for-in": "^1.0.2",
+ "is-extendable": "^1.0.1"
+ },
+ "dependencies": {
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz",
+ "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=",
+ "dev": true,
+ "requires": {
+ "is-plain-object": "^2.0.4"
+ }
+ }
+ }
+ },
+ "mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmmirror.com/mkdirp/download/mkdirp-1.0.4.tgz",
+ "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=",
+ "dev": true
+ },
+ "mockjs": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npm.taobao.org/mockjs/download/mockjs-1.1.0.tgz",
+ "integrity": "sha1-5qDDeOkZBtuv8gkRzAJzs8fXWwY=",
+ "requires": {
+ "commander": "*"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmmirror.com/ms/download/ms-2.1.2.tgz",
+ "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=",
+ "dev": true
+ },
+ "multicast-dns": {
+ "version": "6.2.3",
+ "resolved": "https://registry.npmmirror.com/multicast-dns/download/multicast-dns-6.2.3.tgz?cache=0&sync_timestamp=1633354821467&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fmulticast-dns%2Fdownload%2Fmulticast-dns-6.2.3.tgz",
+ "integrity": "sha1-oOx72QVcQoL3kMPIL04o2zsxsik=",
+ "dev": true,
+ "requires": {
+ "dns-packet": "^1.3.1",
+ "thunky": "^1.0.2"
+ }
+ },
+ "multicast-dns-service-types": {
+ "version": "1.1.0",
+ "resolved": "https://registry.nlark.com/multicast-dns-service-types/download/multicast-dns-service-types-1.1.0.tgz",
+ "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=",
+ "dev": true
+ },
+ "mute-stream": {
+ "version": "0.0.8",
+ "resolved": "https://registry.nlark.com/mute-stream/download/mute-stream-0.0.8.tgz",
+ "integrity": "sha1-FjDEKyJR/4HiooPelqVJfqkuXg0=",
+ "dev": true
+ },
+ "nanoid": {
+ "version": "3.1.30",
+ "resolved": "https://registry.npmmirror.com/nanoid/download/nanoid-3.1.30.tgz?cache=0&sync_timestamp=1634166192601&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fnanoid%2Fdownload%2Fnanoid-3.1.30.tgz",
+ "integrity": "sha1-Y/k8xUjSoRPcXfvGO/oJ4rm2Q2I=",
+ "dev": true
+ },
+ "nanomatch": {
+ "version": "1.2.13",
+ "resolved": "https://registry.nlark.com/nanomatch/download/nanomatch-1.2.13.tgz",
+ "integrity": "sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=",
+ "dev": true,
+ "requires": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "fragment-cache": "^0.2.1",
+ "is-windows": "^1.0.2",
+ "kind-of": "^6.0.2",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ }
+ },
+ "native-request": {
+ "version": "1.1.0",
+ "resolved": "https://registry.nlark.com/native-request/download/native-request-1.1.0.tgz?cache=0&sync_timestamp=1630540604934&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnative-request%2Fdownload%2Fnative-request-1.1.0.tgz",
+ "integrity": "sha1-rNsw/i7vo+G8jFSzpoUunFwNPLA=",
+ "dev": true,
+ "optional": true
+ },
+ "natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npm.taobao.org/natural-compare/download/natural-compare-1.4.0.tgz",
+ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
+ "dev": true
+ },
+ "needle": {
+ "version": "2.9.1",
+ "resolved": "https://registry.nlark.com/needle/download/needle-2.9.1.tgz?cache=0&sync_timestamp=1630674995929&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fneedle%2Fdownload%2Fneedle-2.9.1.tgz",
+ "integrity": "sha1-ItHf++NJDCuD4wH3cJtnNs2PJoQ=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "debug": "^3.2.6",
+ "iconv-lite": "^0.4.4",
+ "sax": "^1.2.4"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmmirror.com/debug/download/debug-3.2.7.tgz",
+ "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ }
+ }
+ },
+ "negotiator": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npm.taobao.org/negotiator/download/negotiator-0.6.2.tgz",
+ "integrity": "sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs=",
+ "dev": true
+ },
+ "neo-async": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npm.taobao.org/neo-async/download/neo-async-2.6.2.tgz",
+ "integrity": "sha1-tKr7k+OustgXTKU88WOrfXMIMF8=",
+ "dev": true
+ },
+ "ng-alain": {
+ "version": "12.4.2",
+ "resolved": "https://registry.npmmirror.com/ng-alain/download/ng-alain-12.4.2.tgz",
+ "integrity": "sha512-BqKIqeHKbSu9VRgJCN8JelCYdelKFl7dIhQyG0lps1wWDJhhEBLVBdOmzITaC8kowKvL6DBJtOZf8SZJ687WYw==",
+ "dev": true,
+ "requires": {
+ "swagger-typescript-api": "^9.3.1"
+ }
+ },
+ "ng-alain-plugin-theme": {
+ "version": "12.0.0",
+ "resolved": "https://registry.nlark.com/ng-alain-plugin-theme/download/ng-alain-plugin-theme-12.0.0.tgz?cache=0&sync_timestamp=1626077688559&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fng-alain-plugin-theme%2Fdownload%2Fng-alain-plugin-theme-12.0.0.tgz",
+ "integrity": "sha1-F5FVp/NG39v4fJTvUCNQprlETmA=",
+ "dev": true,
+ "requires": {
+ "@angular-devkit/build-angular": "^12.0.0",
+ "hash.js": "^1.0.0",
+ "less": "^3.12.0",
+ "less-plugin-clean-css": "^1.5.1",
+ "less-plugin-npm-import": "^2.1.0",
+ "less-vars-to-js": "^1.3.0",
+ "meow": "^7.1.0",
+ "postcss": "^7.0.0",
+ "strip-css-comments": "^4.1.0"
+ },
+ "dependencies": {
+ "less": {
+ "version": "3.13.1",
+ "resolved": "https://registry.npmmirror.com/less/download/less-3.13.1.tgz",
+ "integrity": "sha1-DryR0qDpwMZzW4PUlrCrBYMHeQk=",
+ "dev": true,
+ "requires": {
+ "copy-anything": "^2.0.1",
+ "errno": "^0.1.1",
+ "graceful-fs": "^4.1.2",
+ "image-size": "~0.5.0",
+ "make-dir": "^2.1.0",
+ "mime": "^1.4.1",
+ "native-request": "^1.0.5",
+ "source-map": "~0.6.0",
+ "tslib": "^1.10.0"
+ }
+ },
+ "make-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-2.1.0.tgz",
+ "integrity": "sha1-XwMQ4YuL6JjMBwCSlaMK5B6R5vU=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "pify": "^4.0.1",
+ "semver": "^5.6.0"
+ }
+ },
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz",
+ "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=",
+ "dev": true,
+ "optional": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ },
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.nlark.com/tslib/download/tslib-1.14.1.tgz?cache=0&sync_timestamp=1628722556410&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftslib%2Fdownload%2Ftslib-1.14.1.tgz",
+ "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=",
+ "dev": true
+ }
+ }
+ },
+ "ng-alain-sts": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npm.taobao.org/ng-alain-sts/download/ng-alain-sts-0.0.1.tgz",
+ "integrity": "sha1-Fmm8TXj7U3TdmlFgeYShR5j6Qn0=",
+ "dev": true,
+ "requires": {
+ "@types/swagger-schema-official": "^2.0.15",
+ "extend": "^3.0.2",
+ "meow": "^5.0.0",
+ "request": "^2.88.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmmirror.com/camelcase/download/camelcase-4.1.0.tgz?cache=0&sync_timestamp=1636945205805&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcamelcase%2Fdownload%2Fcamelcase-4.1.0.tgz",
+ "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
+ "dev": true
+ },
+ "camelcase-keys": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmmirror.com/camelcase-keys/download/camelcase-keys-4.2.0.tgz?cache=0&sync_timestamp=1633332959770&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcamelcase-keys%2Fdownload%2Fcamelcase-keys-4.2.0.tgz",
+ "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=",
+ "dev": true,
+ "requires": {
+ "camelcase": "^4.1.0",
+ "map-obj": "^2.0.0",
+ "quick-lru": "^1.0.0"
+ }
+ },
+ "indent-string": {
+ "version": "3.2.0",
+ "resolved": "https://registry.nlark.com/indent-string/download/indent-string-3.2.0.tgz?cache=0&sync_timestamp=1622604582006&other_urls=https%3A%2F%2Fregistry.nlark.com%2Findent-string%2Fdownload%2Findent-string-3.2.0.tgz",
+ "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=",
+ "dev": true
+ },
+ "map-obj": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/map-obj/download/map-obj-2.0.0.tgz?cache=0&sync_timestamp=1634552719803&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fmap-obj%2Fdownload%2Fmap-obj-2.0.0.tgz",
+ "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=",
+ "dev": true
+ },
+ "meow": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmmirror.com/meow/download/meow-5.0.0.tgz?cache=0&sync_timestamp=1637477569022&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fmeow%2Fdownload%2Fmeow-5.0.0.tgz",
+ "integrity": "sha1-38c9Y6mvxxSl43F2DrXIi5EHiqQ=",
+ "dev": true,
+ "requires": {
+ "camelcase-keys": "^4.0.0",
+ "decamelize-keys": "^1.0.0",
+ "loud-rejection": "^1.0.0",
+ "minimist-options": "^3.0.1",
+ "normalize-package-data": "^2.3.4",
+ "read-pkg-up": "^3.0.0",
+ "redent": "^2.0.0",
+ "trim-newlines": "^2.0.0",
+ "yargs-parser": "^10.0.0"
+ }
+ },
+ "minimist-options": {
+ "version": "3.0.2",
+ "resolved": "https://registry.nlark.com/minimist-options/download/minimist-options-3.0.2.tgz",
+ "integrity": "sha1-+6TIGRM54T7PTWG+sD8HAQPz2VQ=",
+ "dev": true,
+ "requires": {
+ "arrify": "^1.0.1",
+ "is-plain-obj": "^1.1.0"
+ }
+ },
+ "quick-lru": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/quick-lru/download/quick-lru-1.1.0.tgz",
+ "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=",
+ "dev": true
+ },
+ "redent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/redent/download/redent-2.0.0.tgz?cache=0&sync_timestamp=1620070119923&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fredent%2Fdownload%2Fredent-2.0.0.tgz",
+ "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=",
+ "dev": true,
+ "requires": {
+ "indent-string": "^3.0.0",
+ "strip-indent": "^2.0.0"
+ }
+ },
+ "strip-indent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/strip-indent/download/strip-indent-2.0.0.tgz?cache=0&sync_timestamp=1620053310624&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-indent%2Fdownload%2Fstrip-indent-2.0.0.tgz",
+ "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=",
+ "dev": true
+ },
+ "trim-newlines": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/trim-newlines/download/trim-newlines-2.0.0.tgz?cache=0&sync_timestamp=1623341510447&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftrim-newlines%2Fdownload%2Ftrim-newlines-2.0.0.tgz",
+ "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=",
+ "dev": true
+ },
+ "yargs-parser": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmmirror.com/yargs-parser/download/yargs-parser-10.1.0.tgz?cache=0&sync_timestamp=1637031053426&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fyargs-parser%2Fdownload%2Fyargs-parser-10.1.0.tgz",
+ "integrity": "sha1-cgImW4n36eny5XZeD+c1qQXtuqg=",
+ "dev": true,
+ "requires": {
+ "camelcase": "^4.1.0"
+ }
+ }
+ }
+ },
+ "ng-gallery": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmmirror.com/ng-gallery/download/ng-gallery-5.1.1.tgz",
+ "integrity": "sha1-KtAgJ9WJ55817PcJIiLaIQzHvgE=",
+ "requires": {
+ "tslib": "^2.0.0"
+ }
+ },
+ "ng-zorro-antd": {
+ "version": "12.0.2",
+ "resolved": "https://registry.npmmirror.com/ng-zorro-antd/download/ng-zorro-antd-12.0.2.tgz",
+ "integrity": "sha1-ih1BLid7lT35tYDNNmdEidfmTgM=",
+ "requires": {
+ "@angular/cdk": "^12.1.0",
+ "@ant-design/icons-angular": "^12.0.3",
+ "date-fns": "^2.10.0",
+ "tslib": "^2.2.0"
+ }
+ },
+ "ngx-countdown": {
+ "version": "12.0.1",
+ "resolved": "https://registry.nlark.com/ngx-countdown/download/ngx-countdown-12.0.1.tgz",
+ "integrity": "sha1-C9au9MqDuvy8Pdk2bIRJTSuTzic=",
+ "requires": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "ngx-tinymce": {
+ "version": "12.0.0",
+ "resolved": "https://registry.nlark.com/ngx-tinymce/download/ngx-tinymce-12.0.0.tgz",
+ "integrity": "sha1-xTxfFUnLssOmoU4pBP3ZDa5xLzw=",
+ "requires": {
+ "@ng-util/lazy": "^11.1.0",
+ "@ng-util/util": "^11.1.0",
+ "tslib": "^2.1.0"
+ }
+ },
+ "ngx-trend": {
+ "version": "7.0.0",
+ "resolved": "https://registry.nlark.com/ngx-trend/download/ngx-trend-7.0.0.tgz",
+ "integrity": "sha1-m6hRCd7EU+chOvO4gOJokkhG0ys=",
+ "requires": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "nice-napi": {
+ "version": "1.0.2",
+ "resolved": "https://registry.nlark.com/nice-napi/download/nice-napi-1.0.2.tgz",
+ "integrity": "sha1-3Aq1oerCDOVIgC/FaG6qa8ZUkns=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "node-addon-api": "^3.0.0",
+ "node-gyp-build": "^4.2.2"
+ }
+ },
+ "nice-try": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npm.taobao.org/nice-try/download/nice-try-1.0.5.tgz?cache=0&sync_timestamp=1614510016909&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnice-try%2Fdownload%2Fnice-try-1.0.5.tgz",
+ "integrity": "sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y=",
+ "dev": true
+ },
+ "node-addon-api": {
+ "version": "3.2.1",
+ "resolved": "https://registry.nlark.com/node-addon-api/download/node-addon-api-3.2.1.tgz",
+ "integrity": "sha1-gTJeCiEXeJwBKNq2Xn448HzroWE=",
+ "dev": true,
+ "optional": true
+ },
+ "node-emoji": {
+ "version": "1.11.0",
+ "resolved": "https://registry.nlark.com/node-emoji/download/node-emoji-1.11.0.tgz",
+ "integrity": "sha1-aaAVDmlG4vEV6dfqTfeXHiYoMBw=",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.21"
+ }
+ },
+ "node-fetch": {
+ "version": "2.6.6",
+ "resolved": "https://registry.npmmirror.com/node-fetch/download/node-fetch-2.6.6.tgz?cache=0&sync_timestamp=1636395469986&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fnode-fetch%2Fdownload%2Fnode-fetch-2.6.6.tgz",
+ "integrity": "sha1-F1GnwBg06OFpd1hzLp77burfr4k=",
+ "dev": true,
+ "requires": {
+ "whatwg-url": "^5.0.0"
+ }
+ },
+ "node-fetch-h2": {
+ "version": "2.3.0",
+ "resolved": "https://registry.nlark.com/node-fetch-h2/download/node-fetch-h2-2.3.0.tgz",
+ "integrity": "sha1-xhiDJfm9PYNAIL8PLW3BfO0iQaw=",
+ "dev": true,
+ "requires": {
+ "http2-client": "^1.2.5"
+ }
+ },
+ "node-forge": {
+ "version": "0.10.0",
+ "resolved": "https://registry.nlark.com/node-forge/download/node-forge-0.10.0.tgz",
+ "integrity": "sha1-Mt6ir7Ppkm8C7lzoeUkCaRpna/M=",
+ "dev": true
+ },
+ "node-gyp": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmmirror.com/node-gyp/download/node-gyp-7.1.2.tgz?cache=0&sync_timestamp=1637570177658&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fnode-gyp%2Fdownload%2Fnode-gyp-7.1.2.tgz",
+ "integrity": "sha1-IagQrrsYcSAlHDvOyXmvFYexiK4=",
+ "dev": true,
+ "requires": {
+ "env-paths": "^2.2.0",
+ "glob": "^7.1.4",
+ "graceful-fs": "^4.2.3",
+ "nopt": "^5.0.0",
+ "npmlog": "^4.1.2",
+ "request": "^2.88.2",
+ "rimraf": "^3.0.2",
+ "semver": "^7.3.2",
+ "tar": "^6.0.2",
+ "which": "^2.0.2"
+ },
+ "dependencies": {
+ "which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npm.taobao.org/which/download/which-2.0.2.tgz",
+ "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ }
+ }
+ },
+ "node-gyp-build": {
+ "version": "4.3.0",
+ "resolved": "https://registry.nlark.com/node-gyp-build/download/node-gyp-build-4.3.0.tgz?cache=0&sync_timestamp=1631436711963&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnode-gyp-build%2Fdownload%2Fnode-gyp-build-4.3.0.tgz",
+ "integrity": "sha1-nyVrA+WCYVC+Ocdkv1Hpk5RtcaM=",
+ "dev": true,
+ "optional": true
+ },
+ "node-readfiles": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npm.taobao.org/node-readfiles/download/node-readfiles-0.2.0.tgz",
+ "integrity": "sha1-271K8SE04uY1wkXvk//Pb2BnOl0=",
+ "dev": true,
+ "requires": {
+ "es6-promise": "^3.2.1"
+ }
+ },
+ "node-releases": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/node-releases/download/node-releases-2.0.1.tgz?cache=0&sync_timestamp=1634806914912&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fnode-releases%2Fdownload%2Fnode-releases-2.0.1.tgz",
+ "integrity": "sha1-PR05XyBPHy8ppUNYuftnh2WtL8U=",
+ "dev": true
+ },
+ "nopt": {
+ "version": "5.0.0",
+ "resolved": "https://registry.nlark.com/nopt/download/nopt-5.0.0.tgz",
+ "integrity": "sha1-UwlCu1ilEvzK/lP+IQ8TolNV3Ig=",
+ "dev": true,
+ "requires": {
+ "abbrev": "1"
+ }
+ },
+ "normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.nlark.com/normalize-package-data/download/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=",
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ },
+ "dependencies": {
+ "hosted-git-info": {
+ "version": "2.8.9",
+ "resolved": "https://registry.nlark.com/hosted-git-info/download/hosted-git-info-2.8.9.tgz",
+ "integrity": "sha1-3/wL+aIcAiCQkPKqaUKeFBTa8/k=",
+ "dev": true
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz",
+ "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=",
+ "dev": true
+ }
+ }
+ },
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.nlark.com/normalize-path/download/normalize-path-3.0.0.tgz",
+ "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=",
+ "dev": true
+ },
+ "normalize-range": {
+ "version": "0.1.2",
+ "resolved": "https://registry.nlark.com/normalize-range/download/normalize-range-0.1.2.tgz",
+ "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=",
+ "dev": true
+ },
+ "normalize-selector": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npm.taobao.org/normalize-selector/download/normalize-selector-0.2.0.tgz",
+ "integrity": "sha1-0LFF62kRicY6eNIB3E/bEpPvDAM=",
+ "dev": true
+ },
+ "normalize-url": {
+ "version": "6.1.0",
+ "resolved": "https://registry.nlark.com/normalize-url/download/normalize-url-6.1.0.tgz",
+ "integrity": "sha1-QNCIW1Nd7/4/MUe+yHfQX+TFZoo=",
+ "dev": true
+ },
+ "npm-bundled": {
+ "version": "1.1.2",
+ "resolved": "https://registry.nlark.com/npm-bundled/download/npm-bundled-1.1.2.tgz",
+ "integrity": "sha1-lEx4eJvXOQNbcLqiylzDK42GC8E=",
+ "dev": true,
+ "requires": {
+ "npm-normalize-package-bin": "^1.0.1"
+ }
+ },
+ "npm-install-checks": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/npm-install-checks/download/npm-install-checks-4.0.0.tgz",
+ "integrity": "sha1-o3+sx2Oi/eBJfvLG0Kx8P74A17Q=",
+ "dev": true,
+ "requires": {
+ "semver": "^7.1.1"
+ }
+ },
+ "npm-normalize-package-bin": {
+ "version": "1.0.1",
+ "resolved": "https://registry.nlark.com/npm-normalize-package-bin/download/npm-normalize-package-bin-1.0.1.tgz",
+ "integrity": "sha1-bnmkHyP9I1wGIyGCKNp9nCO49uI=",
+ "dev": true
+ },
+ "npm-package-arg": {
+ "version": "8.1.5",
+ "resolved": "https://registry.nlark.com/npm-package-arg/download/npm-package-arg-8.1.5.tgz?cache=0&sync_timestamp=1623784505093&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnpm-package-arg%2Fdownload%2Fnpm-package-arg-8.1.5.tgz",
+ "integrity": "sha1-M2my1f6P3GdLqn8XhlFN3BVGbkQ=",
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "^4.0.1",
+ "semver": "^7.3.4",
+ "validate-npm-package-name": "^3.0.0"
+ }
+ },
+ "npm-packlist": {
+ "version": "2.2.2",
+ "resolved": "https://registry.nlark.com/npm-packlist/download/npm-packlist-2.2.2.tgz?cache=0&sync_timestamp=1629740697962&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnpm-packlist%2Fdownload%2Fnpm-packlist-2.2.2.tgz",
+ "integrity": "sha1-B2uXKT+mIPYygzGGp6j2WqphSMg=",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.6",
+ "ignore-walk": "^3.0.3",
+ "npm-bundled": "^1.1.1",
+ "npm-normalize-package-bin": "^1.0.1"
+ }
+ },
+ "npm-pick-manifest": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npm.taobao.org/npm-pick-manifest/download/npm-pick-manifest-6.1.1.tgz",
+ "integrity": "sha1-e1SEyiyQhWX0O38nZE82u4FvUUg=",
+ "dev": true,
+ "requires": {
+ "npm-install-checks": "^4.0.0",
+ "npm-normalize-package-bin": "^1.0.1",
+ "npm-package-arg": "^8.1.2",
+ "semver": "^7.3.4"
+ }
+ },
+ "npm-registry-fetch": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmmirror.com/npm-registry-fetch/download/npm-registry-fetch-11.0.0.tgz",
+ "integrity": "sha1-aMG7gQxGVCdg1ipqll+FpwLUOnY=",
+ "dev": true,
+ "requires": {
+ "make-fetch-happen": "^9.0.1",
+ "minipass": "^3.1.3",
+ "minipass-fetch": "^1.3.0",
+ "minipass-json-stream": "^1.0.1",
+ "minizlib": "^2.0.0",
+ "npm-package-arg": "^8.0.0"
+ }
+ },
+ "npm-run-path": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/npm-run-path/download/npm-run-path-2.0.2.tgz",
+ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
+ "dev": true,
+ "requires": {
+ "path-key": "^2.0.0"
+ }
+ },
+ "npmlog": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmmirror.com/npmlog/download/npmlog-4.1.2.tgz",
+ "integrity": "sha1-CKfyqL9zRgR3mp76StXMcXq7lUs=",
+ "dev": true,
+ "requires": {
+ "are-we-there-yet": "~1.1.2",
+ "console-control-strings": "~1.1.0",
+ "gauge": "~2.7.3",
+ "set-blocking": "~2.0.0"
+ }
+ },
+ "nth-check": {
+ "version": "2.0.1",
+ "resolved": "https://registry.nlark.com/nth-check/download/nth-check-2.0.1.tgz",
+ "integrity": "sha1-Lv4WL1w9oGoolZ+9PbddvuqfD8I=",
+ "dev": true,
+ "requires": {
+ "boolbase": "^1.0.0"
+ }
+ },
+ "num2fraction": {
+ "version": "1.2.2",
+ "resolved": "https://registry.nlark.com/num2fraction/download/num2fraction-1.2.2.tgz",
+ "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=",
+ "dev": true
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/number-is-nan/download/number-is-nan-1.0.1.tgz",
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+ "dev": true
+ },
+ "nx": {
+ "version": "12.10.0",
+ "resolved": "https://registry.npmmirror.com/nx/download/nx-12.10.0.tgz",
+ "integrity": "sha1-pOj7pyVFKd5p/lTltLAH6KQyo/s=",
+ "dev": true,
+ "requires": {
+ "@nrwl/cli": "*"
+ },
+ "dependencies": {
+ "@nrwl/cli": {
+ "version": "13.2.2",
+ "resolved": "https://registry.npmmirror.com/@nrwl/cli/download/@nrwl/cli-13.2.2.tgz",
+ "integrity": "sha512-iqWwULCgYV3r+sKA/jrh4Di5buesPDcmdG0vi4kFnMgNF3Pg+8Coa7qKXJXdTr1gugBfGPFFmHORmH1pE3CMYA==",
+ "dev": true,
+ "requires": {
+ "@nrwl/tao": "13.2.2",
+ "chalk": "4.1.0",
+ "enquirer": "~2.3.6",
+ "v8-compile-cache": "2.3.0",
+ "yargs": "15.4.1",
+ "yargs-parser": "20.0.0"
+ }
+ },
+ "@nrwl/tao": {
+ "version": "13.2.2",
+ "resolved": "https://registry.npmmirror.com/@nrwl/tao/download/@nrwl/tao-13.2.2.tgz",
+ "integrity": "sha512-IQtiTuouagSYpxztJvxD1XYha1eLagFoJV/2Y7bu6jUx5KTT5chLzXbz18WUeKhkuZAHhhb2UeOmL9ggQpWnZQ==",
+ "dev": true,
+ "requires": {
+ "chalk": "4.1.0",
+ "enquirer": "~2.3.6",
+ "fs-extra": "^9.1.0",
+ "jsonc-parser": "3.0.0",
+ "nx": "13.2.2",
+ "rxjs": "^6.5.4",
+ "rxjs-for-await": "0.0.2",
+ "semver": "7.3.4",
+ "tmp": "~0.2.1",
+ "tslib": "^2.3.0",
+ "yargs-parser": "20.0.0"
+ },
+ "dependencies": {
+ "nx": {
+ "version": "13.2.2",
+ "resolved": "https://registry.npmmirror.com/nx/download/nx-13.2.2.tgz",
+ "integrity": "sha512-d13Xb3pswItWS9sP4+ed4JarkTzo6+gCBNWSgxuO6MMkmKZPXH3yM3an9KlA5jCyFygcsny7CIgwwxJhz1SJCg==",
+ "dev": true,
+ "requires": {
+ "@nrwl/cli": "*"
+ }
+ }
+ }
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz",
+ "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.0",
+ "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.0.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz",
+ "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "cliui": {
+ "version": "6.0.0",
+ "resolved": "https://registry.nlark.com/cliui/download/cliui-6.0.0.tgz",
+ "integrity": "sha1-UR1wLAxOQcoVbX0OlgIfI+EyJbE=",
+ "dev": true,
+ "requires": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^6.2.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
+ "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
+ "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz",
+ "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=",
+ "dev": true
+ },
+ "semver": {
+ "version": "7.3.4",
+ "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.3.4.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.4.tgz",
+ "integrity": "sha1-J6qn0uTKdkUvmNOt0JOnLJQ+3Jc=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmmirror.com/supports-color/download/supports-color-7.2.0.tgz",
+ "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "tmp": {
+ "version": "0.2.1",
+ "resolved": "https://registry.nlark.com/tmp/download/tmp-0.2.1.tgz",
+ "integrity": "sha1-hFf8MDfc9HGcJRNnoa9lAO4czxQ=",
+ "dev": true,
+ "requires": {
+ "rimraf": "^3.0.0"
+ }
+ },
+ "wrap-ansi": {
+ "version": "6.2.0",
+ "resolved": "https://registry.nlark.com/wrap-ansi/download/wrap-ansi-6.2.0.tgz?cache=0&sync_timestamp=1631557327268&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwrap-ansi%2Fdownload%2Fwrap-ansi-6.2.0.tgz",
+ "integrity": "sha1-6Tk7oHEC5skaOyIUePAlfNKFblM=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "yargs": {
+ "version": "15.4.1",
+ "resolved": "https://registry.npmmirror.com/yargs/download/yargs-15.4.1.tgz",
+ "integrity": "sha1-DYehbeAa7p2L7Cv7909nhRcw9Pg=",
+ "dev": true,
+ "requires": {
+ "cliui": "^6.0.0",
+ "decamelize": "^1.2.0",
+ "find-up": "^4.1.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^4.2.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^18.1.2"
+ },
+ "dependencies": {
+ "yargs-parser": {
+ "version": "18.1.3",
+ "resolved": "https://registry.npmmirror.com/yargs-parser/download/yargs-parser-18.1.3.tgz?cache=0&sync_timestamp=1637031053426&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fyargs-parser%2Fdownload%2Fyargs-parser-18.1.3.tgz",
+ "integrity": "sha1-vmjEl1xrKr9GkjawyHA2L6sJp7A=",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
+ }
+ }
+ },
+ "yargs-parser": {
+ "version": "20.0.0",
+ "resolved": "https://registry.npmmirror.com/yargs-parser/download/yargs-parser-20.0.0.tgz?cache=0&sync_timestamp=1637031053426&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fyargs-parser%2Fdownload%2Fyargs-parser-20.0.0.tgz",
+ "integrity": "sha1-xlodqql3rWPOvdUhWRR7eJpOGak=",
+ "dev": true
+ }
+ }
+ },
+ "oas-kit-common": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npm.taobao.org/oas-kit-common/download/oas-kit-common-1.0.8.tgz",
+ "integrity": "sha1-bYys9ukJeWekx+qLy8vXcBjh9TU=",
+ "dev": true,
+ "requires": {
+ "fast-safe-stringify": "^2.0.7"
+ }
+ },
+ "oas-linter": {
+ "version": "3.2.2",
+ "resolved": "https://registry.nlark.com/oas-linter/download/oas-linter-3.2.2.tgz",
+ "integrity": "sha1-q2ozc2MTSQZZA1ymgC3Es11Iqh4=",
+ "dev": true,
+ "requires": {
+ "@exodus/schemasafe": "^1.0.0-rc.2",
+ "should": "^13.2.1",
+ "yaml": "^1.10.0"
+ }
+ },
+ "oas-resolver": {
+ "version": "2.5.6",
+ "resolved": "https://registry.nlark.com/oas-resolver/download/oas-resolver-2.5.6.tgz",
+ "integrity": "sha1-EEMFact9rKVhFckV5hHrxVFcVhs=",
+ "dev": true,
+ "requires": {
+ "node-fetch-h2": "^2.3.0",
+ "oas-kit-common": "^1.0.8",
+ "reftools": "^1.1.9",
+ "yaml": "^1.10.0",
+ "yargs": "^17.0.1"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz",
+ "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "cliui": {
+ "version": "7.0.4",
+ "resolved": "https://registry.nlark.com/cliui/download/cliui-7.0.4.tgz",
+ "integrity": "sha1-oCZe5lVHb8gHrqnfPfjfd4OAi08=",
+ "dev": true,
+ "requires": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
+ "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
+ "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
+ "dev": true
+ },
+ "wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.nlark.com/wrap-ansi/download/wrap-ansi-7.0.0.tgz?cache=0&sync_timestamp=1631557327268&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwrap-ansi%2Fdownload%2Fwrap-ansi-7.0.0.tgz",
+ "integrity": "sha1-Z+FFz/UQpqaYS98RUpEdadLrnkM=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npm.taobao.org/y18n/download/y18n-5.0.8.tgz?cache=0&sync_timestamp=1617822684820&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fy18n%2Fdownload%2Fy18n-5.0.8.tgz",
+ "integrity": "sha1-f0k00PfKjFb5UxSTndzS3ZHOHVU=",
+ "dev": true
+ },
+ "yargs": {
+ "version": "17.2.1",
+ "resolved": "https://registry.npmmirror.com/yargs/download/yargs-17.2.1.tgz",
+ "integrity": "sha1-4slbl5ag4ffzv0QnhjtC4EGBkeo=",
+ "dev": true,
+ "requires": {
+ "cliui": "^7.0.2",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.0",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^20.2.2"
+ }
+ },
+ "yargs-parser": {
+ "version": "20.2.9",
+ "resolved": "https://registry.npmmirror.com/yargs-parser/download/yargs-parser-20.2.9.tgz?cache=0&sync_timestamp=1637031053426&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fyargs-parser%2Fdownload%2Fyargs-parser-20.2.9.tgz",
+ "integrity": "sha1-LrfcOwKJcY/ClfNidThFxBoMlO4=",
+ "dev": true
+ }
+ }
+ },
+ "oas-schema-walker": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npm.taobao.org/oas-schema-walker/download/oas-schema-walker-1.1.5.tgz",
+ "integrity": "sha1-dMPNR7cP+OCxmtraFEVbXTrDiiI=",
+ "dev": true
+ },
+ "oas-validator": {
+ "version": "5.0.8",
+ "resolved": "https://registry.nlark.com/oas-validator/download/oas-validator-5.0.8.tgz",
+ "integrity": "sha1-OH6Q33yvotP/yDtfuXYFK4fnPCg=",
+ "dev": true,
+ "requires": {
+ "call-me-maybe": "^1.0.1",
+ "oas-kit-common": "^1.0.8",
+ "oas-linter": "^3.2.2",
+ "oas-resolver": "^2.5.6",
+ "oas-schema-walker": "^1.1.5",
+ "reftools": "^1.1.9",
+ "should": "^13.2.1",
+ "yaml": "^1.10.0"
+ }
+ },
+ "oauth-sign": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.9.0.tgz",
+ "integrity": "sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU=",
+ "dev": true
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.nlark.com/object-assign/download/object-assign-4.1.1.tgz?cache=0&sync_timestamp=1618846992533&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fobject-assign%2Fdownload%2Fobject-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ },
+ "object-copy": {
+ "version": "0.1.0",
+ "resolved": "https://registry.nlark.com/object-copy/download/object-copy-0.1.0.tgz",
+ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
+ "dev": true,
+ "requires": {
+ "copy-descriptor": "^0.1.0",
+ "define-property": "^0.2.5",
+ "kind-of": "^3.0.3"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.nlark.com/define-property/download/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "object-inspect": {
+ "version": "1.11.0",
+ "resolved": "https://registry.nlark.com/object-inspect/download/object-inspect-1.11.0.tgz?cache=0&sync_timestamp=1626120241132&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fobject-inspect%2Fdownload%2Fobject-inspect-1.11.0.tgz",
+ "integrity": "sha1-nc6xRs7dQUig2eUauI00z1CZIrE=",
+ "dev": true
+ },
+ "object-is": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npm.taobao.org/object-is/download/object-is-1.1.5.tgz?cache=0&sync_timestamp=1613857698573&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-is%2Fdownload%2Fobject-is-1.1.5.tgz",
+ "integrity": "sha1-ud7qpfx/GEag+uzc7sE45XePU6w=",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3"
+ }
+ },
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npm.taobao.org/object-keys/download/object-keys-1.1.1.tgz",
+ "integrity": "sha1-HEfyct8nfzsdrwYWd9nILiMixg4="
+ },
+ "object-visit": {
+ "version": "1.0.1",
+ "resolved": "https://registry.nlark.com/object-visit/download/object-visit-1.0.1.tgz",
+ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
+ "dev": true,
+ "requires": {
+ "isobject": "^3.0.0"
+ }
+ },
+ "object.assign": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npm.taobao.org/object.assign/download/object.assign-4.1.2.tgz?cache=0&sync_timestamp=1604115183005&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.assign%2Fdownload%2Fobject.assign-4.1.2.tgz",
+ "integrity": "sha1-DtVKNC7Os3s4/3brgxoOeIy2OUA=",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3",
+ "has-symbols": "^1.0.1",
+ "object-keys": "^1.1.1"
+ }
+ },
+ "object.pick": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npm.taobao.org/object.pick/download/object.pick-1.3.0.tgz",
+ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
+ "dev": true,
+ "requires": {
+ "isobject": "^3.0.1"
+ }
+ },
+ "object.values": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmmirror.com/object.values/download/object.values-1.1.5.tgz?cache=0&sync_timestamp=1633326983597&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fobject.values%2Fdownload%2Fobject.values-1.1.5.tgz",
+ "integrity": "sha1-lZ9j486e8QhyAzMIITHkpFm3Fqw=",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.19.1"
+ }
+ },
+ "obuf": {
+ "version": "1.1.2",
+ "resolved": "https://registry.nlark.com/obuf/download/obuf-1.1.2.tgz",
+ "integrity": "sha1-Cb6jND1BhZ69RGKS0RydTbYZCE4=",
+ "dev": true
+ },
+ "on-finished": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz?cache=0&sync_timestamp=1614930634590&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fon-finished%2Fdownload%2Fon-finished-2.3.0.tgz",
+ "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
+ "dev": true,
+ "requires": {
+ "ee-first": "1.1.1"
+ }
+ },
+ "on-headers": {
+ "version": "1.0.2",
+ "resolved": "https://registry.nlark.com/on-headers/download/on-headers-1.0.2.tgz",
+ "integrity": "sha1-dysK5qqlJcOZ5Imt+tkMQD6zwo8=",
+ "dev": true
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npm.taobao.org/once/download/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dev": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "onetime": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-5.1.2.tgz",
+ "integrity": "sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "^2.1.0"
+ }
+ },
+ "open": {
+ "version": "8.2.1",
+ "resolved": "https://registry.npmmirror.com/open/download/open-8.2.1.tgz",
+ "integrity": "sha1-gt5C2gzL9Cm8EtCZ2tLgl14U6K8=",
+ "dev": true,
+ "requires": {
+ "define-lazy-prop": "^2.0.0",
+ "is-docker": "^2.1.1",
+ "is-wsl": "^2.2.0"
+ }
+ },
+ "opn": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmmirror.com/opn/download/opn-5.5.0.tgz",
+ "integrity": "sha1-/HFk+rVtI1kExRw7J9pnWMo7m/w=",
+ "dev": true,
+ "requires": {
+ "is-wsl": "^1.1.0"
+ },
+ "dependencies": {
+ "is-wsl": {
+ "version": "1.1.0",
+ "resolved": "https://registry.nlark.com/is-wsl/download/is-wsl-1.1.0.tgz",
+ "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=",
+ "dev": true
+ }
+ }
+ },
+ "optionator": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npm.taobao.org/optionator/download/optionator-0.9.1.tgz",
+ "integrity": "sha1-TyNqY3Pa4FZqbUPhMmZ09QwpFJk=",
+ "dev": true,
+ "requires": {
+ "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.3"
+ }
+ },
+ "ora": {
+ "version": "5.4.1",
+ "resolved": "https://registry.nlark.com/ora/download/ora-5.4.1.tgz?cache=0&sync_timestamp=1631556658795&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fora%2Fdownload%2Fora-5.4.1.tgz",
+ "integrity": "sha1-GyZ4Qmr0rEpQkAjl5KyemVnbnhg=",
+ "dev": true,
+ "requires": {
+ "bl": "^4.1.0",
+ "chalk": "^4.1.0",
+ "cli-cursor": "^3.1.0",
+ "cli-spinners": "^2.5.0",
+ "is-interactive": "^1.0.0",
+ "is-unicode-supported": "^0.1.0",
+ "log-symbols": "^4.1.0",
+ "strip-ansi": "^6.0.0",
+ "wcwidth": "^1.0.1"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz",
+ "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz",
+ "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
+ "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
+ "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz",
+ "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmmirror.com/supports-color/download/supports-color-7.2.0.tgz",
+ "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "original": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npm.taobao.org/original/download/original-1.0.2.tgz",
+ "integrity": "sha1-5EKmHP/hxf0gpl8yYcJmY7MD8l8=",
+ "dev": true,
+ "requires": {
+ "url-parse": "^1.4.3"
+ }
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
+ "dev": true
+ },
+ "outlayer": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npm.taobao.org/outlayer/download/outlayer-2.1.1.tgz",
+ "integrity": "sha1-KYY7beEOpdrf/8rfoNcokHOH6aI=",
+ "requires": {
+ "ev-emitter": "^1.0.0",
+ "fizzy-ui-utils": "^2.0.0",
+ "get-size": "^2.0.2"
+ }
+ },
+ "p-defer": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/p-defer/download/p-defer-1.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-defer%2Fdownload%2Fp-defer-1.0.0.tgz",
+ "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=",
+ "dev": true
+ },
+ "p-finally": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/p-finally/download/p-finally-1.0.0.tgz",
+ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
+ "dev": true
+ },
+ "p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.nlark.com/p-limit/download/p-limit-2.3.0.tgz?cache=0&sync_timestamp=1628812766275&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz",
+ "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=",
+ "dev": true,
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.nlark.com/p-locate/download/p-locate-4.1.0.tgz",
+ "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.2.0"
+ }
+ },
+ "p-map": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/p-map/download/p-map-4.0.0.tgz?cache=0&sync_timestamp=1635931861684&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fp-map%2Fdownload%2Fp-map-4.0.0.tgz",
+ "integrity": "sha1-uy+Vpe2i7BaOySdOBqdHw+KQTSs=",
+ "dev": true,
+ "requires": {
+ "aggregate-error": "^3.0.0"
+ }
+ },
+ "p-retry": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmmirror.com/p-retry/download/p-retry-3.0.1.tgz?cache=0&sync_timestamp=1635966813736&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fp-retry%2Fdownload%2Fp-retry-3.0.1.tgz",
+ "integrity": "sha1-MWtMiJPiyNwc+okfQGxLQivr8yg=",
+ "dev": true,
+ "requires": {
+ "retry": "^0.12.0"
+ }
+ },
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/p-try/download/p-try-2.2.0.tgz?cache=0&sync_timestamp=1633364462890&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fp-try%2Fdownload%2Fp-try-2.2.0.tgz",
+ "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=",
+ "dev": true
+ },
+ "pacote": {
+ "version": "11.3.5",
+ "resolved": "https://registry.npmmirror.com/pacote/download/pacote-11.3.5.tgz?cache=0&sync_timestamp=1634076714071&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpacote%2Fdownload%2Fpacote-11.3.5.tgz",
+ "integrity": "sha1-c88fw3crUz9XXjnvqWxQvow9ydI=",
+ "dev": true,
+ "requires": {
+ "@npmcli/git": "^2.1.0",
+ "@npmcli/installed-package-contents": "^1.0.6",
+ "@npmcli/promise-spawn": "^1.2.0",
+ "@npmcli/run-script": "^1.8.2",
+ "cacache": "^15.0.5",
+ "chownr": "^2.0.0",
+ "fs-minipass": "^2.1.0",
+ "infer-owner": "^1.0.4",
+ "minipass": "^3.1.3",
+ "mkdirp": "^1.0.3",
+ "npm-package-arg": "^8.0.1",
+ "npm-packlist": "^2.1.4",
+ "npm-pick-manifest": "^6.0.0",
+ "npm-registry-fetch": "^11.0.0",
+ "promise-retry": "^2.0.1",
+ "read-package-json-fast": "^2.0.1",
+ "rimraf": "^3.0.2",
+ "ssri": "^8.0.1",
+ "tar": "^6.1.0"
+ }
+ },
+ "pako": {
+ "version": "1.0.11",
+ "resolved": "https://registry.nlark.com/pako/download/pako-1.0.11.tgz",
+ "integrity": "sha1-bJWZ00DVTf05RjgCUqNXBaa5kr8="
+ },
+ "parchment": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npm.taobao.org/parchment/download/parchment-1.1.4.tgz",
+ "integrity": "sha1-rt7Xq5OP6SHUw0vDOc4RaLwv/eU="
+ },
+ "parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/parent-module/download/parent-module-1.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fparent-module%2Fdownload%2Fparent-module-1.0.1.tgz",
+ "integrity": "sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI=",
+ "dev": true,
+ "requires": {
+ "callsites": "^3.0.0"
+ }
+ },
+ "parse-entities": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/parse-entities/download/parse-entities-2.0.0.tgz",
+ "integrity": "sha1-U8brW5MUofTsmfoP33zgHs2gy+g=",
+ "dev": true,
+ "requires": {
+ "character-entities": "^1.0.0",
+ "character-entities-legacy": "^1.0.0",
+ "character-reference-invalid": "^1.0.0",
+ "is-alphanumerical": "^1.0.0",
+ "is-decimal": "^1.0.0",
+ "is-hexadecimal": "^1.0.0"
+ }
+ },
+ "parse-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmmirror.com/parse-json/download/parse-json-5.2.0.tgz",
+ "integrity": "sha1-x2/Gbe5UIxyWKyK8yKcs8vmXU80=",
+ "dev": true,
+ "requires": {
+ "@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"
+ }
+ },
+ "parse-node-version": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/parse-node-version/download/parse-node-version-1.0.1.tgz",
+ "integrity": "sha1-4rXb7eAOf6m8NjYH9TMn6LBzGJs=",
+ "dev": true
+ },
+ "parse-svg-path": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npm.taobao.org/parse-svg-path/download/parse-svg-path-0.1.2.tgz",
+ "integrity": "sha1-en7A0esG+lMlx9PgCbhZoJtdSes="
+ },
+ "parse5": {
+ "version": "5.1.1",
+ "resolved": "https://registry.nlark.com/parse5/download/parse5-5.1.1.tgz",
+ "integrity": "sha1-9o5OW6GFKsLK3AD0VV//bCq7YXg=",
+ "optional": true
+ },
+ "parse5-html-rewriting-stream": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npm.taobao.org/parse5-html-rewriting-stream/download/parse5-html-rewriting-stream-6.0.1.tgz",
+ "integrity": "sha1-3hggVZMXq05FHqctugX939kUSAs=",
+ "dev": true,
+ "requires": {
+ "parse5": "^6.0.1",
+ "parse5-sax-parser": "^6.0.1"
+ },
+ "dependencies": {
+ "parse5": {
+ "version": "6.0.1",
+ "resolved": "https://registry.nlark.com/parse5/download/parse5-6.0.1.tgz",
+ "integrity": "sha1-4aHAhcVps9wIMhGE8Zo5zCf3wws=",
+ "dev": true
+ }
+ }
+ },
+ "parse5-htmlparser2-tree-adapter": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npm.taobao.org/parse5-htmlparser2-tree-adapter/download/parse5-htmlparser2-tree-adapter-6.0.1.tgz",
+ "integrity": "sha1-LN+a2CMyEUA3DU2/XT6Sx8jdxuY=",
+ "dev": true,
+ "requires": {
+ "parse5": "^6.0.1"
+ },
+ "dependencies": {
+ "parse5": {
+ "version": "6.0.1",
+ "resolved": "https://registry.nlark.com/parse5/download/parse5-6.0.1.tgz",
+ "integrity": "sha1-4aHAhcVps9wIMhGE8Zo5zCf3wws=",
+ "dev": true
+ }
+ }
+ },
+ "parse5-sax-parser": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmmirror.com/parse5-sax-parser/download/parse5-sax-parser-6.0.1.tgz",
+ "integrity": "sha1-mLTTZrWyZqfNkLS1iQZmeviC2ro=",
+ "dev": true,
+ "requires": {
+ "parse5": "^6.0.1"
+ },
+ "dependencies": {
+ "parse5": {
+ "version": "6.0.1",
+ "resolved": "https://registry.nlark.com/parse5/download/parse5-6.0.1.tgz",
+ "integrity": "sha1-4aHAhcVps9wIMhGE8Zo5zCf3wws=",
+ "dev": true
+ }
+ }
+ },
+ "parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npm.taobao.org/parseurl/download/parseurl-1.3.3.tgz",
+ "integrity": "sha1-naGee+6NEt/wUT7Vt2lXeTvC6NQ=",
+ "dev": true
+ },
+ "pascalcase": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npm.taobao.org/pascalcase/download/pascalcase-0.1.1.tgz",
+ "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
+ "dev": true
+ },
+ "path-dirname": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npm.taobao.org/path-dirname/download/path-dirname-1.0.2.tgz",
+ "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
+ "dev": true
+ },
+ "path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.nlark.com/path-exists/download/path-exists-4.0.0.tgz",
+ "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=",
+ "dev": true
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.nlark.com/path-is-absolute/download/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "dev": true
+ },
+ "path-is-inside": {
+ "version": "1.0.2",
+ "resolved": "https://registry.nlark.com/path-is-inside/download/path-is-inside-1.0.2.tgz?cache=0&sync_timestamp=1622604553837&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpath-is-inside%2Fdownload%2Fpath-is-inside-1.0.2.tgz",
+ "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
+ "dev": true
+ },
+ "path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-2.0.1.tgz?cache=0&sync_timestamp=1617971632960&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-2.0.1.tgz",
+ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
+ "dev": true
+ },
+ "path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.nlark.com/path-parse/download/path-parse-1.0.7.tgz?cache=0&sync_timestamp=1621947783503&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpath-parse%2Fdownload%2Fpath-parse-1.0.7.tgz",
+ "integrity": "sha1-+8EUtgykKzDZ2vWFjkvWi77bZzU=",
+ "dev": true
+ },
+ "path-to-regexp": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-0.1.7.tgz",
+ "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=",
+ "dev": true
+ },
+ "path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.nlark.com/path-type/download/path-type-4.0.0.tgz",
+ "integrity": "sha1-hO0BwKe6OAr+CdkKjBgNzZ0DBDs=",
+ "dev": true
+ },
+ "perfect-scrollbar": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmmirror.com/perfect-scrollbar/download/perfect-scrollbar-1.5.3.tgz?cache=0&sync_timestamp=1635159385205&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fperfect-scrollbar%2Fdownload%2Fperfect-scrollbar-1.5.3.tgz",
+ "integrity": "sha1-292EBx+EYNuf+JMhTtUBWWrZ3Fo="
+ },
+ "performance-now": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz",
+ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
+ "dev": true
+ },
+ "picocolors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-1.0.0.tgz",
+ "integrity": "sha1-y1vcdP8/UYkiNur3nWi8RFZKuBw=",
+ "dev": true
+ },
+ "picomatch": {
+ "version": "2.3.0",
+ "resolved": "https://registry.nlark.com/picomatch/download/picomatch-2.3.0.tgz?cache=0&sync_timestamp=1621648305056&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpicomatch%2Fdownload%2Fpicomatch-2.3.0.tgz",
+ "integrity": "sha1-8fBh3o9qS/AiiS4tEoI0+5gwKXI=",
+ "dev": true
+ },
+ "pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz",
+ "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=",
+ "dev": true
+ },
+ "pinkie": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npm.taobao.org/pinkie/download/pinkie-2.0.4.tgz",
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+ "dev": true
+ },
+ "pinkie-promise": {
+ "version": "2.0.1",
+ "resolved": "https://registry.nlark.com/pinkie-promise/download/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+ "dev": true,
+ "requires": {
+ "pinkie": "^2.0.0"
+ }
+ },
+ "piscina": {
+ "version": "3.1.0",
+ "resolved": "https://registry.nlark.com/piscina/download/piscina-3.1.0.tgz",
+ "integrity": "sha1-IzNjaGW2y2nFo3C7xJmpjKvPPgQ=",
+ "dev": true,
+ "requires": {
+ "eventemitter-asyncresource": "^1.0.0",
+ "hdr-histogram-js": "^2.0.1",
+ "hdr-histogram-percentiles-obj": "^3.0.0",
+ "nice-napi": "^1.0.2"
+ }
+ },
+ "pkg-dir": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmmirror.com/pkg-dir/download/pkg-dir-4.2.0.tgz?cache=0&sync_timestamp=1633498116014&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpkg-dir%2Fdownload%2Fpkg-dir-4.2.0.tgz",
+ "integrity": "sha1-8JkTPfft5CLoHR2ESCcO6z5CYfM=",
+ "dev": true,
+ "requires": {
+ "find-up": "^4.0.0"
+ }
+ },
+ "pkg-up": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/pkg-up/download/pkg-up-2.0.0.tgz",
+ "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=",
+ "dev": true,
+ "requires": {
+ "find-up": "^2.1.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/find-up/download/find-up-2.1.0.tgz?cache=0&sync_timestamp=1633618766404&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ffind-up%2Fdownload%2Ffind-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "dev": true,
+ "requires": {
+ "locate-path": "^2.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/locate-path/download/locate-path-2.0.0.tgz?cache=0&sync_timestamp=1629895724478&other_urls=https%3A%2F%2Fregistry.nlark.com%2Flocate-path%2Fdownload%2Flocate-path-2.0.0.tgz",
+ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+ "dev": true,
+ "requires": {
+ "p-locate": "^2.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "p-limit": {
+ "version": "1.3.0",
+ "resolved": "https://registry.nlark.com/p-limit/download/p-limit-1.3.0.tgz?cache=0&sync_timestamp=1628812766275&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fp-limit%2Fdownload%2Fp-limit-1.3.0.tgz",
+ "integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=",
+ "dev": true,
+ "requires": {
+ "p-try": "^1.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/p-locate/download/p-locate-2.0.0.tgz",
+ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+ "dev": true,
+ "requires": {
+ "p-limit": "^1.1.0"
+ }
+ },
+ "p-try": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/p-try/download/p-try-1.0.0.tgz?cache=0&sync_timestamp=1633364462890&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fp-try%2Fdownload%2Fp-try-1.0.0.tgz",
+ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
+ "dev": true
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.nlark.com/path-exists/download/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ }
+ }
+ },
+ "please-upgrade-node": {
+ "version": "3.2.0",
+ "resolved": "https://registry.nlark.com/please-upgrade-node/download/please-upgrade-node-3.2.0.tgz",
+ "integrity": "sha1-rt3T+ZTJM+StmLmdmlVu+g4v6UI=",
+ "dev": true,
+ "requires": {
+ "semver-compare": "^1.0.0"
+ }
+ },
+ "point-at-length": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npm.taobao.org/point-at-length/download/point-at-length-1.1.0.tgz",
+ "integrity": "sha1-CtcuvQmA1/WhqxIpbAVfnrazDlc=",
+ "requires": {
+ "abs-svg-path": "~0.1.1",
+ "isarray": "~0.0.1",
+ "parse-svg-path": "~0.1.1"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+ }
+ }
+ },
+ "portfinder": {
+ "version": "1.0.28",
+ "resolved": "https://registry.npm.taobao.org/portfinder/download/portfinder-1.0.28.tgz",
+ "integrity": "sha1-Z8RiKFK9U3TdHdkA93n1NGL6x3g=",
+ "dev": true,
+ "requires": {
+ "async": "^2.6.2",
+ "debug": "^3.1.1",
+ "mkdirp": "^0.5.5"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmmirror.com/debug/download/debug-3.2.7.tgz",
+ "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "mkdirp": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmmirror.com/mkdirp/download/mkdirp-0.5.5.tgz",
+ "integrity": "sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.5"
+ }
+ }
+ }
+ },
+ "posix-character-classes": {
+ "version": "0.1.1",
+ "resolved": "https://registry.nlark.com/posix-character-classes/download/posix-character-classes-0.1.1.tgz",
+ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "8.3.6",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-8.3.6.tgz",
+ "integrity": "sha1-JzDddql5afN/U7mmCWGXvjEcxOo=",
+ "dev": true,
+ "requires": {
+ "colorette": "^1.2.2",
+ "nanoid": "^3.1.23",
+ "source-map-js": "^0.6.2"
+ },
+ "dependencies": {
+ "source-map-js": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmmirror.com/source-map-js/download/source-map-js-0.6.2.tgz?cache=0&sync_timestamp=1636400772640&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fsource-map-js%2Fdownload%2Fsource-map-js-0.6.2.tgz",
+ "integrity": "sha1-C7XeYxtBz72mz7qL0FqA79/SOF4=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-attribute-case-insensitive": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npm.taobao.org/postcss-attribute-case-insensitive/download/postcss-attribute-case-insensitive-4.0.2.tgz?cache=0&sync_timestamp=1600194210360&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-attribute-case-insensitive%2Fdownload%2Fpostcss-attribute-case-insensitive-4.0.2.tgz",
+ "integrity": "sha1-2T5GtQRYnpSscnewRjImxoBBqIA=",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.2",
+ "postcss-selector-parser": "^6.0.2"
+ },
+ "dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-calc": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npm.taobao.org/postcss-calc/download/postcss-calc-8.0.0.tgz?cache=0&sync_timestamp=1609689191682&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-calc%2Fdownload%2Fpostcss-calc-8.0.0.tgz",
+ "integrity": "sha1-oFuHqs0TJ0Cl2wlGKjYSRT5d+Qo=",
+ "dev": true,
+ "requires": {
+ "postcss-selector-parser": "^6.0.2",
+ "postcss-value-parser": "^4.0.2"
+ }
+ },
+ "postcss-color-functional-notation": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/postcss-color-functional-notation/download/postcss-color-functional-notation-2.0.1.tgz",
+ "integrity": "sha1-Xv03qI+6vrAKKWbR5T2Yztk/dOA=",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.2",
+ "postcss-values-parser": "^2.0.0"
+ },
+ "dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-color-gray": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npm.taobao.org/postcss-color-gray/download/postcss-color-gray-5.0.0.tgz",
+ "integrity": "sha1-Uyox65CfjaiYzv/ilv3B+GS+hUc=",
+ "dev": true,
+ "requires": {
+ "@csstools/convert-colors": "^1.4.0",
+ "postcss": "^7.0.5",
+ "postcss-values-parser": "^2.0.0"
+ },
+ "dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-color-hex-alpha": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmmirror.com/postcss-color-hex-alpha/download/postcss-color-hex-alpha-5.0.3.tgz?cache=0&sync_timestamp=1632320902580&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpostcss-color-hex-alpha%2Fdownload%2Fpostcss-color-hex-alpha-5.0.3.tgz",
+ "integrity": "sha1-qNnKTDnUl8lmHjdLnFGJnvD4c4g=",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.14",
+ "postcss-values-parser": "^2.0.1"
+ },
+ "dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-color-mod-function": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npm.taobao.org/postcss-color-mod-function/download/postcss-color-mod-function-3.0.3.tgz",
+ "integrity": "sha1-gWuhRawRzDy2uqkFp1pJ+QPk0x0=",
+ "dev": true,
+ "requires": {
+ "@csstools/convert-colors": "^1.4.0",
+ "postcss": "^7.0.2",
+ "postcss-values-parser": "^2.0.0"
+ },
+ "dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-color-rebeccapurple": {
+ "version": "4.0.1",
+ "resolved": "https://registry.nlark.com/postcss-color-rebeccapurple/download/postcss-color-rebeccapurple-4.0.1.tgz",
+ "integrity": "sha1-x6ib6HK7dORbHjAiv+V0iCPm3nc=",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.2",
+ "postcss-values-parser": "^2.0.0"
+ },
+ "dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-colormin": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmmirror.com/postcss-colormin/download/postcss-colormin-5.2.1.tgz",
+ "integrity": "sha1-bkRKgG/TxXiCfbrQInYt8ZM0QU0=",
+ "dev": true,
+ "requires": {
+ "browserslist": "^4.16.6",
+ "caniuse-api": "^3.0.0",
+ "colord": "^2.9.1",
+ "postcss-value-parser": "^4.1.0"
+ }
+ },
+ "postcss-convert-values": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmmirror.com/postcss-convert-values/download/postcss-convert-values-5.0.2.tgz?cache=0&sync_timestamp=1635857664165&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpostcss-convert-values%2Fdownload%2Fpostcss-convert-values-5.0.2.tgz",
+ "integrity": "sha1-h5uEncNnfH1ryUtqLBo/CAh5gFk=",
+ "dev": true,
+ "requires": {
+ "postcss-value-parser": "^4.1.0"
+ }
+ },
+ "postcss-custom-media": {
+ "version": "7.0.8",
+ "resolved": "https://registry.nlark.com/postcss-custom-media/download/postcss-custom-media-7.0.8.tgz",
+ "integrity": "sha1-//0T/+/61zYhvl84cHaiiwApTgw=",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.14"
+ },
+ "dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-custom-properties": {
+ "version": "8.0.11",
+ "resolved": "https://registry.nlark.com/postcss-custom-properties/download/postcss-custom-properties-8.0.11.tgz?cache=0&sync_timestamp=1631899559309&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-custom-properties%2Fdownload%2Fpostcss-custom-properties-8.0.11.tgz",
+ "integrity": "sha1-LWF3LW6S8i9eDVJgLfj65G+jDZc=",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.17",
+ "postcss-values-parser": "^2.0.1"
+ },
+ "dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-custom-selectors": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npm.taobao.org/postcss-custom-selectors/download/postcss-custom-selectors-5.1.2.tgz?cache=0&sync_timestamp=1610469257838&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-custom-selectors%2Fdownload%2Fpostcss-custom-selectors-5.1.2.tgz",
+ "integrity": "sha1-ZIWMbrLs/y+0HQsoyd17PbTef7o=",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.2",
+ "postcss-selector-parser": "^5.0.0-rc.3"
+ },
+ "dependencies": {
+ "cssesc": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/cssesc/download/cssesc-2.0.0.tgz",
+ "integrity": "sha1-OxO9G7HLNuG8taTc0n9UxdyzVwM=",
+ "dev": true
+ },
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "postcss-selector-parser": {
+ "version": "5.0.0",
+ "resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-5.0.0.tgz?cache=0&sync_timestamp=1620752939806&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-5.0.0.tgz",
+ "integrity": "sha1-JJBENWaXsztk8aj3yAki3d7nGVw=",
+ "dev": true,
+ "requires": {
+ "cssesc": "^2.0.0",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-dir-pseudo-class": {
+ "version": "5.0.0",
+ "resolved": "https://registry.nlark.com/postcss-dir-pseudo-class/download/postcss-dir-pseudo-class-5.0.0.tgz?cache=0&sync_timestamp=1631886211698&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-dir-pseudo-class%2Fdownload%2Fpostcss-dir-pseudo-class-5.0.0.tgz",
+ "integrity": "sha1-bjpBd9Dts6vMhf22+7HCbauuq6I=",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.2",
+ "postcss-selector-parser": "^5.0.0-rc.3"
+ },
+ "dependencies": {
+ "cssesc": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/cssesc/download/cssesc-2.0.0.tgz",
+ "integrity": "sha1-OxO9G7HLNuG8taTc0n9UxdyzVwM=",
+ "dev": true
+ },
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "postcss-selector-parser": {
+ "version": "5.0.0",
+ "resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-5.0.0.tgz?cache=0&sync_timestamp=1620752939806&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-5.0.0.tgz",
+ "integrity": "sha1-JJBENWaXsztk8aj3yAki3d7nGVw=",
+ "dev": true,
+ "requires": {
+ "cssesc": "^2.0.0",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-discard-comments": {
+ "version": "5.0.1",
+ "resolved": "https://registry.nlark.com/postcss-discard-comments/download/postcss-discard-comments-5.0.1.tgz",
+ "integrity": "sha1-nq5LdHz3YNMfJEfCfwYZ1XGJAf4=",
+ "dev": true
+ },
+ "postcss-discard-duplicates": {
+ "version": "5.0.1",
+ "resolved": "https://registry.nlark.com/postcss-discard-duplicates/download/postcss-discard-duplicates-5.0.1.tgz",
+ "integrity": "sha1-aPfMZFj+a6suRsn1WuUoafaA5m0=",
+ "dev": true
+ },
+ "postcss-discard-empty": {
+ "version": "5.0.1",
+ "resolved": "https://registry.nlark.com/postcss-discard-empty/download/postcss-discard-empty-5.0.1.tgz",
+ "integrity": "sha1-7hNsOeJ9XS7U2g7l7QK8ip+L9tg=",
+ "dev": true
+ },
+ "postcss-discard-overridden": {
+ "version": "5.0.1",
+ "resolved": "https://registry.nlark.com/postcss-discard-overridden/download/postcss-discard-overridden-5.0.1.tgz",
+ "integrity": "sha1-RUtB9wcwC5gQmnUAXKSrD/J0OsY=",
+ "dev": true
+ },
+ "postcss-double-position-gradients": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/postcss-double-position-gradients/download/postcss-double-position-gradients-1.0.0.tgz",
+ "integrity": "sha1-/JJ9Uv3ciWyzooEuvF3xR+EQUi4=",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.5",
+ "postcss-values-parser": "^2.0.0"
+ },
+ "dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-env-function": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/postcss-env-function/download/postcss-env-function-2.0.2.tgz?cache=0&sync_timestamp=1637256010098&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpostcss-env-function%2Fdownload%2Fpostcss-env-function-2.0.2.tgz",
+ "integrity": "sha1-Dz49PFfwlKksK69LYkHwsNpTZdc=",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.2",
+ "postcss-values-parser": "^2.0.0"
+ },
+ "dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-focus-visible": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/postcss-focus-visible/download/postcss-focus-visible-4.0.0.tgz?cache=0&sync_timestamp=1632317515654&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpostcss-focus-visible%2Fdownload%2Fpostcss-focus-visible-4.0.0.tgz",
+ "integrity": "sha1-R30QcROt5gJLFBKDF63ivR4XBG4=",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.2"
+ },
+ "dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-focus-within": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/postcss-focus-within/download/postcss-focus-within-3.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpostcss-focus-within%2Fdownload%2Fpostcss-focus-within-3.0.0.tgz",
+ "integrity": "sha1-djuHiFls7puHTJmSAc3egGWe9oA=",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.2"
+ },
+ "dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-font-variant": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npm.taobao.org/postcss-font-variant/download/postcss-font-variant-4.0.1.tgz",
+ "integrity": "sha1-QtTAqzCJT2D5ixdWHrXAMh9QJkE=",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.2"
+ },
+ "dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-gap-properties": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/postcss-gap-properties/download/postcss-gap-properties-2.0.0.tgz?cache=0&sync_timestamp=1631886207918&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-gap-properties%2Fdownload%2Fpostcss-gap-properties-2.0.0.tgz",
+ "integrity": "sha1-QxwZKrPtlqPD0J8v9hWWD5AsFxU=",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.2"
+ },
+ "dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-html": {
+ "version": "0.36.0",
+ "resolved": "https://registry.npmmirror.com/postcss-html/download/postcss-html-0.36.0.tgz",
+ "integrity": "sha1-tAkT+U6qzCRT/TChMnrW7h+IsgQ=",
+ "dev": true,
+ "requires": {
+ "htmlparser2": "^3.10.0"
+ }
+ },
+ "postcss-image-set-function": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmmirror.com/postcss-image-set-function/download/postcss-image-set-function-3.0.1.tgz",
+ "integrity": "sha1-KJIKLymUW+1MMZjX32SW1BDT8og=",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.2",
+ "postcss-values-parser": "^2.0.0"
+ },
+ "dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-import": {
+ "version": "14.0.2",
+ "resolved": "https://registry.nlark.com/postcss-import/download/postcss-import-14.0.2.tgz",
+ "integrity": "sha1-YO/3fmvpLntn/kaex5fZQkyuGqE=",
+ "dev": true,
+ "requires": {
+ "postcss-value-parser": "^4.0.0",
+ "read-cache": "^1.0.0",
+ "resolve": "^1.1.7"
+ }
+ },
+ "postcss-initial": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npm.taobao.org/postcss-initial/download/postcss-initial-3.0.4.tgz",
+ "integrity": "sha1-nTIGmhBTH+Lsr6C2rHUO4Lx+/FM=",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.2"
+ },
+ "dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-jsx": {
+ "version": "0.36.4",
+ "resolved": "https://registry.npm.taobao.org/postcss-jsx/download/postcss-jsx-0.36.4.tgz",
+ "integrity": "sha1-N6aPMAo55XSNVH8Zp0ezJXJAvVA=",
+ "dev": true,
+ "requires": {
+ "@babel/core": ">=7.2.2"
+ }
+ },
+ "postcss-lab-function": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/postcss-lab-function/download/postcss-lab-function-2.0.1.tgz?cache=0&sync_timestamp=1637260919901&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpostcss-lab-function%2Fdownload%2Fpostcss-lab-function-2.0.1.tgz",
+ "integrity": "sha1-u1GmhWzRIomrSuINseOCHvE9fS4=",
+ "dev": true,
+ "requires": {
+ "@csstools/convert-colors": "^1.4.0",
+ "postcss": "^7.0.2",
+ "postcss-values-parser": "^2.0.0"
+ },
+ "dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-less": {
+ "version": "3.1.4",
+ "resolved": "https://registry.nlark.com/postcss-less/download/postcss-less-3.1.4.tgz?cache=0&sync_timestamp=1627347193371&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-less%2Fdownload%2Fpostcss-less-3.1.4.tgz",
+ "integrity": "sha1-Np9YZCtZKO+Jj/vBpuk8lYMExa0=",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.14"
+ },
+ "dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-loader": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmmirror.com/postcss-loader/download/postcss-loader-6.1.1.tgz",
+ "integrity": "sha1-WN0KOszZvIfMUu/3UkTbV40RMBo=",
+ "dev": true,
+ "requires": {
+ "cosmiconfig": "^7.0.0",
+ "klona": "^2.0.4",
+ "semver": "^7.3.5"
+ }
+ },
+ "postcss-logical": {
+ "version": "3.0.0",
+ "resolved": "https://registry.nlark.com/postcss-logical/download/postcss-logical-3.0.0.tgz",
+ "integrity": "sha1-JJXQ+LgunyYnJfdflAGzTntF1bU=",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.2"
+ },
+ "dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-markdown": {
+ "version": "0.36.0",
+ "resolved": "https://registry.npmmirror.com/postcss-markdown/download/postcss-markdown-0.36.0.tgz",
+ "integrity": "sha1-fyKEmuDj2xiCC3sNXngz8TpEdWA=",
+ "dev": true,
+ "requires": {
+ "remark": "^10.0.1",
+ "unist-util-find-all-after": "^1.0.2"
+ },
+ "dependencies": {
+ "is-buffer": {
+ "version": "2.0.5",
+ "resolved": "https://registry.nlark.com/is-buffer/download/is-buffer-2.0.5.tgz",
+ "integrity": "sha1-68JS5ADSL/jXf6CYiIIaJKZYwZE=",
+ "dev": true
+ },
+ "parse-entities": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmmirror.com/parse-entities/download/parse-entities-1.2.2.tgz",
+ "integrity": "sha1-wxvw9lO2ZhNU+Jc1WcuG3R1e31A=",
+ "dev": true,
+ "requires": {
+ "character-entities": "^1.0.0",
+ "character-entities-legacy": "^1.0.0",
+ "character-reference-invalid": "^1.0.0",
+ "is-alphanumerical": "^1.0.0",
+ "is-decimal": "^1.0.0",
+ "is-hexadecimal": "^1.0.0"
+ }
+ },
+ "remark": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmmirror.com/remark/download/remark-10.0.1.tgz?cache=0&sync_timestamp=1637258856657&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fremark%2Fdownload%2Fremark-10.0.1.tgz",
+ "integrity": "sha1-MFgHbcQXgb9QXYl4wpFIX+R2Z98=",
+ "dev": true,
+ "requires": {
+ "remark-parse": "^6.0.0",
+ "remark-stringify": "^6.0.0",
+ "unified": "^7.0.0"
+ }
+ },
+ "remark-parse": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmmirror.com/remark-parse/download/remark-parse-6.0.3.tgz",
+ "integrity": "sha1-yZExBSgJ2kghCEE/h7Duf1IYCjo=",
+ "dev": true,
+ "requires": {
+ "collapse-white-space": "^1.0.2",
+ "is-alphabetical": "^1.0.0",
+ "is-decimal": "^1.0.0",
+ "is-whitespace-character": "^1.0.0",
+ "is-word-character": "^1.0.0",
+ "markdown-escapes": "^1.0.0",
+ "parse-entities": "^1.1.0",
+ "repeat-string": "^1.5.4",
+ "state-toggle": "^1.0.0",
+ "trim": "0.0.1",
+ "trim-trailing-lines": "^1.0.0",
+ "unherit": "^1.0.4",
+ "unist-util-remove-position": "^1.0.0",
+ "vfile-location": "^2.0.0",
+ "xtend": "^4.0.1"
+ }
+ },
+ "remark-stringify": {
+ "version": "6.0.4",
+ "resolved": "https://registry.npmmirror.com/remark-stringify/download/remark-stringify-6.0.4.tgz",
+ "integrity": "sha1-FqwinU0VkySQGGY8e93yiq/E4Ig=",
+ "dev": true,
+ "requires": {
+ "ccount": "^1.0.0",
+ "is-alphanumeric": "^1.0.0",
+ "is-decimal": "^1.0.0",
+ "is-whitespace-character": "^1.0.0",
+ "longest-streak": "^2.0.1",
+ "markdown-escapes": "^1.0.0",
+ "markdown-table": "^1.1.0",
+ "mdast-util-compact": "^1.0.0",
+ "parse-entities": "^1.0.2",
+ "repeat-string": "^1.5.4",
+ "state-toggle": "^1.0.0",
+ "stringify-entities": "^1.0.1",
+ "unherit": "^1.0.4",
+ "xtend": "^4.0.1"
+ }
+ },
+ "unified": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmmirror.com/unified/download/unified-7.1.0.tgz",
+ "integrity": "sha1-UDLxwe4zZL0J2hLif91KdVPHvhM=",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^2.0.0",
+ "@types/vfile": "^3.0.0",
+ "bail": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^1.1.0",
+ "trough": "^1.0.0",
+ "vfile": "^3.0.0",
+ "x-is-string": "^0.1.0"
+ }
+ },
+ "unist-util-find-all-after": {
+ "version": "1.0.5",
+ "resolved": "https://registry.nlark.com/unist-util-find-all-after/download/unist-util-find-all-after-1.0.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Funist-util-find-all-after%2Fdownload%2Funist-util-find-all-after-1.0.5.tgz",
+ "integrity": "sha1-V1GoYIg09B0RetnFd3cMXy8bKJk=",
+ "dev": true,
+ "requires": {
+ "unist-util-is": "^3.0.0"
+ }
+ },
+ "unist-util-is": {
+ "version": "3.0.0",
+ "resolved": "https://registry.nlark.com/unist-util-is/download/unist-util-is-3.0.0.tgz?cache=0&sync_timestamp=1626874922677&other_urls=https%3A%2F%2Fregistry.nlark.com%2Funist-util-is%2Fdownload%2Funist-util-is-3.0.0.tgz",
+ "integrity": "sha1-2ehDgcJGjoJinkpb6dfQWi3TJM0=",
+ "dev": true
+ },
+ "unist-util-stringify-position": {
+ "version": "1.1.2",
+ "resolved": "https://registry.nlark.com/unist-util-stringify-position/download/unist-util-stringify-position-1.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Funist-util-stringify-position%2Fdownload%2Funist-util-stringify-position-1.1.2.tgz",
+ "integrity": "sha1-Pzf881EnncvKdICrWIm7ioMu4cY=",
+ "dev": true
+ },
+ "vfile": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmmirror.com/vfile/download/vfile-3.0.1.tgz",
+ "integrity": "sha1-RzMdKr4ygkJPSku2rNIKRMQSGAM=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^2.0.0",
+ "replace-ext": "1.0.0",
+ "unist-util-stringify-position": "^1.0.0",
+ "vfile-message": "^1.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "1.1.1",
+ "resolved": "https://registry.nlark.com/vfile-message/download/vfile-message-1.1.1.tgz?cache=0&sync_timestamp=1628780833868&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvfile-message%2Fdownload%2Fvfile-message-1.1.1.tgz",
+ "integrity": "sha1-WDOuB4od+i2W6WR4hs0ymTqzE+E=",
+ "dev": true,
+ "requires": {
+ "unist-util-stringify-position": "^1.1.1"
+ }
+ }
+ }
+ },
+ "postcss-media-minmax": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/postcss-media-minmax/download/postcss-media-minmax-4.0.0.tgz?cache=0&sync_timestamp=1610466264580&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-media-minmax%2Fdownload%2Fpostcss-media-minmax-4.0.0.tgz",
+ "integrity": "sha1-t1u2y8IXyKxJQz4S8iBIgUpPXtU=",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.2"
+ },
+ "dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-media-query-parser": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npm.taobao.org/postcss-media-query-parser/download/postcss-media-query-parser-0.2.3.tgz",
+ "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=",
+ "dev": true
+ },
+ "postcss-merge-longhand": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmmirror.com/postcss-merge-longhand/download/postcss-merge-longhand-5.0.4.tgz?cache=0&sync_timestamp=1637084982494&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpostcss-merge-longhand%2Fdownload%2Fpostcss-merge-longhand-5.0.4.tgz",
+ "integrity": "sha512-2lZrOVD+d81aoYkZDpWu6+3dTAAGkCKbV5DoRhnIR7KOULVrI/R7bcMjhrH9KTRy6iiHKqmtG+n/MMj1WmqHFw==",
+ "dev": true,
+ "requires": {
+ "postcss-value-parser": "^4.1.0",
+ "stylehacks": "^5.0.1"
+ }
+ },
+ "postcss-merge-rules": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmmirror.com/postcss-merge-rules/download/postcss-merge-rules-5.0.3.tgz?cache=0&sync_timestamp=1637085799347&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpostcss-merge-rules%2Fdownload%2Fpostcss-merge-rules-5.0.3.tgz",
+ "integrity": "sha512-cEKTMEbWazVa5NXd8deLdCnXl+6cYG7m2am+1HzqH0EnTdy8fRysatkaXb2dEnR+fdaDxTvuZ5zoBdv6efF6hg==",
+ "dev": true,
+ "requires": {
+ "browserslist": "^4.16.6",
+ "caniuse-api": "^3.0.0",
+ "cssnano-utils": "^2.0.1",
+ "postcss-selector-parser": "^6.0.5"
+ }
+ },
+ "postcss-minify-font-values": {
+ "version": "5.0.1",
+ "resolved": "https://registry.nlark.com/postcss-minify-font-values/download/postcss-minify-font-values-5.0.1.tgz",
+ "integrity": "sha1-qQzvv9qgdb09uqGzNYi7TcJord8=",
+ "dev": true,
+ "requires": {
+ "postcss-value-parser": "^4.1.0"
+ }
+ },
+ "postcss-minify-gradients": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmmirror.com/postcss-minify-gradients/download/postcss-minify-gradients-5.0.3.tgz?cache=0&sync_timestamp=1635856917388&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpostcss-minify-gradients%2Fdownload%2Fpostcss-minify-gradients-5.0.3.tgz",
+ "integrity": "sha1-+XChHMceCOkJXnjsOms0uRwZVQ4=",
+ "dev": true,
+ "requires": {
+ "colord": "^2.9.1",
+ "cssnano-utils": "^2.0.1",
+ "postcss-value-parser": "^4.1.0"
+ }
+ },
+ "postcss-minify-params": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmmirror.com/postcss-minify-params/download/postcss-minify-params-5.0.2.tgz?cache=0&sync_timestamp=1637084983019&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpostcss-minify-params%2Fdownload%2Fpostcss-minify-params-5.0.2.tgz",
+ "integrity": "sha512-qJAPuBzxO1yhLad7h2Dzk/F7n1vPyfHfCCh5grjGfjhi1ttCnq4ZXGIW77GSrEbh9Hus9Lc/e/+tB4vh3/GpDg==",
+ "dev": true,
+ "requires": {
+ "alphanum-sort": "^1.0.2",
+ "browserslist": "^4.16.6",
+ "cssnano-utils": "^2.0.1",
+ "postcss-value-parser": "^4.1.0"
+ }
+ },
+ "postcss-minify-selectors": {
+ "version": "5.1.0",
+ "resolved": "https://registry.nlark.com/postcss-minify-selectors/download/postcss-minify-selectors-5.1.0.tgz",
+ "integrity": "sha1-Q4XIRdOXn/FgKRd0Uj/6VOr9WlQ=",
+ "dev": true,
+ "requires": {
+ "alphanum-sort": "^1.0.2",
+ "postcss-selector-parser": "^6.0.5"
+ }
+ },
+ "postcss-modules-extract-imports": {
+ "version": "3.0.0",
+ "resolved": "https://registry.nlark.com/postcss-modules-extract-imports/download/postcss-modules-extract-imports-3.0.0.tgz",
+ "integrity": "sha1-zaHwR8CugMl9vijD52pDuIAldB0=",
+ "dev": true
+ },
+ "postcss-modules-local-by-default": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/postcss-modules-local-by-default/download/postcss-modules-local-by-default-4.0.0.tgz?cache=0&sync_timestamp=1602587625149&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-local-by-default%2Fdownload%2Fpostcss-modules-local-by-default-4.0.0.tgz",
+ "integrity": "sha1-67tU+uFZjuz99pGgKz/zs5ClpRw=",
+ "dev": true,
+ "requires": {
+ "icss-utils": "^5.0.0",
+ "postcss-selector-parser": "^6.0.2",
+ "postcss-value-parser": "^4.1.0"
+ }
+ },
+ "postcss-modules-scope": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/postcss-modules-scope/download/postcss-modules-scope-3.0.0.tgz",
+ "integrity": "sha1-nvMVFFbTu/oSDKRImN/Kby+gHwY=",
+ "dev": true,
+ "requires": {
+ "postcss-selector-parser": "^6.0.4"
+ }
+ },
+ "postcss-modules-values": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/postcss-modules-values/download/postcss-modules-values-4.0.0.tgz?cache=0&sync_timestamp=1602586215124&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-values%2Fdownload%2Fpostcss-modules-values-4.0.0.tgz",
+ "integrity": "sha1-18Xn5ow7s8myfL9Iyguz/7RgLJw=",
+ "dev": true,
+ "requires": {
+ "icss-utils": "^5.0.0"
+ }
+ },
+ "postcss-nesting": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmmirror.com/postcss-nesting/download/postcss-nesting-7.0.1.tgz?cache=0&sync_timestamp=1637236305822&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpostcss-nesting%2Fdownload%2Fpostcss-nesting-7.0.1.tgz",
+ "integrity": "sha1-tQrXt/AXPlteOIDDUBNEcD4EwFI=",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.2"
+ },
+ "dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-normalize-charset": {
+ "version": "5.0.1",
+ "resolved": "https://registry.nlark.com/postcss-normalize-charset/download/postcss-normalize-charset-5.0.1.tgz",
+ "integrity": "sha1-EhVZ0b68VayNJK839nvU2p79kdA=",
+ "dev": true
+ },
+ "postcss-normalize-display-values": {
+ "version": "5.0.1",
+ "resolved": "https://registry.nlark.com/postcss-normalize-display-values/download/postcss-normalize-display-values-5.0.1.tgz?cache=0&sync_timestamp=1621449652268&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-normalize-display-values%2Fdownload%2Fpostcss-normalize-display-values-5.0.1.tgz",
+ "integrity": "sha1-YmULllmBqVXf/ugzY0U9uC9q0f0=",
+ "dev": true,
+ "requires": {
+ "cssnano-utils": "^2.0.1",
+ "postcss-value-parser": "^4.1.0"
+ }
+ },
+ "postcss-normalize-positions": {
+ "version": "5.0.1",
+ "resolved": "https://registry.nlark.com/postcss-normalize-positions/download/postcss-normalize-positions-5.0.1.tgz",
+ "integrity": "sha1-ho9q8Xlf36hvu+lg3OtH5flJL+U=",
+ "dev": true,
+ "requires": {
+ "postcss-value-parser": "^4.1.0"
+ }
+ },
+ "postcss-normalize-repeat-style": {
+ "version": "5.0.1",
+ "resolved": "https://registry.nlark.com/postcss-normalize-repeat-style/download/postcss-normalize-repeat-style-5.0.1.tgz",
+ "integrity": "sha1-y8DeE4O1f1u2Hd1qhGU7XoZlsrU=",
+ "dev": true,
+ "requires": {
+ "cssnano-utils": "^2.0.1",
+ "postcss-value-parser": "^4.1.0"
+ }
+ },
+ "postcss-normalize-string": {
+ "version": "5.0.1",
+ "resolved": "https://registry.nlark.com/postcss-normalize-string/download/postcss-normalize-string-5.0.1.tgz",
+ "integrity": "sha1-2er6pN94x6O5c640bvDkfFVJhbA=",
+ "dev": true,
+ "requires": {
+ "postcss-value-parser": "^4.1.0"
+ }
+ },
+ "postcss-normalize-timing-functions": {
+ "version": "5.0.1",
+ "resolved": "https://registry.nlark.com/postcss-normalize-timing-functions/download/postcss-normalize-timing-functions-5.0.1.tgz",
+ "integrity": "sha1-juQRA7kTBCnGy7pzaTK3XF4ssIw=",
+ "dev": true,
+ "requires": {
+ "cssnano-utils": "^2.0.1",
+ "postcss-value-parser": "^4.1.0"
+ }
+ },
+ "postcss-normalize-unicode": {
+ "version": "5.0.1",
+ "resolved": "https://registry.nlark.com/postcss-normalize-unicode/download/postcss-normalize-unicode-5.0.1.tgz",
+ "integrity": "sha1-gtZy1kikEYFKpb865WU3nM2fXjc=",
+ "dev": true,
+ "requires": {
+ "browserslist": "^4.16.0",
+ "postcss-value-parser": "^4.1.0"
+ }
+ },
+ "postcss-normalize-url": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmmirror.com/postcss-normalize-url/download/postcss-normalize-url-5.0.3.tgz?cache=0&sync_timestamp=1637084983535&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpostcss-normalize-url%2Fdownload%2Fpostcss-normalize-url-5.0.3.tgz",
+ "integrity": "sha512-qWiUMbvkRx3kc1Dp5opzUwc7MBWZcSDK2yofCmdvFBCpx+zFPkxBC1FASQ59Pt+flYfj/nTZSkmF56+XG5elSg==",
+ "dev": true,
+ "requires": {
+ "is-absolute-url": "^3.0.3",
+ "normalize-url": "^6.0.1",
+ "postcss-value-parser": "^4.1.0"
+ }
+ },
+ "postcss-normalize-whitespace": {
+ "version": "5.0.1",
+ "resolved": "https://registry.nlark.com/postcss-normalize-whitespace/download/postcss-normalize-whitespace-5.0.1.tgz",
+ "integrity": "sha1-sLQLW8rINYX/B+rS2vLc++7vjpo=",
+ "dev": true,
+ "requires": {
+ "postcss-value-parser": "^4.1.0"
+ }
+ },
+ "postcss-ordered-values": {
+ "version": "5.0.2",
+ "resolved": "https://registry.nlark.com/postcss-ordered-values/download/postcss-ordered-values-5.0.2.tgz?cache=0&sync_timestamp=1623330460500&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-ordered-values%2Fdownload%2Fpostcss-ordered-values-5.0.2.tgz",
+ "integrity": "sha1-HzUUJpd74A4PdlsxZK11PayO0EQ=",
+ "dev": true,
+ "requires": {
+ "cssnano-utils": "^2.0.1",
+ "postcss-value-parser": "^4.1.0"
+ }
+ },
+ "postcss-overflow-shorthand": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/postcss-overflow-shorthand/download/postcss-overflow-shorthand-2.0.0.tgz",
+ "integrity": "sha1-MezzUOnG9t3CUKePDD4RHzLdTDA=",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.2"
+ },
+ "dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-page-break": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/postcss-page-break/download/postcss-page-break-2.0.0.tgz",
+ "integrity": "sha1-rdUtDgpSjKvmr+6LRuKrsnffRr8=",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.2"
+ },
+ "dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-place": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmmirror.com/postcss-place/download/postcss-place-4.0.1.tgz?cache=0&sync_timestamp=1637322613194&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpostcss-place%2Fdownload%2Fpostcss-place-4.0.1.tgz",
+ "integrity": "sha1-6fOdM9LcWE5G7h20Wtt3yp0dzGI=",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.2",
+ "postcss-values-parser": "^2.0.0"
+ },
+ "dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-preset-env": {
+ "version": "6.7.0",
+ "resolved": "https://registry.npmmirror.com/postcss-preset-env/download/postcss-preset-env-6.7.0.tgz?cache=0&sync_timestamp=1637321343139&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpostcss-preset-env%2Fdownload%2Fpostcss-preset-env-6.7.0.tgz",
+ "integrity": "sha1-w03az4+QI4OzWtHgMPF49M3xGKU=",
+ "dev": true,
+ "requires": {
+ "autoprefixer": "^9.6.1",
+ "browserslist": "^4.6.4",
+ "caniuse-lite": "^1.0.30000981",
+ "css-blank-pseudo": "^0.1.4",
+ "css-has-pseudo": "^0.10.0",
+ "css-prefers-color-scheme": "^3.1.1",
+ "cssdb": "^4.4.0",
+ "postcss": "^7.0.17",
+ "postcss-attribute-case-insensitive": "^4.0.1",
+ "postcss-color-functional-notation": "^2.0.1",
+ "postcss-color-gray": "^5.0.0",
+ "postcss-color-hex-alpha": "^5.0.3",
+ "postcss-color-mod-function": "^3.0.3",
+ "postcss-color-rebeccapurple": "^4.0.1",
+ "postcss-custom-media": "^7.0.8",
+ "postcss-custom-properties": "^8.0.11",
+ "postcss-custom-selectors": "^5.1.2",
+ "postcss-dir-pseudo-class": "^5.0.0",
+ "postcss-double-position-gradients": "^1.0.0",
+ "postcss-env-function": "^2.0.2",
+ "postcss-focus-visible": "^4.0.0",
+ "postcss-focus-within": "^3.0.0",
+ "postcss-font-variant": "^4.0.0",
+ "postcss-gap-properties": "^2.0.0",
+ "postcss-image-set-function": "^3.0.1",
+ "postcss-initial": "^3.0.0",
+ "postcss-lab-function": "^2.0.1",
+ "postcss-logical": "^3.0.0",
+ "postcss-media-minmax": "^4.0.0",
+ "postcss-nesting": "^7.0.0",
+ "postcss-overflow-shorthand": "^2.0.0",
+ "postcss-page-break": "^2.0.0",
+ "postcss-place": "^4.0.1",
+ "postcss-pseudo-class-any-link": "^6.0.0",
+ "postcss-replace-overflow-wrap": "^3.0.0",
+ "postcss-selector-matches": "^4.0.0",
+ "postcss-selector-not": "^4.0.0"
+ },
+ "dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-pseudo-class-any-link": {
+ "version": "6.0.0",
+ "resolved": "https://registry.nlark.com/postcss-pseudo-class-any-link/download/postcss-pseudo-class-any-link-6.0.0.tgz",
+ "integrity": "sha1-LtPu05OzcCh53sSocDKyENrrBNE=",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.2",
+ "postcss-selector-parser": "^5.0.0-rc.3"
+ },
+ "dependencies": {
+ "cssesc": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/cssesc/download/cssesc-2.0.0.tgz",
+ "integrity": "sha1-OxO9G7HLNuG8taTc0n9UxdyzVwM=",
+ "dev": true
+ },
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "postcss-selector-parser": {
+ "version": "5.0.0",
+ "resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-5.0.0.tgz?cache=0&sync_timestamp=1620752939806&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-5.0.0.tgz",
+ "integrity": "sha1-JJBENWaXsztk8aj3yAki3d7nGVw=",
+ "dev": true,
+ "requires": {
+ "cssesc": "^2.0.0",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-reduce-initial": {
+ "version": "5.0.1",
+ "resolved": "https://registry.nlark.com/postcss-reduce-initial/download/postcss-reduce-initial-5.0.1.tgz",
+ "integrity": "sha1-nWNphlsPb29rFloO9dwaSFbH6UY=",
+ "dev": true,
+ "requires": {
+ "browserslist": "^4.16.0",
+ "caniuse-api": "^3.0.0"
+ }
+ },
+ "postcss-reduce-transforms": {
+ "version": "5.0.1",
+ "resolved": "https://registry.nlark.com/postcss-reduce-transforms/download/postcss-reduce-transforms-5.0.1.tgz?cache=0&sync_timestamp=1621449730895&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-reduce-transforms%2Fdownload%2Fpostcss-reduce-transforms-5.0.1.tgz",
+ "integrity": "sha1-k8EvahWUdKpxHVJpkj4jg87c9kA=",
+ "dev": true,
+ "requires": {
+ "cssnano-utils": "^2.0.1",
+ "postcss-value-parser": "^4.1.0"
+ }
+ },
+ "postcss-replace-overflow-wrap": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/postcss-replace-overflow-wrap/download/postcss-replace-overflow-wrap-3.0.0.tgz",
+ "integrity": "sha1-YbNg/9rtyoTHyRjSsPDQ6lWasBw=",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.2"
+ },
+ "dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-reporter": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmmirror.com/postcss-reporter/download/postcss-reporter-6.0.1.tgz",
+ "integrity": "sha1-fAVRIAYKl8iDe05IIVZhqvt0JF8=",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "lodash": "^4.17.11",
+ "log-symbols": "^2.2.0",
+ "postcss": "^7.0.7"
+ },
+ "dependencies": {
+ "log-symbols": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npm.taobao.org/log-symbols/download/log-symbols-2.2.0.tgz",
+ "integrity": "sha1-V0Dhxdbw39pK2TI7UzIQfva0xAo=",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.0.1"
+ }
+ },
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-resolve-nested-selector": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npm.taobao.org/postcss-resolve-nested-selector/download/postcss-resolve-nested-selector-0.1.1.tgz",
+ "integrity": "sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=",
+ "dev": true
+ },
+ "postcss-safe-parser": {
+ "version": "4.0.2",
+ "resolved": "https://registry.nlark.com/postcss-safe-parser/download/postcss-safe-parser-4.0.2.tgz",
+ "integrity": "sha1-ptTkjw832ffBGypYG/APi6SHC5Y=",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.26"
+ },
+ "dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-sass": {
+ "version": "0.4.4",
+ "resolved": "https://registry.nlark.com/postcss-sass/download/postcss-sass-0.4.4.tgz",
+ "integrity": "sha1-kfDzRHtFzjcyJ6mLYfjY8HhShaM=",
+ "dev": true,
+ "requires": {
+ "gonzales-pe": "^4.3.0",
+ "postcss": "^7.0.21"
+ },
+ "dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-scss": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/postcss-scss/download/postcss-scss-2.1.1.tgz?cache=0&sync_timestamp=1635496103823&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpostcss-scss%2Fdownload%2Fpostcss-scss-2.1.1.tgz",
+ "integrity": "sha1-7Dp1+imlXgFrkL8yaQJsU8HSs4M=",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.6"
+ },
+ "dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-selector-matches": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/postcss-selector-matches/download/postcss-selector-matches-4.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-matches%2Fdownload%2Fpostcss-selector-matches-4.0.0.tgz",
+ "integrity": "sha1-ccgkj5F7osyTA3yWN+4JxkQ2/P8=",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "postcss": "^7.0.2"
+ },
+ "dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-selector-not": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npm.taobao.org/postcss-selector-not/download/postcss-selector-not-4.0.1.tgz?cache=0&sync_timestamp=1612096191464&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-not%2Fdownload%2Fpostcss-selector-not-4.0.1.tgz",
+ "integrity": "sha1-JjAW7vHPIZ4K3pqRN4D8H0ggTL8=",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "postcss": "^7.0.2"
+ },
+ "dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-selector-parser": {
+ "version": "6.0.6",
+ "resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-6.0.6.tgz?cache=0&sync_timestamp=1620752939806&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-6.0.6.tgz",
+ "integrity": "sha1-LFu6gXSsL2mBq2MaQqsO5UrzMuo=",
+ "dev": true,
+ "requires": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ }
+ },
+ "postcss-sorting": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmmirror.com/postcss-sorting/download/postcss-sorting-4.1.0.tgz",
+ "integrity": "sha1-oQfwvzhSl3+mTkRCvDQMiNWqzbM=",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.4",
+ "postcss": "^7.0.0"
+ },
+ "dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-svgo": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmmirror.com/postcss-svgo/download/postcss-svgo-5.0.3.tgz",
+ "integrity": "sha1-2UUYV1bl36rgf57bDTyuf/efmzA=",
+ "dev": true,
+ "requires": {
+ "postcss-value-parser": "^4.1.0",
+ "svgo": "^2.7.0"
+ }
+ },
+ "postcss-syntax": {
+ "version": "0.36.2",
+ "resolved": "https://registry.npm.taobao.org/postcss-syntax/download/postcss-syntax-0.36.2.tgz",
+ "integrity": "sha1-8IV4x9lYNFdOVZOoLfv6ivrjtRw=",
+ "dev": true
+ },
+ "postcss-unique-selectors": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmmirror.com/postcss-unique-selectors/download/postcss-unique-selectors-5.0.2.tgz?cache=0&sync_timestamp=1637084982907&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpostcss-unique-selectors%2Fdownload%2Fpostcss-unique-selectors-5.0.2.tgz",
+ "integrity": "sha512-w3zBVlrtZm7loQWRPVC0yjUwwpty7OM6DnEHkxcSQXO1bMS3RJ+JUS5LFMSDZHJcvGsRwhZinCWVqn8Kej4EDA==",
+ "dev": true,
+ "requires": {
+ "alphanum-sort": "^1.0.2",
+ "postcss-selector-parser": "^6.0.5"
+ }
+ },
+ "postcss-value-parser": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-4.1.0.tgz",
+ "integrity": "sha1-RD9qIM7WSBor2k+oUypuVdeJoss=",
+ "dev": true
+ },
+ "postcss-values-parser": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/postcss-values-parser/download/postcss-values-parser-2.0.1.tgz",
+ "integrity": "sha1-2otHLZAdoeIFtHvcmGN7np5VDl8=",
+ "dev": true,
+ "requires": {
+ "flatten": "^1.0.2",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ }
+ },
+ "preact": {
+ "version": "10.6.1",
+ "resolved": "https://registry.npmmirror.com/preact/download/preact-10.6.1.tgz",
+ "integrity": "sha512-ydCg+ISIq70vqiThvNWStZWLRjR9U2awP/JAmGdWUKm9+Tyuy+MqVdAIyEByeIspAVtD4GWC/SJtxO8XD4knVA=="
+ },
+ "prelude-ls": {
+ "version": "1.2.1",
+ "resolved": "https://registry.nlark.com/prelude-ls/download/prelude-ls-1.2.1.tgz",
+ "integrity": "sha1-3rxkidem5rDnYRiIzsiAM30xY5Y=",
+ "dev": true
+ },
+ "prettier": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmmirror.com/prettier/download/prettier-2.5.0.tgz",
+ "integrity": "sha512-FM/zAKgWTxj40rH03VxzIPdXmj39SwSjwG0heUcNFwI+EMZJnY93yAiKXM3dObIKAM5TA88werc8T/EwhB45eg==",
+ "dev": true
+ },
+ "prettier-linter-helpers": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/prettier-linter-helpers/download/prettier-linter-helpers-1.0.0.tgz",
+ "integrity": "sha1-0j1B/hN1ZG3i0BBNNFSjAIgCz3s=",
+ "dev": true,
+ "requires": {
+ "fast-diff": "^1.1.2"
+ }
+ },
+ "pretty-bytes": {
+ "version": "5.6.0",
+ "resolved": "https://registry.npm.taobao.org/pretty-bytes/download/pretty-bytes-5.6.0.tgz",
+ "integrity": "sha1-NWJW9kOAR3PIL2RyP+eMksYr6us=",
+ "dev": true
+ },
+ "printj": {
+ "version": "1.1.2",
+ "resolved": "https://registry.nlark.com/printj/download/printj-1.1.2.tgz",
+ "integrity": "sha1-2Q3rKXWoufYA+zoclOP0xTx4oiI="
+ },
+ "process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I="
+ },
+ "progress": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npm.taobao.org/progress/download/progress-2.0.3.tgz",
+ "integrity": "sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=",
+ "dev": true
+ },
+ "promise": {
+ "version": "7.0.4",
+ "resolved": "https://registry.nlark.com/promise/download/promise-7.0.4.tgz",
+ "integrity": "sha1-Nj6EpMNsg1a4kP7WLJHOhdAu1Tk=",
+ "dev": true,
+ "requires": {
+ "asap": "~2.0.3"
+ }
+ },
+ "promise-inflight": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/promise-inflight/download/promise-inflight-1.0.1.tgz",
+ "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=",
+ "dev": true
+ },
+ "promise-retry": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/promise-retry/download/promise-retry-2.0.1.tgz",
+ "integrity": "sha1-/3R6E2IKtXumiPX8Z4VUEMNw2iI=",
+ "dev": true,
+ "requires": {
+ "err-code": "^2.0.2",
+ "retry": "^0.12.0"
+ }
+ },
+ "protractor": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmmirror.com/protractor/download/protractor-7.0.0.tgz",
+ "integrity": "sha1-w+JjYIvXLiwtyAKxGncnEaR5LQM=",
+ "dev": true,
+ "requires": {
+ "@types/q": "^0.0.32",
+ "@types/selenium-webdriver": "^3.0.0",
+ "blocking-proxy": "^1.0.0",
+ "browserstack": "^1.5.1",
+ "chalk": "^1.1.3",
+ "glob": "^7.0.3",
+ "jasmine": "2.8.0",
+ "jasminewd2": "^2.1.0",
+ "q": "1.4.1",
+ "saucelabs": "^1.5.0",
+ "selenium-webdriver": "3.6.0",
+ "source-map-support": "~0.4.0",
+ "webdriver-js-extender": "2.1.0",
+ "webdriver-manager": "^12.1.7",
+ "yargs": "^15.3.1"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-2.1.1.tgz?cache=0&sync_timestamp=1631634988487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-regex%2Fdownload%2Fansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "array-union": {
+ "version": "1.0.2",
+ "resolved": "https://registry.nlark.com/array-union/download/array-union-1.0.2.tgz",
+ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
+ "dev": true,
+ "requires": {
+ "array-uniq": "^1.0.1"
+ }
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.nlark.com/chalk/download/chalk-1.1.3.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ }
+ },
+ "cliui": {
+ "version": "6.0.0",
+ "resolved": "https://registry.nlark.com/cliui/download/cliui-6.0.0.tgz",
+ "integrity": "sha1-UR1wLAxOQcoVbX0OlgIfI+EyJbE=",
+ "dev": true,
+ "requires": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^6.2.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-5.0.1.tgz?cache=0&sync_timestamp=1631634988487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-regex%2Fdownload%2Fansi-regex-5.0.1.tgz",
+ "integrity": "sha1-CCyyyJyf6GWaMRpTvWpNxTAdswQ=",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-6.0.1.tgz?cache=0&sync_timestamp=1632420562057&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-6.0.1.tgz",
+ "integrity": "sha1-nibGPTD1NEPpSJSVshBdN7Z6hdk=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.1"
+ }
+ }
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
+ "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
+ "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
+ "dev": true
+ },
+ "del": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npm.taobao.org/del/download/del-2.2.2.tgz",
+ "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=",
+ "dev": true,
+ "requires": {
+ "globby": "^5.0.0",
+ "is-path-cwd": "^1.0.0",
+ "is-path-in-cwd": "^1.0.0",
+ "object-assign": "^4.0.1",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0",
+ "rimraf": "^2.2.8"
+ }
+ },
+ "globby": {
+ "version": "5.0.0",
+ "resolved": "https://registry.nlark.com/globby/download/globby-5.0.0.tgz",
+ "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=",
+ "dev": true,
+ "requires": {
+ "array-union": "^1.0.1",
+ "arrify": "^1.0.0",
+ "glob": "^7.0.3",
+ "object-assign": "^4.0.1",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "ini": {
+ "version": "1.3.8",
+ "resolved": "https://registry.nlark.com/ini/download/ini-1.3.8.tgz",
+ "integrity": "sha1-op2kJbSIBvNHZ6Tvzjlyaa8oQyw=",
+ "dev": true
+ },
+ "is-path-cwd": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/is-path-cwd/download/is-path-cwd-1.0.0.tgz?cache=0&sync_timestamp=1628686555851&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-path-cwd%2Fdownload%2Fis-path-cwd-1.0.0.tgz",
+ "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=",
+ "dev": true
+ },
+ "is-path-in-cwd": {
+ "version": "1.0.1",
+ "resolved": "https://registry.nlark.com/is-path-in-cwd/download/is-path-in-cwd-1.0.1.tgz?cache=0&sync_timestamp=1620047389319&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-path-in-cwd%2Fdownload%2Fis-path-in-cwd-1.0.1.tgz",
+ "integrity": "sha1-WsSLNF72dTOb1sekipEhELJBz1I=",
+ "dev": true,
+ "requires": {
+ "is-path-inside": "^1.0.0"
+ }
+ },
+ "is-path-inside": {
+ "version": "1.0.1",
+ "resolved": "https://registry.nlark.com/is-path-inside/download/is-path-inside-1.0.1.tgz?cache=0&sync_timestamp=1620046845369&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-path-inside%2Fdownload%2Fis-path-inside-1.0.1.tgz",
+ "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
+ "dev": true,
+ "requires": {
+ "path-is-inside": "^1.0.1"
+ }
+ },
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ },
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz",
+ "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz",
+ "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "source-map-support": {
+ "version": "0.4.18",
+ "resolved": "https://registry.npmmirror.com/source-map-support/download/source-map-support-0.4.18.tgz",
+ "integrity": "sha1-Aoam3ovkJkEzhZTpfM6nXwosWF8=",
+ "dev": true,
+ "requires": {
+ "source-map": "^0.5.6"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1632420562057&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/supports-color/download/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ },
+ "webdriver-manager": {
+ "version": "12.1.8",
+ "resolved": "https://registry.nlark.com/webdriver-manager/download/webdriver-manager-12.1.8.tgz",
+ "integrity": "sha1-XnDnPqr1Ogdn1XRScK3a+8WQX9Q=",
+ "dev": true,
+ "requires": {
+ "adm-zip": "^0.4.9",
+ "chalk": "^1.1.1",
+ "del": "^2.2.0",
+ "glob": "^7.0.3",
+ "ini": "^1.3.4",
+ "minimist": "^1.2.0",
+ "q": "^1.4.1",
+ "request": "^2.87.0",
+ "rimraf": "^2.5.2",
+ "semver": "^5.3.0",
+ "xml2js": "^0.4.17"
+ }
+ },
+ "wrap-ansi": {
+ "version": "6.2.0",
+ "resolved": "https://registry.nlark.com/wrap-ansi/download/wrap-ansi-6.2.0.tgz?cache=0&sync_timestamp=1631557327268&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwrap-ansi%2Fdownload%2Fwrap-ansi-6.2.0.tgz",
+ "integrity": "sha1-6Tk7oHEC5skaOyIUePAlfNKFblM=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-5.0.1.tgz?cache=0&sync_timestamp=1631634988487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-regex%2Fdownload%2Fansi-regex-5.0.1.tgz",
+ "integrity": "sha1-CCyyyJyf6GWaMRpTvWpNxTAdswQ=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz",
+ "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-6.0.1.tgz?cache=0&sync_timestamp=1632420562057&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-6.0.1.tgz",
+ "integrity": "sha1-nibGPTD1NEPpSJSVshBdN7Z6hdk=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.1"
+ }
+ }
+ }
+ },
+ "yargs": {
+ "version": "15.4.1",
+ "resolved": "https://registry.npmmirror.com/yargs/download/yargs-15.4.1.tgz",
+ "integrity": "sha1-DYehbeAa7p2L7Cv7909nhRcw9Pg=",
+ "dev": true,
+ "requires": {
+ "cliui": "^6.0.0",
+ "decamelize": "^1.2.0",
+ "find-up": "^4.1.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^4.2.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^18.1.2"
+ }
+ },
+ "yargs-parser": {
+ "version": "18.1.3",
+ "resolved": "https://registry.npmmirror.com/yargs-parser/download/yargs-parser-18.1.3.tgz?cache=0&sync_timestamp=1637031053426&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fyargs-parser%2Fdownload%2Fyargs-parser-18.1.3.tgz",
+ "integrity": "sha1-vmjEl1xrKr9GkjawyHA2L6sJp7A=",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
+ }
+ }
+ },
+ "proxy-addr": {
+ "version": "2.0.7",
+ "resolved": "https://registry.nlark.com/proxy-addr/download/proxy-addr-2.0.7.tgz",
+ "integrity": "sha1-8Z/mnOqzEe65S0LnDowgcPm6ECU=",
+ "dev": true,
+ "requires": {
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1"
+ }
+ },
+ "prr": {
+ "version": "1.0.1",
+ "resolved": "https://registry.nlark.com/prr/download/prr-1.0.1.tgz",
+ "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
+ "dev": true
+ },
+ "psl": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npm.taobao.org/psl/download/psl-1.8.0.tgz",
+ "integrity": "sha1-kyb4vPsBOtzABf3/BWrM4CDlHCQ=",
+ "dev": true
+ },
+ "pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/pump/download/pump-3.0.0.tgz",
+ "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz",
+ "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew="
+ },
+ "q": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npm.taobao.org/q/download/q-1.4.1.tgz?cache=0&sync_timestamp=1599054212574&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fq%2Fdownload%2Fq-1.4.1.tgz",
+ "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=",
+ "dev": true
+ },
+ "qjobs": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npm.taobao.org/qjobs/download/qjobs-1.2.0.tgz",
+ "integrity": "sha1-xF6cYYAL0IfviNfiVkI73Unl0HE=",
+ "dev": true
+ },
+ "qs": {
+ "version": "6.7.0",
+ "resolved": "https://registry.nlark.com/qs/download/qs-6.7.0.tgz",
+ "integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=",
+ "dev": true
+ },
+ "querystring": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmmirror.com/querystring/download/querystring-0.2.0.tgz",
+ "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=",
+ "dev": true
+ },
+ "querystringify": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npm.taobao.org/querystringify/download/querystringify-2.2.0.tgz",
+ "integrity": "sha1-M0WUG0FTy50ILY7uTNogFqmu9/Y=",
+ "dev": true
+ },
+ "queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.nlark.com/queue-microtask/download/queue-microtask-1.2.3.tgz",
+ "integrity": "sha1-SSkii7xyTfrEPg77BYyve2z7YkM=",
+ "dev": true
+ },
+ "quick-lru": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmmirror.com/quick-lru/download/quick-lru-4.0.1.tgz",
+ "integrity": "sha1-W4h48ROlgheEjGSCAmxz4bpXcn8=",
+ "dev": true
+ },
+ "quill": {
+ "version": "1.3.7",
+ "resolved": "https://registry.npm.taobao.org/quill/download/quill-1.3.7.tgz",
+ "integrity": "sha1-2lsvOixHDpMjQM2/NmjJ8h+Shug=",
+ "requires": {
+ "clone": "^2.1.1",
+ "deep-equal": "^1.0.1",
+ "eventemitter3": "^2.0.3",
+ "extend": "^3.0.2",
+ "parchment": "^1.1.4",
+ "quill-delta": "^3.6.2"
+ }
+ },
+ "quill-delta": {
+ "version": "3.6.3",
+ "resolved": "https://registry.nlark.com/quill-delta/download/quill-delta-3.6.3.tgz",
+ "integrity": "sha1-sZ/SuJQSMBxg4f8hPY2GDqwPEDI=",
+ "requires": {
+ "deep-equal": "^1.0.1",
+ "extend": "^3.0.2",
+ "fast-diff": "1.1.2"
+ }
+ },
+ "quill-image-resize-module": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/quill-image-resize-module/download/quill-image-resize-module-3.0.0.tgz",
+ "integrity": "sha1-D9k3Rqg3M22VsvU2FAQWpiPHF3E=",
+ "requires": {
+ "lodash": "^4.17.4",
+ "quill": "^1.2.2",
+ "raw-loader": "^0.5.1"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmmirror.com/acorn/download/acorn-5.0.2.tgz?cache=0&sync_timestamp=1637225522161&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Facorn%2Fdownload%2Facorn-5.0.2.tgz",
+ "integrity": "sha1-3ByPuQf2TbKrVz3iMmtzUnwk3jY="
+ },
+ "acorn-dynamic-import": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npm.taobao.org/acorn-dynamic-import/download/acorn-dynamic-import-2.0.2.tgz",
+ "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=",
+ "requires": {
+ "acorn": "^4.0.3"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "4.0.11",
+ "resolved": "https://registry.npmmirror.com/acorn/download/acorn-4.0.11.tgz?cache=0&sync_timestamp=1637225522161&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Facorn%2Fdownload%2Facorn-4.0.11.tgz",
+ "integrity": "sha1-7c2jvZN+dVZBDULtWGD2c5nHlMA="
+ }
+ }
+ },
+ "acorn-jsx": {
+ "version": "3.0.1",
+ "resolved": "https://registry.nlark.com/acorn-jsx/download/acorn-jsx-3.0.1.tgz?cache=0&sync_timestamp=1625793240297&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn-jsx%2Fdownload%2Facorn-jsx-3.0.1.tgz",
+ "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=",
+ "requires": {
+ "acorn": "^3.0.4"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmmirror.com/acorn/download/acorn-3.3.0.tgz?cache=0&sync_timestamp=1637225522161&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Facorn%2Fdownload%2Facorn-3.3.0.tgz",
+ "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo="
+ }
+ }
+ },
+ "ajv": {
+ "version": "4.11.5",
+ "resolved": "https://registry.npmmirror.com/ajv/download/ajv-4.11.5.tgz?cache=0&sync_timestamp=1637522259668&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fajv%2Fdownload%2Fajv-4.11.5.tgz",
+ "integrity": "sha1-tu50ZXuZOgHc5Et5RNVvSFgo1b0=",
+ "requires": {
+ "co": "^4.6.0",
+ "json-stable-stringify": "^1.0.1"
+ }
+ },
+ "ajv-keywords": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmmirror.com/ajv-keywords/download/ajv-keywords-1.5.1.tgz",
+ "integrity": "sha1-MU3QpLM2j609/NxU7eYXG4htrzw="
+ },
+ "align-text": {
+ "version": "0.1.4",
+ "resolved": "https://registry.nlark.com/align-text/download/align-text-0.1.4.tgz",
+ "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
+ "requires": {
+ "kind-of": "^3.0.2",
+ "longest": "^1.0.1",
+ "repeat-string": "^1.5.2"
+ }
+ },
+ "ansi-escapes": {
+ "version": "1.4.0",
+ "resolved": "https://registry.nlark.com/ansi-escapes/download/ansi-escapes-1.4.0.tgz?cache=0&sync_timestamp=1618847144938&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-escapes%2Fdownload%2Fansi-escapes-1.4.0.tgz",
+ "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4="
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-2.1.1.tgz?cache=0&sync_timestamp=1631634988487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-regex%2Fdownload%2Fansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
+ },
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
+ },
+ "anymatch": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-1.3.0.tgz?cache=0&sync_timestamp=1617747502795&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fanymatch%2Fdownload%2Fanymatch-1.3.0.tgz",
+ "integrity": "sha1-o+Uvo5FoyCX/V7AkgSbOWo/5VQc=",
+ "requires": {
+ "arrify": "^1.0.0",
+ "micromatch": "^2.1.5"
+ }
+ },
+ "argparse": {
+ "version": "1.0.9",
+ "resolved": "https://registry.nlark.com/argparse/download/argparse-1.0.9.tgz",
+ "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=",
+ "requires": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "aria-query": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmmirror.com/aria-query/download/aria-query-0.3.0.tgz?cache=0&sync_timestamp=1633308188641&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Faria-query%2Fdownload%2Faria-query-0.3.0.tgz",
+ "integrity": "sha1-y4qZhOKGJxHIPICt5bj1yg3itGc=",
+ "requires": {
+ "ast-types-flow": "0.0.7"
+ }
+ },
+ "arr-diff": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/arr-diff/download/arr-diff-2.0.0.tgz",
+ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
+ "requires": {
+ "arr-flatten": "^1.0.1"
+ }
+ },
+ "arr-flatten": {
+ "version": "1.0.1",
+ "resolved": "https://registry.nlark.com/arr-flatten/download/arr-flatten-1.0.1.tgz?cache=0&sync_timestamp=1618846805394&other_urls=https%3A%2F%2Fregistry.nlark.com%2Farr-flatten%2Fdownload%2Farr-flatten-1.0.1.tgz",
+ "integrity": "sha1-5f/lTUXhnzLyFukeuZyM6JK7YEs="
+ },
+ "array-union": {
+ "version": "1.0.2",
+ "resolved": "https://registry.nlark.com/array-union/download/array-union-1.0.2.tgz",
+ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
+ "requires": {
+ "array-uniq": "^1.0.1"
+ }
+ },
+ "array-uniq": {
+ "version": "1.0.3",
+ "resolved": "https://registry.nlark.com/array-uniq/download/array-uniq-1.0.3.tgz?cache=0&sync_timestamp=1622605321175&other_urls=https%3A%2F%2Fregistry.nlark.com%2Farray-uniq%2Fdownload%2Farray-uniq-1.0.3.tgz",
+ "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY="
+ },
+ "array-unique": {
+ "version": "0.2.1",
+ "resolved": "https://registry.nlark.com/array-unique/download/array-unique-0.2.1.tgz",
+ "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM="
+ },
+ "array.prototype.find": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmmirror.com/array.prototype.find/download/array.prototype.find-2.0.4.tgz",
+ "integrity": "sha1-VWpcU2LAhkgyPdrrnenRS8GGTJA=",
+ "requires": {
+ "define-properties": "^1.1.2",
+ "es-abstract": "^1.7.0"
+ }
+ },
+ "arrify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.nlark.com/arrify/download/arrify-1.0.1.tgz?cache=0&sync_timestamp=1619599497996&other_urls=https%3A%2F%2Fregistry.nlark.com%2Farrify%2Fdownload%2Farrify-1.0.1.tgz",
+ "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0="
+ },
+ "asn1.js": {
+ "version": "4.9.1",
+ "resolved": "https://registry.npm.taobao.org/asn1.js/download/asn1.js-4.9.1.tgz",
+ "integrity": "sha1-SLokC0WpKA6UdImQull9IWYX/UA=",
+ "requires": {
+ "bn.js": "^4.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "assert": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npm.taobao.org/assert/download/assert-1.4.1.tgz",
+ "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=",
+ "requires": {
+ "util": "0.10.3"
+ }
+ },
+ "ast-types-flow": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npm.taobao.org/ast-types-flow/download/ast-types-flow-0.0.7.tgz",
+ "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0="
+ },
+ "async": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmmirror.com/async/download/async-2.3.0.tgz",
+ "integrity": "sha1-EBPRBRBH3TIP4k5JTVxm7K9hR9k=",
+ "requires": {
+ "lodash": "^4.14.0"
+ }
+ },
+ "async-each": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/async-each/download/async-each-1.0.1.tgz",
+ "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0="
+ },
+ "babel-cli": {
+ "version": "6.24.0",
+ "resolved": "https://registry.npm.taobao.org/babel-cli/download/babel-cli-6.24.0.tgz",
+ "integrity": "sha1-oF/9IQ3KDCiKJtUxnFrIZpomWtA=",
+ "requires": {
+ "babel-core": "^6.24.0",
+ "babel-polyfill": "^6.23.0",
+ "babel-register": "^6.24.0",
+ "babel-runtime": "^6.22.0",
+ "chokidar": "^1.6.1",
+ "commander": "^2.8.1",
+ "convert-source-map": "^1.1.0",
+ "fs-readdir-recursive": "^1.0.0",
+ "glob": "^7.0.0",
+ "lodash": "^4.2.0",
+ "output-file-sync": "^1.1.0",
+ "path-is-absolute": "^1.0.0",
+ "slash": "^1.0.0",
+ "source-map": "^0.5.0",
+ "v8flags": "^2.0.10"
+ }
+ },
+ "babel-code-frame": {
+ "version": "6.22.0",
+ "resolved": "https://registry.nlark.com/babel-code-frame/download/babel-code-frame-6.22.0.tgz",
+ "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=",
+ "requires": {
+ "chalk": "^1.1.0",
+ "esutils": "^2.0.2",
+ "js-tokens": "^3.0.0"
+ }
+ },
+ "babel-core": {
+ "version": "6.24.0",
+ "resolved": "https://registry.npm.taobao.org/babel-core/download/babel-core-6.24.0.tgz",
+ "integrity": "sha1-jzagp39cFVrtb5ILhE0julZ0KgI=",
+ "requires": {
+ "babel-code-frame": "^6.22.0",
+ "babel-generator": "^6.24.0",
+ "babel-helpers": "^6.23.0",
+ "babel-messages": "^6.23.0",
+ "babel-register": "^6.24.0",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.23.0",
+ "babel-traverse": "^6.23.1",
+ "babel-types": "^6.23.0",
+ "babylon": "^6.11.0",
+ "convert-source-map": "^1.1.0",
+ "debug": "^2.1.1",
+ "json5": "^0.5.0",
+ "lodash": "^4.2.0",
+ "minimatch": "^3.0.2",
+ "path-is-absolute": "^1.0.0",
+ "private": "^0.1.6",
+ "slash": "^1.0.0",
+ "source-map": "^0.5.0"
+ }
+ },
+ "babel-eslint": {
+ "version": "7.2.1",
+ "resolved": "https://registry.npmmirror.com/babel-eslint/download/babel-eslint-7.2.1.tgz",
+ "integrity": "sha1-B5Qi63O6gR48oIZc6Hrykyf4xS8=",
+ "requires": {
+ "babel-code-frame": "^6.22.0",
+ "babel-traverse": "^6.23.1",
+ "babel-types": "^6.23.0",
+ "babylon": "^6.16.1"
+ }
+ },
+ "babel-generator": {
+ "version": "6.24.0",
+ "resolved": "https://registry.npm.taobao.org/babel-generator/download/babel-generator-6.24.0.tgz",
+ "integrity": "sha1-66JwqMxM5uCaYb5DRl18YsH4fFY=",
+ "requires": {
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.23.0",
+ "detect-indent": "^4.0.0",
+ "jsesc": "^1.3.0",
+ "lodash": "^4.2.0",
+ "source-map": "^0.5.0",
+ "trim-right": "^1.0.1"
+ }
+ },
+ "babel-helper-builder-binary-assignment-operator-visitor": {
+ "version": "6.22.0",
+ "resolved": "https://registry.nlark.com/babel-helper-builder-binary-assignment-operator-visitor/download/babel-helper-builder-binary-assignment-operator-visitor-6.22.0.tgz",
+ "integrity": "sha1-Kd9WvhRNgb3qwIJiv6QdLF6Rzc0=",
+ "requires": {
+ "babel-helper-explode-assignable-expression": "^6.22.0",
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.22.0"
+ }
+ },
+ "babel-helper-call-delegate": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npm.taobao.org/babel-helper-call-delegate/download/babel-helper-call-delegate-6.22.0.tgz",
+ "integrity": "sha1-EZkhtWEg8X6drj90tPXMe8wbN+8=",
+ "requires": {
+ "babel-helper-hoist-variables": "^6.22.0",
+ "babel-runtime": "^6.22.0",
+ "babel-traverse": "^6.22.0",
+ "babel-types": "^6.22.0"
+ }
+ },
+ "babel-helper-define-map": {
+ "version": "6.23.0",
+ "resolved": "https://registry.nlark.com/babel-helper-define-map/download/babel-helper-define-map-6.23.0.tgz",
+ "integrity": "sha1-FET5YMlpHWmiztaiBTFfj9AIBOc=",
+ "requires": {
+ "babel-helper-function-name": "^6.23.0",
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.23.0",
+ "lodash": "^4.2.0"
+ }
+ },
+ "babel-helper-explode-assignable-expression": {
+ "version": "6.22.0",
+ "resolved": "https://registry.nlark.com/babel-helper-explode-assignable-expression/download/babel-helper-explode-assignable-expression-6.22.0.tgz",
+ "integrity": "sha1-yXv3bu0+C65ASBIfK52uGk59BHg=",
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-traverse": "^6.22.0",
+ "babel-types": "^6.22.0"
+ }
+ },
+ "babel-helper-function-name": {
+ "version": "6.23.0",
+ "resolved": "https://registry.nlark.com/babel-helper-function-name/download/babel-helper-function-name-6.23.0.tgz",
+ "integrity": "sha1-JXQtZxdciQPb5LbLnZ4fy43PI6Y=",
+ "requires": {
+ "babel-helper-get-function-arity": "^6.22.0",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.23.0",
+ "babel-traverse": "^6.23.0",
+ "babel-types": "^6.23.0"
+ }
+ },
+ "babel-helper-get-function-arity": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npm.taobao.org/babel-helper-get-function-arity/download/babel-helper-get-function-arity-6.22.0.tgz",
+ "integrity": "sha1-C+tGStadxzR0EKxq3p8DpQY09c4=",
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.22.0"
+ }
+ },
+ "babel-helper-hoist-variables": {
+ "version": "6.22.0",
+ "resolved": "https://registry.nlark.com/babel-helper-hoist-variables/download/babel-helper-hoist-variables-6.22.0.tgz",
+ "integrity": "sha1-Pqy/cx2AcFhF3S6XGPYAz7m0unI=",
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.22.0"
+ }
+ },
+ "babel-helper-optimise-call-expression": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npm.taobao.org/babel-helper-optimise-call-expression/download/babel-helper-optimise-call-expression-6.23.0.tgz",
+ "integrity": "sha1-8+5+7TVbQoITizPQK3g2nkcGIvU=",
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.23.0"
+ }
+ },
+ "babel-helper-regex": {
+ "version": "6.22.0",
+ "resolved": "https://registry.nlark.com/babel-helper-regex/download/babel-helper-regex-6.22.0.tgz",
+ "integrity": "sha1-efUyvhZHsfDuNHS19cPaWAAdJH0=",
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.22.0",
+ "lodash": "^4.2.0"
+ }
+ },
+ "babel-helper-remap-async-to-generator": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npm.taobao.org/babel-helper-remap-async-to-generator/download/babel-helper-remap-async-to-generator-6.22.0.tgz",
+ "integrity": "sha1-IYaucyeO0DuLFc7QiWCdqYEFM4M=",
+ "requires": {
+ "babel-helper-function-name": "^6.22.0",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.22.0",
+ "babel-traverse": "^6.22.0",
+ "babel-types": "^6.22.0"
+ }
+ },
+ "babel-helper-replace-supers": {
+ "version": "6.23.0",
+ "resolved": "https://registry.nlark.com/babel-helper-replace-supers/download/babel-helper-replace-supers-6.23.0.tgz",
+ "integrity": "sha1-7q+K2bWOxDN8qUIjus3KH42bS/0=",
+ "requires": {
+ "babel-helper-optimise-call-expression": "^6.23.0",
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.23.0",
+ "babel-traverse": "^6.23.0",
+ "babel-types": "^6.23.0"
+ }
+ },
+ "babel-helpers": {
+ "version": "6.23.0",
+ "resolved": "https://registry.nlark.com/babel-helpers/download/babel-helpers-6.23.0.tgz",
+ "integrity": "sha1-T48uCS0LaogIpL3nnCfx4uzw2ZI=",
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.23.0"
+ }
+ },
+ "babel-loader": {
+ "version": "6.4.1",
+ "resolved": "https://registry.npmmirror.com/babel-loader/download/babel-loader-6.4.1.tgz?cache=0&sync_timestamp=1634769717079&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fbabel-loader%2Fdownload%2Fbabel-loader-6.4.1.tgz",
+ "integrity": "sha1-CzQRLVsHSKjc2/Uaz2+b1C1QuMo=",
+ "requires": {
+ "find-cache-dir": "^0.1.1",
+ "loader-utils": "^0.2.16",
+ "mkdirp": "^0.5.1",
+ "object-assign": "^4.0.1"
+ }
+ },
+ "babel-messages": {
+ "version": "6.23.0",
+ "resolved": "https://registry.nlark.com/babel-messages/download/babel-messages-6.23.0.tgz",
+ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-check-es2015-constants": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npm.taobao.org/babel-plugin-check-es2015-constants/download/babel-plugin-check-es2015-constants-6.22.0.tgz",
+ "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=",
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-syntax-async-functions": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-async-functions/download/babel-plugin-syntax-async-functions-6.13.0.tgz",
+ "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU="
+ },
+ "babel-plugin-syntax-class-properties": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-class-properties/download/babel-plugin-syntax-class-properties-6.13.0.tgz",
+ "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94="
+ },
+ "babel-plugin-syntax-exponentiation-operator": {
+ "version": "6.13.0",
+ "resolved": "https://registry.nlark.com/babel-plugin-syntax-exponentiation-operator/download/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz",
+ "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4="
+ },
+ "babel-plugin-syntax-trailing-function-commas": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-trailing-function-commas/download/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz",
+ "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM="
+ },
+ "babel-plugin-transform-async-to-generator": {
+ "version": "6.22.0",
+ "resolved": "https://registry.nlark.com/babel-plugin-transform-async-to-generator/download/babel-plugin-transform-async-to-generator-6.22.0.tgz",
+ "integrity": "sha1-GUtpOOwZWtNu/EwzqXGs8A2M014=",
+ "requires": {
+ "babel-helper-remap-async-to-generator": "^6.22.0",
+ "babel-plugin-syntax-async-functions": "^6.8.0",
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-class-properties": {
+ "version": "6.23.0",
+ "resolved": "https://registry.nlark.com/babel-plugin-transform-class-properties/download/babel-plugin-transform-class-properties-6.23.0.tgz",
+ "integrity": "sha1-GHt0fuQEOZATVjyZPbA480dUrDs=",
+ "requires": {
+ "babel-helper-function-name": "^6.23.0",
+ "babel-plugin-syntax-class-properties": "^6.8.0",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.23.0"
+ }
+ },
+ "babel-plugin-transform-es2015-arrow-functions": {
+ "version": "6.22.0",
+ "resolved": "https://registry.nlark.com/babel-plugin-transform-es2015-arrow-functions/download/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz",
+ "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=",
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-block-scoped-functions": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-block-scoped-functions/download/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz",
+ "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=",
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-block-scoping": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-block-scoping/download/babel-plugin-transform-es2015-block-scoping-6.23.0.tgz",
+ "integrity": "sha1-5IiVzws3W+FIzXyIebQicHoFO1E=",
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.23.0",
+ "babel-traverse": "^6.23.0",
+ "babel-types": "^6.23.0",
+ "lodash": "^4.2.0"
+ }
+ },
+ "babel-plugin-transform-es2015-classes": {
+ "version": "6.23.0",
+ "resolved": "https://registry.nlark.com/babel-plugin-transform-es2015-classes/download/babel-plugin-transform-es2015-classes-6.23.0.tgz",
+ "integrity": "sha1-SbU/MmICov0bO7ql4u3YpPeGQ8E=",
+ "requires": {
+ "babel-helper-define-map": "^6.23.0",
+ "babel-helper-function-name": "^6.23.0",
+ "babel-helper-optimise-call-expression": "^6.23.0",
+ "babel-helper-replace-supers": "^6.23.0",
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.23.0",
+ "babel-traverse": "^6.23.0",
+ "babel-types": "^6.23.0"
+ }
+ },
+ "babel-plugin-transform-es2015-computed-properties": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-computed-properties/download/babel-plugin-transform-es2015-computed-properties-6.22.0.tgz",
+ "integrity": "sha1-fDg+lim7pIIMEbBCW91ikPfwV+c=",
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-destructuring": {
+ "version": "6.23.0",
+ "resolved": "https://registry.nlark.com/babel-plugin-transform-es2015-destructuring/download/babel-plugin-transform-es2015-destructuring-6.23.0.tgz",
+ "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=",
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-duplicate-keys": {
+ "version": "6.22.0",
+ "resolved": "https://registry.nlark.com/babel-plugin-transform-es2015-duplicate-keys/download/babel-plugin-transform-es2015-duplicate-keys-6.22.0.tgz",
+ "integrity": "sha1-ZyOXAxwhYQ1y3Su7C6n7Ynfhw2s=",
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-for-of": {
+ "version": "6.23.0",
+ "resolved": "https://registry.nlark.com/babel-plugin-transform-es2015-for-of/download/babel-plugin-transform-es2015-for-of-6.23.0.tgz",
+ "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=",
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-function-name": {
+ "version": "6.22.0",
+ "resolved": "https://registry.nlark.com/babel-plugin-transform-es2015-function-name/download/babel-plugin-transform-es2015-function-name-6.22.0.tgz",
+ "integrity": "sha1-9fzIsJCT+aI8dqw9njksPsS3cQQ=",
+ "requires": {
+ "babel-helper-function-name": "^6.22.0",
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-literals": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-literals/download/babel-plugin-transform-es2015-literals-6.22.0.tgz",
+ "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=",
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-modules-amd": {
+ "version": "6.24.0",
+ "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-amd/download/babel-plugin-transform-es2015-modules-amd-6.24.0.tgz",
+ "integrity": "sha1-oZEfubfsfgWkOmPFmVAHVXvPai4=",
+ "requires": {
+ "babel-plugin-transform-es2015-modules-commonjs": "^6.24.0",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-modules-commonjs": {
+ "version": "6.24.0",
+ "resolved": "https://registry.nlark.com/babel-plugin-transform-es2015-modules-commonjs/download/babel-plugin-transform-es2015-modules-commonjs-6.24.0.tgz",
+ "integrity": "sha1-6SGu+3LCzCbLA9EHYmFWQTIiE08=",
+ "requires": {
+ "babel-plugin-transform-strict-mode": "^6.22.0",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.23.0",
+ "babel-types": "^6.23.0"
+ }
+ },
+ "babel-plugin-transform-es2015-modules-systemjs": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-systemjs/download/babel-plugin-transform-es2015-modules-systemjs-6.23.0.tgz",
+ "integrity": "sha1-rjRpIn/6w5sDENkP7HO/3E9jF7A=",
+ "requires": {
+ "babel-helper-hoist-variables": "^6.22.0",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.23.0"
+ }
+ },
+ "babel-plugin-transform-es2015-modules-umd": {
+ "version": "6.24.0",
+ "resolved": "https://registry.nlark.com/babel-plugin-transform-es2015-modules-umd/download/babel-plugin-transform-es2015-modules-umd-6.24.0.tgz",
+ "integrity": "sha1-/V+mNSHK6NJzknw5WK/XwGdzNFA=",
+ "requires": {
+ "babel-plugin-transform-es2015-modules-amd": "^6.24.0",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.23.0"
+ }
+ },
+ "babel-plugin-transform-es2015-object-super": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-object-super/download/babel-plugin-transform-es2015-object-super-6.22.0.tgz",
+ "integrity": "sha1-2qYOEUoELqdp3VP+Uo/IIxHrmPw=",
+ "requires": {
+ "babel-helper-replace-supers": "^6.22.0",
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-parameters": {
+ "version": "6.23.0",
+ "resolved": "https://registry.nlark.com/babel-plugin-transform-es2015-parameters/download/babel-plugin-transform-es2015-parameters-6.23.0.tgz",
+ "integrity": "sha1-OiqrtwyK+UXVzjhvGkJQYlqDrjs=",
+ "requires": {
+ "babel-helper-call-delegate": "^6.22.0",
+ "babel-helper-get-function-arity": "^6.22.0",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.23.0",
+ "babel-traverse": "^6.23.0",
+ "babel-types": "^6.23.0"
+ }
+ },
+ "babel-plugin-transform-es2015-shorthand-properties": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-shorthand-properties/download/babel-plugin-transform-es2015-shorthand-properties-6.22.0.tgz",
+ "integrity": "sha1-i6d24K/6pgv/IekhQDuKZSov9yM=",
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-spread": {
+ "version": "6.22.0",
+ "resolved": "https://registry.nlark.com/babel-plugin-transform-es2015-spread/download/babel-plugin-transform-es2015-spread-6.22.0.tgz",
+ "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=",
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-sticky-regex": {
+ "version": "6.22.0",
+ "resolved": "https://registry.nlark.com/babel-plugin-transform-es2015-sticky-regex/download/babel-plugin-transform-es2015-sticky-regex-6.22.0.tgz",
+ "integrity": "sha1-qzFoKehm7j9LnrlpOXV9GaW8RZM=",
+ "requires": {
+ "babel-helper-regex": "^6.22.0",
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-template-literals": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-template-literals/download/babel-plugin-transform-es2015-template-literals-6.22.0.tgz",
+ "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=",
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-typeof-symbol": {
+ "version": "6.23.0",
+ "resolved": "https://registry.nlark.com/babel-plugin-transform-es2015-typeof-symbol/download/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz",
+ "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=",
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-unicode-regex": {
+ "version": "6.22.0",
+ "resolved": "https://registry.nlark.com/babel-plugin-transform-es2015-unicode-regex/download/babel-plugin-transform-es2015-unicode-regex-6.22.0.tgz",
+ "integrity": "sha1-jZzCfn7h3s/mVFT7mGRSoEphPSA=",
+ "requires": {
+ "babel-helper-regex": "^6.22.0",
+ "babel-runtime": "^6.22.0",
+ "regexpu-core": "^2.0.0"
+ }
+ },
+ "babel-plugin-transform-exponentiation-operator": {
+ "version": "6.22.0",
+ "resolved": "https://registry.nlark.com/babel-plugin-transform-exponentiation-operator/download/babel-plugin-transform-exponentiation-operator-6.22.0.tgz",
+ "integrity": "sha1-1XyDNSgZGOVO8FMRjObrEIRoCE0=",
+ "requires": {
+ "babel-helper-builder-binary-assignment-operator-visitor": "^6.22.0",
+ "babel-plugin-syntax-exponentiation-operator": "^6.8.0",
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-regenerator": {
+ "version": "6.22.0",
+ "resolved": "https://registry.nlark.com/babel-plugin-transform-regenerator/download/babel-plugin-transform-regenerator-6.22.0.tgz",
+ "integrity": "sha1-ZXQFk6MZxEUiFXU41pC4QJRhfqY=",
+ "requires": {
+ "regenerator-transform": "0.9.8"
+ }
+ },
+ "babel-plugin-transform-strict-mode": {
+ "version": "6.22.0",
+ "resolved": "https://registry.nlark.com/babel-plugin-transform-strict-mode/download/babel-plugin-transform-strict-mode-6.22.0.tgz",
+ "integrity": "sha1-4AjfATQP3IfpWdplmRt+BZcMjHw=",
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.22.0"
+ }
+ },
+ "babel-polyfill": {
+ "version": "6.23.0",
+ "resolved": "https://registry.nlark.com/babel-polyfill/download/babel-polyfill-6.23.0.tgz",
+ "integrity": "sha1-g2TKYt+Or7gwSZ9pkXdGbDsDSZ0=",
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "core-js": "^2.4.0",
+ "regenerator-runtime": "^0.10.0"
+ }
+ },
+ "babel-preset-env": {
+ "version": "1.3.2",
+ "resolved": "https://registry.nlark.com/babel-preset-env/download/babel-preset-env-1.3.2.tgz",
+ "integrity": "sha1-COq9K/gQw2eAaffgUjI0GfFEh0k=",
+ "requires": {
+ "babel-plugin-check-es2015-constants": "^6.22.0",
+ "babel-plugin-syntax-trailing-function-commas": "^6.22.0",
+ "babel-plugin-transform-async-to-generator": "^6.22.0",
+ "babel-plugin-transform-es2015-arrow-functions": "^6.22.0",
+ "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0",
+ "babel-plugin-transform-es2015-block-scoping": "^6.23.0",
+ "babel-plugin-transform-es2015-classes": "^6.23.0",
+ "babel-plugin-transform-es2015-computed-properties": "^6.22.0",
+ "babel-plugin-transform-es2015-destructuring": "^6.23.0",
+ "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0",
+ "babel-plugin-transform-es2015-for-of": "^6.23.0",
+ "babel-plugin-transform-es2015-function-name": "^6.22.0",
+ "babel-plugin-transform-es2015-literals": "^6.22.0",
+ "babel-plugin-transform-es2015-modules-amd": "^6.22.0",
+ "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0",
+ "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0",
+ "babel-plugin-transform-es2015-modules-umd": "^6.23.0",
+ "babel-plugin-transform-es2015-object-super": "^6.22.0",
+ "babel-plugin-transform-es2015-parameters": "^6.23.0",
+ "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0",
+ "babel-plugin-transform-es2015-spread": "^6.22.0",
+ "babel-plugin-transform-es2015-sticky-regex": "^6.22.0",
+ "babel-plugin-transform-es2015-template-literals": "^6.22.0",
+ "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0",
+ "babel-plugin-transform-es2015-unicode-regex": "^6.22.0",
+ "babel-plugin-transform-exponentiation-operator": "^6.22.0",
+ "babel-plugin-transform-regenerator": "^6.22.0",
+ "browserslist": "^1.4.0",
+ "invariant": "^2.2.2"
+ }
+ },
+ "babel-preset-es2015": {
+ "version": "6.24.0",
+ "resolved": "https://registry.npmmirror.com/babel-preset-es2015/download/babel-preset-es2015-6.24.0.tgz",
+ "integrity": "sha1-wWLWixkyaW4DbNMRDcHM0wPSZzo=",
+ "requires": {
+ "babel-plugin-check-es2015-constants": "^6.22.0",
+ "babel-plugin-transform-es2015-arrow-functions": "^6.22.0",
+ "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0",
+ "babel-plugin-transform-es2015-block-scoping": "^6.22.0",
+ "babel-plugin-transform-es2015-classes": "^6.22.0",
+ "babel-plugin-transform-es2015-computed-properties": "^6.22.0",
+ "babel-plugin-transform-es2015-destructuring": "^6.22.0",
+ "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0",
+ "babel-plugin-transform-es2015-for-of": "^6.22.0",
+ "babel-plugin-transform-es2015-function-name": "^6.22.0",
+ "babel-plugin-transform-es2015-literals": "^6.22.0",
+ "babel-plugin-transform-es2015-modules-amd": "^6.24.0",
+ "babel-plugin-transform-es2015-modules-commonjs": "^6.24.0",
+ "babel-plugin-transform-es2015-modules-systemjs": "^6.22.0",
+ "babel-plugin-transform-es2015-modules-umd": "^6.24.0",
+ "babel-plugin-transform-es2015-object-super": "^6.22.0",
+ "babel-plugin-transform-es2015-parameters": "^6.22.0",
+ "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0",
+ "babel-plugin-transform-es2015-spread": "^6.22.0",
+ "babel-plugin-transform-es2015-sticky-regex": "^6.22.0",
+ "babel-plugin-transform-es2015-template-literals": "^6.22.0",
+ "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0",
+ "babel-plugin-transform-es2015-unicode-regex": "^6.22.0",
+ "babel-plugin-transform-regenerator": "^6.22.0"
+ }
+ },
+ "babel-register": {
+ "version": "6.24.0",
+ "resolved": "https://registry.npm.taobao.org/babel-register/download/babel-register-6.24.0.tgz",
+ "integrity": "sha1-Xon4RjuplwNW0C6wfavjMIsIDP0=",
+ "requires": {
+ "babel-core": "^6.24.0",
+ "babel-runtime": "^6.22.0",
+ "core-js": "^2.4.0",
+ "home-or-tmp": "^2.0.0",
+ "lodash": "^4.2.0",
+ "mkdirp": "^0.5.1",
+ "source-map-support": "^0.4.2"
+ }
+ },
+ "babel-runtime": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.23.0.tgz",
+ "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=",
+ "requires": {
+ "core-js": "^2.4.0",
+ "regenerator-runtime": "^0.10.0"
+ }
+ },
+ "babel-template": {
+ "version": "6.23.0",
+ "resolved": "https://registry.nlark.com/babel-template/download/babel-template-6.23.0.tgz",
+ "integrity": "sha1-BNTycK27OqcEqBQ64m+qUpI45jg=",
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-traverse": "^6.23.0",
+ "babel-types": "^6.23.0",
+ "babylon": "^6.11.0",
+ "lodash": "^4.2.0"
+ }
+ },
+ "babel-traverse": {
+ "version": "6.23.1",
+ "resolved": "https://registry.nlark.com/babel-traverse/download/babel-traverse-6.23.1.tgz",
+ "integrity": "sha1-08tZAQ7NBql9gTEAZflmtpnhT0g=",
+ "requires": {
+ "babel-code-frame": "^6.22.0",
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.23.0",
+ "babylon": "^6.15.0",
+ "debug": "^2.2.0",
+ "globals": "^9.0.0",
+ "invariant": "^2.2.0",
+ "lodash": "^4.2.0"
+ }
+ },
+ "babel-types": {
+ "version": "6.23.0",
+ "resolved": "https://registry.nlark.com/babel-types/download/babel-types-6.23.0.tgz",
+ "integrity": "sha1-uxcXnXU4utOM0MnhFdNA935+ms8=",
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "esutils": "^2.0.2",
+ "lodash": "^4.2.0",
+ "to-fast-properties": "^1.0.1"
+ }
+ },
+ "babylon": {
+ "version": "6.16.1",
+ "resolved": "https://registry.npm.taobao.org/babylon/download/babylon-6.16.1.tgz",
+ "integrity": "sha1-MMWiL0gZeKnn+M399JaxHZS0BNM="
+ },
+ "balanced-match": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npm.taobao.org/balanced-match/download/balanced-match-0.4.2.tgz",
+ "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg="
+ },
+ "base64-js": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npm.taobao.org/base64-js/download/base64-js-1.2.0.tgz",
+ "integrity": "sha1-o5mS1yNYSBGYK+XikLtqU9hnAPE="
+ },
+ "big.js": {
+ "version": "3.1.3",
+ "resolved": "https://registry.nlark.com/big.js/download/big.js-3.1.3.tgz",
+ "integrity": "sha1-TK2iGTZS6zyp7I5VyQFWacmAaXg="
+ },
+ "binary-extensions": {
+ "version": "1.8.0",
+ "resolved": "https://registry.nlark.com/binary-extensions/download/binary-extensions-1.8.0.tgz",
+ "integrity": "sha1-SOyNFt9Dd+rl+liEaCSAr02Vx3Q="
+ },
+ "bn.js": {
+ "version": "4.11.6",
+ "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.6.tgz",
+ "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU="
+ },
+ "brace-expansion": {
+ "version": "1.1.6",
+ "resolved": "https://registry.nlark.com/brace-expansion/download/brace-expansion-1.1.6.tgz",
+ "integrity": "sha1-cZfX6qm4fmSDkOph/GbIRCdCDfk=",
+ "requires": {
+ "balanced-match": "^0.4.1",
+ "concat-map": "0.0.1"
+ }
+ },
+ "braces": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npm.taobao.org/braces/download/braces-1.8.5.tgz",
+ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
+ "requires": {
+ "expand-range": "^1.8.1",
+ "preserve": "^0.2.0",
+ "repeat-element": "^1.1.2"
+ }
+ },
+ "brorand": {
+ "version": "1.1.0",
+ "resolved": "https://registry.nlark.com/brorand/download/brorand-1.1.0.tgz",
+ "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8="
+ },
+ "browserify-aes": {
+ "version": "1.0.6",
+ "resolved": "https://registry.nlark.com/browserify-aes/download/browserify-aes-1.0.6.tgz",
+ "integrity": "sha1-Xncl297x/Vkw1OurSFZ85FHEigo=",
+ "requires": {
+ "buffer-xor": "^1.0.2",
+ "cipher-base": "^1.0.0",
+ "create-hash": "^1.1.0",
+ "evp_bytestokey": "^1.0.0",
+ "inherits": "^2.0.1"
+ }
+ },
+ "browserify-cipher": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/browserify-cipher/download/browserify-cipher-1.0.0.tgz",
+ "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=",
+ "requires": {
+ "browserify-aes": "^1.0.4",
+ "browserify-des": "^1.0.0",
+ "evp_bytestokey": "^1.0.0"
+ }
+ },
+ "browserify-des": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/browserify-des/download/browserify-des-1.0.0.tgz",
+ "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=",
+ "requires": {
+ "cipher-base": "^1.0.1",
+ "des.js": "^1.0.0",
+ "inherits": "^2.0.1"
+ }
+ },
+ "browserify-rsa": {
+ "version": "4.0.1",
+ "resolved": "https://registry.nlark.com/browserify-rsa/download/browserify-rsa-4.0.1.tgz",
+ "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=",
+ "requires": {
+ "bn.js": "^4.1.0",
+ "randombytes": "^2.0.1"
+ }
+ },
+ "browserify-sign": {
+ "version": "4.0.4",
+ "resolved": "https://registry.nlark.com/browserify-sign/download/browserify-sign-4.0.4.tgz",
+ "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=",
+ "requires": {
+ "bn.js": "^4.1.1",
+ "browserify-rsa": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "create-hmac": "^1.1.2",
+ "elliptic": "^6.0.0",
+ "inherits": "^2.0.1",
+ "parse-asn1": "^5.0.0"
+ }
+ },
+ "browserify-zlib": {
+ "version": "0.1.4",
+ "resolved": "https://registry.nlark.com/browserify-zlib/download/browserify-zlib-0.1.4.tgz",
+ "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=",
+ "requires": {
+ "pako": "~0.2.0"
+ }
+ },
+ "browserslist": {
+ "version": "1.7.7",
+ "resolved": "https://registry.npmmirror.com/browserslist/download/browserslist-1.7.7.tgz",
+ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=",
+ "requires": {
+ "caniuse-db": "^1.0.30000639",
+ "electron-to-chromium": "^1.2.7"
+ }
+ },
+ "buffer": {
+ "version": "4.9.1",
+ "resolved": "https://registry.nlark.com/buffer/download/buffer-4.9.1.tgz",
+ "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=",
+ "requires": {
+ "base64-js": "^1.0.2",
+ "ieee754": "^1.1.4",
+ "isarray": "^1.0.0"
+ }
+ },
+ "buffer-shims": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/buffer-shims/download/buffer-shims-1.0.0.tgz",
+ "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E="
+ },
+ "buffer-xor": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npm.taobao.org/buffer-xor/download/buffer-xor-1.0.3.tgz",
+ "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk="
+ },
+ "builtin-modules": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npm.taobao.org/builtin-modules/download/builtin-modules-1.1.1.tgz",
+ "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8="
+ },
+ "builtin-status-codes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/builtin-status-codes/download/builtin-status-codes-3.0.0.tgz",
+ "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug="
+ },
+ "caller-path": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmmirror.com/caller-path/download/caller-path-0.1.0.tgz?cache=0&sync_timestamp=1633674209796&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcaller-path%2Fdownload%2Fcaller-path-0.1.0.tgz",
+ "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=",
+ "requires": {
+ "callsites": "^0.2.0"
+ }
+ },
+ "callsites": {
+ "version": "0.2.0",
+ "resolved": "https://registry.nlark.com/callsites/download/callsites-0.2.0.tgz?cache=0&sync_timestamp=1628464722297&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcallsites%2Fdownload%2Fcallsites-0.2.0.tgz",
+ "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo="
+ },
+ "camelcase": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmmirror.com/camelcase/download/camelcase-1.2.1.tgz?cache=0&sync_timestamp=1636945205805&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcamelcase%2Fdownload%2Fcamelcase-1.2.1.tgz",
+ "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk="
+ },
+ "caniuse-db": {
+ "version": "1.0.30000646",
+ "resolved": "https://registry.npmmirror.com/caniuse-db/download/caniuse-db-1.0.30000646.tgz",
+ "integrity": "sha1-xyS5DWHfJChuAV/FKNBiBzwA3vQ="
+ },
+ "center-align": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npm.taobao.org/center-align/download/center-align-0.1.3.tgz",
+ "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
+ "requires": {
+ "align-text": "^0.1.3",
+ "lazy-cache": "^1.0.3"
+ }
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.nlark.com/chalk/download/chalk-1.1.3.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ }
+ },
+ "chokidar": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmmirror.com/chokidar/download/chokidar-1.6.1.tgz",
+ "integrity": "sha1-L0RHq16W5Q+z14n9kNTHLg5McMI=",
+ "requires": {
+ "anymatch": "^1.3.0",
+ "async-each": "^1.0.0",
+ "fsevents": "^1.0.0",
+ "glob-parent": "^2.0.0",
+ "inherits": "^2.0.1",
+ "is-binary-path": "^1.0.0",
+ "is-glob": "^2.0.0",
+ "path-is-absolute": "^1.0.0",
+ "readdirp": "^2.0.0"
+ }
+ },
+ "cipher-base": {
+ "version": "1.0.3",
+ "resolved": "https://registry.nlark.com/cipher-base/download/cipher-base-1.0.3.tgz",
+ "integrity": "sha1-7qvxlEGc6QDaMBjCB9IS8qbfCgc=",
+ "requires": {
+ "inherits": "^2.0.1"
+ }
+ },
+ "circular-json": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmmirror.com/circular-json/download/circular-json-0.3.1.tgz",
+ "integrity": "sha1-vos2rvzN6LPKeqLWr8B6NyQsDS0="
+ },
+ "cli-cursor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.nlark.com/cli-cursor/download/cli-cursor-1.0.2.tgz?cache=0&sync_timestamp=1629747506749&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcli-cursor%2Fdownload%2Fcli-cursor-1.0.2.tgz",
+ "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=",
+ "requires": {
+ "restore-cursor": "^1.0.1"
+ }
+ },
+ "cli-width": {
+ "version": "2.1.0",
+ "resolved": "https://registry.nlark.com/cli-width/download/cli-width-2.1.0.tgz",
+ "integrity": "sha1-sjTKIJsp72b8UY2bmNWEewDt8Ao="
+ },
+ "cliui": {
+ "version": "2.1.0",
+ "resolved": "https://registry.nlark.com/cliui/download/cliui-2.1.0.tgz",
+ "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
+ "requires": {
+ "center-align": "^0.1.1",
+ "right-align": "^0.1.1",
+ "wordwrap": "0.0.2"
+ }
+ },
+ "clone": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npm.taobao.org/clone/download/clone-2.1.1.tgz",
+ "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs="
+ },
+ "co": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npm.taobao.org/co/download/co-4.6.0.tgz",
+ "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ="
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/code-point-at/download/code-point-at-1.1.0.tgz",
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
+ },
+ "commander": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmmirror.com/commander/download/commander-2.9.0.tgz",
+ "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=",
+ "requires": {
+ "graceful-readlink": ">= 1.0.0"
+ }
+ },
+ "commondir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/commondir/download/commondir-1.0.1.tgz",
+ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs="
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.nlark.com/concat-map/download/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ },
+ "concat-stream": {
+ "version": "1.6.0",
+ "resolved": "https://registry.nlark.com/concat-stream/download/concat-stream-1.6.0.tgz",
+ "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=",
+ "requires": {
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ }
+ },
+ "console-browserify": {
+ "version": "1.1.0",
+ "resolved": "https://registry.nlark.com/console-browserify/download/console-browserify-1.1.0.tgz",
+ "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=",
+ "requires": {
+ "date-now": "^0.1.4"
+ }
+ },
+ "constants-browserify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/constants-browserify/download/constants-browserify-1.0.0.tgz",
+ "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U="
+ },
+ "contains-path": {
+ "version": "0.1.0",
+ "resolved": "https://registry.nlark.com/contains-path/download/contains-path-0.1.0.tgz",
+ "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo="
+ },
+ "convert-source-map": {
+ "version": "1.5.0",
+ "resolved": "https://registry.nlark.com/convert-source-map/download/convert-source-map-1.5.0.tgz?cache=0&sync_timestamp=1624045508580&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fconvert-source-map%2Fdownload%2Fconvert-source-map-1.5.0.tgz",
+ "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU="
+ },
+ "core-js": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmmirror.com/core-js/download/core-js-2.4.1.tgz",
+ "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4="
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.nlark.com/core-util-is/download/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
+ },
+ "create-ecdh": {
+ "version": "4.0.0",
+ "resolved": "https://registry.nlark.com/create-ecdh/download/create-ecdh-4.0.0.tgz",
+ "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=",
+ "requires": {
+ "bn.js": "^4.1.0",
+ "elliptic": "^6.0.0"
+ }
+ },
+ "create-hash": {
+ "version": "1.1.2",
+ "resolved": "https://registry.nlark.com/create-hash/download/create-hash-1.1.2.tgz",
+ "integrity": "sha1-USEAYte7dHn2xlu0GpIgix1hq60=",
+ "requires": {
+ "cipher-base": "^1.0.1",
+ "inherits": "^2.0.1",
+ "ripemd160": "^1.0.0",
+ "sha.js": "^2.3.6"
+ }
+ },
+ "create-hmac": {
+ "version": "1.1.4",
+ "resolved": "https://registry.nlark.com/create-hmac/download/create-hmac-1.1.4.tgz",
+ "integrity": "sha1-0/tLolPriz9W456i+8uK90e9MXA=",
+ "requires": {
+ "create-hash": "^1.1.0",
+ "inherits": "^2.0.1"
+ }
+ },
+ "crypto-browserify": {
+ "version": "3.11.0",
+ "resolved": "https://registry.npm.taobao.org/crypto-browserify/download/crypto-browserify-3.11.0.tgz",
+ "integrity": "sha1-NlKgkGq5sqfgw85mpAjpV6JIVSI=",
+ "requires": {
+ "browserify-cipher": "^1.0.0",
+ "browserify-sign": "^4.0.0",
+ "create-ecdh": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "create-hmac": "^1.1.0",
+ "diffie-hellman": "^5.0.0",
+ "inherits": "^2.0.1",
+ "pbkdf2": "^3.0.3",
+ "public-encrypt": "^4.0.0",
+ "randombytes": "^2.0.0"
+ }
+ },
+ "d": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/d/download/d-1.0.0.tgz",
+ "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
+ "requires": {
+ "es5-ext": "^0.10.9"
+ }
+ },
+ "damerau-levenshtein": {
+ "version": "1.0.4",
+ "resolved": "https://registry.nlark.com/damerau-levenshtein/download/damerau-levenshtein-1.0.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdamerau-levenshtein%2Fdownload%2Fdamerau-levenshtein-1.0.4.tgz",
+ "integrity": "sha1-AxkcQyy27qFou3fzpV/9zLiXhRQ="
+ },
+ "date-now": {
+ "version": "0.1.4",
+ "resolved": "https://registry.nlark.com/date-now/download/date-now-0.1.4.tgz",
+ "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs="
+ },
+ "debug": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmmirror.com/debug/download/debug-2.6.3.tgz",
+ "integrity": "sha1-D364wwll7AjHKsz6ATDIt5mEFB0=",
+ "requires": {
+ "ms": "0.7.2"
+ }
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/decamelize/download/decamelize-1.2.0.tgz?cache=0&sync_timestamp=1633055756574&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fdecamelize%2Fdownload%2Fdecamelize-1.2.0.tgz",
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
+ },
+ "deep-equal": {
+ "version": "1.0.1",
+ "resolved": "https://registry.nlark.com/deep-equal/download/deep-equal-1.0.1.tgz",
+ "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU="
+ },
+ "deep-is": {
+ "version": "0.1.3",
+ "resolved": "https://registry.nlark.com/deep-is/download/deep-is-0.1.3.tgz",
+ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ="
+ },
+ "define-properties": {
+ "version": "1.1.2",
+ "resolved": "https://registry.nlark.com/define-properties/download/define-properties-1.1.2.tgz",
+ "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=",
+ "requires": {
+ "foreach": "^2.0.5",
+ "object-keys": "^1.0.8"
+ }
+ },
+ "del": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npm.taobao.org/del/download/del-2.2.2.tgz",
+ "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=",
+ "requires": {
+ "globby": "^5.0.0",
+ "is-path-cwd": "^1.0.0",
+ "is-path-in-cwd": "^1.0.0",
+ "object-assign": "^4.0.1",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0",
+ "rimraf": "^2.2.8"
+ }
+ },
+ "des.js": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/des.js/download/des.js-1.0.0.tgz",
+ "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=",
+ "requires": {
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "detect-indent": {
+ "version": "4.0.0",
+ "resolved": "https://registry.nlark.com/detect-indent/download/detect-indent-4.0.0.tgz",
+ "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=",
+ "requires": {
+ "repeating": "^2.0.0"
+ }
+ },
+ "diffie-hellman": {
+ "version": "5.0.2",
+ "resolved": "https://registry.nlark.com/diffie-hellman/download/diffie-hellman-5.0.2.tgz",
+ "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=",
+ "requires": {
+ "bn.js": "^4.1.0",
+ "miller-rabin": "^4.0.0",
+ "randombytes": "^2.0.0"
+ }
+ },
+ "doctrine": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/doctrine/download/doctrine-2.0.0.tgz",
+ "integrity": "sha1-xz2NKQnSIpHhoAejlYBNqLZl/mM=",
+ "requires": {
+ "esutils": "^2.0.2",
+ "isarray": "^1.0.0"
+ }
+ },
+ "domain-browser": {
+ "version": "1.1.7",
+ "resolved": "https://registry.nlark.com/domain-browser/download/domain-browser-1.1.7.tgz?cache=0&sync_timestamp=1627591557212&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdomain-browser%2Fdownload%2Fdomain-browser-1.1.7.tgz",
+ "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw="
+ },
+ "electron-to-chromium": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmmirror.com/electron-to-chromium/download/electron-to-chromium-1.3.2.tgz",
+ "integrity": "sha1-uM5ck7MI2w6S9tBDXEbd7I9jY6s="
+ },
+ "elliptic": {
+ "version": "6.4.0",
+ "resolved": "https://registry.npm.taobao.org/elliptic/download/elliptic-6.4.0.tgz",
+ "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=",
+ "requires": {
+ "bn.js": "^4.4.0",
+ "brorand": "^1.0.1",
+ "hash.js": "^1.0.0",
+ "hmac-drbg": "^1.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.0"
+ }
+ },
+ "emoji-regex": {
+ "version": "6.4.1",
+ "resolved": "https://registry.npmmirror.com/emoji-regex/download/emoji-regex-6.4.1.tgz?cache=0&sync_timestamp=1632751333727&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Femoji-regex%2Fdownload%2Femoji-regex-6.4.1.tgz",
+ "integrity": "sha1-d0hv6c1FQh0mCmI4uI1yHi+tIFA="
+ },
+ "emojis-list": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-2.1.0.tgz",
+ "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k="
+ },
+ "enhanced-resolve": {
+ "version": "3.1.0",
+ "resolved": "https://registry.nlark.com/enhanced-resolve/download/enhanced-resolve-3.1.0.tgz",
+ "integrity": "sha1-n0tib1dyRe3PSyrYPYbhf09CHew=",
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "memory-fs": "^0.4.0",
+ "object-assign": "^4.0.1",
+ "tapable": "^0.2.5"
+ }
+ },
+ "errno": {
+ "version": "0.1.4",
+ "resolved": "https://registry.nlark.com/errno/download/errno-0.1.4.tgz",
+ "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=",
+ "requires": {
+ "prr": "~0.0.0"
+ }
+ },
+ "error-ex": {
+ "version": "1.3.1",
+ "resolved": "https://registry.nlark.com/error-ex/download/error-ex-1.3.1.tgz",
+ "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=",
+ "requires": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "es-abstract": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmmirror.com/es-abstract/download/es-abstract-1.7.0.tgz?cache=0&sync_timestamp=1633234313248&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fes-abstract%2Fdownload%2Fes-abstract-1.7.0.tgz",
+ "integrity": "sha1-363ndOAb/Nl/lhgCmMRJyGI/uUw=",
+ "requires": {
+ "es-to-primitive": "^1.1.1",
+ "function-bind": "^1.1.0",
+ "is-callable": "^1.1.3",
+ "is-regex": "^1.0.3"
+ }
+ },
+ "es-to-primitive": {
+ "version": "1.1.1",
+ "resolved": "https://registry.nlark.com/es-to-primitive/download/es-to-primitive-1.1.1.tgz",
+ "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=",
+ "requires": {
+ "is-callable": "^1.1.1",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.1"
+ }
+ },
+ "es5-ext": {
+ "version": "0.10.15",
+ "resolved": "https://registry.nlark.com/es5-ext/download/es5-ext-0.10.15.tgz",
+ "integrity": "sha1-wzClk0we4hKEp8CBqG5f2TfJHqY=",
+ "requires": {
+ "es6-iterator": "2",
+ "es6-symbol": "~3.1"
+ }
+ },
+ "es6-iterator": {
+ "version": "2.0.1",
+ "resolved": "https://registry.nlark.com/es6-iterator/download/es6-iterator-2.0.1.tgz",
+ "integrity": "sha1-jjGcnwRTv1ddN0lAplWSDlnKVRI=",
+ "requires": {
+ "d": "1",
+ "es5-ext": "^0.10.14",
+ "es6-symbol": "^3.1"
+ }
+ },
+ "es6-map": {
+ "version": "0.1.5",
+ "resolved": "https://registry.nlark.com/es6-map/download/es6-map-0.1.5.tgz",
+ "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=",
+ "requires": {
+ "d": "1",
+ "es5-ext": "~0.10.14",
+ "es6-iterator": "~2.0.1",
+ "es6-set": "~0.1.5",
+ "es6-symbol": "~3.1.1",
+ "event-emitter": "~0.3.5"
+ }
+ },
+ "es6-set": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npm.taobao.org/es6-set/download/es6-set-0.1.5.tgz",
+ "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=",
+ "requires": {
+ "d": "1",
+ "es5-ext": "~0.10.14",
+ "es6-iterator": "~2.0.1",
+ "es6-symbol": "3.1.1",
+ "event-emitter": "~0.3.5"
+ }
+ },
+ "es6-symbol": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npm.taobao.org/es6-symbol/download/es6-symbol-3.1.1.tgz",
+ "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
+ "requires": {
+ "d": "1",
+ "es5-ext": "~0.10.14"
+ }
+ },
+ "es6-weak-map": {
+ "version": "2.0.2",
+ "resolved": "https://registry.nlark.com/es6-weak-map/download/es6-weak-map-2.0.2.tgz",
+ "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=",
+ "requires": {
+ "d": "1",
+ "es5-ext": "^0.10.14",
+ "es6-iterator": "^2.0.1",
+ "es6-symbol": "^3.1.1"
+ }
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz?cache=0&sync_timestamp=1618677243201&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
+ },
+ "escope": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npm.taobao.org/escope/download/escope-3.6.0.tgz",
+ "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=",
+ "requires": {
+ "es6-map": "^0.1.3",
+ "es6-weak-map": "^2.0.1",
+ "esrecurse": "^4.1.0",
+ "estraverse": "^4.1.1"
+ }
+ },
+ "eslint": {
+ "version": "3.19.0",
+ "resolved": "https://registry.npmmirror.com/eslint/download/eslint-3.19.0.tgz?cache=0&sync_timestamp=1637475730061&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint%2Fdownload%2Feslint-3.19.0.tgz",
+ "integrity": "sha1-yPxiAcf0DdCJQbh8CFdnOGpnmsw=",
+ "requires": {
+ "babel-code-frame": "^6.16.0",
+ "chalk": "^1.1.3",
+ "concat-stream": "^1.5.2",
+ "debug": "^2.1.1",
+ "doctrine": "^2.0.0",
+ "escope": "^3.6.0",
+ "espree": "^3.4.0",
+ "esquery": "^1.0.0",
+ "estraverse": "^4.2.0",
+ "esutils": "^2.0.2",
+ "file-entry-cache": "^2.0.0",
+ "glob": "^7.0.3",
+ "globals": "^9.14.0",
+ "ignore": "^3.2.0",
+ "imurmurhash": "^0.1.4",
+ "inquirer": "^0.12.0",
+ "is-my-json-valid": "^2.10.0",
+ "is-resolvable": "^1.0.0",
+ "js-yaml": "^3.5.1",
+ "json-stable-stringify": "^1.0.0",
+ "levn": "^0.3.0",
+ "lodash": "^4.0.0",
+ "mkdirp": "^0.5.0",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.8.2",
+ "path-is-inside": "^1.0.1",
+ "pluralize": "^1.2.1",
+ "progress": "^1.1.8",
+ "require-uncached": "^1.0.2",
+ "shelljs": "^0.7.5",
+ "strip-bom": "^3.0.0",
+ "strip-json-comments": "~2.0.1",
+ "table": "^3.7.8",
+ "text-table": "~0.2.0",
+ "user-home": "^2.0.0"
+ },
+ "dependencies": {
+ "user-home": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/user-home/download/user-home-2.0.0.tgz",
+ "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=",
+ "requires": {
+ "os-homedir": "^1.0.0"
+ }
+ }
+ }
+ },
+ "eslint-config-airbnb": {
+ "version": "14.1.0",
+ "resolved": "https://registry.npmmirror.com/eslint-config-airbnb/download/eslint-config-airbnb-14.1.0.tgz",
+ "integrity": "sha1-NV0pAEC7+OAL+LSxn0twy+fCMX8=",
+ "requires": {
+ "eslint-config-airbnb-base": "^11.1.0"
+ }
+ },
+ "eslint-config-airbnb-base": {
+ "version": "11.1.2",
+ "resolved": "https://registry.npmmirror.com/eslint-config-airbnb-base/download/eslint-config-airbnb-base-11.1.2.tgz?cache=0&sync_timestamp=1636442475199&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-config-airbnb-base%2Fdownload%2Feslint-config-airbnb-base-11.1.2.tgz",
+ "integrity": "sha1-JZIJp2eL9pPjHL6PlT8ga2qnzMM="
+ },
+ "eslint-import-resolver-node": {
+ "version": "0.2.3",
+ "resolved": "https://registry.nlark.com/eslint-import-resolver-node/download/eslint-import-resolver-node-0.2.3.tgz?cache=0&sync_timestamp=1629046642917&other_urls=https%3A%2F%2Fregistry.nlark.com%2Feslint-import-resolver-node%2Fdownload%2Feslint-import-resolver-node-0.2.3.tgz",
+ "integrity": "sha1-Wt2BBujJKNssuiMrzZ76hG49oWw=",
+ "requires": {
+ "debug": "^2.2.0",
+ "object-assign": "^4.0.1",
+ "resolve": "^1.1.6"
+ }
+ },
+ "eslint-module-utils": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/eslint-module-utils/download/eslint-module-utils-2.0.0.tgz?cache=0&sync_timestamp=1634151608499&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-module-utils%2Fdownload%2Feslint-module-utils-2.0.0.tgz",
+ "integrity": "sha1-pvjCHZATWHWc3DXbrBmCrh7li84=",
+ "requires": {
+ "debug": "2.2.0",
+ "pkg-dir": "^1.0.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/debug/download/debug-2.2.0.tgz",
+ "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
+ "requires": {
+ "ms": "0.7.1"
+ }
+ },
+ "ms": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmmirror.com/ms/download/ms-0.7.1.tgz",
+ "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg="
+ }
+ }
+ },
+ "eslint-plugin-import": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/eslint-plugin-import/download/eslint-plugin-import-2.2.0.tgz?cache=0&sync_timestamp=1636529205526&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-plugin-import%2Fdownload%2Feslint-plugin-import-2.2.0.tgz",
+ "integrity": "sha1-crowb60wXWfEgWNIpGmaQimsi04=",
+ "requires": {
+ "builtin-modules": "^1.1.1",
+ "contains-path": "^0.1.0",
+ "debug": "^2.2.0",
+ "doctrine": "1.5.0",
+ "eslint-import-resolver-node": "^0.2.0",
+ "eslint-module-utils": "^2.0.0",
+ "has": "^1.0.1",
+ "lodash.cond": "^4.3.0",
+ "minimatch": "^3.0.3",
+ "pkg-up": "^1.0.0"
+ },
+ "dependencies": {
+ "doctrine": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npm.taobao.org/doctrine/download/doctrine-1.5.0.tgz",
+ "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=",
+ "requires": {
+ "esutils": "^2.0.2",
+ "isarray": "^1.0.0"
+ }
+ }
+ }
+ },
+ "eslint-plugin-jsx-a11y": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/eslint-plugin-jsx-a11y/download/eslint-plugin-jsx-a11y-4.0.0.tgz?cache=0&sync_timestamp=1636698418809&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-plugin-jsx-a11y%2Fdownload%2Feslint-plugin-jsx-a11y-4.0.0.tgz",
+ "integrity": "sha1-d5uw/nsI2lZKQiYkkR3hAGHgSO4=",
+ "requires": {
+ "aria-query": "^0.3.0",
+ "ast-types-flow": "0.0.7",
+ "damerau-levenshtein": "^1.0.0",
+ "emoji-regex": "^6.1.0",
+ "jsx-ast-utils": "^1.0.0",
+ "object-assign": "^4.0.1"
+ }
+ },
+ "eslint-plugin-react": {
+ "version": "6.10.3",
+ "resolved": "https://registry.npmmirror.com/eslint-plugin-react/download/eslint-plugin-react-6.10.3.tgz",
+ "integrity": "sha1-xUNb6wZ3ThLH2y9qut3L+QDNP3g=",
+ "requires": {
+ "array.prototype.find": "^2.0.1",
+ "doctrine": "^1.2.2",
+ "has": "^1.0.1",
+ "jsx-ast-utils": "^1.3.4",
+ "object.assign": "^4.0.4"
+ },
+ "dependencies": {
+ "doctrine": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npm.taobao.org/doctrine/download/doctrine-1.5.0.tgz",
+ "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=",
+ "requires": {
+ "esutils": "^2.0.2",
+ "isarray": "^1.0.0"
+ }
+ }
+ }
+ },
+ "espree": {
+ "version": "3.4.1",
+ "resolved": "https://registry.npmmirror.com/espree/download/espree-3.4.1.tgz?cache=0&sync_timestamp=1637466456948&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fespree%2Fdownload%2Fespree-3.4.1.tgz",
+ "integrity": "sha1-KKg6tKrtce2P4PXv5ht2oFwTxNI=",
+ "requires": {
+ "acorn": "^5.0.1",
+ "acorn-jsx": "^3.0.0"
+ }
+ },
+ "esprima": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npm.taobao.org/esprima/download/esprima-3.1.3.tgz",
+ "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM="
+ },
+ "esquery": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/esquery/download/esquery-1.0.0.tgz",
+ "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=",
+ "requires": {
+ "estraverse": "^4.0.0"
+ }
+ },
+ "esrecurse": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npm.taobao.org/esrecurse/download/esrecurse-4.1.0.tgz",
+ "integrity": "sha1-RxO2U2rffyrE8yfVWed1a/9kgiA=",
+ "requires": {
+ "estraverse": "~4.1.0",
+ "object-assign": "^4.0.1"
+ },
+ "dependencies": {
+ "estraverse": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmmirror.com/estraverse/download/estraverse-4.1.1.tgz?cache=0&sync_timestamp=1635237716974&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Festraverse%2Fdownload%2Festraverse-4.1.1.tgz",
+ "integrity": "sha1-9srKcokzqFDvkGYdDheYK6RxEaI="
+ }
+ }
+ },
+ "estraverse": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmmirror.com/estraverse/download/estraverse-4.2.0.tgz?cache=0&sync_timestamp=1635237716974&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Festraverse%2Fdownload%2Festraverse-4.2.0.tgz",
+ "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM="
+ },
+ "esutils": {
+ "version": "2.0.2",
+ "resolved": "https://registry.nlark.com/esutils/download/esutils-2.0.2.tgz",
+ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs="
+ },
+ "event-emitter": {
+ "version": "0.3.5",
+ "resolved": "https://registry.nlark.com/event-emitter/download/event-emitter-0.3.5.tgz",
+ "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
+ "requires": {
+ "d": "1",
+ "es5-ext": "~0.10.14"
+ }
+ },
+ "eventemitter3": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npm.taobao.org/eventemitter3/download/eventemitter3-2.0.3.tgz",
+ "integrity": "sha1-teEHm1n7XhuidxwKmTvgYKWMmbo="
+ },
+ "events": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/events/download/events-1.1.1.tgz",
+ "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ="
+ },
+ "evp_bytestokey": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/evp_bytestokey/download/evp_bytestokey-1.0.0.tgz",
+ "integrity": "sha1-SXtmrZ/vZc18CKYYCCS6FHa2blM=",
+ "requires": {
+ "create-hash": "^1.1.1"
+ }
+ },
+ "exit-hook": {
+ "version": "1.1.1",
+ "resolved": "https://registry.nlark.com/exit-hook/download/exit-hook-1.1.1.tgz",
+ "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g="
+ },
+ "expand-brackets": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-0.1.5.tgz",
+ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
+ "requires": {
+ "is-posix-bracket": "^0.1.0"
+ }
+ },
+ "expand-range": {
+ "version": "1.8.2",
+ "resolved": "https://registry.nlark.com/expand-range/download/expand-range-1.8.2.tgz",
+ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
+ "requires": {
+ "fill-range": "^2.1.0"
+ }
+ },
+ "extend": {
+ "version": "3.0.0",
+ "resolved": "https://registry.nlark.com/extend/download/extend-3.0.0.tgz",
+ "integrity": "sha1-WkdDU7nzNT3dgXbf03uRyDpG8dQ="
+ },
+ "extglob": {
+ "version": "0.3.2",
+ "resolved": "https://registry.nlark.com/extglob/download/extglob-0.3.2.tgz",
+ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
+ "requires": {
+ "is-extglob": "^1.0.0"
+ }
+ },
+ "fast-diff": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npm.taobao.org/fast-diff/download/fast-diff-1.1.1.tgz",
+ "integrity": "sha1-CuoOTmBbaiGJ8Ok21Lf7rxt8/Zs="
+ },
+ "fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npm.taobao.org/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
+ },
+ "figures": {
+ "version": "1.7.0",
+ "resolved": "https://registry.nlark.com/figures/download/figures-1.7.0.tgz?cache=0&sync_timestamp=1625254307578&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffigures%2Fdownload%2Ffigures-1.7.0.tgz",
+ "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
+ "requires": {
+ "escape-string-regexp": "^1.0.5",
+ "object-assign": "^4.1.0"
+ }
+ },
+ "file-entry-cache": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/file-entry-cache/download/file-entry-cache-2.0.0.tgz?cache=0&sync_timestamp=1613794272556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-entry-cache%2Fdownload%2Ffile-entry-cache-2.0.0.tgz",
+ "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=",
+ "requires": {
+ "flat-cache": "^1.2.1",
+ "object-assign": "^4.0.1"
+ }
+ },
+ "filename-regex": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/filename-regex/download/filename-regex-2.0.0.tgz",
+ "integrity": "sha1-mW4+gEebmLmJfxWopYs9CE6SZ3U="
+ },
+ "fill-range": {
+ "version": "2.2.3",
+ "resolved": "https://registry.nlark.com/fill-range/download/fill-range-2.2.3.tgz",
+ "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=",
+ "requires": {
+ "is-number": "^2.1.0",
+ "isobject": "^2.0.0",
+ "randomatic": "^1.1.3",
+ "repeat-element": "^1.1.2",
+ "repeat-string": "^1.5.2"
+ }
+ },
+ "find-cache-dir": {
+ "version": "0.1.1",
+ "resolved": "https://registry.nlark.com/find-cache-dir/download/find-cache-dir-0.1.1.tgz?cache=0&sync_timestamp=1630260009898&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffind-cache-dir%2Fdownload%2Ffind-cache-dir-0.1.1.tgz",
+ "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=",
+ "requires": {
+ "commondir": "^1.0.1",
+ "mkdirp": "^0.5.1",
+ "pkg-dir": "^1.0.0"
+ }
+ },
+ "find-up": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/find-up/download/find-up-1.1.2.tgz?cache=0&sync_timestamp=1633618766404&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ffind-up%2Fdownload%2Ffind-up-1.1.2.tgz",
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+ "requires": {
+ "path-exists": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "flat-cache": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npm.taobao.org/flat-cache/download/flat-cache-1.2.2.tgz",
+ "integrity": "sha1-+oZxTnLCHbiGAXYezy9VXRq8a5Y=",
+ "requires": {
+ "circular-json": "^0.3.1",
+ "del": "^2.0.2",
+ "graceful-fs": "^4.1.2",
+ "write": "^0.2.1"
+ }
+ },
+ "for-in": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npm.taobao.org/for-in/download/for-in-1.0.2.tgz",
+ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA="
+ },
+ "for-own": {
+ "version": "0.1.5",
+ "resolved": "https://registry.nlark.com/for-own/download/for-own-0.1.5.tgz",
+ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
+ "requires": {
+ "for-in": "^1.0.1"
+ }
+ },
+ "foreach": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npm.taobao.org/foreach/download/foreach-2.0.5.tgz",
+ "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k="
+ },
+ "fs-readdir-recursive": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/fs-readdir-recursive/download/fs-readdir-recursive-1.0.0.tgz",
+ "integrity": "sha1-jNF0XItPiinIyuw5JHaSG6GV9WA="
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+ },
+ "fsevents": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/fsevents/download/fsevents-1.1.1.tgz",
+ "integrity": "sha1-8Z/Sj0Pur3YWgOUZogPE0LPTGv8=",
+ "optional": true,
+ "requires": {
+ "nan": "^2.3.0",
+ "node-pre-gyp": "^0.6.29"
+ },
+ "dependencies": {
+ "abbrev": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz",
+ "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=",
+ "optional": true
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "optional": true
+ },
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "optional": true
+ },
+ "aproba": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.1.tgz",
+ "integrity": "sha1-ldNgDwdxCqDpKYxyatXs8urLq6s=",
+ "optional": true
+ },
+ "are-we-there-yet": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz",
+ "integrity": "sha1-gORw6VoIR5T+GJkmLFZnxuiN4bM=",
+ "optional": true,
+ "requires": {
+ "delegates": "^1.0.0",
+ "readable-stream": "^2.0.0 || ^1.1.13"
+ }
+ },
+ "asn1": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
+ "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=",
+ "optional": true
+ },
+ "assert-plus": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
+ "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=",
+ "optional": true
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
+ "optional": true
+ },
+ "aws-sign2": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
+ "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=",
+ "optional": true
+ },
+ "aws4": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
+ "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=",
+ "optional": true
+ },
+ "balanced-match": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
+ "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=",
+ "optional": true
+ },
+ "bcrypt-pbkdf": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
+ "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
+ "optional": true,
+ "requires": {
+ "tweetnacl": "^0.14.3"
+ }
+ },
+ "block-stream": {
+ "version": "0.0.9",
+ "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
+ "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
+ "optional": true,
+ "requires": {
+ "inherits": "~2.0.0"
+ }
+ },
+ "boom": {
+ "version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
+ "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
+ "optional": true,
+ "requires": {
+ "hoek": "2.x.x"
+ }
+ },
+ "brace-expansion": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz",
+ "integrity": "sha1-cZfX6qm4fmSDkOph/GbIRCdCDfk=",
+ "optional": true,
+ "requires": {
+ "balanced-match": "^0.4.1",
+ "concat-map": "0.0.1"
+ }
+ },
+ "buffer-shims": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz",
+ "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=",
+ "optional": true
+ },
+ "caseless": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz",
+ "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=",
+ "optional": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "optional": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ }
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
+ "optional": true
+ },
+ "combined-stream": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
+ "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=",
+ "optional": true,
+ "requires": {
+ "delayed-stream": "~1.0.0"
+ }
+ },
+ "commander": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
+ "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=",
+ "optional": true,
+ "requires": {
+ "graceful-readlink": ">= 1.0.0"
+ }
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "optional": true
+ },
+ "console-control-strings": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
+ "optional": true
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+ "optional": true
+ },
+ "cryptiles": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
+ "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=",
+ "optional": true,
+ "requires": {
+ "boom": "2.x.x"
+ }
+ },
+ "dashdash": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+ "optional": true,
+ "requires": {
+ "assert-plus": "^1.0.0"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "optional": true
+ }
+ }
+ },
+ "debug": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
+ "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
+ "optional": true,
+ "requires": {
+ "ms": "0.7.1"
+ }
+ },
+ "deep-extend": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.1.tgz",
+ "integrity": "sha1-7+QRPQgIX05vlod1mBD4B0aeIlM=",
+ "optional": true
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
+ "optional": true
+ },
+ "delegates": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
+ "optional": true
+ },
+ "ecc-jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
+ "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
+ "optional": true,
+ "requires": {
+ "jsbn": "~0.1.0"
+ }
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "optional": true
+ },
+ "extend": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz",
+ "integrity": "sha1-WkdDU7nzNT3dgXbf03uRyDpG8dQ=",
+ "optional": true
+ },
+ "extsprintf": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz",
+ "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=",
+ "optional": true
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
+ "optional": true
+ },
+ "form-data": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.2.tgz",
+ "integrity": "sha1-icNTQAi5fq2ky7FX1Y9vXfAl6uQ=",
+ "optional": true,
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.5",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "optional": true
+ },
+ "fstream": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.10.tgz",
+ "integrity": "sha1-YE6Kkv4m/9n2+uMDmdSYThqyKCI=",
+ "optional": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "inherits": "~2.0.0",
+ "mkdirp": ">=0.5 0",
+ "rimraf": "2"
+ }
+ },
+ "fstream-ignore": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz",
+ "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=",
+ "optional": true,
+ "requires": {
+ "fstream": "^1.0.0",
+ "inherits": "2",
+ "minimatch": "^3.0.0"
+ }
+ },
+ "gauge": {
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.3.tgz",
+ "integrity": "sha1-HCOFX5YvF7OtPQ3HRD8wRULt/gk=",
+ "optional": true,
+ "requires": {
+ "aproba": "^1.0.3",
+ "console-control-strings": "^1.0.0",
+ "has-unicode": "^2.0.0",
+ "object-assign": "^4.1.0",
+ "signal-exit": "^3.0.0",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wide-align": "^1.1.0"
+ }
+ },
+ "generate-function": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz",
+ "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=",
+ "optional": true
+ },
+ "generate-object-property": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz",
+ "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=",
+ "optional": true,
+ "requires": {
+ "is-property": "^1.0.0"
+ }
+ },
+ "getpass": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz",
+ "integrity": "sha1-KD/9n8ElaECHUxHBtg6MQBhxEOY=",
+ "optional": true,
+ "requires": {
+ "assert-plus": "^1.0.0"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "optional": true
+ }
+ }
+ },
+ "glob": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
+ "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=",
+ "optional": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.2",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.1.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+ "optional": true
+ },
+ "graceful-readlink": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
+ "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=",
+ "optional": true
+ },
+ "har-validator": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz",
+ "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=",
+ "optional": true,
+ "requires": {
+ "chalk": "^1.1.1",
+ "commander": "^2.9.0",
+ "is-my-json-valid": "^2.12.4",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "optional": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "has-unicode": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
+ "optional": true
+ },
+ "hawk": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
+ "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=",
+ "optional": true,
+ "requires": {
+ "boom": "2.x.x",
+ "cryptiles": "2.x.x",
+ "hoek": "2.x.x",
+ "sntp": "1.x.x"
+ }
+ },
+ "hoek": {
+ "version": "2.16.3",
+ "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
+ "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=",
+ "optional": true
+ },
+ "http-signature": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
+ "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=",
+ "optional": true,
+ "requires": {
+ "assert-plus": "^0.2.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
+ }
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "optional": true,
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "optional": true
+ },
+ "ini": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz",
+ "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=",
+ "optional": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "optional": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "is-my-json-valid": {
+ "version": "2.15.0",
+ "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz",
+ "integrity": "sha1-k27do8o8IR/ZjzstPgjaQ/eykVs=",
+ "optional": true,
+ "requires": {
+ "generate-function": "^2.0.0",
+ "generate-object-property": "^1.1.0",
+ "jsonpointer": "^4.0.0",
+ "xtend": "^4.0.0"
+ }
+ },
+ "is-property": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
+ "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=",
+ "optional": true
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
+ "optional": true
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "optional": true
+ },
+ "isstream": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
+ "optional": true
+ },
+ "jodid25519": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz",
+ "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=",
+ "optional": true,
+ "requires": {
+ "jsbn": "~0.1.0"
+ }
+ },
+ "jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
+ "optional": true
+ },
+ "json-schema": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
+ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
+ "optional": true
+ },
+ "json-stringify-safe": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
+ "optional": true
+ },
+ "jsonpointer": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz",
+ "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=",
+ "optional": true
+ },
+ "jsprim": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.3.1.tgz",
+ "integrity": "sha1-KnJW9wQSop7jZwqspiWZTE3P8lI=",
+ "optional": true,
+ "requires": {
+ "extsprintf": "1.0.2",
+ "json-schema": "0.2.3",
+ "verror": "1.3.6"
+ }
+ },
+ "mime-db": {
+ "version": "1.26.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.26.0.tgz",
+ "integrity": "sha1-6v/NDk/Gk1z4E02iRuLmw1MFrf8=",
+ "optional": true
+ },
+ "mime-types": {
+ "version": "2.1.14",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz",
+ "integrity": "sha1-9+99l1g/yvO30oK2+LVnnaselO4=",
+ "optional": true,
+ "requires": {
+ "mime-db": "~1.26.0"
+ }
+ },
+ "minimatch": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
+ "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=",
+ "optional": true,
+ "requires": {
+ "brace-expansion": "^1.0.0"
+ }
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+ "optional": true
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "optional": true,
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ },
+ "ms": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
+ "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=",
+ "optional": true
+ },
+ "node-pre-gyp": {
+ "version": "0.6.33",
+ "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.33.tgz",
+ "integrity": "sha1-ZArFUZj2qSWXLgwWxKwmoDTV7Mk=",
+ "optional": true,
+ "requires": {
+ "mkdirp": "~0.5.1",
+ "nopt": "~3.0.6",
+ "npmlog": "^4.0.1",
+ "rc": "~1.1.6",
+ "request": "^2.79.0",
+ "rimraf": "~2.5.4",
+ "semver": "~5.3.0",
+ "tar": "~2.2.1",
+ "tar-pack": "~3.3.0"
+ }
+ },
+ "nopt": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
+ "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
+ "optional": true,
+ "requires": {
+ "abbrev": "1"
+ }
+ },
+ "npmlog": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.0.2.tgz",
+ "integrity": "sha1-0DlQ4OeM4VJ7om0qdZLpNIrD518=",
+ "optional": true,
+ "requires": {
+ "are-we-there-yet": "~1.1.2",
+ "console-control-strings": "~1.1.0",
+ "gauge": "~2.7.1",
+ "set-blocking": "~2.0.0"
+ }
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+ "optional": true
+ },
+ "oauth-sign": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
+ "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=",
+ "optional": true
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "optional": true
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "optional": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "optional": true
+ },
+ "pinkie": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+ "optional": true
+ },
+ "pinkie-promise": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+ "optional": true,
+ "requires": {
+ "pinkie": "^2.0.0"
+ }
+ },
+ "process-nextick-args": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
+ "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
+ "optional": true
+ },
+ "punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
+ "optional": true
+ },
+ "qs": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.1.tgz",
+ "integrity": "sha1-kYwLO802Z5dyuvE1say0wWUe150=",
+ "optional": true
+ },
+ "rc": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.1.7.tgz",
+ "integrity": "sha1-xepWS7B6/5/TpbMukGwdOmWUD+o=",
+ "optional": true,
+ "requires": {
+ "deep-extend": "~0.4.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "optional": true
+ }
+ }
+ },
+ "readable-stream": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz",
+ "integrity": "sha1-qeb+w8fdqF+LsbO6cChgRVb8gl4=",
+ "optional": true,
+ "requires": {
+ "buffer-shims": "^1.0.0",
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~1.0.6",
+ "string_decoder": "~0.10.x",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "request": {
+ "version": "2.79.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz",
+ "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=",
+ "optional": true,
+ "requires": {
+ "aws-sign2": "~0.6.0",
+ "aws4": "^1.2.1",
+ "caseless": "~0.11.0",
+ "combined-stream": "~1.0.5",
+ "extend": "~3.0.0",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.1.1",
+ "har-validator": "~2.0.6",
+ "hawk": "~3.1.3",
+ "http-signature": "~1.1.0",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.7",
+ "oauth-sign": "~0.8.1",
+ "qs": "~6.3.0",
+ "stringstream": "~0.0.4",
+ "tough-cookie": "~2.3.0",
+ "tunnel-agent": "~0.4.1",
+ "uuid": "^3.0.0"
+ }
+ },
+ "rimraf": {
+ "version": "2.5.4",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.4.tgz",
+ "integrity": "sha1-loAAk8vxoMhr2VtGJUZ1NcKd+gQ=",
+ "optional": true,
+ "requires": {
+ "glob": "^7.0.5"
+ }
+ },
+ "semver": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
+ "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
+ "optional": true
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
+ "optional": true
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
+ "optional": true
+ },
+ "sntp": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
+ "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
+ "optional": true,
+ "requires": {
+ "hoek": "2.x.x"
+ }
+ },
+ "sshpk": {
+ "version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.10.2.tgz",
+ "integrity": "sha1-1agEziJpVRVjjnmNviMnPeBwpfo=",
+ "optional": true,
+ "requires": {
+ "asn1": "~0.2.3",
+ "assert-plus": "^1.0.0",
+ "bcrypt-pbkdf": "^1.0.0",
+ "dashdash": "^1.12.0",
+ "ecc-jsbn": "~0.1.1",
+ "getpass": "^0.1.1",
+ "jodid25519": "^1.0.0",
+ "jsbn": "~0.1.0",
+ "tweetnacl": "~0.14.0"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "optional": true
+ }
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "optional": true,
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+ "optional": true
+ },
+ "stringstream": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
+ "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=",
+ "optional": true
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "optional": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
+ "optional": true
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "optional": true
+ },
+ "tar": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
+ "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
+ "optional": true,
+ "requires": {
+ "block-stream": "*",
+ "fstream": "^1.0.2",
+ "inherits": "2"
+ }
+ },
+ "tar-pack": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.3.0.tgz",
+ "integrity": "sha1-MJMYFkGPVa/E0hd1r91nIM7kXa4=",
+ "optional": true,
+ "requires": {
+ "debug": "~2.2.0",
+ "fstream": "~1.0.10",
+ "fstream-ignore": "~1.0.5",
+ "once": "~1.3.3",
+ "readable-stream": "~2.1.4",
+ "rimraf": "~2.5.1",
+ "tar": "~2.2.1",
+ "uid-number": "~0.0.6"
+ },
+ "dependencies": {
+ "once": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
+ "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=",
+ "optional": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "readable-stream": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.5.tgz",
+ "integrity": "sha1-ZvqLcg4UOLNkaB8q0aY8YYRIydA=",
+ "optional": true,
+ "requires": {
+ "buffer-shims": "^1.0.0",
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~1.0.6",
+ "string_decoder": "~0.10.x",
+ "util-deprecate": "~1.0.1"
+ }
+ }
+ }
+ },
+ "tough-cookie": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz",
+ "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=",
+ "optional": true,
+ "requires": {
+ "punycode": "^1.4.1"
+ }
+ },
+ "tunnel-agent": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz",
+ "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=",
+ "optional": true
+ },
+ "tweetnacl": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
+ "optional": true
+ },
+ "uid-number": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz",
+ "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=",
+ "optional": true
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+ "optional": true
+ },
+ "uuid": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz",
+ "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=",
+ "optional": true
+ },
+ "verror": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz",
+ "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=",
+ "optional": true,
+ "requires": {
+ "extsprintf": "1.0.2"
+ }
+ },
+ "wide-align": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.0.tgz",
+ "integrity": "sha1-QO3egCpx/qHwcNo+YtzaLnrdlq0=",
+ "optional": true,
+ "requires": {
+ "string-width": "^1.0.1"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "optional": true
+ },
+ "xtend": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+ "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
+ "optional": true
+ }
+ }
+ },
+ "function-bind": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.0.tgz",
+ "integrity": "sha1-FhdnFMgBeY5Ojyz391KUZ7tKV3E="
+ },
+ "generate-function": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/generate-function/download/generate-function-2.0.0.tgz",
+ "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ="
+ },
+ "generate-object-property": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npm.taobao.org/generate-object-property/download/generate-object-property-1.2.0.tgz",
+ "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=",
+ "requires": {
+ "is-property": "^1.0.0"
+ }
+ },
+ "get-caller-file": {
+ "version": "1.0.2",
+ "resolved": "https://registry.nlark.com/get-caller-file/download/get-caller-file-1.0.2.tgz",
+ "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U="
+ },
+ "glob": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmmirror.com/glob/download/glob-7.1.1.tgz",
+ "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=",
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.2",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "glob-base": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npm.taobao.org/glob-base/download/glob-base-0.3.0.tgz",
+ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
+ "requires": {
+ "glob-parent": "^2.0.0",
+ "is-glob": "^2.0.0"
+ }
+ },
+ "glob-parent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/glob-parent/download/glob-parent-2.0.0.tgz?cache=0&sync_timestamp=1632953810778&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fglob-parent%2Fdownload%2Fglob-parent-2.0.0.tgz",
+ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
+ "requires": {
+ "is-glob": "^2.0.0"
+ }
+ },
+ "globals": {
+ "version": "9.17.0",
+ "resolved": "https://registry.npmmirror.com/globals/download/globals-9.17.0.tgz?cache=0&sync_timestamp=1635390798667&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fglobals%2Fdownload%2Fglobals-9.17.0.tgz",
+ "integrity": "sha1-DAymltm5u2lNLlRwvTd3fKrVAoY="
+ },
+ "globby": {
+ "version": "5.0.0",
+ "resolved": "https://registry.nlark.com/globby/download/globby-5.0.0.tgz",
+ "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=",
+ "requires": {
+ "array-union": "^1.0.1",
+ "arrify": "^1.0.0",
+ "glob": "^7.0.3",
+ "object-assign": "^4.0.1",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.1.11",
+ "resolved": "https://registry.npmmirror.com/graceful-fs/download/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
+ },
+ "graceful-readlink": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/graceful-readlink/download/graceful-readlink-1.0.1.tgz",
+ "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU="
+ },
+ "has": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/has/download/has-1.0.1.tgz",
+ "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=",
+ "requires": {
+ "function-bind": "^1.0.2"
+ }
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/has-ansi/download/has-ansi-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-ansi%2Fdownload%2Fhas-ansi-2.0.0.tgz",
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/has-flag/download/has-flag-1.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo="
+ },
+ "hash.js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.nlark.com/hash.js/download/hash.js-1.0.3.tgz?cache=0&sync_timestamp=1622643346539&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhash.js%2Fdownload%2Fhash.js-1.0.3.tgz",
+ "integrity": "sha1-EzL/ABVsCg/92CNgE9B7d6BFFXM=",
+ "requires": {
+ "inherits": "^2.0.1"
+ }
+ },
+ "hmac-drbg": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/hmac-drbg/download/hmac-drbg-1.0.0.tgz",
+ "integrity": "sha1-PbRx9FquSplKBogyIXH1G4uRvuU=",
+ "requires": {
+ "hash.js": "^1.0.3",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.1"
+ }
+ },
+ "home-or-tmp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/home-or-tmp/download/home-or-tmp-2.0.0.tgz?cache=0&sync_timestamp=1618599551277&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhome-or-tmp%2Fdownload%2Fhome-or-tmp-2.0.0.tgz",
+ "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=",
+ "requires": {
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.1"
+ }
+ },
+ "hosted-git-info": {
+ "version": "2.4.1",
+ "resolved": "https://registry.nlark.com/hosted-git-info/download/hosted-git-info-2.4.1.tgz",
+ "integrity": "sha1-SwRF5BwASovRM3dzpP95DKQDGMg="
+ },
+ "https-browserify": {
+ "version": "0.0.1",
+ "resolved": "https://registry.nlark.com/https-browserify/download/https-browserify-0.0.1.tgz",
+ "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI="
+ },
+ "ieee754": {
+ "version": "1.1.8",
+ "resolved": "https://registry.nlark.com/ieee754/download/ieee754-1.1.8.tgz",
+ "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q="
+ },
+ "ignore": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmmirror.com/ignore/download/ignore-3.2.6.tgz?cache=0&sync_timestamp=1635926632542&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fignore%2Fdownload%2Fignore-3.2.6.tgz",
+ "integrity": "sha1-JujaBkS+C7TLOVFvbHnw4PT/5Iw="
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz",
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o="
+ },
+ "indexof": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npm.taobao.org/indexof/download/indexof-0.0.1.tgz",
+ "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10="
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.nlark.com/inherits/download/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+ },
+ "inquirer": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmmirror.com/inquirer/download/inquirer-0.12.0.tgz?cache=0&sync_timestamp=1633472964335&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Finquirer%2Fdownload%2Finquirer-0.12.0.tgz",
+ "integrity": "sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=",
+ "requires": {
+ "ansi-escapes": "^1.1.0",
+ "ansi-regex": "^2.0.0",
+ "chalk": "^1.0.0",
+ "cli-cursor": "^1.0.1",
+ "cli-width": "^2.0.0",
+ "figures": "^1.3.5",
+ "lodash": "^4.3.0",
+ "readline2": "^1.0.1",
+ "run-async": "^0.1.0",
+ "rx-lite": "^3.1.2",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.0",
+ "through": "^2.3.6"
+ }
+ },
+ "interpret": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npm.taobao.org/interpret/download/interpret-1.0.2.tgz",
+ "integrity": "sha1-9PYj8LtxIvFfVxfI4lS4FhtcWy0="
+ },
+ "invariant": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npm.taobao.org/invariant/download/invariant-2.2.2.tgz",
+ "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=",
+ "requires": {
+ "loose-envify": "^1.0.0"
+ }
+ },
+ "invert-kv": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/invert-kv/download/invert-kv-1.0.0.tgz?cache=0&sync_timestamp=1630996775723&other_urls=https%3A%2F%2Fregistry.nlark.com%2Finvert-kv%2Fdownload%2Finvert-kv-1.0.0.tgz",
+ "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY="
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
+ },
+ "is-binary-path": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz",
+ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
+ "requires": {
+ "binary-extensions": "^1.0.0"
+ }
+ },
+ "is-buffer": {
+ "version": "1.1.5",
+ "resolved": "https://registry.nlark.com/is-buffer/download/is-buffer-1.1.5.tgz",
+ "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw="
+ },
+ "is-builtin-module": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/is-builtin-module/download/is-builtin-module-1.0.0.tgz?cache=0&sync_timestamp=1618995546759&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-builtin-module%2Fdownload%2Fis-builtin-module-1.0.0.tgz",
+ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
+ "requires": {
+ "builtin-modules": "^1.0.0"
+ }
+ },
+ "is-callable": {
+ "version": "1.1.3",
+ "resolved": "https://registry.nlark.com/is-callable/download/is-callable-1.1.3.tgz",
+ "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI="
+ },
+ "is-date-object": {
+ "version": "1.0.1",
+ "resolved": "https://registry.nlark.com/is-date-object/download/is-date-object-1.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-date-object%2Fdownload%2Fis-date-object-1.0.1.tgz",
+ "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY="
+ },
+ "is-dotfile": {
+ "version": "1.0.2",
+ "resolved": "https://registry.nlark.com/is-dotfile/download/is-dotfile-1.0.2.tgz",
+ "integrity": "sha1-LBMjg/ORmfjtwmjKAbmwB9IFzE0="
+ },
+ "is-equal-shallow": {
+ "version": "0.1.3",
+ "resolved": "https://registry.nlark.com/is-equal-shallow/download/is-equal-shallow-0.1.3.tgz",
+ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
+ "requires": {
+ "is-primitive": "^2.0.0"
+ }
+ },
+ "is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz",
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik="
+ },
+ "is-extglob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/is-extglob/download/is-extglob-1.0.0.tgz",
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
+ },
+ "is-finite": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/is-finite/download/is-finite-1.0.2.tgz",
+ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "is-glob": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/is-glob/download/is-glob-2.0.1.tgz",
+ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+ "requires": {
+ "is-extglob": "^1.0.0"
+ }
+ },
+ "is-my-json-valid": {
+ "version": "2.16.0",
+ "resolved": "https://registry.npmmirror.com/is-my-json-valid/download/is-my-json-valid-2.16.0.tgz?cache=0&sync_timestamp=1636548715824&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fis-my-json-valid%2Fdownload%2Fis-my-json-valid-2.16.0.tgz",
+ "integrity": "sha1-8Hndm/2uZe4gOKrorLyGqxCeNpM=",
+ "requires": {
+ "generate-function": "^2.0.0",
+ "generate-object-property": "^1.1.0",
+ "jsonpointer": "^4.0.0",
+ "xtend": "^4.0.0"
+ }
+ },
+ "is-number": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-2.1.0.tgz",
+ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
+ "requires": {
+ "kind-of": "^3.0.2"
+ }
+ },
+ "is-path-cwd": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/is-path-cwd/download/is-path-cwd-1.0.0.tgz?cache=0&sync_timestamp=1628686555851&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-path-cwd%2Fdownload%2Fis-path-cwd-1.0.0.tgz",
+ "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0="
+ },
+ "is-path-in-cwd": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/is-path-in-cwd/download/is-path-in-cwd-1.0.0.tgz?cache=0&sync_timestamp=1620047389319&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-path-in-cwd%2Fdownload%2Fis-path-in-cwd-1.0.0.tgz",
+ "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=",
+ "requires": {
+ "is-path-inside": "^1.0.0"
+ }
+ },
+ "is-path-inside": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/is-path-inside/download/is-path-inside-1.0.0.tgz?cache=0&sync_timestamp=1620046845369&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-path-inside%2Fdownload%2Fis-path-inside-1.0.0.tgz",
+ "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=",
+ "requires": {
+ "path-is-inside": "^1.0.1"
+ }
+ },
+ "is-posix-bracket": {
+ "version": "0.1.1",
+ "resolved": "https://registry.nlark.com/is-posix-bracket/download/is-posix-bracket-0.1.1.tgz",
+ "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q="
+ },
+ "is-primitive": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/is-primitive/download/is-primitive-2.0.0.tgz",
+ "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU="
+ },
+ "is-property": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npm.taobao.org/is-property/download/is-property-1.0.2.tgz",
+ "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ="
+ },
+ "is-regex": {
+ "version": "1.0.4",
+ "resolved": "https://registry.nlark.com/is-regex/download/is-regex-1.0.4.tgz?cache=0&sync_timestamp=1628221905423&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-regex%2Fdownload%2Fis-regex-1.0.4.tgz",
+ "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
+ "requires": {
+ "has": "^1.0.1"
+ }
+ },
+ "is-resolvable": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/is-resolvable/download/is-resolvable-1.0.0.tgz",
+ "integrity": "sha1-jfV8YeouPFAUCNEA+wE8+NbgzGI=",
+ "requires": {
+ "tryit": "^1.0.1"
+ }
+ },
+ "is-symbol": {
+ "version": "1.0.1",
+ "resolved": "https://registry.nlark.com/is-symbol/download/is-symbol-1.0.1.tgz?cache=0&sync_timestamp=1620501174327&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-symbol%2Fdownload%2Fis-symbol-1.0.1.tgz",
+ "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI="
+ },
+ "is-utf8": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npm.taobao.org/is-utf8/download/is-utf8-0.2.1.tgz",
+ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI="
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ },
+ "isobject": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz",
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+ "requires": {
+ "isarray": "1.0.0"
+ }
+ },
+ "js-tokens": {
+ "version": "3.0.1",
+ "resolved": "https://registry.nlark.com/js-tokens/download/js-tokens-3.0.1.tgz?cache=0&sync_timestamp=1619345098261&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fjs-tokens%2Fdownload%2Fjs-tokens-3.0.1.tgz",
+ "integrity": "sha1-COnxMkhKLEWjCQfp3E1VZ7fxFNc="
+ },
+ "js-yaml": {
+ "version": "3.8.2",
+ "resolved": "https://registry.npm.taobao.org/js-yaml/download/js-yaml-3.8.2.tgz?cache=0&sync_timestamp=1618435004368&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-yaml%2Fdownload%2Fjs-yaml-3.8.2.tgz",
+ "integrity": "sha1-AtPiwPa+qyAkjUEsNSIDgn14ZyE=",
+ "requires": {
+ "argparse": "^1.0.7",
+ "esprima": "^3.1.1"
+ }
+ },
+ "jsesc": {
+ "version": "1.3.0",
+ "resolved": "https://registry.nlark.com/jsesc/download/jsesc-1.3.0.tgz",
+ "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s="
+ },
+ "json-loader": {
+ "version": "0.5.4",
+ "resolved": "https://registry.nlark.com/json-loader/download/json-loader-0.5.4.tgz",
+ "integrity": "sha1-i6oTZaYy9Yo8RtIBdfxgAsluN94="
+ },
+ "json-stable-stringify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/json-stable-stringify/download/json-stable-stringify-1.0.1.tgz",
+ "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
+ "requires": {
+ "jsonify": "~0.0.0"
+ }
+ },
+ "json5": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npm.taobao.org/json5/download/json5-0.5.1.tgz",
+ "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE="
+ },
+ "jsonify": {
+ "version": "0.0.0",
+ "resolved": "https://registry.nlark.com/jsonify/download/jsonify-0.0.0.tgz",
+ "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM="
+ },
+ "jsonpointer": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmmirror.com/jsonpointer/download/jsonpointer-4.0.1.tgz?cache=0&sync_timestamp=1636550164046&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjsonpointer%2Fdownload%2Fjsonpointer-4.0.1.tgz",
+ "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk="
+ },
+ "jsx-ast-utils": {
+ "version": "1.4.0",
+ "resolved": "https://registry.nlark.com/jsx-ast-utils/download/jsx-ast-utils-1.4.0.tgz?cache=0&sync_timestamp=1631856184359&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fjsx-ast-utils%2Fdownload%2Fjsx-ast-utils-1.4.0.tgz",
+ "integrity": "sha1-Wv44ho9WvIzHrq7wEAuox1vRJZE=",
+ "requires": {
+ "object-assign": "^4.1.0"
+ }
+ },
+ "kind-of": {
+ "version": "3.1.0",
+ "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.1.0.tgz",
+ "integrity": "sha1-R11pil5J/15T0U4+cyQp3Iv0z0c=",
+ "requires": {
+ "is-buffer": "^1.0.2"
+ }
+ },
+ "lazy-cache": {
+ "version": "1.0.4",
+ "resolved": "https://registry.nlark.com/lazy-cache/download/lazy-cache-1.0.4.tgz",
+ "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4="
+ },
+ "lcid": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/lcid/download/lcid-1.0.0.tgz",
+ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
+ "requires": {
+ "invert-kv": "^1.0.0"
+ }
+ },
+ "levn": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
+ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
+ "requires": {
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2"
+ }
+ },
+ "load-json-file": {
+ "version": "1.1.0",
+ "resolved": "https://registry.nlark.com/load-json-file/download/load-json-file-1.1.0.tgz",
+ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^2.2.0",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0",
+ "strip-bom": "^2.0.0"
+ },
+ "dependencies": {
+ "strip-bom": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/strip-bom/download/strip-bom-2.0.0.tgz?cache=0&sync_timestamp=1618599642133&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-bom%2Fdownload%2Fstrip-bom-2.0.0.tgz",
+ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+ "requires": {
+ "is-utf8": "^0.2.0"
+ }
+ }
+ }
+ },
+ "loader-runner": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npm.taobao.org/loader-runner/download/loader-runner-2.3.0.tgz?cache=0&sync_timestamp=1610027943366&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-runner%2Fdownload%2Floader-runner-2.3.0.tgz",
+ "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI="
+ },
+ "loader-utils": {
+ "version": "0.2.17",
+ "resolved": "https://registry.npmmirror.com/loader-utils/download/loader-utils-0.2.17.tgz?cache=0&sync_timestamp=1636687869321&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Floader-utils%2Fdownload%2Floader-utils-0.2.17.tgz",
+ "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=",
+ "requires": {
+ "big.js": "^3.1.3",
+ "emojis-list": "^2.0.0",
+ "json5": "^0.5.0",
+ "object-assign": "^4.0.1"
+ }
+ },
+ "lodash": {
+ "version": "4.17.4",
+ "resolved": "https://registry.nlark.com/lodash/download/lodash-4.17.4.tgz",
+ "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4="
+ },
+ "lodash.cond": {
+ "version": "4.5.2",
+ "resolved": "https://registry.npm.taobao.org/lodash.cond/download/lodash.cond-4.5.2.tgz",
+ "integrity": "sha1-9HGh2khr5g9quVXRcRVSPdHSVdU="
+ },
+ "longest": {
+ "version": "1.0.1",
+ "resolved": "https://registry.nlark.com/longest/download/longest-1.0.1.tgz",
+ "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc="
+ },
+ "loose-envify": {
+ "version": "1.3.1",
+ "resolved": "https://registry.nlark.com/loose-envify/download/loose-envify-1.3.1.tgz",
+ "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=",
+ "requires": {
+ "js-tokens": "^3.0.0"
+ }
+ },
+ "memory-fs": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.4.1.tgz",
+ "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
+ "requires": {
+ "errno": "^0.1.3",
+ "readable-stream": "^2.0.1"
+ }
+ },
+ "micromatch": {
+ "version": "2.3.11",
+ "resolved": "https://registry.nlark.com/micromatch/download/micromatch-2.3.11.tgz",
+ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
+ "requires": {
+ "arr-diff": "^2.0.0",
+ "array-unique": "^0.2.1",
+ "braces": "^1.8.2",
+ "expand-brackets": "^0.1.4",
+ "extglob": "^0.3.1",
+ "filename-regex": "^2.0.0",
+ "is-extglob": "^1.0.0",
+ "is-glob": "^2.0.1",
+ "kind-of": "^3.0.2",
+ "normalize-path": "^2.0.1",
+ "object.omit": "^2.0.0",
+ "parse-glob": "^3.0.4",
+ "regex-cache": "^0.4.2"
+ }
+ },
+ "miller-rabin": {
+ "version": "4.0.0",
+ "resolved": "https://registry.nlark.com/miller-rabin/download/miller-rabin-4.0.0.tgz",
+ "integrity": "sha1-SmL7HUKTPAVYOYL0xxb2+55sbT0=",
+ "requires": {
+ "bn.js": "^4.0.0",
+ "brorand": "^1.0.1"
+ }
+ },
+ "minimalistic-assert": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/minimalistic-assert/download/minimalistic-assert-1.0.0.tgz",
+ "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M="
+ },
+ "minimalistic-crypto-utils": {
+ "version": "1.0.1",
+ "resolved": "https://registry.nlark.com/minimalistic-crypto-utils/download/minimalistic-crypto-utils-1.0.1.tgz",
+ "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo="
+ },
+ "minimatch": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npm.taobao.org/minimatch/download/minimatch-3.0.3.tgz",
+ "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=",
+ "requires": {
+ "brace-expansion": "^1.0.0"
+ }
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.nlark.com/minimist/download/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmmirror.com/mkdirp/download/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ },
+ "ms": {
+ "version": "0.7.2",
+ "resolved": "https://registry.npmmirror.com/ms/download/ms-0.7.2.tgz",
+ "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U="
+ },
+ "mute-stream": {
+ "version": "0.0.5",
+ "resolved": "https://registry.nlark.com/mute-stream/download/mute-stream-0.0.5.tgz",
+ "integrity": "sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA="
+ },
+ "nan": {
+ "version": "2.5.1",
+ "resolved": "https://registry.nlark.com/nan/download/nan-2.5.1.tgz?cache=0&sync_timestamp=1628093719696&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnan%2Fdownload%2Fnan-2.5.1.tgz",
+ "integrity": "sha1-1bAWkSUzJql6K77p5hxV2NYDUeI=",
+ "optional": true
+ },
+ "natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npm.taobao.org/natural-compare/download/natural-compare-1.4.0.tgz",
+ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc="
+ },
+ "node-libs-browser": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/node-libs-browser/download/node-libs-browser-2.0.0.tgz",
+ "integrity": "sha1-o6WeyXAkmFtG6Vg3lkb5bEthZkY=",
+ "requires": {
+ "assert": "^1.1.1",
+ "browserify-zlib": "^0.1.4",
+ "buffer": "^4.3.0",
+ "console-browserify": "^1.1.0",
+ "constants-browserify": "^1.0.0",
+ "crypto-browserify": "^3.11.0",
+ "domain-browser": "^1.1.1",
+ "events": "^1.0.0",
+ "https-browserify": "0.0.1",
+ "os-browserify": "^0.2.0",
+ "path-browserify": "0.0.0",
+ "process": "^0.11.0",
+ "punycode": "^1.2.4",
+ "querystring-es3": "^0.2.0",
+ "readable-stream": "^2.0.5",
+ "stream-browserify": "^2.0.1",
+ "stream-http": "^2.3.1",
+ "string_decoder": "^0.10.25",
+ "timers-browserify": "^2.0.2",
+ "tty-browserify": "0.0.0",
+ "url": "^0.11.0",
+ "util": "^0.10.3",
+ "vm-browserify": "0.0.4"
+ }
+ },
+ "normalize-package-data": {
+ "version": "2.3.6",
+ "resolved": "https://registry.nlark.com/normalize-package-data/download/normalize-package-data-2.3.6.tgz",
+ "integrity": "sha1-SY+kIMlkAfeHQCuiHmAN75+YH/8=",
+ "requires": {
+ "hosted-git-info": "^2.1.4",
+ "is-builtin-module": "^1.0.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ }
+ },
+ "normalize-path": {
+ "version": "2.1.1",
+ "resolved": "https://registry.nlark.com/normalize-path/download/normalize-path-2.1.1.tgz",
+ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+ "requires": {
+ "remove-trailing-separator": "^1.0.1"
+ }
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/number-is-nan/download/number-is-nan-1.0.1.tgz",
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.nlark.com/object-assign/download/object-assign-4.1.1.tgz?cache=0&sync_timestamp=1618846992533&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fobject-assign%2Fdownload%2Fobject-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+ },
+ "object-keys": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npm.taobao.org/object-keys/download/object-keys-1.0.11.tgz",
+ "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0="
+ },
+ "object.assign": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npm.taobao.org/object.assign/download/object.assign-4.0.4.tgz?cache=0&sync_timestamp=1604115183005&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.assign%2Fdownload%2Fobject.assign-4.0.4.tgz",
+ "integrity": "sha1-scnMBE7xuf5jYG/BQau7MuFHMMw=",
+ "requires": {
+ "define-properties": "^1.1.2",
+ "function-bind": "^1.1.0",
+ "object-keys": "^1.0.10"
+ }
+ },
+ "object.omit": {
+ "version": "2.0.1",
+ "resolved": "https://registry.nlark.com/object.omit/download/object.omit-2.0.1.tgz",
+ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
+ "requires": {
+ "for-own": "^0.1.4",
+ "is-extendable": "^0.1.1"
+ }
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npm.taobao.org/once/download/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "onetime": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-1.1.0.tgz",
+ "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k="
+ },
+ "optionator": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npm.taobao.org/optionator/download/optionator-0.8.2.tgz",
+ "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
+ "requires": {
+ "deep-is": "~0.1.3",
+ "fast-levenshtein": "~2.0.4",
+ "levn": "~0.3.0",
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2",
+ "wordwrap": "~1.0.0"
+ },
+ "dependencies": {
+ "wordwrap": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/wordwrap/download/wordwrap-1.0.0.tgz",
+ "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus="
+ }
+ }
+ },
+ "os-browserify": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npm.taobao.org/os-browserify/download/os-browserify-0.2.1.tgz",
+ "integrity": "sha1-Y/xMzuXS13Y9Jrv4YBB45sLgBE8="
+ },
+ "os-homedir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npm.taobao.org/os-homedir/download/os-homedir-1.0.2.tgz",
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
+ },
+ "os-locale": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmmirror.com/os-locale/download/os-locale-1.4.0.tgz?cache=0&sync_timestamp=1633618260196&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fos-locale%2Fdownload%2Fos-locale-1.4.0.tgz",
+ "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
+ "requires": {
+ "lcid": "^1.0.0"
+ }
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
+ },
+ "output-file-sync": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npm.taobao.org/output-file-sync/download/output-file-sync-1.1.2.tgz",
+ "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=",
+ "requires": {
+ "graceful-fs": "^4.1.4",
+ "mkdirp": "^0.5.1",
+ "object-assign": "^4.1.0"
+ }
+ },
+ "pako": {
+ "version": "0.2.9",
+ "resolved": "https://registry.nlark.com/pako/download/pako-0.2.9.tgz",
+ "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU="
+ },
+ "parchment": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npm.taobao.org/parchment/download/parchment-1.0.8.tgz",
+ "integrity": "sha1-E+xr7M5sFnSB8Xcr1RpZBt51oDg="
+ },
+ "parse-asn1": {
+ "version": "5.1.0",
+ "resolved": "https://registry.nlark.com/parse-asn1/download/parse-asn1-5.1.0.tgz",
+ "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=",
+ "requires": {
+ "asn1.js": "^4.0.0",
+ "browserify-aes": "^1.0.0",
+ "create-hash": "^1.1.0",
+ "evp_bytestokey": "^1.0.0",
+ "pbkdf2": "^3.0.3"
+ }
+ },
+ "parse-glob": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npm.taobao.org/parse-glob/download/parse-glob-3.0.4.tgz",
+ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
+ "requires": {
+ "glob-base": "^0.3.0",
+ "is-dotfile": "^1.0.0",
+ "is-extglob": "^1.0.0",
+ "is-glob": "^2.0.0"
+ }
+ },
+ "parse-json": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/parse-json/download/parse-json-2.2.0.tgz",
+ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+ "requires": {
+ "error-ex": "^1.2.0"
+ }
+ },
+ "path-browserify": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npm.taobao.org/path-browserify/download/path-browserify-0.0.0.tgz",
+ "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo="
+ },
+ "path-exists": {
+ "version": "2.1.0",
+ "resolved": "https://registry.nlark.com/path-exists/download/path-exists-2.1.0.tgz",
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+ "requires": {
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.nlark.com/path-is-absolute/download/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
+ },
+ "path-is-inside": {
+ "version": "1.0.2",
+ "resolved": "https://registry.nlark.com/path-is-inside/download/path-is-inside-1.0.2.tgz?cache=0&sync_timestamp=1622604553837&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpath-is-inside%2Fdownload%2Fpath-is-inside-1.0.2.tgz",
+ "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM="
+ },
+ "path-parse": {
+ "version": "1.0.5",
+ "resolved": "https://registry.nlark.com/path-parse/download/path-parse-1.0.5.tgz?cache=0&sync_timestamp=1621947783503&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpath-parse%2Fdownload%2Fpath-parse-1.0.5.tgz",
+ "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME="
+ },
+ "path-type": {
+ "version": "1.1.0",
+ "resolved": "https://registry.nlark.com/path-type/download/path-type-1.1.0.tgz",
+ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "pbkdf2": {
+ "version": "3.0.9",
+ "resolved": "https://registry.nlark.com/pbkdf2/download/pbkdf2-3.0.9.tgz",
+ "integrity": "sha1-8sSyWmAAWLPDdzwIbDfbvuH/5pM=",
+ "requires": {
+ "create-hmac": "^1.1.2"
+ }
+ },
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
+ },
+ "pinkie": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npm.taobao.org/pinkie/download/pinkie-2.0.4.tgz",
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA="
+ },
+ "pinkie-promise": {
+ "version": "2.0.1",
+ "resolved": "https://registry.nlark.com/pinkie-promise/download/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+ "requires": {
+ "pinkie": "^2.0.0"
+ }
+ },
+ "pkg-dir": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/pkg-dir/download/pkg-dir-1.0.0.tgz?cache=0&sync_timestamp=1633498116014&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpkg-dir%2Fdownload%2Fpkg-dir-1.0.0.tgz",
+ "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=",
+ "requires": {
+ "find-up": "^1.0.0"
+ }
+ },
+ "pkg-up": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/pkg-up/download/pkg-up-1.0.0.tgz",
+ "integrity": "sha1-Pgj7RhUlxEIWJKM7n35tCvWwWiY=",
+ "requires": {
+ "find-up": "^1.0.0"
+ }
+ },
+ "pluralize": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npm.taobao.org/pluralize/download/pluralize-1.2.1.tgz",
+ "integrity": "sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU="
+ },
+ "prelude-ls": {
+ "version": "1.1.2",
+ "resolved": "https://registry.nlark.com/prelude-ls/download/prelude-ls-1.1.2.tgz",
+ "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ="
+ },
+ "preserve": {
+ "version": "0.2.0",
+ "resolved": "https://registry.nlark.com/preserve/download/preserve-0.2.0.tgz",
+ "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks="
+ },
+ "private": {
+ "version": "0.1.7",
+ "resolved": "https://registry.nlark.com/private/download/private-0.1.7.tgz",
+ "integrity": "sha1-aM5eih7woju1cMwoU3tTMqumPvE="
+ },
+ "process": {
+ "version": "0.11.9",
+ "resolved": "https://registry.npm.taobao.org/process/download/process-0.11.9.tgz",
+ "integrity": "sha1-e9WtIapiU+fahoImTx4R0RwDGME="
+ },
+ "process-nextick-args": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-1.0.7.tgz",
+ "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M="
+ },
+ "progress": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npm.taobao.org/progress/download/progress-1.1.8.tgz",
+ "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74="
+ },
+ "prr": {
+ "version": "0.0.0",
+ "resolved": "https://registry.nlark.com/prr/download/prr-0.0.0.tgz",
+ "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo="
+ },
+ "public-encrypt": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/public-encrypt/download/public-encrypt-4.0.0.tgz",
+ "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=",
+ "requires": {
+ "bn.js": "^4.1.0",
+ "browserify-rsa": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "parse-asn1": "^5.0.0",
+ "randombytes": "^2.0.1"
+ }
+ },
+ "punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz",
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
+ },
+ "querystring": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmmirror.com/querystring/download/querystring-0.2.0.tgz",
+ "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA="
+ },
+ "querystring-es3": {
+ "version": "0.2.1",
+ "resolved": "https://registry.nlark.com/querystring-es3/download/querystring-es3-0.2.1.tgz",
+ "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM="
+ },
+ "quill": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npm.taobao.org/quill/download/quill-1.2.3.tgz",
+ "integrity": "sha1-j8Yu1m2Bc+35vB2ft3fddOsGMu4=",
+ "requires": {
+ "clone": "~2.1.1",
+ "deep-equal": "~1.0.1",
+ "eventemitter3": "~2.0.2",
+ "extend": "~3.0.0",
+ "parchment": "1.0.8",
+ "quill-delta": "3.5.0"
+ }
+ },
+ "quill-delta": {
+ "version": "3.5.0",
+ "resolved": "https://registry.nlark.com/quill-delta/download/quill-delta-3.5.0.tgz",
+ "integrity": "sha1-W2fmhdpgw06r7URJxBbHSquJFXs=",
+ "requires": {
+ "deep-equal": "^1.0.1",
+ "extend": "^3.0.0",
+ "fast-diff": "1.1.1"
+ }
+ },
+ "randomatic": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npm.taobao.org/randomatic/download/randomatic-1.1.6.tgz",
+ "integrity": "sha1-EQ3Kv/OX6dz/fAeJzMCkmt8exbs=",
+ "requires": {
+ "is-number": "^2.0.2",
+ "kind-of": "^3.0.2"
+ }
+ },
+ "randombytes": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npm.taobao.org/randombytes/download/randombytes-2.0.3.tgz",
+ "integrity": "sha1-Z0yZdgkBw8QRJ3GjHlIdw0nMCew="
+ },
+ "raw-loader": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npm.taobao.org/raw-loader/download/raw-loader-0.5.1.tgz",
+ "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao="
+ },
+ "read-pkg": {
+ "version": "1.1.0",
+ "resolved": "https://registry.nlark.com/read-pkg/download/read-pkg-1.1.0.tgz",
+ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+ "requires": {
+ "load-json-file": "^1.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^1.0.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/read-pkg-up/download/read-pkg-up-1.0.1.tgz",
+ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+ "requires": {
+ "find-up": "^1.0.0",
+ "read-pkg": "^1.0.0"
+ }
+ },
+ "readable-stream": {
+ "version": "2.2.6",
+ "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-2.2.6.tgz",
+ "integrity": "sha1-i0Ou125xSDk40SqNRsbPGgCx+BY=",
+ "requires": {
+ "buffer-shims": "^1.0.0",
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~1.0.6",
+ "string_decoder": "~0.10.x",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "readdirp": {
+ "version": "2.1.0",
+ "resolved": "https://registry.nlark.com/readdirp/download/readdirp-2.1.0.tgz",
+ "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=",
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "minimatch": "^3.0.2",
+ "readable-stream": "^2.0.2",
+ "set-immediate-shim": "^1.0.1"
+ }
+ },
+ "readline2": {
+ "version": "1.0.1",
+ "resolved": "https://registry.nlark.com/readline2/download/readline2-1.0.1.tgz",
+ "integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=",
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "mute-stream": "0.0.5"
+ }
+ },
+ "rechoir": {
+ "version": "0.6.2",
+ "resolved": "https://registry.nlark.com/rechoir/download/rechoir-0.6.2.tgz?cache=0&sync_timestamp=1627101702123&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frechoir%2Fdownload%2Frechoir-0.6.2.tgz",
+ "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
+ "requires": {
+ "resolve": "^1.1.6"
+ }
+ },
+ "regenerate": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npm.taobao.org/regenerate/download/regenerate-1.3.2.tgz?cache=0&sync_timestamp=1604218353677&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerate%2Fdownload%2Fregenerate-1.3.2.tgz",
+ "integrity": "sha1-0ZQcZ7rUN+G+dkM63Vs4X5WxkmA="
+ },
+ "regenerator-runtime": {
+ "version": "0.10.3",
+ "resolved": "https://registry.nlark.com/regenerator-runtime/download/regenerator-runtime-0.10.3.tgz?cache=0&sync_timestamp=1626992969133&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.10.3.tgz",
+ "integrity": "sha1-jENnqQS1HqYqkIrDEL+Z/5CoKj4="
+ },
+ "regenerator-transform": {
+ "version": "0.9.8",
+ "resolved": "https://registry.nlark.com/regenerator-transform/download/regenerator-transform-0.9.8.tgz?cache=0&sync_timestamp=1627057533376&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fregenerator-transform%2Fdownload%2Fregenerator-transform-0.9.8.tgz",
+ "integrity": "sha1-D4i7K8A5Mt23trcxLmgHjwECbWw=",
+ "requires": {
+ "babel-runtime": "^6.18.0",
+ "babel-types": "^6.19.0",
+ "private": "^0.1.6"
+ }
+ },
+ "regex-cache": {
+ "version": "0.4.3",
+ "resolved": "https://registry.nlark.com/regex-cache/download/regex-cache-0.4.3.tgz",
+ "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=",
+ "requires": {
+ "is-equal-shallow": "^0.1.3",
+ "is-primitive": "^2.0.0"
+ }
+ },
+ "regexpu-core": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/regexpu-core/download/regexpu-core-2.0.0.tgz?cache=0&sync_timestamp=1631619113277&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fregexpu-core%2Fdownload%2Fregexpu-core-2.0.0.tgz",
+ "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=",
+ "requires": {
+ "regenerate": "^1.2.1",
+ "regjsgen": "^0.2.0",
+ "regjsparser": "^0.1.4"
+ }
+ },
+ "regjsgen": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmmirror.com/regjsgen/download/regjsgen-0.2.0.tgz",
+ "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc="
+ },
+ "regjsparser": {
+ "version": "0.1.5",
+ "resolved": "https://registry.nlark.com/regjsparser/download/regjsparser-0.1.5.tgz?cache=0&sync_timestamp=1630946816794&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fregjsparser%2Fdownload%2Fregjsparser-0.1.5.tgz",
+ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
+ "requires": {
+ "jsesc": "~0.5.0"
+ },
+ "dependencies": {
+ "jsesc": {
+ "version": "0.5.0",
+ "resolved": "https://registry.nlark.com/jsesc/download/jsesc-0.5.0.tgz",
+ "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0="
+ }
+ }
+ },
+ "remove-trailing-separator": {
+ "version": "1.0.1",
+ "resolved": "https://registry.nlark.com/remove-trailing-separator/download/remove-trailing-separator-1.0.1.tgz",
+ "integrity": "sha1-YV67lq9VlVLUv0BXyENtSGq2PMQ="
+ },
+ "repeat-element": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npm.taobao.org/repeat-element/download/repeat-element-1.1.2.tgz",
+ "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo="
+ },
+ "repeat-string": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npm.taobao.org/repeat-string/download/repeat-string-1.6.1.tgz",
+ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
+ },
+ "repeating": {
+ "version": "2.0.1",
+ "resolved": "https://registry.nlark.com/repeating/download/repeating-2.0.1.tgz?cache=0&sync_timestamp=1622605325095&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frepeating%2Fdownload%2Frepeating-2.0.1.tgz",
+ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
+ "requires": {
+ "is-finite": "^1.0.0"
+ }
+ },
+ "require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.nlark.com/require-directory/download/require-directory-2.1.1.tgz",
+ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
+ },
+ "require-main-filename": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-1.0.1.tgz",
+ "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE="
+ },
+ "require-uncached": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npm.taobao.org/require-uncached/download/require-uncached-1.0.3.tgz",
+ "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=",
+ "requires": {
+ "caller-path": "^0.1.0",
+ "resolve-from": "^1.0.0"
+ }
+ },
+ "resolve": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.3.2.tgz",
+ "integrity": "sha1-HwRCyeDLuBNuh7kwX5MvRsfygjU=",
+ "requires": {
+ "path-parse": "^1.0.5"
+ }
+ },
+ "resolve-from": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-1.0.1.tgz",
+ "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY="
+ },
+ "restore-cursor": {
+ "version": "1.0.1",
+ "resolved": "https://registry.nlark.com/restore-cursor/download/restore-cursor-1.0.1.tgz?cache=0&sync_timestamp=1629746923086&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frestore-cursor%2Fdownload%2Frestore-cursor-1.0.1.tgz",
+ "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=",
+ "requires": {
+ "exit-hook": "^1.0.0",
+ "onetime": "^1.0.0"
+ }
+ },
+ "right-align": {
+ "version": "0.1.3",
+ "resolved": "https://registry.nlark.com/right-align/download/right-align-0.1.3.tgz",
+ "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
+ "requires": {
+ "align-text": "^0.1.1"
+ }
+ },
+ "rimraf": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.6.1.tgz",
+ "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=",
+ "requires": {
+ "glob": "^7.0.5"
+ }
+ },
+ "ripemd160": {
+ "version": "1.0.1",
+ "resolved": "https://registry.nlark.com/ripemd160/download/ripemd160-1.0.1.tgz",
+ "integrity": "sha1-k6S71JQrxXS2mo+lfHHeEOzKfW4="
+ },
+ "run-async": {
+ "version": "0.1.0",
+ "resolved": "https://registry.nlark.com/run-async/download/run-async-0.1.0.tgz",
+ "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=",
+ "requires": {
+ "once": "^1.3.0"
+ }
+ },
+ "rx-lite": {
+ "version": "3.1.2",
+ "resolved": "https://registry.nlark.com/rx-lite/download/rx-lite-3.1.2.tgz",
+ "integrity": "sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI="
+ },
+ "semver": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.3.0.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.3.0.tgz",
+ "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8="
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/set-blocking/download/set-blocking-2.0.0.tgz",
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
+ },
+ "set-immediate-shim": {
+ "version": "1.0.1",
+ "resolved": "https://registry.nlark.com/set-immediate-shim/download/set-immediate-shim-1.0.1.tgz",
+ "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E="
+ },
+ "setimmediate": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npm.taobao.org/setimmediate/download/setimmediate-1.0.5.tgz",
+ "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="
+ },
+ "sha.js": {
+ "version": "2.4.8",
+ "resolved": "https://registry.npm.taobao.org/sha.js/download/sha.js-2.4.8.tgz",
+ "integrity": "sha1-NwaMLEdra69ALRSknGf1l5IfY08=",
+ "requires": {
+ "inherits": "^2.0.1"
+ }
+ },
+ "shelljs": {
+ "version": "0.7.7",
+ "resolved": "https://registry.nlark.com/shelljs/download/shelljs-0.7.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fshelljs%2Fdownload%2Fshelljs-0.7.7.tgz",
+ "integrity": "sha1-svXHfvlxSPS09uImguELuoZnz/E=",
+ "requires": {
+ "glob": "^7.0.0",
+ "interpret": "^1.0.0",
+ "rechoir": "^0.6.2"
+ }
+ },
+ "slash": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz",
+ "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU="
+ },
+ "slice-ansi": {
+ "version": "0.0.4",
+ "resolved": "https://registry.nlark.com/slice-ansi/download/slice-ansi-0.0.4.tgz",
+ "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU="
+ },
+ "source-list-map": {
+ "version": "1.1.1",
+ "resolved": "https://registry.nlark.com/source-list-map/download/source-list-map-1.1.1.tgz",
+ "integrity": "sha1-GjOsIQyhRNHlYfkG68yrVmn/TLQ="
+ },
+ "source-map": {
+ "version": "0.5.6",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.6.tgz",
+ "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI="
+ },
+ "source-map-support": {
+ "version": "0.4.14",
+ "resolved": "https://registry.npmmirror.com/source-map-support/download/source-map-support-0.4.14.tgz",
+ "integrity": "sha1-nURjdyWYuGJxtPUj9sH04Cp9au8=",
+ "requires": {
+ "source-map": "^0.5.6"
+ }
+ },
+ "spdx-correct": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npm.taobao.org/spdx-correct/download/spdx-correct-1.0.2.tgz",
+ "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=",
+ "requires": {
+ "spdx-license-ids": "^1.0.2"
+ }
+ },
+ "spdx-expression-parse": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npm.taobao.org/spdx-expression-parse/download/spdx-expression-parse-1.0.4.tgz",
+ "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw="
+ },
+ "spdx-license-ids": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmmirror.com/spdx-license-ids/download/spdx-license-ids-1.2.2.tgz?cache=0&sync_timestamp=1636978474315&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fspdx-license-ids%2Fdownload%2Fspdx-license-ids-1.2.2.tgz",
+ "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc="
+ },
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.nlark.com/sprintf-js/download/sprintf-js-1.0.3.tgz?cache=0&sync_timestamp=1618847174560&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsprintf-js%2Fdownload%2Fsprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
+ },
+ "stream-browserify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/stream-browserify/download/stream-browserify-2.0.1.tgz",
+ "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=",
+ "requires": {
+ "inherits": "~2.0.1",
+ "readable-stream": "^2.0.2"
+ }
+ },
+ "stream-http": {
+ "version": "2.7.0",
+ "resolved": "https://registry.nlark.com/stream-http/download/stream-http-2.7.0.tgz",
+ "integrity": "sha1-zsH047SUvEqBtFGAiXD4sgtO1fY=",
+ "requires": {
+ "builtin-status-codes": "^3.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.2.6",
+ "to-arraybuffer": "^1.0.0",
+ "xtend": "^4.0.0"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/string-width/download/string-width-1.0.2.tgz?cache=0&sync_timestamp=1632421013520&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstring-width%2Fdownload%2Fstring-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1632420562057&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/strip-bom/download/strip-bom-3.0.0.tgz?cache=0&sync_timestamp=1618599642133&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-bom%2Fdownload%2Fstrip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM="
+ },
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.nlark.com/strip-json-comments/download/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo="
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/supports-color/download/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
+ },
+ "table": {
+ "version": "3.8.3",
+ "resolved": "https://registry.npmmirror.com/table/download/table-3.8.3.tgz?cache=0&sync_timestamp=1636037112686&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ftable%2Fdownload%2Ftable-3.8.3.tgz",
+ "integrity": "sha1-K7xULw/amGGnVdOUf+/Ys/UThV8=",
+ "requires": {
+ "ajv": "^4.7.0",
+ "ajv-keywords": "^1.0.0",
+ "chalk": "^1.1.1",
+ "lodash": "^4.0.0",
+ "slice-ansi": "0.0.4",
+ "string-width": "^2.0.0"
+ },
+ "dependencies": {
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
+ },
+ "string-width": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/string-width/download/string-width-2.0.0.tgz?cache=0&sync_timestamp=1632421013520&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstring-width%2Fdownload%2Fstring-width-2.0.0.tgz",
+ "integrity": "sha1-Y1xUNsxypuDDh87KJ41OLuxSaH4=",
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ }
+ }
+ },
+ "tapable": {
+ "version": "0.2.6",
+ "resolved": "https://registry.nlark.com/tapable/download/tapable-0.2.6.tgz",
+ "integrity": "sha1-IGvo4YiGC1FEJTdebxrom/sB/Y0="
+ },
+ "text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npm.taobao.org/text-table/download/text-table-0.2.0.tgz",
+ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ="
+ },
+ "through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npm.taobao.org/through/download/through-2.3.8.tgz",
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
+ },
+ "timers-browserify": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npm.taobao.org/timers-browserify/download/timers-browserify-2.0.2.tgz",
+ "integrity": "sha1-q0iDz1l9zVCvIRNJoA+8pWrIa4Y=",
+ "requires": {
+ "setimmediate": "^1.0.4"
+ }
+ },
+ "to-arraybuffer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/to-arraybuffer/download/to-arraybuffer-1.0.1.tgz",
+ "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M="
+ },
+ "to-fast-properties": {
+ "version": "1.0.2",
+ "resolved": "https://registry.nlark.com/to-fast-properties/download/to-fast-properties-1.0.2.tgz",
+ "integrity": "sha1-8/XAw7pymafvmUJ+RGMyV63kMyA="
+ },
+ "trim-right": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/trim-right/download/trim-right-1.0.1.tgz",
+ "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM="
+ },
+ "tryit": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npm.taobao.org/tryit/download/tryit-1.0.3.tgz",
+ "integrity": "sha1-OTvnMKlEb9Hq1tpZoBQwjzbCics="
+ },
+ "tty-browserify": {
+ "version": "0.0.0",
+ "resolved": "https://registry.nlark.com/tty-browserify/download/tty-browserify-0.0.0.tgz",
+ "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY="
+ },
+ "type-check": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npm.taobao.org/type-check/download/type-check-0.3.2.tgz",
+ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
+ "requires": {
+ "prelude-ls": "~1.1.2"
+ }
+ },
+ "typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.nlark.com/typedarray/download/typedarray-0.0.6.tgz",
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
+ },
+ "uglify-js": {
+ "version": "2.8.20",
+ "resolved": "https://registry.npmmirror.com/uglify-js/download/uglify-js-2.8.20.tgz",
+ "integrity": "sha1-vocQD7wY3jh27WBunSS0VoMRzs8=",
+ "requires": {
+ "source-map": "~0.5.1",
+ "uglify-to-browserify": "~1.0.0",
+ "yargs": "~3.10.0"
+ }
+ },
+ "uglify-to-browserify": {
+ "version": "1.0.2",
+ "resolved": "https://registry.nlark.com/uglify-to-browserify/download/uglify-to-browserify-1.0.2.tgz",
+ "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
+ "optional": true
+ },
+ "url": {
+ "version": "0.11.0",
+ "resolved": "https://registry.nlark.com/url/download/url-0.11.0.tgz?cache=0&sync_timestamp=1618847135337&other_urls=https%3A%2F%2Fregistry.nlark.com%2Furl%2Fdownload%2Furl-0.11.0.tgz",
+ "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
+ "requires": {
+ "punycode": "1.3.2",
+ "querystring": "0.2.0"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.3.2.tgz",
+ "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0="
+ }
+ }
+ },
+ "user-home": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/user-home/download/user-home-1.1.1.tgz",
+ "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA="
+ },
+ "util": {
+ "version": "0.10.3",
+ "resolved": "https://registry.nlark.com/util/download/util-0.10.3.tgz?cache=0&sync_timestamp=1622212984161&other_urls=https%3A%2F%2Fregistry.nlark.com%2Futil%2Fdownload%2Futil-0.10.3.tgz",
+ "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
+ "requires": {
+ "inherits": "2.0.1"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.1",
+ "resolved": "https://registry.nlark.com/inherits/download/inherits-2.0.1.tgz",
+ "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE="
+ }
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.nlark.com/util-deprecate/download/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+ },
+ "v8flags": {
+ "version": "2.0.12",
+ "resolved": "https://registry.npmmirror.com/v8flags/download/v8flags-2.0.12.tgz?cache=0&sync_timestamp=1636336418259&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fv8flags%2Fdownload%2Fv8flags-2.0.12.tgz",
+ "integrity": "sha1-cyNdn3F2+OiDP7KGeVRF95ONhOU=",
+ "requires": {
+ "user-home": "^1.1.1"
+ }
+ },
+ "validate-npm-package-license": {
+ "version": "3.0.1",
+ "resolved": "https://registry.nlark.com/validate-npm-package-license/download/validate-npm-package-license-3.0.1.tgz",
+ "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=",
+ "requires": {
+ "spdx-correct": "~1.0.0",
+ "spdx-expression-parse": "~1.0.0"
+ }
+ },
+ "vm-browserify": {
+ "version": "0.0.4",
+ "resolved": "https://registry.nlark.com/vm-browserify/download/vm-browserify-0.0.4.tgz",
+ "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=",
+ "requires": {
+ "indexof": "0.0.1"
+ }
+ },
+ "watchpack": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmmirror.com/watchpack/download/watchpack-1.3.1.tgz",
+ "integrity": "sha1-fYaTkHsozmAT5/NhCqKhrPB9rYc=",
+ "requires": {
+ "async": "^2.1.2",
+ "chokidar": "^1.4.3",
+ "graceful-fs": "^4.1.2"
+ }
+ },
+ "webpack": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmmirror.com/webpack/download/webpack-2.3.3.tgz",
+ "integrity": "sha1-7swIPBj7e/lY6k9AtXpmQMWgzHg=",
+ "requires": {
+ "acorn": "^4.0.4",
+ "acorn-dynamic-import": "^2.0.0",
+ "ajv": "^4.7.0",
+ "ajv-keywords": "^1.1.1",
+ "async": "^2.1.2",
+ "enhanced-resolve": "^3.0.0",
+ "interpret": "^1.0.0",
+ "json-loader": "^0.5.4",
+ "loader-runner": "^2.3.0",
+ "loader-utils": "^0.2.16",
+ "memory-fs": "~0.4.1",
+ "mkdirp": "~0.5.0",
+ "node-libs-browser": "^2.0.0",
+ "source-map": "^0.5.3",
+ "supports-color": "^3.1.0",
+ "tapable": "~0.2.5",
+ "uglify-js": "^2.8.5",
+ "watchpack": "^1.3.1",
+ "webpack-sources": "^0.2.3",
+ "yargs": "^6.0.0"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "4.0.11",
+ "resolved": "https://registry.npmmirror.com/acorn/download/acorn-4.0.11.tgz?cache=0&sync_timestamp=1637225522161&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Facorn%2Fdownload%2Facorn-4.0.11.tgz",
+ "integrity": "sha1-7c2jvZN+dVZBDULtWGD2c5nHlMA="
+ },
+ "camelcase": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/camelcase/download/camelcase-3.0.0.tgz?cache=0&sync_timestamp=1636945205805&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcamelcase%2Fdownload%2Fcamelcase-3.0.0.tgz",
+ "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo="
+ },
+ "cliui": {
+ "version": "3.2.0",
+ "resolved": "https://registry.nlark.com/cliui/download/cliui-3.2.0.tgz",
+ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
+ "requires": {
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wrap-ansi": "^2.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmmirror.com/supports-color/download/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "requires": {
+ "has-flag": "^1.0.0"
+ }
+ },
+ "yargs": {
+ "version": "6.6.0",
+ "resolved": "https://registry.npmmirror.com/yargs/download/yargs-6.6.0.tgz",
+ "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=",
+ "requires": {
+ "camelcase": "^3.0.0",
+ "cliui": "^3.2.0",
+ "decamelize": "^1.1.1",
+ "get-caller-file": "^1.0.1",
+ "os-locale": "^1.4.0",
+ "read-pkg-up": "^1.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^1.0.1",
+ "set-blocking": "^2.0.0",
+ "string-width": "^1.0.2",
+ "which-module": "^1.0.0",
+ "y18n": "^3.2.1",
+ "yargs-parser": "^4.2.0"
+ }
+ }
+ }
+ },
+ "webpack-sources": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmmirror.com/webpack-sources/download/webpack-sources-0.2.3.tgz?cache=0&sync_timestamp=1636982731420&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fwebpack-sources%2Fdownload%2Fwebpack-sources-0.2.3.tgz",
+ "integrity": "sha1-F8Yr+vE8cH+dAsR54Nzd6DgGl/s=",
+ "requires": {
+ "source-list-map": "^1.1.1",
+ "source-map": "~0.5.3"
+ }
+ },
+ "which-module": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/which-module/download/which-module-1.0.0.tgz",
+ "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8="
+ },
+ "window-size": {
+ "version": "0.1.0",
+ "resolved": "https://registry.nlark.com/window-size/download/window-size-0.1.0.tgz",
+ "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0="
+ },
+ "wordwrap": {
+ "version": "0.0.2",
+ "resolved": "https://registry.nlark.com/wordwrap/download/wordwrap-0.0.2.tgz",
+ "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8="
+ },
+ "wrap-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.nlark.com/wrap-ansi/download/wrap-ansi-2.1.0.tgz?cache=0&sync_timestamp=1631557327268&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwrap-ansi%2Fdownload%2Fwrap-ansi-2.1.0.tgz",
+ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
+ "requires": {
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.nlark.com/wrappy/download/wrappy-1.0.2.tgz?cache=0&sync_timestamp=1619133505879&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwrappy%2Fdownload%2Fwrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ },
+ "write": {
+ "version": "0.2.1",
+ "resolved": "https://registry.nlark.com/write/download/write-0.2.1.tgz",
+ "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=",
+ "requires": {
+ "mkdirp": "^0.5.1"
+ }
+ },
+ "xtend": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npm.taobao.org/xtend/download/xtend-4.0.1.tgz",
+ "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
+ },
+ "y18n": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npm.taobao.org/y18n/download/y18n-3.2.1.tgz?cache=0&sync_timestamp=1617822684820&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fy18n%2Fdownload%2Fy18n-3.2.1.tgz",
+ "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE="
+ },
+ "yargs": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmmirror.com/yargs/download/yargs-3.10.0.tgz",
+ "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
+ "requires": {
+ "camelcase": "^1.0.2",
+ "cliui": "^2.1.0",
+ "decamelize": "^1.0.0",
+ "window-size": "0.1.0"
+ }
+ },
+ "yargs-parser": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmmirror.com/yargs-parser/download/yargs-parser-4.2.1.tgz?cache=0&sync_timestamp=1637031053426&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fyargs-parser%2Fdownload%2Fyargs-parser-4.2.1.tgz",
+ "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=",
+ "requires": {
+ "camelcase": "^3.0.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/camelcase/download/camelcase-3.0.0.tgz?cache=0&sync_timestamp=1636945205805&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcamelcase%2Fdownload%2Fcamelcase-3.0.0.tgz",
+ "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo="
+ }
+ }
+ }
+ }
+ },
+ "randombytes": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/randombytes/download/randombytes-2.1.0.tgz",
+ "integrity": "sha1-32+ENy8CcNxlzfYpE0mrekc9Tyo=",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://registry.nlark.com/range-parser/download/range-parser-1.2.1.tgz",
+ "integrity": "sha1-PPNwI9GZ4cJNGlW4SADC8+ZGgDE=",
+ "dev": true
+ },
+ "raw-body": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmmirror.com/raw-body/download/raw-body-2.4.0.tgz?cache=0&sync_timestamp=1637116848060&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fraw-body%2Fdownload%2Fraw-body-2.4.0.tgz",
+ "integrity": "sha1-oc5vucm8NWylLoklarWQWeE9AzI=",
+ "dev": true,
+ "requires": {
+ "bytes": "3.1.0",
+ "http-errors": "1.7.2",
+ "iconv-lite": "0.4.24",
+ "unpipe": "1.0.0"
+ },
+ "dependencies": {
+ "bytes": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/bytes/download/bytes-3.1.0.tgz?cache=0&sync_timestamp=1637015110760&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fbytes%2Fdownload%2Fbytes-3.1.0.tgz",
+ "integrity": "sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY=",
+ "dev": true
+ }
+ }
+ },
+ "read-cache": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/read-cache/download/read-cache-1.0.0.tgz",
+ "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=",
+ "dev": true,
+ "requires": {
+ "pify": "^2.3.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ }
+ }
+ },
+ "read-package-json-fast": {
+ "version": "2.0.3",
+ "resolved": "https://registry.nlark.com/read-package-json-fast/download/read-package-json-fast-2.0.3.tgz",
+ "integrity": "sha1-MjylKWMNqCyzSzbMC5lmk8mMK4M=",
+ "dev": true,
+ "requires": {
+ "json-parse-even-better-errors": "^2.3.0",
+ "npm-normalize-package-bin": "^1.0.1"
+ }
+ },
+ "read-pkg": {
+ "version": "3.0.0",
+ "resolved": "https://registry.nlark.com/read-pkg/download/read-pkg-3.0.0.tgz",
+ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "^4.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^3.0.0"
+ },
+ "dependencies": {
+ "path-type": {
+ "version": "3.0.0",
+ "resolved": "https://registry.nlark.com/path-type/download/path-type-3.0.0.tgz",
+ "integrity": "sha1-zvMdyOCho7sNEFwM2Xzzv0f0428=",
+ "dev": true,
+ "requires": {
+ "pify": "^3.0.0"
+ }
+ },
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true
+ }
+ }
+ },
+ "read-pkg-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/read-pkg-up/download/read-pkg-up-3.0.0.tgz",
+ "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=",
+ "dev": true,
+ "requires": {
+ "find-up": "^2.0.0",
+ "read-pkg": "^3.0.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/find-up/download/find-up-2.1.0.tgz?cache=0&sync_timestamp=1633618766404&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ffind-up%2Fdownload%2Ffind-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "dev": true,
+ "requires": {
+ "locate-path": "^2.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/locate-path/download/locate-path-2.0.0.tgz?cache=0&sync_timestamp=1629895724478&other_urls=https%3A%2F%2Fregistry.nlark.com%2Flocate-path%2Fdownload%2Flocate-path-2.0.0.tgz",
+ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+ "dev": true,
+ "requires": {
+ "p-locate": "^2.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "p-limit": {
+ "version": "1.3.0",
+ "resolved": "https://registry.nlark.com/p-limit/download/p-limit-1.3.0.tgz?cache=0&sync_timestamp=1628812766275&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fp-limit%2Fdownload%2Fp-limit-1.3.0.tgz",
+ "integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=",
+ "dev": true,
+ "requires": {
+ "p-try": "^1.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/p-locate/download/p-locate-2.0.0.tgz",
+ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+ "dev": true,
+ "requires": {
+ "p-limit": "^1.1.0"
+ }
+ },
+ "p-try": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/p-try/download/p-try-1.0.0.tgz?cache=0&sync_timestamp=1633364462890&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fp-try%2Fdownload%2Fp-try-1.0.0.tgz",
+ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
+ "dev": true
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.nlark.com/path-exists/download/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ }
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.7.tgz",
+ "integrity": "sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c=",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.nlark.com/readdirp/download/readdirp-3.6.0.tgz",
+ "integrity": "sha1-dKNwvYVxFuJFspzJc0DNQxoCpsc=",
+ "dev": true,
+ "requires": {
+ "picomatch": "^2.2.1"
+ }
+ },
+ "redent": {
+ "version": "3.0.0",
+ "resolved": "https://registry.nlark.com/redent/download/redent-3.0.0.tgz?cache=0&sync_timestamp=1620070119923&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fredent%2Fdownload%2Fredent-3.0.0.tgz",
+ "integrity": "sha1-5Ve3mYMWu1PJ8fVvpiY1LGljBZ8=",
+ "dev": true,
+ "requires": {
+ "indent-string": "^4.0.0",
+ "strip-indent": "^3.0.0"
+ }
+ },
+ "reflect-metadata": {
+ "version": "0.1.13",
+ "resolved": "https://registry.npm.taobao.org/reflect-metadata/download/reflect-metadata-0.1.13.tgz",
+ "integrity": "sha1-Z648pXyXKiqhZCsQ/jY/4y1J3Ag=",
+ "dev": true
+ },
+ "reftools": {
+ "version": "1.1.9",
+ "resolved": "https://registry.nlark.com/reftools/download/reftools-1.1.9.tgz",
+ "integrity": "sha1-4W4Z9mLM1GSGBTEsBtNOXaOit34=",
+ "dev": true
+ },
+ "regenerate": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npm.taobao.org/regenerate/download/regenerate-1.4.2.tgz?cache=0&sync_timestamp=1604218353677&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerate%2Fdownload%2Fregenerate-1.4.2.tgz",
+ "integrity": "sha1-uTRtiCfo9aMve6KWN9OYtpAUhIo=",
+ "dev": true
+ },
+ "regenerate-unicode-properties": {
+ "version": "9.0.0",
+ "resolved": "https://registry.nlark.com/regenerate-unicode-properties/download/regenerate-unicode-properties-9.0.0.tgz?cache=0&sync_timestamp=1631617161322&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fregenerate-unicode-properties%2Fdownload%2Fregenerate-unicode-properties-9.0.0.tgz",
+ "integrity": "sha1-VNCccRXh9T3CMUqXSzLBw0Tv4yY=",
+ "dev": true,
+ "requires": {
+ "regenerate": "^1.4.2"
+ }
+ },
+ "regenerator-runtime": {
+ "version": "0.13.9",
+ "resolved": "https://registry.nlark.com/regenerator-runtime/download/regenerator-runtime-0.13.9.tgz?cache=0&sync_timestamp=1626992969133&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.9.tgz",
+ "integrity": "sha1-iSV0Kpj/2QgUmI11Zq0wyjsmO1I=",
+ "dev": true
+ },
+ "regenerator-transform": {
+ "version": "0.14.5",
+ "resolved": "https://registry.nlark.com/regenerator-transform/download/regenerator-transform-0.14.5.tgz?cache=0&sync_timestamp=1627057533376&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fregenerator-transform%2Fdownload%2Fregenerator-transform-0.14.5.tgz",
+ "integrity": "sha1-yY2hVGg2ccnE3LFuznNlF+G3/rQ=",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.8.4"
+ }
+ },
+ "regex-not": {
+ "version": "1.0.2",
+ "resolved": "https://registry.nlark.com/regex-not/download/regex-not-1.0.2.tgz",
+ "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^3.0.2",
+ "safe-regex": "^1.1.0"
+ }
+ },
+ "regex-parser": {
+ "version": "2.2.11",
+ "resolved": "https://registry.nlark.com/regex-parser/download/regex-parser-2.2.11.tgz",
+ "integrity": "sha1-OzfskEnhlHmAboeMq+fByoPM/lg=",
+ "dev": true
+ },
+ "regexp.prototype.flags": {
+ "version": "1.3.1",
+ "resolved": "https://registry.nlark.com/regexp.prototype.flags/download/regexp.prototype.flags-1.3.1.tgz",
+ "integrity": "sha1-fvNSro0VnnWMDq3Kb4/LTu8HviY=",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3"
+ }
+ },
+ "regexpp": {
+ "version": "3.2.0",
+ "resolved": "https://registry.nlark.com/regexpp/download/regexpp-3.2.0.tgz?cache=0&sync_timestamp=1623669331185&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fregexpp%2Fdownload%2Fregexpp-3.2.0.tgz",
+ "integrity": "sha1-BCWido2PI7rXDKS5BGH6LxIT4bI=",
+ "dev": true
+ },
+ "regexpu-core": {
+ "version": "4.8.0",
+ "resolved": "https://registry.nlark.com/regexpu-core/download/regexpu-core-4.8.0.tgz?cache=0&sync_timestamp=1631619113277&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fregexpu-core%2Fdownload%2Fregexpu-core-4.8.0.tgz",
+ "integrity": "sha1-5WBbo2G2excYR4UBMnUC9EeamPA=",
+ "dev": true,
+ "requires": {
+ "regenerate": "^1.4.2",
+ "regenerate-unicode-properties": "^9.0.0",
+ "regjsgen": "^0.5.2",
+ "regjsparser": "^0.7.0",
+ "unicode-match-property-ecmascript": "^2.0.0",
+ "unicode-match-property-value-ecmascript": "^2.0.0"
+ }
+ },
+ "regextras": {
+ "version": "0.8.0",
+ "resolved": "https://registry.nlark.com/regextras/download/regextras-0.8.0.tgz?cache=0&sync_timestamp=1621860451154&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fregextras%2Fdownload%2Fregextras-0.8.0.tgz",
+ "integrity": "sha1-7A+ZhT1JEoOTIRcvYItUSBSwIhc=",
+ "dev": true
+ },
+ "regjsgen": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmmirror.com/regjsgen/download/regjsgen-0.5.2.tgz",
+ "integrity": "sha1-kv8pX7He7L9uzaslQ9IH6RqjNzM=",
+ "dev": true
+ },
+ "regjsparser": {
+ "version": "0.7.0",
+ "resolved": "https://registry.nlark.com/regjsparser/download/regjsparser-0.7.0.tgz?cache=0&sync_timestamp=1630946816794&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fregjsparser%2Fdownload%2Fregjsparser-0.7.0.tgz",
+ "integrity": "sha1-prZntUyIXhi1JVTLSWDvcRh+mWg=",
+ "dev": true,
+ "requires": {
+ "jsesc": "~0.5.0"
+ },
+ "dependencies": {
+ "jsesc": {
+ "version": "0.5.0",
+ "resolved": "https://registry.nlark.com/jsesc/download/jsesc-0.5.0.tgz",
+ "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
+ "dev": true
+ }
+ }
+ },
+ "regression": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/regression/download/regression-2.0.1.tgz",
+ "integrity": "sha1-jSnD6CJKEIUMNeM36FqLL6w7DIc="
+ },
+ "remark": {
+ "version": "13.0.0",
+ "resolved": "https://registry.npmmirror.com/remark/download/remark-13.0.0.tgz?cache=0&sync_timestamp=1637258856657&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fremark%2Fdownload%2Fremark-13.0.0.tgz",
+ "integrity": "sha1-0V2b9xpAL0Aofr42Bntm1Uho5CU=",
+ "dev": true,
+ "requires": {
+ "remark-parse": "^9.0.0",
+ "remark-stringify": "^9.0.0",
+ "unified": "^9.1.0"
+ }
+ },
+ "remark-parse": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmmirror.com/remark-parse/download/remark-parse-9.0.0.tgz",
+ "integrity": "sha1-TSCimWZYgOT0r12Qt8e4qTWFNkA=",
+ "dev": true,
+ "requires": {
+ "mdast-util-from-markdown": "^0.8.0"
+ }
+ },
+ "remark-stringify": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmmirror.com/remark-stringify/download/remark-stringify-9.0.1.tgz",
+ "integrity": "sha1-V20G6RBUiwpxkacfJ7M/EhiGKJQ=",
+ "dev": true,
+ "requires": {
+ "mdast-util-to-markdown": "^0.6.0"
+ }
+ },
+ "remove-trailing-separator": {
+ "version": "1.1.0",
+ "resolved": "https://registry.nlark.com/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz",
+ "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
+ "dev": true
+ },
+ "repeat-element": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npm.taobao.org/repeat-element/download/repeat-element-1.1.4.tgz",
+ "integrity": "sha1-vmgVIIR6tYx1aKx1+/rSjtQtOek=",
+ "dev": true
+ },
+ "repeat-string": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npm.taobao.org/repeat-string/download/repeat-string-1.6.1.tgz",
+ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
+ "dev": true
+ },
+ "replace-ext": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/replace-ext/download/replace-ext-1.0.0.tgz",
+ "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=",
+ "dev": true
+ },
+ "request": {
+ "version": "2.88.2",
+ "resolved": "https://registry.npmmirror.com/request/download/request-2.88.2.tgz",
+ "integrity": "sha1-1zyRhzHLWofaBH4gcjQUb2ZNErM=",
+ "dev": true,
+ "requires": {
+ "aws-sign2": "~0.7.0",
+ "aws4": "^1.8.0",
+ "caseless": "~0.12.0",
+ "combined-stream": "~1.0.6",
+ "extend": "~3.0.2",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.3.2",
+ "har-validator": "~5.1.3",
+ "http-signature": "~1.2.0",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.19",
+ "oauth-sign": "~0.9.0",
+ "performance-now": "^2.1.0",
+ "qs": "~6.5.2",
+ "safe-buffer": "^5.1.2",
+ "tough-cookie": "~2.5.0",
+ "tunnel-agent": "^0.6.0",
+ "uuid": "^3.3.2"
+ },
+ "dependencies": {
+ "qs": {
+ "version": "6.5.2",
+ "resolved": "https://registry.nlark.com/qs/download/qs-6.5.2.tgz",
+ "integrity": "sha1-yzroBuh0BERYTvFUzo7pjUA/PjY=",
+ "dev": true
+ }
+ }
+ },
+ "require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.nlark.com/require-directory/download/require-directory-2.1.1.tgz",
+ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
+ "dev": true
+ },
+ "require-from-string": {
+ "version": "2.0.2",
+ "resolved": "https://registry.nlark.com/require-from-string/download/require-from-string-2.0.2.tgz",
+ "integrity": "sha1-iaf92TgmEmcxjq/hT5wy5ZjDaQk="
+ },
+ "require-main-filename": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-2.0.0.tgz",
+ "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=",
+ "dev": true
+ },
+ "requires-port": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/requires-port/download/requires-port-1.0.0.tgz",
+ "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
+ "dev": true
+ },
+ "resolve": {
+ "version": "1.20.0",
+ "resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.20.0.tgz",
+ "integrity": "sha1-YpoBP7P3B1XW8LeTXMHCxTeLGXU=",
+ "dev": true,
+ "requires": {
+ "is-core-module": "^2.2.0",
+ "path-parse": "^1.0.6"
+ }
+ },
+ "resolve-cwd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/resolve-cwd/download/resolve-cwd-2.0.0.tgz",
+ "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=",
+ "dev": true,
+ "requires": {
+ "resolve-from": "^3.0.0"
+ },
+ "dependencies": {
+ "resolve-from": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz",
+ "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
+ "dev": true
+ }
+ }
+ },
+ "resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-4.0.0.tgz",
+ "integrity": "sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=",
+ "dev": true
+ },
+ "resolve-url": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/resolve-url/download/resolve-url-0.2.1.tgz",
+ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
+ "dev": true
+ },
+ "resolve-url-loader": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/resolve-url-loader/download/resolve-url-loader-4.0.0.tgz",
+ "integrity": "sha1-1Q1N3HRrsQRoRDFnrPgA3NbDrVc=",
+ "dev": true,
+ "requires": {
+ "adjust-sourcemap-loader": "^4.0.0",
+ "convert-source-map": "^1.7.0",
+ "loader-utils": "^2.0.0",
+ "postcss": "^7.0.35",
+ "source-map": "0.6.1"
+ },
+ "dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "restore-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.nlark.com/restore-cursor/download/restore-cursor-3.1.0.tgz?cache=0&sync_timestamp=1629746923086&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frestore-cursor%2Fdownload%2Frestore-cursor-3.1.0.tgz",
+ "integrity": "sha1-OfZ8VLOnpYzqUjbZXPADQjljH34=",
+ "dev": true,
+ "requires": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
+ }
+ },
+ "ret": {
+ "version": "0.1.15",
+ "resolved": "https://registry.npm.taobao.org/ret/download/ret-0.1.15.tgz",
+ "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=",
+ "dev": true
+ },
+ "retry": {
+ "version": "0.12.0",
+ "resolved": "https://registry.nlark.com/retry/download/retry-0.12.0.tgz",
+ "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=",
+ "dev": true
+ },
+ "reusify": {
+ "version": "1.0.4",
+ "resolved": "https://registry.nlark.com/reusify/download/reusify-1.0.4.tgz",
+ "integrity": "sha1-kNo4Kx4SbvwCFG6QhFqI2xKSXXY=",
+ "dev": true
+ },
+ "rfdc": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npm.taobao.org/rfdc/download/rfdc-1.3.0.tgz",
+ "integrity": "sha1-0LfEQasnINBdxM8m4ByJYx2doIs=",
+ "dev": true
+ },
+ "rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-3.0.2.tgz",
+ "integrity": "sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho=",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "run-async": {
+ "version": "2.4.1",
+ "resolved": "https://registry.nlark.com/run-async/download/run-async-2.4.1.tgz",
+ "integrity": "sha1-hEDsz5nqPnC9QJ1JqriOEMGJpFU=",
+ "dev": true
+ },
+ "run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npm.taobao.org/run-parallel/download/run-parallel-1.2.0.tgz?cache=0&sync_timestamp=1612925943325&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frun-parallel%2Fdownload%2Frun-parallel-1.2.0.tgz",
+ "integrity": "sha1-ZtE2jae9+SHrnZW9GpIp5/IaQ+4=",
+ "dev": true,
+ "requires": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "rw": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmmirror.com/rw/download/rw-1.3.3.tgz",
+ "integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q="
+ },
+ "rxjs": {
+ "version": "6.6.7",
+ "resolved": "https://registry.npmmirror.com/rxjs/download/rxjs-6.6.7.tgz?cache=0&sync_timestamp=1633554235070&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Frxjs%2Fdownload%2Frxjs-6.6.7.tgz",
+ "integrity": "sha1-kKwBisq/SRv2UEQjXVhjxNq4BMk=",
+ "requires": {
+ "tslib": "^1.9.0"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.nlark.com/tslib/download/tslib-1.14.1.tgz?cache=0&sync_timestamp=1628722556410&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftslib%2Fdownload%2Ftslib-1.14.1.tgz",
+ "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA="
+ }
+ }
+ },
+ "rxjs-for-await": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmmirror.com/rxjs-for-await/download/rxjs-for-await-0.0.2.tgz",
+ "integrity": "sha1-JlmKHWFnFHzBkhcpcOfu1OYgOEs=",
+ "dev": true
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz",
+ "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0="
+ },
+ "safe-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.nlark.com/safe-regex/download/safe-regex-1.1.0.tgz",
+ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
+ "dev": true,
+ "requires": {
+ "ret": "~0.1.10"
+ }
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.nlark.com/safer-buffer/download/safer-buffer-2.1.2.tgz",
+ "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo="
+ },
+ "sass": {
+ "version": "1.36.0",
+ "resolved": "https://registry.npmmirror.com/sass/download/sass-1.36.0.tgz",
+ "integrity": "sha1-WRLvnV0WcUFxuhHLF+2ydMS7wH4=",
+ "dev": true,
+ "requires": {
+ "chokidar": ">=3.0.0 <4.0.0"
+ }
+ },
+ "sass-loader": {
+ "version": "12.1.0",
+ "resolved": "https://registry.npmmirror.com/sass-loader/download/sass-loader-12.1.0.tgz?cache=0&sync_timestamp=1635385383233&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fsass-loader%2Fdownload%2Fsass-loader-12.1.0.tgz",
+ "integrity": "sha1-tzMkYiIxAJ2m+6Yat2ATJWOA0gE=",
+ "dev": true,
+ "requires": {
+ "klona": "^2.0.4",
+ "neo-async": "^2.6.2"
+ }
+ },
+ "saucelabs": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmmirror.com/saucelabs/download/saucelabs-1.5.0.tgz",
+ "integrity": "sha1-lAWnPDYNRJsjKDmRmobDltN5/Z0=",
+ "dev": true,
+ "requires": {
+ "https-proxy-agent": "^2.2.1"
+ },
+ "dependencies": {
+ "agent-base": {
+ "version": "4.3.0",
+ "resolved": "https://registry.nlark.com/agent-base/download/agent-base-4.3.0.tgz",
+ "integrity": "sha1-gWXwHENgCbzK0LHRIvBe13Dvxu4=",
+ "dev": true,
+ "requires": {
+ "es6-promisify": "^5.0.0"
+ }
+ },
+ "debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmmirror.com/debug/download/debug-3.2.7.tgz",
+ "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "https-proxy-agent": {
+ "version": "2.2.4",
+ "resolved": "https://registry.nlark.com/https-proxy-agent/download/https-proxy-agent-2.2.4.tgz",
+ "integrity": "sha1-TuenN6vZJniik9mzShr00NCMeHs=",
+ "dev": true,
+ "requires": {
+ "agent-base": "^4.3.0",
+ "debug": "^3.1.0"
+ }
+ }
+ }
+ },
+ "sax": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npm.taobao.org/sax/download/sax-1.2.4.tgz",
+ "integrity": "sha1-KBYjTiN4vdxOU1T6tcqold9xANk=",
+ "dev": true
+ },
+ "schema-utils": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmmirror.com/schema-utils/download/schema-utils-2.7.1.tgz?cache=0&sync_timestamp=1637075888461&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fschema-utils%2Fdownload%2Fschema-utils-2.7.1.tgz",
+ "integrity": "sha1-HKTzLRskxZDCA7jnpQvw6kzTlNc=",
+ "dev": true,
+ "requires": {
+ "@types/json-schema": "^7.0.5",
+ "ajv": "^6.12.4",
+ "ajv-keywords": "^3.5.2"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmmirror.com/ajv/download/ajv-6.12.6.tgz?cache=0&sync_timestamp=1637522259668&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fajv%2Fdownload%2Fajv-6.12.6.tgz",
+ "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=",
+ "dev": true
+ }
+ }
+ },
+ "screenfull": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmmirror.com/screenfull/download/screenfull-5.2.0.tgz",
+ "integrity": "sha1-ZTPVJNMGIfwSg7lpIUbz8TqT0bo="
+ },
+ "select-hose": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/select-hose/download/select-hose-2.0.0.tgz",
+ "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=",
+ "dev": true
+ },
+ "selenium-webdriver": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmmirror.com/selenium-webdriver/download/selenium-webdriver-3.6.0.tgz",
+ "integrity": "sha1-K6h6FmLAILiYjJga5iyyoBKY6vw=",
+ "dev": true,
+ "requires": {
+ "jszip": "^3.1.3",
+ "rimraf": "^2.5.4",
+ "tmp": "0.0.30",
+ "xml2js": "^0.4.17"
+ },
+ "dependencies": {
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz",
+ "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "tmp": {
+ "version": "0.0.30",
+ "resolved": "https://registry.nlark.com/tmp/download/tmp-0.0.30.tgz",
+ "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=",
+ "dev": true,
+ "requires": {
+ "os-tmpdir": "~1.0.1"
+ }
+ }
+ }
+ },
+ "selfsigned": {
+ "version": "1.10.11",
+ "resolved": "https://registry.nlark.com/selfsigned/download/selfsigned-1.10.11.tgz?cache=0&sync_timestamp=1620160245612&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fselfsigned%2Fdownload%2Fselfsigned-1.10.11.tgz",
+ "integrity": "sha1-JJKc2Qb+D0S20B+yOZmnOVN6y+k=",
+ "dev": true,
+ "requires": {
+ "node-forge": "^0.10.0"
+ }
+ },
+ "semver": {
+ "version": "7.3.5",
+ "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.3.5.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.5.tgz",
+ "integrity": "sha1-C2Ich5NI2JmOSw5L6Us/EuYBjvc=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "semver-compare": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/semver-compare/download/semver-compare-1.0.0.tgz",
+ "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=",
+ "dev": true
+ },
+ "send": {
+ "version": "0.17.1",
+ "resolved": "https://registry.npm.taobao.org/send/download/send-0.17.1.tgz",
+ "integrity": "sha1-wdiwWfeQD3Rm3Uk4vcROEd2zdsg=",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "destroy": "~1.0.4",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "~1.7.2",
+ "mime": "1.6.0",
+ "ms": "2.1.1",
+ "on-finished": "~2.3.0",
+ "range-parser": "~1.2.1",
+ "statuses": "~1.5.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmmirror.com/debug/download/debug-2.6.9.tgz",
+ "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "ms": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/ms/download/ms-2.1.1.tgz",
+ "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=",
+ "dev": true
+ }
+ }
+ },
+ "serialize-javascript": {
+ "version": "6.0.0",
+ "resolved": "https://registry.nlark.com/serialize-javascript/download/serialize-javascript-6.0.0.tgz?cache=0&sync_timestamp=1624284098038&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-6.0.0.tgz",
+ "integrity": "sha1-765diPRdeSQUHai1w6en5mP+/rg=",
+ "dev": true,
+ "requires": {
+ "randombytes": "^2.1.0"
+ }
+ },
+ "serve-index": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npm.taobao.org/serve-index/download/serve-index-1.9.1.tgz",
+ "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=",
+ "dev": true,
+ "requires": {
+ "accepts": "~1.3.4",
+ "batch": "0.6.1",
+ "debug": "2.6.9",
+ "escape-html": "~1.0.3",
+ "http-errors": "~1.6.2",
+ "mime-types": "~2.1.17",
+ "parseurl": "~1.3.2"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmmirror.com/debug/download/debug-2.6.9.tgz",
+ "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "http-errors": {
+ "version": "1.6.3",
+ "resolved": "https://registry.npmmirror.com/http-errors/download/http-errors-1.6.3.tgz?cache=0&sync_timestamp=1636932182141&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.6.3.tgz",
+ "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
+ "dev": true,
+ "requires": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.3",
+ "setprototypeof": "1.1.0",
+ "statuses": ">= 1.4.0 < 2"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.nlark.com/inherits/download/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "dev": true
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ },
+ "setprototypeof": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.0.tgz",
+ "integrity": "sha1-0L2FU2iHtv58DYGMuWLZ2RxU5lY=",
+ "dev": true
+ }
+ }
+ },
+ "serve-static": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npm.taobao.org/serve-static/download/serve-static-1.14.1.tgz",
+ "integrity": "sha1-Zm5jbcTwEPfvKZcKiKZ0MgiYsvk=",
+ "dev": true,
+ "requires": {
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.3",
+ "send": "0.17.1"
+ }
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/set-blocking/download/set-blocking-2.0.0.tgz",
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
+ "dev": true
+ },
+ "set-immediate-shim": {
+ "version": "1.0.1",
+ "resolved": "https://registry.nlark.com/set-immediate-shim/download/set-immediate-shim-1.0.1.tgz",
+ "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E="
+ },
+ "set-value": {
+ "version": "2.0.1",
+ "resolved": "https://registry.nlark.com/set-value/download/set-value-2.0.1.tgz?cache=0&sync_timestamp=1631437857327&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fset-value%2Fdownload%2Fset-value-2.0.1.tgz",
+ "integrity": "sha1-oY1AUw5vB95CKMfe/kInr4ytAFs=",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "is-extendable": "^0.1.1",
+ "is-plain-object": "^2.0.3",
+ "split-string": "^3.0.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "setprototypeof": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.1.tgz",
+ "integrity": "sha1-fpWsskqpL1iF4KvvW6ExMw1K5oM=",
+ "dev": true
+ },
+ "shallow-clone": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npm.taobao.org/shallow-clone/download/shallow-clone-3.0.1.tgz",
+ "integrity": "sha1-jymBrZJTH1UDWwH7IwdppA4C76M=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.2"
+ }
+ },
+ "shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-1.2.0.tgz",
+ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "^1.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/shebang-regex/download/shebang-regex-1.0.0.tgz?cache=0&sync_timestamp=1628896299850&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fshebang-regex%2Fdownload%2Fshebang-regex-1.0.0.tgz",
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
+ "dev": true
+ },
+ "should": {
+ "version": "13.2.3",
+ "resolved": "https://registry.nlark.com/should/download/should-13.2.3.tgz",
+ "integrity": "sha1-ltjlrPPpe0nYm1H+qlro0H71jxA=",
+ "dev": true,
+ "requires": {
+ "should-equal": "^2.0.0",
+ "should-format": "^3.0.3",
+ "should-type": "^1.4.0",
+ "should-type-adaptors": "^1.0.1",
+ "should-util": "^1.0.0"
+ }
+ },
+ "should-equal": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/should-equal/download/should-equal-2.0.0.tgz",
+ "integrity": "sha1-YHLPgwRzYIZ+aOmLCdcRQ9BO4MM=",
+ "dev": true,
+ "requires": {
+ "should-type": "^1.4.0"
+ }
+ },
+ "should-format": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npm.taobao.org/should-format/download/should-format-3.0.3.tgz",
+ "integrity": "sha1-m/yPdPo5IFxT04w01xcwPidxJPE=",
+ "dev": true,
+ "requires": {
+ "should-type": "^1.3.0",
+ "should-type-adaptors": "^1.0.1"
+ }
+ },
+ "should-type": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npm.taobao.org/should-type/download/should-type-1.4.0.tgz",
+ "integrity": "sha1-B1bYzoRt/QmEOmlHcZ36DUz/XPM=",
+ "dev": true
+ },
+ "should-type-adaptors": {
+ "version": "1.1.0",
+ "resolved": "https://registry.nlark.com/should-type-adaptors/download/should-type-adaptors-1.1.0.tgz",
+ "integrity": "sha1-QB5/M7VTMDOUTVzYvytlAneS4no=",
+ "dev": true,
+ "requires": {
+ "should-type": "^1.3.0",
+ "should-util": "^1.0.0"
+ }
+ },
+ "should-util": {
+ "version": "1.0.1",
+ "resolved": "https://registry.nlark.com/should-util/download/should-util-1.0.1.tgz",
+ "integrity": "sha1-+w1xM49TKjoUkhNjni0yy+qLyyg=",
+ "dev": true
+ },
+ "side-channel": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npm.taobao.org/side-channel/download/side-channel-1.0.4.tgz",
+ "integrity": "sha1-785cj9wQTudRslxY1CkAEfpeos8=",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.0",
+ "get-intrinsic": "^1.0.2",
+ "object-inspect": "^1.9.0"
+ }
+ },
+ "signal-exit": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmmirror.com/signal-exit/download/signal-exit-3.0.6.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fsignal-exit%2Fdownload%2Fsignal-exit-3.0.6.tgz",
+ "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==",
+ "dev": true
+ },
+ "simple-statistics": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npm.taobao.org/simple-statistics/download/simple-statistics-6.1.1.tgz",
+ "integrity": "sha1-46B5n/xJkU1vQhxaSsWF9qE+K60="
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/slash/download/slash-3.0.0.tgz",
+ "integrity": "sha1-ZTm+hwwWWtvVJAIg2+Nh8bxNRjQ=",
+ "dev": true
+ },
+ "slice-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.nlark.com/slice-ansi/download/slice-ansi-4.0.0.tgz",
+ "integrity": "sha1-UA6N0P1VsFgVCGJVsxla3ypF/ms=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz",
+ "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
+ "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
+ "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
+ "dev": true
+ }
+ }
+ },
+ "smart-buffer": {
+ "version": "4.2.0",
+ "resolved": "https://registry.nlark.com/smart-buffer/download/smart-buffer-4.2.0.tgz?cache=0&sync_timestamp=1628317244992&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsmart-buffer%2Fdownload%2Fsmart-buffer-4.2.0.tgz",
+ "integrity": "sha1-bh1x+k8YwF99D/IW3RakgdDo2a4=",
+ "dev": true
+ },
+ "snapdragon": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npm.taobao.org/snapdragon/download/snapdragon-0.8.2.tgz",
+ "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=",
+ "dev": true,
+ "requires": {
+ "base": "^0.11.1",
+ "debug": "^2.2.0",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "map-cache": "^0.2.2",
+ "source-map": "^0.5.6",
+ "source-map-resolve": "^0.5.0",
+ "use": "^3.1.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmmirror.com/debug/download/debug-2.6.9.tgz",
+ "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.nlark.com/define-property/download/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ }
+ }
+ },
+ "snapdragon-node": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npm.taobao.org/snapdragon-node/download/snapdragon-node-2.1.1.tgz",
+ "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=",
+ "dev": true,
+ "requires": {
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.0",
+ "snapdragon-util": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/define-property/download/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz",
+ "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ }
+ }
+ },
+ "snapdragon-util": {
+ "version": "3.0.1",
+ "resolved": "https://registry.nlark.com/snapdragon-util/download/snapdragon-util-3.0.1.tgz",
+ "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.2.0"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "socket.io": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmmirror.com/socket.io/download/socket.io-4.4.0.tgz?cache=0&sync_timestamp=1637252559928&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fsocket.io%2Fdownload%2Fsocket.io-4.4.0.tgz",
+ "integrity": "sha512-bnpJxswR9ov0Bw6ilhCvO38/1WPtE3eA2dtxi2Iq4/sFebiDJQzgKNYA7AuVVdGW09nrESXd90NbZqtDd9dzRQ==",
+ "dev": true,
+ "requires": {
+ "accepts": "~1.3.4",
+ "base64id": "~2.0.0",
+ "debug": "~4.3.2",
+ "engine.io": "~6.1.0",
+ "socket.io-adapter": "~2.3.3",
+ "socket.io-parser": "~4.0.4"
+ }
+ },
+ "socket.io-adapter": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmmirror.com/socket.io-adapter/download/socket.io-adapter-2.3.3.tgz?cache=0&sync_timestamp=1637252559030&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fsocket.io-adapter%2Fdownload%2Fsocket.io-adapter-2.3.3.tgz",
+ "integrity": "sha512-Qd/iwn3VskrpNO60BeRyCyr8ZWw9CPZyitW4AQwmRZ8zCiyDiL+znRnWX6tDHXnWn1sJrM1+b6Mn6wEDJJ4aYQ==",
+ "dev": true
+ },
+ "socket.io-parser": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmmirror.com/socket.io-parser/download/socket.io-parser-4.0.4.tgz",
+ "integrity": "sha1-nqIbDWFQjRgZbvBKLGuatjD0wrA=",
+ "dev": true,
+ "requires": {
+ "@types/component-emitter": "^1.2.10",
+ "component-emitter": "~1.3.0",
+ "debug": "~4.3.1"
+ }
+ },
+ "sockjs": {
+ "version": "0.3.21",
+ "resolved": "https://registry.nlark.com/sockjs/download/sockjs-0.3.21.tgz",
+ "integrity": "sha1-s0/7mOeWkwtgoM+hGQTWozmn1Bc=",
+ "dev": true,
+ "requires": {
+ "faye-websocket": "^0.11.3",
+ "uuid": "^3.4.0",
+ "websocket-driver": "^0.7.4"
+ }
+ },
+ "sockjs-client": {
+ "version": "1.5.2",
+ "resolved": "https://registry.nlark.com/sockjs-client/download/sockjs-client-1.5.2.tgz",
+ "integrity": "sha1-S8SMLanOR2nxnccjOWtQ9cEjMKM=",
+ "dev": true,
+ "requires": {
+ "debug": "^3.2.6",
+ "eventsource": "^1.0.7",
+ "faye-websocket": "^0.11.3",
+ "inherits": "^2.0.4",
+ "json3": "^3.3.3",
+ "url-parse": "^1.5.3"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmmirror.com/debug/download/debug-3.2.7.tgz",
+ "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ }
+ }
+ },
+ "socks": {
+ "version": "2.6.1",
+ "resolved": "https://registry.nlark.com/socks/download/socks-2.6.1.tgz",
+ "integrity": "sha1-mJ5lNKB88zfesbHJSqpEKWUg0w4=",
+ "dev": true,
+ "requires": {
+ "ip": "^1.1.5",
+ "smart-buffer": "^4.1.0"
+ }
+ },
+ "socks-proxy-agent": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmmirror.com/socks-proxy-agent/download/socks-proxy-agent-6.1.1.tgz",
+ "integrity": "sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==",
+ "dev": true,
+ "requires": {
+ "agent-base": "^6.0.2",
+ "debug": "^4.3.1",
+ "socks": "^2.6.1"
+ }
+ },
+ "source-list-map": {
+ "version": "2.0.1",
+ "resolved": "https://registry.nlark.com/source-list-map/download/source-list-map-2.0.1.tgz",
+ "integrity": "sha1-OZO9hzv8SEecyp6jpUeDXHwVSzQ=",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.7.3",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.7.3.tgz",
+ "integrity": "sha1-UwL4FpAxc1ImVECS5kmB91F1A4M=",
+ "dev": true
+ },
+ "source-map-explorer": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npm.taobao.org/source-map-explorer/download/source-map-explorer-2.5.2.tgz",
+ "integrity": "sha1-hXyrXdnR1xdenFwnOdycz7mfLcU=",
+ "dev": true,
+ "requires": {
+ "btoa": "^1.2.1",
+ "chalk": "^4.1.0",
+ "convert-source-map": "^1.7.0",
+ "ejs": "^3.1.5",
+ "escape-html": "^1.0.3",
+ "glob": "^7.1.6",
+ "gzip-size": "^6.0.0",
+ "lodash": "^4.17.20",
+ "open": "^7.3.1",
+ "source-map": "^0.7.3",
+ "temp": "^0.9.4",
+ "yargs": "^16.2.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz",
+ "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz",
+ "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "cliui": {
+ "version": "7.0.4",
+ "resolved": "https://registry.nlark.com/cliui/download/cliui-7.0.4.tgz",
+ "integrity": "sha1-oCZe5lVHb8gHrqnfPfjfd4OAi08=",
+ "dev": true,
+ "requires": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
+ "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
+ "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz",
+ "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=",
+ "dev": true
+ },
+ "open": {
+ "version": "7.4.2",
+ "resolved": "https://registry.npmmirror.com/open/download/open-7.4.2.tgz",
+ "integrity": "sha1-uBR+Jtzz5CYxbHMAif1x7dKcIyE=",
+ "dev": true,
+ "requires": {
+ "is-docker": "^2.0.0",
+ "is-wsl": "^2.1.1"
+ }
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmmirror.com/supports-color/download/supports-color-7.2.0.tgz",
+ "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.nlark.com/wrap-ansi/download/wrap-ansi-7.0.0.tgz?cache=0&sync_timestamp=1631557327268&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwrap-ansi%2Fdownload%2Fwrap-ansi-7.0.0.tgz",
+ "integrity": "sha1-Z+FFz/UQpqaYS98RUpEdadLrnkM=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npm.taobao.org/y18n/download/y18n-5.0.8.tgz?cache=0&sync_timestamp=1617822684820&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fy18n%2Fdownload%2Fy18n-5.0.8.tgz",
+ "integrity": "sha1-f0k00PfKjFb5UxSTndzS3ZHOHVU=",
+ "dev": true
+ },
+ "yargs": {
+ "version": "16.2.0",
+ "resolved": "https://registry.npmmirror.com/yargs/download/yargs-16.2.0.tgz",
+ "integrity": "sha1-HIK/D2tqZur85+8w43b0mhJHf2Y=",
+ "dev": true,
+ "requires": {
+ "cliui": "^7.0.2",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.0",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^20.2.2"
+ }
+ },
+ "yargs-parser": {
+ "version": "20.2.9",
+ "resolved": "https://registry.npmmirror.com/yargs-parser/download/yargs-parser-20.2.9.tgz?cache=0&sync_timestamp=1637031053426&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fyargs-parser%2Fdownload%2Fyargs-parser-20.2.9.tgz",
+ "integrity": "sha1-LrfcOwKJcY/ClfNidThFxBoMlO4=",
+ "dev": true
+ }
+ }
+ },
+ "source-map-js": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/source-map-js/download/source-map-js-1.0.1.tgz?cache=0&sync_timestamp=1636400772640&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fsource-map-js%2Fdownload%2Fsource-map-js-1.0.1.tgz",
+ "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==",
+ "dev": true
+ },
+ "source-map-loader": {
+ "version": "3.0.0",
+ "resolved": "https://registry.nlark.com/source-map-loader/download/source-map-loader-3.0.0.tgz",
+ "integrity": "sha1-8qBO4oCK0Bx3TeprfSY5g587MEk=",
+ "dev": true,
+ "requires": {
+ "abab": "^2.0.5",
+ "iconv-lite": "^0.6.2",
+ "source-map-js": "^0.6.2"
+ },
+ "dependencies": {
+ "iconv-lite": {
+ "version": "0.6.3",
+ "resolved": "https://registry.nlark.com/iconv-lite/download/iconv-lite-0.6.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ficonv-lite%2Fdownload%2Ficonv-lite-0.6.3.tgz",
+ "integrity": "sha1-pS+AvzjaGVLrXGgXkHGYcaGnJQE=",
+ "dev": true,
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
+ }
+ },
+ "source-map-js": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmmirror.com/source-map-js/download/source-map-js-0.6.2.tgz?cache=0&sync_timestamp=1636400772640&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fsource-map-js%2Fdownload%2Fsource-map-js-0.6.2.tgz",
+ "integrity": "sha1-C7XeYxtBz72mz7qL0FqA79/SOF4=",
+ "dev": true
+ }
+ }
+ },
+ "source-map-resolve": {
+ "version": "0.5.3",
+ "resolved": "https://registry.nlark.com/source-map-resolve/download/source-map-resolve-0.5.3.tgz",
+ "integrity": "sha1-GQhmvs51U+H48mei7oLGBrVQmho=",
+ "dev": true,
+ "requires": {
+ "atob": "^2.1.2",
+ "decode-uri-component": "^0.2.0",
+ "resolve-url": "^0.2.1",
+ "source-map-url": "^0.4.0",
+ "urix": "^0.1.0"
+ }
+ },
+ "source-map-support": {
+ "version": "0.5.19",
+ "resolved": "https://registry.npmmirror.com/source-map-support/download/source-map-support-0.5.19.tgz",
+ "integrity": "sha1-qYti+G3K9PZzmWSMCFKRq56P7WE=",
+ "dev": true,
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "source-map-url": {
+ "version": "0.4.1",
+ "resolved": "https://registry.nlark.com/source-map-url/download/source-map-url-0.4.1.tgz",
+ "integrity": "sha1-CvZmBadFpaL5HPG7+KevvCg97FY=",
+ "dev": true
+ },
+ "sourcemap-codec": {
+ "version": "1.4.8",
+ "resolved": "https://registry.nlark.com/sourcemap-codec/download/sourcemap-codec-1.4.8.tgz",
+ "integrity": "sha1-6oBL2UhXQC5pktBaOO8a41qatMQ=",
+ "dev": true
+ },
+ "spdx-correct": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.1.1.tgz",
+ "integrity": "sha1-3s6BrJweZxPl99G28X1Gj6U9iak=",
+ "dev": true,
+ "requires": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-exceptions": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npm.taobao.org/spdx-exceptions/download/spdx-exceptions-2.3.0.tgz",
+ "integrity": "sha1-PyjOGnegA3JoPq3kpDMYNSeiFj0=",
+ "dev": true
+ },
+ "spdx-expression-parse": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npm.taobao.org/spdx-expression-parse/download/spdx-expression-parse-3.0.1.tgz",
+ "integrity": "sha1-z3D1BILu/cmOPOCmgz5KU87rpnk=",
+ "dev": true,
+ "requires": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-license-ids": {
+ "version": "3.0.11",
+ "resolved": "https://registry.npmmirror.com/spdx-license-ids/download/spdx-license-ids-3.0.11.tgz?cache=0&sync_timestamp=1636978474315&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fspdx-license-ids%2Fdownload%2Fspdx-license-ids-3.0.11.tgz",
+ "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==",
+ "dev": true
+ },
+ "spdy": {
+ "version": "4.0.2",
+ "resolved": "https://registry.nlark.com/spdy/download/spdy-4.0.2.tgz",
+ "integrity": "sha1-t09GYgOj7aRSwCSSuR+56EonZ3s=",
+ "dev": true,
+ "requires": {
+ "debug": "^4.1.0",
+ "handle-thing": "^2.0.0",
+ "http-deceiver": "^1.2.7",
+ "select-hose": "^2.0.0",
+ "spdy-transport": "^3.0.0"
+ }
+ },
+ "spdy-transport": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/spdy-transport/download/spdy-transport-3.0.0.tgz",
+ "integrity": "sha1-ANSGOmQArXXfkzYaFghgXl3NzzE=",
+ "dev": true,
+ "requires": {
+ "debug": "^4.1.0",
+ "detect-node": "^2.0.4",
+ "hpack.js": "^2.1.6",
+ "obuf": "^1.1.2",
+ "readable-stream": "^3.0.6",
+ "wbuf": "^1.7.3"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz",
+ "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "specificity": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmmirror.com/specificity/download/specificity-0.4.1.tgz",
+ "integrity": "sha1-qrXmRQEtsIuhguFRFlc40AiHsBk=",
+ "dev": true
+ },
+ "split-string": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npm.taobao.org/split-string/download/split-string-3.1.0.tgz",
+ "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^3.0.0"
+ }
+ },
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.nlark.com/sprintf-js/download/sprintf-js-1.0.3.tgz?cache=0&sync_timestamp=1618847174560&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsprintf-js%2Fdownload%2Fsprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+ "dev": true
+ },
+ "ssf": {
+ "version": "0.11.2",
+ "resolved": "https://registry.npm.taobao.org/ssf/download/ssf-0.11.2.tgz",
+ "integrity": "sha1-C5lpiyN1SNCI/EPN8rcMGnUSwGw=",
+ "requires": {
+ "frac": "~1.1.2"
+ }
+ },
+ "sshpk": {
+ "version": "1.16.1",
+ "resolved": "https://registry.npm.taobao.org/sshpk/download/sshpk-1.16.1.tgz",
+ "integrity": "sha1-+2YcC+8ps520B2nuOfpwCT1vaHc=",
+ "dev": true,
+ "requires": {
+ "asn1": "~0.2.3",
+ "assert-plus": "^1.0.0",
+ "bcrypt-pbkdf": "^1.0.0",
+ "dashdash": "^1.12.0",
+ "ecc-jsbn": "~0.1.1",
+ "getpass": "^0.1.1",
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.0.2",
+ "tweetnacl": "~0.14.0"
+ }
+ },
+ "ssri": {
+ "version": "8.0.1",
+ "resolved": "https://registry.nlark.com/ssri/download/ssri-8.0.1.tgz?cache=0&sync_timestamp=1621364918494&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fssri%2Fdownload%2Fssri-8.0.1.tgz",
+ "integrity": "sha1-Y45OQ54v+9LNKJd21cpFfE9Roq8=",
+ "dev": true,
+ "requires": {
+ "minipass": "^3.1.1"
+ }
+ },
+ "stable": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmmirror.com/stable/download/stable-0.1.8.tgz",
+ "integrity": "sha1-g26zyDgv4pNv6vVEYxAXzn1Ho88=",
+ "dev": true
+ },
+ "state-toggle": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npm.taobao.org/state-toggle/download/state-toggle-1.0.3.tgz",
+ "integrity": "sha1-4SOxaojhQxObCcaFIiG8mBWRff4=",
+ "dev": true
+ },
+ "static-extend": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npm.taobao.org/static-extend/download/static-extend-0.1.2.tgz",
+ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
+ "dev": true,
+ "requires": {
+ "define-property": "^0.2.5",
+ "object-copy": "^0.1.0"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.nlark.com/define-property/download/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ }
+ }
+ },
+ "statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npm.taobao.org/statuses/download/statuses-1.5.0.tgz?cache=0&sync_timestamp=1609654066899&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.5.0.tgz",
+ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
+ "dev": true
+ },
+ "streamroller": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npm.taobao.org/streamroller/download/streamroller-2.2.4.tgz",
+ "integrity": "sha1-wZjO1C25QIamGTYIGHzoCl8rDlM=",
+ "dev": true,
+ "requires": {
+ "date-format": "^2.1.0",
+ "debug": "^4.1.1",
+ "fs-extra": "^8.1.0"
+ },
+ "dependencies": {
+ "date-format": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/date-format/download/date-format-2.1.0.tgz",
+ "integrity": "sha1-MdW16iEc9f12TNOLr50DPffhJc8=",
+ "dev": true
+ },
+ "fs-extra": {
+ "version": "8.1.0",
+ "resolved": "https://registry.nlark.com/fs-extra/download/fs-extra-8.1.0.tgz",
+ "integrity": "sha1-SdQ8RaiM2Wd2aMt74bRu/bjS4cA=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ }
+ },
+ "jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.nlark.com/jsonfile/download/jsonfile-4.0.0.tgz",
+ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.nlark.com/universalify/download/universalify-0.1.2.tgz",
+ "integrity": "sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=",
+ "dev": true
+ }
+ }
+ },
+ "string-argv": {
+ "version": "0.3.1",
+ "resolved": "https://registry.nlark.com/string-argv/download/string-argv-0.3.1.tgz",
+ "integrity": "sha1-leL77AQnrhkYSTX4FtdKqkxcGdo=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmmirror.com/string-width/download/string-width-4.2.3.tgz?cache=0&sync_timestamp=1632421013520&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstring-width%2Fdownload%2Fstring-width-4.2.3.tgz",
+ "integrity": "sha1-JpxxF9J7Ba0uU2gwqOyJXvnG0BA=",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ }
+ },
+ "string.prototype.trimend": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npm.taobao.org/string.prototype.trimend/download/string.prototype.trimend-1.0.4.tgz?cache=0&sync_timestamp=1614127461586&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimend%2Fdownload%2Fstring.prototype.trimend-1.0.4.tgz",
+ "integrity": "sha1-51rpDClCxjUEaGwYsoe0oLGkX4A=",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3"
+ }
+ },
+ "string.prototype.trimstart": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npm.taobao.org/string.prototype.trimstart/download/string.prototype.trimstart-1.0.4.tgz?cache=0&sync_timestamp=1614127357785&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimstart%2Fdownload%2Fstring.prototype.trimstart-1.0.4.tgz",
+ "integrity": "sha1-s2OZr0qymZtMnGSL16P7K7Jv7u0=",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz",
+ "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=",
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "stringify-entities": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmmirror.com/stringify-entities/download/stringify-entities-1.3.2.tgz?cache=0&sync_timestamp=1636445763931&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstringify-entities%2Fdownload%2Fstringify-entities-1.3.2.tgz",
+ "integrity": "sha1-qYQX5Ucf0iez5F09sYYcEcr2aPc=",
+ "dev": true,
+ "requires": {
+ "character-entities-html4": "^1.0.0",
+ "character-entities-legacy": "^1.0.0",
+ "is-alphanumerical": "^1.0.0",
+ "is-hexadecimal": "^1.0.0"
+ }
+ },
+ "stringify-object": {
+ "version": "3.3.0",
+ "resolved": "https://registry.nlark.com/stringify-object/download/stringify-object-3.3.0.tgz",
+ "integrity": "sha1-cDBlrvyhkwDTzoivT1s5VtdVZik=",
+ "dev": true,
+ "requires": {
+ "get-own-enumerable-property-symbols": "^3.0.0",
+ "is-obj": "^1.0.1",
+ "is-regexp": "^1.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-6.0.1.tgz?cache=0&sync_timestamp=1632420562057&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-6.0.1.tgz",
+ "integrity": "sha1-nibGPTD1NEPpSJSVshBdN7Z6hdk=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.1"
+ }
+ },
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/strip-bom/download/strip-bom-3.0.0.tgz?cache=0&sync_timestamp=1618599642133&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-bom%2Fdownload%2Fstrip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
+ },
+ "strip-css-comments": {
+ "version": "4.1.0",
+ "resolved": "https://registry.nlark.com/strip-css-comments/download/strip-css-comments-4.1.0.tgz",
+ "integrity": "sha1-ynmOPmtxkp8LNU4L1y53WbLqF+A=",
+ "dev": true,
+ "requires": {
+ "is-regexp": "^2.1.0"
+ },
+ "dependencies": {
+ "is-regexp": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/is-regexp/download/is-regexp-2.1.0.tgz",
+ "integrity": "sha1-zXNKVoZOI7lWv058ZsOWpMCyLC0=",
+ "dev": true
+ }
+ }
+ },
+ "strip-eof": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/strip-eof/download/strip-eof-1.0.0.tgz",
+ "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
+ "dev": true
+ },
+ "strip-final-newline": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/strip-final-newline/download/strip-final-newline-2.0.0.tgz",
+ "integrity": "sha1-ibhS+y/L6Tb29LMYevsKEsGrWK0=",
+ "dev": true
+ },
+ "strip-indent": {
+ "version": "3.0.0",
+ "resolved": "https://registry.nlark.com/strip-indent/download/strip-indent-3.0.0.tgz?cache=0&sync_timestamp=1620053310624&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-indent%2Fdownload%2Fstrip-indent-3.0.0.tgz",
+ "integrity": "sha1-wy4c7pQLazQyx3G8LFS8znPNMAE=",
+ "dev": true,
+ "requires": {
+ "min-indent": "^1.0.0"
+ }
+ },
+ "strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.nlark.com/strip-json-comments/download/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY=",
+ "dev": true
+ },
+ "style-loader": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmmirror.com/style-loader/download/style-loader-3.2.1.tgz?cache=0&sync_timestamp=1634872439692&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstyle-loader%2Fdownload%2Fstyle-loader-3.2.1.tgz",
+ "integrity": "sha1-Y8uSDsFFyGaemlDpKWFFKh713N4=",
+ "dev": true
+ },
+ "style-search": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npm.taobao.org/style-search/download/style-search-0.1.0.tgz",
+ "integrity": "sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=",
+ "dev": true
+ },
+ "stylehacks": {
+ "version": "5.0.1",
+ "resolved": "https://registry.nlark.com/stylehacks/download/stylehacks-5.0.1.tgz?cache=0&sync_timestamp=1621449652268&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstylehacks%2Fdownload%2Fstylehacks-5.0.1.tgz",
+ "integrity": "sha1-Mj7FVBmFIJhoBjiMf9rrw40sBvs=",
+ "dev": true,
+ "requires": {
+ "browserslist": "^4.16.0",
+ "postcss-selector-parser": "^6.0.4"
+ }
+ },
+ "stylelint": {
+ "version": "13.13.1",
+ "resolved": "https://registry.npmmirror.com/stylelint/download/stylelint-13.13.1.tgz",
+ "integrity": "sha1-/KnJ9d55kKsmoA8We4l48IOhjzw=",
+ "dev": true,
+ "requires": {
+ "@stylelint/postcss-css-in-js": "^0.37.2",
+ "@stylelint/postcss-markdown": "^0.36.2",
+ "autoprefixer": "^9.8.6",
+ "balanced-match": "^2.0.0",
+ "chalk": "^4.1.1",
+ "cosmiconfig": "^7.0.0",
+ "debug": "^4.3.1",
+ "execall": "^2.0.0",
+ "fast-glob": "^3.2.5",
+ "fastest-levenshtein": "^1.0.12",
+ "file-entry-cache": "^6.0.1",
+ "get-stdin": "^8.0.0",
+ "global-modules": "^2.0.0",
+ "globby": "^11.0.3",
+ "globjoin": "^0.1.4",
+ "html-tags": "^3.1.0",
+ "ignore": "^5.1.8",
+ "import-lazy": "^4.0.0",
+ "imurmurhash": "^0.1.4",
+ "known-css-properties": "^0.21.0",
+ "lodash": "^4.17.21",
+ "log-symbols": "^4.1.0",
+ "mathml-tag-names": "^2.1.3",
+ "meow": "^9.0.0",
+ "micromatch": "^4.0.4",
+ "normalize-selector": "^0.2.0",
+ "postcss": "^7.0.35",
+ "postcss-html": "^0.36.0",
+ "postcss-less": "^3.1.4",
+ "postcss-media-query-parser": "^0.2.3",
+ "postcss-resolve-nested-selector": "^0.1.1",
+ "postcss-safe-parser": "^4.0.2",
+ "postcss-sass": "^0.4.4",
+ "postcss-scss": "^2.1.1",
+ "postcss-selector-parser": "^6.0.5",
+ "postcss-syntax": "^0.36.2",
+ "postcss-value-parser": "^4.1.0",
+ "resolve-from": "^5.0.0",
+ "slash": "^3.0.0",
+ "specificity": "^0.4.1",
+ "string-width": "^4.2.2",
+ "strip-ansi": "^6.0.0",
+ "style-search": "^0.1.0",
+ "sugarss": "^2.0.0",
+ "svg-tags": "^1.0.0",
+ "table": "^6.6.0",
+ "v8-compile-cache": "^2.3.0",
+ "write-file-atomic": "^3.0.3"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz",
+ "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "balanced-match": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/balanced-match/download/balanced-match-2.0.0.tgz",
+ "integrity": "sha1-3HD5INeNuLhYU1eVhnv0j4IGM9k=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz",
+ "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
+ "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
+ "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz",
+ "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=",
+ "dev": true
+ },
+ "meow": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmmirror.com/meow/download/meow-9.0.0.tgz?cache=0&sync_timestamp=1637477569022&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fmeow%2Fdownload%2Fmeow-9.0.0.tgz",
+ "integrity": "sha1-zZUQvFysne59A8c+4fmtlZ9Oo2Q=",
+ "dev": true,
+ "requires": {
+ "@types/minimist": "^1.2.0",
+ "camelcase-keys": "^6.2.2",
+ "decamelize": "^1.2.0",
+ "decamelize-keys": "^1.1.0",
+ "hard-rejection": "^2.1.0",
+ "minimist-options": "4.1.0",
+ "normalize-package-data": "^3.0.0",
+ "read-pkg-up": "^7.0.1",
+ "redent": "^3.0.0",
+ "trim-newlines": "^3.0.0",
+ "type-fest": "^0.18.0",
+ "yargs-parser": "^20.2.3"
+ }
+ },
+ "normalize-package-data": {
+ "version": "3.0.3",
+ "resolved": "https://registry.nlark.com/normalize-package-data/download/normalize-package-data-3.0.3.tgz",
+ "integrity": "sha1-28w+LaWVCaCYNCKITNFy7v36Ul4=",
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "^4.0.1",
+ "is-core-module": "^2.5.0",
+ "semver": "^7.3.4",
+ "validate-npm-package-license": "^3.0.1"
+ }
+ },
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "read-pkg": {
+ "version": "5.2.0",
+ "resolved": "https://registry.nlark.com/read-pkg/download/read-pkg-5.2.0.tgz",
+ "integrity": "sha1-e/KVQ4yloz5WzTDgU7NO5yUMk8w=",
+ "dev": true,
+ "requires": {
+ "@types/normalize-package-data": "^2.4.0",
+ "normalize-package-data": "^2.5.0",
+ "parse-json": "^5.0.0",
+ "type-fest": "^0.6.0"
+ },
+ "dependencies": {
+ "hosted-git-info": {
+ "version": "2.8.9",
+ "resolved": "https://registry.nlark.com/hosted-git-info/download/hosted-git-info-2.8.9.tgz",
+ "integrity": "sha1-3/wL+aIcAiCQkPKqaUKeFBTa8/k=",
+ "dev": true
+ },
+ "normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.nlark.com/normalize-package-data/download/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=",
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ }
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz",
+ "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=",
+ "dev": true
+ },
+ "type-fest": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmmirror.com/type-fest/download/type-fest-0.6.0.tgz?cache=0&sync_timestamp=1637149878210&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ftype-fest%2Fdownload%2Ftype-fest-0.6.0.tgz",
+ "integrity": "sha1-jSojcNPfiG61yQraHFv2GIrPg4s=",
+ "dev": true
+ }
+ }
+ },
+ "read-pkg-up": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmmirror.com/read-pkg-up/download/read-pkg-up-7.0.1.tgz",
+ "integrity": "sha1-86YTV1hFlzOuK5VjgFbhhU5+9Qc=",
+ "dev": true,
+ "requires": {
+ "find-up": "^4.1.0",
+ "read-pkg": "^5.2.0",
+ "type-fest": "^0.8.1"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmmirror.com/type-fest/download/type-fest-0.8.1.tgz?cache=0&sync_timestamp=1637149878210&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ftype-fest%2Fdownload%2Ftype-fest-0.8.1.tgz",
+ "integrity": "sha1-CeJJ696FHTseSNJ8EFREZn8XuD0=",
+ "dev": true
+ }
+ }
+ },
+ "resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-5.0.0.tgz",
+ "integrity": "sha1-w1IlhD3493bfIcV1V7wIfp39/Gk=",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmmirror.com/supports-color/download/supports-color-7.2.0.tgz",
+ "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "type-fest": {
+ "version": "0.18.1",
+ "resolved": "https://registry.npmmirror.com/type-fest/download/type-fest-0.18.1.tgz?cache=0&sync_timestamp=1637149878210&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ftype-fest%2Fdownload%2Ftype-fest-0.18.1.tgz",
+ "integrity": "sha1-20vBUaSiz07r+a3V23VQjbbMhB8=",
+ "dev": true
+ },
+ "yargs-parser": {
+ "version": "20.2.9",
+ "resolved": "https://registry.npmmirror.com/yargs-parser/download/yargs-parser-20.2.9.tgz?cache=0&sync_timestamp=1637031053426&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fyargs-parser%2Fdownload%2Fyargs-parser-20.2.9.tgz",
+ "integrity": "sha1-LrfcOwKJcY/ClfNidThFxBoMlO4=",
+ "dev": true
+ }
+ }
+ },
+ "stylelint-config-prettier": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmmirror.com/stylelint-config-prettier/download/stylelint-config-prettier-8.0.2.tgz",
+ "integrity": "sha1-2p3jPaTFaJPL5+Jt8jmnN0BF4U4=",
+ "dev": true
+ },
+ "stylelint-config-rational-order": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npm.taobao.org/stylelint-config-rational-order/download/stylelint-config-rational-order-0.1.2.tgz",
+ "integrity": "sha1-TpjjkHg9Q38OxB+3O8QZkueNAqA=",
+ "dev": true,
+ "requires": {
+ "stylelint": "^9.10.1",
+ "stylelint-order": "^2.2.1"
+ },
+ "dependencies": {
+ "@nodelib/fs.stat": {
+ "version": "1.1.3",
+ "resolved": "https://registry.nlark.com/@nodelib/fs.stat/download/@nodelib/fs.stat-1.1.3.tgz",
+ "integrity": "sha1-K1o6s/kYzKSKjHVMCBaOPwPrphs=",
+ "dev": true
+ },
+ "ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmmirror.com/ajv/download/ajv-6.12.6.tgz?cache=0&sync_timestamp=1637522259668&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fajv%2Fdownload%2Fajv-6.12.6.tgz",
+ "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=",
+ "dev": true,
+ "requires": {
+ "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-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-4.1.0.tgz?cache=0&sync_timestamp=1631634988487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-regex%2Fdownload%2Fansi-regex-4.1.0.tgz",
+ "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=",
+ "dev": true
+ },
+ "array-union": {
+ "version": "1.0.2",
+ "resolved": "https://registry.nlark.com/array-union/download/array-union-1.0.2.tgz",
+ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
+ "dev": true,
+ "requires": {
+ "array-uniq": "^1.0.1"
+ }
+ },
+ "astral-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/astral-regex/download/astral-regex-1.0.0.tgz",
+ "integrity": "sha1-bIw/uCfdQ+45GPJ7gngqt2WKb9k=",
+ "dev": true
+ },
+ "braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz",
+ "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=",
+ "dev": true,
+ "requires": {
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "camelcase": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmmirror.com/camelcase/download/camelcase-4.1.0.tgz?cache=0&sync_timestamp=1636945205805&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcamelcase%2Fdownload%2Fcamelcase-4.1.0.tgz",
+ "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
+ "dev": true
+ },
+ "camelcase-keys": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmmirror.com/camelcase-keys/download/camelcase-keys-4.2.0.tgz?cache=0&sync_timestamp=1633332959770&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcamelcase-keys%2Fdownload%2Fcamelcase-keys-4.2.0.tgz",
+ "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=",
+ "dev": true,
+ "requires": {
+ "camelcase": "^4.1.0",
+ "map-obj": "^2.0.0",
+ "quick-lru": "^1.0.0"
+ }
+ },
+ "clone-regexp": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/clone-regexp/download/clone-regexp-1.0.1.tgz?cache=0&sync_timestamp=1617892092032&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fclone-regexp%2Fdownload%2Fclone-regexp-1.0.1.tgz",
+ "integrity": "sha1-BRgFzTMXM3XYIRj8CRhgbaOf1g8=",
+ "dev": true,
+ "requires": {
+ "is-regexp": "^1.0.0",
+ "is-supported-regexp-flag": "^1.0.0"
+ }
+ },
+ "cosmiconfig": {
+ "version": "5.2.1",
+ "resolved": "https://registry.nlark.com/cosmiconfig/download/cosmiconfig-5.2.1.tgz",
+ "integrity": "sha1-BA9yaAnFked6F8CjYmykW08Wixo=",
+ "dev": true,
+ "requires": {
+ "import-fresh": "^2.0.0",
+ "is-directory": "^0.3.1",
+ "js-yaml": "^3.13.1",
+ "parse-json": "^4.0.0"
+ }
+ },
+ "dir-glob": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npm.taobao.org/dir-glob/download/dir-glob-2.2.2.tgz",
+ "integrity": "sha1-+gnwaUFTyJGLGLoN6vrpR2n8UMQ=",
+ "dev": true,
+ "requires": {
+ "path-type": "^3.0.0"
+ }
+ },
+ "emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmmirror.com/emoji-regex/download/emoji-regex-7.0.3.tgz?cache=0&sync_timestamp=1632751333727&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Femoji-regex%2Fdownload%2Femoji-regex-7.0.3.tgz",
+ "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=",
+ "dev": true
+ },
+ "execall": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/execall/download/execall-1.0.0.tgz?cache=0&sync_timestamp=1617892843041&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexecall%2Fdownload%2Fexecall-1.0.0.tgz",
+ "integrity": "sha1-c9CQTjlbPKsGWLCNCewlMH8pu3M=",
+ "dev": true,
+ "requires": {
+ "clone-regexp": "^1.0.0"
+ }
+ },
+ "fast-glob": {
+ "version": "2.2.7",
+ "resolved": "https://registry.nlark.com/fast-glob/download/fast-glob-2.2.7.tgz?cache=0&sync_timestamp=1625773305786&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffast-glob%2Fdownload%2Ffast-glob-2.2.7.tgz",
+ "integrity": "sha1-aVOFfDr6R1//ku5gFdUtpwpM050=",
+ "dev": true,
+ "requires": {
+ "@mrmlnc/readdir-enhanced": "^2.2.1",
+ "@nodelib/fs.stat": "^1.1.2",
+ "glob-parent": "^3.1.0",
+ "is-glob": "^4.0.0",
+ "merge2": "^1.2.3",
+ "micromatch": "^3.1.10"
+ }
+ },
+ "file-entry-cache": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/file-entry-cache/download/file-entry-cache-4.0.0.tgz?cache=0&sync_timestamp=1613794272556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-entry-cache%2Fdownload%2Ffile-entry-cache-4.0.0.tgz",
+ "integrity": "sha1-YzVn0VNkrv4LKZ4eIXc16POp9ug=",
+ "dev": true,
+ "requires": {
+ "flat-cache": "^2.0.1"
+ }
+ },
+ "fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.nlark.com/fill-range/download/fill-range-4.0.0.tgz",
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "flat-cache": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/flat-cache/download/flat-cache-2.0.1.tgz",
+ "integrity": "sha1-XSltbwS9pEpGMKMBQTvbwuwIXsA=",
+ "dev": true,
+ "requires": {
+ "flatted": "^2.0.0",
+ "rimraf": "2.6.3",
+ "write": "1.0.3"
+ }
+ },
+ "flatted": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/flatted/download/flatted-2.0.2.tgz?cache=0&sync_timestamp=1636473847692&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fflatted%2Fdownload%2Fflatted-2.0.2.tgz",
+ "integrity": "sha1-RXWyHivO50NKqb5mL0t7X5wrUTg=",
+ "dev": true
+ },
+ "get-stdin": {
+ "version": "6.0.0",
+ "resolved": "https://registry.nlark.com/get-stdin/download/get-stdin-6.0.0.tgz",
+ "integrity": "sha1-ngm/cSs2CrkiXoEgSPcf3pyJZXs=",
+ "dev": true
+ },
+ "glob-parent": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/glob-parent/download/glob-parent-3.1.0.tgz?cache=0&sync_timestamp=1632953810778&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fglob-parent%2Fdownload%2Fglob-parent-3.1.0.tgz",
+ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+ "dev": true,
+ "requires": {
+ "is-glob": "^3.1.0",
+ "path-dirname": "^1.0.0"
+ },
+ "dependencies": {
+ "is-glob": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/is-glob/download/is-glob-3.1.0.tgz",
+ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^2.1.0"
+ }
+ }
+ }
+ },
+ "globby": {
+ "version": "9.2.0",
+ "resolved": "https://registry.nlark.com/globby/download/globby-9.2.0.tgz",
+ "integrity": "sha1-/QKacGxwPSm90XD0tts6P3p8tj0=",
+ "dev": true,
+ "requires": {
+ "@types/glob": "^7.1.1",
+ "array-union": "^1.0.2",
+ "dir-glob": "^2.2.2",
+ "fast-glob": "^2.2.6",
+ "glob": "^7.1.3",
+ "ignore": "^4.0.3",
+ "pify": "^4.0.1",
+ "slash": "^2.0.0"
+ },
+ "dependencies": {
+ "ignore": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmmirror.com/ignore/download/ignore-4.0.6.tgz?cache=0&sync_timestamp=1635926632542&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fignore%2Fdownload%2Fignore-4.0.6.tgz",
+ "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=",
+ "dev": true
+ }
+ }
+ },
+ "html-tags": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/html-tags/download/html-tags-2.0.0.tgz",
+ "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=",
+ "dev": true
+ },
+ "import-fresh": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/import-fresh/download/import-fresh-2.0.0.tgz?cache=0&sync_timestamp=1608469532269&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-2.0.0.tgz",
+ "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=",
+ "dev": true,
+ "requires": {
+ "caller-path": "^2.0.0",
+ "resolve-from": "^3.0.0"
+ },
+ "dependencies": {
+ "resolve-from": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz",
+ "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
+ "dev": true
+ }
+ }
+ },
+ "import-lazy": {
+ "version": "3.1.0",
+ "resolved": "https://registry.nlark.com/import-lazy/download/import-lazy-3.1.0.tgz",
+ "integrity": "sha1-iRJ5ICyKIoD9vWZ029jaGh38Z8w=",
+ "dev": true
+ },
+ "indent-string": {
+ "version": "3.2.0",
+ "resolved": "https://registry.nlark.com/indent-string/download/indent-string-3.2.0.tgz?cache=0&sync_timestamp=1622604582006&other_urls=https%3A%2F%2Fregistry.nlark.com%2Findent-string%2Fdownload%2Findent-string-3.2.0.tgz",
+ "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=",
+ "dev": true
+ },
+ "known-css-properties": {
+ "version": "0.11.0",
+ "resolved": "https://registry.nlark.com/known-css-properties/download/known-css-properties-0.11.0.tgz",
+ "integrity": "sha1-DaeE8RXqd8drgVNtcFLpDubIaoo=",
+ "dev": true
+ },
+ "log-symbols": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npm.taobao.org/log-symbols/download/log-symbols-2.2.0.tgz",
+ "integrity": "sha1-V0Dhxdbw39pK2TI7UzIQfva0xAo=",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.0.1"
+ }
+ },
+ "map-obj": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/map-obj/download/map-obj-2.0.0.tgz?cache=0&sync_timestamp=1634552719803&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fmap-obj%2Fdownload%2Fmap-obj-2.0.0.tgz",
+ "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=",
+ "dev": true
+ },
+ "meow": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmmirror.com/meow/download/meow-5.0.0.tgz?cache=0&sync_timestamp=1637477569022&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fmeow%2Fdownload%2Fmeow-5.0.0.tgz",
+ "integrity": "sha1-38c9Y6mvxxSl43F2DrXIi5EHiqQ=",
+ "dev": true,
+ "requires": {
+ "camelcase-keys": "^4.0.0",
+ "decamelize-keys": "^1.0.0",
+ "loud-rejection": "^1.0.0",
+ "minimist-options": "^3.0.1",
+ "normalize-package-data": "^2.3.4",
+ "read-pkg-up": "^3.0.0",
+ "redent": "^2.0.0",
+ "trim-newlines": "^2.0.0",
+ "yargs-parser": "^10.0.0"
+ }
+ },
+ "micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.nlark.com/micromatch/download/micromatch-3.1.10.tgz",
+ "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=",
+ "dev": true,
+ "requires": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
+ }
+ },
+ "minimist-options": {
+ "version": "3.0.2",
+ "resolved": "https://registry.nlark.com/minimist-options/download/minimist-options-3.0.2.tgz",
+ "integrity": "sha1-+6TIGRM54T7PTWG+sD8HAQPz2VQ=",
+ "dev": true,
+ "requires": {
+ "arrify": "^1.0.1",
+ "is-plain-obj": "^1.1.0"
+ }
+ },
+ "parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/parse-json/download/parse-json-4.0.0.tgz",
+ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+ "dev": true,
+ "requires": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ }
+ },
+ "path-type": {
+ "version": "3.0.0",
+ "resolved": "https://registry.nlark.com/path-type/download/path-type-3.0.0.tgz",
+ "integrity": "sha1-zvMdyOCho7sNEFwM2Xzzv0f0428=",
+ "dev": true,
+ "requires": {
+ "pify": "^3.0.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true
+ }
+ }
+ },
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "postcss-sass": {
+ "version": "0.3.5",
+ "resolved": "https://registry.nlark.com/postcss-sass/download/postcss-sass-0.3.5.tgz",
+ "integrity": "sha1-bT458QGlPS76CR+VNJMRbTK+tow=",
+ "dev": true,
+ "requires": {
+ "gonzales-pe": "^4.2.3",
+ "postcss": "^7.0.1"
+ }
+ },
+ "postcss-selector-parser": {
+ "version": "3.1.2",
+ "resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&sync_timestamp=1620752939806&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz",
+ "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=",
+ "dev": true,
+ "requires": {
+ "dot-prop": "^5.2.0",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ }
+ },
+ "postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=",
+ "dev": true
+ },
+ "quick-lru": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/quick-lru/download/quick-lru-1.1.0.tgz",
+ "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=",
+ "dev": true
+ },
+ "redent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/redent/download/redent-2.0.0.tgz?cache=0&sync_timestamp=1620070119923&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fredent%2Fdownload%2Fredent-2.0.0.tgz",
+ "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=",
+ "dev": true,
+ "requires": {
+ "indent-string": "^3.0.0",
+ "strip-indent": "^2.0.0"
+ }
+ },
+ "rimraf": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.6.3.tgz",
+ "integrity": "sha1-stEE/g2Psnz54KHNqCYt04M8bKs=",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "slash": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/slash/download/slash-2.0.0.tgz",
+ "integrity": "sha1-3lUoUaF1nfOo8gZTVEL17E3eq0Q=",
+ "dev": true
+ },
+ "slice-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.nlark.com/slice-ansi/download/slice-ansi-2.1.0.tgz",
+ "integrity": "sha1-ys12k0YaY3pXiNkqfdT7oGjoFjY=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.0",
+ "astral-regex": "^1.0.0",
+ "is-fullwidth-code-point": "^2.0.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/string-width/download/string-width-3.1.0.tgz?cache=0&sync_timestamp=1632421013520&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstring-width%2Fdownload%2Fstring-width-3.1.0.tgz",
+ "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1632420562057&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz",
+ "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ },
+ "strip-indent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/strip-indent/download/strip-indent-2.0.0.tgz?cache=0&sync_timestamp=1620053310624&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-indent%2Fdownload%2Fstrip-indent-2.0.0.tgz",
+ "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=",
+ "dev": true
+ },
+ "stylelint": {
+ "version": "9.10.1",
+ "resolved": "https://registry.npmmirror.com/stylelint/download/stylelint-9.10.1.tgz",
+ "integrity": "sha1-Xw7jcBRh3/HWgoThOG7+jwZ3p10=",
+ "dev": true,
+ "requires": {
+ "autoprefixer": "^9.0.0",
+ "balanced-match": "^1.0.0",
+ "chalk": "^2.4.1",
+ "cosmiconfig": "^5.0.0",
+ "debug": "^4.0.0",
+ "execall": "^1.0.0",
+ "file-entry-cache": "^4.0.0",
+ "get-stdin": "^6.0.0",
+ "global-modules": "^2.0.0",
+ "globby": "^9.0.0",
+ "globjoin": "^0.1.4",
+ "html-tags": "^2.0.0",
+ "ignore": "^5.0.4",
+ "import-lazy": "^3.1.0",
+ "imurmurhash": "^0.1.4",
+ "known-css-properties": "^0.11.0",
+ "leven": "^2.1.0",
+ "lodash": "^4.17.4",
+ "log-symbols": "^2.0.0",
+ "mathml-tag-names": "^2.0.1",
+ "meow": "^5.0.0",
+ "micromatch": "^3.1.10",
+ "normalize-selector": "^0.2.0",
+ "pify": "^4.0.0",
+ "postcss": "^7.0.13",
+ "postcss-html": "^0.36.0",
+ "postcss-jsx": "^0.36.0",
+ "postcss-less": "^3.1.0",
+ "postcss-markdown": "^0.36.0",
+ "postcss-media-query-parser": "^0.2.3",
+ "postcss-reporter": "^6.0.0",
+ "postcss-resolve-nested-selector": "^0.1.1",
+ "postcss-safe-parser": "^4.0.0",
+ "postcss-sass": "^0.3.5",
+ "postcss-scss": "^2.0.0",
+ "postcss-selector-parser": "^3.1.0",
+ "postcss-syntax": "^0.36.2",
+ "postcss-value-parser": "^3.3.0",
+ "resolve-from": "^4.0.0",
+ "signal-exit": "^3.0.2",
+ "slash": "^2.0.0",
+ "specificity": "^0.4.1",
+ "string-width": "^3.0.0",
+ "style-search": "^0.1.0",
+ "sugarss": "^2.0.0",
+ "svg-tags": "^1.0.0",
+ "table": "^5.0.0"
+ }
+ },
+ "stylelint-order": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmmirror.com/stylelint-order/download/stylelint-order-2.2.1.tgz",
+ "integrity": "sha1-zS1KDYHZHHBfHSdaWEh+WtWqWCg=",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.10",
+ "postcss": "^7.0.2",
+ "postcss-sorting": "^4.1.0"
+ }
+ },
+ "table": {
+ "version": "5.4.6",
+ "resolved": "https://registry.npmmirror.com/table/download/table-5.4.6.tgz?cache=0&sync_timestamp=1636037112686&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ftable%2Fdownload%2Ftable-5.4.6.tgz",
+ "integrity": "sha1-EpLRlQDOP4YFOwXw6Ofko7shB54=",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.10.2",
+ "lodash": "^4.17.14",
+ "slice-ansi": "^2.1.0",
+ "string-width": "^3.0.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "2.1.1",
+ "resolved": "https://registry.nlark.com/to-regex-range/download/to-regex-range-2.1.1.tgz",
+ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+ "dev": true,
+ "requires": {
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1"
+ }
+ },
+ "trim-newlines": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/trim-newlines/download/trim-newlines-2.0.0.tgz?cache=0&sync_timestamp=1623341510447&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftrim-newlines%2Fdownload%2Ftrim-newlines-2.0.0.tgz",
+ "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=",
+ "dev": true
+ },
+ "yargs-parser": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmmirror.com/yargs-parser/download/yargs-parser-10.1.0.tgz?cache=0&sync_timestamp=1637031053426&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fyargs-parser%2Fdownload%2Fyargs-parser-10.1.0.tgz",
+ "integrity": "sha1-cgImW4n36eny5XZeD+c1qQXtuqg=",
+ "dev": true,
+ "requires": {
+ "camelcase": "^4.1.0"
+ }
+ }
+ }
+ },
+ "stylelint-config-recommended": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmmirror.com/stylelint-config-recommended/download/stylelint-config-recommended-5.0.0.tgz",
+ "integrity": "sha1-+1ZT9JWmC0k48q0+d3EtnhA5rng=",
+ "dev": true
+ },
+ "stylelint-config-standard": {
+ "version": "22.0.0",
+ "resolved": "https://registry.npmmirror.com/stylelint-config-standard/download/stylelint-config-standard-22.0.0.tgz",
+ "integrity": "sha1-yGC+mhPrvBsIRFb6EFJ78TpErd8=",
+ "dev": true,
+ "requires": {
+ "stylelint-config-recommended": "^5.0.0"
+ }
+ },
+ "stylelint-declaration-block-no-ignored-properties": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmmirror.com/stylelint-declaration-block-no-ignored-properties/download/stylelint-declaration-block-no-ignored-properties-2.5.0.tgz?cache=0&sync_timestamp=1636703410304&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstylelint-declaration-block-no-ignored-properties%2Fdownload%2Fstylelint-declaration-block-no-ignored-properties-2.5.0.tgz",
+ "integrity": "sha512-UNz5nUC5GMgMb6GPc/pHUTC0+ydxTdj2mUn7XcKRdwQoiUzzUmWWdSf1aFv2UzrW4x8JYNReE1u5JOj7g0ThJw==",
+ "dev": true
+ },
+ "stylelint-order": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmmirror.com/stylelint-order/download/stylelint-order-4.1.0.tgz",
+ "integrity": "sha1-aS0Ft9DCNaxm/PXqHZ5fCKdnR/Y=",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.15",
+ "postcss": "^7.0.31",
+ "postcss-sorting": "^5.0.1"
+ },
+ "dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "postcss-sorting": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmmirror.com/postcss-sorting/download/postcss-sorting-5.0.1.tgz",
+ "integrity": "sha1-ENXQBZ7qgzTazIIMASGGQDW8PxE=",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.14",
+ "postcss": "^7.0.17"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "stylus": {
+ "version": "0.54.8",
+ "resolved": "https://registry.nlark.com/stylus/download/stylus-0.54.8.tgz",
+ "integrity": "sha1-PaPmWWa8Vnp7BEv+DuzmU+CZ0Uc=",
+ "dev": true,
+ "requires": {
+ "css-parse": "~2.0.0",
+ "debug": "~3.1.0",
+ "glob": "^7.1.6",
+ "mkdirp": "~1.0.4",
+ "safer-buffer": "^2.1.2",
+ "sax": "~1.2.4",
+ "semver": "^6.3.0",
+ "source-map": "^0.7.3"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/debug/download/debug-3.1.0.tgz",
+ "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz",
+ "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=",
+ "dev": true
+ }
+ }
+ },
+ "stylus-loader": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmmirror.com/stylus-loader/download/stylus-loader-6.1.0.tgz?cache=0&sync_timestamp=1634037061456&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstylus-loader%2Fdownload%2Fstylus-loader-6.1.0.tgz",
+ "integrity": "sha1-ejpxmifLK5YXiW1too/alMPtl2I=",
+ "dev": true,
+ "requires": {
+ "fast-glob": "^3.2.5",
+ "klona": "^2.0.4",
+ "normalize-path": "^3.0.0"
+ }
+ },
+ "sugarss": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/sugarss/download/sugarss-2.0.0.tgz",
+ "integrity": "sha1-3dduASSyl9QL88yjHIsi7LQ7xh0=",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.2"
+ },
+ "dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz",
+ "integrity": "sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.39.tgz",
+ "integrity": "sha1-liQ3XZZWMOLh8sAqk1yCpZy0gwk=",
+ "dev": true,
+ "requires": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmmirror.com/supports-color/download/supports-color-5.5.0.tgz",
+ "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ },
+ "svg-tags": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npm.taobao.org/svg-tags/download/svg-tags-1.0.0.tgz",
+ "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=",
+ "dev": true
+ },
+ "svgo": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmmirror.com/svgo/download/svgo-2.8.0.tgz",
+ "integrity": "sha1-T/gMzmcQ3CeV8MfHQQHmdkz8zSQ=",
+ "dev": true,
+ "requires": {
+ "@trysound/sax": "0.2.0",
+ "commander": "^7.2.0",
+ "css-select": "^4.1.3",
+ "css-tree": "^1.1.3",
+ "csso": "^4.2.0",
+ "picocolors": "^1.0.0",
+ "stable": "^0.1.8"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmmirror.com/commander/download/commander-7.2.0.tgz",
+ "integrity": "sha1-o2y1fQtQHOEI5NIFWaFQo5HZerc=",
+ "dev": true
+ }
+ }
+ },
+ "swagger-schema-official": {
+ "version": "2.0.0-bab6bed",
+ "resolved": "https://registry.npm.taobao.org/swagger-schema-official/download/swagger-schema-official-2.0.0-bab6bed.tgz",
+ "integrity": "sha1-cAcEaNbSl3ylI3suUZyn0Gouo/0=",
+ "dev": true
+ },
+ "swagger-typescript-api": {
+ "version": "9.3.1",
+ "resolved": "https://registry.npmmirror.com/swagger-typescript-api/download/swagger-typescript-api-9.3.1.tgz",
+ "integrity": "sha1-B986qOg6OJc1am6CDoi4NIgwqms=",
+ "dev": true,
+ "requires": {
+ "@types/swagger-schema-official": "2.0.21",
+ "axios": "^0.21.4",
+ "commander": "^6.2.1",
+ "cosmiconfig": "^7.0.0",
+ "eta": "^1.12.1",
+ "js-yaml": "^4.0.0",
+ "lodash": "^4.17.21",
+ "make-dir": "^3.1.0",
+ "nanoid": "^3.1.22",
+ "node-emoji": "^1.10.0",
+ "prettier": "^2.2.1",
+ "swagger-schema-official": "2.0.0-bab6bed",
+ "swagger2openapi": "^7.0.5",
+ "typescript": "^4.2.4"
+ },
+ "dependencies": {
+ "argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.nlark.com/argparse/download/argparse-2.0.1.tgz",
+ "integrity": "sha1-JG9Q88p4oyQPbJl+ipvR6sSeSzg=",
+ "dev": true
+ },
+ "commander": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmmirror.com/commander/download/commander-6.2.1.tgz",
+ "integrity": "sha1-B5LraC37wyWZm7K4T93duhEKxzw=",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npm.taobao.org/js-yaml/download/js-yaml-4.1.0.tgz?cache=0&sync_timestamp=1618435004368&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-yaml%2Fdownload%2Fjs-yaml-4.1.0.tgz",
+ "integrity": "sha1-wftl+PUBeQHN0slRhkuhhFihBgI=",
+ "dev": true,
+ "requires": {
+ "argparse": "^2.0.1"
+ }
+ }
+ }
+ },
+ "swagger2openapi": {
+ "version": "7.0.8",
+ "resolved": "https://registry.nlark.com/swagger2openapi/download/swagger2openapi-7.0.8.tgz",
+ "integrity": "sha1-EsiNXed2yxy7p1iZSTD0CtCvrFk=",
+ "dev": true,
+ "requires": {
+ "call-me-maybe": "^1.0.1",
+ "node-fetch": "^2.6.1",
+ "node-fetch-h2": "^2.3.0",
+ "node-readfiles": "^0.2.0",
+ "oas-kit-common": "^1.0.8",
+ "oas-resolver": "^2.5.6",
+ "oas-schema-walker": "^1.1.5",
+ "oas-validator": "^5.0.8",
+ "reftools": "^1.1.9",
+ "yaml": "^1.10.0",
+ "yargs": "^17.0.1"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz",
+ "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "cliui": {
+ "version": "7.0.4",
+ "resolved": "https://registry.nlark.com/cliui/download/cliui-7.0.4.tgz",
+ "integrity": "sha1-oCZe5lVHb8gHrqnfPfjfd4OAi08=",
+ "dev": true,
+ "requires": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
+ "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
+ "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
+ "dev": true
+ },
+ "wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.nlark.com/wrap-ansi/download/wrap-ansi-7.0.0.tgz?cache=0&sync_timestamp=1631557327268&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwrap-ansi%2Fdownload%2Fwrap-ansi-7.0.0.tgz",
+ "integrity": "sha1-Z+FFz/UQpqaYS98RUpEdadLrnkM=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npm.taobao.org/y18n/download/y18n-5.0.8.tgz?cache=0&sync_timestamp=1617822684820&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fy18n%2Fdownload%2Fy18n-5.0.8.tgz",
+ "integrity": "sha1-f0k00PfKjFb5UxSTndzS3ZHOHVU=",
+ "dev": true
+ },
+ "yargs": {
+ "version": "17.2.1",
+ "resolved": "https://registry.npmmirror.com/yargs/download/yargs-17.2.1.tgz",
+ "integrity": "sha1-4slbl5ag4ffzv0QnhjtC4EGBkeo=",
+ "dev": true,
+ "requires": {
+ "cliui": "^7.0.2",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.0",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^20.2.2"
+ }
+ },
+ "yargs-parser": {
+ "version": "20.2.9",
+ "resolved": "https://registry.npmmirror.com/yargs-parser/download/yargs-parser-20.2.9.tgz?cache=0&sync_timestamp=1637031053426&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fyargs-parser%2Fdownload%2Fyargs-parser-20.2.9.tgz",
+ "integrity": "sha1-LrfcOwKJcY/ClfNidThFxBoMlO4=",
+ "dev": true
+ }
+ }
+ },
+ "symbol-observable": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/symbol-observable/download/symbol-observable-4.0.0.tgz?cache=0&sync_timestamp=1618451954701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsymbol-observable%2Fdownload%2Fsymbol-observable-4.0.0.tgz",
+ "integrity": "sha1-W0JfGSJ56H8vm5N6yFQNGYSzkgU=",
+ "dev": true
+ },
+ "table": {
+ "version": "6.7.3",
+ "resolved": "https://registry.npmmirror.com/table/download/table-6.7.3.tgz?cache=0&sync_timestamp=1636037112686&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ftable%2Fdownload%2Ftable-6.7.3.tgz",
+ "integrity": "sha1-JVOIQ5cVpzg5G9LuTLyomk0Fqbc=",
+ "dev": true,
+ "requires": {
+ "ajv": "^8.0.1",
+ "lodash.truncate": "^4.4.2",
+ "slice-ansi": "^4.0.0",
+ "string-width": "^4.2.3",
+ "strip-ansi": "^6.0.1"
+ }
+ },
+ "tapable": {
+ "version": "2.2.1",
+ "resolved": "https://registry.nlark.com/tapable/download/tapable-2.2.1.tgz",
+ "integrity": "sha1-GWenPvQGCoLxKrlq+G1S/bdu7KA=",
+ "dev": true
+ },
+ "tar": {
+ "version": "6.1.11",
+ "resolved": "https://registry.nlark.com/tar/download/tar-6.1.11.tgz",
+ "integrity": "sha1-Z2CjjwA6+hsv/Q/+npq70Oqz1iE=",
+ "dev": true,
+ "requires": {
+ "chownr": "^2.0.0",
+ "fs-minipass": "^2.0.0",
+ "minipass": "^3.0.0",
+ "minizlib": "^2.1.1",
+ "mkdirp": "^1.0.3",
+ "yallist": "^4.0.0"
+ }
+ },
+ "temp": {
+ "version": "0.9.4",
+ "resolved": "https://registry.npm.taobao.org/temp/download/temp-0.9.4.tgz",
+ "integrity": "sha1-zSCoWAy2NjXQ5OnUvZidRChudiA=",
+ "dev": true,
+ "requires": {
+ "mkdirp": "^0.5.1",
+ "rimraf": "~2.6.2"
+ },
+ "dependencies": {
+ "mkdirp": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmmirror.com/mkdirp/download/mkdirp-0.5.5.tgz",
+ "integrity": "sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.5"
+ }
+ },
+ "rimraf": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.6.3.tgz",
+ "integrity": "sha1-stEE/g2Psnz54KHNqCYt04M8bKs=",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ }
+ }
+ },
+ "terser": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmmirror.com/terser/download/terser-5.7.1.tgz?cache=0&sync_timestamp=1636988182324&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fterser%2Fdownload%2Fterser-5.7.1.tgz",
+ "integrity": "sha1-LcemEAm2a7Y4MFyyqCR2OxFr94Q=",
+ "dev": true,
+ "requires": {
+ "commander": "^2.20.0",
+ "source-map": "~0.7.2",
+ "source-map-support": "~0.5.19"
+ }
+ },
+ "terser-webpack-plugin": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmmirror.com/terser-webpack-plugin/download/terser-webpack-plugin-5.1.4.tgz?cache=0&sync_timestamp=1636385901001&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-5.1.4.tgz",
+ "integrity": "sha1-w2nPikeqmSK9DYqU/j09oRp2eKE=",
+ "dev": true,
+ "requires": {
+ "jest-worker": "^27.0.2",
+ "p-limit": "^3.1.0",
+ "schema-utils": "^3.0.0",
+ "serialize-javascript": "^6.0.0",
+ "source-map": "^0.6.1",
+ "terser": "^5.7.0"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmmirror.com/ajv/download/ajv-6.12.6.tgz?cache=0&sync_timestamp=1637522259668&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fajv%2Fdownload%2Fajv-6.12.6.tgz",
+ "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=",
+ "dev": true
+ },
+ "p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.nlark.com/p-limit/download/p-limit-3.1.0.tgz?cache=0&sync_timestamp=1628812766275&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fp-limit%2Fdownload%2Fp-limit-3.1.0.tgz",
+ "integrity": "sha1-4drMvnjQ0TiMoYxk/qOOPlfjcGs=",
+ "dev": true,
+ "requires": {
+ "yocto-queue": "^0.1.0"
+ }
+ },
+ "schema-utils": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmmirror.com/schema-utils/download/schema-utils-3.1.1.tgz?cache=0&sync_timestamp=1637075888461&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fschema-utils%2Fdownload%2Fschema-utils-3.1.1.tgz",
+ "integrity": "sha1-vHTEtraZXB2I92qLd76nIZ4MgoE=",
+ "dev": true,
+ "requires": {
+ "@types/json-schema": "^7.0.8",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npm.taobao.org/text-table/download/text-table-0.2.0.tgz",
+ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
+ "dev": true
+ },
+ "through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npm.taobao.org/through/download/through-2.3.8.tgz",
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
+ "dev": true
+ },
+ "thunky": {
+ "version": "1.1.0",
+ "resolved": "https://registry.nlark.com/thunky/download/thunky-1.1.0.tgz",
+ "integrity": "sha1-Wrr3FKlAXbBQRzK7zNLO3Z75U30=",
+ "dev": true
+ },
+ "timsort": {
+ "version": "0.3.0",
+ "resolved": "https://registry.nlark.com/timsort/download/timsort-0.3.0.tgz",
+ "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
+ "dev": true
+ },
+ "tmp": {
+ "version": "0.0.33",
+ "resolved": "https://registry.nlark.com/tmp/download/tmp-0.0.33.tgz",
+ "integrity": "sha1-bTQzWIl2jSGyvNoKonfO07G/rfk=",
+ "dev": true,
+ "requires": {
+ "os-tmpdir": "~1.0.2"
+ }
+ },
+ "to-fast-properties": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/to-fast-properties/download/to-fast-properties-2.0.0.tgz",
+ "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
+ "dev": true
+ },
+ "to-object-path": {
+ "version": "0.3.0",
+ "resolved": "https://registry.nlark.com/to-object-path/download/to-object-path-0.3.0.tgz",
+ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "to-regex": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npm.taobao.org/to-regex/download/to-regex-3.0.2.tgz",
+ "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=",
+ "dev": true,
+ "requires": {
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "regex-not": "^1.0.2",
+ "safe-regex": "^1.1.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.nlark.com/to-regex-range/download/to-regex-range-5.0.1.tgz",
+ "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ },
+ "toidentifier": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/toidentifier/download/toidentifier-1.0.0.tgz?cache=0&sync_timestamp=1636938489272&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ftoidentifier%2Fdownload%2Ftoidentifier-1.0.0.tgz",
+ "integrity": "sha1-fhvjRw8ed5SLxD2Uo8j013UrpVM=",
+ "dev": true
+ },
+ "topojson-client": {
+ "version": "3.1.0",
+ "resolved": "https://registry.nlark.com/topojson-client/download/topojson-client-3.1.0.tgz",
+ "integrity": "sha1-Iuix7QiiuSL+60r29Ttu8JpGe5k=",
+ "requires": {
+ "commander": "2"
+ }
+ },
+ "tough-cookie": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.5.0.tgz",
+ "integrity": "sha1-zZ+yoKodWhK0c72fuW+j3P9lreI=",
+ "dev": true,
+ "requires": {
+ "psl": "^1.1.28",
+ "punycode": "^2.1.1"
+ }
+ },
+ "tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmmirror.com/tr46/download/tr46-0.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ftr46%2Fdownload%2Ftr46-0.0.3.tgz",
+ "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=",
+ "dev": true
+ },
+ "tree-kill": {
+ "version": "1.2.2",
+ "resolved": "https://registry.nlark.com/tree-kill/download/tree-kill-1.2.2.tgz",
+ "integrity": "sha1-TKCakJLIi3OnzcXooBtQeweQoMw=",
+ "dev": true
+ },
+ "trim": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npm.taobao.org/trim/download/trim-0.0.1.tgz",
+ "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=",
+ "dev": true
+ },
+ "trim-newlines": {
+ "version": "3.0.1",
+ "resolved": "https://registry.nlark.com/trim-newlines/download/trim-newlines-3.0.1.tgz?cache=0&sync_timestamp=1623341510447&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftrim-newlines%2Fdownload%2Ftrim-newlines-3.0.1.tgz",
+ "integrity": "sha1-Jgpdli2LdSQlsy86fbDcrNF2wUQ=",
+ "dev": true
+ },
+ "trim-trailing-lines": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npm.taobao.org/trim-trailing-lines/download/trim-trailing-lines-1.1.4.tgz",
+ "integrity": "sha1-vUq77HzIgEYvELLItc4djR7HwsA=",
+ "dev": true
+ },
+ "trough": {
+ "version": "1.0.5",
+ "resolved": "https://registry.nlark.com/trough/download/trough-1.0.5.tgz?cache=0&sync_timestamp=1625401006146&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftrough%2Fdownload%2Ftrough-1.0.5.tgz",
+ "integrity": "sha1-uLY5zvrX0LsqvTfUM/+Ck++l9AY=",
+ "dev": true
+ },
+ "ts-node": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmmirror.com/ts-node/download/ts-node-8.3.0.tgz",
+ "integrity": "sha1-5AWWGEETcZJKH7XzsSWRXzJO+1c=",
+ "dev": true,
+ "requires": {
+ "arg": "^4.1.0",
+ "diff": "^4.0.1",
+ "make-error": "^1.1.1",
+ "source-map-support": "^0.5.6",
+ "yn": "^3.0.0"
+ }
+ },
+ "tsconfig-paths": {
+ "version": "3.12.0",
+ "resolved": "https://registry.npmmirror.com/tsconfig-paths/download/tsconfig-paths-3.12.0.tgz",
+ "integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==",
+ "dev": true,
+ "requires": {
+ "@types/json5": "^0.0.29",
+ "json5": "^1.0.1",
+ "minimist": "^1.2.0",
+ "strip-bom": "^3.0.0"
+ },
+ "dependencies": {
+ "json5": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz",
+ "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.0"
+ }
+ }
+ }
+ },
+ "tslib": {
+ "version": "2.3.1",
+ "resolved": "https://registry.nlark.com/tslib/download/tslib-2.3.1.tgz?cache=0&sync_timestamp=1628722556410&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftslib%2Fdownload%2Ftslib-2.3.1.tgz",
+ "integrity": "sha1-6KM1rdXOrlGqJh0ypJAVjvBC7wE="
+ },
+ "tsutils": {
+ "version": "3.21.0",
+ "resolved": "https://registry.npm.taobao.org/tsutils/download/tsutils-3.21.0.tgz?cache=0&sync_timestamp=1615138426726&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftsutils%2Fdownload%2Ftsutils-3.21.0.tgz",
+ "integrity": "sha1-tIcX05TOpsHglpg+7Vjp1hcVtiM=",
+ "dev": true,
+ "requires": {
+ "tslib": "^1.8.1"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.nlark.com/tslib/download/tslib-1.14.1.tgz?cache=0&sync_timestamp=1628722556410&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftslib%2Fdownload%2Ftslib-1.14.1.tgz",
+ "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=",
+ "dev": true
+ }
+ }
+ },
+ "tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "tweetnacl": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz",
+ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
+ "dev": true
+ },
+ "type-check": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npm.taobao.org/type-check/download/type-check-0.4.0.tgz",
+ "integrity": "sha1-B7ggO/pwVsBlcFDjzNLDdzC6uPE=",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "^1.2.1"
+ }
+ },
+ "type-fest": {
+ "version": "0.21.3",
+ "resolved": "https://registry.npmmirror.com/type-fest/download/type-fest-0.21.3.tgz?cache=0&sync_timestamp=1637149878210&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ftype-fest%2Fdownload%2Ftype-fest-0.21.3.tgz",
+ "integrity": "sha1-0mCiSwGYQ24TP6JqUkptZfo7Ljc=",
+ "dev": true
+ },
+ "type-is": {
+ "version": "1.6.18",
+ "resolved": "https://registry.npm.taobao.org/type-is/download/type-is-1.6.18.tgz",
+ "integrity": "sha1-TlUs0F3wlGfcvE73Od6J8s83wTE=",
+ "dev": true,
+ "requires": {
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.24"
+ }
+ },
+ "typedarray-to-buffer": {
+ "version": "3.1.5",
+ "resolved": "https://registry.nlark.com/typedarray-to-buffer/download/typedarray-to-buffer-3.1.5.tgz",
+ "integrity": "sha1-qX7nqf9CaRufeD/xvFES/j/KkIA=",
+ "dev": true,
+ "requires": {
+ "is-typedarray": "^1.0.0"
+ }
+ },
+ "typescript": {
+ "version": "4.3.5",
+ "resolved": "https://registry.npmmirror.com/typescript/download/typescript-4.3.5.tgz",
+ "integrity": "sha1-TRw3zBbok5c8RaBohrcRMjTxGfQ=",
+ "dev": true
+ },
+ "ua-parser-js": {
+ "version": "0.7.31",
+ "resolved": "https://registry.npmmirror.com/ua-parser-js/download/ua-parser-js-0.7.31.tgz",
+ "integrity": "sha1-ZJplaxkd/6tPIdXgU+J8oXy/9cY=",
+ "dev": true
+ },
+ "unbox-primitive": {
+ "version": "1.0.1",
+ "resolved": "https://registry.nlark.com/unbox-primitive/download/unbox-primitive-1.0.1.tgz",
+ "integrity": "sha1-CF4hViXsMWJXTciFmr7nilmxRHE=",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1",
+ "has-bigints": "^1.0.1",
+ "has-symbols": "^1.0.2",
+ "which-boxed-primitive": "^1.0.2"
+ }
+ },
+ "unherit": {
+ "version": "1.1.3",
+ "resolved": "https://registry.nlark.com/unherit/download/unherit-1.1.3.tgz?cache=0&sync_timestamp=1626423513229&other_urls=https%3A%2F%2Fregistry.nlark.com%2Funherit%2Fdownload%2Funherit-1.1.3.tgz",
+ "integrity": "sha1-bJtQPytBsmIzDIDpHIYUq9qmnCI=",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.0",
+ "xtend": "^4.0.0"
+ }
+ },
+ "unicode-canonical-property-names-ecmascript": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/unicode-canonical-property-names-ecmascript/download/unicode-canonical-property-names-ecmascript-2.0.0.tgz",
+ "integrity": "sha1-MBrNxSVjFnDTn2FG4Od/9rvevdw=",
+ "dev": true
+ },
+ "unicode-match-property-ecmascript": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/unicode-match-property-ecmascript/download/unicode-match-property-ecmascript-2.0.0.tgz?cache=0&sync_timestamp=1631618696521&other_urls=https%3A%2F%2Fregistry.nlark.com%2Funicode-match-property-ecmascript%2Fdownload%2Funicode-match-property-ecmascript-2.0.0.tgz",
+ "integrity": "sha1-VP0W4OyxZ88Ezx91a9zJLrp5dsM=",
+ "dev": true,
+ "requires": {
+ "unicode-canonical-property-names-ecmascript": "^2.0.0",
+ "unicode-property-aliases-ecmascript": "^2.0.0"
+ }
+ },
+ "unicode-match-property-value-ecmascript": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/unicode-match-property-value-ecmascript/download/unicode-match-property-value-ecmascript-2.0.0.tgz",
+ "integrity": "sha1-GgGqVyR8FMVouJd1pUk4eIGJpxQ=",
+ "dev": true
+ },
+ "unicode-property-aliases-ecmascript": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/unicode-property-aliases-ecmascript/download/unicode-property-aliases-ecmascript-2.0.0.tgz?cache=0&sync_timestamp=1631609457921&other_urls=https%3A%2F%2Fregistry.nlark.com%2Funicode-property-aliases-ecmascript%2Fdownload%2Funicode-property-aliases-ecmascript-2.0.0.tgz",
+ "integrity": "sha1-CjbLmlhcT2q9Ua0d7dsoXBZSl8g=",
+ "dev": true
+ },
+ "unified": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmmirror.com/unified/download/unified-9.2.2.tgz",
+ "integrity": "sha1-Z2SaGr/Dq4XSlpUCkCd16wMUaXU=",
+ "dev": true,
+ "requires": {
+ "bail": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-buffer": "^2.0.0",
+ "is-plain-obj": "^2.0.0",
+ "trough": "^1.0.0",
+ "vfile": "^4.0.0"
+ },
+ "dependencies": {
+ "is-buffer": {
+ "version": "2.0.5",
+ "resolved": "https://registry.nlark.com/is-buffer/download/is-buffer-2.0.5.tgz",
+ "integrity": "sha1-68JS5ADSL/jXf6CYiIIaJKZYwZE=",
+ "dev": true
+ },
+ "is-plain-obj": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/is-plain-obj/download/is-plain-obj-2.1.0.tgz?cache=0&sync_timestamp=1618601044820&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-plain-obj%2Fdownload%2Fis-plain-obj-2.1.0.tgz",
+ "integrity": "sha1-ReQuN/zPH0Dajl927iFRWEDAkoc=",
+ "dev": true
+ }
+ }
+ },
+ "union-value": {
+ "version": "1.0.1",
+ "resolved": "https://registry.nlark.com/union-value/download/union-value-1.0.1.tgz",
+ "integrity": "sha1-C2/nuDWuzaYcbqTU8CwUIh4QmEc=",
+ "dev": true,
+ "requires": {
+ "arr-union": "^3.1.0",
+ "get-value": "^2.0.6",
+ "is-extendable": "^0.1.1",
+ "set-value": "^2.0.1"
+ }
+ },
+ "uniq": {
+ "version": "1.0.1",
+ "resolved": "https://registry.nlark.com/uniq/download/uniq-1.0.1.tgz",
+ "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=",
+ "dev": true
+ },
+ "unique-filename": {
+ "version": "1.1.1",
+ "resolved": "https://registry.nlark.com/unique-filename/download/unique-filename-1.1.1.tgz",
+ "integrity": "sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA=",
+ "dev": true,
+ "requires": {
+ "unique-slug": "^2.0.0"
+ }
+ },
+ "unique-slug": {
+ "version": "2.0.2",
+ "resolved": "https://registry.nlark.com/unique-slug/download/unique-slug-2.0.2.tgz",
+ "integrity": "sha1-uqvOkQg/xk6UWw861hPiZPfNTmw=",
+ "dev": true,
+ "requires": {
+ "imurmurhash": "^0.1.4"
+ }
+ },
+ "unist-util-find-all-after": {
+ "version": "3.0.2",
+ "resolved": "https://registry.nlark.com/unist-util-find-all-after/download/unist-util-find-all-after-3.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Funist-util-find-all-after%2Fdownload%2Funist-util-find-all-after-3.0.2.tgz",
+ "integrity": "sha1-/f7NFMW3rqXp7zjV4NX3dO61YfY=",
+ "dev": true,
+ "requires": {
+ "unist-util-is": "^4.0.0"
+ }
+ },
+ "unist-util-is": {
+ "version": "4.1.0",
+ "resolved": "https://registry.nlark.com/unist-util-is/download/unist-util-is-4.1.0.tgz?cache=0&sync_timestamp=1626874922677&other_urls=https%3A%2F%2Fregistry.nlark.com%2Funist-util-is%2Fdownload%2Funist-util-is-4.1.0.tgz",
+ "integrity": "sha1-l25fRip6Xec9lLcGusG5BnG1d5c=",
+ "dev": true
+ },
+ "unist-util-remove-position": {
+ "version": "1.1.4",
+ "resolved": "https://registry.nlark.com/unist-util-remove-position/download/unist-util-remove-position-1.1.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Funist-util-remove-position%2Fdownload%2Funist-util-remove-position-1.1.4.tgz",
+ "integrity": "sha1-7ANzSLYQLIl3A+7m0ClMpHVaICA=",
+ "dev": true,
+ "requires": {
+ "unist-util-visit": "^1.1.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "2.0.3",
+ "resolved": "https://registry.nlark.com/unist-util-stringify-position/download/unist-util-stringify-position-2.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Funist-util-stringify-position%2Fdownload%2Funist-util-stringify-position-2.0.3.tgz",
+ "integrity": "sha1-zOO/oc34W6c3XR1bF73Eytqb2do=",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^2.0.2"
+ }
+ },
+ "unist-util-visit": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmmirror.com/unist-util-visit/download/unist-util-visit-1.4.1.tgz?cache=0&sync_timestamp=1632405298952&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Funist-util-visit%2Fdownload%2Funist-util-visit-1.4.1.tgz",
+ "integrity": "sha1-RySqqEhububibX/zyGhZYNVgseM=",
+ "dev": true,
+ "requires": {
+ "unist-util-visit-parents": "^2.0.0"
+ }
+ },
+ "unist-util-visit-parents": {
+ "version": "2.1.2",
+ "resolved": "https://registry.nlark.com/unist-util-visit-parents/download/unist-util-visit-parents-2.1.2.tgz?cache=0&sync_timestamp=1632208991791&other_urls=https%3A%2F%2Fregistry.nlark.com%2Funist-util-visit-parents%2Fdownload%2Funist-util-visit-parents-2.1.2.tgz",
+ "integrity": "sha1-JeQ+VTEhZvM0jK5nQ1iHgdESwek=",
+ "dev": true,
+ "requires": {
+ "unist-util-is": "^3.0.0"
+ },
+ "dependencies": {
+ "unist-util-is": {
+ "version": "3.0.0",
+ "resolved": "https://registry.nlark.com/unist-util-is/download/unist-util-is-3.0.0.tgz?cache=0&sync_timestamp=1626874922677&other_urls=https%3A%2F%2Fregistry.nlark.com%2Funist-util-is%2Fdownload%2Funist-util-is-3.0.0.tgz",
+ "integrity": "sha1-2ehDgcJGjoJinkpb6dfQWi3TJM0=",
+ "dev": true
+ }
+ }
+ },
+ "universalify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.nlark.com/universalify/download/universalify-2.0.0.tgz",
+ "integrity": "sha1-daSYTv7cSwiXXFrrc/Uw0C3yVxc=",
+ "dev": true
+ },
+ "unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/unpipe/download/unpipe-1.0.0.tgz",
+ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
+ "dev": true
+ },
+ "unset-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.nlark.com/unset-value/download/unset-value-1.0.0.tgz",
+ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
+ "dev": true,
+ "requires": {
+ "has-value": "^0.3.1",
+ "isobject": "^3.0.0"
+ },
+ "dependencies": {
+ "has-value": {
+ "version": "0.3.1",
+ "resolved": "https://registry.nlark.com/has-value/download/has-value-0.3.1.tgz",
+ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
+ "dev": true,
+ "requires": {
+ "get-value": "^2.0.3",
+ "has-values": "^0.1.4",
+ "isobject": "^2.0.0"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz",
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+ "dev": true,
+ "requires": {
+ "isarray": "1.0.0"
+ }
+ }
+ }
+ },
+ "has-values": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npm.taobao.org/has-values/download/has-values-0.1.4.tgz",
+ "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
+ "dev": true
+ }
+ }
+ },
+ "upath": {
+ "version": "1.2.0",
+ "resolved": "https://registry.nlark.com/upath/download/upath-1.2.0.tgz",
+ "integrity": "sha1-j2bbzVWog6za5ECK+LA1pQRMGJQ=",
+ "dev": true
+ },
+ "uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npm.taobao.org/uri-js/download/uri-js-4.4.1.tgz",
+ "integrity": "sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34=",
+ "requires": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "urix": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmmirror.com/urix/download/urix-0.1.0.tgz",
+ "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
+ "dev": true
+ },
+ "url": {
+ "version": "0.11.0",
+ "resolved": "https://registry.nlark.com/url/download/url-0.11.0.tgz?cache=0&sync_timestamp=1618847135337&other_urls=https%3A%2F%2Fregistry.nlark.com%2Furl%2Fdownload%2Furl-0.11.0.tgz",
+ "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
+ "dev": true,
+ "requires": {
+ "punycode": "1.3.2",
+ "querystring": "0.2.0"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.3.2.tgz",
+ "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=",
+ "dev": true
+ }
+ }
+ },
+ "url-parse": {
+ "version": "1.5.3",
+ "resolved": "https://registry.nlark.com/url-parse/download/url-parse-1.5.3.tgz",
+ "integrity": "sha1-ccEwPTj7Zjmt4YPCmSyMwGht+GI=",
+ "dev": true,
+ "requires": {
+ "querystringify": "^2.1.1",
+ "requires-port": "^1.0.0"
+ }
+ },
+ "use": {
+ "version": "3.1.1",
+ "resolved": "https://registry.nlark.com/use/download/use-3.1.1.tgz",
+ "integrity": "sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8=",
+ "dev": true
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.nlark.com/util-deprecate/download/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+ },
+ "utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/utils-merge/download/utils-merge-1.0.1.tgz",
+ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
+ "dev": true
+ },
+ "uuid": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmmirror.com/uuid/download/uuid-3.4.0.tgz",
+ "integrity": "sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=",
+ "dev": true
+ },
+ "v8-compile-cache": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npm.taobao.org/v8-compile-cache/download/v8-compile-cache-2.3.0.tgz?cache=0&sync_timestamp=1614993639567&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fv8-compile-cache%2Fdownload%2Fv8-compile-cache-2.3.0.tgz",
+ "integrity": "sha1-LeGWGMZtwkfc+2+ZM4A12CRaLO4=",
+ "dev": true
+ },
+ "validate-npm-package-license": {
+ "version": "3.0.4",
+ "resolved": "https://registry.nlark.com/validate-npm-package-license/download/validate-npm-package-license-3.0.4.tgz",
+ "integrity": "sha1-/JH2uce6FchX9MssXe/uw51PQQo=",
+ "dev": true,
+ "requires": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
+ "validate-npm-package-name": {
+ "version": "3.0.0",
+ "resolved": "https://registry.nlark.com/validate-npm-package-name/download/validate-npm-package-name-3.0.0.tgz",
+ "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=",
+ "dev": true,
+ "requires": {
+ "builtins": "^1.0.3"
+ }
+ },
+ "vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz",
+ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
+ "dev": true
+ },
+ "verror": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmmirror.com/verror/download/verror-1.10.0.tgz?cache=0&sync_timestamp=1635885078723&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fverror%2Fdownload%2Fverror-1.10.0.tgz",
+ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "core-util-is": "1.0.2",
+ "extsprintf": "^1.2.0"
+ },
+ "dependencies": {
+ "core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.nlark.com/core-util-is/download/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+ "dev": true
+ }
+ }
+ },
+ "vfile": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmmirror.com/vfile/download/vfile-4.2.1.tgz",
+ "integrity": "sha1-A/Hc4o/GJcYlvGUUNQ+9sA+p5iQ=",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^2.0.0",
+ "is-buffer": "^2.0.0",
+ "unist-util-stringify-position": "^2.0.0",
+ "vfile-message": "^2.0.0"
+ },
+ "dependencies": {
+ "is-buffer": {
+ "version": "2.0.5",
+ "resolved": "https://registry.nlark.com/is-buffer/download/is-buffer-2.0.5.tgz",
+ "integrity": "sha1-68JS5ADSL/jXf6CYiIIaJKZYwZE=",
+ "dev": true
+ }
+ }
+ },
+ "vfile-location": {
+ "version": "2.0.6",
+ "resolved": "https://registry.nlark.com/vfile-location/download/vfile-location-2.0.6.tgz",
+ "integrity": "sha1-iidPOUEbhxnqVyiALhDZ4N/xUZ4=",
+ "dev": true
+ },
+ "vfile-message": {
+ "version": "2.0.4",
+ "resolved": "https://registry.nlark.com/vfile-message/download/vfile-message-2.0.4.tgz?cache=0&sync_timestamp=1628780833868&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvfile-message%2Fdownload%2Fvfile-message-2.0.4.tgz",
+ "integrity": "sha1-W0O4gXHUCerlhHfRPyPdQdUsNxo=",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^2.0.0",
+ "unist-util-stringify-position": "^2.0.0"
+ }
+ },
+ "void-elements": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npm.taobao.org/void-elements/download/void-elements-2.0.1.tgz",
+ "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=",
+ "dev": true
+ },
+ "watchpack": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmmirror.com/watchpack/download/watchpack-2.3.0.tgz",
+ "integrity": "sha512-MnN0Q1OsvB/GGHETrFeZPQaOelWh/7O+EiFlj8sM9GPjtQkis7k01aAxrg/18kTfoIVcLL+haEVFlXDaSRwKRw==",
+ "dev": true,
+ "requires": {
+ "glob-to-regexp": "^0.4.1",
+ "graceful-fs": "^4.1.2"
+ }
+ },
+ "wbuf": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npm.taobao.org/wbuf/download/wbuf-1.7.3.tgz",
+ "integrity": "sha1-wdjRSTFtPqhShIiVy2oL/oh7h98=",
+ "dev": true,
+ "requires": {
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "wcwidth": {
+ "version": "1.0.1",
+ "resolved": "https://registry.nlark.com/wcwidth/download/wcwidth-1.0.1.tgz",
+ "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=",
+ "dev": true,
+ "requires": {
+ "defaults": "^1.0.3"
+ }
+ },
+ "webdriver-js-extender": {
+ "version": "2.1.0",
+ "resolved": "https://registry.nlark.com/webdriver-js-extender/download/webdriver-js-extender-2.1.0.tgz",
+ "integrity": "sha1-V9epPADbTMjVVuTT20tdsKgMO7c=",
+ "dev": true,
+ "requires": {
+ "@types/selenium-webdriver": "^3.0.0",
+ "selenium-webdriver": "^3.0.1"
+ }
+ },
+ "webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.nlark.com/webidl-conversions/download/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=",
+ "dev": true
+ },
+ "webpack": {
+ "version": "5.50.0",
+ "resolved": "https://registry.npmmirror.com/webpack/download/webpack-5.50.0.tgz",
+ "integrity": "sha1-VWLXWQKnSetNdRMfVifqw6MZJSc=",
+ "dev": true,
+ "requires": {
+ "@types/eslint-scope": "^3.7.0",
+ "@types/estree": "^0.0.50",
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/wasm-edit": "1.11.1",
+ "@webassemblyjs/wasm-parser": "1.11.1",
+ "acorn": "^8.4.1",
+ "acorn-import-assertions": "^1.7.6",
+ "browserslist": "^4.14.5",
+ "chrome-trace-event": "^1.0.2",
+ "enhanced-resolve": "^5.8.0",
+ "es-module-lexer": "^0.7.1",
+ "eslint-scope": "5.1.1",
+ "events": "^3.2.0",
+ "glob-to-regexp": "^0.4.1",
+ "graceful-fs": "^4.2.4",
+ "json-parse-better-errors": "^1.0.2",
+ "loader-runner": "^4.2.0",
+ "mime-types": "^2.1.27",
+ "neo-async": "^2.6.2",
+ "schema-utils": "^3.1.0",
+ "tapable": "^2.1.1",
+ "terser-webpack-plugin": "^5.1.3",
+ "watchpack": "^2.2.0",
+ "webpack-sources": "^3.2.0"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmmirror.com/ajv/download/ajv-6.12.6.tgz?cache=0&sync_timestamp=1637522259668&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fajv%2Fdownload%2Fajv-6.12.6.tgz",
+ "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=",
+ "dev": true
+ },
+ "schema-utils": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmmirror.com/schema-utils/download/schema-utils-3.1.1.tgz?cache=0&sync_timestamp=1637075888461&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fschema-utils%2Fdownload%2Fschema-utils-3.1.1.tgz",
+ "integrity": "sha1-vHTEtraZXB2I92qLd76nIZ4MgoE=",
+ "dev": true,
+ "requires": {
+ "@types/json-schema": "^7.0.8",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
+ }
+ },
+ "webpack-sources": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmmirror.com/webpack-sources/download/webpack-sources-3.2.2.tgz?cache=0&sync_timestamp=1636982731420&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fwebpack-sources%2Fdownload%2Fwebpack-sources-3.2.2.tgz",
+ "integrity": "sha512-cp5qdmHnu5T8wRg2G3vZZHoJPN14aqQ89SyQ11NpGH5zEMDCclt49rzo+MaRazk7/UeILhAI+/sEtcM+7Fr0nw==",
+ "dev": true
+ }
+ }
+ },
+ "webpack-dev-middleware": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmmirror.com/webpack-dev-middleware/download/webpack-dev-middleware-5.0.0.tgz?cache=0&sync_timestamp=1637165508298&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fwebpack-dev-middleware%2Fdownload%2Fwebpack-dev-middleware-5.0.0.tgz",
+ "integrity": "sha1-Cr6CUnVyDgozmXiupfCwOxQMFYQ=",
+ "dev": true,
+ "requires": {
+ "colorette": "^1.2.2",
+ "mem": "^8.1.1",
+ "memfs": "^3.2.2",
+ "mime-types": "^2.1.31",
+ "range-parser": "^1.2.1",
+ "schema-utils": "^3.0.0"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmmirror.com/ajv/download/ajv-6.12.6.tgz?cache=0&sync_timestamp=1637522259668&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fajv%2Fdownload%2Fajv-6.12.6.tgz",
+ "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=",
+ "dev": true
+ },
+ "schema-utils": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmmirror.com/schema-utils/download/schema-utils-3.1.1.tgz?cache=0&sync_timestamp=1637075888461&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fschema-utils%2Fdownload%2Fschema-utils-3.1.1.tgz",
+ "integrity": "sha1-vHTEtraZXB2I92qLd76nIZ4MgoE=",
+ "dev": true,
+ "requires": {
+ "@types/json-schema": "^7.0.8",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
+ }
+ }
+ }
+ },
+ "webpack-dev-server": {
+ "version": "3.11.2",
+ "resolved": "https://registry.npmmirror.com/webpack-dev-server/download/webpack-dev-server-3.11.2.tgz",
+ "integrity": "sha1-aV687Xakkp8NXef9c/r+GF/jNwg=",
+ "dev": true,
+ "requires": {
+ "ansi-html": "0.0.7",
+ "bonjour": "^3.5.0",
+ "chokidar": "^2.1.8",
+ "compression": "^1.7.4",
+ "connect-history-api-fallback": "^1.6.0",
+ "debug": "^4.1.1",
+ "del": "^4.1.1",
+ "express": "^4.17.1",
+ "html-entities": "^1.3.1",
+ "http-proxy-middleware": "0.19.1",
+ "import-local": "^2.0.0",
+ "internal-ip": "^4.3.0",
+ "ip": "^1.1.5",
+ "is-absolute-url": "^3.0.3",
+ "killable": "^1.0.1",
+ "loglevel": "^1.6.8",
+ "opn": "^5.5.0",
+ "p-retry": "^3.0.1",
+ "portfinder": "^1.0.26",
+ "schema-utils": "^1.0.0",
+ "selfsigned": "^1.10.8",
+ "semver": "^6.3.0",
+ "serve-index": "^1.9.1",
+ "sockjs": "^0.3.21",
+ "sockjs-client": "^1.5.0",
+ "spdy": "^4.0.2",
+ "strip-ansi": "^3.0.1",
+ "supports-color": "^6.1.0",
+ "url": "^0.11.0",
+ "webpack-dev-middleware": "^3.7.2",
+ "webpack-log": "^2.0.0",
+ "ws": "^6.2.1",
+ "yargs": "^13.3.2"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmmirror.com/ajv/download/ajv-6.12.6.tgz?cache=0&sync_timestamp=1637522259668&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fajv%2Fdownload%2Fajv-6.12.6.tgz",
+ "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=",
+ "dev": true,
+ "requires": {
+ "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-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-2.1.1.tgz?cache=0&sync_timestamp=1631634988487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-regex%2Fdownload%2Fansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
+ },
+ "anymatch": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz?cache=0&sync_timestamp=1617747502795&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fanymatch%2Fdownload%2Fanymatch-2.0.0.tgz",
+ "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=",
+ "dev": true,
+ "requires": {
+ "micromatch": "^3.1.4",
+ "normalize-path": "^2.1.1"
+ },
+ "dependencies": {
+ "normalize-path": {
+ "version": "2.1.1",
+ "resolved": "https://registry.nlark.com/normalize-path/download/normalize-path-2.1.1.tgz",
+ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+ "dev": true,
+ "requires": {
+ "remove-trailing-separator": "^1.0.1"
+ }
+ }
+ }
+ },
+ "binary-extensions": {
+ "version": "1.13.1",
+ "resolved": "https://registry.nlark.com/binary-extensions/download/binary-extensions-1.13.1.tgz",
+ "integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=",
+ "dev": true
+ },
+ "braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz",
+ "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=",
+ "dev": true,
+ "requires": {
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "chokidar": {
+ "version": "2.1.8",
+ "resolved": "https://registry.npmmirror.com/chokidar/download/chokidar-2.1.8.tgz",
+ "integrity": "sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc=",
+ "dev": true,
+ "requires": {
+ "anymatch": "^2.0.0",
+ "async-each": "^1.0.1",
+ "braces": "^2.3.2",
+ "fsevents": "^1.2.7",
+ "glob-parent": "^3.1.0",
+ "inherits": "^2.0.3",
+ "is-binary-path": "^1.0.0",
+ "is-glob": "^4.0.0",
+ "normalize-path": "^3.0.0",
+ "path-is-absolute": "^1.0.0",
+ "readdirp": "^2.2.1",
+ "upath": "^1.1.1"
+ }
+ },
+ "fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.nlark.com/fill-range/download/fill-range-4.0.0.tgz",
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "fsevents": {
+ "version": "1.2.13",
+ "resolved": "https://registry.npmmirror.com/fsevents/download/fsevents-1.2.13.tgz",
+ "integrity": "sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg=",
+ "dev": true,
+ "optional": true
+ },
+ "glob-parent": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/glob-parent/download/glob-parent-3.1.0.tgz?cache=0&sync_timestamp=1632953810778&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fglob-parent%2Fdownload%2Fglob-parent-3.1.0.tgz",
+ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+ "dev": true,
+ "requires": {
+ "is-glob": "^3.1.0",
+ "path-dirname": "^1.0.0"
+ },
+ "dependencies": {
+ "is-glob": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/is-glob/download/is-glob-3.1.0.tgz",
+ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^2.1.0"
+ }
+ }
+ }
+ },
+ "is-binary-path": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz",
+ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
+ "dev": true,
+ "requires": {
+ "binary-extensions": "^1.0.0"
+ }
+ },
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.nlark.com/kind-of/download/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.nlark.com/micromatch/download/micromatch-3.1.10.tgz",
+ "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=",
+ "dev": true,
+ "requires": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
+ }
+ },
+ "mime": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmmirror.com/mime/download/mime-2.6.0.tgz",
+ "integrity": "sha1-oqaCqVzU0MsdYlfij4PafjWAA2c=",
+ "dev": true
+ },
+ "mkdirp": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmmirror.com/mkdirp/download/mkdirp-0.5.5.tgz",
+ "integrity": "sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.5"
+ }
+ },
+ "readdirp": {
+ "version": "2.2.1",
+ "resolved": "https://registry.nlark.com/readdirp/download/readdirp-2.2.1.tgz",
+ "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.11",
+ "micromatch": "^3.1.10",
+ "readable-stream": "^2.0.2"
+ }
+ },
+ "schema-utils": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&sync_timestamp=1637075888461&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz",
+ "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.1.0",
+ "ajv-errors": "^1.0.0",
+ "ajv-keywords": "^3.1.0"
+ }
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz",
+ "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1632420562057&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmmirror.com/supports-color/download/supports-color-6.1.0.tgz",
+ "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "2.1.1",
+ "resolved": "https://registry.nlark.com/to-regex-range/download/to-regex-range-2.1.1.tgz",
+ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+ "dev": true,
+ "requires": {
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1"
+ }
+ },
+ "webpack-dev-middleware": {
+ "version": "3.7.3",
+ "resolved": "https://registry.npmmirror.com/webpack-dev-middleware/download/webpack-dev-middleware-3.7.3.tgz?cache=0&sync_timestamp=1637165508298&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fwebpack-dev-middleware%2Fdownload%2Fwebpack-dev-middleware-3.7.3.tgz",
+ "integrity": "sha1-Bjk3KxQyYuK4SrldO5GnWXBhwsU=",
+ "dev": true,
+ "requires": {
+ "memory-fs": "^0.4.1",
+ "mime": "^2.4.4",
+ "mkdirp": "^0.5.1",
+ "range-parser": "^1.2.1",
+ "webpack-log": "^2.0.0"
+ }
+ }
+ }
+ },
+ "webpack-log": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/webpack-log/download/webpack-log-2.0.0.tgz?cache=0&sync_timestamp=1615477439589&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-log%2Fdownload%2Fwebpack-log-2.0.0.tgz",
+ "integrity": "sha1-W3ko4GN1k/EZ0y9iJ8HgrDHhtH8=",
+ "dev": true,
+ "requires": {
+ "ansi-colors": "^3.0.0",
+ "uuid": "^3.3.2"
+ },
+ "dependencies": {
+ "ansi-colors": {
+ "version": "3.2.4",
+ "resolved": "https://registry.nlark.com/ansi-colors/download/ansi-colors-3.2.4.tgz",
+ "integrity": "sha1-46PaS/uubIapwoViXeEkojQCb78=",
+ "dev": true
+ }
+ }
+ },
+ "webpack-merge": {
+ "version": "5.8.0",
+ "resolved": "https://registry.nlark.com/webpack-merge/download/webpack-merge-5.8.0.tgz",
+ "integrity": "sha1-Kznb8ir4d3atdEw5AiNzHTCmj2E=",
+ "dev": true,
+ "requires": {
+ "clone-deep": "^4.0.1",
+ "wildcard": "^2.0.0"
+ }
+ },
+ "webpack-sources": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmmirror.com/webpack-sources/download/webpack-sources-1.4.3.tgz?cache=0&sync_timestamp=1636982731420&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fwebpack-sources%2Fdownload%2Fwebpack-sources-1.4.3.tgz",
+ "integrity": "sha1-7t2OwLko+/HL/plOItLYkPMwqTM=",
+ "dev": true,
+ "requires": {
+ "source-list-map": "^2.0.0",
+ "source-map": "~0.6.1"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+ "dev": true
+ }
+ }
+ },
+ "webpack-subresource-integrity": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmmirror.com/webpack-subresource-integrity/download/webpack-subresource-integrity-1.5.2.tgz",
+ "integrity": "sha1-5AtleNMHLi0kEEl1JJxSxm6adD4=",
+ "dev": true,
+ "requires": {
+ "webpack-sources": "^1.3.0"
+ }
+ },
+ "websocket-driver": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npm.taobao.org/websocket-driver/download/websocket-driver-0.7.4.tgz",
+ "integrity": "sha1-ia1Slbv2S0gKvLox5JU6ynBvV2A=",
+ "dev": true,
+ "requires": {
+ "http-parser-js": ">=0.5.1",
+ "safe-buffer": ">=5.1.0",
+ "websocket-extensions": ">=0.1.1"
+ }
+ },
+ "websocket-extensions": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npm.taobao.org/websocket-extensions/download/websocket-extensions-0.1.4.tgz",
+ "integrity": "sha1-f4RzvIOd/YdgituV1+sHUhFXikI=",
+ "dev": true
+ },
+ "whatwg-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmmirror.com/whatwg-url/download/whatwg-url-5.0.0.tgz?cache=0&sync_timestamp=1634673646149&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fwhatwg-url%2Fdownload%2Fwhatwg-url-5.0.0.tgz",
+ "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=",
+ "dev": true,
+ "requires": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
+ },
+ "which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz",
+ "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ },
+ "which-boxed-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://registry.nlark.com/which-boxed-primitive/download/which-boxed-primitive-1.0.2.tgz",
+ "integrity": "sha1-E3V7yJsgmwSf5dhkMOIc9AqJqOY=",
+ "dev": true,
+ "requires": {
+ "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-module": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/which-module/download/which-module-2.0.0.tgz",
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
+ "dev": true
+ },
+ "wide-align": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmmirror.com/wide-align/download/wide-align-1.1.5.tgz",
+ "integrity": "sha1-3x1MIGhUNp7PPJpImPGyP72dFdM=",
+ "dev": true,
+ "requires": {
+ "string-width": "^1.0.2 || 2 || 3 || 4"
+ }
+ },
+ "wildcard": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/wildcard/download/wildcard-2.0.0.tgz",
+ "integrity": "sha1-p30g5SAMb6qsl55LOq3Hs91/j+w=",
+ "dev": true
+ },
+ "wmf": {
+ "version": "1.0.2",
+ "resolved": "https://registry.nlark.com/wmf/download/wmf-1.0.2.tgz",
+ "integrity": "sha1-fRnWIQcaCMK9xrfmiKnENSmMwto="
+ },
+ "wolfy87-eventemitter": {
+ "version": "5.2.9",
+ "resolved": "https://registry.nlark.com/wolfy87-eventemitter/download/wolfy87-eventemitter-5.2.9.tgz",
+ "integrity": "sha1-6Hn3cLMPu2USqK+7Mww4hZEJnCo="
+ },
+ "word": {
+ "version": "0.3.0",
+ "resolved": "https://registry.nlark.com/word/download/word-0.3.0.tgz",
+ "integrity": "sha1-hUIVfk+OhJ9KNjooiZLUdhLbmWE="
+ },
+ "word-wrap": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npm.taobao.org/word-wrap/download/word-wrap-1.2.3.tgz",
+ "integrity": "sha1-YQY29rH3A4kb00dxzLF/uTtHB5w=",
+ "dev": true
+ },
+ "wrap-ansi": {
+ "version": "5.1.0",
+ "resolved": "https://registry.nlark.com/wrap-ansi/download/wrap-ansi-5.1.0.tgz?cache=0&sync_timestamp=1631557327268&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwrap-ansi%2Fdownload%2Fwrap-ansi-5.1.0.tgz",
+ "integrity": "sha1-H9H2cjXVttD+54EFYAG/tpTAOwk=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.0",
+ "string-width": "^3.0.0",
+ "strip-ansi": "^5.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-4.1.0.tgz?cache=0&sync_timestamp=1631634988487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-regex%2Fdownload%2Fansi-regex-4.1.0.tgz",
+ "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=",
+ "dev": true
+ },
+ "emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmmirror.com/emoji-regex/download/emoji-regex-7.0.3.tgz?cache=0&sync_timestamp=1632751333727&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Femoji-regex%2Fdownload%2Femoji-regex-7.0.3.tgz",
+ "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/string-width/download/string-width-3.1.0.tgz?cache=0&sync_timestamp=1632421013520&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstring-width%2Fdownload%2Fstring-width-3.1.0.tgz",
+ "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1632420562057&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz",
+ "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ }
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.nlark.com/wrappy/download/wrappy-1.0.2.tgz?cache=0&sync_timestamp=1619133505879&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwrappy%2Fdownload%2Fwrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true
+ },
+ "write": {
+ "version": "1.0.3",
+ "resolved": "https://registry.nlark.com/write/download/write-1.0.3.tgz",
+ "integrity": "sha1-CADhRSO5I6OH5BUSPIZWFqrg9cM=",
+ "dev": true,
+ "requires": {
+ "mkdirp": "^0.5.1"
+ },
+ "dependencies": {
+ "mkdirp": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmmirror.com/mkdirp/download/mkdirp-0.5.5.tgz",
+ "integrity": "sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.5"
+ }
+ }
+ }
+ },
+ "write-file-atomic": {
+ "version": "3.0.3",
+ "resolved": "https://registry.nlark.com/write-file-atomic/download/write-file-atomic-3.0.3.tgz?cache=0&sync_timestamp=1618847057132&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwrite-file-atomic%2Fdownload%2Fwrite-file-atomic-3.0.3.tgz",
+ "integrity": "sha1-Vr1cWlxwSBzRnFcb05q5ZaXeVug=",
+ "dev": true,
+ "requires": {
+ "imurmurhash": "^0.1.4",
+ "is-typedarray": "^1.0.0",
+ "signal-exit": "^3.0.2",
+ "typedarray-to-buffer": "^3.1.5"
+ }
+ },
+ "ws": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmmirror.com/ws/download/ws-6.2.2.tgz",
+ "integrity": "sha1-3Vzb1XqZeZFgl2UtePHMX66gwy4=",
+ "dev": true,
+ "requires": {
+ "async-limiter": "~1.0.0"
+ }
+ },
+ "x-is-string": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npm.taobao.org/x-is-string/download/x-is-string-0.1.0.tgz",
+ "integrity": "sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI=",
+ "dev": true
+ },
+ "xlsx": {
+ "version": "0.17.4",
+ "resolved": "https://registry.npmmirror.com/xlsx/download/xlsx-0.17.4.tgz",
+ "integrity": "sha512-9aKt8g9ZLP0CUdBX8L5xnoMDFwSiLI997eQnDThCaqQMYB9AEBIRzblSSNN/ICMGLYIHUO3VKaItcedZJ3ijIg==",
+ "requires": {
+ "adler-32": "~1.2.0",
+ "cfb": "^1.1.4",
+ "codepage": "~1.15.0",
+ "crc-32": "~1.2.0",
+ "ssf": "~0.11.2",
+ "wmf": "~1.0.1",
+ "word": "~0.3.0"
+ }
+ },
+ "xml2js": {
+ "version": "0.4.23",
+ "resolved": "https://registry.npm.taobao.org/xml2js/download/xml2js-0.4.23.tgz",
+ "integrity": "sha1-oMaVFnUkIesqx1juTUzPWIQ+rGY=",
+ "dev": true,
+ "requires": {
+ "sax": ">=0.6.0",
+ "xmlbuilder": "~11.0.0"
+ }
+ },
+ "xmlbuilder": {
+ "version": "11.0.1",
+ "resolved": "https://registry.nlark.com/xmlbuilder/download/xmlbuilder-11.0.1.tgz",
+ "integrity": "sha1-vpuuHIoEbnazESdyY0fQrXACvrM=",
+ "dev": true
+ },
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npm.taobao.org/xtend/download/xtend-4.0.2.tgz",
+ "integrity": "sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q=",
+ "dev": true
+ },
+ "y18n": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npm.taobao.org/y18n/download/y18n-4.0.3.tgz?cache=0&sync_timestamp=1617822684820&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fy18n%2Fdownload%2Fy18n-4.0.3.tgz",
+ "integrity": "sha1-tfJZyCzW4zaSHv17/Yv1YN6e7t8=",
+ "dev": true
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz",
+ "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=",
+ "dev": true
+ },
+ "yaml": {
+ "version": "1.10.2",
+ "resolved": "https://registry.npmmirror.com/yaml/download/yaml-1.10.2.tgz?cache=0&sync_timestamp=1636797216143&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fyaml%2Fdownload%2Fyaml-1.10.2.tgz",
+ "integrity": "sha1-IwHF/78StGfejaIzOkWeKeeSDks=",
+ "dev": true
+ },
+ "yargs": {
+ "version": "13.3.2",
+ "resolved": "https://registry.npmmirror.com/yargs/download/yargs-13.3.2.tgz",
+ "integrity": "sha1-rX/+/sGqWVZayRX4Lcyzipwxot0=",
+ "dev": true,
+ "requires": {
+ "cliui": "^5.0.0",
+ "find-up": "^3.0.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^3.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^13.1.2"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-4.1.0.tgz?cache=0&sync_timestamp=1631634988487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-regex%2Fdownload%2Fansi-regex-4.1.0.tgz",
+ "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=",
+ "dev": true
+ },
+ "emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmmirror.com/emoji-regex/download/emoji-regex-7.0.3.tgz?cache=0&sync_timestamp=1632751333727&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Femoji-regex%2Fdownload%2Femoji-regex-7.0.3.tgz",
+ "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=",
+ "dev": true
+ },
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/find-up/download/find-up-3.0.0.tgz?cache=0&sync_timestamp=1633618766404&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz",
+ "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=",
+ "dev": true,
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.nlark.com/locate-path/download/locate-path-3.0.0.tgz?cache=0&sync_timestamp=1629895724478&other_urls=https%3A%2F%2Fregistry.nlark.com%2Flocate-path%2Fdownload%2Flocate-path-3.0.0.tgz",
+ "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=",
+ "dev": true,
+ "requires": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.nlark.com/p-locate/download/p-locate-3.0.0.tgz",
+ "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.nlark.com/path-exists/download/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/string-width/download/string-width-3.1.0.tgz?cache=0&sync_timestamp=1632421013520&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstring-width%2Fdownload%2Fstring-width-3.1.0.tgz",
+ "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1632420562057&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz",
+ "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ }
+ }
+ },
+ "yargs-parser": {
+ "version": "13.1.2",
+ "resolved": "https://registry.npmmirror.com/yargs-parser/download/yargs-parser-13.1.2.tgz?cache=0&sync_timestamp=1637031053426&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fyargs-parser%2Fdownload%2Fyargs-parser-13.1.2.tgz",
+ "integrity": "sha1-Ew8JcC667vJlDVTObj5XBvek+zg=",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
+ },
+ "yn": {
+ "version": "3.1.1",
+ "resolved": "https://registry.nlark.com/yn/download/yn-3.1.1.tgz",
+ "integrity": "sha1-HodAGgnXZ8HV6rJqbkwYUYLS61A=",
+ "dev": true
+ },
+ "yocto-queue": {
+ "version": "0.1.0",
+ "resolved": "https://registry.nlark.com/yocto-queue/download/yocto-queue-0.1.0.tgz",
+ "integrity": "sha1-ApTrPe4FAo0x7hpfosVWpqrxChs=",
+ "dev": true
+ },
+ "zone.js": {
+ "version": "0.11.4",
+ "resolved": "https://registry.npmmirror.com/zone.js/download/zone.js-0.11.4.tgz",
+ "integrity": "sha1-D3Dc9quoD2mK9XNcuyV5aTlugCU=",
+ "requires": {
+ "tslib": "^2.0.0"
+ }
+ },
+ "zrender": {
+ "version": "5.2.1",
+ "resolved": "https://registry.nlark.com/zrender/download/zrender-5.2.1.tgz",
+ "integrity": "sha1-X0u9qRW6bUErCxncJDG+qtBUF7s=",
+ "requires": {
+ "tslib": "2.3.0"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.3.0",
+ "resolved": "https://registry.nlark.com/tslib/download/tslib-2.3.0.tgz?cache=0&sync_timestamp=1628722556410&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftslib%2Fdownload%2Ftslib-2.3.0.tgz",
+ "integrity": "sha1-gDuM2rPhK6WBpMpByIObuw2ssJ4="
+ }
+ }
+ },
+ "zwitch": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npm.taobao.org/zwitch/download/zwitch-1.0.5.tgz?cache=0&sync_timestamp=1617357623494&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fzwitch%2Fdownload%2Fzwitch-1.0.5.tgz",
+ "integrity": "sha1-0R1zgf/tFrdC9q97PyI9XNn+mSA=",
+ "dev": true
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 00000000..9f030bab
--- /dev/null
+++ b/package.json
@@ -0,0 +1,135 @@
+{
+ "name": "ng-alain-pro",
+ "version": "0.0.0",
+ "description": "Ng-alain business theme, ng-zorro-antd admin panel front-end framework",
+ "author": "cipchk ",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/ng-alain/ng-alain.git"
+ },
+ "homepage": "https://e.ng-alain.com/theme/pro",
+ "scripts": {
+ "ng-high-memory": "node --max_old_space_size=8000 ./node_modules/@angular/cli/bin/ng",
+ "ng": "ng",
+ "start": "ng s -o",
+ "hmr": "ng s -o --hmr",
+ "build": "npm run ng-high-memory build",
+ "analyze": "npm run ng-high-memory build -- --source-map",
+ "analyze:view": "source-map-explorer dist/**/*.js",
+ "lint": "npm run lint:ts && npm run lint:style",
+ "lint:ts": "ng lint --fix",
+ "lint:style": "stylelint \"src/**/*.less\" --syntax less --fix",
+ "e2e": "ng e2e",
+ "test": "ng test --watch",
+ "test-coverage": "ng test --code-coverage --watch=false",
+ "color-less": "ng-alain-plugin-theme -t=colorLess",
+ "theme": "ng-alain-plugin-theme -t=themeCss",
+ "icon": "ng g ng-alain:plugin icon",
+ "prepare": "husky install"
+ },
+ "dependencies": {
+ "@agm/core": "^1.1.0",
+ "@angular/animations": "~12.2.0",
+ "@angular/common": "~12.2.0",
+ "@angular/compiler": "~12.2.0",
+ "@angular/core": "~12.2.0",
+ "@angular/forms": "~12.2.0",
+ "@angular/platform-browser": "~12.2.0",
+ "@angular/platform-browser-dynamic": "~12.2.0",
+ "@angular/router": "~12.2.0",
+ "@delon/abc": "^12.3.0",
+ "@delon/acl": "^12.3.0",
+ "@delon/auth": "^12.3.0",
+ "@delon/cache": "^12.3.0",
+ "@delon/chart": "^12.3.0",
+ "@delon/form": "^12.3.0",
+ "@delon/mock": "^12.3.0",
+ "@delon/theme": "^12.3.0",
+ "@delon/util": "^12.3.0",
+ "@fullcalendar/core": "^5.9.0",
+ "@fullcalendar/daygrid": "^5.9.0",
+ "@fullcalendar/interaction": "^5.9.0",
+ "@fullcalendar/list": "^5.9.0",
+ "@fullcalendar/timegrid": "^5.9.0",
+ "@swimlane/ngx-charts": "^18.0.1",
+ "ajv": "^8.6.2",
+ "angular-baidu-maps": "^12.0.0",
+ "file-saver": "^2.0.5",
+ "js-base64": "^3.6.1",
+ "masonry-layout": "^4.2.2",
+ "ng-gallery": "^5.0.0",
+ "ng-zorro-antd": "^12.0.1",
+ "ngx-tinymce": "^12.0.0",
+ "ngx-trend": "^7.0.0",
+ "perfect-scrollbar": "^1.5.2",
+ "quill": "^1.3.7",
+ "quill-image-resize-module": "^3.0.0",
+ "rxjs": "~6.6.0",
+ "screenfull": "^5.1.0",
+ "tslib": "^2.3.0",
+ "zone.js": "~0.11.4"
+ },
+ "devDependencies": {
+ "@angular-devkit/build-angular": "~12.2.0",
+ "@angular/cli": "~12.2.0",
+ "@angular/compiler-cli": "~12.2.0",
+ "@types/jasmine": "~3.8.0",
+ "@types/node": "^12.11.1",
+ "jasmine-core": "~3.8.0",
+ "karma": "~6.3.0",
+ "karma-chrome-launcher": "~3.1.0",
+ "karma-coverage": "~2.0.3",
+ "karma-jasmine": "~4.0.0",
+ "karma-jasmine-html-reporter": "~1.7.0",
+ "typescript": "~4.3.5",
+ "@angular-eslint/builder": "~12.3.1",
+ "@angular-eslint/eslint-plugin": "~12.3.1",
+ "@angular-eslint/eslint-plugin-template": "~12.3.1",
+ "@angular-eslint/schematics": "~12.3.1",
+ "@angular-eslint/template-parser": "~12.3.1",
+ "@typescript-eslint/eslint-plugin": "~4.29.2",
+ "@typescript-eslint/parser": "~4.29.2",
+ "eslint": "^7.32.0",
+ "eslint-config-prettier": "~8.3.0",
+ "eslint-plugin-import": "~2.24.1",
+ "eslint-plugin-jsdoc": "~36.0.7",
+ "eslint-plugin-prefer-arrow": "~1.2.3",
+ "eslint-plugin-prettier": "~3.4.1",
+ "@angular/language-service": "~12.2.0",
+ "source-map-explorer": "^2.5.2",
+ "prettier": "^2.2.1",
+ "stylelint": "^13.13.1",
+ "stylelint-config-prettier": "^8.0.2",
+ "stylelint-config-rational-order": "^0.1.2",
+ "stylelint-config-standard": "^22.0.0",
+ "stylelint-declaration-block-no-ignored-properties": "^2.4.0",
+ "stylelint-order": "^4.1.0",
+ "@delon/testing": "^12.3.0",
+ "ng-alain": "^12.3.0",
+ "ng-alain-plugin-theme": "^12.0.0",
+ "ng-alain-sts": "^0.0.1",
+ "@types/jasminewd2": "~2.0.3",
+ "jasmine-spec-reporter": "~5.0.0",
+ "karma-coverage-istanbul-reporter": "~3.0.2",
+ "protractor": "~7.0.0",
+ "ts-node": "~8.3.0",
+ "node-fetch": "^2.6.1",
+ "husky": "^6.0.0",
+ "lint-staged": "^11.1.2",
+ "@types/file-saver": "^2.0.3",
+ "@types/js-base64": "^3.0.0"
+ },
+ "lint-staged": {
+ "(src)/**/*.{html,ts}": [
+ "eslint --fix"
+ ],
+ "(src)/**/*.less": [
+ "stylelint --syntax less --fix"
+ ]
+ },
+ "private": true,
+ "theme": {
+ "name": "pro",
+ "version": "12.0.0"
+ }
+}
diff --git a/proxy.conf.js b/proxy.conf.js
new file mode 100644
index 00000000..50258c5a
--- /dev/null
+++ b/proxy.conf.js
@@ -0,0 +1,17 @@
+/**
+ * For more configuration, please refer to https://angular.io/guide/build#proxying-to-a-backend-server
+ *
+ * 更多配置描述请参考 https://angular.cn/guide/build#proxying-to-a-backend-server
+ *
+ * Note: The proxy is only valid for real requests, Mock does not actually generate requests, so the priority of Mock will be higher than the proxy
+ */
+module.exports = {
+ /**
+ * The following means that all requests are directed to the backend `https://localhost:9000/`
+ */
+ // '/': {
+ // target: 'https://localhost:9000/',
+ // secure: false, // Ignore invalid SSL certificates
+ // changeOrigin: true
+ // }
+};
diff --git a/src/app/app.component.ts b/src/app/app.component.ts
new file mode 100644
index 00000000..e91655e8
--- /dev/null
+++ b/src/app/app.component.ts
@@ -0,0 +1,46 @@
+import { Component, ElementRef, OnInit, Renderer2 } from '@angular/core';
+import { NavigationEnd, NavigationError, RouteConfigLoadStart, Router } from '@angular/router';
+import { TitleService, VERSION as VERSION_ALAIN } from '@delon/theme';
+import { environment } from '@env/environment';
+import { NzModalService } from 'ng-zorro-antd/modal';
+import { VERSION as VERSION_ZORRO } from 'ng-zorro-antd/version';
+
+@Component({
+ selector: 'app-root',
+ template: ` `
+})
+export class AppComponent implements OnInit {
+ constructor(
+ el: ElementRef,
+ renderer: Renderer2,
+ private router: Router,
+ private titleSrv: TitleService,
+ private modalSrv: NzModalService
+ ) {
+ renderer.setAttribute(el.nativeElement, 'ng-alain-version', VERSION_ALAIN.full);
+ renderer.setAttribute(el.nativeElement, 'ng-zorro-version', VERSION_ZORRO.full);
+ }
+
+ ngOnInit(): void {
+ let configLoad = false;
+ this.router.events.subscribe(ev => {
+ if (ev instanceof RouteConfigLoadStart) {
+ configLoad = true;
+ }
+ if (configLoad && ev instanceof NavigationError) {
+ this.modalSrv.confirm({
+ nzTitle: `提醒`,
+ nzContent: environment.production ? `应用可能已发布新版本,请点击刷新才能生效。` : `无法加载路由:${ev.url}`,
+ nzCancelDisabled: false,
+ nzOkText: '刷新',
+ nzCancelText: '忽略',
+ nzOnOk: () => location.reload()
+ });
+ }
+ if (ev instanceof NavigationEnd) {
+ this.titleSrv.setTitle();
+ this.modalSrv.closeAll();
+ }
+ });
+ }
+}
diff --git a/src/app/app.module.ts b/src/app/app.module.ts
new file mode 100644
index 00000000..4fa434d8
--- /dev/null
+++ b/src/app/app.module.ts
@@ -0,0 +1,72 @@
+/* eslint-disable import/order */
+/* eslint-disable import/no-duplicates */
+import { HttpClientModule } from '@angular/common/http';
+import { default as ngLang } from '@angular/common/locales/zh';
+import { APP_INITIALIZER, LOCALE_ID, NgModule, Type } from '@angular/core';
+import { BrowserModule } from '@angular/platform-browser';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
+import { SimpleInterceptor } from '@delon/auth';
+import { NzNotificationModule } from 'ng-zorro-antd/notification';
+
+// #region global third module
+
+import { BidiModule } from '@angular/cdk/bidi';
+const GLOBAL_THIRD_MODULES: Array> = [BidiModule];
+
+// #endregion
+
+// #region Http Interceptors
+import { HTTP_INTERCEPTORS } from '@angular/common/http';
+
+import { DefaultInterceptor } from '@core';
+
+const INTERCEPTOR_PROVIDES = [
+ { provide: HTTP_INTERCEPTORS, useClass: SimpleInterceptor, multi: true },
+ { provide: HTTP_INTERCEPTORS, useClass: DefaultInterceptor, multi: true }
+];
+// #endregion
+
+// #region Startup Service
+import { StartupService } from '@core';
+export function StartupServiceFactory(startupService: StartupService): () => Promise {
+ return () => startupService.load();
+}
+const APPINIT_PROVIDES = [
+ StartupService,
+ {
+ provide: APP_INITIALIZER,
+ useFactory: StartupServiceFactory,
+ deps: [StartupService],
+ multi: true
+ }
+];
+// #endregion
+
+import { AppComponent } from './app.component';
+import { CoreModule } from './core/core.module';
+import { GlobalConfigModule } from './global-config.module';
+import { LayoutModule } from './layout/layout.module';
+import { RoutesModule } from './routes/routes.module';
+import { SharedModule } from './shared/shared.module';
+import { STWidgetModule } from './shared/widget/st-widget.module';
+import { Observable } from 'rxjs';
+
+@NgModule({
+ declarations: [AppComponent],
+ imports: [
+ BrowserModule,
+ BrowserAnimationsModule,
+ HttpClientModule,
+ GlobalConfigModule.forRoot(),
+ CoreModule,
+ SharedModule,
+ LayoutModule,
+ RoutesModule,
+ STWidgetModule,
+ NzNotificationModule,
+ ...GLOBAL_THIRD_MODULES
+ ],
+ providers: [...INTERCEPTOR_PROVIDES, ...APPINIT_PROVIDES],
+ bootstrap: [AppComponent]
+})
+export class AppModule {}
diff --git a/src/app/core/README.md b/src/app/core/README.md
new file mode 100644
index 00000000..2d98e129
--- /dev/null
+++ b/src/app/core/README.md
@@ -0,0 +1,5 @@
+### CoreModule
+
+**应** 仅只留 `providers` 属性。
+
+**作用:** 一些通用服务,例如:用户消息、HTTP数据访问。
diff --git a/src/app/core/core.module.ts b/src/app/core/core.module.ts
new file mode 100644
index 00000000..58522fc1
--- /dev/null
+++ b/src/app/core/core.module.ts
@@ -0,0 +1,12 @@
+import { NgModule, Optional, SkipSelf } from '@angular/core';
+
+import { throwIfAlreadyLoaded } from './module-import-guard';
+
+@NgModule({
+ providers: []
+})
+export class CoreModule {
+ constructor(@Optional() @SkipSelf() parentModule: CoreModule) {
+ throwIfAlreadyLoaded(parentModule, 'CoreModule');
+ }
+}
diff --git a/src/app/core/core.service.ts b/src/app/core/core.service.ts
new file mode 100644
index 00000000..ab9b87dc
--- /dev/null
+++ b/src/app/core/core.service.ts
@@ -0,0 +1,90 @@
+/*
+ * @Author: Maple
+ * @Date: 2021-03-22 11:42:26
+ * @LastEditors: Do not edit
+ * @LastEditTime: 2021-05-27 14:06:18
+ * @Description: 全局核心服务
+ */
+import { Injectable, Injector } from '@angular/core';
+import { Router } from '@angular/router';
+import { ReuseTabService } from '@delon/abc/reuse-tab';
+import { DA_SERVICE_TOKEN, ITokenService } from '@delon/auth';
+import { CacheService } from '@delon/cache';
+import { SettingsService } from '@delon/theme';
+import { EnvironmentService } from '@env/environment.service';
+import { NzMessageService } from 'ng-zorro-antd/message';
+
+@Injectable({
+ providedIn: 'root',
+})
+export class CoreService {
+ // 获取当前登录用户信息
+ public $api_get_current_user_info = `/scm/cuc/cuc/user/getUserDetail`;
+
+ // 获取当前用户所拥有的菜单
+ public $api_get_current_user_menus = `/scm/cuc/cuc/functionInfo/getUserHaveFunctionsList`;
+
+ constructor(private injector: Injector) {}
+ // 注入路由
+ public get router(): Router {
+ return this.injector.get(Router);
+ }
+
+ // 注入全局设置服务
+ public get settingSrv(): SettingsService {
+ return this.injector.get(SettingsService);
+ }
+
+ // 注入缓存服务
+ public get cacheSrv(): CacheService {
+ return this.injector.get(CacheService);
+ }
+
+ // 注入令牌服务
+ public get tokenSrv(): ITokenService {
+ return this.injector.get(DA_SERVICE_TOKEN);
+ }
+
+ // 注入消息服务
+ public get msgSrv(): NzMessageService {
+ return this.injector.get(NzMessageService);
+ }
+
+ // 注入环境服务
+ public get envSrv(): EnvironmentService {
+ return this.injector.get(EnvironmentService);
+ }
+
+ // 注入路由复用服务
+ private get reuseTabService(): ReuseTabService {
+ return this.injector.get(ReuseTabService);
+ }
+
+ // 登录状态
+ public get loginStatus(): boolean {
+ try {
+ return !!this.tokenSrv.get()?.token;
+ } catch (error) {
+ return false;
+ }
+ }
+
+ // 权限认证凭据(TOKEN)
+ public get token(): string {
+ return this.tokenSrv.get()?.token || '';
+ }
+
+ /**
+ * 登出系统
+ * @param showMsg 是否显示登录过期弹窗
+ */
+ logout(showMsg: boolean = false): void {
+ if (showMsg) {
+ this.msgSrv.warning('未登录或登录信息已过期,请重新登录!');
+ }
+ this.settingSrv.setUser({});
+ this.tokenSrv.clear();
+ this.cacheSrv.clear();
+ this.router.navigate([this.tokenSrv.login_url]);
+ }
+}
diff --git a/src/app/core/index.ts b/src/app/core/index.ts
new file mode 100644
index 00000000..c7024606
--- /dev/null
+++ b/src/app/core/index.ts
@@ -0,0 +1,6 @@
+export * from './module-import-guard';
+export * from './net/default.interceptor';
+
+// Services
+export * from './core.service';
+export * from './startup/startup.service';
diff --git a/src/app/core/module-import-guard.ts b/src/app/core/module-import-guard.ts
new file mode 100644
index 00000000..ad3d795a
--- /dev/null
+++ b/src/app/core/module-import-guard.ts
@@ -0,0 +1,6 @@
+// https://angular.io/guide/styleguide#style-04-12
+export function throwIfAlreadyLoaded(parentModule: any, moduleName: string): void {
+ if (parentModule) {
+ throw new Error(`${moduleName} has already been loaded. Import Core modules in the AppModule only.`);
+ }
+}
diff --git a/src/app/core/net/default.interceptor.ts b/src/app/core/net/default.interceptor.ts
new file mode 100644
index 00000000..8f5892aa
--- /dev/null
+++ b/src/app/core/net/default.interceptor.ts
@@ -0,0 +1,261 @@
+import {
+ HttpErrorResponse,
+ HttpEvent,
+ HttpHandler,
+ HttpHeaders,
+ HttpInterceptor,
+ HttpRequest,
+ HttpResponseBase
+} from '@angular/common/http';
+import { Injectable, Injector } from '@angular/core';
+import { Router } from '@angular/router';
+import { DA_SERVICE_TOKEN, ITokenService } from '@delon/auth';
+import { _HttpClient } from '@delon/theme';
+import { environment } from '@env/environment';
+import { NzNotificationService } from 'ng-zorro-antd/notification';
+import { BehaviorSubject, Observable, of, throwError } from 'rxjs';
+import { catchError, filter, mergeMap, switchMap, take } from 'rxjs/operators';
+
+const CODEMESSAGE: { [key: number]: string } = {
+ 200: '服务器成功返回请求的数据。',
+ 201: '新建或修改数据成功。',
+ 202: '一个请求已经进入后台排队(异步任务)。',
+ 204: '删除数据成功。',
+ 400: '发出的请求有错误,服务器没有进行新建或修改数据的操作。',
+ 401: '用户没有权限(令牌、用户名、密码错误)。',
+ 403: '用户得到授权,但是访问是被禁止的。',
+ 404: '发出的请求针对的是不存在的记录,服务器没有进行操作。',
+ 406: '请求的格式不可得。',
+ 410: '请求的资源被永久删除,且不会再得到的。',
+ 422: '当创建一个对象时,发生一个验证错误。',
+ 500: '服务器发生错误,请检查服务器。',
+ 502: '网关错误。',
+ 503: '服务不可用,服务器暂时过载或维护。',
+ 504: '网关超时。'
+};
+
+/**
+ * 默认HTTP拦截器,其注册细节见 `app.module.ts`
+ */
+@Injectable()
+export class DefaultInterceptor implements HttpInterceptor {
+ private refreshTokenEnabled = environment.api.refreshTokenEnabled;
+ private refreshTokenType: 're-request' | 'auth-refresh' = environment.api.refreshTokenType;
+ private refreshToking = false;
+ private refreshToken$: BehaviorSubject = new BehaviorSubject(null);
+
+ constructor(private injector: Injector) {
+ if (this.refreshTokenType === 'auth-refresh') {
+ this.buildAuthRefresh();
+ }
+ }
+
+ private get notification(): NzNotificationService {
+ return this.injector.get(NzNotificationService);
+ }
+
+ private get tokenSrv(): ITokenService {
+ return this.injector.get(DA_SERVICE_TOKEN);
+ }
+
+ private get http(): _HttpClient {
+ return this.injector.get(_HttpClient);
+ }
+
+ private goTo(url: string): void {
+ setTimeout(() => this.injector.get(Router).navigateByUrl(url));
+ }
+
+ private checkStatus(ev: HttpResponseBase): void {
+ if ((ev.status >= 200 && ev.status < 300) || ev.status === 401) {
+ return;
+ }
+
+ const errortext = CODEMESSAGE[ev.status] || ev.statusText;
+ this.notification.error(`请求错误 ${ev.status}: ${ev.url}`, errortext);
+ }
+
+ /**
+ * 刷新 Token 请求
+ */
+ private refreshTokenRequest(): Observable {
+ const model = this.tokenSrv.get();
+ return this.http.post(`/api/auth/refresh`, null, null, { headers: { refresh_token: model?.refresh_token || '' } });
+ }
+
+ // #region 刷新Token方式一:使用 401 重新刷新 Token
+
+ private tryRefreshToken(ev: HttpResponseBase, req: HttpRequest, next: HttpHandler): Observable {
+ // 1、若请求为刷新Token请求,表示来自刷新Token可以直接跳转登录页
+ if ([`/api/auth/refresh`].some(url => req.url.includes(url))) {
+ this.toLogin();
+ return throwError(ev);
+ }
+ // 2、如果 `refreshToking` 为 `true` 表示已经在请求刷新 Token 中,后续所有请求转入等待状态,直至结果返回后再重新发起请求
+ if (this.refreshToking) {
+ return this.refreshToken$.pipe(
+ filter(v => !!v),
+ take(1),
+ switchMap(() => next.handle(this.reAttachToken(req)))
+ );
+ }
+ // 3、尝试调用刷新 Token
+ this.refreshToking = true;
+ this.refreshToken$.next(null);
+
+ return this.refreshTokenRequest().pipe(
+ switchMap(res => {
+ // 通知后续请求继续执行
+ this.refreshToking = false;
+ this.refreshToken$.next(res);
+ // 重新保存新 token
+ this.tokenSrv.set(res);
+ // 重新发起请求
+ return next.handle(this.reAttachToken(req));
+ }),
+ catchError(err => {
+ this.refreshToking = false;
+ this.toLogin();
+ return throwError(err);
+ })
+ );
+ }
+
+ /**
+ * 重新附加新 Token 信息
+ *
+ * > 由于已经发起的请求,不会再走一遍 `@delon/auth` 因此需要结合业务情况重新附加新的 Token
+ */
+ private reAttachToken(req: HttpRequest): HttpRequest {
+ // 以下示例是以 NG-ALAIN 默认使用 `SimpleInterceptor`
+ const token = this.tokenSrv.get()?.token;
+ return req.clone({
+ setHeaders: {
+ token: `Bearer ${token}`
+ }
+ });
+ }
+
+ // #endregion
+
+ // #region 刷新Token方式二:使用 `@delon/auth` 的 `refresh` 接口
+
+ private buildAuthRefresh(): void {
+ if (!this.refreshTokenEnabled) {
+ return;
+ }
+ this.tokenSrv.refresh
+ .pipe(
+ filter(() => !this.refreshToking),
+ switchMap(res => {
+ console.log(res);
+ this.refreshToking = true;
+ return this.refreshTokenRequest();
+ })
+ )
+ .subscribe(
+ res => {
+ // TODO: Mock expired value
+ res.expired = +new Date() + 1000 * 60 * 5;
+ this.refreshToking = false;
+ this.tokenSrv.set(res);
+ },
+ () => this.toLogin()
+ );
+ }
+
+ // #endregion
+
+ private toLogin(): void {
+ this.notification.error(`未登录或登录已过期,请重新登录。`, ``);
+ this.goTo(this.tokenSrv.login_url!);
+ }
+
+ private handleData(ev: HttpResponseBase, req: HttpRequest, next: HttpHandler): Observable {
+ this.checkStatus(ev);
+ // 业务处理:一些通用操作
+ switch (ev.status) {
+ case 200:
+ // 业务层级错误处理,以下是假定restful有一套统一输出格式(指不管成功与否都有相应的数据格式)情况下进行处理
+ // 例如响应内容:
+ // 错误内容:{ status: 1, msg: '非法参数' }
+ // 正确内容:{ status: 0, response: { } }
+ // 则以下代码片断可直接适用
+ // if (ev instanceof HttpResponse) {
+ // const body = ev.body;
+ // if (body && body.status !== 0) {
+ // this.injector.get(NzMessageService).error(body.msg);
+ // // 注意:这里如果继续抛出错误会被行254的 catchError 二次拦截,导致外部实现的 Pipe、subscribe 操作被中断,例如:this.http.get('/').subscribe() 不会触发
+ // // 如果你希望外部实现,需要手动移除行254
+ // return throwError({});
+ // } else {
+ // // 忽略 Blob 文件体
+ // if (ev.body instanceof Blob) {
+ // return of(ev);
+ // }
+ // // 重新修改 `body` 内容为 `response` 内容,对于绝大多数场景已经无须再关心业务状态码
+ // return of(new HttpResponse(Object.assign(ev, { body: body.response })));
+ // // 或者依然保持完整的格式
+ // return of(ev);
+ // }
+ // }
+ break;
+ case 401:
+ if (this.refreshTokenEnabled && this.refreshTokenType === 're-request') {
+ return this.tryRefreshToken(ev, req, next);
+ }
+ this.toLogin();
+ break;
+ case 403:
+ case 404:
+ case 500:
+ this.goTo(`/exception/${ev.status}`);
+ break;
+ default:
+ if (ev instanceof HttpErrorResponse) {
+ console.warn(
+ '未可知错误,大部分是由于后端不支持跨域CORS或无效配置引起,请参考 https://ng-alain.com/docs/server 解决跨域问题',
+ ev
+ );
+ }
+ break;
+ }
+ if (ev instanceof HttpErrorResponse) {
+ return throwError(ev);
+ } else {
+ return of(ev);
+ }
+ }
+
+ private getAdditionalHeaders(headers?: HttpHeaders): { [name: string]: string } {
+ const res: { [name: string]: string } = {};
+ // const lang = this.injector.get(ALAIN_I18N_TOKEN).currentLang;
+ // if (!headers?.has('Accept-Language') && lang) {
+ // res['Accept-Language'] = lang;
+ // }
+
+ return res;
+ }
+
+ intercept(req: HttpRequest, next: HttpHandler): Observable> {
+ // 统一加上服务端前缀
+ let url = req.url;
+ if (!url.startsWith('https://') && !url.startsWith('http://')) {
+ const { baseUrl } = environment.api;
+ url = baseUrl + (baseUrl.endsWith('/') && url.startsWith('/') ? url.substring(1) : url);
+ }
+
+ const newReq = req.clone({ url, setHeaders: this.getAdditionalHeaders(req.headers) });
+ return next.handle(newReq).pipe(
+ mergeMap(ev => {
+ // 允许统一对请求错误处理
+ if (ev instanceof HttpResponseBase) {
+ return this.handleData(ev, newReq, next);
+ }
+ // 若一切都正常,则后续操作
+ return of(ev);
+ }),
+ catchError((err: HttpErrorResponse) => this.handleData(err, newReq, next))
+ );
+ }
+}
diff --git a/src/app/core/startup/startup.service.ts b/src/app/core/startup/startup.service.ts
new file mode 100644
index 00000000..b331af95
--- /dev/null
+++ b/src/app/core/startup/startup.service.ts
@@ -0,0 +1,158 @@
+import { HttpClient } from '@angular/common/http';
+import { Inject, Injectable } from '@angular/core';
+import { ACLService } from '@delon/acl';
+import { MenuService, SettingsService, TitleService, _HttpClient } from '@delon/theme';
+import { NzSafeAny } from 'ng-zorro-antd/core/types';
+import { NzIconService } from 'ng-zorro-antd/icon';
+import { Observable, zip } from 'rxjs';
+import { catchError, map } from 'rxjs/operators';
+
+import { ICONS } from '../../../style-icons';
+import { ICONS_AUTO } from '../../../style-icons-auto';
+import { CoreService } from '../core.service';
+
+/**
+ * Used for application startup
+ * Generally used to get the basic data of the application, like: Menu Data, User Data, etc.
+ */
+@Injectable()
+export class StartupService {
+ constructor(
+ iconSrv: NzIconService,
+ private menuService: MenuService,
+ private settingService: SettingsService,
+ private aclService: ACLService,
+ private titleService: TitleService,
+ private httpClient: _HttpClient,
+ private coreSrv: CoreService
+ ) {
+ iconSrv.addIcon(...ICONS_AUTO, ...ICONS);
+ }
+
+ // TODO: 退出登录时需要清理用户信息
+
+ load(): Promise {
+ return new Promise(resolve => {
+ let data;
+ if (this.coreSrv.loginStatus) {
+ // 本地菜单
+ // data = this.loadMockData();
+ // 远程菜单
+ data = this.loadRemoteData();
+ } else {
+ data = this.loadMockData();
+ }
+
+ data
+ .pipe(
+ catchError(res => {
+ console.warn(`StartupService.load: Network request failed`, res);
+ resolve();
+ return [];
+ })
+ )
+ .subscribe(
+ ([appData, userData, menuData]) => this.initSystem(appData, userData, menuData),
+ err => {
+ console.log(err);
+ },
+ () => resolve()
+ );
+ });
+ }
+
+ /**
+ * 系统初始化
+ *
+ * @param langData 翻译数据
+ * @param appData App应用数据
+ * @param userData 用户数据
+ * @param menuData 菜单数据
+ */
+ private initSystem(appData: NzSafeAny, userData: NzSafeAny, menuData: NzSafeAny): void {
+ // 应用信息:包括站点名、描述、年份
+ this.settingService.setApp(appData);
+ // 用户信息:包括姓名、头像、邮箱地址
+ this.settingService.setUser(userData);
+ // ACL:设置权限为全量
+ this.aclService.setFull(true);
+ // 初始化菜单
+ this.menuService.add(menuData);
+ // 设置页面标题的后缀
+ this.titleService.default = '';
+ this.titleService.suffix = appData.name;
+ }
+
+ /**
+ * @description 加载本地模拟数据
+ * @returns 程序初始化数据
+ */
+ loadMockData(): Observable<[object, object, object]> {
+ // 登录时调用远程数据, 非登录状态下调用Mock数据
+
+ // App数据
+ const appData = this.httpClient.get(`assets/mocks/app-data.json`).pipe(map((res: any) => res.app));
+
+ // 用户数据
+ const userData = this.coreSrv.loginStatus
+ ? this.httpClient.post(this.coreSrv.$api_get_current_user_info, {}).pipe(map((res: any) => res.data))
+ : this.httpClient.get('assets/mocks/user-data.json').pipe(map((res: any) => res.user));
+
+ // 菜单数据
+ const menuData = this.httpClient.get('assets/mocks/menu-data.json').pipe(map((res: any) => res.menu));
+
+ return zip(appData, userData, menuData);
+ }
+
+ /**
+ * @description 加载远程数据
+ * @returns 程序初始化数据
+ */
+ loadRemoteData(): Observable<[object, object, object]> {
+ // 登录时调用远程数据, 非登录状态下调用Mock数据
+
+ // App数据
+ const appData = this.httpClient.get(`assets/mocks/app-data.json`).pipe(map((res: any) => res.app));
+
+ // 用户数据
+ const userData = this.coreSrv.loginStatus
+ ? this.httpClient.post(this.coreSrv.$api_get_current_user_info, {}).pipe(map((res: any) => res.data))
+ : this.httpClient.get('assets/mocks/user-data.json').pipe(map((res: any) => res.user));
+
+ // 菜单数据
+ const menuData = this.httpClient
+ .post(this.coreSrv.$api_get_current_user_menus, {
+ appId: this.coreSrv.envSrv.getEnvironment().appId
+ })
+ .pipe(map((res: any) => res.data));
+
+ return zip(appData, userData, menuData);
+ }
+
+ // load(): Observable {
+ // const defaultLang = this.i18n.defaultLang;
+ // return zip(this.i18n.loadLangData(defaultLang), this.httpClient.get('assets/tmp/app-data.json')).pipe(
+ // // 接收其他拦截器后产生的异常消息
+ // catchError(res => {
+ // console.warn(`StartupService.load: Network request failed`, res);
+ // return [];
+ // }),
+ // map(([langData, appData]: [Record, NzSafeAny]) => {
+ // // setting language data
+ // this.i18n.use(defaultLang, langData);
+
+ // // 应用信息:包括站点名、描述、年份
+ // this.settingService.setApp(appData.app);
+ // // 用户信息:包括姓名、头像、邮箱地址
+ // this.settingService.setUser(appData.user);
+ // // ACL:设置权限为全量
+ // this.aclService.setFull(true);
+ // // 初始化菜单
+ // this.menuService.add(appData.menu);
+ // // 设置页面标题的后缀
+ // this.titleService.default = '';
+ // this.titleService.suffix = appData.app.name;
+ // })
+ // );
+ // }
+}
diff --git a/src/app/global-config.module.ts b/src/app/global-config.module.ts
new file mode 100644
index 00000000..a09fa770
--- /dev/null
+++ b/src/app/global-config.module.ts
@@ -0,0 +1,65 @@
+/* eslint-disable import/order */
+import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';
+import { throwIfAlreadyLoaded } from '@core';
+import { ReuseTabMatchMode, ReuseTabService, ReuseTabStrategy } from '@delon/abc/reuse-tab';
+import { DelonACLModule } from '@delon/acl';
+import { AlainThemeModule } from '@delon/theme';
+import { AlainConfig, ALAIN_CONFIG } from '@delon/util';
+import { environment } from '@env/environment';
+
+// Please refer to: https://ng-alain.com/docs/global-config
+// #region NG-ALAIN Config
+
+const alainConfig: AlainConfig = {
+ st: { modal: { size: 'lg' } },
+ pageHeader: { homeI18n: 'home', recursiveBreadcrumb: true },
+ auth: { login_url: '/passport/login' }
+};
+
+const alainModules = [AlainThemeModule.forRoot(), DelonACLModule.forRoot()];
+const alainProvides = [{ provide: ALAIN_CONFIG, useValue: alainConfig }];
+
+// #region reuse-tab
+
+import { RouteReuseStrategy } from '@angular/router';
+alainProvides.push({
+ provide: RouteReuseStrategy,
+ useClass: ReuseTabStrategy,
+ deps: [ReuseTabService]
+} as any);
+
+// #endregion
+
+// #endregion
+
+// Please refer to: https://ng.ant.design/docs/global-config/en#how-to-use
+// #region NG-ZORRO Config
+
+import { NzConfig, NZ_CONFIG } from 'ng-zorro-antd/core/config';
+
+const ngZorroConfig: NzConfig = {};
+
+const zorroProvides = [{ provide: NZ_CONFIG, useValue: ngZorroConfig }];
+
+// #endregion
+
+@NgModule({
+ imports: [...alainModules, ...(environment.modules || [])]
+})
+export class GlobalConfigModule {
+ constructor(@Optional() @SkipSelf() parentModule: GlobalConfigModule, reuseTabService: ReuseTabService) {
+ throwIfAlreadyLoaded(parentModule, 'GlobalConfigModule');
+ // NOTICE: Only valid for menus with reuse property
+ // Pls refer to the E-Mail demo effect
+ reuseTabService.mode = ReuseTabMatchMode.MenuForce;
+ // Shouled be trigger init, you can ingore when used `reuse-tab` component in layout component
+ reuseTabService.init();
+ }
+
+ static forRoot(): ModuleWithProviders {
+ return {
+ ngModule: GlobalConfigModule,
+ providers: [...alainProvides, ...zorroProvides]
+ };
+ }
+}
diff --git a/src/app/layout/layout.module.ts b/src/app/layout/layout.module.ts
new file mode 100644
index 00000000..5c0eac3c
--- /dev/null
+++ b/src/app/layout/layout.module.ts
@@ -0,0 +1,64 @@
+import { LayoutModule as CDKLayoutModule } from '@angular/cdk/layout';
+import { CommonModule } from '@angular/common';
+import { NgModule, Type } from '@angular/core';
+import { FormsModule } from '@angular/forms';
+import { RouterModule } from '@angular/router';
+import { GlobalFooterModule } from '@delon/abc/global-footer';
+import { NoticeIconModule } from '@delon/abc/notice-icon';
+import { AlainThemeModule } from '@delon/theme';
+import { ThemeBtnModule } from '@delon/theme/theme-btn';
+import { ScrollbarModule } from '@shared';
+import { NzAlertModule } from 'ng-zorro-antd/alert';
+import { NzAutocompleteModule } from 'ng-zorro-antd/auto-complete';
+import { NzAvatarModule } from 'ng-zorro-antd/avatar';
+import { NzBadgeModule } from 'ng-zorro-antd/badge';
+import { NzButtonModule } from 'ng-zorro-antd/button';
+import { NzDividerModule } from 'ng-zorro-antd/divider';
+import { NzDrawerModule } from 'ng-zorro-antd/drawer';
+import { NzDropDownModule } from 'ng-zorro-antd/dropdown';
+import { NzIconModule } from 'ng-zorro-antd/icon';
+import { NzLayoutModule } from 'ng-zorro-antd/layout';
+import { NzMessageModule } from 'ng-zorro-antd/message';
+import { NzSelectModule } from 'ng-zorro-antd/select';
+import { NzSpinModule } from 'ng-zorro-antd/spin';
+import { NzSwitchModule } from 'ng-zorro-antd/switch';
+import { NzTimelineModule } from 'ng-zorro-antd/timeline';
+import { NzToolTipModule } from 'ng-zorro-antd/tooltip';
+
+import { LayoutPassportComponent } from './passport/passport.component';
+import { PRO_COMPONENTS } from './pro/index';
+
+const COMPONENTS: Array> = [...PRO_COMPONENTS, LayoutPassportComponent];
+
+@NgModule({
+ imports: [
+ CommonModule,
+ RouterModule,
+ FormsModule,
+ AlainThemeModule,
+ GlobalFooterModule,
+ CDKLayoutModule,
+ NzSpinModule,
+ NzDropDownModule,
+ NzIconModule,
+ NzDrawerModule,
+ NzAutocompleteModule,
+ NzAvatarModule,
+ NzSwitchModule,
+ NzToolTipModule,
+ NzSelectModule,
+ NzDividerModule,
+ NzAlertModule,
+ NzLayoutModule,
+ NzButtonModule,
+ NzBadgeModule,
+ NzTimelineModule,
+ NoticeIconModule,
+ ThemeBtnModule,
+ ScrollbarModule,
+ NzMessageModule
+ ],
+ declarations: COMPONENTS,
+ exports: COMPONENTS
+})
+export class LayoutModule {}
diff --git a/src/app/layout/passport/passport.component.html b/src/app/layout/passport/passport.component.html
new file mode 100644
index 00000000..e9beaece
--- /dev/null
+++ b/src/app/layout/passport/passport.component.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+

+
ng-alain pro
+
+
武林中最有影响力的《葵花宝典》;欲练神功,挥刀自宫
+
+
+
+
\ No newline at end of file
diff --git a/src/app/layout/passport/passport.component.less b/src/app/layout/passport/passport.component.less
new file mode 100644
index 00000000..a17b975f
--- /dev/null
+++ b/src/app/layout/passport/passport.component.less
@@ -0,0 +1,74 @@
+@import '~@delon/theme/index';
+:host {
+ ::ng-deep {
+ .container {
+ display: flex;
+ flex-direction: column;
+ min-height: 100%;
+ background: #f0f2f5;
+ }
+ .langs {
+ width: 100%;
+ height: 40px;
+ line-height: 44px;
+ text-align: right;
+ .ant-dropdown-trigger {
+ display: inline-block;
+ }
+ .anticon {
+ margin-top: 24px;
+ margin-right: 24px;
+ font-size: 14px;
+ vertical-align: top;
+ cursor: pointer;
+ }
+ }
+ .wrap {
+ flex: 1;
+ padding: 32px 0;
+ }
+ .ant-form-item {
+ margin-bottom: 24px;
+ }
+
+ @media (min-width: @screen-md-min) {
+ .container {
+ background-image: url('https://gw.alipayobjects.com/zos/rmsportal/TVYTbAXWheQpRcWDaDMu.svg');
+ background-repeat: no-repeat;
+ background-position: center 110px;
+ background-size: 100%;
+ }
+ .wrap {
+ padding: 32px 0 24px;
+ }
+ }
+ .top {
+ text-align: center;
+ }
+ .header {
+ height: 44px;
+ line-height: 44px;
+ a {
+ text-decoration: none;
+ }
+ }
+ .logo {
+ height: 44px;
+ margin-right: 16px;
+ }
+ .title {
+ position: relative;
+ color: @heading-color;
+ font-weight: 600;
+ font-size: 33px;
+ font-family: 'Myriad Pro', 'Helvetica Neue', Arial, Helvetica, sans-serif;
+ vertical-align: middle;
+ }
+ .desc {
+ margin-top: 12px;
+ margin-bottom: 40px;
+ color: @text-color-secondary;
+ font-size: @font-size-base;
+ }
+ }
+}
diff --git a/src/app/layout/passport/passport.component.ts b/src/app/layout/passport/passport.component.ts
new file mode 100644
index 00000000..c48bb161
--- /dev/null
+++ b/src/app/layout/passport/passport.component.ts
@@ -0,0 +1,30 @@
+import { Component, Inject, OnInit } from '@angular/core';
+import { DA_SERVICE_TOKEN, ITokenService } from '@delon/auth';
+
+@Component({
+ selector: 'layout-passport',
+ templateUrl: './passport.component.html',
+ styleUrls: ['./passport.component.less']
+})
+export class LayoutPassportComponent implements OnInit {
+ links = [
+ {
+ title: '帮助',
+ href: ''
+ },
+ {
+ title: '隐私',
+ href: ''
+ },
+ {
+ title: '条款',
+ href: ''
+ }
+ ];
+
+ constructor(@Inject(DA_SERVICE_TOKEN) private tokenService: ITokenService) {}
+
+ ngOnInit(): void {
+ this.tokenService.clear();
+ }
+}
diff --git a/src/app/layout/pro/components/footer/footer.component.html b/src/app/layout/pro/components/footer/footer.component.html
new file mode 100644
index 00000000..59588807
--- /dev/null
+++ b/src/app/layout/pro/components/footer/footer.component.html
@@ -0,0 +1,16 @@
+
+
+ Pro 首页
+
+
+
+
+
+ Alain Pro
+
+ Copyright
+
+ {{ year }}
+ 卡色
+ 出品
+
\ No newline at end of file
diff --git a/src/app/layout/pro/components/footer/footer.component.ts b/src/app/layout/pro/components/footer/footer.component.ts
new file mode 100644
index 00000000..0d23aebc
--- /dev/null
+++ b/src/app/layout/pro/components/footer/footer.component.ts
@@ -0,0 +1,15 @@
+import { ChangeDetectionStrategy, Component } from '@angular/core';
+import { SettingsService } from '@delon/theme';
+
+@Component({
+ selector: 'layout-pro-footer',
+ templateUrl: './footer.component.html',
+ changeDetection: ChangeDetectionStrategy.OnPush
+})
+export class LayoutProFooterComponent {
+ get year(): number {
+ return this.setting.app.year;
+ }
+
+ constructor(private setting: SettingsService) {}
+}
diff --git a/src/app/layout/pro/components/header/header.component.html b/src/app/layout/pro/components/header/header.component.html
new file mode 100644
index 00000000..eee9c54f
--- /dev/null
+++ b/src/app/layout/pro/components/header/header.component.html
@@ -0,0 +1,25 @@
+
+
diff --git a/src/app/layout/pro/components/header/header.component.ts b/src/app/layout/pro/components/header/header.component.ts
new file mode 100644
index 00000000..659f5ab5
--- /dev/null
+++ b/src/app/layout/pro/components/header/header.component.ts
@@ -0,0 +1,68 @@
+import { DOCUMENT } from '@angular/common';
+import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, Inject, OnDestroy, OnInit } from '@angular/core';
+import { RTL, RTLService } from '@delon/theme';
+import { combineLatest, fromEvent, Subject } from 'rxjs';
+import { distinctUntilChanged, takeUntil, tap, throttleTime } from 'rxjs/operators';
+
+import { BrandService } from '../../pro.service';
+
+@Component({
+ selector: 'layout-pro-header',
+ templateUrl: './header.component.html',
+ host: {
+ '[class.ant-layout-header]': 'true',
+ '[class.alain-pro__header-fixed]': 'pro.fixedHeader',
+ '[class.alain-pro__header-hide]': 'hideHeader',
+ '[style.padding.px]': '0'
+ },
+ changeDetection: ChangeDetectionStrategy.OnPush
+})
+export class LayoutProHeaderComponent implements OnInit, OnDestroy {
+ private destroy$ = new Subject();
+ hideHeader = false;
+
+ @HostBinding('style.width')
+ get getHeadWidth(): string {
+ const { isMobile, fixedHeader, menu, collapsed, width, widthInCollapsed } = this.pro;
+ if (isMobile || !fixedHeader || menu === 'top') {
+ return '100%';
+ }
+ return collapsed ? `calc(100% - ${widthInCollapsed}px)` : `calc(100% - ${width}px)`;
+ }
+
+ get collapsedIcon(): string {
+ let type = this.pro.collapsed ? 'unfold' : 'fold';
+ if (this.rtl.dir === RTL) {
+ type = this.pro.collapsed ? 'fold' : 'unfold';
+ }
+ return `menu-${type}`;
+ }
+
+ constructor(public pro: BrandService, @Inject(DOCUMENT) private doc: any, private cdr: ChangeDetectorRef, private rtl: RTLService) {}
+
+ private handScroll(): void {
+ if (!this.pro.autoHideHeader) {
+ this.hideHeader = false;
+ return;
+ }
+ setTimeout(() => {
+ this.hideHeader = this.doc.body.scrollTop + this.doc.documentElement.scrollTop > this.pro.autoHideHeaderTop;
+ });
+ }
+
+ ngOnInit(): void {
+ combineLatest([
+ this.pro.notify.pipe(tap(() => this.cdr.markForCheck())),
+ fromEvent(window, 'scroll', { passive: false }).pipe(throttleTime(50), distinctUntilChanged())
+ ])
+ .pipe(takeUntil(this.destroy$))
+ .subscribe(() => this.handScroll());
+
+ this.rtl.change.pipe(takeUntil(this.destroy$)).subscribe(() => this.cdr.detectChanges());
+ }
+
+ ngOnDestroy(): void {
+ this.destroy$.next();
+ this.destroy$.complete();
+ }
+}
diff --git a/src/app/layout/pro/components/logo/logo.component.html b/src/app/layout/pro/components/logo/logo.component.html
new file mode 100644
index 00000000..c6891a91
--- /dev/null
+++ b/src/app/layout/pro/components/logo/logo.component.html
@@ -0,0 +1,4 @@
+
+
+ {{ name }}
+
diff --git a/src/app/layout/pro/components/logo/logo.component.ts b/src/app/layout/pro/components/logo/logo.component.ts
new file mode 100644
index 00000000..ac1366f2
--- /dev/null
+++ b/src/app/layout/pro/components/logo/logo.component.ts
@@ -0,0 +1,15 @@
+import { ChangeDetectionStrategy, Component } from '@angular/core';
+import { SettingsService } from '@delon/theme';
+
+@Component({
+ selector: 'layout-pro-logo',
+ templateUrl: './logo.component.html',
+ changeDetection: ChangeDetectionStrategy.OnPush
+})
+export class LayoutProLogoComponent {
+ get name(): string {
+ return this.setting.app.name!;
+ }
+
+ constructor(private setting: SettingsService) {}
+}
diff --git a/src/app/layout/pro/components/menu/menu.component.html b/src/app/layout/pro/components/menu/menu.component.html
new file mode 100644
index 00000000..2d85d439
--- /dev/null
+++ b/src/app/layout/pro/components/menu/menu.component.html
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ i.text }}
+ {{ i.text }}
+
+
+
+
+ - 0"
+ nz-submenu
+ [nzTitle]="l1TitleTpl"
+ class="alain-pro__menu-item"
+ [class.text-white]="pro.theme === 'dark' && l1._selected"
+ [nzOpen]="l1._open"
+ [nzDisabled]="l1.disabled"
+ (nzOpenChange)="openChange(l1, $event)"
+ >
+
+
+
+
+
+ -
+
+
+ - 0"
+ nz-submenu
+ [nzTitle]="l2.text!"
+ [nzOpen]="l2._open"
+ [nzDisabled]="l2.disabled"
+ (nzOpenChange)="openChange(l2, $event)"
+ >
+
+
+
+
+
+
+
diff --git a/src/app/layout/pro/components/menu/menu.component.ts b/src/app/layout/pro/components/menu/menu.component.ts
new file mode 100644
index 00000000..dd3d7467
--- /dev/null
+++ b/src/app/layout/pro/components/menu/menu.component.ts
@@ -0,0 +1,125 @@
+import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy, OnInit } from '@angular/core';
+import { NavigationEnd, Router } from '@angular/router';
+import { MenuService } from '@delon/theme';
+import { InputBoolean } from '@delon/util';
+import { NzMenuModeType } from 'ng-zorro-antd/menu';
+import { Subject } from 'rxjs';
+import { filter, takeUntil } from 'rxjs/operators';
+
+import { BrandService } from '../../pro.service';
+import { ProMenu } from '../../pro.types';
+
+@Component({
+ selector: '[layout-pro-menu]',
+ templateUrl: './menu.component.html',
+ host: {
+ '[class.alain-pro__menu]': 'true',
+ '[class.alain-pro__menu-only-icon]': 'pro.onlyIcon'
+ },
+ changeDetection: ChangeDetectionStrategy.OnPush
+})
+export class LayoutProMenuComponent implements OnInit, OnDestroy {
+ private unsubscribe$ = new Subject();
+ menus?: ProMenu[];
+
+ @Input() @InputBoolean() disabledAcl = false;
+ @Input() mode: NzMenuModeType = 'inline';
+
+ constructor(private menuSrv: MenuService, private router: Router, public pro: BrandService, private cdr: ChangeDetectorRef) {}
+
+ private cd(): void {
+ this.cdr.markForCheck();
+ }
+
+ private genMenus(data: ProMenu[]): void {
+ const res: ProMenu[] = [];
+ // ingores category menus
+ const ingoreCategores = data.reduce((prev, cur) => prev.concat(cur.children as ProMenu[]), [] as ProMenu[]);
+ this.menuSrv.visit(ingoreCategores, (item: ProMenu, parent: ProMenu | null) => {
+ if (!item._aclResult) {
+ if (this.disabledAcl) {
+ item.disabled = true;
+ } else {
+ item._hidden = true;
+ }
+ }
+ if (item._hidden === true) {
+ return;
+ }
+ if (parent === null) {
+ res.push(item);
+ }
+ });
+ this.menus = res;
+
+ this.openStatus();
+ }
+
+ private openStatus(): void {
+ const inFn = (list: ProMenu[]) => {
+ for (const i of list) {
+ i._open = false;
+ i._selected = false;
+ if (i.children!.length > 0) {
+ inFn(i.children!);
+ }
+ }
+ };
+ inFn(this.menus!);
+
+ let item = this.menuSrv.getHit(this.menus!, this.router.url, true);
+ if (!item) {
+ this.cd();
+ return;
+ }
+ do {
+ item._selected = true;
+ if (!this.pro.isTopMenu && !this.pro.collapsed) {
+ item._open = true;
+ }
+ item = item._parent!;
+ } while (item);
+ this.cd();
+ }
+
+ openChange(item: ProMenu, statue: boolean): void {
+ const data = item._parent ? item._parent.children : this.menus;
+ if (data && data.length <= 1) {
+ return;
+ }
+ data!.forEach(i => (i._open = false));
+ item._open = statue;
+ }
+
+ closeCollapsed(): void {
+ const { pro } = this;
+ if (pro.isMobile) {
+ setTimeout(() => pro.setCollapsed(true), 25);
+ }
+ }
+
+ ngOnInit(): void {
+ const { unsubscribe$, router, pro } = this;
+ this.menuSrv.change.pipe(takeUntil(unsubscribe$)).subscribe(res => this.genMenus(res));
+
+ router.events
+ .pipe(
+ takeUntil(unsubscribe$),
+ filter(e => e instanceof NavigationEnd)
+ )
+ .subscribe(() => this.openStatus());
+
+ pro.notify
+ .pipe(
+ takeUntil(unsubscribe$),
+ filter(() => !!this.menus)
+ )
+ .subscribe(() => this.cd());
+ }
+
+ ngOnDestroy(): void {
+ const { unsubscribe$ } = this;
+ unsubscribe$.next();
+ unsubscribe$.complete();
+ }
+}
diff --git a/src/app/layout/pro/components/notify/notify.component.html b/src/app/layout/pro/components/notify/notify.component.html
new file mode 100644
index 00000000..a38da23a
--- /dev/null
+++ b/src/app/layout/pro/components/notify/notify.component.html
@@ -0,0 +1,10 @@
+
diff --git a/src/app/layout/pro/components/notify/notify.component.ts b/src/app/layout/pro/components/notify/notify.component.ts
new file mode 100644
index 00000000..afa6b61b
--- /dev/null
+++ b/src/app/layout/pro/components/notify/notify.component.ts
@@ -0,0 +1,183 @@
+import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from '@angular/core';
+import { NoticeIconList, NoticeItem } from '@delon/abc/notice-icon';
+import formatDistanceToNow from 'date-fns/formatDistanceToNow';
+import parse from 'date-fns/parse';
+import { NzSafeAny } from 'ng-zorro-antd/core/types';
+import { NzMessageService } from 'ng-zorro-antd/message';
+
+@Component({
+ selector: 'layout-pro-notify',
+ templateUrl: './notify.component.html',
+ changeDetection: ChangeDetectionStrategy.OnPush
+})
+export class LayoutProWidgetNotifyComponent {
+ data: NoticeItem[] = [
+ {
+ title: '通知',
+ list: [],
+ emptyText: '你已查看所有通知',
+ emptyImage: 'https://gw.alipayobjects.com/zos/rmsportal/wAhyIChODzsoKIOBHcBk.svg',
+ clearText: '清空通知'
+ },
+ {
+ title: '消息',
+ list: [],
+ emptyText: '您已读完所有消息',
+ emptyImage: 'https://gw.alipayobjects.com/zos/rmsportal/sAuJeJzSKbUmHfBQRzmZ.svg',
+ clearText: '清空消息'
+ },
+ {
+ title: '待办',
+ list: [],
+ emptyText: '你已完成所有待办',
+ emptyImage: 'https://gw.alipayobjects.com/zos/rmsportal/HsIsxMZiWKrNUavQUXqx.svg',
+ clearText: '清空待办'
+ }
+ ];
+ count = 5;
+ loading = false;
+
+ constructor(private msg: NzMessageService, private cdr: ChangeDetectorRef) {}
+
+ updateNoticeData(notices: NoticeIconList[]): NoticeItem[] {
+ const data = this.data.slice();
+ data.forEach(i => (i.list = []));
+
+ notices.forEach(item => {
+ const newItem = { ...item };
+ if (typeof newItem.datetime === 'string') {
+ newItem.datetime = parse(newItem.datetime, 'yyyy-MM-dd', new Date());
+ }
+ if (newItem.datetime) {
+ newItem.datetime = formatDistanceToNow(newItem.datetime as Date);
+ }
+ if (newItem.extra && newItem.status) {
+ newItem.color = (
+ {
+ todo: undefined,
+ processing: 'blue',
+ urgent: 'red',
+ doing: 'gold'
+ } as NzSafeAny
+ )[newItem.status];
+ }
+ data.find(w => w.title === newItem.type)?.list.push(newItem);
+ });
+ return data;
+ }
+
+ loadData(): void {
+ if (this.loading) {
+ return;
+ }
+ this.loading = true;
+ setTimeout(() => {
+ this.data = this.updateNoticeData([
+ {
+ id: '000000001',
+ avatar: 'https://gw.alipayobjects.com/zos/rmsportal/ThXAXghbEsBCCSDihZxY.png',
+ title: '你收到了 14 份新周报',
+ datetime: '2017-08-09',
+ type: '通知'
+ },
+ {
+ id: '000000002',
+ avatar: 'https://gw.alipayobjects.com/zos/rmsportal/OKJXDXrmkNshAMvwtvhu.png',
+ title: '你推荐的 曲妮妮 已通过第三轮面试',
+ datetime: '2017-08-08',
+ type: '通知'
+ },
+ {
+ id: '000000003',
+ avatar: 'https://gw.alipayobjects.com/zos/rmsportal/kISTdvpyTAhtGxpovNWd.png',
+ title: '这种模板可以区分多种通知类型',
+ datetime: '2017-08-07',
+ read: true,
+ type: '通知'
+ },
+ {
+ id: '000000004',
+ avatar: 'https://gw.alipayobjects.com/zos/rmsportal/GvqBnKhFgObvnSGkDsje.png',
+ title: '左侧图标用于区分不同的类型',
+ datetime: '2017-08-07',
+ type: '通知'
+ },
+ {
+ id: '000000005',
+ avatar: 'https://gw.alipayobjects.com/zos/rmsportal/ThXAXghbEsBCCSDihZxY.png',
+ title: '内容不要超过两行字,超出时自动截断',
+ datetime: '2017-08-07',
+ type: '通知'
+ },
+ {
+ id: '000000006',
+ avatar: 'https://gw.alipayobjects.com/zos/rmsportal/fcHMVNCjPOsbUGdEduuv.jpeg',
+ title: '曲丽丽 评论了你',
+ description: '描述信息描述信息描述信息',
+ datetime: '2017-08-07',
+ type: '消息'
+ },
+ {
+ id: '000000007',
+ avatar: 'https://gw.alipayobjects.com/zos/rmsportal/fcHMVNCjPOsbUGdEduuv.jpeg',
+ title: '朱偏右 回复了你',
+ description: '这种模板用于提醒谁与你发生了互动,左侧放『谁』的头像',
+ datetime: '2017-08-07',
+ type: '消息'
+ },
+ {
+ id: '000000008',
+ avatar: 'https://gw.alipayobjects.com/zos/rmsportal/fcHMVNCjPOsbUGdEduuv.jpeg',
+ title: '标题',
+ description: '这种模板用于提醒谁与你发生了互动,左侧放『谁』的头像',
+ datetime: '2017-08-07',
+ type: '消息'
+ },
+ {
+ id: '000000009',
+ title: '任务名称',
+ description: '任务需要在 2017-01-12 20:00 前启动',
+ extra: '未开始',
+ status: 'todo',
+ type: '待办'
+ },
+ {
+ id: '000000010',
+ title: '第三方紧急代码变更',
+ description: '冠霖提交于 2017-01-06,需在 2017-01-07 前完成代码变更任务',
+ extra: '马上到期',
+ status: 'urgent',
+ type: '待办'
+ },
+ {
+ id: '000000011',
+ title: '信息安全考试',
+ description: '指派竹尔于 2017-01-09 前完成更新并发布',
+ extra: '已耗时 8 天',
+ status: 'doing',
+ type: '待办'
+ },
+ {
+ id: '000000012',
+ title: 'ABCD 版本发布',
+ description: '冠霖提交于 2017-01-06,需在 2017-01-07 前完成代码变更任务',
+ extra: '进行中',
+ status: 'processing',
+ type: '待办'
+ }
+ ]);
+
+ this.loading = false;
+
+ this.cdr.detectChanges();
+ }, 1000);
+ }
+
+ clear(type: string): void {
+ this.msg.success(`清空了 ${type}`);
+ }
+
+ select(res: any): void {
+ this.msg.success(`点击了 ${res.title} 的 ${res.item.title}`);
+ }
+}
diff --git a/src/app/layout/pro/components/quick-chat/quick-chat-status.component.html b/src/app/layout/pro/components/quick-chat/quick-chat-status.component.html
new file mode 100644
index 00000000..99ce05f6
--- /dev/null
+++ b/src/app/layout/pro/components/quick-chat/quick-chat-status.component.html
@@ -0,0 +1,4 @@
+
diff --git a/src/app/layout/pro/components/quick-chat/quick-chat-status.component.ts b/src/app/layout/pro/components/quick-chat/quick-chat-status.component.ts
new file mode 100644
index 00000000..a8650c81
--- /dev/null
+++ b/src/app/layout/pro/components/quick-chat/quick-chat-status.component.ts
@@ -0,0 +1,42 @@
+import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';
+import { Subscription } from 'rxjs';
+
+import { LayoutProWidgetQuickChatService } from './quick-chat.service';
+
+@Component({
+ selector: 'quick-chat-status',
+ templateUrl: './quick-chat-status.component.html',
+ changeDetection: ChangeDetectionStrategy.OnPush
+})
+export class LayoutProWidgetQuickChatStatusComponent implements OnInit, OnDestroy {
+ private status$!: Subscription;
+
+ status = 'default';
+
+ constructor(private srv: LayoutProWidgetQuickChatService, private cdr: ChangeDetectorRef) {}
+
+ show(): void {
+ if (this.srv.showDialog) {
+ return;
+ }
+ this.srv.showDialog = true;
+ }
+
+ ngOnInit(): void {
+ this.status$ = this.srv.status.subscribe(res => {
+ switch (res) {
+ case 'online':
+ this.status = 'success';
+ break;
+ default:
+ this.status = 'default';
+ break;
+ }
+ this.cdr.detectChanges();
+ });
+ }
+
+ ngOnDestroy(): void {
+ this.status$.unsubscribe();
+ }
+}
diff --git a/src/app/layout/pro/components/quick-chat/quick-chat.component.html b/src/app/layout/pro/components/quick-chat/quick-chat.component.html
new file mode 100644
index 00000000..21ec6d85
--- /dev/null
+++ b/src/app/layout/pro/components/quick-chat/quick-chat.component.html
@@ -0,0 +1,47 @@
+
+
+
+ {{ !collapsed && inited ? 'Connecting...' : 'Ng Alain Pro' }}
+
+
+
+
+
+
+
+
+
diff --git a/src/app/layout/pro/components/quick-chat/quick-chat.component.ts b/src/app/layout/pro/components/quick-chat/quick-chat.component.ts
new file mode 100644
index 00000000..db7379d6
--- /dev/null
+++ b/src/app/layout/pro/components/quick-chat/quick-chat.component.ts
@@ -0,0 +1,131 @@
+import {
+ ChangeDetectionStrategy,
+ ChangeDetectorRef,
+ Component,
+ EventEmitter,
+ HostBinding,
+ Input,
+ OnDestroy,
+ OnInit,
+ Output,
+ ViewChild
+} from '@angular/core';
+import { BooleanInput, InputBoolean, InputNumber, NumberInput } from '@delon/util';
+import { ScrollbarDirective } from '@shared';
+import { Subject } from 'rxjs';
+import { takeUntil } from 'rxjs/operators';
+
+import { LayoutProWidgetQuickChatService } from './quick-chat.service';
+
+@Component({
+ selector: 'quick-chat',
+ templateUrl: './quick-chat.component.html',
+ host: {
+ '[class.quick-chat]': 'true',
+ '[class.quick-chat__collapsed]': 'collapsed',
+ '[class.d-none]': '!showDialog'
+ },
+ changeDetection: ChangeDetectionStrategy.OnPush
+})
+export class LayoutProWidgetQuickChatComponent implements OnInit, OnDestroy {
+ static ngAcceptInputType_height: NumberInput;
+ static ngAcceptInputType_width: BooleanInput;
+ static ngAcceptInputType_collapsed: BooleanInput;
+
+ private unsubscribe$ = new Subject();
+ messages: any[] = [
+ { type: 'only-text', msg: '2018-12-12' },
+ {
+ type: 'text',
+ dir: 'left',
+ mp: './assets/logo-color.svg',
+ msg: '请一句话描述您的问题,我们来帮您解决并转到合适的人工服务。😎'
+ }
+ ];
+ text = '';
+ inited?: boolean;
+ hasMessage = false;
+
+ @ViewChild('messageScrollbar', { static: true }) messageScrollbar?: ScrollbarDirective;
+
+ // #region fileds
+ @Input() @InputNumber() height = 380;
+ @Input() @InputNumber() @HostBinding('style.width.px') width = 320;
+ @Input() @InputBoolean() collapsed = true;
+ @Output() readonly collapsedChange = new EventEmitter();
+ @Output() readonly closed = new EventEmitter();
+ // #endregion
+
+ constructor(private srv: LayoutProWidgetQuickChatService, private cdr: ChangeDetectorRef) {}
+
+ get showDialog(): boolean {
+ return this.srv.showDialog;
+ }
+
+ private scrollToBottom(): void {
+ this.cdr.detectChanges();
+ setTimeout(() => this.messageScrollbar!.scrollToBottom());
+ }
+
+ toggleCollapsed(): void {
+ this.hasMessage = false;
+ this.collapsed = !this.collapsed;
+ this.collapsedChange.emit(this.collapsed);
+ }
+
+ close(): void {
+ this.srv.close();
+ this.closed.emit(true);
+ }
+
+ enterSend(e: Event): void {
+ if ((e as KeyboardEvent).keyCode !== 13) {
+ return;
+ }
+ if (e) {
+ e.preventDefault();
+ e.stopPropagation();
+ }
+ this.send();
+ }
+
+ send(): boolean {
+ if (!this.text) {
+ return false;
+ }
+
+ if (typeof this.inited === 'undefined') {
+ this.inited = true;
+ }
+ const item = {
+ type: 'text',
+ msg: this.text,
+ dir: 'right'
+ };
+ this.srv.send(item);
+ this.messages.push(item);
+ this.text = '';
+ this.scrollToBottom();
+ return false;
+ }
+
+ ngOnInit(): void {
+ const { srv, messages, unsubscribe$ } = this;
+ srv.message.pipe(takeUntil(unsubscribe$)).subscribe(res => {
+ if (this.collapsed) {
+ this.hasMessage = true;
+ }
+ messages.push(res);
+ this.scrollToBottom();
+ });
+ srv.status.pipe(takeUntil(unsubscribe$)).subscribe(res => {
+ this.inited = res === 'online' ? false : undefined;
+ });
+ }
+
+ ngOnDestroy(): void {
+ const { unsubscribe$ } = this;
+ unsubscribe$.next();
+ unsubscribe$.complete();
+ }
+}
diff --git a/src/app/layout/pro/components/quick-chat/quick-chat.service.ts b/src/app/layout/pro/components/quick-chat/quick-chat.service.ts
new file mode 100644
index 00000000..f688b1f3
--- /dev/null
+++ b/src/app/layout/pro/components/quick-chat/quick-chat.service.ts
@@ -0,0 +1,80 @@
+import { Injectable, OnDestroy } from '@angular/core';
+import { Observable, Subject, Subscription } from 'rxjs';
+import { webSocket, WebSocketSubject } from 'rxjs/webSocket';
+
+export type QuickChatStatus = 'online' | 'offline';
+
+@Injectable({ providedIn: 'root' })
+export class LayoutProWidgetQuickChatService implements OnDestroy {
+ private url = 'wss://echo.websocket.org/?encoding=text';
+ private _ws!: WebSocketSubject<{}>;
+ private $statusOrg = new Subject();
+ private messageOrg$: Subscription | null = null;
+ private $status = new Subject();
+ private $message = new Subject<{}>();
+ showDialog = true;
+
+ constructor() {
+ this.$statusOrg.subscribe((res: any) => {
+ this.$status.next(res.type === 'open' ? 'online' : 'offline');
+ });
+ }
+
+ get ws(): WebSocketSubject<{}> {
+ return this._ws!;
+ }
+
+ get message(): Observable<{}> {
+ return this.$message.asObservable();
+ }
+
+ get status(): Observable {
+ return this.$status.asObservable();
+ }
+
+ open(): WebSocketSubject<{}> {
+ if (this._ws) {
+ return this._ws;
+ }
+
+ this._ws = webSocket({
+ url: this.url,
+ serializer: (value: any) => JSON.stringify(value),
+ deserializer: (e: MessageEvent) => {
+ const res = JSON.parse(e.data);
+ res.dir = 'left';
+ res.mp = './assets/logo-color.svg';
+ return res;
+ },
+ openObserver: this.$statusOrg,
+ closeObserver: this.$statusOrg
+ });
+ return this._ws;
+ }
+
+ close(): void {
+ this.showDialog = false;
+ if (this.messageOrg$) {
+ this.messageOrg$.unsubscribe();
+ this.messageOrg$ = null;
+ }
+ }
+
+ send(msg: {}): void {
+ if (!this._ws) {
+ this.open();
+ }
+ if (!this.messageOrg$) {
+ this.messageOrg$ = this._ws.subscribe(res => this.$message.next(res));
+ }
+ this._ws.next(msg);
+ }
+
+ ngOnDestroy(): void {
+ const { $statusOrg, $status, $message } = this;
+ this.close();
+ $statusOrg.complete();
+ $status.complete();
+ $message.complete();
+ }
+}
diff --git a/src/app/layout/pro/components/quick/quick-panel.component.html b/src/app/layout/pro/components/quick/quick-panel.component.html
new file mode 100644
index 00000000..e4d776d1
--- /dev/null
+++ b/src/app/layout/pro/components/quick/quick-panel.component.html
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{{ i.time }}
+
+
{{ i.tags }}
+
+
+
+
+
+
{{ i.title }}
+
{{ i.content }}
+
+
+
+
+
+
+
+
+
+ - Item1
+ - Item2
+
+ - Item3
+
+
+
+
+
+ Notifications
+
+ Enable notifications:
+
+
+
+ Enable audit log:
+
+
+
+ Notify on new orders:
+
+
+ Orders
+
+ Enable order tracking:
+
+
+
+ Enable orders reports:
+
+
+ Customers
+
+ Enable customer singup:
+
+
+
+ Enable customers reporting:
+
+
+ Other
+
+ Weak Mode:
+
+
+
+
+
diff --git a/src/app/layout/pro/components/quick/quick-panel.component.ts b/src/app/layout/pro/components/quick/quick-panel.component.ts
new file mode 100644
index 00000000..0dfb458c
--- /dev/null
+++ b/src/app/layout/pro/components/quick/quick-panel.component.ts
@@ -0,0 +1,42 @@
+import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit } from '@angular/core';
+import { _HttpClient } from '@delon/theme';
+import { NzMessageService } from 'ng-zorro-antd/message';
+
+import { BrandService } from '../../pro.service';
+import { ProLayout } from '../../pro.types';
+
+@Component({
+ selector: 'layout-pro-quick-panel',
+ templateUrl: './quick-panel.component.html',
+ changeDetection: ChangeDetectionStrategy.OnPush
+})
+export class LayoutProWidgetQuickPanelComponent implements OnInit {
+ type = 0;
+ data: any;
+ get layout(): ProLayout {
+ return this.pro.layout;
+ }
+
+ constructor(private pro: BrandService, private http: _HttpClient, private cd: ChangeDetectorRef, public msg: NzMessageService) {}
+
+ ngOnInit(): void {
+ this.http.get('/quick').subscribe(res => {
+ this.data = res;
+ this.changeType(0);
+ });
+ }
+
+ changeType(type: number): void {
+ this.type = type;
+ // wait checkbox & switch render
+ setTimeout(() => this.cd.detectChanges());
+ }
+
+ updateSetting(_type: string, _value: any): void {
+ this.msg.success('Success!');
+ }
+
+ setLayout(name: string, value: any): void {
+ this.pro.setLayout(name, value);
+ }
+}
diff --git a/src/app/layout/pro/components/quick/quick.component.html b/src/app/layout/pro/components/quick/quick.component.html
new file mode 100644
index 00000000..ba912ab8
--- /dev/null
+++ b/src/app/layout/pro/components/quick/quick.component.html
@@ -0,0 +1 @@
+
diff --git a/src/app/layout/pro/components/quick/quick.component.ts b/src/app/layout/pro/components/quick/quick.component.ts
new file mode 100644
index 00000000..a38f1267
--- /dev/null
+++ b/src/app/layout/pro/components/quick/quick.component.ts
@@ -0,0 +1,51 @@
+import { Direction, Directionality } from '@angular/cdk/bidi';
+import { ChangeDetectionStrategy, Component, HostListener, OnDestroy, OnInit, Optional } from '@angular/core';
+import { DrawerHelper } from '@delon/theme';
+import { Subject } from 'rxjs';
+import { takeUntil } from 'rxjs/operators';
+
+import { LayoutProWidgetQuickPanelComponent } from './quick-panel.component';
+
+@Component({
+ selector: 'layout-pro-quick',
+ templateUrl: './quick.component.html',
+ host: {
+ '[class.alain-pro__header-item]': 'true'
+ },
+ changeDetection: ChangeDetectionStrategy.OnPush
+})
+export class LayoutProWidgetQuickComponent implements OnInit, OnDestroy {
+ private destroy$ = new Subject();
+ private dir: Direction = 'ltr';
+
+ constructor(private drawerHelper: DrawerHelper, @Optional() private directionality: Directionality) {}
+
+ @HostListener('click')
+ show(): void {
+ this.drawerHelper
+ .create(``, LayoutProWidgetQuickPanelComponent, null, {
+ size: 480,
+ drawerOptions: {
+ nzTitle: undefined,
+ nzPlacement: this.dir === 'rtl' ? 'left' : 'right',
+ nzBodyStyle: {
+ 'min-height': '100%',
+ padding: 0
+ }
+ }
+ })
+ .subscribe();
+ }
+
+ ngOnInit(): void {
+ this.dir = this.directionality.value;
+ this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction: Direction) => {
+ this.dir = direction;
+ });
+ }
+
+ ngOnDestroy(): void {
+ this.destroy$.next();
+ this.destroy$.complete();
+ }
+}
diff --git a/src/app/layout/pro/components/rtl/rtl.component.ts b/src/app/layout/pro/components/rtl/rtl.component.ts
new file mode 100644
index 00000000..3b92db96
--- /dev/null
+++ b/src/app/layout/pro/components/rtl/rtl.component.ts
@@ -0,0 +1,23 @@
+import { ChangeDetectionStrategy, Component, HostListener } from '@angular/core';
+import { RTLService } from '@delon/theme';
+
+@Component({
+ selector: 'layout-pro-rtl',
+ template: `
+
+ `,
+ host: {
+ '[class.alain-pro__header-item]': 'true'
+ },
+ changeDetection: ChangeDetectionStrategy.OnPush
+})
+export class LayoutProWidgetRTLComponent {
+ constructor(public rtl: RTLService) {}
+
+ @HostListener('click')
+ toggleDirection(): void {
+ this.rtl.toggle();
+ }
+}
diff --git a/src/app/layout/pro/components/search/search.component.html b/src/app/layout/pro/components/search/search.component.html
new file mode 100644
index 00000000..b16ed7ca
--- /dev/null
+++ b/src/app/layout/pro/components/search/search.component.html
@@ -0,0 +1,9 @@
+
+
+
+
+ {{ item.no }}
+
+
diff --git a/src/app/layout/pro/components/search/search.component.ts b/src/app/layout/pro/components/search/search.component.ts
new file mode 100644
index 00000000..6f028f3d
--- /dev/null
+++ b/src/app/layout/pro/components/search/search.component.ts
@@ -0,0 +1,49 @@
+import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostListener, OnDestroy, ViewChild } from '@angular/core';
+import { _HttpClient } from '@delon/theme';
+import { Subject } from 'rxjs';
+import { debounceTime, distinctUntilChanged, switchMap } from 'rxjs/operators';
+
+@Component({
+ selector: 'layout-pro-search',
+ templateUrl: 'search.component.html',
+ host: {
+ '[class.alain-pro__header-item]': 'true',
+ '[class.alain-pro__header-search]': 'true',
+ '[class.alain-pro__header-search-show]': 'show'
+ },
+ changeDetection: ChangeDetectionStrategy.OnPush
+})
+export class LayoutProWidgetSearchComponent implements OnDestroy {
+ @ViewChild('ipt', { static: true }) private ipt!: ElementRef;
+ show = false;
+ q = '';
+ search$ = new Subject();
+ list: any[] = [];
+
+ constructor(http: _HttpClient, cdr: ChangeDetectorRef) {
+ this.search$
+ .pipe(
+ debounceTime(300),
+ distinctUntilChanged(),
+ switchMap((q: string) => http.get('/user', { no: q, pi: 1, ps: 5 }))
+ )
+ .subscribe((res: any) => {
+ this.list = res.list;
+ cdr.detectChanges();
+ });
+ }
+
+ onSearch(): void {
+ this.search$.next(this.ipt.nativeElement.value);
+ }
+
+ @HostListener('click')
+ _click(): void {
+ this.ipt.nativeElement.focus();
+ this.show = true;
+ }
+
+ ngOnDestroy(): void {
+ this.search$.unsubscribe();
+ }
+}
diff --git a/src/app/layout/pro/components/user/user.component.html b/src/app/layout/pro/components/user/user.component.html
new file mode 100644
index 00000000..ece6ea2f
--- /dev/null
+++ b/src/app/layout/pro/components/user/user.component.html
@@ -0,0 +1,25 @@
+
+
+
+
+
+ 个人中心
+
+
+
+ 个人设置
+
+
+
+ 触发错误
+
+
+
+
+ 退出登录
+
+
+
\ No newline at end of file
diff --git a/src/app/layout/pro/components/user/user.component.ts b/src/app/layout/pro/components/user/user.component.ts
new file mode 100644
index 00000000..9068909a
--- /dev/null
+++ b/src/app/layout/pro/components/user/user.component.ts
@@ -0,0 +1,29 @@
+import { ChangeDetectionStrategy, Component, Inject, OnInit } from '@angular/core';
+import { Router } from '@angular/router';
+import { DA_SERVICE_TOKEN, ITokenService } from '@delon/auth';
+import { SettingsService } from '@delon/theme';
+
+@Component({
+ selector: 'layout-pro-user',
+ templateUrl: 'user.component.html',
+ changeDetection: ChangeDetectionStrategy.OnPush
+})
+export class LayoutProWidgetUserComponent implements OnInit {
+ constructor(public settings: SettingsService, private router: Router, @Inject(DA_SERVICE_TOKEN) private tokenService: ITokenService) {}
+
+ ngOnInit(): void {
+ // mock
+ const token = this.tokenService.get() || {
+ token: 'nothing',
+ name: 'Admin',
+ avatar: './assets/logo-color.svg',
+ email: 'cipchk@qq.com'
+ };
+ this.tokenService.set(token);
+ }
+
+ logout(): void {
+ this.tokenService.clear();
+ this.router.navigateByUrl(this.tokenService.login_url!);
+ }
+}
diff --git a/src/app/layout/pro/components/widget/widget.component.html b/src/app/layout/pro/components/widget/widget.component.html
new file mode 100644
index 00000000..52de221e
--- /dev/null
+++ b/src/app/layout/pro/components/widget/widget.component.html
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/app/layout/pro/components/widget/widget.component.ts b/src/app/layout/pro/components/widget/widget.component.ts
new file mode 100644
index 00000000..b054f454
--- /dev/null
+++ b/src/app/layout/pro/components/widget/widget.component.ts
@@ -0,0 +1,20 @@
+import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';
+import { Router } from '@angular/router';
+import { DA_SERVICE_TOKEN, ITokenService } from '@delon/auth';
+
+@Component({
+ selector: '[layout-pro-header-widget]',
+ templateUrl: './widget.component.html',
+ host: {
+ '[class.alain-pro__header-right]': 'true'
+ },
+ changeDetection: ChangeDetectionStrategy.OnPush
+})
+export class LayoutProHeaderWidgetComponent {
+ constructor(private router: Router, @Inject(DA_SERVICE_TOKEN) private tokenService: ITokenService) {}
+
+ logout(): void {
+ this.tokenService.clear();
+ this.router.navigateByUrl(this.tokenService.login_url!);
+ }
+}
diff --git a/src/app/layout/pro/index.md b/src/app/layout/pro/index.md
new file mode 100644
index 00000000..764e496b
--- /dev/null
+++ b/src/app/layout/pro/index.md
@@ -0,0 +1 @@
+[Document](https://e.ng-alain.com/theme/pro)
diff --git a/src/app/layout/pro/index.ts b/src/app/layout/pro/index.ts
new file mode 100644
index 00000000..77f8ba7f
--- /dev/null
+++ b/src/app/layout/pro/index.ts
@@ -0,0 +1,67 @@
+/* eslint-disable import/order */
+// #region exports
+
+export * from './pro.types';
+export * from './pro.service';
+export * from './pro.component';
+
+// #endregion
+
+// #region widgets
+
+import { LayoutProFooterComponent } from './components/footer/footer.component';
+import { LayoutProHeaderComponent } from './components/header/header.component';
+import { LayoutProLogoComponent } from './components/logo/logo.component';
+import { LayoutProMenuComponent } from './components/menu/menu.component';
+import { LayoutProWidgetNotifyComponent } from './components/notify/notify.component';
+import { LayoutProWidgetQuickChatStatusComponent } from './components/quick-chat/quick-chat-status.component';
+import { LayoutProWidgetQuickChatComponent } from './components/quick-chat/quick-chat.component';
+import { LayoutProWidgetQuickComponent } from './components/quick/quick.component';
+import { LayoutProWidgetRTLComponent } from './components/rtl/rtl.component';
+import { LayoutProWidgetSearchComponent } from './components/search/search.component';
+import { LayoutProWidgetUserComponent } from './components/user/user.component';
+import { LayoutProHeaderWidgetComponent } from './components/widget/widget.component';
+import { LayoutProWidgetQuickPanelComponent } from './components/quick/quick-panel.component';
+import { ProSettingDrawerComponent } from './setting-drawer/setting-drawer.component';
+
+const PRO_WIDGETS = [
+ LayoutProHeaderWidgetComponent,
+ LayoutProWidgetNotifyComponent,
+ LayoutProWidgetSearchComponent,
+ LayoutProWidgetUserComponent,
+ LayoutProWidgetQuickComponent,
+ LayoutProWidgetQuickChatComponent,
+ LayoutProWidgetQuickChatStatusComponent,
+ LayoutProWidgetRTLComponent
+];
+
+// #endregion
+
+// #region entry components
+
+// #endregion
+
+// #region components
+
+import { LayoutProComponent } from './pro.component';
+
+export const PRO_COMPONENTS: Array> = [
+ LayoutProComponent,
+ LayoutProMenuComponent,
+ LayoutProLogoComponent,
+ LayoutProHeaderComponent,
+ LayoutProFooterComponent,
+ LayoutProWidgetQuickPanelComponent,
+ ProSettingDrawerComponent,
+ ...PRO_WIDGETS
+];
+
+// #endregion
+
+// #region shared components
+
+import { ProPageModule } from './shared/page';
+import { Type } from '@angular/core';
+export const PRO_SHARED_MODULES = [ProPageModule];
+
+// #endregion
diff --git a/src/app/layout/pro/pro.component.html b/src/app/layout/pro/pro.component.html
new file mode 100644
index 00000000..94c8c60b
--- /dev/null
+++ b/src/app/layout/pro/pro.component.html
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/app/layout/pro/pro.component.ts b/src/app/layout/pro/pro.component.ts
new file mode 100644
index 00000000..983b2377
--- /dev/null
+++ b/src/app/layout/pro/pro.component.ts
@@ -0,0 +1,167 @@
+import { BreakpointObserver, MediaMatcher } from '@angular/cdk/layout';
+import { DOCUMENT } from '@angular/common';
+import {
+ AfterViewInit,
+ Component,
+ ComponentFactoryResolver,
+ Inject,
+ OnDestroy,
+ OnInit,
+ Renderer2,
+ ViewChild,
+ ViewContainerRef
+} from '@angular/core';
+import { NavigationEnd, NavigationError, RouteConfigLoadStart, Router } from '@angular/router';
+import { ReuseTabService } from '@delon/abc/reuse-tab';
+import { RTL, RTLService } from '@delon/theme';
+import { ScrollService, updateHostClass } from '@delon/util/browser';
+import { environment } from '@env/environment';
+import { NzMessageService } from 'ng-zorro-antd/message';
+import { Subject } from 'rxjs';
+import { takeUntil } from 'rxjs/operators';
+
+import { BrandService } from './pro.service';
+import { ProSettingDrawerComponent } from './setting-drawer/setting-drawer.component';
+
+@Component({
+ selector: 'layout-pro',
+ templateUrl: './pro.component.html'
+ // NOTICE: If all pages using OnPush mode, you can turn it on and all `cdr.detectChanges()` codes
+ // changeDetection: ChangeDetectionStrategy.OnPush
+})
+export class LayoutProComponent implements OnInit, AfterViewInit, OnDestroy {
+ private destroy$ = new Subject();
+ private queryCls?: string;
+ @ViewChild('settingHost', { read: ViewContainerRef, static: false }) private settingHost!: ViewContainerRef;
+
+ isFetching = false;
+
+ get isMobile(): boolean {
+ return this.pro.isMobile;
+ }
+
+ get getLayoutStyle(): { [key: string]: string } | null {
+ const { isMobile, fixSiderbar, collapsed, menu, width, widthInCollapsed } = this.pro;
+ if (fixSiderbar && menu !== 'top' && !isMobile) {
+ return {
+ [this.rtl.dir === RTL ? 'paddingRight' : 'paddingLeft']: `${collapsed ? widthInCollapsed : width}px`
+ };
+ }
+ return null;
+ }
+
+ get getContentStyle(): { [key: string]: string } {
+ const { fixedHeader, headerHeight } = this.pro;
+ return {
+ margin: '24px 24px 0',
+ 'padding-top': `${fixedHeader ? headerHeight : 0}px`
+ };
+ }
+
+ private get body(): HTMLElement {
+ return this.doc.body;
+ }
+
+ constructor(
+ bm: BreakpointObserver,
+ mediaMatcher: MediaMatcher,
+ router: Router,
+ msg: NzMessageService,
+ scroll: ScrollService,
+ reuseTabSrv: ReuseTabService,
+ private resolver: ComponentFactoryResolver,
+ private renderer: Renderer2,
+ public pro: BrandService,
+ @Inject(DOCUMENT) private doc: any,
+ // private cdr: ChangeDetectorRef
+ private rtl: RTLService
+ ) {
+ // scroll to top in change page
+ router.events.pipe(takeUntil(this.destroy$)).subscribe(evt => {
+ if (!this.isFetching && evt instanceof RouteConfigLoadStart) {
+ this.isFetching = true;
+ scroll.scrollToTop();
+ }
+ if (evt instanceof NavigationError) {
+ this.isFetching = false;
+ msg.error(`无法加载${evt.url}路由`, { nzDuration: 1000 * 3 });
+ return;
+ }
+ if (!(evt instanceof NavigationEnd)) {
+ return;
+ }
+ this.isFetching = false;
+ // If have already cached router, should be don't need scroll to top
+ if (!reuseTabSrv.exists(evt.url)) {
+ scroll.scrollToTop();
+ }
+ });
+
+ // media
+ const query: { [key: string]: string } = {
+ 'screen-xs': '(max-width: 575px)',
+ 'screen-sm': '(min-width: 576px) and (max-width: 767px)',
+ 'screen-md': '(min-width: 768px) and (max-width: 991px)',
+ 'screen-lg': '(min-width: 992px) and (max-width: 1199px)',
+ 'screen-xl': '(min-width: 1200px)'
+ };
+ bm.observe([
+ '(min-width: 1200px)',
+ '(min-width: 992px) and (max-width: 1199px)',
+ '(min-width: 768px) and (max-width: 991px)',
+ '(min-width: 576px) and (max-width: 767px)',
+ '(max-width: 575px)'
+ ]).subscribe(() => {
+ this.queryCls = Object.keys(query).find(key => mediaMatcher.matchMedia(query[key]).matches);
+ this.setClass();
+ });
+ }
+
+ private setClass(): void {
+ const { body, renderer, queryCls, pro } = this;
+ updateHostClass(body, renderer, {
+ ['color-weak']: pro.layout.colorWeak,
+ [`layout-fixed`]: pro.layout.fixed,
+ [`aside-collapsed`]: pro.collapsed,
+ ['alain-pro']: true,
+ [queryCls!]: true,
+ [`alain-pro__content-${pro.layout.contentWidth}`]: true,
+ [`alain-pro__fixed`]: pro.layout.fixedHeader,
+ [`alain-pro__wide`]: pro.isFixed,
+ [`alain-pro__dark`]: pro.theme === 'dark',
+ [`alain-pro__light`]: pro.theme === 'light',
+ [`alain-pro__menu-side`]: pro.isSideMenu,
+ [`alain-pro__menu-top`]: pro.isTopMenu
+ });
+ }
+
+ ngAfterViewInit(): void {
+ // Setting componet for only developer
+ if (!environment.production) {
+ setTimeout(() => {
+ const settingFactory = this.resolver.resolveComponentFactory(ProSettingDrawerComponent);
+ this.settingHost.createComponent(settingFactory);
+ }, 22);
+ }
+ }
+
+ ngOnInit(): void {
+ const { pro, destroy$ } = this;
+ pro.notify.pipe(takeUntil(destroy$)).subscribe(() => {
+ this.setClass();
+ });
+ }
+
+ ngOnDestroy(): void {
+ const { destroy$, body, pro } = this;
+ destroy$.next();
+ destroy$.complete();
+ body.classList.remove(
+ `alain-pro__content-${pro.layout.contentWidth}`,
+ `alain-pro__fixed`,
+ `alain-pro__wide`,
+ `alain-pro__dark`,
+ `alain-pro__light`
+ );
+ }
+}
diff --git a/src/app/layout/pro/pro.service.ts b/src/app/layout/pro/pro.service.ts
new file mode 100644
index 00000000..258dbf4b
--- /dev/null
+++ b/src/app/layout/pro/pro.service.ts
@@ -0,0 +1,139 @@
+import { BreakpointObserver } from '@angular/cdk/layout';
+import { Injectable } from '@angular/core';
+import { Layout, SettingsService } from '@delon/theme';
+import { environment } from '@env/environment';
+import { BehaviorSubject, Observable } from 'rxjs';
+
+import { ProLayout, ProLayoutContentWidth, ProLayoutMenu, ProLayoutTheme } from './pro.types';
+
+@Injectable({ providedIn: 'root' })
+export class BrandService {
+ private notify$ = new BehaviorSubject(null);
+ private _isMobile = false;
+
+ // #region fields
+
+ get notify(): Observable {
+ return this.notify$.asObservable();
+ }
+
+ /**
+ * Specify width of the sidebar, If you change it, muse be synchronize change less parameter:
+ * ```less
+ * @alain-pro-sider-menu-width: 256px;
+ * ```
+ */
+ readonly width = 256;
+
+ /**
+ * Specify width of the sidebar after collapsed, If you change it, muse be synchronize change less parameter:
+ * ```less
+ * @menu-collapsed-width: 80px;
+ * ```
+ */
+ readonly widthInCollapsed = 80;
+
+ /**
+ * Specify height of the header, If you change it, muse be synchronize change less parameter:
+ * ```less
+ * @alain-pro-header-height: 64px;
+ * ```
+ */
+ readonly headerHeight = 64;
+
+ /**
+ * Specify distance from top for automatically hidden header
+ */
+ readonly autoHideHeaderTop = 300;
+
+ get isMobile(): boolean {
+ return this._isMobile;
+ }
+
+ get layout(): ProLayout {
+ return this.settings.layout as ProLayout;
+ }
+
+ get collapsed(): boolean {
+ return this.layout.collapsed;
+ }
+
+ get theme(): ProLayoutTheme {
+ return this.layout.theme;
+ }
+
+ get menu(): ProLayoutMenu {
+ return this.layout.menu;
+ }
+
+ get contentWidth(): ProLayoutContentWidth {
+ return this.layout.contentWidth;
+ }
+
+ get fixedHeader(): boolean {
+ return this.layout.fixedHeader;
+ }
+
+ get autoHideHeader(): boolean {
+ return this.layout.autoHideHeader;
+ }
+
+ get fixSiderbar(): boolean {
+ return this.layout.fixSiderbar;
+ }
+
+ get onlyIcon(): boolean {
+ return this.menu === 'side' ? false : this.layout.onlyIcon;
+ }
+
+ /** Whether the top menu */
+ get isTopMenu(): boolean {
+ return this.menu === 'top' && !this.isMobile;
+ }
+
+ /** Whether the side menu */
+ get isSideMenu(): boolean {
+ return this.menu === 'side' && !this.isMobile;
+ }
+
+ /** Whether the fixed content */
+ get isFixed(): boolean {
+ return this.contentWidth === 'fixed';
+ }
+
+ // #endregion
+
+ constructor(bm: BreakpointObserver, private settings: SettingsService) {
+ // fix layout data
+ settings.setLayout({
+ theme: 'dark',
+ menu: 'side',
+ contentWidth: 'fluid',
+ fixedHeader: false,
+ autoHideHeader: false,
+ fixSiderbar: false,
+ onlyIcon: true,
+ ...(environment as any).pro,
+ ...settings.layout // Browser cache
+ });
+
+ const mobileMedia = 'only screen and (max-width: 767.99px)';
+ bm.observe(mobileMedia).subscribe(state => this.checkMedia(state.matches));
+ this.checkMedia(bm.isMatched(mobileMedia));
+ }
+
+ private checkMedia(value: boolean): void {
+ this._isMobile = value;
+ this.layout.collapsed = this._isMobile;
+ this.notify$.next('mobile');
+ }
+
+ setLayout(name: string | Layout, value?: any): void {
+ this.settings.setLayout(name, value);
+ this.notify$.next('layout');
+ }
+
+ setCollapsed(status?: boolean): void {
+ this.setLayout('collapsed', typeof status !== 'undefined' ? status : !this.collapsed);
+ }
+}
diff --git a/src/app/layout/pro/pro.types.ts b/src/app/layout/pro/pro.types.ts
new file mode 100644
index 00000000..446a4e88
--- /dev/null
+++ b/src/app/layout/pro/pro.types.ts
@@ -0,0 +1,43 @@
+import { Layout, MenuInner } from '@delon/theme';
+
+export type ProLayoutTheme = 'light' | 'dark';
+export type ProLayoutMenu = 'side' | 'top';
+export type ProLayoutContentWidth = 'fluid' | 'fixed';
+
+export interface ProLayout extends Layout {
+ theme: ProLayoutTheme;
+ /**
+ * menu position
+ */
+ menu: ProLayoutMenu;
+ /**
+ * layout of content, only works when menu is top
+ */
+ contentWidth: ProLayoutContentWidth;
+ /**
+ * sticky header
+ */
+ fixedHeader: boolean;
+ /**
+ * auto hide header
+ */
+ autoHideHeader: boolean;
+ /**
+ * sticky siderbar
+ */
+ fixSiderbar: boolean;
+ /**
+ * Only icon of menu
+ * Limited to a temporary solution [#2183](https://github.com/NG-ZORRO/ng-zorro-antd/issues/2183)
+ */
+ onlyIcon: boolean;
+ /**
+ * Color weak
+ */
+ colorWeak: boolean;
+}
+
+export interface ProMenu extends MenuInner {
+ _parent?: ProMenu | null;
+ children?: ProMenu[];
+}
diff --git a/src/app/layout/pro/setting-drawer/setting-drawer.component.html b/src/app/layout/pro/setting-drawer/setting-drawer.component.html
new file mode 100644
index 00000000..000f9930
--- /dev/null
+++ b/src/app/layout/pro/setting-drawer/setting-drawer.component.html
@@ -0,0 +1,83 @@
+
+
+
+
整体风格设置
+
+
+

+
+
+
+
+
+
+
+
主题色
+
+
+
+
+
+
+
导航模式
+
+
+

+
+
+
+
+
+
+ 内容区域宽度
+
+
+
+
+
+
+ 固定 Header
+
+
+
+ 下滑时隐藏 Header
+
+
+
+ 固定侧边菜单
+
+
+
+ 只显示图标
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/app/layout/pro/setting-drawer/setting-drawer.component.ts b/src/app/layout/pro/setting-drawer/setting-drawer.component.ts
new file mode 100644
index 00000000..7423f040
--- /dev/null
+++ b/src/app/layout/pro/setting-drawer/setting-drawer.component.ts
@@ -0,0 +1,240 @@
+import { Direction, Directionality } from '@angular/cdk/bidi';
+import { DOCUMENT } from '@angular/common';
+import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, NgZone, OnDestroy, OnInit, Optional } from '@angular/core';
+import { copy, LazyService } from '@delon/util';
+import { NzMessageService } from 'ng-zorro-antd/message';
+import { Subject } from 'rxjs';
+import { takeUntil } from 'rxjs/operators';
+
+import { BrandService } from '../pro.service';
+import { ProLayout } from '../pro.types';
+
+@Component({
+ selector: 'pro-setting-drawer',
+ templateUrl: './setting-drawer.component.html',
+ preserveWhitespaces: false,
+ host: {
+ '[class.setting-drawer]': 'true',
+ '[class.setting-drawer-rtl]': `dir === 'rtl'`
+ },
+ changeDetection: ChangeDetectionStrategy.OnPush
+})
+export class ProSettingDrawerComponent implements OnInit, OnDestroy {
+ private loadedLess = false;
+ private destroy$ = new Subject();
+
+ get layout(): ProLayout {
+ return this.brand.layout;
+ }
+
+ collapse = false;
+ dir: Direction = 'ltr';
+
+ themes = [
+ {
+ key: 'dark',
+ title: '暗色菜单风格',
+ img: 'https://gw.alipayobjects.com/zos/rmsportal/LCkqqYNmvBEbokSDscrm.svg'
+ },
+ {
+ key: 'light',
+ title: '亮色菜单风格',
+ img: 'https://gw.alipayobjects.com/zos/rmsportal/jpRkZQMyYRryryPNtyIC.svg'
+ }
+ ];
+
+ color = '#2F54EB';
+ colors = [
+ {
+ key: '薄暮',
+ color: '#F5222D'
+ },
+ {
+ key: '火山',
+ color: '#FA541C'
+ },
+ {
+ key: '日暮',
+ color: '#FAAD14'
+ },
+ {
+ key: '明青',
+ color: '#13C2C2'
+ },
+ {
+ key: '极光绿',
+ color: '#52C41A'
+ },
+ {
+ key: '拂晓蓝(默认)',
+ color: '#1890ff'
+ },
+ {
+ key: '极客蓝',
+ color: '#2F54EB'
+ },
+ {
+ key: '酱紫',
+ color: '#722ED1'
+ }
+ ];
+
+ menuModes = [
+ {
+ key: 'side',
+ title: '侧边菜单布局',
+ img: 'https://gw.alipayobjects.com/zos/rmsportal/JopDzEhOqwOjeNTXkoje.svg'
+ },
+ {
+ key: 'top',
+ title: '顶部菜单布局',
+ img: 'https://gw.alipayobjects.com/zos/rmsportal/KDNDBbriJhLwuqMoxcAr.svg'
+ }
+ ];
+
+ contentWidths = [
+ {
+ key: 'fixed',
+ title: '定宽',
+ disabled: false
+ },
+ {
+ key: 'fluid',
+ title: '流式',
+ disabled: false
+ }
+ ];
+
+ constructor(
+ public brand: BrandService,
+ private cdr: ChangeDetectorRef,
+ private msg: NzMessageService,
+ private lazy: LazyService,
+ private zone: NgZone,
+ @Inject(DOCUMENT) private doc: any,
+ @Optional() private directionality: Directionality
+ ) {
+ this.setLayout('menu', this.brand.menu, false);
+ }
+
+ ngOnInit(): void {
+ this.dir = this.directionality.value;
+ this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction: Direction) => {
+ this.dir = direction;
+ this.cdr.detectChanges();
+ });
+ }
+
+ ngOnDestroy(): void {
+ this.destroy$.next();
+ this.destroy$.complete();
+ }
+
+ private loadLess(): Promise {
+ if (this.loadedLess) {
+ return Promise.resolve();
+ }
+ return this.lazy
+ .loadStyle('./assets/color.less', 'stylesheet/less')
+ .then(() => {
+ const lessConfigNode = this.doc.createElement('script');
+ lessConfigNode.innerHTML = `
+ window.less = {
+ async: true,
+ env: 'production',
+ javascriptEnabled: true
+ };
+ `;
+ this.doc.body.appendChild(lessConfigNode);
+ })
+ .then(() => this.lazy.loadScript('https://gw.alipayobjects.com/os/lib/less.js/3.8.1/less.min.js'))
+ .then(() => {
+ this.loadedLess = true;
+ });
+ }
+
+ private runLess(): void {
+ const { color, zone, msg, cdr: cd } = this;
+ const msgId = msg.loading(`正在编译主题!`, { nzDuration: 0 }).messageId;
+ setTimeout(() => {
+ zone.runOutsideAngular(() => {
+ this.loadLess().then(() => {
+ (window as any).less
+ .modifyVars({
+ [`@primary-color`]: color
+ })
+ .then(() => {
+ msg.success('成功');
+ msg.remove(msgId);
+ zone.run(() => cd.detectChanges());
+ });
+ });
+ });
+ }, 200);
+ }
+
+ toggle(): void {
+ this.collapse = !this.collapse;
+ }
+
+ changeColor(color: string): void {
+ this.color = color;
+ this.runLess();
+ }
+
+ setLayout(name: string, value: any, cd: boolean = true): void {
+ switch (name) {
+ case 'menu':
+ const isTop = value === 'top';
+ this.contentWidths.find(w => w.key === 'fixed')!.disabled = !isTop;
+ const newLayout = {
+ ...this.brand.layout,
+ contentWidth: isTop ? 'fixed' : 'fluid',
+ onlyIcon: isTop,
+ collapsed: isTop && !this.brand.isMobile ? false : this.brand.layout.collapsed
+ };
+ this.brand.setLayout(newLayout);
+ break;
+ case 'fixedHeader':
+ this.brand.setLayout('autoHideHeader', false);
+ break;
+ default:
+ break;
+ }
+ this.brand.setLayout(name, value);
+ if (cd) {
+ setTimeout(() => {
+ // Re-render G2 muse be trigger window resize
+ window.dispatchEvent(new Event('resize'));
+ this.cdr.markForCheck();
+ });
+ }
+ }
+
+ copy(): void {
+ const { color, layout } = this;
+ const vars: { [key: string]: string } = {
+ [`@primary-color`]: color
+ };
+ const colorVars = Object.keys(vars)
+ .map(key => `${key}: ${vars[key]};`)
+ .join('\n');
+ const layoutVars = Object.keys(layout)
+ .filter(
+ key => ~['theme', 'menu', 'contentWidth', 'fixedHeader', 'autoHideHeader', 'fixSiderbar', 'colorWeak', 'onlyIcon'].indexOf(key)
+ )
+ .map(key => {
+ const value = layout[key];
+ if (typeof value === 'boolean') {
+ return ` ${key}: ${value},`;
+ } else {
+ return ` ${key}: '${value}',`;
+ }
+ })
+ .join('\n');
+ copy(
+ `在 [src/styles/theme.less] 配置以下:\n{{colorVars}}\n\n在 [src/environments/*] 的 pro 配置以下:\nexport const environment = {\n ...\n pro: {\n{{layoutVars}}\n }\n}`
+ );
+ this.msg.success(`拷贝成功,请根据剪切板内容进行替换`);
+ }
+}
diff --git a/src/app/layout/pro/shared/page/index.ts b/src/app/layout/pro/shared/page/index.ts
new file mode 100644
index 00000000..d2b48060
--- /dev/null
+++ b/src/app/layout/pro/shared/page/index.ts
@@ -0,0 +1,3 @@
+export * from './page-grid.component';
+export * from './page-header-wrapper.component';
+export * from './page.module';
diff --git a/src/app/layout/pro/shared/page/page-grid.component.html b/src/app/layout/pro/shared/page/page-grid.component.html
new file mode 100644
index 00000000..5f69a5e3
--- /dev/null
+++ b/src/app/layout/pro/shared/page/page-grid.component.html
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/src/app/layout/pro/shared/page/page-grid.component.ts b/src/app/layout/pro/shared/page/page-grid.component.ts
new file mode 100644
index 00000000..e5312719
--- /dev/null
+++ b/src/app/layout/pro/shared/page/page-grid.component.ts
@@ -0,0 +1,80 @@
+import {
+ AfterViewInit,
+ ChangeDetectionStrategy,
+ ChangeDetectorRef,
+ Component,
+ ElementRef,
+ Inject,
+ Input,
+ OnDestroy,
+ Optional,
+ Renderer2
+} from '@angular/core';
+import { ReuseTabService } from '@delon/abc/reuse-tab';
+import { TitleService } from '@delon/theme';
+import { BooleanInput, InputBoolean } from '@delon/util';
+import { NzSafeAny } from 'ng-zorro-antd/core/types';
+import { Subject } from 'rxjs';
+import { takeUntil } from 'rxjs/operators';
+
+import { BrandService } from '../../pro.service';
+
+@Component({
+ selector: 'page-grid',
+ templateUrl: './page-grid.component.html',
+ host: {
+ '[class.alain-pro__page-grid]': 'true',
+ '[class.alain-pro__page-grid-no-spacing]': 'noSpacing',
+ '[class.alain-pro__page-grid-wide]': 'isFixed'
+ },
+ changeDetection: ChangeDetectionStrategy.OnPush
+})
+export class ProPageGridComponent implements AfterViewInit, OnDestroy {
+ static ngAcceptInputType_loading: BooleanInput;
+ static ngAcceptInputType_noSpacing: BooleanInput;
+
+ private unsubscribe$ = new Subject();
+
+ @Input() @InputBoolean() loading = false;
+ @Input() @InputBoolean() noSpacing = false;
+ @Input() style: NzSafeAny;
+ @Input()
+ set title(value: string) {
+ if (value) {
+ if (this.titleSrv) {
+ this.titleSrv.setTitle(value);
+ }
+ if (this.reuseSrv) {
+ this.reuseSrv.title = value;
+ }
+ }
+ }
+
+ get isFixed(): boolean {
+ return this.pro.isFixed;
+ }
+
+ constructor(
+ private el: ElementRef,
+ private rend: Renderer2,
+ private pro: BrandService,
+ @Optional() @Inject(TitleService) private titleSrv: TitleService,
+ @Optional() @Inject(ReuseTabService) private reuseSrv: ReuseTabService,
+ private cdr: ChangeDetectorRef
+ ) {}
+
+ ngAfterViewInit(): void {
+ if (this.style) {
+ Object.keys(this.style).forEach((key: string) => {
+ this.rend.setStyle(this.el.nativeElement, key, this.style[key]);
+ });
+ }
+ this.pro.notify.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.cdr.markForCheck());
+ }
+
+ ngOnDestroy(): void {
+ const { unsubscribe$ } = this;
+ unsubscribe$.next();
+ unsubscribe$.complete();
+ }
+}
diff --git a/src/app/layout/pro/shared/page/page-header-wrapper.component.html b/src/app/layout/pro/shared/page/page-header-wrapper.component.html
new file mode 100644
index 00000000..b81e1ab9
--- /dev/null
+++ b/src/app/layout/pro/shared/page/page-header-wrapper.component.html
@@ -0,0 +1,26 @@
+
+
+
+
+
diff --git a/src/app/layout/pro/shared/page/page-header-wrapper.component.ts b/src/app/layout/pro/shared/page/page-header-wrapper.component.ts
new file mode 100644
index 00000000..0489ca1f
--- /dev/null
+++ b/src/app/layout/pro/shared/page/page-header-wrapper.component.ts
@@ -0,0 +1,74 @@
+import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy, TemplateRef } from '@angular/core';
+import { AlainConfigService, BooleanInput, InputBoolean } from '@delon/util';
+import { Subject } from 'rxjs';
+import { takeUntil } from 'rxjs/operators';
+
+import { BrandService } from '../../pro.service';
+
+@Component({
+ selector: 'page-header-wrapper',
+ templateUrl: './page-header-wrapper.component.html',
+ host: {
+ '[class.alain-pro__page-header-wrapper]': 'true'
+ },
+ changeDetection: ChangeDetectionStrategy.OnPush
+})
+export class ProPageHeaderWrapperComponent implements AfterViewInit, OnDestroy {
+ static ngAcceptInputType_loading: BooleanInput;
+ static ngAcceptInputType_autoBreadcrumb: BooleanInput;
+ static ngAcceptInputType_autoTitle: BooleanInput;
+ static ngAcceptInputType_syncTitle: BooleanInput;
+ static ngAcceptInputType_noSpacing: BooleanInput;
+
+ private unsubscribe$ = new Subject();
+
+ // #region page-header fields
+
+ @Input() title!: string | null | TemplateRef;
+ @Input() @InputBoolean() loading = false;
+ @Input() home!: string;
+ @Input() homeLink!: string;
+ @Input() homeI18n!: string;
+ /**
+ * 自动生成导航,以当前路由从主菜单中定位
+ */
+ @Input() @InputBoolean() autoBreadcrumb = true;
+ /**
+ * 自动生成标题,以当前路由从主菜单中定位
+ */
+ @Input() @InputBoolean() autoTitle = true;
+ /**
+ * 是否自动将标题同步至 `TitleService`、`ReuseService` 下,仅 `title` 为 `string` 类型时有效
+ */
+ @Input() @InputBoolean() syncTitle = true;
+ @Input() breadcrumb!: TemplateRef;
+ @Input() logo!: TemplateRef;
+ @Input() action!: TemplateRef;
+ @Input() content!: TemplateRef;
+ @Input() extra!: TemplateRef;
+ @Input() tab!: TemplateRef;
+ @Input() phContent!: TemplateRef;
+ // #endregion
+
+ // #region fields
+
+ @Input() top!: TemplateRef;
+ @Input() @InputBoolean() noSpacing = false;
+ @Input() style?: {};
+
+ // #endregion
+
+ constructor(public pro: BrandService, cog: AlainConfigService, private cdr: ChangeDetectorRef) {
+ cog.attach(this, 'pageHeader', { syncTitle: true });
+ }
+
+ ngAfterViewInit(): void {
+ this.pro.notify.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.cdr.markForCheck());
+ }
+
+ ngOnDestroy(): void {
+ const { unsubscribe$ } = this;
+ unsubscribe$.next();
+ unsubscribe$.complete();
+ }
+}
diff --git a/src/app/layout/pro/shared/page/page.module.ts b/src/app/layout/pro/shared/page/page.module.ts
new file mode 100644
index 00000000..8d712740
--- /dev/null
+++ b/src/app/layout/pro/shared/page/page.module.ts
@@ -0,0 +1,16 @@
+import { CommonModule } from '@angular/common';
+import { NgModule } from '@angular/core';
+import { PageHeaderModule } from '@delon/abc/page-header';
+import { NzSpinModule } from 'ng-zorro-antd/spin';
+
+import { ProPageGridComponent } from './page-grid.component';
+import { ProPageHeaderWrapperComponent } from './page-header-wrapper.component';
+
+const COMPONENTS = [ProPageGridComponent, ProPageHeaderWrapperComponent];
+
+@NgModule({
+ imports: [CommonModule, NzSpinModule, PageHeaderModule],
+ declarations: COMPONENTS,
+ exports: COMPONENTS
+})
+export class ProPageModule {}
diff --git a/src/app/layout/pro/styles/app/_content.less b/src/app/layout/pro/styles/app/_content.less
new file mode 100644
index 00000000..00684ab1
--- /dev/null
+++ b/src/app/layout/pro/styles/app/_content.less
@@ -0,0 +1,58 @@
+@{alain-pro-prefix} {
+ &__main {
+ min-height: 100vh;
+ background-color: @alain-pro-main-bg;
+
+ > .ant-layout-header {
+ height: @alain-pro-header-height;
+ line-height: @alain-pro-header-height;
+ }
+
+ .router-ant();
+ }
+
+ &__page {
+ &-header {
+ &-wrapper {
+ position: relative;
+ display: block;
+ margin: -@alain-pro-content-margin -@alain-pro-content-margin 0;
+ }
+ &-content {
+ margin: @alain-pro-content-margin @alain-pro-content-margin 0;
+ }
+ }
+ &-grid {
+ display: block;
+ width: 100%;
+ height: 100%;
+ min-height: 100%;
+ transition: 0.3s;
+ &-wide {
+ max-width: @alain-pro-wide;
+ margin: 0 auto;
+ }
+ &-no-spacing {
+ width: initial;
+ margin: -@alain-pro-content-margin -@alain-pro-content-margin 0;
+ }
+ }
+ }
+}
+
+@{alain-pro-prefix}__fetching {
+ &-icon {
+ display: none;
+ }
+ & {
+ @{alain-pro-prefix}__fetching-icon {
+ display: block;
+ }
+ }
+}
+
+@media screen and (max-width: @mobile-max) {
+ @{alain-pro-prefix}__page-header-content {
+ margin: @alain-pro-content-margin 10px 0;
+ }
+}
diff --git a/src/app/layout/pro/styles/app/_footer.less b/src/app/layout/pro/styles/app/_footer.less
new file mode 100644
index 00000000..fe2b6742
--- /dev/null
+++ b/src/app/layout/pro/styles/app/_footer.less
@@ -0,0 +1,3 @@
+@{alain-pro-prefix}__footer {
+ padding: 0;
+}
diff --git a/src/app/layout/pro/styles/app/_header.less b/src/app/layout/pro/styles/app/_header.less
new file mode 100644
index 00000000..30c81384
--- /dev/null
+++ b/src/app/layout/pro/styles/app/_header.less
@@ -0,0 +1,104 @@
+@header-prefix: ~'@{alain-pro-prefix}__header';
+
+@{header-prefix} {
+ position: relative;
+ z-index: 1;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ height: @alain-pro-header-height;
+ padding: 0 12px 0 0;
+ background: @alain-pro-header-bg;
+ box-shadow: @alain-pro-header-box-shadow;
+ &-logo {
+ padding: 0 24px;
+ }
+ &-right {
+ display: flex;
+ align-items: center;
+ justify-items: center;
+ }
+ &-item {
+ position: relative;
+ display: flex;
+ align-items: center;
+ justify-items: center;
+ height: @alain-pro-header-height;
+ padding: 0 12px;
+ line-height: @alain-pro-header-height;
+ cursor: pointer;
+ transition: all 0.3s;
+ > i,
+ &-icon {
+ // fix dropdown
+ font-size: @alain-pro-header-widgets-icon-fs !important;
+ transform: none !important;
+ }
+ &,
+ &-icon {
+ color: @alain-pro-header-color;
+ }
+ &:hover {
+ background: @alain-pro-header-hover-bg;
+ &,
+ @{header-prefix}-item-icon {
+ color: @alain-pro-header-hover-color;
+ }
+ }
+ }
+ &-trigger {
+ padding: 0 24px;
+ @{header-prefix}-item-icon {
+ font-size: 20px !important;
+ }
+ }
+ &-search {
+ &:hover {
+ background: transparent;
+ }
+ }
+ &-fixed {
+ position: fixed;
+ top: 0;
+ right: 0;
+ z-index: 9;
+ width: 100%;
+ transition: width 0.2s;
+ }
+ &-hide {
+ opacity: 0;
+ transition: opacity 0.2s;
+ }
+}
+
+@media only screen and (max-width: @mobile-max) {
+ @{header-prefix} {
+ &-name {
+ display: none;
+ }
+ &-trigger {
+ padding: 0 12px;
+ }
+ &-logo {
+ position: relative;
+ padding-right: 12px;
+ padding-left: 12px;
+ }
+ }
+}
+
+layout-pro-header {
+ z-index: 1;
+}
+
+.layout-pro-header-rtl-mixin(@enabled) when(@enabled=true) {
+ [dir='rtl'] {
+ @{header-prefix} {
+ &-fixed {
+ right: inherit;
+ left: 0;
+ }
+ }
+ }
+}
+.layout-pro-header-rtl-mixin(@rtl-enabled);
diff --git a/src/app/layout/pro/styles/app/_menu.less b/src/app/layout/pro/styles/app/_menu.less
new file mode 100644
index 00000000..4f548617
--- /dev/null
+++ b/src/app/layout/pro/styles/app/_menu.less
@@ -0,0 +1,68 @@
+@{alain-pro-prefix} {
+ &__menu {
+ display: block;
+ &-item {
+ &--disabled {
+ pointer-events: none;
+ }
+ }
+ &-only-icon {
+ @{alain-pro-prefix}__menu-item {
+ padding-right: 8px !important;
+ padding-left: 8px !important;
+ &:first-child {
+ padding-left: 0;
+ }
+ }
+ @{alain-pro-prefix}__menu-icon {
+ margin-right: 0;
+ font-size: @alain-pro-top-nav-only-icon-fs;
+ }
+ }
+ &-title {
+ position: relative;
+ &-badge {
+ display: flex;
+ justify-content: center;
+ width: 18px;
+ height: 18px;
+ padding: 0;
+ font-size: 12px;
+ line-height: 18px;
+ background: @alain-pro-header-title-badge-bg;
+ border-radius: 50%;
+ > em {
+ color: @alain-pro-header-title-badge-color;
+ font-style: normal;
+ }
+ }
+ }
+ &-img {
+ width: @alain-pro-sider-menu-img-wh !important;
+ height: @alain-pro-sider-menu-img-wh !important;
+ }
+ }
+ &__side-nav {
+ @{alain-pro-prefix}__menu {
+ &-title {
+ display: flex;
+ align-items: center;
+ &-text {
+ flex: 1;
+ }
+ }
+ }
+ .@{ant-prefix}-menu-inline-collapsed {
+ @{alain-pro-prefix}__menu-title-badge {
+ position: absolute;
+ top: 0;
+ right: -16px;
+ width: 8px;
+ height: 8px;
+ > em {
+ display: none;
+ }
+ }
+ }
+ }
+}
diff --git a/src/app/layout/pro/styles/app/_sider.less b/src/app/layout/pro/styles/app/_sider.less
new file mode 100644
index 00000000..4353cc66
--- /dev/null
+++ b/src/app/layout/pro/styles/app/_sider.less
@@ -0,0 +1,148 @@
+@sider-prefix: ~'@{alain-pro-prefix}__sider';
+
+@{sider-prefix} {
+ position: relative;
+ z-index: 10;
+ display: block;
+ min-height: 100vh;
+ overflow: hidden;
+ box-shadow: 2px 0 6px rgba(0, 21, 41, 0.35);
+ &-logo {
+ position: relative;
+ display: block;
+ height: @alain-pro-header-height;
+ padding-left: ((@menu-collapsed-width - 32px) / 2);
+ overflow: hidden;
+ line-height: @alain-pro-header-height;
+ background: @alain-pro-header-logo-bg;
+ transition: all 0.3s;
+ img {
+ display: inline-block;
+ height: 32px;
+ vertical-align: middle;
+ }
+ h1 {
+ display: inline-block;
+ margin: 0 0 0 12px;
+ color: white;
+ font-weight: 600;
+ font-size: @alain-pro-logo-font-size;
+ font-family: @alain-pro-logo-font-family;
+ vertical-align: middle;
+ transition: all 0.3s;
+ }
+ }
+ &-fixed {
+ position: fixed;
+ top: 0;
+ left: 0;
+ @{alain-pro-prefix}__side-nav-wrap {
+ height: ~'calc(100vh - @{alain-pro-header-height})';
+ padding-bottom: 24px;
+ overflow-y: scroll;
+ }
+ }
+}
+
+// 小屏幕 drawer 配置信息
+@{alain-pro-prefix}__drawer {
+ .@{ant-prefix}-drawer {
+ &-wrapper-body {
+ height: 100%;
+ overflow: auto;
+ }
+ &-body {
+ height: 100vh;
+ padding: 0;
+ overflow-x: hidden;
+ }
+ }
+}
+
+// 当缩进时隐藏站点名称
+@{aside-collapsed-prefix} {
+ @{sider-prefix}-logo {
+ display: flex;
+ justify-content: center;
+ padding: 0;
+ h1 {
+ display: none;
+ }
+ }
+}
+
+@{alain-pro-prefix}__light {
+ @{sider-prefix} {
+ background-color: @alain-pro-light-color;
+ box-shadow: @alain-pro-light-slider-shadow;
+ &-logo {
+ background: @alain-pro-light-color;
+ box-shadow: 1px 1px 0 0 @border-color-split;
+ h1 {
+ color: @primary-color;
+ }
+ }
+ .@{ant-prefix}-menu-light {
+ border-right-color: transparent;
+ }
+ }
+}
+
+.alain-pro-sider-fixed-scroll-mixin(@mode) when(@mode='show') {
+ .scrollbar-mixin(~'@{ider-prefix}-fixed @{alain-pro-prefix}__side-nav-wrap');
+}
+
+.alain-pro-sider-fixed-scroll-mixin(@mode) when(@mode='hide') {
+ @{sider-prefix}-fixed @{alain-pro-prefix}__side-nav-wrap {
+ -webkit-overflow-scrolling: touch;
+ // IE
+ -ms-scroll-chaining: chained;
+ -ms-content-zooming: zoom;
+ -ms-scroll-rails: none;
+ -ms-content-zoom-limit-min: 100%;
+ -ms-content-zoom-limit-max: 500%;
+ -ms-scroll-snap-type: proximity;
+ -ms-scroll-snap-points-x: snaplist(100%, 200%, 300%, 400%, 500%);
+ -ms-overflow-style: none;
+ // Firefox
+ scrollbar-width: none;
+ // Chrome
+ &::-webkit-scrollbar {
+ width: @alain-pro-sider-scrollbar-height;
+ height: @alain-pro-sider-scrollbar-width;
+ }
+ &::-webkit-scrollbar-track {
+ -webkit-box-shadow: inset 0 0 @alain-pro-sider-scrollbar-width @alain-pro-sider-scrollbar-track-color;
+ }
+ &::-webkit-scrollbar-thumb {
+ background-color: @alain-pro-sider-scrollbar-thumb-color;
+ }
+ }
+}
+
+.alain-pro-sider-fixed-scroll-mixin(@alain-pro-sider-fixed-scroll-mode);
+
+.layout-pro-sider-rtl-mixin(@enabled) when(@enabled=true) {
+ [dir='rtl'] {
+ @{sider-prefix} {
+ &-logo {
+ padding-right: ((@menu-collapsed-width - 32px) / 2);
+ padding-left: 0;
+ h1 {
+ margin-right: 12px;
+ margin-left: 0;
+ }
+ }
+ &-fixed {
+ right: 0;
+ left: inherit;
+ }
+ }
+ @{aside-collapsed-prefix} {
+ @{sider-prefix}-logo {
+ padding: 0;
+ }
+ }
+ }
+}
+.layout-pro-sider-rtl-mixin(@rtl-enabled);
diff --git a/src/app/layout/pro/styles/app/_top-nav.less b/src/app/layout/pro/styles/app/_top-nav.less
new file mode 100644
index 00000000..bf2147b8
--- /dev/null
+++ b/src/app/layout/pro/styles/app/_top-nav.less
@@ -0,0 +1,101 @@
+@top-nav-prefix: ~'@{alain-pro-prefix}__top-nav';
+
+@{top-nav-prefix} {
+ position: relative;
+ width: 100%;
+ height: @alain-pro-header-height;
+ padding: 0 12px 0 0;
+ box-shadow: @alain-pro-header-box-shadow;
+ transition: background 0.3s, width 0.2s;
+ @{alain-pro-prefix}__menu {
+ .@{ant-prefix}-menu {
+ display: flex;
+ align-items: center;
+ height: @alain-pro-header-height;
+ border: none;
+ }
+ &-wrap {
+ flex: 1;
+ padding-right: 8px;
+ }
+ &-item {
+ height: 100%;
+ .@{ant-prefix}-menu-submenu-title {
+ height: 100%;
+ padding: 0 12px;
+ }
+ }
+ }
+ &-main {
+ display: flex;
+ height: @alain-pro-header-height;
+ padding-left: 24px;
+ &-wide {
+ max-width: @alain-pro-wide;
+ margin: auto;
+ padding-left: 4px;
+ }
+ &-left {
+ display: flex;
+ flex: 1;
+ }
+ }
+ &-logo {
+ width: 165px;
+ h1 {
+ margin: 0 0 0 12px;
+ color: #fff;
+ font-size: 16px;
+ }
+ }
+ @{alain-pro-prefix}__menu-title-badge {
+ position: absolute;
+ top: -16px;
+ right: -16px;
+ }
+}
+
+@{alain-pro-prefix} {
+ &__dark {
+ @{top-nav-prefix} {
+ @{alain-pro-prefix}__header-item {
+ &,
+ &-icon {
+ color: @menu-dark-color;
+ }
+ &:hover,
+ .@{ant-prefix}-popover-open {
+ background: @menu-dark-item-active-bg;
+ @{alain-pro-prefix}__header-item {
+ &,
+ &-icon {
+ color: @menu-dark-highlight-color;
+ }
+ }
+ }
+ }
+ }
+ }
+ &__light {
+ @{top-nav-prefix} {
+ background-color: #fff;
+ h1 {
+ color: #002140;
+ }
+ }
+ }
+}
+
+.layout-pro-top-nav-rtl-mixin(@enabled) when(@enabled=true) {
+ [dir='rtl'] {
+ @{top-nav-prefix} {
+ &-logo {
+ h1 {
+ margin-right: 12px;
+ margin-left: 0;
+ }
+ }
+ }
+ }
+}
+.layout-pro-top-nav-rtl-mixin(@rtl-enabled);
diff --git a/src/app/layout/pro/styles/app/fix/_antd.less b/src/app/layout/pro/styles/app/fix/_antd.less
new file mode 100644
index 00000000..42f15507
--- /dev/null
+++ b/src/app/layout/pro/styles/app/fix/_antd.less
@@ -0,0 +1,6 @@
+@layout-body-background: #f8f8f8;
+
+// Remoed card transition
+.@{ant-prefix}-card {
+ transition: none;
+}
diff --git a/src/app/layout/pro/styles/app/fix/_btn.less b/src/app/layout/pro/styles/app/fix/_btn.less
new file mode 100644
index 00000000..e8747b94
--- /dev/null
+++ b/src/app/layout/pro/styles/app/fix/_btn.less
@@ -0,0 +1,5 @@
+.btn-flat {
+ background: transparent !important;
+ border-color: transparent !important;
+ box-shadow: none !important;
+}
diff --git a/src/app/layout/pro/styles/app/fix/_delon.less b/src/app/layout/pro/styles/app/fix/_delon.less
new file mode 100644
index 00000000..46632446
--- /dev/null
+++ b/src/app/layout/pro/styles/app/fix/_delon.less
@@ -0,0 +1,55 @@
+@{header-prefix}-item {
+ .@{ant-prefix}-badge-count {
+ position: absolute;
+ top: 24px;
+ right: 12px;
+ }
+}
+
+// full-content component
+@{full-content-prefix} {
+ &__opened {
+ layout-pro-header,
+ @{alain-pro-prefix}__sider,
+ reuse-tab {
+ display: none !important;
+ }
+ }
+ &__hidden-title {
+ page-header {
+ display: none !important;
+ }
+ }
+}
+
+// footer-toolbar component
+@{footer-toolbar-prefix} {
+ z-index: 99;
+ width: auto;
+ &__body {
+ @{alain-pro-prefix}__body {
+ margin-bottom: @layout-gutter + @footer-toolbar-height !important;
+ }
+ }
+}
+@{alain-pro-prefix}__menu-side {
+ @{footer-toolbar-prefix} {
+ left: @alain-pro-sider-menu-width;
+ }
+}
+@{alain-pro-prefix}__menu-top {
+ @{footer-toolbar-prefix} {
+ left: 0;
+ }
+}
+
+@{aside-collapsed-prefix} {
+ @{footer-toolbar-prefix} {
+ left: @menu-collapsed-width;
+ }
+}
+
+@{page-header-prefix} {
+ padding-right: @alain-pro-content-margin;
+ padding-left: @alain-pro-content-margin;
+}
diff --git a/src/app/layout/pro/styles/app/fix/_menu.less b/src/app/layout/pro/styles/app/fix/_menu.less
new file mode 100644
index 00000000..84765e75
--- /dev/null
+++ b/src/app/layout/pro/styles/app/fix/_menu.less
@@ -0,0 +1,3 @@
+.@{ant-prefix}-dropdown-menu-item {
+ outline: none;
+}
diff --git a/src/app/layout/pro/styles/app/fix/_print.less b/src/app/layout/pro/styles/app/fix/_print.less
new file mode 100644
index 00000000..4811f8df
--- /dev/null
+++ b/src/app/layout/pro/styles/app/fix/_print.less
@@ -0,0 +1,3 @@
+@page {
+ size: a3;
+}
diff --git a/src/app/layout/pro/styles/app/fix/index.less b/src/app/layout/pro/styles/app/fix/index.less
new file mode 100644
index 00000000..8af7a2a5
--- /dev/null
+++ b/src/app/layout/pro/styles/app/fix/index.less
@@ -0,0 +1,8 @@
+@import './_antd.less';
+@import './_delon.less';
+
+// components
+@import './_btn.less';
+@import './_menu.less';
+
+@import './_print.less';
diff --git a/src/app/layout/pro/styles/app/index.less b/src/app/layout/pro/styles/app/index.less
new file mode 100644
index 00000000..d2066f55
--- /dev/null
+++ b/src/app/layout/pro/styles/app/index.less
@@ -0,0 +1,8 @@
+@import './_menu.less';
+@import './_content.less';
+@import './_header.less';
+@import './_top-nav.less';
+@import './_sider.less';
+@import './_footer.less';
+
+@import './fix/index.less';
diff --git a/src/app/layout/pro/styles/index.less b/src/app/layout/pro/styles/index.less
new file mode 100644
index 00000000..8d5eaa97
--- /dev/null
+++ b/src/app/layout/pro/styles/index.less
@@ -0,0 +1,4 @@
+@import './theme-default.less';
+
+@import './app/index.less';
+@import './widgets/index.less';
diff --git a/src/app/layout/pro/styles/theme-compact.less b/src/app/layout/pro/styles/theme-compact.less
new file mode 100644
index 00000000..72fb7993
--- /dev/null
+++ b/src/app/layout/pro/styles/theme-compact.less
@@ -0,0 +1,5 @@
+@import '~@delon/theme/theme-compact.less';
+@import './theme-default.less';
+
+@alain-pro-header-height: 56px;
+@alain-pro-header-widgets-icon-fs: 14px;
diff --git a/src/app/layout/pro/styles/theme-dark.less b/src/app/layout/pro/styles/theme-dark.less
new file mode 100644
index 00000000..54645892
--- /dev/null
+++ b/src/app/layout/pro/styles/theme-dark.less
@@ -0,0 +1,9 @@
+@import '~@delon/theme/theme-dark.less';
+@import './theme-default.less';
+
+@alain-pro-header-bg: @component-background;
+@alain-pro-header-logo-bg: @popover-background;
+@alain-pro-header-box-shadow: @shadow-1-down; // 0 1px 4px rgba(0, 21, 41, 0.08);
+@alain-pro-header-color: @text-color;
+@alain-pro-header-hover-color: #fff;
+@alain-pro-header-hover-bg: rgba(0, 0, 0, 0.025);
diff --git a/src/app/layout/pro/styles/theme-default.less b/src/app/layout/pro/styles/theme-default.less
new file mode 100644
index 00000000..38d3e54f
--- /dev/null
+++ b/src/app/layout/pro/styles/theme-default.less
@@ -0,0 +1,53 @@
+@import '~@delon/theme/theme-default.less';
+
+// Optimization for NG-ALAIN theme system
+// 针对 NG-ALAIN 主题系统的优化
+@badge-enabled: false;
+
+// PRO
+@alain-pro-prefix: ~'.alain-pro';
+@aside-collapsed-prefix: ~'.aside-collapsed';
+@alain-pro-zindex: @zindex-base;
+@alain-pro-ease: cubic-bezier(0.25, 0, 0.15, 1);
+
+@alain-pro-header-height: 64px;
+@alain-pro-header-bg: #fff;
+@alain-pro-header-logo-bg: #002140;
+@alain-pro-header-box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08);
+@alain-pro-header-color: rgba(0, 0, 0, 0.65);
+@alain-pro-header-hover-color: #000;
+@alain-pro-header-hover-bg: rgba(0, 0, 0, 0.025);
+@alain-pro-header-search-width: 210px;
+@alain-pro-header-widgets-icon-fs: 16px;
+@alain-pro-header-title-badge-bg: @primary-color;
+@alain-pro-header-title-badge-color: #fff;
+
+@alain-pro-main-bg: @layout-body-background;
+
+@alain-pro-top-nav-only-icon-fs: 16px;
+
+@alain-pro-light-color: #fff;
+@alain-pro-light-slider-shadow: 2px 0 8px 0 rgba(29, 35, 41, 0.05);
+
+@alain-pro-logo-font-size: 20px;
+@alain-pro-logo-font-family: 'Myriad Pro', 'Helvetica Neue', Arial, Helvetica, sans-serif;
+
+@alain-pro-content-margin: 24px;
+@alain-pro-wide: 1200px;
+
+@alain-pro-sider-menu-width: 256px;
+@alain-pro-sider-menu-img-wh: 14px;
+
+/**
+ * 侧边栏固定时滚动条显示风格:
+ * - hide: 隐藏滚动条(默认)
+ * - show: 显示美化后滚动条
+ */
+@alain-pro-sider-fixed-scroll-mode: 'hide';
+@alain-pro-sider-scrollbar-width: 0;
+@alain-pro-sider-scrollbar-height: 0;
+@alain-pro-sider-scrollbar-track-color: transparent;
+@alain-pro-sider-scrollbar-thumb-color: transparent;
+
+@brand-bordered-color: rgba(24, 28, 33, 0.06);
+@brand-scroll-width: 20px;
diff --git a/src/app/layout/pro/styles/widgets/_bordered.less b/src/app/layout/pro/styles/widgets/_bordered.less
new file mode 100644
index 00000000..713b91a9
--- /dev/null
+++ b/src/app/layout/pro/styles/widgets/_bordered.less
@@ -0,0 +1,34 @@
+.brand {
+ // 让 `nz-row` & `nz-col` 包含有边框效果
+ &-bordered {
+ overflow: hidden;
+ border: 1px solid @brand-bordered-color;
+
+ > [class*='ant-col-']::before,
+ > [class*='ant-col-']::after {
+ position: absolute;
+ display: block;
+ content: '';
+ }
+
+ > [class*='ant-col-']::before {
+ right: 0;
+ bottom: -1px;
+ left: 0;
+ height: 0;
+ border-top: 1px solid @brand-bordered-color;
+ }
+
+ > [class*='ant-col-']::after {
+ top: 0;
+ bottom: 0;
+ left: -1px;
+ width: 0;
+ border-left: 1px solid @brand-bordered-color;
+ }
+ }
+ // 边框大小为 `2px`
+ &-border-width-2 {
+ border-width: 2px !important;
+ }
+}
diff --git a/src/app/layout/pro/styles/widgets/_brand.less b/src/app/layout/pro/styles/widgets/_brand.less
new file mode 100644
index 00000000..e929e50a
--- /dev/null
+++ b/src/app/layout/pro/styles/widgets/_brand.less
@@ -0,0 +1,27 @@
+.brand {
+ // 加载容器
+ &-page-loading {
+ position: absolute;
+ top: 0;
+ right: 0;
+ left: 0;
+ min-height: 200px;
+ }
+ // `position: absolute` 定位到右上角
+ &-top-right {
+ position: absolute;
+ top: 8px;
+ right: 8px;
+ }
+ // `position: absolute` 定位到左上角
+ &-top-left {
+ position: absolute;
+ top: 8px;
+ left: 8px;
+ }
+ // `nz-range-picker` 日期宽度
+ &-range-picker__date {
+ display: inline-block;
+ width: 240px;
+ }
+}
diff --git a/src/app/layout/pro/styles/widgets/_collapse.less b/src/app/layout/pro/styles/widgets/_collapse.less
new file mode 100644
index 00000000..de07b113
--- /dev/null
+++ b/src/app/layout/pro/styles/widgets/_collapse.less
@@ -0,0 +1,13 @@
+.brand {
+ // 将 `nz-ollapse` 的 arrow 图标转化为右边
+ &-collapse-arrow-reverse {
+ .@{ant-prefix}-collapse > .@{ant-prefix}-collapse-item > .@{ant-prefix}-collapse-header {
+ padding-right: 40px;
+ padding-left: 12px;
+ .arrow {
+ right: 16px;
+ left: unset;
+ }
+ }
+ }
+}
diff --git a/src/app/layout/pro/styles/widgets/_search.less b/src/app/layout/pro/styles/widgets/_search.less
new file mode 100644
index 00000000..4014b5e5
--- /dev/null
+++ b/src/app/layout/pro/styles/widgets/_search.less
@@ -0,0 +1,51 @@
+@header-search-prefix: ~'@{alain-pro-prefix}__header-search';
+
+@{header-search-prefix} {
+ display: flex;
+ .anticon-search {
+ font-size: 16px;
+ cursor: pointer;
+ }
+ &-input {
+ width: 0;
+ overflow: hidden;
+ background: transparent;
+ border-radius: 0;
+ transition: width 0.3s, margin-left 0.3s;
+ .@{ant-prefix}-select-selection {
+ background: transparent;
+ }
+ input {
+ padding-right: 0;
+ padding-left: 0;
+ background: transparent;
+ border: 0;
+ outline: none;
+ box-shadow: none;
+ }
+ &,
+ &:hover,
+ &:focus {
+ border-bottom: 1px solid @border-color-base;
+ }
+ }
+ &-show {
+ &:hover {
+ background: none !important;
+ }
+ @{header-search-prefix}-input {
+ width: @alain-pro-header-search-width;
+ margin-left: 8px;
+ }
+ }
+}
+
+@{alain-pro-prefix}__dark {
+ @{alain-pro-prefix}__top-nav {
+ @{header-search-prefix}-show {
+ .@{ant-prefix}-input {
+ color: #fff;
+ }
+ }
+ }
+}
diff --git a/src/app/layout/pro/styles/widgets/_setting-drawer.less b/src/app/layout/pro/styles/widgets/_setting-drawer.less
new file mode 100644
index 00000000..17f763c7
--- /dev/null
+++ b/src/app/layout/pro/styles/widgets/_setting-drawer.less
@@ -0,0 +1,53 @@
+@{setting-drawer-prefix} {
+ &__handle-opened {
+ right: 300px !important;
+ }
+
+ &__blockChecbox {
+ display: flex;
+ &-item {
+ position: relative;
+ margin-right: 16px;
+ // box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1);
+ border-radius: @border-radius-base;
+ cursor: pointer;
+ img {
+ width: 48px;
+ }
+ }
+ &-selectIcon {
+ position: absolute;
+ top: 0;
+ right: 0;
+ width: 100%;
+ height: 100%;
+ padding-top: 15px;
+ padding-left: 24px;
+ color: @primary-color;
+ font-weight: bold;
+ font-size: 14px;
+ }
+ }
+
+ &__handle {
+ top: 114px;
+ width: 32px;
+ height: 32px;
+ background: rgba(0, 0, 0, 0.38);
+ &-icon {
+ font-size: 16px;
+ }
+ }
+}
+
+.layout-pro-setting-drawer-rtl-mixin(@enabled) when(@enabled=true) {
+ @{setting-drawer-prefix}-rtl {
+ @{setting-drawer-prefix} {
+ &__handle-opened {
+ right: inherit !important;
+ left: 300px !important;
+ }
+ }
+ }
+}
+.layout-pro-setting-drawer-rtl-mixin(@rtl-enabled);
diff --git a/src/app/layout/pro/styles/widgets/index.less b/src/app/layout/pro/styles/widgets/index.less
new file mode 100644
index 00000000..e23af717
--- /dev/null
+++ b/src/app/layout/pro/styles/widgets/index.less
@@ -0,0 +1,7 @@
+// For pro brand style
+@import './_brand.less';
+
+@import './_setting-drawer.less';
+@import './_search.less';
+@import './_bordered.less';
+@import './_collapse.less';
diff --git a/src/app/layout/pro/test/components/menu.component.spec.ts b/src/app/layout/pro/test/components/menu.component.spec.ts
new file mode 100644
index 00000000..edf966a4
--- /dev/null
+++ b/src/app/layout/pro/test/components/menu.component.spec.ts
@@ -0,0 +1,89 @@
+import { Component, DebugElement, ViewChild } from '@angular/core';
+import { ComponentFixture, fakeAsync, TestBed, tick } from '@angular/core/testing';
+import { NoopAnimationsModule } from '@angular/platform-browser/animations';
+import { Router } from '@angular/router';
+import { RouterTestingModule } from '@angular/router/testing';
+import { createTestContext } from '@delon/testing';
+import { AlainThemeModule, Menu, MenuService } from '@delon/theme';
+
+import { LayoutModule } from '../../../layout.module';
+import { LayoutProMenuComponent } from '../../components/menu/menu.component';
+import { BrandService } from '../../pro.service';
+
+describe('pro: layout-pro-menu', () => {
+ let fixture: ComponentFixture;
+ let dl: DebugElement;
+ let context: TestComponent;
+ let srv: BrandService;
+ let menuSrv: MenuService;
+ let page: PageObject;
+
+ beforeEach(() => {
+ TestBed.configureTestingModule({
+ imports: [NoopAnimationsModule, RouterTestingModule.withRoutes([]), AlainThemeModule.forRoot(), LayoutModule],
+ declarations: [TestComponent]
+ });
+ ({ fixture, dl, context } = createTestContext(TestComponent));
+ srv = TestBed.inject(BrandService);
+ menuSrv = TestBed.inject(MenuService);
+ page = new PageObject();
+ });
+
+ describe('#menu', () => {
+ it('should be ingored category menus', () => {
+ page.appendMenu([{ text: '1', children: [{ text: '1-1' }, { text: '1-2' }] }]).checkCount(2);
+ });
+
+ it('should be ingored menu item when _hidden is true', () => {
+ page.appendMenu([{ text: '1', children: [{ text: '1-1', hide: true }, { text: '1-2' }] }]).checkCount(1);
+ });
+
+ it('should be navigate router', fakeAsync(() => {
+ const router = TestBed.inject(Router);
+ spyOn(router, 'navigateByUrl');
+ page.appendMenu([{ text: '1', children: [{ text: '1-1', link: '/' }] }]);
+ page.click();
+ tick(100);
+ fixture.detectChanges();
+ expect(router.navigateByUrl).toHaveBeenCalled();
+ }));
+
+ it('should be auto closed collapse when router changed of mobile', fakeAsync(() => {
+ spyOnProperty(srv, 'isMobile').and.returnValue(true);
+ const setCollapsedSpy = spyOn(srv, 'setCollapsed');
+ page.appendMenu([{ text: '1', children: [{ text: '1-1', link: '/' }] }]).click();
+ tick(100);
+ fixture.detectChanges();
+ expect(setCollapsedSpy).toHaveBeenCalled();
+ expect(setCollapsedSpy.calls.mostRecent().args[0]).toBe(true);
+ }));
+ });
+
+ class PageObject {
+ appendMenu(menus: Menu[]): this {
+ menuSrv.add(menus);
+ fixture.detectChanges();
+ return this;
+ }
+ checkCount(count: number = 0): this {
+ expect(context.comp.menus!.length).toBe(count);
+ return this;
+ }
+ click(pos: number = 0): this {
+ const el = document.querySelectorAll('.alain-pro__menu-item')[pos] as HTMLElement;
+ el.querySelector('a')!.click();
+ fixture.detectChanges();
+ return this;
+ }
+ whenStable(): Promise {
+ return fixture.whenStable();
+ }
+ }
+});
+
+@Component({
+ template: ` `
+})
+class TestComponent {
+ @ViewChild(LayoutProMenuComponent, { static: true }) comp!: LayoutProMenuComponent;
+}
diff --git a/src/app/layout/pro/test/pro.component.spec.ts b/src/app/layout/pro/test/pro.component.spec.ts
new file mode 100644
index 00000000..4fc9dad9
--- /dev/null
+++ b/src/app/layout/pro/test/pro.component.spec.ts
@@ -0,0 +1,111 @@
+import { HttpClientTestingModule } from '@angular/common/http/testing';
+import { Component, DebugElement, ViewChild } from '@angular/core';
+import { ComponentFixture, TestBed, TestBedStatic } from '@angular/core/testing';
+import { NoopAnimationsModule } from '@angular/platform-browser/animations';
+import { RouterTestingModule } from '@angular/router/testing';
+import { createTestContext } from '@delon/testing';
+import { AlainThemeModule } from '@delon/theme';
+
+import { LayoutModule } from '../../layout.module';
+import { LayoutProComponent } from '../pro.component';
+import { BrandService } from '../pro.service';
+
+describe('pro: layout-pro', () => {
+ let injector: TestBedStatic;
+ let fixture: ComponentFixture;
+ let dl: DebugElement;
+ let context: TestComponent;
+ let srv: BrandService;
+ let page: PageObject;
+
+ beforeEach(() => {
+ injector = TestBed.configureTestingModule({
+ imports: [
+ HttpClientTestingModule,
+ NoopAnimationsModule,
+ RouterTestingModule.withRoutes([]),
+ AlainThemeModule.forRoot(),
+ LayoutModule
+ ],
+ declarations: [TestComponent]
+ });
+ });
+
+ beforeEach(() => {
+ ({ fixture, dl, context } = createTestContext(TestComponent));
+ srv = injector.inject(BrandService);
+ page = new PageObject();
+ });
+
+ describe('should set the body style', () => {
+ it('when inited', () => {
+ srv.setCollapsed(true);
+ srv.setLayout('theme', 'dark');
+ fixture.detectChanges();
+ page.checkBodyClass('alain-pro__dark').checkBodyClass('aside-collapsed');
+ });
+ it('when destroy', () => {
+ srv.setCollapsed(true);
+ srv.setLayout('theme', 'dark');
+ fixture.detectChanges();
+ page.checkBodyClass('alain-pro__dark').checkBodyClass('aside-collapsed');
+ context.comp.ngOnDestroy();
+ page.checkBodyClass('alain-pro__dark', false);
+ });
+ it('when layout changed', () => {
+ srv.setLayout('contentWidth', 'fixed');
+ fixture.detectChanges();
+ page.checkBodyClass('alain-pro__wide');
+ srv.setLayout('contentWidth', 'fluid');
+ fixture.detectChanges();
+ page.checkBodyClass('alain-pro__wide', false);
+ });
+ });
+
+ describe('#layout', () => {
+ it('should be hide slider when screen is mobile', () => {
+ const siderCls = '.alain-pro__sider';
+ const isMobile = spyOnProperty(srv, 'isMobile', 'get');
+ // Show sider when not mobile
+ isMobile.and.returnValue(false);
+ srv.setCollapsed(true);
+ fixture.detectChanges();
+ fixture
+ .whenStable()
+ .then(() => {
+ page.checkCls(siderCls, true);
+ // Hide sider when is mobile
+ isMobile.and.returnValue(true);
+ srv.setCollapsed(true);
+ fixture.detectChanges();
+ return fixture.whenStable();
+ })
+ .then(() => {
+ page.checkCls(siderCls, false);
+ });
+ });
+ });
+
+ class PageObject {
+ checkBodyClass(cls: string, status: boolean = true): this {
+ expect(document.body.classList.contains(cls)).toBe(status);
+ return this;
+ }
+ checkCls(cls: string, status: boolean = true): this {
+ const nodes = document.querySelectorAll(cls);
+ if (status) {
+ expect(nodes.length).toBe(1);
+ } else {
+ expect(nodes.length).toBe(0);
+ }
+ return this;
+ }
+ }
+});
+
+@Component({
+ template: ` `
+})
+class TestComponent {
+ @ViewChild('comp', { static: true }) comp!: LayoutProComponent;
+}
diff --git a/src/app/layout/pro/test/pro.service.spec.ts b/src/app/layout/pro/test/pro.service.spec.ts
new file mode 100644
index 00000000..7655f503
--- /dev/null
+++ b/src/app/layout/pro/test/pro.service.spec.ts
@@ -0,0 +1,81 @@
+import { TestBed, TestBedStatic } from '@angular/core/testing';
+import { AlainThemeModule } from '@delon/theme';
+import { environment } from '@env/environment';
+import { filter } from 'rxjs/operators';
+
+import { BrandService } from '../pro.service';
+
+describe('pro: BrandService', () => {
+ let injector: TestBedStatic;
+ let srv: BrandService;
+
+ beforeEach(() => {
+ injector = TestBed.configureTestingModule({
+ imports: [AlainThemeModule.forRoot()],
+ providers: [BrandService]
+ });
+ });
+
+ afterEach(() => ((environment as any).pro = null));
+
+ describe('should be initialized configuration', () => {
+ it('with default', () => {
+ (environment as any).pro = null;
+ spyOn(localStorage, 'getItem').and.returnValue(`null`);
+ srv = injector.get(BrandService);
+ expect(srv.theme).toBe('dark');
+ expect(srv.menu).toBe('side');
+ expect(srv.contentWidth).toBe('fluid');
+ });
+ it('with environment', () => {
+ (environment as any).pro = { theme: 'light' };
+ spyOn(localStorage, 'getItem').and.returnValue(`null`);
+ srv = injector.get(BrandService);
+ expect(srv.theme).toBe('light');
+ });
+ it('with settings', () => {
+ (environment as any).pro = null;
+ spyOn(localStorage, 'getItem').and.returnValue(JSON.stringify({ theme: 'light', menu: 'top' }));
+ srv = injector.get(BrandService);
+ expect(srv.theme).toBe('light');
+ expect(srv.menu).toBe('top');
+ });
+ });
+
+ describe('should be trigger notify', () => {
+ beforeEach(() => (srv = injector.get(BrandService)));
+
+ it('when mobile changed in constructor', done => {
+ srv.notify.pipe(filter(v => v != null && v === 'mobile')).subscribe(type => {
+ expect(true).toBe(true);
+ done();
+ });
+ });
+ it('when layout changed', done => {
+ srv.notify.pipe(filter(v => v != null && v === 'layout')).subscribe(type => {
+ expect(true).toBe(true);
+ done();
+ });
+ srv.setLayout('a', 1);
+ });
+ });
+
+ it('#setCollapsed', () => {
+ srv = injector.get(BrandService);
+ srv.setCollapsed(false);
+ expect(srv.collapsed).toBe(false);
+ srv.setCollapsed();
+ expect(srv.collapsed).toBe(true);
+ srv.setCollapsed();
+ expect(srv.collapsed).toBe(false);
+ });
+
+ it('should be onlyIcon always be false when menu is side', () => {
+ srv = injector.get(BrandService);
+ srv.setLayout('menu', 'top');
+ srv.setLayout('onlyIcon', true);
+ expect(srv.onlyIcon).toBe(true);
+ srv.setLayout('menu', 'side');
+ expect(srv.onlyIcon).toBe(false);
+ });
+});
diff --git a/src/app/routes/dashboard/dashboard.component.html b/src/app/routes/dashboard/dashboard.component.html
new file mode 100644
index 00000000..b8904171
--- /dev/null
+++ b/src/app/routes/dashboard/dashboard.component.html
@@ -0,0 +1,109 @@
+
+
+
+
+ 0">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 描述
+
+
+
+
+
\ No newline at end of file
diff --git a/src/app/routes/dashboard/dashboard.component.less b/src/app/routes/dashboard/dashboard.component.less
new file mode 100644
index 00000000..dcb4cf4f
--- /dev/null
+++ b/src/app/routes/dashboard/dashboard.component.less
@@ -0,0 +1,6 @@
+@import '~@delon/theme/index';
+
+:host {
+ ::ng-deep {
+ }
+}
diff --git a/src/app/routes/dashboard/dashboard.component.ts b/src/app/routes/dashboard/dashboard.component.ts
new file mode 100644
index 00000000..35a69bcf
--- /dev/null
+++ b/src/app/routes/dashboard/dashboard.component.ts
@@ -0,0 +1,166 @@
+import { Component, ChangeDetectionStrategy, ChangeDetectorRef, TemplateRef, ViewChild } from '@angular/core';
+import { STComponent, STColumn, STData, STChange } from '@delon/abc/st';
+import { _HttpClient } from '@delon/theme';
+import { NzSafeAny } from 'ng-zorro-antd/core/types';
+import { NzMessageService } from 'ng-zorro-antd/message';
+import { NzModalService } from 'ng-zorro-antd/modal';
+import { map, tap } from 'rxjs/operators';
+
+@Component({
+ selector: 'app-dashboard',
+ templateUrl: './dashboard.component.html',
+ styleUrls: ['./dashboard.component.less'],
+ changeDetection: ChangeDetectionStrategy.OnPush
+})
+export class DashboardComponent {
+ q: {
+ pi: number;
+ ps: number;
+ no: string;
+ sorter: string;
+ status: number | null;
+ statusList: NzSafeAny[];
+ } = {
+ pi: 1,
+ ps: 10,
+ no: '',
+ sorter: '',
+ status: null,
+ statusList: []
+ };
+ data: any[] = [];
+ loading = false;
+ status = [
+ { index: 0, text: '关闭', value: false, type: 'default', checked: false },
+ {
+ index: 1,
+ text: '运行中',
+ value: false,
+ type: 'processing',
+ checked: false
+ },
+ { index: 2, text: '已上线', value: false, type: 'success', checked: false },
+ { index: 3, text: '异常', value: false, type: 'error', checked: false }
+ ];
+ @ViewChild('st', { static: true })
+ st!: STComponent;
+ columns: STColumn[] = [
+ { title: '', index: 'key', type: 'checkbox' },
+ { title: '规则编号', index: 'no' },
+ { title: '描述', index: 'description' },
+ {
+ title: '服务调用次数',
+ index: 'callNo',
+ type: 'number',
+ format: item => `${item.callNo} 万`,
+ sort: {
+ compare: (a, b) => a.callNo - b.callNo
+ }
+ },
+ {
+ title: '状态',
+ index: 'status',
+ render: 'status',
+ filter: {
+ menus: this.status,
+ fn: (filter, record) => record.status === filter.index
+ }
+ },
+ {
+ title: '更新时间',
+ index: 'updatedAt',
+ type: 'date',
+ sort: {
+ compare: (a, b) => a.updatedAt - b.updatedAt
+ }
+ },
+ {
+ title: '操作',
+ buttons: [
+ {
+ text: '配置',
+ click: item => this.msg.success(`配置${item.no}`)
+ },
+ {
+ text: '订阅警报',
+ click: item => this.msg.success(`订阅警报${item.no}`)
+ }
+ ]
+ }
+ ];
+ selectedRows: STData[] = [];
+ description = '';
+ totalCallNo = 0;
+ expandForm = false;
+
+ constructor(private http: _HttpClient, public msg: NzMessageService, private modalSrv: NzModalService, private cdr: ChangeDetectorRef) {}
+
+ ngOnInit(): void {
+ this.getData();
+ }
+
+ getData(): void {
+ this.loading = true;
+ this.q.statusList = this.status.filter(w => w.checked).map(item => item.index);
+ if (this.q.status !== null && this.q.status > -1) {
+ this.q.statusList.push(this.q.status);
+ }
+ this.http
+ .get('/rule?_allow_anonymous=true', this.q)
+ .pipe(
+ map((list: Array<{ status: number; statusText: string; statusType: string }>) =>
+ list.map(i => {
+ const statusItem = this.status[i.status];
+ i.statusText = statusItem.text;
+ i.statusType = statusItem.type;
+ return i;
+ })
+ ),
+ tap(() => (this.loading = false))
+ )
+ .subscribe(res => {
+ this.data = res;
+ this.cdr.detectChanges();
+ });
+ }
+
+ stChange(e: STChange): void {
+ switch (e.type) {
+ case 'checkbox':
+ this.selectedRows = e.checkbox!;
+ this.totalCallNo = this.selectedRows.reduce((total, cv) => total + cv.callNo, 0);
+ this.cdr.detectChanges();
+ break;
+ case 'filter':
+ this.getData();
+ break;
+ }
+ }
+
+ remove(): void {
+ this.http.delete('/rule', { nos: this.selectedRows.map(i => i.no).join(',') }).subscribe(() => {
+ this.getData();
+ this.st.clearCheck();
+ });
+ }
+
+ approval(): void {
+ this.msg.success(`审批了 ${this.selectedRows.length} 笔`);
+ }
+
+ add(tpl: TemplateRef<{}>): void {
+ this.modalSrv.create({
+ nzTitle: '新建规则',
+ nzContent: tpl,
+ nzOnOk: () => {
+ this.loading = true;
+ this.http.post('/rule', { description: this.description }).subscribe(() => this.getData());
+ }
+ });
+ }
+
+ reset(): void {
+ // wait form reset updated finished
+ setTimeout(() => this.getData());
+ }
+}
diff --git a/src/app/routes/exception/403.component.ts b/src/app/routes/exception/403.component.ts
new file mode 100644
index 00000000..166a6a49
--- /dev/null
+++ b/src/app/routes/exception/403.component.ts
@@ -0,0 +1,7 @@
+import { Component } from '@angular/core';
+
+@Component({
+ selector: 'exception-403',
+ template: ` `
+})
+export class Exception403Component {}
diff --git a/src/app/routes/exception/404.component.ts b/src/app/routes/exception/404.component.ts
new file mode 100644
index 00000000..f644917b
--- /dev/null
+++ b/src/app/routes/exception/404.component.ts
@@ -0,0 +1,7 @@
+import { Component } from '@angular/core';
+
+@Component({
+ selector: 'exception-404',
+ template: ` `
+})
+export class Exception404Component {}
diff --git a/src/app/routes/exception/500.component.ts b/src/app/routes/exception/500.component.ts
new file mode 100644
index 00000000..c04c556a
--- /dev/null
+++ b/src/app/routes/exception/500.component.ts
@@ -0,0 +1,7 @@
+import { Component } from '@angular/core';
+
+@Component({
+ selector: 'exception-500',
+ template: ` `
+})
+export class Exception500Component {}
diff --git a/src/app/routes/exception/exception-routing.module.ts b/src/app/routes/exception/exception-routing.module.ts
new file mode 100644
index 00000000..db62c1c0
--- /dev/null
+++ b/src/app/routes/exception/exception-routing.module.ts
@@ -0,0 +1,20 @@
+import { NgModule } from '@angular/core';
+import { RouterModule, Routes } from '@angular/router';
+
+import { Exception403Component } from './403.component';
+import { Exception404Component } from './404.component';
+import { Exception500Component } from './500.component';
+import { ExceptionTriggerComponent } from './trigger.component';
+
+const routes: Routes = [
+ { path: '403', component: Exception403Component },
+ { path: '404', component: Exception404Component },
+ { path: '500', component: Exception500Component },
+ { path: 'trigger', component: ExceptionTriggerComponent }
+];
+
+@NgModule({
+ imports: [RouterModule.forChild(routes)],
+ exports: [RouterModule]
+})
+export class ExceptionRoutingModule {}
diff --git a/src/app/routes/exception/exception.module.ts b/src/app/routes/exception/exception.module.ts
new file mode 100644
index 00000000..88fbbe3b
--- /dev/null
+++ b/src/app/routes/exception/exception.module.ts
@@ -0,0 +1,19 @@
+import { CommonModule } from '@angular/common';
+import { NgModule } from '@angular/core';
+import { ExceptionModule as DelonExceptionModule } from '@delon/abc/exception';
+import { NzButtonModule } from 'ng-zorro-antd/button';
+import { NzCardModule } from 'ng-zorro-antd/card';
+
+import { Exception403Component } from './403.component';
+import { Exception404Component } from './404.component';
+import { Exception500Component } from './500.component';
+import { ExceptionRoutingModule } from './exception-routing.module';
+import { ExceptionTriggerComponent } from './trigger.component';
+
+const COMPONENTS = [Exception403Component, Exception404Component, Exception500Component, ExceptionTriggerComponent];
+
+@NgModule({
+ imports: [CommonModule, DelonExceptionModule, NzButtonModule, NzCardModule, ExceptionRoutingModule],
+ declarations: [...COMPONENTS]
+})
+export class ExceptionModule {}
diff --git a/src/app/routes/exception/trigger.component.ts b/src/app/routes/exception/trigger.component.ts
new file mode 100644
index 00000000..5a0c373d
--- /dev/null
+++ b/src/app/routes/exception/trigger.component.ts
@@ -0,0 +1,35 @@
+import { Component, Inject } from '@angular/core';
+import { DA_SERVICE_TOKEN, ITokenService } from '@delon/auth';
+import { _HttpClient } from '@delon/theme';
+
+@Component({
+ selector: 'exception-trigger',
+ template: `
+
+
+
+
+
+
+ `
+})
+export class ExceptionTriggerComponent {
+ types = [401, 403, 404, 500];
+
+ constructor(private http: _HttpClient, @Inject(DA_SERVICE_TOKEN) private tokenService: ITokenService) {}
+
+ go(type: number): void {
+ this.http.get(`/api/${type}`).subscribe();
+ }
+
+ refresh(): void {
+ this.tokenService.set({ token: 'invalid-token' });
+ // 必须提供一个后端地址,无法通过 Mock 来模拟
+ this.http.post(`https://localhost:5001/auth`).subscribe(
+ res => console.warn('成功', res),
+ err => {
+ console.log('最后结果失败', err);
+ }
+ );
+ }
+}
diff --git a/src/app/routes/passport/callback.component.ts b/src/app/routes/passport/callback.component.ts
new file mode 100644
index 00000000..8e205c62
--- /dev/null
+++ b/src/app/routes/passport/callback.component.ts
@@ -0,0 +1,35 @@
+import { Component, OnInit } from '@angular/core';
+import { ActivatedRoute } from '@angular/router';
+import { SocialService } from '@delon/auth';
+import { SettingsService } from '@delon/theme';
+
+@Component({
+ selector: 'app-callback',
+ template: ``,
+ providers: [SocialService]
+})
+export class CallbackComponent implements OnInit {
+ type = '';
+
+ constructor(private socialService: SocialService, private settingsSrv: SettingsService, private route: ActivatedRoute) {}
+
+ ngOnInit(): void {
+ this.type = this.route.snapshot.params.type;
+ this.mockModel();
+ }
+
+ private mockModel(): void {
+ const info = {
+ token: '123456789',
+ name: 'cipchk',
+ email: `${this.type}@${this.type}.com`,
+ id: 10000,
+ time: +new Date()
+ };
+ this.settingsSrv.setUser({
+ ...this.settingsSrv.user,
+ ...info
+ });
+ this.socialService.callback(info);
+ }
+}
diff --git a/src/app/routes/passport/lock/lock.component.html b/src/app/routes/passport/lock/lock.component.html
new file mode 100644
index 00000000..7f56ecdd
--- /dev/null
+++ b/src/app/routes/passport/lock/lock.component.html
@@ -0,0 +1,21 @@
+
\ No newline at end of file
diff --git a/src/app/routes/passport/lock/lock.component.less b/src/app/routes/passport/lock/lock.component.less
new file mode 100644
index 00000000..80251d7a
--- /dev/null
+++ b/src/app/routes/passport/lock/lock.component.less
@@ -0,0 +1,12 @@
+:host ::ng-deep {
+ .ant-card-body {
+ position: relative;
+ margin-top: 80px;
+ }
+ .avatar {
+ position: absolute;
+ top: -20px;
+ left: 50%;
+ margin-left: -20px;
+ }
+}
diff --git a/src/app/routes/passport/lock/lock.component.ts b/src/app/routes/passport/lock/lock.component.ts
new file mode 100644
index 00000000..aac5496b
--- /dev/null
+++ b/src/app/routes/passport/lock/lock.component.ts
@@ -0,0 +1,44 @@
+import { Component, Inject } from '@angular/core';
+import { FormBuilder, FormGroup, Validators } from '@angular/forms';
+import { Router } from '@angular/router';
+import { DA_SERVICE_TOKEN, ITokenService } from '@delon/auth';
+import { SettingsService, User } from '@delon/theme';
+
+@Component({
+ selector: 'passport-lock',
+ templateUrl: './lock.component.html',
+ styleUrls: ['./lock.component.less']
+})
+export class UserLockComponent {
+ f: FormGroup;
+
+ get user(): User {
+ return this.settings.user;
+ }
+
+ constructor(
+ fb: FormBuilder,
+ @Inject(DA_SERVICE_TOKEN) private tokenService: ITokenService,
+ private settings: SettingsService,
+ private router: Router
+ ) {
+ this.f = fb.group({
+ password: [null, Validators.required]
+ });
+ }
+
+ submit(): void {
+ for (const i in this.f.controls) {
+ this.f.controls[i].markAsDirty();
+ this.f.controls[i].updateValueAndValidity();
+ }
+ if (this.f.valid) {
+ console.log('Valid!');
+ console.log(this.f.value);
+ this.tokenService.set({
+ token: '123'
+ });
+ this.router.navigate(['dashboard']);
+ }
+ }
+}
diff --git a/src/app/routes/passport/login/login.component.html b/src/app/routes/passport/login/login.component.html
new file mode 100644
index 00000000..924ddc48
--- /dev/null
+++ b/src/app/routes/passport/login/login.component.html
@@ -0,0 +1,77 @@
+
+
\ No newline at end of file
diff --git a/src/app/routes/passport/login/login.component.less b/src/app/routes/passport/login/login.component.less
new file mode 100644
index 00000000..eb8287b9
--- /dev/null
+++ b/src/app/routes/passport/login/login.component.less
@@ -0,0 +1,53 @@
+@import '~@delon/theme/index';
+:host {
+ display: block;
+ width: 368px;
+ margin: 0 auto;
+ ::ng-deep {
+ .ant-tabs .ant-tabs-bar {
+ margin-bottom: 24px;
+ text-align: center;
+ border-bottom: 0;
+ }
+ .ant-tabs-tab {
+ font-size: 16px;
+ line-height: 24px;
+ }
+ .ant-input-affix-wrapper .ant-input:not(:first-child) {
+ padding-left: 4px;
+ }
+ .icon {
+ margin-left: 16px;
+ color: rgba(0, 0, 0, 0.2);
+ font-size: 24px;
+ vertical-align: middle;
+ cursor: pointer;
+ transition: color 0.3s;
+ &:hover {
+ color: @primary-color;
+ }
+ }
+ .other {
+ margin-top: 24px;
+ line-height: 22px;
+ text-align: left;
+ nz-tooltip {
+ vertical-align: middle;
+ }
+ .register {
+ float: right;
+ }
+ }
+ }
+}
+
+[data-theme='dark'] {
+ :host ::ng-deep {
+ .icon {
+ color: rgba(255, 255, 255, 0.2);
+ &:hover {
+ color: #fff;
+ }
+ }
+ }
+}
diff --git a/src/app/routes/passport/login/login.component.ts b/src/app/routes/passport/login/login.component.ts
new file mode 100644
index 00000000..99300009
--- /dev/null
+++ b/src/app/routes/passport/login/login.component.ts
@@ -0,0 +1,213 @@
+import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, OnDestroy, Optional } from '@angular/core';
+import { AbstractControl, FormBuilder, FormGroup, Validators } from '@angular/forms';
+import { Router } from '@angular/router';
+import { StartupService } from '@core';
+import { ReuseTabService } from '@delon/abc/reuse-tab';
+import { DA_SERVICE_TOKEN, ITokenService, SocialOpenType, SocialService } from '@delon/auth';
+import { SettingsService, _HttpClient } from '@delon/theme';
+import { environment } from '@env/environment';
+import { NzTabChangeEvent } from 'ng-zorro-antd/tabs';
+import { finalize } from 'rxjs/operators';
+
+@Component({
+ selector: 'passport-login',
+ templateUrl: './login.component.html',
+ styleUrls: ['./login.component.less'],
+ providers: [SocialService],
+ changeDetection: ChangeDetectionStrategy.OnPush
+})
+export class UserLoginComponent implements OnDestroy {
+ constructor(
+ fb: FormBuilder,
+ private router: Router,
+ private settingsService: SettingsService,
+ private socialService: SocialService,
+ @Optional()
+ @Inject(ReuseTabService)
+ private reuseTabService: ReuseTabService,
+ @Inject(DA_SERVICE_TOKEN) private tokenService: ITokenService,
+ private startupSrv: StartupService,
+ private http: _HttpClient,
+ private cdr: ChangeDetectorRef
+ ) {
+ this.form = fb.group({
+ userName: [null, [Validators.required]],
+ password: [null, [Validators.required]],
+ mobile: [null, [Validators.required, Validators.pattern(/^1\d{10}$/)]],
+ captcha: [null, [Validators.required]],
+ remember: [true]
+ });
+ }
+
+ // #region fields
+
+ get userName(): AbstractControl {
+ return this.form.controls.userName;
+ }
+ get password(): AbstractControl {
+ return this.form.controls.password;
+ }
+ get mobile(): AbstractControl {
+ return this.form.controls.mobile;
+ }
+ get captcha(): AbstractControl {
+ return this.form.controls.captcha;
+ }
+ form: FormGroup;
+ error = '';
+ type = 0;
+ loading = false;
+
+ // #region get captcha
+
+ count = 0;
+ interval$: any;
+
+ // #endregion
+
+ switch({ index }: NzTabChangeEvent): void {
+ this.type = index!;
+ }
+
+ getCaptcha(): void {
+ if (this.mobile.invalid) {
+ this.mobile.markAsDirty({ onlySelf: true });
+ this.mobile.updateValueAndValidity({ onlySelf: true });
+ return;
+ }
+ this.count = 59;
+ this.interval$ = setInterval(() => {
+ this.count -= 1;
+ if (this.count <= 0) {
+ clearInterval(this.interval$);
+ }
+ }, 1000);
+ }
+
+ // #endregion
+
+ submit(): void {
+ this.error = '';
+ if (this.type === 0) {
+ this.userName.markAsDirty();
+ this.userName.updateValueAndValidity();
+ this.password.markAsDirty();
+ this.password.updateValueAndValidity();
+ if (this.userName.invalid || this.password.invalid) {
+ return;
+ }
+ } else {
+ this.mobile.markAsDirty();
+ this.mobile.updateValueAndValidity();
+ this.captcha.markAsDirty();
+ this.captcha.updateValueAndValidity();
+ if (this.mobile.invalid || this.captcha.invalid) {
+ return;
+ }
+ }
+
+ // 默认配置中对所有HTTP请求都会强制 [校验](https://ng-alain.com/auth/getting-started) 用户 Token
+ // 然一般来说登录请求不需要校验,因此可以在请求URL加上:`/login?_allow_anonymous=true` 表示不触发用户 Token 校验
+ this.loading = true;
+ this.cdr.detectChanges();
+ this.befaultLogin();
+ return;
+ this.http
+ .post('/login/account?_allow_anonymous=true', {
+ type: this.type,
+ userName: this.userName.value,
+ password: this.password.value
+ })
+ .pipe(
+ finalize(() => {
+ this.loading = true;
+ this.cdr.detectChanges();
+ })
+ )
+ .subscribe(res => {
+ if (res.msg !== 'ok') {
+ this.error = res.msg;
+ this.cdr.detectChanges();
+ return;
+ }
+ // 清空路由复用信息
+ this.reuseTabService.clear();
+ // 设置用户Token信息
+ // TODO: Mock expired value
+ res.user.expired = +new Date() + 1000 * 60 * 5;
+ this.tokenService.set(res.user);
+ // 重新获取 StartupService 内容,我们始终认为应用信息一般都会受当前用户授权范围而影响
+ this.startupSrv.load().then(() => {
+ let url = this.tokenService.referrer!.url || '/';
+ if (url.includes('/passport')) {
+ url = '/';
+ }
+ this.router.navigateByUrl(url);
+ });
+ });
+ }
+
+ befaultLogin() {
+ // 清空路由复用信息
+ this.reuseTabService.clear();
+ // 设置用户Token信息
+ // TODO: Mock expired value
+ // 重新获取 StartupService 内容,我们始终认为应用信息一般都会受当前用户授权范围而影响
+ this.startupSrv.load().then(() => {
+ let url = this.tokenService.referrer!.url || '/';
+ if (url.includes('/passport')) {
+ url = '/';
+ }
+ this.router.navigateByUrl(url);
+ });
+ }
+
+ // #region social
+
+ open(type: string, openType: SocialOpenType = 'href'): void {
+ let url = ``;
+ let callback = ``;
+ if (environment.production) {
+ callback = `https://ng-alain.github.io/ng-alain/#/passport/callback/${type}`;
+ } else {
+ callback = `http://localhost:4200/#/passport/callback/${type}`;
+ }
+ switch (type) {
+ case 'auth0':
+ url = `//cipchk.auth0.com/login?client=8gcNydIDzGBYxzqV0Vm1CX_RXH-wsWo5&redirect_uri=${decodeURIComponent(callback)}`;
+ break;
+ case 'github':
+ url = `//github.com/login/oauth/authorize?client_id=9d6baae4b04a23fcafa2&response_type=code&redirect_uri=${decodeURIComponent(
+ callback
+ )}`;
+ break;
+ case 'weibo':
+ url = `https://api.weibo.com/oauth2/authorize?client_id=1239507802&response_type=code&redirect_uri=${decodeURIComponent(callback)}`;
+ break;
+ }
+ if (openType === 'window') {
+ this.socialService
+ .login(url, '/', {
+ type: 'window'
+ })
+ .subscribe(res => {
+ if (res) {
+ this.settingsService.setUser(res);
+ this.router.navigateByUrl('/');
+ }
+ });
+ } else {
+ this.socialService.login(url, '/', {
+ type: 'href'
+ });
+ }
+ }
+
+ // #endregion
+
+ ngOnDestroy(): void {
+ if (this.interval$) {
+ clearInterval(this.interval$);
+ }
+ }
+}
diff --git a/src/app/routes/passport/login2/login2.component.html b/src/app/routes/passport/login2/login2.component.html
new file mode 100644
index 00000000..b07a7154
--- /dev/null
+++ b/src/app/routes/passport/login2/login2.component.html
@@ -0,0 +1,56 @@
+
+
+
+
+
Work with us
+
Our researchers are embedded in teams across computer science, to discover, invent, and build at the largest
+ scale.
+
+
+
\ No newline at end of file
diff --git a/src/app/routes/passport/login2/login2.component.less b/src/app/routes/passport/login2/login2.component.less
new file mode 100644
index 00000000..cc23d678
--- /dev/null
+++ b/src/app/routes/passport/login2/login2.component.less
@@ -0,0 +1,28 @@
+@import '~@delon/theme/index';
+
+:host ::ng-deep {
+ .pro-passport__bg {
+ position: relative;
+ display: flex;
+ align-items: center;
+ padding: 48px;
+ @media (max-width: @screen-md-max) {
+ display: none !important;
+ }
+ .text {
+ position: relative;
+ padding: 0 64px;
+ color: #fff;
+ h1 {
+ margin-bottom: 24px;
+ color: #fff;
+ font-weight: 900;
+ font-size: 56px;
+ }
+ p {
+ font-size: 22px;
+ line-height: 32px;
+ }
+ }
+ }
+}
diff --git a/src/app/routes/passport/login2/login2.component.ts b/src/app/routes/passport/login2/login2.component.ts
new file mode 100644
index 00000000..06b0d178
--- /dev/null
+++ b/src/app/routes/passport/login2/login2.component.ts
@@ -0,0 +1,78 @@
+import { Component, OnDestroy } from '@angular/core';
+import { AbstractControl, FormBuilder, FormGroup, Validators } from '@angular/forms';
+import { Router } from '@angular/router';
+import { _HttpClient } from '@delon/theme';
+import { NzMessageService } from 'ng-zorro-antd/message';
+
+@Component({
+ selector: 'passport-login2',
+ templateUrl: './login2.component.html',
+ styleUrls: ['./login2.component.less'],
+ host: {
+ '[class.ant-row]': 'true',
+ '[class.pro-passport]': 'true'
+ }
+})
+export class UserLogin2Component implements OnDestroy {
+ form: FormGroup;
+ error = '';
+
+ constructor(fb: FormBuilder, private router: Router, private msg: NzMessageService, public http: _HttpClient) {
+ this.form = fb.group({
+ mobilePrefix: ['+86'],
+ mobile: [null, [Validators.required, Validators.pattern(/^1\d{10}$/)]],
+ captcha: [null, [Validators.required]],
+ password: [null, [Validators.required, Validators.minLength(6)]]
+ });
+ }
+
+ // #region fields
+
+ get password(): AbstractControl {
+ return this.form.controls.password;
+ }
+ get mobile(): AbstractControl {
+ return this.form.controls.mobile;
+ }
+ get captcha(): AbstractControl {
+ return this.form.controls.captcha;
+ }
+
+ // #endregion
+
+ // #region get captcha
+
+ count = 0;
+ interval$: any;
+
+ getCaptcha(): void {
+ if (this.mobile.invalid) {
+ this.mobile.markAsDirty({ onlySelf: true });
+ this.mobile.updateValueAndValidity({ onlySelf: true });
+ return;
+ }
+ this.count = 59;
+ this.interval$ = setInterval(() => {
+ this.count -= 1;
+ if (this.count <= 0) {
+ clearInterval(this.interval$);
+ }
+ }, 1000);
+ }
+
+ // #endregion
+
+ submit(): void {
+ this.error = '';
+ const data = this.form.value;
+ this.http.post('/register', data).subscribe(() => {
+ this.router.navigate(['passport', 'register-result'], { queryParams: { email: data.mail } });
+ });
+ }
+
+ ngOnDestroy(): void {
+ if (this.interval$) {
+ clearInterval(this.interval$);
+ }
+ }
+}
diff --git a/src/app/routes/passport/login3/login3.component.html b/src/app/routes/passport/login3/login3.component.html
new file mode 100644
index 00000000..3ec68a6e
--- /dev/null
+++ b/src/app/routes/passport/login3/login3.component.html
@@ -0,0 +1,51 @@
+
+
\ No newline at end of file
diff --git a/src/app/routes/passport/login3/login3.component.less b/src/app/routes/passport/login3/login3.component.less
new file mode 100644
index 00000000..63bf91c6
--- /dev/null
+++ b/src/app/routes/passport/login3/login3.component.less
@@ -0,0 +1,13 @@
+@import '~@delon/theme/index';
+
+:host ::ng-deep {
+ .pro-passport {
+ &__form {
+ position: relative;
+ max-width: 380px;
+ margin: 48px auto 0 auto;
+ background: #fff;
+ border-radius: 4px;
+ }
+ }
+}
diff --git a/src/app/routes/passport/login3/login3.component.ts b/src/app/routes/passport/login3/login3.component.ts
new file mode 100644
index 00000000..641e079c
--- /dev/null
+++ b/src/app/routes/passport/login3/login3.component.ts
@@ -0,0 +1,78 @@
+import { Component, OnDestroy } from '@angular/core';
+import { AbstractControl, FormBuilder, FormGroup, Validators } from '@angular/forms';
+import { Router } from '@angular/router';
+import { _HttpClient } from '@delon/theme';
+import { NzMessageService } from 'ng-zorro-antd/message';
+
+@Component({
+ selector: 'passport-login3',
+ templateUrl: './login3.component.html',
+ styleUrls: ['./login3.component.less'],
+ host: {
+ '[class.ant-row]': 'true',
+ '[class.pro-passport]': 'true'
+ }
+})
+export class UserLogin3Component implements OnDestroy {
+ form: FormGroup;
+ error = '';
+
+ constructor(fb: FormBuilder, private router: Router, private msg: NzMessageService, public http: _HttpClient) {
+ this.form = fb.group({
+ mobilePrefix: ['+86'],
+ mobile: [null, [Validators.required, Validators.pattern(/^1\d{10}$/)]],
+ captcha: [null, [Validators.required]],
+ password: [null, [Validators.required, Validators.minLength(6)]]
+ });
+ }
+
+ // #region fields
+
+ get password(): AbstractControl {
+ return this.form.controls.password;
+ }
+ get mobile(): AbstractControl {
+ return this.form.controls.mobile;
+ }
+ get captcha(): AbstractControl {
+ return this.form.controls.captcha;
+ }
+
+ // #endregion
+
+ // #region get captcha
+
+ count = 0;
+ interval$: any;
+
+ getCaptcha(): void {
+ if (this.mobile.invalid) {
+ this.mobile.markAsDirty({ onlySelf: true });
+ this.mobile.updateValueAndValidity({ onlySelf: true });
+ return;
+ }
+ this.count = 59;
+ this.interval$ = setInterval(() => {
+ this.count -= 1;
+ if (this.count <= 0) {
+ clearInterval(this.interval$);
+ }
+ }, 1000);
+ }
+
+ // #endregion
+
+ submit(): void {
+ this.error = '';
+ const data = this.form.value;
+ this.http.post('/register', data).subscribe(() => {
+ this.router.navigate(['passport', 'register-result'], { queryParams: { email: data.mail } });
+ });
+ }
+
+ ngOnDestroy(): void {
+ if (this.interval$) {
+ clearInterval(this.interval$);
+ }
+ }
+}
diff --git a/src/app/routes/passport/passport-routing.module.ts b/src/app/routes/passport/passport-routing.module.ts
new file mode 100644
index 00000000..ba8032bd
--- /dev/null
+++ b/src/app/routes/passport/passport-routing.module.ts
@@ -0,0 +1,51 @@
+import { NgModule } from '@angular/core';
+import { RouterModule, Routes } from '@angular/router';
+
+import { LayoutPassportComponent } from '../../layout/passport/passport.component';
+import { CallbackComponent } from './callback.component';
+import { UserLockComponent } from './lock/lock.component';
+import { UserLoginComponent } from './login/login.component';
+import { UserLogin2Component } from './login2/login2.component';
+import { UserLogin3Component } from './login3/login3.component';
+import { UserRegisterResultComponent } from './register-result/register-result.component';
+import { UserRegisterComponent } from './register/register.component';
+
+const routes: Routes = [
+ // passport
+ {
+ path: 'passport',
+ component: LayoutPassportComponent,
+ children: [
+ {
+ path: 'login',
+ component: UserLoginComponent,
+ data: { title: '登录' }
+ },
+ {
+ path: 'register',
+ component: UserRegisterComponent,
+ data: { title: '注册' }
+ },
+ {
+ path: 'register-result',
+ component: UserRegisterResultComponent,
+ data: { title: '注册结果' }
+ },
+ {
+ path: 'lock',
+ component: UserLockComponent,
+ data: { title: '锁屏' }
+ }
+ ]
+ },
+ // 单页不包裹Layout
+ { path: 'login2', component: UserLogin2Component },
+ { path: 'login3', component: UserLogin3Component },
+ { path: 'passport/callback/:type', component: CallbackComponent }
+];
+
+@NgModule({
+ imports: [RouterModule.forChild(routes)],
+ exports: [RouterModule]
+})
+export class PassportRoutingModule {}
diff --git a/src/app/routes/passport/passport.module.ts b/src/app/routes/passport/passport.module.ts
new file mode 100644
index 00000000..964929bc
--- /dev/null
+++ b/src/app/routes/passport/passport.module.ts
@@ -0,0 +1,67 @@
+import { CommonModule } from '@angular/common';
+import { NgModule } from '@angular/core';
+import { FormsModule, ReactiveFormsModule } from '@angular/forms';
+import { ResultModule } from '@delon/abc/result';
+import { SEModule } from '@delon/abc/se';
+import { AlainThemeModule } from '@delon/theme';
+import { NzAlertModule } from 'ng-zorro-antd/alert';
+import { NzAvatarModule } from 'ng-zorro-antd/avatar';
+import { NzButtonModule } from 'ng-zorro-antd/button';
+import { NzCheckboxModule } from 'ng-zorro-antd/checkbox';
+import { NzFormModule } from 'ng-zorro-antd/form';
+import { NzGridModule } from 'ng-zorro-antd/grid';
+import { NzIconModule } from 'ng-zorro-antd/icon';
+import { NzInputModule } from 'ng-zorro-antd/input';
+import { NzPopoverModule } from 'ng-zorro-antd/popover';
+import { NzProgressModule } from 'ng-zorro-antd/progress';
+import { NzSelectModule } from 'ng-zorro-antd/select';
+import { NzTabsModule } from 'ng-zorro-antd/tabs';
+import { NzToolTipModule } from 'ng-zorro-antd/tooltip';
+
+import { CallbackComponent } from './callback.component';
+import { UserLockComponent } from './lock/lock.component';
+import { UserLoginComponent } from './login/login.component';
+import { UserLogin2Component } from './login2/login2.component';
+import { UserLogin3Component } from './login3/login3.component';
+import { PassportRoutingModule } from './passport-routing.module';
+import { UserRegisterResultComponent } from './register-result/register-result.component';
+import { UserRegisterComponent } from './register/register.component';
+
+const COMPONENTS = [
+ // passport pages
+ UserLoginComponent,
+ UserRegisterComponent,
+ UserRegisterResultComponent,
+ UserLockComponent,
+ // single pages
+ UserLogin2Component,
+ UserLogin3Component,
+ CallbackComponent
+];
+
+@NgModule({
+ imports: [
+ PassportRoutingModule,
+ CommonModule,
+ FormsModule,
+ ReactiveFormsModule,
+ AlainThemeModule.forChild(),
+ NzTabsModule,
+ NzAlertModule,
+ NzFormModule,
+ NzGridModule,
+ NzInputModule,
+ NzSelectModule,
+ NzButtonModule,
+ NzCheckboxModule,
+ NzIconModule,
+ NzToolTipModule,
+ NzPopoverModule,
+ NzProgressModule,
+ NzAvatarModule,
+ SEModule,
+ ResultModule
+ ],
+ declarations: COMPONENTS
+})
+export class PassportModule {}
diff --git a/src/app/routes/passport/register-result/register-result.component.html b/src/app/routes/passport/register-result/register-result.component.html
new file mode 100644
index 00000000..1d637c6a
--- /dev/null
+++ b/src/app/routes/passport/register-result/register-result.component.html
@@ -0,0 +1,13 @@
+
+
+
+ 你的账户:{{params?.email}} 注册成功
+
+
+
+
+
\ No newline at end of file
diff --git a/src/app/routes/passport/register-result/register-result.component.ts b/src/app/routes/passport/register-result/register-result.component.ts
new file mode 100644
index 00000000..a5a7cbc0
--- /dev/null
+++ b/src/app/routes/passport/register-result/register-result.component.ts
@@ -0,0 +1,15 @@
+import { Component } from '@angular/core';
+import { ActivatedRoute } from '@angular/router';
+import { NzMessageService } from 'ng-zorro-antd/message';
+
+@Component({
+ selector: 'passport-register-result',
+ templateUrl: './register-result.component.html'
+})
+export class UserRegisterResultComponent {
+ params = { email: '' };
+ email = '';
+ constructor(route: ActivatedRoute, public msg: NzMessageService) {
+ this.params.email = this.email = route.snapshot.queryParams.email || 'ng-alain@example.com';
+ }
+}
diff --git a/src/app/routes/passport/register/register.component.html b/src/app/routes/passport/register/register.component.html
new file mode 100644
index 00000000..61d3d43f
--- /dev/null
+++ b/src/app/routes/passport/register/register.component.html
@@ -0,0 +1,89 @@
+注册
+
\ No newline at end of file
diff --git a/src/app/routes/passport/register/register.component.less b/src/app/routes/passport/register/register.component.less
new file mode 100644
index 00000000..6836413b
--- /dev/null
+++ b/src/app/routes/passport/register/register.component.less
@@ -0,0 +1,42 @@
+@import '~@delon/theme/index';
+:host {
+ display: block;
+ width: 368px;
+ margin: 0 auto;
+ ::ng-deep {
+ h3 {
+ margin-bottom: 20px;
+ font-size: 16px;
+ }
+ .submit {
+ width: 50%;
+ }
+ .login {
+ float: right;
+ line-height: @btn-height-lg;
+ }
+ }
+}
+::ng-deep {
+ .register-password-cdk {
+ .success,
+ .warning,
+ .error {
+ transition: color 0.3s;
+ }
+ .success {
+ color: @success-color;
+ }
+ .warning {
+ color: @warning-color;
+ }
+ .error {
+ color: @error-color;
+ }
+ .progress-pass > .progress {
+ .ant-progress-bg {
+ background-color: @warning-color;
+ }
+ }
+ }
+}
diff --git a/src/app/routes/passport/register/register.component.ts b/src/app/routes/passport/register/register.component.ts
new file mode 100644
index 00000000..701f05d0
--- /dev/null
+++ b/src/app/routes/passport/register/register.component.ts
@@ -0,0 +1,139 @@
+import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy } from '@angular/core';
+import { AbstractControl, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';
+import { Router } from '@angular/router';
+import { _HttpClient } from '@delon/theme';
+import { MatchControl } from '@delon/util/form';
+import { NzSafeAny } from 'ng-zorro-antd/core/types';
+import { finalize } from 'rxjs/operators';
+
+@Component({
+ selector: 'passport-register',
+ templateUrl: './register.component.html',
+ styleUrls: ['./register.component.less'],
+ changeDetection: ChangeDetectionStrategy.OnPush
+})
+export class UserRegisterComponent implements OnDestroy {
+ constructor(fb: FormBuilder, private router: Router, private http: _HttpClient, private cdr: ChangeDetectorRef) {
+ this.form = fb.group(
+ {
+ mail: [null, [Validators.required, Validators.email]],
+ password: [null, [Validators.required, Validators.minLength(6), UserRegisterComponent.checkPassword.bind(this)]],
+ confirm: [null, [Validators.required, Validators.minLength(6)]],
+ mobilePrefix: ['+86'],
+ mobile: [null, [Validators.required, Validators.pattern(/^1\d{10}$/)]],
+ captcha: [null, [Validators.required]]
+ },
+ {
+ validators: MatchControl('password', 'confirm')
+ }
+ );
+ }
+
+ // #region fields
+
+ get mail(): AbstractControl {
+ return this.form.controls.mail;
+ }
+ get password(): AbstractControl {
+ return this.form.controls.password;
+ }
+ get confirm(): AbstractControl {
+ return this.form.controls.confirm;
+ }
+ get mobile(): AbstractControl {
+ return this.form.controls.mobile;
+ }
+ get captcha(): AbstractControl {
+ return this.form.controls.captcha;
+ }
+ form: FormGroup;
+ error = '';
+ type = 0;
+ loading = false;
+ visible = false;
+ status = 'pool';
+ progress = 0;
+ passwordProgressMap: { [key: string]: 'success' | 'normal' | 'exception' } = {
+ ok: 'success',
+ pass: 'normal',
+ pool: 'exception'
+ };
+
+ // #endregion
+
+ // #region get captcha
+
+ count = 0;
+ interval$: any;
+
+ static checkPassword(control: FormControl): NzSafeAny {
+ if (!control) {
+ return null;
+ }
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
+ const self: any = this;
+ self.visible = !!control.value;
+ if (control.value && control.value.length > 9) {
+ self.status = 'ok';
+ } else if (control.value && control.value.length > 5) {
+ self.status = 'pass';
+ } else {
+ self.status = 'pool';
+ }
+
+ if (self.visible) {
+ self.progress = control.value.length * 10 > 100 ? 100 : control.value.length * 10;
+ }
+ }
+
+ getCaptcha(): void {
+ if (this.mobile.invalid) {
+ this.mobile.markAsDirty({ onlySelf: true });
+ this.mobile.updateValueAndValidity({ onlySelf: true });
+ return;
+ }
+ this.count = 59;
+ this.cdr.detectChanges();
+ this.interval$ = setInterval(() => {
+ this.count -= 1;
+ this.cdr.detectChanges();
+ if (this.count <= 0) {
+ clearInterval(this.interval$);
+ }
+ }, 1000);
+ }
+
+ // #endregion
+
+ submit(): void {
+ this.error = '';
+ Object.keys(this.form.controls).forEach(key => {
+ this.form.controls[key].markAsDirty();
+ this.form.controls[key].updateValueAndValidity();
+ });
+ if (this.form.invalid) {
+ return;
+ }
+
+ const data = this.form.value;
+ this.loading = true;
+ this.cdr.detectChanges();
+ this.http
+ .post('/register?_allow_anonymous=true', data)
+ .pipe(
+ finalize(() => {
+ this.loading = false;
+ this.cdr.detectChanges();
+ })
+ )
+ .subscribe(() => {
+ this.router.navigate(['passport', 'register-result'], { queryParams: { email: data.mail } });
+ });
+ }
+
+ ngOnDestroy(): void {
+ if (this.interval$) {
+ clearInterval(this.interval$);
+ }
+ }
+}
diff --git a/src/app/routes/routes-routing.module.ts b/src/app/routes/routes-routing.module.ts
new file mode 100644
index 00000000..0f1254e9
--- /dev/null
+++ b/src/app/routes/routes-routing.module.ts
@@ -0,0 +1,36 @@
+import { NgModule } from '@angular/core';
+import { RouterModule, Routes } from '@angular/router';
+// layout
+import { LayoutProComponent } from '@brand';
+import { environment } from '@env/environment';
+// dashboard pages
+import { DashboardComponent } from './dashboard/dashboard.component';
+
+const routes: Routes = [
+ {
+ path: '',
+ component: LayoutProComponent,
+ children: [
+ { path: '', redirectTo: 'dashboard', pathMatch: 'full' },
+ { path: 'dashboard', component: DashboardComponent },
+ ],
+ },
+ // passport
+ { path: '', loadChildren: () => import('./passport/passport.module').then((m) => m.PassportModule) },
+ { path: 'exception', loadChildren: () => import('./exception/exception.module').then((m) => m.ExceptionModule) },
+ // 单页不包裹Layout
+ { path: '**', redirectTo: 'exception/404' },
+];
+
+@NgModule({
+ imports: [
+ RouterModule.forRoot(routes, {
+ useHash: environment.useHash,
+ // NOTICE: If you use `reuse-tab` component and turn on keepingScroll you can set to `disabled`
+ // Pls refer to https://ng-alain.com/components/reuse-tab
+ scrollPositionRestoration: 'top',
+ }),
+ ],
+ exports: [RouterModule],
+})
+export class RouteRoutingModule {}
diff --git a/src/app/routes/routes.module.ts b/src/app/routes/routes.module.ts
new file mode 100644
index 00000000..4bb976fa
--- /dev/null
+++ b/src/app/routes/routes.module.ts
@@ -0,0 +1,16 @@
+import { NgModule, Type } from '@angular/core';
+
+import { SharedModule } from '@shared';
+// dashboard pages
+import { DashboardComponent } from './dashboard/dashboard.component';
+import { RouteRoutingModule } from './routes-routing.module';
+
+const COMPONENTS: Type[] = [DashboardComponent];
+const COMPONENTS_NOROUNT: Type[] = [];
+
+@NgModule({
+ imports: [SharedModule, RouteRoutingModule],
+ declarations: [...COMPONENTS, ...COMPONENTS_NOROUNT],
+ entryComponents: COMPONENTS_NOROUNT,
+})
+export class RoutesModule {}
diff --git a/src/app/shared/README.md b/src/app/shared/README.md
new file mode 100644
index 00000000..2819b60c
--- /dev/null
+++ b/src/app/shared/README.md
@@ -0,0 +1,30 @@
+# ShareModule
+
+**应** 包含定义:
+
++ 应用通用自定义业务组件
+
+**应** 导出所有包含的模块。
+
+**不应** 有 `providers` 属性。
+
+## 自定义全局组件或指令
+
+每一个组件或指令应该有一个完整的说明文件,**建议**一个合理的目录结构应该是:
+
+```
+├── components
+│ ├── comp1
+│ │ ├── index.ts
+│ │ ├── README.md
+│ ├── comp2
+│ │ ├── index.ts
+│ │ ├── README.md
+├── directives
+│ ├── dire1
+│ │ ├── index.ts
+│ │ ├── README.md
+│ ├── dire2
+│ │ ├── index.ts
+│ │ ├── README.md
+```
diff --git a/src/app/shared/components/address/address.component.html b/src/app/shared/components/address/address.component.html
new file mode 100644
index 00000000..70f0fb82
--- /dev/null
+++ b/src/app/shared/components/address/address.component.html
@@ -0,0 +1,16 @@
+
diff --git a/src/app/shared/components/address/address.component.ts b/src/app/shared/components/address/address.component.ts
new file mode 100644
index 00000000..6800e8bb
--- /dev/null
+++ b/src/app/shared/components/address/address.component.ts
@@ -0,0 +1,84 @@
+import { ChangeDetectionStrategy, ChangeDetectorRef, Component, forwardRef, Input, OnInit } from '@angular/core';
+import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';
+import { BooleanInput, InputBoolean } from '@delon/util';
+import {
+ NzCascaderExpandTrigger,
+ NzCascaderOption,
+ NzCascaderSize,
+ NzCascaderTriggerType,
+ NzShowSearchOptions
+} from 'ng-zorro-antd/cascader';
+
+import { AddressService, AddressType } from './address.service';
+
+@Component({
+ selector: 'address',
+ templateUrl: './address.component.html',
+ providers: [
+ {
+ provide: NG_VALUE_ACCESSOR,
+ useExisting: forwardRef(() => AddressComponent),
+ multi: true
+ }
+ ],
+ changeDetection: ChangeDetectionStrategy.OnPush
+})
+export class AddressComponent implements OnInit, ControlValueAccessor {
+ static ngAcceptInputType_allowClear: BooleanInput;
+ static ngAcceptInputType_autoFocus: BooleanInput;
+ static ngAcceptInputType_disabled: BooleanInput;
+
+ private onChangeFn?: (val: string) => void;
+ private onTouchedFn?: () => void;
+ value: string[] = [];
+ data?: NzCascaderOption[];
+
+ // #region fields
+
+ @Input() type: AddressType = 'pca';
+
+ // Original attributes
+ @Input() @InputBoolean() allowClear = true;
+ @Input() @InputBoolean() autoFocus = false;
+ @Input() @InputBoolean() disabled = false;
+ @Input() expandTrigger: NzCascaderExpandTrigger = 'click';
+ @Input() notFoundContent?: string;
+ @Input() size: NzCascaderSize = 'default';
+ @Input() showSearch!: boolean | NzShowSearchOptions;
+ @Input() placeHolder = '请选择所在地';
+ @Input() mouseEnterDelay = 150; // ms
+ @Input() mouseLeaveDelay = 150; // ms
+ @Input() triggerAction: NzCascaderTriggerType | NzCascaderTriggerType[] = ['click'] as NzCascaderTriggerType[];
+
+ // #endregion
+
+ constructor(private srv: AddressService, private cdr: ChangeDetectorRef) {}
+
+ change(): void {
+ this.onChangeFn!(this.value.pop()!);
+ }
+
+ ngOnInit(): void {
+ this.srv[this.type].subscribe(res => {
+ this.data = res;
+ this.cdr.markForCheck();
+ });
+ }
+
+ writeValue(geo: string): void {
+ if (geo == null) {
+ this.value = [];
+ return;
+ }
+ this.value = this.srv.toValueArr(geo, this.type);
+ }
+ registerOnChange(fn: any): void {
+ this.onChangeFn = fn;
+ }
+ registerOnTouched(fn: any): void {
+ this.onTouchedFn = fn;
+ }
+ setDisabledState?(isDisabled: boolean): void {
+ this.disabled = isDisabled;
+ }
+}
diff --git a/src/app/shared/components/address/address.module.ts b/src/app/shared/components/address/address.module.ts
new file mode 100644
index 00000000..e69c1506
--- /dev/null
+++ b/src/app/shared/components/address/address.module.ts
@@ -0,0 +1,15 @@
+import { CommonModule } from '@angular/common';
+import { NgModule } from '@angular/core';
+import { FormsModule } from '@angular/forms';
+import { NzCascaderModule } from 'ng-zorro-antd/cascader';
+
+import { AddressComponent } from './address.component';
+
+const COMPONENTS = [AddressComponent];
+
+@NgModule({
+ imports: [CommonModule, FormsModule, NzCascaderModule],
+ declarations: COMPONENTS,
+ exports: COMPONENTS
+})
+export class AddressModule {}
diff --git a/src/app/shared/components/address/address.service.ts b/src/app/shared/components/address/address.service.ts
new file mode 100644
index 00000000..27e11a82
--- /dev/null
+++ b/src/app/shared/components/address/address.service.ts
@@ -0,0 +1,79 @@
+import { Injectable } from '@angular/core';
+import { _HttpClient } from '@delon/theme';
+import { ArrayService } from '@delon/util';
+import { NzCascaderOption } from 'ng-zorro-antd/cascader';
+import { Observable, of } from 'rxjs';
+import { map } from 'rxjs/operators';
+
+export interface PCCode {
+ code?: string;
+ name?: string;
+ value?: string;
+ label?: string;
+ isLeaf?: boolean;
+ children?: PCCode[];
+}
+
+export type AddressType = 'pc' | 'pca';
+const MAXLENGTH = 6;
+
+@Injectable({ providedIn: 'root' })
+export class AddressService {
+ private _pcCode?: NzCascaderOption[];
+ private _pcaCode?: NzCascaderOption[];
+
+ /**
+ * “省份、城市” 二级联动数据,数据来源于 [pc-code.json](https://github.com/modood/Administrative-divisions-of-China/blob/master/dist/pc-code.json)
+ */
+ get pc(): Observable {
+ return this._pcCode ? of(this._pcCode) : this.getPcCode();
+ }
+
+ /**
+ * “省份、城市、区县” 三级联动数据,数据来源于 [pc-code.json](https://github.com/modood/Administrative-divisions-of-China/blob/master/dist/pca-code.json)
+ */
+ get pca(): Observable {
+ return this._pcaCode ? of(this._pcaCode) : this.getPcaCode();
+ }
+
+ constructor(private http: _HttpClient, private arrSrv: ArrayService) {}
+
+ /**
+ * 始终保持 6 位数,不足补 `0`
+ */
+ fixValue(val: string): string {
+ return `${val}000000`.substr(0, MAXLENGTH);
+ }
+
+ toValueArr(val: string, type: AddressType): string[] {
+ val = this.fixValue(val);
+ const res: string[] = [];
+ if (type === 'pc') {
+ res.push(val.substr(0, 2), val);
+ } else {
+ for (let i = 0; i < MAXLENGTH; i += 2) {
+ res.push(val.substr(0, i + 2));
+ }
+ }
+ return res.map(this.fixValue);
+ }
+
+ private map = (res: PCCode[]): NzCascaderOption[] => {
+ this.arrSrv.visitTree(res, (item: PCCode) => {
+ item.value = this.fixValue(item.code!);
+ item.label = item.name;
+ if (!item.children) {
+ item.isLeaf = true;
+ }
+ });
+ return res;
+ };
+
+ private getPcCode(): Observable {
+ return this.http.get('./assets/tmp/pc-code.json').pipe(map(this.map));
+ }
+
+ private getPcaCode(): Observable {
+ return this.http.get('./assets/tmp/pca-code.json').pipe(map(this.map));
+ }
+}
diff --git a/src/app/shared/components/address/index.en-US.md b/src/app/shared/components/address/index.en-US.md
new file mode 100644
index 00000000..aebdbca4
--- /dev/null
+++ b/src/app/shared/components/address/index.en-US.md
@@ -0,0 +1,26 @@
+---
+order: 110
+title: address
+type: Component
+---
+
+China address picker, support two styles of “province, city” or “province, city, district”, refer to the account management example.
+
+## API
+
+| Property | Description | Type | Default |
+|----------|----|----------|--------|
+| `[ngModel]` | selected value, return the city or district code | `string` | - |
+| `[type]` | Type of address | `pc,pca` | `pca` |
+| `[allowClear]` | whether allow clear | `boolean` | `true` |
+| `[autoFocus]` | whether auto focus the input box | `boolean` | `false` |
+| `[disabled]` | whether disabled select | `boolean` | `false` |
+| `[expandTrigger]` | expand current item when click or hover, one of 'click' 'hover' | `'click'|'hover'` | `'click'` |
+| `[notFoundContent]` | Specify content to show when no result matches. | `string` | - |
+| `[placeHolder]` | input placeholder | `string` | `'请选择所在地'` |
+| `[showSearch]` | Whether support search. Cannot be used with `[nzLoadData]` at the same time | `boolean|NzShowSearchOptions` | `false` |
+| `[size]` | input size, one of `large` `default` `small` | `'large'|'small'|'default'` | `'default'` |
+
+## sf widget
+
+Widget name: `address`.
\ No newline at end of file
diff --git a/src/app/shared/components/address/index.ts b/src/app/shared/components/address/index.ts
new file mode 100644
index 00000000..912a8f05
--- /dev/null
+++ b/src/app/shared/components/address/index.ts
@@ -0,0 +1,3 @@
+export * from './address.service';
+export * from './address.component';
+export * from './address.module';
diff --git a/src/app/shared/components/address/index.zh-CN.md b/src/app/shared/components/address/index.zh-CN.md
new file mode 100644
index 00000000..467f93a5
--- /dev/null
+++ b/src/app/shared/components/address/index.zh-CN.md
@@ -0,0 +1,26 @@
+---
+order: 110
+title: address
+type: Component
+---
+
+地址选择器,支持“省份、城市”或“省份、城市、区县”两种风格,参考账号管理示例。
+
+## API
+
+| 参数 | 说明 | 类型 | 默认值 |
+|----------|----|----------|--------|
+| `[ngModel]` | 指定选中项,返回城市或区县代码 | `string` | - |
+| `[type]` | 类型 | `pc,pca` | `pca` |
+| `[allowClear]` | 是否支持清除 | `boolean` | `true` |
+| `[autoFocus]` | 是否自动聚焦,当存在输入框时 | `boolean` | `false` |
+| `[disabled]` | 禁用 | `boolean` | `false` |
+| `[expandTrigger]` | 次级菜单的展开方式,可选 'click' 和 'hover' | `'click'|'hover'` | `'click'` |
+| `[notFoundContent]` | 当下拉列表为空时显示的内容 | `string` | - |
+| `[placeHolder]` | 输入框占位文本 | `string` | `'请选择所在地'` |
+| `[showSearch]` | 是否支持搜索,默认情况下对 `label` 进行全匹配搜索,不能和 `[nzLoadData]` 同时使用 | `boolean|NzShowSearchOptions` | `false` |
+| `[size]` | 输入框大小,可选 `large` `default` `small` | `'large'|'small'|'default'` | `'default'` |
+
+## sf 小部件
+
+小部件名称:`address`。
diff --git a/src/app/shared/components/captcha/captcha.component.html b/src/app/shared/components/captcha/captcha.component.html
new file mode 100644
index 00000000..1481b593
--- /dev/null
+++ b/src/app/shared/components/captcha/captcha.component.html
@@ -0,0 +1 @@
+
diff --git a/src/app/shared/components/captcha/captcha.component.less b/src/app/shared/components/captcha/captcha.component.less
new file mode 100644
index 00000000..0aaacbb6
--- /dev/null
+++ b/src/app/shared/components/captcha/captcha.component.less
@@ -0,0 +1,6 @@
+:host {
+ ::ng-deep {
+ .captcha-box {
+ }
+ }
+}
diff --git a/src/app/shared/components/captcha/captcha.component.ts b/src/app/shared/components/captcha/captcha.component.ts
new file mode 100644
index 00000000..ce1e8adb
--- /dev/null
+++ b/src/app/shared/components/captcha/captcha.component.ts
@@ -0,0 +1,79 @@
+import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
+import { keysConf } from '@conf/keys.conf';
+import { Subject } from 'rxjs';
+import { EACaptchaService } from '../../services';
+import { initNECaptchaWithFallback } from './dun';
+@Component({
+ selector: 'app-captcha',
+ templateUrl: './captcha.component.html',
+ styleUrls: ['./captcha.component.less'],
+})
+export class CaptchaComponent implements OnInit {
+ @Input() phone!: string; // 手机号
+ @Input() url!: string; // api地址
+ @Output() done = new EventEmitter();
+ captchaIns: any;
+
+ initSubject = new Subject();
+
+ constructor(public captchaService: EACaptchaService) {}
+
+ ngOnInit() {}
+
+ init() {
+ const _this = this;
+ if (this.captchaIns) {
+ return this.initSubject;
+ }
+
+ initNECaptchaWithFallback(
+ {
+ element: '#captcha',
+ captchaId: keysConf.yidun_capcha_id,
+ mode: 'popup',
+ width: '320px',
+ onClose: () => {
+ // 弹出关闭结束后将会触发该函数
+ },
+ onVerify: (err: any, data: any) => {
+ // console.log('🚀 ~ init ~ data', data);
+ if (data?.validate) {
+ // 验证通过,获取验证码
+ _this.captchaDone(data?.validate);
+ }
+ },
+ },
+ (instance: any) => {
+ // console.log('🚀 ~ initCaptcha ~ instance', instance);
+ // 初始化成功后得到验证实例instance,可以调用实例的方法
+ _this.captchaIns = instance;
+ this.initSubject.next(_this.captchaIns);
+ },
+ (err: any) => {
+ // 初始化失败后触发该函数,err对象描述当前错误信息
+ },
+ );
+
+ return this.initSubject;
+ }
+ /* 网易盾验证通过 */
+ captchaDone(validate: any) {
+ this.captchaService.getCaptchaByDun(this.phone, validate, this.url || undefined).subscribe((res: any) => {
+ // console.log('🚀 ~ 验证通过发送验证码=>', res);
+ if (res) {
+ this.captchaService.msgSrv.success('验证码发送成功!');
+ this.done.emit(null);
+ } else {
+ this.captchaService.msgSrv.warning(res.msg);
+ }
+ });
+ }
+ popUp() {
+ console.log(222222222222222222222222222222222222222);
+ if (!this.captchaIns) {
+ this.init();
+ }
+ this.captchaIns.refresh();
+ this.captchaIns.popUp();
+ }
+}
diff --git a/src/app/shared/components/captcha/dun.helper.ts b/src/app/shared/components/captcha/dun.helper.ts
new file mode 100644
index 00000000..4e3cb70b
--- /dev/null
+++ b/src/app/shared/components/captcha/dun.helper.ts
@@ -0,0 +1,84 @@
+import { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';
+import { ComponentPortal } from '@angular/cdk/portal';
+import { ComponentRef, Injectable } from '@angular/core';
+import { Observable, Subject } from 'rxjs';
+import { CaptchaComponent } from './captcha.component';
+
+@Injectable({
+ providedIn: 'root',
+})
+export class DunHelper {
+ captchacontainerRef!: ComponentRef;
+ userInfo;
+
+ constructor(private overlay: Overlay) {
+ this.userInfo = JSON.parse(localStorage.getItem('user') || '');
+ }
+
+ /**
+ * 组件初始化
+ * @param phone 手机号
+ * @param url 发送验证码请求地址
+ */
+ init(phone: string, url?: string): Subject {
+ const overlayRef = this.createOverlay();
+ const containerPortal = new ComponentPortal(CaptchaComponent);
+ this.captchacontainerRef = overlayRef.attach(containerPortal);
+ this.captchacontainerRef.instance.phone = phone;
+ this.captchacontainerRef.instance.url = url || '';
+ return this.captchacontainerRef.instance.init();
+ }
+
+ /**
+ * 弹出滑块验证
+ * @param phone 手机号
+ * @param url 发送验证码请求地址
+ */
+ popUp(phone?: string, url?: string): Observable {
+ if (this.captchacontainerRef) {
+ this.destory();
+ }
+
+ this.init(phone || this.userInfo?.phone, url).subscribe((instance) => {
+ if (instance) {
+ this.captchacontainerRef.instance.popUp();
+ }
+ });
+
+ /* if (!this.captchacontainerRef) {
+ this.init(phone || this.userInfo?.phone, url).subscribe(instance => {
+ if (instance) {
+ this.captchacontainerRef.instance.popUp();
+ }
+ });
+ } else {
+ if (!!phone && !!url) {
+ this.init(phone || this.userInfo?.phone, url).subscribe(instance => {
+ if (instance) {
+ this.captchacontainerRef.instance.popUp();
+ }
+ });
+ } else {
+ this.captchacontainerRef.instance.popUp();
+ }
+ } */
+ return this.captchacontainerRef.instance.done;
+ }
+
+ /** 组件销毁 */
+ destory() {
+ this.captchacontainerRef.destroy();
+ }
+
+ private createOverlay(): OverlayRef {
+ const overlayConfig = new OverlayConfig({
+ hasBackdrop: false,
+ scrollStrategy: this.overlay.scrollStrategies.block(),
+ positionStrategy: this.overlay.position().global(),
+ backdropClass: 'captcha-back-drop',
+ panelClass: 'captcha-overlay',
+ });
+
+ return this.overlay.create(overlayConfig);
+ }
+}
diff --git a/src/app/shared/components/captcha/dun.ts b/src/app/shared/components/captcha/dun.ts
new file mode 100644
index 00000000..ca5e2fd6
--- /dev/null
+++ b/src/app/shared/components/captcha/dun.ts
@@ -0,0 +1,353 @@
+/* eslint-disable no-undef */
+let errorCallbackCount: any = 0;
+
+// 常量
+const DEFAULT_VALIDATE =
+ 'QjGAuvoHrcpuxlbw7cp4WnIbbjzG4rtSlpc7EDovNHQS._ujzPZpeCInSxIT4WunuDDh8dRZYF2GbBGWyHlC6q5uEi9x-TXT9j7J705vSsBXyTar7aqFYyUltKYJ7f4Y2TXm_1Mn6HFkb4M7URQ_rWtpxQ5D6hCgNJYC0HpRE7.2sttqYKLoi7yP1KHzK-PptdHHkVwb77cwS2EJW7Mj_PsOtnPBubTmTZLpnRECJR99dWTVC11xYG0sx8dJNLUxUFxEyzTfX4nSmQz_T5sXATRKHtVAz7nmV0De5unmflfAlUwMGKlCT1khBtewlgN5nHvyxeD8Z1_fPVzi9oznl-sbegj6lKfCWezmLcwft8.4yaVh6SlzXJq-FnSK.euq9OBd5jYc82ge2_hEca1fGU--SkPRzgwkzew4O4qjdS2utdPwFONnhKAIMJRPUmCV4lPHG1OeRDvyNV8sCnuFMw7leasxIhPoycl4pm5bNy70Z1laozEGJgItVNr3'; // 默认validate
+const FALLBACK_LANG: any = {
+ 'zh-CN': '前方拥堵,已自动跳过验证',
+ en: 'captcha error,Verified automatically',
+};
+const CACHE_MIN = 1000 * 60; // 缓存时长单位,1分钟
+const REQUEST_SCRIPT_ERROR = 502;
+
+const RESOURCE_CACHE: any = {};
+
+// 工具函数
+function loadScript(src: any, cb: any) {
+ const head: any = document.head || document.getElementsByTagName('head')[0];
+ const script: any = document.createElement('script');
+
+ cb = cb || function () {};
+
+ script.type = 'text/javascript';
+ script.charset = 'utf8';
+ script.async = true;
+ script.src = src;
+
+ if (!('onload' in script)) {
+ script.onreadystatechange = function () {
+ if (this.readyState !== 'complete' && this.readyState !== 'loaded') {
+ return;
+ }
+ this.onreadystatechange = null;
+ cb(null, script); // there is no way to catch loading errors in IE8
+ };
+ }
+
+ script.onload = function () {
+ this.onerror = this.onload = null;
+ cb(null, script);
+ };
+ script.onerror = function () {
+ // because even IE9 works not like others
+ this.onerror = this.onload = null;
+ cb(new Error('Failed to load ' + this.src), script);
+ };
+
+ head.appendChild(script);
+}
+
+function joinUrl(protocol: any, host: any, path: any) {
+ protocol = protocol || '';
+ host = host || '';
+ path = path || '';
+ if (protocol) {
+ protocol = protocol.replace(/:?\/{0,2}$/, '://');
+ }
+ if (host) {
+ const matched = host.match(/^([-0-9a-zA-Z.:]*)(\/.*)?/);
+ host = matched[1];
+ path = (matched[2] || '') + '/' + path;
+ }
+ !host && (protocol = '');
+
+ return protocol + host + path;
+}
+
+function setDomText(el: any, value: any) {
+ if (value === undefined) {
+ return;
+ }
+ const nodeType = el.nodeType;
+ if (nodeType === 1 || nodeType === 11 || nodeType === 9) {
+ if (typeof el.textContent === 'string') {
+ el.textContent = value;
+ } else {
+ el.innerText = value;
+ }
+ }
+}
+
+function queryAllByClassName(selector: any, node: any) {
+ node = node || document;
+ if (node.querySelectorAll) {
+ return node.querySelectorAll(selector);
+ }
+ if (!/^\.[^.]+$/.test(selector)) {
+ return [];
+ }
+ if (node.getElementsByClassName) {
+ return node.getElementsByClassName(selector);
+ }
+
+ const children = node.getElementsByTagName('*');
+ let current;
+ const result = [];
+ const className = selector.slice(1);
+ for (let i = 0, l = children.length; i < l; i++) {
+ current = children[i];
+ if (~(' ' + current.className + ' ').indexOf(' ' + className + ' ')) {
+ result.push(current);
+ }
+ }
+ return result;
+}
+
+function assert(condition: any, msg: any) {
+ if (!condition) {
+ throw new Error('[NECaptcha] ' + msg);
+ }
+}
+
+function isInteger(val: any) {
+ if (Number.isInteger) {
+ return Number.isInteger(val);
+ }
+ return typeof val === 'number' && isFinite(val) && Math.floor(val) === val;
+}
+
+function isArray(val: any) {
+ if (Array.isArray) {
+ return Array.isArray(val);
+ }
+ return Object.prototype.toString.call(val) === '[object Array]';
+}
+
+function ObjectAssign(a: any, b: any, c: any) {
+ if (Object.assign) {
+ // return Object.assign.apply(null, arguments);
+ return Object.assign.apply(null, arguments as any);
+ }
+
+ const target: any = {};
+ for (let index = 1; index < arguments.length; index++) {
+ const source = arguments[index];
+ if (source != null) {
+ for (const key in source) {
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
+ target[key] = source[key];
+ }
+ }
+ }
+ }
+ return target;
+}
+
+function getTimestamp(msec: any) {
+ msec = !msec && msec !== 0 ? msec : 1;
+ return parseInt((new Date().valueOf() / msec).toString(), 10);
+}
+
+// 降级方案
+function normalizeFallbackConfig(customConfig: any) {
+ const siteProtocol = window.location.protocol.replace(':', '');
+ const defaultConf: any = {
+ protocol: siteProtocol === 'http' ? 'http' : 'https',
+ lang: 'zh-CN',
+ errorFallbackCount: 3,
+ };
+ const config: any = ObjectAssign({}, defaultConf, customConfig);
+
+ const errorFallbackCount: any = config.errorFallbackCount;
+ assert(
+ errorFallbackCount === undefined || (isInteger(errorFallbackCount) && errorFallbackCount >= 1),
+ "errorFallbackCount must be an integer, and it's value greater than or equal one",
+ );
+
+ return config;
+}
+
+function loadResource(config: any, cb: any) {
+ if ((window as any).initNECaptcha) {
+ return cb(null);
+ }
+ function genUrl(server: any) {
+ const path = 'load.min.js';
+ let _urls = [];
+ if (isArray(server)) {
+ for (let i = 0, len = server.length; i < len; i++) {
+ _urls.push(joinUrl(config.protocol, server[i], path));
+ }
+ } else {
+ const url = joinUrl(config.protocol, server, path);
+ _urls = [url, url];
+ }
+
+ return _urls;
+ }
+ const urls = genUrl(config.staticServer || ['cstaticdun.126.net', 'cstaticdun1.126.net', 'cstatic.dun.163yun.com']);
+
+ function step(i: any) {
+ const url = urls[i] + '?v=' + getTimestamp(CACHE_MIN);
+ loadScript(url, function (err: any) {
+ if (err || !(window as any).initNECaptcha) {
+ // loadjs的全局变量
+ i = i + 1;
+ if (i === urls.length) {
+ return cb(new Error('Failed to load script(' + url + ').' + (err ? err.message : 'unreliable script')));
+ }
+ return step(i);
+ }
+ return cb(null);
+ });
+ }
+ step(0);
+}
+
+/*
+ * entry: initNECaptchaWithFallback
+ * options:
+ * errorFallbackCount: 触发降级的错误次数,默认第三次错误降级
+ * defaultFallback: 是否开启默认降级
+ * onFallback: 自定义降级方案,参数为默认validate
+ */
+export function initNECaptchaWithFallback(options: any, onload: any, onerror: any) {
+ let captchaIns: any = null;
+
+ const config = normalizeFallbackConfig(options);
+ const defaultFallback = config.defaultFallback !== false;
+ const langPkg = FALLBACK_LANG[config.lang === 'zh-CN' ? config.lang : 'en'];
+ const storeKey = window.location.pathname + '_' + config.captchaId + '_NECAPTCHA_ERROR_COUNTS';
+ try {
+ errorCallbackCount = parseInt(localStorage.getItem(storeKey)?.toString() || '0', 10);
+ } catch (error) {}
+
+ const fallbackFn = !defaultFallback
+ ? config.onFallback || function () {}
+ : (validate: any) => {
+ function setFallbackTip(instance: any) {
+ if (!instance) {
+ return;
+ }
+ setFallbackTip(instance._captchaIns);
+ if (!instance.$el) {
+ return;
+ }
+ const tipEles = queryAllByClassName('.yidun-fallback__tip', instance.$el);
+ if (!tipEles.length) {
+ return;
+ }
+
+ // 确保在队列的最后
+ setTimeout(() => {
+ for (let i = 0, l = tipEles.length; i < l; i++) {
+ setDomText(tipEles[i], langPkg);
+ }
+ }, 0);
+ }
+ setFallbackTip(captchaIns);
+
+ config.onVerify && config.onVerify(null, { validate: validate });
+ };
+ const noFallback = !defaultFallback && !config.onFallback;
+
+ const proxyOnError = (error: any) => {
+ errorCallbackCount++;
+ if (errorCallbackCount < config.errorFallbackCount) {
+ try {
+ localStorage.setItem(storeKey, errorCallbackCount);
+ } catch (err) {}
+
+ onerror(error);
+ } else {
+ fallbackFn(DEFAULT_VALIDATE);
+ proxyRefresh();
+ noFallback && onerror(error);
+ }
+ };
+
+ const proxyRefresh = () => {
+ errorCallbackCount = 0;
+ try {
+ localStorage.setItem(storeKey, '0');
+ } catch (err) {}
+ };
+
+ const triggerInitError = (error: any) => {
+ if (initialTimer && initialTimer.isError()) {
+ initialTimer.resetError();
+ return;
+ }
+ initialTimer && initialTimer.resetTimer();
+ noFallback ? onerror(error) : proxyOnError(error);
+ };
+
+ config.onError = (error: any) => {
+ if (initialTimer && initialTimer.isError()) {
+ initialTimer.resetError();
+ }
+ proxyOnError(error);
+ };
+ config.onDidRefresh = () => {
+ if (initialTimer && initialTimer.isError()) {
+ initialTimer.resetError();
+ }
+ proxyRefresh();
+ };
+
+ const initialTimer = options.initTimeoutError ? options.initTimeoutError(proxyOnError) : null; // initialTimer is only for mobile.html
+
+ const loadResolve = () => {
+ (window as any).initNECaptcha(
+ config,
+ (instance: any) => {
+ if (initialTimer && initialTimer.isError()) {
+ return;
+ }
+ initialTimer && initialTimer.resetTimer();
+ captchaIns = instance;
+ onload && onload(instance);
+ },
+ triggerInitError,
+ );
+ };
+ const cacheId = 'load-queue';
+ if (!RESOURCE_CACHE[cacheId]) {
+ RESOURCE_CACHE[cacheId] = {
+ rejects: [],
+ resolves: [],
+ status: 'error',
+ };
+ }
+ if (RESOURCE_CACHE[cacheId].status === 'error') {
+ RESOURCE_CACHE[cacheId].status = 'pending';
+ loadResource(config, (error: any) => {
+ if (error) {
+ const err: any = new Error();
+ err.code = REQUEST_SCRIPT_ERROR;
+ err.message = config.staticServer + '/load.min.js error';
+
+ const rejects = RESOURCE_CACHE[cacheId].rejects;
+ for (let i = 0, iLen = rejects.length; i < iLen; i++) {
+ rejects.pop()(err);
+ }
+ RESOURCE_CACHE[cacheId].status = 'error';
+ } else {
+ RESOURCE_CACHE[cacheId].status = 'done';
+ const resolves = RESOURCE_CACHE[cacheId].resolves;
+ for (let j = 0, jLen = resolves.length; j < jLen; j++) {
+ resolves.pop()();
+ }
+ }
+ });
+ } else if (RESOURCE_CACHE[cacheId].status === 'done') {
+ loadResolve();
+ }
+ if (RESOURCE_CACHE[cacheId].status === 'pending') {
+ RESOURCE_CACHE[cacheId].rejects.push(function loadReject(err: any) {
+ triggerInitError(err);
+ });
+ RESOURCE_CACHE[cacheId].resolves.push(loadResolve);
+ }
+}
diff --git a/src/app/shared/components/captcha/index.ts b/src/app/shared/components/captcha/index.ts
new file mode 100644
index 00000000..b2c67294
--- /dev/null
+++ b/src/app/shared/components/captcha/index.ts
@@ -0,0 +1,2 @@
+export * from './captcha.component';
+export * from './dun.helper';
diff --git a/src/app/shared/components/delay/delay.directive.ts b/src/app/shared/components/delay/delay.directive.ts
new file mode 100644
index 00000000..cf6e25d6
--- /dev/null
+++ b/src/app/shared/components/delay/delay.directive.ts
@@ -0,0 +1,45 @@
+import { AfterViewInit, Directive, EventEmitter, Input, OnDestroy, Optional, Output } from '@angular/core';
+import { NgModel } from '@angular/forms';
+import { BooleanInput, InputBoolean, InputNumber, NumberInput } from '@delon/util';
+import { Subscription } from 'rxjs';
+import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
+
+@Directive({
+ selector: '[delay]:not([noDelay])',
+ exportAs: 'delayComp'
+})
+export class DelayDirective implements AfterViewInit, OnDestroy {
+ static ngAcceptInputType_delayTime: NumberInput;
+ static ngAcceptInputType_delayFirstEmit: BooleanInput;
+
+ private data$: Subscription | undefined;
+ private firstEmit = false;
+
+ @Input() @InputNumber() delayTime = 500;
+ @Input() @InputBoolean() delayFirstEmit = false;
+ @Output() readonly delayChange = new EventEmitter();
+
+ constructor(@Optional() private ngModel: NgModel) {}
+
+ ngAfterViewInit(): void {
+ const { ngModel, delayFirstEmit, delayTime, delayChange } = this;
+ if (ngModel == null) {
+ return;
+ }
+
+ this.firstEmit = delayFirstEmit;
+ this.data$ = ngModel.valueChanges?.pipe(debounceTime(delayTime), distinctUntilChanged()).subscribe(res => {
+ if (this.firstEmit === false) {
+ this.firstEmit = true;
+ return;
+ }
+ delayChange.emit(res);
+ });
+ }
+
+ ngOnDestroy(): void {
+ if (this.data$) {
+ this.data$.unsubscribe();
+ }
+ }
+}
diff --git a/src/app/shared/components/delay/delay.module.ts b/src/app/shared/components/delay/delay.module.ts
new file mode 100644
index 00000000..307a8d3f
--- /dev/null
+++ b/src/app/shared/components/delay/delay.module.ts
@@ -0,0 +1,11 @@
+import { NgModule } from '@angular/core';
+
+import { DelayDirective } from './delay.directive';
+
+const COMPONENTS = [DelayDirective];
+
+@NgModule({
+ declarations: COMPONENTS,
+ exports: COMPONENTS
+})
+export class DelayModule {}
diff --git a/src/app/shared/components/delay/index.en-US.md b/src/app/shared/components/delay/index.en-US.md
new file mode 100644
index 00000000..851475a5
--- /dev/null
+++ b/src/app/shared/components/delay/index.en-US.md
@@ -0,0 +1,19 @@
+---
+order: 30
+title: delay
+type: Component
+---
+
+Delay trigger, for title search, [DEMO](https://preview.ng-alain.com/pro/#/other/article).
+
+```html
+
+```
+
+## API
+
+| Property | Description | Type | Default |
+|--------------------|----------------------------------------|---------------------|---------|
+| `[delayTime]` | Delay time (unit: ms) | `number` | `500` |
+| `[delayFirstEmit]` | Whether to trigger after `delayChange` | `boolean` | `false` |
+| `(delayChange)` | Callback event | `EventEmitter` | - |
diff --git a/src/app/shared/components/delay/index.ts b/src/app/shared/components/delay/index.ts
new file mode 100644
index 00000000..9898c01b
--- /dev/null
+++ b/src/app/shared/components/delay/index.ts
@@ -0,0 +1,2 @@
+export * from './delay.directive';
+export * from './delay.module';
diff --git a/src/app/shared/components/delay/index.zh-CN.md b/src/app/shared/components/delay/index.zh-CN.md
new file mode 100644
index 00000000..426a4502
--- /dev/null
+++ b/src/app/shared/components/delay/index.zh-CN.md
@@ -0,0 +1,19 @@
+---
+order: 30
+title: delay
+type: Component
+---
+
+延迟触发,适用于标题搜索,参考[示例](https://preview.ng-alain.com/pro/#/other/article)。
+
+```html
+
+```
+
+## API
+
+| 参数 | 说明 | 类型 | 默认值 |
+|--------------------|----------------------------|---------------------|---------|
+| `[delayTime]` | 延迟时间(单位:毫秒) | `number` | `500` |
+| `[delayFirstEmit]` | 是否加载后触发 `delayChange` | `boolean` | `false` |
+| `(delayChange)` | 回调函数 | `EventEmitter` | - |
diff --git a/src/app/shared/components/editor/editor.component.ts b/src/app/shared/components/editor/editor.component.ts
new file mode 100644
index 00000000..69510a5a
--- /dev/null
+++ b/src/app/shared/components/editor/editor.component.ts
@@ -0,0 +1,417 @@
+/**
+ * Part of the code comes from https://github.com/KillerCodeMonkey/ngx-quill/
+ */
+import { DOCUMENT, isPlatformServer } from '@angular/common';
+import {
+ AfterViewInit,
+ Component,
+ ElementRef,
+ EventEmitter,
+ forwardRef,
+ Inject,
+ Input,
+ NgZone,
+ OnChanges,
+ OnDestroy,
+ Output,
+ PLATFORM_ID,
+ Renderer2,
+ SimpleChanges
+} from '@angular/core';
+import { ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from '@angular/forms';
+import { ModalHelper } from '@delon/theme';
+import { BooleanInput, InputBoolean, InputNumber, NumberInput } from '@delon/util';
+import ImageResize from 'quill-image-resize-module';
+
+import { FileManagerImgComponent } from '../file-manager/file-manager-img.component';
+
+declare var Quill: any;
+const Delta = require('quill-delta');
+
+export interface CustomOption {
+ import: string;
+ whitelist: any[];
+}
+
+Quill.register('modules/imageResize', ImageResize);
+['align', 'background', 'color', 'direction', 'font'].forEach(type => Quill.register(Quill.import(`attributors/style/${type}`), true));
+const Size = Quill.import('attributors/style/size');
+const VALUES = {
+ // NOTICE: Should be sync modify `@ql-sizes` in `styles/fix/_quill.less`
+ size: ['10px', '12px', '14px', '16px', '18px', '20px', '24px']
+};
+Size.whitelist = VALUES.size;
+Quill.register(Size, true);
+
+@Component({
+ selector: 'editor',
+ template: ``,
+ providers: [
+ {
+ provide: NG_VALUE_ACCESSOR,
+ useExisting: forwardRef(() => EditorComponent),
+ multi: true
+ },
+ {
+ provide: NG_VALIDATORS,
+ useExisting: forwardRef(() => EditorComponent),
+ multi: true
+ }
+ ],
+ host: {
+ '[class.quill-editor]': 'true'
+ },
+ preserveWhitespaces: false
+})
+export class EditorComponent implements AfterViewInit, ControlValueAccessor, OnChanges, OnDestroy, Validator {
+ @Input()
+ set mode(value: 'full' | 'simple') {
+ this._mode = value;
+ const handlers = {
+ image: (state: boolean) => this.image(state)
+ };
+ if (value === 'full') {
+ this.modules = {
+ imageResize: {},
+ toolbar: {
+ handlers,
+ container: [
+ ['bold', 'italic', 'underline', 'strike'], // toggled buttons
+ ['blockquote', 'code-block'],
+
+ [{ header: 1 }, { header: 2 }], // custom button values
+ [{ list: 'ordered' }, { list: 'bullet' }],
+ [{ script: 'sub' }, { script: 'super' }], // superscript/subscript
+ [{ indent: '-1' }, { indent: '+1' }], // outdent/indent
+ // [{ direction: 'rtl' }], // text direction
+
+ [{ size: VALUES.size }], // custom dropdown
+ [{ header: [1, 2, 3, false] }],
+
+ [{ color: [] }, { background: [] }], // dropdown with defaults from theme
+ // [{ font: [] }],
+ [{ align: [] }],
+
+ ['clean'], // remove formatting button
+
+ ['link', 'image', 'video'] // link and image, video
+ ]
+ }
+ };
+ } else {
+ this.modules = {
+ imageResize: {},
+ toolbar: {
+ handlers,
+ container: [
+ ['bold', 'italic', 'underline', 'strike', 'blockquote'], // toggled buttons
+ [{ header: 1 }, { header: 2 }], // custom button values
+ [{ list: 'ordered' }, { list: 'bullet' }],
+ [{ header: [1, 2, 3, false] }],
+ [{ color: [] }, { background: [] }], // dropdown with defaults from theme
+ [{ align: [] }],
+ ['clean'], // remove formatting button
+ ['link', 'image', 'video'] // link and image, video
+ ]
+ }
+ };
+ }
+ }
+
+ constructor(
+ private elementRef: ElementRef,
+ @Inject(DOCUMENT) private doc: any,
+ @Inject(PLATFORM_ID) private platformId: {},
+ private renderer: Renderer2,
+ private zone: NgZone,
+ private modalHelper: ModalHelper
+ ) {}
+ static ngAcceptInputType_readOnly: BooleanInput;
+ static ngAcceptInputType_maxLength: NumberInput;
+ static ngAcceptInputType_minLength: NumberInput;
+ static ngAcceptInputType_required: BooleanInput;
+ static ngAcceptInputType_strict: BooleanInput;
+
+ quill: any;
+ editorElem!: HTMLElement;
+ emptyArray: any[] = [];
+ content: any;
+ selectionChangeEvent: any;
+ textChangeEvent: any;
+ _mode!: 'full' | 'simple';
+
+ @Input() format: 'object' | 'html' | 'text' | 'json' = 'html';
+ @Input() theme?: string;
+ @Input() modules?: { [index: string]: any };
+ @Input() @InputBoolean() readOnly?: boolean;
+ @Input() placeholder = '';
+ @Input() @InputNumber() maxLength?: number;
+ @Input() @InputNumber() minLength?: number;
+ @Input() @InputBoolean() required?: boolean;
+ @Input() formats?: string[];
+ @Input() style: any = { height: '250px' };
+ @Input() @InputBoolean() strict = true;
+ @Input() scrollingContainer?: HTMLElement | string;
+ @Input() bounds?: HTMLElement | string;
+ @Input() customOptions: CustomOption[] = [];
+
+ @Output() readonly editorCreated = new EventEmitter();
+ @Output() readonly contentChanged = new EventEmitter();
+ @Output() readonly selectionChanged = new EventEmitter();
+ private image(_: boolean): void {
+ this.modalHelper
+ .create(
+ FileManagerImgComponent,
+ {
+ opt: {
+ multiple: true,
+ i: { orderby: 0, cat_id: 0, ps: 20 }
+ }
+ },
+ {
+ size: 1000,
+ modalOptions: {
+ nzClosable: false
+ }
+ }
+ )
+ .subscribe((res: any[]) => {
+ // delete
+ const range = this.quill.getSelection(true);
+ this.quill.updateContents(new Delta().retain(range.index).delete(range.length));
+ // install all images
+ for (const ii of res) {
+ this.quill.updateContents(new Delta().retain(range.index).delete(range.length).insert({ image: ii.mp }, { alt: ii.title }));
+ }
+ });
+ }
+
+ @Input()
+ valueGetter = (quillEditor: any, editorElement: HTMLElement): any => {
+ let html: string | null = editorElement.children[0].innerHTML;
+ if (html === '
' || html === '') {
+ html = null;
+ }
+ let modelValue = html;
+
+ if (this.format === 'text') {
+ modelValue = quillEditor.getText();
+ } else if (this.format === 'object') {
+ modelValue = quillEditor.getContents();
+ } else if (this.format === 'json') {
+ try {
+ modelValue = JSON.stringify(quillEditor.getContents());
+ } catch (e) {
+ modelValue = quillEditor.getText();
+ }
+ }
+
+ return modelValue;
+ };
+
+ @Input()
+ valueSetter = (quillEditor: any, value: any, _format: 'object' | 'html' | 'json'): any => {
+ if (this.format === 'html') {
+ return quillEditor.clipboard.convert(value);
+ } else if (this.format === 'json') {
+ try {
+ return JSON.parse(value);
+ } catch (e) {
+ return value;
+ }
+ }
+
+ return value;
+ };
+
+ onModelChange = (_: any) => {};
+ onModelTouched = () => {};
+
+ ngAfterViewInit(): void {
+ if (isPlatformServer(this.platformId)) {
+ return;
+ }
+
+ if (this._mode == null) {
+ this.mode = 'full';
+ }
+
+ const modules: any = this.modules;
+
+ this.elementRef.nativeElement.insertAdjacentHTML('beforeend', '
');
+ this.editorElem = this.elementRef.nativeElement.querySelector('[quill-editor-element]');
+
+ if (this.style) {
+ Object.keys(this.style).forEach((key: string) => {
+ this.renderer.setStyle(this.editorElem, key, this.style[key]);
+ });
+ }
+
+ this.customOptions.forEach(customOption => {
+ const newCustomOption = Quill.import(customOption.import);
+ newCustomOption.whitelist = customOption.whitelist;
+ Quill.register(newCustomOption, true);
+ });
+
+ this.quill = new Quill(this.editorElem, {
+ modules,
+ placeholder: this.placeholder,
+ readOnly: this.readOnly || false,
+ theme: this.theme || 'snow',
+ formats: this.formats,
+ bounds: this.bounds ? (this.bounds === 'self' ? this.editorElem : this.bounds) : this.doc.body,
+ strict: this.strict,
+ scrollingContainer: this.scrollingContainer
+ });
+
+ if (this.content) {
+ if (this.format === 'object') {
+ this.quill.setContents(this.content, 'silent');
+ } else if (this.format === 'text') {
+ this.quill.setText(this.content, 'silent');
+ } else if (this.format === 'json') {
+ try {
+ this.quill.setContents(JSON.parse(this.content), 'silent');
+ } catch (e) {
+ this.quill.setText(this.content, 'silent');
+ }
+ } else {
+ const contents = this.quill.clipboard.convert(this.content);
+ this.quill.setContents(contents, 'silent');
+ }
+
+ this.quill.history.clear();
+ }
+
+ this.editorCreated.emit(this.quill);
+
+ // mark model as touched if editor lost focus
+ this.selectionChangeEvent = this.quill.on('selection-change', (range: any, oldRange: any, source: string) => {
+ this.zone.run(() => {
+ this.selectionChanged.emit({
+ editor: this.quill,
+ range,
+ oldRange,
+ source
+ });
+
+ if (!range) {
+ this.onModelTouched();
+ }
+ });
+ });
+
+ // update model if text changes
+ this.textChangeEvent = this.quill.on('text-change', (delta: any, oldDelta: any, source: string) => {
+ const text = this.quill.getText();
+ const content = this.quill.getContents();
+
+ let html: string | null = this.editorElem.children[0].innerHTML;
+ if (html === '
' || html === '
') {
+ html = null;
+ }
+
+ this.zone.run(() => {
+ this.onModelChange(this.valueGetter(this.quill, this.editorElem));
+
+ this.contentChanged.emit({
+ editor: this.quill,
+ html,
+ text,
+ content,
+ delta,
+ oldDelta,
+ source
+ });
+ });
+ });
+ }
+
+ ngOnDestroy(): void {
+ if (this.selectionChangeEvent) {
+ this.selectionChangeEvent.removeListener('selection-change');
+ }
+ if (this.textChangeEvent) {
+ this.textChangeEvent.removeListener('text-change');
+ }
+ }
+
+ ngOnChanges(changes: SimpleChanges): void {
+ if (!this.quill) {
+ return;
+ }
+ if (changes.readOnly) {
+ this.quill.enable(!changes.readOnly.currentValue);
+ }
+ if (changes.placeholder) {
+ this.quill.root.dataset.placeholder = changes.placeholder.currentValue;
+ }
+ }
+
+ writeValue(currentValue: any): void {
+ this.content = currentValue;
+
+ if (this.quill) {
+ if (currentValue) {
+ if (this.format === 'text') {
+ this.quill.setText(currentValue);
+ } else {
+ this.quill.setContents(this.valueSetter(this.quill, this.content, this.format));
+ }
+ return;
+ }
+ this.quill.setText('');
+ }
+ }
+
+ registerOnChange(fn: (value: any) => void): void {
+ this.onModelChange = fn;
+ }
+
+ registerOnTouched(fn: () => void): void {
+ this.onModelTouched = fn;
+ }
+
+ validate(): any {
+ if (!this.quill) {
+ return null;
+ }
+
+ const err: {
+ minLengthError?: { given: number; minLength: number };
+ maxLengthError?: { given: number; maxLength: number };
+ requiredError?: { empty: boolean };
+ } = {};
+ let valid = true;
+
+ const textLength = this.quill.getText().trim().length;
+
+ if (this.minLength && textLength && textLength < this.minLength) {
+ err.minLengthError = {
+ given: textLength,
+ minLength: this.minLength
+ };
+
+ valid = false;
+ }
+
+ if (this.maxLength && textLength > this.maxLength) {
+ err.maxLengthError = {
+ given: textLength,
+ maxLength: this.maxLength
+ };
+
+ valid = false;
+ }
+
+ if (this.required && !textLength) {
+ err.requiredError = {
+ empty: true
+ };
+
+ valid = false;
+ }
+
+ return valid ? null : err;
+ }
+}
diff --git a/src/app/shared/components/editor/editor.module.ts b/src/app/shared/components/editor/editor.module.ts
new file mode 100644
index 00000000..e87e16ca
--- /dev/null
+++ b/src/app/shared/components/editor/editor.module.ts
@@ -0,0 +1,13 @@
+import { NgModule } from '@angular/core';
+
+import { FileManagerModule } from '../file-manager';
+import { EditorComponent } from './editor.component';
+
+const COMPONENTS = [EditorComponent];
+
+@NgModule({
+ imports: [FileManagerModule],
+ declarations: COMPONENTS,
+ exports: COMPONENTS
+})
+export class EditorModule {}
diff --git a/src/app/shared/components/editor/index.en-US.md b/src/app/shared/components/editor/index.en-US.md
new file mode 100644
index 00000000..60ed9011
--- /dev/null
+++ b/src/app/shared/components/editor/index.en-US.md
@@ -0,0 +1,39 @@
+---
+order: 60
+title: editor
+type: Component
+---
+
+Based on [quill](https://github.com/quilljs/quill) WYSIWYG editor, [DEMO](https://preview.ng-alain.com/pro/#/ec/ware/edit/10001).
+
+## Feature
+
+- Integration [file-manager](file-manager)
+- Integration [quill-image-resize-module](https://github.com/kensnyder/quill-image-resize-module)
+
+## API
+
+| Property | Description | Type | Default |
+| ---------------------- | -------------------------------------- | ------------------- | --------------------- |
+| `[(ngModel)]` | Value of quill | `string` | - |
+| `[mode]` | Mode of quill | `full,simple` | `full` |
+| `[theme]` | Theme of quill | `string` | `snow` |
+| `[readOnly]` | Whether to readonly | `boolean` | `false` |
+| `[required]` | Whether to required | `boolean` | - |
+| `[maxLength]` | The maximum number of quill characters | `number` | - |
+| `[minLength]` | The minimum number of quill characters | `number` | - |
+| `[placeholder]` | Placeholder of quill | `string` | - |
+| `[style]` | Styles of quill | `any` | `{ height: '250px' }` |
+| `(editorCreated)` | Quill rendered event | `EventEmitter
` | - |
+| `(contentChanged)` | Quill content change event | `EventEmitter` | - |
+| `(selectionChanged)` | `selection-change` event | `EventEmitter` | - |
+
+## sf widget
+
+Widget name: `editor`.
+
+### ui
+
+| Property | Description | Type | Default |
+| -------------------- | -------------------------- | ------------------------- | ------- |
+| `(contentChanged)` | Quill content change event | `(value: string) => void` | - |
diff --git a/src/app/shared/components/editor/index.ts b/src/app/shared/components/editor/index.ts
new file mode 100644
index 00000000..49885cf0
--- /dev/null
+++ b/src/app/shared/components/editor/index.ts
@@ -0,0 +1,2 @@
+export * from './editor.component';
+export * from './editor.module';
diff --git a/src/app/shared/components/editor/index.zh-CN.md b/src/app/shared/components/editor/index.zh-CN.md
new file mode 100644
index 00000000..e7f01ac2
--- /dev/null
+++ b/src/app/shared/components/editor/index.zh-CN.md
@@ -0,0 +1,39 @@
+---
+order: 60
+title: editor
+type: Component
+---
+
+基于 [quill](https://github.com/quilljs/quill) 富文本编辑器,参考[示例](https://preview.ng-alain.com/pro/#/ec/ware/edit/10001)。
+
+## 特性
+
+- 整合 [file-manager](file-manager)
+- 整合 [quill-image-resize-module](https://github.com/kensnyder/quill-image-resize-module)
+
+## API
+
+| 参数 | 说明 | 类型 | 默认值 |
+| ---------------------- | -------------------------- | ------------------- | --------------------- |
+| `[(ngModel)]` | 值 | `string` | - |
+| `[mode]` | 模式 | `full,simple` | `full` |
+| `[theme]` | 主题 | `string` | `snow` |
+| `[readOnly]` | 是否只读 | `boolean` | `false` |
+| `[required]` | 是否必填 | `boolean` | - |
+| `[maxLength]` | 最大长度 | `number` | - |
+| `[minLength]` | 最少长度 | `number` | - |
+| `[placeholder]` | 文本框默认值 | `string` | - |
+| `[style]` | 样式,可以决定富文本的高度 | `any` | `{ height: '250px' }` |
+| `(editorCreated)` | 初始化完成后事件 | `EventEmitter` | - |
+| `(contentChanged)` | 内容变更事件 | `EventEmitter` | - |
+| `(selectionChanged)` | `selection-change` 事件 | `EventEmitter` | - |
+
+## sf 小部件
+
+小部件名称:`editor`。
+
+### ui
+
+| 参数 | 说明 | 类型 | 默认值 |
+| -------------------- | ------------ | ------------------------- | ------ |
+| `(contentChanged)` | 内容变更事件 | `(value: string) => void` | - |
diff --git a/src/app/shared/components/file-manager/file-manager-img.component.html b/src/app/shared/components/file-manager/file-manager-img.component.html
new file mode 100644
index 00000000..fa71a3aa
--- /dev/null
+++ b/src/app/shared/components/file-manager/file-manager-img.component.html
@@ -0,0 +1,53 @@
+
+ 0"
+ [nzBodyStyle]="{ background: 'rgba(204, 204, 204, 0.33)' }"
+ class="mt-sm"
+>
+
+ 已选图
+ (按住拖动可调整顺序)
+
+
+
+
+
+
{{ i.title }}
+
+ {{ i.width }}x{{ i.height }}
+
+
+
+
diff --git a/src/app/shared/components/file-manager/file-manager-img.component.ts b/src/app/shared/components/file-manager/file-manager-img.component.ts
new file mode 100644
index 00000000..c72bcdd2
--- /dev/null
+++ b/src/app/shared/components/file-manager/file-manager-img.component.ts
@@ -0,0 +1,108 @@
+import { moveItemInArray } from '@angular/cdk/drag-drop';
+import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, ViewChild } from '@angular/core';
+import { _HttpClient } from '@delon/theme';
+import { ArrayService, copy } from '@delon/util';
+import { NzMessageService } from 'ng-zorro-antd/message';
+import { NzModalRef } from 'ng-zorro-antd/modal';
+import { NzFormatEmitEvent } from 'ng-zorro-antd/tree';
+
+import { FileManagerComponent } from './file-manager.component';
+
+@Component({
+ selector: 'file-manager-img',
+ templateUrl: './file-manager-img.component.html',
+ changeDetection: ChangeDetectionStrategy.OnPush
+})
+export class FileManagerImgComponent implements AfterViewInit {
+ result: any[] = [];
+ cat: any = {
+ ls: [],
+ item: {}
+ };
+
+ @Input()
+ params = {
+ type: 'file',
+ q: '',
+ is_img: true,
+ parent_id: 0,
+ orderby: 0
+ };
+ @Input() multiple: boolean | number = false;
+ @ViewChild('fm', { static: false }) fm!: FileManagerComponent;
+
+ constructor(
+ private http: _HttpClient,
+ private arrSrv: ArrayService,
+ private msg: NzMessageService,
+ private modal: NzModalRef,
+ private cdr: ChangeDetectorRef
+ ) {}
+
+ ngAfterViewInit(): void {
+ this.loadCat();
+ }
+
+ copyData(type: 'link' | 'code'): void {
+ copy(this.result.map(v => this.fm.getCode(v.mp, type)).join('\n')).then(() => this.msg.success('Copy Success'));
+ }
+
+ // #region category
+
+ changeCat(e: NzFormatEmitEvent): void {
+ this.cat.item = e.node!.origin;
+ this.params.parent_id = e.node!.origin.id;
+ this.fm.load(1);
+ this.cdr.detectChanges();
+ }
+
+ loadCat(): void {
+ this.http.get('/file/folder').subscribe((res: any[]) => {
+ res.splice(0, 0, { id: 0, title: '所有图片' });
+ this.cat.ls = this.arrSrv.arrToTreeNode(res, {
+ cb: (item, parent, deep) => {
+ item.expanded = deep <= 1;
+ item.selected = item.id === 0;
+ }
+ });
+ this.cat.item = res[0];
+ this.cdr.detectChanges();
+ });
+ }
+
+ // #endregion
+
+ load(): void {
+ this.fm.load(1);
+ }
+
+ cho(i: any): void {
+ if (i.on === true) {
+ this.result.splice(this.result.indexOf(i), 1);
+ i.on = false;
+ return;
+ }
+ if (!this.multiple) {
+ this.result.push(i);
+ this.ok();
+ return;
+ }
+
+ if (typeof this.multiple === 'number' && this.result.length >= this.multiple) {
+ this.msg.error(`最多只能选取${this.multiple}张`);
+ return;
+ }
+ i.on = true;
+ this.result.push(i);
+ this.cdr.detectChanges();
+ }
+
+ drop(e: any): void {
+ moveItemInArray(this.result, e.previousIndex, e.currentIndex);
+ this.cdr.detectChanges();
+ }
+
+ ok(): void {
+ this.modal.close(this.result);
+ }
+}
diff --git a/src/app/shared/components/file-manager/file-manager-img.directive.ts b/src/app/shared/components/file-manager/file-manager-img.directive.ts
new file mode 100644
index 00000000..ee484d4e
--- /dev/null
+++ b/src/app/shared/components/file-manager/file-manager-img.directive.ts
@@ -0,0 +1,39 @@
+import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';
+import { ModalHelper } from '@delon/theme';
+
+import { FileManagerImgComponent } from './file-manager-img.component';
+
+@Directive({ selector: '[dialog-img]' })
+export class FileManagerImgDirective {
+ @Input() multiple: boolean | number = false;
+ @Input() field?: string;
+ @Output() readonly selected = new EventEmitter();
+
+ constructor(private modalHelper: ModalHelper) {}
+
+ @HostListener('click')
+ _click(): void {
+ this.modalHelper
+ .create(
+ FileManagerImgComponent,
+ {
+ multiple: this.multiple
+ },
+ {
+ size: 1000,
+ modalOptions: {
+ nzClosable: false
+ }
+ }
+ )
+ .subscribe((res: any) => {
+ if (Array.isArray(res)) {
+ let ret = res.length > 0 && !this.multiple ? res[0] : res;
+ if (this.field && ret) {
+ ret = ret[this.field];
+ }
+ this.selected.emit(ret);
+ }
+ });
+ }
+}
diff --git a/src/app/shared/components/file-manager/file-manager.component.html b/src/app/shared/components/file-manager/file-manager.component.html
new file mode 100644
index 00000000..b33f9ba9
--- /dev/null
+++ b/src/app/shared/components/file-manager/file-manager.component.html
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
1" (click)="back()" class="file-item">
+
+
..
+
+
+
+
+
+
+
+
{{ i.title }}
+
+ {{ i.width }}x{{ i.height }}
+
+
{{ i.created | _date }}
+
+
+
+
+
+ - Copy
+ - Copy Link
+ - Copy Code
+ - Rename
+ - Move
+ - Remove
+
+
+
+
+
+
+
+ 暂无
+
+
+
+
+
+
+
diff --git a/src/app/shared/components/file-manager/file-manager.component.ts b/src/app/shared/components/file-manager/file-manager.component.ts
new file mode 100644
index 00000000..555bdbb0
--- /dev/null
+++ b/src/app/shared/components/file-manager/file-manager.component.ts
@@ -0,0 +1,188 @@
+import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output, TemplateRef } from '@angular/core';
+import { _HttpClient } from '@delon/theme';
+import { ArrayService, copy } from '@delon/util';
+import { NzMessageService } from 'ng-zorro-antd/message';
+import { NzUploadFile } from 'ng-zorro-antd/upload';
+
+@Component({
+ selector: 'file-manager',
+ templateUrl: './file-manager.component.html',
+ changeDetection: ChangeDetectionStrategy.OnPush
+})
+export class FileManagerComponent implements OnInit {
+ private get parent_id(): number {
+ return this.path[this.path.length - 1];
+ }
+
+ constructor(private http: _HttpClient, private cdr: ChangeDetectorRef, private arrSrv: ArrayService, private msg: NzMessageService) {}
+
+ showType: 'big' | 'small' = 'big';
+ s: any = { orderby: 0, ps: 20, pi: 1, q: '' };
+ loading = false;
+ list: any[] = [];
+ item: any;
+ path: number[] = [0];
+ total = 0;
+
+ @Input() params: any;
+ @Input() actions!: TemplateRef;
+ @Input() multiple: boolean | number = false;
+ @Output() readonly selected = new EventEmitter();
+
+ // #endregion
+
+ // #region rename
+
+ renameModel = false;
+ renameTitle = '';
+
+ // #endregion
+
+ // #region move
+ moveModel = false;
+ moveId = '';
+ folderNodes: any[] = [];
+
+ ngOnInit(): void {
+ this.load(1);
+ }
+
+ getCode(mp: string, type: 'link' | 'code'): string {
+ return type === 'link' ? mp : `
`;
+ }
+
+ // #region op
+
+ back(): void {
+ this.path.pop();
+ this.load(1);
+ }
+
+ next(i: any): void {
+ this.path.push(i.id);
+ this.load(1);
+ }
+
+ load(pi: number): void {
+ const data = {
+ ...this.s,
+ pi,
+ parent_id: this.parent_id,
+ ...this.params
+ };
+ this.loading = true;
+ this.cdr.markForCheck();
+ this.http.get('/file', data).subscribe((res: any) => {
+ this.loading = false;
+ this.list = res.list;
+ this.total = res.total;
+ this.cdr.markForCheck();
+ });
+ }
+
+ cho(i: any): void {
+ if (i.type === 'folder') {
+ this.next(i);
+ return;
+ }
+ i.selected = !i.selected;
+ this.selected.emit(i);
+ this.cdr.detectChanges();
+ }
+
+ // #endregion
+
+ // #region upload
+
+ uploadData = () => {
+ return {
+ parent_id: this.parent_id
+ };
+ };
+
+ uploadChange({ file }: { file: NzUploadFile }): void {
+ if (file.status === 'done') {
+ this.load(1);
+ }
+ }
+ rename(i: any): void {
+ this.renameModel = true;
+ this.item = i;
+ this.renameTitle = i.title;
+ }
+ renameOk(): void {
+ this.http
+ .post(`/file/rename`, {
+ id: this.item.id,
+ title: this.renameTitle
+ })
+ .subscribe(() => {
+ this.msg.success('Success');
+ this.item.title = this.renameTitle;
+ this.renameModel = false;
+ this.cdr.detectChanges();
+ });
+ }
+ move(i: any): void {
+ this.moveModel = true;
+ this.item = i;
+ this.moveId = i.parent_id;
+ this.http.get(`/file/folder`).subscribe((res: any[]) => {
+ res.splice(0, 0, { id: 0, title: '根目录' });
+ this.folderNodes = this.arrSrv.arrToTree(res, {
+ cb: item => {
+ item.key = item.id;
+ if (item.id === this.moveId) {
+ item.disabled = true;
+ }
+ }
+ });
+ this.cdr.detectChanges();
+ });
+ }
+ moveOk(): void {
+ this.http
+ .post(`/file/move`, {
+ id: this.item.id,
+ moveId: this.moveId
+ })
+ .subscribe(() => {
+ this.msg.success('Success');
+ this.moveModel = false;
+ this.list.splice(
+ this.list.findIndex(w => w.id === this.item.id),
+ 1
+ );
+ this.cdr.detectChanges();
+ });
+ }
+ // #endregion
+
+ // #region copy
+
+ copyImg(id: number): void {
+ this.http.post(`/file/copy/${id}`).subscribe((res: any) => {
+ this.msg.success('Success');
+ this.list.push(res.item);
+ this.cdr.detectChanges();
+ });
+ }
+
+ copyData(mp: string, type: 'link' | 'code'): void {
+ copy(this.getCode(mp, type)).then(() => this.msg.success('Copy Success'));
+ }
+
+ // #endregion
+
+ // #region remove
+
+ remove(id: number, idx: number): void {
+ this.http.delete(`/file/${id}`).subscribe(() => {
+ this.msg.success('Success');
+ this.list.splice(idx, 1);
+ this.cdr.detectChanges();
+ });
+ }
+
+ // #endregion
+}
diff --git a/src/app/shared/components/file-manager/file-manager.module.ts b/src/app/shared/components/file-manager/file-manager.module.ts
new file mode 100644
index 00000000..470b2d45
--- /dev/null
+++ b/src/app/shared/components/file-manager/file-manager.module.ts
@@ -0,0 +1,47 @@
+import { CommonModule } from '@angular/common';
+import { NgModule } from '@angular/core';
+import { FormsModule } from '@angular/forms';
+import { AlainThemeModule } from '@delon/theme';
+import { NzButtonModule } from 'ng-zorro-antd/button';
+import { NzCardModule } from 'ng-zorro-antd/card';
+import { NzDropDownModule } from 'ng-zorro-antd/dropdown';
+import { NzGridModule } from 'ng-zorro-antd/grid';
+import { NzIconModule } from 'ng-zorro-antd/icon';
+import { NzInputModule } from 'ng-zorro-antd/input';
+import { NzModalModule } from 'ng-zorro-antd/modal';
+import { NzPaginationModule } from 'ng-zorro-antd/pagination';
+import { NzSelectModule } from 'ng-zorro-antd/select';
+import { NzSpinModule } from 'ng-zorro-antd/spin';
+import { NzTreeModule } from 'ng-zorro-antd/tree';
+import { NzTreeSelectModule } from 'ng-zorro-antd/tree-select';
+import { NzUploadModule } from 'ng-zorro-antd/upload';
+
+import { FileManagerImgComponent } from './file-manager-img.component';
+import { FileManagerImgDirective } from './file-manager-img.directive';
+import { FileManagerComponent } from './file-manager.component';
+
+const COMPONENTS = [FileManagerComponent, FileManagerImgComponent, FileManagerImgDirective];
+
+@NgModule({
+ imports: [
+ CommonModule,
+ FormsModule,
+ AlainThemeModule.forChild(),
+ NzUploadModule,
+ NzButtonModule,
+ NzIconModule,
+ NzSpinModule,
+ NzPaginationModule,
+ NzDropDownModule,
+ NzModalModule,
+ NzInputModule,
+ NzTreeSelectModule,
+ NzGridModule,
+ NzTreeModule,
+ NzSelectModule,
+ NzCardModule
+ ],
+ declarations: COMPONENTS,
+ exports: COMPONENTS
+})
+export class FileManagerModule {}
diff --git a/src/app/shared/components/file-manager/index.en-US.md b/src/app/shared/components/file-manager/index.en-US.md
new file mode 100644
index 00000000..9573a55b
--- /dev/null
+++ b/src/app/shared/components/file-manager/index.en-US.md
@@ -0,0 +1,50 @@
+---
+order: 70
+title: file-manager
+type: Component
+---
+
+File manager, [DEMO](https://preview.ng-alain.com/pro/#/sys/file-manager).
+
+## API
+
+### file-manager
+
+| Property | Description | Type | Default |
+| ------------ | ------------------------------------------- | ------------------- | ------- |
+| `[params]` | Extra QueryString request parameter | `any` | - |
+| `[actions]` | Custom action template | `TemplateRef` | - |
+| `[multiple]` | Whether to mulitple, or specified number | `boolean, number` | `false` |
+| `(selected)` | Resource selected event, not include folder | `EventEmitter` | - |
+
+### dialog-img
+
+`dialog-img` is modal dialog based on the `file-manager` component, [DEMO](https://preview.ng-alain.com/pro/#/ec/ware/edit/10001).
+
+| Property | Description | Type | Default |
+| ------------ | ------------------------------------------- | ------------------- | ------- |
+| `[multiple]` | Whether to mulitple, or specified number | `boolean, number` | `false` |
+| `[field]` | Specify to return a field data | `string` | - |
+| `(selected)` | Resource selected event, not include folder | `EventEmitter` | - |
+
+**DEMO**
+
+You can only chooses 5 at most, trigger the `cho` event after confirmation.
+
+```html
+
+```
+
+## sf widget
+
+Widget name: `img`.
+
+### ui
+
+| Property | Description | Type | Default |
+|--------------|---------------------------------------------|------------------------|---------|
+| `[multiple]` | Whether to mulitple, or specified number | `boolean, number` | `false` |
+| `(selected)` | Resource selected event, not include folder | `(value: any) => void` | - |
diff --git a/src/app/shared/components/file-manager/index.ts b/src/app/shared/components/file-manager/index.ts
new file mode 100644
index 00000000..32c520be
--- /dev/null
+++ b/src/app/shared/components/file-manager/index.ts
@@ -0,0 +1,4 @@
+export * from './file-manager.component';
+export * from './file-manager-img.component';
+export * from './file-manager-img.directive';
+export * from './file-manager.module';
diff --git a/src/app/shared/components/file-manager/index.zh-CN.md b/src/app/shared/components/file-manager/index.zh-CN.md
new file mode 100644
index 00000000..6c91183f
--- /dev/null
+++ b/src/app/shared/components/file-manager/index.zh-CN.md
@@ -0,0 +1,50 @@
+---
+order: 70
+title: file-manager
+type: Component
+---
+
+文件管理器,参考[示例](https://preview.ng-alain.com/pro/#/sys/file-manager)。
+
+## API
+
+### file-manager
+
+| 参数 | 说明 | 类型 | 默认值 |
+| ------------ | ------------------------------ | ------------------- | ------- |
+| `[params]` | 额外 QueryString 请求参数 | `any` | - |
+| `[actions]` | 自定义动作 | `TemplateRef` | - |
+| `[multiple]` | 是否多选,若最多 N 张 | `boolean, number` | `false` |
+| `(selected)` | 当前资源选中事件,不包含文件夹 | `EventEmitter` | - |
+
+### dialog-img
+
+`dialog-img` 是在 `file-manager` 组件的基础上对话框化,参考[示例](https://preview.ng-alain.com/pro/#/ec/ware/edit/10001)。
+
+| 参数 | 说明 | 类型 | 默认值 |
+| ------------ | ------------------------------ | ------------------- | ------- |
+| `[multiple]` | 是否多选,若最多 N 张 | `boolean, number` | `false` |
+| `[field]` | 指定返回某字段的数据 | `string` | - |
+| `(selected)` | 当前资源选中事件,不包含文件夹 | `EventEmitter` | - |
+
+**示例**
+
+最多只能选择 5 张,确认后触发 `cho` 事件。
+
+```html
+
+```
+
+## sf 小部件
+
+小部件名称:`img`。
+
+### ui
+
+| 参数 | 说明 | 类型 | 默认值 |
+| ------------ | ------------------------------ | ---------------------- | ------- |
+| `[multiple]` | 是否多选,若最多 N 张 | `boolean, number` | `false` |
+| `(selected)` | 当前资源选中事件,不包含文件夹 | `(value: any) => void` | - |
diff --git a/src/app/shared/components/masonry/index.en-US.md b/src/app/shared/components/masonry/index.en-US.md
new file mode 100644
index 00000000..d5befe95
--- /dev/null
+++ b/src/app/shared/components/masonry/index.en-US.md
@@ -0,0 +1,45 @@
+---
+order: 50
+title: masonry
+type: Component
+---
+
+Based on [masonry](https://masonry.desandro.com/) grid layout, [DEMO](https://preview.ng-alain.com/pro/#/other/gallery).
+
+## Container structure
+
+```html
+
+```
+
+The `masonry__` prefix class styles is required part.
+
+## API
+
+| Property | Description | Type | Default |
+|--------------|------------------------------------------------------|-----------|---------|
+| `[masonry]` | [Options](https://masonry.desandro.com/options.html) | `any` | - |
+| `[disabled]` | Whether to disable | `boolean` | `false` |
diff --git a/src/app/shared/components/masonry/index.ts b/src/app/shared/components/masonry/index.ts
new file mode 100644
index 00000000..b1b01c75
--- /dev/null
+++ b/src/app/shared/components/masonry/index.ts
@@ -0,0 +1,2 @@
+export * from './masonry.directive';
+export * from './masonry.module';
diff --git a/src/app/shared/components/masonry/index.zh-CN.md b/src/app/shared/components/masonry/index.zh-CN.md
new file mode 100644
index 00000000..7843274e
--- /dev/null
+++ b/src/app/shared/components/masonry/index.zh-CN.md
@@ -0,0 +1,32 @@
+---
+order: 50
+title: masonry
+type: Component
+---
+
+基于 [masonry](https://masonry.desandro.com/) 瀑布流布局,参考[示例](https://preview.ng-alain.com/pro/#/other/gallery)。
+
+## 容器结构
+
+```html
+
+```
+
+其中 `masonry__` 前缀类样式是必须部分。
+
+## API
+
+| 参数 | 说明 | 类型 | 默认值 |
+|--------------|-------------------------------------------------|-----------|---------|
+| `[masonry]` | [选项](https://masonry.desandro.com/options.html) | `any` | - |
+| `[disabled]` | 是否禁用 | `boolean` | `false` |
diff --git a/src/app/shared/components/masonry/masonry.directive.ts b/src/app/shared/components/masonry/masonry.directive.ts
new file mode 100644
index 00000000..7d697a0d
--- /dev/null
+++ b/src/app/shared/components/masonry/masonry.directive.ts
@@ -0,0 +1,92 @@
+import { AfterViewInit, Directive, ElementRef, Input, NgZone, OnChanges, OnDestroy } from '@angular/core';
+import { BooleanInput, InputBoolean } from '@delon/util';
+import { fromEvent, Subscription } from 'rxjs';
+import { debounceTime } from 'rxjs/operators';
+
+declare var Masonry: any;
+
+@Directive({
+ selector: '[masonry]',
+ exportAs: 'masonryComp'
+})
+export class MasonryDirective implements AfterViewInit, OnChanges, OnDestroy {
+ static ngAcceptInputType_disabled: BooleanInput;
+
+ private masonry: any;
+ private observer?: MutationObserver;
+ private resize$: Subscription | null = null;
+
+ @Input('masonry') options: any;
+ @Input() @InputBoolean() disabled = false;
+
+ constructor(private el: ElementRef, private zone: NgZone) {}
+
+ private outsideRender(cb: () => void): void {
+ this.zone.runOutsideAngular(() => cb());
+ }
+
+ init(): void {
+ this.destroy();
+ this.outsideRender(() => {
+ this.masonry = new Masonry(this.el.nativeElement, {
+ originLeft: true,
+ transitionDuration: '0.3s',
+ itemSelector: '.masonry__thm',
+ columnWidth: '.masonry__sizer',
+ ...this.options
+ });
+ });
+ }
+
+ reload(): void {
+ this.outsideRender(() => {
+ if (this.disabled) {
+ return;
+ }
+ this.masonry.reloadItems();
+ this.masonry.layout();
+ });
+ }
+
+ private destroy(): void {
+ this.zone.runOutsideAngular(() => {
+ if (this.masonry) {
+ this.masonry.destroy();
+ }
+ });
+ }
+
+ private initElChange(): void {
+ if (this.observer || typeof MutationObserver === 'undefined') {
+ return;
+ }
+ this.zone.runOutsideAngular(() => {
+ this.observer = new MutationObserver(() => this.reload());
+ this.observer.observe(this.el.nativeElement, {
+ childList: true,
+ subtree: true
+ });
+ });
+ }
+
+ ngAfterViewInit(): void {
+ this.initElChange();
+ this.resize$ = fromEvent(window, 'resize')
+ .pipe(debounceTime(50))
+ .subscribe(() => this.reload());
+ }
+
+ ngOnChanges(): void {
+ this.init();
+ }
+
+ ngOnDestroy(): void {
+ this.destroy();
+ if (this.observer) {
+ this.observer.disconnect();
+ }
+ if (this.resize$) {
+ this.resize$.unsubscribe();
+ }
+ }
+}
diff --git a/src/app/shared/components/masonry/masonry.module.ts b/src/app/shared/components/masonry/masonry.module.ts
new file mode 100644
index 00000000..53861e92
--- /dev/null
+++ b/src/app/shared/components/masonry/masonry.module.ts
@@ -0,0 +1,11 @@
+import { NgModule } from '@angular/core';
+
+import { MasonryDirective } from './masonry.directive';
+
+const COMPONENTS = [MasonryDirective];
+
+@NgModule({
+ declarations: COMPONENTS,
+ exports: COMPONENTS
+})
+export class MasonryModule {}
diff --git a/src/app/shared/components/mouse-focus/index.en-US.md b/src/app/shared/components/mouse-focus/index.en-US.md
new file mode 100644
index 00000000..e44614d4
--- /dev/null
+++ b/src/app/shared/components/mouse-focus/index.en-US.md
@@ -0,0 +1,34 @@
+---
+order: 80
+title: mouse-focus
+type: Component
+---
+
+The focus of the mouse, Add class to focus element when mouse over it in a set of elements, Keeping last state when leaving the container.
+
+## DEMO
+
+```html
+
+```
+
+## API
+
+| Property | Description | Type | Default |
+| ----- | ------ | ----- | ------ |
+| `[delay]` | Delay (unit: milliseconds) | `number` | `250` |
+| `[itemSelector]` | Class name of element item | `string` | `li` |
+| `[actionClassName]` | Class name of focus element | `string` | `active` |
diff --git a/src/app/shared/components/mouse-focus/index.ts b/src/app/shared/components/mouse-focus/index.ts
new file mode 100644
index 00000000..b1f298a4
--- /dev/null
+++ b/src/app/shared/components/mouse-focus/index.ts
@@ -0,0 +1,2 @@
+export * from './mouse-focus.directive';
+export * from './mouse-focus.module';
diff --git a/src/app/shared/components/mouse-focus/index.zh-CN.md b/src/app/shared/components/mouse-focus/index.zh-CN.md
new file mode 100644
index 00000000..04fe20de
--- /dev/null
+++ b/src/app/shared/components/mouse-focus/index.zh-CN.md
@@ -0,0 +1,34 @@
+---
+order: 80
+title: mouse-focus
+type: Component
+---
+
+鼠标焦点,在一组元素里鼠标移到某个元素时增加额外一个类名,当离开容器时保留最后一个状态。
+
+## DEMO
+
+```html
+
+ -
+ 必读
+
+
+ -
+ APP
+
+
+ -
+ 微信
+
+
+
+```
+
+## API
+
+| 参数 | 说明 | 类型 | 默认值 |
+|---------------------|---------------|----------|----------|
+| `[delay]` | 延迟(单位:毫秒) | `number` | `250` |
+| `[itemSelector]` | 项类名 | `string` | `li` |
+| `[actionClassName]` | 获得焦点时类名 | `string` | `active` |
diff --git a/src/app/shared/components/mouse-focus/mouse-focus.directive.ts b/src/app/shared/components/mouse-focus/mouse-focus.directive.ts
new file mode 100644
index 00000000..5c023eea
--- /dev/null
+++ b/src/app/shared/components/mouse-focus/mouse-focus.directive.ts
@@ -0,0 +1,60 @@
+import { AfterViewInit, Directive, ElementRef, Input, OnDestroy } from '@angular/core';
+import { fromEvent, Subject } from 'rxjs';
+import { auditTime, takeUntil } from 'rxjs/operators';
+
+export interface MouseFocusOptions {
+ delay?: number;
+ itemSelector?: string;
+ actionClassName?: string;
+}
+
+@Directive({
+ selector: `[mouseFocus]`,
+ exportAs: `mouseFocus`
+})
+export class MouseFocusDirective implements AfterViewInit, OnDestroy {
+ private unsubscribe$ = new Subject();
+ private _cog!: MouseFocusOptions;
+ private _curEl: HTMLElement | null = null;
+
+ @Input('mouseFocus')
+ set config(value: MouseFocusOptions) {
+ this._cog = {
+ delay: 250,
+ itemSelector: 'li',
+ actionClassName: 'active',
+ ...value
+ };
+ }
+
+ constructor(private el: ElementRef) {
+ this.config = {};
+ }
+
+ ngAfterViewInit(): void {
+ const { el, unsubscribe$, _cog } = this;
+ let { _curEl } = this;
+ const parentEl = el.nativeElement as HTMLElement;
+ fromEvent(parentEl, 'mouseover')
+ .pipe(takeUntil(unsubscribe$), auditTime(_cog.delay!))
+ .subscribe((e: Event) => {
+ const target = (e.target as HTMLElement).closest(_cog.itemSelector!) as HTMLElement;
+ if (!target || !parentEl.contains(target)) {
+ return;
+ }
+
+ if (_curEl) {
+ _curEl.classList.remove(_cog.actionClassName!);
+ }
+ target.classList.add(_cog.actionClassName!);
+ _curEl = target;
+ });
+ _curEl = (parentEl.querySelector(`.${_cog.actionClassName}`) as HTMLElement) || null;
+ }
+
+ ngOnDestroy(): void {
+ const { unsubscribe$ } = this;
+ unsubscribe$.next();
+ unsubscribe$.complete();
+ }
+}
diff --git a/src/app/shared/components/mouse-focus/mouse-focus.module.ts b/src/app/shared/components/mouse-focus/mouse-focus.module.ts
new file mode 100644
index 00000000..54b1ff83
--- /dev/null
+++ b/src/app/shared/components/mouse-focus/mouse-focus.module.ts
@@ -0,0 +1,11 @@
+import { NgModule } from '@angular/core';
+
+import { MouseFocusDirective } from './mouse-focus.directive';
+
+const COMPONENTS = [MouseFocusDirective];
+
+@NgModule({
+ declarations: COMPONENTS,
+ exports: COMPONENTS
+})
+export class MouseFocusModule {}
diff --git a/src/app/shared/components/scrollbar/index.en-US.md b/src/app/shared/components/scrollbar/index.en-US.md
new file mode 100644
index 00000000..7e513cd1
--- /dev/null
+++ b/src/app/shared/components/scrollbar/index.en-US.md
@@ -0,0 +1,24 @@
+---
+order: 40
+title: scrollbar
+type: Component
+---
+
+Based on [perfect-scrollbar](http://utatti.github.io/perfect-scrollbar/) perfect custom scrollbar plugin, [DEMO](https://preview.ng-alain.com/pro/#/other/chat).
+
+## API
+
+| Property | Description | Type | Default |
+| ----------------- | ------------------------ | ------------------- | ------- |
+| `[options]` | [Options](https://github.com/utatti/perfect-scrollbar#options) | `ScrollbarOptions` | - |
+| `[disabled]` | Whether to disable | `boolean` | `false` |
+| `[psScrollX]` | `ps-scroll-x` event | `EventEmitter` | - |
+| `[psScrollY]` | `ps-scroll-y` event | `EventEmitter` | - |
+| `[psScrollUp]` | `ps-scroll-up` event | `EventEmitter` | - |
+| `[psScrollDown]` | `ps-scroll-down` event | `EventEmitter` | - |
+| `[psScrollLeft]` | `ps-scroll-left` event | `EventEmitter` | - |
+| `[psScrollRight]` | `ps-scroll-right` event | `EventEmitter` | - |
+| `[psXReachStart]` | `ps-x-reach-start` event | `EventEmitter` | - |
+| `[psXReachEnd]` | `ps-x-reach-end` event | `EventEmitter` | - |
+| `[psYReachStart]` | `ps-y-reach-start` event | `EventEmitter` | - |
+| `[psYReachEnd]` | `ps-y-reach-end` event | `EventEmitter` | - |
diff --git a/src/app/shared/components/scrollbar/index.ts b/src/app/shared/components/scrollbar/index.ts
new file mode 100644
index 00000000..5be9f568
--- /dev/null
+++ b/src/app/shared/components/scrollbar/index.ts
@@ -0,0 +1,3 @@
+export * from './scrollbar.directive';
+export * from './scrollbar.interface';
+export * from './scrollbar.module';
diff --git a/src/app/shared/components/scrollbar/index.zh-CN.md b/src/app/shared/components/scrollbar/index.zh-CN.md
new file mode 100644
index 00000000..e2caa201
--- /dev/null
+++ b/src/app/shared/components/scrollbar/index.zh-CN.md
@@ -0,0 +1,24 @@
+---
+order: 40
+title: scrollbar
+type: Component
+---
+
+基于 [perfect-scrollbar](http://utatti.github.io/perfect-scrollbar/) 自定义滚动条插件,参考[示例](https://preview.ng-alain.com/pro/#/other/chat)。
+
+## API
+
+| 参数 | 说明 | 类型 | 默认值 |
+| ----- | ------ | ----- | ------ |
+| `[options]` | [选项](https://github.com/utatti/perfect-scrollbar#options) | `ScrollbarOptions` | - |
+| `[disabled]` | 是否禁用 | `boolean` | `false` |
+| `[psScrollX]` | `ps-scroll-x` 事件 | `EventEmitter` | - |
+| `[psScrollY]` | `ps-scroll-y` 事件 | `EventEmitter` | - |
+| `[psScrollUp]` | `ps-scroll-up` 事件 | `EventEmitter` | - |
+| `[psScrollDown]` | `ps-scroll-down` 事件 | `EventEmitter` | - |
+| `[psScrollLeft]` | `ps-scroll-left` 事件 | `EventEmitter` | - |
+| `[psScrollRight]` | `ps-scroll-right` 事件 | `EventEmitter` | - |
+| `[psXReachStart]` | `ps-x-reach-start` 事件 | `EventEmitter` | - |
+| `[psXReachEnd]` | `ps-x-reach-end` 事件 | `EventEmitter` | - |
+| `[psYReachStart]` | `ps-y-reach-start` 事件 | `EventEmitter` | - |
+| `[psYReachEnd]` | `ps-y-reach-end` 事件 | `EventEmitter` | - |
diff --git a/src/app/shared/components/scrollbar/scrollbar.directive.ts b/src/app/shared/components/scrollbar/scrollbar.directive.ts
new file mode 100644
index 00000000..2b4e99db
--- /dev/null
+++ b/src/app/shared/components/scrollbar/scrollbar.directive.ts
@@ -0,0 +1,115 @@
+import { AfterViewInit, Directive, ElementRef, EventEmitter, Input, NgZone, OnDestroy, Output } from '@angular/core';
+import { toBoolean } from '@delon/util';
+import PerfectScrollbar from 'perfect-scrollbar';
+import { fromEvent, Subject } from 'rxjs';
+import { debounceTime, takeUntil } from 'rxjs/operators';
+
+import { PerfectScrollbarEvent, PerfectScrollbarEvents, ScrollbarOptions } from './scrollbar.interface';
+
+@Directive({
+ selector: '[scrollbar]',
+ exportAs: 'scrollbarComp'
+})
+export class ScrollbarDirective implements AfterViewInit, OnDestroy {
+ static ngAcceptInputType_options: ScrollbarOptions | string | null | undefined;
+
+ private instance: PerfectScrollbar | null = null;
+ private readonly ngDestroy: Subject = new Subject();
+ private _disabled = false;
+
+ // #region fields
+
+ @Input('scrollbar') options?: ScrollbarOptions;
+
+ @Input()
+ set disabled(value: boolean) {
+ this._disabled = toBoolean(value)!;
+ if (this._disabled) {
+ this.ngOnDestroy();
+ } else {
+ this.init();
+ }
+ }
+
+ @Output() readonly psScrollX: EventEmitter = new EventEmitter();
+ @Output() readonly psScrollY: EventEmitter = new EventEmitter();
+
+ @Output() readonly psScrollUp: EventEmitter = new EventEmitter();
+ @Output() readonly psScrollDown: EventEmitter = new EventEmitter();
+ @Output() readonly psScrollLeft: EventEmitter = new EventEmitter();
+ @Output() readonly psScrollRight: EventEmitter = new EventEmitter();
+
+ @Output() readonly psXReachStart: EventEmitter = new EventEmitter();
+ @Output() readonly psXReachEnd: EventEmitter = new EventEmitter();
+ @Output() readonly psYReachStart: EventEmitter = new EventEmitter();
+ @Output() readonly psYReachEnd: EventEmitter = new EventEmitter();
+
+ // #endregion
+
+ scrollToBottom(): void {
+ this.el.scrollTop = this.el.scrollHeight - this.el.clientHeight;
+ }
+
+ scrollToTop(): void {
+ this.el.scrollTop = 0;
+ }
+
+ scrollToLeft(): void {
+ this.el.scrollLeft = 0;
+ }
+
+ scrollToRight(): void {
+ this.el.scrollLeft = this.el.scrollWidth - this.el.clientWidth;
+ }
+
+ constructor(private elRef: ElementRef, private zone: NgZone) {}
+
+ private get el(): HTMLElement {
+ return this.elRef.nativeElement as HTMLElement;
+ }
+
+ private init(): void {
+ this.zone.runOutsideAngular(() => {
+ const options = {
+ wheelSpeed: 0.5,
+ swipeEasing: true,
+ wheelPropagation: false,
+ minScrollbarLength: 40,
+ maxScrollbarLength: 300,
+ ...this.options
+ };
+ setTimeout(() => {
+ if (this._disabled) {
+ return;
+ }
+
+ this.instance = new PerfectScrollbar(this.el, options);
+
+ PerfectScrollbarEvents.forEach((eventName: PerfectScrollbarEvent) => {
+ const eventType = eventName.replace(/([A-Z])/g, c => `-${c.toLowerCase()}`);
+
+ fromEvent(this.el, eventType)
+ .pipe(debounceTime(20), takeUntil(this.ngDestroy))
+ .subscribe((event: Event) => {
+ this[eventName].emit(event);
+ });
+ });
+ }, this.options?.delay || 0);
+ });
+ }
+
+ ngAfterViewInit(): void {
+ this.init();
+ }
+
+ ngOnDestroy(): void {
+ this.ngDestroy.next();
+ this.ngDestroy.complete();
+ this.zone.runOutsideAngular(() => {
+ if (this.instance) {
+ this.instance.destroy();
+ }
+ this.instance = null;
+ });
+ }
+}
diff --git a/src/app/shared/components/scrollbar/scrollbar.interface.ts b/src/app/shared/components/scrollbar/scrollbar.interface.ts
new file mode 100644
index 00000000..e7e74d51
--- /dev/null
+++ b/src/app/shared/components/scrollbar/scrollbar.interface.ts
@@ -0,0 +1,35 @@
+import PerfectScrollbar from 'perfect-scrollbar';
+
+export interface ScrollbarOptions extends PerfectScrollbar.Options {
+ /**
+ * 延迟初始化
+ */
+ delay?: number;
+}
+
+export type PerfectScrollbarEvent =
+ | 'psScrollY'
+ | 'psScrollX'
+ | 'psScrollUp'
+ | 'psScrollDown'
+ | 'psScrollLeft'
+ | 'psScrollRight'
+ | 'psYReachEnd'
+ | 'psYReachStart'
+ | 'psXReachEnd'
+ | 'psXReachStart';
+
+export const PerfectScrollbarEvents: PerfectScrollbarEvent[] = [
+ 'psScrollY',
+ 'psScrollX',
+
+ 'psScrollUp',
+ 'psScrollDown',
+ 'psScrollLeft',
+ 'psScrollRight',
+
+ 'psYReachEnd',
+ 'psYReachStart',
+ 'psXReachEnd',
+ 'psXReachStart'
+];
diff --git a/src/app/shared/components/scrollbar/scrollbar.module.ts b/src/app/shared/components/scrollbar/scrollbar.module.ts
new file mode 100644
index 00000000..79627bf7
--- /dev/null
+++ b/src/app/shared/components/scrollbar/scrollbar.module.ts
@@ -0,0 +1,11 @@
+import { NgModule } from '@angular/core';
+
+import { ScrollbarDirective } from './scrollbar.directive';
+
+const COMPONENTS = [ScrollbarDirective];
+
+@NgModule({
+ declarations: COMPONENTS,
+ exports: COMPONENTS
+})
+export class ScrollbarModule {}
diff --git a/src/app/shared/components/status-label/index.en-US.md b/src/app/shared/components/status-label/index.en-US.md
new file mode 100644
index 00000000..51d3db19
--- /dev/null
+++ b/src/app/shared/components/status-label/index.en-US.md
@@ -0,0 +1,23 @@
+---
+order: 10
+title: status-label
+type: Component
+---
+
+Status label, [DEMO](https://preview.ng-alain.com/ms/#/dns/domain)。
+
+## DEMO
+
+```html
+Normal
+
+
+```
+
+## API
+
+| Property | Description | Type | Default |
+| -------- | --------------------------------------- | ----------------------- | --------- |
+| `[type]` | Type of status label | `success,error,warning` | `success` |
+| `[icon]` | Whether show icon | `boolean` | `true` |
+| `[text]` | Text of status label, or `[ng-content]` | `string` | - |
diff --git a/src/app/shared/components/status-label/index.ts b/src/app/shared/components/status-label/index.ts
new file mode 100644
index 00000000..d7143225
--- /dev/null
+++ b/src/app/shared/components/status-label/index.ts
@@ -0,0 +1,2 @@
+export * from './status-label.component';
+export * from './status-label.module';
diff --git a/src/app/shared/components/status-label/index.zh-CN.md b/src/app/shared/components/status-label/index.zh-CN.md
new file mode 100644
index 00000000..47e99263
--- /dev/null
+++ b/src/app/shared/components/status-label/index.zh-CN.md
@@ -0,0 +1,23 @@
+---
+order: 10
+title: status-label
+type: Component
+---
+
+状态标签,参考[示例](https://preview.ng-alain.com/ms/#/dns/domain)。
+
+## DEMO
+
+```html
+Normal
+
+
+```
+
+## API
+
+| 参数 | 说明 | 类型 | 默认值 |
+| -------- | ----------------------- | ----------------------- | --------- |
+| `[type]` | 类型 | `success,error,warning` | `success` |
+| `[icon]` | 是否显示图标 | `boolean` | `true` |
+| `[text]` | 文本,或 `[ng-content]` | `string` | - |
diff --git a/src/app/shared/components/status-label/status-label.component.ts b/src/app/shared/components/status-label/status-label.component.ts
new file mode 100644
index 00000000..4af8f0ce
--- /dev/null
+++ b/src/app/shared/components/status-label/status-label.component.ts
@@ -0,0 +1,55 @@
+import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnChanges } from '@angular/core';
+import { BooleanInput, InputBoolean } from '@delon/util';
+
+@Component({
+ selector: 'status-label, [status-label]',
+ template: `
+
+ {{ text }}
+
+ `,
+ host: {
+ '[class.text-success]': `_t=='success'`,
+ '[class.text-error]': `_t=='error'`,
+ '[class.text-orange]': `_t=='warning'`
+ },
+ changeDetection: ChangeDetectionStrategy.OnPush
+})
+export class StatusLabelComponent implements OnChanges {
+ static ngAcceptInputType_icon: BooleanInput;
+
+ _t?: string;
+
+ iconType!: string;
+
+ @Input()
+ set type(v: 'success' | 'error' | 'warning') {
+ let iconType: string;
+ switch (v) {
+ case 'success':
+ iconType = 'check-circle';
+ break;
+ case 'error':
+ iconType = 'close-circle';
+ break;
+ case 'warning':
+ default:
+ iconType = 'exclamation-circle';
+ break;
+ }
+ this._t = v;
+ this.iconType = iconType;
+ }
+
+ @Input() @InputBoolean() icon = true;
+
+ @Input() text?: string;
+
+ constructor(private cdr: ChangeDetectorRef) {
+ this.type = 'success';
+ }
+
+ ngOnChanges(): void {
+ this.cdr.detectChanges();
+ }
+}
diff --git a/src/app/shared/components/status-label/status-label.module.ts b/src/app/shared/components/status-label/status-label.module.ts
new file mode 100644
index 00000000..743a9eab
--- /dev/null
+++ b/src/app/shared/components/status-label/status-label.module.ts
@@ -0,0 +1,14 @@
+import { CommonModule } from '@angular/common';
+import { NgModule } from '@angular/core';
+import { NzIconModule } from 'ng-zorro-antd/icon';
+
+import { StatusLabelComponent } from './status-label.component';
+
+const COMPONENTS = [StatusLabelComponent];
+
+@NgModule({
+ imports: [CommonModule, NzIconModule],
+ declarations: COMPONENTS,
+ exports: COMPONENTS
+})
+export class StatusLabelModule {}
diff --git a/src/app/shared/index.ts b/src/app/shared/index.ts
new file mode 100644
index 00000000..86cfaf5c
--- /dev/null
+++ b/src/app/shared/index.ts
@@ -0,0 +1,15 @@
+// Modules
+export * from './components/delay/index';
+export * from './components/editor/index';
+export * from './components/file-manager/index';
+export * from './components/masonry/index';
+export * from './components/mouse-focus/index';
+export * from './components/status-label/index';
+export * from './components/scrollbar/index';
+export * from './components/address/index';
+
+// Utils
+export * from './utils/yuan';
+
+// Module
+export * from './shared.module';
diff --git a/src/app/shared/interfaces/api/i-api-response.i.ts b/src/app/shared/interfaces/api/i-api-response.i.ts
new file mode 100644
index 00000000..f6931e4c
--- /dev/null
+++ b/src/app/shared/interfaces/api/i-api-response.i.ts
@@ -0,0 +1,7 @@
+export interface IApiResponse {
+ success?: boolean;
+ msg?: string;
+ status?: number;
+ state?: number;
+ data?: any;
+}
diff --git a/src/app/shared/interfaces/core/i-base.i.ts b/src/app/shared/interfaces/core/i-base.i.ts
new file mode 100644
index 00000000..1b32f151
--- /dev/null
+++ b/src/app/shared/interfaces/core/i-base.i.ts
@@ -0,0 +1,26 @@
+import { Observable } from 'rxjs';
+export interface IBase {
+ // 增
+ addOne(params: any, url: string): Observable;
+ asyncAddOne(params: any, url: string): Promise;
+ addMany(params: any[], url: string): Observable;
+ asyncAddMany(params: any[], url: string): Promise;
+
+ // 删
+ delOne(params: any, url: string): Observable;
+ asyncDelOne(params: any, url: string): Promise;
+ delMany(params: any[], url: string): Observable;
+ asyncDelMany(params: any[], url: string): Promise;
+
+ // 改
+ updateOne(params: any, url: string): Observable;
+ asyncUpdateOne(params: any, url: string): Promise;
+ updateMany(params: any[], url: string): Observable;
+ asyncUpdateMany(params: any[], url: string): Promise;
+
+ // 查
+ getOne(params: any, url: string): Observable;
+ asyncGetOne(params: any, url: string): Promise;
+ getMany(params: any, url: string): Observable;
+ asyncGetMany(params: any, url: string): Promise;
+}
diff --git a/src/app/shared/interfaces/core/i-cache-obj.ts b/src/app/shared/interfaces/core/i-cache-obj.ts
new file mode 100644
index 00000000..55ba6961
--- /dev/null
+++ b/src/app/shared/interfaces/core/i-cache-obj.ts
@@ -0,0 +1,44 @@
+/*
+ * .::::.
+ * .::::::::.
+ * :::::::::::
+ * ..:::::::::::'
+ * '::::::::::::'
+ * .::::::::::
+ * '::::::::::::::..
+ * ..::::::::::::.
+ * ``::::::::::::::::
+ * ::::``:::::::::' .:::.
+ * ::::' ':::::' .::::::::.
+ * .::::' :::: .:::::::'::::.
+ * .:::' ::::: .:::::::::' ':::::.
+ * .::' :::::.:::::::::' ':::::.
+ * .::' ::::::::::::::' ``::::.
+ * ...::: ::::::::::::' ``::.
+ * ````':. ':::::::::' ::::..
+ * '.:::::' ':'````..
+ *
+ * @Author: Maple
+ * @Date: 2021-06-10 16:04:50
+ * @LastEditors: Do not edit
+ * @LastEditTime: 2021-06-11 10:15:26
+ * @Description: 缓存数据对象
+ */
+export interface ICacheObj {
+ /**
+ * 生产日期
+ */
+ pd: number;
+ /**
+ * 缓存数据
+ */
+ data: any;
+ /**
+ * 有效时间
+ */
+ vld?: number;
+ /**
+ * 是否加密
+ */
+ encrypt?: boolean;
+}
diff --git a/src/app/shared/interfaces/index.ts b/src/app/shared/interfaces/index.ts
new file mode 100644
index 00000000..40e011fe
--- /dev/null
+++ b/src/app/shared/interfaces/index.ts
@@ -0,0 +1,6 @@
+// Api
+export * from './api/i-api-response.i';
+
+// Core
+export * from './core/i-base.i';
+export * from './core/i-cache-obj';
diff --git a/src/app/shared/services/business/account.service.ts b/src/app/shared/services/business/account.service.ts
new file mode 100644
index 00000000..fc461324
--- /dev/null
+++ b/src/app/shared/services/business/account.service.ts
@@ -0,0 +1,112 @@
+/*
+ * @Author: Maple
+ * @Date: 2021-03-22 11:42:26
+ * @LastEditors: Do not edit
+ * @LastEditTime: 2021-05-27 11:22:02
+ * @Description: 全局账号服务
+ */
+import { Injectable, Injector } from '@angular/core';
+import { Router } from '@angular/router';
+import { CoreService, StartupService } from '@core';
+import { ReuseTabService } from '@delon/abc/reuse-tab';
+import { BaseService } from '../core/base.service';
+@Injectable({
+ providedIn: 'root',
+})
+export class EAAccountService extends BaseService {
+ // 验证码登录
+ public $api_login_by_captcha = `/scm/cuc/cuc/user/sms/login?_allow_anonymous=true`;
+ // 账号密码登录
+ public $api_login_by_account = `/scm/cuc/cuc/user/login?_allow_anonymous=true`;
+ // 退出登录
+ public $api_logout = `/chia/user/logout`;
+
+ constructor(public injector: Injector) {
+ super(injector);
+ }
+
+ // 注入核心服务
+ private get coreSrv(): CoreService {
+ return this.injector.get(CoreService);
+ }
+
+ // 注入路由
+ private get router(): Router {
+ return this.injector.get(Router);
+ }
+
+ // 注入路由复用服务
+ private get reuseTabService(): ReuseTabService {
+ return this.injector.get(ReuseTabService);
+ }
+ // 注入全局启动服务
+ private get startSrv(): StartupService {
+ return this.injector.get(StartupService);
+ }
+
+ // 登录状态
+ public get loginStatus(): boolean {
+ return this.coreSrv.loginStatus;
+ }
+
+ /**
+ * 账号密码登录
+ * @param username 登录账号
+ * @param password 登录密码
+ */
+ loginByAccount(username: string, password: string): void {
+ this.asyncRequest(this.$api_login_by_account, { username, password, type: 0 }, 'POST', true, 'FORM').then((res) => {
+ console.log(res);
+ this.doAfterLogin(res);
+ });
+ }
+
+ /**
+ * 短信验证码登录
+ * @param phone 手机号码
+ * @param smsCode 短信验证码
+ */
+ loginByCaptcha(phone: string, smsCode: string): void {
+ this.asyncRequest(this.$api_login_by_captcha, { phone, smsCode }, 'POST', true, 'FORM').then((res) => {
+ this.doAfterLogin(res);
+ });
+ }
+
+ private doAfterLogin(res: any): void {
+ const token = res?.token;
+ if (token) {
+ // 清空路由复用信息
+ this.reuseTabService.clear();
+
+ // 设置用户Token信息
+ // TODO: Mock expired value
+ // res.user.expired = +new Date() + 1000 * 60 * 5;
+ this.coreSrv.tokenSrv.set({ token });
+ // 重新获取 StartupService 内容,我们始终认为应用信息一般都会受当前用户授权范围而影响
+ this.startSrv.load().then(() => {
+ let url = this.coreSrv.tokenSrv.referrer!.url || '/';
+ if (url.includes('/passport')) {
+ url = '/';
+ }
+ this.router.navigateByUrl(url);
+ });
+ }
+ }
+
+ /**
+ * 登出系统
+ * @param showMsg 是否显示登录过期弹窗
+ */
+ logout(showMsg: boolean): void {
+ this.coreSrv.logout(showMsg);
+ }
+
+ /**
+ * 向服务器请求登出
+ */
+ requestLogout(): void {
+ this.asyncRequest(this.$api_logout).finally(() => {
+ this.logout(false);
+ });
+ }
+}
diff --git a/src/app/shared/services/business/authorization.service.ts b/src/app/shared/services/business/authorization.service.ts
new file mode 100644
index 00000000..c23cdb35
--- /dev/null
+++ b/src/app/shared/services/business/authorization.service.ts
@@ -0,0 +1,88 @@
+/*
+ * @Author: Maple
+ * @Date: 2021-03-22 11:42:26
+ * @LastEditors: Do not edit
+ * @LastEditTime: 2021-06-17 14:58:35
+ * @Description: 全局权限服务
+ */
+import { Injectable, Injector } from '@angular/core';
+import { Router } from '@angular/router';
+import { cacheConf } from '@conf/cache.conf';
+import { StartupService } from '@core';
+import { ReuseTabService } from '@delon/abc/reuse-tab';
+import { DA_SERVICE_TOKEN, ITokenService } from '@delon/auth';
+import { SettingsService } from '@delon/theme';
+import { Observable, of } from 'rxjs';
+import { tap } from 'rxjs/operators';
+import { BaseService } from '../core/base.service';
+import { EACacheService } from '../core/cache.service';
+
+@Injectable({
+ providedIn: 'root',
+})
+export class EAAuthorizationService extends BaseService {
+ // 获取我的角色
+ public $api_get_my_roles = `/chia/roleInfo/getMyRoleList`;
+
+ constructor(public injector: Injector) {
+ super(injector);
+ }
+
+ // 注入路由
+ private get router(): Router {
+ return this.injector.get(Router);
+ }
+ // 注入缓存服务
+ private get cacheSrv(): EACacheService {
+ return this.injector.get(EACacheService);
+ }
+ // 注入令牌服务
+ private get tokenSrv(): ITokenService {
+ return this.injector.get(DA_SERVICE_TOKEN);
+ }
+ // 注入路由复用服务
+ private get reuseTabService(): ReuseTabService {
+ return this.injector.get(ReuseTabService);
+ }
+ // 注入全局启动服务
+ private get startSrv(): StartupService {
+ return this.injector.get(StartupService);
+ }
+ // 注入全局设置服务
+ private get settingSrv(): SettingsService {
+ return this.injector.get(SettingsService);
+ }
+
+ /**
+ * 获取角色列表
+ * @param force 强制刷新 默认值:false
+ * @returns 角色列表, 类型 Array | Observable>
+ */
+ getMyRoles(force: boolean = false): Observable> {
+ // 强制刷新
+ if (force) {
+ return this.refreshRoles();
+ }
+
+ // 从缓存中提取角色
+ const roles = this.cacheSrv.get(cacheConf.role) || [];
+
+ // 当缓存中不存在角色时,尝试从服务器拉取角色数据
+ if (roles.length > 0) {
+ return of(roles);
+ }
+
+ return this.refreshRoles();
+ }
+
+ /**
+ * 刷新角色权限
+ */
+ private refreshRoles(): Observable> {
+ return this.request(this.$api_get_my_roles).pipe(
+ tap((res) => {
+ this.cacheSrv.set(cacheConf.role, res);
+ }),
+ );
+ }
+}
diff --git a/src/app/shared/services/business/captcha.service.ts b/src/app/shared/services/business/captcha.service.ts
new file mode 100644
index 00000000..72d31eb9
--- /dev/null
+++ b/src/app/shared/services/business/captcha.service.ts
@@ -0,0 +1,76 @@
+/*
+ * @Author: Maple
+ * @Date: 2021-03-22 11:42:26
+ * @LastEditors: Do not edit
+ * @LastEditTime: 2021-03-29 14:45:43
+ * @Description: 全局验证码服务
+ */
+import { ComponentRef, Injectable, Injector } from '@angular/core';
+import { Observable, Subject } from 'rxjs';
+import { BaseService } from '../core/base.service';
+
+@Injectable({
+ providedIn: 'root',
+})
+export class EACaptchaService extends BaseService {
+ // 通过手机号发送短信验证码
+ private $api_send_sms_by_mobile = `/scm/sms/sms/verification/getSMVerificationCode?_allow_anonymous=true&_allow_badcode=true`;
+
+ // 验证手机号为平台用户后发送短信验证码
+ private $api_send_sms__by_validate_mobile = `/chiauserBasicInfo/forgetPassword/getAccountSMVerificationCode`;
+
+ // 滑块验证码获取短信
+ $api_dun_sms = `/scce/pbc/pbc/verification/verificationSlider?_allow_anonymous=true&_allow_badcode=true`;
+
+ // 根据当前登录用户绑定的手机号码获取短信验证码
+ $api_captcha_sms_code = `/scce/pbc/pbc/verification/getSMVerificationCodeByToken`;
+
+ // 获取应用租户的管理员用户发送验证码
+ $api_getAppLesseeAdminSMVerificationCode = `/chiauserBasicInfo/getAppLesseeAdminSMVerificationCode`;
+
+ /**
+ * 根据当前登录用户绑定的手机号码获取短信验证码
+ */
+ getCaptchaBySMSNoPhone(): Observable {
+ return this.request(this.$api_captcha_sms_code, { appId: this.envSrv.getEnvironment().appId }, 'POST', true, 'FORM');
+ }
+ /**
+ * 获取应用租户的管理员用户发送验证码
+ */
+ getAppLesseeAdminSMVerificationCode(): Observable {
+ return this.request(this.$api_getAppLesseeAdminSMVerificationCode, { appId: this.envSrv.getEnvironment().appId }, 'POST', true, 'FORM');
+ }
+ constructor(public injector: Injector) {
+ super(injector);
+ }
+
+ /**
+ * 发送短信验证码
+ * @param mobile 手机号码
+ */
+ sendSMSCaptchaByMobile(mobile: string): Observable {
+ return this.request(
+ this.$api_send_sms_by_mobile,
+ { appId: this.envSrv.getEnvironment()?.appId, phoneNumber: mobile },
+ 'POST',
+ true,
+ 'FORM',
+ );
+ }
+
+ /**
+ * 滑块验证获取短信码
+ * @param tel 手机号
+ * @param validate 滑动验证通过字符串
+ * @param url api地址
+ */
+ getCaptchaByDun(mobile: string, validate: string, url?: string): Observable {
+ return this.request(
+ url || this.$api_dun_sms,
+ { appId: this.envSrv.getEnvironment()?.appId, phoneNumber: mobile, user: mobile, validate },
+ 'POST',
+ true,
+ 'FORM',
+ );
+ }
+}
diff --git a/src/app/shared/services/business/enterprise.service.ts b/src/app/shared/services/business/enterprise.service.ts
new file mode 100644
index 00000000..43774b06
--- /dev/null
+++ b/src/app/shared/services/business/enterprise.service.ts
@@ -0,0 +1,125 @@
+import { Injectable, Injector } from '@angular/core';
+import { cacheConf } from '@conf/cache.conf';
+import { Observable } from 'rxjs';
+import { tap } from 'rxjs/operators';
+import { BaseService } from '../core/base.service';
+import { EACacheService } from '../core/cache.service';
+
+@Injectable({
+ providedIn: 'root',
+})
+export class EAEnterpriseService extends BaseService {
+ // 获取当前用户绑定的分销商/代理商/供应商
+ public $api_get_my_enterprises = `/chia/enterpriseInfo/list/queryMyAppInfo`;
+
+ // 向服务器变更默认企业
+ public $api_selectEnterprise = '/chia/userApp/selectEnterprise';
+ constructor(public injector: Injector) {
+ super(injector);
+ }
+
+ // 注入缓存服务
+ private get cacheSrv(): EACacheService {
+ return this.injector.get(EACacheService);
+ }
+
+ /**
+ * 加载企业信息
+ */
+ loadEnterpises(): Observable {
+ return this.request(this.$api_get_my_enterprises);
+ }
+
+ /**
+ * 根据租户ID获取指定的企业
+ * @param tenantId 租户ID
+ */
+ getOne(tenantId: string): any {
+ const enterprises = this.getAll();
+ return enterprises.find((r) => r.tenantId === tenantId);
+ }
+
+ /**
+ * 获取所有企业
+ */
+ getAll(): Array {
+ return this.cacheSrv.get(cacheConf.enterprise) || [];
+ }
+
+ /**
+ * 获取默认企业
+ */
+ getDefault(): any {
+ const list = this.getAll();
+ return list.find((r) => r.defaultState) || list[0] || null;
+ }
+
+ /**
+ * 设置默认企业
+ */
+ setDefault(tenantId: string): void {
+ // 获取指定tenantId的企业
+ const enterprise = this.getOne(tenantId);
+ if (enterprise) {
+ let enterpriseList = this.getAll();
+
+ // 设置指定tenantId的企业为默认企业,其他的企业为非默认企业
+ enterpriseList = enterpriseList.map((m) => {
+ if (m.tenantId === enterprise.tenantId) {
+ m.defaultState = true;
+ } else {
+ m.defaultState = false;
+ }
+ return m;
+ });
+ // 重新缓存新的企业列表
+ this.setCache(enterpriseList);
+
+ // 广播当前环境信息
+ this.envSrv.setEnvironment(enterprise.appId, enterprise.tenantId);
+ }
+ }
+
+ /**
+ * 设置缓存企业信息
+ * @param enterpriseData 企业信息信息
+ */
+ setCache(enterpriseData: any): void {
+ this.cacheSrv.set(cacheConf.enterprise, enterpriseData);
+ }
+
+ /**
+ * 选择企业
+ * @param item 企业实体
+ * 选择企业进入管理后台
+ * 1. 判断当前企业是否被冻结,如企业为冻结状态,则toast提示“供应商已被冻结,无法访问,请联系客服处理”
+ * 2. 向服务器请求变更当前企业身份
+ * 3. 服务器变更当前企业后,刷新本地缓存中的企业信息
+ * 4. 跳转到管理后台首页
+ */
+ changeDefaultEnterprise(item: any): Observable {
+ // 1. 判断冻结状态
+ // if (item.stateLocked) {
+ // this.msgSrv.warning('代理商已被冻结,无法访问,请联系客服处理');
+ // return of(false);
+ // }
+ // 2.判断用户状态userStatus:0-正常,1-冻结,2-废弃
+ // if (item.userStatus === 1) {
+ // this.msgSrv.warning('您的帐号已被企业冻结,无法访问,请联系客服处理');
+ // return of(false);
+ // }
+ // if (item.userStatus === 2) {
+ // this.msgSrv.warning('您的帐号已被企业废弃,无法访问,请联系客服处理');
+ // return of(false);
+ // }
+ // 3. 向服务器请求变更当前企业身份
+ return this.request(this.$api_selectEnterprise, { tenantId: item.tenantId }).pipe(
+ tap((data) => {
+ if (data) {
+ // 切换成功则广播当前环境信息
+ this.envSrv.setEnvironment(item.appId, item.tenantId);
+ }
+ }),
+ );
+ }
+}
diff --git a/src/app/shared/services/business/sl-platform.service.ts b/src/app/shared/services/business/sl-platform.service.ts
new file mode 100644
index 00000000..10b74cd1
--- /dev/null
+++ b/src/app/shared/services/business/sl-platform.service.ts
@@ -0,0 +1,306 @@
+/*
+ * @Author: Maple
+ * @Date: 2021-03-22 11:42:26
+ * @LastEditors: Do not edit
+ * @LastEditTime: 2021-05-27 11:07:18
+ * @Description: 全局系统服务
+ */
+import { Injectable, Injector } from '@angular/core';
+import { Observable, zip } from 'rxjs';
+import { catchError, switchMap } from 'rxjs/operators';
+import { CoreService } from 'src/app/core/core.service';
+import { EAEncryptUtil } from '../../utils';
+import { BaseService } from '../core/base.service';
+
+@Injectable({
+ providedIn: 'root',
+})
+export class EAPlatformService extends BaseService {
+ public $api_update_platform_name = `/chia/operationInfo/updatePlatformName`; // 修改当前登录平台名称
+
+ /**
+ * 判断是否已经设置平台名称
+ */
+ private $api_is_set_platform_name = `/chia/operationInfo/judgeSetPlatformName`;
+ /**
+ * 获取当前登录用户绑定的运营商有效期
+ */
+ private $api_get_validity_period_of_operator = `/chia/operationInfo/getOperationDetailByToken`;
+
+ /**
+ * 缓存平台状态键名
+ */
+ private _cachePlatformStatusKey = '_cpsk';
+ /**
+ * 运营商剩余有效期
+ */
+ private _validityPeriodOfOperator: Observable | null = null;
+ /**
+ * 允许运营商超出有效期时登录
+ */
+ private _allowLoginBeyondValidity = true;
+ /**
+ * 获取基础配置
+ */
+ // public $api_get_config = `/scce/pbc/pbc/baseConfig/getBaseConfigList?_allow_anonymous=true`;
+ constructor(public injector: Injector) {
+ super(injector);
+ }
+
+ // 注入核心服务
+ private get coreSrv(): CoreService {
+ return this.injector.get(CoreService);
+ }
+
+ /**
+ * 获取平台状态(参考Http状态码)
+ * 200:平台状态正常
+ * 401: 未设置平台名称
+ * 403
+ */
+ getPlatformStatus(): number {
+ const encryptStatus = this.coreSrv.cacheSrv.getNone(this._cachePlatformStatusKey);
+ try {
+ const status = EAEncryptUtil.deencryptByDeAES(encryptStatus);
+ return +status;
+ } catch (error) {
+ return 0;
+ }
+ }
+
+ /**
+ * 获取当前运营商剩余有效期
+ * @returns 有效期天数
+ */
+ getValidityPeriodOfOperator(): Observable {
+ return this.loadValidityPeriodOfOperator();
+ }
+
+ /**
+ * 加载平台状态
+ *
+ * @returns 平台状态码
+ */
+ loadPlatformStatus(): Promise {
+ return new Promise((resolve) => {
+ zip(this.loadIsSetPlatformName(), this.loadValidityPeriodOfOperator())
+ .pipe(
+ catchError((res) => {
+ console.error(`加载平台状态时发生错误:`, res);
+ this.msgSrv.error(`加载平台状态时发生错误!`);
+ resolve();
+ return [];
+ }),
+ )
+ .subscribe(
+ ([nameStauts, validityPeriod]) => this.setPlatformStatus(nameStauts, validityPeriod),
+ () => {},
+ () => resolve(),
+ );
+ });
+ }
+
+ /**
+ * 获取平台名称设置状态
+ * @param nameStatus 平台名称设置状态
+ * @param validityPeriod 运营剩余有效期天数
+ */
+ setPlatformStatus(nameStatus: boolean, validityPeriod: number) {
+ let status = 0;
+ // 判断平台名称
+ if (status !== 200) {
+ status = nameStatus ? 200 : 401;
+ }
+
+ // 判断运营商有效期
+ if (!this._allowLoginBeyondValidity && status === 200) {
+ status = validityPeriod > 0 ? 200 : 402;
+ }
+
+ // 加密并保存平台状态
+ const ciphertext = EAEncryptUtil.encryptByEnAES(status.toString());
+ this.coreSrv.cacheSrv.set(this._cachePlatformStatusKey, ciphertext);
+ }
+
+ /**
+ * 获取平台是否设置平台名称
+ * @returns true | false
+ */
+ private loadIsSetPlatformName(): Observable {
+ return this.request(this.$api_is_set_platform_name).pipe(switchMap(async (sm) => sm === true));
+ }
+
+ /**
+ * 获取当前账户绑定的运营商有效期
+ * @returns 有效期时间(天)
+ */
+ private loadValidityPeriodOfOperator(): Observable {
+ return this.request(this.$api_get_validity_period_of_operator);
+ }
+
+ /**
+ * 获取指定平台的地址
+ * @param platformName 平台名称
+ * @param hasOperationCode 是否需要运营商代码
+ */
+ getPlatfomrUrl(platformName: string, hasOperationCode = true) {
+ const url: string = this.getAllPlatformUrls().find((r: any) => r.name === platformName)?.url || '';
+ if (hasOperationCode) {
+ return url;
+ }
+
+ return url.includes('?') ? url.substring(0, url.indexOf('?')) : url;
+ }
+
+ /**
+ * 获取所有平台的地址
+ */
+ getAllPlatformUrls() {
+ let platforms: any = [];
+ const sc = this.coreSrv.tokenSrv.get()?.sc;
+ const protocol = window.location.protocol;
+ const hostname = window.location.hostname;
+ const port = window.location.port;
+ switch (hostname) {
+ case 'localhost':
+ platforms = [
+ {
+ name: '运营后台',
+ url: `${protocol}//${hostname}:8001/#/?v=${sc}`,
+ },
+ {
+ name: '开放平台',
+ url: `${protocol}//localhost:8005/#/?v=${sc}`,
+ },
+ {
+ name: '供应商平台',
+ url: `${protocol}//localhost:8004/#/?v=${sc}`,
+ },
+ {
+ name: '分销商平台',
+ url: `${protocol}//localhost:8003/#/?v=${sc}`,
+ },
+ {
+ name: '代理商平台',
+ url: `${protocol}//localhost:8002/#/?v=${sc}`,
+ },
+ ];
+ break;
+ case 'sce-ows-test.380star.com':
+ platforms = [
+ {
+ name: '运营后台',
+ url: `${protocol}//${hostname}${port ? ':' + port : ''}/#/?v=${sc}`,
+ },
+ {
+ name: '开放平台',
+ url: `${protocol}//sce-opc-test.380star.com${port ? ':' + port : ''}/#/?v=${sc}`,
+ },
+ {
+ name: '供应商平台',
+ url: `${protocol}//sce-cvc-test.380star.com${port ? ':' + port : ''}/#/?v=${sc}`,
+ },
+ {
+ name: '分销商平台',
+ url: `${protocol}//sce-cdc-test.380star.com${port ? ':' + port : ''}/#/?v=${sc}`,
+ },
+ {
+ name: '代理商平台',
+ url: `${protocol}//sce-cac-test.380star.com${port ? ':' + port : ''}/#/?v=${sc}`,
+ },
+ ];
+ break;
+ case 'sce-ows-pre.380star.com':
+ platforms = [
+ {
+ name: '运营后台',
+ url: `${protocol}//${hostname}${port ? ':' + port : ''}/#/?v=${sc}`,
+ },
+ {
+ name: '开放平台',
+ url: `${protocol}//sce-opc-pre.380star.com${port ? ':' + port : ''}/#/?v=${sc}`,
+ },
+ {
+ name: '供应商平台',
+ url: `${protocol}//sce-cvc-pre.380star.com${port ? ':' + port : ''}/#/?v=${sc}`,
+ },
+ {
+ name: '分销商平台',
+ url: `${protocol}//sce-cdc-pre.380star.com${port ? ':' + port : ''}/#/?v=${sc}`,
+ },
+ {
+ name: '代理商平台',
+ url: `${protocol}//sce-cac-pre.380star.com${port ? ':' + port : ''}/#/?v=${sc}`,
+ },
+ ];
+ break;
+ case 'sce-ows-demo.380star.com':
+ platforms = [
+ {
+ name: '运营后台',
+ url: `${protocol}//${hostname}${port ? ':' + port : ''}/#/?v=${sc}`,
+ },
+ {
+ name: '开放平台',
+ url: `${protocol}//sce-opc-demo.380star.com${port ? ':' + port : ''}/#/?v=${sc}`,
+ },
+ {
+ name: '供应商平台',
+ url: `${protocol}//sce-cvc-demo.380star.com${port ? ':' + port : ''}/#/?v=${sc}`,
+ },
+ {
+ name: '分销商平台',
+ url: `${protocol}//sce-cdc-demo.380star.com${port ? ':' + port : ''}/#/?v=${sc}`,
+ },
+ {
+ name: '代理商平台',
+ url: `${protocol}//sce-cac-demo.380star.com${port ? ':' + port : ''}/#/?v=${sc}`,
+ },
+ ];
+ break;
+ case 'sce-ows.380star.com':
+ platforms = [
+ {
+ name: '运营后台',
+ url: `${protocol}//${hostname}${port ? ':' + port : ''}/#/?v=${sc}`,
+ },
+ {
+ name: '开放平台',
+ url: `${protocol}//sce-opc.380star.com${port ? ':' + port : ''}/#/?v=${sc}`,
+ },
+ {
+ name: '供应商平台',
+ url: `${protocol}//sce-cvc.380star.com${port ? ':' + port : ''}/#/?v=${sc}`,
+ },
+ {
+ name: '分销商平台',
+ url: `${protocol}//sce-cdc.380star.com${port ? ':' + port : ''}/#/?v=${sc}`,
+ },
+ {
+ name: '代理商平台',
+ url: `${protocol}//sce-cac.380star.com${port ? ':' + port : ''}/#/?v=${sc}`,
+ },
+ ];
+ break;
+ }
+ return platforms;
+ }
+
+ /**
+ * 获取运营商代码
+ * @returns 运营商代码
+ */
+ getOperatorCode() {
+ return this.coreSrv.tokenSrv.get()?.sc || this.coreSrv.settingSrv.getData('app')?.v || '';
+ }
+
+ /**
+ * 获取平台配置信息列表
+ */
+ // getPlatformConfigurationList(): Observable> {
+ // return this.request(this.$api_get_config, {
+ // pageIndex: 1,
+ // pageSize: 999,
+ // });
+ // }
+}
diff --git a/src/app/shared/services/business/user.service.ts b/src/app/shared/services/business/user.service.ts
new file mode 100644
index 00000000..d6247d3a
--- /dev/null
+++ b/src/app/shared/services/business/user.service.ts
@@ -0,0 +1,204 @@
+/*
+ * @Description:
+ * @Author: wsm
+ * @Date: 2021-06-22 10:25:33
+ * @LastEditTime: 2021-06-23 20:25:05
+ * @LastEditors: Do not edit
+ * @Reference:
+ */
+import { Inject, Injectable, Injector } from '@angular/core';
+import { ActivatedRoute, Router } from '@angular/router';
+import { cacheConf } from '@conf/cache.conf';
+import { eventConf } from '@conf/event.conf';
+import { sysConf } from '@conf/sys.conf';
+import { DA_SERVICE_TOKEN, ITokenService } from '@delon/auth';
+import { SettingsService } from '@delon/theme';
+import { Observable } from 'rxjs';
+import { map } from 'rxjs/operators';
+import { BaseService } from '../core/base.service';
+import { EACacheService } from '../core/cache.service';
+import { EAEventService } from '../core/event.service';
+@Injectable({
+ providedIn: 'root',
+})
+export class EAUserService extends BaseService {
+ /**
+ * 账号密码登录
+ */
+ $api_login_by_account = `/scce/cuc/cuc/user/login?_allow_anonymous=true`;
+ /**
+ * 手机号登录
+ */
+ $api_login_by_mobile = `/scce/cuc/cuc/user/sms/login?_allow_anonymous=true`;
+ // 登录路径
+ private $api_login = `/scce/cuc/cuc/user/login?_allow_anonymous=true`;
+ private $api_captcha_login = `/scce/cuc/cuc/user/sms/login?_allow_anonymous=true`;
+ private $api_register: any = ``;
+ // 获取协议信息
+ public $api_get_agreement_info = `/scce/pbc/pbc/agreementInfo/getAgreementInfoByType?_allow_anonymous=true`;
+ // 未登录验证身份
+ public $forgetPasswordVerifyIdentity = `/scm/cuc/cuc/userBasicInfo/forgetPassword/verifyIdentity?_allow_anonymous=true`;
+ // 未登录账号发送验证码
+ public $getAccountSMVerificationCode = `/scm/cuc/cuc/userBasicInfo/forgetPassword/getAccountSMVerificationCode?_allow_anonymous=true`;
+ // 未设置密码的用户设置用户密码
+ public $api_set_password = `/scce/cuc/cuc/userBasicInfo/setPassword`;
+ // 凭证修改密码
+ public $voucherUpdatePassword = `/scm/cuc/cuc/userBasicInfo/forgetPassword/voucherUpdatePassword?_allow_anonymous=true`;
+ // 检测用户名是否存在
+ public $api_validate_username_exists = `/tms/cuc/cuc/userBasicInfo/checkUserName?_allow_badcode=true`;
+ // 获取当前用户信息
+ public $api_get_current_user = `/scce/cuc/cuc/user/getUserDetail`;
+ // 校验手机号是否可注册
+ private $api_vaild_register: any = ``;
+ /**
+ * 登出
+ */
+ $api_logout = `/scce/cuc/cuc/user/logout`;
+ /**
+ * 根据Token获取用户详情
+ */
+ $api_get_user_by_token = `/scce/cuc/cuc/user/getUserDetail`;
+ /**
+ * 获取用户菜单
+ */
+ $api_get_user_menus = `/scce/cuc/cuc/functionInfo/queryUserHaveFunctionsList`;
+ /**
+ * 获取用户角色
+ */
+ $api_get_user_roles = `/scce/cuc/cuc/roleInfo/getMyRoleList`;
+ // 获取一、二、三级地区详情
+ public $api_getRegionToThree = `/scce/pbc/pbc/region/getRegionToThree?_allow_anonymous=true`;
+ constructor(
+ public injector: Injector,
+ public cacheSrv: EACacheService,
+ public eventSrv: EAEventService,
+ public router: Router,
+ public ar: ActivatedRoute,
+ @Inject(DA_SERVICE_TOKEN) public tokenSrv: ITokenService,
+ private settingSrv: SettingsService,
+ ) {
+ super(injector);
+ }
+
+ /**
+ * 登录状态
+ */
+ public get loginStatus(): boolean {
+ try {
+ return !!this.tokenSrv.get()?.token;
+ } catch (error) {
+ return false;
+ }
+ }
+
+ /**
+ * @description 手机号登录
+ * @param mobile 手机号
+ * @param captcha 验证码
+ */
+ loginByMobile(mobile: string, captcha: string, sc: string) {
+ this.asyncRequest(this.$api_login_by_mobile, { phone: mobile, smsCode: captcha, sc }, 'POST', true, 'FORM').then((res) => {
+ if (res?.token) {
+ this.cacheSrv.set(cacheConf.token, res.token);
+ this.doAfterLogin();
+ this.eventSrv.event.emit(eventConf.reflesh_login_status);
+ this.router.navigate([this.ar.snapshot.queryParams.returnUrl || '/']);
+ }
+ });
+ }
+
+ /**
+ * @description 账号密码登录
+ * @param account 账号
+ * @param password 密码
+ */
+ loginByAccount(account: string, password: string, sc: string) {
+ this.request(this.$api_login_by_account, { username: account, password, sc }, 'POST', true, 'FORM').subscribe((res: any) => {
+ if (res?.token) {
+ this.tokenSrv.set({ token: res.token });
+ this.doAfterLogin();
+ this.eventSrv.event.emit(eventConf.reflesh_login_status, this.ar.snapshot.queryParams.returnUrl || '/');
+ }
+ });
+ }
+
+ async doAfterLogin() {
+ await this.loadUserInfo();
+ await this.loadUserMenus();
+ await this.loadUserRoles();
+ }
+
+ /**
+ * 加载用户信息
+ */
+ async loadUserInfo() {
+ return this.asyncRequest(this.$api_get_user_by_token).then((res) => {
+ this.cacheSrv.set(cacheConf.user, res);
+ });
+ }
+
+ /**
+ * 加载用户菜单
+ */
+ async loadUserMenus() {
+ return this.asyncRequest(this.$api_get_user_menus, { appId: sysConf.appId }).then((res) => {
+ this.cacheSrv.set(cacheConf.menu, res);
+ });
+ }
+
+ /**
+ * 加载用户角色
+ */
+ loadUserRoles() {}
+
+ /**
+ * 登出
+ */
+ logout() {
+ this.settingSrv.setApp({});
+ this.tokenSrv.clear();
+ this.cacheSrv.clear();
+ this.router.navigate(['/']);
+ }
+
+ /**
+ * 用户注册
+ */
+ register(params: any): Observable {
+ const obj: any = {};
+ obj.appId = sysConf.appId;
+ obj.masterAccount = 0;
+ if (params.regType === 'account') {
+ obj.account = params.account;
+ obj.loginCipher = params.loginCipher;
+ obj.type = 0;
+ } else if (params.regType === 'phone') {
+ obj.phone = params.phone;
+ obj.smsVerificationCode = params.smsVerificationCode;
+ obj.type = 1;
+ }
+ return this.http.post(this.$api_register, obj).pipe(
+ map((res: any): any => {
+ if (res.success === true) {
+ return true;
+ }
+ }),
+ );
+ }
+
+ /**
+ * 校验手机号是否可注册
+ */
+ checkPhoneHasRegister(params: any): Observable {
+ const formdata = new FormData();
+ formdata.append('appId', sysConf.appId);
+ formdata.append('phoneNumber', params);
+ return this.http.post(this.$api_vaild_register, formdata).pipe(
+ map((res: any): any => {
+ if (res.success === true) {
+ return true;
+ }
+ }),
+ );
+ }
+}
diff --git a/src/app/shared/services/core/base.service.ts b/src/app/shared/services/core/base.service.ts
new file mode 100644
index 00000000..6d636413
--- /dev/null
+++ b/src/app/shared/services/core/base.service.ts
@@ -0,0 +1,516 @@
+/*
+ * @Author: Maple
+ * @Date: 2021-03-20 16:38:44
+ * @LastEditors: Do not edit
+ * @LastEditTime: 2021-06-17 15:06:37
+ * @Description: 全局基础服务:
+ * 所有实体类服务必须使用extends扩展此类
+ * 几个特别的Get参数:
+ * 1. _allow_anonymous=true: 匿名访问,可绕开Http拦截器验证拦截
+ * 使用方法: $api_xxx = `xxx?_allow_anonymous=true`
+ *
+ * 2. _allow_badcode=true: 请求坏状态,可使Http拦截放还完整的HttpResponse
+ * 使用方法: $api_xxx = `xxxx?_allow_badcode=true`
+ *
+ * 3. _custom_header="[{key: string, value: string}]": 自定义Header,
+ * 一些特殊的请求,需要额外附加特别的Header时使用
+ * 使用方法:
+ * const headers = [{ key: xxx, value: xxx},
+ * { key: xxx, value: xxxx}];
+ * this.service.request(
+ * this.encodeUrlHeader(
+ * this.service.$api_xxx, headers))
+ *
+ */
+import { Injectable, Injector } from '@angular/core';
+import { _HttpClient } from '@delon/theme';
+import { environment } from '@env/environment';
+import { EnvironmentService } from '@env/environment.service';
+import { NzMessageService } from 'ng-zorro-antd/message';
+import { NzUploadChangeParam } from 'ng-zorro-antd/upload';
+import { Observable } from 'rxjs';
+import { map, tap } from 'rxjs/operators';
+import { IBase } from '../../interfaces';
+import { EAFileUtil } from '../../utils';
+
+@Injectable({
+ providedIn: 'root',
+})
+export class BaseService implements IBase {
+ // 新增实例接口地址
+ public $api_add_one!: string;
+ // 新增多个实例地址
+ public $api_add_many!: string;
+ // 修改实例接口地址
+ public $api_edit_one!: string;
+ // 修改多个实例地址
+ public $api_edit_many!: string;
+ // 删除单个实例接口地址
+ public $api_del_one!: string;
+ // 删除多个实例接口地址
+ public $api_del_many!: string;
+ // 获取多个实例接口地址
+ public $api_get_many!: string;
+ // 获取单个实例接口地址
+ public $api_get_one!: string;
+ // 获取分页数据
+ public $api_get_page!: string;
+ // 导出数据接口地址
+ public $api_export!: string;
+ // 导入数据接口地址
+ public $api_import!: string;
+ // 导入数据模板下载地址
+ public $api_import_download_tpl!: string;
+ // 获取字典选项
+ public $api_get_dict!: string;
+
+ constructor(public injector: Injector) {}
+
+ get http(): _HttpClient {
+ return this.injector.get(_HttpClient);
+ }
+
+ get msgSrv(): NzMessageService {
+ return this.injector.get(NzMessageService);
+ }
+
+ get fileUtil(): EAFileUtil {
+ return this.injector.get(EAFileUtil);
+ }
+
+ get envSrv(): EnvironmentService {
+ return this.injector.get(EnvironmentService);
+ }
+
+ /**
+ * 异步请求
+ * @param parameter 请求参数
+ * @param url 请求路径
+ * @param method 请求方法
+ */
+ private httpRequest(
+ url: string,
+ parameter: any = {},
+ method: 'POST' | 'GET',
+ paramInBody: boolean = true,
+ paramType: 'JSON' | 'FORM' = 'JSON',
+ ): Observable {
+ if (paramType === 'FORM') {
+ parameter = this.getFormData(parameter);
+ }
+ // 判断请求是否需要返回完整请求体
+ const allowBadCode = this.getParams('_allow_badcode', url);
+ return this.http
+ .request(method, url, {
+ body: paramInBody ? parameter : null,
+ params: paramInBody ? null : parameter,
+ })
+ .pipe(
+ map((res: any) => {
+ if (res.success === true) {
+ const data = res?.data;
+ if (allowBadCode) {
+ return res;
+ } else {
+ if (data === undefined || data === null) {
+ return true;
+ }
+ return data;
+ }
+ } else {
+ this.msgSrv.warning(res.msg);
+ return allowBadCode ? res : null;
+ }
+ }),
+ );
+ }
+
+ /**
+ * 把实体对象转换为FormData
+ */
+ private getFormData(entity: any) {
+ const formdata = new FormData();
+ for (const key in entity) {
+ if (Object.prototype.hasOwnProperty.call(entity, key)) {
+ formdata.append(key, entity[key]);
+ }
+ }
+ return formdata;
+ }
+
+ request(
+ url: string,
+ parameter: any = {},
+ method: 'POST' | 'GET' = 'POST',
+ paramInBody: boolean = true,
+ paramType: 'JSON' | 'FORM' = 'JSON',
+ ): Observable {
+ return this.httpRequest(url, parameter, method, paramInBody, paramType);
+ }
+
+ asyncRequest(
+ url: string,
+ parameter: any = {},
+ method: 'POST' | 'GET' = 'POST',
+ paramInBody: boolean = true,
+ paramType: 'JSON' | 'FORM' = 'JSON',
+ ): Promise {
+ return this.request(url, parameter, method, paramInBody, paramType).toPromise();
+ }
+
+ // 增
+ addOne(
+ parameter: any,
+ url: string = this.$api_add_one,
+ method: 'POST' | 'GET' = 'POST',
+ paramInBody: boolean = true,
+ paramType: 'JSON' | 'FORM' = 'JSON',
+ ): Observable {
+ return this.request(url, parameter, method, paramInBody, paramType);
+ }
+
+ asyncAddOne(
+ parameter: any,
+ url: string = this.$api_add_one,
+ method: 'POST' | 'GET' = 'POST',
+ paramInBody: boolean = true,
+ paramType: 'JSON' | 'FORM' = 'JSON',
+ ): Promise {
+ return this.addOne(parameter, url, method, paramInBody, paramType).toPromise();
+ }
+
+ addMany(
+ parameter: any[],
+ url: string = this.$api_add_many,
+ method: 'POST' | 'GET' = 'POST',
+ paramInBody: boolean = true,
+ paramType: 'JSON' | 'FORM' = 'JSON',
+ ): Observable {
+ return this.request(url, parameter, method, paramInBody, paramType);
+ }
+
+ asyncAddMany(
+ parameter: any,
+ url: string = this.$api_add_many,
+ method: 'POST' | 'GET' = 'POST',
+ paramInBody: boolean = true,
+ paramType: 'JSON' | 'FORM' = 'JSON',
+ ): Promise {
+ return this.addMany(parameter, url, method, paramInBody, paramType).toPromise();
+ }
+
+ // 删
+ delOne(
+ parameter: any,
+ url: string = this.$api_del_one,
+ method: 'POST' | 'GET' = 'POST',
+ paramInBody: boolean = true,
+ paramType: 'JSON' | 'FORM' = 'JSON',
+ ): Observable {
+ return this.request(url, parameter, method, paramInBody, paramType);
+ }
+
+ asyncDelOne(
+ parameter: any,
+ url: string = this.$api_del_one,
+ method: 'POST' | 'GET' = 'POST',
+ paramInBody: boolean = true,
+ paramType: 'JSON' | 'FORM' = 'JSON',
+ ): Promise {
+ return this.delOne(parameter, url, method, paramInBody, paramType).toPromise();
+ }
+
+ delMany(
+ parameter: any[],
+ url: string = this.$api_del_many,
+ method: 'POST' | 'GET' = 'POST',
+ paramInBody: boolean = true,
+ paramType: 'JSON' | 'FORM' = 'JSON',
+ ): Observable {
+ return this.request(url, parameter, method, paramInBody, paramType);
+ }
+
+ asyncDelMany(
+ parameter: any[],
+ url: string = this.$api_del_many,
+ method: 'POST' | 'GET' = 'POST',
+ paramInBody: boolean = true,
+ paramType: 'JSON' | 'FORM' = 'JSON',
+ ): Promise {
+ return this.delMany(parameter, url, method, paramInBody, paramType).toPromise();
+ }
+
+ // 改
+ updateOne(
+ parameter: any,
+ url: string = this.$api_edit_one,
+ method: 'POST' | 'GET' = 'POST',
+ paramInBody: boolean = true,
+ paramType: 'JSON' | 'FORM' = 'JSON',
+ ): Observable {
+ return this.request(url, parameter, method, paramInBody, paramType);
+ }
+
+ asyncUpdateOne(
+ parameter: any,
+ url: string = this.$api_edit_one,
+ method: 'POST' | 'GET' = 'POST',
+ paramInBody: boolean = true,
+ paramType: 'JSON' | 'FORM' = 'JSON',
+ ): Promise {
+ return this.updateOne(parameter, url, method, paramInBody, paramType).toPromise();
+ }
+
+ updateMany(
+ parameter: any[],
+ url: string = this.$api_edit_many,
+ method: 'POST' | 'GET' = 'POST',
+ paramInBody: boolean = true,
+ paramType: 'JSON' | 'FORM' = 'JSON',
+ ): Observable {
+ return this.request(url, parameter, method, paramInBody, paramType);
+ }
+
+ asyncUpdateMany(
+ parameter: any[],
+ url: string = this.$api_edit_many,
+ method: 'POST' | 'GET' = 'POST',
+ paramInBody: boolean = true,
+ paramType: 'JSON' | 'FORM' = 'JSON',
+ ): Promise {
+ return this.updateMany(parameter, url, method, paramInBody, paramType).toPromise();
+ }
+
+ /**
+ * 查询一个实例
+ */
+ getOne(
+ parameter: any,
+ url: string = this.$api_get_one,
+ method: 'POST' | 'GET' = 'POST',
+ paramInBody: boolean = true,
+ paramType: 'JSON' | 'FORM' = 'JSON',
+ ): Observable {
+ return this.request(url, parameter, method, paramInBody, paramType);
+ }
+
+ asyncGetOne(
+ parameter: any,
+ url: string = this.$api_get_one,
+ method: 'POST' | 'GET' = 'POST',
+ paramInBody: boolean = true,
+ paramType: 'JSON' | 'FORM' = 'JSON',
+ ): Promise {
+ return this.getOne(parameter, url, method, paramInBody, paramType).toPromise();
+ }
+
+ /**
+ * 查询一个实例
+ */
+ getMany(
+ parameter: any,
+ url: string = this.$api_get_many,
+ method: 'POST' | 'GET' = 'POST',
+ paramInBody: boolean = true,
+ paramType: 'JSON' | 'FORM' = 'JSON',
+ ): Observable {
+ return this.httpRequest(url, parameter, method, paramInBody, paramType).pipe(
+ map((res) => {
+ return (res as any[]) || [];
+ }),
+ );
+ }
+
+ asyncGetMany(
+ parameter: any,
+ url: string = this.$api_get_many,
+ method: 'POST' | 'GET' = 'POST',
+ paramInBody: boolean = true,
+ paramType: 'JSON' | 'FORM' = 'JSON',
+ ): Promise {
+ return this.getMany(parameter, url, method, paramInBody, paramType).toPromise();
+ }
+
+ /**
+ * @description: 异步导出文件
+ * 采用this.request相同的传参方式调用
+ * 支持多种传参方法及自定义头(推荐)
+ * @param parameter 条件参数
+ * @param url API地址
+ * @param method Http方法,默认:POST
+ * @param paramInBody 参数是否在body内
+ * @param paramType 参数类型: JSON | FORM , 默认:FORM
+ * @param allowBadCode 允许完整响应代码
+ * @param async 是否同步
+ * @returns Http响应结果
+ */
+ exportStart(
+ parameter: any,
+ url: string = this.$api_export,
+ method: 'POST' | 'GET' = 'POST',
+ paramInBody: boolean = true,
+ paramType: 'JSON' | 'FORM' = 'JSON',
+ allowBadCode: boolean = true,
+ async: boolean = true,
+ ): Observable | Promise {
+ if (allowBadCode) {
+ url += `?_allow_badcode=true`;
+ }
+ const response = this.httpRequest(url, parameter, method, paramInBody, paramType).pipe(
+ tap((res) => {
+ if (res.success) {
+ this.msgSrv.success(`创建下载任务成功,请前往下载任务列表下载您的文件!`);
+ window.open('#/download');
+ }
+ return res;
+ }),
+ );
+ return async ? response.toPromise() : response;
+ }
+
+ /**
+ * 导出文件
+ * @param body Http body参数
+ */
+ exportFile(body: any = {}, url: string = this.$api_export): void {
+ this.fileUtil.download(url, body, {}, 'POST');
+ }
+
+ /**
+ * 异步导出文件:
+ * 采用HttpClient POST方式调用
+ * 仅支持POST方法,传参仅支持JSON对象(不推荐)
+ * @deprecated 不建议使用,请使用exportStart方法代替
+ */
+ asyncExport(params: any, url: string = this.$api_export): Promise {
+ return this.http
+ .post(url, params)
+ .pipe(
+ map((m: any) => {
+ if (m.success) {
+ this.msgSrv.success('创建导出文件任务成功,请前往下载管理中下载您的文件!');
+ window.open('#/download');
+ return m.data;
+ } else {
+ this.msgSrv.warning(m.msg);
+ return false;
+ }
+ }),
+ )
+ .toPromise();
+ }
+
+ /**
+ * 直接下载文件
+ */
+ openDownload(url: string, body: any = {}): void {
+ if (url.startsWith('/')) {
+ url = url.substr(1);
+ }
+ let newUrl = `${environment.api}/${url}`;
+ if (body && JSON.stringify(body) !== '{}') {
+ newUrl = newUrl + '?';
+ for (const key in body) {
+ if (Object.prototype.hasOwnProperty.call(body, key)) {
+ newUrl = newUrl + key + '=' + body[key] + '&';
+ }
+ }
+ }
+
+ if (newUrl.endsWith('&')) {
+ newUrl = newUrl.substr(0, newUrl.length - 1);
+ }
+
+ window.open(newUrl);
+ }
+
+ /**
+ * 下载文件
+ * @param url 请求路径
+ * @param body Http body参数
+ * @param params Http params参数
+ */
+ downloadFile(url: string, body: any = {}, params: any = {}, method: 'POST' | 'GET' = 'POST'): void {
+ this.fileUtil.download(url, body, params, method);
+ }
+
+ /**
+ * 下载模版
+ * @param body Http body参数
+ * @param params Http params参数
+ */
+ downloadTpl(body: any = {}, params: any = {}): void {
+ this.fileUtil.download(this.$api_import_download_tpl, body, params);
+ }
+
+ /**
+ * 处理上传状态
+ */
+ handleUpload({ file, fileList }: NzUploadChangeParam): void {
+ const status = file.status;
+ if (status !== 'uploading') {
+ // console.log(file, fileList);
+ }
+ if (status === 'done') {
+ this.msgSrv.success(`${file.name} 上传成功.`);
+ } else if (status === 'error') {
+ this.msgSrv.error(`${file.name} 上传失败.`);
+ }
+ }
+
+ /**
+ * 获取字典
+ */
+ getDict(key: string): Observable {
+ return this.http.post(this.$api_get_dict, { dict: key }).pipe(
+ map((res) => {
+ if (res.success === true) {
+ return res.data.map((r: any) => {
+ return {
+ label: r.itemValue,
+ value: r.itemKey,
+ };
+ });
+ } else {
+ this.msgSrv.warning(`获取取字典【${key}】时发生错误:${res.msg || '未知错误!'}`);
+ return [];
+ }
+ }),
+ );
+ }
+
+ /**
+ * 编码自定义头
+ * @param url 需要请求的URL
+ * @param customHeader 自定义头集合
+ * @returns 编码后的URL
+ */
+ encodeUrlHeader(url: string, customHeader: { key: string; value: string }[]): string {
+ if (customHeader && customHeader.length > 0) {
+ let newUrl = '';
+ if (url.includes('?')) {
+ newUrl = url + '&_custom_header=' + encodeURI(JSON.stringify(customHeader));
+ } else {
+ newUrl = url + '?_custom_header=' + encodeURI(JSON.stringify(customHeader));
+ }
+ return newUrl;
+ }
+
+ return url;
+ }
+
+ /**
+ * 获取URL指定参数的值
+ */
+ private getParams(paramName: string, url: string): string {
+ const paramsIndex = url.indexOf('?');
+ if (paramsIndex > -1) {
+ const paramsStr = url.substr(paramsIndex + 1);
+ const params = paramsStr.split('&');
+ const keyMap = params.find((e) => e.includes(paramName));
+ const value = keyMap ? keyMap.split('=')[1] : '';
+ return value;
+ }
+ return '';
+ }
+}
diff --git a/src/app/shared/services/core/cache.service.ts b/src/app/shared/services/core/cache.service.ts
new file mode 100644
index 00000000..996eed97
--- /dev/null
+++ b/src/app/shared/services/core/cache.service.ts
@@ -0,0 +1,130 @@
+/* eslint-disable no-underscore-dangle */
+/*
+ * @Author: Maple
+ * @Date: 2021-03-22 09:35:02
+ * @LastEditors: Do not edit
+ * @LastEditTime: 2021-06-18 00:34:01
+ * @Description: 全局缓存服务
+ */
+import { Injectable } from '@angular/core';
+import { cacheConf } from '@conf/cache.conf';
+import { CacheService } from '@delon/cache';
+import { BehaviorSubject } from 'rxjs';
+import { distinctUntilChanged } from 'rxjs/operators';
+import { ICacheObj } from '../../interfaces/core/i-cache-obj';
+import { EADateUtil } from '../../utils';
+import { EAEncryptUtil } from '../../utils/encrypt.util';
+
+@Injectable({
+ providedIn: 'root',
+})
+export class EACacheService {
+ // 监听最后操作时间值变化
+ private listen$ = new BehaviorSubject(0);
+ private listen = this.listen$.asObservable();
+ constructor(private service: CacheService) {
+ this.listen.pipe(distinctUntilChanged()).subscribe((res) => {
+ this.set(cacheConf.last_operation_time, res);
+ });
+ }
+
+ /**
+ * @description 设置缓存
+ * @param key 缓存键值
+ * @param data 缓存数据
+ * @param vld 有效时间
+ * @param encrypt 是否加密
+ */
+ set(key: string, data: any, vld: number = 0, encrypt: boolean = false) {
+ // 去除缓存数据两侧空格
+ if (typeof data === 'string') {
+ data = data.trim();
+ }
+ const cahceObj: ICacheObj = {
+ pd: new Date().getTime(),
+ data,
+ vld,
+ encrypt,
+ };
+ if (encrypt) {
+ // 加密
+ cahceObj.data = EAEncryptUtil.encryptByEnAES(JSON.stringify(data));
+ }
+ this.service.set(key, cahceObj);
+ // 更新系统最后操作时间
+ this.refleshLastOperationTime();
+ }
+
+ /**
+ * @description 获取缓存
+ * @param key 缓存键名
+ */
+ get(key: string) {
+ // 获取缓存对象
+ const cacheObj = this.service.getNone(key);
+ // 判断是否存在
+ if (!cacheObj) {
+ // 更新系统最后操作时间
+ this.refleshLastOperationTime();
+ return null;
+ }
+ // 判断有效期
+ if (cacheObj.vld > 0) {
+ // 获取系统最后操作时间
+ const last_operation_time: number = this.getLastOperationTime();
+ const start = cacheObj.pd > last_operation_time ? cacheObj.pd : last_operation_time;
+ const vld: Date = EADateUtil.timestampToDate(start + cacheObj.vld);
+ const expired = EADateUtil.dateDiff(vld, new Date()) <= 0;
+ if (expired) {
+ // 已过期,清除缓存
+ this.remove(key);
+ // 更新系统最后操作时间
+ this.refleshLastOperationTime();
+ return null;
+ }
+ }
+
+ // 判断是否加密
+ if (cacheObj.encrypt) {
+ const encryptJson = EAEncryptUtil.deencryptByDeAES(cacheObj.data);
+ // 更新系统最后操作时间
+ this.refleshLastOperationTime();
+ return JSON.parse(encryptJson);
+ }
+
+ // 更新系统最后操作时间
+ this.refleshLastOperationTime();
+ return cacheObj.data;
+ }
+
+ /**
+ * @description 移除缓存
+ * @param key 缓存键名
+ */
+ remove(key: string) {
+ this.service.remove(key);
+ }
+
+ /**
+ * @description 清除所有缓存
+ */
+ clear(): void {
+ this.service.clear();
+ }
+
+ /**
+ * 刷新系统最后操作时间
+ */
+ refleshLastOperationTime() {
+ this.listen$.next(new Date().getTime());
+ }
+
+ /**
+ * 获取系统最后操作时间
+ */
+ private getLastOperationTime(): number {
+ // 获取缓存对象
+ const cacheObj: ICacheObj = this.service.getNone(cacheConf.last_operation_time);
+ return cacheObj?.data || 0;
+ }
+}
diff --git a/src/app/shared/services/core/event.service.ts b/src/app/shared/services/core/event.service.ts
new file mode 100644
index 00000000..a05a5b7e
--- /dev/null
+++ b/src/app/shared/services/core/event.service.ts
@@ -0,0 +1,19 @@
+/*
+ * @Author: Maple
+ * @Date: 2021-03-22 09:35:02
+ * @LastEditors: Do not edit
+ * @LastEditTime: 2021-06-11 17:00:07
+ * @Description: 全局事件监听服务
+ */
+import { Injectable } from '@angular/core';
+import * as EventEmitter from 'eventemitter3';
+
+@Injectable({
+ providedIn: 'root',
+})
+export class EAEventService {
+ event: EventEmitter;
+ constructor() {
+ this.event = new EventEmitter();
+ }
+}
diff --git a/src/app/shared/services/core/validate.service.ts b/src/app/shared/services/core/validate.service.ts
new file mode 100644
index 00000000..0fb8b886
--- /dev/null
+++ b/src/app/shared/services/core/validate.service.ts
@@ -0,0 +1,104 @@
+/*
+ * @Author: Maple
+ * @Date: 2021-03-22 11:42:26
+ * @LastEditors: Do not edit
+ * @LastEditTime: 2021-03-29 14:47:54
+ * @Description: 全局验证服务
+ */
+import { Injectable, Injector } from '@angular/core';
+import { BaseService } from '../core/base.service';
+
+@Injectable({
+ providedIn: 'root',
+})
+export class EAValidateService extends BaseService {
+ constructor(public injector: Injector) {
+ super(injector);
+ }
+
+ /**
+ * 通过正则表达式验证字符串
+ * @param value 待验证的字符串
+ * @param partern 正则表达式
+ * @returns 验证结果
+ */
+ validate(value: string, partern: RegExp): boolean {
+ const reg = new RegExp(partern);
+ return reg.test(value);
+ }
+
+ /**
+ * 验证手机号码
+ * @param value 待验证的值
+ * @returns 验证结果
+ */
+ validateChineseCharacters(value: string, star: number): boolean {
+ const express = /^[\u4e00-\u9fa5]{2, 4}$/;
+ return this.validate(value, express);
+ }
+
+ /**
+ * 验证手机号码
+ * @param value 待验证的值
+ * @returns 验证结果
+ */
+ validateMobile(value: string): boolean {
+ const express = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/;
+ return this.validate(value, express);
+ }
+
+ /**
+ * 验证固定电话
+ * @param value 待验证的值
+ * @returns 验证结果
+ */
+ validateTel(value: string): boolean {
+ const express = /^(0\d{2,3})-?(\d{7,8})$/;
+ return this.validate(value, express);
+ }
+
+ /**
+ * 验证身份证号码
+ * @param value 待验证的值
+ * @param mode 匹配模式:indistinct - 模糊匹配 | accurate - 精准匹配(默认值:indistinct)
+ * @param length 号码长度 (默认值:18)
+ * @returns 验证结果
+ */
+ validateIDCard(value: string, mode: 'indistinct' | 'accurate' = 'indistinct', length: 15 | 18 = 18): boolean {
+ // 模糊校验
+ let express = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
+ // 精准校验18位身份证号码
+ const express1 = /^[1-9]\d{5}(19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
+ // 精准校验15位身份证号码
+ const express2 = /^[1-9]\d{5}\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{2}[0-9Xx]$/;
+
+ if (mode === 'accurate') {
+ if (length === 18) {
+ express = express1;
+ } else if (length === 15) {
+ express = express2;
+ }
+ }
+ return this.validate(value, express);
+ }
+
+ /**
+ * 验证邮政编码
+ * @param value 待验证的值
+ * @returns 验证结果
+ */
+ validatePostalCode(value: string): boolean {
+ const express = /^[1-9]\d{5}$/;
+ return this.validate(value, express);
+ }
+
+ /**
+ * 验证邮箱地址
+ * @param value 待验证的值
+ * @returns 验证结果
+ */
+ validateEmail(value: string): boolean {
+ const express = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
+ return this.validate(value, express);
+ }
+}
diff --git a/src/app/shared/services/index.ts b/src/app/shared/services/index.ts
new file mode 100644
index 00000000..efce4581
--- /dev/null
+++ b/src/app/shared/services/index.ts
@@ -0,0 +1,12 @@
+// Core
+export * from './core/base.service';
+export * from './core/cache.service';
+export * from './core/validate.service';
+
+// Bussiness
+export * from './business/account.service';
+export * from './business/authorization.service';
+export * from './business/enterprise.service';
+export * from './business/captcha.service';
+export * from './business/user.service';
+export * from './business/sl-platform.service';
diff --git a/src/app/shared/shared-delon.module.ts b/src/app/shared/shared-delon.module.ts
new file mode 100644
index 00000000..6b3c0e99
--- /dev/null
+++ b/src/app/shared/shared-delon.module.ts
@@ -0,0 +1,6 @@
+import { PageHeaderModule } from '@delon/abc/page-header';
+import { SEModule } from '@delon/abc/se';
+import { STModule } from '@delon/abc/st';
+import { SVModule } from '@delon/abc/sv';
+
+export const SHARED_DELON_MODULES = [PageHeaderModule, STModule, SVModule, SEModule];
diff --git a/src/app/shared/shared-zorro.module.ts b/src/app/shared/shared-zorro.module.ts
new file mode 100644
index 00000000..a3bc7c29
--- /dev/null
+++ b/src/app/shared/shared-zorro.module.ts
@@ -0,0 +1,27 @@
+import { NzAlertModule } from 'ng-zorro-antd/alert';
+import { NzBadgeModule } from 'ng-zorro-antd/badge';
+import { NzButtonModule } from 'ng-zorro-antd/button';
+import { NzCardModule } from 'ng-zorro-antd/card';
+import { NzDatePickerModule } from 'ng-zorro-antd/date-picker';
+import { NzDropDownModule } from 'ng-zorro-antd/dropdown';
+import { NzFormModule } from 'ng-zorro-antd/form';
+import { NzGridModule } from 'ng-zorro-antd/grid';
+import { NzIconModule } from 'ng-zorro-antd/icon';
+import { NzInputModule } from 'ng-zorro-antd/input';
+import { NzSelectModule } from 'ng-zorro-antd/select';
+import { NzTableModule } from 'ng-zorro-antd/table';
+
+export const SHARED_ZORRO_MODULES = [
+ NzButtonModule,
+ NzGridModule,
+ NzTableModule,
+ NzFormModule,
+ NzInputModule,
+ NzBadgeModule,
+ NzAlertModule,
+ NzDropDownModule,
+ NzSelectModule,
+ NzDatePickerModule,
+ NzCardModule,
+ NzIconModule
+];
diff --git a/src/app/shared/shared.module.ts b/src/app/shared/shared.module.ts
new file mode 100644
index 00000000..413d5ad0
--- /dev/null
+++ b/src/app/shared/shared.module.ts
@@ -0,0 +1,73 @@
+/* eslint-disable import/order */
+import { CommonModule } from '@angular/common';
+import { NgModule } from '@angular/core';
+import { FormsModule, ReactiveFormsModule } from '@angular/forms';
+import { RouterModule } from '@angular/router';
+import { DelonACLModule } from '@delon/acl';
+import { DelonFormModule } from '@delon/form';
+import { AlainThemeModule } from '@delon/theme';
+
+import { SHARED_DELON_MODULES } from './shared-delon.module';
+import { SHARED_ZORRO_MODULES } from './shared-zorro.module';
+
+// #region third libs
+import { DragDropModule } from '@angular/cdk/drag-drop';
+const THIRDMODULES = [DragDropModule];
+// #endregion
+
+// #region your componets & directives
+import { PRO_SHARED_MODULES } from '../layout/pro';
+import { AddressModule } from './components/address';
+import { DelayModule } from './components/delay';
+import { EditorModule } from './components/editor';
+import { FileManagerModule } from './components/file-manager';
+import { MasonryModule } from './components/masonry';
+import { MouseFocusModule } from './components/mouse-focus';
+import { ScrollbarModule } from './components/scrollbar';
+import { StatusLabelModule } from './components/status-label';
+
+const MODULES = [
+ AddressModule,
+ DelayModule,
+ EditorModule,
+ FileManagerModule,
+ MasonryModule,
+ MouseFocusModule,
+ ScrollbarModule,
+ StatusLabelModule,
+ ...PRO_SHARED_MODULES
+];
+// #endregion
+
+@NgModule({
+ imports: [
+ CommonModule,
+ FormsModule,
+ RouterModule,
+ ReactiveFormsModule,
+ AlainThemeModule.forChild(),
+ DelonACLModule,
+ DelonFormModule,
+ ...SHARED_DELON_MODULES,
+ ...SHARED_ZORRO_MODULES,
+ ...MODULES,
+ // third libs
+ ...THIRDMODULES
+ ],
+ exports: [
+ CommonModule,
+ FormsModule,
+ ReactiveFormsModule,
+ RouterModule,
+ AlainThemeModule,
+ DelonACLModule,
+ DelonFormModule,
+ // i18n
+ ...SHARED_DELON_MODULES,
+ ...SHARED_ZORRO_MODULES,
+ ...MODULES,
+ // third libs
+ ...THIRDMODULES
+ ]
+})
+export class SharedModule {}
diff --git a/src/app/shared/utils/date.util.ts b/src/app/shared/utils/date.util.ts
new file mode 100644
index 00000000..a8f3a989
--- /dev/null
+++ b/src/app/shared/utils/date.util.ts
@@ -0,0 +1,56 @@
+export class EADateUtil {
+ /**
+ * @description 时间戳转换日期
+ * @param timestamp 时间戳
+ * @returns 时间戳对应的日期
+ */
+ static timestampToDate(timestamp: number): Date {
+ let date;
+ // 时间戳为10位需*1000,时间戳为13位的话不需乘1000
+ if (timestamp.toString().length === 10) {
+ date = new Date(timestamp * 1000);
+ } else {
+ date = new Date(timestamp);
+ }
+
+ const Y = date.getFullYear();
+ const M = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1;
+ const D = date.getDate();
+ const h = date.getHours();
+ const m = date.getMinutes();
+ const s = date.getSeconds();
+
+ const dateStr = `${Y}-${M}-${D} ${h}:${m}:${s}`;
+ return new Date(dateStr);
+ }
+
+ /**
+ * @description 日期相加
+ * @param start 开始日期
+ * @param intervalMS 间隔秒数(毫秒)
+ * @returns 相加后的日期
+ */
+ static dateAdd(start: Date, intervalMS: number): Date {
+ return this.timestampToDate(start.getTime() + intervalMS);
+ }
+
+ /**
+ * @description 日期相减
+ * @param start 开始日期
+ * @param intervalMS 时间间隔(毫秒)
+ * @returns 相减后的日期
+ */
+ static dateMinus(start: Date, intervalMS: number): Date {
+ return this.timestampToDate(start.getTime() - intervalMS);
+ }
+
+ /**
+ * @description 计算两个日期的时间差
+ * @param start 开始日期
+ * @param end 结束日期
+ * @returns 两时间相差的毫秒数
+ */
+ static dateDiff(start: Date, end: Date): number {
+ return start.getTime() - end.getTime();
+ }
+}
diff --git a/src/app/shared/utils/file.util.ts b/src/app/shared/utils/file.util.ts
new file mode 100644
index 00000000..c9a64dcc
--- /dev/null
+++ b/src/app/shared/utils/file.util.ts
@@ -0,0 +1,76 @@
+import { Injectable } from '@angular/core';
+import { _HttpClient } from '@delon/theme';
+import * as FileSaver from 'file-saver';
+import { NzModalService } from 'ng-zorro-antd/modal';
+
+@Injectable({
+ providedIn: 'root',
+})
+export class EAFileUtil {
+ constructor(private modal: NzModalService, private http: _HttpClient) {}
+
+ /**
+ * 保存文件
+ * @param content 需要保存的内容
+ * @param filename 文件名
+ * @param confirm 显示确认框
+ */
+ save(content: any, filename: string, confirm: boolean = true): void {
+ const blob = new Blob([JSON.stringify(content)], { type: 'text/plain;charset=utf-8' });
+ if (confirm === true) {
+ this.modal.confirm({
+ nzTitle: '文件下载确认',
+ nzContent: `是否下载文件:${filename} ?`,
+ nzOnOk: () => {
+ FileSaver.saveAs(blob, filename);
+ },
+ });
+ } else {
+ FileSaver.saveAs(blob, filename);
+ }
+ }
+
+ /**
+ * @param url 接口地址
+ * @param body post请求参数
+ * @param params get请求参数
+ * @method 请求方法
+ */
+ download(url: string, body: any, params: any, method: 'POST' | 'GET' = 'POST'): void {
+ if (method === 'POST') {
+ this.http
+ .post(url, body, params, {
+ responseType: 'blob',
+ observe: 'response',
+ })
+ .subscribe((res) => {
+ this.saveBlob(res);
+ });
+ } else if (method === 'GET') {
+ this.http
+ .get(url, params, {
+ responseType: 'blob',
+ observe: 'response',
+ })
+ .subscribe((res) => {
+ this.saveBlob(res);
+ });
+ }
+ }
+
+ /**
+ * 创建blob对象,并利用浏览器打开url进行下载
+ * @param data 文件流数据
+ */
+ private saveBlob(res: any): void {
+ const disp = res.headers.get('Content-Disposition');
+ const blob = new Blob([res.body], { type: 'text/plain;charset=utf-8' });
+ const url = window.URL.createObjectURL(blob);
+ const a = document.createElement('a');
+ const fileName = disp.split(';')[1].split('=')[1];
+ a.href = url;
+ a.download = decodeURI(fileName);
+ a.click();
+ window.URL.revokeObjectURL(url);
+ }
+}
diff --git a/src/app/shared/utils/index.ts b/src/app/shared/utils/index.ts
new file mode 100644
index 00000000..d822fed6
--- /dev/null
+++ b/src/app/shared/utils/index.ts
@@ -0,0 +1,4 @@
+export * from './date.util';
+export * from './file.util';
+export * from './processSingleSort.func';
+export * from './yuan';
diff --git a/src/app/shared/utils/processSingleSort.func.ts b/src/app/shared/utils/processSingleSort.func.ts
new file mode 100644
index 00000000..41ec3c6a
--- /dev/null
+++ b/src/app/shared/utils/processSingleSort.func.ts
@@ -0,0 +1,38 @@
+/*
+ * @Author: Maple
+ * @Date: 2021-02-27 17:40:54
+ * @LastEditors: Do not edit
+ * @LastEditTime: 2021-03-23 20:58:18
+ * @Description: 处理ST表格的单列排序
+ */
+import { STRequestOptions } from '@delon/abc/st';
+
+/**
+ * 处理ST表格单条件排序
+ * @param reqOtions ST的Req
+ * @param sortField 排序字段,默认为:sortType
+ * @returns ST的Req
+ */
+export function processSingleSort(reqOtions: STRequestOptions, sortField: string = 'sort'): STRequestOptions {
+ if (!reqOtions.body) {
+ return reqOtions;
+ }
+ // 获取排序字段
+ const body: any = {};
+ for (const _key of Object.keys(reqOtions.body)) {
+ if (typeof reqOtions.body[_key] === 'string') {
+ const value: string = reqOtions.body[_key]?.trim();
+ if (value && (value === 'ascend' || value === 'descend')) {
+ body[sortField] = `${_key}.${value}`;
+ } else {
+ body[_key] = reqOtions.body[_key];
+ }
+ } else {
+ body[_key] = reqOtions.body[_key];
+ }
+ }
+ if (JSON.stringify(body) !== '{}') {
+ reqOtions.body = body;
+ }
+ return reqOtions;
+}
diff --git a/src/app/shared/utils/yuan.ts b/src/app/shared/utils/yuan.ts
new file mode 100644
index 00000000..23662d22
--- /dev/null
+++ b/src/app/shared/utils/yuan.ts
@@ -0,0 +1,11 @@
+/**
+ * 转化成RMB元字符串
+ *
+ * @param digits 当数字类型时,允许指定小数点后数字的个数,默认2位小数
+ */
+export function yuan(value: number | string, digits: number = 2): string {
+ if (typeof value === 'number') {
+ value = value.toFixed(digits);
+ }
+ return `¥ ${value}`;
+}
diff --git a/src/app/shared/widget/address/address.widget.ts b/src/app/shared/widget/address/address.widget.ts
new file mode 100644
index 00000000..a6af22db
--- /dev/null
+++ b/src/app/shared/widget/address/address.widget.ts
@@ -0,0 +1,20 @@
+import { Component } from '@angular/core';
+import { ControlWidget } from '@delon/form';
+
+@Component({
+ selector: 'sf-address',
+ template: `
+
+
+
+ `,
+ preserveWhitespaces: false,
+})
+// tslint:disable-next-line: component-class-suffix
+export class AddressWidget extends ControlWidget {
+ static readonly KEY = 'address';
+
+ _change(value: string): void {
+ this.setValue(value);
+ }
+}
diff --git a/src/app/shared/widget/editor/editor.widget.ts b/src/app/shared/widget/editor/editor.widget.ts
new file mode 100644
index 00000000..2a5d9f69
--- /dev/null
+++ b/src/app/shared/widget/editor/editor.widget.ts
@@ -0,0 +1,23 @@
+import { Component } from '@angular/core';
+import { ControlWidget } from '@delon/form';
+
+@Component({
+ selector: 'sf-editor',
+ template: `
+
+
+
+ `,
+ preserveWhitespaces: false,
+})
+// tslint:disable-next-line: component-class-suffix
+export class EditorWidget extends ControlWidget {
+ static readonly KEY = 'editor';
+
+ _change(value: string): void {
+ this.setValue(value);
+ if (this.ui.contentChanged) {
+ this.ui.contentChanged(value);
+ }
+ }
+}
diff --git a/src/app/shared/widget/from-to-search/from-to-search.widget.html b/src/app/shared/widget/from-to-search/from-to-search.widget.html
new file mode 100644
index 00000000..09bb8e2a
--- /dev/null
+++ b/src/app/shared/widget/from-to-search/from-to-search.widget.html
@@ -0,0 +1,21 @@
+
+
+
+
+ -
+
+
+
+
diff --git a/src/app/shared/widget/from-to-search/from-to-search.widget.spec.ts b/src/app/shared/widget/from-to-search/from-to-search.widget.spec.ts
new file mode 100644
index 00000000..b6c2ac84
--- /dev/null
+++ b/src/app/shared/widget/from-to-search/from-to-search.widget.spec.ts
@@ -0,0 +1,24 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { SLFromToSearchWidget } from './from-to-search.widget';
+
+describe('SLFromToSearchWidget', () => {
+ let component: SLFromToSearchWidget;
+ let fixture: ComponentFixture;
+
+ beforeEach(async () => {
+ await TestBed.configureTestingModule({
+ declarations: [SLFromToSearchWidget],
+ }).compileComponents();
+ });
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(SLFromToSearchWidget);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/src/app/shared/widget/from-to-search/from-to-search.widget.ts b/src/app/shared/widget/from-to-search/from-to-search.widget.ts
new file mode 100644
index 00000000..22e7ab25
--- /dev/null
+++ b/src/app/shared/widget/from-to-search/from-to-search.widget.ts
@@ -0,0 +1,104 @@
+/*
+ * @Descripttion: Do not edit
+ * @version: 1.0
+ * @Author: Eclipse
+ * @Date: 2021-05-08 15:57:42
+ * @LastEditors: Eclipse
+ * @LastEditTime: 2021-05-08 16:05:26
+ */
+import { ChangeDetectorRef, Component, Injector, OnInit } from '@angular/core';
+import { ControlWidget, SFComponent, SFItemComponent } from '@delon/form';
+import { format, getISOWeek } from 'date-fns';
+
+@Component({
+ selector: 'sl-from-to-search',
+ templateUrl: './from-to-search.widget.html',
+ preserveWhitespaces: false,
+})
+export class SLFromToSearchWidget extends ControlWidget implements OnInit {
+ static readonly KEY = 'sl-from-to-search';
+ /**
+ * 组件类型
+ */
+ type: 'date' | 'number' = 'date';
+ /**
+ * 控件模式
+ */
+ mode: 'date' | 'week' | 'month' | 'year' = 'date';
+ /**
+ * 组件返回值
+ */
+ data: { start: any; end: any } | null = null;
+ /**
+ * 组件日期显示格式
+ */
+ displayFormat = 'yyyy-MM-dd';
+ /**
+ * 组件日期格式
+ */
+ format = 'yyyy-MM-dd';
+ /**
+ * 最小值
+ */
+ min: any;
+ /**
+ * 最大值
+ */
+ max: any;
+ /**
+ * 日期区间
+ */
+ date: Array = [];
+ /**
+ * 开始日期
+ */
+ startDate: any;
+ /**
+ * 结束日期
+ */
+ endDate: any;
+
+ constructor(cd: ChangeDetectorRef, injector: Injector, sfItemComp?: SFItemComponent, sfComp?: SFComponent) {
+ super(cd, injector, sfItemComp, sfComp);
+ }
+
+ ngOnInit(): void {
+ this.type = this.ui?.type || 'date';
+ this.mode = this.ui?.mode || 'date';
+ this.displayFormat = this.ui?.displayFormat;
+ this.format = this.ui?.format || 'yyyy-MM-dd';
+ }
+ onChange(result: any): void {
+ if (this.startDate && this.endDate) {
+ const date1 = new Date(this.startDate);
+ const date2 = new Date(this.endDate);
+ if (date1.getTime() > date2.getTime()) {
+ const date3 = this.endDate;
+ this.endDate = this.startDate;
+ this.startDate = date3;
+ }
+ }
+ if (this.startDate) {
+ this.date[0] = format(this.startDate, this.format);
+ } else {
+ this.date[0] = '';
+ }
+ if (this.endDate) {
+ this.date[1] = format(this.endDate, this.format);
+ } else {
+ this.date[1] = '';
+ }
+
+ if (this.type === 'date') {
+ this.setValue(this.date);
+ } else if (this.type === 'number') {
+ } else {
+ this.setValue(null);
+ }
+ }
+
+ reset(value: string) {
+ this.startDate = null;
+ this.endDate = null;
+ }
+}
diff --git a/src/app/shared/widget/from-to/from-to.widget.html b/src/app/shared/widget/from-to/from-to.widget.html
new file mode 100644
index 00000000..8b2523a9
--- /dev/null
+++ b/src/app/shared/widget/from-to/from-to.widget.html
@@ -0,0 +1,11 @@
+
+
+
+
+
diff --git a/src/app/shared/widget/from-to/from-to.widget.less b/src/app/shared/widget/from-to/from-to.widget.less
new file mode 100644
index 00000000..e69de29b
diff --git a/src/app/shared/widget/from-to/from-to.widget.spec.ts b/src/app/shared/widget/from-to/from-to.widget.spec.ts
new file mode 100644
index 00000000..2030cecf
--- /dev/null
+++ b/src/app/shared/widget/from-to/from-to.widget.spec.ts
@@ -0,0 +1,24 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { EAFromToWidget } from './from-to.widget';
+
+describe('EAFromToWidget', () => {
+ let component: EAFromToWidget;
+ let fixture: ComponentFixture;
+
+ beforeEach(async () => {
+ await TestBed.configureTestingModule({
+ declarations: [EAFromToWidget],
+ }).compileComponents();
+ });
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(EAFromToWidget);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/src/app/shared/widget/from-to/from-to.widget.ts b/src/app/shared/widget/from-to/from-to.widget.ts
new file mode 100644
index 00000000..e388f426
--- /dev/null
+++ b/src/app/shared/widget/from-to/from-to.widget.ts
@@ -0,0 +1,85 @@
+import { ChangeDetectorRef, Component, Injector, OnInit } from '@angular/core';
+import { ControlWidget, SFComponent, SFItemComponent } from '@delon/form';
+import { format, getISOWeek } from 'date-fns';
+
+@Component({
+ selector: 'sl-from-to',
+ templateUrl: './from-to.widget.html',
+ styleUrls: ['./from-to.widget.less'],
+ preserveWhitespaces: false,
+})
+export class EAFromToWidget extends ControlWidget implements OnInit {
+ static readonly KEY = 'sl-from-to';
+ /**
+ * 组件类型
+ */
+ type: 'date' | 'number' = 'date';
+ /**
+ * 控件模式
+ */
+ mode: 'date' | 'week' | 'month' | 'year' = 'date';
+ /**
+ * 组件返回值
+ */
+ data: { start: any; end: any } | null = null;
+ /**
+ * 组件日期显示格式
+ */
+ displayFormat = 'yyyy-MM-dd';
+ /**
+ * 组件日期格式
+ */
+ format = 'yyyy-MM-dd';
+ /**
+ * 最小值
+ */
+ min: any;
+ /**
+ * 最大值
+ */
+ max: any;
+ /**
+ * 日期区间
+ */
+ date: any;
+
+ constructor(cd: ChangeDetectorRef, injector: Injector, sfItemComp?: SFItemComponent, sfComp?: SFComponent) {
+ super(cd, injector, sfItemComp, sfComp);
+ }
+
+ ngOnInit(): void {
+ this.data = this.formProperty?.formData as { start: any; end: any };
+ this.date = this.initData(this.data);
+ this.type = this.ui?.type || 'date';
+ this.mode = this.ui?.mode || 'date';
+ this.displayFormat = this.ui?.displayFormat;
+ this.format = this.ui?.format || 'yyyy-MM-dd';
+ }
+
+ initData(data: { start: any; end: any }): Date[] | null {
+ return data ? [new Date(this.data?.start), new Date(this.data?.end)] : null;
+ }
+
+ onChange(result: Array): void {
+ console.log('onChange: ', result);
+
+ if (this.type === 'date') {
+ if (JSON.stringify(result) !== '[]') {
+ this.setValue({ start: format(result[0], this.format), end: format(result[1], this.format) });
+ } else {
+ this.setValue(null);
+ }
+ } else if (this.type === 'number') {
+ } else {
+ this.setValue(null);
+ }
+ }
+
+ getWeek(result: Date[]): void {
+ console.log('week: ', result.map(getISOWeek));
+ }
+
+ _change(value: string): void {
+ this.setValue(value);
+ }
+}
diff --git a/src/app/shared/widget/img/img.widget.ts b/src/app/shared/widget/img/img.widget.ts
new file mode 100644
index 00000000..c5f9359c
--- /dev/null
+++ b/src/app/shared/widget/img/img.widget.ts
@@ -0,0 +1,63 @@
+import { Component } from '@angular/core';
+import { ControlWidget } from '@delon/form';
+
+@Component({
+ selector: 'sf-img',
+ template: `
+
+
+
0">
+
+
+
+
+
+
+ `,
+ preserveWhitespaces: false,
+})
+// tslint:disable-next-line: component-class-suffix
+export class ImgWidget extends ControlWidget {
+ static readonly KEY = 'img';
+ result: any[] = [];
+
+ private notify(value: any): void {
+ const { selected } = this.ui;
+ this.setValue(value);
+ if (selected) {
+ selected(value);
+ }
+ }
+
+ reset(value: any): void {
+ if (!value) {
+ return;
+ }
+
+ let res = Array.isArray(value) ? value : [value];
+ if (res.length > 0 && typeof res[0] === 'string') {
+ res = res.map((mp) => mp);
+ }
+ this.result = res;
+ }
+
+ _change(list: any): void {
+ const { multiple, field } = this.ui;
+ if (!Array.isArray(list)) {
+ list = [list];
+ }
+ this.result = list;
+ // get fields
+ list = (list as any[]).map((item) => (field ? item[field] : item)).filter((item) => !!item);
+ const value = list.length > 0 ? (multiple === true ? list : list[0]) : null;
+
+ this.notify(value);
+ }
+
+ _clean(): void {
+ this.result.length = 0;
+ this.notify(null);
+ }
+}
diff --git a/src/app/shared/widget/noun/noun.widget.ts b/src/app/shared/widget/noun/noun.widget.ts
new file mode 100644
index 00000000..45deec7f
--- /dev/null
+++ b/src/app/shared/widget/noun/noun.widget.ts
@@ -0,0 +1,77 @@
+import { Component } from '@angular/core';
+import { ControlWidget } from '@delon/form';
+
+@Component({
+ selector: 'sl-noun',
+ template: `
+
+
+
+
+
+
+
+ `,
+ preserveWhitespaces: false,
+ styles: [
+ `
+ .number-input {
+ width: calc(50% - 15px);
+ }
+ `,
+ ],
+})
+
+// tslint:disable-next-line: component-class-suffix
+export class NounWidget extends ControlWidget {
+ static readonly KEY = 'noun';
+ min!: number | null;
+ max!: number | null;
+ val: any[] = [];
+
+ _change(value: any, index: number) {
+ if (value.toString().trim() === '') {
+ value = null;
+ }
+ if (index === 0) {
+ this.min = value;
+ }
+ if (index === 1) {
+ this.max = value;
+ }
+
+ this.val[index] = value;
+ if (this.val.length === 2 && this.val[0] !== null && this.val[1] !== null) {
+ this.setValue(this.val);
+ } else {
+ this.setValue(null);
+ }
+ }
+
+ reset(value: string) {
+ this.min = null;
+ this.max = null;
+ }
+}
diff --git a/src/app/shared/widget/property-values/property-values.widget.ts b/src/app/shared/widget/property-values/property-values.widget.ts
new file mode 100644
index 00000000..9cd8c4c6
--- /dev/null
+++ b/src/app/shared/widget/property-values/property-values.widget.ts
@@ -0,0 +1,184 @@
+import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';
+import { Component } from '@angular/core';
+import { ControlWidget } from '@delon/form';
+export class PV {
+ _$id?: any;
+ id?: string;
+ propertyId?: string;
+ sortId?: number;
+ stateShow?: number;
+ storeId?: number;
+ value?: string;
+ status?: number;
+}
+@Component({
+ selector: 'sl-property-values',
+ styles: [
+ `
+ ::ng-deep .cdk-drag-preview {
+ display: table;
+ }
+
+ ::ng-deep .cdk-drag-placeholder {
+ opacity: 0;
+ }
+ `,
+ ],
+ template: `
+
+
+
+
+
+ | 排序 |
+ 属性值 |
+
+ 操作 |
+
+
+
+
+
+ | {{ data.sortId }} |
+ {{ data.value }} |
+
+
+ 编辑
+
+ 删除
+ |
+
+
+
+
+ |
+
+
+ |
+
+
+ 保存
+
+ 取消
+ |
+
+
+
+
+
+ `,
+ preserveWhitespaces: false,
+})
+
+// tslint:disable-next-line: component-class-suffix
+export class PropertyValuesWidget extends ControlWidget {
+ static readonly KEY = 'property-values';
+
+ i = 0;
+ editId: string | null = null;
+
+ editCache: { [key: string]: { edit: boolean; data: PV } } = {};
+ listOfData: PV[] = [];
+
+ startEdit(id: string): void {
+ this.editCache[id].edit = true;
+ console.log(this.editCache[id]);
+ // 开始编辑时禁止提交表单
+ this.setValue(null);
+ }
+
+ changeRadio(e: any, item: any) {
+ item.status = e;
+ console.log(e, item);
+ }
+
+ cancelEdit(id: string): void {
+ const index = this.listOfData.findIndex((item) => item._$id === id);
+ this.editCache[id] = {
+ data: { ...this.listOfData[index] },
+ edit: false,
+ };
+ this.setValue(this.listOfData);
+ }
+
+ saveEdit(id: string): void {
+ const index = this.listOfData.findIndex((item) => item._$id === id);
+ Object.assign(this.listOfData[index], this.editCache[id].data);
+ this.editCache[id].edit = false;
+ this.setValue(this.listOfData);
+ }
+
+ updateEditCache(): void {
+ this.listOfData.forEach((item) => {
+ this.editCache[item._$id] = {
+ edit: false,
+ data: { ...item },
+ };
+ });
+ }
+
+ addRow(): void {
+ this.i++;
+ this.listOfData = [
+ ...this.listOfData,
+ {
+ _$id: `${this.i}`,
+ stateShow: 1,
+ },
+ ];
+ this.updateEditCache();
+ this.setValue(this.listOfData);
+ }
+
+ deleteRow(id: string): void {
+ this.listOfData = this.listOfData.filter((d) => d._$id !== id);
+ this.setValue(this.listOfData);
+ }
+
+ _change(value: any, index: number) {}
+
+ reset(value: string) {}
+ afterViewInit() {
+ // 初始化数据
+ this.listOfData = [];
+ const formData: any = this.formProperty?.formData;
+ if (formData) {
+ const data = [...formData];
+ for (let i = 0; i < data.length; i++) {
+ this.i = i;
+ this.listOfData.push({
+ _$id: `${this.i}`,
+ ...data[i],
+ });
+ }
+ this.updateEditCache();
+ }
+ }
+
+ drop(event: CdkDragDrop): void {
+ moveItemInArray(this.listOfData, event.previousIndex, event.currentIndex);
+ }
+}
diff --git a/src/app/shared/widget/spec-values/spec-values.widget.ts b/src/app/shared/widget/spec-values/spec-values.widget.ts
new file mode 100644
index 00000000..a9fdffe8
--- /dev/null
+++ b/src/app/shared/widget/spec-values/spec-values.widget.ts
@@ -0,0 +1,176 @@
+import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';
+import { Component } from '@angular/core';
+import { ControlWidget } from '@delon/form';
+export class PV {
+ _$id?: any;
+ id?: string;
+ specId?: string;
+ sortId?: number;
+ stateShow?: number;
+ storeId?: number;
+ value?: string;
+}
+@Component({
+ selector: 'sl-spec-values',
+ styles: [
+ `
+ ::ng-deep .cdk-drag-preview {
+ display: table;
+ }
+
+ ::ng-deep .cdk-drag-placeholder {
+ opacity: 0;
+ }
+ `,
+ ],
+ template: `
+
+
+
+
+
+
+ | 排序 |
+ 规格值 |
+
+ 操作 |
+
+
+
+
+
+ | {{ data.sortId }} |
+ {{ data.value }} |
+
+
+ 编辑
+
+ 删除
+ |
+
+
+
+
+ |
+
+
+ |
+
+
+ 保存
+
+ 取消
+ |
+
+
+
+
+
+ `,
+ preserveWhitespaces: false,
+})
+
+// tslint:disable-next-line: component-class-suffix
+export class SpecValuesWidget extends ControlWidget {
+ static readonly KEY = 'spec-values';
+
+ i = 0;
+ editId: string | null = null;
+
+ editCache: { [key: string]: { edit: boolean; data: PV } } = {};
+ listOfData: PV[] = [];
+
+ startEdit(id: string): void {
+ this.editCache[id].edit = true;
+ // 开始编辑时禁止提交表单
+ this.setValue(null);
+ }
+
+ changeRadio(e: any, item: any) {
+ item.status = e;
+ console.log(e);
+ }
+
+ cancelEdit(id: string): void {
+ const index = this.listOfData.findIndex((item) => item._$id === id);
+ this.editCache[id] = {
+ data: { ...this.listOfData[index] },
+ edit: false,
+ };
+ this.setValue(this.listOfData);
+ }
+
+ saveEdit(id: string): void {
+ const index = this.listOfData.findIndex((item) => item._$id === id);
+ Object.assign(this.listOfData[index], this.editCache[id].data);
+ this.editCache[id].edit = false;
+ this.setValue(this.listOfData);
+ }
+
+ updateEditCache(): void {
+ this.listOfData.forEach((item) => {
+ this.editCache[item._$id] = {
+ edit: false,
+ data: { ...item },
+ };
+ });
+ }
+
+ addRow(): void {
+ this.i++;
+ this.listOfData = [
+ ...this.listOfData,
+ {
+ _$id: `${this.i}`,
+ stateShow: 1,
+ },
+ ];
+ this.updateEditCache();
+ this.setValue(this.listOfData);
+ }
+
+ deleteRow(id: string): void {
+ this.listOfData = this.listOfData.filter((d) => d._$id !== id);
+ this.setValue(this.listOfData);
+ }
+
+ _change(value: any, index: number) {}
+
+ reset(value: string) {}
+ afterViewInit() {
+ this.listOfData = [];
+ // 初始化数据
+ const formData: any = this.formProperty?.formData;
+ if (formData) {
+ const data = [...formData];
+ for (let i = 0; i < data.length; i++) {
+ this.i = i;
+ this.listOfData.push({
+ _$id: `${this.i}`,
+ ...data[i],
+ });
+ }
+ this.updateEditCache();
+ }
+ }
+
+ drop(event: CdkDragDrop): void {
+ moveItemInArray(this.listOfData, event.previousIndex, event.currentIndex);
+ }
+}
diff --git a/src/app/shared/widget/st-widget.module.ts b/src/app/shared/widget/st-widget.module.ts
new file mode 100644
index 00000000..827fd14f
--- /dev/null
+++ b/src/app/shared/widget/st-widget.module.ts
@@ -0,0 +1,72 @@
+import { CommonModule } from '@angular/common';
+import { NgModule } from '@angular/core';
+import { FormsModule } from '@angular/forms';
+import { STWidgetRegistry } from '@delon/abc/st';
+import { DelonFormModule } from '@delon/form';
+import { AddressModule, EditorModule, FileManagerModule } from '@shared';
+import { NzButtonModule } from 'ng-zorro-antd/button';
+import { NzDatePickerModule } from 'ng-zorro-antd/date-picker';
+import { NzDividerModule } from 'ng-zorro-antd/divider';
+import { NzInputModule } from 'ng-zorro-antd/input';
+import { NzInputNumberModule } from 'ng-zorro-antd/input-number';
+import { NzStepsModule } from 'ng-zorro-antd/steps';
+import { NgxTinymceModule } from 'ngx-tinymce';
+
+// import { STWidgetRegistry } from '@delon/abc/st';
+import { SharedModule } from '../shared.module';
+import { AddressWidget } from './address/address.widget';
+import { EditorWidget } from './editor/editor.widget';
+import { SLFromToSearchWidget } from './from-to-search/from-to-search.widget';
+import { EAFromToWidget } from './from-to/from-to.widget';
+import { ImgWidget } from './img/img.widget';
+import { NounWidget } from './noun/noun.widget';
+import { PropertyValuesWidget } from './property-values/property-values.widget';
+import { SpecValuesWidget } from './spec-values/spec-values.widget';
+import { TinymceWidget } from './tinymce/tinymce.widget';
+
+export const STWIDGET_COMPONENTS = [
+ EditorWidget,
+ ImgWidget,
+ AddressWidget,
+ TinymceWidget,
+ NounWidget,
+ EAFromToWidget,
+ SpecValuesWidget,
+ PropertyValuesWidget,
+ SLFromToSearchWidget
+];
+
+@NgModule({
+ declarations: STWIDGET_COMPONENTS,
+ imports: [
+ CommonModule,
+ FormsModule,
+ DelonFormModule.forRoot(),
+ AddressModule,
+ EditorModule,
+ FileManagerModule,
+ NzDividerModule,
+ NzStepsModule,
+ NzButtonModule,
+ NzInputModule,
+ NzDatePickerModule,
+ NzInputNumberModule,
+ NgxTinymceModule,
+ SharedModule
+ ],
+ exports: [...STWIDGET_COMPONENTS],
+ entryComponents: STWIDGET_COMPONENTS
+})
+export class STWidgetModule {
+ constructor(widgetRegistry: STWidgetRegistry) {
+ widgetRegistry.register(EditorWidget.KEY, EditorWidget);
+ widgetRegistry.register(ImgWidget.KEY, ImgWidget);
+ widgetRegistry.register(AddressWidget.KEY, AddressWidget);
+ widgetRegistry.register(TinymceWidget.KEY, TinymceWidget);
+ widgetRegistry.register(NounWidget.KEY, NounWidget);
+ widgetRegistry.register(EAFromToWidget.KEY, EAFromToWidget);
+ widgetRegistry.register(SpecValuesWidget.KEY, SpecValuesWidget);
+ widgetRegistry.register(PropertyValuesWidget.KEY, PropertyValuesWidget);
+ widgetRegistry.register(SLFromToSearchWidget.KEY, SLFromToSearchWidget);
+ }
+}
diff --git a/src/app/shared/widget/tinymce/tinymce.widget.ts b/src/app/shared/widget/tinymce/tinymce.widget.ts
new file mode 100644
index 00000000..958643a8
--- /dev/null
+++ b/src/app/shared/widget/tinymce/tinymce.widget.ts
@@ -0,0 +1,31 @@
+import { Component, OnInit } from '@angular/core';
+import { ControlWidget } from '@delon/form';
+
+@Component({
+ selector: 'sf-tinymce',
+ template: `
+
+
+
+ `,
+ preserveWhitespaces: false,
+})
+// tslint:disable-next-line: component-class-suffix
+export class TinymceWidget extends ControlWidget implements OnInit {
+ static readonly KEY = 'tinymce';
+
+ config: any = {};
+ loading = '';
+
+ ngOnInit(): void {
+ this.loading = this.ui.loading || '加载中……';
+ this.config = this.ui.config || {};
+ }
+
+ change(value: string): void {
+ if (this.ui.change) {
+ this.ui.change(value);
+ }
+ this.setValue(value);
+ }
+}
diff --git a/src/assets/.gitkeep b/src/assets/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/src/assets/color.less b/src/assets/color.less
new file mode 100644
index 00000000..98e048e4
--- /dev/null
+++ b/src/assets/color.less
@@ -0,0 +1,2195 @@
+html {-webkit-tap-highlight-color: rgba(0, 0, 0, 0);}
+body {color: rgba(0, 0, 0, 0.85);background-color: #fff;}
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {color: rgba(0, 0, 0, 0.85);}
+abbr[title],
+abbr[data-original-title] {border-bottom: 0;}
+a {color: #1890ff;background-color: transparent;}
+a:hover {color: #40a9ff;}
+a:active {color: #096dd9;}
+a[disabled] {color: rgba(0, 0, 0, 0.25);}
+img {border-style: none;}
+table {border-collapse: collapse;}
+caption {color: rgba(0, 0, 0, 0.45);}
+input,
+button,
+select,
+optgroup,
+textarea {color: inherit;}
+button::-moz-focus-inner,
+[type='button']::-moz-focus-inner,
+[type='reset']::-moz-focus-inner,
+[type='submit']::-moz-focus-inner {border-style: none;}
+fieldset {border: 0;}
+legend {color: inherit;}
+mark {background-color: #feffe6;}
+::selection {color: #fff;background: #1890ff;}
+.anticon {color: inherit;}
+html {--antd-wave-shadow-color: #1890ff;}
+[ant-click-animating-without-extra-node='true']::after, .ant-click-animating-node {border-radius: inherit;box-shadow: 0 0 0 0 #1890ff;box-shadow: 0 0 0 0 var(--antd-wave-shadow-color);}
+.cdk-visually-hidden {border: 0;}
+.cdk-overlay-backdrop {-webkit-tap-highlight-color: transparent;}
+.ant-alert {color: rgba(0, 0, 0, 0.85);border-radius: 2px;}
+.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-close-icon {background-color: transparent;border: none;}
+.ant-alert-close-icon .anticon-close {color: rgba(0, 0, 0, 0.45);}
+.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);}
+.ant-alert-close-text:hover {color: rgba(0, 0, 0, 0.75);}
+.ant-alert-with-description .ant-alert-message {color: rgba(0, 0, 0, 0.85);}
+.ant-alert-message {color: rgba(0, 0, 0, 0.85);}
+.ant-alert-banner {border: 0;border-radius: 0;}
+.ant-anchor {color: rgba(0, 0, 0, 0.85);}
+.ant-anchor-wrapper {background-color: transparent;}
+.ant-anchor-ink::before {background-color: #f0f0f0;}
+.ant-anchor-ink-ball {background-color: #fff;border: 2px solid #1890ff;border-radius: 8px;}
+.ant-anchor-link-title {color: rgba(0, 0, 0, 0.85);}
+.ant-anchor-link-active > .ant-anchor-link-title {color: #1890ff;}
+.ant-avatar {color: rgba(0, 0, 0, 0.85);color: #fff;background: #ccc;border-radius: 50%;}
+.ant-avatar-image {background: transparent;}
+.ant-avatar-lg {border-radius: 50%;}
+.ant-avatar-sm {border-radius: 50%;}
+.ant-avatar-square {border-radius: 2px;}
+.ant-avatar-group .ant-avatar {border: 1px solid #fff;}
+.ant-back-top {color: rgba(0, 0, 0, 0.85);}
+.ant-back-top-content {color: #fff;background-color: rgba(0, 0, 0, 0.45);border-radius: 20px;}
+.ant-back-top-content:hover {background-color: rgba(0, 0, 0, 0.85);}
+.ant-badge {color: rgba(0, 0, 0, 0.85);}
+.ant-badge-count {color: #fff;background: #ff4d4f;border-radius: 10px;box-shadow: 0 0 0 1px #fff;}
+.ant-badge-count a, .ant-badge-count a:hover {color: #fff;}
+.ant-badge-count-sm {border-radius: 7px;}
+.ant-badge-dot {background: #ff4d4f;border-radius: 100%;box-shadow: 0 0 0 1px #fff;}
+.ant-badge-status-dot {border-radius: 50%;}
+.ant-badge-status-success {background-color: #52c41a;}
+.ant-badge-status-processing {background-color: #1890ff;}
+.ant-badge-status-processing::after {border: 1px solid #1890ff;border-radius: 50%;}
+.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 {color: rgba(0, 0, 0, 0.85);}
+.ant-ribbon {color: rgba(0, 0, 0, 0.85);color: #fff;background-color: #1890ff;border-radius: 2px;}
+.ant-ribbon-text {color: #fff;}
+.ant-ribbon-corner {color: currentColor;border: 4px solid;}
+.ant-ribbon-corner::after {color: rgba(0, 0, 0, 0.25);border: inherit;}
+.ant-ribbon-color-pink {color: #eb2f96;background: #eb2f96;}
+.ant-ribbon-color-magenta {color: #eb2f96;background: #eb2f96;}
+.ant-ribbon-color-red {color: #f5222d;background: #f5222d;}
+.ant-ribbon-color-volcano {color: #fa541c;background: #fa541c;}
+.ant-ribbon-color-orange {color: #fa8c16;background: #fa8c16;}
+.ant-ribbon-color-yellow {color: #fadb14;background: #fadb14;}
+.ant-ribbon-color-gold {color: #faad14;background: #faad14;}
+.ant-ribbon-color-cyan {color: #13c2c2;background: #13c2c2;}
+.ant-ribbon-color-lime {color: #a0d911;background: #a0d911;}
+.ant-ribbon-color-green {color: #52c41a;background: #52c41a;}
+.ant-ribbon-color-blue {color: #1890ff;background: #1890ff;}
+.ant-ribbon-color-geekblue {color: #2f54eb;background: #2f54eb;}
+.ant-ribbon-color-purple {color: #722ed1;background: #722ed1;}
+.ant-ribbon.ant-ribbon-placement-end {border-bottom-right-radius: 0;}
+.ant-ribbon.ant-ribbon-placement-end .ant-ribbon-corner {border-color: currentColor transparent transparent currentColor;}
+.ant-ribbon.ant-ribbon-placement-start {border-bottom-left-radius: 0;}
+.ant-ribbon.ant-ribbon-placement-start .ant-ribbon-corner {border-color: currentColor currentColor transparent transparent;}
+.ant-ribbon-rtl.ant-ribbon-placement-end {border-bottom-right-radius: 2px;border-bottom-left-radius: 0;}
+.ant-ribbon-rtl.ant-ribbon-placement-end .ant-ribbon-corner {border-color: currentColor currentColor transparent transparent;}
+.ant-ribbon-rtl.ant-ribbon-placement-end .ant-ribbon-corner::after {border-color: currentColor currentColor transparent transparent;}
+.ant-ribbon-rtl.ant-ribbon-placement-start {border-bottom-right-radius: 0;border-bottom-left-radius: 2px;}
+.ant-ribbon-rtl.ant-ribbon-placement-start .ant-ribbon-corner {border-color: currentColor transparent transparent currentColor;}
+.ant-ribbon-rtl.ant-ribbon-placement-start .ant-ribbon-corner::after {border-color: currentColor transparent transparent currentColor;}
+.ant-breadcrumb {color: rgba(0, 0, 0, 0.85);color: rgba(0, 0, 0, 0.45);}
+.ant-breadcrumb a {color: rgba(0, 0, 0, 0.45);}
+.ant-breadcrumb a:hover {color: #40a9ff;}
+.ant-breadcrumb > span:last-child {color: rgba(0, 0, 0, 0.85);}
+.ant-breadcrumb > span:last-child a {color: rgba(0, 0, 0, 0.85);}
+.ant-breadcrumb-separator {color: rgba(0, 0, 0, 0.45);}
+.ant-breadcrumb > nz-breadcrumb-item:last-child {color: rgba(0, 0, 0, 0.85);}
+.ant-breadcrumb > nz-breadcrumb-item:last-child a {color: rgba(0, 0, 0, 0.85);}
+.ant-btn {background-image: none;border: 1px solid transparent;box-shadow: 0 2px 0 rgba(0, 0, 0, 0.015);border-radius: 2px;color: rgba(0, 0, 0, 0.85);background: #fff;border-color: #d9d9d9;}
+.ant-btn:not([disabled]):active {box-shadow: none;}
+.ant-btn-lg {border-radius: 2px;}
+.ant-btn-sm {border-radius: 2px;}
+.ant-btn > a:only-child {color: currentColor;}
+.ant-btn > a:only-child::after {background: transparent;}
+.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 {background: transparent;}
+.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 {background: transparent;}
+.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;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 {background: transparent;}
+.ant-btn:hover, .ant-btn:focus, .ant-btn:active {background: #fff;}
+.ant-btn-primary {color: #fff;background: #1890ff;border-color: #1890ff;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 {background: transparent;}
+.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 {background: transparent;}
+.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 {background: transparent;}
+.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;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 {background: transparent;}
+.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.85);background: transparent;border-color: #d9d9d9;}
+.ant-btn-ghost > a:only-child {color: currentColor;}
+.ant-btn-ghost > a:only-child::after {background: transparent;}
+.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 {background: transparent;}
+.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 {background: transparent;}
+.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;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 {background: transparent;}
+.ant-btn-dashed {color: rgba(0, 0, 0, 0.85);background: #fff;border-color: #d9d9d9;border-style: dashed;}
+.ant-btn-dashed > a:only-child {color: currentColor;}
+.ant-btn-dashed > a:only-child::after {background: transparent;}
+.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 {background: transparent;}
+.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 {background: transparent;}
+.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;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 {background: transparent;}
+.ant-btn-danger {color: #fff;background: #ff4d4f;border-color: #ff4d4f;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 {background: transparent;}
+.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 {background: transparent;}
+.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 {background: transparent;}
+.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;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 {background: transparent;}
+.ant-btn-link {color: #1890ff;background: transparent;border-color: transparent;box-shadow: none;}
+.ant-btn-link > a:only-child {color: currentColor;}
+.ant-btn-link > a:only-child::after {background: transparent;}
+.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 {background: transparent;}
+.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 {background: 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: #f5f5f5;border-color: #d9d9d9;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 {background: transparent;}
+.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;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 {background: transparent;}
+.ant-btn-text {color: rgba(0, 0, 0, 0.85);background: transparent;border-color: transparent;box-shadow: none;}
+.ant-btn-text > a:only-child {color: currentColor;}
+.ant-btn-text > a:only-child::after {background: transparent;}
+.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 {background: transparent;}
+.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 {background: 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: #f5f5f5;border-color: #d9d9d9;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 {background: transparent;}
+.ant-btn-text:hover, .ant-btn-text:focus {color: rgba(0, 0, 0, 0.85);background: rgba(0, 0, 0, 0.018);border-color: transparent;}
+.ant-btn-text:active {color: rgba(0, 0, 0, 0.85);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;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 {background: transparent;}
+.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 {background: transparent;}
+.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 {background: transparent;}
+.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 {background: transparent;}
+.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;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 {background: transparent;}
+.ant-btn-dangerous.ant-btn-primary {color: #fff;background: #ff4d4f;border-color: #ff4d4f;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 {background: transparent;}
+.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 {background: transparent;}
+.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 {background: transparent;}
+.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;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 {background: transparent;}
+.ant-btn-dangerous.ant-btn-link {color: #ff4d4f;background: transparent;border-color: transparent;box-shadow: none;}
+.ant-btn-dangerous.ant-btn-link > a:only-child {color: currentColor;}
+.ant-btn-dangerous.ant-btn-link > a:only-child::after {background: transparent;}
+.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 {background: transparent;}
+.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 {background: transparent;}
+.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;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 {background: transparent;}
+.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 {background: transparent;}
+.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 {background: transparent;}
+.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;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 {background: transparent;}
+.ant-btn-dangerous.ant-btn-text {color: #ff4d4f;background: transparent;border-color: transparent;box-shadow: none;}
+.ant-btn-dangerous.ant-btn-text > a:only-child {color: currentColor;}
+.ant-btn-dangerous.ant-btn-text > a:only-child::after {background: transparent;}
+.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 {background: transparent;}
+.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 {background: transparent;}
+.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;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 {background: transparent;}
+.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 {background: transparent;}
+.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 {background: transparent;}
+.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;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 {background: transparent;}
+.ant-btn-icon-only {border-radius: 2px;}
+.ant-btn-icon-only.ant-btn-lg {border-radius: 2px;}
+.ant-btn-icon-only.ant-btn-sm {border-radius: 2px;}
+.ant-btn-round {border-radius: 32px;}
+.ant-btn-round.ant-btn-lg {border-radius: 40px;}
+.ant-btn-round.ant-btn-sm {border-radius: 24px;}
+.ant-btn-circle {border-radius: 50%;}
+.ant-btn-circle.ant-btn-lg {border-radius: 50%;}
+.ant-btn-circle.ant-btn-sm {border-radius: 50%;}
+.ant-btn::before {background: #fff;border-radius: inherit;}
+.ant-btn-group-lg > .ant-btn, .ant-btn-group-lg > span > .ant-btn {border-radius: 0;}
+.ant-btn-group-sm > .ant-btn, .ant-btn-group-sm > span > .ant-btn {border-radius: 0;}
+.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: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: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 {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 {border-top-left-radius: 0;border-bottom-left-radius: 0;}
+.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-background-ghost {color: #fff;background: transparent !important;border-color: #fff;}
+.ant-btn-background-ghost.ant-btn-primary {color: #1890ff;background: transparent;border-color: #1890ff;}
+.ant-btn-background-ghost.ant-btn-primary > a:only-child {color: currentColor;}
+.ant-btn-background-ghost.ant-btn-primary > a:only-child::after {background: transparent;}
+.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 {background: transparent;}
+.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 {background: transparent;}
+.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;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 {background: transparent;}
+.ant-btn-background-ghost.ant-btn-danger {color: #ff4d4f;background: transparent;border-color: #ff4d4f;}
+.ant-btn-background-ghost.ant-btn-danger > a:only-child {color: currentColor;}
+.ant-btn-background-ghost.ant-btn-danger > a:only-child::after {background: transparent;}
+.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 {background: transparent;}
+.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 {background: transparent;}
+.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;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 {background: transparent;}
+.ant-btn-background-ghost.ant-btn-dangerous {color: #ff4d4f;background: transparent;border-color: #ff4d4f;}
+.ant-btn-background-ghost.ant-btn-dangerous > a:only-child {color: currentColor;}
+.ant-btn-background-ghost.ant-btn-dangerous > a:only-child::after {background: transparent;}
+.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 {background: transparent;}
+.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 {background: transparent;}
+.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;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 {background: transparent;}
+.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link {color: #ff4d4f;background: transparent;border-color: transparent;}
+.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 {background: transparent;}
+.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 {background: transparent;}
+.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 {background: transparent;}
+.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;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 {background: transparent;}
+.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-card {color: rgba(0, 0, 0, 0.85);background: #fff;border-radius: 2px;}
+.ant-card-hoverable:hover {border-color: transparent;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 {color: rgba(0, 0, 0, 0.85);background: transparent;border-bottom: 1px solid #f0f0f0;border-radius: 2px 2px 0 0;}
+.ant-card-head .ant-tabs {color: rgba(0, 0, 0, 0.85);}
+.ant-card-head .ant-tabs-bar {border-bottom: 1px solid #f0f0f0;}
+.ant-card-extra {color: rgba(0, 0, 0, 0.85);}
+.ant-card-grid {border: 0;border-radius: 0;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;}
+.ant-card-grid-hoverable:hover {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-cover img {border-radius: 2px 2px 0 0;}
+.ant-card-actions {background: #fff;border-top: 1px solid #f0f0f0;}
+.ant-card-actions > li {color: rgba(0, 0, 0, 0.45);}
+.ant-card-actions > li > span:hover {color: #1890ff;}
+.ant-card-actions > li > span a:not(.ant-btn), .ant-card-actions > li > span > .anticon {color: rgba(0, 0, 0, 0.45);}
+.ant-card-actions > li > span a:not(.ant-btn):hover, .ant-card-actions > li > span > .anticon:hover {color: #1890ff;}
+.ant-card-actions > li:not(:last-child) {border-right: 1px solid #f0f0f0;}
+.ant-card-rtl .ant-card-actions > li:not(:last-child) {border-right: none;border-left: 1px solid #f0f0f0;}
+.ant-card-type-inner .ant-card-head {background: #fafafa;}
+.ant-card-meta-title {color: rgba(0, 0, 0, 0.85);}
+.ant-card-meta-description {color: rgba(0, 0, 0, 0.45);}
+.ant-card-loading-block {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;}
+.ant-carousel {color: rgba(0, 0, 0, 0.85);}
+.ant-carousel .slick-slider {-webkit-tap-highlight-color: transparent;}
+.ant-carousel .slick-prev, .ant-carousel .slick-next {color: transparent;background: transparent;border: 0;}
+.ant-carousel .slick-prev:hover, .ant-carousel .slick-next:hover, .ant-carousel .slick-prev:focus, .ant-carousel .slick-next:focus {color: transparent;background: transparent;}
+.ant-carousel .slick-dots li button {color: transparent;background: #fff;border: 0;border-radius: 1px;}
+.ant-carousel .slick-dots li.slick-active button {background: #fff;}
+.ant-checkbox {color: rgba(0, 0, 0, 0.85);}
+.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 {border: 1px solid #1890ff;border-radius: 2px;}
+.ant-checkbox-inner {background-color: #fff;border: 1px solid #d9d9d9;border-radius: 2px;border-collapse: separate;}
+.ant-checkbox-inner::after {border: 2px solid #fff;border-top: 0;border-left: 0;}
+.ant-checkbox-checked .ant-checkbox-inner::after {border: 2px solid #fff;border-top: 0;border-left: 0;}
+.ant-checkbox-checked .ant-checkbox-inner {background-color: #1890ff;border-color: #1890ff;}
+.ant-checkbox-disabled.ant-checkbox-checked .ant-checkbox-inner::after {border-color: rgba(0, 0, 0, 0.25);}
+.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;}
+.ant-checkbox-disabled + span {color: rgba(0, 0, 0, 0.25);}
+.ant-checkbox-wrapper {color: rgba(0, 0, 0, 0.85);}
+.ant-checkbox-group {color: rgba(0, 0, 0, 0.85);}
+.ant-checkbox-indeterminate .ant-checkbox-inner {background-color: #fff;border-color: #d9d9d9;}
+.ant-checkbox-indeterminate .ant-checkbox-inner::after {background-color: #1890ff;border: 0;}
+.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-collapse {color: rgba(0, 0, 0, 0.85);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 {color: rgba(0, 0, 0, 0.85);}
+.ant-collapse-content {color: rgba(0, 0, 0, 0.85);background-color: #fff;border-top: 1px solid #d9d9d9;}
+.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-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 .ant-collapse-item-disabled > .ant-collapse-header, .ant-collapse .ant-collapse-item-disabled > .ant-collapse-header > .arrow {color: rgba(0, 0, 0, 0.25);}
+.ant-comment {background-color: inherit;}
+.ant-comment-avatar img {border-radius: 50%;}
+.ant-comment-content-author-name {color: rgba(0, 0, 0, 0.45);}
+.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;}
+.ant-comment-actions > li {color: rgba(0, 0, 0, 0.45);}
+.ant-comment-actions > li > span {color: rgba(0, 0, 0, 0.45);}
+.ant-comment-actions > li > span:hover {color: #595959;}
+.ant-picker {color: rgba(0, 0, 0, 0.85);background: #fff;border: 1px solid #d9d9d9;border-radius: 2px;}
+.ant-picker:hover, .ant-picker-focused {border-color: #40a9ff;border-right-width: 1px !important;}
+.ant-input-rtl .ant-picker:hover, .ant-input-rtl .ant-picker-focused {border-right-width: 0;border-left-width: 1px !important;}
+.ant-picker-focused {border-color: #40a9ff;border-right-width: 1px !important;box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);}
+.ant-input-rtl .ant-picker-focused {border-right-width: 0;border-left-width: 1px !important;}
+.ant-picker.ant-picker-disabled {background: #f5f5f5;border-color: #d9d9d9;}
+.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;box-shadow: none !important;}
+.ant-picker-input > input {color: rgba(0, 0, 0, 0.85);background-color: #fff;background-image: none;border: 1px solid #d9d9d9;border-radius: 2px;background: transparent;border: 0;}
+.ant-picker-input > input::placeholder {color: #bfbfbf;}
+.ant-picker-input > input::placeholder {color: #bfbfbf;}
+.ant-picker-input > input:hover {border-color: #40a9ff;border-right-width: 1px !important;}
+.ant-input-rtl .ant-picker-input > input:hover {border-right-width: 0;border-left-width: 1px !important;}
+.ant-picker-input > input:focus, .ant-picker-input > input-focused {border-color: #40a9ff;border-right-width: 1px !important;box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);}
+.ant-input-rtl .ant-picker-input > input:focus, .ant-input-rtl .ant-picker-input > input-focused {border-right-width: 0;border-left-width: 1px !important;}
+.ant-picker-input > input-disabled {background-color: #f5f5f5;color: rgba(0, 0, 0, 0.25);}
+.ant-picker-input > input-disabled:hover {border-color: #d9d9d9;border-right-width: 1px !important;}
+.ant-picker-input > input[disabled] {background-color: #f5f5f5;color: rgba(0, 0, 0, 0.25);}
+.ant-picker-input > input[disabled]:hover {border-color: #d9d9d9;border-right-width: 1px !important;}
+.ant-picker-input > input-borderless, .ant-picker-input > input-borderless:hover, .ant-picker-input > input-borderless:focus, .ant-picker-input > input-borderless-focused, .ant-picker-input > input-borderless-disabled, .ant-picker-input > input-borderless[disabled] {background-color: transparent;border: none;box-shadow: none;}
+.ant-picker-input > input:focus {box-shadow: none;}
+.ant-picker-input > input[disabled] {background: transparent;}
+.ant-picker-input-placeholder > input {color: #bfbfbf;}
+.ant-picker-suffix {color: rgba(0, 0, 0, 0.25);}
+.ant-picker-clear {color: rgba(0, 0, 0, 0.25);background: #fff;}
+.ant-picker-clear:hover {color: rgba(0, 0, 0, 0.45);}
+.ant-picker-separator {color: rgba(0, 0, 0, 0.25);}
+.ant-picker-focused .ant-picker-separator {color: rgba(0, 0, 0, 0.45);}
+.ant-picker-range .ant-picker-active-bar {background: #1890ff;}
+.ant-picker-dropdown {color: rgba(0, 0, 0, 0.85);}
+.ant-picker-ranges .ant-picker-preset > .ant-tag-blue {color: #1890ff;background: #e6f7ff;border-color: #91d5ff;}
+.ant-picker-range-arrow {box-shadow: 2px -2px 6px rgba(0, 0, 0, 0.06);}
+.ant-picker-range-arrow::after {border: 5px solid #f0f0f0;border-color: #fff #fff transparent transparent;}
+.ant-picker-panel-container {background: #fff;border-radius: 2px;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-picker-panel-container .ant-picker-panel {background: transparent;border-width: 0 0 1px 0;border-radius: 0;}
+.ant-picker-panel-container .ant-picker-panel-focused {border-color: #f0f0f0;}
+.ant-picker-panel {background: #fff;border: 1px solid #f0f0f0;border-radius: 2px;}
+.ant-picker-panel-focused {border-color: #1890ff;}
+.ant-picker-header {color: rgba(0, 0, 0, 0.85);border-bottom: 1px solid #f0f0f0;}
+.ant-picker-header button {color: rgba(0, 0, 0, 0.25);background: transparent;border: 0;}
+.ant-picker-header > button:hover {color: rgba(0, 0, 0, 0.85);}
+.ant-picker-header-view button {color: inherit;}
+.ant-picker-header-view button:hover {color: #1890ff;}
+.ant-picker-prev-icon::before, .ant-picker-next-icon::before, .ant-picker-super-prev-icon::before, .ant-picker-super-next-icon::before {border: 0 solid currentColor;border-width: 1.5px 0 0 1.5px;}
+.ant-picker-super-prev-icon::after, .ant-picker-super-next-icon::after {border: 0 solid currentColor;border-width: 1.5px 0 0 1.5px;}
+.ant-picker-content {border-collapse: collapse;}
+.ant-picker-content th {color: rgba(0, 0, 0, 0.85);}
+.ant-picker-cell {color: rgba(0, 0, 0, 0.25);}
+.ant-picker-cell-in-view {color: rgba(0, 0, 0, 0.85);}
+.ant-picker-cell .ant-picker-cell-inner {border-radius: 2px;}
+.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 {border: 1px solid #1890ff;border-radius: 2px;}
+.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-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-start.ant-picker-cell-range-start.ant-picker-cell-range-end.ant-picker-cell-range-end-near-hover::after, .ant-picker-cell-in-view.ant-picker-cell-range-hover-end.ant-picker-cell-range-start.ant-picker-cell-range-end.ant-picker-cell-range-start-near-hover::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 {border-top: 1px dashed #7ec1ff;border-bottom: 1px dashed #7ec1ff;}
+.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 {background: #cbe6ff;}
+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-start.ant-picker-cell-range-hover-edge-start.ant-picker-cell-range-hover-edge-start-near-range::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 {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-end.ant-picker-cell-range-hover-edge-end.ant-picker-cell-range-hover-edge-end-near-range::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 {border-right: 1px dashed #7ec1ff;border-top-right-radius: 2px;border-bottom-right-radius: 2px;}
+.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-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-footer {border-bottom: 1px solid transparent;}
+.ant-picker-panel .ant-picker-footer {border-top: 1px solid #f0f0f0;}
+.ant-picker-footer-extra:not(:last-child) {border-bottom: 1px solid #f0f0f0;}
+.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);}
+.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 {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 {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 {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 {border-left: 1px dashed #7ec1ff;border-radius: 2px 0 0 2px;}
+.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: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-datetime-panel .ant-picker-time-panel {border-left: 1px solid #f0f0f0;}
+.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 > li.ant-picker-time-panel-cell .ant-picker-time-panel-cell-inner {color: rgba(0, 0, 0, 0.85);border-radius: 0;}
+.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;}
+.ant-picker-cell .ant-picker-cell-inner {border-radius: 2px;}
+.ant-picker-panel-rtl .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: 0 2px 2px 0;}
+.ant-picker-panel-rtl .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: 2px 0 0 2px;}
+.ant-picker-panel-rtl tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover:not(.ant-picker-cell-selected):first-child::after, .ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover-edge-start.ant-picker-cell-range-hover-edge-start-near-range::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 {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:not(.ant-picker-cell-selected):last-child::after, .ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-end.ant-picker-cell-range-hover-edge-end.ant-picker-cell-range-hover-edge-end-near-range::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 {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 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-start.ant-picker-cell-range-hover-edge-start:not(.ant-picker-cell-range-hover)::after, .ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover-end.ant-picker-cell-range-hover-edge-start:not(.ant-picker-cell-range-hover)::after, .ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-end.ant-picker-cell-range-hover-start.ant-picker-cell-range-hover-edge-end:not(.ant-picker-cell-range-hover)::after, .ant-picker-panel-rtl tr > .ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover.ant-picker-cell-range-hover-edge-start:last-child::after, .ant-picker-panel-rtl tr > .ant-picker-cell-in-view.ant-picker-cell-end.ant-picker-cell-range-hover.ant-picker-cell-range-hover-edge-end:first-child::after {border-right: 1px dashed #7ec1ff;border-left: 1px dashed #7ec1ff;border-radius: 2px;}
+.ant-picker-inline {border: none;}
+.ant-descriptions-title {color: rgba(0, 0, 0, 0.85);}
+.ant-descriptions-extra {color: rgba(0, 0, 0, 0.85);}
+.ant-descriptions-view {border-radius: 2px;}
+.ant-descriptions-row:last-child {border-bottom: none;}
+.ant-descriptions-item-label {color: rgba(0, 0, 0, 0.85);}
+.ant-descriptions-item-content {color: rgba(0, 0, 0, 0.85);}
+.ant-descriptions-bordered .ant-descriptions-view {border: 1px solid #f0f0f0;}
+.ant-descriptions-bordered .ant-descriptions-item-label, .ant-descriptions-bordered .ant-descriptions-item-content {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-row {border-bottom: 1px solid #f0f0f0;}
+.ant-descriptions-bordered .ant-descriptions-row:last-child {border-bottom: none;}
+.ant-descriptions-rtl.ant-descriptions-bordered .ant-descriptions-item-label, .ant-descriptions-rtl.ant-descriptions-bordered .ant-descriptions-item-content {border-right: none;border-left: 1px solid #f0f0f0;}
+.ant-descriptions-rtl.ant-descriptions-bordered .ant-descriptions-item-label:last-child, .ant-descriptions-rtl.ant-descriptions-bordered .ant-descriptions-item-content:last-child {border-left: none;}
+.ant-divider {color: rgba(0, 0, 0, 0.85);border-top: 1px solid rgba(0, 0, 0, 0.06);}
+.ant-divider-vertical {border-top: 0;border-left: 1px solid rgba(0, 0, 0, 0.06);}
+.ant-divider-horizontal.ant-divider-with-text {color: rgba(0, 0, 0, 0.85);border-top: 0;border-top-color: rgba(0, 0, 0, 0.06);}
+.ant-divider-horizontal.ant-divider-with-text::before, .ant-divider-horizontal.ant-divider-with-text::after {border-top: 1px solid transparent;border-top-color: inherit;border-bottom: 0;}
+.ant-divider-dashed {background: none;border-color: rgba(0, 0, 0, 0.06);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.85);}
+.ant-drawer-left.ant-drawer-open .ant-drawer-content-wrapper {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 .ant-drawer-content-wrapper {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-top.ant-drawer-open .ant-drawer-content-wrapper {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 .ant-drawer-content-wrapper {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-title {color: rgba(0, 0, 0, 0.85);}
+.ant-drawer-content {background-color: #fff;background-clip: padding-box;border: 0;}
+.ant-drawer-close {color: rgba(0, 0, 0, 0.45);background: transparent;border: 0;}
+.ant-drawer-close:focus, .ant-drawer-close:hover {color: rgba(0, 0, 0, 0.75);}
+.ant-drawer-header {color: rgba(0, 0, 0, 0.85);background: #fff;border-bottom: 1px solid #f0f0f0;border-radius: 2px 2px 0 0;}
+.ant-drawer-header-no-title {color: rgba(0, 0, 0, 0.85);background: #fff;}
+.ant-drawer-footer {border-top: 1px solid #f0f0f0;}
+.ant-drawer-mask {background-color: rgba(0, 0, 0, 0.45);}
+.ant-drawer-open-content {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;}
+.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 {color: rgba(0, 0, 0, 0.85);}
+.ant-dropdown-arrow {background: transparent;border-style: solid;border-width: 4.24264069px;}
+.ant-dropdown-placement-topCenter > .ant-dropdown-arrow, .ant-dropdown-placement-topLeft > .ant-dropdown-arrow, .ant-dropdown-placement-topRight > .ant-dropdown-arrow {border-top-color: transparent;border-right-color: #fff;border-bottom-color: #fff;border-left-color: transparent;box-shadow: 3px 3px 7px rgba(0, 0, 0, 0.07);}
+.ant-dropdown-placement-bottomCenter > .ant-dropdown-arrow, .ant-dropdown-placement-bottomLeft > .ant-dropdown-arrow, .ant-dropdown-placement-bottomRight > .ant-dropdown-arrow {border-top-color: #fff;border-right-color: transparent;border-bottom-color: transparent;border-left-color: #fff;box-shadow: -2px -2px 5px rgba(0, 0, 0, 0.06);}
+.ant-dropdown-menu {background-color: #fff;background-clip: padding-box;border-radius: 2px;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 {color: rgba(0, 0, 0, 0.45);}
+.ant-dropdown-menu-submenu-popup {background: transparent;box-shadow: none;}
+.ant-dropdown-menu-title-content > a {color: inherit;}
+.ant-dropdown-menu-title-content > a:hover {color: inherit;}
+.ant-dropdown-menu-item, .ant-dropdown-menu-submenu-title {color: rgba(0, 0, 0, 0.85);}
+.ant-dropdown-menu-item-selected, .ant-dropdown-menu-submenu-title-selected {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);}
+.ant-dropdown-menu-item-disabled:hover, .ant-dropdown-menu-submenu-title-disabled:hover {color: rgba(0, 0, 0, 0.25);background-color: #fff;}
+.ant-dropdown-menu-item-divider, .ant-dropdown-menu-submenu-title-divider {background-color: #f0f0f0;}
+.ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon, .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon {color: rgba(0, 0, 0, 0.45);}
+.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;}
+.ant-dropdown-menu-submenu-selected .ant-dropdown-menu-submenu-title {color: #1890ff;}
+.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-empty-normal {color: rgba(0, 0, 0, 0.25);}
+.ant-empty-small {color: rgba(0, 0, 0, 0.25);}
+.ant-input-affix-wrapper {color: rgba(0, 0, 0, 0.85);background-color: #fff;background-image: none;border: 1px solid #d9d9d9;border-radius: 2px;}
+.ant-input-affix-wrapper::placeholder {color: #bfbfbf;}
+.ant-input-affix-wrapper::placeholder {color: #bfbfbf;}
+.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;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 {background-color: #f5f5f5;color: rgba(0, 0, 0, 0.25);}
+.ant-input-affix-wrapper-disabled:hover {border-color: #d9d9d9;border-right-width: 1px !important;}
+.ant-input-affix-wrapper[disabled] {background-color: #f5f5f5;color: rgba(0, 0, 0, 0.25);}
+.ant-input-affix-wrapper[disabled]:hover {border-color: #d9d9d9;border-right-width: 1px !important;}
+.ant-input-affix-wrapper-borderless, .ant-input-affix-wrapper-borderless:hover, .ant-input-affix-wrapper-borderless:focus, .ant-input-affix-wrapper-borderless-focused, .ant-input-affix-wrapper-borderless-disabled, .ant-input-affix-wrapper-borderless[disabled] {background-color: transparent;border: none;box-shadow: none;}
+.ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover {border-color: #40a9ff;border-right-width: 1px !important;}
+.ant-input-rtl .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover {border-right-width: 0;border-left-width: 1px !important;}
+.ant-input-affix-wrapper-disabled .ant-input[disabled] {background: transparent;}
+.ant-input-affix-wrapper > input.ant-input {border: none;}
+.ant-input-affix-wrapper > input.ant-input:focus {box-shadow: none;}
+.ant-input-clear-icon {color: rgba(0, 0, 0, 0.25);}
+.ant-input-clear-icon:hover {color: rgba(0, 0, 0, 0.45);}
+.ant-input-clear-icon:active {color: rgba(0, 0, 0, 0.85);}
+.ant-input-affix-wrapper-textarea-with-clear-btn {border: 0 !important;}
+.ant-input {color: rgba(0, 0, 0, 0.85);background-color: #fff;background-image: none;border: 1px solid #d9d9d9;border-radius: 2px;}
+.ant-input::placeholder {color: #bfbfbf;}
+.ant-input::placeholder {color: #bfbfbf;}
+.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;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 {background-color: #f5f5f5;color: rgba(0, 0, 0, 0.25);}
+.ant-input-disabled:hover {border-color: #d9d9d9;border-right-width: 1px !important;}
+.ant-input[disabled] {background-color: #f5f5f5;color: rgba(0, 0, 0, 0.25);}
+.ant-input[disabled]:hover {border-color: #d9d9d9;border-right-width: 1px !important;}
+.ant-input-borderless, .ant-input-borderless:hover, .ant-input-borderless:focus, .ant-input-borderless-focused, .ant-input-borderless-disabled, .ant-input-borderless[disabled] {background-color: transparent;border: none;box-shadow: none;}
+.ant-input-group {color: rgba(0, 0, 0, 0.85);border-collapse: separate;border-spacing: 0;}
+.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 .ant-input:focus {border-right-width: 1px;}
+.ant-input-group .ant-input:hover {border-right-width: 1px;}
+.ant-input-group-addon {color: rgba(0, 0, 0, 0.85);background-color: #fafafa;border: 1px solid #d9d9d9;border-radius: 2px;}
+.ant-input-group-addon .ant-select.ant-select-single:not(.ant-select-customize-input) .ant-select-selector {background-color: inherit;border: 1px solid transparent;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 > .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 .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-search .ant-input-group .ant-input-affix-wrapper:not(:last-child) {border-top-left-radius: 2px;border-bottom-left-radius: 2px;}
+.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 > * {border-radius: 0;}
+.ant-input-group.ant-input-group-compact > *:not(:last-child) {border-right-width: 1px;}
+.ant-input-group.ant-input-group-compact > .ant-select > .ant-select-selector, .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-input-group-wrapper .ant-input {border-right-width: 1px;border-radius: 0;}
+.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-select-auto-complete:first-child .ant-input, .ant-input-group.ant-input-group-compact > .ant-cascader-picker:first-child .ant-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-cascader-picker:last-child .ant-input, .ant-input-group.ant-input-group-compact > .ant-cascader-picker-focused:last-child .ant-input {border-right-width: 1px;border-top-right-radius: 2px;border-bottom-right-radius: 2px;}
+.ant-input-group.ant-input-group-compact .ant-input-group-wrapper + .ant-input-group-wrapper .ant-input-affix-wrapper {border-radius: 0;}
+.ant-input-group.ant-input-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search > .ant-input-group > .ant-input-group-addon > .ant-input-search-button {border-radius: 0;}
+.ant-input-group.ant-input-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search > .ant-input-group > .ant-input {border-radius: 2px 0 0 2px;}
+.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) {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-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 {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-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 {border-left-width: 1px;border-radius: 2px 0 0 2px;}
+.ant-input-group.ant-input-group-compact .ant-input-group-wrapper-rtl:not(:last-child).ant-input-search > .ant-input-group > .ant-input {border-radius: 0 2px 2px 0;}
+.ant-input-password-icon {color: rgba(0, 0, 0, 0.45);}
+.ant-input-password-icon:hover {color: rgba(0, 0, 0, 0.85);}
+.ant-input-textarea-show-count::after {color: rgba(0, 0, 0, 0.45);}
+.ant-input-search .ant-input:hover, .ant-input-search .ant-input:focus {border-color: #40a9ff;}
+.ant-input-search .ant-input:hover + .ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary), .ant-input-search .ant-input:focus + .ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary) {border-left-color: #40a9ff;}
+.ant-input-search .ant-input-affix-wrapper {border-radius: 0;}
+.ant-input-search > .ant-input-group > .ant-input-group-addon:last-child {border: 0;}
+.ant-input-search > .ant-input-group > .ant-input-group-addon:last-child .ant-input-search-button {border-radius: 0 2px 2px 0;}
+.ant-input-search > .ant-input-group > .ant-input-group-addon:last-child .ant-input-search-button:not(.ant-btn-primary) {color: rgba(0, 0, 0, 0.45);}
+.ant-input-affix-wrapper.ant-input-affix-wrapper-rtl > input.ant-input {border: none;}
+.ant-input-search-rtl .ant-input:hover + .ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary), .ant-input-search-rtl .ant-input:focus + .ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary) {border-right-color: #40a9ff;border-left-color: #d9d9d9;}
+.ant-input-search-rtl > .ant-input-group > .ant-input-affix-wrapper:hover, .ant-input-search-rtl > .ant-input-group > .ant-input-affix-wrapper-focused {border-right-color: #40a9ff;}
+.ant-input-search-rtl > .ant-input-group > .ant-input-group-addon .ant-input-search-button {border-radius: 2px 0 0 2px;}
+.ant-input-number {color: rgba(0, 0, 0, 0.85);background-color: #fff;background-image: none;border: 1px solid #d9d9d9;border-radius: 2px;}
+.ant-input-number::placeholder {color: #bfbfbf;}
+.ant-input-number::placeholder {color: #bfbfbf;}
+.ant-input-number:hover {border-color: #40a9ff;border-right-width: 1px !important;}
+.ant-input-rtl .ant-input-number:hover {border-right-width: 0;border-left-width: 1px !important;}
+.ant-input-number:focus, .ant-input-number-focused {border-color: #40a9ff;border-right-width: 1px !important;box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);}
+.ant-input-rtl .ant-input-number:focus, .ant-input-rtl .ant-input-number-focused {border-right-width: 0;border-left-width: 1px !important;}
+.ant-input-number-disabled {background-color: #f5f5f5;color: rgba(0, 0, 0, 0.25);}
+.ant-input-number-disabled:hover {border-color: #d9d9d9;border-right-width: 1px !important;}
+.ant-input-number[disabled] {background-color: #f5f5f5;color: rgba(0, 0, 0, 0.25);}
+.ant-input-number[disabled]:hover {border-color: #d9d9d9;border-right-width: 1px !important;}
+.ant-input-number-borderless, .ant-input-number-borderless:hover, .ant-input-number-borderless:focus, .ant-input-number-borderless-focused, .ant-input-number-borderless-disabled, .ant-input-number-borderless[disabled] {background-color: transparent;border: none;box-shadow: none;}
+.ant-input-number-handler {color: rgba(0, 0, 0, 0.45);}
+.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 {color: inherit;color: rgba(0, 0, 0, 0.45);}
+.ant-input-number:hover {border-color: #40a9ff;border-right-width: 1px !important;}
+.ant-input-number-focused {border-color: #40a9ff;border-right-width: 1px !important;box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);}
+.ant-input-rtl .ant-input-number-focused {border-right-width: 0;border-left-width: 1px !important;}
+.ant-input-number-disabled {background-color: #f5f5f5;color: rgba(0, 0, 0, 0.25);}
+.ant-input-number-disabled:hover {border-color: #d9d9d9;border-right-width: 1px !important;}
+.ant-input-number-input {background-color: transparent;border: 0;border-radius: 2px;}
+.ant-input-number-input::placeholder {color: #bfbfbf;}
+.ant-input-number-input::placeholder {color: #bfbfbf;}
+.ant-input-number-handler-wrap {background: #fff;border-left: 1px solid #d9d9d9;border-radius: 0 2px 2px 0;}
+.ant-input-number-borderless .ant-input-number-handler-wrap {border-left-width: 0;}
+.ant-input-number-handler-up {border-top-right-radius: 2px;}
+.ant-input-number-handler-down {border-top: 1px solid #d9d9d9;border-bottom-right-radius: 2px;}
+.ant-input-number-borderless .ant-input-number-handler-down {border-top-width: 0;}
+.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-borderless {box-shadow: none;}
+.ant-input-number-out-of-range input {color: #ff4d4f;}
+.ant-input-number-rtl .ant-input-number-handler-wrap {border-right: 1px solid #d9d9d9;border-left: 0;border-radius: 2px 0 0 2px;}
+.ant-input-number-rtl.ant-input-number-borderless .ant-input-number-handler-wrap {border-right-width: 0;}
+.ant-layout {background: #f8f8f8;}
+.ant-layout-header {color: rgba(0, 0, 0, 0.85);background: #001529;}
+.ant-layout-footer {color: rgba(0, 0, 0, 0.85);background: #f8f8f8;}
+.ant-layout-sider {background: #001529;}
+.ant-layout-sider-trigger {color: #fff;background: #002140;}
+.ant-layout-sider-zero-width-trigger {color: #fff;background: #001529;border-radius: 0 2px 2px 0;}
+.ant-layout-sider-zero-width-trigger::after {background: transparent;}
+.ant-layout-sider-zero-width-trigger:hover::after {background: rgba(255, 255, 255, 0.1);}
+.ant-layout-sider-zero-width-trigger-right {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.85);background: #fff;}
+.ant-layout-sider-light .ant-layout-sider-zero-width-trigger {color: rgba(0, 0, 0, 0.85);background: #fff;}
+.ant-form-item .ant-upload {background: transparent;}
+.ant-form-item .ant-upload.ant-upload-drag {background: #fafafa;}
+.ant-form-item-explain.ant-form-item-explain-error {color: #ff4d4f;}
+.ant-form-item-explain.ant-form-item-explain-warning {color: #faad14;}
+.ant-form-item-has-success.ant-form-item-has-feedback .ant-form-item-children-icon {color: #52c41a;}
+.ant-form-item-has-warning .ant-form-item-split {color: #faad14;}
+.ant-form-item-has-warning .ant-input:not(.ant-input-disabled), .ant-form-item-has-warning .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled), .ant-form-item-has-warning .ant-input:not(.ant-input-disabled):hover, .ant-form-item-has-warning .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover {background-color: #fff;border-color: #faad14;}
+.ant-form-item-has-warning .ant-input:not(.ant-input-disabled):focus, .ant-form-item-has-warning .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):focus, .ant-form-item-has-warning .ant-input:not(.ant-input-disabled)-focused, .ant-form-item-has-warning .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled)-focused {border-color: #ffc53d;border-right-width: 1px !important;box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);}
+.ant-form-item-has-warning .ant-calendar-picker-open .ant-calendar-picker-input {border-color: #ffc53d;border-right-width: 1px !important;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;}
+.ant-form-item-has-warning .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input) .ant-select-selector {background-color: #fff;border-color: #faad14 !important;}
+.ant-form-item-has-warning .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input).ant-select-open .ant-select-selector, .ant-form-item-has-warning .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input).ant-select-focused .ant-select-selector {border-color: #ffc53d;border-right-width: 1px !important;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 {background-color: #fff;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;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 {background-color: #fff;border-color: #faad14;}
+.ant-form-item-has-warning .ant-cascader-picker:focus .ant-cascader-input {border-color: #ffc53d;border-right-width: 1px !important;box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);}
+.ant-form-item-has-error .ant-form-item-split {color: #ff4d4f;}
+.ant-form-item-has-error .ant-input:not(.ant-input-disabled), .ant-form-item-has-error .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled), .ant-form-item-has-error .ant-input:not(.ant-input-disabled):hover, .ant-form-item-has-error .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover {background-color: #fff;border-color: #ff4d4f;}
+.ant-form-item-has-error .ant-input:not(.ant-input-disabled):focus, .ant-form-item-has-error .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):focus, .ant-form-item-has-error .ant-input:not(.ant-input-disabled)-focused, .ant-form-item-has-error .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled)-focused {border-color: #ff7875;border-right-width: 1px !important;box-shadow: 0 0 0 2px rgba(255, 77, 79, 0.2);}
+.ant-form-item-has-error .ant-calendar-picker-open .ant-calendar-picker-input {border-color: #ff7875;border-right-width: 1px !important;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;}
+.ant-form-item-has-error .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input) .ant-select-selector {background-color: #fff;border-color: #ff4d4f !important;}
+.ant-form-item-has-error .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input).ant-select-open .ant-select-selector, .ant-form-item-has-error .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input).ant-select-focused .ant-select-selector {border-color: #ff7875;border-right-width: 1px !important;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 {background-color: inherit;border: 0;box-shadow: none;}
+.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 {background-color: #fff;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;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 {background-color: #fff;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 {background-color: #fff;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;box-shadow: 0 0 0 2px rgba(255, 77, 79, 0.2);}
+.ant-form-item-has-error .ant-cascader-picker:hover .ant-cascader-picker-label:hover + .ant-cascader-input.ant-input {border-color: #ff4d4f;}
+.ant-form-item-has-error .ant-cascader-picker:focus .ant-cascader-input {background-color: #fff;border-color: #ff7875;border-right-width: 1px !important;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-input-rtl .ant-form-item-has-error .ant-transfer-list-search:not([disabled]):hover {border-right-width: 0;border-left-width: 1px !important;}
+.ant-form-item-has-error .ant-transfer-list-search:not([disabled]):focus {border-color: #40a9ff;border-right-width: 1px !important;box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);}
+.ant-input-rtl .ant-form-item-has-error .ant-transfer-list-search:not([disabled]):focus {border-right-width: 0;border-left-width: 1px !important;}
+.ant-form-item-has-error .ant-radio-button-wrapper {border-color: #ff4d4f !important;}
+.ant-form-item-has-error .ant-radio-button-wrapper:not(:first-child)::before {background-color: #ff4d4f;}
+.ant-form-item-is-validating.ant-form-item-has-feedback .ant-form-item-children-icon {color: #1890ff;}
+.ant-form {color: rgba(0, 0, 0, 0.85);}
+.ant-form legend {color: rgba(0, 0, 0, 0.45);border: 0;border-bottom: 1px solid #d9d9d9;}
+.ant-form output {color: rgba(0, 0, 0, 0.85);}
+.ant-form-item {color: rgba(0, 0, 0, 0.85);}
+.ant-form-item-label > label {color: rgba(0, 0, 0, 0.85);}
+.ant-form-item-label > label.ant-form-item-required:not(.ant-form-item-required-mark-optional)::before {color: #ff4d4f;}
+.ant-form-item-label > label .ant-form-item-optional {color: rgba(0, 0, 0, 0.45);}
+.ant-form-item-label > label .ant-form-item-tooltip {color: rgba(0, 0, 0, 0.45);}
+.ant-form-item-explain, .ant-form-item-extra {color: rgba(0, 0, 0, 0.45);}
+.ant-list {color: rgba(0, 0, 0, 0.85);}
+.ant-list-empty-text {color: rgba(0, 0, 0, 0.25);}
+.ant-list-item {color: rgba(0, 0, 0, 0.85);}
+.ant-list-item-meta-content {color: rgba(0, 0, 0, 0.85);}
+.ant-list-item-meta-title {color: rgba(0, 0, 0, 0.85);}
+.ant-list-item-meta-title > a {color: rgba(0, 0, 0, 0.85);}
+.ant-list-item-meta-title > a:hover {color: #1890ff;}
+.ant-list-item-meta-description {color: rgba(0, 0, 0, 0.45);}
+.ant-list-item-action > li {color: rgba(0, 0, 0, 0.45);}
+.ant-list-item-action-split {background-color: #f0f0f0;}
+.ant-list-header {background: transparent;}
+.ant-list-footer {background: transparent;}
+.ant-list-empty {color: rgba(0, 0, 0, 0.45);}
+.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-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-vertical .ant-list-item-meta-title {color: rgba(0, 0, 0, 0.85);}
+.ant-list-grid .ant-col > .ant-list-item {border-bottom: none;}
+.ant-list-bordered {border: 1px solid #d9d9d9;border-radius: 2px;}
+.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 {color: rgba(0, 0, 0, 0.85);background: #fff;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-menu.ant-menu-root:focus-visible {box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);}
+.ant-menu-item-group-title {color: rgba(0, 0, 0, 0.45);}
+.ant-menu-submenu-selected {color: #1890ff;}
+.ant-menu-item:active, .ant-menu-submenu-title:active {background: #e6f7ff;}
+.ant-menu-item a {color: rgba(0, 0, 0, 0.85);}
+.ant-menu-item a:hover {color: #1890ff;}
+.ant-menu-item a::before {background-color: transparent;}
+.ant-menu-item > .ant-badge a {color: rgba(0, 0, 0, 0.85);}
+.ant-menu-item > .ant-badge a:hover {color: #1890ff;}
+.ant-menu-item-divider {background-color: #f0f0f0;}
+.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 {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 {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-item:focus-visible, .ant-menu-submenu-title:focus-visible {box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);}
+.ant-menu > .ant-menu-item-divider {background-color: #f0f0f0;}
+.ant-menu-submenu-popup {background: transparent;border-radius: 2px;box-shadow: none;}
+.ant-menu-submenu > .ant-menu {background-color: #fff;border-radius: 2px;}
+.ant-menu-submenu-popup > .ant-menu {background-color: #fff;}
+.ant-menu-submenu-expand-icon, .ant-menu-submenu-arrow {color: rgba(0, 0, 0, 0.85);}
+.ant-menu-submenu-arrow::before, .ant-menu-submenu-arrow::after {background-color: currentColor;border-radius: 2px;}
+.ant-menu-submenu:hover > .ant-menu-submenu-title > .ant-menu-submenu-expand-icon, .ant-menu-submenu:hover > .ant-menu-submenu-title > .ant-menu-submenu-arrow {color: #1890ff;}
+.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 {border: 0;border-bottom: 1px solid #f0f0f0;box-shadow: none;}
+.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item:hover, .ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu:hover, .ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item-active, .ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu-active, .ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item-open, .ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu-open, .ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item-selected, .ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu-selected {color: #1890ff;}
+.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item:hover::after, .ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu:hover::after, .ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item-active::after, .ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu-active::after, .ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item-open::after, .ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu-open::after, .ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item-selected::after, .ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu-selected::after {border-bottom: 2px solid #1890ff;}
+.ant-menu-horizontal > .ant-menu-item::after, .ant-menu-horizontal > .ant-menu-submenu::after {border-bottom: 2px solid transparent;}
+.ant-menu-horizontal > .ant-menu-item a {color: rgba(0, 0, 0, 0.85);}
+.ant-menu-horizontal > .ant-menu-item a:hover {color: #1890ff;}
+.ant-menu-horizontal > .ant-menu-item-selected a {color: #1890ff;}
+.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 {border-right: 3px solid #1890ff;}
+.ant-menu.ant-menu-inline-collapsed-tooltip a {color: rgba(255, 255, 255, 0.85);}
+.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 {box-shadow: none;}
+.ant-menu-sub.ant-menu-inline {background: #fafafa;border: 0;border-radius: 0;box-shadow: none;}
+.ant-menu-item-disabled, .ant-menu-submenu-disabled {color: rgba(0, 0, 0, 0.25) !important;background: none;}
+.ant-menu-item-disabled::after, .ant-menu-submenu-disabled::after {border-color: transparent !important;}
+.ant-menu-item-disabled a, .ant-menu-submenu-disabled a {color: rgba(0, 0, 0, 0.25) !important;}
+.ant-menu-item-disabled > .ant-menu-submenu-title, .ant-menu-submenu-disabled > .ant-menu-submenu-title {color: rgba(0, 0, 0, 0.25) !important;}
+.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-menu-light .ant-menu-item:hover, .ant-menu-light .ant-menu-item-active, .ant-menu-light .ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open, .ant-menu-light .ant-menu-submenu-active, .ant-menu-light .ant-menu-submenu-title:hover {color: #1890ff;}
+.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::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 {border-color: #001529;border-bottom: 0;}
+.ant-menu-dark.ant-menu-horizontal > .ant-menu-item:hover {background-color: #1890ff;}
+.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 {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-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::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 > .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 {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 .ant-menu-item-icon, .ant-menu-dark .ant-menu-item-selected .anticon {color: #fff;}
+.ant-menu-dark .ant-menu-item-selected .ant-menu-item-icon + span, .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;}
+.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.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-sub.ant-menu-inline {border: 0;}
+.ant-mention-wrapper {color: rgba(0, 0, 0, 0.85);}
+.ant-mention-wrapper .ant-mention-editor {color: rgba(0, 0, 0, 0.85);background-color: #fff;background-image: none;border: 1px solid #d9d9d9;border-radius: 2px;}
+.ant-mention-wrapper .ant-mention-editor::placeholder {color: #bfbfbf;}
+.ant-mention-wrapper .ant-mention-editor::placeholder {color: #bfbfbf;}
+.ant-mention-wrapper .ant-mention-editor:hover {border-color: #40a9ff;border-right-width: 1px !important;}
+.ant-input-rtl .ant-mention-wrapper .ant-mention-editor:hover {border-right-width: 0;border-left-width: 1px !important;}
+.ant-mention-wrapper .ant-mention-editor:focus, .ant-mention-wrapper .ant-mention-editor-focused {border-color: #40a9ff;border-right-width: 1px !important;box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);}
+.ant-input-rtl .ant-mention-wrapper .ant-mention-editor:focus, .ant-input-rtl .ant-mention-wrapper .ant-mention-editor-focused {border-right-width: 0;border-left-width: 1px !important;}
+.ant-mention-wrapper .ant-mention-editor-disabled {background-color: #f5f5f5;color: rgba(0, 0, 0, 0.25);}
+.ant-mention-wrapper .ant-mention-editor-disabled:hover {border-color: #d9d9d9;border-right-width: 1px !important;}
+.ant-mention-wrapper .ant-mention-editor[disabled] {background-color: #f5f5f5;color: rgba(0, 0, 0, 0.25);}
+.ant-mention-wrapper .ant-mention-editor[disabled]:hover {border-color: #d9d9d9;border-right-width: 1px !important;}
+.ant-mention-wrapper .ant-mention-editor-borderless, .ant-mention-wrapper .ant-mention-editor-borderless:hover, .ant-mention-wrapper .ant-mention-editor-borderless:focus, .ant-mention-wrapper .ant-mention-editor-borderless-focused, .ant-mention-wrapper .ant-mention-editor-borderless-disabled, .ant-mention-wrapper .ant-mention-editor-borderless[disabled] {background-color: transparent;border: none;box-shadow: none;}
+.ant-mention-wrapper.ant-mention-active:not(.disabled) .ant-mention-editor {border-color: #40a9ff;border-right-width: 1px !important;box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);}
+.ant-input-rtl .ant-mention-wrapper.ant-mention-active:not(.disabled) .ant-mention-editor {border-right-width: 0;border-left-width: 1px !important;}
+.ant-mention-wrapper.disabled .ant-mention-editor {background-color: #f5f5f5;color: rgba(0, 0, 0, 0.25);}
+.ant-mention-wrapper.disabled .ant-mention-editor:hover {border-color: #d9d9d9;border-right-width: 1px !important;}
+.ant-mention-wrapper .public-DraftEditorPlaceholder-root .public-DraftEditorPlaceholder-inner {color: #bfbfbf;}
+.ant-mention-dropdown {color: rgba(0, 0, 0, 0.85);background-color: #fff;border-radius: 2px;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-mention-dropdown-notfound.ant-mention-dropdown-item {color: rgba(0, 0, 0, 0.25);}
+.ant-mention-dropdown-notfound.ant-mention-dropdown-item .anticon-loading {color: #1890ff;}
+.ant-mention-dropdown-item {color: rgba(0, 0, 0, 0.85);}
+.ant-mention-dropdown-item:hover {background-color: #f5f5f5;}
+.ant-mention-dropdown-item.focus, .ant-mention-dropdown-item-active {background-color: #e6f7ff;}
+.ant-mention-dropdown-item-disabled {color: rgba(0, 0, 0, 0.25);}
+.ant-mention-dropdown-item-disabled:hover {color: rgba(0, 0, 0, 0.25);background-color: #fff;}
+.ant-mention-dropdown-item-selected, .ant-mention-dropdown-item-selected:hover {color: rgba(0, 0, 0, 0.85);background-color: #f5f5f5;}
+.ant-mention-dropdown-item-divider {background-color: #f0f0f0;}
+.ant-message {color: rgba(0, 0, 0, 0.85);}
+.ant-message-notice-content {background: #fff;border-radius: 2px;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-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-modal {color: rgba(0, 0, 0, 0.85);}
+.ant-modal-mask {background-color: rgba(0, 0, 0, 0.45);}
+.ant-modal-mask {background-color: rgba(0, 0, 0, 0.45);}
+.ant-modal-title {color: rgba(0, 0, 0, 0.85);}
+.ant-modal-content {background-color: #fff;background-clip: padding-box;border: 0;border-radius: 2px;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-modal-close {color: rgba(0, 0, 0, 0.45);background: transparent;border: 0;}
+.ant-modal-close:focus, .ant-modal-close:hover {color: rgba(0, 0, 0, 0.75);}
+.ant-modal-header {color: rgba(0, 0, 0, 0.85);background: #fff;border-bottom: 1px solid #f0f0f0;border-radius: 2px 2px 0 0;}
+.ant-modal-footer {background: transparent;border-top: 1px solid #f0f0f0;border-radius: 0 0 2px 2px;}
+.ant-modal-confirm-body .ant-modal-confirm-title {color: rgba(0, 0, 0, 0.85);}
+.ant-modal-confirm-body .ant-modal-confirm-content {color: rgba(0, 0, 0, 0.85);}
+.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-notification {color: rgba(0, 0, 0, 0.85);}
+.ant-notification-notice {background: #fff;border-radius: 2px;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-notice-message {color: rgba(0, 0, 0, 0.85);}
+.ant-notification-notice-message-single-line-auto-margin {background-color: transparent;}
+.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 {color: rgba(0, 0, 0, 0.45);}
+.ant-notification-notice-close:hover {color: rgba(0, 0, 0, 0.67);}
+.ant-page-header {color: rgba(0, 0, 0, 0.85);background-color: #fff;}
+.ant-page-header-ghost {background-color: inherit;}
+.ant-page-header-back-button {color: #1890ff;color: #000;}
+.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-back-button:focus, .ant-page-header-back-button:hover {color: #40a9ff;}
+.ant-page-header-back-button:active {color: #096dd9;}
+.ant-page-header-heading-title {color: rgba(0, 0, 0, 0.85);}
+.ant-page-header-heading-sub-title {color: rgba(0, 0, 0, 0.45);}
+.ant-page-header-footer .ant-tabs > .ant-tabs-nav::before {border: none;}
+.ant-page-header-back-button {border: 0;background: transparent;}
+.ant-pagination {color: rgba(0, 0, 0, 0.85);}
+.ant-pagination-item {background-color: #fff;border: 1px solid #d9d9d9;border-radius: 2px;}
+.ant-pagination-item a {color: rgba(0, 0, 0, 0.85);}
+.ant-pagination-item:focus-visible, .ant-pagination-item:hover {border-color: #1890ff;}
+.ant-pagination-item:focus-visible a, .ant-pagination-item:hover a {color: #1890ff;}
+.ant-pagination-item-active {background: #fff;border-color: #1890ff;}
+.ant-pagination-item-active a {color: #1890ff;}
+.ant-pagination-item-active:focus-visible, .ant-pagination-item-active:hover {border-color: #40a9ff;}
+.ant-pagination-item-active:focus-visible a, .ant-pagination-item-active:hover a {color: #40a9ff;}
+.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;}
+.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-ellipsis, .ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-ellipsis {color: rgba(0, 0, 0, 0.25);}
+.ant-pagination-prev, .ant-pagination-next, .ant-pagination-jump-prev, .ant-pagination-jump-next {color: rgba(0, 0, 0, 0.85);border-radius: 2px;}
+.ant-pagination-prev button, .ant-pagination-next button {color: rgba(0, 0, 0, 0.85);}
+.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 {background-color: #fff;border: 1px solid #d9d9d9;border-radius: 2px;}
+.ant-pagination-prev:focus-visible .ant-pagination-item-link, .ant-pagination-next:focus-visible .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-item-link, .ant-pagination-disabled:hover .ant-pagination-item-link, .ant-pagination-disabled:focus-visible .ant-pagination-item-link {color: rgba(0, 0, 0, 0.25);border-color: #d9d9d9;}
+.ant-pagination-options-quick-jumper input {color: rgba(0, 0, 0, 0.85);background-color: #fff;background-image: none;border: 1px solid #d9d9d9;border-radius: 2px;}
+.ant-pagination-options-quick-jumper input::placeholder {color: #bfbfbf;}
+.ant-pagination-options-quick-jumper input::placeholder {color: #bfbfbf;}
+.ant-pagination-options-quick-jumper input:hover {border-color: #40a9ff;border-right-width: 1px !important;}
+.ant-input-rtl .ant-pagination-options-quick-jumper input:hover {border-right-width: 0;border-left-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;box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);}
+.ant-input-rtl .ant-pagination-options-quick-jumper input:focus, .ant-input-rtl .ant-pagination-options-quick-jumper input-focused {border-right-width: 0;border-left-width: 1px !important;}
+.ant-pagination-options-quick-jumper input-disabled {background-color: #f5f5f5;color: rgba(0, 0, 0, 0.25);}
+.ant-pagination-options-quick-jumper input-disabled:hover {border-color: #d9d9d9;border-right-width: 1px !important;}
+.ant-pagination-options-quick-jumper input[disabled] {background-color: #f5f5f5;color: rgba(0, 0, 0, 0.25);}
+.ant-pagination-options-quick-jumper input[disabled]:hover {border-color: #d9d9d9;border-right-width: 1px !important;}
+.ant-pagination-options-quick-jumper input-borderless, .ant-pagination-options-quick-jumper input-borderless:hover, .ant-pagination-options-quick-jumper input-borderless:focus, .ant-pagination-options-quick-jumper input-borderless-focused, .ant-pagination-options-quick-jumper input-borderless-disabled, .ant-pagination-options-quick-jumper input-borderless[disabled] {background-color: transparent;border: none;box-shadow: none;}
+.ant-pagination-simple .ant-pagination-prev .ant-pagination-item-link, .ant-pagination-simple .ant-pagination-next .ant-pagination-item-link {background-color: transparent;border: 0;}
+.ant-pagination-simple .ant-pagination-simple-pager input {background-color: #fff;border: 1px solid #d9d9d9;border-radius: 2px;}
+.ant-pagination-simple .ant-pagination-simple-pager input:hover {border-color: #1890ff;}
+.ant-pagination-simple .ant-pagination-simple-pager input[disabled] {color: rgba(0, 0, 0, 0.25);background: #f5f5f5;border-color: #d9d9d9;}
+.ant-pagination.mini .ant-pagination-item:not(.ant-pagination-item-active) {background: transparent;border-color: transparent;}
+.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.ant-pagination-disabled .ant-pagination-item {background: #f5f5f5;border-color: #d9d9d9;}
+.ant-pagination.ant-pagination-disabled .ant-pagination-item a {color: rgba(0, 0, 0, 0.25);background: transparent;border: none;}
+.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;}
+.ant-pagination-simple.ant-pagination.ant-pagination-disabled .ant-pagination-item-link {background: transparent;}
+.ant-pagination.ant-pagination-disabled .ant-pagination-simple-pager {color: rgba(0, 0, 0, 0.25);}
+.ant-popover {color: rgba(0, 0, 0, 0.85);}
+.ant-popover::after {background: rgba(255, 255, 255, 0.01);}
+.ant-popover-inner {background-color: #fff;background-clip: padding-box;border-radius: 2px;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 0 8px rgba(0, 0, 0, 0.15) ;}
+.ant-popover-title {color: rgba(0, 0, 0, 0.85);border-bottom: 1px solid #f0f0f0;}
+.ant-popover-inner-content {color: rgba(0, 0, 0, 0.85);}
+.ant-popover-message {color: rgba(0, 0, 0, 0.85);}
+.ant-popover-message > .anticon {color: #faad14;}
+.ant-popover-arrow {background: transparent;}
+.ant-popover-arrow-content {background-color: #fff;}
+.ant-popover-placement-top .ant-popover-arrow-content, .ant-popover-placement-topLeft .ant-popover-arrow-content, .ant-popover-placement-topRight .ant-popover-arrow-content {box-shadow: 3px 3px 7px rgba(0, 0, 0, 0.07);}
+.ant-popover-placement-right .ant-popover-arrow-content, .ant-popover-placement-rightTop .ant-popover-arrow-content, .ant-popover-placement-rightBottom .ant-popover-arrow-content {box-shadow: -3px 3px 7px rgba(0, 0, 0, 0.07);}
+.ant-popover-placement-bottom .ant-popover-arrow-content, .ant-popover-placement-bottomLeft .ant-popover-arrow-content, .ant-popover-placement-bottomRight .ant-popover-arrow-content {box-shadow: -2px -2px 5px rgba(0, 0, 0, 0.06);}
+.ant-popover-placement-left .ant-popover-arrow-content, .ant-popover-placement-leftTop .ant-popover-arrow-content, .ant-popover-placement-leftBottom .ant-popover-arrow-content {box-shadow: 3px -3px 7px rgba(0, 0, 0, 0.07);}
+.ant-popover-pink .ant-popover-inner {background-color: #eb2f96;}
+.ant-popover-pink .ant-popover-arrow-content {background-color: #eb2f96;}
+.ant-popover-magenta .ant-popover-inner {background-color: #eb2f96;}
+.ant-popover-magenta .ant-popover-arrow-content {background-color: #eb2f96;}
+.ant-popover-red .ant-popover-inner {background-color: #f5222d;}
+.ant-popover-red .ant-popover-arrow-content {background-color: #f5222d;}
+.ant-popover-volcano .ant-popover-inner {background-color: #fa541c;}
+.ant-popover-volcano .ant-popover-arrow-content {background-color: #fa541c;}
+.ant-popover-orange .ant-popover-inner {background-color: #fa8c16;}
+.ant-popover-orange .ant-popover-arrow-content {background-color: #fa8c16;}
+.ant-popover-yellow .ant-popover-inner {background-color: #fadb14;}
+.ant-popover-yellow .ant-popover-arrow-content {background-color: #fadb14;}
+.ant-popover-gold .ant-popover-inner {background-color: #faad14;}
+.ant-popover-gold .ant-popover-arrow-content {background-color: #faad14;}
+.ant-popover-cyan .ant-popover-inner {background-color: #13c2c2;}
+.ant-popover-cyan .ant-popover-arrow-content {background-color: #13c2c2;}
+.ant-popover-lime .ant-popover-inner {background-color: #a0d911;}
+.ant-popover-lime .ant-popover-arrow-content {background-color: #a0d911;}
+.ant-popover-green .ant-popover-inner {background-color: #52c41a;}
+.ant-popover-green .ant-popover-arrow-content {background-color: #52c41a;}
+.ant-popover-blue .ant-popover-inner {background-color: #1890ff;}
+.ant-popover-blue .ant-popover-arrow-content {background-color: #1890ff;}
+.ant-popover-geekblue .ant-popover-inner {background-color: #2f54eb;}
+.ant-popover-geekblue .ant-popover-arrow-content {background-color: #2f54eb;}
+.ant-popover-purple .ant-popover-inner {background-color: #722ed1;}
+.ant-popover-purple .ant-popover-arrow-content {background-color: #722ed1;}
+.ant-progress {color: rgba(0, 0, 0, 0.85);}
+.ant-progress-steps-item {background: #f3f3f3;}
+.ant-progress-steps-item-active {background: #1890ff;}
+.ant-progress-inner {background-color: #f5f5f5;border-radius: 100px;}
+.ant-progress-success-bg, .ant-progress-bg {background-color: #1890ff;border-radius: 100px;}
+.ant-progress-success-bg {background-color: #52c41a;}
+.ant-progress-text {color: rgba(0, 0, 0, 0.85);}
+.ant-progress-status-active .ant-progress-bg::before {background: #fff;border-radius: 10px;}
+.ant-progress-status-exception .ant-progress-bg {background-color: #ff4d4f;}
+.ant-progress-status-exception .ant-progress-text {color: #ff4d4f;}
+.ant-progress-status-success .ant-progress-bg {background-color: #52c41a;}
+.ant-progress-status-success .ant-progress-text {color: #52c41a;}
+.ant-progress-circle .ant-progress-inner {background-color: transparent;}
+.ant-progress-circle .ant-progress-text {color: rgba(0, 0, 0, 0.85);}
+.ant-progress-circle.ant-progress-status-exception .ant-progress-text {color: #ff4d4f;}
+.ant-progress-circle.ant-progress-status-success .ant-progress-text {color: #52c41a;}
+.ant-radio-group {color: rgba(0, 0, 0, 0.85);}
+.ant-radio-group > .ant-badge:not(:first-child) > .ant-radio-button-wrapper {border-left: none;}
+.ant-radio-wrapper {color: rgba(0, 0, 0, 0.85);}
+.ant-radio {color: rgba(0, 0, 0, 0.85);}
+.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 {box-shadow: 0 0 0 3px rgba(24, 144, 255, 0.08);}
+.ant-radio-checked::after {border: 1px solid #1890ff;border-radius: 50%;}
+.ant-radio-inner {background-color: #fff;border-color: #d9d9d9;border-style: solid;border-width: 1px;border-radius: 50%;}
+.ant-radio-inner::after {background-color: #1890ff;border-top: 0;border-left: 0;border-radius: 8px;}
+.ant-radio-checked .ant-radio-inner {border-color: #1890ff;}
+.ant-radio-disabled .ant-radio-inner {background-color: #f5f5f5;border-color: #d9d9d9 !important;}
+.ant-radio-disabled .ant-radio-inner::after {background-color: rgba(0, 0, 0, 0.2);}
+.ant-radio-disabled + span {color: rgba(0, 0, 0, 0.25);}
+.ant-radio-button-wrapper {color: rgba(0, 0, 0, 0.85);background: #fff;border: 1px solid #d9d9d9;border-top-width: 1.02px;border-left-width: 0;}
+.ant-radio-button-wrapper a {color: rgba(0, 0, 0, 0.85);}
+.ant-radio-button-wrapper:not(:first-child)::before {background-color: #d9d9d9;}
+.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 {color: #1890ff;}
+.ant-radio-button-wrapper:focus-within {box-shadow: 0 0 0 3px rgba(24, 144, 255, 0.08);}
+.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled) {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 {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 {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;}
+.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: rgba(0, 0, 0, 0.25);background-color: #e6e6e6;border-color: #d9d9d9;box-shadow: none;}
+.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: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;}
+.ant-rate {color: rgba(0, 0, 0, 0.85);color: #fadb14;}
+.ant-rate-star {color: inherit;}
+.ant-rate-star-first, .ant-rate-star-second {color: #f0f0f0;}
+.ant-rate-star-half .ant-rate-star-first, .ant-rate-star-full .ant-rate-star-second {color: inherit;}
+.ant-select-single.ant-select-open .ant-select-selection-item {color: #bfbfbf;}
+.ant-select-disabled.ant-select-multiple .ant-select-selector {background: #f5f5f5;}
+.ant-select-multiple .ant-select-selection-item {background: #f5f5f5;border: 1px solid #f0f0f0;border-radius: 2px;}
+.ant-select-disabled.ant-select-multiple .ant-select-selection-item {color: #bfbfbf;border-color: #d9d9d9;}
+.ant-select-multiple .ant-select-selection-item-remove {color: inherit;color: rgba(0, 0, 0, 0.45);}
+.ant-select-multiple .ant-select-selection-item-remove:hover {color: rgba(0, 0, 0, 0.75);}
+.ant-select {color: rgba(0, 0, 0, 0.85);}
+.ant-select:not(.ant-select-customize-input) .ant-select-selector {background-color: #fff;border: 1px solid #d9d9d9;border-radius: 2px;}
+.ant-select-focused:not(.ant-select-disabled).ant-select:not(.ant-select-customize-input) .ant-select-selector {border-color: #40a9ff;border-right-width: 1px !important;box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);}
+.ant-input-rtl .ant-select-focused:not(.ant-select-disabled).ant-select:not(.ant-select-customize-input) .ant-select-selector {border-right-width: 0;border-left-width: 1px !important;}
+.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector {color: rgba(0, 0, 0, 0.25);background: #f5f5f5;}
+.ant-select-multiple.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector {background: #f5f5f5;}
+.ant-select:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input {background: transparent;border: none;}
+.ant-select:not(.ant-select-disabled):hover .ant-select-selector {border-color: #40a9ff;border-right-width: 1px !important;}
+.ant-input-rtl .ant-select:not(.ant-select-disabled):hover .ant-select-selector {border-right-width: 0;border-left-width: 1px !important;}
+.ant-select-selection-placeholder {color: #bfbfbf;}
+.ant-select-arrow {color: inherit;color: rgba(0, 0, 0, 0.25);}
+.ant-select-clear {color: rgba(0, 0, 0, 0.25);background: #fff;}
+.ant-select-clear:hover {color: rgba(0, 0, 0, 0.45);}
+.ant-select-dropdown {color: rgba(0, 0, 0, 0.85);background-color: #fff;border-radius: 2px;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-empty {color: rgba(0, 0, 0, 0.25);}
+.ant-select-item-empty {color: rgba(0, 0, 0, 0.85);color: rgba(0, 0, 0, 0.25);}
+.ant-select-item {color: rgba(0, 0, 0, 0.85);}
+.ant-select-item-group {color: rgba(0, 0, 0, 0.45);}
+.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.85);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);}
+.ant-select-borderless .ant-select-selector {background-color: transparent !important;border-color: transparent !important;box-shadow: none !important;}
+.ant-skeleton-header .ant-skeleton-avatar {background: rgba(190, 190, 190, 0.2);}
+.ant-skeleton-header .ant-skeleton-avatar.ant-skeleton-avatar-circle {border-radius: 50%;}
+.ant-skeleton-header .ant-skeleton-avatar-lg.ant-skeleton-avatar-circle {border-radius: 50%;}
+.ant-skeleton-header .ant-skeleton-avatar-sm.ant-skeleton-avatar-circle {border-radius: 50%;}
+.ant-skeleton-content .ant-skeleton-title {background: rgba(190, 190, 190, 0.2);border-radius: 4px;}
+.ant-skeleton-content .ant-skeleton-paragraph > li {background: rgba(190, 190, 190, 0.2);border-radius: 4px;}
+.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: linear-gradient(90deg, rgba(190, 190, 190, 0.2) 25%, rgba(129, 129, 129, 0.24) 37%, rgba(190, 190, 190, 0.2) 63%);background-size: 400% 100%;}
+.ant-skeleton.ant-skeleton-active .ant-skeleton-avatar {background: linear-gradient(90deg, rgba(190, 190, 190, 0.2) 25%, rgba(129, 129, 129, 0.24) 37%, rgba(190, 190, 190, 0.2) 63%);background-size: 400% 100%;}
+.ant-skeleton.ant-skeleton-active .ant-skeleton-button {background: linear-gradient(90deg, rgba(190, 190, 190, 0.2) 25%, rgba(129, 129, 129, 0.24) 37%, rgba(190, 190, 190, 0.2) 63%);background-size: 400% 100%;}
+.ant-skeleton.ant-skeleton-active .ant-skeleton-input {background: linear-gradient(90deg, rgba(190, 190, 190, 0.2) 25%, rgba(129, 129, 129, 0.24) 37%, rgba(190, 190, 190, 0.2) 63%);background-size: 400% 100%;}
+.ant-skeleton.ant-skeleton-active .ant-skeleton-image {background: linear-gradient(90deg, rgba(190, 190, 190, 0.2) 25%, rgba(129, 129, 129, 0.24) 37%, rgba(190, 190, 190, 0.2) 63%);background-size: 400% 100%;}
+.ant-skeleton-element .ant-skeleton-button {background: rgba(190, 190, 190, 0.2);border-radius: 2px;}
+.ant-skeleton-element .ant-skeleton-button.ant-skeleton-button-circle {border-radius: 50%;}
+.ant-skeleton-element .ant-skeleton-button.ant-skeleton-button-round {border-radius: 32px;}
+.ant-skeleton-element .ant-skeleton-button-lg.ant-skeleton-button-circle {border-radius: 50%;}
+.ant-skeleton-element .ant-skeleton-button-lg.ant-skeleton-button-round {border-radius: 40px;}
+.ant-skeleton-element .ant-skeleton-button-sm.ant-skeleton-button-circle {border-radius: 50%;}
+.ant-skeleton-element .ant-skeleton-button-sm.ant-skeleton-button-round {border-radius: 24px;}
+.ant-skeleton-element .ant-skeleton-avatar {background: rgba(190, 190, 190, 0.2);}
+.ant-skeleton-element .ant-skeleton-avatar.ant-skeleton-avatar-circle {border-radius: 50%;}
+.ant-skeleton-element .ant-skeleton-avatar-lg.ant-skeleton-avatar-circle {border-radius: 50%;}
+.ant-skeleton-element .ant-skeleton-avatar-sm.ant-skeleton-avatar-circle {border-radius: 50%;}
+.ant-skeleton-element .ant-skeleton-input {background: rgba(190, 190, 190, 0.2);}
+.ant-skeleton-element .ant-skeleton-image {background: rgba(190, 190, 190, 0.2);}
+.ant-skeleton-element .ant-skeleton-image.ant-skeleton-image-circle {border-radius: 50%;}
+.ant-skeleton-element .ant-skeleton-image-svg.ant-skeleton-image-circle {border-radius: 50%;}
+.ant-slider {color: rgba(0, 0, 0, 0.85);}
+.ant-slider-rail {background-color: #f5f5f5;border-radius: 2px;}
+.ant-slider-track {background-color: #91d5ff;border-radius: 2px;}
+.ant-slider-handle {background-color: #fff;border: solid 2px #91d5ff;border-radius: 50%;box-shadow: 0;}
+.ant-slider-handle-dragging.ant-slider-handle-dragging.ant-slider-handle-dragging {border-color: #46a6ff;box-shadow: 0 0 0 5px rgba(24, 144, 255, 0.12);}
+.ant-slider-handle:focus {border-color: #46a6ff;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-text {color: rgba(0, 0, 0, 0.45);}
+.ant-slider-mark-text-active {color: rgba(0, 0, 0, 0.85);}
+.ant-slider-step {background: transparent;}
+.ant-slider-dot {background-color: #fff;border: 2px solid #f0f0f0;border-radius: 50%;}
+.ant-slider-dot-active {border-color: #8cc8ff;}
+.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;box-shadow: none;}
+.ant-spin {color: rgba(0, 0, 0, 0.85);color: #1890ff;}
+.ant-spin-container::after {background: #fff;}
+.ant-spin-tip {color: rgba(0, 0, 0, 0.45);}
+.ant-spin-dot-item {background-color: #1890ff;border-radius: 100%;}
+.ant-statistic {color: rgba(0, 0, 0, 0.85);}
+.ant-statistic-title {color: rgba(0, 0, 0, 0.45);}
+.ant-statistic-content {color: rgba(0, 0, 0, 0.85);}
+.ant-steps {color: rgba(0, 0, 0, 0.85);}
+.ant-steps-item-icon {border: 1px solid rgba(0, 0, 0, 0.25);border-radius: 32px;}
+.ant-steps-item-icon .ant-steps-icon {color: #1890ff;}
+.ant-steps-item-tail::after {background: #f0f0f0;border-radius: 1px;}
+.ant-steps-item-title {color: rgba(0, 0, 0, 0.85);}
+.ant-steps-item-title::after {background: #f0f0f0;}
+.ant-steps-item-subtitle {color: rgba(0, 0, 0, 0.45);}
+.ant-steps-item-description {color: rgba(0, 0, 0, 0.45);}
+.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.85);}
+.ant-steps-item-process > .ant-steps-item-container > .ant-steps-item-tail::after {background-color: #f0f0f0;}
+.ant-steps-item-process > .ant-steps-item-container > .ant-steps-item-icon {background: #1890ff;}
+.ant-steps-item-process > .ant-steps-item-container > .ant-steps-item-icon .ant-steps-icon {color: #fff;}
+.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.85);}
+.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 .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-item-custom > .ant-steps-item-container > .ant-steps-item-icon {background: none;border: 0;}
+.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 {background: none;}
+.ant-steps-small .ant-steps-item-icon {border-radius: 24px;}
+.ant-steps-small .ant-steps-item-description {color: rgba(0, 0, 0, 0.45);}
+.ant-steps-small .ant-steps-item-custom .ant-steps-item-icon {background: none;border: 0;border-radius: 0;}
+.ant-steps-dot .ant-steps-item-icon, .ant-steps-dot.ant-steps-small .ant-steps-item-icon {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 {border-radius: 100px;}
+.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 {background: rgba(0, 0, 0, 0.001);}
+.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 {background: none;}
+.ant-steps-vertical.ant-steps-dot .ant-steps-item-icon {background: none;}
+.ant-steps-navigation .ant-steps-item::after {border: 1px solid rgba(0, 0, 0, 0.25);border-bottom: none;border-left: none;}
+.ant-steps-navigation .ant-steps-item::before {background-color: #1890ff;}
+.ant-switch {color: rgba(0, 0, 0, 0.85);background-color: rgba(0, 0, 0, 0.25);border: 0;border-radius: 100px;}
+.ant-switch:focus {box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);}
+.ant-switch-checked:focus {box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);}
+.ant-switch:focus:hover {box-shadow: none;}
+.ant-switch-checked {background-color: #1890ff;}
+.ant-switch-loading *, .ant-switch-disabled * {box-shadow: none;}
+.ant-switch-inner {color: #fff;}
+.ant-switch-handle::before {background-color: #fff;border-radius: 9px;box-shadow: 0 2px 4px 0 rgba(0, 35, 11, 0.2);}
+.ant-switch-loading-icon {color: rgba(0, 0, 0, 0.65);}
+.ant-switch-checked .ant-switch-loading-icon {color: #1890ff;}
+.ant-table-small .ant-table-thead > tr > th {background-color: #fafafa;}
+.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-summary > 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-summary > 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-summary > 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, .ant-table.ant-table-bordered > .ant-table-container > .ant-table-summary > 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, .ant-table.ant-table-bordered > .ant-table-container > .ant-table-summary > 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 > th::before, .ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table > thead > tr > th::before, .ant-table.ant-table-bordered > .ant-table-container > .ant-table-body > table > thead > tr > th::before, .ant-table.ant-table-bordered > .ant-table-container > .ant-table-summary > table > thead > tr > th::before {background-color: transparent !important;}
+.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-summary > 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-summary > 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, .ant-table.ant-table-bordered > .ant-table-container > .ant-table-summary > 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::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, .ant-table.ant-table-bordered > .ant-table-container > .ant-table-summary > table > tbody > tr > td > .ant-table-expanded-row-fixed::after {border-right: 1px solid #f0f0f0;}
+.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-footer {border: 1px solid #f0f0f0;border-top: 0;}
+.ant-table-cell .ant-table-container:first-child {border-top: 0;}
+.ant-table-cell-scrollbar {box-shadow: 0 1px 0 1px #fafafa;}
+.ant-table {color: rgba(0, 0, 0, 0.85);background: #fff;border-radius: 2px;}
+.ant-table table {border-radius: 2px 2px 0 0;border-collapse: separate;border-spacing: 0;}
+.ant-table-footer {color: rgba(0, 0, 0, 0.85);background: #fafafa;}
+.ant-table-thead > tr > th {color: rgba(0, 0, 0, 0.85);background: #fafafa;border-bottom: 1px solid #f0f0f0;}
+.ant-table-thead > tr > th:not(:last-child):not(.ant-table-selection-column):not(.ant-table-row-expand-icon-cell):not([colspan])::before {background-color: rgba(0, 0, 0, 0.06);}
+.ant-table-thead > tr:not(:last-child) > th[colspan] {border-bottom: 0;}
+.ant-table-tbody > tr > td {border-bottom: 1px solid #f0f0f0;}
+.ant-table-tbody > tr > td > .ant-table-wrapper:only-child .ant-table-tbody > tr:last-child > td, .ant-table-tbody > tr > td > .ant-table-expanded-row-fixed > .ant-table-wrapper:only-child .ant-table-tbody > tr:last-child > td {border-bottom: 0;}
+.ant-table-tbody > tr > td > .ant-table-wrapper:only-child .ant-table-tbody > tr:last-child > td:first-child, .ant-table-tbody > tr > td > .ant-table-expanded-row-fixed > .ant-table-wrapper:only-child .ant-table-tbody > tr:last-child > td:first-child, .ant-table-tbody > tr > td > .ant-table-wrapper:only-child .ant-table-tbody > tr:last-child > td:last-child, .ant-table-tbody > tr > td > .ant-table-expanded-row-fixed > .ant-table-wrapper:only-child .ant-table-tbody > tr:last-child > td:last-child {border-radius: 0;}
+.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-summary {background: #fff;}
+div.ant-table-summary {box-shadow: 0 -1px 0 #f0f0f0;}
+.ant-table-summary > tr > th, .ant-table-summary > tr > td {border-bottom: 1px solid #f0f0f0;}
+.ant-table-thead th.ant-table-column-has-sorters:hover {background: rgba(0, 0, 0, 0.04);}
+.ant-table-thead th.ant-table-column-has-sorters:hover::before {background-color: transparent !important;}
+.ant-table-thead th.ant-table-column-has-sorters.ant-table-cell-fix-left:hover, .ant-table-thead th.ant-table-column-has-sorters.ant-table-cell-fix-right:hover {background: #f5f5f5;}
+.ant-table-thead th.ant-table-column-sort {background: #f5f5f5;}
+.ant-table-thead th.ant-table-column-sort::before {background-color: transparent !important;}
+td.ant-table-column-sort {background: #fafafa;}
+.ant-table-column-sorter {color: #bfbfbf;}
+.ant-table-column-sorter-up.active, .ant-table-column-sorter-down.active {color: #1890ff;}
+.ant-table-column-sorters:hover .ant-table-column-sorter {color: #a6a6a6;}
+.ant-table-filter-trigger {color: #bfbfbf;border-radius: 2px;}
+.ant-table-filter-trigger:hover {color: rgba(0, 0, 0, 0.45);background: rgba(0, 0, 0, 0.04);}
+.ant-table-filter-trigger.active {color: #1890ff;}
+.ant-table-filter-dropdown {color: rgba(0, 0, 0, 0.85);background-color: #fff;border-radius: 2px;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 {border: 0;box-shadow: none;}
+.ant-table-filter-dropdown-btns {background-color: inherit;border-top: 1px solid #f0f0f0;}
+table tr th.ant-table-selection-column::after {background-color: transparent !important;}
+.ant-table-selection-extra .anticon {color: #bfbfbf;}
+.ant-table-selection-extra .anticon:hover {color: #a6a6a6;}
+.ant-table-row-expand-icon {color: #1890ff;color: inherit;background: #fff;border: 1px solid #f0f0f0;border-radius: 2px;}
+.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 {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 {background: currentColor;}
+.ant-table-row-expand-icon-spaced {background: transparent;border: 0;}
+tr.ant-table-expanded-row > td,
+tr.ant-table-expanded-row:hover > td {background: #fbfbfb;}
+.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 {background: #fff;}
+.ant-table-ping-left:not(.ant-table-has-fix-left) .ant-table-container::before {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 {box-shadow: inset 10px 0 8px -8px rgba(0, 0, 0, 0.15);}
+.ant-table-ping-left .ant-table-cell-fix-left-last::before {background-color: transparent !important;}
+.ant-table-ping-right:not(.ant-table-has-fix-right) .ant-table-container::after {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 {box-shadow: inset -10px 0 8px -8px rgba(0, 0, 0, 0.15);}
+.ant-table-sticky-scroll {background: #ffffff;border-top: 1px solid #f0f0f0;}
+.ant-table-sticky-scroll-bar {background-color: rgba(0, 0, 0, 0.35);border-radius: 4px;}
+.ant-table-sticky-scroll-bar:hover {background-color: rgba(0, 0, 0, 0.8);}
+.ant-table-sticky-scroll-bar-active {background-color: rgba(0, 0, 0, 0.8);}
+.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;}
+.nz-table-out-bordered > .ant-table-title {border: 1px solid #f0f0f0;border-bottom: 0;}
+.nz-table-out-bordered > .ant-table-container {border: 1px solid #f0f0f0;border-bottom: 0;}
+.nz-table-out-bordered > .ant-table-footer {border: 1px solid #f0f0f0;border-top: 0;}
+.nz-table-hide-scrollbar {scrollbar-color: #fafafa #fafafa;}
+.nz-table-hide-scrollbar::-webkit-scrollbar {background-color: #fafafa;}
+.ant-table.ant-table-small .nz-table-hide-scrollbar {scrollbar-color: #fafafa #fafafa;}
+.ant-table.ant-table-small .nz-table-hide-scrollbar::-webkit-scrollbar {background-color: transparent;}
+.ant-table.ant-table-bordered > .ant-table-container > .cdk-virtual-scroll-viewport > .cdk-virtual-scroll-content-wrapper > table > thead > tr > th, .ant-table.ant-table-bordered > .ant-table-container > .cdk-virtual-scroll-viewport > .cdk-virtual-scroll-content-wrapper > table > tbody > tr > td, .ant-table.ant-table-bordered > .ant-table-container > .cdk-virtual-scroll-viewport > .cdk-virtual-scroll-content-wrapper > table > tfoot > tr > th, .ant-table.ant-table-bordered > .ant-table-container > .cdk-virtual-scroll-viewport > .cdk-virtual-scroll-content-wrapper > table > tfoot > tr > td {border-right: 1px solid #f0f0f0;}
+.ant-table.ant-table-bordered > .ant-table-container > .cdk-virtual-scroll-viewport > .cdk-virtual-scroll-content-wrapper > table > thead > tr:not(:last-child) > th {border-bottom: 1px solid #f0f0f0;}
+.ant-table.ant-table-bordered > .ant-table-container > .cdk-virtual-scroll-viewport > .cdk-virtual-scroll-content-wrapper > table > thead > tr > .ant-table-cell-fix-right-first::after, .ant-table.ant-table-bordered > .ant-table-container > .cdk-virtual-scroll-viewport > .cdk-virtual-scroll-content-wrapper > table > tbody > tr > .ant-table-cell-fix-right-first::after, .ant-table.ant-table-bordered > .ant-table-container > .cdk-virtual-scroll-viewport > .cdk-virtual-scroll-content-wrapper > table > tfoot > tr > .ant-table-cell-fix-right-first::after {border-right: 1px solid #f0f0f0;}
+.ant-table.ant-table-bordered > .ant-table-container > .cdk-virtual-scroll-viewport > .cdk-virtual-scroll-content-wrapper > table > tbody > tr > td > .ant-table-expanded-row-fixed::after {border-right: 1px solid #f0f0f0;}
+.ant-table.ant-table-bordered.ant-table-scroll-horizontal > .ant-table-container > .cdk-virtual-scroll-viewport > .cdk-virtual-scroll-content-wrapper > table > tbody > tr.ant-table-expanded-row > td, .ant-table.ant-table-bordered.ant-table-scroll-horizontal > .ant-table-container > .cdk-virtual-scroll-viewport > .cdk-virtual-scroll-content-wrapper > table > tbody > tr.ant-table-placeholder > td {border-right: 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 {border-bottom: 1px solid #f0f0f0;}
+.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 {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 {box-shadow: inset -10px 0 8px -8px rgba(0, 0, 0, 0.08);}
+.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 {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 {box-shadow: inset 0 -10px 8px -8px rgba(0, 0, 0, 0.08);}
+.ant-tabs-left > .ant-tabs-content-holder, .ant-tabs-left > div > .ant-tabs-content-holder {border-left: 1px solid #f0f0f0;}
+.ant-tabs-right > .ant-tabs-content-holder, .ant-tabs-right > div > .ant-tabs-content-holder {border-right: 1px solid #f0f0f0;}
+.ant-tabs-dropdown {color: rgba(0, 0, 0, 0.85);}
+.ant-tabs-dropdown-menu {background-color: #fff;background-clip: padding-box;border-radius: 2px;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 {color: rgba(0, 0, 0, 0.85);}
+.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;}
+.ant-tabs-card > .ant-tabs-nav .ant-tabs-tab, .ant-tabs-card > div > .ant-tabs-nav .ant-tabs-tab {background: #fafafa;border: 1px solid #f0f0f0;}
+.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-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, .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 {color: rgba(0, 0, 0, 0.85);}
+.ant-tabs > .ant-tabs-nav .ant-tabs-nav-more, .ant-tabs > div > .ant-tabs-nav .ant-tabs-nav-more {background: transparent;border: 0;}
+.ant-tabs > .ant-tabs-nav .ant-tabs-nav-add, .ant-tabs > div > .ant-tabs-nav .ant-tabs-nav-add {background: #fafafa;border: 1px solid #f0f0f0;border-radius: 2px 2px 0 0;}
+.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-ink-bar {background: #1890ff;}
+.ant-tabs-tab {background: transparent;border: 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-remove {color: rgba(0, 0, 0, 0.45);background: transparent;border: none;}
+.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;}
+.ant-tabs-tab.ant-tabs-tab-disabled {color: rgba(0, 0, 0, 0.25);}
+.ant-tabs-tab.ant-tabs-tab-disabled .ant-tabs-tab-btn:focus, .ant-tabs-tab.ant-tabs-tab-disabled .ant-tabs-tab-remove:focus, .ant-tabs-tab.ant-tabs-tab-disabled .ant-tabs-tab-btn:active, .ant-tabs-tab.ant-tabs-tab-disabled .ant-tabs-tab-remove:active {color: rgba(0, 0, 0, 0.25);}
+a[nz-tab-link]::before {background-color: transparent;}
+.nz-tabs-dropdown.ant-dropdown .ant-dropdown-menu {background-color: #fff;background-clip: padding-box;border-radius: 2px;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);}
+.nz-tabs-dropdown.ant-dropdown .ant-dropdown-menu-item {color: rgba(0, 0, 0, 0.85);}
+.nz-tabs-dropdown.ant-dropdown .ant-dropdown-menu-item:hover {background: #f5f5f5;}
+.nz-tabs-dropdown.ant-dropdown .ant-dropdown-menu-item-disabled, .nz-tabs-dropdown.ant-dropdown .ant-dropdown-menu-item-disabled:hover {color: rgba(0, 0, 0, 0.25);background: transparent;}
+.nz-tabs-dropdown.ant-dropdown .ant-dropdown-menu-item-disabled a, .nz-tabs-dropdown.ant-dropdown .ant-dropdown-menu-item-disabled:hover a {color: rgba(0, 0, 0, 0.25);}
+.ant-tabs-tab-disabled a {color: rgba(0, 0, 0, 0.25);}
+.ant-tag {color: rgba(0, 0, 0, 0.85);background: #fafafa;border: 1px solid #d9d9d9;border-radius: 2px;}
+.ant-tag, .ant-tag a, .ant-tag a:hover {color: rgba(0, 0, 0, 0.85);}
+.ant-tag-close-icon {color: rgba(0, 0, 0, 0.45);}
+.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;}
+.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-pink {color: #c41d7f;background: #fff0f6;border-color: #ffadd2;}
+.ant-tag-pink-inverse {color: #fff;background: #eb2f96;border-color: #eb2f96;}
+.ant-tag-magenta {color: #c41d7f;background: #fff0f6;border-color: #ffadd2;}
+.ant-tag-magenta-inverse {color: #fff;background: #eb2f96;border-color: #eb2f96;}
+.ant-tag-red {color: #cf1322;background: #fff1f0;border-color: #ffa39e;}
+.ant-tag-red-inverse {color: #fff;background: #f5222d;border-color: #f5222d;}
+.ant-tag-volcano {color: #d4380d;background: #fff2e8;border-color: #ffbb96;}
+.ant-tag-volcano-inverse {color: #fff;background: #fa541c;border-color: #fa541c;}
+.ant-tag-orange {color: #d46b08;background: #fff7e6;border-color: #ffd591;}
+.ant-tag-orange-inverse {color: #fff;background: #fa8c16;border-color: #fa8c16;}
+.ant-tag-yellow {color: #d4b106;background: #feffe6;border-color: #fffb8f;}
+.ant-tag-yellow-inverse {color: #fff;background: #fadb14;border-color: #fadb14;}
+.ant-tag-gold {color: #d48806;background: #fffbe6;border-color: #ffe58f;}
+.ant-tag-gold-inverse {color: #fff;background: #faad14;border-color: #faad14;}
+.ant-tag-cyan {color: #08979c;background: #e6fffb;border-color: #87e8de;}
+.ant-tag-cyan-inverse {color: #fff;background: #13c2c2;border-color: #13c2c2;}
+.ant-tag-lime {color: #7cb305;background: #fcffe6;border-color: #eaff8f;}
+.ant-tag-lime-inverse {color: #fff;background: #a0d911;border-color: #a0d911;}
+.ant-tag-green {color: #389e0d;background: #f6ffed;border-color: #b7eb8f;}
+.ant-tag-green-inverse {color: #fff;background: #52c41a;border-color: #52c41a;}
+.ant-tag-blue {color: #096dd9;background: #e6f7ff;border-color: #91d5ff;}
+.ant-tag-blue-inverse {color: #fff;background: #1890ff;border-color: #1890ff;}
+.ant-tag-geekblue {color: #1d39c4;background: #f0f5ff;border-color: #adc6ff;}
+.ant-tag-geekblue-inverse {color: #fff;background: #2f54eb;border-color: #2f54eb;}
+.ant-tag-purple {color: #531dab;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-timeline {color: rgba(0, 0, 0, 0.85);}
+.ant-timeline-item-tail {border-left: 2px solid #f0f0f0;}
+.ant-timeline-item-pending .ant-timeline-item-head {background-color: transparent;}
+.ant-timeline-item-head {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 {border: 0;border-radius: 0;}
+.ant-timeline.ant-timeline-pending .ant-timeline-item-last .ant-timeline-item-tail {border-left: 2px dotted #f0f0f0;}
+.ant-timeline.ant-timeline-reverse .ant-timeline-item-pending .ant-timeline-item-tail {border-left: 2px dotted #f0f0f0;}
+.ant-timeline-rtl .ant-timeline-item-tail {border-right: 2px solid #f0f0f0;border-left: none;}
+.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-tooltip {color: rgba(0, 0, 0, 0.85);}
+.ant-tooltip-inner {color: #fff;background-color: rgba(0, 0, 0, 0.75);border-radius: 2px;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 {background: transparent;}
+.ant-tooltip-arrow-content {background-color: rgba(0, 0, 0, 0.75);}
+.ant-tooltip-placement-top .ant-tooltip-arrow-content, .ant-tooltip-placement-topLeft .ant-tooltip-arrow-content, .ant-tooltip-placement-topRight .ant-tooltip-arrow-content {box-shadow: 3px 3px 7px rgba(0, 0, 0, 0.07);}
+.ant-tooltip-placement-right .ant-tooltip-arrow-content, .ant-tooltip-placement-rightTop .ant-tooltip-arrow-content, .ant-tooltip-placement-rightBottom .ant-tooltip-arrow-content {box-shadow: -3px 3px 7px rgba(0, 0, 0, 0.07);}
+.ant-tooltip-placement-left .ant-tooltip-arrow-content, .ant-tooltip-placement-leftTop .ant-tooltip-arrow-content, .ant-tooltip-placement-leftBottom .ant-tooltip-arrow-content {box-shadow: 3px -3px 7px rgba(0, 0, 0, 0.07);}
+.ant-tooltip-placement-bottom .ant-tooltip-arrow-content, .ant-tooltip-placement-bottomLeft .ant-tooltip-arrow-content, .ant-tooltip-placement-bottomRight .ant-tooltip-arrow-content {box-shadow: -3px -3px 7px rgba(0, 0, 0, 0.07);}
+.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-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-input[disabled] {background-color: transparent;}
+.ant-transfer {color: rgba(0, 0, 0, 0.85);}
+.ant-transfer-disabled .ant-transfer-list {background: #f5f5f5;}
+.ant-transfer-list {border: 1px solid #d9d9d9;border-radius: 2px;}
+.ant-transfer-list-search-action {color: rgba(0, 0, 0, 0.25);}
+.ant-transfer-list-search-action .anticon {color: rgba(0, 0, 0, 0.25);}
+.ant-transfer-list-search-action .anticon:hover {color: rgba(0, 0, 0, 0.45);}
+.ant-transfer-list-header {color: rgba(0, 0, 0, 0.85);background: #fff;border-bottom: 1px solid #f0f0f0;border-radius: 2px 2px 0 0;}
+.ant-transfer-list-content-item-remove {color: #1890ff;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: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:hover {color: #40a9ff;}
+.ant-transfer-list-content-item:not(.ant-transfer-list-content-item-disabled):hover {background-color: #f5f5f5;}
+.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;}
+.ant-transfer-list-content-item-checked {background-color: #e6f7ff;}
+.ant-transfer-list-content-item-disabled {color: rgba(0, 0, 0, 0.25);}
+.ant-transfer-list-pagination {border-top: 1px solid #f0f0f0;}
+.ant-transfer-list-body-not-found {color: rgba(0, 0, 0, 0.25);}
+.ant-transfer-list-footer {border-top: 1px solid #f0f0f0;}
+.ant-typography {color: rgba(0, 0, 0, 0.85);}
+.ant-typography.ant-typography-secondary {color: rgba(0, 0, 0, 0.45);}
+.ant-typography.ant-typography-success {color: #52c41a;}
+.ant-typography.ant-typography-warning {color: #faad14;}
+.ant-typography.ant-typography-danger {color: #ff4d4f;}
+a.ant-typography.ant-typography-danger:active,
+a.ant-typography.ant-typography-danger:focus,
+a.ant-typography.ant-typography-danger:hover {color: #ff7875;}
+.ant-typography.ant-typography-disabled {color: rgba(0, 0, 0, 0.25);}
+h1.ant-typography, .ant-typography h1 {color: rgba(0, 0, 0, 0.85);}
+h2.ant-typography, .ant-typography h2 {color: rgba(0, 0, 0, 0.85);}
+h3.ant-typography, .ant-typography h3 {color: rgba(0, 0, 0, 0.85);}
+h4.ant-typography, .ant-typography h4 {color: rgba(0, 0, 0, 0.85);}
+h5.ant-typography, .ant-typography h5 {color: rgba(0, 0, 0, 0.85);}
+a.ant-typography, .ant-typography a {color: #1890ff;}
+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: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[disabled], .ant-typography a[disabled],
+a.ant-typography.ant-typography-disabled, .ant-typography a.ant-typography-disabled {color: rgba(0, 0, 0, 0.25);}
+a.ant-typography[disabled]:active, .ant-typography a[disabled]:active,
+a.ant-typography.ant-typography-disabled:active, .ant-typography a.ant-typography-disabled:active,
+a.ant-typography[disabled]:hover, .ant-typography a[disabled]:hover,
+a.ant-typography.ant-typography-disabled:hover, .ant-typography a.ant-typography-disabled:hover {color: rgba(0, 0, 0, 0.25);}
+.ant-typography code {background: rgba(150, 150, 150, 0.1);border: 1px solid rgba(100, 100, 100, 0.2);border-radius: 3px;}
+.ant-typography kbd {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 {background-color: #ffe58f;}
+.ant-typography-expand, .ant-typography-edit, .ant-typography-copy {color: #1890ff;}
+.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-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-confirm {color: rgba(0, 0, 0, 0.45);}
+.ant-typography pre {background: rgba(150, 150, 150, 0.1);border: 1px solid rgba(100, 100, 100, 0.2);border-radius: 3px;}
+.ant-typography pre code {background: transparent;border: 0;}
+.ant-typography blockquote {border-left: 4px solid rgba(100, 100, 100, 0.2);}
+.ant-upload {color: rgba(0, 0, 0, 0.85);}
+.ant-upload.ant-upload-select-picture-card {background-color: #fafafa;border: 1px dashed #d9d9d9;border-radius: 2px;}
+.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 {background: #fafafa;border: 1px dashed #d9d9d9;border-radius: 2px;}
+.ant-upload.ant-upload-drag.ant-upload-drag-hover:not(.ant-upload-disabled) {border-color: #096dd9;}
+.ant-upload.ant-upload-drag:not(.ant-upload-disabled):hover {border-color: #40a9ff;}
+.ant-upload.ant-upload-drag p.ant-upload-drag-icon .anticon {color: #40a9ff;}
+.ant-upload.ant-upload-drag p.ant-upload-text {color: rgba(0, 0, 0, 0.85);}
+.ant-upload.ant-upload-drag p.ant-upload-hint {color: rgba(0, 0, 0, 0.45);}
+.ant-upload.ant-upload-drag .anticon-plus {color: rgba(0, 0, 0, 0.25);}
+.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-list {color: rgba(0, 0, 0, 0.85);}
+.ant-upload-list-item-card-actions .anticon {color: rgba(0, 0, 0, 0.45);}
+.ant-upload-list-item-info .anticon-loading .anticon, .ant-upload-list-item-info .ant-upload-text-icon .anticon {color: rgba(0, 0, 0, 0.45);}
+.ant-upload-list-item .anticon-close {color: rgba(0, 0, 0, 0.45);}
+.ant-upload-list-item .anticon-close:hover {color: rgba(0, 0, 0, 0.85);}
+.ant-upload-list-item:hover .ant-upload-list-item-info {background-color: #f5f5f5;}
+.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-picture .ant-upload-list-item, .ant-upload-list-picture-card .ant-upload-list-item {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: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-card .ant-upload-list-item-info::before {background-color: rgba(0, 0, 0, 0.5);}
+.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 {color: rgba(255, 255, 255, 0.85);}
+.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-uploading.ant-upload-list-item {background-color: #fafafa;}
+.ant-select-auto-complete {color: rgba(0, 0, 0, 0.85);}
+.ant-cascader {color: rgba(0, 0, 0, 0.85);}
+.ant-cascader-input.ant-input {background-color: transparent !important;}
+.ant-cascader-picker {color: rgba(0, 0, 0, 0.85);background-color: #fff;border-radius: 2px;}
+.ant-cascader-picker-with-value .ant-cascader-picker-label {color: transparent;}
+.ant-cascader-picker-disabled {color: rgba(0, 0, 0, 0.25);background: #f5f5f5;}
+.ant-cascader-picker:focus .ant-cascader-input {border-color: #40a9ff;border-right-width: 1px !important;box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);}
+.ant-input-rtl .ant-cascader-picker:focus .ant-cascader-input {border-right-width: 0;border-left-width: 1px !important;}
+.ant-cascader-picker-borderless .ant-cascader-input {border-color: transparent !important;box-shadow: none !important;}
+.ant-cascader-picker-show-search.ant-cascader-picker-focused {color: rgba(0, 0, 0, 0.25);}
+.ant-cascader-picker-clear {color: rgba(0, 0, 0, 0.25);background: #fff;}
+.ant-cascader-picker-clear:hover {color: rgba(0, 0, 0, 0.45);}
+.ant-cascader-picker-arrow {color: rgba(0, 0, 0, 0.25);}
+.ant-cascader-picker-label:hover + .ant-cascader-input:not(.ant-cascader-picker-disabled .ant-cascader-picker-label:hover + .ant-cascader-input) {border-color: #40a9ff;border-right-width: 1px !important;}
+.ant-input-rtl .ant-cascader-picker-label:hover + .ant-cascader-input:not(.ant-cascader-picker-disabled .ant-cascader-picker-label:hover + .ant-cascader-input) {border-right-width: 0;border-left-width: 1px !important;}
+.ant-cascader-menus {background: #fff;border-radius: 2px;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-menu {border-right: 1px solid #f0f0f0;}
+.ant-cascader-menu:first-child {border-radius: 2px 0 0 2px;}
+.ant-cascader-menu:last-child {border-right-color: transparent;border-radius: 0 2px 2px 0;}
+.ant-cascader-menu:only-child {border-radius: 2px;}
+.ant-cascader-menu-item:hover {background: #f5f5f5;}
+.ant-cascader-menu-item-disabled {color: rgba(0, 0, 0, 0.25);}
+.ant-cascader-menu-item-disabled:hover {background: transparent;}
+.ant-cascader-menu-empty .ant-cascader-menu-item {color: rgba(0, 0, 0, 0.25);}
+.ant-cascader-menu-item-active:not(.ant-cascader-menu-item-disabled), .ant-cascader-menu-item-active:not(.ant-cascader-menu-item-disabled):hover {background-color: #e6f7ff;}
+.ant-cascader-menu-item-expand .ant-cascader-menu-item-expand-icon, .ant-cascader-menu-item-loading-icon {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-menu-rtl .ant-cascader-menu {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 {border-left-color: transparent;border-radius: 2px 0 0 2px;}
+.ant-cascader-menu-rtl .ant-cascader-menu:only-child {border-radius: 2px;}
+.ant-tree.ant-tree-directory .ant-tree-treenode:hover::before {background: #f5f5f5;}
+.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-node-content-wrapper {border-radius: 0;}
+.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 {color: rgba(0, 0, 0, 0.85);}
+.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 {border: 1px solid #1890ff;border-radius: 2px;}
+.ant-tree-checkbox-inner {background-color: #fff;border: 1px solid #d9d9d9;border-radius: 2px;border-collapse: separate;}
+.ant-tree-checkbox-inner::after {border: 2px solid #fff;border-top: 0;border-left: 0;}
+.ant-tree-checkbox-checked .ant-tree-checkbox-inner::after {border: 2px solid #fff;border-top: 0;border-left: 0;}
+.ant-tree-checkbox-checked .ant-tree-checkbox-inner {background-color: #1890ff;border-color: #1890ff;}
+.ant-tree-checkbox-disabled.ant-tree-checkbox-checked .ant-tree-checkbox-inner::after {border-color: rgba(0, 0, 0, 0.25);}
+.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;}
+.ant-tree-checkbox-disabled + span {color: rgba(0, 0, 0, 0.25);}
+.ant-tree-checkbox-wrapper {color: rgba(0, 0, 0, 0.85);}
+.ant-tree-checkbox-group {color: rgba(0, 0, 0, 0.85);}
+.ant-tree-checkbox-indeterminate .ant-tree-checkbox-inner {background-color: #fff;border-color: #d9d9d9;}
+.ant-tree-checkbox-indeterminate .ant-tree-checkbox-inner::after {background-color: #1890ff;border: 0;}
+.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 {color: rgba(0, 0, 0, 0.85);background: #fff;border-radius: 2px;}
+.ant-tree-focused:not(:hover):not(.ant-tree-active-focused) {background: #e6f7ff;}
+.ant-tree .ant-tree-treenode-disabled .ant-tree-node-content-wrapper {color: rgba(0, 0, 0, 0.25);}
+.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 .ant-tree-treenode:not(.ant-tree .ant-tree-treenode-disabled).filter-node .ant-tree-title {color: inherit;}
+.ant-tree-switcher-loading-icon {color: #1890ff;}
+.ant-tree-switcher-leaf-line::before {border-left: 1px solid #d9d9d9;}
+.ant-tree-switcher-leaf-line::after {border-bottom: 1px solid #d9d9d9;}
+.ant-tree .ant-tree-node-content-wrapper {color: inherit;background: transparent;border-radius: 2px;}
+.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-unselectable .ant-tree-node-content-wrapper:hover {background-color: transparent;}
+.ant-tree-node-content-wrapper[draggable='true'] .ant-tree-drop-indicator {background-color: #1890ff;border-radius: 1px;}
+.ant-tree-node-content-wrapper[draggable='true'] .ant-tree-drop-indicator::after {background-color: transparent;border: 2px solid #1890ff;border-radius: 50%;}
+.ant-tree .ant-tree-treenode.drop-container > [draggable] {box-shadow: 0 0 0 2px #1890ff;}
+.ant-tree-show-line .ant-tree-indent-unit::before {border-right: 1px solid #d9d9d9;}
+.ant-tree-show-line .ant-tree-switcher {background: #fff;}
+.ant-tree-rtl.ant-tree-show-line .ant-tree-indent-unit::before {border-right: none;border-left: 1px solid #d9d9d9;}
+.font-highlight {color: #ff4d4f;}
+.ant-select-tree-checkbox {color: rgba(0, 0, 0, 0.85);}
+.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 {border: 1px solid #1890ff;border-radius: 2px;}
+.ant-select-tree-checkbox-inner {background-color: #fff;border: 1px solid #d9d9d9;border-radius: 2px;border-collapse: separate;}
+.ant-select-tree-checkbox-inner::after {border: 2px solid #fff;border-top: 0;border-left: 0;}
+.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner::after {border: 2px solid #fff;border-top: 0;border-left: 0;}
+.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner {background-color: #1890ff;border-color: #1890ff;}
+.ant-select-tree-checkbox-disabled.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner::after {border-color: rgba(0, 0, 0, 0.25);}
+.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;}
+.ant-select-tree-checkbox-disabled + span {color: rgba(0, 0, 0, 0.25);}
+.ant-select-tree-checkbox-wrapper {color: rgba(0, 0, 0, 0.85);}
+.ant-select-tree-checkbox-group {color: rgba(0, 0, 0, 0.85);}
+.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 {background-color: #1890ff;border: 0;}
+.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 .ant-select-tree {border-radius: 0;}
+.ant-select-tree {color: rgba(0, 0, 0, 0.85);background: #fff;border-radius: 2px;}
+.ant-select-tree-focused:not(:hover):not(.ant-select-tree-active-focused) {background: #e6f7ff;}
+.ant-select-tree .ant-select-tree-treenode-disabled .ant-select-tree-node-content-wrapper {color: rgba(0, 0, 0, 0.25);}
+.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 .ant-select-tree-treenode:not(.ant-select-tree .ant-select-tree-treenode-disabled).filter-node .ant-select-tree-title {color: inherit;}
+.ant-select-tree-switcher-loading-icon {color: #1890ff;}
+.ant-select-tree-switcher-leaf-line::before {border-left: 1px solid #d9d9d9;}
+.ant-select-tree-switcher-leaf-line::after {border-bottom: 1px solid #d9d9d9;}
+.ant-select-tree .ant-select-tree-node-content-wrapper {color: inherit;background: transparent;border-radius: 2px;}
+.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-unselectable .ant-select-tree-node-content-wrapper:hover {background-color: transparent;}
+.ant-select-tree-node-content-wrapper[draggable='true'] .ant-tree-drop-indicator {background-color: #1890ff;border-radius: 1px;}
+.ant-select-tree-node-content-wrapper[draggable='true'] .ant-tree-drop-indicator::after {background-color: transparent;border: 2px solid #1890ff;border-radius: 50%;}
+.ant-select-tree .ant-select-tree-treenode.drop-container > [draggable] {box-shadow: 0 0 0 2px #1890ff;}
+.ant-select-tree-show-line .ant-select-tree-indent-unit::before {border-right: 1px solid #d9d9d9;}
+.ant-select-tree-show-line .ant-select-tree-switcher {background: #fff;}
+.ant-tree.ant-select-tree.ant-tree-show-line nz-tree-node[builtin]:not(:last-child) > li::before {border-left: 1px solid #d9d9d9;}
+.ant-picker-calendar {color: rgba(0, 0, 0, 0.85);background: #fff;}
+.ant-picker-calendar .ant-picker-panel {background: #fff;border: 0;border-top: 1px solid #f0f0f0;border-radius: 0;}
+.ant-picker-calendar-mini {border-radius: 2px;}
+.ant-picker-calendar-mini .ant-picker-panel {border-radius: 0 0 2px 2px;}
+.ant-picker-calendar-full .ant-picker-panel {background: #fff;border: 0;}
+.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-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 {border: 0;border-top: 2px solid #f0f0f0;border-radius: 0;}
+.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-content {color: rgba(0, 0, 0, 0.85);}
+.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.85);}
+.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-title {color: rgba(0, 0, 0, 0.85);}
+.ant-result-subtitle {color: rgba(0, 0, 0, 0.45);}
+.ant-result-content {background-color: #fafafa;}
+.ant-image-img-placeholder {background-color: #f5f5f5;background-repeat: no-repeat;background-position: center center;background-size: 30%;}
+.ant-image-mask {color: #fff;background: rgba(0, 0, 0, 0.5);}
+.ant-image-preview-mask {background-color: rgba(0, 0, 0, 0.45);}
+.ant-image-preview-mask {background-color: rgba(0, 0, 0, 0.45);}
+.ant-image-preview-operations {color: rgba(0, 0, 0, 0.85);color: rgba(255, 255, 255, 0.85);background: rgba(0, 0, 0, 0.1);}
+.ant-image-preview-operations-operation-disabled {color: rgba(255, 255, 255, 0.25);}
+.ant-image-preview-switch-left, .ant-image-preview-switch-right {color: rgba(255, 255, 255, 0.85);background: rgba(0, 0, 0, 0.1);border-radius: 50%;}
+.ant-image-preview-switch-left-disabled, .ant-image-preview-switch-right-disabled {color: rgba(255, 255, 255, 0.25);}
+.drawer-footer {background: #fff;border-top: 1px solid #f0f0f0;border-radius: 0 0 2px 2px;}
+.ant-form-item-label em {color: #bfbfbf;}
+.modal-header {background: #fff;border-bottom: 1px solid #f0f0f0;border-radius: 2px 2px 0 0;}
+.modal-title {color: rgba(0, 0, 0, 0.85);}
+.modal-title small {color: #8c8c8c;}
+.modal-footer {border-top: 1px solid #f0f0f0;border-radius: 0 0 2px 2px;}
+.ant-table td > img, .ant-table td .img {border-radius: 4px;}
+.ant-tag__plus .ant-tag {background: #fff;border-style: dashed;}
+fieldset {border: none;}
+.header-dropdown {background-color: #fff;border-radius: 4px;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);}
+.sf__optional {color: rgba(0, 0, 0, 0.35);}
+.sf__array-container .ant-card .sf__array-remove {background: rgba(0, 0, 0, 0.26);border-radius: 50%;}
+.sf__array-container .ant-card .sf__array-remove i {color: #fff;}
+.sf .ant-upload-select-picture-card i {color: #999;}
+.sf .ant-transfer-list {background: #fff;}
+.setting-drawer__content {background: #fff;}
+.setting-drawer__title {color: rgba(0, 0, 0, 0.85);}
+.setting-drawer__theme-tag {color: #fff;border-radius: 2px;}
+.setting-drawer__handle {background: #1890ff;border-radius: 4px 0 0 4px;}
+.setting-drawer__handle-icon {color: #fff;}
+.setting-drawer-rtl .setting-drawer__handle {border-radius: 0 4px 4px 0;}
+.theme-btn-active {color: #1890ff;}
+.theme-btn .ant-avatar {color: #000;background-color: #fff;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);}
+.theme-btn .ant-avatar:hover {color: #1890ff;}
+.yn__yes {color: #1890ff;}
+.yn__no {color: #8c8c8c;}
+.border {border: 1px solid #f0f0f0 !important;}
+.border-0 {border: 0 !important;}
+.border-top-0 {border-top: 0 !important;}
+.border-right-0 {border-right: 0 !important;}
+.border-bottom-0 {border-bottom: 0 !important;}
+.border-left-0 {border-left: 0 !important;}
+.border-1 {border: 1px solid #f0f0f0 !important;}
+.border-top-1 {border-top: 1px solid #f0f0f0 !important;}
+.border-right-1 {border-right: 1px solid #f0f0f0 !important;}
+.border-bottom-1 {border-bottom: 1px solid #f0f0f0 !important;}
+.border-left-1 {border-left: 1px solid #f0f0f0 !important;}
+.border-red {border-color: #f5222d !important;}
+.border-volcano {border-color: #fa541c !important;}
+.border-orange {border-color: #fa8c16 !important;}
+.border-gold {border-color: #faad14 !important;}
+.border-yellow {border-color: #fadb14 !important;}
+.border-lime {border-color: #a0d911 !important;}
+.border-green {border-color: #52c41a !important;}
+.border-cyan {border-color: #13c2c2 !important;}
+.border-blue {border-color: #1890ff !important;}
+.border-geekblue {border-color: #2f54eb !important;}
+.border-purple {border-color: #722ed1 !important;}
+.border-magenta {border-color: #eb2f96 !important;}
+.border-grey {border-color: #bfbfbf !important;}
+.border-primary {border-color: #1890ff !important;}
+.border-success {border-color: #52c41a !important;}
+.border-error {border-color: #ff4d4f !important;}
+.border-warning {border-color: #faad14 !important;}
+.border-info {border-color: #1890ff !important;}
+.border-processing {border-color: #1890ff !important;}
+.border-highlight {border-color: #ff4d4f !important;}
+.border-normal {border-color: #d9d9d9 !important;}
+.rounded-sm {border-radius: 2px;}
+.rounded-top-left-sm {border-top-left-radius: 2px;}
+.rounded-top-right-sm {border-top-right-radius: 2px;}
+.rounded-bottom-left-sm {border-bottom-left-radius: 2px;}
+.rounded-bottom-right-sm {border-bottom-right-radius: 2px;}
+.rounded-md {border-radius: 2px;}
+.rounded-top-left-md {border-top-left-radius: 2px;}
+.rounded-top-right-md {border-top-right-radius: 2px;}
+.rounded-bottom-left-md {border-bottom-left-radius: 2px;}
+.rounded-bottom-right-md {border-bottom-right-radius: 2px;}
+.rounded-lg {border-radius: 4px;}
+.rounded-top-left-lg {border-top-left-radius: 4px;}
+.rounded-top-right-lg {border-top-right-radius: 4px;}
+.rounded-bottom-left-lg {border-bottom-left-radius: 4px;}
+.rounded-bottom-right-lg {border-bottom-right-radius: 4px;}
+.rounded-circle {border-radius: 50%;}
+.rounded-0 {border-radius: 0;}
+.border-white {border-color: #fff !important;}
+code {background-color: #f7f7f7;border: 1px solid #eee;border-radius: 2px;}
+.bg-white {background-color: #fff !important;}
+.bg-transparent {background-color: transparent !important;}
+.text-white {color: #fff !important;}
+.text-hover:hover {color: #1890ff !important;}
+.bg-red-light {background-color: #ff4d4f !important;}
+.bg-red {background-color: #f5222d !important;}
+.bg-red-dark {background-color: #cf1322 !important;}
+.bg-red-light-h:hover {background-color: #ff4d4f !important;}
+.bg-red-h:hover {background-color: #f5222d !important;}
+.bg-red-dark-h:hover {background-color: #cf1322 !important;}
+.text-red-light {color: #ff4d4f !important;}
+.text-red {color: #f5222d !important;}
+.text-red-dark {color: #cf1322 !important;}
+.bg-volcano-light {background-color: #ff7a45 !important;}
+.bg-volcano {background-color: #fa541c !important;}
+.bg-volcano-dark {background-color: #d4380d !important;}
+.bg-volcano-light-h:hover {background-color: #ff7a45 !important;}
+.bg-volcano-h:hover {background-color: #fa541c !important;}
+.bg-volcano-dark-h:hover {background-color: #d4380d !important;}
+.text-volcano-light {color: #ff7a45 !important;}
+.text-volcano {color: #fa541c !important;}
+.text-volcano-dark {color: #d4380d !important;}
+.bg-orange-light {background-color: #ffa940 !important;}
+.bg-orange {background-color: #fa8c16 !important;}
+.bg-orange-dark {background-color: #d46b08 !important;}
+.bg-orange-light-h:hover {background-color: #ffa940 !important;}
+.bg-orange-h:hover {background-color: #fa8c16 !important;}
+.bg-orange-dark-h:hover {background-color: #d46b08 !important;}
+.text-orange-light {color: #ffa940 !important;}
+.text-orange {color: #fa8c16 !important;}
+.text-orange-dark {color: #d46b08 !important;}
+.bg-gold-light {background-color: #ffc53d !important;}
+.bg-gold {background-color: #faad14 !important;}
+.bg-gold-dark {background-color: #d48806 !important;}
+.bg-gold-light-h:hover {background-color: #ffc53d !important;}
+.bg-gold-h:hover {background-color: #faad14 !important;}
+.bg-gold-dark-h:hover {background-color: #d48806 !important;}
+.text-gold-light {color: #ffc53d !important;}
+.text-gold {color: #faad14 !important;}
+.text-gold-dark {color: #d48806 !important;}
+.bg-yellow-light {background-color: #ffec3d !important;}
+.bg-yellow {background-color: #fadb14 !important;}
+.bg-yellow-dark {background-color: #d4b106 !important;}
+.bg-yellow-light-h:hover {background-color: #ffec3d !important;}
+.bg-yellow-h:hover {background-color: #fadb14 !important;}
+.bg-yellow-dark-h:hover {background-color: #d4b106 !important;}
+.text-yellow-light {color: #ffec3d !important;}
+.text-yellow {color: #fadb14 !important;}
+.text-yellow-dark {color: #d4b106 !important;}
+.bg-lime-light {background-color: #bae637 !important;}
+.bg-lime {background-color: #a0d911 !important;}
+.bg-lime-dark {background-color: #7cb305 !important;}
+.bg-lime-light-h:hover {background-color: #bae637 !important;}
+.bg-lime-h:hover {background-color: #a0d911 !important;}
+.bg-lime-dark-h:hover {background-color: #7cb305 !important;}
+.text-lime-light {color: #bae637 !important;}
+.text-lime {color: #a0d911 !important;}
+.text-lime-dark {color: #7cb305 !important;}
+.bg-green-light {background-color: #73d13d !important;}
+.bg-green {background-color: #52c41a !important;}
+.bg-green-dark {background-color: #389e0d !important;}
+.bg-green-light-h:hover {background-color: #73d13d !important;}
+.bg-green-h:hover {background-color: #52c41a !important;}
+.bg-green-dark-h:hover {background-color: #389e0d !important;}
+.text-green-light {color: #73d13d !important;}
+.text-green {color: #52c41a !important;}
+.text-green-dark {color: #389e0d !important;}
+.bg-cyan-light {background-color: #36cfc9 !important;}
+.bg-cyan {background-color: #13c2c2 !important;}
+.bg-cyan-dark {background-color: #08979c !important;}
+.bg-cyan-light-h:hover {background-color: #36cfc9 !important;}
+.bg-cyan-h:hover {background-color: #13c2c2 !important;}
+.bg-cyan-dark-h:hover {background-color: #08979c !important;}
+.text-cyan-light {color: #36cfc9 !important;}
+.text-cyan {color: #13c2c2 !important;}
+.text-cyan-dark {color: #08979c !important;}
+.bg-blue-light {background-color: #40a9ff !important;}
+.bg-blue {background-color: #1890ff !important;}
+.bg-blue-dark {background-color: #096dd9 !important;}
+.bg-blue-light-h:hover {background-color: #40a9ff !important;}
+.bg-blue-h:hover {background-color: #1890ff !important;}
+.bg-blue-dark-h:hover {background-color: #096dd9 !important;}
+.text-blue-light {color: #40a9ff !important;}
+.text-blue {color: #1890ff !important;}
+.text-blue-dark {color: #096dd9 !important;}
+.bg-geekblue-light {background-color: #597ef7 !important;}
+.bg-geekblue {background-color: #2f54eb !important;}
+.bg-geekblue-dark {background-color: #1d39c4 !important;}
+.bg-geekblue-light-h:hover {background-color: #597ef7 !important;}
+.bg-geekblue-h:hover {background-color: #2f54eb !important;}
+.bg-geekblue-dark-h:hover {background-color: #1d39c4 !important;}
+.text-geekblue-light {color: #597ef7 !important;}
+.text-geekblue {color: #2f54eb !important;}
+.text-geekblue-dark {color: #1d39c4 !important;}
+.bg-purple-light {background-color: #9254de !important;}
+.bg-purple {background-color: #722ed1 !important;}
+.bg-purple-dark {background-color: #531dab !important;}
+.bg-purple-light-h:hover {background-color: #9254de !important;}
+.bg-purple-h:hover {background-color: #722ed1 !important;}
+.bg-purple-dark-h:hover {background-color: #531dab !important;}
+.text-purple-light {color: #9254de !important;}
+.text-purple {color: #722ed1 !important;}
+.text-purple-dark {color: #531dab !important;}
+.bg-magenta-light {background-color: #f759ab !important;}
+.bg-magenta {background-color: #eb2f96 !important;}
+.bg-magenta-dark {background-color: #c41d7f !important;}
+.bg-magenta-light-h:hover {background-color: #f759ab !important;}
+.bg-magenta-h:hover {background-color: #eb2f96 !important;}
+.bg-magenta-dark-h:hover {background-color: #c41d7f !important;}
+.text-magenta-light {color: #f759ab !important;}
+.text-magenta {color: #eb2f96 !important;}
+.text-magenta-dark {color: #c41d7f !important;}
+.bg-grey-light {background-color: #d9d9d9 !important;}
+.bg-grey {background-color: #bfbfbf !important;}
+.bg-grey-dark {background-color: #8c8c8c !important;}
+.bg-grey-light-h:hover {background-color: #d9d9d9 !important;}
+.bg-grey-h:hover {background-color: #bfbfbf !important;}
+.bg-grey-dark-h:hover {background-color: #8c8c8c !important;}
+.text-grey-light {color: #d9d9d9 !important;}
+.text-grey {color: #bfbfbf !important;}
+.text-grey-dark {color: #8c8c8c !important;}
+.bg-primary-light {background-color: #40a9ff !important;}
+.bg-primary {background-color: #1890ff !important;}
+.bg-primary-dark {background-color: #096dd9 !important;}
+.bg-primary-h:hover {background-color: #1890ff !important;}
+.text-primary-light {color: #40a9ff !important;}
+.text-primary {color: #1890ff !important;}
+.text-primary-dark {color: #096dd9 !important;}
+.bg-success-light {background-color: #73d13d !important;}
+.bg-success {background-color: #52c41a !important;}
+.bg-success-dark {background-color: #389e0d !important;}
+.bg-success-h:hover {background-color: #52c41a !important;}
+.text-success-light {color: #73d13d !important;}
+.text-success {color: #52c41a !important;}
+.text-success-dark {color: #389e0d !important;}
+.bg-error-light {background-color: #ff7875 !important;}
+.bg-error {background-color: #ff4d4f !important;}
+.bg-error-dark {background-color: #d9363e !important;}
+.bg-error-h:hover {background-color: #ff4d4f !important;}
+.text-error-light {color: #ff7875 !important;}
+.text-error {color: #ff4d4f !important;}
+.text-error-dark {color: #d9363e !important;}
+.bg-warning-light {background-color: #ffc53d !important;}
+.bg-warning {background-color: #faad14 !important;}
+.bg-warning-dark {background-color: #d48806 !important;}
+.bg-warning-h:hover {background-color: #faad14 !important;}
+.text-warning-light {color: #ffc53d !important;}
+.text-warning {color: #faad14 !important;}
+.text-warning-dark {color: #d48806 !important;}
+.bg-info-light {background-color: #40a9ff !important;}
+.bg-info {background-color: #1890ff !important;}
+.bg-info-dark {background-color: #096dd9 !important;}
+.bg-info-h:hover {background-color: #1890ff !important;}
+.text-info-light {color: #40a9ff !important;}
+.text-info {color: #1890ff !important;}
+.text-info-dark {color: #096dd9 !important;}
+.bg-processing-light {background-color: #40a9ff !important;}
+.bg-processing {background-color: #1890ff !important;}
+.bg-processing-dark {background-color: #096dd9 !important;}
+.bg-processing-h:hover {background-color: #1890ff !important;}
+.text-processing-light {color: #40a9ff !important;}
+.text-processing {color: #1890ff !important;}
+.text-processing-dark {color: #096dd9 !important;}
+.bg-highlight-light {background-color: #ff7875 !important;}
+.bg-highlight {background-color: #ff4d4f !important;}
+.bg-highlight-dark {background-color: #d9363e !important;}
+.bg-highlight-h:hover {background-color: #ff4d4f !important;}
+.text-highlight-light {color: #ff7875 !important;}
+.text-highlight {color: #ff4d4f !important;}
+.text-highlight-dark {color: #d9363e !important;}
+.bg-normal-light {background-color: #e6d8d8 !important;}
+.bg-normal {background-color: #d9d9d9 !important;}
+.bg-normal-dark {background-color: #b3a8a8 !important;}
+.bg-normal-h:hover {background-color: #d9d9d9 !important;}
+.text-normal-light {color: #e6d8d8 !important;}
+.text-normal {color: #d9d9d9 !important;}
+.text-normal-dark {color: #b3a8a8 !important;}
+.bg-grey-lighter {background-color: #f5f5f5 !important;}
+.bg-grey-lighter-h:hover {background-color: #f5f5f5 !important;}
+.text-grey-lighter {color: #f5f5f5 !important;}
+.bg-grey-darker {background-color: #262626 !important;}
+.bg-grey-darker-h:hover {background-color: #262626 !important;}
+.text-grey-darker {color: #262626 !important;}
+.no-data {color: rgba(0, 0, 0, 0.25);}
+.bg-center {background-position: center center;background-size: cover;}
+.page-loading {background: #f5f5f5;}
+.disabled {color: rgba(0, 0, 0, 0.25);}
+body, .scrollbar, .ant-dialog-wrap, .ant-drawer-body, .ant-drawer-wrapper-body, .ant-anchor-wrapper,
+textarea.ant-input {scrollbar-color: rgba(0, 0, 0, 0.3) #6e6e6e;}
+body::-webkit-scrollbar-track, .scrollbar::-webkit-scrollbar-track, .ant-dialog-wrap::-webkit-scrollbar-track, .ant-drawer-body::-webkit-scrollbar-track, .ant-drawer-wrapper-body::-webkit-scrollbar-track, .ant-anchor-wrapper::-webkit-scrollbar-track,
+textarea.ant-input::-webkit-scrollbar-track {box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);}
+body::-webkit-scrollbar-thumb, .scrollbar::-webkit-scrollbar-thumb, .ant-dialog-wrap::-webkit-scrollbar-thumb, .ant-drawer-body::-webkit-scrollbar-thumb, .ant-drawer-wrapper-body::-webkit-scrollbar-thumb, .ant-anchor-wrapper::-webkit-scrollbar-thumb,
+textarea.ant-input::-webkit-scrollbar-thumb {background-color: #6e6e6e;}
+.st__btn-sub .st__btn-text {color: inherit;}
+.st__btn-disabled .st__btn-text {color: rgba(0, 0, 0, 0.25);}
+.st .nz-resizable-handle > i {background: #d9d9d9;}
+.st .nz-resizable-preview {border-width: 0;border-right-width: 1px;}
+.st__head-optional, .st__head-tip {color: rgba(0, 0, 0, 0.35);}
+.st .ant-table-thead > tr > th .ant-table-filter-selected.ant-table-filter-icon {color: #1890ff;}
+.st .ant-table-tbody > tr .ant-table-wrapper:only-child .ant-table-tbody > tr:last-child > td {border-bottom: 1px solid #f0f0f0;}
+.sv__title {color: rgba(0, 0, 0, 0.85);}
+.sv__label {color: rgba(0, 0, 0, 0.5);}
+.sv__label-optional {color: rgba(0, 0, 0, 0.35);}
+.sv__detail {color: rgba(0, 0, 0, 0.85);}
+.sv__type-primary .sv__detail {color: #1890ff;}
+.sv__type-success .sv__detail {color: #52c41a;}
+.sv__type-danger .sv__detail {color: #ff4d4f;}
+.sv__type-warning .sv__detail {color: #faad14;}
+.sv__unit {color: #8c8c8c;}
+.sv__small .sv__title {color: rgba(0, 0, 0, 0.85);}
+.sv__value-prefix, .sv__value-unit {color: rgba(0, 0, 0, 0.5);}
+.sv__value:not(:first-child)::before {color: rgba(0, 0, 0, 0.5);}
+.se__title {color: rgba(0, 0, 0, 0.85);}
+.se__label-optional {color: rgba(0, 0, 0, 0.35);}
+.se__line {border-bottom: 1px dashed #f0f0f0;}
+.avatar-list__item .ant-avatar {border: 1px solid #fff;}
+.ellipsis__shadow {color: transparent;}
+.error-collect {color: #f5222d;}
+.exception__img {background-repeat: no-repeat;background-position: 50% 50%;background-size: 100% 100%;}
+.exception__cont-title {color: #434e59;}
+.exception__cont-desc {color: rgba(0, 0, 0, 0.45);}
+.footer-toolbar {background: #fff;border-top: 1px solid #f0f0f0;box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.03);}
+.global-footer__links-item {color: rgba(0, 0, 0, 0.45);}
+.global-footer__links-item:hover {color: rgba(0, 0, 0, 0.85);}
+.global-footer__copyright {color: rgba(0, 0, 0, 0.45);}
+.notice-icon .ant-list-item:last-child {border-bottom: 0;}
+.notice-icon .ant-list-item:hover {background: #e6f7ff;}
+.notice-icon .ant-list-item .ant-avatar {background: #fff;}
+.notice-icon__notfound {color: rgba(0, 0, 0, 0.45);}
+.notice-icon__clear {color: rgba(0, 0, 0, 0.85);border-top: 1px solid #f0f0f0;border-radius: 0 0 2px 2px;}
+.notice-icon__clear:hover {color: rgba(0, 0, 0, 0.85);}
+.notice-icon__item-extra {color: rgba(0, 0, 0, 0.45);}
+.page-header {background-color: #fff;border-bottom: 1px solid #f0f0f0;}
+.page-header .ant-tabs-bar {border-bottom: 1px solid #f0f0f0;}
+.page-header__logo img {border-radius: 2px;}
+.page-header__title {color: rgba(0, 0, 0, 0.85);}
+.quick-menu, .quick-menu__ctrl {background-color: #fff;border: 1px solid #fff;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);}
+.quick-menu__ctrl {border-right: 0;border-radius: 3px 0 0 3px;}
+.result__icon-success {color: #52c41a;}
+.result__icon-error {color: #ff4d4f;}
+.result__title {color: rgba(0, 0, 0, 0.85);}
+.result__desc {color: rgba(0, 0, 0, 0.45);}
+.result__extra {background: #fafafa;border-radius: 2px;}
+.result .ant-steps .ant-steps-head, .result .ant-steps .ant-steps-title {background: #fafafa;}
+.reuse-tab {background-color: #fff;}
+.reuse-tab .ant-tabs-nav .ant-tabs-tab .reuse-tab__op {color: rgba(0, 0, 0, 0.85);}
+.reuse-tab__line {border-bottom: 1px solid #d9d9d9;}
+.reuse-tab__line .ant-tabs-nav::before {border-bottom: none;}
+.reuse-tab__cm .ant-menu {border: 1px solid #e9e9e9;}
+.loading-backdrop {background-color: rgba(0, 0, 0, 0.15);}
+.loading-default__icon {color: #1890ff;}
+.loading-default__text {color: #1890ff;}
+.onboarding__mask {background-color: #000;}
+.onboarding__light {background-color: rgba(255, 255, 255, 0.9);}
+.onboarding__total {color: rgba(0, 0, 0, 0.85);}
+.g2-card__meta {color: rgba(0, 0, 0, 0.45);}
+.g2-card__avatar img {border-radius: 100%;}
+.g2-card__total {color: rgba(0, 0, 0, 0.85);}
+.g2-card__footer {border-top: 1px solid #f0f0f0;}
+.g2-mini-progress__wrap {background-color: #f5f5f5;}
+.g2-mini-progress__value {background-color: #1890ff;border-radius: 1px 0 0 1px;}
+.g2-mini-progress__target-item {border-radius: 100px;}
+.g2-pie__legend-title {color: rgba(0, 0, 0, 0.85);}
+.g2-pie__legend-dot {border-radius: 8px;}
+.g2-pie__legend-percent {color: rgba(0, 0, 0, 0.45);}
+.g2-pie__total-title {color: rgba(0, 0, 0, 0.45);}
+.g2-pie__total-stat {color: rgba(0, 0, 0, 0.85);}
+.g2-radar__legend-item {color: rgba(0, 0, 0, 0.45);}
+.g2-radar__legend-item::after {background-color: #f0f0f0;}
+.g2-radar__legend-title {color: rgba(0, 0, 0, 0.85);}
+.g2-radar__legend-dot {border-radius: 6px;}
+.g2-water-wave__desc-title {color: rgba(0, 0, 0, 0.45);}
+.g2-water-wave__desc-percent {color: rgba(0, 0, 0, 0.85);}
+.number-info__title {color: rgba(0, 0, 0, 0.85);}
+.number-info__title-sub {color: rgba(0, 0, 0, 0.45);}
+.number-info__value-suffix {color: rgba(0, 0, 0, 0.85);}
+.number-info__value-text {color: rgba(0, 0, 0, 0.85);}
+.number-info__value-sub {color: rgba(0, 0, 0, 0.45);}
+.number-info__value-sub .anticon-caret-up {color: #f5222d;}
+.number-info__value-sub .anticon-caret-down {color: #52c41a;}
+.number-info__light .number-info__value-text {color: rgba(0, 0, 0, 0.85);}
+.number-info:not(:first-child)::after {background-color: #f0f0f0;}
+.trend__up {color: #f5222d;}
+.trend__down {color: #52c41a;}
+.trend__grey .trend__up, .trend__grey .trend__down {color: rgba(0, 0, 0, 0.85);}
+.trend__reverse .trend__up {color: #52c41a;}
+.trend__reverse .trend__down {color: #f5222d;}
+.alain-pro__menu-title-badge {background: #1890ff;border-radius: 50%;}
+.alain-pro__menu-title-badge > em {color: #fff;}
+.alain-pro__main {background-color: #f8f8f8;}
+.alain-pro__header {background: #fff;box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08);}
+.alain-pro__header-item, .alain-pro__header-item-icon {color: rgba(0, 0, 0, 0.65);}
+.alain-pro__header-item:hover {background: rgba(0, 0, 0, 0.025);}
+.alain-pro__header-item:hover, .alain-pro__header-item:hover .alain-pro__header-item-icon {color: #000;}
+.alain-pro__header-search:hover {background: transparent;}
+.alain-pro__top-nav {box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08);}
+.alain-pro__top-nav .alain-pro__menu .ant-menu {border: none;}
+.alain-pro__top-nav-logo h1 {color: #fff;}
+.alain-pro__dark .alain-pro__top-nav .alain-pro__header-item, .alain-pro__dark .alain-pro__top-nav .alain-pro__header-item-icon {color: rgba(255, 255, 255, 0.65);}
+.alain-pro__dark .alain-pro__top-nav .alain-pro__header-item:hover, .alain-pro__dark .alain-pro__top-nav .alain-pro__header-item .ant-popover-open {background: #1890ff;}
+.alain-pro__dark .alain-pro__top-nav .alain-pro__header-item:hover .alain-pro__header-item, .alain-pro__dark .alain-pro__top-nav .alain-pro__header-item .ant-popover-open .alain-pro__header-item, .alain-pro__dark .alain-pro__top-nav .alain-pro__header-item:hover .alain-pro__header-item-icon, .alain-pro__dark .alain-pro__top-nav .alain-pro__header-item .ant-popover-open .alain-pro__header-item-icon {color: #fff;}
+.alain-pro__light .alain-pro__top-nav {background-color: #fff;}
+.alain-pro__light .alain-pro__top-nav h1 {color: #002140;}
+.alain-pro__sider {box-shadow: 2px 0 6px rgba(0, 21, 41, 0.35);}
+.alain-pro__sider-logo {background: #002140;}
+.alain-pro__sider-logo h1 {color: white;}
+.alain-pro__light .alain-pro__sider {background-color: #fff;box-shadow: 2px 0 8px 0 rgba(29, 35, 41, 0.05);}
+.alain-pro__light .alain-pro__sider-logo {background: #fff;box-shadow: 1px 1px 0 0 #f0f0f0;}
+.alain-pro__light .alain-pro__sider-logo h1 {color: #1890ff;}
+.alain-pro__light .alain-pro__sider .ant-menu-light {border-right-color: transparent;}
+.alain-pro__sider-fixed .alain-pro__side-nav-wrap::-webkit-scrollbar-track {-webkit-box-shadow: inset 0 0 0 transparent;}
+.alain-pro__sider-fixed .alain-pro__side-nav-wrap::-webkit-scrollbar-thumb {background-color: transparent;}
+.btn-flat {background: transparent !important;border-color: transparent !important;box-shadow: none !important;}
+.setting-drawer__blockChecbox-item {border-radius: 2px;}
+.setting-drawer__blockChecbox-selectIcon {color: #1890ff;}
+.setting-drawer__handle {background: rgba(0, 0, 0, 0.38);}
+.alain-pro__header-search-input {background: transparent;border-radius: 0;}
+.alain-pro__header-search-input .ant-select-selection {background: transparent;}
+.alain-pro__header-search-input input {background: transparent;border: 0;box-shadow: none;}
+.alain-pro__header-search-input, .alain-pro__header-search-input:hover, .alain-pro__header-search-input:focus {border-bottom: 1px solid #d9d9d9;}
+.alain-pro__header-search-show:hover {background: none !important;}
+.alain-pro__dark .alain-pro__top-nav .alain-pro__header-search-show .ant-input {color: #fff;}
+.brand-bordered {border: 1px solid rgba(24, 28, 33, 0.06);}
+.brand-bordered > [class*='ant-col-']::before {border-top: 1px solid rgba(24, 28, 33, 0.06);}
+.brand-bordered > [class*='ant-col-']::after {border-left: 1px solid rgba(24, 28, 33, 0.06);}
+.brand-border-width-2 {border-width: 2px !important;}
+.dd-btn {color: #bfbfbf;border-radius: 50%;}
+.dd-btn:hover {background: #f5f5f5;border: 1px solid #f0f0f0;}
+.attachment {border: 1px solid #e8e8e8;}
+.attachment-img {background-color: transparent;background-position: center center;background-size: cover;}
+.img-thm {background-color: transparent;}
+.img-thm__mask {background-color: rgba(0, 0, 0, 0.3);}
+.img-thm__icon {color: #fff;}
+.quill-editor.ng-dirty.ng-invalid .ql-toolbar, .quill-editor.ng-dirty.ng-invalid .ql-container {border-color: #ff4d4f;}
+app-file-manager file-manager {background: #fff;}
+.file-manager__header {border-bottom: 2px solid rgba(0, 0, 0, 0.05);}
+.file-manager__small .file-item__pixel > span {background: none;}
+.file-item {border: 1px solid transparent;}
+.file-item:hover {border-color: rgba(0, 0, 0, 0.05);}
+.file-item__selected {background-color: #e6f7ff !important;border-color: #1890ff !important;}
+.file-item__img {background-color: transparent;background-position: center center;background-size: cover;}
+.file-item__name {color: #4e5155;}
+.file-item__pixel > span {background: rgba(0, 0, 0, 0.01);}
+.ware__imgs-item {border: 1px solid #ccc;}
+.ware__imgs-item-del {color: #fff;}
+.ware__imgs-item::before {color: #ccc;}
+.faq-v1__item-remark {color: #bfbfbf;}
+.faq-v1__item-hover {background-color: rgba(0, 0, 0, 0.02);}
+.faq-v1__item-hover:hover {background-color: rgba(0, 0, 0, 0.04);}
+.faq-v1__item-hover:hover .faq__item-icon, .faq-v1__item-hover:hover .faq__item-title {color: #1890ff;}
+.task__container {border-bottom: 1px solid #f0f0f0;}
+.task__container:last-child {border-bottom: none;}
+.task__title {color: #a3a4a6;}
+.task__item {border-top: 1px solid rgba(24, 28, 33, 0.06);}
+.task__item:first-child {border-top: none;}
+.task__item-handle {color: #bfbfbf;}
+.task__item-done {color: #a3a4a6;}
+.message__sidebox {background: #f5f5f5;}
+.message__tools {border-top: 1px solid #d9d9d9;border-bottom: 1px solid #d9d9d9;}
+.message__item {border-top: 1px solid #f0f0f0;}
+.message__item:first-child {border-top: none;}
+.message__item-subject {color: #595959;}
+.message__item-subject:hover {color: #1890ff;}
+.message__item-date {color: #bfbfbf;}
+.course__img {background-color: transparent;background-position: center center;background-size: cover;border-top-left-radius: 2px;border-top-right-radius: 2px;}
+.chat__container {background: #fff;border: 1px solid #f0f0f0;}
+.chat__sidebox {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);}
+.chat__contact {color: #4e5155;}
+.chat__contact:hover:not(.chat__contact-active) {background-color: rgba(24, 28, 33, 0.03);}
+.chat__contact .ant-badge-status-text {color: #52c41a;}
+.chat__contact-offline .ant-badge-status-text {color: #f5222d;}
+.chat__contact-active {background-color: #e84c64;}
+.chat__contact-active, .chat__contact-active .ant-badge-status-text {color: #fff;}
+.chat__user-avatar {border-radius: 50%;}
+.chat__message-text {color: #bfbfbf;}
+.chat__message-time {color: #bfbfbf;}
+.chat__message-msg {background: #f5f5f5;border-radius: 4px;}
+.fc-antd a {color: inherit;}
+.fc-antd th, .fc-antd td, .fc-antd .fc-scrollgrid {border: 1px solid #f0f0f0;}
+.fc-antd .fc-col-header-cell {color: rgba(0, 0, 0, 0.85);}
+.fc-antd .fc-day.fc-day-today {background: rgba(232, 232, 232, 0.2);}
+.fc-antd .fc-event {background: #fff;border: 1px solid #f0f0f0;box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.055);}
+.fc-antd .fc-event-title-container::before {background: rgba(0, 0, 0, 0.2);border-radius: 50%;}
+.fc-antd .fc-event-title {color: rgba(0, 0, 0, 0.85);}
+.fc-antd .fc-event-primary .fc-event-title-container::before {background-color: #1890ff;}
+.fc-antd .fc-event-fill-primary {background-color: #1890ff;}
+.fc-antd .fc-event-success .fc-event-title-container::before {background-color: #52c41a;}
+.fc-antd .fc-event-fill-success {background-color: #52c41a;}
+.fc-antd .fc-event-danger .fc-event-title-container::before {background-color: #f5222d;}
+.fc-antd .fc-event-fill-danger {background-color: #f5222d;}
+.fc-antd .fc-event-warning .fc-event-title-container::before {background-color: #fadb14;}
+.fc-antd .fc-event-fill-warning {background-color: #fadb14;}
+.fc-antd .fc-event-purple .fc-event-title-container::before {background-color: #722ed1;}
+.fc-antd .fc-event-fill-purple {background-color: #722ed1;}
+.fc-antd .fc-event-magenta .fc-event-title-container::before {background-color: #eb2f96;}
+.fc-antd .fc-event-fill-magenta {background-color: #eb2f96;}
+.fc-antd .fc-popover-header {background: #eee;}
+.fc-antd .fc-popover-body {background: #fff;}
+.pro-passport__langs .anticon {color: #fff !important;}
+.pro-passport__bg {background-color: transparent;background-position: center center;background-size: cover;}
+.pro-passport__bg-overlay {background: #000;}
+.pro-passport__form-title {color: #bfbfbf;}
+.quick-chat {background-color: #fff;border: 1px solid #f0f0f0;border-bottom: none;border-radius: 4px 4px 0 0;box-shadow: 0 16px 24px 2px rgba(0, 0, 0, 0.14);}
+.quick-chat__bar {border-bottom: 1px solid #f0f0f0;}
+.quick-chat__bar--title:hover {background-color: #ffffff;}
+.quick-chat__reply {border-top: 1px solid #f0f0f0;}
+.quick-chat__reply--ipt {background: transparent;border: none;}
+.app-dd__op-btn {color: #fff;background: rgba(0, 0, 0, 0.4);border-radius: 0 0 4px 4px;}
+.app-dd__op-btn:hover {background: rgba(0, 0, 0, 0.3);}
+.app-dd__item-btn {background: rgba(0, 0, 0, 0.02);}
+.app-dd__item-design .app-dd__item-handle {background: rgba(0, 0, 0, 0.1);}
+.app-dd__item.cdk-drag-preview {border-radius: 4px;box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);}
diff --git a/src/assets/logo-color.svg b/src/assets/logo-color.svg
new file mode 100644
index 00000000..8944a812
--- /dev/null
+++ b/src/assets/logo-color.svg
@@ -0,0 +1,25 @@
+
+
+
+]>
+
diff --git a/src/assets/logo-full.svg b/src/assets/logo-full.svg
new file mode 100644
index 00000000..c7d83185
--- /dev/null
+++ b/src/assets/logo-full.svg
@@ -0,0 +1,47 @@
+
+
+
+]>
+
diff --git a/src/assets/logo.svg b/src/assets/logo.svg
new file mode 100644
index 00000000..28fa8f6f
--- /dev/null
+++ b/src/assets/logo.svg
@@ -0,0 +1,25 @@
+
+
+
+]>
+
diff --git a/src/assets/mocks/app-data.json b/src/assets/mocks/app-data.json
new file mode 100644
index 00000000..110f30c5
--- /dev/null
+++ b/src/assets/mocks/app-data.json
@@ -0,0 +1,6 @@
+{
+ "app": {
+ "name": "SaaS管理后台",
+ "description": "新供应链 - SaaS管理后台"
+ }
+}
diff --git a/src/assets/mocks/menu-data.json b/src/assets/mocks/menu-data.json
new file mode 100644
index 00000000..dad1d744
--- /dev/null
+++ b/src/assets/mocks/menu-data.json
@@ -0,0 +1,22 @@
+{
+ "menu": [
+ {
+ "text": "主导航",
+ "group": true,
+ "hideInBreadcrumb": true,
+ "children": [
+ {
+ "text": "DEMO页面",
+ "icon": "anticon anticon-dashboard",
+ "link": "/dashboard"
+ },
+ {
+ "text": "快捷菜单",
+ "icon": "anticon anticon-rocket",
+ "shortcutRoot": true,
+ "children": []
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/assets/mocks/user-data.json b/src/assets/mocks/user-data.json
new file mode 100644
index 00000000..7d544ed1
--- /dev/null
+++ b/src/assets/mocks/user-data.json
@@ -0,0 +1,7 @@
+{
+ "user": {
+ "name": "Admin",
+ "avatar": "./assets/tmp/img/avatar.jpg",
+ "email": "cipchk@qq.com"
+ }
+}
diff --git a/src/assets/style.compact.css b/src/assets/style.compact.css
new file mode 100644
index 00000000..d8c35d3e
--- /dev/null
+++ b/src/assets/style.compact.css
@@ -0,0 +1 @@
+.cdk-overlay-container,body,html{height:100%;width:100%}.ant-alert,body,h1,h2,h3,h4,h5,h6{color:rgba(0,0,0,.85)}a,a:active,a:focus,a:hover{outline:0;text-decoration:none}dl,h1,h2,h3,h4,h5,h6,ol,p,pre,ul{margin-top:0}address,dl,ol,p,pre,ul{margin-bottom:1em}.ant-avatar,img{vertical-align:middle}.ant-btn,[role=button],a,area,button,input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}.ant-picker-content,table{border-collapse:collapse}pre,textarea{overflow:auto}dd,h1,h2,h3,h4,h5,h6,legend{margin-bottom:.5em}.ant-badge-status,progress,sub,sup{vertical-align:baseline}[ant-click-animating-without-extra-node=true],[ant-click-animating=true],sub,sup{position:relative}.ant-carousel .slick-slider,.cdk-overlay-backdrop,html{-webkit-tap-highlight-color:transparent}.ant-btn:empty,.ant-carousel .slick-list .slick-slide input.ant-checkbox-input,.ant-carousel .slick-list .slick-slide input.ant-radio-input{visibility:hidden}[class*=ant-] input::-ms-clear,[class*=ant-] input::-ms-reveal,[class*=ant-]::-ms-clear,[class^=ant-] input::-ms-clear,[class^=ant-] input::-ms-reveal,[class^=ant-]::-ms-clear{display:none}input::-ms-clear,input::-ms-reveal{display:none}*,::after,::before{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;--antd-wave-shadow-color:#1890ff;--scroll-bar:0}.ant-pagination-item,body{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'}@-ms-viewport{width:device-width}body{margin:0;font-size:12px;font-variant:tabular-nums;line-height:1.66667;background-color:#fff;font-feature-settings:tnum}[tabindex='-1']:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{font-weight:500}abbr[data-original-title],abbr[title]{text-decoration:underline;text-decoration:underline dotted;border-bottom:0;cursor:help}address{font-style:normal;line-height:inherit}.font-italic,dfn{font-style:italic}input[type=number],input[type=text],input[type=password],textarea{-webkit-appearance:none}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:500}dd{margin-left:0}blockquote,figure{margin:0 0 1em}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{font-size:75%;line-height:0}sub{bottom:-.25em}sup{top:-.5em}a{color:#1890ff;background-color:transparent;cursor:pointer;transition:color .3s;-webkit-text-decoration-skip:objects}a:hover{color:#40a9ff}a:active{color:#096dd9}a[disabled]{color:rgba(0,0,0,.25);cursor:not-allowed}code,kbd,pre,samp{font-size:1em;font-family:SFMono-Regular,Consolas,'Liberation Mono',Menlo,Courier,monospace}img{border-style:none}svg:not(:root){overflow:hidden}caption{padding-top:.75em;padding-bottom:.3em;color:rgba(0,0,0,.45);text-align:left;caption-side:bottom}button,input,optgroup,select,textarea{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=radio],input[type=checkbox]{box-sizing:border-box;padding:0}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:listbox}textarea{resize:vertical}fieldset{min-width:0;margin:0;padding:0}legend{display:block;width:100%;max-width:100%;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}[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}.ant-input-number-handler-down-inner,.ant-input-number-handler-up-inner,.ant-select-arrow,.ant-select-multiple .ant-select-selection-item-remove,.anticon{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}.clearfix::after,.clearfix::before{display:table;content:''}mark{padding:.2em;background-color:#feffe6}::selection{color:#fff;background:#1890ff}.clearfix::after{clear:both}.anticon,.anticon svg{display:inline-block}.anticon{color:inherit;font-style:normal;line-height:0;text-align:center;text-transform:none;vertical-align:-.125em}.anticon>*{line-height:1}.anticon::before{display:none}.anticon .anticon-icon{display:block}.anticon[tabindex]{cursor:pointer}.anticon-spin,.anticon-spin::before{display:inline-block;animation:loadingCircle 1s infinite linear}.ant-fade-appear,.ant-fade-enter,.ant-fade-leave{animation-timing-function:linear}.ant-fade-appear,.ant-fade-enter,.ant-fade-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-fade-appear.ant-fade-appear-active,.ant-fade-enter.ant-fade-enter-active{animation-name:antFadeIn;animation-play-state:running}.ant-fade-leave.ant-fade-leave-active{animation-name:antFadeOut;animation-play-state:running;pointer-events:none}.ant-fade-appear,.ant-fade-enter{opacity:0}@keyframes antFadeIn{0%{opacity:0}100%{opacity:1}}@keyframes antFadeOut{0%{opacity:1}100%{opacity:0}}.ant-move-up-appear,.ant-move-up-enter,.ant-move-up-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-move-up-appear.ant-move-up-appear-active,.ant-move-up-enter.ant-move-up-enter-active{animation-name:antMoveUpIn;animation-play-state:running}.ant-move-up-leave.ant-move-up-leave-active{animation-name:antMoveUpOut;animation-play-state:running;pointer-events:none}.ant-move-up-appear,.ant-move-up-enter{opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-move-up-leave{animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.ant-move-down-appear,.ant-move-down-enter,.ant-move-down-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-move-down-appear.ant-move-down-appear-active,.ant-move-down-enter.ant-move-down-enter-active{animation-name:antMoveDownIn;animation-play-state:running}.ant-move-down-leave.ant-move-down-leave-active{animation-name:antMoveDownOut;animation-play-state:running;pointer-events:none}.ant-move-down-appear,.ant-move-down-enter{opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-move-down-leave{animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.ant-move-left-appear,.ant-move-left-enter,.ant-move-left-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-move-left-appear.ant-move-left-appear-active,.ant-move-left-enter.ant-move-left-enter-active{animation-name:antMoveLeftIn;animation-play-state:running}.ant-move-left-leave.ant-move-left-leave-active{animation-name:antMoveLeftOut;animation-play-state:running;pointer-events:none}.ant-move-left-appear,.ant-move-left-enter{opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-move-left-leave{animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.ant-move-right-appear,.ant-move-right-enter,.ant-move-right-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-move-right-appear.ant-move-right-appear-active,.ant-move-right-enter.ant-move-right-enter-active{animation-name:antMoveRightIn;animation-play-state:running}.ant-move-right-leave.ant-move-right-leave-active{animation-name:antMoveRightOut;animation-play-state:running;pointer-events:none}.ant-move-right-appear,.ant-move-right-enter{opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-move-right-leave{animation-timing-function:cubic-bezier(.6,.04,.98,.34)}@keyframes antMoveDownIn{0%{transform:translateY(100%);transform-origin:0 0;opacity:0}100%{transform:translateY(0);transform-origin:0 0;opacity:1}}@keyframes antMoveDownOut{0%{transform:translateY(0);transform-origin:0 0;opacity:1}100%{transform:translateY(100%);transform-origin:0 0;opacity:0}}@keyframes antMoveLeftIn{0%{transform:translateX(-100%);transform-origin:0 0;opacity:0}100%{transform:translateX(0);transform-origin:0 0;opacity:1}}@keyframes antMoveLeftOut{0%{transform:translateX(0);transform-origin:0 0;opacity:1}100%{transform:translateX(-100%);transform-origin:0 0;opacity:0}}@keyframes antMoveRightIn{0%{transform:translateX(100%);transform-origin:0 0;opacity:0}100%{transform:translateX(0);transform-origin:0 0;opacity:1}}@keyframes antMoveRightOut{0%{transform:translateX(0);transform-origin:0 0;opacity:1}100%{transform:translateX(100%);transform-origin:0 0;opacity:0}}@keyframes antMoveUpIn{0%{transform:translateY(-100%);transform-origin:0 0;opacity:0}100%{transform:translateY(0);transform-origin:0 0;opacity:1}}@keyframes antMoveUpOut{0%{transform:translateY(0);transform-origin:0 0;opacity:1}100%{transform:translateY(-100%);transform-origin:0 0;opacity:0}}@keyframes loadingCircle{100%{transform:rotate(360deg)}}.ant-click-animating-node,[ant-click-animating-without-extra-node=true]::after{position:absolute;top:0;right:0;bottom:0;left:0;display:block;border-radius:inherit;box-shadow:0 0 0 0 #1890ff;box-shadow:0 0 0 0 var(--antd-wave-shadow-color);opacity:.2;animation:fadeEffect 2s cubic-bezier(.08,.82,.17,1),waveEffect .4s cubic-bezier(.08,.82,.17,1);animation-fill-mode:forwards;content:'';pointer-events:none}@keyframes waveEffect{100%{box-shadow:0 0 0 #1890ff;box-shadow:0 0 0 6px var(--antd-wave-shadow-color)}}@keyframes fadeEffect{100%{opacity:0}}.ant-slide-up-appear,.ant-slide-up-enter,.ant-slide-up-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-slide-up-appear.ant-slide-up-appear-active,.ant-slide-up-enter.ant-slide-up-enter-active{animation-name:antSlideUpIn;animation-play-state:running}.ant-slide-up-leave.ant-slide-up-leave-active{animation-name:antSlideUpOut;animation-play-state:running;pointer-events:none}.ant-slide-up-appear,.ant-slide-up-enter{opacity:0;animation-timing-function:cubic-bezier(.23,1,.32,1)}.ant-slide-up-leave{animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.ant-slide-down-appear,.ant-slide-down-enter,.ant-slide-down-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-slide-down-appear.ant-slide-down-appear-active,.ant-slide-down-enter.ant-slide-down-enter-active{animation-name:antSlideDownIn;animation-play-state:running}.ant-slide-down-leave.ant-slide-down-leave-active{animation-name:antSlideDownOut;animation-play-state:running;pointer-events:none}.ant-slide-down-appear,.ant-slide-down-enter{opacity:0;animation-timing-function:cubic-bezier(.23,1,.32,1)}.ant-slide-down-leave{animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.ant-slide-left-appear,.ant-slide-left-enter,.ant-slide-left-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-slide-left-appear.ant-slide-left-appear-active,.ant-slide-left-enter.ant-slide-left-enter-active{animation-name:antSlideLeftIn;animation-play-state:running}.ant-slide-left-leave.ant-slide-left-leave-active{animation-name:antSlideLeftOut;animation-play-state:running;pointer-events:none}.ant-slide-left-appear,.ant-slide-left-enter{opacity:0;animation-timing-function:cubic-bezier(.23,1,.32,1)}.ant-slide-left-leave{animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.ant-slide-right-appear,.ant-slide-right-enter,.ant-slide-right-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-slide-right-appear.ant-slide-right-appear-active,.ant-slide-right-enter.ant-slide-right-enter-active{animation-name:antSlideRightIn;animation-play-state:running}.ant-slide-right-leave.ant-slide-right-leave-active{animation-name:antSlideRightOut;animation-play-state:running;pointer-events:none}.ant-slide-right-appear,.ant-slide-right-enter{opacity:0;animation-timing-function:cubic-bezier(.23,1,.32,1)}.ant-slide-right-leave{animation-timing-function:cubic-bezier(.755,.05,.855,.06)}@keyframes antSlideUpIn{0%{transform:scaleY(.8);transform-origin:0 0;opacity:0}100%{transform:scaleY(1);transform-origin:0 0;opacity:1}}@keyframes antSlideUpOut{0%{transform:scaleY(1);transform-origin:0 0;opacity:1}100%{transform:scaleY(.8);transform-origin:0 0;opacity:0}}@keyframes antSlideDownIn{0%{transform:scaleY(.8);transform-origin:100% 100%;opacity:0}100%{transform:scaleY(1);transform-origin:100% 100%;opacity:1}}@keyframes antSlideDownOut{0%{transform:scaleY(1);transform-origin:100% 100%;opacity:1}100%{transform:scaleY(.8);transform-origin:100% 100%;opacity:0}}@keyframes antSlideLeftIn{0%{transform:scaleX(.8);transform-origin:0 0;opacity:0}100%{transform:scaleX(1);transform-origin:0 0;opacity:1}}@keyframes antSlideLeftOut{0%{transform:scaleX(1);transform-origin:0 0;opacity:1}100%{transform:scaleX(.8);transform-origin:0 0;opacity:0}}@keyframes antSlideRightIn{0%{transform:scaleX(.8);transform-origin:100% 0;opacity:0}100%{transform:scaleX(1);transform-origin:100% 0;opacity:1}}@keyframes antSlideRightOut{0%{transform:scaleX(1);transform-origin:100% 0;opacity:1}100%{transform:scaleX(.8);transform-origin:100% 0;opacity:0}}.ant-zoom-appear,.ant-zoom-enter,.ant-zoom-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-zoom-appear.ant-zoom-appear-active,.ant-zoom-enter.ant-zoom-enter-active{animation-name:antZoomIn;animation-play-state:running}.ant-zoom-leave.ant-zoom-leave-active{animation-name:antZoomOut;animation-play-state:running;pointer-events:none}.ant-zoom-appear,.ant-zoom-enter{transform:scale(0);opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-zoom-appear-prepare,.ant-zoom-enter-prepare{transform:none}.ant-zoom-leave{animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-big-appear,.ant-zoom-big-enter,.ant-zoom-big-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-zoom-big-appear.ant-zoom-big-appear-active,.ant-zoom-big-enter.ant-zoom-big-enter-active{animation-name:antZoomBigIn;animation-play-state:running}.ant-zoom-big-leave.ant-zoom-big-leave-active{animation-name:antZoomBigOut;animation-play-state:running;pointer-events:none}.ant-zoom-big-appear,.ant-zoom-big-enter{transform:scale(0);opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-zoom-big-appear-prepare,.ant-zoom-big-enter-prepare{transform:none}.ant-zoom-big-leave{animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-big-fast-appear,.ant-zoom-big-fast-enter,.ant-zoom-big-fast-leave{animation-duration:.1s;animation-fill-mode:both;animation-play-state:paused}.ant-zoom-big-fast-appear.ant-zoom-big-fast-appear-active,.ant-zoom-big-fast-enter.ant-zoom-big-fast-enter-active{animation-name:antZoomBigIn;animation-play-state:running}.ant-zoom-big-fast-leave.ant-zoom-big-fast-leave-active{animation-name:antZoomBigOut;animation-play-state:running;pointer-events:none}.ant-zoom-big-fast-appear,.ant-zoom-big-fast-enter{transform:scale(0);opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-zoom-big-fast-appear-prepare,.ant-zoom-big-fast-enter-prepare{transform:none}.ant-zoom-big-fast-leave{animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-up-appear,.ant-zoom-up-enter,.ant-zoom-up-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-zoom-up-appear.ant-zoom-up-appear-active,.ant-zoom-up-enter.ant-zoom-up-enter-active{animation-name:antZoomUpIn;animation-play-state:running}.ant-zoom-up-leave.ant-zoom-up-leave-active{animation-name:antZoomUpOut;animation-play-state:running;pointer-events:none}.ant-zoom-up-appear,.ant-zoom-up-enter{transform:scale(0);opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-zoom-up-appear-prepare,.ant-zoom-up-enter-prepare{transform:none}.ant-zoom-up-leave{animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-down-appear,.ant-zoom-down-enter,.ant-zoom-down-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-zoom-down-appear.ant-zoom-down-appear-active,.ant-zoom-down-enter.ant-zoom-down-enter-active{animation-name:antZoomDownIn;animation-play-state:running}.ant-zoom-down-leave.ant-zoom-down-leave-active{animation-name:antZoomDownOut;animation-play-state:running;pointer-events:none}.ant-zoom-down-appear,.ant-zoom-down-enter{transform:scale(0);opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-zoom-down-appear-prepare,.ant-zoom-down-enter-prepare{transform:none}.ant-zoom-down-leave{animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-left-appear,.ant-zoom-left-enter,.ant-zoom-left-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-zoom-left-appear.ant-zoom-left-appear-active,.ant-zoom-left-enter.ant-zoom-left-enter-active{animation-name:antZoomLeftIn;animation-play-state:running}.ant-zoom-left-leave.ant-zoom-left-leave-active{animation-name:antZoomLeftOut;animation-play-state:running;pointer-events:none}.ant-zoom-left-appear,.ant-zoom-left-enter{transform:scale(0);opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-zoom-left-appear-prepare,.ant-zoom-left-enter-prepare{transform:none}.ant-zoom-left-leave{animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-right-appear,.ant-zoom-right-enter,.ant-zoom-right-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-zoom-right-appear.ant-zoom-right-appear-active,.ant-zoom-right-enter.ant-zoom-right-enter-active{animation-name:antZoomRightIn;animation-play-state:running}.ant-zoom-right-leave.ant-zoom-right-leave-active{animation-name:antZoomRightOut;animation-play-state:running;pointer-events:none}.ant-zoom-right-appear,.ant-zoom-right-enter{transform:scale(0);opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-zoom-right-appear-prepare,.ant-zoom-right-enter-prepare{transform:none}.ant-zoom-right-leave{animation-timing-function:cubic-bezier(.78,.14,.15,.86)}@keyframes antZoomIn{0%{transform:scale(.2);opacity:0}100%{transform:scale(1);opacity:1}}@keyframes antZoomOut{0%{transform:scale(1)}100%{transform:scale(.2);opacity:0}}@keyframes antZoomBigIn{0%{transform:scale(.8);opacity:0}100%{transform:scale(1);opacity:1}}@keyframes antZoomBigOut{0%{transform:scale(1)}100%{transform:scale(.8);opacity:0}}@keyframes antZoomUpIn{0%{transform:scale(.8);transform-origin:50% 0;opacity:0}100%{transform:scale(1);transform-origin:50% 0}}@keyframes antZoomUpOut{0%{transform:scale(1);transform-origin:50% 0}100%{transform:scale(.8);transform-origin:50% 0;opacity:0}}@keyframes antZoomLeftIn{0%{transform:scale(.8);transform-origin:0 50%;opacity:0}100%{transform:scale(1);transform-origin:0 50%}}@keyframes antZoomLeftOut{0%{transform:scale(1);transform-origin:0 50%}100%{transform:scale(.8);transform-origin:0 50%;opacity:0}}@keyframes antZoomRightIn{0%{transform:scale(.8);transform-origin:100% 50%;opacity:0}100%{transform:scale(1);transform-origin:100% 50%}}@keyframes antZoomRightOut{0%{transform:scale(1);transform-origin:100% 50%}100%{transform:scale(.8);transform-origin:100% 50%;opacity:0}}@keyframes antZoomDownIn{0%{transform:scale(.8);transform-origin:50% 100%;opacity:0}100%{transform:scale(1);transform-origin:50% 100%}}@keyframes antZoomDownOut{0%{transform:scale(1);transform-origin:50% 100%}100%{transform:scale(.8);transform-origin:50% 100%;opacity:0}}.ant-motion-collapse-legacy{overflow:hidden}.ant-motion-collapse-legacy-active{transition:height .2s cubic-bezier(.645,.045,.355,1),opacity .2s cubic-bezier(.645,.045,.355,1)!important}.ant-motion-collapse{overflow:hidden;transition:height .2s cubic-bezier(.645,.045,.355,1),opacity .2s cubic-bezier(.645,.045,.355,1)!important}.cdk-overlay-container{pointer-events:none;top:0;left:0;position:fixed;z-index:1000}.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-backdrop{top:0;bottom:0;left:0;right:0;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0;position:absolute;pointer-events:auto;z-index:1000}.cdk-overlay-backdrop.ant-modal-mask{opacity:1}.cdk-overlay-pane{position:absolute;pointer-events:auto;z-index:1000}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}.cdk-global-scrollblock body{overflow-x:visible}.nz-overlay-transparent-backdrop,.nz-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0}.nz-animate-disabled.ant-drawer.ant-drawer-open .ant-drawer-mask,.nz-animate-disabled.ant-scroll-number-only{animation:none;transition:none}.nz-animate-disabled.ant-drawer>*{transition:none}.nz-animate-disabled .ant-modal,.nz-animate-disabled .ant-modal-mask,.nz-animate-disabled .ant-modal-mask.zoom-enter,.nz-animate-disabled .ant-modal-mask.zoom-enter-active,.nz-animate-disabled .ant-modal-mask.zoom-leave,.nz-animate-disabled .ant-modal-mask.zoom-leave-active,.nz-animate-disabled .ant-modal.zoom-enter,.nz-animate-disabled .ant-modal.zoom-enter-active,.nz-animate-disabled .ant-modal.zoom-leave,.nz-animate-disabled .ant-modal.zoom-leave-active{animation:none;transition:none}.nz-animate-disabled.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow svg,.nz-animate-disabled.ant-menu,.nz-animate-disabled.ant-menu .ant-menu-item,.nz-animate-disabled.ant-menu .ant-menu-item .anticon,.nz-animate-disabled.ant-menu .ant-menu-item .anticon+span,.nz-animate-disabled.ant-menu .ant-menu-submenu-title,.nz-animate-disabled.ant-menu .ant-menu-submenu-title .anticon,.nz-animate-disabled.ant-menu .ant-menu-submenu-title .anticon+span,.nz-animate-disabled.ant-tabs .ant-tabs-bottom-content.ant-tabs-content-animated,.nz-animate-disabled.ant-tabs .ant-tabs-bottom-content>.ant-tabs-tabpane,.nz-animate-disabled.ant-tabs .ant-tabs-top-content.ant-tabs-content-animated,.nz-animate-disabled.ant-tabs .ant-tabs-top-content>.ant-tabs-tabpane,.nz-animate-disabled.ant-tabs.ant-tabs-bottom .ant-tabs-ink-bar-animated,.nz-animate-disabled.ant-tabs.ant-tabs-left .ant-tabs-ink-bar-animated,.nz-animate-disabled.ant-tabs.ant-tabs-right .ant-tabs-ink-bar-animated,.nz-animate-disabled.ant-tabs.ant-tabs-top .ant-tabs-ink-bar-animated{transition:none}.ant-affix{position:fixed;z-index:10}.ant-alert,.ant-anchor{position:relative;list-style:none}nz-affix{display:block}.ant-alert{box-sizing:border-box;margin:0;font-size:12px;font-variant:tabular-nums;line-height:1.66667;font-feature-settings:tnum;display:flex;align-items:center;padding:8px 15px;word-wrap:break-word;border-radius:2px}.ant-alert-content{flex:1;min-width:0}.ant-alert-icon{margin-right:4px}.ant-alert-description{display:none;font-size:12px;line-height:20px}.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-action{margin-left:4px}.ant-alert-close-icon{margin-left:4px;padding:0;overflow:hidden;font-size:12px;line-height:12px;background-color:transparent;border:none;outline:0;cursor:pointer}.ant-alert-close-icon .anticon-close{color:rgba(0,0,0,.45);transition:color .3s}.ant-alert-close-icon .anticon-close:hover{color:rgba(0,0,0,.75)}.ant-alert-close-text{color:rgba(0,0,0,.45);transition:color .3s}.ant-alert-close-text:hover{color:rgba(0,0,0,.75)}.ant-alert-with-description{align-items:flex-start;padding:11px 15px 7px 20px}.ant-alert-with-description.ant-alert-no-icon{padding:7px 15px}.ant-alert-with-description .ant-alert-icon{margin-right:11px;font-size:20px}.ant-alert-with-description .ant-alert-message{display:block;margin-bottom:4px;color:rgba(0,0,0,.85);font-size:14px}.ant-anchor,.ant-avatar{font-size:12px;font-variant:tabular-nums;font-feature-settings:tnum;box-sizing:border-box}.ant-alert-message{color:rgba(0,0,0,.85)}.ant-alert-with-description .ant-alert-description{display:block}.ant-alert.ant-alert-motion-leave{overflow:hidden;opacity:1;transition:max-height .3s cubic-bezier(.78,.14,.15,.86),opacity .3s cubic-bezier(.78,.14,.15,.86),padding-top .3s cubic-bezier(.78,.14,.15,.86),padding-bottom .3s cubic-bezier(.78,.14,.15,.86),margin-bottom .3s cubic-bezier(.78,.14,.15,.86)}.ant-alert.ant-alert-motion-leave-active{max-height:0;margin-bottom:0!important;padding-top:0;padding-bottom:0;opacity:0}.ant-alert-banner{margin-bottom:0;border:0;border-radius:0}.ant-alert.ant-alert-rtl{direction:rtl}.ant-alert-rtl.ant-alert.ant-alert-no-icon{padding:4px 15px}.ant-alert-rtl .ant-alert-icon{margin-right:auto;margin-left:4px}.ant-alert-rtl .ant-alert-action,.ant-alert-rtl .ant-alert-close-icon{margin-right:4px;margin-left:auto}.ant-alert-rtl.ant-alert-with-description .ant-alert-icon{margin-right:auto;margin-left:11px}nz-alert{display:block}.ant-anchor{margin:0;padding:0 0 0 2px;color:rgba(0,0,0,.85);line-height:1.66667}.ant-anchor-wrapper{margin-left:-4px;padding-left:4px;overflow:auto;background-color:transparent}.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;transform:translateX(-50%);transition:top .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:4px 0 4px 16px;line-height:1.143}.ant-anchor-link-title{position:relative;display:block;margin-bottom:6px;overflow:hidden;color:rgba(0,0,0,.85);white-space:nowrap;text-overflow:ellipsis;transition:all .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-avatar,.ant-avatar-lg.ant-avatar-icon>.anticon,.ant-avatar-sm.ant-avatar-icon>.anticon,.ant-avatar.ant-avatar-icon>.anticon{margin:0}.ant-anchor-rtl .ant-anchor-ink{right:0;left:auto}.ant-anchor-rtl .ant-anchor-ink-ball{right:50%;left:0;transform:translateX(50%)}.ant-anchor-rtl .ant-anchor-link{padding:4px 16px 4px 0}nz-link{display:block}.ant-avatar{padding:0;list-style:none;position:relative;display:inline-block;overflow:hidden;color:#fff;white-space:nowrap;text-align:center;background:#ccc;width:28px;height:28px;line-height:28px;border-radius:50%}.ant-avatar-lg-string,.ant-avatar-sm-string,.ant-avatar-string{position:absolute;left:50%;transform-origin:0 center}.ant-avatar-image{background:0 0}.ant-avatar .ant-image-img{display:block}.ant-avatar.ant-avatar-icon{font-size:16px}.ant-avatar-lg.ant-avatar-icon,.ant-spin-dot{font-size:20px}.ant-avatar-lg{width:32px;height:32px;line-height:32px;border-radius:50%}.ant-avatar-sm.ant-avatar-icon,.ant-back-top{font-size:12px}.ant-avatar-sm{width:22px;height:22px;line-height:22px;border-radius:50%}.ant-avatar-square{border-radius:2px}.ant-avatar>img{display:block;width:100%;height:100%;object-fit:cover}.ant-avatar-group,.ant-btn-group{display:inline-flex}.ant-avatar-group .ant-avatar{border:1px solid #fff}.ant-avatar-group .ant-avatar:not(:first-child){margin-left:-8px}.ant-avatar-group-popover .ant-avatar+.ant-avatar{margin-left:3px}.ant-avatar-group-rtl .ant-avatar:not(:first-child){margin-right:-8px;margin-left:0}.ant-avatar-group-popover.ant-popover-rtl .ant-avatar+.ant-avatar{margin-right:3px;margin-left:0}.ant-back-top,.ant-badge{margin:0;padding:0;font-variant:tabular-nums;font-feature-settings:tnum;list-style:none}.ant-back-top{box-sizing:border-box;color:rgba(0,0,0,.85);line-height:1.66667;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,.45);border-radius:20px;transition:all .3s}.ant-back-top-content:hover{background-color:rgba(0,0,0,.85);transition:all .3s}.ant-badge-count,.ant-badge-dot{background:#ff4d4f;box-shadow:0 0 0 1px #fff}.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}}.ant-badge{box-sizing:border-box;color:rgba(0,0,0,.85);font-size:12px;position:relative;display:inline-block;line-height:1}.ant-badge-count{z-index:auto;min-width:18px;height:18px;padding:0 6px;color:#fff;font-weight:400;font-size:12px;line-height:18px;white-space:nowrap;text-align:center;border-radius:9px}.ant-badge-count a,.ant-badge-count a:hover{color:#fff}.ant-badge-count-sm{min-width:14px;height:14px;padding:0;font-size:12px;line-height:14px;border-radius:7px}.ant-badge-multiple-words,.ant-ribbon{padding:0 8px}.ant-badge-dot,.ant-spin-dot-item,.g2-card__avatar img{border-radius:100%}.ant-badge-dot{z-index:auto;width:6px;min-width:6px;height:6px}.ant-badge .ant-scroll-number-custom-component,.ant-badge-count,.ant-badge-dot{position:absolute;top:0;right:0;transform:translate(50%,-50%);transform-origin:100% 0}.ant-badge .ant-scroll-number-custom-component.anticon-spin,.ant-badge-count.anticon-spin,.ant-badge-dot.anticon-spin{animation:antBadgeLoadingCircle 1s infinite linear}.ant-badge-status{line-height:inherit}.ant-badge-not-a-wrapper:not(.ant-badge-status),.ant-badge-status-dot{vertical-align:middle}.ant-badge-status-dot{position:relative;top:-1px;display:inline-block;width:6px;height:6px;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%;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-magenta,.ant-badge-status-pink{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,.85);font-size:12px}.ant-badge-zoom-appear,.ant-badge-zoom-enter{animation:antZoomBadgeIn .3s cubic-bezier(.12,.4,.29,1.46);animation-fill-mode:both}.ant-badge-zoom-leave{animation:antZoomBadgeOut .3s cubic-bezier(.71,-.46,.88,.6);animation-fill-mode:both}.ant-badge-not-a-wrapper .ant-badge-zoom-appear,.ant-badge-not-a-wrapper .ant-badge-zoom-enter{animation:antNoWrapperZoomBadgeIn .3s cubic-bezier(.12,.4,.29,1.46)}.ant-badge-not-a-wrapper .ant-badge-zoom-leave{animation:antNoWrapperZoomBadgeOut .3s cubic-bezier(.71,-.46,.88,.6)}.ant-badge-not-a-wrapper .ant-scroll-number-custom-component{transform:none}.ant-badge-not-a-wrapper .ant-scroll-number,.ant-badge-not-a-wrapper .ant-scroll-number-custom-component{position:relative;top:auto;display:block;transform-origin:50% 50%}@keyframes antStatusProcessing{0%{transform:scale(.8);opacity:.5}100%{transform:scale(2.4);opacity:0}}.ant-scroll-number-only,.ant-scroll-number-only>p.ant-scroll-number-only-unit{-webkit-transform-style:preserve-3d;-webkit-backface-visibility:hidden;height:18px}.ant-scroll-number{overflow:hidden}.ant-scroll-number-only{position:relative;display:inline-block;transition:all .3s cubic-bezier(.645,.045,.355,1)}.ant-scroll-number-only>p.ant-scroll-number-only-unit{margin:0}.ant-scroll-number-symbol{vertical-align:top}@keyframes antZoomBadgeIn{0%{transform:scale(0) translate(50%,-50%);opacity:0}100%{transform:scale(1) translate(50%,-50%)}}@keyframes antZoomBadgeOut{0%{transform:scale(1) translate(50%,-50%)}100%{transform:scale(0) translate(50%,-50%);opacity:0}}@keyframes antNoWrapperZoomBadgeIn{0%{transform:scale(0);opacity:0}100%{transform:scale(1)}}@keyframes antNoWrapperZoomBadgeOut{0%{transform:scale(1)}100%{transform:scale(0);opacity:0}}@keyframes antBadgeLoadingCircle{0%{transform-origin:50%}100%{transform:translate(50%,-50%) rotate(360deg);transform-origin:50%}}.ant-ribbon-wrapper{position:relative}.ant-ribbon{box-sizing:border-box;margin:0;font-size:12px;font-variant:tabular-nums;list-style:none;font-feature-settings:tnum;position:absolute;top:8px;height:22px;color:#fff;line-height:22px;white-space:nowrap;background-color:#1890ff;border-radius:2px}.ant-breadcrumb,.ant-btn{line-height:1.66667;font-size:12px}.ant-ribbon-text{color:#fff}.ant-ribbon-corner{position:absolute;top:100%;width:8px;height:8px;color:currentColor;border:4px solid;transform:scaleY(.75);transform-origin:top}.ant-ribbon-corner::after{position:absolute;top:-4px;left:-4px;width:inherit;height:inherit;color:rgba(0,0,0,.25);border:inherit;content:''}.ant-ribbon-color-magenta,.ant-ribbon-color-pink{color:#eb2f96;background:#eb2f96}.ant-ribbon-color-red{color:#f5222d;background:#f5222d}.ant-ribbon-color-volcano{color:#fa541c;background:#fa541c}.ant-ribbon-color-orange{color:#fa8c16;background:#fa8c16}.ant-ribbon-color-yellow{color:#fadb14;background:#fadb14}.ant-ribbon-color-gold{color:#faad14;background:#faad14}.ant-ribbon-color-cyan{color:#13c2c2;background:#13c2c2}.ant-ribbon-color-lime{color:#a0d911;background:#a0d911}.ant-ribbon-color-green{color:#52c41a;background:#52c41a}.ant-ribbon-color-blue{color:#1890ff;background:#1890ff}.ant-ribbon-color-geekblue{color:#2f54eb;background:#2f54eb}.ant-ribbon-color-purple{color:#722ed1;background:#722ed1}.ant-ribbon.ant-ribbon-placement-end{right:-8px;border-bottom-right-radius:0}.ant-ribbon.ant-ribbon-placement-end .ant-ribbon-corner{right:0;border-color:currentColor transparent transparent currentColor}.ant-ribbon-rtl.ant-ribbon-placement-end .ant-ribbon-corner,.ant-ribbon-rtl.ant-ribbon-placement-end .ant-ribbon-corner::after,.ant-ribbon.ant-ribbon-placement-start .ant-ribbon-corner{border-color:currentColor currentColor transparent transparent}.ant-ribbon.ant-ribbon-placement-start{left:-8px;border-bottom-left-radius:0}.ant-ribbon.ant-ribbon-placement-start .ant-ribbon-corner{left:0}.ant-badge-rtl{direction:rtl}.ant-badge-rtl .ant-badge .ant-scroll-number-custom-component,.ant-badge-rtl .ant-badge-count,.ant-badge-rtl .ant-badge-dot{right:auto;left:0;direction:ltr;transform:translate(-50%,-50%);transform-origin:0 0}.ant-breadcrumb-rtl,.ant-btn-group.ant-btn-group-rtl,.ant-btn-rtl,.ant-card-rtl,.ant-carousel-rtl,.ant-checkbox-rtl,.ant-collapse-rtl,.ant-comment-rtl,.ant-picker-dropdown-rtl .ant-picker-footer-extra,.ant-picker-input>input-rtl,.ant-picker-panel-rtl,.ant-picker-rtl,.ant-ribbon-rtl{direction:rtl}.ant-badge-rtl.ant-badge .ant-scroll-number-custom-component{right:auto;left:0;transform:translate(-50%,-50%);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{animation-name:antZoomBadgeInRtl}.ant-badge-rtl .ant-badge-zoom-leave{animation-name:antZoomBadgeOutRtl}.ant-badge-not-a-wrapper .ant-badge-count{transform:none}.ant-ribbon-rtl.ant-ribbon-placement-end{right:unset;left:-8px;border-bottom-right-radius:2px;border-bottom-left-radius:0}.ant-ribbon-rtl.ant-ribbon-placement-end .ant-ribbon-corner{right:unset;left:0}.ant-ribbon-rtl.ant-ribbon-placement-start .ant-ribbon-corner,.ant-ribbon-rtl.ant-ribbon-placement-start .ant-ribbon-corner::after{border-color:currentColor transparent transparent currentColor}.ant-ribbon-rtl.ant-ribbon-placement-start{right:-8px;left:unset;border-bottom-right-radius:0;border-bottom-left-radius:2px}.ant-ribbon-rtl.ant-ribbon-placement-start .ant-ribbon-corner{right:0;left:unset}@keyframes antZoomBadgeInRtl{0%{transform:scale(0) translate(-50%,-50%);opacity:0}100%{transform:scale(1) translate(-50%,-50%)}}@keyframes antZoomBadgeOutRtl{0%{transform:scale(1) translate(-50%,-50%)}100%{transform:scale(0) translate(-50%,-50%);opacity:0}}.ant-badge .ant-scroll-number:only-child{position:relative;top:auto;display:block}.ant-badge .ant-badge-count:only-child{transform:none}nz-ribbon{display:block}.ant-breadcrumb{box-sizing:border-box;margin:0;padding:0;font-variant:tabular-nums;list-style:none;font-feature-settings:tnum;color:rgba(0,0,0,.45)}.ant-breadcrumb .anticon{font-size:12px}.ant-breadcrumb a{color:rgba(0,0,0,.45);transition:color .3s}.ant-breadcrumb a:hover{color:#40a9ff}.ant-breadcrumb>span:last-child,.ant-breadcrumb>span:last-child a{color:rgba(0,0,0,.85)}.ant-breadcrumb>span:last-child .ant-breadcrumb-separator{display:none}.ant-breadcrumb-rtl::after,.ant-breadcrumb-rtl::before{display:table;content:''}.ant-breadcrumb-separator{margin:0 4px;color:rgba(0,0,0,.45)}.ant-breadcrumb>nz-breadcrumb-item:last-child,.ant-breadcrumb>nz-breadcrumb-item:last-child a,.ant-btn{color:rgba(0,0,0,.85)}.ant-breadcrumb-link>.anticon+a,.ant-breadcrumb-link>.anticon+span,.ant-breadcrumb-overlay-link>.anticon{margin-left:4px}.ant-breadcrumb-rtl::after{clear:both}.ant-breadcrumb-rtl>span{float:right}.ant-breadcrumb-rtl .ant-breadcrumb-link>.anticon+a,.ant-breadcrumb-rtl .ant-breadcrumb-link>.anticon+span,.ant-breadcrumb-rtl .ant-breadcrumb-overlay-link>.anticon{margin-right:4px;margin-left:0}.ant-breadcrumb-link .anticon+span{margin-left:4px}.ant-breadcrumb-rtl>nz-breadcrumb-item{float:right}nz-breadcrumb{display:block}nz-breadcrumb-item:last-child .ant-breadcrumb-separator{display:none}.ant-btn,.ant-btn>span{display:inline-block}.ant-btn{position:relative;font-weight:400;white-space:nowrap;text-align:center;border:1px solid #d9d9d9;box-shadow:0 2px 0 rgba(0,0,0,.015);cursor:pointer;transition:all .3s cubic-bezier(.645,.045,.355,1);user-select:none;height:28px;padding:3px 11px;border-radius:2px;background:#fff}.ant-btn:active>a:only-child::after,.ant-btn:focus>a:only-child::after,.ant-btn:hover>a:only-child::after,.ant-btn>a:only-child::after{background:0 0;top:0;right:0;bottom:0;left:0;position:absolute;content:''}.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;box-shadow:none}.ant-btn[disabled]{cursor:not-allowed}.ant-btn[disabled]>*{pointer-events:none}.ant-btn-lg{height:32px;padding:3.3px 11px;font-size:14px;border-radius:2px}.ant-btn-sm{height:22px;padding:0 7px;font-size:12px;border-radius:2px}.ant-btn>a:only-child{color:currentColor}.ant-btn:focus,.ant-btn:hover{color:#40a9ff;border-color:#40a9ff}.ant-btn:focus>a:only-child,.ant-btn:hover>a:only-child{color:currentColor}.ant-btn:active{color:#096dd9;border-color:#096dd9}.ant-btn:active>a:only-child{color:currentColor}.ant-btn[disabled],.ant-btn[disabled]:active,.ant-btn[disabled]:focus,.ant-btn[disabled]:hover{color:rgba(0,0,0,.25);background:#f5f5f5;border-color:#d9d9d9;text-shadow:none;box-shadow:none}.ant-btn[disabled]:active>a:only-child,.ant-btn[disabled]:focus>a:only-child,.ant-btn[disabled]:hover>a:only-child,.ant-btn[disabled]>a:only-child{color:currentColor}.ant-btn[disabled]:active>a:only-child::after,.ant-btn[disabled]:focus>a:only-child::after,.ant-btn[disabled]:hover>a:only-child::after,.ant-btn[disabled]>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn:active,.ant-btn:focus,.ant-btn:hover{text-decoration:none;background:#fff}.ant-btn-primary{color:#fff;background:#1890ff;border-color:#1890ff;text-shadow:0 -1px 0 rgba(0,0,0,.12);box-shadow:0 2px 0 rgba(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:0 0;content:''}.ant-btn-primary:focus,.ant-btn-primary:hover{color:#fff;background:#40a9ff;border-color:#40a9ff}.ant-btn-primary:focus>a:only-child,.ant-btn-primary:hover>a:only-child{color:currentColor}.ant-btn-primary:focus>a:only-child::after,.ant-btn-primary:hover>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;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:0 0;content:''}.ant-btn-primary[disabled],.ant-btn-primary[disabled]:active,.ant-btn-primary[disabled]:focus,.ant-btn-primary[disabled]:hover{color:rgba(0,0,0,.25);background:#f5f5f5;border-color:#d9d9d9;text-shadow:none;box-shadow:none}.ant-btn-primary[disabled]:active>a:only-child,.ant-btn-primary[disabled]:focus>a:only-child,.ant-btn-primary[disabled]:hover>a:only-child,.ant-btn-primary[disabled]>a:only-child{color:currentColor}.ant-btn-primary[disabled]:active>a:only-child::after,.ant-btn-primary[disabled]:focus>a:only-child::after,.ant-btn-primary[disabled]:hover>a:only-child::after,.ant-btn-primary[disabled]>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;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+.ant-btn-primary,.ant-btn-group .ant-btn-primary:last-child:not(:first-child){border-left-color:#40a9ff}.ant-btn-group .ant-btn-primary+.ant-btn-primary[disabled],.ant-btn-group .ant-btn-primary:last-child:not(:first-child)[disabled]{border-left-color:#d9d9d9}.ant-btn-ghost{color:rgba(0,0,0,.85);background:0 0;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:0 0;content:''}.ant-btn-ghost:focus,.ant-btn-ghost:hover{color:#40a9ff;background:0 0;border-color:#40a9ff}.ant-btn-ghost:focus>a:only-child,.ant-btn-ghost:hover>a:only-child{color:currentColor}.ant-btn-ghost:focus>a:only-child::after,.ant-btn-ghost:hover>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-ghost:active{color:#096dd9;background:0 0;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:0 0;content:''}.ant-btn-ghost[disabled],.ant-btn-ghost[disabled]:active,.ant-btn-ghost[disabled]:focus,.ant-btn-ghost[disabled]:hover{color:rgba(0,0,0,.25);background:#f5f5f5;border-color:#d9d9d9;text-shadow:none;box-shadow:none}.ant-btn-ghost[disabled]:active>a:only-child,.ant-btn-ghost[disabled]:focus>a:only-child,.ant-btn-ghost[disabled]:hover>a:only-child,.ant-btn-ghost[disabled]>a:only-child{color:currentColor}.ant-btn-ghost[disabled]:active>a:only-child::after,.ant-btn-ghost[disabled]:focus>a:only-child::after,.ant-btn-ghost[disabled]:hover>a:only-child::after,.ant-btn-ghost[disabled]>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-dashed{color:rgba(0,0,0,.85);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:0 0;content:''}.ant-btn-dashed:focus,.ant-btn-dashed:hover{color:#40a9ff;background:#fff;border-color:#40a9ff}.ant-btn-dashed:focus>a:only-child,.ant-btn-dashed:hover>a:only-child{color:currentColor}.ant-btn-dashed:focus>a:only-child::after,.ant-btn-dashed:hover>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;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:0 0;content:''}.ant-btn-dashed[disabled],.ant-btn-dashed[disabled]:active,.ant-btn-dashed[disabled]:focus,.ant-btn-dashed[disabled]:hover{color:rgba(0,0,0,.25);background:#f5f5f5;border-color:#d9d9d9;text-shadow:none;box-shadow:none}.ant-btn-dashed[disabled]:active>a:only-child,.ant-btn-dashed[disabled]:focus>a:only-child,.ant-btn-dashed[disabled]:hover>a:only-child,.ant-btn-dashed[disabled]>a:only-child{color:currentColor}.ant-btn-dashed[disabled]:active>a:only-child::after,.ant-btn-dashed[disabled]:focus>a:only-child::after,.ant-btn-dashed[disabled]:hover>a:only-child::after,.ant-btn-dashed[disabled]>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-danger{color:#fff;background:#ff4d4f;border-color:#ff4d4f;text-shadow:0 -1px 0 rgba(0,0,0,.12);box-shadow:0 2px 0 rgba(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:0 0;content:''}.ant-btn-danger:focus,.ant-btn-danger:hover{color:#fff;background:#ff7875;border-color:#ff7875}.ant-btn-danger:focus>a:only-child,.ant-btn-danger:hover>a:only-child{color:currentColor}.ant-btn-danger:focus>a:only-child::after,.ant-btn-danger:hover>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;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:0 0;content:''}.ant-btn-danger[disabled],.ant-btn-danger[disabled]:active,.ant-btn-danger[disabled]:focus,.ant-btn-danger[disabled]:hover{color:rgba(0,0,0,.25);background:#f5f5f5;border-color:#d9d9d9;text-shadow:none;box-shadow:none}.ant-btn-danger[disabled]:active>a:only-child,.ant-btn-danger[disabled]:focus>a:only-child,.ant-btn-danger[disabled]:hover>a:only-child,.ant-btn-danger[disabled]>a:only-child{color:currentColor}.ant-btn-danger[disabled]:active>a:only-child::after,.ant-btn-danger[disabled]:focus>a:only-child::after,.ant-btn-danger[disabled]:hover>a:only-child::after,.ant-btn-danger[disabled]>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-link{color:#1890ff;background:0 0;border-color:transparent;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:0 0;content:''}.ant-btn-link:focus,.ant-btn-link:hover{color:#40a9ff;background:0 0;border-color:#40a9ff}.ant-btn-link:focus>a:only-child,.ant-btn-link:hover>a:only-child{color:currentColor}.ant-btn-link:focus>a:only-child::after,.ant-btn-link:hover>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-link:active{color:#096dd9;background:0 0}.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:0 0;content:''}.ant-btn-link:hover{background:0 0}.ant-btn-link:active,.ant-btn-link:focus,.ant-btn-link:hover{border-color:transparent}.ant-btn-link[disabled],.ant-btn-link[disabled]:active,.ant-btn-link[disabled]:focus,.ant-btn-link[disabled]:hover{color:rgba(0,0,0,.25);background:0 0;border-color:transparent;text-shadow:none;box-shadow:none}.ant-btn-link[disabled]:active>a:only-child,.ant-btn-link[disabled]:focus>a:only-child,.ant-btn-link[disabled]:hover>a:only-child,.ant-btn-link[disabled]>a:only-child{color:currentColor}.ant-btn-link[disabled]:active>a:only-child::after,.ant-btn-link[disabled]:focus>a:only-child::after,.ant-btn-link[disabled]:hover>a:only-child::after,.ant-btn-link[disabled]>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-text{color:rgba(0,0,0,.85);background:0 0;border-color:transparent;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:0 0;content:''}.ant-btn-text:focus,.ant-btn-text:hover{color:#40a9ff}.ant-btn-text:focus>a:only-child,.ant-btn-text:hover>a:only-child{color:currentColor}.ant-btn-text:focus>a:only-child::after,.ant-btn-text:hover>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-text:active{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:0 0;content:''}.ant-btn-text:focus,.ant-btn-text:hover{color:rgba(0,0,0,.85);background:rgba(0,0,0,.018);border-color:transparent}.ant-btn-text:active{color:rgba(0,0,0,.85);background:rgba(0,0,0,.028);border-color:transparent}.ant-btn-text[disabled],.ant-btn-text[disabled]:active,.ant-btn-text[disabled]:focus,.ant-btn-text[disabled]:hover{color:rgba(0,0,0,.25);background:0 0;border-color:transparent;text-shadow:none;box-shadow:none}.ant-btn-text[disabled]:active>a:only-child,.ant-btn-text[disabled]:focus>a:only-child,.ant-btn-text[disabled]:hover>a:only-child,.ant-btn-text[disabled]>a:only-child{color:currentColor}.ant-btn-text[disabled]:active>a:only-child::after,.ant-btn-text[disabled]:focus>a:only-child::after,.ant-btn-text[disabled]:hover>a:only-child::after,.ant-btn-text[disabled]>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;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:0 0;content:''}.ant-btn-dangerous:focus,.ant-btn-dangerous:hover{color:#ff7875;background:#fff;border-color:#ff7875}.ant-btn-dangerous:focus>a:only-child,.ant-btn-dangerous:hover>a:only-child{color:currentColor}.ant-btn-dangerous:focus>a:only-child::after,.ant-btn-dangerous:hover>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;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:0 0;content:''}.ant-btn-dangerous[disabled],.ant-btn-dangerous[disabled]:active,.ant-btn-dangerous[disabled]:focus,.ant-btn-dangerous[disabled]:hover{color:rgba(0,0,0,.25);background:#f5f5f5;border-color:#d9d9d9;text-shadow:none;box-shadow:none}.ant-btn-dangerous[disabled]:active>a:only-child,.ant-btn-dangerous[disabled]:focus>a:only-child,.ant-btn-dangerous[disabled]:hover>a:only-child,.ant-btn-dangerous[disabled]>a:only-child{color:currentColor}.ant-btn-dangerous[disabled]:active>a:only-child::after,.ant-btn-dangerous[disabled]:focus>a:only-child::after,.ant-btn-dangerous[disabled]:hover>a:only-child::after,.ant-btn-dangerous[disabled]>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-dangerous.ant-btn-primary{color:#fff;background:#ff4d4f;border-color:#ff4d4f;text-shadow:0 -1px 0 rgba(0,0,0,.12);box-shadow:0 2px 0 rgba(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:0 0;content:''}.ant-btn-dangerous.ant-btn-primary:focus,.ant-btn-dangerous.ant-btn-primary:hover{color:#fff;background:#ff7875;border-color:#ff7875}.ant-btn-dangerous.ant-btn-primary:focus>a:only-child,.ant-btn-dangerous.ant-btn-primary:hover>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-primary:focus>a:only-child::after,.ant-btn-dangerous.ant-btn-primary:hover>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;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:0 0;content:''}.ant-btn-dangerous.ant-btn-primary[disabled],.ant-btn-dangerous.ant-btn-primary[disabled]:active,.ant-btn-dangerous.ant-btn-primary[disabled]:focus,.ant-btn-dangerous.ant-btn-primary[disabled]:hover{color:rgba(0,0,0,.25);background:#f5f5f5;border-color:#d9d9d9;text-shadow:none;box-shadow:none}.ant-btn-dangerous.ant-btn-primary[disabled]:active>a:only-child,.ant-btn-dangerous.ant-btn-primary[disabled]:focus>a:only-child,.ant-btn-dangerous.ant-btn-primary[disabled]:hover>a:only-child,.ant-btn-dangerous.ant-btn-primary[disabled]>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-primary[disabled]:active>a:only-child::after,.ant-btn-dangerous.ant-btn-primary[disabled]:focus>a:only-child::after,.ant-btn-dangerous.ant-btn-primary[disabled]:hover>a:only-child::after,.ant-btn-dangerous.ant-btn-primary[disabled]>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-dangerous.ant-btn-link{color:#ff4d4f;background:0 0;border-color:transparent;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:0 0;content:''}.ant-btn-dangerous.ant-btn-link:focus,.ant-btn-dangerous.ant-btn-link:hover{color:#ff7875;background:0 0;border-color:transparent}.ant-btn-dangerous.ant-btn-link:focus>a:only-child,.ant-btn-dangerous.ant-btn-link:hover>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-link:focus>a:only-child::after,.ant-btn-dangerous.ant-btn-link:hover>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-dangerous.ant-btn-link:active{color:#d9363e;background:0 0;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:0 0;content:''}.ant-btn-dangerous.ant-btn-link[disabled],.ant-btn-dangerous.ant-btn-link[disabled]:active,.ant-btn-dangerous.ant-btn-link[disabled]:focus,.ant-btn-dangerous.ant-btn-link[disabled]:hover{color:rgba(0,0,0,.25);background:0 0;border-color:transparent;text-shadow:none;box-shadow:none}.ant-btn-dangerous.ant-btn-link[disabled]:active>a:only-child,.ant-btn-dangerous.ant-btn-link[disabled]:focus>a:only-child,.ant-btn-dangerous.ant-btn-link[disabled]:hover>a:only-child,.ant-btn-dangerous.ant-btn-link[disabled]>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-link[disabled]:active>a:only-child::after,.ant-btn-dangerous.ant-btn-link[disabled]:focus>a:only-child::after,.ant-btn-dangerous.ant-btn-link[disabled]:hover>a:only-child::after,.ant-btn-dangerous.ant-btn-link[disabled]>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-dangerous.ant-btn-text{color:#ff4d4f;background:0 0;border-color:transparent;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:0 0;content:''}.ant-btn-dangerous.ant-btn-text:focus,.ant-btn-dangerous.ant-btn-text:hover{color:#ff7875;background:rgba(0,0,0,.018);border-color:transparent}.ant-btn-dangerous.ant-btn-text:focus>a:only-child,.ant-btn-dangerous.ant-btn-text:hover>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-text:focus>a:only-child::after,.ant-btn-dangerous.ant-btn-text:hover>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-dangerous.ant-btn-text:active{color:#d9363e;background:rgba(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:0 0;content:''}.ant-btn-dangerous.ant-btn-text[disabled],.ant-btn-dangerous.ant-btn-text[disabled]:active,.ant-btn-dangerous.ant-btn-text[disabled]:focus,.ant-btn-dangerous.ant-btn-text[disabled]:hover{color:rgba(0,0,0,.25);background:0 0;border-color:transparent;text-shadow:none;box-shadow:none}.ant-btn-dangerous.ant-btn-text[disabled]:active>a:only-child,.ant-btn-dangerous.ant-btn-text[disabled]:focus>a:only-child,.ant-btn-dangerous.ant-btn-text[disabled]:hover>a:only-child,.ant-btn-dangerous.ant-btn-text[disabled]>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-text[disabled]:active>a:only-child::after,.ant-btn-dangerous.ant-btn-text[disabled]:focus>a:only-child::after,.ant-btn-dangerous.ant-btn-text[disabled]:hover>a:only-child::after,.ant-btn-dangerous.ant-btn-text[disabled]>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-icon-only{width:28px;height:28px;padding:1.3px 0;font-size:14px;border-radius:2px;vertical-align:-1px}.ant-btn-icon-only>*{font-size:14px}.ant-btn-icon-only.ant-btn-lg{width:32px;height:32px;padding:1.7px 0;font-size:16px;border-radius:2px}.ant-btn-icon-only.ant-btn-lg>*{font-size:16px}.ant-btn-icon-only.ant-btn-sm{width:22px;height:22px;padding:0;font-size:12px;border-radius:2px}.ant-btn-icon-only.ant-btn-sm>*{font-size:12px}.ant-btn-round{height:28px;padding:3px 14px;font-size:12px;border-radius:28px}.ant-btn-round.ant-btn-lg{height:32px;padding:3.3px 16px;font-size:14px;border-radius:32px}.ant-btn-round.ant-btn-sm{height:22px;padding:0 11px;font-size:12px;border-radius:22px}.ant-btn-round.ant-btn-icon-only{width:auto}.ant-btn-circle{min-width:28px;padding-right:0;padding-left:0;text-align:center;border-radius:50%}.ant-btn-circle.ant-btn-lg{min-width:32px;border-radius:50%}.ant-btn-circle.ant-btn-sm{min-width:22px;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:.35;transition:opacity .2s;content:'';pointer-events:none}.ant-btn-group,.ant-btn-group>.ant-btn,.ant-btn-group>span>.ant-btn,.ant-btn.ant-btn-loading,.ant-btn:active>span,.ant-btn:focus>span{position:relative}.ant-btn .anticon{transition:margin-left .3s cubic-bezier(.645,.045,.355,1)}.ant-btn .anticon.anticon-minus>svg,.ant-btn .anticon.anticon-plus>svg{shape-rendering:optimizeSpeed}.ant-btn.ant-btn-loading:not([disabled]){pointer-events:none}.ant-btn.ant-btn-loading::before{display:block}.ant-btn>.ant-btn-loading-icon{transition:all .3s cubic-bezier(.645,.045,.355,1)}.ant-btn>.ant-btn-loading-icon .anticon{padding-right:4px;animation:none}.ant-btn>.ant-btn-loading-icon .anticon svg{animation:loadingCircle 1s infinite linear}.ant-btn>.ant-btn-loading-icon:only-child .anticon{padding-right:0}.ant-btn-group>.ant-btn:active,.ant-btn-group>.ant-btn:focus,.ant-btn-group>.ant-btn:hover,.ant-btn-group>span>.ant-btn:active,.ant-btn-group>span>.ant-btn:focus,.ant-btn-group>span>.ant-btn:hover{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:12px}.ant-btn-group-lg>.ant-btn,.ant-btn-group-lg>span>.ant-btn{height:32px;padding:3.3px 11px;font-size:14px;border-radius:0}.ant-btn-group-lg .ant-btn.ant-btn-icon-only{width:32px;height:32px;padding-right:0;padding-left:0}.ant-btn-group-sm>.ant-btn,.ant-btn-group-sm>span>.ant-btn{height:22px;padding:0 7px;font-size:12px;border-radius:0}.ant-btn-group-sm>.ant-btn>.anticon,.ant-btn-group-sm>span>.ant-btn>.anticon{font-size:12px}.ant-btn-group-sm .ant-btn.ant-btn-icon-only{width:22px;height:22px;padding-right:0;padding-left:0}.ant-btn+.ant-btn-group,.ant-btn-group .ant-btn+.ant-btn,.ant-btn-group .ant-btn+span,.ant-btn-group span+.ant-btn,.ant-btn-group+.ant-btn,.ant-btn-group+.ant-btn-group,.ant-btn-group>span+span{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-sm>.ant-btn:only-child,.ant-btn-group-sm>span:only-child>.ant-btn,.ant-btn-group>.ant-btn:only-child,.ant-btn-group>span:only-child>.ant-btn,.ant-card{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,.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-sm>.ant-btn:last-child:not(:first-child),.ant-btn-group-sm>span:last-child:not(:first-child)>.ant-btn,.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>.ant-btn:first-child,.ant-btn-group>span:first-child>.ant-btn{margin-left:0}.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-group-rtl.ant-btn+.ant-btn-group,.ant-btn-group-rtl.ant-btn-group .ant-btn+.ant-btn,.ant-btn-group-rtl.ant-btn-group .ant-btn+span,.ant-btn-group-rtl.ant-btn-group span+.ant-btn,.ant-btn-group-rtl.ant-btn-group+.ant-btn,.ant-btn-group-rtl.ant-btn-group+.ant-btn-group,.ant-btn-group-rtl.ant-btn-group>span+span,.ant-btn-rtl.ant-btn+.ant-btn-group,.ant-btn-rtl.ant-btn-group .ant-btn+.ant-btn,.ant-btn-rtl.ant-btn-group .ant-btn+span,.ant-btn-rtl.ant-btn-group span+.ant-btn,.ant-btn-rtl.ant-btn-group+.ant-btn,.ant-btn-rtl.ant-btn-group+.ant-btn-group,.ant-btn-rtl.ant-btn-group>span+span{margin-right:-1px;margin-left:auto}.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-radius:0 2px 2px 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-radius:2px 0 0 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-radius:0 2px 2px 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-radius:2px 0 0 2px}.ant-btn>.anticon+span,.ant-btn>span+.anticon{margin-left:4px}.ant-btn-background-ghost{color:#fff;background:0 0!important;border-color:#fff}.ant-btn-background-ghost.ant-btn-primary{color:#1890ff;background:0 0;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:0 0;content:''}.ant-btn-background-ghost.ant-btn-primary:focus,.ant-btn-background-ghost.ant-btn-primary:hover{color:#40a9ff;background:0 0;border-color:#40a9ff}.ant-btn-background-ghost.ant-btn-primary:focus>a:only-child,.ant-btn-background-ghost.ant-btn-primary:hover>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-primary:focus>a:only-child::after,.ant-btn-background-ghost.ant-btn-primary:hover>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-background-ghost.ant-btn-primary:active{color:#096dd9;background:0 0;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:0 0;content:''}.ant-btn-background-ghost.ant-btn-primary[disabled],.ant-btn-background-ghost.ant-btn-primary[disabled]:active,.ant-btn-background-ghost.ant-btn-primary[disabled]:focus,.ant-btn-background-ghost.ant-btn-primary[disabled]:hover{color:rgba(0,0,0,.25);background:#f5f5f5;border-color:#d9d9d9;text-shadow:none;box-shadow:none}.ant-btn-background-ghost.ant-btn-primary[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-primary[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-primary[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-primary[disabled]>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-primary[disabled]:active>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]:hover>a:only-child::after,.ant-btn-background-ghost.ant-btn-primary[disabled]>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-background-ghost.ant-btn-danger{color:#ff4d4f;background:0 0;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:0 0;content:''}.ant-btn-background-ghost.ant-btn-danger:focus,.ant-btn-background-ghost.ant-btn-danger:hover{color:#ff7875;background:0 0;border-color:#ff7875}.ant-btn-background-ghost.ant-btn-danger:focus>a:only-child,.ant-btn-background-ghost.ant-btn-danger:hover>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-danger:focus>a:only-child::after,.ant-btn-background-ghost.ant-btn-danger:hover>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-background-ghost.ant-btn-danger:active{color:#d9363e;background:0 0;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:0 0;content:''}.ant-btn-background-ghost.ant-btn-danger[disabled],.ant-btn-background-ghost.ant-btn-danger[disabled]:active,.ant-btn-background-ghost.ant-btn-danger[disabled]:focus,.ant-btn-background-ghost.ant-btn-danger[disabled]:hover{color:rgba(0,0,0,.25);background:#f5f5f5;border-color:#d9d9d9;text-shadow:none;box-shadow:none}.ant-btn-background-ghost.ant-btn-danger[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-danger[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-danger[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-danger[disabled]>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-danger[disabled]:active>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]:hover>a:only-child::after,.ant-btn-background-ghost.ant-btn-danger[disabled]>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-background-ghost.ant-btn-dangerous{color:#ff4d4f;background:0 0;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:0 0;content:''}.ant-btn-background-ghost.ant-btn-dangerous:focus,.ant-btn-background-ghost.ant-btn-dangerous:hover{color:#ff7875;background:0 0;border-color:#ff7875}.ant-btn-background-ghost.ant-btn-dangerous:focus>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous:hover>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-dangerous:focus>a:only-child::after,.ant-btn-background-ghost.ant-btn-dangerous:hover>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-background-ghost.ant-btn-dangerous:active{color:#d9363e;background:0 0;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:0 0;content:''}.ant-btn-background-ghost.ant-btn-dangerous[disabled],.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:focus,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:hover{color:rgba(0,0,0,.25);background:#f5f5f5;border-color:#d9d9d9;text-shadow:none;box-shadow:none}.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous[disabled]>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active>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]:hover>a:only-child::after,.ant-btn-background-ghost.ant-btn-dangerous[disabled]>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link{color:#ff4d4f;background:0 0;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:0 0;content:''}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover{color:#ff7875;background:0 0;border-color:transparent}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus>a:only-child::after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:active{color:#d9363e;background:0 0;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:0 0;content:''}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled],.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover{color:rgba(0,0,0,.25);background:#f5f5f5;border-color:#d9d9d9;text-shadow:none;box-shadow:none}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active>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]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]>a:only-child{color:currentColor}.ant-card,.ant-card-extra,.ant-card-head,.ant-card-head .ant-tabs{color:rgba(0,0,0,.85)}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active>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]:hover>a:only-child::after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-two-chinese-chars::first-letter{letter-spacing:.34em}.ant-btn-two-chinese-chars>:not(.anticon){margin-right:-.34em;letter-spacing:.34em}.ant-btn-block{width:100%}.ant-btn:empty{display:inline-block;width:0;content:'\a0'}.ant-card-head::after,.ant-card-head::before{display:table;content:''}a.ant-btn{padding-top:.01px!important;line-height:26px}a.ant-btn-lg{line-height:30px}a.ant-btn-sm{line-height:20px}.ant-card,.ant-card-actions>li>span{line-height:1.66667;position:relative}.ant-btn-group-rtl.ant-btn-group .ant-btn-primary+.ant-btn-primary,.ant-btn-group-rtl.ant-btn-group .ant-btn-primary:last-child:not(:first-child){border-right-color:#40a9ff;border-left-color:#d9d9d9}.ant-btn-group-rtl.ant-btn-group .ant-btn-primary+.ant-btn-primary[disabled],.ant-btn-group-rtl.ant-btn-group .ant-btn-primary:last-child:not(:first-child)[disabled]{border-right-color:#d9d9d9;border-left-color:#40a9ff}.ant-btn-rtl.ant-btn>.ant-btn-loading-icon .anticon{padding-right:0;padding-left:4px}.ant-btn>.ant-btn-loading-icon:only-child .anticon{padding-left:0}.ant-btn-rtl.ant-btn>.anticon+span,.ant-btn-rtl.ant-btn>span+.anticon{margin-right:8px;margin-left:0}.ant-card{box-sizing:border-box;margin:0;padding:0;font-size:12px;font-variant:tabular-nums;list-style:none;font-feature-settings:tnum;background:#fff}.ant-card-hoverable{cursor:pointer;transition:box-shadow .3s,border-color .3s}.ant-card-hoverable:hover{border-color:transparent;box-shadow:0 1px 2px -2px rgba(0,0,0,.16),0 3px 6px 0 rgba(0,0,0,.12),0 5px 12px 4px rgba(0,0,0,.09)}.ant-card-head,.ant-card-head .ant-tabs-bar{border-bottom:1px solid #f0f0f0}.ant-card-bordered{border:1px solid #f0f0f0}.ant-card-head{min-height:36px;margin-bottom:-1px;padding:0 12px;font-weight:500;font-size:12px;background:0 0;border-radius:2px 2px 0 0}.ant-card-head::after{clear:both}.ant-card-head-wrapper{display:flex;align-items:center}.ant-card-head-title{display:inline-block;flex:1;padding:8.5px 0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ant-card-body::after,.ant-card-body::before{display:table;content:''}.ant-card-head-title>.ant-typography,.ant-card-head-title>.ant-typography-edit-content{left:0;margin-top:0;margin-bottom:0}.ant-card-head .ant-tabs{clear:both;margin-bottom:-9px;font-weight:400;font-size:12px}.ant-card-extra{float:right;margin-left:auto;padding:8.5px 0;font-weight:400;font-size:12px}.ant-card-rtl .ant-card-extra{margin-right:auto;margin-left:0}.ant-card-body{padding:12px}.ant-card-body::after{clear:both}.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:12px;border:0;border-radius:0;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;transition:all .3s}.ant-card-rtl .ant-card-grid{float:right}.ant-card-grid-hoverable:hover{position:relative;z-index:1;box-shadow:0 1px 2px -2px rgba(0,0,0,.16),0 3px 6px 0 rgba(0,0,0,.12),0 5px 12px 4px rgba(0,0,0,.09)}.ant-card-contain-tabs>.ant-card-head .ant-card-head-title{min-height:27.5px;padding-bottom:0}.ant-card-contain-tabs>.ant-card-head .ant-card-extra{padding-bottom:0}.ant-card-bordered .ant-card-cover{margin-top:-1px;margin-right:-1px;margin-left:-1px}.ant-card-cover>*{display:block;width:100%}.ant-card-actions::after,.ant-card-actions::before{display:table;content:''}.ant-card-cover img{border-radius:2px 2px 0 0}.ant-card-actions{margin:0;padding:0;list-style:none;background:#fff;border-top:1px solid #f0f0f0}.ant-card-actions::after{clear:both}.ant-card-actions>li{float:left;margin:4px 0;color:rgba(0,0,0,.45);text-align:center}.ant-card-rtl .ant-card-actions>li{float:right}.ant-card-actions>li>span{display:block;min-width:32px;font-size:12px;cursor:pointer}.ant-card-actions>li>span:hover{color:#1890ff;transition:color .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,.45);line-height:22px;transition:color .3s}.ant-card-meta::after,.ant-card-meta::before{display:table;content:''}.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-rtl .ant-card-actions>li:not(:last-child){border-right:none;border-left:1px solid #f0f0f0}.ant-card-type-inner .ant-card-head{padding:0 12px;background:#fafafa}.ant-card-type-inner .ant-card-head-title{padding:12px 0;font-size:12px}.ant-card-type-inner .ant-card-body{padding:16px 12px}.ant-card-type-inner .ant-card-extra{padding:13.5px 0}.ant-card-meta{margin:-4px 0}.ant-card-meta::after{clear:both}.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:4px}.ant-card-meta-title{overflow:hidden;color:rgba(0,0,0,.85);font-weight:500;font-size:14px;white-space:nowrap;text-overflow:ellipsis}.ant-card-meta-description,.ant-comment-content-author-name,.ant-comment-content-author-name>*,.ant-comment-content-author-name>:hover{color:rgba(0,0,0,.45)}.ant-card-loading{overflow:hidden}.ant-card-loading .ant-card-body{user-select:none}.ant-card-loading-content p{margin:0}.ant-card-loading-block{height:14px;margin:4px 0;background:linear-gradient(90deg,rgba(207,216,220,.2),rgba(207,216,220,.4),rgba(207,216,220,.2));background-size:600% 600%;border-radius:2px;animation:card-loading 1.4s ease infinite}@keyframes card-loading{0%,100%{background-position:0 50%}50%{background-position:100% 50%}}.ant-card-small>.ant-card-head{min-height:30px;padding:0 12px;font-size:12px}.ant-card-small>.ant-card-head>.ant-card-head-wrapper>.ant-card-head-title{padding:6px 0}.ant-card-small>.ant-card-head>.ant-card-head-wrapper>.ant-card-extra{padding:6px 0;font-size:12px}.ant-card-small>.ant-card-body{padding:12px}.ant-card-rtl .ant-skeleton-header{padding:0 0 0 8.5px}nz-card,nz-card-loading,nz-card-meta{display:block}.ant-carousel{box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:12px;font-variant:tabular-nums;line-height:1.66667;list-style:none;font-feature-settings:tnum}.ant-carousel .slick-slider{position:relative;display:block;box-sizing:border-box;-ms-touch-action:pan-y;touch-action:pan-y;-webkit-touch-callout:none}.ant-carousel .slick-list{position:relative;display:block;margin:0;padding:0;overflow:hidden}.ant-carousel .slick-list:focus{outline:0}.ant-carousel .slick-list.dragging{cursor:pointer}.ant-carousel .slick-list .slick-slide{pointer-events:none}.ant-carousel .slick-list .slick-slide.slick-active{pointer-events:auto}.ant-carousel .slick-list .slick-slide.slick-active input.ant-checkbox-input,.ant-carousel .slick-list .slick-slide.slick-active input.ant-radio-input{visibility:visible}.ant-carousel .slick-loading .slick-slide,.ant-checkbox-checked::after,.slick-loading .ant-carousel .slick-track{visibility:hidden}.ant-carousel .slick-list .slick-slide>div>div{vertical-align:bottom}.ant-carousel .slick-slider .slick-list,.ant-carousel .slick-slider .slick-track{transform:translate3d(0,0,0);touch-action:pan-y}.ant-carousel .slick-track{position:relative;top:0;left:0;display:block}.ant-carousel .slick-track::after,.ant-carousel .slick-track::before{display:table;content:''}.ant-carousel .slick-track::after{clear:both}.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-vertical .slick-slide{display:block;height:auto}.ant-carousel .slick-arrow.slick-hidden{display:none}.ant-carousel .slick-next,.ant-carousel .slick-prev{position:absolute;top:50%;display:block;width:20px;height:20px;margin-top:-10px;padding:0;color:transparent;font-size:0;line-height:0;background:0 0;border:0;outline:0;cursor:pointer}.ant-carousel .slick-next:focus,.ant-carousel .slick-next:hover,.ant-carousel .slick-prev:focus,.ant-carousel .slick-prev:hover{color:transparent;background:0 0;outline:0}.ant-carousel .slick-next:focus::before,.ant-carousel .slick-next:hover::before,.ant-carousel .slick-prev:focus::before,.ant-carousel .slick-prev:hover::before{opacity:1}.ant-carousel .slick-next.slick-disabled::before,.ant-carousel .slick-prev.slick-disabled::before{opacity:.25}.ant-carousel .slick-prev{left:-25px}.ant-carousel .slick-prev::before{content:'←'}.ant-carousel .slick-next::before,.ant-carousel-rtl .ant-carousel .slick-prev::before{content:'→'}.ant-carousel .slick-next{right:-25px}.ant-carousel .slick-dots{position:absolute;right:0;bottom:0;left:0;z-index:15;display:flex!important;justify-content:center;margin-right:15%;margin-left:15%;padding-left:0;list-style:none}.ant-carousel .slick-dots-bottom,.ant-popover-placement-leftBottom .ant-popover-arrow,.ant-popover-placement-rightBottom .ant-popover-arrow{bottom:12px}.ant-carousel .slick-dots-top{top:12px;bottom:auto}.ant-carousel .slick-dots li{position:relative;display:inline-block;flex:0 1 auto;box-sizing:content-box;width:16px;height:3px;margin:0 3px;padding:0;text-align:center;text-indent:-999px;vertical-align:top;transition:all .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:0;cursor:pointer;opacity:.3;transition:all .5s}.ant-carousel .slick-dots li button:focus,.ant-carousel .slick-dots li button:hover{opacity:.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:focus,.ant-carousel .slick-dots li.slick-active:hover{opacity:1}.ant-carousel-vertical .slick-dots{top:50%;bottom:auto;flex-direction:column;width:3px;height:auto;margin:0;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-checkbox,.ant-checkbox-wrapper{box-sizing:border-box;margin:0;padding:0;font-size:12px;font-variant:tabular-nums;list-style:none;font-feature-settings:tnum}.ant-carousel-vertical .slick-dots li button{width:3px;height:16px}.ant-carousel-vertical .slick-dots li.slick-active,.ant-carousel-vertical .slick-dots li.slick-active button{width:3px;height:24px}.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-next{right:auto;left:-25px}.ant-carousel-rtl .ant-carousel .slick-next::before{content:'←'}.ant-carousel-rtl.ant-carousel .slick-dots{flex-direction:row-reverse}.ant-carousel-rtl.ant-carousel-vertical .slick-dots{flex-direction:column}nz-carousel{display:block;position:relative;overflow:hidden;width:100%;height:100%}.slick-dots{display:block}.slick-track{opacity:1}.slick-list{direction:ltr}@keyframes antCheckboxEffect{0%{transform:scale(1);opacity:.5}100%{transform:scale(1.6);opacity:0}}.ant-checkbox{color:rgba(0,0,0,.85);position:relative;top:.2em;line-height:1;white-space:nowrap;outline:0;cursor:pointer}.ant-checkbox-input:focus+.ant-checkbox-inner,.ant-checkbox-wrapper:hover .ant-checkbox-inner,.ant-checkbox:hover .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;animation:antCheckboxEffect .36s ease-in-out;animation-fill-mode:backwards;content:''}.ant-checkbox-wrapper:hover .ant-checkbox::after,.ant-checkbox:hover::after{visibility:visible}.ant-checkbox-inner{position:relative;top:0;left:0;display:block;width:14px;height:14px;direction:ltr;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;border-collapse:separate;transition:all .3s}.ant-checkbox-inner::after{position:absolute;top:50%;left:22%;display:table;width:5px;height:8px;border:2px solid #fff;border-top:0;border-left:0;transform:rotate(45deg) scale(0) translate(-50%,-50%);opacity:0;transition:all .1s cubic-bezier(.71,-.46,.88,.6),opacity .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-disabled,.ant-checkbox-disabled .ant-checkbox-input,.ant-checkbox-disabled+span{cursor:not-allowed}.ant-checkbox-checked .ant-checkbox-inner::after{position:absolute;display:table;border:2px solid #fff;border-top:0;border-left:0;transform:rotate(45deg) scale(1) translate(-50%,-50%);opacity:1;transition:all .2s cubic-bezier(.12,.4,.29,1.46) .1s;content:' '}.ant-checkbox-checked .ant-checkbox-inner{background-color:#1890ff;border-color:#1890ff}.ant-checkbox-disabled.ant-checkbox-checked .ant-checkbox-inner::after{border-color:rgba(0,0,0,.25);animation-name:none}.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;animation-name:none}.ant-checkbox-disabled+span{color:rgba(0,0,0,.25)}.ant-checkbox-disabled:hover::after,.ant-checkbox-wrapper:hover .ant-checkbox-disabled::after{visibility:hidden}.ant-checkbox-wrapper{color:rgba(0,0,0,.85);display:inline-flex;align-items:baseline;line-height:unset;cursor:pointer}.ant-checkbox-wrapper::after{display:inline-block;width:0;overflow:hidden;content:'\a0'}.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,.ant-collapse{padding:0;color:rgba(0,0,0,.85);font-size:12px;box-sizing:border-box;font-variant:tabular-nums;font-feature-settings:tnum;list-style:none}.ant-checkbox-group{margin:0;line-height:1.66667;display:inline-block}.ant-checkbox-group-item{margin-right:6px}.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:6px;height:6px;background-color:#1890ff;border:0;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,.25);border-color:rgba(0,0,0,.25)}.ant-checkbox-group-rtl .ant-checkbox-group-item{margin-right:0;margin-left:6px}.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:6px}.ant-checkbox+span:empty{display:none}.ant-collapse{margin:0;line-height:1.66667;background-color:#fafafa;border:1px solid #d9d9d9;border-bottom:0;border-radius:2px}.ant-collapse-item:last-child>.ant-collapse-content,.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{border-bottom:1px solid #d9d9d9}.ant-collapse>.ant-collapse-item>.ant-collapse-header{position:relative;padding:8px;color:rgba(0,0,0,.85);line-height:1.66667;cursor:pointer;transition:all .3s,visibility 0s}.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{display:inline-block;margin-right:12px;font-size:12px;vertical-align:-1px}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow svg{transition:transform .24s}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-extra{float:right}.ant-collapse>.ant-collapse-item>.ant-collapse-header:focus{outline:0}.ant-collapse>.ant-collapse-item .ant-collapse-header-collapsible-only{cursor:default}.ant-collapse>.ant-collapse-item .ant-collapse-header-collapsible-only .ant-collapse-header-text{cursor:pointer}.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:8px 40px 8px 8px}.ant-collapse-icon-position-right>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow{position:absolute;top:50%;right:8px;left:auto;margin:0;transform:translateY(-50%)}.ant-collapse-rtl.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow svg,.ant-dropdown-wrap-open .anticon-down::before,.ant-picker-rtl .ant-picker-separator{transform:rotate(180deg)}.ant-collapse-content{color:rgba(0,0,0,.85);background-color:#fff;border-top:1px solid #d9d9d9}.ant-collapse-borderless,.ant-descriptions-bordered .ant-descriptions-item-label{background-color:#fafafa}.ant-collapse-borderless>.ant-collapse-item>.ant-collapse-content,.ant-collapse-ghost>.ant-collapse-item>.ant-collapse-content{border-top:0;background-color:transparent}.ant-collapse-content>.ant-collapse-content-box{padding:8px 16px}.ant-collapse-content-hidden{display:none}nz-collapse,nz-collapse-panel,nz-comment,nz-comment-content{display:block}.ant-collapse-borderless{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>.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>.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,.25);cursor:not-allowed}.ant-collapse-rtl .ant-collapse>.ant-collapse-item>.ant-collapse-header{padding:8px 40px 8px 8px}.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}.ant-comment{position:relative;background-color:inherit}.ant-comment-inner{display:flex;padding:8px 0}.ant-comment-avatar{position:relative;flex-shrink:0;margin-right:8px;cursor:pointer}.ant-comment-avatar img{width:32px;height:32px;border-radius:50%}.ant-comment-content{position:relative;flex:1 1 auto;min-width:1px;font-size:12px;word-wrap:break-word}.ant-comment-content-author{display:flex;flex-wrap:wrap;justify-content:flex-start;margin-bottom:0;font-size:12px}.ant-comment-content-author>a,.ant-comment-content-author>span{padding-right:4px;font-size:12px;line-height:18px}.ant-comment-content-author-name{font-size:12px;transition:color .3s}.ant-comment-content-author-time{color:#ccc;white-space:nowrap;cursor:auto}.ant-comment-content-detail p{margin-bottom:0;white-space:pre-wrap}.ant-comment-actions{margin-top:4px;margin-bottom:0;padding-left:0}.ant-comment-actions>li{display:inline-block;color:rgba(0,0,0,.45)}.ant-comment-actions>li>span{margin-right:10px;color:rgba(0,0,0,.45);font-size:12px;cursor:pointer;transition:color .3s;user-select:none}.ant-comment-actions>li>span:hover{color:#595959}.ant-comment-nested{margin-left:44px}.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}.ant-picker,.ant-picker-input{display:inline-flex;position:relative}.ant-picker{box-sizing:border-box;margin:0;color:rgba(0,0,0,.85);font-size:12px;font-variant:tabular-nums;line-height:1.66667;list-style:none;font-feature-settings:tnum;padding:3px 7px;align-items:center;background:#fff;border:1px solid #d9d9d9;border-radius:2px;transition:border .3s,box-shadow .3s}.ant-picker-focused,.ant-picker:hover{border-color:#40a9ff;border-right-width:1px!important}.ant-input-rtl .ant-picker-focused,.ant-input-rtl .ant-picker:hover{border-right-width:0;border-left-width:1px!important}.ant-picker-focused{border-color:#40a9ff;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(24,144,255,.2)}.ant-input-rtl .ant-picker-focused{border-right-width:0;border-left-width:1px!important}.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,.25)}.ant-picker.ant-picker-borderless{background-color:transparent!important;border-color:transparent!important;box-shadow:none!important}.ant-picker-input{align-items:center;width:100%}.ant-picker-input>input{position:relative;display:inline-block;width:100%;color:rgba(0,0,0,.85);font-size:12px;line-height:1.66667;border-radius:2px;transition:all .3s;flex:auto;min-width:1px;height:auto;padding:0;background:0 0;border:0}.ant-picker-input>input::-moz-placeholder{opacity:1}.ant-picker-input>input::placeholder{color:#bfbfbf}.ant-picker-input>input-disabled,.ant-picker-input>input[disabled]{background-color:#f5f5f5;cursor:not-allowed;color:rgba(0,0,0,.25);opacity:1;pointer-events:none}.ant-picker-input>input:placeholder-shown{text-overflow:ellipsis}.ant-picker-input>input:hover{border-color:#40a9ff;border-right-width:1px!important}.ant-input-rtl .ant-picker-input>input:hover{border-right-width:0;border-left-width:1px!important}.ant-picker-input>input-focused,.ant-picker-input>input:focus{border-color:#40a9ff;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(24,144,255,.2)}.ant-input-rtl .ant-picker-input>input-focused,.ant-input-rtl .ant-picker-input>input:focus{border-right-width:0;border-left-width:1px!important}.ant-picker-input>input-disabled:hover,.ant-picker-input>input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-picker-input>input-borderless,.ant-picker-input>input-borderless-disabled,.ant-picker-input>input-borderless-focused,.ant-picker-input>input-borderless:focus,.ant-picker-input>input-borderless:hover,.ant-picker-input>input-borderless[disabled]{background-color:transparent;border:none;box-shadow:none}textarea.ant-picker-input>input{max-width:100%;height:auto;min-height:28px;line-height:1.66667;vertical-align:bottom;transition:all .3s,height 0s}.ant-picker-input>input-lg{padding:3.4px 11px;font-size:14px}.ant-picker-input>input-sm{padding:0 7px}.ant-picker-input>input:focus{box-shadow:none}.ant-picker-input>input[disabled]{background:0 0}.ant-picker-input:hover .ant-picker-clear{opacity:1}.ant-picker-input-placeholder>input{color:#bfbfbf}.ant-picker-large{padding:3.5px 11px}.ant-picker-large .ant-picker-input>input{font-size:14px}.ant-picker-small{padding:0 7px}.ant-picker-suffix{align-self:center;margin-left:2px;color:rgba(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,.25);line-height:1;background:#fff;transform:translateY(-50%);cursor:pointer;opacity:0;transition:opacity .3s,color .3s}.ant-picker-clear>*{vertical-align:top}.ant-picker-clear:hover{color:rgba(0,0,0,.45)}.ant-picker-separator{position:relative;display:inline-block;width:1em;height:14px;color:rgba(0,0,0,.25);font-size:14px;vertical-align:top;cursor:default}.ant-picker-focused .ant-picker-separator{color:rgba(0,0,0,.45)}.ant-picker-disabled .ant-picker-range-separator .ant-picker-separator{cursor:not-allowed}.ant-picker-range{position:relative;display:inline-flex}.ant-picker-range .ant-picker-clear{right:7px}.ant-picker-range:hover .ant-picker-clear{opacity:1}.ant-picker-range .ant-picker-active-bar{bottom:-1px;height:2px;margin-left:7px;background:#1890ff;opacity:0;transition:all .3s ease-out;pointer-events:none}.ant-picker-range.ant-picker-focused .ant-picker-active-bar{opacity:1}.ant-picker-range-separator{align-items:center;padding:0 4px;line-height:1}.ant-picker-range.ant-picker-small .ant-picker-clear{right:7px}.ant-picker-range.ant-picker-small .ant-picker-active-bar{margin-left:7px}.ant-picker-dropdown{box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:12px;font-variant:tabular-nums;line-height:1.66667;list-style:none;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.67px;display:block;transform:rotate(-45deg)}.ant-picker-dropdown-placement-topLeft .ant-picker-range-arrow{bottom:1.67px;display:block;transform:rotate(135deg)}.ant-picker-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-picker-dropdown-placement-topLeft,.ant-picker-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-picker-dropdown-placement-topRight,.ant-picker-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-picker-dropdown-placement-topLeft,.ant-picker-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-picker-dropdown-placement-topRight{animation-name:antSlideDownIn}.ant-cascader-menus.ant-slide-up-appear.ant-slide-up-appear-active.ant-cascader-menus-placement-bottomLeft,.ant-cascader-menus.ant-slide-up-enter.ant-slide-up-enter-active.ant-cascader-menus-placement-bottomLeft,.ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottomCenter,.ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottomLeft,.ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottomRight,.ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottomCenter,.ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottomLeft,.ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottomRight,.ant-picker-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-picker-dropdown-placement-bottomLeft,.ant-picker-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-picker-dropdown-placement-bottomRight,.ant-picker-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-picker-dropdown-placement-bottomLeft,.ant-picker-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-picker-dropdown-placement-bottomRight,.ant-select-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-select-dropdown-placement-bottomLeft,.ant-select-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-select-dropdown-placement-bottomLeft{animation-name:antSlideUpIn}.ant-picker-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-picker-dropdown-placement-topLeft,.ant-picker-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-picker-dropdown-placement-topRight{animation-name:antSlideDownOut}.ant-picker-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-picker-dropdown-placement-bottomLeft,.ant-picker-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-picker-dropdown-placement-bottomRight{animation-name:antSlideUpOut}.ant-picker-dropdown-range{padding:6.67px 0}.ant-picker-dropdown-range-hidden{display:none}.ant-picker-dropdown .ant-picker-panel>.ant-picker-time-panel{padding-top:2px}.ant-picker-ranges{margin-bottom:0;padding:2px 8px;overflow:hidden;line-height:28px;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:4px}.ant-picker-range-wrapper{display:flex}.ant-picker-range-arrow{position:absolute;z-index:1;display:none;width:10px;height:10px;margin-left:10.5px;box-shadow:2px -2px 6px rgba(0,0,0,.06);transition:left .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;box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);transition:margin .3s}.ant-picker-panel-container .ant-picker-panels{display:inline-flex;flex-wrap:nowrap;direction:ltr}.ant-picker-panel-container .ant-picker-panel{vertical-align:top;background:0 0;border-width:0 0 1px;border-radius:0}.ant-picker-panel-container .ant-picker-panel-focused{border-color:#f0f0f0}.ant-picker-panel{display:inline-flex;flex-direction:column;text-align:center;background:#fff;border:1px solid #f0f0f0;border-radius:2px;outline:0}.ant-picker-panel-focused{border-color:#1890ff}.ant-picker-date-panel,.ant-picker-decade-panel,.ant-picker-month-panel,.ant-picker-quarter-panel,.ant-picker-time-panel,.ant-picker-week-panel,.ant-picker-year-panel{display:flex;flex-direction:column;width:244px}.ant-picker-header{display:flex;padding:0 4px;color:rgba(0,0,0,.85);border-bottom:1px solid #f0f0f0}.ant-picker-header>*{flex:none}.ant-picker-header button{padding:0;color:rgba(0,0,0,.25);line-height:32px;background:0 0;border:0;cursor:pointer;transition:color .3s}.ant-picker-header>button{min-width:1.6em;font-size:12px}.ant-picker-header>button:hover{color:rgba(0,0,0,.85)}.ant-picker-header-view{flex:auto;font-weight:500;line-height:32px}.ant-picker-header-view button{color:inherit;font-weight:inherit}.ant-picker-header-view button:not(:first-child){margin-left:4px}.ant-picker-header-view button:hover{color:#1890ff}.ant-picker-next-icon,.ant-picker-prev-icon,.ant-picker-super-next-icon,.ant-picker-super-prev-icon{position:relative;display:inline-block;width:7px;height:7px}.ant-picker-next-icon::before,.ant-picker-prev-icon::before,.ant-picker-super-next-icon::before,.ant-picker-super-prev-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-next-icon::after,.ant-picker-super-prev-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{transform:rotate(-45deg)}.ant-picker-next-icon,.ant-picker-super-next-icon{transform:rotate(135deg)}.ant-picker-content{width:100%;table-layout:fixed}.ant-picker-content td,.ant-picker-content th{position:relative;min-width:24px;font-weight:400}.ant-picker-content th{height:30px;color:rgba(0,0,0,.85);line-height:30px}.ant-picker-cell{padding:3px 0;color:rgba(0,0,0,.25);cursor:pointer}.ant-picker-cell-in-view{color:rgba(0,0,0,.85)}.ant-picker-cell-disabled{cursor:not-allowed;pointer-events:none}.ant-picker-cell::before{position:absolute;top:50%;right:0;left:0;z-index:1;height:22px;transform:translateY(-50%);content:''}.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-range-end .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-selected .ant-picker-cell-inner{color:#fff;background:#1890ff}.ant-picker-cell-in-view.ant-picker-cell-range-end:not(.ant-picker-cell-range-end-single)::before,.ant-picker-cell-in-view.ant-picker-cell-range-start:not(.ant-picker-cell-range-start-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-end.ant-picker-cell-range-end-single::after,.ant-picker-cell-in-view.ant-picker-cell-range-hover-end.ant-picker-cell-range-start.ant-picker-cell-range-end.ant-picker-cell-range-start-near-hover::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-start.ant-picker-cell-range-start.ant-picker-cell-range-end.ant-picker-cell-range-end-near-hover::after,.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: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;transform:translateY(-50%);content:''}.ant-picker-cell-range-hover-end::after,.ant-picker-cell-range-hover-start::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-end.ant-picker-cell-range-hover::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-cell-in-view.ant-picker-cell-range-start.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-panel>:not(.ant-picker-date-panel) .ant-picker-cell-in-view.ant-picker-cell-in-range.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{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-end .ant-picker-cell-inner::after,.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{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:-6px;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:-6px}.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%}.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,.ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover-edge-start.ant-picker-cell-range-hover-edge-start-near-range::after,tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover-end:first-child::after,tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover:first-child::after{left:6px;border-left:1px dashed #7ec1ff;border-top-left-radius:2px;border-bottom-left-radius:2px}.ant-picker-cell-in-view.ant-picker-cell-end.ant-picker-cell-range-hover-edge-end.ant-picker-cell-range-hover-edge-end-near-range::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,tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::after,tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover:last-child::after{right:6px;border-right:1px dashed #7ec1ff;border-top-right-radius:2px;border-bottom-right-radius:2px}.ant-picker-cell-disabled .ant-picker-cell-inner{color:rgba(0,0,0,.25);background:0 0}.ant-picker-cell-disabled::before,.ant-picker-decade-panel .ant-picker-cell-disabled .ant-picker-cell-inner,.ant-picker-month-panel .ant-picker-cell-disabled .ant-picker-cell-inner,.ant-picker-quarter-panel .ant-picker-cell-disabled .ant-picker-cell-inner,.ant-picker-year-panel .ant-picker-cell-disabled .ant-picker-cell-inner{background:#f5f5f5}.ant-picker-cell-disabled.ant-picker-cell-today .ant-picker-cell-inner::before{border-color:rgba(0,0,0,.25)}.ant-picker-decade-panel .ant-picker-content,.ant-picker-month-panel .ant-picker-content,.ant-picker-quarter-panel .ant-picker-content,.ant-picker-year-panel .ant-picker-content{height:192px}.ant-picker-decade-panel .ant-picker-cell-inner,.ant-picker-month-panel .ant-picker-cell-inner,.ant-picker-quarter-panel .ant-picker-cell-inner,.ant-picker-year-panel .ant-picker-cell-inner{padding:0 4px}.ant-picker-quarter-panel .ant-picker-content{height:56px}.ant-picker-footer{width:min-content;min-width:100%;line-height:30px;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 8px;line-height:30px;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,.25);cursor:not-allowed}.ant-picker-decade-panel .ant-picker-cell-inner{padding:0 2px}.ant-picker-decade-panel .ant-picker-cell::before{display:none}.ant-picker-month-panel .ant-picker-body,.ant-picker-quarter-panel .ant-picker-body,.ant-picker-year-panel .ant-picker-body{padding:0 4px}.ant-picker-date-panel .ant-picker-body,.ant-picker-week-panel .ant-picker-body{padding:4px 8px}.ant-picker-month-panel .ant-picker-cell-inner,.ant-picker-quarter-panel .ant-picker-cell-inner,.ant-picker-year-panel .ant-picker-cell-inner{width:60px}.ant-picker-month-panel .ant-picker-cell-range-hover-start::after,.ant-picker-quarter-panel .ant-picker-cell-range-hover-start::after,.ant-picker-year-panel .ant-picker-cell-range-hover-start::after{left:9.33px;border-left:1px dashed #7ec1ff;border-radius:2px 0 0 2px}.ant-picker-month-panel .ant-picker-cell-range-hover-end::after,.ant-picker-panel-rtl .ant-picker-month-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-year-panel .ant-picker-cell-range-hover-start::after,.ant-picker-quarter-panel .ant-picker-cell-range-hover-end::after,.ant-picker-year-panel .ant-picker-cell-range-hover-end::after{right:9.33px;border-right:1px dashed #7ec1ff;border-radius:0 2px 2px 0}.ant-picker-panel-rtl .ant-picker-month-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-year-panel .ant-picker-cell-range-hover-end::after{left:9.33px;border-left:1px dashed #7ec1ff;border-radius:2px 0 0 2px}.ant-picker-week-panel .ant-picker-cell .ant-picker-cell-inner,.ant-picker-week-panel .ant-picker-cell-selected .ant-picker-cell-inner,.ant-picker-week-panel .ant-picker-cell:hover .ant-picker-cell-inner{background:0 0!important}.ant-picker-week-panel-row td{transition:background .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,.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-datetime-panel .ant-picker-time-panel,.ant-picker-time-panel-column:not(:first-child){border-left:1px solid #f0f0f0}.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-content{width:224px}.ant-picker-date-panel .ant-picker-content th{width:32px}.ant-picker-datetime-panel{display:flex}.ant-picker-datetime-panel .ant-picker-date-panel,.ant-picker-datetime-panel .ant-picker-time-panel{transition:opacity .3s}.ant-picker-datetime-panel-active .ant-picker-date-panel,.ant-picker-datetime-panel-active .ant-picker-time-panel{opacity:.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:flex;flex:auto;height:224px}.ant-picker-time-panel-column{flex:1 0 auto;width:56px;margin:0;padding:0;overflow-y:hidden;text-align:left;list-style:none;transition:background .3s}.ant-picker-time-panel-column::after{display:block;height:200px;content:''}.ant-picker-datetime-panel .ant-picker-time-panel-column::after{height:202px}.ant-picker-time-panel-column-active{background:rgba(230,247,255,.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:24px;margin:0;padding:0 0 0 14px;color:rgba(0,0,0,.85);line-height:24px;border-radius:0;cursor:pointer;transition:background .3s}.ant-picker-time-panel-column>li.ant-picker-time-panel-cell .ant-picker-time-panel-cell-inner:hover{background:#f5f5f5}.ant-menu-item:active,.ant-menu-submenu-title:active,.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,.25);background:0 0;cursor:not-allowed}:root .ant-picker-range-wrapper .ant-picker-month-panel .ant-picker-cell,:root .ant-picker-range-wrapper .ant-picker-year-panel .ant-picker-cell,_:-ms-fullscreen .ant-picker-range-wrapper .ant-picker-month-panel .ant-picker-cell,_:-ms-fullscreen .ant-picker-range-wrapper .ant-picker-year-panel .ant-picker-cell{padding:21px 0}.ant-picker-rtl .ant-picker-suffix{margin-right:2px;margin-left:0}.ant-picker-rtl .ant-picker-clear{right:auto;left:0}.ant-picker-panel-rtl .ant-picker-header-view button:not(:first-child){margin-right:4px;margin-left:0}.ant-picker-rtl.ant-picker-range .ant-picker-clear{right:auto;left:7px}.ant-picker-rtl.ant-picker-range .ant-picker-active-bar{margin-right:7px;margin-left:0}.ant-picker-rtl.ant-picker-range.ant-picker-small .ant-picker-active-bar{margin-right:7px}.ant-picker-dropdown-rtl .ant-picker-ranges{text-align:right}.ant-picker-dropdown-rtl .ant-picker-ranges .ant-picker-ok{float:left;margin-right:4px;margin-left:0}.ant-picker-panel-rtl .ant-picker-prev-icon,.ant-picker-panel-rtl .ant-picker-super-prev-icon{transform:rotate(135deg)}.ant-picker-panel-rtl .ant-picker-next-icon,.ant-picker-panel-rtl .ant-picker-super-next-icon{transform:rotate(-45deg)}.ant-picker-cell .ant-picker-cell-inner{position:relative;z-index:2;display:inline-block;min-width:22px;height:22px;line-height:22px;border-radius:2px;transition:background .3s,border .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-cell-in-view.ant-picker-cell-range-start.ant-picker-cell-range-end::before{right:50%;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:-6px}.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:-6px;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 .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:0 2px 2px 0}.ant-picker-panel-rtl .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:2px 0 0 2px}.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,.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover-edge-start.ant-picker-cell-range-hover-edge-start-near-range::after,.ant-picker-panel-rtl tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover:not(.ant-picker-cell-selected):first-child::after{right:6px;left:0;border-right:1px dashed #7ec1ff;border-left:none;border-radius:0 2px 2px 0}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-end.ant-picker-cell-range-hover-edge-end.ant-picker-cell-range-hover-edge-end-near-range::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,.ant-picker-panel-rtl tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover:not(.ant-picker-cell-selected):last-child::after{right:0;left:6px;border-right:none;border-left:1px dashed #7ec1ff;border-radius:2px 0 0 2px}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-end.ant-picker-cell-range-hover-start.ant-picker-cell-range-hover-edge-end:not(.ant-picker-cell-range-hover)::after,.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover-edge-start:not(.ant-picker-cell-range-hover)::after,.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover-end.ant-picker-cell-range-hover-edge-start:not(.ant-picker-cell-range-hover)::after,.ant-picker-panel-rtl tr>.ant-picker-cell-in-view.ant-picker-cell-end.ant-picker-cell-range-hover.ant-picker-cell-range-hover-edge-end: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 tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::after,.ant-picker-panel-rtl tr>.ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover.ant-picker-cell-range-hover-edge-start:last-child::after{right:6px;left:6px;border-right:1px dashed #7ec1ff;border-left:1px dashed #7ec1ff;border-radius:2px}.ant-picker-dropdown-rtl .ant-picker-footer-extra{text-align:right}.ant-picker-panel-rtl .ant-picker-time-panel{direction:ltr}.ant-descriptions-rtl,.ant-divider-rtl,.ant-drawer-rtl,.ant-dropdown-menu.ant-dropdown-menu-rtl,.ant-dropdown-rtl,.ant-dropdown-rtl .ant-dropdown-menu-item-group-title,.ant-empty-rtl,.ant-input-affix-wrapper-rtl,.ant-input-group-rtl,.ant-input-group-wrapper-rtl,.ant-input-number-rtl,.ant-input-rtl,.ant-input-search-rtl,.ant-input-textarea-rtl,.ant-row-rtl{direction:rtl}.ant-picker-inline{border:none;padding:0}.ant-picker-inline .ant-picker-range-arrow{display:none!important}.ant-descriptions-header{display:flex;align-items:center;margin-bottom:8px}.ant-descriptions-title{flex:auto;overflow:hidden;color:rgba(0,0,0,.85);font-weight:700;font-size:14px;line-height:1.66667;white-space:nowrap;text-overflow:ellipsis}.ant-descriptions-extra,.ant-descriptions-item-content,.ant-descriptions-item-label,.ant-divider{font-size:12px;color:rgba(0,0,0,.85)}.ant-descriptions-extra{margin-left:auto}.ant-descriptions-view{width:100%;overflow:hidden;border-radius:2px}.ant-descriptions-view table{width:100%;table-layout:fixed}.ant-descriptions-row>td,.ant-descriptions-row>th{padding-bottom:4px}.ant-descriptions-row:last-child{border-bottom:none}.ant-descriptions-item-label{font-weight:400;line-height:1.66667;text-align:start}.ant-descriptions-item-label::after{content:':';position:relative;top:-.5px;margin:0 8px 0 2px}.ant-descriptions-item-label.ant-descriptions-item-no-colon::after,.ant-dropdown::before{content:' '}.ant-descriptions-item-no-label::after{margin:0;content:''}.ant-descriptions-item-content{display:table-cell;flex:1;line-height:1.66667;word-break:break-word;overflow-wrap:break-word}.ant-descriptions-item{padding-bottom:0;vertical-align:top}.ant-descriptions-item-container{display:flex}.ant-descriptions-item-container .ant-descriptions-item-content,.ant-descriptions-item-container .ant-descriptions-item-label{display:inline-flex;align-items:baseline}.ant-descriptions-middle .ant-descriptions-row>td,.ant-descriptions-middle .ant-descriptions-row>th{padding-bottom:8px}.ant-descriptions-small .ant-descriptions-row>td,.ant-descriptions-small .ant-descriptions-row>th{padding-bottom:4px}.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-content,.ant-descriptions-bordered .ant-descriptions-item-label{padding:12px 16px;border-right:1px solid #f0f0f0}.ant-descriptions-bordered .ant-descriptions-item-content:last-child,.ant-descriptions-bordered .ant-descriptions-item-label:last-child{border-right:none}.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-content,.ant-descriptions-bordered.ant-descriptions-middle .ant-descriptions-item-label{padding:8px 16px}.ant-descriptions-bordered.ant-descriptions-small .ant-descriptions-item-content,.ant-descriptions-bordered.ant-descriptions-small .ant-descriptions-item-label{padding:4px 8px}.ant-descriptions-rtl .ant-descriptions-item-label::after{margin:0 2px 0 8px}.ant-descriptions-rtl.ant-descriptions-bordered .ant-descriptions-item-content,.ant-descriptions-rtl.ant-descriptions-bordered .ant-descriptions-item-label{border-right:none;border-left:1px solid #f0f0f0}.ant-descriptions-rtl.ant-descriptions-bordered .ant-descriptions-item-content:last-child,.ant-descriptions-rtl.ant-descriptions-bordered .ant-descriptions-item-label:last-child{border-left:none}nz-descriptions{display:block}.ant-divider{box-sizing:border-box;margin:0;padding:0;font-variant:tabular-nums;line-height:1.66667;list-style:none;font-feature-settings:tnum;border-top:1px solid rgba(0,0,0,.06)}.ant-divider-vertical{position:relative;top:-.06em;display:inline-block;height:.9em;margin:0 8px;vertical-align:middle;border-top:0;border-left:1px solid rgba(0,0,0,.06)}.ant-divider-horizontal{display:flex;clear:both;width:100%;min-width:100%;margin:24px 0}.ant-divider-horizontal.ant-divider-with-text{display:flex;margin:16px 0;color:rgba(0,0,0,.85);font-weight:500;font-size:14px;white-space:nowrap;text-align:center;border-top:0;border-top-color:rgba(0,0,0,.06)}.ant-divider-horizontal.ant-divider-with-text::after,.ant-divider-horizontal.ant-divider-with-text::before{position:relative;top:50%;width:50%;border-top:1px solid transparent;border-top-color:inherit;border-bottom:0;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,.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:0 0;border-color:rgba(0,0,0,.06);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::after,.ant-divider-horizontal.ant-divider-with-text.ant-divider-dashed::before{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,.85);font-weight:400;font-size:12px}.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,.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%}.ant-drawer{position:fixed;z-index:1000;width:0%;height:100%;transition:transform .3s cubic-bezier(.7,.3,.1,1),height 0s ease .3s,width 0s ease .3s}.ant-drawer>*{transition:transform .3s cubic-bezier(.7,.3,.1,1),box-shadow .3s cubic-bezier(.7,.3,.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%;transition:transform .3s cubic-bezier(.7,.3,.1,1)}.ant-drawer-left,.ant-drawer-left .ant-drawer-content-wrapper{left:0}.ant-drawer-left.ant-drawer-open .ant-drawer-content-wrapper{box-shadow:6px 0 16px -8px rgba(0,0,0,.08),9px 0 28px 0 rgba(0,0,0,.05),12px 0 48px 16px rgba(0,0,0,.03)}.ant-drawer-right,.ant-drawer-right .ant-drawer-content-wrapper{right:0}.ant-drawer-right.ant-drawer-open .ant-drawer-content-wrapper{box-shadow:-6px 0 16px -8px rgba(0,0,0,.08),-9px 0 28px 0 rgba(0,0,0,.05),-12px 0 48px 16px rgba(0,0,0,.03)}.ant-drawer-top.ant-drawer-open .ant-drawer-content-wrapper,.header-dropdown{box-shadow:0 6px 16px -8px rgba(0,0,0,.08),0 9px 28px 0 rgba(0,0,0,.05),0 12px 48px 16px rgba(0,0,0,.03)}.ant-drawer-right.ant-drawer-open.no-mask{right:1px;transform:translateX(1px)}.ant-drawer-bottom,.ant-drawer-top{left:0;width:100%;height:0%}.ant-drawer-bottom .ant-drawer-content-wrapper,.ant-drawer-top .ant-drawer-content-wrapper{width:100%}.ant-drawer-bottom.ant-drawer-open,.ant-drawer-top.ant-drawer-open{height:100%;transition:transform .3s cubic-bezier(.7,.3,.1,1)}.ant-drawer-top{top:0}.ant-drawer-bottom,.ant-drawer-bottom .ant-drawer-content-wrapper{bottom:0}.ant-drawer-bottom.ant-drawer-open .ant-drawer-content-wrapper{box-shadow:0 -6px 16px -8px rgba(0,0,0,.08),0 -9px 28px 0 rgba(0,0,0,.05),0 -12px 48px 16px rgba(0,0,0,.03)}.ant-drawer-bottom.ant-drawer-open.no-mask{bottom:1px;transform:translateY(1px)}.ant-drawer.ant-drawer-open .ant-drawer-mask{height:100%;opacity:1;transition:none;animation:antdDrawerFadeIn .3s cubic-bezier(.7,.3,.1,1);pointer-events:auto}.ant-drawer-mask,.ant-dropdown-menu-item-disabled a,.ant-dropdown-menu-submenu-title-disabled a{pointer-events:none}.ant-drawer-title{margin:0;color:rgba(0,0,0,.85);font-weight:500;font-size:14px;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:15px;color:rgba(0,0,0,.45);font-weight:700;font-size:14px;font-style:normal;line-height:1;text-align:center;text-transform:none;text-decoration:none;background:0 0;border:0;outline:0;cursor:pointer;transition:color .3s;text-rendering:auto}.ant-drawer-body,.ant-dropdown{line-height:1.66667;font-size:12px}.ant-drawer-header,.ant-list-split .ant-list-item{border-bottom:1px solid #f0f0f0}.ant-drawer-footer,.ant-list-split.ant-list-empty .ant-list-footer{border-top:1px solid #f0f0f0}.ant-drawer-close:focus,.ant-drawer-close:hover{color:rgba(0,0,0,.75);text-decoration:none}.ant-drawer-header,.ant-drawer-header-no-title{color:rgba(0,0,0,.85);background:#fff}.ant-drawer-header-no-title .ant-drawer-close{margin-right:var(--scroll-bar);padding-right:calc(15px - var(--scroll-bar))}.ant-drawer-header{position:relative;padding:11px 16px;border-radius:2px 2px 0 0}.ant-drawer-wrapper-body{display:flex;flex-direction:column;flex-wrap:nowrap;width:100%;height:100%}.ant-drawer-body{flex-grow:1;padding:16px;overflow:auto;word-wrap:break-word}.ant-drawer-footer{flex-shrink:0;padding:8px}.ant-drawer-mask{position:absolute;top:0;left:0;width:100%;height:0;background-color:rgba(0,0,0,.45);opacity:0;filter:alpha(opacity=45);transition:opacity .3s linear,height 0s ease .3s}.ant-drawer-open-content{box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05)}.ant-drawer .ant-picker-clear{background:#fff}@keyframes antdDrawerFadeIn{0%{opacity:0}100%{opacity:1}}.ant-drawer-rtl .ant-drawer-close{right:auto;left:0}.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{box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-variant:tabular-nums;list-style:none;font-feature-settings:tnum;z-index:1050;display:block}.ant-dropdown::before{position:absolute;top:-4px;right:0;bottom:-4px;left:-7px;z-index:-9999;opacity:.0001}.ant-dropdown-placement-bottomRight>.ant-dropdown-arrow,.ant-dropdown-placement-topRight>.ant-dropdown-arrow{right:16px}.ant-dropdown-wrap{position:relative}.ant-dropdown-wrap .ant-btn>.anticon-down{font-size:10px}.ant-dropdown-wrap .anticon-down::before{transition:transform .2s}.ant-dropdown-hidden,.ant-dropdown-menu-hidden,.ant-dropdown-menu-submenu-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.49px;height:8.49px;background:0 0;border-style:solid;border-width:4.24px;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;box-shadow:3px 3px 7px rgba(0,0,0,.07);border-color:transparent #fff #fff transparent}.ant-dropdown-placement-topCenter>.ant-dropdown-arrow{left:50%;transform:translateX(-50%) rotate(45deg)}.ant-dropdown-placement-topLeft>.ant-dropdown-arrow{left:16px}.ant-dropdown-placement-bottomCenter>.ant-dropdown-arrow,.ant-dropdown-placement-bottomLeft>.ant-dropdown-arrow,.ant-dropdown-placement-bottomRight>.ant-dropdown-arrow{top:6px;box-shadow:-2px -2px 5px rgba(0,0,0,.06);border-color:#fff transparent transparent #fff}.ant-dropdown-menu,.ant-menu{box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05)}.ant-dropdown-placement-bottomCenter>.ant-dropdown-arrow{left:50%;transform:translateX(-50%) rotate(45deg)}.ant-dropdown-placement-bottomLeft>.ant-dropdown-arrow{left: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:0}.ant-dropdown-menu-item-group-title{padding:5px 8px;color:rgba(0,0,0,.45);transition:all .3s}.ant-dropdown-menu-submenu-popup{position:absolute;z-index:1050;background:0 0;box-shadow:none;transform-origin:0 0}.ant-dropdown-menu-submenu-popup li,.ant-dropdown-menu-submenu-popup ul{list-style:none}.ant-dropdown-menu-submenu-popup ul{margin-right:.3em;margin-left:.3em}.ant-dropdown-menu-item{position:relative;display:flex;align-items:center}.ant-dropdown-menu-item-icon{min-width:12px;margin-right:8px;font-size:12px}.ant-dropdown-menu-title-content{flex:auto}.ant-dropdown-menu-title-content>a{color:inherit;transition:all .3s}.ant-dropdown-menu-title-content>a:hover{color:inherit}.ant-dropdown-menu-title-content>a::after{position:absolute;top:0;right:0;bottom:0;left:0;content:''}.ant-dropdown-menu-item,.ant-dropdown-menu-submenu-title{clear:both;margin:0;padding:5px 8px;color:rgba(0,0,0,.85);font-weight:400;font-size:12px;line-height:18px;white-space:nowrap;cursor:pointer;transition:all .3s}.ant-dropdown-menu-item-selected,.ant-dropdown-menu-submenu-title-selected{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,.25);cursor:not-allowed}.ant-dropdown-menu-item-disabled:hover,.ant-dropdown-menu-submenu-title-disabled:hover{color:rgba(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-expand-icon,.ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon{position:absolute;right:4px}.ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon,.ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon{margin-right:0!important;color:rgba(0,0,0,.45);font-size:10px;font-style:normal}.ant-dropdown-menu-item-group-list{margin:0 8px;padding:0;list-style:none}.ant-dropdown-menu-submenu-title{padding-right:20px}.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;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,.25);background-color:#fff;cursor:not-allowed}.ant-dropdown-menu-submenu-selected .ant-dropdown-menu-submenu-title{color:#1890ff}.ant-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-dropdown-placement-topCenter,.ant-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-dropdown-placement-topLeft,.ant-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-dropdown-placement-topRight,.ant-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-dropdown-placement-topCenter,.ant-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-dropdown-placement-topLeft,.ant-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-dropdown-placement-topRight{animation-name:antSlideDownIn}.ant-dropdown.ant-slide-down-leave.ant-slide-down-leave-active.ant-dropdown-placement-bottomCenter,.ant-dropdown.ant-slide-down-leave.ant-slide-down-leave-active.ant-dropdown-placement-bottomLeft,.ant-dropdown.ant-slide-down-leave.ant-slide-down-leave-active.ant-dropdown-placement-bottomRight{animation-name:antSlideUpOut}.ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-dropdown-placement-topCenter,.ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-dropdown-placement-topLeft,.ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-dropdown-placement-topRight{animation-name:antSlideDownOut}.ant-dropdown-button>.anticon.anticon-down,.ant-dropdown-link>.anticon.anticon-down,.ant-dropdown-trigger>.anticon.anticon-down{font-size:10px;vertical-align:baseline}.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:4px;padding-left:4px}.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-item .ant-dropdown-menu-submenu-arrow::after,.ant-dropdown-menu-dark .ant-dropdown-menu-item>.anticon+span>a,.ant-dropdown-menu-dark .ant-dropdown-menu-item>.anticon+span>a .ant-dropdown-menu-submenu-arrow::after,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a .ant-dropdown-menu-submenu-arrow::after,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow::after{color:rgba(255,255,255,.65)}.ant-dropdown-menu-dark .ant-dropdown-menu-item:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item>.anticon+span>a:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title:hover{color:#fff;background:0 0}.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-input,.ant-input-affix-wrapper,.ant-input-number{min-width:0;background-color:#fff}.ant-dropdown-rtl.ant-dropdown::before{right:-7px;left:0}.ant-dropdown-menu.ant-dropdown-menu-rtl,.ant-dropdown-rtl .ant-dropdown-menu-item-group-title{text-align:right}.ant-dropdown-menu-submenu-popup.ant-dropdown-menu-submenu-rtl{transform-origin:100% 0}.ant-dropdown-rtl .ant-dropdown-menu-item,.ant-dropdown-rtl .ant-dropdown-menu-submenu-popup li,.ant-dropdown-rtl .ant-dropdown-menu-submenu-popup ul,.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-item>span>.anticon:first-child,.ant-dropdown-rtl .ant-dropdown-menu-submenu-title>.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:4px}.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;transform:scaleX(-1)}.ant-dropdown-rtl .ant-dropdown-menu-submenu-title{padding-right:8px;padding-left:20px}.ant-dropdown-rtl .ant-dropdown-menu-submenu-vertical>.ant-dropdown-menu{right:100%;left:0;margin-right:4px;margin-left:0}.ant-dropdown-menu>ul{list-style:inherit;margin:0;padding:0}.ant-dropdown{top:0;left:0;position:relative;width:100%;margin-top:6px;margin-bottom:6px}.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{transform:rotate(180deg)}.ant-empty{margin:0 8px;font-size:12px;line-height:1.66667;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-footer{margin-top:16px}.ant-empty-normal{margin:32px 0;color:rgba(0,0,0,.25)}.ant-empty-normal .ant-empty-image{height:40px}.ant-empty-small{margin:8px 0;color:rgba(0,0,0,.25)}.ant-empty-small .ant-empty-image{height:35px}.ant-empty-img-default-ellipse{fill:#f5f5f5;fill-opacity:.8}.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,.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}nz-empty{display:block}.ant-row,.ant-row::after,.ant-row::before{display:flex}.ant-row{flex-flow:row wrap}.ant-col-1,.ant-col-10,.ant-col-11,.ant-col-12,.ant-col-13,.ant-col-14,.ant-col-15,.ant-col-16,.ant-col-17,.ant-col-18,.ant-col-19,.ant-col-2,.ant-col-20,.ant-col-21,.ant-col-22,.ant-col-23,.ant-col-24,.ant-col-3,.ant-col-4,.ant-col-5,.ant-col-6,.ant-col-7,.ant-col-8,.ant-col-9{display:block}.ant-row-no-wrap{flex-wrap:nowrap}.ant-row-start{justify-content:flex-start}.ant-row-center{justify-content:center}.ant-row-end{justify-content:flex-end}.ant-page-header-heading,.ant-row-space-between{justify-content:space-between}.ant-row-space-around{justify-content:space-around}.ant-row-top{align-items:flex-start}.ant-row-middle{align-items:center}.ant-row-bottom{align-items:flex-end}.ant-col{position:relative;max-width:100%;min-height:1px}.ant-col-24{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{order:24}.ant-col-23{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{order:23}.ant-col-22{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{order:22}.ant-col-21{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{order:21}.ant-col-20{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{order:20}.ant-col-19{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{order:19}.ant-col-18{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{order:18}.ant-col-17{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{order:17}.ant-col-16{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{order:16}.ant-col-15{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{order:15}.ant-col-14{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{order:14}.ant-col-13{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{order:13}.ant-col-12{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{order:12}.ant-col-11{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{order:11}.ant-col-10{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{order:10}.ant-col-9{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{order:9}.ant-col-8{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{order:8}.ant-col-7{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{order:7}.ant-col-6{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{order:6}.ant-col-5{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{order:5}.ant-col-4{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{order:4}.ant-col-3{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{order:3}.ant-col-2{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{order:2}.ant-col-1{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{order:1}.ant-col-0{display:none}.ant-col-offset-0{margin-left:0}.ant-col-order-0{order:0}.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;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{order:24}.ant-col-xs-23{display:block;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{order:23}.ant-col-xs-22{display:block;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{order:22}.ant-col-xs-21{display:block;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{order:21}.ant-col-xs-20{display:block;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{order:20}.ant-col-xs-19{display:block;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{order:19}.ant-col-xs-18{display:block;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{order:18}.ant-col-xs-17{display:block;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{order:17}.ant-col-xs-16{display:block;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{order:16}.ant-col-xs-15{display:block;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{order:15}.ant-col-xs-14{display:block;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{order:14}.ant-col-xs-13{display:block;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{order:13}.ant-col-xs-12{display:block;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{order:12}.ant-col-xs-11{display:block;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{order:11}.ant-col-xs-10{display:block;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{order:10}.ant-col-xs-9{display:block;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{order:9}.ant-col-xs-8{display:block;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{order:8}.ant-col-xs-7{display:block;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{order:7}.ant-col-xs-6{display:block;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{order:6}.ant-col-xs-5{display:block;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{order:5}.ant-col-xs-4{display:block;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{order:4}.ant-col-xs-3{display:block;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{order:3}.ant-col-xs-2{display:block;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{order:2}.ant-col-xs-order-1,.ant-layout-sider-right,.ant-tabs-rtl.ant-tabs-left>.ant-tabs-nav{order:1}.ant-col-xs-1{display:block;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-xs-push-1{left:4.16666667%}.ant-col-pull-0.ant-col-rtl,.ant-col-push-0,.ant-col-xs-pull-0.ant-col-rtl,.ant-col-xs-push-0,.ant-col-xs-push-1.ant-col-rtl{left:auto}.ant-col-xs-pull-1{right:4.16666667%}.ant-col-pull-0,.ant-col-push-0.ant-col-rtl,.ant-col-xs-pull-0,.ant-col-xs-push-0.ant-col-rtl{right:auto}.ant-col-xs-offset-1{margin-left:4.16666667%}.ant-col-xs-0{display:none}.ant-col-xs-offset-0{margin-left:0}.ant-col-xs-order-0{order:0}.ant-col-xs-offset-0.ant-col-rtl{margin-right:0}.ant-col-xs-push-1.ant-col-rtl{right:4.16666667%}.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;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{order:24}.ant-col-sm-23{display:block;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{order:23}.ant-col-sm-22{display:block;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{order:22}.ant-col-sm-21{display:block;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{order:21}.ant-col-sm-20{display:block;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{order:20}.ant-col-sm-19{display:block;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{order:19}.ant-col-sm-18{display:block;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{order:18}.ant-col-sm-17{display:block;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{order:17}.ant-col-sm-16{display:block;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{order:16}.ant-col-sm-15{display:block;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{order:15}.ant-col-sm-14{display:block;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{order:14}.ant-col-sm-13{display:block;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{order:13}.ant-col-sm-12{display:block;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{order:12}.ant-col-sm-11{display:block;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{order:11}.ant-col-sm-10{display:block;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{order:10}.ant-col-sm-9{display:block;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{order:9}.ant-col-sm-8{display:block;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{order:8}.ant-col-sm-7{display:block;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{order:7}.ant-col-sm-6{display:block;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{order:6}.ant-col-sm-5{display:block;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{order:5}.ant-col-sm-4{display:block;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{order:4}.ant-col-sm-3{display:block;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{order:3}.ant-col-sm-2{display:block;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{order:2}.ant-col-sm-1{display:block;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-sm-push-1{left:4.16666667%}.ant-col-pull-0.ant-col-rtl,.ant-col-push-0,.ant-col-sm-pull-0.ant-col-rtl,.ant-col-sm-push-0,.ant-col-sm-push-1.ant-col-rtl{left:auto}.ant-col-sm-pull-1{right:4.16666667%}.ant-col-pull-0,.ant-col-push-0.ant-col-rtl,.ant-col-sm-pull-0,.ant-col-sm-push-0.ant-col-rtl{right:auto}.ant-col-sm-offset-1{margin-left:4.16666667%}.ant-col-sm-order-1{order:1}.ant-col-sm-0{display:none}.ant-col-sm-offset-0{margin-left:0}.ant-col-sm-order-0{order:0}.ant-col-sm-offset-0.ant-col-rtl{margin-right:0}.ant-col-sm-push-1.ant-col-rtl{right:4.16666667%}.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;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{order:24}.ant-col-md-23{display:block;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{order:23}.ant-col-md-22{display:block;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{order:22}.ant-col-md-21{display:block;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{order:21}.ant-col-md-20{display:block;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{order:20}.ant-col-md-19{display:block;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{order:19}.ant-col-md-18{display:block;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{order:18}.ant-col-md-17{display:block;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{order:17}.ant-col-md-16{display:block;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{order:16}.ant-col-md-15{display:block;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{order:15}.ant-col-md-14{display:block;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{order:14}.ant-col-md-13{display:block;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{order:13}.ant-col-md-12{display:block;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{order:12}.ant-col-md-11{display:block;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{order:11}.ant-col-md-10{display:block;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{order:10}.ant-col-md-9{display:block;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{order:9}.ant-col-md-8{display:block;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{order:8}.ant-col-md-7{display:block;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{order:7}.ant-col-md-6{display:block;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{order:6}.ant-col-md-5{display:block;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{order:5}.ant-col-md-4{display:block;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{order:4}.ant-col-md-3{display:block;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{order:3}.ant-col-md-2{display:block;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{order:2}.ant-col-md-1{display:block;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-md-push-1{left:4.16666667%}.ant-col-md-pull-0.ant-col-rtl,.ant-col-md-push-0,.ant-col-md-push-1.ant-col-rtl,.ant-col-pull-0.ant-col-rtl,.ant-col-push-0{left:auto}.ant-col-md-pull-1{right:4.16666667%}.ant-col-md-pull-0,.ant-col-md-push-0.ant-col-rtl,.ant-col-pull-0,.ant-col-push-0.ant-col-rtl{right:auto}.ant-col-md-offset-1{margin-left:4.16666667%}.ant-col-md-order-1{order:1}.ant-col-md-0{display:none}.ant-col-md-offset-0{margin-left:0}.ant-col-md-order-0{order:0}.ant-col-md-offset-0.ant-col-rtl{margin-right:0}.ant-col-md-push-1.ant-col-rtl{right:4.16666667%}.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;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{order:24}.ant-col-lg-23{display:block;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{order:23}.ant-col-lg-22{display:block;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{order:22}.ant-col-lg-21{display:block;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{order:21}.ant-col-lg-20{display:block;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{order:20}.ant-col-lg-19{display:block;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{order:19}.ant-col-lg-18{display:block;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{order:18}.ant-col-lg-17{display:block;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{order:17}.ant-col-lg-16{display:block;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{order:16}.ant-col-lg-15{display:block;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{order:15}.ant-col-lg-14{display:block;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{order:14}.ant-col-lg-13{display:block;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{order:13}.ant-col-lg-12{display:block;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{order:12}.ant-col-lg-11{display:block;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{order:11}.ant-col-lg-10{display:block;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{order:10}.ant-col-lg-9{display:block;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{order:9}.ant-col-lg-8{display:block;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{order:8}.ant-col-lg-7{display:block;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{order:7}.ant-col-lg-6{display:block;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{order:6}.ant-col-lg-5{display:block;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{order:5}.ant-col-lg-4{display:block;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{order:4}.ant-col-lg-3{display:block;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{order:3}.ant-col-lg-2{display:block;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{order:2}.ant-col-lg-1{display:block;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-lg-push-1{left:4.16666667%}.ant-col-lg-pull-0.ant-col-rtl,.ant-col-lg-push-0,.ant-col-lg-push-1.ant-col-rtl,.ant-col-pull-0.ant-col-rtl,.ant-col-push-0{left:auto}.ant-col-lg-pull-1{right:4.16666667%}.ant-col-lg-pull-0,.ant-col-lg-push-0.ant-col-rtl,.ant-col-pull-0,.ant-col-push-0.ant-col-rtl{right:auto}.ant-col-lg-offset-1{margin-left:4.16666667%}.ant-col-lg-order-1{order:1}.ant-col-lg-0{display:none}.ant-col-lg-offset-0{margin-left:0}.ant-col-lg-order-0{order:0}.ant-col-lg-offset-0.ant-col-rtl{margin-right:0}.ant-col-lg-push-1.ant-col-rtl{right:4.16666667%}.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;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{order:24}.ant-col-xl-23{display:block;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{order:23}.ant-col-xl-22{display:block;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{order:22}.ant-col-xl-21{display:block;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{order:21}.ant-col-xl-20{display:block;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{order:20}.ant-col-xl-19{display:block;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{order:19}.ant-col-xl-18{display:block;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{order:18}.ant-col-xl-17{display:block;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{order:17}.ant-col-xl-16{display:block;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{order:16}.ant-col-xl-15{display:block;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{order:15}.ant-col-xl-14{display:block;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{order:14}.ant-col-xl-13{display:block;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{order:13}.ant-col-xl-12{display:block;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{order:12}.ant-col-xl-11{display:block;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{order:11}.ant-col-xl-10{display:block;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{order:10}.ant-col-xl-9{display:block;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{order:9}.ant-col-xl-8{display:block;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{order:8}.ant-col-xl-7{display:block;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{order:7}.ant-col-xl-6{display:block;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{order:6}.ant-col-xl-5{display:block;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{order:5}.ant-col-xl-4{display:block;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{order:4}.ant-col-xl-3{display:block;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{order:3}.ant-col-xl-2{display:block;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{order:2}.ant-col-xl-1{display:block;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-xl-push-1{left:4.16666667%}.ant-col-pull-0.ant-col-rtl,.ant-col-push-0,.ant-col-xl-pull-0.ant-col-rtl,.ant-col-xl-push-0,.ant-col-xl-push-1.ant-col-rtl{left:auto}.ant-col-xl-pull-1{right:4.16666667%}.ant-col-pull-0,.ant-col-push-0.ant-col-rtl,.ant-col-xl-pull-0,.ant-col-xl-push-0.ant-col-rtl{right:auto}.ant-col-xl-offset-1{margin-left:4.16666667%}.ant-col-xl-order-1{order:1}.ant-col-xl-0{display:none}.ant-col-xl-offset-0{margin-left:0}.ant-col-xl-order-0{order:0}.ant-col-xl-offset-0.ant-col-rtl{margin-right:0}.ant-col-xl-push-1.ant-col-rtl{right:4.16666667%}.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;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{order:24}.ant-col-xxl-23{display:block;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{order:23}.ant-col-xxl-22{display:block;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{order:22}.ant-col-xxl-21{display:block;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{order:21}.ant-col-xxl-20{display:block;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{order:20}.ant-col-xxl-19{display:block;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{order:19}.ant-col-xxl-18{display:block;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{order:18}.ant-col-xxl-17{display:block;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{order:17}.ant-col-xxl-16{display:block;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{order:16}.ant-col-xxl-15{display:block;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{order:15}.ant-col-xxl-14{display:block;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{order:14}.ant-col-xxl-13{display:block;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{order:13}.ant-col-xxl-12{display:block;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{order:12}.ant-col-xxl-11{display:block;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{order:11}.ant-col-xxl-10{display:block;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{order:10}.ant-col-xxl-9{display:block;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{order:9}.ant-col-xxl-8{display:block;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{order:8}.ant-col-xxl-7{display:block;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{order:7}.ant-col-xxl-6{display:block;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{order:6}.ant-col-xxl-5{display:block;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{order:5}.ant-col-xxl-4{display:block;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{order:4}.ant-col-xxl-3{display:block;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{order:3}.ant-col-xxl-2{display:block;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{order:2}.ant-col-xxl-1{display:block;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-xxl-push-1{left:4.16666667%}.ant-col-pull-0.ant-col-rtl,.ant-col-push-0,.ant-col-xxl-pull-0.ant-col-rtl,.ant-col-xxl-push-0,.ant-col-xxl-push-1.ant-col-rtl{left:auto}.ant-col-xxl-pull-1{right:4.16666667%}.ant-col-pull-0,.ant-col-push-0.ant-col-rtl,.ant-col-xxl-pull-0,.ant-col-xxl-push-0.ant-col-rtl{right:auto}.ant-col-xxl-offset-1{margin-left:4.16666667%}.ant-col-xxl-order-1{order:1}.ant-col-xxl-0{display:none}.ant-col-xxl-offset-0{margin-left:0}.ant-col-xxl-order-0{order:0}.ant-col-xxl-offset-0.ant-col-rtl{margin-right:0}.ant-col-xxl-push-1.ant-col-rtl{right:4.16666667%}.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-input-affix-wrapper{position:relative;width:100%;padding:3px 7px;color:rgba(0,0,0,.85);font-size:12px;line-height:1.66667;background-image:none;border:1px solid #d9d9d9;border-radius:2px;transition:all .3s;display:inline-flex}.ant-input-affix-wrapper-disabled,.ant-input-affix-wrapper[disabled]{background-color:#f5f5f5;cursor:not-allowed;pointer-events:none;opacity:1}.ant-input-affix-wrapper::-moz-placeholder{opacity:1}.ant-input-affix-wrapper::placeholder{color:#bfbfbf}.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-focused,.ant-input-affix-wrapper:focus{border-color:#40a9ff;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(24,144,255,.2)}.ant-input-rtl .ant-input-affix-wrapper-focused,.ant-input-rtl .ant-input-affix-wrapper:focus{border-right-width:0;border-left-width:1px!important}.ant-input-affix-wrapper-disabled:hover,.ant-input-affix-wrapper[disabled]:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-input-affix-wrapper-disabled{color:rgba(0,0,0,.25)}.ant-input-affix-wrapper[disabled]{color:rgba(0,0,0,.25)}.ant-input-affix-wrapper-borderless,.ant-input-affix-wrapper-borderless-disabled,.ant-input-affix-wrapper-borderless-focused,.ant-input-affix-wrapper-borderless:focus,.ant-input-affix-wrapper-borderless:hover,.ant-input-affix-wrapper-borderless[disabled]{background-color:transparent;border:none;box-shadow:none}textarea.ant-input-affix-wrapper{max-width:100%;height:auto;min-height:28px;line-height:1.66667;vertical-align:bottom;transition:all .3s,height 0s}.ant-input-affix-wrapper-lg{padding:3.4px 11px;font-size:14px}.ant-input-affix-wrapper-sm{padding:0 7px}.ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover{border-color:#40a9ff;border-right-width:1px!important;z-index:1}.ant-input-rtl .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover{border-right-width:0;border-left-width:1px!important}.ant-input-search-with-button .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover{z-index:0}.ant-input-affix-wrapper-focused,.ant-input-affix-wrapper:focus{z-index:1}.ant-input-affix-wrapper-disabled .ant-input[disabled]{background:0 0}.ant-input-affix-wrapper>input.ant-input{padding:0;border:none;outline:0}.ant-input-affix-wrapper>input.ant-input:focus{box-shadow:none}.ant-input-affix-wrapper::before{width:0;visibility:hidden;content:'\a0'}.ant-input-prefix,.ant-input-suffix{display:flex;flex:none;align-items:center}.ant-input-prefix{margin-right:4px}.ant-input-suffix{margin-left:4px}.ant-input-clear-icon{margin:0 4px;color:rgba(0,0,0,.25);font-size:12px;vertical-align:-1px;cursor:pointer;transition:color .3s}.ant-input,.ant-input-group{margin:0;line-height:1.66667;width:100%;list-style:none;font-variant:tabular-nums;box-sizing:border-box;font-feature-settings:tnum}.ant-input-clear-icon:hover{color:rgba(0,0,0,.45)}.ant-input,.ant-input-clear-icon:active{color:rgba(0,0,0,.85)}.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-affix-wrapper-textarea-with-clear-btn .ant-input-clear-icon{position:absolute;top:8px;right:8px;z-index:1}.ant-input{position:relative;display:inline-block;padding:3px 7px;font-size:12px;background-image:none;border:1px solid #d9d9d9;border-radius:2px;transition:all .3s}.ant-input::-moz-placeholder{opacity:1}.ant-input::placeholder{color:#bfbfbf}.ant-input-disabled,.ant-input[disabled]{background-color:#f5f5f5;cursor:not-allowed;color:rgba(0,0,0,.25);opacity:1;pointer-events:none}.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-focused,.ant-input:focus{border-color:#40a9ff;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(24,144,255,.2)}.ant-input-rtl .ant-input-focused,.ant-input-rtl .ant-input:focus{border-right-width:0;border-left-width:1px!important}.ant-input-disabled:hover,.ant-input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-input-group,.ant-input-group-addon{color:rgba(0,0,0,.85);position:relative}.ant-input-borderless,.ant-input-borderless-disabled,.ant-input-borderless-focused,.ant-input-borderless:focus,.ant-input-borderless:hover,.ant-input-borderless[disabled]{background-color:transparent;border:none;box-shadow:none}textarea.ant-input{max-width:100%;height:auto;min-height:28px;line-height:1.66667;vertical-align:bottom;transition:all .3s,height 0s}.ant-input-lg{padding:3.4px 11px;font-size:14px}.ant-input-sm{padding:0 7px}.ant-input-group{padding:0;font-size:12px;display:table;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,.ant-input-group .ant-input:hover{z-index:1;border-right-width:1px}.ant-input-search-with-button .ant-input-group .ant-input:hover{z-index:0}.ant-input-group-addon{padding:0 7px;font-weight:400;font-size:12px;text-align:center;background-color:#fafafa;border:1px solid #d9d9d9;border-radius:2px;transition:all .3s}.ant-input-group-addon .ant-select{margin:-4px -7px}.ant-input-group-addon .ant-select.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{background-color:inherit;border:1px solid transparent;box-shadow:none}.ant-input-group .ant-input-affix-wrapper:not(:first-child),.ant-input-group-addon:last-child,.ant-input-group-addon:last-child .ant-select .ant-select-selector,.ant-input-group>.ant-input-affix-wrapper:not(:first-child) .ant-input,.ant-input-group>.ant-input:last-child,.ant-input-group>.ant-input:last-child .ant-select .ant-select-selector{border-top-left-radius:0;border-bottom-left-radius:0}.ant-input-group .ant-input-affix-wrapper:not(:last-child),.ant-input-group-addon:first-child,.ant-input-group-addon:first-child .ant-select .ant-select-selector,.ant-input-group>.ant-input-affix-wrapper:not(:last-child) .ant-input,.ant-input-group>.ant-input:first-child,.ant-input-group>.ant-input:first-child .ant-select .ant-select-selector{border-top-right-radius:0;border-bottom-right-radius:0}.ant-input-number-focused,.ant-input-number:focus{box-shadow:0 0 0 2px rgba(24,144,255,.2);outline:0}.ant-input-group-addon .ant-select-focused .ant-select-selector,.ant-input-group-addon .ant-select-open .ant-select-selector{color:#1890ff}.ant-input-group-addon:first-child{border-right:0}.ant-input-group-addon:last-child{border-left:0}.ant-input-group-lg .ant-input,.ant-input-group-lg>.ant-input-group-addon{padding:3.4px 11px;font-size:14px}.ant-input-group-sm .ant-input,.ant-input-group-sm>.ant-input-group-addon{padding:0 7px}.ant-input-group-lg .ant-select-single .ant-select-selector{height:32px}.ant-input-group-sm .ant-select-single .ant-select-selector{height:22px}.ant-input-search-button,.ant-input[type=color]{height:28px}.ant-input-search .ant-input-group .ant-input-affix-wrapper:not(:last-child){border-top-left-radius:2px;border-bottom-left-radius:2px}.ant-input-group.ant-input-group-compact{display:block}.ant-input-group.ant-input-group-compact::after,.ant-input-group.ant-input-group-compact::before{display:table;content:''}.ant-input-group.ant-input-group-compact::after{clear:both}.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):focus,.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):focus,.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):focus,.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>*{display:inline-block;float:none;vertical-align:top;border-radius:0}.ant-input-group.ant-input-group-compact>.ant-input-affix-wrapper,.ant-input-group.ant-input-group-compact>.ant-picker-range{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-cascader-picker .ant-input,.ant-input-group.ant-input-group-compact>.ant-input-group-wrapper .ant-input,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-selector{border-right-width:1px;border-radius:0}.ant-input-group.ant-input-group-compact>.ant-cascader-picker .ant-input:focus,.ant-input-group.ant-input-group-compact>.ant-cascader-picker .ant-input:hover,.ant-input-group.ant-input-group-compact>.ant-input-group-wrapper .ant-input:focus,.ant-input-group.ant-input-group-compact>.ant-input-group-wrapper .ant-input:hover,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input:focus,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input:hover,.ant-input-group.ant-input-group-compact>.ant-select-focused,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-arrow,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-selector:focus,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-selector:hover{z-index:1}.ant-input-group.ant-input-group-compact>.ant-cascader-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-select:first-child>.ant-select-selector,.ant-input-group.ant-input-group-compact>:first-child{border-top-left-radius:2px;border-bottom-left-radius:2px}.ant-input-group.ant-input-group-compact>.ant-cascader-picker-focused: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-select:last-child>.ant-select-selector,.ant-input-group.ant-input-group-compact>:last-child{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-group-compact .ant-input-group-wrapper+.ant-input-group-wrapper{margin-left:-1px}.ant-input-group.ant-input-group-compact .ant-input-group-wrapper+.ant-input-group-wrapper .ant-input-affix-wrapper,.ant-input-group.ant-input-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search>.ant-input-group>.ant-input-group-addon>.ant-input-search-button{border-radius:0}.ant-input-group.ant-input-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search>.ant-input-group>.ant-input{border-radius:2px 0 0 2px}.ant-input-group-rtl .ant-input-group-addon:first-child,.ant-input-group>.ant-input-rtl: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-affix-wrapper:not(:first-child),.ant-input-group-rtl.ant-input-group-addon:last-child,.ant-input-group-rtl.ant-input-group>.ant-input:last-child{border-radius:2px 0 0 2px}.ant-input-group-rtl.ant-input-group .ant-input-affix-wrapper:not(:last-child),.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-select-auto-complete:first-child .ant-input,.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>:first-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>.ant-cascader-picker-focused: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-select-auto-complete:last-child .ant-input,.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>:last-child{border-left-width:1px;border-radius:2px 0 0 2px}.ant-input-group.ant-input-group-compact .ant-input-group-wrapper-rtl+.ant-input-group-wrapper-rtl{margin-right:-1px;margin-left:0}.ant-input-group.ant-input-group-compact .ant-input-group-wrapper-rtl:not(:last-child).ant-input-search>.ant-input-group>.ant-input{border-radius:0 2px 2px 0}.ant-input-group-wrapper{display:inline-block;width:100%;text-align:start;vertical-align:top}.ant-input-password-icon{color:rgba(0,0,0,.45);cursor:pointer;transition:all .3s}.ant-input-password-icon:hover{color:rgba(0,0,0,.85)}.ant-input[type=color].ant-input-lg{height:32px}.ant-input[type=color].ant-input-sm{height:22px;padding-top:3px;padding-bottom:3px}.ant-input-textarea-show-count::after{float:right;color:rgba(0,0,0,.45);white-space:nowrap;content:attr(data-count);pointer-events:none}.ant-input-search .ant-input:focus,.ant-input-search .ant-input:hover{border-color:#40a9ff}.ant-input-search .ant-input:focus+.ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary),.ant-input-search .ant-input:hover+.ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary){border-left-color:#40a9ff}.ant-input-search .ant-input-affix-wrapper{border-radius:0}.ant-input-search .ant-input-lg{line-height:1.66647}.ant-input-search>.ant-input-group>.ant-input-group-addon:last-child{left:-1px;padding:0;border:0}.ant-input-search>.ant-input-group>.ant-input-group-addon:last-child .ant-input-search-button{padding-top:0;padding-bottom:0;border-radius:0 2px 2px 0}.ant-input-search>.ant-input-group>.ant-input-group-addon:last-child .ant-input-search-button:not(.ant-btn-primary){color:rgba(0,0,0,.45)}.ant-input-search>.ant-input-group>.ant-input-group-addon:last-child .ant-input-search-button:not(.ant-btn-primary).ant-btn-loading::before{top:0;right:0;bottom:0;left:0}.ant-input-search-button:focus,.ant-input-search-button:hover{z-index:1}.ant-input-search-large .ant-input-search-button{height:32px}.ant-input-search-small .ant-input-search-button{height:22px}.ant-input-affix-wrapper.ant-input-affix-wrapper-rtl>input.ant-input{border:none;outline:0}.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-textarea-rtl.ant-input-textarea-show-count::after{text-align:left}.ant-input-affix-wrapper-rtl .ant-input-clear-icon:last-child{margin-right:4px;margin-left:0}.ant-input-affix-wrapper-rtl .ant-input-clear-icon{right:auto;left:8px}.ant-input-search-rtl .ant-input:focus+.ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary),.ant-input-search-rtl .ant-input:hover+.ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary){border-right-color:#40a9ff;border-left-color:#d9d9d9}.ant-input-search-rtl>.ant-input-group>.ant-input-affix-wrapper-focused,.ant-input-search-rtl>.ant-input-group>.ant-input-affix-wrapper:hover{border-right-color:#40a9ff}.ant-input-search-rtl>.ant-input-group>.ant-input-group-addon{right:-1px;left:auto}.ant-input-search-rtl>.ant-input-group>.ant-input-group-addon .ant-input-search-button{border-radius:2px 0 0 2px}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.ant-input{height:28px}.ant-input-lg{height:32px}.ant-input-sm{height:22px}.ant-input-affix-wrapper>input.ant-input{height:auto}}textarea.nz-textarea-autosize-measuring{height:auto!important;overflow:hidden!important;padding:2px 0!important;box-sizing:content-box!important}.ant-input-search-rtl.ant-input-search-enter-button input+.ant-input-group-addon .ant-input-search-button.ant-btn-icon-only,.ant-input-search-rtl.ant-input-search-enter-button+.ant-input-group-addon .ant-input-search-button.ant-btn-icon-only{width:28px;height:28px}.ant-input-search-rtl.ant-input-search-enter-button input+.ant-input-group-addon .ant-input-search-button.ant-btn-icon-only.ant-btn-sm,.ant-input-search-rtl.ant-input-search-enter-button+.ant-input-group-addon .ant-input-search-button.ant-btn-icon-only.ant-btn-sm{width:22px;height:22px}.ant-input-search-rtl.ant-input-search-enter-button input+.ant-input-group-addon .ant-input-search-button.ant-btn-icon-only.ant-btn-lg,.ant-input-search-rtl.ant-input-search-enter-button+.ant-input-group-addon .ant-input-search-button.ant-btn-icon-only.ant-btn-lg{width:32px;height:32px}.ant-input-number{box-sizing:border-box;font-variant:tabular-nums;list-style:none;font-feature-settings:tnum;position:relative;color:rgba(0,0,0,.85);font-size:12px;line-height:1.66667;background-image:none;transition:all .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::placeholder{color:#bfbfbf}.ant-input-number:placeholder-shown{text-overflow:ellipsis}.ant-input-rtl .ant-input-number:hover{border-right-width:0;border-left-width:1px!important}.ant-input-number-focused,.ant-input-number:focus{border-color:#40a9ff;border-right-width:1px!important}.ant-input-rtl .ant-input-number-focused,.ant-input-rtl .ant-input-number:focus{border-right-width:0;border-left-width:1px!important}.ant-input-number[disabled]{background-color:#f5f5f5;cursor:not-allowed;opacity:1;color:rgba(0,0,0,.25);pointer-events:none}.ant-input-number[disabled]:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-input-number-borderless,.ant-input-number-borderless-disabled,.ant-input-number-borderless-focused,.ant-input-number-borderless:focus,.ant-input-number-borderless:hover,.ant-input-number-borderless[disabled]{background-color:transparent;border:none;box-shadow:none}.ant-input-number-focused,.ant-input-number:hover{border-color:#40a9ff;border-right-width:1px!important}textarea.ant-input-number{max-width:100%;height:auto;min-height:28px;line-height:1.66667;vertical-align:bottom;transition:all .3s,height 0s}.ant-input-number-handler{position:relative;display:block;width:100%;height:50%;overflow:hidden;color:rgba(0,0,0,.45);font-weight:700;line-height:0;text-align:center;transition:all .1s linear}.ant-input-number-handler:active{background:#f4f4f4}.ant-input-number-handler:hover .ant-input-number-handler-down-inner,.ant-input-number-handler:hover .ant-input-number-handler-up-inner{color:#40a9ff}.ant-input-number-handler-down-inner,.ant-input-number-handler-up-inner{display:inline-block;color:inherit;font-style:normal;text-transform:none;vertical-align:-.125em;position:absolute;right:4px;width:12px;height:12px;color:rgba(0,0,0,.45);line-height:12px;transition:all .1s linear;user-select:none}.ant-input-number-handler-down-inner>*,.ant-input-number-handler-up-inner>*{line-height:1}.ant-input-number-handler-down-inner svg,.ant-input-number-handler-up-inner svg{display:inline-block}.ant-input-number-handler-down-inner::before,.ant-input-number-handler-up-inner::before{display:none}.ant-input-number-handler-down-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-up-inner .ant-input-number-handler-down-inner-icon,.ant-input-number-handler-up-inner .ant-input-number-handler-up-inner-icon{display:block}.ant-input-number:hover+.ant-form-item-children-icon{opacity:0;transition:opacity .24s linear .24s}.ant-input-rtl .ant-input-number-focused{border-right-width:0;border-left-width:1px!important}.ant-input-number-disabled{background-color:#f5f5f5;cursor:not-allowed;opacity:1;color:rgba(0,0,0,.25);pointer-events:none}.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,.ant-input-number-readonly .ant-input-number-handler-wrap{display:none}.ant-input-number-input{width:100%;height:26px;padding:0 7px;text-align:left;background-color:transparent;border:0;border-radius:2px;outline:0;transition:all .3s linear;-moz-appearance:textfield!important}.ant-input-number-input::-moz-placeholder{opacity:1}.ant-input-number-input::placeholder{color:#bfbfbf}.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:14px}.ant-input-number-lg input{height:30px}.ant-input-number-sm{padding:0}.ant-input-number-sm input{height:20px;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;transition:opacity .24s linear .1s}.ant-input-number-handler-wrap .ant-input-number-handler .ant-input-number-handler-down-inner,.ant-input-number-handler-wrap .ant-input-number-handler .ant-input-number-handler-up-inner{min-width:auto;margin-right:0;font-size:7px}.ant-input-number-borderless .ant-input-number-handler-wrap{border-left-width:0}.ant-input-number-handler-wrap:hover .ant-input-number-handler{height:40%}.ant-input-number-handler-down:hover,.ant-input-number-handler-up:hover{height:60%!important}.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-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;transform:translateY(-50%)}.ant-input-number-borderless .ant-input-number-handler-down{border-top-width:0}.ant-input-number-handler-down-disabled,.ant-input-number-handler-up-disabled{cursor:not-allowed}.ant-input-number-handler-down-disabled:hover .ant-input-number-handler-down-inner,.ant-input-number-handler-up-disabled:hover .ant-input-number-handler-up-inner{color:rgba(0,0,0,.25)}.ant-input-number-borderless{box-shadow:none}.ant-input-number-out-of-range input{color:#ff4d4f}.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-borderless .ant-input-number-handler-wrap{border-right-width:0}.ant-input-number-rtl .ant-input-number-input{direction:ltr;text-align:right}.ant-form-rtl,.ant-layout-rtl,.ant-list-rtl,.ant-list-rtl .ReactVirtualized__List .ant-list-item,.ant-mention-wrapper .ant-mention-editor-rtl,.ant-menu.ant-menu-rtl,.ant-message-rtl,.ant-message-rtl span,.ant-modal-wrap-rtl,.ant-modal-wrap-rtl .ant-modal-confirm-body,.ant-notification-rtl,.ant-page-header-rtl,.ant-pagination-options-quick-jumper input-rtl,.ant-popover-rtl,.ant-progress-rtl,.ant-radio-group.ant-radio-group-rtl,.ant-radio-wrapper.ant-radio-wrapper-rtl,.ant-rate-rtl,.ant-select-dropdown-rtl,.ant-select-rtl,.ant-skeleton-rtl,.ant-slider-rtl,.ant-spin-rtl{direction:rtl}.ant-layout{display:flex;flex:auto;flex-direction:column;min-height:0;background:#f0f2f5}.ant-layout,.ant-layout *{box-sizing:border-box}.ant-layout.ant-layout-has-sider{flex-direction:row}.ant-layout.ant-layout-has-sider>.ant-layout,.ant-layout.ant-layout-has-sider>.ant-layout-content{width:0}.ant-layout-footer,.ant-layout-header{flex:0 0 auto}.ant-layout-header{height:64px;padding:0 50px;color:rgba(0,0,0,.85);line-height:64px;background:#001529}.ant-layout-footer{padding:24px 50px;color:rgba(0,0,0,.85);font-size:12px;background:#f0f2f5}.ant-layout-content{flex:auto;min-height:0}.ant-layout-sider{position:relative;min-width:0;background:#001529;transition:all .2s}.ant-layout-sider-children{height:100%;margin-top:-.1px;padding-top:.1px}.ant-layout-sider-children .ant-menu.ant-menu-inline-collapsed{width:auto}.ant-layout-sider-has-trigger{padding-bottom:48px}.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;transition:all .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;transition:background .3s ease}.ant-layout-sider-zero-width-trigger::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;transition:all .3s;content:''}.ant-layout-sider-zero-width-trigger:hover::after{background:rgba(255,255,255,.1)}.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,.ant-layout-sider-light .ant-layout-sider-zero-width-trigger{color:rgba(0,0,0,.85);background:#fff}nz-content,nz-footer,nz-header{display:block}.ant-form-item .ant-mentions,.ant-form-item textarea.ant-input{height:auto}.ant-form-item .ant-upload{background:0 0}.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-checkbox-inline,.ant-form-item .ant-radio-inline{display:inline-block;margin-left:8px;font-weight:400;vertical-align:middle;cursor:pointer}.ant-form-item .ant-checkbox-inline:first-child,.ant-form-item .ant-checkbox-vertical+.ant-checkbox-vertical,.ant-form-item .ant-radio-inline:first-child,.ant-form-item .ant-radio-vertical+.ant-radio-vertical{margin-left:0}.ant-form-item .ant-checkbox-vertical,.ant-form-item .ant-radio-vertical{display:block}.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-cascader-picker,.ant-form-item .ant-select{width:100%}.ant-form-item .ant-input-group .ant-cascader-picker,.ant-form-item .ant-input-group .ant-select,.ant-form-item .ant-picker-calendar-month-select,.ant-form-item .ant-picker-calendar-year-select,.ant-modal{width:auto}.ant-form-inline{display:flex;flex-wrap:wrap}.ant-form-inline .ant-form-item{flex:none;flex-wrap:nowrap;margin-right:16px;margin-bottom:0}.ant-form-inline .ant-form-item-with-help{margin-bottom:16px}.ant-form-inline .ant-form-item>.ant-form-item-control,.ant-form-inline .ant-form-item>.ant-form-item-label{display:inline-block;vertical-align:top}.ant-form-inline .ant-form-item>.ant-form-item-label{flex:none}.ant-form-inline .ant-form-item .ant-form-item-has-feedback,.ant-form-inline .ant-form-item .ant-form-text{display:inline-block}.ant-form-horizontal .ant-form-item-label{flex-grow:0}.ant-form-horizontal .ant-form-item-control{flex:1 1 0}.ant-form-vertical .ant-form-item{flex-direction:column}.ant-form-vertical .ant-form-item-label>label{height:auto}.ant-col-24.ant-form-item-label,.ant-col-xl-24.ant-form-item-label,.ant-form-vertical .ant-form-item-label{padding:0 0 4px;line-height:1.66667;white-space:initial;text-align:left}.ant-col-24.ant-form-item-label>label,.ant-col-xl-24.ant-form-item-label>label,.ant-form-vertical .ant-form-item-label>label{margin:0}.ant-col-24.ant-form-item-label>label::after,.ant-col-xl-24.ant-form-item-label>label::after,.ant-form-vertical .ant-form-item-label>label::after{display:none}.ant-form-rtl.ant-col-24.ant-form-item-label,.ant-form-rtl.ant-col-xl-24.ant-form-item-label,.ant-form-rtl.ant-form-vertical .ant-form-item-label{text-align:right}@media (max-width:575px){.ant-col-xs-24.ant-form-item-label>label,.ant-form-item .ant-form-item-label>label{margin:0}.ant-col-xs-24.ant-form-item-label>label::after,.ant-form-item .ant-form-item-label>label::after{display:none}.ant-form-item .ant-form-item-label{padding:0 0 4px;line-height:1.66667;white-space:initial;text-align:left}.ant-form-rtl.ant-form-item .ant-form-item-label{text-align:right}.ant-form .ant-form-item{flex-wrap:wrap}.ant-form .ant-form-item .ant-form-item-control,.ant-form .ant-form-item .ant-form-item-label{flex:0 0 100%;max-width:100%}.ant-col-xs-24.ant-form-item-label{padding:0 0 4px;line-height:1.66667;white-space:initial;text-align:left}.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{padding:0 0 4px;line-height:1.66667;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{padding:0 0 4px;line-height:1.66667;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{padding:0 0 4px;line-height:1.66667;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{padding:0 0 4px;line-height:1.66667;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-explain.ant-form-item-explain-error{color:#ff4d4f}.ant-form-item-explain.ant-form-item-explain-warning{color:#faad14}.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-cascader-picker-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-clear,.ant-form-item-has-feedback>.ant-select .ant-select-arrow,.ant-form-item-has-feedback>.ant-select .ant-select-clear{right:32px}.ant-form-item-has-feedback .ant-switch{margin:2px 0 4px}.ant-form-item-has-feedback :not(.ant-input-group-addon)>.ant-select .ant-select-selection-selected-value,.ant-form-item-has-feedback>.ant-select .ant-select-selection-selected-value{padding-right:42px}.ant-form-item-has-feedback .ant-cascader-picker-arrow{margin-right:19px}.ant-form-item-has-feedback .ant-picker{padding-right:22.6px}.ant-form-item-has-feedback .ant-picker-large{padding-right:26.6px}.ant-form-item-has-feedback .ant-picker-small{padding-right:22.6px}.ant-form-item-has-feedback.ant-form-item-has-error .ant-form-item-children-icon,.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-is-validating .ant-form-item-children-icon{position:absolute;top:50%;right:0;z-index:1;width:28px;height:20px;margin-top:-10px;font-size:12px;line-height:20px;text-align:center;visibility:visible;animation:zoomIn .3s cubic-bezier(.12,.4,.29,1.46);pointer-events:none}.ant-notification .notification-fade-effect,.ant-notification-fade-appear,.ant-notification-fade-enter,.ant-notification-fade-leave,.ant-show-help-appear,.ant-show-help-enter,.ant-show-help-leave{animation-timing-function:cubic-bezier(.645,.045,.355,1)}.ant-form-item-has-success.ant-form-item-has-feedback .ant-form-item-children-icon{color:#52c41a;animation-name:diffZoomIn1!important}.ant-form-item-has-warning .ant-form-item-split{color:#faad14}.ant-form-item-has-warning .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled),.ant-form-item-has-warning .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover,.ant-form-item-has-warning .ant-input:not(.ant-input-disabled),.ant-form-item-has-warning .ant-input:not(.ant-input-disabled):hover{background-color:#fff;border-color:#faad14}.ant-form-item-has-warning .ant-calendar-picker-open .ant-calendar-picker-input,.ant-form-item-has-warning .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled)-focused,.ant-form-item-has-warning .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):focus,.ant-form-item-has-warning .ant-input:not(.ant-input-disabled)-focused,.ant-form-item-has-warning .ant-input:not(.ant-input-disabled):focus{border-color:#ffc53d;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(250,173,20,.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;animation-name:diffZoomIn3!important}.ant-form-item-has-warning .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input) .ant-select-selector{background-color:#fff;border-color:#faad14!important}.ant-form-item-has-warning .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input).ant-select-focused .ant-select-selector,.ant-form-item-has-warning .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input).ant-select-open .ant-select-selector{border-color:#ffc53d;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(250,173,20,.2)}.ant-form-item-has-warning .ant-input-number,.ant-form-item-has-warning .ant-picker{background-color:#fff;border-color:#faad14}.ant-form-item-has-warning .ant-input-number-focused,.ant-form-item-has-warning .ant-input-number:focus,.ant-form-item-has-warning .ant-picker-focused,.ant-form-item-has-warning .ant-picker:focus{border-color:#ffc53d;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(250,173,20,.2)}.ant-form-item-has-warning .ant-input-number:not([disabled]):hover,.ant-form-item-has-warning .ant-picker:not([disabled]):hover{background-color:#fff;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;box-shadow:0 0 0 2px rgba(250,173,20,.2)}.ant-form-item-has-error .ant-form-item-split{color:#ff4d4f}.ant-form-item-has-error .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled),.ant-form-item-has-error .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover,.ant-form-item-has-error .ant-input:not(.ant-input-disabled),.ant-form-item-has-error .ant-input:not(.ant-input-disabled):hover{background-color:#fff;border-color:#ff4d4f}.ant-form-item-has-error .ant-calendar-picker-open .ant-calendar-picker-input,.ant-form-item-has-error .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled)-focused,.ant-form-item-has-error .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):focus,.ant-form-item-has-error .ant-input:not(.ant-input-disabled)-focused,.ant-form-item-has-error .ant-input:not(.ant-input-disabled):focus{border-color:#ff7875;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(255,77,79,.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;animation-name:diffZoomIn2!important}.ant-form-item-has-error .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input) .ant-select-selector{background-color:#fff;border-color:#ff4d4f!important}.ant-form-item-has-error .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input).ant-select-focused .ant-select-selector,.ant-form-item-has-error .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input).ant-select-open .ant-select-selector{border-color:#ff7875;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(255,77,79,.2)}.ant-form-item-has-error .ant-input-group-addon .ant-select.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{background-color:inherit;border:0;box-shadow:none}.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{background-color:#fff;border-color:#ff4d4f}.ant-form-item-has-error .ant-input-number-focused,.ant-form-item-has-error .ant-input-number:focus,.ant-form-item-has-error .ant-picker-focused,.ant-form-item-has-error .ant-picker:focus{border-color:#ff7875;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(255,77,79,.2)}.ant-form-item-has-error .ant-input-number:not([disabled]):hover,.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,.ant-form-item-has-error .ant-picker:not([disabled]):hover{background-color:#fff;border-color:#ff4d4f}.ant-form-item-has-error .ant-mention-wrapper .ant-mention-editor:not([disabled]):focus,.ant-form-item-has-error .ant-mention-wrapper.ant-mention-active:not([disabled]) .ant-mention-editor{border-color:#ff7875;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(255,77,79,.2)}.ant-form-item-has-error .ant-cascader-picker:hover .ant-cascader-picker-label:hover+.ant-cascader-input.ant-input{border-color:#ff4d4f}.ant-form-item-has-error .ant-cascader-picker:focus .ant-cascader-input{background-color:#fff;border-color:#ff7875;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(255,77,79,.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-input-rtl .ant-form-item-has-error .ant-transfer-list-search:not([disabled]):hover{border-right-width:0;border-left-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;box-shadow:0 0 0 2px rgba(24,144,255,.2)}.ant-input-rtl .ant-form-item-has-error .ant-transfer-list-search:not([disabled]):focus{border-right-width:0;border-left-width:1px!important}.ant-form-item-has-error .ant-radio-button-wrapper{border-color:#ff4d4f!important}.ant-form-item-has-error .ant-radio-button-wrapper:not(:first-child)::before{background-color:#ff4d4f}.ant-form-item-is-validating.ant-form-item-has-feedback .ant-form-item-children-icon{display:inline-block;color:#1890ff}.ant-form{box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:12px;font-variant:tabular-nums;line-height:1.66667;list-style:none;font-feature-settings:tnum}.ant-form legend{display:block;width:100%;margin-bottom:20px;padding:0;color:rgba(0,0,0,.45);font-size:14px;line-height:inherit;border:0;border-bottom:1px solid #d9d9d9}.ant-form label{font-size:12px}.ant-form input[type=search]{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=radio]:focus,.ant-form input[type=checkbox]:focus,.ant-form input[type=file]:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.ant-form output{display:block;padding-top:15px;color:rgba(0,0,0,.85);font-size:12px;line-height:1.66667}.ant-form .ant-form-text{display:inline-block;padding-right:8px}.ant-form-small .ant-form-item-label>label{height:22px}.ant-form-small .ant-form-item-control-input{min-height:22px}.ant-form-large .ant-form-item-label>label{height:32px}.ant-form-large .ant-form-item-control-input{min-height:32px}.ant-form-item{box-sizing:border-box;margin:0 0 16px;padding:0;color:rgba(0,0,0,.85);font-size:12px;font-variant:tabular-nums;line-height:1.66667;list-style:none;font-feature-settings:tnum;vertical-align:top}.ant-form-item-with-help{margin-bottom:0}.ant-form-item-hidden,.ant-form-item-hidden.ant-row{display:none}.ant-form-item-label{display:inline-block;flex-grow:0;overflow:hidden;white-space:nowrap;text-align:right;vertical-align:middle}.ant-form-item-label-left,.ant-form-rtl .ant-form-item-label{text-align:left}.ant-form-item-label>label{position:relative;display:inline-flex;align-items:center;height:28px;color:rgba(0,0,0,.85);font-size:12px}.ant-form-item-label>label>.anticon{font-size:12px;vertical-align:top}.ant-form-item-label>label.ant-form-item-required:not(.ant-form-item-required-mark-optional)::before{display:inline-block;margin-right:4px;color:#ff4d4f;font-size:12px;font-family:SimSun,sans-serif;line-height:1;content:'*'}.ant-form-hide-required-mark .ant-form-item-label>label.ant-form-item-required:not(.ant-form-item-required-mark-optional)::before{display:none}.ant-form-item-label>label .ant-form-item-optional{display:inline-block;margin-left:0;color:rgba(0,0,0,.45)}.ant-form-hide-required-mark .ant-form-item-label>label .ant-form-item-optional{display:none}.ant-form-item-label>label .ant-form-item-tooltip{color:rgba(0,0,0,.45);cursor:help;writing-mode:horizontal-tb;margin-inline-start:0}.ant-form-item-label>label::after{content:':';position:relative;top:-.5px;margin:0 8px 0 2px}.ant-form-item-label>label.ant-form-item-no-colon::after,.ant-menu-submenu-popup::before{content:' '}.ant-form-item-control{display:flex;flex-direction:column;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:flex;align-items:center;min-height:28px}.ant-form-item-control-input-content{flex:auto;max-width:100%}.ant-form-item-explain,.ant-form-item-extra{clear:both;min-height:16px;color:rgba(0,0,0,.45);font-size:12px;line-height:1.66667;transition:color .3s cubic-bezier(.215,.61,.355,1);margin-top:-2px;margin-bottom:-2px}.ant-form-item .ant-input-textarea-show-count::after{margin-bottom:-22px}.ant-show-help-appear,.ant-show-help-enter,.ant-show-help-leave{animation-duration:.3s;animation-fill-mode:both;animation-play-state:paused}.ant-show-help-appear.ant-show-help-appear-active,.ant-show-help-enter.ant-show-help-enter-active{animation-name:antShowHelpIn;animation-play-state:running}.ant-show-help-leave.ant-show-help-leave-active{animation-name:antShowHelpOut;animation-play-state:running;pointer-events:none}.ant-show-help-appear,.ant-show-help-enter{opacity:0}@keyframes antShowHelpIn{0%{transform:translateY(-5px);opacity:0}100%{transform:translateY(0);opacity:1}}@keyframes antShowHelpOut{to{transform:translateY(-5px);opacity:0}}@keyframes diffZoomIn1{0%{transform:scale(0);opacity:0}100%{transform:scale(1);opacity:1}}@keyframes diffZoomIn2{0%{transform:scale(0);opacity:0}100%{transform:scale(1);opacity:1}}@keyframes diffZoomIn3{0%{transform:scale(0);opacity:0}100%{transform:scale(1);opacity:1}}.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-form-rtl .ant-form-item-label>label .ant-form-item-optional{margin-right:0;margin-left:0}.ant-col-rtl .ant-form-item-control:first-child{width:100%}.ant-form-rtl .ant-form-item-has-feedback .ant-input{padding-right:7px;padding-left:24px}.ant-form-rtl .ant-form-item-has-feedback .ant-input-affix-wrapper .ant-input-suffix{padding-right:7px;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-cascader-picker-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-clear,.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-clear{left:32px;right:auto}.ant-form-rtl .ant-form-item-has-feedback .ant-input-number{padding-left:18px}.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-group-addon)>.ant-select .ant-select-selection-selected-value,.ant-form-rtl .ant-form-item-has-feedback>.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:19px}.ant-form-rtl .ant-form-item-has-feedback .ant-picker{padding-right:7px;padding-left:22.6px}.ant-form-rtl .ant-form-item-has-feedback .ant-picker-large{padding-right:11px;padding-left:26.6px}.ant-form-rtl .ant-form-item-has-feedback .ant-picker-small{padding-right:7px;padding-left:22.6px}.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-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-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}.ant-list{box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:12px;font-variant:tabular-nums;line-height:1.66667;list-style:none;font-feature-settings:tnum;position:relative}.ant-list *{outline:0}.ant-list-pagination{margin-top:16px;text-align:right}.ant-list-pagination .ant-pagination-options{text-align:left}.ant-list-more{margin-top:8px;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:8px;color:rgba(0,0,0,.25);font-size:12px;text-align:center}.ant-list-items{margin:0;padding:0;list-style:none}.ant-list-item{display:flex;align-items:center;justify-content:space-between;padding:8px 0;color:rgba(0,0,0,.85)}.ant-list-item-meta{display:flex;flex:1;align-items:flex-start;max-width:100%}.ant-list-item-meta-avatar{margin-right:8px}.ant-list-item-meta-content{flex:1 0;width:0;color:rgba(0,0,0,.85)}.ant-list-item-meta-title{margin-bottom:4px;color:rgba(0,0,0,.85);font-size:12px;line-height:1.66667}.ant-list-item-meta-title>a{color:rgba(0,0,0,.85);transition:all .3s}.ant-list-item-meta-title>a:hover{color:#1890ff}.ant-list-item-meta-description{color:rgba(0,0,0,.45);font-size:12px;line-height:1.66667}.ant-list-item-action{flex:0 0 auto;margin-left:48px;padding:0;font-size:0;list-style:none}.ant-list-empty,.ant-list-item-action>li{font-size:12px;color:rgba(0,0,0,.45);text-align:center}.ant-list-item-action>li{position:relative;display:inline-block;padding:0 4px;line-height:1.66667}.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-footer,.ant-list-header{background:0 0;padding-top:8px;padding-bottom:8px}.ant-list-empty{padding:8px 0}.ant-list-split .ant-list-item:last-child{border-bottom:none}.ant-list-split .ant-list-header,.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-loading .ant-list-spin-nested-loading{min-height:32px}.ant-list-lg .ant-list-item{padding:12px 16px}.ant-list-sm .ant-list-item{padding:4px 12px}.ant-list-vertical .ant-list-item{align-items:initial}.ant-list-vertical .ant-list-item-main{display:block;flex:1}.ant-list-vertical .ant-list-item-extra{margin-left:40px}.ant-list-vertical .ant-list-item-meta{margin-bottom:8px}.ant-list-vertical .ant-list-item-meta-title{margin-bottom:8px;color:rgba(0,0,0,.85);font-size:14px;line-height:24px}.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,.ant-menu-item-danger.ant-menu-item,.ant-menu-item-danger.ant-menu-item-active,.ant-menu-item-danger.ant-menu-item-selected,.ant-menu-item-danger.ant-menu-item-selected>a,.ant-menu-item-danger.ant-menu-item-selected>a:hover,.ant-menu-item-danger.ant-menu-item:hover{color:#ff4d4f}.ant-list-vertical .ant-list-item-action{margin-top:8px;margin-left:auto}.ant-list-vertical .ant-list-item-action>li{padding:0 8px}.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:8px;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-footer,.ant-list-bordered .ant-list-header,.ant-list-bordered .ant-list-item{padding-right:16px;padding-left:16px}.ant-list-bordered .ant-list-pagination{margin:8px 16px}.ant-list-bordered.ant-list-sm .ant-list-footer,.ant-list-bordered.ant-list-sm .ant-list-header,.ant-list-bordered.ant-list-sm .ant-list-item{padding:4px 12px}.ant-list-bordered.ant-list-lg .ant-list-footer,.ant-list-bordered.ant-list-lg .ant-list-header,.ant-list-bordered.ant-list-lg .ant-list-item{padding:12px 16px}.ant-list-rtl .ant-list-vertical .ant-list-item-action>li:first-child,.ant-list.ant-list-rtl .ant-list-item-action>li:first-child{padding-right:0;padding-left:8px}@media screen and (max-width:768px){.ant-list-item-action,.ant-list-vertical .ant-list-item-extra{margin-left:24px}}@media screen and (max-width:576px){.ant-list-item{flex-wrap:wrap}.ant-list-item-action{margin-left:12px}.ant-list-vertical .ant-list-item{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{text-align:right}.ant-list-rtl .ant-list-pagination,.ant-menu{text-align:left}.ant-list-rtl .ant-list-item-meta-avatar{margin-right:0;margin-left:8px}.ant-list-rtl .ant-list-item-action{margin-right:48px;margin-left:0}.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: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,.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}}.ant-menu,.ant-menu ol,.ant-menu ul{margin:0;padding:0;list-style:none}nz-list,nz-list nz-spin,nz-list-empty,nz-list-footer,nz-list-header,nz-list-item-extra,nz-list-pagination{display:block}.ant-menu::after,.ant-menu::before{display:table;content:''}.ant-menu-item-danger.ant-menu-item:active{background:#fff1f0}.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-dark:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected{color:#fff;background-color:#ff4d4f}.ant-menu{box-sizing:border-box;font-variant:tabular-nums;font-feature-settings:tnum;color:rgba(0,0,0,.85);font-size:12px;line-height:0;background:#fff;outline:0;transition:background .3s,width .3s cubic-bezier(.2,0,0,1) 0s}.ant-menu::after{clear:both}.ant-menu.ant-menu-root:focus-visible{box-shadow:0 0 0 2px rgba(24,144,255,.2)}.ant-menu-overflow{display:flex}.ant-menu-hidden,.ant-menu-submenu-hidden,.ant-menu-submenu-horizontal .ant-menu-submenu-arrow{display:none}.ant-menu-overflow-item{flex:none}.ant-menu-item-group-title{height:1.66667;padding:8px 16px;color:rgba(0,0,0,.45);font-size:12px;line-height:1.66667;transition:all .3s}.ant-menu-horizontal .ant-menu-submenu{transition:border-color .3s cubic-bezier(.645,.045,.355,1),background .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-submenu,.ant-menu-submenu-inline{transition:border-color .3s cubic-bezier(.645,.045,.355,1),background .3s cubic-bezier(.645,.045,.355,1),padding .15s cubic-bezier(.645,.045,.355,1)}.ant-menu-submenu-selected{color:#1890ff}.ant-menu-submenu .ant-menu-sub{cursor:initial;transition:background .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-item a{color:rgba(0,0,0,.85)}.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,.85)}.ant-menu-item-selected,.ant-menu-item-selected a,.ant-menu-item-selected a:hover,.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-horizontal .ant-menu-item,.ant-menu-horizontal .ant-menu-submenu{margin-top:-1px}.ant-menu-horizontal>.ant-menu-item-active,.ant-menu-horizontal>.ant-menu-item:hover,.ant-menu-horizontal>.ant-menu-submenu .ant-menu-submenu-title:hover{background-color:transparent}.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-left.ant-menu-sub,.ant-menu-vertical-right.ant-menu-sub,.ant-menu-vertical.ant-menu-sub{min-width:160px;max-height:calc(100vh - 100px);padding:0;overflow:hidden;border-right:0}.ant-menu-vertical-left.ant-menu-sub:not([class*='-active']),.ant-menu-vertical-right.ant-menu-sub:not([class*='-active']),.ant-menu-vertical.ant-menu-sub:not([class*='-active']){overflow-x:hidden;overflow-y:auto}.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-item{left:0;margin-left:0;border-right:0}.ant-menu-vertical-left.ant-menu-sub .ant-menu-item::after,.ant-menu-vertical-right.ant-menu-sub .ant-menu-item::after,.ant-menu-vertical.ant-menu-sub .ant-menu-item::after{border-right:0}.ant-menu-vertical-left.ant-menu-sub>.ant-menu-item,.ant-menu-vertical-left.ant-menu-sub>.ant-menu-submenu,.ant-menu-vertical-right.ant-menu-sub>.ant-menu-item,.ant-menu-vertical-right.ant-menu-sub>.ant-menu-submenu,.ant-menu-vertical.ant-menu-sub>.ant-menu-item,.ant-menu-vertical.ant-menu-sub>.ant-menu-submenu{transform-origin:0 0}.ant-menu-horizontal.ant-menu-sub{min-width:114px}.ant-menu-horizontal .ant-menu-item,.ant-menu-horizontal .ant-menu-submenu-title{transition:border-color .3s,background .3s}.ant-menu-item,.ant-menu-submenu-title{position:relative;display:block;margin:0;padding:0 12px;white-space:nowrap;cursor:pointer;transition:border-color .3s,background .3s,padding .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-item .ant-menu-item-icon,.ant-menu-item .anticon,.ant-menu-submenu-title .ant-menu-item-icon,.ant-menu-submenu-title .anticon{min-width:14px;font-size:12px;transition:font-size .15s cubic-bezier(.215,.61,.355,1),margin .3s cubic-bezier(.645,.045,.355,1),color .3s}.ant-menu-item .ant-menu-item-icon+span,.ant-menu-item .anticon+span,.ant-menu-submenu-title .ant-menu-item-icon+span,.ant-menu-submenu-title .anticon+span{margin-left:8px;opacity:1;transition:opacity .3s cubic-bezier(.645,.045,.355,1),margin .3s,color .3s}.ant-menu-submenu-arrow,.ant-menu-submenu-expand-icon,.ant-menu-submenu>.ant-menu-submenu-title::after{transition:transform .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-item .ant-menu-item-icon.svg,.ant-menu-submenu-title .ant-menu-item-icon.svg{vertical-align:-.125em}.ant-menu-item.ant-menu-item-only-child>.ant-menu-item-icon,.ant-menu-item.ant-menu-item-only-child>.anticon,.ant-menu-submenu-title.ant-menu-item-only-child>.ant-menu-item-icon,.ant-menu-submenu-title.ant-menu-item-only-child>.anticon{margin-right:0}.ant-menu-item:focus-visible,.ant-menu-submenu-title:focus-visible{box-shadow:0 0 0 2px rgba(24,144,255,.2)}.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;background:0 0;border-radius:2px;box-shadow:none;transform-origin:0 0}.ant-menu-submenu-popup::before{position:absolute;top:-7px;right:0;bottom:0;left:0;z-index:-1;width:100%;height:100%;opacity:.0001}.ant-menu-submenu-placement-rightTop::before{top:0;left:-7px}.ant-menu-submenu>.ant-menu{background-color:#fff;border-radius:2px}.ant-menu-submenu-popup>.ant-menu{background-color:#fff}.ant-menu-submenu-arrow,.ant-menu-submenu-expand-icon{position:absolute;top:50%;right:16px;width:10px;color:rgba(0,0,0,.85);transform:translateY(-50%)}.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-active,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-open,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-selected,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item:hover,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-active,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-open,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-selected,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu:hover,.ant-menu-submenu:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-submenu:hover>.ant-menu-submenu-title>.ant-menu-submenu-expand-icon,.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-submenu-arrow::after,.ant-menu-submenu-arrow::before{position:absolute;width:6px;height:1.5px;background-color:currentColor;border-radius:2px;transition:background .3s cubic-bezier(.645,.045,.355,1),transform .3s cubic-bezier(.645,.045,.355,1),top .3s cubic-bezier(.645,.045,.355,1),color .3s cubic-bezier(.645,.045,.355,1);content:''}.ant-menu-submenu-arrow::before{transform:rotate(45deg) translateY(-2.5px)}.ant-menu-submenu-arrow::after{transform:rotate(-45deg) translateY(2.5px)}.ant-menu-inline-collapsed .ant-menu-submenu-arrow::before,.ant-menu-submenu-inline .ant-menu-submenu-arrow::before{transform:rotate(-45deg) translateX(2.5px)}.ant-menu-inline-collapsed .ant-menu-submenu-arrow::after,.ant-menu-submenu-inline .ant-menu-submenu-arrow::after{transform:rotate(45deg) translateX(-2.5px)}.ant-menu-submenu-open.ant-menu-submenu-inline>.ant-menu-submenu-title>.ant-menu-submenu-arrow{transform:translateY(-2px)}.ant-menu-submenu-open.ant-menu-submenu-inline>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after{transform:rotate(-45deg) translateX(-2.5px)}.ant-menu-submenu-open.ant-menu-submenu-inline>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before{transform:rotate(45deg) translateX(2.5px)}.ant-menu-horizontal{line-height:38px;border:0;border-bottom:1px solid #f0f0f0;box-shadow:none}.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu{margin-top:-1px;margin-bottom:0;padding:0 12px}.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-active::after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-open::after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-selected::after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item:hover::after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-active::after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-open::after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-selected::after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu:hover::after{border-bottom:2px solid #1890ff}.ant-menu-horizontal>.ant-menu-item,.ant-menu-horizontal>.ant-menu-submenu{position:relative;top:1px;display:inline-block;vertical-align:bottom}.ant-menu-horizontal>.ant-menu-item::after,.ant-menu-horizontal>.ant-menu-submenu::after{position:absolute;right:20px;bottom:0;left:20px;border-bottom:2px solid transparent;transition:border-color .3s cubic-bezier(.645,.045,.355,1);content:''}.ant-menu-horizontal>.ant-menu-submenu>.ant-menu-submenu-title{padding:0}.ant-menu-horizontal>.ant-menu-item a{color:rgba(0,0,0,.85)}.ant-menu-horizontal>.ant-menu-item a:hover,.ant-menu-horizontal>.ant-menu-item-selected a{color:#1890ff}.ant-menu-horizontal>.ant-menu-item a::before{bottom:-2px}.ant-menu-horizontal::after{display:block;clear:both;height:0;content:'\20'}.ant-menu-inline .ant-menu-item,.ant-menu-vertical .ant-menu-item,.ant-menu-vertical-left .ant-menu-item,.ant-menu-vertical-right .ant-menu-item{position:relative}.ant-menu-inline .ant-menu-item::after,.ant-menu-vertical .ant-menu-item::after,.ant-menu-vertical-left .ant-menu-item::after,.ant-menu-vertical-right .ant-menu-item::after{position:absolute;top:0;right:0;bottom:0;border-right:3px solid #1890ff;transform:scaleY(.0001);opacity:0;transition:transform .15s cubic-bezier(.215,.61,.355,1),opacity .15s cubic-bezier(.215,.61,.355,1);content:''}.ant-menu-inline .ant-menu-item,.ant-menu-inline .ant-menu-submenu-title,.ant-menu-vertical .ant-menu-item,.ant-menu-vertical .ant-menu-submenu-title,.ant-menu-vertical-left .ant-menu-item,.ant-menu-vertical-left .ant-menu-submenu-title,.ant-menu-vertical-right .ant-menu-item,.ant-menu-vertical-right .ant-menu-submenu-title{height:32px;margin-top:0;margin-bottom:0;padding:0 16px;overflow:hidden;line-height:32px;text-overflow:ellipsis}.ant-menu-inline .ant-menu-item-group-list .ant-menu-submenu-title,.ant-menu-inline .ant-menu-submenu-title,.ant-menu-vertical .ant-menu-item-group-list .ant-menu-submenu-title,.ant-menu-vertical .ant-menu-submenu-title{padding-right:34px}.ant-menu-inline .ant-menu-submenu,.ant-menu-vertical .ant-menu-submenu,.ant-menu-vertical-left .ant-menu-submenu,.ant-menu-vertical-right .ant-menu-submenu{padding-bottom:.02px}.ant-menu-inline .ant-menu-item:not(:last-child),.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){margin-bottom:0}.ant-menu-inline>.ant-menu-item,.ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-vertical-left>.ant-menu-item,.ant-menu-vertical-left>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-vertical-right>.ant-menu-item,.ant-menu-vertical-right>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-vertical>.ant-menu-item,.ant-menu-vertical>.ant-menu-submenu>.ant-menu-submenu-title{height:32px;line-height:32px}.ant-menu-inline{width:100%}.ant-menu-inline .ant-menu-item-selected::after,.ant-menu-inline .ant-menu-selected::after{transform:scaleY(1);opacity:1;transition:transform .15s cubic-bezier(.645,.045,.355,1),opacity .15s cubic-bezier(.645,.045,.355,1)}.ant-menu-inline .ant-menu-item,.ant-menu-inline .ant-menu-submenu-title{width:calc(100% + 1px)}.ant-menu-inline.ant-menu-root .ant-menu-item,.ant-menu-inline.ant-menu-root .ant-menu-submenu-title{display:flex;align-items:center;transition:border-color .3s,background .3s,padding .1s cubic-bezier(.215,.61,.355,1)}.ant-menu-inline.ant-menu-root .ant-menu-item>.ant-menu-title-content,.ant-menu-inline.ant-menu-root .ant-menu-submenu-title>.ant-menu-title-content{flex:auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.ant-menu-inline.ant-menu-root .ant-menu-item>*,.ant-menu-inline.ant-menu-root .ant-menu-submenu-title>*{flex:none}.ant-menu.ant-menu-inline-collapsed{width:80px}.ant-menu.ant-menu-inline-collapsed>.ant-menu-item,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title{left:0;padding:0 calc(50% - 14px / 2);text-overflow:clip}.ant-menu.ant-menu-inline-collapsed>.ant-menu-item .ant-menu-submenu-arrow,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .ant-menu-submenu-arrow,.ant-menu.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.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-submenu-arrow{opacity:0}.ant-menu.ant-menu-inline-collapsed>.ant-menu-item .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item .anticon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .anticon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .anticon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .anticon{margin:0;font-size:14px;line-height:32px}.ant-menu.ant-menu-inline-collapsed>.ant-menu-item .ant-menu-item-icon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item .anticon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .ant-menu-item-icon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .anticon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-item-icon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .anticon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-item-icon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .anticon+span{display:inline-block;opacity:0}.ant-menu.ant-menu-inline-collapsed .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed .anticon{display:inline-block}.ant-menu.ant-menu-inline-collapsed-tooltip{pointer-events:none}.ant-menu.ant-menu-inline-collapsed-tooltip .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed-tooltip .anticon{display:none}.ant-menu.ant-menu-inline-collapsed-tooltip a{color:rgba(255,255,255,.85)}.ant-menu.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-inline,.ant-menu-root.ant-menu-vertical,.ant-menu-root.ant-menu-vertical-left,.ant-menu-root.ant-menu-vertical-right{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:14px;text-align:center}.ant-menu-rtl .ant-menu-item-group-title,.ant-menu-rtl.ant-menu-inline .ant-menu-item,.ant-menu-rtl.ant-menu-inline .ant-menu-submenu-title,.ant-menu-rtl.ant-menu-vertical .ant-menu-item,.ant-menu-rtl.ant-menu-vertical .ant-menu-submenu-title,.ant-menu-rtl.ant-menu-vertical-left .ant-menu-item,.ant-menu-rtl.ant-menu-vertical-left .ant-menu-submenu-title,.ant-menu-rtl.ant-menu-vertical-right .ant-menu-item,.ant-menu-rtl.ant-menu-vertical-right .ant-menu-submenu-title,.ant-menu.ant-menu-rtl{text-align:right}.ant-menu-sub.ant-menu-inline{padding:0;background:#fafafa;border-radius:0;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:32px;line-height:32px;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,.25)!important;background:0 0;cursor:not-allowed}.ant-menu-item-disabled::after,.ant-menu-submenu-disabled::after{border-color:transparent!important}.ant-menu-item-disabled a,.ant-menu-submenu-disabled a{color:rgba(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,.25)!important;cursor:not-allowed}.ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after,.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::after,.ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before{background:rgba(0,0,0,.25)!important}.ant-layout-header .ant-menu{line-height:inherit}.ant-menu-light .ant-menu-item-active,.ant-menu-light .ant-menu-item:hover,.ant-menu-light .ant-menu-submenu-active,.ant-menu-light .ant-menu-submenu-title:hover,.ant-menu-light .ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open{color:#1890ff}.ant-menu-dark .ant-menu-sub,.ant-menu.ant-menu-dark,.ant-menu.ant-menu-dark .ant-menu-sub{color:rgba(255,255,255,.65);background:#001529}.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,.ant-menu.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow{opacity:.45;transition:all .3s}.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow::after,.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::after,.ant-menu.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow::before,.ant-menu.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow::after,.ant-menu.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow::before{background:#fff}.ant-menu-dark.ant-menu-submenu-popup{background:0 0}.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;padding:0 12px;border-color:#001529;border-bottom:0}.ant-menu-dark.ant-menu-horizontal>.ant-menu-item:hover{background-color:#1890ff}.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,.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-active,.ant-menu-dark .ant-menu-item:hover,.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-active>a,.ant-menu-dark .ant-menu-item-active>span>a,.ant-menu-dark .ant-menu-item:hover>a,.ant-menu-dark .ant-menu-item:hover>span>a,.ant-menu-dark .ant-menu-submenu-active>a,.ant-menu-dark .ant-menu-submenu-active>span>a,.ant-menu-dark .ant-menu-submenu-open>a,.ant-menu-dark .ant-menu-submenu-open>span>a,.ant-menu-dark .ant-menu-submenu-selected>a,.ant-menu-dark .ant-menu-submenu-selected>span>a,.ant-menu-dark .ant-menu-submenu-title:hover>a,.ant-menu-dark .ant-menu-submenu-title:hover>span>a{color:#fff}.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-item:hover>.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{opacity:1}.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title>.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-submenu-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::before,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after,.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::after,.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::after,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title>.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,.ant-menu-submenu-popup.ant-menu-dark .ant-menu-item-selected,.ant-menu.ant-menu-dark .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 .ant-menu-item-icon,.ant-menu-dark .ant-menu-item-selected .ant-menu-item-icon+span,.ant-menu-dark .ant-menu-item-selected .anticon,.ant-menu-dark .ant-menu-item-selected .anticon+span,.ant-menu-dark .ant-menu-item-selected>a,.ant-menu-dark .ant-menu-item-selected>a:hover,.ant-menu-dark .ant-menu-item-selected>span>a,.ant-menu-dark .ant-menu-item-selected>span>a:hover{color:#fff}.ant-menu-dark .ant-menu-item-disabled,.ant-menu-dark .ant-menu-item-disabled>a,.ant-menu-dark .ant-menu-item-disabled>span>a,.ant-menu-dark .ant-menu-submenu-disabled,.ant-menu-dark .ant-menu-submenu-disabled>a,.ant-menu-dark .ant-menu-submenu-disabled>span>a{color:rgba(255,255,255,.35)!important;opacity:.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,.35)!important}.ant-menu-dark .ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after,.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::after,.ant-menu-dark .ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before{background:rgba(255,255,255,.35)!important}.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-left.ant-menu-sub>.ant-menu-item,.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-item,.ant-menu-rtl.ant-menu-vertical-right.ant-menu-sub>.ant-menu-submenu,.ant-menu-rtl.ant-menu-vertical.ant-menu-sub>.ant-menu-item,.ant-menu-rtl.ant-menu-vertical.ant-menu-sub>.ant-menu-submenu{transform-origin:top right}.ant-menu-rtl .ant-menu-item .ant-menu-item-icon,.ant-menu-rtl .ant-menu-item .anticon,.ant-menu-rtl .ant-menu-submenu-title .ant-menu-item-icon,.ant-menu-rtl .ant-menu-submenu-title .anticon{margin-right:auto;margin-left:8px}.ant-menu-rtl .ant-menu-item.ant-menu-item-only-child>.ant-menu-item-icon,.ant-menu-rtl .ant-menu-item.ant-menu-item-only-child>.anticon,.ant-menu-rtl .ant-menu-submenu-title.ant-menu-item-only-child>.ant-menu-item-icon,.ant-menu-rtl .ant-menu-submenu-title.ant-menu-item-only-child>.anticon{margin-left:0}.ant-menu-submenu-rtl.ant-menu-submenu-popup{transform-origin:100% 0}.ant-menu-rtl .ant-menu-submenu-inline>.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-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow{right:auto;left:16px}.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,.ant-menu-rtl .ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow::before{transform:rotate(-45deg) translateY(-2px)}.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,.ant-menu-rtl .ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow::after{transform:rotate(45deg) translateY(2px)}.ant-menu-rtl.ant-menu-inline .ant-menu-item::after,.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{right:auto;left:0}.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 calc(50% - 14px / 2)}.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}.ant-mention-wrapper,.ant-mention-wrapper .ant-mention-editor{position:relative;color:rgba(0,0,0,.85);font-size:12px;padding:0;line-height:1.66667;width:100%}.ant-menu-submenu.ant-menu-submenu-placement-bottom{top:6px;position:relative}.ant-menu-submenu.ant-menu-submenu-placement-right{left:4px;position:relative}.ant-menu-submenu.ant-menu-submenu-placement-right.ant-menu-submenu-rtl{left:auto;right:4px}.ant-menu-submenu.ant-menu-submenu-placement-left{right:4px;position:relative}.ant-menu-submenu.ant-menu-submenu-placement-left.ant-menu-submenu-rtl{right:auto;left:4px}.ant-mention-wrapper{box-sizing:border-box;margin:0;font-variant:tabular-nums;list-style:none;font-feature-settings:tnum;display:inline-block;vertical-align:middle}.ant-mention-wrapper .ant-mention-editor{min-width:0;background-color:#fff;background-image:none;border:1px solid #d9d9d9;border-radius:2px;transition:all .3s;display:block;height:auto;min-height:28px}.ant-mention-wrapper .ant-mention-editor::-moz-placeholder{opacity:1}.ant-mention-wrapper .ant-mention-editor::placeholder{color:#bfbfbf}.ant-mention-wrapper .ant-mention-editor:placeholder-shown{text-overflow:ellipsis}.ant-mention-wrapper .ant-mention-editor:hover{border-color:#40a9ff;border-right-width:1px!important}.ant-input-rtl .ant-mention-wrapper .ant-mention-editor:hover{border-right-width:0;border-left-width:1px!important}.ant-mention-wrapper .ant-mention-editor-focused,.ant-mention-wrapper .ant-mention-editor:focus{border-color:#40a9ff;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(24,144,255,.2)}.ant-input-rtl .ant-mention-wrapper .ant-mention-editor-focused,.ant-input-rtl .ant-mention-wrapper .ant-mention-editor:focus{border-right-width:0;border-left-width:1px!important}.ant-mention-wrapper .ant-mention-editor-disabled:hover,.ant-mention-wrapper .ant-mention-editor[disabled]:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-mention-wrapper .ant-mention-editor-disabled{background-color:#f5f5f5;cursor:not-allowed;opacity:1;color:rgba(0,0,0,.25);pointer-events:none}.ant-mention-wrapper .ant-mention-editor[disabled]{background-color:#f5f5f5;cursor:not-allowed;opacity:1;color:rgba(0,0,0,.25);pointer-events:none}.ant-mention-wrapper .ant-mention-editor-borderless,.ant-mention-wrapper .ant-mention-editor-borderless-disabled,.ant-mention-wrapper .ant-mention-editor-borderless-focused,.ant-mention-wrapper .ant-mention-editor-borderless:focus,.ant-mention-wrapper .ant-mention-editor-borderless:hover,.ant-mention-wrapper .ant-mention-editor-borderless[disabled]{background-color:transparent;border:none;box-shadow:none}textarea.ant-mention-wrapper .ant-mention-editor{max-width:100%;height:auto;min-height:28px;line-height:1.66667;vertical-align:bottom;transition:all .3s,height 0s}.ant-mention-wrapper .ant-mention-editor-lg{padding:3.4px 11px;font-size:14px}.ant-mention-dropdown,.ant-message{font-size:12px;font-variant:tabular-nums}.ant-mention-wrapper .ant-mention-editor-sm{padding:0 7px}.ant-mention-wrapper .ant-mention-editor-wrapper{height:auto;overflow-y:auto}.ant-mention-wrapper.ant-mention-active:not(.disabled) .ant-mention-editor{border-color:#40a9ff;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(24,144,255,.2)}.ant-mention-dropdown,.ant-message-notice-content,.ant-modal-content,.ant-notification-notice{box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05)}.ant-input-rtl .ant-mention-wrapper.ant-mention-active:not(.disabled) .ant-mention-editor{border-right-width:0;border-left-width:1px!important}.ant-mention-wrapper.disabled .ant-mention-editor{background-color:#f5f5f5;cursor:not-allowed;opacity:1;color:rgba(0,0,0,.25);pointer-events:none}.ant-mention-wrapper.disabled .ant-mention-editor:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-mention-wrapper .public-DraftEditorPlaceholder-root{position:absolute;pointer-events:none}.ant-mention-wrapper .public-DraftEditorPlaceholder-root .public-DraftEditorPlaceholder-inner{height:auto;padding:5px 7px;color:#bfbfbf;white-space:pre-wrap;word-wrap:break-word;outline:0;opacity:1}.ant-mention-wrapper .DraftEditor-editorContainer .public-DraftEditor-content{height:auto;padding:5px 7px}.ant-mention-dropdown{box-sizing:border-box;margin:1.5em 0 0;padding:0;color:rgba(0,0,0,.85);line-height:1.66667;list-style:none;font-feature-settings:tnum;z-index:1050;min-width:120px;max-height:250px;overflow-x:hidden;overflow-y:auto;background-color:#fff;border-radius:2px;outline:0}.ant-mention-dropdown-placement-top{margin-top:-.1em}.ant-mention-dropdown-notfound.ant-mention-dropdown-item{color:rgba(0,0,0,.25)}.ant-mention-dropdown-notfound.ant-mention-dropdown-item .anticon-loading{display:block;color:#1890ff;text-align:center}.ant-mention-dropdown-item{position:relative;display:block;padding:5px 8px;overflow:hidden;color:rgba(0,0,0,.85);font-weight:400;line-height:22px;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;transition:background .3s}.ant-mention-dropdown-item:hover{background-color:#f5f5f5}.ant-mention-dropdown-item-active,.ant-mention-dropdown-item.focus{background-color:#e6f7ff}.ant-mention-dropdown-item-disabled{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-mention-dropdown-item-disabled:hover{color:rgba(0,0,0,.25);background-color:#fff;cursor:not-allowed}.ant-mention-dropdown-item-selected,.ant-mention-dropdown-item-selected:hover{color:rgba(0,0,0,.85);font-weight:700;background-color:#f5f5f5}.ant-mention-dropdown-item-divider{height:1px;margin:1px 0;overflow:hidden;line-height:0;background-color:#f0f0f0}.ant-message,.ant-modal{line-height:1.66667;list-style:none;font-feature-settings:tnum;box-sizing:border-box}.ant-mention-dropdown{top:100%;left:0;position:relative;width:100%;margin-top:4px;margin-bottom:4px}.ant-message{margin:0;padding:0;color:rgba(0,0,0,.85);position:fixed;top:8px;left:0;z-index:1010;width:100%;pointer-events:none}.ant-message-notice{padding:8px;text-align:center}.ant-message-notice-content{display:inline-block;padding:8px 16px;background:#fff;border-radius:2px;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:14px}.ant-message-notice.ant-move-up-leave.ant-move-up-leave-active{animation-name:MessageMoveOut;animation-duration:.3s}@keyframes MessageMoveOut{0%{max-height:150px;padding:8px;opacity:1}100%{max-height:0;padding:0;opacity:0}}.ant-message-rtl .anticon{margin-right:0;margin-left:8px}.ant-modal{padding:0 0 24px;color:rgba(0,0,0,.85);font-size:12px;font-variant:tabular-nums;pointer-events:none;position:relative;top:100px;max-width:calc(100vw - 32px);margin:0 auto}.ant-modal.ant-zoom-enter,.ant-modal.antzoom-appear{transform:none;opacity:0;animation-duration:.3s;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,.45)}.ant-modal-mask-hidden{display:none}.ant-modal-wrap{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;outline:0;-webkit-overflow-scrolling:touch;z-index:1000}.ant-modal-title{margin:0;color:rgba(0,0,0,.85);font-weight:500;font-size:14px;line-height:22px;word-wrap:break-word}.ant-modal-content{position:relative;background-color:#fff;background-clip:padding-box;border:0;border-radius:2px;pointer-events:auto}.ant-modal-close{position:absolute;top:0;right:0;z-index:10;padding:0;color:rgba(0,0,0,.45);font-weight:700;line-height:1;text-decoration:none;background:0 0;border:0;outline:0;cursor:pointer;transition:color .3s}.ant-modal-close-x{display:block;width:44px;height:44px;font-size:14px;font-style:normal;line-height:44px;text-align:center;text-transform:none;text-rendering:auto}.ant-modal-close:focus,.ant-modal-close:hover{color:rgba(0,0,0,.75);text-decoration:none}.ant-modal-header{padding:11px 16px;color:rgba(0,0,0,.85);background:#fff;border-bottom:1px solid #f0f0f0;border-radius:2px 2px 0 0}.ant-modal-body{padding:16px;font-size:12px;line-height:1.66667;word-wrap:break-word}.ant-modal-footer{padding:8px 16px;text-align:right;background:0 0;border-top:1px solid #f0f0f0;border-radius:0 0 2px 2px}.ant-modal-footer .ant-btn+.ant-btn:not(.ant-dropdown-trigger){margin-bottom:0;margin-left:8px}.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{flex:1}}.ant-modal-confirm .ant-modal-header{display:none}.ant-modal-confirm-body-wrapper::after,.ant-modal-confirm-body-wrapper::before{display:table;content:''}.ant-modal-confirm .ant-modal-body{padding:24px 24px 16px}.ant-modal-confirm-body-wrapper::after{clear:both}.ant-modal-confirm-body .ant-modal-confirm-title{display:block;overflow:hidden;color:rgba(0,0,0,.85);font-weight:500;font-size:14px;line-height:1.4}.ant-modal-confirm-body .ant-modal-confirm-content{margin-top:8px;color:rgba(0,0,0,.85);font-size:12px}.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 .ant-btn+.ant-btn{margin-bottom:0;margin-left:8px}.ant-modal-confirm-error .ant-modal-confirm-body>.anticon{color:#ff4d4f}.ant-modal-confirm-confirm .ant-modal-confirm-body>.anticon,.ant-modal-confirm-warning .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 .ant-modal-close{right:initial;left:0}.ant-modal-wrap-rtl .ant-modal-footer{text-align:left}.ant-modal-wrap-rtl .ant-modal-footer .ant-btn+.ant-btn{margin-right:8px;margin-left:0}.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 .ant-btn+.ant-btn{margin-right:8px;margin-left:0}.ant-modal-wrap-rtl.ant-modal-centered .ant-modal{text-align:right}.ant-notification{box-sizing:border-box;margin:0 24px 0 0;padding:0;color:rgba(0,0,0,.85);font-size:12px;font-variant:tabular-nums;line-height:1.66667;list-style:none;font-feature-settings:tnum;position:fixed;z-index:1010}.ant-notification-bottomLeft,.ant-notification-topLeft{margin-right:0;margin-left:24px}.ant-notification-bottomLeft .ant-notification-fade-appear.ant-notification-fade-appear-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-topLeft .ant-notification-fade-enter.ant-notification-fade-enter-active{animation-name:NotificationLeftFadeIn}.ant-notification-close-icon{font-size:12px;cursor:pointer}.ant-notification-hook-holder{position:relative}.ant-notification-notice{position:relative;width:384px;max-width:calc(100vw - 24px * 2);margin-bottom:16px;margin-left:auto;padding:12px 16px;overflow:hidden;line-height:1.66667;word-wrap:break-word;background:#fff;border-radius:2px}.ant-notification-bottomLeft .ant-notification-notice,.ant-notification-topLeft .ant-notification-notice{margin-right:auto;margin-left:0}.ant-notification-notice-message{margin-bottom:8px;color:rgba(0,0,0,.85);font-size:14px;line-height:24px}.ant-notification-notice-message-single-line-auto-margin{display:block;width:calc(384px - 16px * 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:12px}.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:14px}.ant-notification-notice-with-icon .ant-notification-notice-description{margin-left:48px;font-size:12px}.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,.45);outline:0}.ant-page-header,.ant-pagination-jump-next .ant-pagination-item-container,.ant-pagination-jump-prev .ant-pagination-item-container{position:relative}.ant-notification-notice-close:hover{color:rgba(0,0,0,.67)}.ant-notification-notice-btn{float:right;margin-top:16px}.ant-notification .notification-fade-effect{animation-duration:.24s;animation-fill-mode:both}.ant-notification-fade-appear,.ant-notification-fade-enter{animation-duration:.24s;animation-fill-mode:both;opacity:0;animation-play-state:paused}.ant-notification-fade-leave{animation-fill-mode:both;animation-duration:.2s;animation-play-state:paused}.ant-notification-fade-appear.ant-notification-fade-appear-active,.ant-notification-fade-enter.ant-notification-fade-enter-active{animation-name:NotificationFadeIn;animation-play-state:running}.ant-notification-fade-leave.ant-notification-fade-leave-active{animation-name:NotificationFadeOut;animation-play-state:running}@keyframes NotificationFadeIn{0%{left:384px;opacity:0}100%{left:0;opacity:1}}@keyframes NotificationLeftFadeIn{0%{right:384px;opacity:0}100%{right:0;opacity:1}}@keyframes NotificationFadeOut{0%{max-height:150px;margin-bottom:16px;opacity:1}100%{max-height:0;margin-bottom:0;padding-top:0;padding-bottom:0;opacity:0}}.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-description,.ant-notification-rtl .ant-notification-notice-with-icon .ant-notification-notice-message{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}.ant-page-header{box-sizing:border-box;margin:0;color:rgba(0,0,0,.85);font-size:12px;font-variant:tabular-nums;line-height:1.66667;list-style:none;font-feature-settings:tnum;padding:8px 8px 16px 0;background-color:#fff}.ant-page-header-content,.ant-page-header.has-breadcrumb{padding-top:8px}.ant-page-header-ghost{background-color:inherit}.ant-page-header.has-footer{padding-bottom:0}.ant-page-header-back{margin-right:8px;font-size:16px;line-height:1}.ant-page-header-back-button{text-decoration:none;outline:0;transition:color .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 8px;vertical-align:middle}.ant-breadcrumb+.ant-page-header-heading{margin-top:4px}.ant-page-header-heading{display:flex}.ant-page-header-heading-left{display:flex;align-items:center;margin:2px 0;overflow:hidden}.ant-page-header-heading-title{margin-right:8px;margin-bottom:0;color:rgba(0,0,0,.85);font-weight:600;font-size:16px;line-height:32px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ant-page-header-heading .ant-avatar{margin-right:8px}.ant-page-header-heading-sub-title{margin-right:8px;color:rgba(0,0,0,.45);font-size:12px;line-height:1.66667;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ant-page-header-heading-extra{margin:2px 0;white-space:nowrap}.ant-page-header-heading-extra>*{margin-left:8px;white-space:unset}.ant-page-header-heading-extra>:first-child{margin-left:0}.ant-page-header-footer{margin-top:8px}.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-top:4px;padding-bottom:4px;font-size:14px}.ant-page-header-compact .ant-page-header-heading{flex-wrap:wrap}.ant-page-header-rtl .ant-page-header-back{float:right;margin-right:0;margin-left:16px}.ant-page-header-rtl .ant-page-header-heading .ant-avatar,.ant-page-header-rtl .ant-page-header-heading-title{margin-right:0;margin-left:8px}.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:8px;margin-left:0}.ant-pagination,.ant-pagination ol,.ant-pagination ul{margin:0;list-style:none;padding: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}.ant-page-header-back-button{border:0;background:0 0;padding:0;line-height:inherit;display:inline-block}nz-page-header,nz-page-header-content,nz-page-header-footer{display:block}.ant-pagination{box-sizing:border-box;color:rgba(0,0,0,.85);font-size:12px;font-variant:tabular-nums;line-height:1.66667;font-feature-settings:tnum}.ant-pagination::after{display:block;clear:both;height:0;overflow:hidden;visibility:hidden;content:' '}.ant-pagination-item,.ant-pagination-total-text{display:inline-block;margin-right:8px;line-height:26px}.ant-pagination-total-text{height:28px;vertical-align:middle}.ant-pagination-item{min-width:28px;height:28px;text-align:center;vertical-align:middle;list-style:none;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;outline:0;cursor:pointer;user-select:none}.ant-pagination-item a{display:block;padding:0 6px;color:rgba(0,0,0,.85);transition:none}.ant-pagination-item-active a,.ant-pagination-item:focus-visible a,.ant-pagination-item:hover a{color:#1890ff}.ant-pagination-item a:hover{text-decoration:none}.ant-pagination-item:focus-visible,.ant-pagination-item:hover{border-color:#1890ff;transition:all .3s}.ant-pagination-item-active{font-weight:500;background:#fff;border-color:#1890ff}.ant-pagination-item-active:focus-visible,.ant-pagination-item-active:hover,.ant-pagination-next:hover button,.ant-pagination-prev:hover button{border-color:#40a9ff}.ant-pagination-item-active:focus-visible a,.ant-pagination-item-active:hover a{color:#40a9ff}.ant-pagination-jump-next,.ant-pagination-jump-prev{outline:0}.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon,.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon{color:#1890ff;font-size:12px;letter-spacing:-1px;opacity:0;transition:all .2s}.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon-svg,.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon-svg{top:0;right:0;bottom:0;left:0;margin:auto}.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-ellipsis,.ant-pagination-jump-prev .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,.25);font-family:Arial,Helvetica,sans-serif;letter-spacing:2px;text-align:center;text-indent:.13em;opacity:1;transition:all .2s}.ant-pagination-jump-next,.ant-pagination-jump-prev,.ant-pagination-next,.ant-pagination-prev,.ant-select-multiple .ant-select-selection-search-input,.ant-select-multiple .ant-select-selection-search-mirror,.ant-statistic-content,.ant-steps-item-icon{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-pagination-jump-next:focus-visible .ant-pagination-item-link-icon,.ant-pagination-jump-next:hover .ant-pagination-item-link-icon,.ant-pagination-jump-prev:focus-visible .ant-pagination-item-link-icon,.ant-pagination-jump-prev:hover .ant-pagination-item-link-icon{opacity:1}.ant-pagination-jump-next:focus-visible .ant-pagination-item-ellipsis,.ant-pagination-jump-next:hover .ant-pagination-item-ellipsis,.ant-pagination-jump-prev:focus-visible .ant-pagination-item-ellipsis,.ant-pagination-jump-prev:hover .ant-pagination-item-ellipsis,.ant-pagination.ant-pagination-disabled .ant-pagination-item-link-icon{opacity:0}.ant-pagination-jump-next,.ant-pagination-jump-prev,.ant-pagination-prev{margin-right:8px}.ant-pagination-jump-next,.ant-pagination-jump-prev,.ant-pagination-next,.ant-pagination-prev{display:inline-block;min-width:28px;height:28px;color:rgba(0,0,0,.85);line-height:28px;text-align:center;vertical-align:middle;list-style:none;border-radius:2px;cursor:pointer;transition:all .3s}.ant-pagination-next,.ant-pagination-prev{font-family:Arial,Helvetica,sans-serif;outline:0}.ant-pagination-next button,.ant-pagination-prev button{color:rgba(0,0,0,.85);cursor:pointer;user-select:none}.ant-pagination-next .ant-pagination-item-link,.ant-pagination-prev .ant-pagination-item-link{display:block;width:100%;height:100%;padding:0;font-size:12px;text-align:center;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;outline:0;transition:all .3s}.ant-pagination-next:focus-visible .ant-pagination-item-link,.ant-pagination-next:hover .ant-pagination-item-link,.ant-pagination-prev:focus-visible .ant-pagination-item-link,.ant-pagination-prev:hover .ant-pagination-item-link{color:#1890ff;border-color:#1890ff}.ant-pagination-disabled,.ant-pagination-disabled:focus-visible,.ant-pagination-disabled:hover{cursor:not-allowed}.ant-pagination-disabled .ant-pagination-item-link,.ant-pagination-disabled:focus-visible .ant-pagination-item-link,.ant-pagination-disabled:hover .ant-pagination-item-link{color:rgba(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,.ant-pagination-options ::-ms-backdrop{vertical-align:top}}.ant-pagination-options-size-changer.ant-select{display:inline-block;width:auto}.ant-pagination-options-quick-jumper{display:inline-block;height:28px;margin-left:4px;line-height:28px;vertical-align:top}.ant-pagination-options-quick-jumper input{position:relative;display:inline-block;min-width:0;padding:3px 7px;color:rgba(0,0,0,.85);font-size:12px;line-height:1.66667;background-color:#fff;background-image:none;border:1px solid #d9d9d9;border-radius:2px;transition:all .3s;width:50px;height:28px;margin:0 8px}.ant-pagination-options-quick-jumper input::-moz-placeholder{opacity:1}.ant-pagination-options-quick-jumper input::placeholder{color:#bfbfbf}.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-input-rtl .ant-pagination-options-quick-jumper input:hover{border-right-width:0;border-left-width:1px!important}.ant-pagination-options-quick-jumper input-focused,.ant-pagination-options-quick-jumper input:focus{border-color:#40a9ff;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(24,144,255,.2)}.ant-input-rtl .ant-pagination-options-quick-jumper input-focused,.ant-input-rtl .ant-pagination-options-quick-jumper input:focus{border-right-width:0;border-left-width:1px!important}.ant-pagination-options-quick-jumper input-disabled:hover,.ant-pagination-options-quick-jumper input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-pagination-options-quick-jumper input-disabled{background-color:#f5f5f5;cursor:not-allowed;opacity:1;color:rgba(0,0,0,.25);pointer-events:none}.ant-pagination-options-quick-jumper input[disabled]{background-color:#f5f5f5;cursor:not-allowed;opacity:1;color:rgba(0,0,0,.25);pointer-events:none}.ant-pagination-options-quick-jumper input-borderless,.ant-pagination-options-quick-jumper input-borderless-disabled,.ant-pagination-options-quick-jumper input-borderless-focused,.ant-pagination-options-quick-jumper input-borderless:focus,.ant-pagination-options-quick-jumper input-borderless:hover,.ant-pagination-options-quick-jumper input-borderless[disabled]{background-color:transparent;border:none;box-shadow:none}.ant-popover-inner,.ant-select-dropdown{box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05)}textarea.ant-pagination-options-quick-jumper input{max-width:100%;height:auto;min-height:28px;line-height:1.66667;vertical-align:bottom;transition:all .3s,height 0s}.ant-pagination-options-quick-jumper input-lg{padding:3.4px 11px;font-size:14px}.ant-pagination-options-quick-jumper input-sm{padding:0 7px}.ant-pagination-simple .ant-pagination-next,.ant-pagination-simple .ant-pagination-prev{height:22px;line-height:22px;vertical-align:top}.ant-pagination-simple .ant-pagination-next .ant-pagination-item-link,.ant-pagination-simple .ant-pagination-prev .ant-pagination-item-link{height:22px;background-color:transparent;border:0}.ant-pagination-simple .ant-pagination-next .ant-pagination-item-link::after,.ant-pagination-simple .ant-pagination-prev .ant-pagination-item-link::after{height:22px;line-height:22px}.ant-pagination-simple .ant-pagination-simple-pager{display:inline-block;height:22px;margin-right:8px}.ant-pagination-simple .ant-pagination-simple-pager input{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:0;transition:border-color .3s}.ant-pagination-simple .ant-pagination-simple-pager input:hover{border-color:#1890ff}.ant-pagination-simple .ant-pagination-simple-pager input[disabled]{color:rgba(0,0,0,.25);background:#f5f5f5;border-color:#d9d9d9;cursor:not-allowed}.ant-pagination.mini .ant-pagination-item:not(.ant-pagination-item-active),.ant-pagination.mini .ant-pagination-next .ant-pagination-item-link,.ant-pagination.mini .ant-pagination-prev .ant-pagination-item-link{background:0 0;border-color:transparent}.ant-pagination.mini .ant-pagination-simple-pager,.ant-pagination.mini .ant-pagination-total-text{height:22px;line-height:22px}.ant-pagination.mini .ant-pagination-item{min-width:22px;height:22px;margin:0;line-height:20px}.ant-pagination.mini .ant-pagination-next,.ant-pagination.mini .ant-pagination-prev{min-width:22px;height:22px;margin:0;line-height:22px}.ant-pagination.mini .ant-pagination-next .ant-pagination-item-link::after,.ant-pagination.mini .ant-pagination-prev .ant-pagination-item-link::after{height:22px;line-height:22px}.ant-pagination.mini .ant-pagination-jump-next,.ant-pagination.mini .ant-pagination-jump-prev{height:22px;margin-right:0;line-height:22px}.ant-pagination.mini .ant-pagination-options{margin-left:2px}.ant-pagination.mini .ant-pagination-options-size-changer{top:1px}.ant-pagination.mini .ant-pagination-options-quick-jumper{height:22px;line-height:22px}.ant-popover,.ant-progress{line-height:1.66667;font-size:12px;box-sizing:border-box;font-variant:tabular-nums;list-style:none;font-feature-settings:tnum}.ant-pagination.mini .ant-pagination-options-quick-jumper input{padding:0 7px;width:44px;height:22px}.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,.25);background:0 0;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,.25);background:#f5f5f5;border-color:#d9d9d9;cursor:not-allowed}.ant-pagination-simple.ant-pagination.ant-pagination-disabled .ant-pagination-item-link{background:0 0}.ant-pagination.ant-pagination-disabled .ant-pagination-item-ellipsis{opacity:1}.ant-pagination.ant-pagination-disabled .ant-pagination-simple-pager{color:rgba(0,0,0,.25)}@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 .ant-pagination-item,.ant-pagination-rtl .ant-pagination-jump-next,.ant-pagination-rtl .ant-pagination-jump-prev,.ant-pagination-rtl .ant-pagination-prev,.ant-pagination-rtl .ant-pagination-total-text{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 .ant-pagination-options-size-changer.ant-select{margin-right:0;margin-left:8px}.ant-pagination-rtl .ant-pagination-options .ant-pagination-options-quick-jumper{margin-left:0}.ant-pagination-rtl.ant-pagination-simple .ant-pagination-simple-pager,.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}nz-pagination{display:block}.ant-popover-hidden,.ant-radio+span:empty{display:none}.ant-popover{margin:0;padding:0;color:rgba(0,0,0,.85);top:0;left:0;z-index:1030;font-weight:400;white-space:normal;text-align:left;cursor:auto;user-select:text}.ant-popover::after{position:absolute;background:rgba(255,255,255,.01);content:''}.ant-popover-placement-top,.ant-popover-placement-topLeft,.ant-popover-placement-topRight{padding-bottom:10px}.ant-popover-placement-right,.ant-popover-placement-rightBottom,.ant-popover-placement-rightTop{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-leftBottom,.ant-popover-placement-leftTop{padding-right:10px}.ant-popover-inner{background-color:#fff;background-clip:padding-box;border-radius:2px;box-shadow:0 0 8px rgba(0,0,0,.15)\9}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.ant-popover-inner{box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05)}}.ant-popover-title{min-width:177px;min-height:28px;margin:0;padding:5px 12px 4px;color:rgba(0,0,0,.85);font-weight:500;border-bottom:1px solid #f0f0f0}.ant-popover-inner-content{padding:8px 12px;color:rgba(0,0,0,.85)}.ant-popover-message{position:relative;padding:4px 0 12px;color:rgba(0,0,0,.85);font-size:12px}.ant-popover-message>.anticon{position:absolute;top:8px;color:#faad14;font-size:12px}.ant-popover-message-title{padding-left:20px}.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.49px;height:8.49px;overflow:hidden;background:0 0;pointer-events:none}.ant-popover-arrow-content{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:6px;height:6px;margin:auto;background-color:#fff;content:'';pointer-events:auto}.ant-progress,.ant-progress-steps{display:inline-block}.ant-popover-placement-top .ant-popover-arrow,.ant-popover-placement-topLeft .ant-popover-arrow,.ant-popover-placement-topRight .ant-popover-arrow{bottom:1.51px}.ant-popover-placement-top .ant-popover-arrow-content,.ant-popover-placement-topLeft .ant-popover-arrow-content,.ant-popover-placement-topRight .ant-popover-arrow-content{box-shadow:3px 3px 7px rgba(0,0,0,.07);transform:translateY(-4.24px) rotate(45deg)}.ant-popover-placement-top .ant-popover-arrow{left:50%;transform:translateX(-50%)}.ant-popover-placement-topLeft .ant-popover-arrow{left:16px}.ant-popover-placement-topRight .ant-popover-arrow{right:16px}.ant-popover-placement-right .ant-popover-arrow,.ant-popover-placement-rightBottom .ant-popover-arrow,.ant-popover-placement-rightTop .ant-popover-arrow{left:1.51px}.ant-popover-placement-right .ant-popover-arrow-content,.ant-popover-placement-rightBottom .ant-popover-arrow-content,.ant-popover-placement-rightTop .ant-popover-arrow-content{box-shadow:-3px 3px 7px rgba(0,0,0,.07);transform:translateX(4.24px) rotate(45deg)}.ant-popover-placement-right .ant-popover-arrow{top:50%;transform:translateY(-50%)}.ant-popover-placement-rightTop .ant-popover-arrow{top:12px}.ant-popover-placement-bottom .ant-popover-arrow,.ant-popover-placement-bottomLeft .ant-popover-arrow,.ant-popover-placement-bottomRight .ant-popover-arrow{top:1.51px}.ant-popover-placement-bottom .ant-popover-arrow-content,.ant-popover-placement-bottomLeft .ant-popover-arrow-content,.ant-popover-placement-bottomRight .ant-popover-arrow-content{box-shadow:-2px -2px 5px rgba(0,0,0,.06);transform:translateY(4.24px) rotate(45deg)}.ant-popover-placement-bottom .ant-popover-arrow{left:50%;transform:translateX(-50%)}.ant-popover-placement-bottomLeft .ant-popover-arrow{left:16px}.ant-popover-placement-bottomRight .ant-popover-arrow{right:16px}.ant-popover-placement-left .ant-popover-arrow,.ant-popover-placement-leftBottom .ant-popover-arrow,.ant-popover-placement-leftTop .ant-popover-arrow{right:1.51px}.ant-popover-placement-left .ant-popover-arrow-content,.ant-popover-placement-leftBottom .ant-popover-arrow-content,.ant-popover-placement-leftTop .ant-popover-arrow-content{box-shadow:3px -3px 7px rgba(0,0,0,.07);transform:translateX(-4.24px) rotate(45deg)}.ant-popover-placement-left .ant-popover-arrow{top:50%;transform:translateY(-50%)}.ant-popover-placement-leftTop .ant-popover-arrow{top:12px}.ant-popover-magenta .ant-popover-arrow-content,.ant-popover-magenta .ant-popover-inner,.ant-popover-pink .ant-popover-arrow-content,.ant-popover-pink .ant-popover-inner{background-color:#eb2f96}.ant-popover-red .ant-popover-arrow-content,.ant-popover-red .ant-popover-inner{background-color:#f5222d}.ant-popover-volcano .ant-popover-arrow-content,.ant-popover-volcano .ant-popover-inner{background-color:#fa541c}.ant-popover-orange .ant-popover-arrow-content,.ant-popover-orange .ant-popover-inner{background-color:#fa8c16}.ant-popover-yellow .ant-popover-arrow-content,.ant-popover-yellow .ant-popover-inner{background-color:#fadb14}.ant-popover-gold .ant-popover-arrow-content,.ant-popover-gold .ant-popover-inner{background-color:#faad14}.ant-popover-cyan .ant-popover-arrow-content,.ant-popover-cyan .ant-popover-inner{background-color:#13c2c2}.ant-popover-lime .ant-popover-arrow-content,.ant-popover-lime .ant-popover-inner{background-color:#a0d911}.ant-popover-green .ant-popover-arrow-content,.ant-popover-green .ant-popover-inner{background-color:#52c41a}.ant-popover-blue .ant-popover-arrow-content,.ant-popover-blue .ant-popover-inner{background-color:#1890ff}.ant-popover-geekblue .ant-popover-arrow-content,.ant-popover-geekblue .ant-popover-inner{background-color:#2f54eb}.ant-popover-purple .ant-popover-arrow-content,.ant-popover-purple .ant-popover-inner{background-color:#722ed1}.ant-popover-rtl{text-align:right}.ant-popover-rtl .ant-popover-message-title{padding-right:20px;padding-left:8px}.ant-popover-rtl .ant-popover-buttons{text-align:left}.ant-popover-rtl .ant-popover-buttons button{margin-right:8px;margin-left:0}.ant-popover{position:relative}.ant-progress{margin:0;padding:0;color:rgba(0,0,0,.85)}.ant-progress-line{position:relative;width:100%;font-size:12px}.ant-progress-steps-outer{display:flex;flex-direction:row;align-items:center}.ant-progress-steps-item{flex-shrink:0;min-width:2px;margin-right:2px;background:#f3f3f3;transition:all .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{animation:ant-progress-appear .3s}.ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:#1890ff}.ant-progress-bg,.ant-progress-success-bg{position:relative;background-color:#1890ff;border-radius:100px;transition:all .4s cubic-bezier(.08,.82,.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,.85);font-size:1em;line-height:1;white-space:nowrap;text-align:left;vertical-align:middle;word-break:normal}.ant-progress-text .anticon{font-size:12px}.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;animation:ant-progress-active 2.4s cubic-bezier(.23,1,.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,.85);font-size:.833333em;line-height:1;white-space:normal;text-align:center;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}@keyframes ant-progress-active{0%{transform:translateX(-100%) scaleX(0);opacity:.1}20%{transform:translateX(-100%) scaleX(0);opacity:.5}100%{transform:translateX(0) scaleX(1);opacity:0}}.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}.ant-radio-group{box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-variant:tabular-nums;list-style:none;font-feature-settings:tnum;display:inline-block;font-size:0;line-height:unset}.ant-radio,.ant-radio-wrapper{box-sizing:border-box;padding:0;color:rgba(0,0,0,.85);line-height:1.66667;position:relative;cursor:pointer;font-size:12px;font-variant:tabular-nums;font-feature-settings:tnum;list-style:none}.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{margin:0 6px 0 0;display:inline-flex;align-items:baseline}.ant-radio-wrapper::after{display:inline-block;width:0;overflow:hidden;content:'\a0'}.ant-radio{margin:0;top:.2em;display:inline-block;outline:0}.ant-radio-input:focus+.ant-radio-inner,.ant-radio-wrapper:hover .ant-radio,.ant-radio:hover .ant-radio-inner{border-color:#1890ff}.ant-radio-input:focus+.ant-radio-inner{box-shadow:0 0 0 3px rgba(24,144,255,.08)}.ant-radio-checked::after{position:absolute;top:0;left:0;width:100%;height:100%;border:1px solid #1890ff;border-radius:50%;visibility:hidden;animation:antRadioEffect .36s ease-in-out;animation-fill-mode:both;content:''}.ant-radio-inner,.ant-skeleton-header .ant-skeleton-avatar-lg.ant-skeleton-avatar-circle,.ant-skeleton-header .ant-skeleton-avatar-sm.ant-skeleton-avatar-circle,.ant-skeleton-header .ant-skeleton-avatar.ant-skeleton-avatar-circle{border-radius:50%}.ant-radio-wrapper:hover .ant-radio::after,.ant-radio:hover::after,.ant-tooltip{visibility:visible}.ant-radio-inner{position:relative;top:0;left:0;display:block;width:14px;height:14px;background-color:#fff;border-color:#d9d9d9;border-style:solid;border-width:1px;transition:all .3s}.ant-radio-inner::after{position:absolute;top:3px;left:3px;display:block;width:6px;height:6px;background-color:#1890ff;border-top:0;border-left:0;border-radius:6px;transform:scale(0);opacity:0;transition:all .3s cubic-bezier(.78,.14,.15,.86);content:' '}.ant-radio-input{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;cursor:pointer;opacity:0}.ant-radio-button-wrapper-disabled,.ant-radio-disabled,.ant-radio-disabled .ant-radio-inner,.ant-radio-disabled .ant-radio-input,.ant-radio-disabled+span{cursor:not-allowed}.ant-radio-checked .ant-radio-inner{border-color:#1890ff}.ant-radio-checked .ant-radio-inner::after{transform:scale(1);opacity:1;transition:all .3s cubic-bezier(.78,.14,.15,.86)}.ant-radio-disabled .ant-radio-inner{background-color:#f5f5f5;border-color:#d9d9d9!important}.ant-radio-disabled .ant-radio-inner::after{background-color:rgba(0,0,0,.2)}.ant-radio-disabled+span{color:rgba(0,0,0,.25)}span.ant-radio+*{padding-right:8px;padding-left:8px}.ant-radio-button-wrapper{position:relative;display:inline-block;height:28px;margin:0;padding:0 7px;color:rgba(0,0,0,.85);font-size:12px;line-height:26px;background:#fff;border:1px solid #d9d9d9;border-top-width:1.02px;border-left-width:0;cursor:pointer;transition:color .3s,background .3s,border-color .3s,box-shadow .3s}.ant-radio-button-wrapper a{color:rgba(0,0,0,.85)}.ant-radio-button-wrapper>.ant-radio-button{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%}.ant-radio-group-large .ant-radio-button-wrapper{height:32px;font-size:14px;line-height:30px}.ant-radio-group-small .ant-radio-button-wrapper{height:22px;padding:0 7px;line-height:20px}.ant-radio-button-wrapper:not(:first-child)::before{position:absolute;top:-1px;left:-1px;display:block;box-sizing:content-box;width:1px;height:100%;padding:1px 0;background-color:#d9d9d9;transition:background-color .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{box-shadow:0 0 0 3px rgba(24,144,255,.08)}.ant-radio-button-wrapper .ant-radio-inner,.ant-radio-button-wrapper input[type=radio],.ant-radio-button-wrapper input[type=checkbox]{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{box-shadow:0 0 0 3px rgba(24,144,255,.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-button-wrapper-disabled,.ant-radio-button-wrapper-disabled:first-child,.ant-radio-button-wrapper-disabled:hover{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within{box-shadow:0 0 0 3px rgba(24,144,255,.08)}.ant-radio-button-wrapper-disabled:first-child{border-left-color:#d9d9d9}.ant-radio-button-wrapper-disabled.ant-radio-button-wrapper-checked{color:rgba(0,0,0,.25);background-color:#e6e6e6;border-color:#d9d9d9;box-shadow:none}@keyframes antRadioEffect{0%{transform:scale(1);opacity:.5}100%{transform:scale(1.6);opacity:0}}.ant-radio-wrapper.ant-radio-wrapper-rtl{margin-right:0;margin-left:6px}.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}.ant-rate,.ant-rate-star,.ant-rate-text{display:inline-block}.ant-rate{box-sizing:border-box;font-variant:tabular-nums;font-feature-settings:tnum;margin:0;padding:0;color:#fadb14;font-size:16px;line-height:unset;list-style:none;outline:0}.ant-rate-disabled .ant-rate-star{cursor:default}.ant-rate-disabled .ant-rate-star:hover{transform:scale(1)}.ant-rate-star{position:relative;color:inherit;cursor:pointer}.ant-rate-star:not(:last-child){margin-right:8px}.ant-rate-star>div{transition:all .3s}.ant-rate-star>div:focus-visible,.ant-rate-star>div:hover{transform:scale(1.1)}.ant-rate-star>div:focus:not(:focus-visible){outline:0}.ant-rate-star-first,.ant-rate-star-second{color:#f0f0f0;transition:all .3s;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-full .ant-rate-star-second,.ant-rate-star-half .ant-rate-star-first{color:inherit}.ant-rate-text{margin:0 8px;font-size:12px}.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}.ant-select-single .ant-select-selector{display:flex}.ant-select-single .ant-select-selector .ant-select-selection-search{position:absolute;top:0;right:7px;bottom:0;left:7px}.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:26px;transition:all .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:26px}}.ant-select-single .ant-select-selector .ant-select-selection-item{position:relative;user-select:none}.ant-select-single .ant-select-selector .ant-select-selection-placeholder{pointer-events:none}.ant-select-single .ant-select-selector .ant-select-selection-item::after,.ant-select-single .ant-select-selector .ant-select-selection-placeholder::after,.ant-select-single .ant-select-selector::after{display:inline-block;width:0;visibility:hidden;content:'\a0'}.ant-select-single.ant-select-customize-input .ant-select-selector .ant-select-selection-placeholder::after,.ant-select-single.ant-select-customize-input .ant-select-selector::after{display:none}.ant-select-single.ant-select-show-arrow .ant-select-selection-search{right:19px}.ant-select-single.ant-select-show-arrow .ant-select-selection-item,.ant-select-single.ant-select-show-arrow .ant-select-selection-placeholder{padding-right:15px}.ant-select-single.ant-select-open .ant-select-selection-item{color:#bfbfbf}.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{width:100%;height:28px;padding:0 7px}.ant-select-single:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input{height:26px}.ant-select-single:not(.ant-select-customize-input) .ant-select-selector::after{line-height:26px}.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 7px}.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector{height:32px}.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,.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector::after{line-height:30px}.ant-select-single.ant-select-lg:not(.ant-select-customize-input):not(.ant-select-customize-input) .ant-select-selection-search-input{height:30px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector{height:22px;padding:0 7px}.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,.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector::after{line-height:20px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input):not(.ant-select-customize-input) .ant-select-selection-search-input{height:20px}.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-show-arrow .ant-select-selection-search{right:25px}.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:18px}.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector{padding:0 11px}.ant-select-selection-overflow{position:relative;display:flex;flex:auto;flex-wrap:wrap;max-width:100%}.ant-select-selection-overflow-item{flex:none;align-self:center;max-width:100%}.ant-select-multiple .ant-select-selector{display:flex;flex-wrap:wrap;align-items:center;padding:0 3px}.ant-select-show-search.ant-select-multiple .ant-select-selector{cursor:text}.ant-select-disabled.ant-select-multiple .ant-select-selector{background:#f5f5f5;cursor:not-allowed}.ant-select-multiple .ant-select-selector::after{display:inline-block;width:0;margin:3px 0;line-height:20px;content:'\a0'}.ant-select-multiple.ant-select-allow-clear .ant-select-selector,.ant-select-multiple.ant-select-show-arrow .ant-select-selector{padding-right:20px}.ant-select-multiple .ant-select-selection-item{position:relative;display:flex;flex:none;box-sizing:border-box;max-width:100%;height:20px;margin-top:3px;margin-bottom:3px;line-height:18px;background:#f5f5f5;border:1px solid #f0f0f0;border-radius:2px;cursor:default;transition:font-size .3s,line-height .3s,height .3s;user-select:none;margin-inline-end:3px;padding-inline-start:4px;padding-inline-end:2px}.ant-select-disabled.ant-select-multiple .ant-select-selection-item{color:#bfbfbf;border-color:#d9d9d9;cursor:not-allowed}.ant-select-multiple .ant-select-selection-item-content{display:inline-block;margin-right:2px;overflow:hidden;white-space:pre;text-overflow:ellipsis}.ant-select-multiple .ant-select-selection-item-remove{color:inherit;font-style:normal;text-align:center;text-transform:none;vertical-align:-.125em;display:inline-block;color:rgba(0,0,0,.45);font-weight:700;font-size:10px;line-height:inherit;cursor:pointer}.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-disabled .ant-select-selection-item-remove,.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:-.2em}.ant-select-multiple .ant-select-selection-item-remove:hover{color:rgba(0,0,0,.75)}.ant-select-multiple .ant-select-selection-overflow-item+.ant-select-selection-overflow-item .ant-select-selection-search{margin-inline-start:0}.ant-select-multiple .ant-select-selection-search{position:relative;max-width:100%;margin-top:3px;margin-bottom:3px;margin-inline-start:4px}.ant-select-multiple .ant-select-selection-search-input,.ant-select-multiple .ant-select-selection-search-mirror{height:20px;line-height:20px;transition:all .3s}.ant-select-multiple .ant-select-selection-search-input{width:100%;min-width:4.1px}.ant-select-multiple .ant-select-selection-search-mirror{position:absolute;top:0;left:0;z-index:999;white-space:pre;visibility:hidden}.ant-select-multiple .ant-select-selection-placeholder{position:absolute;top:50%;right:7px;left:7px;transform:translateY(-50%);transition:all .3s}.ant-select-multiple.ant-select-lg .ant-select-selector::after{line-height:26px}.ant-select-multiple.ant-select-lg .ant-select-selection-search{height:26px;line-height:26px}.ant-select-multiple.ant-select-lg .ant-select-selection-search-input,.ant-select-multiple.ant-select-lg .ant-select-selection-search-mirror{height:26px;line-height:24px}.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:16px;line-height:16px;margin-inline-start:3px}.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-lg .ant-select-selection-item{height:24px;line-height:24px}.ant-select{box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:12px;font-variant:tabular-nums;line-height:1.66667;list-style:none;font-feature-settings:tnum;position:relative;display:inline-block;cursor:pointer}.ant-select:not(.ant-select-customize-input) .ant-select-selector{position:relative;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;transition:all .3s cubic-bezier(.645,.045,.355,1)}.ant-select:not(.ant-select-customize-input) .ant-select-selector input{cursor:pointer}.ant-select-show-search.ant-select:not(.ant-select-customize-input) .ant-select-selector{cursor:text}.ant-select-show-search.ant-select:not(.ant-select-customize-input) .ant-select-selector input{cursor:auto}.ant-select-focused:not(.ant-select-disabled).ant-select:not(.ant-select-customize-input) .ant-select-selector{border-color:#40a9ff;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(24,144,255,.2)}.ant-input-rtl .ant-select-focused:not(.ant-select-disabled).ant-select:not(.ant-select-customize-input) .ant-select-selector{border-right-width:0;border-left-width:1px!important}.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector{color:rgba(0,0,0,.25);background:#f5f5f5;cursor:not-allowed}.ant-select-multiple.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector{background:#f5f5f5}.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector input{cursor:not-allowed}.ant-select:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input{margin:0;padding:0;background:0 0;border:none;outline:0;appearance:none}.ant-select-arrow,.ant-select-clear{position:absolute;right:7px;width:12px;height:12px;margin-top:-6px;font-size:12px;line-height:1;text-transform:none;text-align:center;font-style:normal}.ant-cascader-picker-label:hover+.ant-cascader-input:not(.ant-cascader-picker-disabled .ant-cascader-picker-label:hover+.ant-cascader-input),.ant-cascader-picker:focus .ant-cascader-input{border-right-width:1px!important;border-color:#40a9ff}.ant-select:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input::-webkit-search-cancel-button{display:none;-webkit-appearance:none}.ant-select-arrow,.ant-select-arrow svg{display:inline-block}.ant-select:not(.ant-select-disabled):hover .ant-select-selector{border-color:#40a9ff;border-right-width:1px!important}.ant-input-rtl .ant-select:not(.ant-select-disabled):hover .ant-select-selector{border-right-width:0;border-left-width:1px!important}.ant-select-selection-item{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}@media all and (-ms-high-contrast:none){.ant-select-selection-item,.ant-select-selection-item ::-ms-backdrop{flex:auto}}.ant-select-selection-placeholder{flex:1;overflow:hidden;color:#bfbfbf;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}@media all and (-ms-high-contrast:none){.ant-select-selection-placeholder,.ant-select-selection-placeholder ::-ms-backdrop{flex:auto}}.ant-select-arrow{color:inherit;vertical-align:-.125em;top:53%;color:rgba(0,0,0,.25);pointer-events:none}.ant-select-arrow>*{line-height:1}.ant-select-arrow::before{display:none}.ant-select-arrow .ant-select-arrow-icon{display:block}.ant-select-arrow .anticon{vertical-align:top;transition:transform .3s}.ant-select-arrow .anticon>svg{vertical-align:top}.ant-select-arrow .anticon:not(.ant-select-suffix){pointer-events:auto}.ant-select-disabled .ant-select-arrow{cursor:not-allowed}.ant-select-clear{top:50%;z-index:1;display:inline-block;color:rgba(0,0,0,.25);background:#fff;cursor:pointer;opacity:0;transition:color .3s ease,opacity .15s ease;text-rendering:auto}.ant-select-clear::before{display:block}.ant-select-clear:hover{color:rgba(0,0,0,.45)}.ant-select:hover .ant-select-clear{opacity:1}.ant-select-dropdown{margin:0;color:rgba(0,0,0,.85);line-height:1.66667;list-style:none;font-feature-settings:tnum;z-index:1050;box-sizing:border-box;padding:4px 0;overflow:hidden;font-size:12px;font-variant:initial;background-color:#fff;border-radius:2px;outline:0}.ant-select-dropdown-empty,.ant-select-item-empty{color:rgba(0,0,0,.25)}.ant-select-item,.ant-select-item-empty{display:block;padding:5px 8px;line-height:18px;font-size:12px;position:relative;min-height:28px;font-weight:400}.ant-select-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-select-dropdown-placement-topLeft,.ant-select-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-select-dropdown-placement-topLeft{animation-name:antSlideDownIn}.ant-select-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-select-dropdown-placement-bottomLeft{animation-name:antSlideUpOut}.ant-select-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-select-dropdown-placement-topLeft{animation-name:antSlideDownOut}.ant-select-item{color:rgba(0,0,0,.85);cursor:pointer;transition:background .3s ease}.ant-select-item-group{color:rgba(0,0,0,.45);font-size:12px;cursor:default}.ant-select-lg,.ant-spin-sm .ant-spin-dot{font-size:14px}.ant-select-item-option{display:flex}.ant-select-item-option-content{flex:auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ant-select-item-option-state{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,.85);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,.25);cursor:not-allowed}.ant-select-item-option-grouped{padding-left:16px}.ant-select-borderless .ant-select-selector{background-color:transparent!important;border-color:transparent!important;box-shadow:none!important}.ant-select-rtl .ant-select-arrow,.ant-select-rtl .ant-select-clear{right:initial;left:7px}.ant-select-dropdown-rtl .ant-select-item-option-grouped{padding-right:16px;padding-left:8px}.ant-select-rtl.ant-select-multiple.ant-select-allow-clear .ant-select-selector,.ant-select-rtl.ant-select-multiple.ant-select-show-arrow .ant-select-selector{padding-right:3px;padding-left:20px}.ant-select-rtl.ant-select-multiple .ant-select-selection-item{text-align:right}.ant-select-rtl.ant-select-multiple .ant-select-selection-item-content{margin-right:0;margin-left:2px;text-align:right}.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:7px;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:7px;left:19px}.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:15px}.ant-select-rtl.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-search{right:6px}.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:18px}.ant-select-dropdown{top:100%;left:0;position:relative;width:100%;margin-top:4px;margin-bottom:4px;display:block}.ant-select-dropdown .cdk-virtual-scroll-content-wrapper{right:0}.ant-select-dropdown .full-width{contain:initial}.ant-select-dropdown .full-width .cdk-virtual-scroll-content-wrapper{position:static}.ant-skeleton{display:table;width:100%}.ant-skeleton-header{display:table-cell;padding-right:8px;vertical-align:top}.ant-skeleton-header .ant-skeleton-avatar{display:inline-block;vertical-align:top;background:rgba(190,190,190,.2);width:28px;height:28px;line-height:28px}.ant-skeleton-header .ant-skeleton-avatar-lg{width:32px;height:32px;line-height:32px}.ant-skeleton-header .ant-skeleton-avatar-sm{width:22px;height:22px;line-height:22px}.ant-skeleton-content{display:table-cell;width:100%;vertical-align:top}.ant-skeleton-content .ant-skeleton-title{width:100%;height:14px;margin-top:8px;background:rgba(190,190,190,.2);border-radius:4px}.ant-skeleton-content .ant-skeleton-title+.ant-skeleton-paragraph{margin-top:20px}.ant-skeleton-content .ant-skeleton-paragraph{padding:0}.ant-skeleton-content .ant-skeleton-paragraph>li{width:100%;height:14px;list-style:none;background:rgba(190,190,190,.2);border-radius:4px}.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:12px}.ant-skeleton-with-avatar .ant-skeleton-content .ant-skeleton-title{margin-top:8px}.ant-skeleton-with-avatar .ant-skeleton-content .ant-skeleton-title+.ant-skeleton-paragraph{margin-top:20px}.ant-skeleton-round .ant-skeleton-content .ant-skeleton-paragraph>li,.ant-skeleton-round .ant-skeleton-content .ant-skeleton-title{border-radius:100px}.ant-skeleton.ant-skeleton-active .ant-skeleton-avatar,.ant-skeleton.ant-skeleton-active .ant-skeleton-button,.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-paragraph>li,.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-title,.ant-skeleton.ant-skeleton-active .ant-skeleton-image,.ant-skeleton.ant-skeleton-active .ant-skeleton-input{background:linear-gradient(90deg,rgba(190,190,190,.2) 25%,rgba(129,129,129,.24) 37%,rgba(190,190,190,.2) 63%);background-size:400% 100%;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:rgba(190,190,190,.2);border-radius:2px;width:56px;height:28px;line-height:28px}.ant-skeleton-element .ant-skeleton-button.ant-skeleton-button-circle{width:28px;border-radius:50%}.ant-skeleton-element .ant-skeleton-button.ant-skeleton-button-round{border-radius:28px}.ant-skeleton-element .ant-skeleton-button-lg{width:64px;height:32px;line-height:32px}.ant-skeleton-element .ant-skeleton-button-lg.ant-skeleton-button-circle{width:32px;border-radius:50%}.ant-skeleton-element .ant-skeleton-button-lg.ant-skeleton-button-round{border-radius:32px}.ant-skeleton-element .ant-skeleton-button-sm{width:44px;height:22px;line-height:22px}.ant-skeleton-element .ant-skeleton-button-sm.ant-skeleton-button-circle{width:22px;border-radius:50%}.ant-skeleton-element .ant-skeleton-button-sm.ant-skeleton-button-round{border-radius:22px}.ant-skeleton-element .ant-skeleton-avatar-lg.ant-skeleton-avatar-circle,.ant-skeleton-element .ant-skeleton-avatar-sm.ant-skeleton-avatar-circle,.ant-skeleton-element .ant-skeleton-avatar.ant-skeleton-avatar-circle,.ant-skeleton-element .ant-skeleton-image-svg.ant-skeleton-image-circle,.ant-skeleton-element .ant-skeleton-image.ant-skeleton-image-circle{border-radius:50%}.ant-skeleton-element .ant-skeleton-avatar{display:inline-block;vertical-align:top;background:rgba(190,190,190,.2);width:28px;height:28px;line-height:28px}.ant-skeleton-element .ant-skeleton-avatar-lg{width:32px;height:32px;line-height:32px}.ant-skeleton-element .ant-skeleton-avatar-sm{width:22px;height:22px;line-height:22px}.ant-skeleton-element .ant-skeleton-input{display:inline-block;vertical-align:top;background:rgba(190,190,190,.2);width:100%;height:28px;line-height:28px}.ant-skeleton-element .ant-skeleton-input-lg{width:100%;height:32px;line-height:32px}.ant-skeleton-element .ant-skeleton-input-sm{width:100%;height:22px;line-height:22px}.ant-skeleton-element .ant-skeleton-image{display:flex;align-items:center;justify-content:center;vertical-align:top;background:rgba(190,190,190,.2);width:96px;height:96px;line-height:96px}.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-slider,.ant-spin{font-size:12px;font-variant:tabular-nums;line-height:1.66667;list-style:none;font-feature-settings:tnum;box-sizing:border-box}.ant-slider-rail,.ant-slider-track{border-radius:2px;transition:background-color .3s}@keyframes ant-skeleton-loading{0%{background-position:100% 50%}100%{background-position:0 50%}}.ant-skeleton-rtl .ant-skeleton-header{padding-right:0;padding-left:16px}.ant-skeleton-rtl.ant-skeleton.ant-skeleton-active .ant-skeleton-avatar,.ant-skeleton-rtl.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-paragraph>li,.ant-skeleton-rtl.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-title{animation-name:ant-skeleton-loading-rtl}@keyframes ant-skeleton-loading-rtl{0%{background-position:0 50%}100%{background-position:100% 50%}}.ant-slider{color:rgba(0,0,0,.85);position:relative;height:12px;margin:10px 6px;padding:4px 0;cursor:pointer;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-dot,.ant-slider-dot:first-child,.ant-slider-dot:last-child{margin-left:-4px}.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}.ant-slider-track{position:absolute;height:4px;background-color:#91d5ff}.ant-slider-handle{position:absolute;width:12px;height:12px;margin-top:-4px;background-color:#fff;border:2px solid #91d5ff;border-radius:50%;box-shadow:0;cursor:pointer;transition:border-color .3s,box-shadow .6s,transform .3s cubic-bezier(.18,.89,.32,1.28)}.ant-slider-handle-dragging.ant-slider-handle-dragging.ant-slider-handle-dragging,.ant-slider-handle:focus{border-color:#46a6ff;box-shadow:0 0 0 5px rgba(24,144,255,.12)}.ant-slider-handle:focus{outline:0}.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:12px}.ant-slider-mark-text{position:absolute;display:inline-block;color:rgba(0,0,0,.45);text-align:center;word-break:keep-all;cursor:pointer;user-select:none}.ant-slider-mark-text-active{color:rgba(0,0,0,.85)}.ant-slider-step{position:absolute;width:100%;height:4px;background:0 0}.ant-slider-dot{position:absolute;top:-2px;width:8px;height:8px;background-color:#fff;border:2px solid #f0f0f0;border-radius:50%;cursor:pointer}.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,.25)!important}.ant-slider-disabled .ant-slider-dot,.ant-slider-disabled .ant-slider-handle{background-color:#fff;border-color:rgba(0,0,0,.25)!important;box-shadow:none;cursor:not-allowed}.ant-slider-disabled .ant-slider-dot,.ant-slider-disabled .ant-slider-mark-text{cursor:not-allowed!important}.ant-slider-rtl .ant-slider-mark{right:0;left:auto}.ant-slider-rtl .ant-slider-dot,.ant-slider-rtl .ant-slider-dot:first-child,.ant-slider-rtl .ant-slider-dot:last-child{margin-right:-4px;margin-left:0}.ant-spin{margin:0;padding:0;position:absolute;display:none;color:#1890ff;text-align:center;vertical-align:middle;opacity:0;transition:transform .3s cubic-bezier(.78,.14,.15,.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:6px;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:3px}.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:12px}.ant-spin-nested-loading>div>.ant-spin-lg.ant-spin-show-text .ant-spin-dot{margin-top:-26px}.ant-statistic,.ant-steps{margin:0;line-height:1.66667;font-variant:tabular-nums;list-style:none;font-feature-settings:tnum}.ant-spin-container{position:relative;transition:opacity .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;transition:all .3s;content:'';pointer-events:none}.ant-spin-blur{clear:both;overflow:hidden;opacity:.5;user-select:none;pointer-events:none}.ant-spin-blur::after{opacity:.4;pointer-events:auto}.ant-spin-tip{color:rgba(0,0,0,.45)}.ant-spin-dot{position:relative;display:inline-block;width:1em;height:1em}.ant-spin-dot-item{position:absolute;display:block;width:9px;height:9px;background-color:#1890ff;transform:scale(.75);transform-origin:50% 50%;opacity:.3;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;animation-delay:.4s}.ant-spin-dot-item:nth-child(3){right:0;bottom:0;animation-delay:.8s}.ant-spin-dot-item:nth-child(4){bottom:0;left:0;animation-delay:1.2s}.ant-spin-dot-spin{transform:rotate(45deg);animation:antRotate 1.2s infinite linear}.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){.ant-spin-blur{background:#fff;opacity:.5}}@keyframes antSpinMove{to{opacity:1}}@keyframes antRotate{to{transform:rotate(405deg)}}.ant-spin-rtl .ant-spin-dot-spin{transform:rotate(-45deg);animation-name:antRotateRtl}@keyframes antRotateRtl{to{transform:rotate(-405deg)}}nz-spin{display:block}.ant-statistic{box-sizing:border-box;padding:0;color:rgba(0,0,0,.85);font-size:12px}.ant-statistic-title{margin-bottom:0;color:rgba(0,0,0,.45);font-size:12px}.ant-statistic-content{color:rgba(0,0,0,.85);font-size:20px}.ant-statistic-content-value{display:inline-block;direction:ltr}.ant-cascader-menu-rtl .ant-cascader-menu,.ant-cascader-picker-rtl,.ant-statistic-rtl,.ant-steps-rtl,.ant-switch-rtl,.ant-table-rtl,.ant-table-wrapper-rtl,.ant-tabs-dropdown-rtl,.ant-tabs-rtl,.ant-tag.ant-tag-rtl,.ant-timeline-rtl,.ant-tooltip-rtl,.ant-transfer-rtl,.ant-typography-rtl,.ant-upload-list-rtl,.ant-upload-rtl{direction:rtl}.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}.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}.ant-steps{box-sizing:border-box;padding:0;color:rgba(0,0,0,.85);display:flex;width:100%;font-size:0;text-align:initial}.ant-steps-item{position:relative;display:inline-block;flex:1;overflow:hidden;vertical-align:top}.ant-steps-item-container{outline:0}.ant-steps-item:last-child{flex:none}.ant-steps-item:last-child>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title::after,.ant-steps-item:last-child>.ant-steps-item-container>.ant-steps-item-tail{display:none}.ant-steps-item-content,.ant-steps-item-icon{display:inline-block;vertical-align:top}.ant-steps-item-icon{width:24px;height:24px;margin:2px 8px 2px 0;font-size:12px;line-height:24px;text-align:center;border:1px solid rgba(0,0,0,.25);border-radius:24px;transition:background-color .3s,border-color .3s}.ant-steps-item-icon .ant-steps-icon{position:relative;top:0;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;transition:background .3s;content:''}.ant-steps-item-title{position:relative;display:inline-block;padding-right:16px;color:rgba(0,0,0,.85);font-size:14px;line-height:28px}.ant-steps-item-description,.ant-steps-item-subtitle{color:rgba(0,0,0,.45);font-size:12px}.ant-steps-item-title::after{position:absolute;top:14px;left:100%;display:block;width:9999px;height:1px;background:#f0f0f0;content:''}.ant-steps-item-subtitle{display:inline;margin-left:8px;font-weight:400}.ant-steps-item-wait .ant-steps-item-icon{background-color:#fff;border-color:rgba(0,0,0,.25)}.ant-steps-item-wait .ant-steps-item-icon>.ant-steps-icon{color:rgba(0,0,0,.25)}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description,.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:rgba(0,0,0,.45)}.ant-steps-item-wait .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:rgba(0,0,0,.25)}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title::after,.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-container>.ant-steps-item-content>.ant-steps-item-description,.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:rgba(0,0,0,.85)}.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::after,.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-tail::after{background-color:#f0f0f0}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-icon{background:#1890ff}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-icon .ant-steps-icon{color:#fff}.ant-steps-item-process>.ant-steps-item-container>.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-container>.ant-steps-item-content>.ant-steps-item-title::after,.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-tail::after{background-color:#1890ff}.ant-steps-item-finish .ant-steps-item-icon>.ant-steps-icon{color:#1890ff}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title,.ant-switch{color:rgba(0,0,0,.85)}.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-description{color:rgba(0,0,0,.45)}.ant-steps-item-error .ant-steps-item-icon>.ant-steps-icon,.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description,.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-icon{background-color:#fff;border-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::after,.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-tail::after,.g2-radar__legend-item::after,.number-info:not(:first-child)::after{background-color:#f0f0f0}.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,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]:hover .ant-steps-item-description,.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-title,.ant-steps-item-custom.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon{color:#1890ff}.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-description,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button] .ant-steps-item-icon .ant-steps-icon,.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-title{transition:color .3s}.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-horizontal:not(.ant-steps-label-vertical) .ant-steps-item{padding-left:16px;white-space:nowrap}.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:first-child{padding-left: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-container>.ant-steps-item-icon{height:auto;background:0 0;border:0}.ant-steps-item-custom>.ant-steps-item-container>.ant-steps-item-icon>.ant-steps-icon{top:2px;left:.5px;width:20px;height:20px;font-size:20px;line-height:20px}.ant-steps:not(.ant-steps-vertical) .ant-steps-item-custom .ant-steps-item-icon{width:auto;background:0 0}.ant-steps-small.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item{padding-left:12px}.ant-steps-small.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:first-child{padding-left:0}.ant-steps-small .ant-steps-item-icon{width:20px;height:20px;margin:0 8px 0 0;font-size:12px;line-height:20px;text-align:center;border-radius:20px}.ant-steps-small .ant-steps-item-title{padding-right:12px;font-size:12px;line-height:20px}.ant-steps-small .ant-steps-item-title::after{top:10px}.ant-steps-small .ant-steps-item-description{color:rgba(0,0,0,.45);font-size:12px}.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:0 0;border:0;border-radius:0}.ant-steps-small .ant-steps-item-custom .ant-steps-item-icon>.ant-steps-icon{font-size:20px;line-height:20px;transform:none}.ant-steps-vertical{display:flex;flex-direction:column}.ant-steps-vertical>.ant-steps-item{display:block;flex:1 0 auto;padding-left:0;overflow:visible}.ant-steps-vertical>.ant-steps-item .ant-steps-item-icon{float:left;margin-right:12px}.ant-steps-vertical>.ant-steps-item .ant-steps-item-content{display:block;min-height:48px;overflow:hidden}.ant-steps-vertical>.ant-steps-item .ant-steps-item-title{line-height:24px}.ant-steps-vertical.ant-steps-small .ant-steps-item-container .ant-steps-item-title,.ant-switch{line-height:20px}.ant-steps-vertical>.ant-steps-item .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:12px;width:1px;height:100%;padding:30px 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:10px;padding:26px 0 6px}.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:108px;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.66667}.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.66667}.ant-steps-dot .ant-steps-item-tail,.ant-steps-dot.ant-steps-small .ant-steps-item-tail{top:4px;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:0 0;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;transition:all .3s}.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,.001);content:''}.ant-steps-dot .ant-steps-item-content,.ant-steps-dot.ant-steps-small .ant-steps-item-content{width:140px}.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;background:0 0}.ant-steps-dot .ant-steps-item-process .ant-steps-icon:first-child .ant-steps-icon-dot,.ant-steps-dot.ant-steps-small .ant-steps-item-process .ant-steps-icon:first-child .ant-steps-icon-dot{left:0}.ant-steps-vertical.ant-steps-dot .ant-steps-item-icon{margin-top:8px;margin-left:0;background:0 0}.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-content{width:inherit}.ant-steps-vertical.ant-steps-dot .ant-steps-item-process .ant-steps-item-container .ant-steps-item-icon .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;transition:opacity .3s}.ant-steps-navigation .ant-steps-item-container .ant-steps-item-title::after,.ant-steps-navigation .ant-steps-item:last-child::after{display:none}.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: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:.85}.ant-steps-navigation .ant-steps-item:last-child{flex:1}.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,.25);border-bottom:none;border-left:none;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;transition:width .3s,left .3s;transition-timing-function:ease-out;content:''}.ant-steps-navigation .ant-steps-item.ant-steps-item-active::before{left:0;width:100%}.ant-steps-navigation.ant-steps-vertical>.ant-steps-item{margin-right:0!important}.ant-steps-navigation.ant-steps-vertical>.ant-steps-item::before{display:none}.ant-steps-navigation.ant-steps-vertical>.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-vertical>.ant-steps-item::after{position:relative;top:-2px;left:50%;display:block;width:8px;height:8px;margin-bottom:8px;text-align:center;transform:rotate(135deg)}.ant-switch,nz-switch{display:inline-block}.ant-steps-navigation.ant-steps-vertical>.ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail{visibility:hidden}.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{padding-right:16px;padding-left:0}.ant-steps-rtl.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:first-child{padding-right: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:.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;transform:rotate(225deg)}.ant-steps-rtl.ant-steps-small.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item{padding-right:12px;padding-left:0}.ant-steps-rtl.ant-steps-small.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:first-child{padding-right:0}.ant-steps-rtl.ant-steps-small .ant-steps-item-title{padding-right:0;padding-left:12px}.ant-steps-rtl.ant-steps-vertical>.ant-steps-item .ant-steps-item-icon{float:right;margin-right:0;margin-left:12px}.ant-steps-rtl.ant-steps-vertical>.ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail{right:12px;left:auto}.ant-steps-rtl.ant-steps-vertical.ant-steps-small .ant-steps-item-container .ant-steps-item-tail{right:10px;left:auto}.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-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}.ant-steps-rtl.ant-steps-with-progress.ant-steps-horizontal.ant-steps-label-horizontal .ant-steps-item:first-child.ant-steps-item-active{padding-right:4px}.ant-steps-with-progress .ant-steps-item{padding-top:4px}.ant-steps-with-progress .ant-steps-item .ant-steps-item-tail{top:4px!important}.ant-steps-with-progress.ant-steps-horizontal .ant-steps-item:first-child{padding-bottom:4px;padding-left:4px}.ant-steps-with-progress .ant-steps-item-icon{position:relative}.ant-steps-with-progress .ant-steps-item-icon .ant-progress{position:absolute;top:-5px;right:-5px;bottom:-5px;left:-5px}.ant-switch{margin:0;padding:0;font-size:12px;font-variant:tabular-nums;list-style:none;font-feature-settings:tnum;position:relative;box-sizing:border-box;min-width:40px;height:20px;vertical-align:middle;background-color:rgba(0,0,0,.25);border:0;border-radius:100px;cursor:pointer;transition:all .2s;user-select:none}.ant-switch:focus{outline:0;box-shadow:0 0 0 2px rgba(0,0,0,.1)}.ant-switch-checked:focus{box-shadow:0 0 0 2px rgba(24,144,255,.2)}.ant-switch:focus:hover{box-shadow:none}.ant-switch-checked{background-color:#1890ff}.ant-switch-disabled,.ant-switch-loading{cursor:not-allowed;opacity:.4}.ant-switch-disabled *,.ant-switch-loading *{box-shadow:none;cursor:not-allowed}.ant-switch-inner{display:block;margin:0 4px 0 22px;color:#fff;font-size:12px;transition:margin .2s}.ant-switch-handle,.ant-switch-handle::before,.img-thm__icon,.img-thm__mask{transition:all .2s ease-in-out}.ant-switch-checked .ant-switch-inner{margin:0 22px 0 4px}.ant-switch-handle{position:absolute;top:2px;left:2px;width:16px;height:16px}.ant-switch-handle::before{position:absolute;top:0;right:0;bottom:0;left:0;background-color:#fff;border-radius:8px;box-shadow:0 2px 4px 0 rgba(0,35,11,.2);content:''}.ant-switch-checked .ant-switch-handle{left:calc(100% - 16px - 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:relative;top:2px;color:rgba(0,0,0,.65);vertical-align:top}.ant-switch-checked .ant-switch-loading-icon{color:#1890ff}.ant-switch-small{min-width:24px;height:14px;line-height:14px}.ant-table,.ant-table-filter-dropdown,.ant-tabs-dropdown{line-height:1.66667;font-feature-settings:tnum;list-style:none;font-variant:tabular-nums;box-sizing:border-box}.ant-switch-small .ant-switch-inner{margin:0 5px 0 16px;font-size:12px}.ant-switch-small .ant-switch-handle{width:10px;height:10px}.ant-switch-small .ant-switch-loading-icon{top:.5px;font-size:9px}.ant-switch-small.ant-switch-checked .ant-switch-inner{margin:0 16px 0 5px}.ant-switch-small.ant-switch-checked .ant-switch-handle{left:calc(100% - 10px - 2px)}.ant-switch-rtl .ant-switch-inner{margin:0 22px 0 4px}.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 4px 0 22px}.ant-switch-rtl.ant-switch-checked .ant-switch-handle{right:calc(100% - 16px - 2px)}.ant-switch-rtl.ant-switch-small.ant-switch-checked .ant-switch-handle{right:calc(100% - 10px - 2px)}.ant-table-wrapper::after,.ant-table-wrapper::before{display:table;content:''}.ant-table.ant-table-middle{font-size:12px}.ant-table.ant-table-middle .ant-table-footer,.ant-table.ant-table-middle .ant-table-tbody>tr>td,.ant-table.ant-table-middle .ant-table-thead>tr>th,.ant-table.ant-table-middle .ant-table-title,.ant-table.ant-table-middle tfoot>tr>td,.ant-table.ant-table-middle tfoot>tr>th{padding:8px}.ant-table.ant-table-middle .ant-table-filter-trigger{margin-right:-4px}.ant-table.ant-table-middle .ant-table-expanded-row-fixed{margin:-8px}.ant-table.ant-table-middle .ant-table-tbody .ant-table-wrapper:only-child .ant-table{margin:-8px -8px -8px 25px}.ant-table.ant-table-small{font-size:12px}.ant-table.ant-table-small .ant-table-footer,.ant-table.ant-table-small .ant-table-tbody>tr>td,.ant-table.ant-table-small .ant-table-thead>tr>th,.ant-table.ant-table-small .ant-table-title,.ant-table.ant-table-small tfoot>tr>td,.ant-table.ant-table-small tfoot>tr>th{padding:4px}.ant-table.ant-table-small .ant-table-filter-trigger{margin-right:-2px}.ant-table.ant-table-small .ant-table-expanded-row-fixed{margin:-4px}.ant-table.ant-table-small .ant-table-tbody .ant-table-wrapper:only-child .ant-table{margin:-4px -4px -4px 21px}.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-thead>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>thead>tr:not(:last-child)>th,.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-summary>table>thead>tr:not(:last-child)>th{border-bottom:1px solid #f0f0f0}.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-body>table>tfoot>tr>td,.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-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-content>table>tfoot>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-content>table>thead>tr>th,.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-header>table>tfoot>tr>td,.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-header>table>thead>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tbody>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tfoot>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tfoot>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>thead>tr>th{border-right:1px solid #f0f0f0}.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>thead>tr>th::before,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>thead>tr>th::before,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>thead>tr>th::before,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>thead>tr>th::before{background-color:transparent!important}.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-body>table>tfoot>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-content>table>tfoot>tr>.ant-table-cell-fix-right-first::after,.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>tbody>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-header>table>thead>tr>.ant-table-cell-fix-right-first::after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tbody>tr>.ant-table-cell-fix-right-first::after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tfoot>tr>.ant-table-cell-fix-right-first::after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>thead>tr>.ant-table-cell-fix-right-first::after{border-right:1px solid #f0f0f0}.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>tbody>tr>td>.ant-table-expanded-row-fixed,.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-summary>table>tbody>tr>td>.ant-table-expanded-row-fixed{margin:-12px -9px}.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>tbody>tr>td>.ant-table-expanded-row-fixed::after,.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-summary>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-body>table>tbody>tr>td>.ant-table-expanded-row-fixed,.ant-table.ant-table-bordered.ant-table-middle>.ant-table-container>.ant-table-content>table>tbody>tr>td>.ant-table-expanded-row-fixed{margin:-8px -9px}.ant-table.ant-table-bordered.ant-table-small>.ant-table-container>.ant-table-body>table>tbody>tr>td>.ant-table-expanded-row-fixed,.ant-table.ant-table-bordered.ant-table-small>.ant-table-container>.ant-table-content>table>tbody>tr>td>.ant-table-expanded-row-fixed{margin:-4px -5px}.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{box-shadow:0 1px 0 1px #fafafa}.ant-table-wrapper{clear:both;max-width:100%}.ant-table-wrapper::after{clear:both}.ant-table{margin:0;padding:0;color:rgba(0,0,0,.85);position:relative;font-size:12px;background:#fff;border-radius:2px}.ant-table-footer,.ant-table-thead>tr>th{color:rgba(0,0,0,.85);background:#fafafa}.ant-table table{width:100%;text-align:left;border-radius:2px 2px 0 0;border-collapse:separate;border-spacing:0}.ant-table tfoot>tr>td,.ant-table tfoot>tr>th,.ant-table-tbody>tr>td,.ant-table-thead>tr>th{position:relative;padding:12px 8px;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-cell-ellipsis .ant-table-column-title{overflow:hidden;text-overflow:ellipsis;word-break:keep-all}.ant-table-footer,.ant-table-title{padding:12px 8px}.ant-table-thead>tr>th{position:relative;font-weight:500;text-align:left;transition:background .3s ease}.ant-table-thead>tr>th[colspan]:not([colspan='1']){text-align:center}.ant-table-thead>tr>th:not(:last-child):not(.ant-table-selection-column):not(.ant-table-row-expand-icon-cell):not([colspan])::before{position:absolute;top:50%;right:0;width:1px;height:1.6em;background-color:rgba(0,0,0,.06);transform:translateY(-50%);transition:background-color .3s;content:''}.ant-table-thead>tr:not(:last-child)>th[colspan]{border-bottom:0}.ant-table-tbody>tr>td{border-bottom:1px solid #f0f0f0;transition:background .3s}.ant-table-tbody>tr>td>.ant-table-expanded-row-fixed>.ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td,.ant-table-tbody>tr>td>.ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td,.notice-icon .ant-list-item:last-child{border-bottom:0}.ant-table-tbody>tr>td>.ant-table-expanded-row-fixed>.ant-table-wrapper:only-child .ant-table,.ant-table-tbody>tr>td>.ant-table-wrapper:only-child .ant-table{margin:-12px -8px -12px 25px}.ant-table-tbody>tr>td>.ant-table-expanded-row-fixed>.ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td:first-child,.ant-table-tbody>tr>td>.ant-table-expanded-row-fixed>.ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td:last-child,.ant-table-tbody>tr>td>.ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td:first-child,.ant-table-tbody>tr>td>.ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td:last-child{border-radius:0}.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,.03)}.ant-table-tbody>tr.ant-table-row-selected:hover>td{background:#dcf4ff}.ant-table-summary{background:#fff}div.ant-table-summary{box-shadow:0 -1px 0 #f0f0f0}.ant-table-summary>tr>td,.ant-table-summary>tr>th{border-bottom:1px solid #f0f0f0}.ant-table-pagination.ant-pagination{margin:16px 0}.ant-table-pagination{display:flex;flex-wrap:wrap;row-gap:4px}.ant-table-pagination>*{flex:none}.ant-table-pagination-left{justify-content:flex-start}.ant-table-pagination-center{justify-content:center}.ant-table-pagination-right{justify-content:flex-end}.ant-table-thead th.ant-table-column-has-sorters{cursor:pointer;transition:all .3s}.ant-table-thead th.ant-table-column-has-sorters:hover{background:rgba(0,0,0,.04)}.ant-table-thead th.ant-table-column-has-sorters:hover::before{background-color:transparent!important}.ant-table-thead th.ant-table-column-has-sorters.ant-table-cell-fix-left:hover,.ant-table-thead th.ant-table-column-has-sorters.ant-table-cell-fix-right:hover,.ant-table-thead th.ant-table-column-sort{background:#f5f5f5}.ant-table-thead th.ant-table-column-sort::before{background-color:transparent!important}td.ant-table-column-sort{background:#fafafa}.ant-table-column-title{position:relative;z-index:1;flex:1}.ant-table-column-sorters{display:flex;flex:auto;align-items:center;justify-content:space-between}.ant-table-column-sorters::after{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;content:''}.ant-table-column-sorter{color:#bfbfbf;font-size:0;transition:color .3s}.ant-table-column-sorter-inner{display:inline-flex;flex-direction:column;align-items:center}.ant-table-filter-column,.ant-table-filter-dropdown-btns{display:flex;justify-content:space-between}.ant-table-column-sorter-down,.ant-table-column-sorter-up{font-size:11px}.ant-table-column-sorter-down.active,.ant-table-column-sorter-up.active{color:#1890ff}.ant-table-column-sorter-up+.ant-table-column-sorter-down{margin-top:-.3em}.ant-table-column-sorters:hover .ant-table-column-sorter{color:#a6a6a6}.ant-table-filter-trigger{position:relative;display:flex;align-items:center;margin:-4px -4px -4px 4px;padding:0 4px;color:#bfbfbf;font-size:12px;border-radius:2px;cursor:pointer;transition:all .3s}.ant-table-filter-trigger:hover{color:rgba(0,0,0,.45);background:rgba(0,0,0,.04)}.ant-table-filter-trigger.active{color:#1890ff}.ant-table-filter-dropdown{margin:0;padding:0;color:rgba(0,0,0,.85);font-size:12px;min-width:120px;background-color:#fff;border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05)}.ant-table-filter-dropdown .ant-dropdown-menu{max-height:264px;overflow-x:hidden;border:0;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{padding:7px 8px 7px 3px;overflow:hidden;background-color:inherit;border-top:1px solid #f0f0f0}.ant-table-selection-col{width:32px}.ant-table-bordered .ant-table-selection-col{width:50px}table tr td.ant-table-selection-column,table tr th.ant-table-selection-column{padding-right:4px;padding-left:4px;text-align:center}table tr td.ant-table-selection-column .ant-radio-wrapper,table tr th.ant-table-selection-column .ant-radio-wrapper{margin-right:0}table tr th.ant-table-selection-column::after{background-color:transparent!important}.ant-table-selection{position:relative;display:inline-flex;flex-direction:column}.ant-table-selection-extra{position:absolute;top:0;z-index:1;cursor:pointer;transition:all .3s;margin-inline-start:100%;padding-inline-start:0}.ant-table-selection-extra .anticon{color:#bfbfbf;font-size:10px}.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{text-decoration:none;cursor:pointer;position:relative;display:inline-flex;float:left;box-sizing:border-box;width:17px;height:17px;padding:0;color:inherit;line-height:17px;background:#fff;border:1px solid #f0f0f0;border-radius:2px;outline:0;transform:scale(.82352941);transition:all .3s;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:active,.ant-table-row-expand-icon:focus,.ant-table-row-expand-icon:hover{border-color:currentColor}.ant-table-row-expand-icon::after,.ant-table-row-expand-icon::before{position:absolute;background:currentColor;transition:transform .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;transform:rotate(90deg)}.ant-table-row-expand-icon-collapsed::before{transform:rotate(-180deg)}.ant-table-row-expand-icon-collapsed::after{transform:rotate(0)}.ant-table-row-expand-icon-spaced{background:0 0;border:0;visibility:hidden}.ant-table-row-expand-icon-spaced::after,.ant-table-row-expand-icon-spaced::before{display:none;content:none}.ant-table-row-indent+.ant-table-row-expand-icon{margin-top:1.5px;margin-right:4px}tr.ant-table-expanded-row:hover>td,tr.ant-table-expanded-row>td{background:#fbfbfb}tr.ant-table-expanded-row .ant-descriptions-view{display:flex}tr.ant-table-expanded-row .ant-descriptions-view table{flex:auto;width:auto}.ant-table .ant-table-expanded-row-fixed{position:relative;margin:-12px -8px;padding:12px 8px}.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,.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 .ant-table-container::after,.ant-table .ant-table-container::before,.ant-table-cell-fix-left-first::after,.ant-table-cell-fix-left-last::after,.ant-table-cell-fix-right-first::after,.ant-table-cell-fix-right-last::after{position:absolute;transition:box-shadow .3s;width:30px;top:0;content:'';pointer-events:none}.ant-table-cell-fix-left-first::after,.ant-table-cell-fix-left-last::after{right:0;bottom:-1px;transform:translateX(100%)}.ant-table-cell-fix-right-first::after,.ant-table-cell-fix-right-last::after{bottom:-1px;left:0;transform:translateX(-100%)}.ant-table .ant-table-container::after,.ant-table .ant-table-container::before{bottom:0;z-index:1}.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 .ant-table-cell-fix-left-first::after,.ant-table-ping-left .ant-table-cell-fix-left-last::after,.ant-table-ping-left:not(.ant-table-has-fix-left) .ant-table-container::before{box-shadow:inset 10px 0 8px -8px rgba(0,0,0,.15)}.ant-table-ping-left .ant-table-cell-fix-left-last::before{background-color:transparent!important}.ant-table-ping-right:not(.ant-table-has-fix-right) .ant-table-container{position:relative}.ant-table-sticky-holder,.ant-table-sticky-scroll{position:sticky;z-index:3}.ant-table-ping-right .ant-table-cell-fix-right-first::after,.ant-table-ping-right .ant-table-cell-fix-right-last::after,.ant-table-ping-right:not(.ant-table-has-fix-right) .ant-table-container::after{box-shadow:inset -10px 0 8px -8px rgba(0,0,0,.15)}.ant-table-sticky-scroll{bottom:0;display:flex;align-items:center;background:#fff;border-top:1px solid #f0f0f0;opacity:.6}.ant-tabs-bottom>.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-right::after,.ant-tabs-bottom>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-right::after,.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-bottom::after,.ant-tabs-left>.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-bottom::after,.ant-tabs-left>div>.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-bottom::after,.ant-tabs-right>.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-bottom::after,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-top::before,.ant-tabs-top>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-left::before,.ant-tabs-top>.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-left::before,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-right::after{opacity:1}.ant-table-sticky-scroll:hover{transform-origin:center bottom}.ant-table-sticky-scroll-bar{height:8px;background-color:rgba(0,0,0,.35);border-radius:4px}.ant-table-sticky-scroll-bar-active,.ant-table-sticky-scroll-bar:hover{background-color:rgba(0,0,0,.8)}@media all and (-ms-high-contrast:none){.ant-table-ping-left .ant-table-cell-fix-left-last::after,.ant-table-ping-right .ant-table-cell-fix-right-first::after{box-shadow:none!important}}.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,.ant-table-title+.ant-table-container table>thead>tr:first-child th:last-child{border-radius:0}.ant-table-container,.ant-table-container table>thead>tr:first-child th:first-child{border-top-left-radius:2px}.ant-table-container,.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 .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-wrapper-rtl .ant-table thead>tr>th.ant-table-selection-column,.ant-table-wrapper-rtl .ant-table-selection{text-align:center}.ant-table-tbody>tr .ant-table-wrapper:only-child .ant-table.ant-table-rtl{margin:-12px 25px -12px -8px}.ant-table-wrapper.ant-table-wrapper-rtl .ant-table-pagination-left{justify-content:flex-end}.ant-table-wrapper.ant-table-wrapper-rtl .ant-table-pagination-right{justify-content:flex-start}.ant-table-wrapper-rtl .ant-table-column-sorter{margin-right:4px;margin-left:0}.ant-table-wrapper-rtl .ant-table-filter-column-title{padding:12px 8px 12px 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-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,.ant-dropdown-rtl .ant-table-filter-dropdown .ant-checkbox-wrapper+span,.ant-dropdown-rtl .ant-table-filter-dropdown-submenu .ant-checkbox-wrapper+span{padding-right:8px;padding-left:0}.ant-table-wrapper-rtl .ant-table-row-expand-icon,.ant-table-wrapper-rtl .ant-table-row-indent{float:right}.ant-table-wrapper-rtl .ant-table-row-indent+.ant-table-row-expand-icon{margin-right:0;margin-left:4px}.ant-table-wrapper-rtl .ant-table-row-expand-icon::after{transform:rotate(-90deg)}.ant-table-wrapper-rtl .ant-table-row-expand-icon-collapsed::before{transform:rotate(180deg)}.ant-table-wrapper-rtl .ant-table-row-expand-icon-collapsed::after{transform:rotate(0)}nz-table,nz-table-inner-default,nz-table-inner-scroll,nz-table-selection,nz-table-title-footer{display:block}nz-filter-trigger{display:inline-flex}.nz-table-out-bordered>.ant-table-container,.nz-table-out-bordered>.ant-table-title{border:1px solid #f0f0f0;border-bottom:0}.nz-table-out-bordered>.ant-table-footer{border:1px solid #f0f0f0;border-top:0}cdk-virtual-scroll-viewport.ant-table-body{overflow-y:scroll}.nz-table-hide-scrollbar{scrollbar-color:#fafafa #fafafa}.nz-table-hide-scrollbar::-webkit-scrollbar{background-color:#fafafa}.ant-table.ant-table-small .nz-table-hide-scrollbar{scrollbar-color:#fafafa #fafafa}.ant-table.ant-table-small .nz-table-hide-scrollbar::-webkit-scrollbar{background-color:transparent}.ant-table.ant-table-bordered>.ant-table-container>.cdk-virtual-scroll-viewport>.cdk-virtual-scroll-content-wrapper>table>tbody>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.cdk-virtual-scroll-viewport>.cdk-virtual-scroll-content-wrapper>table>tfoot>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.cdk-virtual-scroll-viewport>.cdk-virtual-scroll-content-wrapper>table>tfoot>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.cdk-virtual-scroll-viewport>.cdk-virtual-scroll-content-wrapper>table>thead>tr>th{border-right:1px solid #f0f0f0}.ant-table.ant-table-bordered>.ant-table-container>.cdk-virtual-scroll-viewport>.cdk-virtual-scroll-content-wrapper>table>thead>tr:not(:last-child)>th{border-bottom:1px solid #f0f0f0}.ant-table.ant-table-bordered>.ant-table-container>.cdk-virtual-scroll-viewport>.cdk-virtual-scroll-content-wrapper>table>tbody>tr>.ant-table-cell-fix-right-first::after,.ant-table.ant-table-bordered>.ant-table-container>.cdk-virtual-scroll-viewport>.cdk-virtual-scroll-content-wrapper>table>tfoot>tr>.ant-table-cell-fix-right-first::after,.ant-table.ant-table-bordered>.ant-table-container>.cdk-virtual-scroll-viewport>.cdk-virtual-scroll-content-wrapper>table>thead>tr>.ant-table-cell-fix-right-first::after{border-right:1px solid #f0f0f0}.ant-table.ant-table-bordered>.ant-table-container>.cdk-virtual-scroll-viewport>.cdk-virtual-scroll-content-wrapper>table>tbody>tr>td>.ant-table-expanded-row-fixed{margin:-12px -9px}.ant-table.ant-table-bordered>.ant-table-container>.cdk-virtual-scroll-viewport>.cdk-virtual-scroll-content-wrapper>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>.cdk-virtual-scroll-viewport>.cdk-virtual-scroll-content-wrapper>table>tbody>tr.ant-table-expanded-row>td,.ant-table.ant-table-bordered.ant-table-scroll-horizontal>.ant-table-container>.cdk-virtual-scroll-viewport>.cdk-virtual-scroll-content-wrapper>table>tbody>tr.ant-table-placeholder>td{border-right:0}.ant-table.ant-table-bordered.ant-table-middle>.ant-table-container>.cdk-virtual-scroll-viewport>.cdk-virtual-scroll-content-wrapper>table>tbody>tr>td>.ant-table-expanded-row-fixed{margin:-8px -9px}.ant-table.ant-table-bordered.ant-table-small>.ant-table-container>.cdk-virtual-scroll-viewport>.cdk-virtual-scroll-content-wrapper>table>tbody>tr>td>.ant-table-expanded-row-fixed{margin:-4px -5px}.ant-tabs-small>.ant-tabs-nav .ant-tabs-tab{padding:4px 0;font-size:12px}.ant-tabs-large>.ant-tabs-nav .ant-tabs-tab{padding:8px 0;font-size:14px}.ant-tabs-card.ant-tabs-small>.ant-tabs-nav .ant-tabs-tab{padding:6px 8px}.ant-tabs-card.ant-tabs-large>.ant-tabs-nav .ant-tabs-tab{padding:7px 8px 6px}.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:8px}.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab .ant-tabs-tab-remove{margin-right:4px;margin-left:0}.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab .ant-tabs-tab-remove .anticon{margin:0}.ant-tabs-rtl.ant-tabs-left>.ant-tabs-content-holder,.ant-tabs-rtl.ant-tabs-right>.ant-tabs-nav{order:0}.ant-tabs-rtl.ant-tabs-right>.ant-tabs-content-holder{order:1}.ant-tabs-rtl.ant-tabs-card.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-rtl.ant-tabs-card.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-rtl.ant-tabs-card.ant-tabs-top>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-rtl.ant-tabs-card.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab{margin-right:0;margin-left:2px}.ant-tabs-dropdown-rtl .ant-tabs-dropdown-menu-item{text-align:right}.ant-tabs-bottom,.ant-tabs-top{flex-direction:column}.ant-tabs-bottom>.ant-tabs-nav,.ant-tabs-bottom>div>.ant-tabs-nav,.ant-tabs-top>.ant-tabs-nav,.ant-tabs-top>div>.ant-tabs-nav{margin:0 0 8px}.ant-tabs-bottom>.ant-tabs-nav::before,.ant-tabs-bottom>div>.ant-tabs-nav::before,.ant-tabs-top>.ant-tabs-nav::before,.ant-tabs-top>div>.ant-tabs-nav::before{position:absolute;right:0;left:0;border-bottom:1px solid #f0f0f0;content:''}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-top>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-ink-bar{height:2px}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-ink-bar-animated,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-ink-bar-animated,.ant-tabs-top>.ant-tabs-nav .ant-tabs-ink-bar-animated,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-ink-bar-animated{transition:width .3s,left .3s,right .3s}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-nav-wrap::after,.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-nav-wrap::before,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-nav-wrap::after,.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-top>.ant-tabs-nav .ant-tabs-nav-wrap::before,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-wrap::after,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-wrap::before{top:0;bottom:0;width:30px}.ant-tabs-bottom>.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::before,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-wrap::before{left:0;box-shadow:inset 10px 0 8px -8px rgba(0,0,0,.08)}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-nav-wrap::after,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-nav-wrap::after,.ant-tabs-top>.ant-tabs-nav .ant-tabs-nav-wrap::after,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-wrap::after{right:0;box-shadow:inset -10px 0 8px -8px rgba(0,0,0,.08)}.ant-tabs-top>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-top>.ant-tabs-nav::before,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-top>div>.ant-tabs-nav::before{bottom:0}.ant-tabs-bottom>.ant-tabs-nav,.ant-tabs-bottom>div>.ant-tabs-nav{order:1;margin-top:8px;margin-bottom:0}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-bottom>.ant-tabs-nav::before,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-bottom>div>.ant-tabs-nav::before{top:0}.ant-tabs-bottom>.ant-tabs-content-holder,.ant-tabs-bottom>div>.ant-tabs-content-holder{order:0}.ant-tabs-left>.ant-tabs-nav,.ant-tabs-left>div>.ant-tabs-nav,.ant-tabs-right>.ant-tabs-nav,.ant-tabs-right>div>.ant-tabs-nav{flex-direction:column;min-width:50px}.ant-tabs-left>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-right>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-tab{padding:4px 16px;text-align:center}.ant-tabs-left>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-right>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab{margin:8px 0 0}.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap{flex-direction:column}.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap::after,.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap::before,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap::after,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap::before,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap::after,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap::before,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap::after,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap::before{right:0;left:0;height:30px}.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap::before,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap::before,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap::before,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap::before{top:0;box-shadow:inset 0 10px 8px -8px rgba(0,0,0,.08)}.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap::after,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap::after,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap::after,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap::after{bottom:0;box-shadow:inset 0 -10px 8px -8px rgba(0,0,0,.08)}.ant-cascader-menus,.ant-tabs-dropdown-menu,.ant-tooltip-inner,.nz-tabs-dropdown.ant-dropdown .ant-dropdown-menu{box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05)}.ant-tabs-left>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-right>.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-left>div>.ant-tabs-nav .ant-tabs-ink-bar-animated,.ant-tabs-right>.ant-tabs-nav .ant-tabs-ink-bar-animated,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-ink-bar-animated{transition:height .3s,top .3s}.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-list,.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-operations,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-list,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-operations,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-list,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-operations,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-list,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-operations{flex:1 0 auto;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:16px}.ant-tabs-right>.ant-tabs-nav,.ant-tabs-right>div>.ant-tabs-nav{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{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:16px}.ant-tabs-dropdown{margin:0;padding:0;color:rgba(0,0,0,.85);font-size:12px;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:0}.ant-tabs-dropdown-menu-item{min-width:120px;margin:0;padding:5px 8px;overflow:hidden;color:rgba(0,0,0,.85);font-weight:400;font-size:12px;line-height:18px;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;transition:all .3s}.ant-tabs,.ant-timeline,.ant-tooltip,.ant-transfer{line-height:1.66667;font-feature-settings:tnum}.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,.25);background:0 0;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:4px 8px;background:#fafafa;border:1px solid #f0f0f0;transition:all .3s cubic-bezier(.645,.045,.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-bottom>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-card.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-card.ant-tabs-top>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-card.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab{margin-left: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+.ant-tabs-tab,.ant-tabs-card.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-card.ant-tabs-right>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-card.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab{margin-top: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{box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:12px;font-variant:tabular-nums;list-style:none;display:flex;overflow:hidden}.ant-tabs>.ant-tabs-nav,.ant-tabs>div>.ant-tabs-nav{position:relative;display:flex;flex:none;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:flex;flex:auto;align-self:stretch;overflow:hidden;white-space:nowrap;transform:translate(0)}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-wrap::after,.ant-tabs>.ant-tabs-nav .ant-tabs-nav-wrap::before,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-wrap::after,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-wrap::before{position:absolute;z-index:1;opacity:0;transition:opacity .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:flex;transition:transform .3s}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-operations,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-operations{display:flex;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:4px 8px;background:0 0;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;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 4px;background:#fafafa;border:1px solid #f0f0f0;border-radius:2px 2px 0 0;outline:0;cursor:pointer;transition:all .3s cubic-bezier(.645,.045,.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-tab-btn:active,.ant-tabs-tab-btn:focus,.ant-tabs-tab-remove:active,.ant-tabs-tab-remove:focus,.ant-tabs>.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:active,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-add:focus{color:#096dd9}.ant-tabs-extra-content{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]){justify-content:center}.ant-tabs-ink-bar{position:absolute;background:#1890ff;pointer-events:none}.ant-tabs-dropdown-menu-item a[nz-tab-link],.ant-tabs-tab{position:relative}.ant-tabs-tab,.ant-tabs-tab-remove{background:0 0;cursor:pointer;font-size:12px;outline:0}.ant-tabs-tab{display:inline-flex;align-items:center;padding:8px 0;border:0}.ant-tabs-tab-btn{outline:0;transition:all .3s}.ant-tabs-tab-remove{flex:none;margin-right:0;margin-left:4px;color:rgba(0,0,0,.45);border:none;transition:all .3s}.ant-tabs-tab-remove:hover{color:rgba(0,0,0,.85)}.ant-tabs-tab:hover{color:#40a9ff}.ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn{color:#1890ff;text-shadow:0 0 .25px currentColor}.ant-tabs-tab.ant-tabs-tab-disabled{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-tabs-tab.ant-tabs-tab-disabled .ant-tabs-tab-btn:active,.ant-tabs-tab.ant-tabs-tab-disabled .ant-tabs-tab-btn:focus,.ant-tabs-tab.ant-tabs-tab-disabled .ant-tabs-tab-remove:active,.ant-tabs-tab.ant-tabs-tab-disabled .ant-tabs-tab-remove:focus{color:rgba(0,0,0,.25)}.ant-tabs-tab .ant-tabs-tab-remove .anticon{margin:0}.ant-tabs-tab .anticon{margin-right:8px}.ant-tabs-tab+.ant-tabs-tab{margin:0 0 0 32px}.ant-tabs-content{display:flex;width:100%}.ant-tabs-content-holder{flex:auto;min-width:0;min-height:0}.ant-tabs-content-animated{transition:margin .3s}.ant-tabs-tabpane{flex:none;width:100%;outline:0}a[nz-tab-link]::before{position:absolute;top:0;left:0;right:0;bottom:0;background-color:transparent;content:''}a[nz-tab-link]~*{position:relative}nz-tab-nav-operation,nz-tabs-nav,nz-tabset{display:block}.nz-tabs-dropdown.ant-dropdown .ant-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:0}.nz-tabs-dropdown.ant-dropdown .ant-dropdown-menu-item{min-width:120px;margin:0;padding:5px 8px;overflow:hidden;color:rgba(0,0,0,.85);font-weight:400;font-size:12px;line-height:18px;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;transition:all .3s}.nz-tabs-dropdown.ant-dropdown .ant-dropdown-menu-item:hover{background:#f5f5f5}.nz-tabs-dropdown.ant-dropdown .ant-dropdown-menu-item-disabled,.nz-tabs-dropdown.ant-dropdown .ant-dropdown-menu-item-disabled:hover{color:rgba(0,0,0,.25);background:0 0;cursor:not-allowed}.nz-tabs-dropdown.ant-dropdown .ant-dropdown-menu-item-disabled a,.nz-tabs-dropdown.ant-dropdown .ant-dropdown-menu-item-disabled:hover a{pointer-events:none;color:rgba(0,0,0,.25)}.ant-tabs-rtl .ant-tabs-rtl-tab-next{right:auto;left:2px}.ant-tabs-tab-disabled a{pointer-events:none;color:rgba(0,0,0,.25)}.ant-tag{box-sizing:border-box;margin:0 8px 0 0;font-variant:tabular-nums;list-style:none;font-feature-settings:tnum;display:inline-block;height:auto;padding:0 7px;font-size:12px;line-height:18px;white-space:nowrap;background:#fafafa;border:1px solid #d9d9d9;border-radius:2px;opacity:1;transition:all .3s}.ant-tag-checkable,.ant-tag-has-color{border-color:transparent}.ant-tag,.ant-tag a,.ant-tag a:hover{color:rgba(0,0,0,.85)}.ant-tag>a:first-child:last-child{display:inline-block;margin:0 -8px;padding:0 8px}.ant-tag-hidden,.ant-timeline-item-last>.ant-timeline-item-tail,.ant-timeline-item-pending .ant-timeline-item-tail{display:none}.ant-tag-close-icon{margin-left:3px;color:rgba(0,0,0,.45);font-size:10px;cursor:pointer;transition:all .3s}.ant-tag-close-icon:hover{color:rgba(0,0,0,.85)}.ant-tag-has-color,.ant-tag-has-color .anticon-close,.ant-tag-has-color .anticon-close:hover,.ant-tag-has-color a,.ant-tag-has-color a:hover{color:#fff}.ant-tag-checkable{background-color:transparent;cursor:pointer}.ant-tag-checkable:not(.ant-tag-checkable-checked):hover{color:#1890ff}.ant-tag-checkable-checked,.ant-tag-checkable:active{color:#fff}.ant-tag-checkable-checked{background-color:#1890ff}.ant-tag-checkable:active{background-color:#096dd9}.ant-tag-pink{color:#c41d7f;background:#fff0f6;border-color:#ffadd2}.ant-tag-pink-inverse{color:#fff;background:#eb2f96;border-color:#eb2f96}.ant-tag-magenta{color:#c41d7f;background:#fff0f6;border-color:#ffadd2}.ant-tag-magenta-inverse{color:#fff;background:#eb2f96;border-color:#eb2f96}.ant-tag-red{color:#cf1322;background:#fff1f0;border-color:#ffa39e}.ant-tag-red-inverse{color:#fff;background:#f5222d;border-color:#f5222d}.ant-tag-volcano{color:#d4380d;background:#fff2e8;border-color:#ffbb96}.ant-tag-volcano-inverse{color:#fff;background:#fa541c;border-color:#fa541c}.ant-tag-orange{color:#d46b08;background:#fff7e6;border-color:#ffd591}.ant-tag-orange-inverse{color:#fff;background:#fa8c16;border-color:#fa8c16}.ant-tag-yellow{color:#d4b106;background:#feffe6;border-color:#fffb8f}.ant-tag-yellow-inverse{color:#fff;background:#fadb14;border-color:#fadb14}.ant-tag-gold{color:#d48806;background:#fffbe6;border-color:#ffe58f}.ant-tag-gold-inverse{color:#fff;background:#faad14;border-color:#faad14}.ant-tag-cyan{color:#08979c;background:#e6fffb;border-color:#87e8de}.ant-tag-cyan-inverse{color:#fff;background:#13c2c2;border-color:#13c2c2}.ant-tag-lime{color:#7cb305;background:#fcffe6;border-color:#eaff8f}.ant-tag-lime-inverse{color:#fff;background:#a0d911;border-color:#a0d911}.ant-tag-green{color:#389e0d;background:#f6ffed;border-color:#b7eb8f}.ant-tag-green-inverse{color:#fff;background:#52c41a;border-color:#52c41a}.ant-tag-blue{color:#096dd9;background:#e6f7ff;border-color:#91d5ff}.ant-tag-blue-inverse{color:#fff;background:#1890ff;border-color:#1890ff}.ant-tag-geekblue{color:#1d39c4;background:#f0f5ff;border-color:#adc6ff}.ant-tag-geekblue-inverse{color:#fff;background:#2f54eb;border-color:#2f54eb}.ant-tag-purple{color:#531dab;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.ant-tag-rtl{margin-right:0;margin-left:8px;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}.ant-timeline,.ant-timeline-item{margin:0;list-style:none;font-size:12px}.ant-timeline{box-sizing:border-box;color:rgba(0,0,0,.85);font-variant:tabular-nums;padding:0}.ant-timeline-item{position:relative;padding-bottom:20px}.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-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,.25);border-color:rgba(0,0,0,.25)}.ant-tooltip,.ant-transfer{color:rgba(0,0,0,.85);list-style:none}.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;transform:translate(-50%,-50%)}.ant-timeline-item-content{position:relative;top:-7px;margin:0 0 0 18px;word-break:break-word}.ant-timeline-item-last>.ant-timeline-item-content{min-height:48px}.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-alternate .ant-timeline-item-tail,.ant-timeline.ant-timeline-label .ant-timeline-item-head,.ant-timeline.ant-timeline-label .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-label .ant-timeline-item-tail,.ant-timeline.ant-timeline-right .ant-timeline-item-head,.ant-timeline.ant-timeline-right .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-right .ant-timeline-item-tail{left:50%}.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,.ant-timeline.ant-timeline-label .ant-timeline-item-head,.ant-timeline.ant-timeline-right .ant-timeline-item-head{margin-left:-4px}.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-label .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-right .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-label .ant-timeline-item-left .ant-timeline-item-content,.ant-timeline.ant-timeline-right .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-label .ant-timeline-item-right .ant-timeline-item-content,.ant-timeline.ant-timeline-right .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-head,.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-tail{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:-7px;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 .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;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-head,.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-tail,.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-head,.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-head-custom,.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-tail,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-head,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-head-custom,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-tail{right:50%;left:auto}.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-head,.ant-timeline-rtl.ant-timeline.ant-timeline-right .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-label .ant-timeline-item-head-custom,.ant-timeline-rtl.ant-timeline.ant-timeline-right .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-label .ant-timeline-item-left .ant-timeline-item-content,.ant-timeline-rtl.ant-timeline.ant-timeline-right .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-label .ant-timeline-item-right .ant-timeline-item-content,.ant-timeline-rtl.ant-timeline.ant-timeline-right .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-head,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head-custom,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-tail{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,.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}.ant-tooltip{box-sizing:border-box;margin:0;padding:0;font-size:12px;font-variant:tabular-nums;z-index:1070;display:block;width:max-content;max-width:250px}.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-rightBottom,.ant-tooltip-placement-rightTop{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-leftBottom,.ant-tooltip-placement-leftTop{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,.75);border-radius:2px}.ant-tooltip-arrow{position:absolute;display:block;width:13.07px;height:13.07px;overflow:hidden;background:0 0;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,.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.07px}.ant-tooltip-placement-leftBottom .ant-tooltip-arrow,.ant-tooltip-placement-rightBottom .ant-tooltip-arrow{bottom:5px}.ant-tooltip-placement-top .ant-tooltip-arrow-content,.ant-tooltip-placement-topLeft .ant-tooltip-arrow-content,.ant-tooltip-placement-topRight .ant-tooltip-arrow-content{box-shadow:3px 3px 7px rgba(0,0,0,.07);transform:translateY(-6.54px) rotate(45deg)}.ant-tooltip-placement-top .ant-tooltip-arrow{left: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-rightBottom .ant-tooltip-arrow,.ant-tooltip-placement-rightTop .ant-tooltip-arrow{left:-5.07px}.ant-tooltip-placement-right .ant-tooltip-arrow-content,.ant-tooltip-placement-rightBottom .ant-tooltip-arrow-content,.ant-tooltip-placement-rightTop .ant-tooltip-arrow-content{box-shadow:-3px 3px 7px rgba(0,0,0,.07);transform:translateX(6.54px) rotate(45deg)}.ant-tooltip-placement-right .ant-tooltip-arrow{top:50%;transform:translateY(-50%)}.ant-tooltip-placement-rightTop .ant-tooltip-arrow{top:5px}.ant-tooltip-placement-left .ant-tooltip-arrow,.ant-tooltip-placement-leftBottom .ant-tooltip-arrow,.ant-tooltip-placement-leftTop .ant-tooltip-arrow{right:-5.07px}.ant-tooltip-placement-left .ant-tooltip-arrow-content,.ant-tooltip-placement-leftBottom .ant-tooltip-arrow-content,.ant-tooltip-placement-leftTop .ant-tooltip-arrow-content{box-shadow:3px -3px 7px rgba(0,0,0,.07);transform:translateX(-6.54px) rotate(45deg)}.ant-tooltip-placement-left .ant-tooltip-arrow{top:50%;transform:translateY(-50%)}.ant-tooltip-placement-leftTop .ant-tooltip-arrow{top:5px}.ant-tooltip-placement-bottom .ant-tooltip-arrow,.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow,.ant-tooltip-placement-bottomRight .ant-tooltip-arrow{top:-5.07px}.ant-tooltip-placement-bottom .ant-tooltip-arrow-content,.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow-content,.ant-tooltip-placement-bottomRight .ant-tooltip-arrow-content{box-shadow:-3px -3px 7px rgba(0,0,0,.07);transform:translateY(6.54px) rotate(45deg)}.ant-tooltip-placement-bottom .ant-tooltip-arrow{left:50%;transform:translateX(-50%)}.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow{left:13px}.ant-tooltip-placement-bottomRight .ant-tooltip-arrow{right:13px}.ant-tooltip-magenta .ant-tooltip-arrow-content,.ant-tooltip-magenta .ant-tooltip-inner,.ant-tooltip-pink .ant-tooltip-arrow-content,.ant-tooltip-pink .ant-tooltip-inner{background-color:#eb2f96}.ant-tooltip-red .ant-tooltip-arrow-content,.ant-tooltip-red .ant-tooltip-inner{background-color:#f5222d}.ant-tooltip-volcano .ant-tooltip-arrow-content,.ant-tooltip-volcano .ant-tooltip-inner{background-color:#fa541c}.ant-tooltip-orange .ant-tooltip-arrow-content,.ant-tooltip-orange .ant-tooltip-inner{background-color:#fa8c16}.ant-tooltip-yellow .ant-tooltip-arrow-content,.ant-tooltip-yellow .ant-tooltip-inner{background-color:#fadb14}.ant-tooltip-gold .ant-tooltip-arrow-content,.ant-tooltip-gold .ant-tooltip-inner{background-color:#faad14}.ant-tooltip-cyan .ant-tooltip-arrow-content,.ant-tooltip-cyan .ant-tooltip-inner{background-color:#13c2c2}.ant-tooltip-lime .ant-tooltip-arrow-content,.ant-tooltip-lime .ant-tooltip-inner{background-color:#a0d911}.ant-tooltip-green .ant-tooltip-arrow-content,.ant-tooltip-green .ant-tooltip-inner{background-color:#52c41a}.ant-tooltip-blue .ant-tooltip-arrow-content,.ant-tooltip-blue .ant-tooltip-inner{background-color:#1890ff}.ant-tooltip-geekblue .ant-tooltip-arrow-content,.ant-tooltip-geekblue .ant-tooltip-inner{background-color:#2f54eb}.ant-tooltip-purple .ant-tooltip-arrow-content,.ant-tooltip-purple .ant-tooltip-inner{background-color:#722ed1}.ant-transfer-customize-list .ant-table-wrapper .ant-table-small>.ant-table-content>.ant-table-body>table>.ant-table-thead>tr>th,.ant-upload.ant-upload-drag,.result .ant-steps .ant-steps-head,.result .ant-steps .ant-steps-title,.result__extra{background:#fafafa}.ant-tooltip-rtl .ant-tooltip-inner{text-align:right}.ant-tooltip{position:relative}.ant-transfer-customize-list .ant-transfer-list{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-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{box-sizing:border-box;margin:0;padding:0;font-size:12px;font-variant:tabular-nums;position:relative;display:flex;align-items:stretch}.ant-transfer-disabled .ant-transfer-list{background:#f5f5f5}.ant-transfer-list{display:flex;flex-direction:column;width:180px;height:200px;border:1px solid #d9d9d9;border-radius:2px}.ant-transfer-list-header,.modal-header,.st .ant-table-tbody>tr .ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td{border-bottom:1px solid #f0f0f0}.ant-transfer-list-footer,.ant-transfer-list-pagination,.drawer-footer,.modal-footer{border-top:1px solid #f0f0f0}.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:8px;right:12px;bottom:12px;width:28px;color:rgba(0,0,0,.25);line-height:28px;text-align:center}.ant-transfer-list-search-action .anticon{color:rgba(0,0,0,.25);transition:all .3s}.ant-transfer-list-search-action .anticon:hover{color:rgba(0,0,0,.45)}span.ant-transfer-list-search-action{pointer-events:none}.ant-transfer-list-header{display:flex;flex:none;align-items:center;height:36px;padding:7px 8px 8px;color:rgba(0,0,0,.85);background:#fff;border-radius:2px 2px 0 0}.ant-transfer-list-header>:not(:last-child){margin-right:4px}.ant-transfer-list-header>*{flex:none}.ant-transfer-list-header-title{flex:auto;overflow:hidden;white-space:nowrap;text-align:right;text-overflow:ellipsis}.ant-transfer-list-header-dropdown{font-size:10px;transform:translateY(10%);cursor:pointer}.ant-transfer-list-header-dropdown[disabled]{cursor:not-allowed}.ant-transfer-list-body{display:flex;flex:auto;flex-direction:column;overflow:hidden;font-size:12px}.ant-transfer-list-body-search-wrapper{position:relative;flex:none;padding:8px}.ant-transfer-list-content{flex:auto;margin:0;padding:0;overflow:auto;list-style:none}.ant-transfer-list-content-item{display:flex;align-items:center;min-height:28px;padding:3px 8px;line-height:22px;transition:all .3s}.ant-transfer-list-content-item>:not(:last-child){margin-right:8px}.ant-transfer-list-content-item>*{flex:none}.ant-transfer-list-content-item-text{flex:auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ant-transfer-list-content-item-remove{text-decoration:none;outline:0;cursor:pointer;transition:color .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:-3px;right:-50%;bottom:-3px;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:0 0;cursor:default}.ant-transfer-list-content-item-checked{background-color:#e6f7ff}.ant-transfer-list-content-item-disabled{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-transfer-list-pagination{padding:4px 0;text-align:right}.ant-transfer-list-body-not-found{flex:none;width:100%;margin:auto 0;color:rgba(0,0,0,.25);text-align:center}.ant-transfer-rtl .ant-transfer-list-header-title,.ant-transfer-rtl .ant-transfer-list-pagination{text-align:left}.ant-transfer-operation{display:flex;flex:none;flex-direction:column;align-self:center;margin:0 8px;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:-4px}.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-footer,.ant-transfer-rtl .ant-transfer-list-header{right:0;left:auto}.ant-transfer-rtl .ant-transfer-list-header>:not(:last-child){margin-right:0;margin-left:4px}.ant-transfer-rtl .ant-transfer-list-content-item>:not(:last-child){margin-right:0;margin-left:8px}.ant-typography{color:rgba(0,0,0,.85);overflow-wrap:break-word}.ant-typography.ant-typography-secondary{color:rgba(0,0,0,.45)}.ant-typography.ant-typography-success{color:#52c41a}.ant-typography.ant-typography-warning{color:#faad14}.ant-typography.ant-typography-danger{color:#ff4d4f}a.ant-typography.ant-typography-danger:active,a.ant-typography.ant-typography-danger:focus,a.ant-typography.ant-typography-danger:hover{color:#ff7875}.ant-typography.ant-typography-disabled{color:rgba(0,0,0,.25);cursor:not-allowed;user-select:none}.ant-typography p,div.ant-typography{margin-bottom:1em}.ant-typography h1,.ant-typography h2,.ant-typography h3,.ant-typography h4,.ant-typography h5,h1.ant-typography,h2.ant-typography,h3.ant-typography,h4.ant-typography,h5.ant-typography{margin-bottom:.5em;color:rgba(0,0,0,.85);font-weight:600}.ant-typography h1,h1.ant-typography{font-size:33px;line-height:1.23}.ant-typography h2,h2.ant-typography{font-size:26px;line-height:1.35}.ant-typography h3,h3.ant-typography{font-size:21px;line-height:1.35}.ant-typography h4,h4.ant-typography{font-size:18px;line-height:1.4}.ant-typography h5,h5.ant-typography{font-size:14px;line-height:1.5}.ant-typography div+h1,.ant-typography div+h2,.ant-typography div+h3,.ant-typography div+h4,.ant-typography div+h5,.ant-typography h1+h1,.ant-typography h1+h2,.ant-typography h1+h3,.ant-typography h1+h4,.ant-typography h1+h5,.ant-typography h2+h1,.ant-typography h2+h2,.ant-typography h2+h3,.ant-typography h2+h4,.ant-typography h2+h5,.ant-typography h3+h1,.ant-typography h3+h2,.ant-typography h3+h3,.ant-typography h3+h4,.ant-typography h3+h5,.ant-typography h4+h1,.ant-typography h4+h2,.ant-typography h4+h3,.ant-typography h4+h4,.ant-typography h4+h5,.ant-typography h5+h1,.ant-typography h5+h2,.ant-typography h5+h3,.ant-typography h5+h4,.ant-typography h5+h5,.ant-typography li+h1,.ant-typography li+h2,.ant-typography li+h3,.ant-typography li+h4,.ant-typography li+h5,.ant-typography p+h1,.ant-typography p+h2,.ant-typography p+h3,.ant-typography p+h4,.ant-typography p+h5,.ant-typography ul+h1,.ant-typography ul+h2,.ant-typography ul+h3,.ant-typography ul+h4,.ant-typography ul+h5,.ant-typography+h1.ant-typography,.ant-typography+h2.ant-typography,.ant-typography+h3.ant-typography,.ant-typography+h4.ant-typography,.ant-typography+h5.ant-typography{margin-top:1.2em}.ant-typography code,.ant-typography kbd{margin:0 .2em;border:1px solid rgba(100,100,100,.2)}a.ant-typography-ellipsis,span.ant-typography-ellipsis{display:inline-block}.ant-typography a,a.ant-typography{color:#1890ff;outline:0;cursor:pointer;transition:color .3s;text-decoration:none}.ant-typography a:focus,.ant-typography a:hover,a.ant-typography:focus,a.ant-typography:hover{color:#40a9ff}.ant-typography a:active,a.ant-typography:active{color:#096dd9}.ant-typography a:active,.ant-typography a:hover,a.ant-typography:active,a.ant-typography:hover{text-decoration:none}.ant-typography a.ant-typography-disabled,.ant-typography a[disabled],a.ant-typography.ant-typography-disabled,a.ant-typography[disabled]{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-typography a.ant-typography-disabled:active,.ant-typography a.ant-typography-disabled:hover,.ant-typography a[disabled]:active,.ant-typography a[disabled]:hover,a.ant-typography.ant-typography-disabled:active,a.ant-typography.ant-typography-disabled:hover,a.ant-typography[disabled]:active,a.ant-typography[disabled]:hover{color:rgba(0,0,0,.25)}.ant-typography a.ant-typography-disabled:active,.ant-typography a[disabled]:active,a.ant-typography.ant-typography-disabled:active,a.ant-typography[disabled]:active{pointer-events:none}.ant-typography code{padding:.2em .4em .1em;font-size:85%;background:rgba(150,150,150,.1);border-radius:3px}.ant-typography kbd{padding:.15em .4em .1em;font-size:90%;background:rgba(150,150,150,.06);border-bottom-width:2px;border-radius:3px}.ant-typography mark{padding:0;background-color:#ffe58f}.ant-typography ins,.ant-typography u{text-decoration:underline;text-decoration-skip-ink:auto}.ant-typography del,.ant-typography s,.task__item-done,.text-deleted{text-decoration:line-through}.ant-typography strong{font-weight:600}.ant-typography-copy,.ant-typography-edit,.ant-typography-expand{color:#1890ff;text-decoration:none;outline:0;cursor:pointer;transition:color .3s;margin-left:4px}.ant-typography-copy:focus,.ant-typography-copy:hover,.ant-typography-edit:focus,.ant-typography-edit:hover,.ant-typography-expand:focus,.ant-typography-expand:hover{color:#40a9ff}.ant-typography-copy:active,.ant-typography-edit:active,.ant-typography-expand:active{color:#096dd9}.ant-typography-copy-success,.ant-typography-copy-success:focus,.ant-typography-copy-success:hover{color:#52c41a}.ant-typography-edit-content{position:relative}div.ant-typography-edit-content{left:-8px;margin-top:-4px;margin-bottom:calc(1em - 3px - 1px)}.ant-typography-edit-content-confirm{position:absolute;right:10px;bottom:8px;color:rgba(0,0,0,.45);pointer-events:none}.ant-typography-edit-content textarea{-moz-transition:none}.ant-typography ol,.ant-typography ul{margin:0 0 1em;padding:0}.ant-typography ol li,.ant-typography ul 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 blockquote,.ant-typography pre{margin:1em 0}.ant-typography pre{padding:.4em .6em;white-space:pre-wrap;word-wrap:break-word;background:rgba(150,150,150,.1);border:1px solid rgba(100,100,100,.2);border-radius:3px}.ant-typography pre code{display:inline;margin:0;padding:0;font-size:inherit;font-family:inherit;background:0 0;border:0}.ant-typography blockquote{padding:0 0 0 .6em;border-left:4px solid rgba(100,100,100,.2);opacity:.85}.ant-typography-single-line{white-space:nowrap}.ant-typography-ellipsis-single-line{overflow:hidden;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;overflow:hidden;-webkit-line-clamp:3;/*! autoprefixer: ignore next */-webkit-box-orient:vertical}.ant-typography-rtl .ant-typography-copy,.ant-typography-rtl .ant-typography-edit,.ant-typography-rtl .ant-typography-expand{margin-right:4px;margin-left:0}.ant-typography-rtl .ant-typography-expand{float:left}div.ant-typography-edit-content.ant-typography-rtl{right:-8px;left:auto}.ant-typography-rtl .ant-typography-edit-content-confirm{right:auto;left:10px}.ant-typography-rtl.ant-typography ol li,.ant-typography-rtl.ant-typography ul li{margin:0 20px 0 0;padding:0 4px 0 0}.ant-upload{box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:12px;font-variant:tabular-nums;line-height:1.66667;list-style:none;font-feature-settings:tnum;outline:0}.ant-upload p{margin:0}.ant-upload-btn{display:block;width:100%;outline:0}.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{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;transition:border-color .3s}.ant-upload.ant-upload-select-picture-card>.ant-upload{display:flex;align-items:center;justify-content:center;height:100%;text-align:center}.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;border:1px dashed #d9d9d9;border-radius:2px;cursor:pointer;transition:border-color .3s}.ant-upload.ant-upload-drag .ant-upload{padding:8px 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-list-item-name,.ant-upload-picture-card-wrapper{display:inline-block;width:100%}.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,.85);font-size:14px}.ant-upload.ant-upload-drag p.ant-upload-hint{color:rgba(0,0,0,.45);font-size:12px}.ant-upload.ant-upload-drag .anticon-plus{color:rgba(0,0,0,.25);font-size:30px;transition:all .3s}.ant-upload.ant-upload-drag .anticon-plus:hover,.ant-upload.ant-upload-drag:hover .anticon-plus{color:rgba(0,0,0,.45)}.ant-upload-list::after,.ant-upload-list::before,.ant-upload-picture-card-wrapper::after,.ant-upload-picture-card-wrapper::before{display:table;content:''}.ant-upload-picture-card-wrapper::after{clear:both}.ant-upload-list{box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:12px;font-variant:tabular-nums;list-style:none;font-feature-settings:tnum;line-height:1.66667}.ant-upload-list::after{clear:both}.ant-upload-list-item{position:relative;height:20px;margin-top:4px;font-size:12px}.ant-upload-list-item-name{padding-left:20px;overflow:hidden;line-height:1.66667;white-space:nowrap;text-overflow:ellipsis}.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,.45)}.ant-upload-list-item-info{height:100%;padding:0 4px;transition:background-color .3s}.ant-upload-list-item-info>span{display:block;width:100%;height:100%}.ant-upload-list-item-info .ant-upload-text-icon .anticon,.ant-upload-list-item-info .anticon-loading .anticon{position:absolute;top:4px;color:rgba(0,0,0,.45);font-size:12px}.ant-upload-list-item .anticon-close{position:absolute;top:6px;right:4px;color:rgba(0,0,0,.45);font-size:10px;line-height:0;cursor:pointer;opacity:0;transition:all .3s}.ant-upload-list-item-error .ant-upload-list-item-card-actions-btn,.ant-upload-list-item:hover .ant-upload-list-item-card-actions-btn,.ant-upload-list-item:hover .anticon-close{opacity:1}.ant-upload-list-item .anticon-close:hover{color:rgba(0,0,0,.85)}.ant-upload-list-item:hover .ant-upload-list-item-info{background-color:#f5f5f5}.ant-upload-list-picture .ant-upload-list-item:hover,.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-picture-card .ant-upload-list-item:hover .ant-upload-list-item-info{background:0 0}.ant-upload-list-item-error,.ant-upload-list-item-error .ant-upload-list-item-card-actions .anticon,.ant-upload-list-item-error .ant-upload-list-item-name,.ant-upload-list-item-error .ant-upload-text-icon>.anticon{color:#ff4d4f}.ant-upload-list-item-progress{position:absolute;bottom:-12px;width:100%;padding-left:24px;font-size:12px;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:4px;border:1px solid #d9d9d9;border-radius:2px}.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-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{width:48px;height:48px;line-height:54px;text-align:center;opacity:.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;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;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;transition:all .3s}.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-container{display:inline-block;width:104px;height:104px;margin:0 4px 4px 0;vertical-align:top}.ant-upload-list-picture-card.ant-upload-list::after{display:none}.ant-upload-list-picture-card .ant-upload-list-item{height:100%;margin: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,.5);opacity:0;transition:all .3s;content:' '}.ant-result-content,.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: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;transform:translate(-50%,-50%);opacity:0;transition:all .3s}.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-download,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye{z-index:10;width:16px;margin:0 4px;color:rgba(255,255,255,.85);font-size:16px;cursor:pointer;transition:all .3s}.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete: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-eye:hover{color:#fff}.ant-upload-list-picture-card .ant-upload-list-item-actions:hover,.ant-upload-list-picture-card .ant-upload-list-item-info:hover+.ant-upload-list-item-actions{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%;object-fit:contain}.ant-upload-list-picture-card .ant-upload-list-item-name{display:none;margin:8px 0 0;padding:0;line-height:1.66667;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-info{height:auto}.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info .anticon-delete,.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::before{display:none}.ant-upload-list-picture-card .ant-upload-list-item-progress{bottom:32px;width:calc(100% - 14px);padding-left:0}.ant-upload-list-picture-container,.ant-upload-list-text-container{transition:opacity .3s,height .3s}.ant-upload-list-picture-container::before,.ant-upload-list-text-container::before{display:table;width:0;height:0;content:''}.ant-upload-list-picture-container .ant-upload-span,.ant-upload-list-text-container .ant-upload-span{display:block;flex:auto}.ant-upload-list-picture .ant-upload-span,.ant-upload-list-text .ant-upload-span{display:flex;align-items:center}.ant-upload-list-picture .ant-upload-span>*,.ant-upload-list-text .ant-upload-span>*{flex:none}.ant-upload-list-picture .ant-upload-list-item-name,.ant-upload-list-text .ant-upload-list-item-name{flex:auto;padding:0 4px}.ant-upload-list-picture .ant-upload-list-item-card-actions,.ant-upload-list-text .ant-upload-list-item-card-actions,.ant-upload-list-text .ant-upload-text-icon .anticon{position:static}.ant-upload-list .ant-upload-animate-inline-appear,.ant-upload-list .ant-upload-animate-inline-enter,.ant-upload-list .ant-upload-animate-inline-leave{animation-duration:.3s;animation-fill-mode:cubic-bezier(.78,.14,.15,.86)}.ant-upload-list .ant-upload-animate-inline-appear,.ant-upload-list .ant-upload-animate-inline-enter{animation-name:uploadAnimateInlineIn}.ant-upload-list .ant-upload-animate-inline-leave{animation-name:uploadAnimateInlineOut}@keyframes uploadAnimateInlineIn{from{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.ant-upload.ant-upload-select-picture-card{margin-right:auto;margin-left:8px}.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:20px;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:24px;padding-left:0}.ant-upload-list-picture .ant-upload-list-item-info,.ant-upload-list-picture-card .ant-upload-list-item-info{padding: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;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:0;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{margin:0 0 4px 4px}.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-actions{right:50%;left:auto;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-cascader,.ant-cascader-picker,.ant-select-auto-complete{box-sizing:border-box;margin:0;color:rgba(0,0,0,.85);font-size:12px;font-variant:tabular-nums;list-style:none;font-feature-settings:tnum;line-height:1.66667}.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item{float:unset}.ant-select-auto-complete{padding:0}.ant-select-auto-complete .ant-select-clear{right:13px}.ant-select-dropdown-hidden{display:none}.ant-cascader{padding:0}.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{padding:0;position:relative;display:inline-block;background-color:#fff;border-radius:2px;outline:0;cursor:pointer;transition:color .3s}.ant-cascader-picker-with-value .ant-cascader-picker-label,.ellipsis__shadow{color:transparent}.ant-cascader-picker-disabled{color:rgba(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{outline:0;box-shadow:0 0 0 2px rgba(24,144,255,.2)}.ant-input-rtl .ant-cascader-picker:focus .ant-cascader-input{border-right-width:0;border-left-width:1px!important}.ant-cascader-picker-borderless .ant-cascader-input{border-color:transparent!important;box-shadow:none!important}.ant-cascader-picker-show-search.ant-cascader-picker-focused{color:rgba(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 8px;overflow:hidden;line-height:20px;white-space:nowrap;text-overflow:ellipsis}.ant-cascader-picker-arrow,.ant-cascader-picker-clear{position:absolute;top:50%;width:12px;height:12px;margin-top:-6px;line-height:12px;font-size:12px;right:8px}.ant-cascader-picker-clear{z-index:2;color:rgba(0,0,0,.25);background:#fff;cursor:pointer;opacity:0;transition:color .3s ease,opacity .15s ease}.ant-cascader-picker-clear:hover{color:rgba(0,0,0,.45)}.ant-cascader-picker:hover .ant-cascader-picker-clear{opacity:1}.ant-cascader-picker-arrow{z-index:1;color:rgba(0,0,0,.25)}.ant-cascader-menu,.ant-cascader-menus ol,.ant-cascader-menus ul{margin:0;list-style:none}.ant-input-rtl .ant-cascader-picker-label:hover+.ant-cascader-input:not(.ant-cascader-picker-disabled .ant-cascader-picker-label:hover+.ant-cascader-input){border-right-width:0;border-left-width:1px!important}.ant-cascader-picker-small .ant-cascader-picker-arrow,.ant-cascader-picker-small .ant-cascader-picker-clear{right:8px}.ant-cascader-menus{z-index:1050;font-size:12px;white-space:nowrap;background:#fff;border-radius:2px}.ant-cascader-menus-empty,.ant-cascader-menus-hidden{display:none}.ant-cascader-menus.ant-slide-up-appear.ant-slide-up-appear-active.ant-cascader-menus-placement-topLeft,.ant-cascader-menus.ant-slide-up-enter.ant-slide-up-enter-active.ant-cascader-menus-placement-topLeft{animation-name:antSlideDownIn}.ant-cascader-menus.ant-slide-up-leave.ant-slide-up-leave-active.ant-cascader-menus-placement-bottomLeft{animation-name:antSlideUpOut}.ant-cascader-menus.ant-slide-up-leave.ant-slide-up-leave-active.ant-cascader-menus-placement-topLeft{animation-name:antSlideDownOut}.ant-cascader-menu{display:inline-block;min-width:111px;height:180px;padding:4px 0;overflow:auto;vertical-align:top;border-right:1px solid #f0f0f0;-ms-overflow-style:-ms-autohiding-scrollbar}.alain-pro__light .alain-pro__sider .ant-menu-light,.ant-cascader-menu:last-child{border-right-color:transparent}.ant-cascader-menu:first-child{border-radius:2px 0 0 2px}.ant-cascader-menu:last-child{margin-right:-1px;border-radius:0 2px 2px 0}.ant-cascader-menu:only-child{border-radius:2px}.ant-cascader-menu-item{padding:5px 8px;overflow:hidden;line-height:18px;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;transition:all .3s}.ant-cascader-menu-item:hover{background:#f5f5f5}.ant-cascader-menu-item-disabled{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-cascader-menu-item-disabled:hover{background:0 0}.ant-cascader-menu-empty .ant-cascader-menu-item{color:rgba(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{position:absolute;right:8px;color:rgba(0,0,0,.45);font-size:10px}.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,.ant-cascader-picker-rtl .ant-cascader-picker-arrow,.ant-cascader-picker-rtl .ant-cascader-picker-clear,.ant-cascader-picker-rtl.ant-cascader-picker-small .ant-cascader-picker-arrow,.ant-cascader-picker-rtl.ant-cascader-picker-small .ant-cascader-picker-clear{right:auto;left:8px}.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,.ant-tree-checkbox-disabled+span{color:rgba(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:7px;padding-left:24px;text-align:right}.ant-cascader-picker-rtl .ant-cascader-picker-label{padding:0 8px 0 20px;text-align:right}.ant-cascader-menu-rtl .ant-cascader-menu{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:8px;padding-left:24px}.ant-tree-checkbox,.ant-tree-checkbox-wrapper{box-sizing:border-box;padding:0;font-size:12px;font-variant:tabular-nums;list-style:none;font-feature-settings:tnum}.ant-cascader-menu-rtl .ant-cascader-menu-item-loading-icon{transform:scaleY(-1)}.ant-cascader-menus{position:relative;margin-top:2px;margin-bottom:2px}nz-tree-virtual-scroll-view{display:block;position:relative;overflow:auto;contain:strict;transform:translateZ(0);will-change:scroll-position;-webkit-overflow-scrolling:touch}nz-tree-virtual-scroll-view .ant-tree-list,nz-tree-virtual-scroll-view .ant-tree-list-holder{height:100%}nz-tree-view .ant-tree-switcher+.ant-tree-switcher.nz-tree-leaf-line-icon,nz-tree-virtual-scroll-view .ant-tree-switcher+.ant-tree-switcher.nz-tree-leaf-line-icon{display:none}nz-tree-view .ant-tree-list-holder-inner{display:flex;flex-direction:column}.ant-tree-treenode-leaf-last .ant-tree-switcher-leaf-line::before{top:auto!important;bottom:auto!important;height:10px!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;transition:background-color .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{transition:color .3s}.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-node-content-wrapper{border-radius:0;user-select:none}.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-node-content-wrapper:hover{background:0 0}.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-node-content-wrapper.ant-tree-node-selected{color:#fff;background:0 0}.ant-tree.ant-tree-directory .ant-tree-treenode-selected::before,.ant-tree.ant-tree-directory .ant-tree-treenode-selected:hover::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:0 0}.ant-tree-checkbox{color:rgba(0,0,0,.85);position:relative;line-height:1;white-space:nowrap;outline:0;cursor:pointer}.ant-tree-checkbox-input:focus+.ant-tree-checkbox-inner,.ant-tree-checkbox-wrapper:hover .ant-tree-checkbox-inner,.ant-tree-checkbox:hover .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;animation:antCheckboxEffect .36s ease-in-out;animation-fill-mode:backwards;content:''}.ant-tree-checkbox-wrapper:hover .ant-tree-checkbox::after,.ant-tree-checkbox:hover::after{visibility:visible}.ant-tree-checkbox-inner{position:relative;top:0;left:0;display:block;width:14px;height:14px;direction:ltr;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;border-collapse:separate;transition:all .3s}.ant-tree .ant-tree-treenode-rtl,.ant-tree-checkbox-rtl,.ant-tree-rtl{direction:rtl}.ant-tree-checkbox-inner::after{position:absolute;top:50%;left:22%;display:table;width:5px;height:8px;border:2px solid #fff;border-top:0;border-left:0;transform:rotate(45deg) scale(0) translate(-50%,-50%);opacity:0;transition:all .1s cubic-bezier(.71,-.46,.88,.6),opacity .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-disabled,.ant-tree-checkbox-disabled .ant-tree-checkbox-input,.ant-tree-checkbox-disabled+span{cursor:not-allowed}.ant-tree-checkbox-checked .ant-tree-checkbox-inner::after{position:absolute;display:table;border:2px solid #fff;border-top:0;border-left:0;transform:rotate(45deg) scale(1) translate(-50%,-50%);opacity:1;transition:all .2s cubic-bezier(.12,.4,.29,1.46) .1s;content:' '}.ant-tree-checkbox-checked .ant-tree-checkbox-inner{background-color:#1890ff;border-color:#1890ff}.ant-tree-checkbox-disabled.ant-tree-checkbox-checked .ant-tree-checkbox-inner::after{border-color:rgba(0,0,0,.25);animation-name:none}.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;animation-name:none}.ant-tree-checkbox-disabled:hover::after,.ant-tree-checkbox-wrapper:hover .ant-tree-checkbox-disabled::after{visibility:hidden}.ant-tree-checkbox-wrapper{margin:0;color:rgba(0,0,0,.85);display:inline-flex;align-items:baseline;line-height:unset;cursor:pointer}.ant-tree-checkbox-wrapper::after{display:inline-block;width:0;overflow:hidden;content:'\a0'}.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-select-tree-checkbox,.ant-select-tree-checkbox-wrapper,.ant-tree,.ant-tree-checkbox-group{padding:0;box-sizing:border-box;font-size:12px;font-variant:tabular-nums;list-style:none;font-feature-settings:tnum;color:rgba(0,0,0,.85)}.ant-tree-checkbox-group{margin:0;line-height:1.66667;display:inline-block}.ant-tree-checkbox-group-item{margin-right:6px}.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:6px;height:6px;background-color:#1890ff;border:0;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,.25);border-color:rgba(0,0,0,.25)}.ant-tree-checkbox-group-rtl .ant-tree-checkbox-group-item{margin-right:0;margin-left:6px}.ant-tree-checkbox-group-rtl .ant-tree-checkbox-group-item:last-child{margin-left:0!important}.ant-tree-checkbox-group-rtl .ant-tree-checkbox-group-item+.ant-tree-checkbox-group-item{margin-left:6px}.ant-tree{margin:0;line-height:1.66667;background:#fff;border-radius:2px;transition:background-color .3s}.ant-tree-focused:not(:hover):not(.ant-tree-active-focused){background:#e6f7ff}.ant-tree-list-holder-inner{align-items:flex-start}.ant-tree.ant-tree-block-node .ant-tree-list-holder-inner{align-items:stretch}.ant-tree.ant-tree-block-node .ant-tree-list-holder-inner .ant-tree-node-content-wrapper{flex:auto}.ant-tree .ant-tree-treenode{display:flex;align-items:flex-start;padding:0 0 2px;outline:0}.ant-select-tree-switcher,.ant-tree-switcher{flex:none;align-self:stretch;user-select:none}.ant-tree .ant-tree-treenode-disabled .ant-tree-node-content-wrapper{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-tree .ant-tree-treenode-disabled .ant-tree-node-content-wrapper:hover{background:0 0}.ant-tree .ant-tree-treenode-active .ant-tree-node-content-wrapper{background:#f5f5f5}.ant-tree .ant-tree-treenode:not(.ant-tree .ant-tree-treenode-disabled).filter-node .ant-tree-title{color:inherit;font-weight:500}.ant-tree-indent{align-self:stretch;white-space:nowrap;user-select:none}.ant-tree-indent-unit{display:inline-block;width:20px}.ant-tree-switcher{position:relative;width:20px;margin:0;line-height:20px;text-align:center;cursor:pointer}.ant-tree-switcher .ant-select-tree-switcher-icon,.ant-tree-switcher .ant-tree-switcher-icon{display:inline-block;font-size:10px;vertical-align:baseline}.ant-tree-switcher .ant-select-tree-switcher-icon svg,.ant-tree-switcher .ant-tree-switcher-icon svg{transition:transform .3s}.ant-tree-switcher-noop{cursor:default}.ant-tree-switcher_close .ant-tree-switcher-icon svg{transform:rotate(-90deg)}.ant-tree-switcher-loading-icon{color:#1890ff}.ant-tree-switcher-leaf-line{position:relative;z-index:1;display:inline-block;width:100%;height:100%}.ant-tree-switcher-leaf-line::after,.ant-tree-switcher-leaf-line::before{position:absolute;margin-left:-1px;content:' '}.ant-tree-switcher-leaf-line::before{top:0;bottom:-2px;border-left:1px solid #d9d9d9}.ant-tree-switcher-leaf-line::after{width:6px;height:10px;border-bottom:1px solid #d9d9d9}.ant-tree-checkbox{top:initial;margin:3px 8px 0 0}.ant-tree .ant-tree-node-content-wrapper{position:relative;z-index:auto;min-height:20px;margin:0;padding:0 4px;color:inherit;line-height:20px;background:0 0;border-radius:2px;cursor:pointer;transition:all .3s,border 0s,line-height 0s,box-shadow 0s}.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:20px;height:20px;line-height:20px;text-align:center;vertical-align:top}.ant-tree .ant-tree-node-content-wrapper .ant-tree-iconEle:empty,.ant-tree-show-line .ant-tree-indent-unit-end::before{display:none}.ant-tree-unselectable .ant-tree-node-content-wrapper:hover{background-color:transparent}.ant-tree-node-content-wrapper[draggable=true]{line-height:20px;user-select:none}.ant-tree-node-content-wrapper[draggable=true] .ant-tree-drop-indicator{position:absolute;z-index:1;height:2px;background-color:#1890ff;border-radius:1px;pointer-events:none}.ant-tree-node-content-wrapper[draggable=true] .ant-tree-drop-indicator::after{position:absolute;top:-3px;left:-6px;width:8px;height:8px;background-color:transparent;border:2px solid #1890ff;border-radius:50%;content:''}.ant-tree .ant-tree-treenode.drop-container>[draggable]{box-shadow:0 0 0 2px #1890ff}.ant-tree-show-line .ant-tree-indent-unit{position:relative;height:100%}.ant-tree-show-line .ant-tree-indent-unit::before{position:absolute;top:0;right:10px;bottom:-2px;border-right:1px solid #d9d9d9;content:''}.ant-tree-show-line .ant-tree-switcher{background:#fff}.ant-tree-show-line .ant-tree-switcher-line-icon{vertical-align:-.225em}.ant-tree-rtl .ant-tree-node-content-wrapper[draggable=true] .ant-tree-drop-indicator::after{right:-6px;left:unset}.ant-tree-rtl .ant-tree-switcher_close .ant-tree-switcher-icon svg{transform:rotate(90deg)}.ant-tree-rtl.ant-tree-show-line .ant-tree-indent-unit::before{right:auto;left:-11px;border-right:none;border-left:1px solid #d9d9d9}.ant-tree-rtl.ant-tree-checkbox,.ant-tree-select-dropdown-rtl .ant-select-tree-checkbox{margin:3px 0 0 8px}.font-highlight{color:#ff4d4f}.ant-tree-child-tree{overflow:hidden}nz-tree{display:block}.ant-select-tree-checkbox{position:relative;line-height:1;white-space:nowrap;outline:0;cursor:pointer}.ant-select-tree-checkbox-input:focus+.ant-select-tree-checkbox-inner,.ant-select-tree-checkbox-wrapper:hover .ant-select-tree-checkbox-inner,.ant-select-tree-checkbox:hover .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;animation:antCheckboxEffect .36s ease-in-out;animation-fill-mode:backwards;content:''}.ant-select-tree-checkbox-wrapper:hover .ant-select-tree-checkbox::after,.ant-select-tree-checkbox:hover::after{visibility:visible}.ant-input-number__hide-step .ant-input-number-handler-wrap,.ant-select-tree-checkbox-disabled:hover::after,.ant-select-tree-checkbox-wrapper:hover .ant-select-tree-checkbox-disabled::after,.exception__img-block::after{visibility:hidden}.ant-select-tree-checkbox-inner{position:relative;top:0;left:0;display:block;width:14px;height:14px;direction:ltr;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;border-collapse:separate;transition:all .3s}.ant-picker-calendar-rtl,.ant-result-rtl,.ant-select-tree-checkbox-rtl,.ant-space-rtl,.ant-tree-select-dropdown-rtl,.avatar-list-rtl,.error-collect-rtl,.exception-rtl,.global-footer-rtl,.loading-default-rtl,.onboarding-rtl,.page-header-rtl,.result-rtl,.setting-drawer-rtl,.tag-select-rtl{direction:rtl}.ant-select-tree-checkbox-inner::after{position:absolute;top:50%;left:22%;display:table;width:5px;height:8px;border:2px solid #fff;border-top:0;border-left:0;transform:rotate(45deg) scale(0) translate(-50%,-50%);opacity:0;transition:all .1s cubic-bezier(.71,-.46,.88,.6),opacity .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;transform:rotate(45deg) scale(1) translate(-50%,-50%);opacity:1;transition:all .2s cubic-bezier(.12,.4,.29,1.46) .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,.25);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;animation-name:none}.ant-select-tree-checkbox-disabled+span{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-select-tree-checkbox-wrapper{margin:0;display:inline-flex;align-items:baseline;line-height:unset;cursor:pointer}.ant-select-tree-checkbox-wrapper::after{display:inline-block;width:0;overflow:hidden;content:'\a0'}.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{box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:12px;font-variant:tabular-nums;line-height:1.66667;list-style:none;font-feature-settings:tnum;display:inline-block}.ant-select-tree-checkbox-group-item{margin-right:6px}.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:6px;height:6px;background-color:#1890ff;border:0;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,.25);border-color:rgba(0,0,0,.25)}.ant-select-tree-checkbox-group-rtl .ant-select-tree-checkbox-group-item{margin-right:0;margin-left:6px}.ant-select-tree-checkbox-group-rtl .ant-select-tree-checkbox-group-item:last-child{margin-left:0!important}.ant-select-tree-checkbox-group-rtl .ant-select-tree-checkbox-group-item+.ant-select-tree-checkbox-group-item{margin-left:6px}.ant-tree-select-dropdown{padding:4px 2px 0}.ant-tree-select-dropdown .ant-select-tree{border-radius:0}.ant-tree-select-dropdown .ant-select-tree-list-holder-inner{align-items:stretch}.ant-tree-select-dropdown .ant-select-tree-list-holder-inner .ant-select-tree-treenode{padding-bottom:4px}.ant-picker-calendar,.ant-select-tree{padding:0;font-size:12px;box-sizing:border-box;font-variant:tabular-nums;font-feature-settings:tnum;list-style:none}.ant-tree-select-dropdown .ant-select-tree-list-holder-inner .ant-select-tree-treenode .ant-select-tree-node-content-wrapper{flex:auto}.ant-select-tree{margin:0;color:rgba(0,0,0,.85);line-height:1.66667;background:#fff;border-radius:2px;transition:background-color .3s}.ant-select-tree-focused:not(:hover):not(.ant-select-tree-active-focused){background:#e6f7ff}.ant-select-tree-list-holder-inner{align-items:flex-start}.ant-select-tree.ant-select-tree-block-node .ant-select-tree-list-holder-inner{align-items:stretch}.ant-select-tree.ant-select-tree-block-node .ant-select-tree-list-holder-inner .ant-select-tree-node-content-wrapper{flex:auto}.ant-select-tree .ant-select-tree-treenode{display:flex;align-items:flex-start;padding:0 0 2px;outline:0}.ant-select-tree .ant-select-tree-treenode-disabled .ant-select-tree-node-content-wrapper{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-select-tree .ant-select-tree-treenode-disabled .ant-select-tree-node-content-wrapper:hover{background:0 0}.ant-select-tree .ant-select-tree-treenode-active .ant-select-tree-node-content-wrapper{background:#f5f5f5}.ant-select-tree .ant-select-tree-treenode:not(.ant-select-tree .ant-select-tree-treenode-disabled).filter-node .ant-select-tree-title{color:inherit;font-weight:500}.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 .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 .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,.ant-select-tree-switcher-loading-icon{color:#1890ff}.ant-select-tree-indent{align-self:stretch;white-space:nowrap;user-select:none}.ant-select-tree-indent-unit{display:inline-block;width:20px}.ant-select-tree-switcher{position:relative;width:20px;margin:0;line-height:20px;text-align:center;cursor:pointer}.ant-select-tree-switcher .ant-select-tree-switcher-icon,.ant-select-tree-switcher .ant-tree-switcher-icon{display:inline-block;font-size:10px;vertical-align:baseline}.ant-select-tree-switcher .ant-select-tree-switcher-icon svg,.ant-select-tree-switcher .ant-tree-switcher-icon svg{transition:transform .3s}.ant-select-tree-switcher-noop{cursor:default}.ant-select-tree-switcher_close .ant-select-tree-switcher-icon svg{transform:rotate(-90deg)}.ant-select-tree-switcher-leaf-line{position:relative;z-index:1;display:inline-block;width:100%;height:100%}.ant-select-tree-switcher-leaf-line::before{position:absolute;top:0;bottom:-2px;margin-left:-1px;border-left:1px solid #d9d9d9;content:' '}.ant-select-tree-switcher-leaf-line::after{position:absolute;width:6px;height:10px;margin-left:-1px;border-bottom:1px solid #d9d9d9;content:' '}.ant-select-tree-checkbox{top:initial;margin:3px 8px 0 0}.ant-select-tree .ant-select-tree-node-content-wrapper{position:relative;z-index:auto;min-height:20px;margin:0;padding:0 4px;color:inherit;line-height:20px;background:0 0;border-radius:2px;cursor:pointer;transition:all .3s,border 0s,line-height 0s,box-shadow 0s}.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:20px;height:20px;line-height:20px;text-align:center;vertical-align:top}.ant-select-tree .ant-select-tree-node-content-wrapper .ant-select-tree-iconEle:empty,.ant-select-tree-show-line .ant-select-tree-indent-unit-end::before{display:none}.ant-select-tree-unselectable .ant-select-tree-node-content-wrapper:hover{background-color:transparent}.ant-select-tree-node-content-wrapper[draggable=true]{line-height:20px;user-select:none}.ant-select-tree-node-content-wrapper[draggable=true] .ant-tree-drop-indicator{position:absolute;z-index:1;height:2px;background-color:#1890ff;border-radius:1px;pointer-events:none}.ant-select-tree-node-content-wrapper[draggable=true] .ant-tree-drop-indicator::after{position:absolute;top:-3px;left:-6px;width:8px;height:8px;background-color:transparent;border:2px solid #1890ff;border-radius:50%;content:''}.ant-select-tree .ant-select-tree-treenode.drop-container>[draggable]{box-shadow:0 0 0 2px #1890ff}.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:0;right:10px;bottom:-2px;border-right:1px solid #d9d9d9;content:''}.ant-select-tree-show-line .ant-select-tree-switcher{background:#fff}.ant-select-tree-show-line .ant-select-tree-switcher-line-icon{vertical-align:-.225em}.ant-tree-select-dropdown-rtl .ant-select-tree .ant-select-tree-switcher_close .ant-select-tree-switcher-icon svg{transform:rotate(90deg)}.ant-tree-select-dropdown-rtl .ant-select-tree .ant-select-tree-switcher-loading-icon{transform:scaleY(-1)}.ant-tree.ant-select-tree.ant-tree-show-line nz-tree-node[builtin]:not(:last-child)>li::before{content:' ';width:1px;border-left:1px solid #d9d9d9;height:calc(100% - 16px);position:absolute;left:12px;margin:26px 0}.ant-select-dropdown.ant-select-tree-dropdown{top:100%;left:0;position:relative;width:100%;margin-top:4px;margin-bottom:4px;overflow:auto}.ant-picker-calendar{margin:0;color:rgba(0,0,0,.85);line-height:1.66667;background:#fff}.ant-picker-calendar-header{display:flex;justify-content:flex-end;padding:8px 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:4px}.ant-picker-calendar-header .ant-picker-calendar-mode-switch{margin-left:4px}.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-date-panel,.ant-picker-calendar .ant-picker-panel .ant-picker-month-panel{width:auto}.ant-picker-calendar .ant-picker-panel .ant-picker-body{padding:4px 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:4px;padding-left:4px}.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-cell .ant-picker-calendar-date-today::before,.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell::before{display:none}.ant-picker-calendar-full .ant-picker-panel .ant-picker-body td,.ant-picker-calendar-full .ant-picker-panel .ant-picker-body th{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:hover .ant-picker-calendar-date{background:#f5f5f5}.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 .ant-picker-calendar-date-today,.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:hover .ant-picker-calendar-date-today{background:#e6f7ff}.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date{display:block;width:auto;height:auto;margin:0 2px;padding:2px 4px 0;border:0;border-top:2px solid #f0f0f0;border-radius:0;transition:background .3s}.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-value{line-height:24px;transition:color .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,.85);line-height:1.66667;text-align:left}.ant-image,.half-float{position:relative}.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,.85)}@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% - 4px)}.ant-picker-calendar-header .ant-picker-calendar-mode-switch{width:100%;margin-top:4px;margin-left:0}.ant-picker-calendar-header .ant-picker-calendar-mode-switch>label{width:50%;text-align:center}}.ant-picker-calendar-rtl .ant-picker-calendar-header .ant-picker-calendar-mode-switch,.ant-picker-calendar-rtl .ant-picker-calendar-header .ant-picker-calendar-month-select{margin-right:4px;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}.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:64px}.ant-result-title{color:rgba(0,0,0,.85);font-size:20px;line-height:1.8;text-align:center}.ant-result-subtitle{color:rgba(0,0,0,.45);font-size:12px;line-height:1.6;text-align:center}.ant-result-extra{margin:24px 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}.ant-result-rtl .ant-result-extra>*{margin-right:0;margin-left:8px}.ant-result-rtl .ant-result-extra>:last-child{margin-left:0}nz-result{display:block}.ant-space{display:inline-flex}.ant-space-vertical{flex-direction:column}.ant-space-align-center{align-items:center}.ant-space-align-start{align-items:flex-start}.ant-space-align-end{align-items:flex-end}.ant-space-align-baseline{align-items:baseline}.ant-space-item:empty{display:none}nz-space-item{display:block}.ant-image{display:inline-block}.ant-image-mask,.ant-image-placeholder{position:absolute;left:0;right:0;bottom:0}.ant-image-img{display:block;width:100%;height:auto}.ant-image-img-placeholder{background-color:#f5f5f5;background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTQuNSAyLjVoLTEzQS41LjUgMCAwIDAgMSAzdjEwYS41LjUgMCAwIDAgLjUuNWgxM2EuNS41IDAgMCAwIC41LS41VjNhLjUuNSAwIDAgMC0uNS0uNXpNNS4yODEgNC43NWExIDEgMCAwIDEgMCAyIDEgMSAwIDAgMSAwLTJ6bTguMDMgNi44M2EuMTI3LjEyNyAwIDAgMS0uMDgxLjAzSDIuNzY5YS4xMjUuMTI1IDAgMCAxLS4wOTYtLjIwN2wyLjY2MS0zLjE1NmEuMTI2LjEyNiAwIDAgMSAuMTc3LS4wMTZsLjAxNi4wMTZMNy4wOCAxMC4wOWwyLjQ3LTIuOTNhLjEyNi4xMjYgMCAwIDEgLjE3Ny0uMDE2bC4wMTUuMDE2IDMuNTg4IDQuMjQ0YS4xMjcuMTI3IDAgMCAxLS4wMi4xNzV6IiBmaWxsPSIjOEM4QzhDIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48L3N2Zz4=);background-repeat:no-repeat;background-position:center center;background-size:30%}.ant-image-mask{top:0;display:flex;align-items:center;justify-content:center;color:#fff;background:rgba(0,0,0,.5);cursor:pointer;opacity:0;transition:opacity .3s}.ant-image-mask-info .anticon{margin-inline-end:0}.ant-image-mask:hover{opacity:1}.ant-image-placeholder{top:0}.ant-image-preview{pointer-events:none;height:100%;text-align:center}.ant-image-preview.ant-zoom-enter,.ant-image-preview.antzoom-appear{transform:none;opacity:0;animation-duration:.3s;user-select:none}.cdk-overlay-backdrop.ant-image-preview-mask,.img-thm:hover .img-thm__icon,.loading-backdrop{opacity:1}.ant-image-preview-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;height:100%;background-color:rgba(0,0,0,.45)}.ant-image-preview-mask-hidden{display:none}.ant-image-preview-wrap{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;outline:0;-webkit-overflow-scrolling:touch;z-index:1080}.ant-image-preview-body{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.ant-image-preview-img{max-width:100%;max-height:100%;vertical-align:middle;transform:scale3d(1,1,1);cursor:grab;transition:transform .3s cubic-bezier(.215,.61,.355,1) 0s;user-select:none;pointer-events:auto}.ant-image-preview-img-wrapper{position:absolute;top:0;right:0;bottom:0;left:0;transition:transform .3s cubic-bezier(.215,.61,.355,1) 0s}.ant-image-preview-img-wrapper::before{display:inline-block;width:1px;height:50%;margin-right:-1px;content:''}.ant-image-preview-moving .ant-image-preview-img{cursor:grabbing}.ant-image-preview-moving .ant-image-preview-img-wrapper{transition-duration:0s}.ant-image-preview-operations{box-sizing:border-box;margin:0;padding:0;font-size:12px;font-variant:tabular-nums;line-height:1.66667;font-feature-settings:tnum;position:absolute;top:0;right:0;z-index:1;display:flex;flex-direction:row-reverse;align-items:center;width:100%;color:rgba(255,255,255,.85);list-style:none;background:rgba(0,0,0,.1);pointer-events:auto}.ant-image-preview-operations-icon,.ant-image-preview-switch-left>.anticon,.ant-image-preview-switch-right>.anticon{font-size:18px}.ant-image-preview-operations-operation{margin-left:8px;padding:8px;cursor:pointer}.ant-image-preview-operations-operation-disabled{color:rgba(255,255,255,.25);pointer-events:none}.ant-image-preview-operations-operation:last-of-type{margin-left:0}.ant-image-preview-switch-left,.ant-image-preview-switch-right{position:absolute;top:50%;right:10px;z-index:1;display:flex;align-items:center;justify-content:center;width:44px;height:44px;margin-top:-22px;color:rgba(255,255,255,.85);background:rgba(0,0,0,.1);border-radius:50%;cursor:pointer;pointer-events:auto}.ant-image-preview-switch-left-disabled,.ant-image-preview-switch-right-disabled{color:rgba(255,255,255,.25);cursor:not-allowed}.ant-form-item-label em,.dd-btn{color:#bfbfbf}.ant-image-preview-switch-left-disabled>.anticon,.ant-image-preview-switch-right-disabled>.anticon{cursor:not-allowed}.ant-image-preview-switch-left{left:10px}.ant-image-preview-switch-right{right:10px}sf+st{margin-top:16px}.ant-btn+.ant-btn,.ant-btn+nz-button-group,.ant-btn+nz-dropdown,.ant-btn+nz-popconfirm,nz-button-group+.ant-btn,nz-button-group+nz-popconfirm,nz-dropdown+.ant-btn,nz-popconfirm+.ant-btn,nz-popconfirm+nz-button-group,nz-popconfirm+nz-popconfirm{margin-left:8px}.ant-btn-group .ant-btn+.ant-btn{margin-left:-1px}.ant-transfer-operation .ant-btn+.ant-btn{margin-left:initial}[dir=rtl] .ant-btn+.ant-btn,[dir=rtl] .ant-btn+nz-button-group,[dir=rtl] .ant-btn+nz-dropdown,[dir=rtl] .ant-btn+nz-popconfirm,[dir=rtl] nz-button-group+.ant-btn,[dir=rtl] nz-button-group+nz-popconfirm,[dir=rtl] nz-dropdown+.ant-btn,[dir=rtl] nz-popconfirm+.ant-btn,[dir=rtl] nz-popconfirm+nz-button-group,[dir=rtl] nz-popconfirm+nz-popconfirm{margin-right:8px;margin-left:inherit}a:focus{text-decoration:none}.ant-card{margin-bottom:16px}.ant-card__body-nopadding .ant-card-body{padding:0!important}@media (min-width:300px){.ant-drawer-left .drawer-sm,.ant-drawer-right .drawer-sm{width:auto!important;max-width:300px}}@media (max-width:299px){.ant-drawer-left .drawer-sm,.ant-drawer-right .drawer-sm{width:100%!important}}@media (min-width:600px){.ant-drawer-left .drawer-md,.ant-drawer-right .drawer-md{width:auto!important;max-width:600px}}@media (max-width:599px){.ant-drawer-left .drawer-md,.ant-drawer-right .drawer-md{width:100%!important}}@media (min-width:900px){.ant-drawer-left .drawer-lg,.ant-drawer-right .drawer-lg{width:auto!important;max-width:900px}}@media (max-width:899px){.ant-drawer-left .drawer-lg,.ant-drawer-right .drawer-lg{width:100%!important}}@media (min-width:1200px){.ant-drawer-left .drawer-xl,.ant-drawer-right .drawer-xl{width:auto!important;max-width:1200px}}@media (max-width:1199px){.ant-drawer-left .drawer-xl,.ant-drawer-right .drawer-xl{width:100%!important}}.drawer-footer{position:absolute;bottom:0;left:0;width:100%;padding:8px 16px;text-align:right;background:#fff;border-radius:0 0 2px 2px}.ant-form-item-control em{margin-left:8px}[dir=rtl] .ant-form-item-control em{margin-right:8px;margin-left:inherit}@media (min-width:576px){.modal-sm .ant-modal{width:auto!important;max-width:300px}}@media (min-width:768px){.modal-md .ant-modal{width:auto!important;max-width:600px}}@media (min-width:992px){.modal-lg .ant-modal{width:auto!important;max-width:900px}}@media (min-width:1600px){.modal-xl .ant-modal{width:auto!important;max-width:1200px}}.modal-header{display:flex;justify-content:space-between;margin:-16px -16px 16px;padding:11px 16px;background:#fff;border-radius:2px 2px 0 0}.modal-title{margin:0;color:rgba(0,0,0,.85);font-weight:500;font-size:14px;line-height:22px;word-wrap:break-word}.modal-title small{margin-left:8px;color:#8c8c8c;font-size:12px}.modal-spin{display:block;min-height:150px;line-height:150px;text-align:center}.modal-footer{margin:16px -16px -16px;padding:8px 16px;text-align:right;border-radius:0 0 2px 2px}.modal-include-tabs nz-tabset{margin-top:-16px}.modal-body-nopadding .ant-modal-body{padding:0!important}.ant-table td .img,.ant-table td>img{max-width:32px;max-height:32px;margin-right:4px;vertical-align:middle;border-radius:4px}.ant-table-rep__hide-header-footer .ant-table-footer,.ant-table-rep__hide-header-footer .ant-table-title,.ant-table-rep__title{display:none}[dir=rtl] .ant-table td .img,[dir=rtl] .ant-table td>img{margin-right:inherit;margin-left:4px}@media screen and (max-width:767px){.ant-table-rep__title{display:inline-block;width:100px;padding-right:8px;color:rgba(0,0,0,.5);text-align:right}.ant-table-rep__hide-header-footer .ant-table-footer,.ant-table-rep__hide-header-footer .ant-table-title{display:block}.ant-table-rep .ant-table table{width:100%!important;table-layout:auto!important}.ant-table-rep .ant-table-thead{display:none}.ant-table-rep .ant-table-title{text-align:center;background:#f0f0f0}.ant-table-rep .ant-table-tbody>tr:nth-child(4n+3){background:#f9f9f9}.ant-table-rep .ant-table-tbody>tr>td{display:flex;align-items:center;width:100%;padding:6px 4px;white-space:inherit;text-align:left!important;border-bottom:none}.ant-table-rep .ant-table-tbody>tr>td .ant-table-rep__title+:not(.ant-avatar){flex:1;word-break:break-all}}.ant-tag__plus .ant-tag{background:#fff;border-style:dashed}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small{font-size:65%}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small{font-size:75%}.h1{font-size:32px}.h2{font-size:24px}.h3{font-size:20px}.h4{font-size:16px}.h5{font-size:14px}.h6{font-size:12px}.list-styled{list-style:inherit;padding-right:18px;padding-left:0}.list-unstyled{list-style:none;padding-right:0;padding-left:inherit}fieldset{border:none}.display-1{font-size:32px}.display-2{font-size:24px}.display-3{font-size:20px}.search__form .ant-form-item{margin-right:0;margin-bottom:16px}.search__form .ant-form-item-control{flex:1}.file-manager,.sf__object-card .sf__fixed{flex-wrap:wrap}.half-float img{display:block;max-width:100%;height:auto}.half-float .half-float-bottom{position:absolute;left:50%;z-index:2}.half-float.half-float-sm{margin-bottom:42px}.half-float.half-float-sm .half-float-bottom{bottom:-32px;width:64px;height:64px;margin-left:-32px}.half-float.half-float-md{margin-bottom:50px}.half-float.half-float-md .half-float-bottom{bottom:-40px;width:80px;height:80px;margin-left:-40px}.half-float.half-float-lg{margin-bottom:58px}.half-float.half-float-lg .half-float-bottom{bottom:-48px;width:96px;height:96px;margin-left:-48px}.row-masonry{position:relative;width:100%;margin:0;padding:0;column-gap:16px}.row-masonry>.col-masonry{display:inline-block;width:100%;min-height:1em;margin-bottom:15px}.sf__array>.ant-form-item,.sf__title{margin-bottom:8px}.row-masonry img{max-width:100%}@media only screen and (min-width:480px){.row-masonry-xs-1{column-count:1;columns:1}.row-masonry-xs-2{column-count:2;columns:2}.row-masonry-xs-3{column-count:3;columns:3}.row-masonry-xs-4{column-count:4;columns:4}.row-masonry-xs-5{column-count:5;columns:5}.row-masonry-xs-6{column-count:6;columns:6}.row-masonry-xs-7{column-count:7;columns:7}.row-masonry-xs-8{column-count:8;columns:8}.row-masonry-xs-9{column-count:9;columns:9}}@media only screen and (min-width:576px){.row-masonry-sm-1{column-count:1;columns:1}.row-masonry-sm-2{column-count:2;columns:2}.row-masonry-sm-3{column-count:3;columns:3}.row-masonry-sm-4{column-count:4;columns:4}.row-masonry-sm-5{column-count:5;columns:5}.row-masonry-sm-6{column-count:6;columns:6}.row-masonry-sm-7{column-count:7;columns:7}.row-masonry-sm-8{column-count:8;columns:8}.row-masonry-sm-9{column-count:9;columns:9}}@media only screen and (min-width:768px){.row-masonry-md-1{column-count:1;columns:1}.row-masonry-md-2{column-count:2;columns:2}.row-masonry-md-3{column-count:3;columns:3}.row-masonry-md-4{column-count:4;columns:4}.row-masonry-md-5{column-count:5;columns:5}.row-masonry-md-6{column-count:6;columns:6}.row-masonry-md-7{column-count:7;columns:7}.row-masonry-md-8{column-count:8;columns:8}.row-masonry-md-9{column-count:9;columns:9}}@media only screen and (min-width:992px){.row-masonry-lg-1{column-count:1;columns:1}.row-masonry-lg-2{column-count:2;columns:2}.row-masonry-lg-3{column-count:3;columns:3}.row-masonry-lg-4{column-count:4;columns:4}.row-masonry-lg-5{column-count:5;columns:5}.row-masonry-lg-6{column-count:6;columns:6}.row-masonry-lg-7{column-count:7;columns:7}.row-masonry-lg-8{column-count:8;columns:8}.row-masonry-lg-9{column-count:9;columns:9}}@media only screen and (min-width:1200px){.row-masonry-xl-1{column-count:1;columns:1}.row-masonry-xl-2{column-count:2;columns:2}.row-masonry-xl-3{column-count:3;columns:3}.row-masonry-xl-4{column-count:4;columns:4}.row-masonry-xl-5{column-count:5;columns:5}.row-masonry-xl-6{column-count:6;columns:6}.row-masonry-xl-7{column-count:7;columns:7}.row-masonry-xl-8{column-count:8;columns:8}.row-masonry-xl-9{column-count:9;columns:9}}.header-dropdown{background-color:#fff;border-radius:4px}@media screen and (max-width:480px){.header-dropdown{right:0!important;left:0!important;width:100%!important;border-radius:0!important}}.sf{display:block}.sf__optional{margin-left:2px;color:rgba(0,0,0,.35)}.sf__fixed{display:flex}.sf__title{padding:0 16px;font-weight:700;text-align:left}.sf__object-card .ant-card-body{padding-left:0}.sf__object-card-fold .ant-card-body{display:none}.sf__array-add{margin-right:16px}.sf__array-container .ant-card{margin:0 16px 16px 0}.sf__array-container .ant-card-body{padding-bottom:0}.sf__array-container .ant-card .sf__array-remove{position:absolute;top:-16px;right:-16px;display:none;width:32px;height:32px;font-size:20px;line-height:32px;text-align:center;background:rgba(0,0,0,.26);border-radius:50%;cursor:pointer}.sf__array-container .ant-card .sf__array-remove i{color:#fff}.sf__array-container .ant-card:hover .sf__array-remove{display:block}@media (max-width:767px){.sf__array>.ant-form-item>.ant-form-item-control-wrapper,.sf__array>.ant-form-item>.ant-form-item-label{flex:0 0 100%;max-width:100%}.sf__array>.ant-form-item>.ant-form-item-label{display:flex;margin-bottom:8px}.sf__array-container .ant-card{margin-right:0}.sf__array-container .ant-card .sf__array-remove{right:8px;display:block}.sf__array-container>.sf__array-item{flex:0 0 100%;max-width:100%}}.sf__checkbox-list{display:block;width:100%}@media (min-width:768px){.sf__checkbox-list .ant-col{margin-top:8px}}.sf .ant-upload-select-picture-card i{color:#999;font-size:32px}.sf .ant-upload.ant-upload-drag{height:180px}.sf .ant-transfer-list{background:#fff}.sf .ant-transfer-list-header label{position:unset}.sf .ant-transfer .ant-btn+.ant-btn{margin-left:0}.sf__no-error .ant-form-item{margin-bottom:8px}.sf__inline .sf__item{display:inline-block;margin-bottom:8px;vertical-align:top}.sf__inline .ant-form-inline>.sf__item,.sf__inline .sf__array-container .ant-card-body>.sf__item{margin-bottom:0}.sf__inline .ant-form-inline .ant-select{min-width:100px}.sf__inline .sf__array-container>.sf__array-item{flex:initial;width:100%;max-width:100%}.sf__inline .sf__array-container .ant-card{margin:0}.sf__inline .sf__array-container .ant-card-body{padding:8px 0 0 8px}.sf__inline .sf-btns{margin-right:0}@media (max-width:767px){.sf__inline .sf__item{display:block;width:100%}.sf__inline .sf__item .ant-form-item{display:block!important;width:initial!important;margin-right:0}.sf__inline .ant-form-item-control,.sf__inline .ant-form-item-label{display:block!important;padding:inherit}}.sf__horizontal .ant-form-item-label>label{display:flex;justify-content:flex-end}.sf__horizontal .sf__label-text{overflow:hidden;text-overflow:ellipsis}@media (max-width:767px){.sf__horizontal .ant-form-item-label>label{justify-content:flex-start}}.sf__no-colon .ant-form-item-label label::after{content:' '}.sf__compact .ant-form-item{margin-bottom:8px}.sf__compact .sf__array-container .ant-card{margin:0 8px 8px 0}.sf__compact .sf__array-item .ant-card-body{padding:8px}.acl__hide{display:none!important}.setting-drawer__content{position:relative;min-height:100%;background:#fff}.setting-drawer__handle,.theme-btn{position:fixed;display:flex;cursor:pointer}.setting-drawer__body-item{display:flex;align-items:center;justify-content:space-between;padding-top:12px;padding-bottom:12px}.setting-drawer__body-item:first-child{padding-top:0}.setting-drawer__body-item:last-child{padding-bottom:0}.setting-drawer__title{margin-bottom:12px;color:rgba(0,0,0,.85);font-size:14px;line-height:22px}.setting-drawer__theme{margin-top:24px;overflow:hidden}.setting-drawer__theme-tag{float:left;width:20px;height:20px;margin-right:8px;color:#fff;font-weight:700;text-align:center;border-radius:2px;cursor:pointer}.setting-drawer__handle{right:0;z-index:999;align-items:center;justify-content:center;font-size:16px;text-align:center;border-radius:4px 0 0 4px;transition:right .3s cubic-bezier(.9,0,.3,.7);pointer-events:auto}.setting-drawer__handle-icon{color:#fff}.setting-drawer__handle-opened{z-index:1001}.setting-drawer-rtl .setting-drawer__handle{right:inherit;left:0;border-radius:0 4px 4px 0}.theme-btn{right:32px;bottom:102px;z-index:2147483640;flex-direction:column}.theme-btn-active{width:44px;height:44px;color:#1890ff;font-size:22px;line-height:44px}.theme-btn .ant-avatar{color:#000;background-color:#fff;box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);transition:color .3s}.theme-btn .ant-avatar:hover,.yn__yes{color:#1890ff}.bg-blue-dark-h,.bg-blue-h,.bg-blue-light-h,.bg-cyan-dark-h,.bg-cyan-h,.bg-cyan-light-h,.bg-error-h,.bg-geekblue-dark-h,.bg-geekblue-h,.bg-geekblue-light-h,.bg-gold-dark-h,.bg-gold-h,.bg-gold-light-h,.bg-green-dark-h,.bg-green-h,.bg-green-light-h,.bg-grey-dark-h,.bg-grey-darker-h,.bg-grey-h,.bg-grey-light-h,.bg-grey-lighter-h,.bg-highlight-h,.bg-info-h,.bg-lime-dark-h,.bg-lime-h,.bg-lime-light-h,.bg-magenta-dark-h,.bg-magenta-h,.bg-magenta-light-h,.bg-normal-h,.bg-orange-dark-h,.bg-orange-h,.bg-orange-light-h,.bg-primary-h,.bg-processing-h,.bg-purple-dark-h,.bg-purple-h,.bg-purple-light-h,.bg-red-dark-h,.bg-red-h,.bg-red-light-h,.bg-success-h,.bg-volcano-dark-h,.bg-volcano-h,.bg-volcano-light-h,.bg-warning-h,.bg-yellow-dark-h,.bg-yellow-h,.bg-yellow-light-h{transition:background-color .3s}.theme-btn-rtl{right:inherit;left:32px}.yn__no,.yn__yes{display:inline-flex;align-items:center;font-style:normal}.yn__no span,.yn__yes span{margin-left:4px}.yn__no{color:#8c8c8c}.pro-passport__langs .anticon,.text-white{color:#fff!important}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.border{border:1px solid #f0f0f0!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-1{border:1px solid #f0f0f0!important}.rounded-md,.rounded-sm{border-radius:2px}.rounded-top-left-md,.rounded-top-left-sm{border-top-left-radius:2px}.rounded-top-right-md,.rounded-top-right-sm{border-top-right-radius:2px}.rounded-bottom-left-md,.rounded-bottom-left-sm{border-bottom-left-radius:2px}.rounded-bottom-right-md,.rounded-bottom-right-sm{border-bottom-right-radius:2px}.border-top-1{border-top:1px solid #f0f0f0!important}.border-right-1{border-right:1px solid #f0f0f0!important}.border-bottom-1{border-bottom:1px solid #f0f0f0!important}.border-left-1{border-left:1px solid #f0f0f0!important}.border-red{border-color:#f5222d!important}.border-volcano{border-color:#fa541c!important}.border-orange{border-color:#fa8c16!important}.border-gold{border-color:#faad14!important}.border-yellow{border-color:#fadb14!important}.border-lime{border-color:#a0d911!important}.border-green{border-color:#52c41a!important}.border-cyan{border-color:#13c2c2!important}.border-blue{border-color:#1890ff!important}.border-geekblue{border-color:#2f54eb!important}.border-purple{border-color:#722ed1!important}.border-magenta{border-color:#eb2f96!important}.border-grey{border-color:#bfbfbf!important}.border-primary{border-color:#1890ff!important}.border-success{border-color:#52c41a!important}.border-error{border-color:#ff4d4f!important}.border-warning{border-color:#faad14!important}.border-info,.border-processing{border-color:#1890ff!important}.border-highlight{border-color:#ff4d4f!important}.border-normal{border-color:#d9d9d9!important}.rounded-lg{border-radius:4px}.rounded-top-left-lg{border-top-left-radius:4px}.rounded-top-right-lg{border-top-right-radius:4px}.rounded-bottom-left-lg{border-bottom-left-radius:4px}.rounded-bottom-right-lg{border-bottom-right-radius:4px}.rounded-circle{border-radius:50%}.rounded-0{border-radius:0}.border-white{border-color:#fff!important}.rotate-360{transform:rotate(360deg)}.rotate-345{transform:rotate(345deg)}.rotate-330{transform:rotate(330deg)}.rotate-315{transform:rotate(315deg)}.rotate-300{transform:rotate(300deg)}.rotate-285{transform:rotate(285deg)}.rotate-270{transform:rotate(270deg)}.rotate-255{transform:rotate(255deg)}.rotate-240{transform:rotate(240deg)}.rotate-225{transform:rotate(225deg)}.rotate-210{transform:rotate(210deg)}.rotate-195{transform:rotate(195deg)}.rotate-180{transform:rotate(180deg)}.rotate-165{transform:rotate(165deg)}.rotate-150{transform:rotate(150deg)}.rotate-135{transform:rotate(135deg)}.rotate-120{transform:rotate(120deg)}.rotate-105{transform:rotate(105deg)}.rotate-90{transform:rotate(90deg)}.rotate-75{transform:rotate(75deg)}.rotate-60{transform:rotate(60deg)}.rotate-45{transform:rotate(45deg)}.rotate-30{transform:rotate(30deg)}.rotate-15{transform:rotate(15deg)}code{margin:0 4px;padding:2px 4px;font-size:90%;background-color:#f7f7f7;border:1px solid #eee;border-radius:2px}.pr0,.px0{padding-right:0!important}.pl0,.px0,[dir=rtl] .pr0{padding-left:0!important}.pb0,.py0{padding-bottom:0!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.text-hover{cursor:pointer}.text-hover:hover{color:#1890ff!important}.bg-red-light{background-color:#ff4d4f!important}.bg-red{background-color:#f5222d!important}.bg-red-dark{background-color:#cf1322!important}.bg-red-light-h:hover{background-color:#ff4d4f!important}.bg-red-h:hover{background-color:#f5222d!important}.bg-red-dark-h:hover{background-color:#cf1322!important}.text-red-light{color:#ff4d4f!important}.text-red{color:#f5222d!important}.text-red-dark{color:#cf1322!important}.bg-volcano-light{background-color:#ff7a45!important}.bg-volcano{background-color:#fa541c!important}.bg-volcano-dark{background-color:#d4380d!important}.bg-volcano-light-h:hover{background-color:#ff7a45!important}.bg-volcano-h:hover{background-color:#fa541c!important}.bg-volcano-dark-h:hover{background-color:#d4380d!important}.text-volcano-light{color:#ff7a45!important}.text-volcano{color:#fa541c!important}.text-volcano-dark{color:#d4380d!important}.bg-orange-light{background-color:#ffa940!important}.bg-orange{background-color:#fa8c16!important}.bg-orange-dark{background-color:#d46b08!important}.bg-orange-light-h:hover{background-color:#ffa940!important}.bg-orange-h:hover{background-color:#fa8c16!important}.bg-orange-dark-h:hover{background-color:#d46b08!important}.text-orange-light{color:#ffa940!important}.text-orange{color:#fa8c16!important}.text-orange-dark{color:#d46b08!important}.bg-gold-light{background-color:#ffc53d!important}.bg-gold{background-color:#faad14!important}.bg-gold-dark{background-color:#d48806!important}.bg-gold-light-h:hover{background-color:#ffc53d!important}.bg-gold-h:hover{background-color:#faad14!important}.bg-gold-dark-h:hover{background-color:#d48806!important}.text-gold-light{color:#ffc53d!important}.text-gold{color:#faad14!important}.text-gold-dark{color:#d48806!important}.bg-yellow-light{background-color:#ffec3d!important}.bg-yellow{background-color:#fadb14!important}.bg-yellow-dark{background-color:#d4b106!important}.bg-yellow-light-h:hover{background-color:#ffec3d!important}.bg-yellow-h:hover{background-color:#fadb14!important}.bg-yellow-dark-h:hover{background-color:#d4b106!important}.text-yellow-light{color:#ffec3d!important}.text-yellow{color:#fadb14!important}.text-yellow-dark{color:#d4b106!important}.bg-lime-light{background-color:#bae637!important}.bg-lime{background-color:#a0d911!important}.bg-lime-dark{background-color:#7cb305!important}.bg-lime-light-h:hover{background-color:#bae637!important}.bg-lime-h:hover{background-color:#a0d911!important}.bg-lime-dark-h:hover{background-color:#7cb305!important}.text-lime-light{color:#bae637!important}.text-lime{color:#a0d911!important}.text-lime-dark{color:#7cb305!important}.bg-green-light{background-color:#73d13d!important}.bg-green{background-color:#52c41a!important}.bg-green-dark{background-color:#389e0d!important}.bg-green-light-h:hover{background-color:#73d13d!important}.bg-green-h:hover{background-color:#52c41a!important}.bg-green-dark-h:hover{background-color:#389e0d!important}.text-green-light{color:#73d13d!important}.text-green{color:#52c41a!important}.text-green-dark{color:#389e0d!important}.bg-cyan-light{background-color:#36cfc9!important}.bg-cyan{background-color:#13c2c2!important}.bg-cyan-dark{background-color:#08979c!important}.bg-cyan-light-h:hover{background-color:#36cfc9!important}.bg-cyan-h:hover{background-color:#13c2c2!important}.bg-cyan-dark-h:hover{background-color:#08979c!important}.text-cyan-light{color:#36cfc9!important}.text-cyan{color:#13c2c2!important}.text-cyan-dark{color:#08979c!important}.bg-blue-light{background-color:#40a9ff!important}.bg-blue{background-color:#1890ff!important}.bg-blue-dark{background-color:#096dd9!important}.bg-blue-light-h:hover{background-color:#40a9ff!important}.bg-blue-h:hover{background-color:#1890ff!important}.bg-blue-dark-h:hover{background-color:#096dd9!important}.text-blue-light{color:#40a9ff!important}.text-blue{color:#1890ff!important}.text-blue-dark{color:#096dd9!important}.bg-geekblue-light{background-color:#597ef7!important}.bg-geekblue{background-color:#2f54eb!important}.bg-geekblue-dark{background-color:#1d39c4!important}.bg-geekblue-light-h:hover{background-color:#597ef7!important}.bg-geekblue-h:hover{background-color:#2f54eb!important}.bg-geekblue-dark-h:hover{background-color:#1d39c4!important}.text-geekblue-light{color:#597ef7!important}.text-geekblue{color:#2f54eb!important}.text-geekblue-dark{color:#1d39c4!important}.bg-purple-light{background-color:#9254de!important}.bg-purple{background-color:#722ed1!important}.bg-purple-dark{background-color:#531dab!important}.bg-purple-light-h:hover{background-color:#9254de!important}.bg-purple-h:hover{background-color:#722ed1!important}.bg-purple-dark-h:hover{background-color:#531dab!important}.text-purple-light{color:#9254de!important}.text-purple{color:#722ed1!important}.text-purple-dark{color:#531dab!important}.bg-magenta-light{background-color:#f759ab!important}.bg-magenta{background-color:#eb2f96!important}.bg-magenta-dark{background-color:#c41d7f!important}.bg-magenta-light-h:hover{background-color:#f759ab!important}.bg-magenta-h:hover{background-color:#eb2f96!important}.bg-magenta-dark-h:hover{background-color:#c41d7f!important}.text-magenta-light{color:#f759ab!important}.text-magenta{color:#eb2f96!important}.text-magenta-dark{color:#c41d7f!important}.bg-grey-light{background-color:#d9d9d9!important}.bg-grey{background-color:#bfbfbf!important}.bg-grey-dark{background-color:#8c8c8c!important}.bg-grey-light-h:hover{background-color:#d9d9d9!important}.bg-grey-h:hover{background-color:#bfbfbf!important}.bg-grey-dark-h:hover{background-color:#8c8c8c!important}.text-grey-light{color:#d9d9d9!important}.text-grey{color:#bfbfbf!important}.text-grey-dark{color:#8c8c8c!important}.bg-primary-light{background-color:#40a9ff!important}.bg-primary{background-color:#1890ff!important}.bg-primary-dark{background-color:#096dd9!important}.bg-primary-h:hover{background-color:#1890ff!important}.text-primary-light{color:#40a9ff!important}.text-primary{color:#1890ff!important}.text-primary-dark{color:#096dd9!important}.bg-success-light{background-color:#73d13d!important}.bg-success{background-color:#52c41a!important}.bg-success-dark{background-color:#389e0d!important}.bg-success-h:hover{background-color:#52c41a!important}.text-success-light{color:#73d13d!important}.text-success{color:#52c41a!important}.text-success-dark{color:#389e0d!important}.bg-error-light{background-color:#ff7875!important}.bg-error{background-color:#ff4d4f!important}.bg-error-dark{background-color:#d9363e!important}.bg-error-h:hover{background-color:#ff4d4f!important}.text-error-light{color:#ff7875!important}.text-error{color:#ff4d4f!important}.text-error-dark{color:#d9363e!important}.bg-warning-light{background-color:#ffc53d!important}.bg-warning{background-color:#faad14!important}.bg-warning-dark{background-color:#d48806!important}.bg-warning-h:hover{background-color:#faad14!important}.text-warning-light{color:#ffc53d!important}.text-warning{color:#faad14!important}.text-warning-dark{color:#d48806!important}.bg-info-light{background-color:#40a9ff!important}.bg-info{background-color:#1890ff!important}.bg-info-dark{background-color:#096dd9!important}.bg-info-h:hover{background-color:#1890ff!important}.text-info-light{color:#40a9ff!important}.text-info{color:#1890ff!important}.text-info-dark{color:#096dd9!important}.bg-processing-light{background-color:#40a9ff!important}.bg-processing{background-color:#1890ff!important}.bg-processing-dark{background-color:#096dd9!important}.bg-processing-h:hover{background-color:#1890ff!important}.text-processing-light{color:#40a9ff!important}.text-processing{color:#1890ff!important}.text-processing-dark{color:#096dd9!important}.bg-highlight-light{background-color:#ff7875!important}.bg-highlight{background-color:#ff4d4f!important}.bg-highlight-dark{background-color:#d9363e!important}.bg-highlight-h:hover{background-color:#ff4d4f!important}.text-highlight-light{color:#ff7875!important}.text-highlight{color:#ff4d4f!important}.text-highlight-dark{color:#d9363e!important}.bg-normal-light{background-color:#e6d8d8!important}.bg-normal{background-color:#d9d9d9!important}.bg-normal-dark{background-color:#b3a8a8!important}.bg-normal-h:hover{background-color:#d9d9d9!important}.bg-grey-lighter,.bg-grey-lighter-h:hover{background-color:#f5f5f5!important}.text-normal-light{color:#e6d8d8!important}.text-normal{color:#d9d9d9!important}.text-normal-dark{color:#b3a8a8!important}.bg-grey-darker,.bg-grey-darker-h:hover{background-color:#262626!important}.text-grey-lighter{color:#f5f5f5!important}.text-grey-darker{color:#262626!important}.disabled,.no-data{color:rgba(0,0,0,.25)}.d-none{display:none!important}.d-block{display:block!important}.d-inline-block{display:inline-block!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.flex-center,.flex-center-between{display:flex!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center,.flex-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.flex-1{flex:1!important}.flex-column{flex-direction:column!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-center-between{align-items:center!important;justify-content:space-between!important}.float-none{float:none!important}.float-left{float:left!important}.float-right{float:right!important}.icon-sm{font-size:24px!important}.icon-md{font-size:48px!important}.icon-lg{font-size:72px!important}.icon-xl{font-size:96px!important}.icon-xxl{font-size:120px!important}.img-fluid{max-width:100%;height:auto}.point{cursor:pointer}.no-resize{min-width:100%;max-width:100%;resize:none}.no-data{font-size:16px;line-height:64px;text-align:center}.no-data i{position:relative;top:3px;margin-right:16px;font-size:24px}.fixed-top,.page-loading{top:0;right:0}.block-center{margin:0 auto}.mr0,.mx0{margin-right:0!important}.ml0,.mx0{margin-left:0!important}.mt0,.my0{margin-top:0!important}.mb0,.my0{margin-bottom:0!important}.bg-center{background-position:center center;background-size:cover}.page-loading{position:absolute;bottom:0;left:0;z-index:10000;padding-top:200px;text-align:center;background:#f5f5f5}.pt0,.py0{padding-top:0!important}.color-weak{display:block;filter:invert(80%)}.disabled{pointer-events:none}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.fixed-bottom,.fixed-top{position:fixed;z-index:9;left:0}.fixed-bottom{right:0;bottom:0}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}@media (max-width:575px){.hidden-xs{display:none!important}}@media (max-width:991px){.hidden-md{display:none!important}}@media (max-width:1199px){.hidden-lg{display:none!important}}@media (max-width:1599px){.hidden-xl{display:none!important}}@media (min-width:768px){.hidden-pc{display:none!important}}.m0{margin:0!important}.mr-xs,.mx-xs{margin-right:4px!important}.ml-xs,.mx-xs{margin-left:4px!important}.mt-xs,.my-xs{margin-top:4px!important}.mb-xs,.my-xs{margin-bottom:4px!important}.p0{padding:0!important}.pr-xs,.px-xs{padding-right:4px!important}.pl-xs,.px-xs{padding-left:4px!important}.pt-xs,.py-xs{padding-top:4px!important}.pb-xs,.py-xs{padding-bottom:4px!important}.m-xs{margin:4px!important}.mr-sm,.mx-sm{margin-right:8px!important}.ml-sm,.mx-sm{margin-left:8px!important}.mt-sm,.my-sm{margin-top:8px!important}.mb-sm,.my-sm{margin-bottom:8px!important}.p-xs{padding:4px!important}.pr-sm,.px-sm{padding-right:8px!important}.pl-sm,.px-sm,[dir=rtl] .pr-sm{padding-left:8px!important}.pt-sm,.py-sm{padding-top:8px!important}.pb-sm,.py-sm{padding-bottom:8px!important}.m-sm{margin:8px!important}.mr-md,.mx-md{margin-right:16px!important}.ml-md,.mx-md{margin-left:16px!important}.mt-md,.my-md{margin-top:16px!important}.mb-md,.my-md{margin-bottom:16px!important}.p-sm{padding:8px!important}.pr-md,.px-md{padding-right:16px!important}.pl-md,.px-md{padding-left:16px!important}.pt-md,.py-md{padding-top:16px!important}.pb-md,.py-md{padding-bottom:16px!important}.m-md{margin:16px!important}.mr-lg,.mx-lg{margin-right:24px!important}.ml-lg,.mx-lg{margin-left:24px!important}.mt-lg,.my-lg{margin-top:24px!important}.mb-lg,.my-lg{margin-bottom:24px!important}.p-md{padding:16px!important}.pr-lg,.px-lg{padding-right:24px!important}.pl-lg,.px-lg,[dir=rtl] .pr-lg{padding-left:24px!important}.pt-lg,.py-lg{padding-top:24px!important}.pb-lg,.py-lg{padding-bottom:24px!important}.m-lg{margin:24px!important}.mr-xl,.mx-xl{margin-right:32px!important}.ml-xl,.mx-xl{margin-left:32px!important}.mt-xl,.my-xl{margin-top:32px!important}.mb-xl,.my-xl{margin-bottom:32px!important}.p-lg{padding:24px!important}.pr-xl,.px-xl{padding-right:32px!important}.pl-xl,.px-xl{padding-left:32px!important}.pt-xl,.py-xl{padding-top:32px!important}.pb-xl,.py-xl{padding-bottom:32px!important}.m-xl{margin:32px!important}.mr-xxl,.mx-xxl{margin-right:48px!important}.ml-xxl,.mx-xxl{margin-left:48px!important}.mt-xxl,.my-xxl{margin-top:48px!important}.mb-xxl,.my-xxl{margin-bottom:48px!important}.p-xl{padding:32px!important}.pr-xxl,.px-xxl{padding-right:48px!important}.pl-xxl,.px-xxl,[dir=rtl] .pr-xxl{padding-left:48px!important}.pt-xxl,.py-xxl{padding-top:48px!important}.pb-xxl,.py-xxl{padding-bottom:48px!important}.m-xxl{margin:48px!important}.p-xxl{padding:48px!important}[dir=rtl] .mr0{margin-left:0!important;margin-right:inherit!important}[dir=rtl] .ml0{margin-right:0!important;margin-left:inherit!important}[dir=rtl] .pr0{padding-right:inherit!important}[dir=rtl] .pl0{padding-right:0!important;padding-left:inherit!important}[dir=rtl] .mr-xs{margin-left:4px!important;margin-right:inherit!important}[dir=rtl] .ml-xs{margin-right:4px!important;margin-left:inherit!important}[dir=rtl] .pr-xs{padding-left:4px!important;padding-right:inherit!important}[dir=rtl] .pl-xs{padding-right:4px!important;padding-left:inherit!important}[dir=rtl] .mr-sm{margin-left:8px!important;margin-right:inherit!important}[dir=rtl] .ml-sm{margin-right:8px!important;margin-left:inherit!important}[dir=rtl] .pr-sm{padding-right:inherit!important}[dir=rtl] .pl-sm{padding-right:8px!important;padding-left:inherit!important}[dir=rtl] .mr-md{margin-left:16px!important;margin-right:inherit!important}[dir=rtl] .ml-md{margin-right:16px!important;margin-left:inherit!important}[dir=rtl] .pr-md{padding-left:16px!important;padding-right:inherit!important}[dir=rtl] .pl-md{padding-right:16px!important;padding-left:inherit!important}[dir=rtl] .mr-lg{margin-left:24px!important;margin-right:inherit!important}[dir=rtl] .ml-lg{margin-right:24px!important;margin-left:inherit!important}[dir=rtl] .pr-lg{padding-right:inherit!important}[dir=rtl] .pl-lg{padding-right:24px!important;padding-left:inherit!important}[dir=rtl] .mr-xl{margin-left:32px!important;margin-right:inherit!important}[dir=rtl] .ml-xl{margin-right:32px!important;margin-left:inherit!important}[dir=rtl] .pr-xl{padding-left:32px!important;padding-right:inherit!important}[dir=rtl] .pl-xl{padding-right:32px!important;padding-left:inherit!important}[dir=rtl] .mr-xxl{margin-left:48px!important;margin-right:inherit!important}[dir=rtl] .ml-xxl{margin-right:48px!important;margin-left:inherit!important}[dir=rtl] .pr-xxl{padding-right:inherit!important}[dir=rtl] .pl-xxl{padding-right:48px!important;padding-left:inherit!important}.text-left{text-align:left!important}.text-center{text-align:center!important}.text-right,[dir=rtl] .text-left{text-align:right!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-nowrap{white-space:nowrap!important}.text-wrap{white-space:pre-wrap!important}.text-truncate{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.font-weight-normal{font-weight:400}.font-weight-bold,.se__title{font-weight:700}.text-xs{font-size:10px!important}.text-sm{font-size:12px!important}.text-md{font-size:14px!important}.text-lg{font-size:16px!important}.text-xl{font-size:20px!important}.text-xxl{font-size:26px!important}[dir=rtl] .text-right{text-align:left!important}.width-xs{width:80px!important}.max-width-xs{max-width:80px!important}.min-width-xs{min-width:80px!important}.width-sm{width:160px!important}.max-width-sm{max-width:160px!important}.min-width-sm{min-width:160px!important}.width-md{width:240px!important}.max-width-md{max-width:240px!important}.min-width-md{min-width:240px!important}.width-lg{width:320px!important}.max-width-lg{max-width:320px!important}.min-width-lg{min-width:320px!important}.width-xl{width:400px!important}.max-width-xl{max-width:400px!important}.min-width-xl{min-width:400px!important}.width-xxl{width:480px!important}.max-width-xxl{max-width:480px!important}.min-width-xxl{min-width:480px!important}.width-10{width:10%!important}.max-width-10{max-width:10%!important}.min-width-10{min-width:10%!important}.width-20{width:20%!important}.max-width-20{max-width:20%!important}.min-width-20{min-width:20%!important}.width-30{width:30%!important}.max-width-30{max-width:30%!important}.min-width-30{min-width:30%!important}.width-40{width:40%!important}.max-width-40{max-width:40%!important}.min-width-40{min-width:40%!important}.width-50{width:50%!important}.max-width-50{max-width:50%!important}.min-width-50{min-width:50%!important}.width-60{width:60%!important}.max-width-60{max-width:60%!important}.min-width-60{min-width:60%!important}.width-70{width:70%!important}.max-width-70{max-width:70%!important}.min-width-70{min-width:70%!important}.width-80{width:80%!important}.max-width-80{max-width:80%!important}.min-width-80{min-width:80%!important}.width-90{width:90%!important}.max-width-90{max-width:90%!important}.min-width-90{min-width:90%!important}.width-100{width:100%!important}.max-width-100{max-width:100%!important}.min-width-100{min-width:100%!important}@media (max-width:767px){.hidden-mobile,.hidden-sm{display:none!important}.max-width-sm,.min-width-sm,.width-sm{width:100%!important}}.scrollbar{overflow:auto}.scrollbar-x{overflow-x:auto;overflow-y:hidden}.scrollbar-y{overflow-x:hidden;overflow-y:auto}.ant-anchor-wrapper,.ant-dialog-wrap,.ant-drawer-body,.ant-drawer-wrapper-body,.scrollbar,body,textarea.ant-input{scrollbar-color:rgba(0,0,0,.3) #6e6e6e;scrollbar-width:thin}.ant-anchor-wrapper::-webkit-scrollbar,.ant-dialog-wrap::-webkit-scrollbar,.ant-drawer-body::-webkit-scrollbar,.ant-drawer-wrapper-body::-webkit-scrollbar,.scrollbar::-webkit-scrollbar,body::-webkit-scrollbar,textarea.ant-input::-webkit-scrollbar{width:6px;height:6px}.ant-anchor-wrapper::-webkit-scrollbar-track,.ant-dialog-wrap::-webkit-scrollbar-track,.ant-drawer-body::-webkit-scrollbar-track,.ant-drawer-wrapper-body::-webkit-scrollbar-track,.scrollbar::-webkit-scrollbar-track,body::-webkit-scrollbar-track,textarea.ant-input::-webkit-scrollbar-track{box-shadow:inset 0 0 6px rgba(0,0,0,.3)}.ant-anchor-wrapper::-webkit-scrollbar-thumb,.ant-dialog-wrap::-webkit-scrollbar-thumb,.ant-drawer-body::-webkit-scrollbar-thumb,.ant-drawer-wrapper-body::-webkit-scrollbar-thumb,.scrollbar::-webkit-scrollbar-thumb,body::-webkit-scrollbar-thumb,textarea.ant-input::-webkit-scrollbar-thumb{background-color:#6e6e6e;outline:#333 solid 1px}.st{display:block}.st__p-left .ant-table-pagination{display:block;float:none;text-align:left}.st__p-center .ant-table-pagination{display:block;float:none;text-align:center}.st__btn-sub .st__btn-text{color:inherit}.st__btn-disabled .st__btn-text{color:rgba(0,0,0,.25);pointer-events:none}.st .nz-resizable-handle{display:flex;align-items:center;justify-content:center}.st .nz-resizable-handle>i{width:1px;height:60%;background:#d9d9d9}.st .nz-resizable-preview{border-width:0 1px 0 0}.st .nz-resizable.ant-table-column-has-sorters .nz-resizable-handle{margin-right:8px}.st .ant-table~nz-pagination>.ant-pagination{margin-bottom:0}.st__filter-keyword{padding:8px}.st .ant-table-column-title{display:flex;align-items:center}.st__head-optional,.st__head-tip{margin-left:2px;color:rgba(0,0,0,.35)}.st .ant-table-thead>tr>th .ant-table-filter-selected.ant-table-filter-icon{color:#1890ff}.st__checkall-selection{display:inline-block;margin-left:4px}.sv,.sv__container{display:block}.st .ant-table-tbody>tr .ant-table-wrapper:only-child .ant-table{margin:0}.st .ant-table-cell-fix-left-first::after,.st .ant-table-cell-fix-left-last::after{transform:translateX(80%)}.st .ant-table-cell-fix-right-first::after,.st .ant-table-cell-fix-right-last::after{transform:translateX(-80%)}@media screen and (min-width:768px){.st__width-strict .ant-table-body>table,.st__width-strict .ant-table-content>table{word-wrap:break-word!important;table-layout:fixed!important}}.sv+.sv{margin-top:8px}.sv__container .ant-row{margin-bottom:-8px;overflow:hidden}.sv__item-fixed{display:flex}.sv__item-fixed .sv__label{flex:0 0 auto;overflow:hidden;text-align:right;text-overflow:ellipsis}.sv__item-fixed .sv__detail{flex:1 0 0}.sv__item+.ant-divider{margin:0 0 8px}.sv__title{display:block;float:none;clear:both;width:100%;margin-bottom:8px;color:rgba(0,0,0,.85);font-weight:500;font-size:14px}.sv__detail,.sv__label{display:table-cell;line-height:22px;padding-bottom:8px}.sv__label{color:rgba(0,0,0,.5);white-space:nowrap}.sv__label:not(.sv__label-empty)::after{position:relative;top:-.5px;margin:0 8px 0 2px;content:':'}.sv__label-optional{margin-left:2px;color:rgba(0,0,0,.35)}.sv__label-optional-no-text{margin-left:0}.sv__label-optional>.anticon{margin-left:2px}.sv__detail{width:100%;color:rgba(0,0,0,.85);word-break:break-all}.sv__type-primary .sv__detail{color:#1890ff}.sv__type-success .sv__detail{color:#52c41a}.sv__type-danger .sv__detail{color:#ff4d4f}.sv__type-warning .sv__detail{color:#faad14}.sv__default::before{content:-}.sv__default~.sv__unit{display:none!important}.sv__unit{display:inline;margin-left:8px;color:#8c8c8c}.sv__small .ant-row{margin-bottom:-8px}.sv__small .sv__title{margin-bottom:12px;color:rgba(0,0,0,.85)}.sv__small .sv__detail,.sv__small .sv__label{padding-bottom:8px}.sv__value{display:inline-flex;align-items:center}.sv__value-prefix,.sv__value-unit{color:rgba(0,0,0,.5);font-size:12px;font-style:normal}.sv__value-prefix{padding-right:3px}.sv__value-text{font-size:18px}.sv__value-unit{padding-left:3px}.sv__value:not(:first-child){position:relative;margin-left:8px;padding-left:14px}.sv__value:not(:first-child)::before{position:absolute;left:0;width:6px;color:rgba(0,0,0,.5);content:/}.sv__value-small .sv__value-text{font-size:14px}.sv__value-large .sv__value-text{font-size:24px}.sv__large .sv__title{font-size:16px}.sv__horizontal .sv__label-width{display:flex;justify-content:flex-end}.se__title,.sv__vertical .sv__detail,.sv__vertical .sv__label{display:block}.sv__horizontal .sv__label-width .sv__label-text{overflow:hidden;text-overflow:ellipsis}.sv__vertical .sv__label{padding-bottom:8px}.sv__no-colon::after{content:' '!important}.se__title{float:none;clear:both;width:100%;color:rgba(0,0,0,.85);font-size:14px;line-height:1.66667}.se__item:last-child{margin-bottom:0;padding-bottom:0}.se__item-empty::before{display:inline-block;content:''}.se__item+.ant-divider{margin:0 0 16px}.se__label{display:table-cell;flex:0 0 auto;width:initial;white-space:nowrap;text-align:right}.se__label-optional{margin-left:2px;color:rgba(0,0,0,.35)}.se__label-optional-no-text{margin-left:0}.se__label-optional>.anticon{margin-left:2px}.se__control{flex:1 0 0;width:100%}.se__compact>.se__item,.se__compact>.se__title{margin-bottom:8px}.se__compact>.se__item+.ant-divider,.se__compact>.se__title+.ant-divider{margin:0 0 8px}.se__compact .ant-form-item-extra{display:none}.se__line{padding-bottom:8px;border-bottom:1px dashed #f0f0f0}.se__hide-label .se__nolabel,.se__inline .se__nolabel,.se__vertical .se__nolabel{display:none!important}.se__horizontal>.se__item{display:flex}.se__horizontal>.se__item:last-child{margin-bottom:0}.se__horizontal>.se__item .se__label{display:flex;justify-content:flex-end}.se__horizontal>.se__item .se__label-text{overflow:hidden;text-overflow:ellipsis}.se__horizontal>.se__item .ant-form-item-required::before{line-height:inherit}.se__horizontal>.se__item .ant-form-item-label>label::after{margin-left:4px}.se__vertical>.se__item{display:block;width:100%}.se__inline .ant-form-item-label,.se__inline .se__control{display:inline-block;width:initial!important;text-align:left;vertical-align:top}.se__inline>.se__item{margin-right:16px}.se__inline>.se__item[col='1']{flex-basis:auto;width:100%}.se__inline>.se__item:last-child{margin-right:0}.se__no-colon::after{content:' '!important}@media (max-width:767px){.se__horizontal>.se__item{display:block}.se__horizontal>.se__item .ant-form-item-label{width:100%!important;text-align:left}.se__horizontal>.se__item .se__label{justify-content:normal}.se__horizontal .se__control,.se__horizontal .se__label,.se__vertical .se__control,.se__vertical .se__label{width:100%!important}}.avatar-list,.avatar-list__item,.avatar-list__wrap{display:inline-block}.avatar-list__wrap{margin-left:8px;padding:0;font-size:0}.avatar-list__item{width:28px;height:28px;margin-left:-8px;font-size:12px}.avatar-list__item .ant-avatar{border:1px solid #fff;cursor:pointer}.footer-toolbar,.notice-icon__clear{border-top:1px solid #f0f0f0;transition:all .3s}.avatar-list__large{width:32px;height:32px}.avatar-list__small{width:22px;height:22px}.avatar-list__mini{width:20px;height:20px}.avatar-list__mini .ant-avatar{width:20px;height:20px;line-height:20px}.avatar-list__mini .ant-avatar-string{font-size:12px;line-height:18px}ellipsis{display:inline}.ellipsis{display:inline-block;width:100%;overflow:hidden;word-break:break-all}.ellipsis__lines{position:relative}.ellipsis__line-clamp{position:relative;display:-webkit-box;overflow:hidden;text-overflow:ellipsis}.ellipsis__shadow{position:absolute;z-index:-999;display:block;opacity:0}.error-collect{padding-right:24px;color:#f5222d;cursor:pointer}.error-collect__count{padding-left:8px}.error-collect-rtl{padding-right:0;padding-left:24px}.error-collect-rtl .error-collect__count{padding-right:8px;padding-left:0}.exception{display:flex;align-items:center;height:100%}.exception__img-block{flex:0 0 62.5%;width:62.5%;padding-right:152px;zoom:1}.exception__img-block::after,.exception__img-block::before{display:table;content:' '}.exception__img-block::after{clear:both;height:0;font-size:0}.exception__img{float:right;width:100%;max-width:430px;height:360px;background-repeat:no-repeat;background-position:50% 50%;background-size:100% 100%}.exception__cont{flex:auto}.exception__cont-title{margin-bottom:24px;color:#434e59;font-weight:600;font-size:72px;line-height:72px}.exception__cont-desc{margin-bottom:16px;color:rgba(0,0,0,.45);font-size:20px;line-height:28px}.exception__cont-actions .ant-btn:not(:last-child){margin-right:8px}@media screen and (max-width:1200px){.exception__img-block{padding-right:88px}}@media screen and (max-width:576px){.exception{display:block;text-align:center}.exception__img-block{margin:0 auto 24px;padding-right:0}}@media screen and (max-width:480px){.exception__img-block{margin-bottom:-24px;overflow:hidden}}.exception-rtl .exception__cont-actions .ant-btn:not(:last-child){margin-right:0}.footer-toolbar{position:fixed;right:0;bottom:0;display:flex;height:48px;padding:0 16px;line-height:48px;background:#fff;box-shadow:0 -1px 2px rgba(0,0,0,.03)}.footer-toolbar__left{flex:1}.full-content{display:block;height:100%;overflow:auto}.full-content__body{overflow:hidden}.global-footer{display:block;margin:48px 0 24px;padding:0 16px;text-align:center}.global-footer__links{margin-bottom:8px}.global-footer__links-item{display:inline-block;color:rgba(0,0,0,.45);transition:all .3s}.global-footer__links-item:not(:last-child){margin-right:40px}.global-footer__links-item:hover{color:rgba(0,0,0,.85)}.global-footer__copyright{color:rgba(0,0,0,.45);font-size:12px}.global-footer-rtl .global-footer__links-item:not(:last-child){margin-right:inherit;margin-left:40px}.notice-icon{width:336px}.notice-icon__btn{display:inline-block;cursor:pointer;transition:all .3s}.notice-icon .ant-popover-inner-content{padding:0}.notice-icon .ant-tabs-bar{margin-bottom:4px}.notice-icon .ant-tabs-nav .ant-tabs-tab{margin-right:32px;padding:12px 16px}.notice-icon .ant-tabs-nav .ant-tabs-tab:last-child{margin-right:0}.notice-icon .ant-tabs-nav-scroll{text-align:center}.notice-icon .ant-list{max-height:400px;overflow:auto}.notice-icon .ant-list-item{padding-right:24px;padding-left:24px;overflow:hidden;cursor:pointer;transition:all .3s}.page-header,.page-header .ant-tabs-bar{border-bottom:1px solid #f0f0f0}.notice-icon .ant-list-item:hover{background:#e6f7ff}.notice-icon .ant-list-item-meta{width:100%}.notice-icon .ant-list-item-meta-title{margin-bottom:8px;font-weight:400}.notice-icon .ant-list-item .ant-avatar{margin-top:4px;background:#fff}.notice-icon__notfound{padding:73px 0 88px;color:rgba(0,0,0,.45);text-align:center}.notice-icon__clear,.notice-icon__clear:hover{color:rgba(0,0,0,.85)}.notice-icon__notfound-img{display:inline-block;height:76px;margin-bottom:16px}.notice-icon__clear{height:46px;line-height:46px;text-align:center;border-radius:0 0 2px 2px;cursor:pointer}.notice-icon__item-desc,.notice-icon__item-time{font-size:12px;line-height:1.66667}.notice-icon__item .ant-badge-count{top:-10px}.notice-icon__item-read{opacity:.4}.notice-icon__item-time{margin-top:4px}.notice-icon__item-extra{float:right;margin-top:-1.5px;margin-right:0;color:rgba(0,0,0,.45);font-weight:400}.page-header{display:block;padding:8px 16px 0;background-color:#fff}.page-header__wide{max-width:1200px;margin:auto}.page-header .ant-breadcrumb{margin-bottom:8px}.page-header .ant-tabs{margin:0 0 -9px}.page-header__detail{display:flex}.page-header__row{display:flex;width:100%}.page-header__logo{flex:0 1 auto;margin-right:8px;padding-top:1px}.page-header__logo img{display:block;width:28px;height:28px;border-radius:2px}.page-header__title{color:rgba(0,0,0,.85);font-weight:500;font-size:20px}.page-header__title small{padding-left:8px;font-weight:400;font-size:14px}.page-header__action{min-width:266px;margin-left:56px}.page-header__desc,.page-header__title{flex:auto}.page-header__action,.page-header__extra,.page-header__main{flex:0 1 auto}.page-header__main{width:100%}.page-header__action,.page-header__desc,.page-header__extra,.page-header__logo,.page-header__title{margin-bottom:8px}.page-header__action,.page-header__extra{text-align:right}.page-header__extra{min-width:242px;margin-left:88px}@media screen and (max-width:1200px){.page-header__extra{margin-left:44px}}@media screen and (max-width:992px){.page-header__extra{margin-left:20px}}@media screen and (max-width:768px){.page-header__row{display:block}.page-header__action,.page-header__extra{margin-left:0;text-align:left}}@media screen and (max-width:576px){.page-header__detail{display:block}}@media screen and (max-width:480px){.page-header__action .ant-btn,.page-header__action .ant-btn-group{display:block;margin-bottom:8px}.page-header__action .ant-input-search-enter-button .ant-btn{margin-bottom:0}.page-header__action .ant-btn-group>.ant-btn{display:inline-block;margin-bottom:0}}.page-header-rtl .page-header__logo{margin-right:0;margin-left:8px}.page-header-rtl .page-header__title small{padding-right:8px;padding-left:0}.page-header-rtl .page-header__action{margin-right:56px;margin-left:0}.page-header-rtl .page-header__extra{margin-right:88px;margin-left:0}@media screen and (max-width:1200px){.page-header-rtl .page-header__extra{margin-right:44px;margin-left:0}}@media screen and (max-width:992px){.page-header-rtl .page-header__extra{margin-right:20px;margin-left:0}}.quick-menu{position:fixed;right:-1px;left:auto;z-index:11;display:block;backface-visibility:hidden;transition:margin .3s cubic-bezier(1,0,0,1)}.quick-menu,.quick-menu__ctrl{background-color:#fff;border:1px solid #fff;box-shadow:0 6px 16px -8px rgba(0,0,0,.08),0 9px 28px 0 rgba(0,0,0,.05),0 12px 48px 16px rgba(0,0,0,.03)}.quick-menu__inner{position:relative;padding:0 12px}.quick-menu__ctrl{position:absolute;top:-1px;left:-50px;width:50px;height:50px;text-align:center;border-right:0;border-radius:3px 0 0 3px;cursor:pointer}.quick-menu__ctrl-icon{font-size:20px;line-height:49px}.result{display:block;width:72%;margin:0 auto;text-align:center}.result__icon{margin-bottom:24px;font-size:72px;line-height:72px}.result__icon-success{color:#52c41a}.result__icon-error{color:#ff4d4f}.result__title{margin-bottom:16px;color:rgba(0,0,0,.85);font-weight:500;font-size:24px;line-height:32px}.result__desc{margin-bottom:24px;color:rgba(0,0,0,.45);font-size:14px;line-height:22px}.result__extra{padding:24px 40px;text-align:left;border-radius:2px}@media screen and (max-width:480px){.result{width:100%}.result__extra{padding:18px 20px}}.result__actions{margin-top:32px}.result__actions button:not(:last-child){margin-right:8px}.reuse-tab{display:block;background-color:#fff;outline:0;user-select:none}.reuse-tab .ant-tabs-nav .ant-tabs-tab .reuse-tab__op{position:absolute;display:none;margin:0;color:rgba(0,0,0,.85);font-size:10px}.reuse-tab .ant-tabs-nav .ant-tabs-tab:hover .reuse-tab__op{display:block}.reuse-tab .ant-tabs-nav .ant-tabs-tab .reuse-tab__name-width{display:inline-block;overflow:hidden;text-overflow:ellipsis}.reuse-tab .ant-tabs>.ant-tabs-nav{margin:0}.reuse-tab__line{padding:8px;border-bottom:1px solid #d9d9d9}.reuse-tab__line .ant-tabs-nav::before{border-bottom:none}.reuse-tab__line .ant-tabs-nav .ant-tabs-tab{padding:0}.reuse-tab__line .ant-tabs-nav .ant-tabs-tab .reuse-tab__op{top:12px;right:2px}.reuse-tab__line .ant-tabs-nav .ant-tabs-tab .reuse-tab__name{display:inline-block;padding:8px 20px}.reuse-tab__card{padding-top:8px}.reuse-tab__card .ant-tabs-nav-container{padding:0 8px}.reuse-tab__card .ant-tabs-nav .ant-tabs-tab .reuse-tab__op{top:4px;right:4px}.reuse-tab__disabled{opacity:.8;pointer-events:none}.reuse-tab__cm .ant-menu{border:1px solid #e9e9e9}.g2-card__footer,.message__item,.quick-chat__reply{border-top:1px solid #f0f0f0}.tag-select{position:relative;display:block;max-height:24px;margin-left:-8px;overflow:hidden;line-height:1.66667;transition:all .3s;user-select:none}.tag-select__expanded{max-height:200px;transition:all .3s}.tag-select__has-expand{padding-right:50px}.tag-select .ant-tag{margin-right:24px;padding:0 8px}.tag-select__trigger{position:absolute;top:0;right:0}.loading-default,.onboarding__mask{position:fixed;top:0;left:0;bottom:0}.tag-select__trigger-icon{margin-left:8px;font-size:12px}.tag-select-rtl{margin-right:-8px;margin-left:0}.tag-select-rtl__has-expand{padding-right:0!important;padding-left:50px!important}.tag-select-rtl .tag-select .ant-tag{margin-right:0;margin-left:24px}.tag-select-rtl .tag-select__trigger{right:initial;left:0}.tag-select-rtl .tag-select__trigger-icon{margin-right:0;margin-left:8px}.loading-backdrop{z-index:9999;background-color:rgba(0,0,0,.15)}.loading-default{right:0;z-index:10000;display:flex;flex-direction:column;align-items:center;justify-content:center}.g2-mini-progress,.g2-pie,.pdf-container,g2,g2-bar,g2-chart,g2-custom,g2-gauge,g2-mini-area,g2-mini-bar,g2-single-bar,g2-tag-cloud,g2-timeline{display:block}.loading-default__icon{margin-bottom:8px;color:#1890ff;font-size:24px}.loading-default__text{color:#1890ff}.loading-default__custom{width:64px;height:64px;fill:#fff}.onboarding+.cdk-overlay-container{z-index:99999}.onboarding__mask{right:0;z-index:99998;background-color:#000;opacity:.5}.onboarding__item{position:absolute}.onboarding__light{position:absolute;z-index:99999;background-color:rgba(255,255,255,.9);animation:2.5s cubic-bezier(.55,.05,.6,.2) 0s infinite normal none running onboardingAnt;pointer-events:none}.g2-card,.g2-card__top,.pdf-container{position:relative}.onboarding__light-el{z-index:100000!important}.onboarding__light-ant{transition:all .3s ease-out}.onboarding__footer{margin-top:8px}.onboarding__total{color:rgba(0,0,0,.85)}.g2-card__meta,.g2-pie__legend-percent,.g2-pie__total-title{color:rgba(0,0,0,.45)}@keyframes onboardingAnt{0%,33%{box-shadow:#fff 0 0 0 2px,#fff 0 0 0}100%,66%{box-shadow:#fff 0 0 0 2px,rgba(255,255,255,.01) 0 0 0 10px}}.pdf-container{height:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}g2-bar,g2-tag-cloud{width:100%}.g2-card__top{width:100%;overflow:hidden}.g2-card__top-margin{margin-bottom:12px}.g2-card__top-has-margin{margin-bottom:20px}.g2-card__meta{height:22px;font-size:12px;line-height:22px}.g2-card__total,.g2-pie__legend-title{color:rgba(0,0,0,.85)}.g2-card__meta-wrap{float:left}.g2-card__meta-action{position:absolute;top:4px;right:0;line-height:1;cursor:pointer}.g2-card__avatar{position:relative;top:4px;float:left;margin-right:20px}.g2-card__total{height:38px;margin-top:4px;margin-bottom:0;overflow:hidden;font-size:30px;line-height:38px;white-space:nowrap;text-overflow:ellipsis;word-break:break-all}.g2-card__desc{width:100%;margin-bottom:12px}.g2-card__footer{margin-top:8px;padding-top:9px}.g2-card__footer>*{position:relative}.g2-mini-progress{position:relative;width:100%;padding:5px 0}.g2-mini-progress__wrap{position:relative;background-color:#f5f5f5}.g2-mini-progress__value{width:0;height:100%;background-color:#1890ff;border-radius:1px 0 0 1px;transition:all .4s cubic-bezier(.08,.82,.17,1) 0s}.g2-mini-progress__target{position:absolute;top:0;bottom:0}.g2-mini-progress__target-item{position:absolute;top:0;left:0;width:2px;height:4px;border-radius:100px}.g2-pie,.g2-pie__chart{position:relative}.g2-mini-progress__target-item:last-child{top:auto;bottom:0}.g2-pie__legend{position:absolute;top:50%;right:0;min-width:250px;margin:0 20px;padding:0;list-style:none;transform:translateY(-50%)}.g2-pie__legend-item{height:22px;margin-bottom:16px;line-height:22px;cursor:pointer}.g2-pie__legend-item:last-child{margin-bottom:0}.g2-pie__legend-dot{position:relative;top:-1px;display:inline-block;width:8px;height:8px;margin-right:8px;border-radius:8px}.g2-pie__legend-value{position:absolute;right:0}.g2-pie__legend-has .g2-pie__chart{width:calc(100% - 240px)}.g2-pie__legend-block .g2-pie__chart{width:100%;margin:0 0 32px}.g2-pie__legend-block .g2-pie__legend{position:relative;min-width:auto;transform:none}.g2-pie__total{position:absolute;top:50%;left:50%;height:62px;text-align:center;transform:translate(-50%,-50%)}.g2-pie__total-title{height:22px;margin-bottom:8px;font-weight:400;font-size:14px;line-height:22px}.g2-pie__total-stat{display:block;height:32px;color:rgba(0,0,0,.85);font-size:1.2em;line-height:32px;white-space:nowrap}.g2-pie__mini .g2-pie__total-title{margin-top:4px;margin-bottom:0}.g2-radar{display:block}.g2-radar__legend{margin-top:16px}.g2-radar__legend-item{position:relative;color:rgba(0,0,0,.45);line-height:22px;text-align:center;cursor:pointer}.g2-radar__legend-item::after{position:absolute;top:8px;right:0;width:1px;height:40px;content:''}.g2-radar__legend-item:last-child::after{display:none}.g2-radar__legend-dot,.g2-water-wave,.number-info,.number-info__value-text,.trend{display:inline-block}.g2-radar__legend-title{margin-top:4px;margin-bottom:0;padding-left:16px;color:rgba(0,0,0,.85);font-size:24px;line-height:32px}.g2-radar__legend-dot{position:relative;top:-1px;width:6px;height:6px;margin-right:6px;border-radius:6px}.g2-water-wave{position:relative;transform-origin:left}.g2-water-wave__desc{position:absolute;top:32px;left:0;width:100%;text-align:center}.g2-water-wave__desc-title{color:rgba(0,0,0,.45);font-size:14px;line-height:22px}.g2-water-wave__desc-percent{color:rgba(0,0,0,.85);font-size:24px;line-height:32px}.g2-water-wave__canvas{transform:scale(.5);transform-origin:0 0}.number-info__title{margin-bottom:16px;color:rgba(0,0,0,.85);font-size:14px;transition:all .3s}.number-info__title-sub{height:22px;overflow:hidden;color:rgba(0,0,0,.45);font-size:12px;line-height:22px;white-space:nowrap;text-overflow:ellipsis;word-break:break-all}.number-info__value{margin-top:4px;overflow:hidden;font-size:0;white-space:nowrap;text-overflow:ellipsis;word-break:break-all}.number-info__value-suffix{margin-left:4px;color:rgba(0,0,0,.85);font-size:16px;font-style:normal}.number-info__value-text{height:32px;color:rgba(0,0,0,.85);font-size:24px;line-height:32px}.number-info__value-sub{margin-left:32px;color:rgba(0,0,0,.45);font-size:14px;vertical-align:top}.number-info__value-sub .anticon{margin-left:4px;font-size:12px;transform:scale(.82)}.number-info__value-sub .anticon-caret-up{color:#f5222d}.number-info__value-sub .anticon-caret-down{color:#52c41a}.number-info__light .number-info__value-text{color:rgba(0,0,0,.85)}.number-info:not(:first-child){position:relative;margin-left:32px;padding-left:32px}.number-info:not(:first-child)::after{position:absolute;top:0;bottom:0;left:0;width:1px;margin:8px 0;content:''}.trend{font-size:12px;line-height:22px}.trend__down,.trend__up{position:relative;top:1px;margin-left:4px}.trend__down i,.trend__up i{font-size:12px;transform:scale(.83)}.trend__up{color:#f5222d}.trend__down{top:-1px;color:#52c41a}.trend__grey .trend__down,.trend__grey .trend__up{color:rgba(0,0,0,.85)}.trend__reverse .trend__up{color:#52c41a}.trend__reverse .trend__down{color:#f5222d}.alain-pro__menu{display:block}.alain-pro__menu-item--disabled{pointer-events:none}.alain-pro__menu-only-icon .alain-pro__menu-item{padding-right:8px!important;padding-left:8px!important}.alain-pro__menu-only-icon .alain-pro__menu-item:first-child{padding-left:0}.alain-pro__menu-only-icon .alain-pro__menu-icon{margin-right:0;font-size:16px}.alain-pro__menu-title{position:relative}.alain-pro__menu-title-badge{display:flex;justify-content:center;width:18px;height:18px;padding:0;font-size:12px;line-height:18px;background:#1890ff;border-radius:50%}.alain-pro__menu-title-badge>em{color:#fff;font-style:normal}.alain-pro__menu-img{width:14px!important;height:14px!important}.alain-pro__side-nav .alain-pro__menu-title{display:flex;align-items:center}.alain-pro__side-nav .alain-pro__menu-title-text{flex:1}.alain-pro__side-nav .ant-menu-inline-collapsed .alain-pro__menu-title-badge{position:absolute;top:0;right:-16px;width:8px;height:8px}.alain-pro__side-nav .ant-menu-inline-collapsed .alain-pro__menu-title-badge>em{display:none}.alain-pro__main{min-height:100vh;background-color:#f0f2f5}.alain-pro__main>.ant-layout-header{height:56px;line-height:56px}.alain-pro__page-header-wrapper{position:relative;display:block;margin:-24px -24px 0}.alain-pro__page-header-content{margin:24px 24px 0}.alain-pro__page-grid{display:block;width:100%;height:100%;min-height:100%;transition:.3s}.alain-pro__page-grid-wide{max-width:1200px;margin:0 auto}.alain-pro__page-grid-no-spacing{width:initial;margin:-24px -24px 0}.alain-pro__fetching-icon{display:none}.alain-pro__fetching .alain-pro__fetching-icon{display:block}@media screen and (max-width:767px){.alain-pro__page-header-content{margin:24px 10px 0}}.alain-pro__header{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;height:56px;padding:0 12px 0 0;background:#fff;box-shadow:0 1px 4px rgba(0,21,41,.08)}.alain-pro__header-logo{padding:0 24px}.alain-pro__header-right{display:flex;align-items:center;justify-items:center}.alain-pro__header-item{position:relative;display:flex;align-items:center;justify-items:center;height:56px;padding:0 12px;line-height:56px;cursor:pointer;transition:all .3s}.alain-pro__header-item-icon,.alain-pro__header-item>i{font-size:14px!important;transform:none!important}.alain-pro__header-item,.alain-pro__header-item-icon{color:rgba(0,0,0,.65)}.alain-pro__header-item:hover{background:rgba(0,0,0,.025)}.alain-pro__header-item:hover,.alain-pro__header-item:hover .alain-pro__header-item-icon{color:#000}.alain-pro__header-trigger{padding:0 24px}.alain-pro__header-trigger .alain-pro__header-item-icon{font-size:20px!important}.alain-pro__header-search:hover{background:0 0}.alain-pro__header-fixed{position:fixed;top:0;right:0;z-index:9;width:100%;transition:width .2s}.alain-pro__header-hide{opacity:0;transition:opacity .2s}@media only screen and (max-width:767px){.alain-pro__header-name{display:none}.alain-pro__header-trigger{padding:0 12px}.alain-pro__header-logo{position:relative;padding-right:12px;padding-left:12px}}layout-pro-header{z-index:1}[dir=rtl] .alain-pro__header-fixed{right:inherit;left:0}.alain-pro__top-nav{position:relative;width:100%;height:56px;padding:0 12px 0 0;box-shadow:0 1px 4px rgba(0,21,41,.08);transition:background .3s,width .2s}.alain-pro__top-nav .alain-pro__menu .ant-menu{display:flex;align-items:center;height:56px;border:none}.alain-pro__top-nav .alain-pro__menu-wrap{flex:1;padding-right:8px}.alain-pro__top-nav .alain-pro__menu-item{height:100%}.alain-pro__top-nav .alain-pro__menu-item .ant-menu-submenu-title{height:100%;padding:0 12px}.alain-pro__top-nav-main{display:flex;height:56px;padding-left:24px}.alain-pro__top-nav-main-wide{max-width:1200px;margin:auto;padding-left:4px}.alain-pro__top-nav-main-left{display:flex;flex:1}.alain-pro__top-nav-logo{width:165px}.alain-pro__top-nav-logo h1{margin:0 0 0 12px;color:#fff;font-size:16px}.alain-pro__top-nav .alain-pro__menu-title-badge{position:absolute;top:-16px;right:-16px}.alain-pro__sider,.alain-pro__sider-logo{position:relative;display:block;overflow:hidden}.alain-pro__dark .alain-pro__top-nav .alain-pro__header-item,.alain-pro__dark .alain-pro__top-nav .alain-pro__header-item-icon{color:rgba(255,255,255,.65)}.alain-pro__dark .alain-pro__top-nav .alain-pro__header-item .ant-popover-open,.alain-pro__dark .alain-pro__top-nav .alain-pro__header-item:hover{background:#1890ff}.alain-pro__light .alain-pro__sider,.alain-pro__light .alain-pro__top-nav,.quick-chat,.quick-chat__bar--title:hover{background-color:#fff}.alain-pro__dark .alain-pro__top-nav .alain-pro__header-item .ant-popover-open .alain-pro__header-item,.alain-pro__dark .alain-pro__top-nav .alain-pro__header-item .ant-popover-open .alain-pro__header-item-icon,.alain-pro__dark .alain-pro__top-nav .alain-pro__header-item:hover .alain-pro__header-item,.alain-pro__dark .alain-pro__top-nav .alain-pro__header-item:hover .alain-pro__header-item-icon{color:#fff}.alain-pro__light .alain-pro__top-nav h1{color:#002140}[dir=rtl] .alain-pro__top-nav-logo h1{margin-right:12px;margin-left:0}.alain-pro__sider{z-index:10;min-height:100vh;box-shadow:2px 0 6px rgba(0,21,41,.35)}.alain-pro__sider-logo{height:56px;padding-left:24px;line-height:56px;background:#002140;transition:all .3s}.alain-pro__sider-logo img{display:inline-block;height:32px;vertical-align:middle}.alain-pro__sider-logo h1{display:inline-block;margin:0 0 0 12px;color:#fff;font-weight:600;font-size:20px;font-family:'Myriad Pro','Helvetica Neue',Arial,Helvetica,sans-serif;vertical-align:middle;transition:all .3s}.alain-pro__sider-fixed{position:fixed;top:0;left:0}.alain-pro__sider-fixed .alain-pro__side-nav-wrap{height:calc(100vh - 56px);padding-bottom:24px;overflow-y:scroll}.alain-pro__drawer .ant-drawer-wrapper-body{height:100%;overflow:auto}.alain-pro__drawer .ant-drawer-body{height:100vh;padding:0;overflow-x:hidden}.aside-collapsed .alain-pro__sider-logo{display:flex;justify-content:center;padding:0}.aside-collapsed .alain-pro__sider-logo h1{display:none}.alain-pro__light .alain-pro__sider{box-shadow:2px 0 8px 0 rgba(29,35,41,.05)}.alain-pro__light .alain-pro__sider-logo{background:#fff;box-shadow:1px 1px 0 0 #f0f0f0}.alain-pro__light .alain-pro__sider-logo h1{color:#1890ff}[dir=rtl] .alain-pro__sider-logo{padding-right:24px;padding-left:0}[dir=rtl] .alain-pro__sider-logo h1{margin-right:12px;margin-left:0}[dir=rtl] .alain-pro__sider-fixed{right:0;left:inherit}.alain-pro__footer,[dir=rtl] .aside-collapsed .alain-pro__sider-logo{padding:0}.ant-card{transition:none}.alain-pro__header-item .ant-badge-count{position:absolute;top:24px;right:12px}.full-content__hidden-title page-header,.full-content__opened .alain-pro__sider,.full-content__opened layout-pro-header,.full-content__opened reuse-tab{display:none!important}.footer-toolbar{z-index:99;width:auto}.footer-toolbar__body .alain-pro__body{margin-bottom:56px!important}.alain-pro__menu-side .footer-toolbar{left:256px}.alain-pro__menu-top .footer-toolbar{left:0}.aside-collapsed .footer-toolbar{left:80px}.page-header{padding-right:24px;padding-left:24px}.btn-flat{background:0 0!important;border-color:transparent!important;box-shadow:none!important}.ant-dropdown-menu-item{outline:0}@page{size:a3}.brand-page-loading{position:absolute;top:0;right:0;left:0;min-height:200px}.brand-top-right{position:absolute;top:8px;right:8px}.brand-top-left{position:absolute;top:8px;left:8px}.brand-range-picker__date{display:inline-block;width:240px}.alain-pro__header-search,.setting-drawer__blockChecbox{display:flex}.setting-drawer__handle-opened{right:300px!important}.setting-drawer__blockChecbox-item{position:relative;margin-right:16px;border-radius:2px;cursor:pointer}.setting-drawer__blockChecbox-item img{width:48px}.setting-drawer__blockChecbox-selectIcon{position:absolute;top:0;right:0;width:100%;height:100%;padding-top:15px;padding-left:24px;color:#1890ff;font-weight:700;font-size:14px}.setting-drawer__handle{top:114px;width:32px;height:32px;background:rgba(0,0,0,.38)}.setting-drawer__handle-icon{font-size:16px}.setting-drawer-rtl .setting-drawer__handle-opened{right:inherit!important;left:300px!important}.alain-pro__header-search .anticon-search{font-size:16px;cursor:pointer}.alain-pro__header-search-input{width:0;overflow:hidden;background:0 0;border-radius:0;transition:width .3s,margin-left .3s}.alain-pro__header-search-input .ant-select-selection{background:0 0}.alain-pro__header-search-input input{padding-right:0;padding-left:0;background:0 0;border:0;outline:0;box-shadow:none}.alain-pro__header-search-input,.alain-pro__header-search-input:focus,.alain-pro__header-search-input:hover,.message__tools{border-bottom:1px solid #d9d9d9}.alain-pro__header-search-show:hover{background:0 0!important}.alain-pro__header-search-show .alain-pro__header-search-input{width:210px;margin-left:8px}.alain-pro__dark .alain-pro__top-nav .alain-pro__header-search-show .ant-input{color:#fff}.brand-bordered{overflow:hidden;border:1px solid rgba(24,28,33,.06)}.brand-bordered>[class*=ant-col-]::after,.brand-bordered>[class*=ant-col-]::before{position:absolute;display:block;content:''}.brand-bordered>[class*=ant-col-]::before{right:0;bottom:-1px;left:0;height:0;border-top:1px solid rgba(24,28,33,.06)}.brand-bordered>[class*=ant-col-]::after{top:0;bottom:0;left:-1px;width:0;border-left:1px solid rgba(24,28,33,.06)}.brand-border-width-2{border-width:2px!important}.brand-collapse-arrow-reverse .ant-collapse>.ant-collapse-item>.ant-collapse-header{padding-right:40px;padding-left:12px}.brand-collapse-arrow-reverse .ant-collapse>.ant-collapse-item>.ant-collapse-header .arrow{right:16px;left:unset}.dd-btn{display:block;width:24px;height:24px;line-height:24px;text-align:center;border-radius:50%;cursor:pointer}.quick-chat,.quill-editor{line-height:initial}.dd-btn:hover{background:#f5f5f5;border:1px solid #f0f0f0}.attachment-img,.img-thm{background-color:transparent}.attachment{display:flex;align-items:center;margin-bottom:8px;padding:4px;border:1px solid #e8e8e8}.attachment-icon{padding:2px;font-size:40px}.attachment-img{width:64px;height:64px;background-position:center center;background-size:cover}.img-thm,.img-thm__img{height:auto;max-width:100%}.feed__icon{position:relative}.feed__icon-tag{position:absolute;top:-6px;right:-2px}.img-thm{position:relative;display:block}.img-thm__mask{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:block;background-color:rgba(0,0,0,.3)}.img-thm__icon{position:absolute;top:50%;left:50%;z-index:3;display:block;color:#fff;font-size:32px;opacity:0}.img-thm__img{z-index:1}.img-thm__zoom-in{overflow:hidden}.img-thm__zoom-in .img-thm__icon{transform:translate(-50%,-50%) scale(.6)}.img-thm__zoom-in .img-thm__img{transition:all .3s ease-in-out}.img-thm__zoom-in:hover .img-thm__icon{transform:translate(-50%,-50%) scale(1)}.img-thm__zoom-in:hover .img-thm__img{transform:scale(1.1)}.img-thm:not(:hover):not(:focus) .img-thm__mask{opacity:0}.quill-editor.ng-dirty.ng-invalid .ql-container,.quill-editor.ng-dirty.ng-invalid .ql-toolbar{border-color:#ff4d4f}.ql-snow .ql-size .ql-picker-item[data-value="10px"]::before,.ql-snow .ql-size .ql-picker-label[data-value="10px"]::before{content:'10px'}.ql-snow .ql-size .ql-picker-item[data-value="12px"]::before,.ql-snow .ql-size .ql-picker-label[data-value="12px"]::before{content:'12px'}.ql-snow .ql-size .ql-picker-item[data-value="14px"]::before,.ql-snow .ql-size .ql-picker-label[data-value="14px"]::before{content:'14px'}.ql-snow .ql-size .ql-picker-item[data-value="16px"]::before,.ql-snow .ql-size .ql-picker-label[data-value="16px"]::before{content:'16px'}.ql-snow .ql-size .ql-picker-item[data-value="18px"]::before,.ql-snow .ql-size .ql-picker-label[data-value="18px"]::before{content:'18px'}.ql-snow .ql-size .ql-picker-item[data-value="20px"]::before,.ql-snow .ql-size .ql-picker-label[data-value="20px"]::before{content:'20px'}.ql-snow .ql-size .ql-picker-item[data-value="24px"]::before,.ql-snow .ql-size .ql-picker-label[data-value="24px"]::before{content:'24px'}app-file-manager file-manager{display:block;padding:24px;background:#fff}.file-manager{display:flex;margin-top:16px}.file-manager__header{display:flex;align-items:center;margin-top:16px;padding:0 32px 4px 12px;font-weight:700;border-bottom:2px solid rgba(0,0,0,.05)}.file-manager__header-name{flex:1}.file-manager__header-pixel{width:150px}.file-manager__header-time{width:130px}.file-manager__small .file-item{display:flex;align-items:center;width:100%;margin:0 0 2px;padding:4px 32px 4px 0;text-align:left}.file-manager__small .file-item__icon,.file-manager__small .file-item__img{display:block;width:32px;height:32px;margin:0 8px;font-size:20px;line-height:32px;text-align:center}.file-manager__small .file-item__name{flex:1}.file-manager__small .file-item__pixel{position:inherit;width:150px}.file-manager__small .file-item__pixel>span{background:0 0}.file-manager__small .file-item__time{display:block;width:130px}.file-item{position:relative;z-index:1;flex:0 0 auto;flex-shrink:0;width:9rem;margin:0 8px 8px 0;padding:16px 0 24px;text-align:center;border:1px solid transparent;cursor:pointer}.file-item:hover{border-color:rgba(0,0,0,.05)}.file-item:hover .file-item__actions{display:block}.file-item__selected{background-color:#e6f7ff!important;border-color:#1890ff!important}.course__img,.file-item__img{background-color:transparent}.file-item__selected .file-item__actions{display:block}.file-item__icon{display:block;margin:16px 0;font-size:40px}.file-item__img{display:block;width:4rem;height:4rem;margin:0 auto .75rem;font-size:2.5rem;line-height:4rem;background-position:center center;background-size:cover}.file-item__name{height:28px;padding:0 8px;overflow:hidden;color:#4e5155;line-height:28px;white-space:nowrap;text-overflow:ellipsis}.file-item__pixel{position:absolute;bottom:0;left:0;width:100%}.file-item__pixel>span{display:block;width:100%;padding:2px 0;background:rgba(0,0,0,.01)}.file-item__time{display:none}.file-item__actions{position:absolute;top:8px;right:8px;display:none}.ware__color{display:inline-block;width:12px;height:12px}.ware__imgs .se__label{padding-right:8px}.ware__imgs-wrap{display:flex;align-items:center}.ware__imgs-color{display:flex;margin:0;padding:0;list-style:none}.ware__imgs-item{position:relative;width:72px;height:72px;margin-right:16px;border:1px solid #ccc}.ware__imgs-item-img{width:70px;height:70px}.ware__imgs-item-img img{max-width:100%;max-height:100%}.ware__imgs-item-del{position:absolute;top:2px;right:4px;color:#fff;line-height:normal}.ware__imgs-item::before{position:absolute;top:24px;display:block;width:100%;color:#ccc;line-height:normal;text-align:center;content:'细节图'}.ware__imgs-item:first-child::before{content:'主图*'}.ware__imgs-item-exists::before{content:''}.faq-v1__item{display:flex;align-items:center;padding:8px}.faq-v1__item-icon{font-size:24px}.faq-v1__item-title{margin-bottom:0;font-weight:400;font-size:14px}.faq-v1__item-remark{margin-bottom:0;color:#bfbfbf}.faq-v1__item-hover{background-color:rgba(0,0,0,.02);cursor:pointer}.faq-v1__item-hover:hover{background-color:rgba(0,0,0,.04)}.faq-v1__item-hover:hover .faq__item-icon,.faq-v1__item-hover:hover .faq__item-title{color:#1890ff}.task__container{border-bottom:1px solid #f0f0f0}.task__container:last-child{border-bottom:none}.task__title{margin-bottom:16px;color:#a3a4a6;font-weight:400;font-size:12px}.task__item{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-top:1px solid rgba(24,28,33,.06)}.task__item:first-child{border-top:none}.task__item-handle{margin-right:16px;color:#bfbfbf;font-size:12px;cursor:pointer}.task__item-done{color:#a3a4a6}.message__container{position:relative}.message__sidebox{position:absolute;top:0;left:0;width:250px;height:100%;background:#f5f5f5}.message__tools{display:flex;flex-wrap:wrap;align-items:center;padding:4px 24px;border-top:1px solid #d9d9d9}.message__tools-choose{display:flex;flex:1;flex-wrap:wrap;align-items:center}.message__content{min-height:600px}.message__item{display:flex;align-items:center;padding:4px 24px}.message__item:first-child{border-top:none}.message__item-from{display:flex;align-items:center;width:160px}.message__item-subject{width:100%;color:#595959}.message__item-subject:hover{color:#1890ff}.message__item-date{color:#bfbfbf;white-space:nowrap}.message__item-unread .message__item-subject{font-weight:700}@media (min-width:768px){.message__container{padding-left:250px}}@media (max-width:767px){.message__tools-choose{flex-basis:100%}.message__item{flex-wrap:wrap}}.course__img{display:block;padding-top:60%;background-position:center center;background-size:cover;border-top-left-radius:2px;border-top-right-radius:2px}.course__star .ant-rate{font-size:10px}.chat__container{display:flex;overflow:hidden;background:#fff;border:1px solid #f0f0f0}.chat__scroll-container{position:relative;width:100%}.chat__sidebox{display:flex;flex-direction:column;width:250px;box-shadow:6px 0 16px -8px rgba(0,0,0,.08),9px 0 28px 0 rgba(0,0,0,.05),12px 0 48px 16px rgba(0,0,0,.03);transition:.2s all}.chat__contact{display:flex;align-items:center;padding:8px 16px;color:#4e5155;cursor:pointer}.chat__contact:hover:not(.chat__contact-active){background-color:rgba(24,28,33,.03)}.chat__contact .ant-badge-status-text{color:#52c41a;font-size:12px}.chat__contact-offline{opacity:.7}.chat__contact-offline .ant-badge-status-text{color:#f5222d}.chat__contact-active{background-color:#e84c64}.chat__contact-active,.chat__contact-active .ant-badge-status-text{color:#fff}.chat__user-avatar{height:40px;border-radius:50%}.chat__message{display:flex;flex-shrink:0;margin-bottom:8px}.chat__message-container{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;padding:24px}.chat__message-left{margin-right:58px}.chat__message-left .chat__message-avatar{margin-right:8px}.chat__message-right{flex-direction:row-reverse;margin-left:58px}.chat__message-right .chat__message-avatar{margin-left:8px}.chat__message-send{text-align:center}.chat__message-avatar{width:50px;text-align:center}.chat__message-text{width:100%;color:#bfbfbf;font-size:12px;text-align:center}.chat__message-time{padding-top:2px;color:#bfbfbf;font-size:12px;white-space:nowrap}.chat__message-msg{padding:4px 8px;background:#f5f5f5;border-radius:4px}.fc-antd .fc-event,.fc-antd .fc-scrollgrid,.fc-antd td,.fc-antd th{border:1px solid #f0f0f0}.chat__message-msg--name{display:block;margin-bottom:2px}[dir=rtl] .chat__message-left{margin-right:inherit;margin-left:58px}[dir=rtl] .chat__message-left .chat__message-avatar{margin-right:inherit;margin-left:8px}[dir=rtl] .chat__message-right{margin-right:inherit;margin-left:58px}[dir=rtl] .chat__message-right .chat__message-avatar{margin-right:inherit;margin-left:8px}.fc-antd a{color:inherit}.fc-antd a,.fc-antd a:hover{text-decoration:none}.fc-antd .fc-col-header-cell{padding:8px;color:rgba(0,0,0,.85)}.fc-antd .fc-day:not(.fc-axis){padding:4px}.fc-antd .fc-day.fc-day-today{background:rgba(232,232,232,.2)}.fc-antd .fc-event{background:#fff;box-shadow:0 0 8px 0 rgba(0,0,0,.055)}.fc-antd .fc-event-title-container{padding:4px 4px 4px 20px}.fc-antd .fc-event-title-container::before{position:absolute;top:50%;left:4px;display:block;width:10px;height:10px;margin-top:-5px;background:rgba(0,0,0,.2);border-radius:50%;content:' '}.fc-antd .fc-event-title{display:block;overflow:hidden;color:rgba(0,0,0,.85);white-space:nowrap;text-overflow:ellipsis}.fc-antd .fc-event.fc-not-start.fc-end .fc-event-main{padding-left:4px}.fc-antd .fc-event.fc-not-start.fc-end .fc-event-main::before{display:none}.fc-antd .fc-event-fill-primary,.fc-antd .fc-event-primary .fc-event-title-container::before{background-color:#1890ff}.fc-antd .fc-event-fill-success,.fc-antd .fc-event-success .fc-event-title-container::before{background-color:#52c41a}.fc-antd .fc-event-danger .fc-event-title-container::before,.fc-antd .fc-event-fill-danger{background-color:#f5222d}.fc-antd .fc-event-fill-warning,.fc-antd .fc-event-warning .fc-event-title-container::before{background-color:#fadb14}.fc-antd .fc-event-fill-purple,.fc-antd .fc-event-purple .fc-event-title-container::before{background-color:#722ed1}.fc-antd .fc-event-fill-magenta,.fc-antd .fc-event-magenta .fc-event-title-container::before{background-color:#eb2f96}.fc-antd .fc-popover-header{padding:8px 16px;background:#eee}.fc-antd .fc-popover-body{background:#fff}.pro-passport{display:flex;flex-basis:100%;align-items:stretch;justify-content:stretch;min-height:100vh;overflow:hidden}.pro-passport__langs{position:fixed;top:16px;left:16px;z-index:9999}.pro-passport__langs .alain-pro__header-item{height:auto;padding:0}.pro-passport__bg{padding:0 24px;background-color:transparent;background-position:center center;background-size:cover}.pro-passport__bg-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#000;opacity:.4}.pro-passport__form{padding:32px}.pro-passport__form-logo{height:32px;text-align:center}.pro-passport__form-logo img{max-height:100%}.pro-passport__form-title{margin:16px 0;color:#bfbfbf;text-align:center}@media (max-width:991px){.pro-passport__form{width:100%}}.quick-chat{position:fixed;top:auto;right:0;bottom:0;left:auto;z-index:98;display:flex;flex:1;flex-direction:column;width:320px;margin-right:30px;border:1px solid #f0f0f0;border-bottom:none;border-radius:4px 4px 0 0;box-shadow:0 16px 24px 2px rgba(0,0,0,.14)}.quick-chat__bar{display:flex;flex-direction:row;align-items:center;height:32px;border-bottom:1px solid #f0f0f0;cursor:pointer;user-select:none}.quick-chat__bar--title{flex:1;height:32px;padding-left:16px;font-size:14px;line-height:32px}.quick-chat__bar--title-has-message{animation:antSwingIn 1.5s infinite}.quick-chat__bar--menu{display:flex;align-items:center;height:32px}.quick-chat__bar--menu .anticon{font-size:18px}.quick-chat__bar--close{padding:0 16px 0 8px}.quick-chat__body{max-height:370px;transition:max-height .5s cubic-bezier(0,1,0,1)}.quick-chat__content{position:relative;display:flex;flex-direction:column;height:320px}.app-dd__op,.quick-chat .chat__message{align-items:center}.quick-chat__content .chat__scroll-container{display:block}.quick-chat__reply{height:50px;padding:8px}.quick-chat__reply--ipt{display:block;width:100%;height:100%;background:0 0;border:none;outline:0}.quick-chat .chat__message-avatar{width:28px}.quick-chat .chat__user-avatar{height:20px}.quick-chat__collapsed .quick-chat__body{max-height:0}.quick-chat__collapsed .quick-chat__body .chat__scroll-container{display:none}[dir=rtl] .quick-chat{right:inherit;left:0;margin-right:inherit;margin-left:30px}[dir=rtl] .quick-chat__bar--title{padding-right:16px;padding-left:0}.app-dd{position:relative;display:block}.app-dd__op{position:absolute;top:-24px;right:24px;z-index:99;display:flex;justify-content:center}.app-dd__op-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;margin-left:8px;color:#fff;background:rgba(0,0,0,.4);border-radius:0 0 4px 4px;cursor:pointer;pointer-events:auto}.app-dd__op-btn:hover{background:rgba(0,0,0,.3)}.app-dd__ph{opacity:.3}.app-dd__item{position:relative;display:block}.app-dd__item-btn{position:absolute;top:8px;right:8px;display:none;align-items:center;justify-content:center;width:32px;height:32px;background:rgba(0,0,0,.02);cursor:pointer}.app-dd__item:hover .app-dd__item-refresh{display:flex}.app-dd__item-design{opacity:.8;user-select:none}.app-dd__item-design .app-dd__item-handle{display:flex!important;background:rgba(0,0,0,.1)}.app-dd__item-design .app-dd__item-refresh{display:none!important}.app-dd__item.cdk-drag-preview{border-radius:4px;box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.app-dd__item.cdk-drag-animating{transition:transform 250ms cubic-bezier(0,0,.2,1)}
\ No newline at end of file
diff --git a/src/assets/style.dark.css b/src/assets/style.dark.css
new file mode 100644
index 00000000..1f6b0101
--- /dev/null
+++ b/src/assets/style.dark.css
@@ -0,0 +1 @@
+.ant-alert,body{font-variant:tabular-nums;font-size:14px}body,h1,h2,h3,h4,h5,h6{color:rgba(255,255,255,.85)}.ant-alert-close-icon,.ant-back-top,.ant-btn,.anticon[tabindex],a{cursor:pointer}dl,h1,h2,h3,h4,h5,h6,ol,p,pre,ul{margin-top:0}address,dl,ol,p,pre,ul{margin-bottom:1em}.ant-avatar,img{vertical-align:middle}.ant-btn,[role=button],a,area,button,input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}.ant-picker-content,table{border-collapse:collapse}button,hr,input{overflow:visible}pre,textarea{overflow:auto}dd,h1,h2,h3,h4,h5,h6,legend{margin-bottom:.5em}.ant-badge-status,progress,sub,sup{vertical-align:baseline}[ant-click-animating-without-extra-node=true],[ant-click-animating=true],sub,sup{position:relative}.ant-carousel .slick-slider,.cdk-overlay-backdrop,html{-webkit-tap-highlight-color:transparent}.ant-alert.ant-alert-rtl,.ant-anchor-rtl,.ant-back-top-rtl,.ant-badge-rtl{direction:rtl}[class*=ant-] input::-ms-clear,[class*=ant-] input::-ms-reveal,[class*=ant-]::-ms-clear,[class^=ant-] input::-ms-clear,[class^=ant-] input::-ms-reveal,[class^=ant-]::-ms-clear{display:none}body,html{width:100%;height:100%}input::-ms-clear,input::-ms-reveal{display:none}*,::after,::before{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;--antd-wave-shadow-color:#177ddc;--scroll-bar:0}.ant-pagination-item,body{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'}@-ms-viewport{width:device-width}body{margin:0;line-height:1.5715;background-color:#000;font-feature-settings:tnum}[tabindex='-1']:focus{outline:0!important}hr{box-sizing:content-box;height:0}h1,h2,h3,h4,h5,h6{font-weight:500}abbr[data-original-title],abbr[title]{text-decoration:underline;text-decoration:underline dotted;border-bottom:0;cursor:help}address{font-style:normal;line-height:inherit}.font-italic,dfn{font-style:italic}input[type=number],input[type=text],input[type=password],textarea{-webkit-appearance:none}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:500}dd{margin-left:0}blockquote,figure{margin:0 0 1em}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{font-size:75%;line-height:0}sub{bottom:-.25em}sup{top:-.5em}a{color:#177ddc;text-decoration:none;background-color:transparent;outline:0;transition:color .3s;-webkit-text-decoration-skip:objects}a:hover{color:#165996}a:active{color:#388ed3}a:active,a:focus,a:hover{text-decoration:none;outline:0}a[disabled]{color:rgba(255,255,255,.3);cursor:not-allowed}code,kbd,pre,samp{font-size:1em;font-family:SFMono-Regular,Consolas,'Liberation Mono',Menlo,Courier,monospace}img{border-style:none}svg:not(:root){overflow:hidden}caption{padding-top:.75em;padding-bottom:.3em;color:rgba(255,255,255,.45);text-align:left;caption-side:bottom}button,input,optgroup,select,textarea{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=radio],input[type=checkbox]{box-sizing:border-box;padding:0}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:listbox}textarea{resize:vertical}fieldset{min-width:0;margin:0;padding:0}legend{display:block;width:100%;max-width:100%;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}[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}.ant-input-number-handler-down-inner,.ant-input-number-handler-up-inner,.ant-select-arrow,.ant-select-multiple .ant-select-selection-item-remove,.anticon{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-style:normal}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}.clearfix::after,.clearfix::before{display:table;content:''}mark{padding:.2em;background-color:#2b2611}::selection{color:#fff;background:#177ddc}.clearfix::after{clear:both}.anticon,.anticon svg{display:inline-block}.anticon{color:inherit;line-height:0;text-align:center;text-transform:none;vertical-align:-.125em}.anticon>*{line-height:1}.anticon::before{display:none}.anticon .anticon-icon{display:block}.anticon-spin,.anticon-spin::before{display:inline-block;animation:loadingCircle 1s infinite linear}.ant-fade-appear,.ant-fade-enter,.ant-fade-leave{animation-timing-function:linear}.ant-fade-appear,.ant-fade-enter,.ant-fade-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-fade-appear.ant-fade-appear-active,.ant-fade-enter.ant-fade-enter-active{animation-name:antFadeIn;animation-play-state:running}.ant-fade-leave.ant-fade-leave-active{animation-name:antFadeOut;animation-play-state:running;pointer-events:none}.ant-fade-appear,.ant-fade-enter{opacity:0}@keyframes antFadeIn{0%{opacity:0}100%{opacity:1}}@keyframes antFadeOut{0%{opacity:1}100%{opacity:0}}.ant-move-up-appear,.ant-move-up-enter,.ant-move-up-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-move-up-appear.ant-move-up-appear-active,.ant-move-up-enter.ant-move-up-enter-active{animation-name:antMoveUpIn;animation-play-state:running}.ant-move-up-leave.ant-move-up-leave-active{animation-name:antMoveUpOut;animation-play-state:running;pointer-events:none}.ant-move-up-appear,.ant-move-up-enter{opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-move-up-leave{animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.ant-move-down-appear,.ant-move-down-enter,.ant-move-down-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-move-down-appear.ant-move-down-appear-active,.ant-move-down-enter.ant-move-down-enter-active{animation-name:antMoveDownIn;animation-play-state:running}.ant-move-down-leave.ant-move-down-leave-active{animation-name:antMoveDownOut;animation-play-state:running;pointer-events:none}.ant-move-down-appear,.ant-move-down-enter{opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-move-down-leave{animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.ant-move-left-appear,.ant-move-left-enter,.ant-move-left-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-move-left-appear.ant-move-left-appear-active,.ant-move-left-enter.ant-move-left-enter-active{animation-name:antMoveLeftIn;animation-play-state:running}.ant-move-left-leave.ant-move-left-leave-active{animation-name:antMoveLeftOut;animation-play-state:running;pointer-events:none}.ant-move-left-appear,.ant-move-left-enter{opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-move-left-leave{animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.ant-move-right-appear,.ant-move-right-enter,.ant-move-right-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-move-right-appear.ant-move-right-appear-active,.ant-move-right-enter.ant-move-right-enter-active{animation-name:antMoveRightIn;animation-play-state:running}.ant-move-right-leave.ant-move-right-leave-active{animation-name:antMoveRightOut;animation-play-state:running;pointer-events:none}.ant-move-right-appear,.ant-move-right-enter{opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-move-right-leave{animation-timing-function:cubic-bezier(.6,.04,.98,.34)}@keyframes antMoveDownIn{0%{transform:translateY(100%);transform-origin:0 0;opacity:0}100%{transform:translateY(0);transform-origin:0 0;opacity:1}}@keyframes antMoveDownOut{0%{transform:translateY(0);transform-origin:0 0;opacity:1}100%{transform:translateY(100%);transform-origin:0 0;opacity:0}}@keyframes antMoveLeftIn{0%{transform:translateX(-100%);transform-origin:0 0;opacity:0}100%{transform:translateX(0);transform-origin:0 0;opacity:1}}@keyframes antMoveLeftOut{0%{transform:translateX(0);transform-origin:0 0;opacity:1}100%{transform:translateX(-100%);transform-origin:0 0;opacity:0}}@keyframes antMoveRightIn{0%{transform:translateX(100%);transform-origin:0 0;opacity:0}100%{transform:translateX(0);transform-origin:0 0;opacity:1}}@keyframes antMoveRightOut{0%{transform:translateX(0);transform-origin:0 0;opacity:1}100%{transform:translateX(100%);transform-origin:0 0;opacity:0}}@keyframes antMoveUpIn{0%{transform:translateY(-100%);transform-origin:0 0;opacity:0}100%{transform:translateY(0);transform-origin:0 0;opacity:1}}@keyframes antMoveUpOut{0%{transform:translateY(0);transform-origin:0 0;opacity:1}100%{transform:translateY(-100%);transform-origin:0 0;opacity:0}}@keyframes loadingCircle{100%{transform:rotate(360deg)}}.ant-click-animating-node,[ant-click-animating-without-extra-node=true]::after{position:absolute;top:0;right:0;bottom:0;left:0;display:block;border-radius:inherit;box-shadow:0 0 0 0 #177ddc;box-shadow:0 0 0 0 var(--antd-wave-shadow-color);opacity:.2;animation:fadeEffect 2s cubic-bezier(.08,.82,.17,1),waveEffect .4s cubic-bezier(.08,.82,.17,1);animation-fill-mode:forwards;content:'';pointer-events:none}@keyframes waveEffect{100%{box-shadow:0 0 0 #177ddc;box-shadow:0 0 0 6px var(--antd-wave-shadow-color)}}@keyframes fadeEffect{100%{opacity:0}}.ant-slide-up-appear,.ant-slide-up-enter,.ant-slide-up-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-slide-up-appear.ant-slide-up-appear-active,.ant-slide-up-enter.ant-slide-up-enter-active{animation-name:antSlideUpIn;animation-play-state:running}.ant-slide-up-leave.ant-slide-up-leave-active{animation-name:antSlideUpOut;animation-play-state:running;pointer-events:none}.ant-slide-up-appear,.ant-slide-up-enter{opacity:0;animation-timing-function:cubic-bezier(.23,1,.32,1)}.ant-slide-up-leave{animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.ant-slide-down-appear,.ant-slide-down-enter,.ant-slide-down-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-slide-down-appear.ant-slide-down-appear-active,.ant-slide-down-enter.ant-slide-down-enter-active{animation-name:antSlideDownIn;animation-play-state:running}.ant-slide-down-leave.ant-slide-down-leave-active{animation-name:antSlideDownOut;animation-play-state:running;pointer-events:none}.ant-slide-down-appear,.ant-slide-down-enter{opacity:0;animation-timing-function:cubic-bezier(.23,1,.32,1)}.ant-slide-down-leave{animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.ant-slide-left-appear,.ant-slide-left-enter,.ant-slide-left-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-slide-left-appear.ant-slide-left-appear-active,.ant-slide-left-enter.ant-slide-left-enter-active{animation-name:antSlideLeftIn;animation-play-state:running}.ant-slide-left-leave.ant-slide-left-leave-active{animation-name:antSlideLeftOut;animation-play-state:running;pointer-events:none}.ant-slide-left-appear,.ant-slide-left-enter{opacity:0;animation-timing-function:cubic-bezier(.23,1,.32,1)}.ant-slide-left-leave{animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.ant-slide-right-appear,.ant-slide-right-enter,.ant-slide-right-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-slide-right-appear.ant-slide-right-appear-active,.ant-slide-right-enter.ant-slide-right-enter-active{animation-name:antSlideRightIn;animation-play-state:running}.ant-slide-right-leave.ant-slide-right-leave-active{animation-name:antSlideRightOut;animation-play-state:running;pointer-events:none}.ant-slide-right-appear,.ant-slide-right-enter{opacity:0;animation-timing-function:cubic-bezier(.23,1,.32,1)}.ant-slide-right-leave{animation-timing-function:cubic-bezier(.755,.05,.855,.06)}@keyframes antSlideUpIn{0%{transform:scaleY(.8);transform-origin:0 0;opacity:0}100%{transform:scaleY(1);transform-origin:0 0;opacity:1}}@keyframes antSlideUpOut{0%{transform:scaleY(1);transform-origin:0 0;opacity:1}100%{transform:scaleY(.8);transform-origin:0 0;opacity:0}}@keyframes antSlideDownIn{0%{transform:scaleY(.8);transform-origin:100% 100%;opacity:0}100%{transform:scaleY(1);transform-origin:100% 100%;opacity:1}}@keyframes antSlideDownOut{0%{transform:scaleY(1);transform-origin:100% 100%;opacity:1}100%{transform:scaleY(.8);transform-origin:100% 100%;opacity:0}}@keyframes antSlideLeftIn{0%{transform:scaleX(.8);transform-origin:0 0;opacity:0}100%{transform:scaleX(1);transform-origin:0 0;opacity:1}}@keyframes antSlideLeftOut{0%{transform:scaleX(1);transform-origin:0 0;opacity:1}100%{transform:scaleX(.8);transform-origin:0 0;opacity:0}}@keyframes antSlideRightIn{0%{transform:scaleX(.8);transform-origin:100% 0;opacity:0}100%{transform:scaleX(1);transform-origin:100% 0;opacity:1}}@keyframes antSlideRightOut{0%{transform:scaleX(1);transform-origin:100% 0;opacity:1}100%{transform:scaleX(.8);transform-origin:100% 0;opacity:0}}.ant-zoom-appear,.ant-zoom-enter,.ant-zoom-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-zoom-appear.ant-zoom-appear-active,.ant-zoom-enter.ant-zoom-enter-active{animation-name:antZoomIn;animation-play-state:running}.ant-zoom-leave.ant-zoom-leave-active{animation-name:antZoomOut;animation-play-state:running;pointer-events:none}.ant-zoom-appear,.ant-zoom-enter{transform:scale(0);opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-zoom-appear-prepare,.ant-zoom-enter-prepare{transform:none}.ant-zoom-leave{animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-big-appear,.ant-zoom-big-enter,.ant-zoom-big-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-zoom-big-appear.ant-zoom-big-appear-active,.ant-zoom-big-enter.ant-zoom-big-enter-active{animation-name:antZoomBigIn;animation-play-state:running}.ant-zoom-big-leave.ant-zoom-big-leave-active{animation-name:antZoomBigOut;animation-play-state:running;pointer-events:none}.ant-zoom-big-appear,.ant-zoom-big-enter{transform:scale(0);opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-zoom-big-appear-prepare,.ant-zoom-big-enter-prepare{transform:none}.ant-zoom-big-leave{animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-big-fast-appear,.ant-zoom-big-fast-enter,.ant-zoom-big-fast-leave{animation-duration:.1s;animation-fill-mode:both;animation-play-state:paused}.ant-zoom-big-fast-appear.ant-zoom-big-fast-appear-active,.ant-zoom-big-fast-enter.ant-zoom-big-fast-enter-active{animation-name:antZoomBigIn;animation-play-state:running}.ant-zoom-big-fast-leave.ant-zoom-big-fast-leave-active{animation-name:antZoomBigOut;animation-play-state:running;pointer-events:none}.ant-zoom-big-fast-appear,.ant-zoom-big-fast-enter{transform:scale(0);opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-zoom-big-fast-appear-prepare,.ant-zoom-big-fast-enter-prepare{transform:none}.ant-zoom-big-fast-leave{animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-up-appear,.ant-zoom-up-enter,.ant-zoom-up-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-zoom-up-appear.ant-zoom-up-appear-active,.ant-zoom-up-enter.ant-zoom-up-enter-active{animation-name:antZoomUpIn;animation-play-state:running}.ant-zoom-up-leave.ant-zoom-up-leave-active{animation-name:antZoomUpOut;animation-play-state:running;pointer-events:none}.ant-zoom-up-appear,.ant-zoom-up-enter{transform:scale(0);opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-zoom-up-appear-prepare,.ant-zoom-up-enter-prepare{transform:none}.ant-zoom-up-leave{animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-down-appear,.ant-zoom-down-enter,.ant-zoom-down-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-zoom-down-appear.ant-zoom-down-appear-active,.ant-zoom-down-enter.ant-zoom-down-enter-active{animation-name:antZoomDownIn;animation-play-state:running}.ant-zoom-down-leave.ant-zoom-down-leave-active{animation-name:antZoomDownOut;animation-play-state:running;pointer-events:none}.ant-zoom-down-appear,.ant-zoom-down-enter{transform:scale(0);opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-zoom-down-appear-prepare,.ant-zoom-down-enter-prepare{transform:none}.ant-zoom-down-leave{animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-left-appear,.ant-zoom-left-enter,.ant-zoom-left-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-zoom-left-appear.ant-zoom-left-appear-active,.ant-zoom-left-enter.ant-zoom-left-enter-active{animation-name:antZoomLeftIn;animation-play-state:running}.ant-zoom-left-leave.ant-zoom-left-leave-active{animation-name:antZoomLeftOut;animation-play-state:running;pointer-events:none}.ant-zoom-left-appear,.ant-zoom-left-enter{transform:scale(0);opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-zoom-left-appear-prepare,.ant-zoom-left-enter-prepare{transform:none}.ant-zoom-left-leave{animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-right-appear,.ant-zoom-right-enter,.ant-zoom-right-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-zoom-right-appear.ant-zoom-right-appear-active,.ant-zoom-right-enter.ant-zoom-right-enter-active{animation-name:antZoomRightIn;animation-play-state:running}.ant-zoom-right-leave.ant-zoom-right-leave-active{animation-name:antZoomRightOut;animation-play-state:running;pointer-events:none}.ant-zoom-right-appear,.ant-zoom-right-enter{transform:scale(0);opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-zoom-right-appear-prepare,.ant-zoom-right-enter-prepare{transform:none}.ant-zoom-right-leave{animation-timing-function:cubic-bezier(.78,.14,.15,.86)}@keyframes antZoomIn{0%{transform:scale(.2);opacity:0}100%{transform:scale(1);opacity:1}}@keyframes antZoomOut{0%{transform:scale(1)}100%{transform:scale(.2);opacity:0}}@keyframes antZoomBigIn{0%{transform:scale(.8);opacity:0}100%{transform:scale(1);opacity:1}}@keyframes antZoomBigOut{0%{transform:scale(1)}100%{transform:scale(.8);opacity:0}}@keyframes antZoomUpIn{0%{transform:scale(.8);transform-origin:50% 0;opacity:0}100%{transform:scale(1);transform-origin:50% 0}}@keyframes antZoomUpOut{0%{transform:scale(1);transform-origin:50% 0}100%{transform:scale(.8);transform-origin:50% 0;opacity:0}}@keyframes antZoomLeftIn{0%{transform:scale(.8);transform-origin:0 50%;opacity:0}100%{transform:scale(1);transform-origin:0 50%}}@keyframes antZoomLeftOut{0%{transform:scale(1);transform-origin:0 50%}100%{transform:scale(.8);transform-origin:0 50%;opacity:0}}@keyframes antZoomRightIn{0%{transform:scale(.8);transform-origin:100% 50%;opacity:0}100%{transform:scale(1);transform-origin:100% 50%}}@keyframes antZoomRightOut{0%{transform:scale(1);transform-origin:100% 50%}100%{transform:scale(.8);transform-origin:100% 50%;opacity:0}}@keyframes antZoomDownIn{0%{transform:scale(.8);transform-origin:50% 100%;opacity:0}100%{transform:scale(1);transform-origin:50% 100%}}@keyframes antZoomDownOut{0%{transform:scale(1);transform-origin:50% 100%}100%{transform:scale(.8);transform-origin:50% 100%;opacity:0}}.ant-motion-collapse-legacy{overflow:hidden}.ant-motion-collapse-legacy-active{transition:height .2s cubic-bezier(.645,.045,.355,1),opacity .2s cubic-bezier(.645,.045,.355,1)!important}.ant-motion-collapse{overflow:hidden;transition:height .2s cubic-bezier(.645,.045,.355,1),opacity .2s cubic-bezier(.645,.045,.355,1)!important}.cdk-overlay-container{pointer-events:none;top:0;left:0;height:100%;width:100%;position:fixed;z-index:1000}.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-backdrop{top:0;bottom:0;left:0;right:0;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0;position:absolute;pointer-events:auto;z-index:1000}.cdk-overlay-backdrop.ant-modal-mask{opacity:1}.cdk-overlay-pane{position:absolute;pointer-events:auto;z-index:1000}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}.cdk-global-scrollblock body{overflow-x:visible}.nz-overlay-transparent-backdrop,.nz-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0}.nz-animate-disabled.ant-drawer.ant-drawer-open .ant-drawer-mask,.nz-animate-disabled.ant-scroll-number-only{animation:none;transition:none}.nz-animate-disabled.ant-drawer>*{transition:none}.nz-animate-disabled .ant-modal,.nz-animate-disabled .ant-modal-mask,.nz-animate-disabled .ant-modal-mask.zoom-enter,.nz-animate-disabled .ant-modal-mask.zoom-enter-active,.nz-animate-disabled .ant-modal-mask.zoom-leave,.nz-animate-disabled .ant-modal-mask.zoom-leave-active,.nz-animate-disabled .ant-modal.zoom-enter,.nz-animate-disabled .ant-modal.zoom-enter-active,.nz-animate-disabled .ant-modal.zoom-leave,.nz-animate-disabled .ant-modal.zoom-leave-active{animation:none;transition:none}.nz-animate-disabled.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow svg,.nz-animate-disabled.ant-menu,.nz-animate-disabled.ant-menu .ant-menu-item,.nz-animate-disabled.ant-menu .ant-menu-item .anticon,.nz-animate-disabled.ant-menu .ant-menu-item .anticon+span,.nz-animate-disabled.ant-menu .ant-menu-submenu-title,.nz-animate-disabled.ant-menu .ant-menu-submenu-title .anticon,.nz-animate-disabled.ant-menu .ant-menu-submenu-title .anticon+span,.nz-animate-disabled.ant-tabs .ant-tabs-bottom-content.ant-tabs-content-animated,.nz-animate-disabled.ant-tabs .ant-tabs-bottom-content>.ant-tabs-tabpane,.nz-animate-disabled.ant-tabs .ant-tabs-top-content.ant-tabs-content-animated,.nz-animate-disabled.ant-tabs .ant-tabs-top-content>.ant-tabs-tabpane,.nz-animate-disabled.ant-tabs.ant-tabs-bottom .ant-tabs-ink-bar-animated,.nz-animate-disabled.ant-tabs.ant-tabs-left .ant-tabs-ink-bar-animated,.nz-animate-disabled.ant-tabs.ant-tabs-right .ant-tabs-ink-bar-animated,.nz-animate-disabled.ant-tabs.ant-tabs-top .ant-tabs-ink-bar-animated{transition:none}.ant-affix{position:fixed;z-index:10}.ant-alert,.ant-anchor{line-height:1.5715;position:relative;list-style:none}nz-affix{display:block}.ant-alert{box-sizing:border-box;margin:0;color:rgba(255,255,255,.85);font-feature-settings:tnum;display:flex;align-items:center;padding:8px 15px;word-wrap:break-word;border-radius:2px}.ant-alert-content{flex:1;min-width:0}.ant-alert-icon{margin-right:8px}.ant-alert-description{display:none;font-size:14px;line-height:22px}.ant-alert-success{background-color:#162312;border:1px solid #274916}.ant-alert-success .ant-alert-icon{color:#49aa19}.ant-alert-info{background-color:#111b26;border:1px solid #153450}.ant-alert-info .ant-alert-icon{color:#177ddc}.ant-alert-warning{background-color:#2b2111;border:1px solid #594214}.ant-alert-warning .ant-alert-icon{color:#d89614}.ant-alert-error{background-color:#2a1215;border:1px solid #58181c}.ant-alert-error .ant-alert-icon{color:#a61d24}.ant-alert-error .ant-alert-description>pre{margin:0;padding:0}.ant-alert-action{margin-left:8px}.ant-alert-close-icon{margin-left:8px;padding:0;overflow:hidden;font-size:12px;line-height:12px;background-color:transparent;border:none;outline:0}.ant-alert-close-icon .anticon-close{color:rgba(255,255,255,.45);transition:color .3s}.ant-alert-close-icon .anticon-close:hover{color:rgba(255,255,255,.75)}.ant-alert-close-text{color:rgba(255,255,255,.45);transition:color .3s}.ant-alert-close-text:hover{color:rgba(255,255,255,.75)}.ant-alert-message,.ant-alert-with-description .ant-alert-message,.ant-anchor,.ant-anchor-link-title,.ant-back-top{color:rgba(255,255,255,.85)}.ant-alert-with-description{align-items:flex-start;padding:15px 15px 15px 24px}.ant-alert-with-description.ant-alert-no-icon{padding:15px}.ant-alert-with-description .ant-alert-icon{margin-right:15px;font-size:24px}.ant-alert-with-description .ant-alert-message{display:block;margin-bottom:4px;font-size:16px}.ant-anchor,.ant-avatar{font-size:14px;font-variant:tabular-nums;font-feature-settings:tnum;box-sizing:border-box}.ant-alert-with-description .ant-alert-description{display:block}.ant-alert.ant-alert-motion-leave{overflow:hidden;opacity:1;transition:max-height .3s cubic-bezier(.78,.14,.15,.86),opacity .3s cubic-bezier(.78,.14,.15,.86),padding-top .3s cubic-bezier(.78,.14,.15,.86),padding-bottom .3s cubic-bezier(.78,.14,.15,.86),margin-bottom .3s cubic-bezier(.78,.14,.15,.86)}.ant-alert.ant-alert-motion-leave-active{max-height:0;margin-bottom:0!important;padding-top:0;padding-bottom:0;opacity:0}.ant-alert-banner{margin-bottom:0;border:0;border-radius:0}.ant-alert-rtl.ant-alert.ant-alert-no-icon{padding:8px 15px}.ant-alert-rtl .ant-alert-icon{margin-right:auto;margin-left:8px}.ant-alert-rtl .ant-alert-action,.ant-alert-rtl .ant-alert-close-icon{margin-right:8px;margin-left:auto}.ant-alert-rtl.ant-alert-with-description .ant-alert-icon{margin-right:auto;margin-left:15px}nz-alert{display:block}.ant-anchor{margin:0;padding:0 0 0 2px}.ant-anchor-wrapper{margin-left:-4px;padding-left:4px;overflow:auto;background-color:transparent}.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:#303030;content:' '}.ant-anchor-ink-ball{position:absolute;left:50%;display:none;width:8px;height:8px;background-color:#141414;border:2px solid #177ddc;border-radius:8px;transform:translateX(-50%);transition:top .3s ease-in-out}.ant-anchor-link-title,.ant-avatar{position:relative;overflow:hidden;white-space:nowrap}.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{display:block;margin-bottom:6px;text-overflow:ellipsis;transition:all .3s}.ant-anchor-link-title:only-child{margin-bottom:0}.ant-anchor-link-active>.ant-anchor-link-title{color:#177ddc}.ant-anchor-link .ant-anchor-link{padding-top:5px;padding-bottom:5px}.ant-anchor-rtl.ant-anchor-wrapper{margin-right:-4px;margin-left:0;padding-right:4px;padding-left:0}.ant-avatar,.ant-avatar-lg.ant-avatar-icon>.anticon,.ant-avatar-sm.ant-avatar-icon>.anticon,.ant-avatar.ant-avatar-icon>.anticon{margin:0}.ant-anchor-rtl .ant-anchor-ink{right:0;left:auto}.ant-anchor-rtl .ant-anchor-ink-ball{right:50%;left:0;transform:translateX(50%)}.ant-anchor-rtl .ant-anchor-link{padding:7px 16px 7px 0}nz-link{display:block}.ant-avatar{padding:0;list-style:none;display:inline-block;color:#fff;text-align:center;background:rgba(255,255,255,.3);width:32px;height:32px;line-height:32px;border-radius:50%}.ant-avatar-lg-string,.ant-avatar-sm-string,.ant-avatar-string{position:absolute;left:50%;transform-origin:0 center}.ant-avatar-image{background:0 0}.ant-avatar .ant-image-img{display:block}.ant-avatar.ant-avatar-icon{font-size:18px}.ant-avatar-lg{width:40px;height:40px;line-height:40px;border-radius:50%}.ant-avatar-lg.ant-avatar-icon{font-size:24px}.ant-avatar-sm.ant-avatar-icon,.ant-back-top{font-size:14px}.ant-avatar-sm{width:24px;height:24px;line-height:24px;border-radius:50%}.ant-avatar-square{border-radius:2px}.ant-avatar>img{display:block;width:100%;height:100%;object-fit:cover}.ant-avatar-group,.ant-btn-group{display:inline-flex}.ant-avatar-group .ant-avatar{border:1px solid #fff}.ant-avatar-group .ant-avatar:not(:first-child){margin-left:-8px}.ant-avatar-group-popover .ant-avatar+.ant-avatar{margin-left:3px}.ant-avatar-group-rtl .ant-avatar:not(:first-child){margin-right:-8px;margin-left:0}.ant-avatar-group-popover.ant-popover-rtl .ant-avatar+.ant-avatar{margin-right:3px;margin-left:0}.ant-back-top,.ant-badge{margin:0;padding:0;font-variant:tabular-nums;font-feature-settings:tnum;list-style:none}.ant-back-top{box-sizing:border-box;line-height:1.5715;position:fixed;right:100px;bottom:50px;z-index:10;width:40px;height:40px}.ant-back-top:empty{display:none}.ant-badge,.ant-badge-status-dot{display:inline-block;position:relative}.ant-back-top-rtl{right:auto;left:100px}.ant-back-top-content{width:40px;height:40px;overflow:hidden;color:#fff;text-align:center;background-color:rgba(255,255,255,.45);border-radius:20px;transition:all .3s}.ant-back-top-content:hover{background-color:rgba(255,255,255,.85);transition:all .3s}.ant-badge-count,.ant-badge-dot{background:#a61d24;box-shadow:0 0 0 1px #141414}.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}}.ant-badge{box-sizing:border-box;color:rgba(255,255,255,.85);font-size:14px;line-height:1}.ant-badge-count{z-index:auto;min-width:20px;height:20px;padding:0 6px;color:#fff;font-weight:400;font-size:12px;line-height:20px;white-space:nowrap;text-align:center;border-radius:10px}.ant-badge-count a,.ant-badge-count a:hover{color:#fff}.ant-badge-count-sm{min-width:14px;height:14px;padding:0;font-size:12px;line-height:14px;border-radius:7px}.ant-badge-multiple-words,.ant-ribbon{padding:0 8px}.ant-badge-dot,.ant-spin-dot-item,.g2-card__avatar img{border-radius:100%}.ant-badge-dot{z-index:auto;width:6px;min-width:6px;height:6px}.ant-badge .ant-scroll-number-custom-component,.ant-badge-count,.ant-badge-dot{position:absolute;top:0;right:0;transform:translate(50%,-50%);transform-origin:100% 0}.ant-badge .ant-scroll-number-custom-component.anticon-spin,.ant-badge-count.anticon-spin,.ant-badge-dot.anticon-spin{animation:antBadgeLoadingCircle 1s infinite linear}.ant-badge-status{line-height:inherit}.ant-badge-not-a-wrapper:not(.ant-badge-status),.ant-badge-status-dot{vertical-align:middle}.ant-badge-status-dot{top:-1px;width:6px;height:6px;border-radius:50%}.ant-badge-status-success{background-color:#49aa19}.ant-badge-status-processing{position:relative;background-color:#177ddc}.ant-badge-status-processing::after{position:absolute;top:0;left:0;width:100%;height:100%;border:1px solid #177ddc;border-radius:50%;animation:antStatusProcessing 1.2s infinite ease-in-out;content:''}.ant-badge-status-default{background-color:#d9d9d9}.ant-badge-status-error{background-color:#a61d24}.ant-badge-status-warning{background-color:#d89614}.ant-badge-status-magenta,.ant-badge-status-pink{background:#cb2b83}.ant-badge-status-red{background:#d32029}.ant-badge-status-volcano{background:#d84a1b}.ant-badge-status-orange{background:#d87a16}.ant-badge-status-yellow{background:#d8bd14}.ant-badge-status-gold{background:#d89614}.ant-badge-status-cyan{background:#13a8a8}.ant-badge-status-lime{background:#8bbb11}.ant-badge-status-green{background:#49aa19}.ant-badge-status-blue{background:#177ddc}.ant-badge-status-geekblue{background:#2b4acb}.ant-badge-status-purple{background:#642ab5}.ant-badge-status-text{margin-left:8px;color:rgba(255,255,255,.85);font-size:14px}.ant-badge-zoom-appear,.ant-badge-zoom-enter{animation:antZoomBadgeIn .3s cubic-bezier(.12,.4,.29,1.46);animation-fill-mode:both}.ant-badge-zoom-leave{animation:antZoomBadgeOut .3s cubic-bezier(.71,-.46,.88,.6);animation-fill-mode:both}.ant-badge-not-a-wrapper .ant-badge-zoom-appear,.ant-badge-not-a-wrapper .ant-badge-zoom-enter{animation:antNoWrapperZoomBadgeIn .3s cubic-bezier(.12,.4,.29,1.46)}.ant-badge-not-a-wrapper .ant-badge-zoom-leave{animation:antNoWrapperZoomBadgeOut .3s cubic-bezier(.71,-.46,.88,.6)}.ant-badge-not-a-wrapper .ant-scroll-number-custom-component{transform:none}.ant-badge-not-a-wrapper .ant-scroll-number,.ant-badge-not-a-wrapper .ant-scroll-number-custom-component{position:relative;top:auto;display:block;transform-origin:50% 50%}.ant-btn,.ant-btn>span,.ant-scroll-number-only{display:inline-block}@keyframes antStatusProcessing{0%{transform:scale(.8);opacity:.5}100%{transform:scale(2.4);opacity:0}}.ant-scroll-number-only,.ant-scroll-number-only>p.ant-scroll-number-only-unit{height:20px;-webkit-transform-style:preserve-3d;-webkit-backface-visibility:hidden}.ant-scroll-number{overflow:hidden}.ant-scroll-number-only{position:relative;transition:all .3s cubic-bezier(.645,.045,.355,1)}.ant-scroll-number-only>p.ant-scroll-number-only-unit{margin:0}.ant-scroll-number-symbol{vertical-align:top}@keyframes antZoomBadgeIn{0%{transform:scale(0) translate(50%,-50%);opacity:0}100%{transform:scale(1) translate(50%,-50%)}}@keyframes antZoomBadgeOut{0%{transform:scale(1) translate(50%,-50%)}100%{transform:scale(0) translate(50%,-50%);opacity:0}}@keyframes antNoWrapperZoomBadgeIn{0%{transform:scale(0);opacity:0}100%{transform:scale(1)}}@keyframes antNoWrapperZoomBadgeOut{0%{transform:scale(1)}100%{transform:scale(0);opacity:0}}@keyframes antBadgeLoadingCircle{0%{transform-origin:50%}100%{transform:translate(50%,-50%) rotate(360deg);transform-origin:50%}}.ant-ribbon-wrapper{position:relative}.ant-ribbon{box-sizing:border-box;margin:0;font-size:14px;font-variant:tabular-nums;list-style:none;font-feature-settings:tnum;position:absolute;top:8px;height:22px;color:#fff;line-height:22px;white-space:nowrap;background-color:#177ddc;border-radius:2px}.ant-breadcrumb,.ant-btn{line-height:1.5715;font-size:14px}.ant-ribbon-text{color:#fff}.ant-ribbon-corner{position:absolute;top:100%;width:8px;height:8px;color:currentColor;border:4px solid;transform:scaleY(.75);transform-origin:top}.ant-ribbon-corner::after{position:absolute;top:-4px;left:-4px;width:inherit;height:inherit;color:rgba(0,0,0,.25);border:inherit;content:''}.ant-ribbon-color-magenta,.ant-ribbon-color-pink{color:#cb2b83;background:#cb2b83}.ant-ribbon-color-red{color:#d32029;background:#d32029}.ant-ribbon-color-volcano{color:#d84a1b;background:#d84a1b}.ant-ribbon-color-orange{color:#d87a16;background:#d87a16}.ant-ribbon-color-yellow{color:#d8bd14;background:#d8bd14}.ant-ribbon-color-gold{color:#d89614;background:#d89614}.ant-ribbon-color-cyan{color:#13a8a8;background:#13a8a8}.ant-ribbon-color-lime{color:#8bbb11;background:#8bbb11}.ant-ribbon-color-green{color:#49aa19;background:#49aa19}.ant-ribbon-color-blue{color:#177ddc;background:#177ddc}.ant-ribbon-color-geekblue{color:#2b4acb;background:#2b4acb}.ant-ribbon-color-purple{color:#642ab5;background:#642ab5}.ant-ribbon.ant-ribbon-placement-end{right:-8px;border-bottom-right-radius:0}.ant-ribbon.ant-ribbon-placement-end .ant-ribbon-corner{right:0;border-color:currentColor transparent transparent currentColor}.ant-ribbon-rtl.ant-ribbon-placement-end .ant-ribbon-corner,.ant-ribbon-rtl.ant-ribbon-placement-end .ant-ribbon-corner::after,.ant-ribbon.ant-ribbon-placement-start .ant-ribbon-corner{border-color:currentColor currentColor transparent transparent}.ant-ribbon.ant-ribbon-placement-start{left:-8px;border-bottom-left-radius:0}.ant-ribbon.ant-ribbon-placement-start .ant-ribbon-corner{left:0}.ant-badge-rtl .ant-badge .ant-scroll-number-custom-component,.ant-badge-rtl .ant-badge-count,.ant-badge-rtl .ant-badge-dot{right:auto;left:0;direction:ltr;transform:translate(-50%,-50%);transform-origin:0 0}.ant-breadcrumb-rtl,.ant-btn-group.ant-btn-group-rtl,.ant-btn-rtl,.ant-card-rtl,.ant-carousel-rtl,.ant-checkbox-rtl,.ant-collapse-rtl,.ant-comment-rtl,.ant-picker-input>input-rtl,.ant-ribbon-rtl{direction:rtl}.ant-badge-rtl.ant-badge .ant-scroll-number-custom-component{right:auto;left:0;transform:translate(-50%,-50%);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{animation-name:antZoomBadgeInRtl}.ant-badge-rtl .ant-badge-zoom-leave{animation-name:antZoomBadgeOutRtl}.ant-badge-not-a-wrapper .ant-badge-count{transform:none}.ant-ribbon-rtl.ant-ribbon-placement-end{right:unset;left:-8px;border-bottom-right-radius:2px;border-bottom-left-radius:0}.ant-ribbon-rtl.ant-ribbon-placement-end .ant-ribbon-corner{right:unset;left:0}.ant-ribbon-rtl.ant-ribbon-placement-start .ant-ribbon-corner,.ant-ribbon-rtl.ant-ribbon-placement-start .ant-ribbon-corner::after{border-color:currentColor transparent transparent currentColor}.ant-ribbon-rtl.ant-ribbon-placement-start{right:-8px;left:unset;border-bottom-right-radius:0;border-bottom-left-radius:2px}.ant-ribbon-rtl.ant-ribbon-placement-start .ant-ribbon-corner{right:0;left:unset}@keyframes antZoomBadgeInRtl{0%{transform:scale(0) translate(-50%,-50%);opacity:0}100%{transform:scale(1) translate(-50%,-50%)}}@keyframes antZoomBadgeOutRtl{0%{transform:scale(1) translate(-50%,-50%)}100%{transform:scale(0) translate(-50%,-50%);opacity:0}}.ant-badge .ant-scroll-number:only-child{position:relative;top:auto;display:block}.ant-badge .ant-badge-count:only-child{transform:none}nz-ribbon{display:block}.ant-breadcrumb{box-sizing:border-box;margin:0;padding:0;font-variant:tabular-nums;list-style:none;font-feature-settings:tnum;color:rgba(255,255,255,.45)}.ant-breadcrumb .anticon{font-size:14px}.ant-breadcrumb a{color:rgba(255,255,255,.45);transition:color .3s}.ant-breadcrumb a:hover{color:#165996}.ant-breadcrumb>span:last-child,.ant-breadcrumb>span:last-child a{color:rgba(255,255,255,.85)}.ant-breadcrumb>span:last-child .ant-breadcrumb-separator{display:none}.ant-breadcrumb-rtl::after,.ant-breadcrumb-rtl::before{display:table;content:''}.ant-breadcrumb-separator{margin:0 8px;color:rgba(255,255,255,.45)}.ant-breadcrumb>nz-breadcrumb-item:last-child,.ant-breadcrumb>nz-breadcrumb-item:last-child a,.ant-btn{color:rgba(255,255,255,.85)}.ant-breadcrumb-link>.anticon+a,.ant-breadcrumb-link>.anticon+span,.ant-breadcrumb-overlay-link>.anticon{margin-left:4px}.ant-breadcrumb-rtl::after{clear:both}.ant-breadcrumb-rtl>span{float:right}.ant-breadcrumb-rtl .ant-breadcrumb-link>.anticon+a,.ant-breadcrumb-rtl .ant-breadcrumb-link>.anticon+span,.ant-breadcrumb-rtl .ant-breadcrumb-overlay-link>.anticon{margin-right:4px;margin-left:0}.ant-breadcrumb-link .anticon+span{margin-left:4px}.ant-breadcrumb-rtl>nz-breadcrumb-item{float:right}nz-breadcrumb{display:block}nz-breadcrumb-item:last-child .ant-breadcrumb-separator{display:none}.ant-btn{position:relative;font-weight:400;white-space:nowrap;text-align:center;border:1px solid #434343;box-shadow:0 2px 0 rgba(0,0,0,.015);transition:all .3s cubic-bezier(.645,.045,.355,1);user-select:none;height:32px;padding:4px 15px;border-radius:2px;background:0 0}.ant-btn>.anticon,.ant-checkbox{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;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:0 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:0 0;content:''}.ant-btn:focus,.ant-btn:hover{color:#165996;border-color:#165996}.ant-btn:focus>a:only-child,.ant-btn:hover>a:only-child{color:currentColor}.ant-btn:focus>a:only-child::after,.ant-btn:hover>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn:active{color:#388ed3;border-color:#388ed3}.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:0 0;content:''}.ant-btn[disabled],.ant-btn[disabled]:active,.ant-btn[disabled]:focus,.ant-btn[disabled]:hover{color:rgba(255,255,255,.3);background:rgba(255,255,255,.08);border-color:#434343;text-shadow:none;box-shadow:none}.ant-btn[disabled]:active>a:only-child,.ant-btn[disabled]:focus>a:only-child,.ant-btn[disabled]:hover>a:only-child,.ant-btn[disabled]>a:only-child{color:currentColor}.ant-btn[disabled]:active>a:only-child::after,.ant-btn[disabled]:focus>a:only-child::after,.ant-btn[disabled]:hover>a:only-child::after,.ant-btn[disabled]>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn:active,.ant-btn:focus,.ant-btn:hover{text-decoration:none;background:0 0}.ant-btn-primary{color:#fff;background:#177ddc;border-color:#177ddc;text-shadow:0 -1px 0 rgba(0,0,0,.12);box-shadow:0 2px 0 rgba(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:0 0;content:''}.ant-btn-primary:focus,.ant-btn-primary:hover{color:#fff;background:#095cb5;border-color:#095cb5}.ant-btn-primary:focus>a:only-child,.ant-btn-primary:hover>a:only-child{color:currentColor}.ant-btn-primary:focus>a:only-child::after,.ant-btn-primary:hover>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-primary:active{color:#fff;background:#3c9be8;border-color:#3c9be8}.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:0 0;content:''}.ant-btn-primary[disabled],.ant-btn-primary[disabled]:active,.ant-btn-primary[disabled]:focus,.ant-btn-primary[disabled]:hover{color:rgba(255,255,255,.3);background:rgba(255,255,255,.08);border-color:#434343;text-shadow:none;box-shadow:none}.ant-btn-primary[disabled]:active>a:only-child,.ant-btn-primary[disabled]:focus>a:only-child,.ant-btn-primary[disabled]:hover>a:only-child,.ant-btn-primary[disabled]>a:only-child{color:currentColor}.ant-btn-primary[disabled]:active>a:only-child::after,.ant-btn-primary[disabled]:focus>a:only-child::after,.ant-btn-primary[disabled]:hover>a:only-child::after,.ant-btn-primary[disabled]>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child){border-right-color:#165996;border-left-color:#165996}.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child):disabled{border-color:#434343}.ant-btn-group .ant-btn-primary:first-child:not(:last-child){border-right-color:#165996}.ant-btn-group .ant-btn-primary:first-child:not(:last-child)[disabled]{border-right-color:#434343}.ant-btn-group .ant-btn-primary+.ant-btn-primary,.ant-btn-group .ant-btn-primary:last-child:not(:first-child){border-left-color:#165996}.ant-btn-group .ant-btn-primary+.ant-btn-primary[disabled],.ant-btn-group .ant-btn-primary:last-child:not(:first-child)[disabled]{border-left-color:#434343}.ant-btn-ghost{color:rgba(255,255,255,.85);background:0 0;border-color:#434343}.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:0 0;content:''}.ant-btn-ghost:focus,.ant-btn-ghost:hover{color:#165996;background:0 0;border-color:#165996}.ant-btn-ghost:focus>a:only-child,.ant-btn-ghost:hover>a:only-child{color:currentColor}.ant-btn-ghost:focus>a:only-child::after,.ant-btn-ghost:hover>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-ghost:active{color:#388ed3;background:0 0;border-color:#388ed3}.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:0 0;content:''}.ant-btn-ghost[disabled],.ant-btn-ghost[disabled]:active,.ant-btn-ghost[disabled]:focus,.ant-btn-ghost[disabled]:hover{color:rgba(255,255,255,.3);background:rgba(255,255,255,.08);border-color:#434343;text-shadow:none;box-shadow:none}.ant-btn-ghost[disabled]:active>a:only-child,.ant-btn-ghost[disabled]:focus>a:only-child,.ant-btn-ghost[disabled]:hover>a:only-child,.ant-btn-ghost[disabled]>a:only-child{color:currentColor}.ant-btn-ghost[disabled]:active>a:only-child::after,.ant-btn-ghost[disabled]:focus>a:only-child::after,.ant-btn-ghost[disabled]:hover>a:only-child::after,.ant-btn-ghost[disabled]>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-dashed{color:rgba(255,255,255,.85);background:0 0;border-color:#434343;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:0 0;content:''}.ant-btn-dashed:focus,.ant-btn-dashed:hover{color:#165996;background:0 0;border-color:#165996}.ant-btn-dashed:focus>a:only-child,.ant-btn-dashed:hover>a:only-child{color:currentColor}.ant-btn-dashed:focus>a:only-child::after,.ant-btn-dashed:hover>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-dashed:active{color:#388ed3;background:0 0;border-color:#388ed3}.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:0 0;content:''}.ant-btn-dashed[disabled],.ant-btn-dashed[disabled]:active,.ant-btn-dashed[disabled]:focus,.ant-btn-dashed[disabled]:hover{color:rgba(255,255,255,.3);background:rgba(255,255,255,.08);border-color:#434343;text-shadow:none;box-shadow:none}.ant-btn-dashed[disabled]:active>a:only-child,.ant-btn-dashed[disabled]:focus>a:only-child,.ant-btn-dashed[disabled]:hover>a:only-child,.ant-btn-dashed[disabled]>a:only-child{color:currentColor}.ant-btn-dashed[disabled]:active>a:only-child::after,.ant-btn-dashed[disabled]:focus>a:only-child::after,.ant-btn-dashed[disabled]:hover>a:only-child::after,.ant-btn-dashed[disabled]>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-danger{color:#fff;background:#a61d24;border-color:#a61d24;text-shadow:0 -1px 0 rgba(0,0,0,.12);box-shadow:0 2px 0 rgba(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:0 0;content:''}.ant-btn-danger:focus,.ant-btn-danger:hover{color:#fff;background:#800f19;border-color:#800f19}.ant-btn-danger:focus>a:only-child,.ant-btn-danger:hover>a:only-child{color:currentColor}.ant-btn-danger:focus>a:only-child::after,.ant-btn-danger:hover>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-danger:active{color:#fff;background:#b33b3d;border-color:#b33b3d}.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:0 0;content:''}.ant-btn-danger[disabled],.ant-btn-danger[disabled]:active,.ant-btn-danger[disabled]:focus,.ant-btn-danger[disabled]:hover{color:rgba(255,255,255,.3);background:rgba(255,255,255,.08);border-color:#434343;text-shadow:none;box-shadow:none}.ant-btn-danger[disabled]:active>a:only-child,.ant-btn-danger[disabled]:focus>a:only-child,.ant-btn-danger[disabled]:hover>a:only-child,.ant-btn-danger[disabled]>a:only-child{color:currentColor}.ant-btn-danger[disabled]:active>a:only-child::after,.ant-btn-danger[disabled]:focus>a:only-child::after,.ant-btn-danger[disabled]:hover>a:only-child::after,.ant-btn-danger[disabled]>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-link{color:#177ddc;background:0 0;border-color:transparent;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:0 0;content:''}.ant-btn-link:focus,.ant-btn-link:hover{color:#165996;background:0 0;border-color:#165996}.ant-btn-link:focus>a:only-child,.ant-btn-link:hover>a:only-child{color:currentColor}.ant-btn-link:focus>a:only-child::after,.ant-btn-link:hover>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-link:active{color:#388ed3;background:0 0}.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:0 0;content:''}.ant-btn-link:hover{background:0 0}.ant-btn-link:active,.ant-btn-link:focus,.ant-btn-link:hover{border-color:transparent}.ant-btn-link[disabled],.ant-btn-link[disabled]:active,.ant-btn-link[disabled]:focus,.ant-btn-link[disabled]:hover{color:rgba(255,255,255,.3);background:0 0;border-color:transparent;text-shadow:none;box-shadow:none}.ant-btn-link[disabled]:active>a:only-child,.ant-btn-link[disabled]:focus>a:only-child,.ant-btn-link[disabled]:hover>a:only-child,.ant-btn-link[disabled]>a:only-child{color:currentColor}.ant-btn-link[disabled]:active>a:only-child::after,.ant-btn-link[disabled]:focus>a:only-child::after,.ant-btn-link[disabled]:hover>a:only-child::after,.ant-btn-link[disabled]>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-text{color:rgba(255,255,255,.85);background:0 0;border-color:transparent;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:0 0;content:''}.ant-btn-text:focus,.ant-btn-text:hover{color:#165996}.ant-btn-text:focus>a:only-child,.ant-btn-text:hover>a:only-child{color:currentColor}.ant-btn-text:focus>a:only-child::after,.ant-btn-text:hover>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-text:active{color:#388ed3}.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:0 0;content:''}.ant-btn-text:focus,.ant-btn-text:hover{color:rgba(255,255,255,.85);background:rgba(255,255,255,.03);border-color:transparent}.ant-btn-text:active{color:rgba(255,255,255,.85);background:rgba(255,255,255,.04);border-color:transparent}.ant-btn-text[disabled],.ant-btn-text[disabled]:active,.ant-btn-text[disabled]:focus,.ant-btn-text[disabled]:hover{color:rgba(255,255,255,.3);background:0 0;border-color:transparent;text-shadow:none;box-shadow:none}.ant-btn-text[disabled]:active>a:only-child,.ant-btn-text[disabled]:focus>a:only-child,.ant-btn-text[disabled]:hover>a:only-child,.ant-btn-text[disabled]>a:only-child{color:currentColor}.ant-btn-text[disabled]:active>a:only-child::after,.ant-btn-text[disabled]:focus>a:only-child::after,.ant-btn-text[disabled]:hover>a:only-child::after,.ant-btn-text[disabled]>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-dangerous{color:#a61d24;background:0 0;border-color:#a61d24}.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:0 0;content:''}.ant-btn-dangerous:focus,.ant-btn-dangerous:hover{color:#800f19;background:0 0;border-color:#800f19}.ant-btn-dangerous:focus>a:only-child,.ant-btn-dangerous:hover>a:only-child{color:currentColor}.ant-btn-dangerous:focus>a:only-child::after,.ant-btn-dangerous:hover>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-dangerous:active{color:#b33b3d;background:0 0;border-color:#b33b3d}.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:0 0;content:''}.ant-btn-dangerous[disabled],.ant-btn-dangerous[disabled]:active,.ant-btn-dangerous[disabled]:focus,.ant-btn-dangerous[disabled]:hover{color:rgba(255,255,255,.3);background:rgba(255,255,255,.08);border-color:#434343;text-shadow:none;box-shadow:none}.ant-btn-dangerous[disabled]:active>a:only-child,.ant-btn-dangerous[disabled]:focus>a:only-child,.ant-btn-dangerous[disabled]:hover>a:only-child,.ant-btn-dangerous[disabled]>a:only-child{color:currentColor}.ant-btn-dangerous[disabled]:active>a:only-child::after,.ant-btn-dangerous[disabled]:focus>a:only-child::after,.ant-btn-dangerous[disabled]:hover>a:only-child::after,.ant-btn-dangerous[disabled]>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-dangerous.ant-btn-primary{color:#fff;background:#a61d24;border-color:#a61d24;text-shadow:0 -1px 0 rgba(0,0,0,.12);box-shadow:0 2px 0 rgba(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:0 0;content:''}.ant-btn-dangerous.ant-btn-primary:focus,.ant-btn-dangerous.ant-btn-primary:hover{color:#fff;background:#800f19;border-color:#800f19}.ant-btn-dangerous.ant-btn-primary:focus>a:only-child,.ant-btn-dangerous.ant-btn-primary:hover>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-primary:focus>a:only-child::after,.ant-btn-dangerous.ant-btn-primary:hover>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-dangerous.ant-btn-primary:active{color:#fff;background:#b33b3d;border-color:#b33b3d}.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:0 0;content:''}.ant-btn-dangerous.ant-btn-primary[disabled],.ant-btn-dangerous.ant-btn-primary[disabled]:active,.ant-btn-dangerous.ant-btn-primary[disabled]:focus,.ant-btn-dangerous.ant-btn-primary[disabled]:hover{color:rgba(255,255,255,.3);background:rgba(255,255,255,.08);border-color:#434343;text-shadow:none;box-shadow:none}.ant-btn-dangerous.ant-btn-primary[disabled]:active>a:only-child,.ant-btn-dangerous.ant-btn-primary[disabled]:focus>a:only-child,.ant-btn-dangerous.ant-btn-primary[disabled]:hover>a:only-child,.ant-btn-dangerous.ant-btn-primary[disabled]>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-primary[disabled]:active>a:only-child::after,.ant-btn-dangerous.ant-btn-primary[disabled]:focus>a:only-child::after,.ant-btn-dangerous.ant-btn-primary[disabled]:hover>a:only-child::after,.ant-btn-dangerous.ant-btn-primary[disabled]>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-dangerous.ant-btn-link{color:#a61d24;background:0 0;border-color:transparent;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:0 0;content:''}.ant-btn-dangerous.ant-btn-link:focus,.ant-btn-dangerous.ant-btn-link:hover{color:#800f19;background:0 0;border-color:transparent}.ant-btn-dangerous.ant-btn-link:focus>a:only-child,.ant-btn-dangerous.ant-btn-link:hover>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-link:focus>a:only-child::after,.ant-btn-dangerous.ant-btn-link:hover>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-dangerous.ant-btn-link:active{color:#b33b3d;background:0 0;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:0 0;content:''}.ant-btn-dangerous.ant-btn-link[disabled],.ant-btn-dangerous.ant-btn-link[disabled]:active,.ant-btn-dangerous.ant-btn-link[disabled]:focus,.ant-btn-dangerous.ant-btn-link[disabled]:hover{color:rgba(255,255,255,.3);background:0 0;border-color:transparent;text-shadow:none;box-shadow:none}.ant-btn-dangerous.ant-btn-link[disabled]:active>a:only-child,.ant-btn-dangerous.ant-btn-link[disabled]:focus>a:only-child,.ant-btn-dangerous.ant-btn-link[disabled]:hover>a:only-child,.ant-btn-dangerous.ant-btn-link[disabled]>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-link[disabled]:active>a:only-child::after,.ant-btn-dangerous.ant-btn-link[disabled]:focus>a:only-child::after,.ant-btn-dangerous.ant-btn-link[disabled]:hover>a:only-child::after,.ant-btn-dangerous.ant-btn-link[disabled]>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-dangerous.ant-btn-text{color:#a61d24;background:0 0;border-color:transparent;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:0 0;content:''}.ant-btn-dangerous.ant-btn-text:focus,.ant-btn-dangerous.ant-btn-text:hover{color:#800f19;background:rgba(255,255,255,.03);border-color:transparent}.ant-btn-dangerous.ant-btn-text:focus>a:only-child,.ant-btn-dangerous.ant-btn-text:hover>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-text:focus>a:only-child::after,.ant-btn-dangerous.ant-btn-text:hover>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-dangerous.ant-btn-text:active{color:#b33b3d;background:rgba(255,255,255,.04);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:0 0;content:''}.ant-btn-dangerous.ant-btn-text[disabled],.ant-btn-dangerous.ant-btn-text[disabled]:active,.ant-btn-dangerous.ant-btn-text[disabled]:focus,.ant-btn-dangerous.ant-btn-text[disabled]:hover{color:rgba(255,255,255,.3);background:0 0;border-color:transparent;text-shadow:none;box-shadow:none}.ant-btn-dangerous.ant-btn-text[disabled]:active>a:only-child,.ant-btn-dangerous.ant-btn-text[disabled]:focus>a:only-child,.ant-btn-dangerous.ant-btn-text[disabled]:hover>a:only-child,.ant-btn-dangerous.ant-btn-text[disabled]>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-text[disabled]:active>a:only-child::after,.ant-btn-dangerous.ant-btn-text[disabled]:focus>a:only-child::after,.ant-btn-dangerous.ant-btn-text[disabled]:hover>a:only-child::after,.ant-btn-dangerous.ant-btn-text[disabled]>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-icon-only{width:32px;height:32px;padding:2.4px 0;font-size:16px;border-radius:2px;vertical-align:-1px}.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: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:0 12px;font-size:14px;border-radius:24px}.ant-btn-round.ant-btn-icon-only{width:auto}.ant-btn-circle{min-width:32px;padding-right:0;padding-left:0;text-align:center;border-radius:50%}.ant-btn-circle.ant-btn-lg{min-width:40px;border-radius:50%}.ant-btn-circle.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:#141414;border-radius:inherit;opacity:.35;transition:opacity .2s;content:'';pointer-events:none}.ant-btn-group,.ant-btn-group>.ant-btn,.ant-btn-group>span>.ant-btn,.ant-btn.ant-btn-loading,.ant-btn:active>span,.ant-btn:focus>span{position:relative}.ant-btn .anticon{transition:margin-left .3s cubic-bezier(.645,.045,.355,1)}.ant-btn .anticon.anticon-minus>svg,.ant-btn .anticon.anticon-plus>svg{shape-rendering:optimizeSpeed}.ant-btn.ant-btn-loading:not([disabled]){pointer-events:none}.ant-btn.ant-btn-loading::before{display:block}.ant-btn>.ant-btn-loading-icon{transition:all .3s cubic-bezier(.645,.045,.355,1)}.ant-btn>.ant-btn-loading-icon .anticon{padding-right:8px;animation:none}.ant-btn>.ant-btn-loading-icon .anticon svg{animation:loadingCircle 1s infinite linear}.ant-btn>.ant-btn-loading-icon:only-child .anticon{padding-right:0}.ant-btn-group>.ant-btn:active,.ant-btn-group>.ant-btn:focus,.ant-btn-group>.ant-btn:hover,.ant-btn-group>span>.ant-btn:active,.ant-btn-group>span>.ant-btn:focus,.ant-btn-group>span>.ant-btn:hover{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:0 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+.ant-btn-group,.ant-btn-group .ant-btn+.ant-btn,.ant-btn-group .ant-btn+span,.ant-btn-group span+.ant-btn,.ant-btn-group+.ant-btn,.ant-btn-group+.ant-btn-group,.ant-btn-group>span+span{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-sm>.ant-btn:only-child,.ant-btn-group-sm>span:only-child>.ant-btn,.ant-btn-group>.ant-btn:only-child,.ant-btn-group>span:only-child>.ant-btn,.ant-card{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,.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-sm>.ant-btn:last-child:not(:first-child),.ant-btn-group-sm>span:last-child:not(:first-child)>.ant-btn,.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>.ant-btn:first-child,.ant-btn-group>span:first-child>.ant-btn{margin-left:0}.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-group-rtl.ant-btn+.ant-btn-group,.ant-btn-group-rtl.ant-btn-group .ant-btn+.ant-btn,.ant-btn-group-rtl.ant-btn-group .ant-btn+span,.ant-btn-group-rtl.ant-btn-group span+.ant-btn,.ant-btn-group-rtl.ant-btn-group+.ant-btn,.ant-btn-group-rtl.ant-btn-group+.ant-btn-group,.ant-btn-group-rtl.ant-btn-group>span+span,.ant-btn-rtl.ant-btn+.ant-btn-group,.ant-btn-rtl.ant-btn-group .ant-btn+.ant-btn,.ant-btn-rtl.ant-btn-group .ant-btn+span,.ant-btn-rtl.ant-btn-group span+.ant-btn,.ant-btn-rtl.ant-btn-group+.ant-btn,.ant-btn-rtl.ant-btn-group+.ant-btn-group,.ant-btn-rtl.ant-btn-group>span+span{margin-right:-1px;margin-left:auto}.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-radius:0 2px 2px 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-radius:2px 0 0 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-radius:0 2px 2px 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-radius:2px 0 0 2px}.ant-btn>.anticon+span,.ant-btn>span+.anticon{margin-left:8px}.ant-btn-background-ghost{color:rgba(255,255,255,.85);background:0 0!important;border-color:rgba(255,255,255,.25)}.ant-btn-background-ghost.ant-btn-primary{color:#177ddc;background:0 0;border-color:#177ddc;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:0 0;content:''}.ant-btn-background-ghost.ant-btn-primary:focus,.ant-btn-background-ghost.ant-btn-primary:hover{color:#095cb5;background:0 0;border-color:#095cb5}.ant-btn-background-ghost.ant-btn-primary:focus>a:only-child,.ant-btn-background-ghost.ant-btn-primary:hover>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-primary:focus>a:only-child::after,.ant-btn-background-ghost.ant-btn-primary:hover>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-background-ghost.ant-btn-primary:active{color:#3c9be8;background:0 0;border-color:#3c9be8}.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:0 0;content:''}.ant-btn-background-ghost.ant-btn-primary[disabled],.ant-btn-background-ghost.ant-btn-primary[disabled]:active,.ant-btn-background-ghost.ant-btn-primary[disabled]:focus,.ant-btn-background-ghost.ant-btn-primary[disabled]:hover{color:rgba(255,255,255,.3);background:rgba(255,255,255,.08);border-color:#434343;text-shadow:none;box-shadow:none}.ant-btn-background-ghost.ant-btn-primary[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-primary[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-primary[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-primary[disabled]>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-primary[disabled]:active>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]:hover>a:only-child::after,.ant-btn-background-ghost.ant-btn-primary[disabled]>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-background-ghost.ant-btn-danger{color:#a61d24;background:0 0;border-color:#a61d24;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:0 0;content:''}.ant-btn-background-ghost.ant-btn-danger:focus,.ant-btn-background-ghost.ant-btn-danger:hover{color:#800f19;background:0 0;border-color:#800f19}.ant-btn-background-ghost.ant-btn-danger:focus>a:only-child,.ant-btn-background-ghost.ant-btn-danger:hover>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-danger:focus>a:only-child::after,.ant-btn-background-ghost.ant-btn-danger:hover>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-background-ghost.ant-btn-danger:active{color:#b33b3d;background:0 0;border-color:#b33b3d}.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:0 0;content:''}.ant-btn-background-ghost.ant-btn-danger[disabled],.ant-btn-background-ghost.ant-btn-danger[disabled]:active,.ant-btn-background-ghost.ant-btn-danger[disabled]:focus,.ant-btn-background-ghost.ant-btn-danger[disabled]:hover{color:rgba(255,255,255,.3);background:rgba(255,255,255,.08);border-color:#434343;text-shadow:none;box-shadow:none}.ant-btn-background-ghost.ant-btn-danger[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-danger[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-danger[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-danger[disabled]>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-danger[disabled]:active>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]:hover>a:only-child::after,.ant-btn-background-ghost.ant-btn-danger[disabled]>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-background-ghost.ant-btn-dangerous{color:#a61d24;background:0 0;border-color:#a61d24;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:0 0;content:''}.ant-btn-background-ghost.ant-btn-dangerous:focus,.ant-btn-background-ghost.ant-btn-dangerous:hover{color:#800f19;background:0 0;border-color:#800f19}.ant-btn-background-ghost.ant-btn-dangerous:focus>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous:hover>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-dangerous:focus>a:only-child::after,.ant-btn-background-ghost.ant-btn-dangerous:hover>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-background-ghost.ant-btn-dangerous:active{color:#b33b3d;background:0 0;border-color:#b33b3d}.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:0 0;content:''}.ant-btn-background-ghost.ant-btn-dangerous[disabled],.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:focus,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:hover{color:rgba(255,255,255,.3);background:rgba(255,255,255,.08);border-color:#434343;text-shadow:none;box-shadow:none}.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous[disabled]>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active>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]:hover>a:only-child::after,.ant-btn-background-ghost.ant-btn-dangerous[disabled]>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link{color:#a61d24;background:0 0;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:0 0;content:''}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover{color:#800f19;background:0 0;border-color:transparent}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus>a:only-child::after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:active{color:#b33b3d;background:0 0;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:0 0;content:''}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled],.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover{color:rgba(255,255,255,.3);background:rgba(255,255,255,.08);border-color:#434343;text-shadow:none;box-shadow:none}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active>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]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]>a:only-child{color:currentColor}.ant-card,.ant-card-head{color:rgba(255,255,255,.85)}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active>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]:hover>a:only-child::after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]>a:only-child::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;content:''}.ant-btn-two-chinese-chars::first-letter{letter-spacing:.34em}.ant-btn-two-chinese-chars>:not(.anticon){margin-right:-.34em;letter-spacing:.34em}.ant-btn-block{width:100%}.ant-btn:empty{display:inline-block;width:0;visibility:hidden;content:'\a0'}.ant-card-head::after,.ant-card-head::before{display:table;content:''}a.ant-btn{padding-top:.01px!important;line-height:30px}a.ant-btn-lg{line-height:38px}a.ant-btn-sm{line-height:22px}.ant-btn-group-rtl.ant-btn-group .ant-btn-primary+.ant-btn-primary,.ant-btn-group-rtl.ant-btn-group .ant-btn-primary:last-child:not(:first-child){border-right-color:#165996;border-left-color:#434343}.ant-btn-group-rtl.ant-btn-group .ant-btn-primary+.ant-btn-primary[disabled],.ant-btn-group-rtl.ant-btn-group .ant-btn-primary:last-child:not(:first-child)[disabled]{border-right-color:#434343;border-left-color:#165996}.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-left:0}.ant-btn-rtl.ant-btn>.anticon+span,.ant-btn-rtl.ant-btn>span+.anticon{margin-right:8px;margin-left:0}.ant-card{box-sizing:border-box;margin:0;padding:0;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:tnum;position:relative;background:#141414}.ant-card-hoverable{cursor:pointer;transition:box-shadow .3s,border-color .3s}.ant-card-hoverable:hover{border-color:transparent;box-shadow:0 1px 2px -2px rgba(0,0,0,.64),0 3px 6px 0 rgba(0,0,0,.48),0 5px 12px 4px rgba(0,0,0,.36)}.ant-card-head,.ant-card-head .ant-tabs-bar{border-bottom:1px solid #303030}.ant-card-bordered{border:1px solid #303030}.ant-card-head{min-height:48px;margin-bottom:-1px;padding:0 24px;font-weight:500;font-size:16px;background:0 0;border-radius:2px 2px 0 0}.ant-card-extra,.ant-card-head .ant-tabs{color:rgba(255,255,255,.85);font-weight:400}.ant-card-head::after{clear:both}.ant-card-head-wrapper{display:flex;align-items:center}.ant-card-head-title{display:inline-block;flex:1;padding:16px 0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ant-card-body::after,.ant-card-body::before{display:table;content:''}.ant-card-head-title>.ant-typography,.ant-card-head-title>.ant-typography-edit-content{left:0;margin-top:0;margin-bottom:0}.ant-card-head .ant-tabs{clear:both;margin-bottom:-17px;font-size:14px}.ant-card-extra{float:right;margin-left:auto;padding:16px 0;font-size:14px}.ant-card-rtl .ant-card-extra{margin-right:auto;margin-left:0}.ant-card-body{padding:24px}.ant-card-body::after{clear:both}.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;box-shadow:1px 0 0 0 #303030,0 1px 0 0 #303030,1px 1px 0 0 #303030,1px 0 0 0 #303030 inset,0 1px 0 0 #303030 inset;transition:all .3s}.ant-card-rtl .ant-card-grid{float:right}.ant-card-grid-hoverable:hover{position:relative;z-index:1;box-shadow:0 1px 2px -2px rgba(0,0,0,.64),0 3px 6px 0 rgba(0,0,0,.48),0 5px 12px 4px rgba(0,0,0,.36)}.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-top:-1px;margin-right:-1px;margin-left:-1px}.ant-card-cover>*{display:block;width:100%}.ant-card-actions::after,.ant-card-actions::before{display:table;content:''}.ant-card-cover img{border-radius:2px 2px 0 0}.ant-card-actions{margin:0;padding:0;list-style:none;background:#141414;border-top:1px solid #303030}.ant-card-actions::after{clear:both}.ant-card-actions>li{float:left;margin:12px 0;color:rgba(255,255,255,.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:#177ddc;transition:color .3s}.ant-card-actions>li>span a:not(.ant-btn),.ant-card-actions>li>span>.anticon{display:inline-block;width:100%;color:rgba(255,255,255,.45);line-height:22px;transition:color .3s}.ant-card-meta::after,.ant-card-meta::before{display:table;content:''}.ant-card-actions>li>span a:not(.ant-btn):hover,.ant-card-actions>li>span>.anticon:hover{color:#177ddc}.ant-card-actions>li>span>.anticon{font-size:16px;line-height:22px}.ant-card-actions>li:not(:last-child){border-right:1px solid #303030}.ant-card-rtl .ant-card-actions>li:not(:last-child){border-right:none;border-left:1px solid #303030}.ant-card-type-inner .ant-card-head{padding:0 24px;background:rgba(255,255,255,.04)}.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::after{clear:both}.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(255,255,255,.85);font-weight:500;font-size:16px;white-space:nowrap;text-overflow:ellipsis}.ant-card-meta-description,.ant-comment-content-author-name,.ant-comment-content-author-name>*,.ant-comment-content-author-name>:hover{color:rgba(255,255,255,.45)}.ant-carousel,.ant-checkbox{color:rgba(255,255,255,.85);font-variant:tabular-nums;list-style:none;font-size:14px;font-feature-settings:tnum}.ant-card-loading{overflow:hidden}.ant-card-loading .ant-card-body{user-select:none}.ant-card-loading-content p{margin:0}.ant-card-loading-block{height:14px;margin:4px 0;background:linear-gradient(90deg,rgba(48,48,48,.2),rgba(48,48,48,.4),rgba(48,48,48,.2));background-size:600% 600%;border-radius:2px;animation:card-loading 1.4s ease infinite}@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}.ant-card-rtl .ant-skeleton-header{padding:0 0 0 16px}nz-card,nz-card-loading,nz-card-meta{display:block}.ant-carousel{box-sizing:border-box;margin:0;padding:0;line-height:1.5715}.ant-carousel .slick-slider{position:relative;display:block;box-sizing:border-box;-ms-touch-action:pan-y;touch-action:pan-y;-webkit-touch-callout:none}.ant-carousel .slick-list{position:relative;display:block;margin:0;padding:0;overflow:hidden}.ant-carousel .slick-list:focus{outline:0}.ant-carousel .slick-list.dragging{cursor:pointer}.ant-carousel .slick-list .slick-slide{pointer-events:none}.ant-carousel .slick-list .slick-slide input.ant-checkbox-input,.ant-carousel .slick-list .slick-slide input.ant-radio-input{visibility:hidden}.ant-carousel .slick-list .slick-slide.slick-active{pointer-events:auto}.ant-carousel .slick-list .slick-slide.slick-active input.ant-checkbox-input,.ant-carousel .slick-list .slick-slide.slick-active input.ant-radio-input{visibility:visible}.ant-carousel .slick-loading .slick-slide,.ant-checkbox-checked::after,.slick-loading .ant-carousel .slick-track{visibility:hidden}.ant-carousel .slick-list .slick-slide>div>div{vertical-align:bottom}.ant-carousel .slick-slider .slick-list,.ant-carousel .slick-slider .slick-track{transform:translate3d(0,0,0);touch-action:pan-y}.ant-carousel .slick-track{position:relative;top:0;left:0;display:block}.ant-carousel .slick-track::after,.ant-carousel .slick-track::before{display:table;content:''}.ant-carousel .slick-track::after{clear:both}.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-vertical .slick-slide{display:block;height:auto}.ant-carousel .slick-arrow.slick-hidden{display:none}.ant-carousel .slick-next,.ant-carousel .slick-prev{position:absolute;top:50%;display:block;width:20px;height:20px;margin-top:-10px;padding:0;color:transparent;font-size:0;line-height:0;background:0 0;border:0;outline:0;cursor:pointer}.ant-carousel .slick-next:focus,.ant-carousel .slick-next:hover,.ant-carousel .slick-prev:focus,.ant-carousel .slick-prev:hover{color:transparent;background:0 0;outline:0}.ant-carousel .slick-next:focus::before,.ant-carousel .slick-next:hover::before,.ant-carousel .slick-prev:focus::before,.ant-carousel .slick-prev:hover::before{opacity:1}.ant-carousel .slick-next.slick-disabled::before,.ant-carousel .slick-prev.slick-disabled::before{opacity:.25}.ant-carousel .slick-prev{left:-25px}.ant-carousel .slick-prev::before{content:'←'}.ant-carousel .slick-next::before,.ant-carousel-rtl .ant-carousel .slick-prev::before{content:'→'}.ant-carousel .slick-next{right:-25px}.ant-carousel .slick-dots{position:absolute;right:0;bottom:0;left:0;z-index:15;display:flex!important;justify-content:center;margin-right:15%;margin-left:15%;padding-left:0;list-style:none}.ant-carousel .slick-dots-bottom,.ant-popover-placement-leftBottom .ant-popover-arrow,.ant-popover-placement-rightBottom .ant-popover-arrow{bottom:12px}.ant-carousel .slick-dots-top{top:12px;bottom:auto}.ant-carousel .slick-dots li{position:relative;display:inline-block;flex:0 1 auto;box-sizing:content-box;width:16px;height:3px;margin:0 3px;padding:0;text-align:center;text-indent:-999px;vertical-align:top;transition:all .5s}.ant-carousel .slick-dots li button{display:block;width:100%;height:3px;padding:0;color:transparent;font-size:0;background:#141414;border:0;border-radius:1px;outline:0;cursor:pointer;opacity:.3;transition:all .5s}.ant-carousel .slick-dots li button:focus,.ant-carousel .slick-dots li button:hover{opacity:.75}.ant-carousel .slick-dots li.slick-active{width:24px}.ant-carousel .slick-dots li.slick-active button{background:#141414;opacity:1}.ant-carousel .slick-dots li.slick-active:focus,.ant-carousel .slick-dots li.slick-active:hover{opacity:1}.ant-carousel-vertical .slick-dots{top:50%;bottom:auto;flex-direction:column;width:3px;height:auto;margin:0;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-checkbox,.ant-checkbox-wrapper{margin:0;padding:0;box-sizing:border-box}.ant-carousel-vertical .slick-dots li button{width:3px;height:16px}.ant-carousel-vertical .slick-dots li.slick-active,.ant-carousel-vertical .slick-dots li.slick-active button{width:3px;height:24px}.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-next{right:auto;left:-25px}.ant-carousel-rtl .ant-carousel .slick-next::before{content:'←'}.ant-carousel-rtl.ant-carousel .slick-dots{flex-direction:row-reverse}.ant-carousel-rtl.ant-carousel-vertical .slick-dots{flex-direction:column}nz-carousel{display:block;position:relative;overflow:hidden;width:100%;height:100%}.slick-dots{display:block}.slick-track{opacity:1}.slick-list{direction:ltr}@keyframes antCheckboxEffect{0%{transform:scale(1);opacity:.5}100%{transform:scale(1.6);opacity:0}}.ant-checkbox{position:relative;top:.2em;white-space:nowrap;outline:0;cursor:pointer}.ant-checkbox-input:focus+.ant-checkbox-inner,.ant-checkbox-wrapper:hover .ant-checkbox-inner,.ant-checkbox:hover .ant-checkbox-inner{border-color:#177ddc}.ant-checkbox-checked::after{position:absolute;top:0;left:0;width:100%;height:100%;border:1px solid #177ddc;border-radius:2px;animation:antCheckboxEffect .36s ease-in-out;animation-fill-mode:backwards;content:''}.ant-checkbox-wrapper:hover .ant-checkbox::after,.ant-checkbox:hover::after{visibility:visible}.ant-checkbox-inner{position:relative;top:0;left:0;display:block;width:16px;height:16px;direction:ltr;background-color:transparent;border:1px solid #434343;border-radius:2px;border-collapse:separate;transition:all .3s}.ant-checkbox-inner::after{position:absolute;top:50%;left:22%;display:table;width:5.71px;height:9.14px;border:2px solid #fff;border-top:0;border-left:0;transform:rotate(45deg) scale(0) translate(-50%,-50%);opacity:0;transition:all .1s cubic-bezier(.71,-.46,.88,.6),opacity .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-disabled,.ant-checkbox-disabled .ant-checkbox-input,.ant-checkbox-disabled+span{cursor:not-allowed}.ant-checkbox-checked .ant-checkbox-inner::after{position:absolute;display:table;border:2px solid #fff;border-top:0;border-left:0;transform:rotate(45deg) scale(1) translate(-50%,-50%);opacity:1;transition:all .2s cubic-bezier(.12,.4,.29,1.46) .1s;content:' '}.ant-checkbox-checked .ant-checkbox-inner{background-color:#177ddc;border-color:#177ddc}.ant-checkbox-disabled.ant-checkbox-checked .ant-checkbox-inner::after{border-color:rgba(255,255,255,.3);animation-name:none}.ant-checkbox-disabled .ant-checkbox-inner{background-color:rgba(255,255,255,.08);border-color:#434343!important}.ant-checkbox-disabled .ant-checkbox-inner::after{border-color:rgba(255,255,255,.08);border-collapse:separate;animation-name:none}.ant-checkbox-disabled+span{color:rgba(255,255,255,.3)}.ant-checkbox-group,.ant-checkbox-wrapper{color:rgba(255,255,255,.85);font-variant:tabular-nums;list-style:none}.ant-checkbox-disabled:hover::after,.ant-checkbox-wrapper:hover .ant-checkbox-disabled::after{visibility:hidden}.ant-checkbox-wrapper{font-size:14px;font-feature-settings:tnum;display:inline-flex;align-items:baseline;line-height:unset;cursor:pointer}.ant-checkbox-wrapper::after{display:inline-block;width:0;overflow:hidden;content:'\a0'}.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,.ant-collapse{padding:0;line-height:1.5715;font-size:14px;font-feature-settings:tnum}.ant-checkbox-group{box-sizing:border-box;margin:0;display:inline-block}.ant-checkbox-group-item{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:transparent;border-color:#434343}.ant-checkbox-indeterminate .ant-checkbox-inner::after{top:50%;left:50%;width:8px;height:8px;background-color:#177ddc;border:0;transform:translate(-50%,-50%) scale(1);opacity:1;content:' '}.ant-checkbox-indeterminate.ant-checkbox-disabled .ant-checkbox-inner::after{background-color:rgba(255,255,255,.3);border-color:rgba(255,255,255,.3)}.ant-collapse,.ant-picker{color:rgba(255,255,255,.85);border:1px solid #434343;box-sizing:border-box;font-variant:tabular-nums;list-style:none}.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}.ant-checkbox+span:empty{display:none}.ant-collapse{margin:0;background-color:rgba(255,255,255,.04);border-bottom:0;border-radius:2px}.ant-collapse-item:last-child>.ant-collapse-content,.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{border-bottom:1px solid #434343}.ant-collapse>.ant-collapse-item>.ant-collapse-header{position:relative;padding:12px 16px;color:rgba(255,255,255,.85);line-height:1.5715;cursor:pointer;transition:all .3s,visibility 0s}.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{display:inline-block;margin-right:12px;font-size:12px;vertical-align:-1px}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow svg{transition:transform .24s}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-extra{float:right}.ant-collapse>.ant-collapse-item>.ant-collapse-header:focus{outline:0}.ant-collapse>.ant-collapse-item .ant-collapse-header-collapsible-only{cursor:default}.ant-collapse>.ant-collapse-item .ant-collapse-header-collapsible-only .ant-collapse-header-text{cursor:pointer}.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 40px 12px 16px}.ant-collapse-icon-position-right>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow{position:absolute;top:50%;right:16px;left:auto;margin:0;transform:translateY(-50%)}.ant-collapse-rtl.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow svg,.ant-picker-rtl .ant-picker-separator{transform:rotate(180deg)}.ant-collapse-content{color:rgba(255,255,255,.85);background-color:#141414;border-top:1px solid #434343}.ant-collapse-borderless,.ant-descriptions-bordered .ant-descriptions-item-label{background-color:rgba(255,255,255,.04)}.ant-collapse-content>.ant-collapse-content-box{padding:16px}.ant-collapse-content-hidden{display:none}nz-collapse,nz-collapse-panel,nz-comment,nz-comment-content{display:block}.ant-collapse-borderless{border:0}.ant-collapse-borderless>.ant-collapse-item{border-bottom:1px solid #434343}.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(255,255,255,.3);cursor:not-allowed}.ant-collapse-rtl .ant-collapse>.ant-collapse-item>.ant-collapse-header{padding:12px 40px 12px 16px}.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}.ant-comment{position:relative;background-color:transparent}.ant-comment-inner{display:flex;padding:16px 0}.ant-comment-avatar{position:relative;flex-shrink:0;margin-right:12px;cursor:pointer}.ant-comment-avatar img{width:32px;height:32px;border-radius:50%}.ant-comment-content{position:relative;flex:1 1 auto;min-width:1px;font-size:14px;word-wrap:break-word}.ant-comment-content-author{display:flex;flex-wrap:wrap;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{font-size:14px;transition:color .3s}.ant-comment-content-author-time{color:rgba(255,255,255,.3);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(255,255,255,.45)}.ant-comment-actions>li>span{margin-right:10px;color:rgba(255,255,255,.45);font-size:12px;cursor:pointer;transition:color .3s;user-select:none}.ant-picker,.ant-picker-input>input{font-size:14px;background:0 0;line-height:1.5715}.ant-comment-actions>li>span:hover{color:rgba(255,255,255,.65)}.ant-comment-nested{margin-left:44px}.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}.ant-picker,.ant-picker-input{display:inline-flex;position:relative}.ant-picker{margin:0;font-feature-settings:tnum;padding:4px 11px;align-items:center;border-radius:2px;transition:border .3s,box-shadow .3s}.ant-picker-focused,.ant-picker:hover{border-color:#165996;border-right-width:1px!important}.ant-input-rtl .ant-picker-focused,.ant-input-rtl .ant-picker:hover{border-right-width:0;border-left-width:1px!important}.ant-picker-focused{border-color:#177ddc;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(23,125,220,.2)}.ant-input-rtl .ant-picker-focused{border-right-width:0;border-left-width:1px!important}.ant-picker.ant-picker-disabled{background:rgba(255,255,255,.08);border-color:#434343;cursor:not-allowed}.ant-picker.ant-picker-disabled .ant-picker-suffix{color:rgba(255,255,255,.3)}.ant-picker.ant-picker-borderless{background-color:transparent!important;border-color:transparent!important;box-shadow:none!important}.ant-picker-input{align-items:center;width:100%}.ant-picker-input>input{position:relative;display:inline-block;width:100%;color:rgba(255,255,255,.85);border-radius:2px;transition:all .3s;flex:auto;min-width:1px;height:auto;padding:0;border:0}.ant-picker-input>input-disabled,.ant-picker-input>input[disabled]{background-color:rgba(255,255,255,.08);cursor:not-allowed;color:rgba(255,255,255,.3);opacity:1;pointer-events:none}.ant-picker-input>input::-moz-placeholder{opacity:1}.ant-picker-input>input::placeholder{color:rgba(255,255,255,.3)}.ant-picker-input>input:placeholder-shown{text-overflow:ellipsis}.ant-picker-input>input:hover{border-color:#165996;border-right-width:1px!important}.ant-input-rtl .ant-picker-input>input:hover{border-right-width:0;border-left-width:1px!important}.ant-picker-input>input-focused,.ant-picker-input>input:focus{border-color:#177ddc;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(23,125,220,.2)}.ant-input-rtl .ant-picker-input>input-focused,.ant-input-rtl .ant-picker-input>input:focus{border-right-width:0;border-left-width:1px!important}.ant-picker-input>input-disabled:hover,.ant-picker-input>input[disabled]:hover{border-color:#434343;border-right-width:1px!important}.ant-picker-input>input-borderless,.ant-picker-input>input-borderless-disabled,.ant-picker-input>input-borderless-focused,.ant-picker-input>input-borderless:focus,.ant-picker-input>input-borderless:hover,.ant-picker-input>input-borderless[disabled]{background-color:transparent;border:none;box-shadow:none}textarea.ant-picker-input>input{max-width:100%;height:auto;min-height:32px;line-height:1.5715;vertical-align:bottom;transition:all .3s,height 0s}.ant-picker-input>input-lg{padding:6.5px 11px;font-size:16px}.ant-picker-input>input-sm{padding:0 7px}.ant-picker-input>input:focus{box-shadow:none}.ant-picker-input>input[disabled]{background:0 0}.ant-picker-input:hover .ant-picker-clear{opacity:1}.ant-picker-input-placeholder>input{color:rgba(255,255,255,.3)}.ant-picker-large{padding:6.5px 11px}.ant-picker-large .ant-picker-input>input{font-size:16px}.ant-picker-small{padding:0 7px}.ant-picker-suffix{align-self:center;margin-left:4px;color:rgba(255,255,255,.3);line-height:1;pointer-events:none}.ant-picker-suffix>*{vertical-align:top}.ant-picker-clear{position:absolute;top:50%;right:0;color:rgba(255,255,255,.3);line-height:1;background:#141414;transform:translateY(-50%);cursor:pointer;opacity:0;transition:opacity .3s,color .3s}.ant-picker-clear>*{vertical-align:top}.ant-picker-clear:hover{color:rgba(255,255,255,.45)}.ant-picker-separator{position:relative;display:inline-block;width:1em;height:16px;color:rgba(255,255,255,.3);font-size:16px;vertical-align:top;cursor:default}.ant-picker-focused .ant-picker-separator{color:rgba(255,255,255,.45)}.ant-picker-disabled .ant-picker-range-separator .ant-picker-separator{cursor:not-allowed}.ant-picker-range{position:relative;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:#177ddc;opacity:0;transition:all .3s ease-out;pointer-events:none}.ant-picker-range.ant-picker-small .ant-picker-active-bar,.ant-tag>.anticon+span,.ant-tag>span+.anticon{margin-left:7px}.ant-picker-range.ant-picker-focused .ant-picker-active-bar{opacity:1}.ant-picker-range-separator{align-items:center;padding:0 8px;line-height:1}.ant-picker-range.ant-picker-small .ant-picker-clear{right:7px}.ant-picker-dropdown{box-sizing:border-box;margin:0;padding:0;color:rgba(255,255,255,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;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.67px;display:block;transform:rotate(-45deg)}.ant-picker-dropdown-placement-topLeft .ant-picker-range-arrow{bottom:1.67px;display:block;transform:rotate(135deg)}.ant-picker-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-picker-dropdown-placement-topLeft,.ant-picker-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-picker-dropdown-placement-topRight,.ant-picker-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-picker-dropdown-placement-topLeft,.ant-picker-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-picker-dropdown-placement-topRight{animation-name:antSlideDownIn}.ant-cascader-menus.ant-slide-up-appear.ant-slide-up-appear-active.ant-cascader-menus-placement-bottomLeft,.ant-cascader-menus.ant-slide-up-enter.ant-slide-up-enter-active.ant-cascader-menus-placement-bottomLeft,.ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottomCenter,.ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottomLeft,.ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottomRight,.ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottomCenter,.ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottomLeft,.ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottomRight,.ant-picker-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-picker-dropdown-placement-bottomLeft,.ant-picker-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-picker-dropdown-placement-bottomRight,.ant-picker-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-picker-dropdown-placement-bottomLeft,.ant-picker-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-picker-dropdown-placement-bottomRight,.ant-select-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-select-dropdown-placement-bottomLeft,.ant-select-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-select-dropdown-placement-bottomLeft{animation-name:antSlideUpIn}.ant-picker-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-picker-dropdown-placement-topLeft,.ant-picker-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-picker-dropdown-placement-topRight{animation-name:antSlideDownOut}.ant-picker-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-picker-dropdown-placement-bottomLeft,.ant-picker-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-picker-dropdown-placement-bottomRight{animation-name:antSlideUpOut}.ant-picker-dropdown-range{padding:6.67px 0}.ant-picker-dropdown .ant-picker-panel>.ant-picker-time-panel,.ant-steps-with-progress .ant-steps-item{padding-top:4px}.ant-picker-dropdown-range-hidden{display:none}.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:#177ddc;background:#111b26;border-color:#153450;cursor:pointer}.ant-picker-ranges .ant-picker-ok{float:right;margin-left:8px}.ant-picker-range-wrapper{display:flex}.ant-picker-range-arrow{position:absolute;z-index:1;display:none;width:10px;height:10px;margin-left:16.5px;box-shadow:2px -2px 6px rgba(0,0,0,.06);transition:left .3s ease-out}.ant-picker-range-arrow::after{position:absolute;top:1px;right:1px;width:10px;height:10px;border:5px solid #303030;border-color:#1f1f1f #1f1f1f transparent transparent;content:''}.ant-picker-panel-container{overflow:hidden;vertical-align:top;background:#1f1f1f;border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.48),0 6px 16px 0 rgba(0,0,0,.32),0 9px 28px 8px rgba(0,0,0,.2);transition:margin .3s}.ant-picker-panel-container .ant-picker-panels{display:inline-flex;flex-wrap:nowrap;direction:ltr}.ant-picker-panel-container .ant-picker-panel{vertical-align:top;background:0 0;border-width:0 0 1px;border-radius:0}.ant-picker-panel-container .ant-picker-panel-focused{border-color:#303030}.ant-picker-panel{display:inline-flex;flex-direction:column;text-align:center;background:#1f1f1f;border:1px solid #303030;border-radius:2px;outline:0}.ant-picker-panel-focused{border-color:#177ddc}.ant-picker-date-panel,.ant-picker-decade-panel,.ant-picker-month-panel,.ant-picker-quarter-panel,.ant-picker-time-panel,.ant-picker-week-panel,.ant-picker-year-panel{display:flex;flex-direction:column;width:280px}.ant-picker-header{display:flex;padding:0 8px;color:rgba(255,255,255,.85);border-bottom:1px solid #303030}.ant-picker-header>*{flex:none}.ant-picker-header button{padding:0;color:rgba(255,255,255,.3);line-height:40px;background:0 0;border:0;cursor:pointer;transition:color .3s}.ant-picker-header>button{min-width:1.6em;font-size:14px}.ant-picker-header>button:hover{color:rgba(255,255,255,.85)}.ant-picker-header-view{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:#177ddc}.ant-picker-next-icon,.ant-picker-prev-icon,.ant-picker-super-next-icon,.ant-picker-super-prev-icon{position:relative;display:inline-block;width:7px;height:7px}.ant-picker-next-icon::before,.ant-picker-prev-icon::before,.ant-picker-super-next-icon::before,.ant-picker-super-prev-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-next-icon::after,.ant-picker-super-prev-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{transform:rotate(-45deg)}.ant-picker-next-icon,.ant-picker-super-next-icon{transform:rotate(135deg)}.ant-picker-content{width:100%;table-layout:fixed}.ant-picker-content td,.ant-picker-content th{position:relative;min-width:24px;font-weight:400}.ant-picker-content th{height:30px;color:rgba(255,255,255,.85);line-height:30px}.ant-picker-cell{padding:3px 0;color:rgba(255,255,255,.3);cursor:pointer}.ant-picker-cell-in-view{color:rgba(255,255,255,.85)}.ant-picker-cell-disabled{cursor:not-allowed;pointer-events:none}.ant-picker-cell::before{position:absolute;top:50%;right:0;left:0;z-index:1;height:24px;transform:translateY(-50%);content:''}.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:rgba(255,255,255,.08)}.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 #177ddc;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:#111b26}.ant-picker-cell-in-view.ant-picker-cell-range-end .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-selected .ant-picker-cell-inner{color:#fff;background:#177ddc}.ant-picker-cell-in-view.ant-picker-cell-range-end:not(.ant-picker-cell-range-end-single)::before,.ant-picker-cell-in-view.ant-picker-cell-range-start:not(.ant-picker-cell-range-start-single)::before{background:#111b26}.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-end.ant-picker-cell-range-end-single::after,.ant-picker-cell-in-view.ant-picker-cell-range-hover-end.ant-picker-cell-range-start.ant-picker-cell-range-end.ant-picker-cell-range-start-near-hover::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-start.ant-picker-cell-range-start.ant-picker-cell-range-end.ant-picker-cell-range-end-near-hover::after,.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:not(.ant-picker-cell-in-range)::after{position:absolute;top:50%;z-index:0;height:24px;border-top:1px dashed #0e4980;border-bottom:1px dashed #0e4980;transform:translateY(-50%);content:''}.ant-picker-cell-range-hover-end::after,.ant-picker-cell-range-hover-start::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-end.ant-picker-cell-range-hover::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-cell-in-view.ant-picker-cell-range-start.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-panel>:not(.ant-picker-date-panel) .ant-picker-cell-in-view.ant-picker-cell-in-range.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{background:#06213a}.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-end .ant-picker-cell-inner::after,.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{position:absolute;top:0;bottom:0;z-index:-1;background:#06213a;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:-6px;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:-6px}.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%}.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,.ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover-edge-start.ant-picker-cell-range-hover-edge-start-near-range::after,tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover-end:first-child::after,tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover:first-child::after{left:6px;border-left:1px dashed #0e4980;border-top-left-radius:2px;border-bottom-left-radius:2px}.ant-picker-cell-in-view.ant-picker-cell-end.ant-picker-cell-range-hover-edge-end.ant-picker-cell-range-hover-edge-end-near-range::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,tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::after,tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover:last-child::after{right:6px;border-right:1px dashed #0e4980;border-top-right-radius:2px;border-bottom-right-radius:2px}.ant-picker-cell-disabled .ant-picker-cell-inner{color:rgba(255,255,255,.3);background:0 0}.ant-picker-cell-disabled::before,.ant-picker-decade-panel .ant-picker-cell-disabled .ant-picker-cell-inner,.ant-picker-month-panel .ant-picker-cell-disabled .ant-picker-cell-inner,.ant-picker-quarter-panel .ant-picker-cell-disabled .ant-picker-cell-inner,.ant-picker-year-panel .ant-picker-cell-disabled .ant-picker-cell-inner{background:#303030}.ant-picker-cell-disabled.ant-picker-cell-today .ant-picker-cell-inner::before{border-color:rgba(255,255,255,.3)}.ant-picker-decade-panel .ant-picker-content,.ant-picker-month-panel .ant-picker-content,.ant-picker-quarter-panel .ant-picker-content,.ant-picker-year-panel .ant-picker-content{height:264px}.ant-picker-decade-panel .ant-picker-cell-inner,.ant-picker-month-panel .ant-picker-cell-inner,.ant-picker-quarter-panel .ant-picker-cell-inner,.ant-picker-year-panel .ant-picker-cell-inner{padding:0 8px}.ant-picker-quarter-panel .ant-picker-content{height:56px}.ant-picker-footer{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 #303030}.ant-picker-footer-extra{padding:0 12px;line-height:38px;text-align:left}.ant-picker-footer-extra:not(:last-child){border-bottom:1px solid #303030}.ant-picker-now{text-align:left}.ant-picker-today-btn{color:#177ddc}.ant-picker-today-btn:hover{color:#165996}.ant-picker-today-btn:active{color:#388ed3}.ant-picker-today-btn.ant-picker-today-btn-disabled{color:rgba(255,255,255,.3);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-month-panel .ant-picker-body,.ant-picker-quarter-panel .ant-picker-body,.ant-picker-year-panel .ant-picker-body{padding:0 8px}.ant-picker-date-panel .ant-picker-body,.ant-picker-week-panel .ant-picker-body{padding:8px 12px}.ant-picker-month-panel .ant-picker-cell-inner,.ant-picker-quarter-panel .ant-picker-cell-inner,.ant-picker-year-panel .ant-picker-cell-inner{width:60px}.ant-picker-month-panel .ant-picker-cell-range-hover-start::after,.ant-picker-quarter-panel .ant-picker-cell-range-hover-start::after,.ant-picker-year-panel .ant-picker-cell-range-hover-start::after{left:14px;border-left:1px dashed #0e4980;border-radius:2px 0 0 2px}.ant-picker-month-panel .ant-picker-cell-range-hover-end::after,.ant-picker-panel-rtl .ant-picker-month-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-year-panel .ant-picker-cell-range-hover-start::after,.ant-picker-quarter-panel .ant-picker-cell-range-hover-end::after,.ant-picker-year-panel .ant-picker-cell-range-hover-end::after{right:14px;border-right:1px dashed #0e4980;border-radius:0 2px 2px 0}.ant-picker-panel-rtl .ant-picker-month-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-year-panel .ant-picker-cell-range-hover-end::after{left:14px;border-left:1px dashed #0e4980;border-radius:2px 0 0 2px}.ant-picker-week-panel .ant-picker-cell .ant-picker-cell-inner,.ant-picker-week-panel .ant-picker-cell-selected .ant-picker-cell-inner,.ant-picker-week-panel .ant-picker-cell:hover .ant-picker-cell-inner{background:0 0!important}.ant-picker-week-panel-row td{transition:background .3s}.ant-picker-week-panel-row:hover td{background:rgba(255,255,255,.08)}.ant-picker-week-panel-row-selected td,.ant-picker-week-panel-row-selected:hover td{background:#177ddc}.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,.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-datetime-panel .ant-picker-time-panel,.ant-picker-time-panel-column:not(:first-child){border-left:1px solid #303030}.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-content{width:252px}.ant-picker-date-panel .ant-picker-content th{width:36px}.ant-picker-datetime-panel{display:flex}.ant-picker-datetime-panel .ant-picker-date-panel,.ant-picker-datetime-panel .ant-picker-time-panel{transition:opacity .3s}.ant-picker-datetime-panel-active .ant-picker-date-panel,.ant-picker-datetime-panel-active .ant-picker-time-panel{opacity:.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:flex;flex:auto;height:224px}.ant-picker-time-panel-column{flex:1 0 auto;width:56px;margin:0;padding:0;overflow-y:hidden;text-align:left;list-style:none;transition:background .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-active{background:rgba(17,27,38,.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 0 0 14px;color:rgba(255,255,255,.85);line-height:28px;border-radius:0;cursor:pointer;transition:background .3s}.ant-picker-time-panel-column>li.ant-picker-time-panel-cell .ant-picker-time-panel-cell-inner:hover{background:rgba(255,255,255,.08)}.ant-menu-item:active,.ant-menu-submenu-title:active,.ant-picker-time-panel-column>li.ant-picker-time-panel-cell-selected .ant-picker-time-panel-cell-inner{background:#111b26}.ant-picker-time-panel-column>li.ant-picker-time-panel-cell-disabled .ant-picker-time-panel-cell-inner{color:rgba(255,255,255,.3);background:0 0;cursor:not-allowed}:root .ant-picker-range-wrapper .ant-picker-month-panel .ant-picker-cell,:root .ant-picker-range-wrapper .ant-picker-year-panel .ant-picker-cell,_:-ms-fullscreen .ant-picker-range-wrapper .ant-picker-month-panel .ant-picker-cell,_:-ms-fullscreen .ant-picker-range-wrapper .ant-picker-year-panel .ant-picker-cell{padding:21px 0}.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-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-rtl.ant-picker-range.ant-picker-small .ant-picker-active-bar{margin-right:7px}.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{transform:rotate(135deg)}.ant-picker-panel-rtl .ant-picker-next-icon,.ant-picker-panel-rtl .ant-picker-super-next-icon{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;transition:background .3s,border .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-cell-in-view.ant-picker-cell-range-start.ant-picker-cell-range-end::before{right:50%;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:-6px}.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:-6px;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 .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:0 2px 2px 0}.ant-picker-panel-rtl .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:2px 0 0 2px}.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,.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover-edge-start.ant-picker-cell-range-hover-edge-start-near-range::after,.ant-picker-panel-rtl tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover:not(.ant-picker-cell-selected):first-child::after{right:6px;left:0;border-right:1px dashed #0e4980;border-left:none;border-radius:0 2px 2px 0}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-end.ant-picker-cell-range-hover-edge-end.ant-picker-cell-range-hover-edge-end-near-range::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,.ant-picker-panel-rtl tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover:not(.ant-picker-cell-selected):last-child::after{right:0;left:6px;border-right:none;border-left:1px dashed #0e4980;border-radius:2px 0 0 2px}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-end.ant-picker-cell-range-hover-start.ant-picker-cell-range-hover-edge-end:not(.ant-picker-cell-range-hover)::after,.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover-edge-start:not(.ant-picker-cell-range-hover)::after,.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover-end.ant-picker-cell-range-hover-edge-start:not(.ant-picker-cell-range-hover)::after,.ant-picker-panel-rtl tr>.ant-picker-cell-in-view.ant-picker-cell-end.ant-picker-cell-range-hover.ant-picker-cell-range-hover-edge-end: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 tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::after,.ant-picker-panel-rtl tr>.ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover.ant-picker-cell-range-hover-edge-start:last-child::after{right:6px;left:6px;border-right:1px dashed #0e4980;border-left:1px dashed #0e4980;border-radius:2px}.ant-picker-dropdown-rtl .ant-picker-footer-extra{direction:rtl;text-align:right}.ant-picker-panel-rtl .ant-picker-time-panel{direction:ltr}.ant-descriptions-rtl,.ant-divider-rtl,.ant-drawer-rtl,.ant-dropdown-menu.ant-dropdown-menu-rtl,.ant-dropdown-rtl,.ant-dropdown-rtl .ant-dropdown-menu-item-group-title,.ant-empty-rtl,.ant-input-affix-wrapper-rtl,.ant-input-group-rtl,.ant-input-group-wrapper-rtl,.ant-input-number-rtl,.ant-input-rtl,.ant-input-search-rtl,.ant-input-textarea-rtl,.ant-row-rtl{direction:rtl}.ant-picker-inline{border:none;padding:0}.ant-picker-inline .ant-picker-range-arrow{display:none!important}.ant-descriptions-header{display:flex;align-items:center;margin-bottom:20px}.ant-descriptions-title{flex:auto;overflow:hidden;color:rgba(255,255,255,.85);font-weight:700;font-size:16px;line-height:1.5715;white-space:nowrap;text-overflow:ellipsis}.ant-descriptions-extra,.ant-descriptions-item-content,.ant-descriptions-item-label,.ant-divider{font-size:14px;color:rgba(255,255,255,.85)}.ant-descriptions-extra{margin-left:auto}.ant-descriptions-view{width:100%;overflow:hidden;border-radius:2px}.ant-descriptions-view table{width:100%;table-layout:fixed}.ant-descriptions-row>td,.ant-descriptions-row>th{padding-bottom:16px}.ant-descriptions-row:last-child{border-bottom:none}.ant-descriptions-item-label{font-weight:400;line-height:1.5715;text-align:start}.ant-descriptions-item-label::after{content:':';position:relative;top:-.5px;margin:0 8px 0 2px}.ant-descriptions-item-label.ant-descriptions-item-no-colon::after,.ant-dropdown::before{content:' '}.ant-descriptions-item-no-label::after{margin:0;content:''}.ant-descriptions-item-content{display:table-cell;flex:1;line-height:1.5715;word-break:break-word;overflow-wrap:break-word}.ant-descriptions-item{padding-bottom:0;vertical-align:top}.ant-descriptions-item-container{display:flex}.ant-descriptions-item-container .ant-descriptions-item-content,.ant-descriptions-item-container .ant-descriptions-item-label{display:inline-flex;align-items:baseline}.ant-descriptions-middle .ant-descriptions-row>td,.ant-descriptions-middle .ant-descriptions-row>th{padding-bottom:12px}.ant-descriptions-small .ant-descriptions-row>td,.ant-descriptions-small .ant-descriptions-row>th{padding-bottom:8px}.ant-descriptions-bordered .ant-descriptions-view{border:1px solid #303030}.ant-descriptions-bordered .ant-descriptions-view>table{table-layout:auto}.ant-descriptions-bordered .ant-descriptions-item-content,.ant-descriptions-bordered .ant-descriptions-item-label{padding:16px 24px;border-right:1px solid #303030}.ant-descriptions-bordered .ant-descriptions-item-content:last-child,.ant-descriptions-bordered .ant-descriptions-item-label:last-child{border-right:none}.ant-descriptions-bordered .ant-descriptions-item-label::after{display:none}.ant-descriptions-bordered .ant-descriptions-row{border-bottom:1px solid #303030}.ant-descriptions-bordered .ant-descriptions-row:last-child{border-bottom:none}.ant-descriptions-bordered.ant-descriptions-middle .ant-descriptions-item-content,.ant-descriptions-bordered.ant-descriptions-middle .ant-descriptions-item-label{padding:12px 24px}.ant-descriptions-bordered.ant-descriptions-small .ant-descriptions-item-content,.ant-descriptions-bordered.ant-descriptions-small .ant-descriptions-item-label{padding:8px 16px}.ant-descriptions-rtl .ant-descriptions-item-label::after{margin:0 2px 0 8px}.ant-descriptions-rtl.ant-descriptions-bordered .ant-descriptions-item-content,.ant-descriptions-rtl.ant-descriptions-bordered .ant-descriptions-item-label{border-right:none;border-left:1px solid #303030}.ant-descriptions-rtl.ant-descriptions-bordered .ant-descriptions-item-content:last-child,.ant-descriptions-rtl.ant-descriptions-bordered .ant-descriptions-item-label:last-child{border-left:none}nz-descriptions{display:block}.ant-divider{box-sizing:border-box;margin:0;padding:0;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:tnum;border-top:1px solid rgba(255,255,255,.12)}.ant-divider-vertical{position:relative;top:-.06em;display:inline-block;height:.9em;margin:0 8px;vertical-align:middle;border-top:0;border-left:1px solid rgba(255,255,255,.12)}.ant-divider-horizontal{display:flex;clear:both;width:100%;min-width:100%;margin:24px 0}.ant-divider-horizontal.ant-divider-with-text{display:flex;margin:16px 0;color:rgba(255,255,255,.85);font-weight:500;font-size:16px;white-space:nowrap;text-align:center;border-top:0;border-top-color:rgba(255,255,255,.12)}.ant-divider-horizontal.ant-divider-with-text::after,.ant-divider-horizontal.ant-divider-with-text::before{position:relative;top:50%;width:50%;border-top:1px solid transparent;border-top-color:inherit;border-bottom:0;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,.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:0 0;border-color:rgba(255,255,255,.12);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::after,.ant-divider-horizontal.ant-divider-with-text.ant-divider-dashed::before{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(255,255,255,.85);font-weight:400;font-size:14px}.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,.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%}.ant-drawer{position:fixed;z-index:1000;width:0%;height:100%;transition:transform .3s cubic-bezier(.7,.3,.1,1),height 0s ease .3s,width 0s ease .3s}.ant-drawer>*{transition:transform .3s cubic-bezier(.7,.3,.1,1),box-shadow .3s cubic-bezier(.7,.3,.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%;transition:transform .3s cubic-bezier(.7,.3,.1,1)}.ant-drawer-left,.ant-drawer-left .ant-drawer-content-wrapper{left:0}.ant-drawer-left.ant-drawer-open .ant-drawer-content-wrapper{box-shadow:6px 0 16px -8px rgba(0,0,0,.32),9px 0 28px 0 rgba(0,0,0,.2),12px 0 48px 16px rgba(0,0,0,.12)}.ant-drawer-right,.ant-drawer-right .ant-drawer-content-wrapper{right:0}.ant-drawer-right.ant-drawer-open .ant-drawer-content-wrapper{box-shadow:-6px 0 16px -8px rgba(0,0,0,.08),-9px 0 28px 0 rgba(0,0,0,.05),-12px 0 48px 16px rgba(0,0,0,.03)}.ant-drawer-top.ant-drawer-open .ant-drawer-content-wrapper,.header-dropdown{box-shadow:0 6px 16px -8px rgba(0,0,0,.32),0 9px 28px 0 rgba(0,0,0,.2),0 12px 48px 16px rgba(0,0,0,.12)}.ant-drawer-right.ant-drawer-open.no-mask{right:1px;transform:translateX(1px)}.ant-drawer-bottom,.ant-drawer-top{left:0;width:100%;height:0%}.ant-drawer-bottom .ant-drawer-content-wrapper,.ant-drawer-top .ant-drawer-content-wrapper{width:100%}.ant-drawer-bottom.ant-drawer-open,.ant-drawer-top.ant-drawer-open{height:100%;transition:transform .3s cubic-bezier(.7,.3,.1,1)}.ant-drawer-top{top:0}.ant-drawer-bottom,.ant-drawer-bottom .ant-drawer-content-wrapper{bottom:0}.ant-drawer-bottom.ant-drawer-open .ant-drawer-content-wrapper{box-shadow:0 -6px 16px -8px rgba(0,0,0,.32),0 -9px 28px 0 rgba(0,0,0,.2),0 -12px 48px 16px rgba(0,0,0,.12)}.ant-drawer-bottom.ant-drawer-open.no-mask{bottom:1px;transform:translateY(1px)}.ant-drawer.ant-drawer-open .ant-drawer-mask{height:100%;opacity:1;transition:none;animation:antdDrawerFadeIn .3s cubic-bezier(.7,.3,.1,1);pointer-events:auto}.ant-drawer-mask,.ant-dropdown-menu-item-disabled a,.ant-dropdown-menu-submenu-title-disabled a{pointer-events:none}.ant-drawer-title{margin:0;color:rgba(255,255,255,.85);font-weight:500;font-size:16px;line-height:22px}.ant-drawer-content{position:relative;z-index:1;overflow:auto;background-color:#1f1f1f;background-clip:padding-box;border:0}.ant-drawer-close{position:absolute;top:0;right:0;z-index:10;display:block;padding:20px;color:rgba(255,255,255,.45);font-weight:700;font-size:16px;font-style:normal;line-height:1;text-align:center;text-transform:none;text-decoration:none;background:0 0;border:0;outline:0;cursor:pointer;transition:color .3s;text-rendering:auto}.ant-drawer .ant-table.ant-table-bordered .ant-table-cell-fix-right-first::after,.ant-drawer .ant-table.ant-table-bordered .ant-table-expanded-row-fixed::after,.ant-drawer .ant-table.ant-table-bordered tbody>tr>td,.ant-drawer .ant-table.ant-table-bordered tfoot>tr>td,.ant-drawer .ant-table.ant-table-bordered tfoot>tr>th,.ant-drawer .ant-table.ant-table-bordered thead>tr>th,.ant-modal .ant-table.ant-table-bordered .ant-table-cell-fix-right-first::after,.ant-modal .ant-table.ant-table-bordered .ant-table-expanded-row-fixed::after,.ant-modal .ant-table.ant-table-bordered tbody>tr>td,.ant-modal .ant-table.ant-table-bordered tfoot>tr>td,.ant-modal .ant-table.ant-table-bordered tfoot>tr>th,.ant-modal .ant-table.ant-table-bordered thead>tr>th,.ant-notification .ant-table.ant-table-bordered .ant-table-cell-fix-right-first::after,.ant-notification .ant-table.ant-table-bordered .ant-table-expanded-row-fixed::after,.ant-notification .ant-table.ant-table-bordered tbody>tr>td,.ant-notification .ant-table.ant-table-bordered tfoot>tr>td,.ant-notification .ant-table.ant-table-bordered tfoot>tr>th,.ant-notification .ant-table.ant-table-bordered thead>tr>th{border-right:1px solid #3a3a3a}.ant-drawer-close:focus,.ant-drawer-close:hover{color:rgba(255,255,255,.75);text-decoration:none}.ant-drawer-header,.ant-drawer-header-no-title{color:rgba(255,255,255,.85);background:#1f1f1f}.ant-drawer-header-no-title .ant-drawer-close{margin-right:var(--scroll-bar);padding-right:calc(20px - var(--scroll-bar))}.ant-drawer-header{position:relative;padding:16px 24px;border-bottom:1px solid #303030;border-radius:2px 2px 0 0}.ant-drawer .ant-table tbody>tr>td,.ant-drawer .ant-table tfoot>tr>td,.ant-drawer .ant-table tfoot>tr>th,.ant-drawer .ant-table thead>tr>th,.ant-drawer .ant-table.ant-table-small thead>tr>th,.ant-drawer .ant-transfer-list-header{border-bottom:1px solid #3a3a3a}.ant-drawer-wrapper-body{display:flex;flex-direction:column;flex-wrap:nowrap;width:100%;height:100%}.ant-drawer-body{flex-grow:1;padding:24px;overflow:auto;font-size:14px;line-height:1.5715;word-wrap:break-word}.ant-drawer-footer{flex-shrink:0;padding:10px 16px;border-top:1px solid #303030}.ant-drawer .ant-table .ant-table-row-expand-icon,.ant-drawer .ant-table.ant-table-bordered .ant-table-title{border:1px solid #3a3a3a}.ant-drawer-mask{position:absolute;top:0;left:0;width:100%;height:0;background-color:rgba(0,0,0,.45);opacity:0;filter:alpha(opacity=45);transition:opacity .3s linear,height 0s ease .3s}.ant-drawer-open-content{box-shadow:0 3px 6px -4px rgba(0,0,0,.48),0 6px 16px 0 rgba(0,0,0,.32),0 9px 28px 8px rgba(0,0,0,.2)}.ant-drawer .ant-picker-clear{background:#1f1f1f}@keyframes antdDrawerFadeIn{0%{opacity:0}100%{opacity:1}}.ant-drawer .ant-anchor-wrapper,.ant-drawer .ant-card,.ant-drawer .ant-collapse-content,.ant-drawer .ant-picker-clear,.ant-drawer .ant-slider-handle,.ant-drawer .ant-timeline-item-head{background-color:#1f1f1f}.ant-drawer .ant-transfer-list-header{background:#1f1f1f}.ant-drawer .ant-transfer-list-content-item:not(.ant-transfer-list-content-item-disabled):hover{background-color:rgba(255,255,255,.08)}.ant-drawer tr.ant-table-expanded-row:hover>td,.ant-drawer tr.ant-table-expanded-row>td{background:#272727}.ant-drawer .ant-table,.ant-drawer .ant-table.ant-table-small thead>tr>th{background-color:#1f1f1f}.ant-drawer .ant-table thead>tr>th{background-color:#272727}.ant-drawer .ant-table tbody>tr>td.ant-table-cell-fix-left,.ant-drawer .ant-table tbody>tr>td.ant-table-cell-fix-right{background-color:#1f1f1f}.ant-drawer .ant-table tbody>tr.ant-table-row:hover>td{background:#303030}.ant-drawer .ant-table.ant-table-bordered table thead>tr:not(:last-child)>th{border-bottom:1px solid #303030}.ant-drawer .ant-table.ant-table-bordered .ant-table-container,.ant-drawer .ant-table.ant-table-bordered .ant-table-footer{border:1px solid #3a3a3a}.ant-drawer .ant-table .ant-table-filter-trigger-container-open{background-color:#525252}.ant-drawer .ant-picker-calendar-full,.ant-drawer .ant-picker-calendar-full .ant-picker-panel{background-color:#1f1f1f}.ant-drawer .ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date{border-top:2px solid #3a3a3a}.ant-drawer .ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-active{background-color:#1f1f1f;border-bottom:1px solid #1f1f1f}.ant-drawer .ant-badge-count{box-shadow:0 0 0 1px #1f1f1f}.ant-drawer .ant-tree-show-line .ant-tree-switcher{background:#1f1f1f}.ant-drawer-rtl .ant-drawer-close{right:auto;left:0}.ant-dropdown-menu-item.ant-dropdown-menu-item-danger{color:#a61d24}.ant-dropdown-menu-item.ant-dropdown-menu-item-danger:hover{color:#fff;background-color:#a61d24}.ant-dropdown{box-sizing:border-box;margin:0;padding:0;color:rgba(255,255,255,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:tnum;z-index:1050;display:block}.ant-dropdown::before{position:absolute;top:-4px;right:0;bottom:-4px;left:-7px;z-index:-9999;opacity:.0001}.ant-dropdown-placement-bottomRight>.ant-dropdown-arrow,.ant-dropdown-placement-topRight>.ant-dropdown-arrow{right:16px}.ant-dropdown-wrap{position:relative}.ant-dropdown-wrap .ant-btn>.anticon-down{font-size:10px}.ant-dropdown-wrap .anticon-down::before{transition:transform .2s}.ant-dropdown-wrap-open .anticon-down::before{transform:rotate(180deg)}.ant-dropdown-hidden,.ant-dropdown-menu-hidden,.ant-dropdown-menu-submenu-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.49px;height:8.49px;background:0 0;border-style:solid;border-width:4.24px;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;box-shadow:3px 3px 7px rgba(0,0,0,.07);border-color:transparent #1f1f1f #1f1f1f transparent}.ant-dropdown-placement-topCenter>.ant-dropdown-arrow{left:50%;transform:translateX(-50%) rotate(45deg)}.ant-dropdown-placement-topLeft>.ant-dropdown-arrow{left:16px}.ant-dropdown-placement-bottomCenter>.ant-dropdown-arrow,.ant-dropdown-placement-bottomLeft>.ant-dropdown-arrow,.ant-dropdown-placement-bottomRight>.ant-dropdown-arrow{top:6px;box-shadow:-2px -2px 5px rgba(0,0,0,.06);border-color:#1f1f1f transparent transparent #1f1f1f}.ant-dropdown-menu,.ant-menu{box-shadow:0 3px 6px -4px rgba(0,0,0,.48),0 6px 16px 0 rgba(0,0,0,.32),0 9px 28px 8px rgba(0,0,0,.2)}.ant-dropdown-placement-bottomCenter>.ant-dropdown-arrow{left:50%;transform:translateX(-50%) rotate(45deg)}.ant-dropdown-placement-bottomLeft>.ant-dropdown-arrow{left:16px}.ant-dropdown-menu{position:relative;margin:0;padding:4px 0;text-align:left;list-style-type:none;background-color:#1f1f1f;background-clip:padding-box;border-radius:2px;outline:0}.ant-dropdown-menu-item-group-title{padding:5px 12px;color:rgba(255,255,255,.45);transition:all .3s}.ant-dropdown-menu-submenu-popup{position:absolute;z-index:1050;background:0 0;box-shadow:none;transform-origin:0 0}.ant-dropdown-menu-submenu-popup li,.ant-dropdown-menu-submenu-popup ul{list-style:none}.ant-dropdown-menu-submenu-popup ul{margin-right:.3em;margin-left:.3em}.ant-dropdown-menu-item{position:relative;display:flex;align-items:center}.ant-dropdown-menu-item-icon{min-width:12px;margin-right:8px;font-size:12px}.ant-dropdown-menu-title-content{flex:auto}.ant-dropdown-menu-title-content>a{color:inherit;transition:all .3s}.ant-dropdown-menu-title-content>a:hover{color:inherit}.ant-dropdown-menu-title-content>a::after{position:absolute;top:0;right:0;bottom:0;left:0;content:''}.ant-dropdown-menu-item,.ant-dropdown-menu-submenu-title{clear:both;margin:0;padding:5px 12px;color:rgba(255,255,255,.85);font-weight:400;font-size:14px;line-height:22px;white-space:nowrap;cursor:pointer;transition:all .3s}.ant-dropdown-menu-item-selected,.ant-dropdown-menu-submenu-title-selected{color:#177ddc;background-color:#111b26}.ant-dropdown-menu-item:hover,.ant-dropdown-menu-submenu-title:hover{background-color:rgba(255,255,255,.08)}.ant-dropdown-menu-item-disabled,.ant-dropdown-menu-submenu-title-disabled{color:rgba(255,255,255,.3);cursor:not-allowed}.ant-dropdown-menu-item-disabled:hover,.ant-dropdown-menu-submenu-title-disabled:hover{color:rgba(255,255,255,.3);background-color:transparent;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:#303030}.ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon,.ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon{position:absolute;right:8px}.ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon,.ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon{margin-right:0!important;color:rgba(255,255,255,.45);font-size:10px;font-style:normal}.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;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(255,255,255,.3);background-color:transparent;cursor:not-allowed}.ant-dropdown-menu-submenu-selected .ant-dropdown-menu-submenu-title{color:#177ddc}.ant-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-dropdown-placement-topCenter,.ant-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-dropdown-placement-topLeft,.ant-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-dropdown-placement-topRight,.ant-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-dropdown-placement-topCenter,.ant-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-dropdown-placement-topLeft,.ant-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-dropdown-placement-topRight{animation-name:antSlideDownIn}.ant-dropdown.ant-slide-down-leave.ant-slide-down-leave-active.ant-dropdown-placement-bottomCenter,.ant-dropdown.ant-slide-down-leave.ant-slide-down-leave-active.ant-dropdown-placement-bottomLeft,.ant-dropdown.ant-slide-down-leave.ant-slide-down-leave-active.ant-dropdown-placement-bottomRight{animation-name:antSlideUpOut}.ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-dropdown-placement-topCenter,.ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-dropdown-placement-topLeft,.ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-dropdown-placement-topRight{animation-name:antSlideDownOut}.ant-dropdown-button>.anticon.anticon-down,.ant-dropdown-link>.anticon.anticon-down,.ant-dropdown-trigger>.anticon.anticon-down{font-size:10px;vertical-align:baseline}.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:#1f1f1f}.ant-dropdown-menu-dark .ant-dropdown-menu-item,.ant-dropdown-menu-dark .ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow::after,.ant-dropdown-menu-dark .ant-dropdown-menu-item>.anticon+span>a,.ant-dropdown-menu-dark .ant-dropdown-menu-item>.anticon+span>a .ant-dropdown-menu-submenu-arrow::after,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a .ant-dropdown-menu-submenu-arrow::after,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow::after{color:rgba(255,255,255,.65)}.ant-dropdown-menu-dark .ant-dropdown-menu-item:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item>.anticon+span>a:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title:hover{color:#fff;background:0 0}.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:#177ddc}.ant-dropdown-rtl.ant-dropdown::before{right:-7px;left:0}.ant-dropdown-menu.ant-dropdown-menu-rtl,.ant-dropdown-rtl .ant-dropdown-menu-item-group-title{text-align:right}.ant-dropdown-menu-submenu-popup.ant-dropdown-menu-submenu-rtl{transform-origin:100% 0}.ant-dropdown-rtl .ant-dropdown-menu-item,.ant-dropdown-rtl .ant-dropdown-menu-submenu-popup li,.ant-dropdown-rtl .ant-dropdown-menu-submenu-popup ul,.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-item>span>.anticon:first-child,.ant-dropdown-rtl .ant-dropdown-menu-submenu-title>.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;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}.ant-dropdown-menu>ul{list-style:inherit;margin:0;padding:0}.ant-dropdown{top:0;left:0;position:relative;width:100%;margin-top:6px;margin-bottom:6px}.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{transform:rotate(180deg)}.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-footer{margin-top:16px}.ant-empty-normal{margin:32px 0;color:rgba(255,255,255,.3)}.ant-empty-normal .ant-empty-image{height:40px}.ant-empty-small{margin:8px 0;color:rgba(255,255,255,.3)}.ant-empty-small .ant-empty-image{height:35px}.ant-empty-img-default-ellipse{fill:#fff;fill-opacity:.08}.ant-empty-img-default-path-1{fill:#262626}.ant-empty-img-default-path-2{fill:url(#linearGradient-1)}.ant-empty-img-default-path-3{fill:#595959}.ant-empty-img-default-path-4{fill:#434343}.ant-empty-img-default-path-5{fill:#595959}.ant-empty-img-default-g{fill:#434343}.ant-empty-img-simple-ellipse{fill:#fff;fill-opacity:.08}.ant-empty-img-simple-g{stroke:#434343}.ant-empty-img-simple-path{fill:#262626;stroke:#434343}nz-empty{display:block}.ant-row,.ant-row::after,.ant-row::before{display:flex}.ant-row{flex-flow:row wrap}.ant-col-1,.ant-col-10,.ant-col-11,.ant-col-12,.ant-col-13,.ant-col-14,.ant-col-15,.ant-col-16,.ant-col-17,.ant-col-18,.ant-col-19,.ant-col-2,.ant-col-20,.ant-col-21,.ant-col-22,.ant-col-23,.ant-col-24,.ant-col-3,.ant-col-4,.ant-col-5,.ant-col-6,.ant-col-7,.ant-col-8,.ant-col-9{display:block}.ant-row-no-wrap{flex-wrap:nowrap}.ant-row-start{justify-content:flex-start}.ant-row-center{justify-content:center}.ant-row-end{justify-content:flex-end}.ant-row-space-between{justify-content:space-between}.ant-row-space-around{justify-content:space-around}.ant-row-top,.ant-tree-list-holder-inner{align-items:flex-start}.ant-row-middle{align-items:center}.ant-row-bottom{align-items:flex-end}.ant-col{position:relative;max-width:100%;min-height:1px}.ant-col-24{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{order:24}.ant-col-23{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{order:23}.ant-col-22{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{order:22}.ant-col-21{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{order:21}.ant-col-20{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{order:20}.ant-col-19{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{order:19}.ant-col-18{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{order:18}.ant-col-17{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{order:17}.ant-col-16{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{order:16}.ant-col-15{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{order:15}.ant-col-14{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{order:14}.ant-col-13{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{order:13}.ant-col-12{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{order:12}.ant-col-11{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{order:11}.ant-col-10{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{order:10}.ant-col-9{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{order:9}.ant-col-8{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{order:8}.ant-col-7{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{order:7}.ant-col-6{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{order:6}.ant-col-5{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{order:5}.ant-col-4{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{order:4}.ant-col-3{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{order:3}.ant-col-2{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{order:2}.ant-col-1{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{order:1}.ant-col-0{display:none}.ant-col-offset-0{margin-left:0}.ant-col-order-0{order:0}.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;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{order:24}.ant-col-xs-23{display:block;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{order:23}.ant-col-xs-22{display:block;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{order:22}.ant-col-xs-21{display:block;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{order:21}.ant-col-xs-20{display:block;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{order:20}.ant-col-xs-19{display:block;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{order:19}.ant-col-xs-18{display:block;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{order:18}.ant-col-xs-17{display:block;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{order:17}.ant-col-xs-16{display:block;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{order:16}.ant-col-xs-15{display:block;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{order:15}.ant-col-xs-14{display:block;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{order:14}.ant-col-xs-13{display:block;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{order:13}.ant-col-xs-12{display:block;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{order:12}.ant-col-xs-11{display:block;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{order:11}.ant-col-xs-10{display:block;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{order:10}.ant-col-xs-9{display:block;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{order:9}.ant-col-xs-8{display:block;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{order:8}.ant-col-xs-7{display:block;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{order:7}.ant-col-xs-6{display:block;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{order:6}.ant-col-xs-5{display:block;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{order:5}.ant-col-xs-4{display:block;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{order:4}.ant-col-xs-3{display:block;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{order:3}.ant-col-xs-2{display:block;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{order:2}.ant-col-xs-order-1,.ant-layout-sider-right,.ant-tabs-rtl.ant-tabs-left>.ant-tabs-nav{order:1}.ant-col-xs-1{display:block;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-xs-push-1{left:4.16666667%}.ant-col-pull-0.ant-col-rtl,.ant-col-push-0,.ant-col-xs-pull-0.ant-col-rtl,.ant-col-xs-push-0,.ant-col-xs-push-1.ant-col-rtl{left:auto}.ant-col-xs-pull-1{right:4.16666667%}.ant-col-pull-0,.ant-col-push-0.ant-col-rtl,.ant-col-xs-pull-0,.ant-col-xs-push-0.ant-col-rtl{right:auto}.ant-col-xs-offset-1{margin-left:4.16666667%}.ant-col-xs-0{display:none}.ant-col-xs-offset-0{margin-left:0}.ant-col-xs-order-0{order:0}.ant-col-xs-offset-0.ant-col-rtl{margin-right:0}.ant-col-xs-push-1.ant-col-rtl{right:4.16666667%}.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;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{order:24}.ant-col-sm-23{display:block;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{order:23}.ant-col-sm-22{display:block;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{order:22}.ant-col-sm-21{display:block;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{order:21}.ant-col-sm-20{display:block;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{order:20}.ant-col-sm-19{display:block;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{order:19}.ant-col-sm-18{display:block;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{order:18}.ant-col-sm-17{display:block;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{order:17}.ant-col-sm-16{display:block;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{order:16}.ant-col-sm-15{display:block;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{order:15}.ant-col-sm-14{display:block;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{order:14}.ant-col-sm-13{display:block;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{order:13}.ant-col-sm-12{display:block;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{order:12}.ant-col-sm-11{display:block;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{order:11}.ant-col-sm-10{display:block;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{order:10}.ant-col-sm-9{display:block;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{order:9}.ant-col-sm-8{display:block;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{order:8}.ant-col-sm-7{display:block;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{order:7}.ant-col-sm-6{display:block;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{order:6}.ant-col-sm-5{display:block;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{order:5}.ant-col-sm-4{display:block;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{order:4}.ant-col-sm-3{display:block;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{order:3}.ant-col-sm-2{display:block;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{order:2}.ant-col-sm-1{display:block;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-sm-push-1{left:4.16666667%}.ant-col-pull-0.ant-col-rtl,.ant-col-push-0,.ant-col-sm-pull-0.ant-col-rtl,.ant-col-sm-push-0,.ant-col-sm-push-1.ant-col-rtl{left:auto}.ant-col-sm-pull-1{right:4.16666667%}.ant-col-pull-0,.ant-col-push-0.ant-col-rtl,.ant-col-sm-pull-0,.ant-col-sm-push-0.ant-col-rtl{right:auto}.ant-col-sm-offset-1{margin-left:4.16666667%}.ant-col-sm-order-1{order:1}.ant-col-sm-0{display:none}.ant-col-sm-offset-0{margin-left:0}.ant-col-sm-order-0{order:0}.ant-col-sm-offset-0.ant-col-rtl{margin-right:0}.ant-col-sm-push-1.ant-col-rtl{right:4.16666667%}.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;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{order:24}.ant-col-md-23{display:block;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{order:23}.ant-col-md-22{display:block;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{order:22}.ant-col-md-21{display:block;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{order:21}.ant-col-md-20{display:block;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{order:20}.ant-col-md-19{display:block;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{order:19}.ant-col-md-18{display:block;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{order:18}.ant-col-md-17{display:block;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{order:17}.ant-col-md-16{display:block;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{order:16}.ant-col-md-15{display:block;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{order:15}.ant-col-md-14{display:block;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{order:14}.ant-col-md-13{display:block;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{order:13}.ant-col-md-12{display:block;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{order:12}.ant-col-md-11{display:block;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{order:11}.ant-col-md-10{display:block;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{order:10}.ant-col-md-9{display:block;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{order:9}.ant-col-md-8{display:block;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{order:8}.ant-col-md-7{display:block;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{order:7}.ant-col-md-6{display:block;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{order:6}.ant-col-md-5{display:block;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{order:5}.ant-col-md-4{display:block;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{order:4}.ant-col-md-3{display:block;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{order:3}.ant-col-md-2{display:block;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{order:2}.ant-col-md-1{display:block;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-md-push-1{left:4.16666667%}.ant-col-md-pull-0.ant-col-rtl,.ant-col-md-push-0,.ant-col-md-push-1.ant-col-rtl,.ant-col-pull-0.ant-col-rtl,.ant-col-push-0{left:auto}.ant-col-md-pull-1{right:4.16666667%}.ant-col-md-pull-0,.ant-col-md-push-0.ant-col-rtl,.ant-col-pull-0,.ant-col-push-0.ant-col-rtl{right:auto}.ant-col-md-offset-1{margin-left:4.16666667%}.ant-col-md-order-1{order:1}.ant-col-md-0{display:none}.ant-col-md-offset-0{margin-left:0}.ant-col-md-order-0{order:0}.ant-col-md-offset-0.ant-col-rtl{margin-right:0}.ant-col-md-push-1.ant-col-rtl{right:4.16666667%}.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;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{order:24}.ant-col-lg-23{display:block;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{order:23}.ant-col-lg-22{display:block;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{order:22}.ant-col-lg-21{display:block;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{order:21}.ant-col-lg-20{display:block;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{order:20}.ant-col-lg-19{display:block;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{order:19}.ant-col-lg-18{display:block;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{order:18}.ant-col-lg-17{display:block;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{order:17}.ant-col-lg-16{display:block;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{order:16}.ant-col-lg-15{display:block;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{order:15}.ant-col-lg-14{display:block;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{order:14}.ant-col-lg-13{display:block;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{order:13}.ant-col-lg-12{display:block;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{order:12}.ant-col-lg-11{display:block;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{order:11}.ant-col-lg-10{display:block;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{order:10}.ant-col-lg-9{display:block;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{order:9}.ant-col-lg-8{display:block;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{order:8}.ant-col-lg-7{display:block;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{order:7}.ant-col-lg-6{display:block;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{order:6}.ant-col-lg-5{display:block;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{order:5}.ant-col-lg-4{display:block;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{order:4}.ant-col-lg-3{display:block;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{order:3}.ant-col-lg-2{display:block;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{order:2}.ant-col-lg-1{display:block;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-lg-push-1{left:4.16666667%}.ant-col-lg-pull-0.ant-col-rtl,.ant-col-lg-push-0,.ant-col-lg-push-1.ant-col-rtl,.ant-col-pull-0.ant-col-rtl,.ant-col-push-0{left:auto}.ant-col-lg-pull-1{right:4.16666667%}.ant-col-lg-pull-0,.ant-col-lg-push-0.ant-col-rtl,.ant-col-pull-0,.ant-col-push-0.ant-col-rtl{right:auto}.ant-col-lg-offset-1{margin-left:4.16666667%}.ant-col-lg-order-1{order:1}.ant-col-lg-0{display:none}.ant-col-lg-offset-0{margin-left:0}.ant-col-lg-order-0{order:0}.ant-col-lg-offset-0.ant-col-rtl{margin-right:0}.ant-col-lg-push-1.ant-col-rtl{right:4.16666667%}.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;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{order:24}.ant-col-xl-23{display:block;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{order:23}.ant-col-xl-22{display:block;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{order:22}.ant-col-xl-21{display:block;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{order:21}.ant-col-xl-20{display:block;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{order:20}.ant-col-xl-19{display:block;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{order:19}.ant-col-xl-18{display:block;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{order:18}.ant-col-xl-17{display:block;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{order:17}.ant-col-xl-16{display:block;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{order:16}.ant-col-xl-15{display:block;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{order:15}.ant-col-xl-14{display:block;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{order:14}.ant-col-xl-13{display:block;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{order:13}.ant-col-xl-12{display:block;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{order:12}.ant-col-xl-11{display:block;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{order:11}.ant-col-xl-10{display:block;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{order:10}.ant-col-xl-9{display:block;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{order:9}.ant-col-xl-8{display:block;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{order:8}.ant-col-xl-7{display:block;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{order:7}.ant-col-xl-6{display:block;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{order:6}.ant-col-xl-5{display:block;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{order:5}.ant-col-xl-4{display:block;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{order:4}.ant-col-xl-3{display:block;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{order:3}.ant-col-xl-2{display:block;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{order:2}.ant-col-xl-1{display:block;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-xl-push-1{left:4.16666667%}.ant-col-pull-0.ant-col-rtl,.ant-col-push-0,.ant-col-xl-pull-0.ant-col-rtl,.ant-col-xl-push-0,.ant-col-xl-push-1.ant-col-rtl{left:auto}.ant-col-xl-pull-1{right:4.16666667%}.ant-col-pull-0,.ant-col-push-0.ant-col-rtl,.ant-col-xl-pull-0,.ant-col-xl-push-0.ant-col-rtl{right:auto}.ant-col-xl-offset-1{margin-left:4.16666667%}.ant-col-xl-order-1{order:1}.ant-col-xl-0{display:none}.ant-col-xl-offset-0{margin-left:0}.ant-col-xl-order-0{order:0}.ant-col-xl-offset-0.ant-col-rtl{margin-right:0}.ant-col-xl-push-1.ant-col-rtl{right:4.16666667%}.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;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{order:24}.ant-col-xxl-23{display:block;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{order:23}.ant-col-xxl-22{display:block;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{order:22}.ant-col-xxl-21{display:block;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{order:21}.ant-col-xxl-20{display:block;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{order:20}.ant-col-xxl-19{display:block;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{order:19}.ant-col-xxl-18{display:block;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{order:18}.ant-col-xxl-17{display:block;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{order:17}.ant-col-xxl-16{display:block;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{order:16}.ant-col-xxl-15{display:block;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{order:15}.ant-col-xxl-14{display:block;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{order:14}.ant-col-xxl-13{display:block;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{order:13}.ant-col-xxl-12{display:block;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{order:12}.ant-col-xxl-11{display:block;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{order:11}.ant-col-xxl-10{display:block;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{order:10}.ant-col-xxl-9{display:block;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{order:9}.ant-col-xxl-8{display:block;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{order:8}.ant-col-xxl-7{display:block;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{order:7}.ant-col-xxl-6{display:block;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{order:6}.ant-col-xxl-5{display:block;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{order:5}.ant-col-xxl-4{display:block;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{order:4}.ant-col-xxl-3{display:block;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{order:3}.ant-col-xxl-2{display:block;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{order:2}.ant-col-xxl-1{display:block;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-xxl-push-1{left:4.16666667%}.ant-col-pull-0.ant-col-rtl,.ant-col-push-0,.ant-col-xxl-pull-0.ant-col-rtl,.ant-col-xxl-push-0,.ant-col-xxl-push-1.ant-col-rtl{left:auto}.ant-col-xxl-pull-1{right:4.16666667%}.ant-col-pull-0,.ant-col-push-0.ant-col-rtl,.ant-col-xxl-pull-0,.ant-col-xxl-push-0.ant-col-rtl{right:auto}.ant-col-xxl-offset-1{margin-left:4.16666667%}.ant-col-xxl-order-1{order:1}.ant-col-xxl-0{display:none}.ant-col-xxl-offset-0{margin-left:0}.ant-col-xxl-order-0{order:0}.ant-col-xxl-offset-0.ant-col-rtl{margin-right:0}.ant-col-xxl-push-1.ant-col-rtl{right:4.16666667%}.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-input-affix-wrapper{position:relative;width:100%;min-width:0;padding:4px 11px;color:rgba(255,255,255,.85);font-size:14px;line-height:1.5715;background-color:transparent;background-image:none;border:1px solid #434343;border-radius:2px;transition:all .3s;display:inline-flex}.ant-input-affix-wrapper-disabled,.ant-input-affix-wrapper[disabled]{background-color:rgba(255,255,255,.08);cursor:not-allowed;opacity:1;pointer-events:none;color:rgba(255,255,255,.3)}.ant-input-affix-wrapper::-moz-placeholder{opacity:1}.ant-input-affix-wrapper::placeholder{color:rgba(255,255,255,.3)}.ant-input-affix-wrapper:placeholder-shown{text-overflow:ellipsis}.ant-input-affix-wrapper:hover{border-color:#165996;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-focused,.ant-input-affix-wrapper:focus{border-color:#177ddc;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(23,125,220,.2)}.ant-input-rtl .ant-input-affix-wrapper-focused,.ant-input-rtl .ant-input-affix-wrapper:focus{border-right-width:0;border-left-width:1px!important}.ant-input-affix-wrapper-disabled:hover,.ant-input-affix-wrapper[disabled]:hover{border-color:#434343;border-right-width:1px!important}.ant-input-affix-wrapper-borderless,.ant-input-affix-wrapper-borderless-disabled,.ant-input-affix-wrapper-borderless-focused,.ant-input-affix-wrapper-borderless:focus,.ant-input-affix-wrapper-borderless:hover,.ant-input-affix-wrapper-borderless[disabled]{background-color:transparent;border:none;box-shadow:none}textarea.ant-input-affix-wrapper{max-width:100%;height:auto;min-height:32px;line-height:1.5715;vertical-align:bottom;transition:all .3s,height 0s}.ant-input-affix-wrapper-lg{padding:6.5px 11px;font-size:16px}.ant-input-affix-wrapper-sm{padding:0 7px}.ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover{border-color:#165996;border-right-width:1px!important;z-index:1}.ant-input-rtl .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover{border-right-width:0;border-left-width:1px!important}.ant-input-search-with-button .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover{z-index:0}.ant-input-affix-wrapper-focused,.ant-input-affix-wrapper:focus{z-index:1}.ant-input-affix-wrapper-disabled .ant-input[disabled]{background:0 0}.ant-input,.ant-input-number{min-width:0;background-image:none}.ant-input-affix-wrapper>input.ant-input{padding:0;border:none;outline:0}.ant-input-affix-wrapper>input.ant-input:focus{box-shadow:none}.ant-input-affix-wrapper::before{width:0;visibility:hidden;content:'\a0'}.ant-input-prefix,.ant-input-suffix{display:flex;flex:none;align-items:center}.ant-input-prefix{margin-right:4px}.ant-input-suffix{margin-left:4px}.ant-input-clear-icon{margin:0 4px;color:rgba(255,255,255,.3);font-size:12px;vertical-align:-1px;cursor:pointer;transition:color .3s}.ant-input-clear-icon:hover{color:rgba(255,255,255,.45)}.ant-input,.ant-input-clear-icon:active{color:rgba(255,255,255,.85)}.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-affix-wrapper-textarea-with-clear-btn .ant-input-clear-icon{position:absolute;top:8px;right:8px;z-index:1}.ant-input,.ant-input-group{box-sizing:border-box;position:relative;line-height:1.5715;list-style:none;font-feature-settings:tnum;font-variant:tabular-nums}.ant-input{margin:0;display:inline-block;width:100%;padding:4px 11px;font-size:14px;background-color:transparent;border:1px solid #434343;border-radius:2px;transition:all .3s}.ant-input-disabled,.ant-input[disabled]{cursor:not-allowed;color:rgba(255,255,255,.3)}.ant-input-disabled,.ant-input-number[disabled],.ant-input[disabled]{background-color:rgba(255,255,255,.08);opacity:1;pointer-events:none}.ant-input::-moz-placeholder{opacity:1}.ant-input::placeholder{color:rgba(255,255,255,.3)}.ant-input:placeholder-shown{text-overflow:ellipsis}.ant-input:hover{border-color:#165996;border-right-width:1px!important}.ant-input-rtl .ant-input:hover{border-right-width:0;border-left-width:1px!important}.ant-input-focused,.ant-input:focus{border-color:#177ddc;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(23,125,220,.2)}.ant-input-rtl .ant-input-focused,.ant-input-rtl .ant-input:focus{border-right-width:0;border-left-width:1px!important}.ant-input-disabled:hover,.ant-input[disabled]:hover{border-color:#434343;border-right-width:1px!important}.ant-input-borderless,.ant-input-borderless-disabled,.ant-input-borderless-focused,.ant-input-borderless:focus,.ant-input-borderless:hover,.ant-input-borderless[disabled]{background-color:transparent;border:none;box-shadow:none}textarea.ant-input{max-width:100%;height:auto;min-height:32px;line-height:1.5715;vertical-align:bottom;transition:all .3s,height 0s}.ant-input-lg{padding:6.5px 11px;font-size:16px}.ant-input-group,.ant-input-group-addon{color:rgba(255,255,255,.85);font-size:14px}.ant-input-sm{padding:0 7px}.ant-input-group{margin:0;padding:0;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,.ant-input-group .ant-input:hover{z-index:1;border-right-width:1px}.ant-input-group-addon,.ant-input-number{transition:all .3s;border:1px solid #434343;position:relative}.ant-input-search-with-button .ant-input-group .ant-input:hover{z-index:0}.ant-input-group-addon{padding:0 11px;font-weight:400;text-align:center;background-color:rgba(255,255,255,.04);border-radius:2px}.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;box-shadow:none}.ant-input-group .ant-input-affix-wrapper:not(:first-child),.ant-input-group-addon:last-child,.ant-input-group-addon:last-child .ant-select .ant-select-selector,.ant-input-group>.ant-input-affix-wrapper:not(:first-child) .ant-input,.ant-input-group>.ant-input:last-child,.ant-input-group>.ant-input:last-child .ant-select .ant-select-selector{border-top-left-radius:0;border-bottom-left-radius:0}.ant-input-group .ant-input-affix-wrapper:not(:last-child),.ant-input-group-addon:first-child,.ant-input-group-addon:first-child .ant-select .ant-select-selector,.ant-input-group>.ant-input-affix-wrapper:not(:last-child) .ant-input,.ant-input-group>.ant-input:first-child,.ant-input-group>.ant-input:first-child .ant-select .ant-select-selector{border-top-right-radius:0;border-bottom-right-radius:0}.ant-input-group-addon .ant-select-focused .ant-select-selector,.ant-input-group-addon .ant-select-open .ant-select-selector{color:#177ddc}.ant-input-group-addon:first-child{border-right:0}.ant-input-group-addon:last-child{border-left: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:0 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-search-button,.ant-input[type=color]{height:32px}.ant-input-search .ant-input-group .ant-input-affix-wrapper:not(:last-child){border-top-left-radius:2px;border-bottom-left-radius:2px}.ant-input-group.ant-input-group-compact{display:block}.ant-input-group.ant-input-group-compact::after,.ant-input-group.ant-input-group-compact::before{display:table;content:''}.ant-input-group.ant-input-group-compact::after{clear:both}.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):focus,.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):focus,.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):focus,.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>*{display:inline-block;float:none;vertical-align:top;border-radius:0}.ant-input-group.ant-input-group-compact>.ant-input-affix-wrapper,.ant-input-group.ant-input-group-compact>.ant-picker-range{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-cascader-picker .ant-input,.ant-input-group.ant-input-group-compact>.ant-input-group-wrapper .ant-input,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-selector{border-right-width:1px;border-radius:0}.ant-input-group.ant-input-group-compact>.ant-cascader-picker .ant-input:focus,.ant-input-group.ant-input-group-compact>.ant-cascader-picker .ant-input:hover,.ant-input-group.ant-input-group-compact>.ant-input-group-wrapper .ant-input:focus,.ant-input-group.ant-input-group-compact>.ant-input-group-wrapper .ant-input:hover,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input:focus,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input:hover,.ant-input-group.ant-input-group-compact>.ant-select-focused,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-arrow,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-selector:focus,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-selector:hover{z-index:1}.ant-input-group.ant-input-group-compact>.ant-cascader-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-select:first-child>.ant-select-selector,.ant-input-group.ant-input-group-compact>:first-child{border-top-left-radius:2px;border-bottom-left-radius:2px}.ant-input-group.ant-input-group-compact>.ant-cascader-picker-focused: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-select:last-child>.ant-select-selector,.ant-input-group.ant-input-group-compact>:last-child{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-group-compact .ant-input-group-wrapper+.ant-input-group-wrapper{margin-left:-1px}.ant-input-group.ant-input-group-compact .ant-input-group-wrapper+.ant-input-group-wrapper .ant-input-affix-wrapper,.ant-input-group.ant-input-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search>.ant-input-group>.ant-input-group-addon>.ant-input-search-button{border-radius:0}.ant-input-group.ant-input-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search>.ant-input-group>.ant-input{border-radius:2px 0 0 2px}.ant-input-group-rtl .ant-input-group-addon:first-child,.ant-input-group>.ant-input-rtl:first-child{border-radius:0 2px 2px 0}.ant-input-group-rtl .ant-input-group-addon:first-child{border-right:1px solid #434343;border-left:0}.ant-input-group-rtl .ant-input-group-addon:last-child{border-right:0;border-left:1px solid #434343}.ant-input-group-rtl.ant-input-group .ant-input-affix-wrapper:not(:first-child),.ant-input-group-rtl.ant-input-group-addon:last-child,.ant-input-group-rtl.ant-input-group>.ant-input:last-child{border-radius:2px 0 0 2px}.ant-input-group-rtl.ant-input-group .ant-input-affix-wrapper:not(:last-child),.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-select-auto-complete:first-child .ant-input,.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>:first-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>.ant-cascader-picker-focused: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-select-auto-complete:last-child .ant-input,.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>:last-child{border-left-width:1px;border-radius:2px 0 0 2px}.ant-input-group.ant-input-group-compact .ant-input-group-wrapper-rtl+.ant-input-group-wrapper-rtl{margin-right:-1px;margin-left:0}.ant-input-group.ant-input-group-compact .ant-input-group-wrapper-rtl:not(:last-child).ant-input-search>.ant-input-group>.ant-input{border-radius:0 2px 2px 0}.ant-input-group-wrapper{display:inline-block;width:100%;text-align:start;vertical-align:top}.ant-input-password-icon{color:rgba(255,255,255,.45);cursor:pointer;transition:all .3s}.ant-input-password-icon:hover{color:rgba(255,255,255,.85)}.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-textarea-show-count::after{float:right;color:rgba(255,255,255,.45);white-space:nowrap;content:attr(data-count);pointer-events:none}.ant-input-search .ant-input:focus,.ant-input-search .ant-input:hover{border-color:#165996}.ant-input-search .ant-input:focus+.ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary),.ant-input-search .ant-input:hover+.ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary){border-left-color:#165996}.ant-input-search .ant-input-affix-wrapper{border-radius:0}.ant-input-search .ant-input-lg{line-height:1.5713}.ant-input-search>.ant-input-group>.ant-input-group-addon:last-child{left:-1px;padding:0;border:0}.ant-input-search>.ant-input-group>.ant-input-group-addon:last-child .ant-input-search-button{padding-top:0;padding-bottom:0;border-radius:0 2px 2px 0}.ant-input-search>.ant-input-group>.ant-input-group-addon:last-child .ant-input-search-button:not(.ant-btn-primary){color:rgba(255,255,255,.45)}.ant-input-search>.ant-input-group>.ant-input-group-addon:last-child .ant-input-search-button:not(.ant-btn-primary).ant-btn-loading::before{top:0;right:0;bottom:0;left:0}.ant-input-search-button:focus,.ant-input-search-button:hover{z-index:1}.ant-input-search-large .ant-input-search-button{height:40px}.ant-input-search-small .ant-input-search-button{height:24px}.ant-input-affix-wrapper.ant-input-affix-wrapper-rtl>input.ant-input{border:none;outline:0}.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-textarea-rtl.ant-input-textarea-show-count::after{text-align:left}.ant-input-affix-wrapper-rtl .ant-input-clear-icon:last-child{margin-right:4px;margin-left:0}.ant-input-affix-wrapper-rtl .ant-input-clear-icon{right:auto;left:8px}.ant-input-search-rtl .ant-input:focus+.ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary),.ant-input-search-rtl .ant-input:hover+.ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary){border-right-color:#165996;border-left-color:#434343}.ant-input-search-rtl>.ant-input-group>.ant-input-affix-wrapper-focused,.ant-input-search-rtl>.ant-input-group>.ant-input-affix-wrapper:hover{border-right-color:#165996}.ant-input-search-rtl>.ant-input-group>.ant-input-group-addon{right:-1px;left:auto}.ant-input-search-rtl>.ant-input-group>.ant-input-group-addon .ant-input-search-button{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}}textarea.nz-textarea-autosize-measuring{height:auto!important;overflow:hidden!important;padding:2px 0!important;box-sizing:content-box!important}.ant-form,.ant-form input[type=search],.ant-form-item,.ant-input-number,.ant-layout,.ant-layout *,.ant-list,.ant-mention-wrapper,.ant-menu{box-sizing:border-box}.ant-input-search-rtl.ant-input-search-enter-button input+.ant-input-group-addon .ant-input-search-button.ant-btn-icon-only,.ant-input-search-rtl.ant-input-search-enter-button+.ant-input-group-addon .ant-input-search-button.ant-btn-icon-only{width:32px;height:32px}.ant-input-search-rtl.ant-input-search-enter-button input+.ant-input-group-addon .ant-input-search-button.ant-btn-icon-only.ant-btn-sm,.ant-input-search-rtl.ant-input-search-enter-button+.ant-input-group-addon .ant-input-search-button.ant-btn-icon-only.ant-btn-sm{width:24px;height:24px}.ant-input-search-rtl.ant-input-search-enter-button input+.ant-input-group-addon .ant-input-search-button.ant-btn-icon-only.ant-btn-lg,.ant-input-search-rtl.ant-input-search-enter-button+.ant-input-group-addon .ant-input-search-button.ant-btn-icon-only.ant-btn-lg{width:40px;height:40px}.ant-input-number{font-variant:tabular-nums;list-style:none;font-feature-settings:tnum;color:rgba(255,255,255,.85);font-size:14px;line-height:1.5715;background-color:transparent;display:inline-block;width:90px;margin:0;padding:0;border-radius:2px}.ant-input-number::-moz-placeholder{opacity:1}.ant-input-number::placeholder{color:rgba(255,255,255,.3)}.ant-input-number:placeholder-shown{text-overflow:ellipsis}.ant-input-rtl .ant-input-number:hover{border-right-width:0;border-left-width:1px!important}.ant-input-number-focused,.ant-input-number:focus{border-color:#177ddc;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(23,125,220,.2)}.ant-input-rtl .ant-input-number-focused,.ant-input-rtl .ant-input-number:focus{border-right-width:0;border-left-width:1px!important}.ant-input-number[disabled]{cursor:not-allowed;color:rgba(255,255,255,.3)}.ant-input-number[disabled]:hover{border-color:#434343;border-right-width:1px!important}.ant-input-number-borderless,.ant-input-number-borderless-disabled,.ant-input-number-borderless-focused,.ant-input-number-borderless:focus,.ant-input-number-borderless:hover,.ant-input-number-borderless[disabled]{background-color:transparent;border:none;box-shadow:none}textarea.ant-input-number{max-width:100%;height:auto;min-height:32px;line-height:1.5715;vertical-align:bottom;transition:all .3s,height 0s}.ant-input-number-handler{position:relative;display:block;width:100%;height:50%;overflow:hidden;color:rgba(255,255,255,.45);font-weight:700;line-height:0;text-align:center;transition:all .1s linear}.ant-input-number-handler:active{background:rgba(255,255,255,.08)}.ant-input-number-handler:hover .ant-input-number-handler-down-inner,.ant-input-number-handler:hover .ant-input-number-handler-up-inner{color:#165996}.ant-input-number-handler-down-inner,.ant-input-number-handler-up-inner{display:inline-block;color:inherit;text-transform:none;vertical-align:-.125em;position:absolute;right:4px;width:12px;height:12px;color:rgba(255,255,255,.45);line-height:12px;transition:all .1s linear;user-select:none}.ant-input-number-handler-down-inner>*,.ant-input-number-handler-up-inner>*{line-height:1}.ant-input-number-handler-down-inner svg,.ant-input-number-handler-up-inner svg{display:inline-block}.ant-input-number-handler-down-inner::before,.ant-input-number-handler-up-inner::before{display:none}.ant-input-number-handler-down-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-up-inner .ant-input-number-handler-down-inner-icon,.ant-input-number-handler-up-inner .ant-input-number-handler-up-inner-icon,nz-content,nz-footer,nz-header{display:block}.ant-input-number:hover{border-color:#165996;border-right-width:1px!important}.ant-input-number:hover+.ant-form-item-children-icon{opacity:0;transition:opacity .24s linear .24s}.ant-input-number-focused{border-color:#177ddc;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(23,125,220,.2)}.ant-input-rtl .ant-input-number-focused{border-right-width:0;border-left-width:1px!important}.ant-input-number-disabled{background-color:rgba(255,255,255,.08);cursor:not-allowed;opacity:1;color:rgba(255,255,255,.3);pointer-events:none}.ant-input-number-disabled:hover{border-color:#434343;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,.ant-input-number-readonly .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;transition:all .3s linear;-moz-appearance:textfield!important}.ant-input-number-input::-moz-placeholder{opacity:1}.ant-input-number-input::placeholder{color:rgba(255,255,255,.3)}.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:#141414;border-left:1px solid #434343;border-radius:0 2px 2px 0;opacity:0;transition:opacity .24s linear .1s}.ant-input-number-handler-wrap .ant-input-number-handler .ant-input-number-handler-down-inner,.ant-input-number-handler-wrap .ant-input-number-handler .ant-input-number-handler-up-inner{min-width:auto;margin-right:0;font-size:7px}.ant-input-number-borderless .ant-input-number-handler-wrap{border-left-width:0}.ant-input-number-handler-wrap:hover .ant-input-number-handler{height:40%}.ant-input-number-handler-down:hover,.ant-input-number-handler-up:hover{height:60%!important}.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-down{top:0;border-top:1px solid #434343;border-bottom-right-radius:2px;cursor:pointer}.ant-input-number-handler-down-inner{top:50%;text-align:center;transform:translateY(-50%)}.ant-input-number-borderless .ant-input-number-handler-down{border-top-width:0}.ant-input-number-handler-down-disabled,.ant-input-number-handler-up-disabled{cursor:not-allowed}.ant-input-number-handler-down-disabled:hover .ant-input-number-handler-down-inner,.ant-input-number-handler-up-disabled:hover .ant-input-number-handler-up-inner{color:rgba(255,255,255,.3)}.ant-input-number-borderless{box-shadow:none}.ant-input-number-out-of-range input{color:#a61d24}.ant-input-number-rtl .ant-input-number-handler-wrap{right:auto;left:0;border-right:1px solid #434343;border-left:0;border-radius:2px 0 0 2px}.ant-input-number-rtl.ant-input-number-borderless .ant-input-number-handler-wrap{border-right-width:0}.ant-input-number-rtl .ant-input-number-input{direction:ltr;text-align:right}.ant-form-rtl,.ant-layout-rtl,.ant-list-rtl,.ant-list-rtl .ReactVirtualized__List .ant-list-item,.ant-mention-wrapper .ant-mention-editor-rtl,.ant-menu.ant-menu-rtl,.ant-message-rtl,.ant-message-rtl span,.ant-modal-wrap-rtl,.ant-modal-wrap-rtl .ant-modal-confirm-body,.ant-notification-rtl,.ant-page-header-rtl,.ant-pagination-options-quick-jumper input-rtl,.ant-popover-rtl,.ant-progress-rtl,.ant-radio-group.ant-radio-group-rtl,.ant-radio-wrapper.ant-radio-wrapper-rtl,.ant-rate-rtl,.ant-select-dropdown-rtl,.ant-select-rtl,.ant-skeleton-rtl,.ant-slider-rtl,.ant-spin-rtl{direction:rtl}.ant-layout{display:flex;flex:auto;flex-direction:column;min-height:0;background:#000}.ant-layout.ant-layout-has-sider{flex-direction:row}.ant-layout.ant-layout-has-sider>.ant-layout,.ant-layout.ant-layout-has-sider>.ant-layout-content{width:0}.ant-layout-footer,.ant-layout-header{flex:0 0 auto}.ant-layout-header{height:64px;padding:0 50px;color:rgba(255,255,255,.85);line-height:64px;background:#1f1f1f}.ant-layout-footer{padding:24px 50px;color:rgba(255,255,255,.85);font-size:14px;background:#000}.ant-layout-content{flex:auto;min-height:0}.ant-layout-sider{position:relative;min-width:0;background:#1f1f1f;transition:all .2s}.ant-layout-sider-children{height:100%;margin-top:-.1px;padding-top:.1px}.ant-layout-sider-children .ant-menu.ant-menu-inline-collapsed{width:auto}.ant-layout-sider-has-trigger{padding-bottom:48px}.ant-layout-sider-trigger{position:fixed;bottom:0;z-index:1;height:48px;color:#fff;line-height:48px;text-align:center;background:#262626;cursor:pointer;transition:all .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:#1f1f1f;border-radius:0 2px 2px 0;cursor:pointer;transition:background .3s ease}.ant-layout-sider-zero-width-trigger::after{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;transition:all .3s;content:''}.ant-layout-sider-zero-width-trigger:hover::after{background:rgba(255,255,255,.1)}.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,.ant-layout-sider-light .ant-layout-sider-zero-width-trigger{color:rgba(255,255,255,.85);background:#fff}.ant-form-item .ant-mentions,.ant-form-item textarea.ant-input{height:auto}.ant-form-item .ant-upload{background:0 0}.ant-form-item .ant-upload.ant-upload-drag{background:rgba(255,255,255,.04)}.ant-form-item input[type=radio],.ant-form-item input[type=checkbox]{width:14px;height:14px}.ant-form-item .ant-checkbox-inline,.ant-form-item .ant-radio-inline{display:inline-block;margin-left:8px;font-weight:400;vertical-align:middle;cursor:pointer}.ant-form-item .ant-checkbox-inline:first-child,.ant-form-item .ant-checkbox-vertical+.ant-checkbox-vertical,.ant-form-item .ant-radio-inline:first-child,.ant-form-item .ant-radio-vertical+.ant-radio-vertical{margin-left:0}.ant-form-item .ant-checkbox-vertical,.ant-form-item .ant-radio-vertical{display:block}.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-cascader-picker,.ant-form-item .ant-select{width:100%}.ant-form-item .ant-input-group .ant-cascader-picker,.ant-form-item .ant-input-group .ant-select,.ant-form-item .ant-picker-calendar-month-select,.ant-form-item .ant-picker-calendar-year-select{width:auto}.ant-form-inline{display:flex;flex-wrap:wrap}.ant-form-inline .ant-form-item{flex:none;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-control,.ant-form-inline .ant-form-item>.ant-form-item-label{display:inline-block;vertical-align:top}.ant-form-inline .ant-form-item>.ant-form-item-label{flex:none}.ant-form-inline .ant-form-item .ant-form-item-has-feedback,.ant-form-inline .ant-form-item .ant-form-text{display:inline-block}.ant-form-horizontal .ant-form-item-label{flex-grow:0}.ant-form-horizontal .ant-form-item-control{flex:1 1 0}.ant-form-vertical .ant-form-item{flex-direction:column}.ant-form-vertical .ant-form-item-label>label{height:auto}.ant-col-24.ant-form-item-label,.ant-col-xl-24.ant-form-item-label,.ant-form-vertical .ant-form-item-label{padding:0 0 8px;line-height:1.5715;white-space:initial;text-align:left}.ant-col-24.ant-form-item-label>label,.ant-col-xl-24.ant-form-item-label>label,.ant-form-vertical .ant-form-item-label>label{margin:0}.ant-col-24.ant-form-item-label>label::after,.ant-col-xl-24.ant-form-item-label>label::after,.ant-form-vertical .ant-form-item-label>label::after{display:none}.ant-form-rtl.ant-col-24.ant-form-item-label,.ant-form-rtl.ant-col-xl-24.ant-form-item-label,.ant-form-rtl.ant-form-vertical .ant-form-item-label{text-align:right}@media (max-width:575px){.ant-col-xs-24.ant-form-item-label>label,.ant-form-item .ant-form-item-label>label{margin:0}.ant-col-xs-24.ant-form-item-label>label::after,.ant-form-item .ant-form-item-label>label::after{display:none}.ant-form-item .ant-form-item-label{padding:0 0 8px;line-height:1.5715;white-space:initial;text-align:left}.ant-form-rtl.ant-form-item .ant-form-item-label{text-align:right}.ant-form .ant-form-item{flex-wrap:wrap}.ant-form .ant-form-item .ant-form-item-control,.ant-form .ant-form-item .ant-form-item-label{flex:0 0 100%;max-width:100%}.ant-col-xs-24.ant-form-item-label{padding:0 0 8px;line-height:1.5715;white-space:initial;text-align:left}.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{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{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{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{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-explain.ant-form-item-explain-error{color:#a61d24}.ant-form-item-explain.ant-form-item-explain-warning{color:#d89614}.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-cascader-picker-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-clear,.ant-form-item-has-feedback>.ant-select .ant-select-arrow,.ant-form-item-has-feedback>.ant-select .ant-select-clear{right:32px}.ant-form-item-has-feedback .ant-switch{margin:2px 0 4px}.ant-form-item-has-feedback :not(.ant-input-group-addon)>.ant-select .ant-select-selection-selected-value,.ant-form-item-has-feedback>.ant-select .ant-select-selection-selected-value{padding-right:42px}.ant-form-item-has-feedback .ant-cascader-picker-arrow{margin-right:19px}.ant-form-item-has-feedback .ant-picker,.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-error .ant-form-item-children-icon,.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-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;animation:zoomIn .3s cubic-bezier(.12,.4,.29,1.46);pointer-events:none}.ant-notification .notification-fade-effect,.ant-notification-fade-appear,.ant-notification-fade-enter,.ant-notification-fade-leave,.ant-show-help-appear,.ant-show-help-enter,.ant-show-help-leave{animation-timing-function:cubic-bezier(.645,.045,.355,1)}.ant-form-item-has-success.ant-form-item-has-feedback .ant-form-item-children-icon{color:#49aa19;animation-name:diffZoomIn1!important}.ant-form-item-has-warning .ant-form-item-split{color:#d89614}.ant-form-item-has-warning .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled),.ant-form-item-has-warning .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover,.ant-form-item-has-warning .ant-input:not(.ant-input-disabled),.ant-form-item-has-warning .ant-input:not(.ant-input-disabled):hover{background-color:transparent;border-color:#d89614}.ant-form-item-has-warning .ant-calendar-picker-open .ant-calendar-picker-input,.ant-form-item-has-warning .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled)-focused,.ant-form-item-has-warning .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):focus,.ant-form-item-has-warning .ant-input:not(.ant-input-disabled)-focused,.ant-form-item-has-warning .ant-input:not(.ant-input-disabled):focus{border-color:#d89614;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(216,150,20,.2)}.ant-form-item-has-warning .ant-input-prefix{color:#d89614}.ant-form-item-has-warning .ant-input-group-addon{color:#d89614;border-color:#d89614}.ant-form-item-has-warning .has-feedback{color:#d89614}.ant-form-item-has-warning.ant-form-item-has-feedback .ant-form-item-children-icon{color:#d89614;animation-name:diffZoomIn3!important}.ant-form-item-has-warning .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input) .ant-select-selector{background-color:transparent;border-color:#d89614!important}.ant-form-item-has-warning .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input).ant-select-focused .ant-select-selector,.ant-form-item-has-warning .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input).ant-select-open .ant-select-selector{border-color:#d89614;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(216,150,20,.2)}.ant-form-item-has-warning .ant-input-number,.ant-form-item-has-warning .ant-picker{background-color:transparent;border-color:#d89614}.ant-form-item-has-warning .ant-input-number-focused,.ant-form-item-has-warning .ant-input-number:focus,.ant-form-item-has-warning .ant-picker-focused,.ant-form-item-has-warning .ant-picker:focus{border-color:#d89614;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(216,150,20,.2)}.ant-form-item-has-warning .ant-input-number:not([disabled]):hover,.ant-form-item-has-warning .ant-picker:not([disabled]):hover{background-color:transparent;border-color:#d89614}.ant-form-item-has-warning .ant-cascader-picker:focus .ant-cascader-input{border-color:#d89614;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(216,150,20,.2)}.ant-form-item-has-error .ant-form-item-split{color:#a61d24}.ant-form-item-has-error .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled),.ant-form-item-has-error .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover,.ant-form-item-has-error .ant-input:not(.ant-input-disabled),.ant-form-item-has-error .ant-input:not(.ant-input-disabled):hover{background-color:transparent;border-color:#a61d24}.ant-form-item-has-error .ant-calendar-picker-open .ant-calendar-picker-input,.ant-form-item-has-error .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled)-focused,.ant-form-item-has-error .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):focus,.ant-form-item-has-error .ant-input:not(.ant-input-disabled)-focused,.ant-form-item-has-error .ant-input:not(.ant-input-disabled):focus{border-color:#a61d24;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(166,29,36,.2)}.ant-form-item-has-error .ant-input-prefix{color:#a61d24}.ant-form-item-has-error .ant-input-group-addon{color:#a61d24;border-color:#a61d24}.ant-form-item-has-error .has-feedback{color:#a61d24}.ant-form-item-has-error.ant-form-item-has-feedback .ant-form-item-children-icon{color:#a61d24;animation-name:diffZoomIn2!important}.ant-form-item-has-error .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input) .ant-select-selector{background-color:transparent;border-color:#a61d24!important}.ant-form-item-has-error .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input).ant-select-focused .ant-select-selector,.ant-form-item-has-error .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input).ant-select-open .ant-select-selector{border-color:#a61d24;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(166,29,36,.2)}.ant-form-item-has-error .ant-input-group-addon .ant-select.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{background-color:inherit;border:0;box-shadow:none}.ant-form-item-has-error .ant-cascader-picker:focus .ant-cascader-input,.ant-form-item-has-error .ant-input-number-focused,.ant-form-item-has-error .ant-input-number:focus,.ant-form-item-has-error .ant-mention-wrapper .ant-mention-editor:not([disabled]):focus,.ant-form-item-has-error .ant-mention-wrapper.ant-mention-active:not([disabled]) .ant-mention-editor,.ant-form-item-has-error .ant-picker-focused,.ant-form-item-has-error .ant-picker:focus{box-shadow:0 0 0 2px rgba(166,29,36,.2);border-color:#a61d24;border-right-width:1px!important;outline:0}.ant-form-item-has-error .ant-select.ant-select-auto-complete .ant-input:focus{border-color:#a61d24}.ant-form-item-has-error .ant-input-number,.ant-form-item-has-error .ant-picker{background-color:transparent;border-color:#a61d24}.ant-form-item-has-error .ant-input-number:not([disabled]):hover,.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,.ant-form-item-has-error .ant-picker:not([disabled]):hover{background-color:transparent;border-color:#a61d24}.ant-form-item-has-error .ant-cascader-picker:hover .ant-cascader-picker-label:hover+.ant-cascader-input.ant-input{border-color:#a61d24}.ant-form-item-has-error .ant-cascader-picker:focus .ant-cascader-input{background-color:transparent}.ant-form-item-has-error .ant-transfer-list{border-color:#a61d24}.ant-form-item-has-error .ant-transfer-list-search:not([disabled]){border-color:#434343}.ant-form-item-has-error .ant-transfer-list-search:not([disabled]):hover{border-color:#165996;border-right-width:1px!important}.ant-input-rtl .ant-form-item-has-error .ant-transfer-list-search:not([disabled]):hover{border-right-width:0;border-left-width:1px!important}.ant-form-item-has-error .ant-transfer-list-search:not([disabled]):focus{border-color:#177ddc;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(23,125,220,.2)}.ant-input-rtl .ant-form-item-has-error .ant-transfer-list-search:not([disabled]):focus{border-right-width:0;border-left-width:1px!important}.ant-form-item-has-error .ant-radio-button-wrapper{border-color:#a61d24!important}.ant-form-item-has-error .ant-radio-button-wrapper:not(:first-child)::before{background-color:#a61d24}.ant-form-item-is-validating.ant-form-item-has-feedback .ant-form-item-children-icon{display:inline-block;color:#177ddc}.ant-form{margin:0;padding:0;color:rgba(255,255,255,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:tnum}.ant-form legend{display:block;width:100%;margin-bottom:20px;padding:0;color:rgba(255,255,255,.45);font-size:16px;line-height:inherit;border:0;border-bottom:1px solid #434343}.ant-form label{font-size:14px}.ant-form input[type=radio],.ant-form input[type=checkbox]{line-height:normal}.ant-form output,.ant-form-item{line-height:1.5715;color:rgba(255,255,255,.85);font-size:14px}.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=radio]:focus,.ant-form input[type=checkbox]:focus,.ant-form input[type=file]:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.ant-form output{display:block;padding-top:15px}.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{margin:0 0 24px;padding:0;font-variant:tabular-nums;list-style:none;font-feature-settings:tnum;vertical-align:top}.ant-form-item-with-help{margin-bottom:0}.ant-form-item-hidden,.ant-form-item-hidden.ant-row{display:none}.ant-form-item-label{display:inline-block;flex-grow:0;overflow:hidden;white-space:nowrap;text-align:right;vertical-align:middle}.ant-form-item-label-left,.ant-form-rtl .ant-form-item-label{text-align:left}.ant-form-item-label>label{position:relative;display:inline-flex;align-items:center;height:32px;color:rgba(255,255,255,.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:not(.ant-form-item-required-mark-optional)::before{display:inline-block;margin-right:4px;color:#a61d24;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:not(.ant-form-item-required-mark-optional)::before{display:none}.ant-form-item-label>label .ant-form-item-optional{display:inline-block;margin-left:4px;color:rgba(255,255,255,.45)}.ant-form-hide-required-mark .ant-form-item-label>label .ant-form-item-optional{display:none}.ant-form-item-label>label .ant-form-item-tooltip{color:rgba(255,255,255,.45);cursor:help;writing-mode:horizontal-tb;margin-inline-start:4px}.ant-form-item-label>label::after{content:':';position:relative;top:-.5px;margin:0 8px 0 2px}.ant-form-item-label>label.ant-form-item-no-colon::after,.ant-menu-submenu-popup::before{content:' '}.ant-form-item-control{display:flex;flex-direction:column;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:flex;align-items:center;min-height:32px}.ant-form-item-control-input-content{flex:auto;max-width:100%}.ant-form-item-explain,.ant-form-item-extra{clear:both;min-height:24px;color:rgba(255,255,255,.45);font-size:14px;line-height:1.5715;transition:color .3s cubic-bezier(.215,.61,.355,1);padding-top:0}.ant-list,.ant-list-item,.ant-list-item-meta-content,.ant-list-item-meta-title,.ant-list-item-meta-title>a{color:rgba(255,255,255,.85)}.ant-form-item .ant-input-textarea-show-count::after{margin-bottom:-22px}.ant-show-help-appear,.ant-show-help-enter,.ant-show-help-leave{animation-duration:.3s;animation-fill-mode:both;animation-play-state:paused}.ant-show-help-appear.ant-show-help-appear-active,.ant-show-help-enter.ant-show-help-enter-active{animation-name:antShowHelpIn;animation-play-state:running}.ant-show-help-leave.ant-show-help-leave-active{animation-name:antShowHelpOut;animation-play-state:running;pointer-events:none}.ant-show-help-appear,.ant-show-help-enter{opacity:0}@keyframes antShowHelpIn{0%{transform:translateY(-5px);opacity:0}100%{transform:translateY(0);opacity:1}}@keyframes antShowHelpOut{to{transform:translateY(-5px);opacity:0}}@keyframes diffZoomIn1{0%{transform:scale(0);opacity:0}100%{transform:scale(1);opacity:1}}@keyframes diffZoomIn2{0%{transform:scale(0);opacity:0}100%{transform:scale(1);opacity:1}}@keyframes diffZoomIn3{0%{transform:scale(0);opacity:0}100%{transform:scale(1);opacity:1}}.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-form-rtl .ant-form-item-label>label .ant-form-item-optional{margin-right:4px;margin-left:0}.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-cascader-picker-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-clear,.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-clear{left:32px;right:auto}.ant-form-rtl .ant-form-item-has-feedback .ant-input-number{padding-left:18px}.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-group-addon)>.ant-select .ant-select-selection-selected-value,.ant-form-rtl .ant-form-item-has-feedback>.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:19px}.ant-form-rtl .ant-form-item-has-feedback .ant-picker,.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-error .ant-form-item-children-icon,.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-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}.ant-list .ant-card{background:0 0}.ant-list{margin:0;padding:0;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:tnum;position:relative}.ant-list *{outline:0}.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(255,255,255,.3);font-size:14px;text-align:center}.ant-list-items{margin:0;padding:0;list-style:none}.ant-list-item{display:flex;align-items:center;justify-content:space-between;padding:12px 0}.ant-list-item-meta{display:flex;flex:1;align-items:flex-start;max-width:100%}.ant-list-item-meta-avatar{margin-right:16px}.ant-list-item-meta-content{flex:1 0;width:0}.ant-list-item-meta-title{margin-bottom:4px;font-size:14px;line-height:1.5715}.ant-list-item-meta-title>a{transition:all .3s}.ant-list-item-meta-title>a:hover{color:#177ddc}.ant-list-item-meta-description{color:rgba(255,255,255,.45);font-size:14px;line-height:1.5715}.ant-list-item-action{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(255,255,255,.45);font-size:14px;line-height:1.5715;text-align:center}.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:#303030}.ant-list-footer,.ant-list-header{background:0 0;padding-top:12px;padding-bottom:12px}.ant-list-empty{padding:16px 0;color:rgba(255,255,255,.45);font-size:12px;text-align:center}.ant-list-split .ant-list-item{border-bottom:1px solid #303030}.ant-list-split .ant-list-item:last-child{border-bottom:none}.ant-list-split .ant-list-header,.ant-list-split.ant-list-something-after-last-item .ant-spin-container>.ant-list-items>.ant-list-item:last-child{border-bottom:1px solid #303030}.ant-list-split.ant-list-empty .ant-list-footer{border-top:1px solid #303030}.ant-list-loading .ant-list-spin-nested-loading{min-height:32px}.ant-list-lg .ant-list-item{padding:16px 24px}.ant-list-sm .ant-list-item{padding:8px 16px}.ant-list-vertical .ant-list-item{align-items:initial}.ant-list-vertical .ant-list-item-main{display:block;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(255,255,255,.85);font-size:16px;line-height:24px}.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,.ant-menu-item-danger.ant-menu-item,.ant-menu-item-danger.ant-menu-item-active,.ant-menu-item-danger.ant-menu-item-selected,.ant-menu-item-danger.ant-menu-item-selected>a,.ant-menu-item-danger.ant-menu-item-selected>a:hover,.ant-menu-item-danger.ant-menu-item:hover{color:#a61d24}.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 #434343;border-radius:2px}.ant-list-bordered .ant-list-footer,.ant-list-bordered .ant-list-header,.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-footer,.ant-list-bordered.ant-list-sm .ant-list-header,.ant-list-bordered.ant-list-sm .ant-list-item{padding:8px 16px}.ant-list-bordered.ant-list-lg .ant-list-footer,.ant-list-bordered.ant-list-lg .ant-list-header,.ant-list-bordered.ant-list-lg .ant-list-item{padding:16px 24px}.ant-list-rtl .ant-list-vertical .ant-list-item-action>li:first-child,.ant-list.ant-list-rtl .ant-list-item-action>li:first-child{padding-right:0;padding-left:16px}@media screen and (max-width:768px){.ant-list-item-action,.ant-list-vertical .ant-list-item-extra{margin-left:24px}}@media screen and (max-width:576px){.ant-list-item{flex-wrap:wrap}.ant-list-item-action{margin-left:12px}.ant-list-vertical .ant-list-item{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{text-align:right}.ant-list-rtl .ant-list-pagination,.ant-menu{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-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: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,.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}}.ant-menu,.ant-menu ol,.ant-menu ul{margin:0;padding:0;list-style:none}nz-list,nz-list nz-spin,nz-list-empty,nz-list-footer,nz-list-header,nz-list-item-extra,nz-list-pagination{display:block}.ant-menu::after,.ant-menu::before{display:table;content:''}.ant-menu-item-danger.ant-menu-item:active{background:#2a1215}.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected{background-color:#2a1215}.ant-menu-inline .ant-menu-item-danger.ant-menu-item::after{border-right-color:#a61d24}.ant-menu-dark.ant-menu-dark:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected{color:#fff;background-color:#a61d24}.ant-menu{font-variant:tabular-nums;font-feature-settings:tnum;color:rgba(255,255,255,.85);font-size:14px;line-height:0;background:#141414;outline:0;transition:background .3s,width .3s cubic-bezier(.2,0,0,1) 0s}.ant-menu::after{clear:both}.ant-menu.ant-menu-root:focus-visible{box-shadow:0 0 0 2px rgba(23,125,220,.2)}.ant-menu-overflow{display:flex}.ant-menu-hidden,.ant-menu-submenu-hidden,.ant-menu-submenu-horizontal .ant-menu-submenu-arrow{display:none}.ant-menu-overflow-item{flex:none}.ant-menu-item-group-title{height:1.5715;padding:8px 16px;color:rgba(255,255,255,.45);font-size:14px;line-height:1.5715;transition:all .3s}.ant-menu-horizontal .ant-menu-submenu{transition:border-color .3s cubic-bezier(.645,.045,.355,1),background .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-submenu,.ant-menu-submenu-inline{transition:border-color .3s cubic-bezier(.645,.045,.355,1),background .3s cubic-bezier(.645,.045,.355,1),padding .15s cubic-bezier(.645,.045,.355,1)}.ant-menu-submenu-selected{color:#177ddc}.ant-menu-submenu .ant-menu-sub{cursor:initial;transition:background .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-item a{color:rgba(255,255,255,.85)}.ant-menu-item a:hover{color:#177ddc}.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(255,255,255,.85)}.ant-menu-item-selected,.ant-menu-item-selected a,.ant-menu-item-selected a:hover,.ant-menu-item>.ant-badge a:hover{color:#177ddc}.ant-menu-item-divider{height:1px;overflow:hidden;line-height:0;background-color:#303030}.ant-menu-horizontal .ant-menu-item,.ant-menu-horizontal .ant-menu-submenu{margin-top:-1px}.ant-menu-horizontal>.ant-menu-item-active,.ant-menu-horizontal>.ant-menu-item:hover,.ant-menu-horizontal>.ant-menu-submenu .ant-menu-submenu-title:hover{background-color:transparent}.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected{background-color:#111b26}.ant-menu-inline,.ant-menu-vertical,.ant-menu-vertical-left{border-right:1px solid #303030}.ant-menu-vertical-right{border-left:1px solid #303030}.ant-menu-vertical-left.ant-menu-sub,.ant-menu-vertical-right.ant-menu-sub,.ant-menu-vertical.ant-menu-sub{min-width:160px;max-height:calc(100vh - 100px);padding:0;overflow:hidden;border-right:0}.ant-menu-vertical-left.ant-menu-sub:not([class*='-active']),.ant-menu-vertical-right.ant-menu-sub:not([class*='-active']),.ant-menu-vertical.ant-menu-sub:not([class*='-active']){overflow-x:hidden;overflow-y:auto}.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-item{left:0;margin-left:0;border-right:0}.ant-menu-vertical-left.ant-menu-sub .ant-menu-item::after,.ant-menu-vertical-right.ant-menu-sub .ant-menu-item::after,.ant-menu-vertical.ant-menu-sub .ant-menu-item::after{border-right:0}.ant-menu-vertical-left.ant-menu-sub>.ant-menu-item,.ant-menu-vertical-left.ant-menu-sub>.ant-menu-submenu,.ant-menu-vertical-right.ant-menu-sub>.ant-menu-item,.ant-menu-vertical-right.ant-menu-sub>.ant-menu-submenu,.ant-menu-vertical.ant-menu-sub>.ant-menu-item,.ant-menu-vertical.ant-menu-sub>.ant-menu-submenu{transform-origin:0 0}.ant-menu-horizontal.ant-menu-sub{min-width:114px}.ant-menu-horizontal .ant-menu-item,.ant-menu-horizontal .ant-menu-submenu-title{transition:border-color .3s,background .3s}.ant-menu-item,.ant-menu-submenu-title{position:relative;display:block;margin:0;padding:0 20px;white-space:nowrap;cursor:pointer;transition:border-color .3s,background .3s,padding .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-item-disabled,.ant-menu-item-disabled>.ant-menu-submenu-title,.ant-menu-submenu-disabled,.ant-menu-submenu-disabled>.ant-menu-submenu-title{cursor:not-allowed;color:rgba(255,255,255,.3)!important}.ant-menu-item .ant-menu-item-icon,.ant-menu-item .anticon,.ant-menu-submenu-title .ant-menu-item-icon,.ant-menu-submenu-title .anticon{min-width:14px;font-size:14px;transition:font-size .15s cubic-bezier(.215,.61,.355,1),margin .3s cubic-bezier(.645,.045,.355,1),color .3s}.ant-menu-item .ant-menu-item-icon+span,.ant-menu-item .anticon+span,.ant-menu-submenu-title .ant-menu-item-icon+span,.ant-menu-submenu-title .anticon+span{margin-left:10px;opacity:1;transition:opacity .3s cubic-bezier(.645,.045,.355,1),margin .3s,color .3s}.ant-menu-submenu-arrow,.ant-menu-submenu-expand-icon,.ant-menu-submenu>.ant-menu-submenu-title::after{transition:transform .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-item .ant-menu-item-icon.svg,.ant-menu-submenu-title .ant-menu-item-icon.svg{vertical-align:-.125em}.ant-menu-item.ant-menu-item-only-child>.ant-menu-item-icon,.ant-menu-item.ant-menu-item-only-child>.anticon,.ant-menu-submenu-title.ant-menu-item-only-child>.ant-menu-item-icon,.ant-menu-submenu-title.ant-menu-item-only-child>.anticon{margin-right:0}.ant-menu-item:focus-visible,.ant-menu-submenu-title:focus-visible{box-shadow:0 0 0 2px rgba(23,125,220,.2)}.ant-menu>.ant-menu-item-divider{height:1px;margin:1px 0;padding:0;overflow:hidden;line-height:0;background-color:#303030}.ant-menu-submenu-popup{position:absolute;z-index:1050;background:0 0;border-radius:2px;box-shadow:none;transform-origin:0 0}.ant-menu-submenu-popup::before{position:absolute;top:-7px;right:0;bottom:0;left:0;z-index:-1;width:100%;height:100%;opacity:.0001}.ant-menu-submenu-placement-rightTop::before{top:0;left:-7px}.ant-menu-submenu>.ant-menu{background-color:#141414;border-radius:2px}.ant-menu-submenu-popup>.ant-menu{background-color:#1f1f1f}.ant-menu-submenu-arrow,.ant-menu-submenu-expand-icon{position:absolute;top:50%;right:16px;width:10px;color:rgba(255,255,255,.85);transform:translateY(-50%)}.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-active,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-open,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-selected,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item:hover,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-active,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-open,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-selected,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu:hover,.ant-menu-submenu:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-submenu:hover>.ant-menu-submenu-title>.ant-menu-submenu-expand-icon,.ant-menu-vertical .ant-menu-submenu-selected,.ant-menu-vertical-left .ant-menu-submenu-selected,.ant-menu-vertical-right .ant-menu-submenu-selected{color:#177ddc}.ant-menu-submenu-arrow::after,.ant-menu-submenu-arrow::before{position:absolute;width:6px;height:1.5px;background-color:currentColor;border-radius:2px;transition:background .3s cubic-bezier(.645,.045,.355,1),transform .3s cubic-bezier(.645,.045,.355,1),top .3s cubic-bezier(.645,.045,.355,1),color .3s cubic-bezier(.645,.045,.355,1);content:''}.ant-menu-submenu-arrow::before{transform:rotate(45deg) translateY(-2.5px)}.ant-menu-submenu-arrow::after{transform:rotate(-45deg) translateY(2.5px)}.ant-menu-inline-collapsed .ant-menu-submenu-arrow::before,.ant-menu-submenu-inline .ant-menu-submenu-arrow::before{transform:rotate(-45deg) translateX(2.5px)}.ant-menu-inline-collapsed .ant-menu-submenu-arrow::after,.ant-menu-submenu-inline .ant-menu-submenu-arrow::after{transform:rotate(45deg) translateX(-2.5px)}.ant-menu-submenu-open.ant-menu-submenu-inline>.ant-menu-submenu-title>.ant-menu-submenu-arrow{transform:translateY(-2px)}.ant-menu-submenu-open.ant-menu-submenu-inline>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after{transform:rotate(-45deg) translateX(-2.5px)}.ant-menu-submenu-open.ant-menu-submenu-inline>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before{transform:rotate(45deg) translateX(2.5px)}.ant-menu-horizontal{line-height:46px;border:0;border-bottom:1px solid #303030;box-shadow:none}.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu{margin-top:-1px;margin-bottom:0;padding:0 20px}.ant-menu-horizontal>.ant-menu-item a,.ant-menu.ant-menu-inline-collapsed-tooltip a{color:rgba(255,255,255,.85)}.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-active::after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-open::after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-selected::after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item:hover::after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-active::after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-open::after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-selected::after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu:hover::after{border-bottom:2px solid #177ddc}.ant-menu-horizontal>.ant-menu-item,.ant-menu-horizontal>.ant-menu-submenu{position:relative;top:1px;display:inline-block;vertical-align:bottom}.ant-menu-horizontal>.ant-menu-item::after,.ant-menu-horizontal>.ant-menu-submenu::after{position:absolute;right:20px;bottom:0;left:20px;border-bottom:2px solid transparent;transition:border-color .3s cubic-bezier(.645,.045,.355,1);content:''}.ant-menu-horizontal>.ant-menu-submenu>.ant-menu-submenu-title{padding:0}.ant-menu-horizontal>.ant-menu-item a:hover,.ant-menu-horizontal>.ant-menu-item-selected a{color:#177ddc}.ant-menu-horizontal>.ant-menu-item a::before{bottom:-2px}.ant-menu-horizontal::after{display:block;clear:both;height:0;content:'\20'}.ant-menu-inline .ant-menu-item,.ant-menu-vertical .ant-menu-item,.ant-menu-vertical-left .ant-menu-item,.ant-menu-vertical-right .ant-menu-item{position:relative}.ant-menu-inline .ant-menu-item::after,.ant-menu-vertical .ant-menu-item::after,.ant-menu-vertical-left .ant-menu-item::after,.ant-menu-vertical-right .ant-menu-item::after{position:absolute;top:0;right:0;bottom:0;border-right:3px solid #177ddc;transform:scaleY(.0001);opacity:0;transition:transform .15s cubic-bezier(.215,.61,.355,1),opacity .15s cubic-bezier(.215,.61,.355,1);content:''}.ant-menu-inline .ant-menu-item,.ant-menu-inline .ant-menu-submenu-title,.ant-menu-vertical .ant-menu-item,.ant-menu-vertical .ant-menu-submenu-title,.ant-menu-vertical-left .ant-menu-item,.ant-menu-vertical-left .ant-menu-submenu-title,.ant-menu-vertical-right .ant-menu-item,.ant-menu-vertical-right .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-inline .ant-menu-item-group-list .ant-menu-submenu-title,.ant-menu-inline .ant-menu-submenu-title,.ant-menu-vertical .ant-menu-item-group-list .ant-menu-submenu-title,.ant-menu-vertical .ant-menu-submenu-title{padding-right:34px}.ant-menu-inline .ant-menu-submenu,.ant-menu-vertical .ant-menu-submenu,.ant-menu-vertical-left .ant-menu-submenu,.ant-menu-vertical-right .ant-menu-submenu{padding-bottom:.02px}.ant-menu-inline .ant-menu-item:not(:last-child),.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){margin-bottom:8px}.ant-menu-inline>.ant-menu-item,.ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-vertical-left>.ant-menu-item,.ant-menu-vertical-left>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-vertical-right>.ant-menu-item,.ant-menu-vertical-right>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-vertical>.ant-menu-item,.ant-menu-vertical>.ant-menu-submenu>.ant-menu-submenu-title{height:40px;line-height:40px}.ant-menu-inline{width:100%}.ant-menu-inline .ant-menu-item-selected::after,.ant-menu-inline .ant-menu-selected::after{transform:scaleY(1);opacity:1;transition:transform .15s cubic-bezier(.645,.045,.355,1),opacity .15s cubic-bezier(.645,.045,.355,1)}.ant-menu-inline .ant-menu-item,.ant-menu-inline .ant-menu-submenu-title{width:calc(100% + 1px)}.ant-menu-inline.ant-menu-root .ant-menu-item,.ant-menu-inline.ant-menu-root .ant-menu-submenu-title{display:flex;align-items:center;transition:border-color .3s,background .3s,padding .1s cubic-bezier(.215,.61,.355,1)}.ant-menu-inline.ant-menu-root .ant-menu-item>.ant-menu-title-content,.ant-menu-inline.ant-menu-root .ant-menu-submenu-title>.ant-menu-title-content{flex:auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.ant-menu-inline.ant-menu-root .ant-menu-item>*,.ant-menu-inline.ant-menu-root .ant-menu-submenu-title>*{flex:none}.ant-menu.ant-menu-inline-collapsed{width:80px}.ant-menu.ant-menu-inline-collapsed>.ant-menu-item,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title{left:0;padding:0 calc(50% - 16px / 2);text-overflow:clip}.ant-menu.ant-menu-inline-collapsed>.ant-menu-item .ant-menu-submenu-arrow,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .ant-menu-submenu-arrow,.ant-menu.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.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-submenu-arrow{opacity:0}.ant-menu.ant-menu-inline-collapsed>.ant-menu-item .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item .anticon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .anticon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .anticon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .anticon{margin:0;font-size:16px;line-height:40px}.ant-menu.ant-menu-inline-collapsed>.ant-menu-item .ant-menu-item-icon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item .anticon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .ant-menu-item-icon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .anticon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-item-icon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .anticon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-item-icon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .anticon+span{display:inline-block;opacity:0}.ant-menu.ant-menu-inline-collapsed .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed .anticon{display:inline-block}.ant-menu.ant-menu-inline-collapsed-tooltip{pointer-events:none}.ant-menu.ant-menu-inline-collapsed-tooltip .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed-tooltip .anticon{display:none}.ant-menu.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-inline,.ant-menu-root.ant-menu-vertical,.ant-menu-root.ant-menu-vertical-left,.ant-menu-root.ant-menu-vertical-right{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-rtl .ant-menu-item-group-title,.ant-menu-rtl.ant-menu-inline .ant-menu-item,.ant-menu-rtl.ant-menu-inline .ant-menu-submenu-title,.ant-menu-rtl.ant-menu-vertical .ant-menu-item,.ant-menu-rtl.ant-menu-vertical .ant-menu-submenu-title,.ant-menu-rtl.ant-menu-vertical-left .ant-menu-item,.ant-menu-rtl.ant-menu-vertical-left .ant-menu-submenu-title,.ant-menu-rtl.ant-menu-vertical-right .ant-menu-item,.ant-menu-rtl.ant-menu-vertical-right .ant-menu-submenu-title,.ant-menu.ant-menu-rtl{text-align:right}.ant-menu-sub.ant-menu-inline{padding:0;background:rgba(255,255,255,.04);border-radius:0;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{background:0 0}.ant-menu-item-disabled::after,.ant-menu-submenu-disabled::after{border-color:transparent!important}.ant-menu-item-disabled a,.ant-menu-submenu-disabled a{color:rgba(255,255,255,.3)!important;pointer-events:none}.ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after,.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::after,.ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before{background:rgba(255,255,255,.3)!important}.ant-layout-header .ant-menu{line-height:inherit}.ant-menu-light .ant-menu-item-active,.ant-menu-light .ant-menu-item:hover,.ant-menu-light .ant-menu-submenu-active,.ant-menu-light .ant-menu-submenu-title:hover,.ant-menu-light .ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open{color:#177ddc}.ant-menu-dark .ant-menu-sub,.ant-menu.ant-menu-dark,.ant-menu.ant-menu-dark .ant-menu-sub{color:rgba(255,255,255,.65);background:#1f1f1f}.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,.ant-menu.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow{opacity:.45;transition:all .3s}.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow::after,.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::after,.ant-menu.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow::before,.ant-menu.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow::after,.ant-menu.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow::before{background:#fff}.ant-menu-dark.ant-menu-submenu-popup{background:0 0}.ant-menu-dark .ant-menu-inline.ant-menu-sub{background:#141414}.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;padding:0 20px;border-color:#1f1f1f;border-bottom:0}.ant-menu-dark.ant-menu-horizontal>.ant-menu-item:hover{background-color:#177ddc}.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,.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-active,.ant-menu-dark .ant-menu-item:hover,.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-active>a,.ant-menu-dark .ant-menu-item-active>span>a,.ant-menu-dark .ant-menu-item:hover>a,.ant-menu-dark .ant-menu-item:hover>span>a,.ant-menu-dark .ant-menu-submenu-active>a,.ant-menu-dark .ant-menu-submenu-active>span>a,.ant-menu-dark .ant-menu-submenu-open>a,.ant-menu-dark .ant-menu-submenu-open>span>a,.ant-menu-dark .ant-menu-submenu-selected>a,.ant-menu-dark .ant-menu-submenu-selected>span>a,.ant-menu-dark .ant-menu-submenu-title:hover>a,.ant-menu-dark .ant-menu-submenu-title:hover>span>a{color:#fff}.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-item:hover>.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{opacity:1}.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after,.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title>.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-submenu-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::before,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after,.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::after,.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::after,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title>.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,.ant-menu-submenu-popup.ant-menu-dark .ant-menu-item-selected,.ant-menu.ant-menu-dark .ant-menu-item-selected{background-color:#177ddc}.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 .ant-menu-item-icon,.ant-menu-dark .ant-menu-item-selected .ant-menu-item-icon+span,.ant-menu-dark .ant-menu-item-selected .anticon,.ant-menu-dark .ant-menu-item-selected .anticon+span,.ant-menu-dark .ant-menu-item-selected>a,.ant-menu-dark .ant-menu-item-selected>a:hover,.ant-menu-dark .ant-menu-item-selected>span>a,.ant-menu-dark .ant-menu-item-selected>span>a:hover{color:#fff}.ant-menu-dark .ant-menu-item-disabled,.ant-menu-dark .ant-menu-item-disabled>a,.ant-menu-dark .ant-menu-item-disabled>span>a,.ant-menu-dark .ant-menu-submenu-disabled,.ant-menu-dark .ant-menu-submenu-disabled>a,.ant-menu-dark .ant-menu-submenu-disabled>span>a{color:rgba(255,255,255,.3)!important;opacity:.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,.3)!important}.ant-menu-dark .ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after,.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::after,.ant-menu-dark .ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before{background:rgba(255,255,255,.3)!important}.ant-menu-rtl.ant-menu-inline,.ant-menu-rtl.ant-menu-vertical{border-right:none;border-left:1px solid #303030}.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-left.ant-menu-sub>.ant-menu-item,.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-item,.ant-menu-rtl.ant-menu-vertical-right.ant-menu-sub>.ant-menu-submenu,.ant-menu-rtl.ant-menu-vertical.ant-menu-sub>.ant-menu-item,.ant-menu-rtl.ant-menu-vertical.ant-menu-sub>.ant-menu-submenu{transform-origin:top right}.ant-menu-rtl .ant-menu-item .ant-menu-item-icon,.ant-menu-rtl .ant-menu-item .anticon,.ant-menu-rtl .ant-menu-submenu-title .ant-menu-item-icon,.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>.ant-menu-item-icon,.ant-menu-rtl .ant-menu-item.ant-menu-item-only-child>.anticon,.ant-menu-rtl .ant-menu-submenu-title.ant-menu-item-only-child>.ant-menu-item-icon,.ant-menu-rtl .ant-menu-submenu-title.ant-menu-item-only-child>.anticon{margin-left:0}.ant-menu-submenu-rtl.ant-menu-submenu-popup{transform-origin:100% 0}.ant-menu-rtl .ant-menu-submenu-inline>.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-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow{right:auto;left:16px}.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,.ant-menu-rtl .ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow::before{transform:rotate(-45deg) translateY(-2px)}.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,.ant-menu-rtl .ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow::after{transform:rotate(45deg) translateY(2px)}.ant-menu-rtl.ant-menu-inline .ant-menu-item::after,.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{right:auto;left:0}.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 calc(50% - 16px / 2)}.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}.ant-mention-wrapper,.ant-mention-wrapper .ant-mention-editor{color:rgba(255,255,255,.85);font-size:14px;padding:0;line-height:1.5715;position:relative;width:100%}.ant-menu-submenu.ant-menu-submenu-placement-bottom{top:6px;position:relative}.ant-menu-submenu.ant-menu-submenu-placement-right{left:4px;position:relative}.ant-menu-submenu.ant-menu-submenu-placement-right.ant-menu-submenu-rtl{left:auto;right:4px}.ant-menu-submenu.ant-menu-submenu-placement-left{right:4px;position:relative}.ant-menu-submenu.ant-menu-submenu-placement-left.ant-menu-submenu-rtl{right:auto;left:4px}.ant-mention-wrapper{margin:0;font-variant:tabular-nums;list-style:none;font-feature-settings:tnum;display:inline-block;vertical-align:middle}.ant-mention-wrapper .ant-mention-editor{min-width:0;background-color:transparent;background-image:none;border:1px solid #434343;border-radius:2px;transition:all .3s;display:block;height:auto;min-height:32px}.ant-mention-wrapper .ant-mention-editor-disabled,.ant-mention-wrapper .ant-mention-editor[disabled]{background-color:rgba(255,255,255,.08);cursor:not-allowed;color:rgba(255,255,255,.3);opacity:1;pointer-events:none}.ant-mention-wrapper .ant-mention-editor::-moz-placeholder{opacity:1}.ant-mention-wrapper .ant-mention-editor::placeholder{color:rgba(255,255,255,.3)}.ant-mention-wrapper .ant-mention-editor:placeholder-shown{text-overflow:ellipsis}.ant-mention-wrapper .ant-mention-editor:hover{border-color:#165996;border-right-width:1px!important}.ant-input-rtl .ant-mention-wrapper .ant-mention-editor:hover{border-right-width:0;border-left-width:1px!important}.ant-mention-wrapper .ant-mention-editor-focused,.ant-mention-wrapper .ant-mention-editor:focus{border-color:#177ddc;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(23,125,220,.2)}.ant-input-rtl .ant-mention-wrapper .ant-mention-editor-focused,.ant-input-rtl .ant-mention-wrapper .ant-mention-editor:focus{border-right-width:0;border-left-width:1px!important}.ant-mention-wrapper .ant-mention-editor-disabled:hover,.ant-mention-wrapper .ant-mention-editor[disabled]:hover{border-color:#434343;border-right-width:1px!important}.ant-mention-wrapper .ant-mention-editor-borderless,.ant-mention-wrapper .ant-mention-editor-borderless-disabled,.ant-mention-wrapper .ant-mention-editor-borderless-focused,.ant-mention-wrapper .ant-mention-editor-borderless:focus,.ant-mention-wrapper .ant-mention-editor-borderless:hover,.ant-mention-wrapper .ant-mention-editor-borderless[disabled]{background-color:transparent;border:none;box-shadow:none}textarea.ant-mention-wrapper .ant-mention-editor{max-width:100%;height:auto;min-height:32px;line-height:1.5715;vertical-align:bottom;transition:all .3s,height 0s}.ant-mention-wrapper .ant-mention-editor-lg{padding:6.5px 11px;font-size:16px}.ant-mention-dropdown,.ant-message{font-size:14px;line-height:1.5715;list-style:none;font-feature-settings:tnum;box-sizing:border-box}.ant-mention-wrapper .ant-mention-editor-sm{padding:0 7px}.ant-mention-wrapper .ant-mention-editor-wrapper{height:auto;overflow-y:auto}.ant-mention-wrapper.ant-mention-active:not(.disabled) .ant-mention-editor{border-color:#177ddc;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(23,125,220,.2)}.ant-mention-dropdown,.ant-message-notice-content,.ant-modal-content{box-shadow:0 3px 6px -4px rgba(0,0,0,.48),0 6px 16px 0 rgba(0,0,0,.32),0 9px 28px 8px rgba(0,0,0,.2)}.ant-input-rtl .ant-mention-wrapper.ant-mention-active:not(.disabled) .ant-mention-editor{border-right-width:0;border-left-width:1px!important}.ant-mention-wrapper.disabled .ant-mention-editor{background-color:rgba(255,255,255,.08);cursor:not-allowed;opacity:1;color:rgba(255,255,255,.3);pointer-events:none}.ant-mention-wrapper.disabled .ant-mention-editor:hover{border-color:#434343;border-right-width:1px!important}.ant-mention-wrapper .public-DraftEditorPlaceholder-root{position:absolute;pointer-events:none}.ant-mention-wrapper .public-DraftEditorPlaceholder-root .public-DraftEditorPlaceholder-inner{height:auto;padding:5px 11px;color:rgba(255,255,255,.3);white-space:pre-wrap;word-wrap:break-word;outline:0;opacity:1}.ant-mention-wrapper .DraftEditor-editorContainer .public-DraftEditor-content{height:auto;padding:5px 11px}.ant-mention-dropdown{margin:1.5em 0 0;padding:0;color:rgba(255,255,255,.85);font-variant:tabular-nums;z-index:1050;min-width:120px;max-height:250px;overflow-x:hidden;overflow-y:auto;background-color:#141414;border-radius:2px;outline:0}.ant-mention-dropdown-placement-top{margin-top:-.1em}.ant-mention-dropdown-notfound.ant-mention-dropdown-item{color:rgba(255,255,255,.3)}.ant-mention-dropdown-notfound.ant-mention-dropdown-item .anticon-loading{display:block;color:#177ddc;text-align:center}.ant-mention-dropdown-item{position:relative;display:block;padding:5px 12px;overflow:hidden;color:rgba(255,255,255,.85);font-weight:400;line-height:22px;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;transition:background .3s}.ant-mention-dropdown-item-disabled,.ant-mention-dropdown-item-disabled:hover{cursor:not-allowed;color:rgba(255,255,255,.3)}.ant-mention-dropdown-item:hover{background-color:rgba(255,255,255,.08)}.ant-mention-dropdown-item-active,.ant-mention-dropdown-item.focus{background-color:#111b26}.ant-mention-dropdown-item-disabled:hover{background-color:#141414}.ant-mention-dropdown-item-selected,.ant-mention-dropdown-item-selected:hover{color:rgba(255,255,255,.85);font-weight:700;background-color:rgba(255,255,255,.08)}.ant-mention-dropdown-item-divider{height:1px;margin:1px 0;overflow:hidden;line-height:0;background-color:#303030}.ant-mention-dropdown{top:100%;left:0;position:relative;width:100%;margin-top:4px;margin-bottom:4px}.ant-message{margin:0;padding:0;color:rgba(255,255,255,.85);font-variant:tabular-nums;position:fixed;top:8px;left:0;z-index:1010;width:100%;pointer-events:none}.ant-message-notice{padding:8px;text-align:center}.ant-message-notice-content{display:inline-block;padding:10px 16px;background:#1f1f1f;border-radius:2px;pointer-events:all}.ant-message-success .anticon{color:#49aa19}.ant-message-error .anticon{color:#a61d24}.ant-message-warning .anticon{color:#d89614}.ant-message-info .anticon,.ant-message-loading .anticon{color:#177ddc}.ant-modal,.ant-modal-title{color:rgba(255,255,255,.85)}.ant-message .anticon{position:relative;top:1px;margin-right:8px;font-size:16px}.ant-message-notice.ant-move-up-leave.ant-move-up-leave-active{animation-name:MessageMoveOut;animation-duration:.3s}@keyframes MessageMoveOut{0%{max-height:150px;padding:8px;opacity:1}100%{max-height:0;padding:0;opacity:0}}.ant-message-rtl .anticon{margin-right:0;margin-left:8px}.ant-modal{box-sizing:border-box;padding:0 0 24px;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:tnum;pointer-events:none;position:relative;top:100px;width:auto;max-width:calc(100vw - 32px);margin:0 auto}.ant-modal-mask,.ant-modal-wrap{position:fixed;right:0;left:0;bottom:0;z-index:1000}.ant-modal.ant-zoom-enter,.ant-modal.antzoom-appear{transform:none;opacity:0;animation-duration:.3s;user-select:none}.ant-modal-mask{top:0;height:100%;background-color:rgba(0,0,0,.45)}.ant-modal .ant-anchor-wrapper,.ant-modal .ant-card,.ant-modal .ant-collapse-content,.ant-modal .ant-picker-clear,.ant-modal .ant-slider-handle,.ant-modal .ant-timeline-item-head,.ant-modal-content{background-color:#1f1f1f}.ant-modal-mask-hidden{display:none}.ant-modal-wrap{top:0;overflow:auto;outline:0;-webkit-overflow-scrolling:touch}.ant-modal-title{margin:0;font-weight:500;font-size:16px;line-height:22px;word-wrap:break-word}.ant-modal-content{position:relative;background-clip:padding-box;border:0;border-radius:2px;pointer-events:auto}.ant-modal .ant-badge-count,.ant-notification .ant-badge-count{box-shadow:0 0 0 1px #1f1f1f}.ant-modal-close{position:absolute;top:0;right:0;z-index:10;padding:0;color:rgba(255,255,255,.45);font-weight:700;line-height:1;text-decoration:none;background:0 0;border:0;outline:0;cursor:pointer;transition:color .3s}.ant-modal .ant-transfer-list-header,.ant-modal-header{background:#1f1f1f}.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(255,255,255,.75);text-decoration:none}.ant-modal-header{padding:16px 24px;color:rgba(255,255,255,.85);border-bottom:1px solid #303030;border-radius:2px 2px 0 0}.ant-modal .ant-table tbody>tr>td,.ant-modal .ant-table tfoot>tr>td,.ant-modal .ant-table tfoot>tr>th,.ant-modal .ant-table thead>tr>th,.ant-modal .ant-table.ant-table-small thead>tr>th,.ant-modal .ant-transfer-list-header{border-bottom:1px solid #3a3a3a}.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:0 0;border-top:1px solid #303030;border-radius:0 0 2px 2px}.ant-modal .ant-table .ant-table-row-expand-icon,.ant-modal .ant-table.ant-table-bordered .ant-table-title{border:1px solid #3a3a3a}.ant-modal-footer .ant-btn+.ant-btn:not(.ant-dropdown-trigger){margin-bottom:0;margin-left:8px}.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{flex:1}}.ant-modal-confirm .ant-modal-header{display:none}.ant-modal-confirm-body-wrapper::after,.ant-modal-confirm-body-wrapper::before{display:table;content:''}.ant-modal-confirm .ant-modal-body{padding:32px 32px 24px}.ant-modal-confirm-body-wrapper::after{clear:both}.ant-modal-confirm-body .ant-modal-confirm-title{display:block;overflow:hidden;color:rgba(255,255,255,.85);font-weight:500;font-size:16px;line-height:1.4}.ant-modal-confirm-body .ant-modal-confirm-content{margin-top:8px;color:rgba(255,255,255,.85);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 .ant-btn+.ant-btn{margin-bottom:0;margin-left:8px}.ant-modal-confirm-error .ant-modal-confirm-body>.anticon{color:#a61d24}.ant-modal-confirm-confirm .ant-modal-confirm-body>.anticon,.ant-modal-confirm-warning .ant-modal-confirm-body>.anticon{color:#d89614}.ant-modal-confirm-info .ant-modal-confirm-body>.anticon{color:#177ddc}.ant-modal-confirm-success .ant-modal-confirm-body>.anticon{color:#49aa19}.ant-modal .ant-transfer-list-content-item:not(.ant-transfer-list-content-item-disabled):hover{background-color:rgba(255,255,255,.08)}.ant-modal tr.ant-table-expanded-row:hover>td,.ant-modal tr.ant-table-expanded-row>td{background:#272727}.ant-modal .ant-table,.ant-modal .ant-table.ant-table-small thead>tr>th{background-color:#1f1f1f}.ant-modal .ant-table thead>tr>th{background-color:#272727}.ant-modal .ant-table tbody>tr>td.ant-table-cell-fix-left,.ant-modal .ant-table tbody>tr>td.ant-table-cell-fix-right{background-color:#1f1f1f}.ant-modal .ant-table tbody>tr.ant-table-row:hover>td{background:#303030}.ant-modal .ant-table.ant-table-bordered table thead>tr:not(:last-child)>th{border-bottom:1px solid #303030}.ant-modal .ant-table.ant-table-bordered .ant-table-container,.ant-modal .ant-table.ant-table-bordered .ant-table-footer{border:1px solid #3a3a3a}.ant-modal .ant-table .ant-table-filter-trigger-container-open{background-color:#525252}.ant-modal .ant-picker-calendar-full,.ant-modal .ant-picker-calendar-full .ant-picker-panel{background-color:#1f1f1f}.ant-modal .ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date{border-top:2px solid #3a3a3a}.ant-modal .ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-active{background-color:#1f1f1f;border-bottom:1px solid #1f1f1f}.ant-notification .ant-table .ant-table-row-expand-icon,.ant-notification .ant-table.ant-table-bordered .ant-table-title{border:1px solid #3a3a3a}.ant-modal .ant-tree-show-line .ant-tree-switcher{background:#1f1f1f}.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 .ant-btn+.ant-btn{margin-right:8px;margin-left:0}.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 .ant-btn+.ant-btn{margin-right:8px;margin-left:0}.ant-modal-wrap-rtl.ant-modal-centered .ant-modal{text-align:right}.ant-notification .ant-anchor-wrapper,.ant-notification .ant-card,.ant-notification .ant-collapse-content,.ant-notification .ant-picker-clear,.ant-notification .ant-slider-handle,.ant-notification .ant-timeline-item-head{background-color:#1f1f1f}.ant-notification .ant-transfer-list-header{background:#1f1f1f;border-bottom:1px solid #3a3a3a}.ant-notification .ant-transfer-list-content-item:not(.ant-transfer-list-content-item-disabled):hover{background-color:rgba(255,255,255,.08)}.ant-notification tr.ant-table-expanded-row:hover>td,.ant-notification tr.ant-table-expanded-row>td{background:#272727}.ant-notification .ant-table.ant-table-small thead>tr>th{background-color:#1f1f1f;border-bottom:1px solid #3a3a3a}.ant-notification .ant-table{background-color:#1f1f1f}.ant-notification .ant-table tfoot>tr>td,.ant-notification .ant-table tfoot>tr>th{border-bottom:1px solid #3a3a3a}.ant-notification .ant-table thead>tr>th{background-color:#272727;border-bottom:1px solid #3a3a3a}.ant-notification .ant-table tbody>tr>td{border-bottom:1px solid #3a3a3a}.ant-notification .ant-table tbody>tr>td.ant-table-cell-fix-left,.ant-notification .ant-table tbody>tr>td.ant-table-cell-fix-right{background-color:#1f1f1f}.ant-notification .ant-table tbody>tr.ant-table-row:hover>td{background:#303030}.ant-notification .ant-table.ant-table-bordered table thead>tr:not(:last-child)>th{border-bottom:1px solid #303030}.ant-notification .ant-table.ant-table-bordered .ant-table-container,.ant-notification .ant-table.ant-table-bordered .ant-table-footer{border:1px solid #3a3a3a}.ant-notification .ant-table .ant-table-filter-trigger-container-open{background-color:#525252}.ant-notification .ant-picker-calendar-full,.ant-notification .ant-picker-calendar-full .ant-picker-panel{background-color:#1f1f1f}.ant-notification .ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date{border-top:2px solid #3a3a3a}.ant-notification .ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-active{background-color:#1f1f1f;border-bottom:1px solid #1f1f1f}.ant-notification-notice,.ant-popover-inner,.ant-select-dropdown{box-shadow:0 3px 6px -4px rgba(0,0,0,.48),0 6px 16px 0 rgba(0,0,0,.32),0 9px 28px 8px rgba(0,0,0,.2)}.ant-notification .ant-tree-show-line .ant-tree-switcher{background:#1f1f1f}.ant-notification{box-sizing:border-box;margin:0 24px 0 0;padding:0;color:rgba(255,255,255,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:tnum;position:fixed;z-index:1010}.ant-notification-bottomLeft,.ant-notification-topLeft{margin-right:0;margin-left:24px}.ant-notification-bottomLeft .ant-notification-fade-appear.ant-notification-fade-appear-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-topLeft .ant-notification-fade-enter.ant-notification-fade-enter-active{animation-name:NotificationLeftFadeIn}.ant-notification-close-icon{font-size:14px;cursor:pointer}.ant-notification-hook-holder{position:relative}.ant-notification-notice{position:relative;width:384px;max-width:calc(100vw - 24px * 2);margin-bottom:16px;margin-left:auto;padding:16px 24px;overflow:hidden;line-height:1.5715;word-wrap:break-word;background:#1f1f1f;border-radius:2px}.ant-notification-bottomLeft .ant-notification-notice,.ant-notification-topLeft .ant-notification-notice{margin-right:auto;margin-left:0}.ant-notification-notice-message{margin-bottom:8px;color:rgba(255,255,255,.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:#49aa19}.anticon.ant-notification-notice-icon-info{color:#177ddc}.anticon.ant-notification-notice-icon-warning{color:#d89614}.anticon.ant-notification-notice-icon-error{color:#a61d24}.ant-notification-notice-close{position:absolute;top:16px;right:22px;color:rgba(255,255,255,.45);outline:0}.ant-page-header,.ant-pagination-jump-next .ant-pagination-item-container,.ant-pagination-jump-prev .ant-pagination-item-container{position:relative}.ant-notification-notice-close:hover,.ant-page-header{color:rgba(255,255,255,.85)}.ant-notification-notice-btn{float:right;margin-top:16px}.ant-notification .notification-fade-effect{animation-duration:.24s;animation-fill-mode:both}.ant-notification-fade-appear,.ant-notification-fade-enter{animation-duration:.24s;animation-fill-mode:both;opacity:0;animation-play-state:paused}.ant-notification-fade-leave{animation-fill-mode:both;animation-duration:.2s;animation-play-state:paused}.ant-notification-fade-appear.ant-notification-fade-appear-active,.ant-notification-fade-enter.ant-notification-fade-enter-active{animation-name:NotificationFadeIn;animation-play-state:running}.ant-notification-fade-leave.ant-notification-fade-leave-active{animation-name:NotificationFadeOut;animation-play-state:running}@keyframes NotificationFadeIn{0%{left:384px;opacity:0}100%{left:0;opacity:1}}@keyframes NotificationLeftFadeIn{0%{right:384px;opacity:0}100%{right:0;opacity:1}}@keyframes NotificationFadeOut{0%{max-height:150px;margin-bottom:16px;opacity:1}100%{max-height:0;margin-bottom:0;padding-top:0;padding-bottom:0;opacity:0}}.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-description,.ant-notification-rtl .ant-notification-notice-with-icon .ant-notification-notice-message{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}.ant-page-header{box-sizing:border-box;margin:0;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:tnum;padding:16px 16px 32px 0;background-color:#141414}.ant-page-header-content,.ant-page-header.has-breadcrumb{padding-top:12px}.ant-page-header-ghost{background-color:transparent}.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{text-decoration:none;outline:0;transition:color .3s;color:inherit;cursor:pointer}.ant-page-header-back-button:focus,.ant-page-header-back-button:hover{color:#165996}.ant-page-header-back-button:active{color:#388ed3}.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:flex;justify-content:space-between}.ant-page-header-heading-left{display:flex;align-items:center;margin:4px 0;overflow:hidden}.ant-page-header-heading-title{margin-right:12px;margin-bottom:0;color:rgba(255,255,255,.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(255,255,255,.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-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-top:8px;padding-bottom:8px;font-size:16px}.ant-page-header-compact .ant-page-header-heading{flex-wrap:wrap}.ant-page-header-rtl .ant-page-header-back{float:right;margin-right:0;margin-left:16px}.ant-page-header-rtl .ant-page-header-heading .ant-avatar,.ant-page-header-rtl .ant-page-header-heading-title{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-pagination,.ant-pagination ol,.ant-pagination ul{margin:0;list-style:none;padding: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}.ant-page-header-back-button{border:0;background:0 0;padding:0;line-height:inherit;display:inline-block}nz-page-header,nz-page-header-content,nz-page-header-footer{display:block}.ant-pagination{box-sizing:border-box;color:rgba(255,255,255,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;font-feature-settings:tnum}.ant-pagination::after{display:block;clear:both;height:0;overflow:hidden;visibility:hidden;content:' '}.ant-pagination-item,.ant-pagination-total-text{display:inline-block;margin-right:8px;vertical-align:middle;line-height:30px}.ant-pagination-total-text{height:32px}.ant-pagination-item{min-width:32px;height:32px;text-align:center;list-style:none;background-color:transparent;border:1px solid #434343;border-radius:2px;outline:0;cursor:pointer;user-select:none}.ant-pagination-item a{display:block;padding:0 6px;color:rgba(255,255,255,.85);transition:none}.ant-pagination-item-active a,.ant-pagination-item:focus-visible a,.ant-pagination-item:hover a{color:#177ddc}.ant-pagination-item a:hover{text-decoration:none}.ant-pagination-item:focus-visible,.ant-pagination-item:hover{border-color:#177ddc;transition:all .3s}.ant-pagination-item-active{font-weight:500;background:0 0;border-color:#177ddc}.ant-pagination-item-active:focus-visible,.ant-pagination-item-active:hover,.ant-pagination-next:hover button,.ant-pagination-prev:hover button{border-color:#165996}.ant-pagination-item-active:focus-visible a,.ant-pagination-item-active:hover a{color:#165996}.ant-pagination-jump-next,.ant-pagination-jump-prev{outline:0}.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon,.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon{color:#177ddc;font-size:12px;letter-spacing:-1px;opacity:0;transition:all .2s}.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon-svg,.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon-svg{top:0;right:0;bottom:0;left:0;margin:auto}.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-ellipsis,.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-ellipsis{position:absolute;top:0;right:0;bottom:0;left:0;display:block;margin:auto;color:rgba(255,255,255,.3);font-family:Arial,Helvetica,sans-serif;letter-spacing:2px;text-align:center;text-indent:.13em;opacity:1;transition:all .2s}.ant-pagination-jump-next,.ant-pagination-jump-prev,.ant-pagination-next,.ant-pagination-prev,.ant-select-multiple .ant-select-selection-search-input,.ant-select-multiple .ant-select-selection-search-mirror,.ant-statistic-content,.ant-steps-item-icon{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-pagination-jump-next:focus-visible .ant-pagination-item-link-icon,.ant-pagination-jump-next:hover .ant-pagination-item-link-icon,.ant-pagination-jump-prev:focus-visible .ant-pagination-item-link-icon,.ant-pagination-jump-prev:hover .ant-pagination-item-link-icon{opacity:1}.ant-pagination-jump-next:focus-visible .ant-pagination-item-ellipsis,.ant-pagination-jump-next:hover .ant-pagination-item-ellipsis,.ant-pagination-jump-prev:focus-visible .ant-pagination-item-ellipsis,.ant-pagination-jump-prev:hover .ant-pagination-item-ellipsis{opacity:0}.ant-pagination-jump-next,.ant-pagination-jump-prev,.ant-pagination-prev{margin-right:8px}.ant-pagination-jump-next,.ant-pagination-jump-prev,.ant-pagination-next,.ant-pagination-prev{display:inline-block;min-width:32px;height:32px;color:rgba(255,255,255,.85);line-height:32px;text-align:center;vertical-align:middle;list-style:none;border-radius:2px;cursor:pointer;transition:all .3s}.ant-pagination-next,.ant-pagination-prev{font-family:Arial,Helvetica,sans-serif;outline:0}.ant-pagination-next button,.ant-pagination-prev button{color:rgba(255,255,255,.85);cursor:pointer;user-select:none}.ant-pagination-next .ant-pagination-item-link,.ant-pagination-prev .ant-pagination-item-link{display:block;width:100%;height:100%;padding:0;font-size:12px;text-align:center;background-color:transparent;border:1px solid #434343;border-radius:2px;outline:0;transition:all .3s}.ant-pagination-next:focus-visible .ant-pagination-item-link,.ant-pagination-next:hover .ant-pagination-item-link,.ant-pagination-prev:focus-visible .ant-pagination-item-link,.ant-pagination-prev:hover .ant-pagination-item-link{color:#177ddc;border-color:#177ddc}.ant-pagination-disabled,.ant-pagination-disabled:focus-visible,.ant-pagination-disabled:hover{cursor:not-allowed}.ant-pagination-disabled .ant-pagination-item-link,.ant-pagination-disabled:focus-visible .ant-pagination-item-link,.ant-pagination-disabled:hover .ant-pagination-item-link{color:rgba(255,255,255,.3);border-color:#434343;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,.ant-pagination-options ::-ms-backdrop{vertical-align:top}}.ant-pagination-options-size-changer.ant-select{display:inline-block;width:auto}.ant-pagination-options-quick-jumper{display:inline-block;height:32px;margin-left:8px;line-height:32px;vertical-align:top}.ant-pagination-options-quick-jumper input{position:relative;display:inline-block;min-width:0;padding:4px 11px;color:rgba(255,255,255,.85);font-size:14px;line-height:1.5715;background-color:transparent;background-image:none;border:1px solid #434343;border-radius:2px;transition:all .3s;width:50px;height:32px;margin:0 8px}.ant-pagination-options-quick-jumper input-disabled,.ant-pagination-options-quick-jumper input[disabled]{background-color:rgba(255,255,255,.08);opacity:1;color:rgba(255,255,255,.3);cursor:not-allowed;pointer-events:none}.ant-pagination-options-quick-jumper input::-moz-placeholder{opacity:1}.ant-pagination-options-quick-jumper input::placeholder{color:rgba(255,255,255,.3)}.ant-pagination-options-quick-jumper input:placeholder-shown{text-overflow:ellipsis}.ant-pagination-options-quick-jumper input:hover{border-color:#165996;border-right-width:1px!important}.ant-input-rtl .ant-pagination-options-quick-jumper input:hover{border-right-width:0;border-left-width:1px!important}.ant-pagination-options-quick-jumper input-focused,.ant-pagination-options-quick-jumper input:focus{border-color:#177ddc;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(23,125,220,.2)}.ant-input-rtl .ant-pagination-options-quick-jumper input-focused,.ant-input-rtl .ant-pagination-options-quick-jumper input:focus{border-right-width:0;border-left-width:1px!important}.ant-pagination-options-quick-jumper input-disabled:hover,.ant-pagination-options-quick-jumper input[disabled]:hover{border-color:#434343;border-right-width:1px!important}.ant-pagination-options-quick-jumper input-borderless,.ant-pagination-options-quick-jumper input-borderless-disabled,.ant-pagination-options-quick-jumper input-borderless-focused,.ant-pagination-options-quick-jumper input-borderless:focus,.ant-pagination-options-quick-jumper input-borderless:hover,.ant-pagination-options-quick-jumper input-borderless[disabled]{background-color:transparent;border:none;box-shadow:none}textarea.ant-pagination-options-quick-jumper input{max-width:100%;height:auto;min-height:32px;line-height:1.5715;vertical-align:bottom;transition:all .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:0 7px}.ant-pagination-simple .ant-pagination-next,.ant-pagination-simple .ant-pagination-prev{height:24px;line-height:24px;vertical-align:top}.ant-progress-inner,.ant-progress-text,.ant-rate-star-first .anticon,.ant-rate-star-second .anticon,.ant-spin,.ant-switch,.ant-transfer-operation{vertical-align:middle}.ant-pagination-simple .ant-pagination-next .ant-pagination-item-link,.ant-pagination-simple .ant-pagination-prev .ant-pagination-item-link{height:24px;background-color:transparent;border:0}.ant-pagination-simple .ant-pagination-next .ant-pagination-item-link::after,.ant-pagination-simple .ant-pagination-prev .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{box-sizing:border-box;height:100%;margin-right:8px;padding:0 6px;text-align:center;background-color:transparent;border:1px solid #434343;border-radius:2px;outline:0;transition:border-color .3s}.ant-pagination-simple .ant-pagination-simple-pager input:hover{border-color:#177ddc}.ant-pagination-simple .ant-pagination-simple-pager input[disabled]{color:rgba(255,255,255,.3);background:rgba(255,255,255,.08);border-color:#434343;cursor:not-allowed}.ant-pagination.mini .ant-pagination-item:not(.ant-pagination-item-active),.ant-pagination.mini .ant-pagination-next .ant-pagination-item-link,.ant-pagination.mini .ant-pagination-prev .ant-pagination-item-link{background:0 0;border-color:transparent}.ant-pagination.mini .ant-pagination-simple-pager,.ant-pagination.mini .ant-pagination-total-text{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-next,.ant-pagination.mini .ant-pagination-prev{min-width:24px;height:24px;margin:0;line-height:24px}.ant-pagination.mini .ant-pagination-next .ant-pagination-item-link::after,.ant-pagination.mini .ant-pagination-prev .ant-pagination-item-link::after{height:24px;line-height:24px}.ant-pagination.mini .ant-pagination-jump-next,.ant-pagination.mini .ant-pagination-jump-prev{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:0}.ant-pagination.mini .ant-pagination-options-quick-jumper{height:24px;line-height:24px}.ant-popover,.ant-progress{line-height:1.5715;font-size:14px;box-sizing:border-box;font-variant:tabular-nums;list-style:none;font-feature-settings:tnum}.ant-pagination.mini .ant-pagination-options-quick-jumper input{padding:0 7px;width:44px;height:24px}.ant-pagination.ant-pagination-disabled{cursor:not-allowed}.ant-pagination.ant-pagination-disabled .ant-pagination-item{background:rgba(255,255,255,.08);border-color:#434343;cursor:not-allowed}.ant-pagination.ant-pagination-disabled .ant-pagination-item a{color:rgba(255,255,255,.3);background:0 0;border:none;cursor:not-allowed}.ant-pagination.ant-pagination-disabled .ant-pagination-item-active{background:rgba(255,255,255,.25);border-color:transparent}.ant-pagination.ant-pagination-disabled .ant-pagination-item-active a{color:#000}.ant-pagination.ant-pagination-disabled .ant-pagination-item-link{color:rgba(255,255,255,.3);background:rgba(255,255,255,.08);border-color:#434343;cursor:not-allowed}.ant-pagination-simple.ant-pagination.ant-pagination-disabled .ant-pagination-item-link{background:0 0}.ant-pagination.ant-pagination-disabled .ant-pagination-item-link-icon{opacity:0}.ant-pagination.ant-pagination-disabled .ant-pagination-item-ellipsis{opacity:1}.ant-pagination.ant-pagination-disabled .ant-pagination-simple-pager{color:rgba(255,255,255,.3)}@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 .ant-pagination-item,.ant-pagination-rtl .ant-pagination-jump-next,.ant-pagination-rtl .ant-pagination-jump-prev,.ant-pagination-rtl .ant-pagination-prev,.ant-pagination-rtl .ant-pagination-total-text{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 .ant-pagination-options-size-changer.ant-select{margin-right:0;margin-left:8px}.ant-pagination-rtl .ant-pagination-options .ant-pagination-options-quick-jumper{margin-left:0}.ant-pagination-rtl.ant-pagination-simple .ant-pagination-simple-pager,.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}.ant-popover,.ant-popover-title{margin:0;color:rgba(255,255,255,.85)}nz-pagination{display:block}.ant-popover-hidden,.ant-radio+span:empty{display:none}.ant-popover{padding:0;top:0;left:0;z-index:1030;font-weight:400;white-space:normal;text-align:left;cursor:auto;user-select:text}.ant-popover::after{position:absolute;background:rgba(255,255,255,.01);content:''}.ant-popover-placement-top,.ant-popover-placement-topLeft,.ant-popover-placement-topRight{padding-bottom:10px}.ant-popover-placement-right,.ant-popover-placement-rightBottom,.ant-popover-placement-rightTop{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-leftBottom,.ant-popover-placement-leftTop{padding-right:10px}.ant-popover-inner{background-color:#1f1f1f;background-clip:padding-box;border-radius:2px;box-shadow:0 0 8px rgba(0,0,0,.45)\9}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.ant-popover-inner{box-shadow:0 3px 6px -4px rgba(0,0,0,.48),0 6px 16px 0 rgba(0,0,0,.32),0 9px 28px 8px rgba(0,0,0,.2)}}.ant-popover-title{min-width:177px;min-height:32px;padding:5px 16px 4px;font-weight:500;border-bottom:1px solid #303030}.ant-popover-inner-content{padding:12px 16px;color:rgba(255,255,255,.85)}.ant-popover-message{position:relative;padding:4px 0 12px;color:rgba(255,255,255,.85);font-size:14px}.ant-popover-message>.anticon{position:absolute;top:8px;color:#d89614;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.49px;height:8.49px;overflow:hidden;background:0 0;pointer-events:none}.ant-popover-arrow-content{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:6px;height:6px;margin:auto;background-color:#1f1f1f;content:'';pointer-events:auto}.ant-popover-placement-top .ant-popover-arrow,.ant-popover-placement-topLeft .ant-popover-arrow,.ant-popover-placement-topRight .ant-popover-arrow{bottom:1.51px}.ant-popover-placement-top .ant-popover-arrow-content,.ant-popover-placement-topLeft .ant-popover-arrow-content,.ant-popover-placement-topRight .ant-popover-arrow-content{box-shadow:3px 3px 7px rgba(0,0,0,.07);transform:translateY(-4.24px) rotate(45deg)}.ant-popover-placement-top .ant-popover-arrow{left:50%;transform:translateX(-50%)}.ant-popover-placement-topLeft .ant-popover-arrow{left:16px}.ant-popover-placement-topRight .ant-popover-arrow{right:16px}.ant-popover-placement-right .ant-popover-arrow,.ant-popover-placement-rightBottom .ant-popover-arrow,.ant-popover-placement-rightTop .ant-popover-arrow{left:1.51px}.ant-popover-placement-right .ant-popover-arrow-content,.ant-popover-placement-rightBottom .ant-popover-arrow-content,.ant-popover-placement-rightTop .ant-popover-arrow-content{box-shadow:-3px 3px 7px rgba(0,0,0,.07);transform:translateX(4.24px) rotate(45deg)}.ant-popover-placement-right .ant-popover-arrow{top:50%;transform:translateY(-50%)}.ant-popover-placement-rightTop .ant-popover-arrow{top:12px}.ant-popover-placement-bottom .ant-popover-arrow,.ant-popover-placement-bottomLeft .ant-popover-arrow,.ant-popover-placement-bottomRight .ant-popover-arrow{top:1.51px}.ant-popover-placement-bottom .ant-popover-arrow-content,.ant-popover-placement-bottomLeft .ant-popover-arrow-content,.ant-popover-placement-bottomRight .ant-popover-arrow-content{box-shadow:-2px -2px 5px rgba(0,0,0,.06);transform:translateY(4.24px) rotate(45deg)}.ant-popover-placement-bottom .ant-popover-arrow{left:50%;transform:translateX(-50%)}.ant-popover-placement-bottomLeft .ant-popover-arrow{left:16px}.ant-popover-placement-bottomRight .ant-popover-arrow{right:16px}.ant-popover-placement-left .ant-popover-arrow,.ant-popover-placement-leftBottom .ant-popover-arrow,.ant-popover-placement-leftTop .ant-popover-arrow{right:1.51px}.ant-popover-placement-left .ant-popover-arrow-content,.ant-popover-placement-leftBottom .ant-popover-arrow-content,.ant-popover-placement-leftTop .ant-popover-arrow-content{box-shadow:3px -3px 7px rgba(0,0,0,.07);transform:translateX(-4.24px) rotate(45deg)}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within,.ant-radio-button-wrapper:focus-within,.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within,.ant-radio-input:focus+.ant-radio-inner{box-shadow:0 0 0 3px rgba(23,125,220,.08)}.ant-popover-placement-left .ant-popover-arrow{top:50%;transform:translateY(-50%)}.ant-popover-placement-leftTop .ant-popover-arrow{top:12px}.ant-popover-magenta .ant-popover-arrow-content,.ant-popover-magenta .ant-popover-inner,.ant-popover-pink .ant-popover-arrow-content,.ant-popover-pink .ant-popover-inner{background-color:#cb2b83}.ant-popover-red .ant-popover-arrow-content,.ant-popover-red .ant-popover-inner{background-color:#d32029}.ant-popover-volcano .ant-popover-arrow-content,.ant-popover-volcano .ant-popover-inner{background-color:#d84a1b}.ant-popover-orange .ant-popover-arrow-content,.ant-popover-orange .ant-popover-inner{background-color:#d87a16}.ant-popover-yellow .ant-popover-arrow-content,.ant-popover-yellow .ant-popover-inner{background-color:#d8bd14}.ant-popover-gold .ant-popover-arrow-content,.ant-popover-gold .ant-popover-inner{background-color:#d89614}.ant-popover-cyan .ant-popover-arrow-content,.ant-popover-cyan .ant-popover-inner{background-color:#13a8a8}.ant-popover-lime .ant-popover-arrow-content,.ant-popover-lime .ant-popover-inner{background-color:#8bbb11}.ant-popover-green .ant-popover-arrow-content,.ant-popover-green .ant-popover-inner{background-color:#49aa19}.ant-popover-blue .ant-popover-arrow-content,.ant-popover-blue .ant-popover-inner{background-color:#177ddc}.ant-popover-geekblue .ant-popover-arrow-content,.ant-popover-geekblue .ant-popover-inner{background-color:#2b4acb}.ant-popover-purple .ant-popover-arrow-content,.ant-popover-purple .ant-popover-inner{background-color:#642ab5}.ant-popover-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}.ant-popover{position:relative}.ant-progress{margin:0;padding:0;color:rgba(255,255,255,.85);display:inline-block}.ant-progress-line{position:relative;width:100%;font-size:14px}.ant-progress-steps{display:inline-block}.ant-progress-steps-outer{display:flex;flex-direction:row;align-items:center}.ant-progress-steps-item{flex-shrink:0;min-width:2px;margin-right:2px;background:rgba(255,255,255,.08);transition:all .3s}.ant-progress-steps-item-active{background:#177ddc}.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;background-color:rgba(255,255,255,.08);border-radius:100px}.ant-progress-circle-trail{stroke:rgba(255,255,255,.08)}.ant-progress-circle-path{animation:ant-progress-appear .3s}.ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:#177ddc}.ant-progress-bg,.ant-progress-success-bg{position:relative;background-color:#177ddc;border-radius:100px;transition:all .4s cubic-bezier(.08,.82,.17,1) 0s}.ant-progress-success-bg{position:absolute;top:0;left:0;background-color:#49aa19}.ant-progress-text{display:inline-block;width:2em;margin-left:8px;color:rgba(255,255,255,.85);font-size:1em;line-height:1;white-space:nowrap;text-align:left;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:#141414;border-radius:10px;opacity:0;animation:ant-progress-active 2.4s cubic-bezier(.23,1,.32,1) infinite;content:''}.ant-progress-status-exception .ant-progress-bg{background-color:#a61d24}.ant-progress-status-exception .ant-progress-text{color:#a61d24}.ant-progress-status-exception .ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:#a61d24}.ant-progress-status-success .ant-progress-bg{background-color:#49aa19}.ant-progress-status-success .ant-progress-text{color:#49aa19}.ant-progress-status-success .ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:#49aa19}.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(255,255,255,.85);font-size:1em;line-height:1;white-space:normal;text-align:center;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:#a61d24}.ant-progress-circle.ant-progress-status-success .ant-progress-text{color:#49aa19}@keyframes ant-progress-active{0%{transform:translateX(-100%) scaleX(0);opacity:.1}20%{transform:translateX(-100%) scaleX(0);opacity:.5}100%{transform:translateX(0) scaleX(1);opacity:0}}.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}.ant-radio-group{box-sizing:border-box;margin:0;padding:0;color:rgba(255,255,255,.85);font-variant:tabular-nums;list-style:none;font-feature-settings:tnum;display:inline-block;font-size:0;line-height:unset}.ant-radio,.ant-radio-wrapper{box-sizing:border-box;padding:0;color:rgba(255,255,255,.85);line-height:1.5715;position:relative;cursor:pointer;font-size:14px;font-variant:tabular-nums;list-style:none;font-feature-settings:tnum}.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{margin:0 8px 0 0;display:inline-flex;align-items:baseline}.ant-radio-wrapper::after{display:inline-block;width:0;overflow:hidden;content:'\a0'}.ant-radio{margin:0;top:.2em;display:inline-block;outline:0}.ant-radio-input:focus+.ant-radio-inner,.ant-radio-wrapper:hover .ant-radio,.ant-radio:hover .ant-radio-inner{border-color:#177ddc}.ant-radio-checked::after{position:absolute;top:0;left:0;width:100%;height:100%;border:1px solid #177ddc;border-radius:50%;visibility:hidden;animation:antRadioEffect .36s ease-in-out;animation-fill-mode:both;content:''}.ant-radio-inner,.ant-skeleton-header .ant-skeleton-avatar-lg.ant-skeleton-avatar-circle,.ant-skeleton-header .ant-skeleton-avatar-sm.ant-skeleton-avatar-circle,.ant-skeleton-header .ant-skeleton-avatar.ant-skeleton-avatar-circle{border-radius:50%}.ant-radio-wrapper:hover .ant-radio::after,.ant-radio:hover::after,.ant-tooltip{visibility:visible}.ant-radio-inner{position:relative;top:0;left:0;display:block;width:16px;height:16px;background-color:transparent;border-color:#434343;border-style:solid;border-width:1px;transition:all .3s}.ant-radio-inner::after{position:absolute;top:3px;left:3px;display:block;width:8px;height:8px;background-color:#177ddc;border-top:0;border-left:0;border-radius:8px;transform:scale(0);opacity:0;transition:all .3s cubic-bezier(.78,.14,.15,.86);content:' '}.ant-radio-input{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;cursor:pointer;opacity:0}.ant-radio-button-wrapper-disabled,.ant-radio-disabled,.ant-radio-disabled .ant-radio-inner,.ant-radio-disabled .ant-radio-input,.ant-radio-disabled+span{cursor:not-allowed}.ant-radio-checked .ant-radio-inner{border-color:#177ddc}.ant-radio-checked .ant-radio-inner::after{transform:scale(1);opacity:1;transition:all .3s cubic-bezier(.78,.14,.15,.86)}.ant-radio-disabled .ant-radio-inner{background-color:rgba(255,255,255,.08);border-color:#434343!important}.ant-radio-disabled .ant-radio-inner::after{background-color:rgba(255,255,255,.2)}.ant-radio-disabled+span{color:rgba(255,255,255,.3)}.ant-radio-button-wrapper,.ant-radio-button-wrapper a,.ant-select{color:rgba(255,255,255,.85)}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;font-size:14px;line-height:30px;background:0 0;border:1px solid #434343;border-top-width:1.02px;border-left-width:0;cursor:pointer;transition:color .3s,background .3s,border-color .3s,box-shadow .3s}.ant-radio-button-wrapper>.ant-radio-button{position:absolute;top:0;left:0;z-index:-1;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;box-sizing:content-box;width:1px;height:100%;padding:1px 0;background-color:#434343;transition:background-color .3s;content:''}.ant-radio-button-wrapper:first-child{border-left:1px solid #434343;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:#177ddc}.ant-radio-button-wrapper .ant-radio-inner,.ant-radio-button-wrapper input[type=radio],.ant-radio-button-wrapper input[type=checkbox]{width:0;height:0;opacity:0;pointer-events:none}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){z-index:1;color:#177ddc;background:0 0;border-color:#177ddc}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled)::before{background-color:#177ddc}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):first-child{border-color:#177ddc}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover{color:#165996;border-color:#165996}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover::before{background-color:#165996}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active{color:#388ed3;border-color:#388ed3}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active::before{background-color:#388ed3}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){color:#fff;background:#177ddc;border-color:#177ddc}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover{color:#fff;background:#165996;border-color:#165996}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active{color:#fff;background:#388ed3;border-color:#388ed3}.ant-radio-button-wrapper-disabled,.ant-radio-button-wrapper-disabled:first-child,.ant-radio-button-wrapper-disabled:hover{color:rgba(255,255,255,.3);background-color:rgba(255,255,255,.08);border-color:#434343}.ant-radio-button-wrapper-disabled:first-child{border-left-color:#434343}.ant-radio-button-wrapper-disabled.ant-radio-button-wrapper-checked{color:rgba(255,255,255,.3);background-color:rgba(255,255,255,.2);border-color:#434343;box-shadow:none}@keyframes antRadioEffect{0%{transform:scale(1);opacity:.5}100%{transform:scale(1.6);opacity:0}}.ant-radio-wrapper.ant-radio-wrapper-rtl{margin-right:0;margin-left:8px}.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 #434343;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:#165996}.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:#434343}.ant-rate,.ant-rate-star,.ant-rate-text{display:inline-block}.ant-rate{box-sizing:border-box;font-variant:tabular-nums;font-feature-settings:tnum;margin:0;padding:0;color:#d8bd14;font-size:20px;line-height:unset;list-style:none;outline:0}.ant-rate-disabled .ant-rate-star{cursor:default}.ant-rate-disabled .ant-rate-star:hover{transform:scale(1)}.ant-rate-star{position:relative;color:inherit;cursor:pointer}.ant-rate-star:not(:last-child){margin-right:8px}.ant-rate-star>div{transition:all .3s}.ant-rate-star>div:focus-visible,.ant-rate-star>div:hover{transform:scale(1.1)}.ant-rate-star>div:focus:not(:focus-visible){outline:0}.ant-rate-star-first,.ant-rate-star-second{color:rgba(255,255,255,.12);transition:all .3s;user-select:none}.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-full .ant-rate-star-second,.ant-rate-star-half .ant-rate-star-first{color:inherit}.ant-rate-text{margin:0 8px;font-size:14px}.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}.ant-select-single .ant-select-selector{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;transition:all .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;user-select:none}.ant-select-single .ant-select-selector .ant-select-selection-placeholder{pointer-events:none}.ant-select-single .ant-select-selector .ant-select-selection-item::after,.ant-select-single .ant-select-selector .ant-select-selection-placeholder::after,.ant-select-single .ant-select-selector::after{display:inline-block;width:0;visibility:hidden;content:'\a0'}.ant-select-single.ant-select-customize-input .ant-select-selector .ant-select-selection-placeholder::after,.ant-select-single.ant-select-customize-input .ant-select-selector::after{display:none}.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{color:rgba(255,255,255,.3)}.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{width:100%;height:32px;padding:0 11px}.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 .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-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 .ant-select-selection-item,.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-placeholder,.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector::after{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;padding:0 7px}.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,.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector::after{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-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}.ant-select-selection-overflow{position:relative;display:flex;flex:auto;flex-wrap:wrap;max-width:100%}.ant-select-selection-overflow-item{flex:none;align-self:center;max-width:100%}.ant-select-multiple .ant-select-selector{display:flex;flex-wrap:wrap;align-items:center;padding:1px 4px}.ant-select-show-search.ant-select-multiple .ant-select-selector{cursor:text}.ant-select-disabled.ant-select-multiple .ant-select-selector{background:#141414;cursor:not-allowed}.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,.ant-select-multiple.ant-select-show-arrow .ant-select-selector{padding-right:24px}.ant-select-multiple .ant-select-selection-item{position:relative;display:flex;flex:none;box-sizing:border-box;max-width:100%;height:24px;margin-top:2px;margin-bottom:2px;line-height:22px;background:rgba(255,255,255,.08);border:1px solid #303030;border-radius:2px;cursor:default;transition:font-size .3s,line-height .3s,height .3s;user-select:none;margin-inline-end:4px;padding-inline-start:8px;padding-inline-end:4px}.ant-select-disabled.ant-select-multiple .ant-select-selection-item{color:#595959;border-color:#1f1f1f;cursor:not-allowed}.ant-select-multiple .ant-select-selection-item-content{display:inline-block;margin-right:4px;overflow:hidden;white-space:pre;text-overflow:ellipsis}.ant-select-multiple .ant-select-selection-item-remove{color:inherit;text-align:center;text-transform:none;vertical-align:-.125em;display:inline-block;color:rgba(255,255,255,.45);font-weight:700;font-size:10px;line-height:inherit;cursor:pointer}.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:-.2em}.ant-select-multiple .ant-select-selection-item-remove:hover{color:rgba(255,255,255,.75)}.ant-select-multiple .ant-select-selection-overflow-item+.ant-select-selection-overflow-item .ant-select-selection-search{margin-inline-start:0}.ant-select-multiple .ant-select-selection-search{position:relative;max-width:100%;margin-top:2px;margin-bottom:2px;margin-inline-start:7px}.ant-select-multiple .ant-select-selection-search-input,.ant-select-multiple .ant-select-selection-search-mirror{height:24px;line-height:24px;transition:all .3s}.ant-select-multiple .ant-select-selection-search-input{width:100%;min-width:4.1px}.ant-select-multiple .ant-select-selection-search-mirror{position:absolute;top:0;left:0;z-index:999;white-space:pre;visibility:hidden}.ant-select-multiple .ant-select-selection-placeholder{position:absolute;top:50%;right:11px;left:11px;transform:translateY(-50%);transition:all .3s}.ant-select-multiple.ant-select-lg .ant-select-selector::after{line-height:32px}.ant-select-multiple.ant-select-lg .ant-select-selection-search{height:32px;line-height:32px}.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:16px;line-height:16px;margin-inline-start:3px}.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-lg .ant-select-selection-item{height:32px;line-height:32px}.ant-select-disabled .ant-select-selection-item-remove{display:none}.ant-select{box-sizing:border-box;margin:0;padding:0;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:tnum;position:relative;display:inline-block;cursor:pointer}.ant-select:not(.ant-select-customize-input) .ant-select-selector{position:relative;background-color:transparent;border:1px solid #434343;border-radius:2px;transition:all .3s cubic-bezier(.645,.045,.355,1)}.ant-select:not(.ant-select-customize-input) .ant-select-selector input{cursor:pointer}.ant-select-show-search.ant-select:not(.ant-select-customize-input) .ant-select-selector{cursor:text}.ant-select-show-search.ant-select:not(.ant-select-customize-input) .ant-select-selector input{cursor:auto}.ant-select-focused:not(.ant-select-disabled).ant-select:not(.ant-select-customize-input) .ant-select-selector{border-color:#177ddc;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(23,125,220,.2)}.ant-input-rtl .ant-select-focused:not(.ant-select-disabled).ant-select:not(.ant-select-customize-input) .ant-select-selector{border-right-width:0;border-left-width:1px!important}.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector{color:rgba(255,255,255,.3);background:rgba(255,255,255,.08);cursor:not-allowed}.ant-select-multiple.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector{background:#141414}.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector input{cursor:not-allowed}.ant-select:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input{margin:0;padding:0;background:0 0;border:none;outline:0;appearance:none}.ant-select-arrow,.ant-select-clear{position:absolute;right:11px;width:12px;height:12px;margin-top:-6px;font-size:12px;line-height:1;text-transform:none;text-align:center}.ant-select:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input::-webkit-search-cancel-button{display:none;-webkit-appearance:none}.ant-select-arrow,.ant-select-arrow svg,.ant-select-clear{display:inline-block}.ant-select:not(.ant-select-disabled):hover .ant-select-selector{border-color:#165996;border-right-width:1px!important}.ant-input-rtl .ant-select:not(.ant-select-disabled):hover .ant-select-selector{border-right-width:0;border-left-width:1px!important}.ant-select-selection-item{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}@media all and (-ms-high-contrast:none){.ant-select-selection-item,.ant-select-selection-item ::-ms-backdrop{flex:auto}}.ant-select-selection-placeholder{flex:1;overflow:hidden;color:rgba(255,255,255,.3);white-space:nowrap;text-overflow:ellipsis;pointer-events:none}@media all and (-ms-high-contrast:none){.ant-select-selection-placeholder,.ant-select-selection-placeholder ::-ms-backdrop{flex:auto}}.ant-select-arrow{color:inherit;vertical-align:-.125em;top:53%;color:rgba(255,255,255,.3);pointer-events:none}.ant-select-arrow>*{line-height:1}.ant-select-arrow::before{display:none}.ant-select-arrow .ant-select-arrow-icon{display:block}.ant-select-arrow .anticon{vertical-align:top;transition:transform .3s}.ant-select-arrow .anticon>svg{vertical-align:top}.ant-select-arrow .anticon:not(.ant-select-suffix){pointer-events:auto}.ant-select-disabled .ant-select-arrow{cursor:not-allowed}.ant-select-clear{top:50%;z-index:1;color:rgba(255,255,255,.3);font-style:normal;background:#141414;cursor:pointer;opacity:0;transition:color .3s ease,opacity .15s ease;text-rendering:auto}.ant-select-clear::before{display:block}.ant-select-clear:hover{color:rgba(255,255,255,.45)}.ant-select:hover .ant-select-clear{opacity:1}.ant-select-dropdown{margin:0;color:rgba(255,255,255,.85);line-height:1.5715;list-style:none;font-feature-settings:tnum;z-index:1050;box-sizing:border-box;padding:4px 0;overflow:hidden;font-size:14px;font-variant:initial;background-color:#1f1f1f;border-radius:2px;outline:0}.ant-select-dropdown-empty,.ant-select-item-empty{color:rgba(255,255,255,.3)}.ant-select-item,.ant-select-item-empty{display:block;min-height:32px;padding:5px 12px;position:relative;font-size:14px;line-height:22px;font-weight:400}.ant-select-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-select-dropdown-placement-topLeft,.ant-select-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-select-dropdown-placement-topLeft{animation-name:antSlideDownIn}.ant-select-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-select-dropdown-placement-bottomLeft{animation-name:antSlideUpOut}.ant-select-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-select-dropdown-placement-topLeft{animation-name:antSlideDownOut}.ant-select-item{color:rgba(255,255,255,.85);cursor:pointer;transition:background .3s ease}.ant-select-item-group{color:rgba(255,255,255,.45);font-size:12px;cursor:default}.ant-select-item-option{display:flex}.ant-select-item-option-content{flex:auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ant-select-item-option-state{flex:none}.ant-select-item-option-active:not(.ant-select-item-option-disabled){background-color:rgba(255,255,255,.08)}.ant-select-item-option-selected:not(.ant-select-item-option-disabled){color:rgba(255,255,255,.85);font-weight:600;background-color:#111b26}.ant-select-item-option-selected:not(.ant-select-item-option-disabled) .ant-select-item-option-state{color:#177ddc}.ant-select-item-option-disabled{color:rgba(255,255,255,.3);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;box-shadow:none!important}.ant-select-rtl .ant-select-arrow,.ant-select-rtl .ant-select-clear{right:initial;left:11px}.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,.ant-select-rtl.ant-select-multiple.ant-select-show-arrow .ant-select-selector{padding-right:4px;padding-left:24px}.ant-select-rtl.ant-select-multiple .ant-select-selection-item{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-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.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-search{right:6px}.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}.ant-select-dropdown{top:100%;left:0;position:relative;width:100%;margin-top:4px;margin-bottom:4px;display:block}.ant-select-dropdown .cdk-virtual-scroll-content-wrapper{right:0}.ant-select-dropdown .full-width{contain:initial}.ant-select-dropdown .full-width .cdk-virtual-scroll-content-wrapper{position:static}.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:rgba(190,190,190,.2);width:32px;height:32px;line-height:32px}.ant-skeleton-header .ant-skeleton-avatar-lg{width:40px;height:40px;line-height:40px}.ant-skeleton-header .ant-skeleton-avatar-sm{width:24px;height:24px;line-height:24px}.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:rgba(190,190,190,.2);border-radius:4px}.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:rgba(190,190,190,.2);border-radius:4px}.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-paragraph>li,.ant-skeleton-round .ant-skeleton-content .ant-skeleton-title{border-radius:100px}.ant-skeleton.ant-skeleton-active .ant-skeleton-avatar,.ant-skeleton.ant-skeleton-active .ant-skeleton-button,.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-paragraph>li,.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-title,.ant-skeleton.ant-skeleton-active .ant-skeleton-image,.ant-skeleton.ant-skeleton-active .ant-skeleton-input{background:linear-gradient(90deg,rgba(190,190,190,.2) 25%,rgba(255,255,255,.16) 37%,rgba(190,190,190,.2) 63%);background-size:400% 100%;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:rgba(190,190,190,.2);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-lg.ant-skeleton-avatar-circle,.ant-skeleton-element .ant-skeleton-avatar-sm.ant-skeleton-avatar-circle,.ant-skeleton-element .ant-skeleton-avatar.ant-skeleton-avatar-circle,.ant-skeleton-element .ant-skeleton-image-svg.ant-skeleton-image-circle,.ant-skeleton-element .ant-skeleton-image.ant-skeleton-image-circle{border-radius:50%}.ant-skeleton-element .ant-skeleton-avatar{display:inline-block;vertical-align:top;background:rgba(190,190,190,.2);width:32px;height:32px;line-height:32px}.ant-skeleton-element .ant-skeleton-avatar-lg{width:40px;height:40px;line-height:40px}.ant-skeleton-element .ant-skeleton-avatar-sm{width:24px;height:24px;line-height:24px}.ant-skeleton-element .ant-skeleton-input{display:inline-block;vertical-align:top;background:rgba(190,190,190,.2);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:flex;align-items:center;justify-content:center;vertical-align:top;background:rgba(190,190,190,.2);width:96px;height:96px;line-height:96px}.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}@keyframes ant-skeleton-loading{0%{background-position:100% 50%}100%{background-position:0 50%}}.ant-skeleton-rtl .ant-skeleton-header{padding-right:0;padding-left:16px}.ant-skeleton-rtl.ant-skeleton.ant-skeleton-active .ant-skeleton-avatar,.ant-skeleton-rtl.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-paragraph>li,.ant-skeleton-rtl.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-title{animation-name:ant-skeleton-loading-rtl}@keyframes ant-skeleton-loading-rtl{0%{background-position:0 50%}100%{background-position:100% 50%}}.ant-slider{box-sizing:border-box;color:rgba(255,255,255,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:tnum;position:relative;height:12px;margin:10px 6px;padding:4px 0;cursor:pointer;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-rail,.ant-slider-track{position:absolute;height:4px;transition:background-color .3s}.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-dot,.ant-slider-dot:first-child,.ant-slider-dot:last-child{margin-left:-4px}.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{width:100%;background-color:#262626;border-radius:2px}.ant-slider-track{background-color:#153450;border-radius:2px}.ant-slider-dot,.ant-slider-handle{background-color:#141414;cursor:pointer;position:absolute}.ant-slider-handle{width:14px;height:14px;margin-top:-5px;border:2px solid #153450;border-radius:50%;box-shadow:0;transition:border-color .3s,box-shadow .6s,transform .3s cubic-bezier(.18,.89,.32,1.28)}.ant-slider:hover .ant-slider-rail,.ant-tooltip-inner{background-color:#434343}.ant-slider-handle-dragging.ant-slider-handle-dragging.ant-slider-handle-dragging,.ant-slider-handle:focus{border-color:#4697e3;box-shadow:0 0 0 5px rgba(23,125,220,.12)}.ant-slider-handle:focus{outline:0}.ant-slider-handle.ant-tooltip-open{border-color:#177ddc}.ant-slider:hover .ant-slider-track{background-color:#16436e}.ant-slider:hover .ant-slider-handle:not(.ant-tooltip-open){border-color:#16436e}.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(255,255,255,.45);text-align:center;word-break:keep-all;cursor:pointer;user-select:none}.ant-slider-mark-text-active{color:rgba(255,255,255,.85)}.ant-slider-step{position:absolute;width:100%;height:4px;background:0 0}.ant-slider-dot{top:-2px;width:8px;height:8px;border:2px solid #303030;border-radius:50%}.ant-slider-dot-active{border-color:#16436e}.ant-slider-disabled{cursor:not-allowed}.ant-slider-disabled .ant-slider-track{background-color:rgba(255,255,255,.3)!important}.ant-slider-disabled .ant-slider-dot,.ant-slider-disabled .ant-slider-handle{background-color:#141414;border-color:rgba(255,255,255,.3)!important;box-shadow:none;cursor:not-allowed}.ant-slider-disabled .ant-slider-dot,.ant-slider-disabled .ant-slider-mark-text{cursor:not-allowed!important}.ant-slider-rtl .ant-slider-mark{right:0;left:auto}.ant-slider-rtl .ant-slider-dot,.ant-slider-rtl .ant-slider-dot:first-child,.ant-slider-rtl .ant-slider-dot:last-child{margin-right:-4px;margin-left:0}.ant-spin,.ant-statistic{margin:0;line-height:1.5715;box-sizing:border-box}.ant-spin{padding:0;font-size:14px;font-variant:tabular-nums;list-style:none;font-feature-settings:tnum;position:absolute;display:none;color:#177ddc;text-align:center;opacity:0;transition:transform .3s cubic-bezier(.78,.14,.15,.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 #141414}.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-statistic,.ant-steps{padding:0;font-variant:tabular-nums;font-feature-settings:tnum;list-style:none}.ant-spin-nested-loading>div>.ant-spin-lg.ant-spin-show-text .ant-spin-dot{margin-top:-26px}.ant-spin-container{position:relative;transition:opacity .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:#141414;opacity:0;transition:all .3s;content:'';pointer-events:none}.ant-spin-blur{clear:both;overflow:hidden;opacity:.5;user-select:none;pointer-events:none}.ant-spin-blur::after{opacity:.4;pointer-events:auto}.ant-spin-tip{color:rgba(255,255,255,.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:#177ddc;transform:scale(.75);transform-origin:50% 50%;opacity:.3;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;animation-delay:.4s}.ant-spin-dot-item:nth-child(3){right:0;bottom:0;animation-delay:.8s}.ant-spin-dot-item:nth-child(4){bottom:0;left:0;animation-delay:1.2s}.ant-spin-dot-spin{transform:rotate(45deg);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){.ant-spin-blur{background:#141414;opacity:.5}}@keyframes antSpinMove{to{opacity:1}}@keyframes antRotate{to{transform:rotate(405deg)}}.ant-spin-rtl .ant-spin-dot-spin{transform:rotate(-45deg);animation-name:antRotateRtl}@keyframes antRotateRtl{to{transform:rotate(-405deg)}}nz-spin{display:block}.ant-statistic{color:rgba(255,255,255,.85);font-size:14px}.ant-statistic-title{margin-bottom:4px;color:rgba(255,255,255,.45);font-size:14px}.ant-statistic-content{color:rgba(255,255,255,.85);font-size:24px}.ant-statistic-content-value{display:inline-block;direction:ltr}.ant-cascader-menu-rtl .ant-cascader-menu,.ant-cascader-picker-rtl,.ant-statistic-rtl,.ant-steps-rtl,.ant-switch-rtl,.ant-table-rtl,.ant-table-wrapper-rtl,.ant-tabs-dropdown-rtl,.ant-tabs-rtl,.ant-tag.ant-tag-rtl,.ant-timeline-rtl,.ant-tooltip-rtl,.ant-transfer-rtl,.ant-tree .ant-tree-treenode-rtl,.ant-tree-checkbox-rtl,.ant-tree-rtl,.ant-typography-rtl,.ant-upload-list-rtl,.ant-upload-rtl{direction:rtl}.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}.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}.ant-steps{box-sizing:border-box;margin:0;color:rgba(255,255,255,.85);line-height:1.5715;display:flex;width:100%;font-size:0;text-align:initial}.ant-steps-item{position:relative;display:inline-block;flex:1;overflow:hidden;vertical-align:top}.ant-steps-item-container{outline:0}.ant-steps-item:last-child{flex:none}.ant-steps-item:last-child>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title::after,.ant-steps-item:last-child>.ant-steps-item-container>.ant-steps-item-tail{display:none}.ant-steps-item-content,.ant-steps-item-icon{display:inline-block;vertical-align:top}.ant-steps-item-icon{width:32px;height:32px;margin:0 8px 0 0;font-size:16px;line-height:32px;text-align:center;border:1px solid rgba(255,255,255,.3);border-radius:32px;transition:background-color .3s,border-color .3s}.ant-steps-item-tail::after,.ant-steps-item-title::after{height:1px;background:#303030;content:''}.ant-steps-item-icon .ant-steps-icon{position:relative;top:-.5px;color:#177ddc;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%;border-radius:1px;transition:background .3s}.ant-steps-item-title{position:relative;display:inline-block;padding-right:16px;color:rgba(255,255,255,.85);font-size:16px;line-height:32px}.ant-steps-item-description,.ant-steps-item-subtitle{color:rgba(255,255,255,.45);font-size:14px}.ant-steps-item-title::after{position:absolute;top:16px;left:100%;display:block;width:9999px}.ant-steps-item-subtitle{display:inline;margin-left:8px;font-weight:400}.ant-steps-item-wait .ant-steps-item-icon{background-color:transparent;border-color:rgba(255,255,255,.3)}.ant-steps-item-wait .ant-steps-item-icon>.ant-steps-icon{color:rgba(255,255,255,.3)}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description,.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:rgba(255,255,255,.45)}.ant-steps-item-wait .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:rgba(255,255,255,.3)}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title::after,.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-tail::after{background-color:#303030}.ant-steps-item-process .ant-steps-item-icon{background-color:transparent;border-color:#177ddc}.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon{color:#177ddc}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description,.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:rgba(255,255,255,.85)}.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#177ddc}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title::after,.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-tail::after{background-color:#303030}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-icon{background:#177ddc}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-icon .ant-steps-icon{color:#fff}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-title{font-weight:500}.ant-steps-item-finish .ant-steps-item-icon{background-color:transparent;border-color:#177ddc}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title::after,.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-tail::after{background-color:#177ddc}.ant-steps-item-finish .ant-steps-item-icon>.ant-steps-icon{color:#177ddc}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title,.ant-switch,.ant-table,.ant-table-footer,.ant-table-thead>tr>th{color:rgba(255,255,255,.85)}.ant-steps-item-finish .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#177ddc}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description{color:rgba(255,255,255,.45)}.ant-steps-item-error .ant-steps-item-icon>.ant-steps-icon,.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description,.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:#a61d24}.ant-steps-item-error .ant-steps-item-icon{background-color:transparent;border-color:#a61d24}.ant-steps-item-error .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#a61d24}.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title::after,.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-tail::after{background-color:#303030}.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,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]:hover .ant-steps-item-description,.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-title,.ant-steps-item-custom.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon{color:#177ddc}.ant-steps-item.ant-steps-next-error .ant-steps-item-title::after{background:#a61d24}.ant-steps-item-disabled{cursor:not-allowed}.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button],.ant-steps-navigation .ant-steps-item:not(.ant-steps-item-active) .ant-steps-item-container[role=button],.ant-switch{cursor:pointer}.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,.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-title{transition:color .3s}.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:#177ddc}.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item{padding-left:16px;white-space:nowrap}.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:first-child{padding-left: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-container>.ant-steps-item-icon{height:auto;background:0 0;border:0}.ant-steps-item-custom>.ant-steps-item-container>.ant-steps-item-icon>.ant-steps-icon{top:0;left:.5px;width:32px;height:32px;font-size:24px;line-height:32px}.ant-steps:not(.ant-steps-vertical) .ant-steps-item-custom .ant-steps-item-icon{width:auto;background:0 0}.ant-steps-small.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item{padding-left:12px}.ant-steps-small.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:first-child{padding-left: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(255,255,255,.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:0 0;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;transform:none}.ant-steps-vertical{display:flex;flex-direction:column}.ant-steps-vertical>.ant-steps-item{display:block;flex:1 0 auto;padding-left:0;overflow:visible}.ant-steps-vertical>.ant-steps-item .ant-steps-item-icon{float:left;margin-right:16px}.ant-steps-vertical>.ant-steps-item .ant-steps-item-content{display:block;min-height:48px;overflow:hidden}.ant-steps-vertical>.ant-steps-item .ant-steps-item-title{line-height:32px}.ant-steps-vertical>.ant-steps-item .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-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:0 0;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;transition:all .3s}.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,.001);content:''}.ant-steps-dot .ant-steps-item-content,.ant-steps-dot.ant-steps-small .ant-steps-item-content{width:140px}.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;background:0 0}.ant-steps-dot .ant-steps-item-process .ant-steps-icon:first-child .ant-steps-icon-dot,.ant-steps-dot.ant-steps-small .ant-steps-item-process .ant-steps-icon:first-child .ant-steps-icon-dot{left:0}.ant-steps-vertical.ant-steps-dot .ant-steps-item-icon{margin-top:8px;margin-left:0;background:0 0}.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-content{width:inherit}.ant-steps-vertical.ant-steps-dot .ant-steps-item-process .ant-steps-item-container .ant-steps-item-icon .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;transition:opacity .3s}.ant-steps-navigation .ant-steps-item-container .ant-steps-item-title::after,.ant-steps-navigation .ant-steps-item:last-child::after{display:none}.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:not(.ant-steps-item-active) .ant-steps-item-container[role=button]:hover{opacity:.85}.ant-steps-navigation .ant-steps-item:last-child{flex:1}.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(255,255,255,.2);border-bottom:none;border-left:none;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:#177ddc;transition:width .3s,left .3s;transition-timing-function:ease-out;content:''}.ant-steps-navigation .ant-steps-item.ant-steps-item-active::before{left:0;width:100%}.ant-steps-navigation.ant-steps-vertical>.ant-steps-item{margin-right:0!important}.ant-steps-navigation.ant-steps-vertical>.ant-steps-item::before{display:none}.ant-steps-navigation.ant-steps-vertical>.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-vertical>.ant-steps-item::after{position:relative;top:-2px;left:50%;display:block;width:8px;height:8px;margin-bottom:8px;text-align:center;transform:rotate(135deg)}.ant-switch,nz-switch{display:inline-block}.ant-steps-navigation.ant-steps-vertical>.ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail{visibility:hidden}.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{padding-right:16px;padding-left:0}.ant-steps-rtl.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:first-child{padding-right: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:.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;transform:rotate(225deg)}.ant-steps-rtl.ant-steps-small.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item{padding-right:12px;padding-left:0}.ant-steps-rtl.ant-steps-small.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:first-child{padding-right:0}.ant-steps-rtl.ant-steps-small .ant-steps-item-title{padding-right:0;padding-left:12px}.ant-steps-rtl.ant-steps-vertical>.ant-steps-item .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}.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-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}.ant-steps-rtl.ant-steps-with-progress.ant-steps-horizontal.ant-steps-label-horizontal .ant-steps-item:first-child.ant-steps-item-active{padding-right:4px}.ant-steps-with-progress .ant-steps-item .ant-steps-item-tail{top:4px!important}.ant-steps-with-progress.ant-steps-horizontal .ant-steps-item:first-child{padding-bottom:4px;padding-left:4px}.ant-steps-with-progress .ant-steps-item-icon{position:relative}.ant-steps-with-progress .ant-steps-item-icon .ant-progress{position:absolute;top:-5px;right:-5px;bottom:-5px;left:-5px}.ant-switch{margin:0;padding:0;font-size:14px;font-variant:tabular-nums;list-style:none;font-feature-settings:tnum;position:relative;box-sizing:border-box;min-width:44px;height:22px;line-height:22px;background-color:rgba(255,255,255,.3);border:0;border-radius:100px;transition:all .2s;user-select:none}.ant-switch:focus{outline:0;box-shadow:0 0 0 2px rgba(255,255,255,.1)}.ant-switch-checked:focus{box-shadow:0 0 0 2px rgba(23,125,220,.2)}.ant-switch:focus:hover{box-shadow:none}.ant-switch-checked{background-color:#177ddc}.ant-switch-disabled,.ant-switch-loading{cursor:not-allowed;opacity:.4}.ant-switch-disabled *,.ant-switch-loading *{box-shadow:none;cursor:not-allowed}.ant-switch-inner{display:block;margin:0 7px 0 25px;color:#fff;font-size:12px;transition:margin .2s}.ant-switch-handle,.ant-switch-handle::before{transition:all .2s ease-in-out;position:absolute}.ant-switch-checked .ant-switch-inner{margin:0 25px 0 7px}.ant-switch-handle{top:2px;left:2px;width:18px;height:18px}.ant-switch-handle::before{top:0;right:0;bottom:0;left:0;background-color:#fff;border-radius:9px;box-shadow:0 2px 4px 0 rgba(0,35,11,.2);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:relative;top:2px;color:rgba(0,0,0,.65);vertical-align:top}.ant-switch-checked .ant-switch-loading-icon{color:#177ddc}.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{top:1.5px;font-size:9px}.ant-table,.ant-table.ant-table-middle,.ant-table.ant-table-small{font-size:14px}.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 .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)}.ant-table-wrapper::after,.ant-table-wrapper::before{display:table;content:''}.ant-table.ant-table-middle .ant-table-footer,.ant-table.ant-table-middle .ant-table-tbody>tr>td,.ant-table.ant-table-middle .ant-table-thead>tr>th,.ant-table.ant-table-middle .ant-table-title,.ant-table.ant-table-middle tfoot>tr>td,.ant-table.ant-table-middle tfoot>tr>th{padding:12px 8px}.ant-table.ant-table-middle .ant-table-filter-trigger{margin-right:-4px}.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 .ant-table-footer,.ant-table.ant-table-small .ant-table-tbody>tr>td,.ant-table.ant-table-small .ant-table-thead>tr>th,.ant-table.ant-table-small .ant-table-title,.ant-table.ant-table-small tfoot>tr>td,.ant-table.ant-table-small tfoot>tr>th{padding:8px}.ant-table.ant-table-small .ant-table-filter-trigger{margin-right:-4px}.ant-table.ant-table-small .ant-table-expanded-row-fixed{margin:-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:#1d1d1d}.ant-table-small .ant-table-selection-column{width:46px;min-width:46px}.ant-table.ant-table-bordered>.ant-table-title{border:1px solid #303030;border-bottom:0}.ant-table.ant-table-bordered>.ant-table-container{border:1px solid #303030;border-right:0;border-bottom:0}.ant-table-thead>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>thead>tr:not(:last-child)>th,.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-summary>table>thead>tr:not(:last-child)>th{border-bottom:1px solid #303030}.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-body>table>tfoot>tr>td,.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-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-content>table>tfoot>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-content>table>thead>tr>th,.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-header>table>tfoot>tr>td,.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-header>table>thead>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tbody>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tfoot>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tfoot>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>thead>tr>th{border-right:1px solid #303030}.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>thead>tr>th::before,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>thead>tr>th::before,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>thead>tr>th::before,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>thead>tr>th::before{background-color:transparent!important}.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-body>table>tfoot>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-content>table>tfoot>tr>.ant-table-cell-fix-right-first::after,.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>tbody>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-header>table>thead>tr>.ant-table-cell-fix-right-first::after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tbody>tr>.ant-table-cell-fix-right-first::after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tfoot>tr>.ant-table-cell-fix-right-first::after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>thead>tr>.ant-table-cell-fix-right-first::after{border-right:1px solid #303030}.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>tbody>tr>td>.ant-table-expanded-row-fixed,.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-summary>table>tbody>tr>td>.ant-table-expanded-row-fixed{margin:-16px -17px}.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>tbody>tr>td>.ant-table-expanded-row-fixed::after,.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-summary>table>tbody>tr>td>.ant-table-expanded-row-fixed::after{position:absolute;top:0;right:1px;bottom:0;border-right:1px solid #303030;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-body>table>tbody>tr>td>.ant-table-expanded-row-fixed,.ant-table.ant-table-bordered.ant-table-middle>.ant-table-container>.ant-table-content>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-body>table>tbody>tr>td>.ant-table-expanded-row-fixed,.ant-table.ant-table-bordered.ant-table-small>.ant-table-container>.ant-table-content>table>tbody>tr>td>.ant-table-expanded-row-fixed{margin:-8px -9px}.ant-table.ant-table-bordered>.ant-table-footer{border:1px solid #303030;border-top:0}.ant-table-cell .ant-table-container:first-child{border-top:0}.ant-table-cell-scrollbar{box-shadow:0 1px 0 1px #1d1d1d}.ant-table-wrapper{clear:both;max-width:100%}.ant-table-wrapper::after{clear:both}.ant-table{box-sizing:border-box;margin:0;padding:0;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:tnum;position:relative;background:#141414;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 tfoot>tr>td,.ant-table tfoot>tr>th,.ant-table-tbody>tr>td,.ant-table-thead>tr>th{position:relative;padding: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-cell-ellipsis .ant-table-column-title{overflow:hidden;text-overflow:ellipsis;word-break:keep-all}.ant-table-title{padding:16px}.ant-table-footer{padding:16px;background:rgba(255,255,255,.04)}.ant-table-thead>tr>th{position:relative;font-weight:500;text-align:left;background:#1d1d1d;transition:background .3s ease}.ant-table-thead>tr>th[colspan]:not([colspan='1']){text-align:center}.ant-table-thead>tr>th:not(:last-child):not(.ant-table-selection-column):not(.ant-table-row-expand-icon-cell):not([colspan])::before{position:absolute;top:50%;right:0;width:1px;height:1.6em;background-color:rgba(255,255,255,.08);transform:translateY(-50%);transition:background-color .3s;content:''}.ant-table-thead>tr:not(:last-child)>th[colspan]{border-bottom:0}.ant-table-tbody>tr>td{border-bottom:1px solid #303030;transition:background .3s}.ant-table-tbody>tr>td>.ant-table-expanded-row-fixed>.ant-table-wrapper:only-child .ant-table,.ant-table-tbody>tr>td>.ant-table-wrapper:only-child .ant-table{margin:-16px -16px -16px 33px}.ant-table-tbody>tr>td>.ant-table-expanded-row-fixed>.ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td,.ant-table-tbody>tr>td>.ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td{border-bottom:0}.ant-table-tbody>tr>td>.ant-table-expanded-row-fixed>.ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td:first-child,.ant-table-tbody>tr>td>.ant-table-expanded-row-fixed>.ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td:last-child,.ant-table-tbody>tr>td>.ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td:first-child,.ant-table-tbody>tr>td>.ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td:last-child{border-radius:0}.ant-table-tbody>tr.ant-table-row:hover>td{background:#262626}.ant-table-tbody>tr.ant-table-row-selected>td{background:#111b26;border-color:rgba(0,0,0,.03)}.ant-table-tbody>tr.ant-table-row-selected:hover>td{background:#0e161f}.ant-table-summary{background:#141414}div.ant-table-summary{box-shadow:0 -1px 0 #303030}.ant-table-summary>tr>td,.ant-table-summary>tr>th{border-bottom:1px solid #303030}.ant-table-pagination.ant-pagination{margin:16px 0}.ant-table-pagination{display:flex;flex-wrap:wrap;row-gap:8px}.ant-table-pagination>*{flex:none}.ant-table-pagination-left{justify-content:flex-start}.ant-table-pagination-center{justify-content:center}.ant-table-pagination-right{justify-content:flex-end}.ant-table-thead th.ant-table-column-has-sorters{cursor:pointer;transition:all .3s}.ant-table-thead th.ant-table-column-has-sorters:hover{background:#303030}.ant-table-thead th.ant-table-column-has-sorters:hover::before{background-color:transparent!important}.ant-table-thead th.ant-table-column-has-sorters.ant-table-cell-fix-left:hover,.ant-table-thead th.ant-table-column-has-sorters.ant-table-cell-fix-right:hover{background:#f5f5f5}.ant-table-thead th.ant-table-column-sort{background:#262626}.ant-table-thead th.ant-table-column-sort::before{background-color:transparent!important}td.ant-table-column-sort{background:rgba(255,255,255,.01)}.ant-table-column-title{position:relative;z-index:1;flex:1}.ant-table-column-sorters{display:flex;flex:auto;align-items:center;justify-content:space-between}.ant-table-column-sorters::after{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;content:''}.ant-table-column-sorter{color:#bfbfbf;font-size:0;transition:color .3s}.ant-table-column-sorter-inner{display:inline-flex;flex-direction:column;align-items:center}.ant-table-column-sorter-down,.ant-table-column-sorter-up{font-size:11px}.ant-table-column-sorter-down.active,.ant-table-column-sorter-up.active{color:#177ddc}.ant-table-column-sorter-up+.ant-table-column-sorter-down{margin-top:-.3em}.ant-table-column-sorters:hover .ant-table-column-sorter{color:#a6a6a6}.ant-table-filter-column{display:flex;justify-content:space-between}.ant-table-filter-trigger{position:relative;display:flex;align-items:center;margin:-4px -8px -4px 4px;padding:0 4px;color:#bfbfbf;font-size:12px;border-radius:2px;cursor:pointer;transition:all .3s}.ant-table-filter-trigger:hover{color:rgba(255,255,255,.45);background:#434343}.ant-table-filter-trigger.active{color:#177ddc}.ant-table-filter-dropdown{box-sizing:border-box;margin:0;padding:0;color:rgba(255,255,255,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:tnum;min-width:120px;background-color:#1f1f1f;border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.48),0 6px 16px 0 rgba(0,0,0,.32),0 9px 28px 8px rgba(0,0,0,.2)}.ant-table-filter-dropdown .ant-dropdown-menu{max-height:264px;overflow-x:hidden;border:0;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:flex;justify-content:space-between;padding:7px 8px 7px 3px;overflow:hidden;background-color:#1f1f1f;border-top:1px solid #303030}.ant-table-selection-col{width:32px}.ant-table-bordered .ant-table-selection-col{width:50px}table tr td.ant-table-selection-column,table tr th.ant-table-selection-column{padding-right:8px;padding-left:8px;text-align:center}table tr td.ant-table-selection-column .ant-radio-wrapper,table tr th.ant-table-selection-column .ant-radio-wrapper{margin-right:0}table tr th.ant-table-selection-column::after{background-color:transparent!important}.ant-table-selection{position:relative;display:inline-flex;flex-direction:column}.ant-table-selection-extra{position:absolute;top:0;z-index:1;cursor:pointer;transition:all .3s;margin-inline-start:100%;padding-inline-start:4px}.ant-table-selection-extra .anticon{color:#bfbfbf;font-size:10px}.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{text-decoration:none;cursor:pointer;position:relative;display:inline-flex;float:left;box-sizing:border-box;width:17px;height:17px;padding:0;color:inherit;line-height:17px;background:0 0;border:1px solid #303030;border-radius:2px;outline:0;transform:scale(.94117647);transition:all .3s;user-select:none}.ant-table-row-expand-icon:focus,.ant-table-row-expand-icon:hover{color:#165996}.ant-table-row-expand-icon:active{color:#388ed3}.ant-table-row-expand-icon:active,.ant-table-row-expand-icon:focus,.ant-table-row-expand-icon:hover{border-color:currentColor}.ant-table-row-expand-icon::after,.ant-table-row-expand-icon::before{position:absolute;background:currentColor;transition:transform .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;transform:rotate(90deg)}.ant-table-row-expand-icon-collapsed::before{transform:rotate(-180deg)}.ant-table-row-expand-icon-collapsed::after{transform:rotate(0)}.ant-table-row-expand-icon-spaced{background:0 0;border:0;visibility:hidden}.ant-table-row-expand-icon-spaced::after,.ant-table-row-expand-icon-spaced::before{display:none;content:none}.ant-table-row-indent+.ant-table-row-expand-icon{margin-top:2.5px;margin-right:8px}tr.ant-table-expanded-row:hover>td,tr.ant-table-expanded-row>td{background:#1d1d1d}tr.ant-table-expanded-row .ant-descriptions-view{display:flex}tr.ant-table-expanded-row .ant-descriptions-view table{flex:auto;width:auto}.ant-table .ant-table-expanded-row-fixed{position:relative;margin:-16px;padding:16px}.ant-table-tbody>tr.ant-table-placeholder{text-align:center}.ant-table-empty .ant-table-tbody>tr.ant-table-placeholder{color:rgba(255,255,255,.3)}.ant-table-tbody>tr.ant-table-placeholder:hover>td{background:#141414}.ant-table-cell-fix-left,.ant-table-cell-fix-right{position:-webkit-sticky!important;position:sticky!important;z-index:2;background:#141414}.ant-table .ant-table-container::after,.ant-table .ant-table-container::before,.ant-table-cell-fix-left-first::after,.ant-table-cell-fix-left-last::after,.ant-table-cell-fix-right-first::after,.ant-table-cell-fix-right-last::after{position:absolute;transition:box-shadow .3s;width:30px;top:0;pointer-events:none;content:''}.ant-table-cell-fix-left-first::after,.ant-table-cell-fix-left-last::after{right:0;bottom:-1px;transform:translateX(100%)}.ant-table-cell-fix-right-first::after,.ant-table-cell-fix-right-last::after{bottom:-1px;left:0;transform:translateX(-100%)}.ant-table .ant-table-container::after,.ant-table .ant-table-container::before{bottom:0;z-index:1}.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 .ant-table-cell-fix-left-first::after,.ant-table-ping-left .ant-table-cell-fix-left-last::after,.ant-table-ping-left:not(.ant-table-has-fix-left) .ant-table-container::before{box-shadow:inset 10px 0 8px -8px rgba(0,0,0,.45)}.ant-table-ping-left .ant-table-cell-fix-left-last::before{background-color:transparent!important}.ant-table-ping-right:not(.ant-table-has-fix-right) .ant-table-container{position:relative}.ant-table-sticky-holder,.ant-table-sticky-scroll{position:sticky;z-index:3}.ant-table-ping-right .ant-table-cell-fix-right-first::after,.ant-table-ping-right .ant-table-cell-fix-right-last::after,.ant-table-ping-right:not(.ant-table-has-fix-right) .ant-table-container::after{box-shadow:inset -10px 0 8px -8px rgba(0,0,0,.45)}.ant-table-sticky-scroll{bottom:0;display:flex;align-items:center;background:#fcfcfc;border-top:1px solid #303030;opacity:.6}.ant-tabs-bottom>.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-right::after,.ant-tabs-bottom>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-right::after,.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-bottom::after,.ant-tabs-left>.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-bottom::after,.ant-tabs-left>div>.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-bottom::after,.ant-tabs-right>.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-bottom::after,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-top::before,.ant-tabs-top>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-left::before,.ant-tabs-top>.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-left::before,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-right::after{opacity:1}.ant-table-sticky-scroll:hover{transform-origin:center bottom}.ant-table-sticky-scroll-bar{height:8px;background-color:rgba(0,0,0,.35);border-radius:4px}.ant-table-sticky-scroll-bar-active,.ant-table-sticky-scroll-bar:hover{background-color:rgba(0,0,0,.8)}@media all and (-ms-high-contrast:none){.ant-table-ping-left .ant-table-cell-fix-left-last::after,.ant-table-ping-right .ant-table-cell-fix-right-first::after{box-shadow:none!important}}.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,.ant-table-title+.ant-table-container table>thead>tr:first-child th:last-child{border-radius:0}.ant-table-container,.ant-table-container table>thead>tr:first-child th:first-child{border-top-left-radius:2px}.ant-table-container,.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 .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-wrapper-rtl .ant-table thead>tr>th.ant-table-selection-column,.ant-table-wrapper-rtl .ant-table-selection{text-align:center}.ant-table-tbody>tr .ant-table-wrapper:only-child .ant-table.ant-table-rtl{margin:-16px 33px -16px -16px}.ant-table-wrapper.ant-table-wrapper-rtl .ant-table-pagination-left{justify-content:flex-end}.ant-table-wrapper.ant-table-wrapper-rtl .ant-table-pagination-right{justify-content:flex-start}.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-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,.ant-dropdown-rtl .ant-table-filter-dropdown .ant-checkbox-wrapper+span,.ant-dropdown-rtl .ant-table-filter-dropdown-submenu .ant-checkbox-wrapper+span{padding-right:8px;padding-left:0}.ant-table-wrapper-rtl .ant-table-row-expand-icon,.ant-table-wrapper-rtl .ant-table-row-indent{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{transform:rotate(-90deg)}.ant-table-wrapper-rtl .ant-table-row-expand-icon-collapsed::before{transform:rotate(180deg)}.ant-table-wrapper-rtl .ant-table-row-expand-icon-collapsed::after{transform:rotate(0)}nz-table,nz-table-inner-default,nz-table-inner-scroll,nz-table-selection,nz-table-title-footer{display:block}nz-filter-trigger{display:inline-flex}.nz-table-out-bordered>.ant-table-container,.nz-table-out-bordered>.ant-table-title{border:1px solid #303030;border-bottom:0}.nz-table-out-bordered>.ant-table-footer{border:1px solid #303030;border-top:0}cdk-virtual-scroll-viewport.ant-table-body{overflow-y:scroll}.nz-table-hide-scrollbar{scrollbar-color:#1d1d1d #1d1d1d}.nz-table-hide-scrollbar::-webkit-scrollbar{background-color:#1d1d1d}.ant-table.ant-table-small .nz-table-hide-scrollbar{scrollbar-color:#1d1d1d #1d1d1d}.ant-table.ant-table-small .nz-table-hide-scrollbar::-webkit-scrollbar{background-color:transparent}.ant-table.ant-table-bordered>.ant-table-container>.cdk-virtual-scroll-viewport>.cdk-virtual-scroll-content-wrapper>table>tbody>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.cdk-virtual-scroll-viewport>.cdk-virtual-scroll-content-wrapper>table>tfoot>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.cdk-virtual-scroll-viewport>.cdk-virtual-scroll-content-wrapper>table>tfoot>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.cdk-virtual-scroll-viewport>.cdk-virtual-scroll-content-wrapper>table>thead>tr>th{border-right:1px solid #303030}.ant-table.ant-table-bordered>.ant-table-container>.cdk-virtual-scroll-viewport>.cdk-virtual-scroll-content-wrapper>table>thead>tr:not(:last-child)>th{border-bottom:1px solid #303030}.ant-table.ant-table-bordered>.ant-table-container>.cdk-virtual-scroll-viewport>.cdk-virtual-scroll-content-wrapper>table>tbody>tr>.ant-table-cell-fix-right-first::after,.ant-table.ant-table-bordered>.ant-table-container>.cdk-virtual-scroll-viewport>.cdk-virtual-scroll-content-wrapper>table>tfoot>tr>.ant-table-cell-fix-right-first::after,.ant-table.ant-table-bordered>.ant-table-container>.cdk-virtual-scroll-viewport>.cdk-virtual-scroll-content-wrapper>table>thead>tr>.ant-table-cell-fix-right-first::after{border-right:1px solid #303030}.ant-table.ant-table-bordered>.ant-table-container>.cdk-virtual-scroll-viewport>.cdk-virtual-scroll-content-wrapper>table>tbody>tr>td>.ant-table-expanded-row-fixed{margin:-16px -17px}.ant-table.ant-table-bordered>.ant-table-container>.cdk-virtual-scroll-viewport>.cdk-virtual-scroll-content-wrapper>table>tbody>tr>td>.ant-table-expanded-row-fixed::after{position:absolute;top:0;right:1px;bottom:0;border-right:1px solid #303030;content:''}.ant-table.ant-table-bordered.ant-table-scroll-horizontal>.ant-table-container>.cdk-virtual-scroll-viewport>.cdk-virtual-scroll-content-wrapper>table>tbody>tr.ant-table-expanded-row>td,.ant-table.ant-table-bordered.ant-table-scroll-horizontal>.ant-table-container>.cdk-virtual-scroll-viewport>.cdk-virtual-scroll-content-wrapper>table>tbody>tr.ant-table-placeholder>td{border-right:0}.ant-table.ant-table-bordered.ant-table-middle>.ant-table-container>.cdk-virtual-scroll-viewport>.cdk-virtual-scroll-content-wrapper>table>tbody>tr>td>.ant-table-expanded-row-fixed{margin:-12px -9px}.ant-table.ant-table-bordered.ant-table-small>.ant-table-container>.cdk-virtual-scroll-viewport>.cdk-virtual-scroll-content-wrapper>table>tbody>tr>td>.ant-table-expanded-row-fixed{margin:-8px -9px}.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 .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-content-holder,.ant-tabs-rtl.ant-tabs-right>.ant-tabs-nav{order:0}.ant-tabs-rtl.ant-tabs-right>.ant-tabs-content-holder{order:1}.ant-tabs-rtl.ant-tabs-card.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-rtl.ant-tabs-card.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-rtl.ant-tabs-card.ant-tabs-top>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-rtl.ant-tabs-card.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab{margin-right:0;margin-left:2px}.ant-tabs-dropdown-rtl .ant-tabs-dropdown-menu-item{text-align:right}.ant-tabs-bottom,.ant-tabs-top{flex-direction:column}.ant-tabs-bottom>.ant-tabs-nav,.ant-tabs-bottom>div>.ant-tabs-nav,.ant-tabs-top>.ant-tabs-nav,.ant-tabs-top>div>.ant-tabs-nav{margin:0 0 16px}.ant-tabs-bottom>.ant-tabs-nav::before,.ant-tabs-bottom>div>.ant-tabs-nav::before,.ant-tabs-top>.ant-tabs-nav::before,.ant-tabs-top>div>.ant-tabs-nav::before{position:absolute;right:0;left:0;border-bottom:1px solid #303030;content:''}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-top>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-ink-bar{height:2px}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-ink-bar-animated,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-ink-bar-animated,.ant-tabs-top>.ant-tabs-nav .ant-tabs-ink-bar-animated,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-ink-bar-animated{transition:width .3s,left .3s,right .3s}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-nav-wrap::after,.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-nav-wrap::before,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-nav-wrap::after,.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-top>.ant-tabs-nav .ant-tabs-nav-wrap::before,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-wrap::after,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-wrap::before{top:0;bottom:0;width:30px}.ant-tabs-bottom>.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::before,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-wrap::before{left:0;box-shadow:inset 10px 0 8px -8px rgba(0,0,0,.08)}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-nav-wrap::after,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-nav-wrap::after,.ant-tabs-top>.ant-tabs-nav .ant-tabs-nav-wrap::after,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-wrap::after{right:0;box-shadow:inset -10px 0 8px -8px rgba(0,0,0,.08)}.ant-tabs-top>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-top>.ant-tabs-nav::before,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-top>div>.ant-tabs-nav::before{bottom:0}.ant-tabs-bottom>.ant-tabs-nav,.ant-tabs-bottom>div>.ant-tabs-nav{order:1;margin-top:16px;margin-bottom:0}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-bottom>.ant-tabs-nav::before,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-bottom>div>.ant-tabs-nav::before{top:0}.ant-tabs-bottom>.ant-tabs-content-holder,.ant-tabs-bottom>div>.ant-tabs-content-holder{order:0}.ant-tabs-left>.ant-tabs-nav,.ant-tabs-left>div>.ant-tabs-nav,.ant-tabs-right>.ant-tabs-nav,.ant-tabs-right>div>.ant-tabs-nav{flex-direction:column;min-width:50px}.ant-tabs-left>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-right>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-tab{padding:8px 24px;text-align:center}.ant-tabs-left>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-right>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab{margin:16px 0 0}.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap{flex-direction:column}.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap::after,.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap::before,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap::after,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap::before,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap::after,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap::before,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap::after,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap::before{right:0;left:0;height:30px}.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap::before,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap::before,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap::before,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap::before{top:0;box-shadow:inset 0 10px 8px -8px rgba(0,0,0,.08)}.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap::after,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap::after,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap::after,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap::after{bottom:0;box-shadow:inset 0 -10px 8px -8px rgba(0,0,0,.08)}.ant-tabs-dropdown-menu,.ant-tooltip-inner,.nz-tabs-dropdown.ant-dropdown .ant-dropdown-menu{box-shadow:0 3px 6px -4px rgba(0,0,0,.48),0 6px 16px 0 rgba(0,0,0,.32),0 9px 28px 8px rgba(0,0,0,.2)}.ant-tabs-left>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-right>.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-left>div>.ant-tabs-nav .ant-tabs-ink-bar-animated,.ant-tabs-right>.ant-tabs-nav .ant-tabs-ink-bar-animated,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-ink-bar-animated{transition:height .3s,top .3s}.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-list,.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-operations,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-list,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-operations,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-list,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-operations,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-list,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-operations{flex:1 0 auto;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 #303030}.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{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{order:0;margin-right:-1px;border-right:1px solid #303030}.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{box-sizing:border-box;margin:0;padding:0;color:rgba(255,255,255,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;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:#1f1f1f;background-clip:padding-box;border-radius:2px;outline:0}.ant-tabs-dropdown-menu-item{min-width:120px;margin:0;padding:5px 12px;overflow:hidden;color:rgba(255,255,255,.85);font-weight:400;font-size:14px;line-height:22px;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;transition:all .3s}.ant-tabs-dropdown-menu-item:hover{background:rgba(255,255,255,.08)}.ant-tabs-dropdown-menu-item-disabled,.ant-tabs-dropdown-menu-item-disabled:hover{color:rgba(255,255,255,.3);background:0 0;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:rgba(255,255,255,.04);border:1px solid #303030;transition:all .3s cubic-bezier(.645,.045,.355,1)}.ant-tabs,.ant-timeline{font-variant:tabular-nums;line-height:1.5715;font-feature-settings:tnum;padding:0}.ant-tabs-card>.ant-tabs-nav .ant-tabs-tab-active,.ant-tabs-card>div>.ant-tabs-nav .ant-tabs-tab-active{color:#177ddc;background:#141414}.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-bottom>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-card.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-card.ant-tabs-top>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-card.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab{margin-left: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:#141414}.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:#141414}.ant-tabs-card.ant-tabs-left>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-card.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-card.ant-tabs-right>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-card.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab{margin-top: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:#141414}.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:#141414}.ant-tabs{box-sizing:border-box;margin:0;color:rgba(255,255,255,.85);font-size:14px;list-style:none;display:flex;overflow:hidden}.ant-tabs>.ant-tabs-nav,.ant-tabs>div>.ant-tabs-nav{position:relative;display:flex;flex:none;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:flex;flex:auto;align-self:stretch;overflow:hidden;white-space:nowrap;transform:translate(0)}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-wrap::after,.ant-tabs>.ant-tabs-nav .ant-tabs-nav-wrap::before,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-wrap::after,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-wrap::before{position:absolute;z-index:1;opacity:0;transition:opacity .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:flex;transition:transform .3s}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-operations,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-operations{display:flex;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:0 0;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;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:rgba(255,255,255,.04);border:1px solid #303030;border-radius:2px 2px 0 0;outline:0;cursor:pointer;transition:all .3s cubic-bezier(.645,.045,.355,1)}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-add:hover,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-add:hover{color:#165996}.ant-tabs-tab-btn:active,.ant-tabs-tab-btn:focus,.ant-tabs-tab-remove:active,.ant-tabs-tab-remove:focus,.ant-tabs>.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:active,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-add:focus{color:#388ed3}.ant-tabs-extra-content{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]){justify-content:center}.ant-tabs-ink-bar{position:absolute;background:#177ddc;pointer-events:none}.ant-tabs-tab,.ant-tabs-tab-remove{background:0 0;cursor:pointer;outline:0}.ant-tabs-tab{position:relative;display:inline-flex;align-items:center;padding:12px 0;font-size:14px;border:0}.ant-tabs-tab-btn{outline:0;transition:all .3s}.ant-tabs-tab-remove{flex:none;margin-right:-4px;margin-left:8px;color:rgba(255,255,255,.45);font-size:12px;border:none;transition:all .3s}.ant-tabs-tab-remove:hover{color:rgba(255,255,255,.85)}.ant-tabs-tab:hover{color:#165996}.ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn{color:#177ddc;text-shadow:0 0 .25px currentColor}.ant-tabs-tab.ant-tabs-tab-disabled{color:rgba(255,255,255,.3);cursor:not-allowed}.ant-tabs-tab.ant-tabs-tab-disabled .ant-tabs-tab-btn:active,.ant-tabs-tab.ant-tabs-tab-disabled .ant-tabs-tab-btn:focus,.ant-tabs-tab.ant-tabs-tab-disabled .ant-tabs-tab-remove:active,.ant-tabs-tab.ant-tabs-tab-disabled .ant-tabs-tab-remove:focus{color:rgba(255,255,255,.3)}.ant-tabs-tab .ant-tabs-tab-remove .anticon{margin:0}.ant-tabs-tab .anticon{margin-right:12px}.ant-tabs-tab+.ant-tabs-tab{margin:0 0 0 32px}.ant-tabs-content{display:flex;width:100%}.ant-tabs-content-holder{flex:auto;min-width:0;min-height:0}.ant-tabs-content-animated{transition:margin .3s}.ant-tabs-tabpane{flex:none;width:100%;outline:0}.ant-tabs-dropdown-menu-item a[nz-tab-link]{position:relative}a[nz-tab-link]::before{position:absolute;top:0;left:0;right:0;bottom:0;background-color:transparent;content:''}a[nz-tab-link]~*{position:relative}nz-tab-nav-operation,nz-tabs-nav,nz-tabset{display:block}.nz-tabs-dropdown.ant-dropdown .ant-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:#1f1f1f;background-clip:padding-box;border-radius:2px;outline:0}.nz-tabs-dropdown.ant-dropdown .ant-dropdown-menu-item{min-width:120px;margin:0;padding:5px 12px;overflow:hidden;color:rgba(255,255,255,.85);font-weight:400;font-size:14px;line-height:22px;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;transition:all .3s}.nz-tabs-dropdown.ant-dropdown .ant-dropdown-menu-item:hover{background:rgba(255,255,255,.08)}.nz-tabs-dropdown.ant-dropdown .ant-dropdown-menu-item-disabled,.nz-tabs-dropdown.ant-dropdown .ant-dropdown-menu-item-disabled:hover{color:rgba(255,255,255,.3);background:0 0;cursor:not-allowed}.ant-tag,.ant-upload.ant-upload-drag,.result .ant-steps .ant-steps-head,.result .ant-steps .ant-steps-title,.result__extra{background:rgba(255,255,255,.04)}.nz-tabs-dropdown.ant-dropdown .ant-dropdown-menu-item-disabled a,.nz-tabs-dropdown.ant-dropdown .ant-dropdown-menu-item-disabled:hover a{pointer-events:none;color:rgba(255,255,255,.3)}.ant-tabs-rtl .ant-tabs-rtl-tab-next{right:auto;left:2px}.ant-tabs-tab-disabled a{pointer-events:none;color:rgba(255,255,255,.3)}.ant-tag{box-sizing:border-box;margin:0 8px 0 0;font-variant:tabular-nums;list-style:none;font-feature-settings:tnum;display:inline-block;height:auto;padding:0 7px;font-size:12px;line-height:20px;white-space:nowrap;border:1px solid #434343;border-radius:2px;opacity:1;transition:all .3s}.ant-tag-checkable,.ant-tag-has-color{border-color:transparent}.ant-tag,.ant-tag a,.ant-tag a:hover{color:rgba(255,255,255,.85)}.ant-tag>a:first-child:last-child{display:inline-block;margin:0 -8px;padding:0 8px}.ant-tag-hidden,.ant-timeline-item-last>.ant-timeline-item-tail,.ant-timeline-item-pending .ant-timeline-item-tail{display:none}.ant-tag-close-icon{margin-left:3px;color:rgba(255,255,255,.45);font-size:10px;cursor:pointer;transition:all .3s}.ant-tag-close-icon:hover{color:rgba(255,255,255,.85)}.ant-tag-has-color,.ant-tag-has-color .anticon-close,.ant-tag-has-color .anticon-close:hover,.ant-tag-has-color a,.ant-tag-has-color a:hover{color:#fff}.ant-tag-checkable{background-color:transparent;cursor:pointer}.ant-tag-checkable:not(.ant-tag-checkable-checked):hover{color:#177ddc}.ant-tag-checkable-checked,.ant-tag-checkable:active{color:#fff}.ant-tag-checkable-checked{background-color:#177ddc}.ant-tag-checkable:active{background-color:#388ed3}.ant-tag-pink{color:#e0529c;background:#291321;border-color:#551c3b}.ant-tag-pink-inverse{color:#fff;background:#cb2b83;border-color:#cb2b83}.ant-tag-magenta{color:#e0529c;background:#291321;border-color:#551c3b}.ant-tag-magenta-inverse{color:#fff;background:#cb2b83;border-color:#cb2b83}.ant-tag-red{color:#e84749;background:#2a1215;border-color:#58181c}.ant-tag-red-inverse{color:#fff;background:#d32029;border-color:#d32029}.ant-tag-volcano{color:#e87040;background:#2b1611;border-color:#592716}.ant-tag-volcano-inverse{color:#fff;background:#d84a1b;border-color:#d84a1b}.ant-tag-orange{color:#e89a3c;background:#2b1d11;border-color:#593815}.ant-tag-orange-inverse{color:#fff;background:#d87a16;border-color:#d87a16}.ant-tag-yellow{color:#e8d639;background:#2b2611;border-color:#595014}.ant-tag-yellow-inverse{color:#fff;background:#d8bd14;border-color:#d8bd14}.ant-tag-gold{color:#e8b339;background:#2b2111;border-color:#594214}.ant-tag-gold-inverse{color:#fff;background:#d89614;border-color:#d89614}.ant-tag-cyan{color:#33bcb7;background:#112123;border-color:#144848}.ant-tag-cyan-inverse{color:#fff;background:#13a8a8;border-color:#13a8a8}.ant-tag-lime{color:#a9d134;background:#1f2611;border-color:#3e4f13}.ant-tag-lime-inverse{color:#fff;background:#8bbb11;border-color:#8bbb11}.ant-tag-green{color:#6abe39;background:#162312;border-color:#274916}.ant-tag-green-inverse{color:#fff;background:#49aa19;border-color:#49aa19}.ant-tag-blue{color:#3c9ae8;background:#111d2c;border-color:#15395b}.ant-tag-blue-inverse{color:#fff;background:#177ddc;border-color:#177ddc}.ant-tag-geekblue{color:#5273e0;background:#131629;border-color:#1c2755}.ant-tag-geekblue-inverse{color:#fff;background:#2b4acb;border-color:#2b4acb}.ant-tag-purple{color:#854eca;background:#1a1325;border-color:#301c4d}.ant-tag-purple-inverse{color:#fff;background:#642ab5;border-color:#642ab5}.ant-tag-success{color:#49aa19;background:#162312;border-color:#274916}.ant-tag-processing{color:#177ddc;background:#111d2c;border-color:#15395b}.ant-tag-error{color:#d32029;background:#2a1215;border-color:#58181c}.ant-tag-warning{color:#d87a16;background:#2b1d11;border-color:#593815}.ant-timeline,.ant-tooltip{color:rgba(255,255,255,.85);box-sizing:border-box}.ant-tag.ant-tag-rtl{margin-right:0;margin-left:8px;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}.ant-timeline,.ant-timeline-item{margin:0;font-size:14px;list-style:none}.ant-timeline-item{position:relative;padding-bottom:20px}.ant-timeline-item-tail{position:absolute;top:10px;left:4px;height:calc(100% - 10px);border-left:2px solid #303030}.ant-timeline-item-pending .ant-timeline-item-head{font-size:12px;background-color:transparent}.ant-timeline-item-head{position:absolute;width:10px;height:10px;background-color:#141414;border:2px solid transparent;border-radius:100px}.ant-timeline-item-head-blue{color:#177ddc;border-color:#177ddc}.ant-timeline-item-head-red{color:#a61d24;border-color:#a61d24}.ant-timeline-item-head-green{color:#49aa19;border-color:#49aa19}.ant-timeline-item-head-gray{color:rgba(255,255,255,.3);border-color:rgba(255,255,255,.3)}.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;transform:translate(-50%,-50%)}.ant-tooltip,.ant-transfer{font-size:14px;line-height:1.5715;font-variant:tabular-nums;font-feature-settings:tnum}.ant-timeline-item-content{position:relative;top:-7px;margin:0 0 0 26px;word-break:break-word}.ant-timeline-item-last>.ant-timeline-item-content{min-height:48px}.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-alternate .ant-timeline-item-tail,.ant-timeline.ant-timeline-label .ant-timeline-item-head,.ant-timeline.ant-timeline-label .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-label .ant-timeline-item-tail,.ant-timeline.ant-timeline-right .ant-timeline-item-head,.ant-timeline.ant-timeline-right .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-right .ant-timeline-item-tail{left:50%}.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,.ant-timeline.ant-timeline-label .ant-timeline-item-head,.ant-timeline.ant-timeline-right .ant-timeline-item-head{margin-left:-4px}.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-label .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-right .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-label .ant-timeline-item-left .ant-timeline-item-content,.ant-timeline.ant-timeline-right .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-label .ant-timeline-item-right .ant-timeline-item-content,.ant-timeline.ant-timeline-right .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-head,.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-tail{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 #303030}.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 #303030}.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:-7px;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 .ant-timeline-item-tail{right:4px;left:auto;border-right:2px solid #303030;border-left:none}.ant-timeline-rtl .ant-timeline-item-head-custom{right:5px;left:auto;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-head,.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-tail,.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-head,.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-head-custom,.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-tail,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-head,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-head-custom,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-tail{right:50%;left:auto}.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-head,.ant-timeline-rtl.ant-timeline.ant-timeline-right .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-label .ant-timeline-item-head-custom,.ant-timeline-rtl.ant-timeline.ant-timeline-right .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-label .ant-timeline-item-left .ant-timeline-item-content,.ant-timeline-rtl.ant-timeline.ant-timeline-right .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-label .ant-timeline-item-right .ant-timeline-item-content,.ant-timeline-rtl.ant-timeline.ant-timeline-right .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-head,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head-custom,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-tail{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,.ant-timeline-rtl.ant-timeline.ant-timeline-reverse .ant-timeline-item-pending .ant-timeline-item-tail{border-right:2px dotted #303030;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}.ant-tooltip{margin:0;padding:0;list-style:none;z-index:1070;display:block;width:max-content;max-width:250px}.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-rightBottom,.ant-tooltip-placement-rightTop{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-leftBottom,.ant-tooltip-placement-leftTop{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;border-radius:2px}.ant-tooltip-arrow{position:absolute;display:block;width:13.07px;height:13.07px;overflow:hidden;background:0 0;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:#434343;content:'';pointer-events:auto}.ant-tooltip,.ant-transfer{position:relative}.ant-tooltip-placement-top .ant-tooltip-arrow,.ant-tooltip-placement-topLeft .ant-tooltip-arrow,.ant-tooltip-placement-topRight .ant-tooltip-arrow{bottom:-5.07px}.ant-tooltip-placement-leftBottom .ant-tooltip-arrow,.ant-tooltip-placement-rightBottom .ant-tooltip-arrow{bottom:5px}.ant-tooltip-placement-top .ant-tooltip-arrow-content,.ant-tooltip-placement-topLeft .ant-tooltip-arrow-content,.ant-tooltip-placement-topRight .ant-tooltip-arrow-content{box-shadow:3px 3px 7px rgba(0,0,0,.07);transform:translateY(-6.54px) rotate(45deg)}.ant-tooltip-placement-top .ant-tooltip-arrow{left: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-rightBottom .ant-tooltip-arrow,.ant-tooltip-placement-rightTop .ant-tooltip-arrow{left:-5.07px}.ant-tooltip-placement-right .ant-tooltip-arrow-content,.ant-tooltip-placement-rightBottom .ant-tooltip-arrow-content,.ant-tooltip-placement-rightTop .ant-tooltip-arrow-content{box-shadow:-3px 3px 7px rgba(0,0,0,.07);transform:translateX(6.54px) rotate(45deg)}.ant-tooltip-placement-right .ant-tooltip-arrow{top:50%;transform:translateY(-50%)}.ant-tooltip-placement-rightTop .ant-tooltip-arrow{top:5px}.ant-tooltip-placement-left .ant-tooltip-arrow,.ant-tooltip-placement-leftBottom .ant-tooltip-arrow,.ant-tooltip-placement-leftTop .ant-tooltip-arrow{right:-5.07px}.ant-tooltip-placement-left .ant-tooltip-arrow-content,.ant-tooltip-placement-leftBottom .ant-tooltip-arrow-content,.ant-tooltip-placement-leftTop .ant-tooltip-arrow-content{box-shadow:3px -3px 7px rgba(0,0,0,.07);transform:translateX(-6.54px) rotate(45deg)}.ant-tooltip-placement-left .ant-tooltip-arrow{top:50%;transform:translateY(-50%)}.ant-tooltip-placement-leftTop .ant-tooltip-arrow{top:5px}.ant-tooltip-placement-bottom .ant-tooltip-arrow,.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow,.ant-tooltip-placement-bottomRight .ant-tooltip-arrow{top:-5.07px}.ant-tooltip-placement-bottom .ant-tooltip-arrow-content,.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow-content,.ant-tooltip-placement-bottomRight .ant-tooltip-arrow-content{box-shadow:-3px -3px 7px rgba(0,0,0,.07);transform:translateY(6.54px) rotate(45deg)}.ant-tooltip-placement-bottom .ant-tooltip-arrow{left:50%;transform:translateX(-50%)}.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow{left:13px}.ant-tooltip-placement-bottomRight .ant-tooltip-arrow{right:13px}.ant-tooltip-magenta .ant-tooltip-arrow-content,.ant-tooltip-magenta .ant-tooltip-inner,.ant-tooltip-pink .ant-tooltip-arrow-content,.ant-tooltip-pink .ant-tooltip-inner{background-color:#cb2b83}.ant-tooltip-red .ant-tooltip-arrow-content,.ant-tooltip-red .ant-tooltip-inner{background-color:#d32029}.ant-tooltip-volcano .ant-tooltip-arrow-content,.ant-tooltip-volcano .ant-tooltip-inner{background-color:#d84a1b}.ant-tooltip-orange .ant-tooltip-arrow-content,.ant-tooltip-orange .ant-tooltip-inner{background-color:#d87a16}.ant-tooltip-yellow .ant-tooltip-arrow-content,.ant-tooltip-yellow .ant-tooltip-inner{background-color:#d8bd14}.ant-tooltip-gold .ant-tooltip-arrow-content,.ant-tooltip-gold .ant-tooltip-inner{background-color:#d89614}.ant-tooltip-cyan .ant-tooltip-arrow-content,.ant-tooltip-cyan .ant-tooltip-inner{background-color:#13a8a8}.ant-tooltip-lime .ant-tooltip-arrow-content,.ant-tooltip-lime .ant-tooltip-inner{background-color:#8bbb11}.ant-tooltip-green .ant-tooltip-arrow-content,.ant-tooltip-green .ant-tooltip-inner{background-color:#49aa19}.ant-tooltip-blue .ant-tooltip-arrow-content,.ant-tooltip-blue .ant-tooltip-inner{background-color:#177ddc}.ant-tooltip-geekblue .ant-tooltip-arrow-content,.ant-tooltip-geekblue .ant-tooltip-inner{background-color:#2b4acb}.ant-tooltip-purple .ant-tooltip-arrow-content,.ant-tooltip-purple .ant-tooltip-inner{background-color:#642ab5}.ant-tooltip-rtl .ant-tooltip-inner{text-align:right}.ant-transfer-customize-list .ant-transfer-list{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:#1d1d1d}.ant-transfer-customize-list .ant-table-wrapper .ant-table-small>.ant-table-content .ant-table-row:last-child td{border-bottom:1px solid #303030}.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{box-sizing:border-box;margin:0;padding:0;color:rgba(255,255,255,.85);list-style:none;display:flex;align-items:stretch}.ant-transfer-disabled .ant-transfer-list{background:rgba(255,255,255,.08)}.ant-transfer-list{display:flex;flex-direction:column;width:180px;height:200px;border:1px solid #434343;border-radius:2px}.ant-transfer-list-footer,.ant-transfer-list-pagination,.drawer-footer,.modal-footer{border-top:1px solid #303030}.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(255,255,255,.3);line-height:32px;text-align:center}.ant-transfer-list-search-action .anticon{color:rgba(255,255,255,.3);transition:all .3s}.ant-transfer-list-search-action .anticon:hover{color:rgba(255,255,255,.45)}span.ant-transfer-list-search-action{pointer-events:none}.ant-transfer-list-header{display:flex;flex:none;align-items:center;height:40px;padding:8px 12px 9px;color:rgba(255,255,255,.85);background:#141414;border-bottom:1px solid #303030;border-radius:2px 2px 0 0}.ant-transfer-list-header>:not(:last-child){margin-right:4px}.ant-transfer-list-header>*{flex:none}.ant-transfer-list-header-title{flex:auto;overflow:hidden;white-space:nowrap;text-align:right;text-overflow:ellipsis}.ant-transfer-list-header-dropdown{font-size:10px;transform:translateY(10%);cursor:pointer}.ant-transfer-list-header-dropdown[disabled]{cursor:not-allowed}.ant-transfer-list-body{display:flex;flex:auto;flex-direction:column;overflow:hidden;font-size:14px}.ant-transfer-list-body-search-wrapper{position:relative;flex:none;padding:12px}.ant-transfer-list-content{flex:auto;margin:0;padding:0;overflow:auto;list-style:none}.ant-transfer-list-content-item{display:flex;align-items:center;min-height:32px;padding:6px 12px;line-height:20px;transition:all .3s}.ant-transfer-list-content-item>:not(:last-child){margin-right:8px}.ant-transfer-list-content-item>*{flex:none}.ant-transfer-list-content-item-text{flex:auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ant-transfer-list-content-item-remove{text-decoration:none;outline:0;cursor:pointer;transition:color .3s;position:relative;color:#434343}.ant-transfer-list-content-item-remove:focus,.ant-transfer-list-content-item-remove:hover{color:#165996}.ant-transfer-list-content-item-remove:active{color:#388ed3}.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:#165996}.ant-transfer-list-content-item:not(.ant-transfer-list-content-item-disabled):hover{background-color:#262626;cursor:pointer}.ant-transfer-list-content-item:not(.ant-transfer-list-content-item-disabled).ant-transfer-list-content-item-checked:hover{background-color:#0e161f}.ant-transfer-list-content-show-remove .ant-transfer-list-content-item:not(.ant-transfer-list-content-item-disabled):hover{background:0 0;cursor:default}.ant-transfer-list-content-item-checked{background-color:#111b26}.ant-transfer-list-content-item-disabled{color:rgba(255,255,255,.3);cursor:not-allowed}.ant-transfer-list-pagination{padding:8px 0;text-align:right}.ant-transfer-list-body-not-found{flex:none;width:100%;margin:auto 0;color:rgba(255,255,255,.3);text-align:center}.ant-transfer-rtl .ant-transfer-list-header-title,.ant-transfer-rtl .ant-transfer-list-pagination{text-align:left}.ant-transfer-operation{display:flex;flex:none;flex-direction:column;align-self:center;margin:0 8px}.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 .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-footer,.ant-transfer-rtl .ant-transfer-list-header{right:0;left:auto}.ant-transfer-rtl .ant-transfer-list-header>:not(:last-child){margin-right:0;margin-left:4px}.ant-transfer-rtl .ant-transfer-list-content-item>:not(:last-child){margin-right:0;margin-left:8px}.ant-typography{color:rgba(255,255,255,.85);overflow-wrap:break-word}.ant-typography.ant-typography-secondary{color:rgba(255,255,255,.45)}.ant-typography.ant-typography-success{color:#49aa19}.ant-typography.ant-typography-warning{color:#d89614}.ant-typography.ant-typography-danger{color:#a61d24}a.ant-typography.ant-typography-danger:active,a.ant-typography.ant-typography-danger:focus,a.ant-typography.ant-typography-danger:hover{color:#b33b3d}.ant-typography.ant-typography-disabled{color:rgba(255,255,255,.3);cursor:not-allowed;user-select:none}.ant-typography p,div.ant-typography{margin-bottom:1em}.ant-typography h1,.ant-typography h2,.ant-typography h3,.ant-typography h4,.ant-typography h5,h1.ant-typography,h2.ant-typography,h3.ant-typography,h4.ant-typography,h5.ant-typography{margin-bottom:.5em;color:rgba(255,255,255,.85);font-weight:600}.ant-typography h1,h1.ant-typography{font-size:38px;line-height:1.23}.ant-typography h2,h2.ant-typography{font-size:30px;line-height:1.35}.ant-typography h3,h3.ant-typography{font-size:24px;line-height:1.35}.ant-typography h4,h4.ant-typography{font-size:20px;line-height:1.4}.ant-typography h5,h5.ant-typography{font-size:16px;line-height:1.5}.ant-typography div+h1,.ant-typography div+h2,.ant-typography div+h3,.ant-typography div+h4,.ant-typography div+h5,.ant-typography h1+h1,.ant-typography h1+h2,.ant-typography h1+h3,.ant-typography h1+h4,.ant-typography h1+h5,.ant-typography h2+h1,.ant-typography h2+h2,.ant-typography h2+h3,.ant-typography h2+h4,.ant-typography h2+h5,.ant-typography h3+h1,.ant-typography h3+h2,.ant-typography h3+h3,.ant-typography h3+h4,.ant-typography h3+h5,.ant-typography h4+h1,.ant-typography h4+h2,.ant-typography h4+h3,.ant-typography h4+h4,.ant-typography h4+h5,.ant-typography h5+h1,.ant-typography h5+h2,.ant-typography h5+h3,.ant-typography h5+h4,.ant-typography h5+h5,.ant-typography li+h1,.ant-typography li+h2,.ant-typography li+h3,.ant-typography li+h4,.ant-typography li+h5,.ant-typography p+h1,.ant-typography p+h2,.ant-typography p+h3,.ant-typography p+h4,.ant-typography p+h5,.ant-typography ul+h1,.ant-typography ul+h2,.ant-typography ul+h3,.ant-typography ul+h4,.ant-typography ul+h5,.ant-typography+h1.ant-typography,.ant-typography+h2.ant-typography,.ant-typography+h3.ant-typography,.ant-typography+h4.ant-typography,.ant-typography+h5.ant-typography{margin-top:1.2em}.ant-typography code,.ant-typography kbd{margin:0 .2em;border:1px solid rgba(100,100,100,.2)}a.ant-typography-ellipsis,span.ant-typography-ellipsis{display:inline-block}.ant-typography a,a.ant-typography{color:#177ddc;outline:0;cursor:pointer;transition:color .3s;text-decoration:none}.ant-typography a:focus,.ant-typography a:hover,a.ant-typography:focus,a.ant-typography:hover{color:#165996}.ant-typography a:active,a.ant-typography:active{color:#388ed3}.ant-typography a:active,.ant-typography a:hover,a.ant-typography:active,a.ant-typography:hover{text-decoration:none}.ant-typography a.ant-typography-disabled,.ant-typography a[disabled],a.ant-typography.ant-typography-disabled,a.ant-typography[disabled]{color:rgba(255,255,255,.3);cursor:not-allowed}.ant-typography a.ant-typography-disabled:active,.ant-typography a.ant-typography-disabled:hover,.ant-typography a[disabled]:active,.ant-typography a[disabled]:hover,a.ant-typography.ant-typography-disabled:active,a.ant-typography.ant-typography-disabled:hover,a.ant-typography[disabled]:active,a.ant-typography[disabled]:hover{color:rgba(255,255,255,.3)}.ant-typography a.ant-typography-disabled:active,.ant-typography a[disabled]:active,a.ant-typography.ant-typography-disabled:active,a.ant-typography[disabled]:active{pointer-events:none}.ant-typography code{padding:.2em .4em .1em;font-size:85%;background:rgba(150,150,150,.1);border-radius:3px}.ant-typography kbd{padding:.15em .4em .1em;font-size:90%;background:rgba(150,150,150,.06);border-bottom-width:2px;border-radius:3px}.ant-typography mark{padding:0;background-color:#594214}.ant-typography ins,.ant-typography u{text-decoration:underline;text-decoration-skip-ink:auto}.ant-typography del,.ant-typography s,.task__item-done,.text-deleted{text-decoration:line-through}.ant-typography strong{font-weight:600}.ant-typography-copy,.ant-typography-edit,.ant-typography-expand{color:#177ddc;text-decoration:none;outline:0;cursor:pointer;transition:color .3s;margin-left:4px}.ant-typography-copy:focus,.ant-typography-copy:hover,.ant-typography-edit:focus,.ant-typography-edit:hover,.ant-typography-expand:focus,.ant-typography-expand:hover{color:#165996}.ant-typography-copy:active,.ant-typography-edit:active,.ant-typography-expand:active{color:#388ed3}.ant-typography-copy-success,.ant-typography-copy-success:focus,.ant-typography-copy-success:hover{color:#49aa19}.ant-typography-edit-content{position:relative}div.ant-typography-edit-content{left:-12px;margin-top:-5px;margin-bottom:calc(1em - 4px - 1px)}.ant-typography-edit-content-confirm{position:absolute;right:10px;bottom:8px;color:rgba(255,255,255,.45);pointer-events:none}.ant-typography-edit-content textarea{-moz-transition:none}.ant-typography ol,.ant-typography ul{margin:0 0 1em;padding:0}.ant-typography ol li,.ant-typography ul 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 blockquote,.ant-typography pre{margin:1em 0}.ant-typography pre{padding:.4em .6em;white-space:pre-wrap;word-wrap:break-word;background:rgba(150,150,150,.1);border:1px solid rgba(100,100,100,.2);border-radius:3px}.ant-typography pre code{display:inline;margin:0;padding:0;font-size:inherit;font-family:inherit;background:0 0;border:0}.ant-typography blockquote{padding:0 0 0 .6em;border-left:4px solid rgba(100,100,100,.2);opacity:.85}.ant-typography-single-line{white-space:nowrap}.ant-typography-ellipsis-single-line{overflow:hidden;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;overflow:hidden;-webkit-line-clamp:3;/*! autoprefixer: ignore next */-webkit-box-orient:vertical}.ant-typography-rtl .ant-typography-copy,.ant-typography-rtl .ant-typography-edit,.ant-typography-rtl .ant-typography-expand{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 ol li,.ant-typography-rtl.ant-typography ul li{margin:0 20px 0 0;padding:0 4px 0 0}.ant-upload{box-sizing:border-box;margin:0;padding:0;color:rgba(255,255,255,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:tnum;outline:0}.ant-upload p{margin:0}.ant-upload-btn{display:block;width:100%;outline:0}.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{width:104px;height:104px;margin-right:8px;margin-bottom:8px;text-align:center;vertical-align:top;background-color:rgba(255,255,255,.04);border:1px dashed #434343;border-radius:2px;cursor:pointer;transition:border-color .3s}.ant-upload.ant-upload-select-picture-card>.ant-upload{display:flex;align-items:center;justify-content:center;height:100%;text-align:center}.ant-upload.ant-upload-select-picture-card:hover{border-color:#177ddc}.ant-upload-disabled.ant-upload.ant-upload-select-picture-card:hover{border-color:#434343}.ant-upload.ant-upload-drag{position:relative;width:100%;height:100%;text-align:center;border:1px dashed #434343;border-radius:2px;cursor:pointer;transition:border-color .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:#388ed3}.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-list-item-name,.ant-upload-picture-card-wrapper{display:inline-block;width:100%}.ant-upload.ant-upload-drag:not(.ant-upload-disabled):hover{border-color:#165996}.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:#165996;font-size:48px}.ant-upload.ant-upload-drag p.ant-upload-text{margin:0 0 4px;color:rgba(255,255,255,.85);font-size:16px}.ant-upload.ant-upload-drag p.ant-upload-hint{color:rgba(255,255,255,.45);font-size:14px}.ant-upload.ant-upload-drag .anticon-plus{color:rgba(255,255,255,.3);font-size:30px;transition:all .3s}.ant-upload.ant-upload-drag .anticon-plus:hover,.ant-upload.ant-upload-drag:hover .anticon-plus{color:rgba(255,255,255,.45)}.ant-upload-list::after,.ant-upload-list::before,.ant-upload-picture-card-wrapper::after,.ant-upload-picture-card-wrapper::before{display:table;content:''}.ant-upload-picture-card-wrapper::after{clear:both}.ant-upload-list{box-sizing:border-box;margin:0;padding:0;color:rgba(255,255,255,.85);font-size:14px;font-variant:tabular-nums;list-style:none;font-feature-settings:tnum;line-height:1.5715}.ant-upload-list::after{clear:both}.ant-upload-list-item{position:relative;height:22px;margin-top:8px;font-size:14px}.ant-upload-list-item-name{padding-left:22px;overflow:hidden;line-height:1.5715;white-space:nowrap;text-overflow:ellipsis}.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(255,255,255,.45)}.ant-upload-list-item-info{height:100%;padding:0 4px;transition:background-color .3s}.ant-upload-list-item-info>span{display:block;width:100%;height:100%}.ant-upload-list-item-info .ant-upload-text-icon .anticon,.ant-upload-list-item-info .anticon-loading .anticon{position:absolute;top:5px;color:rgba(255,255,255,.45);font-size:14px}.ant-upload-list-item .anticon-close{position:absolute;top:6px;right:4px;color:rgba(255,255,255,.45);font-size:10px;line-height:0;cursor:pointer;opacity:0;transition:all .3s}.ant-upload-list-item-error .ant-upload-list-item-card-actions-btn,.ant-upload-list-item:hover .ant-upload-list-item-card-actions-btn,.ant-upload-list-item:hover .anticon-close{opacity:1}.ant-upload-list-item .anticon-close:hover{color:rgba(255,255,255,.85)}.ant-upload-list-item:hover .ant-upload-list-item-info{background-color:rgba(255,255,255,.08)}.ant-upload-list-picture .ant-upload-list-item:hover,.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-picture-card .ant-upload-list-item:hover .ant-upload-list-item-info{background:0 0}.ant-upload-list-item-error,.ant-upload-list-item-error .ant-upload-list-item-card-actions .anticon,.ant-upload-list-item-error .ant-upload-list-item-name,.ant-upload-list-item-error .ant-upload-text-icon>.anticon{color:#a61d24}.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 #434343;border-radius:2px}.ant-upload-list-picture .ant-upload-list-item-error,.ant-upload-list-picture-card .ant-upload-list-item-error{border-color:#a61d24}.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{width:48px;height:48px;line-height:54px;text-align:center;opacity:.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:#e6d9d8}.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:#a61d24}.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;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;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;transition:all .3s}.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-container{display:inline-block;width:104px;height:104px;margin:0 8px 8px 0;vertical-align:top}.ant-upload-list-picture-card.ant-upload-list::after{display:none}.ant-upload-list-picture-card .ant-upload-list-item{height:100%;margin: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,.5);opacity:0;transition:all .3s;content:' '}.ant-result-content,.ant-upload-list-picture-card .ant-upload-list-item-uploading.ant-upload-list-item{background-color:rgba(255,255,255,.04)}.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;transform:translate(-50%,-50%);opacity:0;transition:all .3s}.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-download,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye{z-index:10;width:16px;margin:0 4px;color:rgba(255,255,255,.85);font-size:16px;cursor:pointer;transition:all .3s}.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete: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-eye:hover{color:#fff}.ant-upload-list-picture-card .ant-upload-list-item-actions:hover,.ant-upload-list-picture-card .ant-upload-list-item-info:hover+.ant-upload-list-item-actions{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%;object-fit:contain}.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-info{height:auto}.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info .anticon-delete,.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::before{display:none}.ant-upload-list-picture-card .ant-upload-list-item-progress{bottom:32px;width:calc(100% - 14px);padding-left:0}.ant-upload-list-picture-container,.ant-upload-list-text-container{transition:opacity .3s,height .3s}.ant-upload-list-picture-container::before,.ant-upload-list-text-container::before{display:table;width:0;height:0;content:''}.ant-upload-list-picture-container .ant-upload-span,.ant-upload-list-text-container .ant-upload-span{display:block;flex:auto}.ant-upload-list-picture .ant-upload-span,.ant-upload-list-text .ant-upload-span{display:flex;align-items:center}.ant-upload-list-picture .ant-upload-span>*,.ant-upload-list-text .ant-upload-span>*{flex:none}.ant-upload-list-picture .ant-upload-list-item-name,.ant-upload-list-text .ant-upload-list-item-name{flex:auto;padding:0 8px}.ant-upload-list-picture .ant-upload-list-item-card-actions,.ant-upload-list-text .ant-upload-list-item-card-actions,.ant-upload-list-text .ant-upload-text-icon .anticon{position:static}.ant-upload-list .ant-upload-animate-inline-appear,.ant-upload-list .ant-upload-animate-inline-enter,.ant-upload-list .ant-upload-animate-inline-leave{animation-duration:.3s;animation-fill-mode:cubic-bezier(.78,.14,.15,.86)}.ant-upload-list .ant-upload-animate-inline-appear,.ant-upload-list .ant-upload-animate-inline-enter{animation-name:uploadAnimateInlineIn}.ant-upload-list .ant-upload-animate-inline-leave{animation-name:uploadAnimateInlineOut}@keyframes uploadAnimateInlineIn{from{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.ant-upload.ant-upload-select-picture-card{margin-right:auto;margin-left:8px}.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-picture .ant-upload-list-item-info,.ant-upload-list-picture-card .ant-upload-list-item-info{padding: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;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:0;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{margin:0 0 8px 8px}.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-actions{right:50%;left:auto;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-cascader,.ant-cascader-picker,.ant-select-auto-complete{margin:0;color:rgba(255,255,255,.85);font-size:14px;line-height:1.5715;font-feature-settings:tnum;list-style:none;box-sizing:border-box;font-variant:tabular-nums}.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item{float:unset}.ant-select-auto-complete{padding:0}.ant-select-auto-complete .ant-select-clear{right:13px}.ant-select-dropdown-hidden{display:none}.ant-cascader{padding:0}.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{padding:0;position:relative;display:inline-block;background-color:transparent;border-radius:2px;outline:0;cursor:pointer;transition:color .3s}.ant-cascader-picker-with-value .ant-cascader-picker-label{color:transparent}.ant-cascader-picker-disabled{color:rgba(255,255,255,.3);background:rgba(255,255,255,.08);cursor:not-allowed}.ant-cascader-picker-disabled .ant-cascader-input{cursor:not-allowed}.ant-cascader-picker:focus .ant-cascader-input{border-color:#177ddc;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(23,125,220,.2)}.ant-input-rtl .ant-cascader-picker:focus .ant-cascader-input{border-right-width:0;border-left-width:1px!important}.ant-cascader-picker-borderless .ant-cascader-input{border-color:transparent!important;box-shadow:none!important}.ant-cascader-picker-show-search.ant-cascader-picker-focused{color:rgba(255,255,255,.3)}.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-arrow,.ant-cascader-picker-clear{position:absolute;height:12px;font-size:12px;line-height:12px;right:12px;width:12px}.ant-cascader-picker-clear{top:50%;z-index:2;margin-top:-6px;color:rgba(255,255,255,.3);background:#141414;cursor:pointer;opacity:0;transition:color .3s ease,opacity .15s ease}.ant-cascader-picker-clear:hover{color:rgba(255,255,255,.45)}.ant-cascader-picker:hover .ant-cascader-picker-clear{opacity:1}.ant-cascader-picker-arrow{top:50%;z-index:1;margin-top:-6px;color:rgba(255,255,255,.3)}.ant-cascader-picker-label:hover+.ant-cascader-input:not(.ant-cascader-picker-disabled .ant-cascader-picker-label:hover+.ant-cascader-input){border-color:#165996;border-right-width:1px!important}.ant-input-rtl .ant-cascader-picker-label:hover+.ant-cascader-input:not(.ant-cascader-picker-disabled .ant-cascader-picker-label:hover+.ant-cascader-input){border-right-width:0;border-left-width:1px!important}.ant-cascader-picker-small .ant-cascader-picker-arrow,.ant-cascader-picker-small .ant-cascader-picker-clear{right:8px}.ant-cascader-menus{z-index:1050;font-size:14px;white-space:nowrap;background:#1f1f1f;border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.48),0 6px 16px 0 rgba(0,0,0,.32),0 9px 28px 8px rgba(0,0,0,.2)}.ant-cascader-menus ol,.ant-cascader-menus ul{margin:0;list-style:none}.ant-cascader-menus-empty,.ant-cascader-menus-hidden{display:none}.ant-cascader-menus.ant-slide-up-appear.ant-slide-up-appear-active.ant-cascader-menus-placement-topLeft,.ant-cascader-menus.ant-slide-up-enter.ant-slide-up-enter-active.ant-cascader-menus-placement-topLeft{animation-name:antSlideDownIn}.ant-cascader-menus.ant-slide-up-leave.ant-slide-up-leave-active.ant-cascader-menus-placement-bottomLeft{animation-name:antSlideUpOut}.ant-cascader-menus.ant-slide-up-leave.ant-slide-up-leave-active.ant-cascader-menus-placement-topLeft{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 #303030;-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;overflow:hidden;line-height:22px;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;transition:all .3s}.ant-cascader-menu-item:hover{background:rgba(255,255,255,.08)}.ant-cascader-menu-item-disabled{color:rgba(255,255,255,.3);cursor:not-allowed}.ant-cascader-menu-item-disabled:hover{background:0 0}.ant-cascader-menu-empty .ant-cascader-menu-item{color:rgba(255,255,255,.3);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:#111b26}.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{position:absolute;right:12px;color:rgba(255,255,255,.45);font-size:10px}.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(255,255,255,.3)}.ant-cascader-menu-item .ant-cascader-menu-item-keyword{color:#a61d24}.ant-cascader-picker-rtl .ant-cascader-input.ant-input{padding-right:11px;padding-left:24px;text-align:right}.ant-cascader-picker-rtl .ant-cascader-picker-label{padding:0 12px 0 20px;text-align:right}.ant-cascader-picker-rtl .ant-cascader-picker-arrow,.ant-cascader-picker-rtl .ant-cascader-picker-clear{right:auto;left:12px}.ant-cascader-picker-rtl.ant-cascader-picker-small .ant-cascader-picker-arrow,.ant-cascader-picker-rtl.ant-cascader-picker-small .ant-cascader-picker-clear{right:auto;left:8px}.ant-cascader-menu-rtl .ant-cascader-menu{border-right:none;border-left:1px solid #303030}.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-tree-checkbox,.ant-tree-checkbox-wrapper{padding:0;list-style:none;font-feature-settings:tnum}.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}.ant-cascader-menu-rtl .ant-cascader-menu-item-loading-icon{transform:scaleY(-1)}.ant-cascader-menus{position:relative;margin-top:2px;margin-bottom:2px}nz-tree-virtual-scroll-view{display:block;position:relative;overflow:auto;contain:strict;transform:translateZ(0);will-change:scroll-position;-webkit-overflow-scrolling:touch}nz-tree-virtual-scroll-view .ant-tree-list,nz-tree-virtual-scroll-view .ant-tree-list-holder{height:100%}nz-tree-view .ant-tree-switcher+.ant-tree-switcher.nz-tree-leaf-line-icon,nz-tree-virtual-scroll-view .ant-tree-switcher+.ant-tree-switcher.nz-tree-leaf-line-icon{display:none}nz-tree-view .ant-tree-list-holder-inner{display:flex;flex-direction:column}.ant-tree-treenode-leaf-last .ant-tree-switcher-leaf-line::before{top:auto!important;bottom:auto!important;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;transition:background-color .3s;content:'';pointer-events:none}.ant-tree.ant-tree-directory .ant-tree-treenode:hover::before{background:rgba(255,255,255,.08)}.ant-tree.ant-tree-directory .ant-tree-treenode>*{z-index:1}.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-switcher{transition:color .3s}.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-node-content-wrapper{border-radius:0;user-select:none}.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-node-content-wrapper:hover{background:0 0}.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-node-content-wrapper.ant-tree-node-selected{color:#fff;background:0 0}.ant-tree.ant-tree-directory .ant-tree-treenode-selected::before,.ant-tree.ant-tree-directory .ant-tree-treenode-selected:hover::before{background:#177ddc}.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:0 0}.ant-tree-checkbox{box-sizing:border-box;color:rgba(255,255,255,.85);font-size:14px;font-variant:tabular-nums;position:relative;line-height:1;white-space:nowrap;outline:0;cursor:pointer}.ant-tree-checkbox-input:focus+.ant-tree-checkbox-inner,.ant-tree-checkbox-wrapper:hover .ant-tree-checkbox-inner,.ant-tree-checkbox:hover .ant-tree-checkbox-inner{border-color:#177ddc}.ant-tree-checkbox-checked::after{position:absolute;top:0;left:0;width:100%;height:100%;border:1px solid #177ddc;border-radius:2px;visibility:hidden;animation:antCheckboxEffect .36s ease-in-out;animation-fill-mode:backwards;content:''}.ant-tree-checkbox-wrapper:hover .ant-tree-checkbox::after,.ant-tree-checkbox:hover::after{visibility:visible}.ant-tree-checkbox-inner{position:relative;top:0;left:0;display:block;width:16px;height:16px;direction:ltr;background-color:transparent;border:1px solid #434343;border-radius:2px;border-collapse:separate;transition:all .3s}.ant-tree-checkbox-inner::after{position:absolute;top:50%;left:22%;display:table;width:5.71px;height:9.14px;border:2px solid #fff;border-top:0;border-left:0;transform:rotate(45deg) scale(0) translate(-50%,-50%);opacity:0;transition:all .1s cubic-bezier(.71,-.46,.88,.6),opacity .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-disabled,.ant-tree-checkbox-disabled .ant-tree-checkbox-input,.ant-tree-checkbox-disabled+span{cursor:not-allowed}.ant-tree-checkbox-checked .ant-tree-checkbox-inner::after{position:absolute;display:table;border:2px solid #fff;border-top:0;border-left:0;transform:rotate(45deg) scale(1) translate(-50%,-50%);opacity:1;transition:all .2s cubic-bezier(.12,.4,.29,1.46) .1s;content:' '}.ant-select-tree,.ant-tree{transition:background-color .3s}.ant-tree-checkbox-checked .ant-tree-checkbox-inner{background-color:#177ddc;border-color:#177ddc}.ant-tree-checkbox-disabled.ant-tree-checkbox-checked .ant-tree-checkbox-inner::after{border-color:rgba(255,255,255,.3);animation-name:none}.ant-tree-checkbox-disabled .ant-tree-checkbox-inner{background-color:rgba(255,255,255,.08);border-color:#434343!important}.ant-tree-checkbox-disabled .ant-tree-checkbox-inner::after{border-color:rgba(255,255,255,.08);border-collapse:separate;animation-name:none}.ant-tree-checkbox-disabled+span{color:rgba(255,255,255,.3)}.ant-tree-checkbox-disabled:hover::after,.ant-tree-checkbox-wrapper:hover .ant-tree-checkbox-disabled::after{visibility:hidden}.ant-tree-checkbox-wrapper{box-sizing:border-box;margin:0;color:rgba(255,255,255,.85);font-size:14px;font-variant:tabular-nums;display:inline-flex;align-items:baseline;line-height:unset;cursor:pointer}.ant-tree-checkbox-wrapper::after{display:inline-block;width:0;overflow:hidden;content:'\a0'}.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,.ant-tree-checkbox-group{padding:0;color:rgba(255,255,255,.85);font-size:14px;line-height:1.5715;box-sizing:border-box;font-variant:tabular-nums;list-style:none;font-feature-settings:tnum}.ant-tree-checkbox-group{margin:0;display:inline-block}.ant-tree-checkbox-group-item{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:transparent;border-color:#434343}.ant-tree-checkbox-indeterminate .ant-tree-checkbox-inner::after{top:50%;left:50%;width:8px;height:8px;background-color:#177ddc;border:0;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(255,255,255,.3);border-color:rgba(255,255,255,.3)}.ant-tree-checkbox-group-rtl .ant-tree-checkbox-group-item{margin-right:0;margin-left:8px}.ant-tree-checkbox-group-rtl .ant-tree-checkbox-group-item:last-child{margin-left:0!important}.ant-tree-checkbox-group-rtl .ant-tree-checkbox-group-item+.ant-tree-checkbox-group-item{margin-left:8px}.ant-tree{margin:0;background:0 0;border-radius:2px}.ant-tree-focused:not(:hover):not(.ant-tree-active-focused){background:#111b26}.ant-tree.ant-tree-block-node .ant-tree-list-holder-inner{align-items:stretch}.ant-tree-select-dropdown .ant-select-tree-list-holder-inner .ant-select-tree-treenode .ant-select-tree-node-content-wrapper,.ant-tree.ant-tree-block-node .ant-tree-list-holder-inner .ant-tree-node-content-wrapper{flex:auto}.ant-tree .ant-tree-treenode{display:flex;align-items:flex-start;padding:0 0 4px;outline:0}.ant-tree .ant-tree-treenode-disabled .ant-tree-node-content-wrapper{color:rgba(255,255,255,.3);cursor:not-allowed}.ant-tree .ant-tree-treenode-disabled .ant-tree-node-content-wrapper:hover{background:0 0}.ant-tree .ant-tree-treenode-active .ant-tree-node-content-wrapper{background:rgba(255,255,255,.08)}.ant-tree .ant-tree-treenode:not(.ant-tree .ant-tree-treenode-disabled).filter-node .ant-tree-title{color:inherit;font-weight:500}.ant-tree-indent{align-self:stretch;white-space:nowrap;user-select:none}.ant-tree-indent-unit{display:inline-block;width:24px}.ant-tree-switcher{position:relative;flex:none;align-self:stretch;width:24px;margin:0;line-height:24px;text-align:center;cursor:pointer;user-select:none}.ant-tree-switcher .ant-select-tree-switcher-icon,.ant-tree-switcher .ant-tree-switcher-icon{display:inline-block;font-size:10px;vertical-align:baseline}.ant-tree-switcher .ant-select-tree-switcher-icon svg,.ant-tree-switcher .ant-tree-switcher-icon svg{transition:transform .3s}.ant-tree-switcher-noop{cursor:default}.ant-tree-switcher_close .ant-tree-switcher-icon svg{transform:rotate(-90deg)}.ant-tree-switcher-loading-icon{color:#177ddc}.ant-tree-switcher-leaf-line{position:relative;z-index:1;display:inline-block;width:100%;height:100%}.ant-tree-switcher-leaf-line::after,.ant-tree-switcher-leaf-line::before{position:absolute;margin-left:-1px;content:' '}.ant-tree-switcher-leaf-line::before{top:0;bottom:-4px;border-left:1px solid #d9d9d9}.ant-tree-switcher-leaf-line::after{width:10px;height:14px;border-bottom:1px solid #d9d9d9}.ant-tree-checkbox{top:initial;margin:4px 8px 0 0}.ant-tree .ant-tree-node-content-wrapper{position:relative;z-index:auto;min-height:24px;margin:0;padding:0 4px;color:inherit;line-height:24px;background:0 0;border-radius:2px;cursor:pointer;transition:all .3s,border 0s,line-height 0s,box-shadow 0s}.ant-tree .ant-tree-node-content-wrapper:hover{background-color:rgba(255,255,255,.08)}.ant-tree .ant-tree-node-content-wrapper.ant-tree-node-selected{background-color:#11263c}.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,.ant-tree-show-line .ant-tree-indent-unit-end::before{display:none}.ant-tree-unselectable .ant-tree-node-content-wrapper:hover{background-color:transparent}.ant-tree-node-content-wrapper[draggable=true]{line-height:24px;user-select:none}.ant-tree-node-content-wrapper[draggable=true] .ant-tree-drop-indicator{position:absolute;z-index:1;height:2px;background-color:#177ddc;border-radius:1px;pointer-events:none}.ant-tree-node-content-wrapper[draggable=true] .ant-tree-drop-indicator::after{position:absolute;top:-3px;left:-6px;width:8px;height:8px;background-color:transparent;border:2px solid #177ddc;border-radius:50%;content:''}.ant-tree .ant-tree-treenode.drop-container>[draggable]{box-shadow:0 0 0 2px #177ddc}.ant-tree-show-line .ant-tree-indent-unit{position:relative;height:100%}.ant-tree-show-line .ant-tree-indent-unit::before{position:absolute;top:0;right:12px;bottom:-4px;border-right:1px solid #434343;content:''}.ant-tree-show-line .ant-tree-switcher{background:#141414}.ant-tree-show-line .ant-tree-switcher-line-icon{vertical-align:-.225em}.ant-tree-rtl .ant-tree-node-content-wrapper[draggable=true] .ant-tree-drop-indicator::after{right:-6px;left:unset}.ant-tree-rtl .ant-tree-switcher_close .ant-tree-switcher-icon svg{transform:rotate(90deg)}.ant-tree-rtl.ant-tree-show-line .ant-tree-indent-unit::before{right:auto;left:-13px;border-right:none;border-left:1px solid #434343}.ant-tree-rtl.ant-tree-checkbox,.ant-tree-select-dropdown-rtl .ant-select-tree-checkbox{margin:4px 0 0 8px}.font-highlight{color:#a61d24}.ant-select-tree,.ant-select-tree-checkbox,.ant-select-tree-checkbox-group,.ant-select-tree-checkbox-wrapper{color:rgba(255,255,255,.85);font-size:14px}.ant-tree-child-tree{overflow:hidden}nz-tree{display:block}.ant-select-tree-checkbox{box-sizing:border-box;padding:0;font-variant:tabular-nums;list-style:none;font-feature-settings:tnum;position:relative;line-height:1;white-space:nowrap;outline:0;cursor:pointer}.ant-select-tree-checkbox-input:focus+.ant-select-tree-checkbox-inner,.ant-select-tree-checkbox-wrapper:hover .ant-select-tree-checkbox-inner,.ant-select-tree-checkbox:hover .ant-select-tree-checkbox-inner{border-color:#177ddc}.ant-select-tree-checkbox-checked::after{position:absolute;top:0;left:0;width:100%;height:100%;border:1px solid #177ddc;border-radius:2px;visibility:hidden;animation:antCheckboxEffect .36s ease-in-out;animation-fill-mode:backwards;content:''}.ant-select-tree-checkbox-wrapper:hover .ant-select-tree-checkbox::after,.ant-select-tree-checkbox:hover::after{visibility:visible}.ant-input-number__hide-step .ant-input-number-handler-wrap,.ant-select-tree-checkbox-disabled:hover::after,.ant-select-tree-checkbox-wrapper:hover .ant-select-tree-checkbox-disabled::after,.exception__img-block::after{visibility:hidden}.ant-select-tree-checkbox-inner{position:relative;top:0;left:0;display:block;width:16px;height:16px;direction:ltr;background-color:transparent;border:1px solid #434343;border-radius:2px;border-collapse:separate;transition:all .3s}.ant-picker-calendar-rtl,.ant-result-rtl,.ant-select-tree-checkbox-rtl,.ant-space-rtl,.ant-tree-select-dropdown-rtl,.avatar-list-rtl,.error-collect-rtl,.exception-rtl,.global-footer-rtl,.loading-default-rtl,.onboarding-rtl,.page-header-rtl,.result-rtl,.setting-drawer-rtl,.tag-select-rtl{direction:rtl}.ant-select-tree-checkbox-inner::after{position:absolute;top:50%;left:22%;display:table;width:5.71px;height:9.14px;border:2px solid #fff;border-top:0;border-left:0;transform:rotate(45deg) scale(0) translate(-50%,-50%);opacity:0;transition:all .1s cubic-bezier(.71,-.46,.88,.6),opacity .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;transform:rotate(45deg) scale(1) translate(-50%,-50%);opacity:1;transition:all .2s cubic-bezier(.12,.4,.29,1.46) .1s;content:' '}.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner{background-color:#177ddc;border-color:#177ddc}.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(255,255,255,.3);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:rgba(255,255,255,.08);border-color:#434343!important}.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner::after{border-color:rgba(255,255,255,.08);border-collapse:separate;animation-name:none}.ant-select-tree-checkbox-disabled+span{color:rgba(255,255,255,.3);cursor:not-allowed}.ant-select-tree-checkbox-wrapper{box-sizing:border-box;margin:0;padding:0;font-variant:tabular-nums;list-style:none;font-feature-settings:tnum;display:inline-flex;align-items:baseline;line-height:unset;cursor:pointer}.ant-select-tree-checkbox-wrapper::after{display:inline-block;width:0;overflow:hidden;content:'\a0'}.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{box-sizing:border-box;margin:0;padding:0;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:tnum;display:inline-block}.ant-select-tree-checkbox-group-item{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:transparent;border-color:#434343}.ant-select-tree-checkbox-indeterminate .ant-select-tree-checkbox-inner::after{top:50%;left:50%;width:8px;height:8px;background-color:#177ddc;border:0;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(255,255,255,.3);border-color:rgba(255,255,255,.3)}.ant-select-tree-checkbox-group-rtl .ant-select-tree-checkbox-group-item{margin-right:0;margin-left:8px}.ant-select-tree-checkbox-group-rtl .ant-select-tree-checkbox-group-item:last-child{margin-left:0!important}.ant-select-tree-checkbox-group-rtl .ant-select-tree-checkbox-group-item+.ant-select-tree-checkbox-group-item{margin-left:8px}.ant-tree-select-dropdown{padding:8px 4px 0}.ant-tree-select-dropdown .ant-select-tree{border-radius:0}.ant-tree-select-dropdown .ant-select-tree-list-holder-inner{align-items:stretch}.ant-tree-select-dropdown .ant-select-tree-list-holder-inner .ant-select-tree-treenode{padding-bottom:8px}.ant-picker-calendar,.ant-select-tree{padding:0;line-height:1.5715;box-sizing:border-box;font-variant:tabular-nums;font-feature-settings:tnum;list-style:none}.ant-select-tree{margin:0;background:0 0;border-radius:2px}.ant-select-tree-focused:not(:hover):not(.ant-select-tree-active-focused){background:#111b26}.ant-select-tree-list-holder-inner{align-items:flex-start}.ant-select-tree.ant-select-tree-block-node .ant-select-tree-list-holder-inner{align-items:stretch}.ant-select-tree.ant-select-tree-block-node .ant-select-tree-list-holder-inner .ant-select-tree-node-content-wrapper{flex:auto}.ant-select-tree .ant-select-tree-treenode{display:flex;align-items:flex-start;padding:0 0 4px;outline:0}.ant-select-tree .ant-select-tree-treenode-disabled .ant-select-tree-node-content-wrapper{color:rgba(255,255,255,.3);cursor:not-allowed}.ant-select-tree .ant-select-tree-treenode-disabled .ant-select-tree-node-content-wrapper:hover{background:0 0}.ant-select-tree .ant-select-tree-treenode-active .ant-select-tree-node-content-wrapper{background:rgba(255,255,255,.08)}.ant-select-tree .ant-select-tree-treenode:not(.ant-select-tree .ant-select-tree-treenode-disabled).filter-node .ant-select-tree-title{color:inherit;font-weight:500}.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 .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 .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,.ant-select-tree-switcher-loading-icon{color:#177ddc}.ant-select-tree-indent{align-self:stretch;white-space:nowrap;user-select:none}.ant-select-tree-indent-unit{display:inline-block;width:24px}.ant-select-tree-switcher{position:relative;flex:none;align-self:stretch;width:24px;margin:0;line-height:24px;text-align:center;cursor:pointer;user-select:none}.ant-select-tree-switcher .ant-select-tree-switcher-icon,.ant-select-tree-switcher .ant-tree-switcher-icon{display:inline-block;font-size:10px;vertical-align:baseline}.ant-select-tree-switcher .ant-select-tree-switcher-icon svg,.ant-select-tree-switcher .ant-tree-switcher-icon svg{transition:transform .3s}.ant-select-tree-switcher-noop{cursor:default}.ant-select-tree-switcher_close .ant-select-tree-switcher-icon svg{transform:rotate(-90deg)}.ant-select-tree-switcher-leaf-line{position:relative;z-index:1;display:inline-block;width:100%;height:100%}.ant-select-tree-switcher-leaf-line::before{position:absolute;top:0;bottom:-4px;margin-left:-1px;border-left:1px solid #d9d9d9;content:' '}.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-checkbox{top:initial;margin:4px 8px 0 0}.ant-select-tree .ant-select-tree-node-content-wrapper{position:relative;z-index:auto;min-height:24px;margin:0;padding:0 4px;color:inherit;line-height:24px;background:0 0;border-radius:2px;cursor:pointer;transition:all .3s,border 0s,line-height 0s,box-shadow 0s}.ant-select-tree .ant-select-tree-node-content-wrapper:hover,.g2-mini-progress__wrap{background-color:rgba(255,255,255,.08)}.ant-select-tree .ant-select-tree-node-content-wrapper.ant-select-tree-node-selected{background-color:#11263c}.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,.ant-select-tree-show-line .ant-select-tree-indent-unit-end::before{display:none}.ant-select-tree-unselectable .ant-select-tree-node-content-wrapper:hover{background-color:transparent}.ant-select-tree-node-content-wrapper[draggable=true]{line-height:24px;user-select:none}.ant-select-tree-node-content-wrapper[draggable=true] .ant-tree-drop-indicator{position:absolute;z-index:1;height:2px;background-color:#177ddc;border-radius:1px;pointer-events:none}.ant-select-tree-node-content-wrapper[draggable=true] .ant-tree-drop-indicator::after{position:absolute;top:-3px;left:-6px;width:8px;height:8px;background-color:transparent;border:2px solid #177ddc;border-radius:50%;content:''}.ant-select-tree .ant-select-tree-treenode.drop-container>[draggable]{box-shadow:0 0 0 2px #177ddc}.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:0;right:12px;bottom:-4px;border-right:1px solid #434343;content:''}.ant-select-tree-show-line .ant-select-tree-switcher{background:#141414}.ant-select-tree-show-line .ant-select-tree-switcher-line-icon{vertical-align:-.225em}.ant-tree-select-dropdown-rtl .ant-select-tree .ant-select-tree-switcher_close .ant-select-tree-switcher-icon svg{transform:rotate(90deg)}.ant-tree-select-dropdown-rtl .ant-select-tree .ant-select-tree-switcher-loading-icon{transform:scaleY(-1)}.ant-tree.ant-select-tree.ant-tree-show-line nz-tree-node[builtin]:not(:last-child)>li::before{content:' ';width:1px;border-left:1px solid #d9d9d9;height:calc(100% - 16px);position:absolute;left:12px;margin:26px 0}.ant-select-dropdown.ant-select-tree-dropdown{top:100%;left:0;position:relative;width:100%;margin-top:4px;margin-bottom:4px;overflow:auto}.ant-picker-calendar{margin:0;color:rgba(255,255,255,.85);font-size:14px;background:#141414}.ant-picker-calendar-header{display:flex;justify-content:flex-end;padding:12px 0}.ant-picker-calendar .ant-picker-panel .ant-picker-body,.task__item{padding:8px 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:#141414;border:0;border-top:1px solid #303030;border-radius:0}.ant-picker-calendar .ant-picker-panel .ant-picker-date-panel,.ant-picker-calendar .ant-picker-panel .ant-picker-month-panel{width:auto}.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:#141414;border:0}.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell .ant-picker-calendar-date-today::before,.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell::before{display:none}.ant-picker-calendar-full .ant-picker-panel .ant-picker-body td,.ant-picker-calendar-full .ant-picker-panel .ant-picker-body th{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:hover .ant-picker-calendar-date{background:rgba(255,255,255,.08)}.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 .ant-picker-calendar-date-today,.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:hover .ant-picker-calendar-date-today{background:#111b26}.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 #303030;border-radius:0;transition:background .3s}.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-value{line-height:24px;transition:color .3s}.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-content{position:static;width:auto;height:86px;overflow-y:auto;color:rgba(255,255,255,.85);line-height:1.5715;text-align:left}.ant-image,.half-float,.row-masonry{position:relative}.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-today{border-color:#177ddc}.modal-header,.st .ant-table-tbody>tr .ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td{border-bottom:1px solid #303030}.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-today .ant-picker-calendar-date-value{color:rgba(255,255,255,.85)}@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 .ant-picker-calendar-header .ant-picker-calendar-mode-switch,.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-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}.ant-result{padding:48px 32px}.ant-result-success .ant-result-icon>.anticon{color:#49aa19}.ant-result-error .ant-result-icon>.anticon{color:#a61d24}.ant-result-info .ant-result-icon>.anticon{color:#177ddc}.ant-result-warning .ant-result-icon>.anticon{color:#d89614}.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(255,255,255,.85);font-size:24px;line-height:1.8;text-align:center}.ant-result-subtitle{color:rgba(255,255,255,.45);font-size:14px;line-height:1.6;text-align:center}.ant-result-extra{margin:24px 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}.ant-result-rtl .ant-result-extra>*{margin-right:0;margin-left:8px}.ant-result-rtl .ant-result-extra>:last-child{margin-left:0}nz-result{display:block}.ant-space{display:inline-flex}.ant-space-vertical{flex-direction:column}.ant-space-align-center{align-items:center}.ant-space-align-start{align-items:flex-start}.ant-space-align-end{align-items:flex-end}.ant-space-align-baseline{align-items:baseline}.ant-space-item:empty{display:none}nz-space-item{display:block}.ant-image{display:inline-block}.ant-image-mask,.ant-image-placeholder{position:absolute;left:0;top:0;right:0;bottom:0}.ant-image-img{display:block;width:100%;height:auto}.ant-image-img-placeholder{background-color:#f5f5f5;background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTQuNSAyLjVoLTEzQS41LjUgMCAwIDAgMSAzdjEwYS41LjUgMCAwIDAgLjUuNWgxM2EuNS41IDAgMCAwIC41LS41VjNhLjUuNSAwIDAgMC0uNS0uNXpNNS4yODEgNC43NWExIDEgMCAwIDEgMCAyIDEgMSAwIDAgMSAwLTJ6bTguMDMgNi44M2EuMTI3LjEyNyAwIDAgMS0uMDgxLjAzSDIuNzY5YS4xMjUuMTI1IDAgMCAxLS4wOTYtLjIwN2wyLjY2MS0zLjE1NmEuMTI2LjEyNiAwIDAgMSAuMTc3LS4wMTZsLjAxNi4wMTZMNy4wOCAxMC4wOWwyLjQ3LTIuOTNhLjEyNi4xMjYgMCAwIDEgLjE3Ny0uMDE2bC4wMTUuMDE2IDMuNTg4IDQuMjQ0YS4xMjcuMTI3IDAgMCAxLS4wMi4xNzV6IiBmaWxsPSIjOEM4QzhDIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48L3N2Zz4=);background-repeat:no-repeat;background-position:center center;background-size:30%}.ant-image-mask{display:flex;align-items:center;justify-content:center;color:#fff;background:rgba(0,0,0,.5);cursor:pointer;opacity:0;transition:opacity .3s}.ant-image-mask:hover,.cdk-overlay-backdrop.ant-image-preview-mask,.img-thm:hover .img-thm__icon,.loading-backdrop{opacity:1}.ant-image-preview-img,.ant-image-preview-img-wrapper{transition:transform .3s cubic-bezier(.215,.61,.355,1) 0s}.ant-image-mask-info .anticon{margin-inline-end:4px}.ant-image-preview{pointer-events:none;height:100%;text-align:center}.ant-image-preview.ant-zoom-enter,.ant-image-preview.antzoom-appear{transform:none;opacity:0;animation-duration:.3s;user-select:none}.ant-image-preview-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;height:100%;background-color:rgba(0,0,0,.45)}.ant-image-preview-mask-hidden{display:none}.ant-image-preview-wrap{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;outline:0;-webkit-overflow-scrolling:touch;z-index:1080}.ant-image-preview-body{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.ant-image-preview-img{max-width:100%;max-height:100%;vertical-align:middle;transform:scale3d(1,1,1);cursor:grab;user-select:none;pointer-events:auto}.ant-image-preview-img-wrapper{position:absolute;top:0;right:0;bottom:0;left:0}.ant-image-preview-img-wrapper::before{display:inline-block;width:1px;height:50%;margin-right:-1px;content:''}.ant-image-preview-moving .ant-image-preview-img{cursor:grabbing}.ant-image-preview-moving .ant-image-preview-img-wrapper{transition-duration:0s}.ant-image-preview-operations{box-sizing:border-box;margin:0;padding:0;font-size:14px;font-variant:tabular-nums;line-height:1.5715;font-feature-settings:tnum;position:absolute;top:0;right:0;z-index:1;display:flex;flex-direction:row-reverse;align-items:center;width:100%;color:rgba(255,255,255,.85);list-style:none;background:rgba(0,0,0,.1);pointer-events:auto}.ant-image-preview-operations-icon,.ant-image-preview-switch-left>.anticon,.ant-image-preview-switch-right>.anticon{font-size:18px}.ant-image-preview-operations-operation{margin-left:12px;padding:12px;cursor:pointer}.ant-image-preview-operations-operation-disabled{color:rgba(255,255,255,.25);pointer-events:none}.ant-image-preview-operations-operation:last-of-type{margin-left:0}.ant-image-preview-switch-left,.ant-image-preview-switch-right{position:absolute;top:50%;right:10px;z-index:1;display:flex;align-items:center;justify-content:center;width:44px;height:44px;margin-top:-22px;color:rgba(255,255,255,.85);background:rgba(0,0,0,.1);border-radius:50%;cursor:pointer;pointer-events:auto}.ant-image-preview-switch-left-disabled,.ant-image-preview-switch-right-disabled{color:rgba(255,255,255,.25);cursor:not-allowed}.ant-image-preview-switch-left-disabled>.anticon,.ant-image-preview-switch-right-disabled>.anticon{cursor:not-allowed}.ant-image-preview-switch-left{left:10px}.ant-image-preview-switch-right{right:10px}sf+st{margin-top:16px}.ant-btn+.ant-btn,.ant-btn+nz-button-group,.ant-btn+nz-dropdown,.ant-btn+nz-popconfirm,nz-button-group+.ant-btn,nz-button-group+nz-popconfirm,nz-dropdown+.ant-btn,nz-popconfirm+.ant-btn,nz-popconfirm+nz-button-group,nz-popconfirm+nz-popconfirm{margin-left:8px}.ant-btn-group .ant-btn+.ant-btn{margin-left:-1px}.ant-transfer-operation .ant-btn+.ant-btn{margin-left:initial}[dir=rtl] .ant-btn+.ant-btn,[dir=rtl] .ant-btn+nz-button-group,[dir=rtl] .ant-btn+nz-dropdown,[dir=rtl] .ant-btn+nz-popconfirm,[dir=rtl] nz-button-group+.ant-btn,[dir=rtl] nz-button-group+nz-popconfirm,[dir=rtl] nz-dropdown+.ant-btn,[dir=rtl] nz-popconfirm+.ant-btn,[dir=rtl] nz-popconfirm+nz-button-group,[dir=rtl] nz-popconfirm+nz-popconfirm{margin-right:8px;margin-left:inherit}a:focus{text-decoration:none}.ant-card{margin-bottom:16px}.ant-card__body-nopadding .ant-card-body{padding:0!important}@media (min-width:300px){.ant-drawer-left .drawer-sm,.ant-drawer-right .drawer-sm{width:auto!important;max-width:300px}}@media (max-width:299px){.ant-drawer-left .drawer-sm,.ant-drawer-right .drawer-sm{width:100%!important}}@media (min-width:600px){.ant-drawer-left .drawer-md,.ant-drawer-right .drawer-md{width:auto!important;max-width:600px}}@media (max-width:599px){.ant-drawer-left .drawer-md,.ant-drawer-right .drawer-md{width:100%!important}}@media (min-width:900px){.ant-drawer-left .drawer-lg,.ant-drawer-right .drawer-lg{width:auto!important;max-width:900px}}@media (max-width:899px){.ant-drawer-left .drawer-lg,.ant-drawer-right .drawer-lg{width:100%!important}}@media (min-width:1200px){.ant-drawer-left .drawer-xl,.ant-drawer-right .drawer-xl{width:auto!important;max-width:1200px}}@media (max-width:1199px){.ant-drawer-left .drawer-xl,.ant-drawer-right .drawer-xl{width:100%!important}}.drawer-footer{position:absolute;bottom:0;left:0;width:100%;padding:10px 24px;text-align:right;background:#1f1f1f;border-radius:0 0 2px 2px}.ant-form-item-label em{color:#bfbfbf}.ant-form-item-control em{margin-left:8px}[dir=rtl] .ant-form-item-control em{margin-right:8px;margin-left:inherit}@media (min-width:576px){.modal-sm .ant-modal{width:auto!important;max-width:300px}}@media (min-width:768px){.modal-md .ant-modal{width:auto!important;max-width:600px}}@media (min-width:992px){.modal-lg .ant-modal{width:auto!important;max-width:900px}}@media (min-width:1600px){.modal-xl .ant-modal{width:auto!important;max-width:1200px}}.modal-header{display:flex;justify-content:space-between;margin:-24px -24px 24px;padding:16px 24px;background:#141414;border-radius:2px 2px 0 0}.modal-title{margin:0;color:rgba(255,255,255,.85);font-weight:500;font-size:16px;line-height:22px;word-wrap:break-word}.modal-title small{margin-left:8px;color:#8c8c8c;font-size:12px}.modal-spin{display:block;min-height:150px;line-height:150px;text-align:center}.modal-footer{margin:24px -24px -24px;padding:10px 16px;text-align:right;border-radius:0 0 2px 2px}.modal-include-tabs nz-tabset{margin-top:-16px}.modal-body-nopadding .ant-modal-body{padding:0!important}.ant-table td .img,.ant-table td>img{max-width:32px;max-height:32px;margin-right:4px;vertical-align:middle;border-radius:4px}.ant-table-rep__hide-header-footer .ant-table-footer,.ant-table-rep__hide-header-footer .ant-table-title,.ant-table-rep__title{display:none}[dir=rtl] .ant-table td .img,[dir=rtl] .ant-table td>img{margin-right:inherit;margin-left:4px}@media screen and (max-width:767px){.ant-table-rep__title{display:inline-block;width:100px;padding-right:8px;color:rgba(179,179,179,.85);text-align:right}.ant-table-rep__hide-header-footer .ant-table-footer,.ant-table-rep__hide-header-footer .ant-table-title{display:block}.ant-table-rep .ant-table table{width:100%!important;table-layout:auto!important}.ant-table-rep .ant-table-thead{display:none}.ant-table-rep .ant-table-title{text-align:center;background:#303030}.ant-table-rep .ant-table-tbody>tr:nth-child(4n+3){background:#0c0c0c}.ant-table-rep .ant-table-tbody>tr>td{display:flex;align-items:center;width:100%;padding:8px;white-space:inherit;text-align:left!important;border-bottom:none}.ant-table-rep .ant-table-tbody>tr>td .ant-table-rep__title+:not(.ant-avatar){flex:1;word-break:break-all}}.ant-tag__plus .ant-tag{background:#fff;border-style:dashed}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small{font-size:65%}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small{font-size:75%}.h1{font-size:34px}.h2{font-size:26px}.h3{font-size:22px}.h4{font-size:18px}.h5{font-size:16px}.h6{font-size:14px}.list-styled{list-style:inherit;padding-right:18px;padding-left:0}.list-unstyled{list-style:none;padding-right:0;padding-left:inherit}fieldset{border:none}.display-1{font-size:32px}.display-2{font-size:24px}.display-3{font-size:20px}.search__form .ant-form-item{margin-right:0;margin-bottom:24px}.search__form .ant-form-item-control{flex:1}.file-manager,.sf__object-card .sf__fixed{flex-wrap:wrap}.half-float img{display:block;max-width:100%;height:auto}.half-float .half-float-bottom{position:absolute;left:50%;z-index:2}.half-float.half-float-sm{margin-bottom:42px}.half-float.half-float-sm .half-float-bottom{bottom:-32px;width:64px;height:64px;margin-left:-32px}.half-float.half-float-md{margin-bottom:50px}.half-float.half-float-md .half-float-bottom{bottom:-40px;width:80px;height:80px;margin-left:-40px}.half-float.half-float-lg{margin-bottom:58px}.half-float.half-float-lg .half-float-bottom{bottom:-48px;width:96px;height:96px;margin-left:-48px}.row-masonry{width:100%;margin:0;padding:0;column-gap:16px}.row-masonry>.col-masonry{display:inline-block;width:100%;min-height:1em;margin-bottom:15px}.sf__array>.ant-form-item,.sf__title{margin-bottom:8px}.row-masonry img{max-width:100%}@media only screen and (min-width:480px){.row-masonry-xs-1{column-count:1;columns:1}.row-masonry-xs-2{column-count:2;columns:2}.row-masonry-xs-3{column-count:3;columns:3}.row-masonry-xs-4{column-count:4;columns:4}.row-masonry-xs-5{column-count:5;columns:5}.row-masonry-xs-6{column-count:6;columns:6}.row-masonry-xs-7{column-count:7;columns:7}.row-masonry-xs-8{column-count:8;columns:8}.row-masonry-xs-9{column-count:9;columns:9}}@media only screen and (min-width:576px){.row-masonry-sm-1{column-count:1;columns:1}.row-masonry-sm-2{column-count:2;columns:2}.row-masonry-sm-3{column-count:3;columns:3}.row-masonry-sm-4{column-count:4;columns:4}.row-masonry-sm-5{column-count:5;columns:5}.row-masonry-sm-6{column-count:6;columns:6}.row-masonry-sm-7{column-count:7;columns:7}.row-masonry-sm-8{column-count:8;columns:8}.row-masonry-sm-9{column-count:9;columns:9}}@media only screen and (min-width:768px){.row-masonry-md-1{column-count:1;columns:1}.row-masonry-md-2{column-count:2;columns:2}.row-masonry-md-3{column-count:3;columns:3}.row-masonry-md-4{column-count:4;columns:4}.row-masonry-md-5{column-count:5;columns:5}.row-masonry-md-6{column-count:6;columns:6}.row-masonry-md-7{column-count:7;columns:7}.row-masonry-md-8{column-count:8;columns:8}.row-masonry-md-9{column-count:9;columns:9}}@media only screen and (min-width:992px){.row-masonry-lg-1{column-count:1;columns:1}.row-masonry-lg-2{column-count:2;columns:2}.row-masonry-lg-3{column-count:3;columns:3}.row-masonry-lg-4{column-count:4;columns:4}.row-masonry-lg-5{column-count:5;columns:5}.row-masonry-lg-6{column-count:6;columns:6}.row-masonry-lg-7{column-count:7;columns:7}.row-masonry-lg-8{column-count:8;columns:8}.row-masonry-lg-9{column-count:9;columns:9}}@media only screen and (min-width:1200px){.row-masonry-xl-1{column-count:1;columns:1}.row-masonry-xl-2{column-count:2;columns:2}.row-masonry-xl-3{column-count:3;columns:3}.row-masonry-xl-4{column-count:4;columns:4}.row-masonry-xl-5{column-count:5;columns:5}.row-masonry-xl-6{column-count:6;columns:6}.row-masonry-xl-7{column-count:7;columns:7}.row-masonry-xl-8{column-count:8;columns:8}.row-masonry-xl-9{column-count:9;columns:9}}.header-dropdown{background-color:#1f1f1f;border-radius:4px}@media screen and (max-width:480px){.header-dropdown{right:0!important;left:0!important;width:100%!important;border-radius:0!important}}.sf{display:block}.sf__optional{margin-left:2px;color:rgba(128,128,128,.85)}.sf__fixed{display:flex}.sf__title{padding:0 16px;font-weight:700;text-align:left}.sf__object-card .ant-card-body{padding-left:0}.sf__object-card-fold .ant-card-body{display:none}.sf__array-add{margin-right:16px}.sf__array-container .ant-card{margin:0 16px 16px 0}.sf__array-container .ant-card-body{padding-bottom:0}.sf__array-container .ant-card .sf__array-remove{position:absolute;top:-16px;right:-16px;display:none;width:32px;height:32px;font-size:20px;line-height:32px;text-align:center;background:rgba(0,0,0,.66);border-radius:50%;cursor:pointer}.sf__array-container .ant-card .sf__array-remove i{color:#fff}.sf__array-container .ant-card:hover .sf__array-remove{display:block}@media (max-width:767px){.sf__array>.ant-form-item>.ant-form-item-control-wrapper,.sf__array>.ant-form-item>.ant-form-item-label{flex:0 0 100%;max-width:100%}.sf__array>.ant-form-item>.ant-form-item-label{display:flex;margin-bottom:8px}.sf__array-container .ant-card{margin-right:0}.sf__array-container .ant-card .sf__array-remove{right:8px;display:block}.sf__array-container>.sf__array-item{flex:0 0 100%;max-width:100%}}.sf__checkbox-list{display:block;width:100%}@media (min-width:768px){.sf__checkbox-list .ant-col{margin-top:8px}}.sf .ant-upload-select-picture-card i{color:#999;font-size:32px}.sf .ant-upload.ant-upload-drag{height:180px}.sf .ant-transfer-list{background:inherit}.sf .ant-transfer-list-header label{position:unset}.sf .ant-transfer .ant-btn+.ant-btn{margin-left:0}.sf__no-error .ant-form-item{margin-bottom:8px}.sf__inline .sf__item{display:inline-block;margin-bottom:8px;vertical-align:top}.sf__inline .ant-form-inline>.sf__item,.sf__inline .sf__array-container .ant-card-body>.sf__item{margin-bottom:0}.sf__inline .ant-form-inline .ant-select{min-width:100px}.sf__inline .sf__array-container>.sf__array-item{flex:initial;width:100%;max-width:100%}.sf__inline .sf__array-container .ant-card{margin:0}.sf__inline .sf__array-container .ant-card-body{padding:8px 0 0 8px}.sf__inline .sf-btns{margin-right:0}@media (max-width:767px){.sf__inline .sf__item{display:block;width:100%}.sf__inline .sf__item .ant-form-item{display:block!important;width:initial!important;margin-right:0}.sf__inline .ant-form-item-control,.sf__inline .ant-form-item-label{display:block!important;padding:inherit}}.sf__horizontal .ant-form-item-label>label{display:flex;justify-content:flex-end}.sf__horizontal .sf__label-text{overflow:hidden;text-overflow:ellipsis}@media (max-width:767px){.sf__horizontal .ant-form-item-label>label{justify-content:flex-start}}.sf__no-colon .ant-form-item-label label::after{content:' '}.sf__compact .ant-form-item{margin-bottom:8px}.sf__compact .sf__array-container .ant-card{margin:0 8px 8px 0}.sf__compact .sf__array-item .ant-card-body{padding:8px}.acl__hide{display:none!important}.setting-drawer__content{position:relative;min-height:100%;background:#1f1f1f}.setting-drawer__handle,.theme-btn{position:fixed;display:flex;cursor:pointer}.setting-drawer__body-item{display:flex;align-items:center;justify-content:space-between;padding-top:12px;padding-bottom:12px}.setting-drawer__body-item:first-child{padding-top:0}.setting-drawer__body-item:last-child{padding-bottom:0}.setting-drawer__title{margin-bottom:12px;color:rgba(255,255,255,.85);font-size:14px;line-height:22px}.setting-drawer__theme{margin-top:24px;overflow:hidden}.setting-drawer__theme-tag{float:left;width:20px;height:20px;margin-right:8px;color:#fff;font-weight:700;text-align:center;border-radius:2px;cursor:pointer}.setting-drawer__handle{right:0;z-index:999;align-items:center;justify-content:center;font-size:16px;text-align:center;border-radius:4px 0 0 4px;transition:right .3s cubic-bezier(.9,0,.3,.7);pointer-events:auto}.setting-drawer__handle-icon{color:#fff}.setting-drawer__handle-opened{z-index:1001}.setting-drawer-rtl .setting-drawer__handle{right:inherit;left:0;border-radius:0 4px 4px 0}.theme-btn{right:32px;bottom:102px;z-index:2147483640;flex-direction:column}.theme-btn-active{width:44px;height:44px;color:#177ddc;font-size:22px;line-height:44px}.theme-btn .ant-avatar{color:#000;background-color:#fff;box-shadow:0 3px 6px -4px rgba(0,0,0,.48),0 6px 16px 0 rgba(0,0,0,.32),0 9px 28px 8px rgba(0,0,0,.2);transition:color .3s}.theme-btn .ant-avatar:hover,.yn__yes{color:#177ddc}.bg-blue-dark-h,.bg-blue-h,.bg-blue-light-h,.bg-cyan-dark-h,.bg-cyan-h,.bg-cyan-light-h,.bg-error-h,.bg-geekblue-dark-h,.bg-geekblue-h,.bg-geekblue-light-h,.bg-gold-dark-h,.bg-gold-h,.bg-gold-light-h,.bg-green-dark-h,.bg-green-h,.bg-green-light-h,.bg-grey-dark-h,.bg-grey-darker-h,.bg-grey-h,.bg-grey-light-h,.bg-grey-lighter-h,.bg-highlight-h,.bg-info-h,.bg-lime-dark-h,.bg-lime-h,.bg-lime-light-h,.bg-magenta-dark-h,.bg-magenta-h,.bg-magenta-light-h,.bg-normal-h,.bg-orange-dark-h,.bg-orange-h,.bg-orange-light-h,.bg-primary-h,.bg-processing-h,.bg-purple-dark-h,.bg-purple-h,.bg-purple-light-h,.bg-red-dark-h,.bg-red-h,.bg-red-light-h,.bg-success-h,.bg-volcano-dark-h,.bg-volcano-h,.bg-volcano-light-h,.bg-warning-h,.bg-yellow-dark-h,.bg-yellow-h,.bg-yellow-light-h{transition:background-color .3s}.theme-btn-rtl{right:inherit;left:32px}.yn__no,.yn__yes{display:inline-flex;align-items:center;font-style:normal}.yn__no span,.yn__yes span{margin-left:4px}.yn__no{color:#8c8c8c}.pro-passport__langs .anticon,.text-white{color:#fff!important}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.border{border:1px solid #303030!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-1{border:1px solid #303030!important}.rounded-md,.rounded-sm{border-radius:2px}.course__img,.rounded-top-left-md,.rounded-top-left-sm{border-top-left-radius:2px}.course__img,.rounded-top-right-md,.rounded-top-right-sm{border-top-right-radius:2px}.rounded-bottom-left-md,.rounded-bottom-left-sm{border-bottom-left-radius:2px}.rounded-bottom-right-md,.rounded-bottom-right-sm{border-bottom-right-radius:2px}.border-top-1{border-top:1px solid #303030!important}.border-right-1{border-right:1px solid #303030!important}.border-bottom-1{border-bottom:1px solid #303030!important}.border-left-1{border-left:1px solid #303030!important}.border-red{border-color:#d32029!important}.border-volcano{border-color:#d84a1b!important}.border-orange{border-color:#d87a16!important}.border-gold{border-color:#d89614!important}.border-yellow{border-color:#d8bd14!important}.border-lime{border-color:#8bbb11!important}.border-green{border-color:#49aa19!important}.border-cyan{border-color:#13a8a8!important}.border-blue{border-color:#177ddc!important}.border-geekblue{border-color:#2b4acb!important}.border-purple{border-color:#642ab5!important}.border-magenta{border-color:#cb2b83!important}.border-grey{border-color:#bfbfbf!important}.border-primary{border-color:#177ddc!important}.border-success{border-color:#49aa19!important}.border-error{border-color:#a61d24!important}.border-warning{border-color:#d89614!important}.border-info,.border-processing{border-color:#177ddc!important}.border-highlight{border-color:#a61d24!important}.border-normal{border-color:#d9d9d9!important}.rounded-lg{border-radius:4px}.rounded-top-left-lg{border-top-left-radius:4px}.rounded-top-right-lg{border-top-right-radius:4px}.rounded-bottom-left-lg{border-bottom-left-radius:4px}.rounded-bottom-right-lg{border-bottom-right-radius:4px}.rounded-circle{border-radius:50%}.rounded-0{border-radius:0}.border-white{border-color:#fff!important}.rotate-360{transform:rotate(360deg)}.rotate-345{transform:rotate(345deg)}.rotate-330{transform:rotate(330deg)}.rotate-315{transform:rotate(315deg)}.rotate-300{transform:rotate(300deg)}.rotate-285{transform:rotate(285deg)}.rotate-270{transform:rotate(270deg)}.rotate-255{transform:rotate(255deg)}.rotate-240{transform:rotate(240deg)}.rotate-225{transform:rotate(225deg)}.rotate-210{transform:rotate(210deg)}.rotate-195{transform:rotate(195deg)}.rotate-180{transform:rotate(180deg)}.rotate-165{transform:rotate(165deg)}.rotate-150{transform:rotate(150deg)}.rotate-135{transform:rotate(135deg)}.rotate-120{transform:rotate(120deg)}.rotate-105{transform:rotate(105deg)}.rotate-90{transform:rotate(90deg)}.rotate-75{transform:rotate(75deg)}.rotate-60{transform:rotate(60deg)}.rotate-45{transform:rotate(45deg)}.rotate-30{transform:rotate(30deg)}.rotate-15{transform:rotate(15deg)}code{margin:0 4px;padding:2px 4px;font-size:90%;background-color:#f7f7f7;border:1px solid #eee;border-radius:2px}.pr0,.px0{padding-right:0!important}.pl0,.px0,[dir=rtl] .pr0{padding-left:0!important}.pb0,.py0{padding-bottom:0!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.text-hover{cursor:pointer}.text-hover:hover{color:#177ddc!important}.bg-red-light{background-color:#a61d24!important}.bg-red{background-color:#d32029!important}.bg-red-dark{background-color:#e84749!important}.bg-red-light-h:hover{background-color:#a61d24!important}.bg-red-h:hover{background-color:#d32029!important}.bg-red-dark-h:hover{background-color:#e84749!important}.text-red-light{color:#a61d24!important}.text-red{color:#d32029!important}.text-red-dark{color:#e84749!important}.bg-volcano-light{background-color:#aa3e19!important}.bg-volcano{background-color:#d84a1b!important}.bg-volcano-dark{background-color:#e87040!important}.bg-volcano-light-h:hover{background-color:#aa3e19!important}.bg-volcano-h:hover{background-color:#d84a1b!important}.bg-volcano-dark-h:hover{background-color:#e87040!important}.text-volcano-light{color:#aa3e19!important}.text-volcano{color:#d84a1b!important}.text-volcano-dark{color:#e87040!important}.bg-orange-light{background-color:#aa6215!important}.bg-orange{background-color:#d87a16!important}.bg-orange-dark{background-color:#e89a3c!important}.bg-orange-light-h:hover{background-color:#aa6215!important}.bg-orange-h:hover{background-color:#d87a16!important}.bg-orange-dark-h:hover{background-color:#e89a3c!important}.text-orange-light{color:#aa6215!important}.text-orange{color:#d87a16!important}.text-orange-dark{color:#e89a3c!important}.bg-gold-light{background-color:#aa7714!important}.bg-gold{background-color:#d89614!important}.bg-gold-dark{background-color:#e8b339!important}.bg-gold-light-h:hover{background-color:#aa7714!important}.bg-gold-h:hover{background-color:#d89614!important}.bg-gold-dark-h:hover{background-color:#e8b339!important}.text-gold-light{color:#aa7714!important}.text-gold{color:#d89614!important}.text-gold-dark{color:#e8b339!important}.bg-yellow-light{background-color:#aa9514!important}.bg-yellow{background-color:#d8bd14!important}.bg-yellow-dark{background-color:#e8d639!important}.bg-yellow-light-h:hover{background-color:#aa9514!important}.bg-yellow-h:hover{background-color:#d8bd14!important}.bg-yellow-dark-h:hover{background-color:#e8d639!important}.text-yellow-light{color:#aa9514!important}.text-yellow{color:#d8bd14!important}.text-yellow-dark{color:#e8d639!important}.bg-lime-light{background-color:#6f9412!important}.bg-lime{background-color:#8bbb11!important}.bg-lime-dark{background-color:#a9d134!important}.bg-lime-light-h:hover{background-color:#6f9412!important}.bg-lime-h:hover{background-color:#8bbb11!important}.bg-lime-dark-h:hover{background-color:#a9d134!important}.text-lime-light{color:#6f9412!important}.text-lime{color:#8bbb11!important}.text-lime-dark{color:#a9d134!important}.bg-green-light{background-color:#3c8618!important}.bg-green{background-color:#49aa19!important}.bg-green-dark{background-color:#6abe39!important}.bg-green-light-h:hover{background-color:#3c8618!important}.bg-green-h:hover{background-color:#49aa19!important}.bg-green-dark-h:hover{background-color:#6abe39!important}.text-green-light{color:#3c8618!important}.text-green{color:#49aa19!important}.text-green-dark{color:#6abe39!important}.bg-cyan-light{background-color:#138585!important}.bg-cyan{background-color:#13a8a8!important}.bg-cyan-dark{background-color:#33bcb7!important}.bg-cyan-light-h:hover{background-color:#138585!important}.bg-cyan-h:hover{background-color:#13a8a8!important}.bg-cyan-dark-h:hover{background-color:#33bcb7!important}.text-cyan-light{color:#138585!important}.text-cyan{color:#13a8a8!important}.text-cyan-dark{color:#33bcb7!important}.bg-blue-light{background-color:#1765ad!important}.bg-blue{background-color:#177ddc!important}.bg-blue-dark{background-color:#3c9ae8!important}.bg-blue-light-h:hover{background-color:#1765ad!important}.bg-blue-h:hover{background-color:#177ddc!important}.bg-blue-dark-h:hover{background-color:#3c9ae8!important}.text-blue-light{color:#1765ad!important}.text-blue{color:#177ddc!important}.text-blue-dark{color:#3c9ae8!important}.bg-geekblue-light{background-color:#263ea0!important}.bg-geekblue{background-color:#2b4acb!important}.bg-geekblue-dark{background-color:#5273e0!important}.bg-geekblue-light-h:hover{background-color:#263ea0!important}.bg-geekblue-h:hover{background-color:#2b4acb!important}.bg-geekblue-dark-h:hover{background-color:#5273e0!important}.text-geekblue-light{color:#263ea0!important}.text-geekblue{color:#2b4acb!important}.text-geekblue-dark{color:#5273e0!important}.bg-purple-light{background-color:#51258f!important}.bg-purple{background-color:#642ab5!important}.bg-purple-dark{background-color:#854eca!important}.bg-purple-light-h:hover{background-color:#51258f!important}.bg-purple-h:hover{background-color:#642ab5!important}.bg-purple-dark-h:hover{background-color:#854eca!important}.text-purple-light{color:#51258f!important}.text-purple{color:#642ab5!important}.text-purple-dark{color:#854eca!important}.bg-magenta-light{background-color:#a02669!important}.bg-magenta{background-color:#cb2b83!important}.bg-magenta-dark{background-color:#e0529c!important}.bg-magenta-light-h:hover{background-color:#a02669!important}.bg-magenta-h:hover{background-color:#cb2b83!important}.bg-magenta-dark-h:hover{background-color:#e0529c!important}.text-magenta-light{color:#a02669!important}.text-magenta{color:#cb2b83!important}.text-magenta-dark{color:#e0529c!important}.bg-grey-light{background-color:#d9d9d9!important}.bg-grey{background-color:#bfbfbf!important}.bg-grey-dark{background-color:#8c8c8c!important}.bg-grey-light-h:hover{background-color:#d9d9d9!important}.bg-grey-h:hover{background-color:#bfbfbf!important}.bg-grey-dark-h:hover{background-color:#8c8c8c!important}.text-grey-light{color:#d9d9d9!important}.text-grey{color:#bfbfbf!important}.text-grey-dark{color:#8c8c8c!important}.bg-primary-light{background-color:#3c9be8!important}.bg-primary{background-color:#177ddc!important}.bg-primary-dark{background-color:#095cb5!important}.bg-primary-h:hover{background-color:#177ddc!important}.text-primary-light{color:#3c9be8!important}.text-primary{color:#177ddc!important}.text-primary-dark{color:#095cb5!important}.bg-success-light{background-color:#67b839!important}.bg-success{background-color:#49aa19!important}.bg-success-dark{background-color:#31850d!important}.bg-success-h:hover{background-color:#49aa19!important}.text-success-light{color:#67b839!important}.text-success{color:#49aa19!important}.text-success-dark{color:#31850d!important}.bg-error-light{background-color:#b33b3d!important}.bg-error{background-color:#a61d24!important}.bg-error-dark{background-color:#800f19!important}.bg-error-h:hover{background-color:#a61d24!important}.text-error-light{color:#b33b3d!important}.text-error{color:#a61d24!important}.text-error-dark{color:#800f19!important}.bg-warning-light{background-color:#e6b239!important}.bg-warning{background-color:#d89614!important}.bg-warning-dark{background-color:#b37407!important}.bg-warning-h:hover{background-color:#d89614!important}.text-warning-light{color:#e6b239!important}.text-warning{color:#d89614!important}.text-warning-dark{color:#b37407!important}.bg-info-light{background-color:#3c9be8!important}.bg-info{background-color:#177ddc!important}.bg-info-dark{background-color:#095cb5!important}.bg-info-h:hover{background-color:#177ddc!important}.text-info-light{color:#3c9be8!important}.text-info{color:#177ddc!important}.text-info-dark{color:#095cb5!important}.bg-processing-light{background-color:#3c9be8!important}.bg-processing{background-color:#177ddc!important}.bg-processing-dark{background-color:#095cb5!important}.bg-processing-h:hover{background-color:#177ddc!important}.text-processing-light{color:#3c9be8!important}.text-processing{color:#177ddc!important}.text-processing-dark{color:#095cb5!important}.bg-highlight-light{background-color:#b33b3d!important}.bg-highlight{background-color:#a61d24!important}.bg-highlight-dark{background-color:#800f19!important}.bg-highlight-h:hover{background-color:#a61d24!important}.text-highlight-light{color:#b33b3d!important}.text-highlight{color:#a61d24!important}.text-highlight-dark{color:#800f19!important}.bg-normal-light{background-color:#e6d8d8!important}.bg-normal{background-color:#d9d9d9!important}.bg-normal-dark{background-color:#b3a8a8!important}.bg-normal-h:hover{background-color:#d9d9d9!important}.bg-grey-lighter,.bg-grey-lighter-h:hover{background-color:#0f0f0f!important}.text-normal-light{color:#e6d8d8!important}.text-normal{color:#d9d9d9!important}.text-normal-dark{color:#b3a8a8!important}.bg-grey-darker,.bg-grey-darker-h:hover{background-color:#0a0a0a!important}.text-grey-lighter{color:#0f0f0f!important}.text-grey-darker{color:#0a0a0a!important}.d-none{display:none!important}.d-block{display:block!important}.d-inline-block{display:inline-block!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.flex-center,.flex-center-between{display:flex!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center,.flex-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.flex-1{flex:1!important}.flex-column{flex-direction:column!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-center-between{align-items:center!important;justify-content:space-between!important}.float-none{float:none!important}.float-left{float:left!important}.float-right{float:right!important}.icon-sm{font-size:28px!important}.icon-md{font-size:56px!important}.icon-lg{font-size:84px!important}.icon-xl{font-size:112px!important}.icon-xxl{font-size:140px!important}.img-fluid{max-width:100%;height:auto}.point{cursor:pointer}.no-resize{min-width:100%;max-width:100%;resize:none}.no-data{color:rgba(0,0,0,.25);font-size:16px;line-height:64px;text-align:center}.no-data i{position:relative;top:3px;margin-right:16px;font-size:24px}.block-center{margin:0 auto}.mr0,.mx0{margin-right:0!important}.ml0,.mx0{margin-left:0!important}.mt0,.my0{margin-top:0!important}.mb0,.my0{margin-bottom:0!important}.bg-center{background-position:center center;background-size:cover}.page-loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10000;padding-top:200px;text-align:center;background:rgba(255,255,255,.08)}.fixed-bottom,.fixed-top{z-index:9;left:0;right:0}.pt0,.py0{padding-top:0!important}.color-weak{display:block;filter:invert(80%)}.disabled{color:rgba(255,255,255,.3);pointer-events:none}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.fixed-top{position:fixed;top:0}.fixed-bottom{position:fixed;bottom:0}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}@media (max-width:575px){.hidden-xs{display:none!important}}@media (max-width:991px){.hidden-md{display:none!important}}@media (max-width:1199px){.hidden-lg{display:none!important}}@media (max-width:1599px){.hidden-xl{display:none!important}}@media (min-width:768px){.hidden-pc{display:none!important}}.m0{margin:0!important}.mr-xs,.mx-xs{margin-right:4px!important}.ml-xs,.mx-xs{margin-left:4px!important}.mt-xs,.my-xs{margin-top:4px!important}.mb-xs,.my-xs{margin-bottom:4px!important}.p0{padding:0!important}.pr-xs,.px-xs{padding-right:4px!important}.pl-xs,.px-xs{padding-left:4px!important}.pt-xs,.py-xs{padding-top:4px!important}.pb-xs,.py-xs{padding-bottom:4px!important}.m-xs{margin:4px!important}.mr-sm,.mx-sm{margin-right:8px!important}.ml-sm,.mx-sm{margin-left:8px!important}.mt-sm,.my-sm{margin-top:8px!important}.mb-sm,.my-sm{margin-bottom:8px!important}.p-xs{padding:4px!important}.pr-sm,.px-sm{padding-right:8px!important}.pl-sm,.px-sm,[dir=rtl] .pr-sm{padding-left:8px!important}.pt-sm,.py-sm{padding-top:8px!important}.pb-sm,.py-sm{padding-bottom:8px!important}.m-sm{margin:8px!important}.mr-md,.mx-md{margin-right:16px!important}.ml-md,.mx-md{margin-left:16px!important}.mt-md,.my-md{margin-top:16px!important}.mb-md,.my-md{margin-bottom:16px!important}.p-sm{padding:8px!important}.pr-md,.px-md{padding-right:16px!important}.pl-md,.px-md{padding-left:16px!important}.pt-md,.py-md{padding-top:16px!important}.pb-md,.py-md{padding-bottom:16px!important}.m-md{margin:16px!important}.mr-lg,.mx-lg{margin-right:24px!important}.ml-lg,.mx-lg{margin-left:24px!important}.mt-lg,.my-lg{margin-top:24px!important}.mb-lg,.my-lg{margin-bottom:24px!important}.p-md{padding:16px!important}.pr-lg,.px-lg{padding-right:24px!important}.pl-lg,.px-lg,[dir=rtl] .pr-lg{padding-left:24px!important}.pt-lg,.py-lg{padding-top:24px!important}.pb-lg,.py-lg{padding-bottom:24px!important}.m-lg{margin:24px!important}.mr-xl,.mx-xl{margin-right:32px!important}.ml-xl,.mx-xl{margin-left:32px!important}.mt-xl,.my-xl{margin-top:32px!important}.mb-xl,.my-xl{margin-bottom:32px!important}.p-lg{padding:24px!important}.pr-xl,.px-xl{padding-right:32px!important}.pl-xl,.px-xl{padding-left:32px!important}.pt-xl,.py-xl{padding-top:32px!important}.pb-xl,.py-xl{padding-bottom:32px!important}.m-xl{margin:32px!important}.mr-xxl,.mx-xxl{margin-right:48px!important}.ml-xxl,.mx-xxl{margin-left:48px!important}.mt-xxl,.my-xxl{margin-top:48px!important}.mb-xxl,.my-xxl{margin-bottom:48px!important}.p-xl{padding:32px!important}.pr-xxl,.px-xxl{padding-right:48px!important}.pl-xxl,.px-xxl,[dir=rtl] .pr-xxl{padding-left:48px!important}.pt-xxl,.py-xxl{padding-top:48px!important}.pb-xxl,.py-xxl{padding-bottom:48px!important}.m-xxl{margin:48px!important}.p-xxl{padding:48px!important}[dir=rtl] .mr0{margin-left:0!important;margin-right:inherit!important}[dir=rtl] .ml0{margin-right:0!important;margin-left:inherit!important}[dir=rtl] .pr0{padding-right:inherit!important}[dir=rtl] .pl0{padding-right:0!important;padding-left:inherit!important}[dir=rtl] .mr-xs{margin-left:4px!important;margin-right:inherit!important}[dir=rtl] .ml-xs{margin-right:4px!important;margin-left:inherit!important}[dir=rtl] .pr-xs{padding-left:4px!important;padding-right:inherit!important}[dir=rtl] .pl-xs{padding-right:4px!important;padding-left:inherit!important}[dir=rtl] .mr-sm{margin-left:8px!important;margin-right:inherit!important}[dir=rtl] .ml-sm{margin-right:8px!important;margin-left:inherit!important}[dir=rtl] .pr-sm{padding-right:inherit!important}[dir=rtl] .pl-sm{padding-right:8px!important;padding-left:inherit!important}[dir=rtl] .mr-md{margin-left:16px!important;margin-right:inherit!important}[dir=rtl] .ml-md{margin-right:16px!important;margin-left:inherit!important}[dir=rtl] .pr-md{padding-left:16px!important;padding-right:inherit!important}[dir=rtl] .pl-md{padding-right:16px!important;padding-left:inherit!important}[dir=rtl] .mr-lg{margin-left:24px!important;margin-right:inherit!important}[dir=rtl] .ml-lg{margin-right:24px!important;margin-left:inherit!important}[dir=rtl] .pr-lg{padding-right:inherit!important}[dir=rtl] .pl-lg{padding-right:24px!important;padding-left:inherit!important}[dir=rtl] .mr-xl{margin-left:32px!important;margin-right:inherit!important}[dir=rtl] .ml-xl{margin-right:32px!important;margin-left:inherit!important}[dir=rtl] .pr-xl{padding-left:32px!important;padding-right:inherit!important}[dir=rtl] .pl-xl{padding-right:32px!important;padding-left:inherit!important}[dir=rtl] .mr-xxl{margin-left:48px!important;margin-right:inherit!important}[dir=rtl] .ml-xxl{margin-right:48px!important;margin-left:inherit!important}[dir=rtl] .pr-xxl{padding-right:inherit!important}[dir=rtl] .pl-xxl{padding-right:48px!important;padding-left:inherit!important}.text-left{text-align:left!important}.text-center{text-align:center!important}.text-right,[dir=rtl] .text-left{text-align:right!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-nowrap{white-space:nowrap!important}.text-wrap{white-space:pre-wrap!important}.text-truncate{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.font-weight-normal{font-weight:400}.font-weight-bold{font-weight:700}.text-xs{font-size:12px!important}.text-sm{font-size:14px!important}.text-md{font-size:16px!important}.text-lg{font-size:18px!important}.text-xl{font-size:22px!important}.text-xxl{font-size:28px!important}[dir=rtl] .text-right{text-align:left!important}.width-xs{width:80px!important}.max-width-xs{max-width:80px!important}.min-width-xs{min-width:80px!important}.width-sm{width:160px!important}.max-width-sm{max-width:160px!important}.min-width-sm{min-width:160px!important}.width-md{width:240px!important}.max-width-md{max-width:240px!important}.min-width-md{min-width:240px!important}.width-lg{width:320px!important}.max-width-lg{max-width:320px!important}.min-width-lg{min-width:320px!important}.width-xl{width:400px!important}.max-width-xl{max-width:400px!important}.min-width-xl{min-width:400px!important}.width-xxl{width:480px!important}.max-width-xxl{max-width:480px!important}.min-width-xxl{min-width:480px!important}.width-10{width:10%!important}.max-width-10{max-width:10%!important}.min-width-10{min-width:10%!important}.width-20{width:20%!important}.max-width-20{max-width:20%!important}.min-width-20{min-width:20%!important}.width-30{width:30%!important}.max-width-30{max-width:30%!important}.min-width-30{min-width:30%!important}.width-40{width:40%!important}.max-width-40{max-width:40%!important}.min-width-40{min-width:40%!important}.width-50{width:50%!important}.max-width-50{max-width:50%!important}.min-width-50{min-width:50%!important}.width-60{width:60%!important}.max-width-60{max-width:60%!important}.min-width-60{min-width:60%!important}.width-70{width:70%!important}.max-width-70{max-width:70%!important}.min-width-70{min-width:70%!important}.width-80{width:80%!important}.max-width-80{max-width:80%!important}.min-width-80{min-width:80%!important}.width-90{width:90%!important}.max-width-90{max-width:90%!important}.min-width-90{min-width:90%!important}.width-100{width:100%!important}.max-width-100{max-width:100%!important}.min-width-100{min-width:100%!important}@media (max-width:767px){.hidden-mobile,.hidden-sm{display:none!important}.max-width-sm,.min-width-sm,.width-sm{width:100%!important}}.scrollbar{overflow:auto}.scrollbar-x{overflow-x:auto;overflow-y:hidden}.scrollbar-y{overflow-x:hidden;overflow-y:auto}.ant-anchor-wrapper,.ant-dialog-wrap,.ant-drawer-body,.ant-drawer-wrapper-body,.scrollbar,body,textarea.ant-input{scrollbar-color:rgba(0,0,0,.3) #6e6e6e;scrollbar-width:thin}.ant-anchor-wrapper::-webkit-scrollbar,.ant-dialog-wrap::-webkit-scrollbar,.ant-drawer-body::-webkit-scrollbar,.ant-drawer-wrapper-body::-webkit-scrollbar,.scrollbar::-webkit-scrollbar,body::-webkit-scrollbar,textarea.ant-input::-webkit-scrollbar{width:6px;height:6px}.ant-anchor-wrapper::-webkit-scrollbar-track,.ant-dialog-wrap::-webkit-scrollbar-track,.ant-drawer-body::-webkit-scrollbar-track,.ant-drawer-wrapper-body::-webkit-scrollbar-track,.scrollbar::-webkit-scrollbar-track,body::-webkit-scrollbar-track,textarea.ant-input::-webkit-scrollbar-track{box-shadow:inset 0 0 6px rgba(0,0,0,.3)}.ant-anchor-wrapper::-webkit-scrollbar-thumb,.ant-dialog-wrap::-webkit-scrollbar-thumb,.ant-drawer-body::-webkit-scrollbar-thumb,.ant-drawer-wrapper-body::-webkit-scrollbar-thumb,.scrollbar::-webkit-scrollbar-thumb,body::-webkit-scrollbar-thumb,textarea.ant-input::-webkit-scrollbar-thumb{background-color:#6e6e6e;outline:#333 solid 1px}.st{display:block}.st__p-left .ant-table-pagination{display:block;float:none;text-align:left}.st__p-center .ant-table-pagination{display:block;float:none;text-align:center}.st__btn-sub .st__btn-text{color:inherit}.st__btn-disabled .st__btn-text{color:rgba(179,179,179,.85);pointer-events:none}.st .nz-resizable-handle{display:flex;align-items:center;justify-content:center}.st .nz-resizable-handle>i{width:1px;height:60%;background:#434343}.st .nz-resizable-preview{border-width:0 1px 0 0}.st .nz-resizable.ant-table-column-has-sorters .nz-resizable-handle{margin-right:8px}.st .ant-table~nz-pagination>.ant-pagination{margin-bottom:0}.st__filter-keyword{padding:8px}.st .ant-table-column-title{display:flex;align-items:center}.st__head-optional,.st__head-tip{margin-left:2px;color:rgba(128,128,128,.85)}.st .ant-table-thead>tr>th .ant-table-filter-selected.ant-table-filter-icon{color:#177ddc}.st__checkall-selection{display:inline-block;margin-left:4px}.sv,.sv__container{display:block}.st .ant-table-tbody>tr .ant-table-wrapper:only-child .ant-table{margin:0}.st .ant-table-cell-fix-left-first::after,.st .ant-table-cell-fix-left-last::after{transform:translateX(80%)}.st .ant-table-cell-fix-right-first::after,.st .ant-table-cell-fix-right-last::after{transform:translateX(-80%)}@media screen and (min-width:768px){.st__width-strict .ant-table-body>table,.st__width-strict .ant-table-content>table{word-wrap:break-word!important;table-layout:fixed!important}}.sv+.sv{margin-top:16px}.sv__container .ant-row{margin-bottom:-16px;overflow:hidden}.sv__item-fixed{display:flex}.sv__item-fixed .sv__label{flex:0 0 auto;overflow:hidden;text-align:right;text-overflow:ellipsis}.sv__item-fixed .sv__detail{flex:1 0 0}.sv__item+.ant-divider{margin:0 0 16px}.sv__title{display:block;float:none;clear:both;width:100%;margin-bottom:16px;color:rgba(255,255,255,.85);font-weight:500;font-size:14px}.sv__detail,.sv__label{display:table-cell;padding-bottom:16px;line-height:22px}.sv__label{color:rgba(179,179,179,.85);white-space:nowrap}.sv__label:not(.sv__label-empty)::after{position:relative;top:-.5px;margin:0 8px 0 2px;content:':'}.sv__label-optional{margin-left:2px;color:rgba(128,128,128,.85)}.sv__label-optional-no-text{margin-left:0}.sv__label-optional>.anticon{margin-left:2px}.sv__detail{width:100%;color:rgba(255,255,255,.85);word-break:break-all}.se__line,.sv__small .sv__detail,.sv__small .sv__label,.sv__vertical .sv__label{padding-bottom:8px}.sv__type-primary .sv__detail{color:#177ddc}.sv__type-success .sv__detail{color:#49aa19}.sv__type-danger .sv__detail{color:#a61d24}.sv__type-warning .sv__detail{color:#d89614}.sv__default::before{content:-}.sv__default~.sv__unit{display:none!important}.sv__unit{display:inline;margin-left:8px;color:#8c8c8c}.sv__small .ant-row{margin-bottom:-8px}.sv__small .sv__title{margin-bottom:12px;color:rgba(255,255,255,.85)}.sv__value{display:inline-flex;align-items:center}.sv__value-prefix,.sv__value-unit{color:rgba(179,179,179,.85);font-size:12px;font-style:normal}.sv__value-prefix{padding-right:3px}.sv__value-text{font-size:18px}.sv__value-unit{padding-left:3px}.sv__value:not(:first-child){position:relative;margin-left:8px;padding-left:14px}.sv__value:not(:first-child)::before{position:absolute;left:0;width:6px;color:rgba(179,179,179,.85);content:/}.sv__value-small .sv__value-text{font-size:14px}.sv__value-large .sv__value-text{font-size:24px}.sv__large .sv__title{font-size:16px}.sv__horizontal .sv__label-width{display:flex;justify-content:flex-end}.se__title,.sv__vertical .sv__detail,.sv__vertical .sv__label{display:block}.sv__horizontal .sv__label-width .sv__label-text{overflow:hidden;text-overflow:ellipsis}.sv__no-colon::after{content:' '!important}.se__title{float:none;clear:both;width:100%;color:rgba(255,255,255,.85);font-weight:700;font-size:14px;line-height:1.5715}.se__item:last-child{margin-bottom:0;padding-bottom:0}.se__item-empty::before{display:inline-block;content:''}.se__item+.ant-divider{margin:0 0 24px}.se__label{display:table-cell;flex:0 0 auto;width:initial;white-space:nowrap;text-align:right}.se__label-optional{margin-left:2px;color:rgba(128,128,128,.85)}.se__label-optional-no-text{margin-left:0}.se__label-optional>.anticon{margin-left:2px}.se__control{flex:1 0 0;width:100%}.se__compact>.se__item,.se__compact>.se__title{margin-bottom:8px}.se__compact>.se__item+.ant-divider,.se__compact>.se__title+.ant-divider{margin:0 0 8px}.se__compact .ant-form-item-extra{display:none}.se__line{border-bottom:1px dashed #303030}.se__hide-label .se__nolabel,.se__inline .se__nolabel,.se__vertical .se__nolabel{display:none!important}.se__horizontal>.se__item{display:flex}.se__horizontal>.se__item:last-child{margin-bottom:0}.se__horizontal>.se__item .se__label{display:flex;justify-content:flex-end}.se__horizontal>.se__item .se__label-text{overflow:hidden;text-overflow:ellipsis}.se__horizontal>.se__item .ant-form-item-required::before{line-height:inherit}.se__horizontal>.se__item .ant-form-item-label>label::after{margin-left:4px}.se__vertical>.se__item{display:block;width:100%}.se__inline .ant-form-item-label,.se__inline .se__control{display:inline-block;width:initial!important;text-align:left;vertical-align:top}.se__inline>.se__item{margin-right:16px}.se__inline>.se__item[col='1']{flex-basis:auto;width:100%}.se__inline>.se__item:last-child{margin-right:0}.se__no-colon::after{content:' '!important}@media (max-width:767px){.se__horizontal>.se__item{display:block}.se__horizontal>.se__item .ant-form-item-label{width:100%!important;text-align:left}.se__horizontal>.se__item .se__label{justify-content:normal}.se__horizontal .se__control,.se__horizontal .se__label,.se__vertical .se__control,.se__vertical .se__label{width:100%!important}}.avatar-list,.avatar-list__item,.avatar-list__wrap{display:inline-block}.avatar-list__wrap{margin-left:8px;padding:0;font-size:0}.avatar-list__item{width:32px;height:32px;margin-left:-8px;font-size:14px}.avatar-list__item .ant-avatar{border:1px solid #fff;cursor:pointer}.avatar-list__large{width:40px;height:40px}.avatar-list__small{width:24px;height:24px}.avatar-list__mini{width:20px;height:20px}.avatar-list__mini .ant-avatar{width:20px;height:20px;line-height:20px}.avatar-list__mini .ant-avatar-string{font-size:12px;line-height:18px}ellipsis{display:inline}.ellipsis{display:inline-block;width:100%;overflow:hidden;word-break:break-all}.ellipsis__lines{position:relative}.ellipsis__line-clamp{position:relative;display:-webkit-box;overflow:hidden;text-overflow:ellipsis}.ellipsis__shadow{position:absolute;z-index:-999;display:block;color:transparent;opacity:0}.error-collect{padding-right:24px;color:#f5222d;cursor:pointer}.error-collect__count{padding-left:8px}.error-collect-rtl{padding-right:0;padding-left:24px}.error-collect-rtl .error-collect__count{padding-right:8px;padding-left:0}.exception{display:flex;align-items:center;height:100%}.exception__img-block{flex:0 0 62.5%;width:62.5%;padding-right:152px;zoom:1}.exception__img-block::after,.exception__img-block::before{display:table;content:' '}.exception__img-block::after{clear:both;height:0;font-size:0}.exception__img{float:right;width:100%;max-width:430px;height:360px;background-repeat:no-repeat;background-position:50% 50%;background-size:100% 100%}.exception__cont{flex:auto}.exception__cont-title{margin-bottom:24px;color:#434e59;font-weight:600;font-size:72px;line-height:72px}.exception__cont-desc{margin-bottom:16px;color:rgba(255,255,255,.45);font-size:20px;line-height:28px}.exception__cont-actions .ant-btn:not(:last-child){margin-right:8px}@media screen and (max-width:1200px){.exception__img-block{padding-right:88px}}@media screen and (max-width:576px){.exception{display:block;text-align:center}.exception__img-block{margin:0 auto 24px;padding-right:0}}@media screen and (max-width:480px){.exception__img-block{margin-bottom:-24px;overflow:hidden}}.exception-rtl .exception__cont-actions .ant-btn:not(:last-child){margin-right:0}.footer-toolbar{position:fixed;right:0;bottom:0;display:flex;height:56px;padding:0 24px;line-height:56px;background:#1f1f1f;border-top:1px solid #303030;box-shadow:0 -6px 16px -8px rgba(0,0,0,.32),0 -9px 28px 0 rgba(0,0,0,.2),0 -12px 48px 16px rgba(0,0,0,.12);transition:all .3s}.alain-pro__header,.alain-pro__top-nav,.quick-menu,.quick-menu__ctrl{box-shadow:0 6px 16px -8px rgba(0,0,0,.32),0 9px 28px 0 rgba(0,0,0,.2),0 12px 48px 16px rgba(0,0,0,.12)}.footer-toolbar__left{flex:1}.full-content{display:block;height:100%;overflow:auto}.full-content__body{overflow:hidden}.global-footer{display:block;margin:48px 0 24px;padding:0 16px;text-align:center}.global-footer__links{margin-bottom:8px}.global-footer__links-item{display:inline-block;color:rgba(255,255,255,.45);transition:all .3s}.global-footer__links-item:not(:last-child){margin-right:40px}.global-footer__links-item:hover{color:rgba(255,255,255,.85)}.global-footer__copyright{color:rgba(255,255,255,.45);font-size:14px}.global-footer-rtl .global-footer__links-item:not(:last-child){margin-right:inherit;margin-left:40px}.notice-icon{width:336px}.notice-icon__btn{display:inline-block;cursor:pointer;transition:all .3s}.notice-icon .ant-popover-inner-content{padding:0}.notice-icon .ant-tabs-bar{margin-bottom:4px}.notice-icon .ant-tabs-nav .ant-tabs-tab{margin-right:32px;padding:12px 16px}.notice-icon .ant-tabs-nav .ant-tabs-tab:last-child{margin-right:0}.notice-icon .ant-tabs-nav-scroll{text-align:center}.notice-icon .ant-list{max-height:400px;overflow:auto}.notice-icon .ant-list-item{padding-right:24px;padding-left:24px;overflow:hidden;cursor:pointer;transition:all .3s}.notice-icon .ant-list-item:last-child{border-bottom:0}.page-header,.page-header .ant-tabs-bar,.reuse-tab__line{border-bottom:1px solid #303030}.notice-icon .ant-list-item:hover{background:#111b26}.notice-icon .ant-list-item-meta{width:100%}.notice-icon .ant-list-item-meta-title{margin-bottom:8px;font-weight:400}.notice-icon .ant-list-item .ant-avatar{margin-top:4px;background:#fff}.notice-icon__notfound{padding:73px 0 88px;color:rgba(255,255,255,.45);text-align:center}.notice-icon__clear,.notice-icon__clear:hover{color:rgba(255,255,255,.85)}.notice-icon__notfound-img{display:inline-block;height:76px;margin-bottom:16px}.notice-icon__clear{height:46px;line-height:46px;text-align:center;border-top:1px solid #303030;border-radius:0 0 2px 2px;cursor:pointer;transition:all .3s}.notice-icon__item-desc,.notice-icon__item-time{font-size:12px;line-height:1.5715}.notice-icon__item .ant-badge-count{top:-10px}.notice-icon__item-read{opacity:.4}.notice-icon__item-time{margin-top:4px}.notice-icon__item-extra{float:right;margin-top:-1.5px;margin-right:0;color:rgba(255,255,255,.45);font-weight:400}.page-header{display:block;padding:16px 32px 0;background-color:#141414}.page-header__wide{max-width:1200px;margin:auto}.page-header .ant-breadcrumb{margin-bottom:16px}.page-header .ant-tabs{margin:0 0 -17px}.page-header__detail{display:flex}.page-header__row{display:flex;width:100%}.page-header__logo{flex:0 1 auto;margin-right:16px;padding-top:1px}.page-header__logo img{display:block;width:28px;height:28px;border-radius:2px}.page-header__title{color:rgba(255,255,255,.85);font-weight:500;font-size:20px}.page-header__title small{padding-left:8px;font-weight:400;font-size:14px}.page-header__action{min-width:266px;margin-left:56px}.page-header__desc,.page-header__title{flex:auto}.page-header__action,.page-header__extra,.page-header__main{flex:0 1 auto}.page-header__main{width:100%}.page-header__action,.page-header__desc,.page-header__extra,.page-header__logo,.page-header__title{margin-bottom:16px}.page-header__action,.page-header__extra{text-align:right}.page-header__extra{min-width:242px;margin-left:88px}@media screen and (max-width:1200px){.page-header__extra{margin-left:44px}}@media screen and (max-width:992px){.page-header__extra{margin-left:20px}}@media screen and (max-width:768px){.page-header__row{display:block}.page-header__action,.page-header__extra{margin-left:0;text-align:left}}@media screen and (max-width:576px){.page-header__detail{display:block}}@media screen and (max-width:480px){.page-header__action .ant-btn,.page-header__action .ant-btn-group{display:block;margin-bottom:8px}.page-header__action .ant-input-search-enter-button .ant-btn{margin-bottom:0}.page-header__action .ant-btn-group>.ant-btn{display:inline-block;margin-bottom:0}}.page-header-rtl .page-header__logo{margin-right:0;margin-left:16px}.page-header-rtl .page-header__title small{padding-right:8px;padding-left:0}.page-header-rtl .page-header__action{margin-right:56px;margin-left:0}.page-header-rtl .page-header__extra{margin-right:88px;margin-left:0}@media screen and (max-width:1200px){.page-header-rtl .page-header__extra{margin-right:44px;margin-left:0}}@media screen and (max-width:992px){.page-header-rtl .page-header__extra{margin-right:20px;margin-left:0}}.quick-menu{position:fixed;right:-1px;left:auto;z-index:11;display:block;backface-visibility:hidden;transition:margin .3s cubic-bezier(1,0,0,1)}.quick-menu,.quick-menu__ctrl{background-color:#1f1f1f;border:1px solid #303030}.quick-menu__inner{position:relative;padding:0 12px}.quick-menu__ctrl{position:absolute;top:-1px;left:-50px;width:50px;height:50px;text-align:center;border-right:0;border-radius:3px 0 0 3px;cursor:pointer}.quick-menu__ctrl-icon{font-size:20px;line-height:49px}.result{display:block;width:72%;margin:0 auto;text-align:center}.result__icon{margin-bottom:24px;font-size:72px;line-height:72px}.result__icon-success{color:#49aa19}.result__icon-error{color:#a61d24}.result__title{margin-bottom:16px;color:rgba(255,255,255,.85);font-weight:500;font-size:24px;line-height:32px}.result__desc{margin-bottom:24px;color:rgba(255,255,255,.45);font-size:14px;line-height:22px}.result__extra{padding:24px 40px;text-align:left;border-radius:2px}@media screen and (max-width:480px){.result{width:100%}.result__extra{padding:18px 20px}}.result__actions{margin-top:32px}.result__actions button:not(:last-child){margin-right:8px}.reuse-tab{display:block;background-color:#141414;outline:0;user-select:none}.reuse-tab .ant-tabs-nav .ant-tabs-tab .reuse-tab__op{position:absolute;display:none;margin:0;color:rgba(255,255,255,.85);font-size:10px}.reuse-tab .ant-tabs-nav .ant-tabs-tab:hover .reuse-tab__op{display:block}.reuse-tab .ant-tabs-nav .ant-tabs-tab .reuse-tab__name-width{display:inline-block;overflow:hidden;text-overflow:ellipsis}.reuse-tab .ant-tabs>.ant-tabs-nav{margin:0}.reuse-tab__line{padding:8px}.reuse-tab__line .ant-tabs-nav::before{border-bottom:none}.reuse-tab__line .ant-tabs-nav .ant-tabs-tab{padding:0}.reuse-tab__line .ant-tabs-nav .ant-tabs-tab .reuse-tab__op{top:12px;right:2px}.reuse-tab__line .ant-tabs-nav .ant-tabs-tab .reuse-tab__name{display:inline-block;padding:8px 20px}.reuse-tab__card{padding-top:8px}.reuse-tab__card .ant-tabs-nav-container{padding:0 8px}.reuse-tab__card .ant-tabs-nav .ant-tabs-tab .reuse-tab__op{top:4px;right:4px}.reuse-tab__disabled{opacity:.8;pointer-events:none}.reuse-tab__cm .ant-menu{border:1px solid #e9e9e9}.tag-select{position:relative;display:block;max-height:24px;margin-left:-8px;overflow:hidden;line-height:1.5715;transition:all .3s;user-select:none}.tag-select__expanded{max-height:200px;transition:all .3s}.tag-select__has-expand{padding-right:50px}.tag-select .ant-tag{margin-right:24px;padding:0 8px}.tag-select__trigger{position:absolute;top:0;right:0}.loading-default,.onboarding__mask{position:fixed;left:0;bottom:0;top:0}.tag-select__trigger-icon{margin-left:8px;font-size:12px}.tag-select-rtl{margin-right:-8px;margin-left:0}.tag-select-rtl__has-expand{padding-right:0!important;padding-left:50px!important}.tag-select-rtl .tag-select .ant-tag{margin-right:0;margin-left:24px}.tag-select-rtl .tag-select__trigger{right:initial;left:0}.tag-select-rtl .tag-select__trigger-icon{margin-right:0;margin-left:8px}.loading-backdrop{z-index:9999;background-color:rgba(0,0,0,.15)}.loading-default{right:0;z-index:10000;display:flex;flex-direction:column;align-items:center;justify-content:center}.g2-mini-progress,.g2-pie,.pdf-container,g2,g2-bar,g2-chart,g2-custom,g2-gauge,g2-mini-area,g2-mini-bar,g2-single-bar,g2-tag-cloud,g2-timeline{display:block}.loading-default__icon{margin-bottom:8px;color:#177ddc;font-size:24px}.loading-default__text{color:#177ddc}.loading-default__custom{width:64px;height:64px;fill:#fff}.onboarding+.cdk-overlay-container{z-index:99999}.onboarding__mask{right:0;z-index:99998;background-color:#000;opacity:.5}.onboarding__item{position:absolute}.onboarding__light{position:absolute;z-index:99999;background-color:#141414;animation:2.5s cubic-bezier(.55,.05,.6,.2) 0s infinite normal none running onboardingAnt;pointer-events:none}.g2-card,.g2-card__top,.pdf-container{position:relative}.onboarding__light-el{z-index:100000!important}.onboarding__light-ant{transition:all .3s ease-out}.onboarding__footer{margin-top:8px}.onboarding__total{color:rgba(255,255,255,.85)}.g2-card__meta,.g2-pie__legend-percent,.g2-pie__total-title{color:rgba(255,255,255,.45)}@keyframes onboardingAnt{0%,33%{box-shadow:#141414 0 0 0 2px,#141414 0 0 0}100%,66%{box-shadow:#141414 0 0 0 2px,rgba(20,20,20,.01) 0 0 0 10px}}.pdf-container{height:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}g2-bar,g2-tag-cloud{width:100%}.g2-card__top{width:100%;overflow:hidden}.g2-card__top-margin{margin-bottom:12px}.g2-card__top-has-margin{margin-bottom:20px}.g2-card__meta{height:22px;font-size:14px;line-height:22px}.g2-card__total,.g2-pie__legend-title{color:rgba(255,255,255,.85)}.g2-card__meta-wrap{float:left}.g2-card__meta-action{position:absolute;top:4px;right:0;line-height:1;cursor:pointer}.g2-card__avatar{position:relative;top:4px;float:left;margin-right:20px}.g2-card__total{height:38px;margin-top:4px;margin-bottom:0;overflow:hidden;font-size:30px;line-height:38px;white-space:nowrap;text-overflow:ellipsis;word-break:break-all}.g2-card__desc{width:100%;margin-bottom:12px}.g2-card__footer{margin-top:8px;padding-top:9px;border-top:1px solid #303030}.g2-card__footer>*{position:relative}.g2-mini-progress{position:relative;width:100%;padding:5px 0}.g2-mini-progress__wrap{position:relative}.g2-mini-progress__value{width:0;height:100%;background-color:#177ddc;border-radius:1px 0 0 1px;transition:all .4s cubic-bezier(.08,.82,.17,1) 0s}.g2-mini-progress__target{position:absolute;top:0;bottom:0}.g2-mini-progress__target-item{position:absolute;top:0;left:0;width:2px;height:4px;border-radius:100px}.g2-pie,.g2-pie__chart{position:relative}.g2-mini-progress__target-item:last-child{top:auto;bottom:0}.g2-pie__legend{position:absolute;top:50%;right:0;min-width:250px;margin:0 20px;padding:0;list-style:none;transform:translateY(-50%)}.g2-pie__legend-item{height:22px;margin-bottom:16px;line-height:22px;cursor:pointer}.g2-pie__legend-item:last-child{margin-bottom:0}.g2-pie__legend-dot{position:relative;top:-1px;display:inline-block;width:8px;height:8px;margin-right:8px;border-radius:8px}.g2-pie__legend-value{position:absolute;right:0}.g2-pie__legend-has .g2-pie__chart{width:calc(100% - 240px)}.g2-pie__legend-block .g2-pie__chart{width:100%;margin:0 0 32px}.g2-pie__legend-block .g2-pie__legend{position:relative;min-width:auto;transform:none}.g2-pie__total{position:absolute;top:50%;left:50%;height:62px;text-align:center;transform:translate(-50%,-50%)}.g2-pie__total-title{height:22px;margin-bottom:8px;font-weight:400;font-size:14px;line-height:22px}.g2-pie__total-stat{display:block;height:32px;color:rgba(255,255,255,.85);font-size:1.2em;line-height:32px;white-space:nowrap}.g2-pie__mini .g2-pie__total-title{margin-top:4px;margin-bottom:0}.g2-radar{display:block}.g2-radar__legend{margin-top:16px}.g2-radar__legend-item{position:relative;color:rgba(255,255,255,.45);line-height:22px;text-align:center;cursor:pointer}.g2-radar__legend-item::after{position:absolute;top:8px;right:0;width:1px;height:40px;background-color:#303030;content:''}.g2-radar__legend-item:last-child::after{display:none}.g2-radar__legend-dot,.g2-water-wave,.number-info,.number-info__value-text,.trend{display:inline-block}.g2-radar__legend-title{margin-top:4px;margin-bottom:0;padding-left:16px;color:rgba(255,255,255,.85);font-size:24px;line-height:32px}.g2-radar__legend-dot{position:relative;top:-1px;width:6px;height:6px;margin-right:6px;border-radius:6px}.g2-water-wave{position:relative;transform-origin:left}.g2-water-wave__desc{position:absolute;top:32px;left:0;width:100%;text-align:center}.g2-water-wave__desc-title{color:rgba(255,255,255,.45);font-size:14px;line-height:22px}.g2-water-wave__desc-percent{color:rgba(255,255,255,.85);font-size:24px;line-height:32px}.g2-water-wave__canvas{transform:scale(.5);transform-origin:0 0}.number-info__title{margin-bottom:16px;color:rgba(255,255,255,.85);font-size:16px;transition:all .3s}.number-info__title-sub{height:22px;overflow:hidden;color:rgba(255,255,255,.45);font-size:14px;line-height:22px;white-space:nowrap;text-overflow:ellipsis;word-break:break-all}.number-info__value{margin-top:4px;overflow:hidden;font-size:0;white-space:nowrap;text-overflow:ellipsis;word-break:break-all}.number-info__value-suffix{margin-left:4px;color:rgba(255,255,255,.85);font-size:16px;font-style:normal}.number-info__value-text{height:32px;color:rgba(255,255,255,.85);font-size:24px;line-height:32px}.number-info__value-sub{margin-left:32px;color:rgba(255,255,255,.45);font-size:16px;vertical-align:top}.number-info__value-sub .anticon{margin-left:4px;font-size:12px;transform:scale(.82)}.number-info__value-sub .anticon-caret-up{color:#d32029}.number-info__value-sub .anticon-caret-down{color:#49aa19}.number-info__light .number-info__value-text{color:rgba(255,255,255,.85)}.number-info:not(:first-child){position:relative;margin-left:32px;padding-left:32px}.number-info:not(:first-child)::after{position:absolute;top:0;bottom:0;left:0;width:1px;margin:8px 0;background-color:#303030;content:''}.trend{font-size:14px;line-height:22px}.trend__down,.trend__up{position:relative;top:1px;margin-left:4px}.trend__down i,.trend__up i{font-size:12px;transform:scale(.83)}.trend__up{color:#d32029}.trend__down{top:-1px;color:#49aa19}.trend__grey .trend__down,.trend__grey .trend__up{color:rgba(255,255,255,.85)}.trend__reverse .trend__up{color:#49aa19}.trend__reverse .trend__down{color:#d32029}.alain-pro__menu{display:block}.alain-pro__menu-item--disabled{pointer-events:none}.alain-pro__menu-only-icon .alain-pro__menu-item{padding-right:8px!important;padding-left:8px!important}.alain-pro__menu-only-icon .alain-pro__menu-item:first-child{padding-left:0}.alain-pro__menu-only-icon .alain-pro__menu-icon{margin-right:0;font-size:16px}.alain-pro__menu-title{position:relative}.alain-pro__menu-title-badge{display:flex;justify-content:center;width:18px;height:18px;padding:0;font-size:12px;line-height:18px;background:#177ddc;border-radius:50%}.alain-pro__menu-title-badge>em{color:#fff;font-style:normal}.alain-pro__menu-img{width:14px!important;height:14px!important}.alain-pro__side-nav .alain-pro__menu-title{display:flex;align-items:center}.alain-pro__side-nav .alain-pro__menu-title-text{flex:1}.alain-pro__side-nav .ant-menu-inline-collapsed .alain-pro__menu-title-badge{position:absolute;top:0;right:-16px;width:8px;height:8px}.alain-pro__side-nav .ant-menu-inline-collapsed .alain-pro__menu-title-badge>em{display:none}.alain-pro__main{min-height:100vh;background-color:#000}.alain-pro__main>.ant-layout-header{height:64px;line-height:64px}.alain-pro__page-header-wrapper{position:relative;display:block;margin:-24px -24px 0}.alain-pro__page-header-content{margin:24px 24px 0}.alain-pro__page-grid{display:block;width:100%;height:100%;min-height:100%;transition:.3s}.alain-pro__page-grid-wide{max-width:1200px;margin:0 auto}.alain-pro__page-grid-no-spacing{width:initial;margin:-24px -24px 0}.alain-pro__fetching-icon{display:none}.alain-pro__fetching .alain-pro__fetching-icon{display:block}@media screen and (max-width:767px){.alain-pro__page-header-content{margin:24px 10px 0}}.alain-pro__header{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;height:64px;padding:0 12px 0 0;background:#141414}.alain-pro__header-logo{padding:0 24px}.alain-pro__header-right{display:flex;align-items:center;justify-items:center}.alain-pro__header-item{position:relative;display:flex;align-items:center;justify-items:center;height:64px;padding:0 12px;line-height:64px;cursor:pointer;transition:all .3s}.alain-pro__header-item-icon,.alain-pro__header-item>i{font-size:16px!important;transform:none!important}.alain-pro__header-item,.alain-pro__header-item-icon{color:rgba(255,255,255,.85)}.alain-pro__header-item:hover{background:rgba(0,0,0,.025)}.alain-pro__header-item:hover,.alain-pro__header-item:hover .alain-pro__header-item-icon{color:#fff}.alain-pro__header-trigger{padding:0 24px}.alain-pro__header-trigger .alain-pro__header-item-icon{font-size:20px!important}.alain-pro__header-search:hover{background:0 0}.alain-pro__header-fixed{position:fixed;top:0;right:0;z-index:9;width:100%;transition:width .2s}.alain-pro__header-hide{opacity:0;transition:opacity .2s}@media only screen and (max-width:767px){.alain-pro__header-name{display:none}.alain-pro__header-trigger{padding:0 12px}.alain-pro__header-logo{position:relative;padding-right:12px;padding-left:12px}}layout-pro-header{z-index:1}[dir=rtl] .alain-pro__header-fixed{right:inherit;left:0}.alain-pro__top-nav{position:relative;width:100%;height:64px;padding:0 12px 0 0;transition:background .3s,width .2s}.alain-pro__top-nav .alain-pro__menu .ant-menu{display:flex;align-items:center;height:64px;border:none}.alain-pro__top-nav .alain-pro__menu-wrap{flex:1;padding-right:8px}.alain-pro__top-nav .alain-pro__menu-item{height:100%}.alain-pro__top-nav .alain-pro__menu-item .ant-menu-submenu-title{height:100%;padding:0 12px}.alain-pro__top-nav-main{display:flex;height:64px;padding-left:24px}.alain-pro__top-nav-main-wide{max-width:1200px;margin:auto;padding-left:4px}.alain-pro__top-nav-main-left{display:flex;flex:1}.alain-pro__top-nav-logo{width:165px}.alain-pro__top-nav-logo h1{margin:0 0 0 12px;color:#fff;font-size:16px}.alain-pro__top-nav .alain-pro__menu-title-badge{position:absolute;top:-16px;right:-16px}.alain-pro__sider,.alain-pro__sider-logo{position:relative;display:block;overflow:hidden}.alain-pro__dark .alain-pro__top-nav .alain-pro__header-item,.alain-pro__dark .alain-pro__top-nav .alain-pro__header-item-icon{color:rgba(255,255,255,.65)}.alain-pro__dark .alain-pro__top-nav .alain-pro__header-item .ant-popover-open,.alain-pro__dark .alain-pro__top-nav .alain-pro__header-item:hover{background:#177ddc}.alain-pro__dark .alain-pro__top-nav .alain-pro__header-item .ant-popover-open .alain-pro__header-item,.alain-pro__dark .alain-pro__top-nav .alain-pro__header-item .ant-popover-open .alain-pro__header-item-icon,.alain-pro__dark .alain-pro__top-nav .alain-pro__header-item:hover .alain-pro__header-item,.alain-pro__dark .alain-pro__top-nav .alain-pro__header-item:hover .alain-pro__header-item-icon{color:#fff}.alain-pro__light .alain-pro__top-nav{background-color:#fff}.alain-pro__light .alain-pro__top-nav h1{color:#002140}[dir=rtl] .alain-pro__top-nav-logo h1{margin-right:12px;margin-left:0}.alain-pro__sider{z-index:10;min-height:100vh;box-shadow:2px 0 6px rgba(0,21,41,.35)}.alain-pro__sider-logo{height:64px;padding-left:24px;line-height:64px;background:#1f1f1f;transition:all .3s}.alain-pro__sider-logo img{display:inline-block;height:32px;vertical-align:middle}.alain-pro__sider-logo h1{display:inline-block;margin:0 0 0 12px;color:#fff;font-weight:600;font-size:20px;font-family:'Myriad Pro','Helvetica Neue',Arial,Helvetica,sans-serif;vertical-align:middle;transition:all .3s}.alain-pro__sider-fixed{position:fixed;top:0;left:0}.alain-pro__sider-fixed .alain-pro__side-nav-wrap{height:calc(100vh - 64px);padding-bottom:24px;overflow-y:scroll}.alain-pro__drawer .ant-drawer-wrapper-body{height:100%;overflow:auto}.alain-pro__drawer .ant-drawer-body{height:100vh;padding:0;overflow-x:hidden}.aside-collapsed .alain-pro__sider-logo{display:flex;justify-content:center;padding:0}.aside-collapsed .alain-pro__sider-logo h1{display:none}.alain-pro__light .alain-pro__sider{background-color:#fff;box-shadow:2px 0 8px 0 rgba(29,35,41,.05)}.alain-pro__light .alain-pro__sider-logo{background:#fff;box-shadow:1px 1px 0 0 #303030}.alain-pro__light .alain-pro__sider-logo h1{color:#177ddc}.alain-pro__light .alain-pro__sider .ant-menu-light{border-right-color:transparent}[dir=rtl] .alain-pro__sider-logo{padding-right:24px;padding-left:0}[dir=rtl] .alain-pro__sider-logo h1{margin-right:12px;margin-left:0}[dir=rtl] .alain-pro__sider-fixed{right:0;left:inherit}.alain-pro__footer,[dir=rtl] .aside-collapsed .alain-pro__sider-logo{padding:0}.ant-card{transition:none}.alain-pro__header-item .ant-badge-count{position:absolute;top:24px;right:12px}.full-content__hidden-title page-header,.full-content__opened .alain-pro__sider,.full-content__opened layout-pro-header,.full-content__opened reuse-tab{display:none!important}.footer-toolbar{z-index:99;width:auto}.footer-toolbar__body .alain-pro__body{margin-bottom:64px!important}.alain-pro__menu-side .footer-toolbar{left:256px}.alain-pro__menu-top .footer-toolbar{left:0}.aside-collapsed .footer-toolbar{left:80px}.page-header{padding-right:24px;padding-left:24px}.btn-flat{background:0 0!important;border-color:transparent!important;box-shadow:none!important}.ant-dropdown-menu-item{outline:0}@page{size:a3}.brand-page-loading{position:absolute;top:0;right:0;left:0;min-height:200px}.brand-top-right{position:absolute;top:8px;right:8px}.brand-top-left{position:absolute;top:8px;left:8px}.brand-range-picker__date{display:inline-block;width:240px}.alain-pro__header-search,.setting-drawer__blockChecbox{display:flex}.setting-drawer__handle-opened{right:300px!important}.setting-drawer__blockChecbox-item{position:relative;margin-right:16px;border-radius:2px;cursor:pointer}.setting-drawer__blockChecbox-item img{width:48px}.setting-drawer__blockChecbox-selectIcon{position:absolute;top:0;right:0;width:100%;height:100%;padding-top:15px;padding-left:24px;color:#177ddc;font-weight:700;font-size:14px}.setting-drawer__handle{top:114px;width:32px;height:32px;background:rgba(0,0,0,.38)}.setting-drawer__handle-icon{font-size:16px}.setting-drawer-rtl .setting-drawer__handle-opened{right:inherit!important;left:300px!important}.alain-pro__header-search .anticon-search{font-size:16px;cursor:pointer}.alain-pro__header-search-input{width:0;overflow:hidden;background:0 0;border-radius:0;transition:width .3s,margin-left .3s}.alain-pro__header-search-input .ant-select-selection{background:0 0}.alain-pro__header-search-input input{padding-right:0;padding-left:0;background:0 0;border:0;outline:0;box-shadow:none}.alain-pro__header-search-input,.alain-pro__header-search-input:focus,.alain-pro__header-search-input:hover,.message__tools{border-bottom:1px solid #434343}.alain-pro__header-search-show:hover{background:0 0!important}.alain-pro__header-search-show .alain-pro__header-search-input{width:210px;margin-left:8px}.alain-pro__dark .alain-pro__top-nav .alain-pro__header-search-show .ant-input{color:#fff}.brand-bordered{overflow:hidden;border:1px solid rgba(24,28,33,.06)}.brand-bordered>[class*=ant-col-]::after,.brand-bordered>[class*=ant-col-]::before{position:absolute;display:block;content:''}.brand-bordered>[class*=ant-col-]::before{right:0;bottom:-1px;left:0;height:0;border-top:1px solid rgba(24,28,33,.06)}.brand-bordered>[class*=ant-col-]::after{top:0;bottom:0;left:-1px;width:0;border-left:1px solid rgba(24,28,33,.06)}.brand-border-width-2{border-width:2px!important}.brand-collapse-arrow-reverse .ant-collapse>.ant-collapse-item>.ant-collapse-header{padding-right:40px;padding-left:12px}.brand-collapse-arrow-reverse .ant-collapse>.ant-collapse-item>.ant-collapse-header .arrow{right:16px;left:unset}.dd-btn{display:block;width:24px;height:24px;color:#bfbfbf;line-height:24px;text-align:center;border-radius:50%;cursor:pointer}.quick-chat,.quill-editor{line-height:initial}.dd-btn:hover{background:#1f1f1f;border:1px solid #303030}.attachment-img,.img-thm{background-color:transparent}.attachment{display:flex;align-items:center;margin-bottom:8px;padding:4px;border:1px solid #e8e8e8}.attachment-icon{padding:2px;font-size:40px}.attachment-img{width:64px;height:64px;background-position:center center;background-size:cover}.feed__icon{position:relative}.feed__icon-tag{position:absolute;top:-6px;right:-2px}.img-thm{position:relative;display:block;max-width:100%;height:auto}.img-thm__icon,.img-thm__mask{position:absolute;transition:all .2s ease-in-out;display:block}.img-thm__mask{top:0;right:0;bottom:0;left:0;z-index:2;background-color:rgba(0,0,0,.3)}.img-thm__icon{top:50%;left:50%;z-index:3;color:#fff;font-size:32px;opacity:0}.img-thm__img{z-index:1;max-width:100%;height:auto}.img-thm__zoom-in{overflow:hidden}.img-thm__zoom-in .img-thm__icon{transform:translate(-50%,-50%) scale(.6)}.img-thm__zoom-in .img-thm__img{transition:all .3s ease-in-out}.img-thm__zoom-in:hover .img-thm__icon{transform:translate(-50%,-50%) scale(1)}.img-thm__zoom-in:hover .img-thm__img{transform:scale(1.1)}.img-thm:not(:hover):not(:focus) .img-thm__mask{opacity:0}.quill-editor.ng-dirty.ng-invalid .ql-container,.quill-editor.ng-dirty.ng-invalid .ql-toolbar{border-color:#a61d24}.ql-snow .ql-size .ql-picker-item[data-value="10px"]::before,.ql-snow .ql-size .ql-picker-label[data-value="10px"]::before{content:'10px'}.ql-snow .ql-size .ql-picker-item[data-value="12px"]::before,.ql-snow .ql-size .ql-picker-label[data-value="12px"]::before{content:'12px'}.ql-snow .ql-size .ql-picker-item[data-value="14px"]::before,.ql-snow .ql-size .ql-picker-label[data-value="14px"]::before{content:'14px'}.ql-snow .ql-size .ql-picker-item[data-value="16px"]::before,.ql-snow .ql-size .ql-picker-label[data-value="16px"]::before{content:'16px'}.ql-snow .ql-size .ql-picker-item[data-value="18px"]::before,.ql-snow .ql-size .ql-picker-label[data-value="18px"]::before{content:'18px'}.ql-snow .ql-size .ql-picker-item[data-value="20px"]::before,.ql-snow .ql-size .ql-picker-label[data-value="20px"]::before{content:'20px'}.ql-snow .ql-size .ql-picker-item[data-value="24px"]::before,.ql-snow .ql-size .ql-picker-label[data-value="24px"]::before{content:'24px'}app-file-manager file-manager{display:block;padding:24px;background:#1f1f1f}.file-manager{display:flex;margin-top:16px}.file-manager__header{display:flex;align-items:center;margin-top:16px;padding:0 32px 4px 12px;font-weight:700;border-bottom:2px solid rgba(0,0,0,.05)}.file-manager__header-name{flex:1}.file-manager__header-pixel{width:150px}.file-manager__header-time{width:130px}.file-manager__small .file-item{display:flex;align-items:center;width:100%;margin:0 0 2px;padding:4px 32px 4px 0;text-align:left}.file-manager__small .file-item__icon,.file-manager__small .file-item__img{display:block;width:32px;height:32px;margin:0 8px;font-size:20px;line-height:32px;text-align:center}.file-manager__small .file-item__name{flex:1}.file-manager__small .file-item__pixel{position:inherit;width:150px}.file-manager__small .file-item__pixel>span{background:0 0}.file-manager__small .file-item__time{display:block;width:130px}.file-item{position:relative;z-index:1;flex:0 0 auto;flex-shrink:0;width:9rem;margin:0 8px 8px 0;padding:16px 0 24px;text-align:center;border:1px solid transparent;cursor:pointer}.file-item:hover{border-color:rgba(0,0,0,.05)}.file-item:hover .file-item__actions{display:block}.file-item__selected{background-color:#111d2c!important;border-color:#177ddc!important}.course__img,.file-item__img{background-color:transparent}.file-item__selected .file-item__actions{display:block}.file-item__icon{display:block;margin:16px 0;font-size:40px}.file-item__img{display:block;width:4rem;height:4rem;margin:0 auto .75rem;font-size:2.5rem;line-height:4rem;background-position:center center;background-size:cover}.file-item__name{height:28px;padding:0 8px;overflow:hidden;color:#4e5155;line-height:28px;white-space:nowrap;text-overflow:ellipsis}.file-item__pixel{position:absolute;bottom:0;left:0;width:100%}.file-item__pixel>span{display:block;width:100%;padding:2px 0;background:rgba(0,0,0,.01)}.file-item__time{display:none}.file-item__actions{position:absolute;top:8px;right:8px;display:none}.ware__color{display:inline-block;width:12px;height:12px}.ware__imgs .se__label{padding-right:8px}.ware__imgs-wrap{display:flex;align-items:center}.ware__imgs-color{display:flex;margin:0;padding:0;list-style:none}.ware__imgs-item{position:relative;width:72px;height:72px;margin-right:16px;border:1px solid #ccc}.ware__imgs-item-img{width:70px;height:70px}.ware__imgs-item-img img{max-width:100%;max-height:100%}.ware__imgs-item-del{position:absolute;top:2px;right:4px;color:#fff;line-height:normal}.ware__imgs-item::before{position:absolute;top:24px;display:block;width:100%;color:#ccc;line-height:normal;text-align:center;content:'细节图'}.ware__imgs-item:first-child::before{content:'主图*'}.ware__imgs-item-exists::before{content:''}.faq-v1__item{display:flex;align-items:center;padding:8px}.faq-v1__item-icon{font-size:24px}.faq-v1__item-title{margin-bottom:0;font-weight:400;font-size:14px}.faq-v1__item-remark{margin-bottom:0;color:#bfbfbf}.faq-v1__item-hover{background-color:rgba(0,0,0,.02);cursor:pointer}.faq-v1__item-hover:hover{background-color:rgba(0,0,0,.04)}.faq-v1__item-hover:hover .faq__item-icon,.faq-v1__item-hover:hover .faq__item-title{color:#177ddc}.task__container{border-bottom:1px solid #303030}.task__container:last-child{border-bottom:none}.task__title{margin-bottom:16px;color:#a3a4a6;font-weight:400;font-size:12px}.task__item{display:flex;align-items:center;justify-content:space-between;border-top:1px solid rgba(24,28,33,.06)}.task__item:first-child{border-top:none}.task__item-handle{margin-right:16px;color:#bfbfbf;font-size:12px;cursor:pointer}.task__item-done{color:#a3a4a6}.message__container{position:relative}.message__sidebox{position:absolute;top:0;left:0;width:250px;height:100%;background:rgba(255,255,255,.03)}.message__tools{display:flex;flex-wrap:wrap;align-items:center;padding:4px 24px;border-top:1px solid #434343}.message__tools-choose{display:flex;flex:1;flex-wrap:wrap;align-items:center}.message__content{min-height:600px}.message__item{display:flex;align-items:center;padding:4px 24px;border-top:1px solid #303030}.message__item:first-child{border-top:none}.message__item-from{display:flex;align-items:center;width:160px}.message__item-subject{width:100%;color:#595959}.message__item-subject:hover{color:#177ddc}.message__item-date{color:#bfbfbf;white-space:nowrap}.message__item-unread .message__item-subject{font-weight:700}@media (min-width:768px){.message__container{padding-left:250px}}@media (max-width:767px){.message__tools-choose{flex-basis:100%}.message__item{flex-wrap:wrap}}.course__img{display:block;padding-top:60%;background-position:center center;background-size:cover}.course__star .ant-rate{font-size:10px}.chat__container{display:flex;overflow:hidden;background:#1f1f1f;border:1px solid #303030}.chat__scroll-container{position:relative;width:100%}.chat__sidebox{display:flex;flex-direction:column;width:250px;box-shadow:6px 0 16px -8px rgba(0,0,0,.32),9px 0 28px 0 rgba(0,0,0,.2),12px 0 48px 16px rgba(0,0,0,.12);transition:.2s all}.chat__contact{display:flex;align-items:center;padding:8px 16px;color:#4e5155;cursor:pointer}.chat__contact:hover:not(.chat__contact-active){background-color:rgba(24,28,33,.03)}.chat__contact .ant-badge-status-text{color:#52c41a;font-size:12px}.chat__contact-offline{opacity:.7}.chat__contact-offline .ant-badge-status-text{color:#f5222d}.chat__contact-active{background-color:#e84c64}.chat__contact-active,.chat__contact-active .ant-badge-status-text{color:#fff}.chat__user-avatar{height:40px;border-radius:50%}.chat__message{display:flex;flex-shrink:0;margin-bottom:8px}.chat__message-container{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;padding:24px}.chat__message-left{margin-right:58px}.chat__message-left .chat__message-avatar{margin-right:8px}.chat__message-right{flex-direction:row-reverse;margin-left:58px}.chat__message-right .chat__message-avatar{margin-left:8px}.chat__message-send{text-align:center}.chat__message-avatar{width:50px;text-align:center}.chat__message-text{width:100%;color:#bfbfbf;font-size:12px;text-align:center}.chat__message-time{padding-top:2px;color:#bfbfbf;font-size:12px;white-space:nowrap}.chat__message-msg{padding:4px 8px;background:#050505;border-radius:4px}.fc-antd .fc-event,.fc-antd .fc-scrollgrid,.fc-antd td,.fc-antd th{border:1px solid #303030}.chat__message-msg--name{display:block;margin-bottom:2px}[dir=rtl] .chat__message-left{margin-right:inherit;margin-left:58px}[dir=rtl] .chat__message-left .chat__message-avatar{margin-right:inherit;margin-left:8px}[dir=rtl] .chat__message-right{margin-right:inherit;margin-left:58px}[dir=rtl] .chat__message-right .chat__message-avatar{margin-right:inherit;margin-left:8px}.fc-antd a{color:inherit}.fc-antd a,.fc-antd a:hover{text-decoration:none}.fc-antd .fc-col-header-cell{padding:8px;color:rgba(255,255,255,.85)}.fc-antd .fc-day:not(.fc-axis){padding:4px}.fc-antd .fc-day.fc-day-today{background:rgba(232,232,232,.2)}.fc-antd .fc-event{background:#1f1f1f;box-shadow:0 0 8px 0 rgba(0,0,0,.055)}.fc-antd .fc-event-title-container{padding:4px 4px 4px 20px}.fc-antd .fc-event-title-container::before{position:absolute;top:50%;left:4px;display:block;width:10px;height:10px;margin-top:-5px;background:rgba(0,0,0,.2);border-radius:50%;content:' '}.fc-antd .fc-event-title{display:block;overflow:hidden;color:rgba(255,255,255,.85);white-space:nowrap;text-overflow:ellipsis}.fc-antd .fc-event.fc-not-start.fc-end .fc-event-main{padding-left:4px}.fc-antd .fc-event.fc-not-start.fc-end .fc-event-main::before{display:none}.fc-antd .fc-event-fill-primary,.fc-antd .fc-event-primary .fc-event-title-container::before{background-color:#177ddc}.fc-antd .fc-event-fill-success,.fc-antd .fc-event-success .fc-event-title-container::before{background-color:#49aa19}.fc-antd .fc-event-danger .fc-event-title-container::before,.fc-antd .fc-event-fill-danger{background-color:#d32029}.fc-antd .fc-event-fill-warning,.fc-antd .fc-event-warning .fc-event-title-container::before{background-color:#d8bd14}.fc-antd .fc-event-fill-purple,.fc-antd .fc-event-purple .fc-event-title-container::before{background-color:#642ab5}.fc-antd .fc-event-fill-magenta,.fc-antd .fc-event-magenta .fc-event-title-container::before{background-color:#cb2b83}.fc-antd .fc-popover-header{padding:8px 16px;background:#eee}.fc-antd .fc-popover-body{background:#1f1f1f}.pro-passport{display:flex;flex-basis:100%;align-items:stretch;justify-content:stretch;min-height:100vh;overflow:hidden}.pro-passport__langs{position:fixed;top:16px;left:16px;z-index:9999}.pro-passport__langs .alain-pro__header-item{height:auto;padding:0}.pro-passport__bg{padding:0 24px;background-color:transparent;background-position:center center;background-size:cover}.pro-passport__bg-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#000;opacity:.4}.pro-passport__form{padding:32px}.pro-passport__form-logo{height:32px;text-align:center}.pro-passport__form-logo img{max-height:100%}.pro-passport__form-title{margin:16px 0;color:#bfbfbf;text-align:center}@media (max-width:991px){.pro-passport__form{width:100%}}.quick-chat{position:fixed;top:auto;right:0;bottom:0;left:auto;z-index:98;display:flex;flex:1;flex-direction:column;width:320px;margin-right:30px;background-color:#1f1f1f;border:1px solid #303030;border-bottom:none;border-radius:4px 4px 0 0;box-shadow:0 16px 24px 2px rgba(0,0,0,.14)}.quick-chat__bar{display:flex;flex-direction:row;align-items:center;height:32px;border-bottom:1px solid #303030;cursor:pointer;user-select:none}.quick-chat__bar--title{flex:1;height:32px;padding-left:16px;font-size:14px;line-height:32px}.quick-chat__bar--title:hover{background-color:#242424}.quick-chat__bar--title-has-message{animation:antSwingIn 1.5s infinite}.quick-chat__bar--menu{display:flex;align-items:center;height:32px}.quick-chat__bar--menu .anticon{font-size:18px}.quick-chat__bar--close{padding:0 16px 0 8px}.quick-chat__body{max-height:370px;transition:max-height .5s cubic-bezier(0,1,0,1)}.quick-chat__content{position:relative;display:flex;flex-direction:column;height:320px}.app-dd__op,.quick-chat .chat__message{align-items:center}.quick-chat__content .chat__scroll-container{display:block}.quick-chat__reply{height:50px;padding:8px;border-top:1px solid #303030}.quick-chat__reply--ipt{display:block;width:100%;height:100%;background:0 0;border:none;outline:0}.quick-chat .chat__message-avatar{width:28px}.quick-chat .chat__user-avatar{height:20px}.quick-chat__collapsed .quick-chat__body{max-height:0}.quick-chat__collapsed .quick-chat__body .chat__scroll-container{display:none}[dir=rtl] .quick-chat{right:inherit;left:0;margin-right:inherit;margin-left:30px}[dir=rtl] .quick-chat__bar--title{padding-right:16px;padding-left:0}.app-dd{position:relative;display:block}.app-dd__op{position:absolute;top:-24px;right:24px;z-index:99;display:flex;justify-content:center}.app-dd__op-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;margin-left:8px;color:#fff;background:rgba(0,0,0,.4);border-radius:0 0 4px 4px;cursor:pointer;pointer-events:auto}.app-dd__op-btn:hover{background:rgba(0,0,0,.3)}.app-dd__ph{opacity:.3}.app-dd__item{position:relative;display:block}.app-dd__item-btn{position:absolute;top:8px;right:8px;display:none;align-items:center;justify-content:center;width:32px;height:32px;background:rgba(0,0,0,.02);cursor:pointer}.app-dd__item:hover .app-dd__item-refresh{display:flex}.app-dd__item-design{opacity:.8;user-select:none}.app-dd__item-design .app-dd__item-handle{display:flex!important;background:rgba(0,0,0,.1)}.app-dd__item-design .app-dd__item-refresh{display:none!important}.app-dd__item.cdk-drag-preview{border-radius:4px;box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.app-dd__item.cdk-drag-animating{transition:transform 250ms cubic-bezier(0,0,.2,1)}
\ No newline at end of file
diff --git a/src/assets/tmp/app-data.json b/src/assets/tmp/app-data.json
new file mode 100644
index 00000000..851ca714
--- /dev/null
+++ b/src/assets/tmp/app-data.json
@@ -0,0 +1,35 @@
+{
+ "app": {
+ "name": "Ng Alain Pro",
+ "description": "Ng-zorro admin panel front-end framework"
+ },
+ "user": {
+ "name": "Admin",
+ "avatar": "./assets/tmp/img/avatar.jpg",
+ "email": "cipchk@qq.com"
+ },
+ "menu": [
+ {
+ "text": "主导航",
+ "i18n": "menu.main",
+ "group": true,
+ "hideInBreadcrumb": true,
+ "children": [
+ {
+ "text": "仪表盘",
+ "i18n": "menu.dashboard",
+ "icon": "anticon anticon-dashboard",
+ "link": "/dashboard"
+ },
+ {
+ "text": "快捷菜单",
+ "i18n": "menu.shortcut",
+ "icon": "anticon anticon-rocket",
+ "shortcutRoot": true,
+ "children": []
+ }
+ ]
+ }
+ ]
+ }
+
\ No newline at end of file
diff --git a/src/assets/tmp/demo.docx b/src/assets/tmp/demo.docx
new file mode 100644
index 00000000..06974ccf
Binary files /dev/null and b/src/assets/tmp/demo.docx differ
diff --git a/src/assets/tmp/demo.pdf b/src/assets/tmp/demo.pdf
new file mode 100644
index 00000000..73d3d8cb
Binary files /dev/null and b/src/assets/tmp/demo.pdf differ
diff --git a/src/assets/tmp/demo.pptx b/src/assets/tmp/demo.pptx
new file mode 100644
index 00000000..e794dacd
Binary files /dev/null and b/src/assets/tmp/demo.pptx differ
diff --git a/src/assets/tmp/demo.xlsx b/src/assets/tmp/demo.xlsx
new file mode 100644
index 00000000..86371d17
Binary files /dev/null and b/src/assets/tmp/demo.xlsx differ
diff --git a/src/assets/tmp/demo.zip b/src/assets/tmp/demo.zip
new file mode 100644
index 00000000..96450fd0
Binary files /dev/null and b/src/assets/tmp/demo.zip differ
diff --git a/src/assets/tmp/docx.docx b/src/assets/tmp/docx.docx
new file mode 100644
index 00000000..58698268
Binary files /dev/null and b/src/assets/tmp/docx.docx differ
diff --git a/src/assets/tmp/i18n/el-GR.json b/src/assets/tmp/i18n/el-GR.json
new file mode 100644
index 00000000..2da51e4a
--- /dev/null
+++ b/src/assets/tmp/i18n/el-GR.json
@@ -0,0 +1,151 @@
+{
+ "menu.search.placeholder": "Αναζήτηση ατόμων, αρχείων, φωτογραφιών...",
+ "menu.fullscreen": "Πλήρης οθόνη",
+ "menu.fullscreen.exit": "Έξοδος από πλήρη οθόνη",
+ "menu.clear.local.storage": "Καθαρισμός τοπικής μνήμης",
+ "menu.lang": "Γλώσσα",
+ "menu.main": "Κύριο μενού",
+ "menu.dashboard": "Πίνακας διαχείρισης",
+ "menu.dashboard.v1": "Προεπιλογή",
+ "menu.dashboard.analysis": "Ανάλυση",
+ "menu.dashboard.monitor": "Εποπτεία",
+ "menu.dashboard.workplace": "Χώρος εργασίας",
+ "menu.shortcut": "Συντομεύσεις",
+ "menu.widgets": "Γραφικά στοιχεία",
+ "menu.alain": "Alain",
+ "menu.style": "Στυλ",
+ "menu.style.typography": "Τυπογραφία",
+ "menu.style.gridmasonry": "Πλέγμα Masonry",
+ "menu.style.colors": "Χρώματα",
+ "menu.delon": "Βιβλιοθήκη Delon",
+ "menu.delon.form": "Δυναμική φόρμα",
+ "menu.delon.table": "Απλός πίνακας",
+ "menu.delon.util": "Εργαλεία",
+ "menu.delon.print": "Εκτύπωση",
+ "menu.delon.guard": "Προστασία διαδρομής",
+ "menu.delon.cache": "Προσωρινή μνήμη",
+ "menu.delon.qr": "QR",
+ "menu.delon.acl": "ACL",
+ "menu.delon.downfile": "Λήψη αρχείου",
+ "menu.delon.xlsx": "Excel",
+ "menu.delon.zip": "Zip",
+ "menu.pro": "Antd Pro",
+ "menu.form": "Φόρμα",
+ "menu.form.basicform": "Βασική φόρμα",
+ "menu.form.stepform": "Φόρμα βημάτων",
+ "menu.form.stepform.info": "Φόρμα βημάτων(γράψτε πληροφορίες μεταφοράς)",
+ "menu.form.stepform.confirm": "Φόρμα βημάτων(επιβεβαιώστε τις πληροφορίες μεταφοράς)",
+ "menu.form.stepform.result": "Φόρμα βημάτων(ολοκληρωμένη)",
+ "menu.form.advancedform": "Σύνθετη φόρμα",
+ "menu.list": "Λίστα",
+ "menu.list.searchtable": "Πίνακας αναζήτησης",
+ "menu.list.basiclist": "Βασική λίστα",
+ "menu.list.cardlist": "Λίστα καρτών",
+ "menu.list.searchlist": "Λίστα αναζήτησης",
+ "menu.list.searchlist.articles": "Λίστα αναζήτησης (άρθρα)",
+ "menu.list.searchlist.projects": "Λίστα αναζήτησης (έργα)",
+ "menu.list.searchlist.applications": "Λίστα αναζήτησης (εφαρμογές)",
+ "menu.profile": "Προφίλ",
+ "menu.profile.basic": "Βασικό προφίλ",
+ "menu.profile.advanced": "Σύνθετο προφίλ",
+ "menu.result": "Αποτέλεσμα",
+ "menu.result.success": "Επιτυχία",
+ "menu.result.fail": "Αποτυχία",
+ "menu.exception": "Εξαίρεση",
+ "menu.exception.not-permission": "403",
+ "menu.exception.not-find": "404",
+ "menu.exception.server-error": "500",
+ "menu.account": "Λογαριασμός",
+ "menu.account.center": "Κέντρο διαχείρισης λογαριασμού",
+ "menu.account.settings": "Ρυθμίσεις λογαριασμού",
+ "menu.account.trigger": "Πρόκληση σφάλματος",
+ "menu.account.logout": "Αποσύνδεση",
+ "menu.more": "Περισσότερα",
+ "menu.report": "Αναφορά",
+ "menu.report.relation": "Χάρτης συσχετίσεων",
+ "menu.extras": "Επιπλέον",
+ "menu.extras.helpcenter": "Κέντρο βοήθειας",
+ "menu.extras.settings": "Ρυθμίσεις",
+ "menu.extras.poi": "Poi",
+ "app.analysis.test": "Gongzhuan Αρ.{{no}} κατάστημα",
+ "app.analysis.introduce": "Εισαγωγή",
+ "app.analysis.total-sales": "Σύνολο πωλήσεων",
+ "app.analysis.day-sales": "Ημερήσιες πωλήσεις",
+ "app.analysis.visits": "Επισκέψεις",
+ "app.analysis.visits-trend": "Τάση επισκεψιμότητας",
+ "app.analysis.visits-ranking": "Κατατάξη επισκεψιμότητας",
+ "app.analysis.day-visits": "Ημερήσια επισκεψιμότητα",
+ "app.analysis.week": "Εβδομαδιαία αναλογία",
+ "app.analysis.day": "Ημερήσια αναλογία",
+ "app.analysis.payments": "Πληρωμές",
+ "app.analysis.conversion-rate": "Συναλλαγματική Ισοτιμία",
+ "app.analysis.operational-effect": "Λειτουργική επίδραση",
+ "app.analysis.sales-trend": "Τάση πωλήσεων καταστημάτων",
+ "app.analysis.sales-ranking": "Κατάταξη πωλήσεων",
+ "app.analysis.all-year": "Όλο τον χρόνο",
+ "app.analysis.all-month": "Όλο τον μήνα",
+ "app.analysis.all-week": "Όλη την εβδομάδα",
+ "app.analysis.all-day": "Όλη μέρα",
+ "app.analysis.search-users": "Αναζήτηση χρηστών",
+ "app.analysis.per-capita-search": "Αναζήτηση ανά κεφάλαιο",
+ "app.analysis.online-top-search": "(Ζωντανά) Κορυφαία αναζήτηση",
+ "app.analysis.the-proportion-of-sales": "Το ποσοστό των πωλήσεων",
+ "app.analysis.channel.all": "ΟΛΑ",
+ "app.analysis.channel.online": "Ζωντανά",
+ "app.analysis.channel.stores": "Καταστήματα",
+ "app.analysis.sales": "Πωλήσεις",
+ "app.analysis.traffic": "Κίνηση",
+ "app.analysis.table.rank": "Κατάταξη",
+ "app.analysis.table.search-keyword": "Λέξη κλειδί",
+ "app.analysis.table.users": "Χρήστες",
+ "app.analysis.table.weekly-range": "Εβδομαδιαίο εύρος",
+ "app.monitor.trading-activity": "Δραστηριότητα συναλλαγών σε πραγματικό χρόνο",
+ "app.monitor.total-transactions": "Σύνολο ημερήσιων συναλλαγών",
+ "app.monitor.sales-target": "Ποσοστό ολοκλήρωσης στόχου πωλήσεων",
+ "app.monitor.remaining-time": "Εναπομείναν χρόνος δραστηριότητας",
+ "app.monitor.total-transactions-per-second": "Σύνολο συναλλαγών ανά δευτερόλεπτο",
+ "app.monitor.activity-forecast": "Πρόβλεψη δραστηριότητας",
+ "app.monitor.efficiency": "Αποδοτικότητα",
+ "app.monitor.ratio": "Αναλογία",
+ "app.monitor.proportion-per-category": "Ποσοστό ανά κατηγορία",
+ "app.monitor.fast-food": "Γρήγορο φαγητό",
+ "app.monitor.western-food": "Δυτικό φαγητό",
+ "app.monitor.hot-pot": "Ζεστό φαγητό",
+ "app.monitor.waiting-for-implementation": "Αναμονή για υλοποίηση",
+ "app.monitor.popular-searches": "Δημοφιλείς αναζητήσεις",
+ "app.monitor.resource-surplus": "Πλεόνασμα πόρων",
+ "app.monitor.fund-surplus": "Κεφαλαιακό πλεόνασμα",
+ "app.lock": "Κλείδωμα",
+ "app.login.message-invalid-credentials": "Λάθος όνομα χρήστη ή κωδικός πρόσβασης(admin/ant.design)",
+ "app.login.message-invalid-verification-code": "Μη έγκυρος κωδικός επιβεβαίωσης",
+ "app.login.tab-login-credentials": "Στοιχεία σύνδεσης",
+ "app.login.tab-login-mobile": "Αριθμός κινητού",
+ "app.login.remember-me": "Να με θυμάσαι",
+ "app.login.forgot-password": "Ξέχασα τον κωδικό μου",
+ "app.login.sign-in-with": "Σύνδεση με",
+ "app.login.signup": "Εγγραφή",
+ "app.login.login": "Σύνδεση",
+ "app.register.register": "Εγγραφή",
+ "app.register.get-verification-code": "Λήψη κωδικού",
+ "app.register.sign-in": "Εχετε ήδη λογαριασμό;",
+ "app.register-result.msg": "Λογαριασμός:εγγεγραμμένος ως {{email}}",
+ "app.register-result.activation-email": "Το email ενεργοποίησης έχει σταλεί στο email σας και έχει ισχύ εώς 24 ώρες. Παρακαλούμε συνδεθείτε στο email σας εγκαίρως και κάντε κλικ στο σύνδεσμο του email για να ενεργοποιήσετε το λογαριασμό.",
+ "app.register-result.back-home": "Επιστροφή στην αρχική σελίδα",
+ "app.register-result.view-mailbox": "Προβολή αλληλογραφίας",
+ "validation.email.required": "Παρακαλώ εισάγετε το email σας!",
+ "validation.email.wrong-format": "Η μορφή της διεύθυνση email δεν είναι έγκυρη!",
+ "validation.password.required": "Παρακαλώ εισάγετε τον κωδικό πρόσβασης!",
+ "validation.password.twice": "Οι κωδικοί πρόσβασης που εισαγάγατε δεν ταιριάζουν!",
+ "validation.password.strength.msg": "Παρακαλώ εισάγετε τουλάχιστον 6 χαρακτήρες, μην χρησιμοποιείτε αδύναμους κωδικούς",
+ "validation.password.strength.strong": "Ισχύς κωδικού: ισχυρός",
+ "validation.password.strength.medium": "Ισχύς κωδικού: μέτριος",
+ "validation.password.strength.short": "Ισχύς κωδικού: αδύναμος",
+ "validation.confirm-password.required": "Παρακαλώ επιβεβαιώστε τον κωδικό πρόσβασης!",
+ "validation.phone-number.required": "Παρακαλω εισάγετε τον αριθμό τηλεφώνου σας!",
+ "validation.phone-number.wrong-format": "O αριθμός τηλεφώνου δέν είναι έγκυρος!",
+ "validation.verification-code.required": "Παρακαλώ εισάγετε τον κωδικό επιβεβαίωσης!",
+ "validation.title.required": "Παρακαλώ εισάγετε έναν τίτλο",
+ "validation.date.required": "Παρακαλώ επιλέξτε την ημερομηνία έναρξης και λήξης",
+ "validation.goal.required": "Παρακαλώ εισάγετε την περιγραφή του στόχου",
+ "validation.standard.required": "Παρακαλώ εισάγετε μια μέτρηση"
+}
diff --git a/src/assets/tmp/i18n/en-US.json b/src/assets/tmp/i18n/en-US.json
new file mode 100644
index 00000000..e60a7160
--- /dev/null
+++ b/src/assets/tmp/i18n/en-US.json
@@ -0,0 +1,251 @@
+{
+ "menu.search.placeholder": "Search for people, file, photos...",
+ "menu.fullscreen": "Fullscreen",
+ "menu.fullscreen.exit": "Exit Fullscreen",
+ "menu.clear.local.storage": "Clear Local Storage",
+ "menu.lang": "Language",
+ "menu.main": "Main Navigation",
+ "menu.dashboard": "Dashboard",
+ "menu.dashboard.v1": "Default",
+ "menu.dashboard.analysis": "Analysis",
+ "menu.dashboard.monitor": "Monitor",
+ "menu.dashboard.workplace": "Workplace",
+ "menu.shortcut": "Shortcut",
+ "menu.widgets": "Widgets",
+ "menu.alain": "Alain",
+ "menu.style": "Style",
+ "menu.style.typography": "Typography",
+ "menu.style.gridmasonry": "Grid Masonry",
+ "menu.style.colors": "Colors",
+ "menu.delon": "Delon Lib",
+ "menu.delon.form": "Dynamic Form",
+ "menu.delon.table": "Simple table",
+ "menu.delon.util": "Util",
+ "menu.delon.print": "Print",
+ "menu.delon.guard": "Route Guard",
+ "menu.delon.cache": "Cache",
+ "menu.delon.qr": "QR",
+ "menu.delon.acl": "ACL",
+ "menu.delon.downfile": "Download File",
+ "menu.delon.xlsx": "Excel",
+ "menu.delon.zip": "Zip",
+ "menu.pro": "Antd Pro",
+ "menu.form": "Form",
+ "menu.form.basicform": "Basic Form",
+ "menu.form.stepform": "Step Form",
+ "menu.form.stepform.info": "Step Form(write transfer information)",
+ "menu.form.stepform.confirm": "Step Form(confirm transfer information)",
+ "menu.form.stepform.result": "Step Form(finished)",
+ "menu.form.advancedform": "Advanced Form",
+ "menu.list": "List",
+ "menu.list.searchtable": "Search Table",
+ "menu.list.basiclist": "Basic List",
+ "menu.list.cardlist": "Card List",
+ "menu.list.searchlist": "Search List",
+ "menu.list.searchlist.articles": "Search List(articles)",
+ "menu.list.searchlist.projects": "Search List(projects)",
+ "menu.list.searchlist.applications": "Search List(applications)",
+ "menu.profile": "Profile",
+ "menu.profile.basic": "Basic Profile",
+ "menu.profile.advanced": "Advanced Profile",
+ "menu.result": "Result",
+ "menu.result.success": "Success",
+ "menu.result.fail": "Fail",
+ "menu.exception": "Exception",
+ "menu.exception.not-permission": "403",
+ "menu.exception.not-find": "404",
+ "menu.exception.server-error": "500",
+ "menu.account": "Account",
+ "menu.account.center": "Account Center",
+ "menu.account.settings": "Account Settings",
+ "menu.account.trigger": "Trigger Error",
+ "menu.account.logout": "Logout",
+ "menu.more": "More",
+ "menu.report": "Report",
+ "menu.report.relation": "Relation Map",
+ "menu.extras": "Extra",
+ "menu.extras.helpcenter": "Help Center",
+ "menu.extras.settings": "Settings",
+ "menu.extras.poi": "Poi",
+ "app.analysis.test": "Gongzhuan No.{{no}} shop",
+ "app.analysis.introduce": "Introduce",
+ "app.analysis.total-sales": "Total Sales",
+ "app.analysis.day-sales": "Day Sales",
+ "app.analysis.visits": "Visits",
+ "app.analysis.visits-trend": "Visits Trend",
+ "app.analysis.visits-ranking": "Visits Ranking",
+ "app.analysis.day-visits": "Day Visits",
+ "app.analysis.week": "Week Ratio",
+ "app.analysis.day": "Day Ratio",
+ "app.analysis.payments": "Payments",
+ "app.analysis.conversion-rate": "Conversion Rate",
+ "app.analysis.operational-effect": "Operational Effect",
+ "app.analysis.sales-trend": "Stores Sales Trend",
+ "app.analysis.sales-ranking": "Sales Ranking",
+ "app.analysis.all-year": "All Year",
+ "app.analysis.all-month": "All Month",
+ "app.analysis.all-week": "All Week",
+ "app.analysis.all-day": "All day",
+ "app.analysis.search-users": "Search Users",
+ "app.analysis.per-capita-search": "Per Capita Search",
+ "app.analysis.online-top-search": "Online Top Search",
+ "app.analysis.the-proportion-of-sales": "The Proportion Of Sales",
+ "app.analysis.channel.all": "ALL",
+ "app.analysis.channel.online": "Online",
+ "app.analysis.channel.stores": "Stores",
+ "app.analysis.sales": "Sales",
+ "app.analysis.traffic": "Traffic",
+ "app.analysis.table.rank": "Rank",
+ "app.analysis.table.search-keyword": "Keyword",
+ "app.analysis.table.users": "Users",
+ "app.analysis.table.weekly-range": "Weekly Range",
+ "app.monitor.trading-activity": "Real-Time Trading Activity",
+ "app.monitor.total-transactions": "Total transactions today",
+ "app.monitor.sales-target": "Sales target completion rate",
+ "app.monitor.remaining-time": "Remaining time of activity",
+ "app.monitor.total-transactions-per-second": "Total transactions per second",
+ "app.monitor.activity-forecast": "Activity forecast",
+ "app.monitor.efficiency": "Efficiency",
+ "app.monitor.ratio": "Ratio",
+ "app.monitor.proportion-per-category": "Proportion Per Category",
+ "app.monitor.fast-food": "Fast food",
+ "app.monitor.western-food": "Western food",
+ "app.monitor.hot-pot": "Hot pot",
+ "app.monitor.waiting-for-implementation": "Waiting for implementation",
+ "app.monitor.popular-searches": "Popular Searches",
+ "app.monitor.resource-surplus": "Resource Surplus",
+ "app.monitor.fund-surplus": "Fund Surplus",
+ "app.lock": "Lock",
+ "app.login.message-invalid-credentials": "Invalid username or password(admin/ant.design)",
+ "app.login.message-invalid-verification-code": "Invalid verification code",
+ "app.login.tab-login-credentials": "Credentials",
+ "app.login.tab-login-mobile": "Mobile number",
+ "app.login.remember-me": "Remember me",
+ "app.login.forgot-password": "Forgot your password?",
+ "app.login.sign-in-with": "Sign in with",
+ "app.login.signup": "Sign up",
+ "app.login.login": "Login",
+ "app.register.register": "Register",
+ "app.register.get-verification-code": "Get code",
+ "app.register.sign-in": "Already have an account?",
+ "app.register-result.msg": "Account:registered at {{email}}",
+ "app.register-result.activation-email": "The activation email has been sent to your email address and is valid for 24 hours. Please log in to the email in time and click on the link in the email to activate the account.",
+ "app.register-result.back-home": "Back to home",
+ "app.register-result.view-mailbox": "View mailbox",
+ "validation.email.required": "Please enter your email!",
+ "validation.email.wrong-format": "The email address is in the wrong format!",
+ "validation.password.required": "Please enter your password!",
+ "validation.password.twice": "The passwords entered twice do not match!",
+ "validation.password.strength.msg": "Please enter at least 6 characters and don't use passwords that are easy to guess.",
+ "validation.password.strength.strong": "Strength: strong",
+ "validation.password.strength.medium": "Strength: medium",
+ "validation.password.strength.short": "Strength: too short",
+ "validation.confirm-password.required": "Please confirm your password!",
+ "validation.phone-number.required": "Please enter your phone number!",
+ "validation.phone-number.wrong-format": "Malformed phone number!",
+ "validation.verification-code.required": "Please enter the verification code!",
+ "validation.title.required": "Please enter a title",
+ "validation.date.required": "Please select the start and end date",
+ "validation.goal.required": "Please enter a description of the goal",
+ "validation.standard.required": "Please enter a metric",
+ "common.list": "List",
+ "common.add": "Add",
+ "common.edit": "Edit",
+ "common.delete": "Delete",
+ "common.no-data": "No Data",
+ "common.captcha-btn.second": "s",
+ "common.captcha-btn.send": "Send",
+ "validation.phone-number": "Phone Number",
+ "validation.verification-code": "Verification Code",
+ "validation.password": "Password",
+ "app.setting.pagestyle": "Page style setting",
+ "app.setting.pagestyle.dark": "Dark style",
+ "app.setting.pagestyle.light": "Light style",
+ "app.setting.content-width": "Content Width",
+ "app.setting.content-width.fixed": "Fixed",
+ "app.setting.content-width.fluid": "Fluid",
+ "app.setting.themecolor": "Theme Color",
+ "app.setting.themecolor.dust": "Dust Red",
+ "app.setting.themecolor.volcano": "Volcano",
+ "app.setting.themecolor.sunset": "Sunset Orange",
+ "app.setting.themecolor.cyan": "Cyan",
+ "app.setting.themecolor.green": "Polar Green",
+ "app.setting.themecolor.daybreak": "Daybreak Blue (default)",
+ "app.setting.themecolor.geekblue": "Geek Glue",
+ "app.setting.themecolor.purple": "Golden Purple",
+ "app.setting.navigationmode": "Navigation Mode",
+ "app.setting.sidemenu": "Side Menu Layout",
+ "app.setting.topmenu": "Top Menu Layout",
+ "app.setting.fixedheader": "Fixed Header",
+ "app.setting.fixedsidebar": "Fixed Sidebar",
+ "app.setting.fixedsidebar.hint": "Works on Side Menu Layout",
+ "app.setting.hideheader": "Hidden Header when scrolling",
+ "app.setting.hideheader.hint": "Works when Hidden Header is enabled",
+ "app.setting.onlyicon": "Only icon",
+ "app.setting.onlyicon.hint": "Works on Top Menu Layout",
+ "app.setting.othersettings": "Other Settings",
+ "app.setting.weakmode": "Weak Mode",
+ "app.setting.copy": "Copy Setting",
+ "app.setting.copyinfo": "Copy success, please replace it according to the contents of clipboard.",
+ "app.setting.production.hint": "Setting panel shows in development environment only, please manually modify",
+ "app.setting.copy.result": "Configure in [src/styles/theme.less]: \n{{colorVars}}\n\nConfigure in [src/environments/*]:\nexport const environment = {\n ...\n pro: {\n{{layoutVars}}\n }\n}",
+ "menu.dashboard.dd": "Customize",
+ "menu.other.calendar": "Calendar",
+ "menu.other.calendar.basic": "Basic Calendar",
+ "menu.other.calendar.list": "List View",
+ "menu.other.calendar.events": "Events",
+ "menu.other.faq": "FAQ",
+ "menu.other.faq.v1": "FAQ v1",
+ "menu.other.faq.v2": "FAQ v2",
+ "menu.other.faq.v3": "FAQ v3",
+ "menu.other.kanban-board": "Kanban board",
+ "menu.other.task": "Tasks",
+ "menu.other.forum": "Forums",
+ "menu.other.email": "E-Mail",
+ "menu.other.project": "Projects",
+ "menu.other.client": "Clients",
+ "menu.other.contact": "Contacts",
+ "menu.other.pricing": "Pricing",
+ "menu.other.billing": "Billing",
+ "menu.other.course": "Courses",
+ "menu.other.chat": "Chat",
+ "menu.other.gallery": "Gallery",
+ "menu.other.article": "Articles",
+ "menu.other.voting": "Voting",
+ "menu.other.invoice": "Invoice",
+ "menu.settings": "Settings",
+ "menu.pages": "Pages",
+ "menu.ec": "E-commerce",
+ "menu.ec.ware": "Ware",
+ "menu.ec.trade": "Trade",
+ "menu.file": "File",
+ "menu.file.docx": "Docx",
+ "menu.file.xlsx": "Xlsx",
+ "menu.file.pdf": "Pdf",
+ "menu.system": "System",
+ "menu.system.file-manager": "File Manager",
+ "menu.system.user": "User",
+ "menu.system.role": "Role",
+ "menu.system.permission": "Permission",
+ "menu.system.menu": "Menu",
+ "menu.system.log": "Log",
+ "menu.map": "Maps",
+ "menu.map.google": "Google Maps",
+ "menu.map.baidu": "Baidu Maps",
+ "menu.chart": "Charts",
+ "menu.chart.g2": "G2",
+ "menu.chart.ngx-charts": "Ngx Charts",
+ "menu.chart.ngx-trend": "Ngx Trend",
+ "menu.chart.mermaid": "Mermaid",
+ "menu.chart.gantt": "Gantt",
+ "menu.account.lock": "Lock",
+ "menu.account.login": "Login + Register",
+ "menu.account.login2": "Login + Register 2",
+ "menu.account.login3": "Login + Register 3",
+ "app.sys.menu.list": "Menu List",
+ "app.sys.menu.root": "Add Root Menu",
+ "app.sys.permission.list": "Permission List",
+ "app.sys.permission.root": "Add Root Node",
+ "layout.pro.user.link.home": "Pro Home",
+ "layout.pro.user.link.alain": "Alain"
+}
diff --git a/src/assets/tmp/i18n/es-ES.json b/src/assets/tmp/i18n/es-ES.json
new file mode 100644
index 00000000..9b7a0ad5
--- /dev/null
+++ b/src/assets/tmp/i18n/es-ES.json
@@ -0,0 +1,153 @@
+{
+ "menu.search.placeholder": "Buscar personas, archivos, fotos...",
+ "menu.fullscreen": "Pantalla completa",
+ "menu.fullscreen.exit": "Salir de pantalla completa",
+ "menu.clear.local.storage": "Borrar Local Storage",
+ "menu.lang": "Idioma",
+ "menu.main": "Navegación Principal",
+ "menu.dashboard": "Dashboard",
+ "menu.dashboard.v1": "Por defecto",
+ "menu.dashboard.analysis": "Análisis",
+ "menu.dashboard.monitor": "Monitor",
+ "menu.dashboard.workplace": "Espacio de trabajo",
+ "menu.shortcut": "Atajo",
+ "menu.widgets": "Complementos",
+ "menu.alain": "Alain",
+ "menu.style": "Estilo",
+ "menu.style.typography": "Tipografía",
+ "menu.style.gridmasonry": "Grid Masonry",
+ "menu.style.colors": "Colores",
+ "menu.delon": "Delon Lib",
+ "menu.delon.form": "Formularios Dinámicos",
+ "menu.delon.table": "Tabla simple",
+ "menu.delon.util": "Util",
+ "menu.delon.print": "Imprimir",
+ "menu.delon.guard": "Guard de Rutas",
+ "menu.delon.cache": "Cache",
+ "menu.delon.qr": "QR",
+ "menu.delon.acl": "ACL",
+ "menu.delon.downfile": "Descargar archivo",
+ "menu.delon.xlsx": "Excel",
+ "menu.delon.zip": "Zip",
+ "menu.pro": "Antd Pro",
+ "menu.form": "Formulario",
+ "menu.form.basicform": "Formulario Básico",
+ "menu.form.stepform": "Formulario en Pasos",
+ "menu.form.stepform.info": "Step Form(escribir información de transferencia)",
+ "menu.form.stepform.confirm": "Step Form(confirmar la información de la transferencia)",
+ "menu.form.stepform.result": "Step Form(terminado)",
+ "menu.form.advancedform": "Formulario avanzado",
+ "menu.list": "Lista",
+ "menu.list.searchtable": "Buscar en la tabla",
+ "menu.list.basiclist": "Lista Básica",
+ "menu.list.cardlist": "Lsita de Cartas",
+ "menu.list.searchlist": "Lista de Búsqueda",
+ "menu.list.searchlist.articles": "Lista de Búsqueda(artículos)",
+ "menu.list.searchlist.projects": "Lista de Búsqueda(proyectos)",
+ "menu.list.searchlist.applications": "Lista de Búsqueda(aplicaciones)",
+ "menu.profile": "Perfil",
+ "menu.profile.basic": "Perfil Básico",
+ "menu.profile.advanced": "Perfil Avanzado",
+ "menu.result": "Resultado",
+ "menu.result.success": "Success",
+ "menu.result.fail": "Fail",
+ "menu.exception": "Exception",
+ "menu.exception.not-permission": "403",
+ "menu.exception.not-find": "404",
+ "menu.exception.server-error": "500",
+ "menu.account": "Cuenta",
+ "menu.account.center": "Cuenta",
+ "menu.account.settings": "Configuraciones",
+ "menu.account.trigger": "Lanzar Error",
+ "menu.account.logout": "Cerrar sesión",
+ "menu.more": "Más",
+ "menu.report": "Reporte",
+ "menu.report.relation": "Relation Map",
+ "menu.extras": "Extra",
+ "menu.extras.helpcenter": "Centro de ayuda",
+ "menu.extras.settings": "Configuraciones",
+ "menu.extras.poi": "Poi",
+ "app.analysis.test": "Gongzhuan tienda No.{{no}}",
+ "app.analysis.introduce": "Introduzca",
+ "app.analysis.total-sales": "Total Ventas",
+ "app.analysis.day-sales": "Ventas diarias",
+ "app.analysis.visits": "Visitas",
+ "app.analysis.visits-trend": "Tendencia de visitas",
+ "app.analysis.visits-ranking": "Ranking de visitas",
+ "app.analysis.day-visits": "Visitas Diarias",
+ "app.analysis.week": "Ratio por Semana",
+ "app.analysis.day": "Ratio Diario",
+ "app.analysis.payments": "Pagos",
+ "app.analysis.conversion-rate": "Tipo de Conversión",
+ "app.analysis.operational-effect": "Efecto operacional",
+ "app.analysis.sales-trend": "Tendencia de ventas de las tiendas",
+ "app.analysis.sales-ranking": "Ranking de ventas",
+ "app.analysis.all-year": "Todo el Año",
+ "app.analysis.all-month": "Todo el Mes",
+ "app.analysis.all-week": "Toda la Semana",
+ "app.analysis.all-day": "Todos los días",
+ "app.analysis.search-users": "Buscar Usuarios",
+ "app.analysis.per-capita-search": "Búsqueda per cápita",
+ "app.analysis.online-top-search": "Online Top Search",
+ "app.analysis.the-proportion-of-sales": "The Proportion Of Sales",
+ "app.analysis.channel.all": "Todos",
+ "app.analysis.channel.online": "En line",
+ "app.analysis.channel.stores": "Tiendas",
+ "app.analysis.sales": "Ventas",
+ "app.analysis.traffic": "Tráfico",
+ "app.analysis.table.rank": "Rango",
+ "app.analysis.table.search-keyword": "Palabra clave",
+ "app.analysis.table.users": "Usuarios",
+ "app.analysis.table.weekly-range": "Rango semanal",
+ "app.monitor.trading-activity": "Actividad comercial en tiempo real",
+ "app.monitor.total-transactions": "Total de transacciones diarias",
+ "app.monitor.sales-target": "Tasa de finalización del objetivo de ventas",
+ "app.monitor.remaining-time": "Tiempo restante de actividad",
+ "app.monitor.total-transactions-per-second": "Total de transacciones por segundo",
+ "app.monitor.activity-forecast": "Previsión de actividad",
+ "app.monitor.efficiency": "Eficiencia",
+ "app.monitor.ratio": "Ratio",
+ "app.monitor.proportion-per-category": "Proporción por categoría",
+ "app.monitor.fast-food": "Comida rápida",
+ "app.monitor.western-food": "Comida occidental",
+ "app.monitor.hot-pot": "Estofados",
+ "app.monitor.waiting-for-implementation": "Esperando una implmentación",
+ "app.monitor.popular-searches": "Búsquedas populares",
+ "app.monitor.resource-surplus": "Excedente de recursos",
+ "app.monitor.fund-surplus": "Superávit del Fondo",
+ "app.lock": "Bloqueo",
+ "app.login.message-invalid-credentials": "Nombre de usuario o contraseña no válidos(admin/ant.design)",
+ "app.login.message-invalid-verification-code": "Código de verificación inválido",
+ "app.login.tab-login-credentials": "Credenciales",
+ "app.login.tab-login-mobile": "Número de móvil",
+ "app.login.remember-me": "Rercuérdame",
+ "app.login.forgot-password": "¿Ha olvidado su contraseña?",
+ "app.login.sign-in-with": "Acceder con",
+ "app.login.signup": "Ingresar",
+ "app.login.login": "Iniciar de sesión",
+ "app.register.register": "Registro",
+ "app.register.get-verification-code": "Obtener código",
+ "app.register.sign-in": "¿Ya tiene una cuenta?",
+ "app.register-result.msg": "Cuenta: registrada con {{email}}",
+ "app.register-result.activation-email":
+ "El correo electrónico de activación se ha enviado a su dirección de correo electrónico y es válido durante 24 horas. Por favor, inicie sesión en el correo electrónico a tiempo y haga clic en el enlace del correo electrónico para activar la cuenta.",
+ "app.register-result.back-home": "Volver a la página de inicio",
+ "app.register-result.view-mailbox": "Ver buzón",
+ "validation.email.required": "¡Por favor, introduzca su correo electrónico!",
+ "validation.email.wrong-format": "¡La dirección de correo electrónico tiene un formato incorrecto.!",
+ "validation.password.required": "¡Por favor, introduzca su contraseña!",
+ "validation.password.twice": "¡Las contraseñas introducidas no coinciden!",
+ "validation.password.strength.msg":
+ "Por favor, introduce al menos 6 caracteres y no utilices contraseñas fáciles de adivinar.",
+ "validation.password.strength.strong": "Fortaleza: fuerte",
+ "validation.password.strength.medium": "Fortaleza: medio",
+ "validation.password.strength.short": "Fortaleza: demasiado corto",
+ "validation.confirm-password.required": "¡Por favor, Confirme su contraseña!",
+ "validation.phone-number.required": "¡Por favor, introduzca su número de teléfono!",
+ "validation.phone-number.wrong-format": "¡Número de teléfono malformado!",
+ "validation.verification-code.required": "¡Por favor, introduzca el código de verificación!",
+ "validation.title.required": "Por favor, introduzca un título",
+ "validation.date.required": "Seleccione la fecha de inicio y de finalización",
+ "validation.goal.required": "Por favor, introduzca una descripción del objetivo",
+ "validation.standard.required": "Por favor, introduzca una métrica"
+}
diff --git a/src/assets/tmp/i18n/fr-FR.json b/src/assets/tmp/i18n/fr-FR.json
new file mode 100644
index 00000000..ec05d231
--- /dev/null
+++ b/src/assets/tmp/i18n/fr-FR.json
@@ -0,0 +1,153 @@
+{
+ "menu.search.placeholder": "Rechercher des personnes, des fichiers, des photos ...",
+ "menu.fullscreen": "Plein écran",
+ "menu.fullscreen.exit": "Quitter le mode plein écran",
+ "menu.clear.local.storage": "Effacer le stockage local",
+ "menu.lang": "Langue",
+ "menu.main": "Navigation principale",
+ "menu.dashboard": "Tableau de bord",
+ "menu.dashboard.v1": "Par défaut",
+ "menu.dashboard.analysis": "Analyse",
+ "menu.dashboard.monitor": "Moniteur",
+ "menu.dashboard.workplace": "Lieu de travail",
+ "menu.shortcut": "Raccourci",
+ "menu.widgets": "Widgets",
+ "menu.alain": "Alain",
+ "menu.style": "Style",
+ "menu.style.typography": "Typographie",
+ "menu.style.gridmasonry": "Grille de maçonnerie",
+ "menu.style.colors": "Couleurs",
+ "menu.delon": "Delon Lib",
+ "menu.delon.form": "Forme dynamique",
+ "menu.delon.table": "Tableau simple",
+ "menu.delon.util": "Util",
+ "menu.delon.print": "Imprimer",
+ "menu.delon.guard": "Route Guard",
+ "menu.delon.cache": "Cache",
+ "menu.delon.qr": "QR",
+ "menu.delon.acl": "ACL",
+ "menu.delon.downfile": "Télécharger un fichier",
+ "menu.delon.xlsx": "Excel",
+ "menu.delon.zip": "Zip",
+ "menu.pro": "Antd Pro",
+ "menu.form": "Formulaire",
+ "menu.form.basicform": "Formulaire de base",
+ "menu.form.stepform": "Formulaire d'étape",
+ "menu.form.stepform.info": "Formulaire d'étape (écrire les informations de transfert)",
+ "menu.form.stepform.confirm": "Formulaire d'étape (confirmer les informations de transfert)",
+ "menu.form.stepform.result": "Formulaire d'étape (terminé)",
+ "menu.form.advancedform": "Formulaire avancé",
+ "menu.list": "Liste",
+ "menu.list.searchtable": "Rechercher dans la table",
+ "menu.list.basiclist": "Liste de base",
+ "menu.list.cardlist": "Liste des cartes",
+ "menu.list.searchlist": "Liste de recherche",
+ "menu.list.searchlist.articles": "Liste de recherche (articles)",
+ "menu.list.searchlist.projects": "Liste de recherche (projets)",
+ "menu.list.searchlist.applications": "Liste de recherche (applications)",
+ "menu.profile": "Profil",
+ "menu.profile.basic": "Profil de base",
+ "menu.profile.advanced": "Profil avancé",
+ "menu.result": "Résultat",
+ "menu.result.success": "Succès",
+ "menu.result.fail": "Échec",
+ "menu.exception": "Exception",
+ "menu.exception.not-permission": "403",
+ "menu.exception.not-find": "404",
+ "menu.exception.server-error": "500",
+ "menu.account": "Compte",
+ "menu.account.center": "Centre de comptes",
+ "menu.account.settings": "Paramètres du compte",
+ "menu.account.trigger": "Déclenchement des erreurs",
+ "menu.account.logout": "Déconnexion",
+ "menu.more": "Plus",
+ "menu.report": "Rapport",
+ "menu.report.relation": "Carte des relations",
+ "menu.extras": "Extra",
+ "menu.extras.helpcenter": "Centre d'aide",
+ "menu.extras.settings": "Paramètres",
+ "menu.extras.poi": "Poi",
+ "app.analysis.test": "Gongzhuan No. {{no}} shop",
+ "app.analysis.introduce": "Introduire",
+ "app.analysis.total-sales": "Ventes totales",
+ "app.analysis.day-sales": "Ventes du jour",
+ "app.analysis.visits": "Visites",
+ "app.analysis.visits-trend": "Tendance des visites",
+ "app.analysis.visits-ranking": "Classement des visites",
+ "app.analysis.day-visites": "Visites d'une journée",
+ "app.analysis.week": "Ratio hebdomadaire",
+ "app.analysis.day": "Ratio journalier",
+ "app.analysis.payments": "Paiements",
+ "app.analysis.conversion-rate": "Taux de conversion",
+ "app.analysis.operational-effect": "Operational Effect",
+ "app.analysis.sales-trend": "Tendance des ventes des magasins",
+ "app.analysis.sales-ranking": "Classement des ventes",
+ "app.analysis.all-year": "Toute l'année",
+ "app.analysis.all-month": "Tout le mois",
+ "app.analysis.all-week": "Toute la semaine",
+ "app.analysis.all-day": "Toute la journée",
+ "app.analysis.search-users": "Rechercher des utilisateurs",
+ "app.analysis.per-capita-search": "Recherche par capital",
+ "app.analysis.online-top-search": "Top des recherche en ligne",
+ "App.analysis.the-proportion-of-sales": "The Proportion Of Sales",
+ "app.analysis.channel.all": "TOUS",
+ "app.analysis.channel.online": "En ligne",
+ "app.analysis.channel.stores": "Magasins",
+ "app.analysis.sales": "Ventes",
+ "app.analysis.traffic": "Trafic",
+ "app.analysis.table.rank": "Rang",
+ "app.analysis.table.search-keyword": "mot clé",
+ "app.analysis.table.users": "Utilisateurs",
+ "app.analysis.table.weekly-range": "Plage hebdomadaire",
+ "app.monitor.trading-activity": "Activité de trading en temps réel",
+ "app.monitor.total-transactions": "Total des transactions aujourd'hui",
+ "app.monitor.sales-target": "Taux d'achèvement de l'objectif de vente",
+ "app.monitor.remaining-time": "Temps d'activité restant",
+ "app.monitor.total-transactions-per-second": "Total des transactions par seconde",
+ "app.monitor.activity-Forecast": "Prévisions d'activité",
+ "app.monitor.efficiency": "Efficacité",
+ "app.monitor.ratio": "Ratio",
+ "app.monitor.proportion-per-category": "Proportion Per Category",
+ "app.monitor.fast-food": "Restauration rapide",
+ "app.monitor.western-food": "Cuisine occidentale",
+ "app.monitor.hot-pot": "Hot pot",
+ "app.monitor.waiting-for-implementation": "En attente de mise en œuvre",
+ "app.monitor.popular-recherches": "Recherches populaires",
+ "app.monitor.resource-surplus": "Surplus de ressources",
+ "app.monitor.fund-surplus": "Excédent de fonds",
+ "app.lock": "Verrouiller",
+ "app.login.message-invalid-credentials": "Nom d'utilisateur ou mot de passe invalide (admin / ant.design)",
+ "app.login.message-invalid-verification-code": "Code de vérification non valide",
+ "app.login.tab-login-credentials": "Identifiants",
+ "app.login.tab-login-mobile": "Numéro de portable",
+ "app.login.remember-me": "Se souvenir de moi",
+ "app.login.forgot-password": "Mot de passe oublié?",
+ "app.login.sign-in-with": "Connectez-vous avec",
+ "app.login.signup": "Inscription",
+ "app.login.login": "Connexion",
+ "app.register.register": "S'inscrire",
+ "app.register.get-verification-code": "Obtenir le code",
+ "app.register.sign-in": "Vous avez déjà un compte?",
+ "app.register-result.msg": "Compte : inscrit avec {{email}}",
+ "app.register-result.activation-email":
+ "L'e-mail d'activation a été envoyé à votre adresse e-mail et est valide pendant 24 heures. Veuillez vous connecter à l'e-mail à temps et cliquer sur le lien dans l'e-mail pour activer le compte.",
+ "app.register-result.back-home": "Retour à l'accueil",
+ "app.register-result.view-mailbox": "Afficher la boîte aux lettres",
+ "validation.email.required": "Veuillez entrer votre email!",
+ "validation.email.wrong-format": "L'adresse e-mail est au mauvais format!",
+ "validation.password.required": "Veuillez entrer votre mot de passe!",
+ "validation.password.twice": "Les mots de passe saisis deux fois ne correspondent pas!",
+ "validation.password.strength.msg":
+ "Veuillez saisir au moins 6 caractères et n'utilisez pas de mots de passe faciles à deviner.",
+ "validation.password.strength.strong": "Force: forte",
+ "validation.password.strength.medium": "Force: moyenne",
+ "validation.password.strength.short": "Force: trop courte",
+ "validation.confirm-password.required": "Veuillez confirmer votre mot de passe!",
+ "validation.phone-number.required": "Veuillez entrer votre numéro de téléphone!",
+ "validation.phone-number.wrong-format": "Numéro de téléphone incorrect!",
+ "validation.verification-code.required": "Veuillez saisir le code de vérification!",
+ "validation.title.required": "Veuillez saisir un titre",
+ "validation.date.required": "Veuillez sélectionner la date de début et de fin",
+ "validation.goal.required": "Veuillez saisir une description de l'objectif",
+ "validation.standard.required": "Veuillez saisir une statistique"
+}
diff --git a/src/assets/tmp/i18n/hr-HR.json b/src/assets/tmp/i18n/hr-HR.json
new file mode 100644
index 00000000..065d3672
--- /dev/null
+++ b/src/assets/tmp/i18n/hr-HR.json
@@ -0,0 +1,151 @@
+{
+ "menu.search.placeholder": "Traži osobe, datoteke, fotografije ...",
+ "menu.fullscreen": "Puni zaslon",
+ "menu.fullscreen.exit": "Izađite sa cijelog zaslona",
+ "menu.clear.local.storage": "Očistite lokalnu pohranu",
+ "menu.lang": "Jezik",
+ "menu.main": "Glavna navigacija",
+ "menu.dashboard": "Ploča",
+ "menu.dashboard.v1": "Zadano",
+ "menu.dashboard.analysis": "Analiza",
+ "menu.dashboard.monitor": "Monitor",
+ "menu.dashboard.workplace": "Radni prostor",
+ "menu.shortcut": "Prečica",
+ "menu.widgets": "Programčić",
+ "menu.alain": "Alain",
+ "menu.style": "Stil",
+ "menu.style.typography": "Tipografija",
+ "menu.style.gridmasonry": "Mreža",
+ "menu.style.colors": "Boje",
+ "menu.delon": "Delon lib",
+ "menu.delon.form": "Dinamični obrazac",
+ "menu.delon.table": "Jednostavna tablica",
+ "menu.delon.util": "Alati",
+ "menu.delon.print": "Ispis",
+ "menu.delon.guard": "Stražar rute",
+ "menu.delon.cache": "Cache",
+ "menu.delon.qr": "QR",
+ "menu.delon.acl": "ACL",
+ "menu.delon.downfile": "Preuzmi datoteku",
+ "menu.delon.xlsx": "Excel",
+ "menu.delon.zip": "Zip",
+ "menu.pro": "Antd Pro",
+ "menu.form": "Obrazac",
+ "menu.form.basicform": "Osnovni obrazac",
+ "menu.form.stepform": "Obrazac u koracima",
+ "menu.form.stepform.info": "Obrazac u koracima (upišite podatke o prijenosu)",
+ "menu.form.stepform.confirm": "Obrazac u koracima (potvrdite podatke o prijenosu)",
+ "menu.form.stepform.result": "Obrazac u koracima (završeno)",
+ "menu.form.advancedform": "Napredni obrazac",
+ "menu.list": "Popis",
+ "menu.list.searchtable": "Tablica pretraživanja",
+ "menu.list.basiclist": "Osnovni popis",
+ "menu.list.cardlist": "Popis kartica",
+ "menu.list.searchlist": "Popis pretraživanja",
+ "menu.list.searchlist.articles": "Popis za pretraživanje (članci)",
+ "menu.list.searchlist.projects": "Popis za pretraživanje (projekti)",
+ "menu.list.searchlist.applications": "Popis za pretraživanje (aplikacije)",
+ "menu.profile": "Profil",
+ "menu.profile.basic": "Osnovni profil",
+ "menu.profile.advanced": "Napredni profil",
+ "menu.result": "Rezultat",
+ "menu.result.success": "Uspjeh",
+ "menu.result.fail": "Nauspjeh",
+ "menu.exception": "Iznimka",
+ "menu.exception.not-permission": "403",
+ "menu.exception.not-find": "404",
+ "menu.exception.server-error": "500",
+ "menu.account": "Račun",
+ "menu.account.center": "Upravljanje računima",
+ "menu.account.settings": "Postavke računa",
+ "menu.account.trigger": "Pozovi grešku",
+ "menu.account.logout": "Odjava",
+ "menu.more": "Više",
+ "menu.report": "Izvješće",
+ "menu.report.relation": "Karta relacija",
+ "menu.extras": "Dodatno",
+ "menu.extras.helpcenter": "Centar za pomoć",
+ "menu.extras.settings": "Postavke",
+ "menu.extras.poi": "Poi",
+ "app.analysis.test": "Gongzhuan br. {{No}} trgovina",
+ "app.analysis.introduce": "Predstavljanje",
+ "app.analysis.total-sales": "Totalna rasprodaja",
+ "app.analysis.day-sales": "Dnevna prodaja",
+ "app.analysis.visits": "Posjeta",
+ "app.analysis.visits-trend": "Trend posjeta",
+ "app.analysis.visits-ranking": "Rangiranje posjeta",
+ "app.analysis.day-visits": "Dnevne posjete",
+ "app.analysis.week": "Omjer tjedna",
+ "app.analysis.day": "Dnevni omjer",
+ "app.analysis.payments": "Plaćanja",
+ "app.analysis.conversion-rate": "Stopa",
+ "app.analysis.operational-effect": "Operativni učinak",
+ "app.analysis.sales-trend": "Trendova prodaje",
+ "app.analysis.sales-ranking": "Poredak",
+ "app.analysis.all-year": "Cijela godina,",
+ "app.analysis.all-month": "Cijeli mjesec",
+ "app.analysis.all-week": "Cijeli tjedan",
+ "app.analysis.all-day": "Cijeli dan",
+ "app.analysis.search-users": "Pretraživanje korisnika",
+ "app.analysis.per-capita-search": "Pretraživanje po osobi",
+ "app.analysis.online-top-search": "Internetska top pretraga",
+ "app.analysis.the-proportion-of-sales": "Omjer prodaje",
+ "app.analysis.channel.all": "SVI",
+ "app.analysis.channel.online": "Aktivni",
+ "app.analysis.channel.stores": "Trgovine",
+ "app.analysis.sales": "Prodaja",
+ "app.analysis.traffic": "Promet",
+ "app.analysis.table.rank": "Rang",
+ "app.analysis.table.search-keyword": "Ključna riječ",
+ "app.analysis.table.users": "Korisnici",
+ "app.analysis.table.weekly-range": "Tjedno",
+ "app.monitor.trading-activity": "Aktivnost u realnom vremenu",
+ "app.monitor.total-transactions": "Ukupno transakcija danas",
+ "app.monitor.sales-target": "Ciljna stopa prodaje",
+ "app.monitor.remaining-time": "Preostalo vrijeme aktivnosti",
+ "app.monitor.total-transactions-per-second": "Ukupno transakcija u sekundi",
+ "app.monitor.activity-forecast": "Prognoza aktivnosti",
+ "app.monitor.efficiency": "Učinkovitost",
+ "app.monitor.ratio": "Omjer",
+ "app.monitor.proportion-per-category": "Proporcija po kategoriji",
+ "app.monitor.fast-food": "Brza hrana",
+ "app.monitor.western-food": "Zapadnjačka hrana",
+ "app.monitor.hot-pot": "Vrući lonac",
+ "app.monitor.waiting-for-implementation": "Čekanje na implementaciju",
+ "app.monitor.popular-searches": "Popularna pretraživanja",
+ "app.monitor.resource-surplus": "Višak resursa",
+ "app.monitor.fund-surplus": "Prekomjerni fond",
+ "app.lock": "Zaključaj",
+ "app.login.message-invalid-credentials": "Nevažeće korisničko ime ili lozinka ",
+ "app.login.message-invalid-verification-code": "Nevažeći kontrolni kôd",
+ "app.login.tab-login-credentials": "Vjerodajnice",
+ "app.login.tab-login-mobile": "Broj mobitela",
+ "app.login.remember-me": "Zapamti me",
+ "app.login.forgot-password": "Zaboravili ste zaporku?",
+ "app.login.sign-in-with": "Prijava sa",
+ "app.login.signup": "Registracija",
+ "app.login.login": "Prijava",
+ "app.register.register": "Registracija",
+ "app.register.get-verification-code": "Dohvati kôd",
+ "app.register.sign-in": "Već imate račun?",
+ "app.register-result.msg": "Račun registriran na {{email}}",
+ "app.register-result.activation-email": "Poruka za aktivaciju poslana je na vašu adresu epošte i vrijedi 24 sata. Prijavite se na vrijeme i kliknite poveznicu u epošti da biste aktivirali račun.",
+ "app.register-result.back-home": "Povratak na naslovnicu",
+ "app.register-result.view-mailbox": "Prikaži pretinac",
+ "validation.email.required": "Unesite svoju e-poštu!",
+ "validation.email.wrong-format": "Adresa e-pošte je u pogrešnom obliku!",
+ "validation.password.required": "Unesite svoju lozinku!",
+ "validation.password.twice": "Unesene zaporke se ne podudaraju!",
+ "validation.password.strength.msg": "Unesite najmanje 6 znakova i ne koristite lozinke koje je lako pogoditi.",
+ "validation.password.strength.strong": "Jaka ",
+ "validation.password.strength.medium": "Srednja ",
+ "validation.password.strength.short": "Slaba ",
+ "validation.confirm-password.required": "Potvrdite zaporku!",
+ "validation.phone-number.required": "Unesite svoj telefonski broj!",
+ "validation.phone-number.wrong-format": "Pogrešan telefonski broj!",
+ "validation.verification-code.required": "Unesite kontrolni kôd!",
+ "validation.title.required": "Unesite naslov",
+ "validation.date.required": "Molimo odaberite datum početka i završetka",
+ "validation.goal.required": "Unesite opis cilja",
+ "validation.standard.required": "Unesite mjerni podatak"
+}
diff --git a/src/assets/tmp/i18n/it-IT.json b/src/assets/tmp/i18n/it-IT.json
new file mode 100644
index 00000000..b856aa95
--- /dev/null
+++ b/src/assets/tmp/i18n/it-IT.json
@@ -0,0 +1,151 @@
+{
+ "menu.search.placeholder": "Cerca persone, file, foto…",
+ "menu.fullscreen": "Schermo intero",
+ "menu.fullscreen.exit": "Esci dallo schermo intero",
+ "menu.clear.local.storage": "Cancella memoria locale",
+ "menu.lang": "Lingua",
+ "menu.main": "Navigazione principale",
+ "menu.dashboard": "Pannello di controllo",
+ "menu.dashboard.v1": "Predefinito",
+ "menu.dashboard.analysis": "Analisi",
+ "menu.dashboard.monitor": "Monitor",
+ "menu.dashboard.workplace": "Luogo di lavoro",
+ "menu.shortcut": "Scorciatoia",
+ "menu.widgets": "Widgets",
+ "menu.alain": "Alain",
+ "menu.style": "Stile",
+ "menu.style.typography": "Tipografia",
+ "menu.style.gridmasonry": "Muratura Griglia",
+ "menu.style.colors": "Colori",
+ "menu.delon": "Delon Lib",
+ "menu.delon.form": "Forma dinamica",
+ "menu.delon.table": "Tabella semplice",
+ "menu.delon.util": "Util",
+ "menu.delon.print": "Stampa",
+ "menu.delon.guard": "Protezione Percorso",
+ "menu.delon.cache": "Cache",
+ "menu.delon.qr": "QR",
+ "menu.delon.acl": "ACL",
+ "menu.delon.downfile": "Scarica File",
+ "menu.delon.xlsx": "Excel",
+ "menu.delon.zip": "Zip",
+ "menu.pro": "Antd Pro",
+ "menu.form": "Modulo",
+ "menu.form.basicform": "Modulo di base",
+ "menu.form.stepform": "Modulo di fase",
+ "menu.form.stepform.info": "Modulo di fase (scrivi informazioni del trasferimento)",
+ "menu.form.stepform.confirm": "Modulo di fase (conferma informazioni del trasferimento)",
+ "menu.form.stepform.result": "Modulo di fase (terminato)",
+ "menu.form.advancedform": "Modulo avanzato",
+ "menu.list": "Elenco",
+ "menu.list.searchtable": "Cerca tabella",
+ "menu.list.basiclist": "Elenco di base",
+ "menu.list.cardlist": "Elenco delle schede",
+ "menu.list.searchlist": "Cerca elenco",
+ "menu.list.searchlist.articles": "Cerca elenco (articoli)",
+ "menu.list.searchlist.projects": "Cerca elenco (progetti)",
+ "menu.list.searchlist.applications": "Cerca elenco (applicazioni)",
+ "menu.profile": "Profilo",
+ "menu.profile.basic": "Profilo di base",
+ "menu.profile.advanced": "Profilo avanzato",
+ "menu.result": "Risultato",
+ "menu.result.success": "Riuscito",
+ "menu.result.fail": "Fallito",
+ "menu.exception": "Eccezione",
+ "menu.exception.not-permission": "403",
+ "menu.exception.not-find": "404",
+ "menu.exception.server-error": "500",
+ "menu.account": "Account",
+ "menu.account.center": "Centro Account",
+ "menu.account.settings": "Impostazioni dell'account",
+ "menu.account.trigger": "Errore all'attivazione",
+ "menu.account.logout": "Esci",
+ "menu.more": "Altro",
+ "menu.report": "Report",
+ "menu.report.relation": "Mappa della relazione",
+ "menu.extras": "Extra",
+ "menu.extras.helpcenter": "Centro assistenza",
+ "menu.extras.settings": "Impostazioni",
+ "menu.extras.poi": "Poi",
+ "app.analysis.test": "Gongzhuan N.{{no}} negozio",
+ "app.analysis.introduce": "Presenta",
+ "app.analysis.total-sales": "Vendite totali",
+ "app.analysis.day-sales": "Vendite giornaliere",
+ "app.analysis.visits": "Visite",
+ "app.analysis.visits-trend": "Trend visite",
+ "app.analysis.visits-ranking": "Ranking visite",
+ "app.analysis.day-visits": "Visite giornaliere",
+ "app.analysis.week": "Rapporto settimanale",
+ "app.analysis.day": "Rapporto giornaliero",
+ "app.analysis.payments": "Pagamenti",
+ "app.analysis.conversion-rate": "Tasso di conversione",
+ "app.analysis.operational-effect": "Effetto operativo",
+ "app.analysis.sales-trend": "Trend vendite del negozio",
+ "app.analysis.sales-ranking": "Ranking vendite",
+ "app.analysis.all-year": "Intero Anno",
+ "app.analysis.all-month": "Intero Messe",
+ "app.analysis.all-week": "Intero Settimana",
+ "app.analysis.all-day": "Intero giorno",
+ "app.analysis.search-users": "Cerca utenti",
+ "app.analysis.per-capita-search": "Ricerca pro capite",
+ "app.analysis.online-top-search": "Migliore ricerca online",
+ "app.analysis.the-proportion-of-sales": "La percentuale di vendite",
+ "app.analysis.channel.all": "TUTTI",
+ "app.analysis.channel.online": "Online",
+ "app.analysis.channel.stores": "Negozi",
+ "app.analysis.sales": "Vendite",
+ "app.analysis.traffic": "Traffico",
+ "app.analysis.table.rank": "Posizione",
+ "app.analysis.table.search-keyword": "Parola chiave",
+ "app.analysis.table.users": "Utenti",
+ "app.analysis.table.weekly-range": "Intervallo settimanale",
+ "app.monitor.trading-activity": "Attività commerciale in tempo reale",
+ "app.monitor.total-transactions": "Transazioni totali oggi",
+ "app.monitor.sales-target": "Tasso di completamento degli obiettivi di vendita",
+ "app.monitor.remaining-time": "Tempo rimanente di attività",
+ "app.monitor.total-transactions-per-second": "Transazioni totali al secondo",
+ "app.monitor.activity-forecast": "Previsioni attività",
+ "app.monitor.efficiency": "Efficienza",
+ "app.monitor.ratio": "Rapporto",
+ "app.monitor.proportion-per-category": "Percentuale per categoria",
+ "app.monitor.fast-food": "Fast food",
+ "app.monitor.western-food": "Cibo occidentale",
+ "app.monitor.hot-pot": "Pentola calda",
+ "app.monitor.waiting-for-implementation": "In attesa di applicazione",
+ "app.monitor.popular-searches": "Ricerche popolari",
+ "app.monitor.resource-surplus": "Eccedenza di risorse",
+ "app.monitor.fund-surplus": "Eccedenza di fondi",
+ "app.lock": "Blocca",
+ "app.login.message-invalid-credentials": "Nome utente o password non validi (admin/ant.design)",
+ "app.login.message-invalid-verification-code": "Codice di verifica non valido",
+ "app.login.tab-login-credentials": "Credenziali",
+ "app.login.tab-login-mobile": "Numero di cellulare",
+ "app.login.remember-me": "Ricordami",
+ "app.login.forgot-password": "Hai dimenticato la password?",
+ "app.login.sign-in-with": "Accedi con",
+ "app.login.signup": "Registrati",
+ "app.login.login": "Accedi",
+ "app.register.register": "Registrati",
+ "app.register.get-verification-code": "Ottieni codice",
+ "app.register.sign-in": "Hai già un account?",
+ "app.register-result.msg": "Account: registrato all'indirizzo {{email}}",
+ "app.register-result.activation-email": "L'email di attivazione è stata inviata al tuo indirizzo di posta elettronica ed è valida per 24 ore. Accedi all'email in tempo e fai clic sul link per attivare l'account.",
+ "app.register-result.back-home": "Torna alla home",
+ "app.register-result.view-mailbox": "Visualizza casella di posta",
+ "validation.email.required": "Inserisci la tua email!",
+ "validation.email.wrong-format": "L'indirizzo email è nel formato sbagliato!",
+ "validation.password.required": "Inserisci la tua password!",
+ "validation.password.twice": "Le password inserite due volte non corrispondono!",
+ "validation.password.strength.msg": "Digita almeno 6 caratteri e non utilizzare password facili da intuire.",
+ "validation.password.strength.strong": "Sicurezza: alta",
+ "validation.password.strength.medium": "Sicurezza: media",
+ "validation.password.strength.short": "Sicurezza: troppo breve",
+ "validation.confirm-password.required": "Conferma la tua password!",
+ "validation.phone-number.required": "Inserisci il tuo numero di telefono!",
+ "validation.phone-number.wrong-format": "Numero di telefono non corretto!",
+ "validation.verification-code.required": "Inserisci il codice di verifica!",
+ "validation.title.required": "Inserisci un titolo",
+ "validation.date.required": "Seleziona la data di inizio e di fine",
+ "validation.goal.required": "Inserisci una descrizione dell'obiettivo",
+ "validation.standard.required": "Inserisci un parametro"
+}
diff --git a/src/assets/tmp/i18n/ko-KR.json b/src/assets/tmp/i18n/ko-KR.json
new file mode 100644
index 00000000..66d3f0c0
--- /dev/null
+++ b/src/assets/tmp/i18n/ko-KR.json
@@ -0,0 +1,153 @@
+{
+ "menu.search.placeholder": "사람, 파일, 사진 검색...",
+ "menu.fullscreen": "전체 화면",
+ "menu.fullscreen.exit": "전체 화면 종료",
+ "menu.clear.local.storage": "로컬 저장소 지우기",
+ "menu.lang": "언어",
+ "menu.main": "기본 탐색",
+ "menu.dashboard": "대시 보드",
+ "menu.dashboard.v1": "기본값",
+ "menu.dashboard.analysis": "분석",
+ "menu.dashboard.monitor": "모니터",
+ "menu.dashboard.workplace": "Workplace",
+ "menu.shortcut": "바로 가기",
+ "menu.widgets": "위젯",
+ "menu.alain": "Alain",
+ "menu.style": "스타일",
+ "menu.style.typography": "타이포그래피",
+ "menu.style.gridmasonry": "Grid Masonry",
+ "menu.style.colors": "색상",
+ "menu.delon": "Delon 라이브러리",
+ "menu.delon.form": "다이나믹폼",
+ "menu.delon.table": "심플테이블",
+ "menu.delon.util": "유틸",
+ "menu.delon.print": "출력",
+ "menu.delon.guard": "라우팅 가드",
+ "menu.delon.cache": "캐쉬",
+ "menu.delon.qr": "QR",
+ "menu.delon.acl": "ACL",
+ "menu.delon.downfile": "다운로드 파일",
+ "menu.delon.xlsx": "엑셀",
+ "menu.delon.zip": "Zip",
+ "menu.pro": "Antd Pro",
+ "menu.form": "양식",
+ "menu.form.basicform": "기본 양식",
+ "menu.form.stepform": "단계별 양식",
+ "menu.form.stepform.info": "단계별 양식(이전 정보 쓰기)",
+ "menu.form.stepform.confirm": "단계별 양식(전송 정보 확인)",
+ "menu.form.stepform.result": "단계별 양식(완료)",
+ "menu.form.advancedform": "고급 양식",
+ "menu.list": "리스트",
+ "menu.list.searchtable": "검색 테이블",
+ "menu.list.basiclist": "리본 리스트",
+ "menu.list.cardlist": "카드 리스트",
+ "menu.list.searchlist": "검색 리스트",
+ "menu.list.searchlist.articles": "검색 리스트(게시글)",
+ "menu.list.searchlist.projects": "검색 리스트(프로젝트)",
+ "menu.list.searchlist.applications": "검색 리스트(어플리케이션)",
+ "menu.profile": "프로필",
+ "menu.profile.basic": "기본 프로필",
+ "menu.profile.advanced": "고급 프로필",
+ "menu.result": "결과",
+ "menu.result.success": "성공",
+ "menu.result.fail": "실패",
+ "menu.exception": "예외",
+ "menu.exception.not-permission": "403",
+ "menu.exception.not-find": "404",
+ "menu.exception.server-error": "500",
+ "menu.account": "계정",
+ "menu.account.center": "계정 센터",
+ "menu.account.settings": "계정 설정",
+ "menu.account.trigger": "트리거 에러",
+ "menu.account.logout": "로그아웃",
+ "menu.more": "더 보기",
+ "menu.report": "보고서",
+ "menu.report.relation": "연관 맵",
+ "menu.extras": "확장",
+ "menu.extras.helpcenter": "도움말 센터",
+ "menu.extras.settings": "설정",
+ "menu.extras.poi": "POI",
+ "app.analysis.test": "공전로 {{no}}번째 가게",
+ "app.analysis.introduce": "지표설명",
+ "app.analysis.total-sales": "총 판매",
+ "app.analysis.day-sales": "일일 판매",
+ "app.analysis.visits": "방문수",
+ "app.analysis.visits-trend": "방문자 트랜드",
+ "app.analysis.visits-ranking": "방문자 랭킹",
+ "app.analysis.day-visits": "일일 방문수",
+ "app.analysis.week": "주간",
+ "app.analysis.day": "일간",
+ "app.analysis.payments": "지불",
+ "app.analysis.conversion-rate": "전환율",
+ "app.analysis.operational-effect": "운영 활동 효과",
+ "app.analysis.sales-trend": "판매 추세",
+ "app.analysis.sales-ranking": "판매 랭킹",
+ "app.analysis.all-year": "올해",
+ "app.analysis.all-month": "이번달",
+ "app.analysis.all-week": "이번주",
+ "app.analysis.all-day": "오늘",
+ "app.analysis.search-users": "검색 사용자",
+ "app.analysis.per-capita-search": "1인당 검색",
+ "app.analysis.online-top-search": "온라인 인기 검색",
+ "app.analysis.the-proportion-of-sales": "판매 비율",
+ "app.analysis.channel.all": "모두",
+ "app.analysis.channel.online": "온라인",
+ "app.analysis.channel.stores": "상점",
+ "app.analysis.sales": "판매",
+ "app.analysis.traffic": "트래픽",
+ "app.analysis.table.rank": "랭킹",
+ "app.analysis.table.search-keyword": "키워드",
+ "app.analysis.table.users": "사용자수",
+ "app.analysis.table.weekly-range": "주간 범위",
+ "app.monitor.trading-activity": "실시간 거래 활동",
+ "app.monitor.total-transactions": "오늘 총 거래액",
+ "app.monitor.sales-target": "판매 목표 완료율",
+ "app.monitor.remaining-time": "남은 활동 시간",
+ "app.monitor.total-transactions-per-second": "초당 총 트랜잭션",
+ "app.monitor.activity-forecast": "활동 예측",
+ "app.monitor.efficiency": "능률",
+ "app.monitor.ratio": "비율",
+ "app.monitor.proportion-per-category": "카테고리별 비율",
+ "app.monitor.fast-food": "패스트 푸드",
+ "app.monitor.western-food": "서양식",
+ "app.monitor.hot-pot": "냄비",
+ "app.monitor.waiting-for-implementation": "구현 대기 중",
+ "app.monitor.popular-searches": "인기 검색",
+ "app.monitor.resource-surplus": "자원 여분",
+ "app.monitor.fund-surplus": "보조금 기금 흑자",
+ "app.lock": "잠금",
+ "app.login.message-invalid-credentials": "사용자 정보 또는 패스워드가 유효하지 않습니다.(admin/ant.design)",
+ "app.login.message-invalid-verification-code": "인증 코드가 잘못되었습니다.",
+ "app.login.tab-login-credentials": "계정 패스워드 로그인",
+ "app.login.tab-login-mobile": "모바일 번호 로그인",
+ "app.login.remember-me": "자동 로그인",
+ "app.login.forgot-password": "비밀번호를 잊어 버렸습니까?",
+ "app.login.sign-in-with": "다른 방법으로 로그인",
+ "app.login.signup": "가입",
+ "app.login.login": "로그인",
+ "app.register.register": "등록",
+ "app.register.get-verification-code": "인증코드 받기",
+ "app.register.sign-in": "기존 계정으로 로그인",
+ "app.register-result.msg": "{{email}} 으로 계정이 등록 되었습니다.",
+ "app.register-result.activation-email":
+ "활성화 이메일은 귀하의 이메일 주소로 발송되었으며 24 시간 동안 유효합니다. 시간내에 해당 이메일에 로그인하고 이메일의 링크를 클릭하여 계정을 활성화하십시오.",
+ "app.register-result.back-home": "홈으로 가기",
+ "app.register-result.view-mailbox": "메일 보기",
+ "validation.email.required": "이메일 정보를 입력하세요.",
+ "validation.email.wrong-format": "올바른 이메일 주소가 아닙니다.",
+ "validation.password.required": "패스워드를 입력하세요",
+ "validation.password.twice": "입력한 패스워드가 2 회 틀렸습니다.",
+ "validation.password.strength.msg":
+ "6 자 이상 입력하십시오. 추측하기 쉬운 암호를 사용하지 마십시오.",
+ "validation.password.strength.strong": "비밀번호 강도: 강력",
+ "validation.password.strength.medium": "비밀번호 강도: 중간",
+ "validation.password.strength.short": "비밀번호 강도: 취약",
+ "validation.confirm-password.required": "암호를 확인하세요.",
+ "validation.phone-number.required": "전화번호를 입력하세요.",
+ "validation.phone-number.wrong-format": "올바른 전화번호가 아닙니다.",
+ "validation.verification-code.required": "인증코드를 입력하세요.",
+ "validation.title.required": "제목을 입력하세요.",
+ "validation.date.required": "시작일과 종료일을 선택하세요.",
+ "validation.goal.required": "목표에 대한 설명을 입력하십시오.",
+ "validation.standard.required": "측정 항목을 입력하십시오."
+}
diff --git a/src/assets/tmp/i18n/pl-PL.json b/src/assets/tmp/i18n/pl-PL.json
new file mode 100644
index 00000000..9e01bdbe
--- /dev/null
+++ b/src/assets/tmp/i18n/pl-PL.json
@@ -0,0 +1,153 @@
+{
+ "menu.search.placeholder": "Szukaj osób, plików, zdjęć...",
+ "menu.fullscreen": "Pełny ekran",
+ "menu.fullscreen.exit": "Wyjdź z pełnego ekranu",
+ "menu.clear.local.storage": "Wyczyść magazyn lokalny",
+ "menu.lang": "Język",
+ "menu.main": "Główna nawigacja",
+ "menu.dashboard": "Dashboard",
+ "menu.dashboard.v1": "Domyślny",
+ "menu.dashboard.analysis": "Analityczny",
+ "menu.dashboard.monitor": "Monitorowanie",
+ "menu.dashboard.workplace": "Miejsce pracy",
+ "menu.shortcut": "Skrót",
+ "menu.widgets": "Widżety",
+ "menu.alain": "Alain",
+ "menu.style": "Styl",
+ "menu.style.typography": "Typografia",
+ "menu.style.gridmasonry": "Grid Masonry",
+ "menu.style.colors": "Kolory",
+ "menu.delon": "Biblioteka Delon",
+ "menu.delon.form": "Dynamiczne formularze",
+ "menu.delon.table": "Prosta tabela",
+ "menu.delon.util": "Narzędzia",
+ "menu.delon.print": "Drukowanie",
+ "menu.delon.guard": "Route Guard",
+ "menu.delon.cache": "Pamięć podręczna",
+ "menu.delon.qr": "QR",
+ "menu.delon.acl": "ACL",
+ "menu.delon.downfile": "Pobierz plik",
+ "menu.delon.xlsx": "Excel",
+ "menu.delon.zip": "Zip",
+ "menu.pro": "Antd Pro",
+ "menu.form": "Formularze",
+ "menu.form.basicform": "Prosty formularz",
+ "menu.form.stepform": "Formularz krokowy",
+ "menu.form.stepform.info": "Step Form(Wprowadź informacje dotyczące przelewu)",
+ "menu.form.stepform.confirm": "Step Form(Potwierdź informacje o przesyłce)",
+ "menu.form.stepform.result": "Step Form(Zakończone)",
+ "menu.form.advancedform": "Zaawnsowany formularz",
+ "menu.list": "Listy",
+ "menu.list.searchtable": "Przeszukiwalna tabela",
+ "menu.list.basiclist": "Prosta lista",
+ "menu.list.cardlist": "Lista kart",
+ "menu.list.searchlist": "Listy przeszukiwalne",
+ "menu.list.searchlist.articles": "Lista przeszukiwalna(artykuły)",
+ "menu.list.searchlist.projects": "Lista przeszukiwalna(projekty)",
+ "menu.list.searchlist.applications": "Lista przeszukiwalna(aplikacje)",
+ "menu.profile": "Profil",
+ "menu.profile.basic": "Prosty profil",
+ "menu.profile.advanced": "Zaawansowany profil",
+ "menu.result": "Wyniki",
+ "menu.result.success": "Sukces",
+ "menu.result.fail": "Porażka",
+ "menu.exception": "Błąd",
+ "menu.exception.not-permission": "403",
+ "menu.exception.not-find": "404",
+ "menu.exception.server-error": "500",
+ "menu.account": "Konto",
+ "menu.account.center": "Centrum konta",
+ "menu.account.settings": "Ustawienia konta",
+ "menu.account.trigger": "Błąd wyzwalacza",
+ "menu.account.logout": "Wyloguj",
+ "menu.more": "Więcej",
+ "menu.report": "Raport",
+ "menu.report.relation": "Relation Map",
+ "menu.extras": "Ekstra",
+ "menu.extras.helpcenter": "Centrum pomocy",
+ "menu.extras.settings": "Ustawienia",
+ "menu.extras.poi": "POI",
+ "app.analysis.test": "Sklep przy Gongzhuan No.{{no}}",
+ "app.analysis.introduce": "Wprowadzenie",
+ "app.analysis.total-sales": "Sprzedaż ogółem",
+ "app.analysis.day-sales": "Dzienna sprzedaż",
+ "app.analysis.visits": "Odwiedzin",
+ "app.analysis.visits-trend": "Trend odwiedzin",
+ "app.analysis.visits-ranking": "Ranking odwiedzin",
+ "app.analysis.day-visits": "Dziennych odwiedzin",
+ "app.analysis.week": "Współczynnik tygodniowy",
+ "app.analysis.day": "Współczynnik dzienny",
+ "app.analysis.payments": "Płatności",
+ "app.analysis.conversion-rate": "Stopień konwersji",
+ "app.analysis.operational-effect": "Efekt operacyjny",
+ "app.analysis.sales-trend": "Trend sprzedaży w sklepach",
+ "app.analysis.sales-ranking": "Ranking sprzedaży",
+ "app.analysis.all-year": "Cały rok",
+ "app.analysis.all-month": "Cały miesiąc",
+ "app.analysis.all-week": "Cały tydzień",
+ "app.analysis.all-day": "Cały dzień",
+ "app.analysis.search-users": "Wyszukających użytkowników",
+ "app.analysis.per-capita-search": "Wyszukiwań per użytkownik",
+ "app.analysis.online-top-search": "Najpopularniejsze wyszukiwania online",
+ "app.analysis.the-proportion-of-sales": "Proporcje sprzedaży",
+ "app.analysis.channel.all": "WSZYSTKIE",
+ "app.analysis.channel.online": "Online",
+ "app.analysis.channel.stores": "Sklepy",
+ "app.analysis.sales": "Sprzedaż",
+ "app.analysis.traffic": "Ruch",
+ "app.analysis.table.rank": "Ranking",
+ "app.analysis.table.search-keyword": "Słowo kluczowe",
+ "app.analysis.table.users": "Użytkownicy",
+ "app.analysis.table.weekly-range": "Zakres tygodniowy",
+ "app.monitor.trading-activity": "Aktywność handlowa w czasie rzeczywistym",
+ "app.monitor.total-transactions": "Łączna liczba transakcji dzisiaj",
+ "app.monitor.sales-target": "Wskaźnik realizacji celu sprzedaży",
+ "app.monitor.remaining-time": "Pozostały czas aktywności",
+ "app.monitor.total-transactions-per-second": "Całkowita liczba transakcji na sekundę",
+ "app.monitor.activity-forecast": "Prognoza aktywności",
+ "app.monitor.efficiency": "Wydajność",
+ "app.monitor.ratio": "Współczynnik",
+ "app.monitor.proportion-per-category": "Proporcje według kategorii",
+ "app.monitor.fast-food": "Fast food",
+ "app.monitor.western-food": "Zachodnia kuchnia",
+ "app.monitor.hot-pot": "Hot pot",
+ "app.monitor.waiting-for-implementation": "Oczekuje na implementację",
+ "app.monitor.popular-searches": "Popularne wyszukiwania",
+ "app.monitor.resource-surplus": "Nadwyżka zasobów",
+ "app.monitor.fund-surplus": "Nadwyżka funduszu",
+ "app.lock": "Zablokuj",
+ "app.login.message-invalid-credentials": "Nieprawidłowa nazwa użytkownika lub hasło(admin/ant.design)",
+ "app.login.message-invalid-verification-code": "Nieprawidłowy kod weryfikacyjny",
+ "app.login.tab-login-credentials": "Uprawnienia",
+ "app.login.tab-login-mobile": "Numer telefonu komórkowego",
+ "app.login.remember-me": "Zapamiętaj mnie",
+ "app.login.forgot-password": "Zapomniałeś hasła?",
+ "app.login.sign-in-with": "Zaloguj się za pomocą",
+ "app.login.signup": "Zarejestruj się",
+ "app.login.login": "Logowanie",
+ "app.register.register": "Rejestracja",
+ "app.register.get-verification-code": "Pobierz kod",
+ "app.register.sign-in": "Już masz konto?",
+ "app.register-result.msg": "Konto:zarejstrowane dla {{email}}",
+ "app.register-result.activation-email":
+ "Email aktywacyjny został wysłany na wskazany adres i będzie ważny przez 24 godiny. Proszę, sprawdź swoją pocztę w tym czasie i kliknij na link wskazany w wiadomości aby aktywować konto",
+ "app.register-result.back-home": "Powróć do strony głównej",
+ "app.register-result.view-mailbox": "Zobacz skrzynkę odbiorczą",
+ "validation.email.required": "Proszę podać adres email!",
+ "validation.email.wrong-format": "Adres email jest w nieprawidłowym formacie!",
+ "validation.password.required": "Proszę podać swoje hasło!",
+ "validation.password.twice": "Pierwsze oraz powtórzone hasło nie są identyczne!",
+ "validation.password.strength.msg":
+ "Hasło powinno być trudne do odgadnięcia oraz składać się z przynajmniej 6 znaków",
+ "validation.password.strength.strong": "Siła: mocne",
+ "validation.password.strength.medium": "Siła: średni",
+ "validation.password.strength.short": "Siła: zbyt krótkie",
+ "validation.confirm-password.required": "Proszę, potwierdź swoje hasło!",
+ "validation.phone-number.required": "Proszę podać numer telefonu komórkowego!",
+ "validation.phone-number.wrong-format": "Nieprawidłowy numer telefonu!",
+ "validation.verification-code.required": "Proszę podać kod weryfikacyjny!",
+ "validation.title.required": "Proszę podać tytuł",
+ "validation.date.required": "Proszę podać datę początkową i końcową",
+ "validation.goal.required": "Proszę podać opis dla tego celu",
+ "validation.standard.required": "Proszę wskazać metrykę"
+}
diff --git a/src/assets/tmp/i18n/sl-SI.json b/src/assets/tmp/i18n/sl-SI.json
new file mode 100644
index 00000000..6b13b589
--- /dev/null
+++ b/src/assets/tmp/i18n/sl-SI.json
@@ -0,0 +1,151 @@
+{
+ "menu.search.placeholder": "Išči ljudi, datoteke, fotografije,...",
+ "menu.fullscreen": "Celozaslonski način",
+ "menu.fullscreen.exit": "Zapusti celozaslonski način",
+ "menu.clear.local.storage": "Izbriši lokalni pomnilnik",
+ "menu.lang": "Jezik",
+ "menu.main": "Glavna navigacija",
+ "menu.dashboard": "Glavni vmesnik",
+ "menu.dashboard.v1": "Privzeto",
+ "menu.dashboard.analysis": "Analiza",
+ "menu.dashboard.monitor": "Monitor",
+ "menu.dashboard.workplace": "Delovno mesto",
+ "menu.shortcut": "Bližnjica",
+ "menu.widgets": "Pripomočki",
+ "menu.alain": "Alain",
+ "menu.style": "Slog",
+ "menu.style.typography": "Pisava",
+ "menu.style.gridmasonry": "Mreža",
+ "menu.style.colors": "Barve",
+ "menu.delon": "Delon Lib",
+ "menu.delon.form": "Dinamični obrazec",
+ "menu.delon.table": "Enostavna tabela",
+ "menu.delon.util": "Pomoč",
+ "menu.delon.print": "Natisni",
+ "menu.delon.guard": "Route Guard",
+ "menu.delon.cache": "Začasni pomnilnik",
+ "menu.delon.qr": "QR",
+ "menu.delon.acl": "ACL",
+ "menu.delon.downfile": "Prenesi datoteko",
+ "menu.delon.xlsx": "Excel",
+ "menu.delon.zip": "Zip",
+ "menu.pro": "Antd Pro",
+ "menu.form": "Obrazec",
+ "menu.form.basicform": "Osnovni obrazec",
+ "menu.form.stepform": "Obrazec koraka",
+ "menu.form.stepform.info": "Obrazec koraka (navedite informacijo za prenos)",
+ "menu.form.stepform.confirm": "Obrazec koraka (potrdite informacijo za prenos)",
+ "menu.form.stepform.result": "Obrazec koraka (končano)",
+ "menu.form.advancedform": "Napredni obrazec",
+ "menu.list": "Seznam",
+ "menu.list.searchtable": "Iskalna tabela",
+ "menu.list.basiclist": "Osnovni seznam",
+ "menu.list.cardlist": "Kartični seznam",
+ "menu.list.searchlist": "Išči po seznamu",
+ "menu.list.searchlist.articles": "Išči po seznamu (članki)",
+ "menu.list.searchlist.projects": "Išči po seznamu (projekti)",
+ "menu.list.searchlist.applications": "Išči po seznamu (aplikacije)",
+ "menu.profile": "Profil",
+ "menu.profile.basic": "Osnovni profil",
+ "menu.profile.advanced": "Napredni profil",
+ "menu.result": "Rezultat",
+ "menu.result.success": "Uspešno",
+ "menu.result.fail": "Neuspešno",
+ "menu.exception": "Izjema",
+ "menu.exception.not-permission": "403",
+ "menu.exception.not-find": "404",
+ "menu.exception.server-error": "500",
+ "menu.account": "Račun",
+ "menu.account.center": "Središče za račun",
+ "menu.account.settings": "Nastavitve računa",
+ "menu.account.trigger": "Napaka sprožilca",
+ "menu.account.logout": "Odjava",
+ "menu.more": "Več",
+ "menu.report": "Poročilo",
+ "menu.report.relation": "Zemljevid relacije",
+ "menu.extras": "Dodatek",
+ "menu.extras.helpcenter": "Središče za pomoč",
+ "menu.extras.settings": "Nastavitve",
+ "menu.extras.poi": "Poi",
+ "app.analysis.test": "Gongzhuan No.{{no}} shop",
+ "app.analysis.introduce": "Predstavitev",
+ "app.analysis.total-sales": "Prodaja skupaj",
+ "app.analysis.day-sales": "Prodaja dnevna",
+ "app.analysis.visits": "Obiski",
+ "app.analysis.visits-trend": "Trend obiskov",
+ "app.analysis.visits-ranking": "Rangiranje obiskov",
+ "app.analysis.day-visits": "Dnevni obiski",
+ "app.analysis.week": "Tedensko razmerje",
+ "app.analysis.day": "Dnevno razmerje",
+ "app.analysis.payments": "Plačila",
+ "app.analysis.conversion-rate": "Menjalni tečaj",
+ "app.analysis.operational-effect": "Operativni učinek",
+ "app.analysis.sales-trend": "Trend prodaje",
+ "app.analysis.sales-ranking": "Rangiranje prodaje",
+ "app.analysis.all-year": "Celotno leto",
+ "app.analysis.all-month": "Cel mesec",
+ "app.analysis.all-week": "Cel teden",
+ "app.analysis.all-day": "Cel dan",
+ "app.analysis.search-users": "Išči uporabnike",
+ "app.analysis.per-capita-search": "Iskanje na prebivalca",
+ "app.analysis.online-top-search": "Spletno iskanje",
+ "app.analysis.the-proportion-of-sales": "Delež prodaje",
+ "app.analysis.channel.all": "VSE",
+ "app.analysis.channel.online": "Splet",
+ "app.analysis.channel.stores": "Trgovine",
+ "app.analysis.sales": "Prodaja",
+ "app.analysis.traffic": "Promet",
+ "app.analysis.table.rank": "Razvrstitev",
+ "app.analysis.table.search-keyword": "Ključna beseda",
+ "app.analysis.table.users": "Uporabniki",
+ "app.analysis.table.weekly-range": "Tedenski razpon",
+ "app.monitor.trading-activity": "Analiza trgovanja v realnem času",
+ "app.monitor.total-transactions": "Skupno število transakcij danes",
+ "app.monitor.sales-target": "Doseganje prodajnega plana",
+ "app.monitor.remaining-time": "Preostali čas aktivnosti",
+ "app.monitor.total-transactions-per-second": "Skupaj transakcij na sekundo",
+ "app.monitor.activity-forecast": "Napoved aktivnosti",
+ "app.monitor.efficiency": "Učinkovitost",
+ "app.monitor.ratio": "Razmerje",
+ "app.monitor.proportion-per-category": "Razmerje na kategorijo",
+ "app.monitor.fast-food": "Hitre hrana",
+ "app.monitor.western-food": "Zahodnjaška hrana",
+ "app.monitor.hot-pot": "Vroč lonec",
+ "app.monitor.waiting-for-implementation": "Čaka na izvedbo",
+ "app.monitor.popular-searches": "Priljubljena iskanja",
+ "app.monitor.resource-surplus": "Presežek virov",
+ "app.monitor.fund-surplus": "Presežek sredstev",
+ "app.lock": "Zakleni",
+ "app.login.message-invalid-credentials": "Nnapačno uporabniško ime ali geslo",
+ "app.login.message-invalid-verification-code": "Napačna verifikacijska koda",
+ "app.login.tab-login-credentials": "Začetnice",
+ "app.login.tab-login-mobile": "Mobilna številka",
+ "app.login.remember-me": "Opomni me",
+ "app.login.forgot-password": "Pozabljeno geslo?",
+ "app.login.sign-in-with": "Prijavi se kot",
+ "app.login.signup": "Registracija",
+ "app.login.login": "Prijava",
+ "app.register.register": "Prijavi se",
+ "app.register.get-verification-code": "Pridobi kodo",
+ "app.register.sign-in": "Že imate račun?",
+ "app.register-result.msg": "Račun : registriran na {{email}}",
+ "app.register-result.activation-email": "Aktivacijsko e-poštno sporočilo je bilo poslano na vaš e-poštni naslov in je veljavno 24 ur. Prosimo, da se pravočasno preverite e-pošto in kliknite povezavo v e-poštnem sporočilu, da aktivirate račun.",
+ "app.register-result.back-home": "Nazaj domov",
+ "app.register-result.view-mailbox": "Poglej nabiralnik",
+ "validation.email.required": "Prosim vnesite vaš e-mail",
+ "validation.email.wrong-format": "e-mail naslov je v napačnem formatu!",
+ "validation.password.required": "Prosim vnesite vaše geslo!",
+ "validation.password.twice": "Dvakrat vnesena gesla se ne ujemajo!",
+ "validation.password.strength.msg": "Vnesite vsaj 6 znakov in ne uporabljajte gesel, ki jih je enostavno uganiti.",
+ "validation.password.strength.strong": "Jakost: močno",
+ "validation.password.strength.medium": "Jakost: srednje",
+ "validation.password.strength.short": "Jakost: prekratko",
+ "validation.confirm-password.required": "Porsim potrdite vaše geslo!",
+ "validation.phone-number.required": "Prosim vnesite vašo mobilno številko!",
+ "validation.phone-number.wrong-format": "Napačna telefonska številka!",
+ "validation.verification-code.required": "Vnesite kodo za preverjanje",
+ "validation.title.required": "Prosim vnesite naslov",
+ "validation.date.required": "Izberite datum začetka in konca",
+ "validation.goal.required": "Vnesite opis cilja",
+ "validation.standard.required": "Vnesite meritev"
+}
diff --git a/src/assets/tmp/i18n/tr-TR.json b/src/assets/tmp/i18n/tr-TR.json
new file mode 100644
index 00000000..9abafd72
--- /dev/null
+++ b/src/assets/tmp/i18n/tr-TR.json
@@ -0,0 +1,153 @@
+{
+ "menu.search.placeholder": "Kişileri, dosyaları, fotografları... ara",
+ "menu.fullscreen": "Tam Ekran",
+ "menu.fullscreen.exit": "Tam Ekrandan Çık",
+ "menu.clear.local.storage": "Yerel Depolama Alanını Temizle",
+ "menu.lang": "Dil",
+ "menu.main": "Ana Menü",
+ "menu.dashboard": "Panel",
+ "menu.dashboard.v1": "Varsayılan",
+ "menu.dashboard.analysis": "Analiz",
+ "menu.dashboard.monitor": "İzleme",
+ "menu.dashboard.workplace": "Çalışma Alanı",
+ "menu.shortcut": "Kısayol",
+ "menu.widgets": "Araçlar",
+ "menu.alain": "Alain",
+ "menu.style": "Stil",
+ "menu.style.typography": "Tipografi",
+ "menu.style.gridmasonry": "Masonry Izgara",
+ "menu.style.colors": "Renkler",
+ "menu.delon": "Delon Kütüphanesi",
+ "menu.delon.form": "Dinamik Form",
+ "menu.delon.table": "Basit Tablo",
+ "menu.delon.util": "Faydalı",
+ "menu.delon.print": "Çıktı",
+ "menu.delon.guard": "Route Guard",
+ "menu.delon.cache": "Cache",
+ "menu.delon.qr": "QR",
+ "menu.delon.acl": "ACL",
+ "menu.delon.downfile": "Dosya İndirme",
+ "menu.delon.xlsx": "Excel",
+ "menu.delon.zip": "Zip",
+ "menu.pro": "Antd Pro",
+ "menu.form": "Form",
+ "menu.form.basicform": "Temel Form",
+ "menu.form.stepform": "Step Form",
+ "menu.form.stepform.info": "Step Form(Transfer bilgisi yazınız)",
+ "menu.form.stepform.confirm": "Step Form(transfer bilgisini onaylayın)",
+ "menu.form.stepform.result": "Step Form(tamamlanmış)",
+ "menu.form.advancedform": "Gelişmiş Form",
+ "menu.list": "Liste",
+ "menu.list.searchtable": "Arama Tablo",
+ "menu.list.basiclist": "Basit Liste",
+ "menu.list.cardlist": "Kart Listesi",
+ "menu.list.searchlist": "Arama Listesi",
+ "menu.list.searchlist.articles": "Arama Listesi(articles)",
+ "menu.list.searchlist.projects": "Search List(projects)",
+ "menu.list.searchlist.applications": "Search List(applications)",
+ "menu.profile": "Profil",
+ "menu.profile.basic": "Temel Profil",
+ "menu.profile.advanced": "Gelişmiş Profil",
+ "menu.result": "Sonuç",
+ "menu.result.success": "Başarılı",
+ "menu.result.fail": "Başarısız",
+ "menu.exception": "İstisna",
+ "menu.exception.not-permission": "403",
+ "menu.exception.not-find": "404",
+ "menu.exception.server-error": "500",
+ "menu.account": "Hesap",
+ "menu.account.center": "Hesap Center",
+ "menu.account.settings": "Hesap Ayarları",
+ "menu.account.trigger": "Tetikleyici Hatası",
+ "menu.account.logout": "Çıkış Yap",
+ "menu.more": "Daha",
+ "menu.report": "Rapor",
+ "menu.report.relation": "İlişki Haritası",
+ "menu.extras": "Ekstra",
+ "menu.extras.helpcenter": "Yardım Merkezi",
+ "menu.extras.settings": "Ayarlar",
+ "menu.extras.poi": "Poi",
+ "app.analysis.test": "Gongzhuan No.{{no}} shop",
+ "app.analysis.introduce": "Tanıtım",
+ "app.analysis.total-sales": "Toplam Satışlar",
+ "app.analysis.day-sales": "Günlük Satışlar",
+ "app.analysis.visits": "Zirayetçiler",
+ "app.analysis.visits-trend": "Ziyaretçi Trendi",
+ "app.analysis.visits-ranking": "Ziyaretçi Sıralaması",
+ "app.analysis.day-visits": "Günlük Ziyaretler",
+ "app.analysis.week": "Hafta Oranı",
+ "app.analysis.day": "Günlük Oran",
+ "app.analysis.payments": "Ödemeler",
+ "app.analysis.conversion-rate": "Dönüştüme Oranı",
+ "app.analysis.operational-effect": "Operational Effect",
+ "app.analysis.sales-trend": "Mağaza Satış Trendleri",
+ "app.analysis.sales-ranking": "Satış Sıralaması",
+ "app.analysis.all-year": "Tüm Yıl",
+ "app.analysis.all-month": "Tüm Ay",
+ "app.analysis.all-week": "Tüm Hafta",
+ "app.analysis.all-day": "Tüm Gün",
+ "app.analysis.search-users": "Kullanıcıları ara",
+ "app.analysis.per-capita-search": "Kişi bazlı arama",
+ "app.analysis.online-top-search": "En İyi Çevrimiçi arama",
+ "app.analysis.the-proportion-of-sales": "Satışların oranı",
+ "app.analysis.channel.all": "Herşey",
+ "app.analysis.channel.online": "Çevrimiçi",
+ "app.analysis.channel.stores": "Mağazalar",
+ "app.analysis.sales": "Satış",
+ "app.analysis.traffic": "Trafik",
+ "app.analysis.table.rank": "Oran",
+ "app.analysis.table.search-keyword": "Anahtar Kelime",
+ "app.analysis.table.users": "Kullanıcılar",
+ "app.analysis.table.weekly-range": "Haftalık Aralık",
+ "app.monitor.trading-activity": "Gerçek Zamanlı İşlem Etkinliği",
+ "app.monitor.total-transactions": "Bügünlük toplam işlem",
+ "app.monitor.sales-target": "Satış hedeflerini tamamlama oranı",
+ "app.monitor.remaining-time": "Kalan etkinlik süresi",
+ "app.monitor.total-transactions-per-second": "Total transactions per second",
+ "app.monitor.activity-forecast": "Saniye başına toplam işlem",
+ "app.monitor.efficiency": "Verim",
+ "app.monitor.ratio": "Oran",
+ "app.monitor.proportion-per-category": "Kategori başına oran",
+ "app.monitor.fast-food": "Fast food",
+ "app.monitor.western-food": "Betı yemeği",
+ "app.monitor.hot-pot": "Güveç",
+ "app.monitor.waiting-for-implementation": "Uygulama bekleniyor",
+ "app.monitor.popular-searches": "Popüler Aramalar",
+ "app.monitor.resource-surplus": "Kaynak Fazlası",
+ "app.monitor.fund-surplus": "Fon Fazlası",
+ "app.lock": "Kilitli",
+ "app.login.message-invalid-credentials": "Kullanıcı adı veya şifre geçersizdir(admin/ant.design)",
+ "app.login.message-invalid-verification-code": "Doğrulama kodu geçersizdir",
+ "app.login.tab-login-credentials": "Kimlik bilgileri",
+ "app.login.tab-login-mobile": "Telefon numarası",
+ "app.login.remember-me": "Beni hatırla",
+ "app.login.forgot-password": "Parolanızı mı unuttunuz?",
+ "app.login.sign-in-with": "Şununla giriş yapın",
+ "app.login.signup": "Kaydol",
+ "app.login.login": "Giriş",
+ "app.register.register": "Kayıt",
+ "app.register.get-verification-code": "Kodu al",
+ "app.register.sign-in": "Hesabınız zaten var ı?",
+ "app.register-result.msg": "Hesap:{{email}} kayıtlı",
+ "app.register-result.activation-email":
+ "Aktivasyon e-postası e-posta adresinize gönderilmiştir ve 24 saat geçerlidir. Lütfen e-postaya zamanında giriş yapın ve hesabı etkinleştirmek için e-postadaki bağlantıya tıklayın.",
+ "app.register-result.back-home": "Ana sayfaya dön",
+ "app.register-result.view-mailbox": "Posta kutusunu görüntüle",
+ "validation.email.required": "Lütfen e-postanızı giriniz!",
+ "validation.email.wrong-format": "E-posta adresı formatı yanlıştır!",
+ "validation.password.required": "Lütfen şifrenizi giriniz!",
+ "validation.password.twice": "Şifre doğrulama eşleşmiyor!",
+ "validation.password.strength.msg":
+ "Lütfen en az 6 karakter girin ve tahmin edilmesi kolay şifreler kullanmayın.",
+ "validation.password.strength.strong": "Şifre Karmaşıklığı: Güçlü",
+ "validation.password.strength.medium": "Şifre Karmaşıklığı: orta",
+ "validation.password.strength.short": "Şifre Karmaşıklığı: çok kısa",
+ "validation.confirm-password.required": "Lütfen şifrenizi doğrulayınız!",
+ "validation.phone-number.required": "Lütfen telefon numaranızı giriniz!",
+ "validation.phone-number.wrong-format": "Hatalı telefon numarası!",
+ "validation.verification-code.required": "Lütfen doğrulama kodunu giriniz!",
+ "validation.title.required": "Lütfen bir başlık giriniz",
+ "validation.date.required": "Lütfen başlangıç ve bitiş tarihini seçiniz",
+ "validation.goal.required": "Lütfen hedef için bir açıklama giriniz",
+ "validation.standard.required": "Lütfen bir metrik giriniz"
+}
diff --git a/src/assets/tmp/i18n/zh-CN.json b/src/assets/tmp/i18n/zh-CN.json
new file mode 100644
index 00000000..0428ab9b
--- /dev/null
+++ b/src/assets/tmp/i18n/zh-CN.json
@@ -0,0 +1,251 @@
+{
+ "menu.search.placeholder": "搜索:员工、文件、照片等",
+ "menu.fullscreen": "全屏",
+ "menu.fullscreen.exit": "退出全屏",
+ "menu.clear.local.storage": "清理本地缓存",
+ "menu.lang": "语言",
+ "menu.main": "主导航",
+ "menu.dashboard": "仪表盘",
+ "menu.dashboard.v1": "默认页",
+ "menu.dashboard.analysis": "分析页",
+ "menu.dashboard.monitor": "监控页",
+ "menu.dashboard.workplace": "工作台",
+ "menu.shortcut": "快捷菜单",
+ "menu.widgets": "小部件",
+ "menu.alain": "Alain",
+ "menu.style": "样式",
+ "menu.style.typography": "字体排印",
+ "menu.style.gridmasonry": "瀑布流",
+ "menu.style.colors": "色彩",
+ "menu.delon": "Delon 类库",
+ "menu.delon.form": "动态表单",
+ "menu.delon.table": "简易表格",
+ "menu.delon.util": "工具集",
+ "menu.delon.print": "打印",
+ "menu.delon.guard": "路由守卫",
+ "menu.delon.cache": "字典缓存",
+ "menu.delon.qr": "二维码",
+ "menu.delon.acl": "基于角色访问控制",
+ "menu.delon.downfile": "下载文件",
+ "menu.delon.xlsx": "Excel操作",
+ "menu.delon.zip": "本地解压缩",
+ "menu.pro": "Antd Pro",
+ "menu.form": "表单页",
+ "menu.form.basicform": "基础表单",
+ "menu.form.stepform": "分步表单",
+ "menu.form.stepform.info": "分步表单(填写转账信息)",
+ "menu.form.stepform.confirm": "分步表单(确认转账信息)",
+ "menu.form.stepform.result": "分步表单(完成)",
+ "menu.form.advancedform": "高级表单",
+ "menu.list": "列表页",
+ "menu.list.searchtable": "查询表格",
+ "menu.list.basiclist": "标准列表",
+ "menu.list.cardlist": "卡片列表",
+ "menu.list.searchlist": "搜索列表",
+ "menu.list.searchlist.articles": "搜索列表(文章)",
+ "menu.list.searchlist.projects": "搜索列表(项目)",
+ "menu.list.searchlist.applications": "搜索列表(应用)",
+ "menu.profile": "详情页",
+ "menu.profile.basic": "基础详情页",
+ "menu.profile.advanced": "高级详情页",
+ "menu.result": "结果页",
+ "menu.result.success": "成功页",
+ "menu.result.fail": "失败页",
+ "menu.exception": "异常页",
+ "menu.exception.not-permission": "403",
+ "menu.exception.not-find": "404",
+ "menu.exception.server-error": "500",
+ "menu.account": "个人页",
+ "menu.account.center": "个人中心",
+ "menu.account.settings": "个人设置",
+ "menu.account.trigger": "触发错误",
+ "menu.account.logout": "退出登录",
+ "menu.more": "更多",
+ "menu.report": "报表",
+ "menu.report.relation": "全屏关系图",
+ "menu.extras": "扩展",
+ "menu.extras.helpcenter": "帮助中心",
+ "menu.extras.settings": "设置",
+ "menu.extras.poi": "门店",
+ "app.analysis.test": "工专路 {{no}} 号店",
+ "app.analysis.introduce": "指标说明",
+ "app.analysis.total-sales": "总销售额",
+ "app.analysis.day-sales": "日销售额",
+ "app.analysis.visits": "访问量",
+ "app.analysis.visits-trend": "访问量趋势",
+ "app.analysis.visits-ranking": "门店访问量排名",
+ "app.analysis.day-visits": "日访问量",
+ "app.analysis.week": "周同比",
+ "app.analysis.day": "日同比",
+ "app.analysis.payments": "支付笔数",
+ "app.analysis.conversion-rate": "转化率",
+ "app.analysis.operational-effect": "运营活动效果",
+ "app.analysis.sales-trend": "销售趋势",
+ "app.analysis.sales-ranking": "门店销售额排名",
+ "app.analysis.all-year": "全年",
+ "app.analysis.all-month": "本月",
+ "app.analysis.all-week": "本周",
+ "app.analysis.all-day": "今日",
+ "app.analysis.search-users": "搜索用户数",
+ "app.analysis.per-capita-search": "人均搜索次数",
+ "app.analysis.online-top-search": "线上热门搜索",
+ "app.analysis.the-proportion-of-sales": "销售额类别占比",
+ "app.analysis.channel.all": "全部渠道",
+ "app.analysis.channel.online": "线上",
+ "app.analysis.channel.stores": "门店",
+ "app.analysis.sales": "销售额",
+ "app.analysis.traffic": "客流量",
+ "app.analysis.table.rank": "排名",
+ "app.analysis.table.search-keyword": "搜索关键词",
+ "app.analysis.table.users": "用户数",
+ "app.analysis.table.weekly-range": "周涨幅",
+ "app.monitor.trading-activity": "活动实时交易情况",
+ "app.monitor.total-transactions": "今日交易总额",
+ "app.monitor.sales-target": "销售目标完成率",
+ "app.monitor.remaining-time": "活动剩余时间",
+ "app.monitor.total-transactions-per-second": "每秒交易总额",
+ "app.monitor.activity-forecast": "活动情况预测",
+ "app.monitor.efficiency": "券核效率",
+ "app.monitor.ratio": "跳出率",
+ "app.monitor.proportion-per-category": "各品类占比",
+ "app.monitor.fast-food": "中式快餐",
+ "app.monitor.western-food": "西餐",
+ "app.monitor.hot-pot": "火锅",
+ "app.monitor.waiting-for-implementation": "等待后期实现",
+ "app.monitor.popular-searches": "热门搜索",
+ "app.monitor.resource-surplus": "资源剩余",
+ "app.monitor.fund-surplus": "补贴资金剩余",
+ "app.lock": "锁屏",
+ "app.login.message-invalid-credentials": "账户或密码错误(admin/ant.design)",
+ "app.login.message-invalid-verification-code": "验证码错误",
+ "app.login.tab-login-credentials": "账户密码登录",
+ "app.login.tab-login-mobile": "手机号登录",
+ "app.login.remember-me": "自动登录",
+ "app.login.forgot-password": "忘记密码",
+ "app.login.sign-in-with": "其他登录方式",
+ "app.login.signup": "注册账户",
+ "app.login.login": "登录",
+ "app.register.register": "注册",
+ "app.register.get-verification-code": "获取验证码",
+ "app.register.sign-in": "使用已有账户登录",
+ "app.register-result.msg": "你的账户:{{email}} 注册成功",
+ "app.register-result.activation-email": "激活邮件已发送到你的邮箱中,邮件有效期为24小时。请及时登录邮箱,点击邮件中的链接激活帐户。",
+ "app.register-result.back-home": "返回首页",
+ "app.register-result.view-mailbox": "查看邮箱",
+ "validation.email.required": "请输入邮箱地址!",
+ "validation.email.wrong-format": "邮箱地址格式错误!",
+ "validation.password.required": "请输入密码!",
+ "validation.password.twice": "两次输入的密码不匹配!",
+ "validation.password.strength.msg": "请至少输入 6 个字符。请不要使用容易被猜到的密码。",
+ "validation.password.strength.strong": "强度:强",
+ "validation.password.strength.medium": "强度:中",
+ "validation.password.strength.short": "强度:太短",
+ "validation.confirm-password.required": "请确认密码!",
+ "validation.phone-number.required": "请输入手机号!",
+ "validation.phone-number.wrong-format": "手机号格式错误!",
+ "validation.verification-code.required": "请输入验证码!",
+ "validation.title.required": "请输入标题",
+ "validation.date.required": "请选择起止日期",
+ "validation.goal.required": "请输入目标描述",
+ "validation.standard.required": "请输入衡量标准",
+ "common.list": "列表",
+ "common.add": "添加",
+ "common.edit": "编辑",
+ "common.delete": "删除",
+ "common.no-data": "暂无数据",
+ "common.captcha-btn.second": "秒",
+ "common.captcha-btn.send": "发送",
+ "validation.phone-number": "手机号",
+ "validation.verification-code": "验证码",
+ "validation.password": "密码",
+ "app.setting.pagestyle": "整体风格设置",
+ "app.setting.pagestyle.dark": "暗色菜单风格",
+ "app.setting.pagestyle.light": "亮色菜单风格",
+ "app.setting.content-width": "内容区域宽度",
+ "app.setting.content-width.fixed": "定宽",
+ "app.setting.content-width.fluid": "流式",
+ "app.setting.themecolor": "主题色",
+ "app.setting.themecolor.dust": "薄暮",
+ "app.setting.themecolor.volcano": "火山",
+ "app.setting.themecolor.sunset": "日暮",
+ "app.setting.themecolor.cyan": "明青",
+ "app.setting.themecolor.green": "极光绿",
+ "app.setting.themecolor.daybreak": "拂晓蓝(默认)",
+ "app.setting.themecolor.geekblue": "极客蓝",
+ "app.setting.themecolor.purple": "酱紫",
+ "app.setting.navigationmode": "导航模式",
+ "app.setting.sidemenu": "侧边菜单布局",
+ "app.setting.topmenu": "顶部菜单布局",
+ "app.setting.fixedheader": "固定 Header",
+ "app.setting.fixedsidebar": "固定侧边菜单",
+ "app.setting.fixedsidebar.hint": "侧边菜单布局时可配置",
+ "app.setting.hideheader": "下滑时隐藏 Header",
+ "app.setting.hideheader.hint": "固定 Header 时可配置",
+ "app.setting.onlyicon": "只显示图标",
+ "app.setting.onlyicon.hint": "顶部菜单布局时可配置",
+ "app.setting.othersettings": "其他设置",
+ "app.setting.weakmode": "色弱模式",
+ "app.setting.copy": "拷贝设置",
+ "app.setting.copyinfo": "拷贝成功,请根据剪切板内容进行替换",
+ "app.setting.production.hint": "配置栏只在开发环境用于预览,生产环境不会展现,请拷贝后手动修改配置文件",
+ "app.setting.copy.result": "在 [src/styles/theme.less] 配置以下:\n{{colorVars}}\n\n在 [src/environments/*] 的 pro 配置以下:\nexport const environment = {\n ...\n pro: {\n{{layoutVars}}\n }\n}",
+ "menu.dashboard.dd": "定制",
+ "menu.other.calendar": "日历",
+ "menu.other.calendar.basic": "基本使用",
+ "menu.other.calendar.list": "列表视图",
+ "menu.other.calendar.events": "事件开发",
+ "menu.other.faq": "常见问题",
+ "menu.other.faq.v1": "常见问题 v1",
+ "menu.other.faq.v2": "常见问题 v2",
+ "menu.other.faq.v3": "常见问题 v3",
+ "menu.other.kanban-board": "看板",
+ "menu.other.task": "任务",
+ "menu.other.forum": "论坛",
+ "menu.other.email": "邮件消息",
+ "menu.other.project": "项目",
+ "menu.other.client": "顾客",
+ "menu.other.contact": "联系人",
+ "menu.other.pricing": "定价计划",
+ "menu.other.billing": "账单",
+ "menu.other.course": "课程",
+ "menu.other.chat": "聊天窗口",
+ "menu.other.gallery": "相册",
+ "menu.other.article": "文章",
+ "menu.other.voting": "投票",
+ "menu.other.invoice": "发票",
+ "menu.settings": "设置",
+ "menu.pages": "示例",
+ "menu.ec": "电商",
+ "menu.ec.ware": "商品",
+ "menu.ec.trade": "订单",
+ "menu.file": "文件",
+ "menu.file.docx": "Docx",
+ "menu.file.xlsx": "Xlsx",
+ "menu.file.pdf": "Pdf",
+ "menu.system": "系统",
+ "menu.system.file-manager": "文件管理",
+ "menu.system.user": "员工",
+ "menu.system.role": "角色",
+ "menu.system.permission": "权限",
+ "menu.system.menu": "菜单",
+ "menu.system.log": "日志",
+ "menu.map": "地图",
+ "menu.map.google": "Google地图",
+ "menu.map.baidu": "Baidu地图",
+ "menu.chart": "图表",
+ "menu.chart.g2": "G2",
+ "menu.chart.ngx-charts": "Ngx Charts",
+ "menu.chart.ngx-trend": "Ngx Trend",
+ "menu.chart.mermaid": "Mermaid",
+ "menu.chart.gantt": "甘特图",
+ "menu.account.lock": "锁屏",
+ "menu.account.login": "登录 + 注册",
+ "menu.account.login2": "登录 + 注册 2",
+ "menu.account.login3": "登录 + 注册 3",
+ "app.sys.menu.list": "菜单列表",
+ "app.sys.menu.root": "添加根目录",
+ "app.sys.permission.list": "权限列表",
+ "app.sys.permission.root": "添加根节点",
+ "layout.pro.user.link.home": "Pro 首页",
+ "layout.pro.user.link.alain": "Alain Pro"
+}
diff --git a/src/assets/tmp/i18n/zh-TW.json b/src/assets/tmp/i18n/zh-TW.json
new file mode 100644
index 00000000..68c126e3
--- /dev/null
+++ b/src/assets/tmp/i18n/zh-TW.json
@@ -0,0 +1,251 @@
+{
+ "menu.search.placeholder": "搜索:員工、文件、照片等",
+ "menu.fullscreen": "全屏",
+ "menu.fullscreen.exit": "退出全屏",
+ "menu.clear.local.storage": "清理在地緩存",
+ "menu.lang": "語言",
+ "menu.main": "主導航",
+ "menu.dashboard": "儀錶盤",
+ "menu.dashboard.v1": "默認頁",
+ "menu.dashboard.analysis": "分析頁",
+ "menu.dashboard.monitor": "監控頁",
+ "menu.dashboard.workplace": "工作臺",
+ "menu.shortcut": "快捷菜單",
+ "menu.widgets": "小部件",
+ "menu.alain": "Alain",
+ "menu.style": "樣式",
+ "menu.style.typography": "字體排印",
+ "menu.style.gridmasonry": "瀑佈流",
+ "menu.style.colors": "色彩",
+ "menu.delon": "Delon 類庫",
+ "menu.delon.form": "動態錶單",
+ "menu.delon.table": "簡易錶格",
+ "menu.delon.util": "工具集",
+ "menu.delon.print": "列印",
+ "menu.delon.guard": "路由守衛",
+ "menu.delon.cache": "字典緩存",
+ "menu.delon.qr": "二維碼",
+ "menu.delon.acl": "基於角色訪問控製",
+ "menu.delon.downfile": "下載文件",
+ "menu.delon.xlsx": "Excel操作",
+ "menu.delon.zip": "在地解壓縮",
+ "menu.pro": "Antd Pro",
+ "menu.form": "錶單頁",
+ "menu.form.basicform": "基礎錶單",
+ "menu.form.stepform": "分步錶單",
+ "menu.form.stepform.info": "分步錶單(填寫轉賬信息)",
+ "menu.form.stepform.confirm": "分步錶單(確認轉賬信息)",
+ "menu.form.stepform.result": "分步錶單(完成)",
+ "menu.form.advancedform": "高級錶單",
+ "menu.list": "列錶頁",
+ "menu.list.searchtable": "查詢錶格",
+ "menu.list.basiclist": "標準列錶",
+ "menu.list.cardlist": "卡片列錶",
+ "menu.list.searchlist": "搜索列錶",
+ "menu.list.searchlist.articles": "搜索列錶(文章)",
+ "menu.list.searchlist.projects": "搜索列錶(項目)",
+ "menu.list.searchlist.applications": "搜索列錶(應用)",
+ "menu.profile": "詳情頁",
+ "menu.profile.basic": "基礎詳情頁",
+ "menu.profile.advanced": "高級詳情頁",
+ "menu.result": "結果頁",
+ "menu.result.success": "成功頁",
+ "menu.result.fail": "失敗頁",
+ "menu.exception": "異常頁",
+ "menu.exception.not-permission": "403",
+ "menu.exception.not-find": "404",
+ "menu.exception.server-error": "500",
+ "menu.account": "個人頁",
+ "menu.account.center": "個人中心",
+ "menu.account.settings": "個人設置",
+ "menu.account.trigger": "觸發錯誤",
+ "menu.account.logout": "退出登錄",
+ "menu.more": "更多",
+ "menu.report": "報錶",
+ "menu.report.relation": "全屏關係圖",
+ "menu.extras": "擴展",
+ "menu.extras.helpcenter": "幫助中心",
+ "menu.extras.settings": "設置",
+ "menu.extras.poi": "門店",
+ "app.analysis.test": "工專路 {{no}} 號店",
+ "app.analysis.introduce": "指標說明",
+ "app.analysis.total-sales": "總銷售額",
+ "app.analysis.day-sales": "日銷售額",
+ "app.analysis.visits": "訪問量",
+ "app.analysis.visits-trend": "訪問量趨勢",
+ "app.analysis.visits-ranking": "門店訪問量排名",
+ "app.analysis.day-visits": "日訪問量",
+ "app.analysis.week": "周同比",
+ "app.analysis.day": "日同比",
+ "app.analysis.payments": "支付筆數",
+ "app.analysis.conversion-rate": "轉化率",
+ "app.analysis.operational-effect": "運營活動效果",
+ "app.analysis.sales-trend": "銷售趨勢",
+ "app.analysis.sales-ranking": "門店銷售額排名",
+ "app.analysis.all-year": "全年",
+ "app.analysis.all-month": "本月",
+ "app.analysis.all-week": "本周",
+ "app.analysis.all-day": "今日",
+ "app.analysis.search-users": "搜索用戶數",
+ "app.analysis.per-capita-search": "人均搜索次數",
+ "app.analysis.online-top-search": "線上熱門搜索",
+ "app.analysis.the-proportion-of-sales": "銷售額類別佔比",
+ "app.analysis.channel.all": "全部通路",
+ "app.analysis.channel.online": "線上",
+ "app.analysis.channel.stores": "門店",
+ "app.analysis.sales": "銷售額",
+ "app.analysis.traffic": "客流量",
+ "app.analysis.table.rank": "排名",
+ "app.analysis.table.search-keyword": "搜索關鍵詞",
+ "app.analysis.table.users": "用戶數",
+ "app.analysis.table.weekly-range": "周漲幅",
+ "app.monitor.trading-activity": "活動實時交易情況",
+ "app.monitor.total-transactions": "今日交易總額",
+ "app.monitor.sales-target": "銷售目標完成率",
+ "app.monitor.remaining-time": "活動剩餘時間",
+ "app.monitor.total-transactions-per-second": "每秒交易總額",
+ "app.monitor.activity-forecast": "活動情況預測",
+ "app.monitor.efficiency": "券核效率",
+ "app.monitor.ratio": "跳出率",
+ "app.monitor.proportion-per-category": "各品類佔比",
+ "app.monitor.fast-food": "中式快餐",
+ "app.monitor.western-food": "西餐",
+ "app.monitor.hot-pot": "火鍋",
+ "app.monitor.waiting-for-implementation": "Waiting for implementation",
+ "app.monitor.popular-searches": "熱門搜索",
+ "app.monitor.resource-surplus": "資源剩餘",
+ "app.monitor.fund-surplus": "補貼資金剩餘",
+ "app.lock": "鎖屏",
+ "app.login.message-invalid-credentials": "賬戶或密碼錯誤(admin/ant.design)",
+ "app.login.message-invalid-verification-code": "驗證碼錯誤",
+ "app.login.tab-login-credentials": "賬戶密碼登錄",
+ "app.login.tab-login-mobile": "手機號登錄",
+ "app.login.remember-me": "自動登錄",
+ "app.login.forgot-password": "忘記密碼",
+ "app.login.sign-in-with": "其他登錄方式",
+ "app.login.signup": "註冊賬戶",
+ "app.login.login": "登錄",
+ "app.register.register": "註冊",
+ "app.register.get-verification-code": "獲取驗證碼",
+ "app.register.sign-in": "使用已有賬戶登錄",
+ "app.register-result.msg": "妳的賬戶:{{email}} 註冊成功",
+ "app.register-result.activation-email": "激活郵件已發送到妳的郵箱中,郵件有效期為24小時。請及時登錄郵箱,點擊郵件中的鏈接激活帳戶。",
+ "app.register-result.back-home": "返回首頁",
+ "app.register-result.view-mailbox": "檢視郵箱",
+ "validation.email.required": "請輸入郵箱地址!",
+ "validation.email.wrong-format": "郵箱地址格式錯誤!",
+ "validation.password.required": "請輸入密碼!",
+ "validation.password.twice": "兩次輸入的密碼不匹配!",
+ "validation.password.strength.msg": "請至少輸入 6 個字符。請不要使用容易被猜到的密碼。",
+ "validation.password.strength.strong": "強度:強",
+ "validation.password.strength.medium": "強度:中",
+ "validation.password.strength.short": "強度:太短",
+ "validation.confirm-password.required": "請確認密碼!",
+ "validation.phone-number.required": "請輸入手機號!",
+ "validation.phone-number.wrong-format": "手機號格式錯誤!",
+ "validation.verification-code.required": "請輸入驗證碼!",
+ "validation.title.required": "請輸入標題",
+ "validation.date.required": "請選擇起止日期",
+ "validation.goal.required": "請輸入目標描述",
+ "validation.standard.required": "請輸入衡量標淮",
+ "common.list": "列錶",
+ "common.add": "添加",
+ "common.edit": "編輯",
+ "common.delete": "刪除",
+ "common.no-data": "暫無數據",
+ "common.captcha-btn.second": "秒",
+ "common.captcha-btn.send": "發送",
+ "validation.phone-number": "手機號",
+ "validation.verification-code": "驗證碼",
+ "validation.password": "密碼",
+ "app.setting.pagestyle": "整體風格設定",
+ "app.setting.pagestyle.dark": "暗色菜單風格",
+ "app.setting.pagestyle.light": "亮色菜單風格",
+ "app.setting.content-width": "內容區域寬度",
+ "app.setting.content-width.fixed": "定寬",
+ "app.setting.content-width.fluid": "流式",
+ "app.setting.themecolor": "主題色",
+ "app.setting.themecolor.dust": "薄暮",
+ "app.setting.themecolor.volcano": "火山",
+ "app.setting.themecolor.sunset": "日暮",
+ "app.setting.themecolor.cyan": "明青",
+ "app.setting.themecolor.green": "極光綠",
+ "app.setting.themecolor.daybreak": "拂曉藍(預設)",
+ "app.setting.themecolor.geekblue": "極客藍",
+ "app.setting.themecolor.purple": "醬紫",
+ "app.setting.navigationmode": "導航模式",
+ "app.setting.sidemenu": "側邊菜單佈局",
+ "app.setting.topmenu": "頂部菜單佈局",
+ "app.setting.fixedheader": "固定 Header",
+ "app.setting.fixedsidebar": "固定側邊菜單",
+ "app.setting.fixedsidebar.hint": "側邊菜單佈局時可配置",
+ "app.setting.hideheader": "下滑時隱藏 Header",
+ "app.setting.hideheader.hint": "固定 Header 時可配置",
+ "app.setting.onlyicon": "隻顯示圖示",
+ "app.setting.onlyicon.hint": "頂部菜單佈局時可配置",
+ "app.setting.othersettings": "其他設定",
+ "app.setting.weakmode": "色弱模式",
+ "app.setting.copy": "拷貝設定",
+ "app.setting.copyinfo": "拷貝成功,請根據剪切闆內容進行替換",
+ "app.setting.production.hint": "配置欄隻在開發環境用於預覽,生産環境不會展現,請拷貝後手動修改配置文件",
+ "app.setting.copy.result": "在 [src/styles/theme.less] 配置以下:\n{{colorVars}}\n\n在 [src/environments/*] 的 pro 配置以下:\nexport const environment = {\n ...\n pro: {\n{{layoutVars}}\n }\n}",
+ "menu.dashboard.dd": "定製",
+ "menu.other.calendar": "日曆",
+ "menu.other.calendar.basic": "基本使用",
+ "menu.other.calendar.list": "列錶視圖",
+ "menu.other.calendar.events": "事件開發",
+ "menu.other.faq": "常見問題",
+ "menu.other.faq.v1": "常見問題 v1",
+ "menu.other.faq.v2": "常見問題 v2",
+ "menu.other.faq.v3": "常見問題 v3",
+ "menu.other.kanban-board": "看闆",
+ "menu.other.task": "任務",
+ "menu.other.forum": "論壇",
+ "menu.other.email": "郵件消息",
+ "menu.other.project": "項目",
+ "menu.other.client": "顧客",
+ "menu.other.contact": "聯係人",
+ "menu.other.pricing": "定價計畫",
+ "menu.other.billing": "賬單",
+ "menu.other.course": "課程",
+ "menu.other.chat": "聊天視窗",
+ "menu.other.gallery": "相冊",
+ "menu.other.article": "文章",
+ "menu.other.voting": "投票",
+ "menu.other.invoice": "發票",
+ "menu.settings": "設定",
+ "menu.pages": "示例",
+ "menu.ec": "電商",
+ "menu.ec.ware": "商品",
+ "menu.ec.trade": "訂單",
+ "menu.file": "文件",
+ "menu.file.docx": "Docx",
+ "menu.file.xlsx": "Xlsx",
+ "menu.file.pdf": "Pdf",
+ "menu.system": "係統",
+ "menu.system.file-manager": "文件管理",
+ "menu.system.user": "員工",
+ "menu.system.role": "角色",
+ "menu.system.permission": "權限",
+ "menu.system.menu": "菜單",
+ "menu.system.log": "日誌",
+ "menu.map": "地圖",
+ "menu.map.google": "Google地圖",
+ "menu.map.baidu": "Baidu地圖",
+ "menu.chart": "圖錶",
+ "menu.chart.g2": "G2",
+ "menu.chart.ngx-charts": "Ngx Charts",
+ "menu.chart.ngx-trend": "Ngx Trend",
+ "menu.chart.mermaid": "Mermaid",
+ "menu.chart.gantt": "甘特圖",
+ "menu.account.lock": "鎖屏",
+ "menu.account.login": "登入 + 註冊",
+ "menu.account.login2": "登入 + 註冊 2",
+ "menu.account.login3": "登入 + 註冊 3",
+ "app.sys.menu.list": "菜單列錶",
+ "app.sys.menu.root": "添加根目錄",
+ "app.sys.permission.list": "權限列錶",
+ "app.sys.permission.root": "添加根節點",
+ "layout.pro.user.link.home": "Pro 首頁",
+ "layout.pro.user.link.alain": "Alain Pro"
+}
diff --git a/src/assets/tmp/img-big/1.jpg b/src/assets/tmp/img-big/1.jpg
new file mode 100644
index 00000000..fb205c13
Binary files /dev/null and b/src/assets/tmp/img-big/1.jpg differ
diff --git a/src/assets/tmp/img-big/2.jpg b/src/assets/tmp/img-big/2.jpg
new file mode 100644
index 00000000..a3282d63
Binary files /dev/null and b/src/assets/tmp/img-big/2.jpg differ
diff --git a/src/assets/tmp/img-big/3.jpg b/src/assets/tmp/img-big/3.jpg
new file mode 100644
index 00000000..2ccced74
Binary files /dev/null and b/src/assets/tmp/img-big/3.jpg differ
diff --git a/src/assets/tmp/img-big/4.jpg b/src/assets/tmp/img-big/4.jpg
new file mode 100644
index 00000000..ae895511
Binary files /dev/null and b/src/assets/tmp/img-big/4.jpg differ
diff --git a/src/assets/tmp/img-big/5.jpg b/src/assets/tmp/img-big/5.jpg
new file mode 100644
index 00000000..d9455c01
Binary files /dev/null and b/src/assets/tmp/img-big/5.jpg differ
diff --git a/src/assets/tmp/img-big/6.jpg b/src/assets/tmp/img-big/6.jpg
new file mode 100644
index 00000000..1a7862e7
Binary files /dev/null and b/src/assets/tmp/img-big/6.jpg differ
diff --git a/src/assets/tmp/img-big/7.jpg b/src/assets/tmp/img-big/7.jpg
new file mode 100644
index 00000000..8bc3c4a3
Binary files /dev/null and b/src/assets/tmp/img-big/7.jpg differ
diff --git a/src/assets/tmp/img-big/8.jpg b/src/assets/tmp/img-big/8.jpg
new file mode 100644
index 00000000..0b272dec
Binary files /dev/null and b/src/assets/tmp/img-big/8.jpg differ
diff --git a/src/assets/tmp/img-big/bg-1.jpeg b/src/assets/tmp/img-big/bg-1.jpeg
new file mode 100644
index 00000000..d84c8d2b
Binary files /dev/null and b/src/assets/tmp/img-big/bg-1.jpeg differ
diff --git a/src/assets/tmp/img-big/bg-2.jpeg b/src/assets/tmp/img-big/bg-2.jpeg
new file mode 100644
index 00000000..5a1e9754
Binary files /dev/null and b/src/assets/tmp/img-big/bg-2.jpeg differ
diff --git a/src/assets/tmp/img/1.png b/src/assets/tmp/img/1.png
new file mode 100644
index 00000000..8f6d2d6b
Binary files /dev/null and b/src/assets/tmp/img/1.png differ
diff --git a/src/assets/tmp/img/2.png b/src/assets/tmp/img/2.png
new file mode 100644
index 00000000..a59195e7
Binary files /dev/null and b/src/assets/tmp/img/2.png differ
diff --git a/src/assets/tmp/img/3.png b/src/assets/tmp/img/3.png
new file mode 100644
index 00000000..b0f9da82
Binary files /dev/null and b/src/assets/tmp/img/3.png differ
diff --git a/src/assets/tmp/img/4.png b/src/assets/tmp/img/4.png
new file mode 100644
index 00000000..0058dc35
Binary files /dev/null and b/src/assets/tmp/img/4.png differ
diff --git a/src/assets/tmp/img/5.png b/src/assets/tmp/img/5.png
new file mode 100644
index 00000000..3cccf6a0
Binary files /dev/null and b/src/assets/tmp/img/5.png differ
diff --git a/src/assets/tmp/img/6.png b/src/assets/tmp/img/6.png
new file mode 100644
index 00000000..58601a0d
Binary files /dev/null and b/src/assets/tmp/img/6.png differ
diff --git a/src/assets/tmp/img/avatar.jpg b/src/assets/tmp/img/avatar.jpg
new file mode 100644
index 00000000..ebc92fbf
Binary files /dev/null and b/src/assets/tmp/img/avatar.jpg differ
diff --git a/src/assets/tmp/img/bg1.jpg b/src/assets/tmp/img/bg1.jpg
new file mode 100644
index 00000000..0c1ae55f
Binary files /dev/null and b/src/assets/tmp/img/bg1.jpg differ
diff --git a/src/assets/tmp/img/bg10.jpg b/src/assets/tmp/img/bg10.jpg
new file mode 100644
index 00000000..9e1c5457
Binary files /dev/null and b/src/assets/tmp/img/bg10.jpg differ
diff --git a/src/assets/tmp/img/bg2.jpg b/src/assets/tmp/img/bg2.jpg
new file mode 100644
index 00000000..d2de98e2
Binary files /dev/null and b/src/assets/tmp/img/bg2.jpg differ
diff --git a/src/assets/tmp/img/bg3.jpg b/src/assets/tmp/img/bg3.jpg
new file mode 100644
index 00000000..bb0773a9
Binary files /dev/null and b/src/assets/tmp/img/bg3.jpg differ
diff --git a/src/assets/tmp/img/bg4.jpg b/src/assets/tmp/img/bg4.jpg
new file mode 100644
index 00000000..7b2fdac2
Binary files /dev/null and b/src/assets/tmp/img/bg4.jpg differ
diff --git a/src/assets/tmp/img/bg5.jpg b/src/assets/tmp/img/bg5.jpg
new file mode 100644
index 00000000..b56fa755
Binary files /dev/null and b/src/assets/tmp/img/bg5.jpg differ
diff --git a/src/assets/tmp/img/bg6.jpg b/src/assets/tmp/img/bg6.jpg
new file mode 100644
index 00000000..5774f150
Binary files /dev/null and b/src/assets/tmp/img/bg6.jpg differ
diff --git a/src/assets/tmp/img/bg7.jpg b/src/assets/tmp/img/bg7.jpg
new file mode 100644
index 00000000..6aac5861
Binary files /dev/null and b/src/assets/tmp/img/bg7.jpg differ
diff --git a/src/assets/tmp/img/bg8.jpg b/src/assets/tmp/img/bg8.jpg
new file mode 100644
index 00000000..0956df33
Binary files /dev/null and b/src/assets/tmp/img/bg8.jpg differ
diff --git a/src/assets/tmp/img/bg9.jpg b/src/assets/tmp/img/bg9.jpg
new file mode 100644
index 00000000..1fd12865
Binary files /dev/null and b/src/assets/tmp/img/bg9.jpg differ
diff --git a/src/assets/tmp/img/half-float-bg-1.jpg b/src/assets/tmp/img/half-float-bg-1.jpg
new file mode 100644
index 00000000..4f0af59c
Binary files /dev/null and b/src/assets/tmp/img/half-float-bg-1.jpg differ
diff --git a/src/assets/tmp/on-boarding.json b/src/assets/tmp/on-boarding.json
new file mode 100644
index 00000000..c1725cbd
--- /dev/null
+++ b/src/assets/tmp/on-boarding.json
@@ -0,0 +1,21 @@
+{
+ "$schema": "../../../node_modules/@delon/abc/onboarding/schema.json",
+ "maskClosable": false,
+ "items": [
+ {
+ "selectors": ".alain-default__nav li .alain-default__nav-item",
+ "title": "Click here to switch to shrink main menu",
+ "lightStyle": "background-color: rgba(255, 255, 255, 0.2)"
+ },
+ {
+ "selectors": ".alain-default__search",
+ "title": "You can search for people, file, photos...",
+ "lightStyle": "background-color: rgba(255, 255, 255, 0.2)"
+ },
+ {
+ "selectors": ".setting-drawer__handle",
+ "title": "You can customize your theme",
+ "lightStyle": "background-color: rgba(255, 255, 255, 0.2)"
+ }
+ ]
+}
diff --git a/src/assets/tmp/pc-code.json b/src/assets/tmp/pc-code.json
new file mode 100644
index 00000000..632f7874
--- /dev/null
+++ b/src/assets/tmp/pc-code.json
@@ -0,0 +1 @@
+[{"code":"11","name":"北京市","children":[{"code":"110101","name":"东城区"},{"code":"110102","name":"西城区"},{"code":"110105","name":"朝阳区"},{"code":"110106","name":"丰台区"},{"code":"110107","name":"石景山区"},{"code":"110108","name":"海淀区"},{"code":"110109","name":"门头沟区"},{"code":"110111","name":"房山区"},{"code":"110112","name":"通州区"},{"code":"110113","name":"顺义区"},{"code":"110114","name":"昌平区"},{"code":"110115","name":"大兴区"},{"code":"110116","name":"怀柔区"},{"code":"110117","name":"平谷区"},{"code":"110118","name":"密云区"},{"code":"110119","name":"延庆区"}]},{"code":"12","name":"天津市","children":[{"code":"120101","name":"和平区"},{"code":"120102","name":"河东区"},{"code":"120103","name":"河西区"},{"code":"120104","name":"南开区"},{"code":"120105","name":"河北区"},{"code":"120106","name":"红桥区"},{"code":"120110","name":"东丽区"},{"code":"120111","name":"西青区"},{"code":"120112","name":"津南区"},{"code":"120113","name":"北辰区"},{"code":"120114","name":"武清区"},{"code":"120115","name":"宝坻区"},{"code":"120116","name":"滨海新区"},{"code":"120117","name":"宁河区"},{"code":"120118","name":"静海区"},{"code":"120119","name":"蓟州区"}]},{"code":"13","name":"河北省","children":[{"code":"1301","name":"石家庄市"},{"code":"1302","name":"唐山市"},{"code":"1303","name":"秦皇岛市"},{"code":"1304","name":"邯郸市"},{"code":"1305","name":"邢台市"},{"code":"1306","name":"保定市"},{"code":"1307","name":"张家口市"},{"code":"1308","name":"承德市"},{"code":"1309","name":"沧州市"},{"code":"1310","name":"廊坊市"},{"code":"1311","name":"衡水市"}]},{"code":"14","name":"山西省","children":[{"code":"1401","name":"太原市"},{"code":"1402","name":"大同市"},{"code":"1403","name":"阳泉市"},{"code":"1404","name":"长治市"},{"code":"1405","name":"晋城市"},{"code":"1406","name":"朔州市"},{"code":"1407","name":"晋中市"},{"code":"1408","name":"运城市"},{"code":"1409","name":"忻州市"},{"code":"1410","name":"临汾市"},{"code":"1411","name":"吕梁市"}]},{"code":"15","name":"内蒙古自治区","children":[{"code":"1501","name":"呼和浩特市"},{"code":"1502","name":"包头市"},{"code":"1503","name":"乌海市"},{"code":"1504","name":"赤峰市"},{"code":"1505","name":"通辽市"},{"code":"1506","name":"鄂尔多斯市"},{"code":"1507","name":"呼伦贝尔市"},{"code":"1508","name":"巴彦淖尔市"},{"code":"1509","name":"乌兰察布市"},{"code":"1522","name":"兴安盟"},{"code":"1525","name":"锡林郭勒盟"},{"code":"1529","name":"阿拉善盟"}]},{"code":"21","name":"辽宁省","children":[{"code":"2101","name":"沈阳市"},{"code":"2102","name":"大连市"},{"code":"2103","name":"鞍山市"},{"code":"2104","name":"抚顺市"},{"code":"2105","name":"本溪市"},{"code":"2106","name":"丹东市"},{"code":"2107","name":"锦州市"},{"code":"2108","name":"营口市"},{"code":"2109","name":"阜新市"},{"code":"2110","name":"辽阳市"},{"code":"2111","name":"盘锦市"},{"code":"2112","name":"铁岭市"},{"code":"2113","name":"朝阳市"},{"code":"2114","name":"葫芦岛市"}]},{"code":"22","name":"吉林省","children":[{"code":"2201","name":"长春市"},{"code":"2202","name":"吉林市"},{"code":"2203","name":"四平市"},{"code":"2204","name":"辽源市"},{"code":"2205","name":"通化市"},{"code":"2206","name":"白山市"},{"code":"2207","name":"松原市"},{"code":"2208","name":"白城市"},{"code":"2224","name":"延边朝鲜族自治州"}]},{"code":"23","name":"黑龙江省","children":[{"code":"2301","name":"哈尔滨市"},{"code":"2302","name":"齐齐哈尔市"},{"code":"2303","name":"鸡西市"},{"code":"2304","name":"鹤岗市"},{"code":"2305","name":"双鸭山市"},{"code":"2306","name":"大庆市"},{"code":"2307","name":"伊春市"},{"code":"2308","name":"佳木斯市"},{"code":"2309","name":"七台河市"},{"code":"2310","name":"牡丹江市"},{"code":"2311","name":"黑河市"},{"code":"2312","name":"绥化市"},{"code":"2327","name":"大兴安岭地区"}]},{"code":"31","name":"上海市","children":[{"code":"310101","name":"黄浦区"},{"code":"310104","name":"徐汇区"},{"code":"310105","name":"长宁区"},{"code":"310106","name":"静安区"},{"code":"310107","name":"普陀区"},{"code":"310109","name":"虹口区"},{"code":"310110","name":"杨浦区"},{"code":"310112","name":"闵行区"},{"code":"310113","name":"宝山区"},{"code":"310114","name":"嘉定区"},{"code":"310115","name":"浦东新区"},{"code":"310116","name":"金山区"},{"code":"310117","name":"松江区"},{"code":"310118","name":"青浦区"},{"code":"310120","name":"奉贤区"},{"code":"310151","name":"崇明区"}]},{"code":"32","name":"江苏省","children":[{"code":"3201","name":"南京市"},{"code":"3202","name":"无锡市"},{"code":"3203","name":"徐州市"},{"code":"3204","name":"常州市"},{"code":"3205","name":"苏州市"},{"code":"3206","name":"南通市"},{"code":"3207","name":"连云港市"},{"code":"3208","name":"淮安市"},{"code":"3209","name":"盐城市"},{"code":"3210","name":"扬州市"},{"code":"3211","name":"镇江市"},{"code":"3212","name":"泰州市"},{"code":"3213","name":"宿迁市"}]},{"code":"33","name":"浙江省","children":[{"code":"3301","name":"杭州市"},{"code":"3302","name":"宁波市"},{"code":"3303","name":"温州市"},{"code":"3304","name":"嘉兴市"},{"code":"3305","name":"湖州市"},{"code":"3306","name":"绍兴市"},{"code":"3307","name":"金华市"},{"code":"3308","name":"衢州市"},{"code":"3309","name":"舟山市"},{"code":"3310","name":"台州市"},{"code":"3311","name":"丽水市"}]},{"code":"34","name":"安徽省","children":[{"code":"3401","name":"合肥市"},{"code":"3402","name":"芜湖市"},{"code":"3403","name":"蚌埠市"},{"code":"3404","name":"淮南市"},{"code":"3405","name":"马鞍山市"},{"code":"3406","name":"淮北市"},{"code":"3407","name":"铜陵市"},{"code":"3408","name":"安庆市"},{"code":"3410","name":"黄山市"},{"code":"3411","name":"滁州市"},{"code":"3412","name":"阜阳市"},{"code":"3413","name":"宿州市"},{"code":"3415","name":"六安市"},{"code":"3416","name":"亳州市"},{"code":"3417","name":"池州市"},{"code":"3418","name":"宣城市"}]},{"code":"35","name":"福建省","children":[{"code":"3501","name":"福州市"},{"code":"3502","name":"厦门市"},{"code":"3503","name":"莆田市"},{"code":"3504","name":"三明市"},{"code":"3505","name":"泉州市"},{"code":"3506","name":"漳州市"},{"code":"3507","name":"南平市"},{"code":"3508","name":"龙岩市"},{"code":"3509","name":"宁德市"}]},{"code":"36","name":"江西省","children":[{"code":"3601","name":"南昌市"},{"code":"3602","name":"景德镇市"},{"code":"3603","name":"萍乡市"},{"code":"3604","name":"九江市"},{"code":"3605","name":"新余市"},{"code":"3606","name":"鹰潭市"},{"code":"3607","name":"赣州市"},{"code":"3608","name":"吉安市"},{"code":"3609","name":"宜春市"},{"code":"3610","name":"抚州市"},{"code":"3611","name":"上饶市"}]},{"code":"37","name":"山东省","children":[{"code":"3701","name":"济南市"},{"code":"3702","name":"青岛市"},{"code":"3703","name":"淄博市"},{"code":"3704","name":"枣庄市"},{"code":"3705","name":"东营市"},{"code":"3706","name":"烟台市"},{"code":"3707","name":"潍坊市"},{"code":"3708","name":"济宁市"},{"code":"3709","name":"泰安市"},{"code":"3710","name":"威海市"},{"code":"3711","name":"日照市"},{"code":"3712","name":"莱芜市"},{"code":"3713","name":"临沂市"},{"code":"3714","name":"德州市"},{"code":"3715","name":"聊城市"},{"code":"3716","name":"滨州市"},{"code":"3717","name":"菏泽市"}]},{"code":"41","name":"河南省","children":[{"code":"4101","name":"郑州市"},{"code":"4102","name":"开封市"},{"code":"4103","name":"洛阳市"},{"code":"4104","name":"平顶山市"},{"code":"4105","name":"安阳市"},{"code":"4106","name":"鹤壁市"},{"code":"4107","name":"新乡市"},{"code":"4108","name":"焦作市"},{"code":"4109","name":"濮阳市"},{"code":"4110","name":"许昌市"},{"code":"4111","name":"漯河市"},{"code":"4112","name":"三门峡市"},{"code":"4113","name":"南阳市"},{"code":"4114","name":"商丘市"},{"code":"4115","name":"信阳市"},{"code":"4116","name":"周口市"},{"code":"4117","name":"驻马店市"},{"code":"419001","name":"济源市"}]},{"code":"42","name":"湖北省","children":[{"code":"4201","name":"武汉市"},{"code":"4202","name":"黄石市"},{"code":"4203","name":"十堰市"},{"code":"4205","name":"宜昌市"},{"code":"4206","name":"襄阳市"},{"code":"4207","name":"鄂州市"},{"code":"4208","name":"荆门市"},{"code":"4209","name":"孝感市"},{"code":"4210","name":"荆州市"},{"code":"4211","name":"黄冈市"},{"code":"4212","name":"咸宁市"},{"code":"4213","name":"随州市"},{"code":"4228","name":"恩施土家族苗族自治州"},{"code":"429004","name":"仙桃市"},{"code":"429005","name":"潜江市"},{"code":"429006","name":"天门市"},{"code":"429021","name":"神农架林区"}]},{"code":"43","name":"湖南省","children":[{"code":"4301","name":"长沙市"},{"code":"4302","name":"株洲市"},{"code":"4303","name":"湘潭市"},{"code":"4304","name":"衡阳市"},{"code":"4305","name":"邵阳市"},{"code":"4306","name":"岳阳市"},{"code":"4307","name":"常德市"},{"code":"4308","name":"张家界市"},{"code":"4309","name":"益阳市"},{"code":"4310","name":"郴州市"},{"code":"4311","name":"永州市"},{"code":"4312","name":"怀化市"},{"code":"4313","name":"娄底市"},{"code":"4331","name":"湘西土家族苗族自治州"}]},{"code":"44","name":"广东省","children":[{"code":"4401","name":"广州市"},{"code":"4402","name":"韶关市"},{"code":"4403","name":"深圳市"},{"code":"4404","name":"珠海市"},{"code":"4405","name":"汕头市"},{"code":"4406","name":"佛山市"},{"code":"4407","name":"江门市"},{"code":"4408","name":"湛江市"},{"code":"4409","name":"茂名市"},{"code":"4412","name":"肇庆市"},{"code":"4413","name":"惠州市"},{"code":"4414","name":"梅州市"},{"code":"4415","name":"汕尾市"},{"code":"4416","name":"河源市"},{"code":"4417","name":"阳江市"},{"code":"4418","name":"清远市"},{"code":"4419","name":"东莞市"},{"code":"4420","name":"中山市"},{"code":"4451","name":"潮州市"},{"code":"4452","name":"揭阳市"},{"code":"4453","name":"云浮市"}]},{"code":"45","name":"广西壮族自治区","children":[{"code":"4501","name":"南宁市"},{"code":"4502","name":"柳州市"},{"code":"4503","name":"桂林市"},{"code":"4504","name":"梧州市"},{"code":"4505","name":"北海市"},{"code":"4506","name":"防城港市"},{"code":"4507","name":"钦州市"},{"code":"4508","name":"贵港市"},{"code":"4509","name":"玉林市"},{"code":"4510","name":"百色市"},{"code":"4511","name":"贺州市"},{"code":"4512","name":"河池市"},{"code":"4513","name":"来宾市"},{"code":"4514","name":"崇左市"}]},{"code":"46","name":"海南省","children":[{"code":"4601","name":"海口市"},{"code":"4602","name":"三亚市"},{"code":"4603","name":"三沙市"},{"code":"4604","name":"儋州市"},{"code":"469001","name":"五指山市"},{"code":"469002","name":"琼海市"},{"code":"469005","name":"文昌市"},{"code":"469006","name":"万宁市"},{"code":"469007","name":"东方市"},{"code":"469021","name":"定安县"},{"code":"469022","name":"屯昌县"},{"code":"469023","name":"澄迈县"},{"code":"469024","name":"临高县"},{"code":"469025","name":"白沙黎族自治县"},{"code":"469026","name":"昌江黎族自治县"},{"code":"469027","name":"乐东黎族自治县"},{"code":"469028","name":"陵水黎族自治县"},{"code":"469029","name":"保亭黎族苗族自治县"},{"code":"469030","name":"琼中黎族苗族自治县"}]},{"code":"50","name":"重庆市","children":[{"code":"500101","name":"万州区"},{"code":"500102","name":"涪陵区"},{"code":"500103","name":"渝中区"},{"code":"500104","name":"大渡口区"},{"code":"500105","name":"江北区"},{"code":"500106","name":"沙坪坝区"},{"code":"500107","name":"九龙坡区"},{"code":"500108","name":"南岸区"},{"code":"500109","name":"北碚区"},{"code":"500110","name":"綦江区"},{"code":"500111","name":"大足区"},{"code":"500112","name":"渝北区"},{"code":"500113","name":"巴南区"},{"code":"500114","name":"黔江区"},{"code":"500115","name":"长寿区"},{"code":"500116","name":"江津区"},{"code":"500117","name":"合川区"},{"code":"500118","name":"永川区"},{"code":"500119","name":"南川区"},{"code":"500120","name":"璧山区"},{"code":"500151","name":"铜梁区"},{"code":"500152","name":"潼南区"},{"code":"500153","name":"荣昌区"},{"code":"500154","name":"开州区"},{"code":"500155","name":"梁平区"},{"code":"500156","name":"武隆区"},{"code":"500229","name":"城口县"},{"code":"500230","name":"丰都县"},{"code":"500231","name":"垫江县"},{"code":"500233","name":"忠县"},{"code":"500235","name":"云阳县"},{"code":"500236","name":"奉节县"},{"code":"500237","name":"巫山县"},{"code":"500238","name":"巫溪县"},{"code":"500240","name":"石柱土家族自治县"},{"code":"500241","name":"秀山土家族苗族自治县"},{"code":"500242","name":"酉阳土家族苗族自治县"},{"code":"500243","name":"彭水苗族土家族自治县"}]},{"code":"51","name":"四川省","children":[{"code":"5101","name":"成都市"},{"code":"5103","name":"自贡市"},{"code":"5104","name":"攀枝花市"},{"code":"5105","name":"泸州市"},{"code":"5106","name":"德阳市"},{"code":"5107","name":"绵阳市"},{"code":"5108","name":"广元市"},{"code":"5109","name":"遂宁市"},{"code":"5110","name":"内江市"},{"code":"5111","name":"乐山市"},{"code":"5113","name":"南充市"},{"code":"5114","name":"眉山市"},{"code":"5115","name":"宜宾市"},{"code":"5116","name":"广安市"},{"code":"5117","name":"达州市"},{"code":"5118","name":"雅安市"},{"code":"5119","name":"巴中市"},{"code":"5120","name":"资阳市"},{"code":"5132","name":"阿坝藏族羌族自治州"},{"code":"5133","name":"甘孜藏族自治州"},{"code":"5134","name":"凉山彝族自治州"}]},{"code":"52","name":"贵州省","children":[{"code":"5201","name":"贵阳市"},{"code":"5202","name":"六盘水市"},{"code":"5203","name":"遵义市"},{"code":"5204","name":"安顺市"},{"code":"5205","name":"毕节市"},{"code":"5206","name":"铜仁市"},{"code":"5223","name":"黔西南布依族苗族自治州"},{"code":"5226","name":"黔东南苗族侗族自治州"},{"code":"5227","name":"黔南布依族苗族自治州"}]},{"code":"53","name":"云南省","children":[{"code":"5301","name":"昆明市"},{"code":"5303","name":"曲靖市"},{"code":"5304","name":"玉溪市"},{"code":"5305","name":"保山市"},{"code":"5306","name":"昭通市"},{"code":"5307","name":"丽江市"},{"code":"5308","name":"普洱市"},{"code":"5309","name":"临沧市"},{"code":"5323","name":"楚雄彝族自治州"},{"code":"5325","name":"红河哈尼族彝族自治州"},{"code":"5326","name":"文山壮族苗族自治州"},{"code":"5328","name":"西双版纳傣族自治州"},{"code":"5329","name":"大理白族自治州"},{"code":"5331","name":"德宏傣族景颇族自治州"},{"code":"5333","name":"怒江傈僳族自治州"},{"code":"5334","name":"迪庆藏族自治州"}]},{"code":"54","name":"西藏自治区","children":[{"code":"5401","name":"拉萨市"},{"code":"5402","name":"日喀则市"},{"code":"5403","name":"昌都市"},{"code":"5404","name":"林芝市"},{"code":"5405","name":"山南市"},{"code":"5424","name":"那曲地区"},{"code":"5425","name":"阿里地区"}]},{"code":"61","name":"陕西省","children":[{"code":"6101","name":"西安市"},{"code":"6102","name":"铜川市"},{"code":"6103","name":"宝鸡市"},{"code":"6104","name":"咸阳市"},{"code":"6105","name":"渭南市"},{"code":"6106","name":"延安市"},{"code":"6107","name":"汉中市"},{"code":"6108","name":"榆林市"},{"code":"6109","name":"安康市"},{"code":"6110","name":"商洛市"}]},{"code":"62","name":"甘肃省","children":[{"code":"6201","name":"兰州市"},{"code":"6202","name":"嘉峪关市"},{"code":"6203","name":"金昌市"},{"code":"6204","name":"白银市"},{"code":"6205","name":"天水市"},{"code":"6206","name":"武威市"},{"code":"6207","name":"张掖市"},{"code":"6208","name":"平凉市"},{"code":"6209","name":"酒泉市"},{"code":"6210","name":"庆阳市"},{"code":"6211","name":"定西市"},{"code":"6212","name":"陇南市"},{"code":"6229","name":"临夏回族自治州"},{"code":"6230","name":"甘南藏族自治州"}]},{"code":"63","name":"青海省","children":[{"code":"6301","name":"西宁市"},{"code":"6302","name":"海东市"},{"code":"6322","name":"海北藏族自治州"},{"code":"6323","name":"黄南藏族自治州"},{"code":"6325","name":"海南藏族自治州"},{"code":"6326","name":"果洛藏族自治州"},{"code":"6327","name":"玉树藏族自治州"},{"code":"6328","name":"海西蒙古族藏族自治州"}]},{"code":"64","name":"宁夏回族自治区","children":[{"code":"6401","name":"银川市"},{"code":"6402","name":"石嘴山市"},{"code":"6403","name":"吴忠市"},{"code":"6404","name":"固原市"},{"code":"6405","name":"中卫市"}]},{"code":"65","name":"新疆维吾尔自治区","children":[{"code":"6501","name":"乌鲁木齐市"},{"code":"6502","name":"克拉玛依市"},{"code":"6504","name":"吐鲁番市"},{"code":"6505","name":"哈密市"},{"code":"6523","name":"昌吉回族自治州"},{"code":"6527","name":"博尔塔拉蒙古自治州"},{"code":"6528","name":"巴音郭楞蒙古自治州"},{"code":"6529","name":"阿克苏地区"},{"code":"6530","name":"克孜勒苏柯尔克孜自治州"},{"code":"6531","name":"喀什地区"},{"code":"6532","name":"和田地区"},{"code":"6540","name":"伊犁哈萨克自治州"},{"code":"6542","name":"塔城地区"},{"code":"6543","name":"阿勒泰地区"},{"code":"659001","name":"石河子市"},{"code":"659002","name":"阿拉尔市"},{"code":"659003","name":"图木舒克市"},{"code":"659004","name":"五家渠市"},{"code":"659006","name":"铁门关市"}]}]
\ No newline at end of file
diff --git a/src/assets/tmp/pca-code.json b/src/assets/tmp/pca-code.json
new file mode 100644
index 00000000..24341af9
--- /dev/null
+++ b/src/assets/tmp/pca-code.json
@@ -0,0 +1 @@
+[{"code":"11","name":"北京市","children":[{"code":"1101","name":"市辖区","children":[{"code":"110101","name":"东城区"},{"code":"110102","name":"西城区"},{"code":"110105","name":"朝阳区"},{"code":"110106","name":"丰台区"},{"code":"110107","name":"石景山区"},{"code":"110108","name":"海淀区"},{"code":"110109","name":"门头沟区"},{"code":"110111","name":"房山区"},{"code":"110112","name":"通州区"},{"code":"110113","name":"顺义区"},{"code":"110114","name":"昌平区"},{"code":"110115","name":"大兴区"},{"code":"110116","name":"怀柔区"},{"code":"110117","name":"平谷区"},{"code":"110118","name":"密云区"},{"code":"110119","name":"延庆区"}]}]},{"code":"12","name":"天津市","children":[{"code":"1201","name":"市辖区","children":[{"code":"120101","name":"和平区"},{"code":"120102","name":"河东区"},{"code":"120103","name":"河西区"},{"code":"120104","name":"南开区"},{"code":"120105","name":"河北区"},{"code":"120106","name":"红桥区"},{"code":"120110","name":"东丽区"},{"code":"120111","name":"西青区"},{"code":"120112","name":"津南区"},{"code":"120113","name":"北辰区"},{"code":"120114","name":"武清区"},{"code":"120115","name":"宝坻区"},{"code":"120116","name":"滨海新区"},{"code":"120117","name":"宁河区"},{"code":"120118","name":"静海区"},{"code":"120119","name":"蓟州区"}]}]},{"code":"13","name":"河北省","children":[{"code":"1301","name":"石家庄市","children":[{"code":"130102","name":"长安区"},{"code":"130104","name":"桥西区"},{"code":"130105","name":"新华区"},{"code":"130107","name":"井陉矿区"},{"code":"130108","name":"裕华区"},{"code":"130109","name":"藁城区"},{"code":"130110","name":"鹿泉区"},{"code":"130111","name":"栾城区"},{"code":"130121","name":"井陉县"},{"code":"130123","name":"正定县"},{"code":"130125","name":"行唐县"},{"code":"130126","name":"灵寿县"},{"code":"130127","name":"高邑县"},{"code":"130128","name":"深泽县"},{"code":"130129","name":"赞皇县"},{"code":"130130","name":"无极县"},{"code":"130131","name":"平山县"},{"code":"130132","name":"元氏县"},{"code":"130133","name":"赵县"},{"code":"130171","name":"石家庄高新技术产业开发区"},{"code":"130172","name":"石家庄循环化工园区"},{"code":"130181","name":"辛集市"},{"code":"130183","name":"晋州市"},{"code":"130184","name":"新乐市"}]},{"code":"1302","name":"唐山市","children":[{"code":"130202","name":"路南区"},{"code":"130203","name":"路北区"},{"code":"130204","name":"古冶区"},{"code":"130205","name":"开平区"},{"code":"130207","name":"丰南区"},{"code":"130208","name":"丰润区"},{"code":"130209","name":"曹妃甸区"},{"code":"130223","name":"滦县"},{"code":"130224","name":"滦南县"},{"code":"130225","name":"乐亭县"},{"code":"130227","name":"迁西县"},{"code":"130229","name":"玉田县"},{"code":"130271","name":"唐山市芦台经济技术开发区"},{"code":"130272","name":"唐山市汉沽管理区"},{"code":"130273","name":"唐山高新技术产业开发区"},{"code":"130274","name":"河北唐山海港经济开发区"},{"code":"130281","name":"遵化市"},{"code":"130283","name":"迁安市"}]},{"code":"1303","name":"秦皇岛市","children":[{"code":"130302","name":"海港区"},{"code":"130303","name":"山海关区"},{"code":"130304","name":"北戴河区"},{"code":"130306","name":"抚宁区"},{"code":"130321","name":"青龙满族自治县"},{"code":"130322","name":"昌黎县"},{"code":"130324","name":"卢龙县"},{"code":"130371","name":"秦皇岛市经济技术开发区"},{"code":"130372","name":"北戴河新区"}]},{"code":"1304","name":"邯郸市","children":[{"code":"130402","name":"邯山区"},{"code":"130403","name":"丛台区"},{"code":"130404","name":"复兴区"},{"code":"130406","name":"峰峰矿区"},{"code":"130407","name":"肥乡区"},{"code":"130408","name":"永年区"},{"code":"130423","name":"临漳县"},{"code":"130424","name":"成安县"},{"code":"130425","name":"大名县"},{"code":"130426","name":"涉县"},{"code":"130427","name":"磁县"},{"code":"130430","name":"邱县"},{"code":"130431","name":"鸡泽县"},{"code":"130432","name":"广平县"},{"code":"130433","name":"馆陶县"},{"code":"130434","name":"魏县"},{"code":"130435","name":"曲周县"},{"code":"130471","name":"邯郸经济技术开发区"},{"code":"130473","name":"邯郸冀南新区"},{"code":"130481","name":"武安市"}]},{"code":"1305","name":"邢台市","children":[{"code":"130502","name":"桥东区"},{"code":"130503","name":"桥西区"},{"code":"130521","name":"邢台县"},{"code":"130522","name":"临城县"},{"code":"130523","name":"内丘县"},{"code":"130524","name":"柏乡县"},{"code":"130525","name":"隆尧县"},{"code":"130526","name":"任县"},{"code":"130527","name":"南和县"},{"code":"130528","name":"宁晋县"},{"code":"130529","name":"巨鹿县"},{"code":"130530","name":"新河县"},{"code":"130531","name":"广宗县"},{"code":"130532","name":"平乡县"},{"code":"130533","name":"威县"},{"code":"130534","name":"清河县"},{"code":"130535","name":"临西县"},{"code":"130571","name":"河北邢台经济开发区"},{"code":"130581","name":"南宫市"},{"code":"130582","name":"沙河市"}]},{"code":"1306","name":"保定市","children":[{"code":"130602","name":"竞秀区"},{"code":"130606","name":"莲池区"},{"code":"130607","name":"满城区"},{"code":"130608","name":"清苑区"},{"code":"130609","name":"徐水区"},{"code":"130623","name":"涞水县"},{"code":"130624","name":"阜平县"},{"code":"130626","name":"定兴县"},{"code":"130627","name":"唐县"},{"code":"130628","name":"高阳县"},{"code":"130629","name":"容城县"},{"code":"130630","name":"涞源县"},{"code":"130631","name":"望都县"},{"code":"130632","name":"安新县"},{"code":"130633","name":"易县"},{"code":"130634","name":"曲阳县"},{"code":"130635","name":"蠡县"},{"code":"130636","name":"顺平县"},{"code":"130637","name":"博野县"},{"code":"130638","name":"雄县"},{"code":"130671","name":"保定高新技术产业开发区"},{"code":"130672","name":"保定白沟新城"},{"code":"130681","name":"涿州市"},{"code":"130682","name":"定州市"},{"code":"130683","name":"安国市"},{"code":"130684","name":"高碑店市"}]},{"code":"1307","name":"张家口市","children":[{"code":"130702","name":"桥东区"},{"code":"130703","name":"桥西区"},{"code":"130705","name":"宣化区"},{"code":"130706","name":"下花园区"},{"code":"130708","name":"万全区"},{"code":"130709","name":"崇礼区"},{"code":"130722","name":"张北县"},{"code":"130723","name":"康保县"},{"code":"130724","name":"沽源县"},{"code":"130725","name":"尚义县"},{"code":"130726","name":"蔚县"},{"code":"130727","name":"阳原县"},{"code":"130728","name":"怀安县"},{"code":"130730","name":"怀来县"},{"code":"130731","name":"涿鹿县"},{"code":"130732","name":"赤城县"},{"code":"130771","name":"张家口市高新技术产业开发区"},{"code":"130772","name":"张家口市察北管理区"},{"code":"130773","name":"张家口市塞北管理区"}]},{"code":"1308","name":"承德市","children":[{"code":"130802","name":"双桥区"},{"code":"130803","name":"双滦区"},{"code":"130804","name":"鹰手营子矿区"},{"code":"130821","name":"承德县"},{"code":"130822","name":"兴隆县"},{"code":"130824","name":"滦平县"},{"code":"130825","name":"隆化县"},{"code":"130826","name":"丰宁满族自治县"},{"code":"130827","name":"宽城满族自治县"},{"code":"130828","name":"围场满族蒙古族自治县"},{"code":"130871","name":"承德高新技术产业开发区"},{"code":"130881","name":"平泉市"}]},{"code":"1309","name":"沧州市","children":[{"code":"130902","name":"新华区"},{"code":"130903","name":"运河区"},{"code":"130921","name":"沧县"},{"code":"130922","name":"青县"},{"code":"130923","name":"东光县"},{"code":"130924","name":"海兴县"},{"code":"130925","name":"盐山县"},{"code":"130926","name":"肃宁县"},{"code":"130927","name":"南皮县"},{"code":"130928","name":"吴桥县"},{"code":"130929","name":"献县"},{"code":"130930","name":"孟村回族自治县"},{"code":"130971","name":"河北沧州经济开发区"},{"code":"130972","name":"沧州高新技术产业开发区"},{"code":"130973","name":"沧州渤海新区"},{"code":"130981","name":"泊头市"},{"code":"130982","name":"任丘市"},{"code":"130983","name":"黄骅市"},{"code":"130984","name":"河间市"}]},{"code":"1310","name":"廊坊市","children":[{"code":"131002","name":"安次区"},{"code":"131003","name":"广阳区"},{"code":"131022","name":"固安县"},{"code":"131023","name":"永清县"},{"code":"131024","name":"香河县"},{"code":"131025","name":"大城县"},{"code":"131026","name":"文安县"},{"code":"131028","name":"大厂回族自治县"},{"code":"131071","name":"廊坊经济技术开发区"},{"code":"131081","name":"霸州市"},{"code":"131082","name":"三河市"}]},{"code":"1311","name":"衡水市","children":[{"code":"131102","name":"桃城区"},{"code":"131103","name":"冀州区"},{"code":"131121","name":"枣强县"},{"code":"131122","name":"武邑县"},{"code":"131123","name":"武强县"},{"code":"131124","name":"饶阳县"},{"code":"131125","name":"安平县"},{"code":"131126","name":"故城县"},{"code":"131127","name":"景县"},{"code":"131128","name":"阜城县"},{"code":"131171","name":"河北衡水经济开发区"},{"code":"131172","name":"衡水滨湖新区"},{"code":"131182","name":"深州市"}]}]},{"code":"14","name":"山西省","children":[{"code":"1401","name":"太原市","children":[{"code":"140105","name":"小店区"},{"code":"140106","name":"迎泽区"},{"code":"140107","name":"杏花岭区"},{"code":"140108","name":"尖草坪区"},{"code":"140109","name":"万柏林区"},{"code":"140110","name":"晋源区"},{"code":"140121","name":"清徐县"},{"code":"140122","name":"阳曲县"},{"code":"140123","name":"娄烦县"},{"code":"140171","name":"山西转型综合改革示范区"},{"code":"140181","name":"古交市"}]},{"code":"1402","name":"大同市","children":[{"code":"140202","name":"城区"},{"code":"140203","name":"矿区"},{"code":"140211","name":"南郊区"},{"code":"140212","name":"新荣区"},{"code":"140221","name":"阳高县"},{"code":"140222","name":"天镇县"},{"code":"140223","name":"广灵县"},{"code":"140224","name":"灵丘县"},{"code":"140225","name":"浑源县"},{"code":"140226","name":"左云县"},{"code":"140227","name":"大同县"},{"code":"140271","name":"山西大同经济开发区"}]},{"code":"1403","name":"阳泉市","children":[{"code":"140302","name":"城区"},{"code":"140303","name":"矿区"},{"code":"140311","name":"郊区"},{"code":"140321","name":"平定县"},{"code":"140322","name":"盂县"},{"code":"140371","name":"山西阳泉经济开发区"}]},{"code":"1404","name":"长治市","children":[{"code":"140402","name":"城区"},{"code":"140411","name":"郊区"},{"code":"140421","name":"长治县"},{"code":"140423","name":"襄垣县"},{"code":"140424","name":"屯留县"},{"code":"140425","name":"平顺县"},{"code":"140426","name":"黎城县"},{"code":"140427","name":"壶关县"},{"code":"140428","name":"长子县"},{"code":"140429","name":"武乡县"},{"code":"140430","name":"沁县"},{"code":"140431","name":"沁源县"},{"code":"140471","name":"山西长治高新技术产业园区"},{"code":"140481","name":"潞城市"}]},{"code":"1405","name":"晋城市","children":[{"code":"140502","name":"城区"},{"code":"140521","name":"沁水县"},{"code":"140522","name":"阳城县"},{"code":"140524","name":"陵川县"},{"code":"140525","name":"泽州县"},{"code":"140581","name":"高平市"}]},{"code":"1406","name":"朔州市","children":[{"code":"140602","name":"朔城区"},{"code":"140603","name":"平鲁区"},{"code":"140621","name":"山阴县"},{"code":"140622","name":"应县"},{"code":"140623","name":"右玉县"},{"code":"140624","name":"怀仁县"},{"code":"140671","name":"山西朔州经济开发区"}]},{"code":"1407","name":"晋中市","children":[{"code":"140702","name":"榆次区"},{"code":"140721","name":"榆社县"},{"code":"140722","name":"左权县"},{"code":"140723","name":"和顺县"},{"code":"140724","name":"昔阳县"},{"code":"140725","name":"寿阳县"},{"code":"140726","name":"太谷县"},{"code":"140727","name":"祁县"},{"code":"140728","name":"平遥县"},{"code":"140729","name":"灵石县"},{"code":"140781","name":"介休市"}]},{"code":"1408","name":"运城市","children":[{"code":"140802","name":"盐湖区"},{"code":"140821","name":"临猗县"},{"code":"140822","name":"万荣县"},{"code":"140823","name":"闻喜县"},{"code":"140824","name":"稷山县"},{"code":"140825","name":"新绛县"},{"code":"140826","name":"绛县"},{"code":"140827","name":"垣曲县"},{"code":"140828","name":"夏县"},{"code":"140829","name":"平陆县"},{"code":"140830","name":"芮城县"},{"code":"140881","name":"永济市"},{"code":"140882","name":"河津市"}]},{"code":"1409","name":"忻州市","children":[{"code":"140902","name":"忻府区"},{"code":"140921","name":"定襄县"},{"code":"140922","name":"五台县"},{"code":"140923","name":"代县"},{"code":"140924","name":"繁峙县"},{"code":"140925","name":"宁武县"},{"code":"140926","name":"静乐县"},{"code":"140927","name":"神池县"},{"code":"140928","name":"五寨县"},{"code":"140929","name":"岢岚县"},{"code":"140930","name":"河曲县"},{"code":"140931","name":"保德县"},{"code":"140932","name":"偏关县"},{"code":"140971","name":"五台山风景名胜区"},{"code":"140981","name":"原平市"}]},{"code":"1410","name":"临汾市","children":[{"code":"141002","name":"尧都区"},{"code":"141021","name":"曲沃县"},{"code":"141022","name":"翼城县"},{"code":"141023","name":"襄汾县"},{"code":"141024","name":"洪洞县"},{"code":"141025","name":"古县"},{"code":"141026","name":"安泽县"},{"code":"141027","name":"浮山县"},{"code":"141028","name":"吉县"},{"code":"141029","name":"乡宁县"},{"code":"141030","name":"大宁县"},{"code":"141031","name":"隰县"},{"code":"141032","name":"永和县"},{"code":"141033","name":"蒲县"},{"code":"141034","name":"汾西县"},{"code":"141081","name":"侯马市"},{"code":"141082","name":"霍州市"}]},{"code":"1411","name":"吕梁市","children":[{"code":"141102","name":"离石区"},{"code":"141121","name":"文水县"},{"code":"141122","name":"交城县"},{"code":"141123","name":"兴县"},{"code":"141124","name":"临县"},{"code":"141125","name":"柳林县"},{"code":"141126","name":"石楼县"},{"code":"141127","name":"岚县"},{"code":"141128","name":"方山县"},{"code":"141129","name":"中阳县"},{"code":"141130","name":"交口县"},{"code":"141181","name":"孝义市"},{"code":"141182","name":"汾阳市"}]}]},{"code":"15","name":"内蒙古自治区","children":[{"code":"1501","name":"呼和浩特市","children":[{"code":"150102","name":"新城区"},{"code":"150103","name":"回民区"},{"code":"150104","name":"玉泉区"},{"code":"150105","name":"赛罕区"},{"code":"150121","name":"土默特左旗"},{"code":"150122","name":"托克托县"},{"code":"150123","name":"和林格尔县"},{"code":"150124","name":"清水河县"},{"code":"150125","name":"武川县"},{"code":"150171","name":"呼和浩特金海工业园区"},{"code":"150172","name":"呼和浩特经济技术开发区"}]},{"code":"1502","name":"包头市","children":[{"code":"150202","name":"东河区"},{"code":"150203","name":"昆都仑区"},{"code":"150204","name":"青山区"},{"code":"150205","name":"石拐区"},{"code":"150206","name":"白云鄂博矿区"},{"code":"150207","name":"九原区"},{"code":"150221","name":"土默特右旗"},{"code":"150222","name":"固阳县"},{"code":"150223","name":"达尔罕茂明安联合旗"},{"code":"150271","name":"包头稀土高新技术产业开发区"}]},{"code":"1503","name":"乌海市","children":[{"code":"150302","name":"海勃湾区"},{"code":"150303","name":"海南区"},{"code":"150304","name":"乌达区"}]},{"code":"1504","name":"赤峰市","children":[{"code":"150402","name":"红山区"},{"code":"150403","name":"元宝山区"},{"code":"150404","name":"松山区"},{"code":"150421","name":"阿鲁科尔沁旗"},{"code":"150422","name":"巴林左旗"},{"code":"150423","name":"巴林右旗"},{"code":"150424","name":"林西县"},{"code":"150425","name":"克什克腾旗"},{"code":"150426","name":"翁牛特旗"},{"code":"150428","name":"喀喇沁旗"},{"code":"150429","name":"宁城县"},{"code":"150430","name":"敖汉旗"}]},{"code":"1505","name":"通辽市","children":[{"code":"150502","name":"科尔沁区"},{"code":"150521","name":"科尔沁左翼中旗"},{"code":"150522","name":"科尔沁左翼后旗"},{"code":"150523","name":"开鲁县"},{"code":"150524","name":"库伦旗"},{"code":"150525","name":"奈曼旗"},{"code":"150526","name":"扎鲁特旗"},{"code":"150571","name":"通辽经济技术开发区"},{"code":"150581","name":"霍林郭勒市"}]},{"code":"1506","name":"鄂尔多斯市","children":[{"code":"150602","name":"东胜区"},{"code":"150603","name":"康巴什区"},{"code":"150621","name":"达拉特旗"},{"code":"150622","name":"准格尔旗"},{"code":"150623","name":"鄂托克前旗"},{"code":"150624","name":"鄂托克旗"},{"code":"150625","name":"杭锦旗"},{"code":"150626","name":"乌审旗"},{"code":"150627","name":"伊金霍洛旗"}]},{"code":"1507","name":"呼伦贝尔市","children":[{"code":"150702","name":"海拉尔区"},{"code":"150703","name":"扎赉诺尔区"},{"code":"150721","name":"阿荣旗"},{"code":"150722","name":"莫力达瓦达斡尔族自治旗"},{"code":"150723","name":"鄂伦春自治旗"},{"code":"150724","name":"鄂温克族自治旗"},{"code":"150725","name":"陈巴尔虎旗"},{"code":"150726","name":"新巴尔虎左旗"},{"code":"150727","name":"新巴尔虎右旗"},{"code":"150781","name":"满洲里市"},{"code":"150782","name":"牙克石市"},{"code":"150783","name":"扎兰屯市"},{"code":"150784","name":"额尔古纳市"},{"code":"150785","name":"根河市"}]},{"code":"1508","name":"巴彦淖尔市","children":[{"code":"150802","name":"临河区"},{"code":"150821","name":"五原县"},{"code":"150822","name":"磴口县"},{"code":"150823","name":"乌拉特前旗"},{"code":"150824","name":"乌拉特中旗"},{"code":"150825","name":"乌拉特后旗"},{"code":"150826","name":"杭锦后旗"}]},{"code":"1509","name":"乌兰察布市","children":[{"code":"150902","name":"集宁区"},{"code":"150921","name":"卓资县"},{"code":"150922","name":"化德县"},{"code":"150923","name":"商都县"},{"code":"150924","name":"兴和县"},{"code":"150925","name":"凉城县"},{"code":"150926","name":"察哈尔右翼前旗"},{"code":"150927","name":"察哈尔右翼中旗"},{"code":"150928","name":"察哈尔右翼后旗"},{"code":"150929","name":"四子王旗"},{"code":"150981","name":"丰镇市"}]},{"code":"1522","name":"兴安盟","children":[{"code":"152201","name":"乌兰浩特市"},{"code":"152202","name":"阿尔山市"},{"code":"152221","name":"科尔沁右翼前旗"},{"code":"152222","name":"科尔沁右翼中旗"},{"code":"152223","name":"扎赉特旗"},{"code":"152224","name":"突泉县"}]},{"code":"1525","name":"锡林郭勒盟","children":[{"code":"152501","name":"二连浩特市"},{"code":"152502","name":"锡林浩特市"},{"code":"152522","name":"阿巴嘎旗"},{"code":"152523","name":"苏尼特左旗"},{"code":"152524","name":"苏尼特右旗"},{"code":"152525","name":"东乌珠穆沁旗"},{"code":"152526","name":"西乌珠穆沁旗"},{"code":"152527","name":"太仆寺旗"},{"code":"152528","name":"镶黄旗"},{"code":"152529","name":"正镶白旗"},{"code":"152530","name":"正蓝旗"},{"code":"152531","name":"多伦县"},{"code":"152571","name":"乌拉盖管委会"}]},{"code":"1529","name":"阿拉善盟","children":[{"code":"152921","name":"阿拉善左旗"},{"code":"152922","name":"阿拉善右旗"},{"code":"152923","name":"额济纳旗"},{"code":"152971","name":"内蒙古阿拉善经济开发区"}]}]},{"code":"21","name":"辽宁省","children":[{"code":"2101","name":"沈阳市","children":[{"code":"210102","name":"和平区"},{"code":"210103","name":"沈河区"},{"code":"210104","name":"大东区"},{"code":"210105","name":"皇姑区"},{"code":"210106","name":"铁西区"},{"code":"210111","name":"苏家屯区"},{"code":"210112","name":"浑南区"},{"code":"210113","name":"沈北新区"},{"code":"210114","name":"于洪区"},{"code":"210115","name":"辽中区"},{"code":"210123","name":"康平县"},{"code":"210124","name":"法库县"},{"code":"210181","name":"新民市"}]},{"code":"2102","name":"大连市","children":[{"code":"210202","name":"中山区"},{"code":"210203","name":"西岗区"},{"code":"210204","name":"沙河口区"},{"code":"210211","name":"甘井子区"},{"code":"210212","name":"旅顺口区"},{"code":"210213","name":"金州区"},{"code":"210214","name":"普兰店区"},{"code":"210224","name":"长海县"},{"code":"210281","name":"瓦房店市"},{"code":"210283","name":"庄河市"}]},{"code":"2103","name":"鞍山市","children":[{"code":"210302","name":"铁东区"},{"code":"210303","name":"铁西区"},{"code":"210304","name":"立山区"},{"code":"210311","name":"千山区"},{"code":"210321","name":"台安县"},{"code":"210323","name":"岫岩满族自治县"},{"code":"210381","name":"海城市"}]},{"code":"2104","name":"抚顺市","children":[{"code":"210402","name":"新抚区"},{"code":"210403","name":"东洲区"},{"code":"210404","name":"望花区"},{"code":"210411","name":"顺城区"},{"code":"210421","name":"抚顺县"},{"code":"210422","name":"新宾满族自治县"},{"code":"210423","name":"清原满族自治县"}]},{"code":"2105","name":"本溪市","children":[{"code":"210502","name":"平山区"},{"code":"210503","name":"溪湖区"},{"code":"210504","name":"明山区"},{"code":"210505","name":"南芬区"},{"code":"210521","name":"本溪满族自治县"},{"code":"210522","name":"桓仁满族自治县"}]},{"code":"2106","name":"丹东市","children":[{"code":"210602","name":"元宝区"},{"code":"210603","name":"振兴区"},{"code":"210604","name":"振安区"},{"code":"210624","name":"宽甸满族自治县"},{"code":"210681","name":"东港市"},{"code":"210682","name":"凤城市"}]},{"code":"2107","name":"锦州市","children":[{"code":"210702","name":"古塔区"},{"code":"210703","name":"凌河区"},{"code":"210711","name":"太和区"},{"code":"210726","name":"黑山县"},{"code":"210727","name":"义县"},{"code":"210781","name":"凌海市"},{"code":"210782","name":"北镇市"}]},{"code":"2108","name":"营口市","children":[{"code":"210802","name":"站前区"},{"code":"210803","name":"西市区"},{"code":"210804","name":"鲅鱼圈区"},{"code":"210811","name":"老边区"},{"code":"210881","name":"盖州市"},{"code":"210882","name":"大石桥市"}]},{"code":"2109","name":"阜新市","children":[{"code":"210902","name":"海州区"},{"code":"210903","name":"新邱区"},{"code":"210904","name":"太平区"},{"code":"210905","name":"清河门区"},{"code":"210911","name":"细河区"},{"code":"210921","name":"阜新蒙古族自治县"},{"code":"210922","name":"彰武县"}]},{"code":"2110","name":"辽阳市","children":[{"code":"211002","name":"白塔区"},{"code":"211003","name":"文圣区"},{"code":"211004","name":"宏伟区"},{"code":"211005","name":"弓长岭区"},{"code":"211011","name":"太子河区"},{"code":"211021","name":"辽阳县"},{"code":"211081","name":"灯塔市"}]},{"code":"2111","name":"盘锦市","children":[{"code":"211102","name":"双台子区"},{"code":"211103","name":"兴隆台区"},{"code":"211104","name":"大洼区"},{"code":"211122","name":"盘山县"}]},{"code":"2112","name":"铁岭市","children":[{"code":"211202","name":"银州区"},{"code":"211204","name":"清河区"},{"code":"211221","name":"铁岭县"},{"code":"211223","name":"西丰县"},{"code":"211224","name":"昌图县"},{"code":"211281","name":"调兵山市"},{"code":"211282","name":"开原市"}]},{"code":"2113","name":"朝阳市","children":[{"code":"211302","name":"双塔区"},{"code":"211303","name":"龙城区"},{"code":"211321","name":"朝阳县"},{"code":"211322","name":"建平县"},{"code":"211324","name":"喀喇沁左翼蒙古族自治县"},{"code":"211381","name":"北票市"},{"code":"211382","name":"凌源市"}]},{"code":"2114","name":"葫芦岛市","children":[{"code":"211402","name":"连山区"},{"code":"211403","name":"龙港区"},{"code":"211404","name":"南票区"},{"code":"211421","name":"绥中县"},{"code":"211422","name":"建昌县"},{"code":"211481","name":"兴城市"}]}]},{"code":"22","name":"吉林省","children":[{"code":"2201","name":"长春市","children":[{"code":"220102","name":"南关区"},{"code":"220103","name":"宽城区"},{"code":"220104","name":"朝阳区"},{"code":"220105","name":"二道区"},{"code":"220106","name":"绿园区"},{"code":"220112","name":"双阳区"},{"code":"220113","name":"九台区"},{"code":"220122","name":"农安县"},{"code":"220171","name":"长春经济技术开发区"},{"code":"220172","name":"长春净月高新技术产业开发区"},{"code":"220173","name":"长春高新技术产业开发区"},{"code":"220174","name":"长春汽车经济技术开发区"},{"code":"220182","name":"榆树市"},{"code":"220183","name":"德惠市"}]},{"code":"2202","name":"吉林市","children":[{"code":"220202","name":"昌邑区"},{"code":"220203","name":"龙潭区"},{"code":"220204","name":"船营区"},{"code":"220211","name":"丰满区"},{"code":"220221","name":"永吉县"},{"code":"220271","name":"吉林经济开发区"},{"code":"220272","name":"吉林高新技术产业开发区"},{"code":"220273","name":"吉林中国新加坡食品区"},{"code":"220281","name":"蛟河市"},{"code":"220282","name":"桦甸市"},{"code":"220283","name":"舒兰市"},{"code":"220284","name":"磐石市"}]},{"code":"2203","name":"四平市","children":[{"code":"220302","name":"铁西区"},{"code":"220303","name":"铁东区"},{"code":"220322","name":"梨树县"},{"code":"220323","name":"伊通满族自治县"},{"code":"220381","name":"公主岭市"},{"code":"220382","name":"双辽市"}]},{"code":"2204","name":"辽源市","children":[{"code":"220402","name":"龙山区"},{"code":"220403","name":"西安区"},{"code":"220421","name":"东丰县"},{"code":"220422","name":"东辽县"}]},{"code":"2205","name":"通化市","children":[{"code":"220502","name":"东昌区"},{"code":"220503","name":"二道江区"},{"code":"220521","name":"通化县"},{"code":"220523","name":"辉南县"},{"code":"220524","name":"柳河县"},{"code":"220581","name":"梅河口市"},{"code":"220582","name":"集安市"}]},{"code":"2206","name":"白山市","children":[{"code":"220602","name":"浑江区"},{"code":"220605","name":"江源区"},{"code":"220621","name":"抚松县"},{"code":"220622","name":"靖宇县"},{"code":"220623","name":"长白朝鲜族自治县"},{"code":"220681","name":"临江市"}]},{"code":"2207","name":"松原市","children":[{"code":"220702","name":"宁江区"},{"code":"220721","name":"前郭尔罗斯蒙古族自治县"},{"code":"220722","name":"长岭县"},{"code":"220723","name":"乾安县"},{"code":"220771","name":"吉林松原经济开发区"},{"code":"220781","name":"扶余市"}]},{"code":"2208","name":"白城市","children":[{"code":"220802","name":"洮北区"},{"code":"220821","name":"镇赉县"},{"code":"220822","name":"通榆县"},{"code":"220871","name":"吉林白城经济开发区"},{"code":"220881","name":"洮南市"},{"code":"220882","name":"大安市"}]},{"code":"2224","name":"延边朝鲜族自治州","children":[{"code":"222401","name":"延吉市"},{"code":"222402","name":"图们市"},{"code":"222403","name":"敦化市"},{"code":"222404","name":"珲春市"},{"code":"222405","name":"龙井市"},{"code":"222406","name":"和龙市"},{"code":"222424","name":"汪清县"},{"code":"222426","name":"安图县"}]}]},{"code":"23","name":"黑龙江省","children":[{"code":"2301","name":"哈尔滨市","children":[{"code":"230102","name":"道里区"},{"code":"230103","name":"南岗区"},{"code":"230104","name":"道外区"},{"code":"230108","name":"平房区"},{"code":"230109","name":"松北区"},{"code":"230110","name":"香坊区"},{"code":"230111","name":"呼兰区"},{"code":"230112","name":"阿城区"},{"code":"230113","name":"双城区"},{"code":"230123","name":"依兰县"},{"code":"230124","name":"方正县"},{"code":"230125","name":"宾县"},{"code":"230126","name":"巴彦县"},{"code":"230127","name":"木兰县"},{"code":"230128","name":"通河县"},{"code":"230129","name":"延寿县"},{"code":"230183","name":"尚志市"},{"code":"230184","name":"五常市"}]},{"code":"2302","name":"齐齐哈尔市","children":[{"code":"230202","name":"龙沙区"},{"code":"230203","name":"建华区"},{"code":"230204","name":"铁锋区"},{"code":"230205","name":"昂昂溪区"},{"code":"230206","name":"富拉尔基区"},{"code":"230207","name":"碾子山区"},{"code":"230208","name":"梅里斯达斡尔族区"},{"code":"230221","name":"龙江县"},{"code":"230223","name":"依安县"},{"code":"230224","name":"泰来县"},{"code":"230225","name":"甘南县"},{"code":"230227","name":"富裕县"},{"code":"230229","name":"克山县"},{"code":"230230","name":"克东县"},{"code":"230231","name":"拜泉县"},{"code":"230281","name":"讷河市"}]},{"code":"2303","name":"鸡西市","children":[{"code":"230302","name":"鸡冠区"},{"code":"230303","name":"恒山区"},{"code":"230304","name":"滴道区"},{"code":"230305","name":"梨树区"},{"code":"230306","name":"城子河区"},{"code":"230307","name":"麻山区"},{"code":"230321","name":"鸡东县"},{"code":"230381","name":"虎林市"},{"code":"230382","name":"密山市"}]},{"code":"2304","name":"鹤岗市","children":[{"code":"230402","name":"向阳区"},{"code":"230403","name":"工农区"},{"code":"230404","name":"南山区"},{"code":"230405","name":"兴安区"},{"code":"230406","name":"东山区"},{"code":"230407","name":"兴山区"},{"code":"230421","name":"萝北县"},{"code":"230422","name":"绥滨县"}]},{"code":"2305","name":"双鸭山市","children":[{"code":"230502","name":"尖山区"},{"code":"230503","name":"岭东区"},{"code":"230505","name":"四方台区"},{"code":"230506","name":"宝山区"},{"code":"230521","name":"集贤县"},{"code":"230522","name":"友谊县"},{"code":"230523","name":"宝清县"},{"code":"230524","name":"饶河县"}]},{"code":"2306","name":"大庆市","children":[{"code":"230602","name":"萨尔图区"},{"code":"230603","name":"龙凤区"},{"code":"230604","name":"让胡路区"},{"code":"230605","name":"红岗区"},{"code":"230606","name":"大同区"},{"code":"230621","name":"肇州县"},{"code":"230622","name":"肇源县"},{"code":"230623","name":"林甸县"},{"code":"230624","name":"杜尔伯特蒙古族自治县"},{"code":"230671","name":"大庆高新技术产业开发区"}]},{"code":"2307","name":"伊春市","children":[{"code":"230702","name":"伊春区"},{"code":"230703","name":"南岔区"},{"code":"230704","name":"友好区"},{"code":"230705","name":"西林区"},{"code":"230706","name":"翠峦区"},{"code":"230707","name":"新青区"},{"code":"230708","name":"美溪区"},{"code":"230709","name":"金山屯区"},{"code":"230710","name":"五营区"},{"code":"230711","name":"乌马河区"},{"code":"230712","name":"汤旺河区"},{"code":"230713","name":"带岭区"},{"code":"230714","name":"乌伊岭区"},{"code":"230715","name":"红星区"},{"code":"230716","name":"上甘岭区"},{"code":"230722","name":"嘉荫县"},{"code":"230781","name":"铁力市"}]},{"code":"2308","name":"佳木斯市","children":[{"code":"230803","name":"向阳区"},{"code":"230804","name":"前进区"},{"code":"230805","name":"东风区"},{"code":"230811","name":"郊区"},{"code":"230822","name":"桦南县"},{"code":"230826","name":"桦川县"},{"code":"230828","name":"汤原县"},{"code":"230881","name":"同江市"},{"code":"230882","name":"富锦市"},{"code":"230883","name":"抚远市"}]},{"code":"2309","name":"七台河市","children":[{"code":"230902","name":"新兴区"},{"code":"230903","name":"桃山区"},{"code":"230904","name":"茄子河区"},{"code":"230921","name":"勃利县"}]},{"code":"2310","name":"牡丹江市","children":[{"code":"231002","name":"东安区"},{"code":"231003","name":"阳明区"},{"code":"231004","name":"爱民区"},{"code":"231005","name":"西安区"},{"code":"231025","name":"林口县"},{"code":"231071","name":"牡丹江经济技术开发区"},{"code":"231081","name":"绥芬河市"},{"code":"231083","name":"海林市"},{"code":"231084","name":"宁安市"},{"code":"231085","name":"穆棱市"},{"code":"231086","name":"东宁市"}]},{"code":"2311","name":"黑河市","children":[{"code":"231102","name":"爱辉区"},{"code":"231121","name":"嫩江县"},{"code":"231123","name":"逊克县"},{"code":"231124","name":"孙吴县"},{"code":"231181","name":"北安市"},{"code":"231182","name":"五大连池市"}]},{"code":"2312","name":"绥化市","children":[{"code":"231202","name":"北林区"},{"code":"231221","name":"望奎县"},{"code":"231222","name":"兰西县"},{"code":"231223","name":"青冈县"},{"code":"231224","name":"庆安县"},{"code":"231225","name":"明水县"},{"code":"231226","name":"绥棱县"},{"code":"231281","name":"安达市"},{"code":"231282","name":"肇东市"},{"code":"231283","name":"海伦市"}]},{"code":"2327","name":"大兴安岭地区","children":[{"code":"232701","name":"加格达奇区"},{"code":"232702","name":"松岭区"},{"code":"232703","name":"新林区"},{"code":"232704","name":"呼中区"},{"code":"232721","name":"呼玛县"},{"code":"232722","name":"塔河县"},{"code":"232723","name":"漠河县"}]}]},{"code":"31","name":"上海市","children":[{"code":"3101","name":"市辖区","children":[{"code":"310101","name":"黄浦区"},{"code":"310104","name":"徐汇区"},{"code":"310105","name":"长宁区"},{"code":"310106","name":"静安区"},{"code":"310107","name":"普陀区"},{"code":"310109","name":"虹口区"},{"code":"310110","name":"杨浦区"},{"code":"310112","name":"闵行区"},{"code":"310113","name":"宝山区"},{"code":"310114","name":"嘉定区"},{"code":"310115","name":"浦东新区"},{"code":"310116","name":"金山区"},{"code":"310117","name":"松江区"},{"code":"310118","name":"青浦区"},{"code":"310120","name":"奉贤区"},{"code":"310151","name":"崇明区"}]}]},{"code":"32","name":"江苏省","children":[{"code":"3201","name":"南京市","children":[{"code":"320102","name":"玄武区"},{"code":"320104","name":"秦淮区"},{"code":"320105","name":"建邺区"},{"code":"320106","name":"鼓楼区"},{"code":"320111","name":"浦口区"},{"code":"320113","name":"栖霞区"},{"code":"320114","name":"雨花台区"},{"code":"320115","name":"江宁区"},{"code":"320116","name":"六合区"},{"code":"320117","name":"溧水区"},{"code":"320118","name":"高淳区"}]},{"code":"3202","name":"无锡市","children":[{"code":"320205","name":"锡山区"},{"code":"320206","name":"惠山区"},{"code":"320211","name":"滨湖区"},{"code":"320213","name":"梁溪区"},{"code":"320214","name":"新吴区"},{"code":"320281","name":"江阴市"},{"code":"320282","name":"宜兴市"}]},{"code":"3203","name":"徐州市","children":[{"code":"320302","name":"鼓楼区"},{"code":"320303","name":"云龙区"},{"code":"320305","name":"贾汪区"},{"code":"320311","name":"泉山区"},{"code":"320312","name":"铜山区"},{"code":"320321","name":"丰县"},{"code":"320322","name":"沛县"},{"code":"320324","name":"睢宁县"},{"code":"320371","name":"徐州经济技术开发区"},{"code":"320381","name":"新沂市"},{"code":"320382","name":"邳州市"}]},{"code":"3204","name":"常州市","children":[{"code":"320402","name":"天宁区"},{"code":"320404","name":"钟楼区"},{"code":"320411","name":"新北区"},{"code":"320412","name":"武进区"},{"code":"320413","name":"金坛区"},{"code":"320481","name":"溧阳市"}]},{"code":"3205","name":"苏州市","children":[{"code":"320505","name":"虎丘区"},{"code":"320506","name":"吴中区"},{"code":"320507","name":"相城区"},{"code":"320508","name":"姑苏区"},{"code":"320509","name":"吴江区"},{"code":"320571","name":"苏州工业园区"},{"code":"320581","name":"常熟市"},{"code":"320582","name":"张家港市"},{"code":"320583","name":"昆山市"},{"code":"320585","name":"太仓市"}]},{"code":"3206","name":"南通市","children":[{"code":"320602","name":"崇川区"},{"code":"320611","name":"港闸区"},{"code":"320612","name":"通州区"},{"code":"320621","name":"海安县"},{"code":"320623","name":"如东县"},{"code":"320671","name":"南通经济技术开发区"},{"code":"320681","name":"启东市"},{"code":"320682","name":"如皋市"},{"code":"320684","name":"海门市"}]},{"code":"3207","name":"连云港市","children":[{"code":"320703","name":"连云区"},{"code":"320706","name":"海州区"},{"code":"320707","name":"赣榆区"},{"code":"320722","name":"东海县"},{"code":"320723","name":"灌云县"},{"code":"320724","name":"灌南县"},{"code":"320771","name":"连云港经济技术开发区"},{"code":"320772","name":"连云港高新技术产业开发区"}]},{"code":"3208","name":"淮安市","children":[{"code":"320803","name":"淮安区"},{"code":"320804","name":"淮阴区"},{"code":"320812","name":"清江浦区"},{"code":"320813","name":"洪泽区"},{"code":"320826","name":"涟水县"},{"code":"320830","name":"盱眙县"},{"code":"320831","name":"金湖县"},{"code":"320871","name":"淮安经济技术开发区"}]},{"code":"3209","name":"盐城市","children":[{"code":"320902","name":"亭湖区"},{"code":"320903","name":"盐都区"},{"code":"320904","name":"大丰区"},{"code":"320921","name":"响水县"},{"code":"320922","name":"滨海县"},{"code":"320923","name":"阜宁县"},{"code":"320924","name":"射阳县"},{"code":"320925","name":"建湖县"},{"code":"320971","name":"盐城经济技术开发区"},{"code":"320981","name":"东台市"}]},{"code":"3210","name":"扬州市","children":[{"code":"321002","name":"广陵区"},{"code":"321003","name":"邗江区"},{"code":"321012","name":"江都区"},{"code":"321023","name":"宝应县"},{"code":"321071","name":"扬州经济技术开发区"},{"code":"321081","name":"仪征市"},{"code":"321084","name":"高邮市"}]},{"code":"3211","name":"镇江市","children":[{"code":"321102","name":"京口区"},{"code":"321111","name":"润州区"},{"code":"321112","name":"丹徒区"},{"code":"321171","name":"镇江新区"},{"code":"321181","name":"丹阳市"},{"code":"321182","name":"扬中市"},{"code":"321183","name":"句容市"}]},{"code":"3212","name":"泰州市","children":[{"code":"321202","name":"海陵区"},{"code":"321203","name":"高港区"},{"code":"321204","name":"姜堰区"},{"code":"321271","name":"泰州医药高新技术产业开发区"},{"code":"321281","name":"兴化市"},{"code":"321282","name":"靖江市"},{"code":"321283","name":"泰兴市"}]},{"code":"3213","name":"宿迁市","children":[{"code":"321302","name":"宿城区"},{"code":"321311","name":"宿豫区"},{"code":"321322","name":"沭阳县"},{"code":"321323","name":"泗阳县"},{"code":"321324","name":"泗洪县"},{"code":"321371","name":"宿迁经济技术开发区"}]}]},{"code":"33","name":"浙江省","children":[{"code":"3301","name":"杭州市","children":[{"code":"330102","name":"上城区"},{"code":"330103","name":"下城区"},{"code":"330104","name":"江干区"},{"code":"330105","name":"拱墅区"},{"code":"330106","name":"西湖区"},{"code":"330108","name":"滨江区"},{"code":"330109","name":"萧山区"},{"code":"330110","name":"余杭区"},{"code":"330111","name":"富阳区"},{"code":"330112","name":"临安区"},{"code":"330122","name":"桐庐县"},{"code":"330127","name":"淳安县"},{"code":"330182","name":"建德市"}]},{"code":"3302","name":"宁波市","children":[{"code":"330203","name":"海曙区"},{"code":"330205","name":"江北区"},{"code":"330206","name":"北仑区"},{"code":"330211","name":"镇海区"},{"code":"330212","name":"鄞州区"},{"code":"330213","name":"奉化区"},{"code":"330225","name":"象山县"},{"code":"330226","name":"宁海县"},{"code":"330281","name":"余姚市"},{"code":"330282","name":"慈溪市"}]},{"code":"3303","name":"温州市","children":[{"code":"330302","name":"鹿城区"},{"code":"330303","name":"龙湾区"},{"code":"330304","name":"瓯海区"},{"code":"330305","name":"洞头区"},{"code":"330324","name":"永嘉县"},{"code":"330326","name":"平阳县"},{"code":"330327","name":"苍南县"},{"code":"330328","name":"文成县"},{"code":"330329","name":"泰顺县"},{"code":"330371","name":"温州经济技术开发区"},{"code":"330381","name":"瑞安市"},{"code":"330382","name":"乐清市"}]},{"code":"3304","name":"嘉兴市","children":[{"code":"330402","name":"南湖区"},{"code":"330411","name":"秀洲区"},{"code":"330421","name":"嘉善县"},{"code":"330424","name":"海盐县"},{"code":"330481","name":"海宁市"},{"code":"330482","name":"平湖市"},{"code":"330483","name":"桐乡市"}]},{"code":"3305","name":"湖州市","children":[{"code":"330502","name":"吴兴区"},{"code":"330503","name":"南浔区"},{"code":"330521","name":"德清县"},{"code":"330522","name":"长兴县"},{"code":"330523","name":"安吉县"}]},{"code":"3306","name":"绍兴市","children":[{"code":"330602","name":"越城区"},{"code":"330603","name":"柯桥区"},{"code":"330604","name":"上虞区"},{"code":"330624","name":"新昌县"},{"code":"330681","name":"诸暨市"},{"code":"330683","name":"嵊州市"}]},{"code":"3307","name":"金华市","children":[{"code":"330702","name":"婺城区"},{"code":"330703","name":"金东区"},{"code":"330723","name":"武义县"},{"code":"330726","name":"浦江县"},{"code":"330727","name":"磐安县"},{"code":"330781","name":"兰溪市"},{"code":"330782","name":"义乌市"},{"code":"330783","name":"东阳市"},{"code":"330784","name":"永康市"}]},{"code":"3308","name":"衢州市","children":[{"code":"330802","name":"柯城区"},{"code":"330803","name":"衢江区"},{"code":"330822","name":"常山县"},{"code":"330824","name":"开化县"},{"code":"330825","name":"龙游县"},{"code":"330881","name":"江山市"}]},{"code":"3309","name":"舟山市","children":[{"code":"330902","name":"定海区"},{"code":"330903","name":"普陀区"},{"code":"330921","name":"岱山县"},{"code":"330922","name":"嵊泗县"}]},{"code":"3310","name":"台州市","children":[{"code":"331002","name":"椒江区"},{"code":"331003","name":"黄岩区"},{"code":"331004","name":"路桥区"},{"code":"331022","name":"三门县"},{"code":"331023","name":"天台县"},{"code":"331024","name":"仙居县"},{"code":"331081","name":"温岭市"},{"code":"331082","name":"临海市"},{"code":"331083","name":"玉环市"}]},{"code":"3311","name":"丽水市","children":[{"code":"331102","name":"莲都区"},{"code":"331121","name":"青田县"},{"code":"331122","name":"缙云县"},{"code":"331123","name":"遂昌县"},{"code":"331124","name":"松阳县"},{"code":"331125","name":"云和县"},{"code":"331126","name":"庆元县"},{"code":"331127","name":"景宁畲族自治县"},{"code":"331181","name":"龙泉市"}]}]},{"code":"34","name":"安徽省","children":[{"code":"3401","name":"合肥市","children":[{"code":"340102","name":"瑶海区"},{"code":"340103","name":"庐阳区"},{"code":"340104","name":"蜀山区"},{"code":"340111","name":"包河区"},{"code":"340121","name":"长丰县"},{"code":"340122","name":"肥东县"},{"code":"340123","name":"肥西县"},{"code":"340124","name":"庐江县"},{"code":"340171","name":"合肥高新技术产业开发区"},{"code":"340172","name":"合肥经济技术开发区"},{"code":"340173","name":"合肥新站高新技术产业开发区"},{"code":"340181","name":"巢湖市"}]},{"code":"3402","name":"芜湖市","children":[{"code":"340202","name":"镜湖区"},{"code":"340203","name":"弋江区"},{"code":"340207","name":"鸠江区"},{"code":"340208","name":"三山区"},{"code":"340221","name":"芜湖县"},{"code":"340222","name":"繁昌县"},{"code":"340223","name":"南陵县"},{"code":"340225","name":"无为县"},{"code":"340271","name":"芜湖经济技术开发区"},{"code":"340272","name":"安徽芜湖长江大桥经济开发区"}]},{"code":"3403","name":"蚌埠市","children":[{"code":"340302","name":"龙子湖区"},{"code":"340303","name":"蚌山区"},{"code":"340304","name":"禹会区"},{"code":"340311","name":"淮上区"},{"code":"340321","name":"怀远县"},{"code":"340322","name":"五河县"},{"code":"340323","name":"固镇县"},{"code":"340371","name":"蚌埠市高新技术开发区"},{"code":"340372","name":"蚌埠市经济开发区"}]},{"code":"3404","name":"淮南市","children":[{"code":"340402","name":"大通区"},{"code":"340403","name":"田家庵区"},{"code":"340404","name":"谢家集区"},{"code":"340405","name":"八公山区"},{"code":"340406","name":"潘集区"},{"code":"340421","name":"凤台县"},{"code":"340422","name":"寿县"}]},{"code":"3405","name":"马鞍山市","children":[{"code":"340503","name":"花山区"},{"code":"340504","name":"雨山区"},{"code":"340506","name":"博望区"},{"code":"340521","name":"当涂县"},{"code":"340522","name":"含山县"},{"code":"340523","name":"和县"}]},{"code":"3406","name":"淮北市","children":[{"code":"340602","name":"杜集区"},{"code":"340603","name":"相山区"},{"code":"340604","name":"烈山区"},{"code":"340621","name":"濉溪县"}]},{"code":"3407","name":"铜陵市","children":[{"code":"340705","name":"铜官区"},{"code":"340706","name":"义安区"},{"code":"340711","name":"郊区"},{"code":"340722","name":"枞阳县"}]},{"code":"3408","name":"安庆市","children":[{"code":"340802","name":"迎江区"},{"code":"340803","name":"大观区"},{"code":"340811","name":"宜秀区"},{"code":"340822","name":"怀宁县"},{"code":"340824","name":"潜山县"},{"code":"340825","name":"太湖县"},{"code":"340826","name":"宿松县"},{"code":"340827","name":"望江县"},{"code":"340828","name":"岳西县"},{"code":"340871","name":"安徽安庆经济开发区"},{"code":"340881","name":"桐城市"}]},{"code":"3410","name":"黄山市","children":[{"code":"341002","name":"屯溪区"},{"code":"341003","name":"黄山区"},{"code":"341004","name":"徽州区"},{"code":"341021","name":"歙县"},{"code":"341022","name":"休宁县"},{"code":"341023","name":"黟县"},{"code":"341024","name":"祁门县"}]},{"code":"3411","name":"滁州市","children":[{"code":"341102","name":"琅琊区"},{"code":"341103","name":"南谯区"},{"code":"341122","name":"来安县"},{"code":"341124","name":"全椒县"},{"code":"341125","name":"定远县"},{"code":"341126","name":"凤阳县"},{"code":"341171","name":"苏滁现代产业园"},{"code":"341172","name":"滁州经济技术开发区"},{"code":"341181","name":"天长市"},{"code":"341182","name":"明光市"}]},{"code":"3412","name":"阜阳市","children":[{"code":"341202","name":"颍州区"},{"code":"341203","name":"颍东区"},{"code":"341204","name":"颍泉区"},{"code":"341221","name":"临泉县"},{"code":"341222","name":"太和县"},{"code":"341225","name":"阜南县"},{"code":"341226","name":"颍上县"},{"code":"341271","name":"阜阳合肥现代产业园区"},{"code":"341272","name":"阜阳经济技术开发区"},{"code":"341282","name":"界首市"}]},{"code":"3413","name":"宿州市","children":[{"code":"341302","name":"埇桥区"},{"code":"341321","name":"砀山县"},{"code":"341322","name":"萧县"},{"code":"341323","name":"灵璧县"},{"code":"341324","name":"泗县"},{"code":"341371","name":"宿州马鞍山现代产业园区"},{"code":"341372","name":"宿州经济技术开发区"}]},{"code":"3415","name":"六安市","children":[{"code":"341502","name":"金安区"},{"code":"341503","name":"裕安区"},{"code":"341504","name":"叶集区"},{"code":"341522","name":"霍邱县"},{"code":"341523","name":"舒城县"},{"code":"341524","name":"金寨县"},{"code":"341525","name":"霍山县"}]},{"code":"3416","name":"亳州市","children":[{"code":"341602","name":"谯城区"},{"code":"341621","name":"涡阳县"},{"code":"341622","name":"蒙城县"},{"code":"341623","name":"利辛县"}]},{"code":"3417","name":"池州市","children":[{"code":"341702","name":"贵池区"},{"code":"341721","name":"东至县"},{"code":"341722","name":"石台县"},{"code":"341723","name":"青阳县"}]},{"code":"3418","name":"宣城市","children":[{"code":"341802","name":"宣州区"},{"code":"341821","name":"郎溪县"},{"code":"341822","name":"广德县"},{"code":"341823","name":"泾县"},{"code":"341824","name":"绩溪县"},{"code":"341825","name":"旌德县"},{"code":"341871","name":"宣城市经济开发区"},{"code":"341881","name":"宁国市"}]}]},{"code":"35","name":"福建省","children":[{"code":"3501","name":"福州市","children":[{"code":"350102","name":"鼓楼区"},{"code":"350103","name":"台江区"},{"code":"350104","name":"仓山区"},{"code":"350105","name":"马尾区"},{"code":"350111","name":"晋安区"},{"code":"350121","name":"闽侯县"},{"code":"350122","name":"连江县"},{"code":"350123","name":"罗源县"},{"code":"350124","name":"闽清县"},{"code":"350125","name":"永泰县"},{"code":"350128","name":"平潭县"},{"code":"350181","name":"福清市"},{"code":"350182","name":"长乐市"}]},{"code":"3502","name":"厦门市","children":[{"code":"350203","name":"思明区"},{"code":"350205","name":"海沧区"},{"code":"350206","name":"湖里区"},{"code":"350211","name":"集美区"},{"code":"350212","name":"同安区"},{"code":"350213","name":"翔安区"}]},{"code":"3503","name":"莆田市","children":[{"code":"350302","name":"城厢区"},{"code":"350303","name":"涵江区"},{"code":"350304","name":"荔城区"},{"code":"350305","name":"秀屿区"},{"code":"350322","name":"仙游县"}]},{"code":"3504","name":"三明市","children":[{"code":"350402","name":"梅列区"},{"code":"350403","name":"三元区"},{"code":"350421","name":"明溪县"},{"code":"350423","name":"清流县"},{"code":"350424","name":"宁化县"},{"code":"350425","name":"大田县"},{"code":"350426","name":"尤溪县"},{"code":"350427","name":"沙县"},{"code":"350428","name":"将乐县"},{"code":"350429","name":"泰宁县"},{"code":"350430","name":"建宁县"},{"code":"350481","name":"永安市"}]},{"code":"3505","name":"泉州市","children":[{"code":"350502","name":"鲤城区"},{"code":"350503","name":"丰泽区"},{"code":"350504","name":"洛江区"},{"code":"350505","name":"泉港区"},{"code":"350521","name":"惠安县"},{"code":"350524","name":"安溪县"},{"code":"350525","name":"永春县"},{"code":"350526","name":"德化县"},{"code":"350527","name":"金门县"},{"code":"350581","name":"石狮市"},{"code":"350582","name":"晋江市"},{"code":"350583","name":"南安市"}]},{"code":"3506","name":"漳州市","children":[{"code":"350602","name":"芗城区"},{"code":"350603","name":"龙文区"},{"code":"350622","name":"云霄县"},{"code":"350623","name":"漳浦县"},{"code":"350624","name":"诏安县"},{"code":"350625","name":"长泰县"},{"code":"350626","name":"东山县"},{"code":"350627","name":"南靖县"},{"code":"350628","name":"平和县"},{"code":"350629","name":"华安县"},{"code":"350681","name":"龙海市"}]},{"code":"3507","name":"南平市","children":[{"code":"350702","name":"延平区"},{"code":"350703","name":"建阳区"},{"code":"350721","name":"顺昌县"},{"code":"350722","name":"浦城县"},{"code":"350723","name":"光泽县"},{"code":"350724","name":"松溪县"},{"code":"350725","name":"政和县"},{"code":"350781","name":"邵武市"},{"code":"350782","name":"武夷山市"},{"code":"350783","name":"建瓯市"}]},{"code":"3508","name":"龙岩市","children":[{"code":"350802","name":"新罗区"},{"code":"350803","name":"永定区"},{"code":"350821","name":"长汀县"},{"code":"350823","name":"上杭县"},{"code":"350824","name":"武平县"},{"code":"350825","name":"连城县"},{"code":"350881","name":"漳平市"}]},{"code":"3509","name":"宁德市","children":[{"code":"350902","name":"蕉城区"},{"code":"350921","name":"霞浦县"},{"code":"350922","name":"古田县"},{"code":"350923","name":"屏南县"},{"code":"350924","name":"寿宁县"},{"code":"350925","name":"周宁县"},{"code":"350926","name":"柘荣县"},{"code":"350981","name":"福安市"},{"code":"350982","name":"福鼎市"}]}]},{"code":"36","name":"江西省","children":[{"code":"3601","name":"南昌市","children":[{"code":"360102","name":"东湖区"},{"code":"360103","name":"西湖区"},{"code":"360104","name":"青云谱区"},{"code":"360105","name":"湾里区"},{"code":"360111","name":"青山湖区"},{"code":"360112","name":"新建区"},{"code":"360121","name":"南昌县"},{"code":"360123","name":"安义县"},{"code":"360124","name":"进贤县"}]},{"code":"3602","name":"景德镇市","children":[{"code":"360202","name":"昌江区"},{"code":"360203","name":"珠山区"},{"code":"360222","name":"浮梁县"},{"code":"360281","name":"乐平市"}]},{"code":"3603","name":"萍乡市","children":[{"code":"360302","name":"安源区"},{"code":"360313","name":"湘东区"},{"code":"360321","name":"莲花县"},{"code":"360322","name":"上栗县"},{"code":"360323","name":"芦溪县"}]},{"code":"3604","name":"九江市","children":[{"code":"360402","name":"濂溪区"},{"code":"360403","name":"浔阳区"},{"code":"360404","name":"柴桑区"},{"code":"360423","name":"武宁县"},{"code":"360424","name":"修水县"},{"code":"360425","name":"永修县"},{"code":"360426","name":"德安县"},{"code":"360428","name":"都昌县"},{"code":"360429","name":"湖口县"},{"code":"360430","name":"彭泽县"},{"code":"360481","name":"瑞昌市"},{"code":"360482","name":"共青城市"},{"code":"360483","name":"庐山市"}]},{"code":"3605","name":"新余市","children":[{"code":"360502","name":"渝水区"},{"code":"360521","name":"分宜县"}]},{"code":"3606","name":"鹰潭市","children":[{"code":"360602","name":"月湖区"},{"code":"360622","name":"余江县"},{"code":"360681","name":"贵溪市"}]},{"code":"3607","name":"赣州市","children":[{"code":"360702","name":"章贡区"},{"code":"360703","name":"南康区"},{"code":"360704","name":"赣县区"},{"code":"360722","name":"信丰县"},{"code":"360723","name":"大余县"},{"code":"360724","name":"上犹县"},{"code":"360725","name":"崇义县"},{"code":"360726","name":"安远县"},{"code":"360727","name":"龙南县"},{"code":"360728","name":"定南县"},{"code":"360729","name":"全南县"},{"code":"360730","name":"宁都县"},{"code":"360731","name":"于都县"},{"code":"360732","name":"兴国县"},{"code":"360733","name":"会昌县"},{"code":"360734","name":"寻乌县"},{"code":"360735","name":"石城县"},{"code":"360781","name":"瑞金市"}]},{"code":"3608","name":"吉安市","children":[{"code":"360802","name":"吉州区"},{"code":"360803","name":"青原区"},{"code":"360821","name":"吉安县"},{"code":"360822","name":"吉水县"},{"code":"360823","name":"峡江县"},{"code":"360824","name":"新干县"},{"code":"360825","name":"永丰县"},{"code":"360826","name":"泰和县"},{"code":"360827","name":"遂川县"},{"code":"360828","name":"万安县"},{"code":"360829","name":"安福县"},{"code":"360830","name":"永新县"},{"code":"360881","name":"井冈山市"}]},{"code":"3609","name":"宜春市","children":[{"code":"360902","name":"袁州区"},{"code":"360921","name":"奉新县"},{"code":"360922","name":"万载县"},{"code":"360923","name":"上高县"},{"code":"360924","name":"宜丰县"},{"code":"360925","name":"靖安县"},{"code":"360926","name":"铜鼓县"},{"code":"360981","name":"丰城市"},{"code":"360982","name":"樟树市"},{"code":"360983","name":"高安市"}]},{"code":"3610","name":"抚州市","children":[{"code":"361002","name":"临川区"},{"code":"361003","name":"东乡区"},{"code":"361021","name":"南城县"},{"code":"361022","name":"黎川县"},{"code":"361023","name":"南丰县"},{"code":"361024","name":"崇仁县"},{"code":"361025","name":"乐安县"},{"code":"361026","name":"宜黄县"},{"code":"361027","name":"金溪县"},{"code":"361028","name":"资溪县"},{"code":"361030","name":"广昌县"}]},{"code":"3611","name":"上饶市","children":[{"code":"361102","name":"信州区"},{"code":"361103","name":"广丰区"},{"code":"361121","name":"上饶县"},{"code":"361123","name":"玉山县"},{"code":"361124","name":"铅山县"},{"code":"361125","name":"横峰县"},{"code":"361126","name":"弋阳县"},{"code":"361127","name":"余干县"},{"code":"361128","name":"鄱阳县"},{"code":"361129","name":"万年县"},{"code":"361130","name":"婺源县"},{"code":"361181","name":"德兴市"}]}]},{"code":"37","name":"山东省","children":[{"code":"3701","name":"济南市","children":[{"code":"370102","name":"历下区"},{"code":"370103","name":"市中区"},{"code":"370104","name":"槐荫区"},{"code":"370105","name":"天桥区"},{"code":"370112","name":"历城区"},{"code":"370113","name":"长清区"},{"code":"370114","name":"章丘区"},{"code":"370124","name":"平阴县"},{"code":"370125","name":"济阳县"},{"code":"370126","name":"商河县"},{"code":"370171","name":"济南高新技术产业开发区"}]},{"code":"3702","name":"青岛市","children":[{"code":"370202","name":"市南区"},{"code":"370203","name":"市北区"},{"code":"370211","name":"黄岛区"},{"code":"370212","name":"崂山区"},{"code":"370213","name":"李沧区"},{"code":"370214","name":"城阳区"},{"code":"370215","name":"即墨区"},{"code":"370271","name":"青岛高新技术产业开发区"},{"code":"370281","name":"胶州市"},{"code":"370283","name":"平度市"},{"code":"370285","name":"莱西市"}]},{"code":"3703","name":"淄博市","children":[{"code":"370302","name":"淄川区"},{"code":"370303","name":"张店区"},{"code":"370304","name":"博山区"},{"code":"370305","name":"临淄区"},{"code":"370306","name":"周村区"},{"code":"370321","name":"桓台县"},{"code":"370322","name":"高青县"},{"code":"370323","name":"沂源县"}]},{"code":"3704","name":"枣庄市","children":[{"code":"370402","name":"市中区"},{"code":"370403","name":"薛城区"},{"code":"370404","name":"峄城区"},{"code":"370405","name":"台儿庄区"},{"code":"370406","name":"山亭区"},{"code":"370481","name":"滕州市"}]},{"code":"3705","name":"东营市","children":[{"code":"370502","name":"东营区"},{"code":"370503","name":"河口区"},{"code":"370505","name":"垦利区"},{"code":"370522","name":"利津县"},{"code":"370523","name":"广饶县"},{"code":"370571","name":"东营经济技术开发区"},{"code":"370572","name":"东营港经济开发区"}]},{"code":"3706","name":"烟台市","children":[{"code":"370602","name":"芝罘区"},{"code":"370611","name":"福山区"},{"code":"370612","name":"牟平区"},{"code":"370613","name":"莱山区"},{"code":"370634","name":"长岛县"},{"code":"370671","name":"烟台高新技术产业开发区"},{"code":"370672","name":"烟台经济技术开发区"},{"code":"370681","name":"龙口市"},{"code":"370682","name":"莱阳市"},{"code":"370683","name":"莱州市"},{"code":"370684","name":"蓬莱市"},{"code":"370685","name":"招远市"},{"code":"370686","name":"栖霞市"},{"code":"370687","name":"海阳市"}]},{"code":"3707","name":"潍坊市","children":[{"code":"370702","name":"潍城区"},{"code":"370703","name":"寒亭区"},{"code":"370704","name":"坊子区"},{"code":"370705","name":"奎文区"},{"code":"370724","name":"临朐县"},{"code":"370725","name":"昌乐县"},{"code":"370772","name":"潍坊滨海经济技术开发区"},{"code":"370781","name":"青州市"},{"code":"370782","name":"诸城市"},{"code":"370783","name":"寿光市"},{"code":"370784","name":"安丘市"},{"code":"370785","name":"高密市"},{"code":"370786","name":"昌邑市"}]},{"code":"3708","name":"济宁市","children":[{"code":"370811","name":"任城区"},{"code":"370812","name":"兖州区"},{"code":"370826","name":"微山县"},{"code":"370827","name":"鱼台县"},{"code":"370828","name":"金乡县"},{"code":"370829","name":"嘉祥县"},{"code":"370830","name":"汶上县"},{"code":"370831","name":"泗水县"},{"code":"370832","name":"梁山县"},{"code":"370871","name":"济宁高新技术产业开发区"},{"code":"370881","name":"曲阜市"},{"code":"370883","name":"邹城市"}]},{"code":"3709","name":"泰安市","children":[{"code":"370902","name":"泰山区"},{"code":"370911","name":"岱岳区"},{"code":"370921","name":"宁阳县"},{"code":"370923","name":"东平县"},{"code":"370982","name":"新泰市"},{"code":"370983","name":"肥城市"}]},{"code":"3710","name":"威海市","children":[{"code":"371002","name":"环翠区"},{"code":"371003","name":"文登区"},{"code":"371071","name":"威海火炬高技术产业开发区"},{"code":"371072","name":"威海经济技术开发区"},{"code":"371073","name":"威海临港经济技术开发区"},{"code":"371082","name":"荣成市"},{"code":"371083","name":"乳山市"}]},{"code":"3711","name":"日照市","children":[{"code":"371102","name":"东港区"},{"code":"371103","name":"岚山区"},{"code":"371121","name":"五莲县"},{"code":"371122","name":"莒县"},{"code":"371171","name":"日照经济技术开发区"},{"code":"371172","name":"日照国际海洋城"}]},{"code":"3712","name":"莱芜市","children":[{"code":"371202","name":"莱城区"},{"code":"371203","name":"钢城区"}]},{"code":"3713","name":"临沂市","children":[{"code":"371302","name":"兰山区"},{"code":"371311","name":"罗庄区"},{"code":"371312","name":"河东区"},{"code":"371321","name":"沂南县"},{"code":"371322","name":"郯城县"},{"code":"371323","name":"沂水县"},{"code":"371324","name":"兰陵县"},{"code":"371325","name":"费县"},{"code":"371326","name":"平邑县"},{"code":"371327","name":"莒南县"},{"code":"371328","name":"蒙阴县"},{"code":"371329","name":"临沭县"},{"code":"371371","name":"临沂高新技术产业开发区"},{"code":"371372","name":"临沂经济技术开发区"},{"code":"371373","name":"临沂临港经济开发区"}]},{"code":"3714","name":"德州市","children":[{"code":"371402","name":"德城区"},{"code":"371403","name":"陵城区"},{"code":"371422","name":"宁津县"},{"code":"371423","name":"庆云县"},{"code":"371424","name":"临邑县"},{"code":"371425","name":"齐河县"},{"code":"371426","name":"平原县"},{"code":"371427","name":"夏津县"},{"code":"371428","name":"武城县"},{"code":"371471","name":"德州经济技术开发区"},{"code":"371472","name":"德州运河经济开发区"},{"code":"371481","name":"乐陵市"},{"code":"371482","name":"禹城市"}]},{"code":"3715","name":"聊城市","children":[{"code":"371502","name":"东昌府区"},{"code":"371521","name":"阳谷县"},{"code":"371522","name":"莘县"},{"code":"371523","name":"茌平县"},{"code":"371524","name":"东阿县"},{"code":"371525","name":"冠县"},{"code":"371526","name":"高唐县"},{"code":"371581","name":"临清市"}]},{"code":"3716","name":"滨州市","children":[{"code":"371602","name":"滨城区"},{"code":"371603","name":"沾化区"},{"code":"371621","name":"惠民县"},{"code":"371622","name":"阳信县"},{"code":"371623","name":"无棣县"},{"code":"371625","name":"博兴县"},{"code":"371626","name":"邹平县"}]},{"code":"3717","name":"菏泽市","children":[{"code":"371702","name":"牡丹区"},{"code":"371703","name":"定陶区"},{"code":"371721","name":"曹县"},{"code":"371722","name":"单县"},{"code":"371723","name":"成武县"},{"code":"371724","name":"巨野县"},{"code":"371725","name":"郓城县"},{"code":"371726","name":"鄄城县"},{"code":"371728","name":"东明县"},{"code":"371771","name":"菏泽经济技术开发区"},{"code":"371772","name":"菏泽高新技术开发区"}]}]},{"code":"41","name":"河南省","children":[{"code":"4101","name":"郑州市","children":[{"code":"410102","name":"中原区"},{"code":"410103","name":"二七区"},{"code":"410104","name":"管城回族区"},{"code":"410105","name":"金水区"},{"code":"410106","name":"上街区"},{"code":"410108","name":"惠济区"},{"code":"410122","name":"中牟县"},{"code":"410171","name":"郑州经济技术开发区"},{"code":"410172","name":"郑州高新技术产业开发区"},{"code":"410173","name":"郑州航空港经济综合实验区"},{"code":"410181","name":"巩义市"},{"code":"410182","name":"荥阳市"},{"code":"410183","name":"新密市"},{"code":"410184","name":"新郑市"},{"code":"410185","name":"登封市"}]},{"code":"4102","name":"开封市","children":[{"code":"410202","name":"龙亭区"},{"code":"410203","name":"顺河回族区"},{"code":"410204","name":"鼓楼区"},{"code":"410205","name":"禹王台区"},{"code":"410212","name":"祥符区"},{"code":"410221","name":"杞县"},{"code":"410222","name":"通许县"},{"code":"410223","name":"尉氏县"},{"code":"410225","name":"兰考县"}]},{"code":"4103","name":"洛阳市","children":[{"code":"410302","name":"老城区"},{"code":"410303","name":"西工区"},{"code":"410304","name":"瀍河回族区"},{"code":"410305","name":"涧西区"},{"code":"410306","name":"吉利区"},{"code":"410311","name":"洛龙区"},{"code":"410322","name":"孟津县"},{"code":"410323","name":"新安县"},{"code":"410324","name":"栾川县"},{"code":"410325","name":"嵩县"},{"code":"410326","name":"汝阳县"},{"code":"410327","name":"宜阳县"},{"code":"410328","name":"洛宁县"},{"code":"410329","name":"伊川县"},{"code":"410371","name":"洛阳高新技术产业开发区"},{"code":"410381","name":"偃师市"}]},{"code":"4104","name":"平顶山市","children":[{"code":"410402","name":"新华区"},{"code":"410403","name":"卫东区"},{"code":"410404","name":"石龙区"},{"code":"410411","name":"湛河区"},{"code":"410421","name":"宝丰县"},{"code":"410422","name":"叶县"},{"code":"410423","name":"鲁山县"},{"code":"410425","name":"郏县"},{"code":"410471","name":"平顶山高新技术产业开发区"},{"code":"410472","name":"平顶山市新城区"},{"code":"410481","name":"舞钢市"},{"code":"410482","name":"汝州市"}]},{"code":"4105","name":"安阳市","children":[{"code":"410502","name":"文峰区"},{"code":"410503","name":"北关区"},{"code":"410505","name":"殷都区"},{"code":"410506","name":"龙安区"},{"code":"410522","name":"安阳县"},{"code":"410523","name":"汤阴县"},{"code":"410526","name":"滑县"},{"code":"410527","name":"内黄县"},{"code":"410571","name":"安阳高新技术产业开发区"},{"code":"410581","name":"林州市"}]},{"code":"4106","name":"鹤壁市","children":[{"code":"410602","name":"鹤山区"},{"code":"410603","name":"山城区"},{"code":"410611","name":"淇滨区"},{"code":"410621","name":"浚县"},{"code":"410622","name":"淇县"},{"code":"410671","name":"鹤壁经济技术开发区"}]},{"code":"4107","name":"新乡市","children":[{"code":"410702","name":"红旗区"},{"code":"410703","name":"卫滨区"},{"code":"410704","name":"凤泉区"},{"code":"410711","name":"牧野区"},{"code":"410721","name":"新乡县"},{"code":"410724","name":"获嘉县"},{"code":"410725","name":"原阳县"},{"code":"410726","name":"延津县"},{"code":"410727","name":"封丘县"},{"code":"410728","name":"长垣县"},{"code":"410771","name":"新乡高新技术产业开发区"},{"code":"410772","name":"新乡经济技术开发区"},{"code":"410773","name":"新乡市平原城乡一体化示范区"},{"code":"410781","name":"卫辉市"},{"code":"410782","name":"辉县市"}]},{"code":"4108","name":"焦作市","children":[{"code":"410802","name":"解放区"},{"code":"410803","name":"中站区"},{"code":"410804","name":"马村区"},{"code":"410811","name":"山阳区"},{"code":"410821","name":"修武县"},{"code":"410822","name":"博爱县"},{"code":"410823","name":"武陟县"},{"code":"410825","name":"温县"},{"code":"410871","name":"焦作城乡一体化示范区"},{"code":"410882","name":"沁阳市"},{"code":"410883","name":"孟州市"}]},{"code":"4109","name":"濮阳市","children":[{"code":"410902","name":"华龙区"},{"code":"410922","name":"清丰县"},{"code":"410923","name":"南乐县"},{"code":"410926","name":"范县"},{"code":"410927","name":"台前县"},{"code":"410928","name":"濮阳县"},{"code":"410971","name":"河南濮阳工业园区"},{"code":"410972","name":"濮阳经济技术开发区"}]},{"code":"4110","name":"许昌市","children":[{"code":"411002","name":"魏都区"},{"code":"411003","name":"建安区"},{"code":"411024","name":"鄢陵县"},{"code":"411025","name":"襄城县"},{"code":"411071","name":"许昌经济技术开发区"},{"code":"411081","name":"禹州市"},{"code":"411082","name":"长葛市"}]},{"code":"4111","name":"漯河市","children":[{"code":"411102","name":"源汇区"},{"code":"411103","name":"郾城区"},{"code":"411104","name":"召陵区"},{"code":"411121","name":"舞阳县"},{"code":"411122","name":"临颍县"},{"code":"411171","name":"漯河经济技术开发区"}]},{"code":"4112","name":"三门峡市","children":[{"code":"411202","name":"湖滨区"},{"code":"411203","name":"陕州区"},{"code":"411221","name":"渑池县"},{"code":"411224","name":"卢氏县"},{"code":"411271","name":"河南三门峡经济开发区"},{"code":"411281","name":"义马市"},{"code":"411282","name":"灵宝市"}]},{"code":"4113","name":"南阳市","children":[{"code":"411302","name":"宛城区"},{"code":"411303","name":"卧龙区"},{"code":"411321","name":"南召县"},{"code":"411322","name":"方城县"},{"code":"411323","name":"西峡县"},{"code":"411324","name":"镇平县"},{"code":"411325","name":"内乡县"},{"code":"411326","name":"淅川县"},{"code":"411327","name":"社旗县"},{"code":"411328","name":"唐河县"},{"code":"411329","name":"新野县"},{"code":"411330","name":"桐柏县"},{"code":"411371","name":"南阳高新技术产业开发区"},{"code":"411372","name":"南阳市城乡一体化示范区"},{"code":"411381","name":"邓州市"}]},{"code":"4114","name":"商丘市","children":[{"code":"411402","name":"梁园区"},{"code":"411403","name":"睢阳区"},{"code":"411421","name":"民权县"},{"code":"411422","name":"睢县"},{"code":"411423","name":"宁陵县"},{"code":"411424","name":"柘城县"},{"code":"411425","name":"虞城县"},{"code":"411426","name":"夏邑县"},{"code":"411471","name":"豫东综合物流产业聚集区"},{"code":"411472","name":"河南商丘经济开发区"},{"code":"411481","name":"永城市"}]},{"code":"4115","name":"信阳市","children":[{"code":"411502","name":"浉河区"},{"code":"411503","name":"平桥区"},{"code":"411521","name":"罗山县"},{"code":"411522","name":"光山县"},{"code":"411523","name":"新县"},{"code":"411524","name":"商城县"},{"code":"411525","name":"固始县"},{"code":"411526","name":"潢川县"},{"code":"411527","name":"淮滨县"},{"code":"411528","name":"息县"},{"code":"411571","name":"信阳高新技术产业开发区"}]},{"code":"4116","name":"周口市","children":[{"code":"411602","name":"川汇区"},{"code":"411621","name":"扶沟县"},{"code":"411622","name":"西华县"},{"code":"411623","name":"商水县"},{"code":"411624","name":"沈丘县"},{"code":"411625","name":"郸城县"},{"code":"411626","name":"淮阳县"},{"code":"411627","name":"太康县"},{"code":"411628","name":"鹿邑县"},{"code":"411671","name":"河南周口经济开发区"},{"code":"411681","name":"项城市"}]},{"code":"4117","name":"驻马店市","children":[{"code":"411702","name":"驿城区"},{"code":"411721","name":"西平县"},{"code":"411722","name":"上蔡县"},{"code":"411723","name":"平舆县"},{"code":"411724","name":"正阳县"},{"code":"411725","name":"确山县"},{"code":"411726","name":"泌阳县"},{"code":"411727","name":"汝南县"},{"code":"411728","name":"遂平县"},{"code":"411729","name":"新蔡县"},{"code":"411771","name":"河南驻马店经济开发区"}]},{"code":"4190","name":"省直辖县级行政区划","children":[{"code":"419001","name":"济源市"}]}]},{"code":"42","name":"湖北省","children":[{"code":"4201","name":"武汉市","children":[{"code":"420102","name":"江岸区"},{"code":"420103","name":"江汉区"},{"code":"420104","name":"硚口区"},{"code":"420105","name":"汉阳区"},{"code":"420106","name":"武昌区"},{"code":"420107","name":"青山区"},{"code":"420111","name":"洪山区"},{"code":"420112","name":"东西湖区"},{"code":"420113","name":"汉南区"},{"code":"420114","name":"蔡甸区"},{"code":"420115","name":"江夏区"},{"code":"420116","name":"黄陂区"},{"code":"420117","name":"新洲区"}]},{"code":"4202","name":"黄石市","children":[{"code":"420202","name":"黄石港区"},{"code":"420203","name":"西塞山区"},{"code":"420204","name":"下陆区"},{"code":"420205","name":"铁山区"},{"code":"420222","name":"阳新县"},{"code":"420281","name":"大冶市"}]},{"code":"4203","name":"十堰市","children":[{"code":"420302","name":"茅箭区"},{"code":"420303","name":"张湾区"},{"code":"420304","name":"郧阳区"},{"code":"420322","name":"郧西县"},{"code":"420323","name":"竹山县"},{"code":"420324","name":"竹溪县"},{"code":"420325","name":"房县"},{"code":"420381","name":"丹江口市"}]},{"code":"4205","name":"宜昌市","children":[{"code":"420502","name":"西陵区"},{"code":"420503","name":"伍家岗区"},{"code":"420504","name":"点军区"},{"code":"420505","name":"猇亭区"},{"code":"420506","name":"夷陵区"},{"code":"420525","name":"远安县"},{"code":"420526","name":"兴山县"},{"code":"420527","name":"秭归县"},{"code":"420528","name":"长阳土家族自治县"},{"code":"420529","name":"五峰土家族自治县"},{"code":"420581","name":"宜都市"},{"code":"420582","name":"当阳市"},{"code":"420583","name":"枝江市"}]},{"code":"4206","name":"襄阳市","children":[{"code":"420602","name":"襄城区"},{"code":"420606","name":"樊城区"},{"code":"420607","name":"襄州区"},{"code":"420624","name":"南漳县"},{"code":"420625","name":"谷城县"},{"code":"420626","name":"保康县"},{"code":"420682","name":"老河口市"},{"code":"420683","name":"枣阳市"},{"code":"420684","name":"宜城市"}]},{"code":"4207","name":"鄂州市","children":[{"code":"420702","name":"梁子湖区"},{"code":"420703","name":"华容区"},{"code":"420704","name":"鄂城区"}]},{"code":"4208","name":"荆门市","children":[{"code":"420802","name":"东宝区"},{"code":"420804","name":"掇刀区"},{"code":"420821","name":"京山县"},{"code":"420822","name":"沙洋县"},{"code":"420881","name":"钟祥市"}]},{"code":"4209","name":"孝感市","children":[{"code":"420902","name":"孝南区"},{"code":"420921","name":"孝昌县"},{"code":"420922","name":"大悟县"},{"code":"420923","name":"云梦县"},{"code":"420981","name":"应城市"},{"code":"420982","name":"安陆市"},{"code":"420984","name":"汉川市"}]},{"code":"4210","name":"荆州市","children":[{"code":"421002","name":"沙市区"},{"code":"421003","name":"荆州区"},{"code":"421022","name":"公安县"},{"code":"421023","name":"监利县"},{"code":"421024","name":"江陵县"},{"code":"421071","name":"荆州经济技术开发区"},{"code":"421081","name":"石首市"},{"code":"421083","name":"洪湖市"},{"code":"421087","name":"松滋市"}]},{"code":"4211","name":"黄冈市","children":[{"code":"421102","name":"黄州区"},{"code":"421121","name":"团风县"},{"code":"421122","name":"红安县"},{"code":"421123","name":"罗田县"},{"code":"421124","name":"英山县"},{"code":"421125","name":"浠水县"},{"code":"421126","name":"蕲春县"},{"code":"421127","name":"黄梅县"},{"code":"421171","name":"龙感湖管理区"},{"code":"421181","name":"麻城市"},{"code":"421182","name":"武穴市"}]},{"code":"4212","name":"咸宁市","children":[{"code":"421202","name":"咸安区"},{"code":"421221","name":"嘉鱼县"},{"code":"421222","name":"通城县"},{"code":"421223","name":"崇阳县"},{"code":"421224","name":"通山县"},{"code":"421281","name":"赤壁市"}]},{"code":"4213","name":"随州市","children":[{"code":"421303","name":"曾都区"},{"code":"421321","name":"随县"},{"code":"421381","name":"广水市"}]},{"code":"4228","name":"恩施土家族苗族自治州","children":[{"code":"422801","name":"恩施市"},{"code":"422802","name":"利川市"},{"code":"422822","name":"建始县"},{"code":"422823","name":"巴东县"},{"code":"422825","name":"宣恩县"},{"code":"422826","name":"咸丰县"},{"code":"422827","name":"来凤县"},{"code":"422828","name":"鹤峰县"}]},{"code":"4290","name":"省直辖县级行政区划","children":[{"code":"429004","name":"仙桃市"},{"code":"429005","name":"潜江市"},{"code":"429006","name":"天门市"},{"code":"429021","name":"神农架林区"}]}]},{"code":"43","name":"湖南省","children":[{"code":"4301","name":"长沙市","children":[{"code":"430102","name":"芙蓉区"},{"code":"430103","name":"天心区"},{"code":"430104","name":"岳麓区"},{"code":"430105","name":"开福区"},{"code":"430111","name":"雨花区"},{"code":"430112","name":"望城区"},{"code":"430121","name":"长沙县"},{"code":"430181","name":"浏阳市"},{"code":"430182","name":"宁乡市"}]},{"code":"4302","name":"株洲市","children":[{"code":"430202","name":"荷塘区"},{"code":"430203","name":"芦淞区"},{"code":"430204","name":"石峰区"},{"code":"430211","name":"天元区"},{"code":"430221","name":"株洲县"},{"code":"430223","name":"攸县"},{"code":"430224","name":"茶陵县"},{"code":"430225","name":"炎陵县"},{"code":"430271","name":"云龙示范区"},{"code":"430281","name":"醴陵市"}]},{"code":"4303","name":"湘潭市","children":[{"code":"430302","name":"雨湖区"},{"code":"430304","name":"岳塘区"},{"code":"430321","name":"湘潭县"},{"code":"430371","name":"湖南湘潭高新技术产业园区"},{"code":"430372","name":"湘潭昭山示范区"},{"code":"430373","name":"湘潭九华示范区"},{"code":"430381","name":"湘乡市"},{"code":"430382","name":"韶山市"}]},{"code":"4304","name":"衡阳市","children":[{"code":"430405","name":"珠晖区"},{"code":"430406","name":"雁峰区"},{"code":"430407","name":"石鼓区"},{"code":"430408","name":"蒸湘区"},{"code":"430412","name":"南岳区"},{"code":"430421","name":"衡阳县"},{"code":"430422","name":"衡南县"},{"code":"430423","name":"衡山县"},{"code":"430424","name":"衡东县"},{"code":"430426","name":"祁东县"},{"code":"430471","name":"衡阳综合保税区"},{"code":"430472","name":"湖南衡阳高新技术产业园区"},{"code":"430473","name":"湖南衡阳松木经济开发区"},{"code":"430481","name":"耒阳市"},{"code":"430482","name":"常宁市"}]},{"code":"4305","name":"邵阳市","children":[{"code":"430502","name":"双清区"},{"code":"430503","name":"大祥区"},{"code":"430511","name":"北塔区"},{"code":"430521","name":"邵东县"},{"code":"430522","name":"新邵县"},{"code":"430523","name":"邵阳县"},{"code":"430524","name":"隆回县"},{"code":"430525","name":"洞口县"},{"code":"430527","name":"绥宁县"},{"code":"430528","name":"新宁县"},{"code":"430529","name":"城步苗族自治县"},{"code":"430581","name":"武冈市"}]},{"code":"4306","name":"岳阳市","children":[{"code":"430602","name":"岳阳楼区"},{"code":"430603","name":"云溪区"},{"code":"430611","name":"君山区"},{"code":"430621","name":"岳阳县"},{"code":"430623","name":"华容县"},{"code":"430624","name":"湘阴县"},{"code":"430626","name":"平江县"},{"code":"430671","name":"岳阳市屈原管理区"},{"code":"430681","name":"汨罗市"},{"code":"430682","name":"临湘市"}]},{"code":"4307","name":"常德市","children":[{"code":"430702","name":"武陵区"},{"code":"430703","name":"鼎城区"},{"code":"430721","name":"安乡县"},{"code":"430722","name":"汉寿县"},{"code":"430723","name":"澧县"},{"code":"430724","name":"临澧县"},{"code":"430725","name":"桃源县"},{"code":"430726","name":"石门县"},{"code":"430771","name":"常德市西洞庭管理区"},{"code":"430781","name":"津市市"}]},{"code":"4308","name":"张家界市","children":[{"code":"430802","name":"永定区"},{"code":"430811","name":"武陵源区"},{"code":"430821","name":"慈利县"},{"code":"430822","name":"桑植县"}]},{"code":"4309","name":"益阳市","children":[{"code":"430902","name":"资阳区"},{"code":"430903","name":"赫山区"},{"code":"430921","name":"南县"},{"code":"430922","name":"桃江县"},{"code":"430923","name":"安化县"},{"code":"430971","name":"益阳市大通湖管理区"},{"code":"430972","name":"湖南益阳高新技术产业园区"},{"code":"430981","name":"沅江市"}]},{"code":"4310","name":"郴州市","children":[{"code":"431002","name":"北湖区"},{"code":"431003","name":"苏仙区"},{"code":"431021","name":"桂阳县"},{"code":"431022","name":"宜章县"},{"code":"431023","name":"永兴县"},{"code":"431024","name":"嘉禾县"},{"code":"431025","name":"临武县"},{"code":"431026","name":"汝城县"},{"code":"431027","name":"桂东县"},{"code":"431028","name":"安仁县"},{"code":"431081","name":"资兴市"}]},{"code":"4311","name":"永州市","children":[{"code":"431102","name":"零陵区"},{"code":"431103","name":"冷水滩区"},{"code":"431121","name":"祁阳县"},{"code":"431122","name":"东安县"},{"code":"431123","name":"双牌县"},{"code":"431124","name":"道县"},{"code":"431125","name":"江永县"},{"code":"431126","name":"宁远县"},{"code":"431127","name":"蓝山县"},{"code":"431128","name":"新田县"},{"code":"431129","name":"江华瑶族自治县"},{"code":"431171","name":"永州经济技术开发区"},{"code":"431172","name":"永州市金洞管理区"},{"code":"431173","name":"永州市回龙圩管理区"}]},{"code":"4312","name":"怀化市","children":[{"code":"431202","name":"鹤城区"},{"code":"431221","name":"中方县"},{"code":"431222","name":"沅陵县"},{"code":"431223","name":"辰溪县"},{"code":"431224","name":"溆浦县"},{"code":"431225","name":"会同县"},{"code":"431226","name":"麻阳苗族自治县"},{"code":"431227","name":"新晃侗族自治县"},{"code":"431228","name":"芷江侗族自治县"},{"code":"431229","name":"靖州苗族侗族自治县"},{"code":"431230","name":"通道侗族自治县"},{"code":"431271","name":"怀化市洪江管理区"},{"code":"431281","name":"洪江市"}]},{"code":"4313","name":"娄底市","children":[{"code":"431302","name":"娄星区"},{"code":"431321","name":"双峰县"},{"code":"431322","name":"新化县"},{"code":"431381","name":"冷水江市"},{"code":"431382","name":"涟源市"}]},{"code":"4331","name":"湘西土家族苗族自治州","children":[{"code":"433101","name":"吉首市"},{"code":"433122","name":"泸溪县"},{"code":"433123","name":"凤凰县"},{"code":"433124","name":"花垣县"},{"code":"433125","name":"保靖县"},{"code":"433126","name":"古丈县"},{"code":"433127","name":"永顺县"},{"code":"433130","name":"龙山县"},{"code":"433172","name":"湖南吉首经济开发区"},{"code":"433173","name":"湖南永顺经济开发区"}]}]},{"code":"44","name":"广东省","children":[{"code":"4401","name":"广州市","children":[{"code":"440103","name":"荔湾区"},{"code":"440104","name":"越秀区"},{"code":"440105","name":"海珠区"},{"code":"440106","name":"天河区"},{"code":"440111","name":"白云区"},{"code":"440112","name":"黄埔区"},{"code":"440113","name":"番禺区"},{"code":"440114","name":"花都区"},{"code":"440115","name":"南沙区"},{"code":"440117","name":"从化区"},{"code":"440118","name":"增城区"}]},{"code":"4402","name":"韶关市","children":[{"code":"440203","name":"武江区"},{"code":"440204","name":"浈江区"},{"code":"440205","name":"曲江区"},{"code":"440222","name":"始兴县"},{"code":"440224","name":"仁化县"},{"code":"440229","name":"翁源县"},{"code":"440232","name":"乳源瑶族自治县"},{"code":"440233","name":"新丰县"},{"code":"440281","name":"乐昌市"},{"code":"440282","name":"南雄市"}]},{"code":"4403","name":"深圳市","children":[{"code":"440303","name":"罗湖区"},{"code":"440304","name":"福田区"},{"code":"440305","name":"南山区"},{"code":"440306","name":"宝安区"},{"code":"440307","name":"龙岗区"},{"code":"440308","name":"盐田区"},{"code":"440309","name":"龙华区"},{"code":"440310","name":"坪山区"}]},{"code":"4404","name":"珠海市","children":[{"code":"440402","name":"香洲区"},{"code":"440403","name":"斗门区"},{"code":"440404","name":"金湾区"}]},{"code":"4405","name":"汕头市","children":[{"code":"440507","name":"龙湖区"},{"code":"440511","name":"金平区"},{"code":"440512","name":"濠江区"},{"code":"440513","name":"潮阳区"},{"code":"440514","name":"潮南区"},{"code":"440515","name":"澄海区"},{"code":"440523","name":"南澳县"}]},{"code":"4406","name":"佛山市","children":[{"code":"440604","name":"禅城区"},{"code":"440605","name":"南海区"},{"code":"440606","name":"顺德区"},{"code":"440607","name":"三水区"},{"code":"440608","name":"高明区"}]},{"code":"4407","name":"江门市","children":[{"code":"440703","name":"蓬江区"},{"code":"440704","name":"江海区"},{"code":"440705","name":"新会区"},{"code":"440781","name":"台山市"},{"code":"440783","name":"开平市"},{"code":"440784","name":"鹤山市"},{"code":"440785","name":"恩平市"}]},{"code":"4408","name":"湛江市","children":[{"code":"440802","name":"赤坎区"},{"code":"440803","name":"霞山区"},{"code":"440804","name":"坡头区"},{"code":"440811","name":"麻章区"},{"code":"440823","name":"遂溪县"},{"code":"440825","name":"徐闻县"},{"code":"440881","name":"廉江市"},{"code":"440882","name":"雷州市"},{"code":"440883","name":"吴川市"}]},{"code":"4409","name":"茂名市","children":[{"code":"440902","name":"茂南区"},{"code":"440904","name":"电白区"},{"code":"440981","name":"高州市"},{"code":"440982","name":"化州市"},{"code":"440983","name":"信宜市"}]},{"code":"4412","name":"肇庆市","children":[{"code":"441202","name":"端州区"},{"code":"441203","name":"鼎湖区"},{"code":"441204","name":"高要区"},{"code":"441223","name":"广宁县"},{"code":"441224","name":"怀集县"},{"code":"441225","name":"封开县"},{"code":"441226","name":"德庆县"},{"code":"441284","name":"四会市"}]},{"code":"4413","name":"惠州市","children":[{"code":"441302","name":"惠城区"},{"code":"441303","name":"惠阳区"},{"code":"441322","name":"博罗县"},{"code":"441323","name":"惠东县"},{"code":"441324","name":"龙门县"}]},{"code":"4414","name":"梅州市","children":[{"code":"441402","name":"梅江区"},{"code":"441403","name":"梅县区"},{"code":"441422","name":"大埔县"},{"code":"441423","name":"丰顺县"},{"code":"441424","name":"五华县"},{"code":"441426","name":"平远县"},{"code":"441427","name":"蕉岭县"},{"code":"441481","name":"兴宁市"}]},{"code":"4415","name":"汕尾市","children":[{"code":"441502","name":"城区"},{"code":"441521","name":"海丰县"},{"code":"441523","name":"陆河县"},{"code":"441581","name":"陆丰市"}]},{"code":"4416","name":"河源市","children":[{"code":"441602","name":"源城区"},{"code":"441621","name":"紫金县"},{"code":"441622","name":"龙川县"},{"code":"441623","name":"连平县"},{"code":"441624","name":"和平县"},{"code":"441625","name":"东源县"}]},{"code":"4417","name":"阳江市","children":[{"code":"441702","name":"江城区"},{"code":"441704","name":"阳东区"},{"code":"441721","name":"阳西县"},{"code":"441781","name":"阳春市"}]},{"code":"4418","name":"清远市","children":[{"code":"441802","name":"清城区"},{"code":"441803","name":"清新区"},{"code":"441821","name":"佛冈县"},{"code":"441823","name":"阳山县"},{"code":"441825","name":"连山壮族瑶族自治县"},{"code":"441826","name":"连南瑶族自治县"},{"code":"441881","name":"英德市"},{"code":"441882","name":"连州市"}]},{"code":"4419","name":"东莞市","children":[{"code":"441900003","name":"东城街道"},{"code":"441900004","name":"南城街道"},{"code":"441900005","name":"万江街道"},{"code":"441900006","name":"莞城街道"},{"code":"441900101","name":"石碣镇"},{"code":"441900102","name":"石龙镇"},{"code":"441900103","name":"茶山镇"},{"code":"441900104","name":"石排镇"},{"code":"441900105","name":"企石镇"},{"code":"441900106","name":"横沥镇"},{"code":"441900107","name":"桥头镇"},{"code":"441900108","name":"谢岗镇"},{"code":"441900109","name":"东坑镇"},{"code":"441900110","name":"常平镇"},{"code":"441900111","name":"寮步镇"},{"code":"441900112","name":"樟木头镇"},{"code":"441900113","name":"大朗镇"},{"code":"441900114","name":"黄江镇"},{"code":"441900115","name":"清溪镇"},{"code":"441900116","name":"塘厦镇"},{"code":"441900117","name":"凤岗镇"},{"code":"441900118","name":"大岭山镇"},{"code":"441900119","name":"长安镇"},{"code":"441900121","name":"虎门镇"},{"code":"441900122","name":"厚街镇"},{"code":"441900123","name":"沙田镇"},{"code":"441900124","name":"道滘镇"},{"code":"441900125","name":"洪梅镇"},{"code":"441900126","name":"麻涌镇"},{"code":"441900127","name":"望牛墩镇"},{"code":"441900128","name":"中堂镇"},{"code":"441900129","name":"高埗镇"},{"code":"441900401","name":"松山湖管委会"},{"code":"441900402","name":"东莞港"},{"code":"441900403","name":"东莞生态园"}]},{"code":"4420","name":"中山市","children":[{"code":"442000001","name":"石岐区街道"},{"code":"442000002","name":"东区街道"},{"code":"442000003","name":"火炬开发区街道"},{"code":"442000004","name":"西区街道"},{"code":"442000005","name":"南区街道"},{"code":"442000006","name":"五桂山街道"},{"code":"442000100","name":"小榄镇"},{"code":"442000101","name":"黄圃镇"},{"code":"442000102","name":"民众镇"},{"code":"442000103","name":"东凤镇"},{"code":"442000104","name":"东升镇"},{"code":"442000105","name":"古镇镇"},{"code":"442000106","name":"沙溪镇"},{"code":"442000107","name":"坦洲镇"},{"code":"442000108","name":"港口镇"},{"code":"442000109","name":"三角镇"},{"code":"442000110","name":"横栏镇"},{"code":"442000111","name":"南头镇"},{"code":"442000112","name":"阜沙镇"},{"code":"442000113","name":"南朗镇"},{"code":"442000114","name":"三乡镇"},{"code":"442000115","name":"板芙镇"},{"code":"442000116","name":"大涌镇"},{"code":"442000117","name":"神湾镇"}]},{"code":"4451","name":"潮州市","children":[{"code":"445102","name":"湘桥区"},{"code":"445103","name":"潮安区"},{"code":"445122","name":"饶平县"}]},{"code":"4452","name":"揭阳市","children":[{"code":"445202","name":"榕城区"},{"code":"445203","name":"揭东区"},{"code":"445222","name":"揭西县"},{"code":"445224","name":"惠来县"},{"code":"445281","name":"普宁市"}]},{"code":"4453","name":"云浮市","children":[{"code":"445302","name":"云城区"},{"code":"445303","name":"云安区"},{"code":"445321","name":"新兴县"},{"code":"445322","name":"郁南县"},{"code":"445381","name":"罗定市"}]}]},{"code":"45","name":"广西壮族自治区","children":[{"code":"4501","name":"南宁市","children":[{"code":"450102","name":"兴宁区"},{"code":"450103","name":"青秀区"},{"code":"450105","name":"江南区"},{"code":"450107","name":"西乡塘区"},{"code":"450108","name":"良庆区"},{"code":"450109","name":"邕宁区"},{"code":"450110","name":"武鸣区"},{"code":"450123","name":"隆安县"},{"code":"450124","name":"马山县"},{"code":"450125","name":"上林县"},{"code":"450126","name":"宾阳县"},{"code":"450127","name":"横县"}]},{"code":"4502","name":"柳州市","children":[{"code":"450202","name":"城中区"},{"code":"450203","name":"鱼峰区"},{"code":"450204","name":"柳南区"},{"code":"450205","name":"柳北区"},{"code":"450206","name":"柳江区"},{"code":"450222","name":"柳城县"},{"code":"450223","name":"鹿寨县"},{"code":"450224","name":"融安县"},{"code":"450225","name":"融水苗族自治县"},{"code":"450226","name":"三江侗族自治县"}]},{"code":"4503","name":"桂林市","children":[{"code":"450302","name":"秀峰区"},{"code":"450303","name":"叠彩区"},{"code":"450304","name":"象山区"},{"code":"450305","name":"七星区"},{"code":"450311","name":"雁山区"},{"code":"450312","name":"临桂区"},{"code":"450321","name":"阳朔县"},{"code":"450323","name":"灵川县"},{"code":"450324","name":"全州县"},{"code":"450325","name":"兴安县"},{"code":"450326","name":"永福县"},{"code":"450327","name":"灌阳县"},{"code":"450328","name":"龙胜各族自治县"},{"code":"450329","name":"资源县"},{"code":"450330","name":"平乐县"},{"code":"450331","name":"荔浦县"},{"code":"450332","name":"恭城瑶族自治县"}]},{"code":"4504","name":"梧州市","children":[{"code":"450403","name":"万秀区"},{"code":"450405","name":"长洲区"},{"code":"450406","name":"龙圩区"},{"code":"450421","name":"苍梧县"},{"code":"450422","name":"藤县"},{"code":"450423","name":"蒙山县"},{"code":"450481","name":"岑溪市"}]},{"code":"4505","name":"北海市","children":[{"code":"450502","name":"海城区"},{"code":"450503","name":"银海区"},{"code":"450512","name":"铁山港区"},{"code":"450521","name":"合浦县"}]},{"code":"4506","name":"防城港市","children":[{"code":"450602","name":"港口区"},{"code":"450603","name":"防城区"},{"code":"450621","name":"上思县"},{"code":"450681","name":"东兴市"}]},{"code":"4507","name":"钦州市","children":[{"code":"450702","name":"钦南区"},{"code":"450703","name":"钦北区"},{"code":"450721","name":"灵山县"},{"code":"450722","name":"浦北县"}]},{"code":"4508","name":"贵港市","children":[{"code":"450802","name":"港北区"},{"code":"450803","name":"港南区"},{"code":"450804","name":"覃塘区"},{"code":"450821","name":"平南县"},{"code":"450881","name":"桂平市"}]},{"code":"4509","name":"玉林市","children":[{"code":"450902","name":"玉州区"},{"code":"450903","name":"福绵区"},{"code":"450921","name":"容县"},{"code":"450922","name":"陆川县"},{"code":"450923","name":"博白县"},{"code":"450924","name":"兴业县"},{"code":"450981","name":"北流市"}]},{"code":"4510","name":"百色市","children":[{"code":"451002","name":"右江区"},{"code":"451021","name":"田阳县"},{"code":"451022","name":"田东县"},{"code":"451023","name":"平果县"},{"code":"451024","name":"德保县"},{"code":"451026","name":"那坡县"},{"code":"451027","name":"凌云县"},{"code":"451028","name":"乐业县"},{"code":"451029","name":"田林县"},{"code":"451030","name":"西林县"},{"code":"451031","name":"隆林各族自治县"},{"code":"451081","name":"靖西市"}]},{"code":"4511","name":"贺州市","children":[{"code":"451102","name":"八步区"},{"code":"451103","name":"平桂区"},{"code":"451121","name":"昭平县"},{"code":"451122","name":"钟山县"},{"code":"451123","name":"富川瑶族自治县"}]},{"code":"4512","name":"河池市","children":[{"code":"451202","name":"金城江区"},{"code":"451203","name":"宜州区"},{"code":"451221","name":"南丹县"},{"code":"451222","name":"天峨县"},{"code":"451223","name":"凤山县"},{"code":"451224","name":"东兰县"},{"code":"451225","name":"罗城仫佬族自治县"},{"code":"451226","name":"环江毛南族自治县"},{"code":"451227","name":"巴马瑶族自治县"},{"code":"451228","name":"都安瑶族自治县"},{"code":"451229","name":"大化瑶族自治县"}]},{"code":"4513","name":"来宾市","children":[{"code":"451302","name":"兴宾区"},{"code":"451321","name":"忻城县"},{"code":"451322","name":"象州县"},{"code":"451323","name":"武宣县"},{"code":"451324","name":"金秀瑶族自治县"},{"code":"451381","name":"合山市"}]},{"code":"4514","name":"崇左市","children":[{"code":"451402","name":"江州区"},{"code":"451421","name":"扶绥县"},{"code":"451422","name":"宁明县"},{"code":"451423","name":"龙州县"},{"code":"451424","name":"大新县"},{"code":"451425","name":"天等县"},{"code":"451481","name":"凭祥市"}]}]},{"code":"46","name":"海南省","children":[{"code":"4601","name":"海口市","children":[{"code":"460105","name":"秀英区"},{"code":"460106","name":"龙华区"},{"code":"460107","name":"琼山区"},{"code":"460108","name":"美兰区"}]},{"code":"4602","name":"三亚市","children":[{"code":"460202","name":"海棠区"},{"code":"460203","name":"吉阳区"},{"code":"460204","name":"天涯区"},{"code":"460205","name":"崖州区"}]},{"code":"4603","name":"三沙市","children":[{"code":"460321","name":"西沙群岛"},{"code":"460322","name":"南沙群岛"},{"code":"460323","name":"中沙群岛的岛礁及其海域"}]},{"code":"4604","name":"儋州市","children":[{"code":"460400100","name":"那大镇"},{"code":"460400101","name":"和庆镇"},{"code":"460400102","name":"南丰镇"},{"code":"460400103","name":"大成镇"},{"code":"460400104","name":"雅星镇"},{"code":"460400105","name":"兰洋镇"},{"code":"460400106","name":"光村镇"},{"code":"460400107","name":"木棠镇"},{"code":"460400108","name":"海头镇"},{"code":"460400109","name":"峨蔓镇"},{"code":"460400111","name":"王五镇"},{"code":"460400112","name":"白马井镇"},{"code":"460400113","name":"中和镇"},{"code":"460400114","name":"排浦镇"},{"code":"460400115","name":"东成镇"},{"code":"460400116","name":"新州镇"},{"code":"460400499","name":"洋浦经济开发区"},{"code":"460400500","name":"华南热作学院"}]},{"code":"4690","name":"省直辖县级行政区划","children":[{"code":"469001","name":"五指山市"},{"code":"469002","name":"琼海市"},{"code":"469005","name":"文昌市"},{"code":"469006","name":"万宁市"},{"code":"469007","name":"东方市"},{"code":"469021","name":"定安县"},{"code":"469022","name":"屯昌县"},{"code":"469023","name":"澄迈县"},{"code":"469024","name":"临高县"},{"code":"469025","name":"白沙黎族自治县"},{"code":"469026","name":"昌江黎族自治县"},{"code":"469027","name":"乐东黎族自治县"},{"code":"469028","name":"陵水黎族自治县"},{"code":"469029","name":"保亭黎族苗族自治县"},{"code":"469030","name":"琼中黎族苗族自治县"}]}]},{"code":"50","name":"重庆市","children":[{"code":"5001","name":"市辖区","children":[{"code":"500101","name":"万州区"},{"code":"500102","name":"涪陵区"},{"code":"500103","name":"渝中区"},{"code":"500104","name":"大渡口区"},{"code":"500105","name":"江北区"},{"code":"500106","name":"沙坪坝区"},{"code":"500107","name":"九龙坡区"},{"code":"500108","name":"南岸区"},{"code":"500109","name":"北碚区"},{"code":"500110","name":"綦江区"},{"code":"500111","name":"大足区"},{"code":"500112","name":"渝北区"},{"code":"500113","name":"巴南区"},{"code":"500114","name":"黔江区"},{"code":"500115","name":"长寿区"},{"code":"500116","name":"江津区"},{"code":"500117","name":"合川区"},{"code":"500118","name":"永川区"},{"code":"500119","name":"南川区"},{"code":"500120","name":"璧山区"},{"code":"500151","name":"铜梁区"},{"code":"500152","name":"潼南区"},{"code":"500153","name":"荣昌区"},{"code":"500154","name":"开州区"},{"code":"500155","name":"梁平区"},{"code":"500156","name":"武隆区"}]},{"code":"5002","name":"县","children":[{"code":"500229","name":"城口县"},{"code":"500230","name":"丰都县"},{"code":"500231","name":"垫江县"},{"code":"500233","name":"忠县"},{"code":"500235","name":"云阳县"},{"code":"500236","name":"奉节县"},{"code":"500237","name":"巫山县"},{"code":"500238","name":"巫溪县"},{"code":"500240","name":"石柱土家族自治县"},{"code":"500241","name":"秀山土家族苗族自治县"},{"code":"500242","name":"酉阳土家族苗族自治县"},{"code":"500243","name":"彭水苗族土家族自治县"}]}]},{"code":"51","name":"四川省","children":[{"code":"5101","name":"成都市","children":[{"code":"510104","name":"锦江区"},{"code":"510105","name":"青羊区"},{"code":"510106","name":"金牛区"},{"code":"510107","name":"武侯区"},{"code":"510108","name":"成华区"},{"code":"510112","name":"龙泉驿区"},{"code":"510113","name":"青白江区"},{"code":"510114","name":"新都区"},{"code":"510115","name":"温江区"},{"code":"510116","name":"双流区"},{"code":"510117","name":"郫都区"},{"code":"510121","name":"金堂县"},{"code":"510129","name":"大邑县"},{"code":"510131","name":"蒲江县"},{"code":"510132","name":"新津县"},{"code":"510181","name":"都江堰市"},{"code":"510182","name":"彭州市"},{"code":"510183","name":"邛崃市"},{"code":"510184","name":"崇州市"},{"code":"510185","name":"简阳市"}]},{"code":"5103","name":"自贡市","children":[{"code":"510302","name":"自流井区"},{"code":"510303","name":"贡井区"},{"code":"510304","name":"大安区"},{"code":"510311","name":"沿滩区"},{"code":"510321","name":"荣县"},{"code":"510322","name":"富顺县"}]},{"code":"5104","name":"攀枝花市","children":[{"code":"510402","name":"东区"},{"code":"510403","name":"西区"},{"code":"510411","name":"仁和区"},{"code":"510421","name":"米易县"},{"code":"510422","name":"盐边县"}]},{"code":"5105","name":"泸州市","children":[{"code":"510502","name":"江阳区"},{"code":"510503","name":"纳溪区"},{"code":"510504","name":"龙马潭区"},{"code":"510521","name":"泸县"},{"code":"510522","name":"合江县"},{"code":"510524","name":"叙永县"},{"code":"510525","name":"古蔺县"}]},{"code":"5106","name":"德阳市","children":[{"code":"510603","name":"旌阳区"},{"code":"510604","name":"罗江区"},{"code":"510623","name":"中江县"},{"code":"510681","name":"广汉市"},{"code":"510682","name":"什邡市"},{"code":"510683","name":"绵竹市"}]},{"code":"5107","name":"绵阳市","children":[{"code":"510703","name":"涪城区"},{"code":"510704","name":"游仙区"},{"code":"510705","name":"安州区"},{"code":"510722","name":"三台县"},{"code":"510723","name":"盐亭县"},{"code":"510725","name":"梓潼县"},{"code":"510726","name":"北川羌族自治县"},{"code":"510727","name":"平武县"},{"code":"510781","name":"江油市"}]},{"code":"5108","name":"广元市","children":[{"code":"510802","name":"利州区"},{"code":"510811","name":"昭化区"},{"code":"510812","name":"朝天区"},{"code":"510821","name":"旺苍县"},{"code":"510822","name":"青川县"},{"code":"510823","name":"剑阁县"},{"code":"510824","name":"苍溪县"}]},{"code":"5109","name":"遂宁市","children":[{"code":"510903","name":"船山区"},{"code":"510904","name":"安居区"},{"code":"510921","name":"蓬溪县"},{"code":"510922","name":"射洪县"},{"code":"510923","name":"大英县"}]},{"code":"5110","name":"内江市","children":[{"code":"511002","name":"市中区"},{"code":"511011","name":"东兴区"},{"code":"511024","name":"威远县"},{"code":"511025","name":"资中县"},{"code":"511071","name":"内江经济开发区"},{"code":"511083","name":"隆昌市"}]},{"code":"5111","name":"乐山市","children":[{"code":"511102","name":"市中区"},{"code":"511111","name":"沙湾区"},{"code":"511112","name":"五通桥区"},{"code":"511113","name":"金口河区"},{"code":"511123","name":"犍为县"},{"code":"511124","name":"井研县"},{"code":"511126","name":"夹江县"},{"code":"511129","name":"沐川县"},{"code":"511132","name":"峨边彝族自治县"},{"code":"511133","name":"马边彝族自治县"},{"code":"511181","name":"峨眉山市"}]},{"code":"5113","name":"南充市","children":[{"code":"511302","name":"顺庆区"},{"code":"511303","name":"高坪区"},{"code":"511304","name":"嘉陵区"},{"code":"511321","name":"南部县"},{"code":"511322","name":"营山县"},{"code":"511323","name":"蓬安县"},{"code":"511324","name":"仪陇县"},{"code":"511325","name":"西充县"},{"code":"511381","name":"阆中市"}]},{"code":"5114","name":"眉山市","children":[{"code":"511402","name":"东坡区"},{"code":"511403","name":"彭山区"},{"code":"511421","name":"仁寿县"},{"code":"511423","name":"洪雅县"},{"code":"511424","name":"丹棱县"},{"code":"511425","name":"青神县"}]},{"code":"5115","name":"宜宾市","children":[{"code":"511502","name":"翠屏区"},{"code":"511503","name":"南溪区"},{"code":"511521","name":"宜宾县"},{"code":"511523","name":"江安县"},{"code":"511524","name":"长宁县"},{"code":"511525","name":"高县"},{"code":"511526","name":"珙县"},{"code":"511527","name":"筠连县"},{"code":"511528","name":"兴文县"},{"code":"511529","name":"屏山县"}]},{"code":"5116","name":"广安市","children":[{"code":"511602","name":"广安区"},{"code":"511603","name":"前锋区"},{"code":"511621","name":"岳池县"},{"code":"511622","name":"武胜县"},{"code":"511623","name":"邻水县"},{"code":"511681","name":"华蓥市"}]},{"code":"5117","name":"达州市","children":[{"code":"511702","name":"通川区"},{"code":"511703","name":"达川区"},{"code":"511722","name":"宣汉县"},{"code":"511723","name":"开江县"},{"code":"511724","name":"大竹县"},{"code":"511725","name":"渠县"},{"code":"511771","name":"达州经济开发区"},{"code":"511781","name":"万源市"}]},{"code":"5118","name":"雅安市","children":[{"code":"511802","name":"雨城区"},{"code":"511803","name":"名山区"},{"code":"511822","name":"荥经县"},{"code":"511823","name":"汉源县"},{"code":"511824","name":"石棉县"},{"code":"511825","name":"天全县"},{"code":"511826","name":"芦山县"},{"code":"511827","name":"宝兴县"}]},{"code":"5119","name":"巴中市","children":[{"code":"511902","name":"巴州区"},{"code":"511903","name":"恩阳区"},{"code":"511921","name":"通江县"},{"code":"511922","name":"南江县"},{"code":"511923","name":"平昌县"},{"code":"511971","name":"巴中经济开发区"}]},{"code":"5120","name":"资阳市","children":[{"code":"512002","name":"雁江区"},{"code":"512021","name":"安岳县"},{"code":"512022","name":"乐至县"}]},{"code":"5132","name":"阿坝藏族羌族自治州","children":[{"code":"513201","name":"马尔康市"},{"code":"513221","name":"汶川县"},{"code":"513222","name":"理县"},{"code":"513223","name":"茂县"},{"code":"513224","name":"松潘县"},{"code":"513225","name":"九寨沟县"},{"code":"513226","name":"金川县"},{"code":"513227","name":"小金县"},{"code":"513228","name":"黑水县"},{"code":"513230","name":"壤塘县"},{"code":"513231","name":"阿坝县"},{"code":"513232","name":"若尔盖县"},{"code":"513233","name":"红原县"}]},{"code":"5133","name":"甘孜藏族自治州","children":[{"code":"513301","name":"康定市"},{"code":"513322","name":"泸定县"},{"code":"513323","name":"丹巴县"},{"code":"513324","name":"九龙县"},{"code":"513325","name":"雅江县"},{"code":"513326","name":"道孚县"},{"code":"513327","name":"炉霍县"},{"code":"513328","name":"甘孜县"},{"code":"513329","name":"新龙县"},{"code":"513330","name":"德格县"},{"code":"513331","name":"白玉县"},{"code":"513332","name":"石渠县"},{"code":"513333","name":"色达县"},{"code":"513334","name":"理塘县"},{"code":"513335","name":"巴塘县"},{"code":"513336","name":"乡城县"},{"code":"513337","name":"稻城县"},{"code":"513338","name":"得荣县"}]},{"code":"5134","name":"凉山彝族自治州","children":[{"code":"513401","name":"西昌市"},{"code":"513422","name":"木里藏族自治县"},{"code":"513423","name":"盐源县"},{"code":"513424","name":"德昌县"},{"code":"513425","name":"会理县"},{"code":"513426","name":"会东县"},{"code":"513427","name":"宁南县"},{"code":"513428","name":"普格县"},{"code":"513429","name":"布拖县"},{"code":"513430","name":"金阳县"},{"code":"513431","name":"昭觉县"},{"code":"513432","name":"喜德县"},{"code":"513433","name":"冕宁县"},{"code":"513434","name":"越西县"},{"code":"513435","name":"甘洛县"},{"code":"513436","name":"美姑县"},{"code":"513437","name":"雷波县"}]}]},{"code":"52","name":"贵州省","children":[{"code":"5201","name":"贵阳市","children":[{"code":"520102","name":"南明区"},{"code":"520103","name":"云岩区"},{"code":"520111","name":"花溪区"},{"code":"520112","name":"乌当区"},{"code":"520113","name":"白云区"},{"code":"520115","name":"观山湖区"},{"code":"520121","name":"开阳县"},{"code":"520122","name":"息烽县"},{"code":"520123","name":"修文县"},{"code":"520181","name":"清镇市"}]},{"code":"5202","name":"六盘水市","children":[{"code":"520201","name":"钟山区"},{"code":"520203","name":"六枝特区"},{"code":"520221","name":"水城县"},{"code":"520281","name":"盘州市"}]},{"code":"5203","name":"遵义市","children":[{"code":"520302","name":"红花岗区"},{"code":"520303","name":"汇川区"},{"code":"520304","name":"播州区"},{"code":"520322","name":"桐梓县"},{"code":"520323","name":"绥阳县"},{"code":"520324","name":"正安县"},{"code":"520325","name":"道真仡佬族苗族自治县"},{"code":"520326","name":"务川仡佬族苗族自治县"},{"code":"520327","name":"凤冈县"},{"code":"520328","name":"湄潭县"},{"code":"520329","name":"余庆县"},{"code":"520330","name":"习水县"},{"code":"520381","name":"赤水市"},{"code":"520382","name":"仁怀市"}]},{"code":"5204","name":"安顺市","children":[{"code":"520402","name":"西秀区"},{"code":"520403","name":"平坝区"},{"code":"520422","name":"普定县"},{"code":"520423","name":"镇宁布依族苗族自治县"},{"code":"520424","name":"关岭布依族苗族自治县"},{"code":"520425","name":"紫云苗族布依族自治县"}]},{"code":"5205","name":"毕节市","children":[{"code":"520502","name":"七星关区"},{"code":"520521","name":"大方县"},{"code":"520522","name":"黔西县"},{"code":"520523","name":"金沙县"},{"code":"520524","name":"织金县"},{"code":"520525","name":"纳雍县"},{"code":"520526","name":"威宁彝族回族苗族自治县"},{"code":"520527","name":"赫章县"}]},{"code":"5206","name":"铜仁市","children":[{"code":"520602","name":"碧江区"},{"code":"520603","name":"万山区"},{"code":"520621","name":"江口县"},{"code":"520622","name":"玉屏侗族自治县"},{"code":"520623","name":"石阡县"},{"code":"520624","name":"思南县"},{"code":"520625","name":"印江土家族苗族自治县"},{"code":"520626","name":"德江县"},{"code":"520627","name":"沿河土家族自治县"},{"code":"520628","name":"松桃苗族自治县"}]},{"code":"5223","name":"黔西南布依族苗族自治州","children":[{"code":"522301","name":"兴义市"},{"code":"522322","name":"兴仁县"},{"code":"522323","name":"普安县"},{"code":"522324","name":"晴隆县"},{"code":"522325","name":"贞丰县"},{"code":"522326","name":"望谟县"},{"code":"522327","name":"册亨县"},{"code":"522328","name":"安龙县"}]},{"code":"5226","name":"黔东南苗族侗族自治州","children":[{"code":"522601","name":"凯里市"},{"code":"522622","name":"黄平县"},{"code":"522623","name":"施秉县"},{"code":"522624","name":"三穗县"},{"code":"522625","name":"镇远县"},{"code":"522626","name":"岑巩县"},{"code":"522627","name":"天柱县"},{"code":"522628","name":"锦屏县"},{"code":"522629","name":"剑河县"},{"code":"522630","name":"台江县"},{"code":"522631","name":"黎平县"},{"code":"522632","name":"榕江县"},{"code":"522633","name":"从江县"},{"code":"522634","name":"雷山县"},{"code":"522635","name":"麻江县"},{"code":"522636","name":"丹寨县"}]},{"code":"5227","name":"黔南布依族苗族自治州","children":[{"code":"522701","name":"都匀市"},{"code":"522702","name":"福泉市"},{"code":"522722","name":"荔波县"},{"code":"522723","name":"贵定县"},{"code":"522725","name":"瓮安县"},{"code":"522726","name":"独山县"},{"code":"522727","name":"平塘县"},{"code":"522728","name":"罗甸县"},{"code":"522729","name":"长顺县"},{"code":"522730","name":"龙里县"},{"code":"522731","name":"惠水县"},{"code":"522732","name":"三都水族自治县"}]}]},{"code":"53","name":"云南省","children":[{"code":"5301","name":"昆明市","children":[{"code":"530102","name":"五华区"},{"code":"530103","name":"盘龙区"},{"code":"530111","name":"官渡区"},{"code":"530112","name":"西山区"},{"code":"530113","name":"东川区"},{"code":"530114","name":"呈贡区"},{"code":"530115","name":"晋宁区"},{"code":"530124","name":"富民县"},{"code":"530125","name":"宜良县"},{"code":"530126","name":"石林彝族自治县"},{"code":"530127","name":"嵩明县"},{"code":"530128","name":"禄劝彝族苗族自治县"},{"code":"530129","name":"寻甸回族彝族自治县"},{"code":"530181","name":"安宁市"}]},{"code":"5303","name":"曲靖市","children":[{"code":"530302","name":"麒麟区"},{"code":"530303","name":"沾益区"},{"code":"530321","name":"马龙县"},{"code":"530322","name":"陆良县"},{"code":"530323","name":"师宗县"},{"code":"530324","name":"罗平县"},{"code":"530325","name":"富源县"},{"code":"530326","name":"会泽县"},{"code":"530381","name":"宣威市"}]},{"code":"5304","name":"玉溪市","children":[{"code":"530402","name":"红塔区"},{"code":"530403","name":"江川区"},{"code":"530422","name":"澄江县"},{"code":"530423","name":"通海县"},{"code":"530424","name":"华宁县"},{"code":"530425","name":"易门县"},{"code":"530426","name":"峨山彝族自治县"},{"code":"530427","name":"新平彝族傣族自治县"},{"code":"530428","name":"元江哈尼族彝族傣族自治县"}]},{"code":"5305","name":"保山市","children":[{"code":"530502","name":"隆阳区"},{"code":"530521","name":"施甸县"},{"code":"530523","name":"龙陵县"},{"code":"530524","name":"昌宁县"},{"code":"530581","name":"腾冲市"}]},{"code":"5306","name":"昭通市","children":[{"code":"530602","name":"昭阳区"},{"code":"530621","name":"鲁甸县"},{"code":"530622","name":"巧家县"},{"code":"530623","name":"盐津县"},{"code":"530624","name":"大关县"},{"code":"530625","name":"永善县"},{"code":"530626","name":"绥江县"},{"code":"530627","name":"镇雄县"},{"code":"530628","name":"彝良县"},{"code":"530629","name":"威信县"},{"code":"530630","name":"水富县"}]},{"code":"5307","name":"丽江市","children":[{"code":"530702","name":"古城区"},{"code":"530721","name":"玉龙纳西族自治县"},{"code":"530722","name":"永胜县"},{"code":"530723","name":"华坪县"},{"code":"530724","name":"宁蒗彝族自治县"}]},{"code":"5308","name":"普洱市","children":[{"code":"530802","name":"思茅区"},{"code":"530821","name":"宁洱哈尼族彝族自治县"},{"code":"530822","name":"墨江哈尼族自治县"},{"code":"530823","name":"景东彝族自治县"},{"code":"530824","name":"景谷傣族彝族自治县"},{"code":"530825","name":"镇沅彝族哈尼族拉祜族自治县"},{"code":"530826","name":"江城哈尼族彝族自治县"},{"code":"530827","name":"孟连傣族拉祜族佤族自治县"},{"code":"530828","name":"澜沧拉祜族自治县"},{"code":"530829","name":"西盟佤族自治县"}]},{"code":"5309","name":"临沧市","children":[{"code":"530902","name":"临翔区"},{"code":"530921","name":"凤庆县"},{"code":"530922","name":"云县"},{"code":"530923","name":"永德县"},{"code":"530924","name":"镇康县"},{"code":"530925","name":"双江拉祜族佤族布朗族傣族自治县"},{"code":"530926","name":"耿马傣族佤族自治县"},{"code":"530927","name":"沧源佤族自治县"}]},{"code":"5323","name":"楚雄彝族自治州","children":[{"code":"532301","name":"楚雄市"},{"code":"532322","name":"双柏县"},{"code":"532323","name":"牟定县"},{"code":"532324","name":"南华县"},{"code":"532325","name":"姚安县"},{"code":"532326","name":"大姚县"},{"code":"532327","name":"永仁县"},{"code":"532328","name":"元谋县"},{"code":"532329","name":"武定县"},{"code":"532331","name":"禄丰县"}]},{"code":"5325","name":"红河哈尼族彝族自治州","children":[{"code":"532501","name":"个旧市"},{"code":"532502","name":"开远市"},{"code":"532503","name":"蒙自市"},{"code":"532504","name":"弥勒市"},{"code":"532523","name":"屏边苗族自治县"},{"code":"532524","name":"建水县"},{"code":"532525","name":"石屏县"},{"code":"532527","name":"泸西县"},{"code":"532528","name":"元阳县"},{"code":"532529","name":"红河县"},{"code":"532530","name":"金平苗族瑶族傣族自治县"},{"code":"532531","name":"绿春县"},{"code":"532532","name":"河口瑶族自治县"}]},{"code":"5326","name":"文山壮族苗族自治州","children":[{"code":"532601","name":"文山市"},{"code":"532622","name":"砚山县"},{"code":"532623","name":"西畴县"},{"code":"532624","name":"麻栗坡县"},{"code":"532625","name":"马关县"},{"code":"532626","name":"丘北县"},{"code":"532627","name":"广南县"},{"code":"532628","name":"富宁县"}]},{"code":"5328","name":"西双版纳傣族自治州","children":[{"code":"532801","name":"景洪市"},{"code":"532822","name":"勐海县"},{"code":"532823","name":"勐腊县"}]},{"code":"5329","name":"大理白族自治州","children":[{"code":"532901","name":"大理市"},{"code":"532922","name":"漾濞彝族自治县"},{"code":"532923","name":"祥云县"},{"code":"532924","name":"宾川县"},{"code":"532925","name":"弥渡县"},{"code":"532926","name":"南涧彝族自治县"},{"code":"532927","name":"巍山彝族回族自治县"},{"code":"532928","name":"永平县"},{"code":"532929","name":"云龙县"},{"code":"532930","name":"洱源县"},{"code":"532931","name":"剑川县"},{"code":"532932","name":"鹤庆县"}]},{"code":"5331","name":"德宏傣族景颇族自治州","children":[{"code":"533102","name":"瑞丽市"},{"code":"533103","name":"芒市"},{"code":"533122","name":"梁河县"},{"code":"533123","name":"盈江县"},{"code":"533124","name":"陇川县"}]},{"code":"5333","name":"怒江傈僳族自治州","children":[{"code":"533301","name":"泸水市"},{"code":"533323","name":"福贡县"},{"code":"533324","name":"贡山独龙族怒族自治县"},{"code":"533325","name":"兰坪白族普米族自治县"}]},{"code":"5334","name":"迪庆藏族自治州","children":[{"code":"533401","name":"香格里拉市"},{"code":"533422","name":"德钦县"},{"code":"533423","name":"维西傈僳族自治县"}]}]},{"code":"54","name":"西藏自治区","children":[{"code":"5401","name":"拉萨市","children":[{"code":"540102","name":"城关区"},{"code":"540103","name":"堆龙德庆区"},{"code":"540121","name":"林周县"},{"code":"540122","name":"当雄县"},{"code":"540123","name":"尼木县"},{"code":"540124","name":"曲水县"},{"code":"540126","name":"达孜县"},{"code":"540127","name":"墨竹工卡县"},{"code":"540171","name":"格尔木藏青工业园区"},{"code":"540172","name":"拉萨经济技术开发区"},{"code":"540173","name":"西藏文化旅游创意园区"},{"code":"540174","name":"达孜工业园区"}]},{"code":"5402","name":"日喀则市","children":[{"code":"540202","name":"桑珠孜区"},{"code":"540221","name":"南木林县"},{"code":"540222","name":"江孜县"},{"code":"540223","name":"定日县"},{"code":"540224","name":"萨迦县"},{"code":"540225","name":"拉孜县"},{"code":"540226","name":"昂仁县"},{"code":"540227","name":"谢通门县"},{"code":"540228","name":"白朗县"},{"code":"540229","name":"仁布县"},{"code":"540230","name":"康马县"},{"code":"540231","name":"定结县"},{"code":"540232","name":"仲巴县"},{"code":"540233","name":"亚东县"},{"code":"540234","name":"吉隆县"},{"code":"540235","name":"聂拉木县"},{"code":"540236","name":"萨嘎县"},{"code":"540237","name":"岗巴县"}]},{"code":"5403","name":"昌都市","children":[{"code":"540302","name":"卡若区"},{"code":"540321","name":"江达县"},{"code":"540322","name":"贡觉县"},{"code":"540323","name":"类乌齐县"},{"code":"540324","name":"丁青县"},{"code":"540325","name":"察雅县"},{"code":"540326","name":"八宿县"},{"code":"540327","name":"左贡县"},{"code":"540328","name":"芒康县"},{"code":"540329","name":"洛隆县"},{"code":"540330","name":"边坝县"}]},{"code":"5404","name":"林芝市","children":[{"code":"540402","name":"巴宜区"},{"code":"540421","name":"工布江达县"},{"code":"540422","name":"米林县"},{"code":"540423","name":"墨脱县"},{"code":"540424","name":"波密县"},{"code":"540425","name":"察隅县"},{"code":"540426","name":"朗县"}]},{"code":"5405","name":"山南市","children":[{"code":"540502","name":"乃东区"},{"code":"540521","name":"扎囊县"},{"code":"540522","name":"贡嘎县"},{"code":"540523","name":"桑日县"},{"code":"540524","name":"琼结县"},{"code":"540525","name":"曲松县"},{"code":"540526","name":"措美县"},{"code":"540527","name":"洛扎县"},{"code":"540528","name":"加查县"},{"code":"540529","name":"隆子县"},{"code":"540530","name":"错那县"},{"code":"540531","name":"浪卡子县"}]},{"code":"5424","name":"那曲地区","children":[{"code":"542421","name":"那曲县"},{"code":"542422","name":"嘉黎县"},{"code":"542423","name":"比如县"},{"code":"542424","name":"聂荣县"},{"code":"542425","name":"安多县"},{"code":"542426","name":"申扎县"},{"code":"542427","name":"索县"},{"code":"542428","name":"班戈县"},{"code":"542429","name":"巴青县"},{"code":"542430","name":"尼玛县"},{"code":"542431","name":"双湖县"}]},{"code":"5425","name":"阿里地区","children":[{"code":"542521","name":"普兰县"},{"code":"542522","name":"札达县"},{"code":"542523","name":"噶尔县"},{"code":"542524","name":"日土县"},{"code":"542525","name":"革吉县"},{"code":"542526","name":"改则县"},{"code":"542527","name":"措勤县"}]}]},{"code":"61","name":"陕西省","children":[{"code":"6101","name":"西安市","children":[{"code":"610102","name":"新城区"},{"code":"610103","name":"碑林区"},{"code":"610104","name":"莲湖区"},{"code":"610111","name":"灞桥区"},{"code":"610112","name":"未央区"},{"code":"610113","name":"雁塔区"},{"code":"610114","name":"阎良区"},{"code":"610115","name":"临潼区"},{"code":"610116","name":"长安区"},{"code":"610117","name":"高陵区"},{"code":"610118","name":"鄠邑区"},{"code":"610122","name":"蓝田县"},{"code":"610124","name":"周至县"}]},{"code":"6102","name":"铜川市","children":[{"code":"610202","name":"王益区"},{"code":"610203","name":"印台区"},{"code":"610204","name":"耀州区"},{"code":"610222","name":"宜君县"}]},{"code":"6103","name":"宝鸡市","children":[{"code":"610302","name":"渭滨区"},{"code":"610303","name":"金台区"},{"code":"610304","name":"陈仓区"},{"code":"610322","name":"凤翔县"},{"code":"610323","name":"岐山县"},{"code":"610324","name":"扶风县"},{"code":"610326","name":"眉县"},{"code":"610327","name":"陇县"},{"code":"610328","name":"千阳县"},{"code":"610329","name":"麟游县"},{"code":"610330","name":"凤县"},{"code":"610331","name":"太白县"}]},{"code":"6104","name":"咸阳市","children":[{"code":"610402","name":"秦都区"},{"code":"610403","name":"杨陵区"},{"code":"610404","name":"渭城区"},{"code":"610422","name":"三原县"},{"code":"610423","name":"泾阳县"},{"code":"610424","name":"乾县"},{"code":"610425","name":"礼泉县"},{"code":"610426","name":"永寿县"},{"code":"610427","name":"彬县"},{"code":"610428","name":"长武县"},{"code":"610429","name":"旬邑县"},{"code":"610430","name":"淳化县"},{"code":"610431","name":"武功县"},{"code":"610481","name":"兴平市"}]},{"code":"6105","name":"渭南市","children":[{"code":"610502","name":"临渭区"},{"code":"610503","name":"华州区"},{"code":"610522","name":"潼关县"},{"code":"610523","name":"大荔县"},{"code":"610524","name":"合阳县"},{"code":"610525","name":"澄城县"},{"code":"610526","name":"蒲城县"},{"code":"610527","name":"白水县"},{"code":"610528","name":"富平县"},{"code":"610581","name":"韩城市"},{"code":"610582","name":"华阴市"}]},{"code":"6106","name":"延安市","children":[{"code":"610602","name":"宝塔区"},{"code":"610603","name":"安塞区"},{"code":"610621","name":"延长县"},{"code":"610622","name":"延川县"},{"code":"610623","name":"子长县"},{"code":"610625","name":"志丹县"},{"code":"610626","name":"吴起县"},{"code":"610627","name":"甘泉县"},{"code":"610628","name":"富县"},{"code":"610629","name":"洛川县"},{"code":"610630","name":"宜川县"},{"code":"610631","name":"黄龙县"},{"code":"610632","name":"黄陵县"}]},{"code":"6107","name":"汉中市","children":[{"code":"610702","name":"汉台区"},{"code":"610703","name":"南郑区"},{"code":"610722","name":"城固县"},{"code":"610723","name":"洋县"},{"code":"610724","name":"西乡县"},{"code":"610725","name":"勉县"},{"code":"610726","name":"宁强县"},{"code":"610727","name":"略阳县"},{"code":"610728","name":"镇巴县"},{"code":"610729","name":"留坝县"},{"code":"610730","name":"佛坪县"}]},{"code":"6108","name":"榆林市","children":[{"code":"610802","name":"榆阳区"},{"code":"610803","name":"横山区"},{"code":"610822","name":"府谷县"},{"code":"610824","name":"靖边县"},{"code":"610825","name":"定边县"},{"code":"610826","name":"绥德县"},{"code":"610827","name":"米脂县"},{"code":"610828","name":"佳县"},{"code":"610829","name":"吴堡县"},{"code":"610830","name":"清涧县"},{"code":"610831","name":"子洲县"},{"code":"610881","name":"神木市"}]},{"code":"6109","name":"安康市","children":[{"code":"610902","name":"汉滨区"},{"code":"610921","name":"汉阴县"},{"code":"610922","name":"石泉县"},{"code":"610923","name":"宁陕县"},{"code":"610924","name":"紫阳县"},{"code":"610925","name":"岚皋县"},{"code":"610926","name":"平利县"},{"code":"610927","name":"镇坪县"},{"code":"610928","name":"旬阳县"},{"code":"610929","name":"白河县"}]},{"code":"6110","name":"商洛市","children":[{"code":"611002","name":"商州区"},{"code":"611021","name":"洛南县"},{"code":"611022","name":"丹凤县"},{"code":"611023","name":"商南县"},{"code":"611024","name":"山阳县"},{"code":"611025","name":"镇安县"},{"code":"611026","name":"柞水县"}]}]},{"code":"62","name":"甘肃省","children":[{"code":"6201","name":"兰州市","children":[{"code":"620102","name":"城关区"},{"code":"620103","name":"七里河区"},{"code":"620104","name":"西固区"},{"code":"620105","name":"安宁区"},{"code":"620111","name":"红古区"},{"code":"620121","name":"永登县"},{"code":"620122","name":"皋兰县"},{"code":"620123","name":"榆中县"},{"code":"620171","name":"兰州新区"}]},{"code":"6202","name":"嘉峪关市","children":[{"code":"620201100","name":"新城镇"},{"code":"620201101","name":"峪泉镇"},{"code":"620201102","name":"文殊镇"},{"code":"620201401","name":"雄关区"},{"code":"620201402","name":"镜铁区"},{"code":"620201403","name":"长城区"}]},{"code":"6203","name":"金昌市","children":[{"code":"620302","name":"金川区"},{"code":"620321","name":"永昌县"}]},{"code":"6204","name":"白银市","children":[{"code":"620402","name":"白银区"},{"code":"620403","name":"平川区"},{"code":"620421","name":"靖远县"},{"code":"620422","name":"会宁县"},{"code":"620423","name":"景泰县"}]},{"code":"6205","name":"天水市","children":[{"code":"620502","name":"秦州区"},{"code":"620503","name":"麦积区"},{"code":"620521","name":"清水县"},{"code":"620522","name":"秦安县"},{"code":"620523","name":"甘谷县"},{"code":"620524","name":"武山县"},{"code":"620525","name":"张家川回族自治县"}]},{"code":"6206","name":"武威市","children":[{"code":"620602","name":"凉州区"},{"code":"620621","name":"民勤县"},{"code":"620622","name":"古浪县"},{"code":"620623","name":"天祝藏族自治县"}]},{"code":"6207","name":"张掖市","children":[{"code":"620702","name":"甘州区"},{"code":"620721","name":"肃南裕固族自治县"},{"code":"620722","name":"民乐县"},{"code":"620723","name":"临泽县"},{"code":"620724","name":"高台县"},{"code":"620725","name":"山丹县"}]},{"code":"6208","name":"平凉市","children":[{"code":"620802","name":"崆峒区"},{"code":"620821","name":"泾川县"},{"code":"620822","name":"灵台县"},{"code":"620823","name":"崇信县"},{"code":"620824","name":"华亭县"},{"code":"620825","name":"庄浪县"},{"code":"620826","name":"静宁县"},{"code":"620871","name":"平凉工业园区"}]},{"code":"6209","name":"酒泉市","children":[{"code":"620902","name":"肃州区"},{"code":"620921","name":"金塔县"},{"code":"620922","name":"瓜州县"},{"code":"620923","name":"肃北蒙古族自治县"},{"code":"620924","name":"阿克塞哈萨克族自治县"},{"code":"620981","name":"玉门市"},{"code":"620982","name":"敦煌市"}]},{"code":"6210","name":"庆阳市","children":[{"code":"621002","name":"西峰区"},{"code":"621021","name":"庆城县"},{"code":"621022","name":"环县"},{"code":"621023","name":"华池县"},{"code":"621024","name":"合水县"},{"code":"621025","name":"正宁县"},{"code":"621026","name":"宁县"},{"code":"621027","name":"镇原县"}]},{"code":"6211","name":"定西市","children":[{"code":"621102","name":"安定区"},{"code":"621121","name":"通渭县"},{"code":"621122","name":"陇西县"},{"code":"621123","name":"渭源县"},{"code":"621124","name":"临洮县"},{"code":"621125","name":"漳县"},{"code":"621126","name":"岷县"}]},{"code":"6212","name":"陇南市","children":[{"code":"621202","name":"武都区"},{"code":"621221","name":"成县"},{"code":"621222","name":"文县"},{"code":"621223","name":"宕昌县"},{"code":"621224","name":"康县"},{"code":"621225","name":"西和县"},{"code":"621226","name":"礼县"},{"code":"621227","name":"徽县"},{"code":"621228","name":"两当县"}]},{"code":"6229","name":"临夏回族自治州","children":[{"code":"622901","name":"临夏市"},{"code":"622921","name":"临夏县"},{"code":"622922","name":"康乐县"},{"code":"622923","name":"永靖县"},{"code":"622924","name":"广河县"},{"code":"622925","name":"和政县"},{"code":"622926","name":"东乡族自治县"},{"code":"622927","name":"积石山保安族东乡族撒拉族自治县"}]},{"code":"6230","name":"甘南藏族自治州","children":[{"code":"623001","name":"合作市"},{"code":"623021","name":"临潭县"},{"code":"623022","name":"卓尼县"},{"code":"623023","name":"舟曲县"},{"code":"623024","name":"迭部县"},{"code":"623025","name":"玛曲县"},{"code":"623026","name":"碌曲县"},{"code":"623027","name":"夏河县"}]}]},{"code":"63","name":"青海省","children":[{"code":"6301","name":"西宁市","children":[{"code":"630102","name":"城东区"},{"code":"630103","name":"城中区"},{"code":"630104","name":"城西区"},{"code":"630105","name":"城北区"},{"code":"630121","name":"大通回族土族自治县"},{"code":"630122","name":"湟中县"},{"code":"630123","name":"湟源县"}]},{"code":"6302","name":"海东市","children":[{"code":"630202","name":"乐都区"},{"code":"630203","name":"平安区"},{"code":"630222","name":"民和回族土族自治县"},{"code":"630223","name":"互助土族自治县"},{"code":"630224","name":"化隆回族自治县"},{"code":"630225","name":"循化撒拉族自治县"}]},{"code":"6322","name":"海北藏族自治州","children":[{"code":"632221","name":"门源回族自治县"},{"code":"632222","name":"祁连县"},{"code":"632223","name":"海晏县"},{"code":"632224","name":"刚察县"}]},{"code":"6323","name":"黄南藏族自治州","children":[{"code":"632321","name":"同仁县"},{"code":"632322","name":"尖扎县"},{"code":"632323","name":"泽库县"},{"code":"632324","name":"河南蒙古族自治县"}]},{"code":"6325","name":"海南藏族自治州","children":[{"code":"632521","name":"共和县"},{"code":"632522","name":"同德县"},{"code":"632523","name":"贵德县"},{"code":"632524","name":"兴海县"},{"code":"632525","name":"贵南县"}]},{"code":"6326","name":"果洛藏族自治州","children":[{"code":"632621","name":"玛沁县"},{"code":"632622","name":"班玛县"},{"code":"632623","name":"甘德县"},{"code":"632624","name":"达日县"},{"code":"632625","name":"久治县"},{"code":"632626","name":"玛多县"}]},{"code":"6327","name":"玉树藏族自治州","children":[{"code":"632701","name":"玉树市"},{"code":"632722","name":"杂多县"},{"code":"632723","name":"称多县"},{"code":"632724","name":"治多县"},{"code":"632725","name":"囊谦县"},{"code":"632726","name":"曲麻莱县"}]},{"code":"6328","name":"海西蒙古族藏族自治州","children":[{"code":"632801","name":"格尔木市"},{"code":"632802","name":"德令哈市"},{"code":"632821","name":"乌兰县"},{"code":"632822","name":"都兰县"},{"code":"632823","name":"天峻县"},{"code":"632857","name":"大柴旦行政委员会"},{"code":"632858","name":"冷湖行政委员会"},{"code":"632859","name":"茫崖行政委员会"}]}]},{"code":"64","name":"宁夏回族自治区","children":[{"code":"6401","name":"银川市","children":[{"code":"640104","name":"兴庆区"},{"code":"640105","name":"西夏区"},{"code":"640106","name":"金凤区"},{"code":"640121","name":"永宁县"},{"code":"640122","name":"贺兰县"},{"code":"640181","name":"灵武市"}]},{"code":"6402","name":"石嘴山市","children":[{"code":"640202","name":"大武口区"},{"code":"640205","name":"惠农区"},{"code":"640221","name":"平罗县"}]},{"code":"6403","name":"吴忠市","children":[{"code":"640302","name":"利通区"},{"code":"640303","name":"红寺堡区"},{"code":"640323","name":"盐池县"},{"code":"640324","name":"同心县"},{"code":"640381","name":"青铜峡市"}]},{"code":"6404","name":"固原市","children":[{"code":"640402","name":"原州区"},{"code":"640422","name":"西吉县"},{"code":"640423","name":"隆德县"},{"code":"640424","name":"泾源县"},{"code":"640425","name":"彭阳县"}]},{"code":"6405","name":"中卫市","children":[{"code":"640502","name":"沙坡头区"},{"code":"640521","name":"中宁县"},{"code":"640522","name":"海原县"}]}]},{"code":"65","name":"新疆维吾尔自治区","children":[{"code":"6501","name":"乌鲁木齐市","children":[{"code":"650102","name":"天山区"},{"code":"650103","name":"沙依巴克区"},{"code":"650104","name":"新市区"},{"code":"650105","name":"水磨沟区"},{"code":"650106","name":"头屯河区"},{"code":"650107","name":"达坂城区"},{"code":"650109","name":"米东区"},{"code":"650121","name":"乌鲁木齐县"},{"code":"650171","name":"乌鲁木齐经济技术开发区"},{"code":"650172","name":"乌鲁木齐高新技术产业开发区"}]},{"code":"6502","name":"克拉玛依市","children":[{"code":"650202","name":"独山子区"},{"code":"650203","name":"克拉玛依区"},{"code":"650204","name":"白碱滩区"},{"code":"650205","name":"乌尔禾区"}]},{"code":"6504","name":"吐鲁番市","children":[{"code":"650402","name":"高昌区"},{"code":"650421","name":"鄯善县"},{"code":"650422","name":"托克逊县"}]},{"code":"6505","name":"哈密市","children":[{"code":"650502","name":"伊州区"},{"code":"650521","name":"巴里坤哈萨克自治县"},{"code":"650522","name":"伊吾县"}]},{"code":"6523","name":"昌吉回族自治州","children":[{"code":"652301","name":"昌吉市"},{"code":"652302","name":"阜康市"},{"code":"652323","name":"呼图壁县"},{"code":"652324","name":"玛纳斯县"},{"code":"652325","name":"奇台县"},{"code":"652327","name":"吉木萨尔县"},{"code":"652328","name":"木垒哈萨克自治县"}]},{"code":"6527","name":"博尔塔拉蒙古自治州","children":[{"code":"652701","name":"博乐市"},{"code":"652702","name":"阿拉山口市"},{"code":"652722","name":"精河县"},{"code":"652723","name":"温泉县"}]},{"code":"6528","name":"巴音郭楞蒙古自治州","children":[{"code":"652801","name":"库尔勒市"},{"code":"652822","name":"轮台县"},{"code":"652823","name":"尉犁县"},{"code":"652824","name":"若羌县"},{"code":"652825","name":"且末县"},{"code":"652826","name":"焉耆回族自治县"},{"code":"652827","name":"和静县"},{"code":"652828","name":"和硕县"},{"code":"652829","name":"博湖县"},{"code":"652871","name":"库尔勒经济技术开发区"}]},{"code":"6529","name":"阿克苏地区","children":[{"code":"652901","name":"阿克苏市"},{"code":"652922","name":"温宿县"},{"code":"652923","name":"库车县"},{"code":"652924","name":"沙雅县"},{"code":"652925","name":"新和县"},{"code":"652926","name":"拜城县"},{"code":"652927","name":"乌什县"},{"code":"652928","name":"阿瓦提县"},{"code":"652929","name":"柯坪县"}]},{"code":"6530","name":"克孜勒苏柯尔克孜自治州","children":[{"code":"653001","name":"阿图什市"},{"code":"653022","name":"阿克陶县"},{"code":"653023","name":"阿合奇县"},{"code":"653024","name":"乌恰县"}]},{"code":"6531","name":"喀什地区","children":[{"code":"653101","name":"喀什市"},{"code":"653121","name":"疏附县"},{"code":"653122","name":"疏勒县"},{"code":"653123","name":"英吉沙县"},{"code":"653124","name":"泽普县"},{"code":"653125","name":"莎车县"},{"code":"653126","name":"叶城县"},{"code":"653127","name":"麦盖提县"},{"code":"653128","name":"岳普湖县"},{"code":"653129","name":"伽师县"},{"code":"653130","name":"巴楚县"},{"code":"653131","name":"塔什库尔干塔吉克自治县"}]},{"code":"6532","name":"和田地区","children":[{"code":"653201","name":"和田市"},{"code":"653221","name":"和田县"},{"code":"653222","name":"墨玉县"},{"code":"653223","name":"皮山县"},{"code":"653224","name":"洛浦县"},{"code":"653225","name":"策勒县"},{"code":"653226","name":"于田县"},{"code":"653227","name":"民丰县"}]},{"code":"6540","name":"伊犁哈萨克自治州","children":[{"code":"654002","name":"伊宁市"},{"code":"654003","name":"奎屯市"},{"code":"654004","name":"霍尔果斯市"},{"code":"654021","name":"伊宁县"},{"code":"654022","name":"察布查尔锡伯自治县"},{"code":"654023","name":"霍城县"},{"code":"654024","name":"巩留县"},{"code":"654025","name":"新源县"},{"code":"654026","name":"昭苏县"},{"code":"654027","name":"特克斯县"},{"code":"654028","name":"尼勒克县"}]},{"code":"6542","name":"塔城地区","children":[{"code":"654201","name":"塔城市"},{"code":"654202","name":"乌苏市"},{"code":"654221","name":"额敏县"},{"code":"654223","name":"沙湾县"},{"code":"654224","name":"托里县"},{"code":"654225","name":"裕民县"},{"code":"654226","name":"和布克赛尔蒙古自治县"}]},{"code":"6543","name":"阿勒泰地区","children":[{"code":"654301","name":"阿勒泰市"},{"code":"654321","name":"布尔津县"},{"code":"654322","name":"富蕴县"},{"code":"654323","name":"福海县"},{"code":"654324","name":"哈巴河县"},{"code":"654325","name":"青河县"},{"code":"654326","name":"吉木乃县"}]},{"code":"6590","name":"自治区直辖县级行政区划","children":[{"code":"659001","name":"石河子市"},{"code":"659002","name":"阿拉尔市"},{"code":"659003","name":"图木舒克市"},{"code":"659004","name":"五家渠市"},{"code":"659006","name":"铁门关市"}]}]}]
\ No newline at end of file
diff --git a/src/assets/zorro.svg b/src/assets/zorro.svg
new file mode 100644
index 00000000..059bf561
--- /dev/null
+++ b/src/assets/zorro.svg
@@ -0,0 +1,34 @@
+
+
+
diff --git a/src/conf/api.conf.ts b/src/conf/api.conf.ts
new file mode 100644
index 00000000..6965c253
--- /dev/null
+++ b/src/conf/api.conf.ts
@@ -0,0 +1,9 @@
+/**
+ * 通用API路径配置
+ */
+export const apiConf = {
+ /**
+ * 文件上传路径
+ */
+ fileUpload: ``,
+};
diff --git a/src/conf/cache.conf.ts b/src/conf/cache.conf.ts
new file mode 100644
index 00000000..98aeb6e1
--- /dev/null
+++ b/src/conf/cache.conf.ts
@@ -0,0 +1,49 @@
+/**
+ * 缓存数据键名配置
+ */
+export const cacheConf = {
+ /**
+ * App信息
+ */
+ app: '_app',
+ /**
+ * 环境信息
+ */
+ env: '_env',
+ /**
+ * 地区信息
+ */
+ region: '_region',
+ /**
+ * 角色信息
+ */
+ role: '_role',
+ /**
+ * Token
+ */
+ token: '_token',
+ /**
+ * 用户信息
+ */
+ user: '_user',
+ /**
+ * 权限数据
+ */
+ permission: `_permission`,
+ /**
+ * 最后操作时间
+ */
+ last_operation_time: '_lpt',
+ /**
+ * 是否显示Tabs栏
+ */
+ show_tabs_bar: '_stb',
+ /**
+ * 企业信息
+ */
+ enterprise: '_enterprise',
+ /**
+ * 菜单信息
+ */
+ menu: '_menu',
+};
diff --git a/src/conf/environment.conf.ts b/src/conf/environment.conf.ts
new file mode 100644
index 00000000..ae59d776
--- /dev/null
+++ b/src/conf/environment.conf.ts
@@ -0,0 +1,48 @@
+/*
+ * @Author: Maple
+ * @Date: 2021-03-22 09:57:14
+ * @LastEditors: Do not edit
+ * @LastEditTime: 2021-03-30 17:29:50
+ * @Description: 全局环境配置信息
+ */
+
+/**
+ * 环境配置信息
+ */
+export const environmentConf = {
+ // 网易盾ID
+ captchaId: '73aa170bb84a42feb63ec5fe01795d36',
+ // 是否允许不关联企业的时候能否登录
+ allowNoEnterprise: true,
+ /**
+ * 缓存键名配置
+ */
+ cacheKey: {
+ /**
+ * 环境配置
+ */
+ environment: '_env',
+ /**
+ * 企业信息
+ */
+ enterprise: '_enterprise',
+ /**
+ * 地区信息
+ */
+ region: '_region',
+ /**
+ * 角色信息
+ */
+ role: '_role',
+ },
+ // 全局通用API配置
+ apiPath: {
+ // 文件上传路径
+ fileUploadUrl: `/scce/pbc/pbc/upload/multipartFile/fileModel`,
+ },
+ pdf: {
+ sourceServer: 'https://scce-cos-obs.obs.cn-south-1.myhuaweicloud.com:443',
+ targetServer: 'https://sce-cos-api-test.380star.com:443',
+ prefix: '/huawei/obs',
+ },
+};
diff --git a/src/conf/event.conf.ts b/src/conf/event.conf.ts
new file mode 100644
index 00000000..723f9346
--- /dev/null
+++ b/src/conf/event.conf.ts
@@ -0,0 +1,13 @@
+/**
+ * 全局事件配置名称
+ */
+export const eventConf = {
+ /**
+ * 是否显示Tabs栏
+ */
+ show_tabs_bar: 'STB',
+ /**
+ * 刷新登录状态
+ */
+ reflesh_login_status: 'LOGIN',
+};
diff --git a/src/conf/keys.conf.ts b/src/conf/keys.conf.ts
new file mode 100644
index 00000000..3e5d379c
--- /dev/null
+++ b/src/conf/keys.conf.ts
@@ -0,0 +1,11 @@
+/* eslint-disable @typescript-eslint/naming-convention */
+
+/**
+ * 第三方控件键值
+ */
+export const keysConf = {
+ /**
+ * 网易云盾ID
+ */
+ yidun_capcha_id: `73aa170bb84a42feb63ec5fe01795d36`,
+};
diff --git a/src/conf/sys.conf.ts b/src/conf/sys.conf.ts
new file mode 100644
index 00000000..cae505ca
--- /dev/null
+++ b/src/conf/sys.conf.ts
@@ -0,0 +1,34 @@
+/* eslint-disable @typescript-eslint/naming-convention */
+
+/**
+ * 系统关键配置
+ */
+export const sysConf = {
+ /**
+ * 应用ID
+ */
+ appId: ``,
+ /**
+ * 登录路径
+ */
+ login_url: `/account/login`,
+ /**
+ * 缓存过期时间
+ */
+ cache_expiration_time: 60 * 60 * 24 * 2,
+ /**
+ * 加密键名
+ */
+ encrypt_key: `LKJDSKFHFKJKFDS`,
+ /**
+ * 显示Tabs工具栏
+ */
+ show_tabs_path: [
+ '/tabs/home/index',
+ '/tabs/service/index',
+ '/tabs/industry/index',
+ '/tabs/partner/index',
+ '/tabs/community/index',
+ '/tabs/my/index',
+ ],
+};
diff --git a/src/environments/eascs/environment.demo.ts b/src/environments/eascs/environment.demo.ts
new file mode 100644
index 00000000..0b90a716
--- /dev/null
+++ b/src/environments/eascs/environment.demo.ts
@@ -0,0 +1,19 @@
+/*
+ * @Description:
+ * @Author: wsm
+ * @Date: 2021-06-18 16:12:05
+ * @LastEditTime: 2021-07-14 10:17:39
+ * @LastEditors: Do not edit
+ * @Reference:
+ */
+import { Environment } from '@delon/theme';
+
+export const environment = {
+ production: true,
+ useHash: true,
+ api: {
+ baseUrl: 'https://scm-api-test.eascs.com',
+ refreshTokenEnabled: false,
+ refreshTokenType: 'auth-refresh',
+ },
+} as Environment;
diff --git a/src/environments/eascs/environment.dev.ts b/src/environments/eascs/environment.dev.ts
new file mode 100644
index 00000000..d4f0476c
--- /dev/null
+++ b/src/environments/eascs/environment.dev.ts
@@ -0,0 +1,19 @@
+/*
+ * @Description:
+ * @Author: wsm
+ * @Date: 2021-06-18 16:12:05
+ * @LastEditTime: 2021-06-30 11:08:23
+ * @LastEditors: wsm
+ * @Reference:
+ */
+import { Environment } from '@delon/theme';
+
+export const environment = {
+ production: true,
+ useHash: true,
+ api: {
+ baseUrl: 'https://scm-api-test.eascs.com',
+ refreshTokenEnabled: false,
+ refreshTokenType: 'auth-refresh',
+ },
+} as Environment;
diff --git a/src/environments/eascs/environment.pre.ts b/src/environments/eascs/environment.pre.ts
new file mode 100644
index 00000000..94f745b7
--- /dev/null
+++ b/src/environments/eascs/environment.pre.ts
@@ -0,0 +1,11 @@
+import { Environment } from '@delon/theme';
+
+export const environment = {
+ production: true,
+ useHash: true,
+ api: {
+ baseUrl: 'https://scm-api-pre.eascs.com',
+ refreshTokenEnabled: false,
+ refreshTokenType: 'auth-refresh',
+ },
+} as Environment;
diff --git a/src/environments/eascs/environment.prod.ts b/src/environments/eascs/environment.prod.ts
new file mode 100644
index 00000000..25a7ea67
--- /dev/null
+++ b/src/environments/eascs/environment.prod.ts
@@ -0,0 +1,11 @@
+import { Environment } from '@delon/theme';
+
+export const environment = {
+ production: true,
+ useHash: true,
+ api: {
+ baseUrl: 'https://scm-api.eascs.com',
+ refreshTokenEnabled: false,
+ refreshTokenType: 'auth-refresh',
+ },
+} as Environment;
diff --git a/src/environments/environment.prod.ts b/src/environments/environment.prod.ts
new file mode 100644
index 00000000..327f2f04
--- /dev/null
+++ b/src/environments/environment.prod.ts
@@ -0,0 +1,11 @@
+import { Environment } from '@delon/theme';
+
+export const environment = {
+ production: true,
+ useHash: true,
+ api: {
+ baseUrl: './',
+ refreshTokenEnabled: true,
+ refreshTokenType: 'auth-refresh'
+ }
+} as Environment;
diff --git a/src/environments/environment.service.ts b/src/environments/environment.service.ts
new file mode 100644
index 00000000..935f7425
--- /dev/null
+++ b/src/environments/environment.service.ts
@@ -0,0 +1,38 @@
+/*
+ * @Author: Maple
+ * @Date: 2021-03-22 09:50:07
+ * @LastEditors: Do not edit
+ * @LastEditTime: 2021-05-27 11:37:17
+ * @Description:全局环境服务
+ */
+import { Injectable } from '@angular/core';
+
+@Injectable({
+ providedIn: 'root',
+})
+export class EnvironmentService {
+ // 应用ID
+ private appId = `D40B4EFC33FC4803864934872A11B0CE`;
+ // 租户ID
+ private tenantId = `1352892699355607041`;
+ private env: { appId: string; tenantId: string } = { appId: this.appId, tenantId: this.tenantId };
+ constructor() {
+ this.setEnvironment(this.appId, this.tenantId);
+ }
+ /**
+ * 设置环境信息
+ * @param appId 应用ID
+ * @param tenantId 租户ID
+ */
+ setEnvironment(appId: string, tenantId: string): void {
+ this.env = { appId, tenantId };
+ }
+
+ /**
+ * 获取环境信息
+ * @returns 环境信息
+ */
+ getEnvironment() {
+ return this.env;
+ }
+}
diff --git a/src/environments/environment.ts b/src/environments/environment.ts
new file mode 100644
index 00000000..494c5943
--- /dev/null
+++ b/src/environments/environment.ts
@@ -0,0 +1,27 @@
+// This file can be replaced during build by using the `fileReplacements` array.
+// `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`.
+// The list of file replacements can be found in `angular.json`.
+
+import { DelonMockModule } from '@delon/mock';
+import { Environment } from '@delon/theme';
+
+import * as MOCKDATA from '../../_mock';
+
+export const environment = {
+ production: false,
+ useHash: true,
+ api: {
+ baseUrl: './',
+ refreshTokenEnabled: true,
+ refreshTokenType: 'auth-refresh'
+ },
+ modules: [DelonMockModule.forRoot({ data: MOCKDATA })]
+} as Environment;
+
+/*
+ * In development mode, to ignore zone related error stack frames such as
+ * `zone.run`, `zoneDelegate.invokeTask` for easier debugging, you can
+ * import the following file, but please comment it out in production mode
+ * because it will have performance impact when throw error
+ */
+// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.
diff --git a/src/favicon.ico b/src/favicon.ico
new file mode 100644
index 00000000..5fdadf51
Binary files /dev/null and b/src/favicon.ico differ
diff --git a/src/index.html b/src/index.html
new file mode 100644
index 00000000..73df0de3
--- /dev/null
+++ b/src/index.html
@@ -0,0 +1,48 @@
+
+
+
+
+ Ng Alain Pro
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main.ts b/src/main.ts
new file mode 100644
index 00000000..2cea227c
--- /dev/null
+++ b/src/main.ts
@@ -0,0 +1,27 @@
+import { enableProdMode, ViewEncapsulation } from '@angular/core';
+import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
+import { preloaderFinished } from '@delon/theme';
+import { NzSafeAny } from 'ng-zorro-antd/core/types';
+
+import { AppModule } from './app/app.module';
+import { environment } from './environments/environment';
+
+preloaderFinished();
+
+if (environment.production) {
+ enableProdMode();
+}
+
+platformBrowserDynamic()
+ .bootstrapModule(AppModule, {
+ defaultEncapsulation: ViewEncapsulation.Emulated,
+ preserveWhitespaces: false
+ })
+ .then(res => {
+ const win = window as NzSafeAny;
+ if (win && win.appBootstrap) {
+ win.appBootstrap();
+ }
+ return res;
+ })
+ .catch(err => console.error(err));
diff --git a/src/polyfills.ts b/src/polyfills.ts
new file mode 100644
index 00000000..bf9c6797
--- /dev/null
+++ b/src/polyfills.ts
@@ -0,0 +1,64 @@
+(window as any).global = window;
+/* eslint-disable import/no-unassigned-import */
+/**
+ * This file includes polyfills needed by Angular and is loaded before the app.
+ * You can add your own extra polyfills to this file.
+ *
+ * This file is divided into 2 sections:
+ * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.
+ * 2. Application imports. Files imported after ZoneJS that should be loaded before your main
+ * file.
+ *
+ * The current setup is for so-called "evergreen" browsers; the last versions of browsers that
+ * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),
+ * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.
+ *
+ * Learn more in https://angular.io/guide/browser-support
+ */
+
+/***************************************************************************************************
+ * BROWSER POLYFILLS
+ */
+
+/** IE10 and IE11 requires the following for NgClass support on SVG elements */
+// import 'classlist.js'; // Run `npm install --save classlist.js`.
+
+/**
+ * Web Animations `@angular/platform-browser/animations`
+ * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.
+ * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).
+ */
+// import 'web-animations-js'; // Run `npm install --save web-animations-js`.
+
+/**
+ * By default, zone.js will patch all possible macroTask and DomEvents
+ * user can disable parts of macroTask/DomEvents patch by setting following flags
+ * because those flags need to be set before `zone.js` being loaded, and webpack
+ * will put import in the top of bundle, so user need to create a separate file
+ * in this directory (for example: zone-flags.ts), and put the following flags
+ * into that file, and then add the following code before importing zone.js.
+ * import './zone-flags';
+ *
+ * The flags allowed in zone-flags.ts are listed here.
+ *
+ * The following flags will work for all browsers.
+ *
+ * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame
+ * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick
+ * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames
+ *
+ * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js
+ * with the following flag, it will bypass `zone.js` patch for IE/Edge
+ *
+ * (window as any).__Zone_enable_cross_context_check = true;
+ *
+ */
+
+/***************************************************************************************************
+ * Zone JS is required by default for Angular itself.
+ */
+import 'zone.js'; // Included with Angular CLI.
+
+/***************************************************************************************************
+ * APPLICATION IMPORTS
+ */
diff --git a/src/style-icons-auto.ts b/src/style-icons-auto.ts
new file mode 100644
index 00000000..1fda870f
--- /dev/null
+++ b/src/style-icons-auto.ts
@@ -0,0 +1,106 @@
+/*
+ * Automatically generated by 'ng g ng-alain:plugin icon'
+ * @see https://ng-alain.com/cli/plugin#icon
+ */
+
+import {
+ AlipayCircleOutline,
+ ApiOutline,
+ AppstoreOutline,
+ ArrowDownOutline,
+ BookOutline,
+ BorderLeftOutline,
+ BorderRightOutline,
+ CloudOutline,
+ CopyrightOutline,
+ CustomerServiceOutline,
+ DashboardOutline,
+ DatabaseOutline,
+ DingdingOutline,
+ DislikeOutline,
+ DownloadOutline,
+ ForkOutline,
+ FrownOutline,
+ FullscreenExitOutline,
+ FullscreenOutline,
+ GithubOutline,
+ GlobalOutline,
+ HddOutline,
+ LaptopOutline,
+ LikeOutline,
+ LockOutline,
+ LogoutOutline,
+ MailOutline,
+ MenuFoldOutline,
+ MenuUnfoldOutline,
+ MessageOutline,
+ PayCircleOutline,
+ PieChartOutline,
+ PrinterOutline,
+ RocketOutline,
+ ScanOutline,
+ SettingOutline,
+ ShareAltOutline,
+ ShoppingCartOutline,
+ SoundOutline,
+ StarOutline,
+ TaobaoCircleOutline,
+ TaobaoOutline,
+ TeamOutline,
+ ToolOutline,
+ TrophyOutline,
+ UsbOutline,
+ UserOutline,
+ WeiboCircleOutline
+} from '@ant-design/icons-angular/icons';
+
+export const ICONS_AUTO = [
+ AlipayCircleOutline,
+ ApiOutline,
+ AppstoreOutline,
+ ArrowDownOutline,
+ BookOutline,
+ BorderLeftOutline,
+ BorderRightOutline,
+ CloudOutline,
+ CopyrightOutline,
+ CustomerServiceOutline,
+ DashboardOutline,
+ DatabaseOutline,
+ DingdingOutline,
+ DislikeOutline,
+ DownloadOutline,
+ ForkOutline,
+ FrownOutline,
+ FullscreenExitOutline,
+ FullscreenOutline,
+ GithubOutline,
+ GlobalOutline,
+ HddOutline,
+ LaptopOutline,
+ LikeOutline,
+ LockOutline,
+ LogoutOutline,
+ MailOutline,
+ MenuFoldOutline,
+ MenuUnfoldOutline,
+ MessageOutline,
+ PayCircleOutline,
+ PieChartOutline,
+ PrinterOutline,
+ RocketOutline,
+ ScanOutline,
+ SettingOutline,
+ ShareAltOutline,
+ ShoppingCartOutline,
+ SoundOutline,
+ StarOutline,
+ TaobaoCircleOutline,
+ TaobaoOutline,
+ TeamOutline,
+ ToolOutline,
+ TrophyOutline,
+ UsbOutline,
+ UserOutline,
+ WeiboCircleOutline
+];
diff --git a/src/style-icons.ts b/src/style-icons.ts
new file mode 100644
index 00000000..d6dff4dc
--- /dev/null
+++ b/src/style-icons.ts
@@ -0,0 +1,13 @@
+// Custom icon static resources
+
+import {
+ BulbOutline,
+ ExceptionOutline,
+ FileZipOutline,
+ FolderOutline,
+ InfoOutline,
+ LinkOutline,
+ ProfileOutline
+} from '@ant-design/icons-angular/icons';
+
+export const ICONS = [InfoOutline, BulbOutline, ProfileOutline, ExceptionOutline, LinkOutline, FolderOutline, FileZipOutline];
diff --git a/src/styles.less b/src/styles.less
new file mode 100644
index 00000000..b2f747e8
--- /dev/null
+++ b/src/styles.less
@@ -0,0 +1,7 @@
+@import '~@delon/theme/system/index';
+@import '~@delon/abc/index';
+@import '~@delon/chart/index';
+@import 'app/layout/pro/styles/index.less';
+
+@import './styles/index';
+@import './styles/theme';
diff --git a/src/styles/fix/_chat.less b/src/styles/fix/_chat.less
new file mode 100644
index 00000000..70f31869
--- /dev/null
+++ b/src/styles/fix/_chat.less
@@ -0,0 +1,139 @@
+@chat-prefix: ~'.chat';
+
+@{chat-prefix} {
+ &__container {
+ display: flex;
+ overflow: hidden;
+ background: @chat-background;
+ border: 1px solid @border-color-split;
+ }
+ &__scroll {
+ &-container {
+ position: relative;
+ width: 100%;
+ }
+ }
+ &__sidebox {
+ display: flex;
+ flex-direction: column;
+ width: @chat-sidebox-width;
+ box-shadow: @shadow-1-right;
+ transition: 0.2s all;
+ }
+ &__contact {
+ display: flex;
+ align-items: center;
+ padding: 8px 16px;
+ color: #4e5155;
+ cursor: pointer;
+ &:hover:not(.chat__contact-active) {
+ background-color: rgba(24, 28, 33, 0.03);
+ }
+ .ant-badge-status-text {
+ color: #52c41a;
+ font-size: 12px;
+ }
+ &-offline {
+ opacity: 0.7;
+ .ant-badge-status-text {
+ color: #f5222d;
+ }
+ }
+ &-active {
+ background-color: #e84c64;
+ &,
+ .ant-badge-status-text {
+ color: #fff;
+ }
+ }
+ }
+ &__user {
+ &-avatar {
+ height: 40px;
+ border-radius: 50%;
+ }
+ }
+ &__message {
+ &-container {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ padding: 24px;
+ }
+
+ display: flex;
+ flex-shrink: 0;
+ margin-bottom: 8px;
+ &-left {
+ margin-right: @chat-avatar-box-width + 8px;
+ .chat__message-avatar {
+ margin-right: 8px;
+ }
+ }
+ &-right {
+ flex-direction: row-reverse;
+ margin-left: @chat-avatar-box-width + 8px;
+ .chat__message-avatar {
+ margin-left: 8px;
+ }
+ }
+ &-send {
+ text-align: center;
+ }
+ &-avatar {
+ width: @chat-avatar-box-width;
+ text-align: center;
+ }
+ &-text {
+ width: 100%;
+ color: @grey-6;
+ font-size: 12px;
+ text-align: center;
+ }
+ &-time {
+ padding-top: 2px;
+ color: @grey-6;
+ font-size: 12px;
+ white-space: nowrap;
+ }
+ &-msg {
+ padding: 4px 8px;
+ background: @chat-message-item-bg;
+ border-radius: 4px;
+ &--name {
+ display: block;
+ margin-bottom: 2px;
+ }
+ }
+ }
+}
+
+.chat-rtl-mixin(@enabled) when(@enabled=true) {
+ [dir='rtl'] {
+ @{chat-prefix} {
+ &__message {
+ &-left {
+ margin-right: inherit;
+ margin-left: @chat-avatar-box-width + 8px;
+ .chat__message-avatar {
+ margin-right: inherit;
+ margin-left: 8px;
+ }
+ }
+ &-right {
+ margin-right: inherit;
+ margin-left: @chat-avatar-box-width + 8px;
+ .chat__message-avatar {
+ margin-right: inherit;
+ margin-left: 8px;
+ }
+ }
+ }
+ }
+ }
+}
+.chat-rtl-mixin(@rtl-enabled);
diff --git a/src/styles/fix/_file-manager.less b/src/styles/fix/_file-manager.less
new file mode 100644
index 00000000..ec9d0cd6
--- /dev/null
+++ b/src/styles/fix/_file-manager.less
@@ -0,0 +1,135 @@
+app-file-manager file-manager {
+ display: block;
+ padding: 24px;
+ background: @popover-background;
+}
+
+.file {
+ &-manager {
+ display: flex;
+ flex-wrap: wrap;
+ margin-top: 16px;
+ &__header {
+ display: flex;
+ align-items: center;
+ margin-top: 16px;
+ padding: 0 32px 4px 12px;
+ font-weight: 700;
+ border-bottom: 2px solid rgba(0, 0, 0, 0.05);
+ &-name {
+ flex: 1;
+ }
+ &-pixel {
+ width: 150px;
+ }
+ &-time {
+ width: 130px;
+ }
+ }
+ &__small {
+ .file-item {
+ display: flex;
+ align-items: center;
+ width: 100%;
+ margin: 0 0 2px;
+ padding: 4px 32px 4px 0;
+ text-align: left;
+ &__icon,
+ &__img {
+ display: block;
+ width: 32px;
+ height: 32px;
+ margin: 0 8px;
+ font-size: 20px;
+ line-height: 32px;
+ text-align: center;
+ }
+ &__name {
+ flex: 1;
+ }
+ &__pixel {
+ position: inherit;
+ width: 150px;
+ > span {
+ background: none;
+ }
+ }
+ &__time {
+ display: block;
+ width: 130px;
+ }
+ }
+ }
+ }
+ &-item {
+ position: relative;
+ z-index: 1;
+ flex: 0 0 auto;
+ flex-shrink: 0;
+ width: 9rem;
+ margin: 0 8px 8px 0;
+ padding: 16px 0 24px;
+ text-align: center;
+ border: 1px solid transparent;
+ cursor: pointer;
+ &:hover {
+ border-color: rgba(0, 0, 0, 0.05);
+ .file-item__actions {
+ display: block;
+ }
+ }
+ &__selected {
+ background-color: @file-item-selected-bg !important;
+ border-color: @file-item-selected-border-color !important;
+ .file-item__actions {
+ display: block;
+ }
+ }
+ &__icon {
+ display: block;
+ margin: 16px 0;
+ font-size: 40px;
+ }
+ &__img {
+ display: block;
+ width: 4rem;
+ height: 4rem;
+ margin: 0 auto 0.75rem;
+ font-size: 2.5rem;
+ line-height: 4rem;
+ background-color: transparent;
+ background-position: center center;
+ background-size: cover;
+ }
+ &__name {
+ height: 28px;
+ padding: 0 8px;
+ overflow: hidden;
+ color: @file-item-name-color;
+ line-height: 28px;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ }
+ &__pixel {
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ > span {
+ display: block;
+ width: 100%;
+ padding: 2px 0;
+ background: rgba(0, 0, 0, 0.01);
+ }
+ }
+ &__time {
+ display: none;
+ }
+ &__actions {
+ position: absolute;
+ top: 8px;
+ right: 8px;
+ display: none;
+ }
+ }
+}
diff --git a/src/styles/fix/_passport.less b/src/styles/fix/_passport.less
new file mode 100644
index 00000000..710dbbed
--- /dev/null
+++ b/src/styles/fix/_passport.less
@@ -0,0 +1,58 @@
+@pro-passport-prefix: ~'.pro-passport';
+
+@{pro-passport-prefix} {
+ display: flex;
+ flex-basis: 100%;
+ align-items: stretch;
+ justify-content: stretch;
+ min-height: 100vh;
+ overflow: hidden;
+ &__langs {
+ position: fixed;
+ top: 16px;
+ left: 16px;
+ z-index: 9999;
+ .alain-pro__header-item {
+ height: auto;
+ padding: 0;
+ }
+ .anticon {
+ color: #fff !important;
+ }
+ }
+ &__bg {
+ padding: 0 24px;
+ background-color: transparent;
+ background-position: center center;
+ background-size: cover;
+ &-overlay {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ background: #000;
+ opacity: 0.4;
+ }
+ }
+ &__form {
+ padding: 32px;
+ &-logo {
+ height: 32px;
+ text-align: center;
+ img {
+ max-height: 100%;
+ }
+ }
+ &-title {
+ margin: 16px 0;
+ color: @grey-6;
+ text-align: center;
+ }
+ }
+ @media (max-width: @screen-md-max) {
+ &__form {
+ width: 100%;
+ }
+ }
+}
diff --git a/src/styles/fix/_quick-chat.less b/src/styles/fix/_quick-chat.less
new file mode 100644
index 00000000..91bd964d
--- /dev/null
+++ b/src/styles/fix/_quick-chat.less
@@ -0,0 +1,119 @@
+@quick-chat-prefix: ~'.quick-chat';
+
+@{quick-chat-prefix} {
+ position: fixed;
+ top: auto;
+ right: 0;
+ bottom: 0;
+ left: auto;
+ z-index: 98;
+ display: flex;
+ flex: 1;
+ flex-direction: column;
+ width: 320px;
+ margin-right: 30px;
+ line-height: initial;
+ background-color: @quick-chat-bg;
+ border: 1px solid @quick-chat-border-color;
+ border-bottom: none;
+ border-radius: 4px 4px 0 0;
+ box-shadow: 0 16px 24px 2px rgba(0, 0, 0, 0.14);
+ &__bar {
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ height: @quick-chat-bar-height;
+ border-bottom: 1px solid @quick-chat-border-color;
+ cursor: pointer;
+ user-select: none;
+ &--title {
+ flex: 1;
+ height: @quick-chat-bar-height;
+ padding-left: 16px;
+ font-size: 14px;
+ line-height: @quick-chat-bar-height;
+ &:hover {
+ background-color: lighten(@quick-chat-bg, 2%);
+ }
+ &-has-message {
+ animation: antSwingIn 1500ms infinite;
+ }
+ }
+ &--menu {
+ display: flex;
+ align-items: center;
+ height: @quick-chat-bar-height;
+ // padding: 0 8px 0 16px;
+ .anticon {
+ font-size: 18px;
+ }
+ }
+ &--close {
+ padding: 0 16px 0 8px;
+ }
+ }
+ &__body {
+ max-height: @quick-chat-content-height + @quick-chat-reply-height;
+ transition: max-height 0.5s cubic-bezier(0, 1, 0, 1);
+ }
+ &__content {
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ height: @quick-chat-content-height;
+ .chat__scroll-container {
+ display: block;
+ }
+ }
+ &__reply {
+ height: @quick-chat-reply-height;
+ padding: 8px;
+ border-top: 1px solid @quick-chat-border-color;
+ &--ipt {
+ display: block;
+ width: 100%;
+ height: 100%;
+ background: transparent;
+ border: none;
+ outline: none;
+ }
+ }
+
+ .chat__message {
+ align-items: center;
+ &-avatar {
+ width: 28px;
+ }
+ }
+ .chat__user-avatar {
+ height: 20px;
+ }
+
+ // When collapsed
+ &__collapsed {
+ @{quick-chat-prefix}__body {
+ max-height: 0;
+ .chat__scroll-container {
+ display: none;
+ }
+ }
+ }
+}
+
+.quick-chat-rtl-mixin(@enabled) when(@enabled=true) {
+ [dir='rtl'] {
+ @{quick-chat-prefix} {
+ right: inherit;
+ left: 0;
+ margin-right: inherit;
+ margin-left: 30px;
+ &__bar {
+ &--title {
+ padding-right: 16px;
+ padding-left: 0;
+ }
+ }
+ }
+ }
+}
+.quick-chat-rtl-mixin(@rtl-enabled);
diff --git a/src/styles/fix/_quill.less b/src/styles/fix/_quill.less
new file mode 100644
index 00000000..46d5f2dc
--- /dev/null
+++ b/src/styles/fix/_quill.less
@@ -0,0 +1,22 @@
+.quill-editor {
+ line-height: initial;
+ &.ng-dirty.ng-invalid {
+ .ql-toolbar,
+ .ql-container {
+ border-color: @error-color;
+ }
+ }
+}
+
+@ql-sizes: '10px', '12px', '14px', '16px', '18px', '20px', '24px';
+
+.ql-snow {
+ .for(@ql-sizes, {
+ .ql-size .ql-picker-label,
+ .ql-size .ql-picker-item {
+ &[data-value="@{adItem}"]::before {
+ content: '@{adItem}';
+ }
+ }
+ });
+}
diff --git a/src/styles/fix/_utils.less b/src/styles/fix/_utils.less
new file mode 100644
index 00000000..794e76a9
--- /dev/null
+++ b/src/styles/fix/_utils.less
@@ -0,0 +1,99 @@
+.attachment {
+ display: flex;
+ align-items: center;
+ margin-bottom: 8px;
+ padding: 4px;
+ border: 1px solid @grey-4;
+ &-icon {
+ padding: 2px;
+ font-size: 40px;
+ }
+ &-img {
+ width: 64px;
+ height: 64px;
+ background-color: transparent;
+ background-position: center center;
+ background-size: cover;
+ }
+}
+
+.feed {
+ &__icon {
+ position: relative;
+ &-tag {
+ position: absolute;
+ top: -6px;
+ right: -2px;
+ }
+ }
+}
+
+.img {
+ &-thm {
+ position: relative;
+ display: block;
+ max-width: 100%;
+ height: auto;
+ background-color: transparent;
+
+ &:hover {
+ .img-thm__icon {
+ opacity: 1;
+ }
+ }
+
+ &__mask {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 2;
+ display: block;
+ background-color: rgba(0, 0, 0, 0.3);
+ transition: all 0.2s ease-in-out;
+ }
+
+ &__icon {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ z-index: 3;
+ display: block;
+ color: #fff;
+ font-size: 32px;
+ opacity: 0;
+ transition: all 0.2s ease-in-out;
+ }
+
+ &__img {
+ z-index: 1;
+ max-width: 100%;
+ height: auto;
+ }
+
+ &__zoom-in {
+ overflow: hidden;
+ .img-thm__icon {
+ transform: translate(-50%, -50%) scale(0.6);
+ }
+ .img-thm__img {
+ transition: all 0.3s ease-in-out;
+ }
+ &:hover {
+ .img-thm__icon {
+ transform: translate(-50%, -50%) scale(1);
+ }
+ .img-thm__img {
+ transform: scale(1.1);
+ }
+ }
+ }
+
+ &:not(:hover):not(:focus) {
+ .img-thm__mask {
+ opacity: 0;
+ }
+ }
+ }
+}
diff --git a/src/styles/fix/antd.less b/src/styles/fix/antd.less
new file mode 100644
index 00000000..d7fb07f3
--- /dev/null
+++ b/src/styles/fix/antd.less
@@ -0,0 +1,18 @@
+// 下拉菜单
+.dd {
+ // 按钮
+ &-btn {
+ display: block;
+ width: 24px;
+ height: 24px;
+ color: @grey-6;
+ line-height: 24px;
+ text-align: center;
+ border-radius: 50%;
+ cursor: pointer;
+ &:hover {
+ background: @antd-dd-hover-background;
+ border: 1px solid @border-color-split;
+ }
+ }
+}
diff --git a/src/styles/fix/index.less b/src/styles/fix/index.less
new file mode 100644
index 00000000..2400abfc
--- /dev/null
+++ b/src/styles/fix/index.less
@@ -0,0 +1,10 @@
+@import './theme-default.less';
+@import './antd.less';
+// tools
+@import './_utils.less';
+@import './_quill.less';
+@import './_file-manager.less';
+// pages
+@import './_chat.less';
+@import './_passport.less';
+@import './_quick-chat.less';
\ No newline at end of file
diff --git a/src/styles/fix/theme-compact.less b/src/styles/fix/theme-compact.less
new file mode 100644
index 00000000..f8a7cd7a
--- /dev/null
+++ b/src/styles/fix/theme-compact.less
@@ -0,0 +1 @@
+@import './theme-default.less';
diff --git a/src/styles/fix/theme-dark.less b/src/styles/fix/theme-dark.less
new file mode 100644
index 00000000..10008349
--- /dev/null
+++ b/src/styles/fix/theme-dark.less
@@ -0,0 +1,10 @@
+@import './theme-default.less';
+
+@chat-background: @popover-background;
+@chat-message-item-bg: darken(@popover-background, 10%);
+
+@message-sidebox-bg: rgba(255, 255, 255, 0.03);
+
+@calendar_fc-event_background: @popover-background;
+
+@antd-dd-hover-background: @popover-background;
diff --git a/src/styles/fix/theme-default.less b/src/styles/fix/theme-default.less
new file mode 100644
index 00000000..1f7883fa
--- /dev/null
+++ b/src/styles/fix/theme-default.less
@@ -0,0 +1,33 @@
+// chat
+// --
+@chat-background: #fff;
+@chat-sidebox-width: 250px;
+@chat-avatar-box-width: 50px;
+@chat-message-item-bg: @grey-3;
+
+// file-manager
+// --
+@file-item-name-color: #4e5155;
+@file-item-selected-border-color: @primary-color;
+@file-item-selected-bg: @blue-1;
+
+// message
+// --
+@message-sidebox-width: 250px;
+@message-sidebox-bg: @grey-3;
+
+// quick-chat
+// --
+@quick-chat-bg: @popover-background;
+@quick-chat-border-color: @border-color-split;
+@quick-chat-bar-height: 32px;
+@quick-chat-content-height: 320px;
+@quick-chat-reply-height: 50px;
+
+// calendar
+// --
+@calendar_fc-event_background: #fff;
+
+// antd
+// --
+@antd-dd-hover-background: @grey-3;
diff --git a/src/styles/index.less b/src/styles/index.less
new file mode 100644
index 00000000..c69234ef
--- /dev/null
+++ b/src/styles/index.less
@@ -0,0 +1,3 @@
+/* You can add global styles to this file, and also import other style files */
+
+@import './fix/index';
\ No newline at end of file
diff --git a/src/styles/theme.less b/src/styles/theme.less
new file mode 100644
index 00000000..89ff4bdd
--- /dev/null
+++ b/src/styles/theme.less
@@ -0,0 +1,10 @@
+// You can directly set the default theme
+// - `default` Default theme
+// - `dark` Import the official dark less style file
+// - `compact` Import the official compact less style file
+@import '../app/layout/pro/styles/theme-default.less';
+@import './fix/theme-default.less';
+
+// ==========Custom brand visual color==========
+
+// ==========Custom brand visual color==========
diff --git a/src/test.ts b/src/test.ts
new file mode 100644
index 00000000..6af344a5
--- /dev/null
+++ b/src/test.ts
@@ -0,0 +1,22 @@
+/* eslint-disable import/no-unassigned-import */
+// This file is required by karma.conf.js and loads recursively all the .spec and framework files
+
+import 'zone.js/testing';
+import { getTestBed } from '@angular/core/testing';
+import {
+ BrowserDynamicTestingModule,
+ platformBrowserDynamicTesting
+} from '@angular/platform-browser-dynamic/testing';
+
+declare const require: any;
+
+// First, initialize the Angular testing environment.
+getTestBed().initTestEnvironment(
+ BrowserDynamicTestingModule,
+ platformBrowserDynamicTesting()
+);
+
+// Then we find all the tests.
+const context = require.context('./', true, /\.spec\.ts$/);
+// And load the modules.
+context.keys().map(context);
diff --git a/src/typings.d.ts b/src/typings.d.ts
new file mode 100644
index 00000000..8cff5539
--- /dev/null
+++ b/src/typings.d.ts
@@ -0,0 +1,4 @@
+// # 3rd Party Library
+// If the library doesn't have typings available at `@types/`,
+// you can still use it by manually adding typings for it
+declare module 'quill-image-resize-module';
diff --git a/tsconfig.app.json b/tsconfig.app.json
new file mode 100644
index 00000000..6bb6c9da
--- /dev/null
+++ b/tsconfig.app.json
@@ -0,0 +1,10 @@
+/* To learn more about this file see: https://angular.io/config/tsconfig. */
+{
+ "extends": "./tsconfig.json",
+ "compilerOptions": {
+ "outDir": "./out-tsc/app",
+ "types": ["node"]
+ },
+ "files": ["src/main.ts", "src/polyfills.ts"],
+ "include": ["src/**/*.d.ts"]
+}
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 00000000..7188c1f7
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,46 @@
+{
+ "compileOnSave": false,
+ "compilerOptions": {
+ "baseUrl": "./",
+ "outDir": "./dist/out-tsc",
+ "forceConsistentCasingInFileNames": true,
+ "strict": true,
+ "noImplicitReturns": true,
+ "noFallthroughCasesInSwitch": true,
+ "sourceMap": true,
+ "declaration": false,
+ "downlevelIteration": true,
+ "experimentalDecorators": true,
+ "moduleResolution": "node",
+ "importHelpers": true,
+ "target": "es2015",
+ "module": "es2020",
+ "lib": [
+ "es2018",
+ "dom"
+ ],
+ "paths": {
+ "@shared": [
+ "src/app/shared/index"
+ ],
+ "@core": [
+ "src/app/core/index"
+ ],
+ "@env/*": [
+ "src/environments/*"
+ ],
+ "@brand": [
+ "src/app/layout/pro/index"
+ ],
+ "@conf/*": [
+ "src/conf/*"
+ ]
+ },
+ "allowSyntheticDefaultImports": true
+ },
+ "angularCompilerOptions": {
+ "strictInjectionParameters": true,
+ "strictInputAccessModifiers": true,
+ "strictTemplates": true
+ }
+}
diff --git a/tsconfig.spec.json b/tsconfig.spec.json
new file mode 100644
index 00000000..6c31866e
--- /dev/null
+++ b/tsconfig.spec.json
@@ -0,0 +1,10 @@
+/* To learn more about this file see: https://angular.io/config/tsconfig. */
+{
+ "extends": "./tsconfig.json",
+ "compilerOptions": {
+ "outDir": "./out-tsc/spec",
+ "types": ["jasmine", "node"]
+ },
+ "files": ["src/test.ts", "src/polyfills.ts"],
+ "include": ["src/**/*.spec.ts", "src/**/*.d.ts"]
+}